ZGlmZiAtLWdpdCBhL2F1dG8vbGliL29wZW5zc2wvY29uZiBiL2F1dG8vbGliL29wZW5zc2wvY29uZgppbmRleCBlMGRhOTJhLi5jOGM0N2UyIDEwMDY0NAotLS0gYS9hdXRvL2xpYi9vcGVuc3NsL2NvbmYKKysrIGIvYXV0by9saWIvb3BlbnNzbC9jb25mCkBAIC00LDggKzQsNiBAQAogCiBpZiBbICRPUEVOU1NMICE9IE5PTkUgXTsgdGhlbgogICAgIENPUkVfSU5DUz0iJENPUkVfSU5DUyAkT1BFTlNTTC9pbmNsdWRlIgotICAgIENPUkVfREVQUz0iJENPUkVfREVQUyAkT1BFTlNTTF9ERVBTIgotICAgIENPUkVfU1JDUz0iJENPUkVfU1JDUyAkT1BFTlNTTF9TUkNTIgogCiAgICAgY2FzZSAiJENDIiBpbgogICAgICAgICAqKQpAQCAtMzYsOCArMzQsNiBAQAogICAgICAgICAuIGF1dG8vZmVhdHVyZQogCiAgICAgICAgIGlmIFsgJG5neF9mb3VuZCA9IHllcyBdOyB0aGVuCi0gICAgICAgICAgICBDT1JFX0RFUFM9IiRDT1JFX0RFUFMgJE9QRU5TU0xfREVQUyIKLSAgICAgICAgICAgIENPUkVfU1JDUz0iJENPUkVfU1JDUyAkT1BFTlNTTF9TUkNTIgogICAgICAgICAgICAgQ09SRV9MSUJTPSIkQ09SRV9MSUJTICRuZ3hfZmVhdHVyZV9saWJzIgogICAgICAgICAgICAgT1BFTlNTTD1ZRVMKICAgICAgICAgZmkKZGlmZiAtLWdpdCBhL2F1dG8vbWFrZSBiL2F1dG8vbWFrZQppbmRleCBmMzA0YWM3Li44NjZmYjM0IDEwMDY0NAotLS0gYS9hdXRvL21ha2UKKysrIGIvYXV0by9tYWtlCkBAIC0xMjQsNyArMTI0LDcgQEAKIAogY2F0IDw8IEVORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+ICROR1hfTUFLRUZJTEUKIAotQURET05fREVQUyA9IFwkKENPUkVfRFBFUykgJE5HWF9BRERPTl9ERVBTCitBRERPTl9ERVBTID0gXCQoQ09SRV9ERVBTKSAkTkdYX0FERE9OX0RFUFMKIAogRU5ECiAKZGlmZiAtLWdpdCBhL2F1dG8vbW9kdWxlcyBiL2F1dG8vbW9kdWxlcwppbmRleCA2MDYxNDlhLi40NmYzNTZjIDEwMDY0NAotLS0gYS9hdXRvL21vZHVsZXMKKysrIGIvYXV0by9tb2R1bGVzCkBAIC02MSwxNyArNjEsMjIgQEAKICAgICBIVFRQX1BPU1RQT05FPVlFUwogZmkKIAorIyB0aGUgbW9kdWxlIG9yZGVyIGlzIGltcG9ydGFudAorIyAgICAgbmd4X2h0dHBfYXV0b2luZGV4X21vZHVsZQorIyAgICAgbmd4X2h0dHBfaW5kZXhfbW9kdWxlCisjCisjCiAjIHRoZSBmaWx0ZXIgb3JkZXIgaXMgaW1wb3J0YW50CiAjICAgICBuZ3hfaHR0cF93cml0ZV9maWx0ZXIKICMgICAgIG5neF9odHRwX2hlYWRlcl9maWx0ZXIKICMgICAgIG5neF9odHRwX2NodW5rZWRfZmlsdGVyCiAjICAgICBuZ3hfaHR0cF9yYW5nZV9oZWFkZXJfZmlsdGVyCi0jICAgICBuZ3hfaHR0cF9zc2xfZmlsdGVyCiAjICAgICBuZ3hfaHR0cF9nemlwX2ZpbHRlcgogIyAgICAgbmd4X2h0dHBfcG9zdHBvbmVfZmlsdGVyCiAjICAgICBuZ3hfaHR0cF9jaGFyc2V0X2ZpbHRlcgogIyAgICAgbmd4X2h0dHBfc3NpX2ZpbHRlcgotIyAgICAgbmd4X2h0dHBfaGVhZGVyc19maWx0ZXIKKyMgICAgICAgICBuZ3hfaHR0cF91c2VyaWRfZmlsdGVyCisjICAgICAgICAgbmd4X2h0dHBfaGVhZGVyc19maWx0ZXIKICMgICAgIG5neF9odHRwX2NvcHlfZmlsdGVyCiAjICAgICBuZ3hfaHR0cF9yYW5nZV9ib2R5X2ZpbHRlcgogIyAgICAgbmd4X2h0dHBfbm90X21vZGlmaWVkX2ZpbHRlcgpAQCAtMjEyLDggKzIxNywyMyBAQAogZmkKIAogCitpZiBbICRJTUFQX1NTTCA9IFlFUyBdOyB0aGVuCisgICAgSU1BUF9ERVBTPSIkSU1BUF9ERVBTICRJTUFQX1NTTF9ERVBTIgorICAgIElNQVBfU1JDUz0iJElNQVBfU1JDUyAkSU1BUF9TU0xfU1JDUyIKKyAgICBoYXZlPU5HWF9JTUFQX1NTTCAuIGF1dG8vaGF2ZQorICAgIFVTRV9PUEVOU1NMPVlFUworZmkKKworCiBtb2R1bGVzPSIkQ09SRV9NT0RVTEVTICRFVkVOVF9NT0RVTEVTIgogCisKK2lmIFsgJFVTRV9PUEVOU1NMID0gWUVTIF07IHRoZW4KKyAgICBtb2R1bGVzPSIkbW9kdWxlcyAkT1BFTlNTTF9NT0RVTEUiCisgICAgQ09SRV9ERVBTPSIkQ09SRV9ERVBTICRPUEVOU1NMX0RFUFMiCisgICAgQ09SRV9TUkNTPSIkQ09SRV9TUkNTICRPUEVOU1NMX1NSQ1MiCitmaQorCiBpZiBbICRIVFRQID0gWUVTIF07IHRoZW4KICAgICBtb2R1bGVzPSIkbW9kdWxlcyAkSFRUUF9NT0RVTEVTICRIVFRQX0ZJTFRFUl9NT0RVTEVTIFwKICAgICAgICAgICAgICAkSFRUUF9IRUFERVJTX0ZJTFRFUl9NT0RVTEUgXApAQCAtMjMwLDEwICsyNTAsNiBAQAogCiAgICAgaWYgWyAkSU1BUF9TU0wgPSBZRVMgXTsgdGhlbgogICAgICAgICBtb2R1bGVzPSIkbW9kdWxlcyAkSU1BUF9TU0xfTU9EVUxFIgotICAgICAgICBJTUFQX0RFUFM9IiRJTUFQX0RFUFMgJElNQVBfU1NMX0RFUFMiCi0gICAgICAgIElNQVBfU1JDUz0iJElNQVBfU1JDUyAkSU1BUF9TU0xfU1JDUyIKLSAgICAgICAgaGF2ZT1OR1hfSU1BUF9TU0wgLiBhdXRvL2hhdmUKLSAgICAgICAgVVNFX09QRU5TU0w9WUVTCiAgICAgZmkKIAogICAgIG1vZHVsZXM9IiRtb2R1bGVzICRJTUFQX0FVVEhfSFRUUF9NT0RVTEUiCmRpZmYgLS1naXQgYS9hdXRvL3NvdXJjZXMgYi9hdXRvL3NvdXJjZXMKaW5kZXggODA2ODc1ZC4uYmYwNDg5NCAxMDA2NDQKLS0tIGEvYXV0by9zb3VyY2VzCisrKyBiL2F1dG8vc291cmNlcwpAQCAtNTUsNiArNTUsMTEgQEAKIFJFR0VYX1NSQ1M9c3JjL2NvcmUvbmd4X3JlZ2V4LmMKIAogCitPUEVOU1NMX01PRFVMRT1uZ3hfb3BlbnNzbF9tb2R1bGUKK09QRU5TU0xfREVQUz1zcmMvZXZlbnQvbmd4X2V2ZW50X29wZW5zc2wuaAorT1BFTlNTTF9TUkNTPXNyYy9ldmVudC9uZ3hfZXZlbnRfb3BlbnNzbC5jCisKKwogRVZFTlRfTU9EVUxFUz0ibmd4X2V2ZW50c19tb2R1bGUgbmd4X2V2ZW50X2NvcmVfbW9kdWxlIgogCiBFVkVOVF9JTkNTPSJzcmMvZXZlbnQgc3JjL2V2ZW50L21vZHVsZXMiCkBAIC0xMDQsMTAgKzEwOSw2IEBACiAgICAgICAgICAgc3JjL29zL3VuaXgvbmd4X2Fpb193cml0ZV9jaGFpbi5jIgogCiAKLU9QRU5TU0xfREVQUz1zcmMvZXZlbnQvbmd4X2V2ZW50X29wZW5zc2wuaAotT1BFTlNTTF9TUkNTPXNyYy9ldmVudC9uZ3hfZXZlbnRfb3BlbnNzbC5jCi0KLQogVU5JWF9JTkNTPSIkQ09SRV9JTkNTICRFVkVOVF9JTkNTIHNyYy9vcy91bml4IgogCiBVTklYX0RFUFM9IiRDT1JFX0RFUFMgJEVWRU5UX0RFUFMgXApkaWZmIC0tZ2l0IGEvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwgYi9kb2NzL3htbC9uZ2lueC9jaGFuZ2VzLnhtbAppbmRleCAzYmYyNjExLi4zYTMxNmRlIDEwMDY0NAotLS0gYS9kb2NzL3htbC9uZ2lueC9jaGFuZ2VzLnhtbAorKysgYi9kb2NzL3htbC9uZ2lueC9jaGFuZ2VzLnhtbApAQCAtOSw2ICs5LDQxIEBACiA8dGl0bGUgbGFuZz0iZW4iPm5naW54IGNoYW5nZWxvZzwvdGl0bGU+CiAKIAorPGNoYW5nZXMgdmVyPSIwLjEuNDUiIGRhdGU9IjA4LjA5LjIwMDUiPgorCis8Y2hhbmdlIHR5cGU9ImNoYW5nZSI+Cis8cGFyYSBsYW5nPSJydSI+CivEydLFy9TJ18Egc3NsX2VuZ2luZSDV0NLB2sTOxc7BINcgzc/E1czFIG5neF9odHRwX3NzbF9tb2R1bGUgyQor0MXSxc7F08XOwSDOwSDHzM/CwczYztnKINXSz9fFztguCis8L3BhcmE+Cis8cGFyYSBsYW5nPSJlbiI+Cit0aGUgInNzbF9lbmdpbmUiIGRpcmVjdGl2ZSBpcyBjYW5jZWxlZCBpbiB0aGUgbmd4X2h0dHBfc3NsX21vZHVsZQorYW5kIG5vdyBpcyBpbnRyb2R1Y2VkIGF0IGdsb2JhbCBsZXZlbC4KKzwvcGFyYT4KKzwvY2hhbmdlPgorCis8Y2hhbmdlIHR5cGU9ImJ1Z2ZpeCI+Cis8cGFyYSBsYW5nPSJydSI+CivP1NfF1Nkg0yDQz8TawdDSz9PBzcksINfLzMDeo87O2cUg0yDQz83P3djAIFNTSSwgzsUg0MXSxcTB18HMydPYCivexdLF2iBTU0wg08/FxMnOxc7JxS4KKzwvcGFyYT4KKzxwYXJhIGxhbmc9ImVuIj4KK3RoZSByZXNwb25zZXMgd2l0aCBTU0kgc3VicmVxdWVzdHMgZGlkIG5vdCB0cmFuc2ZlcnJlZCB2aWEgU1NMIGNvbm5lY3Rpb24uCis8L3BhcmE+Cis8L2NoYW5nZT4KKworPGNoYW5nZT4KKzxwYXJhIGxhbmc9InJ1Ij4KK/LB2s7ZxSDJ09DSwdfMxc7J0SDXIElNQVAvUE9QMyDQ0s/L08kuCis8L3BhcmE+Cis8cGFyYSBsYW5nPSJlbiI+CitWYXJpb3VzIGJ1ZyBmaXhlcyBpbiB0aGUgSU1BUC9QT1AzIHByb3h5LgorPC9wYXJhPgorPC9jaGFuZ2U+CisKKzwvY2hhbmdlcz4KKworCiA8Y2hhbmdlcyB2ZXI9IjAuMS40NCIgZGF0ZT0iMDYuMDkuMjAwNSI+CiAKIDxjaGFuZ2UgdHlwZT0iZmVhdHVyZSI+CkBAIC0yMiwxMCArNTcsMTAgQEAKIAogPGNoYW5nZSB0eXBlPSJmZWF0dXJlIj4KIDxwYXJhIGxhbmc9InJ1Ij4KLcTJ0sXL1MnXwSBwcm94eV90aW1lb3V0LgorxMnSxcvUydfBIHByb3h5X3RpbWVvdXQgzc/E1czRIG5neF9pbWFwX3Byb3h5X21vZHVsZS4KIDwvcGFyYT4KIDxwYXJhIGxhbmc9ImVuIj4KLXRoZSAicHJveHlfdGltZW91dCIgZGlyZWN0aXZlLgordGhlICJwcm94eV90aW1lb3V0IiBkaXJlY3RpdmUgb2YgdGhlIG5neF9pbWFwX3Byb3h5X21vZHVsZS4KIDwvcGFyYT4KIDwvY2hhbmdlPgogCkBAIC03NSw3ICsxMTAsNyBAQAogCiA8Y2hhbmdlIHR5cGU9ImNoYW5nZSI+CiA8cGFyYSBsYW5nPSJydSI+Ci3QwdLBzcXU0tkgRmFzdENHSSwg0yDQ1dPU2c0g2s7B3sXOydHNySwg1MXQxdLYINDF0sXEwcDU09Eg08XS18XS1S4KK9DB0sHNxdTS2SBGYXN0Q0dJINMg0NXT1NnNINrOwd7FzsnRzckg1MXQxdLYINDF0sXEwcDU09Eg08XS18XS1S4KIDwvcGFyYT4KIDxwYXJhIGxhbmc9ImVuIj4KIHRoZSBGYXN0Q0dJIHBhcmFtZXRlcnMgd2l0aCB0aGUgZW1wdHkgdmFsdWVzIG5vdyBhcmUgcGFzc2VkIHRvIGEgc2VydmVyLgpkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvbmdpbnguYyBiL3NyYy9jb3JlL25naW54LmMKaW5kZXggNzhlM2NhYS4uMTBkYjU1NSAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvbmdpbnguYworKysgYi9zcmMvY29yZS9uZ2lueC5jCkBAIC0xMTgsOCArMTE4LDE0IEBACiAgICAgJm5neF9jb3JlX21vZHVsZV9jdHgsICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfY29yZV9jb21tYW5kcywgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9DT1JFX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCkBAIC0xNTMsNiArMTU5LDcgQEAKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCisgICAgLyogU1RVQiAqLwogI2lmIChOR1hfT1BFTlNTTCkKICAgICBuZ3hfc3NsX2luaXQobG9nKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvbmdpbnguaCBiL3NyYy9jb3JlL25naW54LmgKaW5kZXggYTI0Zjg4My4uOTA0YzJlYSAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvbmdpbnguaAorKysgYi9zcmMvY29yZS9uZ2lueC5oCkBAIC04LDcgKzgsNyBAQAogI2RlZmluZSBfTkdJTlhfSF9JTkNMVURFRF8KIAogCi0jZGVmaW5lIE5HSU5YX1ZFUiAgICAgICAgICAibmdpbngvMC4xLjQ0IgorI2RlZmluZSBOR0lOWF9WRVIgICAgICAgICAgIm5naW54LzAuMS40NSIKIAogI2RlZmluZSBOR0lOWF9WQVIgICAgICAgICAgIk5HSU5YIgogI2RlZmluZSBOR1hfTkVXUElEX0VYVCAgICAgIi5uZXdiaW4iCmRpZmYgLS1naXQgYS9zcmMvY29yZS9uZ3hfY29uZl9maWxlLmMgYi9zcmMvY29yZS9uZ3hfY29uZl9maWxlLmMKaW5kZXggMWE2NmVhOS4uYTUzNmJkNiAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvbmd4X2NvbmZfZmlsZS5jCisrKyBiL3NyYy9jb3JlL25neF9jb25mX2ZpbGUuYwpAQCAtMzEsOCArMzEsMTQgQEAKICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9jb25mX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0NPTkZfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9jb3JlL25neF9jb25mX2ZpbGUuaCBiL3NyYy9jb3JlL25neF9jb25mX2ZpbGUuaAppbmRleCAxZjRlNzJjLi40ODM4NTJmIDEwMDY0NAotLS0gYS9zcmMvY29yZS9uZ3hfY29uZl9maWxlLmgKKysrIGIvc3JjL2NvcmUvbmd4X2NvbmZfZmlsZS5oCkBAIC02NSw4ICs2NSw2IEBACiAjZGVmaW5lIE5HWF9DT05GX0JMT0NLX0RPTkUgIDIKICNkZWZpbmUgTkdYX0NPTkZfRklMRV9ET05FICAgMwogCi0jZGVmaW5lIE5HWF9NT0RVTEVfVjEgICAgICAgIDAsIDAsIDEsIDAsIDAKLQogI2RlZmluZSBOR1hfQ09SRV9NT0RVTEUgICAgICAweDQ1NTI0RjQzICAvKiAiQ09SRSIgKi8KICNkZWZpbmUgTkdYX0NPTkZfTU9EVUxFICAgICAgMHg0NjRFNEY0MyAgLyogIkNPTkYiICovCiAKQEAgLTk5LDIxICs5Nyw0MiBAQAogfTsKIAogCisjZGVmaW5lIE5HWF9NT0RVTEVfVjEgICAgICAgICAgMCwgMCwgMSwgMCwgMCwgMCwgMAorI2RlZmluZSBOR1hfTU9EVUxFX1YxX1BBRERJTkcgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAKKwogc3RydWN0IG5neF9tb2R1bGVfcyB7CiAgICAgbmd4X3VpbnRfdCAgICAgICAgICAgIGN0eF9pbmRleDsKICAgICBuZ3hfdWludF90ICAgICAgICAgICAgaW5kZXg7CiAgICAgbmd4X3VpbnRfdCAgICAgICAgICAgIHZlcnNpb247CisKICAgICBuZ3hfdWludF90ICAgICAgICAgICAgc3BhcmUwOwogICAgIG5neF91aW50X3QgICAgICAgICAgICBzcGFyZTE7CisgICAgbmd4X3VpbnRfdCAgICAgICAgICAgIHNwYXJlMjsKKyAgICBuZ3hfdWludF90ICAgICAgICAgICAgc3BhcmUzOwogCiAgICAgdm9pZCAgICAgICAgICAgICAgICAgKmN0eDsKICAgICBuZ3hfY29tbWFuZF90ICAgICAgICAqY29tbWFuZHM7CiAgICAgbmd4X3VpbnRfdCAgICAgICAgICAgIHR5cGU7CisKKyAgICBuZ3hfaW50X3QgICAgICAgICAgICgqaW5pdF9tYXN0ZXIpKG5neF9sb2dfdCAqbG9nKTsKKwogICAgIG5neF9pbnRfdCAgICAgICAgICAgKCppbml0X21vZHVsZSkobmd4X2N5Y2xlX3QgKmN5Y2xlKTsKKwogICAgIG5neF9pbnRfdCAgICAgICAgICAgKCppbml0X3Byb2Nlc3MpKG5neF9jeWNsZV90ICpjeWNsZSk7Ci0jaWYgMAogICAgIG5neF9pbnRfdCAgICAgICAgICAgKCppbml0X3RocmVhZCkobmd4X2N5Y2xlX3QgKmN5Y2xlKTsKLSNlbmRpZgorICAgIG5neF9pbnRfdCAgICAgICAgICAgKCpleGl0X3RocmVhZCkobmd4X2N5Y2xlX3QgKmN5Y2xlKTsKKyAgICBuZ3hfaW50X3QgICAgICAgICAgICgqZXhpdF9wcm9jZXNzKShuZ3hfY3ljbGVfdCAqY3ljbGUpOworCisgICAgbmd4X2ludF90ICAgICAgICAgICAoKmV4aXRfbWFzdGVyKShuZ3hfY3ljbGVfdCAqY3ljbGUpOworCisgICAgdWludHB0cl90ICAgICAgICAgICAgIHNwYXJlX2hvb2swOworICAgIHVpbnRwdHJfdCAgICAgICAgICAgICBzcGFyZV9ob29rMTsKKyAgICB1aW50cHRyX3QgICAgICAgICAgICAgc3BhcmVfaG9vazI7CisgICAgdWludHB0cl90ICAgICAgICAgICAgIHNwYXJlX2hvb2szOworICAgIHVpbnRwdHJfdCAgICAgICAgICAgICBzcGFyZV9ob29rNDsKKyAgICB1aW50cHRyX3QgICAgICAgICAgICAgc3BhcmVfaG9vazU7CisgICAgdWludHB0cl90ICAgICAgICAgICAgIHNwYXJlX2hvb2s2OworICAgIHVpbnRwdHJfdCAgICAgICAgICAgICBzcGFyZV9ob29rNzsKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvbmd4X2Nvbm5lY3Rpb24uYyBiL3NyYy9jb3JlL25neF9jb25uZWN0aW9uLmMKaW5kZXggZmU3NTI2NC4uYzQyM2MwNSAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvbmd4X2Nvbm5lY3Rpb24uYworKysgYi9zcmMvY29yZS9uZ3hfY29ubmVjdGlvbi5jCkBAIC02Nyw2ICs2Nyw3IEBACiAgICAgbmd4X2xpc3RlbmluZ190ICAgICAgICAgICAqbHM7CiAgICAgc3RydWN0IHNvY2thZGRyX2luICAgICAgICAqc2luOwogI2lmIChOR1hfSEFWRV9ERUZFUlJFRF9BQ0NFUFQgJiYgZGVmaW5lZCBTT19BQ0NFUFRGSUxURVIpCisgICAgbmd4X2Vycl90ICAgICAgICAgICAgICAgICAgZXJyOwogICAgIHNvY2tsZW5fdCAgICAgICAgICAgICAgICAgIGFmbGVuOwogICAgIHN0cnVjdCBhY2NlcHRfZmlsdGVyX2FyZyAgIGFmOwogI2VuZGlmCkBAIC0xMzMsNyArMTM0LDEzIEBACiAgICAgICAgIGlmIChnZXRzb2Nrb3B0KGxzW2ldLmZkLCBTT0xfU09DS0VULCBTT19BQ0NFUFRGSUxURVIsICZhZiwgJmFmbGVuKQogICAgICAgICAgICAgPT0gLTEpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19OT1RJQ0UsIGN5Y2xlLT5sb2csIG5neF9lcnJubywKKyAgICAgICAgICAgIGVyciA9IG5neF9lcnJubzsKKworICAgICAgICAgICAgaWYgKGVyciA9PSBOR1hfRUlOVkFMKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19OT1RJQ0UsIGN5Y2xlLT5sb2csIGVyciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImdldHNvY2tvcHQoU09fQUNDRVBURklMVEVSKSBmb3IgJVYgZmFpbGVkLCBpZ25vcmVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJmxzW2ldLmFkZHJfdGV4dCk7CiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9jb3JlL25neF9sb2cuYyBiL3NyYy9jb3JlL25neF9sb2cuYwppbmRleCBlZmM2MmY5Li45MDVjOGExIDEwMDY0NAotLS0gYS9zcmMvY29yZS9uZ3hfbG9nLmMKKysrIGIvc3JjL2NvcmUvbmd4X2xvZy5jCkBAIC0zNyw4ICszNywxNCBAQAogICAgICZuZ3hfZXJybG9nX21vZHVsZV9jdHgsICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2VycmxvZ19jb21tYW5kcywgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfQ09SRV9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2Fpb19tb2R1bGUuYyBiL3NyYy9ldmVudC9tb2R1bGVzL25neF9haW9fbW9kdWxlLmMKaW5kZXggMzdkNTIwYS4uYmY3OGE4ZSAxMDA2NDQKLS0tIGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2Fpb19tb2R1bGUuYworKysgYi9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfYWlvX21vZHVsZS5jCkBAIC01OCw4ICs1OCwxNCBAQAogICAgICZuZ3hfYWlvX21vZHVsZV9jdHgsICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfRVZFTlRfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2RldnBvbGxfbW9kdWxlLmMgYi9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfZGV2cG9sbF9tb2R1bGUuYwppbmRleCBjYWI1YWYwLi40MTNiMGRlIDEwMDY0NAotLS0gYS9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfZGV2cG9sbF9tb2R1bGUuYworKysgYi9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfZGV2cG9sbF9tb2R1bGUuYwpAQCAtOTUsOCArOTUsMTQgQEAKICAgICAmbmd4X2RldnBvbGxfbW9kdWxlX2N0eCwgICAgICAgICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9kZXZwb2xsX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0VWRU5UX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9ldmVudC9tb2R1bGVzL25neF9lcG9sbF9tb2R1bGUuYyBiL3NyYy9ldmVudC9tb2R1bGVzL25neF9lcG9sbF9tb2R1bGUuYwppbmRleCA5ODQ3ZTBmLi43NWEwYjBmIDEwMDY0NAotLS0gYS9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfZXBvbGxfbW9kdWxlLmMKKysrIGIvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2Vwb2xsX21vZHVsZS5jCkBAIC0xMjUsOCArMTI1LDE0IEBACiAgICAgJm5neF9lcG9sbF9tb2R1bGVfY3R4LCAgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2Vwb2xsX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0VWRU5UX01PRFVMRSwgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9ldmVudC9tb2R1bGVzL25neF9pb2NwX21vZHVsZS5jIGIvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2lvY3BfbW9kdWxlLmMKaW5kZXggMWJiNjc3Yy4uNWM5ZTdlNiAxMDA2NDQKLS0tIGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2lvY3BfbW9kdWxlLmMKKysrIGIvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2lvY3BfbW9kdWxlLmMKQEAgLTczLDggKzczLDE0IEBACiAgICAgJm5neF9pb2NwX21vZHVsZV9jdHgsICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaW9jcF9jb21tYW5kcywgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9FVkVOVF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfa3F1ZXVlX21vZHVsZS5jIGIvc3JjL2V2ZW50L21vZHVsZXMvbmd4X2txdWV1ZV9tb2R1bGUuYwppbmRleCA3MTNlYTFhLi43OGViYmFkIDEwMDY0NAotLS0gYS9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfa3F1ZXVlX21vZHVsZS5jCisrKyBiL3NyYy9ldmVudC9tb2R1bGVzL25neF9rcXVldWVfbW9kdWxlLmMKQEAgLTk4LDggKzk4LDE0IEBACiAgICAgJm5neF9rcXVldWVfbW9kdWxlX2N0eCwgICAgICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfa3F1ZXVlX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9FVkVOVF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfcG9sbF9tb2R1bGUuYyBiL3NyYy9ldmVudC9tb2R1bGVzL25neF9wb2xsX21vZHVsZS5jCmluZGV4IDk3YWM3Y2MuLjY4ZDU5MmMgMTAwNjQ0Ci0tLSBhL3NyYy9ldmVudC9tb2R1bGVzL25neF9wb2xsX21vZHVsZS5jCisrKyBiL3NyYy9ldmVudC9tb2R1bGVzL25neF9wb2xsX21vZHVsZS5jCkBAIC01NCw4ICs1NCwxNCBAQAogICAgICZuZ3hfcG9sbF9tb2R1bGVfY3R4LCAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfRVZFTlRfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X3J0c2lnX21vZHVsZS5jIGIvc3JjL2V2ZW50L21vZHVsZXMvbmd4X3J0c2lnX21vZHVsZS5jCmluZGV4IDgzOGIyN2QuLjY5NzkyYzYgMTAwNjQ0Ci0tLSBhL3NyYy9ldmVudC9tb2R1bGVzL25neF9ydHNpZ19tb2R1bGUuYworKysgYi9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfcnRzaWdfbW9kdWxlLmMKQEAgLTEyMiw4ICsxMjIsMTQgQEAKICAgICAmbmd4X3J0c2lnX21vZHVsZV9jdHgsICAgICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfcnRzaWdfY29tbWFuZHMsICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfRVZFTlRfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X3NlbGVjdF9tb2R1bGUuYyBiL3NyYy9ldmVudC9tb2R1bGVzL25neF9zZWxlY3RfbW9kdWxlLmMKaW5kZXggNGNmODg0MC4uN2NiMzM4MSAxMDA2NDQKLS0tIGEvc3JjL2V2ZW50L21vZHVsZXMvbmd4X3NlbGVjdF9tb2R1bGUuYworKysgYi9zcmMvZXZlbnQvbW9kdWxlcy9uZ3hfc2VsZWN0X21vZHVsZS5jCkBAIC02Nyw4ICs2NywxNCBAQAogICAgICZuZ3hfc2VsZWN0X21vZHVsZV9jdHgsICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfRVZFTlRfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L25neF9ldmVudC5jIGIvc3JjL2V2ZW50L25neF9ldmVudC5jCmluZGV4IDI3NGJlNmMuLjU1NTdjMzQgMTAwNjQ0Ci0tLSBhL3NyYy9ldmVudC9uZ3hfZXZlbnQuYworKysgYi9zcmMvZXZlbnQvbmd4X2V2ZW50LmMKQEAgLTk1LDggKzk1LDE0IEBACiAgICAgJm5neF9ldmVudHNfbW9kdWxlX2N0eCwgICAgICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfZXZlbnRzX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9DT1JFX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCkBAIC0xNjcsOCArMTczLDE0IEBACiAgICAgJm5neF9ldmVudF9jb3JlX21vZHVsZV9jdHgsICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfZXZlbnRfY29yZV9jb21tYW5kcywgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9FVkVOVF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBuZ3hfZXZlbnRfbW9kdWxlX2luaXQsICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIG5neF9ldmVudF9wcm9jZXNzX2luaXQgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIG5neF9ldmVudF9wcm9jZXNzX2luaXQsICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvZXZlbnQvbmd4X2V2ZW50X2Nvbm5lY3QuYyBiL3NyYy9ldmVudC9uZ3hfZXZlbnRfY29ubmVjdC5jCmluZGV4IDdjYWIzOGMuLmJlMWQ5NjMgMTAwNjQ0Ci0tLSBhL3NyYy9ldmVudC9uZ3hfZXZlbnRfY29ubmVjdC5jCisrKyBiL3NyYy9ldmVudC9uZ3hfZXZlbnRfY29ubmVjdC5jCkBAIC0xNyw3ICsxNyw3IEBACiBuZ3hfZXZlbnRfY29ubmVjdF9wZWVyKG5neF9wZWVyX2Nvbm5lY3Rpb25fdCAqcGMpCiB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgcmM7Ci0gICAgbmd4X3VpbnRfdCAgICAgICAgICAgaW5zdGFuY2U7CisgICAgbmd4X3VpbnRfdCAgICAgICAgICAgaW5zdGFuY2UsIGxldmVsOwogICAgIHVfaW50ICAgICAgICAgICAgICAgIGV2ZW50OwogICAgIHRpbWVfdCAgICAgICAgICAgICAgIG5vdzsKICAgICBuZ3hfZXJyX3QgICAgICAgICAgICBlcnI7CkBAIC0yODMsMjAgKzI4MywxNSBAQAogICAgICAgICAvKiBXaW5zb2NrIHJldHVybnMgV1NBRVdPVUxEQkxPQ0sgKE5HWF9FQUdBSU4pICovCiAKICAgICAgICAgaWYgKGVyciAhPSBOR1hfRUlOUFJPR1JFU1MgJiYgZXJyICE9IE5HWF9FQUdBSU4pIHsKLSAgICAgICAgICAgIG5neF9jb25uZWN0aW9uX2Vycm9yKGMsIGVyciwgImNvbm5lY3QoKSBmYWlsZWQiKTsKIAotI2lmIDAKLSN1bmRlZiBzdW4KLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIHN0cnVjdCBzb2NrYWRkcl91biAgKnN1bjsKLQotICAgICAgICAgICAgc3VuID0gKHN0cnVjdCBzb2NrYWRkcl91biAqKSBwZWVyLT5zb2NrYWRkcjsKLQotICAgICAgICAgICAgbmd4X2xvZ19lcnJvcihOR1hfTE9HX0FMRVJULCBwYy0+bG9nLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIlc1wiLCBmOiVkLCBsOiV1eiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN1bi0+c3VuX3BhdGgsIHN1bi0+c3VuX2ZhbWlseSwgcGVlci0+c29ja2xlbik7CisgICAgICAgICAgICBpZiAoZXJyID09IE5HWF9FQ09OTlJFRlVTRUQgfHwgZXJyID09IE5HWF9FSE9TVFVOUkVBQ0gpIHsKKyAgICAgICAgICAgICAgICBsZXZlbCA9IE5HWF9MT0dfRVJSOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsZXZlbCA9IE5HWF9MT0dfQ1JJVDsKICAgICAgICAgICAgIH0KLSNlbmRpZgorCisgICAgICAgICAgICBuZ3hfbG9nX2Vycm9yKGxldmVsLCBjLT5sb2csIGVyciwgImNvbm5lY3QoKSB0byAlViBmYWlsZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcGVlci0+bmFtZSk7CiAKICAgICAgICAgICAgIHJldHVybiBOR1hfQ09OTkVDVF9FUlJPUjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL2V2ZW50L25neF9ldmVudF9vcGVuc3NsLmMgYi9zcmMvZXZlbnQvbmd4X2V2ZW50X29wZW5zc2wuYwppbmRleCA0YzdkZWIzLi5iMDI5MjZhIDEwMDY0NAotLS0gYS9zcmMvZXZlbnQvbmd4X2V2ZW50X29wZW5zc2wuYworKysgYi9zcmMvZXZlbnQvbmd4X2V2ZW50X29wZW5zc2wuYwpAQCAtOCwxMiArOCw2MiBAQAogI2luY2x1ZGUgPG5neF9jb3JlLmg+CiAjaW5jbHVkZSA8bmd4X2V2ZW50Lmg+CiAKLSNpbmNsdWRlIDxvcGVuc3NsL2VuZ2luZS5oPgorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgbmd4X3N0cl90ICBlbmdpbmU7Cit9IG5neF9vcGVuc3NsX2NvbmZfdDsKIAogCiBzdGF0aWMgbmd4X2ludF90IG5neF9zc2xfaGFuZGxlX3JlY3Yobmd4X2Nvbm5lY3Rpb25fdCAqYywgaW50IG4pOwogc3RhdGljIHZvaWQgbmd4X3NzbF93cml0ZV9oYW5kbGVyKG5neF9ldmVudF90ICp3ZXYpOwogc3RhdGljIHZvaWQgbmd4X3NzbF9yZWFkX2hhbmRsZXIobmd4X2V2ZW50X3QgKnJldik7CitzdGF0aWMgdm9pZCAqbmd4X29wZW5zc2xfY3JlYXRlX2NvbmYobmd4X2N5Y2xlX3QgKmN5Y2xlKTsKK3N0YXRpYyBjaGFyICpuZ3hfb3BlbnNzbF9pbml0X2NvbmYobmd4X2N5Y2xlX3QgKmN5Y2xlLCB2b2lkICpjb25mKTsKKworI2lmICEoTkdYX1NTTF9FTkdJTkUpCitzdGF0aWMgY2hhciAqbmd4X29wZW5zc2xfbm9lbmdpbmUobmd4X2NvbmZfdCAqY2YsIG5neF9jb21tYW5kX3QgKmNtZCwKKyAgICAgdm9pZCAqY29uZik7CisjZW5kaWYKKworCitzdGF0aWMgbmd4X2NvbW1hbmRfdCAgbmd4X29wZW5zc2xfY29tbWFuZHNbXSA9IHsKKworICAgIHsgbmd4X3N0cmluZygic3NsX2VuZ2luZSIpLAorICAgICAgTkdYX01BSU5fQ09ORnxOR1hfRElSRUNUX0NPTkZ8TkdYX0NPTkZfVEFLRTEsCisjaWYgKE5HWF9TU0xfRU5HSU5FKQorICAgICAgbmd4X2NvbmZfc2V0X3N0cl9zbG90LAorI2Vsc2UKKyAgICAgIG5neF9vcGVuc3NsX25vZW5naW5lLAorI2VuZGlmCisgICAgICAwLAorICAgICAgb2Zmc2V0b2Yobmd4X29wZW5zc2xfY29uZl90LCBlbmdpbmUpLAorICAgICAgTlVMTCB9LAorCisgICAgICBuZ3hfbnVsbF9jb21tYW5kCit9OworCisKK3N0YXRpYyBuZ3hfY29yZV9tb2R1bGVfdCAgbmd4X29wZW5zc2xfbW9kdWxlX2N0eCA9IHsKKyAgICBuZ3hfc3RyaW5nKCJvcGVuc3NsIiksCisgICAgbmd4X29wZW5zc2xfY3JlYXRlX2NvbmYsCisgICAgbmd4X29wZW5zc2xfaW5pdF9jb25mCit9OyAgCisKKworbmd4X21vZHVsZV90ICBuZ3hfb3BlbnNzbF9tb2R1bGUgPSB7CisgICAgTkdYX01PRFVMRV9WMSwKKyAgICAmbmd4X29wZW5zc2xfbW9kdWxlX2N0eCwgICAgICAgICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLworICAgIG5neF9vcGVuc3NsX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCisgICAgTkdYX0NPUkVfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCit9OyAgCiAKIAogbmd4X2ludF90CkBAIC0yMSw3ICs3MSwxMCBAQAogewogICAgIFNTTF9saWJyYXJ5X2luaXQoKTsKICAgICBTU0xfbG9hZF9lcnJvcl9zdHJpbmdzKCk7CisKKyNpZiAoTkdYX1NTTF9FTkdJTkUpCiAgICAgRU5HSU5FX2xvYWRfYnVpbHRpbl9lbmdpbmVzKCk7CisjZW5kaWYKIAogICAgIHJldHVybiBOR1hfT0s7CiB9CkBAIC02MzgsMyArNjkxLDc0IEBACiAKICAgIFNTTF9DVFhfZnJlZShjdHgpOwogfQorCisKK3N0YXRpYyB2b2lkICoKK25neF9vcGVuc3NsX2NyZWF0ZV9jb25mKG5neF9jeWNsZV90ICpjeWNsZSkKK3sKKyAgICBuZ3hfb3BlbnNzbF9jb25mX3QgICpvc2NmOworICAgIAorICAgIG9zY2YgPSBuZ3hfcGNhbGxvYyhjeWNsZS0+cG9vbCwgc2l6ZW9mKG5neF9vcGVuc3NsX2NvbmZfdCkpOworICAgIGlmIChvc2NmID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5HWF9DT05GX0VSUk9SOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIHNldCBieSBuZ3hfcGNhbGxvYygpOgorICAgICAqIAorICAgICAqICAgICBvc2NmLT5lbmdpbmUubGVuID0gMDsKKyAgICAgKiAgICAgb3NjZi0+ZW5naW5lLmRhdGEgPSBOVUxMOworICAgICAqLyAgICAKKworICAgIHJldHVybiBvc2NmOworfQorCisKK3N0YXRpYyBjaGFyICoKK25neF9vcGVuc3NsX2luaXRfY29uZihuZ3hfY3ljbGVfdCAqY3ljbGUsIHZvaWQgKmNvbmYpCit7CisjaWYgKE5HWF9TU0xfRU5HSU5FKQorICAgIG5neF9vcGVuc3NsX2NvbmZfdCAqb3NjZiA9IGNvbmY7CisgICAgCisgICAgRU5HSU5FICAqZW5naW5lOworCisgICAgaWYgKG9zY2YtPmVuZ2luZS5sZW4gPT0gMCkgeworICAgICAgICByZXR1cm4gTkdYX0NPTkZfT0s7CisgICAgfQorICAgIAorICAgIGVuZ2luZSA9IEVOR0lORV9ieV9pZCgoY29uc3QgY2hhciAqKSBvc2NmLT5lbmdpbmUuZGF0YSk7CisKKyAgICBpZiAoZW5naW5lID09IE5VTEwpIHsKKyAgICAgICAgbmd4X3NzbF9lcnJvcihOR1hfTE9HX1dBUk4sIGN5Y2xlLT5sb2csIDAsCisgICAgICAgICAgICAgICAgICAgICAgIkVOR0lORV9ieV9pZChcIiVWXCIpIGZhaWxlZCIsICZvc2NmLT5lbmdpbmUpOworICAgICAgICByZXR1cm4gTkdYX0NPTkZfRVJST1I7CisgICAgfQorCisgICAgaWYgKEVOR0lORV9zZXRfZGVmYXVsdChlbmdpbmUsIEVOR0lORV9NRVRIT0RfQUxMKSA9PSAwKSB7CisgICAgICAgIG5neF9zc2xfZXJyb3IoTkdYX0xPR19XQVJOLCBjeWNsZS0+bG9nLCAwLAorICAgICAgICAgICAgICAgICAgICAgICJFTkdJTkVfc2V0X2RlZmF1bHQoXCIlVlwiLCBFTkdJTkVfTUVUSE9EX0FMTCkgZmFpbGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAmb3NjZi0+ZW5naW5lKTsKKyAgICAgICAgcmV0dXJuIE5HWF9DT05GX0VSUk9SOworICAgIH0KKworICAgIEVOR0lORV9mcmVlKGVuZ2luZSk7CisKKyNlbmRpZgorCisgICAgcmV0dXJuIE5HWF9DT05GX09LOworfQorCisKKyNpZiAhKE5HWF9TU0xfRU5HSU5FKQorCitzdGF0aWMgY2hhciAqCituZ3hfb3BlbnNzbF9ub2VuZ2luZShuZ3hfY29uZl90ICpjZiwgbmd4X2NvbW1hbmRfdCAqY21kLCB2b2lkICpjb25mKQoreworICAgIG5neF9jb25mX2xvZ19lcnJvcihOR1hfTE9HX0VNRVJHLCBjZiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIlwic3NsX2VuZ2luZVwiIGlzIG5vdCBzdXBwb3J0ZWQ6ICIgTkdYX1NTTF9OQU1FCisgICAgICAgICAgICAgICAgICAgICAgICIgbGlicmFyeSBkb2VzIG5vdCBzdXBwb3J0IGNyeXB0byBhY2NlbGVyYXRvcnMiKTsKKworICAgIHJldHVybiBOR1hfQ09ORl9FUlJPUjsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvZXZlbnQvbmd4X2V2ZW50X29wZW5zc2wuaCBiL3NyYy9ldmVudC9uZ3hfZXZlbnRfb3BlbnNzbC5oCmluZGV4IDdmYzZiYzAuLmYyOThhZWIgMTAwNjQ0Ci0tLSBhL3NyYy9ldmVudC9uZ3hfZXZlbnRfb3BlbnNzbC5oCisrKyBiL3NyYy9ldmVudC9uZ3hfZXZlbnRfb3BlbnNzbC5oCkBAIC0xNCw2ICsxNCwxMyBAQAogI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KIAorI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPj0gMHgwMDkwNzAwMAorI2luY2x1ZGUgPG9wZW5zc2wvZW5naW5lLmg+CisjZGVmaW5lIE5HWF9TU0xfRU5HSU5FICAgICAxCisjZW5kaWYKKworI2RlZmluZSBOR1hfU1NMX05BTUUgICAgICAgIk9wZW5TU0wiCisKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFNTTCAgICAgICAgICAgICAgICAgICAqc3NsOwpAQCAtMzgsNyArNDUsNiBAQAogCiAjZGVmaW5lIE5HWF9TU0xfQlVGRkVSICAgICAgIDEKIAotCiAjZGVmaW5lIE5HWF9TU0xfQlVGU0laRSAgICAgIDE2Mzg0CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9hY2Nlc3NfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2FjY2Vzc19tb2R1bGUuYwppbmRleCA0N2Y5OTQ0Li5iMDJlOGNmIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2FjY2Vzc19tb2R1bGUuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2FjY2Vzc19tb2R1bGUuYwpAQCAtNzMsOCArNzMsMTQgQEAKICAgICAmbmd4X2h0dHBfYWNjZXNzX21vZHVsZV9jdHgsICAgICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9odHRwX2FjY2Vzc19jb21tYW5kcywgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX2FjY2Vzc19pbml0LCAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfYXV0aF9iYXNpY19tb2R1bGUuYyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfYXV0aF9iYXNpY19tb2R1bGUuYwppbmRleCAwNmQwZGY1Li5iMTI5YTk4IDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2F1dGhfYmFzaWNfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9hdXRoX2Jhc2ljX21vZHVsZS5jCkBAIC03OSw4ICs3OSwxNCBAQAogICAgICZuZ3hfaHR0cF9hdXRoX2Jhc2ljX21vZHVsZV9jdHgsICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2h0dHBfYXV0aF9iYXNpY19jb21tYW5kcywgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgbmd4X2h0dHBfYXV0aF9iYXNpY19pbml0LCAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9hdXRvaW5kZXhfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2F1dG9pbmRleF9tb2R1bGUuYwppbmRleCBhNzI0NmIwLi4yODM4ZTlmIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2F1dG9pbmRleF9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2F1dG9pbmRleF9tb2R1bGUuYwpAQCAtOTksOCArOTksMTQgQEAKICAgICAmbmd4X2h0dHBfYXV0b2luZGV4X21vZHVsZV9jdHgsICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLyAKICAgICBuZ3hfaHR0cF9hdXRvaW5kZXhfY29tbWFuZHMsICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBuZ3hfaHR0cF9hdXRvaW5kZXhfaW5pdCwgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2NoYXJzZXRfZmlsdGVyX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9jaGFyc2V0X2ZpbHRlcl9tb2R1bGUuYwppbmRleCA2MmM4MWUxLi4yZWMxMzhmIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2NoYXJzZXRfZmlsdGVyX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfY2hhcnNldF9maWx0ZXJfbW9kdWxlLmMKQEAgLTEyMSw4ICsxMjEsMTQgQEAKICAgICAmbmd4X2h0dHBfY2hhcnNldF9maWx0ZXJfbW9kdWxlX2N0eCwgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9odHRwX2NoYXJzZXRfZmlsdGVyX2NvbW1hbmRzLCAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX2NoYXJzZXRfZmlsdGVyX2luaXQsICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfY2h1bmtlZF9maWx0ZXJfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2NodW5rZWRfZmlsdGVyX21vZHVsZS5jCmluZGV4IDQxMzY2MTMuLmJmYTM2MjQgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfY2h1bmtlZF9maWx0ZXJfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9jaHVua2VkX2ZpbHRlcl9tb2R1bGUuYwpAQCAtMzIsOCArMzIsMTQgQEAKICAgICAmbmd4X2h0dHBfY2h1bmtlZF9maWx0ZXJfbW9kdWxlX2N0eCwgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX2NodW5rZWRfZmlsdGVyX2luaXQsICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfZmFzdGNnaV9tb2R1bGUuYyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfZmFzdGNnaV9tb2R1bGUuYwppbmRleCBjNWEyYzRiLi42ZWZhYzNkIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2Zhc3RjZ2lfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9mYXN0Y2dpX21vZHVsZS5jCkBAIC0zMzAsOCArMzMwLDE0IEBACiAgICAgJm5neF9odHRwX2Zhc3RjZ2lfbW9kdWxlX2N0eCwgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaHR0cF9mYXN0Y2dpX2NvbW1hbmRzLCAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2dlb19tb2R1bGUuYyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfZ2VvX21vZHVsZS5jCmluZGV4IDcyM2VmZjkuLjgzNDI4MmIgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfZ2VvX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfZ2VvX21vZHVsZS5jCkBAIC01Myw4ICs1MywxNCBAQAogICAgICZuZ3hfaHR0cF9nZW9fbW9kdWxlX2N0eCwgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2h0dHBfZ2VvX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9nemlwX2ZpbHRlcl9tb2R1bGUuYyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfZ3ppcF9maWx0ZXJfbW9kdWxlLmMKaW5kZXggMDI0MzAyOC4uYzM3Zjc5YyAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9nemlwX2ZpbHRlcl9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2d6aXBfZmlsdGVyX21vZHVsZS5jCkBAIC0yMTgsOCArMjE4LDE0IEBACiAgICAgJm5neF9odHRwX2d6aXBfZmlsdGVyX21vZHVsZV9jdHgsICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaHR0cF9nemlwX2ZpbHRlcl9jb21tYW5kcywgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBuZ3hfaHR0cF9nemlwX2ZpbHRlcl9pbml0LCAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2hlYWRlcnNfZmlsdGVyX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9oZWFkZXJzX2ZpbHRlcl9tb2R1bGUuYwppbmRleCA5MWJlYmRjLi4xYWQyMjVmIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2hlYWRlcnNfZmlsdGVyX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfaGVhZGVyc19maWx0ZXJfbW9kdWxlLmMKQEAgLTYwLDggKzYwLDE0IEBACiAgICAgJm5neF9odHRwX2hlYWRlcnNfZmlsdGVyX21vZHVsZV9jdHgsICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaHR0cF9oZWFkZXJzX2ZpbHRlcl9jb21tYW5kcywgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBuZ3hfaHR0cF9oZWFkZXJzX2ZpbHRlcl9pbml0LCAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2luZGV4X21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9pbmRleF9tb2R1bGUuYwppbmRleCA1MzE1NzA0Li5hYmFiMjY4IDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2luZGV4X21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfaW5kZXhfbW9kdWxlLmMKQEAgLTk2LDggKzk2LDE0IEBACiAgICAgJm5neF9odHRwX2luZGV4X21vZHVsZV9jdHgsICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaHR0cF9pbmRleF9jb21tYW5kcywgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBuZ3hfaHR0cF9pbmRleF9pbml0LCAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX25vdF9tb2RpZmllZF9maWx0ZXJfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX25vdF9tb2RpZmllZF9maWx0ZXJfbW9kdWxlLmMKaW5kZXggMjNlYTU3Mi4uNjcxMmE5MSAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9ub3RfbW9kaWZpZWRfZmlsdGVyX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfbm90X21vZGlmaWVkX2ZpbHRlcl9tb2R1bGUuYwpAQCAtMzMsOCArMzMsMTQgQEAKICAgICAmbmd4X2h0dHBfbm90X21vZGlmaWVkX2ZpbHRlcl9tb2R1bGVfY3R4LCAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX25vdF9tb2RpZmllZF9maWx0ZXJfaW5pdCwgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfcHJveHlfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3Byb3h5X21vZHVsZS5jCmluZGV4IGU4YjljNGUuLjE0MTVmMjEgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfcHJveHlfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9wcm94eV9tb2R1bGUuYwpAQCAtMjk1LDggKzI5NSwxNCBAQAogICAgICZuZ3hfaHR0cF9wcm94eV9tb2R1bGVfY3R4LCAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2h0dHBfcHJveHlfY29tbWFuZHMsICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9yYW5nZV9maWx0ZXJfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3JhbmdlX2ZpbHRlcl9tb2R1bGUuYwppbmRleCBjZmMyM2Y2Li5jNjI2NDk1IDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3JhbmdlX2ZpbHRlcl9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3JhbmdlX2ZpbHRlcl9tb2R1bGUuYwpAQCAtNzMsOCArNzMsMTQgQEAKICAgICAmbmd4X2h0dHBfcmFuZ2VfaGVhZGVyX2ZpbHRlcl9tb2R1bGVfY3R4LCAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX3JhbmdlX2hlYWRlcl9maWx0ZXJfaW5pdCwgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKQEAgLTk4LDggKzEwNCwxNCBAQAogICAgICZuZ3hfaHR0cF9yYW5nZV9ib2R5X2ZpbHRlcl9tb2R1bGVfY3R4LCAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX3JhbmdlX2JvZHlfZmlsdGVyX2luaXQsICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfcmV3cml0ZV9tb2R1bGUuYyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfcmV3cml0ZV9tb2R1bGUuYwppbmRleCA1ZjczYzAyLi42OTM0OTVlIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3Jld3JpdGVfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9yZXdyaXRlX21vZHVsZS5jCkBAIC0xMzAsOCArMTMwLDE0IEBACiAgICAgJm5neF9odHRwX3Jld3JpdGVfbW9kdWxlX2N0eCwgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8gCiAgICAgbmd4X2h0dHBfcmV3cml0ZV9jb21tYW5kcywgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgbmd4X2h0dHBfcmV3cml0ZV9pbml0LCAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2lfZmlsdGVyX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2lfZmlsdGVyX21vZHVsZS5jCmluZGV4IDY1MDcxMDUuLjBmMzgyOTUgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfc3NpX2ZpbHRlcl9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3NzaV9maWx0ZXJfbW9kdWxlLmMKQEAgLTIwMCw4ICsyMDAsMTQgQEAKICAgICAmbmd4X2h0dHBfc3NpX2ZpbHRlcl9tb2R1bGVfY3R4LCAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9odHRwX3NzaV9maWx0ZXJfY29tbWFuZHMsICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX3NzaV9maWx0ZXJfaW5pdCwgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfc3NsX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2xfbW9kdWxlLmMKaW5kZXggYmYxZDI0Zi4uNTEzN2FmMCAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2xfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2xfbW9kdWxlLmMKQEAgLTgsMTUgKzgsMTEgQEAKICNpbmNsdWRlIDxuZ3hfY29yZS5oPgogI2luY2x1ZGUgPG5neF9odHRwLmg+CiAKLSNpbmNsdWRlIDxvcGVuc3NsL2VuZ2luZS5oPgotCiAKICNkZWZpbmUgTkdYX0RFRkxBVVRfQ0VSVElGSUNBVEUgICAgICAiY2VydC5wZW0iCiAjZGVmaW5lIE5HWF9ERUZMQVVUX0NFUlRJRklDQVRFX0tFWSAgImNlcnQucGVtIgogCiAKLXN0YXRpYyB2b2lkICpuZ3hfaHR0cF9zc2xfY3JlYXRlX21haW5fY29uZihuZ3hfY29uZl90ICpjZik7Ci1zdGF0aWMgY2hhciAqbmd4X2h0dHBfc3NsX2luaXRfbWFpbl9jb25mKG5neF9jb25mX3QgKmNmLCB2b2lkICpjb25mKTsKIHN0YXRpYyB2b2lkICpuZ3hfaHR0cF9zc2xfY3JlYXRlX3Nydl9jb25mKG5neF9jb25mX3QgKmNmKTsKIHN0YXRpYyBjaGFyICpuZ3hfaHR0cF9zc2xfbWVyZ2Vfc3J2X2NvbmYobmd4X2NvbmZfdCAqY2YsCiAgICAgdm9pZCAqcGFyZW50LCB2b2lkICpjaGlsZCk7CkBAIC0yNCwxMyArMjAsNiBAQAogCiBzdGF0aWMgbmd4X2NvbW1hbmRfdCAgbmd4X2h0dHBfc3NsX2NvbW1hbmRzW10gPSB7CiAKLSAgICB7IG5neF9zdHJpbmcoInNzbF9lbmdpbmUiKSwKLSAgICAgIE5HWF9IVFRQX01BSU5fQ09ORnxOR1hfQ09ORl9UQUtFMSwKLSAgICAgIG5neF9jb25mX3NldF9zdHJfc2xvdCwKLSAgICAgIE5HWF9IVFRQX01BSU5fQ09ORl9PRkZTRVQsCi0gICAgICBvZmZzZXRvZihuZ3hfaHR0cF9zc2xfbWFpbl9jb25mX3QsIGVuZ2luZSksCi0gICAgICBOVUxMIH0sCi0KICAgICB7IG5neF9zdHJpbmcoInNzbCIpLAogICAgICAgTkdYX0hUVFBfU1JWX0NPTkZ8TkdYX0NPTkZfRkxBRywKICAgICAgIG5neF9jb25mX3NldF9mbGFnX3Nsb3QsCkBAIC02Nyw4ICs1Niw4IEBACiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcHJlY29uZmlndXJhdGlvbiAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBvc3Rjb25maWd1cmF0aW9uICovCiAKLSAgICBuZ3hfaHR0cF9zc2xfY3JlYXRlX21haW5fY29uZiwgICAgICAgICAvKiBjcmVhdGUgbWFpbiBjb25maWd1cmF0aW9uICovCi0gICAgbmd4X2h0dHBfc3NsX2luaXRfbWFpbl9jb25mLCAgICAgICAgICAgLyogaW5pdCBtYWluIGNvbmZpZ3VyYXRpb24gKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjcmVhdGUgbWFpbiBjb25maWd1cmF0aW9uICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYWluIGNvbmZpZ3VyYXRpb24gKi8KIAogICAgIG5neF9odHRwX3NzbF9jcmVhdGVfc3J2X2NvbmYsICAgICAgICAgIC8qIGNyZWF0ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiAqLwogICAgIG5neF9odHRwX3NzbF9tZXJnZV9zcnZfY29uZiwgICAgICAgICAgIC8qIG1lcmdlIHNlcnZlciBjb25maWd1cmF0aW9uICovCkBAIC04Myw2NSArNzIsMTggQEAKICAgICAmbmd4X2h0dHBfc3NsX21vZHVsZV9jdHgsICAgICAgICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9odHRwX3NzbF9jb21tYW5kcywgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKIHN0YXRpYyB2b2lkICoKLW5neF9odHRwX3NzbF9jcmVhdGVfbWFpbl9jb25mKG5neF9jb25mX3QgKmNmKQotewotICAgIG5neF9odHRwX3NzbF9tYWluX2NvbmZfdCAgKm1jZjsKLQotICAgIG1jZiA9IG5neF9wY2FsbG9jKGNmLT5wb29sLCBzaXplb2Yobmd4X2h0dHBfc3NsX21haW5fY29uZl90KSk7Ci0gICAgaWYgKG1jZiA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBOR1hfQ09ORl9FUlJPUjsKLSAgICB9Ci0KLSAgICAvKgotICAgICAqIHNldCBieSBuZ3hfcGNhbGxvYygpOgotICAgICAqCi0gICAgICogICAgIG1jZi0+ZW5naW5lLmxlbiA9IDA7Ci0gICAgICogICAgIG1jZi0+ZW5naW5lLmRhdGEgPSBOVUxMOwotICAgICAqLwotCi0gICAgcmV0dXJuIG1jZjsKLX0KLQotCi1zdGF0aWMgY2hhciAqCi1uZ3hfaHR0cF9zc2xfaW5pdF9tYWluX2NvbmYobmd4X2NvbmZfdCAqY2YsIHZvaWQgKmNvbmYpCi17Ci0gICAgbmd4X2h0dHBfc3NsX21haW5fY29uZl90ICptY2YgPSBjb25mOwotCi0gICAgRU5HSU5FICAqZW5naW5lOwotCi0gICAgaWYgKG1jZi0+ZW5naW5lLmxlbiA9PSAwKSB7Ci0gICAgICAgIHJldHVybiBOR1hfQ09ORl9PSzsKLSAgICB9Ci0KLSAgICBlbmdpbmUgPSBFTkdJTkVfYnlfaWQoKGNvbnN0IGNoYXIgKikgbWNmLT5lbmdpbmUuZGF0YSk7Ci0KLSAgICBpZiAoZW5naW5lID09IE5VTEwpIHsKLSAgICAgICAgbmd4X3NzbF9lcnJvcihOR1hfTE9HX1dBUk4sIGNmLT5sb2csIDAsCi0gICAgICAgICAgICAgICAgICAgICAgIkVOR0lORV9ieV9pZChcIiVWXCIpIGZhaWxlZCIsICZtY2YtPmVuZ2luZSk7Ci0gICAgICAgIHJldHVybiBOR1hfQ09ORl9FUlJPUjsKLSAgICB9Ci0KLSAgICBpZiAoRU5HSU5FX3NldF9kZWZhdWx0KGVuZ2luZSwgRU5HSU5FX01FVEhPRF9BTEwpID09IDApIHsKLSAgICAgICAgbmd4X3NzbF9lcnJvcihOR1hfTE9HX1dBUk4sIGNmLT5sb2csIDAsCi0gICAgICAgICAgICAgICAgICAgICAgIkVOR0lORV9zZXRfZGVmYXVsdChcIiVWXCIsIEVOR0lORV9NRVRIT0RfQUxMKSBmYWlsZWQiLAotICAgICAgICAgICAgICAgICAgICAgICZtY2YtPmVuZ2luZSk7Ci0gICAgICAgIHJldHVybiBOR1hfQ09ORl9FUlJPUjsKLSAgICB9Ci0KLSAgICBFTkdJTkVfZnJlZShlbmdpbmUpOwotCi0gICAgcmV0dXJuIE5HWF9DT05GX09LOwotfQotCi0KLXN0YXRpYyB2b2lkICoKIG5neF9odHRwX3NzbF9jcmVhdGVfc3J2X2NvbmYobmd4X2NvbmZfdCAqY2YpCiB7CiAgICAgbmd4X2h0dHBfc3NsX3Nydl9jb25mX3QgICpzY2Y7CkBAIC0yNDAsMTIgKzE4MiwxNiBAQAogICAgICAgICByZXR1cm4gTkdYX0NPTkZfRVJST1I7CiAgICAgfQogCisgICAgU1NMX0NUWF9zZXRfdmVyaWZ5KGNvbmYtPnNzbF9jdHgsIFNTTF9WRVJJRllfTk9ORSwgTlVMTCk7CisKICAgICByZXR1cm4gTkdYX0NPTkZfT0s7CiB9CiAKIAogI2lmIDAKIAorLyogaG93IHRvIGVudW1yYXRlIHNlcnZlcicgY29uZmlncyAqLworCiBzdGF0aWMgbmd4X2ludF90CiBuZ3hfaHR0cF9zc2xfaW5pdF9wcm9jZXNzKG5neF9jeWNsZV90ICpjeWNsZSkKIHsKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfc3NsX21vZHVsZS5oIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2xfbW9kdWxlLmgKaW5kZXggYmY2MDM2Ni4uYWNiMGFlZSAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2xfbW9kdWxlLmgKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2xfbW9kdWxlLmgKQEAgLTE0LDExICsxNCw2IEBACiAKIAogdHlwZWRlZiBzdHJ1Y3QgewotICAgIG5neF9zdHJfdCAgICAgICBlbmdpbmU7Ci19IG5neF9odHRwX3NzbF9tYWluX2NvbmZfdDsKLQotCi10eXBlZGVmIHN0cnVjdCB7CiAgICAgbmd4X2ZsYWdfdCAgICAgIGVuYWJsZTsKICAgICBuZ3hfc3RyX3QgICAgICAgY2VydGlmaWNhdGU7CiAgICAgbmd4X3N0cl90ICAgICAgIGNlcnRpZmljYXRlX2tleTsKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfc3RhdGljX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zdGF0aWNfbW9kdWxlLmMKaW5kZXggNTRlNjI0Zi4uZWFjM2MxOSAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zdGF0aWNfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zdGF0aWNfbW9kdWxlLmMKQEAgLTU4LDggKzU4LDE0IEBACiAgICAgJm5neF9odHRwX3N0YXRpY19tb2R1bGVfY3R4LCAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaHR0cF9zdGF0aWNfY29tbWFuZHMsICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBuZ3hfaHR0cF9zdGF0aWNfaW5pdCwgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3N0dWJfc3RhdHVzX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zdHViX3N0YXR1c19tb2R1bGUuYwppbmRleCAwZjFhMjUyLi5lYTU1YzFiIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3N0dWJfc3RhdHVzX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfc3R1Yl9zdGF0dXNfbW9kdWxlLmMKQEAgLTQxLDggKzQxLDE0IEBACiAgICAgJm5neF9odHRwX3N0dWJfc3RhdHVzX21vZHVsZV9jdHgsICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaHR0cF9zdGF0dXNfY29tbWFuZHMsICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3VzZXJpZF9maWx0ZXJfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3VzZXJpZF9maWx0ZXJfbW9kdWxlLmMKaW5kZXggNWVlOTcxMi4uMWFkZDg5NCAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF91c2VyaWRfZmlsdGVyX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfdXNlcmlkX2ZpbHRlcl9tb2R1bGUuYwpAQCAtMTc3LDggKzE3NywxNCBAQAogICAgICZuZ3hfaHR0cF91c2VyaWRfZmlsdGVyX21vZHVsZV9jdHgsICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2h0dHBfdXNlcmlkX2NvbW1hbmRzLCAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgbmd4X2h0dHBfdXNlcmlkX2luaXQsICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbmd4X2h0dHAuYyBiL3NyYy9odHRwL25neF9odHRwLmMKaW5kZXggMGY2ZjJmMS4uNjQ2ZTE2ZCAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHAuYworKysgYi9zcmMvaHR0cC9uZ3hfaHR0cC5jCkBAIC01Nyw4ICs1NywxNCBAQAogICAgICZuZ3hfaHR0cF9tb2R1bGVfY3R4LCAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2h0dHBfY29tbWFuZHMsICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfQ09SRV9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbmd4X2h0dHBfY29weV9maWx0ZXJfbW9kdWxlLmMgYi9zcmMvaHR0cC9uZ3hfaHR0cF9jb3B5X2ZpbHRlcl9tb2R1bGUuYwppbmRleCA0NjcxNTQ4Li4yYWZkY2Y2IDEwMDY0NAotLS0gYS9zcmMvaHR0cC9uZ3hfaHR0cF9jb3B5X2ZpbHRlcl9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9uZ3hfaHR0cF9jb3B5X2ZpbHRlcl9tb2R1bGUuYwpAQCAtNTMsOCArNTMsMTQgQEAKICAgICAmbmd4X2h0dHBfY29weV9maWx0ZXJfbW9kdWxlX2N0eCwgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9odHRwX2NvcHlfZmlsdGVyX2NvbW1hbmRzLCAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX2NvcHlfZmlsdGVyX2luaXQsICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL25neF9odHRwX2NvcmVfbW9kdWxlLmMgYi9zcmMvaHR0cC9uZ3hfaHR0cF9jb3JlX21vZHVsZS5jCmluZGV4IDBiNDgzZTAuLjY2MzczZTMgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL25neF9odHRwX2NvcmVfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbmd4X2h0dHBfY29yZV9tb2R1bGUuYwpAQCAtMzgzLDggKzM4MywxNCBAQAogICAgICZuZ3hfaHR0cF9jb3JlX21vZHVsZV9jdHgsICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2h0dHBfY29yZV9jb21tYW5kcywgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbmd4X2h0dHBfaGVhZGVyX2ZpbHRlcl9tb2R1bGUuYyBiL3NyYy9odHRwL25neF9odHRwX2hlYWRlcl9maWx0ZXJfbW9kdWxlLmMKaW5kZXggZGFmNmM4NS4uNWFmMWNmMyAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHBfaGVhZGVyX2ZpbHRlcl9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9uZ3hfaHR0cF9oZWFkZXJfZmlsdGVyX21vZHVsZS5jCkBAIC0zNCw4ICszNCwxNCBAQAogICAgICZuZ3hfaHR0cF9oZWFkZXJfZmlsdGVyX21vZHVsZV9jdHgsICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgbmd4X2h0dHBfaGVhZGVyX2ZpbHRlcl9pbml0LCAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbmd4X2h0dHBfbG9nX21vZHVsZS5jIGIvc3JjL2h0dHAvbmd4X2h0dHBfbG9nX21vZHVsZS5jCmluZGV4IDMzMzQ3MmUuLjNjYWEyZTkgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL25neF9odHRwX2xvZ19tb2R1bGUuYworKysgYi9zcmMvaHR0cC9uZ3hfaHR0cF9sb2dfbW9kdWxlLmMKQEAgLTEyNSw4ICsxMjUsMTQgQEAKICAgICAmbmd4X2h0dHBfbG9nX21vZHVsZV9jdHgsICAgICAgICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9odHRwX2xvZ19jb21tYW5kcywgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL25neF9odHRwX3Bvc3Rwb25lX2ZpbHRlcl9tb2R1bGUuYyBiL3NyYy9odHRwL25neF9odHRwX3Bvc3Rwb25lX2ZpbHRlcl9tb2R1bGUuYwppbmRleCBkN2QzMzhmLi43M2UzMWU2IDEwMDY0NAotLS0gYS9zcmMvaHR0cC9uZ3hfaHR0cF9wb3N0cG9uZV9maWx0ZXJfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbmd4X2h0dHBfcG9zdHBvbmVfZmlsdGVyX21vZHVsZS5jCkBAIC0zMiw4ICszMiwxNCBAQAogICAgICZuZ3hfaHR0cF9wb3N0cG9uZV9maWx0ZXJfbW9kdWxlX2N0eCwgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSFRUUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgbmd4X2h0dHBfcG9zdHBvbmVfZmlsdGVyX2luaXQsICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbmd4X2h0dHBfdXBzdHJlYW0uYyBiL3NyYy9odHRwL25neF9odHRwX3Vwc3RyZWFtLmMKaW5kZXggYzU3NTM0Ny4uMDRhN2E1NyAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHBfdXBzdHJlYW0uYworKysgYi9zcmMvaHR0cC9uZ3hfaHR0cF91cHN0cmVhbS5jCkBAIC0xODksOCArMTg5LDE0IEBACiAgICAgJm5neF9odHRwX3Vwc3RyZWFtX21vZHVsZV9jdHgsICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9IVFRQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF93cml0ZV9maWx0ZXJfbW9kdWxlLmMgYi9zcmMvaHR0cC9uZ3hfaHR0cF93cml0ZV9maWx0ZXJfbW9kdWxlLmMKaW5kZXggYWY5NWM5OS4uZjNiMzYyMiAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHBfd3JpdGVfZmlsdGVyX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL25neF9odHRwX3dyaXRlX2ZpbHRlcl9tb2R1bGUuYwpAQCAtMzMsOCArMzMsMTQgQEAKICAgICAmbmd4X2h0dHBfd3JpdGVfZmlsdGVyX21vZHVsZV9jdHgsICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0hUVFBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIG5neF9odHRwX3dyaXRlX2ZpbHRlcl9pbml0LCAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKQEAgLTIyNiw3ICsyMzIsNyBAQAogCiAgICAgci0+b3V0ID0gY2hhaW47CiAKLSAgICBpZiAoY2hhaW4gfHwgYy0+YnVmZmVyZWQpIHsKKyAgICBpZiAoY2hhaW4gfHwgKGMtPmJ1ZmZlcmVkICYmIHItPnBvc3Rwb25lZCA9PSBOVUxMKSkgewogICAgICAgICByZXR1cm4gTkdYX0FHQUlOOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2ltYXAvbmd4X2ltYXAuYyBiL3NyYy9pbWFwL25neF9pbWFwLmMKaW5kZXggYWEyOGIyZC4uYjhhNzVhZCAxMDA2NDQKLS0tIGEvc3JjL2ltYXAvbmd4X2ltYXAuYworKysgYi9zcmMvaW1hcC9uZ3hfaW1hcC5jCkBAIC00MSw4ICs0MSwxNCBAQAogICAgICZuZ3hfaW1hcF9tb2R1bGVfY3R4LCAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2ltYXBfY29tbWFuZHMsICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfQ09SRV9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2ltYXAvbmd4X2ltYXAuaCBiL3NyYy9pbWFwL25neF9pbWFwLmgKaW5kZXggNWUwMzc3NC4uN2JlZTJhZCAxMDA2NDQKLS0tIGEvc3JjL2ltYXAvbmd4X2ltYXAuaAorKysgYi9zcmMvaW1hcC9uZ3hfaW1hcC5oCkBAIC0xMjMsNiArMTIzLDEyIEBACiB9IG5neF9pbWFwX3Nlc3Npb25fdDsKIAogCit0eXBlZGVmIHN0cnVjdCB7CisgICAgbmd4X3N0cl90ICAgICAgICAgICAqY2xpZW50OworICAgIG5neF9pbWFwX3Nlc3Npb25fdCAgKnNlc3Npb247Cit9IG5neF9pbWFwX2xvZ19jdHhfdDsKKworCiAjZGVmaW5lIE5HWF9QT1AzX1VTRVIgICAgICAgMQogI2RlZmluZSBOR1hfUE9QM19QQVNTICAgICAgIDIKICNkZWZpbmUgTkdYX1BPUDNfQ0FQQSAgICAgICAzCmRpZmYgLS1naXQgYS9zcmMvaW1hcC9uZ3hfaW1hcF9hdXRoX2h0dHBfbW9kdWxlLmMgYi9zcmMvaW1hcC9uZ3hfaW1hcF9hdXRoX2h0dHBfbW9kdWxlLmMKaW5kZXggMmJmMGNjOS4uMWUyYmM0YyAxMDA2NDQKLS0tIGEvc3JjL2ltYXAvbmd4X2ltYXBfYXV0aF9odHRwX21vZHVsZS5jCisrKyBiL3NyYy9pbWFwL25neF9pbWFwX2F1dGhfaHR0cF9tb2R1bGUuYwpAQCAtMTA1LDggKzEwNSwxNCBAQAogICAgICZuZ3hfaW1hcF9hdXRoX2h0dHBfbW9kdWxlX2N0eCwgICAgICAgIC8qIG1vZHVsZSBjb250ZXh0ICovCiAgICAgbmd4X2ltYXBfYXV0aF9odHRwX2NvbW1hbmRzLCAgICAgICAgICAgLyogbW9kdWxlIGRpcmVjdGl2ZXMgKi8KICAgICBOR1hfSU1BUF9NT0RVTEUsICAgICAgICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgdHlwZSAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbWFzdGVyICovCiAgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtb2R1bGUgKi8KLSAgICBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCBtYXN0ZXIgKi8KKyAgICBOR1hfTU9EVUxFX1YxX1BBRERJTkcKIH07CiAKIApAQCAtMTIwLDYgKzEyNiw4IEBACiAgICAgbmd4X2ltYXBfYXV0aF9odHRwX2N0eF90ICAgKmN0eDsKICAgICBuZ3hfaW1hcF9hdXRoX2h0dHBfY29uZl90ICAqYWhjZjsKIAorICAgIHMtPmNvbm5lY3Rpb24tPmxvZy0+YWN0aW9uID0gImluIGh0dHAgYXV0aCBzdGF0ZSI7CisKICAgICBjdHggPSBuZ3hfcGNhbGxvYyhzLT5jb25uZWN0aW9uLT5wb29sLCBzaXplb2Yobmd4X2ltYXBfYXV0aF9odHRwX2N0eF90KSk7CiAgICAgaWYgKGN0eCA9PSBOVUxMKSB7CiAgICAgICAgIG5neF9pbWFwX3Nlc3Npb25faW50ZXJuYWxfc2VydmVyX2Vycm9yKHMpOwpAQCAtMTQyLDcgKzE1MCw3IEBACiAKICAgICByYyA9IG5neF9ldmVudF9jb25uZWN0X3BlZXIoJmN0eC0+cGVlcik7CiAKLSAgICBpZiAocmMgPT0gTkdYX0VSUk9SKSB7CisgICAgaWYgKHJjID09IE5HWF9FUlJPUiB8fCByYyA9PSBOR1hfQ09OTkVDVF9FUlJPUikgewogICAgICAgICBuZ3hfaW1hcF9zZXNzaW9uX2ludGVybmFsX3NlcnZlcl9lcnJvcihzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NiwxMyArMTY0LDEzIEBACiAKICAgICBjdHgtPmhhbmRsZXIgPSBuZ3hfaW1hcF9hdXRoX2h0dHBfaWdub3JlX3N0YXR1c19saW5lOwogCisgICAgbmd4X2FkZF90aW1lcihjdHgtPnBlZXIuY29ubmVjdGlvbi0+cmVhZCwgYWhjZi0+dGltZW91dCk7CisgICAgbmd4X2FkZF90aW1lcihjdHgtPnBlZXIuY29ubmVjdGlvbi0+d3JpdGUsIGFoY2YtPnRpbWVvdXQpOworCiAgICAgaWYgKHJjID09IE5HWF9PSykgewogICAgICAgICBuZ3hfaW1hcF9hdXRoX2h0dHBfd3JpdGVfaGFuZGxlcihjdHgtPnBlZXIuY29ubmVjdGlvbi0+d3JpdGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgbmd4X2FkZF90aW1lcihjdHgtPnBlZXIuY29ubmVjdGlvbi0+cmVhZCwgYWhjZi0+dGltZW91dCk7Ci0gICAgbmd4X2FkZF90aW1lcihjdHgtPnBlZXIuY29ubmVjdGlvbi0+d3JpdGUsIGFoY2YtPnRpbWVvdXQpOwogfQogCiAKQEAgLTE4NSw3ICsxOTMsOCBAQAogCiAgICAgaWYgKHdldi0+dGltZWRvdXQpIHsgIAogICAgICAgICBuZ3hfbG9nX2Vycm9yKE5HWF9MT0dfRVJSLCB3ZXYtPmxvZywgTkdYX0VUSU1FRE9VVCwKLSAgICAgICAgICAgICAgICAgICAgICAiYXV0aCBodHRwIHNlcnZlciB0aW1lZCBvdXQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAiYXV0aCBodHRwIHNlcnZlciAlViB0aW1lZCBvdXQiLAorICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnBlZXIucGVlcnMtPnBlZXJbMF0ubmFtZSk7CiAgICAgICAgIG5neF9jbG9zZV9jb25uZWN0aW9uKGN0eC0+cGVlci5jb25uZWN0aW9uKTsKICAgICAgICAgbmd4X2ltYXBfc2Vzc2lvbl9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Iocyk7CiAgICAgICAgIHJldHVybjsKQEAgLTI0MCw3ICsyNDksOCBAQAogCiAgICAgaWYgKHJldi0+dGltZWRvdXQpIHsgIAogICAgICAgICBuZ3hfbG9nX2Vycm9yKE5HWF9MT0dfRVJSLCByZXYtPmxvZywgTkdYX0VUSU1FRE9VVCwKLSAgICAgICAgICAgICAgICAgICAgICAiYXV0aCBodHRwIHNlcnZlciB0aW1lZCBvdXQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAiYXV0aCBodHRwIHNlcnZlciAlViB0aW1lZCBvdXQiLAorICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnBlZXIucGVlcnMtPnBlZXJbMF0ubmFtZSk7CiAgICAgICAgIG5neF9jbG9zZV9jb25uZWN0aW9uKGN0eC0+cGVlci5jb25uZWN0aW9uKTsKICAgICAgICAgbmd4X2ltYXBfc2Vzc2lvbl9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Iocyk7CiAgICAgICAgIHJldHVybjsKQEAgLTM1NSw3ICszNjUsOCBAQAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBuZ3hfbG9nX2Vycm9yKE5HWF9MT0dfRVJSLCBzLT5jb25uZWN0aW9uLT5sb2csIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJhdXRoIGh0dHAgc2VydmVyIHNlbnQgaW52YWxpZCByZXNwb25zZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aCBodHRwIHNlcnZlciAmViBzZW50IGludmFsaWQgcmVzcG9uc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5wZWVyLnBlZXJzLT5wZWVyWzBdLm5hbWUpOwogICAgICAgICAgICAgbmd4X2Nsb3NlX2Nvbm5lY3Rpb24oY3R4LT5wZWVyLmNvbm5lY3Rpb24pOwogICAgICAgICAgICAgbmd4X2ltYXBfc2Vzc2lvbl9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Iocyk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC01MjAsOSArNTMxLDExIEBACiAKICAgICAgICAgICAgICAgICBpZiAoY3R4LT5zbGVlcCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgIHMtPnF1aXQgPSAxOwotICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIG5neF9pbWFwX3NlbmQocy0+Y29ubmVjdGlvbi0+d3JpdGUpOworICAgICAgICAgICAgICAgICAgICBuZ3hfaW1hcF9zZW5kKHMtPmNvbm5lY3Rpb24tPndyaXRlKTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgbmd4X2FkZF90aW1lcihzLT5jb25uZWN0aW9uLT5yZWFkLCBjdHgtPnNsZWVwICogMTAwMCk7CiAKQEAgLTUzMyw3ICs1NDYsOCBAQAogCiAgICAgICAgICAgICBpZiAoY3R4LT5hZGRyLmxlbiA9PSAwIHx8IGN0eC0+cG9ydC5sZW4gPT0gMCkgewogICAgICAgICAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19FUlIsIHMtPmNvbm5lY3Rpb24tPmxvZywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdXRoIGh0dHAgc2VydmVyIGRpZCBub3Qgc2VuZCBzZXJ2ZXIgb3IgcG9ydCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF1dGggaHR0cCBzZXJ2ZXIgJVYgZGlkIG5vdCBzZW5kIHNlcnZlciBvciBwb3J0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnBlZXIucGVlcnMtPnBlZXJbMF0ubmFtZSk7CiAgICAgICAgICAgICAgICAgbmd4X2ltYXBfc2Vzc2lvbl9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Iocyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNTU1LDggKzU2OSw5IEBACiAgICAgICAgICAgICBwb3J0ID0gbmd4X2F0b2koY3R4LT5wb3J0LmRhdGEsIGN0eC0+cG9ydC5sZW4pOwogICAgICAgICAgICAgaWYgKHBvcnQgPT0gTkdYX0VSUk9SIHx8IHBvcnQgPCAxIHx8IHBvcnQgPiA2NTUzNikgewogICAgICAgICAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19FUlIsIHMtPmNvbm5lY3Rpb24tPmxvZywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdXRoIGh0dHAgc2VydmVyIHNlbnQgaW52YWxpZCBzZXJ2ZXIgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvcnQ6XCIlVlwiIiwgJmN0eC0+cG9ydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXV0aCBodHRwIHNlcnZlciAlViBzZW50IGludmFsaWQgc2VydmVyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3J0OlwiJVZcIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3R4LT5wZWVyLnBlZXJzLT5wZWVyWzBdLm5hbWUsICZjdHgtPnBvcnQpOwogICAgICAgICAgICAgICAgIG5neF9pbWFwX3Nlc3Npb25faW50ZXJuYWxfc2VydmVyX2Vycm9yKHMpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTU2Nyw4ICs1ODIsOSBAQAogICAgICAgICAgICAgc2luLT5zaW5fYWRkci5zX2FkZHIgPSBpbmV0X2FkZHIoKGNoYXIgKikgY3R4LT5hZGRyLmRhdGEpOwogICAgICAgICAgICAgaWYgKHNpbi0+c2luX2FkZHIuc19hZGRyID09IElOQUREUl9OT05FKSB7CiAgICAgICAgICAgICAgICAgbmd4X2xvZ19lcnJvcihOR1hfTE9HX0VSUiwgcy0+Y29ubmVjdGlvbi0+bG9nLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF1dGggaHR0cCBzZXJ2ZXIgc2VudCBpbnZhbGlkIHNlcnZlciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWRkcmVzczpcIiVWXCIiLCAmY3R4LT5hZGRyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdXRoIGh0dHAgc2VydmVyICVWIHNlbnQgaW52YWxpZCBzZXJ2ZXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6XCIlVlwiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnBlZXIucGVlcnMtPnBlZXJbMF0ubmFtZSwgJmN0eC0+YWRkcik7CiAgICAgICAgICAgICAgICAgbmd4X2ltYXBfc2Vzc2lvbl9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Iocyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpAQCAtNjEyLDcgKzYyOCw4IEBACiAgICAgICAgIC8qIHJjID09IE5HWF9FUlJPUiAqLwogCiAgICAgICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19FUlIsIHMtPmNvbm5lY3Rpb24tPmxvZywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAiYXV0aCBodHRwIHNlcnZlciBzZW50IGludmFsaWQgaGVhZGVyIGluIHJlc3BvbnNlIik7CisgICAgICAgICAgICAgICAgICAgICAgImF1dGggaHR0cCBzZXJ2ZXIgJVYgc2VudCBpbnZhbGlkIGhlYWRlciBpbiByZXNwb25zZSIsCisgICAgICAgICAgICAgICAgICAgICAgJmN0eC0+cGVlci5wZWVycy0+cGVlclswXS5uYW1lKTsKICAgICAgICAgbmd4X2Nsb3NlX2Nvbm5lY3Rpb24oY3R4LT5wZWVyLmNvbm5lY3Rpb24pOwogICAgICAgICBuZ3hfaW1hcF9zZXNzaW9uX2ludGVybmFsX3NlcnZlcl9lcnJvcihzKTsKIApAQCAtNjU0LDYgKzY3MSw4IEBACiAgICAgICAgICAgICBuZ3hfaW1hcF9jbG9zZV9jb25uZWN0aW9uKHMtPmNvbm5lY3Rpb24pOwogICAgICAgICB9CiAKKyAgICAgICAgbmd4X2ltYXBfc2VuZChzLT5jb25uZWN0aW9uLT53cml0ZSk7CisKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2ltYXAvbmd4X2ltYXBfY29yZV9tb2R1bGUuYyBiL3NyYy9pbWFwL25neF9pbWFwX2NvcmVfbW9kdWxlLmMKaW5kZXggODIyNTU3NC4uMDIwM2Y0NCAxMDA2NDQKLS0tIGEvc3JjL2ltYXAvbmd4X2ltYXBfY29yZV9tb2R1bGUuYworKysgYi9zcmMvaW1hcC9uZ3hfaW1hcF9jb3JlX21vZHVsZS5jCkBAIC0xMTQsOCArMTE0LDE0IEBACiAgICAgJm5neF9pbWFwX2NvcmVfbW9kdWxlX2N0eCwgICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaW1hcF9jb3JlX2NvbW1hbmRzLCAgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9JTUFQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW1hcC9uZ3hfaW1hcF9oYW5kbGVyLmMgYi9zcmMvaW1hcC9uZ3hfaW1hcF9oYW5kbGVyLmMKaW5kZXggMDNkZWRhZi4uMGRkZjUxZiAxMDA2NDQKLS0tIGEvc3JjL2ltYXAvbmd4X2ltYXBfaGFuZGxlci5jCisrKyBiL3NyYy9pbWFwL25neF9pbWFwX2hhbmRsZXIuYwpAQCAtMTEsNyArMTEsOSBAQAogCiAKIHN0YXRpYyB2b2lkIG5neF9pbWFwX2luaXRfc2Vzc2lvbihuZ3hfZXZlbnRfdCAqcmV2KTsKK3N0YXRpYyB2b2lkIG5neF9pbWFwX2luaXRfcHJvdG9jb2wobmd4X2V2ZW50X3QgKnJldik7CiBzdGF0aWMgbmd4X2ludF90IG5neF9pbWFwX3JlYWRfY29tbWFuZChuZ3hfaW1hcF9zZXNzaW9uX3QgKnMpOworc3RhdGljIHVfY2hhciAqbmd4X2ltYXBfbG9nX2Vycm9yKG5neF9sb2dfdCAqbG9nLCB1X2NoYXIgKmJ1Ziwgc2l6ZV90IGxlbik7CiAKICNpZiAoTkdYX0lNQVBfU1NMKQogc3RhdGljIHZvaWQgbmd4X2ltYXBfc3NsX2Nsb3NlX2hhbmRsZXIobmd4X2V2ZW50X3QgKmV2KTsKQEAgLTQwLDIwICs0Miw0OSBAQAogdm9pZAogbmd4X2ltYXBfaW5pdF9jb25uZWN0aW9uKG5neF9jb25uZWN0aW9uX3QgKmMpCiB7CisgICAgbmd4X2ltYXBfbG9nX2N0eF90ICAqY3R4OworCisgICAgbmd4X2xvZ19kZWJ1ZzAoTkdYX0xPR19ERUJVR19JTUFQLCBjLT5sb2csIDAsICJpbWFwIGluaXQgY29ubmVjdGlvbiIpOworCisgICAgY3R4ID0gbmd4X3BhbGxvYyhjLT5wb29sLCBzaXplb2Yobmd4X2ltYXBfbG9nX2N0eF90KSk7CisgICAgaWYgKGN0eCA9PSBOVUxMKSB7CisgICAgICAgIG5neF9pbWFwX2Nsb3NlX2Nvbm5lY3Rpb24oYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9IAorCisgICAgY3R4LT5jbGllbnQgPSAmYy0+YWRkcl90ZXh0OworICAgIGN0eC0+c2Vzc2lvbiA9IE5VTEw7CisKKyAgICBjLT5sb2ctPmNvbm5lY3Rpb24gPSBjLT5udW1iZXI7CisgICAgYy0+bG9nLT5oYW5kbGVyID0gbmd4X2ltYXBfbG9nX2Vycm9yOworICAgIGMtPmxvZy0+ZGF0YSA9IGN0eDsKKyAgICBjLT5sb2ctPmFjdGlvbiA9ICJzZW5kaW5nIGNsaWVudCBncmVldGluZyBsaW5lIjsKKworICAgIGMtPmxvZ19lcnJvciA9IE5HWF9FUlJPUl9JTkZPOworCisgICAgbmd4X2ltYXBfaW5pdF9zZXNzaW9uKGMtPnJlYWQpOworfQorCisKK3N0YXRpYyB2b2lkCituZ3hfaW1hcF9pbml0X3Nlc3Npb24obmd4X2V2ZW50X3QgKnJldikKK3sKKyAgICBuZ3hfY29ubmVjdGlvbl90ICAgICAgICAgICpjOwogICAgIG5neF9pbWFwX3Nlc3Npb25fdCAgICAgICAgKnM7CisgICAgbmd4X2ltYXBfbG9nX2N0eF90ICAgICAgICAqbGN0eDsKICAgICBuZ3hfaW1hcF9jb25mX2N0eF90ICAgICAgICpjdHg7CisgICAgbmd4X2ltYXBfY29yZV9zcnZfY29uZl90ICAqY3NjZjsKICNpZiAoTkdYX0lNQVBfU1NMKQogICAgIG5neF9pbnRfdCAgICAgICAgICAgICAgICAgIHJjOwogICAgIG5neF9pbWFwX3NzbF9jb25mX3QgICAgICAgKnNzbGNmOwogI2VuZGlmCi0gICAgbmd4X2ltYXBfY29yZV9zcnZfY29uZl90ICAqY3NjZjsKIAotICAgIG5neF9sb2dfZGVidWcwKE5HWF9MT0dfREVCVUdfSU1BUCwgYy0+bG9nLCAwLCAiaW1hcCBpbml0IGNvbm5lY3Rpb24iKTsKLQotICAgIGMtPmxvZ19lcnJvciA9IE5HWF9FUlJPUl9JTkZPOworICAgIGMgPSByZXYtPmRhdGE7CiAKICAgICBjdHggPSBjLT5jdHg7CiAKKyAgICBjc2NmID0gbmd4X2ltYXBfZ2V0X21vZHVsZV9zcnZfY29uZihjdHgsIG5neF9pbWFwX2NvcmVfbW9kdWxlKTsKKwogI2lmIChOR1hfSU1BUF9TU0wpCiAKICAgICBzc2xjZiA9IG5neF9pbWFwX2dldF9tb2R1bGVfc3J2X2NvbmYoY3R4LCBuZ3hfaW1hcF9zc2xfbW9kdWxlKTsKQEAgLTc0LDYgKzEwNSwxNyBAQAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKHJjID09IE5HWF9BR0FJTikgeworICAgICAgICAgICAgbmd4X2FkZF90aW1lcihyZXYsIGNzY2YtPnRpbWVvdXQpOworICAgICAgICAgICAgYy0+cmVhZC0+aGFuZGxlciA9IG5neF9pbWFwX2luaXRfc2Vzc2lvbjsKKworICAgICAgICAgICAgaWYgKG5neF9oYW5kbGVfcmVhZF9ldmVudChyZXYsIDApID09IE5HWF9FUlJPUikgeworICAgICAgICAgICAgICAgIG5neF9pbWFwX2Nsb3NlX2Nvbm5lY3Rpb24oYyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGMtPnJlY3YgPSBuZ3hfc3NsX3JlY3Y7CiAgICAgICAgIGMtPnNlbmQgPSBuZ3hfc3NsX3dyaXRlOwogICAgICAgICBjLT5zZW5kX2NoYWluID0gbmd4X3NzbF9zZW5kX2NoYWluOwpAQCAtOTAsNyArMTMyLDYgQEAKICAgICBjLT5kYXRhID0gczsKICAgICBzLT5jb25uZWN0aW9uID0gYzsKIAotICAgIGNzY2YgPSBuZ3hfaW1hcF9nZXRfbW9kdWxlX3Nydl9jb25mKGN0eCwgbmd4X2ltYXBfY29yZV9tb2R1bGUpOwogICAgIHMtPnByb3RvY29sID0gY3NjZi0+cHJvdG9jb2w7CiAKICAgICBzLT5jdHggPSBuZ3hfcGNhbGxvYyhjLT5wb29sLCBzaXplb2Yodm9pZCAqKSAqIG5neF9pbWFwX21heF9tb2R1bGUpOwpAQCAtMTA0LDEzICsxNDUsMTUgQEAKIAogICAgIHMtPm91dCA9IGdyZWV0aW5nc1tzLT5wcm90b2NvbF07CiAKLSAgICBjLT5yZWFkLT5oYW5kbGVyID0gbmd4X2ltYXBfaW5pdF9zZXNzaW9uOworICAgIGxjdHggPSBjLT5sb2ctPmRhdGE7CisgICAgbGN0eC0+c2Vzc2lvbiA9IHM7CisKKyAgICBjLT5yZWFkLT5oYW5kbGVyID0gbmd4X2ltYXBfaW5pdF9wcm90b2NvbDsKICAgICBjLT53cml0ZS0+aGFuZGxlciA9IG5neF9pbWFwX3NlbmQ7CiAKLSAgICBuZ3hfYWRkX3RpbWVyKGMtPndyaXRlLCBjc2NmLT50aW1lb3V0KTsKLSAgICBuZ3hfYWRkX3RpbWVyKGMtPnJlYWQsIGNzY2YtPnRpbWVvdXQpOworICAgIG5neF9hZGRfdGltZXIocmV2LCBjc2NmLT50aW1lb3V0KTsKIAotICAgIGlmIChuZ3hfaGFuZGxlX3JlYWRfZXZlbnQoYy0+cmVhZCwgMCkgPT0gTkdYX0VSUk9SKSB7CisgICAgaWYgKG5neF9oYW5kbGVfcmVhZF9ldmVudChyZXYsIDApID09IE5HWF9FUlJPUikgewogICAgICAgICBuZ3hfaW1hcF9jbG9zZV9jb25uZWN0aW9uKGMpOwogICAgIH0KIApAQCAtMTIxLDkgKzE2NCwxMCBAQAogdm9pZAogbmd4X2ltYXBfc2VuZChuZ3hfZXZlbnRfdCAqd2V2KQogewotICAgIG5neF9pbnRfdCAgICAgICAgICAgIG47Ci0gICAgbmd4X2Nvbm5lY3Rpb25fdCAgICAqYzsKLSAgICBuZ3hfaW1hcF9zZXNzaW9uX3QgICpzOworICAgIG5neF9pbnRfdCAgICAgICAgICAgICAgICAgIG47CisgICAgbmd4X2Nvbm5lY3Rpb25fdCAgICAgICAgICAqYzsKKyAgICBuZ3hfaW1hcF9zZXNzaW9uX3QgICAgICAgICpzOworICAgIG5neF9pbWFwX2NvcmVfc3J2X2NvbmZfdCAgKmNzY2Y7CiAKICAgICBjID0gd2V2LT5kYXRhOwogICAgIHMgPSBjLT5kYXRhOwpAQCAtMTQ3LDYgKzE5MSwxMCBAQAogICAgIGlmIChuID4gMCkgewogICAgICAgICBzLT5vdXQubGVuIC09IG47CiAKKyAgICAgICAgaWYgKHdldi0+dGltZXJfc2V0KSB7CisgICAgICAgICAgICBuZ3hfZGVsX3RpbWVyKHdldik7CisgICAgICAgIH0KKwogICAgICAgICBpZiAocy0+cXVpdCkgewogICAgICAgICAgICAgbmd4X2ltYXBfY2xvc2VfY29ubmVjdGlvbihjKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE2Niw2ICsyMTQsMTAgQEAKIAogICAgIC8qIG4gPT0gTkdYX0FHQUlOICovCiAKKyAgICBjc2NmID0gbmd4X2ltYXBfZ2V0X21vZHVsZV9zcnZfY29uZihzLCBuZ3hfaW1hcF9jb3JlX21vZHVsZSk7CisKKyAgICBuZ3hfYWRkX3RpbWVyKGMtPndyaXRlLCBjc2NmLT50aW1lb3V0KTsKKwogICAgIGlmIChuZ3hfaGFuZGxlX3dyaXRlX2V2ZW50KGMtPndyaXRlLCAwKSA9PSBOR1hfRVJST1IpIHsKICAgICAgICAgbmd4X2ltYXBfY2xvc2VfY29ubmVjdGlvbihjKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTc0LDcgKzIyNiw3IEBACiAKIAogc3RhdGljIHZvaWQKLW5neF9pbWFwX2luaXRfc2Vzc2lvbihuZ3hfZXZlbnRfdCAqcmV2KQorbmd4X2ltYXBfaW5pdF9wcm90b2NvbChuZ3hfZXZlbnRfdCAqcmV2KQogewogICAgIHNpemVfdCAgICAgICAgICAgICAgICAgICAgIHNpemU7CiAgICAgbmd4X2Nvbm5lY3Rpb25fdCAgICAgICAgICAqYzsKQEAgLTE4Myw2ICsyMzUsOCBAQAogCiAgICAgYyA9IHJldi0+ZGF0YTsKIAorICAgIGMtPmxvZy0+YWN0aW9uID0gImluIGF1dGggc3RhdGUiOworCiAgICAgaWYgKHJldi0+dGltZWRvdXQpIHsKICAgICAgICAgbmd4X2xvZ19lcnJvcihOR1hfTE9HX0lORk8sIGMtPmxvZywgTkdYX0VUSU1FRE9VVCwgImNsaWVudCB0aW1lZCBvdXQiKTsKICAgICAgICAgbmd4X2ltYXBfY2xvc2VfY29ubmVjdGlvbihjKTsKQEAgLTY2NiwzICs3MjAsNTIgQEAKIH0KIAogI2VuZGlmCisKKworc3RhdGljIHVfY2hhciAqCituZ3hfaW1hcF9sb2dfZXJyb3Iobmd4X2xvZ190ICpsb2csIHVfY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworICAgIHVfY2hhciAgICAgICAgICAgICAgICAgKnA7CisgICAgbmd4X2ltYXBfc2Vzc2lvbl90ICAgICAqczsKKyAgICBuZ3hfaW1hcF9sb2dfY3R4X3QgICAgICpjdHg7CisKKyAgICBpZiAobG9nLT5hY3Rpb24pIHsKKyAgICAgICAgcCA9IG5neF9zbnByaW50ZihidWYsIGxlbiwgIiB3aGlsZSAlcyIsIGxvZy0+YWN0aW9uKTsKKyAgICAgICAgbGVuIC09IHAgLSBidWY7CisgICAgICAgIGJ1ZiA9IHA7CisgICAgfQorICAgIAorICAgIGN0eCA9IGxvZy0+ZGF0YTsKKworICAgIHAgPSBuZ3hfc25wcmludGYoYnVmLCBsZW4sICIsIGNsaWVudDogJVYiLCBjdHgtPmNsaWVudCk7CisgICAgbGVuIC09IHAgLSBidWY7CisgICAgYnVmID0gcDsKKworICAgIHMgPSBjdHgtPnNlc3Npb247CisKKyAgICBpZiAocyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKworICAgIHAgPSBuZ3hfc25wcmludGYoYnVmLCBsZW4sICIsIHNlcnZlcjogJVYiLAorICAgICAgICAgICAgICAgICAgICAgJnMtPmNvbm5lY3Rpb24tPmxpc3RlbmluZy0+YWRkcl90ZXh0KTsKKyAgICBsZW4gLT0gcCAtIGJ1ZjsKKyAgICBidWYgPSBwOworCisgICAgaWYgKHMtPmxvZ2luLmxlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKworICAgIHAgPSBuZ3hfc25wcmludGYoYnVmLCBsZW4sICIsIGxvZ2luOiBcIiVWXCIiLCAmcy0+bG9naW4pOworICAgIGxlbiAtPSBwIC0gYnVmOworICAgIGJ1ZiA9IHA7CisKKyAgICBpZiAocy0+cHJveHkgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisKKyAgICBwID0gbmd4X3NucHJpbnRmKGJ1ZiwgbGVuLCAiLCB1cHN0cmVhbTogJVYiLAorICAgICAgICAgICAgICAgICAgICAgJnMtPnByb3h5LT51cHN0cmVhbS5wZWVycy0+cGVlclswXS5uYW1lKTsKKworICAgIHJldHVybiBwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2ltYXAvbmd4X2ltYXBfcHJveHlfbW9kdWxlLmMgYi9zcmMvaW1hcC9uZ3hfaW1hcF9wcm94eV9tb2R1bGUuYwppbmRleCBmOWE4NGNlLi41NTAyZGM2IDEwMDY0NAotLS0gYS9zcmMvaW1hcC9uZ3hfaW1hcF9wcm94eV9tb2R1bGUuYworKysgYi9zcmMvaW1hcC9uZ3hfaW1hcF9wcm94eV9tb2R1bGUuYwpAQCAtNzcsOCArNzcsMTQgQEAKICAgICAmbmd4X2ltYXBfcHJveHlfbW9kdWxlX2N0eCwgICAgICAgICAgICAvKiBtb2R1bGUgY29udGV4dCAqLwogICAgIG5neF9pbWFwX3Byb3h5X2NvbW1hbmRzLCAgICAgICAgICAgICAgIC8qIG1vZHVsZSBkaXJlY3RpdmVzICovCiAgICAgTkdYX0lNQVBfTU9EVUxFLCAgICAgICAgICAgICAgICAgICAgICAgLyogbW9kdWxlIHR5cGUgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1hc3RlciAqLwogICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgbW9kdWxlICovCi0gICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBwcm9jZXNzICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHRocmVhZCAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGV4aXQgbWFzdGVyICovCisgICAgTkdYX01PRFVMRV9WMV9QQURESU5HCiB9OwogCiAKQEAgLTEwMSw5ICsxMDcsMTEgQEAKICAgICBwLT51cHN0cmVhbS5sb2cgPSBzLT5jb25uZWN0aW9uLT5sb2c7CiAgICAgcC0+dXBzdHJlYW0ubG9nX2Vycm9yID0gTkdYX0VSUk9SX0VSUjsKIAorICAgIHMtPmNvbm5lY3Rpb24tPmxvZy0+YWN0aW9uID0gImluIHVwc3RyZWFtIGF1dGggc3RhdGUiOworCiAgICAgcmMgPSBuZ3hfZXZlbnRfY29ubmVjdF9wZWVyKCZwLT51cHN0cmVhbSk7CiAKLSAgICBpZiAocmMgPT0gTkdYX0VSUk9SKSB7CisgICAgaWYgKHJjID09IE5HWF9FUlJPUiB8fCByYyA9PSBOR1hfQ09OTkVDVF9FUlJPUikgewogICAgICAgICBuZ3hfaW1hcF9zZXNzaW9uX2ludGVybmFsX3NlcnZlcl9lcnJvcihzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI4NCw2ICsyOTIsOCBAQAogICAgICAgICBwY2YgPSBuZ3hfaW1hcF9nZXRfbW9kdWxlX3Nydl9jb25mKHMsIG5neF9pbWFwX3Byb3h5X21vZHVsZSk7CiAgICAgICAgIG5neF9hZGRfdGltZXIocy0+Y29ubmVjdGlvbi0+cmVhZCwgcGNmLT50aW1lb3V0KTsKICAgICAgICAgbmd4X2RlbF90aW1lcihjLT5yZWFkKTsKKworICAgICAgICBjLT5sb2ctPmFjdGlvbiA9ICJwcm94eWluZyI7CiAgICAgfQogfQogCkBAIC00MDcsNiArNDE3LDggQEAKICAgICAgICAgcGNmID0gbmd4X2ltYXBfZ2V0X21vZHVsZV9zcnZfY29uZihzLCBuZ3hfaW1hcF9wcm94eV9tb2R1bGUpOwogICAgICAgICBuZ3hfYWRkX3RpbWVyKHMtPmNvbm5lY3Rpb24tPnJlYWQsIHBjZi0+dGltZW91dCk7CiAgICAgICAgIG5neF9kZWxfdGltZXIoYy0+cmVhZCk7CisKKyAgICAgICAgYy0+bG9nLT5hY3Rpb24gPSAicHJveHlpbmciOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2ltYXAvbmd4X2ltYXBfc3NsX21vZHVsZS5jIGIvc3JjL2ltYXAvbmd4X2ltYXBfc3NsX21vZHVsZS5jCmluZGV4IGU1ODM0YTYuLmIwNzJkOTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbWFwL25neF9pbWFwX3NzbF9tb2R1bGUuYworKysgYi9zcmMvaW1hcC9uZ3hfaW1hcF9zc2xfbW9kdWxlLmMKQEAgLTY1LDggKzY1LDE0IEBACiAgICAgJm5neF9pbWFwX3NzbF9tb2R1bGVfY3R4LCAgICAgICAgICAgICAgLyogbW9kdWxlIGNvbnRleHQgKi8KICAgICBuZ3hfaW1hcF9zc2xfY29tbWFuZHMsICAgICAgICAgICAgICAgICAvKiBtb2R1bGUgZGlyZWN0aXZlcyAqLwogICAgIE5HWF9JTUFQX01PRFVMRSwgICAgICAgICAgICAgICAgICAgICAgIC8qIG1vZHVsZSB0eXBlICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW5pdCBtYXN0ZXIgKi8KICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbml0IG1vZHVsZSAqLwotICAgIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgcHJvY2VzcyAqLworICAgIE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluaXQgdGhyZWFkICovCisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhpdCB0aHJlYWQgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IHByb2Nlc3MgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBleGl0IG1hc3RlciAqLworICAgIE5HWF9NT0RVTEVfVjFfUEFERElORwogfTsKIAogCkBAIC0xNzAsNSArMTc2LDcgQEAKICAgICAgICAgcmV0dXJuIE5HWF9DT05GX0VSUk9SOwogICAgIH0KIAorICAgIFNTTF9DVFhfc2V0X3ZlcmlmeShjb25mLT5zc2xfY3R4LCBTU0xfVkVSSUZZX05PTkUsIE5VTEwpOworCiAgICAgcmV0dXJuIE5HWF9DT05GX09LOwogfQpkaWZmIC0tZ2l0IGEvc3JjL29zL3VuaXgvbmd4X3Bvc2l4X2luaXQuYyBiL3NyYy9vcy91bml4L25neF9wb3NpeF9pbml0LmMKaW5kZXggYzhiMDU0OC4uOTdhYTg3NiAxMDA2NDQKLS0tIGEvc3JjL29zL3VuaXgvbmd4X3Bvc2l4X2luaXQuYworKysgYi9zcmMvb3MvdW5peC9uZ3hfcG9zaXhfaW5pdC5jCkBAIC0zMCw4ICszMCw2IEBACiBuZ3hfaW50X3QKIG5neF9vc19pbml0KG5neF9sb2dfdCAqbG9nKQogewotICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19OT1RJQ0UsIGxvZywgMCwgTkdJTlhfVkVSKTsKLQogI2lmIChOR1hfSEFWRV9PU19TUEVDSUZJQ19JTklUKQogICAgIGlmIChuZ3hfb3Nfc3BlY2lmaWNfaW5pdChsb2cpICE9IE5HWF9PSykgewogICAgICAgICByZXR1cm4gTkdYX0VSUk9SOwpAQCAtNjcsNiArNjUsOCBAQAogdm9pZAogbmd4X29zX3N0YXR1cyhuZ3hfbG9nX3QgKmxvZykKIHsKKyAgICBuZ3hfbG9nX2Vycm9yKE5HWF9MT0dfTk9USUNFLCBsb2csIDAsIE5HSU5YX1ZFUik7CisKICNpZiAoTkdYX0hBVkVfT1NfU1BFQ0lGSUNfSU5JVCkKICAgICBuZ3hfb3Nfc3BlY2lmaWNfc3RhdHVzKGxvZyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9vcy93aW4zMi9uZ3hfd2luMzJfaW5pdC5jIGIvc3JjL29zL3dpbjMyL25neF93aW4zMl9pbml0LmMKaW5kZXggMmI4ODkxMy4uOWMzZGY5NiAxMDA2NDQKLS0tIGEvc3JjL29zL3dpbjMyL25neF93aW4zMl9pbml0LmMKKysrIGIvc3JjL29zL3dpbjMyL25neF93aW4zMl9pbml0LmMKQEAgLTYsNiArNiw3IEBACiAKICNpbmNsdWRlIDxuZ3hfY29uZmlnLmg+CiAjaW5jbHVkZSA8bmd4X2NvcmUuaD4KKyNpbmNsdWRlIDxuZ2lueC5oPgogCiAKIG5neF91aW50X3QgIG5neF93aW4zMl92ZXJzaW9uOwpAQCAtMTY2LDYgKzE2Nyw4IEBACiB7CiAgICAgbmd4X29zdmlleF9zdHViX3QgICpvc3ZpZXhfc3R1YjsKIAorICAgIG5neF9sb2dfZXJyb3IoTkdYX0xPR19OT1RJQ0UsIGxvZywgMCwgTkdJTlhfVkVSKTsKKwogICAgIGlmIChvc3ZpZXgpIHsKIAogICAgICAgICAvKgo=