I2lmbmRlZiBaU1BUUkFDRV9IXw0KI2RlZmluZSBaU1BUUkFDRV9IXw0KDQojZGVmaW5lIFpDQVRfWlBTX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgICgweDAwMDEwMDAwVUw+PkNQVV9TSElGVCkNCg0KI2lmbmRlZiBERFJfQkFTRV9BRERSX1RPT0xfSUNQDQpleHRlcm4gdW5zaWduZWQgbG9uZyBaQ0FUX1BTXzJfUEhZX0JVRkZFUl9CQVNFOw0KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgWkNBVF9QSFlfMl9QU19CVUZGRVJfQkFTRTsNCiNlbmRpZg0KDQovLy8vUEhZLVpDQVQNCiNkZWZpbmUgWkNBVF9QSFlfMl9QU19CVUZGRVJfU0laRSAgICAgICAgICAgKDB4MDAwNjAwMDBVTD4+Q1BVX1NISUZUKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9PUkRFUiAgICAgICAgICAgICAoMTQgLSBDUFVfU0hJRlQpICAgICAgICAgICAgICAvKiAxNktCICovDQojZGVmaW5lIFpDQVRfUEhZX0xPR19VTklUX1NJWkUgICAgICAgICAgICAgICgxVUw8PFpDQVRfUEhZX0xPR19VTklUX09SREVSKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9OVU0gICAgICAgICAgICAgICAoWkNBVF9QSFlfMl9QU19CVUZGRVJfU0laRSA+PiBaQ0FUX1BIWV9MT0dfVU5JVF9PUkRFUikNCg0KI2RlZmluZSBaQ0FUX1BIWV9TVERfTE9HX09GRlNFVCAgICAgICAgICAgICAoMjhVTD4+Q1BVX1NISUZUKSAvKiBzaXplb2YoVF9DT01NX1RZUEUgKyBUX1pDQVRfSEVBREVSKSAqLw0KI2RlZmluZSBaQ0FUX1BIWV9QUlRfTE9HX09GRlNFVCAgICAgICAgICAgICAoNDBVTD4+Q1BVX1NISUZUKSAvKiBzaXplb2YoVF9DT01NX1RZUEUgKyBUX1pDQVRfSEVBREVSICsgVF9aQ0FUX0RCR19IRUFERVIpICovDQoNCiNkZWZpbmUgTE9HX1REICAoMSkNCiNkZWZpbmUgTE9HX0xURSAoMikNCiNkZWZpbmUgTE9HX1cgICAoMykNCiNkZWZpbmUgTE9HX1NJRyAoNCkNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgICB1bnNpZ25lZCBsb25nIHR5cGU7DQogICAgdW5zaWduZWQgbG9uZyBsZW47DQp9IFRfWkNBVF9QaHlfTG9nX1VuaXRfSGVhZGVyOw0KDQojZGVmaW5lIFpDQVRfUEhZX0xPR19VTklUX0hFQUQgICAgICAgICAgICAgKElSQU1fQkFTRV9BRERSX1pDQVRfUEhZX0xPRykNCiNkZWZpbmUgWkNBVF9QSFlfTE9HX1VOSVRfVEFJTCAgICAgICAgICAgICAoWkNBVF9QSFlfTE9HX1VOSVRfSEVBRCArICg0Pj5DUFVfU0hJRlQpKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfRnJlZV9VTklUX0JVRiAgICAgICAgIChaQ0FUX1BIWV9MT0dfVU5JVF9UQUlMICsgKDQ+PkNQVV9TSElGVCkpDQojZGVmaW5lIFpDQVRfUEhZX0xPR19GcmVlX1VOSVRfTEVOICAgICAgICAgKDk2Pj5DUFVfU0hJRlQpIC8qICgyNCAqIDQpQiA9IDM4NEsqLyANCiNkZWZpbmUgWkNBVF9QSFlfTE9HX09GRiAgICAgICAgICAgICAgICAgICAoWkNBVF9QSFlfTE9HX1VOSVRfSEVBRCArICgxMj4+Q1BVX1NISUZUKSArIFpDQVRfUEhZX0xPR19GcmVlX1VOSVRfTEVOKSAvKiC24NSkwfTByzTX1r3aICovDQojZGVmaW5lIFpDQVRfUEhZX0xPR19aU1BfQlVGX1JFQURZICAgICAgICAgKFpDQVRfUEhZX0xPR19PRkYgKyAoND4+Q1BVX1NISUZUKSkgDQojZGVmaW5lIFpDQVRfUFNfTE9HX1ZFSElDTEVfU0lHTiAgICAgICAgICAgKFpDQVRfUEhZX0xPR19aU1BfQlVGX1JFQURZICsgKDQ+PkNQVV9TSElGVCkpIA0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfVkVISUNMRV9TSUdOICAgICAgICAgIChaQ0FUX1BTX0xPR19WRUhJQ0xFX1NJR04gKyAoND4+Q1BVX1NISUZUKSkgDQoNCi8qzqyy4tDFz6JMb2e/qrnYKi8NCiNkZWZpbmUgWkNBVF9ERUJVR19JTkZPX0RJU0FCTEUgICAgICAgICAgICAoWkNBVF9QSFlfTE9HX1ZFSElDTEVfU0lHTiArICg0Pj5DUFVfU0hJRlQpKSANCg0KLy8vL3pDYXQgTG9nIFJ1bGUNCiNkZWZpbmUgWkNBVF9SVUxFX0xURV9FTkFCTEVEICAgICAgICAgICAgICAoWkNBVF9ERUJVR19JTkZPX0RJU0FCTEUgKyAoND4+Q1BVX1NISUZUKSkgDQojZGVmaW5lIFpDQVRfUlVMRV9TSUdfRU5BQkxFRCAgICAgICAgICAgICAgKFpDQVRfUlVMRV9MVEVfRU5BQkxFRCArICg0Pj5DUFVfU0hJRlQpKSANCiNkZWZpbmUgWkNBVF9SVUxFX1REX0VOQUJMRUQgICAgICAgICAgICAgICAoWkNBVF9SVUxFX1NJR19FTkFCTEVEICsgKDQ+PkNQVV9TSElGVCkpIA0KI2RlZmluZSBaQ0FUX1JVTEVfV0NETUFfRU5BQkxFRCAgICAgICAgICAgIChaQ0FUX1JVTEVfVERfRU5BQkxFRCArICg0Pj5DUFVfU0hJRlQpKSANCiNkZWZpbmUgWkNBVF9SVUxFX0FQMkFQUF9FTkFCTEVEICAgICAgICAgICAoWkNBVF9SVUxFX1dDRE1BX0VOQUJMRUQgKyAoND4+Q1BVX1NISUZUKSkgDQojZGVmaW5lIFpDQVRfUlVMRV9BUDJLRVJORUxfRU5BQkxFRCAgICAgICAgKFpDQVRfUlVMRV9BUDJBUFBfRU5BQkxFRCArICg0Pj5DUFVfU0hJRlQpKSANCg0KLy8vL1BIWTwtPlBTIHJpbmdidWZmZXIoVEQpDQojZGVmaW5lIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUgICAgICAgICAgICgweDIwMFVMPj5DUFVfU0hJRlQpDQojZGVmaW5lIFpDQVRfUEhZX0xPR19DT05UUk9MX0xFTiAgICAgICAgICAgIChaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFIC0gKDQgPj4gQ1BVX1NISUZUKSkNCg0KI2RlZmluZSBaQ0FUX1REX0xPR19DT05UUk9MX0JBU0VfQUREUiAgICAgIChaQ0FUX1BTXzJfUEhZX0JVRkZFUl9CQVNFKQ0KI2RlZmluZSBaQ0FUX1REX0xPR19DT05UUk9MX1dQT0lOVEVSICAgICAgIChaQ0FUX1REX0xPR19DT05UUk9MX0JBU0VfQUREUikgDQojZGVmaW5lIFpDQVRfVERfTE9HX0NPTlRST0xfUlBPSU5URVIgICAgICAgKFpDQVRfVERfTE9HX0NPTlRST0xfV1BPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KI2RlZmluZSBaQ0FUX1REX0xPR19DT05UUk9MX0NPTlRFTlQgICAgICAgIChaQ0FUX1REX0xPR19DT05UUk9MX1JQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCg0KLy8vL1BIWTwtPlBTIHJpbmdidWZmZXIoTFRFKQ0KI2RlZmluZSBaQ0FUX0xURV9MT0dfQ09OVFJPTF9CQVNFX0FERFIgICAgICAoWkNBVF9URF9MT0dfQ09OVFJPTF9CQVNFX0FERFIgKyBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFKQ0KI2RlZmluZSBaQ0FUX0xURV9MT0dfQ09OVFJPTF9XUE9JTlRFUiAgICAgICAoWkNBVF9MVEVfTE9HX0NPTlRST0xfQkFTRV9BRERSKSANCiNkZWZpbmUgWkNBVF9MVEVfTE9HX0NPTlRST0xfUlBPSU5URVIgICAgICAgKFpDQVRfTFRFX0xPR19DT05UUk9MX1dQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCiNkZWZpbmUgWkNBVF9MVEVfTE9HX0NPTlRST0xfQ09OVEVOVCAgICAgICAgKFpDQVRfTFRFX0xPR19DT05UUk9MX1JQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCg0KLy8vL1BIWTwtPlBTIHJpbmdidWZmZXIoVykNCiNkZWZpbmUgWkNBVF9XX0xPR19DT05UUk9MX0JBU0VfQUREUiAgICAgIChaQ0FUX0xURV9MT0dfQ09OVFJPTF9CQVNFX0FERFIgKyBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFKQ0KI2RlZmluZSBaQ0FUX1dfTE9HX0NPTlRST0xfV1BPSU5URVIgICAgICAgKFpDQVRfV19MT0dfQ09OVFJPTF9CQVNFX0FERFIpIA0KI2RlZmluZSBaQ0FUX1dfTE9HX0NPTlRST0xfUlBPSU5URVIgICAgICAgKFpDQVRfV19MT0dfQ09OVFJPTF9XUE9JTlRFUiArICgyID4+IENQVV9TSElGVCkpDQojZGVmaW5lIFpDQVRfV19MT0dfQ09OVFJPTF9DT05URU5UICAgICAgICAoWkNBVF9XX0xPR19DT05UUk9MX1JQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCg0KLy8vL1BIWTwtPlBTIHJpbmdidWZmZXIoU0lHKQ0KI2RlZmluZSBaQ0FUX1NJR19MT0dfQ09OVFJPTF9CQVNFX0FERFIgICAgICAoWkNBVF9XX0xPR19DT05UUk9MX0JBU0VfQUREUiArIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUpDQojZGVmaW5lIFpDQVRfU0lHX0xPR19DT05UUk9MX1dQT0lOVEVSICAgICAgIChaQ0FUX1NJR19MT0dfQ09OVFJPTF9CQVNFX0FERFIpIA0KI2RlZmluZSBaQ0FUX1NJR19MT0dfQ09OVFJPTF9SUE9JTlRFUiAgICAgICAoWkNBVF9TSUdfTE9HX0NPTlRST0xfV1BPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KI2RlZmluZSBaQ0FUX1NJR19MT0dfQ09OVFJPTF9DT05URU5UICAgICAgICAoWkNBVF9TSUdfTE9HX0NPTlRST0xfUlBPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KDQovLy8vWkNBVC1URA0KI2RlZmluZSBaQ0FUX1REX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSICAoWkNBVF9TSUdfTE9HX0NPTlRST0xfQkFTRV9BRERSICsgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSkNCiNkZWZpbmUgWkNBVF9URF9QU19UT19QSFlfQlVGRkVSX1NJWkUgICAgICAgKDB4MDAwMDAyMDBVTD4+Q1BVX1NISUZUKQ0KDQovLy8vWkNBVC1MVEUNCiNkZWZpbmUgWkNBVF9MVEVfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgKFpDQVRfVERfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgKyBaQ0FUX1REX1BTX1RPX1BIWV9CVUZGRVJfU0laRSkNCiNkZWZpbmUgWkNBVF9MVEVfUFNfVE9fUEhZX0JVRkZFUl9TSVpFICAgICAgKDB4MDAwMDAyMDBVTD4+Q1BVX1NISUZUKQ0KDQovLy8vWkNBVC1XQ0RNQQ0KI2RlZmluZSBaQ0FUX1dfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgICAoWkNBVF9MVEVfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgKyBaQ0FUX0xURV9QU19UT19QSFlfQlVGRkVSX1NJWkUpDQojZGVmaW5lIFpDQVRfV19QU19UT19QSFlfQlVGRkVSX1NJWkUgICAgICAgICgweDAwMDAwMjAwVUw+PkNQVV9TSElGVCkNCg0KLy8vL1pDQVQtU0lHDQojZGVmaW5lIFpDQVRfU0lHX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSIChaQ0FUX1dfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgKyBaQ0FUX1dfUFNfVE9fUEhZX0JVRkZFUl9TSVpFKQ0KI2RlZmluZSBaQ0FUX1NJR19QU19UT19QSFlfQlVGRkVSX1NJWkUgICAgICAoMHgwMDAwMDIwMFVMPj5DUFVfU0hJRlQpDQoNCiNkZWZpbmUgWkNBVF9QU18yX1BIWV9CVUZGRVJfU0laRSAgICAgICAgICAgKFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUgKyBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFICsgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSArIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUgKyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaQ0FUX1REX1BTX1RPX1BIWV9CVUZGRVJfU0laRSArIFpDQVRfTFRFX1BTX1RPX1BIWV9CVUZGRVJfU0laRSArIFpDQVRfV19QU19UT19QSFlfQlVGRkVSX1NJWkUgKyBaQ0FUX1NJR19QU19UT19QSFlfQlVGRkVSX1NJWkUpDQojZW5kaWYNCg0K