ZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvYmFzZS5oIGIvc3lzL3BsYXllci9iYXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YyOGNiNAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvYmFzZS5oCkBAIC0wLDAgKzEsMTI0IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL2Jhc2UuaCAtLSBwbGF5ZXIgYmFzZSBoZWFkZXIKKy8vCisvLyAkSWQ6IGJhc2UuaCA4NDg3IDIwMTMtMDUtMjEgMTk6MTU6NTJaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fUExBWUVSX0JBU0VfSF9fCisjZGVmaW5lIF9fUExBWUVSX0JBU0VfSF9fCisKKy8vIGRhIGRpZXNlcyBGaWxlIHZvbSBNYXN0ZXIgaW5rbHVkaWVydCB3aXJkIHVuZCBkYW5uIGRpZSBTdGFuZGFyZC1JbmNsdWRlLQorLy8gdmVyemVpY2huaXNzZSBub2NoIG5pY2h0IGdlc2V0enQgc2luZCwgZGFyZiBkaWVzZXMgRmlsZSBhdWNoIG51ciBkaWUgYWJzLgorLy8gTmFtZW4gdmVyd2VuZGVuLiAqc2V1ZnoqCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvY2FuLmgiCisjaW5jbHVkZSAiL3N5cy9wbGF5ZXIvdGVsbmV0bmVnLmgiCisKKyNkZWZpbmUgSEFVU1ZFUldBTFRFUiAgICIvZC9zZWhlci9oYWV1c2VyL2hhdXN2ZXJ3YWx0ZXIiCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0tJTExTICAgICAgICAgICAgICAicGxheWVya2lsbHMiCisKKyNkZWZpbmUgUF9aQVBfTVNHICAgICAgICAgICAgInphcF9tc2ciCisjZGVmaW5lIFBfQVdBWSAgICAgICAgICAgICAgICJhd2F5IgorI2RlZmluZSBQX05PX1RPUExJU1QgICAgICAgICAibm9fdG9wbGlzdCIKKyNkZWZpbmUgUF9DQUxMRURfRlJPTV9JUCAgICAgImNhbGxlZF9mcm9tX2lwIgorI2RlZmluZSBQX01BUlJJRUQgICAgICAgICAgICAibWFycmllZCIKKyNkZWZpbmUgUF9TSUJMSU5HUyAgICAgICAgICAgInNpYmxpbmdzIgorI2RlZmluZSBQX1JBQ0VfREVTQ1JJUFRJT04gICAicmFjZWRlc2NyIgorI2RlZmluZSBQX1JBQ0VTVFJJTkcgICAgICAgICAicmFjZXN0cmluZyIKKworI2RlZmluZSBQX1dBSVRGT1IgICAgICAgICAgICAid2FpdGZvciIKKyNkZWZpbmUgUF9XQUlURk9SX1JFQVNPTiAgICAgIndhaXRmb3JfcmVhc29uIgorI2RlZmluZSBQX1dBSVRGT1JfRkxBR1MgICAgICAid2FpdGZvcl9mbGFncyIKKyNkZWZpbmUgUF9WSVNVQUxCRUxMICAgICAgICAgInZpc3VhbGJlbGwiCisjZGVmaW5lIFBfTE9DQUxDTURTICAgICAgICAgICJsb2NhbGNtZHMiCisjZGVmaW5lIFBfQ0xPQ0tNU0cgICAgICAgICAgICJjbG9ja21zZyIKKyNkZWZpbmUgUF9USU1FWk9ORSAgICAgICAgICAgInRpbWV6b25lIgorI2RlZmluZSBQX1NIT1dFTUFJTCAgICAgICAgICAic2hvd2VtYWlsIgorCisjZGVmaW5lIFBfTEFTVF9MT0dJTiAgICAgICAgICJsYXN0X2xvZ2luIgorI2RlZmluZSBQX0xBU1RfTE9HT1VUICAgICAgICAibGFzdF9sb2dvdXQiCisjZGVmaW5lIFBfREFJTFlfUExBWVRJTUUgICAgICJkYWlseV9wbGF5dGltZSIKKyNkZWZpbmUgUF9JR05PUkUgICAgICAgICAgICAgImlnbm9yZSIKKyNkZWZpbmUgUF9TSE9XX0VYSVRTICAgICAgICAgInNob3dfZXhpdHMiCisjZGVmaW5lIFBfV0FOVFNfVE9fTEVBUk4gICAgICJ3YW50c190b19sZWFybiIKKyNkZWZpbmUgUF9BVVRPTE9BRE9CSiAgICAgICAgImF1dG9sb2Fkb2JqIgorI2RlZmluZSBQX0FVVE9MT0FEICAgICAgICAgICAiYXV0b2xvYWQiCisjZGVmaW5lIFBfTUFJTEFERFIgICAgICAgICAgICJtYWlsYWRkciIKKyNkZWZpbmUgUF9IT01FUEFHRSAgICAgICAgICAgImhvbWVwYWdlIgorI2RlZmluZSBQX0lDUSAgICAgICAgICAgICAgICAiaWNxIgorI2RlZmluZSBQX01FU1NFTkdFUiAgICAgICAgICAibWVzc2VuZ2VyIgorI2RlZmluZSBQX0xPQ0FUSU9OICAgICAgICAgICAibG9jYXRpb24iCisKKyNkZWZpbmUgUF9GT0xMT1dfU0lMRU5UICAgICAgImZvbGxvd19zaWxlbnQiCisKKyNpZm5kZWYgUF9JTlZJUworI2RlZmluZSBQX0lOVklTICAgICAgICAgICAgICAiaW52aXMiCisjZW5kaWYKKworI2RlZmluZSBQX1NFQ09ORCAgICAgICAgICAgICAic2Vjb25kIgorI2RlZmluZSBQX1NFQ09ORF9NQVJLICAgICAgICAic2Vjb25kX21hcmsiCisjZGVmaW5lIFBfU0VDT05EX0xJU1QgICAgICAgICJzZWNvbmRfbGlzdCIKKyNkZWZpbmUgUF9NVURfTkVXQklFICAgICAgICAgIl9saWJfbXVkX25ld2JpZSIgIC8vIG5vdCBwbGF5ZWQgYSBtdWQgYmVmb3JlPworCisjZGVmaW5lIFBfVEVTVFBMQVlFUiAgICAgICAgICJ0ZXN0cGxheWVyIgorI2RlZmluZSBQX0FMTE9XRURfU0hBRE9XICAgICAiYWxsb3dlZF9zaGFkb3ciCisKKyNkZWZpbmUgUF9TVEFSVF9IT01FICAgICAgICAgInN0YXJ0X2hvbWUiCisjZGVmaW5lIFBfUFJBWV9ST09NICAgICAgICAgICJfbGliX3BfcHJheXJvb20iCisKKyNkZWZpbmUgUF9TSEVMTF9WRVJTSU9OICAgICAgInNoZWxsX3ZlcnNpb24iCisKKyNkZWZpbmUgUF9DTVNHICAgICAgICAgICAgICAgImNsb25lbXNnIgorI2RlZmluZSBQX0RNU0cgICAgICAgICAgICAgICAiZGVzdG1zZyIKKyNkZWZpbmUgUF9DTE9ORV9NU0cgICAgICAgICAgImNsb25lX21zZyIKKyNkZWZpbmUgUF9ERVNUUlVDVF9NU0cgICAgICAgImRlc3RydWN0X21zZyIKKworI2RlZmluZSBQX0NBUlJJRURfVkFMVUUgICAgICAiY2FycmllZCIKKworI2RlZmluZSBQX1BST01QVCAgICAgICAgICAgICAicHJvbXB0IgorCisjZGVmaW5lIFBfU0NSRUVOU0laRSAgICAgICAgICJzY3JlZW5zaXplIgorI2RlZmluZSBQX01PUkVfRkxBR1MgICAgICAgICAibW9yZV9mbGFncyIKKworI2RlZmluZSBQX05PX0FTQ0lJX0FSVCAgICAgICAibm9fYXNjaWlfYXJ0IgorCisjZGVmaW5lIFBfTEFTVF9RVUlUICAgICAgICAgICJsYXN0X3F1aXQiCisKKyNkZWZpbmUgUF9SRUFEX05FV1MgICAgICAgICAgInJlYWRfbmV3cyIKKworI2RlZmluZSBQX05FRURFRF9RUCAgICAgICAgICAibmVlZGVkX3FwIgorCisvL1RPRE86IFJlbW92ZSAtIFByb3BlcnR5IGlzIG5vdCBuZWVkZWQgYW55IG1vcmUuCisjZGVmaW5lIFBfVEVMTkVUX0tFRVBfQUxJVkUgICJzZW5kX3RlbG5ldF9rZWVwX2FsaXZlIgorCisjZW5kaWYgLy8gX19QTEFZRVJfQkFTRV9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX0JBU0VfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX0JBU0VfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKwordm9pZCBzbWFydF9sb2coc3RyaW5nIG15bmFtZSwgc3RyaW5nIHN0cik7CitpbnQgUXVlcnlHdWVzdCgpOworaW50IGludmlzKHN0cmluZyBpbmZvcm0pOworaW50IHZpcyhzdHJpbmcgaW5mb3JtKTsKKwordmFyYXJncyBzdGF0aWMgdm9pZCBzdG9wX2hlYXJ0X2JlYXRzKG1peGVkIG9icyk7CitzdGF0aWMgdm9pZCByZXN0YXJ0X2hlYXJ0X2JlYXRzKCk7CisKK25vbWFzayBpbnQgcXVlcnlfaGNfcGxheSgpOwordmFyYXJncyBub21hc2sgdm9pZCBzZXRfaGNfcGxheShzdHJpbmcgc3RyLCBpbnQgdmFsKTsKK3N0cmluZyBTZXREZWZhdWx0SG9tZShzdHJpbmcgc3RyKTsKK3Byb3RlY3RlZCBzdHJpbmcgU2V0RGVmYXVsdFByYXlSb29tKHN0cmluZyBzdHIpOworCit2b2lkIHNhdmVfbWUobWl4ZWQgdmFsdWVfaXRlbXMpOworbm9tYXNrIG1peGVkIHF1ZXJ5X3JlYWxfbmFtZSgpOworcHJvdGVjdGVkIHZvaWQgY2FsbF9ub3RpZnlfcGxheWVyX2NoYW5nZShpbnQgcmVpbik7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9CQVNFX0hfUFJPVE9fXworCisjZW5kaWYvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9jYW4uaCBiL3N5cy9wbGF5ZXIvY2FuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNjZTY5MwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvY2FuLmgKQEAgLTAsMCArMSwzNCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9jYW4uaCAtLSB2YXJpb3VzIGFiaXRsaXRpZXMKKy8vCisvLyAkSWQ6IGNhbi5oIDc5MjQgMjAxMS0wOS0yNiAxMDowMjoyNlogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19DQU5fSF9fCisjZGVmaW5lIF9fQ0FOX0hfXworCisvLyBwcm9wZXJ0aWVzCisjZGVmaW5lIFBfQ0FOX0ZMQUdTICAgICAgICAgICJjYW5fZmxhZ3MiCisKKy8vIGJpdG1hc2tzCisjZGVmaW5lIENBTl9FTU9URSAgMHgwMQorI2RlZmluZSBDQU5fRUNITyAgIDB4MDIKKyNkZWZpbmUgQ0FOX1JFTU9URSAweDA0CisjZGVmaW5lIENBTl9QUkVTQVkgMHgwOAorI2RlZmluZSBDQU5fUkVQT1JUX1NQICAgICAweDEwICAgICAvLyBTdGF0dXN1cGRhdGVzIGZ1ZXIgS1AKKyNkZWZpbmUgQ0FOX1JFUE9SVF9QT0lTT04gMHgyMCAgICAgLy8gU3RhdHVzdXBkYXRlcyBmdWVyIEdpZnQKKyNkZWZpbmUgQ0FOX1JFUE9SVF9XSU1QWSAgMHg0MCAgICAgLy8gU3RhdHVzdXBkYXRlcyBmdWVyIFZvcnNpY2h0CisjZGVmaW5lIENBTl9SRVBPUlRfV0lNUFlfRElSIDB4ODAgIC8vIFN0YXR1c3VwZGF0ZXMgZnVlciBWb3JzaWNodHJpY2h0dW5nCisKKyNlbmRpZiAvLyBfX0NBTl9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fQ0FOX0hfUFJPVE9fXworI2RlZmluZSBfX0NBTl9IX1BST1RPX18KKworLy8gbm8gcHJvdG90eXBlcworCisjZW5kaWYgLy8gX19DQU5fSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9jb21iYXQuaCBiL3N5cy9wbGF5ZXIvY29tYmF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFhYjJmYQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvY29tYmF0LmgKQEAgLTAsMCArMSwxNiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9jb21iYXQuaCAtLSBwcm90b3R5cGVzIGZvciBwbGF5ZXIgc3BlY2lmaWMgaXNzdWVzIG9mIGNvbWJhdAorLy8KKy8vICRJZDogY29tbS5oLHYgMy4zIDIwMDAvMDIvMDkgMTU6NTY6MjUgUGFkcmVpYyBFeHAgJAorCisjaWZuZGVmIF9fUExBWUVSX0NPTUJBVF9IX18KKyNkZWZpbmUgX19QTEFZRVJfQ09NQkFUX0hfXworCitwdWJsaWMgaW50IFF1ZXJ5UGxBdHRhY2tlZChvYmplY3QgcGwpOworCitwdWJsaWMgaW50IFJlZ2lzdGVySGVscGVyTlBDKG9iamVjdCBucGMsIGludCBmbGFncyk7CitwdWJsaWMgaW50IFVucmVnaXN0ZXJIZWxwZXJOUEMob2JqZWN0IG5wYyk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9DT01CQVRfSF9fCisKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvY29tbS5oIGIvc3lzL3BsYXllci9jb21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAzYjMxOQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvY29tbS5oCkBAIC0wLDAgKzEsODUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwbGF5ZXIvY29tbS5oIC0tIGNvbW11bmljYXRpb24gbW9kdWxlIHByb3BlcnRpZXMKKy8vCisvLyAkSWQ6IGNvbW0uaCx2IDMuMyAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKworI2lmbmRlZiBfX1BMQVlFUl9DT01NX0hfXworI2RlZmluZSBfX1BMQVlFUl9DT01NX0hfXworCisvLyBsaXZpbmcvY29tbS5oIGJyYXVjaGVuIHdpciBhdWNoLgorI2luY2x1ZGUgPGxpdmluZy9jb21tLmg+CisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0lOVEVSTVVEICAgICAgICAgICAiaW50ZXJtdWQiIC8vIERvZXMgc2hlIGxpc3RlbiB0byBpdCA/CisjZGVmaW5lIFBfQlVGRkVSICAgICAgICAgICAgICJidWZmZXIiICAgLy8gaWdub3JlLSwgdGVsbC1idWZmZXIKKyNkZWZpbmUgUF9ERUFGICAgICAgICAgICAgICAgImRlYWYiICAgICAvLyBUYXViaGVpdAorI2RlZmluZSBQX1BFUk1fU1RSSU5HICAgICAgICAicGVybV9zdHJpbmciIC8vIEZ1ZXIgU3ByYWNoZmx1ZWNoZQorI2RlZmluZSBQX01FU1NBR0VfQkVFUCAgICAgICAibWVzc2FnZV9iZWVwIiAvLyB3ZW5uIGdlc2V0enQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuemFobCBkZXIgU2VrdW5kZW4gZGF6d2lzY2hlbgorI2RlZmluZSBQX01FU1NBR0VfUFJFUEVORCAgIm1lc3NhZ2VfcHJlcGVuZCIKKy8vIFdpbGwgZGVyIE1hZ2llciBNVF9ERUJVRyBzZWhlbj8KKyNkZWZpbmUgUF9XSVpfREVCVUcgICAgICAgICAgInN0ZF9wX3dpemRlYnVnIgorCisjZGVmaW5lIE1FU1NBR0VfQkVFUCAiXDAwNyIKKworLy8gZGVmaW5pdGlvbnMgZm9yIE1lc3NhZ2UoKQorCisjZGVmaW5lIE1TR0ZMQUdfQ0hBTk5FTCAweDAwMDEJLy8gbWVzc2FnZXMgZnJvbSBjaGFubmVsZC5jCisjZGVmaW5lIE1TR0ZMQUdfQ0hJU1QJMHgwMDAyCisjZGVmaW5lIE1TR0ZMQUdfU09VTAkweDAwMDQJLy8gbWVzc2FnZXMgZnJvbSBzb3VsLmMKKyNkZWZpbmUgTVNHRkxBR19SRU1PVEUJMHgwMDA4CS8vIHJlbW90ZSBlbW90ZXMKKyNkZWZpbmUgTVNHRkxBR19TSE9VVAkweDAwMTAJLy8gY29tbXVuaWNhdGlvbiBjb21tYW5kcworI2RlZmluZSBNU0dGTEFHX1RFTEwJMHgwMDIwCisjZGVmaW5lIE1TR0ZMQUdfU0FZCTB4MDA0MAorI2RlZmluZSBNU0dGTEFHX1dISVNQRVIgMHgwMDgwCisjZGVmaW5lIE1TR0ZMQUdfTUVDSE8JMHgwMTAwCisjZGVmaW5lIE1TR0ZMQUdfUlRFTEwJMHgwMjAwCS8vIHRlbGwgZnJvbSBvdGhlciBtdWQKKworI2RlZmluZSBNQVhfU0FWRURfTUVTU0FHRVMgIDUwCisjZGVmaW5lIE1BWF9TQVZFRF9DSEFUUyAgICAgMjAKKworLy8gV2FzIGdlaHQgaW4gZGVuIEtvYm9sZD8KKyNkZWZpbmUgTVNHRkxBR19DQUNIRQkoTVNHRkxBR19URUxMIHwgTVNHRkxBR19SRU1PVEUgfCBNU0dGTEFHX1dISVNQRVIgfCBNU0dGTEFHX1JURUxMKQorCisjZGVmaW5lIE1TR0ZMQUdfREVBRkNISyAoTVNHRkxBR19TSE9VVCB8IE1TR0ZMQUdfVEVMTCB8IE1TR0ZMQUdfU0FZIHwgTVNHRkxBR19XSElTUEVSIHwgTVNHRkxBR19DSEFOTkVMIHwgTVNHRkxBR19SVEVMTCkKKworLy8gUnVlY2tnYWJld2VydGUgdm9uIE1lc3NhZ2UoKQorI2RlZmluZSBNRVNTQUdFX09LCSAgICAgMQkvLyBhbGxlcyBrbGFyCisjZGVmaW5lIE1FU1NBR0VfQ0FDSEUJICAgICAwCS8vIE1lbGR1bmcgc3RlaHQgaW0gS29ib2xkCisjZGVmaW5lIE1FU1NBR0VfSUdOT1JFX1lPVSAgLTEJLy8gTWVsZHVuZy9TZW5kZXIgd2lyZCBpZ25vcmllcnQKKyNkZWZpbmUgTUVTU0FHRV9JR05PUkVfVkVSQiAtMgorI2RlZmluZSBNRVNTQUdFX0lHTk9SRV9NVUQgIC0zCisjZGVmaW5lIE1FU1NBR0VfREVBRgkgICAgLTQJLy8gRW1wZmFlbmdlciBob2VydCBuaWNodCB6dQorI2RlZmluZSBNRVNTQUdFX0NBQ0hFX0ZVTEwgIC01CS8vIEtvYm9sZCBrYW5uIG5pY2h0cyBtZWhyIG1lcmtlbgorCisvLyBGbGFncyBmdWVyIFN0YXR1c3JlcG9ydHMKKyNkZWZpbmUgRE9fUkVQT1JUX0hQICAgICAgICAgMHgxCisjZGVmaW5lIERPX1JFUE9SVF9TUCAgICAgICAgIDB4MgorI2RlZmluZSBET19SRVBPUlRfUE9JU09OICAgICAweDQKKyNkZWZpbmUgRE9fUkVQT1JUX1dJTVBZICAgICAgMHg4CisjZGVmaW5lIERPX1JFUE9SVF9XSU1QWV9ESVIgIDB4MTAKKworI2VuZGlmIC8vIF9fUExBWUVSX0NPTU1fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9DT01NX0hfUFJPVE9fXworI2RlZmluZSBfX1BMQVlFUl9DT01NX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisKK3Byb3RlY3RlZCB2YXJhcmdzIGludCBfcmVjdihvYmplY3Qgb2IsIHN0cmluZyBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFnLCBzdHJpbmcgaW5kZW50KTsKKwordmFyYXJncyBpbnQgTWVzc2FnZShzdHJpbmcgbXNnLCBpbnQgZmxhZywgc3RyaW5nIGluZGVudCwKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNuYW1lLCBtaXhlZCBzZW5kZXIpOworCitwcm90ZWN0ZWQgdm9pZCBzdGF0dXNfcmVwb3J0KGludCB0eXBlLCBtaXhlZCB2YWwpOworcHJvdGVjdGVkIHZvaWQgX25vdGlmeShzdHJpbmcgbXNnLCBzdHJpbmcgYWN0aW9uKTsKKworI2VuZGlmIC8vIF9fUExBWUVSX0NPTU1fSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUworCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL2NvbW1hbmQuaCBiL3N5cy9wbGF5ZXIvY29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNDFiNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL2NvbW1hbmQuaApAQCAtMCwwICsxLDM5IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL2NvbW1hbmQuaCAtIENvbW1hbmRzICYgQ28KKy8vCisvLyAkSWQ6IGF0dHJpYnV0ZXMuaCA2MjgyIDIwMDctMDUtMDkgMjA6NTU6MTdaIFplc3N0cmEgJAorIAorI2lmbmRlZiBfX1BMQVlFUl9DT01NQU5EX0hfXworI2RlZmluZSBfX1BMQVlFUl9DT01NQU5EX0hfXworCisvLyBwcm9wZXJ0aWVzCisjZGVmaW5lIFBfRElTQUJMRV9DT01NQU5EUyAicF9saWJfZGlzYWJsZWNvbW1hbmRzIgorCisvLyBJbmRpemVzIGZ1ZXJzIEFycmF5IHZvbiBjb21tYW5kYmxvY2sKKyNkZWZpbmUgQl9PQkpFQ1QgIDAKKyNkZWZpbmUgQl9USU1FICAgIDEKKyNkZWZpbmUgQl9WQUxVRSAgIDIKKyNkZWZpbmUgQl9FWENFUFRJT05TIDMKKworI2VuZGlmIC8vIF9fUExBWUVSX0NPTU1BTkRfSF9fCisKKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX0NPTU1BTkRfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX0NPTU1BTkRfSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKK21peGVkIG1vZGlmeV9jb21tYW5kKHN0cmluZyBzdHIpOworaW50IGNvbW1hbmRfbWUoc3RyaW5nIGNtZCk7Cit2YXJhcmdzIHN0cmluZyBfdW5wYXJzZWRfYXJncyhpbnQgbGV2ZWwpOworCisvLyBTZXQtIHVuZCBRdWVyeS1NZXRob2Rlbgorc3RhdGljIG1peGVkIF9zZXRfcF9saWJfZGlzYWJsZWNvbW1hbmRzKG1peGVkIGRhdGEpOworc3RhdGljIG1peGVkIF9xdWVyeV9wX2xpYl9kaXNhYmxlY29tbWFuZHMoKTsKKworI2VuZGlmIC8vIF9fUExBWUVSX0FUVFJJQlVURVNfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUworCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL2Rlc2NyaXB0aW9uLmggYi9zeXMvcGxheWVyL2Rlc2NyaXB0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc4ZTE2OQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvZGVzY3JpcHRpb24uaApAQCAtMCwwICsxLDM0IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL2Rlc2NyaXB0aW9uLmggLS0gcGxheWVyIGRlc2NyaXB0aW9uIGhlYWRlcgorLy8KKy8vICRJZDogZGVzY3JpcHRpb24uaCx2IDMuNiAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKworI2luY2x1ZGUgPGxpdmluZy9kZXNjcmlwdGlvbi5oPgorIAorI2lmbmRlZiBfX1BMQVlFUl9ERVNDUklQVElPTl9IX18KKyNkZWZpbmUgX19QTEFZRVJfREVTQ1JJUFRJT05fSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX1BSRVNBWSAgICAgICAgICAgICAicHJlc2F5IgorI2RlZmluZSBQX1RJVExFICAgICAgICAgICAgICAidGl0bGUiCisjZGVmaW5lIFBfQVZFUkFHRV9TSVpFICAgICAgICJhdmVyYWdlX3NpemUiCisjZGVmaW5lIFBfQVZFUkFHRV9XRUlHSFQgICAgICJhdmVyYWdlX3dlaWdodCIKKyNkZWZpbmUgUF9SRUZFUkVOQ0VfT0JKRUNUICAgInJlZmVyZW5jZV9vYmplY3QiCisKKyNkZWZpbmUgUF9ERVNDUklQVElPTiAgICAgICAgImRlc2NyaXB0aW9uIgorCisjZW5kaWYgLy8gX19QTEFZRVJfREVTQ1JJUFRJT05fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9ERVNDUklQVElPTl9IX1BST1RPX18KKyNkZWZpbmUgX19QTEFZRVJfREVTQ1JJUFRJT05fSF9QUk9UT19fCisKKy8vIHByb3RvdHlwZXMKKy8vIG5vIHByb3RvdHlwZXMKKworI2VuZGlmIC8vIF9fUExBWUVSX0RFU0NSSVBUSU9OX0hfUFJPVE9fXworCisjZW5kaWYJLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvZmFvLmggYi9zeXMvcGxheWVyL2Zhby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMDE2YTQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL2Zhby5oCkBAIC0wLDAgKzEsNDcgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisKKyNpZm5kZWYgX19QTEFZRVJfRkFPX0hfXworI2RlZmluZSBfX1BMQVlFUl9GQU9fSF9fCisKKyNkZWZpbmUgRkFPX01BU1RFUiAgICAgICIvZC9lYmVuZS9taXJpbC9mcmF0ZXJuaXRhcy9zZWN1cmUvZmFvbWFzdGVyIiAvLyBkaWUgemVudHJhbGUgc3RlbGxlIGRlcyBmYW8KKworLy8gZGllIExpc3RlIGRlciB2ZXJm/GdiYXJlbiBQb3J0YWxlIGZ1ZXIgZGFzIGVyc3RlIHBvcnRhbGdlc2NoZW5rCisjZGVmaW5lIEZBT19QT1JUQUxTMV9MSVNUICh7MiwzLDQsNSw2LDcsOCw5LDEwLDEzLDE0LDE1LDE2LDE5LDIwLDIxLDI1LDI5LDMzfSkKKy8vIGRpZSBMaXN0ZSBkZXIgdmVyZvxnYmFyZW4gUG9ydGFsZSBmdWVyIGRhcyB6d2VpdGUgcG9ydGFsZ2VzY2hlbmsKKyNkZWZpbmUgRkFPX1BPUlRBTFMyX0xJU1QgRkFPX1BPUlRBTFMxX0xJU1QrKHsxLDExLDEyLDE3LDE4LDI0LDI2LDI3LDI4LDMxLDM0LDM2LDM3LDM4fSkKKy8vIGRpZSBhbnphaGwgZGVyIHp1IHdhZWhsZW5kZW4gcG9ydGFsZSBmdWVyIGRhcyBlcnN0ZSBwb3J0YWxnZXNjaGVuaworI2RlZmluZSBGQU9fUE9SVEFMUzFfTlVNICA1CisvLyBkaWUgYW56YWhsIGRlciB6dSB3YWVobGVuZGVuIHBvcnRhbGUgZnVlciBkYXMgendlaXRlIHBvcnRhbGdlc2NoZW5rCisjZGVmaW5lIEZBT19QT1JUQUxTMl9OVU0gIDUKKworLy8gcHJvcGVydGllcworI2RlZmluZSBQX0ZBTyAgICAgICAgICAgImZyYXRlcm5pdGFzZG9ub2FyY2htYWdvcnVtIiAgLy8gZW50aGFlbHQgZGllIGRvbmkKKyNkZWZpbmUgUF9GQU9fUE9SVEFMUyAgIFBfRkFPKyJQT1JUQUxTIiAvLyBlbnRoYWVsdCBkaWUgZGVtIHNwaWVsZXIgdWViZXJnZWJlbmVuIHBvcnRhbGUKKworLy8gYml0bWFza3MKKyNkZWZpbmUgRkFPX1RJVExFICAgMHgwMQorI2RlZmluZSBGQU9fUE9SVEFMUzEgICAgMHgwMgorI2RlZmluZSBGQU9fUE9SVEFMUzIgIDB4MDQKKyNkZWZpbmUgRkFPX1NFRVJfUE9SVEFMIDB4MDgKKyNkZWZpbmUgRkFPX01FTUJFUiAweDEwCisKKy8vIGhpbGZyZWljaGUgbWFrcm9zCisjZGVmaW5lIEZBT19IQVNfVElUTEVfR0lGVCh4KSAgICh4IT0wICYmIHF1ZXJ5X29uY2VfaW50ZXJhY3RpdmUoeCkgXAorICAgICYmICgoaW50KXgtPlF1ZXJ5UHJvcChQX0ZBTykmRkFPX1RJVExFKSE9MCkKKyNkZWZpbmUgRkFPX0hBU19QT1JUQUxTMV9HSUZUKHgpICAoeCE9MCAmJiBxdWVyeV9vbmNlX2ludGVyYWN0aXZlKHgpIFwKKyAgICAmJiAoKGludCl4LT5RdWVyeVByb3AoUF9GQU8pJkZBT19QT1JUQUxTMSkhPTApCisjZGVmaW5lIEZBT19IQVNfUE9SVEFMUzJfR0lGVCh4KSAgKHghPTAgJiYgcXVlcnlfb25jZV9pbnRlcmFjdGl2ZSh4KSBcCisgICAgJiYgKChpbnQpeC0+UXVlcnlQcm9wKFBfRkFPKSZGQU9fUE9SVEFMUzIpIT0wKQorI2RlZmluZSBGQU9fSEFTX1BPUlRBTFNfR0lGVCh4KSAgIChGQU9fSEFTX1BPUlRBTFMxX0dJRlQoeCkgfHwgRkFPX0hBU19QT1JUQUxTMl9HSUZUKHgpKQorI2RlZmluZSBGQU9fTUFZX1VTRV9QT1JUQUwoeCxwKSAgIChpbnRwKHApICYmICgoRkFPX0hBU19QT1JUQUxTMV9HSUZUKHgpICYmIFwKKyAgICAgICAgbWVtYmVyKEZBT19QT1JUQUxTMV9MSVNULHApIT0tMSApfHwoRkFPX0hBU19QT1JUQUxTMl9HSUZUKHgpICYmIFwKKyAgICAgICAgbWVtYmVyKEZBT19QT1JUQUxTMl9MSVNULHApIT0tMSkgKSAmJiBcCisgICAgKHBvaW50ZXJwKChpbnQqKXgtPlF1ZXJ5UHJvcChQX0ZBT19QT1JUQUxTKSkgXAorICAgICAmJiBtZW1iZXIoKGludCopeC0+UXVlcnlQcm9wKFBfRkFPX1BPUlRBTFMpLHApIT0tMSkgKQorI2RlZmluZSBGQU9fSEFTX1NFRVJfUE9SVEFMX0dJRlQoeCkgICAgICh4IT0wICYmIHF1ZXJ5X29uY2VfaW50ZXJhY3RpdmUoeCkgXAorICAgICYmICgoaW50KXgtPlF1ZXJ5UHJvcChQX0ZBTykmRkFPX1NFRVJfUE9SVEFMKSE9MCkKKyNkZWZpbmUgRkFPX0lTX01FTUJFUih4KSAoeCE9MCAmJiBxdWVyeV9vbmNlX2ludGVyYWN0aXZlKHgpIFwKKyAgICAmJiAoKGludCl4LT5RdWVyeVByb3AoUF9GQU8pJkZBT19NRU1CRVIpIT0wKQorI2VuZGlmIC8vIF9fUExBWUVSX0ZBT19IX18KKwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9maWxlc3lzLmggYi9zeXMvcGxheWVyL2ZpbGVzeXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmZjYWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3BsYXllci9maWxlc3lzLmgKQEAgLTAsMCArMSwyNSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9maWxlc3lzLmggLS0gZmlsZSBzeXN0ZW0gc2VydmljZXMKKy8vCisvLyAkSWQ6IGZpbGVzeXMuaCx2IDMuMSAxOTk3LzAyLzEyIDEzOjI5OjA5IFdhcmdvbiBFeHAgJAorIAorI2lmbmRlZiBfX1BMQVlFUl9GSUxFU1lTX0hfXworI2RlZmluZSBfX1BMQVlFUl9GSUxFU1lTX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9GSUxFU1lTX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19QTEFZRVJfRklMRVNZU19IX1BST1RPX18KKyNkZWZpbmUgX19QTEFZRVJfRklMRVNZU19IX1BST1RPX18gICAgICAKKworLy8gcHJvdG90eXBlcworCit2YXJhcmdzIHN0cmluZyBmaW5kX2ZpbGUoc3RyaW5nIHN0ciwgc3RyaW5nIHN1ZmZpeCk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9GSUxFU1lTX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvZ21jcC5oIGIvc3lzL3BsYXllci9nbWNwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVlMzdjZQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvZ21jcC5oCkBAIC0wLDAgKzEsMjYgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwbGF5ZXIvZ21jcC5oIC0tIFN0dWZmIGZvciBHTUNQIGhhbmRsaW5nCisvLworLy8gJElkJAorCisjaWZuZGVmIF9fR01DUF9IX18KKyNkZWZpbmUgX19HTUNQX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX0dNQ1BfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0dNQ1BfSF9QUk9UT19fCisjZGVmaW5lIF9fR01DUF9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworLypwcm90ZWN0ZWQqLyBpbnQgR01DUF9DaGFyKG1hcHBpbmcgZGF0YSk7CisvKnByb3RlY3RlZCovIGludCBHTUNQX0NoYW5uZWwoc3RyaW5nIG1zZywgc3RyaW5nIGNoYW5uZWwsIHN0cmluZyBzZW5kZXIpOworCisjZW5kaWYgLy8gX19HTUNQX0hfUFJPVE9fXworCisjZW5kaWYgIC8vIE5FRURfUFJPVE9ZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvbGlmZS5oIGIvc3lzL3BsYXllci9saWZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhOTg3NwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvbGlmZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBwbGF5ZXIvbGlmZS5oIC0tIHBsYXllciBsaWZlICBoZWFkZXIKKy8vCisvLyAkSWQ6IGRlc2NyaXB0aW9uLmgsdiAzLjYgMjAwMC8wMi8wOSAxNTo1NjoyNSBQYWRyZWljIEV4cCAkCisgCisjaWZuZGVmIF9fUExBWUVSX0xJRkVfSF9fCisjZGVmaW5lIF9fUExBWUVSX0xJRkVfSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2VuZGlmIC8vIF9fUExBWUVSX0xJRkVfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9MSUZFX0hfUFJPVE9fXworI2RlZmluZSBfX1BMQVlFUl9MSUZFX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCitwdWJsaWMgICAgdm9pZCAgICBmb3JjZV9zYXZlKCk7Citwcm90ZWN0ZWQgaW50ICAgICBkZWF0aF9zdWZmZXJpbmcoKTsKKworI2VuZGlmIC8vIF9fUExBWUVSX0xJRkVfSF9QUk9UT19fCisKKyNlbmRpZgkvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9tb25leWhhbmRsZXIuaCBiL3N5cy9wbGF5ZXIvbW9uZXloYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk0MmI2MgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvbW9uZXloYW5kbGVyLmgKQEAgLTAsMCArMSwxMiBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9tb25leWhhbmRsZXIuaCAtLSBXcmFwcGVyIGZ1ZXIgL3N5cy9jb250YWluZXIvbW9uZXloYW5kbGVyLmgKKy8vIEV4aXN0aWVydCBhdXMgR3J1ZW5kZW4gZGVyIEFid2FlcnRza29tcGF0aWJpbGl0YWV0LgorLy8KKy8vICRJZDogbW9uZXloYW5kbGVyLmggODM5NiAyMDEzLTAyLTE4IDIxOjU2OjM3WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1BMQVlFUl9NT05FWUhBTkRMRVJfSF9fCisjZGVmaW5lIF9fUExBWUVSX01PTkVZSEFORExFUl9IX18KKyNpbmNsdWRlIDxjb250YWluZXIvbW9uZXloYW5kbGVyLmg+CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9tb3ZpbmcuaCBiL3N5cy9wbGF5ZXIvbW92aW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQyYWI1OQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvbW92aW5nLmgKQEAgLTAsMCArMSwyOSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9tb3ZpbmcuaCAtLSBwbGF5ZXIgbW92aW5nIGhlYWRlcgorLy8KKy8vICRJZDogbW92aW5nLmgsdiAzLjIgMjAwMC8wMi8wOSAxNTo1NjoyNSBQYWRyZWljIEV4cCAkCisgCisjaWZuZGVmIF9fUExBWUVSX01PVklOR19IX18KKyNkZWZpbmUgX19QTEFZRVJfTU9WSU5HX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9NU0dJTiAgICAgICAgICAgICAgIm1zZ2luIgorI2RlZmluZSBQX01TR09VVCAgICAgICAgICAgICAibXNnb3V0IgorI2RlZmluZSBQX01NU0dJTiAgICAgICAgICAgICAibW1zZ2luIgorI2RlZmluZSBQX01NU0dPVVQgICAgICAgICAgICAibW1zZ291dCIKKworI2VuZGlmIC8vIF9fUExBWUVSX01PVklOR19IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX01PVklOR19IX1BST1RPX18gICAKKyNkZWZpbmUgX19QTEFZRVJfTU9WSU5HX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCisvLyBubyBwcm90b3R5cGVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9NT1ZJTkdfSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9wa2xvZy5oIGIvc3lzL3BsYXllci9wa2xvZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNWFjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL3BrbG9nLmgKQEAgLTAsMCArMSwxNSBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9wa2xvZy5oIC0tIG1vZHVsZSBmb3IgbG9nZ2luZyBwbGF5ZXIgdnMgcGxheWVyIGF0dGFja3MKKy8vCisvLyAkSWQ6IGNvbW0uaCx2IDMuMyAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKworI2lmbmRlZiBfX1BMQVlFUl9QS0xPR19IX18KKyNkZWZpbmUgX19QTEFZRVJfUEtMT0dfSF9fCisKK25vbWFzayBpbnQgQ2hlY2tBcmVuYUZpZ2h0KG9iamVjdCB2aWN0aW0pOworbm9tYXNrIHByb3RlY3RlZCBpbnQgQ2hlY2tQbGF5ZXJBdHRhY2sob2JqZWN0IGF0dGFja2VyLCBvYmplY3QgdmljdGltLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBhbmdyaWZmc21zZyk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9QS0xPR19IX18KKwpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci9wb3Rpb24uaCBiL3N5cy9wbGF5ZXIvcG90aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhiODFiMQotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvcG90aW9uLmgKQEAgLTAsMCArMSwzNCBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci9wb3Rpb24uaCAtLSBwb3Rpb24gc2VydmljZXMKKy8vCisvLyAkSWQ6IHBvdGlvbi5oIDkxMTcgMjAxNS0wMS0yNSAxMToyNToxNFogWmVzc3RyYSAkCisKKyNpZm5kZWYgX19QTEFZRVJfUE9USU9OX0hfXworI2RlZmluZSBfX1BMQVlFUl9QT1RJT05fSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX1BPVElPTlJPT01TICAgICAgICAgInBvdGlvbnJvb21zIgorI2RlZmluZSBQX0tOT1dOX1BPVElPTlJPT01TICAgImtub3duX3BvdGlvbnJvb21zIgorI2RlZmluZSBQX1RSQU5LX0ZJTkRFTiAgICAgICAgInRyYW5rX2ZpbmRlbiIKKworLy8gdmVyYWx0ZXRlIFByb3BzLCBsYW5nIHVuYmVudXR6dC4KKyNkZWZpbmUgUF9WSVNJVEVEX1BPVElPTlJPT01TICJ2aXNpdGVkX3BvdGlvbnJvb21zIgorI2RlZmluZSBQX0JPTlVTX1BPVElPTlMgICAgICAgImJvbnVzX3BvdGlvbnMiCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9QT1RJT05fSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9QT1RJT05fSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX1BPVElPTl9IX1BST1RPX18gCisKKy8vIHByb3RvdHlwZXMKKwordmFyYXJncyBpbnQgRmluZFBvdGlvbihzdHJpbmcgcyk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9QT1RJT05fSF9QUk9UT19fCisKKyNlbmRpZiAvLyBORUVEX1BST1RPWVBFUworCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL3F1ZXN0LmggYi9zeXMvcGxheWVyL3F1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg3MGZjNwotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvcXVlc3QuaApAQCAtMCwwICsxLDI5IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL3F1ZXN0cy5oIC0tIHBsYXllciBxdWVzdCBoYW5kbGluZworLy8KKy8vICRJZDogcXVlc3QuaCx2IDMuMiAyMDAwLzAyLzA5IDE1OjU2OjI1IFBhZHJlaWMgRXhwICQKKyAKKyNpZm5kZWYgX19QTEFZRVJfUVVFU1RTX0hfXworI2RlZmluZSBfX1BMQVlFUl9RVUVTVFNfSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX1FVRVNUUyAgICAgICAgICAgICAicXVlc3RzIgorI2RlZmluZSBQX1FQICAgICAgICAgICAgICAgICAicXVlc3Rwb2ludHMiCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9RVUVTVFNfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9RVUVTVFNfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX1FVRVNUU19IX1BST1RPX18gCisKKy8vIHByb3RvdHlwZXMKKwordmFyYXJncyBpbnQgR2l2ZVF1ZXN0KHN0cmluZyBxdWVzdG5hbWUsIHN0cmluZyBtZXNzYWdlKTsKK2ludCBRdWVyeVF1ZXN0KHN0cmluZyBxdWVzdG5hbWUpOworCisjZW5kaWYgLy8gX19QTEFZRVJfUVVFU1RTX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvc2tpbGxzLmggYi9zeXMvcGxheWVyL3NraWxscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NDNjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvcGxheWVyL3NraWxscy5oCkBAIC0wLDAgKzEsMjUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBza2lsbHMuaCAtLSBQcm90b3R5cGVuIGZ1ZXIgU2tpbGxmdW5rdGlvbiBhdXMgU3BpZWxlcm4uCisvLworLy8gJElkOiBza2lsbHMuaCA2NTU5IDIwMDctMTAtMjAgMTM6MDA6MjBaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fUExBWUVSX1NLSUxMU19IX18KKyNkZWZpbmUgX19QTEFZRVJfU0tJTExTX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9TS0lMTFNfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX1BMQVlFUl9TS0lMTFNfSF9QUk9UT19fCisjZGVmaW5lIF9fUExBWUVSX1NLSUxMU19IX1BST1RPX18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLy8gcHJvdG90eXBlcworcHJvdGVjdGVkIHZvaWQgIHNldF93ZWFwb25fc2tpbGxzKCk7Citwcm90ZWN0ZWQgdm9pZCAgRml4U2tpbGxzKCk7Citwcm90ZWN0ZWQgdm9pZCAgSW5pdFNraWxscygpOworCisjZW5kaWYgLy8gX19QTEFZRVJfU0tJTExTX0hfUFJPVE9fXworI2VuZGlmIC8vIE5FRURfUFJPVE9ZUEVTCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL3RlbG5ldG5lZy5oIGIvc3lzL3BsYXllci90ZWxuZXRuZWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTVlZDkwCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL3BsYXllci90ZWxuZXRuZWcuaApAQCAtMCwwICsxLDE5IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gdGVsbmV0bmVnLmggLS0gRGVmaW5pdGlvbmVuIHVuZCBQcm90b3R5cGVzIGZ1ZXIgVGVsbmV0LU5lZ290aWF0aW9ucworLy8KKy8vICRJZDogdGVsbmV0bmVnLmggODM0OCAyMDEzLTAyLTAzIDIyOjE0OjM5WiBaZXNzdHJhICQKKworI2luY2x1ZGUgIi9zZWN1cmUvdGVsbmV0bmVnLmgiCisKKyNpZm5kZWYgX1RFTE5FVE5FR19IXworI2RlZmluZSBfVEVMTkVUTkVHX0hfCisKKyNlbmRpZgorCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisjaWZuZGVmIF9URUxORVRORUdfSF9QUk9UT1NfCisjZGVmaW5lIF9URUxORVRORUdfSF9QUk9UT1NfCisKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9zeXMvcGxheWVyL3VzZXJfZmlsdGVyLmggYi9zeXMvcGxheWVyL3VzZXJfZmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTllODAzNgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvdXNlcl9maWx0ZXIuaApAQCAtMCwwICsxLDI3IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gcGxheWVyL3VzZXJfZmlsdGVyLmggLS0gdXNlcl9maWx0ZXJtb2R1bGUgcHJvdG90eXBlcy9wcm9wZXJ0aWVzCisvLworLy8gJElkOiBjb21tLmgsdiAzLjMgMjAwMC8wMi8wOSAxNTo1NjoyNSBQYWRyZWljIEV4cCAkCisKKyNpZm5kZWYgX19QTEFZRVJfVVNFUl9GSUxURVJfSF9fCisjZGVmaW5lIF9fUExBWUVSX1VTRVJfRklMVEVSX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9VU0VSX0ZJTFRFUl9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fUExBWUVSX1VTRVJfRklMVEVSX0hfUFJPVE9fXworI2RlZmluZSBfX1BMQVlFUl9VU0VSX0ZJTFRFUl9IX1BST1RPX18KKworLy8gcHJvdG90eXBlcworCitwcm90ZWN0ZWQgaW50IGlzX2FjdGl2ZV9ndWlkZShvYmplY3Qgb2IpOworb2JqZWN0ICpmaWx0ZXJfdXNlcnMoc3RyaW5nIHN0cik7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9VU0VSX0ZJTFRFUl9IX1BST1RPX18KKworI2VuZGlmIC8vIE5FRURfUFJPVE9ZUEVTCisKZGlmZiAtLWdpdCBhL3N5cy9wbGF5ZXIvdXRpbC5oIGIvc3lzL3BsYXllci91dGlsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM3ZGM1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9wbGF5ZXIvdXRpbC5oCkBAIC0wLDAgKzEsMjUgQEAKKy8vIE1vcmdlbkdyYXVlbiBNVURsaWIKKy8vCisvLyBzeXMvcGxheWVyL3V0aWwuaCAtLSBIZWFkZXJmaWxlIGZ1ZXIgL3N0ZC9wbGF5ZXIvdXRpbC5jCisvLworLy8gJElkOiB1dGlsLmgsdiAxLjEgMjAwNC8wNC8wOSAyMTowMjo0MSBWYW5pb24gRXhwICQKKworI2lmbmRlZiBfX1RISU5HX1VUSUxfSF9fCisjZGVmaW5lIF9fVEhJTkdfVVRJTF9IX18KKworI2VuZGlmIC8vIF9fVEhJTkdfVVRJTF9IX18KKworI2lmZGVmIE5FRURfUFJPVE9UWVBFUworCisjaWZuZGVmIF9fVEhJTkdfVVRJTF9IX1BST1RPX18KKyNkZWZpbmUgX19USElOR19VVElMX0hfUFJPVE9fXworCitwdWJsaWMgdm9pZCBTaG93UHJvcExpc3Qoc3RyaW5nICpwcm9wcyk7CitzdGF0aWMgdm9pZCBQcmV0dHlEdW1wKG1peGVkIHgpOworc3RhdGljIHZvaWQgRHVtcEFycmF5KG1peGVkICp4KTsKK3N0YXRpYyB2b2lkIER1bXBNYXBwaW5nKG1hcHBpbmcgeCk7CitzdGF0aWMgdm9pZCBEdW1wS2V5VmFsUGFpcihtYXBwaW5nIHgsIG1peGVkIGtleSwgaW50IHNpemUpOworCisjZW5kaWYgLy8gX19USElOR19VVElMX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1RZUEVTClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3lzL3BsYXllci92aWV3Y21kLmggYi9zeXMvcGxheWVyL3ZpZXdjbWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODJjY2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL3BsYXllci92aWV3Y21kLmgKQEAgLTAsMCArMSwyNyBAQAorLy8gTW9yZ2VuR3JhdWVuIE1VRGxpYgorLy8KKy8vIHBsYXllci92aWV3Y21kLmggLS0gdmlldyBjb21tYW5kIGhhbmRsaW5nCisvLworLy8gJElkOiB2aWV3Y21kLmggNjQwOCAyMDA3LTA4LTA3IDIzOjAyOjE4WiBaZXNzdHJhICQKKworI2lmbmRlZiBfX1BMQVlFUl9WSUVXQ01EX0hfXworI2RlZmluZSBfX1BMQVlFUl9WSUVXQ01EX0hfXworCisvLyBwcm9wZXJ0aWVzCisKKyNkZWZpbmUgUF9CTElORCAgICAgICAgICAgICAgImJsaW5kIgorI2RlZmluZSBQX0JSSUVGICAgICAgICAgICAgICAiYnJpZWYiCisKKyNlbmRpZiAvLyBfX1BMQVlFUl9WSUVXQ01EX0hfXworCisjaWZkZWYgTkVFRF9QUk9UT1RZUEVTCisKKyNpZm5kZWYgX19QTEFZRVJfVklFV0NNRF9IX1BST1RPX18gICAgIAorI2RlZmluZSBfX1BMQVlFUl9WSUVXQ01EX0hfUFJPVE9fXworCisvLyBwcm90b3R5cGVzCit2YXJhcmdzIHN0cmluZyBlbnZfZGVzY3IoaW50IGFsbG93X3Nob3J0LGludCBmbGFncywgaW50IGZvcmNlX3Nob3J0ICk7CisKKyNlbmRpZiAvLyBfX1BMQVlFUl9WSUVXQ01EX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMK