ZGlmZiAtLWdpdCBhL0FVVEhPUlMgYi9BVVRIT1JTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiYmE4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9BVVRIT1JTCkBAIC0wLDAgKzEgQEAKK1NlZSB0aGUgZmlsZSBDUkVESVRTLiAgQXV0b21ha2UgbGlrZXMgdXMgdG8gaGF2ZSB0aGlzIGZpbGUgY2FsbGVkIEFVVEhPUlMuCmRpZmYgLS1naXQgYS9BbmRyb2lkLm1rIGIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjBiNzc5Ci0tLSAvZGV2L251bGwKKysrIGIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDUwIEBACisjIENvcHlyaWdodCAyMDA2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworaWZuZXEgKCQoVEFSR0VUX1NJTVVMQVRPUiksdHJ1ZSkKKworTE9DQUxfUEFUSCA6PSAkKG15LWRpcikKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCisjIEZyb20gYXV0b2NvbmYtZ2VuZXJhdGVkIE1ha2VmaWxlCitzdHJhY2VfU09VUkNFUyA9IHN0cmFjZS5jIHN5c2NhbGwuYyB1dGlsLmMgZGVzYy5jIGZpbGUuYyBcCisgICAgICAgICAgICAgICAgIGlvLmMgaW9jdGwuYyBtZW0uYyBuZXQuYyBwcm9jZXNzLmMgYmptLmMgXAorICAgICAgICAgICAgICAgICByZXNvdXJjZS5jIHNpZ25hbC5jIHNvY2suYyBzeXN0ZW0uYyB0ZXJtLmMgdGltZS5jIFwKKyAgICAgICAgICAgICAgICAgcHJvYy5jIHN0cmVhbS5jCisKKyNleGNsdWRlZF9zb3VyY2VzID0gaXBjLmMKKworTE9DQUxfU1JDX0ZJTEVTOj0gJChzdHJhY2VfU09VUkNFUykKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PQorCisjIEhhY2sgZm9yIEFSTSBkZXZpY2VzLiBUaGlzIHZlcnNpb24gb2Ygc3RyYWNlIGRvZXMgbm90IHN1cHBvcnQgQVJNLCBhbmQgdGhlCisjIHBhdGNoIHRoYXQgd2FzIHVzZWQgdG8gYWRkIEFSTSBzdXBwb3J0IGFjdHVhbGx5IGFkZHMgdGhlIEFSTSBzeXNjYWxscyB0bworIyBsaW51eC9zaC8gKFNlZ2EgTWVnYWRyaXZlL0RyZWFtY2FzdC8uLi4pIGluc3RlYWQgb2YgbGludXgvYXJtLyAuIFRoZSBwcm9wZXIKKyMgd2F5IHRvIGZpeCB0aGlzIHdvdWxkIGJlIHRvIHVwZ3JhZGUgdG8gYSB2ZXJzaW9uIG9mIHN0cmFjZSB0aGF0IGRvZXMgc3VwcG9ydAorIyBBUk0gKGUuZy4gNC41LjEuOCksIGJ1dCB0aGF0IHdvdWxkIG1lYW4gaGF2aW5nIHRvIHJlYXBwbHkgYWxsIEFuZHJvaWQtc3BlY2lmaWMKKyMgY2hhbmdlcy4gU2lnaC4KK2lmZXEgKCQoVEFSR0VUX0FSQ0gpLGFybSkKKwlTVFJBQ0VfQVJNX0hFQURFUlMgOj0gJChMT0NBTF9QQVRIKS9zdHJhY2UvbGludXgvc2gKK2VuZGlmCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorCSQoU1RSQUNFX0FSTV9IRUFERVJTKSBcCisJJChLRVJORUxfSEVBREVSUykgXAorCSQoTE9DQUxfUEFUSCkvbGludXggXAorCSQoTE9DQUxfUEFUSCkvYW5kcm9pZC9hcmNoLyQoVEFSR0VUX0FSQ0gpCisKK0xPQ0FMX0NGTEFHUyA6PSAtREhBVkVfQ09ORklHX0ggLURkX2ZpbGVubz1kX2lubyAtRF9MRlM2NF9MQVJHRUZJTEU9MQorCitpZmVxICgkKFRBUkdFVF9BUkNIKSx4ODYpCitMT0NBTF9DRkxBR1MgKz0gLVVsaW51eAorZW5kaWYKKworTE9DQUxfTU9EVUxFIDo9IHN0cmFjZQorCitMT0NBTF9NT0RVTEVfUEFUSCA6PSAkKFRBUkdFVF9PVVRfT1BUSU9OQUxfRVhFQ1VUQUJMRVMpCisKK0xPQ0FMX01PRFVMRV9UQUdTIDo9IGRlYnVnCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQorCitlbmRpZiAgIyBUQVJHRVRfU0lNVUxBVE9SICE9IHRydWUKZGlmZiAtLWdpdCBhL0NPUFlSSUdIVCBiL0NPUFlSSUdIVApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzZiYWM3Ci0tLSAvZGV2L251bGwKKysrIGIvQ09QWVJJR0hUCkBAIC0wLDAgKzEsMzEgQEAKK0NvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CitDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CitDb3B5cmlnaHQgKGMpIDE5OTMgVWxyaWNoIFBlZ2Vsb3cgPHBlZ2Vsb3dAbW9vcmVhLnVuaS1tdWVuc3Rlci5kZT4KK0NvcHlyaWdodCAoYykgMTk5NSwgMTk5NiBNaWNoYWVsIEVsaXphYmV0aCBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0PgorQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CitDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWVwaGFja21vZGUub3JnPgorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKK2FyZSBtZXQ6CisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiszLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KK0lOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKK1RISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRJZDogQ09QWVJJR0hULHYgMS4zIDIwMDIvMDMvMzEgMTg6NDM6MDAgd2ljaGVydCBFeHAgJApkaWZmIC0tZ2l0IGEvQ1JFRElUUyBiL0NSRURJVFMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJiM2M1ZgotLS0gL2Rldi9udWxsCisrKyBiL0NSRURJVFMKQEAgLTAsMCArMSw0OSBAQAorVGhlIHByaW1hcnkgYXV0aG9ycyBvZiBzdHJhY2UgYXJlOgorCisJUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorCUJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorCVJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisKK1RoYW5rcyB0byB0aGUgZm9sbG93IHBlb3BsZSBmb3IgY29udHJpYnV0aW5nIHRvIHN0cmFjZSBieSByZXBvcnRpbmcKK2J1Z3MsIHByb3ZpZGluZyBmaXhlcywgcHJvdmlkaW5nIGluZm9ybWF0aW9uLCBwcm92aWRpbmcgcmVzb3VyY2VzIG9yCitwb3J0aW5nIHRvIG5ldyBzeXN0ZW1zOgorCisJQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KKwlBcmthZGl1c3ogTWlza2lld2ljeiA8bWlzaWVrQHBsZC5vcmcucGw+CisJTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4KKwlMdXBlIENocmlzdG9waCA8bHVwZUBhbGFueWEuaXNhci5tdWMuZGU+CisJVGhhbmggTWEgPHRtYUBlbmNvcmUuY29tPgorCUtlaXRoIFRob21wc29uIDxrc3RAYWxzeXMuY29tPgorCVJvbGFuZCBCb3JkZSA8Ym9AdWViZW1jLnNpZW1lbnMuZGU+CisJTWF0dCBEYXkgPG1kYXlAYXJ0aXNvZnQuY29tPgorCUpvZSBJbGFjcXVhIDxzcGlrZUB3b3JsZC5zdGQuY29tPgorCUp1InJnZW4gRmx1ayA8bG91aXNAbWFyY28uZGU+CisJQm8gS3VsbG1hciA8YmtAa3VsbG1hci5zZT4KKwlMZW9uYXJkIE4uIFp1YmtvZmYgPGxuekBkYW5kZWxpb24uY29tPgorCVJldWJlbiBTdW1uZXIgPHJhc3VtbmVyQHVuZGVyZ3JhZC5tYXRoLnV3YXRlcmxvby5jYT4KKwlKdWVyZ2VuIFdlaWdlcnQgPGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgorCUxpbnVzIFRvcnZhbGRzIDxMaW51cy5Ub3J2YWxkc0Bjcy5IZWxzaW5raS5GST4KKwlNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4KKwlBYXJvbiBVY2tvIDxVQ0tPQFZBWDEuUk9DS0hVUlNULkVEVT4KKwlEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGNhaXAucnV0Z2Vycy5lZHU+CisJTWF0dGhpYXMgUGZhbGxlciA8bGVvQGRhY2hhdS5tYXJjby5kZT4KKwlUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBiaWdidWcuZnJhbmtlbi5kZT4KKwlSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZEB0d2lkZGxlLnRhbXUuZWR1PgorCVRvbSBEeWFzIDx0ZHlhc0BlZGVuLnJ1dGdlcnMuZWR1PgorCUhlbnJpayBTdG9ybmVyIDxzdG9ybmVyQG9zaXJpcy5waW5nLmRrPgorCURhdmlkIE1vc2Jlcmdlci1UYW5nIDxkYXZpZG1AaHBsLmhwLmNvbT4KKwlVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPgorCU5hdGUgRWxkcmVkZ2UgPG5hdGVAY2FydHN5cy5jb20+CisJSmFrdWIgSmVsaW5layA8ampAdWx0cmEubGludXguY3o+CisJSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCVJpY2hhcmQgQnJhYWttYW4gPGRhcmtAeHM0YWxsLm5sPgorCUZsb3JpYW4gTG9ob2ZmIDxmbG9AcmZjODIyLm9yZz4KKwlELkouIEJhcnJvdyA8ZGpiYXJyb3dAZGUuaWJtLmNvbT4KKwlUb3BpIE1pZXR0aW5lbiA8VG9waS5NaWV0dGluZW5AbmljLmZpPgorCUdh62wgUm91YWxsYW5kIDxnYWVsLnJvdWFsbGFuZEBpbmFtZS5jb20+CisJUmljaGFyZCBIaXJzdCA8cmhpcnN0QGxpbnV4Y2FyZS5jb20+CisJR2FuZXNhbiBSYWphZ29wYWwgPHJnYW5lc2FuQG15cmVhbGJveC5jb20+CisJR3JlZyBCYW5rcyA8Z2JhbmtzQHBvY2tldHBlbmd1aW5zLmNvbT4KKwlBbmRpIEtsZWVuIDxha0BzdXNlLmRlPgorCU1pY2hhbCBMdWR2aWcgPG1sdWR2aWdAc3VzZS5jej4KKwlIZWlrbyBDYXJzdGVucyA8aGVpa28uY2Fyc3RlbnNAZGUuaWJtLmNvbT4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDE3MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvQ2hhbmdlTG9nCkBAIC0wLDAgKzEsNDY2MSBAQAorMjAwNy0xMC0wMSAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBuZXQuYyAocHJpbnRzb2NrKTogT3V0cHV0IEFGX1VOSVggc29ja2V0IGFkZHJlc3MgdXNpbmcKKwlwcmludHBhdGhuKCkgdG8gYXZvaWQgdW5wcmludGFibGUgY2hhcmFjdGVycyBpbiBvdXRwdXQuCisJU3VnZ2VzdGVkIGJ5IE5laWwgQ2FtcGJlbGwuCisKKzIwMDctMTAtMDEgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogdXRpbC5jIChzdHJpbmdfcXVvdGUpOiBNb3ZlIHF1b3RpbmcgY29kZSBmcm9tIC4uLgorCShwcmludHN0cikgLi4uIGhlcmUuICBVc2Ugc3RyaW5nX3F1b3RlLgorCShwcmludHBhdGhuKTogVXBkYXRlIGZvciBuZXcgc3RyaW5nX3F1b3RlIGludGVyZmFjZS4KKwkocHJpbnRwYXRoKTogVXNlIHByaW50cGF0aG4uCisKKzIwMDctMDktMjUgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3RyYWNlIChtYWluKTogVXNlIGNhbGxvYyBmb3IgdGNidGFiIGFsbG9jYXRpb24uCisJQ2hlY2sgY2FsbG9jIHJldHVybiB2YWx1ZS4KKwlSZXBvcnRlZCBieSBCYWkgV2VpZG9uZy4KKworMjAwNy0wOS0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvc3BhcmMvc3lzY2FsbC5oOiBBZGQgbWlzc2luZyBkZWNscy4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogQ29ycmVjdCBlbnRyaWVzIGZvciBzZXRncm91cHMzMiwKKwlnZXRncm91cHMzMiwgc3lzX2dldGRlbnRzNjQuCisJRnJvbSBKYWt1YiBCb2d1c3ogPHFib29zaEBwbGQtbGludXgub3JnPi4KKworCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBDb3JyZWN0IGVudHJpZXMgZm9yIG1hZHZpc2UsIHNldHJlc2dpZCwKKwlnZXRyZXNnaWQsIHBpdm90X3Jvb3QsIG1pbmNvcmUsIHBjaWNvbmZpZ19pb2Jhc2UsIGdldGRlbnRzNjQuCisJRnJvbSBKYWt1YiBCb2d1c3ogPHFib29zaEBwbGQtbGludXgub3JnPi4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBGaXggZ2V0ZWdpZDMyIGVudHJ5LgorCUZyb20gSmFrdWIgQm9ndXN6IDxxYm9vc2hAcGxkLWxpbnV4Lm9yZz4uCisKKwkqIGRlZnMuaCBbTElOVVhTUEFSQ106IFVzZSBhc20vcHNyY29tcGF0LmggZm9yIFtTUEFSQzY0XSwgbm90IGFzbS9wc3IuaC4KKwlGcm9tIEpha3ViIEJvZ3VzeiA8cWJvb3NoQHBsZC1saW51eC5vcmc+LgorCisJKiBtZW0uYyAoc3lzX2dldHBhZ2VzaXplKTogRGVmaW5lIGZvciBbU1BBUkMgfHwgU1BBUkM2NF0gdG9vLgorCUZyb20gSmFrdWIgQm9ndXN6IDxxYm9vc2hAcGxkLWxpbnV4Lm9yZz4uCisKKzIwMDctMDgtMjAgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3lzY2FsbC5jIChxdWFsX3N5c2NhbGwsIHF1YWxpZnkpOiBGaXggbnN5c2NhbGxzIGFuZCBNQVhfUVVBTFMgbWlzdXNlLgorCVJlcG9ydGVkIGJ5IFhpYW9uaW5nIERpbmcuCisKKzIwMDctMDgtMDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKwkgICAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZmlsZS5jIFshSEFWRV9TVEFUNjQgJiYgTElOVVggJiYgWDg2XzY0XSAoc3RydWN0IHN0YXQ2NCk6IERlZmluZSBpdC4KKwlbIUhBVkVfU1RBVDY0ICYmIExJTlVYICYmIFg4Nl82NF0gKEhBVkVfU1RBVDY0LCBTVEFUNjRfU0laRSk6IERlZmluZS4KKwlbSEFWRV9TVEFUNjRdIChwcmludHN0YXQ2NCkgW1NUQVQ2NF9TSVpFXTogQWRkIGNvbXBpbGUtdGltZSBhc3NlcnRpb24uCisJRml4ZXMgUkgjMjIyMjc1LgorCisJKiBmaWxlLmMgKHByaW50c3RhdDY0KTogVGVzdCBbSEFWRV9MT05HX0xPTkddIGZvciBzdF9zaXplIHByaW50aW5nCisJYW5kIGNhc3QgdG8gd2lkZXN0IHR5cGUgYXZhaWxhYmxlLgorCisyMDA3LTA4LTAzICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKworCSogZmlsZS5jIChvcGVuX21vZGVfZmxhZ3MpOiBBZGQgT19DTE9FWEVDLgorCSogbmV0LmMgKG1zZ19mbGFncyk6IEFkZCBNU0dfQ01TR19DTE9FWEVDLgorCisyMDA3LTA4LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjE2LgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xNi0xLgorCisJKiBkZWJpYW4vY29udHJvbCAoQnVpbGQtRGVwZW5kcyk6IFJlcGxhY2UgbGliYzYtZGV2LXMzOTB4IGFuZAorCWxpYmM2LWRldi1zcGFyYzY0IHdpdGggZ2NjLW11bHRpbGliLgorCSogZGViaWFuL3J1bGVzOiBSZXBsYWNlIHNwYXJjLWxpbnV4LCBzMzkwLWxpbnV4IGNvbmRpdGlvbmFscyB3aXRoCisJZ2VuZXJhbCAiYXJjaDY0X21hcCIgaGFpciwgaGFuZGxlIHg4Nl82NCBhbmQgcG93ZXJwYzY0IHRvby4KKwlGcm9tIE1hdHRoaWFzIEtsb3NlIDxkb2tvQGNzLnR1LWJlcmxpbi5kZT4uCisJRml4ZXMgRGViaWFuIzQzNTMwMy4KKworMjAwNy0wOC0wMiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAoZGV0YWNoKTogTW92ZWQgdGhlIHJlc3VtZSBub3RpZmljYXRpb24gY29kZSB0byAuLi4KKwkocmVzdW1lX2Zyb21fdGNwKTogLi4uIGEgbmV3IGZ1bmN0aW9uIGhlcmUuCisJKGhhbmRsZV9ncm91cF9leGl0KTogTm8gbG9uZ2VyIGRldGFjaCBhbHNvIHRoZSB0aHJlYWQgZ3JvdXAgbGVhZGVyLgorCSh0cmFjZSk6IEZpeGVkIHBhbmljIG9uIGV4aXQgb2YgdGhlIFRDQl9HUk9VUF9FWElUSU5HIGxlYWRlciBpdHNlbGYuCisJRml4ZXMgUkgjMjQ3OTA3LgorCisJKiB0ZXN0L2xlYWRlcmtpbGwuYyAoc3RhcnQpOiBSZW5hbWVkIHRvIC4uLgorCShzdGFydDApOiAuLi4gaGVyZS4KKwkoc3RhcnQxKTogTmV3IGZ1bmN0aW9uLgorCShtYWluKTogQ3JlYXRlZCBhIG5ldyBzcGFyZSB0aHJlYWQuCisKKzIwMDctMDgtMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHV0aWwuYyAodW1vdmVuKTogRG9uJ3QgcGVycm9yIGZvciBFSU8uCisJKHVtb3Zlc3RyKTogTGlrZXdpc2UuCisKKwkqIHByb2Nlc3MuYyAocHJpbnRhcmd2KTogSGFuZGxlIGJvdW5kYXJ5IGNhc2VzIGNvcnJlY3RseS4KKwlIYW5kbGUgYmlhcmNoIGZldGNoaW5nIGNvcnJlY3RseS4KKworCSogdXRpbC5jIChwcmludHN0cik6IERvbid0IHByaW50IC4uLiBpZiB0aGUgc3RyaW5nIG1hdGNoZXMgdGhlIGxlbmd0aAorCWxpbWl0IGV4YWN0bHkuCisKKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBKdXN0ICNpbmNsdWRlIHRoZSBzcGFyYyBmaWxlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaDogTGlrZXdpc2UuCisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZ2V0Y3B1LgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBBZGQgZW50cnkgZm9yIGV2ZW50ZmQuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgdGltZXJmZC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogQWRkIGVudHJ5IGZvciBzaWduYWxmZC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZXBvbGxfcHdhaXQuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKzIwMDctMDctMjMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKHN5c19nZXRjcHUpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2dldGNwdS4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIGVudHJ5IGZvciBnZXRjcHUuCisKKwkqIGRlc2MuYyAoc3lzX2V2ZW50ZmQpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX2V2ZW50ZmQuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZXZlbnRmZC4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiB0aW1lLmMgKHByaW50aXR2X2JpdG5lc3MpOiBBZGQgbWlzc2luZyBicmFjZXMgdG8gZW5jbG9zZQorCWNvbmRpdGlvbmFsIGNvZGUuCisJKFRERl9USU1FUl9BQlNUSU1FKTogRGVmaW5lIGlmIG5vdCBhbHJlYWR5LgorCSh0aW1lcmZkZmxhZ3MpOiBOZXcgdmFyaWFibGUuCisJKHN5c190aW1lcmZkKTogTmV3IGZ1bmN0aW9uLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHN5c190aW1lcmZkLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgdGltZXJmZCBlbnRyeS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX3NpZ25hbGZkLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgZW50cnkgZm9yIHNpZ25hbGZkLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAoc3lzX3NpZ25hbGZkKTogTmV3IGZ1bmN0aW9uLgorCisJKiBkZXNjLmMgKHN5c19lcG9sbF93YWl0KTogTW92ZSBib2R5IG9mIGZ1bmN0aW9uIHRvIC4uLgorCShlcG9sbF93YWl0X2NvbW1vbik6IC4uLmhlcmUuICBOZXcgZnVuY3Rpb24uCisJKHN5c19lcG9sbF9wd2FpdCk6IE5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfZXBvbGxfcHdhaXQuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3IgZXBvbGxfcHdhaXQuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwNy0wNy0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdGltZS5jIChwcmludHR2X2JpdG5lc3MpOiBTUEVDSUFMIG9ubHkgY291bnRzIHdoZW4gdHZfc2VjID09IDAuCisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEFkZCBtb3ZlX3BhZ2VzLgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IG1vdmVfcGFnZXMgdGFrZXMgNiBhcmdzLCBub3QgNS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisyMDA3LTA3LTIzICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oOiBBZGQgbmV3IHBhcmFtZXRlciB0byBwcmludHR2X2JpdG5lc3MgcHJvdG90eXBlLgorCShwcmludHR0dik6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIuCisJKHByaW50dHZfc3BlY2lhbCk6IE5ldyBtYWNyby4KKwkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCk6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIgb2YKKwlwcmludHR2X2JpdG5lc3MuCisJKiBmaWxlLmMgKHV0aW1lbnNhdGZsYWdzKTogTmV3IG1hY3JvLgorCShzeXNfb3NmX3V0aW1lcyk6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIgb2YKKwlwcmludHR2X2JpdG5lc3MuCisJKHN5c191dGltZXMpOiBMaWtld2lzZS4KKwkoc3lzX2Z1dGltZXNhdCk6IExpa2V3aXNlLgorCShkZWNvZGVfdXRpbWVzKTogQWRkIG5ldyBwYXJhbWV0ZXIuICBQYXNzIGl0IHRvIHRoZQorCXByaW50dHZfYml0bmVzcyBjYWxscy4gIEZpeCBwcmludGluZyBvZiB0aW1lIHZhbHVlcy4KKwkoc3lzX3V0aW1lbnNhdCk6IE5ldyBmdW5jdGlvbi4KKwkqIHRpbWUuYyAoVVRJTUVfTk9XLCBVVElNRV9PTUlUKTogRGVmaW5lIGlmIG5vdCBhbHJlYWR5CisJaGFwcGVuZWQuCisJKHByaW50dHZfYml0bmVzcyk6IEFkZCBuZXcgcGFyYW1ldGVyLiAgUHJpbnQgc3BlY2lhbCBVVElNRV8qCisJdmFsdWVzIGFzIHN0cmluZ3MgaWYgc2V0LgorCShzeXNfb3NmX2dldHRpbWVvZmRheSk6IFBhc3MgemVybyBmb3IgdGhlIG5ldyBwYXJhbWV0ZXIgb2YKKwlwcmludHR2X2JpdG5lc3MuCisJKHN5c19vc2Zfc2V0dGltZW9mZGF5KTogTGlrZXdpc2UuCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX3V0aW1lbnNhdC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHV0aW1lbnNhdCBlbnRyeS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBtZW0uYyAobW92ZV9wYWdlc19mbGFncyk6IE5ldyB2YXJpYWJsZS4KKwkoc3lzX21vdmVfcGFnZXMpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgc3lzX21vdmVfcGFnZXMuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCBlbnRyeSBmb3Igc3lzX21vdmVfcGFnZXMuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogbWVtLmMgKE1QT0xfTUZfTU9WRSwgTVBPTF9NRl9NT1ZFX0FMTCk6IERlZmluZS4KKwkobWJpbmRmbGFncyk6IEFkZCBNUE9MX01GX01PVkUgYW5kIE1QT0xfTUZfTU9WRV9BTEwgZW50cmllcy4KKworMjAwNy0wNy0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdXRpbC5jICh0dl9hZGQpOiBGaXggcm91bmRpbmcgY29tcGFyaXNvbi4KKwlSZXBvcnRlZCBieSBCYWkgV2VpZG9uZyA8YmFpd2RAY24uZnVqaXRzdS5jb20+LgorCisyMDA3LTA3LTExICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb3VudC5jIChjYWxsX3N1bW1hcnlfcGVycyk6IFVzZSB0dl9mbG9hdCBjb252ZXJzaW9uIGZvciBvdXRwdXQgb2YKKwljdW11bGF0aXZlIHRpbWUsIGluIGNhc2UgaXQgaXMgbmVnYXRpdmUgZnJvbSBib2d1cyAtTyB2YWx1ZS4KKwlGcm9tIExhaSBKaWFuZ1NoYW4gPGxhaWpzQGNuLmZ1aml0c3UuY29tPi4KKworCSogc3RyYWNlLmMgKGhhbmRsZV9ncm91cF9leGl0KTogRGV0YWNoIFRDUCBiZWZvcmUgTEVBREVSLgorCURvbid0IHVzZSBQVFJBQ0VfS0lMTCBvbiBMRUFERVIuCisKKwkqIHV0aWwuYyAocHJpbnRzdHIpOiBGaXggc2l6ZSBjYWxjdWxhdGlvbiBmb3Igb3V0c3RyIGFsbG9jYXRpb24uCisKKwkqIGNvbmZpZ3VyZS5hYyAoc3RydWN0IHNpZ2NvbnRleHQuc2NfaGkyKTogVXNlICNpZmRlZiBhcm91bmQKKwk8YXNtL3NpZ2NvbnRleHQuaD4gdG8gbWF0Y2ggc2lnbmFsLmMgaW5jbHVkZSBjb25kaXRpb25zLgorCisyMDA3LTA3LTA1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZWJpYW4vcnVsZXM6IFVzZSBkZWJpYW4vJChwYWNrYWdlKSBpbnN0ZWFkIG9mIGRlYmlhbi90bXAgYXMgdGVtcCBkaXIuCisKKwkqIGNvbmZpZ3VyZS5hYzogVXNlIDxzdGRkZWYuaD4gYmVmb3JlIDxsaW51eC9zb2NrZXQuaD4uCisKKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IEhhcm1vbml6ZSB3aXRoIGRlYmlhbiB2ZXJzaW9uLgorCSogZGViaWFuL2NvbnRyb2wgKFVwbG9hZGVycyk6IEZpeCBzdXJuYW1lIHNwZWxsaW5nLgorCShCdWlsZC1EZXBlbmRzKTogTWFrZSBkZWJoZWxwZXIgcmVxdWlyZW1lbnQgKD49IDUuMC4wKS4KKwkoU3RhbmRhcmRzLVZlcnNpb24pOiBVcGRhdGUgdG8gMy43LjIuCisKKwkqIC5jdnNpZ25vcmU6IEFkZCBzb21lIGF1dG9tYWtlLWNyZWF0ZWQgZmlsZXMuCisKKwkqIGZpbGUuYyAoc3lzX3V0aW1lKTogVXNlIHBlcnNvbmFsaXR5X3dvcmRzaXplIHRvIGhhbmRsZSBiaWFyY2guCisJRml4ZXMgUkgjMjQ3MTg1LgorCisJKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybikgW01JUFNdOiBQYXNzIDNyZCBhcmcgdG8gc3ByaW50c2lnbWFzay4KKwlGcm9tIFpoYW5nIExlIDx6aGlsZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgorCisJKiBzdHJhY2UuYyAoc3RyYWNlX2ZvcGVuKTogW19MRlM2NF9MQVJHRUZJTEVdOiBVc2UgZm9wZW42NC4KKwlGaXhlcyBEZWJpYW4jMzg1MzEwLgorCisJKiBzdHJhY2UuYyAobWFpbik6IEZpeCBlcnJvciBtZXNzYWdlIGZvciB1bmZvdW5kIC11IHVzZXIuCisJRnJvbSBTcmluaXZhc2EgRHMgPHNyaW5pdmFzYUBpbi5pYm0uY29tPi4KKwlGaXhlcyBSSCMyNDcxNzAuCisKKwkqIGRlYmlhbi9jb250cm9sIChBcmNoaXRlY3R1cmUpOiBBZGQgYXJtZWwuCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogRml4IHN5c19kZWxldGVfbW9kdWxlIGFyZyBjb3VudC4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L202OGsvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2R1bW15LmggKHN5c19kZWxldGVfbW9kdWxlKTogVXNlIHN5c19vcGVuLgorCUZyb20gSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAbGludXh0di5vcmc+LgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzdHJ1Y3Qgc2lnY29udGV4dC5zY19oaTIuCisJKiBzaWduYWwuYyAoc3lzX3NpZ3JldHVybikgW01JUFNdOiBVc2Ugc2NfaGkyIHZzIHNjX3NpZ3NldCBpZiBmb3VuZC4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gKGZ1dGV4b3BzKTogQWRkIG1hbnkgbmV3IHZhbHVlcy4KKwlbTElOVVhdIChmdXRleHdha2VvcHMsIGZ1dGV4d2FrZWNtcHMpOiBOZXcgdGFibGVzLgorCVtMSU5VWF0gKHN5c19mdXRleCk6IFVzZSB0aGVtLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMjQxNDY3LgorCisyMDA3LTA3LTA1ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChkZXRhY2gpOiBOZXcgcHJvdG90eXBlLiAgRXh0ZW5kZWQgdGhlIGZ1bmN0aW9uIGNvbW1lbnQuCisJW0xJTlVYXSAoZGV0YWNoKTogQ2FsbCBkcm9wdGNiKCkgaW5zdGVhZCBvZiB0aGUgd3JvbmdseSBwYXJhbWV0cml6ZWQKKwlkZXRhY2goKSBjYWxsLgorCShoYW5kbGVfZ3JvdXBfZXhpdCk6IENhbGwgZHJvcHRjYigpIGluc3RlYWQgb2YgdGhlIHdyb25nbHkgcGFyYW1ldHJpemVkCisJZGV0YWNoKCkgY2FsbC4JQWx3YXlzIGNhbGwgZGV0YWNoKCkgb25seSBvbmNlIGZyb20gdGhlIGdyb3VwIGxlYWRlci4KKwlDb21tZW50IHRoZSBsZWFkZXIga2lsbGluZyBrbm93biBidWcgdGVzdGVkIGJ5IGB0ZXN0L2xlYWRlcmtpbGwuYycuCisJQ29kZSBhZHZpc29yeTogUm9sYW5kIE1jR3JhdGgKKwlGaXhlcyBSSCMyNDA5NjEuCisKKwkqIHRlc3QvbGVhZGVya2lsbC5jOiBOZXcgZmlsZS4KKwkqIHRlc3QvLmN2c2lnbm9yZSwgdGVzdC9NYWtlZmlsZTogQWRkIGl0LgorCisyMDA3LTAzLTIxICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgorCisJKiBmaWxlLmMgKHN5c19uZXdmc3RhdGF0KTogRG9uJ3QgdXNlIHByaW50c3RhdDY0IG9uIHBwYzY0LgorCisyMDA3LTAzLTI5ICBWbGFkaW1pciBOYWR2b3JuaWsgPG5hZHZvcm5pa0BzdXNlLmN6PgorCSAgICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwlUcmFjZSBsaW51eCBTR19JTyBpb2N0bCBhcmd1bWVudHMgYW5kIHJlc3VsdHMuCisJKiBzY3NpLmM6IE5ldyBmaWxlLgorCSogTWFrZWZpbGUuYW0gKHN0cmFjZV9TT1VSQ0VTKTogQWRkIGl0LgorCSogZGVmcy5oIChzY3NpX2lvY3RsKTogTmV3IGZ1bmN0aW9uLgorCSogaW9jdGwuYyAoaW9jdGxfZGVjb2RlKTogVXNlIHNjc2lfaW9jdGwoKS4KKworPj4+Pj4+PiBjMThjNzAzLi4uIDIwMDctMDgtMjAgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKzIwMDctMDYtMjggIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogdXRpbC5jICh0dl9tdWwpOiBNdWx0aXBseSB0dl91c2VjIHByb3Blcmx5LgorCVBhdGNoIGZyb20gQ2FpIEZlaSA8Y2FpZmVpQGNuLmZ1aml0c3UuY29tPi4KKworMjAwNy0wNi0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJTmV2ZXIgaW50ZXJydXB0IHdoZW4gdGhlIGF0dGFjaGVkIHRyYWNlZCBwcm9jZXNzIHdvdWxkIGJlIGxlZnQgc3RvcHBlZC4KKwkqIHN0cmFjZS5jIChtYWluKTogYC1wJyBhdHRhY2hpbmcgbW92ZWQgdG8gLi4uCisJKHN0YXJ0dXBfYXR0YWNoKTogLi4uIGEgbmV3IGZ1bmN0aW9uLCByZW5hbWVkIGEgdmFyaWFibGUgQyB0byBUQ0JJLgorCUJsb2NrIGludGVycnVwdGluZyBzaWduYWxzIHNpbmNlIHRoZSBmaXJzdCB0cmFjZWUgaGFzIGJlZW4gYXR0YWNoZWQuCisJTmV3IGNvbW1lbnQgYWJvdXQgSU5URVJSVVBURUQgaW4gdGhlIG5vbnRocmVhZGVkIGNhc2UuCisJW0xJTlVYXSAoc3RhcnR1cF9hdHRhY2gpOiBDaGVjayBJTlRFUlJVUFRFRCBhZnRlciBlYWNoIGF0dGFjaGVkIHRocmVhZC4KKwkobWFpbik6IENvbW1hbmQgc3Bhd25pbmcgbW92ZWQgdG8gLi4uCisJKHN0YXJ0dXBfY2hpbGQpOiAuLi4gYSBuZXcgZnVuY3Rpb24sIHJlcGxhY2VkIFJFVFVSTiB3aXRoIEVYSVQuCisJW0xJTlVYXSAoZGV0YWNoKTogTmV3IHZhcmlhYmxlIENBVENIX1NJR1NUT1AsIGRvIG5vdCBzaWduYWwKKwluZXcgU0lHU1RPUCBmb3IgcHJvY2Vzc2VzIHN0aWxsIGluIFRDQl9TVEFSVFVQLgorCShtYWluKTogTW92ZSBzaWduYWxzIGFuZCBCTE9DS0VEX1NFVCBpbml0IGJlZm9yZSB0aGUgdHJhY2VlcyBhdHRhY2hpbmcsCisJW1NVTk9TNF0gKHRyYWNlKTogUmVtb3ZlZCBmaXh2Zm9yayAoKSBjYWxsIGFzIGEgZGVhZCBjb2RlLCBTSUdTVE9QIG11c3QKKwloYXZlIGJlZW4gYWxyZWFkeSBjYXVnaHQgYmVmb3JlIGNsZWFyaW5nIFRDQl9TVEFSVFVQLgorCSh0cmFjZSk6IFJlbW92ZWQgdGhlIGAhV0lGU1RPUFBFRChzdGF0dXMpJyBkZWFkIGNvZGUuCisJQ2xlYXIgVENCX1NUQVJUVVAgb25seSBpbiB0aGUgY2FzZSB0aGUgcmVjZWl2ZWQgc2lnbmFsIHdhcyBTSUdTVE9QLgorCU5ldyBjb21tZW50IHdoZW4gYFRDQl9CUFRTRVQgJiYgVENCX1NUQVJUVVAnIGNvbWJpbmF0aW9uIGNhbiBiZSBzZXQuCisJQ29kZSBhZHZpc29yeTogUm9sYW5kIE1jR3JhdGgKKwlGaXhlcyBSSCMyNDA5ODYuCisKKzIwMDctMDUtMjQgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgW0xJTlVYXSAobXlfdGdraWxsKTogTmV3IG1hY3JvLgorCVtMSU5VWF0gKGRldGFjaCk6IFVzZSBteV90Z2tpbGwgKCkgaW5zdGVhZCBvZiBraWxsKDIpLgorCUZpeGVzIFJIIzI0MDk2Mi4KKworMjAwNy0wMy0zMCAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBtZW0uYyAobW1hcF9mbGFncyk6IEFkZCBNQVBfMzJCSVQuCisJUmVwb3J0ZWQgYnkgS2lyaWxsIEEuIFNodXRlbW92LgorCisyMDA3LTAxLTEyICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHNvY2suYyAoc29ja19pb2N0bCk6IENoZWNrIHVtb3ZlKCkgcmV0dXJuIGNvZGUuCisJW0xJTlVYXSBIYW5kbGUgU0lPQ0dJRlRYUUxFTiBhbmQgU0lPQ0dJRk1BUC4KKworMjAwNy0wMy0xNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfcmVzdGFydF9zeXNjYWxsIGZvciA3LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwNy0wMi0xOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLnNwZWMgKFN1bW1hcnkpOiBSZW1vdmUgdHJhaWxpbmcgcGVyaW9kLgorCSglZmlsZXMpOiBBZGQgJWRvYyBmaWxlcy4KKwkoJWNoYW5nZWxvZyk6IERvdWJsZSAlcyBpbiB0ZXh0LgorCShCdWlsZFJvb3QpOiBDaGFuZ2UgdG8gRmVkb3JhIGNhbm9uaWNhbC4KKwkoJWluc3RhbGwpOiBEb24ndCB1c2UgJW1ha2VpbnN0YWxsIG1hY3JvLgorCSglYnVpbGQpOiBVc2UgJXs/X3NtcF9tZmxhZ3N9LgorCisyMDA3LTAxLTE2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjE1LgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xNS0xLgorCisyMDA3LTAxLTE2ICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwlVcGRhdGUgbW91bnQgcGFyc2VyIHRvIG1hdGNoIGtlcm5lbCBiZWhhdmlvdXIuCisJKiBzeXN0ZW0uYyBbTElOVVhdIChNU19WRVJCT1NFKTogUmVuYW1lIHRvIE1TX1NJTEVOVC4KKwlbTElOVVhdIChNU19VTkJJTkRBQkxFLCBNU19QUklWQVRFLCBNU19TTEFWRSwgTVNfU0hBUkVEKToKKwlOZXcgbWFjcm9zLgorCVtMSU5VWF0gKG1vdW50X2ZsYWdzKTogQWRkIHRoZW0uCisJW0xJTlVYXSAoTVNfTUdDX01TSyk6IE5ldyBtYWNyby4KKwlbTElOVVhdIChzeXNfbW91bnQpOiBVcGRhdGUgcGFyc2VyIHRvIG1hdGNoIGtlcm5lbCBiZWhhdmlvdXI6CisJZGlzY2FyZCBNU19NR0NfVkFMIG1hZ2ljLCBkbyBub3QgZGVjb2RlIHR5cGUgYW5kL29yIGRhdGEKKwlzdHJpbmdzIHdoZW4gc3BlY2lmaWVkIGZsYWdzIGRvIG5vdCBpbXBseSB2YWxpZCBzdHJpbmdzLgorCisyMDA3LTAxLTEyICBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHRpbWUuYyBbTElOVVhdICh0cHJpbnRfdGltZXgzMiwgdHByaW50X3RpbWV4KTogRGVjb2RlIGFkanRpbWV4CisJbW9kZXMgYXMgZmxhZ3MuCisKKzIwMDctMDEtMTEgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCVVwZGF0ZSB1bW91bnQgcGFyc2VyLgorCSogc3lzdGVtLmMgW0xJTlVYXSAoTU5UX0ZPUkNFLCBNTlRfREVUQUNILCBNTlRfRVhQSVJFKTogTmV3IG1hY3Jvcy4KKwlbTElOVVhdICh1bW91bnRfZmxhZ3MpOiBOZXcgeGxhdCBzdHJ1Y3R1cmUgd2l0aCBNTlRfKiBlbnRyaWVzLgorCVtMSU5VWF0gKHN5c191bW91bnQyKTogVXNlIHVtb3VudF9mbGFncy4KKworCUZpeCBvcGVuKDIpIGZsYWdzIHBhcnNlci4KKwkqIGRlZnMuaCAodHByaW50X29wZW5fbW9kZXMpOiBOZXcgZnVuY3Rpb24uCisJKiBkZXNjLmMgKHNwcmludF9vcGVuX21vZGVzKTogTmV3IGZ1bmN0aW9uLgorCShzeXNfZmNudGwpOiBVc2UgdHByaW50X29wZW5fbW9kZXMoKSBhbmQgc3ByaW50X29wZW5fbW9kZXMoKS4KKwkqIGZpbGUuYyAob3Blbm1vZGVzKTogU3BsaXQgeGxhdCBpbnRvIG9wZW5fYWNjZXNzX21vZGVzIGFuZAorCW9wZW5fbW9kZV9mbGFncy4KKwkodHByaW50X29wZW5fbW9kZXMpOiBOZXcgZnVuY3Rpb24uCisJKGRlY29kZV9vcGVuKTogVXNlIGl0LgorCSogaXBjLmMgKHN5c19tcV9vcGVuLCBwcmludG1xYXR0cik6IExpa2V3aXNlLgorCUZpeGVzIFJIIzIyMjM4NS4KKworMjAwNy0wMS0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4xNS4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuMTUtMS4KKworCSogZGViaWFuL2NvbnRyb2wgKFVwbG9hZGVycyk6IEFkZCBGcmVkZXJpayBTY2h1ZWxlciA8ZnNAZGViaWFuLm9yZz4uCisKKwkqIHN0cmFjZS5zcGVjIChSZWxlYXNlKTogVXNlICV7P2Rpc3R9LgorCisJKiBzeXN0ZW0uYyBbTElOVVhdIChDVExfQ1BVKTogRGVmaW5lIGluIGNhc2UgaGVhZGVyIGlzIG1pc3NpbmcgaXQuCisKKzIwMDYtMTItMjcgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUFkZCBjb25zdCBxdWFsaWZpZXIgdG8geGxvb2t1cCgpIHJldHVybiB2YWx1ZS4KKwkqIGRlZnMuaCAoeGxvb2t1cCk6IEFkZCBjb25zdCBxdWFsaWZpZXIgdG8gcmV0dXJuIHZhbHVlLgorCSogZGVzYy5jIChzcHJpbnRmbGFncyk6IExpa2V3aXNlLgorCSogcHJvY2Vzcy5jIChwcmludHByaXYpOiBVcGRhdGUgeGxvb2t1cCgpIHVzZS4KKwkqIHNpZ25hbC5jIChzcHJpbnRzaWdtYXNrKTogQWRkIGNvbnN0IHF1YWxpZmllciB0byBmaXJzdCBhcmd1bWVudCBhbmQKKwlyZXR1cm4gdmFsdWUuCisJKiB1dGlsLmMgKHhsb29rdXApOiBBZGQgY29uc3QgcXVhbGlmaWVyIHRvIHJldHVybiB2YWx1ZS4KKwkocHJpbnR4dmFsKTogVXBkYXRlIHhsb29rdXAoKSB1c2UuCisKKzIwMDYtMTItMjEgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCU1vdmUgY291bnRzIGNvZGUgdG8gc2VwYXJhdGUgZmlsZS4KKwkqIGNvdW50LmM6IE5ldyBmaWxlLgorCSogTWFrZWZpbGUuYW0gKHN0cmFjZV9TT1VSQ0VTKTogQWRkIGNvdW50LmMuCisJKiBzeXNjYWxsLmMgKGNhbGxfY291bnRzLCBjb3VudHYsIGNvdW50cywgc2hvcnRlc3QsIHRpbWVfY21wLAorCXN5c2NhbGxfY21wLCBjb3VudF9jbXAsIHNvcnRmdW4sIG92ZXJoZWFkLCBzZXRfc29ydGJ5LAorCXNldF9vdmVyaGVhZCwgY2FsbF9zdW1tYXJ5X3BlcnMsIGNhbGxfc3VtbWFyeSk6IE1vdmUgdG8gY291bnQuYworCSogY291bnQuYyAoY291bnRfc3lzY2FsbCk6IE5ldyBmdW5jdGlvbi4KKwkqIGRlZnMuaCAoY291bnRfc3lzY2FsbCk6IERlY2xhcmUgaXQuCisJKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpOiBVc2UgaXQuCisKKzIwMDYtMTItMjAgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogQ2hhbmdlIGNvbmRpdGlvbnMgZm9yIGludGVybmFsX2V4aXQsCisJaW50ZXJuYWxfZm9yaywgaW50ZXJuYWxfY2xvbmUsIGludGVybmFsX2V4ZWMgYW5kIGludGVybmFsX3dhaXQKKwljYWxscyBmcm9tIHN3aXRjaGluZyBvbiBrbm93biBzY25vIHZhbHVlcyB0byBzd2l0Y2hpbmcgb24ga25vd24KKwlzeXNlbnRbdGNwLT5zY25vXS5zeXNfZnVuYyB2YWx1ZXMuCisJRml4ZXMgUkgjMTc5NzQwLgorCisJU2hvdyBzeXN0ZW0gY2FsbCBzdW1tYXJ5IGZvciBlYWNoIHBlcnNvbmFsaXR5LgorCSogc3lzY2FsbC5jIChjb3VudHYpOiBOZXcgY2FsbF9jb3VudHMgcG9pbnRlcnMgYXJyYXkuCisJKGNvdW50cyk6IENvbnZlcnQgdG8gbWFjcm8gd3JhcHBlciBhcm91bmQgY291bnR2LgorCShjYWxsX3N1bW1hcnlfcGVycyk6IE5ldyBmdW5jdGlvbi4KKwkoY2FsbF9zdW1tYXJ5KTogVXNlIGl0IGZvciBlYWNoIHBlcnNvbmFsaXR5LgorCUZpeGVzIFJIIzE5MjE5My4KKworMjAwNi0xMi0xMiAgRG1pdHJ5IFYuIExldmluIDxsZHZAYWx0bGludXgub3JnPgorCisJRml4IC1mZiAtbyBiZWhhdmlvdXIuICBGaXggcGlwaW5nIHRyYWNlIG91dHB1dC4KKwkqIGRlZnMuaCAobmV3b3V0Zik6IFJlbW92ZS4KKwkoYWxsb2N0Y2IpOiBSZW5hbWUgdG8gYWxsb2NfdGNiLiAgQWRkIGFsbG9jdGNiKCkgbWFjcm8gd3JhcHBlcgorCWFyb3VuZCBhbGxvY190Y2IoKS4KKwkqIHByb2Nlc3MuYyBbIVVTRV9QUk9DRlNdIChpbnRlcm5hbF9jbG9uZSwgaW50ZXJuYWxfZm9yayk6CisJUmVtb3ZlIG5ld291dGYoKSBjYWxsLgorCSogc3RyYWNlLmMgKHNldF9jbG9leGVjX2ZsYWcsIHN0cmFjZV9mb3Blbiwgc3RyYWNlX3BvcGVuLAorCXN3YXBfdWlkKTogTmV3IGZ1bmN0aW9ucy4KKwkocG9wZW5fcGlkKTogTmV3IHZhcmlhYmxlLgorCShuZXdvdXRmKTogTWFrZSBzdGF0aWMsIHVzZSBzdHJhY2VfZm9wZW4oKS4KKwkobWFpbik6IFVzZSBzdHJhY2VfZm9wZW4oKSBhbmQgc3RyYWNlX3BvcGVuKCksIHJlbW92ZSB1aWRzCisJc3dhcHBpbmcuICBEbyBub3Qgb3BlbiBvdXRmbmFtZSB3aGVuIGZvbGxvd2ZvcmsgPiAxLgorCVJlaW5pdGlhbGl6ZSB0Y3AtPm91dGYgcHJvcGVybHkuCisJKGFsbG9jdGNiKTogUmVuYW1lIHRvIGFsbG9jX3RjYi4gIFVzZSBuZXdvdXRmKCkuCisJKHRyYWNlKTogQ2hlY2sgcG9wZW5fcGlkLiAgUmVtb3ZlIG5ld291dGYoKSBjYWxsLgorCVtVU0VfUFJPQ0ZTXSAocHJvY19vcGVuLCBwcm9jX3BvbGxfb3Blbik6IFVzZSBzZXRfY2xvZXhlY19mbGFnKCkuCisJRml4ZXMgUkgjMjA0OTUwLCBSSCMyMTg0MzUsIERlYmlhbiMzNTM5MzUuCisKKzIwMDYtMTItMTAgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUVuaGFuY2UgYWRqdGltZXggcGFyc2VyLgorCSogdGltZS5jIFtMSU5VWF0gKGFkanRpbWV4X21vZGVzLCBhZGp0aW1leF9zdGF0dXMsCisJYWRqdGltZXhfc3RhdGUpOiBOZXcgeGxhdCBzdHJ1Y3R1cmVzLgorCVtMSU5VWF0gKHN5c19hZGp0aW1leCk6IFByaW50IHRoZSB3aG9sZSBzdHJ1Y3QgdGltZXguCisJRGVjb2RlIG1vZGVzLCBzdGF0dXMgYW5kIHJldHVybiBjb2RlLgorCisJQWRkIGJpYXJjaCBzdXBwb3J0IGZvciAic3RydWN0IGl0aW1lcnZhbCIuCisJKiB0aW1lLmMgKHByaW50aXR2KTogUmVuYW1lIHRvIHByaW50aXR2X2JpdG5lc3MoKS4KKwlBZGQgcHJpbnRpdHYoKSBtYWNybyB3cmFwcGVyIGFyb3VuZCBwcmludGl0dl9iaXRuZXNzKCkuCisJKHByaW50aXR2X2JpdG5lc3MpOiBIYW5kbGUgMzItYml0IHBlcnNvbmFsaXR5LgorCVtBTFBIQV0gKHN5c19vc2ZfZ2V0aXRpbWVyLCBzeXNfb3NmX3NldGl0aW1lcik6CisJVXNlIHByaW50aXR2X2JpdG5lc3MoKS4KKwkodHByaW50X3RpbWV2YWwsIHRwcmludF90aW1ldmFsMzIpOiBOZXcgZnVuY3Rpb25zLgorCShwcmludHR2X2JpdG5lc3MsIHByaW50aXR2X2JpdG5lc3MsIHN5c19hZGp0aW1leCk6IFVzZSB0aGVtLgorCShwcmludGl0djMyKTogUmVtb3ZlLgorCisJQWRkIGJpYXJjaCBzdXBwb3J0IGZvciAic3RydWN0IHRpbWV2YWwiLgorCSogZGVmcy5oIChiaXRuZXNzX3QpOiBOZXcgZW51bSB0eXBlLgorCShwcmludHR2X2JpdG5lc3MsIHNwcmludHR2KTogTmV3IGZ1bmN0aW9uIHByb3RvdHlwZXMuCisJKHByaW50dHYpOiBDb252ZXJ0IHRvIG1hY3JvIHdyYXBwZXIgYXJvdW5kIHByaW50dHZfYml0bmVzcygpLgorCShwcmludHR2MzIpOiBSZW1vdmUuCisJKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QpOiBVc2UgcHJpbnR0dl9iaXRuZXNzKCkgYW5kIHNwcmludHR2KCkuCisJKHN5c19vbGRzZWxlY3QsIHN5c19vc2Zfc2VsZWN0LCBzeXNfc2VsZWN0LCBzeXNfcHNlbGVjdDYpOgorCVVwZGF0ZSBkZWNvZGVfc2VsZWN0KCkgdXNlLgorCSogZmlsZS5jIFtBTFBIQV0gKHN5c19vc2ZfdXRpbWVzKTogVXNlIHByaW50dHZfYml0bmVzcygpLgorCSogdGltZS5jIChwcmludHR2X2JpdG5lc3MsIHNwcmludHR2KTogTmV3IGZ1bmN0aW9ucy4KKwkocHJpbnR0diwgcHJpbnR0djMyKTogUmVtb3ZlLgorCVtBTFBIQV0gKHN5c19vc2Zfc2V0dGltZW9mZGF5LCBzeXNfb3NmX3NldHRpbWVvZmRheSk6CisJVXNlIHByaW50dHZfYml0bmVzcygpLgorCUZpeGVzIFJIIzE3MTYyNiwgUkgjMTczMDUwLgorCisJQWRkIGJpYXJjaCBzdXBwb3J0IGZvciAic3RydWN0IGlvdmVjIi4KKwkqIGRlZnMuaCAocGVyc29uYWxpdHlfd29yZHNpemUpOiBBZGQuCisJKiBpby5jIFtIQVZFX1NZU19VSU9fSF0gKHRwcmludF9pb3YpOiBbTElOVVggJiYKKwlTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDFdIEhhbmRsZSAzMi1iaXQgcGVyc29uYWxpdHkuCisJKiB1dGlsLmMgW0hBVkVfU1lTX1VJT19IXSAoZHVtcGlvdik6IFtMSU5VWCAmJgorCVNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMV0gTGlrZXdpc2UuCisJUGF0Y2ggZnJvbSBKYWt1YiBKZWxpbmVrLgorCUZpeGVzIFJIIzIxODQzMy4KKworCSogdGltZS5jIChzeXNfdGltZXJfY3JlYXRlKTogQ2hlY2sgdW1vdmUoKSByZXR1cm4gY29kZS4KKworCU1ha2Ugc2V2ZXJhbCBnbG9iYWwgdmFyaWFibGVzIHN0YXRpYy4KKwkjaWZkZWYgZGVmaW5pdGlvbnMgb2YgcmFyZWx5IHVudXNlZCBmdW5jdGlvbnMuCisJKiBkZWZzLmggKHJmbGFnLCB0ZmxhZywgb3V0Zm5hbWUpOiBSZW1vdmUuCisJKiBzdHJhY2UuYyAoaWZsYWcsIGludGVyYWN0aXZlLCBwZmxhZ19zZWVuLCByZmxhZywgdGZsYWcsCisJb3V0Zm5hbWUsIHVzZXJuYW1lKTogTWFrZSBzdGF0aWMuCisJKiBkZXNjLmMgKHN5c19nZXRkdGFibGVzaXplKTogRGVmaW5lIG9ubHkgZm9yCisJQUxQSEEgfHwgRlJFRUJTRCB8fCBTVU5PUzQuCisJKiBmaWxlLmMgKHN5c19mY2hyb290KTogRGVmaW5lIG9ubHkgZm9yIFNVTk9TNCB8fCBTVlI0LgorCShzeXNfbWtmaWZvKTogRGVmaW5lIG9ubHkgZm9yIEZSRUVCU0QuCisJKiBtZW0uYyAoc3lzX3NicmspOiBEZWZpbmUgb25seSBmb3IgRlJFRUJTRCB8fCBTVU5PUzQuCisJKHN5c19nZXRwYWdlc2l6ZSk6IERlZmluZSBvbmx5IGZvcgorCUFMUEhBIHx8IEZSRUVCU0QgfHwgSUE2NCB8fCBTVU5PUzQgfHwgU1ZSNC4KKwkqIG5ldC5jIChzeXNfc29fc29ja2V0KTogRGVmaW5lIG9ubHkgZm9yIFNWUjQuCisJKiBwcm9jZXNzLmMgKHN5c19nZXRob3N0aWQpOiBEZWZpbmUgb25seSBmb3IKKwlGUkVFQlNEIHx8IFNVTk9TNCB8fCBTVlI0LgorCShzeXNfZ2V0aG9zdG5hbWUpOiBEZWZpbmUgb25seSBmb3IKKwlBTFBIQSB8fCBGUkVFQlNEIHx8IFNVTk9TNCB8fCBTVlI0LgorCShzeXNfc2V0cGdycCk6IERlZmluZSBvbmx5IGZvciBBTFBIQSB8fCBTVU5PUzQgfHwgU1ZSNC4KKwkoc3lzX2V4ZWN2KTogRGVmaW5lIG9ubHkgZm9yIFNQQVJDIHx8IFNQQVJDNjQgfHwgU1VOT1M0LgorCSogc2lnbmFsLmMgKHN5c19zaWdibG9jayk6IERlZmluZSBvbmx5IGZvciBGUkVFQlNEIHx8IFNVTk9TNC4KKwkoc3lzX3NpZ2hvbGQsIHN5c19zaWd3YWl0KTogRGVmaW5lIG9ubHkgZm9yIFNWUjQuCisJKHN5c19raWxscGcpOiBEZWZpbmUgb25seSBmb3IgRlJFRUJTRCB8fCBTVU5PUzQuCisJKiBzdHJlYW0uYyAoc3lzX2dldG1zZyk6IERlZmluZSBvbmx5IGZvcgorCVNQQVJDIHx8IFNQQVJDNjQgfHwgU1VOT1M0IHx8IFNWUjQuCisJKiBzeXNjYWxsLmMgKHN5c19pbmRpcik6IERlZmluZSBvbmx5IGZvciBTVU5PUzQuCisKKzIwMDYtMTEtMjcgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHN5c3RlbS5jIFtMSU5VWF06IERlZmluZSBDVExfUFJPQywgc2luY2UgTGludXggMi42LjE4KyBoZWFkZXJzCisJcmVtb3ZlZCBDVExfUFJPQyBlbnVtLglQYXRjaCBmcm9tIEpha3ViIEplbGluZWsuCisJW0xJTlVYXSAoc3lzY3RsX3Jvb3QpOiBBZGQgQ1RMX0JVUywgQ1RMX0FCSSBhbmQgQ1RMX0NQVS4KKworMjAwNi0xMS0yMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgI2lmIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0CisJU1lTX3NvY2tldF9zdWJjYWxsIGFkanVzdG1lbnQgaXNuJ3QgZm9yZ290dGVuIGFnYWluLgorCisyMDA2LTEwLTE2ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJSW1wbGVtZW50IGNvbXByZWhlbnNpdmUgcXVvdGFjdGwoMikgcGFyc2VyIGZvciBMaW51eC4KKwkqIE1ha2VmaWxlLmFtIChzdHJhY2VfU09VUkNFUyk6IEFkZCBxdW90YS5jLgorCSogcXVvdGEuYzogTmV3IGZpbGUuCisJKiByZXNvdXJjZS5jOiBSZW1vdmUgb2xkIHF1b3RhY3RsKDIpIHBhcnNlci4KKwlGaXhlcyBSSCMxMTg2OTYuCisKKzIwMDYtMTAtMTQgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGNvbmZpZ3VyZS5hYyhBQ19DSEVDS19IRUFERVJTKTogQWRkIGludHR5cGVzLmguCisJKiBmaWxlLmMgW19MRlM2NF9MQVJHRUZJTEUgJiYgKExJTlVYIHx8IFNWUjQpXToKKwlJbmNsdWRlIDxpbnR0eXBlcy5oPi4KKwkoc3lzX2dldGRlbnRzNjQpOiBVc2UgUFJJdTY0L1BSSWQ2NCB0byBhdm9pZCBnY2Mgd2FybmluZ3Mgb24KKwk2NC1iaXQgcGxhdGZvcm1zLgorCisJKiBzdHJhY2UuYyAobWFpbik6IENoZWNrIGdldGN3ZCgpIHJldHVybiBjb2RlLgorCisyMDA2LTEwLTEzICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKwkgICAgQmVybmhhcmQgS2FpbmRsIDxia0BzdXNlLmRlPgorCSAgICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCSAgICBNaWNoYWVsIEhvbHpoZXUgPGhvbHpoZXVAZGUuaWJtLmNvbT4KKworCUFkZCBob29rcyBmb3IgbmV3IHN5c2NhbGxzLiAgQWRkIGRlY29kZXJzIGZvciAqYXQsIGlub3RpZnkqLAorCXBzZWxlY3Q2LCBwcG9sbCBhbmQgdW5zaGFyZSBzeXNjYWxscy4KKworCSogZGVmcy5oOiBEZWNsYXJlIHByaW50X3NpZ3NldC4KKwkqIGRlc2MuYyAoc3lzX3BzZWxlY3Q2KTogTmV3IGZ1bmN0aW9uLgorCSogZmlsZS5jIChkZWNvZGVfb3BlbiwgZGVjb2RlX2FjY2VzcywgZGVjb2RlX21rZGlyLAorCWRlY29kZV9yZWFkbGluaywgZGVjb2RlX2NobW9kLCBkZWNvZGVfdXRpbWVzLCBkZWNvZGVfbWtub2QpOgorCU5ldyBmdW5jdGlvbnMuCisJKHN5c19vcGVuLCBzeXNfYWNjZXNzLCBzeXNfbWtkaXIsIHN5c19yZWFkbGluaywgc3lzX2NobW9kLAorCXN5c191dGltZXMsIHN5c19ta25vZCk6IFVzZSB0aGVtLgorCVtMSU5VWF0gKGZzdGF0YXRmbGFncywgdW5saW5rYXRmbGFncywgaW5vdGlmeV9tb2Rlcyk6IE5ldworCXZhcmlhYmxlcy4KKwlbTElOVVhdIChwcmludF9kaXJmZCwgc3lzX29wZW5hdCwgc3lzX2ZhY2Nlc3NhdCwKKwlzeXNfbmV3ZnN0YXRhdCwgc3lzX21rZGlyYXQsIHN5c19saW5rYXQsIHN5c191bmxpbmthdCwKKwlzeXNfc3ltbGlua2F0LCBzeXNfcmVhZGxpbmthdCwgc3lzX3JlbmFtZWF0LCBzeXNfZmNob3duYXQsCisJc3lzX2ZjaG1vZGF0LCBzeXNfZnV0aW1lc2F0LCBzeXNfbWtub2RhdCwgc3lzX2lub3RpZnlfYWRkX3dhdGNoLAorCXN5c19pbm90aWZ5X3JtX3dhdGNoKTogTmV3IGZ1bmN0aW9ucy4KKwkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfdW5zaGFyZSk6IE5ldyBmdW5jdGlvbi4KKwkqIHNpZ25hbC5jIChwcmludF9zaWdzZXQpOiBOZXcgZnVuY3Rpb24uCisJKHN5c19zaWdwcm9jbWFzayk6IFVzZSBpdC4KKwkqIHN0cmVhbS5jIChkZWNvZGVfcG9sbCk6IE5ldyBmdW5jdGlvbi4KKwkoc3lzX3BvbGwpOiBVc2UgaXQuCisJW0xJTlVYXSAoc3lzX3Bwb2xsKTogTmV3IGZ1bmN0aW9uLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWxjYXJlIG5ldyBzeXNjYWxsIGhhbmRsZXJzLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBIb29rIHVwIG5ldyBzeXNjYWxscy4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCUZpeGVzIFJIIzE3ODYzMy4KKworMjAwNi0xMC0wNiAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3RyYWNlLmMgWyFVU0VfUFJPQ0ZTXSAodHJhY2UpOiBQcmVzZW5jZSBvZiBQVF9HRVRTSUdJTkZPCisJbWFjcm8gZG9lcyBub3QgbWVhbiB0aGF0IFBUX0NSX0lQU1IgYW5kIFBUX0NSX0lJUCBtYWNyb3MgYXJlCisJYWxzbyBkZWZpbmVkLCBzbyBjaGVjayB0aGVtIGFsb25nIHdpdGggUFRfR0VUU0lHSU5GTy4KKwlGaXhlcyBSSCMyMDk4NTYuCisKKzIwMDYtMDktMDEgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGZpbGUuYyAocHJpbnRfeGF0dHJfdmFsKTogRml4IG1lbW9yeSBjb3JydXB0aW9uIGJ1ZyByZXBvcnRlZAorCWJ5IEphbWVzIEFudGlsbC4KKwlGaXhlcyBSSCMyMDA2MjEuCisKKzIwMDYtMDQtMjEgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGRlZnMuaCBbTElOVVggJiYgWDg2XzY0ICYmICFfX05SX2V4aXRfZ3JvdXBdOiBEZWZpbmUKKwlfX05SX2V4aXRfZ3JvdXAuCisKKzIwMDYtMDMtMjkgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlGaXggcmFjZSBjb25kaXRpb25zIGluIHRjYiBhbGxvY2F0aW9uLgorCSogcHJvY2Vzcy5jIChmb3JrX3RjYik6IFJldHVybiBlcnJvciBjb2RlIGFzIGRvY3VtZW50ZWQuICBEbyBub3QKKwlwcmludCAidGNiIHRhYmxlIGZ1bGwiIGVycm9yIG1lc3NhZ2UuCisJW1VTRV9QUk9DRlNdIChpbnRlcm5hbF9mb3JrKTogRG8gbm90IHByaW50ICJ0Y2IgdGFibGUgZnVsbCIKKwllcnJvciBtZXNzYWdlLgorCVtTWVNfY2xvbmUgfHwgU1lTX2Nsb25lMl0gKGludGVybmFsX2Nsb25lLCBpbnRlcm5hbF9mb3JrKTogQ2FsbAorCWZvcmtfdGNiKCkgYmVmb3JlIGFsbG9jdGNiKCkuICBEbyBub3QgcHJpbnQgInRjYiB0YWJsZSBmdWxsIgorCWVycm9yIG1lc3NhZ2UuCisJKiBzdHJhY2UuYyAobWFpbik6IERvIG5vdCBwcmludCAidGNiIHRhYmxlIGZ1bGwiIGVycm9yIG1lc3NhZ2UuCisJKGV4cGFuZF90Y2J0YWIpOiBQcmludCBlcnJvciBtZXNzYWdlIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24KKwlmYWlsdXJlLgorCShhbGxvY3RjYik6IFByaW50IGVycm9yIG1lc3NhZ2Ugd2hlbiB0Y2IgdGFibGUgaXMgZnVsbC4KKwkodHJhY2UpOiBFeHBhbmQgdGNiIHRhYmxlIGlmIG5lY2Vzc2FyeSBwcmlvciB0byBhbGxvY2F0aW5nCisJZW50cnkgdGhlcmUuICBEbyBub3QgcHJpbnQgInRjYiB0YWJsZSBmdWxsIiBlcnJvciBtZXNzYWdlLgorCUZpeGVzIFJIIzE4MDI5My4KKworMjAwNi0wOC0yMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogaXBjLmMgKHN5c19tc2dnZXQsIHN5c19zZW1nZXQsIHN5c19zaG1nZXQpOiBTaG93IGtleSB2YWx1ZXMgaW4gaGV4LgorCUZpeGVzIFJIIzE5ODE3OS4KKworMjAwNi0wOC0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvc3lzY2FsbC5oIChTWVNfc29ja2V0X3N1YmNhbGwpOiBCdW1wIHRvIDQwMC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXBkYXRlIHRhYmxlLgorCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9tNjhrL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGaXhlcyBSSCMyMDE0NjIuCisKKzIwMDYtMDQtMjUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKTogRmFpbCB3aGVuIC1jIGlzIGdpdmVuIHdpdGggLWZmLgorCSogc3RyYWNlLjE6IE5vdGUgdGhlaXIgaW5jb21wYXRpYmlsaXR5LgorCUZpeGVzIFJIIzE4Nzg0Ny4KKworCSogc3RyYWNlLmMgKG1haW4pOiBGYWlsIHdoZW4gbm9ub3B0aW9uIGFyZ3MgZm9sbG93IC1wIHN3aXRjaGVzLgorCUZpeGVzIERlYmlhbiMzNjEzMDIuCisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIHhsYXRlLmVsLgorCisJKiBsaW51eC9taXBzL01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQsIHVudXNlZCBjcnVmdC4KKwkqIGxpbnV4L3NwYXJjL01ha2VmaWxlLmluOiBMaWtld2lzZS4KKworCSogc3RyYWNlLnNwZWMgKFNvdXJjZTApOiBVc2UgaHR0cDovL2RsLnNvdXJjZWZvcmdlLm5ldCBVUkwuCisKKwkqIGlwYy5jIChzeXNfc2VtdGltZWRvcCk6IEZpeGVkIGludmVydGVkIGluZGlyZWN0X2lwY2NhbGwgdGVzdC4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBGaXhlZCBzZW10aW1lZG9wIGVudHJ5LgorCUZyb20gTWlrZSBTdHJveWFuIDxtaWtlLnN0cm95YW5AaHAuY29tPi4KKwlGaXhlcyBEZWJpYW4jMzQwMjM5LgorCisyMDA2LTAzLTMwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgorCisJKiBsaW51eC9hcm0vc3lzY2FsbGVudC5oOiBDb3JyZWN0IHRoZSBuYW1lIG9mIGV4aXQuICBSZW1vdmUKKwlNNjhLIGNvbmRpdGlvbmFscyBhbmQgc3lzX3NlY3VyaXR5LiAgQ29ycmVjdCBzeXNjYWxscyAyNDMtMjgyLgorCUZpeGVzIERlYmlhbiMzNjAxNTQuCisKKwkqIHByb2Nlc3MuYyAoY2hhbmdlX3N5c2NhbGwpOiBBZGQgQVJNIHN1cHBvcnQuCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKTogSGFuZGxlIEFSTSBFQUJJLgorCUZpeGVzIERlYmlhbiMzNjAxNTIuCisKKzIwMDYtMDEtMTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTQuCisJKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjE0LTEuCisKKzIwMDYtMDEtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGRlYmlhbi9jb250cm9sIChCdWlsZC1EZXBlbmRzKTogQWRkIGRlYmhlbHBlci4KKworMjAwNi0wMS0xMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc2lnbmFsLmMgW0xJTlVYXSAoc3lzX3Jlc3RhcnRfc3lzY2FsbCk6IE5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfcmVzdGFydF9zeXNjYWxsLgorCSogbGludXgvc3BhcmMvc3lzY2FsbC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQ2FsbCAwIGlzIHJlc3RhcnRfc3lzY2FsbC4KKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbTY4ay9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2gvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfcmVzdGFydF9zeXNjYWxsLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJRml4ZXMgUkgjMTY1NDY5LgorCisyMDA1LTA4LTA4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzeXN0ZW0uYyBbTElOVVhdIChNU19NR0NfVkFMKTogTmV3IG1hY3JvLgorCVtMSU5VWF0gKG1vdW50X2ZsYWdzKTogQWRkIGl0LgorCVtMSU5VWF0gKHN5c19tb3VudCk6IElmIG5laXRoZXIgTVNfQklORCBub3IgTVNfTU9WRSBiaXRzIGFyZQorCXNldCBpbiB0aGUgZmxhZ3MgYXJndW1lbnQsIHRyeSB0byBmZXRjaCBkYXRhIHN0cmluZy4KKwlGaXhlcyBSSCMxNjUzNzcuCisKKzIwMDYtMDEtMTIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN5c3RlbS5jIChzeXNfc3lzY3RsKTogRG9uJ3QgcmVhZCBvZmYgZW5kIG9mIE5BTUUgd2hlbiBtYXhfc3RybGVuCisJZXhjZWVkcyBJTkZPLm5sZW4uCisJRnJvbSBUaW1vIExpbmRmb3JzIDx0aW1vLmxpbmRmb3JzQGlraS5maT4uCisJRml4ZXMgRGViaWFuIzMzOTExNy4KKworCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IERvbid0IHBhc3MgLXMgdG8gaW5zdGFsbC4gIFVzZSBkaF9zdHJpcC4KKwlGaXhlcyBEZWJpYW4jMzI1MTMyLgorCisJKiBkZWJpYW4vY29udHJvbCAoU3RhbmRhcmRzLVZlcnNpb24pOiBVcGRhdGUgdG8gMy42LjIuCisKKwkqIGRlZnMuaCBbTElOVVhTUEFSQ10gKFBFUlNPTkFMSVRZMF9XT1JEU0laRSwgUEVSU09OQUxJVFkxX1dPUkRTSVpFKToKKwlOZXcgbWFjcm9zLgorCVtTUEFSQzY0XSAoUEVSU09OQUxJVFkyX1dPUkRTSVpFKTogTmV3IG1hY3JvLgorCVtYODZfNjRdIChQRVJTT05BTElUWTBfV09SRFNJWkUsIFBFUlNPTkFMSVRZMV9XT1JEU0laRSk6IE5ldyBtYWNyb3MuCisJKiBzeXNjYWxsLmMgKFBFUlNPTkFMSVRZMF9XT1JEU0laRSk6IE5ldyBtYWNybyBpZiB1bmRlZmluZWQuCisJKHBlcnNvbmFsaXR5X3dvcmRzaXplKTogTmV3IHZhcmlhYmxlLgorCShkZWNvZGVfc3ViY2FsbCk6IFVzZSBpdCBmb3Igc2l6ZSBvZiBhcmd1bWVudCB3b3Jkcy4KKwlGaXhlcyBSSCMxNzQzNTQuCisKKzIwMDUtMTEtMTcgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwlJbXBsZW1lbnQgcXVhbF9mbGFncyBzdXBwb3J0IGZvciBlYWNoIHBlcnNvbmFsaXR5LgorCSogc3RyYWNlLmMgKG1haW4pOiBNb3ZlIHF1YWxpZnkgY2FsbHMgYWZ0ZXIgc2V0X3BlcnNvbmFsaXR5IGNhbGwuCisJKiBzeXNjYWxsLmMgKHF1YWxfZmxhZ3MwKTogTmV3IHZhcmlhYmxlLi4KKwlbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMl0gKHF1YWxfZmxhZ3MxKTogTmV3IHZhcmlhYmxlLgorCVtTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzXSAocXVhbF9mbGFnczIpOiBOZXcgdmFyaWFibGUuCisJKHF1YWxfZmxhZ3MpOiBDaGFuZ2UgdmFyaWFibGUgZGVmaW5pdGlvbiBmcm9tIGFycmF5IHRvIHBvaW50ZXIuCisJKHNldF9wZXJzb25hbGl0eSk6IEluaXRpYWxpemUgcXVhbF9mbGFncyB2YXJpYWJsZS4KKwkocXVhbGlmeV9vbmUpOiBBZGQgInBlcnMiIGFyZ3VtZW50IHRvIHNwZWNpZnkgcGVyc29uYWxpdHkuCisJW1NVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDJdOiBTZXQgcXVhbF9mbGFnczEgaWYgcmVxdWVzdGVkLgorCVtTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzXTogU2V0IHF1YWxfZmxhZ3MyIGlmIHJlcXVlc3RlZC4KKwkocXVhbF9zeXNjYWxsKTogUGFzcyBwZXJzb25hbGl0eSB0byBxdWFsaWZ5X29uZS4KKwlbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMl06IExvb2sgZm9yIHN5c2NhbGwgYWxzbyBpbiBzeXNlbnQxCisJdGFibGUuCisJW1NVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDNdOiBMb29rIGZvciBzeXNjYWxsIGFsc28gaW4gc3lzZW50MgorCXRhYmxlLgorCShxdWFsX3NpZ25hbCk6IFBhc3MgcGVyc29uYWxpdHkgdG8gcXVhbGlmeV9vbmUuCisJKHF1YWxfZGVzYyk6IExpa2V3aXNlLgorCShxdWFsaWZ5KTogVXNlIHF1YWxpZnlfb25lIGluc3RlYWQgb2YgbWFudWFsIHF1YWxfZmxhZ3MKKwltYW5pcHVsYXRpb25zLgorCVtTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyXTogTG9vayBmb3Igc3lzY2FsbCBhbHNvIGluIHN5c2VudDEKKwl0YWJsZS4KKwlbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gM106IExvb2sgZm9yIHN5c2NhbGwgYWxzbyBpbiBzeXNlbnQyCisJdGFibGUuCisJKiBkZWZzLmg6IFVwZGF0ZSBxdWFsX2ZsYWdzIGRlY2xhcmF0aW9uLgorCUZpeGVzIFJIIzE3Mzk4Ni4KKworMjAwNS0xMS0xNCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3lzY2FsbC5jIChxdWFsX3N5c2NhbGwpOiBIYW5kbGUgbnVtZXJpYyBzeXNjYWxsIHNwZWNpZmljYXRpb24uCisJRml4ZXMgUkgjMTc0Nzk4LgorCisJKiBzeXNjYWxsLmMgKHF1YWxfc2lnbmFsLCBxdWFsX29wdGlvbnMpOiBSZW1vdmUgcmVkdW5kYW50IGFyZ3VtZW50CisJY2hlY2suCisKKzIwMDUtMTItMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGlwYy5jIChpbmRpcmVjdF9pcGNjYWxsKSBbTUlQUyB8fCBIUFBBXTogUmV0dXJuIGZhbHNlLgorCUZpeGVzIERlYmlhbiMzNDAyMzkuCisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIGxpbnV4L2FybS9zeXNjYWxsZW50LmgKKwlhbmQgbGludXgvbTY4ay9zeXNjYWxsZW50LmguCisJRml4ZXMgRGViaWFuIzMzNjE5Ny4KKworCSogZGViaWFuL2NvbnRyb2wgKEFyY2hpdGVjdHVyZSk6IEFkZCBhcm1lYi4KKwlGaXhlcyBEZWJpYW4jMzM1NjgxLgorCisyMDA1LTExLTAyIE1pY2hhbCBNYXJlayAgPG1tYXJla0BzdXNlLmN6PgorCisJKiBzdHJhY2UtZ3JhcGggKGhhbmRsZV90cmFjZSk6IGZvbGxvdyBjbG9uZSgpIGFuZCB2Zm9yaygpIGNhbGxzLgorCisyMDA1LTEwLTI1ICBIZWlrbyBDYXJzdGVucyAgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisKKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBBZGRlZCBpb3ByaW9fc2V0LCBpb3ByaW9fZ2V0LAorCWlub3RpZnlfaW5pdCwgaW5vdGlmeV9hZGRfd2F0Y2gsIGlub3RpZnlfcm1fd2F0Y2guCisJQ29ycmVjdGVkIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHJlcXVlc3Rfa2V5LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwNS0xMi0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogaXBjLmMgKGluZGlyZWN0X2lwY2NhbGwpIFtJQTY0XTogUmV0dXJuIGZhbHNlIHVubGVzcyB0aGUgc3lzY2FsbAorCW51bWJlciBpcyBpbiB0aGUgbG93IHJhbmdlIG9mIElBMzIgc3lzY2FsbHMuCisKKzIwMDUtMTAtMDcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBTeXNjYWxsIDExMDUgaXMgZ2V0dGlkLCBub3QgaW9wZXJtLgorCisyMDA1LTEyLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiByZXNvdXJjZS5jIChyZXNvdXJjZXMpOiBBZGQgUkxJTUlUX05JQ0UsIFJMSU1JVF9SVFBSSU8uCisJUmVwb3J0ZWQgYnkgU2NvdHQgVHNhaSA8c2NvdHR0OTU4QHlhaG9vLmNvbS50dz4uCisKKwkqIGlwYy5jIChpbmRpcmVjdF9pcGNjYWxsKTogTmV3IGZ1bmN0aW9uLgorCShzeXNfbXNnY3RsLCBzeXNfbXNnc25kLCBzeXNfbXNncmN2LCBzeXNfc2Vtb3ApOiBVc2UgdGhhdCBwcmVkaWNhdGUKKwlpbnN0ZWFkIG9mICNpZmRlZiBMSU5VWCB0ZXN0LgorCVtMSU5VWF0gKHN5c19zZW10aW1lZG9wKTogTGlrZXdpc2UuCisJKHN5c19zaG1jdGwsIHN5c19zaG1hdCwgc3lzX3NobWR0KTogTGlrZXdpc2UuCisJRml4ZXMgUkgjMTY0NzU1LgorCisyMDA1LTA3LTMxICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKworCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogRml4IHN5c2NhbGwgcGFyYW1ldGVyIGNvdW50IGZvciBtc2dyY3YgYW5kCisJbXNnY3RsLgorCisJKiBpcGMuYyAoc3lzX21zZ3Jjdik6IEFkZCBlbnRlcmluZyBoYW5kbGluZyBhbmQgcHJpbnQgZmlyc3QgcGFyYW1ldGVyCisJdGhlcmUuCisJRml4ZXMgUkgjMTY0NzU3LgorCisyMDA1LTA4LTA4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBzdHJhY2UuMTogVXBkYXRlICJTRUUgQUxTTyIgbGlua3MgdG8gcmVmZXJlbmNlIHRvIHZhbGlkCisJbWFucGFnZXMuCisJUGF0Y2ggZnJvbSBNaWNoYWlsIExpdHZhayA8bWNpQG93bC5vcGVud2FsbC5jb20+LgorCUZpeGVzIFJIIzE2NTM3NS4KKworMjAwNS0xMC0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdXRpbC5jIChwcmludHBhdGhuKTogQ2FwIE4gYXQgc2l6ZW9mIHBhdGggLSAxLgorCisyMDA1LTA4LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjEzLgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS4xMy0xLgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzdHJ1Y3QgZHFibGsuZHFiX2N1cmJsb2NrcyBmaWVsZC4KKwkqIHJlc291cmNlLmMgW0xJTlVYXSAoT0xEX0NNRCk6IE5ldyBtYWNyby4KKwkocXVvdGFjbWRzKTogVXNlIGl0IHRvIGhhcmQtd2lyZSBvbGQgT18qIHZhbHVlcywgZG9uJ3QgdXNlIG1hY3Jvcy4KKwkoc3lzX3F1b3RhY3RsKTogSWYgZHFiX2N1cmJsb2NrcyBpcyBub3QgdGhlcmUsIGl0J3MgY2FsbGVkCisJZHFiX2N1cnNwYWNlIGluc3RlYWQuICBQcmludCBkcWJfKiBmaWVsZHMgYXMgdW5zaWduZWQgbG9uZyBsb25nLgorCisyMDA1LTA3LTE5ICBNaWNoYWVsIFNjaG1pdHogIDxzY2htaXR6QGRlYmlhbi5vcmc+CisKKwlMb25nIG92ZXJkdWUgbTY4ayBjbGVhbnVwLgorCSogbGludXgvc3lzY2FsbGVudC5oOiByZW1vdmUgbTY4ayBkZWNsYXJhdGlvbnMuCisJKiBsaW51eC9tNjhrL3N5c2NhbGxlbnQuaDogbmV3IGZpbGUsIGZpeGVkIHVwIGRlY2xhcmF0aW9ucworCXRvIG1hdGNoIGtlcm5lbCB2ZXJzaW9uIDIuNi4xMS4gTmV3ZXIgc3lzY2FsbHMgYXJlIHN1ZmZpY2llbnRseQorCWRpZmZlcmVudCBmcm9tIGkzODYgdG8gbWVyaXQgYSBzZXBhcmF0ZSBmaWxlLgorCisyMDA1LTA4LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVcGRhdGUgaW5pdF9tb2R1bGUgYXJndW1lbnQgY291bnQuCisJKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Mi5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NoL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKzIwMDUtMDctMjIgIEphbWVzIExlbnRpbmkgIDxqbGVudGluaUBnbWFpbC5jb20+CisKKwkqIGJqbS5jIChzeXNfaW5pdF9tb2R1bGUpOiBEaXNwbGF5IGFsbCB0aHJlZSBhcmd1bWVudHMuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSBhcmd1bWVudCBjb3VudC4KKworMjAwNS0wOC0wMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF93YWl0KTogRG9uJ3Qgc3VzcGVuZCB3aGVuIGtub3duIGNoaWxkIGlzIGtub3duCisJdG8gYmUgZXhpdGluZyBhbHJlYWR5LgorCisJKiBzdHJhY2UuYyAoZGV0YWNoKTogSWYgZGV0YWNoaW5nIHRoZSBsYXN0IGxpdmUgdGhyZWFkIGluIGEgZ3JvdXAgd2l0aAorCWEgem9tYmllIGxlYWRlciwgdGhlbiBkZXRhY2ggdGhlIGxlYWRlciB0b28uCisJKGhhbmRsZV9ncm91cF9leGl0KTogVXNlIGRldGFjaCwgbm90IGRyb3B0Y2IsIGZvciBwcmVkZWNlYXNlZCB0aHJlYWQuCisJTWFyayBwcm9jZXNzIGFib3V0IHRvIHRha2UgYSBzaWduYWwgd2l0aCBUQ0JfR1JPVVBfRVhJVElORyBmbGFnLgorCUZpeGVzIFJIIzE2MTkxOS4KKworMjAwNS0wNy0xOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oIFtMSU5VWF0gW002OEtdIChfX05SX2V4aXRfZ3JvdXApOiBEZWZpbmUgaXQgaWYgbWlzc2luZy4KKwlGaXhlcyBEZWJpYW4jMzE1NTAwLgorCisyMDA1LTA3LTE0ICBIZWlrbyBDYXJzdGVucyAgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisKKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oIChzeXNfdGdraWxsLCB2c2VydmVyLCBmYWR2aXNlNjRfNjQpCisJKHN0YXRmczY0LCBmc3RhdGZzNjQsIHJlbWFwX2ZpbGVfcGFnZXMsIG1iaW5kLCBnZXRfbWVtcG9saWN5KQorCShzZXRfbWVtcG9saWN5LCBtcV9vcGVuLCBtcV91bmxpbmssIG1xX3RpbWVkc2VuZCwgbXFfdGltZWRyZWNlaXZlKQorCShtcV9ub3RpZnksIG1xX2dldHNldGF0dHIsIHN5c19rZXhlY19sb2FkLCBhZGRfa2V5LCByZXF1ZXN0X2tleSkKKwkoa2V5Y3RsLCB3YWl0aWQpOiBBZGRlZC4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UgYW5kIGFkZGVkIG1pc3NpbmcgX2xsc2Vlay4KKwkqIGxpbnV4L3MzOTAvZXJybm9lbnQuaCAoRUNBTkNFTEVELCBFTk9LRVksIEVLRVlFWFBJUkVEKQorCShFS0VZUkVWT0tFRCwgRUtFWVJFSkVDVEVELCBFT1dORVJERUFELCBFTk9UUkVDT1ZFUkFCTEUpOiBBZGRlZC4KKwkqIGxpbnV4L3MzOTB4L2Vycm5vZW50Lmg6IExpa2V3aXNlLgorCisyMDA1LTA3LTA1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBtZW0uYyBbTElOVVhdIChzeXNfb2xkX21tYXApIFtYODZfNjRdOiBFeHRyYWN0IDMyLWJpdCB2YWx1ZXMgaWYKKwljaGlsZCBpcyAzMi1iaXQuCisJRml4ZXMgUkgjMTYyNDY3LgorCisyMDA1LTA2LTA4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJSW50cm9kdWNlICItZSB0cmFjZT1kZXNjIi4KKwkqIGRlZnMuaCAoVFJBQ0VfREVTQyk6IE5ldyBmbGFnLgorCSogc3lzY2FsbC5jOiBEZWZpbmUgVEQgbWFjcm8gYmVmb3JlIGluY2x1ZGUgb2Ygc3lzY2FsbGVudCBmaWxlcworCWFuZCB1bmRlZmluZSBpdCBhZnRlcndhcmRzLgorCShsb29rdXBfY2xhc3MpOiBSZWNvZ25pemUgImRlc2MiIGtleXdvcmQuCisJKiBzdHJhY2UuMTogRG9jdW1lbnQgIi1lIHRyYWNlPWRlc2MiLgorCSogZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaDogTWFyayB0aG9zZSBzeXNjYWxscyB3aGljaCB0YWtlIGEKKwlmaWxlIGRlc2NyaXB0b3IgYXMgYW4gYXJndW1lbnQgb3IgcmV0dXJuIGEgZmlsZSBkZXNjcmlwdG9yIHdpdGgKKwlURCBmbGFnLgorCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc2g2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBzdW5vczQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIHN2cjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGaXhlcyBSSCMxNTk0MDAuCisKKwlSZW1vdmUgVEYgZmxhZyBmcm9tIHRob3NlIHN5c2NhbGxzIHdoaWNoIGhhdmUgbm8gZmlsZW5hbWUgYXJndW1lbnQuCisJKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIGZzdGF0LCBwcmVhZCwKKwlwd3JpdGUsIGZzdGF0LCBzZW5kZmlsZS4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogUmVtb3ZlIFRGIGZsYWcgZnJvbSByZWFkLCB3cml0ZSwKKwlwcmVhZCwgcHdyaXRlLCBzZW5kZmlsZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHJlYWQsIHdyaXRlLAorCXByZWFkLCBwd3JpdGUsIGZzdGF0NjQsIHNlbmRmaWxlLCBmdHJ1bmNhdGU2NC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHJlYWQsIHdyaXRlLAorCXNlbmRmaWxlLCBmc3RhdCwgZmFkdmlzZTY0LgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcmVhZCwgd3JpdGUsCisJZnN0YXRmcywgZnN0YXQsIHByZWFkLCBwd3JpdGUsIHNlbmRmaWxlLCBmdHJ1bmNhdGU2NCwgZnN0YXQ2NCwKKwlzZW5kZmlsZTY0LCBmYWR2aXNlNjQsIGZzdGF0ZnM2NC4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHJlYWQsIHdyaXRlLAorCWZzdGF0LCBwcmVhZCwgcHdyaXRlLCBzZW5kZmlsZSwgZnRydW5jYXRlNjQsIGZzdGF0NjQsIHNlbmRmaWxlNjQsCisJZmFkdmlzZTY0LCBmc3RhdGZzNjQsIGZhZHZpc2U2NF82NC4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsCisJc2VuZGZpbGUsIGZ0cnVuY2F0ZTY0LCBmc3RhdDY0LCBzZW5kZmlsZTY0LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsCisJc2VuZGZpbGUsIHNlbmRmaWxlNjQuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcHJlYWQsIHB3cml0ZSwKKwlzZW5kZmlsZSwgZnN0YXQ2NC4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsCisJc2VuZGZpbGUsIGZ0cnVuY2F0ZTY0LCBmc3RhdDY0LgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHNlbmRmaWxlLCBmc3RhdDY0LAorCXByZWFkLCBwd3JpdGUsIHNlbmRmaWxlNjQuCisJKiBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBSZW1vdmUgVEYgZmxhZyBmcm9tIHByZWFkLCBwd3JpdGUsIHNlbmRmaWxlLAorCWZ0cnVuY2F0ZTY0LCBmc3RhdDY0LCBzZW5kZmlsZTY0LCBmYWR2aXNlNjQsIGZhZHZpc2U2NCwgZnN0YXRmczY0LAorCWZhZHZpc2U2NF82NC4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcHJlYWQsIHB3cml0ZSwKKwlzZW5kZmlsZSwgZmFkdmlzZTY0XzY0LgorCSogc3ZyNC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBURiBmbGFnIGZyb20gcHJlYWQsIHB3cml0ZSwgZnRydW5jYXRlLAorCWZzdGF0dmZzNjQsIGZ0cnVuY2F0ZTY0LgorCUZpeGVzIFJIIzE1OTM0MC4KKworPj4+Pj4+PiA3Njg2MGY2Li4uIDIwMDYtMDMtMjkgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisyMDA1LTA3LTA0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBuZXQuYyAoc29ja2lwdjZvcHRpb25zKTogQWRkIElQVjZfQUREX01FTUJFUlNISVAsCisJSVBWNl9EUk9QX01FTUJFUlNISVAsIElQVjZfUk9VVEVSX0FMRVJULgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMTYyNDUwLgorCisJKiBuZXQuYyAoc29ja2lwb3B0aW9ucyk6IEZpeCB0eXBvcy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzE2MTU3OC4KKworCSogdXRpbC5jIChwcmludG51bV9pbnQpOiBOZXcgZnVuY3Rpb24sIHByaW50bnVtIHdpdGggcy9sb25nL2ludC8uCisJKiBkZWZzLmg6IERlY2xhcmUgaXQuCisJKiBuZXQuYyAocHJpbnRzb2Nrb3B0KTogVXNlIGl0IGZvciBpbnQtc2l6ZWQgb3B0aW9uLgorCUZpeGVzIFJIIzE2MjQ0OS4KKwlSZXBvcnRlZCBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworMjAwNS0wNi0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4xMi4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuMTItMS4KKworMjAwNS0wNi0wOCAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCU1pbm9yIG5hbWVzcGFjZSBjbGVhbnVwLgorCSogZGVmcy5oIChzdHJpbmdfcXVvdGUpOiBSZW1vdmUgZGVjbGFyYXRpb24uCisJKiBmaWxlLmMgKG9wZW5tb2Rlc3NvbCkgW0xJTlVYU1BBUkNdOiBNYWtlIHN0YXRpYy4KKwkoZmlsZWZsYWdzKTogTGlrZXdpc2UuCisJKGFjbGNtZHMsIGFjbGlwYykgW0hBVkVfU1lTX0FDTF9IXTogTGlrZXdpc2UuCisJKGRpcmVudHR5cGVzKSBbRlJFRUJTRCB8fCBMSU5VWF06IExpa2V3aXNlLgorCSh4YXR0cmZsYWdzKTogTGlrZXdpc2UuCisJKiBwcm9jZXNzLmMgKHVuYWxpZ25jdGxfc3RyaW5nKTogTWFrZSBzdGF0aWMuCisJKHNldGFyZyk6IERpc2FibGUuCisJKiBzeXNjYWxsLmMgKHN1YmNhbGxzX3RhYmxlKTogTWFrZSBzdGF0aWMuCisJKHNvY2tldF9tYXApIFshKExJTlVYICYmIChBTFBIQSB8fCBNSVBTKSldOiBMaWtld2lzZS4KKwkoc3BhcmNfc29ja2V0X2RlY29kZSk6IE1ha2Ugc3RhdGljLCBkZWZpbmUgZm9yIFtTUEFSQyB8fCBTUEFSQzY0XSBvbmx5LgorCShkZWNvZGVfc3ViY2FsbCk6IE1ha2Ugc3RhdGljLgorCShzeXNjYWxsX2ZpeHVwKTogTGlrZXdpc2UuCisJKGdldF9lcnJvcik6IExpa2V3aXNlLgorCShzeXNjYWxsX2VudGVyKTogTGlrZXdpc2UuCisJKiB1dGlsLmMgKHR2X3R2KTogRGlzYWJsZS4KKwkoZ2V0cGMpOiBMaWtld2lzZS4KKwkoc3RyaW5nX3F1b3RlKTogTWFrZSBzdGF0aWMuCisJRml4ZXMgUkgjMTU5Njg4LgorCisyMDA1LTA1LTEyICBQaGlsaXBwZSBEZSBNdXl0ZXIgIDxwaGRtQG1hY3FlbC5iZT4KKworCSogdXRpbC5jIChnZXRwYywgcHJpbnRjYWxsKTogQ2hlY2sgI2lmIGRlZmluZWQoTTY4SyksIG5vdCBNNjhrLgorCUVuYWJsZXMgYC1pJyBvbiBtNjhrIG1hY2hpbmVzLgorCisyMDA1LTA2LTA2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKHN0cnVjdF91c2VyX29mZnNldHMpIFtYODZfNjRdOiBSZW9yZGVyIGVsZW1lbnRzIHNvCisJbWF0Y2hpbmcgd29ya3MgcmlnaHQuCisJRml4ZXMgUkgjMTU5Nzg3LgorCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXQsIFNZU19iaW5kLCBTWVNfY29ubmVjdCwgU1lTX2xpc3RlbikKKwkoU1lTX2FjY2VwdCwgU1lTX2dldHNvY2tuYW1lLCBTWVNfZ2V0cGVlcm5hbWUsIFNZU19zb2NrZXRwYWlyKQorCShTWVNfc2VuZCwgU1lTX3JlY3YsIFNZU19zZW5kdG8sIFNZU19yZWN2ZnJvbSwgU1lTX3NodXRkb3duKQorCShTWVNfc2V0c29ja29wdCwgU1lTX2dldHNvY2tvcHQsIFNZU19zZW5kbXNnLCBTWVNfcmVjdm1zZykKKwkoU1lTX2dldHNvY2tuYW1lLCBTWVNfc2Vtb3AsIFNZU19zZW1nc3ViX2V0LCBTWVNfc2VtZ2V0LCBTWVNfc2VtY3RsKQorCShTWVNfc2VtdGltZWRvcCwgU1lTX21zZ3NuZCwgU1lTX21zZ3JjdiwgU1lTX21zZ2dldCkKKwkoU1lTX21zZ2N0bCwgU1lTX3NobWF0LCBTWVNfc2htZHQsIFNZU19zaG1nZXQpCisJKFNZU19zaG1jdGwpOiBNYWNyb3MgcmVuYW1lZCB0byBTWVNfc3ViXyouCisJKiBzeXNjYWxsLmMgKGR1bXBpbyk6IE1hdGNoIFNZU19zdWJfKiBpZiBkZWZpbmVkIGluc3RlYWQgb2YgU1lTXyouCisKKwkqIGxpbnV4L3N5c2NhbGwuaCAoU1lTX3dhaXRpZCk6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBGaXggcHJlYWQvcHdyaXRlIG5hbWVzIHRvIHByZWFkNjQvcHdyaXRlNjQuCisKKwkqIGRlZnMuaCAoc3RydWN0IHN5c2VudCk6IE5ldyBtZW1iZXIgYG5hdGl2ZV9zY25vJy4KKwkoa25vd25fc2Nubyk6IERlY2xhcmUgbmV3IGZ1bmN0aW9uLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgbmV3IGZpbmFsIGZpZWxkIHRvIGludGVyZXN0aW5nIHN5c2NhbGxzLgorCSogc3lzY2FsbC5jIChrbm93bl9zY25vKTogTmV3IGZ1bmN0aW9uLgorCShkdW1waW8sIGludGVybmFsX3N5c2NhbGwsIHN5c2NhbGxfZml4dXAsIHRyYWNlX3N5c2NhbGwpOiBVc2UgaXQuCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2ZvcmssIGludGVybmFsX2V4aXQpOiBMaWtld2lzZS4KKwlbSUE2NF0gKEFSR19TVEFDS1NJWkUsIEFSR19QVElELCBBUkdfQ1RJRCwgQVJHX1RMUyk6IExpa2V3aXNlLgorCSogc3RyYWNlLmMgKHByb2Nfb3Blbik6IExpa2V3aXNlLgorCSogdXRpbC5jIFtMSU5VWF0gKHNldGJwdCk6IExpa2V3aXNlLgorCSogbGludXgvc3lzY2FsbC5oOiBSZW1vdmUgWyFkZWZpbmVkKFg4Nl82NCldIGZyb20gY29uZGl0aW9uYWwKKwlmb3IgZGVmaW5pbmcgU1lTX3NvY2tldF9zdWJjYWxsIGV0IGFsLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBMaWtld2lzZSBmb3IgI2Vycm9yIGNoZWNrLgorCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKTogTGlrZXdpc2UgZm9yIFNZU197c29ja2V0Y2FsbCxpcGN9IGNhc2VzLgorCUZpeGVzIFJIIzE1ODkzNC4KKworMjAwNS0wNi0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZmlsZS5jIChwcmludHN0YXRmczY0KTogQ2FzdCB2YWx1ZXMgdG8gdW5zaWduZWQgbG9uZyBsb25nIGFuZCB1c2UKKwklbGx1IGZvcm1hdHMuCisJRml4ZXMgUkgjMTU4MjQzLgorCisyMDA1LTA1LTMxICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJRGVhbCB3aXRoIG1lbW9yeSBtYW5hZ2VtZW50IGlzc3Vlcy4KKwkqIGRlZnMuaCAodHByaW50X2lvdik6IFVwZGF0ZSBwcm90b3R5cGUuCisJKiBkZXNjLmMgKHN5c19lcG9sbF93YWl0KSBbSEFWRV9TWVNfRVBPTExfSF06IERvIG5vdCBhbGxvY2F0ZQorCWVwb2xsX2V2ZW50IGFycmF5IG9mIGFyYml0cmFyeSBzaXplIG9uIHRoZSBzdGFjaywgdG8gYXZvaWQKKwlzdGFjayBvdmVyZmxvdy4KKwkqIGZpbGUuYyAocHJpbnRfeGF0dHJfdmFsKTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgZHVyaW5nCisJbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KKwkqIGlvLmMgKHRwcmludF9pb3YpIFtIQVZFX1NZU19VSU9fSF06IENoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93CisJZHVyaW5nIG1hbGxvYyBzaXplIGNhbGN1bGF0aW9uLCB0byBhdm9pZCBoZWFwIGNvcnJ1cHRpb24uCisJQ2hhbmdlIGlvdmVjIGFycmF5IGhhbmRsaW5nIHRvIGF2b2lkIGhlYXAgbWVtb3J5IGFsbG9jYXRpb24uCisJKiBtZW0uYyAoZ2V0X25vZGVzKSBbTElOVVhdOiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyBkdXJpbmcKKwlzaXplIGNhbGN1bGF0aW9uIGFuZCBkbyBub3QgYWxsb2NhdGUgYXJyYXkgb2YgYXJiaXRyYXJ5IHNpemUgb24KKwl0aGUgc3RhY2ssIHRvIGF2b2lkIHN0YWNrIG92ZXJmbG93LgorCSogbmV0LmMgKHByaW50Y21zZ2hkcikgW0hBVkVfU0VORE1TR106IERvIG5vdCBhbGxvY2F0ZSBhcnJheSBvZgorCWFyYml0cmFyeSBzaXplIG9uIHRoZSBzdGFjaywgdG8gYXZvaWQgc3RhY2sgb3ZlcmZsb3cuICBEbyBub3QKKwl0cnVzdCBjbXNnLmNtc2dfbGVuIHRvIGF2b2lkIHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgYWxsb2NhdGVkCisJb2JqZWN0LgorCShwcmludG1zZ2hkcikgW0hBVkVfU0VORE1TR106IFVwZGF0ZSB0cHJpbnRfaW92KCkgdXNhZ2UuCisJKiBwcm9jZXNzLmMgKHN5c19zZXRncm91cHMpOiBDaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyBkdXJpbmcKKwltYWxsb2Mgc2l6ZSBjYWxjdWxhdGlvbiwgdG8gYXZvaWQgaGVhcCBjb3JydXB0aW9uLiAgQ2hhbmdlIGdpZF90CisJYXJyYXkgaGFuZGxpbmcgdG8gYXZvaWQgaGVhcCBtZW1vcnkgYWxsb2NhdGlvbi4KKwkoc3lzX2dldGdyb3Vwcyk6IExpa2V3aXNlLgorCShzeXNfc2V0Z3JvdXBzMzIpIFtMSU5VWF06IExpa2V3aXNlLgorCShzeXNfZ2V0Z3JvdXBzMzIpIFtMSU5VWF06IExpa2V3aXNlLgorCSogc3RyZWFtLmMgKHN5c19wb2xsKSBbSEFWRV9TWVNfUE9MTF9IXTogQ2hlY2sgZm9yIGludGVnZXIKKwlvdmVyZmxvdyBkdXJpbmcgbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KKwlDaGFuZ2UgcG9sbGZkIGFycmF5IGhhbmRsaW5nIHRvIGF2b2lkIGhlYXAgbWVtb3J5IGFsbG9jYXRpb24uCisJKiBzeXN0ZW0uYyAoc3lzX3N5c2N0bCkgW0xJTlVYXTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cKKwlkdXJpbmcgbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KKwkqIHV0aWwuYyAoZHVtcGlvdikgW0hBVkVfU1lTX1VJT19IXTogQ2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cKKwlkdXJpbmcgbWFsbG9jIHNpemUgY2FsY3VsYXRpb24sIHRvIGF2b2lkIGhlYXAgY29ycnVwdGlvbi4KKwlGaXhlcyBSSCMxNTkxOTYuCisKKwkqIHV0aWwuYyAocHJpbnR4dmFsKTogQ2hhbmdlIHRoaXJkIGFyZ3VtZW50IGZyb20gImNoYXIgKiIgdG8KKwkiY29uc3QgY2hhciAqIi4KKwkocHJpbnRmbGFncyk6IEFkZCB0aGlyZCBhcmd1bWVudCwgImNvbnN0IGNoYXIgKiIsIHdpdGggc2ltaWxhcgorCW1lYW5pbmcgdG8gdGhlIHRoaXJkIGFyZ3VtZW50IG9mIHByaW50eHZhbCgpLgorCSogZGVmcy5oIChwcmludHh2YWwpOiBDaGFuZ2UgdGhpcmQgYXJndW1lbnQgZnJvbSAiY2hhciAqIiB0bworCSJjb25zdCBjaGFyICoiLgorCShwcmludGZsYWdzKTogQWRkIHRoaXJkIGFyZ3VtZW50LgorCSogYmptLmMgKHN5c19xdWVyeV9tb2R1bGUpIFtMSU5VWF06IFBhc3MgdGhpcmQgYXJndW1lbnQgdG8KKwlwcmludGZsYWdzKCkuCisJKiBkZXNjLmMgKHN5c19mY250bCk6IExpa2V3aXNlLgorCShzeXNfZmxvY2spIFtMT0NLX1NIXTogTGlrZXdpc2UuCisJKHByaW50X2Vwb2xsX2V2ZW50KSBbSEFWRV9TWVNfRVBPTExfSF06IExpa2V3aXNlLgorCSogZmlsZS5jIChzeXNfb3Blbik6IExpa2V3aXNlLgorCShzb2xhcmlzX29wZW4pIFtMSU5VWFNQQVJDXTogTGlrZXdpc2UuCisJKHN5c19hY2Nlc3MpOiBMaWtld2lzZS4KKwkoc3lzX2NoZmxhZ3MsIHN5c19mY2hmbGFncykgW0ZSRUVCU0RdOiBMaWtld2lzZS4KKwkocmVhbHByaW50c3RhdCkgW0hBVkVfTE9OR19MT05HX09GRl9UICYmCisJSEFWRV9TVFJVQ1RfU1RBVF9TVF9GTEFHU106IExpa2V3aXNlLgorCShwcmludHN0YXQ2NCkgW0hBVkVfU1RBVDY0ICYmCisJSEFWRV9TVFJVQ1RfU1RBVF9TVF9GTEFHU106IExpa2V3aXNlLgorCShzeXNfc2V0eGF0dHIsIHN5c19mc2V0eGF0dHIpOiBMaWtld2lzZS4KKwkqIGlwYy5jIChzeXNfbXNnZ2V0LCBzeXNfbXNnc25kLCBzeXNfbXNncmN2LCBzeXNfc2VtZ2V0LAorCXN5c19zaG1nZXQsIHN5c19zaG1hdCkgW0xJTlVYIHx8IFNVTk9TNCB8fCBGUkVFQlNEXTogTGlrZXdpc2UuCisJKHN5c19tcV9vcGVuKSBbTElOVVhdOiBMaWtld2lzZS4KKwkocHJpbnRtcWF0dHIpIFtIQVZFX01RVUVVRV9IXTogTGlrZXdpc2UuCisJKiBtZW0uYyAocHJpbnRfbW1hcCkgWyFIQVZFX0xPTkdfTE9OR19PRkZfVF06IExpa2V3aXNlLgorCShzeXNfbW1hcDY0KSBbX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19PRkZfVF06IExpa2V3aXNlLgorCShzeXNfbXByb3RlY3QpOiBMaWtld2lzZS4KKwkoc3lzX21yZW1hcCwgc3lzX21hZHZpc2UsIHN5c19tbG9ja2FsbCkgW0xJTlVYXTogTGlrZXdpc2UuCisJKHN5c19tc3luYykgW01TX0FTWU5DXTogTGlrZXdpc2UuCisJKHN5c19tY3RsKSBbTUNfU1lOQ106IExpa2V3aXNlLgorCShzeXNfcmVtYXBfZmlsZV9wYWdlcywgc3lzX21iaW5kLCBzeXNfZ2V0X21lbXBvbGljeSkgW0xJTlVYXToKKwlMaWtld2lzZS4KKwkqIG5ldC5jIChwcmludG1zZ2hkcikgW0hBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTF06IExpa2V3aXNlLgorCShzeXNfc2VuZCwgc3lzX3NlbmR0byk6IExpa2V3aXNlLgorCShzeXNfc2VuZG1zZykgW0hBVkVfU0VORE1TR106IExpa2V3aXNlLgorCShzeXNfcmVjdiwgc3lzX3JlY3Zmcm9tKTogTGlrZXdpc2UuCisJKHN5c19yZWN2bXNnKSBbSEFWRV9TRU5ETVNHXTogTGlrZXdpc2UuCisJKHByaW50aWNtcGZpbHRlcikgW0lDTVBfRklMVEVSXTogTGlrZXdpc2UuCisJKiBwcm9jLmMgKHByb2NfaW9jdGwpIFtTVlI0ICYmICFIQVZFX01QX1BST0NGUyB8fCBGUkVFQlNEXTogTGlrZXdpc2UuCisJKiBwcm9jZXNzLmMgKHN5c19jbG9uZSkgW0xJTlVYXTogTGlrZXdpc2UuCisJKHByaW50d2FpdG4pOiBMaWtld2lzZS4KKwkoc3lzX3dhaXRpZCkgW1NWUjQgfHwgTElOVVhdOiBMaWtld2lzZS4KKwkqIHNpZ25hbC5jIChzeXNfc2lndmVjKSBbU1VOT1M0IHx8IEZSRUVCU0RdOiBMaWtld2lzZS4KKwkoc3lzX3NpZ2FjdGlvbik6IExpa2V3aXNlLgorCShwcmludGNvbnRleHQpIFtTVlI0XTogTGlrZXdpc2UuCisJKHByaW50X3N0YWNrX3QpIFtMSU5VWCkgfHwgRlJFRUJTRF06IExpa2V3aXNlLgorCShzeXNfcnRfc2lnYWN0aW9uKSBbTElOVVhdOiBMaWtld2lzZS4KKwkqIHNvY2suYyAoc29ja19pb2N0bCkgW0xJTlVYXTogTGlrZXdpc2UuCisJKiBzdHJlYW0uYyAoc3lzX3B1dG1zZywgc3lzX2dldG1zZyk6IExpa2V3aXNlLgorCShzeXNfcHV0cG1zZykgW1NZU19wdXRwbXNnXTogTGlrZXdpc2UuCisJKHN5c19nZXRwbXNnKSBbU1lTX2dldHBtc2ddOiBMaWtld2lzZS4KKwkoc3lzX3BvbGwpOiBMaWtld2lzZS4KKwkocHJpbnRfdHJhbnNwb3J0X21lc3NhZ2UpIFtUSV9CSU5EXTogTGlrZXdpc2UuCisJKHN0cmVhbV9pb2N0bCk6IExpa2V3aXNlLgorCSogc3lzdGVtLmMgKHN5c19tb3VudCwgc3lzX3JlYm9vdCk6IExpa2V3aXNlLgorCShzeXNfY2FjaGVmbHVzaCkgW0xJTlVYICYmIE02OEtdOiBMaWtld2lzZS4KKwkoc3lzX2NhcGdldCwgc3lzX2NhcHNldCkgW1NZU19jYXBnZXRdOiBMaWtld2lzZS4KKwkqIHRlcm0uYyAodGVybV9pb2N0bCkgW1RJT0NNR0VUXTogTGlrZXdpc2UuCisJKiB0aW1lLmMgKHN5c19jbG9ja19uYW5vc2xlZXAsIHN5c190aW1lcl9zZXR0aW1lKSBbTElOVVhdOgorCUxpa2V3aXNlLgorCUZpeGVzIFJIIzE1OTMxMC4KKworCSogYmptLmMgKHN5c19xdWVyeV9tb2R1bGUpIFtMSU5VWF06IFVuaXRpemUgIm91dCBvZiBtZW1vcnkiCisJZXJyb3JzIHJlcG9ydGluZyBzdHlsZS4KKwkqIHN0cmFjZS5jIChyZWJ1aWxkX3BvbGx2KSBbVVNFX1BST0NGU106IExpa2V3aXNlLgorCSogc3lzdGVtLmMgKHN5c19jYXBnZXQsIHN5c19jYXBzZXQpIFtTWVNfY2FwZ2V0XTogTGlrZXdpc2UuCisJKiB1dGlsLmMgKHByaW50c3RyKTogTGlrZXdpc2UuCisJKGR1bXBpb3YpIFtIQVZFX1NZU19VSU9fSF06IExpa2V3aXNlLgorCShmaXh2Zm9yaykgW1NVTk9TNF06IExpa2V3aXNlLgorCSogZGVzYy5jIChkZWNvZGVfc2VsZWN0KTogQ29udGludWUgdG8gZGVjb2RlIHN5c2NhbGwgYXJndW1lbnRzCisJaW4gY2FzZSBvZiBPT00gY29uZGl0aW9uLgorCSogZmlsZS5jIChzeXNfZ2V0ZGVudHMpOiBMaWtld2lzZS4KKwkoc3lzX2dldGRlbnRzNjQpIFtfTEZTNjRfTEFSR0VGSUxFXTogTGlrZXdpc2UuCisJKHN5c19nZXRkaXJlbnRyaWVzKSBbRlJFRUJTRF06IExpa2V3aXNlLgorCSogbWVtLmMgKHN5c19taW5jb3JlKTogQ2hhbmdlZCB0eXBlIG9mIHZhcmlhYmxlcyB3aGljaCBkZWFsIHdpdGgKKwltYWxsb2Mgc2l6ZSBmcm9tIGludCB0byB1bnNpZ25lZCBsb25nLgorCUZpeGVzIFJIIzE1OTMwOC4KKworMjAwNS0wNS0yMiAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogYmptLmMgW0xJTlVYXTogRG8gbm90IGluY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4uICBJdCBpcyBub3QKKwlzYWZlIHRvIGluY2x1ZGUga2VybmVsIGhlYWRlcnMsIGFuZCB0aGlzIG9uZSBpcyBub3QgdXNlZCBhbnl3YXkuCisJRml4ZXMgUkgjMTU4NDg4LgorCisyMDA1LTA1LTI2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXN0ZW0uYyAoc3lzX3N5c2N0bCk6IENoZWNrIGZvciBlcnJvcnMgYWNjZXNzaW5nIHVzZXIgcG9pbnRlcnMuCisJVXNlIG1hbGxvYyBpbnN0ZWFkIG9mIGFsbG9jYSBpbiBjYXNlIHNpemUgaXMgaW5zYW5lLgorCisyMDA1LTA1LTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBsaWJhaW8uaC4KKwkqIGRlc2MuYyAoc3lzX2lvX3NldHVwLCBzeXNfaW9fc3VibWl0LCBzeXNfaW9fY2FuY2VsLAorCXN5c19pb19nZXRldmVudHMsIHN5c19pb19kZXN0cm95KTogTmV3IGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBVc2UgdGhvc2UgZm9yIGlvXyogc3lzY2FsbHMuCisJKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCUZyb20gWmFjaCBCcm93biA8emFjaC5icm93bkBvcmFjbGUuY29tPi4KKwlGaXhlcyBSSCMxNTUwNjUuCisKKwkqIGRlYmlhbi9jb250cm9sIChBcmNoaXRlY3R1cmUpOiBBZGQgcHBjNjQuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMzAxMDg5LgorCisyMDA1LTA1LTA1ICBBbnRvbiBCbGFuY2hhcmQgIDxhbnRvbkBzYW1iYS5vcmc+CisKKwkqIHByb2Nlc3MuYyAocHRyYWNlX2NtZHMpOiBBZGQgUFRSQUNFX0dFVFZSUkVHUyBhbmQgUFRSQUNFX1NFVFZSUkVHUworCWlmIGRlZmluZWQuCisKKzIwMDUtMDUtMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKTogUmVmdXNlIG5lZ2F0aXZlIC1zIGFyZ3VtZW50IHZhbHVlLgorCUZpeGVzIERlYmlhbiBidWcgIzMwMzI1Ni4KKworMjAwNS0wNC0yNSAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgorCisJKiBmaWxlLmMgKG9wZW5tb2Rlcyk6IEFkZCBPX05PQVRJTUUgZmxhZyBpZiBkZWZpbmVkLgorCisyMDA1LTA0LTA1ICBBbnRvbiBCbGFuY2hhcmQgIDxhbnRvbkBzYW1iYS5vcmc+CisKKwkqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQuCisKKwkqIHNpZ25hbC5jIChzaWduYW1lKTogRG9uJ3QgdHJ5IGFuZCBkZXJlZmVyZW5jZSBuZWdhdGl2ZSBpbmRleC4KKworCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IEFkZCBkZWJ1Z19zZXRjb250ZXh0LCB2c2VydmVyLAorCW1iaW5kLCAqX21lbXBvbGljeSwgbXFfKiwgc3lzX2tleGVjX2xvYWQsIGFkZF9rZXksIHJlcXVlc3Rfa2V5LAorCWtleWN0bCwgd2FpdGlkLCBzeXNfc2VtdGltZWRvcC4gIEZpeCB2YXJpb3VzIG90aGVyIHN5c2NhbGxzLgorCisJKiBpcGMuYyAoc2htX3Jlc291cmNlX2ZsYWdzKTogTmV3IHZhcmlhYmxlLCB0YWJsZSBoYXMgU0hNX0hVR0VUTEIKKwlidXQgbm90IElQQ19OT1dBSVQsIHdoaWNoIGhhdmUgdGhlIHNhbWUgdmFsdWUuCisJKHN5c19zaG1nZXQpOiBVc2UgdGhhdCBpbnN0ZWFkIG9mIHJlc291cmNlX2ZsYWdzLgorCisyMDA1LTAzLTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QpOiBJbmNyZWFzZSBsb2NhbCBidWZmZXIgc2l6ZS4KKwlGaXhlcyBSSCMxNTE1NzAuCisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuMTEuCisJKiBkZWJpYW4vY2hhbmdlbG9nLCBzdHJhY2Uuc3BlYzogNC41LjExLTEuCisKKwkqIGxpbnV4L2FybS9zeXNjYWxsZW50Lmg6IEZpeCAxMTMgZW50cnkgKHN5c2NhbGwsIG5vdCB2bTg2b2xkKS4KKworMjAwNS0wMy0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4xMC4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2csIHN0cmFjZS5zcGVjOiA0LjUuMTAtMS4KKworMjAwNS0wMi0yNiAgR09UTyBNYXNhbm9yaSAgPGdvdG9tQGRlYmlhbi5vci5qcD4KKworCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oOiBGaXggdGhlIHJldmVyc2VkIG9yZGVyIG9mIGxzdGF0NjQgYW5kCisJZnN0YXQ2NC4gIENsZWFuIHVwIG9zZl9ucmVjdm1zZyBhbmQgb3NmX25nZXRzb2NrbmFtZS4KKworMjAwNS0wMi0yOCAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KKworCSogc3lzY2FsbC5jIChnZXRydmFsMik6IE1vdmUgI2lmZGVmIElBNjQgaW5zaWRlICNpZmRlZiBMSU5VWC4KKworMjAwNS0wMy0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvbWlwcy9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB2YXJpb3VzIGNhbGxzLgorCUZyb20gVGhpZW1vIFNldWZlciA8dGhzQG5ldHdvcmtuby5kZT4uCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjU2Njg0LgorCisJKiBkZWJpYW4vY29udHJvbCAoQXJjaGl0ZWN0dXJlKTogQWRkIHMzOTAuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjk0MTcyLgorCisyMDA1LTAzLTA2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAodHJhY2UpIFtQVFJBQ0VfR0VUU0lHSU5GT106IEZldGNoIHNpZ2luZm9fdCBmb3IgU0lHU0VHVgorCWFuZCBTSUdCVVMgc2lnbmFscywgdXNlIHNpX2FkZHIgaW4gb3V0cHV0LgorCisyMDA1LTAzLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBmaWxlLmMgKHByaW50X3hhdHRyX3ZhbCk6IEFkZCBhIGNhc3QuCisKKzIwMDUtMDItMDUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGRlc2MuYyAoZGVjb2RlX3NlbGVjdCk6IENhbGN1bGF0ZSBzaXplIG9mIHBhc3NlZCBmZF9zZXQgdmVjdG9ycyBhbmQKKwljb3B5IGluIHRoZSB1c2VyJ3Mgc2l6ZSByYXRoZXIgdGhhbiB0aGUgc3RhbmRhcmQgc2l6ZW9mKGZkX3NldCkuCisJRml4ZXMgRGViaWFuIGJ1ZyAjNjU2NTQsICMyODQyOTAuCisKKwkqIHV0aWwuYyAocHJpbnRwYXRoLCBwcmludHBhdGhuKTogUHJpbnQgTlVMTCBhbmQgZG9uJ3QgdHJ5IGFueSBmZXRjaAorCXdoZW4gQUREUiBpcyB6ZXJvLgorCUZpeGVzIERlYmlhbiBidWcgIzYzMDkzLgorCisJKiBkZWJpYW4vY29udHJvbCAoQnVpbGQtRGVwZW5kcyk6IEZpeCBmb3IgczM5MCBhbmQgc3BhcmMuCisJRnJvbSBCYXN0aWFuIEJsYW5rIDx3YWxkaUBkZWJpYW4ub3JnPi4KKwlGaXhlcyBEZWJpYW4gYnVnICMyOTM1NjQuCisKKzIwMDQtMTItMTkgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHN0cmFjZS5jIChtYWluKSBbIVVTRV9QUk9DRlNdOiBJbiBjaGlsZCBwcm9jZXNzLCByYWlzZSBTSUdTVE9QCisJcmlnaHQgYmVmb3JlIGV4ZWN2KCkgY2FsbC4gIFJlbW92ZSBmYWtlX2V4ZWN2ZSgpIGNhbGwuCisJKiBkZWZzLmggKGZha2VfZXhlY3ZlKTogUmVtb3ZlIHVudXNlZCBkZWNsYXJhdGlvbi4KKwkqIHByb2Nlc3MuYyAoZmFrZV9leGVjdmUpOiBSZW1vdmUgdW51c2VkIGZ1bmN0aW9uLgorCUZpeGVzIFJIIzE0MzM2NS4KKworMjAwNS0wMi0wNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS45LgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS45LTIuCisKKwkqIGZpbGUuYyAoT19MQVJHRUZJTEUpOiBPbWl0IHdoZW4gI3VuZGVmJ2QgYmVjYXVzZSBpdCB3YXMgemVyby4KKworMjAwNS0wMi0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGViaWFuL2NvbnRyb2w6IEFkZCBzdHJhY2UtdWRlYiBwYWNrYWdlIGZvciBpbnN0YWxsZXIgZGVidWdnaW5nLgorCSogZGViaWFuL3J1bGVzIChiaW5hcnktYXJjaCk6IEJ1aWxkIGl0LgorCUZyb20gSm9zaHVhIEt3YW4gPGpvc2hrQHRyaXBsZWhlbGl4Lm9yZz4uCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjY4Mjk0LgorCisJKiBmaWxlLmMgKG9wZW5tb2RlcykgW09fTEFSR0VGSUxFXSBbT19MQVJHRUZJTEUgPT0gMF06IFJlZGVmaW5lIHRvCisJa25vd24gdmFsdWVzIGZvciBMaW51eC4KKworCSogdXRpbC5jIChwcmludGNhbGwpOiBQcmludCAxNiA/cyB3aGVuIGxvbmcgaXMgOCBieXRlcy4KKwlGaXhlcyBSSCMxNDY5MzIuCisKKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfZXBvbGxfY3JlYXRlLCBzeXNfZXBvbGxfY3RsLAorCXN5c19lcG9sbF93YWl0LgorCSogbGludXgvc3BhcmM2NC9zeXNjYWxsLmg6IEp1c3QgI2luY2x1ZGUgIi4uL3NwYXJjL3N5c2NhbGwuaCIgaGVyZS4KKwkqIGlvY3RsLmMgKG5pb2N0bGVudHMyKTogQWRkIGNvbnN0IHRvIHR5cGUuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjc4NDQ5LgorCisJKiBzb2NrLmMgKGlmZmZsYWdzKTogTmV3IHZhcmlhYmxlLCB0YWJsZSBvZiBJRkZfKiB2YWx1ZXMuCisJKHByaW50X2FkZHIpOiBOZXcgZnVuY3Rpb24uCisJKHNvY2tfaW9jdGwpOiBIYW5kbGUgU0lPQ0dJRkFERFIsIFNJT0NHSUZEU1RBRERSLCBTSU9DR0lGQlJEQUREUiwKKwlTSU9DR0lGTkVUTUFTSywgU0lPQ0dJRkZMQUdTLCBTSU9DR0lGTUVUUklDLCBTSU9DR0lGTVRVLCBTSU9DR0lGU0xBVkUsCisJU0lPQ0dJRkhXQUREUi4JVXNlIHByaW50X2FkZHIgZm9yIFNJT0NHSUZDT05GLCBTSU9DR0lGTkFNRSwgYW5kCisJU0lPQ0dJRklOREVYLCBhbmQgZml4IHRoZWlyIG91dHB1dC4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEzODIyMy4KKwlGaXhlcyBEZWJpYW4gYnVnICMxOTIxNjQuCisKKzIwMDQtMTItMjAgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGNvbmZpZ3VyZS5hYzogVXNlIEFDX0dOVV9TT1VSQ0UgbWFjcm8gaW5zdGVhZCBvZiBjaGFuZ2luZyBDRkxBR1MuCisJKiBkZWZzLmggW0hBVkVfQ09ORklHX0hdOiBJbmNsdWRlIGNvbmZpZy5oIGZpcnN0LgorCSogc3RyYWNlLmM6IEluY2x1ZGUgImRlZnMuaCIgZmlyc3QuCisJRml4ZXMgUkgjMTQzMzcwLgorCisJKiBzeXNjYWxsLmMgKGNhbGxfc3VtbWFyeSk6IEZpeCBwb3RlbnRpYWwgTlVMTCBkZXJlZmVyZW5jZS4KKwlGaXhlcyBSSCMxNDMzNjkuCisKKzIwMDQtMTItMTkgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHN5c2NhbGwuYyAocXVhbF9zaWduYWwpOiBDaGVjayBib3VuZHMgZm9yIG51bWVyaWMgc2lnbmFsIG5hbWVzLgorCUZpeCBwYXJzZXIgb2Ygc3ltYm9saWMgc2lnbmFsIG5hbWVzLgorCUZpeCByZXR1cm4gY29kZSwgYXMgcmVxdWlyZWQgYnkgcXVhbGlmeSgpIGZ1bmN0aW9uLgorCSogc3lzY2FsbC5jIChxdWFsX2Rlc2MpOiBDaGVjayBib3VuZHMgZm9yIGRlc2NyaXB0b3IgbnVtYmVyLgorCSogc3lzY2FsbC5jIChxdWFsX3N5c2NhbGwpOiBDb3JyZWN0IHJldHVybiBjb2RlLCB0byBiZSBjb25zaXN0ZW50CisJd2l0aCBxdWFsaWZ5KCkgYW5kIG90aGVyIHF1YWxfKiBmdW5jdGlvbnMuCisJRml4ZXMgUkgjMTQzMzYyLgorCisyMDA1LTAyLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXN0ZW0uYyBbTElOVVhdIChNU19NQU5ETE9DSywgTVNfTk9BVElNRSwgTVNfTk9ESVJBVElNRSwgTVNfQklORCwKKwlNU19NT1ZFLCBNU19SRUMsIE1TX1ZFUkJPU0UsIE1TX1BPU0lYQUNMLCBNU19BQ1RJVkUsIE1TX05PVVNFUik6CisJTmV3IG1hY3Jvcy4KKwlbTElOVVhdIChtb3VudF9mbGFncyk6IEFkZCB0aGVtLgorCVtMSU5VWF0gKHN5c19tb3VudCk6IElmIGFueSBvZiAoTVNfQklORHxNU19NT1ZFfE1TX1JFTU9VTlQpIGJpdHMgYXJlCisJc2V0IGluIHRoZSBmbGFncyBhcmd1bWVudCwgZG9uJ3QgdHJ5IHRvIGZldGNoIHRoZSBmaWxlc3lzdGVtIHN0cmluZy4KKwlGaXhlcyBSSCMxNDE5MzIuCisKKwkqIGNvbmZpZy5ndWVzczogVXBkYXRlIGZyb20gY2Fub25pY2FsIHZlcnNpb24sIHRpbWVzdGFtcCAyMDA0LTExLTEyLgorCSogY29uZmlnLnN1YjogTGlrZXdpc2UsIHRpbWVzdGFtcCAyMDA0LTExLTMwLgorCisJKiBwcm9jZXNzLmMgW0xJTlVYXSBbWDg2XzY0XSAoc3lzX2FyY2hfcHJjdGwpOiBOZXcgZnVuY3Rpb24uCisJKiBsaW51eC9zeXNjYWxsLmg6IERlY2xhcmUgaXQuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBVc2UgaXQuCisJUGFydCBvZiBSSCMxNDI2NjcuCisKKwkqIHByb2Nlc3MuYyAoc3lzX3NjaGVkX3NldHNjaGVkdWxlcik6IFVzZSAlI2x4IGZvcm1hdCBmb3IgYmFkIHBvaW50ZXIuCisJKHN5c19zY2hlZF9nZXRwYXJhbSwgc3lzX3NjaGVkX3NldHBhcmFtKTogTGlrZXdpc2UuCisJUGFydCBvZiBSSCMxNDI2NjcuCisKKwkqIHNpZ25hbC5jIFtIQVZFX1NJR0FDVElPTl0gW0xJTlVYICYmIFg4Nl82NF0gKFNBX1JFU1RPUkVSKTogRGVmaW5lCisJaGVyZSB0b28uCisJUGFydCBvZiBSSCMxNDI2NjcuCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHN5c19taW5jb3JlIGluc3RlYWQgb2YgcHJpbnRhcmdzLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuICBBbHNvIHVzZSBzeXNfZ2V0cmxpbWl0LAorCXN5c19zZW10aW1lZG9wLCBzeXNfdW1vdW50Mi4KKwlQYXJ0IG9mIFJIIzE0MjY2Ny4KKworCSogc3lzY2FsbC5jIChxdWFsX3NpZ25hbCk6IEZpeCBpbnZlcnRlZCByZXR1cm4gdmFsdWUgYW5kIGJvZ3VzCisJYXJndW1lbnQgdG8gcXVhbGlmeV9vbmUgaW4gdGhlIG5hbWVkIGNhc2UuCisKKwkqIGZpbGUuYyAocHJpbnRfeGF0dHJfdmFsKTogRG9uJ3QgdXNlIGF1dG8gYXJyYXkgc2l6ZWQgYnkgc3lzY2FsbAorCWFyZ3VtZW50LiAgVXNlIG1hbGxvYyBpbnN0ZWFkLCBzbyBpdCBjYW4gZmFpbCBmb3IgaW5zYW5lIHZhbHVlcy4KKwlGaXhlcyBEZWJpYW4gYnVnICMyODM3MDQuCisKKwkqIG5ldC5jIChzeXNfZ2V0c29ja29wdCk6IEZpeCBhIGZvcm1hdCAlbGQgLT4gJWQuCisKKwkqIGxpbnV4L3N5c2NhbGwuaCBbSUE2NF0gKFNZU19zZW10aW1lZG9wKTogI3VuZGVmIGl0LgorCisJKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpIFtYODZfNjRdOiBGaXggMzItYml0IGFyZ3VtZW50IHJlZ2lzdGVyIG1hcAorCW5vdCB0byBkb3VibGUgdGhlIG1pZGRsZSBlbnRyeSEKKwlGaXhlcyBSSCMxNDYwOTMuCisKKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IEZpeCBleGl0X2dyb3VwIGVudHJ5LgorCisJKiB1dGlsLmMgKGdldHBjKSBbUzM5MCB8fCBTMzkwWF06IEltcGxlbWVudCBpdC4KKwlQYXRjaCBieSBEYXZpZCBXaWxkZXIgPHdpbGRlckB1cy5pYm0uY29tPi4KKworCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEFkZCBmYWR2aXNlNjQsIGZzdGF0ZnM2NCwgc3RhdGZzNjQsIG1iaW5kLAorCVtnc11ldF9tZW1wb2xpY3ksIG1xXyosIHN5c19rZXhlY19sb2FkLCB2c2VydmVyLCBhbmQgd2FpdGlkLgorCUZpeGVzIFJIIzE0NjI0NS4KKworMjAwNS0wMS0yMiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KKworCSogbmV0LmMgKHN5c19nZXRzb2Nrb3B0KTogQ2hhbmdlIHR5cGUgb2YgbGVuIHRvIGludC4KKworMjAwNC0xMC0xOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS44LgorCSogZGViaWFuL2NoYW5nZWxvZywgc3RyYWNlLnNwZWM6IDQuNS44LTEuCisKKwkqIGZpbGUuYyAoc3lzX2ZhZHZpc2U2NCk6IENvbmRpdGlvbmFsaXplIGp1c3Qgb24gW0xJTlVYXS4KKworCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3Igc3lzL2Vwb2xsLmguCisJKiBkZXNjLmM6IFByb3RlY3QgI2luY2x1ZGUgPHN5cy9lcG9sbC5oPiB3aXRoIFtIQVZFX1NZU19FUE9MTF9IXS4KKwkoZXBvbGxjdGxzLCBlcG9sbGV2ZW50cyk6IFByb3RlY3QgZWFjaCBlbnRyeSB3aXRoICNpZmRlZiBvbiBpdHMgbWFjcm8uCisKKwkqIHN0cmFjZS5jIChoYW5kbGVfZ3JvdXBfZXhpdCk6IERvbid0IGRldGFjaCBsZWFkZXIgdGhhdCB3YXNuJ3QKKwlUQ0JfQVRUQUNIRUQuICBJbnN0ZWFkIG1hcmsgaXQgd2l0aCBUQ0JfR1JPVVBfRVhJVElORy4KKwlSZW1vdmUgZHJvcHRjYiBsb29wIGF0IGVuZCwgbm8gbG9uZ2VyIHJlcXVpcmVkIHNpbmNlIDIuNiByZXBvcnRzIGVhY2gKKwl0aHJlYWQgZGVhdGguCisJRml4ZXMgUkgjMTM1MjU0LgorCisJKiBzdHJhY2UuYyAodHJhY2UpOiBVc2UgaGFuZGxlX2dyb3VwX2V4aXQgZm9yIG5vbi1UQ0JfQVRUQUNIRUQgY2hpbGQKKwl0YWtpbmcgc2lnbmFsIHdoZW4gaXQgaGFzIG5jbG9uZV90aHJlYWRzID4gMC4KKworCSogc3RyYWNlLmMgKGhhbmRsZV9ncm91cF9leGl0LCB0cmFjZSk6IE1hcmsgbGVhZGVyIHdpdGgKKwlUQ0JfR1JPVVBfRVhJVElORyBhbmQgZG9uJ3QgYmUgc3VycHJpc2VkIGF0IGNoaWxkIGRlYXRocyB3aGVuIHRoZWlyCisJbGVhZGVyIGhhcyBpdCBzZXQuCisJRml4ZXMgUkgjMTMyMTUwLgorCisJKiBwcm9jZXNzLmMgKFdDT1JFRkxBRyk6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KKwkoV19TVE9QQ09ERSwgV19FWElUQ09ERSk6IExpa2V3aXNlLgorCVJlcG9ydGVkIGJ5IE1hcnR5IExlaXNuZXIgPG1sZWlzbmVyQGVuZy5tYy54ZXJveC5jb20+LgorCisJKiBzb2NrLmMgWyEgTElOVVhdOiBJbmNsdWRlIDxzeXMvc29ja2V0Lmg+IGJlZm9yZSA8c3lzL3NvY2tpby5oPi4KKwlSZXBvcnRlZCBieSBNYXJ0eSBMZWlzbmVyIDxtbGVpc25lckBlbmcubWMueGVyb3guY29tPi4KKworCSogZGViaWFuL3J1bGVzOiBNYWtlIHN0cmFjZTY0LjEuZ3ogc3ltbGluayB0byBzdHJhY2UuMS5neiBpbnN0ZWFkIG9mCisJc3RyYWNlNjQuMSB0byBzdHJhY2UuMSwgd2hpY2ggZG9lc24ndCBleGlzdC4KKwlGaXhlcyBEZWJpYW4gYnVnICMyNjkyMjAuCisKKzIwMDQtMDktMDUgIFBoaWwgQmx1bmRlbGwgIDxwYkBuZXh1cy5jby51az4KKworCSogbGludXgvYXJtL3N5c2NhbGxlbnQuaDogTmV3IGZpbGUuCisKKzIwMDQtMTAtMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGRlYmlhbi9ydWxlcyAoREVCX0JVSUxEX0dOVV9UWVBFLCBDT05GSUdfT1BUUyk6IE5ldyB2YXJpYWJsZXMuCisJWyQoREVCX0hPU1RfR05VX1RZUEUpID09IHMzOTAtbGludXhdIChidWlsZDY0LCBIT1NUNjQsIENDNjQpOiBTZXQgdGhlbS4KKwkoYnVpbGQvTWFrZWZpbGUpOiBVc2UgJChDT05GSUdfT1BUUykuCisJKGJ1aWxkNjQvTWFrZWZpbGUpOiBQYXNzIC0taG9zdCBhcyB3ZWxsIGFzIC0tYnVpbGQuCisJRnJvbSBCYXN0aWFuIEJsYW5rIDx3YWxkaUBkZWJpYW4ub3JnPi4KKwlGaXhlcyBEZWJpYW4gYnVnICMyNzE1MDAuCisKKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBVcGRhdGUgZm9yIDIuNi45IHN5c2NhbGxzLgorCUZyb20gUmFuZG9scGggQ2h1bmcgPHRhdXNxQGRlYmlhbi5vcmc+CisJRml4ZXMgRGViaWFuIGJ1ZyAjMjczODg3LgorCisJKiBmaWxlLmMgKHN5c19sbHNlZWspOiBSZXZlcnQgbGFzdCBjaGFuZ2UuCisKKzIwMDQtMDktMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHR3aWRkbGUubmV0PgorCisJKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IEFkZCB0Z2tpbGwsICpzdGF0NjQsIHZzZXJ2ZXIsIG1iaW5kLAorCVtnc11ldF9tZW1wb2xpY3ksIG1xXyosIHdhaXRpZC4KKworMjAwNC0xMC0wNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZmlsZS5jIChzeXNfbGxzc2VrLCBzeXNfcmVhZGFoZWFkLCBzeXNfZmFkdmlzZTY0LCBzeXNfZmFkdmlzZTY0XzY0KToKKwlVc2UgTE9OR19MT05HIG1hY3JvLgorCSogaW8uYyAoc3lzX3ByZWFkLCBzeXNfcHdyaXRlLCBzeXNfc2VuZGZpbGUpOiBMaWtld2lzZS4KKworCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogRml4IGJvdGNoZWQgdGFibGUgZW50cmllcy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCisJKiBtZW0uYyBbTElOVVhdIChzeXNfbWJpbmQsIHN5c19zZXRfbWVtcG9saWN5LCBzeXNfZ2V0X21lbXBvbGljeSk6CisJTmV3IGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgorCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBIYW5kbGUgbWJpbmQsIHNldF9tZW1wb2xpY3ksIGdldF9tZW1wb2xpY3kuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworCSogZmlsZS5jIFtMSU5VWCAmJiAoSTM4NiB8fCBYODZfNjQpXSAoc3lzX2ZhZHZpc2U2NCwgc3lzX2ZhZHZpc2U2NF82NCk6CisJTmV3IGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSB0aGVtLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBIYW5kbGUgZmFkdmlzZTY0IGFuZCBmYWR2aXNlNjRfNjQgdXNpbmcgdGhvc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCisyMDA0LTA5LTEzICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiBsaW51eC9pb2N0bHNvcnQuYyAobWFpbik6IE9taXQgZHVwbGljYXRlIGxpbmVzCisJKHdpdGggc2FtZSBuYW1lIGFuZCBjb2RlKSBmcm9tIG91dHB1dC4KKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBCdWlsZCB0aGUgbGlzdCBvZiBpb2N0bHMgZGVmaW5lZCBpbgorCXNjc2kvc2cuaCAoMHgyMi4uKSwgc2NzaS9zY3NpLmggYW5kIHNjc2kvc2NzaV9pb2N0bC5oICgweDUzLi4pLAorCWFzIHN1Z2dlc3RlZCBieSBQZXRlciBKb25lcyA8cGpvbmVzQHJlZGhhdC5jb20+CisJKiBsaW51eC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlZC4KKwlGaXhlcyBSSCMxMjk4MDguCisKKzIwMDQtMDktMTMgIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+CisJICAgIERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogdGltZS5jIFtMSU5VWF0gKHByaW50X3J0Yyk6IE5ldyBmdW5jdGlvbiwgZm9yIHByaW50aW5nIHJ0Y190aW1lCisJc3RydWN0dXJlLgorCVtMSU5VWF0gKHJ0Y19pb2N0bCk6IE5ldyBmdW5jdGlvbiwgZm9yIHBhcnNpbmcgUlRDXyogaW9jdGxzLgorCSogaW9jdGwuYyBbTElOVVhdIChpb2N0bF9kZWNvZGUpOiBDYWxsIHJ0Y19pb2N0bC4KKwkqIGRlZnMuaCBbTElOVVhdOiBEZWNsYXJlIHJ0Y19pb2N0bC4KKwlGaXhlcyBSSCM1ODYwNi4KKworMjAwNC0xMC0wNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGVzYy5jIFtMSU5VWF0gKHN5c19lcG9sbF9jcmVhdGUsIHN5c19lcG9sbF9jdGwsIHN5c19lcG9sbF93YWl0KToKKwlOZXcgZnVuY3Rpb25zLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHRoZW0uCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVzZSB0aG9zZSBmb3IgZXBvbGxfKiBzeXNjYWxscy4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkwL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zMzkweC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaDogTGlrZXdpc2UuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEzNDQ2My4KKworCSogcmVzb3VyY2UuYyAocmVzb3VyY2VzKTogQWRkIFJMSU1JVF9MT0NLUywgUkxJTUlUX1NJR1BFTkRJTkcsCisJYW5kIFJMSU1JVF9NU0dRVUVVRSwgaWYgZGVmaW5lZC4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEzMzU5NC4KKworCSogbmV0LmMgW0hBVkVfU0VORE1TR10gKHByaW50Y21zZ2hkcik6IE5ldyBmdW5jdGlvbi4KKwkocHJpbnRtc2doZHIpOiBVc2UgaXQuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMzE2ODkuCisKKwkqIGZpbGUuYyAoc3ByaW50bW9kZSk6IEFkZCBjb25zdCB0byByZXR1cm4gdHlwZS4KKwkoc3ByaW50ZnN0eXBlKTogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAocHJpbnRzaWdpbmZvKTogQWRkIGEgY29uc3QuCisKKzIwMDQtMDktMTUgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfd2FpdGlkLgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IHdhaXRpZCB0YWtlcyA1IGFyZ3VtZW50cywgYW5kIGlzIGluIFRQIGNhdGVnb3J5LgorCSogcHJvY2Vzcy5jIChzeXNfd2FpdGlkKTogSGFuZGxlIGZpZnRoIGFyZ3VtZW50IChzdHJ1Y3QgcnVzYWdlICopLgorCisyMDA0LTA5LTExICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiB0aW1lLmMgKHN5c19jbG9ja19uYW5vc2xlZXApOiBQcmludCB6ZXJvIGZsYWdzIGFyZyBjb3JyZWN0bHkuCisJKHN5c190aW1lcl9zZXR0aW1lKTogTGlrZXdpc2UuCisJKHByaW50c2lnZXZlbnQpOiBQcmludCBzaWduYWxzIGJ5IG5hbWUgZm9yIFNJR0VWX1NJR05BTC4KKwkoc3lzX3RpbWVyX2NyZWF0ZSk6IFByaW50IGNsb2NrIElEIHN5bWJvbGljYWxseS4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEzMTQyMC4KKworMjAwNC0wOS0wNyAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KKworCSogZGVmcy5oIChuaW9jdGxlbnRzMSwgbnNpZ25hbHMyKTogRml4IHR5cG9zIGluIGRlY2xzLgorCisyMDA0LTA5LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKHF1YWxfb3B0aW9ucyk6IEFkZCBjb25zdCB0byBkZWZuLgorCVVwZGF0ZSBhbGwgdXNlcy4KKwkoY2FsbF9jb3VudCwgZXJyb3JfY291bnQsIHR2X2NvdW50KTogVmFyaWFibGVzIHJlbW92ZWQuCisJKHN0cnVjdCBjYWxsX2NvdW50cywgY291bnRzKTogTmV3IHR5cGUgYW5kIHZhcmlhYmxlLgorCVVwZGF0ZSBhbGwgdXNlcnMgb2YgdGhlIG9sZCB0aHJlZSB0byB1c2UgdGhlIG5ldyBhcnJheSBvZiBzdHJ1Y3RzLgorCSh0cmFjZV9zeXNjYWxsKTogQWxsb2NhdGUgY291bnRzIG9uIGZpcnN0IHVzZS4KKwkoc29ydGVkX2NvdW50KTogVmFyaWFibGUgcmVtb3ZlZC4KKwkoY2FsbF9zdW1tYXJ5KTogQWxsb2NhdGUgbG9jYWxseS4KKworCSogc3lzY2FsbC5jIChzeXNlbnQwLCBzeXNlbnQxLCBzeXNlbnQyLCBzeXNlbnQpOiBBZGQgY29uc3QgdG8gZGVmbi4KKwkobnN5c2NhbGxzMCwgbnN5c2NhbGxzMSwgbnN5c2NhbGxzMik6IExpa2V3aXNlLgorCShlcnJub2VudDAsIGVycm5vZW50MSwgZXJybm9lbnQyLCBlcnJub2VudCk6IExpa2V3aXNlLgorCShuZXJybm9zMCwgbmVycm5vczEsIG5lcnJub3MyKTogTGlrZXdpc2UuCisJKiBzaWduYWwuYyAoc2lnbmFsZW50MCwgc2lnbmFsZW50MSwgc2lnbmFsZW50Mik6IExpa2V3aXNlLgorCShuc2lnbmFsczAsIG5zaWduYWxzMSwgbnNpZ25hbHMyKTogTGlrZXdpc2UuCisJKHNpZ25hbWUpOiBMSWtld2lzZS4KKwkqIGlvY3RsLmMgKGlvY3RsZW50MCwgaW9jdGxlbnQxLCBpb2N0bGVudDIpOiBMaWtld2lzZS4KKwkobmlvY3RsZW50czAsIG5pb2N0bGVudHMxLCBuaW9jdGxlbnRzMik6IExpa2V3aXNlLgorCShpb2N0bF9sb29rdXAsIGlvY3RsX25leHRfbWF0Y2gpOiBMaWtld2lzZS4KKwkqIGRlZnMuaDogVXBkYXRlIGRlY2xzLgorCSogaW8uYyAoc3lzX2lvY3RsKTogVXBkYXRlIHVzZXJzLgorCisJKiB1dGlsLmMgKHhsb29rdXAsIHByaW50eHZhbCwgYWRkZmxhZ3MsIHByaW50ZmxhZ3MpOiBVc2UgY29uc3QgZm9yCisJc3RydWN0IHhsYXQgKiBhcmd1bWVudC4KKwkqIGRlZnMuaCAoeGxvb2t1cCwgcHJpbnR4dmFsLCBhZGRmbGFncywgcHJpbnRmbGFncyk6IFVwZGF0ZSBkZWNscy4KKwkqIGJqbS5jOiBBZGQgY29uc3QgdG8gYWxsIHN0cnVjdCB4bGF0IGRlZm5zLgorCSogZGVzYy5jOiBMaWtld2lzZS4KKwkqIGZpbGUuYzogTGlrZXdpc2UuCisJKiBpcGMuYzogTGlrZXdpc2UuCisJKiBtZW0uYzogTGlrZXdpc2UuCisJKiBuZXQuYzogTGlrZXdpc2UuCisJKiBwcm9jLmM6IExpa2V3aXNlLgorCSogcHJvY2Vzcy5jOiBMaWtld2lzZS4KKwkqIHJlc291cmNlLmM6IExpa2V3aXNlLgorCSogc2lnbmFsLmM6IExpa2V3aXNlLgorCSogc29jay5jOiBMaWtld2lzZS4KKwkqIHN0cmVhbS5jOiBMaWtld2lzZS4KKwkqIHN5c3RlbS5jOiBMaWtld2lzZS4KKwkqIHRlcm0uYzogTGlrZXdpc2UuCisJKiB0aW1lLmM6IExpa2V3aXNlLgorCSogdXRpbC5jOiBMaWtld2lzZS4KKworMjAwNC0wOS0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogQWRkIG5ldyBlbnRyaWVzIGZvciB0aW1lcl8qLCBjbG9ja18qLCBhbmQKKwltcV8qIHN5c2NhbGxzLCBhbmQgbmFtZXMgb25seSBmb3IgbmV3IGNhbGxzIHVwIHRvIDI1Mi4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHdhaXRpZC4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHN5c193YWl0aWQuCisKKwkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfd2FpdCk6IFRha2Ugc2Vjb25kIGFyZyBnaXZpbmcgaW5kZXggb2YgZmxhZ3MKKwlhcmd1bWVudC4KKwkqIGRlZnMuaDogVXBkYXRlIHByb3RvdHlwZS4KKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IFVwZGF0ZSBjYWxsZXIuCisJQWxzbyB1c2UgaW50ZXJuYWxfd2FpdCBmb3IgU1lTX3dhaXRpZC4KKwkqIHByb2Nlc3MuYyAoc3lzX3dhaXRpZCk6IERlZmluZSBmb3IgW0xJTlVYXSBhcyB3ZWxsLgorCURvbid0IHR3ZWFrIFRDQl9TVVNQRU5ERUQtLWludGVybmFsX3dhaXQgZG9lcyB0aGF0LgorCSh3YWl0aWRfdHlwZXMpOiBDb25kaXRpb25hbGl6ZSB1c2Ugb2Ygbm9uc3RhbmRhcmQgUF8qIG1hY3Jvcy4KKworMjAwNC0wOC0zMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS43LgorCSogZGViaWFuL2NoYW5nZWxvZzogNC41LjctMS4KKwkqIHN0cmFjZS5zcGVjOiA0LjUuNy0yLgorCisJKiBkZWJpYW4vcnVsZXM6IFJld3JpdGUgc3BhcmM2NCBjaGFuZ2Ugb2YgMjAwNC0wNy0xMi4KKwlBbHdheXMgZG8gZWFjaCBidWlsZCBpbiBhIHNlcGFyYXRlIGJ1aWxkIGRpcmVjdG9yeS4KKwlGaXhlcyBEZWJpYW4gYnVnICMyNTQ3MjguCisKKwkqIHRpbWUuYyAoY2xvY2tuYW1lcyk6IFVzZSAjaWZkZWYgYXJvdW5kIENMT0NLXyogdXNlcy4KKworCSogc3RyYWNlLjE6IFNheSB0aGF0IC1jIHNob3dzIHN5c3RlbSBDUFUgdGltZSwgbm90IHJlYWwgdGltZS4KKwlGaXhlcyBEZWJpYW4gYnVnICMyNTQ0MzguCisKKwkqIHN5c2NhbGwuYyAoZHVtcGlvKTogTWF0Y2ggcHJlYWQgYW5kIHB3cml0ZSBzeXN0ZW0gY2FsbHMgdG9vLgorCUZpeGVzIERlYmlhbiBidWcgIzIzOTk0Ny4KKworCSogbmV0LmMgKHNvY2tvcHRpb25zKTogQWRkIGFsbCBTT18qIG1hY3JvcyBrbm93biBpbiBMaW51eCAyLjYuOS4KKwlGaXhlcyBEZWJpYW4gYnVnICMxNzE2NTMuCisKKzIwMDQtMDctMTIgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHNpZ25hbC5jIFtMSU5VWF0gKHBhcnNlX3NpZ3NldF90KTogRml4IGhleCBzdHJpbmdzIHBhcnNlci4KKwlGaXhlcyBSSCMxMjgwOTEuCisKKzIwMDQtMDgtMzAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKTogRG9uJ3QgY2FsbCBmYWtlX2V4ZWN2ZSB1bmRlciAtYy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEyOTE2Ni4KKworCSogbmV0LmMgKHNvY2tpcG9wdGlvbnMpOiBBZGQgc29tZSBvcHRpb25zLgorCVtTT0xfSVBWNl0gKHNvY2tpcHY2b3B0aW9ucyk6IE5ldyB2YXJpYWJsZS4KKwkoc3lzX2dldHNvY2tvcHQsIHByaW50c29ja29wdCk6IFVzZSBpdCBmb3IgU09MX0lQVjYgbGV2ZWwuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKwlGaXhlcyBSSCMxMjgzOTEuCisKKwkqIHRpbWUuYyAoY2xvY2tuYW1lcyk6IE5ldyB2YXJpYWJsZSwgc3ltYm9saWMgbmFtZXMgZm9yIGNsb2NrX3QuCisJKHN5c19jbG9ja19zZXR0aW1lLCBzeXNfY2xvY2tfZ2V0dGltZSwgc3lzX2Nsb2NrX25hbm9zbGVlcCk6IFVzZSBpdC4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEyOTM3OC4KKworCSogc3lzdGVtLmMgKHBlcnNvbmFsaXR5X29wdGlvbnMpOiBIYXJkLWNvZGUgdmFsdWVzIGhlcmUuCisJRG9uJ3QgI2luY2x1ZGUgPGxpbnV4L3BlcnNvbmFsaXR5Lmg+IGF0IGFsbC4KKwlGaXhlcyBSSCMxMzA5NjUgYW5kIERlYmlhbiBidWcgIzQwNTg4LgorCisJKiBmaWxlLmMgKHByaW50X3hhdHRyX3ZhbCk6IE5ldyBmdW5jdGlvbiB0byBzaG93IGF0dHJpYnV0ZSB2YWx1ZXMuCisJKHN5c19zZXR4YXR0ciwgc3lzX2ZzZXR4YXR0ciwgc3lzX2dldHhhdHRyLCBzeXNfZmdldHhhdHRyKTogVXNlIGl0LgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMTMxMTc3LgorCisyMDA0LTA3LTEyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjYuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjYtMS4KKworCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgbGludXgvc3BhcmM2NCBmaWxlcy4KKworCSogZGViaWFuL3J1bGVzOiBPbiBzcGFyYy1saW51eCwgYnVpbGQgc3RyYWNlNjQgYXMgd2VsbC4KKwlGcm9tIEJlbiBDb2xsaW5zIDxiY29sbGluc0BkZWJpYW4ub3JnPi4KKwlGaXhlcyBEZWJpYW4gYnVnICMyNTQ3MjguCisKKzIwMDQtMDctMDcgIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldD4KKworCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBTeW5jIHdpdGggcmVhbGl0eS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaCAoc3lzX3NlbmRmaWxlNjQsIHN5c19mdXRleCwgc3lzX2dldHRpZCwKKwlzeXNfc2NoZWRfc2V0YWZmaW5pdHksIHN5c19zY2hlZF9nZXRhZmZpbml0eSwgc3lzX3NldHhhdHRyLAorCXN5c19sc2V0eGF0dHIsIHN5c19mc2V0eGF0dHIsIHN5c19nZXR4YXR0ciwgc3lzX2xnZXR4YXR0ciwKKwlzeXNfZmdldHhhdHRyLCBzeXNfbGlzdHhhdHRyLCBzeXNfbGxpc3R4YXR0ciwgc3lzX2ZsaXN0eGF0dHIsCisJc3lzX3JlbW92ZXhhdHRyLCBzeXNfbHJlbW92ZXhhdHRyLCBzeXNfZnJlbW92ZXhhdHRyLAorCXN5c19yZW1hcF9maWxlX3BhZ2VzLCBzeXNfcmVhZGFoZWFkLCBzeXNfdGdraWxsLCBzeXNfc3RhdGZzNjQsCisJc3lzX2ZzdGF0ZnM2NCwgc3lzX2Nsb2NrX3NldHRpbWUsIHN5c19jbG9ja19nZXR0aW1lLAorCXN5c19jbG9ja19nZXRyZXMsIHN5c19jbG9ja19uYW5vc2xlZXAsIHN5c190aW1lcl9jcmVhdGUsCisJc3lzX3RpbWVyX3NldHRpbWUsIHN5c190aW1lcl9nZXR0aW1lKTogTmV3IGRlY2xhcmF0aW9ucy4KKwkqIGxpbnV4L3NwYXJjNjQvZHVtbXkyLmgsIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaCwKKwlsaW51eC9zcGFyYzY0L3N5c2NhbGwuaCwgbGludXgvc3BhcmM2NC9lcnJub2VudC5oLAorCWxpbnV4L3NwYXJjNjQvZXJybm9lbnQxLmgsIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQyLmgsCisJbGludXgvc3BhcmM2NC9pb2N0bGVudC5oLCBsaW51eC9zcGFyYzY0L2lvY3RsZW50MS5oLAorCWxpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmgsIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmgsCisJbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaCwgbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaCwKKwlsaW51eC9zcGFyYzY0L3NpZ25hbGVudDEuaCwgbGludXgvc3BhcmM2NC9zaWduYWxlbnQyLmgsCisJbGludXgvc3BhcmM2NC9zeXNjYWxsMS5oLCBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaCwKKwlsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQxLmg6IE5ldyBmaWxlcy4KKwkqIGRlZnMuaCAoTElOVVhTUEFSQyk6IERlZmluZSBhbHNvIHdoZW4gU1BBUkM2NC4KKwkoTElOVVggJiYgU1BBUkM2NCk6IFNldCBTVVBQT1JURURfUEVSU09OQUxJVElFUyB0byAzLgorCUlnbm9yZSBTSUdUUkFQIGFmdGVyIGV4ZWN2ZSBieSBkZWZpbmluZyBUQ0JfV0FJVEVYRUNWRS4KKwlEZWZpbmUgcG9zc2libHkgbWlzc2luZyBfX05SX2V4aXRfZ3JvdXAuICBEZWNsYXJlIGdldHJ2YWwyLgorCSogY29uZmlndXJlLmFjIChzcGFyYzY0KTogTmV3IGFyY2hpdGVjdHVyZSBjYXNlLgorCSogZmlsZS5jIChzdGF0X3NwYXJjNjQpOiBOZXcgc3RydWN0dXJlLgorCShwcmludHN0YXRfc3BhcmM2NCk6IE5ldyBvdXRwdXQgcm91dGluZSBmb3IgdGhhdC4KKwkocHJpbnRzdGF0KTogQ2FsbCBpdCwgaWYgcGVyc29uYWxpdHkgaXMgMi4KKwkocHJpbnRzdGF0NjQpOiBMaWtld2lzZS4KKwkqIHV0aWwuYzogQ29uZGl0aW9uYWxpemUgcHRyYWNlIGRlZmluZXMgb24gTElOVVhTUEFSQworCW5vdCBMSU5VWCAmJiBTUEFSQy4KKwkoU1BBUkM2NCAmJiBMSU5VWCk6IERlZmluZSByX3BjIHRvIHJfdHBjLCBhbmQgUFRSQUNFX0ZPT1JFR1MKKwl0byBQVFJBQ0VfRk9PUkVHUzY0IHNvIHRoYXQgbW9yZSBzcGFyYyBjb2RlIGNhbiBiZSBzaGFyZWQKKwliZXR3ZWVuIDY0LWJpdCBhbmQgMzItYml0LgorCShfaGFja19zeXNjYWxsNSk6IENvcnJlY3QgdHJhcCBudW1iZXIgd2hlbiBTUEFSQzY0LgorCShQVFJBQ0VfV1JJVEV7VEVYVCxEQVRBfSk6IEFkZCBTUEFSQzY0IHRvIGlmZGVmIGd1YXJkLgorCShnZXRwYyk6IEhhbmRsZSBTUEFSQzY0ICYmIExJTlVYLgorCShwcmludGNhbGwpOiBMaWtld2lzZS4KKwkoYXJnIGZldGNoaW5nL3NldHRpbmcpOiBVc2Ugc2FtZSBjb2RlIGZvciBTUEFSQzY0IExJTlVYCisJYXMgZm9yIFNQQVJDLgorCShzZXRicHQpOiBIYW5kbGUgU1BBUkM2NCAmJiBMSU5VWC4KKwkoY2xlYXJicHQpOiBMaWtld2lzZS4KKwkqIHNpZ25hbC5jOiBDb25kaXRpb25hbGl6ZSBwdHJhY2UgZGVmaW5lcyBvbiBTUEFSQyBhbmQKKwlTUEFSQzY0LgorCShTUEFSQzY0ICYmIExJTlVYKTogRGVmaW5lIHJfcGMgdG8gcl90cGMsIGFuZCBQVFJBQ0VfRk9PUkVHUworCXRvIFBUUkFDRV9GT09SRUdTNjQgc28gdGhhdCBtb3JlIHNwYXJjIGNvZGUgY2FuIGJlIHNoYXJlZAorCWJldHdlZW4gNjQtYml0IGFuZCAzMi1iaXQuCisJKG1fc2lnaW5mbyk6IFVzZSBzYW1lIGRlZmluaXRpb24gb24gU1BBUkM2NCBhcyBTUEFSQy4KKwkoc3lzX3NpZ3JldHVybik6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgorCSogc3lzY2FsbC5jOiBDb25kaXRpb25hbGl6ZSBwdHJhY2UgZGVmaW5lcyBvbiBTUEFSQyBhbmQKKwlTUEFSQzY0LgorCShTUEFSQzY0ICYmIExJTlVYKTogRGVmaW5lIHJfcGMgdG8gcl90cGMsIGFuZCBQVFJBQ0VfRk9PUkVHUworCXRvIFBUUkFDRV9GT09SRUdTNjQgc28gdGhhdCBtb3JlIHNwYXJjIGNvZGUgY2FuIGJlIHNoYXJlZAorCWJldHdlZW4gNjQtYml0IGFuZCAzMi1iaXQuCisJKGdldHNjbm8pOiBVc2Ugc2FtZSBzdGF0aWMgc3RhdGUgb24gU1BBUkM2NCBhcyBTUEFSQywKKwlhbmQgYWRkIFNQQVJDNjQgaGFuZGxpbmcuCisJKGdldF9lcnJvcik6IEhhbmRsZSBMSU5VWCAmJiBTUEFSQzY0LgorCShmb3JjZV9yZXN1bHQpOiBMaWtld2lzZS4KKwkoc3lzY2FsbF9lbnRlcik6IExpa2V3aXNlLgorCSh0cmFjZV9zeXNjYWxsKTogSGFuZGxlIHN5c19zb2NrZXRjYWxsIGFuZCBzeXNfaXBjIG9uIFNQQVJDNjQKKwlqdXN0IGxpa2UgU1BBUkMuCisJKGdldHJ2YWwyKTogSGFuZGxlIExJTlVYICYmIFNQQVJDNjQuCisJKiBwcm9jZXNzLmM6IENvbmRpdGlvbmFsaXplIHB0cmFjZSBkZWZpbmVzIG9uIFNQQVJDIGFuZAorCVNQQVJDNjQuCisJKFNQQVJDNjQgJiYgTElOVVgpOiBEZWZpbmUgcl9wYyB0byByX3RwYywgYW5kIFBUUkFDRV9GT09SRUdTCisJdG8gUFRSQUNFX0ZPT1JFR1M2NCBzbyB0aGF0IG1vcmUgc3BhcmMgY29kZSBjYW4gYmUgc2hhcmVkCisJYmV0d2VlbiA2NC1iaXQgYW5kIDMyLWJpdC4KKwkoY2hhbmdlX3N5c2NhbGwpOiBIYW5kbGUgTElOVVggJiYgU1BBUkM2NC4KKwkoc3RydWN0X3VzZXJfb2Zmc2V0cyk6IElmZGVmIG91dCB0aG9zZSB3aGljaCBkbyBub3QgZXhpc3QKKwlvbiBTUEFSQzY0LgorCSogbmV0LmMgKHN5c19waXBlKTogSGFuZGxlIExJTlVYICYmIFNQQVJDNjQuCisJKiBpb2N0bC5jOiBGaXggaW5pdGlhbGl6ZXIgdHlwbyBmb3IgbmlvY3RsZW50czIsIHdhcworCW5pb2N0bGVudHMxIGJ5IGFjY2lkZW50LgorCisyMDA0LTA2LTI4ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgorCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2V4ZWMpOiBNb3ZlIFRDQl9XQUlURVhFQ1ZFIGhhbmRsaW5nIGhlcmUuCisJKHN5c19leGVjdmUpOiBSZW1vdmUgaXQgaGVyZS4KKworMjAwNC0wNy0xMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgbGludXgvc2g2NC9zeXNjYWxsZW50LmguCisKKwkqIGRlYmlhbi9jb250cm9sIChTZWN0aW9uKTogTW92ZSB0byB1dGlscywgbWF0Y2hpbmcgRGViaWFuIG92ZXJyaWRlLgorCisJKiBuZXQuYyAoYWRkcmZhbXMpOiBNYWtlIHZhcmlhYmxlIGdsb2JhbC4KKwkqIHNvY2suYyAoc29ja19pb2N0bCk6IERlY29kZSB0aGUgYXJndW1lbnRzIGZvciBTSU9DR0lGTkFNRSwKKwlTSU9DR0lGSU5ERVgsIGFuZCBTSU9DR0lGQ09ORi4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEyNjkxNy4KKworCSogbGludXgvaW9jdGxzb3J0LmM6IEFkZCBzb21lICNpbmNsdWRlcy4KKwlbUE9XRVJQQ106IEtsdWRnZSBvdXQgaGlnaCBiaXRzLgorCSogbGludXgvaWE2NC9pb2N0bGVudC5oOiBSZWdlbmVyYXRlZCB1c2luZyBSSEVMMyBoZWFkZXJzLgorCSogbGludXgvcG93ZXJwYy9pb2N0bGVudC5oOiBMaWtld2lzZS4KKworMjAwNC0wNy0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvaW9jdGxlbnQuc2g6IFJlcGxhY2UgYXNtIHdpdGggJGFzbSBpbiBhbGwgcGxhY2VzLgorCisJKiBjb25maWd1cmUuYWM6IEFkZCBJMzg2IGFzIEFNX0NPTkRJVElPTkFMLgorCSogTWFrZWZpbGUuYW0gW0xJTlVYXTogQWRkIG1haW50YWluZXItbW9kZSBydWxlcyB0byByZWdlbmVyYXRlCisJdGhlIGlvY3RsZW50LmggZmlsZS4KKworMjAwNC0wNy0wOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogcmVzb3VyY2UuYyAoc3lzX3F1b3RhY3RsKTogVHJ1bmNhdGUgZmlyc3QgYXJndW1lbnQgdG8gMzIgYml0cywgc2luY2UKKwl0aGF0J3Mgd2hhdCB0aGUga2VybmVsIHdpbGwgZG8uCisKKzIwMDQtMDctMDcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBUYWtlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0byB1c2UgYXMgZGlyZWN0b3J5CisJbmFtZSBpbiBwbGFjZSBvZiBgYXNtJy4KKworMjAwNC0wNi0yNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS41LgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS41LTEuCisKKzIwMDQtMDYtMjIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN5c2NhbGwuYyAoc3lzY2FsbF9maXh1cCkgW0xJTlVYICYmIFg4Nl82NF06IEZvciAzMi1iaXQgcHJvY2VzcywKKwlzaWduIGV4dGVuZCB0aGUgbG93IDMyIGJpdHMgb2YgUkFYIHRvIDY0IGJpdHMuCisJRml4ZXMgUkgjMTI2NTQ3LgorCisJKiBzeXNjYWxsLmMgKGZvcmNlX3Jlc3VsdCk6IFtMSU5VWCAmJiBYODZfNjRdOiBGaXggUkFYKjQgLT4gUkFYKjguCisKKzIwMDQtMDYtMDMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuNC4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuNC0xLgorCisJKiBuZXQuYyAoZG9tYWlucyk6IEFkZCBtYW55IFBGXyogdmFsdWVzICNpZmRlZiBQRl8qLgorCShhZGRyZmFtcyk6IEFkZCBtYW55IEFGXyogdmFsdWVzICNpZmRlZiBBRl8qLgorCUZpeGVzIERlYmlhbiBidWcgIzI1MDUwNi4KKworMjAwNC0wNS0wMiAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogbGludXgvaW9jdGxzb3J0LmMgKGNvbXBhcmUpOiBXaGVuIGlvY3RsIGNvZGVzIGVxdWFsLCBjb21wYXJlCisJbmFtZXMuCisJKG1haW4pOiBQcmludCBhIG5vdGUgdGhhdCBwcm9ncmFtIG91dHB1dCBpcyBnZW5lcmF0ZWQgYnkKKwlpb2N0bHNvcnQuCisJKiBsaW51eC9pb2N0bGVudC5zaDogQnVpbGQgdGhlIGxpc3Qgb2YgaW9jdGxzIGRlZmluZWQgaW4KKwlsaW51eC9mYi5oICgweDQ2Li4pLCBsaW51eC9rZC5oICgweDRCLi4pLCBsaW51eC9jZHJvbS5oICgweDUzLi4pLAorCWFzbS9pb2N0bHMuaCAoMHg1NC4uKSwgbGludXgvdnQuaCAoMHg1Ni4uKSwgbGludXgvdmlkZW90ZXh0LmgKKwkoMHg3MS4uKSwgbGludXgvdmlkZW90ZXh0LmggKDB4NzIuLiksIGFzbS9zb2NraW9zLmggKDB4ODkuLiksCisJbGludXgvc29ja2lvcy5oICgweDg5Li4pLCBsaW51eC93aXJlbGVzcy5oICgweDhCLi4pLgorCSogbGludXgvaW9jdGxlbnQuaDogUmVnZW5lcmF0ZWQgZnJvbSBsaW51eC0yLjYuNS4KKwlGaXhlcyBSSCMxMjIyNTcuCisKKzIwMDQtMDYtMDMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGRlYmlhbi9jb250cm9sIChBcmNoaXRlY3R1cmUpOiBBZGQgYW1kNjQuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjQ2NTY4LgorCisJKiBzdHJhY2UuYyAobWFpbikgW0xJTlVYXTogRXhwYW5kIFRDQlRBQiBhcyBuZWNlc3NhcnkgZm9yIHRocmVhZHMKKwlhdHRhY2hlZC4gIEF0dGFjaCB0aHJlYWRzIG9ubHkgdW5kZXIgLWYuICBTZXQgVENCX0ZPTExPV0ZPUksgaW4gdGhlbS4KKwkoZXhwYW5kX3RjYnRhYik6IE5ldyBmdW5jdGlvbiwgYnJva2VuIG91dCBvZiAuLi4KKwkqIHByb2Nlc3MuYyAoZm9ya190Y2IpOiAuLi4gaGVyZSwgY2FsbCB0aGF0LgorCSogZGVmcy5oOiBEZWNsYXJlIGV4cGFuZF90Y2J0YWIuCisKKzIwMDQtMDQtMTkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHByb2Nlc3MuYyAocHJpbnRzdGF0dXMpOiBBZGQgYSBzcGFjZSBiZWZvcmUgfCBpbiBvdXRwdXQuCisKKzIwMDQtMDQtMTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYzogVmVyc2lvbiA0LjUuMy4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjUuMy0xLgorCisyMDA0LTAzLTE4ICBEbWl0cnkgVi4gTGV2aW4gIDxsZHZAYWx0bGludXgub3JnPgorCisJKiByZXNvdXJjZS5jIChzeXNfcXVvdGFjdGwpIFtMSU5VWF06IENhc3QgYXJpdGhtZXRpYyBzaGlmdCBvcGVyYW5kCisJZnJvbSBsb25nIHRvIHVuc2lnbmVkIGxvbmcsIHRvIGZpeCBvdXRwdXQgb2YgdGhlIHF1b3RhY3RsIGNvbW1hbmQKKwlwYXJzZXIuCisJRml4ZXMgUkgjMTE4Njk0LgorCisyMDA0LTA0LTE2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9zMzkwL2lvY3RsZW50LmgsIGxpbnV4L3MzOTB4L2lvY3RsZW50Lmg6IFVwZGF0ZSBEQVNEIGlvY3Rscy4KKwlGcm9tIE1heGltIFNoY2hldHluaW4gPG1heGltQGRlLmlibS5jb20+LgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciA8bXF1ZXVlLmg+LgorCSogaXBjLmMgKHN5c19tcV9vcGVuLCBwcmludG1xYXR0cikgWyEgSEFWRV9NUVVFVUVfSF06IERvbid0IHRyeSB0bworCWRlY29kZSBzdHJ1Y3QgbXFfYXR0ci4KKwkqIE5FV1M6IE1lbnRpb24gbXEgc3VwcG9ydC4KKworCSogbGludXgvc3lzY2FsbC5oOiBTdXBwb3J0IG5ldyBtcV8qIHN5c2NhbGxzIG9uIExpbnV4LgorCSogbGludXgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2R1bW15Lmg6IExpa2V3aXNlLgorCSogaXBjLmM6IExpa2V3aXNlLgorCSogdGltZS5jIChwcmludHNpZ2V2ZW50KTogSGFuZGxlIFNJR0VWX1RIUkVBRC4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCUZpeGVzIFJIIzEyMDcwMS4KKworMjAwNC0wNC0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbmV0LmMgKG1zZ19mbGFncyk6IEdyb2sgTVNHX0ZJWCwgTVNHX1NZTiwgTVNHX1JTVCwgTVNHX05PU0lHTkFMLAorCU1TR19NT1JFLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMTIwNTQxLgorCisJKiBwcm9jZXNzLmMgKHByaW50c3RhdHVzKTogTWFzayBvdXQgYml0cyBwcmVzZW50ZWQgc3ltYm9saWNhbGx5LCBhbmQKKwlwcmludCAifCAweG5ubiIgaWYgdGhlIHJlbWFpbmluZyBiaXRzIGFyZSBub3QgYWxsIHplcm8uCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjQwMDYyLgorCisJKiBwcm9jZXNzLmMgKHByaW50X2FmZmluaXR5bGlzdCk6IFJld3JpdHRlbiB0byBoYW5kbGUgaW5kaXJlY3QgdmFsdWVzLgorCShzeXNfc2NoZWRfc2V0YWZmaW5pdHksIHN5c19zY2hlZF9nZXRhZmZpbml0eSk6IFVwZGF0ZSBjYWxsZXJzLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMTE4Njg1LgorCisJKiBhY2luY2x1ZGUubTQ6IFF1b3RlIGZpcnN0IGFyZ3VtZW50IHRvIEFDX0RFRlVOIGluIGFsbCBjYXNlcy4KKworMjAwNC0wNC0wOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgKG1haW4pIFtMSU5VWF06IFdoZW4gYXR0YWNoaW5nIGZvciAtcCwgbG9vayBpbgorCS9wcm9jL1BJRC90YXNrIGZvciBhbGwgdGhyZWFkcyBhbmQgYXR0YWNoIHRoZW0gYXMgcHJlc3VtZWQKKwlDTE9ORV9USFJFQUQgY2hpbGRyZW4uCisJKiBORVdTOiBNZW50aW9uIHRoZSBmZWF0dXJlLgorCUZpeGVzIFJIIzEyMDQ2Mi4KKworMjAwNC0wMy0wMiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogdXRpbC5jIChzZXRicHQpOiBGaXggb25lIG1pc3NlZCBzcG90IHRvIHVzZSBuZXcgYXJnMF9pbmRleCBtYWNyby4KKwlGcm9tIE1pY2hhZWwgSG9semhldSA8SE9MWkhFVUBkZS5pYm0uY29tPi4KKworCSogZGViaWFuL2NvbnRyb2wgKFN0YW5kYXJkcy1WZXJzaW9uKTogVXBkYXRlIHRvIDMuNi4xLgorCisyMDA0LTAzLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC41LjIuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LjItMS4KKworCSogc3RyYWNlLmMgKG1haW4pOiBBdm9pZCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJydW5zIGZyb20gbHVkaWNyb3VzCisJYXJndW1lbnRzIG9yIFBBVEggdmFsdWVzLgorCSogc3lzY2FsbC5jIChxdWFsX3NpZ25hbCk6IEJhaWwgb3V0IGZvciB0b28tbG9uZyBzdHJpbmcuCisKKwkqIG1lbS5jIFtMSU5VWF06IDxhc20vbW1hbi5oPiAtPiA8bGludXgvbW1hbi5oPgorCUZpeGVzIERlYmlhbiBidWcgIzIyMzIwNy4KKworCSogbGludXgvc3BhcmMvc3lzY2FsbC5oOiBDb3B5IGxpbnV4L3N5c2NhbGwuaCBkZWNscyBvZiBzeXNfc2NoZWRfKi4KKworCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgYHN0cnVjdCB1c2VyX2Rlc2MnIGluIDxhc20vbGR0Lmg+LgorCSogcHJvY2Vzcy5jIFtIQVZFX1NUUlVDVF9VU0VSX0RFU0NdOiBVc2Ugc3RydWN0IHVzZXJfZGVzYyBpbiBwbGFjZSBvZgorCXN0cnVjdCBtb2RpZnlfbGR0X2xkdF9zLgorCSogbWVtLmMgW0hBVkVfU1RSVUNUX1VTRVJfREVTQ106IExpa2V3aXNlLgorCisJKiBzeXN0ZW0uYyAoc3lzY3RsX3ZtKTogQ29uZGl0aW9uYWxpemUgVk1fKiBtYWNybyB1c2VzLCBhZGQgc29tZSBtb3JlLgorCUZyb20gVGltIFlhbWluIDxwbGFzbWFyb29AZ2VudG9vLm9yZz4uCisKKwkqIHByb2Nlc3MuYyAoc3lzX2V4ZWN2ZSk6IENsZWFyIGluc3RlYWQgb2Ygc2V0IFRDQl9XQUlURVhFQ1ZFIG9uCisJZXJyaW5nIHN5c2NhbGwuCisKKwkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIGBzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncycKKwlhbmQgYHN0cnVjdCBpYTY0X2ZwcmVnJyBpbiA8c3lzL3B0cmFjZS5oPi4KKwkqIHV0aWwuYywgcHJvY2Vzcy5jLCBzeXNjYWxsLmMsIHNpZ25hbC5jOiBXb3JrIGFyb3VuZCBjb25mbGljdHMgYmV0d2VlbgorCTxzeXMvcHRyYWNlLmg+IGFuZCA8bGludXgvcHRyYWNlLmg+IGZvciBkZWZpbmluZyB0aG9zZSB0eXBlcy4KKworCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbTElOVVggJiYgSUE2NF06IENvbmRpdGlvbmFsaXplCisJUFRfQVJfQ1NEIGFuZCBQVF9BUl9TU0QgdXNlcyBpbiBjYXNlIG9mIG9sZGVyIGtlcm5lbCBoZWFkZXJzLgorCisJKiB1dGlsLmMgW0xJTlVYXSAoYXJnMF9pbmRleCwgYXJnMV9pbmRleCk6IE5ldyBtYWNyb3MuCisJW1MzOTAgfHwgUzM5MFhdOiBEZWZpbmUgdGhlbSB3aXRoIGludmVydGVkIHZhbHVlcy4KKwkoc2V0YnB0KTogVXNlIHRoZW0gZm9yIHVfYXJnIGluZGljZXMuCisKKzIwMDQtMDItMjYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CisKKwkqIGRlZnMuaCBbTElOVVggJiYgSUE2NF06IERlY2xhcmUgZ2V0cnZhbDIgYWxzbyBvbiBJQTY0LgorCSogbmV0LmMgKHN5c19waXBlKSBbTElOVVggJiYgSUE2NF06IEZvciBJQTY0IHVzZSB0aGUgdHdvIHJldHVybiB2YWx1ZXMuCisJKiBzeXNjYWxsLmMgKGdldHJ2YWwyKSBbTElOVVggJiYgSUE2NF06IEltcGxlbWVudCBmb3IgSUE2NC4KKworMjAwNC0wMy0wMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvZHVtbXkuaCAoc3lzX3NjaGVkX2dldHNjaGVkdWxlciwgc3lzX3NjaGVkX3NldHBhcmFtLAorCXN5c19zY2hlZF9nZXRwYXJhbSwgc3lzX3NjaGVkX3NldHNjaGVkdWxlciwgc3lzX3NjaGVkX2dldHNjaGVkdWxlciwKKwlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4pOiBSZW1vdmUgbWFjcm9zLgorCSogcHJvY2Vzcy5jIFtMSU5VWF0gKHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9zZXRwYXJhbSwKKwlzeXNfc2NoZWRfZ2V0cGFyYW0sIHN5c19zY2hlZF9zZXRzY2hlZHVsZXIsIHN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCisJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4pOiBOZXcgZnVuY3Rpb25zLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisJRml4ZXMgUkgjMTE2OTkwLgorCisyMDA0LTAyLTIwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaDogVXBkYXRlIHNvbWUgc3lzY2FsbHMuCisJRnJvbSBSYW5kb2xwaCBDaHVuZyA8dGF1c3FAZGViaWFuLm9yZz4uCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjMxNjMyLgorCisyMDAzLTEyLTMxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KKworCSogcHJvY2Vzcy5jIChpbnRlcm5hbF9leGl0KTogRm9yIGlhNjQsIGFsc28gcmVjb2duaXplIElBLTMyIDI1MgorCWFzIGV4aXRfZ3JvdXAoKS4KKwkoY2hhbmdlX3N5c2NhbGwpOiBGb3IgSUE2NCwgYWxzbyBzdXBwb3J0IGNoYW5naW5nIElBLTMyIHN5c2NhbGxzLgorCSogc3lzY2FsbC5jIChpbnRlcm5hbF9zeXNjYWxsKTogRm9yIElBNjQsIGFsc28gcmVjb2duaXplIElBLTMyCisgICAgICAgIHN5c2NhbGwgMjUyIChleGl0X2dyb3VwKSBhcyBhbiBpbnRlcm5hbF9leGl0KCkgc3lzY2FsbC4KKwkqIHV0aWwuYyAoU1lTX2ZvcmspOiBGb3IgSUE2NCwgZGVmaW5lIHRoZW0gdG8gdGhlIElBLTMyIHN5c2NhbGwKKwludW1iZXIuCisJKFNZU192Zm9yayk6IExpa2V3aXNlLgorCShhcmdfc2V0dXApOiBGb3IgSUE2NCB2ZXJzaW9uLCBhbHNvIHN1cHBvcnQgSUEtMzIgc3lzY2FsbHMuCisJKGdldF9hcmcwKTogTGlrZXdpc2UuCisJKGdldF9hcmcxKTogTGlrZXdpc2UuCisJKHNldF9hcmcwKTogTGlrZXdpc2UuCisJKHNldF9hcmcxKTogTGlrZXdpc2UuCisKKzIwMDQtMDItMTUgIEFudG9uIEJsYW5jaGFyZCAgPGFudG9uQHNhbWJhLm9yZz4KKworCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IEFkZCBydGFzIGNhbGwuCisJU2hpZnQgbXVsdGlwbGV4ZWQgc3lzY2FsbHMgdG8gc3RhcnQgYXQgMzAwLCB3ZSBhcmUgYWxyZWFkeSBhYm91dAorCXRvIGhpdCAyNTYgcmVhbCBzeXNjYWxscy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogU1lTX3NvY2tldF9zdWJjYWxsIGlzIG5vdyAzMDAgZm9yIFtQT1dFUlBDXS4KKworMjAwNC0wMi0xOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgKG1haW4pOiBVc2UgVENQLT5waWQsIG5vdCBQSUQsIGluIC1wIG1lc3NhZ2UuCisJRml4ZXMgRGViaWFuIGJ1ZyAjMjI5ODAyLgorCisyMDA0LTAxLTEzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKGZvcmNlX3Jlc3VsdCkgW0xJTlVYXSBbUzM5MCB8fCBTMzkwWF06IFJlbW92ZSBib2d1cyB1cGVlaworCWNhbGwuCisKKwkqIHN0cmVhbS5jIChpbnRlcm5hbF9zdHJlYW1faW9jdGwpOiBGaXggdHlwbyBzdHJpY3QgLT4gc3RydWN0LgorCVJlcG9ydGVkIGJ5IFBldHRlciBSZWluaG9sZHRzZW4gPHBlcmVAaHVuZ3J5LmNvbT4uCisKKzIwMDMtMTItMzEgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgorCisJKiBwcm9jZXNzLmMgKHN0cnVjdF91c2VyX29mZnNldHMpIFtJQTY0XTogRml4IHVwIHJlZ2lzdGVyIG5hbWUgbGlzdC4KKworMjAwMy0xMi0xNCAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgorCisJKiBmaWxlLmMgKHN5c19nZXRkZW50czY0KTogRG9uJ3QgY2FzdCBkX2lubyBhbmQgZF9vZmYgdG8gdW5zaWduZWQgbG9uZy4KKwlVc2UgJWxsdSBmb3JtYXRzIGZvciB0aGVtLgorCisJKiBmaWxlLmMgW0xJTlVYXSAoZnNtYWdpYyk6IEFkZCBTWVNGU19NQUdJQy4KKworCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0byBpbmNsdWRlIHJlY2VudGx5IGFkZGVkCisJc3lzY2FsbHMuCisKKwkqIHN5c2NhbGwuYyAoZ2V0X2Vycm9yKSBbUE9XRVJQQ106IENhc3QgcmVzdWx0IHRvIHVuc2lnbmVkIGxvbmcgZm9yCisJcHBjNjQsIHdlIHdlcmUgbWlzcmVwb3J0aW5nIHN5c2NhbGxzIHRoYXQgcmVhbGx5IHN1Y2NlZWRlZCBhcyBoYXZpbmcKKwlmYWlsZWQuCisKKzIwMDQtMDEtMTMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS4xOiBSZW1vdmUgY29tbWVudCBhYm91dCB2Zm9yayBvbiBMaW51eC4KKwlGaXhlcyBEZWJpYW4gYnVnICMyMjMzOTAuCisKKwkqIGZpbGUuYyAoZGlyZW50dHlwZXMpOiBEZWZpbmUgdW5kZXIgW0xJTlVYXSBhcyB3ZWxsLiAgQWRkIERUX1VOS05PV04uCisJKHN5c19nZXRkZW50czY0KSBbTElOVVhdOiBQcmludCBkX3R5cGUgZmllbGQuCisKKzIwMDMtMTItMTUgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIHN0cmFjZS5jICh0cmFjZSkgW1dDT1JFRFVNUF06IFNob3cgY29yZWR1bXAgc3RhdHVzIG9mIHRoZQorCWtpbGxlZCBwcm9jZXNzIGlmIGF2YWlsYWJsZS4gIEZpeGVzIFJIIzExMjExNy4KKworMjAwMy0xMS0xMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNS4xLgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNS4xLTEuCisKKzIwMDMtMDktMDYgIERtaXRyeSBWLiBMZXZpbiAgPGxkdkBhbHRsaW51eC5vcmc+CisKKwkqIGRlZnMuaCAoaW9jdGxfbG9va3VwKTogUHJvdG90eXBlIGNoYW5nZS4KKwkqIGlvY3RsLmMgKGlvY3RsX25leHRfbWF0Y2gpOiBOZXcgZnVuY3Rpb24uCisJKiBkZWZzLmg6IERlY2xhcmUgaXQuCisJKiBpby5jIChzeXNfaW9jdGwpOiBVc2UgaXQsIHRvIGRpc3BsYXkgYWxsIHBvc3NpYmxlIGlvY3RsIG5hbWVzCisJd2hlbiB0aGVyZSdzIG1vcmUgdGhhbiBvbmUgbWF0Y2guCisJKiBpb2N0bC5jIChpb2N0bF9sb29rdXApOiBMaWtld2lzZS4KKwkqIHN0cmVhbS5jIChpbnRlcm5hbF9zdHJlYW1faW9jdGwpOiBMaWtld2lzZS4KKwlQYXRjaCBmcm9tIFNvbGFyIERlc2lnbmVyIDxzb2xhckBvcGVud2FsbC5jb20+LgorCisyMDAzLTExLTEzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfc2V0Z3JvdXBzMzIsIHN5c19nZXRncm91cHMzMi4KKwkqIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworMjAwMy0wOS0wNiAgRG1pdHJ5IFYuIExldmluICA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCUZpeGVzIGZvciBSSCMxMDUzNTkuCisJKiB1dGlsLmMgKHByaW50dWlkKTogTmV3IGZ1bmN0aW9uLgorCSogZGVmcy5oOiBEZWNsYXJlIGl0LgorCSogZmlsZS5jIChzeXNfY2hvd24pOiBVc2UgaXQuCisJKiBmaWxlLmMgKHN5c19mY2hvd24pOiBMaWtld2lzZS4KKwkqIHByb2Nlc3MuYyAoc3lzX3NldHJldWlkLCBzeXNfc2V0cmVnaWQsIHN5c19zZXRyZXN1aWQsCisJc3lzX3NldHJlc2dpZCk6IExpa2V3aXNlLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBCZXR0ZXIgaGFuZGxlIGdldGdpZDMyLCBnZXRldWlkMzIsIGdldGVnaWQzMiwKKwlzZXRyZXVpZDMyLCBzZXRyZWdpZDMyLCBnZXRncm91cHMzMiwgc2V0Z3JvdXBzMzIsIGZjaG93bjMyLAorCXNldHJlc3VpZDMyLCBnZXRyZXN1aWQzMiwgc2V0cmVzZ2lkMzIsIGdldHJlc2dpZDMyLCBjaG93bjMyLAorCXNldHVpZDMyLCBzZXRnaWQzMiwgc2V0ZnN1aWQzMiwgc2V0ZnNnaWQzMi4KKwkqIHByb2Nlc3MuYyBbTElOVVhdOiBEZWZpbmUgR0VUR1JPVVBTMzJfVC4KKwkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfc2V0Z3JvdXBzMzIsIHN5c19nZXRncm91cHMzMik6CisJTmV3IGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaCAoc3lzX3NldGdyb3VwczMyLCBzeXNfZ2V0Z3JvdXBzMzIpOgorCURlY2xhcmUgdGhlbS4KKworMjAwMy0xMS0xMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLmMgKG1haW4pOiBCYWlsIHdpdGggdXNhZ2UgZXJyb3IgZm9yIG1pc3NpbmcgY29tbWFuZCBiZWZvcmUgd2UKKwlvcGVuIHRoZSAtbyBmaWxlIG9yIGZpZGRsZSB1aWRzLgorCisyMDAzLTExLTA2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAobWFpbik6IFRyZWF0IHBpcGVkIG91dHB1dCBtb3JlIGxpa2UgZmlsZSBvdXRwdXQuCisJRGlzYWxsb3cgLWZmIHdpdGggcGlwZWQgb3V0cHV0LiAgRml4ZXMgUkgjMTA1MzY2LgorCVJlcG9ydGVkIGJ5IERtaXRyeSBWLiBMZXZpbiA8bGR2QGFsdGxpbnV4Lm9yZz4KKworCSogc3RyYWNlLmMgKHRwcmludGYpOiBDaGVjayByZXN1bHQgb2YgdmZwcmludGYgYW5kIHVzZSBwZXJyb3Igd2hlbiBpdAorCWZhaWxzIHdoaWxlIG5vdCB3cml0aW5nIHRvIHN0ZGVyciBpdHNlbGYuICBGaXhlcyBEZWJpYW4gYnVnICMyMTg3NjIuCisKKwkqIG5ldC5jIChwcmludHNvY2spOiBGaXggdHlwbyBpbiAjaWZkZWYgQUZfTkVUTElOSy4KKwlGcm9tIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5jb20+LgorCisyMDAzLTExLTAxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKHRyYWNlX3N5c2NhbGwpIFtMSU5VWF06IENhbGN1bGF0ZSBPTkVfVElDSyBvbmNlIHVzaW5nCisJc2V0aXRpbWVyIHJhdGhlciB0aGFuIGhhcmQtY29kaW5nIGEgdmFsdWUgYmFzZWQgb24gSFouCisJRml4ZXMgUkgjMTA4MDEyLCByZXBvcnRlZCBieSBGbG9yaWFuIExhIFJvY2hlIDxsYXJvY2hlQHJlZGhhdC5jb20+LgorCisyMDAzLTEwLTIxICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuMTogRml4ZWQgYSBmZXcgc3BlbGxpbmcgZXJyb3JzLgorCUZpeGVzIERlYmlhbiBidWcgIzIxNzAwOC4KKworCSogc3lzY2FsbC5jOiBSZXZlcnQgbGFzdCBjaGFuZ2UsIHdhcyBicm9rZW4uCisKKzIwMDMtMTAtMDEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfY2xvbmUpOiBEb24ndCBzdXNwZW5kIHBhcmVudCB3aGVuIGNhbGwgcmVxdWVzdGVkCisJYSBzcGVjaWZpYyBQSUQgdGhhdCBpcyBub3QgYSB0cmFjZWQgY2hpbGQuCisKKwkqIHNpZ25hbC5jIFtMSU5VWF0gKHBhcnNlX3NpZ3NldF90KTogUmV3cml0ZSB0byBwcm9jZXNzIGhleCBzdHJpbmdzCisJZnJvbSByaWdodCB0byBsZWZ0IHNvIHdlIGRvbid0IGhhdmUgdG8gcHJlc3VtZSB0aGUgc2l6ZS4KKwlSZXBvcnRlZCBieSBEYXZpZCBXb29kaG91c2UgPGR3bXcyQHJlZGhhdC5jb20+LgorCisyMDAzLTA5LTI1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBtZW0uYyAobW1hcF9wcm90KSBbUFJPVF9TRU0sIFBST1RfR1JPV1NET1dOLCBQUk9UX0dST1dTVVBdOiBJbmNsdWRlCisJdGhlc2UgaW4gdGhlIHRhYmxlIGlmIHRoZXkgYXJlIGRlZmluZWQuCisKKzIwMDMtMDktMjQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjUuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC41LTEuCisKKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdOiBCYWlsIG91dCBvZgorCWluc3RydWN0aW9uIGRlY29kaW5nIGJyYW5jaCBpZiBUQ0JfSU5TWVNDQUxMIGlzIGNsZWFyLgorCVJlcG9ydGVkIGJ5IDxqb2NoZW5AcGVuZ3Vpbi1icmVlZGVyLm9yZz4uCisKKwkqIGxpbnV4L2lvY3RsZW50Lmg6IFN3YXAgb3JkZXIgb2Ygb3ZlcmxvYWRlZCBUQyogYW5kIFNORENUTF8qIHZhbHVlcy4KKworMjAwMy0wOS0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc3RyYWNlLnNwZWM6IE9uIHBwYzY0IChtYXliZSBvdGhlcnMgbGF0ZXIpLCBjcmVhdGUgYW4gc3RyYWNlNjQKKwlwYWNrYWdlIGFzIHdlbGwgY29udGFpbmluZyBqdXN0IC91c3IvYmluL3N0cmFjZTY0LgorCisJKiBzaWduYWwuYyAoc3ByaW50c2lnbWFzayk6IFByaW50IFJUXyV1IGZvciBfX1NJR1JUTUlOLi5fX1NJR1JUTUFYLgorCUZpeGVzIFJIIzEwNDM2NS4KKworMjAwMy0wOC0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBGaXggbWxvY2sgYXJndW1lbnQgY291bnQuICBGaXhlcyBSSCMxMDE0OTkuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKzIwMDMtMDctMjggIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgorCisJKiBkZWZzLmggKEFMSUdONjQpOiBEZWZpbmUgZm9yIE1JUFMuCisJKiBpby5jIChQUkVBRF9PRkZTRVRfQVJHKTogRGVmaW5lLgorCShzeXNfcHJlYWQsIHN5c19wd3JpdGUpOiBVc2UgaXQuCisJKiBwcm9jZXNzLmMgKHN0cnVjdF91c2VyX29mZnNldHMpIFtTSF06IENoZWNrIHdoZXRoZXIgUkVHX1hEUkVHMAorCWlzIGRlZmluZWQuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50LmggKHByZWFkLCBwd3JpdGUpOiBUYWtlIHNpeCBhcmd1bWVudHMuCisJKHRydW5jYXRlNjQsIGZ0cnVuY2F0ZTY0KTogUHJldHR5LXByaW50LgorCSogbGludXgvbWlwcy9zeXNjYWxsZW50LmggKHByZWFkLCBwd3JpdGUpOiBUYWtlIHNpeCBhcmd1bWVudHMuCisJKHRydW5jYXRlNjQsIGZ0cnVuY2F0ZTY0KTogVGFrZSBmb3VyIGFyZ3VtZW50cy4KKworMjAwMy0wNy0xNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45OS4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTktMS4KKworMjAwMy0wNy0xNSAgQW50b24gQmxhbmNoYXJkICA8YW50b25Ac2FtYmEub3JnPgorCisJKiBpcGMuYzogQWRkIFNITV9IVUdFVExCIGZpZWxkLgorCU1hc2sgb3V0IHBlcm1pc3Npb24gYml0cyBpbiBtc2dnZXQsIHNlbWdldCBhbmQgc2htZ2V0IGJlZm9yZQorCQlwcmludGluZyByZXNvdXJjZV9mbGFncy4KKwlNYXNrIGV4ZWN1dGUgcGVybWlzc2lvbiBiaXRzIChldmVuIHRob3VnaCB3ZSBkb250IGN1cnJlbnRseQorCQl1c2UgdGhlbSkuCisKKzIwMDMtMDctMTcgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oICh0Z2tpbGwpOiBOZXcgYXQgMjUwLgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IHRydW5jYXRlNjQvZnRydW5jYXRlNjQgbmVlZCAzIGFyZ3MuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBIYW5kbGUgc3RhdGZzNjQsIGZzdGF0ZnM2NCwgdXRpbWVzLgorCSogZmlsZS5jIChwcmludHN0YXRmcyk6IFByaW50IGZfZnNpZCBhbmQgZl9mcnNpemUuCisJW0xJTlVYXSAocHJpbnRzdGF0ZnM2NCwgc3lzX3N0YXRmczY0LCBzeXNfZnN0YXRmczY0KTogTmV3IGZ1bmN0aW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogQWRkIGRlY2xzLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKzIwMDMtMDctMDkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oICh0Z2tpbGwpOiBOZXcgYXQgMTIzNS4KKworMjAwMy0wNy0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdHdpZGRsZS5uZXQ+CisKKwkqIHByb2Nlc3MuYyAoc3lzX2Nsb25lKTogT3JkZXIgYXJndW1lbnRzIGZvciBhbHBoYSB0aGUgc2FtZSBhcyB4ODZfNjQuCisJKiBzeXNjYWxsLmMgKEVSRVNUQVJUX1JFU1RBUlRCTE9DSyk6IE5ldy4KKwkodHJhY2Vfc3lzY2FsbCk6IFByaW50IGl0LgorCSogbGludXgvYWxwaGEvc3lzY2FsbGVudC5oIChvc2Zfc3lzY2FsbCk6IE5hbWUgcHJvcGVybHkuCisJKG9zZl9zZXRfcHJvZ3JhbV9hdHRyaWJ1dGVzKTogRml4IHR5cG8uCisJKG9zZl9uZnNzdmMpOiBMaWtld2lzZS4KKwkob3NmX3NpZ3NlbmRzZXQpOiBMaWtld2lzZS4KKwkoZ2V0ZGVudHM2NCwgZ2V0dGlkLCByZWFkYWhlYWQsIHRraWxsLCBzZXR4YXR0ciwgbHNldHhhdHRyLCBmc2V0eGF0dHIsCisJZ2V0eGF0dHIsIGxnZXR4YXR0ciwgZmdldHhhdHRyLCBsaXN0eGF0dHIsIGxsaXN0eGF0dHIsIGZsaXN0eGF0dHIsCisJcmVtb3ZleGF0dHIsIGxyZW1vdmV4YXR0ciwgZnJlbW92ZXhhdHRyLCBmdXRleCwgc2NoZWRfc2V0YWZmaW5pdHksCisJc2NoZWRfZ2V0YWZmaW5pdHksIHR1eGNhbGwsIGlvX3NldHVwLCBpb19kZXN0cm95LCBpb19nZXRldmVudHMsCisJaW9fc3VibWl0LCBpb19jYW5jZWwsIGV4aXRfZ3JvdXAsIGxvb2t1cF9kY29va2llLCBlcG9sbF9jcmVhdGUsCisJZXBvbGxfY3RsLCBlcG9sbF93YWl0LCByZW1hcF9maWxlX3BhZ2VzLCBzZXRfdGlkX2FkZHJlc3MsCisJcmVzdGFydF9zeXNjYWxsLCBmYWR2aXNlLCB0aW1lcl9jcmVhdGUsIHRpbWVyX3NldHRpbWUsIHRpbWVyX2dldHRpbWUsCisJdGltZXJfZ2V0b3ZlcnJ1biwgdGltZXJfZGVsZXRlLCBjbG9ja19zZXR0aW1lLCBjbG9ja19nZXR0aW1lLAorCWNsb2NrX2dldHJlcywgY2xvY2tfbmFub3NsZWVwLCBzZW10aW1lZG9wKTogTmV3LgorCisyMDAzLTA3LTA4ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzaWduYWwuYyAoc3lzX3Rna2lsbCk6IE5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBpdC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogQWRkIHRna2lsbC4KKworMjAwMy0wNi0yNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjOiBDaGVjayBmb3IgdHlwZSBgc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0Jy4KKwkqIGZpbGUuYyAoY29udmVydG9sZHN0YXQsIHByaW50b2xkc3RhdCk6IERlZmluZSB1bmRlcgorCVtMSU5VWCAmJiBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVF0gcmF0aGVyIHRoYW4gYSBsaXN0IG9mIGFyY2hzLgorCShzeXNfb2xkc3RhdCwgc3lzX29sZGZzdGF0LCBzeXNfb2xkbHN0YXQpOiBMaWtld2lzZS4KKwkqIGxpbnV4L2R1bW15LmggWyEgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVRdCisJKHN5c19vbGRzdGF0LCBzeXNfb2xkZnN0YXQsIHN5c19vbGRsc3RhdCk6ICNkZWZpbmUgdG8gcHJpbnRhcmdzLgorCisyMDAzLTA2LTI2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWM6IFNITUVESUEgLT4gU0g2NAorCSogZGVmcy5oOiBMaWtld2lzZS4KKwkqIG1lbS5jOiBMaWtld2lzZS4KKwkqIHByb2Nlc3MuYzogTGlrZXdpc2UuCisJKiBzb2NrLmM6IExpa2V3aXNlLgorCSogc3lzY2FsbC5jOiBMaWtld2lzZS4KKwkqIHV0aWwuYzogTGlrZXdpc2UuCisJKiBsaW51eC9zaG1lZGlhL3N5c2NhbGxlbnQuaDogTW92ZWQgdG8gLi4uCisJKiBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaDogLi4uIGhlcmUuCisKKwkqIGNvbmZpZy5ndWVzczogVXBkYXRlIGZyb20gY2Fub25pY2FsIHZlcnNpb24sIHRpbWVzdGFtcCAyMDAzLTA2LTE3LgorCSogY29uZmlnLnN1YjogTGlrZXdpc2UuCisKKwkqIHN5c2NhbGwuYyAoZm9yY2VfcmVzdWx0KSBbTElOVVhdIFtBUk1dOiBGaXggdmFyaWFibGUgdXNhZ2UuCisJRnJvbTogSm9zaHVhIE5lYWwgPHRpbmFyYUBuZXRwaXBlbGluZS5uZXQ+LgorCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Z1dGV4KTogR3JvayBGVVRFWF9SRVFVRVVFIGFuZCBwcmludCA1dGggYXJnLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBzeXNfZnV0ZXggYXJndW1lbnQgY291bnQgaXMgbm93IDUsIG5vdCA0LgorCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCUZyb20gSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4uCisKKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pIFtTMzkwIHx8IFMzOTBYXTogRml4IG9sZCB2cyBuZXcgbW9kZSBkZXRlY3Rpb24uCisJRnJvbSBNaWNoYWVsIEhvbHpoZXUgPEhPTFpIRVVAZGUuaWJtLmNvbT4uCisKKzIwMDMtMDYtMjMgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIG5ldC5jIChzeXNfc29ja2V0KTogRGVjb2RlIHByb3RvY29sIGZvciBQRl9JTkVUNiBzYW1lIGFzIFBGX0lORVQuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworMjAwMy0wNi0xMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45OC4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTgtMS4KKworMjAwMy0wNi0wOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBVcGRhdGUgbWFueSBzeXNjYWxscy4KKwkqIGxpbnV4L3N5c2NhbGwuaCAoU1lTX3NvY2tldF9zdWJjYWxsKTogVXBkYXRlIFtTMzkwWF0gdmFsdWUuCisKKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBVcGRhdGUgbWFueSBzeXNjYWxscy4KKwkqIGxpbnV4L3N5c2NhbGwuaCAoU1lTX3NvY2tldF9zdWJjYWxsKTogVXBkYXRlIFtTMzkwXSB2YWx1ZS4KKworCSogbGludXgvc2htZWRpYS9zeXNjYWxsZW50Lmg6IE5ldyBmaWxlLgorCUZyb20gU3RlcGhlbiBUaG9tYXMgPHN0ZXBoZW4udGhvbWFzQHN1cGVyaC5jb20+LgorCisJKiBzdHJhY2UuYyAodHJhY2UpOiBQcmludCBhIG1lc3NhZ2UgYW5kIG5ld2xpbmUgZm9yIGEgV0lGRVhJVEVEIHJlcG9ydAorCWZyb20gdGhlIHByb2Nlc3Mgd2UganVzdCBwcmludGVkIGFuIHVudGVybWluYXRlZCBzeXNjYWxsIGxpbmUgZm9yLgorCisyMDAzLTA2LTAzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiB1dGlsLmMgKHByaW50Y2FsbCkgW0xJTlVYXTogRml4IHR5cG8gW0lBNjJdIC0+IFtJQTY0XS4KKworCUxpbnV4L0FSTSBpbXByb3ZlbWVudHMgZnJvbSBSdXNzZWxsIEtpbmcgPHJta0Bhcm0ubGludXgub3JnLnVrPjoKKwkqIGRlZnMuaCBbTElOVVhdIChUQ0JfV0FJVEVYRUNWRSk6IERlZmluZSBmb3IgW0FSTV0gdG9vLgorCSogcHJvY2Vzcy5jIChzdHJ1Y3RfdXNlcl9vZmZzZXRzKSBbTElOVVhdIFtBUk1dOiBBZGQgQVJNIHJlZ2lzdGVycy4KKwkqIHNpZ25hbC5jIFtMSU5VWF0gKHN5c19zaWdyZXR1cm4pIFtBUk1dOiBOZXcgY2FzZS4KKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8sIHN5c2NhbGxfZml4dXApIFtMSU5VWF0gW0FSTV06IENhc2UgcmV3cml0dGVuLgorCShnZXRfZXJyb3IpIFtMSU5VWF0gW0FSTV06IFVwZGF0ZS4KKwkoc3lzY2FsbF9lbnRlcikgW0xJTlVYXSBbQVJNXTogTmV3IGNhc2UuCisJKiB1dGlsLmMgKHByaW50Y2FsbCkgW0xJTlVYXSBbQVJNXTogTmV3IGNhc2UuCisKKwkqIGRlYmlhbi9jb250cm9sIChTdGFuZGFyZHMtVmVyc2lvbik6IFVwZGF0ZSB0byAzLjUuMTAuCisKKwkqIHN0cmFjZS5jIChtYWluKTogSW4gUEFUSCBzZWFyY2gsIGFjY2VwdCBvbmx5IGEgcmVndWxhciBmaWxlIHdpdGgKKwlleGVjdXRlIGJpdHMgc2V0LiAgRml4ZXMgRGViaWFuIGJ1ZyAjMTM3MTAzLgorCisyMDAzLTA2LTAyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzdHJhY2UuYyAobWFpbik6IFNldCAtcSB3aGVuIGdpdmVuIC1vIGFuZCBub3QgLXAsIGFuZCBub3Qgd2hlbiBub3QKKwlnaXZlbiAtbywgdG8gbWF0Y2ggd2hhdCB0aGUgbWFuIHBhZ2UgYWx3YXlzIHNhaWQuCisJRml4ZXMgRGViaWFuIGJ1ZyAjNDcxMTMsICMxNTM2NzguCisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTcuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk3LTEuCisKKwkqIGNvbmZpZ3VyZS5hYywgZGVmcy5oLCBtZW0uYywgcHJvY2Vzcy5jLCBzb2NrLmMsIHN5c2NhbGwuYywgdXRpbC5jOgorCU1lcmdlZCBpbiBTSG1lZGlhIHBvcnQgZnJvbSBTdGVwaGVuIFRob21hcyA8c3RlcGhlbi50aG9tYXNAc3VwZXJoLmNvbT4uCisKKwkqIGNvbmZpZy5ndWVzczogVXBkYXRlIGZyb20gZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudS9jb25maWcvLAorCXRpbWVzdGFtcCAyMDAzLTA1LTIyLgorCSogY29uZmlnLnN1YjogTGlrZXdpc2UsIHRpbWVzdGFtcCAyMDAzLTA1LTI0LgorCisyMDAzLTA1LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZWZzLmggKHN0cnVjdCB0Y2IpOiBOZXcgbWVtYmVyIGBuem9tYmllcycuCisJKiBzdHJhY2UuYyAoYWxsb2N0Y2IpOiBJbml0aWFsaXplIGl0LgorCShkcm9wdGNiKTogSW5jcmVtZW50IG91ciBwYXJlbnQncyB6b21iaWUgY291bnQuCisJKiBwcm9jZXNzLmMgKGludGVybmFsX3dhaXQpOiBEb24ndCBnbyBpbnRvIFRDQl9TVVNQRU5ERUQgaWYgdGhlCisJcHJvY2VzcyBoYXMgem9tYmllcyBpdCBjYW4gcmVhcC4gIE9uIHRoZSB3YXkgb3V0LCBpZiB3ZSByZWFwZWQKKwlhbiB1bnRyYWNlZCBwcm9jZXNzLCBkZWNyZW1lbnQgdGhlIHpvbWJpZSBjb3VudC4KKworCSogcHJvY2Vzcy5jIChzeXNfY2xvbmUpOiBNYXNrIENTSUdOQUwgb3V0IG9mIGZsYWdzIGFuZCBwcmludCB0aGF0CisJc2VwYXJhdGVseSB1c2luZyBzaWduYW1lLgorCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKSBbVENCX0NMT05FX1RIUkVBRF06IFVzZSBBUkdfRkxBR1MgaW5zdGVhZAorCW9mIGxpdGVyYWwgMCBmb3IgaW5kZXguICBDb25zdWx0IHRoZSByaWdodCBmbGFncyB3aXRob3V0IGNsb2JiZXJpbmcKKwlhbnl0aGluZyB3aGVuIHdlIHJlcGFyZW50IHRoZSBuZXcgY2hpbGQgdG8gdGhlIGNhbGxlcidzIHBhcmVudCB0aHJlYWQuCisKKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBGaXggc3lzX2Nsb25lIGFyZ3VtZW50IGNvdW50LgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2FscGhhL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogcHJvY2Vzcy5jIFtMSU5VWF0gW1MzOTAgfHwgUzM5MFhdIChBUkdfQ1RJRCwgQVJHX1RMUyk6IEZpeCBzd2FwcGVkCisJaW5kaWNlcy4gIFJlcG9ydGVkIGJ5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+LgorCisJKiBzaWduYWwuYyBbTElOVVhdIChTSV9TSUdJTywgU0lfVEtJTEwpOiBOZXcgbWFjcm9zLgorCVtMSU5VWCB8fCBTVlI0XSAoc2lnaW5mb19jb2Rlcyk6IEFkZCBzdHJpbmdzIGZvciB0aGVtLgorCisJKiBwcm9jZXNzLmMgKHByaW50X2FmZmluaXR5bGlzdCk6IEZpeCBsb29wIGNvbmRpdGlvbi4KKwlSZXBvcnRlZCBieSBJYW4gV2llbmFuZCA8aWFud0BnZWxhdG8udW5zdy5lZHUuYXU+LgorCisyMDAzLTA0LTEwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKHF1YWxfZGVzYyk6IFJldHVybiB6ZXJvIGFmdGVyIHBhcnNpbmcgbnVtYmVyLgorCUZyb20gUm9iIExlc2xpZSA8cm9iQG1hcnMub3JnPiwgZml4ZXMgRGViaWFuIGJ1ZyAjMTg4Mzc5LgorCisyMDAzLTA0LTA3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEhhbmRsZSBzZW10aW1lZG9wIHN1YmNhbGwgb2YgaXBjIHN5c2NhbGwuCisJKiBsaW51eC9zeXNjYWxsLmg6IExpa2V3aXNlLgorCSogaXBjLmMgW0xJTlVYXSAoc3lzX3NlbXRpbWVkb3ApOiBOZXcgZnVuY3Rpb24uCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworCSogaXBjLmMgKHN5c19zZW1nZXQpOiBNYXNrIG9mZiBwZXJtaXNzaW9uIGJpdHMgZm9yIHJlc291cmNlX2ZsYWdzLgorCUZyb20gVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKzIwMDMtMDQtMDEgIFBoaWxpcHBlIERlIE11eXRlciAgPHBoZG1AbWFjcWVsLmJlPgorCisJKiBzb2NrLmMsIHN0cmVhbS5jOiBDaGVjayAjaWZkZWYgTElOVVgsIG5vdCBsaW51eC4KKwkqIGZpbGUuYzogQWx3YXlzIHByb3ZpZGUgc3lzXyphdHRyLCByZWdhcmRsZXNzIG9mICNpZmRlZiBYQVRUUl9DUkVBVEUuCisKKzIwMDMtMDMtMzAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTYuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40Ljk2LTEuCisKKzIwMDMtMDItMjYgIFN0dWFydCBNZW5lZnkgPHN0dWFydC5tZW5lZnlAc3QuY29tPgorCisJVmFyaW91cyBmaXhlcyBmb3IgU3VwZXJIIFtTSF06CisJKiBtZW0uYyAoc3lzX29sZF9tbWFwKTogbW1hcCgpIHBhcmFtZXRlcnMgcGFzc2VkIGluIHJlZ2lzdGVycworCSogbmV0LmMgKHN5c19waXBlKSwgc3lzY2FsbC5jIChnZXRydmFsMik6IHBpcGUoKSByZXN1bHRzIHJldHVybmVkCisJaW4gcmVnaXN0ZXJzCisJKiBwcm9jZXNzLmMgKGNoYW5nZV9zeXNjYWxsKTogRml4ZWQgcmVnaXN0ZXIgd2hpY2ggaG9sZHMgc3lzdGVtCisJY2FsbCBudW1iZXIKKwkqIHV0aWwuYyAoYXJnMF9vZmZzZXQsIGFyZzFfb2Zmc2V0KTogcHJvdmlkZSBkZWZpbml0aW9uCisJKiBNYWtlZmlsZS5hbTogQWRkZWQgbmV3IGZpbGVzIGluIGxpbnV4L3NoCisJKiBsaW51eC9zaC9zeXNjYWxsZW50Lmg6IE5ldyBmaWxlLgorCSogbGludXgvc2gvZXJybm9lbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zaC9pb2N0bGVudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3NoL3NpZ25hbGVudC5oOiBOZXcgZmlsZS4KKworCSogbGludXgvaW9jdGxlbnQuc2g6IFRha2UgYW4gYXJnIGZvciBsb2NhdGlvbiBvZiBoZWFkZXIgZmlsZXMKKwkqIHN5c2NhbGxlbnQuc2g6IFJlcGxhY2VkIGxvc3QgJAorCisyMDAzLTAzLTMwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiB0aW1lLmMgW0xJTlVYXTogSGFuZGxlIG5ldyBMaW51eCAyLjUgY2xvY2svdGltZXIgc3lzY2FsbHMuCisJKiBsaW51eC9zeXNjYWxsLmgsIGxpbnV4L3N5c2NhbGxlbnQuaCwgbGludXgvZHVtbXkuaDogTGlrZXdpc2UuCisJRnJvbSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPi4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2dldHJsaW1pdCBmb3IgMTkxLgorCVVzZSBuYW1lICJvbGRfZ2V0cmxpbWl0IiBmb3IgNzYuCisJUmVwb3J0ZWQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4uCisKKzIwMDMtMDMtMTggIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHByb2Nlc3MuYyBbTElOVVhdIChzeXNfY2xvbmUpOiBEb24ndCBkZXJlZmVyZW5jZSBwYXJlbnRfdGlkIGFyZ3VtZW50LgorCisyMDAzLTAzLTE3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBjbG9uZSB0YWtlcyA1IGFyZ3MuCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Nsb25lKSBbWDg2XzY0XTogRml4IGFyZ3VtZW50IG9yZGVyLgorCisyMDAzLTAzLTE1ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudC5oOiBBZGQgZXhpdF9ncm91cCBzeXNjYWxsIGF0IDIzMS4KKworMjAwMy0wMy0xNCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaDogVXBkYXRlIGFuZCBhZGQgbWFueSAyLjUgc3lzY2FsbHMuCisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBjbG9uZSB0YWtlcyA1IGFyZ3VtZW50cy4KKwkqIHByb2Nlc3MuYyBbTElOVVggJiYgSUE2NF0gKEFSR18qKTogVXBkYXRlIGZvciAyLjUgY2xvbmUgY2FsbHMuCisKKzIwMDMtMDMtMTIgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBGaXggYXJnIGNvdW50cyBmb3IgY2xvbmUgYW5kIGNsb25lMi4KKwlVc2Ugc3lzX2Nsb25lIGZvciBjbG9uZTIuCisJKiBsaW51eC9zeXNjYWxsLmg6IERvbid0IGRlY2xhcmUgc3lzX2Nsb25lMi4KKwkqIHByb2Nlc3MuYyAoc3lzX2Nsb25lKTogUmV3cml0dGVuIHRvIGhhbmRsZSBib3RoIGZsYXZvcnMsCisJcHJpbnQgYWxsIGV4dHJhIGFyZ3MgZGVwZW5kaW5nIG9uIGZsYWcgYml0cy4KKwkoc3lzX2Nsb25lMik6IEZ1bmN0aW9uIHJlbW92ZWQuCisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBBZGQgYSBidW5jaCBvZiAyLjUgc3lzY2FsbHMuCisKKzIwMDMtMDMtMDQgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN5c2NhbGwuYyAoZ2V0X3Njbm8pIFtJQTY0XTogRG8gVENCX1dBSVRFWEVDVkUgY2hlY2sgb25seSB3aGVuCisJVENCX0lOU1lTQ0FMTCBpcyBjbGVhciwgbGlrZSBvdGhlciBwbGF0Zm9ybXMgZG8uCisKKzIwMDMtMDMtMDQgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckByZWRoYXQuY29tPgorCisJKiBtZW0uYyBbTElOVVhdIChzeXNfcmVtYXBfZmlsZV9wYWdlcyk6IE5ldyBmdW5jdGlvbi4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGVjbGFyZSBpdC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIGl0LgorCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IExpa2V3aXNlLgorCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Z1dGV4KTogT21pdCBmaW5hbCBpZiBvcCBpcyBub3QgRlVURVhfV0FJVC4KKworMjAwMy0wMi0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjOiBGaXggdHlwbyBpbiBuZXRpbmV0L2luLmggY2hlY2suCisJQWxzbyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4gYW5kIDxzeXMvc29ja2V0Lmg+IGJlZm9yZSA8bmV0aW5ldC9pbi5oPi4KKwlSZXBvcnRlZCBieSBBbGV4IFNlbWVueWFrYSA8YWxleHNAc25hcmsucmluZXQucnU+LgorCisyMDAzLTAyLTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWd1cmUuYWMsIE5FV1M6IFZlcnNpb24gNC40Ljk1LgorCSogc3RyYWNlLnNwZWMsIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45NS0xLgorCisJKiBwcm9jZXNzLmMgKHN5c19nZXRyZXNnaWQpOiBGaXggdHlwb3MgaW4gYXJndW1lbnQgYWNjZXNzLgorCisyMDAzLTAyLTIzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBwcm9jZXNzLmMgKHN5c19nZXRyZXN1aWQpOiBGaXggdHlwb3MgaW4gYXJndW1lbnQgYWNjZXNzLgorCVJlcG9ydGVkIGJ5IEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPi4KKworMjAwMy0wMi0xOSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45NC4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTQtMS4KKworCSogdmVyc2lvbi5jOiBSZW1vdmVkLgorCSogTWFrZWZpbGUuYW0gKHN0cmFjZV9TT1VSQ0VTKTogUmVtb3ZlIGl0LgorCSogc3RyYWNlLmM6IFVzZSBQQUNLQUdFX05BTUUgYW5kIFZFUlNJT04gbWFjcm9zIGluc3RlYWQgb2YgdmVyc2lvbiB2YXIuCisKKwlGcmVlQlNEIHJmb3JrIHN1cHBvcnQgY2hhbmdlcyBmcm9tIFJ1c3MgQ294IDxyc2NAcGxhbjkuYmVsbC1sYWJzLmNvbT46CisJKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBIYW5kbGUgU1lTX3Jmb3JrIHdpdGggaW50ZXJuYWxfZm9yay4KKwkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfZm9yaykgW1NZU19yZm9ya106IEJhaWwgaWYgUkZQUk9DIGZsYWcgbm90IHNldC4KKworMjAwMy0wMS0yMyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogc2lnbmFsLmM6IFJlb3JkZXIgI2lmZGVmcyBzbyBIQVZFX0FTTV9TSUdDT05URVhUX0ggZG9lc24ndCBtYXR0ZXIgb24KKwlTUEFSQywgd2hpY2ggZG9lc24ndCB1c2UgdGhlIGhlYWRlciByZWdhcmRsZXNzLgorCisJKiB1dGlsLmMgW0xJTlVYICYmIFNQQVJDXTogRG8gcmVuYW1pbmcga2x1ZGdlcyBhcm91bmQgPGFzbS9yZWcuaD4KKwlsaWtlIHNpZ25hbC5jIGRvZXMuCisKKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaDogRGVjbGFyZSBzeXNfZ2V0ZGVudHM2NCwgc3lzX2xsc2Vlay4KKworCSogbGludXgvZHVtbXkuaCBbISBTWVNfZ2V0cG1zZ10gKHN5c19nZXRwbXNnKTogI2RlZmluZSB0byBwcmludGFyZ3MuCisJWyEgU1lTX3B1dHBtc2ddIChzeXNfcHV0cG1zZyk6IExpa2V3aXNlLgorCisJKiBwcm9jZXNzLmM6IFJlb3JkZXIgaW5jbHVkZXMgdG8gcHV0IHN5cy9yZWcuaCBiZWZvcmUgbGludXgvcHRyYWNlLmgsCisJc2luY2UgdGhleSBjYW4gY29uZmxpY3QuCisKKzIwMDMtMDEtMjEgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN0cmFjZS5jICh1c2FnZSk6IE9taXQgLXosIHNpbmNlIGl0IGhhcyBuZXZlciB3b3JrZWQgcHJvcGVybHkuCisJKiBORVdTOiBMaWtld2lzZS4KKworCSogc3RyYWNlLmMgKG1haW4pOiBHcm9rIG5ldyBvcHRpb24gYC1FIHZhcj12YWwnIG9yIGAtRSB2YXInIHRvIHB1dAorCXZhcj12YWwgaW4gZW52aXJvbiBvciB0byByZW1vdmUgdmFyLCByZXNwZWN0aXZlbHkuCisJKHVzYWdlKTogTWVudGlvbiBpdC4KKwkqIHN0cmFjZS4xLCBORVdTOiBEb2N1bWVudCBpdC4KKworCSogY29uZmlndXJlLmFjLCBORVdTOiBWZXJzaW9uIDQuNC45My4KKwkqIHN0cmFjZS5zcGVjLCBkZWJpYW4vY2hhbmdlbG9nOiA0LjQuOTMtMS4KKwkqIHN0cmFjZS5zcGVjIChTb3VyY2UwKTogVXNlIHN0cmFjZS1WRVJTSU9OLnRhci5iejIgbm93LgorCisyMDAzLTAxLTIwICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBkZWZzLmggW0xJTlVYXSBbUzM5MCB8fCBTMzkwWF0gKFRDQl9XQUlURVhFQ1ZFKTogRGVmaW5lIGl0LgorCSogc3lzY2FsbC5jIChnZXRfc2Nubywgc3lzY2FsbF9maXh1cCkgW0xJTlVYXSBbUzM5MCB8fCBTMzkwWF06IEhhbmRsZQorCVRDQl9XQUlURVhFQ1ZFIHN0YXRlIHdpdGggc3BlY2lhbCBrbHVkZ2VzLgorCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAoc3lzX2Nsb25lKSBbUzM5MCB8fCBTMzkwWF06IEFyZ3VtZW50IG9yZGVyIGlzCisJcmV2ZXJzZWQgZnJvbSBvdGhlciBhcmNoaXRlY3R1cmVzLgorCisJKiBwcm9jZXNzLmMgKHN5c19leGVjdmUpIFtMSU5VWF06IE1ha2Ugc2V0dGluZyBUQ0JfV0FJVEVYRUNWRSBmbGFnCisJY29uZGl0aW9uYWwgb24gW1RDQl9XQUlURVhFQ1ZFXSBpbnN0ZWFkIG9mIGxpc3Qgb2YgcHJvY2Vzc29ycy4KKworCSogdXRpbC5jIChyZXN0b3JlX2FyZzApOiBFdmFsdWF0ZSBhcmdzIGluIG5vLW9wIGRlZm5zLgorCisJKiB1dGlsLmMgW1MzOTAgfHwgUzM5MFhdIChhcmcwX29mZnNldCwgYXJnMV9vZmZzZXQpOiBGaXggZGVmaW5pdGlvbnMKKwlmb3IgY2xvbmUgY2FsbCBvbiBTMzkwLiAgRnJvbSBNaWNoYWVsIEhvbHpoZXUgPGhvbHpoZXVAZGUuaWJtLmNvbT4uCisKKzIwMDMtMDEtMTcgIEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPgorCisJKiB1dGlsLmMgW0xJTlVYXSAoc2V0YnB0KTogSGFuZGxlIFNZU192Zm9yayBsaWtlIFNZU19mb3JrLgorCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IDI1NiBhbHNvIGZvciBQT1dFUlBDLgorCisyMDAzLTAxLTE0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBsaW51eC9wb3dlcnBjL2Vycm5vZW50Lmg6IEFkZCBtaXNzaW5nIGVycm5vcy4KKwkqIGxpbnV4L3Bvd2VycGMvaW9jdGxlbnQuaDogVXBkYXRlIGlvY3RsIHZhbHVlcy4KKwlGcm9tIEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPi4KKworCSogaW8uYyBbTElOVVhdIChzeXNfcHJlYWQsIHN5c19wd3JpdGUpOiBGaXggbGFzdCBjaGFuZ2UuCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBVc2Ugc3lzX2dldGRlbnRzNjQsIHN5c190cnVuY2F0ZTY0LAorCXN5c19mdHJ1bmNhdGU2NCwgaW5zdGVhZCBvZiBwcmludGFyZ3MsIGZvciB0aG9zZSBzeXNjYWxscy4KKwkqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaDogTGlrZXdpc2UuCisKKwkqIGxpbnV4L3N5c2NhbGwuaCAoU1lTX3NvY2tldF9zdWJjYWxsKTogT25seSAyNTYgZm9yIFMzOTAsIFMzOTBYLgorCUFsbCBvdGhlcnMgYXQgdGhlIG1vbWVudCB1c2UgbGludXgvc3lzY2FsbGVudC5oLCB3aGVyZSBpdCdzIDMwMC4KKworCSogc3RyYWNlLjE6IFVwZGF0ZSBidWcgcmVwb3J0aW5nIGluZm8uCisKKwkqIHJlc291cmNlLmMgW0xJTlVYXSAocXVvdGFjbWRzKTogR3JvayBuZXcgY29tbWFuZCBlbmNvZGluZ3MuCisJRnJvbSBOYXRoYW4gU2NvdHQgPG5hdGhhbnNAZGViaWFuLm9yZz4uCisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTIuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40LjkyLTEuCisKKwkqIGNvbmZpZ3VyZS5hYzogTWF0Y2ggcG93ZXJwYyogKGluY2x1ZGVzIHBvd2VycGM2NCksIGFuZCBkb24ndCBtYXRjaAorCXBwYyAobmV2ZXIgY29tZXMgb3V0IG9mIGNvbmZpZy5zdWIpLgorCisJKiBwcm9jZXNzLmMgKHN5c19wdHJhY2UpOiBVc2UgI2x4IGZvcm1hdCBmb3IgYWRkcmVzcyBhcmd1bWVudC4KKwlbUE9XRVJQQ106IFVzZSBzaXplb2YodW5zaWduZWQgbG9uZykgaW4gcGxhY2Ugb2YgNCBmb3IgbXVsdGlwbGllcnMuCisJKiBwcm9jZXNzLmMgW1BPV0VSUENdOiBMaWtld2lzZS4KKwkqIHNpZ25hbC5jIChzeXNfc2lncmV0dXJuKSBbUE9XRVJQQ106IExpa2V3aXNlLgorCSogc3lzY2FsbC5jIChnZXRfc2NubykgW1BPV0VSUENdOiBMaWtld2lzZS4KKwkqIHV0aWwuYyBbUE9XRVJQQ106IExpa2V3aXNlLgorCShwcmludG51bSk6IFVzZSBsb25nIGZvciBOVU0uCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIGRlZnMuaCAoQUxJR042NCk6IEZpeCBkZWZuIGZvciBQUEMsIHNhbWUgYXMgRnJlZUJTRCBvbmUuCisKKwkqIHV0aWwuYyBbTElOVVhdIChyZXN0b3JlX2FyZzAsIHJlc3RvcmVfYXJnMSk6IE5ldyBtYWNyb3MsIGRlZmluZWQKKwlhcHByb3ByaWF0ZWx5IHZpYSBzZXRfYXJnMCBvciBuby1vcHMgZm9yIGVhY2ggYXJjaGl0ZWN0dXJlLgorCShjbGVhcmJwdCk6IFVzZSB0aG9zZSBpbnN0ZWFkIG9mIHNldF9hcmcwIGFuZCBzZXRfYXJnMS4KKworCSogZGVmcy5oIFtfTEFSR0VGSUxFNjRfU09VUkNFXSAoX0xGUzY0X0xBUkdFRklMRSk6IERlZmluZSBpdC4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXNlIHN5c19nZXRkZW50czY0LCBzeXNfdHJ1bmNhdGU2NCwKKwlzeXNfZnRydW5jYXRlNjQsIGluc3RlYWQgb2YgcHJpbnRhcmdzLCBmb3IgdGhvc2Ugc3lzY2FsbHMuCisKKwkqIHByb2Nlc3MuYzogVXNlIDxsaW51eC9wdHJhY2UuaD4gcmVnYXJkbGVzcyBvZiA8c3lzL3JlZy5oPi4KKwkoc3lzX3B0cmFjZSk6IFVzZSBwcmludHh2YWwuCisJKHB0cmFjZV9jbWRzKTogTWFrZSBQVFJBQ0VfR0VUUkVHUyBldCBhbCBjb25kaXRpb25hbCBvbiAjaWZkZWYgUFRSQUNFXyoKKwlpbnN0ZWFkIG9mIG9ubHkgI2lmZGVmIFNVTk9TNC4gIEFkZCBQVFJBQ0VfW0dTXUVURlBYUkVHUy4KKworCSogaXBjLmMgKFBSSU5UQ1RMKTogTmV3IG1hY3JvLiAgI2lmZGVmIElQQ182NCwgZmFjdG9yIG91dCB0aGUgZmxhZyBhbmQKKwlwcmludCBpdCBiZWZvcmUgdXNpbmcgcHJpbnR4dmFsLgorCShzeXNfbXNnY3RsLCBzeXNfc2VtY3RsLCBzeXNfc2htY3RsKTogVXNlIGl0LgorCisyMDAzLTAxLTEzICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWcuZ3Vlc3M6IFVwZGF0ZSBmcm9tIGZ0cDovL2Z0cC5nbnUub3JnL3B1Yi9nbnUvY29uZmlnLywKKwl0aW1lc3RhbXAgMjAwMy0wMS0xMC4KKwkqIGNvbmZpZy5zdWI6IExpa2V3aXNlLCB0aW1lc3RhbXAgMjAwMy0wMS0wMy4KKwkqIGluc3RhbGwtc2g6IFVwZGF0ZSBmcm9tIEF1dG9tYWtlIDEuNy4yLgorCisJKiBsaW51eC9wb3dlcnBjL3NpZ25hbGVudC5oOiBBZGQgU0lHUlRNSU4uCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBBZGQgbWlzc2luZyBzeXN0ZW0gY2FsbHMuCisJRGVjb2RlIG1vcmUgc3lzdGVtIGNhbGxzLCB3ZSB3ZXJlIGp1c3QgcHJpbnRhcmdzIGZvciBtYW55IHRoaW5ncy4KKwlSZW1vdmUgc29tZSB4ODYtc3BlY2lmaWMgc3lzdGVtIGNhbGxzLgorCVJlbW92ZSB0d28gc3lzY2FsbHMgYmV0d2VlbiB0aGUgc29ja2V0IGFuZCBpcGMgc3lzY2FsbHMsCisJaXQgd2FzIHJlc3VsdGluZyBpbiBhbGwgSVBDIHN5c2NhbGxzIGJlaW5nIG9mZiBieSB0d28uCisKKwkqIGlvY3RsLmMgKGlvY3RsX2RlY29kZSkgW1BPV0VSUENdOiBEZWNvZGUgdGVybSBpb2N0bHMgbGlrZSBBbHBoYS4KKwlGcm9tIEFudG9uIEJsYW5jaGFyZCA8YW50b25Ac2FtYmEub3JnPi4KKworCSogZGVmcy5oIFtQT1dFUlBDXSAoVUVTUCwgRUlQLCBFQVgsIE9SSUdfRUFYKTogUmVtb3ZlIHRoaXMgY3J1ZnQuCisJW0xJTlVYICYmIFBPV0VSUEMgJiYgIV9fcG93ZXJwYzY0X19dIChBTElHTjY0KTogTmV3IG1hY3JvLgorCSogaW8uYyAoc3lzX3ByZWFkLCBzeXNfcHdyaXRlKTogVXNlIEFMSUdONjQuCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIHRlcm0uYyBbTElOVVhdOiBHZXQga2VybmVsIGRlZmluaXRpb24gb2Ygc3RydWN0IHRlcm1pb3MuCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIGxpbnV4L2lvY3RsZW50LnNoOiBMb29rIGluIHNvdW5kLyBkaXJlY3RvcnkgdG9vLgorCUZyb20gQW50b24gQmxhbmNoYXJkIDxhbnRvbkBzYW1iYS5vcmc+LgorCisJKiBkZXNjLmMgKHByaW50ZmxvY2s2NCk6IEZpeCBBRERSIGFyZ3VtZW50IHR5cGUuCisJRnJvbSBBbnRvbiBCbGFuY2hhcmQgPGFudG9uQHNhbWJhLm9yZz4uCisKKwkqIHN0cmFjZS5jIFshIEhBVkVfU1RSU0lHTkFMXTogQ2xlYW4gdXAgI2lmZGVmcyBvbiBkZWNscyBmb3IKKwlzeXNfc2lnbGlzdCBhbmQgX3N5c19zaWdsaXN0LgorCVJlcG9ydGVkIGJ5IEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4uCisKKwkqIG5ldC5jOiBIQVZFX09QVEhEUiAtPiBIQVZFX1NUUlVDVF9PUFRIRFIKKwlSZXBvcnRlZCBieSBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+LgorCisJKiBsaW51eC9zeXNjYWxsLmggW0FSTV0gKFNZU19zb2NrZXRfc3ViY2FsbCk6IFNldCB0byAzMDAuCisKKzIwMDMtMDEtMTAgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTkVXUzogVmVyc2lvbiA0LjQuOTEuCisJKiBzdHJhY2Uuc3BlYywgZGViaWFuL2NoYW5nZWxvZzogNC40LjkxLTEKKworCSogdXRpbC5jIFtMSU5VWCAmJiBYODZfNjRdIChhcmcwX29mZnNldCwgYXJnMV9vZmZzZXQpOiBVc2UgY29ycmVjdAorCXZhbHVlcyBmb3IgeDg2LTY0LCBjb25kaXRpb25hbCBvbiBjdXJyZW50X3BlcnNvbmFsaXR5LgorCisJKiBzdHJhY2UuYyAoZHJvcHRjYik6IENsZWFyIGZsYWdzIHdvcmQgYmVmb3JlIGNhbGxpbmcgcmVidWlsZF9wb2xsdi4KKworCSogY29uZmlndXJlLmFjOiBDaGVjayBzdHJ1Y3QgVF9jb25uX3JlcyBmb3IgUVVFVUVfcHRyIG9yIEFDQ0VQVE9SX2lkLgorCSogc3RyZWFtLmMgKHByaW50X3RyYW5zcG9ydF9tZXNzYWdlKTogVXNlICNpZmRlZnMgZm9yIHRob3NlIG1lbWJlcnMuCisKKwkqIHN0cmFjZS5jIChyZWJ1aWxkX3BvbGx2KTogRml4IHR5cG86IHN0cnVjdCBwb2xsIC0+IHN0cnVjdCBwb2xsZmQuCisKKwkqIGNvbmZpZ3VyZS5hYzogRml4IHNpZ2luZm9fdC9zaWdfYXRvbWljX3QgY2hlY2tzLgorCVVzZSBwcmVyZXF1aXNpdGUgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gZm9yIG5ldGluZXQvKi5oIGNoZWNrcy4KKworCSogc3RyYWNlLmMgKHBmZDJ0Y2IpOiBGaXggZm9yIG5ldyB0Y2J0YWIgdHlwZS4KKwkocmVidWlsZF9wb2xsdik6IExpa2V3aXNlLgorCShkZXRhY2gpOiBQdXQgdmFyaWFibGVzIHVzZWQgdW5kZXIgW0xJTlVYXSBpbnNpZGUgI2lmZGVmLgorCisJKiBwcm9jZXNzLmMgKGNoYW5nZV9zeXNjYWxsKSBbUE9XRVJQQ106IEFkZCBtaXNzaW5nIHJldHVybi4KKwkqIHV0aWwuYyBbUE9XRVJQQ10gKGFyZzBfb2Zmc2V0KTogU2V0IHRvIDQqUFRfUjMsIG5vdCA0KlBUX09SSUdfUjMuCisKKwkqIHN0cmFjZS5zcGVjOiBOZXcgZmlsZS4KKwkqIGRlYmlhbi9jaGFuZ2Vsb2c6IDQuNC45MC0xCisJKiBkZWJpYW4vcnVsZXMgKGJpbmFyeS1hcmNoKTogRGVwZW5kIG9uIGJ1aWxkLgorCShjbGVhbik6IERvbid0IHRyeSB0byBydW4gTWFrZWZpbGUuaW4uCisJKiBkZWJpYW4vY29udHJvbCAoU3RhbmRhcmRzLVZlcnNpb24pOiBOb3cgMy41LjguCisKKwkqIGNvbmZpZ3VyZS5hYzogRGlkZGxlIENGTEFHUyBhZnRlciBBQ19QUk9HX0NDLCBub3QgYmVmb3JlLgorCisyMDAzLTAxLTA5ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzeXNjYWxsLmMgKGZvcmNlX3Jlc3VsdCkgW1MzOTAgfHwgUzM5MFhdOiBGaXggdHlwby4KKworCSogZGViaWFuL2NvbnRyb2w6IFVwZGF0ZSBNYWludGFpbmVyOiBmaWVsZC4KKworMjAwMy0wMS0wOCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogTkVXUzogVXBkYXRlIGZvciA0LjQuOTAgdGVzdCByZWxlYXNlLgorCisJU3VwcG9ydCBmb3IgbmV3IExpbnV4IDIuNSB0aHJlYWQgZmVhdHVyZXMuCisJKiBkZWZzLmggW0xJTlVYXTogRGVmaW5lIF9fTlJfZXhpdF9ncm91cCBpZiBub3QgZGVmaW5lZC4KKwkoc3RydWN0IHRjYik6IE5ldyBtZW1iZXJzIG5jbG9uZV90aHJlYWRzLCBuY2xvbmVfZGV0YWNoZWQsCisJYW5kIG5jbG9uZV93YWl0aW5nLgorCShUQ0JfQ0xPTkVfREVUQUNIRUQsIFRDQl9DTE9ORV9USFJFQUQsIFRDQl9HUk9VUF9FWElUSU5HKTogTmV3IG1hY3Jvcy4KKwkod2FpdGluZ19wYXJlbnQpOiBNYWNybyByZW1vdmVkLgorCShwaWQydGNiKTogRGVjbGFyZSBpdC4KKwkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfY2xvbmUpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogUmVwYXJlbnQgdGhlIG5ldworCWNoaWxkIHRvIG91ciBwYXJlbnQgaWYgd2UgYXJlIGEgQ0xPTkVfVEhSRUFEIGNoaWxkIG91cnNlbHZlcy4KKwlNYWludGFpbiBUQ0JfQ0xPTkVfVEhSRUFEIGFuZCBUQ0JfQ0xPTkVfREVUQUNIRUQgZmxhZ3MgYW5kIGNvdW50cy4KKwkoaW50ZXJuYWxfd2FpdCkgW1RDQl9DTE9ORV9USFJFQURdOiBGYWN0b3Igb3V0IGRldGFjaGVkIGNoaWxkcmVuIHdoZW4KKwlkZXRlcm1pbmluZyBpZiB3ZSBoYXZlIGFueS4gIElmIFRDQl9DTE9ORV9USFJFQUQgaXMgc2V0LCBjaGVjaworCXBhcmVudCdzIGNoaWxkcmVuIGluc3RlYWQgb2Ygb3VyIG93biwgYW5kIGJ1bXAgbmNsb25lX3dhaXRpbmcgY291bnQuCisJKGludGVybmFsX2V4aXQpIFtfX05SX2V4aXRfZ3JvdXBdOiBTZXQgdGhlIFRDQl9HUk9VUF9FWElUSU5HIGZsYWcgaWYKKwl0aGUgc3lzY2FsbCB3YXMgZXhpdF9ncm91cC4KKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IFVzZSBpbnRlcm5hbF9leGl0IGZvciBleGl0X2dyb3VwLgorCSogc3RyYWNlLmMgKHBpZDJ0Y2IpOiBObyBsb25nZXIgc3RhdGljLgorCShhbGxvY3RjYikgW1RDQl9DTE9ORV9USFJFQURdOiBJbml0aWFsaXplIG5ldyBmaWVsZHMuCisJKGRyb3B0Y2IpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogTWFpbnRhaW4gbmV3IGZpZWxkcy4KKwlJZiB3ZSBoYXZlIHRocmVhZCBjaGlsZHJlbiwgc2V0IFRDQl9FWElUSU5HIGFuZCBkb24ndCBjbGVhciB0aGUgVENCLgorCShyZXN1bWUpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogRGVjcmVtZW50IHBhcmVudCdzIG5jbG9uZV93YWl0aW5nLgorCShkZXRhY2gpIFtUQ0JfQ0xPTkVfVEhSRUFEXTogV2hlbiBjYWxsaW5nIHJlc3VtZSwgY2hlY2sgYWxsIHRocmVhZAorCWNoaWxkcmVuIG9mIG91ciBwYXJlbnQgdGhhdCBtaWdodCBiZSB3YWl0aW5nIGZvciB1cyB0b28uCisJW1RDQl9HUk9VUF9FWElUSU5HXSAoaGFuZGxlX2dyb3VwX2V4aXQpOiBOZXcgZnVuY3Rpb24uCisJKHRyYWNlKSBbVENCX0dST1VQX0VYSVRJTkddOiBVc2UgdGhhdCBpbiBwbGFjZSBvZiBkZXRhY2ggb3IgZHJvcHRjYi4KKworCVJldmFtcCAtZiBzdXBwb3J0IGZvciBMaW51eC4KKwkqIHV0aWwuYyBbTElOVVhdIChzZXRicHQsIGNsZWFyYnB0KTogTmV3IGltcGxlbWVudGF0aW9ucyB0aGF0IHR3ZWFrCisJdGhlIHN5c3RlbSBjYWxsIHRvIGJlIGNsb25lIHdpdGggQ0xPTkVfUFRSQUNFIHNldC4gIFZhcmlvdXMgbmV3IHN0YXRpYworCWhlbHBlciBmdW5jdGlvbnMuCisJKiBwcm9jZXNzLmMgKGludGVybmFsX2Nsb25lKTogRGVmaW5lIGFsc28gI2lmZGVmIFNZU19jbG9uZTIuCisJSW5pdGlhbGl6ZSBUQ1BDSElMRC0+cGFyZW50IGZpZWxkLgorCVtDTE9ORV9QVFJBQ0VdOiBEb24ndCBkbyBQVFJBQ0VfQVRUQUNIIGhlcmUsIGJlY2F1c2UgaXQncyBwcmVhdHRhY2hlZC4KKwlDaGVjayBpbiBjYXNlIHRoZSBuZXcgY2hpbGQgaXMgaW4gdGhlIHRjYiBhbHJlYWR5LgorCShpbnRlcm5hbF9mb3JrKSBbTElOVVhdOiBKdXN0IGNhbGwgaW50ZXJuYWxfY2xvbmUuCisJKiBzdHJhY2UuYyAodHJhY2UpIFtMSU5VWF06IFVuZGVyIC1mLy1GLCBncm9rIGFuIHVua25vd24gcGlkCisJcmVwb3J0aW5nIHRvIHdhaXQsIHB1dCBpdCBpbiB0aGUgVENCIHdpdGggVENCX0FUVEFDSEVEfFRDQl9TVVNQRU5ERUQuCisKKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50MS5oIChzeXNfb2xkbHN0YXQpOiAjZGVmaW5lIGFzIHByaW50YXJncy4KKworCSogZmlsZS5jIFtMSU5VWF06ICN1bmRlZiBzdF9bYW1jXXRpbWUgaW4gY2FzZSB0aGV5IGFyZSBtYWNyb3MuCisKKwkqIE1ha2VmaWxlLmFtIChBTV9DRkxBR1MpOiBOZXcgdmFyaWFibGUsIGRlZmluZSB0byAkKFdBUk5GTEFHUykuCisKKwkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogUmVtb3ZlIGRlYmlhbi9wb3N0aW5zdCBhbmQgZGViaWFuL3ByZXJtLgorCisyMDAzLTAxLTA5ICBXaWNoZXJ0IEFra2VybWFuICA8d2ljaGVydEBkZWVwaGFja21vZGUub3JnPgorCisJKiBkZWJpYW4vcG9zdGluc3QsIGRlYmlhbi9wcmVybTogcmVtb3ZlZCwgL3Vzci9kb2Mgc3ltbGluayBpcyBubworCWxvbmdlciB1c2VkCisJKiBkZWJpYW4vcnVsZXM6IG5vIGxvbmdlciBpbnN0YWxsIHBvc3RpbnN0IGFuZCBwcmVybQorCSogZGViaWFuL2NvbnRyb2w6IGRvIG5vdCBlbmQgc3VtbWFyeSB3aXRoIGZ1bGwgc3RvcCAobGludGlhbikKKworMjAwMi0xMi0zMCAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogTWFrZWZpbGUuYW0gKGJpbl9TQ1JJUFRTKTogTmV3IHZhcmlhYmxlLCBsaXN0IHN0cmFjZS1ncmFwaC4KKwkoRVhUUkFfRElTVCk6IEFkZCBtaXNzaW5nIGZpbGVzLgorCisJKiBjb25maWd1cmUuYWM6IEZpeCBhc20vc2lnY29udGV4dC5oIGNoZWNrIHRvIGluY2x1ZGUgcHJlcmVxdWlzaXRlLgorCisJKiBzeXNjYWxsLmMgKHF1YWxpZnlfb25lKTogTmV3IGZ1bmN0aW9uLgorCShxdWFsX29wdGlvbnMpOiBSZXBsYWNlIGxvb2t1cCBmaWVsZCB3aXRoIHF1YWxpZnksIHVwZGF0ZSBpbml0aWFsaXplci4KKwkocXVhbGlmeSk6IFVwZGF0ZSBjYWxsZXIuCisJKHF1YWxfc2lnbmFsLCBxdWFsX2ZhdWx0LCBxdWFsX2Rlc2MpOiBSZXdyaXR0ZW4gZnJvbSBsb29rdXBfKi4KKwkocXVhbF9zeXNjYWxsKTogUmV3cml0dGVuIGxvb2t1cF9zeXNjYWxsLCBtYXRjaCBuYW1lIG1vcmUgdGhhbiBvbmNlLgorCUZpeGVzIFJIIzcwNTc5LCBiaXRlcyBJQTY0IC1lZm9vIHdoZW4gZm9vIGV4aXN0cyBvbiBJQTMyLgorCisJKiB2ZXJzaW9uLmMgKHZlcnNpb24pOiBNYWtlIGNvbnN0LCBidW1wIHRvIDQuNC45MC4KKwkqIHN0cmFjZS5jOiBVcGRhdGUgZGVjbC4KKworCSogTWFrZWZpbGUuYW0gW0xJTlVYICYmIFg4Nl82NF06IFJlbW92ZSBjcnVmdC4KKwkqIGxpbnV4L3g4Nl82NC9lcnJub2VudDEuaDogTmV3IGZpbGUuCisJKiBsaW51eC94ODZfNjQvaW9jdGxlbnQxLmg6IE5ldyBmaWxlLgorCSogbGludXgveDg2XzY0L3NpZ25hbGVudDEuaDogTmV3IGZpbGUuCisJKiBsaW51eC94ODZfNjQvc3lzY2FsbGVudDEuaDogTmV3IGZpbGUuCisJKiBsaW51eC94ODZfNjQvaTM4Ni1oZWFkZXJzLmRpZmY6IEZpbGUgcmVtb3ZlZC4KKwkqIGxpbnV4L3g4Nl82NC9tYWtlaGVhZGVycy5zaDogRmlsZSByZW1vdmVkLgorCSogbGludXgveDg2XzY0L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaCBbWDg2XzY0XTogRGlzYWJsZSBzYW5pdHkgY2hlY2tzLCBzdWJjYWxsIHN0dWZmIGlzCisJYWxyZWFkeSBicm9rZW4gZm9yIDMyLWJpdCBwZXJzb25hbGl0eSBvbiB4ODYtNjQuCisKKzIwMDItMTItMjkgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYywgTWFrZWZpbGUuYW06IFB1bnQgc3ViZGlycywgaGFuZGxlIGV2ZXJ5dGhpbmcgaGVyZS4KKwkqIGxpbnV4L01ha2VmaWxlLmFtOiBGaWxlIHJlbW92ZWQuCisJKiBmcmVlYnNkL01ha2VmaWxlLmFtOiBGaWxlIHJlbW92ZWQuCisJKiBzdW5vczQvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIHN2cjQvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKworCSogbGludXgvYWxwaGEvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIGxpbnV4L2hwcGEvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIGxpbnV4L2lhNjQvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIGxpbnV4L3Bvd2VycGMvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIGxpbnV4L3MzOTAvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIGxpbnV4L3MzOTB4L01ha2VmaWxlLmluOiBGaWxlIHJlbW92ZWQuCisKKzIwMDItMTItMjYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQHJlZGhhdC5jb20+CisKKwkqIHN5c2NhbGxlbnQuc2g6IEdyb2sgdGhyZWUgZmxhdm9ycyBvZiAjZGVmaW5lIGxpbmUsIHVuaXF1aWZ5LgorCSogbGludXgvaHBwYS9zeXNjYWxsZW50LnNoOiBGaWxlIHJlbW92ZWQuCisJKiBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuc2g6IEZpbGUgcmVtb3ZlZC4KKworCSogbGludXgvTWFrZWZpbGUuYW06IE5ldyBmaWxlLgorCSogbGludXgvTWFrZWZpbGUuaW46IEZpbGUgcmVtb3ZlZC4KKwkqIGZyZWVic2QvTWFrZWZpbGUuYW06IE5ldyBmaWxlLgorCSogZnJlZWJzZC9pMzg2L01ha2VmaWxlLmFtOiBOZXcgZmlsZS4KKwkqIGZyZWVic2QvaTM4Ni9NYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgorCisyMDAyLTEyLTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJVXBkYXRlIHRvIEF1dG9jb25mIDIuNTcsIGFuZCBBdXRvbWFraWZ5IHdpdGggdmVyc2lvbiAxLjcuCisJKiBNYWtlZmlsZS5hbTogTmV3IGZpbGUuCisJKiBNYWtlZmlsZS5pbjogRmlsZSByZW1vdmVkLgorCSogY29uZmlndXJlLmluOiBNb3ZlZCB0byAuLi4KKwkqIGNvbmZpZ3VyZS5hYzogLi4uIGhlcmUuICBVcGRhdGUgZm9yIEF1dG9jb25mIDIuNXggYW5kIEF1dG9tYWtlLgorCSogYWNsb2NhbC5tNDogTW92ZWQgdG8gLi4uCisJKiBhY2luY2x1ZGUubTQ6IC4uLiBoZXJlLiAgVXBkYXRlIGZvciBBdXRvY29uZiAyLjV4LgorCSogYWNjb25maWcuaDogRmlsZSByZW1vdmVkLgorCSogQVVUSE9SUzogTmV3IGZpbGUsIG1ha2VzIGF1dG9tYWtlIGhhcHB5LgorCSogYXV0b2dlbi5zaDogRmlsZSByZW1vdmVkLgorCSogUkVBRE1FLUNWUzogVXBkYXRlIHRvIHJlY29tbWVuZCBhdXRvcmVjb25mIGluc3RlYWQuCisJKiBmaWxlLmM6IEhBVkVfU1RfKiAtPiBIQVZFX1NUUlVDVF9TVEFUX1NUXyouCisJKiBuZXQuYzogSEFWRV9TSU42X1NDT1BFX0lEIC0+IEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lELAorCUhBVkVfTVNHX0NPTlRST0wgLT4gSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MLgorCSogc3RyYWNlLmM6ICpfREVDTEFSRUQgLT4gSEFWRV9ERUNMXyoKKwkqIHN0cmVhbS5jOiBIQVZFXyogLT4gSEFWRV9TVFJVQ1RfKgorCisJKiBsaW51eC9NYWtlZmlsZS5pbiAoaW9jdGxkZWZzLmggaW9jdGxzLmgpOiBVc2UgJChTSEVMTCkgaW5zdGVhZCBvZgorCXNoLCBhbmQgdXNlICQoc3JjZGlyKSB0byBmaW5kIHRoZSBzY3JpcHQuCisJKiBsaW51eC9wb3dlcnBjL01ha2VmaWxlLmluIChpb2N0bGVudC5yYXcpOiBGaW5kIGlvY3RsZW50LnNoIGluIC4uLy4KKwkoaW9jdGxzb3J0Lm8pOiBVc2UgLi4vaW9jdGxzb3J0LmMsIG5vdCAuLi8uLi9pb2N0bHNvcnQuYy4KKwkqIGxpbnV4L3g4Nl82NC9NYWtlZmlsZS5pbiAoaGVhZGVycyk6IFJlbmFtZWQgdG8gYWxsLgorCSogbGludXgvYWxwaGEvTWFrZWZpbGUuaW46IEFkZCBlbXB0eSBpbnN0YWxsIHRhcmdldC4KKwkqIGxpbnV4L3g4Nl82NC9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCisJKiBsaW51eC9wb3dlcnBjL01ha2VmaWxlLmluOiBMaWtld2lzZS4KKwkqIGxpbnV4L01ha2VmaWxlLmluOiBMaWtld2lzZS4KKworMjAwMi0xMi0yNiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogZGVmcy5oIFtMSU5VWCAmJiBNSVBTXSAoTUFYX1FVQUxTKTogU2V0IHRvIDUwMDAsIG5vdCA0OTk5LgorCUZyb20gRGFuaWVsIEphY29ib3dpdHogPGRyb3dAZmFsc2Uub3JnPi4KKworMjAwMi0xMi0yMSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvc3lzY2FsbGVudC5oOiBBZGQgc29tZSBuZXcgMi41IHN5c2NhbGwgbmFtZXMuCisJTm93IGNsb25lIHRha2VzIDUgYXJncy4KKwkqIHByb2Nlc3MuYyBbTElOVVhdIChjbG9uZV9mbGFncyk6IFVwZGF0ZSB3aXRoIDIuNSBmbGFnIGJpdHMuCisJW0xJTlVYXSAoc3lzX2Nsb25lKTogUHJpbnQgbmV3IGFyZ3MuCisJKiBtZW0uYyAocHJpbnRfbGR0X2VudHJ5KTogTWFrZSBnbG9iYWwuCisKKwkqIGxpbnV4L3N5c2NhbGwuaCBbSTM4NiB8fCBJQTY0XSAoU1lTX3NvY2tldF9zdWJjYWxsKTogQnVtcCB0byAzMDAgZm9yCisJc2FmZXR5LCBzaW5jZSB1cCB0byAyNjAgYXJlIGFscmVhZHkgdXNlZCBpbiAyLjUga2VybmVscy4KKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXBkYXRlIHRoZSB0YWJsZS4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogc3lzY2FsbC5jIChmb3JjZV9yZXN1bHQpOiBOZXcgZnVuY3Rpb24uCisJKiBwcm9jZXNzLmMgKGludGVybmFsX3dhaXQpOiBIYW5kbGUgRUNISUxEIGV4aXQgZnJvbSB3YWl0IGNhbGwgd2l0aAorCVdOT0hBTkcgZmxhZyBzZXQ7IGZvcmNlIHRoZSByZXR1cm4gdmFsdWUgdG8gMCBpbiB0aGUgaW5mZXJpb3Igd2hlbiBpdAorCWhhcyBsaXZlIGNoaWxkcmVuIHdlIGFyZSB0cmFjaW5nLgorCSogTkVXUzogTWVudGlvbiB0aGUgYnVnIGZpeC4KKworMjAwMi0xMi0xNyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IFJlbW92ZSBwbGFjZWhvbGRlcnMgMjc1LTI5OCB0byBjYXRjaCB1cAorCXdpdGggbGludXgvc3lzY2FsbGVudC5oIGFkZGl0aW9ucy4KKworCSogc3RyYWNlLmMgKHRjYnRhYik6IE1ha2UgdGhpcyBhIHBvaW50ZXIgdG8gcG9pbnRlcnMsIG5vdCBhbiBhcnJheS4KKwkodGNidGFic2l6ZSk6IE5ldyB2YXJpYWJsZS4KKwkobWFpbik6IEluaXRpYWxpemUgdGhlbSB1c2luZyBkeW5hbWljIGFsbG9jYXRpb24uCisJKGFsbG9jdGNiLCBtYWluKTogVXNlIHRjYnRhYnNpemUgaW4gcGxhY2Ugb2YgTUFYX1BST0NTOyBpbmRpcmVjdC4KKwkocGlkMnRjYiwgY2xlYW51cCk6IExpa2V3aXNlLgorCVtVU0VfUFJPQ0ZTXSAocG9sbHYpOiBNYWtlIHRoaXMgYSBwb2ludGVyLCBub3QgYW4gYXJyYXk7IG1ha2Ugc3RhdGljLgorCShyZWJ1aWxkX3BvbGx2KTogRHluYW1pY2FsbHkgYWxsb2NhdGUgdGhlIHZlY3Rvci4KKwkqIGRlZnMuaCAodGNidGFiKTogVXBkYXRlIGRlY2xzLgorCShNQVhfUFJPQ1MpOiBNYWNybyByZW1vdmVkLCBubyBtb3JlIHN0YXRpYyBsaW1pdCBvbiB0aGlzLgorCSogcHJvY2Vzcy5jIChmb3JrX3RjYik6IE5ldyBmdW5jdGlvbi4KKwkoaW50ZXJuYWxfY2xvbmUsIGludGVybmFsX2ZvcmspOiBVc2UgaXQgaW5zdGVhZCBvZiBjaGVja2luZyBucHJvY3MuCisKKwkqIHN0cmFjZS5jIChkZXRhY2gpIFtMSU5VWF06IFVzZSBfX1dBTEwgKG9yIGEgc2Vjb25kIHRyeSB3aXRoIF9fV0NMT05FKQorCWluIHdhaXQgYWZ0ZXIgc2VuZGluZyBTSUdTVE9QLgorCisyMDAyLTEyLTE2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBzaWduYWwuYyAoc3ByaW50c2lnbWFzayk6IEluY3JlYXNlIHN0YXRpYyBidWZmZXIgc2l6ZSB0byBhY2NvdW50IGZvcgorCXdvcnN0IHBvc3NpYmxlIGNhc2UuICBSZXBvcnRlZCBieSBEYW5pZWwgSmFjb2Jvd2l0eiA8ZHJvd0BmYWxzZS5vcmc+LgorCisJKiBwcm9jZXNzLmMgW0xJTlVYXSAod2FpdDRfb3B0aW9ucyk6IEZpeCBfX1dDTE9ORSB2YWx1ZS4gIEFkZAorCV9fV05PVEhSRUFEIGFuZCBfX1dBTEwuCisKKwkqIHN0cmFjZS5jICh0cmFjZSkgW0xJTlVYXTogT25seSBjaGVjayBlcnJubyBpZiB3YWl0NCBhY3R1YWxseSBmYWlscywKKwlzbyB3ZSBkb24ndCByZXBlYXQgYSB3YWl0IGFuZCB0aHVzIGRyb3AgYSBzdGF0dXMuICBGaXhlcyBSSCM2MjU5MS4KKworMjAwMi0xMi0xNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KKworCSogcHJvY2Vzcy5jIChzZXRhcmcpIFtQT1dFUlBDXTogU3VwcG9ydCBpdC4KKworCSogdXRpbC5jIFtQT1dFUlBDXSAoTE9PUCk6IEZpeCB2YWx1ZSwgbm93IDB4NDgwMDAwMDAgKDA6IGIgMGIpLgorCU9sZCB2YWx1ZSB3YXMgYm9ndXMsIG5vdCBldmVuIGEgcHJvcGVyIGluc3RydWN0aW9uLgorCUZyb20gR3V5IE0uIFN0cmVldGVyIDxzdHJlZXRlckByZWRoYXQuY29tPi4KKworCSogc3RyYWNlLmMgKG1haW4pIFshIFVTRV9QUk9DRlNdOiBBbHdheXMgcmVzZXQgU0lHQ0hMRCB0byBTSUdfREZMLgorCisJKiBjb25maWd1cmUuaW46IERvbid0IGNoZWNrIGZvciBwdXRwbXNnLgorCSogc3RyZWFtLmMgKHN5c19nZXRwbXNnLCBzeXNfcHV0cG1zZyk6IE1ha2UgdGhlc2UgY29uZGl0aW9uYWwgb24KKwkjaWZkZWYgU1lTXyosIHJhdGhlciB0aGFuIG9uIEhBVkVfUFVUUE1TRy4KKworCSogYWNsb2NhbC5tNCAoQUNfU1RBVDY0KTogSW5jbHVkZSA8bGludXgvdHlwZXMuaD4gYmVmb3JlIDxhc20vc3RhdC5oPgorCWluIHRlc3QuICBUZXN0IG91ciBvd24gI2lmZGVmIExJTlVYIHJhdGhlciB0aGFuIHByZWRlZmluZWQgYGxpbnV4Jy4KKworCSogbGludXgvcG93ZXJwYy9zeXNjYWxsZW50Lmg6IFVzZSBzeXNfbGxzZWVrIGZvciBfbGxzZWVrLgorCSogbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogc3lzY2FsbC5jIChzeXNjYWxsX2VudGVyKSBbTElOVVggJiYgUE9XRVJQQ106IERlZmluZSBQVF9PUklHX1IzIGlmCisJbm90IGRlZmluZWQsIHNpbmNlIDxhc20vcHRyYWNlLmg+IGRlZmluZXMgaXQgb25seSAjaWZkZWYgX19LRVJORUxfXy4KKwkqIHByb2Nlc3MuYzogTGlrZXdpc2UuCisKKwkqIGRlc2MuYyAoc3lzX29zZl9zZWxlY3QpOiBBZGQgbWlzc2luZyByZXR1cm4gdHlwZS4KKworCSogc3lzY2FsbC5jICh0cmFjZV9zeXNjYWxsKTogVXNlIHN0cmVycm9yLCBub3Qgc3lzX2Vycmxpc3Qvc3lzX25lcnIuCisKKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBSZW1vdmUgbWFjcm9zIGZvciBzeXNfZGVsZXRlX21vZHVsZSwKKwlzeXNfbmFub3NsZWVwLCBib3RoIGFscmVhZHkgaW4gbGludXgvZHVtbXkuaC4KKworCSogc3lzY2FsbC5jIChnZXRfc2Nubyk6IE1vdmUgc3RhdGljIGBjdXJycGVycycgaW5zaWRlICNpZmRlZiBYODZfNjQuCisJKHRyYWNlX3N5c2NhbGwpOiBGaXggcmV0dXJuIHdpdGhvdXQgdmFsdWUuCisKKwkqIGxpbnV4L3N5c2NhbGxlbnQuaDogVXBkYXRlIHRhYmxlIHdpdGggbmFtZXMgb2YgbmV3IHN5c2NhbGxzCisJaW9fc2V0dXAsIGlvX2Rlc3Ryb3ksIGlvX2dldHZlbnRzLCBpb19zdWJtaXQsIGlvX2NhbmNlbC4KKwkqIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKwkqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiBMaWtld2lzZS4KKworCSogc2lnbmFsLmMgW0xJTlVYICYmIEkzODZdOiBQcm92aWRlIFNBX1JFU1RPUkVSIGNvbnN0YW50IGlmIG5vdAorCWRlZmluZWQuICBJZiB0aGUgYml0IGlzIHNldCwgcHJpbnQgdGhlIHNhX3Jlc3RvcmVyIGZpZWxkIG9mIHNpZ2FjdGlvbi4KKworCSogbWVtLmM6IEFkZCBzeXNfe2dldCxzZXR9X3RocmVhZF9hcmVhLgorCSogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHRoZW0uCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0aGUgdGFibGUgZm9yIHRoZXNlLgorCSogbGludXgvZHVtbXkuaCAoc3lzX21vZGlmeV9sZHQpOiBEZWZpbmUgb25seSAjaWZuZGVmIEkzODYuCisJKHN5c19nZXRfdGhyZWFkX2FyZWEsIHN5c19zZXRfdGhyZWFkX2FyZWEpOiBOZXcgbWFjcm9zICNpZm5kZWYgSTM4Ni4KKworCSogY29uZmlndXJlLmluOiBDaGVjayBmb3IgbGludXgveGF0dHIuaCBhbmQgbGludXgvZnV0ZXguaCBoZWFkZXJzLgorCSogbGludXgvc3lzY2FsbC5oOiBBZGQgc3lzXyogZGVjbHMgZm9yIG5ldyBzeXNjYWxscyBnZXRwbXNnLCBwdXRwbXNnLAorCXJlYWRhaGVhZCwgc2VuZGZpbGU2NCwgc2V0eGF0dHIsIGZzZXR4YXR0ciwgZ2V0eGF0dHIsIGZnZXR4YXR0ciwgaW50CisJbGlzdHhhdHRyLCBmbGlzdHhhdHRyLCByZW1vdmV4YXR0ciwgZnJlbW92ZXhhdHRyLCBzY2hlZF9zZXRhZmZpbml0eSwKKwlzY2hlZF9nZXRhZmZpbml0eSwgZnV0ZXguCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0aGUgdGFibGUuCisJKiBpby5jOiBBZGQgc3lzX3NlbmRmaWxlNjQuCisJKiBmaWxlLmM6IEFkZCBzeXNfcmVhZGFoZWFkLCBzeXNfKnhhdHRyLgorCSogcHJvY2Vzcy5jOiBBZGQgc3lzX2Z1dGV4LCBzeXNfKmFmZmluaXR5LgorCisJKiBsaW51eC9zeXNjYWxsLmggKFNZU19zb2NrZXRfc3ViY2FsbCk6IERlZmluZSB0byAyNTYgb24gYWxsIG1hY2hpbmVzLgorCShTWVNfaXBjX3N1YmNhbGwpOiBBbHdheXMgU1lTX3NvY2tldF9zdWJjYWxsICsgU1lTX3NvY2tldF9uc3ViY2FsbHMuCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IFVwZGF0ZSB0aGUgdGFibGUgZm9yIHNvY2tldCBhbmQgaXBjIHN1YmNhbGxzLgorCisyMDAyLTExLTA5ICBIZWlrbyBDYXJzdGVucyA8aGVpa28uY2Fyc3RlbnNAZGUuaWJtLmNvbT4KKworCUJ1Z2ZpeCBmb3IgczM5MC9zMzkweDoKKwkqIHN5c2NhbGwuYzogRml4ZWQgc2NubyBkZXJpdmF0aW9uIGZvciBzMzkwL3MzOTB4LgorCisyMDAyLTExLTA2ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgorCisJTWVyZ2VkIHBhdGNoIGZyb20gU3RldmVuIEouIEhpbGwgPHNqaGlsbEByZWFsaXR5ZGlsdXRlZC5jb20+CisJdG8gYWxsb3cgdGhlIGNvbXBpbGF0aW9uIG9mIGEgbmF0aXZlIE1JUFMgc3RyYWNlLgorCisyMDAyLTExLTA2ICBNaWNoYWwgTHVkdmlnICA8bWx1ZHZpZ0BzdXNlLmN6PgorCisJRnJvbSBNYXJ0eSBMZWlzbmVyIDxsZWlzbmVyQHJvY2hlc3Rlci5yci5jb20+LAorCXJld3JpdHRlbiBieSBtbHVkdmlnOgorCSogc3RyYWNlLmMgKG5vdF9mYWlsaW5nX29ubHkpOiBOZXcuCisJKHVzYWdlKTogQWRkZWQgLXogc3dpdGNoIGRlc2NyaXB0aW9uLgorCShtYWluKTogQWRkZWQgLXogc3dpdGNoIHBhcnNpbmcgdG8gbm90X2ZhaWxpbmdfb25seSB2YXJpYWJsZS4KKwkqIHN5c2NhbGwuYyAodHJhY2Vfc3lzY2FsbCk6IEFkZGVkIG5vdF9mYWlsaW5nX29ubHkgaGFuZGxpbmcuCisKKzIwMDItMTAtMDggIEhlaWtvIENhcnN0ZW5zIDxoZWlrby5jYXJzdGVuc0BkZS5pYm0uY29tPgorCisJTWlzc2luZyBjb21wbGV0ZSBjaGFuZ2Vsb2cgZm9yIDIwMDItMTAtMDcgY29tbWl0OgorCSogTWFrZWZpbGUuaW46IEFkZGVkIGxpbnV4L3MzOTAsIGxpbnV4L3MzOTB4IHRvIEFMTF9TVUJESVJTLgorCSogYWNjb25maWcuaDogTmV3IGRlZmluZSBmb3IgczM5MHguCisJKiBjb25maWcuc3ViOiBBZGRlZCBtaXNzaW5nIGRlZmluZSBmb3IgczM5MCBhbmQgbmV3IG9uZSBmb3IgczM5MHguCisJKiBjb25maWd1cmUuaW46IEFkZGVkIG5ldyBkZWZpbmUgZm9yIHMzOTB4LgorCSogZmlsZS5jOiBBZGRlZCBtaXNzaW5nICN1bmRlZiBkaXJlbnQ2NCBhbmQgbmV3IGRlZmluZXMgZm9yIHMzOTB4LgorCSogbGludXgvczM5MDogTmV3IGRpcmVjdG9yeS4KKwkqIGxpbnV4L3MzOTAvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgorCSogbGludXgvczM5MC9lcnJub2VudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3MzOTAvaW9jdGxlbnQuaDogTmV3IGZpbGUuCisJKiBsaW51eC9zMzkwL3NpZ25hbGVudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3MzOTB4OiBOZXcgZGlyZWN0b3kuCisJKiBsaW51eC9zMzkweC9NYWtlZmlsZS5pbjogTmV3IGZpbGUuCisJKiBsaW51eC9zMzkweC9lcnJub2VudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3MzOTB4L2lvY3RsZW50Lmg6IE5ldyBmaWxlLgorCSogbGludXgvczM5MHgvc2lnbmFsZW50Lmg6IE5ldyBmaWxlLgorCSogbGludXgvczM5MHgvc3lzY2FsbGVudC5oOiBOZXcgZmlsZS4KKwkqIGxpbnV4L3N5c2NhbGwuaDogQWRkZWQgc3lzX21pbmNvcmUoKSBwcm90b3R5cGUgYW5kIGFkZGVkIG5ldworCXMzOTB4IGRlZmluZXMuCisJKiBwcm9jZXNzLmM6IEFkZGVkIHMzOTB4IGRlZmluZXMuCisJKGNoYW5nZV9zeXNjYWxsKTogQ2hhbmdlZCBoYW5kbGluZyBmb3IgczM5MC4KKwkoc2V0YXJnKTogQWRkZWQgbWlzc2luZyBzMzkwL3MzOTB4IGNvZGUgaW4gc2V0YXJnKCkuCisJKiBzaWduYWwuYzogQWRkZWQgczM5MHggZGVmaW5lLgorCShzeXNfc2lncmV0dXJuKTogQnVnZml4IGluIHMzOTAvczM5MHggY29kZSAod3JvbmcgbnVtYmVyIG9mCisJYXJndW1lbnRzIHRvIHNwcmludHNpZ21hc2soKSkuCisJKiBzdHJlYW0uYyAoaW50ZXJuYWxfc3RyZWFtX2lvY3RsKTogQ2hhbmdlZCBpbnQgY2FzdCB0byBsb25nIGNhc3QsCisJc2luY2UgcHJpbnRzdHIoKSBleHBlY3RzIGEgbG9uZy4KKwkqIHN5c2NhbGwuYyAoZGVjb2RlX3N1YmNhbGwpOiBDaGFuZ2VkIHNldmVyYWwgdmFyaWFibGVzIHRvIGJlIGxvbmcKKwlpbnN0ZWFkIG9mIGludCB0byBtYXRjaCA2NCBiaXQgcmVxdWlyZW1lbnRzLiBBZGRlZCBzMzkweCBkZWZpbmVzLgorCShzeXNjYWxsX2VudGVyKTogQ2hhbmdlZCB1cGVlaygpIGNhbGwgdG8gbWF0Y2ggczM5MCBhbmQgczM5MHgKKwlyZXF1aXJlbWVudHMuCisJKiB1dGlsLmM6IEFkZGVkIHMzOTB4IGRlZmluZXMuCisKKzIwMDItMTAtMDcgIE1pY2hhbCBMdWR2aWcgIDxtbHVkdmlnQHN1c2UuY3o+CisKKwlNZXJnZWQgczM5MHggcG9ydCBieSBIZWlrbyBDYXJzdGVucyA8SGVpa28uQ2Fyc3RlbnNAZGUuaWJtLmNvbT4KKwlhbmQgYnVnZml4ZXMgdG8gczM5MCBieSBELkouIEJhcnJvdy4KKworMjAwMi0wOS0yMyAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KKworCU1lcmdlZCB4ODYtNjQgcG9ydCBieSBBbmRpIEtsZWVuIDxha0BzdXNlLmRlPgorCWFuZCBNaWNoYWwgTHVkdmlnIDxtbHVkdmlnQHN1c2UuY3o+CisJKiBNYWtlZmlsZS5pbjogTmV3IHRhcmdldCAnaGVhZGVycycuIEZhaWx1cmUgaWdub3JlZC4KKwkqIGFjY29uZmlnLmg6IE5ldyBkZWZpbmVzIGZvciB4ODYtNjQuCisJKiBjb25maWd1cmUuaW46IERpdHRvLgorCSogZGVmcy5oOiBEaXR0by4KKwkqIGZpbGUuYzogRGl0dG8uCisJKiBzaWduYWwuYzogRGl0dG8uCisJKiBwcm9jZXNzLmM6IEFkZGVkIHN1cHBvcnQgZm9yIHg4Ni02NC4KKwkqIHV0aWwuYzogRGl0dG8uCisJKiBzeXNjYWxsLmM6IERpdHRvICsgYWRkZWQgYXV0b21hdGljIHBlcnNvbmFsaXR5IHN3aXRjaGluZy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogRGl0dG8uCisJKiBsaW51eC94ODZfNjQ6IE5ldyBkaXJlY3RvcnkuCisJKiBsaW51eC94ODZfNjQvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgorCSogbGludXgveDg2XzY0L2dlbnRhYi5wbDogRGl0dG8uCisJKiBsaW51eC94ODZfNjQvaTM4Ni1oZWFkZXJzLmRpZmY6IERpdHRvLgorCSogbGludXgveDg2XzY0L21ha2VoZWFkZXJzLnNoOiBEaXR0by4KKwkqIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50Lmg6IERpdHRvLgorCSogbWVtLmMgKHByaW50X21tYXApOiBBbHdheXMgcHJpbnQgYXJnWzRdIGFzIGludC4KKworMjAwMi0wOS0yMyAgTWljaGFsIEx1ZHZpZyAgPG1sdWR2aWdAc3VzZS5jej4KKworCSogY29uZmlndXJlLmluOiBGaXggcmVndWxhciBleHByZXNzaW9ucy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogQWRkZWQgbWlzc2luZyBicmFjZXMgaW4gcHJvdG90eXBlIG9mCisJc3lzX2dldGRlbnRzNjQoKS4KKwkqIGZpbGUuYzogVXNlICcjaWZkZWYgTElOVVgnIGluc3RlYWQgb2YgJyNpZmRlZiBsaW51eCcuCisJKHN0cnVjdCBmaWxlZmxhZ3MpOiBNYWRlIGV4dGVybiB0byBpbmhpYml0IGNvbXBpYXRpb24gd2FybmluZ3MuCisJKHN5c19nZXRkZW50czY0KTogTWVyZ2VkIExJTlVYIGFuZCBTVlI0IHBhcnQuCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKTogU3BsaXQgbXVsdGlsaW5lIHN0cmluZyBpbnRvIHR3byBkaXN0aW5jdAorCXN0cmluZ3MuCisKKzIwMDItMDUtMjQgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogc3RyZWFtLmgsIG5ldC5oOiBBdm9pZCBwb3NzaWJsZSBpbmZpbml0ZSBsb29wIGNhdXNlZCBieQorCXVuc2lnbmVkIGFyaXRobWV0aWMgaW4gcHJlY2VlZGluZyBjaGFuZ2UuCisKKzIwMDItMDUtMjMgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogYWNjb25maWcuaDogQWRkIEhBVkVfT1BUSERSIGFuZCBIQVZFX1RfT1BUSERSIGRlZmluZXMuCisKKwkqIGFjbG9jYWwubTQ6IEFkZCB0ZXN0cyBmb3Igc3RydWN0IG9wdGhkciBpbiBzeXMvc29ja2V0LmggYW5kCisJc3RydWN0IHRfb3B0aGRyIGluIHN5cy90aXVzZXIuaCwgZGVmaW5lIEhBVkVfT1BUSERSIGFuZCBIQVZFX1RfT1BUSERSCisJaWYgZm91bmQuCisKKwkqIGNvbmZpZ3VyZS5pbjogdXNlIHRlc3RzIGZvciBzdHJ1Y3Qgb3B0aGRyIGFuZCBzdHJ1Y3QgdF9vcHRoZHIuCisKKwkqIGRlZnMuaDogYWRkIG5ldyBmdW5jdGlvbiBwcmludF9zb2NrX29wdG1nbXQuCisKKwkqIGlvLmM6IGFkZCBoYWNrIHRoYXQgbGV0cyBpb2N0bCBkZWNvZGUgZnVuY3Rpb25zIHNldCBhdXhpbGxpYXJ5CisJc3RyaW5nIHJldHVybi4KKworCSogc3RyZWFtLmM6IGJldHRlciBkZWNvZGluZyBmb3IgdGltb2QgaW9jdGxzLgorCisJKiBuZXQuYzogYWRkIGZ1bmN0aW9uIHByaW50X3NvY2tfb3B0bWdtdCwgdXNlZCBieSB0aW1vZCBpb2N0bAorCWRlY29kaW5nIGZ1bmN0aW9ucyBpbiBzdHJlYW0uYy4KKworMjAwMi0wNS0yMyAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgorCisJKiBhY2NvbmZpZy5oOiBNYWtlIGF1dG9oZWFkZXIgaGFwcHkgYWJvdXQgTGludXgvU3VwZXJICisKKzIwMDItMDUtMjMgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogc3RyYWNlLmM6IEdldCByaWQgb2Ygd2FybmluZyBpZiBub3QgdXNpbmcgUE9MTF9IQUNLCisKKzIwMDItMDUtMjIgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogbmV0LmM6IFNpbXBsaWZ5IHtnZXQsc2V0fXNvY2tvcHQsIGRlY29kZSBTT19MSU5HRVIsIGNvcGUgd2l0aAorCW9wdGlvbnMgdGhhdCBhcmUgbm90IGp1c3QgaW50cywgY29wZSB3aXRoIHN5c3RlbXMgdGhhdCBkb24ndAorCSNkZWZpbmUgU09MX1RDUCBhbmQgc28gb24uCisKKzIwMDItMDUtMjEgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogc3RyYWNlLmM6IEZpeCB3YXJuaW5nIGlmIFBPTExfSEFDSyBpcyB1c2VkLgorCisyMDAyLTA1LTE3ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIHN2cjQvaW9jdGxlbnQuc2g6IFNvbWUgZGVmaW5lcyBvbiBVVyBjb21lIHdpdGggdG9vIG1hbnkgc3BhY2VzLgorCisyMDAyLTA1LTE3ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIHN2cjQvaW9jdGxlbnQuc2g6IENvcGUgd2l0aCAjZGVmaW5lcyB3cmFwcGVkIGluICNpZmRlZnMuCisKKzIwMDItMDUtMTcgIEpvaG4gSHVnaGVzIDxqb2huQGNhbHZhLmNvbT4KKworCSogc3RyZWFtLmM6IHRpZHkgdXAgb3V0cHV0IGEgbGl0dGxlLgorCisyMDAyLTA1LTE3ICBKb2huIEh1Z2hlcyA8am9obkBjYWx2YS5jb20+CisKKwkqIHByb2Nlc3MuYywgc3ZyNC9kdW1teS5oLCBzdnI0L3N5c2NhbGwuaDogZGVjb2RlIGFyZ3VtZW50cworCXRvIHByb2Nwcml2IHN5c2NhbGwuCisKKzIwMDItMDUtMDEgIFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAZGVlcGhhY2ttb2RlLm9yZz4KKworCSogY29uZmlndXJlLmluLCBkZWZzLmgsIHByb2Nlc3MuYywgc29jay5jLCBzeXNjYWxsLmMsIHV0aWwuYzogbWVyZ2UKKwkgIHBhdGNoIGZyb20gR3JlZyBCYW5rcyA8Z2JhbmtzQHBvY2tldHBlbmd1aW5zLmNvbT4gZm9yIExpbnV4L1N1cGVySAorCSAgc3VwcG9ydAorCisyMDAyLTA0LTAxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+CisKKwkqIHN0cmFjZS5jOiBjbG9zZSB0Y3AtPm91dGYgaW4gZHJvcHRjYigpCisKKzIwMDItMDQtMDEgIFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAZGVlcGhhY2ttb2RlLm9yZz4KKworCSogbmV0LmM6IGRlY29kZSBwYWNrZXQgb3B0aW9ucworCisyMDAyLTAzLTMxICBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGRlZXBoYWNrbW9kZS5vcmc+CisKKwkqIGxpbnV4L3thbHBoYSxocHBhLGlhNjQsbWlwcyxwb3dlcnBjLHNwYXJjfS9zeXNjYWxsZW50Lmg6IHJlZ2VuZXJhdGVkCisKKzIwMDItMDMtMzEgIFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAZGVlcGhhY2ttb2RlLm9yZz4KKworCSogZGViaWFuLyo6IGFkZGVkCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IGZpeCB0eXBvIGFuZCBhZGQgdGhlIHJlc2VydmVkIHN0cmVhbSBzeXNjYWxscworCSogZGVmcy5oLCBmaWxlLmMsIGlvLmM6IGZpeCBzaWduZWQvdW5zaWduZWQgaXNzdWVzCisJKiBzeXNjYWxsLmM6IGNoZWNrIGZvciBuZWdhdGl2ZSB1X2Vycm9ycworCSogY3ZzYnVpbGQ6IHJlbmFtZWQgdG8gYXV0b2dlbi5zaAorCisyMDAxLTEyLTE3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisJKiBuZXQuYzogYWRkIG5ldyBUQ1Agc29ja2V0IG9wdGlvbnMKKworMjAwMS0xMC0yNiAgSm9obiBIdWdoZXMgPGpvaG5AY2FsdmEuY29tPgorCisJKiBzdnI0L2lvY3RsZW50LnNoOiBDb3BlIHdpdGggI2RlZmluZSBsaW5lcyBjb250YWluaW5nCisJY29tbWVudHMgdGhhdCB0ZXJtaW5hdGUgb24gc3Vic2VxdWVudCBsaW5lcy4gIFVzZWQgdG8KKwljb21tZW50IG91dCBzdWJzZXF1ZW50IGlvY3RscyEKKworMjAwMS0xMC0yNSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworCSogbGludXgvaW9jdGxlbnQuaDogcmVnZW5lcmF0ZWQgdXNpbmcgY3VycmVudCBzY3JpcHRzIHNvCisJICB0ZXJtIGlvY3RscyBhcmUgaW5jbHVkZWQKKworMjAwMS0xMC0xOSAgSm9obiBIdWdoZXMgIDxqb2huQENhbHZhLkNPTT4KKworCSogc3RyYWNlLmMocHJvY19vcGVuKTogT24gU1ZSNCBvbmx5IHRyYWNlIHRoZSBzeXNjYWxscywKKwlzaWduYWxzIGFuZCBmYXVsdHMgd2UgY2FyZSBhYm91dC4KKworMjAwMS0xMC0xOCAgSm9obiBIdWdoZXMgIDxqb2huQENhbHZhLkNPTT4KKworCSogYWNjb25maWcuaDogQWRkIEhBU19TSUdJTkZPX1QuCisJKiBhY2xvY2FsLm00OiBhZGQgY2hlY2sgZm9yIHNpZ2luZm9fdCBpbiBzaWduYWwuaC4KKwkqIGNvbmZpZ3VyZS5pbjogdXNlIGNoZWNrIGZvciBzaWdpbmZvX3QuCisJKiBkZWZzLmg6IGlmIEhBVkVfU0lHSU5GT19UIHRoZSBkZWNsYXJlIHByaW50c2lnaW5mby4gIE9uIFNWUjQKKwkgIGFsbG93IGFjY2VzcyB0byBzaWdpbmZvIHdoZW4gc2lnbmFsIHJlY2lldmVkLgorCSogcHJvY2Vzcy5jOiBSZW1vdmUgU1ZSNCBvbmx5IHZlcnNpb24gb2YgcHJpbnRzaWdpbmZvLgorCSogc2lnbmFsLmM6IG1lcmdlIFNWUjQgYW5kIExJTlVYIHZlcnNpb25zIG9mIHByaW50c2lnaW5mby4KKwkqIHN0cmFjZS5jOiBvbiBTVlI0IHByaW50IHNpZ2luZm8gd2hlbiBzaWduYWwgcmVjaWV2ZWQuCisKKzIwMDEtMTAtMTggIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+CisKKwkqIHN5c3RlbS5jKHN5c19zc2lzeXMpOiBoYW5kbGUgcmV0dXJuIHZhbHVlcyBmb3Igc3Npc3lzCisKKzIwMDEtMTAtMTggIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+CisKKwkqIHNpZ25hbC5jOiBoYW5kbGUgc2lnd2FpdAorCSogc3ZyNC9kdW1teS5jOiBNb3ZlIHNpZ3dhaXQgdG8gZG9uZQorCSogc3ZyNC9zeXNjYWxsLmg6IGhhbmRsZSBzaWd3YWl0CisKKzIwMDEtMTAtMTYgIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+CisKKwkqIHN5c3RlbS5jKHN5c19zc2lzeXMpOiBkZWNvZGUgc29tZSBhcmdzIGZvciBzc2lzeXMuCisKKzIwMDEtMTAtMTYgIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+CisKKwkqIG1lbS5jOiBNU19TWU5DIGlzIHplcm8sIHNvIG11c3QgYmUgZmlyc3QgaW4geGxhdCBsaXN0LgorCisJKiBzdnI0L2R1bW15Lmg6IG1lbWNudGwgaXMgbXVjaCBsaWtlIG1jdGwuCisKKzIwMDEtMTAtMTYgIEpvaG4gSHVnaGVzICA8am9obkBDYWx2YS5DT00+CisKKwkqIHV0aWwuYyAodW1vdmVzdHIpOiBVbml4V2FyZSAoc3ZyND8pIHJldHVybnMgMCB3aGVuIHRyeWluZworCXRvIHJlYWQgdW5tYXBwZWQgcGFnZS4gIE1ha2UgaXQgcG9zc2libGUgdG8gc3RyYWNlIGtzaC4KKworMjAwMS0xMC0wMyAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CisKKwkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfY2xvbmUpOiBBdm9pZCByYWNlIGNvbmRpdGlvbiBieSBjbGVhcmluZworCWJyZWFrcG9pbnQgYWZ0ZXIgYXR0YWNoaW5nIHRvIGNoaWxkLgorCisyMDAxLTEwLTAyICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KKworCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IERlZmluZSBpYTMyIHN5c2NhbGwgbnVtYmVycyAob3JpZ2luYWxseQorCWJ5IERvbiBEdWdnZXIsIHdpdGggbXkgcmVmaW5lbWVudHMpLgorCisJKiBsaW51eC9pYTY0L2lvY3RsZW50Lmg6IFJlZ2VuZXJhdGUgYW5kIG1hbnVhbGx5IG1lcmdlIGNvbmZsaWN0aW5nCisJaW9jdGxzIChUQ0dFVFMgJiBTTkRDVExfVE1SX1RJTUVCQVNFLCBldGMuKS4KKworCSogbGludXgvaWE2NC9NYWtlZmlsZS5pbiAoaW9jdGxkZWZzLmggaW9jdGxzLmgpOiBVcGRhdGUgZm9yCisJbmV3IGlvY3RsZW50LmggZ2VuZXJhdGlvbiBzY2hlbWUuCisKKwkqIGxpbnV4L3N5c2NhbGwuaCAoc3lzX2Nsb25lMik6IERlY2xhcmUuCisJW0lBNjRdIERlZmluZSBpYTMyIHNvY2tldCwgaXBjLCBhbmQgZXh0cmEgc3lzY2FsbCBudW1iZXJzLgorCisJKiBsaW51eC9pb2N0bGVudC5zaCAocmVnZXhwKTogQWxzbyBoYW5kbGUgPGFzbS9pb2N0bHMuaD4gc28gd2UKKwlkb24ndCBtaXNzIHRoZSB0dHkgaW9jdGxzICh1bmZvcnR1bmF0ZWx5LCBzb21lIG9mIHRoZSBzb3VuZCB0aW1lcgorCWlvY3RscyBhcmUgaW4gY29uZmxpY3Qgd2l0aCB0aGVtISkuCisKKwkqIHV0aWwuYyAoc2V0YnB0KSBbSUE2NF06IEFkZCBpYTMyIHN1cHBvcnQgKGJ5IERvbiBEdWdnZXIpLgorCShjbHJicHQpIFtJQTY0XTogRGl0dG8uCisKKwkqIHN5c2NhbGwuYyAoaW50ZXJuYWxfc3lzY2FsbCk6IEhhbmRsZSBTWVNfY2xvbmUyLCBTWVMzMl93YWl0NCwKKwlhbmQgU1lTMzJfZXhpdC4KKwkoZ2V0X3Njbm8pOiBHZXQgaWEzMiBzeXNjYWxsIG51bWJlciBmcm9tIHIxIChvcmlnIGVheCkgaW5zdGVhZCBvZgorCXI4IChlYXgpLiAgSGFuZGxlIFRDQl9XQUlURVhFQ1ZFLgorCShzeXNjYWxsX2ZpeHVwKTogSGFuZGxlIGlhNjQuCisJKHN5c2NhbGxfZW50ZXIpOiBGaXggYXJndW1lbnQgZmV0Y2hpbmcgZm9yIGlhNjQuCisKKwkqIHN0cmFjZS5jIFtJQTY0ICYmIExJTlVYXTogSW5jbHVkZSA8YXNtL3B0cmFjZV9vZmZzZXRzLmg+LgorCSh0cmFjZSkgW1BUX0dFVFNJR0lORk9dOiBQcmludCBzaWduYWwgYWRkcmVzcyBhbmQgcGMgaWYgcG9zc2libGUuCisKKwkqIHByb2Nlc3MuYyAodGNwKTogTmV3IGZ1bmN0aW9uLgorCShjaGFuZ2Vfc3lzY2FsbCk6IEFkZCBzdXBwb3J0IGZvciBpYTY0IGxpbnV4LgorCShzeXNfZXhlY3ZlKTogVHVybiBvbiBUQ0JfV0FJVEVYRUNWRSBmb3IgaWE2NCBsaW51eC4KKworCSogZGVzYy5jIChnZXRsayk6IENhc3QgbF9sZW4gdG8gImxvbmcgbG9uZyIgdG8gYXZvaWQgd2FybmluZ3Mgd2hlbgorCXR5cGUgaXMgbmFycm93ZXIuCisJKiByZXNvdXJjZS5jIChzcHJpbnRybGltNjQpOiBEaXR0by4KKworCSogZGVmcy5oIChUQ0JfV0FJVEVYRUNWRSkgW0lBNjRdOiBEZWZpbmUuCisJW0lBNjRdOiBEZWNsYXJlICJpYTMyIiB2YXJpYWJsZS4KKworCSogYmptLmM6IERvIG5vdCBpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4uICBJdCdzIG5vdCBzYWZlIHRvIGluY2x1ZGUKKwlrZXJuZWwgaGVhZGVycy4gIERlY2xhcmUgdGhlIG5lY2Vzc2FyeSBjb25zdGFudHMgYW5kIHN0cnVjdHVyZXMKKwlkaXJlY3RseSBpbnN0ZWFkLgorCisyMDAxLTEwLTAxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KKworCSogc2lnbmFsLmMgKHBhcnNlX3NpZ3NldF90KTogTmV3IGZ1bmN0aW9uLgorCShzaWdpc2hhbmRsZWQpOiBGaXggb2ZmLWJ5LW9uZSBidWcgYnkgdXNpbmcgcGFyc2Vfc2lnc2V0X3QoKSBhbmQKKwlhdm9pZGluZyByZWx5aW5nIG9uIGludGVybmFsIGxheW91dCBvZiBzaWdzZXRfdCBkYXRhc3RydWN0dXJlLgorCisyMDAxLTA0LTI2ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KKworCSogbGludXgvaWE2NC9zeXNjYWxsZW50Lmg6IEFkZCBnZXR1bndpbmQoKS4KKworMjAwMS0wNC0xMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CisKKwkqIHN5c2NhbGwuYyAoc3lzY2FsbF9lbnRlcik6IFVzZSBQVF9SQlNfRU5EIGluc3RlYWQgb2YgZGVwcmVjYXRlZAorCVBUX0FSX0JTUC4gIFBpY2sgdXAgYXJndW1lbnRzIHN0YXJ0aW5nIHdpdGggb3V0MCwgd2hpY2ggaXMgbm90CisJYWx3YXlzIHRoZSBzYW1lIGFzIHIzMiAoZS5nLiwgY29uc2lkZXIgaW5saW5lZCBzeXNjYWxscykuCisKKzIwMDEtMDktMjggICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBwcm9jZXNzLmM6IEZyZWVCU0QtQ1VSUkVOVCBubyBsb25nZXIgaGFzIFBUX1JFQURfVSwgYW5kIGFueXdheSB3ZQorICAgIHdlcmUgc2hvd2luZyBpdCBhcyBQVF9XUklURV9VISAgRml4IGZyb20gTWF4aW1lIEhlbnJpb24uCisKKzIwMDEtMDktMTggICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBuZXQuYzogZml4IGRpc3BsYXkgb2Ygc29ja2FkZHIgc3RydWN0dXJlcywgc29tZXRpbWVzIHRvbyBtYW55ICJ9IiwKKyAgICBzb21ldGltZXMgdG9vIGZldy4gIEZpeCBzdWdnZXN0ZWQgYnkgUmljaGFyZCBLZXR0bGV3ZWxsLgorCisyMDAxLTA4LTE5ICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIHNpZ25hbC5jOiBkbyBub3QgaW5jbHVkZSBhc20vc2lnY29udGV4dC5oIG9uIElBNjQgc2luY2UgaXQgZ2V0cworICAgIHRoZSBzdHJ1Y3QgZnJvbSBiaXRzL3NpZ2NvbnRleHQuaCBhbHJlYWR5IHdoaWNoIHNpZ25hbC5oIGluY2x1ZGVzLgorCisyMDAxLTA4LTAzICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L2lvY3RsZW50LnNoOiBjaGFuZ2UgcmVnZXhwcyBzbyB3ZSBjYXRjaCBzb3VuZCBpb2N0bHMgYXMgd2VsbCBpbgorICAgIExpbnV4CisgICogbGludXgvTWFrZWZpbGUuaW46IGZpeCBhIGZldyB0aGluZ3Mgc28gdGhlIGlvY3RsIGxpc3QgaXMgZ2VuZXJhdGVkCisgICAgcHJvcGVybHkKKyAgKiBpb2N0bC5jOiByZW1lbWJlciB0byBzaGlmdCBpb2N0bCBtYXNrcyBhcyB3ZWxsCisKKzIwMDEtMDgtMDMgICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTGludXgvKiovc3lzY2FsbGVudC5oOiBzeW5jaHJvbml6ZSBzZWN0aW9uIGZvciBmY250bCBhbmQgdXNlIHN5c19mY250bAorICAgIGZvciBzeXNfZmNudGwgYXMgd2VsbAorCisyMDAxLTA4LTAzICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oOiB1cGRhdGVkIGZyb20gTWF0dGhldyBXaWxjb3gKKworMjAwMS0wOC0wMyAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBwcm9jZXNzLmM6IHNlZW1zIExpbnV4L0lBNjQgY2hhbmdlZCByZWdpc3RlciBuYW1lcyBvbiB1cywgc3dpdGNoIHRvCisgICAgdXNpbmcgbmV3IG5hbWVzLgorCisyMDAxLTA4LTAzICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIHN0cmFjZS5jOiBzZXQgQ0xPRVhFQyAgZmxhZyBmb3Igb3V0cHV0ZmlsZQorCisyMDAxLTA4LTAzICAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L3NwYXJjL3N5c2NhbGwuaCwgbGludXgvc3BhcmMvc3lzY2FsbGVudC5oOiBhZGQgc29tZSBMRlMgY2FsbHMKKworMjAwMS0wNy0yMyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGNvbmZpZ3VyZS5pbjogU3VwcG9ydCBjcm9zcy1jb21waWxpbmcgYmV0d2VlbiBhcmNoaXRlY3R1cmVzCisKKzIwMDEtMDctMTMgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBjb25maWd1cmUuaW46IGFkZCBTMzkwIHRvIGFyY2hpdGVjdHVyZSBsaXN0CisKKzIwMDEtMDctMTAgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIFRPRE8sIGRlZnMuaCwgaW8uaCwgbmV0LmMsIHN0cmFjZS5jLCBzeXNjYWxsLmMsIHV0aWwuYzogTWVyZ2UgZml4ZXMKKyAgICBmcm9tIFJpY2hhcmQgS2V0dGxld2VsbCA8cmtldHRsZXdlbGxAemV1cy5jb20+IHdoaWNoIGFkZCBJL08gZHVtcGluZworICAgIG9mIGFyZ3MgdG8gcmVhZHYvd3JpdGV2LiAgQWxzbyBnZXRzIHJpZCBvZiByZWR1bmRhbnQgcHJpbnRpb3ZlYworICAgIHJvdXRpbmUgZnJvbSBuZXQuYyAoZHVwbGljYXRlIG9mIHRwcmludF9pb3YgaW4gdXRpbC5jKS4KKworMjAwMS0wNy0wMiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGNvbmZpZy57Z3Vlc3Msc3VifTogdXBkYXRlZAorCisyMDAxLTA1LTE1ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBzaWduYWwuYzogcGFzcyBhIHBvaW50ZXIgdG8gc2lnbWFzayB0byBwcmludHNpZ21hc2sgZnJvbSBwcmludGNvbnRleHQsCisgICAgaXQgd2FzIGp1c3QgcGFzc2luZyB0aGUgc2lnbWFzayAodWNwLT51Y19zaWdtYXNrKS4KKworMjAwMS0wNS0xNSAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogdXRpbC5jOiBEb24ndCBydW4gb2ZmIHRoZSBlbmQgb2YgdmFsaWQgbWVtb3J5IGluIHVtb3Zlc3RyIHdoZW4KKyAgICBVU0VfUFJPQ0ZTLiAgSW1wb3J0YW50IGZvciBGUkVFQlNEIHN5c3RlbXMgKHdoaWNoIHNlZW0gdG8gaGF2ZSBhbgorICAgIHVubWFwcGVkIHBhZ2UganVzdCBhZnRlciB0aGUgYXJncy9lbnYgYXJlYSkuCisKKzIwMDEtMDQtMTggIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGNvbmZpZ3VyZS5pbjogdGVzdCBmb3Igc3lzL25zY3N5cy5oLCB0aGUgbm9uLXN0b3AgY2x1c3RlcnMgaW5jbHVkZXMuCisgICogcHJvY2Vzcy5jOiBoYW5kbGUgcmZvcmt7MSxhbGx9IGFuZCByZXhlY3ZlIGNhbGxzIG9uIG5vbi1zdG9wIGNsdXN0ZXJzLgorICAqIHN5c2NhbGwuYzogdHJlYXQgcmZvcmt7MSxhbGx9IGFuZCBmb3JrezEsYWxsfSBhcyBmb3JrIGxpa2UgY2FsbHMuCisgICAgVHJlYXQgcmV4ZWN2ZSBhcyBhbiBleGVjLgorICAqIHN5c3RlbS5jOiBkZWNvZGUgYXJndW1lbnRzIHRvIHNzaXN5cyBjYWxsIG9uIG5zYyBzeXN0ZW1zLgorICAqIHN2cjQvZHVtbXkuaCwgc3ZyNC9zeXNjYWxsLmg6IG5vdyB3ZSBoYW5kbGUgcmZvcmt7MSxhbGx9LCBzc2lzeXMgYW5kCisgICAgcmV4ZWN2ZSBjYWxscy4KKworMjAwMS0wNC0xMiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIHByb2Nlc3MuYzogZml4IGNhc3QgZm9yIHBvd2VycGMgY29kZQorICAqIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oOiB1cGRhdGUgc3lzY2FsbCBsaXN0CisgICogUkVBRE1FOiBmaXggYWRkcmVzcyBmb3IgdGhlIHN0cmFjZSBtYWlsaW5nbGlzdAorICAqIHNpZ25hbC5jOiBzd2l0Y2ggdG8gdXNpbmcgL3Byb2MvPHBpZD4vc3RhdHVzIG9uIExpbnV4IHNvIHdlIGNhbiBnZXQKKyAgICB0aGUgcmVhbHRpbWUgc2lnbmFscyBhcyB3ZWxsCisKKzIwMDEtMDQtMTAgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBwYXRjaGVzIGZyb20gTWFjaWVqIFcuIFJvenlja2k6CisgICAgKyB1dGlsLmM6IGFkZCBjb2RlIHRvIHByaW50IFBDIGZvciBNSVBTCisgICAgKyBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogdXBkYXRlZAorICAgICsgc3lzdGVtLmM6IGZvcm1hdGluZyBmaXhlcyBmb3Igc3lzX3N5c21pcHMKKyAgICArIGNvbmZpZ3VyZS5pbjogdGVzdCBmb3IgeWV0IG1vcmUgaGVhZGVycworICAgICsgc3RyZWFtLmM6IHVzZSBjb25maWd1cmUtaGVhZGVydGVzdHMgaW5zdGVhZCBvZiByZWx5aW5nIG9uIE9TIGhpbnRzCisKKzIwMDEtMDQtMDcgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBORVdTOiBzdGFydCA0LjMuMSBpdGVtcworICAqIHZlcnNpb24uYzogdXBkYXRlZCB0byBzYXkgNC4zLjEgKHdhcyBzdGlsbCA0LjIsIG9vcHMhKQorCisyMDAxLTA0LTA3ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogY29uZmlndXJlLmluOiB0ZXN0IGZvciBhc20vc3lzbWlwcy5oIGFuZCBsaW51eC91dHNuYW1lLmgKKyAgKiBsaW51eC9zeXNjYWxsLmg6IGZpeCBhIHR5cG8gZm9yIHN5c19zeXNtaXBzCisgICogc3lzdGVtLmM6IGluY2x1ZGUgYXNtL3N5c21pcHMuaCBhbmQgbGludXgvdXRzbmFtZS5oIGlmIHRoZXkgZXhpc3QsCisgICAgZml4IHR5cG8KKworMjAwMS0wMy0zMSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L21pcHMvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKKworMjAwMS0wMy0zMSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L2lhNjQvaW9jdGxlbnQuaDogcmVnZW5lcmF0ZWQKKworMjAwMS0wMy0zMSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L3thbHBoYSxpYTY0LHBvd2VycGN9L2lvY3RsZW50LnNoOiByZW1vdmVkLCBhbGwgYXJjaHMgdXNlIHRoZQorICAgIGdlbmVyYWwgTGludXggaW9jdGxlbnQuc2gKKworMjAwMS0wMy0zMSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L2lvY3RsZW50LnNoOiBhZGQgZGlyIHZhcmlhYmxlIGZvciBsb2NhdGlvbiBvZiBrZXJuZWwgaGVhZGVycworCisyMDAxLTAzLTI5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogbGludXgvaWE2NC9pb2N0bGVudC5oOiB1cGRhdGVkIHVzaW5nIG5ldyBMaW51eCBpb2N0bCBzZXR1cAorCisyMDAxLTAzLTI5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogbGludXgvcG93ZXJwYy9pb2N0bGVudC5oOiB1cGRhdGVkIHVzaW5nIG5ldyBMaW51eCBpb2N0bCBzZXR1cAorCisyMDAxLTAzLTI5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogbGludXgvaHBwYS9pb2N0bGVudC5oOiB1cGRhdGVkIHVzaW5nIG5ldyBMaW51eCBpb2N0bCBzZXR1cAorCisyMDAxLTAzLTI5ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogbGludXgvYWxwaGEvaW9jdGxlbnQuaDogdXBkYXRlZCB1c2luZyBuZXcgTGludXggaW9jdGwgc2V0dXAKKworMjAwMS0wMy0yOCAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGNvbmZpZ3VyZS5pbjogdXNlIHNwYXJjKiBzbyB3ZSBjYW4gY29tcGlsZSBvbiBzcGFyYzY0IGFzIHdlbGwKKyAgKiBwcm9jZXNzLmMsIHN5c2NhbGwuYzogd29yayBhcm91bmQgZG91YmxlIGRlZmluZSBvZiBmcHEsIGZxIGFuZCBmcHUKKyAgICBzdHJ1Y3RzIG9uIExpbnV4L3NwYXJjLCBhbmQgdXNlIHJlZ3MgaW5zdGVhZCBvZiBwdF9yZWdzCisgICogZG9uJ3QgdXNlIGFzbS9zaWdjb250ZXh0Lmggb24gTGludXgvc3BhcmMKKworMjAwMS0wMy0yOCAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L3NwYXJjL2lvY3RsZW50Lmg6IHVwZGF0ZWQgdXNpbmcgbmV3IExpbnV4IGlvY3RsIHNldHVwCisKKzIwMDEtMDMtMjggIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBzdHJhY2UuYzogdXNlIF9fV0FMTCBhcyB3YWl0NCBmbGFnIGlmIGl0IGV4aXN0cyBzbyB3ZSBjYW4gcHJvcGVybHkKKyAgICB0cmFjZSB0aHJlYWRlZCBwcm9ncmFtcworCisyMDAxLTAzLTI3ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBhY2xvY2FsLm00OiBhZGQgY2hlY2sgZm9yIGVuZGlhbm5lc3Mgb2YgbG9uZyBsb25nLgorICAqIGFjY29uZmlnLmg6IGFkZCAjZGVmaW5lIGZvciBMSVRUTEVfRU5ESUFOX0xPTkdfTE9ORy4KKyAgKiBjb25maWd1cmUuaW46IGNoZWNrIGZvciBlbmRpYW5uZXNzIG9mIGxvbmcgbG9uZy4KKyAgKiBkZWZzLmg6IGNoYW5nZSBMT05HX0xPTkcgbWFjcm8gdG8gd29yayB3aXRoIGVpdGhlciBlbmRpYW5uZXNzIG9mCisgICAgbG9uZyBsb25nLgorCisyMDAxLTAzLTI3ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBuZXQuYzogTWFrZSBjb21waWxhYmxlIGJ5IFNDTyBVREsgY29tcGlsZXIgKGRvZXNuJ3QgbGlrZSBlbXB0eQorICAgIGluaXRpYWxpc2F0aW9uIGxpc3QgZm9yIGFycmF5KS4KKworMjAwMS0wMy0yNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogc3ZyNC9zeXNjYWxsZW50Lmg6IG50cF9hZGp0aW1lIGVudHJ5IHdhcyBkdXBsaWNhdGVkIG9uIFNvbGFyaXMKKyAgICBzeXN0ZW1zIC0gYmFkIG1lcmdlIG9mIEhhcmFsZCBCb2VobWUncyBwYXRjaCBieSBtZS4KKworMjAwMS0wMy0yNyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxvdHMgb2YgZmlsZXM6IGFkZCBMaW51eC9ocHBhIHN1cHBvcnQKKworMjAwMS0wMy0xOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiB3ZSBjYW4ndCBoYXZlIC0xIG5hcmdzLCBjaGFuZ2UgdG8gMAorICAqIGxpbnV4L3N5c2NhbGxlbnQuaDogbm90IHRoYXQgc3lzY2FsbHMgMjIwIGFuZCAyMjEgYXJlIHVzZWQgbm93CisgICogY29uZmlnLmd1ZXNzOiB1cGRhdGVkCisKKzIwMDEtMDMtMTcgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9pb2Nsc29ydC5jOiBuZXcgZmlsZQorICAqIGxpbnV4L2lvY3RsZW50LnNoOiBjb21wbGV0ZSByZXdyaXRlIHRvIHVzZSBhIG1vcmUgc2FuZSBhcHByb2FjaCB0byBnZXQKKyAgICB0aGUgaW9jdGwgbGlzdCB0aGF0IGRvZXNuJ3QgaW52b2x2ZSBhdHRlbXB0aW5nIHRvICNpbmNsdWRlIGFsbCBrZXJuZWwKKyAgICBoZWFkZXJzCisgICogbGludXgvLmN2c2lnbm9yZTogYWRkZWQgaW9jdGRlZnMuaCBhbmQgaW9jdGxzLmggd2hpY2ggYXJlIGdlbmVyYXRlZAorICAgIGJ5IHRoZSBuZXcgaW9jdGxlbnQuc2gKKyAgKiBpb2N0bC5jOiBvbmx5IGxvb2sgYXQgdGhlIG51bWJlciBhbmQgdHlwZSBiaXRzIGZvciBsaW51eCwgc2luY2UKKyAgICBpb2N0bGVudC5zaCBubyBsb25nZXIgc3VwcGxpZXMgdGhlIG90aGVycworCisyMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBmcmVlYnNkL3N5c2NhbGxzLnBsOiBPbiBGcmVlQlNEIHdlIG11c3QgY29wZSB3aXRoIENPTVBBVGliaWxpdHkgc3lzY2FsbHMsCisgICAgcHJldGVuZCB0aGV5IGhhdmUgbmFtZXMgZW5kaW5nIHdpdGggIj8iIHNvIHRoYXQgLWUgdHJhY2U9c3RhdCAoZm9yCisgICAgZXhhbXBsZSkgd2lsbCB3b3JrLgorICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsZW50Lmg6IGFkZCA/IHRvIGNvbXBhdGFiaWxpdHkgc3lzY2FsbHMuCisgICogZnJlZWJzZC9pMzg2L3N5c2NhbGwuaDogY29uc2lzdGVuY3kuCisKKzIwMDEtMDMtMDggIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGFjY29uZmlnLmg6IGFkZCBuZXcgU1RfeHh4IGRlZmluZXMuCisgICogYWNsb2NhbC5tNDogbWFjcm9zIHRvIGNoZWNrIGZvciBtb3JlIGZpZWxkcyBpbiBzdHJ1Y3Qgc3RhdC4KKyAgKiBjb25maWd1cmUuaW46IHVzZSBuZXcgbWFjcm9zIHRvIGNoZWNrIGZvciBmaWVsZHMgaW4gc3RydWN0IHN0YXQuCisgICogZmlsZS5jOiB1c2UgbmV3IGRlZmluZXMgdG8gcmVwbGFjZSAjaWZkZWYgRlJFRUJTRCBieSAjaWYgSEFWRV9TVF94eHguCisKKzIwMDEtMDMtMDggIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGRlZnMuaDogcmVuYW1lIHdpbXB5IGdldDY0IGFzIHBvd2VyZnVsIG5ldyBMT05HX0xPTkcKKyAgKiBmaWxlLmM6IHVzZSBMT05HX0xPTkcKKyAgKiBpby5jOiB1c2UgTE9OR19MT05HCisgICogbWVtLmMgdXNlIExPTkdfTE9ORworCisyMDAxLTAzLTA4ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBhY2NvbmZpZy5oOiBuZXcgI2RlZmluZXMgSEFWRV9MT05HX0xPTkdfT0ZGX1QgYW5kIEhBVkVfTE9OR19MT05HX1JMSU1fVC4KKyAgKiBhY2xvY2FsLm00OiByb3V0aW5lcyB0byBjaGVjayBmb3IgbG9uZyBsb25nIG9mZl90IGFuZCBybGltX3QuCisgICogY29uZmlndXJlLmluOiBjaGVjayBmb3IgbG9uZyBsb25nIG9mZl90IGFuZCBybGltX3QuCisgICogZGVzYy5jOiBpZiBIQVZFX0xPTkdfTE9OR19PRkZfVCB0cmVhdCBmbG9jayBhcyBmbG9jazY0CisgICogZmlsZS5jOiBpZiBIQVZFX0xPTkdfTE9OR19PRkZfVCB0cmVhdCBzdGF0LGxzdGF0LGZzdGF0IGFuZCBsc2VlayBhcyA2NAorICAgIGJpdCB2ZXJzaW9ucy4KKyAgKiBpby5jOiBpZiBIQVZFX0xPTkdfTE9OR19PRkZfVCB1c2UgNjQgYml0IHZlcnNpb25zIG9mIHByZWFkIGFuZCBwd3JpdGUuCisgICogbWVtLmM6IGlmIEhBVkVfTE9OR19MT05HX09GRl9UIHVzZSA2NCBiaXQgdmVyc2lvbiBvZiBtbWFwCisgICogcmVzb3VyY2UuYzogaWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QgdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiBnZXRybGltaXQKKyAgICBhbmQgc2V0cmxpbWl0LgorICAqIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQ6IGRvbid0IGV4cGxpY2l0bHkgdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiBjYWxscywKKyAgICBub3cgZG9uZSBhdXRvbWF0aWNhbHkgZm9yIHVzLgorICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsLmg6IGRpdHRvLgorICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsZW50LmggZGl0dG8uCisKKzIwMDEtMDMtMDcgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGRlc2MuYzogT24gRnJlZUJTRCBmbG9jayBzdHJ1Y3R1cmUgdXNlcyA2NCBiaXQgb2Zmc2V0cy4KKyAgKiBmaWxlLmM6IE9uIEZyZWVCU0QgdXNlIHN0YXQ2NCBhbmQgcGFscyBpbnN0ZWFkIG9mIHN0YXQuCisgICogZnJlZWJzZC9zeXNjYWxscy5wcmludDogdXNlIHN0YXQ2NCwgbHN0YXQ2NCBhbmQgZnN0YXQ2NC4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbC5oOiBkaXR0by4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiBkaXR0by4KKworMjAwMS0wMy0wNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogZmlsZS5jOiBtZXJnZSBtaXNzaW5nIHBhcnQgb2YgSGFyYWxkIEL2aG1lJ3Mgc29sYXJpcyBwYXRjaGVzLAorICAgIHdhcyBvbmx5IGRlY2xhcmluZyBzeXNfe3N0YXQ2NCxsc3RhdDY0LGZzdGF0NjR9IG9uIGxpbnV4IQorCisyMDAxLTAzLTA3ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBzdnI0L2R1bW15Lmg6IGZpeCBtdWx0aXBsZSBkZWZpbmUgd2FybmluZyBvbiBub24gTEZTNjQgc3lzdGVtcy4KKyAgKiBzdnI0L3N5c2NhbGxlbnQuaDogcHJlYWQvcHdyaXRlIGFyZSBURiBjYWxscy4KKworMjAwMS0wMy0wNyAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogZGVmcy5oOiBhZGQgQUxJR042NCBtYWNybyB0byBjb3BlIHdpdGggRnJlZUJTRCdzIHN0cmFuZ2UgaW5zaXN0ZW5jZQorICAgIG9uIGFsaWdubWVudCBmb3Igb2ZmX3QgKDY0IGJpdCkgYXJndW1lbnRzLiAgQWxzbyBzaW1wbGlmeSBnZXQ2NCBzbworICAgIHdlIGRvbid0IG5lZWQgdG8ga25vdyBlbmRpYW5uZXNzIG9mIGxvbmcgbG9uZy4KKyAgKiBmaWxlLmM6IEZyZWVCU0Qgbm93IHVzZXMgNjQgYml0IHZlcnNpb25zIG9mIGxzZWVrLCB0cnVuY2F0ZSwKKyAgICBmdHJ1bmNhdGUsIGFsbG93cyByZWR1Y3Rpb24gaW4gbnVtdmJlciBvZiBob3JyaWQgI2lmJ3MKKyAgKiBpby5jOiBGcmVlQlNEIG5vdyB1c2VzIDY0IGJpdCB2ZXJzaW9ucyBvZiBwcmVhZCwgcHdyaXRlLgorICAqIG1lbS5jOiBGcmVlQlNEIG5vdyB1c2VzIDY0IGJpdCB2ZXJzaW9uIG9mIG1tYXAuCisgICogZnJlZWJzZC9zeXNjYWxscy5wcmludDogdXNlIDY0IGJpdCB2ZXJzaW9ucyBvZiB2YXJpb3VzIHN5c2NhbGxzLgorICAqIGZyZWVic2QvaTM4Ni9zeXNjYWxsLmg6IHVzZSA2NCBiaXQgdmVyc2lvbnMgb2YgdmFyaW91cyBzeXNjYWxscy4KKyAgKiBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oOiB1c2UgNjQgYml0IHZlcnNpb25zIG9mIHZhcmlvdXMgc3lzY2FsbHMuCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGZpbGUuYzogSW1wbGVtZW50IHRydW5jYXRlNjQgYW5kIGZ0cnVuY2F0ZTY0CisgICogc3ZyNC9kdW1teS5oOiBhZGQgZHVtbWllcyBmb3IgdHJ1bmNhdGU2NCBhbmQgZnRydW5jYXRlNjQgZm9yIG5vbgorICAgIExGUzY0IHN5c3RlbXMuCisgICogc3ZyNC9zeXNjYWxsLmg6IGFkZCBkZWNsYXJhdGlvbnMgZm9yIHRydW5jYXRlNjQgYW5kIGZ0cnVuY2F0ZTY0LgorCisyMDAxLTAzLTA2ICBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKKyAgKiBmcmVlYnNkL3N5c2NhbGxzLnBsOiBmaXggZm9yIEZyZWVCU0QgNC4xIChuZXcgb3B0aW9uYWwgZmllbGQgaW4KKyAgICBzeXNjYWxsIG1hc3RlciBmaWxlKS4KKworMjAwMS0wMy0wNiAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogc3lzY2FsbC5jOiBmaXggZm9yIEZyZWVCU0QgNC4xIChTWVNfc2VtY29uZmlnIGhhcyBkaXNhcHBlYXJlZCkuICBBbHNvCisgICAgemFwIGluY29ycmVjdCBzeXNjYWxsIHN1YmFyZyByYW5nZSBjaGVjay4KKworMjAwMS0wMy0wNiAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogY29uZmlndXJlLmluLCBkZWZzLmgsIGRlc2MuYywgZmlsZS5jLCBpby5jLCBtZW0uYywgbmV0LmMsIHJlc291cmNlLmMsCisgICAgc2lnbmFsLmMsIHN5c2NhbGwuYywgc3ZyNC9kdW1teS5oLCBzdnI0L3N5c2NhbGwuaCwgc3ZyNC9zeXNjYWxsZW50Lmg6CisgICAgbWVyZ2UgSGFyYWxkIEL2aG1lJ3Mgc29sYXJpcyBwYXRjaGVzIChfTEZTNjRfTEFSR0VGSUxFIGFuZCBrZXJuZWwgYWlvCisgICAgbW9zdGx5KS4KKworMjAwMS0wMy0wNiAgSm9obiBIdWdoZXMgPGpvaG5AQ2FsdmEuQ09NPgorCisgICogZHVtbXkuaDogYWRkIHVuaW1wbGVtZW50ZWQgVVcgc3ljYWxscworICAqIHN5c2NhbGwuaDogd2UgY2FuIGRvIHNldHRpbWVvZmRheSBmb3IgVVcsIHdob3BlZSEKKyAgKiBzeXNjYWxsZW50Lmg6IGZpeCB1bmltcGxlbWVudGVkIFVXIHN5c2NhbGxzCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGFjbG9jYWwubTQ6IGxvb2sgZm9yIHByX3N5c2NhbGwgaW4gcHJfbHdwIGlmIHdlIEhBVkVfTVBfUFJPQ0ZTCisgICogZGVmcy5oOiBhZGQgUFJfU1lTQ0FMTCB0byBhbGxvdyB1c2Ugb2YgcHJfbHdwLnByX3N5c2NhbGwgaWYgaXQgZXhpc3RzLgorICAqIHN5c2NhbGwuYzogdXNlIFBSX1NZU0NBTEwgaW5zdGVhZCBvZiBwcl9zeXNjYWxsLCBmaXggdXAgVW5peFdhcmUgY29kZQorICAgIHNvIGl0IGRvZXNuJ3QgdHJ5IHRvIHVzZSBwcl9zeXNhcmcuCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIGFjbG9jYWwubTQ6IG9uIHN5c3RlbXMgb3RoZXIgdGhhbiBsaW51eCBsb29rIGZvciBzdGF0NjQgaW4gc3lzL3N0YXQuaAorICAqIGZpbGUuYzogaGFuZGxlIHhzdGF0IHZlcnNpb24gX1NUQVQ2NF9WRVIsIGFrYSBzdGF0NjQuCisKKzIwMDEtMDMtMDYgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworICAqIG5ldC5jOiBtYWtlIHN1cmUgU09MXyBvcHRpb25zIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZy4KKyAgKiBzaWduYWwuYzogZGVjbGFyZSBzaWdzZXQgdmFyaWFibGUsIG9ubHkgdXNlZCBvbiBsaW51eCwgaW5zaWRlICNpZmRlZi4KKworMjAwMS0wMi0yMSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIG5ldC5jOiBmaXggZm9ybWF0IGZvciBwcmludGluZyBVbml4IGRvbWFpbiBzb2NrZXRzCisKKzIwMDEtMDItMTkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogdXNlIG5ldyBzeXNfc3lzbWlwcworICAqIHN5c3RlbS5jOiBhZGQgc3lzX3N5c21pcHMgZGVjb2RpbmcKKworMjAwMS0wMi0xNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIENSRURJVFM6IGFkZCBBcmthZGl1c3ogTWlza2lld2ljeiA8bWlzaWVrQHBsZC5vcmcucGw+IHdobworICAgIHN1Ym1pdHRlZCB0aGUgSVA2IHNjb3BlIElEIHVwZGF0ZXMKKyAgKiBhY2NvbmZpZy5oOiBhZGQgSEFWRV9TSU42X1NDT1BFX0lEIGFuZCBIQVZFX1NJTjZfU0NPUEVfSURfTElOVVgKKyAgKiBhY2xvY2FsLm00OiBhZGQgQUNfU0lONl9TQ09QRV9JRCB0byBjaGVjayBpZiBzaW42X3Njb3BlX2lkIGlzCisgICAgYXZhaWxhYmxlCisgICogY29uZmlndXJlLmluOiBjaGVjayBmb3IgaWZfaW5kZXh0b25hbWUgZnVuY3Rpb24gYW5kIHNpbjZfc2NvcGVfaWQKKyAgKiBuZXQuYzogdGVhY2ggcHJpbnRzb2NrIGFib3V0IElQNiBzY29wZSBpZHMKKworMjAwMS0wMi0xNiAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGNvbmZpZ3VyZS5pbjogdGVzdCBmb3IgbmV0aW5ldC90Y3AuaCBhbmQgbmV0aW5ldC91ZHAuaCBleGlzdGFuY2UKKyAgKiBuZXQuYzogaW5jbHVkZSBuZXRpbmV0L3RjcC5oIGFuZCBuZXRpbmV0L3VkcC5oIGlmIHRoZXkgZXhpc3QKKyAgKiBNYWtlZmlsZS5pbjogdXNlIEBtYW5kaXJAIGFuZCBAYmluZGlyQAorCisyMDAwLTExLTI2ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogIG5ldC5jOiBmaXggZm9ybWF0aW5nIGVycm9yIGluIHN5c19zZXRzb2Nrb3B0CisgICogIG5ldC5jOiBhZGQgbGlzdCBvZiBzb2NrZXRsYXllcnMgYW5kIHVzZSB0aGF0IGZvciBbZ3NdZXRzb2Nrb3B0CisKKzIwMDAtMTAtMTIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiB0aW1lLmM6IHVzZSBzeXMvdGltZXguaCBzbyB0aGluZ3MgY29tcGlsZSB3aXRoIDIuMiBrZXJuZWxzCisgICogc3RyZWFtLmM6IHRlc3QgaWYgTVNHXyogY29uc3RhbnRzIGFyZSAjZGVmaW5lZAorCisyMDAwLTA5LTAzICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogcHJvY2Vzcy5jOiBwZXJmb3JtIGJwdCB0cmljayBmb3IgY2xvbmUgYXMgd2VsbCBzbyB3ZSBjYW4gZ2V0IHRoZQorICAgIHBpZCBvZiB0aGUgY2hpbGQgYmVmb3JlIGl0IHN0YXJ0cyBkb2luZyBzb21ldGhpbmcKKyAgKiBmaWxlLmM6IHJlbmFtZSBkaXJlbnQ2NCBzdHJ1Y3QgdG8ga2VybmVsX2RpcmVudDY0IHNvIHRoaW5ncyBjb21waWxlCisgICAgYWdhaW4gd2l0aCBuZXdlciBsaWJjcworICAqIHRlc3QvY2xvbmUuYzogaW1wcm92ZSBvdXIgdGVzdGNhc2UgYSBiaXQKKyAgKiBNZXJnZSBhbm90aGVyIHBhdGNoIGZyb20gR+RlbCBSb3VhbGxhbmQgd2l0aCBGcmVlQlNEIHVwZGF0ZXMKKworMjAwMC0wOS0wMSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxvdHMgb2YgZmlsZXM6IG1lcmdlIHBhdGNoIGZyb20gR2HrbCBSb3VhbGxhbmQgdG8gYWRkCisgICAgc3VwcG9ydCBmb3IgRnJlZUJTRC4KKworMjAwMC0wOC0wOSAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGZpbGUuYzogdXBkYXRlIHRvIHJlZmxlY3QgdGhhdCBzdF9pbm8gc3VkZGVubHkgYmVjYW1lIGEgbG9uZyBsb25nCisgICAgaW4gdGhlIGluIExpbnV4IDIuNC4wLXRlc3Q2CisKKzIwMDAtMDgtMDkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiB0ZXN0L2Nsb25lLmM6IG1pbm9yIGZpeHVwCisgICogQW5vdGhlciBidW5jaCBvZiBwYXRjaGVzIGZyb20gSm9obiBIdWdoZXMgbWVyZ2VkOgorICAqIHNpZ25hbC5jOgorICAgICsgU1ZSNCBwcmludGNvbnRleHQoKTogc2lnc2V0X3QgIT0gc2lnc2V0X3QqCisgICAgKyBnZXRjb250ZXh0IHJldHVybnMgYSB2YWx1ZSwgc28gcHJpbnQgb24gZXhpdCBvZiBzeXNjYWxsCisgICAgKyBhZGQgVUNfRlAgdG8gdWNvbnRleHRfZmxhZ3MgZm9yIE9TIHdyaXRlcnMgdGhhdCBjYW4ndCBzcGVsbAorICAgICsgc3lzX3NpZ25hbCgpOiBzcGVjaWFsIGNhc2UgU0lHX3tFUlIsREZMLElHTn0KKyAgICArIGRlY29kZV9zdWJjYWxsKCk6IG9ubHkgZG8gc3ViY2FsbCByYW5nZSBjaGVja2luZyB3aGVuIG5lZWRlZAorICAqIGJ1bmNoIG9mIFVuaXhXYXJlIHVwZGF0ZXMKKyAgKiBhY2xvY2FsLm00LCBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46IGFkZCB0ZXN0IGZvciBsb25nIGxvbmcgdHlwZQorCisyMDAwLTA3LTA0ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogbmV0LmM6IGFkZCBTT0xfUEFDS0VUIGFuZCBTT0xfUkFXIHNvY2tldCBvcHRpb25zLCB1cGRhdGUKKyAgICBTT0xfSVAgYW5kIFNPTF9UQ1AKKworMjAwMC0wNi0yMyAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIHN0cmFjZS5jOiBjbG9zZSBvdXRmIGJlZm9yZSB3ZSBleGVjIGEgY2hpbGQgcHJvY2VzcworCisyMDAwLTA2LTA5ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KKworICAqIGNvbmZpZ3VyZS5pbjogRG9uJ3QgbGluayBhZ2FpbnN0IGxpYm5zbCBvbiBMaW51eCwgaXQncyB1bm5lY2Vzc2FyeS4KKyAgKiBkZWZzLmggKHN0cnVjdCB0Y2IpOiBNYWtlIGF1eHN0ciBtZW1iZXIgY29uc3QuCisgICogZmlsZS5jIChmc21hZ2ljKTogQW5kIG1hbnkgbW9yZSBtYWdpYyBudW1iZXJzLgorICAqIHV0aWwuYzogRG9uJ3QgaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+IGZvciBnbGliYyAyLjEgYW5kIHVwLgorCisyMDAwLTA0LTI2ICBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogZGVmcy5oOiBiYWxhbmNlICNpZi8jZW5kaWYgYWdhaW4KKyAgKiBzeXN0ZW0uYzogZml4IHJldHVybiBzdGF0ZW1lbnRzIGluIHN5c19jYXBnZXQoKQorICAqIE1lcmdlIHVwZGF0ZXMgZnJvbSBUb3BpIE1pZXR0aW5lbiA8VG9waS5NaWV0dGluZW5AbmljLmZpPjoKKyAgICArIGZpbGUuYzogYWRkIEZfW1NHXUVUU0lHIHRvIGZjbnRsIGZsYWdzCisgICAgKyBzdHJhY2UuYzogZG9uJ3Qgc2V0cmVbZ3VdaWQgaWYgbm90IG5lZWRlZAorICAgICsgc3lzdGVtLmM6IGhhbmRsZSBzeXNfcmVib290IGZvciBMaW51eAorICAgICsgdGVybS5jOiBhZGQgYmF1ZHJhdGUgY29uc3RhbnRzIHVwIHRvIEI0MDAwMDAwCisgICAgKyBsaW51eC8qKi9zeXNjYWxsZW50Lmg6IG5vdGUgdGhhdCBtdW5sb2NrYWxsIGhhcyBubyBhcmd1bWVudHMKKworMjAwMC0wNC0yNSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CisKKyAgKiBDUkVESVRTOiBmaXggZW1haWwgYWRkcmVzcworICAqIHByb2Nlc3MuYzogaGFuZGxlIFBSX1tHU11FVF9VTkFMSUdOIGFuZCBQUl9bR1NdRVRfS0VFUENBUFMKKyAgKiBzaWduYWwuYzogaG9ub3VyIG9mZnNldCBvZiBzaWdjb25maWcgaW4gc2lnZnJhbWUgc3RydWN0dXJlIGZvcgorICAgIExpbnV4L2lhNjQKKyAgKiBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaDogQWRkIHBlcmZtb25jdGwsIHBpdm90cm9vdCwgbWluY29yZSwgYW5kCisgICAgbWFkdmlzZSBzeXNjYWxscy4KKyAgKiBzeXNjYWxsLmMgKHN5c2NhbGxfZW50ZXIpOiBXaXRoIEtldmluJ3MgbGF0ZXN0IHB0cmFjZSBwYXRjaGVzLAorICAgIEFSX0JTUCBwb2ludHMgdG8gdGhlIF9lbmRfIG9mIHRoZSBhY3RpdmUgcmVnaXN0ZXIgZnJhbWUsIHNvIHdlIG5lZWQKKyAgICB0byBhZGp1c3QgYnNwIGJ5IG1vdmluZyBpdCBiYWNrIGJ5IHRoZSBzaXplIG9mIHRoZSBhY3RpdmUgZnJhbWUKKyAgICBiZWZvcmUgdXNpbmcgaXQuCisKKzIwMDAtMDQtMjQgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBwcm9jZXNzLmM6IGFkZCBzcGFyYyBzdXBwb3J0IHRvIGNoYW5nZV9zeXNjYWxsCisKKzIwMDAtMDQtMjIgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBsaW51eC9taXBzL3N5c2NhbGxlbnQuaDogZml4IHNvbWUgdHlwb3MKKworMjAwMC0wNC0xNCAgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oOiBhZGRlZCBuYW1lcyBmb3IgU1ZSNCwgU1lTViwgQlNENC4zIGFuZCBQT1NJWAorICAgIHN5c2NhbGxzCisKKzIwMDAtMDQtMTMgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBkZWZzLmg6IExpbnV4L01JUFMgdXNlcyBzeXNjYWxscyB1cCB0byA+NGssIHNvIHNldCBNQVhfUVVBTFMgdG8KKyAgICA0OTk5CisKKzIwMDAtMDQtMDkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBSRUFETUUtbGludXg6IHVwZGF0ZWQgdG8gbm90ZSB0aGF0IHN0cmFjZSBtaWdodCBub3QgY29tcGlsZQorICAgIHdpdGggZGV2ZWxvcG1lbnQga2VybmVscworICAqIGJqbS5jOiBzeXNfcXVlcnlfbW9kdWxlOiBjaGVjayBpZiBtYWxsb2Mgc3VjY2VlZHMKKyAgKiBzeXN0ZW0uYzogc3lzX2NhcFtnc11ldCgpOiBjaGVjayBpZiBtYWxsb2Mgc3VjY2VlZHMsIG9ubHkgbWFsbG9jIG9uY2UKKyAgKiBsaW51eC9zeXNjYWxsZW50Lmg6IHVwZGF0ZWQgZm9yIDIuMy45OXByZTMKKyAgKiBsaW51eC9hbHBoYS9zeXNjYWxsZW50Lmg6IHVwZGF0ZWQgZm9yIDIuMy45OXByZTMsIGFkZCBhbGwgb3NmIHN5c2NhbGxzCisgICAgZXZlbiB0aG91Z2ggTGludXggZG9lc24ndCBpbXBsZW1lbnQgdGhlbQorICAqIHN5c2NhbGwuYzogYWRkIGdsb2JhbCB2YXJpYWJsZXMgZm9yIE1JUFMgcmVnaXN0ZXJzIGFzIHdlbGwKKyAgKiBzeXNjYWxsLmM6IG1vdmUgZ2xvYmFsIHZhcmlhYmxlcyB0byBiZWZvcmUgZ2V0X3Njbm8gc2luY2UgdGhhdCB1c2VzIHRoZW0KKyAgKiB1dGlsLmM6IG9vcHMsIG1pc3NwZWxsZWQgZGVmaW5lZAorICAqIHByb2Nlc3MuYzogZml4IHB0cmFjZSBjYWxscyBpbiBjaGFuZ2Vfc3lzY2FsbAorICAqIG1lbS5jOiBkZWNvZGUgc3lzX21hZHZpc2UKKyAgKiBNZXJnZSBwYXRjaCBmcm9tIFRvcGkgTWlldHRpbmVuIDxUb3BpLk1pZXR0aW5lbkBuaWMuZmk+CisgICAgKyBhZGQgc3VwcG9ydCBmb3IgcXVvdGFjdGwsIGZkYXRhc3luYywgbWxvY2ssIG1sb2NrYWxsLCBtdW5sb2NrYWxsICYgYWNjdAorICAgICsgc21hbGwgZml4IGZvciBSTElNSVRfKiBhbmQgUlVTQUdFX0JPVEgKKyAgICArIGVuaGFjZSBzdXBwb3J0IGZvciBjYXBnZXQgYW5kIGNhcHNldAorCisyMDAwLTAyLTE5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiB0ZXN0L3Zmb3JrLmM6IG5ldyBmaWxlIHRvIHRlc3QgdmZvcmsgdHJhY2VzCisgICogdGVzdC8uY3ZzaWdub3JlOiBuZXcgZmlsZQorICAqIGRlZnMuaDogVXAgbWF4aW11bSBudW1iZXIgb2YgdHJhY2VkIHByb2Nlc3NlZCB0byA2NAorICAqIHN0cmFjZS5jOiBEaXNhYmxlIHNvbWUgZGVidWdnaW5nIGNvZGUgZnJvbSBkYXZpZG0KKyAgKiBpbXBsZW1lbnQgc2V0YXJnIGZvciBtb3JlIGFyY2hpdGVjdHVyZXMKKyAgKiBpbXBsZW1lbnQgY2hhbmdlX3N5c2NhbGwKKworMTk5OS0xMi0yNyAgTW9ydGVuIFdlbGluZGVyICA8dGVycmFAZGlrdS5kaz4KKworCSogc3lzY2FsbC5jIChsb29rdXBfc2lnbmFsLCBsb29rdXBfZGVzYyk6IGlzZGlnaXQgcmVxdWlyZXMgYW4KKyAJX3Vuc2lnbmVkXyBjaGFyIHBhcmFtZXRlci4KKworMjAwMC0wMi0xNCBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogUzM5MCB1cGRhdGVzCisKKzIwMDAtMDItMDMgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1lcmdlIExpbnV4L2lhNjQgcGF0Y2hlcworCisyMDAwLTAxLTAyIFBhdmVsIE1hY2hlawkgICAgIDxwYXZlbEB1Y3cuY3o+CisKKyAgKiBwcm9iZSBpZiBzeXMvcG9sbC5oIGV4aXN0cyBpbiBjb25maWd1cmUgKyBtaW5vciBjbGVhbnVwcworCisgICogc3lzY2FsbC5jOiBzcGxpdCB0cmFjZV9zeXNjYWxsIGludG8gZmV3IHBpZWNlcyB0byBtYWtlIGNvZGUgcmVhZGFibGUKKworMjAwMC0wMS0yMSBXaWNoZXJ0IEFra2VybWFuICA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFJlbGVhc2UgdmVyc2lvbiA0LjIgdG8gZ2V0IHRoZSBjdXJyZW50IHVwZGF0ZXMgb3V0IGFuZCBzbworICAgIHdlIGNhbiBjb25jZW50cmF0ZSBpbiBmaW5pc2hpbmcgdGhlIGNsb25lIHN1cHBvcnQuCisKKzIwMDAtMDEtMTEgV2ljaGVydCBBa2tlcm1hbiAgPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBBZGQgMTkwMCB0byB0bV95ZWFyIGluIHNwcmludHRpbWUKKworMTk5OS0xMi0yNCAgV2ljaGVydCBBa2tlcm1hbiAgPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAqIGZpbGUuYzogcHJvdGVjdCBwcmludHN0YXQ2NCB3aXRoIFNUQVQ2NCBpbnN0ZWFkIG9mIGxpbnV4IHNvIHdlIGNhbgorICAgY29tcGlsZSBvbiBMaW51eCBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3QgaGF2ZSBpdAorICogdXRpbC5jOiBmaXggTE9PUCBmb3IgQVJNCisKK0ZyaSBEZWMgMjQgMTg6MDU6MDAgRVNUIDE5OTkKKworMTk5OS0xMi0yMyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CisKKyAqIGZpbGUuYzogVXNlIHVnbHkgbGliY19zdGF0IHRyaWNrIGFsc28gZm9yIHN0YXQ2NC4KKyAgIEltcGxlbWVudCBzeXNfc3RhdDY0LCBzeXNfZnN0YXQ2NCwgc3lzX2xzdGF0NjQsIGFuZCBwcmludHN0YXQ2NC4KKyAqIHByb2Nlc3MuYyAoaW50ZXJuYWxfY2xvbmUpOiBGaXggYSBmZXcgdHlwb3MgYW5kIGFkZCBkZWZpbml0aW9ucyB0byBtYWtlCisgICBpdCBhdCBsZWFzdCBjb21waWxlLgorICogbGludXgvc3lzY2FsbC5oOiBEZWNsYXJlIHN5c19zdGF0NjQsIHN5c19sc3RhdDY0LCBhbmQgc3lzX2ZzdGF0NjQuCisgKiBsaW51eC9zeXNjYWxsZW50Lmg6IERlZmluZSB0YWJsZSBlbnRyaWVzIGZvciBzeXNfc3RhdDY0LCBzeXNfbHN0YXQ2NCwKKyAgIGFuZCBzeXNfZnN0YXQ2NC4KKyAqIGFjbG9jYWwubTQ6IERlZmluZSBBQ19TVEFUNjQuCisgKiBhY2NvbmZpZy5oOiBEZWZpbmUgSEFWRV9TVEFUNjQuCisgKiBjb25maWd1cmUuaW46IEFkZCBBQ19TVEFUNjQuCisKK1RodSBEZWMgMjMgMTU6MDE6MzcgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1lcmdlIHBhdGNoIGZyb20gZnRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vbGludXgzOTAvIHRvIGFkZAorICAgIHN1cHBvcnQgZm9yIExpbnV4IG9uIHRoZSBJQk0gUy8zOTAgYXJjaGl0ZWN0dXJlCisgICogcHJvY2Vzcy5jOiBhZGQgaW50ZXJuYWxfY2xvbmUoKSwgY3VycmVudGx5IG9ubHkgc2hvd3MgdGhlIG9wdGlvbnMKKyAgKiBzeXNjYWxsLmM6IHVzZSBpbnRlcm5hbF9jbG9uZSB0byBoYW5kbGUgU1lTX2Nsb25lCisKK01vbiBEZWMgMjAgMDA6Mjc6NTAgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFJld3JpdGUgbW1hcC1oYW5kbGluZyB0byBzdXBwb3J0IG1tYXAyIG9uIExpbnV4CisKK1R1ZSBEZWMgMTQgMTE6MzU6MTYgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE5vdGUgdGhhdCBMaW51eCBjYW4gaGFuZGxlIHN5c19zZW1vcCgpIGFzIHdlbGwKKworVHVlIE5vdiAzMCAxMTowNToyNiBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogSW5jbHVkZSBsaW51eC9pbjYuaCBmb3IgZ2xpYmMyLjAgYW5kIG9sZGVyCisKK01vbiBOb3YgMjkgMTY6MzM6MDQgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1lcmdlIHBhdGNoZXMgZnJvbSBKb2huIEh1Z2hlcyB0byBtYWtlIGNvbmZpZ3VyZSBzdXBwb3J0IFVuaXhXYXJlCisKK1NhdCBOb3YgMjcgMjE6Mzg6MTcgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEVuaGFuY2Ugc3lzX3F1ZXJ5X21vZHVsZQorCitGcmkgTm92IDI2IDEwOjUxOjU1IENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBQYXRjaGVzIGZyb20gSm9obiBIdWdoZXM6CisgICAgKyBjb3NtZWN0aWMgZml4IGluIHN5c19nZXRwbXNnCisgICAgKyBhbGxvdyBuZXQuYyB0byBjb21waWxlIG9uIHN5c3RlbXMgd2l0aG91dCBBRl9JTkVUNgorICAgICsgT25seSB1c2UgbG9uZ190b19zaWdzZXQgb24gTGludXggc3lzdGVtcworICAgICsgVW5peFdhcmUgdHJlYXRzIHNpZ21hc2tfdCBhbmQgc2lnbWFza190KiBhcyB0aGUgc2FtZSB0aGluZworICAgICsgQWRkIHBvbGxoYWNrCisgICAgKyBQYXJzZSBtb3VudCBhcmd1bWVudHMgZm9yIFVuaXhXYXJlCisgICAgKyBBQ0wgZml4ZXMgZm9yIFVuaXhXYXJlCisKK0ZyaSBOb3YgMjYgMDE6Mjg6MDkgQ0VUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFJlbGVhc2UgNC4xIHRvIGdldCBhbGwgdGhlIGNoYW5nZXMgbWFkZSBvdXQgdGhlcmUKKworVGh1IE5vdiAxOCAxODowNDowNCBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2Ugc3RyYWNlZm9yayBmcm9tIEFsZXhleSBLdXpuZXRzb3YgPGt1em5ldEBtczIuaW5yLmFjLnJ1PgorICAgICsgU29ja2V0IGNhbGxzIHBhcnNlZCBiZXR0ZXIKKwkrIGJ1bmNoIG9mIGFscGhhIE9TRiBzeXNjYWxscyBhZGRlZAorCSsgRml4IGFscGhhIDMyLzY0IGJpdCBpc3N1ZXMKKworTW9uIE5vdiAgMSAyMDo1MjowOCBDRVQgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTW92ZSBMaW51eCBrZXJuZWxtb2R1bGUtZnVuY3Rpb25zIGZyb20gc3lzdGVtLmMgdG8gYmptLmMgYW5kCisgICAgcmVtb3ZlIGR1cGxpY2F0ZSBmb3Igc3lzX2NyZWF0ZV9tb2R1bGUKKyAgKiBMaW51eCBNSVBTIHVwZGF0ZXM6CisgICAgKyBQbGF5IHdpdGggI2lmZGVmJ3MgaW4gbmV0LmMgdG8gZ2V0IElQdjYgcmlnaHQKKyAgICArIFVzZSBwcmludGFyZ3MgZm9yIHZtODYtc3lzY2FsbAorCitTdW4gT2N0IDMxIDIyOjAzOjAwIENFVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBMaW51eCBtaXBzIHBhdGNoIGZyb20gRmxvcmlhbiBMb2hvZmYgPGZsb0ByZmM4MjIub3JnPgorCitNb24gT2N0IDExIDAwOjM2OjI1IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2UgcGF0Y2ggZnJvbSBLZWl0aCBPd2VucyA8a2Fvc0BvY3MuY29tLmF1PiB0byBzeXNfcXVlcnlfbW9kdWxlCisgICAgYW5kIHN5c19kZWxldGVfbW9kdWxlIGNvcnJlY3RseQorCitXZWQgT2N0ICA2IDAyOjAwOjMzIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogVXBkYXRlIGN2c2J1aWxkIHRvIGdpdmUgYSBiZXR0ZXIgZXJyb3IgaWYgYXV0b2NvbmYgaXNuJ3QgaW5zdGFsbGVkCisgICogQWRkIHRlc3QgZm9yIGxpbnV4L3B0cmFjZS5oIHRvIGNvbmZpZ3VyZQorICAqIFNpbmNlIHdlIGRlZmluZSBHTlVfU09VUkNFIGluIHRoZSBNYWtlZmlsZSB3ZSBkb24ndCBuZWVkIHRvIGRlZmluZQorICAgIFVTRV9HTlUgaW4gZmlsZS5jIGFueW1vcmUKKworRnJpIFNlcCAxMCAwNDozNToxNiBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqICNkZWZpbmUgVVNFX0dOVSBiZWZvcmUgaW5jbHVkaW5nIGZpbGUuYyBzbyB3ZSBnZXQgc29tZSBleHRyYSBPXyogZmxhZ3MKKworVHVlIEF1ZyAzMSAxNjoyNzoyMSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEFkZCBtaXNzaW5nIH0gaW4gSVB2NiBvdXRwdXQKKworVHVlIEF1ZyAzMSAwMToyMzowOCBDRVNUIDE5OTkgIFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBVcGRhdGUgY29weXJpZ2h0IGZvciBzdHJhY2UtZ3JhcGggdG8gQlNEIHRvIGJlIGNvbnNpc3RlbnQgd2l0aAorICAgIHRoZSByZXN0IG9mIHN0cmFjZQorCitNb24gQXVnIDMwIDAwOjUzOjU3IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogTWVyZ2UgcGF0Y2ggZnJvbSBEYW5pZWwgSmFjb2Jvd2l0ejogS0VSTl9KQVZBXyogYW5kIEtFUk5fU0VDVVJFTFZMIGFyZW4ndAorICAgIGRlZmluZWQgZm9yIGFsbCBrZXJuZWx2ZXJzaW9ucworICAqIEFkZCBzdHJhY2UtZ3JhcGgsIHdyaXR0ZW4gYnkgUmljaGFyZCBCcmFha21hbiA8ZGFya0B4czRhbGwubmw+CisKK1RodSBBdWcgMTkgMTM6MTA6MTUgQ0VTVCAxOTk5IEpha3ViIEplbGluZWsgPGpqQHVsdHJhLmxpbnV4LmN6PgorCisgICogbGludXgvc3BhcmMvc3lzY2FsbC5oOiBEZWNsYXJlIGNyZWF0ZV9tb2R1bGUvaW5pdF9tb2R1bGUuCisgICogY29uZmlndXJlLmluOiBBbGxvdyBjb21waWxhdGlvbiBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnkKKyAgICB0aGFuIHRoZSBzb3VyY2Ugb25lLgorICAqIHNpZ25hbC5jOiBVc2UgYXNtL3JlZy5oIGFuZCBzdHJ1Y3QgcmVncyBpbnN0ZWFkIG9mIHB0X3JlZ3MKKyAgICBzbyB0aGF0IHdlIGRvbid0IGRlcGVuZCBvbiBhc20vcHRyYWNlLmggd2hpY2ggY2xhc2hlcyB3aXRoCisgICAgZ2xpYmMgc3lzL3B0cmFjZS5oLgorICAqIHV0aWwuYzogTGlrZXdpc2UuCisgICogc3lzY2FsbC5jOiBMaWtld2lzZS4KKworV2VkIEF1ZyAgNCAxODowMTo1MCBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIFN5c2NhbGwgOTQgb24gTGludXggYWxwaGEgaXMgc3lzX3BvbGwKKworU3VuIEp1bCAyNSAxNDozODozMyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIE1lcmdlIGluIFVuaXhXYXJlIHBhdGNoZXMgZnJvbSBKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CisKK1RodSBKdWwgMTUgMjM6MDA6MzIgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBwYXRjaCBmcm9tIE1hY2llaiBXLiBSb3p5Y2tpIDxtYWNyb0BkczIucGcuZ2RhLnBsPjoKKyAgICArIENvcnJlY3RseSBpbXBsZW1lbnQgZml4IHN5c19jcmVhdGVtb2R1bGUgKExpbnV4KQorICAgICsgQWRkIGxpbWl0ZWQgaGFuZGxpZyBvZiBzeXNfaW5pdG1vZHVsZSAoTGludXgpCisKK1R1ZSBKdWwgMTMgMTc6MDc6NTAgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBBZGQgY29uZmlndXJlLXRlc3QgZm9yIHN5cy9yZWcuaCBhbmQgdXNlIHRoYXQKKyAgKiBVc2Ugc3lzL3JlZy5oIGluc3RlYWQgb2YgYXNtL3B0cmFjZS5oCisKK1NhdCBKdWwgMTAgMDE6NDY6MTAgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBSZW1vdmUgaGFjayBpbiBzaWduYWwuYyBmb3IgYXJtIGFyY2hpdGVjdHVyZQorICAqIEFkZCBoYWNrIHNvIHdlIGNvbXBpbGUgY29ycmVjdGx5IG9uIHBvd2VycGMKKworRnJpIEp1bCAgOSAwMjoyODoxNiBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEFkZCBhIGNvcnJlY3RlZCBwYXRjaCBmcm9tIERhbmllbCBKYWNvYm93aXR6CisKK1RodSBKdWwgIDggMTY6MDA6MDQgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBwYXRjaCBmcm9tIERhbmllbCBKYWNvYm93aXR6IHRvIGFsbG93IHVzIHRvIHVzZSB0aGUga2VybmVsIHR5cGVzCisgICAgZm9yIHRoZSBzdGF0IHN0cnVjdHVyZQorCitUaHUgSnVuIDI0IDE1OjU0OjE4IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogRml4IHRlc3QgZm9yIHN5cy9yZWcgaW5jbHVkZQorCitUdWUgSnVuIDIyIDE3OjI2OjMzIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogRml4ZWQgc29tZSBMaW51eC9wb3dlcnBjIHNpbGx5bmVzcywgdGhhbmtzIHRvIERhbmllbCBKYWNvYm93aXR6CisgICogRml4ZWQgc29tZSBTdW5PUyBjb21waWxlIHByb2JsZW1zIGVhcmxpZXIgdGhhdCBJIGZvcmdvdCB0byBpbmNsdWRlCisgICAgaGVyZQorCitNb24gSnVuIDE0IDEyOjQ0OjI1IENFU1QgMTk5OQorCisgICogQXZvaWQgbGVha2ludCBmZCBpbnRvIGNoaWxkIHdoZW4gZm9ya2luZywgcGF0Y2ggZnJvbQorICAgIEpvaG4gSHVnaGVzIDxqb2huQENhbHZhLkNPTT4KKworRnJpIEp1biAxMSAxNDo1NDo0NyBDRVNUIDE5OTkKKworICAqIEFwcGxpZWQgSVJJWDY0IHBhdGNoIGZyb20gVGhvbWFzIEUuIERpY2tleSA8ZGlja2V5QGNsYXJrLm5ldD4KKyAgKiBBcHBsaWVkIFNvbGFyaXMgYW5kIG1hbnBhZ2UgdXBkYXRlcyBmcm9tIEd1eSBIYXJyaXMgPGd1eUBuZXRhcHAuY29tPgorCitXZWQgSnVuICA5IDE0OjQ4OjQ5IENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogQnJvdWdodCBzeXNjYWxsIGxpc3QgZm9yIGFscGhhIHVwIHRvIGRhdGUKKworV2VkIEp1biAgMiAxODozMDoxMiBDRVNUIDE5OTkgSmFrdWIgSmVsaW5layA8ampAdWx0cmEubGludXguY3o+CisKKyAgKiBzeXN0ZW0uYzogc3lzX3Vtb3VudDIgc3lzY2FsbCBzdXBwb3J0LgorICAqIGxpbnV4L3NwYXJjL2Vycm5vZW50Lmg6IFVwZGF0ZSBzcGFyYy1saW51eCBlcnJub3MuCisgICogbGludXgvc3BhcmMvc3lzY2FsbC5oOiBVcGRhdGUgdXNlZCBzcGFyYy1saW51eCBzeXNjYWxscy4KKyAgKiBsaW51eC9zcGFyYy9zeXNjYWxsZW50Lmg6IE1hdGNoIDIuMi45IHN5c3RlbSBjYWxscy4KKyAgKiBmaWxlLmM6IHNwYXJjLWxpbnV4IGFzbS9zdGF0LmggdXNlcyBkZXZfdCBldGMuIHR5cGVzLAorICAgIHNvIGl0IG5lZWRzIHN0cmFjZSdzIG93biBjb3B5IG9mIHRoZSBzdGF0IHN0cnVjdHVyZS4KKyAgKiB1dGlsLmM6IE1ha2UgaXQgY29tcGlsZSBvbiBzcGFyYy1saW51eC4KKyAgKiBzdHJhY2UuYzogRml4IHN0cmFjZSAtZiBhbmQgLWZmIG9wZXJhdGlvbiBvbiBzcGFyYy1saW51eC4KKyAgKiBzaWduYWwuYzogcnRfc2lnYWN0aW9uIGhhcyBkaWZmZXJlbnQgYXJndW1lbnRzIG9uIHNwYXJjKi1saW51eAorICAgIGFuZCBhbHBoYS1saW51eC4KKyAgKiBzeXNjYWxsLmM6IFJlY29nbml6ZSBzcGFyYzY0LWxpbnV4IGJpbmFyaWVzLgorCitGcmkgTWF5IDI4IDIxOjA5OjAwIFBTVCBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPgorCisgICogY29uZmlndXJlLmluOiBGaXggdHlwbyAoQ0ZMQUcgLT4gQ0ZMQUdTKS4KKworICAqIHN5c2NhbGwuYzogRG9uJ3QgaW5jbHVkZSBsaW51eC9wdHJhY2UuaCBleHBsaWNpdGx5IGZvciBnbGliYy4KKworVGh1IE1heSAyNyAxMzo1OToyNyBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIEFkZCBzb21lIHN5c2N0bCBzdXBwb3J0LCBwYXRjaCBmcm9tIFVscmljaCBEcmVwcGVyCisKK1dlZCBNYXkgMjYgMDE6MDQ6MzQgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBVc2Uga2VybmVsIGRpcmVudCBzdHJ1Y3R1cmUgZm9yIExpbnV4CisKK1N1biBNYXkgIDkgMDI6MTg6MzAgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBNZXJnZSBpbiBwYXRjaGVzIGZyb20gQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBpc3Nhbi5jcy51bmktZG9ydG11bmQuZGU+CisgICAgKyBzb21lIGxheW91dCBhbmQgb3RoZXIgbWlub3IgZml4ZXMKKyAgICArIGFkZCBzb21lIG02OGstc3BlY2lmaWMgdGhpbmdzIHRvIGxpbnV4L3N5c2NhbGxlbnQuaC4gTm90ZSB0aGF0IG02OGsKKyAgICAgIGlzIHNpbWlsYXIgZW5vdWdoIHRvIGkzODYgdG8gbm90IG5lZWQgaXQncyBvd24gc3ViZGlyZWN0b3J5CisgICAgKyBhZGQgc3VwcG9ydCBmb3Igc2VuZGZpbGUgYW5kIG1yZW1hcCBzeXNjYWxscyBmb3IgTGludXgKKyAgKiBNZXJnZSBpbiBwYXRjaGVzIGZyb20gU2FzY2hhIFNjaHVtYW5uIDxzYXNjaGFAc2NodW1hbm4uMm5zLmRlPgorICAgICsgaW9jdGxzLmggdnMgc3lzL2lvY3RsLmggb24gQWxwaGEgcGxhdGZvcm0KKyAgICArIHBvaW50ZXIgd2FzIGNhc3RlZCB0byBhbiBpbnQgaW4gc3RyZWFtLmMKKyAgICArIHN0cnNpZ25hbCgpIG5lZWRzIC1EX0dOVV9TT1VSQ0UgaW4gQ0ZMQUdTCisgICAgKyBzZXZlcmFsIG90aGVyIGNhc3RzIGNoYW5nZWQKKyAgICArIGNvcnJlY3QgQVJNL1BPV0VSUEMgYXJjaGl0ZWN0dXJlIGRlZmluZXMgaW4gYWNjb25maWcuaAorICAqIE1lcmdlIGluIHBhdGNoZXMgZnJvbSBNb3J0ZW4gV2VsaW5kZXIgPHRlcnJhQGRpa3UuZGs+CisgICAgKyBhZGQgc29tZSBhdXRvY29uZi10ZXN0cyBmb3IgaW5jbHVkZWZpbGVzCisgICAgKyBoYW5kbGUgc29sYXJpcyB2ZXJzaW9uIG9mIHNpZ2NvbnRleHQgc3RydWN0IChhY3R1YWxseSBJIGhhY2tlZCB0aGlzCisgICAgICB1cCBhZ2FpbiwgYnV0IHRoZSBpZGVhIGlzIGhpcyA6KQorCitTdW4gQXByIDE4IDIyOjMyOjQyIENFU1QgMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3YWtrZXJtYUBkZWJpYW4ub3JnPgorCisgICogVXBkYXRlIHN5c2NhbGxzIGZvciBsaW51eCBhbHBoYSwgcGF0Y2ggZnJvbSBCYXJ0IFdhcm1lcmRhbQorICAgIDxiYXJ0d0BkZWJpYW4ub3JnPgorICAqIFVwZGF0ZSBzcGFyYyBjb2RlIHNvIGl0IGFjdHVhbGx5IGNvbXBpbGVzCisKK0ZyaSBBcHIgMTYgMDI6MTg6MDUgQ0VTVCAxOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdha2tlcm1hQGRlYmlhbi5vcmc+CisKKyAgKiBBZGQgc3VwcG9ydCBmb3Igb2xkXypzdGF0IGZ1bmN0aW9ucyBmb3IgTGludXguIFBsZWFzZSBub3RlIHlvdSBuZWVkCisgICAgdG8gdXNlIHJlYXNvbmFibHkgcmVjZW50IGtlcm5lbCBoZWFkZXJzIHRvIGNvbXBpbGUgc3RyYWNlIG5vdy4KKyAgKiBDaGFuZ2UgcmVmZXJlbmNlcyB0byBMSU5VWCBpbnRvIGxpbnV4IGluIGZpbGUuYworICAqIEZpeCBpbmNsdWRlIGZvciBMRFQgaW4gbWVtLmMKKworVGh1IEFwciAxNSAyMjoyODoxNSBDRVNUIDE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKworICAqIENoYW5nZSBpbiBzdHJhY2UgbWFpbnRhaW5lcnNoaXAsIGpycyBwYXNzZWQgdGhlIHRvcmNoIHRvIG1lLgorICAqIFVzZSBhdXRvY29uZiAyLjEzCisgICogSW5jb3Jwb3JhdGUgYWxsIGNoYW5nZXMgYWxyZWFkeSBtYWRlIGluIHRoZSBEZWJpYW4gc3RyYWNlIHBhY2thZ2U6CisgICAgKyBjb21waWxlcyB3aXRoIG1vcmUgTGludXgga2VybmVscworICAgICsgYWRkZWQgc3VwcG9ydCBmb3IgbW9yZSBMaW51eCBhcmNoaXRlY3R1cmVzCisgICAgKyBhZGQgc3VwcG9ydCBmb3IgYSBsb3Qgb2YgZXh0cmEgc3lzY2FsbHMKKyAgICArIGZpeCBzb21lIHByb2JsZW1zIHdpdGggaGFuZ2luZyBjaGlsZHJlbgorICAgICsgY2hlY2sgc3RyYXkgc3lzY2FsbCBhZnRlciBleGVjdgorICAgICsgZGVjb2RlIGNhcGdldCBhbmQgY2Fwc2V0IGFyZ3VtZW50cworICAgICsgYWRkIG1vcmUgY29uc3RhbnRzIHRvIG5ldC5jCisgICAgKyBkZXRlY3QgUk9TRSBuZXR3b3JraW5nCisgICAgKyBhZGQgbW9yZSBwcm90b2NvbCBmYW1pbGllcyB0byBkb21haW5zCisgICAgKyBhZGQgSVBJUCBwcm90b2NvbAorICAgICsgYWRkZWQgTVNHX1BST1hZIGFuZCBNU0dfQ1RSVU5DIHRvIG1zZ19mbGFncworICAgICsgYWRkZWQgU09fQlNEQ09NUEFUIGFuZCBTT19SRVVTRVBPUlQgdG8gc29ja29wdGlvbnMKKyAgICArIGFkZGVkIElQLCBJUFggYW5kIFRDUC1vcHRpb25zCisgICAgKyBhZGRlZCBJUCwgSVBYIGFuZCBUQ1Agc3VwcG9ydCB0byBnZXQtL3NldHNvY2tvcHQoKQorICAgICsgYWRkZWQgSVBYIHN1cHBvcnQKKyAgICArIHVwZGF0ZWQgaGFuZGxpbmcgb2Ygc2lnbmFscworCitTdW4gT2N0IDI3IDIyOjI4OjAwIDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB1dGlsLmMgKHVtb3Zlc3RyKSBbTElOVVhdOiBIYW5kbGUgTGludXggbGlrZSBTdW5PUzQKKwlpbnN0ZWFkIG9mIFNWUjQuICBUaGF0IGlzLCByZWFkIGEgZmV3IGJ5dGVzIGF0IGEgdGltZQorCXRvIGF2b2lkIG92ZXJydW5uaW5nIHRoZSBlbmQgb2YgdGhlIHN0YWNrLgorCitGcmkgTWF5IDMxIDAxOjQ4OjQ5IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4xIGlzIHJlbGVhc2VkLgorCitUaHUgTWF5IDIzIDAxOjA0OjQzIDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBhY2xvY2FsLm00IChBQ19ERUNMX1NZU19FUlJMSVNUKTogVHJ5IGxvb2tpbmcgaW4gc3RkaW8uaAorCWFzIHdlbGwgc2luY2UgdGhhdCdzIHdoZXJlIGdsaWJjIGRlY2xhcmVzIGl0LiAgR28gZmlndXJlLgorCSogc2lnbmFsLmMgKHN5c19zaWdyZXR1cm4pIFtBTFBIQV06IFVzZSBzaWdjb250ZXh0CisJaW5zdGVhZCBvZiBzaWdjb250ZXh0X3N0cnVjdCBzaW5jZSBnbGliYyB2NSsgYXBwYXJlbnRseQorCXBsYXlzIGdhbWVzIHdpdGggdGhlIG5hdGl2ZSBPUyBuYW1lc3BhY2UuCisJRnJvbSBEYXZpZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQEFaU3Rhck5ldC5jb20+LgorCitNb24gTWF5IDIwIDIzOjE3OjE0IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjE0IGlzIHJlbGVhc2VkLgorCisJKiBhY2xvY2FsLm00IChBQ19TVFJVQ1RfTVNHX0NPTlRST0wpOiBOZXcgbWFjcm8uCisJKiBjb25maWd1cmUuaW46IEFkZCBjYWxsIHRvIEFDX1NUUlVDVF9NU0dfQ09OVFJPTC4KKwkqIG5ldC5jIChwcmludG1zZ2hkcik6IEhhbmRsZSBCU0QgNC4zIGFuZCA0LjQgbXNnaGRyIG1lbWJlcnMKKyAJZGlmZmVyZW50bHkuCisJUmVwb3J0ZWQgYnkgSGVucmlrIFN0b3JuZXIgPHN0b3JuZXJAb3NpcmlzLnBpbmcuZGs+LgorCisJKiBjb25maWd1cmUuaW46IChBQ19DSEVDS197SEVBREVSUyxGVU5DU30pOiBBZGQgY2hlY2tzIGZvcgorIAlzeXMvZmlsaW8uaCBhbmQgc3lzL3N0cmVhbS5oIGFuZCByZW1vdmUgY2hlY2sgZm9yIHBvbGwuCisJKiBkZXNjLmMgKGRlY29kZV9zZWxlY3QsIHN5c19zZWxlY3QsIHN5c19vbGRzZWxlY3QpIFtMSU5VWF06CisgCUhhbmRsZSBvbGQgYW5kIG5ldyBzdHlsZXMgb2YgYXJndW1lbnQgcGFzc2luZyBmb3Igc2VsZWN0IG9uIExpbnV4LgorCSogaW9jdGwuYywgc3RyZWFtLmM6IENvbmRpdGlvbmFsaXplIHN0cmVhbSBjb2RlIG9uIHByZXNlbmNlIG9mCisJc3lzL3N0cmVhbS5oIGluc3RlYWQgb2YgcG9sbCBiZWNhdXNlIGdsaWJjIGltcGxlbWVudHMgcG9sbCBidXQKKwlub3QgdGhlIHJlc3Qgb2YgdGhlIHN0cmVhbSBpbnRlcmZhY2UuCisJKiBzaWduYWwuYyBbTElOVVhdOiBTdGFuZGFyZGl6ZSBvbiB0aGUgbmFtZSBzaWdjb250ZXh0X3N0cnVjdC4KKwkoc3lzX3NpZ3Byb2NtYXNrKSBbQUxQSEFdOiBIYW5kbGUgT1NGIGZsYXZvciB3aGljaCBpcyBtb3JlIGxpa2UKKwlzaWdzZXRtYXNrLgorCSogdGVybS5jICh0ZXJtX2lvY3RsKTogVXNlIF9WTUlOLCBpZiBwcmVzZW50LCBmb3IgVEN7RyxTfUVUQSouCisJKiB1dGlsLmMgKHVtb3ZlbiwgdW1vdmVzdHIpOiBNb3ZlIGRhdGEgaW4gbG9uZy1zaXplZCBjaHVua3MKKwlhdCBhIHRpbWUsIGluc3RlYWQgb2YgaGFyZCBjb2RpbmcgaXQgdG8gYmUgNC4KKwlGcm9tIERhdmlkIE1vc2Jlcmdlci1UYW5nIDxkYXZpZG1AQVpTdGFyTmV0LmNvbT4uCisKK01vbiBNYXkgMjAgMDE6MTk6MzYgMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuMTMgaXMgcmVsZWFzZWQuCisKKwkqIGNvbmZpZ3VyZS5pbiAoQUNfQ0hFQ0tfSEVBREVSUyk6IEFkZCBjaGVjayBmb3IgYXNtL3NpZ2NvbnRleHQuaC4KKwkqIHNpZ25hbC5jIFtIQVZFX0FTTV9TSUdDT05URVhUX0hdOiBDb25kaXRpb25hbGx5IGluY2x1ZGUKKwlhc20vc2lnY29udGV4dC5oIHRvIGRlZmluZSBzaWdjb250ZXh0X3N0cnVjdCBhbmQgZG9uJ3QgZGVmaW5lIGl0CisJbG9jYWxseSBpZiB0aGUgaGVhZGVyIGlzIHByZXNlbnQuCisKKwkqIHN5c2NhbGwuYyAobmVycm5vc3swLDJ9KTogQ29ycmVjdCBzaXplIGNvbXB1dGF0aW9uLgorCisJKiBNYWtlZmlsZS5pbjogUmVtb3ZlIGRlcGVuZGVuY2llcyBhbmQgcnVsZXMgcmVsYXRpbmcgdG8gZmlsZXMKKyAJbm9ybWFsbHkgZm91bmQgaW4gdGhlIG9zIGRpcmVjdG9yeS4gIEJlY2F1c2Ugb2YgdGhlIG5ldyBzY2hlbWUgd2UKKyAJZG9uJ3Qga25vdyBwcmVjaXNlbHkgd2hlcmUgdGhleSBjb21lIGZyb20uICBTaWdoLgorCSogc2lnbmFsZW50LnNoOiBNYWtlIGl0IHdvcmsgZm9yIHN1bm9zNCwgbGludXgsIGFuZCBzdnI0LgorCSoge3N1bm9zNCxsaW51eHssL2FscGhhfSxzdnI0fS9NYWtlZmlsZS5pbjogTWFrZSBydWxlcyBjb3JyZXNwb25kCisgCXRvIHRyYWRpdGlvbmFsIG1ha2Ugc3ludGF4LiAgQWRkIHNpZ25hbGVudC5oIHRvIGZpbGVzIHdoaWNoIGNhbgorIAl1bmNvbmRpdGlvbmFsbHkgYmUgcmVidWlsdC4gIFByZXZlbnQgc2lnbmFsZW50LmggZnJvbSBiZWluZworIAl1bmNvbmRpdGlvbmFsbHkgYmVpbmcgcmVidWlsdCBzaW5jZSBpdCdzIGN1c3RvbWl6ZWQuCisJKiB7c3Vub3M0LGxpbnV4eywvYWxwaGF9LHN2cjR9L3tpb2N0bGVudCxlcnJub2VudCxzaWduYWxlbnR9Lmg6CisgCVVzZSB2ZXJzaW9ucyBidWlsdCBieSB7aW9jdGxlbnQsZXJybm9lbnQsc2lnbmFsdGVudH0uc2guCisgIAkqIHN1bm9zNC9pb2N0bGVudC5zaDogV29yayBhcm91bmQgc3ByaW50ZiB0cm91YmxlcyB3aXRoIFN1bk9TCisgCTQuMS40IGFuZCBnY2MgMi43LjIuCisKK1N1biBNYXkgMTkgMTc6MTQ6MDkgMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW46IEFkZCBPU0FSQ0ggY29uY2VwdCB0byBmaW5pc2gKKwlidWlsZCBzdXBwb3J0IGZvciB0aGUgYWxwaGEuCisJKiBNYWtlZmlsZS5pbiwgbGludXgvTWFrZWZpbGUuaW46IFJld3JpdGUgY2xlYW4sIGRpc3RjbGVhbiwKKwlhbmQgbWFpbnRhaW5lci1jbGVhbiBydWxlcy4KKwkqIGRlZnMuaCwgaW9jdGxzb3J0LmM6IE1ha2UgaW9jdGwgY29kZSBtZW1iZXIgdW5zaWduZWQuCisJKiBpb2N0bC5jLCBpb2N0bHNvcnQuYyAoY29tcGFyZSk6IFBlcmZvcm0gZXhwbGljaXQgY2hlY2tpbmcKKwlmb3IgbGVzcywgZ3JlYXRlciwgYW5kIGVxdWFsIHNpbmNlIHN1YnRyYWN0aW9uIG9uIHR3bydzCisJY29tcGxlbWVudCBudW1iZXJzIGlzbid0IGFuIG9yZGVyIHJlbGF0aW9uIChpdCBpc24ndCB0cmFuc2l0aXZlKSEKKwkqIGxpbnV4L01ha2VmaWxlLmluOiBBZGQgcnVsZXMgZm9yIHRoZSBzaWduYWxlbnQuaCBmaWxlLgorCSogbGludXgvYWxwaGEvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgorCitTdW4gTWF5IDE5IDAxOjEyOjI4IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjEyIGlzIHJlbGVhc2VkLgorCisJKiBsaW51eHssYWxwaGF9L2lvY3RsZW50LnNoOiBUd2VhayBmb3IgcmVjZW50IGtlcm5lbHMuCisJRnJvbSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCisKKwkqIGRlZnMuaCAoU1VQUE9SVEVEX1BFUlNPTkFMSVRFUywgREVGQVVMVF9QRVJTT05BTElUWSk6IE5ldy4KKwkqIHN5c2NhbGwuYyAoc2V0X3BlcnNvbmFsaXR5KTogTmV3LgorCSogc3RyYWNlLmMgKG1haW4pOiBDYWxsIHNldF9wZXJzb25hbGl0eS4KKyAJKiBkZWZzLmgsIHN5c2NhbGwuYywgaW9jdGwuYywgc2lnbmFsLmM6IE1ha2Ugc3lzZW50LCBlcnJub2VudCwKKyAJaW9jdGxlbnQsIGFuZCBzaWduYWxlbnQgaW5kaXJlY3QgcG9pbnRlcnMgYW5kIHJlZGlyZWN0IHRoZW0KKwliYXNlZCBvbiBwZXJzb25hbGl0eS4KKwkqIHtzdW5vczQsc3ZyNCxsaW51eHssL2FscGhhfX0vc2lnbmFsZW50Lmg6IE5ldyBmaWxlcy4KKwlTdWdnZXN0ZWQgYnkgVG9tIER5YXMgPHRkeWFzQGVkZW4ucnV0Z2Vycy5lZHU+LgorCisJKiB1dGlsLmMgKHVwZWVrKTogSGFuZGxlIGNhc2Ugd2hlcmUgcHRyYWNlIHJldHVybnMgYSBsb25nCisJYW5kIHNpemVvZihsb25nKSAhPSBzaXplb2YoaW50KS4KKwlGcm9tIFJpY2hhcmQgSGVuZGVyc29uIDxyaWNoYXJkQHR3aWRkbGUudGFtdS5lZHU+CisKK0ZyaSBNYXkgMTcgMjE6MDM6MzYgMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuMTEgaXMgcmVsZWFzZWQuCisKKwkqIG1hbnkgZmlsZXM6IEZpeCBtb3JlIHByaW50ZiB3YXJuaW5ncyBmb3Igb3RoZXIgcGxhdGZvcm1zLgorCisJKiBpcGMuYyAoc3lzX21zZ3JjdikgW0xJTlVYXTogQ29uZGl0aW9uYWxpemUgZGVmaW5pdGlvbiBvZiBpcGNfd3JhcHBlci4KKworCSogbGludXgvZHVtbXkuaDogSGFuZGxlIG1pc3NpbmcgbGlicmFyeSBzdXBwb3J0IGZvciB7c2VuZCxyZWN2fW1zZy4KKwlSZXBvcnRlZCBieSBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBiaWdidWcuZnJhbmtlbi5kZT4uCisKKwkqIGxpbnV4L3N5c2NhbGwuaCAoc3lzX3V0aW1lcyk6IEZpeCBhIHR5cG8gaW4gdGhlIGRlY2xhcmF0aW9uLgorCUZyb20gVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYmlnYnVnLmZyYW5rZW4uZGU+LgorCitGcmkgTWF5IDE3IDAwOjUwOjA2IDE5OTYgIEouIFJpY2hhcmQgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjEwIGlzIHJlbGVhc2VkLgorCisJKiBNYWtmaWxlLmluOiBBZGQgb3MvYXJjaCB0byBpbmNsdWRlcyBzbyB0aGF0IGEgZ2l2ZW4gYXJjaAorCShsaWtlIGFscGhhKSBjYW4gb3ZlcnJpZGUgdGhlIG5hdGl2ZSBhcmNoIChsaWtlIGkzODYpLgorCSogY29uZmlndXJlLmluOiBDaGVjayBmb3Igc2VuZG1zZy4KKworCSogbmV0LmM6IE1ha2Ugc2VuZG1zZyBhbmQgcmVjdm1zZyBkZXBlbmRlbnQgb24gYW4gYXV0b2NvbmYKKwl0ZXN0LiAgUmVwb3J0ZWQgYnkgTWljaGFlbCBFIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+LgorCisJKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46IERldGVjdCB0aGUgYWxwaGEuCisJKiBpb2N0bC5jOiBIYW5kbGUgdGhlIGFscGhhLgorCSogZGVmcy5oOiBNYWtlIHNvbWUgbWVtYmVycyBsb25nIGZvciB0aGUgYWxwaGEuICBEZWZpbmUKKwlzb21lIHJlZ2lzdGVyIG5pY2tuYW1lcy4gIEFkZCBzdXBwb3J0IGZvciBXQUlURVhFQ1ZFLgorCSogZmlsZS5jIFtBTFBIQV06IFN1cHBvcnQgdGhlIGFscGhhIGZvciBzdGF0ZnMuICBBZGQKKwlvc2Zfc3RhdGZzIGFuZCBvc2ZfZnN0YXRmcyBmb3IgdGhlIGFscGhhLiAgTWFrZSBkYW1uIHN1cmUKKwltYWpvciBhbmQgbWlub3IgcmVzdWx0cyBhcmUgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gcHJpbnRmLgorCSogc2lnbmFsLmMsIHN5c2NhbGwuYzogU3VwcG9ydCB0aGUgYWxwaGEuCisJKiBwcm9jZXNzLmM6IEFkZCBhbHBoYSB1c2VyIG9mZnNldHMuCisJKiBtb3N0IGZpbGVzOiBVc2UgJWw/IGZvciBwcmludGYgYXJndW1lbnRzIHNpbmNlCisJbW9zdCBhcmUgbm93IGxvbmdzIGZvciB0aGUgYWxwaGEuCisJKiBsaW51eC9hbHBoYS97ZXJybm9lbnQuaCxpb2N0bGVudC57aCxzaH0sc3lzY2FsbGVudC5ofToKKwlOZXcgZm9yIHRoZSBhbHBoYS4KKwlGcm9tIFRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGJpZ2J1Zy5mcmFua2VuLmRlPi4KKworV2VkIE1heSAxNSAwMDoyOTozNyAxOTk2ICBKLiBSaWNoYXJkIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC45IGlzIHJlbGVhc2VkLgorCisJKiBjb25maWcuaW4sIGNvbmZpZy5zdWIsIGluc3RhbGwtc2g6IFVwZ3JhZGUgdG8gYXV0b2NvbmYgMi4xMC4KKworCSogbGludXgvZHVtbXkuaCwgbGludXgvc3lzY2FsbGVudC5oLCBsaW51eC9zeXNjYWxsLmg6IEFkZCByZWNlbnQKKwlMaW51eCBrZXJuZWwgdmVyc2lvbiBzeXN0ZW0gY2FsbHMuCisKK1dlZCBNYXIgMTMgMDE6MDM6MzggMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIGlwYy5jIFtTVU5PUzRdOiBBZGQgU3VuT1Mgc3VwcG9ydCBmb3IgZGVjb2RpbmcgSVBDIGNhbGxzLgorCSogc3lzY2FsbC5jIFtTVU5PUzRdOiBDb21waWxlIGRlY29kZV9zdWJjYWxsIG9uIFN1bk9TIGFuZAorCWRlY29kZSBJUEMgY2FsbHMgdXNpbmcgaXQuCisJKiBzdW5vczQvZHVtbXkuaDogQWxpYXMgc3lzX3NlbW9wIHRvIHByaW50YXJncy4KKwkqIHN1bm9zNC9zeXNjYWxsLmg6IEFkZCBuZXcgcHNldWRvIHN5c2NhbGxzIGZvciBJUEMuCisJKiBzdW5vczQvc3lzY2FsbGVudC5oOiBJbmNsdWRlIG5ldyBzdWJjYWxscyBmb3IgSVBDLgorCUZyb20gTWF0dGhpYXMgUGZhbGxlciA8bGVvQGRhY2hhdS5tYXJjby5kZT4uCisKK1R1ZSBGZWIgMTMgMjI6MDg6MjUgMTk5NiAgSi4gUmljaGFyZCBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuOCBpcyByZWxlYXNlZC4KKworCSogdGltZS5jIFtMSU5VWF06IEV4cGxpY2l0bHkgaW5jbHVkZSBsaW51eC92ZXJzaW9uLmguCisKKwkqIHN0cmFjZS5jIChtYWluKTogRG9uJ3QgbGV0IHRoZW0gZXZlbiAqdHJ5KiB0bworCWdldCBzdHJhY2UgdG8gYXR0YWNoIHRvIGl0c2VsZiBzaW5jZSBzb21lIHN5c3RlbXMKKwlkb24ndCBoYW5kbGUgdGhpcyBjYXNlIHZlcnkgZ3JhY2VmdWxseS4KKwlSZXBvcnRlZCBieSBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGNhaXAucnV0Z2Vycy5lZHU+LgorCisJKiBNYWtlZmlsZS5pbiAoZGlzdGNsZWFuKTogRml4IGl0IGZvciBzdWJkaXJlY3Rvcmllcy4KKworCSogc3Vub3M0L3N5c2NhbGxlbnQuaCwgc3ZyNC9zeXNjYWxsZW50Lmg6IEZpbGwgaW4gdGhlIG5ldworCXN5c19mbGFncyBtZW1iZXIgZm9yIGVhY2ggZGVmaW5lZCBzeXN0ZW0gY2FsbC4KKworRnJpIERlYyAgOCAwMToxNzoyOCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogZGVmcy5oIChUUkFDRV8qKTogTmV3IGZsYWdzIHRvIGRlc2NyaWJlIHdoYXQgY2xhc3MKKwlvZiBzeXN0ZW0gY2FsbCBlYWNoIHN5c3RlbSBjYWxsIGlzLgorCShzeXNlbnQpOiBBZGQgc3lzX2ZsYWdzIG1lbWJlci4KKwkqIHN5c2NhbGwuYyAoc3lzZW50KTogRGVmaW5lIChhbmQgbGF0ZXIgdW5kZWYpIGFiYnJldmlhdGlvbnMKKwlmb3IgdGhlIHN5c3RlbSBjYWxsIGNsYXNzIGZsYWdzLgorCShsb29rdXBfY2xhc3MpOiBOZXcgZnVuY3Rpb24gdG8gdHJhbnNsYXRlIHN0cmluZ3MgdG8KKwlzeXN0ZW0gY2FsbCBjbGFzcyBmbGFncy4KKwkocXVhbGlmeSk6IEhhbmRsZSBuZXcgc3lzdGVtIGNhbGwgY2xhc3MgbWVjaGFuaXNtLgorCSogbGludXgvc3lzY2FsbGVudC5oOiBGaWxsIGluIHRoZSBuZXcgc3lzX2ZsYWdzIG1lbWJlcgorCWZvciBlYWNoIGRlZmluZWQgc3lzdGVtIGNhbGwuCisKKwkqIGRlZnMuaCAocHJpbnRfc29jayk6IFJlbW92ZSByZWR1bmRhbnQgYW5kIG5vbi1LJlIgQworCWNvbXBhdGlibGUgcHJvdG90eXBlLiAgRnJvbSBKdWVyZ2VuIFdlaWdlcnQKKwk8am53ZWlnZXJAaW1tZDQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+LgorCitUaHUgRGVjICA3IDAxOjE3OjQwIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBsaW51eC9pb2N0bGVudC5zaDogVHdlYWsgdG8gaW1wcm92ZSBpb2N0bCBhY2N1cmFjeS4KKwlGcm9tIE1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0Pi4KKworCSogc3lzdGVtLmMgKGluY2x1ZGVzKSBbTElOVVhdOiBBZGQgbGludXgvbmZzLmggZm9yIHJlY2VudAorCWtlcm5lbHMuICBGcm9tIE1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0Pi4KKworV2VkIERlYyAgNiAyMTo1MjoyOCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogZmlsZS5jIChzcHJpbnRmc3R5cGUpOiBFbmNsb3NlIHN0cmluZyByZXN1bHQgaW4gZG91YmxlCisJcXVvdGVzLgorCisJKiB0aW1lLmMgKHN5c19hZGp0aW1leCkgW0xJTlVYXTogQ29uZGl0aW9uYWxpemUKKwljb25zdGFudGx5IGV2b2x2aW5nIHRpbWV4IHN0cnVjdHVyZS4KKwlGcm9tIEFhcm9uIFVja28gPFVDS09AVkFYMS5ST0NLSFVSU1QuRURVPi4KKworCSogZGVmcy5oLCBzeXNjYWxsLmMsIHN0cmFjZS5jOiBSZW5hbWUgc3lzY2FsbCB0bworCXRyYWNlX3N5c2NhbGwgYW5kIGNoYW5nZSBwcm90b3R5cGUgYW5kIGFsbCBjYWxsZXJzCisJYmVjYXVzZSBvZiBicm9rZW4gTGludXggc2hhcmVkIGxpYnJhcmllcy4KKwlGcm9tIEFhcm9uIFVja28gPFVDS09AVkFYMS5ST0NLSFVSU1QuRURVPi4KKworCSogTWFrZWZpbGUuaW4gKGNsZWFuKTogQ2hlY2sgZm9yIGEgZmlsZSB3aXRoIHRlc3QgLWYgbm90CisJdGVzdCAtZC4gIEZyb20gQWFyb24gVWNrbyA8VUNLT0BWQVgxLlJPQ0tIVVJTVC5FRFU+LgorCitUdWUgU2VwIDI2IDAyOjMyOjMxIDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjcgaXMgcmVsZWFzZWQuCisKKwkqIHV0aWwuYyAoc3RyaW5nX3F1b3RlKTogRml4IHRoaW5rbyB3aGljaCBjYXVzZWQgY29yZQorCWR1bXBzIGZvciBzdHJpbmdzIHdpdGggcXVvdGVzIGluIHRoZW0uCisJUmVwb3J0ZWQgYnkgTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4uCisKKwkqIGxpbnV4L01ha2VmaWxlLmluIChlcnJub2VudC5oIHJ1bGUpOiBHcmFiIGFsbCBlcnJuby5oCisJZmlsZXMgZnJvbSAvdXNyL2luY2x1ZGUsIG5vdCBqdXN0IHRoZSBsaW51eCBvbmUuCisJRnJvbSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCisKKwkqIGxpbnV4L2Vycm5vZW50LnNoOiBUb3RhbCByZXdyaXRlIHRvIGhhbmRsZSBtb3JlIGlvY3RscyB3aXRoCisJZmV3ZXIgZmFsc2UgcG9zaXRpdmVzIG9uIG1vcmUga2VybmVsIGZsYXZvcnMuCisJRnJvbSBNaWNoYWVsIEUgQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4uCisKK01vbiBTZXAgIDQgMDE6Mjk6MjIgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuNiBpcyByZWxlYXNlZC4KKworCSogbGludXgvZHVtbXkuaCwgbGludXgvc3lzY2FsbC5oLCBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZAorCXN5c19tc3luYy4KKwkqIG1lbS5jIChtY3RsX2Z1bmNzLCBtY3RsX2xvY2thcywgc3lzX21jdGwpOiBDb25kaXRpb25hbGl6ZQorCW9uIE1DX1NZTkMgaW5zdGVhZCBvZiBIQVZFX01DVEwuCisJKG1jdGxfc3luYyk6IENvbmRpdGlvbmFsaXplIG9uIE1TX0FTWU5DIGluc3RlYWQgb2YgSEFWRV9NQ1RMLgorCShzeXNfbXN5bmMpOiBOZXcgZnVuY3Rpb24uCisKK1NhdCBTZXAgIDIgMTI6MDY6MDQgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIGxpbnV4L2R1bW15LmgsIGxpbnV4L3N5c2NhbGwuaCwgbGludXgvc3lzY2FsbGVudC5oOiBBZGQKKwlzeXNfZmxvY2sgYW5kIHN5c19nZXRkZW50cy4KKwkqIGRlc2MuYyAoZmxvY2tjbWRzLCBzeXNfZmxvY2spOiBDb25kaXRpb25hbGl6ZSBvbiBMT0NLX1NICisJbm90IFNVTk9TNC4KKwkqIGZpbGUuYyAoc3lzX2dldGRlbnRzKTogRGVmaW5lIHVuY29uZGl0aW9uYWxseSBhbmQgaGFuZGxlCisJTElOVVggY2FzZS4KKwkqIHN0cmFjZS5jIChtYWluKTogRGlzYWxsb3cgdXNlcm5hbWUgb3B0aW9uIHVubGVzcyBib3RoIHJlYWwKKwlhbmQgZWZmZWN0aXZlIHVpZHMgYXJlIHJvb3QuCisKK1dlZCBBdWcgMzAgMDE6Mjk6NTggMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHN0cmFjZS5jIChtYWluKTogRW5zdXJlIHRoYXQgcnVuX3VpZCBhbmQgcnVuX2dpZCBhcmUKKwlhbHdheXMgc2V0IHRvIHNvbWV0aGluZyBtZWFuaW5nZnVsLgorCShtYWluLCBuZXdvdXRmKSBbIVNWUjRdOiBTd2FwIHJlYWwgYW5kIGVmZmVjdGl2ZSB1aWRzIHdoaWxlCisJb3BlbmluZyBhbnkgb3V0cHV0IGZpbGVzLgorCShtYWluKSBbIVNWUjRdOiBUcmVhdCBlZmZlY3RpdmUgdWlkIG9mIHJvb3QgYXMgYSByZXF1ZXN0CisJdG8gaGFuZGxlIHN1aWQgYmluYXJpZXMgY29ycmVjdGx5IHVzaW5nIHRoZSByZWFsIHVpZCBvZgorCXRoZSBpbnZva2luZyB1c2VyLgorCitTYXQgQXVnIDE5IDAwOjA2OjA4IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBNYWtlZmlsZS5pbjogQWRkIGB8fCB0cnVlJyB0byBjbGVhbiBydWxlIGJlY2F1c2UKKwlhbHRob3VnaCBHTlUgbWFrZSAzLjc0IHVzZXMgYHNoIC1jJyB0byBpbnZva2UgY29tbWFuZHMKKwlldmVyeSBvdGhlciBtYWtlIGluIHRoZSB3b3JsZCB1c2VzIGBzaCAtZWMnLgorCisJKiBzeXNjYWxsLmMgKHN5c2NhbGwpIFtTVlI0LCBNSVBTXTogVGhlIGZpZnRoIGFuZCBzdWJzZXF1ZW50CisJYXJndW1lbnRzIGFwcGVhciB0byBiZSBzdG9yZWQgb24gdGhlIHN0YWNrLCBub3QgaW4gdGhlCisJcmVnaXN0ZXJzIGZvbGxvd2luZyBBMyAoZW1waXJpY2FsIHJlc3VsdCkuCisKKwkqIGRlZnMuaDogQWRkIHByb3RvdHlwZSBmb3IgcHJpbnRzb2NrLgorCSogc3ZyNC9kdW1teS5oOiBSZW1vdmUgZ2VuZXJpYyBoYW5kbGluZyBvZiBzeXNfbW91bnQuCisJKiBzeXN0ZW0uYyBbU1ZSNCwgTUlQU106IEluY2x1ZGUgc2V2ZXJhbCBzeXN0ZW0gaGVhZGVycyB0byBjbGVhbmx5CisJZ2V0IGFjY2VzcyB0byBTR0kgbW91bnQgaW5mb3JtYXRpb24uCisJKG1vdW50X2ZsYWdzLCBuZnNfZmxhZ3MpIFtTVlI0LCBNSVBTXTogTmV3IG9iamVjdHMuCisJKHN5c19tb3VudCkgW1NWUjQsIE1JUFNdOiBOZXcgZnVuY3Rpb24uCisJKHN5c19tb3VudCkgW1NWUjQsICFNSVBTXTogTmV3IGZ1bmN0aW9uLgorCitUdWUgSnVsICA0IDAwOjMwOjM0IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiB2ZXJzaW9uLmM6IFZlcnNpb24gMy4wLjUgaXMgcmVsZWFzZWQuCisKKwkqIGRlc2MuYywgcmVzb3VyY2UuYywgc3RyYWNlLmMsIHN5c2NhbGwuYywgdGltZS5jOiBDYXN0IHR2X3NlYyBhbmQKKyAJdHZfdXNlYyBtZW1iZXJzIHRvIGxvbmcgd2hlbiB1c2luZyBwcmludGYuCisKKwkqIGlwYy5jOiBPbWl0IGRlZmluZSBvZiBfX0tFUk5FTF9fLgorCSh7TVNHLFNFTSxTSE19X3tTVEFULElORk99KTogRXhwbGljaXRseSBkZWZpbmUgdGhvc2UgdGhpbmdzIHdlCisgCXdhbnQgd2hpY2ggX19LRVJORUxfXyB1c2VkIHRvIHByb3ZpZGUuCisJKHN5c19tc2dyY3YpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvIGlwY19rbHVkZ2Ugc3RydWN0dXJlIHRvCisJbG9vay1hbGlrZSBpcGNfd3JhcHBlciB0byBhdm9pZCBkZXBlbmRlbmNlIG9uIF9fS0VSTkVMX18uCisKKwltZW0uYyAobW1hcF9mbGFncykgW01BUF97R1JPV1NET1dOLERFTllXUklURSxFWEVDVVRBQkxFfV06IEFkZAorIAlMaW51eCBzcGVjaWZpYyBvcHRpb25zLgorCisJc3lzY2FsbC5jOiBVc2UgU1lTX0VSUkxJU1RfREVDTEFSRUQgaW5zdGVhZCBvZiBndWVzc2luZy4KKyAgCVtFe1JFU1RBUlR7U1lTLE5Pe0lOVFIsSEFORH19LE5PSU9DVExDTUR9XTogRXhwbGljaXRseSBkZWZpbmUKKyAJaW5zdGVhZCBvZiBkZXBlbmRpbmcgb2YgX19LRVJORUxfXy4KKworCXRlcm0uYzogQ2FzdCBjX3tpLG8sYyxsfWZsYWcgdG8gbG9uZyB3aGVuIHVzaW5nIHByaW50Zi4KKworVHVlIEp1biAgNiAwMDoyNzo0OCAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogYWNsb2NhbC5tNCAoQUNfREVDTF9TWVNfRVJSTElTVCwgQUNfREVDTF9fU1lTX1NJR0xJU1QpOiBOZXcuCisJKiBjb25maWd1cmUuaW46IENhbGwgQUNfREVDTF9TWVNfRVJSTElTVCwgQUNfREVDTF9TWVNfU0lHTElTVCwKKwlhbmQgQUNfREVDTF9fU1lTX1NJR0xJU1QuCisJKiBhY2NvbmZpZy5oIChTWVNfRVJSTElTVF9ERUNMQVJFRCk6IE5ldy4KKwkqIHN0cmFjZS5jIChzdHJlcnJvcik6IFVzZSBTWVNfRVJSTElTVF9ERUNMQVJFRC4KKwkoc3Ryc2lnbmFsKTogVXNlIFNZU19TSUdMSVNUX0RFQ0xBUkVELgorCisJbmV0LmMgKHN5c19zb2NrZXQpOiBPbWl0IGluYWR2ZXJ0ZW50IHN1cnBsdXMgY29tbWEgd2hlbgorCXByb3RvY29sIGZhbWlseSBpc24ndCBQRl9JTkVULgorCisJdXRpbC5jIChkdW1wc3RyKTogRml4IGluY29ycmVjdCBwcmludGluZyBvZiBvbmUgdG9vIG1hbnkKKwljaGFyYWN0ZXJzIHdoZW4gdGhlIGxlbmd0aCBpcyBub3QgYW4gZXZlbiBtdWx0aXBsZSBvZiAxNiBieXRlcy4KKwlSZXBvcnRlZCBieSBKdWVyZ2VuIFdlaWdlcnQKKwk8am53ZWlnZXJAaW1tZDQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+LgorCitUaHUgTWF5ICA0IDIzOjM3OjQ3IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBpb2N0bC5jIChjb21wYXJlKTogQ2hhbmdlIHByb3RvdHlwZSB0byBtYXRjaCBQT1NJWCBxc29ydC4KKwkqIHNpZ25hbC5jIChzaWdpc2hhbmRsZWQpIFtTVlI0XTogT21pdCBldmVyeXRoaW5nIGFmdGVyIHJldHVybi4KKwkqIHN0cmFjZS5jICh0cmFjZSkgW1NWUjRdOiBCcmVhayBvdXQgb2YgZm9yIGxvb3AgaW5zdGVhZCBvZgorCXJldHVybmluZyB3aGVuIGZpbmlzaGVkIHNvIGZpbmFsIHJldHVybiBzdGF0ZW1lbnQgaXMgZXhlY3V0ZWQuCisJKiBzeXNjYWxsLmMgKGludGVybmFsX3N5c2NhbGwpOiBBZGQgbW9yZSBTWVNfd2FpdCogdmFyaWF0aW9ucy4KKwkoc3lzY2FsbCkgW0xJTlVYXTogQ29ycmVjdCB0eXBvIHdoaWNoIGNvbW1lbnRlZCBvdXQgdGhlIE02OEsKKwlhcmd1bWVudCB0byBpZmRlZi4KKwkqIHV0aWwuYyAocHJpbnRzdHIpOiBDYXN0IHVuc2lnbmVkIGNoYXIgcG9pbnRlciBhcmd1bWVudAorCXRvIGNoYXIgcG9pbnRlciBpbiB1bW92ZXN0ciBjYWxsLgorCShkdW1wc3RyKTogTGlrZXdpc2UgZm9yIHVtb3Zlbi4KKworV2VkIE1heSAgMyAwMToxMDo1NiAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC40IGlzIHJlbGVhc2VkLgorCisJKiBzaWduYWwuYyAoc3lzX3NpZ2Jsb2NrKTogTW92ZSBhZnRlciB0aGUgZGVmaW5pdGlvbiBvZgorCXN5c19zaWdzZXRtYXNrIHRoYXQgaXQgY2FsbHMgdG8gYXZvaWQgYW4gaW1wbGljaXQgZGVjbGFyYXRpb24uCisJKiBzdHJlYW0uYyAodHJhbnNwb3J0X3VzZXJfb3B0aW9ucywgdHJhbnNwb3J0X3NlcnZlcl9vcHRpb25zKToKKwlPbmx5IG5lZWRlZCBpZiBUSV9CSU5EIGlzIGRlZmluZWQuCisJKiBjb25maWd1cmUuaW46IEFkZCAtV25vLWltcGxpY2l0IHRvIFdBUk5GTEFHUyBvbiBTdW5PUyA0LnguCisKKwkqIHByb2Nlc3MuYyAoaW50ZXJuYWxfZm9yaykgW1NWUjRdOiBGaXggYSB0eXBvIHRoYXQgb21pdHRlZAorCXRoZSB0Y3AgYXJndWVtZW50IGZyb20gdGhlIGNhbGwgdG8gZXhpdGluZy4gIEFkZCBnZXRydmFsMgorCWNoZWNrIHNvIG5vIGZvcmsgcHJvY2Vzc2luZyBpcyBkb25lIGluIHRoZSBjaGlsZC4KKwkocHJpbnR3YWl0bik6IEluaXRpYWxpemUgZXhpdGVkIHNvIHRoYXQgaXRzIHZhbHVlIGlzIGRlZmluZWQKKwlmb3IgYWxsIGZsb3dzIG9mIGV4ZWN1dGlvbi4KKworVHVlIE1heSAgMiAyMjozOTo0MiAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogbGludXgvZHVtbXkuaDogQWRkIGFsaWFzZXMgZm9yIHN5c2ZzLCBwZXJzb25hbGl0eSwgYWZzX3N5c2NhbGwsCisJc2V0ZnN1aWQsIHNldGZzZ2lkLCBhbmQgX2xsc2VlayBzeXNjYWxscy4KKwkqIGxpbnV4L3N5c2NhbGwuaDogQWRkIHByb3RvdHlwZXMgZm9yIHRoZW0uCisJKiBsaW51eC9zeXNjYWxsZW50Lmg6IEFkZCB0aGVtIHRvIHRoZSBzeXNjYWxsIGVudHJpZXMgdGFibGUuCisJKiBzeXN0ZW0uYyAoaGVhZGVycykgW0xJTlVYXTogSW5jbHVkZSBsaW51eC91bmlzdGQuaCB0byBnZXQgX19OUl8qCisJZGVmaW5lcyBhbmQgY29uZGl0aW9uYWxseSBpbmNsdWRlIGxpbnV4L3BlcnNvbmFsaXR5LmggaWYKKwlfX05SX3BlcnNvbmFsaXR5IGlzIGRlZmluZWQuCisJKHBlcnNvbmFsaXR5X29wdGlvbnMpIFtMSU5VWF06IE5ldyB0YWJsZS4KKwkoc3lzX3BlcnNvbmFsaXR5KSBbTElOVVhdOiBOZXcgZnVuY3Rpb24uCisKK1R1ZSBNYXkgIDIgMDA6MjA6MzkgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHN0cmFjZS5jICh0cmFjZSkgWyFTVlI0XTogQ2hhbmdlIGZvcmV2ZXIgbG9vcCB0byBvbmUgcHJlZGljYXRlZAorCW9uIHRoZSBudW1iZXIgb2YgdHJhY2VkIHByb2Nlc3NlcyBzbyB0aGF0IHdlIGNhbiBoYXZlIHVudHJhY2VkCisJY2hpbGRyZW4gKGUuZy4gdmlhIHBvcGVuKS4KKworCSogc3RyYWNlIChtYWluKSBbIVNWUjRdOiBDYWxsIGZha2VfZXhlY3ZlIHRvIGdldCB0aGUgYWN0dWFsCisJZXhlYyBhbmQgaXRzIGFyZ3VtZW50cyBpbnRvIHRoZSB0cmFjZS4KKwkoZW52aXJvbik6IERlY2xhcmUgaXQuCisJKiBwcm9jZXNzLmMgKGZha2VfZXhlY3ZlKTogTmV3IGZ1bmN0aW9uLgorCShoZWFkZXJzKTogSW5jbHVkZSBzeXMvc3lzY2FsbC5oIHRvIGdldCBTWVNfKiBkZWZpbmVzLgorCisJKiBwcm9jZXNzLmMgKHN5c19leGVjdiwgc3lzX2V4ZWN2ZSk6IFN1cnJvdW5kIGFyZ3VtZW50IGFubm90YXRpb25zCisJd2l0aCBDIGNvbW1lbnQgZGVsaW1pdGVycy4KKwkocHJpbnRhcmd2LCBwcmludGFyZ2MpOiBUaGUgYXJnIHZlY3RvciBpcyBhbiBhcnJheSBvZiBjaGFyIHBvaW50ZXJzCisJbm90IGludHMuCisKKwkqIHN0cmFjZS5jIChwcmludGxlYWRlcik6IEFsc28gY2hlY2sgZm9yIG11bHRpcGxlIC1wIGFyZ3VtZW50cworCXdoZW4gZGVjaWRpbmcgd2hldGhlciB0byBwcmludCB0aGUgcGlkIGZpZWxkLgorCisJKiBzdHJhY2UuYyAoc3RyZXJyb3IpIFshSEFWRV9TVFJFUlJPUl06IE5ldyBmdW5jdGlvbi4KKwkqIGRlZnMuaCAoc3RyZXJyb3IsIHN0cnNpZ25hbCk6IEFkZCB0aGVzZSBwcm90b3R5cGVzIGlmIHdlIHByb3ZpZGUKKwl0aGUgZnVuY3Rpb25zLgorCSogY29uZmlndXJlLmluIChBQ19DSEVDS19GVU5DUyk6IEFkZCBzdHJlcnJvci4KKworCSogc3RyYWNlLmMgKG1haW4sIHByb2NfcG9sbGVyKTogQWRkIFNJR1BJUEUgdG8gdGhlIGxpc3Qgb2YgY2F1Z2h0CisJYW5kIGJsb2NrZWQgc2lnbmFscy4KKworCSogc3RyYWNlLmMgKG1haW4pOiBBZGQgdXNlcm5hbWUgb3B0aW9uLiAgVmVyaWZ5IHRoZXkgYXJlIHJvb3QgYmVmb3JlCisJbGV0dGluZyB0aGVtIHVzZSBpdC4gIExvb2sgdXAgdGhlIGlkcyBpbiB0aGUgcGFzc3dvcmQgZmlsZS4gIFNldAorCXRoZW0ganVzdCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBwcm9ncmFtLgorCUZyb20gUmV1YmVuIFN1bW5lciA8cmFzdW1uZXJAdW5kZXJncmFkLm1hdGgudXdhdGVybG9vLmNhPi4KKworU2F0IEFwciAyOSAwMDowOTo1NiAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogdmVyc2lvbi5jOiBWZXJzaW9uIDMuMC4zIGlzIHJlbGVhc2VkLgorCisJKiBzeXN0ZW0uYyAobW91bnRfZmxhZ3MpIFtMSU5VWF06IE9taXQgZHVwbGljYXRlZCBNU19OT1NVSUQgZW50cnkuCisJRnJvbSBSZXViZW4gU3VtbmVyIDxyYXN1bW5lckB1bmRlcmdyYWQubWF0aC51d2F0ZXJsb28uY2E+LgorCisJKiBzdHJhY2UuYyAob3V0Zm5hbWUpOiBJbml0aWFsaXplIHRvIE5VTEwuCisJKG1haW4pOiBEZWZlciBvdXRwdXQgZmlsZSBwcm9jZXNzaW5nIHVudGlsIGFmdGVyIGFyZ3VtZW50cy4KKwlBbGxvdyBlaXRoZXIgYSBwaXBlIG9yIGEgYmFuZyBmb3IgY29tbWFuZCBhcmd1bWVudHMuCisJQ2hlY2sgaWYgb3V0Zm5hbWUgaXMgTlVMTCBpbnN0ZWFkIG9mIGNoZWNraW5nIG91dGYgZm9yIHN0ZGVyci4KKwlSZWluaXRpYWxpemUgZWFjaCBzdGFydHVwIFRDQidzIG91dGYgdG8gZml4IC1wLy1vIG9yZGVyaW5nIGJ1Zy4KKwkoZHJvcHRjYik6IFJlc2V0IGNsb3NlIFRDQidzIG91dGYgdG8gTlVMTCBpbnN0ZWFkIG9mIHN0ZGVyci4KKwkodHByaW50Zik6IEF2b2lkIGNhbGxpbmcgdmZwcmludGYgaWYgb3V0ZiBpcyBOVUxMLgorCisJKiBzdHJhY2UuYyAobWFpbik6IFVzZSBwb3BlbiBpZiAtbyBhcmd1bWVudCBiZWdpbnMgd2l0aCBhIHBpcGUuCisJRnJvbSBNYXJ0eSBMZWlzbmVyIDxsZWlzbmVyQHNkc3AubWMueGVyb3guY29tPi4KKworCSogcHJvY2Vzcy5jIChwcmludHN0YXR1cyk6IEZpeCBhIHR5cG8gd2hlcmUgV0lGU0lHTkFMRUQgd2FzIG1lYW50CisJYnV0IFdJRlNUT1BQRUQgd2FzIHVzZWQuCisKKwkqIE1ha2VmaWxlLmluOiBBZGQgYW4gRVhUUkFfREVGUyB2YXJpYWJsZSBhbmQgdXNlIGl0IGluIHRoZSAuYy5vCisJcnVsZSB0byBwcmV2ZW50IHRoZSBjb21tZW50IGZyb20gYmVpbmcgdW50cnVlLgorCitGcmkgQXByIDI4IDIyOjAxOjU2IDE5OTUgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBzdHJhY2UuYyAoc3lzX2V4aXQpOiBNb3ZlIGZvbGxvdyBmb3JrIGNvZGUgdG8gaW50ZXJuYWxfZXhpdC4KKwkoc3lzX2ZvcmspOiBNb3ZlIGZvbGxvdyBmb3JrIGNvZGUgdG8gaW50ZXJuYWxfZm9yay4KKwkoc3lzX2V4ZWN2LCBzeXNfZXhlY3ZlKTogTW92ZSBmb2xsb3cgZm9yayBjb2RlIHRvIGludGVybmFsX2V4ZWMuCisJKHN5c193YWl0cGlkLCBzeXNfd2FpdDQpOiBNb3ZlIGZvbGxvdyBmb3JrIGNvZGUgdG8gaW50ZXJuYWxfd2FpdC4KKwkodmZvcmtpbmcpOiBSZW1vdmUgdGhpcyBzdGF0aWMgdmFyaWFibGUgYW5kIGNoZWNrIHNjbm8gaW4KKwlpbnRlcm5hbF9mb3JrIGluc3RlYWQuCisJKGludGVybmFsX2V4aXQsIGludGVybmFsX2ZvcmssIGludGVybmFsX2V4ZWMsIGludGVybmFsX3dhaXQpOiBOZXcKKwlmdW5jdGlvbnMuCisJKiBkZWZzLmg6IEFkZCBwcm90b3R5cGVzIGZvciB0aGUgbmV3IGludGVybmFsXyogZnVuY3Rpb25zLgorCSogc3lzY2FsbC5jIChzeXNjYWxsKTogTW92ZSBzeXNjYWxsIGVudGVyaW5nIHRyYWNlIHF1YWxpZmllciBjaGVjaworCWFuZCByZXByaW50IGNoZWNraW5nIGFmdGVyIGNvbnRleHQgZGVjb2RpbmcgYW5kIHByZWNlZGUgdGhlbSB3aXRoCisJYSBjYWxsIHRvIGludGVybmFsX3N5c2NhbGwuICBQcmVjZWRlIHN5c2NhbGwgZXhpdGluZyB0cmFjZQorCXF1YWxpZmllciBjaGVjayB3aXRoIGEgY2FsbCB0byBpbnRlcm5hbF9zeXNjYWxsLgorCShpbnRlcm5hbF9zeXNjYWxsKTogTmV3IGZ1bmN0aW9uLgorCisJKiBkZWZzLmggKHN0cnVjdCB0Y2IpOiBNYWtlIHNjbm8gc2lnbmVkLgorCSogc3RyYWNlLmMgKHN5c2NhbGwpIE1ha2UgdV9lcnJvciBzaWduZWQuCisJW0xJTlVYLCBJMzg2XTogQXZvaWQgdW5zaWduZWQgY2FzdCBpbiBlYXggY2hlY2suCisJKiBzeXNjYWxsLmMgKHN5c19pbmRpcik6IE1ha2UgaSwgc2NubywgYW5kIG5hcmdzIHNpZ25lZC4KKwkqIGRlc2MuYyAoc3lzX3NlbGVjdCk6IE1ha2UgY3VtbGVuIHVuc2lnbmVkCisKK01vbiBBcHIgMjQgMjM6NTI6NDcgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIG5ldC5jIChzb2NrdHlwZXMpOiBBZGQgU09DS19QQUNLRVQuCisKK1N1biBBcHIgIDIgMjM6NTA6MzkgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIE1ha2VmaWxlIChjbGVhbik6IENoZWNrIGV4cGxpY2l0bHkgZm9yIGEgTWFrZWZpbGUgaW4gc3ViZGlycworCWJlZm9yZSBydW5uaW5nIG1ha2UgaW4gdGhlbS4KKworU3VuIE1hciAyNiAxMjozNzoyMSAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogc3RyYWNlLmMgW01JUFNdIChwcm9jX29wZW4pOiBDb25kaXRpb25hbGl6ZSBydW4gb24gTUlQUy4KKwlbTUlQU10gKGRldGFjaCk6IEluaXRpYWxpemUgZXJyb3IgZm9yIE1JUFMgY2FzZS4KKwkodHJhY2UpOiBJbml0aWFsaXplIGlvY3RsX3Jlc3VsdCBhbmQgaW9jdGxfZXJybm8gZm9yIG92ZXJseSBoZWxwZnVsCisJY29tcGlsZXJzLgorCSogc3lzY2FsbC5jIChkZWNvZGVfc3ViY2FsbCk6IE1vdmUgdmFyaWFibGUgaSBpbnRvIGNvbmRpdGlvbmFscworCXRoYXQgdXNlIHVzZSBpdC4KKwkqIHN5c3RlbS5jIChzeXNzZ2lfb3B0aW9ucyk6IENvbmRpdGlvbmFsaXplIFNHSV9SRUNWTE1TRyBhbmQKKwlTR0lfU0VUX0ZQREVCVUcgdGhhdCBTR0kgZGVjaWRlZCB0byBkcm9wLiAgSSBkb24ndCBoYXZlIHRoZSBzdG9tYWNoCisJdG8gY2hhbmdlIHRoZW0gYWxsLgorCSogdGVybS5jICh0ZXJtX2lvY3RsKTogRm9yY2UgW2NfW2lvY2xdZmxhZ3MgbWVtYmVycyB0byBsb25nIGJlZm9yZQorCXByaW50aW5nIHNpbmNlIHdlIGRvbid0IGtub3cgd2hhdCB0aGUgc2l6ZSBvZiB0aGVpciB0eXBlIGlzLgorCSogdXRpbC5jIFtTVlI0LCBNSVBTXSAodW1vdmVuKTogUHJldmVudCBNSVBTIGZyb20gdXNpbmcgcHJlYWQgZXZlbgorCWlmIGF1dG9jb25mIGRldGVjdHMgaXQgc2luY2UgaXQgc2VlbXMgdG8gZWl0aGVyIG5vdCB3b3JrIG9yIGRvCisJc29tZXRoaW5nIGVsc2UgZW50aXJlbHkgb24gSXJpeCA1LjMuCisKK1N1biBNYXIgMjYgMDA6MDE6MTEgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuMiBpcyByZWxlYXNlZC4KKwkqIGxpbnV4L2R1bW15Lmg6IE1ha2Ugc3lzX2ZjaGRpciBsaWtlIHN5c19jbG9zZSBpbnN0ZWFkIG9mIHByaW50YXJncworCXNvIHRoYXQgdGhlIGZpbGUgZGVzY3JpcHRvciBhcmcgaXMgZGVjaW1hbC4KKworU2F0IE1hciAyNSAyMjo1MDoxMyAxOTk1ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogbmV0LmMgW0xJTlVYXSAocHJvdG9jb2xzKTogRXhwbGljaXRseSBkZWZpbmUgYWxsIElQUFJPVE9fKiBlbnRyaWVzCisJYmVjYXVzZSBvbiBMaW51eCB0aGV5IGFyZSBlbnVtZXJhdG9ycy4KKworCSogc3lzdGVtLmMgW0xJTlVYXSAobW91bnRfZmxhZ3MpOiBIYW5kbGUgcmVuYW1pbmcgb2YgTVNfU1lOQyB0bworCU1TX1NZTkNIUk9OT1VTLgorCisJKiB1dGlsLmMgKHByaW50eHZhbCk6IFdoZW4gdGhlcmUgaXMgbm8gdHJhbnNsYXRpb24sIHByaW50IHRoZSBhY3R1YWwKKwludW1iZXIgZmlyc3QgYW5kIHRoZSB0aGUgZGVmYXVsdCB2YWx1ZSBhcyBhIEMgY29tbWVudC4KKworCSogbmV0LmMgKHN5c19zZW5kLCBzeXNfc2VuZHRvLCBzeXNfc2VuZG1zZywgc3lzX2dldHNvY2tvcHQsCisJc3lzX3NldHNvY2tvcHQpOiBDaGFuZ2UgZmlyc3QgYXJndW1lbnQgZnJvbSB1bnNpZ25lZCB0byBzaWduZWQgdG8KKwljYXRlciB0byB0aGUgZnJlcXVlbnQgcHJhY3RpY2Ugb2YgY2FsbGluZyBzeXN0ZW0gY2FsbHMgd2l0aCBhIGZpbGUKKwlkZXNjcmlwdG9yIG9mIC0xLgorCSogbWVtLmMgKHN5c19tbWFwKTogTGlrZXdpc2UuCisKK1N1biBNYXIgMTkgMTM6NTM6NTIgMTk5NSAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHNpZ25hbC5jIFtMSU5VWF0gKHNpZ25hbGVudCk6IEhhbmRsZSBvbGQgYW5kIG5ldyB2YWx1ZXMgb2YgU0lHSU8uCisKK1N1biBEZWMgMTEgMjI6NTE6NTEgMTk5NCAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIHZlcnNpb24uYzogVmVyc2lvbiAzLjAuMSBpcyByZWxlYXNlZC4KKwkqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGFjbG9jYWwubTQ6IENoYW5nZXMgZm9yIGF1dG9jb25mIDIuMC4KKwkqIGNvbmZpZy5ndWVzcywgY29uZmlnLmd1ZXNzOiBVcGRhdGUgZnJvbSB0aGUgRlNGLgorCSogaW5zdGFsbC1zaDogTmV3IGZyb20gdGhlIEZTRi4KKworTW9uIERlYyAgNSAyMDo1MToyOSAxOTk0ICBSaWNrIFNsYWRrZXkgIDxqcnNAd29ybGQuc3RkLmNvbT4KKworCSogTWFrZWZpbGUuaW46IEFkZCBtNjhrIGFyY2guCisJKiBhY2NvbmZpZy5oIChNNjhLKTogQWRkIG02OGsgZGVmaW5lLgorCSogY29uZmlndXJlLmluOiBBZGQgZGV0ZWN0aW9uIG9mIGFyY2ggbTY4ay4KKwkqIHByb2Nlc3MuYyBbTTY4S10gKHN0cnVjdF91c2VyX29mZnNldHMpOiBTdXBwb3J0IG02OGsgcmVnaXN0ZXJzIGFuZAorCW9mZnNldHMuCisJKiBzaWduYWwuYyBbTTY4S10gKHNpZ2NvbnRleHRfc3RydWN0KTogU3VwcG9ydCBtNjhrIHNpZ2NvbnRleHQKKwlzdHJ1Y3R1cmUuCisJW002OEtdIChzeXNfc2lncmV0dXJuKTogU3VwcG9ydCBtNjhrIHNpZ3JldHVybiBoYW5kbGluZy4KKwkqIHN5c2NhbGwuYyBbTTY4S10gKHN5c2NhbGwpOiBTdXBwb3J0IG02OGsgc3lzY2FsbCBudW1iZXIgcmVnaXN0ZXIKKwlhbmQgZXJybm8gaW4gZDAgaW5zdGVhZCBvZiBlYXguCisJKiB1dGlsLmMgW002OEtdIChnZXRwYywgcHJpbnRjYWxsLCBzZXRicHQsIGNsZWFyYnB0KTogU3VwcG9ydCBtNjhrCisJcHJvZ3JhbSBjb3VudGVyIGluIFBUX1BDIGluc3RlYWQgb2YgRUlQLgorCVtNNjhLXSAoTE9PUCk6IFN1cHBvcnQgbTY4ayBsb29wIGluc3RydWN0aW9uLgorCUZyb20gQW5kcmVhcyBTY2h3YWIgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4uCisKKwkqIG1lbS5jIFtNQVBfQU5PTllNT1VTXSAobW1hcF9mbGFncyk6IENvcnJlY3QgaW5hZHZlcnRlbnQgcmVmZXJlbmNlCisJdG8gTUFQX0ZJWEVEIGluc3RlYWQgb2YgTUFQX0FOT05ZTU9VUy4KKwlGcm9tIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+LgorCisJKiBzaWduYWwuYyBbTElOVVhdIChzaWduYWxlbnQpOiBTaWduYWwgMzAgaXMgbm93IFNJR1BXUi4KKwlGcm9tIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+LgorCitNb24gRGVjICA1IDAxOjA1OjQ2IDE5OTQgIFJpY2sgU2xhZGtleSAgPGpyc0B3b3JsZC5zdGQuY29tPgorCisJKiBkZWZzLmggKHRwcmludGYpOiBGaXggdHlwbyBpbiBub24tZ2NjIGFuc2kgcHJvdG90eXBlIGZvciB0cHJpbnRmLgorCVJlcG9ydGVkIGJ5IFRoYW5oIE1hIDx0bWFAZW5jb3JlLmNvbT4uCisKKwkqIHN0cmFjZS5jIChjbGVhbnVwKTogU2VuZCBTSUdDT05UIGJlZm9yZSBTSUdURVJNIGJlY2F1c2UgTGludXgKKwkxLjEuNjIgZG9lc24ndCBjb250aW51ZSBhIHRyYWNlZCBjaGlsZCB3aGVuIHRoZSBwYXJlbnQgZXhpdHMuCisJUmVwb3J0ZWQgYnkgTWF0dCBEYXkgPG1kYXlAYXJ0aXNvZnQuY29tPi4KKworCSogc3lzdGVtLmMgW0xJTlVYXTogSW5jbHVkZSBuZXRpbmV0L2luLmggYmVmb3JlIGFycGEvaW5ldC5oLgorCisJKiB1dGlsLmMgKHByaW50c3RyKTogRml4IGxvbmdzdGFuZGluZyBidWcgaW4gbm90YXRpbmcgc3RyaW5nCisJY29udGludWF0aW9uLgorCisJKiBzdHJhY2UuYyBbU1ZSNF0gKHByb2Nfb3Blbik6IFNwZWNpZmljYWxseSB3YWl0IGZvciB0aGUgY2hpbGQgdGhlCisJY2hpbGQgdG8gZ28gaW50byB0aGUgZXhlY3ZlIHN5c2NhbGwgdG8gYXZvaWQgc3B1cmlvdXMgdHJhY2VzLgorCVtMSU5VWF0gKGRldGFjaCk6IENvbmRpdGlvbmFsaXplIHRoZSBzdGF0dXMgdmFyaWFibGUuCisKK1N1biBEZWMgIDQgMjM6MjE6NDIgMTk5NCAgUmljayBTbGFka2V5ICA8anJzQHdvcmxkLnN0ZC5jb20+CisKKwkqIE1ha2VmaWxlLmluOiBBZGQgbWlwcyBhcmNoLgorCSogYWNjb25maWcuaCAoTUlQUyk6IEFkZCBtaXBzIGRlZmluZS4KKwkqIGNvbmZpZ3VyZS5pbjogQWRkIGRldGVjdGlvbiBvZiBvcHN5cyBpcml4NSBhbmQgYXJjaCBtaXBzLiAgQ2hlY2sKKwlmb3IgcHJjdGwgZnVuY3Rpb24uCisJQ2hlY2sgZm9yIHN5cy9zeXNjb25maWcuaCBoZWFkZXIuCisJKiBkZWZzLmggKE1BWF9BUkdTKTogQnVtcCBtYXhpbXVtIHN5c2NhbGwgYXJndW1lbnRzIGZyb20gOCB0byAzMi4KKwkqIGZpbGUuYyBbU1ZSNF06IEluY2x1ZGUgc3lzL2NyZWQuaC4KKwkoYWNjZXNzX2ZsYWdzKTogVXBkYXRlIGFjY2VzcyBmbGFncyBmb3IgU0dJLgorCShzcHJpbnR0aW1lKTogQ2hhbmdlIHR5cGUgb2Ygc3ByaW50dGltZSBhcmd1bWVudCBmcm9tIHVuc2lnbmVkCisJbG9uZyB0byB0aW1lX3QuCisJKiBwcm9jZXNzLmMgW0hBVkVfUFJDVExdOiBJbmNsdWRlIHN5cy9wcmN0bC5oLgorCVtIQVZFX1BSQ1RMXSAocHJjdGxfb3B0aW9ucywgc3lzX3ByY3RsKTogTmV3IGZvciBTR0kuCisJKHByaW50c2lnaW5mbyk6IENvbmRpdGlvbmFsbHkgY29tcGlsZSBTSV9USU1FUiBhbmQgU0lfTUVTR1EuCisJQ2FzdCBzaV9iYW5kIG1lbWJlciB0byBsb25nIGJlZm9yZSBwcmludGluZy4KKwkqIHNpZ25hbC5jIChzaWdhY3RfZmxhZ3MpOiBBZGQgX1NBX0JTRENBTEwgZm9yIFNHSS4KKwkoc2lncHJvY21hc2tjbWRzKTogQWRkIFNJR19TRVRNQVNLMzIgZm9yIFNHSS4KKwkqIHN0cmFjZS5jIFtTVlI0XSBbTUlQU106CisJKGZvb2Jhcik6IE5ldyBkdW1teSBzaWduYWwgaGFuZGxlci4KKwkobWFpbik6IEluc3RhbGwgYSBkdW1teSBzaWduYWwgaGFuZGxlciBpbiB0aGUgY2hpbGQgYmVmb3JlIHBhdXNpbmcKKwl0byB3b3JrIGFyb3VuZCBhbiBTR0kgYnVnIGluIFBSU0FCT1JULgorCShwcm9jX29wZW4pOiBTZW5kIGEgaW50ZXJydXB0IHRvIHRoZSBjaGlsZCBpbnN0ZWFkIG9mIGFib3J0aW5nIHRoZQorCXN5c2NhbGwgd2hpY2ggZG9lc24ndCB3b3JrIG9uIElyaXg1LjIuCisJKiBzdnI0L2R1bW15Lmg6IEFkZCBuZXcgdW5maW5pc2hlZCBTR0kgc3lzY2FsbHMKKwkoZS5nLiBzeXNfc3lzbXAsIHN5c19zZ2luYXAsIGV0Yy4pLiAgSGFuZGxlIHNvbWUgU0dJIHN5c2NhbGxzIGxpa2UKKwlleGlzdGluZyBjYWxscyAoZS5nLiBzeXNfa3NpZ2FjdGlvbiBsaWtlIHN5c19zaWdhY3Rpb24pLgorCVByaW50YXJncyBkb2VzIHRoZSBwcmludCB0aGluZyBmb3Igc3lzX3NldGhvc3RpZC4KKwkqIHN2cjQvc3lzY2FsbC5oOiBEZWNsYXJlIGFsbCBuZXcgU0dJIHN5c2NhbGxzLgorCShTR0lfS0xVREdFKTogRGVmaW5lIHN5c2NhbGwgdGFibGUgc3RhcnRpbmcgaW5kZXggdG8gYmUgMSBmb3IgU0dJCisJYW5kIGFkZCBpdCB0byBhbGwgc3ViY2FsbCBlbnRyeSBwb2ludHMuCisJKFNZU19wZ3Jwc3lzX3N1YmNhbGwsIFNZU19zaWdjYWxsX3N1YmNhbGwsIFNZU19jb250ZXh0KTogRG9uJ3QKKwlkZWNvZGUgYXMgc3ViY2FsbHMgb24gTUlQUy4gSW5zdGVhZCwgdXNlIHRoZSBub3JtYWwgc3lzY2FsbHMuCisJKiBzdnI0L3N5c2NhbGxlbnQuaCBbTUlQU106IExlYWQgc3lzY2FsbCB0YWJsZSB3aXRoIGEgZHVtbXkgZW50cnkKKwlzaW5jZSBTR0kgc3lzY2FsbCBudW1iZXJzIGFyZSBvZmYgYnkgb25lLgorCVtNSVBTXSAoc3lzX3BncnBzeXMpOiBSZW5hbWUgdG8gc3lzX3NldHBncnAgb24gU0dJLgorCVtNSVBTXSAoc3lzX3hlbml4KTogUmVuYW1lIHRvIHN5c19zeXNzZ2kgb24gU0dJLgorCVtNSVBTXSAoc3lzX3N5c21hY2hpbmUpOiBSZW5hbWUgdG8gc3lzX3N5c21pcHMgb24gU0dJLgorCVtNSVBTXTogQ29uZGl0aW9uYWxpemUgU1ZSNCBleHRlbnNpb24gaW50byBTR0kgYW5kIFNvbGFyaXMgY2xhc3Nlcy4KKwkqIHN5c2NhbGwuYyAoZHVtcGlvKTogVmFsaWRhdGUgZGVzY3JpcHRvciBhZ2FpbnN0IE1BWF9RVUFMUy4KKwlbSEFWRV9QUl9TWVNDQUxMXSAoc3lzY2FsbCk6IENvbmRpdGlvbmFsaXplIFNZU192Zm9yay4KKwlbTUlQU10gKHN5c2NhbGwpOiBBZGQgU0dJIHNlY3Rpb24gZm9yIGRlY29kaW5nIHVfZXJyb3IgYW5kIHVfcnZhbC4KKwlBZGQgd29ya2Fyb3VuZCBmb3IgYnJva2VuIFNHSSBwcl9zeXNhcmcgb24gc3lzY2FsbCBlbnRyeS4KKwlbU1ZSNF0gKHN5c2NhbGwpOiBDb25kaXRpb25hbGl6ZSBzdWJjYWxsIGRlY29kaW5nIGZvcgorCVNZU19wdHJwc3lzX3N1YmNhbGwsIFNZU19zaWdjYWxsX3N1YmNhbGwgYW5kIFNZU19jb250ZXh0X3N1YmNhbGwuCisJW1NWUjRdIFtNSVBTXSAoZ2V0cnZhbDIpOiBIYW5kbGUgU0dJLgorCSogc3lzY2FsbGVudC5zaDogRG9yayB0aGUgc2VkIGxpbmUgdG8gYmUgY2hvb3NpZXIgYWJvdXQgU1lTXyBsaW5lcy4KKwkqIHN5c3RlbS5jIFtIQVZFX1NZU0NPTkZJR19IXTogSW5jbHVkZSBzeXMvc3lzY29uZmlnLmguCisJW01JUFNdIChzeXNzZ2lfb3B0aW9ucywgc3lzX3N5c3NnaSk6IE5ldyBmb3IgU0dJLgpkaWZmIC0tZ2l0IGEvQ2xlYW5TcGVjLm1rIGIvQ2xlYW5TcGVjLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NGUxYjYKLS0tIC9kZXYvbnVsbAorKysgYi9DbGVhblNwZWMubWsKQEAgLTAsMCArMSw0OSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMDcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIyBJZiB5b3UgZG9uJ3QgbmVlZCB0byBkbyBhIGZ1bGwgY2xlYW4gYnVpbGQgYnV0IHdvdWxkIGxpa2UgdG8gdG91Y2gKKyMgYSBmaWxlIG9yIGRlbGV0ZSBzb21lIGludGVybWVkaWF0ZSBmaWxlcywgYWRkIGEgY2xlYW4gc3RlcCB0byB0aGUgZW5kCisjIG9mIHRoZSBsaXN0LiAgVGhlc2Ugc3RlcHMgd2lsbCBvbmx5IGJlIHJ1biBvbmNlLCBpZiB0aGV5IGhhdmVuJ3QgYmVlbgorIyBydW4gYmVmb3JlLgorIworIyBFLmcuOgorIyAgICAgJChjYWxsIGFkZC1jbGVhbi1zdGVwLCB0b3VjaCAtYyBleHRlcm5hbC9zcWxpdGUvc3FsaXRlMy5oKQorIyAgICAgJChjYWxsIGFkZC1jbGVhbi1zdGVwLCBybSAtcmYgJChQUk9EVUNUX09VVCkvb2JqL1NUQVRJQ19MSUJSQVJJRVMvbGliel9pbnRlcm1lZGlhdGVzKQorIworIyBBbHdheXMgdXNlICJ0b3VjaCAtYyIgYW5kICJybSAtZiIgb3IgInJtIC1yZiIgdG8gZ3JhY2VmdWxseSBkZWFsIHdpdGgKKyMgZmlsZXMgdGhhdCBhcmUgbWlzc2luZyBvciBoYXZlIGJlZW4gbW92ZWQuCisjCisjIFVzZSAkKFBST0RVQ1RfT1VUKSB0byBnZXQgdG8gdGhlICJvdXQvdGFyZ2V0L3Byb2R1Y3QvYmxhaC8iIGRpcmVjdG9yeS4KKyMgVXNlICQoT1VUX0RJUikgdG8gcmVmZXIgdG8gdGhlICJvdXQiIGRpcmVjdG9yeS4KKyMKKyMgSWYgeW91IG5lZWQgdG8gcmUtZG8gc29tZXRoaW5nIHRoYXQncyBhbHJlYWR5IG1lbnRpb25lZCwganVzdCBjb3B5CisjIHRoZSBjb21tYW5kIGFuZCBhZGQgaXQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGlzdC4gIEUuZy4sIGlmIGEgY2hhbmdlCisjIHRoYXQgeW91IG1hZGUgbGFzdCB3ZWVrIHJlcXVpcmVkIHRvdWNoaW5nIGEgZmlsZSBhbmQgYSBjaGFuZ2UgeW91CisjIG1hZGUgdG9kYXkgcmVxdWlyZXMgdG91Y2hpbmcgdGhlIHNhbWUgZmlsZSwganVzdCBjb3B5IHRoZSBvbGQKKyMgdG91Y2ggc3RlcCBhbmQgYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCisjCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyBORVdFUiBDTEVBTiBTVEVQUyBNVVNUIEJFIEFUIFRIRSBFTkQgT0YgVEhFIExJU1QKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyMgRm9yIGV4YW1wbGU6CisjJChjYWxsIGFkZC1jbGVhbi1zdGVwLCBybSAtcmYgJChPVVRfRElSKS90YXJnZXQvY29tbW9uL29iai9BUFBTL0FuZHJvaWRUZXN0c19pbnRlcm1lZGlhdGVzKQorIyQoY2FsbCBhZGQtY2xlYW4tc3RlcCwgcm0gLXJmICQoT1VUX0RJUikvdGFyZ2V0L2NvbW1vbi9vYmovSkFWQV9MSUJSQVJJRVMvY29yZV9pbnRlcm1lZGlhdGVzKQorIyQoY2FsbCBhZGQtY2xlYW4tc3RlcCwgZmluZCAkKE9VVF9ESVIpIC10eXBlIGYgLW5hbWUgIklHVGFsa1Nlc3Npb24qIiAtcHJpbnQwIHwgeGFyZ3MgLTAgcm0gLWYpCisjJChjYWxsIGFkZC1jbGVhbi1zdGVwLCBybSAtcmYgJChQUk9EVUNUX09VVCkvZGF0YS8qKQorCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyBORVdFUiBDTEVBTiBTVEVQUyBNVVNUIEJFIEFUIFRIRSBFTkQgT0YgVEhFIExJU1QKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9JTlNUQUxMIGIvSU5TVEFMTApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmM4NzIyCi0tLSAvZGV2L251bGwKKysrIGIvSU5TVEFMTApAQCAtMCwwICsxLDE4MSBAQAorQmFzaWMgSW5zdGFsbGF0aW9uCis9PT09PT09PT09PT09PT09PT0KKworICAgVGhlc2UgYXJlIGdlbmVyaWMgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KKworICAgVGhlIGBjb25maWd1cmUnIHNoZWxsIHNjcmlwdCBhdHRlbXB0cyB0byBndWVzcyBjb3JyZWN0IHZhbHVlcyBmb3IKK3ZhcmlvdXMgc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24uICBJdCB1c2VzCit0aG9zZSB2YWx1ZXMgdG8gY3JlYXRlIGEgYE1ha2VmaWxlJyBpbiBlYWNoIGRpcmVjdG9yeSBvZiB0aGUgcGFja2FnZS4KK0l0IG1heSBhbHNvIGNyZWF0ZSBvbmUgb3IgbW9yZSBgLmgnIGZpbGVzIGNvbnRhaW5pbmcgc3lzdGVtLWRlcGVuZGVudAorZGVmaW5pdGlvbnMuICBGaW5hbGx5LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3RhdHVzJyB0aGF0Cit5b3UgY2FuIHJ1biBpbiB0aGUgZnV0dXJlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24sIGEgZmlsZQorYGNvbmZpZy5jYWNoZScgdGhhdCBzYXZlcyB0aGUgcmVzdWx0cyBvZiBpdHMgdGVzdHMgdG8gc3BlZWQgdXAKK3JlY29uZmlndXJpbmcsIGFuZCBhIGZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcgY29tcGlsZXIgb3V0cHV0CisodXNlZnVsIG1haW5seSBmb3IgZGVidWdnaW5nIGBjb25maWd1cmUnKS4KKworICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGluZ3MgdG8gY29tcGlsZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQordG8gZmlndXJlIG91dCBob3cgYGNvbmZpZ3VyZScgY291bGQgY2hlY2sgd2hldGhlciB0byBkbyB0aGVtLCBhbmQgbWFpbAorZGlmZnMgb3IgaW5zdHJ1Y3Rpb25zIHRvIHRoZSBhZGRyZXNzIGdpdmVuIGluIHRoZSBgUkVBRE1FJyBzbyB0aGV5IGNhbgorYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIGF0IHNvbWUgcG9pbnQgYGNvbmZpZy5jYWNoZScKK2NvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KKworICAgVGhlIGZpbGUgYGNvbmZpZ3VyZS5pbicgaXMgdXNlZCB0byBjcmVhdGUgYGNvbmZpZ3VyZScgYnkgYSBwcm9ncmFtCitjYWxsZWQgYGF1dG9jb25mJy4gIFlvdSBvbmx5IG5lZWQgYGNvbmZpZ3VyZS5pbicgaWYgeW91IHdhbnQgdG8gY2hhbmdlCitpdCBvciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lvbiBvZiBgYXV0b2NvbmYnLgorCitUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgdGhpcyBwYWNrYWdlIGlzOgorCisgIDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgYW5kIHR5cGUKKyAgICAgYC4vY29uZmlndXJlJyB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UgZm9yIHlvdXIgc3lzdGVtLiAgSWYgeW91J3JlCisgICAgIHVzaW5nIGBjc2gnIG9uIGFuIG9sZCB2ZXJzaW9uIG9mIFN5c3RlbSBWLCB5b3UgbWlnaHQgbmVlZCB0byB0eXBlCisgICAgIGBzaCAuL2NvbmZpZ3VyZScgaW5zdGVhZCB0byBwcmV2ZW50IGBjc2gnIGZyb20gdHJ5aW5nIHRvIGV4ZWN1dGUKKyAgICAgYGNvbmZpZ3VyZScgaXRzZWxmLgorCisgICAgIFJ1bm5pbmcgYGNvbmZpZ3VyZScgdGFrZXMgYXdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRzIHNvbWUKKyAgICAgbWVzc2FnZXMgdGVsbGluZyB3aGljaCBmZWF0dXJlcyBpdCBpcyBjaGVja2luZyBmb3IuCisKKyAgMi4gVHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KKworICAzLiBPcHRpb25hbGx5LCB0eXBlIGBtYWtlIGNoZWNrJyB0byBydW4gYW55IHNlbGYtdGVzdHMgdGhhdCBjb21lIHdpdGgKKyAgICAgdGhlIHBhY2thZ2UuCisKKyAgNC4gVHlwZSBgbWFrZSBpbnN0YWxsJyB0byBpbnN0YWxsIHRoZSBwcm9ncmFtcyBhbmQgYW55IGRhdGEgZmlsZXMgYW5kCisgICAgIGRvY3VtZW50YXRpb24uCisKKyAgNS4gWW91IGNhbiByZW1vdmUgdGhlIHByb2dyYW0gYmluYXJpZXMgYW5kIG9iamVjdCBmaWxlcyBmcm9tIHRoZQorICAgICBzb3VyY2UgY29kZSBkaXJlY3RvcnkgYnkgdHlwaW5nIGBtYWtlIGNsZWFuJy4gIFRvIGFsc28gcmVtb3ZlIHRoZQorICAgICBmaWxlcyB0aGF0IGBjb25maWd1cmUnIGNyZWF0ZWQgKHNvIHlvdSBjYW4gY29tcGlsZSB0aGUgcGFja2FnZSBmb3IKKyAgICAgYSBkaWZmZXJlbnQga2luZCBvZiBjb21wdXRlciksIHR5cGUgYG1ha2UgZGlzdGNsZWFuJy4gIFRoZXJlIGlzCisgICAgIGFsc28gYSBgbWFrZSBtYWludGFpbmVyLWNsZWFuJyB0YXJnZXQsIGJ1dCB0aGF0IGlzIGludGVuZGVkIG1haW5seQorICAgICBmb3IgdGhlIHBhY2thZ2UncyBkZXZlbG9wZXJzLiAgSWYgeW91IHVzZSBpdCwgeW91IG1heSBoYXZlIHRvIGdldAorICAgICBhbGwgc29ydHMgb2Ygb3RoZXIgcHJvZ3JhbXMgaW4gb3JkZXIgdG8gcmVnZW5lcmF0ZSBmaWxlcyB0aGF0IGNhbWUKKyAgICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorCitDb21waWxlcnMgYW5kIE9wdGlvbnMKKz09PT09PT09PT09PT09PT09PT09PQorCisgICBTb21lIHN5c3RlbXMgcmVxdWlyZSB1bnVzdWFsIG9wdGlvbnMgZm9yIGNvbXBpbGF0aW9uIG9yIGxpbmtpbmcgdGhhdAordGhlIGBjb25maWd1cmUnIHNjcmlwdCBkb2VzIG5vdCBrbm93IGFib3V0LiAgWW91IGNhbiBnaXZlIGBjb25maWd1cmUnCitpbml0aWFsIHZhbHVlcyBmb3IgdmFyaWFibGVzIGJ5IHNldHRpbmcgdGhlbSBpbiB0aGUgZW52aXJvbm1lbnQuICBVc2luZworYSBCb3VybmUtY29tcGF0aWJsZSBzaGVsbCwgeW91IGNhbiBkbyB0aGF0IG9uIHRoZSBjb21tYW5kIGxpbmUgbGlrZQordGhpczoKKyAgICAgQ0M9Yzg5IENGTEFHUz0tTzIgTElCUz0tbHBvc2l4IC4vY29uZmlndXJlCisKK09yIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZSBgZW52JyBwcm9ncmFtLCB5b3UgY2FuIGRvIGl0IGxpa2UgdGhpczoKKyAgICAgZW52IENQUEZMQUdTPS1JL3Vzci9sb2NhbC9pbmNsdWRlIExERkxBR1M9LXMgLi9jb25maWd1cmUKKworQ29tcGlsaW5nIEZvciBNdWx0aXBsZSBBcmNoaXRlY3R1cmVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgWW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRoYW4gb25lIGtpbmQgb2YgY29tcHV0ZXIgYXQgdGhlCitzYW1lIHRpbWUsIGJ5IHBsYWNpbmcgdGhlIG9iamVjdCBmaWxlcyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUgaW4gdGhlaXIKK293biBkaXJlY3RvcnkuICBUbyBkbyB0aGlzLCB5b3UgbXVzdCB1c2UgYSB2ZXJzaW9uIG9mIGBtYWtlJyB0aGF0CitzdXBwb3J0cyB0aGUgYFZQQVRIJyB2YXJpYWJsZSwgc3VjaCBhcyBHTlUgYG1ha2UnLiAgYGNkJyB0byB0aGUKK2RpcmVjdG9yeSB3aGVyZSB5b3Ugd2FudCB0aGUgb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcyB0byBnbyBhbmQgcnVuCit0aGUgYGNvbmZpZ3VyZScgc2NyaXB0LiAgYGNvbmZpZ3VyZScgYXV0b21hdGljYWxseSBjaGVja3MgZm9yIHRoZQorc291cmNlIGNvZGUgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IGBjb25maWd1cmUnIGlzIGluIGFuZCBpbiBgLi4nLgorCisgICBJZiB5b3UgaGF2ZSB0byB1c2UgYSBgbWFrZScgdGhhdCBkb2VzIG5vdCBzdXBwb3J0cyB0aGUgYFZQQVRIJwordmFyaWFibGUsIHlvdSBoYXZlIHRvIGNvbXBpbGUgdGhlIHBhY2thZ2UgZm9yIG9uZSBhcmNoaXRlY3R1cmUgYXQgYSB0aW1lCitpbiB0aGUgc291cmNlIGNvZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBwYWNrYWdlIGZvcgorb25lIGFyY2hpdGVjdHVyZSwgdXNlIGBtYWtlIGRpc3RjbGVhbicgYmVmb3JlIHJlY29uZmlndXJpbmcgZm9yIGFub3RoZXIKK2FyY2hpdGVjdHVyZS4KKworSW5zdGFsbGF0aW9uIE5hbWVzCis9PT09PT09PT09PT09PT09PT0KKworICAgQnkgZGVmYXVsdCwgYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0YWxsIHRoZSBwYWNrYWdlJ3MgZmlsZXMgaW4KK2AvdXNyL2xvY2FsL2JpbicsIGAvdXNyL2xvY2FsL21hbicsIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeSBhbgoraW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIGAvdXNyL2xvY2FsJyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCitvcHRpb24gYC0tcHJlZml4PVBBVEgnLgorCisgICBZb3UgY2FuIHNwZWNpZnkgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHByZWZpeGVzIGZvcgorYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzIGFuZCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMuICBJZiB5b3UKK2dpdmUgYGNvbmZpZ3VyZScgdGhlIG9wdGlvbiBgLS1leGVjLXByZWZpeD1QQVRIJywgdGhlIHBhY2thZ2Ugd2lsbCB1c2UKK1BBVEggYXMgdGhlIHByZWZpeCBmb3IgaW5zdGFsbGluZyBwcm9ncmFtcyBhbmQgbGlicmFyaWVzLgorRG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZGF0YSBmaWxlcyB3aWxsIHN0aWxsIHVzZSB0aGUgcmVndWxhciBwcmVmaXguCisKKyAgIEluIGFkZGl0aW9uLCBpZiB5b3UgdXNlIGFuIHVudXN1YWwgZGlyZWN0b3J5IGxheW91dCB5b3UgY2FuIGdpdmUKK29wdGlvbnMgbGlrZSBgLS1iaW5kaXI9UEFUSCcgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIGZvciBwYXJ0aWN1bGFyCitraW5kcyBvZiBmaWxlcy4gIFJ1biBgY29uZmlndXJlIC0taGVscCcgZm9yIGEgbGlzdCBvZiB0aGUgZGlyZWN0b3JpZXMKK3lvdSBjYW4gc2V0IGFuZCB3aGF0IGtpbmRzIG9mIGZpbGVzIGdvIGluIHRoZW0uCisKKyAgIElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAord2l0aCBhbiBleHRyYSBwcmVmaXggb3Igc3VmZml4IG9uIHRoZWlyIG5hbWVzIGJ5IGdpdmluZyBgY29uZmlndXJlJyB0aGUKK29wdGlvbiBgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVgnIG9yIGAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCcuCisKK09wdGlvbmFsIEZlYXR1cmVzCis9PT09PT09PT09PT09PT09PQorCisgICBTb21lIHBhY2thZ2VzIHBheSBhdHRlbnRpb24gdG8gYC0tZW5hYmxlLUZFQVRVUkUnIG9wdGlvbnMgdG8KK2Bjb25maWd1cmUnLCB3aGVyZSBGRUFUVVJFIGluZGljYXRlcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBwYWNrYWdlLgorVGhleSBtYXkgYWxzbyBwYXkgYXR0ZW50aW9uIHRvIGAtLXdpdGgtUEFDS0FHRScgb3B0aW9ucywgd2hlcmUgUEFDS0FHRQoraXMgc29tZXRoaW5nIGxpa2UgYGdudS1hcycgb3IgYHgnIChmb3IgdGhlIFggV2luZG93IFN5c3RlbSkuICBUaGUKK2BSRUFETUUnIHNob3VsZCBtZW50aW9uIGFueSBgLS1lbmFibGUtJyBhbmQgYC0td2l0aC0nIG9wdGlvbnMgdGhhdCB0aGUKK3BhY2thZ2UgcmVjb2duaXplcy4KKworICAgRm9yIHBhY2thZ2VzIHRoYXQgdXNlIHRoZSBYIFdpbmRvdyBTeXN0ZW0sIGBjb25maWd1cmUnIGNhbiB1c3VhbGx5CitmaW5kIHRoZSBYIGluY2x1ZGUgYW5kIGxpYnJhcnkgZmlsZXMgYXV0b21hdGljYWxseSwgYnV0IGlmIGl0IGRvZXNuJ3QsCit5b3UgY2FuIHVzZSB0aGUgYGNvbmZpZ3VyZScgb3B0aW9ucyBgLS14LWluY2x1ZGVzPURJUicgYW5kCitgLS14LWxpYnJhcmllcz1ESVInIHRvIHNwZWNpZnkgdGhlaXIgbG9jYXRpb25zLgorCitTcGVjaWZ5aW5nIHRoZSBTeXN0ZW0gVHlwZQorPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgVGhlcmUgbWF5IGJlIHNvbWUgZmVhdHVyZXMgYGNvbmZpZ3VyZScgY2FuIG5vdCBmaWd1cmUgb3V0CithdXRvbWF0aWNhbGx5LCBidXQgbmVlZHMgdG8gZGV0ZXJtaW5lIGJ5IHRoZSB0eXBlIG9mIGhvc3QgdGhlIHBhY2thZ2UKK3dpbGwgcnVuIG9uLiAgVXN1YWxseSBgY29uZmlndXJlJyBjYW4gZmlndXJlIHRoYXQgb3V0LCBidXQgaWYgaXQgcHJpbnRzCithIG1lc3NhZ2Ugc2F5aW5nIGl0IGNhbiBub3QgZ3Vlc3MgdGhlIGhvc3QgdHlwZSwgZ2l2ZSBpdCB0aGUKK2AtLWhvc3Q9VFlQRScgb3B0aW9uLiAgVFlQRSBjYW4gZWl0aGVyIGJlIGEgc2hvcnQgbmFtZSBmb3IgdGhlIHN5c3RlbQordHlwZSwgc3VjaCBhcyBgc3VuNCcsIG9yIGEgY2Fub25pY2FsIG5hbWUgd2l0aCB0aHJlZSBmaWVsZHM6CisgICAgIENQVS1DT01QQU5ZLVNZU1RFTQorCitTZWUgdGhlIGZpbGUgYGNvbmZpZy5zdWInIGZvciB0aGUgcG9zc2libGUgdmFsdWVzIG9mIGVhY2ggZmllbGQuICBJZgorYGNvbmZpZy5zdWInIGlzbid0IGluY2x1ZGVkIGluIHRoaXMgcGFja2FnZSwgdGhlbiB0aGlzIHBhY2thZ2UgZG9lc24ndAorbmVlZCB0byBrbm93IHRoZSBob3N0IHR5cGUuCisKKyAgIElmIHlvdSBhcmUgYnVpbGRpbmcgY29tcGlsZXIgdG9vbHMgZm9yIGNyb3NzLWNvbXBpbGluZywgeW91IGNhbiBhbHNvCit1c2UgdGhlIGAtLXRhcmdldD1UWVBFJyBvcHRpb24gdG8gc2VsZWN0IHRoZSB0eXBlIG9mIHN5c3RlbSB0aGV5IHdpbGwKK3Byb2R1Y2UgY29kZSBmb3IgYW5kIHRoZSBgLS1idWlsZD1UWVBFJyBvcHRpb24gdG8gc2VsZWN0IHRoZSB0eXBlIG9mCitzeXN0ZW0gb24gd2hpY2ggeW91IGFyZSBjb21waWxpbmcgdGhlIHBhY2thZ2UuCisKK1NoYXJpbmcgRGVmYXVsdHMKKz09PT09PT09PT09PT09PT0KKworICAgSWYgeW91IHdhbnQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvciBgY29uZmlndXJlJyBzY3JpcHRzIHRvIHNoYXJlLAoreW91IGNhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZpZy5zaXRlJyB0aGF0IGdpdmVzCitkZWZhdWx0IHZhbHVlcyBmb3IgdmFyaWFibGVzIGxpa2UgYENDJywgYGNhY2hlX2ZpbGUnLCBhbmQgYHByZWZpeCcuCitgY29uZmlndXJlJyBsb29rcyBmb3IgYFBSRUZJWC9zaGFyZS9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLCB0aGVuCitgUFJFRklYL2V0Yy9jb25maWcuc2l0ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQorYENPTkZJR19TSVRFJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgbG9jYXRpb24gb2YgdGhlIHNpdGUgc2NyaXB0LgorQSB3YXJuaW5nOiBub3QgYWxsIGBjb25maWd1cmUnIHNjcmlwdHMgbG9vayBmb3IgYSBzaXRlIHNjcmlwdC4KKworT3BlcmF0aW9uIENvbnRyb2xzCis9PT09PT09PT09PT09PT09PT0KKworICAgYGNvbmZpZ3VyZScgcmVjb2duaXplcyB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gY29udHJvbCBob3cgaXQKK29wZXJhdGVzLgorCitgLS1jYWNoZS1maWxlPUZJTEUnCisgICAgIFVzZSBhbmQgc2F2ZSB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdHMgaW4gRklMRSBpbnN0ZWFkIG9mCisgICAgIGAuL2NvbmZpZy5jYWNoZScuICBTZXQgRklMRSB0byBgL2Rldi9udWxsJyB0byBkaXNhYmxlIGNhY2hpbmcsIGZvcgorICAgICBkZWJ1Z2dpbmcgYGNvbmZpZ3VyZScuCisKK2AtLWhlbHAnCisgICAgIFByaW50IGEgc3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB0byBgY29uZmlndXJlJywgYW5kIGV4aXQuCisKK2AtLXF1aWV0JworYC0tc2lsZW50JworYC1xJworICAgICBEbyBub3QgcHJpbnQgbWVzc2FnZXMgc2F5aW5nIHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4KKworYC0tc3JjZGlyPURJUicKKyAgICAgTG9vayBmb3IgdGhlIHBhY2thZ2UncyBzb3VyY2UgY29kZSBpbiBkaXJlY3RvcnkgRElSLiAgVXN1YWxseQorICAgICBgY29uZmlndXJlJyBjYW4gZGV0ZXJtaW5lIHRoYXQgZGlyZWN0b3J5IGF1dG9tYXRpY2FsbHkuCisKK2AtLXZlcnNpb24nCisgICAgIFByaW50IHRoZSB2ZXJzaW9uIG9mIEF1dG9jb25mIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGBjb25maWd1cmUnCisgICAgIHNjcmlwdCwgYW5kIGV4aXQuCisKK2Bjb25maWd1cmUnIGFsc28gYWNjZXB0cyBzb21lIG90aGVyLCBub3Qgd2lkZWx5IHVzZWZ1bCwgb3B0aW9ucy4KKwpkaWZmIC0tZ2l0IGEvTU9EVUxFX0xJQ0VOU0VfQlNEIGIvTU9EVUxFX0xJQ0VOU0VfQlNECm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9NT0RVTEVfTElDRU5TRV9CU0QKZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM5M2I5YgotLS0gL2Rldi9udWxsCisrKyBiL01ha2VmaWxlLmFtCkBAIC0wLDAgKzEsMTAxIEBACisjIEF1dG9tYWtlIGlucHV0IGZvciBzdHJhY2UuCisKK2Jpbl9QUk9HUkFNUyA9IHN0cmFjZQorbWFuX01BTlMgPSBzdHJhY2UuMQorYmluX1NDUklQVFMgPSBzdHJhY2UtZ3JhcGgKKworIyBPUyBpcyBvbmUgb2YgYGxpbnV4JywgYHN1bm9zNCcsIGBzdnI0Jywgb3IgYGZyZWVic2QnLgorT1MJCT0gQG9wc3lzQAorIyBBUkNIIGlzIGBpMzg2JywgYG02OGsnLCBgc3BhcmMnLCBldGMuCitBUkNICQk9IEBhcmNoQAorCitBTV9DRkxBR1MgPSAkKFdBUk5GTEFHUykKK0lOQ0xVREVTID0gLUkkKE9TKS8kKEFSQ0gpIC1JJChzcmNkaXIpLyQoT1MpLyQoQVJDSCkgLUkkKE9TKSAtSSQoc3JjZGlyKS8kKE9TKQorCitzdHJhY2VfU09VUkNFUyA9IHN0cmFjZS5jIHN5c2NhbGwuYyB1dGlsLmMgZGVzYy5jIGZpbGUuYyBpcGMuYyBcCisJCSBpby5jIGlvY3RsLmMgbWVtLmMgbmV0LmMgcHJvY2Vzcy5jIGJqbS5jIHF1b3RhLmMgXAorCQkgcmVzb3VyY2UuYyBzaWduYWwuYyBzb2NrLmMgc3lzdGVtLmMgdGVybS5jIHRpbWUuYyBcCisJCSBwcm9jLmMgc3RyZWFtLmMKK25vaW5zdF9IRUFERVJTID0gZGVmcy5oCisKK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5TKSBlcnJub2VudC5zaCBzaWduYWxlbnQuc2ggc3lzY2FsbGVudC5zaCBpb2N0bHNvcnQuYyBcCisgICAgIAkgICAgIGRlYmlhbi9jaGFuZ2Vsb2cgZGViaWFuL2NvbnRyb2wgZGViaWFuL2NvcHlyaWdodCBkZWJpYW4vcnVsZXMgXAorCSAgICAgc3RyYWNlLnNwZWMgXAorCSAgICAgc3RyYWNlLWdyYXBoIENPUFlSSUdIVCBDUkVESVRTIFBPUlRJTkcgXAorCSAgICAgUkVBRE1FLUNWUyBSRUFETUUtZnJlZWJzZCBSRUFETUUtbGludXggUkVBRE1FLXN1bm9zNCBSRUFETUUtc3ZyNCBcCisJICAgICBsaW51eC9pb2N0bHNvcnQuYyBsaW51eC9pb2N0bGVudC5zaCBcCisJICAgICBsaW51eC9pb2N0bGVudC5oIGxpbnV4L2Vycm5vZW50LmggbGludXgvc2lnbmFsZW50LmggXAorCSAgICAgbGludXgvc3lzY2FsbC5oIGxpbnV4L3N5c2NhbGxlbnQuaCBsaW51eC9kdW1teS5oIFwKKwkgICAgIGxpbnV4L2FscGhhL2Vycm5vZW50LmggbGludXgvYWxwaGEvaW9jdGxlbnQuaCBcCisJICAgICBsaW51eC9hbHBoYS9zaWduYWxlbnQuaCBsaW51eC9hbHBoYS9zeXNjYWxsZW50LmggXAorCSAgICAgbGludXgvaHBwYS9lcnJub2VudC5oIGxpbnV4L2hwcGEvaW9jdGxlbnQuaCBcCisJICAgICBsaW51eC9ocHBhL3NpZ25hbGVudC5oIGxpbnV4L2hwcGEvc3lzY2FsbGVudC5oIFwKKwkgICAgIGxpbnV4L2lhNjQvc3lzY2FsbGVudC5oIGxpbnV4L2lhNjQvZXJybm9lbnQuaCBcCisJICAgICBsaW51eC9pYTY0L2lvY3RsZW50LmggbGludXgvaWE2NC9zaWduYWxlbnQuaCBcCisgICAgIAkgICAgIGxpbnV4L21pcHMvaW9jdGxlbnQuc2ggbGludXgvbWlwcy9lcnJub2VudC5oIFwKKwkgICAgIGxpbnV4L21pcHMvaW9jdGxlbnQuaCBsaW51eC9taXBzL3NpZ25hbGVudC5oIFwKKwkgICAgIGxpbnV4L21pcHMvc3lzY2FsbGVudC5oIFwKKwkgICAgIGxpbnV4L3Bvd2VycGMvc3lzY2FsbGVudC5oIFwKKwkgICAgIGxpbnV4L3Bvd2VycGMvZXJybm9lbnQuaCBsaW51eC9wb3dlcnBjL2lvY3RsZW50LmggXAorCSAgICAgbGludXgvcG93ZXJwYy9zaWduYWxlbnQuaCBcCisJICAgICBsaW51eC9zMzkwL2Vycm5vZW50LmggbGludXgvczM5MC9pb2N0bGVudC5oIFwKKwkgICAgIGxpbnV4L3MzOTAvc2lnbmFsZW50LmggbGludXgvczM5MC9zeXNjYWxsZW50LmggXAorCSAgICAgbGludXgvczM5MHgvZXJybm9lbnQuaCBsaW51eC9zMzkweC9pb2N0bGVudC5oIFwKKwkgICAgIGxpbnV4L3MzOTB4L3NpZ25hbGVudC5oIGxpbnV4L3MzOTB4L3N5c2NhbGxlbnQuaCBcCisJICAgICBsaW51eC9zaC9zeXNjYWxsZW50LmggbGludXgvc2gvZXJybm9lbnQuaCBcCisJICAgICBsaW51eC9zaC9pb2N0bGVudC5oIGxpbnV4L3NoL3NpZ25hbGVudC5oIFwKKwkgICAgIGxpbnV4L3NoNjQvc3lzY2FsbGVudC5oIFwKKwkgICAgIGxpbnV4L3NwYXJjL2R1bW15Mi5oIFwKKwkgICAgIGxpbnV4L3NwYXJjL2Vycm5vZW50LmggbGludXgvc3BhcmMvZXJybm9lbnQxLmggXAorCSAgICAgbGludXgvc3BhcmMvaW9jdGxlbnQuaCBsaW51eC9zcGFyYy9pb2N0bGVudDEuaCBcCisJICAgICBsaW51eC9zcGFyYy9zaWduYWxlbnQuaCBsaW51eC9zcGFyYy9zaWduYWxlbnQxLmggXAorCSAgICAgbGludXgvc3BhcmMvc3lzY2FsbC5oIGxpbnV4L3NwYXJjL3N5c2NhbGwxLmggXAorCSAgICAgbGludXgvc3BhcmMvc3lzY2FsbGVudC5oIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQxLmggXAorCSAgICAgbGludXgvc3BhcmMvZ2VuLnBsIGxpbnV4L3NwYXJjL3N5c2NhbGwuaC4yIFwKKwkgICAgIGxpbnV4L3NwYXJjNjQvZHVtbXkyLmggbGludXgvc3BhcmM2NC9lcnJub2VudC5oIFwKKwkgICAgIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQxLmggbGludXgvc3BhcmM2NC9lcnJub2VudDIuaCBcCisJICAgICBsaW51eC9zcGFyYzY0L2lvY3RsZW50LmggbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaCBcCisJICAgICBsaW51eC9zcGFyYzY0L2lvY3RsZW50Mi5oIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50LmggXAorCSAgICAgbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmggbGludXgvc3BhcmM2NC9zaWduYWxlbnQyLmggXAorCSAgICAgbGludXgvc3BhcmM2NC9zeXNjYWxsLmggbGludXgvc3BhcmM2NC9zeXNjYWxsMS5oIFwKKwkgICAgIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudC5oIGxpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDEuaCBcCisJICAgICBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmggXAorCSAgICAgbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaCBsaW51eC94ODZfNjQvZ2VudGFiLnBsIFwKKwkgICAgIGxpbnV4L3g4Nl82NC9lcnJub2VudDEuaCBsaW51eC94ODZfNjQvaW9jdGxlbnQxLmggXAorCSAgICAgbGludXgveDg2XzY0L3NpZ25hbGVudDEuaCBsaW51eC94ODZfNjQvc3lzY2FsbGVudDEuaCBcCisJICAgICBmcmVlYnNkL2lvY3RsZW50LnNoIFwKKwkgICAgIGZyZWVic2Qvc3lzY2FsbHMuY2F0IGZyZWVic2Qvc3lzY2FsbHMucGwgZnJlZWJzZC9zeXNjYWxscy5wcmludCBcCisJICAgICBmcmVlYnNkL2kzODYvZXJybm9lbnQuaCBmcmVlYnNkL2kzODYvaW9jdGxlbnQuaCBcCisJICAgICBmcmVlYnNkL2kzODYvc2lnbmFsZW50LmggXAorCSAgICAgZnJlZWJzZC9pMzg2L3N5c2NhbGwuaCBmcmVlYnNkL2kzODYvc3lzY2FsbGVudC5oIFwKKwkgICAgIHN1bm9zNC9kdW1teS5oIHN1bm9zNC9lcnJub2VudC5oIFwKKwkgICAgIHN1bm9zNC9pb2N0bGVudC5oIHN1bm9zNC9pb2N0bGVudC5zaCBzdW5vczQvc2lnbmFsZW50LmggXAorCSAgICAgc3Vub3M0L3N5c2NhbGwuaCBzdW5vczQvc3lzY2FsbGVudC5oIFwKKwkgICAgIHN2cjQvZHVtbXkuaCBzdnI0L2Vycm5vZW50Lmggc3ZyNC9pb2N0bGVudC5oIHN2cjQvaW9jdGxlbnQuc2ggXAorCSAgICAgc3ZyNC9zaWduYWxlbnQuaCBzdnI0L3N5c2NhbGwuaCBzdnI0L3N5c2NhbGxlbnQuaAorCitpZiBNQUlOVEFJTkVSX01PREUKK2lmIExJTlVYCisKK0lPQ1RMRElSID0gL3Vzci9pbmNsdWRlCitJT0NUTEFTTSA9IGFzbQorCitpZiBJMzg2Citpb2N0bGVudF9oID0gbGludXgvaW9jdGxlbnQuaAorZWxzZQoraW9jdGxlbnRfaCA9IGxpbnV4LyQoQVJDSCkvaW9jdGxlbnQuaAorZW5kaWYKKworQlVJTFRfU09VUkNFUyA9ICQoaW9jdGxlbnRfaCkKKworJChzcmNkaXIpLyQoaW9jdGxlbnRfaCk6IGlvY3Rsc29ydAorCSQoPEQpLyQoPEYpID4gJEAKK2lvY3Rsc29ydDogJChzcmNkaXIpL2xpbnV4L2lvY3Rsc29ydC5jIGlvY3Rscy5oIGlvY3RsZGVmcy5oCisJJChmaWx0ZXItb3V0IC1JJSwkKExJTksuYykpIC1JLiAtSSQoSU9DVExESVIpICQoZmlsdGVyIC1JJSwkKExJTksuYykpIFwKKwkgIC1vICRAICQ8Citpb2N0bHMuaDogJChzcmNkaXIpL2xpbnV4L2lvY3RsZW50LnNoCisJJChTSEVMTCkgJDwgJChJT0NUTERJUikgJChJT0NUTEFTTSkKK2lvY3RsZGVmcy5oOiBpb2N0bHMuaCA7CisKK2VuZGlmCitlbmRpZgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmUwNjQxCi0tLSAvZGV2L251bGwKKysrIGIvTWFrZWZpbGUuaW4KQEAgLTAsMCArMSw3NjAgQEAKKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuOS41IGZyb20gTWFrZWZpbGUuYW0uCisjIEBjb25maWd1cmVfaW5wdXRACisKKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAorIyAyMDAzLCAyMDA0LCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQorIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisKK0BTRVRfTUFLRUAKKworIyBBdXRvbWFrZSBpbnB1dCBmb3Igc3RyYWNlLgorCisKKworU09VUkNFUyA9ICQoc3RyYWNlX1NPVVJDRVMpCisKK3NyY2RpciA9IEBzcmNkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACitWUEFUSCA9IEBzcmNkaXJACitwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAordG9wX2J1aWxkZGlyID0gLgorYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAorSU5TVEFMTCA9IEBJTlNUQUxMQAoraW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYworSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKK05PUk1BTF9JTlNUQUxMID0gOgorUFJFX0lOU1RBTEwgPSA6CitQT1NUX0lOU1RBTEwgPSA6CitOT1JNQUxfVU5JTlNUQUxMID0gOgorUFJFX1VOSU5TVEFMTCA9IDoKK1BPU1RfVU5JTlNUQUxMID0gOgorYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKK2hvc3RfdHJpcGxldCA9IEBob3N0QAorYmluX1BST0dSQU1TID0gc3RyYWNlJChFWEVFWFQpCitESVNUX0NPTU1PTiA9IFJFQURNRSAkKGFtX19jb25maWd1cmVfZGVwcykgJChub2luc3RfSEVBREVSUykgXAorCSQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAorCSQoc3JjZGlyKS9jb25maWcuaC5pbiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSBBVVRIT1JTIFwKKwlDaGFuZ2VMb2cgSU5TVEFMTCBORVdTIFRPRE8gY29uZmlnLmd1ZXNzIGNvbmZpZy5zdWIgZGVwY29tcCBcCisJaW5zdGFsbC1zaCBtaXNzaW5nIG1raW5zdGFsbGRpcnMKK3N1YmRpciA9IC4KK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2FjaW5jbHVkZS5tNCBcCisJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCisJJChBQ0xPQ0FMX000KQorYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMgPSBjb25maWcuc3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcubG9nIFwKKyBjb25maWd1cmUubGluZW5vIGNvbmZpZ3VyZS5zdGF0dXMubGluZW5vCitta2luc3RhbGxkaXJzID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9ta2luc3RhbGxkaXJzCitDT05GSUdfSEVBREVSID0gY29uZmlnLmgKK0NPTkZJR19DTEVBTl9GSUxFUyA9CithbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKGJpbmRpcikiIFwKKwkiJChERVNURElSKSQobWFuMWRpcikiCitiaW5QUk9HUkFNU19JTlNUQUxMID0gJChJTlNUQUxMX1BST0dSQU0pCitQUk9HUkFNUyA9ICQoYmluX1BST0dSQU1TKQorYW1fc3RyYWNlX09CSkVDVFMgPSBzdHJhY2UuJChPQkpFWFQpIHN5c2NhbGwuJChPQkpFWFQpIHV0aWwuJChPQkpFWFQpIFwKKwlkZXNjLiQoT0JKRVhUKSBmaWxlLiQoT0JKRVhUKSBpcGMuJChPQkpFWFQpIGlvLiQoT0JKRVhUKSBcCisJaW9jdGwuJChPQkpFWFQpIG1lbS4kKE9CSkVYVCkgbmV0LiQoT0JKRVhUKSBwcm9jZXNzLiQoT0JKRVhUKSBcCisJYmptLiQoT0JKRVhUKSByZXNvdXJjZS4kKE9CSkVYVCkgc2lnbmFsLiQoT0JKRVhUKSBcCisJc29jay4kKE9CSkVYVCkgc3lzdGVtLiQoT0JKRVhUKSB0ZXJtLiQoT0JKRVhUKSB0aW1lLiQoT0JKRVhUKSBcCisJcHJvYy4kKE9CSkVYVCkgc3RyZWFtLiQoT0JKRVhUKQorc3RyYWNlX09CSkVDVFMgPSAkKGFtX3N0cmFjZV9PQkpFQ1RTKQorc3RyYWNlX0xEQUREID0gJChMREFERCkKK2JpblNDUklQVF9JTlNUQUxMID0gJChJTlNUQUxMX1NDUklQVCkKK1NDUklQVFMgPSAkKGJpbl9TQ1JJUFRTKQorREVGQVVMVF9JTkNMVURFUyA9IC1JLiAtSSQoc3JjZGlyKSAtSS4KK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2RlcGNvbXAKK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCitDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpCitDQ0xEID0gJChDQykKK0xJTksgPSAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACitTT1VSQ0VTID0gJChzdHJhY2VfU09VUkNFUykKK0RJU1RfU09VUkNFUyA9ICQoc3RyYWNlX1NPVVJDRVMpCittYW4xZGlyID0gJChtYW5kaXIpL21hbjEKK05ST0ZGID0gbnJvZmYKK01BTlMgPSAkKG1hbl9NQU5TKQorSEVBREVSUyA9ICQobm9pbnN0X0hFQURFUlMpCitFVEFHUyA9IGV0YWdzCitDVEFHUyA9IGN0YWdzCitESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQorZGlzdGRpciA9ICQoUEFDS0FHRSktJChWRVJTSU9OKQordG9wX2Rpc3RkaXIgPSAkKGRpc3RkaXIpCithbV9fcmVtb3ZlX2Rpc3RkaXIgPSBcCisgIHsgdGVzdCAhIC1kICQoZGlzdGRpcikgXAorICAgIHx8IHsgZmluZCAkKGRpc3RkaXIpIC10eXBlIGQgISAtcGVybSAtMjAwIC1leGVjIGNobW9kIHUrdyB7fSAnOycgXAorICAgICAgICAgJiYgcm0gLWZyICQoZGlzdGRpcik7IH07IH0KK0RJU1RfQVJDSElWRVMgPSAkKGRpc3RkaXIpLnRhci5neiAkKGRpc3RkaXIpLnRhci5iejIKK0daSVBfRU5WID0gLS1iZXN0CitkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CitkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKK0FDTE9DQUwgPSBAQUNMT0NBTEAKK0FNREVQX0ZBTFNFID0gQEFNREVQX0ZBTFNFQAorQU1ERVBfVFJVRSA9IEBBTURFUF9UUlVFQAorQU1UQVIgPSBAQU1UQVJACitBVVRPQ09ORiA9IEBBVVRPQ09ORkAKK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKK0FVVE9NQUtFID0gQEFVVE9NQUtFQAorQVdLID0gQEFXS0AKK0NDID0gQENDQAorQ0NERVBNT0RFID0gQENDREVQTU9ERUAKK0NGTEFHUyA9IEBDRkxBR1NACitDUFAgPSBAQ1BQQAorQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACitDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAorREVGUyA9IEBERUZTQAorREVQRElSID0gQERFUERJUkAKK0VDSE9fQyA9IEBFQ0hPX0NACitFQ0hPX04gPSBARUNIT19OQAorRUNIT19UID0gQEVDSE9fVEAKK0VHUkVQID0gQEVHUkVQQAorRVhFRVhUID0gQEVYRUVYVEAKK0ZSRUVCU0RfRkFMU0UgPSBARlJFRUJTRF9GQUxTRUAKK0ZSRUVCU0RfVFJVRSA9IEBGUkVFQlNEX1RSVUVACitJMzg2X0ZBTFNFID0gQEkzODZfRkFMU0VACitJMzg2X1RSVUUgPSBASTM4Nl9UUlVFQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACitJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACitMREZMQUdTID0gQExERkxBR1NACitMSUJPQkpTID0gQExJQk9CSlNACitMSUJTID0gQExJQlNACitMSU5VWF9GQUxTRSA9IEBMSU5VWF9GQUxTRUAKK0xJTlVYX1RSVUUgPSBATElOVVhfVFJVRUAKK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACitNQUlOVCA9IEBNQUlOVEAKK01BSU5UQUlORVJfTU9ERV9GQUxTRSA9IEBNQUlOVEFJTkVSX01PREVfRkFMU0VACitNQUlOVEFJTkVSX01PREVfVFJVRSA9IEBNQUlOVEFJTkVSX01PREVfVFJVRUAKK01BS0VJTkZPID0gQE1BS0VJTkZPQAorT0JKRVhUID0gQE9CSkVYVEAKK1BBQ0tBR0UgPSBAUEFDS0FHRUAKK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAorUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAorUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACitQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKK1BFUkwgPSBAUEVSTEAKK1NFVF9NQUtFID0gQFNFVF9NQUtFQAorU0hFTEwgPSBAU0hFTExACitTVFJJUCA9IEBTVFJJUEAKK1NVTk9TNF9GQUxTRSA9IEBTVU5PUzRfRkFMU0VACitTVU5PUzRfVFJVRSA9IEBTVU5PUzRfVFJVRUAKK1NWUjRfRkFMU0UgPSBAU1ZSNF9GQUxTRUAKK1NWUjRfVFJVRSA9IEBTVlI0X1RSVUVACitWRVJTSU9OID0gQFZFUlNJT05ACitXQVJORkxBR1MgPSBAV0FSTkZMQUdTQAorWDg2XzY0X0ZBTFNFID0gQFg4Nl82NF9GQUxTRUAKK1g4Nl82NF9UUlVFID0gQFg4Nl82NF9UUlVFQAorYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACithY19jdF9TVFJJUCA9IEBhY19jdF9TVFJJUEAKK2FtX19mYXN0ZGVwQ0NfRkFMU0UgPSBAYW1fX2Zhc3RkZXBDQ19GQUxTRUAKK2FtX19mYXN0ZGVwQ0NfVFJVRSA9IEBhbV9fZmFzdGRlcENDX1RSVUVACithbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACithbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAorYW1fX3RhciA9IEBhbV9fdGFyQAorYW1fX3VudGFyID0gQGFtX191bnRhckAKK2FyY2ggPSBAYXJjaEAKK2JpbmRpciA9IEBiaW5kaXJACitidWlsZCA9IEBidWlsZEAKK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAorYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKK2J1aWxkX29zID0gQGJ1aWxkX29zQAorYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAoraG9zdCA9IEBob3N0QAoraG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAoraG9zdF9jcHUgPSBAaG9zdF9jcHVACitob3N0X29zID0gQGhvc3Rfb3NACitob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKK2luZm9kaXIgPSBAaW5mb2RpckAKK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKK2xpYmRpciA9IEBsaWJkaXJACitsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACitsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACittYW5kaXIgPSBAbWFuZGlyQAorbWtkaXJfcCA9IEBta2Rpcl9wQAorb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAorb3BzeXMgPSBAb3BzeXNACitwcmVmaXggPSBAcHJlZml4QAorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAorc2JpbmRpciA9IEBzYmluZGlyQAorc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACitzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACit0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAorbWFuX01BTlMgPSBzdHJhY2UuMQorYmluX1NDUklQVFMgPSBzdHJhY2UtZ3JhcGgKKworIyBPUyBpcyBvbmUgb2YgYGxpbnV4JywgYHN1bm9zNCcsIGBzdnI0Jywgb3IgYGZyZWVic2QnLgorT1MgPSBAb3BzeXNACisjIEFSQ0ggaXMgYGkzODYnLCBgbTY4aycsIGBzcGFyYycsIGV0Yy4KK0FSQ0ggPSBAYXJjaEAKK0FNX0NGTEFHUyA9ICQoV0FSTkZMQUdTKQorSU5DTFVERVMgPSAtSSQoT1MpLyQoQVJDSCkgLUkkKHNyY2RpcikvJChPUykvJChBUkNIKSAtSSQoT1MpIC1JJChzcmNkaXIpLyQoT1MpCitzdHJhY2VfU09VUkNFUyA9IHN0cmFjZS5jIHN5c2NhbGwuYyB1dGlsLmMgZGVzYy5jIGZpbGUuYyBpcGMuYyBcCisJCSBpby5jIGlvY3RsLmMgbWVtLmMgbmV0LmMgcHJvY2Vzcy5jIGJqbS5jIFwKKwkJIHJlc291cmNlLmMgc2lnbmFsLmMgc29jay5jIHN5c3RlbS5jIHRlcm0uYyB0aW1lLmMgXAorCQkgcHJvYy5jIHN0cmVhbS5jCisKK25vaW5zdF9IRUFERVJTID0gZGVmcy5oCitFWFRSQV9ESVNUID0gJChtYW5fTUFOUykgZXJybm9lbnQuc2ggc2lnbmFsZW50LnNoIHN5c2NhbGxlbnQuc2ggaW9jdGxzb3J0LmMgXAorICAgICAJICAgICBkZWJpYW4vY2hhbmdlbG9nIGRlYmlhbi9jb250cm9sIGRlYmlhbi9jb3B5cmlnaHQgZGViaWFuL3J1bGVzIFwKKwkgICAgIHN0cmFjZS5zcGVjIFwKKwkgICAgIHN0cmFjZS1ncmFwaCBDT1BZUklHSFQgQ1JFRElUUyBQT1JUSU5HIFwKKwkgICAgIFJFQURNRS1DVlMgUkVBRE1FLWZyZWVic2QgUkVBRE1FLWxpbnV4IFJFQURNRS1zdW5vczQgUkVBRE1FLXN2cjQgXAorCSAgICAgbGludXgvaW9jdGxzb3J0LmMgbGludXgvaW9jdGxlbnQuc2ggXAorCSAgICAgbGludXgvaW9jdGxlbnQuaCBsaW51eC9lcnJub2VudC5oIGxpbnV4L3NpZ25hbGVudC5oIFwKKwkgICAgIGxpbnV4L3N5c2NhbGwuaCBsaW51eC9zeXNjYWxsZW50LmggbGludXgvZHVtbXkuaCBcCisJICAgICBsaW51eC9hbHBoYS9lcnJub2VudC5oIGxpbnV4L2FscGhhL2lvY3RsZW50LmggXAorCSAgICAgbGludXgvYWxwaGEvc2lnbmFsZW50LmggbGludXgvYWxwaGEvc3lzY2FsbGVudC5oIFwKKwkgICAgIGxpbnV4L2hwcGEvZXJybm9lbnQuaCBsaW51eC9ocHBhL2lvY3RsZW50LmggXAorCSAgICAgbGludXgvaHBwYS9zaWduYWxlbnQuaCBsaW51eC9ocHBhL3N5c2NhbGxlbnQuaCBcCisJICAgICBsaW51eC9pYTY0L3N5c2NhbGxlbnQuaCBsaW51eC9pYTY0L2Vycm5vZW50LmggXAorCSAgICAgbGludXgvaWE2NC9pb2N0bGVudC5oIGxpbnV4L2lhNjQvc2lnbmFsZW50LmggXAorICAgICAJICAgICBsaW51eC9taXBzL2lvY3RsZW50LnNoIGxpbnV4L21pcHMvZXJybm9lbnQuaCBcCisJICAgICBsaW51eC9taXBzL2lvY3RsZW50LmggbGludXgvbWlwcy9zaWduYWxlbnQuaCBcCisJICAgICBsaW51eC9taXBzL3N5c2NhbGxlbnQuaCBcCisJICAgICBsaW51eC9wb3dlcnBjL3N5c2NhbGxlbnQuaCBcCisJICAgICBsaW51eC9wb3dlcnBjL2Vycm5vZW50LmggbGludXgvcG93ZXJwYy9pb2N0bGVudC5oIFwKKwkgICAgIGxpbnV4L3Bvd2VycGMvc2lnbmFsZW50LmggXAorCSAgICAgbGludXgvczM5MC9lcnJub2VudC5oIGxpbnV4L3MzOTAvaW9jdGxlbnQuaCBcCisJICAgICBsaW51eC9zMzkwL3NpZ25hbGVudC5oIGxpbnV4L3MzOTAvc3lzY2FsbGVudC5oIFwKKwkgICAgIGxpbnV4L3MzOTB4L2Vycm5vZW50LmggbGludXgvczM5MHgvaW9jdGxlbnQuaCBcCisJICAgICBsaW51eC9zMzkweC9zaWduYWxlbnQuaCBsaW51eC9zMzkweC9zeXNjYWxsZW50LmggXAorCSAgICAgbGludXgvc2gvc3lzY2FsbGVudC5oIGxpbnV4L3NoL2Vycm5vZW50LmggXAorCSAgICAgbGludXgvc2gvaW9jdGxlbnQuaCBsaW51eC9zaC9zaWduYWxlbnQuaCBcCisJICAgICBsaW51eC9zaDY0L3N5c2NhbGxlbnQuaCBcCisJICAgICBsaW51eC9zcGFyYy9kdW1teTIuaCBcCisJICAgICBsaW51eC9zcGFyYy9lcnJub2VudC5oIGxpbnV4L3NwYXJjL2Vycm5vZW50MS5oIFwKKwkgICAgIGxpbnV4L3NwYXJjL2lvY3RsZW50LmggbGludXgvc3BhcmMvaW9jdGxlbnQxLmggXAorCSAgICAgbGludXgvc3BhcmMvc2lnbmFsZW50LmggbGludXgvc3BhcmMvc2lnbmFsZW50MS5oIFwKKwkgICAgIGxpbnV4L3NwYXJjL3N5c2NhbGwuaCBsaW51eC9zcGFyYy9zeXNjYWxsMS5oIFwKKwkgICAgIGxpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaCBsaW51eC9zcGFyYy9zeXNjYWxsZW50MS5oIFwKKwkgICAgIGxpbnV4L3NwYXJjL2dlbi5wbCBsaW51eC9zcGFyYy9zeXNjYWxsLmguMiBcCisJICAgICBsaW51eC9zcGFyYzY0L2R1bW15Mi5oIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQuaCBcCisJICAgICBsaW51eC9zcGFyYzY0L2Vycm5vZW50MS5oIGxpbnV4L3NwYXJjNjQvZXJybm9lbnQyLmggXAorCSAgICAgbGludXgvc3BhcmM2NC9pb2N0bGVudC5oIGxpbnV4L3NwYXJjNjQvaW9jdGxlbnQxLmggXAorCSAgICAgbGludXgvc3BhcmM2NC9pb2N0bGVudDIuaCBsaW51eC9zcGFyYzY0L3NpZ25hbGVudC5oIFwKKwkgICAgIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50MS5oIGxpbnV4L3NwYXJjNjQvc2lnbmFsZW50Mi5oIFwKKwkgICAgIGxpbnV4L3NwYXJjNjQvc3lzY2FsbC5oIGxpbnV4L3NwYXJjNjQvc3lzY2FsbDEuaCBcCisJICAgICBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQuaCBsaW51eC9zcGFyYzY0L3N5c2NhbGxlbnQxLmggXAorCSAgICAgbGludXgvc3BhcmM2NC9zeXNjYWxsZW50Mi5oIFwKKwkgICAgIGxpbnV4L3g4Nl82NC9zeXNjYWxsZW50LmggbGludXgveDg2XzY0L2dlbnRhYi5wbCBcCisJICAgICBsaW51eC94ODZfNjQvZXJybm9lbnQxLmggbGludXgveDg2XzY0L2lvY3RsZW50MS5oIFwKKwkgICAgIGxpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmggbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmggXAorCSAgICAgZnJlZWJzZC9pb2N0bGVudC5zaCBcCisJICAgICBmcmVlYnNkL3N5c2NhbGxzLmNhdCBmcmVlYnNkL3N5c2NhbGxzLnBsIGZyZWVic2Qvc3lzY2FsbHMucHJpbnQgXAorCSAgICAgZnJlZWJzZC9pMzg2L2Vycm5vZW50LmggZnJlZWJzZC9pMzg2L2lvY3RsZW50LmggXAorCSAgICAgZnJlZWJzZC9pMzg2L3NpZ25hbGVudC5oIFwKKwkgICAgIGZyZWVic2QvaTM4Ni9zeXNjYWxsLmggZnJlZWJzZC9pMzg2L3N5c2NhbGxlbnQuaCBcCisJICAgICBzdW5vczQvZHVtbXkuaCBzdW5vczQvZXJybm9lbnQuaCBcCisJICAgICBzdW5vczQvaW9jdGxlbnQuaCBzdW5vczQvaW9jdGxlbnQuc2ggc3Vub3M0L3NpZ25hbGVudC5oIFwKKwkgICAgIHN1bm9zNC9zeXNjYWxsLmggc3Vub3M0L3N5c2NhbGxlbnQuaCBcCisJICAgICBzdnI0L2R1bW15Lmggc3ZyNC9lcnJub2VudC5oIHN2cjQvaW9jdGxlbnQuaCBzdnI0L2lvY3RsZW50LnNoIFwKKwkgICAgIHN2cjQvc2lnbmFsZW50Lmggc3ZyNC9zeXNjYWxsLmggc3ZyNC9zeXNjYWxsZW50LmgKKworQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQElPQ1RMRElSID0gL3Vzci9pbmNsdWRlCitATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVASU9DVExBU00gPSBhc20KK0BJMzg2X0ZBTFNFQEBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBpb2N0bGVudF9oID0gbGludXgvJChBUkNIKS9pb2N0bGVudC5oCitASTM4Nl9UUlVFQEBMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBpb2N0bGVudF9oID0gbGludXgvaW9jdGxlbnQuaAorQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQEJVSUxUX1NPVVJDRVMgPSAkKGlvY3RsZW50X2gpCithbGw6ICQoQlVJTFRfU09VUkNFUykgY29uZmlnLmgKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbGwtYW0KKworLlNVRkZJWEVTOgorLlNVRkZJWEVTOiAuYyAubyAub2JqCithbS0tcmVmcmVzaDoKKwlAOgorJChzcmNkaXIpL01ha2VmaWxlLmluOiBATUFJTlRBSU5FUl9NT0RFX1RSVUVAICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAgJChhbV9fY29uZmlndXJlX2RlcHMpCisJQGZvciBkZXAgaW4gJD87IGRvIFwKKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAorCSAgICAqJCRkZXAqKSBcCisJICAgICAgZWNobyAnIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gJzsgXAorCSAgICAgIGNkICQoc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gIFwKKwkJJiYgZXhpdCAwOyBcCisJICAgICAgZXhpdCAxOzsgXAorCSAgZXNhYzsgXAorCWRvbmU7IFwKKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWZvcmVpZ24gIE1ha2VmaWxlJzsgXAorCWNkICQodG9wX3NyY2RpcikgJiYgXAorCSAgJChBVVRPTUFLRSkgLS1mb3JlaWduICBNYWtlZmlsZQorLlBSRUNJT1VTOiBNYWtlZmlsZQorTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cworCUBjYXNlICckPycgaW4gXAorCSAgKmNvbmZpZy5zdGF0dXMqKSBcCisJICAgIGVjaG8gJyAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMnOyBcCisJICAgICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1czs7IFwKKwkgICopIFwKKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAorCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRAICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKKwllc2FjOworCiskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lFUykKKwkkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCisKKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiBATUFJTlRBSU5FUl9NT0RFX1RSVUVAICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQorCWNkICQoc3JjZGlyKSAmJiAkKEFVVE9DT05GKQorJChBQ0xPQ0FMX000KTogQE1BSU5UQUlORVJfTU9ERV9UUlVFQCAkKGFtX19hY2xvY2FsX200X2RlcHMpCisJY2QgJChzcmNkaXIpICYmICQoQUNMT0NBTCkgJChBQ0xPQ0FMX0FNRkxBR1MpCisKK2NvbmZpZy5oOiBzdGFtcC1oMQorCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gXAorCSAgcm0gLWYgc3RhbXAtaDE7IFwKKwkgICQoTUFLRSkgc3RhbXAtaDE7IFwKKwllbHNlIDo7IGZpCisKK3N0YW1wLWgxOiAkKHNyY2RpcikvY29uZmlnLmguaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKKwlAcm0gLWYgc3RhbXAtaDEKKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIGNvbmZpZy5oCiskKHNyY2RpcikvY29uZmlnLmguaW46IEBNQUlOVEFJTkVSX01PREVfVFJVRUAgJChhbV9fY29uZmlndXJlX2RlcHMpIAorCWNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPSEVBREVSKQorCXJtIC1mIHN0YW1wLWgxCisJdG91Y2ggJEAKKworZGlzdGNsZWFuLWhkcjoKKwktcm0gLWYgY29uZmlnLmggc3RhbXAtaDEKK2luc3RhbGwtYmluUFJPR1JBTVM6ICQoYmluX1BST0dSQU1TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQoYmluZGlyKSIgfHwgJChta2Rpcl9wKSAiJChERVNURElSKSQoYmluZGlyKSIKKwlAbGlzdD0nJChiaW5fUFJPR1JBTVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBwMT1gZWNobyAkJHB8c2VkICdzLyQoRVhFRVhUKSQkLy8nYDsgXAorCSAgaWYgdGVzdCAtZiAkJHAgXAorCSAgOyB0aGVuIFwKKwkgICAgZj1gZWNobyAiJCRwMSIgfCBzZWQgJ3MsXi4qLywsOyQodHJhbnNmb3JtKTtzLyQkLyQoRVhFRVhUKS8nYDsgXAorCSAgIGVjaG8gIiAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoYmluUFJPR1JBTVNfSU5TVEFMTCkgJyQkcCcgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKKwkgICAkKElOU1RBTExfUFJPR1JBTV9FTlYpICQoYmluUFJPR1JBTVNfSU5TVEFMTCkgIiQkcCIgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIiB8fCBleGl0IDE7IFwKKwkgIGVsc2UgOjsgZmk7IFwKKwlkb25lCisKK3VuaW5zdGFsbC1iaW5QUk9HUkFNUzoKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKGJpbl9QUk9HUkFNUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGY9YGVjaG8gIiQkcCIgfCBzZWQgJ3MsXi4qLywsO3MvJChFWEVFWFQpJCQvLzskKHRyYW5zZm9ybSk7cy8kJC8kKEVYRUVYVCkvJ2A7IFwKKwkgIGVjaG8gIiBybSAtZiAnJChERVNURElSKSQoYmluZGlyKS8kJGYnIjsgXAorCSAgcm0gLWYgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAorCWRvbmUKKworY2xlYW4tYmluUFJPR1JBTVM6CisJLXRlc3QgLXogIiQoYmluX1BST0dSQU1TKSIgfHwgcm0gLWYgJChiaW5fUFJPR1JBTVMpCitzdHJhY2UkKEVYRUVYVCk6ICQoc3RyYWNlX09CSkVDVFMpICQoc3RyYWNlX0RFUEVOREVOQ0lFUykgCisJQHJtIC1mIHN0cmFjZSQoRVhFRVhUKQorCSQoTElOSykgJChzdHJhY2VfTERGTEFHUykgJChzdHJhY2VfT0JKRUNUUykgJChzdHJhY2VfTERBREQpICQoTElCUykKK2luc3RhbGwtYmluU0NSSVBUUzogJChiaW5fU0NSSVBUUykKKwlAJChOT1JNQUxfSU5TVEFMTCkKKwl0ZXN0IC16ICIkKGJpbmRpcikiIHx8ICQobWtkaXJfcCkgIiQoREVTVERJUikkKGJpbmRpcikiCisJQGxpc3Q9JyQoYmluX1NDUklQVFMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAorCSAgaWYgdGVzdCAtZiAkJGQkJHA7IHRoZW4gXAorCSAgICBmPWBlY2hvICIkJHAiIHwgc2VkICdzfF4uKi98fDskKHRyYW5zZm9ybSknYDsgXAorCSAgICBlY2hvICIgJChiaW5TQ1JJUFRfSU5TVEFMTCkgJyQkZCQkcCcgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKKwkgICAgJChiaW5TQ1JJUFRfSU5TVEFMTCkgIiQkZCQkcCIgIiQoREVTVERJUikkKGJpbmRpcikvJCRmIjsgXAorCSAgZWxzZSA6OyBmaTsgXAorCWRvbmUKKwordW5pbnN0YWxsLWJpblNDUklQVFM6CisJQCQoTk9STUFMX1VOSU5TVEFMTCkKKwlAbGlzdD0nJChiaW5fU0NSSVBUUyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKKwkgIGY9YGVjaG8gIiQkcCIgfCBzZWQgJ3N8Xi4qL3x8OyQodHJhbnNmb3JtKSdgOyBcCisJICBlY2hvICIgcm0gLWYgJyQoREVTVERJUikkKGJpbmRpcikvJCRmJyI7IFwKKwkgIHJtIC1mICIkKERFU1RESVIpJChiaW5kaXIpLyQkZiI7IFwKKwlkb25lCisKK21vc3RseWNsZWFuLWNvbXBpbGU6CisJLXJtIC1mICouJChPQkpFWFQpCisKK2Rpc3RjbGVhbi1jb21waWxlOgorCS1ybSAtZiAqLnRhYi5jCisKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9iam0uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2Rlc2MuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZpbGUuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2lvLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9pb2N0bC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvaXBjLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9tZW0uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL25ldC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcHJvYy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcHJvY2Vzcy5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvcmVzb3VyY2UuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3NpZ25hbC5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc29jay5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvc3RyYWNlLlBvQGFtX19xdW90ZUAKK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9zdHJlYW0uUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N5c2NhbGwuUG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3N5c3RlbS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVybS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGltZS5Qb0BhbV9fcXVvdGVACitAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdXRpbC5Qb0BhbV9fcXVvdGVACisKKy5jLm86CitAYW1fX2Zhc3RkZXBDQ19UUlVFQAlpZiAkKENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAiJChERVBESVIpLyQqLlRwbyIgLWMgLW8gJEAgJDw7IFwKK0BhbV9fZmFzdGRlcENDX1RSVUVACXRoZW4gbXYgLWYgIiQoREVQRElSKS8kKi5UcG8iICIkKERFUERJUikvJCouUG8iOyBlbHNlIHJtIC1mICIkKERFUERJUikvJCouVHBvIjsgZXhpdCAxOyBmaQorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgJDwKKworLmMub2JqOgorQGFtX19mYXN0ZGVwQ0NfVFJVRUAJaWYgJChDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgIiQoREVQRElSKS8kKi5UcG8iIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2A7IFwKK0BhbV9fZmFzdGRlcENDX1RSVUVACXRoZW4gbXYgLWYgIiQoREVQRElSKS8kKi5UcG8iICIkKERFUERJUikvJCouUG8iOyBlbHNlIHJtIC1mICIkKERFUERJUikvJCouVHBvIjsgZXhpdCAxOyBmaQorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAorQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ0NfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDQ0RFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAorQGFtX19mYXN0ZGVwQ0NfRkFMU0VACSQoQ09NUElMRSkgLWMgYCQoQ1lHUEFUSF9XKSAnJDwnYAordW5pbnN0YWxsLWluZm8tYW06CitpbnN0YWxsLW1hbjE6ICQobWFuMV9NQU5TKSAkKG1hbl9NQU5TKQorCUAkKE5PUk1BTF9JTlNUQUxMKQorCXRlc3QgLXogIiQobWFuMWRpcikiIHx8ICQobWtkaXJfcCkgIiQoREVTVERJUikkKG1hbjFkaXIpIgorCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3RfbWFuMV9NQU5TKSc7IFwKKwlsMj0nJChtYW5fTUFOUykgJChkaXN0X21hbl9NQU5TKSAkKG5vZGlzdF9tYW5fTUFOUyknOyBcCisJZm9yIGkgaW4gJCRsMjsgZG8gXAorCSAgY2FzZSAiJCRpIiBpbiBcCisJICAgICouMSopIGxpc3Q9IiQkbGlzdCAkJGkiIDs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICBpZiB0ZXN0IC1mICQoc3JjZGlyKS8kJGk7IHRoZW4gZmlsZT0kKHNyY2RpcikvJCRpOyBcCisJICBlbHNlIGZpbGU9JCRpOyBmaTsgXAorCSAgZXh0PWBlY2hvICQkaSB8IHNlZCAtZSAncy9eLipcXC4vLydgOyBcCisJICBjYXNlICIkJGV4dCIgaW4gXAorCSAgICAxKikgOzsgXAorCSAgICAqKSBleHQ9JzEnIDs7IFwKKwkgIGVzYWM7IFwKKwkgIGluc3Q9YGVjaG8gJCRpIHwgc2VkIC1lICdzL1xcLlswLTlhLXpdKiQkLy8nYDsgXAorCSAgaW5zdD1gZWNobyAkJGluc3QgfCBzZWQgLWUgJ3MvXi4qXC8vLydgOyBcCisJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAnJCh0cmFuc2Zvcm0pJ2AuJCRleHQ7IFwKKwkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScgJyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCisJICAkKElOU1RBTExfREFUQSkgIiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwKKwlkb25lCit1bmluc3RhbGwtbWFuMToKKwlAJChOT1JNQUxfVU5JTlNUQUxMKQorCUBsaXN0PSckKG1hbjFfTUFOUykgJChkaXN0X21hbjFfTUFOUykgJChub2Rpc3RfbWFuMV9NQU5TKSc7IFwKKwlsMj0nJChtYW5fTUFOUykgJChkaXN0X21hbl9NQU5TKSAkKG5vZGlzdF9tYW5fTUFOUyknOyBcCisJZm9yIGkgaW4gJCRsMjsgZG8gXAorCSAgY2FzZSAiJCRpIiBpbiBcCisJICAgICouMSopIGxpc3Q9IiQkbGlzdCAkJGkiIDs7IFwKKwkgIGVzYWM7IFwKKwlkb25lOyBcCisJZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICBleHQ9YGVjaG8gJCRpIHwgc2VkIC1lICdzL14uKlxcLi8vJ2A7IFwKKwkgIGNhc2UgIiQkZXh0IiBpbiBcCisJICAgIDEqKSA7OyBcCisJICAgICopIGV4dD0nMScgOzsgXAorCSAgZXNhYzsgXAorCSAgaW5zdD1gZWNobyAkJGkgfCBzZWQgLWUgJ3MvXFwuWzAtOWEtel0qJCQvLydgOyBcCisJICBpbnN0PWBlY2hvICQkaW5zdCB8IHNlZCAtZSAncy9eLipcLy8vJ2A7IFwKKwkgIGluc3Q9YGVjaG8gJCRpbnN0IHwgc2VkICckKHRyYW5zZm9ybSknYC4kJGV4dDsgXAorCSAgZWNobyAiIHJtIC1mICckKERFU1RESVIpJChtYW4xZGlyKS8kJGluc3QnIjsgXAorCSAgcm0gLWYgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCI7IFwKKwlkb25lCisKK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCisJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAorCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKKwkgIGRvbmUgfCBcCisJICAkKEFXSykgJyAgICB7IGZpbGVzWyQkMF0gPSAxOyB9IFwKKwkgICAgICAgRU5EIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9J2A7IFwKKwlta2lkIC1mSUQgJCR1bmlxdWUKK3RhZ3M6IFRBR1MKKworVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCisJCSQoVEFHU19GSUxFUykgJChMSVNQKQorCXRhZ3M9OyBcCisJaGVyZT1gcHdkYDsgXAorCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSBjb25maWcuaC5pbiAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCisJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCisJICBkb25lIHwgXAorCSAgJChBV0spICcgICAgeyBmaWxlc1skJDBdID0gMTsgfSBcCisJICAgICAgIEVORCB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfSdgOyBcCisJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkdGFncyQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKKwkgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKKwkgICAgJCR0YWdzICQkdW5pcXVlOyBcCisJZmkKK2N0YWdzOiBDVEFHUworQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChUQUdTX0RFUEVOREVOQ0lFUykgXAorCQkkKFRBR1NfRklMRVMpICQoTElTUCkKKwl0YWdzPTsgXAorCWhlcmU9YHB3ZGA7IFwKKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAorCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCisJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAorCSAgZG9uZSB8IFwKKwkgICQoQVdLKSAnICAgIHsgZmlsZXNbJCQwXSA9IDE7IH0gXAorCSAgICAgICBFTkQgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH0nYDsgXAorCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHRhZ3MkJHVuaXF1ZSIgXAorCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAorCSAgICAgJCR0YWdzICQkdW5pcXVlCisKK0dUQUdTOgorCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCisJICAmJiBjZCAkKHRvcF9zcmNkaXIpIFwKKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgJCRoZXJlCisKK2Rpc3RjbGVhbi10YWdzOgorCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCisKK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQorCUBjYXNlIGBzZWQgMTVxICQoc3JjZGlyKS9ORVdTYCBpbiBcCisJKiIkKFZFUlNJT04pIiopIDogOzsgXAorCSopIFwKKwkgIGVjaG8gIk5FV1Mgbm90IHVwZGF0ZWQ7IG5vdCByZWxlYXNpbmciIDE+JjI7IFwKKwkgIGV4aXQgMTs7IFwKKwllc2FjCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisJbWtkaXIgJChkaXN0ZGlyKQorCSQobWtkaXJfcCkgJChkaXN0ZGlyKS9kZWJpYW4gJChkaXN0ZGlyKS9mcmVlYnNkICQoZGlzdGRpcikvZnJlZWJzZC9pMzg2ICQoZGlzdGRpcikvbGludXggJChkaXN0ZGlyKS9saW51eC9hbHBoYSAkKGRpc3RkaXIpL2xpbnV4L2hwcGEgJChkaXN0ZGlyKS9saW51eC9pYTY0ICQoZGlzdGRpcikvbGludXgvbWlwcyAkKGRpc3RkaXIpL2xpbnV4L3Bvd2VycGMgJChkaXN0ZGlyKS9saW51eC9zMzkwICQoZGlzdGRpcikvbGludXgvczM5MHggJChkaXN0ZGlyKS9saW51eC9zaCAkKGRpc3RkaXIpL2xpbnV4L3NoNjQgJChkaXN0ZGlyKS9saW51eC9zcGFyYyAkKGRpc3RkaXIpL2xpbnV4L3NwYXJjNjQgJChkaXN0ZGlyKS9saW51eC94ODZfNjQgJChkaXN0ZGlyKS9zdW5vczQgJChkaXN0ZGlyKS9zdnI0CisJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7IFwKKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3N8LnwufGcnYDsgXAorCWxpc3Q9JyQoRElTVEZJTEVTKSc7IGZvciBmaWxlIGluICQkbGlzdDsgZG8gXAorCSAgY2FzZSAkJGZpbGUgaW4gXAorCSAgICAkKHNyY2RpcikvKikgZmlsZT1gZWNobyAiJCRmaWxlIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsgXAorCSAgICAkKHRvcF9zcmNkaXIpLyopIGZpbGU9YGVjaG8gIiQkZmlsZSIgfCBzZWQgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98ImA7OyBcCisJICBlc2FjOyBcCisJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCisJICBkaXI9YGVjaG8gIiQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCisJICBpZiB0ZXN0ICIkJGRpciIgIT0gIiQkZmlsZSIgJiYgdGVzdCAiJCRkaXIiICE9ICIuIjsgdGhlbiBcCisJICAgIGRpcj0iLyQkZGlyIjsgXAorCSAgICAkKG1rZGlyX3ApICIkKGRpc3RkaXIpJCRkaXIiOyBcCisJICBlbHNlIFwKKwkgICAgZGlyPScnOyBcCisJICBmaTsgXAorCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCisJICAgICAgY3AgLXBSICQoc3JjZGlyKS8kJGZpbGUgJChkaXN0ZGlyKSQkZGlyIHx8IGV4aXQgMTsgXAorCSAgICBmaTsgXAorCSAgICBjcCAtcFIgJCRkLyQkZmlsZSAkKGRpc3RkaXIpJCRkaXIgfHwgZXhpdCAxOyBcCisJICBlbHNlIFwKKwkgICAgdGVzdCAtZiAkKGRpc3RkaXIpLyQkZmlsZSBcCisJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgJChkaXN0ZGlyKS8kJGZpbGUgXAorCSAgICB8fCBleGl0IDE7IFwKKwkgIGZpOyBcCisJZG9uZQorCS1maW5kICQoZGlzdGRpcikgLXR5cGUgZCAhIC1wZXJtIC03NzcgLWV4ZWMgY2htb2QgYStyd3gge30gXDsgLW8gXAorCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtbGlua3MgMSAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAorCSAgISAtdHlwZSBkICEgLXBlcm0gLTQwMCAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAorCSAgISAtdHlwZSBkICEgLXBlcm0gLTQ0NCAtZXhlYyAkKFNIRUxMKSAkKGluc3RhbGxfc2gpIC1jIC1tIGErciB7fSB7fSBcOyBcCisJfHwgY2htb2QgLVIgYStyICQoZGlzdGRpcikKK2Rpc3QtZ3ppcDogZGlzdGRpcgorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpcikudGFyLmd6CisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCitkaXN0LWJ6aXAyOiBkaXN0ZGlyCisJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKKworZGlzdC10YXJaOiBkaXN0ZGlyCisJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGNvbXByZXNzIC1jID4kKGRpc3RkaXIpLnRhci5aCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3Qtc2hhcjogZGlzdGRpcgorCXNoYXIgJChkaXN0ZGlyKSB8IEdaSVA9JChHWklQX0VOVikgZ3ppcCAtYyA+JChkaXN0ZGlyKS5zaGFyLmd6CisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3QtemlwOiBkaXN0ZGlyCisJLXJtIC1mICQoZGlzdGRpcikuemlwCisJemlwIC1ycSAkKGRpc3RkaXIpLnppcCAkKGRpc3RkaXIpCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKK2Rpc3QgZGlzdC1hbGw6IGRpc3RkaXIKKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1jID4kKGRpc3RkaXIpLnRhci5negorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBiemlwMiAtOSAtYyA+JChkaXN0ZGlyKS50YXIuYnoyCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisKKyMgVGhpcyB0YXJnZXQgdW50YXJzIHRoZSBkaXN0IGZpbGUgYW5kIHRyaWVzIGEgVlBBVEggY29uZmlndXJhdGlvbi4gIFRoZW4KKyMgaXQgZ3VhcmFudGVlcyB0aGF0IHRoZSBkaXN0cmlidXRpb24gaXMgc2VsZi1jb250YWluZWQgYnkgbWFraW5nIGFub3RoZXIKKyMgdGFyZmlsZS4KK2Rpc3RjaGVjazogZGlzdAorCWNhc2UgJyQoRElTVF9BUkNISVZFUyknIGluIFwKKwkqLnRhci5neiopIFwKKwkgIEdaSVA9JChHWklQX0VOVikgZ3VuemlwIC1jICQoZGlzdGRpcikudGFyLmd6IHwgJChhbV9fdW50YXIpIDs7XAorCSoudGFyLmJ6MiopIFwKKwkgIGJ1bnppcDIgLWMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7XAorCSoudGFyLloqKSBcCisJICB1bmNvbXByZXNzIC1jICQoZGlzdGRpcikudGFyLlogfCAkKGFtX191bnRhcikgOztcCisJKi5zaGFyLmd6KikgXAorCSAgR1pJUD0kKEdaSVBfRU5WKSBndW56aXAgLWMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFyIDs7XAorCSouemlwKikgXAorCSAgdW56aXAgJChkaXN0ZGlyKS56aXAgOztcCisJZXNhYworCWNobW9kIC1SIGEtdyAkKGRpc3RkaXIpOyBjaG1vZCBhK3cgJChkaXN0ZGlyKQorCW1rZGlyICQoZGlzdGRpcikvX2J1aWxkCisJbWtkaXIgJChkaXN0ZGlyKS9faW5zdAorCWNobW9kIGEtdyAkKGRpc3RkaXIpCisJZGNfaW5zdGFsbF9iYXNlPWAkKGFtX19jZCkgJChkaXN0ZGlyKS9faW5zdCAmJiBwd2QgfCBzZWQgLWUgJ3MsXlteOlxcL106W1xcL10sLywnYCBcCisJICAmJiBkY19kZXN0ZGlyPSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKKwkgICYmIGNkICQoZGlzdGRpcikvX2J1aWxkIFwKKwkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKKwkgICAgJChESVNUQ0hFQ0tfQ09ORklHVVJFX0ZMQUdTKSBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkdmkgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY2hlY2sgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbCBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsY2hlY2sgXAorCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdW5pbnN0YWxsIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3R1bmluc3RhbGxjaGVja19kaXI9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCisJICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2sgXAorCSAgJiYgY2htb2QgLVIgYS13ICIkJGRjX2luc3RhbGxfYmFzZSIgXAorCSAgJiYgKHsgXAorCSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRjX2Rlc3RkaXIiKSBcCisJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgaW5zdGFsbCBcCisJICAgICAgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIERFU1RESVI9IiQkZGNfZGVzdGRpciIgdW5pbnN0YWxsIFwKKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCisJICAgICAgICAgICAgZGlzdHVuaW5zdGFsbGNoZWNrX2Rpcj0iJCRkY19kZXN0ZGlyIiBkaXN0dW5pbnN0YWxsY2hlY2s7IFwKKwkgICAgICB9IHx8IHsgcm0gLXJmICIkJGRjX2Rlc3RkaXIiOyBleGl0IDE7IH0pIFwKKwkgICYmIHJtIC1yZiAiJCRkY19kZXN0ZGlyIiBcCisJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaXN0IFwKKwkgICYmIHJtIC1yZiAkKERJU1RfQVJDSElWRVMpIFwKKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNrCisJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCisJQChlY2hvICIkKGRpc3RkaXIpIGFyY2hpdmVzIHJlYWR5IGZvciBkaXN0cmlidXRpb246ICI7IFwKKwkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKKwkgIHNlZCAtZSAnMXtoO3MvLi89L2c7cDt4O30nIC1lICckJHtwO3g7fScKK2Rpc3R1bmluc3RhbGxjaGVjazoKKwlAY2QgJChkaXN0dW5pbnN0YWxsY2hlY2tfZGlyKSBcCisJJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtbGUgMSBcCisJICAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBhZnRlciB1bmluc3RhbGw6IiA7IFwKKwkgICAgICAgIGlmIHRlc3QgLW4gIiQoREVTVERJUikiOyB0aGVuIFwKKwkgICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0KSI7IFwKKwkgICAgICAgIGZpIDsgXAorCSAgICAgICAgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSA7IFwKKwkgICAgICAgIGV4aXQgMTsgfSA+JjIKK2Rpc3RjbGVhbmNoZWNrOiBkaXN0Y2xlYW4KKwlAaWYgdGVzdCAnJChzcmNkaXIpJyA9IC4gOyB0aGVuIFwKKwkgIGVjaG8gIkVSUk9SOiBkaXN0Y2xlYW5jaGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxkIiA7IFwKKwkgIGV4aXQgMSA7IFwKKwlmaQorCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAgLWVxIDAgXAorCSAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBpbiBidWlsZCBkaXJlY3RvcnkgYWZ0ZXIgZGlzdGNsZWFuOiIgOyBcCisJICAgICAgICQoZGlzdGNsZWFuY2hlY2tfbGlzdGZpbGVzKSA7IFwKKwkgICAgICAgZXhpdCAxOyB9ID4mMgorY2hlY2stYW06IGFsbC1hbQorY2hlY2s6ICQoQlVJTFRfU09VUkNFUykKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjaGVjay1hbQorYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKSAkKFNDUklQVFMpICQoTUFOUykgJChIRUFERVJTKSBjb25maWcuaAoraW5zdGFsbGRpcnM6CisJZm9yIGRpciBpbiAiJChERVNURElSKSQoYmluZGlyKSIgIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtYW4xZGlyKSI7IGRvIFwKKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKG1rZGlyX3ApICIkJGRpciI7IFwKKwlkb25lCitpbnN0YWxsOiAkKEJVSUxUX1NPVVJDRVMpCisJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1hbQoraW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCit1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQorCitpbnN0YWxsLWFtOiBhbGwtYW0KKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQorCitpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQoraW5zdGFsbC1zdHJpcDoKKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKK21vc3RseWNsZWFuLWdlbmVyaWM6CisKK2NsZWFuLWdlbmVyaWM6CisKK2Rpc3RjbGVhbi1nZW5lcmljOgorCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQorCittYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6CisJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKwktdGVzdCAteiAiJChCVUlMVF9TT1VSQ0VTKSIgfHwgcm0gLWYgJChCVUlMVF9TT1VSQ0VTKQorY2xlYW46IGNsZWFuLWFtCisKK2NsZWFuLWFtOiBjbGVhbi1iaW5QUk9HUkFNUyBjbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWFtCisKK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCisJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCisJLXJtIC1yZiAuLyQoREVQRElSKQorCS1ybSAtZiBNYWtlZmlsZQorZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCisJZGlzdGNsZWFuLWhkciBkaXN0Y2xlYW4tdGFncworCitkdmk6IGR2aS1hbQorCitkdmktYW06CisKK2h0bWw6IGh0bWwtYW0KKworaW5mbzogaW5mby1hbQorCitpbmZvLWFtOgorCitpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbWFuCisKK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1iaW5QUk9HUkFNUyBpbnN0YWxsLWJpblNDUklQVFMKKworaW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KKworaW5zdGFsbC1tYW46IGluc3RhbGwtbWFuMQorCitpbnN0YWxsY2hlY2stYW06CisKK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKKwktcm0gLXJmICQodG9wX3NyY2RpcikvYXV0b200dGUuY2FjaGUKKwktcm0gLXJmIC4vJChERVBESVIpCisJLXJtIC1mIE1ha2VmaWxlCittYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCisKK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQorCittb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljCisKK3BkZjogcGRmLWFtCisKK3BkZi1hbToKKworcHM6IHBzLWFtCisKK3BzLWFtOgorCit1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1iaW5QUk9HUkFNUyB1bmluc3RhbGwtYmluU0NSSVBUUyBcCisJdW5pbnN0YWxsLWluZm8tYW0gdW5pbnN0YWxsLW1hbgorCit1bmluc3RhbGwtbWFuOiB1bmluc3RhbGwtbWFuMQorCisuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gYW0tLXJlZnJlc2ggY2hlY2sgY2hlY2stYW0gY2xlYW4gXAorCWNsZWFuLWJpblBST0dSQU1TIGNsZWFuLWdlbmVyaWMgY3RhZ3MgZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKKwlkaXN0LWd6aXAgZGlzdC1zaGFyIGRpc3QtdGFyWiBkaXN0LXppcCBkaXN0Y2hlY2sgZGlzdGNsZWFuIFwKKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRyIFwKKwlkaXN0Y2xlYW4tdGFncyBkaXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRpc3R1bmluc3RhbGxjaGVjayBkdmkgXAorCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCisJaW5zdGFsbC1iaW5QUk9HUkFNUyBpbnN0YWxsLWJpblNDUklQVFMgaW5zdGFsbC1kYXRhIFwKKwlpbnN0YWxsLWRhdGEtYW0gaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWluZm8gXAorCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgaW5zdGFsbC1zdHJpcCBcCisJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBtYWludGFpbmVyLWNsZWFuIFwKKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gbW9zdGx5Y2xlYW4tY29tcGlsZSBcCisJbW9zdGx5Y2xlYW4tZ2VuZXJpYyBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIFwKKwl1bmluc3RhbGwtYW0gdW5pbnN0YWxsLWJpblBST0dSQU1TIHVuaW5zdGFsbC1iaW5TQ1JJUFRTIFwKKwl1bmluc3RhbGwtaW5mby1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCisKKworQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQCQoc3JjZGlyKS8kKGlvY3RsZW50X2gpOiBpb2N0bHNvcnQKK0BMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUAJJCg8RCkvJCg8RikgPiAkQAorQExJTlVYX1RSVUVAQE1BSU5UQUlORVJfTU9ERV9UUlVFQGlvY3Rsc29ydDogJChzcmNkaXIpL2xpbnV4L2lvY3Rsc29ydC5jIGlvY3Rscy5oIGlvY3RsZGVmcy5oCitATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVACSQoZmlsdGVyLW91dCAtSSUsJChMSU5LLmMpKSAtSS4gLUkkKElPQ1RMRElSKSAkKGZpbHRlciAtSSUsJChMSU5LLmMpKSBcCitATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVACSAgLW8gJEAgJDwKK0BMSU5VWF9UUlVFQEBNQUlOVEFJTkVSX01PREVfVFJVRUBpb2N0bHMuaDogJChzcmNkaXIpL2xpbnV4L2lvY3RsZW50LnNoCitATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVACSQoU0hFTEwpICQ8ICQoSU9DVExESVIpICQoSU9DVExBU00pCitATElOVVhfVFJVRUBATUFJTlRBSU5FUl9NT0RFX1RSVUVAaW9jdGxkZWZzLmg6IGlvY3Rscy5oIDsKKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCisjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KKy5OT0VYUE9SVDoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NDE0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9ORVdTCkBAIC0wLDAgKzEsMjAxIEBACitDaGFuZ2VzIGluIDQuNS4xMgorPT09PT09PT09PT09PT0KKyogQnVnIGZpeGVzLgorKiBCZXR0ZXIgeDg2LTY0IHN1cHBvcnQgZm9yIElBMzIgcHJvY2Vzc2VzLgorKiBVcGRhdGUgUG93ZXJQQyBzeXN0ZW0gY2FsbHMuCisqIEJldHRlciBwcmludGluZyBmb3IgTGludXggYWlvIHN5c3RlbSBjYWxscy4KKworQ2hhbmdlcyBpbiA0LjUuMTEKKz09PT09PT09PT09PT09CisqIFF1aWNrIGZpeCByZWxlYXNlIGZvciBidWlsZCBpc3N1ZXMuCisqIE9uZSBmaXggZm9yIExpbnV4L0FSTSBzeXN0ZW0gY2FsbCB0YWJsZS4KKworQ2hhbmdlcyBpbiA0LjUuMTAKKz09PT09PT09PT09PT09CisqIEJ1ZyBmaXhlcy4KKyogUHJpbnQgZmF1bHQgYWRkcmVzcyBmb3IgU0lHU0VHVi9TSUdCVVMgc2lnbmFscyB3aGVuIGF2YWlsYWJsZS4KKworQ2hhbmdlcyBpbiA0LjUuOQorPT09PT09PT09PT09PT0KKyogQnVnIGZpeGVzLgorKiBJbXByb3ZlIHNvY2tldCBpb2N0bCBwcmludGluZy4KKyogVXBkYXRlIExpbnV4L0lBNjQgc3lzY2FsbCBsaXN0LgorKiBGaXggTGludXgveDg2LTY0IHN5c2NhbGwgYXJndW1lbnQgZXh0cmFjdGlvbiBmb3IgMzItYml0IHByb2Nlc3Nlcy4KKyogSW1wcm92ZSBtb3VudCBmbGFncyBwcmludGluZy4KKyogU3VwcG9ydCBzeW1ib2xpYyBwcmludGluZyBvZiB4ODZfNjQgYXJjaF9wcmN0bCBwYXJhbWV0ZXJzLgorCitDaGFuZ2VzIGluIDQuNS44Cis9PT09PT09PT09PT09PQorKiBCdWcgZml4ZXMuCisqIFVwZGF0ZSBzeXNjYWxsIHRhYmxlcyBmb3IgQWxwaGEsIEFSTSwgSFBQQS4KKyogU3VwcG9ydCBuZXcgTGludXggc3lzY2FsbHMgbWJpbmQsIHNldF9tZW1wb2xpY3ksIGdldF9tZW1wb2xpY3ksIHdhaXRpZC4KKyogU3VwcG9ydCBMaW51eCBzeXNjYWxscyBmYWR2aXNlNjQsIGZhZHZpc2U2NF82NCwgYW5kIGVwb2xsXyouCisqIEltcHJvdmUgaW9jdGwgY29tbWFuZCBuYW1lIG1hdGNoaW5nLgorKiBQcmludCBSVENfKiBpb2N0bCBzdHJ1Y3R1cmUgY29udGVudHMuCisqIFN1cHBvcnQgbmV3ZXIgUkxJTUlUXyogdmFsdWVzLgorKiBQcmludCBzdHJ1Y3QgY21zZ2hkciBkZXRhaWxzIGluIHNlbmRtc2cuCisKK0NoYW5nZXMgaW4gNC41LjcKKz09PT09PT09PT09PT09CisqIEJ1ZyBmaXhlcy4KKyogUHJpbnQgYXR0cmlidXRlIHZhbHVlcyBpbiAqeGF0dHIgc3lzdGVtIGNhbGxzIG9uIExpbnV4LgorKiBJbmNsdWRlIHByZWFkIGFuZCBwd3JpdGUgY2FsbHMgaW4gLWUgcmVhZCBhbmQgLWUgd3JpdGUgdHJhY2luZy4KKyogVXBkYXRlIFNPXyogYW5kIElQXyogdmFsdWUgbGlzdHMgYW5kIGFkZCBJUFY2XyogdmFsdWVzIGZvciBzb2NrZXQgb3B0aW9ucy4KKyogUHJpbnQgY2xvY2tfdCB2YWx1ZXMgc3ltYm9saWNhbGx5IGluIExpbnV4IGNsb2NrXyogc3lzdGVtIGNhbGxzLgorCitDaGFuZ2VzIGluIDQuNS42Cis9PT09PT09PT09PT09PQorKiBCdWcgZml4ZXMsIExpbnV4IGlvY3RsIHVwZGF0ZXMuCisqIERhdmlkIE1pbGxlciBjb250cmlidXRlZCBzdXBwb3J0IGZvciBMaW51eC9TUEFSQzY0LgorCitDaGFuZ2VzIGluIDQuNS41Cis9PT09PT09PT09PT09PQorKiBKdXN0IGJ1ZyBmaXhlcy4KKworQ2hhbmdlcyBpbiA0LjUuNAorPT09PT09PT09PT09PT0KKyogVXBkYXRlIExpbnV4IGlvY3RsIGxpc3RzLgorKiBVcGRhdGUgUEZfKiBhbmQgQUZfKiB2YWx1ZSBsaXN0cy4KKyogVGhlIDQuNS4zIC1wIGJlaGF2aW9yIGZvciBOUFRMIHRocmVhZHMgYXBwbGllcyBvbmx5IHVuZGVyIC1mLCBhbmQgZ290IGZpeGVkLgorCitDaGFuZ2VzIGluIDQuNS4zCis9PT09PT09PT09PT09PQorKiBCdWcgZml4ZXMuCisqIE9uIExpbnV4IHVzaW5nIE5QVEwgdGhyZWFkcywgLXAgd2lsbCBub3cgYXR0YWNoIHRvIGFsbCB0aHJlYWRzIGluIGEgcHJvY2Vzcy4KKyogSGFuZGxlIG5ldyBtcV8qIHN5c3RlbSBjYWxscyBpbiBMaW51eCAyLjYuNiBhbmQgbGF0ZXIuCisKK0NoYW5nZXMgaW4gNC41LjIKKz09PT09PT09PT09PT09CisqIEJ1ZyBmaXhlcy4KKyogUmVwb3J0IHNvbWUgbmV3IFZNXyogYml0IHZhbHVlcyBvbiBMaW51eC4KKyogQmV0dGVyIG91dHB1dCBmb3IgTGludXggc2NoZWRfKiBzeXN0ZW0gY2FsbHMuCisKK0NoYW5nZXMgaW4gNC41LjEKKz09PT09PT09PT09PT09CisqIEJ1ZyBmaXhlcy4KKyogRGlzcGxheSBtdWx0aXBsZSBpb2N0bCBuYW1lIG1hdGNoZXMgb24gTGludXguCisKK0NoYW5nZXMgaW4gNC41Cis9PT09PT09PT09PT09PQorKiBOZXcgcG9ydCB0byBBTUQncyB4ODYtNjQgYXJjaGl0ZWN0dXJlLiBPbmUgc3RyYWNlIGJpbmFyeSBjYW4KKyAgaGFuZGxlIGJvdGggbmV3IHg4Ni02NCBhbmQgb2xkIGkzODYgcHJvY2Vzc2VzLgorKiBGaXhlZCBzdXBwb3J0IGZvciBMRlM2NCBjYWxscy4KKyogTmV3IHN3aXRjaCAtRSB0byBhZGQvcmVtb3ZlIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGNvbW1hbmQuCisqIE1lcmdlZCBzMzkwL3MzOTB4IHBvcnQuCisqIFRyYWNlIGFuIHVuYm91bmRlZCBudW1iZXIgb2YgcHJvY2Vzc2VzLgorKiBIYW5kbGUgbnVtZXJvdXMgbmV3IHN5c3RlbSBjYWxscyBpbiBMaW51eCAyLjUsIGFuZCBuZXcgdGhyZWFkcyBzZW1hbnRpY3MuCisqIEZpeGVkIGJ1Z3Mgd2l0aCBhdHRhY2gvZGV0YWNoIGxlYXZpbmcgdGhpbmdzIHN0b3BwZWQuCisqIEZpeGVkIHRyYWNlZCBwcm9jZXNzIHNlZWluZyBFQ0hJTEQgZGVzcGl0ZSBsaXZlLCB0cmFjZWQgY2hpbGRyZW4KKyAgaW4gd2FpdHBpZCBjYWxscyB3aXRoIFdOT0hBTkcuCisqIFN0dWFydCBNZW5lZnkgY29udHJpYnV0ZWQgYSBwb3J0IHRvIExpbnV4L1NILgorKiBTdGVwaGVuIFRob21hcyBjb250cmlidXRlZCBhIHBvcnQgdG8gTGludXgvU0g2NC4KKyogTWFueSBvdGhlciBidWcgZml4ZXMuCisKK0NoYW5nZXMgaW4gNC40Cis9PT09PT09PT09PT09PQorKiBGaXggTGludXgvaWE2NCBzdXBwb3J0LCBsb29rcyBsaWtlIHNvbWVvbmUgcmVuYW1lZCBhIGZldyB0aGluZ3Mgb24gdXMKKyogRml4IHRoZSBpb2N0bCBzZXR1cCBmb3IgTGludXgsIHR1cm5lZCBvdXQgaXQgZGlkIG5vdCByZWFsbHkgd29yay4KKyAgSW1wcm92ZSB0aGUgaW9jdGwgZXh0cmFjdGVyIGFzIHdlbGwgc28gd2UgZGVjb2RlIHNvbWUgbW9yZSBvbmVzLgorCitDaGFuZ2VzIGluIDQuMy4xCis9PT09PT09PT09PT09PT09CisqIGNvbXBpbGUgZml4ZXMgZm9yIExpbnV4L21pcHMKKworQ2hhbmdlcyBpbiA0LjMKKz09PT09PT09PT09PT09CisqIExpbnV4IGlhNjQgYW5kIGhwcGEgcG9ydHMgYWRkZWQKKyogVGhlIHVzdWFsIExpbnV4IHN5c2NhbGwgdXBkYXRlcyAoaW5jbHVkZXMgMzJiaXQgdWlkL2dpZCBzdXBwb3J0KSwKKyogTGludXggaW9jdGwgbGlzdCB1cGRhdGVkCisqIFN1cHBvcnQgSVB2NiBzY29wZSBpZHMKKyogRnJlZUJTRC9pMzg2IHBvcnQgYWRkZWQKKyogVW5peFdhcmUgYW5kIFNvbGFyaXMgdXBkYXRlcworKiBCZXR0ZXIgc3VwcG9ydCBmb3IgdHJhY2luZyBtdWx0aXRocmVhZGVkIHByb2Nlc3NlcyBpbiBMaW51eAorCitDaGFuZ2VzIGluIDQuMgorPT09PT09PT09PT09PT0KKyogQ29tcGlsZXMgb24gZ2xpYmMyLjAgc3lzdGVtcyBhZ2FpbgorKiBMaW51eC9TMzkwIHBvcnQgYWRkZWQKKyogVGhlIHVzdWFsIExpbnV4IHN5c2NhbGwgdXBkYXRlcworKiB3ZSBjYW4gZm9sbG93IGZvcmsgb24gYXJtIG5vdworCitDaGFuZ2VzIGluIDQuMQorPT09PT09PT09PT09PT09PQorKiBMaW51eC9NSVBTIHBvcnQgYWRkZWQKKyogTG90cyBvZiBMaW51eCB1cGRhdGVzIGFnYWluCisqIEltcHJvdmVkIElQdjYgc3VwcG9ydAorKiBBZGQgc3RyYWNlLWdyYXBoCisKK0NoYW5nZXMgaW4gNC4wLjEKKz09PT09PT09PT09PT09PT0KKyogTWlub3IgYnVnZml4ZXMKKyogQ29tcGlsZXMgb24gZ2xpYmMyLjAgc3lzdGVtcyBhZ2FpbgorCitDaGFuZ2VzIGluIDQuMAorPT09PT09PT09PT09PT0KKyogR2V0IHN0YXQgc3RydWN0dXJlIHByb3Blcmx5IG9uIExpbnV4IDY0Yml0IGFyY2hzCisqIFBlcnNvbmFsaXRpZXMgd29yayBhZ2FpbgorKiBDb21waWxlIGNvcnJlY3RseSBvbiBTdW5PUyBhZ2FpbgorKiBJUklYNjQgdXBkYXRlcworKiBTb2xhcmlzIHVwZGF0ZXMKKworQ2hhbmdlcyBpbiAzLjk5LjEKKz09PT09PT09PT09PT09PT09CisqIExpbnV4ICh1bHRyYSlzcGFyYyBmaXhlcworKiBMaW51eCBhbHBoYSBmaXhlcworKiBNaW5vciBjbGVhbnVwcworCitDaGFuZ2VzIGluIDMuOTkKKz09PT09PT09PT09PT09PQorKiBOZXcgbWFpbnRhaW5lcgorKiBhZGQgc3VwcG9ydCBmb3IgbW9yZSBMaW51eCBhcmNoaXRlY3R1cmVzIChwb3dlcnBjLCBzcGFyYywgYXJtKQorKiBzdXBwb3J0IGxvdHMgbW9yZSBMaW51eCBzeXNjYWxscworKiBmaXggc2lnbmFsIGhhbmRsaW5nCisqIGFkZCBJUFggYW5kIElQSVAgc3VwcG9ydAorKiBjaGVjayBzdHJheSBzeXNjYWxsIGFmdGVyIGV4ZWN2CisqIGZpeCBoYW5naW5nIGNoaWxkcmVuCisKK0NoYW5nZXMgaW4gdmVyc2lvbiAzLjEKKz09PT09PT09PT09PT09PT09PT09PT0KKworKiBJcml4NSBpcyBzdXBwb3J0ZWQKKyogTGludXggNjhrIGlzIHN1cHBvcnRlZAorKiBMaW51eCBhbHBoYSBpcyBzdXBwb3J0ZWQKKyogY29uZmlndXJlIGlzIHVwZ3JhZGVkIHRvIGF1dG9jb25mIDIueAorKiB1c2luZyAtZiBpbiBjb21iaW5hdGlvbiB3aXRoIC1lIG5vdyB3b3JrcyBjb3JyZWN0bHkKKyogb3V0cHV0IGNhbiBiZSBwaXBlZCB0byBhIHByb2dyYW0KKyogdHJhY2luZyBzZXR1aWQgcHJvZ3JhbXMgd29ya3MgYmV0dGVyCisqIGl0IGlzIG5vdyByZWFzb25hYmxlIHRvIGluc3RhbGwgc3RyYWNlIHNldHVpZCB0byByb290IGluIHNvbWUgY2lyY3Vtc3RhbmNlcworKiBuZXcgdXNlZnVsIHRyYWNpbmcgbmFtZXMgbGlrZSBmaWxlIGFuZCBwcm9jZXNzIHRvIHRyYWNlIHdob2xlCisgIGNsYXNzZXMgb2Ygc3lzdGVtIGNhbGxzLCBlLmcuIC1lZmlsZSB0cmFjZXMgYWxsIHN5c3RlbSBjYWxscyB0aGF0CisgIHRha2UgYSBmaWxlIG5hbWUgYXMgYW4gYXJndW1lbnQKKyogSVBDIGNhbGxzIG9uIFN1bk9TIDQuMS54IGFyZSBkZWNvZGVkCisqIExpbnV4IHByb2dyYW0gbWVtb3J5IGlzIHJlbGlhYmx5IGRlcmVmZXJlbmNlZAorKiBMaW51eCBkZWNvZGVzIGF0IGxlYXN0IHRoZSBuYW1lIG9mIGFsbCBzeXNjYWxscyBhcyBvZiBwcmUyLjAuNAorKiB2YXJpb3VzIGNvc21ldGljIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcworCitDaGFuZ2VzIGZyb20gdmVyc2lvbnMgMi54IHRvIHZlcnNpb24gMy4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogZmlsZW5hbWUgYXJndW1lbnRzIGFyZSBuZWl0aGVyIGFiYnJldmlhdGVkIG5vciBzdHJpbmdpZmllZAorKiBzdHJpbmcgYXJndW1lbnRzIGFyZSBub3cgdHJ1ZSBDIHN0cmluZ3MgdXNpbmcgb2N0YWwgaW5zdGVhZCBvZiBoZXggYnkgZGVmYXVsdAorKiBwcmVwcm9jZXNzb3IgY29uc3RhbnRzIGFyZSBuZXZlciBzaG9ydGVuZWQgKGUuZy4gd2FzIFJET05MWSA9PiBub3cgT19SRE9OTFkpCisqIGJ5IGRlZmF1bHQgdGhlIG91dHB1dCBmb3IgbXVsdGlwbGUgcHJvY2Vzc2VzIG5vdyBnb2VzIGludG8gb25lIGZpbGUKKyogYWxsIHN0cnVjdHVyZXMsIHZlY3RvcnMsIGJpdHNldHMsIGV0Yy4gdXNlIGNvbnNpc3RlbnQgb3V0cHV0IGZvcm1hdHMKKyogdGhlIC1jIG9wdGlvbiBub3cgbWVhbnMgY291bnQgY2FsbHMsIC1pIGRvZXMgd2hhdCB0aGUgb2xkIC1jIHVzZWQgdG8gZG8KKworTmV3IEZlYXR1cmVzIGluIHZlcnNpb24gMy4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBub24tYXNjaWkgc3RyaW5ncyBjYW4gYmUgb3B0aW9uYWxseSBwcmludGVkIGVudGlyZWx5IGluIGhleAorKiB0aGUgb3V0cHV0IGZvcm1hdCBpcyByZWFkYWJsZSB3aGVuIG11dGlwbGUgcHJvY2Vzc2VzIGFyZSBnZW5lcmF0aW5nIG91dHB1dAorKiBleGl0IHZhbHVlcyBhcmUgcHJpbnRlZCBpbiBhbiBhbGlnbm1lbnQgY29sdW1uCisqIGlzIGlzIHBvc3NpYmxlIHRvIHN1cHByZXNzIG1lc3NhZ2VzIGFib3V0IGF0dGFjaGluZyBhbmQgZGV0YWNoaW5nCisqIHZhcmlvdXMgdHJhY2luZyBmZWF0dXJlcyBjYW4gYmUgZW5hYmxlZCBvbiBhIHBlciBzeXNjYWxsL3NpZ25hbC9kZXNjIGJhc2lzCisqIHNlbGVjdGl2ZSB0cmFjaW5nIG9mIHN5c2NhbGxzCisqIHNlbGVjdGl2ZSBwcmludGluZyBvZiBzeXNjYWxsIHN0cnVjdHVyZXMKKyogc2VsZWN0aXZlIGFiYnJldmlhdGlvbiBvZiBsb25nIHN0cnVjdHVyZXMgb24gYSBwZXIgc3lzY2FsbCBiYXNpcworKiBzZWxlY3RpdmUgcHJpbnRpbmcgb2YgcmF3IHN5c2NhbGwgYXJndW1lbnRzIGFuZCByZXN1bHRzCisqIHNlbGVjdGl2ZSB0cmFjaW5nIG9mIHNpZ25hbHMKKyogc2VsZWN0aXZlIGR1bXBpbmcgb2YgYWxsIEkvTyByZWFkIGZyb20gZmlsZSBkZXNjcmlwdG9ycworKiBzZWxlY3RpdmUgZHVtcGluZyBvZiBhbGwgSS9PIHdyaXR0ZW4gdG8gZmlsZSBkZXNjcmlwdG9ycworKiBvcHRpb25hbCBjb3VudGluZyBvZiB0aW1lLCBjYWxscywgYW5kIGVycm9ycyBmb3IgZWFjaCBzeXNjYWxsCmRpZmYgLS1naXQgYS9OT1RJQ0UgYi9OT1RJQ0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc2YmFjNwotLS0gL2Rldi9udWxsCisrKyBiL05PVElDRQpAQCAtMCwwICsxLDMxIEBACitDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorQ29weXJpZ2h0IChjKSAxOTkzIFVscmljaCBQZWdlbG93IDxwZWdlbG93QG1vb3JlYS51bmktbXVlbnN0ZXIuZGU+CitDb3B5cmlnaHQgKGMpIDE5OTUsIDE5OTYgTWljaGFlbCBFbGl6YWJldGggQ2hhc3RhaW4gPG1lY0BkdXJhY2VmLnNob3V0Lm5ldD4KK0NvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorQ29weXJpZ2h0IChDKSAxOTk4LTIwMDEgV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGVlcGhhY2ttb2RlLm9yZz4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCithcmUgbWV0OgorMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKK0lNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKK09GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCitJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCitJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKK05PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKK0RBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCitUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskSWQ6IENPUFlSSUdIVCx2IDEuMyAyMDAyLzAzLzMxIDE4OjQzOjAwIHdpY2hlcnQgRXhwICQKZGlmZiAtLWdpdCBhL1BPUlRJTkcgYi9QT1JUSU5HCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZjRjZTQKLS0tIC9kZXYvbnVsbAorKysgYi9QT1JUSU5HCkBAIC0wLDAgKzEsNzAgQEAKK0kgYW0gZnJlcXVlbnRseSBhc2tlZCB0byBwb3J0IHN0cmFjZSB0byBhIGdpdmVuIHBsYXRmb3JtLiAgTGVzcworZnJlcXVlbnRseSBJIGFtIGFza2VkIGhvdyBvbmUgd291bGQgZ28gYWJvdXQgcG9ydGluZyBzdHJhY2UgdG8gYSBnaXZlbgorcGxhdGZvcm0uIDotKSBTaW5jZSBJIGhhdmUgcG9ydGVkIHN0cmFjZSB0byBhIGZldyBwbGF0Zm9ybXMgYWxyZWFkeSBJCitoYXZlIHNvbWUgYWR2aWNlIHRvIHRoZSB3b3VsZC1iZSBzdHJhY2UgcG9ydGVyLgorCitUaGUgbnVtYmVyIG9uZSBxdWVzdGlvbiBpcyBgYERvZXMgdGhlIG5hdGl2ZSBvcGVyYXRpbmcgc3VwcG9ydCBhCitjb25jZXB0IHdoaWNoIGVuYWJsZXMgZXZlbiB0aGUgbWVyZSBwb3NzaWJpbGl0eSBvZiB0cmFjaW5nPycnLiAgU28gZmFyCitJIGhhdmUgc2VlbiB0d28gbWVjaGFuaXNtcyB3aGljaCBzdXBwb3J0IHN5c3RlbSBjYWxsIHRyYWNpbmcuICBUaGV5CithcmUgdGhlIFN1bk9TIG9yaWdpbmF0ZWQgZmVhdHVyZSBvZiB0aGUgUFRSQUNFX1NZU0NBTEwgYXJndW1lbnQgdG8gdGhlCitwdHJhY2Ugc3lzdGVtIGNhbGwgYW5kIHRoZSBQSU9DU0VOVFJZL1BJT0NTRVhJVCBpb2N0bCBmb3IgdGhlIC9wcm9jCitmaWxlc3lzdGVtIHVuZGVyIFN5c3RlbSBWIHJlbGVhc2UgNCBzdHlsZSBVbml4IGRlcml2ZWQgc3lzdGVtcy4gIFRoZXJlCittYXkgYmUgb3RoZXJzIChzdXJlbHkgYSBiZXR0ZXIgb25lIGNvdWxkIGJlIGRldmlzZWQgOi0pIGJ1dCBpbm5vdmF0aW9uCitpcyBhIHJhcmUgY29tbW9kaXR5IHNvIHVubGVzcyBvbmUgb2YgdGhlc2UgaXMgc3VwcG9ydGVkIHlvdSBtYXkgYmUKK1NPTC4KKworVGhlcmVmb3JlIHRoZSBmaXJzdCBzdGVwIGlzIHRvIHRyeSBgbWFuIDIgcHRyYWNlJyBhbmQgYG1hbiA0IHByb2MnIHRvCitzZWUgaWYgdGhlcmUgaXMgZXZlbiBhIGdsaW1tZXIgb2YgaG9wZS4gIFdpdGhvdXQgYXNzaXN0YW5jZSBmcm9tIHRoZQorb3BlcmF0aW5nIHN5c3RlbSwgc3lzdGVtIGNhbGwgdHJhY2luZyBpcyBhIGxvc3QgY2F1c2UuICBJZiB0aGVyZSBpcyBhCituYXRpdmUgc3lzdGVtIGNhbGwgdHJhY2luZyBwcm9ncmFtIChob3dldmVyIHBhdGhldGljIGl0IG1pZ2h0IGJlIDotKSwKK3lvdSBtYXkgYmUgYWJsZSB0byB1c2UgaXQgdG8gdHJhY2UgaXRzZWxmIHRvIGRldGVybWluZSB3aGF0IG1lY2hhbmlzbQoraXQgaXMgdXNpbmcgZm9yIHRyYWNpbmcgdGhlIHN5c3RlbSBjYWxscyBvZiBhbm90aGVyIHByb2Nlc3MuICBJZiB0aGUKK2ludGVyZmFjZSBpcyBkb2N1bWVudGVkIHlvdSBzaG91bGQgYmUgYSBoYXBweSBjYW1wZXIuICBPdGhlcndpc2UsCit1bmxlc3MgeW91IGNhbiB0b2xlcmF0ZSB0aGUgdGhvdWdodCBvZiBtYW55IHRoYW5rbGVzcyBob3Vycworc2luZ2xlLXN0ZXBwaW5nIGluIGEgZGVidWdnZXIgd2l0aCBsaXR0bGUgb3Igbm90aGluZyB0byBzaG93IGZvciBpdCwKK3lvdSBzaG91bGQgY29uc2lkZXIgb3RoZXIgdGFza3MgdG8gZGlzdHJhY3QgeW91IGZyb20geW91ciBmcmllbmRzLAorZmFtaWx5LCBlZHVjYXRpb24sIGpvYiwgc3BvdXNlIGFuZC9vciBzaWduaWZpY2FudCBvdGhlci4KKworSWYgeW91IGhhdmUgYXJyaXZlZCBoZXJlLCB5b3VyIE9TIHNob3VsZCBoYXZlIHB0cmFjZSBvciBwcm9jIG9yIHlvdQorc2hvdWxkIGhhdmUgYSBoaWdoIHRvbGVyYW5jZSBmb3IgcGFpbi4gIFRoZW4gYWdhaW4sIGN1cmlvdXMgYnV0CitkZXRhY2hlZCByZWFkZXJzIGFyZSBpbnZpdGVkIHRvIGNvbnRpbnVlIHdpdGggbGl0dGxlIHRvIHJpc2sgYnV0Citib3JlZG9tLiAgSWYgdGhlIG1lY2hhbmlzbSBpcyBuZWl0aGVyIHB0cmFjZSBub3IgcHJvYyB0aGVuIGV4YW1pbmUgaG93CitpdCBpcyBpbnRlbmRlZCB0byB3b3JrIGFuZCBzZWUgaG93IHdlbGwgaXQgZml0cyB3aXRoIHdoYXQgc3RyYWNlCithbHJlYWR5IGRvZXMuICBJZiBpdCBmaXRzLCBmaW5lLCBhZGQgYSBmZXcgbW9yZSBpZmRlZnMuICBJZiB0aGVyZSBpcyBhCitncm9zcyBtaXNtYXRjaCwgd3JpdGUgYSB3aG9sZSBuZXcgZXZlbnQgbG9vcC4KKworQXQgdGhpcyBwb2ludCB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aHJlZSB0aGluZ3M6IGhvdyBpcwordGhlIHNwZWNpZmljIHN5c3RlbSBjYWxsIGNvbW11bmljYXRlZCwgaG93IGFyZSBzeXN0ZW0gY2FsbCBhcmd1bWVudHMKK2hhbmRsZWQsIGFuZCBob3cgaXMgZXJybm8gaGFuZGxlZC4gIFRoZXNlIHRoaW5ncyBjYW4gdXN1YWxseSBiZQorcmVzb2x2ZWQgaW4gYSBkYXkgb3IgdHdvIHVzaW5nIGEgZGVjZW50IGFzc2VtYmx5IGxldmVsIGRlYnVnZ2VyIGFuZAorc29tZSBlZHVjYXRlZCBndWVzc3dvcmsuICBGb3IgZXhhbXBsZSwgc2V0IGEgYnJlYWtwb2ludCBvbiBgcmVhZCcuCitUaGVuIGRpc2Fzc2VtYmxlIHRoZSBjb2RlIGFuZCBzZWUgd2hlcmUgdGhlIGFyZ3VtZW50cyBnby4gIERvIHRoZXkgZ28KK29uIHRoZSBzdGFjaz8gIERvIHRoZXkgZ28gaW50byByZWdpc3RlcnM/ICBTb21lIGNvbWJpbmF0aW9uIG9mIHRoZQordHdvPyAgRmluZCB0aGUgcG9pbnQgd2hlcmUgdGhlIHRyYW5zaXRpb24gZnJvbSB1c2VyIG1vZGUgdG8ga2VybmVsCittb2RlIGlzIG1hZGUuICBDYW4geW91IGlkZW50aWZ5IHRoZSBhcmd1bWVudHMgYXQgdGhpcyBwb2ludD8gIFdoZW4gdGhlCitjYWxsIHJldHVybnMgd2hlcmUgZG9lcyBlcnJubyBnbz8gIEludG8gYSBzcGVjaWZpYyByZWdpc3Rlcj8gIEludG8gYQorZ2xvYmFsIHZhcmlhYmxlPworCitOZXh0IHlvdSBuZWVkIHRvIGRldGVybWluZSBob3cgdG8gZGVjb2RlIG51bWVyaWMgc3lzdGVtIGNhbGwgbnVtYmVycworaW50byBzeXN0ZW0gY2FsbCBuYW1lcyAoc3lzY2FsbGVudC5oKSwgZXJybm8gdmFsdWVzIGludG8gZXJybm8gbmFtZXMKKyhlcnJub2VudC5oKSBhbmQgaW9jdGwgdmFsdWVzIGludG8gaW9jdGwgbmFtZXMgKGlvY3RsZW50LmgpLiAgT2Z0ZW4KK3RoaXMgZnJhZ2lsZSBzdGVwIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkgbWFzc2FnaW5nIHN5c3RlbSBoZWFkZXIgZmlsZXMKK3dpdGggYWQgaG9jIHNoZWxsIHNjcmlwdHMuICBFeHBlY3QgeW91ciBzY3JpcHRzIHRvIGJyZWFrIHdpdGggZXZlcnkKK2RvdCByZXYgb2YgZWFjaCBPUyByZWxlYXNlLgorCitGaW5hbGx5LCBvbmNlIHlvdSBoYXZlIHRoZSBiYXNpYyBmcmFtZXdvcmsgaW4gd2hpY2ggc3lzdGVtIGNhbGxzIGFuZAordGhlaXIgYXJndW1lbnRzIGNhbiBiZSBkZWNvZGVkLCB5b3UgbXVzdCBkbyB0aGUgZGlydHkgd29yayBvZiBkZWNvZGluZworZXZlcnkgdXNlZnVsIGNhbGwuICBTb21lIG1heSBiZSBzaW1pbGFyIG9yIGlkZW50aWNhbCB0byBsaWtlLW5hbWVkCitjYWxscyBpbiBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcy4gIEdvIGFoZWFkIGFuZCB0d2VhayB3aGF0IGlzIHRoZXJlCit0byBhY2hpZXZlIHdoYXQgeW91IHdhbnQuICBJZiB0aGVyZSBpcyBtb3JlIGRpZmZlcmVuY2UgdGhhbiBzaW1pbGFyaXR5LAordGhlbiBqdXN0IHdyaXRlIHlvdXIgb3duIHZlcnNpb24gb2YgaXQgdXNpbmcgb25lIG9mIHRoZSBleGlzdGluZworaW1wbGVtZW50YXRpb25zIGZvciBpZGVhcy4KKworVGhlIGZpcnN0IG9yZGVyIG9mIGRlY29kaW5nIGlzIHRoZSBnZW5lcmF0aW9uIG9mIHN1aXRhYmxlIHN5c3RlbSBjYWxsLAorZXJybm8sIGlvY3RsIGFuZCBzaWduYWwgdGFibGVzLiAgU2FtcGxlIHNjcmlwdHMgYXJlIGluY2x1ZGVkIHRvIGFzc2lzdAord2l0aCB0aGUgZ2VuZXJhdGlvbiBvZiBhIGZpcnN0IHBhc3MgYXQgdGhlc2UgdGFibGVzLgorCitHb29kIGx1Y2sgYW5kIGZlZWwgZnJlZSB0byBjb250YWN0IG1lIGJlZm9yZSBhbmQvb3IgZHVyaW5nIGFueSBtYWpvcgorcHJvamVjdC4KKworUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KZGlmZiAtLWdpdCBhL1JFQURNRSBiL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTRjZWRlCi0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FCkBAIC0wLDAgKzEsMzIgQEAKK1RoaXMgaXMgc3RyYWNlIDQuMCwgYSBzeXN0ZW0gY2FsbCB0cmFjZXIgZm9yIFN1bk9TIDQueCwgTGludXgsIFN5c3RlbQorViByZWxlYXNlIDQsIFNvbGFyaXMgMi54IGFuZCBJcml4IDUueC4gIHN0cmFjZSBpcyByZWxlYXNlZCB1bmRlciBhCitCZXJrZWxleS1zdHlsZSBsaWNlbnNlIGF0IHRoZSByZXF1ZXN0IG9mIFBhdWwgS3JhbmVuYnVyZzsgc2VlIHRoZSBmaWxlCitDT1BZUklHSFQgZm9yIGRldGFpbHMuCisKK1JlYWQgdGhlIElOU1RBTEwgZmlsZSBmb3IgZ2VuZXJpYyBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGluc3RhbGwKK3N0cmFjZS4gIElmIGNvbmZpZ3VyZSBjYW5ub3QgZ3Vlc3MgeW91ciBzeXN0ZW0gY29uZmlndXJhdGlvbiwgeW91IGNhbgorc3BlY2lmeSBpdCBvbiB0aGUgY29tbWFuZCBsaW5lIGFmdGVyIHRoZSBvdGhlciBvcHRpb25zIGxpa2UgdGhpczoKKworCS4vY29uZmlndXJlIC0tcHJlZml4PS91c3IgaTQ4Ni1saW51eAorCitBIHNpbmdsZSBzdW5vczQuMSBiaW5hcnkgc2hvdWxkIHdvcmsgb24gYWxsIHRoZSBzdW40LCBzdW40YyBhbmQgc3VuNG0KK2tlcm5lbCBhcmNoaXRlY3R1cmVzLiAgTGV0IG1lIGtub3cgaWYgc3VuNGQgZG9lc24ndCB3b3JrLiAgT3RoZXIKK2k0ODYtKi1zeXN2NCBzeXN0ZW1zIG1heSB3b3JrIHdpdGggbGl0dGxlIG9yIG5vIHR3ZWFraW5nLgorCitTZWUgdGhlIGZpbGUgTkVXUyBmb3IgaW5mb3JtYXRpb24gb24gd2hhdCBoYXMgY2hhbmdlZCBpbiByZWNlbnQKK3ZlcnNpb25zLgorCitTZWUgdGhlIGZpbGUgUE9SVElORyBpZiB5b3UgbGlrZSBzdHJhY2UgYnV0IGl0IGRvZXNuJ3Qgd29yayBvbiBhbgorb3BlcmF0aW5nIHN5c3RlbSB5b3UgdXNlIGZyZXF1ZW50bHkuCisKK1NlZSB0aGUgZmlsZSBDUkVESVRTIHRvIHNlZSB3aG8gaGFzIGNvbnRyaWJ1dGVkIHRvIHN0cmFjZS4KKworU2VlIHRoZSBmaWxlIFRPRE8gaWYgeW91IGZlZWwgbGlrZSBoZWxwaW5nIG91dC4KKworWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHN0cmFjZSBmcm9tIGl0cyBob21lcGFnZSBhdAoraHR0cDovL3d3dy5saWFjcy5ubC9+d2ljaGVydC9zdHJhY2UvIC4KKworUGxlYXNlIHNlbmQgYnVnIHJlcG9ydHMgYW5kIGVuaGFuY2VtZW50cyB0byB0aGUgc3RyYWNlCittYWlsaW5nbGlzdCBhdCBzdHJhY2UtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0LCBvciBkaXJlY3RseSB0bworV2ljaGVydCBBa2tlcm1hbiA8d2Fra2VybWFAZGViaWFuLm9yZz4KKwpkaWZmIC0tZ2l0IGEvUkVBRE1FLUFuZHJvaWQgYi9SRUFETUUtQW5kcm9pZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTNhM2MxCi0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FLUFuZHJvaWQKQEAgLTAsMCArMSwxMSBAQAorU3RlcHMgdG8gYnVpbGQgZnJvbSBvcmlnaW5hbCBzb3VyY2U6CisKKzEpIGFwcGx5IGFybS1lYWJpLnBhdGNoIGZyb20gRGViaWFuIGJ1ZyB0cmFja2VyCisKKzIpIHJ1biBjb25maWd1cmUgYXMgZm9sbG93cworLi9jb25maWd1cmUgQ0ZMQUdTPS1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gLi9jb25maWd1cmUgIC0tcHJlZml4PS9kYXRhLyAtLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudQorCisobm90ZSB0aGlzIHVzZXMgdGhlIGRlc2t0b3AgZ2NjIGFuZCBnbGliYyBoZWFkZXJzKQorCiszKSBGdXJ0aGVyIG1vZGlmaWNhdGlvbnMgYXMgY2hhbmdlIGhpc3Rvcnkgd2lsbCBzaG93CisKZGlmZiAtLWdpdCBhL1JFQURNRS1saW51eCBiL1JFQURNRS1saW51eApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmY5Nzc5Ci0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FLWxpbnV4CkBAIC0wLDAgKzEsMzIgQEAKKworU3RyYWNlIGhhcyBiZWVuIHBvcnRlZCBieSBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KK3RvIHJ1biBvbiBMaW51eCBzeXN0ZW1zLiAgU2luY2UgdGhlbiBpdCBoYXMgYmVlbiBncmVhdGx5IG1vZGlmaWVkCitieSB2YXJpb3VzIG90aGVyIHBlb3BsZS4KKworSWYgeW91IHdhbnQgdG8gY29tcGlsZSBzdHJhY2Ugb24gYSBMaW51eCBzeXN0ZW0gcGxlYXNlIG1ha2Ugc3VyZSB0aGF0Cit5b3UgdXNlIHJlY2VudCBrZXJuZWwgaGVhZGVycy4gU3RyYWNlIG5lZWRzIHRob3NlIHRvIGdldCB0aGUgcHJvcGVyIGRhdGEKK3N0cnVjdHVyZXMgYW5kIGNvbnN0YXRucyB1c2VkIGJ5IHRoZSBrZXJuZWwsIHNpbmNlIHRoZXNlIGNhbiBiZQorZGlmZmVyZW50IGZyb20gdGhlIHN0cnVjdHVyZXMgdGhhdCB0aGUgQyBsaWJyYXJ5IHVzZXMuIEN1cnJlbnRseSB5b3UKK3dpbGwgbmVlZCBhdCBsZWFzdCBhIDIuMi43IG9yIG5ld2VyIGtlcm5lbC4gCisKK1RvIGNvbXBsaWNhdGUgdGhpbmdzIGEgYml0IGZ1cnRoZXIgc3RyYWNlIG1pZ2h0IG5vdCBjb21waWxlIGlmIHlvdSBhcmUKK3VzaW5nIGRldmVsb3BtZW50IGtlcm5lbHMuIFRoZXNlIHRlbmQgdG8gaGF2ZSBoZWFkZXJzIHRoYXQgY29uZmxpY3Qgd2l0aAordGhlIGhlYWRlcnMgZnJvbSBsaWJjIHdoaWNoIG1ha2VzIGl0IGltcG9zc2libGUgdG8gdXNlIHRoZW0uCisKK1RoZXJlIGFyZSB0aHJlZSB3YXlzIHRvIGNvbXBpbGUgc3RyYWNlIHdpdGggb3RoZXIga2VybmVsIGhlYWRlcnM6CisqIFNwZWNpZnkgdGhlIGxvY2F0aW9uIGluIENGTEFHUyB3aGVuIHJ1bm5pbmcgY29uZmlndXJlCisKKyAgICAgQ0ZMQUdTPS1JL3Vzci9zcmMvbGludXgvaW5jbHVkZSAuL2NvbmZpZ3VyZQorCisqIHlvdSBjYW4gdGVsbCBtYWtlIHdoZXJlIHlvdXIga2VybmVsIHNvdXJjZXMgYXJlLiBGb3IgZXhhbXBsZSBpZiB5b3UKKyAgaGF2ZSB5b3VyIGtlcm5lbHNvdXJjZSBpbiAvdXNyL3NyYy9saW51eCwgeW91IGNhbiBpbnZva2UgbWFrZSBsaWtlCisgIHRoaXM6CisKKyAgICAgbWFrZSBDRkxBR1M9IlwkQ0ZMQUdTIC1JL3Vzci9zcmMvbGludXgvaW5jbHVkZSIKKworICAodGhlIGV4dHJhIFwkQ0ZMQUdTIGlzIHRoZXJlIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBvdmVycmlkZSBhbnkgQ0ZMQUdTCisgIHNldHRpbmdzIHRoYXQgY29uZmlndXJlIGhhcyBmb3VuZCkuCisKKyogeW91IGNhbiBsaW5rIC91c3IvaW5jbHVkZS9saW51eCBhbmQgL3Vzci9pbmNsdWRlL2FzbSB0byB0aGUKKyAgY29ycmVzcG9uZGluZyBkaXJlY3RvcmllcyBpbiB5b3VyIGtlcm5lbCBzb3VyY2UtdHJlZS4KKwpkaWZmIC0tZ2l0IGEvVE9ETyBiL1RPRE8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ2YThlOAotLS0gL2Rldi9udWxsCisrKyBiL1RPRE8KQEAgLTAsMCArMSwzMiBAQAorLS0gbmV3IGVudHJpZXMgZnJvbSB3dGEKKyogY2xvbmUgZG9lc24ndCB3b3JrOyBjbG9uZWQgcHJvY2Vzc2VzIGNhbiBoYW5nCisqIHBhcnRpYWxseSBkb25lOiBmaW5pc2ggdXAgY2hhbmdlX3N5c2NhbGwgdXNpbmcgbmV3IHNldGFyZ3MKKyogZG8gc2V0YXJncyBmb3Igbm9uLWlhNjQKKyogZ2VuZXJhdGUgc3lzY2FsbGVudC5oIGZyb20gdGhlIGtlcm5lbCBzb3VyY2VzIChhc20vdW5pc3RkLmgpCisqIHVwZGF0ZSBsaW51eC9zcGFyYyBzeXNjYWxsIGVudHJpZXM7IExpbnV4IG1lc3NlZCB0aGluZ3MgdXAgYnkgb3ZlcnJpZGluZworICBhbGwga2luZHMgb2YgU3VuT1MgZW50cmllcworKiBzeW5jaHJvbml6ZSBsaW51eC8qKi9zeXNjYWxsZW50LmgsIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGEgc3lzY2FsIGlzbid0CisgIGNvbnNpc3RlbnQgYWNyb3NzIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzCisKKy0tIG9sZCBlbnRyaWVzIGZyb20ganJzCithdHRlbXB0IHJlb3BlbiBvZiAvcHJvYyBmaWxlIGlmIHdlIGdldCBFQUdBSU4gZnJvbSBhbnkgL3Byb2MgaW9jdGwKK2tpbGwgcHJvY3Mgd2UgZXJyb3Igb3V0IG9mIG9uIHN2cjQKK2VuY2xvc2UgInRvdGFsIHggZGVudHMiIGluIGEgY29tbWVudAorZGVjbGFyZSBnZXR0aW1lb2ZkYXkgYW5kIHByZWFkIGZvciBzb2xhcmlzMgordXBkYXRlIGF1dG9tYXRpYyByZW1ha2luZyBvZiBhdXRvY29uZiB0YXJnZXRzCitJIGRvbid0IGxpa2UgcnVuIG9uIGxhc3QgY2xvc2UsIGNoYW5nZSBpdD8KK3BhcnNlIGxvbmcgb3B0aW9ucz8KK2NvdW50IHNpZ25hbHMgdG9vIHdpdGggLWMKK3RyZWF0IGF0dGFjaCwgZGV0YWNoIG1lc3NhZ2VzIGxpa2Ugc2lnbmFscworYWRkIHByZWFkLCBwd3JpdGUgdG8gSS9PIGR1bXBpbmcKK2FkZCBzeXN0ZW0gYXNzaXN0IGZvciBxdWFsaWZpZXJzIG9uIHN2cjQKK2NoYW5nZSBwcmludGNhbGwgdG8gZ2V0Y2FsbGVyIGFuZCBmaXggZm9yIGxpbnV4IGFuZCBzdnI0CitmaXggZm9yayBoYW5nIGZvciBzdnI0IHdpdGhvdXQgcG9sbGFibGUgcHJvY2ZzCitwcmludCBldmVudHMgb24gZW50cnkgdG8gYW5kIHJldmVudHMgb24gZXhpdCBmcm9tIHBvbGwKK21vbml0b3IgcHJvY2ZzIG9wZW4gYW5kIHJlbGVhc2UgdGhlIG90aGVyIGNoaWxkIGlmIHRoZSBwcm9jZXNzIHdhbnRzIHRvIG93biBpdAorZml4IGluY29ycmVjdCBzeXNjYWxsIG51bWJlciBpZiBleGl0IHdpdGhvdXQgZW50cnkgb24gc3ZyNCB3aXRob3V0IHByX3N5c2NhbGwKK2ZpeCBjbGVhbiB0YXJnZXRzIHNvIGNvbmZpZy5oIGFuZCBjb25maWcuc3RhdHVzIGNhbiBiZSByZW1vdmVkCitpZ25vcmUgZmF1bHRzIHdoaWNoIG9jY3VyIGJlZm9yZSBleGVjCitsb29rIGZvciBtb3JlIGlvY3RscyBvbiBzb2xhcmlzLCB1c2VkIGluIG5zbG9va3VwIGZvciBleGFtcGxlCitjb25zaWRlciBhZGRpbmcgYmFja3RyYWNlIHN1cHBvcnQKK2NvbnNpZGVyIGFkZGluZyBnZW5lcmFsIHB1cnBvc2UgaW50ZXJwcmV0ZXIKZGlmZiAtLWdpdCBhL2FjaW5jbHVkZS5tNCBiL2FjaW5jbHVkZS5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzBjYTA5Ci0tLSAvZGV2L251bGwKKysrIGIvYWNpbmNsdWRlLm00CkBAIC0wLDAgKzEsMjgxIEBACitkbmwKK2RubCBUaGlzIGZpbGUgY29udGFpbnMgbWFjcm9zIHVzZWQgaW4gY29uZmlndXJlLmFjLgorZG5sIGF1dG9tYWtlIHVzZXMgdGhpcyBmaWxlIHRvIGdlbmVyYXRlIGFjbG9jYWwubTQsIHdoaWNoIGlzIHVzZWQgYnkgYXV0b2NvbmYuCitkbmwKKworZG5sICMjIyBBIG1hY3JvIHRvIGZpbmQgdGhlIGluY2x1ZGUgZGlyZWN0b3J5LCB1c2VmdWwgZm9yIGNyb3NzLWNvbXBpbGluZy4KK0FDX0RFRlVOKFtBQ19JTkNMVURFRElSXSwKK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCitBQ19TVUJTVChpbmNsdWRlZGlyKQorQUNfTVNHX0NIRUNLSU5HKGZvciBwcmltYXJ5IGluY2x1ZGUgZGlyZWN0b3J5KQoraW5jbHVkZWRpcj0vdXNyL2luY2x1ZGUKK2lmIHRlc3QgLW4gIiRHQ0MiCit0aGVuCisJPmNvbmZ0ZXN0LmMKKwluZXdfaW5jbHVkZWRpcj1gCisJCSRDQyAtdiAtRSBjb25mdGVzdC5jIDI+JjEgfCAkQVdLICcKKwkJCS9eRW5kIG9mIHNlYXJjaCBsaXN0LyB7IHByaW50IGxhc3Q7IGV4aXQgfQorCQkJeyBsYXN0ID0gWyRdMSB9CisJCScKKwlgCisJcm0gLWYgY29uZnRlc3QuYworCWlmIHRlc3QgLW4gIiRuZXdfaW5jbHVkZWRpciIgJiYgdGVzdCAtZCAiJG5ld19pbmNsdWRlZGlyIgorCXRoZW4KKwkJaW5jbHVkZWRpcj0kbmV3X2luY2x1ZGVkaXIKKwlmaQorZmkKK0FDX01TR19SRVNVTFQoJGluY2x1ZGVkaXIpCitdKQorCitkbmwgIyMjIEEgbWFjcm8gdG8gc2V0IGdjYyB3YXJuaW5nIGZsYWdzLgorZGVmaW5lKEFDX1dBUk5GTEFHUywKK1tBQ19TVUJTVChXQVJORkxBR1MpCitpZiB0ZXN0IC16ICIkV0FSTkZMQUdTIgordGhlbgorCWlmIHRlc3QgLW4gIiRHQ0MiCisJdGhlbgorCQkjIElmIHdlJ3JlIHVzaW5nIGdjYyB3ZSB3YW50IHdhcm5pbmcgZmxhZ3MuCisJCVdBUk5GTEFHUz0tV2FsbAorCWZpCitmaQorXSkKKworZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiB3ZSBoYXZlIGEgIk1QIiB0eXBlIHByb2NmcworQUNfREVGVU4oW0FDX01QX1BST0NGU10sCitbQUNfTVNHX0NIRUNLSU5HKGZvciBNUCBwcm9jZnMpCitBQ19DQUNIRV9WQUwoYWNfY3ZfbXBfcHJvY2ZzLAorW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CisKK21haW4oKQoreworCWludCBwaWQ7CisJY2hhciBwcm9jWzMyXTsKKwlGSUxFICpjdGw7CisJRklMRSAqc3RhdHVzOworCWludCBjbWQ7CisJc3RydWN0IHBzdGF0dXMgcHN0YXR1czsKKworCWlmICgocGlkID0gZm9yaygpKSA9PSAwKSB7CisJCXBhdXNlKCk7CisJCWV4aXQoMCk7CisJfQorCXNwcmludGYocHJvYywgIi9wcm9jLyVkL2N0bCIsIHBpZCk7CisJaWYgKChjdGwgPSBmb3Blbihwcm9jLCAidyIpKSA9PSBOVUxMKQorCQlnb3RvIGZhaWw7CisJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKKwlpZiAoKHN0YXR1cyA9IGZvcGVuIChwcm9jLCAiciIpKSA9PSBOVUxMKQorCQlnb3RvIGZhaWw7CisJY21kID0gUENTVE9QOworCWlmICh3cml0ZSAoZmlsZW5vIChjdGwpLCAmY21kLCBzaXplb2YgY21kKSA8IDApCisJCWdvdG8gZmFpbDsKKwlpZiAocmVhZCAoZmlsZW5vIChzdGF0dXMpLCAmcHN0YXR1cywgc2l6ZW9mIHBzdGF0dXMpIDwgMCkKKwkJZ290byBmYWlsOworCWtpbGwocGlkLCBTSUdLSUxMKTsKKwlleGl0KDApOworZmFpbDoKKwlraWxsKHBpZCwgU0lHS0lMTCk7CisJZXhpdCgxKTsKK30KK11dKV0sW2FjX2N2X21wX3Byb2Nmcz15ZXNdLFthY19jdl9tcF9wcm9jZnM9bm9dLFsKKyMgR3Vlc3Mgb3IgcHVudC4KK2Nhc2UgIiRob3N0X29zIiBpbgorc3ZyNC4yKnxzdnI1KikKKwlhY19jdl9tcF9wcm9jZnM9eWVzCisJOzsKKyopCisJYWNfY3ZfbXBfcHJvY2ZzPW5vCisJOzsKK2VzYWMKK10pXSkKK0FDX01TR19SRVNVTFQoJGFjX2N2X21wX3Byb2NmcykKK2lmIHRlc3QgIiRhY19jdl9tcF9wcm9jZnMiID0geWVzCit0aGVuCisJQUNfREVGSU5FKFtIQVZFX01QX1BST0NGU10sIDEsCitbRGVmaW5lIGlmIHlvdSBoYXZlIGEgU1ZSNCBNUCB0eXBlIHByb2Nmcy4KK0kuRS4gL2Rldi94eHgvY3RsLCAvZGV2L3h4eC9zdGF0dXMuCitBbHNvIGltcGxpZXMgdGhhdCB5b3UgaGF2ZSB0aGUgcHJfbHdwIG1lbWJlciBpbiBwcnN0YXR1cy5dKQorZmkKK10pCisKK2RubCAjIyMgQSBtYWNybyB0byBkZXRlcm1pbmUgaWYgcHJvY2ZzIGlzIHBvbGxhYmxlLgorQUNfREVGVU4oW0FDX1BPTExBQkxFX1BST0NGU10sCitbQUNfTVNHX0NIRUNLSU5HKGZvciBwb2xsYWJsZSBwcm9jZnMpCitBQ19DQUNIRV9WQUwoYWNfY3ZfcG9sbGFibGVfcHJvY2ZzLAorW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CisjaW5jbHVkZSA8c3lzL3N0cm9wdHMuaD4KKyNpbmNsdWRlIDxwb2xsLmg+CisKKyNpZmRlZiBIQVZFX01QX1BST0NGUworI2RlZmluZSBQSU9DU1RPUAlQQ1NUT1AKKyNkZWZpbmUgUE9MTFdBTlQJUE9MTFdSTk9STQorI2RlZmluZSBQUk9DCQkiL3Byb2MvJWQvY3RsIgorI2RlZmluZSBQUk9DX01PREUJInciCitpbnQgSU9DVEwgKGludCBmZCwgaW50IGNtZCwgaW50IGFyZykgeworCXJldHVybiB3cml0ZSAoZmQsICZjbWQsIHNpemVvZiBjbWQpOworfQorI2Vsc2UKKyNkZWZpbmUgUE9MTFdBTlQJUE9MTFBSSQorI2RlZmluZQlQUk9DCQkiL3Byb2MvJWQiCisjZGVmaW5lIFBST0NfTU9ERQkicisiCisjZGVmaW5lIElPQ1RMCQlpb2N0bAorI2VuZGlmCisKK21haW4oKQoreworCWludCBwaWQ7CisJY2hhciBwcm9jWzMyXTsKKwlGSUxFICpwZnA7CisJc3RydWN0IHBvbGxmZCBwZmQ7CisKKwlpZiAoKHBpZCA9IGZvcmsoKSkgPT0gMCkgeworCQlwYXVzZSgpOworCQlleGl0KDApOworCX0KKwlzcHJpbnRmKHByb2MsIFBST0MsIHBpZCk7CisJaWYgKChwZnAgPSBmb3Blbihwcm9jLCBQUk9DX01PREUpKSA9PSBOVUxMKQorCQlnb3RvIGZhaWw7CisJaWYgKElPQ1RMKGZpbGVubyhwZnApLCBQSU9DU1RPUCwgTlVMTCkgPCAwKQorCQlnb3RvIGZhaWw7CisJcGZkLmZkID0gZmlsZW5vKHBmcCk7CisJcGZkLmV2ZW50cyA9IFBPTExXQU5UOworCWlmIChwb2xsKCZwZmQsIDEsIDApIDwgMCkKKwkJZ290byBmYWlsOworCWlmICghKHBmZC5yZXZlbnRzICYgUE9MTFdBTlQpKQorCQlnb3RvIGZhaWw7CisJa2lsbChwaWQsIFNJR0tJTEwpOworCWV4aXQoMCk7CitmYWlsOgorCWtpbGwocGlkLCBTSUdLSUxMKTsKKwlleGl0KDEpOworfQorXV0pXSxbYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPXllc10sW2FjX2N2X3BvbGxhYmxlX3Byb2Nmcz1ub10sWworIyBHdWVzcyBvciBwdW50LgorY2FzZSAiJGhvc3Rfb3MiIGluCitzb2xhcmlzMip8aXJpeDUqfHN2cjQuMnV3KnxzdnI1KikKKwlhY19jdl9wb2xsYWJsZV9wcm9jZnM9eWVzCisJOzsKKyopCisJYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCisJOzsKK2VzYWMKK10pXSkKK0FDX01TR19SRVNVTFQoJGFjX2N2X3BvbGxhYmxlX3Byb2NmcykKK2lmIHRlc3QgIiRhY19jdl9wb2xsYWJsZV9wcm9jZnMiID0geWVzCit0aGVuCisJQUNfREVGSU5FKFtIQVZFX1BPTExBQkxFX1BST0NGU10sIDEsCitbRGVmaW5lIGlmIHlvdSBoYXZlIFNWUjQgYW5kIHRoZSBwb2xsIHN5c3RlbSBjYWxsIHdvcmtzIG9uIC9wcm9jIGZpbGVzLl0pCitmaQorXSkKKworZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiB0aGUgcHJzdGF0dXMgc3RydWN0dXJlIGhhcyBhIHByX3N5c2NhbGwgbWVtYmVyLgorQUNfREVGVU4oW0FDX1NUUlVDVF9QUl9TWVNDQUxMXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoZm9yIHByX3N5c2NhbGwgaW4gc3RydWN0IHByc3RhdHVzKQorQUNfQ0FDSEVfVkFMKGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsLAorW0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPl1dLCBbWyNpZmRlZiBIQVZFX01QX1BST0NGUworcHN0YXR1c190IHM7CitzLnByX2x3cC5wcl9zeXNjYWxsCisjZWxzZQorcHJzdGF0dXNfdCBzOworcy5wcl9zeXNjYWxsCisjZW5kaWZdXSldLFthY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD15ZXNdLFthY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD1ub10pXSkKK0FDX01TR19SRVNVTFQoJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsKQoraWYgdGVzdCAiJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsIiA9IHllcwordGhlbgorCUFDX0RFRklORShbSEFWRV9QUl9TWVNDQUxMXSwgMSwKK1tEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuXSkKK2ZpCitdKQorCitkbmwgIyMjIEEgbWFjcm8gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgc3RhdDY0IGlzIGRlZmluZWQuCitBQ19ERUZVTihbQUNfU1RBVDY0XSwKK1tBQ19NU0dfQ0hFQ0tJTkcoZm9yIHN0YXQ2NCBpbiAoYXNtfHN5cykvc3RhdC5oKQorQUNfQ0FDSEVfVkFMKGFjX2N2X3R5cGVfc3RhdDY0LAorW0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaWZkZWYgTElOVVgKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9zdGF0Lmg+CisjZWxzZQorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZW5kaWZdXSwgW1tzdHJ1Y3Qgc3RhdDY0IHN0O11dKV0sW2FjX2N2X3R5cGVfc3RhdDY0PXllc10sW2FjX2N2X3R5cGVfc3RhdDY0PW5vXSldKQorQUNfTVNHX1JFU1VMVCgkYWNfY3ZfdHlwZV9zdGF0NjQpCitpZiB0ZXN0ICIkYWNfY3ZfdHlwZV9zdGF0NjQiID0geWVzCit0aGVuCisJQUNfREVGSU5FKFtIQVZFX1NUQVQ2NF0sIDEsCitbRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC5dKQorZmkKK10pCisKK2RubCAjIyMgQSBtYWNybyB0byBkZXRlcm1pbmUgaWYgb2ZmX3QgaXMgYSBsb25nIGxvbmcKK0FDX0RFRlVOKFtBQ19PRkZfVF9JU19MT05HX0xPTkddLAorW0FDX01TR19DSEVDS0lORyhmb3IgbG9uZyBsb25nIG9mZl90KQorQUNfQ0FDSEVfVkFMKGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90LAorW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorbWFpbiAoKSB7CisJaWYgKHNpemVvZiAob2ZmX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgorCSAgICBzaXplb2YgKG9mZl90KSA+IHNpemVvZiAobG9uZykpCisJICAgIHJldHVybiAwOworCXJldHVybiAxOworfQorXV0pXSxbYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9eWVzXSxbYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm9dLFsjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQorYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm8KK10pXSkKK0FDX01TR19SRVNVTFQoJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90KQoraWYgdGVzdCAiJGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90IiA9IHllcwordGhlbgorCUFDX0RFRklORShbSEFWRV9MT05HX0xPTkdfT0ZGX1RdLCAxLCBbRGVmaW5lIGlmIG9mZl90IGlzIGEgbG9uZyBsb25nLl0pCitmaQorXSkKKworZG5sICMjIyBBIG1hY3JvIHRvIGRldGVybWluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcKK0FDX0RFRlVOKFtBQ19STElNX1RfSVNfTE9OR19MT05HXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoZm9yIGxvbmcgbG9uZyBybGltX3QpCitBQ19DQUNIRV9WQUwoYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90LAorW0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CittYWluICgpIHsKKwlpZiAoc2l6ZW9mIChybGltX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgorCSAgICBzaXplb2YgKHJsaW1fdCkgPiBzaXplb2YgKGxvbmcpKQorCSAgICByZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KK11dKV0sW2FjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdD15ZXNdLFthY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Q9bm9dLFsjIFNob3VsZCB0cnkgdG8gZ3Vlc3MgaGVyZQorYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCitdKV0pCitBQ19NU0dfUkVTVUxUKCRhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3QpCitpZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90IiA9IHllcwordGhlbgorCUFDX0RFRklORShbSEFWRV9MT05HX0xPTkdfUkxJTV9UXSwgMSwgW0RlZmluZSBpZiBybGltX3QgaXMgYSBsb25nIGxvbmcuXSkKK2ZpCitdKQorCitkbmwgIyMjIEEgbWFjcm8gdG8gZGV0ZXJtaW5lIGVuZGlhbm5lc3Mgb2YgbG9uZyBsb25nCitBQ19ERUZVTihbQUNfTElUVExFX0VORElBTl9MT05HX0xPTkddLAorW0FDX01TR19DSEVDS0lORyhmb3IgbGl0dGxlIGVuZGlhbiBsb25nIGxvbmcpCitBQ19DQUNIRV9WQUwoYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZywKK1tBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbWworaW50IG1haW4gKCkgeworCXVuaW9uIHsKKwkJbG9uZyBsb25nIGxsOworCQlsb25nIGwgWzJdOworCX0gdTsKKwl1LmxsID0gMHgxMjM0NTY3ODsKKwlpZiAodS5sWzBdID09IDB4MTIzNDU2NzgpCisJCXJldHVybiAwOworCXJldHVybiAxOworfQorXV0pXSxbYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZz15ZXNdLFthY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nPW5vXSxbIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKK2FjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9bm8KK10pXSkKK0FDX01TR19SRVNVTFQoJGFjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmcpCitpZiB0ZXN0ICIkYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZyIgPSB5ZXMKK3RoZW4KKwlBQ19ERUZJTkUoW0hBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkddLCAxLAorW0RlZmluZSBpZiBsb25nIGxvbmcgaXMgbGl0dGxlLWVuZGlhbi5dKQorZmkKK10pCmRpZmYgLS1naXQgYS9hY2xvY2FsLm00IGIvYWNsb2NhbC5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWYzMTU4Ci0tLSAvZGV2L251bGwKKysrIGIvYWNsb2NhbC5tNApAQCAtMCwwICsxLDg5MiBAQAorIyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuOS41IC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCisjIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0CisjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKKyMgUEFSVElDVUxBUiBQVVJQT1NFLgorCisjIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBBTV9BVVRPTUFLRV9WRVJTSU9OKFZFUlNJT04pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXV0b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVuCisjIGdlbmVyYXRlZCBmcm9tIHRoZSBtNCBmaWxlcyBhY2NvbXBhbnlpbmcgQXV0b21ha2UgWC5ZLgorQUNfREVGVU4oW0FNX0FVVE9NQUtFX1ZFUlNJT05dLCBbYW1fX2FwaV92ZXJzaW9uPSIxLjkiXSkKKworIyBBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIHNvIGl0IGNhbiBiZSB0cmFjZWQuCisjIFRoaXMgZnVuY3Rpb24gaXMgQUNfUkVRVUlSRWQgYnkgQUNfSU5JVF9BVVRPTUFLRS4KK0FDX0RFRlVOKFtBTV9TRVRfQ1VSUkVOVF9BVVRPTUFLRV9WRVJTSU9OXSwKKwkgW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuOS41XSldKQorCisjIEFNX0FVWF9ESVJfRVhQQU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIEZvciBwcm9qZWN0cyB1c2luZyBBQ19DT05GSUdfQVVYX0RJUihbZm9vXSksIEF1dG9jb25mIHNldHMKKyMgJGFjX2F1eF9kaXIgdG8gYCRzcmNkaXIvZm9vJy4gIEluIG90aGVyIHByb2plY3RzLCBpdCBpcyBzZXQgdG8KKyMgYCRzcmNkaXInLCBgJHNyY2Rpci8uLicsIG9yIGAkc3JjZGlyLy4uLy4uJy4KKyMKKyMgT2YgY291cnNlLCBBdXRvbWFrZSBtdXN0IGhvbm9yIHRoaXMgdmFyaWFibGUgd2hlbmV2ZXIgaXQgY2FsbHMgYQorIyB0b29sIGZyb20gdGhlIGF1eGlsaWFyeSBkaXJlY3RvcnkuICBUaGUgcHJvYmxlbSBpcyB0aGF0ICRzcmNkaXIgKGFuZAorIyB0aGVyZWZvcmUgJGFjX2F1eF9kaXIgYXMgd2VsbCkgY2FuIGJlIGVpdGhlciBhYnNvbHV0ZSBvciByZWxhdGl2ZSwKKyMgZGVwZW5kaW5nIG9uIGhvdyBjb25maWd1cmUgaXMgcnVuLiAgVGhpcyBpcyBwcmV0dHkgYW5ub3lpbmcsIHNpbmNlCisjIGl0IG1ha2VzICRhY19hdXhfZGlyIHF1aXRlIHVudXNhYmxlIGluIHN1YmRpcmVjdG9yaWVzOiBpbiB0aGUgdG9wCisjIHNvdXJjZSBkaXJlY3RvcnksIGFueSBmb3JtIHdpbGwgd29yayBmaW5lLCBidXQgaW4gc3ViZGlyZWN0b3JpZXMgYQorIyByZWxhdGl2ZSBwYXRoIG5lZWRzIHRvIGJlIGFkanVzdGVkIGZpcnN0LgorIworIyAkYWNfYXV4X2Rpci9taXNzaW5nCisjICAgIGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaWYgJGFjX2F1eF9kaXIgaXMgcmVsYXRpdmUKKyMgJHRvcF9zcmNkaXIvJGFjX2F1eF9kaXIvbWlzc2luZworIyAgICBmYWlscyBpZiAkYWNfYXV4X2RpciBpcyBhYnNvbHV0ZSwKKyMgICAgZmFpbHMgd2hlbiBjYWxsZWQgZnJvbSBhIHN1YmRpcmVjdG9yeSBpbiBhIFZQQVRIIGJ1aWxkIHdpdGgKKyMgICAgICAgICAgYSByZWxhdGl2ZSAkYWNfYXV4X2RpcgorIworIyBUaGUgcmVhc29uIG9mIHRoZSBsYXR0ZXIgZmFpbHVyZSBpcyB0aGF0ICR0b3Bfc3JjZGlyIGFuZCAkYWNfYXV4X2RpcgorIyBhcmUgYm90aCBwcmVmaXhlZCBieSAkc3JjZGlyLiAgSW4gYW4gaW4tc291cmNlIGJ1aWxkIHRoaXMgaXMgdXN1YWxseQorIyBoYXJtbGVzcyBiZWNhdXNlICRzcmNkaXIgaXMgYC4nLCBidXQgdGhpbmdzIHdpbGwgYnJva2Ugd2hlbiB5b3UKKyMgc3RhcnQgYSBWUEFUSCBidWlsZCBvciB1c2UgYW4gYWJzb2x1dGUgJHNyY2Rpci4KKyMKKyMgU28gd2UgY291bGQgdXNlIHNvbWV0aGluZyBzaW1pbGFyIHRvICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcsCisjIGlmZiB3ZSBzdHJpcCB0aGUgbGVhZGluZyAkc3JjZGlyIGZyb20gJGFjX2F1eF9kaXIuICBUaGF0IHdvdWxkIGJlOgorIyAgIGFtX2F1eF9kaXI9J1wkKHRvcF9zcmNkaXIpLydgZXhwciAiJGFjX2F1eF9kaXIiIDogIiRzcmNkaXIvLypcKC4qXCkiYAorIyBhbmQgdGhlbiB3ZSB3b3VsZCBkZWZpbmUgJE1JU1NJTkcgYXMKKyMgICBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKKyMgVGhpcyB3aWxsIHdvcmsgYXMgbG9uZyBhcyBNSVNTSU5HIGlzIG5vdCBjYWxsZWQgZnJvbSBjb25maWd1cmUsIGJlY2F1c2UKKyMgdW5mb3J0dW5hdGVseSAkKHRvcF9zcmNkaXIpIGhhcyBubyBtZWFuaW5nIGluIGNvbmZpZ3VyZS4KKyMgSG93ZXZlciB0aGVyZSBhcmUgb3RoZXIgdmFyaWFibGVzLCBsaWtlIENDLCB3aGljaCBhcmUgb2Z0ZW4gdXNlZCBpbgorIyBjb25maWd1cmUsIGFuZCBjb3VsZCB0aGVyZWZvcmUgbm90IHVzZSB0aGlzICJmaXhlZCIgJGFjX2F1eF9kaXIuCisjCisjIEFub3RoZXIgc29sdXRpb24sIHVzZWQgaGVyZSwgaXMgdG8gYWx3YXlzIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbgorIyBhYnNvbHV0ZSBQQVRILiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgdXNpbmcgYWJzb2x1dGUgcGF0aHMgcHJldmVudCBhCisjIGNvbmZpZ3VyZWQgdHJlZSB0byBiZSBtb3ZlZCB3aXRob3V0IHJlY29uZmlndXJhdGlvbi4KKworQUNfREVGVU4oW0FNX0FVWF9ESVJfRVhQQU5EXSwKK1tkbmwgUmVseSBvbiBhdXRvY29uZiB0byBzZXQgdXAgQ0RQQVRIIHByb3Blcmx5LgorQUNfUFJFUkVRKFsyLjUwXSlkbmwKKyMgZXhwYW5kICRhY19hdXhfZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAKK10pCisKKyMgQU1fQ09ORElUSU9OQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgNworCisjIEFNX0NPTkRJVElPTkFMKE5BTUUsIFNIRUxMLUNPTkRJVElPTikKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEZWZpbmUgYSBjb25kaXRpb25hbC4KK0FDX0RFRlVOKFtBTV9DT05ESVRJT05BTF0sCitbQUNfUFJFUkVRKDIuNTIpZG5sCisgaWZlbHNlKFskMV0sIFtUUlVFXSwgIFtBQ19GQVRBTChbJDA6IGludmFsaWQgY29uZGl0aW9uOiAkMV0pXSwKKwlbJDFdLCBbRkFMU0VdLCBbQUNfRkFUQUwoWyQwOiBpbnZhbGlkIGNvbmRpdGlvbjogJDFdKV0pZG5sCitBQ19TVUJTVChbJDFfVFJVRV0pCitBQ19TVUJTVChbJDFfRkFMU0VdKQoraWYgJDI7IHRoZW4KKyAgJDFfVFJVRT0KKyAgJDFfRkFMU0U9JyMnCitlbHNlCisgICQxX1RSVUU9JyMnCisgICQxX0ZBTFNFPQorZmkKK0FDX0NPTkZJR19DT01NQU5EU19QUkUoCitbaWYgdGVzdCAteiAiJHskMV9UUlVFfSIgJiYgdGVzdCAteiAiJHskMV9GQUxTRX0iOyB0aGVuCisgIEFDX01TR19FUlJPUihbW2NvbmRpdGlvbmFsICIkMSIgd2FzIG5ldmVyIGRlZmluZWQuCitVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS5dXSkKK2ZpXSldKQorCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDgKKworIyBUaGVyZSBhcmUgYSBmZXcgZGlydHkgaGFja3MgYmVsb3cgdG8gYXZvaWQgbGV0dGluZyBgQUNfUFJPR19DQycgYmUKKyMgd3JpdHRlbiBpbiBjbGVhciwgaW4gd2hpY2ggY2FzZSBhdXRvbWFrZSwgd2hlbiByZWFkaW5nIGFjbG9jYWwubTQsCisjIHdpbGwgdGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQncworIyBDIHN1cHBvcnQgbWFjaGluZXJ5LiAgQWxzbyBub3RlIHRoYXQgaXQgbWVhbnMgdGhhdCBhdXRvc2Nhbiwgc2VlaW5nCisjIENDIGV0Yy4gaW4gdGhlIE1ha2VmaWxlLCB3aWxsIGFzayBmb3IgYW4gQUNfUFJPR19DQyB1c2UuLi4KKworCisjIF9BTV9ERVBFTkRFTkNJRVMoTkFNRSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZWUgaG93IHRoZSBjb21waWxlciBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgY2hlY2tpbmcuCisjIE5BTUUgaXMgIkNDIiwgIkNYWCIsICJHQ0oiLCBvciAiT0JKQyIuCisjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBzZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCisjCisjIFdlIGRvbid0IEFDX1JFUVVJUkUgdGhlIGNvcnJlc3BvbmRpbmcgQUNfUFJPR19DQyBzaW5jZSB0aGUgbGF0dGVyIHdhcworIyBtb2RpZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJjdWxhcgorIyBkZXBlbmRlbmN5LCBhbmQgZ2l2ZW4gdGhhdCB0aGUgdXNlciBpcyBub3QgZXhwZWN0ZWQgdG8gcnVuIHRoaXMgbWFjcm8sCisjIGp1c3QgcmVseSBvbiBBQ19QUk9HX0NDLgorQUNfREVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAorW0FDX1JFUVVJUkUoW0FNX1NFVF9ERVBESVJdKWRubAorQUNfUkVRVUlSRShbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdKWRubAorQUNfUkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKK0FDX1JFUVVJUkUoW0FNX0RFUF9UUkFDS10pZG5sCisKK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PV0sCisgICAgICAgWyQxXSwgQ1hYLCAgW2RlcGNjPSIkQ1hYIiAgYW1fY29tcGlsZXJfbGlzdD1dLAorICAgICAgIFskMV0sIE9CSkMsIFtkZXBjYz0iJE9CSkMiIGFtX2NvbXBpbGVyX2xpc3Q9J2djYzMgZ2NjJ10sCisgICAgICAgWyQxXSwgR0NKLCAgW2RlcGNjPSIkR0NKIiAgYW1fY29tcGlsZXJfbGlzdD0nZ2NjMyBnY2MnXSwKKyAgICAgICAgICAgICAgICAgICBbZGVwY2M9IiQkMSIgICBhbV9jb21waWxlcl9saXN0PV0pCisKK0FDX0NBQ0hFX0NIRUNLKFtkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjY10sCisgICAgICAgICAgICAgICBbYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGVdLAorW2lmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KKyAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUuICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAorICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgorICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAorICAjIG1ha2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0aGUgb3V0cHV0CisgICMgaW4gRCcuCisgIG1rZGlyIGNvbmZ0ZXN0LmRpcgorICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQorICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgorICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgorICBjZCBjb25mdGVzdC5kaXIKKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCisgICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCisgICMgYm90aCBUcnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBhCisgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgorICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKKyAgIyBkaXJlY3RvcnkuCisgIG1rZGlyIHN1YgorCisgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KKyAgICAgYW1fY29tcGlsZXJfbGlzdD1gc2VkIC1uIFsncy9eIypcKFthLXpBLVowLTldKlwpKSQvXDEvcCddIDwgLi9kZXBjb21wYAorICBmaQorICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgorICAgICMKKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCisgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCisgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCisgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCisgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAorICAgIGRvbmUKKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCisKKyAgICBjYXNlICRkZXBtb2RlIGluCisgICAgbm9zaWRlZWZmZWN0KQorICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCisgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KKwljb250aW51ZQorICAgICAgZWxzZQorCWJyZWFrCisgICAgICBmaQorICAgICAgOzsKKyAgICBub25lKSBicmVhayA7OworICAgIGVzYWMKKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQorICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLgorICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAorICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwKKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCisgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorICAgICAgIGdyZXAgc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCisgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCisgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCisgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisgICAgICAgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCisgICAgICAgIGJyZWFrCisgICAgICBmaQorICAgIGZpCisgIGRvbmUKKworICBjZCAuLgorICBybSAtcmYgY29uZnRlc3QuZGlyCitlbHNlCisgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKK2ZpCitdKQorQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZV0pCitBTV9DT05ESVRJT05BTChbYW1fX2Zhc3RkZXAkMV0sIFsKKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKyAgJiYgdGVzdCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzNdKQorXSkKKworCisjIEFNX1NFVF9ERVBESVIKKyMgLS0tLS0tLS0tLS0tLQorIyBDaG9vc2UgYSBkaXJlY3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KKyMgVGhpcyBtYWNybyBpcyBBQ19SRVFVSVJFZCBpbiBfQU1fREVQRU5ERU5DSUVTCitBQ19ERUZVTihbQU1fU0VUX0RFUERJUl0sCitbQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKK0FDX1NVQlNUKFtERVBESVJdLCBbIiR7YW1fX2xlYWRpbmdfZG90fWRlcHMiXSlkbmwKK10pCisKKworIyBBTV9ERVBfVFJBQ0sKKyMgLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbQU1fREVQX1RSQUNLXSwKK1tBQ19BUkdfRU5BQkxFKGRlcGVuZGVuY3ktdHJhY2tpbmcsCitbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCisgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzXSkKK2lmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgorICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgorICBBTURFUEJBQ0tTTEFTSD0nXCcKK2ZpCitBTV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vXSkKK0FDX1NVQlNUKFtBTURFUEJBQ0tTTEFTSF0pCitdKQorCisjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1CisjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyNzZXJpYWwgMworCisjIF9BTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0FDX0RFRlVOKFtfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorW2ZvciBtZiBpbiAkQ09ORklHX0ZJTEVTOyBkbworICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgorICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8nYAorICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgorICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywgYnV0CisgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250ZW50LgorICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcworICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgorICAjIFNvIGxldCdzIGdyZXAgd2hvbGUgZmlsZS4KKyAgaWYgZ3JlcCAnXiMuKmdlbmVyYXRlZCBieSBhdXRvbWFrZScgJG1mID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICBkaXJwYXJ0PWBBU19ESVJOQU1FKCIkbWYiKWAKKyAgZWxzZQorICAgIGNvbnRpbnVlCisgIGZpCisgICMgRXh0cmFjdCB0aGUgZGVmaW5pdGlvbiBvZiBERVBESVIsIGFtX19pbmNsdWRlLCBhbmQgYW1fX3F1b3RlCisgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtlJy4KKyAgREVQRElSPWBzZWQgLW4gJ3MvXkRFUERJUiA9IC8vcCcgPCAiJG1mImAKKyAgdGVzdCAteiAiJERFUERJUiIgJiYgY29udGludWUKKyAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1fX2luY2x1ZGUgPSAvL3AnIDwgIiRtZiJgCisgIHRlc3QgLXogImFtX19pbmNsdWRlIiAmJiBjb250aW51ZQorICBhbV9fcXVvdGU9YHNlZCAtbiAncy9eYW1fX3F1b3RlID0gLy9wJyA8ICIkbWYiYAorICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9yIGFuIHVuZGVyc2NvcmU7IGV4cGFuZCBpdAorICBVPWBzZWQgLW4gJ3MvXlUgPSAvL3AnIDwgIiRtZiJgCisgICMgRmluZCBhbGwgZGVwZW5kZW5jeSBvdXRwdXQgZmlsZXMsIHRoZXkgYXJlIGluY2x1ZGVkIGZpbGVzIHdpdGgKKyAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNlIGJlY2F1c2UgaXQgaXMgdGhlCisgICMgc2ltcGxlc3QgYXBwcm9hY2ggdG8gY2hhbmdpbmcgJChERVBESVIpIHRvIGl0cyBhY3R1YWwgdmFsdWUgaW4gdGhlCisgICMgZXhwYW5zaW9uLgorICBmb3IgZmlsZSBpbiBgc2VkIC1uICIKKyAgICBzL14kYW1fX2luY2x1ZGUgJGFtX19xdW90ZVwoLiooREVQRElSKS4qXCkkYW1fX3F1b3RlIickL1wxL3AnIDwiJG1mIiB8IFwKKyAgICAgICBzZWQgLWUgJ3MvXCQoREVQRElSKS8nIiRERVBESVIiJy9nJyAtZSAncy9cJFUvJyIkVSInL2cnYDsgZG8KKyAgICAjIE1ha2Ugc3VyZSB0aGUgZGlyZWN0b3J5IGV4aXN0cy4KKyAgICB0ZXN0IC1mICIkZGlycGFydC8kZmlsZSIgJiYgY29udGludWUKKyAgICBmZGlyPWBBU19ESVJOQU1FKFsiJGZpbGUiXSlgCisgICAgQVNfTUtESVJfUChbJGRpcnBhcnQvJGZkaXJdKQorICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisgICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCisgIGRvbmUKK2RvbmUKK10pIyBfQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKKworCisjIEFNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRoaXMgbWFjcm8gc2hvdWxkIG9ubHkgYmUgaW52b2tlZCBvbmNlIC0tIHVzZSB2aWEgQUNfUkVRVUlSRS4KKyMKKyMgVGhpcyBjb2RlIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiBhdXRvbWF0aWMgZGVwZW5kZW5jeSB0cmFja2luZworIyBpcyBlbmFibGVkLiAgRklYTUUuICBUaGlzIGNyZWF0ZXMgZWFjaCBgLlAnIGZpbGUgdGhhdCB3ZSB3aWxsCisjIG5lZWQgaW4gb3JkZXIgdG8gYm9vdHN0cmFwIHRoZSBkZXBlbmRlbmN5IGhhbmRsaW5nIGNvZGUuCitBQ19ERUZVTihbQU1fT1VUUFVUX0RFUEVOREVOQ1lfQ09NTUFORFNdLAorW0FDX0NPTkZJR19DT01NQU5EUyhbZGVwZmlsZXNdLAorICAgICBbdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKKyAgICAgW0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4X2RpciJdKQorXSkKKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDUKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgOAorCisjIEFNX0NPTkZJR19IRUFERVIgaXMgb2Jzb2xldGUuICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBBQ19DT05GSUdfSEVBREVSUy4KK0FVX0RFRlVOKFtBTV9DT05GSUdfSEVBREVSXSwgW0FDX0NPTkZJR19IRUFERVJTKCRAKV0pCisKKyMgRG8gYWxsIHRoZSB3b3JrIGZvciBBdXRvbWFrZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgMTIKKworIyBUaGlzIG1hY3JvIGFjdHVhbGx5IGRvZXMgdG9vIG11Y2guICBTb21lIGNoZWNrcyBhcmUgb25seSBuZWVkZWQgaWYKKyMgeW91ciBwYWNrYWdlIGRvZXMgY2VydGFpbiB0aGluZ3MuICBCdXQgdGhpcyBpc24ndCByZWFsbHkgYSBiaWcgZGVhbC4KKworIyBBTV9JTklUX0FVVE9NQUtFKFBBQ0tBR0UsIFZFUlNJT04sIFtOTy1ERUZJTkVdKQorIyBBTV9JTklUX0FVVE9NQUtFKFtPUFRJT05TXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGhlIGNhbGwgd2l0aCBQQUNLQUdFIGFuZCBWRVJTSU9OIGFyZ3VtZW50cyBpcyB0aGUgb2xkIHN0eWxlCisjIGNhbGwgKHByZSBhdXRvY29uZi0yLjUwKSwgd2hpY2ggaXMgYmVpbmcgcGhhc2VkIG91dC4gIFBBQ0tBR0UKKyMgYW5kIFZFUlNJT04gc2hvdWxkIG5vdyBiZSBwYXNzZWQgdG8gQUNfSU5JVCBhbmQgcmVtb3ZlZCBmcm9tCisjIHRoZSBjYWxsIHRvIEFNX0lOSVRfQVVUT01BS0UuCisjIFdlIHN1cHBvcnQgYm90aCBjYWxsIHN0eWxlcyBmb3IgdGhlIHRyYW5zaXRpb24uICBBZnRlcgorIyB0aGUgbmV4dCBBdXRvbWFrZSByZWxlYXNlLCBBdXRvY29uZiBjYW4gbWFrZSB0aGUgQUNfSU5JVAorIyBhcmd1bWVudHMgbWFuZGF0b3J5LCBhbmQgdGhlbiB3ZSBjYW4gZGVwZW5kIG9uIGEgbmV3IEF1dG9jb25mCisjIHJlbGVhc2UgYW5kIGRyb3AgdGhlIG9sZCBjYWxsIHN1cHBvcnQuCitBQ19ERUZVTihbQU1fSU5JVF9BVVRPTUFLRV0sCitbQUNfUFJFUkVRKFsyLjU4XSlkbmwKK2RubCBBdXRvY29uZiB3YW50cyB0byBkaXNhbGxvdyBBTV8gbmFtZXMuICBXZSBleHBsaWNpdGx5IGFsbG93CitkbmwgdGhlIG9uZXMgd2UgY2FyZSBhYm91dC4KK200X3BhdHRlcm5fYWxsb3coW15BTV9bQS1aXStGTEFHUyRdKWRubAorQUNfUkVRVUlSRShbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0pZG5sCitBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAorIyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCitpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiICYmCisgICB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgorICBBQ19NU0dfRVJST1IoW3NvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gIm1ha2UgZGlzdGNsZWFuIiB0aGVyZSBmaXJzdF0pCitmaQorCisjIHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKK2lmIHRlc3QgLXogIiRDWUdQQVRIX1ciOyB0aGVuCisgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKKyAgZWxzZQorICAgIENZR1BBVEhfVz1lY2hvCisgIGZpCitmaQorQUNfU1VCU1QoW0NZR1BBVEhfV10pCisKKyMgRGVmaW5lIHRoZSBpZGVudGl0eSBvZiB0aGUgcGFja2FnZS4KK2RubCBEaXN0aW5ndWlzaCBiZXR3ZWVuIG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxlIGNhbGxzLgorbTRfaWZ2YWwoWyQyXSwKK1ttNF9pZnZhbChbJDNdLCBbX0FNX1NFVF9PUFRJT04oW25vLWRlZmluZV0pXSlkbmwKKyBBQ19TVUJTVChbUEFDS0FHRV0sIFskMV0pZG5sCisgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJDJdKV0sCitbX0FNX1NFVF9PUFRJT05TKFskMV0pZG5sCisgQUNfU1VCU1QoW1BBQ0tBR0VdLCBbJ0FDX1BBQ0tBR0VfVEFSTkFNRSddKWRubAorIEFDX1NVQlNUKFtWRVJTSU9OXSwgWydBQ19QQUNLQUdFX1ZFUlNJT04nXSldKWRubAorCitfQU1fSUZfT1BUSU9OKFtuby1kZWZpbmVdLCwKK1tBQ19ERUZJTkVfVU5RVU9URUQoUEFDS0FHRSwgIiRQQUNLQUdFIiwgW05hbWUgb2YgcGFja2FnZV0pCisgQUNfREVGSU5FX1VOUVVPVEVEKFZFUlNJT04sICIkVkVSU0lPTiIsIFtWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlXSldKWRubAorCisjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCitBQ19SRVFVSVJFKFtBTV9TQU5JVFlfQ0hFQ0tdKWRubAorQUNfUkVRVUlSRShbQUNfQVJHX1BST0dSQU1dKWRubAorQU1fTUlTU0lOR19QUk9HKEFDTE9DQUwsIGFjbG9jYWwtJHthbV9fYXBpX3ZlcnNpb259KQorQU1fTUlTU0lOR19QUk9HKEFVVE9DT05GLCBhdXRvY29uZikKK0FNX01JU1NJTkdfUFJPRyhBVVRPTUFLRSwgYXV0b21ha2UtJHthbV9fYXBpX3ZlcnNpb259KQorQU1fTUlTU0lOR19QUk9HKEFVVE9IRUFERVIsIGF1dG9oZWFkZXIpCitBTV9NSVNTSU5HX1BST0coTUFLRUlORk8sIG1ha2VpbmZvKQorQU1fUFJPR19JTlNUQUxMX1NICitBTV9QUk9HX0lOU1RBTExfU1RSSVAKK0FDX1JFUVVJUkUoW0FNX1BST0dfTUtESVJfUF0pZG5sCisjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgorIyBzb21lIHBsYXRmb3Jtcy4KK0FDX1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKK0FDX1JFUVVJUkUoW0FDX1BST0dfTUFLRV9TRVRdKWRubAorQUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKK19BTV9JRl9PUFRJT04oW3Rhci11c3Rhcl0sIFtfQU1fUFJPR19UQVIoW3VzdGFyXSldLAorICAgICAgICAgICAgICBbX0FNX0lGX09QVElPTihbdGFyLXBheF0sIFtfQU1fUFJPR19UQVIoW3BheF0pXSwKKwkgICAgICAJCSAgICAgW19BTV9QUk9HX1RBUihbdjddKV0pXSkKK19BTV9JRl9PUFRJT04oW25vLWRlcGVuZGVuY2llc10sLAorW0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NDXSwKKyAgICAgICAgICAgICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKENDKV0sCisgICAgICAgICAgICAgICAgICBbZGVmaW5lKFtBQ19QUk9HX0NDXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmbihbQUNfUFJPR19DQ10pW19BTV9ERVBFTkRFTkNJRVMoQ0MpXSldKWRubAorQUNfUFJPVklERV9JRkVMU0UoW0FDX1BST0dfQ1hYXSwKKyAgICAgICAgICAgICAgICAgIFtfQU1fREVQRU5ERU5DSUVTKENYWCldLAorICAgICAgICAgICAgICAgICAgW2RlZmluZShbQUNfUFJPR19DWFhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0pXSlkbmwKK10pCitdKQorCisKKyMgV2hlbiBjb25maWcuc3RhdHVzIGdlbmVyYXRlcyBhIGhlYWRlciwgd2UgbXVzdCB1cGRhdGUgdGhlIHN0YW1wLWggZmlsZS4KKyMgVGhpcyBmaWxlIHJlc2lkZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBjb25maWcgaGVhZGVyCisjIHRoYXQgaXMgZ2VuZXJhdGVkLiAgVGhlIHN0YW1wIGZpbGVzIGFyZSBudW1iZXJlZCB0byBoYXZlIGRpZmZlcmVudCBuYW1lcy4KKworIyBBdXRvY29uZiBjYWxscyBfQUNfQU1fQ09ORklHX0hFQURFUl9IT09LICh3aGVuIGRlZmluZWQpIGluIHRoZQorIyBsb29wIHdoZXJlIGNvbmZpZy5zdGF0dXMgY3JlYXRlcyB0aGUgaGVhZGVycywgc28gd2UgY2FuIGdlbmVyYXRlCisjIG91ciBzdGFtcCBmaWxlcyB0aGVyZS4KK0FDX0RFRlVOKFtfQUNfQU1fQ09ORklHX0hFQURFUl9IT09LXSwKK1sjIENvbXB1dGUgJDEncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCitfYW1fc3RhbXBfY291bnQ9MQorZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCisgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKyAgICAkMSB8ICQxOiogKQorICAgICAgYnJlYWsgOzsKKyAgICAqICkKKyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKKyAgZXNhYworZG9uZQorZWNobyAidGltZXN0YW1wIGZvciAkMSIgPmBBU19ESVJOQU1FKFskMV0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgQU1fUFJPR19JTlNUQUxMX1NICisjIC0tLS0tLS0tLS0tLS0tLS0tLQorIyBEZWZpbmUgJGluc3RhbGxfc2guCitBQ19ERUZVTihbQU1fUFJPR19JTlNUQUxMX1NIXSwKK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCitpbnN0YWxsX3NoPSR7aW5zdGFsbF9zaC0iJGFtX2F1eF9kaXIvaW5zdGFsbC1zaCJ9CitBQ19TVUJTVChpbnN0YWxsX3NoKV0pCisKKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCAyCisKKyMgQ2hlY2sgd2hldGhlciB0aGUgdW5kZXJseWluZyBmaWxlLXN5c3RlbSBzdXBwb3J0cyBmaWxlbmFtZXMKKyMgd2l0aCBhIGxlYWRpbmcgZG90LiAgRm9yIGluc3RhbmNlIE1TLURPUyBkb2Vzbid0LgorQUNfREVGVU4oW0FNX1NFVF9MRUFESU5HX0RPVF0sCitbcm0gLXJmIC50c3QgMj4vZGV2L251bGwKK21rZGlyIC50c3QgMj4vZGV2L251bGwKK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgorICBhbV9fbGVhZGluZ19kb3Q9LgorZWxzZQorICBhbV9fbGVhZGluZ19kb3Q9XworZmkKK3JtZGlyIC50c3QgMj4vZGV2L251bGwKK0FDX1NVQlNUKFthbV9fbGVhZGluZ19kb3RdKV0pCisKKyMgQWRkIC0tZW5hYmxlLW1haW50YWluZXItbW9kZSBvcHRpb24gdG8gY29uZmlndXJlLiAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKyMgRnJvbSBKaW0gTWV5ZXJpbmcKKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTgsIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgNAorCitBQ19ERUZVTihbQU1fTUFJTlRBSU5FUl9NT0RFXSwKK1tBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gZW5hYmxlIG1haW50YWluZXItc3BlY2lmaWMgcG9ydGlvbnMgb2YgTWFrZWZpbGVzXSkKKyAgZG5sIG1haW50YWluZXItbW9kZSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0CisgIEFDX0FSR19FTkFCTEUobWFpbnRhaW5lci1tb2RlLAorWyAgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlICBlbmFibGUgbWFrZSBydWxlcyBhbmQgZGVwZW5kZW5jaWVzIG5vdCB1c2VmdWwKKwkJCSAgKGFuZCBzb21ldGltZXMgY29uZnVzaW5nKSB0byB0aGUgY2FzdWFsIGluc3RhbGxlcl0sCisgICAgICBVU0VfTUFJTlRBSU5FUl9NT0RFPSRlbmFibGV2YWwsCisgICAgICBVU0VfTUFJTlRBSU5FUl9NT0RFPW5vKQorICBBQ19NU0dfUkVTVUxUKFskVVNFX01BSU5UQUlORVJfTU9ERV0pCisgIEFNX0NPTkRJVElPTkFMKE1BSU5UQUlORVJfTU9ERSwgW3Rlc3QgJFVTRV9NQUlOVEFJTkVSX01PREUgPSB5ZXNdKQorICBNQUlOVD0kTUFJTlRBSU5FUl9NT0RFX1RSVUUKKyAgQUNfU1VCU1QoTUFJTlQpZG5sCitdCispCisKK0FVX0RFRlVOKFtqbV9NQUlOVEFJTkVSX01PREVdLCBbQU1fTUFJTlRBSU5FUl9NT0RFXSkKKworIyBDaGVjayB0byBzZWUgaG93ICdtYWtlJyB0cmVhdHMgaW5jbHVkZXMuCSAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDMKKworIyBBTV9NQUtFX0lOQ0xVREUoKQorIyAtLS0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayB0byBzZWUgaG93IG1ha2UgdHJlYXRzIGluY2x1ZGVzLgorQUNfREVGVU4oW0FNX01BS0VfSU5DTFVERV0sCitbYW1fbWFrZT0ke01BS0UtbWFrZX0KK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKK2FtX19kb2l0OgorCUBlY2hvIGRvbmUKKy5QSE9OWTogYW1fX2RvaXQKK0VORAorIyBJZiB3ZSBkb24ndCBmaW5kIGFuIGluY2x1ZGUgZGlyZWN0aXZlLCBqdXN0IGNvbW1lbnQgb3V0IHRoZSBjb2RlLgorQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlXSkKK2FtX19pbmNsdWRlPSIjIgorYW1fX3F1b3RlPQorX2FtX3Jlc3VsdD1ub25lCisjIEZpcnN0IHRyeSBHTlUgbWFrZSBzdHlsZSBpbmNsdWRlLgorZWNobyAiaW5jbHVkZSBjb25maW5jIiA+IGNvbmZtZgorIyBXZSBncmVwIG91dCBgRW50ZXJpbmcgZGlyZWN0b3J5JyBhbmQgYExlYXZpbmcgZGlyZWN0b3J5JworIyBtZXNzYWdlcyB3aGljaCBjYW4gb2NjdXIgaWYgYHcnIGVuZHMgdXAgaW4gTUFLRUZMQUdTLgorIyBJbiBwYXJ0aWN1bGFyIHdlIGRvbid0IGxvb2sgYXQgYF5tYWtlOicgYmVjYXVzZSBHTlUgbWFrZSBtaWdodAorIyBiZSBpbnZva2VkIHVuZGVyIHNvbWUgb3RoZXIgbmFtZSAodXN1YWxseSAiZ21ha2UiKSwgaW4gd2hpY2gKKyMgY2FzZSBpdCBwcmludHMgaXRzIG5ldyBuYW1lIGluc3RlYWQgb2YgYG1ha2UnLgoraWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGwgfCBncmVwIC12ICdpbmcgZGlyZWN0b3J5J2AiID0gImRvbmUiOyB0aGVuCisgICBhbV9faW5jbHVkZT1pbmNsdWRlCisgICBhbV9fcXVvdGU9CisgICBfYW1fcmVzdWx0PUdOVQorZmkKKyMgTm93IHRyeSBCU0QgbWFrZSBzdHlsZSBpbmNsdWRlLgoraWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhlbgorICAgZWNobyAnLmluY2x1ZGUgImNvbmZpbmMiJyA+IGNvbmZtZgorICAgaWYgdGVzdCAiYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIiA9ICJkb25lIjsgdGhlbgorICAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKKyAgICAgIGFtX19xdW90ZT0iXCIiCisgICAgICBfYW1fcmVzdWx0PUJTRAorICAgZmkKK2ZpCitBQ19TVUJTVChbYW1fX2luY2x1ZGVdKQorQUNfU1VCU1QoW2FtX19xdW90ZV0pCitBQ19NU0dfUkVTVUxUKFskX2FtX3Jlc3VsdF0pCitybSAtZiBjb25maW5jIGNvbmZtZgorXSkKKworIyBGYWtlIHRoZSBleGlzdGVuY2Ugb2YgcHJvZ3JhbXMgdGhhdCBHTlUgbWFpbnRhaW5lcnMgdXNlLiAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMTk5NywgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNQorIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCA0CisKKyMgQU1fTUlTU0lOR19QUk9HKE5BTUUsIFBST0dSQU0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW0FNX01JU1NJTkdfUFJPR10sCitbQUNfUkVRVUlSRShbQU1fTUlTU0lOR19IQVNfUlVOXSkKKyQxPSR7JDEtIiR7YW1fbWlzc2luZ19ydW59JDIifQorQUNfU1VCU1QoJDEpXSkKKworCisjIEFNX01JU1NJTkdfSEFTX1JVTgorIyAtLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGVmaW5lIE1JU1NJTkcgaWYgbm90IGRlZmluZWQgc28gZmFyIGFuZCB0ZXN0IGlmIGl0IHN1cHBvcnRzIC0tcnVuLgorIyBJZiBpdCBkb2VzLCBzZXQgYW1fbWlzc2luZ19ydW4gdG8gdXNlIGl0LCBvdGhlcndpc2UsIHRvIG5vdGhpbmcuCitBQ19ERUZVTihbQU1fTUlTU0lOR19IQVNfUlVOXSwKK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCit0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKKyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAoraWYgZXZhbCAiJE1JU1NJTkcgLS1ydW4gdHJ1ZSI7IHRoZW4KKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIKK2Vsc2UKKyAgYW1fbWlzc2luZ19ydW49CisgIEFDX01TR19XQVJOKFtgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZ10pCitmaQorXSkKKworIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgQU1fUFJPR19NS0RJUl9QCisjIC0tLS0tLS0tLS0tLS0tLQorIyBDaGVjayB3aGV0aGVyIGBta2RpciAtcCcgaXMgc3VwcG9ydGVkLCBmYWxsYmFjayB0byBta2luc3RhbGxkaXJzIG90aGVyd2lzZS4KKyMKKyMgQXV0b21ha2UgMS44IHVzZWQgYG1rZGlyIC1tIDA3NTUgLXAgLS0nIHRvIGVuc3VyZSB0aGF0IGRpcmVjdG9yaWVzCisjIGNyZWF0ZWQgYnkgYG1ha2UgaW5zdGFsbCcgYXJlIGFsd2F5cyB3b3JsZCByZWFkYWJsZSwgZXZlbiBpZiB0aGUKKyMgaW5zdGFsbGVyIGhhcHBlbnMgdG8gaGF2ZSBhbiBvdmVybHkgcmVzdHJpY3RpdmUgdW1hc2sgKGUuZy4gMDc3KS4KKyMgVGhpcyB3YXMgYSBtaXN0YWtlLiAgVGhlcmUgYXJlIGF0IGxlYXN0IHR3byByZWFzb25zIHdoeSB3ZSBtdXN0IG5vdAorIyB1c2UgYC1tIDA3NTUnOgorIyAgIC0gaXQgY2F1c2VzIHNwZWNpYWwgYml0cyBsaWtlIFNHSUQgdG8gYmUgaWdub3JlZCwKKyMgICAtIGl0IG1heSBiZSB0b28gcmVzdHJpY3RpdmUgKHNvbWUgc2V0dXBzIGV4cGVjdCA3NzUgZGlyZWN0b3JpZXMpLgorIworIyBEbyBub3QgdXNlIC1tIDA3NTUgYW5kIGxldCBwZW9wbGUgY2hvb3NlIHdoYXRldmVyIHRoZXkgZXhwZWN0IGJ5CisjIHNldHRpbmcgdW1hc2suCisjCisjIFdlIGNhbm5vdCBhY2NlcHQgYW55IGltcGxlbWVudGF0aW9uIG9mIGBta2RpcicgdGhhdCByZWNvZ25pemVzIGAtcCcuCisjIFNvbWUgaW1wbGVtZW50YXRpb25zIChzdWNoIGFzIFNvbGFyaXMgOCdzKSBhcmUgbm90IHRocmVhZC1zYWZlOiBpZiBhCisjIHBhcmFsbGVsIG1ha2UgdHJpZXMgdG8gcnVuIGBta2RpciAtcCBhL2InIGFuZCBgbWtkaXIgLXAgYS9jJworIyBjb25jdXJyZW50bHksIGJvdGggdmVyc2lvbiBjYW4gZGV0ZWN0IHRoYXQgYS8gaXMgbWlzc2luZywgYnV0IG9ubHkKKyMgb25lIGNhbiBjcmVhdGUgaXQgYW5kIHRoZSBvdGhlciB3aWxsIGVycm9yIG91dC4gIENvbnNlcXVlbnRseSB3ZQorIyByZXN0cmljdCBvdXJzZWx2ZXMgdG8gR05VIG1ha2UgKHVzaW5nIHRoZSAtLXZlcnNpb24gb3B0aW9uIGVuc3VyZXMKKyMgdGhpcy4pCitBQ19ERUZVTihbQU1fUFJPR19NS0RJUl9QXSwKK1tpZiBta2RpciAtcCAtLXZlcnNpb24gLiA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAhIC1kIC4vLS12ZXJzaW9uOyB0aGVuCisgICMgV2UgdXNlZCB0byBrZWVwaW5nIHRoZSBgLicgYXMgZmlyc3QgYXJndW1lbnQsIGluIG9yZGVyIHRvCisgICMgYWxsb3cgJChta2Rpcl9wKSB0byBiZSB1c2VkIHdpdGhvdXQgYXJndW1lbnQuICBBcyBpbgorICAjICAgJChta2Rpcl9wKSAkKHNvbWVkaXIpCisgICMgd2hlcmUgJChzb21lZGlyKSBpcyBjb25kaXRpb25hbGx5IGRlZmluZWQuICBIb3dldmVyIHRoaXMgaXMgd3JvbmcKKyAgIyBmb3IgdHdvIHJlYXNvbnM6CisgICMgIDEuIGlmIHRoZSBwYWNrYWdlIGlzIGluc3RhbGxlZCBieSBhIHVzZXIgd2hvIGNhbm5vdCB3cml0ZSBgLicKKyAgIyAgICAgbWFrZSBpbnN0YWxsIHdpbGwgZmFpbCwKKyAgIyAgMi4gdGhlIGFib3ZlIGNvbW1lbnQgc2hvdWxkIG1vc3QgY2VydGFpbmx5IHJlYWQKKyAgIyAgICAgJChta2Rpcl9wKSAkKERFU1RESVIpJChzb21lZGlyKQorICAjICAgICBzbyBpdCBkb2VzIG5vdCB3b3JrIHdoZW4gJChzb21lZGlyKSBpcyB1bmRlZmluZWQgYW5kCisgICMgICAgICQoREVTVERJUikgaXMgbm90LgorICAjICBUbyBzdXBwb3J0IHRoZSBsYXR0ZXIgY2FzZSwgd2UgaGF2ZSB0byB3cml0ZQorICAjICAgICB0ZXN0IC16ICIkKHNvbWVkaXIpIiB8fCAkKG1rZGlyX3ApICQoREVTVERJUikkKHNvbWVkaXIpLAorICAjICBzbyB0aGUgYC4nIHRyaWNrIGlzIHBvaW50bGVzcy4KKyAgbWtkaXJfcD0nbWtkaXIgLXAgLS0nCitlbHNlCisgICMgT24gTmV4dFN0ZXAgYW5kIE9wZW5TdGVwLCB0aGUgYG1rZGlyJyBjb21tYW5kIGRvZXMgbm90CisgICMgcmVjb2duaXplIGFueSBvcHRpb24uICBJdCB3aWxsIGludGVycHJldCBhbGwgb3B0aW9ucyBhcworICAjIGRpcmVjdG9yaWVzIHRvIGNyZWF0ZSwgYW5kIHRoZW4gYWJvcnQgYmVjYXVzZSBgLicgYWxyZWFkeQorICAjIGV4aXN0cy4KKyAgZm9yIGQgaW4gLi8tcCAuLy0tdmVyc2lvbjsKKyAgZG8KKyAgICB0ZXN0IC1kICRkICYmIHJtZGlyICRkCisgIGRvbmUKKyAgIyAkKG1raW5zdGFsbGRpcnMpIGlzIGRlZmluZWQgYnkgQXV0b21ha2UgaWYgbWtpbnN0YWxsZGlycyBleGlzdHMuCisgIGlmIHRlc3QgLWYgIiRhY19hdXhfZGlyL21raW5zdGFsbGRpcnMiOyB0aGVuCisgICAgbWtkaXJfcD0nJChta2luc3RhbGxkaXJzKScKKyAgZWxzZQorICAgIG1rZGlyX3A9JyQoaW5zdGFsbF9zaCkgLWQnCisgIGZpCitmaQorQUNfU1VCU1QoW21rZGlyX3BdKV0pCisKKyMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDMKKworIyBfQU1fTUFOR0xFX09QVElPTihOQU1FKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW19BTV9NQU5HTEVfT1BUSU9OXSwKK1tbX0FNX09QVElPTl9dbTRfYnBhdHN1YnN0KCQxLCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQorCisjIF9BTV9TRVRfT1BUSU9OKE5BTUUpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTZXQgb3B0aW9uIE5BTUUuICBQcmVzZW50bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmluaW5nIGEgZmxhZyBmb3IgdGhpcyBvcHRpb24uCitBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAorW200X2RlZmluZShfQU1fTUFOR0xFX09QVElPTihbJDFdKSwgMSldKQorCisjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE9QVElPTlMgaXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBBdXRvbWFrZSBvcHRpb25zLgorQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OU10sCitbQUNfRk9SRUFDSChbX0FNX09wdGlvbl0sIFskMV0sIFtfQU1fU0VUX09QVElPTihfQU1fT3B0aW9uKV0pXSkKKworIyBfQU1fSUZfT1BUSU9OKE9QVElPTiwgSUYtU0VULCBbSUYtTk9ULVNFVF0pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRXhlY3V0ZSBJRi1TRVQgaWYgT1BUSU9OIGlzIHNldCwgSUYtTk9ULVNFVCBvdGhlcndpc2UuCitBQ19ERUZVTihbX0FNX0lGX09QVElPTl0sCitbbTRfaWZzZXQoX0FNX01BTkdMRV9PUFRJT04oWyQxXSksIFskMl0sIFskM10pXSkKKworIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNQorIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgorCisjIHNlcmlhbCA0CisKKyMgQU1fU0FOSVRZX0NIRUNLCisjIC0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW0FNX1NBTklUWV9DSEVDS10sCitbQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmVdKQorIyBKdXN0IGluIGNhc2UKK3NsZWVwIDEKK2VjaG8gdGltZXN0YW1wID4gY29uZnRlc3QuZmlsZQorIyBEbyBgc2V0JyBpbiBhIHN1YnNoZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdGhlIGN1cnJlbnQgc2hlbGwncworIyBhcmd1bWVudHMuICBNdXN0IHRyeSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBhCisjIHN5bWxpbms7IHNvbWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxpbmtzCisjIChlZyBGcmVlQlNEIHJldHVybnMgdGhlIG1vZCB0aW1lIG9mIHRoZSBzeW1saW5rJ3MgY29udGFpbmluZworIyBkaXJlY3RvcnkpLgoraWYgKAorICAgc2V0IFggYGxzIC1MdCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKKyAgIGlmIHRlc3QgIiRbKl0iID0gIlgiOyB0aGVuCisgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorICAgICAgc2V0IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGVgCisgICBmaQorICAgcm0gLWYgY29uZnRlc3QuZmlsZQorICAgaWYgdGVzdCAiJFsqXSIgIT0gIlggJHNyY2Rpci9jb25maWd1cmUgY29uZnRlc3QuZmlsZSIgXAorICAgICAgJiYgdGVzdCAiJFsqXSIgIT0gIlggY29uZnRlc3QuZmlsZSAkc3JjZGlyL2NvbmZpZ3VyZSI7IHRoZW4KKworICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgorICAgICAgIyBpZiwgZm9yIGluc3RhbmNlLCBDT05GSUdfU0hFTEwgaXMgYmFzaCBhbmQgaXQgaW5oZXJpdHMgYQorICAgICAgIyBicm9rZW4gbHMgYWxpYXMgZnJvbSB0aGUgZW52aXJvbm1lbnQuICBUaGlzIGhhcyBhY3R1YWxseQorICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgorICAgICAgQUNfTVNHX0VSUk9SKFtscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCithbGlhcyBpbiB5b3VyIGVudmlyb25tZW50XSkKKyAgIGZpCisKKyAgIHRlc3QgIiRbMl0iID0gY29uZnRlc3QuZmlsZQorICAgKQordGhlbgorICAgIyBPay4KKyAgIDoKK2Vsc2UKKyAgIEFDX01TR19FUlJPUihbbmV3bHkgY3JlYXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4gZGlzdHJpYnV0ZWQgZmlsZXMhCitDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCitmaQorQUNfTVNHX1JFU1VMVCh5ZXMpXSkKKworIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAorIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgQU1fUFJPR19JTlNUQUxMX1NUUklQCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBPbmUgaXNzdWUgd2l0aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKKyMgc3BlY2lmeSB0aGUgcHJvZ3JhbSB1c2VkIHRvIHN0cmlwIGJpbmFyaWVzLiAgVGhpcyBpcyBlc3BlY2lhbGx5CisjIGFubm95aW5nIGluIGNyb3NzLWNvbXBpbGluZyBlbnZpcm9ubWVudHMsIHdoZXJlIHRoZSBidWlsZCdzIHN0cmlwCisjIGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFyaWVzLgorIyBGb3J0dW5hdGVseSBpbnN0YWxsLXNoIHdpbGwgaG9ub3IgYSBTVFJJUFBST0cgdmFyaWFibGUsIHNvIHdlCisjIGFsd2F5cyB1c2UgaW5zdGFsbC1zaCBpbiBgbWFrZSBpbnN0YWxsLXN0cmlwJywgYW5kIGluaXRpYWxpemUKKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2VyKS4KK0FDX0RFRlVOKFtBTV9QUk9HX0lOU1RBTExfU1RSSVBdLAorW0FDX1JFUVVJUkUoW0FNX1BST0dfSU5TVEFMTF9TSF0pZG5sCisjIEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdoZW4gdGhlIHVzZXIKKyMgcnVuIGBtYWtlIGluc3RhbGwtc3RyaXAnLiAgSG93ZXZlciBgc3RyaXAnIG1pZ2h0IG5vdCBiZSB0aGUgcmlnaHQKKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKKyMgd2lsbCBob25vciB0aGUgYFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCitkbmwgRG9uJ3QgdGVzdCBmb3IgJGNyb3NzX2NvbXBpbGluZyA9IHllcywgYmVjYXVzZSBpdCBtaWdodCBiZSBgbWF5YmUnLgoraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4KKyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBdLCA6KQorZmkKK0lOU1RBTExfU1RSSVBfUFJPR1JBTT0iXCR7U0hFTEx9IFwkKGluc3RhbGxfc2gpIC1jIC1zIgorQUNfU1VCU1QoW0lOU1RBTExfU1RSSVBfUFJPR1JBTV0pXSkKKworIyBDaGVjayBob3cgdG8gY3JlYXRlIGEgdGFyYmFsbC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQorCisjIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCisjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KKworIyBzZXJpYWwgMgorCisjIF9BTV9QUk9HX1RBUihGT1JNQVQpCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIGhvdyB0byBjcmVhdGUgYSB0YXJiYWxsIGluIGZvcm1hdCBGT1JNQVQuCisjIEZPUk1BVCBzaG91bGQgYmUgb25lIG9mIGB2NycsIGB1c3RhcicsIG9yIGBwYXgnLgorIworIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdGFyKSB0aGF0IGlzIGEgY29tbWFuZAorIyB3cml0aW5nIHRvIHN0ZG91dCBhIEZPUk1BVC10YXJiYWxsIGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeQorIyAkdGFyZGlyLgorIyAgICAgdGFyZGlyPWRpcmVjdG9yeSAmJiAkKGFtX190YXIpID4gcmVzdWx0LnRhcgorIworIyBTdWJzdGl0dXRlIGEgdmFyaWFibGUgJChhbV9fdW50YXIpIHRoYXQgZXh0cmFjdCBzdWNoCisjIGEgdGFyYmFsbCByZWFkIGZyb20gc3RkaW4uCisjICAgICAkKGFtX191bnRhcikgPCByZXN1bHQudGFyCitBQ19ERUZVTihbX0FNX1BST0dfVEFSXSwKK1sjIEFsd2F5cyBkZWZpbmUgQU1UQVIgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCitBTV9NSVNTSU5HX1BST0coW0FNVEFSXSwgW3Rhcl0pCittNF9pZihbJDFdLCBbdjddLAorICAgICBbYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInOyBhbV9fdW50YXI9JyR7QU1UQVJ9IHhmIC0nXSwKKyAgICAgW200X2Nhc2UoWyQxXSwgW3VzdGFyXSwsIFtwYXhdLCwKKyAgICAgICAgICAgICAgW200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCitBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBjcmVhdGUgYSAkMSB0YXIgYXJjaGl2ZV0pCisjIExvb3Agb3ZlciBhbGwga25vd24gbWV0aG9kcyB0byBjcmVhdGUgYSB0YXIgYXJjaGl2ZSB1bnRpbCBvbmUgd29ya3MuCitfYW1fdG9vbHM9J2dudXRhciBtNF9pZihbJDFdLCBbdXN0YXJdLCBbcGxhaW50YXJdKSBwYXggY3BpbyBub25lJworX2FtX3Rvb2xzPSR7YW1fY3ZfcHJvZ190YXJfJDEtJF9hbV90b29sc30KKyMgRG8gbm90IGZvbGQgdGhlIGFib3ZlIHR3byBsaW5lIGludG8gb25lLCBiZWNhdXNlIFRydTY0IHNoIGFuZAorIyBTb2xhcmlzIHNoIHdpbGwgbm90IGdyb2sgc3BhY2VzIGluIHRoZSByaHMgb2YgYC0nLgorZm9yIF9hbV90b29sIGluICRfYW1fdG9vbHMKK2RvCisgIGNhc2UgJF9hbV90b29sIGluCisgIGdudXRhcikKKyAgICBmb3IgX2FtX3RhciBpbiB0YXIgZ251dGFyIGd0YXI7CisgICAgZG8KKyAgICAgIEFNX1JVTl9MT0coWyRfYW1fdGFyIC0tdmVyc2lvbl0pICYmIGJyZWFrCisgICAgZG9uZQorICAgIGFtX190YXI9IiRfYW1fdGFyIC0tZm9ybWF0PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJCR0YXJkaXIiJworICAgIGFtX190YXJfPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9pZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQxXSkgLWNoZiAtICInIiR0YXJkaXIiJworICAgIGFtX191bnRhcj0iJF9hbV90YXIgLXhmIC0iCisgICAgOzsKKyAgcGxhaW50YXIpCisgICAgIyBNdXN0IHNraXAgR05VIHRhcjogaWYgaXQgZG9lcyBub3Qgc3VwcG9ydCAtLWZvcm1hdD0gaXQgZG9lc24ndCBjcmVhdGUKKyAgICAjIHVzdGFyIHRhcmJhbGwgZWl0aGVyLgorICAgICh0YXIgLS12ZXJzaW9uKSA+L2Rldi9udWxsIDI+JjEgJiYgY29udGludWUKKyAgICBhbV9fdGFyPSd0YXIgY2hmIC0gIiQkdGFyZGlyIicKKyAgICBhbV9fdGFyXz0ndGFyIGNoZiAtICIkdGFyZGlyIicKKyAgICBhbV9fdW50YXI9J3RhciB4ZiAtJworICAgIDs7CisgIHBheCkKKyAgICBhbV9fdGFyPSdwYXggLUwgLXggJDEgLXcgIiQkdGFyZGlyIicKKyAgICBhbV9fdGFyXz0ncGF4IC1MIC14ICQxIC13ICIkdGFyZGlyIicKKyAgICBhbV9fdW50YXI9J3BheCAtcicKKyAgICA7OworICBjcGlvKQorICAgIGFtX190YXI9J2ZpbmQgIiQkdGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQxIC1MJworICAgIGFtX190YXJfPSdmaW5kICIkdGFyZGlyIiAtcHJpbnQgfCBjcGlvIC1vIC1IICQxIC1MJworICAgIGFtX191bnRhcj0nY3BpbyAtaSAtSCAkMSAtZCcKKyAgICA7OworICBub25lKQorICAgIGFtX190YXI9ZmFsc2UKKyAgICBhbV9fdGFyXz1mYWxzZQorICAgIGFtX191bnRhcj1mYWxzZQorICAgIDs7CisgIGVzYWMKKworICAjIElmIHRoZSB2YWx1ZSB3YXMgY2FjaGVkLCBzdG9wIG5vdy4gIFdlIGp1c3Qgd2FudGVkIHRvIGhhdmUgYW1fX3RhcgorICAjIGFuZCBhbV9fdW50YXIgc2V0LgorICB0ZXN0IC1uICIke2FtX2N2X3Byb2dfdGFyXyQxfSIgJiYgYnJlYWsKKworICAjIHRhci91bnRhciBhIGR1bW15IGRpcmVjdG9yeSwgYW5kIHN0b3AgaWYgdGhlIGNvbW1hbmQgd29ya3MKKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgorICBta2RpciBjb25mdGVzdC5kaXIKKyAgZWNobyBHcmVwTWUgPiBjb25mdGVzdC5kaXIvZmlsZQorICBBTV9SVU5fTE9HKFt0YXJkaXI9Y29uZnRlc3QuZGlyICYmIGV2YWwgJGFtX190YXJfID5jb25mdGVzdC50YXJdKQorICBybSAtcmYgY29uZnRlc3QuZGlyCisgIGlmIHRlc3QgLXMgY29uZnRlc3QudGFyOyB0aGVuCisgICAgQU1fUlVOX0xPRyhbJGFtX191bnRhciA8Y29uZnRlc3QudGFyXSkKKyAgICBncmVwIEdyZXBNZSBjb25mdGVzdC5kaXIvZmlsZSA+L2Rldi9udWxsIDI+JjEgJiYgYnJlYWsKKyAgZmkKK2RvbmUKK3JtIC1yZiBjb25mdGVzdC5kaXIKKworQUNfQ0FDSEVfVkFMKFthbV9jdl9wcm9nX3Rhcl8kMV0sIFthbV9jdl9wcm9nX3Rhcl8kMT0kX2FtX3Rvb2xdKQorQUNfTVNHX1JFU1VMVChbJGFtX2N2X3Byb2dfdGFyXyQxXSldKQorQUNfU1VCU1QoW2FtX190YXJdKQorQUNfU1VCU1QoW2FtX191bnRhcl0pCitdKSAjIF9BTV9QUk9HX1RBUgorCittNF9pbmNsdWRlKFthY2luY2x1ZGUubTRdKQpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9hcmNoL2FybS9jb25maWcuaCBiL2FuZHJvaWQvYXJjaC9hcm0vY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk5ODlhZgotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvYXJjaC9hcm0vY29uZmlnLmgKQEAgLTAsMCArMSw0MjIgQEAKKy8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovCisvKiBjb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KKworLyogRGVmaW5lIGZvciB0aGUgQWxwaGEgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIEFMUEhBICovCisKKy8qIERlZmluZSBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuICovCisjZGVmaW5lIEFSTSAxCisKKy8qIERlZmluZSBmb3IgdGhlIEZyZWVCU0Qgb3BlcmF0aW5nIHN5c3RlbS4gKi8KKy8qICN1bmRlZiBGUkVFQlNEICovCisKKy8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkgc2V0IGJ5IGBnZXRncm91cHMnLiBVc3VhbGx5CisgICB0aGlzIGlzIGVpdGhlciBgaW50JyBvciBgZ2lkX3QnLiAqLworI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9yZWcuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9BU01fUkVHX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc2lnY29udGV4dC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc3lzbWlwcy5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX0FTTV9TWVNNSVBTX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfZXJybGlzdCcsIGFuZCB0byAwIGlmIHlvdQorICAgZG9uJ3QuICovCisjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3lzX3NpZ2xpc3QnLCBhbmQgdG8gMCBpZiB5b3UKKyAgIGRvbid0LiAqLworI2RlZmluZSBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYF9zeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQorICAgZG9uJ3QuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX0RFQ0xfX1NZU19TSUdMSVNUIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgorICAgKi8KKyNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZGVudHMnIGZ1bmN0aW9uLiAqLworLyogI3VuZGVmIEhBVkVfR0VUREVOVFMgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9JT0NUTFNfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYmFpby5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX0xJQkFJT19IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCisvKiAjdW5kZWYgSEFWRV9MSUJOU0wgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pY21wLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvaWZfcGFja2V0Lmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pbjYuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC91dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCisKKy8qIERlZmluZSBpZiBsb25nIGxvbmcgaXMgbGl0dGxlLWVuZGlhbi4gKi8KKyNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBsb25nIGxvbmcnLiAqLworI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCisKKy8qIERlZmluZSBpZiBvZmZfdCBpcyBhIGxvbmcgbG9uZy4gKi8KKy8qICN1bmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVCAqLworCisvKiBEZWZpbmUgaWYgcmxpbV90IGlzIGEgbG9uZyBsb25nLiAqLworLyogI3VuZGVmIEhBVkVfTE9OR19MT05HX1JMSU1fVCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1jdGwnIGZ1bmN0aW9uLiAqLworLyogI3VuZGVmIEhBVkVfTUNUTCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSBhIFNWUjQgTVAgdHlwZSBwcm9jZnMuIEkuRS4gL2Rldi94eHgvY3RsLAorICAgL2Rldi94eHgvc3RhdHVzLiBBbHNvIGltcGxpZXMgdGhhdCB5b3UgaGF2ZSB0aGUgcHJfbHdwIG1lbWJlciBpbiBwcnN0YXR1cy4KKyAgICovCisvKiAjdW5kZWYgSEFWRV9NUF9QUk9DRlMgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtcXVldWUuaD4gaGVhZGVyIGZpbGUuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4gKi8KKy8qICN1bmRlZiBIQVZFX05ESVJfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgU1ZSNCBhbmQgdGhlIHBvbGwgc3lzdGVtIGNhbGwgd29ya3Mgb24gL3Byb2MgZmlsZXMuICovCisvKiAjdW5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwb2xsLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1BPTExfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJjdGwnIGZ1bmN0aW9uLiAqLworI2RlZmluZSBIQVZFX1BSQ1RMIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmVhZCcgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfUFJFQUQgMQorCisvKiBEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuCisgICAqLworLyogI3VuZGVmIEhBVkVfUFJfU1lTQ0FMTCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbmRtc2cnIGZ1bmN0aW9uLiAqLworI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2FjdGlvbicgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ2luZm9fdCcuICovCisjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ19hdG9taWNfdCcuICovCisjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKKworLyogRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC4gKi8KKyNkZWZpbmUgSEFWRV9TVEFUNjQgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NURExJQl9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJlcnJvcicgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cm9wdHMuaD4gaGVhZGVyIGZpbGUuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3Ryc2lnbmFsJyBmdW5jdGlvbi4gKi8KKy8vQU5EUk9JRAorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorI2lmZGVmIF9fQklPTklDX18KKyNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorI2VuZGlmCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgaWE2NF9mcHJlZycuICovCisvKiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUE2NF9GUFJFRyAqLworCisvKiBEZWZpbmUgdG8gMSBpZiBgbXNnX2NvbnRyb2wnIGlzIG1lbWJlciBvZiBgc3RydWN0IG1zZ2hkcicuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3Qgb3B0aGRyJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9PUFRIRFIgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9QVF9BTExfVVNFUl9SRUdTICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzaW42X3Njb3BlX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9pbjYnLiAqLworI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9hY2xjbnQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9ibGtzaXplJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KKyNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKKworLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsb2NrcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKKworLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZsYWdzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZMQUdTICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9mc3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRlNUWVBFICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9nZW4nIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9sZXZlbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisvKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9MRVZFTCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiBgc3RfcmRldicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCisKKy8qIERlZmluZSB0byAxIGlmIGBBQ0NFUFRPUl9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgVF9jb25uX3JlcycuICovCisvKiAjdW5kZWYgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19BQ0NFUFRPUl9JRCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiBgUVVFVUVfcHRyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUiAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHRfb3B0aGRyJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX09QVEhEUiAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHVzZXJfZGVzYycuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQnLiAqLworI2RlZmluZSBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2FjbC5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX1NZU19BQ0xfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9haW8uaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfQUlPX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYXN5bmNoLmg+IGhlYWRlciBmaWxlLiAqLworLyogI3VuZGVmIEhBVkVfU1lTX0FTWU5DSF9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfQ09ORl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCisgICAqLworLyogI3VuZGVmIEhBVkVfU1lTX0RJUl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rvb3IuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfRE9PUl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Vwb2xsLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEgCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxpby5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX1NZU19GSUxJT19IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2lvY3RsLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCisgICAqLworLyogI3VuZGVmIEhBVkVfU1lTX05ESVJfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uc2NzeXMuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfTlNDU1lTX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHRyYWNlLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3JlZy5oPiBoZWFkZXIgZmlsZS4gKi8KKy8vQU5EUk9JRAorLy8jZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXNfc2lnbGlzdCcgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdHJlYW0uaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfU1RSRUFNX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY29uZmlnLmg+IGhlYWRlciBmaWxlLiAqLworLyogI3VuZGVmIEhBVkVfU1lTX1NZU0NPTkZJR19IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpaGRyLmg+IGhlYWRlciBmaWxlLiAqLworLyogI3VuZGVmIEhBVkVfU1lTX1RJSERSX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGl1c2VyLmg+IGhlYWRlciBmaWxlLiAqLworLyogI3VuZGVmIEhBVkVfU1lTX1RJVVNFUl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdWlvLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zmcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHRlcm1pby5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBfc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLworLy9BTkRST0lECisvLyNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorCisvKiBEZWZpbmUgZm9yIHRoZSBIUFBBIGFyY2hpdGVjdHVyZS4gKi8KKy8qICN1bmRlZiBIUFBBICovCisKKy8qIERlZmluZSBmb3IgdGhlIGkzODYgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIEkzODYgKi8KKworLyogRGVmaW5lIGZvciB0aGUgSUE2NCBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgSUE2NCAqLworCisvKiBEZWZpbmUgZm9yIHRoZSBMaW51eCBvcGVyYXRpbmcgc3lzdGVtLiAqLworI2RlZmluZSBMSU5VWCAxCisKKy8qIERlZmluZSBmb3IgdGhlIG02OGsgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIE02OEsgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4gPG1rZGV2Lmg+LgorICAgKi8KKy8qICN1bmRlZiBNQUpPUl9JTl9NS0RFViAqLworCisvKiBEZWZpbmUgdG8gMSBpZiBgbWFqb3InLCBgbWlub3InLCBhbmQgYG1ha2VkZXYnIGFyZSBkZWNsYXJlZCBpbgorICAgPHN5c21hY3Jvcy5oPi4gKi8KKy8qICN1bmRlZiBNQUpPUl9JTl9TWVNNQUNST1MgKi8KKworLyogRGVmaW5lIGZvciB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgTUlQUyAqLworCisvKiBOYW1lIG9mIHBhY2thZ2UgKi8KKyNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorCisvKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KKyNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKKworLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKKworLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKKworLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKKworLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KKyNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCisKKy8qIERlZmluZSBmb3IgdGhlIFBvd2VyUEMgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIFBPV0VSUEMgKi8KKworLyogRGVmaW5lIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMgKGBpbnQnIG9yIGB2b2lkJykuICovCisjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorCisvKiBEZWZpbmUgZm9yIHRoZSBTMzkwIGFyY2hpdGVjdHVyZS4gKi8KKy8qICN1bmRlZiBTMzkwICovCisKKy8qIERlZmluZSBmb3IgdGhlIFMzOTB4IGFyY2hpdGVjdHVyZS4gKi8KKy8qICN1bmRlZiBTMzkwWCAqLworCisvKiBEZWZpbmUgZm9yIHRoZSBTSCBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgU0ggKi8KKworLyogRGVmaW5lIGZvciB0aGUgU0g2NCBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgU0g2NCAqLworCisvKiBEZWZpbmUgZm9yIHRoZSBTUEFSQyBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgU1BBUkMgKi8KKworLyogRGVmaW5lIGZvciB0aGUgU1BBUkM2NCBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgU1BBUkM2NCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgYFNfSVMqJyBtYWNyb3MgaW4gPHN5cy9zdGF0Lmg+IGRvIG5vdCB3b3JrIHByb3Blcmx5LiAqLworLyogI3VuZGVmIFNUQVRfTUFDUk9TX0JST0tFTiAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKKworLyogRGVmaW5lIGZvciB0aGUgU3VuT1MgNC54IG9wZXJhdGluZyBzeXN0ZW0uICovCisvKiAjdW5kZWYgU1VOT1M0ICovCisKKy8qIERlZmluZSBpZiB5b3UgYXJlIGhhdmUgYSBTUEFSQyB3aXRoIFNVTk9TNCBhbmQgeW91ciB3YW50IGEgdmVyc2lvbiBvZgorICAgc3RyYWNlIHRoYXQgd2lsbCB3b3JrIG9uIHN1bjQsIHN1bjRjIGFuZCBzdW40bSBrZXJuZWwgYXJjaGl0ZWN0dXJlcy4gT25seQorICAgdXNlZnVsIGlmIHlvdSBoYXZlIGEgc3ltYm9saWMgbGluayBmcm9tIG1hY2hpbmUgdG8gL3Vzci9pbmNsdWRlL3N1bjQgaW4gdGhlCisgICBjb21waWxhdGlvbiBkaXJlY3RvcnkuICovCisvKiAjdW5kZWYgU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSAqLworCisvKiBEZWZpbmUgZm9yIHRoZSBTeXN0ZW0gViByZWxlYXNlIDQgb3BlcmF0aW5nIHN5c3RlbSBvciBhIGRlcml2YXRpdmUgbGlrZQorICAgU29sYXJpcyAyLnggb3IgSXJpeCA1LnguICovCisvKiAjdW5kZWYgU1ZSNCAqLworCisvKiBEZWZpbmUgZm9yIFVuaXhXYXJlIHN5c3RlbXMuICovCisvKiAjdW5kZWYgVU5JWFdBUkUgKi8KKworLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAqLworI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCisKKy8qIERlZmluZSBmb3IgdGhlIEFNRCB4ODYtNjQgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIFg4Nl82NCAqLworCisvKiBFbmFibGUgR05VIGV4dGVuc2lvbnMgb24gc3lzdGVtcyB0aGF0IGhhdmUgdGhlbS4gICovCisjaWZuZGVmIF9HTlVfU09VUkNFCisjIGRlZmluZSBfR05VX1NPVVJDRSAxCisjZW5kaWYKKworLyogRGVmaW5lIHRvIGVtcHR5IGlmIGBjb25zdCcgZG9lcyBub3QgY29uZm9ybSB0byBBTlNJIEMuICovCisvKiAjdW5kZWYgY29uc3QgKi8KKworLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCisvKiAjdW5kZWYgZ2lkX3QgKi8KKworLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLworLyogI3VuZGVmIG1vZGVfdCAqLworCisvKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2Vzbid0IGRlZmluZS4gKi8KKy8qICN1bmRlZiB1aWRfdCAqLwpkaWZmIC0tZ2l0IGEvYW5kcm9pZC9hcmNoL3g4Ni9jb25maWcuaCBiL2FuZHJvaWQvYXJjaC94ODYvY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJkYWExNwotLS0gL2Rldi9udWxsCisrKyBiL2FuZHJvaWQvYXJjaC94ODYvY29uZmlnLmgKQEAgLTAsMCArMSw0MjMgQEAKKy8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovCisvKiBjb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KKworLyogRGVmaW5lIGZvciB0aGUgQWxwaGEgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIEFMUEhBICovCisKKy8qIERlZmluZSBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgQVJNICovCisKKy8qIERlZmluZSBmb3IgdGhlIEZyZWVCU0Qgb3BlcmF0aW5nIHN5c3RlbS4gKi8KKy8qICN1bmRlZiBGUkVFQlNEICovCisKKy8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkgc2V0IGJ5IGBnZXRncm91cHMnLiBVc3VhbGx5CisgICB0aGlzIGlzIGVpdGhlciBgaW50JyBvciBgZ2lkX3QnLiAqLworI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9yZWcuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9BU01fUkVHX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc2lnY29udGV4dC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc3lzbWlwcy5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX0FTTV9TWVNNSVBTX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfZXJybGlzdCcsIGFuZCB0byAwIGlmIHlvdQorICAgZG9uJ3QuICovCisjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3lzX3NpZ2xpc3QnLCBhbmQgdG8gMCBpZiB5b3UKKyAgIGRvbid0LiAqLworI2RlZmluZSBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYF9zeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQorICAgZG9uJ3QuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX0RFQ0xfX1NZU19TSUdMSVNUIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgorICAgKi8KKyNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZGVudHMnIGZ1bmN0aW9uLiAqLworLyogI3VuZGVmIEhBVkVfR0VUREVOVFMgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9JT0NUTFNfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYmFpby5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX0xJQkFJT19IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCisvKiAjdW5kZWYgSEFWRV9MSUJOU0wgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pY21wLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvaWZfcGFja2V0Lmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pbjYuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9wdHJhY2UuaD4gaGVhZGVyIGZpbGUuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC91dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCisKKy8qIERlZmluZSBpZiBsb25nIGxvbmcgaXMgbGl0dGxlLWVuZGlhbi4gKi8KKyNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBsb25nIGxvbmcnLiAqLworI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCisKKy8qIERlZmluZSBpZiBvZmZfdCBpcyBhIGxvbmcgbG9uZy4gKi8KKy8qICN1bmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVCAqLworCisvKiBEZWZpbmUgaWYgcmxpbV90IGlzIGEgbG9uZyBsb25nLiAqLworLyogI3VuZGVmIEhBVkVfTE9OR19MT05HX1JMSU1fVCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1jdGwnIGZ1bmN0aW9uLiAqLworLyogI3VuZGVmIEhBVkVfTUNUTCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1lbW9yeS5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSBhIFNWUjQgTVAgdHlwZSBwcm9jZnMuIEkuRS4gL2Rldi94eHgvY3RsLAorICAgL2Rldi94eHgvc3RhdHVzLiBBbHNvIGltcGxpZXMgdGhhdCB5b3UgaGF2ZSB0aGUgcHJfbHdwIG1lbWJlciBpbiBwcnN0YXR1cy4KKyAgICovCisvKiAjdW5kZWYgSEFWRV9NUF9QUk9DRlMgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtcXVldWUuaD4gaGVhZGVyIGZpbGUuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4gKi8KKy8qICN1bmRlZiBIQVZFX05ESVJfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgU1ZSNCBhbmQgdGhlIHBvbGwgc3lzdGVtIGNhbGwgd29ya3Mgb24gL3Byb2MgZmlsZXMuICovCisvKiAjdW5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwb2xsLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1BPTExfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJjdGwnIGZ1bmN0aW9uLiAqLworI2RlZmluZSBIQVZFX1BSQ1RMIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmVhZCcgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfUFJFQUQgMQorCisvKiBEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuCisgICAqLworLyogI3VuZGVmIEhBVkVfUFJfU1lTQ0FMTCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbmRtc2cnIGZ1bmN0aW9uLiAqLworI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2FjdGlvbicgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ2luZm9fdCcuICovCisjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ19hdG9taWNfdCcuICovCisjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKKworLyogRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC4gKi8KKyNkZWZpbmUgSEFWRV9TVEFUNjQgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NURExJQl9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJlcnJvcicgZnVuY3Rpb24uICovCisjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cm9wdHMuaD4gaGVhZGVyIGZpbGUuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3Ryc2lnbmFsJyBmdW5jdGlvbi4gKi8KKy8vQU5EUk9JRAorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorI2lmZGVmIF9fQklPTklDX18KKyNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorI2VuZGlmCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgaWE2NF9mcHJlZycuICovCisvKiAjdW5kZWYgSEFWRV9TVFJVQ1RfSUE2NF9GUFJFRyAqLworCisvKiBEZWZpbmUgdG8gMSBpZiBgbXNnX2NvbnRyb2wnIGlzIG1lbWJlciBvZiBgc3RydWN0IG1zZ2hkcicuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3Qgb3B0aGRyJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9PUFRIRFIgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9QVF9BTExfVVNFUl9SRUdTICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzaW42X3Njb3BlX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9pbjYnLiAqLworI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9hY2xjbnQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9ibGtzaXplJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KKyNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKKworLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsb2NrcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKKworLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZsYWdzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZMQUdTICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9mc3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRlNUWVBFICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9nZW4nIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworLyogI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOICovCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9sZXZlbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisvKiAjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9MRVZFTCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiBgc3RfcmRldicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCisKKy8qIERlZmluZSB0byAxIGlmIGBBQ0NFUFRPUl9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgVF9jb25uX3JlcycuICovCisvKiAjdW5kZWYgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19BQ0NFUFRPUl9JRCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiBgUVVFVUVfcHRyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUiAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHRfb3B0aGRyJy4gKi8KKy8qICN1bmRlZiBIQVZFX1NUUlVDVF9UX09QVEhEUiAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHVzZXJfZGVzYycuICovCisjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQnLiAqLworI2RlZmluZSBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2FjbC5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX1NZU19BQ0xfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9haW8uaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfQUlPX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYXN5bmNoLmg+IGhlYWRlciBmaWxlLiAqLworLyogI3VuZGVmIEhBVkVfU1lTX0FTWU5DSF9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfQ09ORl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCisgICAqLworLyogI3VuZGVmIEhBVkVfU1lTX0RJUl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rvb3IuaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfRE9PUl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Vwb2xsLmg+IGhlYWRlciBmaWxlLiAqLworI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsaW8uaD4gaGVhZGVyIGZpbGUuICovCisvKiAjdW5kZWYgSEFWRV9TWVNfRklMSU9fSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9pb2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgorICAgKi8KKy8qICN1bmRlZiBIQVZFX1NZU19ORElSX0ggKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbnNjc3lzLmg+IGhlYWRlciBmaWxlLiAqLworLyogI3VuZGVmIEhBVkVfU1lTX05TQ1NZU19IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BvbGwuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZWcuaD4gaGVhZGVyIGZpbGUuICovCisvL0FORFJPSUQKKy8vI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLworI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RyZWFtLmg+IGhlYWRlciBmaWxlLiAqLworLyogI3VuZGVmIEhBVkVfU1lTX1NUUkVBTV9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2NvbmZpZy5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX1NZU19TWVNDT05GSUdfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aWhkci5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX1NZU19USUhEUl9IICovCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpdXNlci5oPiBoZWFkZXIgZmlsZS4gKi8KKy8qICN1bmRlZiBIQVZFX1NZU19USVVTRVJfSCAqLworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92ZnMuaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx0ZXJtaW8uaD4gaGVhZGVyIGZpbGUuICovCisjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KKyNkZWZpbmUgSEFWRV9VTklTVERfSCAxCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgX3N5c19zaWdsaXN0JyBmdW5jdGlvbi4gKi8KKy8vQU5EUk9JRAorLy8jZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKKworLyogRGVmaW5lIGZvciB0aGUgSFBQQSBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgSFBQQSAqLworCisvKiBEZWZpbmUgZm9yIHRoZSBpMzg2IGFyY2hpdGVjdHVyZS4gKi8KKyNkZWZpbmUgSTM4NiAxCisKKy8qIERlZmluZSBmb3IgdGhlIElBNjQgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIElBNjQgKi8KKworLyogRGVmaW5lIGZvciB0aGUgTGludXggb3BlcmF0aW5nIHN5c3RlbS4gKi8KKyNkZWZpbmUgTElOVVggMQorCisvKiBEZWZpbmUgZm9yIHRoZSBtNjhrIGFyY2hpdGVjdHVyZS4gKi8KKy8qICN1bmRlZiBNNjhLICovCisKKy8qIERlZmluZSB0byAxIGlmIGBtYWpvcicsIGBtaW5vcicsIGFuZCBgbWFrZWRldicgYXJlIGRlY2xhcmVkIGluIDxta2Rldi5oPi4KKyAgICovCisvKiAjdW5kZWYgTUFKT1JfSU5fTUtERVYgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4KKyAgIDxzeXNtYWNyb3MuaD4uICovCisvKiAjdW5kZWYgTUFKT1JfSU5fU1lTTUFDUk9TICovCisKKy8qIERlZmluZSBmb3IgdGhlIE1JUFMgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIE1JUFMgKi8KKworLyogTmFtZSBvZiBwYWNrYWdlICovCisjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKKworLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCisjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCisKKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KKyNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCisKKy8qIERlZmluZSB0byB0aGUgZnVsbCBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCisKKy8qIERlZmluZSB0byB0aGUgb25lIHN5bWJvbCBzaG9ydCBuYW1lIG9mIHRoaXMgcGFja2FnZS4gKi8KKyNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCisKKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCisjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorCisvKiBEZWZpbmUgZm9yIHRoZSBQb3dlclBDIGFyY2hpdGVjdHVyZS4gKi8KKy8qICN1bmRlZiBQT1dFUlBDICovCisKKy8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChgaW50JyBvciBgdm9pZCcpLiAqLworI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKKworLyogRGVmaW5lIGZvciB0aGUgUzM5MCBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgUzM5MCAqLworCisvKiBEZWZpbmUgZm9yIHRoZSBTMzkweCBhcmNoaXRlY3R1cmUuICovCisvKiAjdW5kZWYgUzM5MFggKi8KKworLyogRGVmaW5lIGZvciB0aGUgU0ggYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIFNIICovCisKKy8qIERlZmluZSBmb3IgdGhlIFNINjQgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIFNINjQgKi8KKworLyogRGVmaW5lIGZvciB0aGUgU1BBUkMgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIFNQQVJDICovCisKKy8qIERlZmluZSBmb3IgdGhlIFNQQVJDNjQgYXJjaGl0ZWN0dXJlLiAqLworLyogI3VuZGVmIFNQQVJDNjQgKi8KKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIGBTX0lTKicgbWFjcm9zIGluIDxzeXMvc3RhdC5oPiBkbyBub3Qgd29yayBwcm9wZXJseS4gKi8KKy8qICN1bmRlZiBTVEFUX01BQ1JPU19CUk9LRU4gKi8KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCisjZGVmaW5lIFNURENfSEVBREVSUyAxCisKKy8qIERlZmluZSBmb3IgdGhlIFN1bk9TIDQueCBvcGVyYXRpbmcgc3lzdGVtLiAqLworLyogI3VuZGVmIFNVTk9TNCAqLworCisvKiBEZWZpbmUgaWYgeW91IGFyZSBoYXZlIGEgU1BBUkMgd2l0aCBTVU5PUzQgYW5kIHlvdXIgd2FudCBhIHZlcnNpb24gb2YKKyAgIHN0cmFjZSB0aGF0IHdpbGwgd29yayBvbiBzdW40LCBzdW40YyBhbmQgc3VuNG0ga2VybmVsIGFyY2hpdGVjdHVyZXMuIE9ubHkKKyAgIHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIHN5bWJvbGljIGxpbmsgZnJvbSBtYWNoaW5lIHRvIC91c3IvaW5jbHVkZS9zdW40IGluIHRoZQorICAgY29tcGlsYXRpb24gZGlyZWN0b3J5LiAqLworLyogI3VuZGVmIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgKi8KKworLyogRGVmaW5lIGZvciB0aGUgU3lzdGVtIFYgcmVsZWFzZSA0IG9wZXJhdGluZyBzeXN0ZW0gb3IgYSBkZXJpdmF0aXZlIGxpa2UKKyAgIFNvbGFyaXMgMi54IG9yIElyaXggNS54LiAqLworLyogI3VuZGVmIFNWUjQgKi8KKworLyogRGVmaW5lIGZvciBVbml4V2FyZSBzeXN0ZW1zLiAqLworLyogI3VuZGVmIFVOSVhXQVJFICovCisKKy8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KKyNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorCisvKiBEZWZpbmUgZm9yIHRoZSBBTUQgeDg2LTY0IGFyY2hpdGVjdHVyZS4gKi8KKy8qICN1bmRlZiBYODZfNjQgKi8KKworLyogRW5hYmxlIEdOVSBleHRlbnNpb25zIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZW0uICAqLworI2lmbmRlZiBfR05VX1NPVVJDRQorIyBkZWZpbmUgX0dOVV9TT1VSQ0UgMQorI2VuZGlmCisKKy8qIERlZmluZSB0byBlbXB0eSBpZiBgY29uc3QnIGRvZXMgbm90IGNvbmZvcm0gdG8gQU5TSSBDLiAqLworLyogI3VuZGVmIGNvbnN0ICovCisKKy8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLworLyogI3VuZGVmIGdpZF90ICovCisKKy8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KKy8qICN1bmRlZiBtb2RlX3QgKi8KKworLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCisvKiAjdW5kZWYgdWlkX3QgKi8KZGlmZiAtLWdpdCBhL2FybS1lYWJpLnBhdGNoIGIvYXJtLWVhYmkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNlMjdmOAotLS0gL2Rldi9udWxsCisrKyBiL2FybS1lYWJpLnBhdGNoCkBAIC0wLDAgKzEsNjUgQEAKKzIwMDYtMDMtMzAgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CisKKwkqIHByb2Nlc3MuYyAoY2hhbmdlX3N5c2NhbGwpOiBBZGQgQVJNIHN1cHBvcnQuCisJKiBzeXNjYWxsLmMgKGdldF9zY25vKTogSGFuZGxlIEFSTSBFQUJJLgorCitJbmRleDogc3RyYWNlL3Byb2Nlc3MuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHN0cmFjZS5vcmlnL3Byb2Nlc3MuYwkyMDA2LTAzLTMwIDE3OjM2OjE0LjAwMDAwMDAwMCAtMDUwMAorKysrIHN0cmFjZS9wcm9jZXNzLmMJMjAwNi0wMy0zMCAxNzo0NDoxNi4wMDAwMDAwMDAgLTA1MDAKK0BAIC02OTQsNiArNjk0LDE2IEBAIGludCBuZXc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMCB8IG5ldykgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICByZXR1cm4gMDsKKysjZWxpZiBkZWZpbmVkKEFSTSkKKysgICAgICAgLyogU29tZSBrZXJuZWxzIHN1cHBvcnQgdGhpcywgc29tZSAocHJlLTIuNi4xNiBvciBzbykgZG9uJ3QuICAqLworKyMgaWZuZGVmIFBUUkFDRV9TRVRfU1lTQ0FMTAorKyMgIGRlZmluZSBQVFJBQ0VfU0VUX1NZU0NBTEwgMjMKKysjIGVuZGlmCisrCisrICAgICAgIGlmIChwdHJhY2UgKFBUUkFDRV9TRVRfU1lTQ0FMTCwgdGNwLT5waWQsIDAsIG5ldykgIT0gMCkKKysJCXJldHVybiAtMTsKKysKKysgICAgICAgcmV0dXJuIDA7CisgI2Vsc2UKKyAjd2FybmluZyBEbyBub3Qga25vdyBob3cgdG8gaGFuZGxlIGNoYW5nZV9zeXNjYWxsIGZvciB0aGlzIGFyY2hpdGVjdHVyZQorICNlbmRpZiAvKiBhcmNoaXRlY3R1cmUgKi8KK0luZGV4OiBzdHJhY2Uvc3lzY2FsbC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gc3RyYWNlLm9yaWcvc3lzY2FsbC5jCTIwMDYtMDMtMzAgMTc6MzY6MTQuMDAwMDAwMDAwIC0wNTAwCisrKysgc3RyYWNlL3N5c2NhbGwuYwkyMDA2LTAzLTMwIDE3OjQ0OjE2LjAwMDAwMDAwMCAtMDUwMAorQEAgLTExMDgsMTYgKzExMDgsMjUgQEAgc3RydWN0IHRjYiAqdGNwOworIAkJCQlyZXR1cm4gMDsKKyAJCQl9CisgCistCQkJaWYgKChzY25vICYgMHgwZmYwMDAwMCkgIT0gMHgwZjkwMDAwMCkgeworLQkJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwIDB4JTA4bHhcbiIsCistCQkJCQlzY25vKTsKKy0JCQkJcmV0dXJuIC0xOworLQkJCX0KKysJCQkvKiBIYW5kbGUgdGhlIEVBQkkgc3lzY2FsbCBjb252ZW50aW9uLiAgV2UgZG8gbm90CisrCQkJICAgYm90aGVyIGNvbnZlcnRpbmcgc3RydWN0dXJlcyBiZXR3ZWVuIHRoZSB0d28KKysJCQkgICBBQklzLCBidXQgYmFzaWMgZnVuY3Rpb25hbGl0eSBzaG91bGQgd29yayBldmVuCisrCQkJICAgaWYgc3RyYWNlIGFuZCB0aGUgdHJhY2VkIHByb2dyYW0gaGF2ZSBkaWZmZXJlbnQKKysJCQkgICBBQklzLiAgKi8KKysJCQlpZiAoc2NubyA9PSAweGVmMDAwMDAwKSB7CisrCQkJCXNjbm8gPSByZWdzLkFSTV9yNzsKKysJCQl9IGVsc2UgeworKwkJCQlpZiAoKHNjbm8gJiAweDBmZjAwMDAwKSAhPSAweDBmOTAwMDAwKSB7CisrCQkJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGw6IHVua25vd24gc3lzY2FsbCB0cmFwIDB4JTA4bHhcbiIsCisrCQkJCQkJc2Nubyk7CisrCQkJCQlyZXR1cm4gLTE7CisrCQkJCX0KKyAKKy0JCQkvKgorLQkJCSAqIEZpeHVwIHRoZSBzeXNjYWxsIG51bWJlcgorLQkJCSAqLworLQkJCXNjbm8gJj0gMHgwMDBmZmZmZjsKKysJCQkJLyoKKysJCQkJICogRml4dXAgdGhlIHN5c2NhbGwgbnVtYmVyCisrCQkJCSAqLworKwkJCQlzY25vICY9IDB4MDAwZmZmZmY7CisrCQkJfQorIAkJfQorIAorIAkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSB7CmRpZmYgLS1naXQgYS9iam0uYyBiL2JqbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNmU5YzAKLS0tIC9kZXYvbnVsbAorKysgYi9iam0uYwpAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IGJqbS5jLHYgMS4xNSAyMDA1LzA2LzAxIDE5OjAyOjM3IHJvbGFuZCBFeHAgJAorICovCisjaW5jbHVkZSAiZGVmcy5oIgorCisjaWYgZGVmaW5lZChMSU5VWCkKKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKyNpZm5kZWYgSEFWRV9BTkRST0lEX09TCisjaW5jbHVkZSA8c3lzL3VzZXIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKKy8qIEJpdHMgb2YgbW9kdWxlLmZsYWdzLiAgKi8KKworI2RlZmluZSBNT0RfVU5JTklUSUFMSVpFRAkwCisjZGVmaW5lIE1PRF9SVU5OSU5HCQkxCisjZGVmaW5lIE1PRF9ERUxFVEVECQkyCisjZGVmaW5lIE1PRF9BVVRPQ0xFQU4JCTQKKyNkZWZpbmUgTU9EX1ZJU0lURUQgIAkJOAorI2RlZmluZSBNT0RfVVNFRF9PTkNFCQkxNgorI2RlZmluZSBNT0RfSlVTVF9GUkVFRAkJMzIKKyNkZWZpbmUgTU9EX0lOSVRJQUxJWklORwk2NAorCisvKiBWYWx1ZXMgZm9yIHF1ZXJ5X21vZHVsZSdzIHdoaWNoLiAgKi8KKworI2RlZmluZSBRTV9NT0RVTEVTCTEKKyNkZWZpbmUgUU1fREVQUwkJMgorI2RlZmluZSBRTV9SRUZTCQkzCisjZGVmaW5lIFFNX1NZTUJPTFMJNAorI2RlZmluZSBRTV9JTkZPCQk1CisKK3N0cnVjdCBtb2R1bGVfc3ltYm9sCit7CisJdW5zaWduZWQgbG9uZyB2YWx1ZTsKKwljb25zdCBjaGFyICpuYW1lOworfTsKKworc3RydWN0IG1vZHVsZV9pbmZvCit7CisJdW5zaWduZWQgbG9uZyBhZGRyOworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgdXNlY291bnQ7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgd2hpY2hbXSA9IHsKKwl7IDAsCQkiMCIJCX0sCisJeyBRTV9NT0RVTEVTLAkiUU1fTU9EVUxFUyIJfSwKKwl7IFFNX0RFUFMsCSJRTV9ERVBTIgl9LAorCXsgUU1fUkVGUywJIlFNX1JFRlMiCX0sCisJeyBRTV9TWU1CT0xTLAkiUU1fU1lNQk9MUyIJfSwKKwl7IFFNX0lORk8sCSJRTV9JTkZPIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW9kZmxhZ3NbXSA9IHsKKwl7IE1PRF9VTklOSVRJQUxJWkVELAkiTU9EX1VOSU5JVElBTElaRUQiCX0sCisJeyBNT0RfUlVOTklORywJCSJNT0RfUlVOTklORyIJCX0sCisJeyBNT0RfREVMRVRFRCwJCSJNT0RfREVMRVRFRCIJCX0sCisJeyBNT0RfQVVUT0NMRUFOLAkiTU9EX0FVVE9DTEVBTiIJCX0sCisJeyBNT0RfVklTSVRFRCwJCSJNT0RfVklTSVRFRCIJCX0sCisJeyBNT0RfVVNFRF9PTkNFLAkiTU9EX1VTRURfT05DRSIJCX0sCisJeyBNT0RfSlVTVF9GUkVFRCwJIk1PRF9KVVNUX0ZSRUVEIgl9LAorCXsgMCwJCQlOVUxMCQkJfSwKK307CisKK2ludAorc3lzX3F1ZXJ5X21vZHVsZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1swXSwgLTEpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHh2YWwod2hpY2gsIHRjcC0+dV9hcmdbMV0sICJRTV8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKCF2ZXJib3NlKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgsICVsdSwgJSNseCIsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbNF0pOworCQl9IGVsc2UgaWYgKHRjcC0+dV9ydmFsIT0wKSB7CisJCQlzaXplX3QJcmV0OworCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmcmV0KTsKKwkJCXRwcmludGYoIiUjbHgsICVsdSwgJVp1IiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgcmV0KTsKKwkJfSBlbHNlIGlmICh0Y3AtPnVfYXJnWzFdPT1RTV9JTkZPKSB7CisJCQlzdHJ1Y3QgbW9kdWxlX2luZm8JbWk7CisJCQlzaXplX3QJCQlyZXQ7CisJCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZtaSk7CisJCQl0cHJpbnRmKCJ7YWRkcmVzcz0lI2x4LCBzaXplPSVsdSwgZmxhZ3M9IiwgbWkuYWRkciwgbWkuc2l6ZSk7CisJCQlwcmludGZsYWdzKG1vZGZsYWdzLCBtaS5mbGFncywgIk1PRF8/Pz8iKTsKKwkJCXRwcmludGYoIiwgdXNlY291bnQ9JWx1fSIsIG1pLnVzZWNvdW50KTsKKwkJCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJnJldCk7CisJCQl0cHJpbnRmKCIsICVadSIsIHJldCk7CisJCX0gZWxzZSBpZiAoKHRjcC0+dV9hcmdbMV09PVFNX01PRFVMRVMpIHx8CisJCQkgICAgICAgCSh0Y3AtPnVfYXJnWzFdPT1RTV9ERVBTKSB8fAorCQkJICAgICAgIAkodGNwLT51X2FyZ1sxXT09UU1fUkVGUykpIHsKKwkJCXNpemVfdAlyZXQ7CisKKwkJCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJnJldCk7CisJCQl0cHJpbnRmKCJ7Iik7CisJCQlpZiAoIWFiYnJldih0Y3ApKSB7CisJCQkJY2hhcioJZGF0YQk9IChjaGFyKiltYWxsb2ModGNwLT51X2FyZ1szXSk7CisJCQkJY2hhcioJbW9kCT0gZGF0YTsKKwkJCQlzaXplX3QJaWR4OworCisJCQkJaWYgKGRhdGE9PU5VTEwpIHsKKwkJCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKKwkJCQkJdHByaW50ZigiIC8qICVadSBlbnRyaWVzICovICIsIHJldCk7CisJCQkJfSBlbHNlIHsKKwkJCQkJdW1vdmVuKHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgZGF0YSk7CisJCQkJCWZvciAoaWR4PTA7IGlkeDxyZXQ7IGlkeCsrKSB7CisJCQkJCQlpZiAoaWR4IT0wKQorCQkJCQkJCXRwcmludGYoIiwiKTsKKwkJCQkJCXRwcmludGYoIiVzIiwgbW9kKTsKKwkJCQkJCW1vZCs9c3RybGVuKG1vZCkrMTsKKwkJCQkJfQorCQkJCQlmcmVlKGRhdGEpOworCQkJCX0KKwkJCX0gZWxzZQorCQkJCXRwcmludGYoIiAvKiAlWnUgZW50cmllcyAqLyAiLCByZXQpOworCQkJdHByaW50ZigifSwgJVp1IiwgcmV0KTsKKwkJfSBlbHNlIGlmICh0Y3AtPnVfYXJnWzFdPT1RTV9TWU1CT0xTKSB7CisJCQlzaXplX3QJcmV0OworCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmcmV0KTsKKwkJCXRwcmludGYoInsiKTsKKwkJCWlmICghYWJicmV2KHRjcCkpIHsKKwkJCQljaGFyKgkJCWRhdGEJPSAoY2hhciAqKW1hbGxvYyh0Y3AtPnVfYXJnWzNdKTsKKwkJCQlzdHJ1Y3QgbW9kdWxlX3N5bWJvbCoJc3ltCT0gKHN0cnVjdCBtb2R1bGVfc3ltYm9sKilkYXRhOworCQkJCXNpemVfdAkJCWlkeDsKKworCQkJCWlmIChkYXRhPT1OVUxMKSB7CisJCQkJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CisJCQkJCXRwcmludGYoIiAvKiAlWnUgZW50cmllcyAqLyAiLCByZXQpOworCQkJCX0gZWxzZSB7CisJCQkJCXVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sIGRhdGEpOworCQkJCQlmb3IgKGlkeD0wOyBpZHg8cmV0OyBpZHgrKykgeworCQkJCQkJdHByaW50Zigie25hbWU9JXMsIHZhbHVlPSVsdX0gIiwgZGF0YSsobG9uZylzeW0tPm5hbWUsIHN5bS0+dmFsdWUpOworCQkJCQkJc3ltKys7CisJCQkJCX0KKwkJCQkJZnJlZShkYXRhKTsKKwkJCQl9CisJCQl9IGVsc2UKKwkJCQl0cHJpbnRmKCIgLyogJVp1IGVudHJpZXMgKi8gIiwgcmV0KTsKKwkJCXRwcmludGYoIn0sICVaZCIsIHJldCk7CisJCX0gZWxzZSB7CisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pOworCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s0XSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2NyZWF0ZV9tb2R1bGUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gUlZBTF9IRVg7Cit9CisKK2ludAorc3lzX2luaXRfbW9kdWxlKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzJdLCAtMSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmIC8qIExJTlVYICovCmRpZmYgLS1naXQgYS9jb25maWcuZ3Vlc3MgYi9jb25maWcuZ3Vlc3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODIyOTQ3MQotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy5ndWVzcwpAQCAtMCwwICsxLDE0NTMgQEAKKyMhIC9iaW4vc2gKKyMgQXR0ZW1wdCB0byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZS4KKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwordGltZXN0YW1wPScyMDA0LTExLTEyJworCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisjCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCisjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAorIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBDaGFuZ2VMb2cgZW50cnkuCisjCisjIFRoaXMgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIgdG8KKyMgY29uZmlnLnN1Yi4gIElmIGl0IHN1Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCisjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgorIworIyBUaGUgcGxhbiBpcyB0aGF0IHRoaXMgY2FuIGJlIGNhbGxlZCBieSBjb25maWd1cmUgc2NyaXB0cyBpZiB5b3UKKyMgZG9uJ3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBidWlsZCBzeXN0ZW0gdHlwZS4KKworbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisKK3VzYWdlPSJcCitVc2FnZTogJDAgW09QVElPTl0KKworT3V0cHV0IHRoZSBjb25maWd1cmF0aW9uIG5hbWUgb2YgdGhlIHN5c3RlbSBcYCRtZScgaXMgcnVuIG9uLgorCitPcGVyYXRpb24gbW9kZXM6CisgIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0CisgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisKK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCisKK3ZlcnNpb249IlwKK0dOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCisKK09yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4KK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNAorRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK1RoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCit3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4iCisKK2hlbHA9IgorVHJ5IFxgJG1lIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorCisjIFBhcnNlIGNvbW1hbmQgbGluZQord2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCisgIGNhc2UgJDEgaW4KKyAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQgKQorICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCAwIDs7CisgICAgLS12ZXJzaW9uIHwgLXYgKQorICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgMCA7OworICAgIC0taGVscCB8IC0taCogfCAtaCApCisgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCAwIDs7CisgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCisgICAgICAgc2hpZnQ7IGJyZWFrIDs7CisgICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgorICAgICAgIGJyZWFrIDs7CisgICAgLSogKQorICAgICAgIGVjaG8gIiRtZTogaW52YWxpZCBvcHRpb24gJDEkaGVscCIgPiYyCisgICAgICAgZXhpdCAxIDs7CisgICAgKiApCisgICAgICAgYnJlYWsgOzsKKyAgZXNhYworZG9uZQorCitpZiB0ZXN0ICQjICE9IDA7IHRoZW4KKyAgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCisgIGV4aXQgMQorZmkKKwordHJhcCAnZXhpdCAxJyAxIDIgMTUKKworIyBDQ19GT1JfQlVJTEQgLS0gY29tcGlsZXIgdXNlZCBieSB0aGlzIHNjcmlwdC4gTm90ZSB0aGF0IHRoZSB1c2Ugb2YgYQorIyBjb21waWxlciB0byBhaWQgaW4gc3lzdGVtIGRldGVjdGlvbiBpcyBkaXNjb3VyYWdlZCBhcyBpdCByZXF1aXJlcworIyB0ZW1wb3JhcnkgZmlsZXMgdG8gYmUgY3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBpcyBhCisjIGhlYWRhY2hlIHRvIGRlYWwgd2l0aCBpbiBhIHBvcnRhYmxlIGZhc2hpb24uCisKKyMgSGlzdG9yaWNhbGx5LCBgQ0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0NDJy4gV2Ugc3RpbGwKKyMgdXNlIGBIT1NUX0NDJyBpZiBkZWZpbmVkLCBidXQgaXQgaXMgZGVwcmVjYXRlZC4KKworIyBQb3J0YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5IHRoZSBBdXRvY29uZiB0ZWFtLgorCitzZXRfY2NfZm9yX2J1aWxkPScKK3RyYXAgImV4aXRjb2RlPVwkPzsgKHJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsKSAmJiBleGl0IFwkZXhpdGNvZGUiIDAgOwordHJhcCAicm0gLWYgXCR0bXBmaWxlcyAyPi9kZXYvbnVsbDsgcm1kaXIgXCR0bXAgMj4vZGV2L251bGw7IGV4aXQgMSIgMSAyIDEzIDE1IDsKKzogJHtUTVBESVI9L3RtcH0gOworIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAtcSAiJFRNUERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIiA7IH0gfHwKKyB7IHRlc3QgLW4gIiRSQU5ET00iICYmIHRtcD0kVE1QRElSL2NnJCQtJFJBTkRPTSAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApIDsgfSB8fAorIHsgdG1wPSRUTVBESVIvY2ctJCQgJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSAmJiBlY2hvICJXYXJuaW5nOiBjcmVhdGluZyBpbnNlY3VyZSB0ZW1wIGRpcmVjdG9yeSIgPiYyIDsgfSB8fAorIHsgZWNobyAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+JjIgOyBleGl0IDEgOyB9IDsKK2R1bW15PSR0bXAvZHVtbXkgOwordG1wZmlsZXM9IiRkdW1teS5jICRkdW1teS5vICRkdW1teS5yZWwgJGR1bW15IiA7CitjYXNlICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCisgLCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7CisJZm9yIGMgaW4gY2MgZ2NjIGM4OSBjOTkgOyBkbworCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1teS5jKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCisJICAgICBDQ19GT1JfQlVJTEQ9IiRjIjsgYnJlYWsgOworCSAgZmkgOworCWRvbmUgOworCWlmIHRlc3QgeCIkQ0NfRk9SX0JVSUxEIiA9IHggOyB0aGVuCisJICBDQ19GT1JfQlVJTEQ9bm9fY29tcGlsZXJfZm91bmQgOworCWZpCisJOzsKKyAsLCopICAgQ0NfRk9SX0JVSUxEPSRDQyA7OworICwqLCopICBDQ19GT1JfQlVJTEQ9JEhPU1RfQ0MgOzsKK2VzYWMgOycKKworIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQoraWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKwlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKK2ZpCisKK1VOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5rbm93bgorVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCitVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgorVU5BTUVfVkVSU0lPTj1gKHVuYW1lIC12KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCisKKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KKworY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgorICAgICo6TmV0QlNEOio6KikKKwkjIE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgorCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rhb3V0KiwKKwkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhhdCByZWNlbnRseQorCSMgc3dpdGNoZWQgdG8gRUxGLCAqLSotbmV0YnNkKiB3b3VsZCBzZWxlY3QgdGhlIG9sZAorCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3RoIGZvcndhcmQKKwkjIGNvbXBhdGliaWxpdHkgYW5kIGEgY29uc2lzdGVudCBtZWNoYW5pc20gZm9yIHNlbGVjdGluZyB0aGUKKwkjIG9iamVjdCBmaWxlIGZvcm1hdC4KKwkjCisJIyBOb3RlOiBOZXRCU0QgZG9lc24ndCBwYXJ0aWN1bGFybHkgY2FyZSBhYm91dCB0aGUgdmVuZG9yCisJIyBwb3J0aW9uIG9mIHRoZSBuYW1lLiAgV2UgYWx3YXlzIHNldCBpdCB0byAidW5rbm93biIuCisJc3lzY3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgorCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAorCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd24pYAorCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OworCSAgICBhcm0qKSBtYWNoaW5lPWFybS11bmtub3duIDs7CisJICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3duIDs7CisJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKKwkgICAgKikgbWFjaGluZT0ke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93biA7OworCWVzYWMKKwkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBpZiBpdCBoYXMgc3dpdGNoZWQKKwkjIHRvIEVMRiByZWNlbnRseSwgb3Igd2lsbCBpbiB0aGUgZnV0dXJlLgorCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKwkgICAgYXJtKnxpMzg2fG02OGt8bnMzMmt8c2gzKnxzcGFyY3x2YXgpCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJaWYgZWNobyBfX0VMRl9fIHwgJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKKwkJCXwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGwKKwkJdGhlbgorCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2RlY29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgorCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIuICBGSVg/CisJCSAgICBvcz1uZXRic2QKKwkJZWxzZQorCQkgICAgb3M9bmV0YnNkZWxmCisJCWZpCisJCTs7CisJICAgICopCisJICAgICAgICBvcz1uZXRic2QKKwkJOzsKKwllc2FjCisJIyBUaGUgT1MgcmVsZWFzZQorCSMgRGViaWFuIEdOVS9OZXRCU0QgbWFjaGluZXMgaGF2ZSBhIGRpZmZlcmVudCB1c2VybGFuZCwgYW5kCisJIyB0aHVzLCBuZWVkIGEgZGlzdGluY3QgdHJpcGxldC4gSG93ZXZlciwgdGhleSBkbyBub3QgbmVlZAorCSMga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24sIHNvIGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKKwkjIHN1aXRhYmxlIHRhZywgaW4gdGhlIHN0eWxlIG9mIGxpbnV4LWdudS4KKwljYXNlICIke1VOQU1FX1ZFUlNJT059IiBpbgorCSAgICBEZWJpYW4qKQorCQlyZWxlYXNlPSctZ251JworCQk7OworCSAgICAqKQorCQlyZWxlYXNlPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stX10uKi9cLi8nYAorCQk7OworCWVzYWMKKwkjIFNpbmNlIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTToKKwkjIGNvbnRhaW5zIHJlZHVuZGFudCBpbmZvcm1hdGlvbiwgdGhlIHNob3J0ZXIgZm9ybToKKwkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCisJZWNobyAiJHttYWNoaW5lfS0ke29zfSR7cmVsZWFzZX0iCisJZXhpdCAwIDs7CisgICAgYW1kNjQ6T3BlbkJTRDoqOiopCisJZWNobyB4ODZfNjQtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIGFtaWdhOk9wZW5CU0Q6KjoqKQorCWVjaG8gbTY4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgY2F0czpPcGVuQlNEOio6KikKKwllY2hvIGFybS11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgaHAzMDA6T3BlbkJTRDoqOiopCisJZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBsdW5hODhrOk9wZW5CU0Q6KjoqKQorICAgIAllY2hvIG04OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIG1hYzY4azpPcGVuQlNEOio6KikKKwllY2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIG1hY3BwYzpPcGVuQlNEOio6KikKKwllY2hvIHBvd2VycGMtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIG12bWU2OGs6T3BlbkJTRDoqOiopCisJZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBtdm1lODhrOk9wZW5CU0Q6KjoqKQorCWVjaG8gbTg4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgbXZtZXBwYzpPcGVuQlNEOio6KikKKwllY2hvIHBvd2VycGMtdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIHNnaTpPcGVuQlNEOio6KikKKwllY2hvIG1pcHM2NC11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgc3VuMzpPcGVuQlNEOio6KikKKwllY2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgICo6T3BlbkJTRDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICAqOmVra29CU0Q6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgbWFjcHBjOk1pckJTRDoqOiopCisJZWNobyBwb3dlcnBwYy11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICAqOk1pckJTRDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbWlyYnNkJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIGFscGhhOk9TRjE6KjoqKQorCWNhc2UgJFVOQU1FX1JFTEVBU0UgaW4KKwkqNC4wKQorCQlVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAorCQk7OworCSo1LiopCisJICAgICAgICBVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAorCQk7OworCWVzYWMKKwkjIEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWlsYWJsZSBvbgorCSMgT1NGLzEgYW5kIFRydTY0IHN5c3RlbXMgcHJvZHVjZWQgc2luY2UgMTk5NS4gIEkgaG9wZSB0aGF0CisJIyBjb3ZlcnMgbW9zdCBzeXN0ZW1zIHJ1bm5pbmcgdG9kYXkuICBUaGlzIGNvZGUgcGlwZXMgdGhlIENQVQorCSMgdHlwZXMgdGhyb3VnaCBoZWFkIC1uIDEsIHNvIHdlIG9ubHkgZGV0ZWN0IHRoZSB0eXBlIG9mIENQVSAwLgorCUFMUEhBX0NQVV9UWVBFPWAvdXNyL3NiaW4vcHNyaW5mbyAtdiB8IHNlZCAtbiAtZSAncy9eICBUaGUgYWxwaGEgXCguKlwpIHByb2Nlc3Nvci4qJC9cMS9wJyB8IGhlYWQgLW4gMWAKKwljYXNlICIkQUxQSEFfQ1BVX1RZUEUiIGluCisJICAgICJFVjQgKDIxMDY0KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworCSAgICAiRVY0LjUgKDIxMDY0KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworCSAgICAiTENBNCAoMjEwNjYvMjEwNjgpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGEiIDs7CisJICAgICJFVjUgKDIxMTY0KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY1IiA7OworCSAgICAiRVY1LjYgKDIxMTY0QSkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NTYiIDs7CisJICAgICJFVjUuNiAoMjExNjRQQykiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYXBjYTU2IiA7OworCSAgICAiRVY1LjcgKDIxMTY0UEMpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NyIgOzsKKwkgICAgIkVWNiAoMjEyNjQpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjYiIDs7CisJICAgICJFVjYuNyAoMjEyNjRBKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2NyIgOzsKKwkgICAgIkVWNi44Q0IgKDIxMjY0QykiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7CisJICAgICJFVjYuOEFMICgyMTI2NEIpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworCSAgICAiRVY2LjhDWCAoMjEyNjREKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKwkgICAgIkVWNi45QSAoMjEyNjQvRVY2OUEpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY5IiA7OworCSAgICAiRVY3ICgyMTM2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIgOzsKKwkgICAgIkVWNy45ICgyMTM2NEEpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjc5IiA7OworCWVzYWMKKwkjIEEgUG4ubiB2ZXJzaW9uIGlzIGEgcGF0Y2hlZCB2ZXJzaW9uLgorCSMgQSBWbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCB2ZXJzaW9uLgorCSMgQSBUbi5uIHZlcnNpb24gaXMgYSByZWxlYXNlZCBmaWVsZCB0ZXN0IHZlcnNpb24uCisJIyBBIFhuLm4gdmVyc2lvbiBpcyBhbiB1bnJlbGVhc2VkIGV4cGVyaW1lbnRhbCBiYXNlbGV2ZWwuCisJIyAxLjIgdXNlcyAiMS4yIiBmb3IgdW5hbWUgLXIuCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCisJZXhpdCAwIDs7CisgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/CisJIyBTaG91bGQgd2UgY2hhbmdlIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkCisJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/CisJZWNobyBhbHBoYS1wYy1pbnRlcml4CisJZXhpdCAwIDs7CisgICAgMjEwNjQ6V2luZG93c19OVDo1MDozKQorCWVjaG8gYWxwaGEtZGVjLXdpbm50My41CisJZXhpdCAwIDs7CisgICAgQW1pZ2EqOlVOSVhfU3lzdGVtX1Y6NC4wOiopCisJZWNobyBtNjhrLXVua25vd24tc3lzdjQKKwlleGl0IDA7OworICAgICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcworCWV4aXQgMCA7OworICAgICo6W01tXW9ycGhbT29dW1NzXToqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbW9ycGhvcworCWV4aXQgMCA7OworICAgICo6T1MvMzkwOio6KikKKwllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCisJZXhpdCAwIDs7CisgICAgKjp6L1ZNOio6KikKKwllY2hvIHMzOTAtaWJtLXp2bW9lCisJZXhpdCAwIDs7CisgICAgKjpPUzQwMDoqOiopCisgICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKKwlleGl0IDAgOzsKKyAgICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCisJZWNobyBhcm0tYWNvcm4tcmlzY2l4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMDs7CisgICAgU1IyPzAxOkhJLVVYL01QUDoqOiogfCBTUjgwMDA6SEktVVgvTVBQOio6KikKKwllY2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCisJZXhpdCAwOzsKKyAgICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKKwkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgorCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KKwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKKwllbHNlCisJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAorCWZpCisJZXhpdCAwIDs7CisgICAgTklMRSo6KjoqOmRjb3N4KQorCWVjaG8gcHlyYW1pZC1weXJhbWlkLXN2cjQKKwlleGl0IDAgOzsKKyAgICBEUlM/NjAwMDp1bml4OjQuMDo2KikKKwllY2hvIHNwYXJjLWljbC1ueDYKKwlleGl0IDAgOzsKKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCisJY2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCisJICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDcgJiYgZXhpdCAwIDs7CisJZXNhYyA7OworICAgIHN1bjRIOlN1bk9TOjUuKjoqKQorCWVjaG8gc3BhcmMtaGFsLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisJZXhpdCAwIDs7CisgICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgMCA7OworICAgIGk4NnBjOlN1bk9TOjUuKjoqKQorCWVjaG8gaTM4Ni1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgMCA7OworICAgIHN1bjQqOlN1bk9TOjYqOiopCisJIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBjYW5vbmljYWxpemUKKwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAorCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCisJZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDAgOzsKKyAgICBzdW40KjpTdW5PUzoqOiopCisJY2FzZSAiYC91c3IvYmluL2FyY2ggLWtgIiBpbgorCSAgICBTZXJpZXMqfFM0KikKKwkJVU5BTUVfUkVMRUFTRT1gdW5hbWUgLXZgCisJCTs7CisJZXNhYworCSMgSmFwYW5lc2UgTGFuZ3VhZ2UgdmVyc2lvbnMgaGF2ZSBhIHZlcnNpb24gbnVtYmVyIGxpa2UgYDQuMS4zLUpMJy4KKwllY2hvIHNwYXJjLXN1bi1zdW5vc2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAorCWV4aXQgMCA7OworICAgIHN1bjMqOlN1bk9TOio6KikKKwllY2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIHN1bio6Kjo0LjJCU0Q6KikKKwlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90ZCB8IGF3ayAne3ByaW50IHN1YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAorCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KKwkgICAgc3VuMykKKwkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKwkJOzsKKwkgICAgc3VuNCkKKwkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJCTs7CisJZXNhYworCWV4aXQgMCA7OworICAgIGF1c2hwOlN1bk9TOio6KikKKwllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0bGUgY29uZnVzaW5nLiAgVGhlIG1hY2hpbmUgbmFtZQorICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRoaW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAorICAgICMgImF0YXJpc3QiIG9yICJhdGFyaXN0ZSIgYXQgbGVhc3Qgc2hvdWxkIGhhdmUgYSBwcm9jZXNzb3IKKyAgICAjID4gbTY4MDAwKS4gIFRoZSBzeXN0ZW0gbmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQiCisgICAgIyB0byB0aGUgbG93ZXJjYXNlIHZlcnNpb24gIm1pbnQiIChvciAiZnJlZW1pbnQiKS4gIEZpbmFsbHkKKyAgICAjIHRoZSBzeXN0ZW0gbmFtZSAiVE9TIiBkZW5vdGVzIGEgc3lzdGVtIHdoaWNoIGlzIGFjdHVhbGx5IG5vdAorICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRvd253YXJkIGNvbXBhdGlibGUgdG8gVE9TLCBzbyB0aGlzIHNob3VsZAorICAgICMgYmUgbm8gcHJvYmxlbS4KKyAgICBhdGFyaXN0W2VdOipNaU5UOio6KiB8IGF0YXJpc3RbZV06Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToqVE9TOio6KikKKyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorICAgICAgICBleGl0IDAgOzsKKyAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKKyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgbWlsYW4qOipNaU5UOio6KiB8IG1pbGFuKjoqbWludDoqOiogfCAqbWlsYW4qOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstbWlsYW4tbWludCR7VU5BTUVfUkVMRUFTRX0KKyAgICAgICAgZXhpdCAwIDs7CisgICAgaGFkZXMqOipNaU5UOio6KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQorICAgICAgICBlY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KKyAgICAgICAgZXhpdCAwIDs7CisgICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCisgICAgICAgIGVjaG8gbTY4ay11bmtub3duLW1pbnQke1VOQU1FX1JFTEVBU0V9CisgICAgICAgIGV4aXQgMCA7OworICAgIG02OGs6bWFjaHRlbjoqOiopCisJZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgcG93ZXJwYzptYWNodGVuOio6KikKKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBSSVNDKjpNYWNoOio6KikKKwllY2hvIG1pcHMtZGVjLW1hY2hfYnNkNC4zCisJZXhpdCAwIDs7CisgICAgUklTQyo6VUxUUklYOio6KikKKwllY2hvIG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBWQVgqOlVMVFJJWCo6KjoqKQorCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiopCisJZWNobyBjbGlwcGVyLWludGVyZ3JhcGgtY2xpeCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBtaXBzOio6KjpVTUlQUyB8IG1pcHM6KjoqOlJJU0NvcykKKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKyNpZmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJpbnRmKCkgcHJvdG90eXBlICovCisJaW50IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKyNlbHNlCisJaW50IG1haW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICphcmd2W107IHsKKyNlbmRpZgorCSNpZiBkZWZpbmVkIChob3N0X21pcHMpICYmIGRlZmluZWQgKE1JUFNFQikKKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9TWVNWKQorCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3lzdlxuIiwgYXJndlsxXSk7IGV4aXQgKDApOworCSNlbmRpZgorCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NWUjQpCisJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzdnI0XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7CisJI2VuZGlmCisJI2lmIGRlZmluZWQgKFNZU1RZUEVfQlNENDMpIHx8IGRlZmluZWQoU1lTVFlQRV9CU0QpCisJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNic2RcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKwkjZW5kaWYKKwkjZW5kaWYKKwkgIGV4aXQgKC0xKTsKKwl9CitFT0YKKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyBcCisJICAmJiAkZHVtbXkgYGVjaG8gIiR7VU5BTUVfUkVMRUFTRX0iIHwgc2VkIC1uICdzL1woWzAtOV0qXCkuKi9cMS9wJ2AgXAorCSAgJiYgZXhpdCAwCisJZWNobyBtaXBzLW1pcHMtcmlzY29zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIE1vdG9yb2xhOlBvd2VyTUFYX09TOio6KikKKwllY2hvIHBvd2VycGMtbW90b3JvbGEtcG93ZXJtYXgKKwlleGl0IDAgOzsKKyAgICBNb3Rvcm9sYToqOjQuMzpQTDgtKikKKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisJZXhpdCAwIDs7CisgICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5OlBvd2VyTUFYX09TOio6KikKKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisJZXhpdCAwIDs7CisgICAgTmlnaHRfSGF3azpQb3dlcl9VTklYOio6KikKKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VydW5peAorCWV4aXQgMCA7OworICAgIG04OGs6Q1gvVVg6Nyo6KikKKwllY2hvIG04OGstaGFycmlzLWN4dXg3CisJZXhpdCAwIDs7CisgICAgbTg4azoqOjQqOlI0KikKKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjQKKwlleGl0IDAgOzsKKyAgICBtODhrOio6Myo6UjMqKQorCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MworCWV4aXQgMCA7OworICAgIEFWaWlPTjpkZ3V4Oio6KikKKyAgICAgICAgIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKKyAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKKwlpZiBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTAwIF0gfHwgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODExMCBdCisJdGhlbgorCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtkZ3V4ZWxmeCBdIHx8IFwKKwkgICAgICAgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSB4IF0KKwkgICAgdGhlbgorCQllY2hvIG04OGstZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KKwkgICAgZWxzZQorCQllY2hvIG04OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KKwkgICAgZmkKKwllbHNlCisJICAgIGVjaG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQorCWZpCisgCWV4aXQgMCA7OworICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCisJZWNobyBtODhrLWRvbHBoaW4tc3lzdjMKKwlleGl0IDAgOzsKKyAgICBNODgqOio6UjMqOiopCisJIyBEZWx0YSA4OGsgc3lzdGVtIHJ1bm5pbmcgU1ZSMworCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MworCWV4aXQgMCA7OworICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQorCWVjaG8gbTg4ay10ZWt0cm9uaXgtc3lzdjMKKwlleGl0IDAgOzsKKyAgICBUZWs0M1swLTldWzAtOV06VVRlazoqOiopICMgVGVrdHJvbml4IDQzMDAgc3lzdGVtIHJ1bm5pbmcgVVRlayAoQlNEKQorCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCisJZXhpdCAwIDs7CisgICAgKjpJUklYKjoqOiopCisJZWNobyBtaXBzLXNnaS1pcml4YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvLS9fL2cnYAorCWV4aXQgMCA7OworICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KKwllY2hvIHJvbXAtaWJtLWFpeCAgICAgICMgdW5hbWUgLW0gZ2l2ZXMgYW4gOCBoZXgtY29kZSBDUFUgaWQKKwlleGl0IDAgOzsgICAgICAgICAgICAgICMgTm90ZSB0aGF0OiBlY2hvICInYHVuYW1lIC1zYCciIGdpdmVzICdBSVggJworICAgIGkqODY6QUlYOio6KikKKwllY2hvIGkzODYtaWJtLWFpeAorCWV4aXQgMCA7OworICAgIGlhNjQ6QUlYOio6KikKKwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KKwkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKKwllbHNlCisJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9CisJZmkKKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJtLWFpeCR7SUJNX1JFVn0KKwlleGl0IDAgOzsKKyAgICAqOkFJWDoyOjMpCisJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+CisKKwkJbWFpbigpCisJCQl7CisJCQlpZiAoIV9fcG93ZXJfcGMoKSkKKwkJCQlleGl0KDEpOworCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKKwkJCWV4aXQoMCk7CisJCQl9CitFT0YKKwkJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgJGR1bW15ICYmIGV4aXQgMAorCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKKwllbGlmIGdyZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKKwllbHNlCisJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIKKwlmaQorCWV4aXQgMCA7OworICAgICo6QUlYOio6WzQ1XSkKKwlJQk1fQ1BVX0lEPWAvdXNyL3NiaW4vbHNkZXYgLUMgLWMgcHJvY2Vzc29yIC1TIGF2YWlsYWJsZSB8IHNlZCAxcSB8IGF3ayAneyBwcmludCAkMSB9J2AKKwlpZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKwkJSUJNX0FSQ0g9cnM2MDAwCisJZWxzZQorCQlJQk1fQVJDSD1wb3dlcnBjCisJZmkKKwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KKwkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKKwllbHNlCisJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9CisJZmkKKwllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9CisJZXhpdCAwIDs7CisgICAgKjpBSVg6KjoqKQorCWVjaG8gcnM2MDAwLWlibS1haXgKKwlleGl0IDAgOzsKKyAgICBpYm1ydDo0LjRCU0Q6Knxyb21wLWlibTpCU0Q6KikKKwllY2hvIHJvbXAtaWJtLWJzZDQuNAorCWV4aXQgMCA7OworICAgIGlibXJ0OipCU0Q6Knxyb21wLWlibTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCisJZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bworCWV4aXQgMCA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVwb3J0OiByb21wLWlibSBCU0QgNC4zCisgICAgKjpCT1NYOio6KikKKwllY2hvIHJzNjAwMC1idWxsLWJvc3gKKwlleGl0IDAgOzsKKyAgICBEUFgvMj8wMDpCLk8uUy46KjoqKQorCWVjaG8gbTY4ay1idWxsLXN5c3YzCisJZXhpdCAwIDs7CisgICAgOTAwMC9bMzRdPz86NC4zYnNkOjEuKjoqKQorCWVjaG8gbTY4ay1ocC1ic2QKKwlleGl0IDAgOzsKKyAgICBocDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIuKjoqKQorCWVjaG8gbTY4ay1ocC1ic2Q0LjQKKwlleGl0IDAgOzsKKyAgICA5MDAwL1szNDY3OF0/PzpIUC1VWDoqOiopCisJSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCisJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KKwkgICAgOTAwMC8zMT8gKSAgICAgICAgICAgIEhQX0FSQ0g9bTY4MDAwIDs7CisJICAgIDkwMDAvWzM0XT8/ICkgICAgICAgICBIUF9BUkNIPW02OGsgOzsKKwkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCisJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCisJCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19DUFVfVkVSU0lPTiAyPi9kZXYvbnVsbGAKKyAgICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgorICAgICAgICAgICAgICAgICAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFfMAorICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQorICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OworCQkJICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEwLjIwCisgICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7CisgICAgICAgICAgICAgICAgICAgIGVzYWMKKwkJZmkKKwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCisJCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8nIDw8IEVPRiA+JGR1bW15LmMKKworICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQorICAgICAgICAgICAgICAjaW5jbHVkZSA8c3RkbGliLmg+CisgICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KKworICAgICAgICAgICAgICBpbnQgbWFpbiAoKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKyAgICAgICAgICAgICAgICAgIGxvbmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsKKyAgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOworCisgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkKKyAgICAgICAgICAgICAgCXsKKyAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzA6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOworICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7CisgICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgorICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQorICAgICAgICAgICAgICAJCXsKKyAgICAgICAgICAgICAgCQljYXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7CisgICAgICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOworICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOworICAgICAgICAgICAgICAJCX0gYnJlYWs7CisgICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpICovCisgICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisgICAgICAgICAgICAgIAl9CisgICAgICAgICAgICAgICAgICBleGl0ICgwKTsKKyAgICAgICAgICAgICAgfQorRU9GCisJCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAorCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQorCQlmaSA7OworCWVzYWMKKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KKwl0aGVuCisJICAgICMgYXZvaWQgZG91YmxlIGV2YWx1YXRpb24gb2YgJHNldF9jY19mb3JfYnVpbGQKKwkgICAgdGVzdCAtbiAiJENDX0ZPUl9CVUlMRCIgfHwgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCSAgICBpZiBlY2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtKSB8IGdyZXAgX19MUDY0X18gPi9kZXYvbnVsbAorCSAgICB0aGVuCisJCUhQX0FSQ0g9ImhwcGEyLjB3IgorCSAgICBlbHNlCisJCUhQX0FSQ0g9ImhwcGE2NCIKKwkgICAgZmkKKwlmaQorCWVjaG8gJHtIUF9BUkNIfS1ocC1ocHV4JHtIUFVYX1JFVn0KKwlleGl0IDAgOzsKKyAgICBpYTY0OkhQLVVYOio6KikKKwlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AKKwllY2hvIGlhNjQtaHAtaHB1eCR7SFBVWF9SRVZ9CisJZXhpdCAwIDs7CisgICAgMzA1MCo6SEktVVg6KjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSNpbmNsdWRlIDx1bmlzdGQuaD4KKwlpbnQKKwltYWluICgpCisJeworCSAgbG9uZyBjcHUgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOworCSAgLyogVGhlIG9yZGVyIG1hdHRlcnMsIGJlY2F1c2UgQ1BVX0lTX0hQX01DNjhLIGVycm9uZW91c2x5IHJldHVybnMKKwkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0CisJICAgICByZXN1bHRzLCBob3dldmVyLiAgKi8KKwkgIGlmIChDUFVfSVNfUEFfUklTQyAoY3B1KSkKKwkgICAgeworCSAgICAgIHN3aXRjaCAoY3B1KQorCQl7CisJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKwkJICBjYXNlIENQVV9QQV9SSVNDMl8wOiBwdXRzICgiaHBwYTIuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisJCSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworCQl9CisJICAgIH0KKwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKKwkgICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7CisJICBlbHNlIHB1dHMgKCJ1bmtub3duLWhpdGFjaGktaGl1eHdlMiIpOworCSAgZXhpdCAoMCk7CisJfQorRU9GCisJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgJGR1bW15ICYmIGV4aXQgMAorCWVjaG8gdW5rbm93bi1oaXRhY2hpLWhpdXh3ZTIKKwlleGl0IDAgOzsKKyAgICA5MDAwLzc/Pzo0LjNic2Q6KjoqIHwgOTAwMC84P1s3OV06NC4zYnNkOio6KiApCisJZWNobyBocHBhMS4xLWhwLWJzZAorCWV4aXQgMCA7OworICAgIDkwMDAvOD8/OjQuM2JzZDoqOiopCisJZWNobyBocHBhMS4wLWhwLWJzZAorCWV4aXQgMCA7OworICAgICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBFL2lYOio6KikKKwllY2hvIGhwcGExLjAtaHAtbXBlaXgKKwlleGl0IDAgOzsKKyAgICBocDc/PzpPU0YxOio6KiB8IGhwOD9bNzldOk9TRjE6KjoqICkKKwllY2hvIGhwcGExLjEtaHAtb3NmCisJZXhpdCAwIDs7CisgICAgaHA4Pz86T1NGMToqOiopCisJZWNobyBocHBhMS4wLWhwLW9zZgorCWV4aXQgMCA7OworICAgIGkqODY6T1NGMToqOiopCisJaWYgWyAteCAvdXNyL3NiaW4vc3lzdmVyc2lvbiBdIDsgdGhlbgorCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxbWsKKwllbHNlCisJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjEKKwlmaQorCWV4aXQgMCA7OworICAgIHBhcmlzYyo6TGl0ZXMqOio6KikKKwllY2hvIGhwcGExLjEtaHAtbGl0ZXMKKwlleGl0IDAgOzsKKyAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQorCWVjaG8gYzEtY29udmV4LWJzZAorICAgICAgICBleGl0IDAgOzsKKyAgICBDMio6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMyKjoqKQorCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYworCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCisJZmkKKyAgICAgICAgZXhpdCAwIDs7CisgICAgQzM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM0KjoqKQorCWVjaG8gYzM0LWNvbnZleC1ic2QKKyAgICAgICAgZXhpdCAwIDs7CisgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQorCWVjaG8gYzM4LWNvbnZleC1ic2QKKyAgICAgICAgZXhpdCAwIDs7CisgICAgQzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDNCo6KikKKwllY2hvIGM0LWNvbnZleC1ic2QKKyAgICAgICAgZXhpdCAwIDs7CisgICAgQ1JBWSpZLU1QOio6KjoqKQorCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCAwIDs7CisgICAgQ1JBWSpbQS1aXTkwOio6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAorCXwgc2VkIC1lICdzL0NSQVkuKlwoW0EtWl05MFwpL1wxLycgXAorCSAgICAgIC1lIHkvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVovYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXovIFwKKwkgICAgICAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCAwIDs7CisgICAgQ1JBWSpUUzoqOio6KikKKwllY2hvIHQ5MC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworCWV4aXQgMCA7OworICAgIENSQVkqVDNFOio6KjoqKQorCWVjaG8gYWxwaGFldjUtY3JheS11bmljb3NtayR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworCWV4aXQgMCA7OworICAgIENSQVkqU1YxOio6KjoqKQorCWVjaG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCisJZXhpdCAwIDs7CisgICAgKjpVTklDT1MvbXA6KjoqKQorCWVjaG8gY3JheW52LWNyYXktdW5pY29zbXAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDAgOzsKKyAgICBGMzBbMDFdOlVOSVhfU3lzdGVtX1Y6KjoqIHwgRjcwMDpVTklYX1N5c3RlbV9WOio6KikKKwlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAorICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCisgICAgICAgIEZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvIC9fLydgCisgICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisgICAgICAgIGV4aXQgMCA7OworICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKKyAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAorICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAorICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisJZXhpdCAwIDs7CisgICAgaSo4NjpCU0QvMzg2Oio6KiB8IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWJzZGkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgc3BhcmMqOkJTRC9PUzoqOiopCisJZWNobyBzcGFyYy11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgKjpCU0QvT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgKjpGcmVlQlNEOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYAorCWV4aXQgMCA7OworICAgIGkqOkNZR1dJTio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtY3lnd2luCisJZXhpdCAwIDs7CisgICAgaSo6TUlOR1cqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbmd3MzIKKwlleGl0IDAgOzsKKyAgICBpKjpQVyo6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtcHczMgorCWV4aXQgMCA7OworICAgIHg4NjpJbnRlcml4KjpbMzRdKikKKwllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1wuLiovLycKKwlleGl0IDAgOzsKKyAgICBbMzQ1XTg2OldpbmRvd3NfOTU6KiB8IFszNDVdODY6V2luZG93c185ODoqIHwgWzM0NV04NjpXaW5kb3dzX05UOiopCisJZWNobyBpJHtVTkFNRV9NQUNISU5FfS1wYy1ta3MKKwlleGl0IDAgOzsKKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/CisJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/CisJZWNobyBpNTg2LXBjLWludGVyaXgKKwlleGl0IDAgOzsKKyAgICBpKjpVV0lOKjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy11d2luCisJZXhpdCAwIDs7CisgICAgcCo6Q1lHV0lOKjoqKQorCWVjaG8gcG93ZXJwY2xlLXVua25vd24tY3lnd2luCisJZXhpdCAwIDs7CisgICAgcHJlcCo6U3VuT1M6NS4qOiopCisJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgMCA7OworICAgICo6R05VOio6KikKKwkjIHRoZSBHTlUgc3lzdGVtCisJZWNobyBgZWNobyAke1VOQU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCisJZXhpdCAwIDs7CisgICAgKjpHTlUvKjoqOiopCisJIyBvdGhlciBzeXN0ZW1zIHdpdGggR05VIGxpYmMgYW5kIHVzZXJsYW5kCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYGVjaG8gJHtVTkFNRV9TWVNURU19IHwgc2VkICdzLF5bXi9dKi8sLCcgfCB0ciAnW0EtWl0nICdbYS16XSdgYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYC1nbnUKKwlleGl0IDAgOzsKKyAgICBpKjg2Ok1pbml4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKKwlleGl0IDAgOzsKKyAgICBhcm0qOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBjcmlzOkxpbnV4Oio6KikKKwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBjcmlzdjMyOkxpbnV4Oio6KikKKwllY2hvIGNyaXN2MzItYXhpcy1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBmcnY6TGludXg6KjoqKQorICAgIAllY2hvIGZydi11bmtub3duLWxpbnV4LWdudQorCWV4aXQgMCA7OworICAgIGlhNjQ6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgMCA7OworICAgIG0zMnIqOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBtNjgqOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBtaXBzOkxpbnV4Oio6KikKKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKwkjdW5kZWYgQ1BVCisJI3VuZGVmIG1pcHMKKwkjdW5kZWYgbWlwc2VsCisJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKKwlDUFU9bWlwc2VsCisJI2Vsc2UKKwkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQorCUNQVT1taXBzCisJI2Vsc2UKKwlDUFU9CisJI2VuZGlmCisJI2VuZGlmCitFT0YKKwlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeQ1BVPWAKKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSIgJiYgZXhpdCAwCisJOzsKKyAgICBtaXBzNjQ6TGludXg6KjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSN1bmRlZiBDUFUKKwkjdW5kZWYgbWlwczY0CisJI3VuZGVmIG1pcHM2NGVsCisJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKKwlDUFU9bWlwczY0ZWwKKwkjZWxzZQorCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCisJQ1BVPW1pcHM2NAorCSNlbHNlCisJQ1BVPQorCSNlbmRpZgorCSNlbmRpZgorRU9GCisJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkNQVT1gCisJdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiBlY2hvICIke0NQVX0tdW5rbm93bi1saW51eC1nbnUiICYmIGV4aXQgMAorCTs7CisgICAgcHBjOkxpbnV4Oio6KikKKwllY2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBwcGM2NDpMaW51eDoqOiopCisJZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBhbHBoYTpMaW51eDoqOiopCisJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KKwkgIEVWNSkgICBVTkFNRV9NQUNISU5FPWFscGhhZXY1IDs7CisJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYgOzsKKwkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKKwkgIFBDQTU3KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7CisJICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKKwkgIEVWNjgqKSBVTkFNRV9NQUNISU5FPWFscGhhZXY2OCA7OworICAgICAgICBlc2FjCisJb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKKwlpZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KKwlleGl0IDAgOzsKKyAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCisJIyBMb29rIGZvciBDUFUgbGV2ZWwKKwljYXNlIGBncmVwICdeY3B1W15hLXpdKjonIC9wcm9jL2NwdWluZm8gMj4vZGV2L251bGwgfCBjdXQgLWQnICcgLWYyYCBpbgorCSAgUEE3KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtZ251IDs7CisJICBQQTgqKSBlY2hvIGhwcGEyLjAtdW5rbm93bi1saW51eC1nbnUgOzsKKwkgICopICAgIGVjaG8gaHBwYS11bmtub3duLWxpbnV4LWdudSA7OworCWVzYWMKKwlleGl0IDAgOzsKKyAgICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGludXg6KjoqKQorCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251CisJZXhpdCAwIDs7CisgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1saW51eAorCWV4aXQgMCA7OworICAgIHNoNjQqOkxpbnV4Oio6KikKKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCAwIDs7CisgICAgc2gqOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDAgOzsKKyAgICB4ODZfNjQ6TGludXg6KjoqKQorCWVjaG8geDg2XzY0LXVua25vd24tbGludXgtZ251CisJZXhpdCAwIDs7CisgICAgaSo4NjpMaW51eDoqOiopCisJIyBUaGUgQkZEIGxpbmtlciBrbm93cyB3aGF0IHRoZSBkZWZhdWx0IG9iamVjdCBmaWxlIGZvcm1hdCBpcywgc28KKwkjIGZpcnN0IHNlZSBpZiBpdCB3aWxsIHRlbGwgdXMuIGNkIHRvIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmV2ZW50CisJIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVjdG9yaWVzIGNhbGxlZCBgbGQnIGluIHRoZSBwYXRoLgorCSMgU2V0IExDX0FMTD1DIHRvIGVuc3VyZSBsZCBvdXRwdXRzIG1lc3NhZ2VzIGluIEVuZ2xpc2guCisJbGRfc3VwcG9ydGVkX3RhcmdldHM9YGNkIC87IExDX0FMTD1DIGxkIC0taGVscCAyPiYxIFwKKwkJCSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQgdGFyZ2V0czovIWQKKwkJCQkgICAgcy9bIAldWyAJXSovIC9nCisJCQkJICAgIHMvLipzdXBwb3J0ZWQgdGFyZ2V0czogKi8vCisJCQkJICAgIHMvIC4qLy8KKwkJCQkgICAgcCdgCisgICAgICAgIGNhc2UgIiRsZF9zdXBwb3J0ZWRfdGFyZ2V0cyIgaW4KKwkgIGVsZjMyLWkzODYpCisJCVRFTlRBVElWRT0iJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnUiCisJCTs7CisJICBhLm91dC1pMzg2LWxpbnV4KQorCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWFvdXQiCisJCWV4aXQgMCA7OworCSAgY29mZi1pMzg2KQorCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWNvZmYiCisJCWV4aXQgMCA7OworCSAgIiIpCisJCSMgRWl0aGVyIGEgcHJlLUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgorCQkjIG9uZSB0aGF0IGRvZXMgbm90IGdpdmUgdXMgdXNlZnVsIC0taGVscC4KKwkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVvbGRsZCIKKwkJZXhpdCAwIDs7CisJZXNhYworCSMgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCisJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisJI2lmZGVmIF9fRUxGX18KKwkjIGlmZGVmIF9fR0xJQkNfXworCSMgIGlmIF9fR0xJQkNfXyA+PSAyCisJTElCQz1nbnUKKwkjICBlbHNlCisJTElCQz1nbnVsaWJjMQorCSMgIGVuZGlmCisJIyBlbHNlCisJTElCQz1nbnVsaWJjMQorCSMgZW5kaWYKKwkjZWxzZQorCSNpZmRlZiBfX0lOVEVMX0NPTVBJTEVSCisJTElCQz1nbnUKKwkjZWxzZQorCUxJQkM9Z251YW91dAorCSNlbmRpZgorCSNlbmRpZgorCSNpZmRlZiBfX2RpZXRsaWJjX18KKwlMSUJDPWRpZXRsaWJjCisJI2VuZGlmCitFT0YKKwlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeTElCQz1gCisJdGVzdCB4IiR7TElCQ30iICE9IHggJiYgZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9IiAmJiBleGl0IDAKKwl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIGVjaG8gIiR7VEVOVEFUSVZFfSIgJiYgZXhpdCAwCisJOzsKKyAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQorCSMgcHR4IDQuMCBkb2VzIHVuYW1lIC1zIGNvcnJlY3RseSwgd2l0aCBEWU5JWC9wdHggaW4gdGhlcmUuCisJIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUgaW4gYm90aAorCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCisJZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKKwlleGl0IDAgOzsKKyAgICBpKjg2OlVOSVhfU1Y6NC4yTVA6Mi4qKQorICAgICAgICAjIFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJzaW9uCisgICAgICAgICMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3aXRoIDIuLi4KKyAgICAgICAgIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lzdGVtcyB3b24ndCBtYXRjaCB0aGlzLAorCSMgSSBqdXN0IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KKyAgICAgICAgIyBVc2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0LjJ1dyR7VU5BTUVfVkVSU0lPTn0KKwlleGl0IDAgOzsKKyAgICBpKjg2Ok9TLzI6KjoqKQorCSMgSWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBFTVggVW5peCBjb21wYXRpYmlsaXR5CisJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW9zMi1lbXgKKwlleGl0IDAgOzsKKyAgICBpKjg2OlhUUy0zMDA6KjpTVE9QKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKKwlleGl0IDAgOzsKKyAgICBpKjg2OmF0aGVvczoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYXRoZW9zCisJZXhpdCAwIDs7CisJaSo4NjpzeWxsYWJsZToqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxlCisJZXhpdCAwIDs7CisgICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5bnhPUzo0LjAqOiopCisJZWNobyBpMzg2LXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIGkqODY6KkRPUzoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1zZG9zZGpncHAKKwlleGl0IDAgOzsKKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQorCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkICdzL1wvTVAkLy8nYAorCWlmIGdyZXAgTm92ZWxsIC91c3IvaW5jbHVkZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KKwllbHNlCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9CisJZmkKKwlleGl0IDAgOzsKKyAgICBpKjg2Oio6NTpbNzhdKikKKwljYXNlIGAvYmluL3VuYW1lIC1YIHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgorCSAgICAqNDg2KikJICAgICBVTkFNRV9NQUNISU5FPWk0ODYgOzsKKwkgICAgKlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7CisJICAgICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElORT1pNjg2IDs7CisJZXNhYworCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9JHtVTkFNRV9TWVNURU19JHtVTkFNRV9WRVJTSU9OfQorCWV4aXQgMCA7OworICAgIGkqODY6KjozLjI6KikKKwlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCisJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKKwllbGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KKwkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAorCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAorCWVsc2UKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorCWZpCisJZXhpdCAwIDs7CisgICAgcGM6KjoqOiopCisJIyBMZWZ0IGhlcmUgZm9yIGNvbXBhdGliaWxpdHk6CisgICAgICAgICMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0CisgICAgICAgICMgdGhlIHByb2Nlc3Nvciwgc28gd2UgcGxheSBzYWZlIGJ5IGFzc3VtaW5nIGkzODYuCisJZWNobyBpMzg2LXBjLW1zZG9zZGpncHAKKyAgICAgICAgZXhpdCAwIDs7CisgICAgSW50ZWw6TWFjaDozKjoqKQorCWVjaG8gaTM4Ni1wYy1tYWNoMworCWV4aXQgMCA7OworICAgIHBhcmFnb246KjoqOiopCisJZWNobyBpODYwLWludGVsLW9zZjEKKwlleGl0IDAgOzsKKyAgICBpODYwOio6NC4qOiopICMgaTg2MC1TVlI0CisJaWYgZ3JlcCBTdGFyZGVudCAvdXNyL2luY2x1ZGUvc3lzL3VhZG1pbi5oID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKwkgIGVjaG8gaTg2MC1zdGFyZGVudC1zeXN2JHtVTkFNRV9SRUxFQVNFfSAjIFN0YXJkZW50IFZpc3RyYSBpODYwLVNWUjQKKwllbHNlICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQuCisJICBlY2hvIGk4NjAtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfSAgIyBVbmtub3duIGk4NjAtU1ZSNAorCWZpCisJZXhpdCAwIDs7CisgICAgbWluaSo6Q1RJWDpTWVMqNToqKQorCSMgIm1pbmlmcmFtZSIKKwllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKKwlleGl0IDAgOzsKKyAgICBtYzY4azpVTklYOlNZU1RFTTU6My41MW0pCisJZWNobyBtNjhrLWNvbnZlcmdlbnQtc3lzdgorCWV4aXQgMCA7OworICAgIE02ODA/MDpELU5JWDo1LjM6KikKKwllY2hvIG02OGstZGlhYi1kbml4CisJZXhpdCAwIDs7CisgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKKwl0ZXN0IC1yIC9zeXNWNjggJiYgZWNobyAnbTY4ay1tb3Rvcm9sYS1zeXN2JyAmJiBleGl0IDAgOzsKKyAgICAzWzM0NV0/PzoqOjQuMDozLjAgfCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDozLjAgfCBTS0E0MDoqOjQuMDozLjAgfCBTRFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwgUzc1MDEqOio6NC4wOjMuMCkKKwlPU19SRUw9JycKKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKwkmJiBPU19SRUw9LmBzZWQgLW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAorCSAgJiYgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9ICYmIGV4aXQgMAorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAorCSAgJiYgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9ICYmIGV4aXQgMCA7OworICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQorICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKyAgICAgICAgICAmJiBlY2hvIGk0ODYtbmNyLXN5c3Y0ICYmIGV4aXQgMCA7OworICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQorCWVjaG8gbTY4ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBtYzY4MDMwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCisJZWNobyBtNjhrLWF0YXJpLXN5c3Y0CisJZXhpdCAwIDs7CisgICAgVFNVTkFNSTpMeW54T1M6Mi4qOiopCisJZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICByczYwMDA6THlueE9TOjIuKjoqKQorCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC4wKjoqKQorCWVjaG8gcG93ZXJwYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBTTVtCRV1TOlVOSVhfU1Y6KjoqKQorCWVjaG8gbWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBSTSo6UmVsaWFudFVOSVgtKjoqOiopCisJZWNobyBtaXBzLXNuaS1zeXN2NAorCWV4aXQgMCA7OworICAgIFJNKjpTSU5JWC0qOio6KikKKwllY2hvIG1pcHMtc25pLXN5c3Y0CisJZXhpdCAwIDs7CisgICAgKjpTSU5JWC0qOio6KikKKwlpZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgorCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAorCQllY2hvICR7VU5BTUVfTUFDSElORX0tc25pLXN5c3Y0CisJZWxzZQorCQllY2hvIG5zMzJrLXNuaS1zeXN2CisJZmkKKwlleGl0IDAgOzsKKyAgICBQRU5USVVNOio6NC4wKjoqKSAjIFVuaXN5cyBgQ2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAorICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKyAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAorICAgICAgICBleGl0IDAgOzsKKyAgICAqOlVOSVhfU3lzdGVtX1Y6NCo6RlRYKikKKwkjIEZyb20gR2VyYWxkIEhld2VzIDxoZXdlc0BvcGVubWFya2V0LmNvbT4uCisJIyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1cyBhcmNoaXRlY3R1cmVzPyAtZGptCisJZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQKKwlleGl0IDAgOzsKKyAgICAqOio6KjpGVFgqKQorCSMgRnJvbSBzZWFuZkBzd2RjLnN0cmF0dXMuY29tLgorCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0CisJZXhpdCAwIDs7CisgICAgKjpWT1M6KjoqKQorCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgorCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXZvcworCWV4aXQgMCA7OworICAgIG1jNjgqOkEvVVg6KjoqKQorCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgbmV3cyo6TkVXUy1PUzo2KjoqKQorCWVjaG8gbWlwcy1zb255LW5ld3NvczYKKwlleGl0IDAgOzsKKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKKwlpZiBbIC1kIC91c3IvbmVjIF07IHRoZW4KKwkgICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKwllbHNlCisJICAgICAgICBlY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfQorCWZpCisgICAgICAgIGV4aXQgMCA7OworICAgIEJlQm94OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25seS4KKwllY2hvIHBvd2VycGMtYmUtYmVvcworCWV4aXQgMCA7OworICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBNYWMgb3IgTWFjIGNsb25lLCBQUEMgb25seS4KKwllY2hvIHBvd2VycGMtYXBwbGUtYmVvcworCWV4aXQgMCA7OworICAgIEJlUEM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCisJZWNobyBpNTg2LXBjLWJlb3MKKwlleGl0IDAgOzsKKyAgICBTWC00OlNVUEVSLVVYOio6KikKKwllY2hvIHN4NC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBTWC01OlNVUEVSLVVYOio6KikKKwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBTWC02OlNVUEVSLVVYOio6KikKKwllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQorCWVjaG8gcG93ZXJwYy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKKyAgICAqOlJoYXBzb2R5Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgKjpEYXJ3aW46KjoqKQorCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCisJY2FzZSAkVU5BTUVfUFJPQ0VTU09SIGluCisJICAgICo4NikgVU5BTUVfUFJPQ0VTU09SPWk2ODYgOzsKKwkgICAgdW5rbm93bikgVU5BTUVfUFJPQ0VTU09SPXBvd2VycGMgOzsKKwllc2FjCisJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUtZGFyd2luJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7OworICAgICo6cHJvY250byo6KjoqIHwgKjpRTlg6WzAxMjM0NTY3ODldKjoqKQorCVVOQU1FX1BST0NFU1NPUj1gdW5hbWUgLXBgCisJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhlbgorCQlVTkFNRV9QUk9DRVNTT1I9aTM4NgorCQlVTkFNRV9NQUNISU5FPXBjCisJZmkKKwllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS0ke1VOQU1FX01BQ0hJTkV9LW50by1xbngke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgKjpRTlg6Kjo0KikKKwllY2hvIGkzODYtcGMtcW54CisJZXhpdCAwIDs7CisgICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorCWVjaG8gbnNyLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgKjpOb25TdG9wLVVYOio6KikKKwllY2hvIG1pcHMtY29tcGFxLW5vbnN0b3B1eAorCWV4aXQgMCA7OworICAgIEJTMjAwMDpQT1NJWCo6KjoqKQorCWVjaG8gYnMyMDAwLXNpZW1lbnMtc3lzdgorCWV4aXQgMCA7OworICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LSR7VU5BTUVfU1lTVEVNfS0ke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgKjpQbGFuOToqOiopCisJIyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5cGUgaW5zdGVhZC4gMzg2CisJIyBpcyBjb252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKKwkjIG9wZXJhdGluZyBzeXN0ZW1zLgorCWlmIHRlc3QgIiRjcHV0eXBlIiA9ICIzODYiOyB0aGVuCisJICAgIFVOQU1FX01BQ0hJTkU9aTM4NgorCWVsc2UKKwkgICAgVU5BTUVfTUFDSElORT0iJGNwdXR5cGUiCisJZmkKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1wbGFuOQorCWV4aXQgMCA7OworICAgICo6VE9QUy0xMDoqOiopCisJZWNobyBwZHAxMC11bmtub3duLXRvcHMxMAorCWV4aXQgMCA7OworICAgICo6VEVORVg6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAorCWV4aXQgMCA7OworICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCisJZWNobyBwZHAxMC1kZWMtdG9wczIwCisJZXhpdCAwIDs7CisgICAgWEtMLTE6VE9QUy0yMDoqOiogfCBUWVBFNTpUT1BTLTIwOio6KikKKwllY2hvIHBkcDEwLXhrbC10b3BzMjAKKwlleGl0IDAgOzsKKyAgICAqOlRPUFMtMjA6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKKwlleGl0IDAgOzsKKyAgICAqOklUUzoqOiopCisJZWNobyBwZHAxMC11bmtub3duLWl0cworCWV4aXQgMCA7OworICAgIFNFSToqOio6U0VJVVgpCisgICAgICAgIGVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgKjpEcmFnb25GbHk6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKKwlleGl0IDAgOzsKKyAgICAqOipWTVM6KjoqKQorICAgIAlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAorCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCisJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgJiYgZXhpdCAwIDs7CisJICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZtcyAmJiBleGl0IDAgOzsKKwkgICAgViopIGVjaG8gdmF4LWRlYy12bXMgJiYgZXhpdCAwIDs7CisJZXNhYyA7OworICAgICo6WEVOSVg6KjpTeXNWKQorCWVjaG8gaTM4Ni1wYy14ZW5peAorCWV4aXQgMCA7OworZXNhYworCisjZWNobyAnKE5vIHVuYW1lIGNvbW1hbmQgb3IgdW5hbWUgb3V0cHV0IG5vdCByZWNvZ25pemVkLiknIDE+JjIKKyNlY2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIDE+JjIKKworZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorY2F0ID4kZHVtbXkuYyA8PEVPRgorI2lmZGVmIF9TRVFVRU5UXworIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyMgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKyNlbmRpZgorbWFpbiAoKQoreworI2lmIGRlZmluZWQgKHNvbnkpCisjaWYgZGVmaW5lZCAoTUlQU0VCKQorICAvKiBCRkQgd2FudHMgImJzZCIgaW5zdGVhZCBvZiAibmV3c29zIi4gIFBlcmhhcHMgQkZEIHNob3VsZCBiZSBjaGFuZ2VkLAorICAgICBJIGRvbid0IGtub3cuLi4uICAqLworICBwcmludGYgKCJtaXBzLXNvbnktYnNkXG4iKTsgZXhpdCAoMCk7CisjZWxzZQorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorICBwcmludGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCisjaWZkZWYgTkVXU09TNAorICAgICAgICAgICI0IgorI2Vsc2UKKwkgICIiCisjZW5kaWYKKyAgICAgICAgICk7IGV4aXQgKDApOworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fjb3JuKSAmJiBkZWZpbmVkIChfX3VuaXgpCisgIHByaW50ZiAoImFybS1hY29ybi1yaXNjaXgiKTsgZXhpdCAoMCk7CisjZW5kaWYKKworI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5lZCAoaHB1eCkKKyAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoTmVYVCkKKyNpZiAhZGVmaW5lZCAoX19BUkNISVRFQ1RVUkVfXykKKyNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKKyNlbmRpZgorICBpbnQgdmVyc2lvbjsKKyAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAtOV0qXCkuKi9cMS9wJykgMj4vZGV2L251bGxgOworICBpZiAodmVyc2lvbiA8IDQpCisgICAgcHJpbnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKKyAgZWxzZQorICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7CisgIGV4aXQgKDApOworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQorI2lmIGRlZmluZWQgKFVNQVhWKQorICBwcmludGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOworI2Vsc2UKKyNpZiBkZWZpbmVkIChDTVUpCisgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7CisjZWxzZQorICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7CisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfXzM4NkJTRF9fKQorICBwcmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChzZXF1ZW50KQorI2lmIGRlZmluZWQgKGkzODYpCisgIHByaW50ZiAoImkzODYtc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOworI2VuZGlmCisjaWYgZGVmaW5lZCAobnMzMjAwMCkKKyAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKKyAgICBzdHJ1Y3QgdXRzbmFtZSB1bjsKKworICAgIHVuYW1lKCZ1bik7CisKKyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjIiLCAyKSA9PSAwKSB7CisJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIpOyBleGl0ICgwKTsKKyAgICB9CisgICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYxIiwgMikgPT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8KKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MVxuIik7IGV4aXQgKDApOworICAgIH0KKyAgICBwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4XG4iKTsgZXhpdCAoMCk7CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAodmF4KQorIyBpZiAhZGVmaW5lZCAodWx0cml4KQorIyAgaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjICBpZiBkZWZpbmVkIChCU0QpCisjICAgaWYgQlNEID09IDQzCisgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM1xuIik7IGV4aXQgKDApOworIyAgIGVsc2UKKyMgICAgaWYgQlNEID09IDE5OTAwNgorICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNyZW5vXG4iKTsgZXhpdCAoMCk7CisjICAgIGVsc2UKKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7CisjICAgIGVuZGlmCisjICAgZW5kaWYKKyMgIGVsc2UKKyAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOworIyAgZW5kaWYKKyMgZWxzZQorICAgIHByaW50ZiAoInZheC1kZWMtdWx0cml4XG4iKTsgZXhpdCAoMCk7CisjIGVuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQgKGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCisgIHByaW50ZiAoImk4NjAtYWxsaWFudC1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorCisgIGV4aXQgKDEpOworfQorRU9GCisKKyRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsICYmICRkdW1teSAmJiBleGl0IDAKKworIyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgorCit0ZXN0IC1kIC91c3IvYXBvbGxvICYmIHsgZWNobyAke0lTUH0tYXBvbGxvLSR7U1lTVFlQRX07IGV4aXQgMDsgfQorCisjIENvbnZleCB2ZXJzaW9ucyB0aGF0IHByZWRhdGUgdW5hbWUgY2FuIHVzZSBnZXRzeXNpbmZvKDEpCisKK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCit0aGVuCisgICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KKyAgICBjMSopCisJZWNobyBjMS1jb252ZXgtYnNkCisJZXhpdCAwIDs7CisgICAgYzIqKQorCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYworCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCisJZmkKKwlleGl0IDAgOzsKKyAgICBjMzQqKQorCWVjaG8gYzM0LWNvbnZleC1ic2QKKwlleGl0IDAgOzsKKyAgICBjMzgqKQorCWVjaG8gYzM4LWNvbnZleC1ic2QKKwlleGl0IDAgOzsKKyAgICBjNCopCisJZWNobyBjNC1jb252ZXgtYnNkCisJZXhpdCAwIDs7CisgICAgZXNhYworZmkKKworY2F0ID4mMiA8PEVPRgorJDA6IHVuYWJsZSB0byBndWVzcyBzeXN0ZW0gdHlwZQorCitUaGlzIHNjcmlwdCwgbGFzdCBtb2RpZmllZCAkdGltZXN0YW1wLCBoYXMgZmFpbGVkIHRvIHJlY29nbml6ZQordGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQorZG93bmxvYWQgdGhlIG1vc3QgdXAgdG8gZGF0ZSB2ZXJzaW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBmcm9tCisKKyAgICBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L2NvbmZpZy8KKworSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCitzZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQorcGVydGluZW50IHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBpbiBvcmRlciB0byBwcm92aWRlIHRoZSBuZWVkZWQKK2luZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KKworY29uZmlnLmd1ZXNzIHRpbWVzdGFtcCA9ICR0aW1lc3RhbXAKKwordW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCit1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKK3VuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAordW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisKKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGxgCisvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGxgCisKK2hvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbGAKKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYAorL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGxgCisvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsYAorL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCisvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbGAKKworVU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KK1VOQU1FX1JFTEVBU0UgPSAke1VOQU1FX1JFTEVBU0V9CitVTkFNRV9TWVNURU0gID0gJHtVTkFNRV9TWVNURU19CitVTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQorRU9GCisKK2V4aXQgMQorCisjIExvY2FsIHZhcmlhYmxlczoKKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKKyMgdGltZS1zdGFtcC1lbmQ6ICInIgorIyBFbmQ6CmRpZmYgLS1naXQgYS9jb25maWcuaC5pbiBiL2NvbmZpZy5oLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMDQyOTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWcuaC5pbgpAQCAtMCwwICsxLDQxMiBAQAorLyogY29uZmlnLmguaW4uICBHZW5lcmF0ZWQgZnJvbSBjb25maWd1cmUuYWMgYnkgYXV0b2hlYWRlci4gICovCisKKy8qIERlZmluZSBmb3IgdGhlIEFscGhhIGFyY2hpdGVjdHVyZS4gKi8KKyN1bmRlZiBBTFBIQQorCisvKiBEZWZpbmUgZm9yIHRoZSBBUk0gYXJjaGl0ZWN0dXJlLiAqLworI3VuZGVmIEFSTQorCisvKiBEZWZpbmUgZm9yIHRoZSBGcmVlQlNEIG9wZXJhdGluZyBzeXN0ZW0uICovCisjdW5kZWYgRlJFRUJTRAorCisvKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5IHNldCBieSBgZ2V0Z3JvdXBzJy4gVXN1YWxseQorICAgdGhpcyBpcyBlaXRoZXIgYGludCcgb3IgYGdpZF90Jy4gKi8KKyN1bmRlZiBHRVRHUk9VUFNfVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFzbS9yZWcuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9BU01fUkVHX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc2lnY29udGV4dC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0FTTV9TSUdDT05URVhUX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhc20vc3lzbWlwcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0FTTV9TWVNNSVBTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGBzeXNfZXJybGlzdCcsIGFuZCB0byAwIGlmIHlvdQorICAgZG9uJ3QuICovCisjdW5kZWYgSEFWRV9ERUNMX1NZU19FUlJMSVNUCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc3lzX3NpZ2xpc3QnLCBhbmQgdG8gMCBpZiB5b3UKKyAgIGRvbid0LiAqLworI3VuZGVmIEhBVkVfREVDTF9TWVNfU0lHTElTVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYF9zeXNfc2lnbGlzdCcsIGFuZCB0byAwIGlmIHlvdQorICAgZG9uJ3QuICovCisjdW5kZWYgSEFWRV9ERUNMX19TWVNfU0lHTElTVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCisgICAqLworI3VuZGVmIEhBVkVfRElSRU5UX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkZW50cycgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9HRVRERU5UUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX2luZGV4dG9uYW1lJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0lGX0lOREVYVE9OQU1FCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5ldF9udG9wJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0lORVRfTlRPUAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvY3Rscy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0lPQ1RMU19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGliYWlvLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTElCQUlPX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBuc2wnIGxpYnJhcnkgKC1sbnNsKS4gKi8KKyN1bmRlZiBIQVZFX0xJQk5TTAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2ljbXAuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9MSU5VWF9JQ01QX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9pZl9wYWNrZXQuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2luNi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX0lONl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvbmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX05FVExJTktfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX1BUUkFDRV9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvdXRzbmFtZS5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX1VUU05BTUVfSAorCisvKiBEZWZpbmUgaWYgbG9uZyBsb25nIGlzIGxpdHRsZS1lbmRpYW4uICovCisjdW5kZWYgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORworCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgbG9uZyBsb25nJy4gKi8KKyN1bmRlZiBIQVZFX0xPTkdfTE9ORworCisvKiBEZWZpbmUgaWYgb2ZmX3QgaXMgYSBsb25nIGxvbmcuICovCisjdW5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKKworLyogRGVmaW5lIGlmIHJsaW1fdCBpcyBhIGxvbmcgbG9uZy4gKi8KKyN1bmRlZiBIQVZFX0xPTkdfTE9OR19STElNX1QKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtY3RsJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX01DVEwKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9NRU1PUllfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgYSBTVlI0IE1QIHR5cGUgcHJvY2ZzLiBJLkUuIC9kZXYveHh4L2N0bCwKKyAgIC9kZXYveHh4L3N0YXR1cy4gQWxzbyBpbXBsaWVzIHRoYXQgeW91IGhhdmUgdGhlIHByX2x3cCBtZW1iZXIgaW4gcHJzdGF0dXMuCisgICAqLworI3VuZGVmIEhBVkVfTVBfUFJPQ0ZTCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bXF1ZXVlLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTVFVRVVFX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4gKi8KKyN1bmRlZiBIQVZFX05ESVJfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfTkVUSU5FVF9VRFBfSAorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgU1ZSNCBhbmQgdGhlIHBvbGwgc3lzdGVtIGNhbGwgd29ya3Mgb24gL3Byb2MgZmlsZXMuICovCisjdW5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwb2xsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfUE9MTF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJjdGwnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfUFJDVEwKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmVhZCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9QUkVBRAorCisvKiBEZWZpbmUgaWYgdGhlIHByc3RhdHVzIHN0cnVjdHVyZSBpbiBzeXMvcHJvY2ZzLmggaGFzIGEgcHJfc3lzY2FsbCBtZW1iZXIuCisgICAqLworI3VuZGVmIEhBVkVfUFJfU1lTQ0FMTAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbmRtc2cnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU0VORE1TRworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2FjdGlvbicgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TSUdBQ1RJT04KKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ2luZm9fdCcuICovCisjdW5kZWYgSEFWRV9TSUdJTkZPX1QKKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNpZ19hdG9taWNfdCcuICovCisjdW5kZWYgSEFWRV9TSUdfQVRPTUlDX1QKKworLyogRGVmaW5lIGlmIHN0YXQ2NCBpcyBhdmFpbGFibGUgaW4gYXNtL3N0YXQuaC4gKi8KKyN1bmRlZiBIQVZFX1NUQVQ2NAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NURElOVF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1RETElCX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJlcnJvcicgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TVFJFUlJPUgorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cmluZ3MuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TVFJJTkdTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmcuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TVFJJTkdfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0cm9wdHMuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TVFJPUFRTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJzaWduYWwnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU1RSU0lHTkFMCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgaWE2NF9mcHJlZycuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfSUE2NF9GUFJFRworCisvKiBEZWZpbmUgdG8gMSBpZiBgbXNnX2NvbnRyb2wnIGlzIG1lbWJlciBvZiBgc3RydWN0IG1zZ2hkcicuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3Qgb3B0aGRyJy4gKi8KKyN1bmRlZiBIQVZFX1NUUlVDVF9PUFRIRFIKKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzJy4gKi8KKyN1bmRlZiBIQVZFX1NUUlVDVF9QVF9BTExfVVNFUl9SRUdTCisKKy8qIERlZmluZSB0byAxIGlmIGBzaW42X3Njb3BlX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9pbjYnLiAqLworI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lECisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9hY2xjbnQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9ibGtzaXplJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KKyN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUKKworLyogRGVmaW5lIHRvIDEgaWYgYHN0X2Jsb2NrcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MKKworLyogRGVmaW5lIHRvIDEgaWYgYHN0X2ZsYWdzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0Jy4gKi8KKyN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZMQUdTCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9mc3R5cGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRlNUWVBFCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9nZW4nIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXQnLiAqLworI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOCisKKy8qIERlZmluZSB0byAxIGlmIGBzdF9sZXZlbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9MRVZFTAorCisvKiBEZWZpbmUgdG8gMSBpZiBgc3RfcmRldicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdCcuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWCisKKy8qIERlZmluZSB0byAxIGlmIGBBQ0NFUFRPUl9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgVF9jb25uX3JlcycuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19BQ0NFUFRPUl9JRAorCisvKiBEZWZpbmUgdG8gMSBpZiBgUVVFVUVfcHRyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBUX2Nvbm5fcmVzJy4gKi8KKyN1bmRlZiBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX1FVRVVFX1BUUgorCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHRfb3B0aGRyJy4gKi8KKyN1bmRlZiBIQVZFX1NUUlVDVF9UX09QVEhEUgorCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgc3RydWN0IHVzZXJfZGVzYycuICovCisjdW5kZWYgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDCisKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQnLiAqLworI3VuZGVmIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2FjbC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19BQ0xfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9haW8uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfQUlPX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvYXN5bmNoLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX0FTWU5DSF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfQ09ORl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCisgICAqLworI3VuZGVmIEhBVkVfU1lTX0RJUl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rvb3IuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfRE9PUl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Vwb2xsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX0VQT0xMX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsaW8uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfRklMSU9fSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9pb2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19JT0NUTF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL25kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgorICAgKi8KKyN1bmRlZiBIQVZFX1NZU19ORElSX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbnNjc3lzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX05TQ1NZU19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BvbGwuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfUE9MTF9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3B0cmFjZS5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19QVFJBQ0VfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZWcuaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfUkVHX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXNfc2lnbGlzdCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TWVNfU0lHTElTVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdHJlYW0uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfU1RSRUFNX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY29uZmlnLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1NZU0NPTkZJR19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpaGRyLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1RJSERSX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGl1c2VyLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1RJVVNFUl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1RZUEVTX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdWlvLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1VJT19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zmcy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19WRlNfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHRlcm1pby5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1RFUk1JT19ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfVU5JU1REX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBfc3lzX3NpZ2xpc3QnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfX1NZU19TSUdMSVNUCisKKy8qIERlZmluZSBmb3IgdGhlIEhQUEEgYXJjaGl0ZWN0dXJlLiAqLworI3VuZGVmIEhQUEEKKworLyogRGVmaW5lIGZvciB0aGUgaTM4NiBhcmNoaXRlY3R1cmUuICovCisjdW5kZWYgSTM4NgorCisvKiBEZWZpbmUgZm9yIHRoZSBJQTY0IGFyY2hpdGVjdHVyZS4gKi8KKyN1bmRlZiBJQTY0CisKKy8qIERlZmluZSBmb3IgdGhlIExpbnV4IG9wZXJhdGluZyBzeXN0ZW0uICovCisjdW5kZWYgTElOVVgKKworLyogRGVmaW5lIGZvciB0aGUgbTY4ayBhcmNoaXRlY3R1cmUuICovCisjdW5kZWYgTTY4SworCisvKiBEZWZpbmUgdG8gMSBpZiBgbWFqb3InLCBgbWlub3InLCBhbmQgYG1ha2VkZXYnIGFyZSBkZWNsYXJlZCBpbiA8bWtkZXYuaD4uCisgICAqLworI3VuZGVmIE1BSk9SX0lOX01LREVWCisKKy8qIERlZmluZSB0byAxIGlmIGBtYWpvcicsIGBtaW5vcicsIGFuZCBgbWFrZWRldicgYXJlIGRlY2xhcmVkIGluCisgICA8c3lzbWFjcm9zLmg+LiAqLworI3VuZGVmIE1BSk9SX0lOX1NZU01BQ1JPUworCisvKiBEZWZpbmUgZm9yIHRoZSBNSVBTIGFyY2hpdGVjdHVyZS4gKi8KKyN1bmRlZiBNSVBTCisKKy8qIE5hbWUgb2YgcGFja2FnZSAqLworI3VuZGVmIFBBQ0tBR0UKKworLyogRGVmaW5lIHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxkIGJlIHNlbnQuICovCisjdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKKworLyogRGVmaW5lIHRvIHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworI3VuZGVmIFBBQ0tBR0VfTkFNRQorCisvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCisjdW5kZWYgUEFDS0FHRV9TVFJJTkcKKworLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLworI3VuZGVmIFBBQ0tBR0VfVEFSTkFNRQorCisvKiBEZWZpbmUgdG8gdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiAqLworI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgorCisvKiBEZWZpbmUgZm9yIHRoZSBQb3dlclBDIGFyY2hpdGVjdHVyZS4gKi8KKyN1bmRlZiBQT1dFUlBDCisKKy8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChgaW50JyBvciBgdm9pZCcpLiAqLworI3VuZGVmIFJFVFNJR1RZUEUKKworLyogRGVmaW5lIGZvciB0aGUgUzM5MCBhcmNoaXRlY3R1cmUuICovCisjdW5kZWYgUzM5MAorCisvKiBEZWZpbmUgZm9yIHRoZSBTMzkweCBhcmNoaXRlY3R1cmUuICovCisjdW5kZWYgUzM5MFgKKworLyogRGVmaW5lIGZvciB0aGUgU0ggYXJjaGl0ZWN0dXJlLiAqLworI3VuZGVmIFNICisKKy8qIERlZmluZSBmb3IgdGhlIFNINjQgYXJjaGl0ZWN0dXJlLiAqLworI3VuZGVmIFNINjQKKworLyogRGVmaW5lIGZvciB0aGUgU1BBUkMgYXJjaGl0ZWN0dXJlLiAqLworI3VuZGVmIFNQQVJDCisKKy8qIERlZmluZSBmb3IgdGhlIFNQQVJDNjQgYXJjaGl0ZWN0dXJlLiAqLworI3VuZGVmIFNQQVJDNjQKKworLyogRGVmaW5lIHRvIDEgaWYgdGhlIGBTX0lTKicgbWFjcm9zIGluIDxzeXMvc3RhdC5oPiBkbyBub3Qgd29yayBwcm9wZXJseS4gKi8KKyN1bmRlZiBTVEFUX01BQ1JPU19CUk9LRU4KKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCisjdW5kZWYgU1REQ19IRUFERVJTCisKKy8qIERlZmluZSBmb3IgdGhlIFN1bk9TIDQueCBvcGVyYXRpbmcgc3lzdGVtLiAqLworI3VuZGVmIFNVTk9TNAorCisvKiBEZWZpbmUgaWYgeW91IGFyZSBoYXZlIGEgU1BBUkMgd2l0aCBTVU5PUzQgYW5kIHlvdXIgd2FudCBhIHZlcnNpb24gb2YKKyAgIHN0cmFjZSB0aGF0IHdpbGwgd29yayBvbiBzdW40LCBzdW40YyBhbmQgc3VuNG0ga2VybmVsIGFyY2hpdGVjdHVyZXMuIE9ubHkKKyAgIHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIHN5bWJvbGljIGxpbmsgZnJvbSBtYWNoaW5lIHRvIC91c3IvaW5jbHVkZS9zdW40IGluIHRoZQorICAgY29tcGlsYXRpb24gZGlyZWN0b3J5LiAqLworI3VuZGVmIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UKKworLyogRGVmaW5lIGZvciB0aGUgU3lzdGVtIFYgcmVsZWFzZSA0IG9wZXJhdGluZyBzeXN0ZW0gb3IgYSBkZXJpdmF0aXZlIGxpa2UKKyAgIFNvbGFyaXMgMi54IG9yIElyaXggNS54LiAqLworI3VuZGVmIFNWUjQKKworLyogRGVmaW5lIGZvciBVbml4V2FyZSBzeXN0ZW1zLiAqLworI3VuZGVmIFVOSVhXQVJFCisKKy8qIFZlcnNpb24gbnVtYmVyIG9mIHBhY2thZ2UgKi8KKyN1bmRlZiBWRVJTSU9OCisKKy8qIERlZmluZSBmb3IgdGhlIEFNRCB4ODYtNjQgYXJjaGl0ZWN0dXJlLiAqLworI3VuZGVmIFg4Nl82NAorCisvKiBFbmFibGUgR05VIGV4dGVuc2lvbnMgb24gc3lzdGVtcyB0aGF0IGhhdmUgdGhlbS4gICovCisjaWZuZGVmIF9HTlVfU09VUkNFCisjIHVuZGVmIF9HTlVfU09VUkNFCisjZW5kaWYKKworLyogRGVmaW5lIHRvIGVtcHR5IGlmIGBjb25zdCcgZG9lcyBub3QgY29uZm9ybSB0byBBTlNJIEMuICovCisjdW5kZWYgY29uc3QKKworLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lc24ndCBkZWZpbmUuICovCisjdW5kZWYgZ2lkX3QKKworLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLworI3VuZGVmIG1vZGVfdAorCisvKiBEZWZpbmUgdG8gYGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2Vzbid0IGRlZmluZS4gKi8KKyN1bmRlZiB1aWRfdApkaWZmIC0tZ2l0IGEvY29uZmlnLmxvZyBiL2NvbmZpZy5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThiNzMyYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy5sb2cKQEAgLTAsMCArMSw1NDAxIEBACitUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQorcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KKworSXQgd2FzIGNyZWF0ZWQgYnkgc3RyYWNlIGNvbmZpZ3VyZSA0LjUuMTIsIHdoaWNoIHdhcworZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCisKKyAgJCAuL2NvbmZpZ3VyZSAtLXByZWZpeD0vZGF0YS8gLS1idWlsZD1hcm0tdW5rbm93bi1saW51eC1nbnUKKworIyMgLS0tLS0tLS0tICMjCisjIyBQbGF0Zm9ybS4gIyMKKyMjIC0tLS0tLS0tLSAjIworCitob3N0bmFtZSA9IHNreXdyaXRpbmcuY29ycC5nb29nbGUuY29tCit1bmFtZSAtbSA9IHg4Nl82NAordW5hbWUgLXIgPSAyLjYuMTguNS1nZzE5d29ya3N0YXRpb24tbWl4ZWQ2NC0zMgordW5hbWUgLXMgPSBMaW51eAordW5hbWUgLXYgPSAjMSBTTVAgVHVlIE5vdiAyMCAxNjowMjo1MiBQU1QgMjAwNworCisvdXNyL2Jpbi91bmFtZSAtcCA9IHVua25vd24KKy9iaW4vdW5hbWUgLVggICAgID0gdW5rbm93bgorCisvYmluL2FyY2ggICAgICAgICAgICAgID0geDg2XzY0CisvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gdW5rbm93bgorL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVua25vd24KK2hvc3RpbmZvICAgICAgICAgICAgICAgPSB1bmtub3duCisvYmluL21hY2hpbmUgICAgICAgICAgID0gdW5rbm93bgorL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSB1bmtub3duCisKK1BBVEg6IC91c3IvbG9jYWwvc3ltbGlua3MKK1BBVEg6IC91c3IvbG9jYWwvc2NyaXB0cworUEFUSDogL3Vzci9sb2NhbC9zYmluCitQQVRIOiAvdXNyL2xvY2FsL2JpbgorUEFUSDogL3Vzci9zYmluCitQQVRIOiAvdXNyL2JpbgorUEFUSDogL3NiaW4KK1BBVEg6IC9iaW4KK1BBVEg6IC91c3IvYmluL1gxMQorUEFUSDogL2FuZHJvaWQvZGV2aWNlL3ByZWJ1aWx0L0xpbnV4L3Rvb2xjaGFpbi9iaW4vCitQQVRIOiAvaG9tZS9ta2YvYmluCitQQVRIOiAvYW5kcm9pZC9kZXZpY2Uvb3V0L2hvc3QvbGludXgteDg2L2JpbgorUEFUSDogL2FuZHJvaWQvZGV2aWNlL3ByZWJ1aWx0L0xpbnV4L3Rvb2xjaGFpbi9hcm0tZWxmCitQQVRIOiAvYW5kcm9pZC9kZXZpY2UvdG9vbHMvcXRvb2xzCitQQVRIOiAvYW5kcm9pZC9kZXZpY2UvcHJlYnVpbHQvTGludXgvdG9vbGNoYWluLWVhYmktNC4yLjEvYmluCitQQVRIOiAvYW5kcm9pZC9kZXZpY2UvcHJlYnVpbHQvTGludXgvdG9vbGNoYWluLWVhYmktNC4yLjEvYmluCisKKworIyMgLS0tLS0tLS0tLS0gIyMKKyMjIENvcmUgdGVzdHMuICMjCisjIyAtLS0tLS0tLS0tLSAjIworCitjb25maWd1cmU6MTM1ODogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbAorY29uZmlndXJlOjE0MTM6IHJlc3VsdDogL3Vzci9iaW4vaW5zdGFsbCAtYworY29uZmlndXJlOjE0MjQ6IGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZQorY29uZmlndXJlOjE0Njc6IHJlc3VsdDogeWVzCitjb25maWd1cmU6MTUzMjogY2hlY2tpbmcgZm9yIGdhd2sKK2NvbmZpZ3VyZToxNTQ4OiBmb3VuZCAvdXNyL2Jpbi9nYXdrCitjb25maWd1cmU6MTU1ODogcmVzdWx0OiBnYXdrCitjb25maWd1cmU6MTU2ODogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKQorY29uZmlndXJlOjE1ODg6IHJlc3VsdDogeWVzCitjb25maWd1cmU6MTc1NjogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMKK2NvbmZpZ3VyZToxNzY1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6MTc4NjogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKK2NvbmZpZ3VyZToxODA0OiByZXN1bHQ6IGFybS11bmtub3duLWxpbnV4LWdudQorY29uZmlndXJlOjE4MTI6IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUKK2NvbmZpZ3VyZToxODI2OiByZXN1bHQ6IGFybS11bmtub3duLWxpbnV4LWdudQorY29uZmlndXJlOjE4MzU6IGNoZWNraW5nIGZvciBzdXBwb3J0ZWQgb3BlcmF0aW5nIHN5c3RlbQorY29uZmlndXJlOjE4OTQ6IHJlc3VsdDogbGludXgKK2NvbmZpZ3VyZToxODk3OiBjaGVja2luZyBmb3Igc3VwcG9ydGVkIGFyY2hpdGVjdHVyZQorY29uZmlndXJlOjIwMjg6IHJlc3VsdDogYXJtCitjb25maWd1cmU6MjE0MTogY2hlY2tpbmcgZm9yIGdjYworY29uZmlndXJlOjIxNTc6IGZvdW5kIC91c3IvYmluL2djYworY29uZmlndXJlOjIxNjc6IHJlc3VsdDogZ2NjCitjb25maWd1cmU6MjQxMTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbgorY29uZmlndXJlOjI0MTQ6IGdjYyAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjUKK2djYyAoR0NDKSA0LjAuMyAoVWJ1bnR1IDQuMC4zLTF1YnVudHU1KQorQ29weXJpZ2h0IChDKSAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgorCitjb25maWd1cmU6MjQxNzogJD8gPSAwCitjb25maWd1cmU6MjQxOTogZ2NjIC12IDwvZGV2L251bGwgPiY1CitVc2luZyBidWlsdC1pbiBzcGVjcy4KK1RhcmdldDogaTQ4Ni1saW51eC1nbnUKK0NvbmZpZ3VyZWQgd2l0aDogLi4vc3JjL2NvbmZpZ3VyZSAtdiAtLWVuYWJsZS1sYW5ndWFnZXM9YyxjKyssamF2YSxmOTUsb2JqYyxhZGEsdHJlZWxhbmcgLS1wcmVmaXg9L3VzciAtLWVuYWJsZS1zaGFyZWQgLS13aXRoLXN5c3RlbS16bGliIC0tbGliZXhlY2Rpcj0vdXNyL2xpYiAtLXdpdGhvdXQtaW5jbHVkZWQtZ2V0dGV4dCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLW5scyAtLXByb2dyYW0tc3VmZml4PS00LjAgLS1lbmFibGUtX19jeGFfYXRleGl0IC0tZW5hYmxlLWNsb2NhbGU9Z251IC0tZW5hYmxlLWxpYnN0ZGN4eC1kZWJ1ZyAtLWVuYWJsZS1qYXZhLWF3dD1ndGstZGVmYXVsdCAtLWVuYWJsZS1ndGstY2Fpcm8gLS13aXRoLWphdmEtaG9tZT0vdXNyL2xpYi9qdm0vamF2YS0xLjQuMi1nY2otNC4wLTEuNC4yLjAvanJlIC0tZW5hYmxlLW1wZnIgLS1kaXNhYmxlLXdlcnJvciAtLXdpdGgtdHVuZT1wZW50aXVtNCAtLWVuYWJsZS1jaGVja2luZz1yZWxlYXNlIGk0ODYtbGludXgtZ251CitUaHJlYWQgbW9kZWw6IHBvc2l4CitnY2MgdmVyc2lvbiA0LjAuMyAoVWJ1bnR1IDQuMC4zLTF1YnVudHU1KQorY29uZmlndXJlOjI0MjI6ICQ/ID0gMAorY29uZmlndXJlOjI0MjQ6IGdjYyAtViA8L2Rldi9udWxsID4mNQorZ2NjOiAnLVYnIG9wdGlvbiBtdXN0IGhhdmUgYXJndW1lbnQKK2NvbmZpZ3VyZToyNDI3OiAkPyA9IDEKK2NvbmZpZ3VyZToyNDUwOiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUKK2NvbmZpZ3VyZToyNDUzOiBnY2MgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQorY29uZmlndXJlOjI0NTY6ICQ/ID0gMAorY29uZmlndXJlOjI1MDI6IHJlc3VsdDogYS5vdXQKK2NvbmZpZ3VyZToyNTA3OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzCitjb25maWd1cmU6MjUxMzogLi9hLm91dAorY29uZmlndXJlOjI1MTY6ICQ/ID0gMAorY29uZmlndXJlOjI1MzM6IHJlc3VsdDogeWVzCitjb25maWd1cmU6MjU0MDogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nCitjb25maWd1cmU6MjU0MjogcmVzdWx0OiBubworY29uZmlndXJlOjI1NDU6IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMKK2NvbmZpZ3VyZToyNTQ3OiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQorY29uZmlndXJlOjI1NTA6ICQ/ID0gMAorY29uZmlndXJlOjI1NzU6IHJlc3VsdDogCitjb25maWd1cmU6MjU4MTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKK2NvbmZpZ3VyZToyNjAyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZToyNjA1OiAkPyA9IDAKK2NvbmZpZ3VyZToyNjI3OiByZXN1bHQ6IG8KK2NvbmZpZ3VyZToyNjMxOiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIKK2NvbmZpZ3VyZToyNjU1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZToyNjYxOiAkPyA9IDAKK2NvbmZpZ3VyZToyNjY1OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZToyNjY4OiAkPyA9IDAKK2NvbmZpZ3VyZToyNjcxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZToyNjc0OiAkPyA9IDAKK2NvbmZpZ3VyZToyNjg3OiByZXN1bHQ6IHllcworY29uZmlndXJlOjI2OTM6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIGFjY2VwdHMgLWcKK2NvbmZpZ3VyZToyNzE0OiBnY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6MjcyMDogJD8gPSAwCitjb25maWd1cmU6MjcyNDogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6MjcyNzogJD8gPSAwCitjb25maWd1cmU6MjczMDogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6MjczMzogJD8gPSAwCitjb25maWd1cmU6Mjc0NDogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZToyNzYxOiBjaGVja2luZyBmb3IgZ2NjIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDCitjb25maWd1cmU6MjgzMTogZ2NjICAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjI4Mzc6ICQ/ID0gMAorY29uZmlndXJlOjI4NDE6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjI4NDQ6ICQ/ID0gMAorY29uZmlndXJlOjI4NDc6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjI4NTA6ICQ/ID0gMAorY29uZmlndXJlOjI4Njg6IHJlc3VsdDogbm9uZSBuZWVkZWQKK2NvbmZpZ3VyZToyODg2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6MjogZXJyb3I6IHN5bnRheCBlcnJvciBiZWZvcmUgJ21lJworY29uZmlndXJlOjI4OTI6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8ICNpZm5kZWYgX19jcGx1c3BsdXMKK3wgICBjaG9rZSBtZQorfCAjZW5kaWYKK2NvbmZpZ3VyZTozMDM2OiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5IG1ha2UKK2NvbmZpZ3VyZTozMDY0OiByZXN1bHQ6IEdOVQorY29uZmlndXJlOjMwOTI6IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgZ2NjCitjb25maWd1cmU6MzE4MjogcmVzdWx0OiBnY2MzCitjb25maWd1cmU6MzIwNzogY2hlY2tpbmcgZm9yIHByaW1hcnkgaW5jbHVkZSBkaXJlY3RvcnkKK2NvbmZpZ3VyZTozMjI1OiByZXN1bHQ6IC91c3IvaW5jbHVkZQorY29uZmlndXJlOjMyNzQ6IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yCitjb25maWd1cmU6MzMwOTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6MzMxNTogJD8gPSAwCitjb25maWd1cmU6MzM0NzogZ2NjIC1FICBjb25mdGVzdC5jCitjb25mdGVzdC5jOjE0OjI4OiBlcnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjMzNTM6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorY29uZmlndXJlOjMzOTI6IHJlc3VsdDogZ2NjIC1FCitjb25maWd1cmU6MzQxNjogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6MzQyMjogJD8gPSAwCitjb25maWd1cmU6MzQ1NDogZ2NjIC1FICBjb25mdGVzdC5jCitjb25mdGVzdC5jOjE0OjI4OiBlcnJvcjogYWNfbm9uZXhpc3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjM0NjA6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorY29uZmlndXJlOjM1MDU6IGNoZWNraW5nIGZvciBlZ3JlcAorY29uZmlndXJlOjM1MTU6IHJlc3VsdDogZ3JlcCAtRQorY29uZmlndXJlOjM1MjE6IGNoZWNraW5nIHdoZXRoZXIgZ2NjIG5lZWRzIC10cmFkaXRpb25hbAorY29uZmlndXJlOjM1NjM6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTozNTgzOiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsCitjb25maWd1cmU6MzYzODogcmVzdWx0OiAvdXNyL2Jpbi9pbnN0YWxsIC1jCitjb25maWd1cmU6MzY0OTogY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNvbnN0Citjb25maWd1cmU6MzcxNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6MzcyMjogJD8gPSAwCitjb25maWd1cmU6MzcyNjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6MzcyOTogJD8gPSAwCitjb25maWd1cmU6MzczMjogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6MzczNTogJD8gPSAwCitjb25maWd1cmU6Mzc0NjogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTozNzU2OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcworY29uZmlndXJlOjM3ODE6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjM3ODc6ICQ/ID0gMAorY29uZmlndXJlOjM3OTE6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjM3OTQ6ICQ/ID0gMAorY29uZmlndXJlOjM3OTc6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjM4MDA6ICQ/ID0gMAorY29uZmlndXJlOjM4ODk6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjMxOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCitjb25maWd1cmU6Mzg5MjogJD8gPSAwCitjb25maWd1cmU6Mzg5NDogLi9jb25mdGVzdAorY29uZmlndXJlOjM4OTc6ICQ/ID0gMAorY29uZmlndXJlOjM5MTI6IHJlc3VsdDogeWVzCitjb25maWd1cmU6MzkzMDogY2hlY2tpbmcgZm9yIGRpcmVudC5oIHRoYXQgZGVmaW5lcyBESVIKK2NvbmZpZ3VyZTozOTU0OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTozOTYwOiAkPyA9IDAKK2NvbmZpZ3VyZTozOTY0OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTozOTY3OiAkPyA9IDAKK2NvbmZpZ3VyZTozOTcwOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTozOTczOiAkPyA9IDAKK2NvbmZpZ3VyZTozOTg0OiByZXN1bHQ6IHllcworY29uZmlndXJlOjM5OTc6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgb3BlbmRpcgorY29uZmlndXJlOjQwMjc6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25maWd1cmU6NDAzMzogJD8gPSAwCitjb25maWd1cmU6NDAzNzogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NDA0MDogJD8gPSAwCitjb25maWd1cmU6NDA0MzogdGVzdCAtcyBjb25mdGVzdAorY29uZmlndXJlOjQwNDY6ICQ/ID0gMAorY29uZmlndXJlOjQxMTY6IHJlc3VsdDogbm9uZSByZXF1aXJlZAorY29uZmlndXJlOjQyNTI6IGNoZWNraW5nIHdoZXRoZXIgc3RhdCBmaWxlLW1vZGUgbWFjcm9zIGFyZSBicm9rZW4KK2NvbmZpZ3VyZTo0MzAwOiByZXN1bHQ6IG5vCitjb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIHN5cy90eXBlcy5oCitjb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NDM0NjogJD8gPSAwCitjb25maWd1cmU6NDM1MDogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NDM1MzogJD8gPSAwCitjb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NDM1OTogJD8gPSAwCitjb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaAorY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjQzNDY6ICQ/ID0gMAorY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjQzNTM6ICQ/ID0gMAorY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjQzNTk6ICQ/ID0gMAorY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oCitjb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NDM0NjogJD8gPSAwCitjb25maWd1cmU6NDM1MDogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NDM1MzogJD8gPSAwCitjb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NDM1OTogJD8gPSAwCitjb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo0MzI0OiBjaGVja2luZyBmb3Igc3RyaW5nLmgKK2NvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKK2NvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKK2NvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKK2NvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcworY29uZmlndXJlOjQzMjQ6IGNoZWNraW5nIGZvciBtZW1vcnkuaAorY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjQzNDY6ICQ/ID0gMAorY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjQzNTM6ICQ/ID0gMAorY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjQzNTk6ICQ/ID0gMAorY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIHN0cmluZ3MuaAorY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjQzNDY6ICQ/ID0gMAorY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjQzNTM6ICQ/ID0gMAorY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjQzNTk6ICQ/ID0gMAorY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIGludHR5cGVzLmgKK2NvbmZpZ3VyZTo0MzQwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKK2NvbmZpZ3VyZTo0MzUwOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo0MzUzOiAkPyA9IDAKK2NvbmZpZ3VyZTo0MzU2OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo0MzU5OiAkPyA9IDAKK2NvbmZpZ3VyZTo0MzcwOiByZXN1bHQ6IHllcworY29uZmlndXJlOjQzMjQ6IGNoZWNraW5nIGZvciBzdGRpbnQuaAorY29uZmlndXJlOjQzNDA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjQzNDY6ICQ/ID0gMAorY29uZmlndXJlOjQzNTA6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjQzNTM6ICQ/ID0gMAorY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjQzNTk6ICQ/ID0gMAorY29uZmlndXJlOjQzNzA6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NDMyNDogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCitjb25maWd1cmU6NDM0MDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NDM0NjogJD8gPSAwCitjb25maWd1cmU6NDM1MDogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NDM1MzogJD8gPSAwCitjb25maWd1cmU6NDM1NjogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NDM1OTogJD8gPSAwCitjb25maWd1cmU6NDM3MDogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo0MzgyOiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxrc2l6ZQorY29uZmlndXJlOjQ0MDU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjQ0MTE6ICQ/ID0gMAorY29uZmlndXJlOjQ0MTU6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjQ0MTg6ICQ/ID0gMAorY29uZmlndXJlOjQ0MjE6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjQ0MjQ6ICQ/ID0gMAorY29uZmlndXJlOjQ0ODE6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NDQ5MTogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2Jsb2NrcworY29uZmlndXJlOjQ1MTQ6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjQ1MjA6ICQ/ID0gMAorY29uZmlndXJlOjQ1MjQ6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjQ1Mjc6ICQ/ID0gMAorY29uZmlndXJlOjQ1MzA6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjQ1MzM6ICQ/ID0gMAorY29uZmlndXJlOjQ1OTA6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NDYwMDogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2FjbGNudAorY29uZmlndXJlOjQ2MjM6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgorY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfYWNsY250JworY29uZmlndXJlOjQ2Mjk6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK3wgaWYgKGFjX2FnZ3Iuc3RfYWNsY250KQorfCByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo0NjY3OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKK2NvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2FjbGNudCcKK2NvbmZpZ3VyZTo0NjczOiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN0ZGlvLmg+Cit8ICNpZiBIQVZFX1NZU19UWVBFU19ICit8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TWVNfU1RBVF9ICit8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KK3wgI2VuZGlmCit8ICNpZiBTVERDX0hFQURFUlMKK3wgIyBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBpbmNsdWRlIDxzdGRkZWYuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURExJQl9ICit8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdfSAorfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAorfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KK3wgIyBlbmRpZgorfCAjIGluY2x1ZGUgPHN0cmluZy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HU19ICit8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfSU5UVFlQRVNfSAorfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERJTlRfSAorfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfVU5JU1REX0gKK3wgIyBpbmNsdWRlIDx1bmlzdGQuaD4KK3wgI2VuZGlmCit8IGludAorfCBtYWluICgpCit8IHsKK3wgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Cit8IGlmIChzaXplb2YgYWNfYWdnci5zdF9hY2xjbnQpCit8IHJldHVybiAwOworfCAgIDsKK3wgICByZXR1cm4gMDsKK3wgfQorY29uZmlndXJlOjQ2OTk6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo0NzA5OiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZmxhZ3MKK2NvbmZpZ3VyZTo0NzMyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKK2NvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2ZsYWdzJworY29uZmlndXJlOjQ3Mzg6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK3wgaWYgKGFjX2FnZ3Iuc3RfZmxhZ3MpCit8IHJldHVybiAwOworfCAgIDsKK3wgICByZXR1cm4gMDsKK3wgfQorY29uZmlndXJlOjQ3NzY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgorY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfZmxhZ3MnCitjb25maWd1cmU6NDc4MjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCBpbnQKK3wgbWFpbiAoKQorfCB7Cit8IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOworfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZmxhZ3MpCit8IHJldHVybiAwOworfCAgIDsKK3wgICByZXR1cm4gMDsKK3wgfQorY29uZmlndXJlOjQ4MDg6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo0ODE4OiBjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfZnN0eXBlCitjb25maWd1cmU6NDg0MTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9mc3R5cGUnCitjb25maWd1cmU6NDg0NzogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCBpbnQKK3wgbWFpbiAoKQorfCB7Cit8IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOworfCBpZiAoYWNfYWdnci5zdF9mc3R5cGUpCit8IHJldHVybiAwOworfCAgIDsKK3wgICByZXR1cm4gMDsKK3wgfQorY29uZmlndXJlOjQ4ODU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgorY29uZnRlc3QuYzo2NTogZXJyb3I6ICdzdHJ1Y3Qgc3RhdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAnc3RfZnN0eXBlJworY29uZmlndXJlOjQ4OTE6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK3wgaWYgKHNpemVvZiBhY19hZ2dyLnN0X2ZzdHlwZSkKK3wgcmV0dXJuIDA7Cit8ICAgOworfCAgIHJldHVybiAwOworfCB9Citjb25maWd1cmU6NDkxNzogcmVzdWx0OiBubworY29uZmlndXJlOjQ5Mjc6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9nZW4KK2NvbmZpZ3VyZTo0OTUwOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKK2NvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2dlbicKK2NvbmZpZ3VyZTo0OTU2OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN0ZGlvLmg+Cit8ICNpZiBIQVZFX1NZU19UWVBFU19ICit8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TWVNfU1RBVF9ICit8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KK3wgI2VuZGlmCit8ICNpZiBTVERDX0hFQURFUlMKK3wgIyBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBpbmNsdWRlIDxzdGRkZWYuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURExJQl9ICit8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdfSAorfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAorfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KK3wgIyBlbmRpZgorfCAjIGluY2x1ZGUgPHN0cmluZy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HU19ICit8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfSU5UVFlQRVNfSAorfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERJTlRfSAorfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfVU5JU1REX0gKK3wgIyBpbmNsdWRlIDx1bmlzdGQuaD4KK3wgI2VuZGlmCit8IGludAorfCBtYWluICgpCit8IHsKK3wgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Cit8IGlmIChhY19hZ2dyLnN0X2dlbikKK3wgcmV0dXJuIDA7Cit8ICAgOworfCAgIHJldHVybiAwOworfCB9Citjb25maWd1cmU6NDk5NDogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9nZW4nCitjb25maWd1cmU6NTAwMDogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCBpbnQKK3wgbWFpbiAoKQorfCB7Cit8IHN0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOworfCBpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZ2VuKQorfCByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo1MDI2OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NTAzNjogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2xldmVsCitjb25maWd1cmU6NTA1OTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjY1OiBlcnJvcjogJ3N0cnVjdCBzdGF0JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdzdF9sZXZlbCcKK2NvbmZpZ3VyZTo1MDY1OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN0ZGlvLmg+Cit8ICNpZiBIQVZFX1NZU19UWVBFU19ICit8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TWVNfU1RBVF9ICit8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KK3wgI2VuZGlmCit8ICNpZiBTVERDX0hFQURFUlMKK3wgIyBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBpbmNsdWRlIDxzdGRkZWYuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURExJQl9ICit8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdfSAorfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAorfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KK3wgIyBlbmRpZgorfCAjIGluY2x1ZGUgPHN0cmluZy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HU19ICit8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfSU5UVFlQRVNfSAorfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERJTlRfSAorfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfVU5JU1REX0gKK3wgIyBpbmNsdWRlIDx1bmlzdGQuaD4KK3wgI2VuZGlmCit8IGludAorfCBtYWluICgpCit8IHsKK3wgc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7Cit8IGlmIChhY19hZ2dyLnN0X2xldmVsKQorfCByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo1MTAzOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKK2NvbmZ0ZXN0LmM6NjU6IGVycm9yOiAnc3RydWN0IHN0YXQnIGhhcyBubyBtZW1iZXIgbmFtZWQgJ3N0X2xldmVsJworY29uZmlndXJlOjUxMDk6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK3wgaWYgKHNpemVvZiBhY19hZ2dyLnN0X2xldmVsKQorfCByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo1MTM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NTE0NTogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X3JkZXYKK2NvbmZpZ3VyZTo1MTY4OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo1MTc0OiAkPyA9IDAKK2NvbmZpZ3VyZTo1MTc4OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo1MTgxOiAkPyA9IDAKK2NvbmZpZ3VyZTo1MTg0OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo1MTg3OiAkPyA9IDAKK2NvbmZpZ3VyZTo1MjQ0OiByZXN1bHQ6IHllcworY29uZmlndXJlOjUyNTU6IGNoZWNraW5nIGZvciBzdGF0NjQgaW4gKGFzbXxzeXMpL3N0YXQuaAorY29uZmlndXJlOjUyODE6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjUyODc6ICQ/ID0gMAorY29uZmlndXJlOjUyOTE6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjUyOTQ6ICQ/ID0gMAorY29uZmlndXJlOjUyOTc6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjUzMDA6ICQ/ID0gMAorY29uZmlndXJlOjUzMTI6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NTMyNDogY2hlY2tpbmcgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzCitjb25maWd1cmU6NTM1NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NTM2MTogJD8gPSAwCitjb25maWd1cmU6NTM2NTogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NTM2ODogJD8gPSAwCitjb25maWd1cmU6NTM3MTogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NTM3NDogJD8gPSAwCitjb25maWd1cmU6NTM4NTogcmVzdWx0OiB2b2lkCitjb25maWd1cmU6NTM5MzogY2hlY2tpbmcgZm9yIHVpZF90IGluIHN5cy90eXBlcy5oCitjb25maWd1cmU6NTQxNjogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo1NDMxOiBjaGVja2luZyBmb3IgbW9kZV90Citjb25maWd1cmU6NTQ1NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NTQ2MTogJD8gPSAwCitjb25maWd1cmU6NTQ2NTogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NTQ2ODogJD8gPSAwCitjb25maWd1cmU6NTQ3MTogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NTQ3NDogJD8gPSAwCitjb25maWd1cmU6NTQ4NTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo1NDk3OiBjaGVja2luZyB0eXBlIG9mIGFycmF5IGFyZ3VtZW50IHRvIGdldGdyb3VwcworY29uZmlndXJlOjU1MzU6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjUwOiB3YXJuaW5nOiBpbmNvbXBhdGlibGUgaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgYnVpbHQtaW4gZnVuY3Rpb24gJ2V4aXQnCitjb25maWd1cmU6NTUzODogJD8gPSAwCitjb25maWd1cmU6NTU0MDogLi9jb25mdGVzdAorY29uZmlndXJlOjU1NDM6ICQ/ID0gMAorY29uZmlndXJlOjU1NzY6IHJlc3VsdDogZ2lkX3QKK2NvbmZpZ3VyZTo1NTg0OiBjaGVja2luZyB3aGV0aGVyIHN5cy90eXBlcy5oIGRlZmluZXMgbWFrZWRldgorY29uZmlndXJlOjU2MDU6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25maWd1cmU6NTYxMTogJD8gPSAwCitjb25maWd1cmU6NTYxNTogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NTYxODogJD8gPSAwCitjb25maWd1cmU6NTYyMTogdGVzdCAtcyBjb25mdGVzdAorY29uZmlndXJlOjU2MjQ6ICQ/ID0gMAorY29uZmlndXJlOjU2Mzc6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NTkzODogY2hlY2tpbmcgZm9yIHNpZ19hdG9taWNfdAorY29uZmlndXJlOjU5NjM6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjU5Njk6ICQ/ID0gMAorY29uZmlndXJlOjU5NzM6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjU5NzY6ICQ/ID0gMAorY29uZmlndXJlOjU5Nzk6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjU5ODI6ICQ/ID0gMAorY29uZmlndXJlOjU5OTM6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjAwMzogY2hlY2tpbmcgZm9yIHNpZ2luZm9fdAorY29uZmlndXJlOjYwMjg6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjYwMzQ6ICQ/ID0gMAorY29uZmlndXJlOjYwMzg6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjYwNDE6ICQ/ID0gMAorY29uZmlndXJlOjYwNDQ6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjYwNDc6ICQ/ID0gMAorY29uZmlndXJlOjYwNTg6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjA2OTogY2hlY2tpbmcgZm9yIHN0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZAorY29uZmlndXJlOjYwOTU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjYxMDE6ICQ/ID0gMAorY29uZmlndXJlOjYxMDU6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjYxMDg6ICQ/ID0gMAorY29uZmlndXJlOjYxMTE6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjYxMTQ6ICQ/ID0gMAorY29uZmlndXJlOjYxNzQ6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjE4NTogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZworY29uZmlndXJlOjYyMDk6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjYyMTU6ICQ/ID0gMAorY29uZmlndXJlOjYyMTk6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjYyMjI6ICQ/ID0gMAorY29uZmlndXJlOjYyMjU6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjYyMjg6ICQ/ID0gMAorY29uZmlndXJlOjYyMzk6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjI1MDogY2hlY2tpbmcgZm9yIGxpdHRsZSBlbmRpYW4gbG9uZyBsb25nCitjb25maWd1cmU6NjI4MDogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKK2NvbmZpZ3VyZTo2MjgzOiAkPyA9IDAKK2NvbmZpZ3VyZTo2Mjg1OiAuL2NvbmZ0ZXN0Citjb25maWd1cmU6NjI4ODogJD8gPSAwCitjb25maWd1cmU6NjMwMzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2MzE0OiBjaGVja2luZyBmb3IgbG9uZyBsb25nIG9mZl90Citjb25maWd1cmU6NjM0MDogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKK2NvbmZpZ3VyZTo2MzQzOiAkPyA9IDAKK2NvbmZpZ3VyZTo2MzQ1OiAuL2NvbmZ0ZXN0Citjb25maWd1cmU6NjM0ODogJD8gPSAxCitjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorfCBtYWluICgpIHsKK3wgCWlmIChzaXplb2YgKG9mZl90KSA9PSBzaXplb2YgKGxvbmcgbG9uZykgJiYKK3wgCSAgICBzaXplb2YgKG9mZl90KSA+IHNpemVvZiAobG9uZykpCit8IAkgICAgcmV0dXJuIDA7Cit8IAlyZXR1cm4gMTsKK3wgfQorfCAKK2NvbmZpZ3VyZTo2MzYzOiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjM3NDogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBybGltX3QKK2NvbmZpZ3VyZTo2NDAyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQorY29uZmlndXJlOjY0MDU6ICQ/ID0gMAorY29uZmlndXJlOjY0MDc6IC4vY29uZnRlc3QKK2NvbmZpZ3VyZTo2NDEwOiAkPyA9IDEKK2NvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cit8ICNpbmNsdWRlIDxzeXMvdGltZS5oPgorfCAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Cit8IG1haW4gKCkgeworfCAJaWYgKHNpemVvZiAocmxpbV90KSA9PSBzaXplb2YgKGxvbmcgbG9uZykgJiYKK3wgCSAgICBzaXplb2YgKHJsaW1fdCkgPiBzaXplb2YgKGxvbmcpKQorfCAJICAgIHJldHVybiAwOworfCAJcmV0dXJuIDE7Cit8IH0KK3wgCitjb25maWd1cmU6NjQyNTogcmVzdWx0OiBubworY29uZmlndXJlOjY0MzY6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgb3B0aGRyCitjb25maWd1cmU6NjQ2MTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjQzOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBvcHRoZHInIAorY29uZmlndXJlOjY0Njc6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorfCAKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBpZiAoKHN0cnVjdCBvcHRoZHIgKikgMCkKK3wgICByZXR1cm4gMDsKK3wgaWYgKHNpemVvZiAoc3RydWN0IG9wdGhkcikpCit8ICAgcmV0dXJuIDA7Cit8ICAgOworfCAgIHJldHVybiAwOworfCB9Citjb25maWd1cmU6NjQ5MTogcmVzdWx0OiBubworY29uZmlndXJlOjY1MDI6IGNoZWNraW5nIGZvciBzdHJ1Y3QgdF9vcHRoZHIKK2NvbmZpZ3VyZTo2NTI3OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6MzY6MjQ6IGVycm9yOiBzeXMvdGl1c2VyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKK2NvbmZ0ZXN0LmM6NDM6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IHRfb3B0aGRyJyAKK2NvbmZpZ3VyZTo2NTMzOiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN5cy90aXVzZXIuaD4KK3wgCit8IGludAorfCBtYWluICgpCit8IHsKK3wgaWYgKChzdHJ1Y3QgdF9vcHRoZHIgKikgMCkKK3wgICByZXR1cm4gMDsKK3wgaWYgKHNpemVvZiAoc3RydWN0IHRfb3B0aGRyKSkKK3wgICByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo2NTU3OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIHNpZ2FjdGlvbgorY29uZmlndXJlOjY3MTI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25maWd1cmU6NjcxODogJD8gPSAwCitjb25maWd1cmU6NjcyMjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NjcyNTogJD8gPSAwCitjb25maWd1cmU6NjcyODogdGVzdCAtcyBjb25mdGVzdAorY29uZmlndXJlOjY3MzE6ICQ/ID0gMAorY29uZmlndXJlOjY3NDM6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIHN0cmVycm9yCitjb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKK2NvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Citjb25maWd1cmU6NjczMTogJD8gPSAwCitjb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3Igc3Ryc2lnbmFsCitjb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKK2NvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Citjb25maWd1cmU6NjczMTogJD8gPSAwCitjb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3IgcHJlYWQKK2NvbmZpZ3VyZTo2NzEyOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQorY29uZmlndXJlOjY3MTg6ICQ/ID0gMAorY29uZmlndXJlOjY3MjI6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY3MjU6ICQ/ID0gMAorY29uZmlndXJlOjY3Mjg6IHRlc3QgLXMgY29uZnRlc3QKK2NvbmZpZ3VyZTo2NzMxOiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IHllcworY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBzeXNfc2lnbGlzdAorY29uZmlndXJlOjY3MTI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25maWd1cmU6NjcxODogJD8gPSAwCitjb25maWd1cmU6NjcyMjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NjcyNTogJD8gPSAwCitjb25maWd1cmU6NjcyODogdGVzdCAtcyBjb25mdGVzdAorY29uZmlndXJlOjY3MzE6ICQ/ID0gMAorY29uZmlndXJlOjY3NDM6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIF9zeXNfc2lnbGlzdAorY29uZmlndXJlOjY3MTI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25maWd1cmU6NjcxODogJD8gPSAwCitjb25maWd1cmU6NjcyMjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NjcyNTogJD8gPSAwCitjb25maWd1cmU6NjcyODogdGVzdCAtcyBjb25mdGVzdAorY29uZmlndXJlOjY3MzE6ICQ/ID0gMAorY29uZmlndXJlOjY3NDM6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIGdldGRlbnRzCitjb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKKy90bXAvY2NJNHliVW8ubzogSW4gZnVuY3Rpb24gYG1haW4nOmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MjIpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnZXRkZW50cycKKy90bXAvY2NJNHliVW8ubzooLmRhdGErMHgwKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgZ2V0ZGVudHMnCitjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cworY29uZmlndXJlOjY3MTg6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAvKiBEZWZpbmUgZ2V0ZGVudHMgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXRkZW50cy4KK3wgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCit8ICNkZWZpbmUgZ2V0ZGVudHMgaW5ub2N1b3VzX2dldGRlbnRzCit8IAorfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCit8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIGdldGRlbnRzICgpOyBiZWxvdy4KK3wgICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKK3wgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCit8IAorfCAjaWZkZWYgX19TVERDX18KK3wgIyBpbmNsdWRlIDxsaW1pdHMuaD4KK3wgI2Vsc2UKK3wgIyBpbmNsdWRlIDxhc3NlcnQuaD4KK3wgI2VuZGlmCit8IAorfCAjdW5kZWYgZ2V0ZGVudHMKK3wgCit8IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCit8ICNpZmRlZiBfX2NwbHVzcGx1cworfCBleHRlcm4gIkMiCit8IHsKK3wgI2VuZGlmCit8IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKK3wgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK3wgY2hhciBnZXRkZW50cyAoKTsKK3wgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cworfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKK3wgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworfCAjaWYgZGVmaW5lZCAoX19zdHViX2dldGRlbnRzKSB8fCBkZWZpbmVkIChfX3N0dWJfX19nZXRkZW50cykKK3wgY2hva2UgbWUKK3wgI2Vsc2UKK3wgY2hhciAoKmYpICgpID0gZ2V0ZGVudHM7Cit8ICNlbmRpZgorfCAjaWZkZWYgX19jcGx1c3BsdXMKK3wgfQorfCAjZW5kaWYKK3wgCit8IGludAorfCBtYWluICgpCit8IHsKK3wgcmV0dXJuIGYgIT0gZ2V0ZGVudHM7Cit8ICAgOworfCAgIHJldHVybiAwOworfCB9Citjb25maWd1cmU6Njc0MzogcmVzdWx0OiBubworY29uZmlndXJlOjY2NTU6IGNoZWNraW5nIGZvciBtY3RsCitjb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKKy90bXAvY2NPUlk0cXYubzogSW4gZnVuY3Rpb24gYG1haW4nOmNvbmZ0ZXN0LmM6KC50ZXh0KzB4MjIpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBtY3RsJworL3RtcC9jY09SWTRxdi5vOiguZGF0YSsweDApOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBtY3RsJworY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKK2NvbmZpZ3VyZTo2NzE4OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgLyogRGVmaW5lIG1jdGwgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBtY3RsLgorfCAgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KK3wgI2RlZmluZSBtY3RsIGlubm9jdW91c19tY3RsCit8IAorfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCit8ICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIG1jdGwgKCk7IGJlbG93LgorfCAgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorfCAgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KK3wgCit8ICNpZmRlZiBfX1NURENfXworfCAjIGluY2x1ZGUgPGxpbWl0cy5oPgorfCAjZWxzZQorfCAjIGluY2x1ZGUgPGFzc2VydC5oPgorfCAjZW5kaWYKK3wgCit8ICN1bmRlZiBtY3RsCit8IAorfCAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworfCAjaWZkZWYgX19jcGx1c3BsdXMKK3wgZXh0ZXJuICJDIgorfCB7Cit8ICNlbmRpZgorfCAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCit8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCit8IGNoYXIgbWN0bCAoKTsKK3wgLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cworfCAgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKK3wgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworfCAjaWYgZGVmaW5lZCAoX19zdHViX21jdGwpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX21jdGwpCit8IGNob2tlIG1lCit8ICNlbHNlCit8IGNoYXIgKCpmKSAoKSA9IG1jdGw7Cit8ICNlbmRpZgorfCAjaWZkZWYgX19jcGx1c3BsdXMKK3wgfQorfCAjZW5kaWYKK3wgCit8IGludAorfCBtYWluICgpCit8IHsKK3wgcmV0dXJuIGYgIT0gbWN0bDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo2NzQzOiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIHByY3RsCitjb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKK2NvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Citjb25maWd1cmU6NjczMTogJD8gPSAwCitjb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2NjU1OiBjaGVja2luZyBmb3Igc2VuZG1zZworY29uZmlndXJlOjY3MTI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25maWd1cmU6NjcxODogJD8gPSAwCitjb25maWd1cmU6NjcyMjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NjcyNTogJD8gPSAwCitjb25maWd1cmU6NjcyODogdGVzdCAtcyBjb25mdGVzdAorY29uZmlndXJlOjY3MzE6ICQ/ID0gMAorY29uZmlndXJlOjY3NDM6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIGluZXRfbnRvcAorY29uZmlndXJlOjY3MTI6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25maWd1cmU6NjcxODogJD8gPSAwCitjb25maWd1cmU6NjcyMjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NjcyNTogJD8gPSAwCitjb25maWd1cmU6NjcyODogdGVzdCAtcyBjb25mdGVzdAorY29uZmlndXJlOjY3MzE6ICQ/ID0gMAorY29uZmlndXJlOjY3NDM6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjY1NTogY2hlY2tpbmcgZm9yIGlmX2luZGV4dG9uYW1lCitjb25maWd1cmU6NjcxMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gICBjb25mdGVzdC5jICA+JjUKK2NvbmZpZ3VyZTo2NzE4OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzIyOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2NzI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2NzI4OiB0ZXN0IC1zIGNvbmZ0ZXN0Citjb25maWd1cmU6NjczMTogJD8gPSAwCitjb25maWd1cmU6Njc0MzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvcmVnLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NjgxMjogJD8gPSAwCitjb25maWd1cmU6NjgxNjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NjgxOTogJD8gPSAwCitjb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NjgyNTogJD8gPSAwCitjb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvcmVnLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvcmVnLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9maWxpby5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzo4MToyMzogZXJyb3I6IHN5cy9maWxpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6NjgxMjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgI2luY2x1ZGUgPHN5cy9maWxpby5oPgorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvZmlsaW8uaCBwcmVzZW5jZQorY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYworY29uZnRlc3QuYzo0NzoyMzogZXJyb3I6IHN5cy9maWxpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6Njg1NTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL2ZpbGlvLmg+Citjb25maWd1cmU6Njg3NTogcmVzdWx0OiBubworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvZmlsaW8uaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvYWNsLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOjgxOjIxOiBlcnJvcjogc3lzL2FjbC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6NjgxMjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgI2luY2x1ZGUgPHN5cy9hY2wuaD4KK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2FjbC5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25mdGVzdC5jOjQ3OjIxOiBlcnJvcjogc3lzL2FjbC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6Njg1NTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL2FjbC5oPgorY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL2FjbC5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiBubworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9hc3luY2guaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6ODE6MjQ6IGVycm9yOiBzeXMvYXN5bmNoLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCAjaW5jbHVkZSA8c3lzL2FzeW5jaC5oPgorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvYXN5bmNoLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZ0ZXN0LmM6NDc6MjQ6IGVycm9yOiBzeXMvYXN5bmNoLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzeXMvYXN5bmNoLmg+Citjb25maWd1cmU6Njg3NTogcmVzdWx0OiBubworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvYXN5bmNoLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL2Rvb3IuaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6ODE6MjI6IGVycm9yOiBzeXMvZG9vci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6NjgxMjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgI2luY2x1ZGUgPHN5cy9kb29yLmg+Citjb25maWd1cmU6NjgzNTogcmVzdWx0OiBubworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9kb29yLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZ0ZXN0LmM6NDc6MjI6IGVycm9yOiBzeXMvZG9vci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6Njg1NTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL2Rvb3IuaD4KK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9kb29yLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3Ryb3B0cy5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMAorY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY4MTk6ICQ/ID0gMAorY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY4MjU6ICQ/ID0gMAorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3Ryb3B0cy5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6Njg1NTogJD8gPSAwCitjb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3Ryb3B0cy5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvY29uZi5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzo4MjoyMjogZXJyb3I6IHN5cy9jb25mLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgI2luY2x1ZGUgPHN5cy9jb25mLmg+Citjb25maWd1cmU6NjgzNTogcmVzdWx0OiBubworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9jb25mLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZ0ZXN0LmM6NDg6MjI6IGVycm9yOiBzeXMvY29uZi5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6Njg1NTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN5cy9jb25mLmg+Citjb25maWd1cmU6Njg3NTogcmVzdWx0OiBubworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvY29uZi5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiBubworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9zdHJlYW0uaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6ODI6MjQ6IGVycm9yOiBzeXMvc3RyZWFtLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3N0cmVhbS5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25mdGVzdC5jOjQ4OjI0OiBlcnJvcjogc3lzL3N0cmVhbS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6Njg1NTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9zdHJlYW0uaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvdGloZHIuaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6ODI6MjM6IGVycm9yOiBzeXMvdGloZHIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCAjaW5jbHVkZSA8c3lzL3RpaGRyLmg+Citjb25maWd1cmU6NjgzNTogcmVzdWx0OiBubworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy90aWhkci5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25mdGVzdC5jOjQ4OjIzOiBlcnJvcjogc3lzL3RpaGRyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3RpaGRyLmg+Citjb25maWd1cmU6Njg3NTogcmVzdWx0OiBubworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvdGloZHIuaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvdGl1c2VyLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOjgyOjI0OiBlcnJvcjogc3lzL3RpdXNlci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6NjgxMjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN0ZGlvLmg+Cit8ICNpZiBIQVZFX1NZU19UWVBFU19ICit8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TWVNfU1RBVF9ICit8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KK3wgI2VuZGlmCit8ICNpZiBTVERDX0hFQURFUlMKK3wgIyBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBpbmNsdWRlIDxzdGRkZWYuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURExJQl9ICit8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdfSAorfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAorfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KK3wgIyBlbmRpZgorfCAjIGluY2x1ZGUgPHN0cmluZy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HU19ICit8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfSU5UVFlQRVNfSAorfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERJTlRfSAorfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfVU5JU1REX0gKK3wgIyBpbmNsdWRlIDx1bmlzdGQuaD4KK3wgI2VuZGlmCit8ICNpbmNsdWRlIDxzeXMvdGl1c2VyLmg+Citjb25maWd1cmU6NjgzNTogcmVzdWx0OiBubworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy90aXVzZXIuaCBwcmVzZW5jZQorY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYworY29uZnRlc3QuYzo0ODoyNDogZXJyb3I6IHN5cy90aXVzZXIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjY4NTU6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzeXMvdGl1c2VyLmg+Citjb25maWd1cmU6Njg3NTogcmVzdWx0OiBubworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvdGl1c2VyLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL3N5c2NvbmZpZy5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzo4MjoyNzogZXJyb3I6IHN5cy9zeXNjb25maWcuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCAjaW5jbHVkZSA8c3lzL3N5c2NvbmZpZy5oPgorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvc3lzY29uZmlnLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZ0ZXN0LmM6NDg6Mjc6IGVycm9yOiBzeXMvc3lzY29uZmlnLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3N5c2NvbmZpZy5oPgorY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL3N5c2NvbmZpZy5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiBubworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIGlvY3Rscy5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzo4MjoyMDogZXJyb3I6IGlvY3Rscy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6NjgxMjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN0ZGlvLmg+Cit8ICNpZiBIQVZFX1NZU19UWVBFU19ICit8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TWVNfU1RBVF9ICit8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KK3wgI2VuZGlmCit8ICNpZiBTVERDX0hFQURFUlMKK3wgIyBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBpbmNsdWRlIDxzdGRkZWYuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURExJQl9ICit8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdfSAorfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAorfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KK3wgIyBlbmRpZgorfCAjIGluY2x1ZGUgPHN0cmluZy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HU19ICit8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfSU5UVFlQRVNfSAorfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERJTlRfSAorfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfVU5JU1REX0gKK3wgIyBpbmNsdWRlIDx1bmlzdGQuaD4KK3wgI2VuZGlmCit8ICNpbmNsdWRlIDxpb2N0bHMuaD4KK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgaW9jdGxzLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZ0ZXN0LmM6NDg6MjA6IGVycm9yOiBpb2N0bHMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjY4NTU6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxpb2N0bHMuaD4KK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGlvY3Rscy5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiBubworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9pb2N0bC5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMAorY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY4MTk6ICQ/ID0gMAorY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY4MjU6ICQ/ID0gMAorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2lvY3RsLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvaW9jdGwuaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL3B0cmFjZS5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMAorY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY4MTk6ICQ/ID0gMAorY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY4MjU6ICQ/ID0gMAorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3B0cmFjZS5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6Njg1NTogJD8gPSAwCitjb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL3B0cmFjZS5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyB0ZXJtaW8uaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHRlcm1pby5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6Njg1NTogJD8gPSAwCitjb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgdGVybWlvLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIGxpbnV4L3B0cmFjZS5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMAorY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY4MTk6ICQ/ID0gMAorY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY4MjU6ICQ/ID0gMAorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgbGludXgvcHRyYWNlLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBsaW51eC9wdHJhY2UuaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgYXNtL3JlZy5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzo4NjoyMTogZXJyb3I6IGFzbS9yZWcuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgI2luY2x1ZGUgPGFzbS9yZWcuaD4KK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgYXNtL3JlZy5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25mdGVzdC5jOjUyOjIxOiBlcnJvcjogYXNtL3JlZy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6Njg1NTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxhc20vcmVnLmg+Citjb25maWd1cmU6Njg3NTogcmVzdWx0OiBubworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBhc20vcmVnLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL3Vpby5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMAorY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY4MTk6ICQ/ID0gMAorY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY4MjU6ICQ/ID0gMAorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL3Vpby5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6Njg1NTogJD8gPSAwCitjb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL3Vpby5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvYWlvLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOjg3OjIxOiBlcnJvcjogc3lzL2Fpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6NjgxMjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2lmIEhBVkVfU1lTX1RZUEVTX0gKK3wgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NZU19TVEFUX0gKK3wgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgorfCAjZW5kaWYKK3wgI2lmIFNURENfSEVBREVSUworfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RETElCX0gKK3wgIyAgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR19ICit8ICMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICit8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgorfCAjIGVuZGlmCit8ICMgaW5jbHVkZSA8c3RyaW5nLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdTX0gKK3wgIyBpbmNsdWRlIDxzdHJpbmdzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9JTlRUWVBFU19ICit8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURElOVF9ICit8ICMgIGluY2x1ZGUgPHN0ZGludC5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9VTklTVERfSAorfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorfCAjZW5kaWYKK3wgI2luY2x1ZGUgPHN5cy9haW8uaD4KK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2Fpby5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25mdGVzdC5jOjUzOjIxOiBlcnJvcjogc3lzL2Fpby5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6Njg1NTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL2Fpby5oPgorY29uZmlndXJlOjY4NzU6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3Igc3lzL2Fpby5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiBubworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHBvbGwuaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHBvbGwuaCBwcmVzZW5jZQorY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYworY29uZmlndXJlOjY4NTU6ICQ/ID0gMAorY29uZmlndXJlOjY4NzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHBvbGwuaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgc3lzL3BvbGwuaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIHN5cy9wb2xsLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvcG9sbC5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvdmZzLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NjgxMjogJD8gPSAwCitjb25maWd1cmU6NjgxNjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NjgxOTogJD8gPSAwCitjb25maWd1cmU6NjgyMjogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NjgyNTogJD8gPSAwCitjb25maWd1cmU6NjgzNTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvdmZzLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvdmZzLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIGFzbS9zeXNtaXBzLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOjkwOjI1OiBlcnJvcjogYXNtL3N5c21pcHMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCAjaW5jbHVkZSA8YXNtL3N5c21pcHMuaD4KK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgYXNtL3N5c21pcHMuaCBwcmVzZW5jZQorY29uZmlndXJlOjY4NDk6IGdjYyAtRSAgY29uZnRlc3QuYworY29uZnRlc3QuYzo1NjoyNTogZXJyb3I6IGFzbS9zeXNtaXBzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8YXNtL3N5c21pcHMuaD4KK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIGFzbS9zeXNtaXBzLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IG5vCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgbGludXgvdXRzbmFtZS5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMAorY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY4MTk6ICQ/ID0gMAorY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY4MjU6ICQ/ID0gMAorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgbGludXgvdXRzbmFtZS5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6Njg1NTogJD8gPSAwCitjb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgbGludXgvdXRzbmFtZS5oCitjb25maWd1cmU6NjkxNzogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBzeXMvbnNjc3lzLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOjkxOjI0OiBlcnJvcjogc3lzL25zY3N5cy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25maWd1cmU6NjgxMjogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKK3wgI2RlZmluZSBIQVZFX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzdGRpby5oPgorfCAjaWYgSEFWRV9TWVNfVFlQRVNfSAorfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1lTX1NUQVRfSAorfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cit8ICNlbmRpZgorfCAjaWYgU1REQ19IRUFERVJTCit8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cit8ICMgaW5jbHVkZSA8c3RkZGVmLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERMSUJfSAorfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HX0gKK3wgIyBpZiAhU1REQ19IRUFERVJTICYmIEhBVkVfTUVNT1JZX0gKK3wgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+Cit8ICMgZW5kaWYKK3wgIyBpbmNsdWRlIDxzdHJpbmcuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX1NUUklOR1NfSAorfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KK3wgI2VuZGlmCit8ICNpZiBIQVZFX0lOVFRZUEVTX0gKK3wgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgorfCAjZWxzZQorfCAjIGlmIEhBVkVfU1RESU5UX0gKK3wgIyAgaW5jbHVkZSA8c3RkaW50Lmg+Cit8ICMgZW5kaWYKK3wgI2VuZGlmCit8ICNpZiBIQVZFX1VOSVNURF9ICit8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cit8ICNlbmRpZgorfCAjaW5jbHVkZSA8c3lzL25zY3N5cy5oPgorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2ODM5OiBjaGVja2luZyBzeXMvbnNjc3lzLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZ0ZXN0LmM6NTc6MjQ6IGVycm9yOiBzeXMvbnNjc3lzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN5cy9uc2NzeXMuaD4KK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjkxMDogY2hlY2tpbmcgZm9yIHN5cy9uc2NzeXMuaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2Nzk0OiBjaGVja2luZyBtcXVldWUuaCB1c2FiaWxpdHkKK2NvbmZpZ3VyZTo2ODA2OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODE2OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2ODE5OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODIyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo2ODI1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY4Mzk6IGNoZWNraW5nIG1xdWV1ZS5oIHByZXNlbmNlCitjb25maWd1cmU6Njg0OTogZ2NjIC1FICBjb25mdGVzdC5jCitjb25maWd1cmU6Njg1NTogJD8gPSAwCitjb25maWd1cmU6Njg3NTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2OTEwOiBjaGVja2luZyBmb3IgbXF1ZXVlLmgKK2NvbmZpZ3VyZTo2OTE3OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY3OTQ6IGNoZWNraW5nIHN5cy9lcG9sbC5oIHVzYWJpbGl0eQorY29uZmlndXJlOjY4MDY6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY4MTI6ICQ/ID0gMAorY29uZmlndXJlOjY4MTY6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY4MTk6ICQ/ID0gMAorY29uZmlndXJlOjY4MjI6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY4MjU6ICQ/ID0gMAorY29uZmlndXJlOjY4MzU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgc3lzL2Vwb2xsLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZpZ3VyZTo2ODU1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2ODc1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBzeXMvZXBvbGwuaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogeWVzCitjb25maWd1cmU6Njc5NDogY2hlY2tpbmcgbGliYWlvLmggdXNhYmlsaXR5Citjb25maWd1cmU6NjgwNjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOjkzOjIwOiBlcnJvcjogbGliYWlvLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZpZ3VyZTo2ODEyOiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCit8ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN0ZGlvLmg+Cit8ICNpZiBIQVZFX1NZU19UWVBFU19ICit8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cit8ICNlbmRpZgorfCAjaWYgSEFWRV9TWVNfU1RBVF9ICit8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KK3wgI2VuZGlmCit8ICNpZiBTVERDX0hFQURFUlMKK3wgIyBpbmNsdWRlIDxzdGRsaWIuaD4KK3wgIyBpbmNsdWRlIDxzdGRkZWYuaD4KK3wgI2Vsc2UKK3wgIyBpZiBIQVZFX1NURExJQl9ICit8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorfCAjIGVuZGlmCit8ICNlbmRpZgorfCAjaWYgSEFWRV9TVFJJTkdfSAorfCAjIGlmICFTVERDX0hFQURFUlMgJiYgSEFWRV9NRU1PUllfSAorfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KK3wgIyBlbmRpZgorfCAjIGluY2x1ZGUgPHN0cmluZy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfU1RSSU5HU19ICit8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfSU5UVFlQRVNfSAorfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cit8ICNlbHNlCit8ICMgaWYgSEFWRV9TVERJTlRfSAorfCAjICBpbmNsdWRlIDxzdGRpbnQuaD4KK3wgIyBlbmRpZgorfCAjZW5kaWYKK3wgI2lmIEhBVkVfVU5JU1REX0gKK3wgIyBpbmNsdWRlIDx1bmlzdGQuaD4KK3wgI2VuZGlmCit8ICNpbmNsdWRlIDxsaWJhaW8uaD4KK2NvbmZpZ3VyZTo2ODM1OiByZXN1bHQ6IG5vCitjb25maWd1cmU6NjgzOTogY2hlY2tpbmcgbGliYWlvLmggcHJlc2VuY2UKK2NvbmZpZ3VyZTo2ODQ5OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKK2NvbmZ0ZXN0LmM6NTk6MjA6IGVycm9yOiBsaWJhaW8uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZmlndXJlOjY4NTU6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKK3wgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8bGliYWlvLmg+Citjb25maWd1cmU6Njg3NTogcmVzdWx0OiBubworY29uZmlndXJlOjY5MTA6IGNoZWNraW5nIGZvciBsaWJhaW8uaAorY29uZmlndXJlOjY5MTc6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo2OTM3OiBjaGVja2luZyBmb3IgbGludXgvaWNtcC5oCitjb25maWd1cmU6Njk1MjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6Njk1ODogJD8gPSAwCitjb25maWd1cmU6Njk2MjogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6Njk2NTogJD8gPSAwCitjb25maWd1cmU6Njk2ODogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6Njk3MTogJD8gPSAwCitjb25maWd1cmU6Njk4MjogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo2OTM3OiBjaGVja2luZyBmb3IgbGludXgvaW42LmgKK2NvbmZpZ3VyZTo2OTUyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo2OTU4OiAkPyA9IDAKK2NvbmZpZ3VyZTo2OTYyOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2OTY1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2OTY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo2OTcxOiAkPyA9IDAKK2NvbmZpZ3VyZTo2OTgyOiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5Mzc6IGNoZWNraW5nIGZvciBsaW51eC9uZXRsaW5rLmgKK2NvbmZpZ3VyZTo2OTUyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo2OTU4OiAkPyA9IDAKK2NvbmZpZ3VyZTo2OTYyOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo2OTY1OiAkPyA9IDAKK2NvbmZpZ3VyZTo2OTY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo2OTcxOiAkPyA9IDAKK2NvbmZpZ3VyZTo2OTgyOiByZXN1bHQ6IHllcworY29uZmlndXJlOjY5Mzc6IGNoZWNraW5nIGZvciBsaW51eC9pZl9wYWNrZXQuaAorY29uZmlndXJlOjY5NTI6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjY5NTg6ICQ/ID0gMAorY29uZmlndXJlOjY5NjI6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjY5NjU6ICQ/ID0gMAorY29uZmlndXJlOjY5Njg6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjY5NzE6ICQ/ID0gMAorY29uZmlndXJlOjY5ODI6IHJlc3VsdDogeWVzCitjb25maWd1cmU6Njk5NzogY2hlY2tpbmcgZm9yIGFzbS9zaWdjb250ZXh0LmgKK2NvbmZpZ3VyZTo3MDEzOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo3MDE5OiAkPyA9IDAKK2NvbmZpZ3VyZTo3MDIzOiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo3MDI2OiAkPyA9IDAKK2NvbmZpZ3VyZTo3MDI5OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo3MDMyOiAkPyA9IDAKK2NvbmZpZ3VyZTo3MDQzOiByZXN1bHQ6IHllcworY29uZmlndXJlOjcwNTk6IGNoZWNraW5nIGZvciBuZXRpbmV0L3RjcC5oCitjb25maWd1cmU6NzA3NTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6NzA4MTogJD8gPSAwCitjb25maWd1cmU6NzA4NTogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6NzA4ODogJD8gPSAwCitjb25maWd1cmU6NzA5MTogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6NzA5NDogJD8gPSAwCitjb25maWd1cmU6NzEwNTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo3MDU5OiBjaGVja2luZyBmb3IgbmV0aW5ldC91ZHAuaAorY29uZmlndXJlOjcwNzU6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjcwODE6ICQ/ID0gMAorY29uZmlndXJlOjcwODU6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjcwODg6ICQ/ID0gMAorY29uZmlndXJlOjcwOTE6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjcwOTQ6ICQ/ID0gMAorY29uZmlndXJlOjcxMDU6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NzExNzogY2hlY2tpbmcgZm9yIE1QIHByb2NmcworY29uZmlndXJlOjcxNzk6IGdjYyAtbyBjb25mdGVzdCAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICAgY29uZnRlc3QuYyAgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjc4OiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdwc3RhdHVzJyBpc24ndCBrbm93bgorY29uZnRlc3QuYzo4Mjogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0JworY29uZnRlc3QuYzo5MDogZXJyb3I6ICdQQ1NUT1AnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQorY29uZnRlc3QuYzo5MDogZXJyb3I6IChFYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UKK2NvbmZ0ZXN0LmM6OTA6IGVycm9yOiBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluLikKK2NvbmZ0ZXN0LmM6OTY6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKK2NvbmZpZ3VyZTo3MTgyOiAkPyA9IDEKK2NvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKK3wgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQorfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCit8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKK3wgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8IAorfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2luY2x1ZGUgPHNpZ25hbC5oPgorfCAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorfCAKK3wgbWFpbigpCit8IHsKK3wgCWludCBwaWQ7Cit8IAljaGFyIHByb2NbMzJdOworfCAJRklMRSAqY3RsOworfCAJRklMRSAqc3RhdHVzOworfCAJaW50IGNtZDsKK3wgCXN0cnVjdCBwc3RhdHVzIHBzdGF0dXM7Cit8IAorfCAJaWYgKChwaWQgPSBmb3JrKCkpID09IDApIHsKK3wgCQlwYXVzZSgpOworfCAJCWV4aXQoMCk7Cit8IAl9Cit8IAlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9jdGwiLCBwaWQpOworfCAJaWYgKChjdGwgPSBmb3Blbihwcm9jLCAidyIpKSA9PSBOVUxMKQorfCAJCWdvdG8gZmFpbDsKK3wgCXNwcmludGYocHJvYywgIi9wcm9jLyVkL3N0YXR1cyIsIHBpZCk7Cit8IAlpZiAoKHN0YXR1cyA9IGZvcGVuIChwcm9jLCAiciIpKSA9PSBOVUxMKQorfCAJCWdvdG8gZmFpbDsKK3wgCWNtZCA9IFBDU1RPUDsKK3wgCWlmICh3cml0ZSAoZmlsZW5vIChjdGwpLCAmY21kLCBzaXplb2YgY21kKSA8IDApCit8IAkJZ290byBmYWlsOworfCAJaWYgKHJlYWQgKGZpbGVubyAoc3RhdHVzKSwgJnBzdGF0dXMsIHNpemVvZiBwc3RhdHVzKSA8IDApCit8IAkJZ290byBmYWlsOworfCAJa2lsbChwaWQsIFNJR0tJTEwpOworfCAJZXhpdCgwKTsKK3wgZmFpbDoKK3wgCWtpbGwocGlkLCBTSUdLSUxMKTsKK3wgCWV4aXQoMSk7Cit8IH0KK3wgCitjb25maWd1cmU6NzIwMjogcmVzdWx0OiBubworY29uZmlndXJlOjcyMTM6IGNoZWNraW5nIGZvciBwb2xsYWJsZSBwcm9jZnMKK2NvbmZpZ3VyZTo3MjkwOiBnY2MgLW8gY29uZnRlc3QgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgIGNvbmZ0ZXN0LmMgID4mNQorY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgorY29uZnRlc3QuYzo5Nzogd2FybmluZzogaW5jb21wYXRpYmxlIGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGJ1aWx0LWluIGZ1bmN0aW9uICdleGl0JworY29uZnRlc3QuYzoxMDI6IGVycm9yOiAnUElPQ1NUT1AnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQorY29uZnRlc3QuYzoxMDI6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlCitjb25mdGVzdC5jOjEwMjogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQorY29uZnRlc3QuYzoxMTE6IHdhcm5pbmc6IGluY29tcGF0aWJsZSBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBidWlsdC1pbiBmdW5jdGlvbiAnZXhpdCcKK2NvbmZpZ3VyZTo3MjkzOiAkPyA9IDEKK2NvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKK3wgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQorfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCit8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKK3wgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8IAorfCAjaW5jbHVkZSA8c3RkaW8uaD4KK3wgI2luY2x1ZGUgPHNpZ25hbC5oPgorfCAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorfCAjaW5jbHVkZSA8c3lzL3N0cm9wdHMuaD4KK3wgI2luY2x1ZGUgPHBvbGwuaD4KK3wgCit8ICNpZmRlZiBIQVZFX01QX1BST0NGUworfCAjZGVmaW5lIFBJT0NTVE9QCVBDU1RPUAorfCAjZGVmaW5lIFBPTExXQU5UCVBPTExXUk5PUk0KK3wgI2RlZmluZSBQUk9DCQkiL3Byb2MvJWQvY3RsIgorfCAjZGVmaW5lIFBST0NfTU9ERQkidyIKK3wgaW50IElPQ1RMIChpbnQgZmQsIGludCBjbWQsIGludCBhcmcpIHsKK3wgCXJldHVybiB3cml0ZSAoZmQsICZjbWQsIHNpemVvZiBjbWQpOworfCB9Cit8ICNlbHNlCit8ICNkZWZpbmUgUE9MTFdBTlQJUE9MTFBSSQorfCAjZGVmaW5lCVBST0MJCSIvcHJvYy8lZCIKK3wgI2RlZmluZSBQUk9DX01PREUJInIrIgorfCAjZGVmaW5lIElPQ1RMCQlpb2N0bAorfCAjZW5kaWYKK3wgCit8IG1haW4oKQorfCB7Cit8IAlpbnQgcGlkOworfCAJY2hhciBwcm9jWzMyXTsKK3wgCUZJTEUgKnBmcDsKK3wgCXN0cnVjdCBwb2xsZmQgcGZkOworfCAKK3wgCWlmICgocGlkID0gZm9yaygpKSA9PSAwKSB7Cit8IAkJcGF1c2UoKTsKK3wgCQlleGl0KDApOworfCAJfQorfCAJc3ByaW50Zihwcm9jLCBQUk9DLCBwaWQpOworfCAJaWYgKChwZnAgPSBmb3Blbihwcm9jLCBQUk9DX01PREUpKSA9PSBOVUxMKQorfCAJCWdvdG8gZmFpbDsKK3wgCWlmIChJT0NUTChmaWxlbm8ocGZwKSwgUElPQ1NUT1AsIE5VTEwpIDwgMCkKK3wgCQlnb3RvIGZhaWw7Cit8IAlwZmQuZmQgPSBmaWxlbm8ocGZwKTsKK3wgCXBmZC5ldmVudHMgPSBQT0xMV0FOVDsKK3wgCWlmIChwb2xsKCZwZmQsIDEsIDApIDwgMCkKK3wgCQlnb3RvIGZhaWw7Cit8IAlpZiAoIShwZmQucmV2ZW50cyAmIFBPTExXQU5UKSkKK3wgCQlnb3RvIGZhaWw7Cit8IAlraWxsKHBpZCwgU0lHS0lMTCk7Cit8IAlleGl0KDApOworfCBmYWlsOgorfCAJa2lsbChwaWQsIFNJR0tJTEwpOworfCAJZXhpdCgxKTsKK3wgfQorfCAKK2NvbmZpZ3VyZTo3MzEzOiByZXN1bHQ6IG5vCitjb25maWd1cmU6NzMyNTogY2hlY2tpbmcgZm9yIHN0cnVjdCBtc2doZHIubXNnX2NvbnRyb2wKK2NvbmZpZ3VyZTo3MzQ5OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo3MzU1OiAkPyA9IDAKK2NvbmZpZ3VyZTo3MzU5OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo3MzYyOiAkPyA9IDAKK2NvbmZpZ3VyZTo3MzY1OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo3MzY4OiAkPyA9IDAKK2NvbmZpZ3VyZTo3NDI2OiByZXN1bHQ6IHllcworY29uZmlndXJlOjc0Mzc6IGNoZWNraW5nIGZvciBwcl9zeXNjYWxsIGluIHN0cnVjdCBwcnN0YXR1cworY29uZmlndXJlOjc0NjQ6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgorY29uZnRlc3QuYzo3NjogZXJyb3I6ICdwcnN0YXR1c190JyBoYXMgbm8gbWVtYmVyIG5hbWVkICdwcl9zeXNjYWxsJworY29uZmlndXJlOjc0NzA6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKK3wgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQorfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCit8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKK3wgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCAjaWZkZWYgSEFWRV9NUF9QUk9DRlMKK3wgcHN0YXR1c190IHM7Cit8IHMucHJfbHdwLnByX3N5c2NhbGwKK3wgI2Vsc2UKK3wgcHJzdGF0dXNfdCBzOworfCBzLnByX3N5c2NhbGwKK3wgI2VuZGlmCit8ICAgOworfCAgIHJldHVybiAwOworfCB9Citjb25maWd1cmU6NzQ5NTogcmVzdWx0OiBubworY29uZmlndXJlOjc1MDc6IGNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5RVUVVRV9wdHIKK2NvbmZpZ3VyZTo3NTMyOiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6Njc6MjQ6IGVycm9yOiBzeXMvc3RyZWFtLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZ0ZXN0LmM6Njg6MjM6IGVycm9yOiBzeXMvdGloZHIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgorY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KK2NvbmZ0ZXN0LmM6NzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCitjb25maWd1cmU6NzUzODogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKK3wgI2RlZmluZSBIQVZFX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQorfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCit8ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKK3wgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQorfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgorfCAjaW5jbHVkZSA8c3lzL3RpaGRyLmg+Cit8IAorfCBpbnQKK3wgbWFpbiAoKQorfCB7Cit8IHN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOworfCBpZiAoYWNfYWdnci5RVUVVRV9wdHIpCit8IHJldHVybiAwOworfCAgIDsKK3wgICByZXR1cm4gMDsKK3wgfQorY29uZmlndXJlOjc1Nzg6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZnRlc3QuYzo2NzoyNDogZXJyb3I6IHN5cy9zdHJlYW0uaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZnRlc3QuYzo2ODoyMzogZXJyb3I6IHN5cy90aWhkci5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgorY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KK2NvbmZpZ3VyZTo3NTg0OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCit8ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKK3wgI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQorfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCit8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1VEUF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQorfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCit8ICNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+Cit8ICNpbmNsdWRlIDxzeXMvdGloZHIuaD4KK3wgCit8IGludAorfCBtYWluICgpCit8IHsKK3wgc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7Cit8IGlmIChzaXplb2YgYWNfYWdnci5RVUVVRV9wdHIpCit8IHJldHVybiAwOworfCAgIDsKK3wgICByZXR1cm4gMDsKK3wgfQorY29uZmlndXJlOjc2MTA6IHJlc3VsdDogbm8KK2NvbmZpZ3VyZTo3NjIwOiBjaGVja2luZyBmb3Igc3RydWN0IFRfY29ubl9yZXMuQUNDRVBUT1JfaWQKK2NvbmZpZ3VyZTo3NjQ1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZ0ZXN0LmM6Njc6MjQ6IGVycm9yOiBzeXMvc3RyZWFtLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZ0ZXN0LmM6Njg6MjM6IGVycm9yOiBzeXMvdGloZHIuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorY29uZnRlc3QuYzogSW4gZnVuY3Rpb24gJ21haW4nOgorY29uZnRlc3QuYzo3MzogZXJyb3I6IHN0b3JhZ2Ugc2l6ZSBvZiAnYWNfYWdncicgaXNuJ3Qga25vd24KK2NvbmZ0ZXN0LmM6NzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCitjb25maWd1cmU6NzY1MTogJD8gPSAxCitjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKK3wgLyogY29uZmRlZnMuaC4gICovCit8IAorfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJzdHJhY2UgNC41LjEyIgorfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIiCit8ICNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorfCAjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBMSU5VWCAxCit8ICNkZWZpbmUgQVJNIDEKK3wgI2RlZmluZSBfR05VX1NPVVJDRSAxCit8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKK3wgI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKK3wgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCit8ICNkZWZpbmUgSEFWRV9TVEFUNjQgMQorfCAjZGVmaW5lIFJFVFNJR1RZUEUgdm9pZAorfCAjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90Cit8ICNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorfCAjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCAxCit8ICNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcgMQorfCAjZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKK3wgI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKK3wgI2RlZmluZSBIQVZFX1NUUlNJR05BTCAxCit8ICNkZWZpbmUgSEFWRV9QUkVBRCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9fU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfUFJDVEwgMQorfCAjZGVmaW5lIEhBVkVfU0VORE1TRyAxCit8ICNkZWZpbmUgSEFWRV9JTkVUX05UT1AgMQorfCAjZGVmaW5lIEhBVkVfSUZfSU5ERVhUT05BTUUgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKK3wgI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfVEVSTUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfUFRSQUNFX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKK3wgI2RlZmluZSBIQVZFX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19WRlNfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9VVFNOQU1FX0ggMQorfCAjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0VQT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSUNNUF9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lONl9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX05FVExJTktfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JRl9QQUNLRVRfSCAxCit8ICNkZWZpbmUgSEFWRV9BU01fU0lHQ09OVEVYVF9IIDEKK3wgI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQorfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9VRFBfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgorfCAjaW5jbHVkZSA8c3lzL3RpaGRyLmg+Cit8IAorfCBpbnQKK3wgbWFpbiAoKQorfCB7Cit8IHN0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOworfCBpZiAoYWNfYWdnci5BQ0NFUFRPUl9pZCkKK3wgcmV0dXJuIDA7Cit8ICAgOworfCAgIHJldHVybiAwOworfCB9Citjb25maWd1cmU6NzY5MTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOjY3OjI0OiBlcnJvcjogc3lzL3N0cmVhbS5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Citjb25mdGVzdC5jOjY4OjIzOiBlcnJvcjogc3lzL3RpaGRyLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKK2NvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKK2NvbmZ0ZXN0LmM6NzM6IGVycm9yOiBzdG9yYWdlIHNpemUgb2YgJ2FjX2FnZ3InIGlzbid0IGtub3duCitjb25mdGVzdC5jOjczOiBlcnJvcjogc3RvcmFnZSBzaXplIG9mICdhY19hZ2dyJyBpc24ndCBrbm93bgorY29uZmlndXJlOjc2OTc6ICQ/ID0gMQorY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cit8IC8qIGNvbmZkZWZzLmguICAqLworfCAKK3wgI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInN0cmFjZSIKK3wgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX1NUUklORyAic3RyYWNlIDQuNS4xMiIKK3wgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorfCAjZGVmaW5lIFBBQ0tBR0UgInN0cmFjZSIKK3wgI2RlZmluZSBWRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgTElOVVggMQorfCAjZGVmaW5lIEFSTSAxCit8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCit8ICNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKK3wgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKK3wgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCit8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKK3wgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKK3wgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYgMQorfCAjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK3wgI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKK3wgI2RlZmluZSBHRVRHUk9VUFNfVCBnaWRfdAorfCAjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKK3wgI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorfCAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK3wgI2RlZmluZSBIQVZFX1NJR0FDVElPTiAxCit8ICNkZWZpbmUgSEFWRV9TVFJFUlJPUiAxCit8ICNkZWZpbmUgSEFWRV9TVFJTSUdOQUwgMQorfCAjZGVmaW5lIEhBVkVfUFJFQUQgMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NJR0xJU1QgMQorfCAjZGVmaW5lIEhBVkVfX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX1BSQ1RMIDEKK3wgI2RlZmluZSBIQVZFX1NFTkRNU0cgMQorfCAjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKK3wgI2RlZmluZSBIQVZFX0lGX0lOREVYVE9OQU1FIDEKK3wgI2RlZmluZSBIQVZFX1NZU19SRUdfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJPUFRTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1RFUk1JT19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1BUUkFDRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1BPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVkZTX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKK3wgI2RlZmluZSBIQVZFX01RVUVVRV9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19FUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lDTVBfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9ORVRMSU5LX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSUZfUEFDS0VUX0ggMQorfCAjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCit8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1RDUF9IIDEKK3wgI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAxCit8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK3wgI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KK3wgI2luY2x1ZGUgPHN5cy90aWhkci5oPgorfCAKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBzdGF0aWMgc3RydWN0IFRfY29ubl9yZXMgYWNfYWdncjsKK3wgaWYgKHNpemVvZiBhY19hZ2dyLkFDQ0VQVE9SX2lkKQorfCByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo3NzIzOiByZXN1bHQ6IG5vCitjb25maWd1cmU6NzczNTogY2hlY2tpbmcgZm9yIHN0cnVjdCBfX29sZF9rZXJuZWxfc3RhdAorY29uZmlndXJlOjc3NjA6IGdjYyAtYyAtSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvICBjb25mdGVzdC5jID4mNQorY29uZmlndXJlOjc3NjY6ICQ/ID0gMAorY29uZmlndXJlOjc3NzA6IHRlc3QgLXogCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgorY29uZmlndXJlOjc3NzM6ICQ/ID0gMAorY29uZmlndXJlOjc3NzY6IHRlc3QgLXMgY29uZnRlc3QubworY29uZmlndXJlOjc3Nzk6ICQ/ID0gMAorY29uZmlndXJlOjc3OTA6IHJlc3VsdDogeWVzCitjb25maWd1cmU6NzgwMjogY2hlY2tpbmcgZm9yIHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzCitjb25maWd1cmU6NzgyNzogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjc1OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBwdF9hbGxfdXNlcl9yZWdzJyAKK2NvbmZpZ3VyZTo3ODMzOiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCit8ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKK3wgI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQorfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCit8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1VEUF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorfCAKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBpZiAoKHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzICopIDApCit8ICAgcmV0dXJuIDA7Cit8IGlmIChzaXplb2YgKHN0cnVjdCBwdF9hbGxfdXNlcl9yZWdzKSkKK3wgICByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo3ODU3OiByZXN1bHQ6IG5vCitjb25maWd1cmU6Nzg2NzogY2hlY2tpbmcgZm9yIHN0cnVjdCBpYTY0X2ZwcmVnCitjb25maWd1cmU6Nzg5MjogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25mdGVzdC5jOiBJbiBmdW5jdGlvbiAnbWFpbic6Citjb25mdGVzdC5jOjc1OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpYTY0X2ZwcmVnJyAKK2NvbmZpZ3VyZTo3ODk4OiAkPyA9IDEKK2NvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgorfCAvKiBjb25mZGVmcy5oLiAgKi8KK3wgCit8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJzdHJhY2UiCit8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICI0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCit8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiIKK3wgI2RlZmluZSBQQUNLQUdFICJzdHJhY2UiCit8ICNkZWZpbmUgVkVSU0lPTiAiNC41LjEyIgorfCAjZGVmaW5lIExJTlVYIDEKK3wgI2RlZmluZSBBUk0gMQorfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKK3wgI2RlZmluZSBTVERDX0hFQURFUlMgMQorfCAjZGVmaW5lIEhBVkVfRElSRU5UX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCit8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQorfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCit8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCit8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCit8ICNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK3wgI2RlZmluZSBIQVZFX1NUQVQ2NCAxCit8ICNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCit8ICNkZWZpbmUgR0VUR1JPVVBTX1QgZ2lkX3QKK3wgI2RlZmluZSBIQVZFX1NJR19BVE9NSUNfVCAxCit8ICNkZWZpbmUgSEFWRV9TSUdJTkZPX1QgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEIDEKK3wgI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCit8ICNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorfCAjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorfCAjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKK3wgI2RlZmluZSBIQVZFX1BSRUFEIDEKK3wgI2RlZmluZSBIQVZFX1NZU19TSUdMSVNUIDEKK3wgI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCit8ICNkZWZpbmUgSEFWRV9QUkNUTCAxCit8ICNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKK3wgI2RlZmluZSBIQVZFX0lORVRfTlRPUCAxCit8ICNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCit8ICNkZWZpbmUgSEFWRV9TWVNfUkVHX0ggMQorfCAjZGVmaW5lIEhBVkVfU1RST1BUU19IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfVUlPX0ggMQorfCAjZGVmaW5lIEhBVkVfUE9MTF9IIDEKK3wgI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQorfCAjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX1VUU05BTUVfSCAxCit8ICNkZWZpbmUgSEFWRV9NUVVFVUVfSCAxCit8ICNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCit8ICNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfSU42X0ggMQorfCAjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKK3wgI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKK3wgI2RlZmluZSBIQVZFX0FTTV9TSUdDT05URVhUX0ggMQorfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9UQ1BfSCAxCit8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX1VEUF9IIDEKK3wgI2RlZmluZSBIQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wgMQorfCAjZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKK3wgLyogZW5kIGNvbmZkZWZzLmguICAqLworfCAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorfCAKK3wgaW50Cit8IG1haW4gKCkKK3wgeworfCBpZiAoKHN0cnVjdCBpYTY0X2ZwcmVnICopIDApCit8ICAgcmV0dXJuIDA7Cit8IGlmIChzaXplb2YgKHN0cnVjdCBpYTY0X2ZwcmVnKSkKK3wgICByZXR1cm4gMDsKK3wgICA7Cit8ICAgcmV0dXJuIDA7Cit8IH0KK2NvbmZpZ3VyZTo3OTIyOiByZXN1bHQ6IG5vCitjb25maWd1cmU6NzkzNDogY2hlY2tpbmcgZm9yIHN0cnVjdCB1c2VyX2Rlc2MKK2NvbmZpZ3VyZTo3OTU5OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo3OTY1OiAkPyA9IDAKK2NvbmZpZ3VyZTo3OTY5OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo3OTcyOiAkPyA9IDAKK2NvbmZpZ3VyZTo3OTc1OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo3OTc4OiAkPyA9IDAKK2NvbmZpZ3VyZTo3OTg5OiByZXN1bHQ6IHllcworY29uZmlndXJlOjgwMDE6IGNoZWNraW5nIHdoZXRoZXIgc3lzX2Vycmxpc3QgaXMgZGVjbGFyZWQKK2NvbmZpZ3VyZTo4MDI1OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo4MDMxOiAkPyA9IDAKK2NvbmZpZ3VyZTo4MDM1OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo4MDM4OiAkPyA9IDAKK2NvbmZpZ3VyZTo4MDQxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo4MDQ0OiAkPyA9IDAKK2NvbmZpZ3VyZTo4MDU1OiByZXN1bHQ6IHllcworY29uZmlndXJlOjgwNzM6IGNoZWNraW5nIHdoZXRoZXIgc3lzX3NpZ2xpc3QgaXMgZGVjbGFyZWQKK2NvbmZpZ3VyZTo4MDk4OiBnY2MgLWMgLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyAgY29uZnRlc3QuYyA+JjUKK2NvbmZpZ3VyZTo4MTA0OiAkPyA9IDAKK2NvbmZpZ3VyZTo4MTA4OiB0ZXN0IC16IAorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKK2NvbmZpZ3VyZTo4MTExOiAkPyA9IDAKK2NvbmZpZ3VyZTo4MTE0OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KK2NvbmZpZ3VyZTo4MTE3OiAkPyA9IDAKK2NvbmZpZ3VyZTo4MTI4OiByZXN1bHQ6IHllcworY29uZmlndXJlOjgxNDQ6IGNoZWNraW5nIHdoZXRoZXIgX3N5c19zaWdsaXN0IGlzIGRlY2xhcmVkCitjb25maWd1cmU6ODE2OTogZ2NjIC1jIC1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8gIGNvbmZ0ZXN0LmMgPiY1Citjb25maWd1cmU6ODE3NTogJD8gPSAwCitjb25maWd1cmU6ODE3OTogdGVzdCAteiAKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCitjb25maWd1cmU6ODE4MjogJD8gPSAwCitjb25maWd1cmU6ODE4NTogdGVzdCAtcyBjb25mdGVzdC5vCitjb25maWd1cmU6ODE4ODogJD8gPSAwCitjb25maWd1cmU6ODE5OTogcmVzdWx0OiB5ZXMKK2NvbmZpZ3VyZTo4MjIwOiBjaGVja2luZyBmb3IgcGVybAorY29uZmlndXJlOjgyMzg6IGZvdW5kIC91c3IvYmluL3BlcmwKK2NvbmZpZ3VyZTo4MjUwOiByZXN1bHQ6IC91c3IvYmluL3BlcmwKK2NvbmZpZ3VyZTo4NDE4OiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKKworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgUnVubmluZyBjb25maWcuc3RhdHVzLiAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IHN0cmFjZSBjb25maWcuc3RhdHVzIDQuNS4xMiwgd2hpY2ggd2FzCitnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKKworICBDT05GSUdfRklMRVMgICAgPSAKKyAgQ09ORklHX0hFQURFUlMgID0gCisgIENPTkZJR19MSU5LUyAgICA9IAorICBDT05GSUdfQ09NTUFORFMgPSAKKyAgJCAuL2NvbmZpZy5zdGF0dXMgCisKK29uIHNreXdyaXRpbmcuY29ycC5nb29nbGUuY29tCisKK2NvbmZpZy5zdGF0dXM6NzE2OiBjcmVhdGluZyBNYWtlZmlsZQorY29uZmlnLnN0YXR1czo4MjA6IGNyZWF0aW5nIGNvbmZpZy5oCitjb25maWcuc3RhdHVzOjEyMjY6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcworCisjIyAtLS0tLS0tLS0tLS0tLS0tICMjCisjIyBDYWNoZSB2YXJpYWJsZXMuICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tICMjCisKK2FjX2N2X2J1aWxkPWFybS11bmtub3duLWxpbnV4LWdudQorYWNfY3ZfYnVpbGRfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251CithY19jdl9jX2NvbXBpbGVyX2dudT15ZXMKK2FjX2N2X2NfY29uc3Q9eWVzCithY19jdl9lbnZfQ0Nfc2V0PQorYWNfY3ZfZW52X0NDX3ZhbHVlPQorYWNfY3ZfZW52X0NGTEFHU19zZXQ9c2V0CithY19jdl9lbnZfQ0ZMQUdTX3ZhbHVlPS1JL2FuZHJvaWQvZGV2aWNlL3N5c3RlbS9rZXJuZWxfaGVhZGVycy8KK2FjX2N2X2Vudl9DUFBGTEFHU19zZXQ9CithY19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9CithY19jdl9lbnZfQ1BQX3NldD0KK2FjX2N2X2Vudl9DUFBfdmFsdWU9CithY19jdl9lbnZfTERGTEFHU19zZXQ9CithY19jdl9lbnZfTERGTEFHU192YWx1ZT0KK2FjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9c2V0CithY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9YXJtLXVua25vd24tbGludXgtZ251CithY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9CithY19jdl9lbnZfaG9zdF9hbGlhc192YWx1ZT0KK2FjX2N2X2Vudl90YXJnZXRfYWxpYXNfc2V0PQorYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0KK2FjX2N2X2V4ZWV4dD0KK2FjX2N2X2Z1bmNfX3N5c19zaWdsaXN0PXllcworYWNfY3ZfZnVuY19nZXRkZW50cz1ubworYWNfY3ZfZnVuY19pZl9pbmRleHRvbmFtZT15ZXMKK2FjX2N2X2Z1bmNfaW5ldF9udG9wPXllcworYWNfY3ZfZnVuY19tY3RsPW5vCithY19jdl9mdW5jX3ByY3RsPXllcworYWNfY3ZfZnVuY19wcmVhZD15ZXMKK2FjX2N2X2Z1bmNfc2VuZG1zZz15ZXMKK2FjX2N2X2Z1bmNfc2lnYWN0aW9uPXllcworYWNfY3ZfZnVuY19zdHJlcnJvcj15ZXMKK2FjX2N2X2Z1bmNfc3Ryc2lnbmFsPXllcworYWNfY3ZfZnVuY19zeXNfc2lnbGlzdD15ZXMKK2FjX2N2X2hhdmVfZGVjbF9fc3lzX3NpZ2xpc3Q9eWVzCithY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxpc3Q9eWVzCithY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3Q9eWVzCithY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nPXllcworYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3Q9bm8KK2FjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdD1ubworYWNfY3ZfaGVhZGVyX2FzbV9yZWdfaD1ubworYWNfY3ZfaGVhZGVyX2FzbV9zaWdjb250ZXh0X2g9eWVzCithY19jdl9oZWFkZXJfYXNtX3N5c21pcHNfaD1ubworYWNfY3ZfaGVhZGVyX2RpcmVudF9kaXJlbnRfaD15ZXMKK2FjX2N2X2hlYWRlcl9pbnR0eXBlc19oPXllcworYWNfY3ZfaGVhZGVyX2lvY3Rsc19oPW5vCithY19jdl9oZWFkZXJfbGliYWlvX2g9bm8KK2FjX2N2X2hlYWRlcl9saW51eF9pY21wX2g9eWVzCithY19jdl9oZWFkZXJfbGludXhfaWZfcGFja2V0X2g9eWVzCithY19jdl9oZWFkZXJfbGludXhfaW42X2g9eWVzCithY19jdl9oZWFkZXJfbGludXhfbmV0bGlua19oPXllcworYWNfY3ZfaGVhZGVyX2xpbnV4X3B0cmFjZV9oPXllcworYWNfY3ZfaGVhZGVyX2xpbnV4X3V0c25hbWVfaD15ZXMKK2FjX2N2X2hlYWRlcl9tZW1vcnlfaD15ZXMKK2FjX2N2X2hlYWRlcl9tcXVldWVfaD15ZXMKK2FjX2N2X2hlYWRlcl9uZXRpbmV0X3RjcF9oPXllcworYWNfY3ZfaGVhZGVyX25ldGluZXRfdWRwX2g9eWVzCithY19jdl9oZWFkZXJfcG9sbF9oPXllcworYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuPW5vCithY19jdl9oZWFkZXJfc3RkYz15ZXMKK2FjX2N2X2hlYWRlcl9zdGRpbnRfaD15ZXMKK2FjX2N2X2hlYWRlcl9zdGRsaWJfaD15ZXMKK2FjX2N2X2hlYWRlcl9zdHJpbmdfaD15ZXMKK2FjX2N2X2hlYWRlcl9zdHJpbmdzX2g9eWVzCithY19jdl9oZWFkZXJfc3Ryb3B0c19oPXllcworYWNfY3ZfaGVhZGVyX3N5c19hY2xfaD1ubworYWNfY3ZfaGVhZGVyX3N5c19haW9faD1ubworYWNfY3ZfaGVhZGVyX3N5c19hc3luY2hfaD1ubworYWNfY3ZfaGVhZGVyX3N5c19jb25mX2g9bm8KK2FjX2N2X2hlYWRlcl9zeXNfZG9vcl9oPW5vCithY19jdl9oZWFkZXJfc3lzX2Vwb2xsX2g9eWVzCithY19jdl9oZWFkZXJfc3lzX2ZpbGlvX2g9bm8KK2FjX2N2X2hlYWRlcl9zeXNfaW9jdGxfaD15ZXMKK2FjX2N2X2hlYWRlcl9zeXNfbnNjc3lzX2g9bm8KK2FjX2N2X2hlYWRlcl9zeXNfcG9sbF9oPXllcworYWNfY3ZfaGVhZGVyX3N5c19wdHJhY2VfaD15ZXMKK2FjX2N2X2hlYWRlcl9zeXNfcmVnX2g9eWVzCithY19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMKK2FjX2N2X2hlYWRlcl9zeXNfc3RyZWFtX2g9bm8KK2FjX2N2X2hlYWRlcl9zeXNfc3lzY29uZmlnX2g9bm8KK2FjX2N2X2hlYWRlcl9zeXNfdGloZHJfaD1ubworYWNfY3ZfaGVhZGVyX3N5c190aXVzZXJfaD1ubworYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oPXllcworYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXY9eWVzCithY19jdl9oZWFkZXJfc3lzX3Vpb19oPXllcworYWNfY3ZfaGVhZGVyX3N5c192ZnNfaD15ZXMKK2FjX2N2X2hlYWRlcl90ZXJtaW9faD15ZXMKK2FjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKK2FjX2N2X2hvc3Q9YXJtLXVua25vd24tbGludXgtZ251CithY19jdl9ob3N0X2FsaWFzPWFybS11bmtub3duLWxpbnV4LWdudQorYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkPW5vCithY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyPW5vCithY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbD15ZXMKK2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc29ja2FkZHJfaW42X3NpbjZfc2NvcGVfaWQ9eWVzCithY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYWNsY250PW5vCithY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZT15ZXMKK2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibG9ja3M9eWVzCithY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3M9bm8KK2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mc3R5cGU9bm8KK2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9nZW49bm8KK2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbD1ubworYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXY9eWVzCithY19jdl9tcF9wcm9jZnM9bm8KK2FjX2N2X29iamV4dD1vCithY19jdl9wYXRoX1BFUkw9L3Vzci9iaW4vcGVybAorYWNfY3ZfcGF0aF9pbnN0YWxsPScvdXNyL2Jpbi9pbnN0YWxsIC1jJworYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPW5vCithY19jdl9wcm9nX0FXSz1nYXdrCithY19jdl9wcm9nX0NQUD0nZ2NjIC1FJworYWNfY3ZfcHJvZ19hY19jdF9DQz1nY2MKK2FjX2N2X3Byb2dfY2NfZz15ZXMKK2FjX2N2X3Byb2dfY2Nfc3RkYz0KK2FjX2N2X3Byb2dfZWdyZXA9J2dyZXAgLUUnCithY19jdl9wcm9nX2djY190cmFkaXRpb25hbD1ubworYWNfY3ZfcHJvZ19tYWtlX21ha2Vfc2V0PXllcworYWNfY3Zfc2VhcmNoX29wZW5kaXI9J25vbmUgcmVxdWlyZWQnCithY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD1ubworYWNfY3ZfdHlwZV9nZXRncm91cHM9Z2lkX3QKK2FjX2N2X3R5cGVfbG9uZ19sb25nPXllcworYWNfY3ZfdHlwZV9tb2RlX3Q9eWVzCithY19jdl90eXBlX3NpZ19hdG9taWNfdD15ZXMKK2FjX2N2X3R5cGVfc2lnaW5mb190PXllcworYWNfY3ZfdHlwZV9zaWduYWw9dm9pZAorYWNfY3ZfdHlwZV9zdGF0NjQ9eWVzCithY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdD15ZXMKK2FjX2N2X3R5cGVfc3RydWN0X2lhNjRfZnByZWc9bm8KK2FjX2N2X3R5cGVfc3RydWN0X29wdGhkcj1ubworYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncz1ubworYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHI9bm8KK2FjX2N2X3R5cGVfc3RydWN0X3VzZXJfZGVzYz15ZXMKK2FjX2N2X3R5cGVfdWlkX3Q9eWVzCithbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1nY2MzCisKKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBPdXRwdXQgdmFyaWFibGVzLiAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKworQUNMT0NBTD0nJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gYWNsb2NhbC0xLjknCitBTURFUEJBQ0tTTEFTSD0nXCcKK0FNREVQX0ZBTFNFPScjJworQU1ERVBfVFJVRT0nJworQU1UQVI9JyR7U0hFTEx9IC9hbmRyb2lkL3NhbmRib3gvbWtmL2Z1bnBhY2svc3RyYWNlLTQuNS4xMi9taXNzaW5nIC0tcnVuIHRhcicKK0FVVE9DT05GPScke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhdXRvY29uZicKK0FVVE9IRUFERVI9JyR7U0hFTEx9IC9hbmRyb2lkL3NhbmRib3gvbWtmL2Z1bnBhY2svc3RyYWNlLTQuNS4xMi9taXNzaW5nIC0tcnVuIGF1dG9oZWFkZXInCitBVVRPTUFLRT0nJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gYXV0b21ha2UtMS45JworQVdLPSdnYXdrJworQ0M9J2djYycKK0NDREVQTU9ERT0nZGVwbW9kZT1nY2MzJworQ0ZMQUdTPSctSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvJworQ1BQPSdnY2MgLUUnCitDUFBGTEFHUz0nJworQ1lHUEFUSF9XPSdlY2hvJworREVGUz0nLURIQVZFX0NPTkZJR19IJworREVQRElSPScuZGVwcycKK0VDSE9fQz0nJworRUNIT19OPSctbicKK0VDSE9fVD0nJworRUdSRVA9J2dyZXAgLUUnCitFWEVFWFQ9JycKK0ZSRUVCU0RfRkFMU0U9JycKK0ZSRUVCU0RfVFJVRT0nIycKK0kzODZfRkFMU0U9JycKK0kzODZfVFJVRT0nIycKK0lOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCitJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCitJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKK0lOU1RBTExfU1RSSVBfUFJPR1JBTT0nJHtTSEVMTH0gJChpbnN0YWxsX3NoKSAtYyAtcycKK0xERkxBR1M9JycKK0xJQk9CSlM9JycKK0xJQlM9JycKK0xJTlVYX0ZBTFNFPScjJworTElOVVhfVFJVRT0nJworTFRMSUJPQkpTPScnCitNQUlOVD0nIycKK01BSU5UQUlORVJfTU9ERV9GQUxTRT0nJworTUFJTlRBSU5FUl9NT0RFX1RSVUU9JyMnCitNQUtFSU5GTz0nJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gbWFrZWluZm8nCitPQkpFWFQ9J28nCitQQUNLQUdFPSdzdHJhY2UnCitQQUNLQUdFX0JVR1JFUE9SVD0nJworUEFDS0FHRV9OQU1FPSdzdHJhY2UnCitQQUNLQUdFX1NUUklORz0nc3RyYWNlIDQuNS4xMicKK1BBQ0tBR0VfVEFSTkFNRT0nc3RyYWNlJworUEFDS0FHRV9WRVJTSU9OPSc0LjUuMTInCitQQVRIX1NFUEFSQVRPUj0nOicKK1BFUkw9Jy91c3IvYmluL3BlcmwnCitTRVRfTUFLRT0nJworU0hFTEw9Jy9iaW4vc2gnCitTVFJJUD0nJworU1VOT1M0X0ZBTFNFPScnCitTVU5PUzRfVFJVRT0nIycKK1NWUjRfRkFMU0U9JycKK1NWUjRfVFJVRT0nIycKK1ZFUlNJT049JzQuNS4xMicKK1dBUk5GTEFHUz0nLVdhbGwnCitYODZfNjRfRkFMU0U9JycKK1g4Nl82NF9UUlVFPScjJworYWNfY3RfQ0M9J2djYycKK2FjX2N0X1NUUklQPScnCithbV9fZmFzdGRlcENDX0ZBTFNFPScjJworYW1fX2Zhc3RkZXBDQ19UUlVFPScnCithbV9faW5jbHVkZT0naW5jbHVkZScKK2FtX19sZWFkaW5nX2RvdD0nLicKK2FtX19xdW90ZT0nJworYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInCithbV9fdW50YXI9JyR7QU1UQVJ9IHhmIC0nCithcmNoPSdhcm0nCitiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKK2J1aWxkPSdhcm0tdW5rbm93bi1saW51eC1nbnUnCitidWlsZF9hbGlhcz0nYXJtLXVua25vd24tbGludXgtZ251JworYnVpbGRfY3B1PSdhcm0nCitidWlsZF9vcz0nbGludXgtZ251JworYnVpbGRfdmVuZG9yPSd1bmtub3duJworZGF0YWRpcj0nJHtwcmVmaXh9L3NoYXJlJworZXhlY19wcmVmaXg9JyR7cHJlZml4fScKK2hvc3Q9J2FybS11bmtub3duLWxpbnV4LWdudScKK2hvc3RfYWxpYXM9JycKK2hvc3RfY3B1PSdhcm0nCitob3N0X29zPSdsaW51eC1nbnUnCitob3N0X3ZlbmRvcj0ndW5rbm93bicKK2luY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKK2luZm9kaXI9JyR7cHJlZml4fS9pbmZvJworaW5zdGFsbF9zaD0nL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL2luc3RhbGwtc2gnCitsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKK2xpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCitsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJworbWFuZGlyPScke3ByZWZpeH0vbWFuJworbWtkaXJfcD0nbWtkaXIgLXAgLS0nCitvbGRpbmNsdWRlZGlyPScvdXNyL2luY2x1ZGUnCitvcHN5cz0nbGludXgnCitwcmVmaXg9Jy9kYXRhLycKK3Byb2dyYW1fdHJhbnNmb3JtX25hbWU9J3MseCx4LCcKK3NiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L3NiaW4nCitzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKK3N5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCit0YXJnZXRfYWxpYXM9JycKKworIyMgLS0tLS0tLS0tLS0gIyMKKyMjIGNvbmZkZWZzLmguICMjCisjIyAtLS0tLS0tLS0tLSAjIworCisjZGVmaW5lIEFSTSAxCisjZGVmaW5lIEdFVEdST1VQU19UIGdpZF90CisjZGVmaW5lIEhBVkVfQVNNX1NJR0NPTlRFWFRfSCAxCisjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAxCisjZGVmaW5lIEhBVkVfREVDTF9TWVNfU0lHTElTVCAxCisjZGVmaW5lIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QgMQorI2RlZmluZSBIQVZFX0RJUkVOVF9IIDEKKyNkZWZpbmUgSEFWRV9JRl9JTkRFWFRPTkFNRSAxCisjZGVmaW5lIEhBVkVfSU5FVF9OVE9QIDEKKyNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKKyNkZWZpbmUgSEFWRV9MSU5VWF9JQ01QX0ggMQorI2RlZmluZSBIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IIDEKKyNkZWZpbmUgSEFWRV9MSU5VWF9JTjZfSCAxCisjZGVmaW5lIEhBVkVfTElOVVhfTkVUTElOS19IIDEKKyNkZWZpbmUgSEFWRV9MSU5VWF9QVFJBQ0VfSCAxCisjZGVmaW5lIEhBVkVfTElOVVhfVVRTTkFNRV9IIDEKKyNkZWZpbmUgSEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyAxCisjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKKyNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCisjZGVmaW5lIEhBVkVfTVFVRVVFX0ggMQorI2RlZmluZSBIQVZFX05FVElORVRfVENQX0ggMQorI2RlZmluZSBIQVZFX05FVElORVRfVURQX0ggMQorI2RlZmluZSBIQVZFX1BPTExfSCAxCisjZGVmaW5lIEhBVkVfUFJDVEwgMQorI2RlZmluZSBIQVZFX1BSRUFEIDEKKyNkZWZpbmUgSEFWRV9TRU5ETVNHIDEKKyNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQorI2RlZmluZSBIQVZFX1NJR0lORk9fVCAxCisjZGVmaW5lIEhBVkVfU0lHX0FUT01JQ19UIDEKKyNkZWZpbmUgSEFWRV9TVEFUNjQgMQorI2RlZmluZSBIQVZFX1NURElOVF9IIDEKKyNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCisjZGVmaW5lIEhBVkVfU1RSRVJST1IgMQorI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCisjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQorI2RlZmluZSBIQVZFX1NUUk9QVFNfSCAxCisjZGVmaW5lIEhBVkVfU1RSU0lHTkFMIDEKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgMQorI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyAxCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAxCisjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCisjZGVmaW5lIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUIDEKKyNkZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxCisjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQorI2RlZmluZSBIQVZFX1NZU19QT0xMX0ggMQorI2RlZmluZSBIQVZFX1NZU19QVFJBQ0VfSCAxCisjZGVmaW5lIEhBVkVfU1lTX1JFR19IIDEKKyNkZWZpbmUgSEFWRV9TWVNfU0lHTElTVCAxCisjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCisjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQorI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCisjZGVmaW5lIEhBVkVfU1lTX1ZGU19IIDEKKyNkZWZpbmUgSEFWRV9URVJNSU9fSCAxCisjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorI2RlZmluZSBIQVZFX19TWVNfU0lHTElTVCAxCisjZGVmaW5lIExJTlVYIDEKKyNkZWZpbmUgUEFDS0FHRSAic3RyYWNlIgorI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiIgorI2RlZmluZSBQQUNLQUdFX05BTUUgInN0cmFjZSIKKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInN0cmFjZSA0LjUuMTIiCisjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAic3RyYWNlIgorI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjQuNS4xMiIKKyNkZWZpbmUgUkVUU0lHVFlQRSB2b2lkCisjZGVmaW5lIFNURENfSEVBREVSUyAxCisjZGVmaW5lIFZFUlNJT04gIjQuNS4xMiIKKyNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorCitjb25maWd1cmU6IGV4aXQgMApkaWZmIC0tZ2l0IGEvY29uZmlnLnN0YXR1cyBiL2NvbmZpZy5zdGF0dXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjQ1N2U3YwotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy5zdGF0dXMKQEAgLTAsMCArMSwxMzE3IEBACisjISAvYmluL3NoCisjIEdlbmVyYXRlZCBieSBjb25maWd1cmUuCisjIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4KKyMgQ29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKKyMgY29uZmlndXJlLCBpcyBpbiBjb25maWcubG9nIGlmIGl0IGV4aXN0cy4KKworZGVidWc9ZmFsc2UKK2FjX2NzX3JlY2hlY2s9ZmFsc2UKK2FjX2NzX3NpbGVudD1mYWxzZQorU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgTTRzaCBJbml0aWFsaXphdGlvbi4gICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKworIyBCZSBCb3VybmUgY29tcGF0aWJsZQoraWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGVtdWxhdGUgc2gKKyAgTlVMTENNRD06CisgICMgWnNoIDMueCBhbmQgNC54IHBlcmZvcm1zIHdvcmQgc3BsaXR0aW5nIG9uICR7MSsiJEAifSwgd2hpY2gKKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KKyAgYWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCitlbGlmIHRlc3QgLW4gIiR7QkFTSF9WRVJTSU9OK3NldH0iICYmIChzZXQgLW8gcG9zaXgpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBzZXQgLW8gcG9zaXgKK2ZpCitEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCisKKyMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgoraWYgKCAoTUFJTD02MDsgdW5zZXQgTUFJTCkgfHwgZXhpdCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGFzX3Vuc2V0PXVuc2V0CitlbHNlCisgIGFzX3Vuc2V0PWZhbHNlCitmaQorCisKKyMgV29yayBhcm91bmQgYnVncyBpbiBwcmUtMy4wIFVXSU4ga3NoLgorJGFzX3Vuc2V0IEVOViBNQUlMIE1BSUxQQVRICitQUzE9JyQgJworUFMyPSc+ICcKK1BTND0nKyAnCisKKyMgTkxTIG51aXNhbmNlcy4KK2ZvciBhc192YXIgaW4gXAorICBMQU5HIExBTkdVQUdFIExDX0FERFJFU1MgTENfQUxMIExDX0NPTExBVEUgTENfQ1RZUEUgTENfSURFTlRJRklDQVRJT04gXAorICBMQ19NRUFTVVJFTUVOVCBMQ19NRVNTQUdFUyBMQ19NT05FVEFSWSBMQ19OQU1FIExDX05VTUVSSUMgTENfUEFQRVIgXAorICBMQ19URUxFUEhPTkUgTENfVElNRQorZG8KKyAgaWYgKHNldCAreDsgdGVzdCAteiAiYChldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIpIDI+JjFgIik7IHRoZW4KKyAgICBldmFsICRhc192YXI9QzsgZXhwb3J0ICRhc192YXIKKyAgZWxzZQorICAgICRhc191bnNldCAkYXNfdmFyCisgIGZpCitkb25lCisKKyMgUmVxdWlyZWQgdG8gdXNlIGJhc2VuYW1lLgoraWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYXNfZXhwcj1leHByCitlbHNlCisgIGFzX2V4cHI9ZmFsc2UKK2ZpCisKK2lmIChiYXNlbmFtZSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNlbmFtZSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KKyAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKK2Vsc2UKKyAgYXNfYmFzZW5hbWU9ZmFsc2UKK2ZpCisKKworIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgorYXNfbWU9YCRhc19iYXNlbmFtZSAiJDAiIHx8CiskYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAorCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiQwIiA6ICdYXCgvXCkkJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYLyIkMCIgfAorICAgIHNlZCAnL14uKlwvXChbXi9dW14vXSpcKVwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXC9cKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXC9cKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKworCisjIFBBVEggbmVlZHMgQ1IsIGFuZCBMSU5FTk8gbmVlZHMgQ1IgYW5kIFBBVEguCisjIEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCithc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKK2FzX2NyX0xFVFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJworYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCithc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCithc19jcl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKKworIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCitpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgorICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCisgIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKKyAgY2htb2QgK3ggY29uZiQkLnNoCisgIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgUEFUSF9TRVBBUkFUT1I9JzsnCisgIGVsc2UKKyAgICBQQVRIX1NFUEFSQVRPUj06CisgIGZpCisgIHJtIC1mIGNvbmYkJC5zaAorZmkKKworCisgIGFzX2xpbmVub18xPSRMSU5FTk8KKyAgYXNfbGluZW5vXzI9JExJTkVOTworICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCisgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgorICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgIHx8IHsKKyAgIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gcGF0aCBhdCBhbGwKKyAgIyByZWxhdGl2ZSBvciBub3QuCisgIGNhc2UgJDAgaW4KKyAgICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7CisgICAgKikgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICB0ZXN0IC1yICIkYXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhaworZG9uZQorCisgICAgICAgOzsKKyAgZXNhYworICAjIFdlIGRpZCBub3QgZmluZCBvdXJzZWx2ZXMsIG1vc3QgcHJvYmFibHkgd2Ugd2VyZSBydW4gYXMgYHNoIENPTU1BTkQnCisgICMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgorICBpZiB0ZXN0ICJ4JGFzX215c2VsZiIgPSB4OyB0aGVuCisgICAgYXNfbXlzZWxmPSQwCisgIGZpCisgIGlmIHRlc3QgISAtZiAiJGFzX215c2VsZiI7IHRoZW4KKyAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICBmaQorICBjYXNlICRDT05GSUdfU0hFTEwgaW4KKyAgJycpCisgICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9SL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYXNfYmFzZSBpbiBzaCBiYXNoIGtzaCBzaDU7IGRvCisJIGNhc2UgJGFzX2RpciBpbgorCSAvKikKKwkgICBpZiAoIiRhc19kaXIvJGFzX2Jhc2UiIC1jICcKKyAgYXNfbGluZW5vXzE9JExJTkVOTworICBhc19saW5lbm9fMj0kTElORU5PCisgIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCisgIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAnKSAyPi9kZXYvbnVsbDsgdGhlbgorCSAgICAgJGFzX3Vuc2V0IEJBU0hfRU5WIHx8IHRlc3QgIiR7QkFTSF9FTlYrc2V0fSIgIT0gc2V0IHx8IHsgQkFTSF9FTlY9OyBleHBvcnQgQkFTSF9FTlY7IH0KKwkgICAgICRhc191bnNldCBFTlYgfHwgdGVzdCAiJHtFTlYrc2V0fSIgIT0gc2V0IHx8IHsgRU5WPTsgZXhwb3J0IEVOVjsgfQorCSAgICAgQ09ORklHX1NIRUxMPSRhc19kaXIvJGFzX2Jhc2UKKwkgICAgIGV4cG9ydCBDT05GSUdfU0hFTEwKKwkgICAgIGV4ZWMgIiRDT05GSUdfU0hFTEwiICIkMCIgJHsxKyIkQCJ9CisJICAgZmk7OworCSBlc2FjCisgICAgICAgZG9uZQorZG9uZQorOzsKKyAgZXNhYworCisgICMgQ3JlYXRlICRhc19tZS5saW5lbm8gYXMgYSBjb3B5IG9mICRhc19teXNlbGYsIGJ1dCB3aXRoICRMSU5FTk8KKyAgIyB1bmlmb3JtbHkgcmVwbGFjZWQgYnkgdGhlIGxpbmUgbnVtYmVyLiAgVGhlIGZpcnN0ICdzZWQnIGluc2VydHMgYQorICAjIGxpbmUtbnVtYmVyIGxpbmUgYmVmb3JlIGVhY2ggbGluZTsgdGhlIHNlY29uZCAnc2VkJyBkb2VzIHRoZSByZWFsCisgICMgd29yay4gIFRoZSBzZWNvbmQgc2NyaXB0IHVzZXMgJ04nIHRvIHBhaXIgZWFjaCBsaW5lLW51bWJlciBsaW5lCisgICMgd2l0aCB0aGUgbnVtYmVyZWQgbGluZSwgYW5kIGFwcGVuZHMgdHJhaWxpbmcgJy0nIGR1cmluZworICAjIHN1YnN0aXR1dGlvbiBzbyB0aGF0ICRMSU5FTk8gaXMgbm90IGEgc3BlY2lhbCBjYXNlIGF0IGxpbmUgZW5kLgorICAjIChSYWphIFIgSGFyaW5hdGggc3VnZ2VzdGVkIHNlZCAnPScsIGFuZCBQYXVsIEVnZ2VydCB3cm90ZSB0aGUKKyAgIyBzZWNvbmQgJ3NlZCcgc2NyaXB0LiAgQmxhbWUgTGVlIEUuIE1jTWFob24gZm9yIHNlZCdzIHN5bnRheC4gIDotKQorICBzZWQgJz0nIDwkYXNfbXlzZWxmIHwKKyAgICBzZWQgJworICAgICAgTgorICAgICAgcywkLC0sCisgICAgICA6IGxvb3AKKyAgICAgIHMsXlwoWyckYXNfY3JfZGlnaXRzJ10qXClcKC4qXClbJF1MSU5FTk9cKFteJyRhc19jcl9hbG51bSdfXVwpLFwxXDJcMVwzLAorICAgICAgdCBsb29wCisgICAgICBzLC0kLCwKKyAgICAgIHMsXlsnJGFzX2NyX2RpZ2l0cyddKlxuLCwKKyAgICAnID4kYXNfbWUubGluZW5vICYmCisgIGNobW9kICt4ICRhc19tZS5saW5lbm8gfHwKKyAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCisgICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFsbCBzb3J0IG9mIHByb2JsZW1zCisgICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMgbm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQorICAjIG9yaWdpbmFsIGFuZCBzbyBvbi4gIEF1dG9jb25mIGlzIGVzcGVjaWFsbHkgc2Vuc2libGUgdG8gdGhpcykuCisgIC4gLi8kYXNfbWUubGluZW5vCisgICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBjb21tYW5kLgorICBleGl0Cit9CisKKworY2FzZSBgZWNobyAidGVzdGluZ1xjIjsgZWNobyAxLDIsM2AsYGVjaG8gLW4gdGVzdGluZzsgZWNobyAxLDIsM2AgaW4KKyAgKmMqLC1uKikgRUNIT19OPSBFQ0hPX0M9JworJyBFQ0hPX1Q9JwknIDs7CisgICpjKiwqICApIEVDSE9fTj0tbiBFQ0hPX0M9IEVDSE9fVD0gOzsKKyAgKikgICAgICAgRUNIT19OPSBFQ0hPX0M9J1xjJyBFQ0hPX1Q9IDs7Citlc2FjCisKK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGFzX2V4cHI9ZXhwcgorZWxzZQorICBhc19leHByPWZhbHNlCitmaQorCitybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQorZWNobyA+Y29uZiQkLmZpbGUKK2lmIGxuIC1zIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgorICAjIFdlIGNvdWxkIGp1c3QgY2hlY2sgZm9yIERKR1BQOyBidXQgdGhpcyB0ZXN0IGEpIHdvcmtzIGIpIGlzIG1vcmUgZ2VuZXJpYworICAjIGFuZCBjKSB3aWxsIHJlbWFpbiB2YWxpZCBvbmNlIERKR1BQIHN1cHBvcnRzIHN5bWxpbmtzIChESkdQUCAyLjA0KS4KKyAgaWYgdGVzdCAtZiBjb25mJCQuZXhlOyB0aGVuCisgICAgIyBEb24ndCB1c2UgbG4gYXQgYWxsOyB3ZSBkb24ndCBoYXZlIGFueSBsaW5rcworICAgIGFzX2xuX3M9J2NwIC1wJworICBlbHNlCisgICAgYXNfbG5fcz0nbG4gLXMnCisgIGZpCitlbGlmIGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgorICBhc19sbl9zPWxuCitlbHNlCisgIGFzX2xuX3M9J2NwIC1wJworZmkKK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCisKK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KKyAgYXNfbWtkaXJfcD06CitlbHNlCisgIHRlc3QgLWQgLi8tcCAmJiBybWRpciAuLy1wCisgIGFzX21rZGlyX3A9ZmFsc2UKK2ZpCisKK2FzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKKworIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgorYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKworIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCithc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorCisKKyMgSUZTCisjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgorYXNfbmw9JworJworSUZTPSIgCSRhc19ubCIKKworIyBDRFBBVEguCiskYXNfdW5zZXQgQ0RQQVRICisKK2V4ZWMgNj4mMQorCisjIE9wZW4gdGhlIGxvZyByZWFsIHNvb24sIHRvIGtlZXAgXCRbMF0gYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bworIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCisjIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLiAgTG9nZ2luZyAtLXZlcnNpb24gZXRjLiBpcyBPSy4KK2V4ZWMgNT4+Y29uZmlnLmxvZworeworICBlY2hvCisgIHNlZCAnaDtzLy4vLS9nO3MvXi4uLi8jIyAvO3MvLi4uJC8gIyMvO3A7eDtwO3gnIDw8X0FTQk9YCisjIyBSdW5uaW5nICRhc19tZS4gIyMKK19BU0JPWAorfSA+JjUKK2NhdCA+JjUgPDxfQ1NFT0YKKworVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBzdHJhY2UgJGFzX21lIDQuNS4xMiwgd2hpY2ggd2FzCitnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKKworICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCisgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUworICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCisgIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKKyAgJCAkMCAkQAorCitfQ1NFT0YKK2VjaG8gIm9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYCIgPiY1CitlY2hvID4mNQorY29uZmlnX2ZpbGVzPSIgTWFrZWZpbGUiCitjb25maWdfaGVhZGVycz0iIGNvbmZpZy5oIgorY29uZmlnX2NvbW1hbmRzPSIgZGVwZmlsZXMiCisKK2FjX2NzX3VzYWdlPSJcCitcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKK2N1cnJlbnQgY29uZmlndXJhdGlvbi4KKworVXNhZ2U6ICQwIFtPUFRJT05TXSBbRklMRV0uLi4KKworICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisgIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcworICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKKyAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucworICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCisJCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQorICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KKwkJICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKKworQ29uZmlndXJhdGlvbiBmaWxlczoKKyRjb25maWdfZmlsZXMKKworQ29uZmlndXJhdGlvbiBoZWFkZXJzOgorJGNvbmZpZ19oZWFkZXJzCisKK0NvbmZpZ3VyYXRpb24gY29tbWFuZHM6CiskY29uZmlnX2NvbW1hbmRzCisKK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgorYWNfY3NfdmVyc2lvbj0iXAorc3RyYWNlIGNvbmZpZy5zdGF0dXMgNC41LjEyCitjb25maWd1cmVkIGJ5IC4vY29uZmlndXJlLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCisgIHdpdGggb3B0aW9ucyBcIictLXByZWZpeD0vZGF0YS8nICctLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudScgJ0NGTEFHUz0tSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvJyAnYnVpbGRfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251J1wiCisKK0NvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK1RoaXMgY29uZmlnLnN0YXR1cyBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LiIKK3NyY2Rpcj0uCitJTlNUQUxMPSIvdXNyL2Jpbi9pbnN0YWxsIC1jIgorIyBJZiBubyBmaWxlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHRoZW4gd2UgbmVlZCB0byBwcm92aWRlIGRlZmF1bHQKKyMgdmFsdWUuICBCeSB3ZSBuZWVkIHRvIGtub3cgaWYgZmlsZXMgd2VyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuCithY19uZWVkX2RlZmF1bHRzPToKK3doaWxlIHRlc3QgJCMgIT0gMAorZG8KKyAgY2FzZSAkMSBpbgorICAtLSo9KikKKyAgICBhY19vcHRpb249YGV4cHIgIngkMSIgOiAneFwoW149XSpcKT0nYAorICAgIGFjX29wdGFyZz1gZXhwciAieCQxIiA6ICd4W149XSo9XCguKlwpJ2AKKyAgICBhY19zaGlmdD06CisgICAgOzsKKyAgLSopCisgICAgYWNfb3B0aW9uPSQxCisgICAgYWNfb3B0YXJnPSQyCisgICAgYWNfc2hpZnQ9c2hpZnQKKyAgICA7OworICAqKSAjIFRoaXMgaXMgbm90IGFuIG9wdGlvbiwgc28gdGhlIHVzZXIgaGFzIHByb2JhYmx5IGdpdmVuIGV4cGxpY2l0CisgICAgICMgYXJndW1lbnRzLgorICAgICBhY19vcHRpb249JDEKKyAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisgIGVzYWMKKworICBjYXNlICRhY19vcHRpb24gaW4KKyAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KKyAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCisgICAgYWNfY3NfcmVjaGVjaz06IDs7CisgIC0tdmVyc2lvbiB8IC0tdmVycyogfCAtViApCisgICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAgOzsKKyAgLS1oZSB8IC0taCkKKyAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgorICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCitUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQorVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworICAtLWhlbHAgfCAtLWhlbCB8IC1oICkKKyAgICBlY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDAgOzsKKyAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCisgICAgZGVidWc9OiA7OworICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQorICAgICRhY19zaGlmdAorICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgorICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OworICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCisgICAgJGFjX3NoaWZ0CisgICAgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyAkYWNfb3B0YXJnIgorICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OworICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCB8IC0tc2kgfCAtLXMpCisgICAgYWNfY3Nfc2lsZW50PTogOzsKKworICAjIFRoaXMgaXMgYW4gZXJyb3IuCisgIC0qKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQorVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9IDs7CisKKyAgKikgYWNfY29uZmlnX3RhcmdldHM9IiRhY19jb25maWdfdGFyZ2V0cyAkMSIgOzsKKworICBlc2FjCisgIHNoaWZ0Citkb25lCisKK2FjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQorCitpZiAkYWNfY3Nfc2lsZW50OyB0aGVuCisgIGV4ZWMgNj4vZGV2L251bGwKKyAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKK2ZpCisKK2lmICRhY19jc19yZWNoZWNrOyB0aGVuCisgIGVjaG8gInJ1bm5pbmcgL2Jpbi9zaCAuL2NvbmZpZ3VyZSAiICctLXByZWZpeD0vZGF0YS8nICctLWJ1aWxkPWFybS11bmtub3duLWxpbnV4LWdudScgJ0NGTEFHUz0tSS9hbmRyb2lkL2RldmljZS9zeXN0ZW0va2VybmVsX2hlYWRlcnMvJyAnYnVpbGRfYWxpYXM9YXJtLXVua25vd24tbGludXgtZ251JyAkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgIiAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIgPiY2CisgIGV4ZWMgL2Jpbi9zaCAuL2NvbmZpZ3VyZSAnLS1wcmVmaXg9L2RhdGEvJyAnLS1idWlsZD1hcm0tdW5rbm93bi1saW51eC1nbnUnICdDRkxBR1M9LUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLycgJ2J1aWxkX2FsaWFzPWFybS11bmtub3duLWxpbnV4LWdudScgJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCitmaQorCisjCisjIElOSVQtQ09NTUFORFMgc2VjdGlvbi4KKyMKKworQU1ERVBfVFJVRT0iIiBhY19hdXhfZGlyPSIuIgorCitmb3IgYWNfY29uZmlnX3RhcmdldCBpbiAkYWNfY29uZmlnX3RhcmdldHMKK2RvCisgIGNhc2UgIiRhY19jb25maWdfdGFyZ2V0IiBpbgorICAjIEhhbmRsaW5nIG9mIGFyZ3VtZW50cy4KKyAgIk1ha2VmaWxlIiApIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKKyAgImRlcGZpbGVzIiApIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZXBmaWxlcyIgOzsKKyAgImNvbmZpZy5oIiApIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgY29uZmlnLmgiIDs7CisgICopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKyAgZXNhYworZG9uZQorCisjIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3BlY2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCisjIHRoZW4gdGhlIGVudnZhciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KKyMgV2UgdXNlIHRoZSBsb25nIGZvcm0gZm9yIHRoZSBkZWZhdWx0IGFzc2lnbm1lbnQgYmVjYXVzZSBvZiBhbiBleHRyZW1lbHkKKyMgYml6YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCitpZiAkYWNfbmVlZF9kZWZhdWx0czsgdGhlbgorICB0ZXN0ICIke0NPTkZJR19GSUxFUytzZXR9IiA9IHNldCB8fCBDT05GSUdfRklMRVM9JGNvbmZpZ19maWxlcworICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0IHx8IENPTkZJR19IRUFERVJTPSRjb25maWdfaGVhZGVycworICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcworZmkKKworIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCisjIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBwdXQgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAorIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgorIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5LCBhbmQgaG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KKyRkZWJ1ZyB8fAoreworICB0cmFwICdleGl0X3N0YXR1cz0kPzsgcm0gLXJmICR0bXAgJiYgZXhpdCAkZXhpdF9zdGF0dXMnIDAKKyAgdHJhcCAneyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAxIDIgMTMgMTUKK30KKworIyBDcmVhdGUgYSAoc2VjdXJlKSB0bXAgZGlyZWN0b3J5IGZvciB0bXAgZmlsZXMuCisKK3sKKyAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAtcSAiLi9jb25mc3RhdFhYWFhYWCIpIDI+L2Rldi9udWxsYCAmJgorICB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIgorfSAgfHwKK3sKKyAgdG1wPS4vY29uZnN0YXQkJC0kUkFORE9NCisgICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkKK30gfHwKK3sKKyAgIGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH0KK30KKworCisjCisjIENPTkZJR19GSUxFUyBzZWN0aW9uLgorIworCisjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHNjcmlwdHMgaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aGVuIC4vY29uZmlnLnN0YXR1cyBjb25maWcuaAoraWYgdGVzdCAtbiAiJENPTkZJR19GSUxFUyI7IHRoZW4KKyAgIyBQcm90ZWN0IGFnYWluc3QgYmVpbmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBzZWQgc3Vic3QgaW4gY29uZmlnLnN0YXR1cy4KKyAgc2VkICdzLyxAL0BALzsgcy9ALC9AQC87IHMvLDt0IHQkL0A7dCB0LzsgL0A7dCB0JC9zL1tcXCYsXS9cXCYvZzsKKyAgIHMvQEAvLEAvOyBzL0BAL0AsLzsgcy9AO3QgdCQvLDt0IHQvJyA+JHRtcC9zdWJzLnNlZCA8PFxDRU9GCitzLEBTSEVMTEAsL2Jpbi9zaCw7dCB0CitzLEBQQVRIX1NFUEFSQVRPUkAsOiw7dCB0CitzLEBQQUNLQUdFX05BTUVALHN0cmFjZSw7dCB0CitzLEBQQUNLQUdFX1RBUk5BTUVALHN0cmFjZSw7dCB0CitzLEBQQUNLQUdFX1ZFUlNJT05ALDQuNS4xMiw7dCB0CitzLEBQQUNLQUdFX1NUUklOR0Asc3RyYWNlIDQuNS4xMiw7dCB0CitzLEBQQUNLQUdFX0JVR1JFUE9SVEAsLDt0IHQKK3MsQGV4ZWNfcHJlZml4QCwke3ByZWZpeH0sO3QgdAorcyxAcHJlZml4QCwvZGF0YS8sO3QgdAorcyxAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAscyx4LHgsLDt0IHQKK3MsQGJpbmRpckAsJHtleGVjX3ByZWZpeH0vYmluLDt0IHQKK3MsQHNiaW5kaXJALCR7ZXhlY19wcmVmaXh9L3NiaW4sO3QgdAorcyxAbGliZXhlY2RpckAsJHtleGVjX3ByZWZpeH0vbGliZXhlYyw7dCB0CitzLEBkYXRhZGlyQCwke3ByZWZpeH0vc2hhcmUsO3QgdAorcyxAc3lzY29uZmRpckAsJHtwcmVmaXh9L2V0Yyw7dCB0CitzLEBzaGFyZWRzdGF0ZWRpckAsJHtwcmVmaXh9L2NvbSw7dCB0CitzLEBsb2NhbHN0YXRlZGlyQCwke3ByZWZpeH0vdmFyLDt0IHQKK3MsQGxpYmRpckAsJHtleGVjX3ByZWZpeH0vbGliLDt0IHQKK3MsQGluY2x1ZGVkaXJALC91c3IvaW5jbHVkZSw7dCB0CitzLEBvbGRpbmNsdWRlZGlyQCwvdXNyL2luY2x1ZGUsO3QgdAorcyxAaW5mb2RpckAsJHtwcmVmaXh9L2luZm8sO3QgdAorcyxAbWFuZGlyQCwke3ByZWZpeH0vbWFuLDt0IHQKK3MsQGJ1aWxkX2FsaWFzQCxhcm0tdW5rbm93bi1saW51eC1nbnUsO3QgdAorcyxAaG9zdF9hbGlhc0AsLDt0IHQKK3MsQHRhcmdldF9hbGlhc0AsLDt0IHQKK3MsQERFRlNALC1ESEFWRV9DT05GSUdfSCw7dCB0CitzLEBFQ0hPX0NALCw7dCB0CitzLEBFQ0hPX05ALC1uLDt0IHQKK3MsQEVDSE9fVEAsLDt0IHQKK3MsQExJQlNALCw7dCB0CitzLEBJTlNUQUxMX1BST0dSQU1ALCR7SU5TVEFMTH0sO3QgdAorcyxASU5TVEFMTF9TQ1JJUFRALCR7SU5TVEFMTH0sO3QgdAorcyxASU5TVEFMTF9EQVRBQCwke0lOU1RBTEx9IC1tIDY0NCw7dCB0CitzLEBDWUdQQVRIX1dALGVjaG8sO3QgdAorcyxAUEFDS0FHRUAsc3RyYWNlLDt0IHQKK3MsQFZFUlNJT05ALDQuNS4xMiw7dCB0CitzLEBBQ0xPQ0FMQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOSw7dCB0CitzLEBBVVRPQ09ORkAsJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gYXV0b2NvbmYsO3QgdAorcyxAQVVUT01BS0VALCR7U0hFTEx9IC9hbmRyb2lkL3NhbmRib3gvbWtmL2Z1bnBhY2svc3RyYWNlLTQuNS4xMi9taXNzaW5nIC0tcnVuIGF1dG9tYWtlLTEuOSw7dCB0CitzLEBBVVRPSEVBREVSQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBhdXRvaGVhZGVyLDt0IHQKK3MsQE1BS0VJTkZPQCwke1NIRUxMfSAvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvbWlzc2luZyAtLXJ1biBtYWtlaW5mbyw7dCB0CitzLEBpbnN0YWxsX3NoQCwvYW5kcm9pZC9zYW5kYm94L21rZi9mdW5wYWNrL3N0cmFjZS00LjUuMTIvaW5zdGFsbC1zaCw7dCB0CitzLEBTVFJJUEAsLDt0IHQKK3MsQGFjX2N0X1NUUklQQCwsO3QgdAorcyxASU5TVEFMTF9TVFJJUF9QUk9HUkFNQCwke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zLDt0IHQKK3MsQG1rZGlyX3BALG1rZGlyIC1wIC0tLDt0IHQKK3MsQEFXS0AsZ2F3ayw7dCB0CitzLEBTRVRfTUFLRUAsLDt0IHQKK3MsQGFtX19sZWFkaW5nX2RvdEAsLiw7dCB0CitzLEBBTVRBUkAsJHtTSEVMTH0gL2FuZHJvaWQvc2FuZGJveC9ta2YvZnVucGFjay9zdHJhY2UtNC41LjEyL21pc3NpbmcgLS1ydW4gdGFyLDt0IHQKK3MsQGFtX190YXJALCR7QU1UQVJ9IGNob2YgLSAiJCR0YXJkaXIiLDt0IHQKK3MsQGFtX191bnRhckAsJHtBTVRBUn0geGYgLSw7dCB0CitzLEBNQUlOVEFJTkVSX01PREVfVFJVRUAsIyw7dCB0CitzLEBNQUlOVEFJTkVSX01PREVfRkFMU0VALCw7dCB0CitzLEBNQUlOVEAsIyw7dCB0CitzLEBidWlsZEAsYXJtLXVua25vd24tbGludXgtZ251LDt0IHQKK3MsQGJ1aWxkX2NwdUAsYXJtLDt0IHQKK3MsQGJ1aWxkX3ZlbmRvckAsdW5rbm93biw7dCB0CitzLEBidWlsZF9vc0AsbGludXgtZ251LDt0IHQKK3MsQGhvc3RALGFybS11bmtub3duLWxpbnV4LWdudSw7dCB0CitzLEBob3N0X2NwdUAsYXJtLDt0IHQKK3MsQGhvc3RfdmVuZG9yQCx1bmtub3duLDt0IHQKK3MsQGhvc3Rfb3NALGxpbnV4LWdudSw7dCB0CitzLEBvcHN5c0AsbGludXgsO3QgdAorcyxAYXJjaEAsYXJtLDt0IHQKK3MsQExJTlVYX1RSVUVALCw7dCB0CitzLEBMSU5VWF9GQUxTRUAsIyw7dCB0CitzLEBJMzg2X1RSVUVALCMsO3QgdAorcyxASTM4Nl9GQUxTRUAsLDt0IHQKK3MsQFg4Nl82NF9UUlVFQCwjLDt0IHQKK3MsQFg4Nl82NF9GQUxTRUAsLDt0IHQKK3MsQFNVTk9TNF9UUlVFQCwjLDt0IHQKK3MsQFNVTk9TNF9GQUxTRUAsLDt0IHQKK3MsQFNWUjRfVFJVRUAsIyw7dCB0CitzLEBTVlI0X0ZBTFNFQCwsO3QgdAorcyxARlJFRUJTRF9UUlVFQCwjLDt0IHQKK3MsQEZSRUVCU0RfRkFMU0VALCw7dCB0CitzLEBDQ0AsZ2NjLDt0IHQKK3MsQENGTEFHU0AsLUkvYW5kcm9pZC9kZXZpY2Uvc3lzdGVtL2tlcm5lbF9oZWFkZXJzLyw7dCB0CitzLEBMREZMQUdTQCwsO3QgdAorcyxAQ1BQRkxBR1NALCw7dCB0CitzLEBhY19jdF9DQ0AsZ2NjLDt0IHQKK3MsQEVYRUVYVEAsLDt0IHQKK3MsQE9CSkVYVEAsbyw7dCB0CitzLEBERVBESVJALC5kZXBzLDt0IHQKK3MsQGFtX19pbmNsdWRlQCxpbmNsdWRlLDt0IHQKK3MsQGFtX19xdW90ZUAsLDt0IHQKK3MsQEFNREVQX1RSVUVALCw7dCB0CitzLEBBTURFUF9GQUxTRUAsIyw7dCB0CitzLEBBTURFUEJBQ0tTTEFTSEAsXCw7dCB0CitzLEBDQ0RFUE1PREVALGRlcG1vZGU9Z2NjMyw7dCB0CitzLEBhbV9fZmFzdGRlcENDX1RSVUVALCw7dCB0CitzLEBhbV9fZmFzdGRlcENDX0ZBTFNFQCwjLDt0IHQKK3MsQFdBUk5GTEFHU0AsLVdhbGwsO3QgdAorcyxAQ1BQQCxnY2MgLUUsO3QgdAorcyxARUdSRVBALGdyZXAgLUUsO3QgdAorcyxAUEVSTEAsL3Vzci9iaW4vcGVybCw7dCB0CitzLEBMSUJPQkpTQCwsO3QgdAorcyxATFRMSUJPQkpTQCwsO3QgdAorQ0VPRgorCisgICMgU3BsaXQgdGhlIHN1YnN0aXR1dGlvbnMgaW50byBiaXRlLXNpemVkIHBpZWNlcyBmb3Igc2VkcyB3aXRoCisgICMgc21hbGwgY29tbWFuZCBudW1iZXIgbGltaXRzLCBsaWtlIG9uIERpZ2l0YWwgT1NGLzEgYW5kIEhQLVVYLgorICBhY19tYXhfc2VkX2xpbmVzPTQ4CisgIGFjX3NlZF9mcmFnPTEgIyBOdW1iZXIgb2YgY3VycmVudCBmaWxlLgorICBhY19iZWc9MSAjIEZpcnN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KKyAgYWNfZW5kPSRhY19tYXhfc2VkX2xpbmVzICMgTGluZSBhZnRlciBsYXN0IGxpbmUgZm9yIGN1cnJlbnQgZmlsZS4KKyAgYWNfbW9yZV9saW5lcz06CisgIGFjX3NlZF9jbWRzPQorICB3aGlsZSAkYWNfbW9yZV9saW5lczsgZG8KKyAgICBpZiB0ZXN0ICRhY19iZWcgLWd0IDE7IHRoZW4KKyAgICAgIHNlZCAiMSwke2FjX2JlZ31kOyAke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZworICAgIGVsc2UKKyAgICAgIHNlZCAiJHthY19lbmR9cSIgJHRtcC9zdWJzLnNlZCA+JHRtcC9zdWJzLmZyYWcKKyAgICBmaQorICAgIGlmIHRlc3QgISAtcyAkdG1wL3N1YnMuZnJhZzsgdGhlbgorICAgICAgYWNfbW9yZV9saW5lcz1mYWxzZQorICAgIGVsc2UKKyAgICAgICMgVGhlIHB1cnBvc2Ugb2YgdGhlIGxhYmVsIGFuZCBvZiB0aGUgYnJhbmNoaW5nIGNvbmRpdGlvbiBpcyB0bworICAgICAgIyBzcGVlZCB1cCB0aGUgc2VkIHByb2Nlc3NpbmcgKGlmIHRoZXJlIGFyZSBubyBgQCcgYXQgYWxsLCB0aGVyZQorICAgICAgIyBpcyBubyBuZWVkIHRvIGJyb3dzZSBhbnkgb2YgdGhlIHN1YnN0aXR1dGlvbnMpLgorICAgICAgIyBUaGVzZSBhcmUgdGhlIHR3byBleHRyYSBzZWQgY29tbWFuZHMgbWVudGlvbmVkIGFib3ZlLgorICAgICAgKGVjaG8gJzp0CisgIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWInICYmIGNhdCAkdG1wL3N1YnMuZnJhZykgPiR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkCisgICAgICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCisJYWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKKyAgICAgIGVsc2UKKwlhY19zZWRfY21kcz0iJGFjX3NlZF9jbWRzIHwgc2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkIgorICAgICAgZmkKKyAgICAgIGFjX3NlZF9mcmFnPWBleHByICRhY19zZWRfZnJhZyArIDFgCisgICAgICBhY19iZWc9JGFjX2VuZAorICAgICAgYWNfZW5kPWBleHByICRhY19lbmQgKyAkYWNfbWF4X3NlZF9saW5lc2AKKyAgICBmaQorICBkb25lCisgIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KKyAgICBhY19zZWRfY21kcz1jYXQKKyAgZmkKK2ZpICMgdGVzdCAtbiAiJENPTkZJR19GSUxFUyIKKworZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0ZJTEVTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKKyAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgorICBjYXNlICRhY19maWxlIGluCisgIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgorCWNhdCA+JHRtcC9zdGRpbgorCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCisJYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKKyAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKKwlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OworICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7CisgIGVzYWMKKworICAjIENvbXB1dGUgQHNyY2RpckAsIEB0b3Bfc3JjZGlyQCwgYW5kIEBJTlNUQUxMQCBmb3Igc3ViZGlyZWN0b3JpZXMuCisgIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYWNfZmlsZSIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKKyAgZWxzZQorICAgIGFzX2Rpcj0iJGFjX2RpciIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKworICBhY19idWlsZGRpcj0uCisKK2lmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KKyAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAorICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCitlbHNlCisgIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KK2ZpCisKK2Nhc2UgJHNyY2RpciBpbgorICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisgICAgYWNfc3JjZGlyPS4KKyAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgorICAgICAgIGFjX3RvcF9zcmNkaXI9LgorICAgIGVsc2UKKyAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCisgICAgZmkgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgorICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7CisgICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CisgICopICMgUmVsYXRpdmUgcGF0aC4KKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAorICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKK2VzYWMKKworIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCisjIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgorY2FzZSBgcHdkYCBpbgorLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7CisqKQorICBjYXNlICIkYWNfZGlyIiBpbgorICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7CisqKQorICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KKyAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfc3JjZGlyIGluCisgIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgorICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7CisgICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKKworCisgIGNhc2UgJElOU1RBTEwgaW4KKyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OworICAqKSBhY19JTlNUQUxMPSRhY190b3BfYnVpbGRkaXIkSU5TVEFMTCA7OworICBlc2FjCisKKyAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKK2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9CisgICAgcm0gLWYgIiRhY19maWxlIgorICBmaQorICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAorICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6CisgICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCisgIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgorICAgIGNvbmZpZ3VyZV9pbnB1dD0KKyAgZWxzZQorICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAiCisgIGZpCisgIGNvbmZpZ3VyZV9pbnB1dD0kY29uZmlndXJlX2lucHV0IkdlbmVyYXRlZCBmcm9tIGBlY2hvICRhY19maWxlX2luIHwKKwkJCQkgICAgIHNlZCAncywuKi8sLCdgIGJ5IGNvbmZpZ3VyZS4iCisKKyAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKKyAgIyBzcmMgdHJlZS4KKyAgYWNfZmlsZV9pbnB1dHM9YElGUz06CisgICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCisgICAgICBjYXNlICRmIGluCisgICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKKyAgICAgIFtcXC8kXSopCisJICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCisJIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCSBlY2hvICIkZiI7OworICAgICAgKikgIyBSZWxhdGl2ZQorCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KKwkgICAjIEJ1aWxkIHRyZWUKKwkgICBlY2hvICIkZiIKKwkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgorCSAgICMgU291cmNlIHRyZWUKKwkgICBlY2hvICIkc3JjZGlyLyRmIgorCSBlbHNlCisJICAgIyAvZGV2L251bGwgdHJlZQorCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisJIGZpOzsKKyAgICAgIGVzYWMKKyAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKyAgc2VkICIvXlsJIF0qVlBBVEhbCSBdKj0veworcy86KlwkKHNyY2Rpcik6Ki86LzsKK3MvOipcJHtzcmNkaXJ9OiovOi87CitzLzoqQHNyY2RpckA6Ki86LzsKK3MvXlwoW149XSo9WwkgXSpcKToqL1wxLzsKK3MvOiokLy87CitzL15bXj1dKj1bCSBdKiQvLzsKK30KKworOnQKKy9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKK3MsQGNvbmZpZ3VyZV9pbnB1dEAsJGNvbmZpZ3VyZV9pbnB1dCw7dCB0CitzLEBzcmNkaXJALCRhY19zcmNkaXIsO3QgdAorcyxAYWJzX3NyY2RpckAsJGFjX2Fic19zcmNkaXIsO3QgdAorcyxAdG9wX3NyY2RpckAsJGFjX3RvcF9zcmNkaXIsO3QgdAorcyxAYWJzX3RvcF9zcmNkaXJALCRhY19hYnNfdG9wX3NyY2Rpciw7dCB0CitzLEBidWlsZGRpckAsJGFjX2J1aWxkZGlyLDt0IHQKK3MsQGFic19idWlsZGRpckAsJGFjX2Fic19idWlsZGRpciw7dCB0CitzLEB0b3BfYnVpbGRkaXJALCRhY190b3BfYnVpbGRkaXIsO3QgdAorcyxAYWJzX3RvcF9idWlsZGRpckAsJGFjX2Fic190b3BfYnVpbGRkaXIsO3QgdAorcyxASU5TVEFMTEAsJGFjX0lOU1RBTEwsO3QgdAorIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiR0bXAvb3V0CisgIHJtIC1mICR0bXAvc3RkaW4KKyAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgorICAgIG12ICR0bXAvb3V0ICRhY19maWxlCisgIGVsc2UKKyAgICBjYXQgJHRtcC9vdXQKKyAgICBybSAtZiAkdG1wL291dAorICBmaQorCitkb25lCisKKyMKKyMgQ09ORklHX0hFQURFUiBzZWN0aW9uLgorIworCisjIFRoZXNlIHNlZCBjb21tYW5kcyBhcmUgcGFzc2VkIHRvIHNlZCBhcyAiQSBOQU1FIEIgTkFNRSBDIFZBTFVFIEQiLCB3aGVyZQorIyBOQU1FIGlzIHRoZSBjcHAgbWFjcm8gYmVpbmcgZGVmaW5lZCBhbmQgVkFMVUUgaXMgdGhlIHZhbHVlIGl0IGlzIGJlaW5nIGdpdmVuLgorIworIyBhY19kIHNldHMgdGhlIHZhbHVlIGluICIjZGVmaW5lIE5BTUUgVkFMVUUiIGxpbmVzLgorYWNfZEE9J3MsXlwoWwkgXSpcKSNcKFsJIF0qZGVmaW5lWwkgXVsJIF0qXCknCithY19kQj0nWwkgXS4qJCxcMSNcMicKK2FjX2RDPScgJworYWNfZEQ9Jyw7dCcKKyMgYWNfdSB0dXJucyAiI3VuZGVmIE5BTUUiIHdpdGhvdXQgdHJhaWxpbmcgYmxhbmtzIGludG8gIiNkZWZpbmUgTkFNRSBWQUxVRSIuCithY191QT0ncyxeXChbCSBdKlwpI1woWwkgXSpcKXVuZGVmXChbCSBdWwkgXSpcKScKK2FjX3VCPSckLFwxI1wyZGVmaW5lXDMnCithY191Qz0nICcKK2FjX3VEPScsO3QnCisKK2ZvciBhY19maWxlIGluIDogJENPTkZJR19IRUFERVJTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKKyAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgorICBjYXNlICRhY19maWxlIGluCisgIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgorCWNhdCA+JHRtcC9zdGRpbgorCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCisJYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKKyAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKKwlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OworICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7CisgIGVzYWMKKworICB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtICYmIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKK2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9CisKKyAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKKyAgIyBzcmMgdHJlZS4KKyAgYWNfZmlsZV9pbnB1dHM9YElGUz06CisgICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCisgICAgICBjYXNlICRmIGluCisgICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKKyAgICAgIFtcXC8kXSopCisJICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCisJIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCSAjIERvIHF1b3RlICRmLCB0byBwcmV2ZW50IERPUyBwYXRocyBmcm9tIGJlaW5nIElGUydkLgorCSBlY2hvICIkZiI7OworICAgICAgKikgIyBSZWxhdGl2ZQorCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KKwkgICAjIEJ1aWxkIHRyZWUKKwkgICBlY2hvICIkZiIKKwkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgorCSAgICMgU291cmNlIHRyZWUKKwkgICBlY2hvICIkc3JjZGlyLyRmIgorCSBlbHNlCisJICAgIyAvZGV2L251bGwgdHJlZQorCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisJIGZpOzsKKyAgICAgIGVzYWMKKyAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KKyAgIyBSZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlcy4KKyAgc2VkICdzL1sJIF0qJC8vJyAkYWNfZmlsZV9pbnB1dHMgPiR0bXAvaW4KKworICAjIEhhbmRsZSBhbGwgdGhlICNkZWZpbmUgdGVtcGxhdGVzIG9ubHkgaWYgbmVjZXNzYXJ5LgorICBpZiBncmVwICJeWwkgXSojWwkgXSpkZWZpbmUiICR0bXAvaW4gPi9kZXYvbnVsbDsgdGhlbgorICAjIElmIHRoZXJlIGFyZSBubyBkZWZpbmVzLCB3ZSBtYXkgaGF2ZSBhbiBlbXB0eSBpZi9maQorICA6CisgIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YKKy9eWwkgXSojWwkgXSpkZWZpbmUvIWIKK3QgY2xyCis6IGNscgorJHthY19kQX1QQUNLQUdFX05BTUUke2FjX2RCfVBBQ0tBR0VfTkFNRSR7YWNfZEN9InN0cmFjZSIke2FjX2REfQorJHthY19kQX1QQUNLQUdFX1RBUk5BTUUke2FjX2RCfVBBQ0tBR0VfVEFSTkFNRSR7YWNfZEN9InN0cmFjZSIke2FjX2REfQorJHthY19kQX1QQUNLQUdFX1ZFUlNJT04ke2FjX2RCfVBBQ0tBR0VfVkVSU0lPTiR7YWNfZEN9IjQuNS4xMiIke2FjX2REfQorJHthY19kQX1QQUNLQUdFX1NUUklORyR7YWNfZEJ9UEFDS0FHRV9TVFJJTkcke2FjX2RDfSJzdHJhY2UgNC41LjEyIiR7YWNfZER9Ciske2FjX2RBfVBBQ0tBR0VfQlVHUkVQT1JUJHthY19kQn1QQUNLQUdFX0JVR1JFUE9SVCR7YWNfZEN9IiIke2FjX2REfQorJHthY19kQX1QQUNLQUdFJHthY19kQn1QQUNLQUdFJHthY19kQ30ic3RyYWNlIiR7YWNfZER9Ciske2FjX2RBfVZFUlNJT04ke2FjX2RCfVZFUlNJT04ke2FjX2RDfSI0LjUuMTIiJHthY19kRH0KKyR7YWNfZEF9TElOVVgke2FjX2RCfUxJTlVYJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9QVJNJHthY19kQn1BUk0ke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1fR05VX1NPVVJDRSR7YWNfZEJ9X0dOVV9TT1VSQ0Uke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1TVERDX0hFQURFUlMke2FjX2RCfVNURENfSEVBREVSUyR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfRElSRU5UX0gke2FjX2RCfUhBVkVfRElSRU5UX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NZU19UWVBFU19IJHthY19kQn1IQVZFX1NZU19UWVBFU19IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TWVNfU1RBVF9IJHthY19kQn1IQVZFX1NZU19TVEFUX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NURExJQl9IJHthY19kQn1IQVZFX1NURExJQl9IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TVFJJTkdfSCR7YWNfZEJ9SEFWRV9TVFJJTkdfSCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfTUVNT1JZX0gke2FjX2RCfUhBVkVfTUVNT1JZX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NUUklOR1NfSCR7YWNfZEJ9SEFWRV9TVFJJTkdTX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0lOVFRZUEVTX0gke2FjX2RCfUhBVkVfSU5UVFlQRVNfSCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfU1RESU5UX0gke2FjX2RCfUhBVkVfU1RESU5UX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1VOSVNURF9IJHthY19kQn1IQVZFX1VOSVNURF9IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFJHthY19kQn1IQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUyR7YWNfZEJ9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1Mke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYke2FjX2RCfUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfU1RBVDY0JHthY19kQn1IQVZFX1NUQVQ2NCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfVJFVFNJR1RZUEUke2FjX2RCfVJFVFNJR1RZUEUke2FjX2RDfXZvaWQke2FjX2REfQorJHthY19kQX1HRVRHUk9VUFNfVCR7YWNfZEJ9R0VUR1JPVVBTX1Qke2FjX2RDfWdpZF90JHthY19kRH0KKyR7YWNfZEF9SEFWRV9TSUdfQVRPTUlDX1Qke2FjX2RCfUhBVkVfU0lHX0FUT01JQ19UJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TSUdJTkZPX1Qke2FjX2RCfUhBVkVfU0lHSU5GT19UJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQke2FjX2RCfUhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9MT05HX0xPTkcke2FjX2RCfUhBVkVfTE9OR19MT05HJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyR7YWNfZEJ9SEFWRV9MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORyR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfU0lHQUNUSU9OJHthY19kQn1IQVZFX1NJR0FDVElPTiR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfU1RSRVJST1Ike2FjX2RCfUhBVkVfU1RSRVJST1Ike2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NUUlNJR05BTCR7YWNfZEJ9SEFWRV9TVFJTSUdOQUwke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1BSRUFEJHthY19kQn1IQVZFX1BSRUFEJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TWVNfU0lHTElTVCR7YWNfZEJ9SEFWRV9TWVNfU0lHTElTVCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX19TWVNfU0lHTElTVCR7YWNfZEN9MSR7YWNfZER9CitDRU9GCisgIHNlZCAtZiAkdG1wL2RlZmluZXMuc2VkICR0bXAvaW4gPiR0bXAvb3V0CisgIHJtIC1mICR0bXAvaW4KKyAgbXYgJHRtcC9vdXQgJHRtcC9pbgorCisgIGNhdCA+JHRtcC9kZWZpbmVzLnNlZCA8PENFT0YKKy9eWwkgXSojWwkgXSpkZWZpbmUvIWIKK3QgY2xyCis6IGNscgorJHthY19kQX1IQVZFX1BSQ1RMJHthY19kQn1IQVZFX1BSQ1RMJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TRU5ETVNHJHthY19kQn1IQVZFX1NFTkRNU0cke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0lORVRfTlRPUCR7YWNfZEJ9SEFWRV9JTkVUX05UT1Ake2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0lGX0lOREVYVE9OQU1FJHthY19kQn1IQVZFX0lGX0lOREVYVE9OQU1FJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TWVNfUkVHX0gke2FjX2RCfUhBVkVfU1lTX1JFR19IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TVFJPUFRTX0gke2FjX2RCfUhBVkVfU1RST1BUU19IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TWVNfSU9DVExfSCR7YWNfZEJ9SEFWRV9TWVNfSU9DVExfSCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfU1lTX1BUUkFDRV9IJHthY19kQn1IQVZFX1NZU19QVFJBQ0VfSCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfVEVSTUlPX0gke2FjX2RCfUhBVkVfVEVSTUlPX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0xJTlVYX1BUUkFDRV9IJHthY19kQn1IQVZFX0xJTlVYX1BUUkFDRV9IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TWVNfVUlPX0gke2FjX2RCfUhBVkVfU1lTX1VJT19IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9QT0xMX0gke2FjX2RCfUhBVkVfUE9MTF9IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TWVNfUE9MTF9IJHthY19kQn1IQVZFX1NZU19QT0xMX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NZU19WRlNfSCR7YWNfZEJ9SEFWRV9TWVNfVkZTX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0xJTlVYX1VUU05BTUVfSCR7YWNfZEJ9SEFWRV9MSU5VWF9VVFNOQU1FX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX01RVUVVRV9IJHthY19kQn1IQVZFX01RVUVVRV9IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TWVNfRVBPTExfSCR7YWNfZEJ9SEFWRV9TWVNfRVBPTExfSCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfTElOVVhfSUNNUF9IJHthY19kQn1IQVZFX0xJTlVYX0lDTVBfSCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfTElOVVhfSU42X0gke2FjX2RCfUhBVkVfTElOVVhfSU42X0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0xJTlVYX05FVExJTktfSCR7YWNfZEJ9SEFWRV9MSU5VWF9ORVRMSU5LX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0xJTlVYX0lGX1BBQ0tFVF9IJHthY19kQn1IQVZFX0xJTlVYX0lGX1BBQ0tFVF9IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9BU01fU0lHQ09OVEVYVF9IJHthY19kQn1IQVZFX0FTTV9TSUdDT05URVhUX0gke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX05FVElORVRfVENQX0gke2FjX2RCfUhBVkVfTkVUSU5FVF9UQ1BfSCR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfTkVUSU5FVF9VRFBfSCR7YWNfZEJ9SEFWRV9ORVRJTkVUX1VEUF9IJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MJHthY19kQn1IQVZFX1NUUlVDVF9NU0dIRFJfTVNHX0NPTlRST0wke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCR7YWNfZEJ9SEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX1NUUlVDVF9VU0VSX0RFU0Mke2FjX2RCfUhBVkVfU1RSVUNUX1VTRVJfREVTQyR7YWNfZEN9MSR7YWNfZER9Ciske2FjX2RBfUhBVkVfREVDTF9TWVNfRVJSTElTVCR7YWNfZEJ9SEFWRV9ERUNMX1NZU19FUlJMSVNUJHthY19kQ30xJHthY19kRH0KKyR7YWNfZEF9SEFWRV9ERUNMX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX0RFQ0xfU1lTX1NJR0xJU1Qke2FjX2RDfTEke2FjX2REfQorJHthY19kQX1IQVZFX0RFQ0xfX1NZU19TSUdMSVNUJHthY19kQn1IQVZFX0RFQ0xfX1NZU19TSUdMSVNUJHthY19kQ30xJHthY19kRH0KK0NFT0YKKyAgc2VkIC1mICR0bXAvZGVmaW5lcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKKyAgcm0gLWYgJHRtcC9pbgorICBtdiAkdG1wL291dCAkdG1wL2luCisKKyAgZmkgIyBncmVwCisKKyAgIyBIYW5kbGUgYWxsIHRoZSAjdW5kZWYgdGVtcGxhdGVzCisgIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRgorL15bCSBdKiNbCSBdKnVuZGVmLyFiCit0IGNscgorOiBjbHIKKyR7YWNfdUF9UEFDS0FHRV9OQU1FJHthY191Qn1QQUNLQUdFX05BTUUke2FjX3VDfSJzdHJhY2UiJHthY191RH0KKyR7YWNfdUF9UEFDS0FHRV9UQVJOQU1FJHthY191Qn1QQUNLQUdFX1RBUk5BTUUke2FjX3VDfSJzdHJhY2UiJHthY191RH0KKyR7YWNfdUF9UEFDS0FHRV9WRVJTSU9OJHthY191Qn1QQUNLQUdFX1ZFUlNJT04ke2FjX3VDfSI0LjUuMTIiJHthY191RH0KKyR7YWNfdUF9UEFDS0FHRV9TVFJJTkcke2FjX3VCfVBBQ0tBR0VfU1RSSU5HJHthY191Q30ic3RyYWNlIDQuNS4xMiIke2FjX3VEfQorJHthY191QX1QQUNLQUdFX0JVR1JFUE9SVCR7YWNfdUJ9UEFDS0FHRV9CVUdSRVBPUlQke2FjX3VDfSIiJHthY191RH0KKyR7YWNfdUF9UEFDS0FHRSR7YWNfdUJ9UEFDS0FHRSR7YWNfdUN9InN0cmFjZSIke2FjX3VEfQorJHthY191QX1WRVJTSU9OJHthY191Qn1WRVJTSU9OJHthY191Q30iNC41LjEyIiR7YWNfdUR9Ciske2FjX3VBfUxJTlVYJHthY191Qn1MSU5VWCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUFSTSR7YWNfdUJ9QVJNJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9X0dOVV9TT1VSQ0Uke2FjX3VCfV9HTlVfU09VUkNFJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9U1REQ19IRUFERVJTJHthY191Qn1TVERDX0hFQURFUlMke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX0RJUkVOVF9IJHthY191Qn1IQVZFX0RJUkVOVF9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TWVNfVFlQRVNfSCR7YWNfdUJ9SEFWRV9TWVNfVFlQRVNfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1lTX1NUQVRfSCR7YWNfdUJ9SEFWRV9TWVNfU1RBVF9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TVERMSUJfSCR7YWNfdUJ9SEFWRV9TVERMSUJfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1RSSU5HX0gke2FjX3VCfUhBVkVfU1RSSU5HX0gke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX01FTU9SWV9IJHthY191Qn1IQVZFX01FTU9SWV9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TVFJJTkdTX0gke2FjX3VCfUhBVkVfU1RSSU5HU19IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9JTlRUWVBFU19IJHthY191Qn1IQVZFX0lOVFRZUEVTX0gke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX1NURElOVF9IJHthY191Qn1IQVZFX1NURElOVF9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9VTklTVERfSCR7YWNfdUJ9SEFWRV9VTklTVERfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRSR7YWNfdUJ9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1Mke2FjX3VCfUhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWJHthY191Qn1IQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX1NUQVQ2NCR7YWNfdUJ9SEFWRV9TVEFUNjQke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1SRVRTSUdUWVBFJHthY191Qn1SRVRTSUdUWVBFJHthY191Q312b2lkJHthY191RH0KKyR7YWNfdUF9R0VUR1JPVVBTX1Qke2FjX3VCfUdFVEdST1VQU19UJHthY191Q31naWRfdCR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU0lHX0FUT01JQ19UJHthY191Qn1IQVZFX1NJR19BVE9NSUNfVCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU0lHSU5GT19UJHthY191Qn1IQVZFX1NJR0lORk9fVCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lEJHthY191Qn1IQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfTE9OR19MT05HJHthY191Qn1IQVZFX0xPTkdfTE9ORyR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcke2FjX3VCfUhBVkVfTElUVExFX0VORElBTl9MT05HX0xPTkcke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX1NJR0FDVElPTiR7YWNfdUJ9SEFWRV9TSUdBQ1RJT04ke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX1NUUkVSUk9SJHthY191Qn1IQVZFX1NUUkVSUk9SJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TVFJTSUdOQUwke2FjX3VCfUhBVkVfU1RSU0lHTkFMJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9QUkVBRCR7YWNfdUJ9SEFWRV9QUkVBRCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1lTX1NJR0xJU1Qke2FjX3VCfUhBVkVfU1lTX1NJR0xJU1Qke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX19TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9fU1lTX1NJR0xJU1Qke2FjX3VDfTEke2FjX3VEfQorQ0VPRgorICBzZWQgLWYgJHRtcC91bmRlZnMuc2VkICR0bXAvaW4gPiR0bXAvb3V0CisgIHJtIC1mICR0bXAvaW4KKyAgbXYgJHRtcC9vdXQgJHRtcC9pbgorCisgIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRgorL15bCSBdKiNbCSBdKnVuZGVmLyFiCit0IGNscgorOiBjbHIKKyR7YWNfdUF9SEFWRV9QUkNUTCR7YWNfdUJ9SEFWRV9QUkNUTCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU0VORE1TRyR7YWNfdUJ9SEFWRV9TRU5ETVNHJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9JTkVUX05UT1Ake2FjX3VCfUhBVkVfSU5FVF9OVE9QJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9JRl9JTkRFWFRPTkFNRSR7YWNfdUJ9SEFWRV9JRl9JTkRFWFRPTkFNRSR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1lTX1JFR19IJHthY191Qn1IQVZFX1NZU19SRUdfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1RST1BUU19IJHthY191Qn1IQVZFX1NUUk9QVFNfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1lTX0lPQ1RMX0gke2FjX3VCfUhBVkVfU1lTX0lPQ1RMX0gke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX1NZU19QVFJBQ0VfSCR7YWNfdUJ9SEFWRV9TWVNfUFRSQUNFX0gke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX1RFUk1JT19IJHthY191Qn1IQVZFX1RFUk1JT19IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9MSU5VWF9QVFJBQ0VfSCR7YWNfdUJ9SEFWRV9MSU5VWF9QVFJBQ0VfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1lTX1VJT19IJHthY191Qn1IQVZFX1NZU19VSU9fSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfUE9MTF9IJHthY191Qn1IQVZFX1BPTExfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1lTX1BPTExfSCR7YWNfdUJ9SEFWRV9TWVNfUE9MTF9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TWVNfVkZTX0gke2FjX3VCfUhBVkVfU1lTX1ZGU19IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9MSU5VWF9VVFNOQU1FX0gke2FjX3VCfUhBVkVfTElOVVhfVVRTTkFNRV9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9NUVVFVUVfSCR7YWNfdUJ9SEFWRV9NUVVFVUVfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1lTX0VQT0xMX0gke2FjX3VCfUhBVkVfU1lTX0VQT0xMX0gke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX0xJTlVYX0lDTVBfSCR7YWNfdUJ9SEFWRV9MSU5VWF9JQ01QX0gke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX0xJTlVYX0lONl9IJHthY191Qn1IQVZFX0xJTlVYX0lONl9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9MSU5VWF9ORVRMSU5LX0gke2FjX3VCfUhBVkVfTElOVVhfTkVUTElOS19IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9MSU5VWF9JRl9QQUNLRVRfSCR7YWNfdUJ9SEFWRV9MSU5VWF9JRl9QQUNLRVRfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfQVNNX1NJR0NPTlRFWFRfSCR7YWNfdUJ9SEFWRV9BU01fU0lHQ09OVEVYVF9IJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9ORVRJTkVUX1RDUF9IJHthY191Qn1IQVZFX05FVElORVRfVENQX0gke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX05FVElORVRfVURQX0gke2FjX3VCfUhBVkVfTkVUSU5FVF9VRFBfSCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCR7YWNfdUJ9SEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQke2FjX3VCfUhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9TVFJVQ1RfVVNFUl9ERVNDJHthY191Qn1IQVZFX1NUUlVDVF9VU0VSX0RFU0Mke2FjX3VDfTEke2FjX3VEfQorJHthY191QX1IQVZFX0RFQ0xfU1lTX0VSUkxJU1Qke2FjX3VCfUhBVkVfREVDTF9TWVNfRVJSTElTVCR7YWNfdUN9MSR7YWNfdUR9Ciske2FjX3VBfUhBVkVfREVDTF9TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9ERUNMX1NZU19TSUdMSVNUJHthY191Q30xJHthY191RH0KKyR7YWNfdUF9SEFWRV9ERUNMX19TWVNfU0lHTElTVCR7YWNfdUJ9SEFWRV9ERUNMX19TWVNfU0lHTElTVCR7YWNfdUN9MSR7YWNfdUR9CitzLF5bCSBdKiNbCSBdKnVuZGVmWwkgXVsJIF0qW2EtekEtWl9dW2EtekEtWl8wLTldKiwvKiAmICovLAorQ0VPRgorICBzZWQgLWYgJHRtcC91bmRlZnMuc2VkICR0bXAvaW4gPiR0bXAvb3V0CisgIHJtIC1mICR0bXAvaW4KKyAgbXYgJHRtcC9vdXQgJHRtcC9pbgorCisgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0CisgICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKKyAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KKyAgaWYgdGVzdCB4IiRhY19maWxlIiA9IHgtOyB0aGVuCisgICAgZWNobyAiLyogR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovIiA+JHRtcC9jb25maWcuaAorICBlbHNlCisgICAgZWNobyAiLyogJGFjX2ZpbGUuICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCisgIGZpCisgIGNhdCAkdG1wL2luID4+JHRtcC9jb25maWcuaAorICBybSAtZiAkdG1wL2luCisgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKyAgICBpZiBkaWZmICRhY19maWxlICR0bXAvY29uZmlnLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNQorZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CisgICAgZWxzZQorICAgICAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRhY19maWxlIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICAgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKKyAgZWxzZQorICAgIGFzX2Rpcj0iJGFjX2RpciIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKworICAgICAgcm0gLWYgJGFjX2ZpbGUKKyAgICAgIG12ICR0bXAvY29uZmlnLmggJGFjX2ZpbGUKKyAgICBmaQorICBlbHNlCisgICAgY2F0ICR0bXAvY29uZmlnLmgKKyAgICBybSAtZiAkdG1wL2NvbmZpZy5oCisgIGZpCisjIENvbXB1dGUgJGFjX2ZpbGUncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCitfYW1fc3RhbXBfY291bnQ9MQorZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCisgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKyAgICAkYWNfZmlsZSB8ICRhY19maWxlOiogKQorICAgICAgYnJlYWsgOzsKKyAgICAqICkKKyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKKyAgZXNhYworZG9uZQorZWNobyAidGltZXN0YW1wIGZvciAkYWNfZmlsZSIgPmAoZGlybmFtZSAkYWNfZmlsZSkgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgkYWNfZmlsZSA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSBYJGFjX2ZpbGUgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCRhY19maWxlIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgkYWNfZmlsZSA6ICdYXCgvXCknIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgkYWNfZmlsZSB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKK2RvbmUKKworIworIyBDT05GSUdfQ09NTUFORFMgc2VjdGlvbi4KKyMKK2ZvciBhY19maWxlIGluIDogJENPTkZJR19DT01NQU5EUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCisgIGFjX2Rlc3Q9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgCisgIGFjX3NvdXJjZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKKyAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2Rlc3QiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkYWNfZGVzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYWNfZGVzdCIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkYWNfZGVzdCIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRhY19kZXN0IiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgorICAgIG1rZGlyIC1wICIkYWNfZGlyIgorICBlbHNlCisgICAgYXNfZGlyPSIkYWNfZGlyIgorICAgIGFzX2RpcnM9CisgICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KKyAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCisgICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRhc19kaXIiIHwKKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorICAgIGRvbmUKKyAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycworICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorCisgIGFjX2J1aWxkZGlyPS4KKworaWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgorICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCisgICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCisgIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKK2Vsc2UKKyAgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQorZmkKKworY2FzZSAkc3JjZGlyIGluCisgIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KKyAgICBhY19zcmNkaXI9LgorICAgIGlmIHRlc3QgLXogIiRhY190b3BfYnVpbGRkaXIiOyB0aGVuCisgICAgICAgYWNfdG9wX3NyY2Rpcj0uCisgICAgZWxzZQorICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWlsZGRpciB8IHNlZCAncywvJCwsJ2AKKyAgICBmaSA7OworICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCisgICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKKyAgKikgIyBSZWxhdGl2ZSBwYXRoLgorICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4CisgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OworZXNhYworCisjIERvIG5vdCB1c2UgYGNkIGZvbyAmJiBwd2RgIHRvIGNvbXB1dGUgYWJzb2x1dGUgcGF0aHMsIGJlY2F1c2UKKyMgdGhlIGRpcmVjdG9yaWVzIG1heSBub3QgZXhpc3QuCitjYXNlIGBwd2RgIGluCisuKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKKyopCisgIGNhc2UgIiRhY19kaXIiIGluCisgIC4pIGFjX2Fic19idWlsZGRpcj1gcHdkYDs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7CisgICopIGFjX2Fic19idWlsZGRpcj1gcHdkYC8iJGFjX2RpciI7OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyopCisgIGNhc2UgJHthY190b3BfYnVpbGRkaXJ9LiBpbgorICAuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7CisgICopIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpci8ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7CisqKQorICBjYXNlICRhY19zcmNkaXIgaW4KKyAgLikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OworICAqKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3NyY2Rpcjs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7CisqKQorICBjYXNlICRhY190b3Bfc3JjZGlyIGluCisgIC4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKKyAgKikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfdG9wX3NyY2Rpcjs7CisgIGVzYWM7OworZXNhYworCisKKyAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjUKK2VjaG8gIiRhc19tZTogZXhlY3V0aW5nICRhY19kZXN0IGNvbW1hbmRzIiA+JjY7fQorICBjYXNlICRhY19kZXN0IGluCisgICAgZGVwZmlsZXMgKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCBmb3IgbWYgaW4gJENPTkZJR19GSUxFUzsgZG8KKyAgIyBTdHJpcCBNRiBzbyB3ZSBlbmQgdXAgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZmlsZS4KKyAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8vJ2AKKyAgIyBDaGVjayB3aGV0aGVyIHRoaXMgaXMgYW4gQXV0b21ha2UgZ2VuZXJhdGVkIE1ha2VmaWxlIG9yIG5vdC4KKyAgIyBXZSB1c2VkIHRvIG1hdGNoIG9ubHkgdGhlIGZpbGVzIG5hbWVkIGBNYWtlZmlsZS5pbicsIGJ1dAorICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KKyAgIyBHcmVwJ2luZyB0aGUgZmlyc3QgbGluZSBpcyBub3QgZW5vdWdoOiBzb21lIHBlb3BsZSBwb3N0LXByb2Nlc3MKKyAgIyBlYWNoIE1ha2VmaWxlLmluIGFuZCBhZGQgYSBuZXcgbGluZSBvbiB0b3Agb2YgZWFjaCBmaWxlIHRvIHNheSBzby4KKyAgIyBTbyBsZXQncyBncmVwIHdob2xlIGZpbGUuCisgIGlmIGdyZXAgJ14jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UnICRtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgZGlycGFydD1gKGRpcm5hbWUgIiRtZiIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkbWYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJG1mIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRtZiIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRtZiIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgIGVsc2UKKyAgICBjb250aW51ZQorICBmaQorICAjIEV4dHJhY3QgdGhlIGRlZmluaXRpb24gb2YgREVQRElSLCBhbV9faW5jbHVkZSwgYW5kIGFtX19xdW90ZQorICAjIGZyb20gdGhlIE1ha2VmaWxlIHdpdGhvdXQgcnVubmluZyBgbWFrZScuCisgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCisgIHRlc3QgLXogIiRERVBESVIiICYmIGNvbnRpbnVlCisgIGFtX19pbmNsdWRlPWBzZWQgLW4gJ3MvXmFtX19pbmNsdWRlID0gLy9wJyA8ICIkbWYiYAorICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29udGludWUKKyAgYW1fX3F1b3RlPWBzZWQgLW4gJ3MvXmFtX19xdW90ZSA9IC8vcCcgPCAiJG1mImAKKyAgIyBXaGVuIHVzaW5nIGFuc2kya25yLCBVIG1heSBiZSBlbXB0eSBvciBhbiB1bmRlcnNjb3JlOyBleHBhbmQgaXQKKyAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAorICAjIEZpbmQgYWxsIGRlcGVuZGVuY3kgb3V0cHV0IGZpbGVzLCB0aGV5IGFyZSBpbmNsdWRlZCBmaWxlcyB3aXRoCisgICMgJChERVBESVIpIGluIHRoZWlyIG5hbWVzLiAgV2UgaW52b2tlIHNlZCB0d2ljZSBiZWNhdXNlIGl0IGlzIHRoZQorICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQoREVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQorICAjIGV4cGFuc2lvbi4KKyAgZm9yIGZpbGUgaW4gYHNlZCAtbiAiCisgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4qKERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCisgICAgICAgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCisgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCisgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCisgICAgZmRpcj1gKGRpcm5hbWUgIiRmaWxlIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGZpbGUiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkZmlsZSIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgICAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgorICAgIG1rZGlyIC1wICRkaXJwYXJ0LyRmZGlyCisgIGVsc2UKKyAgICBhc19kaXI9JGRpcnBhcnQvJGZkaXIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGRpcnBhcnQvJGZkaXIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKworICAgICMgZWNobyAiY3JlYXRpbmcgJGRpcnBhcnQvJGZpbGUiCisgICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCisgIGRvbmUKK2RvbmUKKyA7OworICBlc2FjCitkb25lCisKK3sgKGV4aXQgMCk7IGV4aXQgMDsgfQpkaWZmIC0tZ2l0IGEvY29uZmlnLnN1YiBiL2NvbmZpZy5zdWIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTg3YjE3ZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy5zdWIKQEAgLTAsMCArMSwxNTY2IEBACisjISAvYmluL3NoCisjIENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBzdWJyb3V0aW5lIHNjcmlwdC4KKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCisjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwordGltZXN0YW1wPScyMDA0LTExLTMwJworCisjIFRoaXMgZmlsZSBpcyAoaW4gcHJpbmNpcGxlKSBjb21tb24gdG8gQUxMIEdOVSBzb2Z0d2FyZS4KKyMgVGhlIHByZXNlbmNlIG9mIGEgbWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBTT01FIEdOVSBzb2Z0d2FyZQorIyBjYW4gaGFuZGxlIHRoYXQgbWFjaGluZS4gIEl0IGRvZXMgbm90IGltcGx5IEFMTCBHTlUgc29mdHdhcmUgY2FuLgorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1pdCBhIGNvbnRleHQKKyMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ2hhbmdlTG9nIGVudHJ5LgorIworIyBDb25maWd1cmF0aW9uIHN1YnJvdXRpbmUgdG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gdHlwZS4KKyMgU3VwcGx5IHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiB0eXBlIGFzIGFuIGFyZ3VtZW50LgorIyBJZiBpdCBpcyBpbnZhbGlkLCB3ZSBwcmludCBhbiBlcnJvciBtZXNzYWdlIG9uIHN0ZGVyciBhbmQgZXhpdCB3aXRoIGNvZGUgMS4KKyMgT3RoZXJ3aXNlLCB3ZSBwcmludCB0aGUgY2Fub25pY2FsIGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KKworIyBUaGlzIGZpbGUgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIHNhbWUgZm9yIGFsbCBHTlUgcGFja2FnZXMKKyMgYW5kIHJlY29nbml6ZSBhbGwgdGhlIENQVSB0eXBlcywgc3lzdGVtIHR5cGVzIGFuZCBhbGlhc2VzCisjIHRoYXQgYXJlIG1lYW5pbmdmdWwgd2l0aCAqYW55KiBHTlUgc29mdHdhcmUuCisjIEVhY2ggcGFja2FnZSBpcyByZXNwb25zaWJsZSBmb3IgcmVwb3J0aW5nIHdoaWNoIHZhbGlkIGNvbmZpZ3VyYXRpb25zCisjIGl0IGRvZXMgbm90IHN1cHBvcnQuICBUaGUgdXNlciBzaG91bGQgYmUgYWJsZSB0byBkaXN0aW5ndWlzaAorIyBhIGZhaWx1cmUgdG8gc3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1lYW5pbmdsZXNzCisjIGNvbmZpZ3VyYXRpb24uCisKKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxlIGlzIHRvIG1hcCBhbGwgdGhlIHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCisjIG1hY2hpbmUgc3BlY2lmaWNhdGlvbiBpbnRvIGEgc2luZ2xlIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm06CisjCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNCisjIG9yIGluIHNvbWUgY2FzZXMsIHRoZSBuZXdlciBmb3VyLXBhcnQgZm9ybToKKyMJQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNCisjIEl0IGlzIHdyb25nIHRvIGVjaG8gYW55IG90aGVyIHR5cGUgb2Ygc3BlY2lmaWNhdGlvbi4KKworbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisKK3VzYWdlPSJcCitVc2FnZTogJDAgW09QVElPTl0gQ1BVLU1GUi1PUFNZUworICAgICAgICQwIFtPUFRJT05dIEFMSUFTCisKK0Nhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gbmFtZS4KKworT3BlcmF0aW9uIG1vZGVzOgorICAtaCwgLS1oZWxwICAgICAgICAgcHJpbnQgdGhpcyBoZWxwLCB0aGVuIGV4aXQKKyAgLXQsIC0tdGltZS1zdGFtcCAgIHByaW50IGRhdGUgb2YgbGFzdCBtb2RpZmljYXRpb24sIHRoZW4gZXhpdAorICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorCitSZXBvcnQgYnVncyBhbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uIgorCit2ZXJzaW9uPSJcCitHTlUgY29uZmlnLnN1YiAoJHRpbWVzdGFtcCkKKworQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0CitGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KK3dhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKKworaGVscD0iCitUcnkgXGAkbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCisKKyMgUGFyc2UgY29tbWFuZCBsaW5lCit3aGlsZSB0ZXN0ICQjIC1ndCAwIDsgZG8KKyAgY2FzZSAkMSBpbgorICAgIC0tdGltZS1zdGFtcCB8IC0tdGltZSogfCAtdCApCisgICAgICAgZWNobyAiJHRpbWVzdGFtcCIgOyBleGl0IDAgOzsKKyAgICAtLXZlcnNpb24gfCAtdiApCisgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCAwIDs7CisgICAgLS1oZWxwIHwgLS1oKiB8IC1oICkKKyAgICAgICBlY2hvICIkdXNhZ2UiOyBleGl0IDAgOzsKKyAgICAtLSApICAgICAjIFN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKKyAgICAgICBzaGlmdDsgYnJlYWsgOzsKKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCisgICAgICAgYnJlYWsgOzsKKyAgICAtKiApCisgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAkMSRoZWxwIgorICAgICAgIGV4aXQgMSA7OworCisgICAgKmxvY2FsKikKKyAgICAgICAjIEZpcnN0IHBhc3MgdGhyb3VnaCBhbnkgbG9jYWwgbWFjaGluZSB0eXBlcy4KKyAgICAgICBlY2hvICQxCisgICAgICAgZXhpdCAwOzsKKworICAgICogKQorICAgICAgIGJyZWFrIDs7CisgIGVzYWMKK2RvbmUKKworY2FzZSAkIyBpbgorIDApIGVjaG8gIiRtZTogbWlzc2luZyBhcmd1bWVudCRoZWxwIiA+JjIKKyAgICBleGl0IDE7OworIDEpIDs7CisgKikgZWNobyAiJG1lOiB0b28gbWFueSBhcmd1bWVudHMkaGVscCIgPiYyCisgICAgZXhpdCAxOzsKK2VzYWMKKworIyBTZXBhcmF0ZSB3aGF0IHRoZSB1c2VyIGdhdmUgaW50byBDUFUtQ09NUEFOWSBhbmQgT1Mgb3IgS0VSTkVMLU9TIChpZiBhbnkpLgorIyBIZXJlIHdlIG11c3QgcmVjb2duaXplIGFsbCB0aGUgdmFsaWQgS0VSTkVMLU9TIGNvbWJpbmF0aW9ucy4KK21heWJlX29zPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMi8nYAorY2FzZSAkbWF5YmVfb3MgaW4KKyAgbnRvLXFueCogfCBsaW51eC1nbnUqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC11Y2xpYmMqIHwgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwgXAorICBrZnJlZWJzZCotZ251KiB8IGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBzdG9ybS1jaGFvcyogfCBvczItZW14KiB8IHJ0bWstbm92YSopCisgICAgb3M9LSRtYXliZV9vcworICAgIGJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wxLydgCisgICAgOzsKKyAgKikKKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCisgICAgaWYgWyAkYmFzaWNfbWFjaGluZSAhPSAkMSBdCisgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNlZCAncy8uKi0vLS8nYAorICAgIGVsc2Ugb3M9OyBmaQorICAgIDs7Citlc2FjCisKKyMjIyBMZXQncyByZWNvZ25pemUgY29tbW9uIG1hY2hpbmVzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcyBzbworIyMjIHRoYXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMxMDAgd29yay4gIFdlIGFsc28KKyMjIyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywgc28gd2UKKyMjIyBjYW4gcHJvdmlkZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0ZW1zIGJlbG93LgorY2FzZSAkb3MgaW4KKwktc3VuKm9zKikKKwkJIyBQcmV2ZW50IGZvbGxvd2luZyBjbGF1c2UgZnJvbSBoYW5kbGluZyB0aGlzIGludmFsaWQgaW5wdXQuCisJCTs7CisJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwKKwktYXR0KiB8IC03MzAwKiB8IC0zMzAwKiB8IC1kZWx0YSogfCAtbW90b3JvbGEqIHwgLXN1blsyMzRdKiB8IFwKKwktdW5pY29tKiB8IC1pYm0qIHwgLW5leHQgfCAtaHAgfCAtaXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwgXAorCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCisJLWNbMTIzXSogfCAtY29udmV4KiB8IC1zdW4gfCAtY3JkcyB8IC1vbXJvbiogfCAtZGcgfCAtdWx0cmEgfCAtdHRpKiB8IFwKKwktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVsIHwgLWdvdWxkIHwgLWNibSB8IC1ucyB8IC1tYXNzY29tcCB8IFwKKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5KQorCQlvcz0KKwkJYmFzaWNfbWFjaGluZT0kMQorCQk7OworCS1zaW0gfCAtY2lzY28gfCAtb2tpIHwgLXdlYyB8IC13aW5ib25kKQorCQlvcz0KKwkJYmFzaWNfbWFjaGluZT0kMQorCQk7OworCS1zY291dCkKKwkJOzsKKwktd3JzKQorCQlvcz0tdnh3b3JrcworCQliYXNpY19tYWNoaW5lPSQxCisJCTs7CisJLWNob3J1c29zKikKKwkJb3M9LWNob3J1c29zCisJCWJhc2ljX21hY2hpbmU9JDEKKwkJOzsKKyAJLWNob3J1c3JkYikKKyAJCW9zPS1jaG9ydXNyZGIKKwkJYmFzaWNfbWFjaGluZT0kMQorIAkJOzsKKwktaGl1eCopCisJCW9zPS1oaXV4d2UyCisJCTs7CisJLXNjbzUpCisJCW9zPS1zY28zLjJ2NQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbzQpCisJCW9zPS1zY28zLjJ2NAorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbzMuMi5bNC05XSopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY28zLjJ2WzQtOV0qKQorCQkjIERvbid0IGZvcmdldCB2ZXJzaW9uIGlmIGl0IGlzIDMuMnY0IG9yIG5ld2VyLgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbyopCisJCW9zPS1zY28zLjJ2MgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXVkayopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktaXNjKQorCQlvcz0taXNjMi4yCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktY2xpeCopCisJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1pbnRlcmdyYXBoCisJCTs7CisJLWlzYyopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktbHlueCopCisJCW9zPS1seW54b3MKKwkJOzsKKwktcHR4KikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1zZXF1ZW50LydgCisJCTs7CisJLXdpbmRvd3NudCopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy93aW5kb3dzbnQvd2lubnQvJ2AKKwkJOzsKKwktcHNvcyopCisJCW9zPS1wc29zCisJCTs7CisJLW1pbnQgfCAtbWludFswLTldKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCisJCW9zPS1taW50CisJCTs7Citlc2FjCisKKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgorY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUuCisJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KKwkxNzUwYSB8IDU4MCBcCisJfCBhMjlrIFwKKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCisJfCBhbHBoYTY0IHwgYWxwaGE2NGV2WzQtOF0gfCBhbHBoYTY0ZXY1NiB8IGFscGhhNjRldjZbNzhdIHwgYWxwaGE2NHBjYTVbNjddIFwKKwl8IGFtMzNfMi4wIFwKKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciBcCisJfCBjNHggfCBjbGlwcGVyIFwKKwl8IGQxMHYgfCBkMzB2IHwgZGx4IHwgZHNwMTZ4eCBcCisJfCBmcjMwIHwgZnJ2IFwKKwl8IGg4MzAwIHwgaDg1MDAgfCBocHBhIHwgaHBwYTEuWzAxXSB8IGhwcGEyLjAgfCBocHBhMi4wW253XSB8IGhwcGE2NCBcCisJfCBpMzcwIHwgaTg2MCB8IGk5NjAgfCBpYTY0IFwKKwl8IGlwMmsgfCBpcTIwMDAgXAorCXwgbTMyciB8IG0zMnJsZSB8IG02ODAwMCB8IG02OGsgfCBtODhrIHwgbWF4cSB8IG1jb3JlIFwKKwl8IG1pcHMgfCBtaXBzYmUgfCBtaXBzZWIgfCBtaXBzZWwgfCBtaXBzbGUgXAorCXwgbWlwczE2IFwKKwl8IG1pcHM2NCB8IG1pcHM2NGVsIFwKKwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCisJfCBtaXBzNjRvcmlvbiB8IG1pcHM2NG9yaW9uZWwgXAorCXwgbWlwczY0dnI0MTAwIHwgbWlwczY0dnI0MTAwZWwgXAorCXwgbWlwczY0dnI0MzAwIHwgbWlwczY0dnI0MzAwZWwgXAorCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAorCXwgbWlwc2lzYTMyIHwgbWlwc2lzYTMyZWwgXAorCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2NGVsIFwKKwl8IG1pcHNpc2E2NHIyIHwgbWlwc2lzYTY0cjJlbCBcCisJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCisJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAorCXwgbWlwc3R4MzkgfCBtaXBzdHgzOWVsIFwKKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKwl8IG1zcDQzMCBcCisJfCBuczE2ayB8IG5zMzJrIFwKKwl8IG9wZW5yaXNjIHwgb3IzMiBcCisJfCBwZHAxMCB8IHBkcDExIHwgcGogfCBwamwgXAorCXwgcG93ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAorCXwgcHlyYW1pZCBcCisJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjNdZSB8IHNoWzM0XWViIHwgc2hiZSB8IHNobGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKKwl8IHNoNjQgfCBzaDY0bGUgXAorCXwgc3BhcmMgfCBzcGFyYzY0IHwgc3BhcmM4NnggfCBzcGFyY2xldCB8IHNwYXJjbGl0ZSB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIgXAorCXwgc3Ryb25nYXJtIFwKKwl8IHRhaG9lIHwgdGh1bWIgfCB0aWM0eCB8IHRpYzgwIHwgdHJvbiBcCisJfCB2ODUwIHwgdjg1MGUgXAorCXwgd2UzMmsgXAorCXwgeDg2IHwgeHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAorCXwgejhrKQorCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKwkJOzsKKwltNjgxMSB8IG02OGhjMTEgfCBtNjgxMiB8IG02OGhjMTIpCisJCSMgTW90b3JvbGEgNjhIQzExLzEyLgorCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKwkJb3M9LW5vbmUKKwkJOzsKKwltODgxMTAgfCBtNjgwWzEyMzQ2XTAgfCBtNjgzPzIgfCBtNjgzNjAgfCBtNTIwMCB8IHY3MCB8IHc2NSB8IHo4aykKKwkJOzsKKworCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24nCisJIyBiZWNhdXNlICgxKSB0aGF0J3Mgd2hhdCB0aGV5IG5vcm1hbGx5IGFyZSwgYW5kCisJIyAoMikgdGhlIHdvcmQgInVua25vd24iIHRlbmRzIHRvIGNvbmZ1c2UgYmVnaW5uaW5nIHVzZXJzLgorCWkqODYgfCB4ODZfNjQpCisJICBiYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXBjCisJICA7OworCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCisJKi0qLSopCisJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgorCQlleGl0IDEKKwkJOzsKKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGggY29tcGFueSBuYW1lLgorCTU4MC0qIFwKKwl8IGEyOWstKiBcCisJfCBhbHBoYS0qIHwgYWxwaGFldls0LThdLSogfCBhbHBoYWV2NTYtKiB8IGFscGhhZXY2Wzc4XS0qIFwKKwl8IGFscGhhNjQtKiB8IGFscGhhNjRldls0LThdLSogfCBhbHBoYTY0ZXY1Ni0qIHwgYWxwaGE2NGV2Nls3OF0tKiBcCisJfCBhbHBoYXBjYTVbNjddLSogfCBhbHBoYTY0cGNhNVs2N10tKiB8IGFyYy0qIFwKKwl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0qIHwgYXJtZWItKiB8IGFybXYqLSogXAorCXwgYXZyLSogXAorCXwgYnMyMDAwLSogXAorCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCisJfCBjbGlwcGVyLSogfCBjcmF5bnYtKiB8IGN5ZHJhLSogXAorCXwgZDEwdi0qIHwgZDMwdi0qIHwgZGx4LSogXAorCXwgZWx4c2ktKiBcCisJfCBmMzBbMDFdLSogfCBmNzAwLSogfCBmcjMwLSogfCBmcnYtKiB8IGZ4ODAtKiBcCisJfCBoODMwMC0qIHwgaDg1MDAtKiBcCisJfCBocHBhLSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAorCXwgaSo4Ni0qIHwgaTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0qIFwKKwl8IGlwMmstKiB8IGlxMjAwMC0qIFwKKwl8IG0zMnItKiB8IG0zMnJsZS0qIFwKKwl8IG02ODAwMC0qIHwgbTY4MFswMTIzNDZdMC0qIHwgbTY4MzYwLSogfCBtNjgzPzItKiB8IG02OGstKiBcCisJfCBtODgxMTAtKiB8IG04OGstKiB8IG1heHEtKiB8IG1jb3JlLSogXAorCXwgbWlwcy0qIHwgbWlwc2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAorCXwgbWlwczE2LSogXAorCXwgbWlwczY0LSogfCBtaXBzNjRlbC0qIFwKKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVsLSogXAorCXwgbWlwczY0b3Jpb24tKiB8IG1pcHM2NG9yaW9uZWwtKiBcCisJfCBtaXBzNjR2cjQxMDAtKiB8IG1pcHM2NHZyNDEwMGVsLSogXAorCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKKwl8IG1pcHM2NHZyNTAwMC0qIHwgbWlwczY0dnI1MDAwZWwtKiBcCisJfCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVsLSogXAorCXwgbWlwc2lzYTMycjItKiB8IG1pcHNpc2EzMnIyZWwtKiBcCisJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorCXwgbWlwc2lzYTY0cjItKiB8IG1pcHNpc2E2NHIyZWwtKiBcCisJfCBtaXBzaXNhNjRzYjEtKiB8IG1pcHNpc2E2NHNiMWVsLSogXAorCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCisJfCBtaXBzdHgzOS0qIHwgbWlwc3R4MzllbC0qIFwKKwl8IG1taXgtKiBcCisJfCBtc3A0MzAtKiBcCisJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKKwl8IG9yaW9uLSogXAorCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCisJfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSogXAorCXwgcHlyYW1pZC0qIFwKKwl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKKwl8IHNoLSogfCBzaFsxMjM0XS0qIHwgc2hbMjNdZS0qIHwgc2hbMzRdZWItKiB8IHNoYmUtKiBcCisJfCBzaGxlLSogfCBzaFsxMjM0XWxlLSogfCBzaDNlbGUtKiB8IHNoNjQtKiB8IHNoNjRsZS0qIFwKKwl8IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzg2eC0qIHwgc3BhcmNsZXQtKiB8IHNwYXJjbGl0ZS0qIFwKKwl8IHNwYXJjdjgtKiB8IHNwYXJjdjktKiB8IHNwYXJjdjliLSogfCBzdHJvbmdhcm0tKiB8IHN2MS0qIHwgc3g/LSogXAorCXwgdGFob2UtKiB8IHRodW1iLSogXAorCXwgdGljMzAtKiB8IHRpYzR4LSogfCB0aWM1NHgtKiB8IHRpYzU1eC0qIHwgdGljNngtKiB8IHRpYzgwLSogXAorCXwgdHJvbi0qIFwKKwl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgtKiBcCisJfCB3ZTMyay0qIFwKKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4cHMxMDAtKiB8IHhzY2FsZS0qIHwgeHNjYWxlZVtibF0tKiBcCisJfCB4c3Rvcm15MTYtKiB8IHh0ZW5zYS0qIFwKKwl8IHltcC0qIFwKKwl8IHo4ay0qKQorCQk7OworCSMgUmVjb2duaXplIHRoZSB2YXJpb3VzIG1hY2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQKKwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5kIHNvbWV0aW1lcyBldmVuIGFuIE9TLgorCTM4NmJzZCkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKwkJb3M9LWJzZAorCQk7OworCTNiMSB8IDczMDAgfCA3MzAwLWF0dCB8IGF0dC03MzAwIHwgcGM3MzAwIHwgc2FmYXJpIHwgdW5peHBjKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1hdHQKKwkJOzsKKwkzYiopCisJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CisJCTs7CisJYTI5a2hpZikKKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorCQlvcz0tdWRpCisJCTs7CisgICAgCWFiYWN1cykKKwkJYmFzaWNfbWFjaGluZT1hYmFjdXMtdW5rbm93bgorCQk7OworCWFkb2JlNjhrKQorCQliYXNpY19tYWNoaW5lPW02ODAxMC1hZG9iZQorCQlvcz0tc2NvdXQKKwkJOzsKKwlhbGxpYW50IHwgZng4MCkKKwkJYmFzaWNfbWFjaGluZT1meDgwLWFsbGlhbnQKKwkJOzsKKwlhbHRvcyB8IGFsdG9zMzA2OCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFsdG9zCisJCTs7CisJYW0yOWspCisJCWJhc2ljX21hY2hpbmU9YTI5ay1ub25lCisJCW9zPS1ic2QKKwkJOzsKKwlhbWQ2NCkKKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKKwkJOzsKKwlhbWQ2NC0qKQorCQliYXNpY19tYWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCWFtZGFobCkKKwkJYmFzaWNfbWFjaGluZT01ODAtYW1kYWhsCisJCW9zPS1zeXN2CisJCTs7CisJYW1pZ2EgfCBhbWlnYS0qKQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQk7OworCWFtaWdhb3MgfCBhbWlnYWRvcykKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KKwkJb3M9LWFtaWdhb3MKKwkJOzsKKwlhbWlnYXVuaXggfCBhbWl4KQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQlvcz0tc3lzdjQKKwkJOzsKKwlhcG9sbG82OCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworCQlvcz0tc3lzdgorCQk7OworCWFwb2xsbzY4YnNkKQorCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCisJCW9zPS1ic2QKKwkJOzsKKwlhdXgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQorCQlvcz0tYXV4CisJCTs7CisJYmFsYW5jZSkKKwkJYmFzaWNfbWFjaGluZT1uczMyay1zZXF1ZW50CisJCW9zPS1keW5peAorCQk7OworCWM5MCkKKwkJYmFzaWNfbWFjaGluZT1jOTAtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisJY29udmV4LWMxKQorCQliYXNpY19tYWNoaW5lPWMxLWNvbnZleAorCQlvcz0tYnNkCisJCTs7CisJY29udmV4LWMyKQorCQliYXNpY19tYWNoaW5lPWMyLWNvbnZleAorCQlvcz0tYnNkCisJCTs7CisJY29udmV4LWMzMikKKwkJYmFzaWNfbWFjaGluZT1jMzItY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljb252ZXgtYzM0KQorCQliYXNpY19tYWNoaW5lPWMzNC1jb252ZXgKKwkJb3M9LWJzZAorCQk7OworCWNvbnZleC1jMzgpCisJCWJhc2ljX21hY2hpbmU9YzM4LWNvbnZleAorCQlvcz0tYnNkCisJCTs7CisJY3JheSB8IGo5MCkKKwkJYmFzaWNfbWFjaGluZT1qOTAtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisJY3JheW52KQorCQliYXNpY19tYWNoaW5lPWNyYXludi1jcmF5CisJCW9zPS11bmljb3NtcAorCQk7OworCWNyMTZjKQorCQliYXNpY19tYWNoaW5lPWNyMTZjLXVua25vd24KKwkJb3M9LWVsZgorCQk7OworCWNyZHMgfCB1bm9zKQorCQliYXNpY19tYWNoaW5lPW02OGstY3JkcworCQk7OworCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZzKikKKwkJYmFzaWNfbWFjaGluZT1jcmlzdjMyLWF4aXMKKwkJOzsKKwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQorCQliYXNpY19tYWNoaW5lPWNyaXMtYXhpcworCQk7OworCWNyeCkKKwkJYmFzaWNfbWFjaGluZT1jcngtdW5rbm93bgorCQlvcz0tZWxmCisJCTs7CisJZGEzMCB8IGRhMzAtKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWRhMzAKKwkJOzsKKwlkZWNzdGF0aW9uIHwgZGVjc3RhdGlvbi0zMTAwIHwgcG1heCB8IHBtYXgtKiB8IHBtaW4gfCBkZWMzMTAwIHwgZGVjc3RhdG4pCisJCWJhc2ljX21hY2hpbmU9bWlwcy1kZWMKKwkJOzsKKwlkZWNzeXN0ZW0xMCogfCBkZWMxMCopCisJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisJCW9zPS10b3BzMTAKKwkJOzsKKwlkZWNzeXN0ZW0yMCogfCBkZWMyMCopCisJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisJCW9zPS10b3BzMjAKKwkJOzsKKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAorCSAgICAgIHwgMzMwMC1tb3Rvcm9sYSB8IGRlbHRhLW1vdG9yb2xhKQorCQliYXNpY19tYWNoaW5lPW02OGstbW90b3JvbGEKKwkJOzsKKwlkZWx0YTg4KQorCQliYXNpY19tYWNoaW5lPW04OGstbW90b3JvbGEKKwkJb3M9LXN5c3YzCisJCTs7CisJZGpncHApCisJCWJhc2ljX21hY2hpbmU9aTU4Ni1wYworCQlvcz0tbXNkb3NkamdwcAorCQk7OworCWRweDIwIHwgZHB4MjAtKikKKwkJYmFzaWNfbWFjaGluZT1yczYwMDAtYnVsbAorCQlvcz0tYm9zeAorCQk7OworCWRweDIqIHwgZHB4MiotYnVsbCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWJ1bGwKKwkJb3M9LXN5c3YzCisJCTs7CisJZWJtb24yOWspCisJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKwkJb3M9LWVibW9uCisJCTs7CisJZWx4c2kpCisJCWJhc2ljX21hY2hpbmU9ZWx4c2ktZWx4c2kKKwkJb3M9LWJzZAorCQk7OworCWVuY29yZSB8IHVtYXggfCBtbWF4KQorCQliYXNpY19tYWNoaW5lPW5zMzJrLWVuY29yZQorCQk7OworCWVzMTgwMCB8IE9TRTY4ayB8IG9zZTY4ayB8IG9zZSB8IE9TRSkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWVyaWNzc29uCisJCW9zPS1vc2UKKwkJOzsKKwlmeDI4MDApCisJCWJhc2ljX21hY2hpbmU9aTg2MC1hbGxpYW50CisJCTs7CisJZ2VuaXgpCisJCWJhc2ljX21hY2hpbmU9bnMzMmstbnMKKwkJOzsKKwlnbWljcm8pCisJCWJhc2ljX21hY2hpbmU9dHJvbi1nbWljcm8KKwkJb3M9LXN5c3YKKwkJOzsKKwlnbzMyKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LWdvMzIKKwkJOzsKKwloMzA1MHIqIHwgaGl1eCopCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCisJCW9zPS1oaXV4d2UyCisJCTs7CisJaDgzMDBobXMpCisJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQorCQlvcz0taG1zCisJCTs7CisJaDgzMDB4cmF5KQorCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKKwkJb3M9LXhyYXkKKwkJOzsKKwloODUwMGhtcykKKwkJYmFzaWNfbWFjaGluZT1oODUwMC1oaXRhY2hpCisJCW9zPS1obXMKKwkJOzsKKwloYXJyaXMpCisJCWJhc2ljX21hY2hpbmU9bTg4ay1oYXJyaXMKKwkJb3M9LXN5c3YzCisJCTs7CisJaHAzMDAtKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisJCTs7CisJaHAzMDBic2QpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorCQlvcz0tYnNkCisJCTs7CisJaHAzMDBocHV4KQorCQliYXNpY19tYWNoaW5lPW02OGstaHAKKwkJb3M9LWhwdXgKKwkJOzsKKwlocDNrOVswLTldWzAtOV0gfCBocDlbMC05XVswLTldKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjAtaHAKKwkJOzsKKwlocDlrMlswLTldWzAtOV0gfCBocDlrMzFbMC05XSkKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtaHAKKwkJOzsKKwlocDlrM1syLTldWzAtOV0pCisJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorCQk7OworCWhwOWs2WzAtOV1bMC05XSB8IGhwNlswLTldWzAtOV0pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAorCQk7OworCWhwOWs3WzAtNzldWzAtOV0gfCBocDdbMC03OV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCTs7CisJaHA5azc4WzAtOV0gfCBocDc4WzAtOV0pCisJCSMgRklYTUU6IHJlYWxseSBocHBhMi4wLWhwCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorCQk7OworCWhwOWs4WzY3XTEgfCBocDhbNjddMSB8IGhwOWs4MFsyNF0gfCBocDgwWzI0XSB8IGhwOWs4Wzc4XTkgfCBocDhbNzhdOSB8IGhwOWs4OTMgfCBocDg5MykKKwkJIyBGSVhNRTogcmVhbGx5IGhwcGEyLjAtaHAKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCTs7CisJaHA5azhbMC05XVsxMzY3OV0gfCBocDhbMC05XVsxMzY3OV0pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorCQk7OworCWhwOWs4WzAtOV1bMC05XSB8IGhwOFswLTldWzAtOV0pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAorCQk7OworCWhwcGEtbmV4dCkKKwkJb3M9LW5leHRzdGVwMworCQk7OworCWhwcGFvc2YpCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorCQlvcz0tb3NmCisJCTs7CisJaHBwcm8pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAorCQlvcz0tcHJvZWxmCisJCTs7CisJaTM3MC1pYm0qIHwgaWJtKikKKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQorCQk7OworIyBJJ20gbm90IHN1cmUgd2hhdCAiU3lzdjMyIiBtZWFucy4gIFNob3VsZCB0aGlzIGJlIHN5c3YzLjI/CisJaSo4NnYzMikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisJCW9zPS1zeXN2MzIKKwkJOzsKKwlpKjg2djQqKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKwkJb3M9LXN5c3Y0CisJCTs7CisJaSo4NnYpCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorCQlvcz0tc3lzdgorCQk7OworCWkqODZzb2wyKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKwkJb3M9LXNvbGFyaXMyCisJCTs7CisJaTM4Nm1hY2gpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1tYWNoCisJCW9zPS1tYWNoCisJCTs7CisJaTM4Ni12c3RhIHwgdnN0YSkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKwkJb3M9LXZzdGEKKwkJOzsKKwlpcmlzIHwgaXJpczRkKQorCQliYXNpY19tYWNoaW5lPW1pcHMtc2dpCisJCWNhc2UgJG9zIGluCisJCSAgICAtaXJpeCopCisJCQk7OworCQkgICAgKikKKwkJCW9zPS1pcml4NAorCQkJOzsKKwkJZXNhYworCQk7OworCWlzaTY4IHwgaXNpKQorCQliYXNpY19tYWNoaW5lPW02OGstaXNpCisJCW9zPS1zeXN2CisJCTs7CisJbTg4ay1vbXJvbiopCisJCWJhc2ljX21hY2hpbmU9bTg4ay1vbXJvbgorCQk7OworCW1hZ251bSB8IG0zMjMwKQorCQliYXNpY19tYWNoaW5lPW1pcHMtbWlwcworCQlvcz0tc3lzdgorCQk7OworCW1lcmxpbikKKwkJYmFzaWNfbWFjaGluZT1uczMyay11dGVrCisJCW9zPS1zeXN2CisJCTs7CisJbWluZ3czMikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisJCW9zPS1taW5ndzMyCisJCTs7CisJbWluaWZyYW1lKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1jb252ZXJnZW50CisJCTs7CisJKm1pbnQgfCAtbWludFswLTldKiB8ICpNaU5UIHwgKk1pTlRbMC05XSopCisJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQorCQlvcz0tbWludAorCQk7OworCW1pcHMzKi0qKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYAorCQk7OworCW1pcHMzKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AtdW5rbm93bgorCQk7OworCW1vbml0b3IpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKKwkJb3M9LWNvZmYKKwkJOzsKKwltb3JwaG9zKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgorCQlvcz0tbW9ycGhvcworCQk7OworCW1zZG9zKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LW1zZG9zCisJCTs7CisJbXZzKQorCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCisJCW9zPS1tdnMKKwkJOzsKKwluY3IzMDAwKQorCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCisJCW9zPS1zeXN2NAorCQk7OworCW5ldGJzZDM4NikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKwkJb3M9LW5ldGJzZAorCQk7OworCW5ldHdpbmRlcikKKwkJYmFzaWNfbWFjaGluZT1hcm12NGwtcmViZWwKKwkJb3M9LWxpbnV4CisJCTs7CisJbmV3cyB8IG5ld3M3MDAgfCBuZXdzODAwIHwgbmV3czkwMCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXNvbnkKKwkJb3M9LW5ld3NvcworCQk7OworCW5ld3MxMDAwKQorCQliYXNpY19tYWNoaW5lPW02ODAzMC1zb255CisJCW9zPS1uZXdzb3MKKwkJOzsKKwluZXdzLTM2MDAgfCByaXNjLW5ld3MpCisJCWJhc2ljX21hY2hpbmU9bWlwcy1zb255CisJCW9zPS1uZXdzb3MKKwkJOzsKKwluZWN2NzApCisJCWJhc2ljX21hY2hpbmU9djcwLW5lYworCQlvcz0tc3lzdgorCQk7OworCW5leHQgfCBtKi1uZXh0ICkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5leHQKKwkJY2FzZSAkb3MgaW4KKwkJICAgIC1uZXh0c3RlcCogKQorCQkJOzsKKwkJICAgIC1uczIqKQorCQkgICAgICBvcz0tbmV4dHN0ZXAyCisJCQk7OworCQkgICAgKikKKwkJICAgICAgb3M9LW5leHRzdGVwMworCQkJOzsKKwkJZXNhYworCQk7OworCW5oMzAwMCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhhcnJpcworCQlvcz0tY3h1eAorCQk7OworCW5oWzQ1XTAwMCkKKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcworCQlvcz0tY3h1eAorCQk7OworCW5pbmR5OTYwKQorCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKKwkJb3M9LW5pbmR5CisJCTs7CisJbW9uOTYwKQorCQliYXNpY19tYWNoaW5lPWk5NjAtaW50ZWwKKwkJb3M9LW1vbjk2MAorCQk7OworCW5vbnN0b3B1eCkKKwkJYmFzaWNfbWFjaGluZT1taXBzLWNvbXBhcQorCQlvcz0tbm9uc3RvcHV4CisJCTs7CisJbnAxKQorCQliYXNpY19tYWNoaW5lPW5wMS1nb3VsZAorCQk7OworCW5zci10YW5kZW0pCisJCWJhc2ljX21hY2hpbmU9bnNyLXRhbmRlbQorCQk7OworCW9wNTBuLSogfCBvcDYwYy0qKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisJCW9zPS1wcm9lbGYKKwkJOzsKKwlvcjMyIHwgb3IzMi0qKQorCQliYXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgorCQlvcz0tY29mZgorCQk7OworCW9zNDAwKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCisJCW9zPS1vczQwMAorCQk7OworCU9TRTY4MDAwIHwgb3NlNjgwMDApCisJCWJhc2ljX21hY2hpbmU9bTY4MDAwLWVyaWNzc29uCisJCW9zPS1vc2UKKwkJOzsKKwlvczY4aykKKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5vbmUKKwkJb3M9LW9zNjhrCisJCTs7CisJcGEtaGl0YWNoaSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKKwkJb3M9LWhpdXh3ZTIKKwkJOzsKKwlwYXJhZ29uKQorCQliYXNpY19tYWNoaW5lPWk4NjAtaW50ZWwKKwkJb3M9LW9zZgorCQk7OworCXBiZCkKKwkJYmFzaWNfbWFjaGluZT1zcGFyYy10dGkKKwkJOzsKKwlwYmIpCisJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKKwkJOzsKKwlwYzUzMiB8IHBjNTMyLSopCisJCWJhc2ljX21hY2hpbmU9bnMzMmstcGM1MzIKKwkJOzsKKwlwZW50aXVtIHwgcDUgfCBrNSB8IGs2IHwgbmV4Z2VuIHwgdmlhYzMpCisJCWJhc2ljX21hY2hpbmU9aTU4Ni1wYworCQk7OworCXBlbnRpdW1wcm8gfCBwNiB8IDZ4ODYgfCBhdGhsb24gfCBhdGhsb25fKikKKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisJCTs7CisJcGVudGl1bWlpIHwgcGVudGl1bTIgfCBwZW50aXVtaWlpIHwgcGVudGl1bTMpCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworCQk7OworCXBlbnRpdW00KQorCQliYXNpY19tYWNoaW5lPWk3ODYtcGMKKwkJOzsKKwlwZW50aXVtLSogfCBwNS0qIHwgazUtKiB8IGs2LSogfCBuZXhnZW4tKiB8IHZpYWMzLSopCisJCWJhc2ljX21hY2hpbmU9aTU4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBlbnRpdW1wcm8tKiB8IHA2LSogfCA2eDg2LSogfCBhdGhsb24tKikKKwkJYmFzaWNfbWFjaGluZT1pNjg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcGVudGl1bWlpLSogfCBwZW50aXVtMi0qIHwgcGVudGl1bWlpaS0qIHwgcGVudGl1bTMtKikKKwkJYmFzaWNfbWFjaGluZT1pNjg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcGVudGl1bTQtKikKKwkJYmFzaWNfbWFjaGluZT1pNzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcG4pCisJCWJhc2ljX21hY2hpbmU9cG4tZ291bGQKKwkJOzsKKwlwb3dlcikJYmFzaWNfbWFjaGluZT1wb3dlci1pYm0KKwkJOzsKKwlwcGMpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCisJCTs7CisJcHBjLSopCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBwY2xlIHwgcG93ZXJwY2xpdHRsZSB8IHBwYy1sZSB8IHBvd2VycGMtbGl0dGxlKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS11bmtub3duCisJCTs7CisJcHBjbGUtKiB8IHBvd2VycGNsaXR0bGUtKikKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwcGM2NCkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjQtdW5rbm93bgorCQk7OworCXBwYzY0LSopIGJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcHBjNjRsZSB8IHBvd2VycGM2NGxpdHRsZSB8IHBwYzY0LWxlIHwgcG93ZXJwYzY0LWxpdHRsZSkKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS11bmtub3duCisJCTs7CisJcHBjNjRsZS0qIHwgcG93ZXJwYzY0bGl0dGxlLSopCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwczIpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1pYm0KKwkJOzsKKwlwdzMyKQorCQliYXNpY19tYWNoaW5lPWk1ODYtdW5rbm93bgorCQlvcz0tcHczMgorCQk7OworCXJvbTY4aykKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXJvbTY4aworCQlvcz0tY29mZgorCQk7OworCXJtWzQ2XTAwKQorCQliYXNpY19tYWNoaW5lPW1pcHMtc2llbWVucworCQk7OworCXJ0cGMgfCBydHBjLSopCisJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KKwkJOzsKKwlzMzkwIHwgczM5MC0qKQorCQliYXNpY19tYWNoaW5lPXMzOTAtaWJtCisJCTs7CisJczM5MHggfCBzMzkweC0qKQorCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQorCQk7OworCXNhMjkyMDApCisJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKwkJb3M9LXVkaQorCQk7OworCXNiMSkKKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgorCQk7OworCXNiMWVsKQorCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KKwkJOzsKKwlzZWkpCisJCWJhc2ljX21hY2hpbmU9bWlwcy1zZWkKKwkJb3M9LXNlaXV4CisJCTs7CisJc2VxdWVudCkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKKwkJOzsKKwlzaCkKKwkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hpCisJCW9zPS1obXMKKwkJOzsKKwlzaDY0KQorCQliYXNpY19tYWNoaW5lPXNoNjQtdW5rbm93bgorCQk7OworCXNwYXJjbGl0ZS13cnMgfCBzaW1zby13cnMpCisJCWJhc2ljX21hY2hpbmU9c3BhcmNsaXRlLXdycworCQlvcz0tdnh3b3JrcworCQk7OworCXNwczcpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisJCW9zPS1zeXN2MgorCQk7OworCXNwdXIpCisJCWJhc2ljX21hY2hpbmU9c3B1ci11bmtub3duCisJCTs7CisJc3QyMDAwKQorCQliYXNpY19tYWNoaW5lPW02OGstdGFuZGVtCisJCTs7CisJc3RyYXR1cykKKwkJYmFzaWNfbWFjaGluZT1pODYwLXN0cmF0dXMKKwkJb3M9LXN5c3Y0CisJCTs7CisJc3VuMikKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisJCTs7CisJc3VuMm9zMykKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisJCW9zPS1zdW5vczMKKwkJOzsKKwlzdW4yb3M0KQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KKwkJb3M9LXN1bm9zNAorCQk7OworCXN1bjNvczMpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKwkJb3M9LXN1bm9zMworCQk7OworCXN1bjNvczQpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKwkJb3M9LXN1bm9zNAorCQk7OworCXN1bjRvczMpCisJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisJCW9zPS1zdW5vczMKKwkJOzsKKwlzdW40b3M0KQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQlvcz0tc3Vub3M0CisJCTs7CisJc3VuNHNvbDIpCisJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisJCW9zPS1zb2xhcmlzMgorCQk7OworCXN1bjMgfCBzdW4zLSopCisJCWJhc2ljX21hY2hpbmU9bTY4ay1zdW4KKwkJOzsKKwlzdW40KQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQk7OworCXN1bjM4NiB8IHN1bjM4NmkgfCByb2FkcnVubmVyKQorCQliYXNpY19tYWNoaW5lPWkzODYtc3VuCisJCTs7CisJc3YxKQorCQliYXNpY19tYWNoaW5lPXN2MS1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwlzeW1tZXRyeSkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXNlcXVlbnQKKwkJb3M9LWR5bml4CisJCTs7CisJdDNlKQorCQliYXNpY19tYWNoaW5lPWFscGhhZXY1LWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworCXQ5MCkKKwkJYmFzaWNfbWFjaGluZT10OTAtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisJdGljNTR4IHwgYzU0eCopCisJCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25vd24KKwkJb3M9LWNvZmYKKwkJOzsKKwl0aWM1NXggfCBjNTV4KikKKwkJYmFzaWNfbWFjaGluZT10aWM1NXgtdW5rbm93bgorCQlvcz0tY29mZgorCQk7OworCXRpYzZ4IHwgYzZ4KikKKwkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtub3duCisJCW9zPS1jb2ZmCisJCTs7CisJdHgzOSkKKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOS11bmtub3duCisJCTs7CisJdHgzOWVsKQorCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5ZWwtdW5rbm93bgorCQk7OworCXRvYWQxKQorCQliYXNpY19tYWNoaW5lPXBkcDEwLXhrbAorCQlvcz0tdG9wczIwCisJCTs7CisJdG93ZXIgfCB0b3dlci0zMikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5jcgorCQk7OworCXRwZikKKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKwkJb3M9LXRwZgorCQk7OworCXVkaTI5aykKKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorCQlvcz0tdWRpCisJCTs7CisJdWx0cmEzKQorCQliYXNpY19tYWNoaW5lPWEyOWstbnl1CisJCW9zPS1zeW0xCisJCTs7CisJdjgxMCB8IG5lY3Y4MTApCisJCWJhc2ljX21hY2hpbmU9djgxMC1uZWMKKwkJb3M9LW5vbmUKKwkJOzsKKwl2YXh2KQorCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKwkJb3M9LXN5c3YKKwkJOzsKKwl2bXMpCisJCWJhc2ljX21hY2hpbmU9dmF4LWRlYworCQlvcz0tdm1zCisJCTs7CisJdnBwKnx2eHx2eC0qKQorCQliYXNpY19tYWNoaW5lPWYzMDEtZnVqaXRzdQorCQk7OworCXZ4d29ya3M5NjApCisJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKKwkJb3M9LXZ4d29ya3MKKwkJOzsKKwl2eHdvcmtzNjgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay13cnMKKwkJb3M9LXZ4d29ya3MKKwkJOzsKKwl2eHdvcmtzMjlrKQorCQliYXNpY19tYWNoaW5lPWEyOWstd3JzCisJCW9zPS12eHdvcmtzCisJCTs7CisJdzY1KikKKwkJYmFzaWNfbWFjaGluZT13NjUtd2RjCisJCW9zPS1ub25lCisJCTs7CisJdzg5ay0qKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAorCQlvcz0tcHJvZWxmCisJCTs7CisJeGJveCkKKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisJCW9zPS1taW5ndzMyCisJCTs7CisJeHBzIHwgeHBzMTAwKQorCQliYXNpY19tYWNoaW5lPXhwczEwMC1ob25leXdlbGwKKwkJOzsKKwl5bXApCisJCWJhc2ljX21hY2hpbmU9eW1wLWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworCXo4ay0qLWNvZmYpCisJCWJhc2ljX21hY2hpbmU9ejhrLXVua25vd24KKwkJb3M9LXNpbQorCQk7OworCW5vbmUpCisJCWJhc2ljX21hY2hpbmU9bm9uZS1ub25lCisJCW9zPS1ub25lCisJCTs7CisKKyMgSGVyZSB3ZSBoYW5kbGUgdGhlIGRlZmF1bHQgbWFudWZhY3R1cmVyIG9mIGNlcnRhaW4gQ1BVIHR5cGVzLiAgSXQgaXMgaW4KKyMgc29tZSBjYXNlcyB0aGUgb25seSBtYW51ZmFjdHVyZXIsIGluIG90aGVycywgaXQgaXMgdGhlIG1vc3QgcG9wdWxhci4KKwl3ODlrKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAorCQk7OworCW9wNTBuKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisJCTs7CisJb3A2MGMpCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKwkJOzsKKwlyb21wKQorCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCisJCTs7CisJbW1peCkKKwkJYmFzaWNfbWFjaGluZT1tbWl4LWtudXRoCisJCTs7CisJcnM2MDAwKQorCQliYXNpY19tYWNoaW5lPXJzNjAwMC1pYm0KKwkJOzsKKwl2YXgpCisJCWJhc2ljX21hY2hpbmU9dmF4LWRlYworCQk7OworCXBkcDEwKQorCQkjIHRoZXJlIGFyZSBtYW55IGNsb25lcywgc28gREVDIGlzIG5vdCBhIHNhZmUgYmV0CisJCWJhc2ljX21hY2hpbmU9cGRwMTAtdW5rbm93bgorCQk7OworCXBkcDExKQorCQliYXNpY19tYWNoaW5lPXBkcDExLWRlYworCQk7OworCXdlMzJrKQorCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAorCQk7OworCXNoMyB8IHNoNCB8IHNoWzM0XWViIHwgc2hbMTIzNF1sZSB8IHNoWzIzXWVsZSkKKwkJYmFzaWNfbWFjaGluZT1zaC11bmtub3duCisJCTs7CisJc2g2NCkKKwkJYmFzaWNfbWFjaGluZT1zaDY0LXVua25vd24KKwkJOzsKKwlzcGFyYyB8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3BhcmN2OWIpCisJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCisJCTs7CisJY3lkcmEpCisJCWJhc2ljX21hY2hpbmU9Y3lkcmEtY3lkcm9tZQorCQk7OworCW9yaW9uKQorCQliYXNpY19tYWNoaW5lPW9yaW9uLWhpZ2hsZXZlbAorCQk7OworCW9yaW9uMTA1KQorCQliYXNpY19tYWNoaW5lPWNsaXBwZXItaGlnaGxldmVsCisJCTs7CisJbWFjIHwgbXB3IHwgbWFjLW1wdykKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCisJCTs7CisJcG1hYyB8IHBtYWMtbXB3KQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtYXBwbGUKKwkJOzsKKwkqLXVua25vd24pCisJCSMgTWFrZSBzdXJlIHRvIG1hdGNoIGFuIGFscmVhZHktY2Fub25pY2FsaXplZCBtYWNoaW5lIG5hbWUuCisJCTs7CisJKikKKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBtYWNoaW5lIFxgJGJhc2ljX21hY2hpbmVcJyBub3QgcmVjb2duaXplZCAxPiYyCisJCWV4aXQgMQorCQk7OworZXNhYworCisjIEhlcmUgd2UgY2Fub25pY2FsaXplIGNlcnRhaW4gYWxpYXNlcyBmb3IgbWFudWZhY3R1cmVycy4KK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKwkqLWRpZ2l0YWwqKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2RpZ2l0YWwuKi9kZWMvJ2AKKwkJOzsKKwkqLWNvbW1vZG9yZSopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvY29tbW9kb3JlLiovY2JtLydgCisJCTs7CisJKikKKwkJOzsKK2VzYWMKKworIyBEZWNvZGUgbWFudWZhY3R1cmVyLXNwZWNpZmljIGFsaWFzZXMgZm9yIGNlcnRhaW4gb3BlcmF0aW5nIHN5c3RlbXMuCisKK2lmIFsgeCIkb3MiICE9IHgiIiBdCit0aGVuCitjYXNlICRvcyBpbgorICAgICAgICAjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcworICAgICAgICAjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5cGVzLgorCSMgLXNvbGFyaXMqIGlzIGEgYmFzaWMgc3lzdGVtIHR5cGUsIHdpdGggdGhpcyBvbmUgZXhjZXB0aW9uLgorCS1zb2xhcmlzMSB8IC1zb2xhcmlzMS4qKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c29sYXJpczF8c3Vub3M0fCdgCisJCTs7CisJLXNvbGFyaXMpCisJCW9zPS1zb2xhcmlzMgorCQk7OworCS1zdnI0KikKKwkJb3M9LXN5c3Y0CisJCTs7CisJLXVuaXh3YXJlKikKKwkJb3M9LXN5c3Y0LjJ1dworCQk7OworCS1nbnUvbGludXgqKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8Z251L2xpbnV4fGxpbnV4LWdudXwnYAorCQk7OworCSMgRmlyc3QgYWNjZXB0IHRoZSBiYXNpYyBzeXN0ZW0gdHlwZXMuCisJIyBUaGUgcG9ydGFibGUgc3lzdGVtcyBjb21lcyBmaXJzdC4KKwkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgorCSMgLXN5c3YqIGlzIG5vdCBoZXJlIGJlY2F1c2UgaXQgY29tZXMgbGF0ZXIsIGFmdGVyIHN5c3ZyNC4KKwktZ251KiB8IC1ic2QqIHwgLW1hY2gqIHwgLW1pbml4KiB8IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4KiBcCisJICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLXNvbGFyaXMqIHwgLXN5bSogXAorCSAgICAgIHwgLWFtaWdhb3MqIHwgLWFtaWdhZG9zKiB8IC1tc2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAorCSAgICAgIHwgLWFvcyogXAorCSAgICAgIHwgLW5pbmR5KiB8IC12eHNpbSogfCAtdnh3b3JrcyogfCAtZWJtb24qIHwgLWhtcyogfCAtbXZzKiBcCisJICAgICAgfCAtY2xpeCogfCAtcmlzY29zKiB8IC11bmlwbHVzKiB8IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCisJICAgICAgfCAtaGl1eCogfCAtMzg2YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwgLW5ldGJzZCogfCAtb3BlbmJzZCogXAorCSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8IC1mcmVlYnNkKiB8IC1yaXNjaXgqIHwgLWx5bnhvcyogXAorCSAgICAgIHwgLWJvc3gqIHwgLW5leHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwKKwkgICAgICB8IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBcCisJICAgICAgfCAtdWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCisJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogXAorCSAgICAgIHwgLWN5Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwKKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LXVjbGliYyogfCAtdXhwdiogfCAtYmVvcyogfCAtbXBlaXgqIHwgLXVkayogXAorCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwgLWRhcndpbiogfCAtb3BlbmVkKiBcCisJICAgICAgfCAtb3BlbnN0ZXAqIHwgLW9za2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCisJICAgICAgfCAtc3Rvcm0tY2hhb3MqIHwgLXRvcHMxMCogfCAtdGVuZXgqIHwgLXRvcHMyMCogfCAtaXRzKiBcCisJICAgICAgfCAtb3MyKiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAorCSAgICAgIHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsqIHwgLXJ0bWstbm92YSogfCAtd2luZGlzcyogXAorCSAgICAgIHwgLXBvd2VybWF4KiB8IC1kbml4KiB8IC1ueDYgfCAtbng3IHwgLXNlaSogfCAtZHJhZ29uZmx5KikKKwkjIFJlbWVtYmVyLCBlYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCisJCTs7CisJLXFueCopCisJCWNhc2UgJGJhc2ljX21hY2hpbmUgaW4KKwkJICAgIHg4Ni0qIHwgaSo4Ni0qKQorCQkJOzsKKwkJICAgICopCisJCQlvcz0tbnRvJG9zCisJCQk7OworCQllc2FjCisJCTs7CisJLW50by1xbngqKQorCQk7OworCS1udG8qKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bnRvfG50by1xbnh8J2AKKwkJOzsKKwktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBcCisJICAgICAgfCAtd2luZG93cyogfCAtb3N4IHwgLWFidWcgfCAtbmV0d2FyZSogfCAtb3M5KiB8IC1iZW9zKiBcCisJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1tb245NjAqIHwgLWxuZXdzKikKKwkJOzsKKwktbWFjKikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG1hY3xtYWNvc3wnYAorCQk7OworCS1saW51eC1kaWV0bGliYykKKwkJb3M9LWxpbnV4LWRpZXRsaWJjCisJCTs7CisJLWxpbnV4KikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGxpbnV4fGxpbnV4LWdudXwnYAorCQk7OworCS1zdW5vczUqKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdgCisJCTs7CisJLXN1bm9zNiopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKKwkJOzsKKwktb3BlbmVkKikKKwkJb3M9LW9wZW5lZGl0aW9uCisJCTs7CisgICAgICAgIC1vczQwMCopCisJCW9zPS1vczQwMAorCQk7OworCS13aW5jZSopCisJCW9zPS13aW5jZQorCQk7OworCS1vc2Zyb3NlKikKKwkJb3M9LW9zZnJvc2UKKwkJOzsKKwktb3NmKikKKwkJb3M9LW9zZgorCQk7OworCS11dGVrKikKKwkJb3M9LWJzZAorCQk7OworCS1keW5peCopCisJCW9zPS1ic2QKKwkJOzsKKwktYWNpcyopCisJCW9zPS1hb3MKKwkJOzsKKwktYXRoZW9zKikKKwkJb3M9LWF0aGVvcworCQk7OworCS1zeWxsYWJsZSopCisJCW9zPS1zeWxsYWJsZQorCQk7OworCS0zODZic2QpCisJCW9zPS1ic2QKKwkJOzsKKwktY3RpeCogfCAtdXRzKikKKwkJb3M9LXN5c3YKKwkJOzsKKwktbm92YSopCisJCW9zPS1ydG1rLW5vdmEKKwkJOzsKKwktbnMyICkKKwkJb3M9LW5leHRzdGVwMgorCQk7OworCS1uc2sqKQorCQlvcz0tbnNrCisJCTs7CisJIyBQcmVzZXJ2ZSB0aGUgdmVyc2lvbiBudW1iZXIgb2Ygc2luaXg1LgorCS1zaW5peDUuKikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNpbml4fHN5c3Z8J2AKKwkJOzsKKwktc2luaXgqKQorCQlvcz0tc3lzdjQKKwkJOzsKKyAgICAgICAgLXRwZiopCisJCW9zPS10cGYKKwkJOzsKKwktdHJpdG9uKikKKwkJb3M9LXN5c3YzCisJCTs7CisJLW9zcyopCisJCW9zPS1zeXN2MworCQk7OworCS1zdnI0KQorCQlvcz0tc3lzdjQKKwkJOzsKKwktc3ZyMykKKwkJb3M9LXN5c3YzCisJCTs7CisJLXN5c3ZyNCkKKwkJb3M9LXN5c3Y0CisJCTs7CisJIyBUaGlzIG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgorCS1zeXN2KikKKwkJOzsKKwktb3NlKikKKwkJb3M9LW9zZQorCQk7OworCS1lczE4MDAqKQorCQlvcz0tb3NlCisJCTs7CisJLXhlbml4KQorCQlvcz0teGVuaXgKKwkJOzsKKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorCQlvcz0tbWludAorCQk7OworCS1hcm9zKikKKwkJb3M9LWFyb3MKKwkJOzsKKwkta2FvcyopCisJCW9zPS1rYW9zCisJCTs7CisJLXp2bW9lKQorCQlvcz0tenZtb2UKKwkJOzsKKwktbm9uZSkKKwkJOzsKKwkqKQorCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9mICRvcy4KKwkJb3M9YGVjaG8gJG9zIHwgc2VkICdzL1teLV0qLS8vJ2AKKwkJZWNobyBJbnZhbGlkIGNvbmZpZ3VyYXRpb24gXGAkMVwnOiBzeXN0ZW0gXGAkb3NcJyBub3QgcmVjb2duaXplZCAxPiYyCisJCWV4aXQgMQorCQk7OworZXNhYworZWxzZQorCisjIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgY29tZSB3aXRoIHZhcmlvdXMgbWFjaGluZXMuCisjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1cnJlbnRseSBzaGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgorIyBtYWNoaW5lIG9yIHB1dCBhbm90aGVyIHdheSwgdGhlIG1vc3QgcG9wdWxhciBvcyBwcm92aWRlZCB3aXRoIHRoZSBtYWNoaW5lLgorCisjIE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVSIiBoZXJlIChzYXksCisjICItc3VuIiksIHRoZW4geW91IGhhdmUgdG8gdGVsbCB0aGUgY2FzZSBzdGF0ZW1lbnQgdXAgdG93YXJkcyB0aGUgdG9wCisjIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZyBzeXN0ZW0uICBPdGhlcndpc2UsIGNvZGUgYWJvdmUKKyMgd2lsbCBzaWduYWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZworIyBzeXN0ZW0sIGFuZCB3ZSdsbCBuZXZlciBnZXQgdG8gdGhpcyBwb2ludC4KKworY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorCSotYWNvcm4pCisJCW9zPS1yaXNjaXgxLjIKKwkJOzsKKwlhcm0qLXJlYmVsKQorCQlvcz0tbGludXgKKwkJOzsKKwlhcm0qLXNlbWkpCisJCW9zPS1hb3V0CisJCTs7CisgICAgYzR4LSogfCB0aWM0eC0qKQorICAgICAgICBvcz0tY29mZgorICAgICAgICA7OworCSMgVGhpcyBtdXN0IGNvbWUgYmVmb3JlIHRoZSAqLWRlYyBlbnRyeS4KKwlwZHAxMC0qKQorCQlvcz0tdG9wczIwCisJCTs7CisJcGRwMTEtKikKKwkJb3M9LW5vbmUKKwkJOzsKKwkqLWRlYyB8IHZheC0qKQorCQlvcz0tdWx0cml4NC4yCisJCTs7CisJbTY4Ki1hcG9sbG8pCisJCW9zPS1kb21haW4KKwkJOzsKKwlpMzg2LXN1bikKKwkJb3M9LXN1bm9zNC4wLjIKKwkJOzsKKwltNjgwMDAtc3VuKQorCQlvcz0tc3Vub3MzCisJCSMgVGhpcyBhbHNvIGV4aXN0cyBpbiB0aGUgY29uZmlndXJlIHByb2dyYW0sIGJ1dCB3YXMgbm90IHRoZQorCQkjIGRlZmF1bHQuCisJCSMgb3M9LXN1bm9zNAorCQk7OworCW02OCotY2lzY28pCisJCW9zPS1hb3V0CisJCTs7CisJbWlwcyotY2lzY28pCisJCW9zPS1lbGYKKwkJOzsKKwltaXBzKi0qKQorCQlvcz0tZWxmCisJCTs7CisJb3IzMi0qKQorCQlvcz0tY29mZgorCQk7OworCSotdHRpKQkjIG11c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUgd3Jvbmcgb3MuCisJCW9zPS1zeXN2MworCQk7OworCXNwYXJjLSogfCAqLXN1bikKKwkJb3M9LXN1bm9zNC4xLjEKKwkJOzsKKwkqLWJlKQorCQlvcz0tYmVvcworCQk7OworCSotaWJtKQorCQlvcz0tYWl4CisJCTs7CisgICAgCSota251dGgpCisJCW9zPS1tbWl4d2FyZQorCQk7OworCSotd2VjKQorCQlvcz0tcHJvZWxmCisJCTs7CisJKi13aW5ib25kKQorCQlvcz0tcHJvZWxmCisJCTs7CisJKi1va2kpCisJCW9zPS1wcm9lbGYKKwkJOzsKKwkqLWhwKQorCQlvcz0taHB1eAorCQk7OworCSotaGl0YWNoaSkKKwkJb3M9LWhpdXgKKwkJOzsKKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCisJCW9zPS1zeXN2CisJCTs7CisJKi1jYm0pCisJCW9zPS1hbWlnYW9zCisJCTs7CisJKi1kZykKKwkJb3M9LWRndXgKKwkJOzsKKwkqLWRvbHBoaW4pCisJCW9zPS1zeXN2MworCQk7OworCW02OGstY2N1cikKKwkJb3M9LXJ0dQorCQk7OworCW04OGstb21yb24qKQorCQlvcz0tbHVuYQorCQk7OworCSotbmV4dCApCisJCW9zPS1uZXh0c3RlcAorCQk7OworCSotc2VxdWVudCkKKwkJb3M9LXB0eAorCQk7OworCSotY3JkcykKKwkJb3M9LXVub3MKKwkJOzsKKwkqLW5zKQorCQlvcz0tZ2VuaXgKKwkJOzsKKwlpMzcwLSopCisJCW9zPS1tdnMKKwkJOzsKKwkqLW5leHQpCisJCW9zPS1uZXh0c3RlcDMKKwkJOzsKKwkqLWdvdWxkKQorCQlvcz0tc3lzdgorCQk7OworCSotaGlnaGxldmVsKQorCQlvcz0tYnNkCisJCTs7CisJKi1lbmNvcmUpCisJCW9zPS1ic2QKKwkJOzsKKwkqLXNnaSkKKwkJb3M9LWlyaXgKKwkJOzsKKwkqLXNpZW1lbnMpCisJCW9zPS1zeXN2NAorCQk7OworCSotbWFzc2NvbXApCisJCW9zPS1ydHUKKwkJOzsKKwlmMzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCisJCW9zPS11eHB2CisJCTs7CisJKi1yb202OGspCisJCW9zPS1jb2ZmCisJCTs7CisJKi0qYnVnKQorCQlvcz0tY29mZgorCQk7OworCSotYXBwbGUpCisJCW9zPS1tYWNvcworCQk7OworCSotYXRhcmkqKQorCQlvcz0tbWludAorCQk7OworCSopCisJCW9zPS1ub25lCisJCTs7Citlc2FjCitmaQorCisjIEhlcmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRoZQorIyBtYW51ZmFjdHVyZXIuICBXZSBwaWNrIHRoZSBsb2dpY2FsIG1hbnVmYWN0dXJlci4KK3ZlbmRvcj11bmtub3duCitjYXNlICRiYXNpY19tYWNoaW5lIGluCisJKi11bmtub3duKQorCQljYXNlICRvcyBpbgorCQkJLXJpc2NpeCopCisJCQkJdmVuZG9yPWFjb3JuCisJCQkJOzsKKwkJCS1zdW5vcyopCisJCQkJdmVuZG9yPXN1bgorCQkJCTs7CisJCQktYWl4KikKKwkJCQl2ZW5kb3I9aWJtCisJCQkJOzsKKwkJCS1iZW9zKikKKwkJCQl2ZW5kb3I9YmUKKwkJCQk7OworCQkJLWhwdXgqKQorCQkJCXZlbmRvcj1ocAorCQkJCTs7CisJCQktbXBlaXgqKQorCQkJCXZlbmRvcj1ocAorCQkJCTs7CisJCQktaGl1eCopCisJCQkJdmVuZG9yPWhpdGFjaGkKKwkJCQk7OworCQkJLXVub3MqKQorCQkJCXZlbmRvcj1jcmRzCisJCQkJOzsKKwkJCS1kZ3V4KikKKwkJCQl2ZW5kb3I9ZGcKKwkJCQk7OworCQkJLWx1bmEqKQorCQkJCXZlbmRvcj1vbXJvbgorCQkJCTs7CisJCQktZ2VuaXgqKQorCQkJCXZlbmRvcj1ucworCQkJCTs7CisJCQktbXZzKiB8IC1vcGVuZWQqKQorCQkJCXZlbmRvcj1pYm0KKwkJCQk7OworCQkJLW9zNDAwKikKKwkJCQl2ZW5kb3I9aWJtCisJCQkJOzsKKwkJCS1wdHgqKQorCQkJCXZlbmRvcj1zZXF1ZW50CisJCQkJOzsKKwkJCS10cGYqKQorCQkJCXZlbmRvcj1pYm0KKwkJCQk7OworCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKKwkJCQl2ZW5kb3I9d3JzCisJCQkJOzsKKwkJCS1hdXgqKQorCQkJCXZlbmRvcj1hcHBsZQorCQkJCTs7CisJCQktaG1zKikKKwkJCQl2ZW5kb3I9aGl0YWNoaQorCQkJCTs7CisJCQktbXB3KiB8IC1tYWNvcyopCisJCQkJdmVuZG9yPWFwcGxlCisJCQkJOzsKKwkJCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCisJCQkJdmVuZG9yPWF0YXJpCisJCQkJOzsKKwkJCS12b3MqKQorCQkJCXZlbmRvcj1zdHJhdHVzCisJCQkJOzsKKwkJZXNhYworCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICJzL3Vua25vd24vJHZlbmRvci8iYAorCQk7OworZXNhYworCitlY2hvICRiYXNpY19tYWNoaW5lJG9zCitleGl0IDAKKworIyBMb2NhbCB2YXJpYWJsZXM6CisjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKyMgdGltZS1zdGFtcC1zdGFydDogInRpbWVzdGFtcD0nIgorIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQiCisjIHRpbWUtc3RhbXAtZW5kOiAiJyIKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdkY2RmYjAKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWd1cmUKQEAgLTAsMCArMSw5NzMwIEBACisjISAvYmluL3NoCisjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCisjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSBmb3Igc3RyYWNlIDQuNS4xMi4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisKKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBlbXVsYXRlIHNoCisgIE5VTExDTUQ9OgorICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworZWxpZiB0ZXN0IC1uICIke0JBU0hfVkVSU0lPTitzZXR9IiAmJiAoc2V0IC1vIHBvc2l4KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgc2V0IC1vIHBvc2l4CitmaQorRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAorCisjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc191bnNldD11bnNldAorZWxzZQorICBhc191bnNldD1mYWxzZQorZmkKKworCisjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KKyRhc191bnNldCBFTlYgTUFJTCBNQUlMUEFUSAorUFMxPSckICcKK1BTMj0nPiAnCitQUzQ9JysgJworCisjIE5MUyBudWlzYW5jZXMuCitmb3IgYXNfdmFyIGluIFwKKyAgTEFORyBMQU5HVUFHRSBMQ19BRERSRVNTIExDX0FMTCBMQ19DT0xMQVRFIExDX0NUWVBFIExDX0lERU5USUZJQ0FUSU9OIFwKKyAgTENfTUVBU1VSRU1FTlQgTENfTUVTU0FHRVMgTENfTU9ORVRBUlkgTENfTkFNRSBMQ19OVU1FUklDIExDX1BBUEVSIFwKKyAgTENfVEVMRVBIT05FIExDX1RJTUUKK2RvCisgIGlmIChzZXQgK3g7IHRlc3QgLXogImAoZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyKSAyPiYxYCIpOyB0aGVuCisgICAgZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyCisgIGVsc2UKKyAgICAkYXNfdW5zZXQgJGFzX3ZhcgorICBmaQorZG9uZQorCisjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGFzX2V4cHI9ZXhwcgorZWxzZQorICBhc19leHByPWZhbHNlCitmaQorCitpZiAoYmFzZW5hbWUgLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLyAyPiYxYCIgPSAiWC8iOyB0aGVuCisgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCitlbHNlCisgIGFzX2Jhc2VuYW1lPWZhbHNlCitmaQorCisKKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KK2FzX21lPWAkYXNfYmFzZW5hbWUgIiQwIiB8fAorJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoL1wpJCcgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWC8iJDAiIHwKKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisKKworIyBQQVRIIG5lZWRzIENSLCBhbmQgTElORU5PIG5lZWRzIENSIGFuZCBQQVRILgorIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgorYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCithc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKK2FzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JworYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCisKKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgoraWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KKyAgZWNobyAiIyEgL2Jpbi9zaCIgPmNvbmYkJC5zaAorICBlY2hvICAiZXhpdCAwIiAgID4+Y29uZiQkLnNoCisgIGNobW9kICt4IGNvbmYkJC5zaAorICBpZiAoUEFUSD0iL25vbmV4aXN0ZW50Oy4iOyBjb25mJCQuc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgIFBBVEhfU0VQQVJBVE9SPSc7JworICBlbHNlCisgICAgUEFUSF9TRVBBUkFUT1I9OgorICBmaQorICBybSAtZiBjb25mJCQuc2gKK2ZpCisKKworICBhc19saW5lbm9fMT0kTElORU5PCisgIGFzX2xpbmVub18yPSRMSU5FTk8KKyAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAorICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKyAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICB8fCB7CisgICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIHBhdGggYXQgYWxsCisgICMgcmVsYXRpdmUgb3Igbm90LgorICBjYXNlICQwIGluCisgICAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OworICAgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgdGVzdCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKK2RvbmUKKworICAgICAgIDs7CisgIGVzYWMKKyAgIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJworICAjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKyAgaWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgorICAgIGFzX215c2VsZj0kMAorICBmaQorICBpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCisgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgcGF0aCIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyAgZmkKKyAgY2FzZSAkQ09ORklHX1NIRUxMIGluCisgICcnKQorICAgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFSQVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworCSBjYXNlICRhc19kaXIgaW4KKwkgLyopCisJICAgaWYgKCIkYXNfZGlyLyRhc19iYXNlIiAtYyAnCisgIGFzX2xpbmVub18xPSRMSU5FTk8KKyAgYXNfbGluZW5vXzI9JExJTkVOTworICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCisgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgorICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgJykgMj4vZGV2L251bGw7IHRoZW4KKwkgICAgICRhc191bnNldCBCQVNIX0VOViB8fCB0ZXN0ICIke0JBU0hfRU5WK3NldH0iICE9IHNldCB8fCB7IEJBU0hfRU5WPTsgZXhwb3J0IEJBU0hfRU5WOyB9CisJICAgICAkYXNfdW5zZXQgRU5WIHx8IHRlc3QgIiR7RU5WK3NldH0iICE9IHNldCB8fCB7IEVOVj07IGV4cG9ydCBFTlY7IH0KKwkgICAgIENPTkZJR19TSEVMTD0kYXNfZGlyLyRhc19iYXNlCisJICAgICBleHBvcnQgQ09ORklHX1NIRUxMCisJICAgICBleGVjICIkQ09ORklHX1NIRUxMIiAiJDAiICR7MSsiJEAifQorCSAgIGZpOzsKKwkgZXNhYworICAgICAgIGRvbmUKK2RvbmUKKzs7CisgIGVzYWMKKworICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCisgICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKKyAgIyBsaW5lLW51bWJlciBsaW5lIGJlZm9yZSBlYWNoIGxpbmU7IHRoZSBzZWNvbmQgJ3NlZCcgZG9lcyB0aGUgcmVhbAorICAjIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2ggbGluZS1udW1iZXIgbGluZQorICAjIHdpdGggdGhlIG51bWJlcmVkIGxpbmUsIGFuZCBhcHBlbmRzIHRyYWlsaW5nICctJyBkdXJpbmcKKyAgIyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwgY2FzZSBhdCBsaW5lIGVuZC4KKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCisgICMgc2Vjb25kICdzZWQnIHNjcmlwdC4gIEJsYW1lIExlZSBFLiBNY01haG9uIGZvciBzZWQncyBzeW50YXguICA6LSkKKyAgc2VkICc9JyA8JGFzX215c2VsZiB8CisgICAgc2VkICcKKyAgICAgIE4KKyAgICAgIHMsJCwtLAorICAgICAgOiBsb29wCisgICAgICBzLF5cKFsnJGFzX2NyX2RpZ2l0cyddKlwpXCguKlwpWyRdTElORU5PXChbXickYXNfY3JfYWxudW0nX11cKSxcMVwyXDFcMywKKyAgICAgIHQgbG9vcAorICAgICAgcywtJCwsCisgICAgICBzLF5bJyRhc19jcl9kaWdpdHMnXSpcbiwsCisgICAgJyA+JGFzX21lLmxpbmVubyAmJgorICBjaG1vZCAreCAkYXNfbWUubGluZW5vIHx8CisgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlICRhc19tZS5saW5lbm87IHJlcnVuIHdpdGggYSBQT1NJWCBzaGVsbCIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKworICAjIERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcworICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKKyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpYmxlIHRvIHRoaXMpLgorICAuIC4vJGFzX21lLmxpbmVubworICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZC4KKyAgZXhpdAorfQorCisKK2Nhc2UgYGVjaG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDNgIGluCisgICpjKiwtbiopIEVDSE9fTj0gRUNIT19DPScKKycgRUNIT19UPScJJyA7OworICAqYyosKiAgKSBFQ0hPX049LW4gRUNIT19DPSBFQ0hPX1Q9IDs7CisgICopICAgICAgIEVDSE9fTj0gRUNIT19DPSdcYycgRUNIT19UPSA7OworZXNhYworCitpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc19leHByPWV4cHIKK2Vsc2UKKyAgYXNfZXhwcj1mYWxzZQorZmkKKworcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKK2VjaG8gPmNvbmYkJC5maWxlCitpZiBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKyAgIyBXZSBjb3VsZCBqdXN0IGNoZWNrIGZvciBESkdQUDsgYnV0IHRoaXMgdGVzdCBhKSB3b3JrcyBiKSBpcyBtb3JlIGdlbmVyaWMKKyAgIyBhbmQgYykgd2lsbCByZW1haW4gdmFsaWQgb25jZSBESkdQUCBzdXBwb3J0cyBzeW1saW5rcyAoREpHUFAgMi4wNCkuCisgIGlmIHRlc3QgLWYgY29uZiQkLmV4ZTsgdGhlbgorICAgICMgRG9uJ3QgdXNlIGxuIGF0IGFsbDsgd2UgZG9uJ3QgaGF2ZSBhbnkgbGlua3MKKyAgICBhc19sbl9zPSdjcCAtcCcKKyAgZWxzZQorICAgIGFzX2xuX3M9J2xuIC1zJworICBmaQorZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKyAgYXNfbG5fcz1sbgorZWxzZQorICBhc19sbl9zPSdjcCAtcCcKK2ZpCitybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQorCitpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisgIGFzX21rZGlyX3A9OgorZWxzZQorICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorICBhc19ta2Rpcl9wPWZhbHNlCitmaQorCithc19leGVjdXRhYmxlX3A9InRlc3QgLWYiCisKKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KK2FzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisKKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgorYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKworCisjIElGUworIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4KK2FzX25sPScKKycKK0lGUz0iIAkkYXNfbmwiCisKKyMgQ0RQQVRILgorJGFzX3Vuc2V0IENEUEFUSAorCisKKyMgTmFtZSBvZiB0aGUgaG9zdC4KKyMgaG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4KSByZXR1cm5zIGEgYm9ndXMgZXhpdCBzdGF0dXMsCisjIHNvIHVuYW1lIGdldHMgcnVuIHRvby4KK2FjX2hvc3RuYW1lPWAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAorCitleGVjIDY+JjEKKworIworIyBJbml0aWFsaXphdGlvbnMuCisjCithY19kZWZhdWx0X3ByZWZpeD0vdXNyL2xvY2FsCithY19jb25maWdfbGlib2JqX2Rpcj0uCitjcm9zc19jb21waWxpbmc9bm8KK3N1YmRpcnM9CitNRkxBR1M9CitNQUtFRkxBR1M9CitTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQorCisjIE1heGltdW0gbnVtYmVyIG9mIGxpbmVzIHRvIHB1dCBpbiBhIHNoZWxsIGhlcmUgZG9jdW1lbnQuCisjIFRoaXMgdmFyaWFibGUgc2VlbXMgb2Jzb2xldGUuICBJdCBzaG91bGQgcHJvYmFibHkgYmUgcmVtb3ZlZCwgYW5kCisjIG9ubHkgYWNfbWF4X3NlZF9saW5lcyBzaG91bGQgYmUgdXNlZC4KKzogJHthY19tYXhfaGVyZV9saW5lcz0zOH0KKworIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCitQQUNLQUdFX05BTUU9J3N0cmFjZScKK1BBQ0tBR0VfVEFSTkFNRT0nc3RyYWNlJworUEFDS0FHRV9WRVJTSU9OPSc0LjUuMTInCitQQUNLQUdFX1NUUklORz0nc3RyYWNlIDQuNS4xMicKK1BBQ0tBR0VfQlVHUkVQT1JUPScnCisKK2FjX3VuaXF1ZV9maWxlPSJzdHJhY2UuYyIKKyMgRmFjdG9yaW5nIGRlZmF1bHQgaGVhZGVycyBmb3IgbW9zdCB0ZXN0cy4KK2FjX2luY2x1ZGVzX2RlZmF1bHQ9IlwKKyNpbmNsdWRlIDxzdGRpby5oPgorI2lmIEhBVkVfU1lTX1RZUEVTX0gKKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZW5kaWYKKyNpZiBIQVZFX1NZU19TVEFUX0gKKyMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorI2lmIFNURENfSEVBREVSUworIyBpbmNsdWRlIDxzdGRsaWIuaD4KKyMgaW5jbHVkZSA8c3RkZGVmLmg+CisjZWxzZQorIyBpZiBIQVZFX1NURExJQl9ICisjICBpbmNsdWRlIDxzdGRsaWIuaD4KKyMgZW5kaWYKKyNlbmRpZgorI2lmIEhBVkVfU1RSSU5HX0gKKyMgaWYgIVNURENfSEVBREVSUyAmJiBIQVZFX01FTU9SWV9ICisjICBpbmNsdWRlIDxtZW1vcnkuaD4KKyMgZW5kaWYKKyMgaW5jbHVkZSA8c3RyaW5nLmg+CisjZW5kaWYKKyNpZiBIQVZFX1NUUklOR1NfSAorIyBpbmNsdWRlIDxzdHJpbmdzLmg+CisjZW5kaWYKKyNpZiBIQVZFX0lOVFRZUEVTX0gKKyMgaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNlbHNlCisjIGlmIEhBVkVfU1RESU5UX0gKKyMgIGluY2x1ZGUgPHN0ZGludC5oPgorIyBlbmRpZgorI2VuZGlmCisjaWYgSEFWRV9VTklTVERfSAorIyBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZiIKKworYWNfc3Vic3RfdmFycz0nU0hFTEwgUEFUSF9TRVBBUkFUT1IgUEFDS0FHRV9OQU1FIFBBQ0tBR0VfVEFSTkFNRSBQQUNLQUdFX1ZFUlNJT04gUEFDS0FHRV9TVFJJTkcgUEFDS0FHRV9CVUdSRVBPUlQgZXhlY19wcmVmaXggcHJlZml4IHByb2dyYW1fdHJhbnNmb3JtX25hbWUgYmluZGlyIHNiaW5kaXIgbGliZXhlY2RpciBkYXRhZGlyIHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0ZWRpciBsaWJkaXIgaW5jbHVkZWRpciBvbGRpbmNsdWRlZGlyIGluZm9kaXIgbWFuZGlyIGJ1aWxkX2FsaWFzIGhvc3RfYWxpYXMgdGFyZ2V0X2FsaWFzIERFRlMgRUNIT19DIEVDSE9fTiBFQ0hPX1QgTElCUyBJTlNUQUxMX1BST0dSQU0gSU5TVEFMTF9TQ1JJUFQgSU5TVEFMTF9EQVRBIENZR1BBVEhfVyBQQUNLQUdFIFZFUlNJT04gQUNMT0NBTCBBVVRPQ09ORiBBVVRPTUFLRSBBVVRPSEVBREVSIE1BS0VJTkZPIGluc3RhbGxfc2ggU1RSSVAgYWNfY3RfU1RSSVAgSU5TVEFMTF9TVFJJUF9QUk9HUkFNIG1rZGlyX3AgQVdLIFNFVF9NQUtFIGFtX19sZWFkaW5nX2RvdCBBTVRBUiBhbV9fdGFyIGFtX191bnRhciBNQUlOVEFJTkVSX01PREVfVFJVRSBNQUlOVEFJTkVSX01PREVfRkFMU0UgTUFJTlQgYnVpbGQgYnVpbGRfY3B1IGJ1aWxkX3ZlbmRvciBidWlsZF9vcyBob3N0IGhvc3RfY3B1IGhvc3RfdmVuZG9yIGhvc3Rfb3Mgb3BzeXMgYXJjaCBMSU5VWF9UUlVFIExJTlVYX0ZBTFNFIEkzODZfVFJVRSBJMzg2X0ZBTFNFIFg4Nl82NF9UUlVFIFg4Nl82NF9GQUxTRSBTVU5PUzRfVFJVRSBTVU5PUzRfRkFMU0UgU1ZSNF9UUlVFIFNWUjRfRkFMU0UgRlJFRUJTRF9UUlVFIEZSRUVCU0RfRkFMU0UgQ0MgQ0ZMQUdTIExERkxBR1MgQ1BQRkxBR1MgYWNfY3RfQ0MgRVhFRVhUIE9CSkVYVCBERVBESVIgYW1fX2luY2x1ZGUgYW1fX3F1b3RlIEFNREVQX1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggQ0NERVBNT0RFIGFtX19mYXN0ZGVwQ0NfVFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNFIFdBUk5GTEFHUyBDUFAgRUdSRVAgUEVSTCBMSUJPQkpTIExUTElCT0JKUycKK2FjX3N1YnN0X2ZpbGVzPScnCisKKyMgSW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9ucy4KK2FjX2luaXRfaGVscD0KK2FjX2luaXRfdmVyc2lvbj1mYWxzZQorIyBUaGUgdmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMsIHdpdGgKKyMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5lcy4KK2NhY2hlX2ZpbGU9L2Rldi9udWxsCitleGVjX3ByZWZpeD1OT05FCitub19jcmVhdGU9Citub19yZWN1cnNpb249CitwcmVmaXg9Tk9ORQorcHJvZ3JhbV9wcmVmaXg9Tk9ORQorcHJvZ3JhbV9zdWZmaXg9Tk9ORQorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1zLHgseCwKK3NpbGVudD0KK3NpdGU9CitzcmNkaXI9Cit2ZXJib3NlPQoreF9pbmNsdWRlcz1OT05FCit4X2xpYnJhcmllcz1OT05FCisKKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgorIyBUaGVzZSBhcmUgbGVmdCB1bmV4cGFuZGVkIHNvIHVzZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4PS9mb28iCisjIGFuZCBhbGwgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBiYXNlZCBvbiBleGVjX3ByZWZpeAorIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdlLgorIyBVc2UgYnJhY2VzIGluc3RlYWQgb2YgcGFyZW5zIGJlY2F1c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBhY2NlcHQgdGhlbS4KK2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJworc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKK2xpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCitkYXRhZGlyPScke3ByZWZpeH0vc2hhcmUnCitzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJworc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCitsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJworbGliZGlyPScke2V4ZWNfcHJlZml4fS9saWInCitpbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKK29sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKK2luZm9kaXI9JyR7cHJlZml4fS9pbmZvJworbWFuZGlyPScke3ByZWZpeH0vbWFuJworCithY19wcmV2PQorZm9yIGFjX29wdGlvbgorZG8KKyAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCisgIGlmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgorICAgIGV2YWwgIiRhY19wcmV2PVwkYWNfb3B0aW9uIgorICAgIGFjX3ByZXY9CisgICAgY29udGludWUKKyAgZmkKKworICBhY19vcHRhcmc9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4W149XSo9XCguKlwpJ2AKKworICAjIEFjY2VwdCB0aGUgaW1wb3J0YW50IEN5Z251cyBjb25maWd1cmUgb3B0aW9ucywgc28gd2UgY2FuIGRpYWdub3NlIHR5cG9zLgorCisgIGNhc2UgJGFjX29wdGlvbiBpbgorCisgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCisgICAgYWNfcHJldj1iaW5kaXIgOzsKKyAgLWJpbmRpcj0qIHwgLS1iaW5kaXI9KiB8IC0tYmluZGk9KiB8IC0tYmluZD0qIHwgLS1iaW49KiB8IC0tYmk9KikKKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7OworCisgIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAtLWJ1aSB8IC0tYnUpCisgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OworICAtYnVpbGQ9KiB8IC0tYnVpbGQ9KiB8IC0tYnVpbD0qIHwgLS1idWk9KiB8IC0tYnU9KikKKyAgICBidWlsZF9hbGlhcz0kYWNfb3B0YXJnIDs7CisKKyAgLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZpbCB8IC0tY2FjaGUtZmkgXAorICB8IC0tY2FjaGUtZiB8IC0tY2FjaGUtIHwgLS1jYWNoZSB8IC0tY2FjaCB8IC0tY2FjIHwgLS1jYSB8IC0tYykKKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsKKyAgLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWw9KiB8IC0tY2FjaGUtZmk9KiBcCisgIHwgLS1jYWNoZS1mPSogfCAtLWNhY2hlLT0qIHwgLS1jYWNoZT0qIHwgLS1jYWNoPSogfCAtLWNhYz0qIHwgLS1jYT0qIHwgLS1jPSopCisgICAgY2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7CisKKyAgLS1jb25maWctY2FjaGUgfCAtQykKKyAgICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OworCisgIC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkgfCAtLWRhdGFkIHwgLS1kYXRhIHwgLS1kYXQgfCAtLWRhKQorICAgIGFjX3ByZXY9ZGF0YWRpciA7OworICAtZGF0YWRpcj0qIHwgLS1kYXRhZGlyPSogfCAtLWRhdGFkaT0qIHwgLS1kYXRhZD0qIHwgLS1kYXRhPSogfCAtLWRhdD0qIFwKKyAgfCAtLWRhPSopCisgICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qKQorICAgIGFjX2ZlYXR1cmU9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSpkaXNhYmxlLVwoLipcKSdgCisgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorICAgIGV4cHIgIngkYWNfZmVhdHVyZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX2ZlYXR1cmUiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVhdHVyZSB8IHNlZCAncy8tL18vZydgCisgICAgZXZhbCAiZW5hYmxlXyRhY19mZWF0dXJlPW5vIiA7OworCisgIC1lbmFibGUtKiB8IC0tZW5hYmxlLSopCisgICAgYWNfZmVhdHVyZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAorICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKyAgICBleHByICJ4JGFjX2ZlYXR1cmUiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKyAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY19mZWF0dXJlIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmUgfCBzZWQgJ3MvLS9fL2cnYAorICAgIGNhc2UgJGFjX29wdGlvbiBpbgorICAgICAgKj0qKSBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKKyAgICAgICopIGFjX29wdGFyZz15ZXMgOzsKKyAgICBlc2FjCisgICAgZXZhbCAiZW5hYmxlXyRhY19mZWF0dXJlPSckYWNfb3B0YXJnJyIgOzsKKworICAtZXhlYy1wcmVmaXggfCAtLWV4ZWNfcHJlZml4IHwgLS1leGVjLXByZWZpeCB8IC0tZXhlYy1wcmVmaSBcCisgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKKyAgfCAtLWV4ZWMgfCAtLWV4ZSB8IC0tZXgpCisgICAgYWNfcHJldj1leGVjX3ByZWZpeCA7OworICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKKyAgfCAtLWV4ZWMtcHJlZj0qIHwgLS1leGVjLXByZT0qIHwgLS1leGVjLXByPSogfCAtLWV4ZWMtcD0qIHwgLS1leGVjLT0qIFwKKyAgfCAtLWV4ZWM9KiB8IC0tZXhlPSogfCAtLWV4PSopCisgICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7OworCisgIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCisgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCisgICAgd2l0aF9nYXM9eWVzIDs7CisKKyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKKyAgICBhY19pbml0X2hlbHA9bG9uZyA7OworICAtaGVscD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1oZT1yKiB8IC1ociopCisgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OworICAtaGVscD1zKiB8IC0taGVscD1zKiB8IC0taGVsPXMqIHwgLS1oZT1zKiB8IC1ocyopCisgICAgYWNfaW5pdF9oZWxwPXNob3J0IDs7CisKKyAgLWhvc3QgfCAtLWhvc3QgfCAtLWhvcyB8IC0taG8pCisgICAgYWNfcHJldj1ob3N0X2FsaWFzIDs7CisgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCisgICAgaG9zdF9hbGlhcz0kYWNfb3B0YXJnIDs7CisKKyAgLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaSB8IC0taW5jbHVkZWQgfCAtLWluY2x1ZGUgXAorICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQorICAgIGFjX3ByZXY9aW5jbHVkZWRpciA7OworICAtaW5jbHVkZWRpcj0qIHwgLS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwgLS1pbmNsdWRlZD0qIHwgLS1pbmNsdWRlPSogXAorICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCisgICAgaW5jbHVkZWRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikKKyAgICBhY19wcmV2PWluZm9kaXIgOzsKKyAgLWluZm9kaXI9KiB8IC0taW5mb2Rpcj0qIHwgLS1pbmZvZGk9KiB8IC0taW5mb2Q9KiB8IC0taW5mbz0qIHwgLS1pbmY9KikKKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKKworICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRpIHwgLS1saWJkKQorICAgIGFjX3ByZXY9bGliZGlyIDs7CisgIC1saWJkaXI9KiB8IC0tbGliZGlyPSogfCAtLWxpYmRpPSogfCAtLWxpYmQ9KikKKyAgICBsaWJkaXI9JGFjX29wdGFyZyA7OworCisgIC1saWJleGVjZGlyIHwgLS1saWJleGVjZGlyIHwgLS1saWJleGVjZGkgfCAtLWxpYmV4ZWNkIHwgLS1saWJleGVjIFwKKyAgfCAtLWxpYmV4ZSB8IC0tbGliZXggfCAtLWxpYmUpCisgICAgYWNfcHJldj1saWJleGVjZGlyIDs7CisgIC1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2RpPSogfCAtLWxpYmV4ZWNkPSogfCAtLWxpYmV4ZWM9KiBcCisgIHwgLS1saWJleGU9KiB8IC0tbGliZXg9KiB8IC0tbGliZT0qKQorICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OworCisgIC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKKyAgfCAtLWxvY2Fsc3RhdGUgfCAtLWxvY2Fsc3RhdCB8IC0tbG9jYWxzdGEgfCAtLWxvY2Fsc3QgXAorICB8IC0tbG9jYWxzIHwgLS1sb2NhbCB8IC0tbG9jYSB8IC0tbG9jIHwgLS1sbykKKyAgICBhY19wcmV2PWxvY2Fsc3RhdGVkaXIgOzsKKyAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCisgIHwgLS1sb2NhbHN0YXRlPSogfCAtLWxvY2Fsc3RhdD0qIHwgLS1sb2NhbHN0YT0qIHwgLS1sb2NhbHN0PSogXAorICB8IC0tbG9jYWxzPSogfCAtLWxvY2FsPSogfCAtLWxvY2E9KiB8IC0tbG9jPSogfCAtLWxvPSopCisgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLW1hbmRpciB8IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwgLS1tYSB8IC0tbSkKKyAgICBhY19wcmV2PW1hbmRpciA7OworICAtbWFuZGlyPSogfCAtLW1hbmRpcj0qIHwgLS1tYW5kaT0qIHwgLS1tYW5kPSogfCAtLW1hbj0qIHwgLS1tYT0qIHwgLS1tPSopCisgICAgbWFuZGlyPSRhY19vcHRhcmcgOzsKKworICAtbmZwIHwgLS1uZnAgfCAtLW5mKQorICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGhvdXQtZnAuCisgICAgd2l0aF9mcD1ubyA7OworCisgIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAtLW5vLWNyZSBcCisgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQorICAgIG5vX2NyZWF0ZT15ZXMgOzsKKworICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKKyAgfCAtLW5vLXJlY3VycyB8IC0tbm8tcmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJlYyB8IC0tbm8tcmUgfCAtLW5vLXIpCisgICAgbm9fcmVjdXJzaW9uPXllcyA7OworCisgIC1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGkgfCAtLW9sZGluY2x1ZGVkIFwKKyAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGluY2x1ZCB8IC0tb2xkaW5jbHUgfCAtLW9sZGluY2wgfCAtLW9sZGluYyBcCisgIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKKyAgICBhY19wcmV2PW9sZGluY2x1ZGVkaXIgOzsKKyAgLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9KiB8IC0tb2xkaW5jbHVkZWQ9KiBcCisgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKKyAgfCAtLW9sZGluPSogfCAtLW9sZGk9KiB8IC0tb2xkPSogfCAtLW9sPSogfCAtLW89KikKKyAgICBvbGRpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKKworICAtcHJlZml4IHwgLS1wcmVmaXggfCAtLXByZWZpIHwgLS1wcmVmIHwgLS1wcmUgfCAtLXByIHwgLS1wKQorICAgIGFjX3ByZXY9cHJlZml4IDs7CisgIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikKKyAgICBwcmVmaXg9JGFjX29wdGFyZyA7OworCisgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCisgIHwgLS1wcm9ncmFtLXByZSB8IC0tcHJvZ3JhbS1wciB8IC0tcHJvZ3JhbS1wKQorICAgIGFjX3ByZXY9cHJvZ3JhbV9wcmVmaXggOzsKKyAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCisgIHwgLS1wcm9ncmFtLXByZWY9KiB8IC0tcHJvZ3JhbS1wcmU9KiB8IC0tcHJvZ3JhbS1wcj0qIHwgLS1wcm9ncmFtLXA9KikKKyAgICBwcm9ncmFtX3ByZWZpeD0kYWNfb3B0YXJnIDs7CisKKyAgLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaSB8IC0tcHJvZ3JhbS1zdWZmIFwKKyAgfCAtLXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFtLXMpCisgICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OworICAtcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaT0qIFwKKyAgfCAtLXByb2dyYW0tc3VmZj0qIHwgLS1wcm9ncmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0qKQorICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKKworICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSBcCisgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW4gfCAtLXByb2dyYW0tdHJhbnNmb3JtLSBcCisgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybSB8IC0tcHJvZ3JhbS10cmFuc2ZvciBcCisgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKKyAgfCAtLXByb2dyYW0tdHJhbnMgfCAtLXByb2dyYW0tdHJhbiBcCisgIHwgLS1wcm9nci10cmEgfCAtLXByb2dyYW0tdHIgfCAtLXByb2dyYW0tdCkKKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKKyAgLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYT0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAorICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm09KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcj0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmbz0qIHwgLS1wcm9ncmFtLXRyYW5zZj0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAorICB8IC0tcHJvZ3ItdHJhPSogfCAtLXByb2dyYW0tdHI9KiB8IC0tcHJvZ3JhbS10PSopCisgICAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0kYWNfb3B0YXJnIDs7CisKKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCisgICAgc2lsZW50PXllcyA7OworCisgIC1zYmluZGlyIHwgLS1zYmluZGlyIHwgLS1zYmluZGkgfCAtLXNiaW5kIHwgLS1zYmluIHwgLS1zYmkgfCAtLXNiKQorICAgIGFjX3ByZXY9c2JpbmRpciA7OworICAtc2JpbmRpcj0qIHwgLS1zYmluZGlyPSogfCAtLXNiaW5kaT0qIHwgLS1zYmluZD0qIHwgLS1zYmluPSogXAorICB8IC0tc2JpPSogfCAtLXNiPSopCisgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVkaSBcCisgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAorICB8IC0tc2hhcmVkc3QgfCAtLXNoYXJlZHMgfCAtLXNoYXJlZCB8IC0tc2hhcmUgfCAtLXNoYXIgXAorICB8IC0tc2hhIHwgLS1zaCkKKyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7CisgIC1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpPSogXAorICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNoYXJlZHN0YXRlPSogfCAtLXNoYXJlZHN0YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAorICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKKyAgfCAtLXNoYT0qIHwgLS1zaD0qKQorICAgIHNoYXJlZHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKKworICAtc2l0ZSB8IC0tc2l0ZSB8IC0tc2l0KQorICAgIGFjX3ByZXY9c2l0ZSA7OworICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQorICAgIHNpdGU9JGFjX29wdGFyZyA7OworCisgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3IpCisgICAgYWNfcHJldj1zcmNkaXIgOzsKKyAgLXNyY2Rpcj0qIHwgLS1zcmNkaXI9KiB8IC0tc3JjZGk9KiB8IC0tc3JjZD0qIHwgLS1zcmM9KiB8IC0tc3I9KikKKyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OworCisgIC1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGkgfCAtLXN5c2NvbmZkIHwgLS1zeXNjb25mIFwKKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kpCisgICAgYWNfcHJldj1zeXNjb25mZGlyIDs7CisgIC1zeXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2NvbmZkPSogfCAtLXN5c2NvbmY9KiBcCisgIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikKKyAgICBzeXNjb25mZGlyPSRhY19vcHRhcmcgOzsKKworICAtdGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10KQorICAgIGFjX3ByZXY9dGFyZ2V0X2FsaWFzIDs7CisgIC10YXJnZXQ9KiB8IC0tdGFyZ2V0PSogfCAtLXRhcmdlPSogfCAtLXRhcmc9KiB8IC0tdGFyPSogfCAtLXRhPSogfCAtLXQ9KikKKyAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OworCisgIC12IHwgLXZlcmJvc2UgfCAtLXZlcmJvc2UgfCAtLXZlcmJvcyB8IC0tdmVyYm8gfCAtLXZlcmIpCisgICAgdmVyYm9zZT15ZXMgOzsKKworICAtdmVyc2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC1WKQorICAgIGFjX2luaXRfdmVyc2lvbj06IDs7CisKKyAgLXdpdGgtKiB8IC0td2l0aC0qKQorICAgIGFjX3BhY2thZ2U9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCisgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorICAgIGV4cHIgIngkYWNfcGFja2FnZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3BhY2thZ2UiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgICAgYWNfcGFja2FnZT1gZWNobyAkYWNfcGFja2FnZXwgc2VkICdzLy0vXy9nJ2AKKyAgICBjYXNlICRhY19vcHRpb24gaW4KKyAgICAgICo9KikgYWNfb3B0YXJnPWBlY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7CisgICAgICAqKSBhY19vcHRhcmc9eWVzIDs7CisgICAgZXNhYworICAgIGV2YWwgIndpdGhfJGFjX3BhY2thZ2U9JyRhY19vcHRhcmcnIiA7OworCisgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKKyAgICBhY19wYWNrYWdlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aG91dC1cKC4qXCknYAorICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKyAgICBleHByICJ4JGFjX3BhY2thZ2UiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKyAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY19wYWNrYWdlIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICAgIGFjX3BhY2thZ2U9YGVjaG8gJGFjX3BhY2thZ2UgfCBzZWQgJ3MvLS9fL2cnYAorICAgIGV2YWwgIndpdGhfJGFjX3BhY2thZ2U9bm8iIDs7CisKKyAgLS14KQorICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgteC4KKyAgICB3aXRoX3g9eWVzIDs7CisKKyAgLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZSB8IC0teC1pbmNsdWQgfCAtLXgtaW5jbHUgXAorICB8IC0teC1pbmNsIHwgLS14LWluYyB8IC0teC1pbiB8IC0teC1pKQorICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OworICAteC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1ZD0qIHwgLS14LWluY2x1PSogXAorICB8IC0teC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8IC0teC1pPSopCisgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7CisKKyAgLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllcyB8IC0teC1saWJyYXJpZSB8IC0teC1saWJyYXJpIFwKKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwpCisgICAgYWNfcHJldj14X2xpYnJhcmllcyA7OworICAteC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZT0qIHwgLS14LWxpYnJhcmk9KiBcCisgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSogfCAtLXgtbD0qKQorICAgIHhfbGlicmFyaWVzPSRhY19vcHRhcmcgOzsKKworICAtKikgeyBlY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkYWNfb3B0aW9uCitUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyAgICA7OworCisgICo9KikKKyAgICBhY19lbnZ2YXI9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4XChbXj1dKlwpPSdgCisgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKyAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB2YXJpYWJsZSBuYW1lOiAkYWNfZW52dmFyIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICAgIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAKKyAgICBldmFsICIkYWNfZW52dmFyPSckYWNfb3B0YXJnJyIKKyAgICBleHBvcnQgJGFjX2VudnZhciA7OworCisgICopCisgICAgIyBGSVhNRTogc2hvdWxkIGJlIHJlbW92ZWQgaW4gYXV0b2NvbmYgMy4wLgorICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCisgICAgZXhwciAieCRhY19vcHRpb24iIDogIi4qW14tLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisgICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKKyAgICA6ICR7YnVpbGRfYWxpYXM9JGFjX29wdGlvbn0gJHtob3N0X2FsaWFzPSRhY19vcHRpb259ICR7dGFyZ2V0X2FsaWFzPSRhY19vcHRpb259CisgICAgOzsKKworICBlc2FjCitkb25lCisKK2lmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgorICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCisgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKKworIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgcGF0aHMuCitmb3IgYWNfdmFyIGluIGV4ZWNfcHJlZml4IHByZWZpeAorZG8KKyAgZXZhbCBhY192YWw9JGBlY2hvICRhY192YXJgCisgIGNhc2UgJGFjX3ZhbCBpbgorICAgIFtcXC8kXSogfCA/OltcXC9dKiB8IE5PTkUgfCAnJyApIDs7CisgICAgKikgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogZXhwZWN0ZWQgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgZm9yIC0tJGFjX3ZhcjogJGFjX3ZhbCIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworICBlc2FjCitkb25lCisKKyMgQmUgc3VyZSB0byBoYXZlIGFic29sdXRlIHBhdGhzLgorZm9yIGFjX3ZhciBpbiBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBcCisJICAgICAgbG9jYWxzdGF0ZWRpciBsaWJkaXIgaW5jbHVkZWRpciBvbGRpbmNsdWRlZGlyIGluZm9kaXIgbWFuZGlyCitkbworICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKKyAgY2FzZSAkYWNfdmFsIGluCisgICAgW1xcLyRdKiB8ID86W1xcL10qICkgOzsKKyAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisgIGVzYWMKK2RvbmUKKworIyBUaGVyZSBtaWdodCBiZSBwZW9wbGUgd2hvIGRlcGVuZCBvbiB0aGUgb2xkIGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JworIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCisjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCitidWlsZD0kYnVpbGRfYWxpYXMKK2hvc3Q9JGhvc3RfYWxpYXMKK3RhcmdldD0kdGFyZ2V0X2FsaWFzCisKKyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KK2lmIHRlc3QgIngkaG9zdF9hbGlhcyIgIT0geDsgdGhlbgorICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiA9IHg7IHRoZW4KKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKKyAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IElmIHlvdSB3YW50ZWQgdG8gc2V0IHRoZSAtLWJ1aWxkIHR5cGUsIGRvbid0IHVzZSAtLWhvc3QuCisgICAgSWYgYSBjcm9zcyBjb21waWxlciBpcyBkZXRlY3RlZCB0aGVuIGNyb3NzIGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKKyAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiAhPSAieCRob3N0X2FsaWFzIjsgdGhlbgorICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKKyAgZmkKK2ZpCisKK2FjX3Rvb2xfcHJlZml4PQordGVzdCAtbiAiJGhvc3RfYWxpYXMiICYmIGFjX3Rvb2xfcHJlZml4PSRob3N0X2FsaWFzLQorCit0ZXN0ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxsCisKKworIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgoraWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KKyAgYWNfc3JjZGlyX2RlZmF1bHRlZD15ZXMKKyAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIGl0cyBwYXJlbnQuCisgIGFjX2NvbmZkaXI9YChkaXJuYW1lICIkMCIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiQwIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSBYIiQwIiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiQwIiA6ICdYXCgvXCknIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgiJDAiIHwKKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorICBzcmNkaXI9JGFjX2NvbmZkaXIKKyAgaWYgdGVzdCAhIC1yICRzcmNkaXIvJGFjX3VuaXF1ZV9maWxlOyB0aGVuCisgICAgc3JjZGlyPS4uCisgIGZpCitlbHNlCisgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KK2ZpCitpZiB0ZXN0ICEgLXIgJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KKyAgaWYgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzOyB0aGVuCisgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRhY19jb25mZGlyIG9yIC4uIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICBlbHNlCisgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgIGZpCitmaQorKGNkICRzcmNkaXIgJiYgdGVzdCAtciAuLyRhY191bmlxdWVfZmlsZSkgMj4vZGV2L251bGwgfHwKKyAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBzb3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorc3JjZGlyPWBlY2hvICIkc3JjZGlyIiB8IHNlZCAncyVcKFteXFwvXVwpW1xcL10qJCVcMSUnYAorYWNfZW52X2J1aWxkX2FsaWFzX3NldD0ke2J1aWxkX2FsaWFzK3NldH0KK2FjX2Vudl9idWlsZF9hbGlhc192YWx1ZT0kYnVpbGRfYWxpYXMKK2FjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9JHtidWlsZF9hbGlhcytzZXR9CithY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9JGJ1aWxkX2FsaWFzCithY19lbnZfaG9zdF9hbGlhc19zZXQ9JHtob3N0X2FsaWFzK3NldH0KK2FjX2Vudl9ob3N0X2FsaWFzX3ZhbHVlPSRob3N0X2FsaWFzCithY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9JHtob3N0X2FsaWFzK3NldH0KK2FjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPSRob3N0X2FsaWFzCithY19lbnZfdGFyZ2V0X2FsaWFzX3NldD0ke3RhcmdldF9hbGlhcytzZXR9CithY19lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPSR0YXJnZXRfYWxpYXMKK2FjX2N2X2Vudl90YXJnZXRfYWxpYXNfc2V0PSR7dGFyZ2V0X2FsaWFzK3NldH0KK2FjX2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlhcworYWNfZW52X0NDX3NldD0ke0NDK3NldH0KK2FjX2Vudl9DQ192YWx1ZT0kQ0MKK2FjX2N2X2Vudl9DQ19zZXQ9JHtDQytzZXR9CithY19jdl9lbnZfQ0NfdmFsdWU9JENDCithY19lbnZfQ0ZMQUdTX3NldD0ke0NGTEFHUytzZXR9CithY19lbnZfQ0ZMQUdTX3ZhbHVlPSRDRkxBR1MKK2FjX2N2X2Vudl9DRkxBR1Nfc2V0PSR7Q0ZMQUdTK3NldH0KK2FjX2N2X2Vudl9DRkxBR1NfdmFsdWU9JENGTEFHUworYWNfZW52X0xERkxBR1Nfc2V0PSR7TERGTEFHUytzZXR9CithY19lbnZfTERGTEFHU192YWx1ZT0kTERGTEFHUworYWNfY3ZfZW52X0xERkxBR1Nfc2V0PSR7TERGTEFHUytzZXR9CithY19jdl9lbnZfTERGTEFHU192YWx1ZT0kTERGTEFHUworYWNfZW52X0NQUEZMQUdTX3NldD0ke0NQUEZMQUdTK3NldH0KK2FjX2Vudl9DUFBGTEFHU192YWx1ZT0kQ1BQRkxBR1MKK2FjX2N2X2Vudl9DUFBGTEFHU19zZXQ9JHtDUFBGTEFHUytzZXR9CithY19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9JENQUEZMQUdTCithY19lbnZfQ1BQX3NldD0ke0NQUCtzZXR9CithY19lbnZfQ1BQX3ZhbHVlPSRDUFAKK2FjX2N2X2Vudl9DUFBfc2V0PSR7Q1BQK3NldH0KK2FjX2N2X2Vudl9DUFBfdmFsdWU9JENQUAorCisjCisjIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCisjCitpZiB0ZXN0ICIkYWNfaW5pdF9oZWxwIiA9ICJsb25nIjsgdGhlbgorICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KKyAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgorICBjYXQgPDxfQUNFT0YKK1xgY29uZmlndXJlJyBjb25maWd1cmVzIHN0cmFjZSA0LjUuMTIgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorCitVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KKworVG8gYXNzaWduIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiwgQ0MsIENGTEFHUy4uLiksIHNwZWNpZnkgdGhlbSBhcworVkFSPVZBTFVFLiAgU2VlIGJlbG93IGZvciBkZXNjcmlwdGlvbnMgb2Ygc29tZSBvZiB0aGUgdXNlZnVsIHZhcmlhYmxlcy4KKworRGVmYXVsdHMgZm9yIHRoZSBvcHRpb25zIGFyZSBzcGVjaWZpZWQgaW4gYnJhY2tldHMuCisKK0NvbmZpZ3VyYXRpb246CisgIC1oLCAtLWhlbHAgICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0CisgICAgICAtLWhlbHA9c2hvcnQgICAgICAgIGRpc3BsYXkgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGlzIHBhY2thZ2UKKyAgICAgIC0taGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQgaGVscCBvZiBhbGwgdGhlIGluY2x1ZGVkIHBhY2thZ2VzCisgIC1WLCAtLXZlcnNpb24gICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdAorICAtcSwgLS1xdWlldCwgLS1zaWxlbnQgICBkbyBub3QgcHJpbnQgXGBjaGVja2luZy4uLicgbWVzc2FnZXMKKyAgICAgIC0tY2FjaGUtZmlsZT1GSUxFICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUgW2Rpc2FibGVkXQorICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJworICAtbiwgLS1uby1jcmVhdGUgICAgICAgICBkbyBub3QgY3JlYXRlIG91dHB1dCBmaWxlcworICAgICAgLS1zcmNkaXI9RElSICAgICAgICBmaW5kIHRoZSBzb3VyY2VzIGluIERJUiBbY29uZmlndXJlIGRpciBvciBcYC4uJ10KKworX0FDRU9GCisKKyAgY2F0IDw8X0FDRU9GCitJbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6CisgIC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGluIFBSRUZJWAorCQkJICBbJGFjX2RlZmF1bHRfcHJlZml4XQorICAtLWV4ZWMtcHJlZml4PUVQUkVGSVggICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgZmlsZXMgaW4gRVBSRUZJWAorCQkJICBbUFJFRklYXQorCitCeSBkZWZhdWx0LCBcYG1ha2UgaW5zdGFsbCcgd2lsbCBpbnN0YWxsIGFsbCB0aGUgZmlsZXMgaW4KK1xgJGFjX2RlZmF1bHRfcHJlZml4L2JpbicsIFxgJGFjX2RlZmF1bHRfcHJlZml4L2xpYicgZXRjLiAgWW91IGNhbiBzcGVjaWZ5CithbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gXGAkYWNfZGVmYXVsdF9wcmVmaXgnIHVzaW5nIFxgLS1wcmVmaXgnLAorZm9yIGluc3RhbmNlIFxgLS1wcmVmaXg9XCRIT01FJy4KKworRm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVsb3cuCisKK0ZpbmUgdHVuaW5nIG9mIHRoZSBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXM6CisgIC0tYmluZGlyPURJUiAgICAgICAgICAgdXNlciBleGVjdXRhYmxlcyBbRVBSRUZJWC9iaW5dCisgIC0tc2JpbmRpcj1ESVIgICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVzIFtFUFJFRklYL3NiaW5dCisgIC0tbGliZXhlY2Rpcj1ESVIgICAgICAgcHJvZ3JhbSBleGVjdXRhYmxlcyBbRVBSRUZJWC9saWJleGVjXQorICAtLWRhdGFkaXI9RElSICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJFRklYL3NoYXJlXQorICAtLXN5c2NvbmZkaXI9RElSICAgICAgIHJlYWQtb25seSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvZXRjXQorICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgIG1vZGlmaWFibGUgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW1BSRUZJWC9jb21dCisgIC0tbG9jYWxzdGF0ZWRpcj1ESVIgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgvdmFyXQorICAtLWxpYmRpcj1ESVIgICAgICAgICAgIG9iamVjdCBjb2RlIGxpYnJhcmllcyBbRVBSRUZJWC9saWJdCisgIC0taW5jbHVkZWRpcj1ESVIgICAgICAgQyBoZWFkZXIgZmlsZXMgW1BSRUZJWC9pbmNsdWRlXQorICAtLW9sZGluY2x1ZGVkaXI9RElSICAgIEMgaGVhZGVyIGZpbGVzIGZvciBub24tZ2NjIFsvdXNyL2luY2x1ZGVdCisgIC0taW5mb2Rpcj1ESVIgICAgICAgICAgaW5mbyBkb2N1bWVudGF0aW9uIFtQUkVGSVgvaW5mb10KKyAgLS1tYW5kaXI9RElSICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBbUFJFRklYL21hbl0KK19BQ0VPRgorCisgIGNhdCA8PFxfQUNFT0YKKworUHJvZ3JhbSBuYW1lczoKKyAgLS1wcm9ncmFtLXByZWZpeD1QUkVGSVggICAgICAgICAgICBwcmVwZW5kIFBSRUZJWCB0byBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1lcworICAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCAgICAgICAgICAgIGFwcGVuZCBTVUZGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKKyAgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPVBST0dSQU0gICBydW4gc2VkIFBST0dSQU0gb24gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKKworU3lzdGVtIHR5cGVzOgorICAtLWJ1aWxkPUJVSUxEICAgICBjb25maWd1cmUgZm9yIGJ1aWxkaW5nIG9uIEJVSUxEIFtndWVzc2VkXQorICAtLWhvc3Q9SE9TVCAgICAgICBjcm9zcy1jb21waWxlIHRvIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBIT1NUIFtCVUlMRF0KK19BQ0VPRgorZmkKKworaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KKyAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCisgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBzdHJhY2UgNC41LjEyOiI7OworICAgZXNhYworICBjYXQgPDxcX0FDRU9GCisKK09wdGlvbmFsIEZlYXR1cmVzOgorICAtLWRpc2FibGUtRkVBVFVSRSAgICAgICBkbyBub3QgaW5jbHVkZSBGRUFUVVJFIChzYW1lIGFzIC0tZW5hYmxlLUZFQVRVUkU9bm8pCisgIC0tZW5hYmxlLUZFQVRVUkVbPUFSR10gIGluY2x1ZGUgRkVBVFVSRSBbQVJHPXllc10KKyAgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlICBlbmFibGUgbWFrZSBydWxlcyBhbmQgZGVwZW5kZW5jaWVzIG5vdCB1c2VmdWwKKwkJCSAgKGFuZCBzb21ldGltZXMgY29uZnVzaW5nKSB0byB0aGUgY2FzdWFsIGluc3RhbGxlcgorICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCisgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCisKK1NvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKKyAgQ0ZMQUdTICAgICAgQyBjb21waWxlciBmbGFncworICBMREZMQUdTICAgICBsaW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVzIGluIGEKKyAgICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgorICBDUFBGTEFHUyAgICBDL0MrKyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVkZSBkaXI+IGlmIHlvdSBoYXZlCisgICAgICAgICAgICAgIGhlYWRlcnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgorICBDUFAgICAgICAgICBDIHByZXByb2Nlc3NvcgorCitVc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAoraXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgorCitfQUNFT0YKK2ZpCisKK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKyAgIyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVscC4KKyAgYWNfcG9wZGlyPWBwd2RgCisgIGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGlyIiA9IHg6ICYmIGNvbnRpbnVlCisgICAgdGVzdCAtZCAkYWNfZGlyIHx8IGNvbnRpbnVlCisgICAgYWNfYnVpbGRkaXI9LgorCitpZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCisgIGFjX2Rpcl9zdWZmaXg9L2BlY2hvICIkYWNfZGlyIiB8IHNlZCAncyxeXC5bXFwvXSwsJ2AKKyAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KKyAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAorZWxzZQorICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9CitmaQorCitjYXNlICRzcmNkaXIgaW4KKyAgLikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgorICAgIGFjX3NyY2Rpcj0uCisgICAgaWYgdGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KKyAgICAgICBhY190b3Bfc3JjZGlyPS4KKyAgICBlbHNlCisgICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNobyAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAorICAgIGZpIDs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgcGF0aC4KKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OworICAqKSAjIFJlbGF0aXZlIHBhdGguCisgICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Citlc2FjCisKKyMgRG8gbm90IHVzZSBgY2QgZm9vICYmIHB3ZGAgdG8gY29tcHV0ZSBhYnNvbHV0ZSBwYXRocywgYmVjYXVzZQorIyB0aGUgZGlyZWN0b3JpZXMgbWF5IG5vdCBleGlzdC4KK2Nhc2UgYHB3ZGAgaW4KKy4pIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworKikKKyAgY2FzZSAiJGFjX2RpciIgaW4KKyAgLikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKKyAgKikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgLyIkYWNfZGlyIjs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworKikKKyAgY2FzZSAke2FjX3RvcF9idWlsZGRpcn0uIGluCisgIC4pIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyAgKikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyLyR7YWNfdG9wX2J1aWxkZGlyfS47OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3NyY2RpciBpbgorICAuKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7CisgICopIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3RvcF9zcmNkaXIgaW4KKyAgLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworICAqKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY190b3Bfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCisKKyAgICBjZCAkYWNfZGlyCisgICAgIyBDaGVjayBmb3IgZ3Vlc3RlZCBjb25maWd1cmU7IG90aGVyd2lzZSBnZXQgQ3lnbnVzIHN0eWxlIGNvbmZpZ3VyZS4KKyAgICBpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmdudTsgdGhlbgorICAgICAgZWNobworICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJlLmdudSAgLS1oZWxwPXJlY3Vyc2l2ZQorICAgIGVsaWYgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZTsgdGhlbgorICAgICAgZWNobworICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJlICAtLWhlbHA9cmVjdXJzaXZlCisgICAgZWxpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmFjIHx8CisJICAgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZS5pbjsgdGhlbgorICAgICAgZWNobworICAgICAgJGFjX2NvbmZpZ3VyZSAtLWhlbHAKKyAgICBlbHNlCisgICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCisgICAgZmkKKyAgICBjZCAkYWNfcG9wZGlyCisgIGRvbmUKK2ZpCisKK3Rlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAoraWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgorICBjYXQgPDxcX0FDRU9GCitzdHJhY2UgY29uZmlndXJlIDQuNS4xMgorZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5CisKK0NvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK1RoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCitnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCitfQUNFT0YKKyAgZXhpdCAwCitmaQorZXhlYyA1PmNvbmZpZy5sb2cKK2NhdCA+JjUgPDxfQUNFT0YKK1RoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCitydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgorCitJdCB3YXMgY3JlYXRlZCBieSBzdHJhY2UgJGFzX21lIDQuNS4xMiwgd2hpY2ggd2FzCitnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKKworICAkICQwICRACisKK19BQ0VPRgoreworY2F0IDw8X0FTVU5BTUUKKyMjIC0tLS0tLS0tLSAjIworIyMgUGxhdGZvcm0uICMjCisjIyAtLS0tLS0tLS0gIyMKKworaG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKK3VuYW1lIC1tID0gYCh1bmFtZSAtbSkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAordW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCit1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAorCisvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKy9iaW4vdW5hbWUgLVggICAgID0gYCgvYmluL3VuYW1lIC1YKSAyPi9kZXYvbnVsbCAgICAgfHwgZWNobyB1bmtub3duYAorCisvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9hcmNoIC1rKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25gCisvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCitob3N0aW5mbyAgICAgICAgICAgICAgID0gYChob3N0aW5mbykgMj4vZGV2L251bGwgICAgICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisvYmluL21hY2hpbmUgICAgICAgICAgID0gYCgvYmluL21hY2hpbmUpIDI+L2Rldi9udWxsICAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisvdXNyL2Jpbi9vc2xldmVsICAgICAgID0gYCgvdXNyL2Jpbi9vc2xldmVsKSAyPi9kZXYvbnVsbCAgICAgICB8fCBlY2hvIHVua25vd25gCisvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25gCisKK19BU1VOQU1FCisKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZWNobyAiUEFUSDogJGFzX2RpciIKK2RvbmUKKworfSA+JjUKKworY2F0ID4mNSA8PF9BQ0VPRgorCisKKyMjIC0tLS0tLS0tLS0tICMjCisjIyBDb3JlIHRlc3RzLiAjIworIyMgLS0tLS0tLS0tLS0gIyMKKworX0FDRU9GCisKKworIyBLZWVwIGEgdHJhY2Ugb2YgdGhlIGNvbW1hbmQgbGluZS4KKyMgU3RyaXAgb3V0IC0tbm8tY3JlYXRlIGFuZCAtLW5vLXJlY3Vyc2lvbiBzbyB0aGV5IGRvIG5vdCBwaWxlIHVwLgorIyBTdHJpcCBvdXQgLS1zaWxlbnQgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIHJlY29yZCBpdCBmb3IgZnV0dXJlIHJ1bnMuCisjIEFsc28gcXVvdGUgYW55IGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhLWNoYXJhY3RlcnMuCisjIE1ha2UgdHdvIHBhc3NlcyB0byBhbGxvdyBmb3IgcHJvcGVyIGR1cGxpY2F0ZS1hcmd1bWVudCBzdXBwcmVzc2lvbi4KK2FjX2NvbmZpZ3VyZV9hcmdzPQorYWNfY29uZmlndXJlX2FyZ3MwPQorYWNfY29uZmlndXJlX2FyZ3MxPQorYWNfc2VwPQorYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UKK2ZvciBhY19wYXNzIGluIDEgMgorZG8KKyAgZm9yIGFjX2FyZworICBkbworICAgIGNhc2UgJGFjX2FyZyBpbgorICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwgLS1uby1yKikgY29udGludWUgOzsKKyAgICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorICAgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQorICAgICAgY29udGludWUgOzsKKyAgICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP1wiXCddKikKKyAgICAgIGFjX2FyZz1gZWNobyAiJGFjX2FyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKyAgICBlc2FjCisgICAgY2FzZSAkYWNfcGFzcyBpbgorICAgIDEpIGFjX2NvbmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZpZ3VyZV9hcmdzMCAnJGFjX2FyZyciIDs7CisgICAgMikKKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzMT0iJGFjX2NvbmZpZ3VyZV9hcmdzMSAnJGFjX2FyZyciCisgICAgICBpZiB0ZXN0ICRhY19tdXN0X2tlZXBfbmV4dCA9IHRydWU7IHRoZW4KKwlhY19tdXN0X2tlZXBfbmV4dD1mYWxzZSAjIEdvdCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCisgICAgICBlbHNlCisJY2FzZSAkYWNfYXJnIGluCisJICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qIFwKKwkgIHwgLWVuYWJsZS0qIHwgLS1lbmFibGUtKiB8IC1nYXMgfCAtLWcqIHwgLW5mcCB8IC0tbmYqIFwKKwkgIHwgLXEgfCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwKKwkgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qIHwgLS14KQorCSAgICBjYXNlICIkYWNfY29uZmlndXJlX2FyZ3MwICIgaW4KKwkgICAgICAiJGFjX2NvbmZpZ3VyZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OworCSAgICBlc2FjCisJICAgIDs7CisJICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKKwllc2FjCisgICAgICBmaQorICAgICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyRhY19zZXAnJGFjX2FyZyciCisgICAgICAjIEdldCByaWQgb2YgdGhlIGxlYWRpbmcgc3BhY2UuCisgICAgICBhY19zZXA9IiAiCisgICAgICA7OworICAgIGVzYWMKKyAgZG9uZQorZG9uZQorJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMCB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9hcmdzMCtzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczA9OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MwOyB9CiskYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MxK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczE7IH0KKworIyBXaGVuIGludGVycnVwdGVkIG9yIGV4aXQnZCwgY2xlYW51cCB0ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQorIyBjb25maWcubG9nLiAgV2UgcmVtb3ZlIGNvbW1lbnRzIGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKKyMgd291bGQgY2F1c2UgcHJvYmxlbXMgb3IgbG9vayB1Z2x5LgorIyBXQVJOSU5HOiBCZSBzdXJlIG5vdCB0byB1c2Ugc2luZ2xlIHF1b3RlcyBpbiB0aGVyZSwgYXMgc29tZSBzaGVsbHMsCisjIHN1Y2ggYXMgb3VyIERVIDUuMCBmcmllbmQsIHdpbGwgdGhlbiBgY2xvc2UnIHRoZSB0cmFwLgordHJhcCAnZXhpdF9zdGF0dXM9JD8KKyAgIyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBpbiBkZWJ1Z2dpbmcuCisgIHsKKyAgICBlY2hvCisKKyAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tICMjCisjIyBDYWNoZSB2YXJpYWJsZXMuICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICBlY2hvCisgICAgIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKK3sKKyAgKHNldCkgMj4mMSB8CisgICAgY2FzZSBgKGFjX3NwYWNlPSciJyInICciJyInOyBzZXQgfCBncmVwIGFjX3NwYWNlKSAyPiYxYCBpbgorICAgICphY19zcGFjZT1cICopCisgICAgICBzZWQgLW4gXAorCSJzLyciJyInLyciJyInXFxcXCciJyInJyInIicvZzsKKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9JyInIidcXDInIiciJy9wIgorICAgICAgOzsKKyAgICAqKQorICAgICAgc2VkIC1uIFwKKwkicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKKyAgICAgIDs7CisgICAgZXNhYzsKK30KKyAgICBlY2hvCisKKyAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICBlY2hvCisgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycworICAgIGRvCisgICAgICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKKyAgICAgIGVjaG8gIiRhY192YXI9JyInIickYWNfdmFsJyInIiciCisgICAgZG9uZSB8IHNvcnQKKyAgICBlY2hvCisKKyAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCisgICAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tICMjCisjIyBPdXRwdXQgZmlsZXMuICMjCisjIyAtLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICAgIGVjaG8KKyAgICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X2ZpbGVzCisgICAgICBkbworCWV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAorCWVjaG8gIiRhY192YXI9JyInIickYWNfdmFsJyInIiciCisgICAgICBkb25lIHwgc29ydAorICAgICAgZWNobworICAgIGZpCisKKyAgICBpZiB0ZXN0IC1zIGNvbmZkZWZzLmg7IHRoZW4KKyAgICAgIGNhdCA8PFxfQVNCT1gKKyMjIC0tLS0tLS0tLS0tICMjCisjIyBjb25mZGVmcy5oLiAjIworIyMgLS0tLS0tLS0tLS0gIyMKK19BU0JPWAorICAgICAgZWNobworICAgICAgc2VkICIvXiQvZCIgY29uZmRlZnMuaCB8IHNvcnQKKyAgICAgIGVjaG8KKyAgICBmaQorICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKKyAgICAgIGVjaG8gIiRhc19tZTogY2F1Z2h0IHNpZ25hbCAkYWNfc2lnbmFsIgorICAgIGVjaG8gIiRhc19tZTogZXhpdCAkZXhpdF9zdGF0dXMiCisgIH0gPiY1CisgIHJtIC1mIGNvcmUgKi5jb3JlICYmCisgIHJtIC1yZiBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCisgICAgZXhpdCAkZXhpdF9zdGF0dXMKKyAgICAgJyAwCitmb3IgYWNfc2lnbmFsIGluIDEgMiAxMyAxNTsgZG8KKyAgdHJhcCAnYWNfc2lnbmFsPSckYWNfc2lnbmFsJzsgeyAoZXhpdCAxKTsgZXhpdCAxOyB9JyAkYWNfc2lnbmFsCitkb25lCithY19zaWduYWw9MAorCisjIGNvbmZkZWZzLmggYXZvaWRzIE9TIGNvbW1hbmQgbGluZSBsZW5ndGggbGltaXRzIHRoYXQgREVGUyBjYW4gZXhjZWVkLgorcm0gLXJmIGNvbmZ0ZXN0KiBjb25mZGVmcy5oCisjIEFJWCBjcHAgbG9zZXMgb24gYW4gZW1wdHkgZmlsZSwgc28gbWFrZSBzdXJlIGl0IGNvbnRhaW5zIGF0IGxlYXN0IGEgbmV3bGluZS4KK2VjaG8gPmNvbmZkZWZzLmgKKworIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJsZXMuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUEFDS0FHRV9OQU1FICIkUEFDS0FHRV9OQU1FIgorX0FDRU9GCisKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNLQUdFX1RBUk5BTUUiCitfQUNFT0YKKworCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJFBBQ0tBR0VfVkVSU0lPTiIKK19BQ0VPRgorCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKK19BQ0VPRgorCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiRQQUNLQUdFX0JVR1JFUE9SVCIKK19BQ0VPRgorCisKKyMgTGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgorIyBQcmVmZXIgZXhwbGljaXRseSBzZWxlY3RlZCBmaWxlIHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4KK2lmIHRlc3QgLXogIiRDT05GSUdfU0lURSI7IHRoZW4KKyAgaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05FOyB0aGVuCisgICAgQ09ORklHX1NJVEU9IiRwcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUgJHByZWZpeC9ldGMvY29uZmlnLnNpdGUiCisgIGVsc2UKKyAgICBDT05GSUdfU0lURT0iJGFjX2RlZmF1bHRfcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlICRhY19kZWZhdWx0X3ByZWZpeC9ldGMvY29uZmlnLnNpdGUiCisgIGZpCitmaQorZm9yIGFjX3NpdGVfZmlsZSBpbiAkQ09ORklHX1NJVEU7IGRvCisgIGlmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjUKK2VjaG8gIiRhc19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQorICAgIHNlZCAncy9eL3wgLycgIiRhY19zaXRlX2ZpbGUiID4mNQorICAgIC4gIiRhY19zaXRlX2ZpbGUiCisgIGZpCitkb25lCisKK2lmIHRlc3QgLXIgIiRjYWNoZV9maWxlIjsgdGhlbgorICAjIFNvbWUgdmVyc2lvbnMgb2YgYmFzaCB3aWxsIGZhaWwgdG8gc291cmNlIC9kZXYvbnVsbCAoc3BlY2lhbAorICAjIGZpbGVzIGFjdHVhbGx5KSwgc28gd2UgYXZvaWQgZG9pbmcgdGhhdC4KKyAgaWYgdGVzdCAtZiAiJGNhY2hlX2ZpbGUiOyB0aGVuCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CitlY2hvICIkYXNfbWU6IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CisgICAgY2FzZSAkY2FjaGVfZmlsZSBpbgorICAgICAgW1xcL10qIHwgPzpbXFwvXSogKSAuICRjYWNoZV9maWxlOzsKKyAgICAgICopICAgICAgICAgICAgICAgICAgICAgIC4gLi8kY2FjaGVfZmlsZTs7CisgICAgZXNhYworICBmaQorZWxzZQorICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CitlY2hvICIkYXNfbWU6IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQorICA+JGNhY2hlX2ZpbGUKK2ZpCisKKyMgQ2hlY2sgdGhhdCB0aGUgcHJlY2lvdXMgdmFyaWFibGVzIHNhdmVkIGluIHRoZSBjYWNoZSBoYXZlIGtlcHQgdGhlIHNhbWUKKyMgdmFsdWUuCithY19jYWNoZV9jb3JydXB0ZWQ9ZmFsc2UKK2ZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfAorCSAgICAgICBzZWQgLW4gJ3MvXmFjX2Vudl9cKFthLXpBLVpfMC05XSpcKV9zZXQ9LiovXDEvcCdgOyBkbworICBldmFsIGFjX29sZF9zZXQ9XCRhY19jdl9lbnZfJHthY192YXJ9X3NldAorICBldmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192YXJ9X3NldAorICBldmFsIGFjX29sZF92YWw9IlwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1ZSIKKyAgZXZhbCBhY19uZXdfdmFsPSJcJGFjX2Vudl8ke2FjX3Zhcn1fdmFsdWUiCisgIGNhc2UgJGFjX29sZF9zZXQsJGFjX25ld19zZXQgaW4KKyAgICBzZXQsKQorICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQorICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKKyAgICAsc2V0KQorICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9CisgICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OworICAgICwpOzsKKyAgICAqKQorICAgICAgaWYgdGVzdCAieCRhY19vbGRfdmFsIiAhPSAieCRhY19uZXdfdmFsIjsgdGhlbgorCXsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9CisJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xkX3ZhbCIgPiY1CitlY2hvICIkYXNfbWU6ICAgZm9ybWVyIHZhbHVlOiAgJGFjX29sZF92YWwiID4mMjt9CisJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogICBjdXJyZW50IHZhbHVlOiAkYWNfbmV3X3ZhbCIgPiY1CitlY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTogJGFjX25ld192YWwiID4mMjt9CisJYWNfY2FjaGVfY29ycnVwdGVkPToKKyAgICAgIGZpOzsKKyAgZXNhYworICAjIFBhc3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0dXMuCisgIGlmIHRlc3QgIiRhY19uZXdfc2V0IiA9IHNldDsgdGhlbgorICAgIGNhc2UgJGFjX25ld192YWwgaW4KKyAgICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP1wiXCddKikKKyAgICAgIGFjX2FyZz0kYWNfdmFyPWBlY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKyAgICAqKSBhY19hcmc9JGFjX3Zhcj0kYWNfbmV3X3ZhbCA7OworICAgIGVzYWMKKyAgICBjYXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KKyAgICAgICoiICckYWNfYXJnJyAiKikgOzsgIyBBdm9pZCBkdXBzLiAgVXNlIG9mIHF1b3RlcyBlbnN1cmVzIGFjY3VyYWN5LgorICAgICAgKikgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciIDs7CisgICAgZXNhYworICBmaQorZG9uZQoraWYgJGFjX2NhY2hlX2NvcnJ1cHRlZDsgdGhlbgorICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQorCithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKyAgICAgICAgICBhY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIGNvbmZpZy5oIgorCithbV9fYXBpX3ZlcnNpb249IjEuOSIKK2FjX2F1eF9kaXI9Citmb3IgYWNfZGlyIGluICRzcmNkaXIgJHNyY2Rpci8uLiAkc3JjZGlyLy4uLy4uOyBkbworICBpZiB0ZXN0IC1mICRhY19kaXIvaW5zdGFsbC1zaDsgdGhlbgorICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwtc2ggLWMiCisgICAgYnJlYWsKKyAgZWxpZiB0ZXN0IC1mICRhY19kaXIvaW5zdGFsbC5zaDsgdGhlbgorICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwuc2ggLWMiCisgICAgYnJlYWsKKyAgZWxpZiB0ZXN0IC1mICRhY19kaXIvc2h0b29sOyB0aGVuCisgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvc2h0b29sIGluc3RhbGwgLWMiCisgICAgYnJlYWsKKyAgZmkKK2RvbmUKK2lmIHRlc3QgLXogIiRhY19hdXhfZGlyIjsgdGhlbgorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gJHNyY2RpciAkc3JjZGlyLy4uICRzcmNkaXIvLi4vLi4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5zdGFsbC1zaCBvciBpbnN0YWxsLnNoIGluICRzcmNkaXIgJHNyY2Rpci8uLiAkc3JjZGlyLy4uLy4uIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQorYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzIgorYWNfY29uZmlnX3N1Yj0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIiCithY19jb25maWd1cmU9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWd1cmUiICMgVGhpcyBzaG91bGQgYmUgQ3lnbnVzIGNvbmZpZ3VyZS4KKworIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCisjIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKKyMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgorIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAorIyBJUklYIC9zYmluL2luc3RhbGwKKyMgQUlYIC9iaW4vaW5zdGFsbAorIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCisjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZworIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCisjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAic3RhZmYiCisjIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKKyMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCitpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgorY2FzZSAkYXNfZGlyLyBpbgorICAuLyB8IC4vLyB8IC9jQy8qIHwgXAorICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCisgIC91c3IvdWNiLyogKSA7OworICAqKQorICAgICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCisgICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290CisgICAgIyBieSBkZWZhdWx0LgorICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworCWlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCisJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorCSAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KKwkgICAgOgorCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorCSAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgorCSAgICA6CisJICBlbHNlCisJICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKwkgICAgYnJlYWsgMworCSAgZmkKKwlmaQorICAgICAgZG9uZQorICAgIGRvbmUKKyAgICA7OworZXNhYworZG9uZQorCisKK2ZpCisgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCisgICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCisgIGVsc2UKKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBXZSBkb24ndCBjYWNoZSBhCisgICAgIyBwYXRoIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLgorICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKKyAgZmkKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1CitlY2hvICIke0VDSE9fVH0kSU5TVEFMTCIgPiY2CisKKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KKyMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCit0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCisKK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCisKK3Rlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4gJEVDSE9fQyIgPiY2CisjIEp1c3QgaW4gY2FzZQorc2xlZXAgMQorZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCisjIERvIGBzZXQnIGluIGEgc3Vic2hlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCisjIGFyZ3VtZW50cy4gIE11c3QgdHJ5IC1MIGZpcnN0IGluIGNhc2UgY29uZmlndXJlIGlzIGFjdHVhbGx5IGEKKyMgc3ltbGluazsgc29tZSBzeXN0ZW1zIHBsYXkgd2VpcmQgZ2FtZXMgd2l0aCB0aGUgbW9kIHRpbWUgb2Ygc3ltbGlua3MKKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2YgdGhlIHN5bWxpbmsncyBjb250YWluaW5nCisjIGRpcmVjdG9yeSkuCitpZiAoCisgICBzZXQgWCBgbHMgLUx0ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUgMj4gL2Rldi9udWxsYAorICAgaWYgdGVzdCAiJCoiID0gIlgiOyB0aGVuCisgICAgICAjIC1MIGRpZG4ndCB3b3JrLgorICAgICAgc2V0IFggYGxzIC10ICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGVgCisgICBmaQorICAgcm0gLWYgY29uZnRlc3QuZmlsZQorICAgaWYgdGVzdCAiJCoiICE9ICJYICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwKKyAgICAgICYmIHRlc3QgIiQqIiAhPSAiWCBjb25mdGVzdC5maWxlICRzcmNkaXIvY29uZmlndXJlIjsgdGhlbgorCisgICAgICAjIElmIG5laXRoZXIgbWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEgYnJva2VuIGxzLiAgVGhpcyBjYW4gaGFwcGVuCisgICAgICAjIGlmLCBmb3IgaW5zdGFuY2UsIENPTkZJR19TSEVMTCBpcyBiYXNoIGFuZCBpdCBpbmhlcml0cyBhCisgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5CisgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBub3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCisgICAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBscyAtdCBhcHBlYXJzIHRvIGZhaWwuICBNYWtlIHN1cmUgdGhlcmUgaXMgbm90IGEgYnJva2VuCithbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KK2FsaWFzIGluIHlvdXIgZW52aXJvbm1lbnQiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyAgIGZpCisKKyAgIHRlc3QgIiQyIiA9IGNvbmZ0ZXN0LmZpbGUKKyAgICkKK3RoZW4KKyAgICMgT2suCisgICA6CitlbHNlCisgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKK0NoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IG5ld2x5IGNyZWF0ZWQgZmlsZSBpcyBvbGRlciB0aGFuIGRpc3RyaWJ1dGVkIGZpbGVzIQorQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKK3Rlc3QgIiRwcm9ncmFtX3ByZWZpeCIgIT0gTk9ORSAmJgorICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSJzLF4sJHByb2dyYW1fcHJlZml4LDskcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIKKyMgVXNlIGEgZG91YmxlICQgc28gbWFrZSBpZ25vcmVzIGl0LgordGVzdCAiJHByb2dyYW1fc3VmZml4IiAhPSBOT05FICYmCisgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMsXCQsJHByb2dyYW1fc3VmZml4LDskcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIKKyMgRG91YmxlIGFueSBcIG9yICQuICBlY2hvIG1pZ2h0IGludGVycHJldCBiYWNrc2xhc2hlcy4KKyMgQnkgZGVmYXVsdCB3YXMgYHMseCx4JywgcmVtb3ZlIGl0IGlmIHVzZWxlc3MuCitjYXQgPDxcX0FDRU9GID5jb25mdGVzdC5zZWQKK3MvW1xcJF0vJiYvZztzLztzLHgseCwkLy8KK19BQ0VPRgorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gZWNobyAkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSB8IHNlZCAtZiBjb25mdGVzdC5zZWRgCitybSBjb25mdGVzdC5zZWQKKworIyBleHBhbmQgJGFjX2F1eF9kaXIgdG8gYW4gYWJzb2x1dGUgcGF0aAorYW1fYXV4X2Rpcj1gY2QgJGFjX2F1eF9kaXIgJiYgcHdkYAorCit0ZXN0IHgiJHtNSVNTSU5HK3NldH0iID0geHNldCB8fCBNSVNTSU5HPSJcJHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKKyMgVXNlIGV2YWwgdG8gZXhwYW5kICRTSEVMTAoraWYgZXZhbCAiJE1JU1NJTkcgLS1ydW4gdHJ1ZSI7IHRoZW4KKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIKK2Vsc2UKKyAgYW1fbWlzc2luZ19ydW49CisgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiYyO30KK2ZpCisKK2lmIG1rZGlyIC1wIC0tdmVyc2lvbiAuID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICEgLWQgLi8tLXZlcnNpb247IHRoZW4KKyAgIyBXZSB1c2VkIHRvIGtlZXBpbmcgdGhlIGAuJyBhcyBmaXJzdCBhcmd1bWVudCwgaW4gb3JkZXIgdG8KKyAgIyBhbGxvdyAkKG1rZGlyX3ApIHRvIGJlIHVzZWQgd2l0aG91dCBhcmd1bWVudC4gIEFzIGluCisgICMgICAkKG1rZGlyX3ApICQoc29tZWRpcikKKyAgIyB3aGVyZSAkKHNvbWVkaXIpIGlzIGNvbmRpdGlvbmFsbHkgZGVmaW5lZC4gIEhvd2V2ZXIgdGhpcyBpcyB3cm9uZworICAjIGZvciB0d28gcmVhc29uczoKKyAgIyAgMS4gaWYgdGhlIHBhY2thZ2UgaXMgaW5zdGFsbGVkIGJ5IGEgdXNlciB3aG8gY2Fubm90IHdyaXRlIGAuJworICAjICAgICBtYWtlIGluc3RhbGwgd2lsbCBmYWlsLAorICAjICAyLiB0aGUgYWJvdmUgY29tbWVudCBzaG91bGQgbW9zdCBjZXJ0YWlubHkgcmVhZAorICAjICAgICAkKG1rZGlyX3ApICQoREVTVERJUikkKHNvbWVkaXIpCisgICMgICAgIHNvIGl0IGRvZXMgbm90IHdvcmsgd2hlbiAkKHNvbWVkaXIpIGlzIHVuZGVmaW5lZCBhbmQKKyAgIyAgICAgJChERVNURElSKSBpcyBub3QuCisgICMgIFRvIHN1cHBvcnQgdGhlIGxhdHRlciBjYXNlLCB3ZSBoYXZlIHRvIHdyaXRlCisgICMgICAgIHRlc3QgLXogIiQoc29tZWRpcikiIHx8ICQobWtkaXJfcCkgJChERVNURElSKSQoc29tZWRpciksCisgICMgIHNvIHRoZSBgLicgdHJpY2sgaXMgcG9pbnRsZXNzLgorICBta2Rpcl9wPSdta2RpciAtcCAtLScKK2Vsc2UKKyAgIyBPbiBOZXh0U3RlcCBhbmQgT3BlblN0ZXAsIHRoZSBgbWtkaXInIGNvbW1hbmQgZG9lcyBub3QKKyAgIyByZWNvZ25pemUgYW55IG9wdGlvbi4gIEl0IHdpbGwgaW50ZXJwcmV0IGFsbCBvcHRpb25zIGFzCisgICMgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLCBhbmQgdGhlbiBhYm9ydCBiZWNhdXNlIGAuJyBhbHJlYWR5CisgICMgZXhpc3RzLgorICBmb3IgZCBpbiAuLy1wIC4vLS12ZXJzaW9uOworICBkbworICAgIHRlc3QgLWQgJGQgJiYgcm1kaXIgJGQKKyAgZG9uZQorICAjICQobWtpbnN0YWxsZGlycykgaXMgZGVmaW5lZCBieSBBdXRvbWFrZSBpZiBta2luc3RhbGxkaXJzIGV4aXN0cy4KKyAgaWYgdGVzdCAtZiAiJGFjX2F1eF9kaXIvbWtpbnN0YWxsZGlycyI7IHRoZW4KKyAgICBta2Rpcl9wPSckKG1raW5zdGFsbGRpcnMpJworICBlbHNlCisgICAgbWtkaXJfcD0nJChpbnN0YWxsX3NoKSAtZCcKKyAgZmkKK2ZpCisKK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdrIGF3aworZG8KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCisgIGFjX2N2X3Byb2dfQVdLPSIkQVdLIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19BV0s9IiRhY19wcm9nIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKK2ZpCitmaQorQVdLPSRhY19jdl9wcm9nX0FXSworaWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJEFXSyIgPiY1CitlY2hvICIke0VDSE9fVH0kQVdLIiA+JjYKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorZWNobyAiJHtFQ0hPX1R9bm8iID4mNgorZmkKKworICB0ZXN0IC1uICIkQVdLIiAmJiBicmVhaworZG9uZQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gJEVDSE9fQyIgPiY2CitzZXQgZHVtbXkgJHtNQUtFLW1ha2V9OyBhY19tYWtlPWBlY2hvICIkMiIgfCBzZWQgJ3ksOi4vKy0sX19fcF8sJ2AKK2lmIGV2YWwgInRlc3QgXCJcJHthY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0Lm1ha2UgPDxcX0FDRU9GCithbGw6CisJQGVjaG8gJ2FjX21ha2V0ZW1wPSIkKE1BS0UpIicKK19BQ0VPRgorIyBHTlUgbWFrZSBzb21ldGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZy4uLiIsIHdoaWNoIHdvdWxkIGNvbmZ1c2UgdXMuCitldmFsIGAke01BS0UtbWFrZX0gLWYgY29uZnRlc3QubWFrZSAyPi9kZXYvbnVsbCB8IGdyZXAgdGVtcD1gCitpZiB0ZXN0IC1uICIkYWNfbWFrZXRlbXAiOyB0aGVuCisgIGV2YWwgYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0PXllcworZWxzZQorICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldD1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0Lm1ha2UKK2ZpCitpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyRhY19jdl9wcm9nX21ha2VfJyR7YWNfbWFrZX1fc2V0YFwiID0geWVzIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQorZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKKyAgU0VUX01BS0U9CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKKyAgU0VUX01BS0U9Ik1BS0U9JHtNQUtFLW1ha2V9IgorZmkKKworcm0gLXJmIC50c3QgMj4vZGV2L251bGwKK21rZGlyIC50c3QgMj4vZGV2L251bGwKK2lmIHRlc3QgLWQgLnRzdDsgdGhlbgorICBhbV9fbGVhZGluZ19kb3Q9LgorZWxzZQorICBhbV9fbGVhZGluZ19kb3Q9XworZmkKK3JtZGlyIC50c3QgMj4vZGV2L251bGwKKworIyB0ZXN0IHRvIHNlZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCitpZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiICYmCisgICB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuIFwibWFrZSBkaXN0Y2xlYW5cIiB0aGVyZSBmaXJzdCIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuIFwibWFrZSBkaXN0Y2xlYW5cIiB0aGVyZSBmaXJzdCIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKKworIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCitpZiB0ZXN0IC16ICIkQ1lHUEFUSF9XIjsgdGhlbgorICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4KKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCisgIGVsc2UKKyAgICBDWUdQQVRIX1c9ZWNobworICBmaQorZmkKKworCisjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCisgUEFDS0FHRT0nc3RyYWNlJworIFZFUlNJT049JzQuNS4xMicKKworCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBBQ0tBR0UgIiRQQUNLQUdFIgorX0FDRU9GCisKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKK19BQ0VPRgorCisjIFNvbWUgdG9vbHMgQXV0b21ha2UgbmVlZHMuCisKK0FDTE9DQUw9JHtBQ0xPQ0FMLSIke2FtX21pc3NpbmdfcnVufWFjbG9jYWwtJHthbV9fYXBpX3ZlcnNpb259In0KKworCitBVVRPQ09ORj0ke0FVVE9DT05GLSIke2FtX21pc3NpbmdfcnVufWF1dG9jb25mIn0KKworCitBVVRPTUFLRT0ke0FVVE9NQUtFLSIke2FtX21pc3NpbmdfcnVufWF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSJ9CisKKworQVVUT0hFQURFUj0ke0FVVE9IRUFERVItIiR7YW1fbWlzc2luZ19ydW59YXV0b2hlYWRlciJ9CisKKworTUFLRUlORk89JHtNQUtFSU5GTy0iJHthbV9taXNzaW5nX3J1bn1tYWtlaW5mbyJ9CisKK2luc3RhbGxfc2g9JHtpbnN0YWxsX3NoLSIkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIn0KKworIyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3aGVuIHRoZSB1c2VyCisjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0CisjIHRvb2wgdG8gdXNlIGluIGNyb3NzLWNvbXBpbGF0aW9uIGVudmlyb25tZW50cywgdGhlcmVmb3JlIEF1dG9tYWtlCisjIHdpbGwgaG9ub3IgdGhlIGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgoraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4KKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9c3RyaXA7IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgorICBhY19jdl9wcm9nX1NUUklQPSIkU1RSSVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX1NUUklQPSIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKK2ZpCitmaQorU1RSSVA9JGFjX2N2X3Byb2dfU1RSSVAKK2lmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNUUklQIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRTVFJJUCIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19TVFJJUCI7IHRoZW4KKyAgYWNfY3RfU1RSSVA9JFNUUklQCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1NUUklQK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iJGFjX2N0X1NUUklQIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0ic3RyaXAiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19hY19jdF9TVFJJUCIgJiYgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iOiIKK2ZpCitmaQorYWNfY3RfU1RSSVA9JGFjX2N2X3Byb2dfYWNfY3RfU1RSSVAKK2lmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X1NUUklQIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdF9TVFJJUCIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKKyAgU1RSSVA9JGFjX2N0X1NUUklQCitlbHNlCisgIFNUUklQPSIkYWNfY3ZfcHJvZ19TVFJJUCIKK2ZpCisKK2ZpCitJTlNUQUxMX1NUUklQX1BST0dSQU09Ilwke1NIRUxMfSBcJChpbnN0YWxsX3NoKSAtYyAtcyIKKworIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KKyMgc29tZSBwbGF0Zm9ybXMuCisjIEFsd2F5cyBkZWZpbmUgQU1UQVIgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisKK0FNVEFSPSR7QU1UQVItIiR7YW1fbWlzc2luZ19ydW59dGFyIn0KKworYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInOyBhbV9fdW50YXI9JyR7QU1UQVJ9IHhmIC0nCisKKworCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdG8gZW5hYmxlIG1haW50YWluZXItc3BlY2lmaWMgcG9ydGlvbnMgb2YgTWFrZWZpbGVzIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMuLi4gJEVDSE9fQyIgPiY2CisgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLW1haW50YWluZXItbW9kZSBvciAtLWRpc2FibGUtbWFpbnRhaW5lci1tb2RlIHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7ZW5hYmxlX21haW50YWluZXJfbW9kZStzZXR9IiA9IHNldDsgdGhlbgorICBlbmFibGV2YWw9IiRlbmFibGVfbWFpbnRhaW5lcl9tb2RlIgorICBVU0VfTUFJTlRBSU5FUl9NT0RFPSRlbmFibGV2YWwKK2Vsc2UKKyAgVVNFX01BSU5UQUlORVJfTU9ERT1ubworZmk7CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRVU0VfTUFJTlRBSU5FUl9NT0RFIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRVU0VfTUFJTlRBSU5FUl9NT0RFIiA+JjYKKworCitpZiB0ZXN0ICRVU0VfTUFJTlRBSU5FUl9NT0RFID0geWVzOyB0aGVuCisgIE1BSU5UQUlORVJfTU9ERV9UUlVFPQorICBNQUlOVEFJTkVSX01PREVfRkFMU0U9JyMnCitlbHNlCisgIE1BSU5UQUlORVJfTU9ERV9UUlVFPScjJworICBNQUlOVEFJTkVSX01PREVfRkFMU0U9CitmaQorCisgIE1BSU5UPSRNQUlOVEFJTkVSX01PREVfVFJVRQorCisKKyMgTWFrZSBzdXJlIHdlIGNhbiBydW4gY29uZmlnLnN1Yi4KKyRhY19jb25maWdfc3ViIHN1bjQgPi9kZXYvbnVsbCAyPiYxIHx8CisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gJGFjX2NvbmZpZ19zdWIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biAkYWNfY29uZmlnX3N1YiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZS4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfYnVpbGQrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYWNfY3ZfYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCit0ZXN0IC16ICIkYWNfY3ZfYnVpbGRfYWxpYXMiICYmCisgIGFjX2N2X2J1aWxkX2FsaWFzPWAkYWNfY29uZmlnX2d1ZXNzYAordGVzdCAteiAiJGFjX2N2X2J1aWxkX2FsaWFzIiAmJgorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CithY19jdl9idWlsZD1gJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzYCB8fAorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfYnVpbGRfYWxpYXMgZmFpbGVkIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhcyBmYWlsZWQiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfYnVpbGQiID4mNgorYnVpbGQ9JGFjX2N2X2J1aWxkCitidWlsZF9jcHU9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKK2J1aWxkX3ZlbmRvcj1gZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAorYnVpbGRfb3M9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X2hvc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYWNfY3ZfaG9zdF9hbGlhcz0kaG9zdF9hbGlhcwordGVzdCAteiAiJGFjX2N2X2hvc3RfYWxpYXMiICYmCisgIGFjX2N2X2hvc3RfYWxpYXM9JGFjX2N2X2J1aWxkX2FsaWFzCithY19jdl9ob3N0PWAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfaG9zdF9hbGlhc2AgfHwKKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hvc3RfYWxpYXMgZmFpbGVkIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9ob3N0X2FsaWFzIGZhaWxlZCIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hvc3QiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hvc3QiID4mNgoraG9zdD0kYWNfY3ZfaG9zdAoraG9zdF9jcHU9YGVjaG8gJGFjX2N2X2hvc3QgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMS8nYAoraG9zdF92ZW5kb3I9YGVjaG8gJGFjX2N2X2hvc3QgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAoraG9zdF9vcz1gZWNobyAkYWNfY3ZfaG9zdCB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wzLydgCisKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBvcGVyYXRpbmcgc3lzdGVtIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBvcGVyYXRpbmcgc3lzdGVtLi4uICRFQ0hPX0MiID4mNgorY2FzZSAiJGhvc3Rfb3MiIGluCitsaW51eCopCisJb3BzeXM9bGludXgKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgTElOVVggMQorX0FDRU9GCisKKwk7Oworc3Vub3M0KikKKwlvcHN5cz1zdW5vczQKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgU1VOT1M0IDEKK19BQ0VPRgorCisJOzsKK3NvbGFyaXMyKiB8IHN5c3ZbNDVdKiB8IGlyaXhbNTZdKikKKwlvcHN5cz1zdnI0CisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFNWUjQgMQorX0FDRU9GCisKKwljYXNlICIkaG9zdF9vcyIgaW4KKwlzeXN2NC4ydXcqKQorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBVTklYV0FSRSAyCitfQUNFT0YKKworCQk7OworCXN5c3Y1KikKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgVU5JWFdBUkUgNworX0FDRU9GCisKKwkJOzsKKwllc2FjCisJOzsKK2ZyZWVic2QqKQorCW9wc3lzPWZyZWVic2QKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgRlJFRUJTRCAxCitfQUNFT0YKKworCTs7CisqKQorCWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IE5PISIgPiY1CitlY2hvICIke0VDSE9fVH1OTyEiID4mNgorCXsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IG9wZXJhdGluZyBzeXN0ZW0gJGhvc3Rfb3MgaXMgbm90IHN1cHBvcnRlZCBieSBzdHJhY2UiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogb3BlcmF0aW5nIHN5c3RlbSAkaG9zdF9vcyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHN0cmFjZSIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCTs7Citlc2FjCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkb3BzeXMiID4mNQorZWNobyAiJHtFQ0hPX1R9JG9wc3lzIiA+JjYKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuLi4gJEVDSE9fQyIgPiY2CitjYXNlICIkaG9zdF9jcHUiIGluCitpWzM0NTZdODZ8cGVudGl1bSkKKwlhcmNoPWkzODYKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSTM4NiAxCitfQUNFT0YKKworCTs7CitpYTY0KQorCWFyY2g9aWE2NAorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBJQTY0IDEKK19BQ0VPRgorCisJOzsKK202OGspCisJYXJjaD1tNjhrCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIE02OEsgMQorX0FDRU9GCisKKwk7Oworc3BhcmM2NCopCisJYXJjaD1zcGFyYzY0CisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFNQQVJDNjQgMQorX0FDRU9GCisKKwk7Oworc3BhcmMqKQorCWFyY2g9c3BhcmMKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgU1BBUkMgMQorX0FDRU9GCisKKwk7OworbWlwcyopCisJYXJjaD1taXBzCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIE1JUFMgMQorX0FDRU9GCisKKwk7OworYWxwaGEqKQorCWFyY2g9YWxwaGEKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgQUxQSEEgMQorX0FDRU9GCisKKwk7OworcG93ZXJwYyopCisJYXJjaD1wb3dlcnBjCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFBPV0VSUEMgMQorX0FDRU9GCisKKwk7OworYXJtKikKKwlhcmNoPWFybQorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBBUk0gMQorX0FDRU9GCisKKwk7OworczM5MCkKKwlhcmNoPXMzOTAKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgUzM5MCAxCitfQUNFT0YKKworCTs7CitzMzkweCkKKwlhcmNoPXMzOTB4CisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFMzOTBYIDEKK19BQ0VPRgorCisJOzsKK2hwcGEqfHBhcmlzYyopCisJYXJjaD1ocHBhCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIEhQUEEgMQorX0FDRU9GCisKKwk7Oworc2gpCisJYXJjaD1zaAorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBTSCAxCitfQUNFT0YKKworCTs7CitzaDY0KQorCWFyY2g9c2g2NAorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBTSDY0IDEKK19BQ0VPRgorCisJOzsKK3g4Nj82NCopCisJYXJjaD14ODZfNjQKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgWDg2XzY0IDEKK19BQ0VPRgorCisJOzsKKyopCisJZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogTk8hIiA+JjUKK2VjaG8gIiR7RUNIT19UfU5PISIgPiY2CisJeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogYXJjaGl0ZWN0dXJlICRob3N0X2NwdSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHN0cmFjZSIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBhcmNoaXRlY3R1cmUgJGhvc3RfY3B1IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc3RyYWNlIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisJOzsKK2VzYWMKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhcmNoIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhcmNoIiA+JjYKKworCisKKworCisKK2lmIHRlc3QgeCRvcHN5cyA9IHhsaW51eDsgdGhlbgorICBMSU5VWF9UUlVFPQorICBMSU5VWF9GQUxTRT0nIycKK2Vsc2UKKyAgTElOVVhfVFJVRT0nIycKKyAgTElOVVhfRkFMU0U9CitmaQorCisKKworaWYgdGVzdCB4JGFyY2ggPSB4aTM4NjsgdGhlbgorICBJMzg2X1RSVUU9CisgIEkzODZfRkFMU0U9JyMnCitlbHNlCisgIEkzODZfVFJVRT0nIycKKyAgSTM4Nl9GQUxTRT0KK2ZpCisKKworCitpZiB0ZXN0IHgkYXJjaCA9IHh4ODZfNjQ7IHRoZW4KKyAgWDg2XzY0X1RSVUU9CisgIFg4Nl82NF9GQUxTRT0nIycKK2Vsc2UKKyAgWDg2XzY0X1RSVUU9JyMnCisgIFg4Nl82NF9GQUxTRT0KK2ZpCisKKworCitpZiB0ZXN0IHgkb3BzeXMgPSB4c3Vub3M0OyB0aGVuCisgIFNVTk9TNF9UUlVFPQorICBTVU5PUzRfRkFMU0U9JyMnCitlbHNlCisgIFNVTk9TNF9UUlVFPScjJworICBTVU5PUzRfRkFMU0U9CitmaQorCisKKworaWYgdGVzdCB4JG9wc3lzID0geHN2cjQ7IHRoZW4KKyAgU1ZSNF9UUlVFPQorICBTVlI0X0ZBTFNFPScjJworZWxzZQorICBTVlI0X1RSVUU9JyMnCisgIFNWUjRfRkFMU0U9CitmaQorCisKKworaWYgdGVzdCB4JG9wc3lzID0geGZyZWVic2Q7IHRoZW4KKyAgRlJFRUJTRF9UUlVFPQorICBGUkVFQlNEX0ZBTFNFPScjJworZWxzZQorICBGUkVFQlNEX1RSVUU9JyMnCisgIEZSRUVCU0RfRkFMU0U9CitmaQorCisKK2FjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1nY2M7IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWdjYyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCitmaQorZmkKK0NDPSRhY19jdl9wcm9nX0NDCitpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CitlY2hvICIke0VDSE9fVH0kQ0MiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCitmaQoraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCisgIGFjX2N0X0NDPSRDQworICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgZ2NjOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iZ2NjIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKK2ZpCitmaQorYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKK2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdF9DQyIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKKyAgQ0M9JGFjX2N0X0NDCitlbHNlCisgIENDPSIkYWNfY3ZfcHJvZ19DQyIKK2ZpCisKK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Y2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWNjIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKK2ZpCitmaQorQ0M9JGFjX2N2X3Byb2dfQ0MKK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRDQyIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19DQyI7IHRoZW4KKyAgYWNfY3RfQ0M9JENDCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iY2MiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworZmkKK2ZpCithY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjYKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorZWNobyAiJHtFQ0hPX1R9bm8iID4mNgorZmkKKworICBDQz0kYWNfY3RfQ0MKK2Vsc2UKKyAgQ0M9IiRhY19jdl9wcm9nX0NDIgorZmkKKworZmkKK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorICBhY19wcm9nX3JlamVjdGVkPW5vCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGlmIHRlc3QgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID0gIi91c3IvdWNiL2NjIjsgdGhlbgorICAgICAgIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCisgICAgICAgY29udGludWUKKyAgICAgZmkKKyAgICBhY19jdl9wcm9nX0NDPSJjYyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCitpZiB0ZXN0ICRhY19wcm9nX3JlamVjdGVkID0geWVzOyB0aGVuCisgICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KKyAgc2V0IGR1bW15ICRhY19jdl9wcm9nX0NDCisgIHNoaWZ0CisgIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgorICAgICMgV2UgY2hvc2UgYSBkaWZmZXJlbnQgY29tcGlsZXIgZnJvbSB0aGUgYm9ndXMgb25lLgorICAgICMgSG93ZXZlciwgaXQgaGFzIHRoZSBzYW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2lsbCBiZSBjaG9zZW4KKyAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KKyAgICBzaGlmdAorICAgIGFjX2N2X3Byb2dfQ0M9IiRhc19kaXIvJGFjX3dvcmQkezErJyAnfSRAIgorICBmaQorZmkKK2ZpCitmaQorQ0M9JGFjX2N2X3Byb2dfQ0MKK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRDQyIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKK2ZpCitpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgZm9yIGFjX3Byb2cgaW4gY2wKKyAgZG8KKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCitlbHNlCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Byb2dfQ0M9IiRhY190b29sX3ByZWZpeCRhY19wcm9nIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKK2ZpCitmaQorQ0M9JGFjX2N2X3Byb2dfQ0MKK2lmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRDQyIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKKyAgICB0ZXN0IC1uICIkQ0MiICYmIGJyZWFrCisgIGRvbmUKK2ZpCitpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisgIGFjX2N0X0NDPSRDQworICBmb3IgYWNfcHJvZyBpbiBjbAorZG8KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgorICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfcHJvZyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCitmaQorZmkKK2FjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCitpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCisgIHRlc3QgLW4gIiRhY19jdF9DQyIgJiYgYnJlYWsKK2RvbmUKKworICBDQz0kYWNfY3RfQ0MKK2ZpCisKK2ZpCisKKwordGVzdCAteiAiJENDIiAmJiB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCisjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCitlY2hvICIkYXNfbWU6JExJTkVOTzoiIFwKKyAgICAgImNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24iID4mNQorYWNfY29tcGlsZXI9YHNldCBYICRhY19jb21waWxlOyBlY2hvICQyYAoreyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLS12ZXJzaW9uIDwvZGV2L251bGwgPiY1XCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA8L2Rldi9udWxsID4mNSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfQoreyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLXYgPC9kZXYvbnVsbCA+JjVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZXIgLXYgPC9kZXYvbnVsbCA+JjUpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KK3sgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVyIC1WIDwvZGV2L251bGwgPiY1XCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGVyIC1WIDwvZGV2L251bGwgPiY1KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9CisKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCithY19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBhLm91dCBhLmV4ZSBiLm91dCIKKyMgVHJ5IHRvIGNyZWF0ZSBhbiBleGVjdXRhYmxlIHdpdGhvdXQgLW8gZmlyc3QsIGRpc3JlZ2FyZCBhLm91dC4KKyMgSXQgd2lsbCBoZWxwIHVzIGRpYWdub3NlIGJyb2tlbiBjb21waWxlcnMsIGFuZCBmaW5kaW5nIG91dCBhbiBpbnR1aXRpb24KKyMgb2YgZXhlZXh0LgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiAkRUNIT19DIiA+JjYKK2FjX2xpbmtfZGVmYXVsdD1gZWNobyAiJGFjX2xpbmsiIHwgc2VkICdzLyAtbyAqY29uZnRlc3RbXiBdKi8vJ2AKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtfZGVmYXVsdFwiIikgPiY1CisgIChldmFsICRhY19saW5rX2RlZmF1bHQpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKyAgIyBGaW5kIHRoZSBvdXRwdXQsIHN0YXJ0aW5nIGZyb20gdGhlIG1vc3QgbGlrZWx5LiAgVGhpcyBzY2hlbWUgaXMKKyMgbm90IHJvYnVzdCB0byBqdW5rIGluIGAuJywgaGVuY2UgZ28gdG8gd2lsZGNhcmRzIChhLiopIG9ubHkgYXMgYSBsYXN0CisjIHJlc29ydC4KKworIyBCZSBjYXJlZnVsIHRvIGluaXRpYWxpemUgdGhpcyB2YXJpYWJsZSwgc2luY2UgaXQgdXNlZCB0byBiZSBjYWNoZWQuCisjIE90aGVyd2lzZSBhbiBvbGQgY2FjaGUgdmFsdWUgb2YgYG5vJyBsZWQgdG8gYEVYRUVYVCA9IG5vJyBpbiBhIE1ha2VmaWxlLgorYWNfY3ZfZXhlZXh0PQorIyBiLm91dCBpcyBjcmVhdGVkIGJ5IGk5NjAgY29tcGlsZXJzLgorZm9yIGFjX2ZpbGUgaW4gYV9vdXQuZXhlIGEuZXhlIGNvbmZ0ZXN0LmV4ZSBhLm91dCBjb25mdGVzdCBhLiogY29uZnRlc3QuKiBiLm91dAorZG8KKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisgIGNhc2UgJGFjX2ZpbGUgaW4KKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubyB8ICoub2JqICkKKwk7OworICAgIGNvbmZ0ZXN0LiRhY19leHQgKQorCSMgVGhpcyBpcyB0aGUgc291cmNlIGZpbGUuCisJOzsKKyAgICBbYWJdLm91dCApCisJIyBXZSBmb3VuZCB0aGUgZGVmYXVsdCBleGVjdXRhYmxlLCBidXQgZXhlZXh0PScnIGlzIG1vc3QKKwkjIGNlcnRhaW5seSByaWdodC4KKwlicmVhazs7CisgICAgKi4qICkKKwlhY19jdl9leGVleHQ9YGV4cHIgIiRhY19maWxlIiA6ICdbXi5dKlwoXC4uKlwpJ2AKKwkjIEZJWE1FOiBJIGJlbGlldmUgd2UgZXhwb3J0IGFjX2N2X2V4ZWV4dCBmb3IgTGlidG9vbCwKKwkjIGJ1dCBpdCB3b3VsZCBiZSBjb29sIHRvIGZpbmQgb3V0IGlmIGl0J3MgdHJ1ZS4gIERvZXMgYW55Ym9keQorCSMgbWFpbnRhaW4gTGlidG9vbD8gLS1ha2ltLgorCWV4cG9ydCBhY19jdl9leGVleHQKKwlicmVhazs7CisgICAgKiApCisJYnJlYWs7OworICBlc2FjCitkb25lCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK3sgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgNzcpOyBleGl0IDc3OyB9OyB9CitmaQorCithY19leGVleHQ9JGFjX2N2X2V4ZWV4dAorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2ZpbGUiID4mNgorCisjIENoZWNrIHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKKyMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiAkRUNIT19DIiA+JjYKKyMgRklYTUU6IFRoZXNlIGNyb3NzIGNvbXBpbGVyIGhhY2tzIHNob3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKKyMgSWYgbm90IGNyb3NzIGNvbXBpbGluZywgY2hlY2sgdGhhdCB3ZSBjYW4gcnVuIGEgc2ltcGxlIHByb2dyYW0uCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSB5ZXM7IHRoZW4KKyAgaWYgeyBhY190cnk9Jy4vJGFjX2ZpbGUnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgICBjcm9zc19jb21waWxpbmc9bm8KKyAgZWxzZQorICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7IHRoZW4KKwljcm9zc19jb21waWxpbmc9eWVzCisgICAgZWxzZQorCXsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gQyBjb21waWxlZCBwcm9ncmFtcy4KK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biBDIGNvbXBpbGVkIHByb2dyYW1zLgorSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICAgIGZpCisgIGZpCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKK2VjaG8gIiR7RUNIT19UfXllcyIgPiY2CisKK3JtIC1mIGEub3V0IGEuZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAorYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKKyMgQ2hlY2sgdGhlIGNvbXBpbGVyIHByb2R1Y2VzIGV4ZWN1dGFibGVzIHdlIGNhbiBydW4uICBJZiBub3QsIGVpdGhlcgorIyB0aGUgY29tcGlsZXIgaXMgYnJva2VuLCBvciB3ZSBjcm9zcyBjb21waWxlLgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAkRUNIT19DIiA+JjYKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRjcm9zc19jb21waWxpbmciID4mNQorZWNobyAiJHtFQ0hPX1R9JGNyb3NzX2NvbXBpbGluZyIgPiY2CisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcy4uLiAkRUNIT19DIiA+JjYKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorICAjIElmIGJvdGggYGNvbmZ0ZXN0LmV4ZScgYW5kIGBjb25mdGVzdCcgYXJlIGBwcmVzZW50JyAod2VsbCwgb2JzZXJ2YWJsZSkKKyMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAorIyB3b3JrIHByb3Blcmx5IChpLmUuLCByZWZlciB0byBgY29uZnRlc3QuZXhlJyksIHdoaWxlIGl0IHdvbid0IHdpdGgKKyMgYHJtJy4KK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbworICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29udGludWUKKyAgY2FzZSAkYWNfZmlsZSBpbgorICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5vIHwgKi5vYmogKSA7OworICAgICouKiApIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAorCSAgZXhwb3J0IGFjX2N2X2V4ZWV4dAorCSAgYnJlYWs7OworICAgICogKSBicmVhazs7CisgIGVzYWMKK2RvbmUKK2Vsc2UKKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluaworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIGV4ZWN1dGFibGVzOiBjYW5ub3QgY29tcGlsZSBhbmQgbGluaworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCisKK3JtIC1mIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2V4ZWV4dCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfZXhlZXh0IiA+JjYKKworcm0gLWYgY29uZnRlc3QuJGFjX2V4dAorRVhFRVhUPSRhY19jdl9leGVleHQKK2FjX2V4ZWV4dD0kRVhFRVhUCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iagoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisgIGZvciBhY19maWxlIGluIGAobHMgY29uZnRlc3QubyBjb25mdGVzdC5vYmo7IGxzIGNvbmZ0ZXN0LiopIDI+L2Rldi9udWxsYDsgZG8KKyAgY2FzZSAkYWNfZmlsZSBpbgorICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnICkgOzsKKyAgICAqKSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKKyAgICAgICBicmVhazs7CisgIGVzYWMKK2RvbmUKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKKworcm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X29iamV4dCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3Zfb2JqZXh0IiA+JjYKK09CSkVYVD0kYWNfY3Zfb2JqZXh0CithY19vYmpleHQ9JE9CSkVYVAorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfY19jb21waWxlcl9nbnUrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworI2lmbmRlZiBfX0dOVUNfXworICAgICAgIGNob2tlIG1lCisjZW5kaWYKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2NvbXBpbGVyX2dudT15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY29tcGlsZXJfZ251PW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorYWNfY3ZfY19jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQorCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9jX2NvbXBpbGVyX2dudSIgPiY2CitHQ0M9YHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllcyAmJiBlY2hvIHllc2AKK2FjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KK2FjX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKK0NGTEFHUz0iLWciCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMgLWcuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworaW50CittYWluICgpCit7CisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9wcm9nX2NjX2c9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X3Byb2dfY2NfZz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19nIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9wcm9nX2NjX2ciID4mNgoraWYgdGVzdCAiJGFjX3Rlc3RfQ0ZMQUdTIiA9IHNldDsgdGhlbgorICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdTCitlbGlmIHRlc3QgJGFjX2N2X3Byb2dfY2NfZyA9IHllczsgdGhlbgorICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAgIENGTEFHUz0iLWcgLU8yIgorICBlbHNlCisgICAgQ0ZMQUdTPSItZyIKKyAgZmkKK2Vsc2UKKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgICBDRkxBR1M9Ii1PMiIKKyAgZWxzZQorICAgIENGTEFHUz0KKyAgZmkKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IEFOU0kgQyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBBTlNJIEMuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2Nfc3RkYytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBhY19jdl9wcm9nX2NjX3N0ZGM9bm8KK2FjX3NhdmVfQ0M9JENDCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisvKiBNb3N0IG9mIHRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIHN0b2xlbiBmcm9tIFJDUyA1LjcncyBzcmMvY29uZi5zaC4gICovCitzdHJ1Y3QgYnVmIHsgaW50IHg7IH07CitGSUxFICogKCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOworc3RhdGljIGNoYXIgKmUgKHAsIGkpCisgICAgIGNoYXIgKipwOworICAgICBpbnQgaTsKK3sKKyAgcmV0dXJuIHBbaV07Cit9CitzdGF0aWMgY2hhciAqZiAoY2hhciAqICgqZykgKGNoYXIgKiosIGludCksIGNoYXIgKipwLCAuLi4pCit7CisgIGNoYXIgKnM7CisgIHZhX2xpc3QgdjsKKyAgdmFfc3RhcnQgKHYscCk7CisgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7CisgIHZhX2VuZCAodik7CisgIHJldHVybiBzOworfQorCisvKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxtb3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhhcworICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRzLgorICAgVGhlc2UgZG9uJ3QgcHJvdm9rZSBhbiBlcnJvciB1bmZvcnR1bmF0ZWx5LCBpbnN0ZWFkIGFyZSBzaWxlbnRseSB0cmVhdGVkCisgICBhcyAneCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3IsIHVudGlsIC1zdGQxIGlzIGFkZGVkIHRvIGdldAorICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1cmlvdXNseSAnXHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUsIGZvciBhbgorICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCisgICB0aGF0J3MgdHJ1ZSBvbmx5IHdpdGggLXN0ZDEuICAqLworaW50IG9zZjRfY2NfYXJyYXkgWydceDAwJyA9PSAwID8gMSA6IC0xXTsKKworaW50IHRlc3QgKGludCBpLCBkb3VibGUgeCk7CitzdHJ1Y3QgczEge2ludCAoKmYpIChpbnQgYSk7fTsKK3N0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9OworaW50IHBhaXJuYW1lcyAoaW50LCBjaGFyICoqLCBGSUxFICooKikoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpLCBpbnQsIGludCk7CitpbnQgYXJnYzsKK2NoYXIgKiphcmd2OworaW50CittYWluICgpCit7CityZXR1cm4gZiAoZSwgYXJndiwgMCkgIT0gYXJndlswXSAgfHwgIGYgKGUsIGFyZ3YsIDEpICE9IGFyZ3ZbMV07CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKKyMgRG9uJ3QgdHJ5IGdjYyAtYW5zaTsgdGhhdCB0dXJucyBvZmYgdXNlZnVsIGV4dGVuc2lvbnMgYW5kCisjIGJyZWFrcyBzb21lIHN5c3RlbXMnIGhlYWRlciBmaWxlcy4KKyMgQUlYCQkJLXFsYW5nbHZsPWFuc2kKKyMgVWx0cml4IGFuZCBPU0YvMQktc3RkMQorIyBIUC1VWCAxMC4yMCBhbmQgbGF0ZXIJLUFlCisjIEhQLVVYIG9sZGVyIHZlcnNpb25zCS1BYSAtRF9IUFVYX1NPVVJDRQorIyBTVlI0CQkJLVhjIC1EX19FWFRFTlNJT05TX18KK2ZvciBhY19hcmcgaW4gIiIgLXFsYW5nbHZsPWFuc2kgLXN0ZDEgLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNfXyIKK2RvCisgIENDPSIkYWNfc2F2ZV9DQyAkYWNfYXJnIgorICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3Byb2dfY2Nfc3RkYz0kYWNfYXJnCiticmVhaworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2RvbmUKK3JtIC1mIGNvbmZ0ZXN0LiRhY19leHQgY29uZnRlc3QuJGFjX29iamV4dAorQ0M9JGFjX3NhdmVfQ0MKKworZmkKKworY2FzZSAieCRhY19jdl9wcm9nX2NjX3N0ZGMiIGluCisgIHh8eG5vKQorICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vbmUgbmVlZGVkIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vbmUgbmVlZGVkIiA+JjYgOzsKKyAgKikKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19zdGRjIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9wcm9nX2NjX3N0ZGMiID4mNgorICAgIENDPSIkQ0MgJGFjX2N2X3Byb2dfY2Nfc3RkYyIgOzsKK2VzYWMKKworIyBTb21lIHBlb3BsZSB1c2UgYSBDKysgY29tcGlsZXIgdG8gY29tcGlsZSBDLiAgU2luY2Ugd2UgdXNlIGBleGl0JywKKyMgaW4gQysrIHdlIG5lZWQgdG8gZGVjbGFyZSBpdC4gIEluIGNhc2Ugc29tZW9uZSB1c2VzIHRoZSBzYW1lIGNvbXBpbGVyCisjIGZvciBib3RoIGNvbXBpbGluZyBDIGFuZCBDKysgd2UgbmVlZCB0byBoYXZlIHRoZSBDKysgY29tcGlsZXIgZGVjaWRlCisjIHRoZSBkZWNsYXJhdGlvbiBvZiBleGl0LCBzaW5jZSBpdCdzIHRoZSBtb3N0IGRlbWFuZGluZyBlbnZpcm9ubWVudC4KK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorI2lmbmRlZiBfX2NwbHVzcGx1cworICBjaG9rZSBtZQorI2VuZGlmCitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgZm9yIGFjX2RlY2xhcmF0aW9uIGluIFwKKyAgICcnIFwKKyAgICdleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpIHRocm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7JyBcCisgICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KTsgdXNpbmcgc3RkOjpleGl0OycgXAorICAgJ2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpIHRocm93ICgpOycgXAorICAgJ2V4dGVybiAiQyIgdm9pZCBleGl0IChpbnQpOycgXAorICAgJ3ZvaWQgZXhpdCAoaW50KTsnCitkbworICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyRhY19kZWNsYXJhdGlvbgorI2luY2x1ZGUgPHN0ZGxpYi5oPgoraW50CittYWluICgpCit7CitleGl0ICg0Mik7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitjb250aW51ZQorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfZGVjbGFyYXRpb24KK2ludAorbWFpbiAoKQoreworZXhpdCAoNDIpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGJyZWFrCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Citkb25lCitybSAtZiBjb25mdGVzdCoKK2lmIHRlc3QgLW4gIiRhY19kZWNsYXJhdGlvbiI7IHRoZW4KKyAgZWNobyAnI2lmZGVmIF9fY3BsdXNwbHVzJyA+PmNvbmZkZWZzLmgKKyAgZWNobyAkYWNfZGVjbGFyYXRpb24gICAgICA+PmNvbmZkZWZzLmgKKyAgZWNobyAnI2VuZGlmJyAgICAgICAgICAgICA+PmNvbmZkZWZzLmgKK2ZpCisKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2FjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKK0RFUERJUj0iJHthbV9fbGVhZGluZ19kb3R9ZGVwcyIKKworICAgICAgICAgIGFjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKKworCithbV9tYWtlPSR7TUFLRS1tYWtlfQorY2F0ID4gY29uZmluYyA8PCAnRU5EJworYW1fX2RvaXQ6CisJQGVjaG8gZG9uZQorLlBIT05ZOiBhbV9fZG9pdAorRU5ECisjIElmIHdlIGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNvZGUuCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1fbWFrZSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UuLi4gJEVDSE9fQyIgPiY2CithbV9faW5jbHVkZT0iIyIKK2FtX19xdW90ZT0KK19hbV9yZXN1bHQ9bm9uZQorIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KK2VjaG8gImluY2x1ZGUgY29uZmluYyIgPiBjb25mbWYKKyMgV2UgZ3JlcCBvdXQgYEVudGVyaW5nIGRpcmVjdG9yeScgYW5kIGBMZWF2aW5nIGRpcmVjdG9yeScKKyMgbWVzc2FnZXMgd2hpY2ggY2FuIG9jY3VyIGlmIGB3JyBlbmRzIHVwIGluIE1BS0VGTEFHUy4KKyMgSW4gcGFydGljdWxhciB3ZSBkb24ndCBsb29rIGF0IGBebWFrZTonIGJlY2F1c2UgR05VIG1ha2UgbWlnaHQKKyMgYmUgaW52b2tlZCB1bmRlciBzb21lIG90aGVyIG5hbWUgKHVzdWFsbHkgImdtYWtlIiksIGluIHdoaWNoCisjIGNhc2UgaXQgcHJpbnRzIGl0cyBuZXcgbmFtZSBpbnN0ZWFkIG9mIGBtYWtlJy4KK2lmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsIHwgZ3JlcCAtdiAnaW5nIGRpcmVjdG9yeSdgIiA9ICJkb25lIjsgdGhlbgorICAgYW1fX2luY2x1ZGU9aW5jbHVkZQorICAgYW1fX3F1b3RlPQorICAgX2FtX3Jlc3VsdD1HTlUKK2ZpCisjIE5vdyB0cnkgQlNEIG1ha2Ugc3R5bGUgaW5jbHVkZS4KK2lmIHRlc3QgIiRhbV9faW5jbHVkZSIgPSAiIyI7IHRoZW4KKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKKyAgIGlmIHRlc3QgImAkYW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCIgPSAiZG9uZSI7IHRoZW4KKyAgICAgIGFtX19pbmNsdWRlPS5pbmNsdWRlCisgICAgICBhbV9fcXVvdGU9IlwiIgorICAgICAgX2FtX3Jlc3VsdD1CU0QKKyAgIGZpCitmaQorCisKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRfYW1fcmVzdWx0IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRfYW1fcmVzdWx0IiA+JjYKK3JtIC1mIGNvbmZpbmMgY29uZm1mCisKKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nIG9yIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nIHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmcrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZW5hYmxldmFsPSIkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciCisKK2ZpOworaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCisgIGFtX2RlcGNvbXA9IiRhY19hdXhfZGlyL2RlcGNvbXAiCisgIEFNREVQQkFDS1NMQVNIPSdcJworZmkKKworCitpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87IHRoZW4KKyAgQU1ERVBfVFJVRT0KKyAgQU1ERVBfRkFMU0U9JyMnCitlbHNlCisgIEFNREVQX1RSVUU9JyMnCisgIEFNREVQX0ZBTFNFPQorZmkKKworCisKKworZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgorICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCisgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCisgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCisgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKKyAgIyBpbiBEJy4KKyAgbWtkaXIgY29uZnRlc3QuZGlyCisgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCisgICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCisgIGNwICIkYW1fZGVwY29tcCIgY29uZnRlc3QuZGlyCisgIGNkIGNvbmZ0ZXN0LmRpcgorICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKKyAgIyBpdCBoZWxwcyB0byBkZXRlY3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGluCisgICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwgcHV0IHRoZW0gaW4gdGhlIG9iamVjdAorICAjIGRpcmVjdG9yeS4KKyAgbWtkaXIgc3ViCisKKyAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQorICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgorICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAorICBmaQorICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KKyAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKKyAgICAjIGxpa2UgdG8gd3JhcCBsYXJnZSBkZXBlbmRlbmN5IGxpc3RzIG9uIGNvbHVtbiA4MCAod2l0aCBcKSwgYW5kCisgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgorICAgICMKKyAgICAjIFdlIG5lZWQgdG8gcmVjcmVhdGUgdGhlc2UgZmlsZXMgZm9yIGVhY2ggdGVzdCwgYXMgdGhlIGNvbXBpbGVyIG1heQorICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCisgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCisgICAgOiA+IHN1Yi9jb25mdGVzdC5jCisgICAgZm9yIGkgaW4gMSAyIDMgNCA1IDY7IGRvCisgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9jb25mdGVzdC5jCisgICAgICAjIFVzaW5nIGA6ID4gc3ViL2NvbmZ0c3QkaS5oJyBjcmVhdGVzIG9ubHkgc3ViL2NvbmZ0c3QxLmggd2l0aAorICAgICAgIyBTb2xhcmlzIDgncyB7L3Vzcix9L2Jpbi9zaC4KKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAorICAgIGRvbmUKKyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0iID4gY29uZm1mCisKKyAgICBjYXNlICRkZXBtb2RlIGluCisgICAgbm9zaWRlZWZmZWN0KQorICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCisgICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVkCisgICAgICBpZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KKwljb250aW51ZQorICAgICAgZWxzZQorCWJyZWFrCisgICAgICBmaQorICAgICAgOzsKKyAgICBub25lKSBicmVhayA7OworICAgIGVzYWMKKyAgICAjIFdlIGNoZWNrIHdpdGggYC1jJyBhbmQgYC1vJyBmb3IgdGhlIHNha2Ugb2YgdGhlICJkYXNobXN0ZG91dCIKKyAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQorICAgICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLgorICAgIGlmIGRlcG1vZGU9JGRlcG1vZGUgXAorICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IFwKKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAorICAgICAgICRTSEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jIC1vIHN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfSBzdWIvY29uZnRlc3QuYyBcCisgICAgICAgICA+L2Rldi9udWxsIDI+Y29uZnRlc3QuZXJyICYmCisgICAgICAgZ3JlcCBzdWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgorICAgICAgIGdyZXAgc3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99IHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYmCisgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCisgICAgICAjIG9yIHJlbWFya3MgKGV2ZW4gd2l0aCAtV2Vycm9yKS4gIFNvIHdlIGdyZXAgc3RkZXJyIGZvciBhbnkgbWVzc2FnZQorICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCisgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgorICAgICAgIyAgIGljYzogQ29tbWFuZCBsaW5lIHdhcm5pbmc6IGlnbm9yaW5nIG9wdGlvbiAnLU0nOyBubyBhcmd1bWVudCByZXF1aXJlZAorICAgICAgIyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCisgICAgICBpZiAoZ3JlcCAnaWdub3Jpbmcgb3B0aW9uJyBjb25mdGVzdC5lcnIgfHwKKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisgICAgICAgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCisgICAgICAgIGJyZWFrCisgICAgICBmaQorICAgIGZpCisgIGRvbmUKKworICBjZCAuLgorICBybSAtcmYgY29uZnRlc3QuZGlyCitlbHNlCisgIGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKK2ZpCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjYKK0NDREVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZQorCisKKworaWYKKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKKyAgJiYgdGVzdCAiJGFtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KKyAgYW1fX2Zhc3RkZXBDQ19UUlVFPQorICBhbV9fZmFzdGRlcENDX0ZBTFNFPScjJworZWxzZQorICBhbV9fZmFzdGRlcENDX1RSVUU9JyMnCisgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9CitmaQorCisKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorX0FDRU9GCisKKworCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgcHJpbWFyeSBpbmNsdWRlIGRpcmVjdG9yeSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBwcmltYXJ5IGluY2x1ZGUgZGlyZWN0b3J5Li4uICRFQ0hPX0MiID4mNgoraW5jbHVkZWRpcj0vdXNyL2luY2x1ZGUKK2lmIHRlc3QgLW4gIiRHQ0MiCit0aGVuCisJPmNvbmZ0ZXN0LmMKKwluZXdfaW5jbHVkZWRpcj1gCisJCSRDQyAtdiAtRSBjb25mdGVzdC5jIDI+JjEgfCAkQVdLICcKKwkJCS9eRW5kIG9mIHNlYXJjaCBsaXN0LyB7IHByaW50IGxhc3Q7IGV4aXQgfQorCQkJeyBsYXN0ID0gJDEgfQorCQknCisJYAorCXJtIC1mIGNvbmZ0ZXN0LmMKKwlpZiB0ZXN0IC1uICIkbmV3X2luY2x1ZGVkaXIiICYmIHRlc3QgLWQgIiRuZXdfaW5jbHVkZWRpciIKKwl0aGVuCisJCWluY2x1ZGVkaXI9JG5ld19pbmNsdWRlZGlyCisJZmkKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkaW5jbHVkZWRpciIgPiY1CitlY2hvICIke0VDSE9fVH0kaW5jbHVkZWRpciIgPiY2CisKKworaWYgdGVzdCAieCRvcHN5cyIgPSAieHN1bm9zNCIgJiYgdGVzdCAieCRhcmNoIiA9ICJ4c3BhcmMiCit0aGVuCisJZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB2YWxpZCBtYWNoaW5lIGluY2x1ZGUgZGlyZWN0b3J5IiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHZhbGlkIG1hY2hpbmUgaW5jbHVkZSBkaXJlY3RvcnkuLi4gJEVDSE9fQyIgPiY2CisJaWYgdGVzdCAtZCAiJGluY2x1ZGVkaXIvc3VuNCIKKwl0aGVuCisJCXJtIC1mIG1hY2hpbmUKKwkJbG4gLXMgJGluY2x1ZGVkaXIvc3VuNCBtYWNoaW5lCisJCWVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CitlY2hvICIke0VDSE9fVH15ZXMiID4mNgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFIDEKK19BQ0VPRgorCisJZWxzZQorCQllY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CisJZmkKK2ZpCisKKworaWYgdGVzdCAteiAiJFdBUk5GTEFHUyIKK3RoZW4KKwlpZiB0ZXN0IC1uICIkR0NDIgorCXRoZW4KKwkJIyBJZiB3ZSdyZSB1c2luZyBnY2Mgd2Ugd2FudCB3YXJuaW5nIGZsYWdzLgorCQlXQVJORkxBR1M9LVdhbGwKKwlmaQorZmkKKworaWYgdGVzdCAieCRvcHN5cyIgPSAieHN1bm9zNCIKK3RoZW4KKwlpZiB0ZXN0IC1uICIkR0NDIgorCXRoZW4KKwkJIyBTdW5PUyA0LnggaGVhZGVyIGZpbGVzIGRvbid0IGRlY2xhcmUgaW50IGZ1bmN0aW9ucy4KKwkJV0FSTkZMQUdTPSIkV0FSTkZMQUdTIC1Xbm8taW1wbGljaXQiCisJZmkKK2ZpCisKK2FjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uICRFQ0hPX0MiID4mNgorIyBPbiBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KK2lmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCisgIENQUD0KK2ZpCitpZiB0ZXN0IC16ICIkQ1BQIjsgdGhlbgorICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKyAgICBmb3IgQ1BQIGluICIkQ0MgLUUiICIkQ0MgLUUgLXRyYWRpdGlvbmFsLWNwcCIgIi9saWIvY3BwIgorICAgIGRvCisgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCitmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKK2RvCisgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKwkJICAgICBTeW50YXggZXJyb3IKK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKworICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhlYWRlcnMKKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KK2FjX3ByZXByb2Nfb2s9OgorYnJlYWsKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorCitkb25lCisjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorICBicmVhaworZmkKKworICAgIGRvbmUKKyAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCisKK2ZpCisgIENQUD0kYWNfY3ZfcHJvZ19DUFAKK2Vsc2UKKyAgYWNfY3ZfcHJvZ19DUFA9JENQUAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDUFAiID4mNQorZWNobyAiJHtFQ0hPX1R9JENQUCIgPiY2CithY19wcmVwcm9jX29rPWZhbHNlCitmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKK2RvCisgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKwkJICAgICBTeW50YXggZXJyb3IKK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKworICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhlYWRlcnMKKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KK2FjX3ByZXByb2Nfb2s9OgorYnJlYWsKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorCitkb25lCisjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorICA6CitlbHNlCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19lZ3JlcCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiBlY2hvIGEgfCAoZ3JlcCAtRSAnKGF8YiknKSA+L2Rldi9udWxsIDI+JjEKKyAgICB0aGVuIGFjX2N2X3Byb2dfZWdyZXA9J2dyZXAgLUUnCisgICAgZWxzZSBhY19jdl9wcm9nX2VncmVwPSdlZ3JlcCcKKyAgICBmaQorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2VncmVwIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9wcm9nX2VncmVwIiA+JjYKKyBFR1JFUD0kYWNfY3ZfcHJvZ19lZ3JlcAorCisKK2lmIHRlc3QgJGFjX2N2X2NfY29tcGlsZXJfZ251ID0geWVzOyB0aGVuCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENDIG5lZWRzIC10cmFkaXRpb25hbCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgJENDIG5lZWRzIC10cmFkaXRpb25hbC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgICBhY19wYXR0ZXJuPSJBdXRvY29uZi4qJ3gnIgorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzZ3R0eS5oPgorQXV0b2NvbmYgVElPQ0dFVFAKK19BQ0VPRgoraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorICAkRUdSRVAgIiRhY19wYXR0ZXJuIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9eWVzCitlbHNlCisgIGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsPW5vCitmaQorcm0gLWYgY29uZnRlc3QqCisKKworICBpZiB0ZXN0ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCA9IG5vOyB0aGVuCisgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8dGVybWlvLmg+CitBdXRvY29uZiBUQ0dFVEEKK19BQ0VPRgoraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorICAkRUdSRVAgIiRhY19wYXR0ZXJuIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9eWVzCitmaQorcm0gLWYgY29uZnRlc3QqCisKKyAgZmkKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsIiA+JjYKKyAgaWYgdGVzdCAkYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwgPSB5ZXM7IHRoZW4KKyAgICBDQz0iJENDIC10cmFkaXRpb25hbCIKKyAgZmkKK2ZpCisKKyMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLAorIyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4gIEJ1dCBhdm9pZCB0aGUgYnJva2VuIG9yCisjIGluY29tcGF0aWJsZSB2ZXJzaW9uczoKKyMgU3lzViAvZXRjL2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCisjIFN1bk9TIC91c3IvZXRjL2luc3RhbGwKKyMgSVJJWCAvc2Jpbi9pbnN0YWxsCisjIEFJWCAvYmluL2luc3RhbGwKKyMgQW1pZ2FPUyAvQy9pbnN0YWxsLCB3aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNjcworIyBBSVggNCAvdXNyL2Jpbi9pbnN0YWxsYnNkLCB3aGljaCBkb2Vzbid0IHdvcmsgd2l0aG91dCBhIC1nIGZsYWcKKyMgQUZTIC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJncworIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRyaWVzIHRvIHVzZSB0aGUgbm9uZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgorIyBPUy8yJ3Mgc3lzdGVtIGluc3RhbGwsIHdoaWNoIGhhcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IHNlbWFudGljCisjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgLXogIiRJTlNUQUxMIjsgdGhlbgoraWYgdGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAjIEFjY291bnQgZm9yIHBlb3BsZSB3aG8gcHV0IHRyYWlsaW5nIHNsYXNoZXMgaW4gUEFUSCBlbGVtZW50cy4KK2Nhc2UgJGFzX2Rpci8gaW4KKyAgLi8gfCAuLy8gfCAvY0MvKiB8IFwKKyAgL2V0Yy8qIHwgL3Vzci9zYmluLyogfCAvdXNyL2V0Yy8qIHwgL3NiaW4vKiB8IC91c3IvYWZzd3MvYmluLyogfCBcCisgID86XFwvb3MyXFwvaW5zdGFsbFxcLyogfCA/OlxcL09TMlxcL0lOU1RBTExcXC8qIHwgXAorICAvdXNyL3VjYi8qICkgOzsKKyAgKikKKyAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgorICAgICMgRG9uJ3QgdXNlIGluc3RhbGxic2QgZnJvbSBPU0Ygc2luY2UgaXQgaW5zdGFsbHMgc3R1ZmYgYXMgcm9vdAorICAgICMgYnkgZGVmYXVsdC4KKyAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCisgICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKwlpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgdGhlbgorCSAgaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKwkgICAgZ3JlcCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgorCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRpb24uCisJICAgIDoKKwkgIGVsaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKKwkgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsgdGhlbgorCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KKwkgICAgOgorCSAgZWxzZQorCSAgICBhY19jdl9wYXRoX2luc3RhbGw9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQgLWMiCisJICAgIGJyZWFrIDMKKwkgIGZpCisJZmkKKyAgICAgIGRvbmUKKyAgICBkb25lCisgICAgOzsKK2VzYWMKK2RvbmUKKworCitmaQorICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorICAgIElOU1RBTEw9JGFjX2N2X3BhdGhfaW5zdGFsbAorICBlbHNlCisgICAgIyBBcyBhIGxhc3QgcmVzb3J0LCB1c2UgdGhlIHNsb3cgc2hlbGwgc2NyaXB0LiAgV2UgZG9uJ3QgY2FjaGUgYQorICAgICMgcGF0aCBmb3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAorICAgICMgYnJlYWsgb3RoZXIgcGFja2FnZXMgdXNpbmcgdGhlIGNhY2hlIGlmIHRoYXQgZGlyZWN0b3J5IGlzCisgICAgIyByZW1vdmVkLCBvciBpZiB0aGUgcGF0aCBpcyByZWxhdGl2ZS4KKyAgICBJTlNUQUxMPSRhY19pbnN0YWxsX3NoCisgIGZpCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJElOU1RBTEwiID4mNQorZWNobyAiJHtFQ0hPX1R9JElOU1RBTEwiID4mNgorCisjIFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGluICR7dmFyLXZhbH0uCisjIEl0IHRoaW5rcyB0aGUgZmlyc3QgY2xvc2UgYnJhY2UgZW5kcyB0aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9uLgordGVzdCAteiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JworCit0ZXN0IC16ICIkSU5TVEFMTF9TQ1JJUFQiICYmIElOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JworCit0ZXN0IC16ICIkSU5TVEFMTF9EQVRBIiAmJiBJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNjQ0JworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNvbnN0IiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNvbnN0Li4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9jX2NvbnN0K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKKy8qIEZJWE1FOiBJbmNsdWRlIHRoZSBjb21tZW50cyBzdWdnZXN0ZWQgYnkgUGF1bC4gKi8KKyNpZm5kZWYgX19jcGx1c3BsdXMKKyAgLyogVWx0cml4IG1pcHMgY2MgcmVqZWN0cyB0aGlzLiAgKi8KKyAgdHlwZWRlZiBpbnQgY2hhcnNldFsyXTsKKyAgY29uc3QgY2hhcnNldCB4OworICAvKiBTdW5PUyA0LjEuMSBjYyByZWplY3RzIHRoaXMuICAqLworICBjaGFyIGNvbnN0ICpjb25zdCAqY2NwOworICBjaGFyICoqcDsKKyAgLyogTkVDIFNWUjQuMC4yIG1pcHMgY2MgcmVqZWN0cyB0aGlzLiAgKi8KKyAgc3RydWN0IHBvaW50IHtpbnQgeCwgeTt9OworICBzdGF0aWMgc3RydWN0IHBvaW50IGNvbnN0IHplcm8gPSB7MCwwfTsKKyAgLyogQUlYIFhMIEMgMS4wMi4wLjAgcmVqZWN0cyB0aGlzLgorICAgICBJdCBkb2VzIG5vdCBsZXQgeW91IHN1YnRyYWN0IG9uZSBjb25zdCBYKiBwb2ludGVyIGZyb20gYW5vdGhlciBpbgorICAgICBhbiBhcm0gb2YgYW4gaWYtZXhwcmVzc2lvbiB3aG9zZSBpZi1wYXJ0IGlzIG5vdCBhIGNvbnN0YW50CisgICAgIGV4cHJlc3Npb24gKi8KKyAgY29uc3QgY2hhciAqZyA9ICJzdHJpbmciOworICBjY3AgPSAmZyArIChnID8gZy1nIDogMCk7CisgIC8qIEhQVVggNy4wIGNjIHJlamVjdHMgdGhlc2UuICovCisgICsrY2NwOworICBwID0gKGNoYXIqKikgY2NwOworICBjY3AgPSAoY2hhciBjb25zdCAqY29uc3QgKikgcDsKKyAgeyAvKiBTQ08gMy4ydjQgY2MgcmVqZWN0cyB0aGlzLiAgKi8KKyAgICBjaGFyICp0OworICAgIGNoYXIgY29uc3QgKnMgPSAwID8gKGNoYXIgKikgMCA6IChjaGFyIGNvbnN0ICopIDA7CisKKyAgICAqdCsrID0gMDsKKyAgfQorICB7IC8qIFNvbWVvbmUgdGhpbmtzIHRoZSBTdW4gc3VwcG9zZWRseS1BTlNJIGNvbXBpbGVyIHdpbGwgcmVqZWN0IHRoaXMuICAqLworICAgIGludCB4W10gPSB7MjUsIDE3fTsKKyAgICBjb25zdCBpbnQgKmZvbyA9ICZ4WzBdOworICAgICsrZm9vOworICB9CisgIHsgLyogU3VuIFNDMS4wIEFOU0kgY29tcGlsZXIgcmVqZWN0cyB0aGlzIC0tIGJ1dCBub3QgdGhlIGFib3ZlLiAqLworICAgIHR5cGVkZWYgY29uc3QgaW50ICppcHRyOworICAgIGlwdHIgcCA9IDA7CisgICAgKytwOworICB9CisgIHsgLyogQUlYIFhMIEMgMS4wMi4wLjAgcmVqZWN0cyB0aGlzIHNheWluZworICAgICAgICJrLmMiLCBsaW5lIDIuMjc6IDE1MDYtMDI1IChTKSBPcGVyYW5kIG11c3QgYmUgYSBtb2RpZmlhYmxlIGx2YWx1ZS4gKi8KKyAgICBzdHJ1Y3QgcyB7IGludCBqOyBjb25zdCBpbnQgKmFwWzNdOyB9OworICAgIHN0cnVjdCBzICpiOyBiLT5qID0gNTsKKyAgfQorICB7IC8qIFVMVFJJWC0zMiBWMy4xIChSZXYgOSkgdmNjIHJlamVjdHMgdGhpcyAqLworICAgIGNvbnN0IGludCBmb28gPSAxMDsKKyAgfQorI2VuZGlmCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9jX2NvbnN0PXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9jX2NvbnN0PW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jX2NvbnN0IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9jX2NvbnN0IiA+JjYKK2lmIHRlc3QgJGFjX2N2X2NfY29uc3QgPSBubzsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBjb25zdAorX0FDRU9GCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmbG9hdC5oPgorCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X2hlYWRlcl9zdGRjPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9oZWFkZXJfc3RkYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKworaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworX0FDRU9GCitpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisgICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgOgorZWxzZQorICBhY19jdl9oZWFkZXJfc3RkYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0KgorCitmaQorCitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN0ZGxpYi5oPgorCitfQUNFT0YKK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgOgorZWxzZQorICBhY19jdl9oZWFkZXJfc3RkYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0KgorCitmaQorCitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCisgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgIDoKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkKKyMgZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKKyNlbHNlCisjIGRlZmluZSBJU0xPV0VSKGMpIFwKKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCisJCSAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCisjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQorI2VuZGlmCisKKyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCitpbnQKK21haW4gKCkKK3sKKyAgaW50IGk7CisgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCisJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCisgICAgICBleGl0KDIpOworICBleGl0ICgwKTsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKK2FjX2N2X2hlYWRlcl9zdGRjPW5vCitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitmaQorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNgoraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKK19BQ0VPRgorCitmaQorCisKKworCisKKworYWNfaGVhZGVyX2RpcmVudD1ubworZm9yIGFjX2hkciBpbiBkaXJlbnQuaCBzeXMvbmRpci5oIHN5cy9kaXIuaCBuZGlyLmg7IGRvCisgIGFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyX2RpcmVudF8kYWNfaGRyIiB8ICRhc190cl9zaGAKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hkciB0aGF0IGRlZmluZXMgRElSIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZHIgdGhhdCBkZWZpbmVzIERJUi4uLiAkRUNIT19DIiA+JjYKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8JGFjX2hkcj4KKworaW50CittYWluICgpCit7CitpZiAoKERJUiAqKSAwKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2V2YWwgIiRhc19hY19IZWFkZXI9bm8iCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKK2VjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKK2lmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGRyIiB8ICRhc190cl9jcHBgIDEKK19BQ0VPRgorCithY19oZWFkZXJfZGlyZW50PSRhY19oZHI7IGJyZWFrCitmaQorCitkb25lCisjIFR3byB2ZXJzaW9ucyBvZiBvcGVuZGlyIGV0IGFsLiBhcmUgaW4gLWxkaXIgYW5kIC1seCBvbiBTQ08gWGVuaXguCitpZiB0ZXN0ICRhY19oZWFkZXJfZGlyZW50ID0gZGlyZW50Lmg7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgb3BlbmRpciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgb3BlbmRpci4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3Zfc2VhcmNoX29wZW5kaXIrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTPSRMSUJTCithY19jdl9zZWFyY2hfb3BlbmRpcj1ubworY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKKyNlbmRpZgorLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgorICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgb3BlbmRpciAoKTsKK2ludAorbWFpbiAoKQoreworb3BlbmRpciAoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9zZWFyY2hfb3BlbmRpcj0ibm9uZSByZXF1aXJlZCIKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitpZiB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID0gbm87IHRoZW4KKyAgZm9yIGFjX2xpYiBpbiBkaXI7IGRvCisgICAgTElCUz0iLWwkYWNfbGliICAkYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTIgorICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyIG9wZW5kaXIgKCk7CitpbnQKK21haW4gKCkKK3sKK29wZW5kaXIgKCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3Zfc2VhcmNoX29wZW5kaXI9Ii1sJGFjX2xpYiIKK2JyZWFrCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorICBkb25lCitmaQorTElCUz0kYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9zZWFyY2hfb3BlbmRpciIgPiY2CitpZiB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiICE9IG5vOyB0aGVuCisgIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgPSAibm9uZSByZXF1aXJlZCIgfHwgTElCUz0iJGFjX2N2X3NlYXJjaF9vcGVuZGlyICRMSUJTIgorCitmaQorCitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIG9wZW5kaXIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIG9wZW5kaXIuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3NlYXJjaF9vcGVuZGlyK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUz0kTElCUworYWNfY3Zfc2VhcmNoX29wZW5kaXI9bm8KK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyIG9wZW5kaXIgKCk7CitpbnQKK21haW4gKCkKK3sKK29wZW5kaXIgKCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3Zfc2VhcmNoX29wZW5kaXI9Im5vbmUgcmVxdWlyZWQiCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAoraWYgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA9IG5vOyB0aGVuCisgIGZvciBhY19saWIgaW4geDsgZG8KKyAgICBMSUJTPSItbCRhY19saWIgICRhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlMiCisgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKKyNlbmRpZgorLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgorICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgb3BlbmRpciAoKTsKK2ludAorbWFpbiAoKQoreworb3BlbmRpciAoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9zZWFyY2hfb3BlbmRpcj0iLWwkYWNfbGliIgorYnJlYWsKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisgIGRvbmUKK2ZpCitMSUJTPSRhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlMKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA+JjYKK2lmIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgIT0gbm87IHRoZW4KKyAgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA9ICJub25lIHJlcXVpcmVkIiB8fCBMSUJTPSIkYWNfY3Zfc2VhcmNoX29wZW5kaXIgJExJQlMiCisKK2ZpCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN0YXQgZmlsZS1tb2RlIG1hY3JvcyBhcmUgYnJva2VuIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBzdGF0IGZpbGUtbW9kZSBtYWNyb3MgYXJlIGJyb2tlbi4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKKyNpZiBkZWZpbmVkKFNfSVNCTEspICYmIGRlZmluZWQoU19JRkRJUikKKyMgaWYgU19JU0JMSyAoU19JRkRJUikKK1lvdSBsb3NlLgorIyBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFNfSVNCTEspICYmIGRlZmluZWQoU19JRkNIUikKKyMgaWYgU19JU0JMSyAoU19JRkNIUikKK1lvdSBsb3NlLgorIyBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFNfSVNMTkspICYmIGRlZmluZWQoU19JRlJFRykKKyMgaWYgU19JU0xOSyAoU19JRlJFRykKK1lvdSBsb3NlLgorIyBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFNfSVNTT0NLKSAmJiBkZWZpbmVkKFNfSUZSRUcpCisjIGlmIFNfSVNTT0NLIChTX0lGUkVHKQorWW91IGxvc2UuCisjIGVuZGlmCisjZW5kaWYKKworX0FDRU9GCitpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisgICRFR1JFUCAiWW91IGxvc2UiID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhY19jdl9oZWFkZXJfc3RhdF9icm9rZW49eWVzCitlbHNlCisgIGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbj1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0KgorCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbiIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuIiA+JjYKK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbiA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBTVEFUX01BQ1JPU19CUk9LRU4gMQorX0FDRU9GCisKK2ZpCisKKyMgT24gSVJJWCA1LjMsIHN5cy90eXBlcyBhbmQgaW50dHlwZXMuaCBhcmUgY29uZmxpY3RpbmcuCisKKworCisKKworCisKKworCitmb3IgYWNfaGVhZGVyIGluIHN5cy90eXBlcy5oIHN5cy9zdGF0Lmggc3RkbGliLmggc3RyaW5nLmggbWVtb3J5Lmggc3RyaW5ncy5oIFwKKwkJICBpbnR0eXBlcy5oIHN0ZGludC5oIHVuaXN0ZC5oCitkbworYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAorCisjaW5jbHVkZSA8JGFjX2hlYWRlcj4KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgoraWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorX0FDRU9GCisKK2ZpCisKK2RvbmUKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2Jsa3NpemUiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfYmxrc2l6ZS4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemUrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X2Jsa3NpemUpCityZXR1cm4gMDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfYmxrc2l6ZT15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChzaXplb2YgYWNfYWdnci5zdF9ibGtzaXplKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemU9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibGtzaXplPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsa3NpemUiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibGtzaXplIiA+JjYKK2lmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibGtzaXplID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFIDEKK19BQ0VPRgorCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2Jsb2NrcyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9ibG9ja3MuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibG9ja3Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X2Jsb2NrcykKK3JldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibG9ja3M9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKK2ludAorbWFpbiAoKQoreworc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7CitpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfYmxvY2tzKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2Nrcz15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2Nrcz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibG9ja3MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9ibG9ja3MiID4mNgoraWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2Jsb2NrcyA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTIDEKK19BQ0VPRgorCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2FjbGNudCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9hY2xjbnQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hY2xjbnQrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X2FjbGNudCkKK3JldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hY2xjbnQ9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKK2ludAorbWFpbiAoKQoreworc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7CitpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfYWNsY250KQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudD1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hY2xjbnQiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9hY2xjbnQiID4mNgoraWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2FjbGNudCA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UIDEKK19BQ0VPRgorCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2ZsYWdzIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2ZsYWdzLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X2ZsYWdzKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZsYWdzPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyRhY19pbmNsdWRlc19kZWZhdWx0CitpbnQKK21haW4gKCkKK3sKK3N0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOworaWYgKHNpemVvZiBhY19hZ2dyLnN0X2ZsYWdzKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZsYWdzPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3M9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mbGFncyIgPiY2CitpZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfZmxhZ3MgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZMQUdTIDEKK19BQ0VPRgorCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2ZzdHlwZSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9mc3R5cGUuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mc3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X2ZzdHlwZSkKK3JldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mc3R5cGU9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKK2ludAorbWFpbiAoKQoreworc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7CitpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZnN0eXBlKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZT15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZT1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mc3R5cGUiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9mc3R5cGUiID4mNgoraWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2ZzdHlwZSA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfRlNUWVBFIDEKK19BQ0VPRgorCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2dlbiIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgc3RhdC5zdF9nZW4uLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9nZW4rc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X2dlbikKK3JldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9nZW49eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKK2ludAorbWFpbiAoKQoreworc3RhdGljIHN0cnVjdCBzdGF0IGFjX2FnZ3I7CitpZiAoc2l6ZW9mIGFjX2FnZ3Iuc3RfZ2VuKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbj1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9nZW4iID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9nZW4iID4mNgoraWYgdGVzdCAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2dlbiA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOIDEKK19BQ0VPRgorCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2xldmVsIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X2xldmVsLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWwrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X2xldmVsKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2xldmVsPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyRhY19pbmNsdWRlc19kZWZhdWx0CitpbnQKK21haW4gKCkKK3sKK3N0YXRpYyBzdHJ1Y3Qgc3RhdCBhY19hZ2dyOworaWYgKHNpemVvZiBhY19hZ2dyLnN0X2xldmVsKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X2xldmVsPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWw9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWwiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9sZXZlbCIgPiY2CitpZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfbGV2ZWwgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX1NUUlVDVF9TVEFUX1NUX0xFVkVMIDEKK19BQ0VPRgorCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBzdGF0LnN0X3JkZXYiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHN0YXQuc3RfcmRldi4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXYrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChhY19hZ2dyLnN0X3JkZXYpCityZXR1cm4gMDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9tZW1iZXJfc3RydWN0X3N0YXRfc3RfcmRldj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAoraW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHN0YXQgYWNfYWdncjsKK2lmIChzaXplb2YgYWNfYWdnci5zdF9yZGV2KQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXY9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9yZGV2PW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zdGF0X3N0X3JkZXYiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9yZGV2IiA+JjYKK2lmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3Rfc3RhdF9zdF9yZGV2ID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWIDEKK19BQ0VPRgorCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RhdDY0IGluIChhc218c3lzKS9zdGF0LmgiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RhdDY0IGluIChhc218c3lzKS9zdGF0LmguLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3R5cGVfc3RhdDY0K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2lmZGVmIExJTlVYCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vc3RhdC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2VuZGlmCitpbnQKK21haW4gKCkKK3sKK3N0cnVjdCBzdGF0NjQgc3Q7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfdHlwZV9zdGF0NjQ9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X3R5cGVfc3RhdDY0PW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKKworZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3RhdDY0IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3N0YXQ2NCIgPiY2CitpZiB0ZXN0ICIkYWNfY3ZfdHlwZV9zdGF0NjQiID0geWVzCit0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIEhBVkVfU1RBVDY0IDEKK19BQ0VPRgorCitmaQorCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyByZXR1cm4gdHlwZSBvZiBzaWduYWwgaGFuZGxlcnMuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3R5cGVfc2lnbmFsK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2lmZGVmIHNpZ25hbAorIyB1bmRlZiBzaWduYWwKKyNlbmRpZgorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHZvaWQgKCpzaWduYWwgKGludCwgdm9pZCAoKikoaW50KSkpKGludCk7CisjZWxzZQordm9pZCAoKnNpZ25hbCAoKSkgKCk7CisjZW5kaWYKKworaW50CittYWluICgpCit7CitpbnQgaTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl90eXBlX3NpZ25hbD12b2lkCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X3R5cGVfc2lnbmFsPWludAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zaWduYWwiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc2lnbmFsIiA+JjYKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBSRVRTSUdUWVBFICRhY19jdl90eXBlX3NpZ25hbAorX0FDRU9GCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB1aWRfdCBpbiBzeXMvdHlwZXMuaCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB1aWRfdCBpbiBzeXMvdHlwZXMuaC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfdHlwZV91aWRfdCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworX0FDRU9GCitpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisgICRFR1JFUCAidWlkX3QiID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhY19jdl90eXBlX3VpZF90PXllcworZWxzZQorICBhY19jdl90eXBlX3VpZF90PW5vCitmaQorcm0gLWYgY29uZnRlc3QqCisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV91aWRfdCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV91aWRfdCIgPiY2CitpZiB0ZXN0ICRhY19jdl90eXBlX3VpZF90ID0gbm87IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgdWlkX3QgaW50CitfQUNFT0YKKworCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBnaWRfdCBpbnQKK19BQ0VPRgorCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1vZGVfdCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtb2RlX3QuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3R5cGVfbW9kZV90K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKK2ludAorbWFpbiAoKQoreworaWYgKChtb2RlX3QgKikgMCkKKyAgcmV0dXJuIDA7CitpZiAoc2l6ZW9mIChtb2RlX3QpKQorICByZXR1cm4gMDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl90eXBlX21vZGVfdD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfdHlwZV9tb2RlX3Q9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfbW9kZV90IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX21vZGVfdCIgPiY2CitpZiB0ZXN0ICRhY19jdl90eXBlX21vZGVfdCA9IHllczsgdGhlbgorICA6CitlbHNlCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgbW9kZV90IGludAorX0FDRU9GCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB0eXBlIG9mIGFycmF5IGFyZ3VtZW50IHRvIGdldGdyb3VwcyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHR5cGUgb2YgYXJyYXkgYXJndW1lbnQgdG8gZ2V0Z3JvdXBzLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl90eXBlX2dldGdyb3VwcytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorICBhY19jdl90eXBlX2dldGdyb3Vwcz1jcm9zcworZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy8qIFRoYW5rcyB0byBNaWtlIFJlbmRlbGwgZm9yIHRoaXMgdGVzdC4gICovCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjZGVmaW5lIE5HSUQgMjU2CisjdW5kZWYgTUFYCisjZGVmaW5lIE1BWCh4LCB5KSAoKHgpID4gKHkpID8gKHgpIDogKHkpKQorCitpbnQKK21haW4gKCkKK3sKKyAgZ2lkX3QgZ2lkc2V0W05HSURdOworICBpbnQgaSwgbjsKKyAgdW5pb24geyBnaWRfdCBndmFsOyBsb25nIGx2YWw7IH0gIHZhbDsKKworICB2YWwubHZhbCA9IC0xOworICBmb3IgKGkgPSAwOyBpIDwgTkdJRDsgaSsrKQorICAgIGdpZHNldFtpXSA9IHZhbC5ndmFsOworICBuID0gZ2V0Z3JvdXBzIChzaXplb2YgKGdpZHNldCkgLyBNQVggKHNpemVvZiAoaW50KSwgc2l6ZW9mIChnaWRfdCkpIC0gMSwKKwkJIGdpZHNldCk7CisgIC8qIEV4aXQgbm9uLXplcm8gaWYgZ2V0Z3JvdXBzIHNlZW1zIHRvIHJlcXVpcmUgYW4gYXJyYXkgb2YgaW50cy4gIFRoaXMKKyAgICAgaGFwcGVucyB3aGVuIGdpZF90IGlzIHNob3J0IGJ1dCBnZXRncm91cHMgbW9kaWZpZXMgYW4gYXJyYXkgb2YgaW50cy4gICovCisgIGV4aXQgKChuID4gMCAmJiBnaWRzZXRbbl0gIT0gdmFsLmd2YWwpID8gMSA6IDApOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfdHlwZV9nZXRncm91cHM9Z2lkX3QKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKK2FjX2N2X3R5cGVfZ2V0Z3JvdXBzPWludAorZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQoraWYgdGVzdCAkYWNfY3ZfdHlwZV9nZXRncm91cHMgPSBjcm9zczsgdGhlbgorICAgICAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworX0FDRU9GCitpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisgICRFR1JFUCAiZ2V0Z3JvdXBzLippbnQuKmdpZF90IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYWNfY3ZfdHlwZV9nZXRncm91cHM9Z2lkX3QKK2Vsc2UKKyAgYWNfY3ZfdHlwZV9nZXRncm91cHM9aW50CitmaQorcm0gLWYgY29uZnRlc3QqCisKK2ZpCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfZ2V0Z3JvdXBzIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX2dldGdyb3VwcyIgPiY2CisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgR0VUR1JPVVBTX1QgJGFjX2N2X3R5cGVfZ2V0Z3JvdXBzCitfQUNFT0YKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciBzeXMvdHlwZXMuaCBkZWZpbmVzIG1ha2VkZXYiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN5cy90eXBlcy5oIGRlZmluZXMgbWFrZWRldi4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXYrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CitpbnQKK21haW4gKCkKK3sKK3JldHVybiBtYWtlZGV2KDAsIDApOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaF9tYWtlZGV2PXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9oZWFkZXJfc3lzX3R5cGVzX2hfbWFrZWRldj1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXYiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaF9tYWtlZGV2IiA+JjYKKworaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oX21ha2VkZXYgPSBubzsgdGhlbgoraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX21rZGV2X2grc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvbWtkZXYuaCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzeXMvbWtkZXYuaC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oIiA+JjYKK2Vsc2UKKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL21rZGV2LmggdXNhYmlsaXR5IiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL21rZGV2LmggdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAorI2luY2x1ZGUgPHN5cy9ta2Rldi5oPgorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfaGVhZGVyX2NvbXBpbGVyPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKKworIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL21rZGV2LmggcHJlc2VuY2UiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBzeXMvbWtkZXYuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy9ta2Rldi5oPgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCisgIGVsc2UKKyAgICBhY19jcHBfZXJyPQorICBmaQorZWxzZQorICBhY19jcHBfZXJyPXllcworZmkKK2lmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICBhY19oZWFkZXJfcHJlcHJvYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKKworIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CitjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCisgIHllczpubzogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL21rZGV2Lmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKyAgICA7OworICBubzp5ZXM6KiApCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL21rZGV2Lmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL21rZGV2Lmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9ta2Rldi5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvbWtkZXYuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL21rZGV2Lmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KKyAgICAoCisgICAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIFJlcG9ydCB0aGlzIHRvIHRoZSBzdHJhY2UgbGlzdHMuICAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICApIHwKKyAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgorICAgIDs7Citlc2FjCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN5cy9ta2Rldi5oIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9ta2Rldi5oLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX21rZGV2X2grc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYWNfY3ZfaGVhZGVyX3N5c19ta2Rldl9oPSRhY19oZWFkZXJfcHJlcHJvYworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX21rZGV2X2giID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCIgPiY2CisKK2ZpCitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3lzX21rZGV2X2ggPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgTUFKT1JfSU5fTUtERVYgMQorX0FDRU9GCisKK2ZpCisKKworCisgIGlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zeXNfbWtkZXZfaCA9IG5vOyB0aGVuCisgICAgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3lzL3N5c21hY3Jvcy5oIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN5cy9zeXNtYWNyb3MuaC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oIiA+JjYKK2Vsc2UKKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL3N5c21hY3Jvcy5oIHVzYWJpbGl0eSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHN5cy9zeXNtYWNyb3MuaCB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2CitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyRhY19pbmNsdWRlc19kZWZhdWx0CisjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfaGVhZGVyX2NvbXBpbGVyPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKKworIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc3lzL3N5c21hY3Jvcy5oIHByZXNlbmNlIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgc3lzL3N5c21hY3Jvcy5oIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCisgIGVsc2UKKyAgICBhY19jcHBfZXJyPQorICBmaQorZWxzZQorICBhY19jcHBfZXJyPXllcworZmkKK2lmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICBhY19oZWFkZXJfcHJlcHJvYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKKworIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CitjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCisgIHllczpubzogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CisgICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCisgICAgOzsKKyAgbm86eWVzOiogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiBzeXMvc3lzbWFjcm9zLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IHN5cy9zeXNtYWNyb3MuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogc3lzL3N5c21hY3Jvcy5oOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mMjt9CisgICAgKAorICAgICAgY2F0IDw8XF9BU0JPWAorIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBSZXBvcnQgdGhpcyB0byB0aGUgc3RyYWNlIGxpc3RzLiAgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworX0FTQk9YCisgICAgKSB8CisgICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKKyAgICA7OworZXNhYworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzeXMvc3lzbWFjcm9zLmgiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3lzL3N5c21hY3Jvcy5oLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3lzX3N5c21hY3Jvc19oK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGFjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2g9JGFjX2hlYWRlcl9wcmVwcm9jCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2giID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zeXNfc3lzbWFjcm9zX2giID4mNgorCitmaQoraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N5c19zeXNtYWNyb3NfaCA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBNQUpPUl9JTl9TWVNNQUNST1MgMQorX0FDRU9GCisKK2ZpCisKKworICBmaQorZmkKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzaWdfYXRvbWljX3QiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc2lnX2F0b21pY190Li4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl90eXBlX3NpZ19hdG9taWNfdCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzaWduYWwuaD4KKworaW50CittYWluICgpCit7CitpZiAoKHNpZ19hdG9taWNfdCAqKSAwKQorICByZXR1cm4gMDsKK2lmIChzaXplb2YgKHNpZ19hdG9taWNfdCkpCisgIHJldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3R5cGVfc2lnX2F0b21pY190PXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl90eXBlX3NpZ19hdG9taWNfdD1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zaWdfYXRvbWljX3QiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc2lnX2F0b21pY190IiA+JjYKK2lmIHRlc3QgJGFjX2N2X3R5cGVfc2lnX2F0b21pY190ID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TSUdfQVRPTUlDX1QgMQorX0FDRU9GCisKKworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2lnaW5mb190IiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHNpZ2luZm9fdC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zaWdpbmZvX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c2lnbmFsLmg+CisKK2ludAorbWFpbiAoKQoreworaWYgKChzaWdpbmZvX3QgKikgMCkKKyAgcmV0dXJuIDA7CitpZiAoc2l6ZW9mIChzaWdpbmZvX3QpKQorICByZXR1cm4gMDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl90eXBlX3NpZ2luZm9fdD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfdHlwZV9zaWdpbmZvX3Q9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc2lnaW5mb190IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3NpZ2luZm9fdCIgPiY2CitpZiB0ZXN0ICRhY19jdl90eXBlX3NpZ2luZm9fdCA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU0lHSU5GT19UIDEKK19BQ0VPRgorCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfbWVtYmVyX3N0cnVjdF9zb2NrYWRkcl9pbjZfc2luNl9zY29wZV9pZCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorCitpbnQKK21haW4gKCkKK3sKK3N0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJfaW42IGFjX2FnZ3I7CitpZiAoYWNfYWdnci5zaW42X3Njb3BlX2lkKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9zb2NrYWRkcl9pbjZfc2luNl9zY29wZV9pZD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKworaW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IHNvY2thZGRyX2luNiBhY19hZ2dyOworaWYgKHNpemVvZiBhY19hZ2dyLnNpbjZfc2NvcGVfaWQpCityZXR1cm4gMDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9zb2NrYWRkcl9pbjZfc2luNl9zY29wZV9pZCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9zb2NrYWRkcl9pbjZfc2luNl9zY29wZV9pZCIgPiY2CitpZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X3NvY2thZGRyX2luNl9zaW42X3Njb3BlX2lkID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQgMQorX0FDRU9GCisKKworZmkKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsb25nIGxvbmciID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbG9uZyBsb25nLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl90eXBlX2xvbmdfbG9uZytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyRhY19pbmNsdWRlc19kZWZhdWx0CitpbnQKK21haW4gKCkKK3sKK2lmICgobG9uZyBsb25nICopIDApCisgIHJldHVybiAwOworaWYgKHNpemVvZiAobG9uZyBsb25nKSkKKyAgcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfdHlwZV9sb25nX2xvbmc9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X3R5cGVfbG9uZ19sb25nPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX2xvbmdfbG9uZyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9sb25nX2xvbmciID4mNgoraWYgdGVzdCAkYWNfY3ZfdHlwZV9sb25nX2xvbmcgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAxCitfQUNFT0YKKworCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpdHRsZSBlbmRpYW4gbG9uZyBsb25nIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpdHRsZSBlbmRpYW4gbG9uZyBsb25nLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgICMgU2hvdWxkIHRyeSB0byBndWVzcyBoZXJlCithY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nPW5vCisKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludCBtYWluICgpIHsKKwl1bmlvbiB7CisJCWxvbmcgbG9uZyBsbDsKKwkJbG9uZyBsIFsyXTsKKwl9IHU7CisJdS5sbCA9IDB4MTIzNDU2Nzg7CisJaWYgKHUubFswXSA9PSAweDEyMzQ1Njc4KQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfaGF2ZV9saXR0bGVfZW5kaWFuX2xvbmdfbG9uZz15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKK2FjX2N2X2hhdmVfbGl0dGxlX2VuZGlhbl9sb25nX2xvbmc9bm8KK2ZpCitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nIiA+JjYKK2lmIHRlc3QgIiRhY19jdl9oYXZlX2xpdHRsZV9lbmRpYW5fbG9uZ19sb25nIiA9IHllcwordGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HIDEKK19BQ0VPRgorCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBvZmZfdCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsb25nIGxvbmcgb2ZmX3QuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgICMgU2hvdWxkIHRyeSB0byBndWVzcyBoZXJlCithY19jdl9oYXZlX2xvbmdfbG9uZ19vZmZfdD1ubworCitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorbWFpbiAoKSB7CisJaWYgKHNpemVvZiAob2ZmX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgorCSAgICBzaXplb2YgKG9mZl90KSA+IHNpemVvZiAobG9uZykpCisJICAgIHJldHVybiAwOworCXJldHVybiAxOworfQorCitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9oYXZlX2xvbmdfbG9uZ19vZmZfdD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKK2FjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90PW5vCitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGF2ZV9sb25nX2xvbmdfb2ZmX3QiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfbG9uZ19sb25nX29mZl90IiA+JjYKK2lmIHRlc3QgIiRhY19jdl9oYXZlX2xvbmdfbG9uZ19vZmZfdCIgPSB5ZXMKK3RoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSEFWRV9MT05HX0xPTkdfT0ZGX1QgMQorX0FDRU9GCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbG9uZyBsb25nIHJsaW1fdCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsb25nIGxvbmcgcmxpbV90Li4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKyAgIyBTaG91bGQgdHJ5IHRvIGd1ZXNzIGhlcmUKK2FjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdD1ubworCitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CittYWluICgpIHsKKwlpZiAoc2l6ZW9mIChybGltX3QpID09IHNpemVvZiAobG9uZyBsb25nKSAmJgorCSAgICBzaXplb2YgKHJsaW1fdCkgPiBzaXplb2YgKGxvbmcpKQorCSAgICByZXR1cm4gMDsKKwlyZXR1cm4gMTsKK30KKworX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQorYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90PW5vCitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGF2ZV9sb25nX2xvbmdfcmxpbV90IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9oYXZlX2xvbmdfbG9uZ19ybGltX3QiID4mNgoraWYgdGVzdCAiJGFjX2N2X2hhdmVfbG9uZ19sb25nX3JsaW1fdCIgPSB5ZXMKK3RoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSEFWRV9MT05HX0xPTkdfUkxJTV9UIDEKK19BQ0VPRgorCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCBvcHRoZHIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IG9wdGhkci4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKworaW50CittYWluICgpCit7CitpZiAoKHN0cnVjdCBvcHRoZHIgKikgMCkKKyAgcmV0dXJuIDA7CitpZiAoc2l6ZW9mIChzdHJ1Y3Qgb3B0aGRyKSkKKyAgcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl90eXBlX3N0cnVjdF9vcHRoZHI9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3RydWN0X29wdGhkciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3Rfb3B0aGRyIiA+JjYKK2lmIHRlc3QgJGFjX2N2X3R5cGVfc3RydWN0X29wdGhkciA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX09QVEhEUiAxCitfQUNFT0YKKworCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCB0X29wdGhkciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgdF9vcHRoZHIuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3R5cGVfc3RydWN0X3Rfb3B0aGRyK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy90aXVzZXIuaD4KKworaW50CittYWluICgpCit7CitpZiAoKHN0cnVjdCB0X29wdGhkciAqKSAwKQorICByZXR1cm4gMDsKK2lmIChzaXplb2YgKHN0cnVjdCB0X29wdGhkcikpCisgIHJldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3R5cGVfc3RydWN0X3Rfb3B0aGRyPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl90eXBlX3N0cnVjdF90X29wdGhkcj1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zdHJ1Y3RfdF9vcHRoZHIiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc3RydWN0X3Rfb3B0aGRyIiA+JjYKK2lmIHRlc3QgJGFjX2N2X3R5cGVfc3RydWN0X3Rfb3B0aGRyID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfVF9PUFRIRFIgMQorX0FDRU9GCisKKworZmkKKworCitpZiB0ZXN0IHgkb3BzeXMgIT0geGxpbnV4OyB0aGVuCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbG5zbCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtYWluIGluIC1sbnNsLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9saWJfbnNsX21haW4rc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworTElCUz0iLWxuc2wgICRMSUJTIgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKworaW50CittYWluICgpCit7CittYWluICgpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X2xpYl9uc2xfbWFpbj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfbGliX25zbF9tYWluPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX25zbF9tYWluIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9saWJfbnNsX21haW4iID4mNgoraWYgdGVzdCAkYWNfY3ZfbGliX25zbF9tYWluID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9MSUJOU0wgMQorX0FDRU9GCisKKyAgTElCUz0iLWxuc2wgJExJQlMiCisKK2ZpCisKK2ZpCisKKworCisKKworCisKKworCisKKworCisKK2ZvciBhY19mdW5jIGluIHNpZ2FjdGlvbiBzdHJlcnJvciBzdHJzaWduYWwgcHJlYWQgc3lzX3NpZ2xpc3QgX3N5c19zaWdsaXN0IGdldGRlbnRzIG1jdGwgcHJjdGwgc2VuZG1zZyBpbmV0X250b3AgaWZfaW5kZXh0b25hbWUKK2RvCithc19hY192YXI9YGVjaG8gImFjX2N2X2Z1bmNfJGFjX2Z1bmMiIHwgJGFzX3RyX3NoYAorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfZnVuYy4uLiAkRUNIT19DIiA+JjYKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfdmFyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisvKiBEZWZpbmUgJGFjX2Z1bmMgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyAkYWNfZnVuYy4KKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLworI2RlZmluZSAkYWNfZnVuYyBpbm5vY3VvdXNfJGFjX2Z1bmMKKworLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAorICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgJGFjX2Z1bmMgKCk7IGJlbG93LgorICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLworCisjaWZkZWYgX19TVERDX18KKyMgaW5jbHVkZSA8bGltaXRzLmg+CisjZWxzZQorIyBpbmNsdWRlIDxhc3NlcnQuaD4KKyNlbmRpZgorCisjdW5kZWYgJGFjX2Z1bmMKKworLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgoreworI2VuZGlmCisvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCisgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworY2hhciAkYWNfZnVuYyAoKTsKKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAorICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworI2lmIGRlZmluZWQgKF9fc3R1Yl8kYWNfZnVuYykgfHwgZGVmaW5lZCAoX19zdHViX19fJGFjX2Z1bmMpCitjaG9rZSBtZQorI2Vsc2UKK2NoYXIgKCpmKSAoKSA9ICRhY19mdW5jOworI2VuZGlmCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCitpbnQKK21haW4gKCkKK3sKK3JldHVybiBmICE9ICRhY19mdW5jOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGV2YWwgIiRhc19hY192YXI9eWVzIgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitldmFsICIkYXNfYWNfdmFyPW5vIgorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AiID4mNgoraWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCA9IHllczsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIGBlY2hvICJIQVZFXyRhY19mdW5jIiB8ICRhc190cl9jcHBgIDEKK19BQ0VPRgorCitmaQorZG9uZQorCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKK2ZvciBhY19oZWFkZXIgaW4gc3lzL3JlZy5oIHN5cy9maWxpby5oIHN5cy9hY2wuaCBzeXMvYXN5bmNoLmggc3lzL2Rvb3IuaCBzdHJvcHRzLmggc3lzL2NvbmYuaCBzeXMvc3RyZWFtLmggc3lzL3RpaGRyLmggc3lzL3RpdXNlci5oIHN5cy9zeXNjb25maWcuaCBpb2N0bHMuaCBzeXMvaW9jdGwuaCBzeXMvcHRyYWNlLmggdGVybWlvLmggbGludXgvcHRyYWNlLmggYXNtL3JlZy5oIHN5cy91aW8uaCBzeXMvYWlvLmggIHBvbGwuaCBzeXMvcG9sbC5oIHN5cy92ZnMuaCBhc20vc3lzbWlwcy5oIGxpbnV4L3V0c25hbWUuaCBzeXMvbnNjc3lzLmggbXF1ZXVlLmggc3lzL2Vwb2xsLmggbGliYWlvLmgKK2RvCithc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgorZWxzZQorICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAorI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19oZWFkZXJfY29tcGlsZXI9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgorCisjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgorICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKKyAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKKyAgZWxzZQorICAgIGFjX2NwcF9lcnI9CisgIGZpCitlbHNlCisgIGFjX2NwcF9lcnI9eWVzCitmaQoraWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCisgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisgIGFjX2hlYWRlcl9wcmVwcm9jPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgorCisjIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KKyAgeWVzOm5vOiApCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CisgICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCisgICAgOzsKKyAgbm86eWVzOiogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mMjt9CisgICAgKAorICAgICAgY2F0IDw8XF9BU0JPWAorIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBSZXBvcnQgdGhpcyB0byB0aGUgc3RyYWNlIGxpc3RzLiAgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworX0FTQk9YCisgICAgKSB8CisgICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKKyAgICA7OworZXNhYworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGV2YWwgIiRhc19hY19IZWFkZXI9XCRhY19oZWFkZXJfcHJlcHJvYyIKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CitlY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CisKK2ZpCitpZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCitfQUNFT0YKKworZmkKKworZG9uZQorCisKKworCisKK2ZvciBhY19oZWFkZXIgaW4gbGludXgvaWNtcC5oIGxpbnV4L2luNi5oIGxpbnV4L25ldGxpbmsuaCBsaW51eC9pZl9wYWNrZXQuaAorZG8KK2FzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPGxpbnV4L3NvY2tldC5oPgorCisjaW5jbHVkZSA8JGFjX2hlYWRlcj4KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBldmFsICIkYXNfYWNfSGVhZGVyPXllcyIKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgoraWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorX0FDRU9GCisKK2ZpCisKK2RvbmUKKworCitmb3IgYWNfaGVhZGVyIGluIGFzbS9zaWdjb250ZXh0LmgKK2RvCithc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgoraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzaWduYWwuaD4KKworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2V2YWwgIiRhc19hY19IZWFkZXI9bm8iCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKK2VjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKK2lmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKK19BQ0VPRgorCitmaQorCitkb25lCisKKworCitmb3IgYWNfaGVhZGVyIGluIG5ldGluZXQvdGNwLmggbmV0aW5ldC91ZHAuaAorZG8KK2FzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2V2YWwgIiRhc19hY19IZWFkZXI9bm8iCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKK2VjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKK2lmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKK19BQ0VPRgorCitmaQorCitkb25lCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBNUCBwcm9jZnMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgTVAgcHJvY2ZzLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9tcF9wcm9jZnMrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKworIyBHdWVzcyBvciBwdW50LgorY2FzZSAiJGhvc3Rfb3MiIGluCitzdnI0LjIqfHN2cjUqKQorCWFjX2N2X21wX3Byb2Nmcz15ZXMKKwk7OworKikKKwlhY19jdl9tcF9wcm9jZnM9bm8KKwk7OworZXNhYworCitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CisKK21haW4oKQoreworCWludCBwaWQ7CisJY2hhciBwcm9jWzMyXTsKKwlGSUxFICpjdGw7CisJRklMRSAqc3RhdHVzOworCWludCBjbWQ7CisJc3RydWN0IHBzdGF0dXMgcHN0YXR1czsKKworCWlmICgocGlkID0gZm9yaygpKSA9PSAwKSB7CisJCXBhdXNlKCk7CisJCWV4aXQoMCk7CisJfQorCXNwcmludGYocHJvYywgIi9wcm9jLyVkL2N0bCIsIHBpZCk7CisJaWYgKChjdGwgPSBmb3Blbihwcm9jLCAidyIpKSA9PSBOVUxMKQorCQlnb3RvIGZhaWw7CisJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKKwlpZiAoKHN0YXR1cyA9IGZvcGVuIChwcm9jLCAiciIpKSA9PSBOVUxMKQorCQlnb3RvIGZhaWw7CisJY21kID0gUENTVE9QOworCWlmICh3cml0ZSAoZmlsZW5vIChjdGwpLCAmY21kLCBzaXplb2YgY21kKSA8IDApCisJCWdvdG8gZmFpbDsKKwlpZiAocmVhZCAoZmlsZW5vIChzdGF0dXMpLCAmcHN0YXR1cywgc2l6ZW9mIHBzdGF0dXMpIDwgMCkKKwkJZ290byBmYWlsOworCWtpbGwocGlkLCBTSUdLSUxMKTsKKwlleGl0KDApOworZmFpbDoKKwlraWxsKHBpZCwgU0lHS0lMTCk7CisJZXhpdCgxKTsKK30KKworX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbXBfcHJvY2ZzPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQorYWNfY3ZfbXBfcHJvY2ZzPW5vCitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbXBfcHJvY2ZzIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9tcF9wcm9jZnMiID4mNgoraWYgdGVzdCAiJGFjX2N2X21wX3Byb2NmcyIgPSB5ZXMKK3RoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSEFWRV9NUF9QUk9DRlMgMQorX0FDRU9GCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgcG9sbGFibGUgcHJvY2ZzIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHBvbGxhYmxlIHByb2Nmcy4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcG9sbGFibGVfcHJvY2ZzK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisKKyMgR3Vlc3Mgb3IgcHVudC4KK2Nhc2UgIiRob3N0X29zIiBpbgorc29sYXJpczIqfGlyaXg1KnxzdnI0LjJ1dyp8c3ZyNSopCisJYWNfY3ZfcG9sbGFibGVfcHJvY2ZzPXllcworCTs7CisqKQorCWFjX2N2X3BvbGxhYmxlX3Byb2Nmcz1ubworCTs7Citlc2FjCisKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKyNpbmNsdWRlIDxzeXMvc3Ryb3B0cy5oPgorI2luY2x1ZGUgPHBvbGwuaD4KKworI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCisjZGVmaW5lIFBJT0NTVE9QCVBDU1RPUAorI2RlZmluZSBQT0xMV0FOVAlQT0xMV1JOT1JNCisjZGVmaW5lIFBST0MJCSIvcHJvYy8lZC9jdGwiCisjZGVmaW5lIFBST0NfTU9ERQkidyIKK2ludCBJT0NUTCAoaW50IGZkLCBpbnQgY21kLCBpbnQgYXJnKSB7CisJcmV0dXJuIHdyaXRlIChmZCwgJmNtZCwgc2l6ZW9mIGNtZCk7Cit9CisjZWxzZQorI2RlZmluZSBQT0xMV0FOVAlQT0xMUFJJCisjZGVmaW5lCVBST0MJCSIvcHJvYy8lZCIKKyNkZWZpbmUgUFJPQ19NT0RFCSJyKyIKKyNkZWZpbmUgSU9DVEwJCWlvY3RsCisjZW5kaWYKKworbWFpbigpCit7CisJaW50IHBpZDsKKwljaGFyIHByb2NbMzJdOworCUZJTEUgKnBmcDsKKwlzdHJ1Y3QgcG9sbGZkIHBmZDsKKworCWlmICgocGlkID0gZm9yaygpKSA9PSAwKSB7CisJCXBhdXNlKCk7CisJCWV4aXQoMCk7CisJfQorCXNwcmludGYocHJvYywgUFJPQywgcGlkKTsKKwlpZiAoKHBmcCA9IGZvcGVuKHByb2MsIFBST0NfTU9ERSkpID09IE5VTEwpCisJCWdvdG8gZmFpbDsKKwlpZiAoSU9DVEwoZmlsZW5vKHBmcCksIFBJT0NTVE9QLCBOVUxMKSA8IDApCisJCWdvdG8gZmFpbDsKKwlwZmQuZmQgPSBmaWxlbm8ocGZwKTsKKwlwZmQuZXZlbnRzID0gUE9MTFdBTlQ7CisJaWYgKHBvbGwoJnBmZCwgMSwgMCkgPCAwKQorCQlnb3RvIGZhaWw7CisJaWYgKCEocGZkLnJldmVudHMgJiBQT0xMV0FOVCkpCisJCWdvdG8gZmFpbDsKKwlraWxsKHBpZCwgU0lHS0lMTCk7CisJZXhpdCgwKTsKK2ZhaWw6CisJa2lsbChwaWQsIFNJR0tJTEwpOworCWV4aXQoMSk7Cit9CisKK19BQ0VPRgorcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3BvbGxhYmxlX3Byb2Nmcz15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKK2FjX2N2X3BvbGxhYmxlX3Byb2Nmcz1ubworZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZmkKKworZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3BvbGxhYmxlX3Byb2NmcyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfcG9sbGFibGVfcHJvY2ZzIiA+JjYKK2lmIHRlc3QgIiRhY19jdl9wb2xsYWJsZV9wcm9jZnMiID0geWVzCit0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTIDEKK19BQ0VPRgorCitmaQorCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IG1zZ2hkci5tc2dfY29udHJvbCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3QgbXNnaGRyLm1zZ19jb250cm9sLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X21zZ2hkcl9tc2dfY29udHJvbCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisKK2ludAorbWFpbiAoKQoreworc3RhdGljIHN0cnVjdCBtc2doZHIgYWNfYWdncjsKK2lmIChhY19hZ2dyLm1zZ19jb250cm9sKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2w9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKworaW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IG1zZ2hkciBhY19hZ2dyOworaWYgKHNpemVvZiBhY19hZ2dyLm1zZ19jb250cm9sKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2w9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X21lbWJlcl9zdHJ1Y3RfbXNnaGRyX21zZ19jb250cm9sPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9tc2doZHJfbXNnX2NvbnRyb2wiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3RfbXNnaGRyX21zZ19jb250cm9sIiA+JjYKK2lmIHRlc3QgJGFjX2N2X21lbWJlcl9zdHJ1Y3RfbXNnaGRyX21zZ19jb250cm9sID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIDEKK19BQ0VPRgorCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgcHJfc3lzY2FsbCBpbiBzdHJ1Y3QgcHJzdGF0dXMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgcHJfc3lzY2FsbCBpbiBzdHJ1Y3QgcHJzdGF0dXMuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3N0cnVjdF9wcl9zeXNjYWxsK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KK2ludAorbWFpbiAoKQoreworI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCitwc3RhdHVzX3QgczsKK3MucHJfbHdwLnByX3N5c2NhbGwKKyNlbHNlCitwcnN0YXR1c190IHM7CitzLnByX3N5c2NhbGwKKyNlbmRpZgorICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbD1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zdHJ1Y3RfcHJfc3lzY2FsbCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3Zfc3RydWN0X3ByX3N5c2NhbGwiID4mNgoraWYgdGVzdCAiJGFjX2N2X3N0cnVjdF9wcl9zeXNjYWxsIiA9IHllcwordGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBIQVZFX1BSX1NZU0NBTEwgMQorX0FDRU9GCisKK2ZpCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgVF9jb25uX3Jlcy5RVUVVRV9wdHIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IFRfY29ubl9yZXMuUVVFVUVfcHRyLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KKyNpbmNsdWRlIDxzeXMvdGloZHIuaD4KKworaW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IFRfY29ubl9yZXMgYWNfYWdncjsKK2lmIChhY19hZ2dyLlFVRVVFX3B0cikKK3JldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19RVUVVRV9wdHI9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KKyNpbmNsdWRlIDxzeXMvdGloZHIuaD4KKworaW50CittYWluICgpCit7CitzdGF0aWMgc3RydWN0IFRfY29ubl9yZXMgYWNfYWdncjsKK2lmIChzaXplb2YgYWNfYWdnci5RVUVVRV9wdHIpCityZXR1cm4gMDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX1FVRVVFX3B0ciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX1FVRVVFX3B0ciIgPiY2CitpZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfUVVFVUVfcHRyID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfVF9DT05OX1JFU19RVUVVRV9QVFIgMQorX0FDRU9GCisKKworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IFRfY29ubl9yZXMuQUNDRVBUT1JfaWQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IFRfY29ubl9yZXMuQUNDRVBUT1JfaWQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+CisjaW5jbHVkZSA8c3lzL3RpaGRyLmg+CisKK2ludAorbWFpbiAoKQoreworc3RhdGljIHN0cnVjdCBUX2Nvbm5fcmVzIGFjX2FnZ3I7CitpZiAoYWNfYWdnci5BQ0NFUFRPUl9pZCkKK3JldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgorI2luY2x1ZGUgPHN5cy90aWhkci5oPgorCitpbnQKK21haW4gKCkKK3sKK3N0YXRpYyBzdHJ1Y3QgVF9jb25uX3JlcyBhY19hZ2dyOworaWYgKHNpemVvZiBhY19hZ2dyLkFDQ0VQVE9SX2lkKQorcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9UX2Nvbm5fcmVzX0FDQ0VQVE9SX2lkPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfQUNDRVBUT1JfaWQ9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfQUNDRVBUT1JfaWQiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3RfVF9jb25uX3Jlc19BQ0NFUFRPUl9pZCIgPiY2CitpZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X1RfY29ubl9yZXNfQUNDRVBUT1JfaWQgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX1NUUlVDVF9UX0NPTk5fUkVTX0FDQ0VQVE9SX0lEIDEKK19BQ0VPRgorCisKK2ZpCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0Li4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxhc20vc3RhdC5oPgorCitpbnQKK21haW4gKCkKK3sKK2lmICgoc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0ICopIDApCisgIHJldHVybiAwOworaWYgKHNpemVvZiAoc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0KSkKKyAgcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfdHlwZV9zdHJ1Y3RfX19vbGRfa2VybmVsX3N0YXQ9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X3R5cGVfc3RydWN0X19fb2xkX2tlcm5lbF9zdGF0PW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl90eXBlX3N0cnVjdF9fX29sZF9rZXJuZWxfc3RhdCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfX19vbGRfa2VybmVsX3N0YXQiID4mNgoraWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3RfX19vbGRfa2VybmVsX3N0YXQgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCAxCitfQUNFT0YKKworCitmaQorCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3R5cGVfc3RydWN0X3B0X2FsbF91c2VyX3JlZ3Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorCitpbnQKK21haW4gKCkKK3sKK2lmICgoc3RydWN0IHB0X2FsbF91c2VyX3JlZ3MgKikgMCkKKyAgcmV0dXJuIDA7CitpZiAoc2l6ZW9mIChzdHJ1Y3QgcHRfYWxsX3VzZXJfcmVncykpCisgIHJldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3R5cGVfc3RydWN0X3B0X2FsbF91c2VyX3JlZ3M9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X3R5cGVfc3RydWN0X3B0X2FsbF91c2VyX3JlZ3M9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3RydWN0X3B0X2FsbF91c2VyX3JlZ3MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc3RydWN0X3B0X2FsbF91c2VyX3JlZ3MiID4mNgoraWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3RfcHRfYWxsX3VzZXJfcmVncyA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MgMQorX0FDRU9GCisKKworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IGlhNjRfZnByZWciID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IGlhNjRfZnByZWcuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3R5cGVfc3RydWN0X2lhNjRfZnByZWcrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorCitpbnQKK21haW4gKCkKK3sKK2lmICgoc3RydWN0IGlhNjRfZnByZWcgKikgMCkKKyAgcmV0dXJuIDA7CitpZiAoc2l6ZW9mIChzdHJ1Y3QgaWE2NF9mcHJlZykpCisgIHJldHVybiAwOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3R5cGVfc3RydWN0X2lhNjRfZnByZWc9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X3R5cGVfc3RydWN0X2lhNjRfZnByZWc9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3RydWN0X2lhNjRfZnByZWciID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc3RydWN0X2lhNjRfZnByZWciID4mNgoraWYgdGVzdCAkYWNfY3ZfdHlwZV9zdHJ1Y3RfaWE2NF9mcHJlZyA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcgMQorX0FDRU9GCisKKworZmkKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN0cnVjdCB1c2VyX2Rlc2MiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3RydWN0IHVzZXJfZGVzYy4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPGFzbS9sZHQuaD4KKworaW50CittYWluICgpCit7CitpZiAoKHN0cnVjdCB1c2VyX2Rlc2MgKikgMCkKKyAgcmV0dXJuIDA7CitpZiAoc2l6ZW9mIChzdHJ1Y3QgdXNlcl9kZXNjKSkKKyAgcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl90eXBlX3N0cnVjdF91c2VyX2Rlc2M9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3RydWN0X3VzZXJfZGVzYyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zdHJ1Y3RfdXNlcl9kZXNjIiA+JjYKK2lmIHRlc3QgJGFjX2N2X3R5cGVfc3RydWN0X3VzZXJfZGVzYyA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX1VTRVJfREVTQyAxCitfQUNFT0YKKworCitmaQorCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN5c19lcnJsaXN0IGlzIGRlY2xhcmVkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBzeXNfZXJybGlzdCBpcyBkZWNsYXJlZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKK2ludAorbWFpbiAoKQoreworI2lmbmRlZiBzeXNfZXJybGlzdAorICBjaGFyICpwID0gKGNoYXIgKikgc3lzX2Vycmxpc3Q7CisjZW5kaWYKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfaGF2ZV9kZWNsX3N5c19lcnJsaXN0PW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxpc3QiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfZGVjbF9zeXNfZXJybGlzdCIgPiY2CitpZiB0ZXN0ICRhY19jdl9oYXZlX2RlY2xfc3lzX2Vycmxpc3QgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX0RFQ0xfU1lTX0VSUkxJU1QgMQorX0FDRU9GCisKKworZWxzZQorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfREVDTF9TWVNfRVJSTElTVCAwCitfQUNFT0YKKworCitmaQorCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN5c19zaWdsaXN0IGlzIGRlY2xhcmVkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciBzeXNfc2lnbGlzdCBpcyBkZWNsYXJlZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfaGF2ZV9kZWNsX3N5c19zaWdsaXN0K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHNpZ25hbC5oPgorCitpbnQKK21haW4gKCkKK3sKKyNpZm5kZWYgc3lzX3NpZ2xpc3QKKyAgY2hhciAqcCA9IChjaGFyICopIHN5c19zaWdsaXN0OworI2VuZGlmCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3Q9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X2hhdmVfZGVjbF9zeXNfc2lnbGlzdD1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfaGF2ZV9kZWNsX3N5c19zaWdsaXN0IiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9oYXZlX2RlY2xfc3lzX3NpZ2xpc3QiID4mNgoraWYgdGVzdCAkYWNfY3ZfaGF2ZV9kZWNsX3N5c19zaWdsaXN0ID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9ERUNMX1NZU19TSUdMSVNUIDEKK19BQ0VPRgorCisKK2Vsc2UKKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX0RFQ0xfU1lTX1NJR0xJU1QgMAorX0FDRU9GCisKKworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIF9zeXNfc2lnbGlzdCBpcyBkZWNsYXJlZCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgX3N5c19zaWdsaXN0IGlzIGRlY2xhcmVkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oYXZlX2RlY2xfX3N5c19zaWdsaXN0K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHNpZ25hbC5oPgorCitpbnQKK21haW4gKCkKK3sKKyNpZm5kZWYgX3N5c19zaWdsaXN0CisgIGNoYXIgKnAgPSAoY2hhciAqKSBfc3lzX3NpZ2xpc3Q7CisjZW5kaWYKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X2hhdmVfZGVjbF9fc3lzX3NpZ2xpc3Q9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X2hhdmVfZGVjbF9fc3lzX3NpZ2xpc3Q9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hhdmVfZGVjbF9fc3lzX3NpZ2xpc3QiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hhdmVfZGVjbF9fc3lzX3NpZ2xpc3QiID4mNgoraWYgdGVzdCAkYWNfY3ZfaGF2ZV9kZWNsX19zeXNfc2lnbGlzdCA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QgMQorX0FDRU9GCisKKworZWxzZQorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QgMAorX0FDRU9GCisKKworZmkKKworCisKKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGVybCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgcGVybDsgYWNfd29yZD0kMgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcGF0aF9QRVJMK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhc2UgJFBFUkwgaW4KKyAgW1xcL10qIHwgPzpbXFwvXSopCisgIGFjX2N2X3BhdGhfUEVSTD0iJFBFUkwiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorICA7OworICAqKQorICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3BhdGhfUEVSTD0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCisgIDs7Citlc2FjCitmaQorUEVSTD0kYWNfY3ZfcGF0aF9QRVJMCisKK2lmIHRlc3QgLW4gIiRQRVJMIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUEVSTCIgPiY1CitlY2hvICIke0VDSE9fVH0kUEVSTCIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKKworICAgICAgICAgIGFjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSIKKworY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCisjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKKyMgdGVzdHMgcnVuIG9uIHRoaXMgc3lzdGVtIHNvIHRoZXkgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGNvbmZpZ3VyZQorIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KKyMgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3QKKyMgd2FudCB0byBrZWVwLCB5b3UgbWF5IHJlbW92ZSBvciBlZGl0IGl0LgorIworIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKKyMgdGhlIC0tcmVjaGVjayBvcHRpb24gdG8gcmVydW4gY29uZmlndXJlLgorIworIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVuCisjIGxvYWRpbmcgdGhpcyBmaWxlLCBvdGhlciAqdW5zZXQqIGBhY19jdl9mb28nIHdpbGwgYmUgYXNzaWduZWQgdGhlCisjIGZvbGxvd2luZyB2YWx1ZXMuCisKK19BQ0VPRgorCisjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorIyBidXQgd2Uga25vdyBvZiBubyB3b3JrYXJvdW5kIHRoYXQgaXMgc2ltcGxlLCBwb3J0YWJsZSwgYW5kIGVmZmljaWVudC4KKyMgU28sIGRvbid0IHB1dCBuZXdsaW5lcyBpbiBjYWNoZSB2YXJpYWJsZXMnIHZhbHVlcy4KKyMgVWx0cml4IHNoIHNldCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBjYW4ndCBiZSByZWRpcmVjdGVkIGRpcmVjdGx5LAorIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KK3sKKyAgKHNldCkgMj4mMSB8CisgICAgY2FzZSBgKGFjX3NwYWNlPScgJzsgc2V0IHwgZ3JlcCBhY19zcGFjZSkgMj4mMWAgaW4KKyAgICAqYWNfc3BhY2U9XCAqKQorICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQorICAgICAgIyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxcIGludG8gXCkuCisgICAgICBzZWQgLW4gXAorCSJzLycvJ1xcXFwnJy9nOworCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwyJy9wIgorICAgICAgOzsKKyAgICAqKQorICAgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KKyAgICAgIHNlZCAtbiBcCisJInMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9XFwyL3AiCisgICAgICA7OworICAgIGVzYWM7Cit9IHwKKyAgc2VkICcKKyAgICAgdCBjbGVhcgorICAgICA6IGNsZWFyCisgICAgIHMvXlwoW149XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwgJi8KKyAgICAgdCBlbmQKKyAgICAgL15hY19jdl9lbnYvIXMvXlwoW149XSpcKT1cKC4qXCkkL1wxPSR7XDE9XDJ9LworICAgICA6IGVuZCcgPj5jb25mY2FjaGUKK2lmIGRpZmYgJGNhY2hlX2ZpbGUgY29uZmNhY2hlID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisgIGlmIHRlc3QgLXcgJGNhY2hlX2ZpbGU7IHRoZW4KKyAgICB0ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJiBlY2hvICJ1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIKKyAgICBjYXQgY29uZmNhY2hlID4kY2FjaGVfZmlsZQorICBlbHNlCisgICAgZWNobyAibm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiCisgIGZpCitmaQorcm0gLWYgY29uZmNhY2hlCisKK3Rlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0kYWNfZGVmYXVsdF9wcmVmaXgKKyMgTGV0IG1ha2UgZXhwYW5kIGV4ZWNfcHJlZml4LgordGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JworCisjIFZQQVRIIG1heSBjYXVzZSB0cm91YmxlIHdpdGggc29tZSBtYWtlcywgc28gd2UgcmVtb3ZlICQoc3JjZGlyKSwKKyMgJHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0cmlwIGxlYWRpbmcgYW5kCisjIHRyYWlsaW5nIGNvbG9ucyBhbmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21lcyBlbXB0eQorIyAoYWN0dWFsbHkgd2UgbGVhdmUgYW4gZW1wdHkgbGluZSB0byBwcmVzZXJ2ZSBsaW5lIG51bWJlcnMpLgoraWYgdGVzdCAieCRzcmNkaXIiID0geC47IHRoZW4KKyAgYWNfdnBzdWI9Jy9eWwkgXSpWUEFUSFsJIF0qPS97CitzLzoqXCQoc3JjZGlyKToqLzovOworcy86Klwke3NyY2Rpcn06Ki86LzsKK3MvOipAc3JjZGlyQDoqLzovOworcy9eXChbXj1dKj1bCSBdKlwpOiovXDEvOworcy86KiQvLzsKK3MvXltePV0qPVsJIF0qJC8vOworfScKK2ZpCisKK0RFRlM9LURIQVZFX0NPTkZJR19ICisKK2FjX2xpYm9ianM9CithY19sdGxpYm9ianM9Citmb3IgYWNfaSBpbiA6ICRMSUJPQkpTOyBkbyB0ZXN0ICJ4JGFjX2kiID0geDogJiYgY29udGludWUKKyAgIyAxLiBSZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5kICRVIGlmIGFscmVhZHkgaW5zdGFsbGVkLgorICBhY19pPWBlY2hvICIkYWNfaSIgfAorCSBzZWQgJ3MvXCRVXC4vLi87cy9cLm8kLy87cy9cLm9iaiQvLydgCisgICMgMi4gQWRkIHRoZW0uCisgIGFjX2xpYm9ianM9IiRhY19saWJvYmpzICRhY19pXCRVLiRhY19vYmpleHQiCisgIGFjX2x0bGlib2Jqcz0iJGFjX2x0bGlib2JqcyAkYWNfaSInJFUubG8nCitkb25lCitMSUJPQkpTPSRhY19saWJvYmpzCisKK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpzCisKKworaWYgdGVzdCAteiAiJHtNQUlOVEFJTkVSX01PREVfVFJVRX0iICYmIHRlc3QgLXogIiR7TUFJTlRBSU5FUl9NT0RFX0ZBTFNFfSI7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJNQUlOVEFJTkVSX01PREVcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIk1BSU5UQUlORVJfTU9ERVwiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQoraWYgdGVzdCAteiAiJHtMSU5VWF9UUlVFfSIgJiYgdGVzdCAteiAiJHtMSU5VWF9GQUxTRX0iOyB0aGVuCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiTElOVVhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIkxJTlVYXCIgd2FzIG5ldmVyIGRlZmluZWQuCitVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCitpZiB0ZXN0IC16ICIke0kzODZfVFJVRX0iICYmIHRlc3QgLXogIiR7STM4Nl9GQUxTRX0iOyB0aGVuCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSTM4NlwiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiSTM4NlwiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQoraWYgdGVzdCAteiAiJHtYODZfNjRfVFJVRX0iICYmIHRlc3QgLXogIiR7WDg2XzY0X0ZBTFNFfSI7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJYODZfNjRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlg4Nl82NFwiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQoraWYgdGVzdCAteiAiJHtTVU5PUzRfVFJVRX0iICYmIHRlc3QgLXogIiR7U1VOT1M0X0ZBTFNFfSI7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJTVU5PUzRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlNVTk9TNFwiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQoraWYgdGVzdCAteiAiJHtTVlI0X1RSVUV9IiAmJiB0ZXN0IC16ICIke1NWUjRfRkFMU0V9IjsgdGhlbgorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjb25kaXRpb25hbCBcIlNWUjRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjb25kaXRpb25hbCBcIlNWUjRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKK2lmIHRlc3QgLXogIiR7RlJFRUJTRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtGUkVFQlNEX0ZBTFNFfSI7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJGUkVFQlNEXCIgd2FzIG5ldmVyIGRlZmluZWQuCitVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJGUkVFQlNEXCIgd2FzIG5ldmVyIGRlZmluZWQuCitVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCitpZiB0ZXN0IC16ICIke0FNREVQX1RSVUV9IiAmJiB0ZXN0IC16ICIke0FNREVQX0ZBTFNFfSI7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJBTURFUFwiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNvbmRpdGlvbmFsIFwiQU1ERVBcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKK2lmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19UUlVFfSIgJiYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX0ZBTFNFfSI7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCitVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCitVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCisKKzogJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30KK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCithY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzICRDT05GSUdfU1RBVFVTIgoreyBlY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQorZWNobyAiJGFzX21lOiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY2O30KK2NhdCA+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKKyMhICRTSEVMTAorIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgorIyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCisjIENvbXBpbGVyIG91dHB1dCBwcm9kdWNlZCBieSBjb25maWd1cmUsIHVzZWZ1bCBmb3IgZGVidWdnaW5nCisjIGNvbmZpZ3VyZSwgaXMgaW4gY29uZmlnLmxvZyBpZiBpdCBleGlzdHMuCisKK2RlYnVnPWZhbHNlCithY19jc19yZWNoZWNrPWZhbHNlCithY19jc19zaWxlbnQ9ZmFsc2UKK1NIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9CitfQUNFT0YKKworY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisKKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBlbXVsYXRlIHNoCisgIE5VTExDTUQ9OgorICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworZWxpZiB0ZXN0IC1uICIke0JBU0hfVkVSU0lPTitzZXR9IiAmJiAoc2V0IC1vIHBvc2l4KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgc2V0IC1vIHBvc2l4CitmaQorRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAorCisjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc191bnNldD11bnNldAorZWxzZQorICBhc191bnNldD1mYWxzZQorZmkKKworCisjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KKyRhc191bnNldCBFTlYgTUFJTCBNQUlMUEFUSAorUFMxPSckICcKK1BTMj0nPiAnCitQUzQ9JysgJworCisjIE5MUyBudWlzYW5jZXMuCitmb3IgYXNfdmFyIGluIFwKKyAgTEFORyBMQU5HVUFHRSBMQ19BRERSRVNTIExDX0FMTCBMQ19DT0xMQVRFIExDX0NUWVBFIExDX0lERU5USUZJQ0FUSU9OIFwKKyAgTENfTUVBU1VSRU1FTlQgTENfTUVTU0FHRVMgTENfTU9ORVRBUlkgTENfTkFNRSBMQ19OVU1FUklDIExDX1BBUEVSIFwKKyAgTENfVEVMRVBIT05FIExDX1RJTUUKK2RvCisgIGlmIChzZXQgK3g7IHRlc3QgLXogImAoZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyKSAyPiYxYCIpOyB0aGVuCisgICAgZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyCisgIGVsc2UKKyAgICAkYXNfdW5zZXQgJGFzX3ZhcgorICBmaQorZG9uZQorCisjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGFzX2V4cHI9ZXhwcgorZWxzZQorICBhc19leHByPWZhbHNlCitmaQorCitpZiAoYmFzZW5hbWUgLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLyAyPiYxYCIgPSAiWC8iOyB0aGVuCisgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCitlbHNlCisgIGFzX2Jhc2VuYW1lPWZhbHNlCitmaQorCisKKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KK2FzX21lPWAkYXNfYmFzZW5hbWUgIiQwIiB8fAorJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoL1wpJCcgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWC8iJDAiIHwKKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisKKworIyBQQVRIIG5lZWRzIENSLCBhbmQgTElORU5PIG5lZWRzIENSIGFuZCBQQVRILgorIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgorYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCithc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKK2FzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JworYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCisKKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgoraWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KKyAgZWNobyAiIyEgL2Jpbi9zaCIgPmNvbmYkJC5zaAorICBlY2hvICAiZXhpdCAwIiAgID4+Y29uZiQkLnNoCisgIGNobW9kICt4IGNvbmYkJC5zaAorICBpZiAoUEFUSD0iL25vbmV4aXN0ZW50Oy4iOyBjb25mJCQuc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgIFBBVEhfU0VQQVJBVE9SPSc7JworICBlbHNlCisgICAgUEFUSF9TRVBBUkFUT1I9OgorICBmaQorICBybSAtZiBjb25mJCQuc2gKK2ZpCisKKworICBhc19saW5lbm9fMT0kTElORU5PCisgIGFzX2xpbmVub18yPSRMSU5FTk8KKyAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAorICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKyAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICB8fCB7CisgICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIHBhdGggYXQgYWxsCisgICMgcmVsYXRpdmUgb3Igbm90LgorICBjYXNlICQwIGluCisgICAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OworICAgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgdGVzdCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKK2RvbmUKKworICAgICAgIDs7CisgIGVzYWMKKyAgIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJworICAjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKyAgaWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgorICAgIGFzX215c2VsZj0kMAorICBmaQorICBpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCisgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyAgZmkKKyAgY2FzZSAkQ09ORklHX1NIRUxMIGluCisgICcnKQorICAgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFSQVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworCSBjYXNlICRhc19kaXIgaW4KKwkgLyopCisJICAgaWYgKCIkYXNfZGlyLyRhc19iYXNlIiAtYyAnCisgIGFzX2xpbmVub18xPSRMSU5FTk8KKyAgYXNfbGluZW5vXzI9JExJTkVOTworICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCisgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgorICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgJykgMj4vZGV2L251bGw7IHRoZW4KKwkgICAgICRhc191bnNldCBCQVNIX0VOViB8fCB0ZXN0ICIke0JBU0hfRU5WK3NldH0iICE9IHNldCB8fCB7IEJBU0hfRU5WPTsgZXhwb3J0IEJBU0hfRU5WOyB9CisJICAgICAkYXNfdW5zZXQgRU5WIHx8IHRlc3QgIiR7RU5WK3NldH0iICE9IHNldCB8fCB7IEVOVj07IGV4cG9ydCBFTlY7IH0KKwkgICAgIENPTkZJR19TSEVMTD0kYXNfZGlyLyRhc19iYXNlCisJICAgICBleHBvcnQgQ09ORklHX1NIRUxMCisJICAgICBleGVjICIkQ09ORklHX1NIRUxMIiAiJDAiICR7MSsiJEAifQorCSAgIGZpOzsKKwkgZXNhYworICAgICAgIGRvbmUKK2RvbmUKKzs7CisgIGVzYWMKKworICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCisgICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKKyAgIyBsaW5lLW51bWJlciBsaW5lIGJlZm9yZSBlYWNoIGxpbmU7IHRoZSBzZWNvbmQgJ3NlZCcgZG9lcyB0aGUgcmVhbAorICAjIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2ggbGluZS1udW1iZXIgbGluZQorICAjIHdpdGggdGhlIG51bWJlcmVkIGxpbmUsIGFuZCBhcHBlbmRzIHRyYWlsaW5nICctJyBkdXJpbmcKKyAgIyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwgY2FzZSBhdCBsaW5lIGVuZC4KKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCisgICMgc2Vjb25kICdzZWQnIHNjcmlwdC4gIEJsYW1lIExlZSBFLiBNY01haG9uIGZvciBzZWQncyBzeW50YXguICA6LSkKKyAgc2VkICc9JyA8JGFzX215c2VsZiB8CisgICAgc2VkICcKKyAgICAgIE4KKyAgICAgIHMsJCwtLAorICAgICAgOiBsb29wCisgICAgICBzLF5cKFsnJGFzX2NyX2RpZ2l0cyddKlwpXCguKlwpWyRdTElORU5PXChbXickYXNfY3JfYWxudW0nX11cKSxcMVwyXDFcMywKKyAgICAgIHQgbG9vcAorICAgICAgcywtJCwsCisgICAgICBzLF5bJyRhc19jcl9kaWdpdHMnXSpcbiwsCisgICAgJyA+JGFzX21lLmxpbmVubyAmJgorICBjaG1vZCAreCAkYXNfbWUubGluZW5vIHx8CisgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKworICAjIERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcworICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKKyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpYmxlIHRvIHRoaXMpLgorICAuIC4vJGFzX21lLmxpbmVubworICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZC4KKyAgZXhpdAorfQorCisKK2Nhc2UgYGVjaG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDNgIGluCisgICpjKiwtbiopIEVDSE9fTj0gRUNIT19DPScKKycgRUNIT19UPScJJyA7OworICAqYyosKiAgKSBFQ0hPX049LW4gRUNIT19DPSBFQ0hPX1Q9IDs7CisgICopICAgICAgIEVDSE9fTj0gRUNIT19DPSdcYycgRUNIT19UPSA7OworZXNhYworCitpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc19leHByPWV4cHIKK2Vsc2UKKyAgYXNfZXhwcj1mYWxzZQorZmkKKworcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKK2VjaG8gPmNvbmYkJC5maWxlCitpZiBsbiAtcyBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKyAgIyBXZSBjb3VsZCBqdXN0IGNoZWNrIGZvciBESkdQUDsgYnV0IHRoaXMgdGVzdCBhKSB3b3JrcyBiKSBpcyBtb3JlIGdlbmVyaWMKKyAgIyBhbmQgYykgd2lsbCByZW1haW4gdmFsaWQgb25jZSBESkdQUCBzdXBwb3J0cyBzeW1saW5rcyAoREpHUFAgMi4wNCkuCisgIGlmIHRlc3QgLWYgY29uZiQkLmV4ZTsgdGhlbgorICAgICMgRG9uJ3QgdXNlIGxuIGF0IGFsbDsgd2UgZG9uJ3QgaGF2ZSBhbnkgbGlua3MKKyAgICBhc19sbl9zPSdjcCAtcCcKKyAgZWxzZQorICAgIGFzX2xuX3M9J2xuIC1zJworICBmaQorZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251bGw7IHRoZW4KKyAgYXNfbG5fcz1sbgorZWxzZQorICBhc19sbl9zPSdjcCAtcCcKK2ZpCitybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQorCitpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisgIGFzX21rZGlyX3A9OgorZWxzZQorICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorICBhc19ta2Rpcl9wPWZhbHNlCitmaQorCithc19leGVjdXRhYmxlX3A9InRlc3QgLWYiCisKKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KK2FzX3RyX2NwcD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisKKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgorYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKworCisjIElGUworIyBXZSBuZWVkIHNwYWNlLCB0YWIgYW5kIG5ldyBsaW5lLCBpbiBwcmVjaXNlbHkgdGhhdCBvcmRlci4KK2FzX25sPScKKycKK0lGUz0iIAkkYXNfbmwiCisKKyMgQ0RQQVRILgorJGFzX3Vuc2V0IENEUEFUSAorCitleGVjIDY+JjEKKworIyBPcGVuIHRoZSBsb2cgcmVhbCBzb29uLCB0byBrZWVwIFwkWzBdIGFuZCBzbyBvbiBtZWFuaW5nZnVsLCBhbmQgdG8KKyMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgorIyB2YWx1ZXMgYWZ0ZXIgb3B0aW9ucyBoYW5kbGluZy4gIExvZ2dpbmcgLS12ZXJzaW9uIGV0Yy4gaXMgT0suCitleGVjIDU+PmNvbmZpZy5sb2cKK3sKKyAgZWNobworICBzZWQgJ2g7cy8uLy0vZztzL14uLi4vIyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAorIyMgUnVubmluZyAkYXNfbWUuICMjCitfQVNCT1gKK30gPiY1CitjYXQgPiY1IDw8X0NTRU9GCisKK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgc3RyYWNlICRhc19tZSA0LjUuMTIsIHdoaWNoIHdhcworZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCisKKyAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUworICBDT05GSUdfSEVBREVSUyAgPSAkQ09ORklHX0hFQURFUlMKKyAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5LUworICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklHX0NPTU1BTkRTCisgICQgJDAgJEAKKworX0NTRU9GCitlY2hvICJvbiBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAiID4mNQorZWNobyA+JjUKK19BQ0VPRgorCisjIEZpbGVzIHRoYXQgY29uZmlnLnN0YXR1cyB3YXMgbWFkZSBmb3IuCitpZiB0ZXN0IC1uICIkYWNfY29uZmlnX2ZpbGVzIjsgdGhlbgorICBlY2hvICJjb25maWdfZmlsZXM9XCIkYWNfY29uZmlnX2ZpbGVzXCIiID4+JENPTkZJR19TVEFUVVMKK2ZpCisKK2lmIHRlc3QgLW4gIiRhY19jb25maWdfaGVhZGVycyI7IHRoZW4KKyAgZWNobyAiY29uZmlnX2hlYWRlcnM9XCIkYWNfY29uZmlnX2hlYWRlcnNcIiIgPj4kQ09ORklHX1NUQVRVUworZmkKKworaWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19saW5rcyI7IHRoZW4KKyAgZWNobyAiY29uZmlnX2xpbmtzPVwiJGFjX2NvbmZpZ19saW5rc1wiIiA+PiRDT05GSUdfU1RBVFVTCitmaQorCitpZiB0ZXN0IC1uICIkYWNfY29uZmlnX2NvbW1hbmRzIjsgdGhlbgorICBlY2hvICJjb25maWdfY29tbWFuZHM9XCIkYWNfY29uZmlnX2NvbW1hbmRzXCIiID4+JENPTkZJR19TVEFUVVMKK2ZpCisKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorCithY19jc191c2FnZT0iXAorXGAkYXNfbWUnIGluc3RhbnRpYXRlcyBmaWxlcyBmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlCitjdXJyZW50IGNvbmZpZ3VyYXRpb24uCisKK1VzYWdlOiAkMCBbT1BUSU9OU10gW0ZJTEVdLi4uCisKKyAgLWgsIC0taGVscCAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorICAtViwgLS12ZXJzaW9uICAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVuIGV4aXQKKyAgLXEsIC0tcXVpZXQgICAgICBkbyBub3QgcHJpbnQgcHJvZ3Jlc3MgbWVzc2FnZXMKKyAgLWQsIC0tZGVidWcgICAgICBkb24ndCByZW1vdmUgdGVtcG9yYXJ5IGZpbGVzCisgICAgICAtLXJlY2hlY2sgICAgdXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRoZSBzYW1lIGNvbmRpdGlvbnMKKyAgLS1maWxlPUZJTEVbOlRFTVBMQVRFXQorCQkgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIEZJTEUKKyAgLS1oZWFkZXI9RklMRVs6VEVNUExBVEVdCisJCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCisKK0NvbmZpZ3VyYXRpb24gZmlsZXM6CiskY29uZmlnX2ZpbGVzCisKK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKKyRjb25maWdfaGVhZGVycworCitDb25maWd1cmF0aW9uIGNvbW1hbmRzOgorJGNvbmZpZ19jb21tYW5kcworCitSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9jb25mQGdudS5vcmc+LiIKK19BQ0VPRgorCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgorYWNfY3NfdmVyc2lvbj0iXFwKK3N0cmFjZSBjb25maWcuc3RhdHVzIDQuNS4xMgorY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LAorICB3aXRoIG9wdGlvbnMgXFwiYGVjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKKworQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCitnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgorc3JjZGlyPSRzcmNkaXIKK0lOU1RBTEw9IiRJTlNUQUxMIgorX0FDRU9GCisKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorIyBJZiBubyBmaWxlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHRoZW4gd2UgbmVlZCB0byBwcm92aWRlIGRlZmF1bHQKKyMgdmFsdWUuICBCeSB3ZSBuZWVkIHRvIGtub3cgaWYgZmlsZXMgd2VyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuCithY19uZWVkX2RlZmF1bHRzPToKK3doaWxlIHRlc3QgJCMgIT0gMAorZG8KKyAgY2FzZSAkMSBpbgorICAtLSo9KikKKyAgICBhY19vcHRpb249YGV4cHIgIngkMSIgOiAneFwoW149XSpcKT0nYAorICAgIGFjX29wdGFyZz1gZXhwciAieCQxIiA6ICd4W149XSo9XCguKlwpJ2AKKyAgICBhY19zaGlmdD06CisgICAgOzsKKyAgLSopCisgICAgYWNfb3B0aW9uPSQxCisgICAgYWNfb3B0YXJnPSQyCisgICAgYWNfc2hpZnQ9c2hpZnQKKyAgICA7OworICAqKSAjIFRoaXMgaXMgbm90IGFuIG9wdGlvbiwgc28gdGhlIHVzZXIgaGFzIHByb2JhYmx5IGdpdmVuIGV4cGxpY2l0CisgICAgICMgYXJndW1lbnRzLgorICAgICBhY19vcHRpb249JDEKKyAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisgIGVzYWMKKworICBjYXNlICRhY19vcHRpb24gaW4KKyAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9ucy4KK19BQ0VPRgorY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCisgIC1yZWNoZWNrIHwgLS1yZWNoZWNrIHwgLS1yZWNoZWMgfCAtLXJlY2hlIHwgLS1yZWNoIHwgLS1yZWMgfCAtLXJlIHwgLS1yKQorICAgIGFjX2NzX3JlY2hlY2s9OiA7OworICAtLXZlcnNpb24gfCAtLXZlcnMqIHwgLVYgKQorICAgIGVjaG8gIiRhY19jc192ZXJzaW9uIjsgZXhpdCAwIDs7CisgIC0taGUgfCAtLWgpCisgICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFkZXIKKyAgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBhbWJpZ3VvdXMgb3B0aW9uOiAkMQorVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEKK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKKyAgLS1oZWxwIHwgLS1oZWwgfCAtaCApCisgICAgZWNobyAiJGFjX2NzX3VzYWdlIjsgZXhpdCAwIDs7CisgIC0tZGVidWcgfCAtLWQqIHwgLWQgKQorICAgIGRlYnVnPTogOzsKKyAgLS1maWxlIHwgLS1maWwgfCAtLWZpIHwgLS1mICkKKyAgICAkYWNfc2hpZnQKKyAgICBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgJGFjX29wdGFyZyIKKyAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKyAgLS1oZWFkZXIgfCAtLWhlYWRlIHwgLS1oZWFkIHwgLS1oZWEgKQorICAgICRhY19zaGlmdAorICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgJGFjX29wdGFyZyIKKyAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQorICAgIGFjX2NzX3NpbGVudD06IDs7CisKKyAgIyBUaGlzIGlzIGFuIGVycm9yLgorICAtKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQxCitUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfSA7OworCisgICopIGFjX2NvbmZpZ190YXJnZXRzPSIkYWNfY29uZmlnX3RhcmdldHMgJDEiIDs7CisKKyAgZXNhYworICBzaGlmdAorZG9uZQorCithY19jb25maWd1cmVfZXh0cmFfYXJncz0KKworaWYgJGFjX2NzX3NpbGVudDsgdGhlbgorICBleGVjIDY+L2Rldi9udWxsCisgIGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPSIkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1zaWxlbnQiCitmaQorCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCitpZiBcJGFjX2NzX3JlY2hlY2s7IHRoZW4KKyAgZWNobyAicnVubmluZyAkU0hFTEwgJDAgIiAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAiIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uIiA+JjYKKyAgZXhlYyAkU0hFTEwgJDAgJGFjX2NvbmZpZ3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24KK2ZpCisKK19BQ0VPRgorCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgorIworIyBJTklULUNPTU1BTkRTIHNlY3Rpb24uCisjCisKK0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIkYWNfYXV4X2RpciIKKworX0FDRU9GCisKKworCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKK2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cworZG8KKyAgY2FzZSAiJGFjX2NvbmZpZ190YXJnZXQiIGluCisgICMgSGFuZGxpbmcgb2YgYXJndW1lbnRzLgorICAiTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlIiA7OworICAiZGVwZmlsZXMiICkgQ09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRTIGRlcGZpbGVzIiA7OworICAiY29uZmlnLmgiICkgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBjb25maWcuaCIgOzsKKyAgKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworICBlc2FjCitkb25lCisKKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKKyMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgorIyBXZSB1c2UgdGhlIGxvbmcgZm9ybSBmb3IgdGhlIGRlZmF1bHQgYXNzaWdubWVudCBiZWNhdXNlIG9mIGFuIGV4dHJlbWVseQorIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KK2lmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCisgIHRlc3QgIiR7Q09ORklHX0ZJTEVTK3NldH0iID0gc2V0IHx8IENPTkZJR19GSUxFUz0kY29uZmlnX2ZpbGVzCisgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCisgIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0gc2V0IHx8IENPTkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRzCitmaQorCisjIEhhdmUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxkIHRyZWUKKyMgc2ltcGx5IGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHB1dCBpdCBoZXJlLCBhbmQgaW4gYWRkaXRpb24sCisjIGNyZWF0aW5nIGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAvdG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMuCisjIENyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnksIGFuZCBob29rIGZvciBpdHMgcmVtb3ZhbCB1bmxlc3MgZGVidWdnaW5nLgorJGRlYnVnIHx8Cit7CisgIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/OyBybSAtcmYgJHRtcCAmJiBleGl0ICRleGl0X3N0YXR1cycgMAorICB0cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAxMyAxNQorfQorCisjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KKworeworICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kIC1xICIuL2NvbmZzdGF0WFhYWFhYIikgMj4vZGV2L251bGxgICYmCisgIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCit9ICB8fAoreworICB0bXA9Li9jb25mc3RhdCQkLSRSQU5ET00KKyAgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKQorfSB8fAoreworICAgZWNobyAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorfQorCitfQUNFT0YKKworY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKKworIworIyBDT05GSUdfRklMRVMgc2VjdGlvbi4KKyMKKworIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZSBzY3JpcHRzIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfRklMRVMuCisjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2hlbiAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgKK2lmIHRlc3QgLW4gIlwkQ09ORklHX0ZJTEVTIjsgdGhlbgorICAjIFByb3RlY3QgYWdhaW5zdCBiZWluZyBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIHNlZCBzdWJzdCBpbiBjb25maWcuc3RhdHVzLgorICBzZWQgJ3MvLEAvQEAvOyBzL0AsL0BALzsgcy8sO3QgdFwkL0A7dCB0LzsgL0A7dCB0XCQvcy9bXFxcXCYsXS9cXFxcJi9nOworICAgcy9AQC8sQC87IHMvQEAvQCwvOyBzL0A7dCB0XCQvLDt0IHQvJyA+XCR0bXAvc3Vicy5zZWQgPDxcXENFT0YKK3MsQFNIRUxMQCwkU0hFTEwsO3QgdAorcyxAUEFUSF9TRVBBUkFUT1JALCRQQVRIX1NFUEFSQVRPUiw7dCB0CitzLEBQQUNLQUdFX05BTUVALCRQQUNLQUdFX05BTUUsO3QgdAorcyxAUEFDS0FHRV9UQVJOQU1FQCwkUEFDS0FHRV9UQVJOQU1FLDt0IHQKK3MsQFBBQ0tBR0VfVkVSU0lPTkAsJFBBQ0tBR0VfVkVSU0lPTiw7dCB0CitzLEBQQUNLQUdFX1NUUklOR0AsJFBBQ0tBR0VfU1RSSU5HLDt0IHQKK3MsQFBBQ0tBR0VfQlVHUkVQT1JUQCwkUEFDS0FHRV9CVUdSRVBPUlQsO3QgdAorcyxAZXhlY19wcmVmaXhALCRleGVjX3ByZWZpeCw7dCB0CitzLEBwcmVmaXhALCRwcmVmaXgsO3QgdAorcyxAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAsJHByb2dyYW1fdHJhbnNmb3JtX25hbWUsO3QgdAorcyxAYmluZGlyQCwkYmluZGlyLDt0IHQKK3MsQHNiaW5kaXJALCRzYmluZGlyLDt0IHQKK3MsQGxpYmV4ZWNkaXJALCRsaWJleGVjZGlyLDt0IHQKK3MsQGRhdGFkaXJALCRkYXRhZGlyLDt0IHQKK3MsQHN5c2NvbmZkaXJALCRzeXNjb25mZGlyLDt0IHQKK3MsQHNoYXJlZHN0YXRlZGlyQCwkc2hhcmVkc3RhdGVkaXIsO3QgdAorcyxAbG9jYWxzdGF0ZWRpckAsJGxvY2Fsc3RhdGVkaXIsO3QgdAorcyxAbGliZGlyQCwkbGliZGlyLDt0IHQKK3MsQGluY2x1ZGVkaXJALCRpbmNsdWRlZGlyLDt0IHQKK3MsQG9sZGluY2x1ZGVkaXJALCRvbGRpbmNsdWRlZGlyLDt0IHQKK3MsQGluZm9kaXJALCRpbmZvZGlyLDt0IHQKK3MsQG1hbmRpckAsJG1hbmRpciw7dCB0CitzLEBidWlsZF9hbGlhc0AsJGJ1aWxkX2FsaWFzLDt0IHQKK3MsQGhvc3RfYWxpYXNALCRob3N0X2FsaWFzLDt0IHQKK3MsQHRhcmdldF9hbGlhc0AsJHRhcmdldF9hbGlhcyw7dCB0CitzLEBERUZTQCwkREVGUyw7dCB0CitzLEBFQ0hPX0NALCRFQ0hPX0MsO3QgdAorcyxARUNIT19OQCwkRUNIT19OLDt0IHQKK3MsQEVDSE9fVEAsJEVDSE9fVCw7dCB0CitzLEBMSUJTQCwkTElCUyw7dCB0CitzLEBJTlNUQUxMX1BST0dSQU1ALCRJTlNUQUxMX1BST0dSQU0sO3QgdAorcyxASU5TVEFMTF9TQ1JJUFRALCRJTlNUQUxMX1NDUklQVCw7dCB0CitzLEBJTlNUQUxMX0RBVEFALCRJTlNUQUxMX0RBVEEsO3QgdAorcyxAQ1lHUEFUSF9XQCwkQ1lHUEFUSF9XLDt0IHQKK3MsQFBBQ0tBR0VALCRQQUNLQUdFLDt0IHQKK3MsQFZFUlNJT05ALCRWRVJTSU9OLDt0IHQKK3MsQEFDTE9DQUxALCRBQ0xPQ0FMLDt0IHQKK3MsQEFVVE9DT05GQCwkQVVUT0NPTkYsO3QgdAorcyxAQVVUT01BS0VALCRBVVRPTUFLRSw7dCB0CitzLEBBVVRPSEVBREVSQCwkQVVUT0hFQURFUiw7dCB0CitzLEBNQUtFSU5GT0AsJE1BS0VJTkZPLDt0IHQKK3MsQGluc3RhbGxfc2hALCRpbnN0YWxsX3NoLDt0IHQKK3MsQFNUUklQQCwkU1RSSVAsO3QgdAorcyxAYWNfY3RfU1RSSVBALCRhY19jdF9TVFJJUCw7dCB0CitzLEBJTlNUQUxMX1NUUklQX1BST0dSQU1ALCRJTlNUQUxMX1NUUklQX1BST0dSQU0sO3QgdAorcyxAbWtkaXJfcEAsJG1rZGlyX3AsO3QgdAorcyxAQVdLQCwkQVdLLDt0IHQKK3MsQFNFVF9NQUtFQCwkU0VUX01BS0UsO3QgdAorcyxAYW1fX2xlYWRpbmdfZG90QCwkYW1fX2xlYWRpbmdfZG90LDt0IHQKK3MsQEFNVEFSQCwkQU1UQVIsO3QgdAorcyxAYW1fX3RhckAsJGFtX190YXIsO3QgdAorcyxAYW1fX3VudGFyQCwkYW1fX3VudGFyLDt0IHQKK3MsQE1BSU5UQUlORVJfTU9ERV9UUlVFQCwkTUFJTlRBSU5FUl9NT0RFX1RSVUUsO3QgdAorcyxATUFJTlRBSU5FUl9NT0RFX0ZBTFNFQCwkTUFJTlRBSU5FUl9NT0RFX0ZBTFNFLDt0IHQKK3MsQE1BSU5UQCwkTUFJTlQsO3QgdAorcyxAYnVpbGRALCRidWlsZCw7dCB0CitzLEBidWlsZF9jcHVALCRidWlsZF9jcHUsO3QgdAorcyxAYnVpbGRfdmVuZG9yQCwkYnVpbGRfdmVuZG9yLDt0IHQKK3MsQGJ1aWxkX29zQCwkYnVpbGRfb3MsO3QgdAorcyxAaG9zdEAsJGhvc3QsO3QgdAorcyxAaG9zdF9jcHVALCRob3N0X2NwdSw7dCB0CitzLEBob3N0X3ZlbmRvckAsJGhvc3RfdmVuZG9yLDt0IHQKK3MsQGhvc3Rfb3NALCRob3N0X29zLDt0IHQKK3MsQG9wc3lzQCwkb3BzeXMsO3QgdAorcyxAYXJjaEAsJGFyY2gsO3QgdAorcyxATElOVVhfVFJVRUAsJExJTlVYX1RSVUUsO3QgdAorcyxATElOVVhfRkFMU0VALCRMSU5VWF9GQUxTRSw7dCB0CitzLEBJMzg2X1RSVUVALCRJMzg2X1RSVUUsO3QgdAorcyxASTM4Nl9GQUxTRUAsJEkzODZfRkFMU0UsO3QgdAorcyxAWDg2XzY0X1RSVUVALCRYODZfNjRfVFJVRSw7dCB0CitzLEBYODZfNjRfRkFMU0VALCRYODZfNjRfRkFMU0UsO3QgdAorcyxAU1VOT1M0X1RSVUVALCRTVU5PUzRfVFJVRSw7dCB0CitzLEBTVU5PUzRfRkFMU0VALCRTVU5PUzRfRkFMU0UsO3QgdAorcyxAU1ZSNF9UUlVFQCwkU1ZSNF9UUlVFLDt0IHQKK3MsQFNWUjRfRkFMU0VALCRTVlI0X0ZBTFNFLDt0IHQKK3MsQEZSRUVCU0RfVFJVRUAsJEZSRUVCU0RfVFJVRSw7dCB0CitzLEBGUkVFQlNEX0ZBTFNFQCwkRlJFRUJTRF9GQUxTRSw7dCB0CitzLEBDQ0AsJENDLDt0IHQKK3MsQENGTEFHU0AsJENGTEFHUyw7dCB0CitzLEBMREZMQUdTQCwkTERGTEFHUyw7dCB0CitzLEBDUFBGTEFHU0AsJENQUEZMQUdTLDt0IHQKK3MsQGFjX2N0X0NDQCwkYWNfY3RfQ0MsO3QgdAorcyxARVhFRVhUQCwkRVhFRVhULDt0IHQKK3MsQE9CSkVYVEAsJE9CSkVYVCw7dCB0CitzLEBERVBESVJALCRERVBESVIsO3QgdAorcyxAYW1fX2luY2x1ZGVALCRhbV9faW5jbHVkZSw7dCB0CitzLEBhbV9fcXVvdGVALCRhbV9fcXVvdGUsO3QgdAorcyxAQU1ERVBfVFJVRUAsJEFNREVQX1RSVUUsO3QgdAorcyxAQU1ERVBfRkFMU0VALCRBTURFUF9GQUxTRSw7dCB0CitzLEBBTURFUEJBQ0tTTEFTSEAsJEFNREVQQkFDS1NMQVNILDt0IHQKK3MsQENDREVQTU9ERUAsJENDREVQTU9ERSw7dCB0CitzLEBhbV9fZmFzdGRlcENDX1RSVUVALCRhbV9fZmFzdGRlcENDX1RSVUUsO3QgdAorcyxAYW1fX2Zhc3RkZXBDQ19GQUxTRUAsJGFtX19mYXN0ZGVwQ0NfRkFMU0UsO3QgdAorcyxAV0FSTkZMQUdTQCwkV0FSTkZMQUdTLDt0IHQKK3MsQENQUEAsJENQUCw7dCB0CitzLEBFR1JFUEAsJEVHUkVQLDt0IHQKK3MsQFBFUkxALCRQRVJMLDt0IHQKK3MsQExJQk9CSlNALCRMSUJPQkpTLDt0IHQKK3MsQExUTElCT0JKU0AsJExUTElCT0JKUyw7dCB0CitDRU9GCisKK19BQ0VPRgorCisgIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorICAjIFNwbGl0IHRoZSBzdWJzdGl0dXRpb25zIGludG8gYml0ZS1zaXplZCBwaWVjZXMgZm9yIHNlZHMgd2l0aAorICAjIHNtYWxsIGNvbW1hbmQgbnVtYmVyIGxpbWl0cywgbGlrZSBvbiBEaWdpdGFsIE9TRi8xIGFuZCBIUC1VWC4KKyAgYWNfbWF4X3NlZF9saW5lcz00OAorICBhY19zZWRfZnJhZz0xICMgTnVtYmVyIG9mIGN1cnJlbnQgZmlsZS4KKyAgYWNfYmVnPTEgIyBGaXJzdCBsaW5lIGZvciBjdXJyZW50IGZpbGUuCisgIGFjX2VuZD0kYWNfbWF4X3NlZF9saW5lcyAjIExpbmUgYWZ0ZXIgbGFzdCBsaW5lIGZvciBjdXJyZW50IGZpbGUuCisgIGFjX21vcmVfbGluZXM9OgorICBhY19zZWRfY21kcz0KKyAgd2hpbGUgJGFjX21vcmVfbGluZXM7IGRvCisgICAgaWYgdGVzdCAkYWNfYmVnIC1ndCAxOyB0aGVuCisgICAgICBzZWQgIjEsJHthY19iZWd9ZDsgJHthY19lbmR9cSIgJHRtcC9zdWJzLnNlZCA+JHRtcC9zdWJzLmZyYWcKKyAgICBlbHNlCisgICAgICBzZWQgIiR7YWNfZW5kfXEiICR0bXAvc3Vicy5zZWQgPiR0bXAvc3Vicy5mcmFnCisgICAgZmkKKyAgICBpZiB0ZXN0ICEgLXMgJHRtcC9zdWJzLmZyYWc7IHRoZW4KKyAgICAgIGFjX21vcmVfbGluZXM9ZmFsc2UKKyAgICBlbHNlCisgICAgICAjIFRoZSBwdXJwb3NlIG9mIHRoZSBsYWJlbCBhbmQgb2YgdGhlIGJyYW5jaGluZyBjb25kaXRpb24gaXMgdG8KKyAgICAgICMgc3BlZWQgdXAgdGhlIHNlZCBwcm9jZXNzaW5nIChpZiB0aGVyZSBhcmUgbm8gYEAnIGF0IGFsbCwgdGhlcmUKKyAgICAgICMgaXMgbm8gbmVlZCB0byBicm93c2UgYW55IG9mIHRoZSBzdWJzdGl0dXRpb25zKS4KKyAgICAgICMgVGhlc2UgYXJlIHRoZSB0d28gZXh0cmEgc2VkIGNvbW1hbmRzIG1lbnRpb25lZCBhYm92ZS4KKyAgICAgIChlY2hvICc6dAorICAvQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiJyAmJiBjYXQgJHRtcC9zdWJzLmZyYWcpID4kdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZAorICAgICAgaWYgdGVzdCAteiAiJGFjX3NlZF9jbWRzIjsgdGhlbgorCWFjX3NlZF9jbWRzPSJzZWQgLWYgJHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQiCisgICAgICBlbHNlCisJYWNfc2VkX2NtZHM9IiRhY19zZWRfY21kcyB8IHNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKKyAgICAgIGZpCisgICAgICBhY19zZWRfZnJhZz1gZXhwciAkYWNfc2VkX2ZyYWcgKyAxYAorICAgICAgYWNfYmVnPSRhY19lbmQKKyAgICAgIGFjX2VuZD1gZXhwciAkYWNfZW5kICsgJGFjX21heF9zZWRfbGluZXNgCisgICAgZmkKKyAgZG9uZQorICBpZiB0ZXN0IC16ICIkYWNfc2VkX2NtZHMiOyB0aGVuCisgICAgYWNfc2VkX2NtZHM9Y2F0CisgIGZpCitmaSAjIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiCisKK19BQ0VPRgorY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCitmb3IgYWNfZmlsZSBpbiA6ICRDT05GSUdfRklMRVM7IGRvIHRlc3QgIngkYWNfZmlsZSIgPSB4OiAmJiBjb250aW51ZQorICAjIFN1cHBvcnQgIm91dGZpbGVbOmluZmlsZVs6aW5maWxlLi4uXV0iLCBkZWZhdWx0aW5nIGluZmlsZT0ib3V0ZmlsZS5pbiIuCisgIGNhc2UgJGFjX2ZpbGUgaW4KKyAgLSB8ICo6LSB8ICo6LToqICkgIyBpbnB1dCBmcm9tIHN0ZGluCisJY2F0ID4kdG1wL3N0ZGluCisJYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKKwlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OworICAqOiogKSBhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAorCWFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7CisgICogKSAgIGFjX2ZpbGVfaW49JGFjX2ZpbGUuaW4gOzsKKyAgZXNhYworCisgICMgQ29tcHV0ZSBAc3JjZGlyQCwgQHRvcF9zcmNkaXJALCBhbmQgQElOU1RBTExAIGZvciBzdWJkaXJlY3Rvcmllcy4KKyAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRhY19maWxlIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgeyBpZiAkYXNfbWtkaXJfcDsgdGhlbgorICAgIG1rZGlyIC1wICIkYWNfZGlyIgorICBlbHNlCisgICAgYXNfZGlyPSIkYWNfZGlyIgorICAgIGFzX2RpcnM9CisgICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KKyAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCisgICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRhc19kaXIiIHwKKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorICAgIGRvbmUKKyAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycworICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQorCisgIGFjX2J1aWxkZGlyPS4KKworaWYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgorICBhY19kaXJfc3VmZml4PS9gZWNobyAiJGFjX2RpciIgfCBzZWQgJ3MsXlwuW1xcL10sLCdgCisgICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCisgIGFjX3RvcF9idWlsZGRpcj1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXlxcL10qLC4uLyxnJ2AKK2Vsc2UKKyAgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyPQorZmkKKworY2FzZSAkc3JjZGlyIGluCisgIC4pICAjIE5vIC0tc3JjZGlyIG9wdGlvbi4gIFdlIGFyZSBidWlsZGluZyBpbiBwbGFjZS4KKyAgICBhY19zcmNkaXI9LgorICAgIGlmIHRlc3QgLXogIiRhY190b3BfYnVpbGRkaXIiOyB0aGVuCisgICAgICAgYWNfdG9wX3NyY2Rpcj0uCisgICAgZWxzZQorICAgICAgIGFjX3RvcF9zcmNkaXI9YGVjaG8gJGFjX3RvcF9idWlsZGRpciB8IHNlZCAncywvJCwsJ2AKKyAgICBmaSA7OworICBbXFwvXSogfCA/OltcXC9dKiApICAjIEFic29sdXRlIHBhdGguCisgICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKKyAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIgOzsKKyAgKikgIyBSZWxhdGl2ZSBwYXRoLgorICAgIGFjX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciRhY19kaXJfc3VmZml4CisgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyJHNyY2RpciA7OworZXNhYworCisjIERvIG5vdCB1c2UgYGNkIGZvbyAmJiBwd2RgIHRvIGNvbXB1dGUgYWJzb2x1dGUgcGF0aHMsIGJlY2F1c2UKKyMgdGhlIGRpcmVjdG9yaWVzIG1heSBub3QgZXhpc3QuCitjYXNlIGBwd2RgIGluCisuKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKKyopCisgIGNhc2UgIiRhY19kaXIiIGluCisgIC4pIGFjX2Fic19idWlsZGRpcj1gcHdkYDs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7CisgICopIGFjX2Fic19idWlsZGRpcj1gcHdkYC8iJGFjX2RpciI7OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyopCisgIGNhc2UgJHthY190b3BfYnVpbGRkaXJ9LiBpbgorICAuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7CisgICopIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpci8ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7CisqKQorICBjYXNlICRhY19zcmNkaXIgaW4KKyAgLikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OworICAqKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3NyY2Rpcjs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7CisqKQorICBjYXNlICRhY190b3Bfc3JjZGlyIGluCisgIC4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKKyAgKikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfdG9wX3NyY2Rpcjs7CisgIGVzYWM7OworZXNhYworCisKKyAgY2FzZSAkSU5TVEFMTCBpbgorICBbXFwvJF0qIHwgPzpbXFwvXSogKSBhY19JTlNUQUxMPSRJTlNUQUxMIDs7CisgICopIGFjX0lOU1RBTEw9JGFjX3RvcF9idWlsZGRpciRJTlNUQUxMIDs7CisgIGVzYWMKKworICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQorZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZmlsZSIgPiY2O30KKyAgICBybSAtZiAiJGFjX2ZpbGUiCisgIGZpCisgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0CisgICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKKyAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KKyAgaWYgdGVzdCB4IiRhY19maWxlIiA9IHgtOyB0aGVuCisgICAgY29uZmlndXJlX2lucHV0PQorICBlbHNlCisgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4gICIKKyAgZmkKKyAgY29uZmlndXJlX2lucHV0PSRjb25maWd1cmVfaW5wdXQiR2VuZXJhdGVkIGZyb20gYGVjaG8gJGFjX2ZpbGVfaW4gfAorCQkJCSAgICAgc2VkICdzLC4qLywsJ2AgYnkgY29uZmlndXJlLiIKKworICAjIEZpcnN0IGxvb2sgZm9yIHRoZSBpbnB1dCBmaWxlcyBpbiB0aGUgYnVpbGQgdHJlZSwgb3RoZXJ3aXNlIGluIHRoZQorICAjIHNyYyB0cmVlLgorICBhY19maWxlX2lucHV0cz1gSUZTPToKKyAgICBmb3IgZiBpbiAkYWNfZmlsZV9pbjsgZG8KKyAgICAgIGNhc2UgJGYgaW4KKyAgICAgIC0pIGVjaG8gJHRtcC9zdGRpbiA7OworICAgICAgW1xcLyRdKikKKwkgIyBBYnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKKwkgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisJIGVjaG8gIiRmIjs7CisgICAgICAqKSAjIFJlbGF0aXZlCisJIGlmIHRlc3QgLWYgIiRmIjsgdGhlbgorCSAgICMgQnVpbGQgdHJlZQorCSAgIGVjaG8gIiRmIgorCSBlbGlmIHRlc3QgLWYgIiRzcmNkaXIvJGYiOyB0aGVuCisJICAgIyBTb3VyY2UgdHJlZQorCSAgIGVjaG8gIiRzcmNkaXIvJGYiCisJIGVsc2UKKwkgICAjIC9kZXYvbnVsbCB0cmVlCisJICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKwkgZmk7OworICAgICAgZXNhYworICAgIGRvbmVgIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorX0FDRU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgorICBzZWQgIiRhY192cHN1YgorJGV4dHJhc3ViCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorOnQKKy9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKK3MsQGNvbmZpZ3VyZV9pbnB1dEAsJGNvbmZpZ3VyZV9pbnB1dCw7dCB0CitzLEBzcmNkaXJALCRhY19zcmNkaXIsO3QgdAorcyxAYWJzX3NyY2RpckAsJGFjX2Fic19zcmNkaXIsO3QgdAorcyxAdG9wX3NyY2RpckAsJGFjX3RvcF9zcmNkaXIsO3QgdAorcyxAYWJzX3RvcF9zcmNkaXJALCRhY19hYnNfdG9wX3NyY2Rpciw7dCB0CitzLEBidWlsZGRpckAsJGFjX2J1aWxkZGlyLDt0IHQKK3MsQGFic19idWlsZGRpckAsJGFjX2Fic19idWlsZGRpciw7dCB0CitzLEB0b3BfYnVpbGRkaXJALCRhY190b3BfYnVpbGRkaXIsO3QgdAorcyxAYWJzX3RvcF9idWlsZGRpckAsJGFjX2Fic190b3BfYnVpbGRkaXIsO3QgdAorcyxASU5TVEFMTEAsJGFjX0lOU1RBTEwsO3QgdAorIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiR0bXAvb3V0CisgIHJtIC1mICR0bXAvc3RkaW4KKyAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgorICAgIG12ICR0bXAvb3V0ICRhY19maWxlCisgIGVsc2UKKyAgICBjYXQgJHRtcC9vdXQKKyAgICBybSAtZiAkdG1wL291dAorICBmaQorCitkb25lCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorCisjCisjIENPTkZJR19IRUFERVIgc2VjdGlvbi4KKyMKKworIyBUaGVzZSBzZWQgY29tbWFuZHMgYXJlIHBhc3NlZCB0byBzZWQgYXMgIkEgTkFNRSBCIE5BTUUgQyBWQUxVRSBEIiwgd2hlcmUKKyMgTkFNRSBpcyB0aGUgY3BwIG1hY3JvIGJlaW5nIGRlZmluZWQgYW5kIFZBTFVFIGlzIHRoZSB2YWx1ZSBpdCBpcyBiZWluZyBnaXZlbi4KKyMKKyMgYWNfZCBzZXRzIHRoZSB2YWx1ZSBpbiAiI2RlZmluZSBOQU1FIFZBTFVFIiBsaW5lcy4KK2FjX2RBPSdzLF5cKFsJIF0qXCkjXChbCSBdKmRlZmluZVsJIF1bCSBdKlwpJworYWNfZEI9J1sJIF0uKiQsXDEjXDInCithY19kQz0nICcKK2FjX2REPScsO3QnCisjIGFjX3UgdHVybnMgIiN1bmRlZiBOQU1FIiB3aXRob3V0IHRyYWlsaW5nIGJsYW5rcyBpbnRvICIjZGVmaW5lIE5BTUUgVkFMVUUiLgorYWNfdUE9J3MsXlwoWwkgXSpcKSNcKFsJIF0qXCl1bmRlZlwoWwkgXVsJIF0qXCknCithY191Qj0nJCxcMSNcMmRlZmluZVwzJworYWNfdUM9JyAnCithY191RD0nLDt0JworCitmb3IgYWNfZmlsZSBpbiA6ICRDT05GSUdfSEVBREVSUzsgZG8gdGVzdCAieCRhY19maWxlIiA9IHg6ICYmIGNvbnRpbnVlCisgICMgU3VwcG9ydCAib3V0ZmlsZVs6aW5maWxlWzppbmZpbGUuLi5dXSIsIGRlZmF1bHRpbmcgaW5maWxlPSJvdXRmaWxlLmluIi4KKyAgY2FzZSAkYWNfZmlsZSBpbgorICAtIHwgKjotIHwgKjotOiogKSAjIGlucHV0IGZyb20gc3RkaW4KKwljYXQgPiR0bXAvc3RkaW4KKwlhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAorCWFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7CisgICo6KiApIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCisJYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKKyAgKiApICAgYWNfZmlsZV9pbj0kYWNfZmlsZS5pbiA7OworICBlc2FjCisKKyAgdGVzdCB4IiRhY19maWxlIiAhPSB4LSAmJiB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1CitlY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQorCisgICMgRmlyc3QgbG9vayBmb3IgdGhlIGlucHV0IGZpbGVzIGluIHRoZSBidWlsZCB0cmVlLCBvdGhlcndpc2UgaW4gdGhlCisgICMgc3JjIHRyZWUuCisgIGFjX2ZpbGVfaW5wdXRzPWBJRlM9OgorICAgIGZvciBmIGluICRhY19maWxlX2luOyBkbworICAgICAgY2FzZSAkZiBpbgorICAgICAgLSkgZWNobyAkdG1wL3N0ZGluIDs7CisgICAgICBbXFwvJF0qKQorCSAjIEFic29sdXRlIChjYW4ndCBiZSBET1Mtc3R5bGUsIGFzIElGUz06KQorCSB0ZXN0IC1mICIkZiIgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKwkgIyBEbyBxdW90ZSAkZiwgdG8gcHJldmVudCBET1MgcGF0aHMgZnJvbSBiZWluZyBJRlMnZC4KKwkgZWNobyAiJGYiOzsKKyAgICAgICopICMgUmVsYXRpdmUKKwkgaWYgdGVzdCAtZiAiJGYiOyB0aGVuCisJICAgIyBCdWlsZCB0cmVlCisJICAgZWNobyAiJGYiCisJIGVsaWYgdGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KKwkgICAjIFNvdXJjZSB0cmVlCisJICAgZWNobyAiJHNyY2Rpci8kZiIKKwkgZWxzZQorCSAgICMgL2Rldi9udWxsIHRyZWUKKwkgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCSBmaTs7CisgICAgICBlc2FjCisgICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisgICMgUmVtb3ZlIHRoZSB0cmFpbGluZyBzcGFjZXMuCisgIHNlZCAncy9bCSBdKiQvLycgJGFjX2ZpbGVfaW5wdXRzID4kdG1wL2luCisKK19BQ0VPRgorCisjIFRyYW5zZm9ybSBjb25mZGVmcy5oIGludG8gdHdvIHNlZCBzY3JpcHRzLCBgY29uZnRlc3QuZGVmaW5lcycgYW5kCisjIGBjb25mdGVzdC51bmRlZnMnLCB0aGF0IHN1YnN0aXR1dGVzIHRoZSBwcm9wZXIgdmFsdWVzIGludG8KKyMgY29uZmlnLmguaW4gdG8gcHJvZHVjZSBjb25maWcuaC4gIFRoZSBmaXJzdCBoYW5kbGVzIGAjZGVmaW5lJworIyB0ZW1wbGF0ZXMsIGFuZCB0aGUgc2Vjb25kIGAjdW5kZWYnIHRlbXBsYXRlcy4KKyMgQW5kIGZpcnN0OiBQcm90ZWN0IGFnYWluc3QgYmVpbmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBzZWQgc3Vic3QgaW4KKyMgY29uZmlnLnN0YXR1cy4gIFByb3RlY3QgYWdhaW5zdCBiZWluZyBpbiBhbiB1bnF1b3RlZCBoZXJlIGRvY3VtZW50CisjIGluIGNvbmZpZy5zdGF0dXMuCitybSAtZiBjb25mdGVzdC5kZWZpbmVzIGNvbmZ0ZXN0LnVuZGVmcworIyBVc2luZyBhIGhlcmUgZG9jdW1lbnQgaW5zdGVhZCBvZiBhIHN0cmluZyByZWR1Y2VzIHRoZSBxdW90aW5nIG5pZ2h0bWFyZS4KKyMgUHV0dGluZyBjb21tZW50cyBpbiBzZWQgc2NyaXB0cyBpcyBub3QgcG9ydGFibGUuCisjCisjIGBlbmQnIGlzIHVzZWQgdG8gYXZvaWQgdGhhdCB0aGUgc2Vjb25kIG1haW4gc2VkIGNvbW1hbmQgKG1lYW50IGZvcgorIyAwLWFyeSBDUFAgbWFjcm9zKSBhcHBsaWVzIHRvIG4tYXJ5IG1hY3JvIGRlZmluaXRpb25zLgorIyBTZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24gZm9yIGBjbGVhcicuCitjYXQgPmNvbmZkZWYyc2VkLnNlZCA8PFxfQUNFT0YKK3MvW1xcJixdL1xcJi9nCitzLFtcXCRgXSxcXCYsZwordCBjbGVhcgorOiBjbGVhcgorcyxeWwkgXSojWwkgXSpkZWZpbmVbCSBdWwkgXSpcKFteCSAoXVteCSAoXSpcKVwoKFteKV0qKVwpWwkgXSpcKC4qXCkkLCR7YWNfZEF9XDEke2FjX2RCfVwxXDIke2FjX2RDfVwzJHthY19kRH0sZ3AKK3QgZW5kCitzLF5bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKlwoW14JIF1bXgkgXSpcKVsJIF0qXCguKlwpJCwke2FjX2RBfVwxJHthY19kQn1cMSR7YWNfZEN9XDIke2FjX2REfSxncAorOiBlbmQKK19BQ0VPRgorIyBJZiBzb21lIG1hY3JvcyB3ZXJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIHRoZXJlIG1pZ2h0IGJlIHNldmVyYWwgdGltZXMKKyMgdGhlIHNhbWUgI2RlZmluZXMsIHdoaWNoIGlzIHVzZWxlc3MuICBOZXZlcnRoZWxlc3MsIHdlIG1heSBub3Qgd2FudCB0bworIyBzb3J0IHRoZW0sIHNpbmNlIHdlIHdhbnQgdGhlICpsYXN0KiBBQy1ERUZJTkUgdG8gYmUgaG9ub3JlZC4KK3VuaXEgY29uZmRlZnMuaCB8IHNlZCAtbiAtZiBjb25mZGVmMnNlZC5zZWQgPmNvbmZ0ZXN0LmRlZmluZXMKK3NlZCAncy9hY19kL2FjX3UvZycgY29uZnRlc3QuZGVmaW5lcyA+Y29uZnRlc3QudW5kZWZzCitybSAtZiBjb25mZGVmMnNlZC5zZWQKKworIyBUaGlzIHNlZCBjb21tYW5kIHJlcGxhY2VzICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAgVGhpcyBpcyBuZWNlc3NhcnksIGZvcgorIyBleGFtcGxlLCBpbiB0aGUgY2FzZSBvZiBfUE9TSVhfU09VUkNFLCB3aGljaCBpcyBwcmVkZWZpbmVkIGFuZCByZXF1aXJlZAorIyBvbiBzb21lIHN5c3RlbXMgd2hlcmUgY29uZmlndXJlIHdpbGwgbm90IGRlY2lkZSB0byBkZWZpbmUgaXQuCitjYXQgPj5jb25mdGVzdC51bmRlZnMgPDxcX0FDRU9GCitzLF5bCSBdKiNbCSBdKnVuZGVmWwkgXVsJIF0qW2EtekEtWl9dW2EtekEtWl8wLTldKiwvKiAmICovLAorX0FDRU9GCisKKyMgQnJlYWsgdXAgY29uZnRlc3QuZGVmaW5lcyBiZWNhdXNlIHNvbWUgc2hlbGxzIGhhdmUgYSBsaW1pdCBvbiB0aGUgc2l6ZQorIyBvZiBoZXJlIGRvY3VtZW50cywgYW5kIG9sZCBzZWRzIGhhdmUgc21hbGwgbGltaXRzIHRvbyAoMTAwIGNtZHMpLgorZWNobyAnICAjIEhhbmRsZSBhbGwgdGhlICNkZWZpbmUgdGVtcGxhdGVzIG9ubHkgaWYgbmVjZXNzYXJ5LicgPj4kQ09ORklHX1NUQVRVUworZWNobyAnICBpZiBncmVwICJeWwkgXSojWwkgXSpkZWZpbmUiICR0bXAvaW4gPi9kZXYvbnVsbDsgdGhlbicgPj4kQ09ORklHX1NUQVRVUworZWNobyAnICAjIElmIHRoZXJlIGFyZSBubyBkZWZpbmVzLCB3ZSBtYXkgaGF2ZSBhbiBlbXB0eSBpZi9maScgPj4kQ09ORklHX1NUQVRVUworZWNobyAnICA6JyA+PiRDT05GSUdfU1RBVFVTCitybSAtZiBjb25mdGVzdC50YWlsCit3aGlsZSBncmVwIC4gY29uZnRlc3QuZGVmaW5lcyA+L2Rldi9udWxsCitkbworICAjIFdyaXRlIGEgbGltaXRlZC1zaXplIGhlcmUgZG9jdW1lbnQgdG8gJHRtcC9kZWZpbmVzLnNlZC4KKyAgZWNobyAnICBjYXQgPiR0bXAvZGVmaW5lcy5zZWQgPDxDRU9GJyA+PiRDT05GSUdfU1RBVFVTCisgICMgU3BlZWQgdXA6IGRvbid0IGNvbnNpZGVyIHRoZSBub24gYCNkZWZpbmUnIGxpbmVzLgorICBlY2hvICcvXlsJIF0qI1sJIF0qZGVmaW5lLyFiJyA+PiRDT05GSUdfU1RBVFVTCisgICMgV29yayBhcm91bmQgdGhlIGZvcmdldC10by1yZXNldC10aGUtZmxhZyBidWcuCisgIGVjaG8gJ3QgY2xyJyA+PiRDT05GSUdfU1RBVFVTCisgIGVjaG8gJzogY2xyJyA+PiRDT05GSUdfU1RBVFVTCisgIHNlZCAke2FjX21heF9oZXJlX2xpbmVzfXEgY29uZnRlc3QuZGVmaW5lcyA+PiRDT05GSUdfU1RBVFVTCisgIGVjaG8gJ0NFT0YKKyAgc2VkIC1mICR0bXAvZGVmaW5lcy5zZWQgJHRtcC9pbiA+JHRtcC9vdXQKKyAgcm0gLWYgJHRtcC9pbgorICBtdiAkdG1wL291dCAkdG1wL2luCisnID4+JENPTkZJR19TVEFUVVMKKyAgc2VkIDEsJHthY19tYXhfaGVyZV9saW5lc31kIGNvbmZ0ZXN0LmRlZmluZXMgPmNvbmZ0ZXN0LnRhaWwKKyAgcm0gLWYgY29uZnRlc3QuZGVmaW5lcworICBtdiBjb25mdGVzdC50YWlsIGNvbmZ0ZXN0LmRlZmluZXMKK2RvbmUKK3JtIC1mIGNvbmZ0ZXN0LmRlZmluZXMKK2VjaG8gJyAgZmkgIyBncmVwJyA+PiRDT05GSUdfU1RBVFVTCitlY2hvID4+JENPTkZJR19TVEFUVVMKKworIyBCcmVhayB1cCBjb25mdGVzdC51bmRlZnMgYmVjYXVzZSBzb21lIHNoZWxscyBoYXZlIGEgbGltaXQgb24gdGhlIHNpemUKKyMgb2YgaGVyZSBkb2N1bWVudHMsIGFuZCBvbGQgc2VkcyBoYXZlIHNtYWxsIGxpbWl0cyB0b28gKDEwMCBjbWRzKS4KK2VjaG8gJyAgIyBIYW5kbGUgYWxsIHRoZSAjdW5kZWYgdGVtcGxhdGVzJyA+PiRDT05GSUdfU1RBVFVTCitybSAtZiBjb25mdGVzdC50YWlsCit3aGlsZSBncmVwIC4gY29uZnRlc3QudW5kZWZzID4vZGV2L251bGwKK2RvCisgICMgV3JpdGUgYSBsaW1pdGVkLXNpemUgaGVyZSBkb2N1bWVudCB0byAkdG1wL3VuZGVmcy5zZWQuCisgIGVjaG8gJyAgY2F0ID4kdG1wL3VuZGVmcy5zZWQgPDxDRU9GJyA+PiRDT05GSUdfU1RBVFVTCisgICMgU3BlZWQgdXA6IGRvbid0IGNvbnNpZGVyIHRoZSBub24gYCN1bmRlZicKKyAgZWNobyAnL15bCSBdKiNbCSBdKnVuZGVmLyFiJyA+PiRDT05GSUdfU1RBVFVTCisgICMgV29yayBhcm91bmQgdGhlIGZvcmdldC10by1yZXNldC10aGUtZmxhZyBidWcuCisgIGVjaG8gJ3QgY2xyJyA+PiRDT05GSUdfU1RBVFVTCisgIGVjaG8gJzogY2xyJyA+PiRDT05GSUdfU1RBVFVTCisgIHNlZCAke2FjX21heF9oZXJlX2xpbmVzfXEgY29uZnRlc3QudW5kZWZzID4+JENPTkZJR19TVEFUVVMKKyAgZWNobyAnQ0VPRgorICBzZWQgLWYgJHRtcC91bmRlZnMuc2VkICR0bXAvaW4gPiR0bXAvb3V0CisgIHJtIC1mICR0bXAvaW4KKyAgbXYgJHRtcC9vdXQgJHRtcC9pbgorJyA+PiRDT05GSUdfU1RBVFVTCisgIHNlZCAxLCR7YWNfbWF4X2hlcmVfbGluZXN9ZCBjb25mdGVzdC51bmRlZnMgPmNvbmZ0ZXN0LnRhaWwKKyAgcm0gLWYgY29uZnRlc3QudW5kZWZzCisgIG12IGNvbmZ0ZXN0LnRhaWwgY29uZnRlc3QudW5kZWZzCitkb25lCitybSAtZiBjb25mdGVzdC51bmRlZnMKKworY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCisgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0YW50aWF0ZXMgKGkuZS4sIGRvbid0CisgICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBiZSBzdXJwcmlzZWQgdG8gcmVhZDoKKyAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KKyAgaWYgdGVzdCB4IiRhY19maWxlIiA9IHgtOyB0aGVuCisgICAgZWNobyAiLyogR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovIiA+JHRtcC9jb25maWcuaAorICBlbHNlCisgICAgZWNobyAiLyogJGFjX2ZpbGUuICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCisgIGZpCisgIGNhdCAkdG1wL2luID4+JHRtcC9jb25maWcuaAorICBybSAtZiAkdG1wL2luCisgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKyAgICBpZiBkaWZmICRhY19maWxlICR0bXAvY29uZmlnLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNQorZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CisgICAgZWxzZQorICAgICAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRhY19maWxlIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICAgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKKyAgZWxzZQorICAgIGFzX2Rpcj0iJGFjX2RpciIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKworICAgICAgcm0gLWYgJGFjX2ZpbGUKKyAgICAgIG12ICR0bXAvY29uZmlnLmggJGFjX2ZpbGUKKyAgICBmaQorICBlbHNlCisgICAgY2F0ICR0bXAvY29uZmlnLmgKKyAgICBybSAtZiAkdG1wL2NvbmZpZy5oCisgIGZpCisjIENvbXB1dGUgJGFjX2ZpbGUncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCitfYW1fc3RhbXBfY291bnQ9MQorZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCisgIGNhc2UgJF9hbV9oZWFkZXIgaW4KKyAgICAkYWNfZmlsZSB8ICRhY19maWxlOiogKQorICAgICAgYnJlYWsgOzsKKyAgICAqICkKKyAgICAgIF9hbV9zdGFtcF9jb3VudD1gZXhwciAkX2FtX3N0YW1wX2NvdW50ICsgMWAgOzsKKyAgZXNhYworZG9uZQorZWNobyAidGltZXN0YW1wIGZvciAkYWNfZmlsZSIgPmAoZGlybmFtZSAkYWNfZmlsZSkgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgkYWNfZmlsZSA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSBYJGFjX2ZpbGUgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCRhY19maWxlIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgkYWNfZmlsZSA6ICdYXCgvXCknIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgkYWNfZmlsZSB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2Avc3RhbXAtaCRfYW1fc3RhbXBfY291bnQKK2RvbmUKK19BQ0VPRgorY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCisKKyMKKyMgQ09ORklHX0NPTU1BTkRTIHNlY3Rpb24uCisjCitmb3IgYWNfZmlsZSBpbiA6ICRDT05GSUdfQ09NTUFORFM7IGRvIHRlc3QgIngkYWNfZmlsZSIgPSB4OiAmJiBjb250aW51ZQorICBhY19kZXN0PWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYAorICBhY19zb3VyY2U9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCisgIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19kZXN0IikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFjX2Rlc3QiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFjX2Rlc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFjX2Rlc3QiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFjX2Rlc3QiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYWNfZGVzdCIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKKyAgZWxzZQorICAgIGFzX2Rpcj0iJGFjX2RpciIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKworICBhY19idWlsZGRpcj0uCisKK2lmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KKyAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAorICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCitlbHNlCisgIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KK2ZpCisKK2Nhc2UgJHNyY2RpciBpbgorICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisgICAgYWNfc3JjZGlyPS4KKyAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgorICAgICAgIGFjX3RvcF9zcmNkaXI9LgorICAgIGVsc2UKKyAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCisgICAgZmkgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgorICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7CisgICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CisgICopICMgUmVsYXRpdmUgcGF0aC4KKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAorICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKK2VzYWMKKworIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCisjIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgorY2FzZSBgcHdkYCBpbgorLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7CisqKQorICBjYXNlICIkYWNfZGlyIiBpbgorICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7CisqKQorICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KKyAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfc3JjZGlyIGluCisgIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgorICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7CisgICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKKworCisgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGV4ZWN1dGluZyAkYWNfZGVzdCBjb21tYW5kcyIgPiY1CitlY2hvICIkYXNfbWU6IGV4ZWN1dGluZyAkYWNfZGVzdCBjb21tYW5kcyIgPiY2O30KKyAgY2FzZSAkYWNfZGVzdCBpbgorICAgIGRlcGZpbGVzICkgdGVzdCB4IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgZm9yIG1mIGluICRDT05GSUdfRklMRVM7IGRvCisgICMgU3RyaXAgTUYgc28gd2UgZW5kIHVwIHdpdGggdGhlIG5hbWUgb2YgdGhlIGZpbGUuCisgIG1mPWBlY2hvICIkbWYiIHwgc2VkIC1lICdzLzouKiQvLydgCisgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtlZmlsZSBvciBub3QuCisgICMgV2UgdXNlZCB0byBtYXRjaCBvbmx5IHRoZSBmaWxlcyBuYW1lZCBgTWFrZWZpbGUuaW4nLCBidXQKKyAgIyBzb21lIHBlb3BsZSByZW5hbWUgdGhlbTsgc28gaW5zdGVhZCB3ZSBsb29rIGF0IHRoZSBmaWxlIGNvbnRlbnQuCisgICMgR3JlcCdpbmcgdGhlIGZpcnN0IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCisgICMgZWFjaCBNYWtlZmlsZS5pbiBhbmQgYWRkIGEgbmV3IGxpbmUgb24gdG9wIG9mIGVhY2ggZmlsZSB0byBzYXkgc28uCisgICMgU28gbGV0J3MgZ3JlcCB3aG9sZSBmaWxlLgorICBpZiBncmVwICdeIy4qZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlJyAkbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorICAgIGRpcnBhcnQ9YChkaXJuYW1lICIkbWYiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkbWYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJG1mIiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSBYIiRtZiIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkbWYiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkbWYiIHwKKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorICBlbHNlCisgICAgY29udGludWUKKyAgZmkKKyAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKKyAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgorICBERVBESVI9YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYiYAorICB0ZXN0IC16ICIkREVQRElSIiAmJiBjb250aW51ZQorICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKKyAgdGVzdCAteiAiYW1fX2luY2x1ZGUiICYmIGNvbnRpbnVlCisgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCisgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsgZXhwYW5kIGl0CisgIFU9YHNlZCAtbiAncy9eVSA9IC8vcCcgPCAiJG1mImAKKyAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMgd2l0aAorICAjICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKKyAgIyBzaW1wbGVzdCBhcHByb2FjaCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBpbiB0aGUKKyAgIyBleHBhbnNpb24uCisgIGZvciBmaWxlIGluIGBzZWQgLW4gIgorICAgIHMvXiRhbV9faW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUiJyQvXDEvcCcgPCIkbWYiIHwgXAorICAgICAgIHNlZCAtZSAncy9cJChERVBESVIpLyciJERFUERJUiInL2cnIC1lICdzL1wkVS8nIiRVIicvZydgOyBkbworICAgICMgTWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgorICAgIHRlc3QgLWYgIiRkaXJwYXJ0LyRmaWxlIiAmJiBjb250aW51ZQorICAgIGZkaXI9YChkaXJuYW1lICIkZmlsZSIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRmaWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSBYIiRmaWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSBYIiRmaWxlIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRmaWxlIiA6ICdYXCgvXCknIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgiJGZpbGUiIHwKKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorICAgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAkZGlycGFydC8kZmRpcgorICBlbHNlCisgICAgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyCisgICAgYXNfZGlycz0KKyAgICB3aGlsZSB0ZXN0ICEgLWQgIiRhc19kaXIiOyBkbworICAgICAgYXNfZGlycz0iJGFzX2RpciAkYXNfZGlycyIKKyAgICAgIGFzX2Rpcj1gKGRpcm5hbWUgIiRhc19kaXIiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgiJGFzX2RpciIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgICAgZG9uZQorICAgIHRlc3QgISAtbiAiJGFzX2RpcnMiIHx8IG1rZGlyICRhc19kaXJzCisgIGZpIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRkaXJwYXJ0LyRmZGlyIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRkaXJwYXJ0LyRmZGlyIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisKKyAgICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgorICAgIGVjaG8gJyMgZHVtbXknID4gIiRkaXJwYXJ0LyRmaWxlIgorICBkb25lCitkb25lCisgOzsKKyAgZXNhYworZG9uZQorX0FDRU9GCisKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorCit7IChleGl0IDApOyBleGl0IDA7IH0KK19BQ0VPRgorY2htb2QgK3ggJENPTkZJR19TVEFUVVMKK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisKKworIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBhbmQgdGhlbiBjYWxscyBjb25maWcuc3RhdHVzLgorIyBjb25maWcuc3RhdHVzIGRvZXMgaXRzIG93biByZWRpcmVjdGlvbiwgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cuCisjIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQgb3BlbgorIyBieSBjb25maWd1cmUsIHNvIGNvbmZpZy5zdGF0dXMgd29uJ3QgYmUgYWJsZSB0byB3cml0ZSB0byBpdDsgaXRzCisjIG91dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVkLiAgU28gd2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9udWxsLAorIyBlZmZlY3RpdmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAorIyBhcHBlbmRlZCB0byBieSBjb25maWcuc3RhdHVzLiAgV2hlbiBjb21pbmcgYmFjayB0byBjb25maWd1cmUsIHdlCisjIG5lZWQgdG8gbWFrZSB0aGUgRkQgYXZhaWxhYmxlIGFnYWluLgoraWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCisgIGFjX2NzX3N1Y2Nlc3M9OgorICBhY19jb25maWdfc3RhdHVzX2FyZ3M9CisgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCisgICAgYWNfY29uZmlnX3N0YXR1c19hcmdzPSIkYWNfY29uZmlnX3N0YXR1c19hcmdzIC0tcXVpZXQiCisgIGV4ZWMgNT4vZGV2L251bGwKKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorICBleGVjIDU+PmNvbmZpZy5sb2cKKyAgIyBVc2UgfHwsIG5vdCAmJiwgdG8gYXZvaWQgZXhpdGluZyBmcm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwgd2hpY2gKKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCisgICRhY19jc19zdWNjZXNzIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorZmkKKwpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0MTlmMDQKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWd1cmUuYWMKQEAgLTAsMCArMSwyMjcgQEAKK2RubCBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIGNyZWF0ZSBjb25maWd1cmUuICBVc2UgYXV0b3JlY29uZi4KK0FDX1BSRVJFUSgyLjU3KQorQUNfSU5JVChbc3RyYWNlXSxbNC41LjEyXSkKK0FDX0NPTkZJR19TUkNESVIoW3N0cmFjZS5jXSkKK0FNX0NPTkZJR19IRUFERVIoW2NvbmZpZy5oXSkKK0FNX0lOSVRfQVVUT01BS0UoW2ZvcmVpZ24gY2hlY2stbmV3cyBkaXN0LWJ6aXAyXSkKK0FNX01BSU5UQUlORVJfTU9ERQorQUNfQ0FOT05JQ0FMX0hPU1QKKworQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3VwcG9ydGVkIG9wZXJhdGluZyBzeXN0ZW1dKQorY2FzZSAiJGhvc3Rfb3MiIGluCitsaW51eCopCisJb3BzeXM9bGludXgKKwlBQ19ERUZJTkUoW0xJTlVYXSwgMSwgW0RlZmluZSBmb3IgdGhlIExpbnV4IG9wZXJhdGluZyBzeXN0ZW0uXSkKKwk7Oworc3Vub3M0KikKKwlvcHN5cz1zdW5vczQKKwlBQ19ERUZJTkUoW1NVTk9TNF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBTdW5PUyA0Lnggb3BlcmF0aW5nIHN5c3RlbS5dKQorCTs7Citzb2xhcmlzMiogfCBzeXN2W1s0NV1dKiB8IGlyaXhbWzU2XV0qKQorCW9wc3lzPXN2cjQKKwlBQ19ERUZJTkUoW1NWUjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgU3lzdGVtIFYgcmVsZWFzZSA0IG9wZXJhdGluZworc3lzdGVtIG9yIGEgZGVyaXZhdGl2ZSBsaWtlIFNvbGFyaXMgMi54IG9yIElyaXggNS54Ll0pCisJY2FzZSAiJGhvc3Rfb3MiIGluCisJc3lzdjQuMnV3KikKKwkJQUNfREVGSU5FKFVOSVhXQVJFLCAyLCBbRGVmaW5lIGZvciBVbml4V2FyZSBzeXN0ZW1zLl0pCisJCTs7CisJc3lzdjUqKQorCQlBQ19ERUZJTkUoVU5JWFdBUkUsIDcsIFtEZWZpbmUgZm9yIFVuaXhXYXJlIHN5c3RlbXMuXSkKKwkJOzsKKwllc2FjCisJOzsKK2ZyZWVic2QqKQorCW9wc3lzPWZyZWVic2QKKwlBQ19ERUZJTkUoW0ZSRUVCU0RdLCAxLCBbRGVmaW5lIGZvciB0aGUgRnJlZUJTRCBvcGVyYXRpbmcgc3lzdGVtLl0pCisJOzsKKyopCisJQUNfTVNHX1JFU1VMVChbTk8hXSkKKwlBQ19NU0dfRVJST1IoW29wZXJhdGluZyBzeXN0ZW0gJGhvc3Rfb3MgaXMgbm90IHN1cHBvcnRlZCBieSBzdHJhY2VdKQorCTs7Citlc2FjCitBQ19NU0dfUkVTVUxUKCRvcHN5cykKKworQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3VwcG9ydGVkIGFyY2hpdGVjdHVyZV0pCitjYXNlICIkaG9zdF9jcHUiIGluCitpW1szNDU2XV04NnxwZW50aXVtKQorCWFyY2g9aTM4NgorCUFDX0RFRklORShbSTM4Nl0sIDEsIFtEZWZpbmUgZm9yIHRoZSBpMzg2IGFyY2hpdGVjdHVyZS5dKQorCTs7CitpYTY0KQorCWFyY2g9aWE2NAorCUFDX0RFRklORShbSUE2NF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBJQTY0IGFyY2hpdGVjdHVyZS5dKQorCTs7CittNjhrKQorCWFyY2g9bTY4aworCUFDX0RFRklORShbTTY4S10sIDEsIFtEZWZpbmUgZm9yIHRoZSBtNjhrIGFyY2hpdGVjdHVyZS5dKQorCTs7CitzcGFyYzY0KikKKwlhcmNoPXNwYXJjNjQKKwlBQ19ERUZJTkUoW1NQQVJDNjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgU1BBUkM2NCBhcmNoaXRlY3R1cmUuXSkKKwk7Oworc3BhcmMqKQorCWFyY2g9c3BhcmMKKwlBQ19ERUZJTkUoW1NQQVJDXSwgMSwgW0RlZmluZSBmb3IgdGhlIFNQQVJDIGFyY2hpdGVjdHVyZS5dKQorCTs7CittaXBzKikKKwlhcmNoPW1pcHMKKwlBQ19ERUZJTkUoW01JUFNdLCAxLCBbRGVmaW5lIGZvciB0aGUgTUlQUyBhcmNoaXRlY3R1cmUuXSkKKwk7OworYWxwaGEqKQorCWFyY2g9YWxwaGEKKwlBQ19ERUZJTkUoW0FMUEhBXSwgMSwgW0RlZmluZSBmb3IgdGhlIEFscGhhIGFyY2hpdGVjdHVyZS5dKQorCTs7Citwb3dlcnBjKikKKwlhcmNoPXBvd2VycGMKKwlBQ19ERUZJTkUoW1BPV0VSUENdLCAxLCBbRGVmaW5lIGZvciB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUuXSkKKwk7OworYXJtKikKKwlhcmNoPWFybQorCUFDX0RFRklORShbQVJNXSwgMSwgW0RlZmluZSBmb3IgdGhlIEFSTSBhcmNoaXRlY3R1cmUuXSkKKwk7OworczM5MCkKKwlhcmNoPXMzOTAKKwlBQ19ERUZJTkUoW1MzOTBdLCAxLCBbRGVmaW5lIGZvciB0aGUgUzM5MCBhcmNoaXRlY3R1cmUuXSkKKwk7OworczM5MHgpCisJYXJjaD1zMzkweAorCUFDX0RFRklORShbUzM5MFhdLCAxLCBbRGVmaW5lIGZvciB0aGUgUzM5MHggYXJjaGl0ZWN0dXJlLl0pCisJOzsKK2hwcGEqfHBhcmlzYyopCisJYXJjaD1ocHBhCisJQUNfREVGSU5FKFtIUFBBXSwgMSwgW0RlZmluZSBmb3IgdGhlIEhQUEEgYXJjaGl0ZWN0dXJlLl0pCisJOzsKK3NoKQorCWFyY2g9c2gKKwlBQ19ERUZJTkUoW1NIXSwgMSwgW0RlZmluZSBmb3IgdGhlIFNIIGFyY2hpdGVjdHVyZS5dKQorCTs7CitzaDY0KQorCWFyY2g9c2g2NAorCUFDX0RFRklORShbU0g2NF0sIDEsIFtEZWZpbmUgZm9yIHRoZSBTSDY0IGFyY2hpdGVjdHVyZS5dKQorCTs7Cit4ODY/NjQqKQorCWFyY2g9eDg2XzY0CisJQUNfREVGSU5FKFtYODZfNjRdLCAxLCBbRGVmaW5lIGZvciB0aGUgQU1EIHg4Ni02NCBhcmNoaXRlY3R1cmUuXSkKKwk7OworKikKKwlBQ19NU0dfUkVTVUxUKFtOTyFdKQorCUFDX01TR19FUlJPUihbYXJjaGl0ZWN0dXJlICRob3N0X2NwdSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHN0cmFjZV0pCisJOzsKK2VzYWMKK0FDX01TR19SRVNVTFQoJGFyY2gpCisKK0FDX1NVQlNUKG9wc3lzKQorQUNfU1VCU1QoYXJjaCkKKworQU1fQ09ORElUSU9OQUwoW0xJTlVYXSwgW3Rlc3QgeCRvcHN5cyA9IHhsaW51eF0pCitBTV9DT05ESVRJT05BTChbSTM4Nl0sIFt0ZXN0IHgkYXJjaCA9IHhpMzg2XSkKK0FNX0NPTkRJVElPTkFMKFtYODZfNjRdLCBbdGVzdCB4JGFyY2ggPSB4eDg2XzY0XSkKK0FNX0NPTkRJVElPTkFMKFtTVU5PUzRdLCBbdGVzdCB4JG9wc3lzID0geHN1bm9zNF0pCitBTV9DT05ESVRJT05BTChbU1ZSNF0sIFt0ZXN0IHgkb3BzeXMgPSB4c3ZyNF0pCitBTV9DT05ESVRJT05BTChbRlJFRUJTRF0sIFt0ZXN0IHgkb3BzeXMgPSB4ZnJlZWJzZF0pCisKK0FDX1BST0dfQ0MKK0FDX0dOVV9TT1VSQ0UKKworQUNfSU5DTFVERURJUgorCitpZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IiAmJiB0ZXN0ICJ4JGFyY2giID0gInhzcGFyYyIKK3RoZW4KKwlBQ19NU0dfQ0hFQ0tJTkcoZm9yIHZhbGlkIG1hY2hpbmUgaW5jbHVkZSBkaXJlY3RvcnkpCisJaWYgdGVzdCAtZCAiJGluY2x1ZGVkaXIvc3VuNCIKKwl0aGVuCisJCXJtIC1mIG1hY2hpbmUKKwkJbG4gLXMgJGluY2x1ZGVkaXIvc3VuNCBtYWNoaW5lCisJCUFDX01TR19SRVNVTFQoeWVzKQorCQlBQ19ERUZJTkUoU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSwgMSwgWworRGVmaW5lIGlmIHlvdSBhcmUgaGF2ZSBhIFNQQVJDIHdpdGggU1VOT1M0IGFuZCB5b3VyIHdhbnQgYSB2ZXJzaW9uCitvZiBzdHJhY2UgdGhhdCB3aWxsIHdvcmsgb24gc3VuNCwgc3VuNGMgYW5kIHN1bjRtIGtlcm5lbCBhcmNoaXRlY3R1cmVzLgorT25seSB1c2VmdWwgaWYgeW91IGhhdmUgYSBzeW1ib2xpYyBsaW5rIGZyb20gbWFjaGluZSB0byAvdXNyL2luY2x1ZGUvc3VuNAoraW4gdGhlIGNvbXBpbGF0aW9uIGRpcmVjdG9yeS5dKQorCWVsc2UKKwkJQUNfTVNHX1JFU1VMVChubykKKwlmaQorZmkKKworQUNfV0FSTkZMQUdTCitpZiB0ZXN0ICJ4JG9wc3lzIiA9ICJ4c3Vub3M0IgordGhlbgorCWlmIHRlc3QgLW4gIiRHQ0MiCisJdGhlbgorCQkjIFN1bk9TIDQueCBoZWFkZXIgZmlsZXMgZG9uJ3QgZGVjbGFyZSBpbnQgZnVuY3Rpb25zLgorCQlXQVJORkxBR1M9IiRXQVJORkxBR1MgLVduby1pbXBsaWNpdCIKKwlmaQorZmkKKworQUNfUFJPR19DUFAKK0FDX1BST0dfR0NDX1RSQURJVElPTkFMCitBQ19QUk9HX0lOU1RBTEwKK0FDX0NfQ09OU1QKK0FDX0hFQURFUl9TVERDCitBQ19IRUFERVJfRElSRU5UCitBQ19IRUFERVJfU1RBVAorQUNfQ0hFQ0tfTUVNQkVSUyhbc3RydWN0IHN0YXQuc3RfYmxrc2l6ZSwKKwkJICBzdHJ1Y3Qgc3RhdC5zdF9ibG9ja3MsCisJCSAgc3RydWN0IHN0YXQuc3RfYWNsY250LAorCQkgIHN0cnVjdCBzdGF0LnN0X2ZsYWdzLAorCQkgIHN0cnVjdCBzdGF0LnN0X2ZzdHlwZSwKKwkJICBzdHJ1Y3Qgc3RhdC5zdF9nZW4sCisJCSAgc3RydWN0IHN0YXQuc3RfbGV2ZWwsCisJCSAgc3RydWN0IHN0YXQuc3RfcmRldl0pCitBQ19TVEFUNjQKKworQUNfVFlQRV9TSUdOQUwKK0FDX1RZUEVfVUlEX1QKK0FDX1RZUEVfTU9ERV9UCitBQ19UWVBFX0dFVEdST1VQUworQUNfSEVBREVSX01BSk9SCitBQ19DSEVDS19UWVBFUyhbc2lnX2F0b21pY190LCBzaWdpbmZvX3RdLCwsIFsjaW5jbHVkZSA8c2lnbmFsLmg+XSkKK0FDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZF0sLCwKK1sjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD5dKQorQUNfQ0hFQ0tfVFlQRVMoW2xvbmcgbG9uZ10pCitBQ19MSVRUTEVfRU5ESUFOX0xPTkdfTE9ORworQUNfT0ZGX1RfSVNfTE9OR19MT05HCitBQ19STElNX1RfSVNfTE9OR19MT05HCitBQ19DSEVDS19UWVBFUyhbc3RydWN0IG9wdGhkcl0sLCwgWyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+XSkKK0FDX0NIRUNLX1RZUEVTKFtzdHJ1Y3QgdF9vcHRoZHJdLCwsIFsjaW5jbHVkZSA8c3lzL3RpdXNlci5oPl0pCisKK2lmIHRlc3QgeCRvcHN5cyAhPSB4bGludXg7IHRoZW4KK0FDX0NIRUNLX0xJQihuc2wsIG1haW4pCitmaQorCitBQ19DSEVDS19GVU5DUyhzaWdhY3Rpb24gc3RyZXJyb3Igc3Ryc2lnbmFsIHByZWFkIHN5c19zaWdsaXN0IF9zeXNfc2lnbGlzdCBnZXRkZW50cyBtY3RsIHByY3RsIHNlbmRtc2cgaW5ldF9udG9wIGlmX2luZGV4dG9uYW1lKQorQUNfQ0hFQ0tfSEVBREVSUyhbc3lzL3JlZy5oIHN5cy9maWxpby5oIHN5cy9hY2wuaCBzeXMvYXN5bmNoLmggc3lzL2Rvb3IuaCBzdHJvcHRzLmggc3lzL2NvbmYuaCBzeXMvc3RyZWFtLmggc3lzL3RpaGRyLmggc3lzL3RpdXNlci5oIHN5cy9zeXNjb25maWcuaCBpb2N0bHMuaCBzeXMvaW9jdGwuaCBzeXMvcHRyYWNlLmggdGVybWlvLmggbGludXgvcHRyYWNlLmggYXNtL3JlZy5oIHN5cy91aW8uaCBzeXMvYWlvLmggcG9sbC5oIHN5cy9wb2xsLmggc3lzL3Zmcy5oIGFzbS9zeXNtaXBzLmggbGludXgvdXRzbmFtZS5oIHN5cy9uc2NzeXMuaCBtcXVldWUuaCBzeXMvZXBvbGwuaCBsaWJhaW8uaCBpbnR0eXBlcy5oXSwgW10sIFtdKQorQUNfQ0hFQ0tfSEVBREVSUyhbbGludXgvaWNtcC5oIGxpbnV4L2luNi5oIGxpbnV4L25ldGxpbmsuaCBsaW51eC9pZl9wYWNrZXQuaF0sCisgICAgICAgICAgICAgICAgIFtdLCBbXSwgWyNpbmNsdWRlIDxsaW51eC9zb2NrZXQuaD5dKQorQUNfQ0hFQ0tfSEVBREVSUyhbYXNtL3NpZ2NvbnRleHQuaF0sIFtdLCBbXSwgWyNpbmNsdWRlIDxzaWduYWwuaD5dKQorQUNfQ0hFQ0tfSEVBREVSUyhbbmV0aW5ldC90Y3AuaCBuZXRpbmV0L3VkcC5oXSwsLCBbI2luY2x1ZGUgPG5ldGluZXQvaW4uaD5dKQorCitBQ19NUF9QUk9DRlMKK0FDX1BPTExBQkxFX1BST0NGUworCitBQ19DSEVDS19NRU1CRVJTKFtzdHJ1Y3QgbXNnaGRyLm1zZ19jb250cm9sXSwsLCBbI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD5dKQorQUNfU1RSVUNUX1BSX1NZU0NBTEwKKworQUNfQ0hFQ0tfTUVNQkVSUyhbc3RydWN0IFRfY29ubl9yZXMuUVVFVUVfcHRyLAorICAgICAgICAgICAgICAgICAgc3RydWN0IFRfY29ubl9yZXMuQUNDRVBUT1JfaWRdLCwsCitbI2luY2x1ZGUgPHN5cy9zdHJlYW0uaD4KKyNpbmNsdWRlIDxzeXMvdGloZHIuaD5dKQorCitBQ19DSEVDS19UWVBFUyhbc3RydWN0IF9fb2xkX2tlcm5lbF9zdGF0XSwsLCBbI2luY2x1ZGUgPGFzbS9zdGF0Lmg+XSkKKworQUNfQ0hFQ0tfVFlQRVMoW3N0cnVjdCBwdF9hbGxfdXNlcl9yZWdzLCBzdHJ1Y3QgaWE2NF9mcHJlZ10sLCwKKwkgICAgICAgWyNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+XSkKKworQUNfQ0hFQ0tfVFlQRVMoW3N0cnVjdCB1c2VyX2Rlc2NdLCwsIFsjaW5jbHVkZSA8YXNtL2xkdC5oPl0pCisKK0FDX0NIRUNLX01FTUJFUlMoW3N0cnVjdCBkcWJsay5kcWJfY3VyYmxvY2tzXSwsLCBbI2luY2x1ZGUgPHN5cy9xdW90YS5oPl0pCisKK0FDX0NIRUNLX0RFQ0xTKFtzeXNfZXJybGlzdF0pCitBQ19DSEVDS19ERUNMUyhbc3lzX3NpZ2xpc3QsIF9zeXNfc2lnbGlzdF0sLCwgWyNpbmNsdWRlIDxzaWduYWwuaD5dKQorCitBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0pCisKK0FDX0NPTkZJR19GSUxFUyhbTWFrZWZpbGVdKQorQUNfT1VUUFVUCmRpZmYgLS1naXQgYS9kZWZzLmggYi9kZWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjczZGZiYgotLS0gL2Rldi9udWxsCisrKyBiL2RlZnMuaApAQCAtMCwwICsxLDYxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IGRlZnMuaCx2IDEuNTkgMjAwNS8wNi8wOCAyMDo0NToyOCByb2xhbmQgRXhwICQKKyAqLworCisjaWZkZWYgSEFWRV9DT05GSUdfSAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2VuZGlmCisKKyNpZmRlZiBsaW51eAorI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisjZW5kaWYKKworI2lmZGVmIF9MQVJHRUZJTEU2NF9TT1VSQ0UKKy8qIFRoaXMgaXMgdGhlIG1hY3JvIGV2ZXJ5dGhpbmcgY2hlY2tzIGJlZm9yZSB1c2luZyBmb282NCBuYW1lcy4gICovCisjIGlmbmRlZiBfTEZTNjRfTEFSR0VGSUxFCisjICBkZWZpbmUgX0xGUzY0X0xBUkdFRklMRSAxCisjIGVuZGlmCisjZW5kaWYKKworLyogY29uZmlndXJhdGlvbiBzZWN0aW9uICovCisjaWZuZGVmIE1BWF9RVUFMUworI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoTUlQUykKKyNkZWZpbmUgTUFYX1FVQUxTCTUwMDAJLyogbWF4aW11bSBudW1iZXIgb2Ygc3lzY2FsbHMsIHNpZ25hbHMsIGV0Yy4gKi8KKyNlbHNlCisjZGVmaW5lIE1BWF9RVUFMUwkyMDQ4CS8qIG1heGltdW0gbnVtYmVyIG9mIHN5c2NhbGxzLCBzaWduYWxzLCBldGMuICovCisjZW5kaWYKKyNlbmRpZgorI2lmbmRlZiBERUZBVUxUX1NUUkxFTgorI2RlZmluZSBERUZBVUxUX1NUUkxFTgkzMgkvKiBkZWZhdWx0IG1heGltdW0gIyBvZiBieXRlcyBwcmludGVkIGluCisJCQkJICBgcHJpbnRzdHInLCBjaGFuZ2Ugd2l0aCBgLXMnIHN3aXRjaCAqLworI2VuZGlmCisjaWZuZGVmIERFRkFVTFRfQUNPTFVNTgorI2RlZmluZSBERUZBVUxUX0FDT0xVTU4JNDAJLyogZGVmYXVsdCBhbGlnbm1lbnQgY29sdW1uIGZvciByZXN1bHRzICovCisjZW5kaWYKKyNpZm5kZWYgTUFYX0FSR1MKKyNkZWZpbmUgTUFYX0FSR1MJMzIJLyogbWF4aW11bSBudW1iZXIgb2YgYXJncyB0byBhIHN5c2NhbGwgKi8KKyNlbmRpZgorI2lmbmRlZiBERUZBVUxUX1NPUlRCWQorI2RlZmluZSBERUZBVUxUX1NPUlRCWSAidGltZSIJLyogZGVmYXVsdCBzb3J0aW5nIG1ldGhvZCBmb3IgY2FsbCBwcm9maWxpbmcgKi8KKyNlbmRpZgorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpZmRlZiBTVERDX0hFQURFUlMKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNlbmRpZiAvKiBTVERDX0hFQURFUlMgKi8KKworI2lmZGVmIEhBVkVfU0lHSU5GT19UCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoTElOVVgpCisjICBpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCisjICAgICBkZWZpbmUgTElOVVhTUEFSQworIyAgZW5kaWYKKyMgIGlmIGRlZmluZWQoQUxQSEEpCisjICAgICBkZWZpbmUgTElOVVhfNjRCSVQKKyMgIGVuZGlmCisjICBpZiBkZWZpbmVkKFg4Nl82NCkKKyMgICAgIGRlZmluZSBMSU5VWF9YODZfNjQKKyMgIGVuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKQorI2RlZmluZSBVU0VfUFJPQ0ZTCisjZWxzZQorI3VuZGVmIFVTRV9QUk9DRlMKKyNlbmRpZgorCisjaWZkZWYgRlJFRUJTRAorI2lmbmRlZiBJMzg2CisjZXJyb3IgIkZyZWVCU0Qgc3VwcG9ydCBpcyBvbmx5IGZvciBpMzg2IGFyY2ggcmlnaHQgbm93LiIKKyNlbmRpZgorI2luY2x1ZGUgPG1hY2hpbmUvcHNsLmg+CisjaW5jbHVkZSA8bWFjaGluZS9yZWcuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorI2VuZGlmCisKKyNpZmRlZiBVU0VfUFJPQ0ZTCisjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2VuZGlmCisjaWZkZWYgRlJFRUJTRAorI2luY2x1ZGUgPHN5cy9waW9jdGwuaD4KKyNlbmRpZiAvKiBGUkVFQlNEICovCisjZWxzZSAvKiAhVVNFX1BST0NGUyAqLworI2lmIChkZWZpbmVkKExJTlVYU1BBUkMpIHx8IGRlZmluZWQgKExJTlVYX1g4Nl82NCkpICYmIGRlZmluZWQoX19HTElCQ19fKQorI2luY2x1ZGUgPHN5cy9wdHJhY2UuaD4KKyNlbHNlCisvKiBXb3JrIGFyb3VuZCBhd2t3YXJkIHByb3RvdHlwZSBpbiBwdHJhY2UuaC4gKi8KKyNkZWZpbmUgcHRyYWNlIHhwdHJhY2UKKyNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+CisjdW5kZWYgcHRyYWNlCisjaWZkZWYgUE9XRVJQQworI2RlZmluZSBfX0tFUk5FTF9fCisjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorI3VuZGVmIF9fS0VSTkVMX18KKyNlbmRpZgorI2lmZGVmIF9fU1REQ19fCisjaWZkZWYgTElOVVgKK2V4dGVybiBsb25nIHB0cmFjZShpbnQsIGludCwgY2hhciAqLCBsb25nKTsKKyNlbHNlIC8qICFMSU5VWCAqLworZXh0ZXJuIGludCBwdHJhY2UoaW50LCBpbnQsIGNoYXIgKiwgaW50LCAuLi4pOworI2VuZGlmIC8qICFMSU5VWCAqLworI2Vsc2UgLyogIV9fU1REQ19fICovCitleHRlcm4gaW50IHB0cmFjZSgpOworI2VuZGlmIC8qICFfX1NURENfXyAqLworI2VuZGlmIC8qICFMSU5VWFNQQVJDICovCisjZW5kaWYgLyogIVNWUjQgKi8KKworI2lmZGVmIExJTlVYCisjaWYgIWRlZmluZWQoX19HTElCQ19fKQorI2RlZmluZQlQVFJBQ0VfUEVFS1VTRVIJUFRSQUNFX1BFRUtVU1IKKyNkZWZpbmUJUFRSQUNFX1BPS0VVU0VSCVBUUkFDRV9QT0tFVVNSCisjZW5kaWYKKyNpZmRlZiBBTFBIQQorIyAgZGVmaW5lIFJFR19SMCAwCisjICBkZWZpbmUgUkVHX0EwIDE2CisjICBkZWZpbmUgUkVHX0EzIDE5CisjICBkZWZpbmUgUkVHX0ZQIDMwCisjICBkZWZpbmUgUkVHX1BDIDY0CisjZW5kaWYgLyogQUxQSEEgKi8KKyNpZmRlZiBNSVBTCisjICBkZWZpbmUgUkVHX1YwIDIKKyMgIGRlZmluZSBSRUdfQTAgNAorIyAgZGVmaW5lIFJFR19BMyA3CisjICBkZWZpbmUgUkVHX1NQIDI5CisjICBkZWZpbmUgUkVHX0VQQyA2NAorI2VuZGlmIC8qIE1JUFMgKi8KKyNpZmRlZiBIUFBBCisjICBkZWZpbmUgUFRfR1IyMCAoMjAqNCkKKyMgIGRlZmluZSBQVF9HUjI2ICgyNio0KQorIyAgZGVmaW5lIFBUX0dSMjggKDI4KjQpCisjICBkZWZpbmUgUFRfSUFPUTAgKDEwNio0KQorIyAgZGVmaW5lIFBUX0lBT1ExICgxMDcqNCkKKyNlbmRpZiAvKiBIUFBBICovCisjaWZkZWYgU0g2NAorICAgLyogU0g2NCBMaW51eCAtIHRoaXMgY29kZSBhc3N1bWVzIHRoZSBmb2xsb3dpbmcga2VybmVsIEFQSSBmb3Igc3lzdGVtIGNhbGxzOgorICAgICAgICAgIFBDICAgICAgICAgICBPZmZzZXQgMAorICAgICAgICAgIFN5c3RlbSBDYWxsICBPZmZzZXQgMTYgKGFjdHVhbGx5LCAoc3lzY2FsbCBuby4pIHwgKDB4MW4gPDwgMTYpLAorICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBuID0gbm8uIG9mIHBhcmFtZXRlcnMuCisgICAgICAgICAgT3RoZXIgcmVncyAgIE9mZnNldCAyNCsKKworICAgICAgICAgIE9uIGVudHJ5OiAgICBSMi03ID0gcGFyYW1ldGVycyAxLTYgKGFzIG1hbnkgYXMgbmVjZXNzYXJ5KQorICAgICAgICAgIE9uIHJldHVybjogICBSOSAgID0gcmVzdWx0LiAqLworCisgICAvKiBPZmZzZXQgZm9yIHBlZWtzIG9mIHJlZ2lzdGVycyAqLworIyAgZGVmaW5lIFJFR19PRkZTRVQgICAgICAgICAoMjQpCisjICBkZWZpbmUgUkVHX0dFTkVSQUwoeCkgICAgICg4Kih4KStSRUdfT0ZGU0VUKQorIyAgZGVmaW5lIFJFR19QQyAgICAgICAgICAgICAoMCo4KQorIyAgZGVmaW5lIFJFR19TWVNDQUxMICAgICAgICAoMio4KQorI2VuZGlmIC8qIFNINjQgKi8KKyNlbmRpZiAvKiBMSU5VWCAqLworCisjZGVmaW5lIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTIDEKKyNkZWZpbmUgREVGQVVMVF9QRVJTT05BTElUWSAwCisKKyNpZmRlZiBMSU5VWFNQQVJDCisjaW5jbHVkZSA8bGludXgvYS5vdXQuaD4KKyNpbmNsdWRlIDxhc20vcHNyLmg+CisjZGVmaW5lIFBFUlNPTkFMSVRZMF9XT1JEU0laRSA0CisjZGVmaW5lIFBFUlNPTkFMSVRZMV9XT1JEU0laRSA0CisjdW5kZWYgIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTCisjaWYgZGVmaW5lZChTUEFSQzY0KQorI2RlZmluZSBTVVBQT1JURURfUEVSU09OQUxJVElFUyAzCisjZGVmaW5lIFBFUlNPTkFMSVRZMl9XT1JEU0laRSA4CisjZWxzZQorI2RlZmluZSBTVVBQT1JURURfUEVSU09OQUxJVElFUyAyCisjZW5kaWYgLyogU1BBUkM2NCAqLworI2VuZGlmIC8qIExJTlVYU1BBUkMgKi8KKworI2lmZGVmIFg4Nl82NAorI3VuZGVmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTCisjZGVmaW5lIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTIDIKKyNkZWZpbmUgUEVSU09OQUxJVFkwX1dPUkRTSVpFIDgKKyNkZWZpbmUgUEVSU09OQUxJVFkxX1dPUkRTSVpFIDQKKyNlbmRpZgorCisjaWZkZWYgU1ZSNAorI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCitleHRlcm4gaW50IG1wX2lvY3RsIChpbnQgZiwgaW50IGMsIHZvaWQgKmEsIGludCBzKTsKKyNkZWZpbmUgSU9DVEwoZixjLGEpCW1wX2lvY3RsIChmLCBjLCBhLCBzaXplb2YgKmEpCisjZGVmaW5lIElPQ1RMX1NUQVRVUyh0KSBcCisJIHByZWFkICh0LT5wZmRfc3RhdCwgJnQtPnN0YXR1cywgc2l6ZW9mIHQtPnN0YXR1cywgMCkKKyNkZWZpbmUgSU9DVExfV1NUT1AodCkJCQkJCQlcCisJKElPQ1RMICh0LT5wZmQsIFBDV1NUT1AsIChjaGFyICopTlVMTCkgPCAwID8gLTEgOgkJXAorCSBJT0NUTF9TVEFUVVMgKHQpKQorI2RlZmluZSBQUl9XSFkJCXByX2x3cC5wcl93aHkKKyNkZWZpbmUgUFJfV0hBVAkJcHJfbHdwLnByX3doYXQKKyNkZWZpbmUgUFJfUkVHCQlwcl9sd3AucHJfY29udGV4dC51Y19tY29udGV4dC5ncmVncworI2RlZmluZSBQUl9GTEFHUwlwcl9sd3AucHJfZmxhZ3MKKyNkZWZpbmUgUFJfU1lTQ0FMTAlwcl9sd3AucHJfc3lzY2FsbAorI2RlZmluZSBQUl9JTkZPCQlwcl9sd3AucHJfaW5mbworI2RlZmluZSBQSU9DU1RJUAlQQ1NUT1AKKyNkZWZpbmUgUElPQ1NFVAkJUENTRVQKKyNkZWZpbmUgUElPQ1JFU0VUCVBDUkVTRVQKKyNkZWZpbmUgUElPQ1NUUkFDRQlQQ1NUUkFDRQorI2RlZmluZSBQSU9DU0ZBVUxUCVBDU0ZBVUxUCisjZGVmaW5lIFBJT0NXU1RPUAlQQ1dTVE9QCisjZGVmaW5lIFBJT0NTVE9QCVBDU1RPUAorI2RlZmluZSBQSU9DU0VOVFJZCVBDU0VOVFJZCisjZGVmaW5lIFBJT0NTRVhJVAlQQ1NFWElUCisjZGVmaW5lIFBJT0NSVU4JCVBDUlVOCisjZWxzZQorI2RlZmluZSBJT0NUTAkJaW9jdGwKKyNkZWZpbmUgSU9DVExfU1RBVFVTKHQpCWlvY3RsICh0LT5wZmQsIFBJT0NTVEFUVVMsICZ0LT5zdGF0dXMpCisjZGVmaW5lIElPQ1RMX1dTVE9QKHQpCWlvY3RsICh0LT5wZmQsIFBJT0NXU1RPUCwgJnQtPnN0YXR1cykKKyNkZWZpbmUgUFJfV0hZCQlwcl93aHkKKyNkZWZpbmUgUFJfV0hBVAkJcHJfd2hhdAorI2RlZmluZSBQUl9SRUcJCXByX3JlZworI2RlZmluZSBQUl9GTEFHUwlwcl9mbGFncworI2RlZmluZSBQUl9TWVNDQUxMCXByX3N5c2NhbGwKKyNkZWZpbmUgUFJfSU5GTwkJcHJfaW5mbworI2VuZGlmCisjZW5kaWYKKyNpZmRlZiBGUkVFQlNECisjZGVmaW5lIElPQ1RMCQlpb2N0bAorI2RlZmluZSBJT0NUTF9TVEFUVVModCkJaW9jdGwgKHQtPnBmZCwgUElPQ1NUQVRVUywgJnQtPnN0YXR1cykKKyNkZWZpbmUgSU9DVExfV1NUT1AodCkJaW9jdGwgKHQtPnBmZCwgUElPQ1dBSVQsICZ0LT5zdGF0dXMpCisjZGVmaW5lIFBJT0NSVU4gICAgICAgICBQSU9DQ09OVAorI2RlZmluZSBQSU9DV1NUT1AgICAgICAgUElPQ1dBSVQKKyNkZWZpbmUgUFJfV0hZCQl3aHkKKyNkZWZpbmUgUFJfV0hBVAkJdmFsCisjZGVmaW5lIFBSX0ZMQUdTCXN0YXRlCisvKiBmcm9tIC91c3Ivc3JjL3N5cy9taXNjZnMvcHJvY2ZzL3Byb2Nmc192bm9wcy5jLAorICAgc3RhdHVzLnN0YXRlID0gMCBmb3IgcnVubmluZywgMSBmb3Igc3RvcHBlZCAqLworI2RlZmluZSBQUl9BU0xFRVAJMQorI2RlZmluZSBQUl9TWVNFTlRSWSAgICAgU19TQ0UKKyNkZWZpbmUgUFJfU1lTRVhJVCAgICAgIFNfU0NYCisjZGVmaW5lIFBSX1NJR05BTExFRCAgICBTX1NJRworI2RlZmluZSBQUl9GQVVMVEVEICAgICAgU19DT1JFCisjZW5kaWYKKworLyogVHJhY2UgQ29udHJvbCBCbG9jayAqLworc3RydWN0IHRjYiB7CisJc2hvcnQgZmxhZ3M7CQkvKiBTZWUgYmVsb3cgZm9yIFRDQl8gdmFsdWVzICovCisJaW50IHBpZDsJCS8qIFByb2Nlc3MgSWQgb2YgdGhpcyBlbnRyeSAqLworCWxvbmcgc2NubzsJCS8qIFN5c3RlbSBjYWxsIG51bWJlciAqLworCWludCB1X25hcmdzOwkJLyogU3lzdGVtIGNhbGwgYXJndW1lbnRzICovCisJbG9uZyB1X2FyZ1tNQVhfQVJHU107CS8qIFN5c3RlbSBjYWxsIGFyZ3VtZW50cyAqLworCWludCB1X2Vycm9yOwkJLyogRXJyb3IgY29kZSAqLworCWxvbmcgdV9ydmFsOwkJLyogKGZpcnN0KSByZXR1cm4gdmFsdWUgKi8KKyNpZmRlZiBIQVZFX0xPTkdfTE9ORworCWxvbmcgbG9uZyB1X2xydmFsOwkvKiBsb25nIGxvbmcgcmV0dXJuIHZhbHVlICovCisjZW5kaWYKKwlGSUxFICpvdXRmOwkJLyogT3V0cHV0IGZpbGUgZm9yIHRoaXMgcHJvY2VzcyAqLworCWNvbnN0IGNoYXIgKmF1eHN0cjsJLyogQXV4aWxpYXJ5IGluZm8gZnJvbSBzeXNjYWxsIChzZWUgUlZBTF9TVFIpICovCisJc3RydWN0IHRpbWV2YWwgc3RpbWU7CS8qIFN5c3RlbSB0aW1lIHVzYWdlIGFzIG9mIGxhc3QgcHJvY2VzcyB3YWl0ICovCisJc3RydWN0IHRpbWV2YWwgZHRpbWU7CS8qIERlbHRhIGZvciBzeXN0ZW0gdGltZSB1c2FnZSAqLworCXN0cnVjdCB0aW1ldmFsIGV0aW1lOwkvKiBTeXNjYWxsIGVudHJ5IHRpbWUgKi8KKwkJCQkvKiBTdXBwb3J0IGZvciB0cmFjaW5nIGZvcmtlZCBwcm9jZXNzZXMgKi8KKwlzdHJ1Y3QgdGNiICpwYXJlbnQ7CS8qIFBhcmVudCBvZiB0aGlzIHByb2Nlc3MgKi8KKwlpbnQgbmNoaWxkcmVuOwkJLyogIyBvZiB0cmFjZWQgY2hpbGRyZW4gKi8KKwlpbnQgd2FpdHBpZDsJCS8qIHBpZChzKSB0aGlzIHByb2Nlc3MgaXMgd2FpdGluZyBmb3IgKi8KKwlpbnQgbnpvbWJpZXM7CQkvKiAjIG9mIGZvcm1lcmx5IHRyYWNlZCBjaGlsZHJlbiBub3cgZGVhZCAqLworI2lmZGVmIExJTlVYCisJaW50IG5jbG9uZV90aHJlYWRzOwkvKiAjIG9mIG5jaGlsZHJlbiB3aXRoIENMT05FX1RIUkVBRCAqLworCWludCBuY2xvbmVfZGV0YWNoZWQ7CS8qICMgb2YgbmNoaWxkcmVuIHdpdGggQ0xPTkVfREVUQUNIRUQgKi8KKwlpbnQgbmNsb25lX3dhaXRpbmc7CS8qIGNsb25lIHRocmVhZHMgaW4gd2FpdDQgKFRDQl9TVVNQRU5ERUQpICovCisjZW5kaWYKKwkJCQkvKiAoMXN0IGFyZyBvZiB3YWl0NCgpKSAqLworCWxvbmcgYmFkZHI7CQkvKiBgQnJlYWtwb2ludCcgYWRkcmVzcyAqLworCWxvbmcgaW5zdFsyXTsJCS8qIEluc3RydWN0aW9ucyBvbiBhYm92ZSAqLworCWludCBwZmQ7CQkvKiBwcm9jIGZpbGUgZGVzY3JpcHRvciAqLworI2lmZGVmIFNWUjQKKyNpZmRlZiBIQVZFX01QX1BST0NGUworCWludCBwZmRfc3RhdDsKKwlpbnQgcGZkX2FzOworCXBzdGF0dXNfdCBzdGF0dXM7CisjZWxzZQorCXByc3RhdHVzX3Qgc3RhdHVzOwkvKiBwcm9jZnMgc3RhdHVzIHN0cnVjdHVyZSAqLworI2VuZGlmCisjZW5kaWYKKyNpZmRlZiBGUkVFQlNECisJc3RydWN0IHByb2Nmc19zdGF0dXMgc3RhdHVzOworCWludCBwZmRfcmVnOworCWludCBwZmRfc3RhdHVzOworI2VuZGlmCit9OworCisvKiBUQ0IgZmxhZ3MgKi8KKyNkZWZpbmUgVENCX1NUQVJUVVAJMDAwMDEJLyogV2UgaGF2ZSBqdXN0IGJlZ3VuIHB0cmFjaW5nIHRoaXMgcHJvY2VzcyAqLworI2RlZmluZSBUQ0JfSU5VU0UJMDAwMDIJLyogVGhpcyB0YWJsZSBlbnRyeSBpcyBpbiB1c2UgKi8KKyNkZWZpbmUgVENCX0lOU1lTQ0FMTAkwMDAwNAkvKiBBIHN5c3RlbSBjYWxsIGlzIGluIHByb2dyZXNzICovCisjZGVmaW5lIFRDQl9BVFRBQ0hFRAkwMDAxMAkvKiBQcm9jZXNzIGlzIG5vdCBvdXIgb3duIGNoaWxkICovCisjZGVmaW5lIFRDQl9FWElUSU5HCTAwMDIwCS8qIEFzIGZhciBhcyB3ZSBrbm93LCB0aGlzIHByb2Nlc3MgaXMgZXhpdGluZyAqLworI2RlZmluZSBUQ0JfU1VTUEVOREVECTAwMDQwCS8qIFByb2Nlc3MgaGFzIGRvbmUgYSB3YWl0KDQpLCB0aGF0IGNhbgorCQkJCSAgIG5vdCBiZSBhbGxvd2VkIHRvIGNvbXBsZXRlIGp1c3Qgbm93ICovCisjZGVmaW5lIFRDQl9CUFRTRVQJMDAxMDAJLyogIkJyZWFrcG9pbnQiIHNldCBhZnRlciBmb3JrKDIpICovCisjZGVmaW5lIFRDQl9TSUdUUkFQUEVECTAwMjAwCS8qIFByb2Nlc3Mgd2FudGVkIHRvIGJsb2NrIFNJR1RSQVAgKi8KKyNkZWZpbmUgVENCX0ZPTExPV0ZPUksJMDA0MDAJLyogUHJvY2VzcyBzaG91bGQgaGF2ZSBmb3JrcyBmb2xsb3dlZCAqLworI2RlZmluZSBUQ0JfUkVQUklOVAkwMTAwMAkvKiBXZSBzaG91bGQgcmVwcmludCB0aGlzIHN5c2NhbGwgb24gZXhpdCAqLworI2lmZGVmIExJTlVYCisjIGlmIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkgfHwgZGVmaW5lZChQT1dFUlBDKSB8fCBkZWZpbmVkKElBNjQpIHx8IGRlZmluZWQoSFBQQSkgfHwgZGVmaW5lZChTSCkgfHwgZGVmaW5lZChTSDY0KSB8fCBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpIHx8IGRlZmluZWQoQVJNKQorIyAgZGVmaW5lIFRDQl9XQUlURVhFQ1ZFIDAyMDAwCS8qIGlnbm9yZSBTSUdUUkFQIGFmdGVyIGV4Y2V2ZSAqLworIyBlbmRpZgorIyBkZWZpbmUgVENCX0NMT05FX0RFVEFDSEVEIDA0MDAwIC8qIENMT05FX0RFVEFDSEVEIHNldCBpbiBjcmVhdGluZyBzeXNjYWxsICovCisjIGRlZmluZSBUQ0JfQ0xPTkVfVEhSRUFEICAwMTAwMDAgLyogQ0xPTkVfVEhSRUFEIHNldCBpbiBjcmVhdGluZyBzeXNjYWxsICovCisjIGRlZmluZSBUQ0JfR1JPVVBfRVhJVElORyAwMjAwMDAgLyogVENCX0VYSVRJTkcgd2FzIGV4aXRfZ3JvdXAsIG5vdCBfZXhpdCAqLworIyBpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorIyBpZm5kZWYgX19OUl9leGl0X2dyb3VwCisjIC8qIEhhY2s6IE1vc3QgaGVhZGVycyBhcm91bmQgYXJlIHRvbyBvbGQgdG8gaGF2ZSBfX05SX2V4aXRfZ3JvdXAuICAqLworIyAgaWZkZWYgQUxQSEEKKyMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDQwNQorIyAgZWxpZiBkZWZpbmVkIEkzODYKKyMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDI1MgorIyAgZWxpZiBkZWZpbmVkIFg4Nl82NAorIyAgIGRlZmluZSBfX05SX2V4aXRfZ3JvdXAgMjMxCisjICBlbGlmIGRlZmluZWQgSUE2NAorIyAgIGRlZmluZSBfX05SX2V4aXRfZ3JvdXAgMTIzNgorIyAgZWxpZiBkZWZpbmVkIFBPV0VSUEMKKyMgICBkZWZpbmUgX19OUl9leGl0X2dyb3VwIDIzNAorIyAgZWxpZiBkZWZpbmVkIFMzOTAgfHwgZGVmaW5lZCBTMzkwWAorIyAgIGRlZmluZSBfX05SX2V4aXRfZ3JvdXAgMjQ4CisjICBlbGlmIGRlZmluZWQgU1BBUkMgfHwgZGVmaW5lZCBTUEFSQzY0CisjICAgZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAxODgKKyMgIGVuZGlmIC8qIEFMUEhBIGV0IGFsICovCisjIGVuZGlmCS8qICFfX05SX2V4aXRfZ3JvdXAgKi8KKyNlbmRpZiAvKiBMSU5VWCAqLworCisvKiBxdWFsaWZpZXIgZmxhZ3MgKi8KKyNkZWZpbmUgUVVBTF9UUkFDRQkwMDAxCS8qIHRoaXMgc3lzdGVtIGNhbGwgc2hvdWxkIGJlIHRyYWNlZCAqLworI2RlZmluZSBRVUFMX0FCQlJFVgkwMDAyCS8qIGFiYnJldmlhdGUgdGhlIHN0cnVjdHVyZXMgb2YgdGhpcyBzeXNjYWxsICovCisjZGVmaW5lIFFVQUxfVkVSQk9TRQkwMDA0CS8qIGRlY29kZSB0aGUgc3RydWN0dXJlcyBvZiB0aGlzIHN5c2NhbGwgKi8KKyNkZWZpbmUgUVVBTF9SQVcJMDAxMAkvKiBwcmludCBhbGwgYXJncyBpbiBoZXggZm9yIHRoaXMgc3lzY2FsbCAqLworI2RlZmluZSBRVUFMX1NJR05BTAkwMDIwCS8qIHJlcG9ydCBldmVudHMgd2l0aCB0aGlzIHNpZ25hbCAqLworI2RlZmluZSBRVUFMX0ZBVUxUCTAwNDAJLyogcmVwb3J0IGV2ZW50cyB3aXRoIHRoaXMgZmF1bHQgKi8KKyNkZWZpbmUgUVVBTF9SRUFECTAxMDAJLyogZHVtcCBkYXRhIHJlYWQgb24gdGhpcyBmaWxlIGRlc2NyaXB0b3IgKi8KKyNkZWZpbmUgUVVBTF9XUklURQkwMjAwCS8qIGR1bXAgZGF0YSB3cml0dGVuIHRvIHRoaXMgZmlsZSBkZXNjcmlwdG9yICovCisKKyNkZWZpbmUgZW50ZXJpbmcodGNwKQkoISgodGNwKS0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkKKyNkZWZpbmUgZXhpdGluZyh0Y3ApCSgodGNwKS0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKQorI2RlZmluZSBzeXNlcnJvcih0Y3ApCSgodGNwKS0+dV9lcnJvciAhPSAwKQorI2RlZmluZSB2ZXJib3NlKHRjcCkJKHF1YWxfZmxhZ3NbKHRjcCktPnNjbm9dICYgUVVBTF9WRVJCT1NFKQorI2RlZmluZSBhYmJyZXYodGNwKQkocXVhbF9mbGFnc1sodGNwKS0+c2Nub10gJiBRVUFMX0FCQlJFVikKKworc3RydWN0IHhsYXQgeworCWludCB2YWw7CisJY2hhciAqc3RyOworfTsKKworLyogRm9ybWF0IG9mIHN5c2NhbGwgcmV0dXJuIHZhbHVlcyAqLworI2RlZmluZSBSVkFMX0RFQ0lNQUwJMDAwCS8qIGRlY2ltYWwgZm9ybWF0ICovCisjZGVmaW5lIFJWQUxfSEVYCTAwMQkvKiBoZXggZm9ybWF0ICovCisjZGVmaW5lIFJWQUxfT0NUQUwJMDAyCS8qIG9jdGFsIGZvcm1hdCAqLworI2RlZmluZSBSVkFMX1VERUNJTUFMCTAwMwkvKiB1bnNpZ25lZCBkZWNpbWFsIGZvcm1hdCAqLworI2RlZmluZSBSVkFMX0xERUNJTUFMCTAwNAkvKiBsb25nIGRlY2ltYWwgZm9ybWF0ICovCisjZGVmaW5lIFJWQUxfTEhFWAkwMDUJLyogbG9uZyBoZXggZm9ybWF0ICovCisjZGVmaW5lIFJWQUxfTE9DVEFMCTAwNgkvKiBsb25nIG9jdGFsIGZvcm1hdCAqLworI2RlZmluZSBSVkFMX0xVREVDSU1BTAkwMDcJLyogbG9uZyB1bnNpZ25lZCBkZWNpbWFsIGZvcm1hdCAqLworI2RlZmluZSBSVkFMX01BU0sJMDA3CS8qIG1hc2sgZm9yIHRoZXNlIHZhbHVlcyAqLworCisjZGVmaW5lIFJWQUxfU1RSCTAxMAkvKiBQcmludCBgYXV4c3RyJyBmaWVsZCBhZnRlciByZXR1cm4gdmFsICovCisjZGVmaW5lIFJWQUxfTk9ORQkwMjAJLyogUHJpbnQgbm90aGluZyAqLworCisjaWZuZGVmIG9mZnNldG9mCisjZGVmaW5lIG9mZnNldG9mKHR5cGUsIG1lbWJlcikJKCgoY2hhciAqKSAmKCgodHlwZSAqKSBOVUxMKS0+bWVtYmVyKSkgLSBcCisJCQkJICgoY2hhciAqKSAodHlwZSAqKSBOVUxMKSkKKyNlbmRpZiAvKiAhb2Zmc2V0b2YgKi8KKworLyogZ2V0IG9mZnNldCBvZiBtZW1iZXIgd2l0aGluIGEgdXNlciBzdHJ1Y3QgKi8KKyNkZWZpbmUgdW9mZihtZW1iZXIpCW9mZnNldG9mKHN0cnVjdCB1c2VyLCBtZW1iZXIpCisKKyNkZWZpbmUgVFJBQ0VfRklMRQkwMDEJLyogVHJhY2UgZmlsZS1yZWxhdGVkIHN5c2NhbGxzLiAqLworI2RlZmluZSBUUkFDRV9JUEMJMDAyCS8qIFRyYWNlIElQQy1yZWxhdGVkIHN5c2NhbGxzLiAqLworI2RlZmluZSBUUkFDRV9ORVRXT1JLCTAwNAkvKiBUcmFjZSBuZXR3b3JrLXJlbGF0ZWQgc3lzY2FsbHMuICovCisjZGVmaW5lIFRSQUNFX1BST0NFU1MJMDEwCS8qIFRyYWNlIHByb2Nlc3MtcmVsYXRlZCBzeXNjYWxscy4gKi8KKyNkZWZpbmUgVFJBQ0VfU0lHTkFMCTAyMAkvKiBUcmFjZSBzaWduYWwtcmVsYXRlZCBzeXNjYWxscy4gKi8KKworZXh0ZXJuIHN0cnVjdCB0Y2IgKip0Y2J0YWI7CitleHRlcm4gaW50ICpxdWFsX2ZsYWdzOworZXh0ZXJuIGludCBkZWJ1ZywgZm9sbG93Zm9yaywgZm9sbG93dmZvcms7CitleHRlcm4gaW50IHJmbGFnLCB0ZmxhZywgZHRpbWUsIGNmbGFnLCB4ZmxhZywgcWZsYWc7CitleHRlcm4gaW50IGFjb2x1bW47CitleHRlcm4gY2hhciAqb3V0Zm5hbWU7CitleHRlcm4gdW5zaWduZWQgaW50IG5wcm9jcywgdGNidGFic2l6ZTsKK2V4dGVybiBpbnQgbWF4X3N0cmxlbjsKK2V4dGVybiBzdHJ1Y3QgdGNiICp0Y3BfbGFzdDsKKworI2lmZGVmIF9fU1REQ19fCisjZGVmaW5lIFAoYXJncykgYXJncworI2Vsc2UKKyNkZWZpbmUgUChhcmdzKSAoKQorI2VuZGlmCisKK2VudW0gYml0bmVzc190IHsgQklUTkVTU19DVVJSRU5UID0gMCwgQklUTkVTU18zMiB9OworCitleHRlcm4gaW50IHNldF9wZXJzb25hbGl0eSBQKChpbnQgcGVyc29uYWxpdHkpKTsKK2V4dGVybiBjaGFyICp4bG9va3VwIFAoKGNvbnN0IHN0cnVjdCB4bGF0ICosIGludCkpOworZXh0ZXJuIHN0cnVjdCB0Y2IgKmFsbG9jdGNiIFAoKGludCkpOworZXh0ZXJuIHN0cnVjdCB0Y2IgKnBpZDJ0Y2IgUCgoaW50KSk7CitleHRlcm4gdm9pZCBkcm9wdGNiIFAoKHN0cnVjdCB0Y2IgKikpOworZXh0ZXJuIGludCBleHBhbmRfdGNidGFiIFAoKHZvaWQpKTsKKworZXh0ZXJuIHZvaWQgc2V0X3NvcnRieSBQKChjaGFyICopKTsKK2V4dGVybiB2b2lkIHNldF9vdmVyaGVhZCBQKChpbnQpKTsKK2V4dGVybiB2b2lkIHF1YWxpZnkgUCgoY2hhciAqKSk7CitleHRlcm4gdm9pZCBuZXdvdXRmIFAoKHN0cnVjdCB0Y2IgKikpOworZXh0ZXJuIGludCBnZXRfc2NubyBQKChzdHJ1Y3QgdGNiICopKTsKK2V4dGVybiBsb25nIGtub3duX3Njbm8gUCgoc3RydWN0IHRjYiAqKSk7CitleHRlcm4gaW50IHRyYWNlX3N5c2NhbGwgUCgoc3RydWN0IHRjYiAqKSk7CitleHRlcm4gdm9pZCBwcmludHh2YWwgUCgoY29uc3Qgc3RydWN0IHhsYXQgKiwgaW50LCBjb25zdCBjaGFyICopKTsKK2V4dGVybiBpbnQgcHJpbnRhcmdzIFAoKHN0cnVjdCB0Y2IgKikpOworZXh0ZXJuIGludCBhZGRmbGFncyBQKChjb25zdCBzdHJ1Y3QgeGxhdCAqLCBpbnQpKTsKK2V4dGVybiBpbnQgcHJpbnRmbGFncyBQKChjb25zdCBzdHJ1Y3QgeGxhdCAqLCBpbnQsIGNvbnN0IGNoYXIgKikpOworZXh0ZXJuIGludCB1bW92ZW4gUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQsIGNoYXIgKikpOworZXh0ZXJuIGludCB1bW92ZXN0ciBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCwgY2hhciAqKSk7CitleHRlcm4gaW50IHVwZWVrIFAoKGludCwgbG9uZywgbG9uZyAqKSk7CitleHRlcm4gdm9pZCBkdW1waW92IFAoKHN0cnVjdCB0Y2IgKiwgaW50LCBsb25nKSk7CitleHRlcm4gdm9pZCBkdW1wc3RyIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgaW50KSk7CitleHRlcm4gdm9pZCBwcmludHN0ciBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOworZXh0ZXJuIHZvaWQgcHJpbnRudW0gUCgoc3RydWN0IHRjYiAqLCBsb25nLCBjaGFyICopKTsKK2V4dGVybiB2b2lkIHByaW50bnVtX2ludCBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGNoYXIgKikpOworZXh0ZXJuIHZvaWQgcHJpbnRwYXRoIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZykpOworZXh0ZXJuIHZvaWQgcHJpbnRwYXRobiBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOworZXh0ZXJuIHZvaWQgcHJpbnR0dl9iaXRuZXNzIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgZW51bSBiaXRuZXNzX3QpKTsKK2V4dGVybiB2b2lkIHNwcmludHR2IFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgZW51bSBiaXRuZXNzX3QsIGNoYXIgKikpOworI2lmZGVmIEhBVkVfU0lHSU5GT19UCitleHRlcm4gdm9pZCBwcmludHNpZ2luZm8gUCgoc2lnaW5mb190ICosIGludCkpOworI2VuZGlmCitleHRlcm4gdm9pZCBwcmludHNvY2sgUCgoc3RydWN0IHRjYiAqLCBsb25nLCBpbnQpKTsKK2V4dGVybiB2b2lkIHByaW50X3NvY2tfb3B0bWdtdCBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOworZXh0ZXJuIHZvaWQgcHJpbnRydXNhZ2UgUCgoc3RydWN0IHRjYiAqLCBsb25nKSk7CitleHRlcm4gdm9pZCBwcmludHVpZCBQKChjb25zdCBjaGFyICosIHVuc2lnbmVkIGxvbmcpKTsKK2V4dGVybiBpbnQgY2xlYXJicHQgUCgoc3RydWN0IHRjYiAqKSk7CitleHRlcm4gaW50IHNldGJwdCBQKChzdHJ1Y3QgdGNiICopKTsKK2V4dGVybiBpbnQgc2lnaXNoYW5kbGVkIFAoKHN0cnVjdCB0Y2IgKiwgaW50KSk7CitleHRlcm4gdm9pZCBwcmludGNhbGwgUCgoc3RydWN0IHRjYiAqKSk7CitleHRlcm4gY29uc3QgY2hhciAqc2lnbmFtZSBQKChpbnQpKTsKK2V4dGVybiB2b2lkIHByaW50X3NpZ3NldCBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGludCkpOworZXh0ZXJuIHZvaWQgcHJpbnRzaWduYWwgUCgoaW50KSk7CitleHRlcm4gdm9pZCBwcmludGxlYWRlciBQKChzdHJ1Y3QgdGNiICopKTsKK2V4dGVybiB2b2lkIHByaW50dHJhaWxlciBQKChzdHJ1Y3QgdGNiICopKTsKK2V4dGVybiB2b2lkIHRhYnRvIFAoKGludCkpOworZXh0ZXJuIHZvaWQgY2FsbF9zdW1tYXJ5IFAoKEZJTEUgKikpOworZXh0ZXJuIHZvaWQgdHByaW50X2lvdiBQKChzdHJ1Y3QgdGNiICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpKTsKK2V4dGVybiB2b2lkIHRwcmludF9vcGVuX21vZGVzIFAoKHN0cnVjdCB0Y2IgKiwgbW9kZV90KSk7CisKKyNpZmRlZiBMSU5VWAorZXh0ZXJuIGludCBpbnRlcm5hbF9jbG9uZSBQKChzdHJ1Y3QgdGNiICopKTsKKyNlbmRpZgorZXh0ZXJuIGludCBpbnRlcm5hbF9mb3JrIFAoKHN0cnVjdCB0Y2IgKikpOworZXh0ZXJuIGludCBpbnRlcm5hbF9leGVjIFAoKHN0cnVjdCB0Y2IgKikpOworZXh0ZXJuIGludCBpbnRlcm5hbF93YWl0IFAoKHN0cnVjdCB0Y2IgKiwgaW50KSk7CitleHRlcm4gaW50IGludGVybmFsX2V4aXQgUCgoc3RydWN0IHRjYiAqKSk7CisKK2V4dGVybiBjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvY3RsX2xvb2t1cCBQKChsb25nKSk7CitleHRlcm4gY29uc3Qgc3RydWN0IGlvY3RsZW50ICppb2N0bF9uZXh0X21hdGNoIFAoKGNvbnN0IHN0cnVjdCBpb2N0bGVudCAqKSk7CitleHRlcm4gaW50IGlvY3RsX2RlY29kZSBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGxvbmcpKTsKK2V4dGVybiBpbnQgdGVybV9pb2N0bCBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGxvbmcpKTsKK2V4dGVybiBpbnQgc29ja19pb2N0bCBQKChzdHJ1Y3QgdGNiICosIGxvbmcsIGxvbmcpKTsKK2V4dGVybiBpbnQgcHJvY19pb2N0bCBQKChzdHJ1Y3QgdGNiICosIGludCwgaW50KSk7CitleHRlcm4gaW50IHN0cmVhbV9pb2N0bCBQKChzdHJ1Y3QgdGNiICosIGludCwgaW50KSk7CisjaWZkZWYgTElOVVgKK2V4dGVybiBpbnQgcnRjX2lvY3RsIFAoKHN0cnVjdCB0Y2IgKiwgbG9uZywgbG9uZykpOworI2VuZGlmCisKK2V4dGVybiB2b2lkIHR2X3R2IFAoKHN0cnVjdCB0aW1ldmFsICosIGludCwgaW50KSk7CitleHRlcm4gaW50IHR2X256IFAoKHN0cnVjdCB0aW1ldmFsICopKTsKK2V4dGVybiBpbnQgdHZfY21wIFAoKHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICopKTsKK2V4dGVybiBkb3VibGUgdHZfZmxvYXQgUCgoc3RydWN0IHRpbWV2YWwgKikpOworZXh0ZXJuIHZvaWQgdHZfYWRkIFAoKHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICosIHN0cnVjdCB0aW1ldmFsICopKTsKK2V4dGVybiB2b2lkIHR2X3N1YiBQKChzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqLCBzdHJ1Y3QgdGltZXZhbCAqKSk7CitleHRlcm4gdm9pZCB0dl9tdWwgUCgoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKiwgaW50KSk7CitleHRlcm4gdm9pZCB0dl9kaXYgUCgoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKiwgaW50KSk7CisKKyNpZmRlZiBTVU5PUzQKK2V4dGVybiBpbnQgZml4dmZvcmsgUCgoc3RydWN0IHRjYiAqKSk7CisjZW5kaWYKKyNpZiAhKGRlZmluZWQoTElOVVgpICYmICFkZWZpbmVkKFNQQVJDKSAmJiAhZGVmaW5lZChTUEFSQzY0KSAmJiAhZGVmaW5lZChJQTY0KSkKK2V4dGVybiBsb25nIGdldHJ2YWwyIFAoKHN0cnVjdCB0Y2IgKikpOworI2VuZGlmCisjaWZkZWYgVVNFX1BST0NGUworZXh0ZXJuIGludCBwcm9jX29wZW4gUCgoc3RydWN0IHRjYiAqdGNwLCBpbnQgYXR0YWNoaW5nKSk7CisjZW5kaWYKKworI2RlZmluZSB1bW92ZShwaWQsIGFkZHIsIG9ianApCVwKKwl1bW92ZW4oKHBpZCksIChhZGRyKSwgc2l6ZW9mICoob2JqcCksIChjaGFyICopIChvYmpwKSkKKworI2RlZmluZSBwcmludHR2KHRjcCwgYWRkcikJXAorCXByaW50dHZfYml0bmVzcygodGNwKSwgKGFkZHIpLCBCSVRORVNTX0NVUlJFTlQpCisKKyNpZmRlZiBfX1NURENfXworI2lmZGVmIF9fR05VQ19fCitleHRlcm4gdm9pZCB0cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQorCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKKyNlbHNlCitleHRlcm4gdm9pZCB0cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKyNlbmRpZgorI2Vsc2UKK2V4dGVybiB2b2lkIHRwcmludGYoKTsKKyNlbmRpZgorCisjaWZuZGVmIEhBVkVfU1RSRVJST1IKK2NvbnN0IGNoYXIgKnN0cmVycm9yIFAoKGludCkpOworI2VuZGlmCisjaWZuZGVmIEhBVkVfU1RSU0lHTkFMCitjb25zdCBjaGFyICpzdHJzaWduYWwgUCgoaW50KSk7CisjZW5kaWYKKworZXh0ZXJuIGludCBjdXJyZW50X3BlcnNvbmFsaXR5OworZXh0ZXJuIGNvbnN0IGludCBwZXJzb25hbGl0eV93b3Jkc2l6ZVtdOworCitzdHJ1Y3Qgc3lzZW50IHsKKwlpbnQJbmFyZ3M7CisJaW50CXN5c19mbGFnczsKKwlpbnQJKCpzeXNfZnVuYykoKTsKKwljb25zdCBjaGFyICpzeXNfbmFtZTsKKwlsb25nCW5hdGl2ZV9zY25vOwkvKiBNYXRjaCBhZ2FpbnN0IFNZU18qIGNvbnN0YW50cy4gICovCit9OworCitleHRlcm4gY29uc3Qgc3RydWN0IHN5c2VudCAqc3lzZW50OworZXh0ZXJuIGludCBuc3lzY2FsbHM7CisKK2V4dGVybiBjb25zdCBjaGFyICpjb25zdCAqZXJybm9lbnQ7CitleHRlcm4gaW50IG5lcnJub3M7CisKK3N0cnVjdCBpb2N0bGVudCB7CisJY29uc3QgY2hhciAqZG90aDsKKwljb25zdCBjaGFyICpzeW1ib2w7CisJdW5zaWduZWQgbG9uZyBjb2RlOworfTsKKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb2N0bGVudCAqaW9jdGxlbnQ7CitleHRlcm4gaW50IG5pb2N0bGVudHM7CisKK2V4dGVybiBjb25zdCBjaGFyICpjb25zdCAqc2lnbmFsZW50OworZXh0ZXJuIGludCBuc2lnbmFsczsKKworZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb2N0bGVudCBpb2N0bGVudDBbXTsKK2V4dGVybiBjb25zdCBpbnQgbmlvY3RsZW50czA7CitleHRlcm4gY29uc3QgY2hhciAqY29uc3Qgc2lnbmFsZW50MFtdOworZXh0ZXJuIGNvbnN0IGludCBuc2lnbmFsczA7CisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyCitleHRlcm4gY29uc3Qgc3RydWN0IGlvY3RsZW50IGlvY3RsZW50MVtdOworZXh0ZXJuIGNvbnN0IGludCBuaW9jdGxlbnRzMTsKK2V4dGVybiBjb25zdCBjaGFyICpjb25zdCBzaWduYWxlbnQxW107CitleHRlcm4gY29uc3QgaW50IG5zaWduYWxzMTsKKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyICovCisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzCitleHRlcm4gY29uc3Qgc3RydWN0IGlvY3RsZW50IGlvY3RsZW50MltdOworZXh0ZXJuIGNvbnN0IGludCBuaW9jdGxlbnRzMjsKK2V4dGVybiBjb25zdCBjaGFyICpjb25zdCBzaWduYWxlbnQyW107CitleHRlcm4gY29uc3QgaW50IG5zaWduYWxzMjsKKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCisKKyNpZiBkZWZpbmVkKEZSRUVCU0QpIHx8IChkZWZpbmVkKExJTlVYKSBcCisJCQkgJiYgZGVmaW5lZChQT1dFUlBDKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKSkgXAorICB8fCAoZGVmaW5lZCAoTElOVVgpICYmIGRlZmluZWQgKE1JUFMpICYmICFkZWZpbmVkKF9fbWlwczY0KSkKKy8qIEFSUkdIISAgb2ZmX3QgYXJncyBhcmUgYWxpZ25lZCBvbiA2NCBiaXQgYm91bmRhcmllcyEgKi8KKyNkZWZpbmUgQUxJR042NCh0Y3AsYXJnKQkJCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJaWYgKGFyZyAlIDIpCQkJCQkJCVwKKwkgICAgbWVtbW92ZSAoJnRjcC0+dV9hcmdbYXJnXSwgJnRjcC0+dV9hcmdbYXJnICsgMV0sCQlcCisJCSAgICAgKHRjcC0+dV9uYXJncyAtIGFyZyAtIDEpICogc2l6ZW9mIHRjcC0+dV9hcmdbMF0pOwlcCit9IHdoaWxlICgwKQorI2Vsc2UKKyNkZWZpbmUgQUxJR042NCh0Y3AsYXJnKSBkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYKKworI2lmIEhBVkVfTE9OR19MT05HCisKKy8qIF9sIHJlZmVycyB0byB0aGUgbG93ZXIgbnVtYmVyZWQgdV9hcmcsCisgKiBfaCByZWZlcnMgdG8gdGhlIGhpZ2hlciBudW1iZXJlZCB1X2FyZworICovCisKKyNpZiBIQVZFX0xJVFRMRV9FTkRJQU5fTE9OR19MT05HCisjZGVmaW5lIExPTkdfTE9ORyhfbCxfaCkgXAorICAgICgobG9uZyBsb25nKSgodW5zaWduZWQgbG9uZyBsb25nKSh1bnNpZ25lZCkoX2wpIHwgKCh1bnNpZ25lZCBsb25nIGxvbmcpKF9oKTw8MzIpKSkKKyNlbHNlCisjZGVmaW5lIExPTkdfTE9ORyhfbCxfaCkgXAorICAgICgobG9uZyBsb25nKSgodW5zaWduZWQgbG9uZyBsb25nKSh1bnNpZ25lZCkoX2gpIHwgKCh1bnNpZ25lZCBsb25nIGxvbmcpKF9sKTw8MzIpKSkKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBJQTY0CitleHRlcm4gbG9uZyBpYTMyOworI2VuZGlmCisKK2V4dGVybiBpbnQgbm90X2ZhaWxpbmdfb25seTsKZGlmZiAtLWdpdCBhL2RlcGNvbXAgYi9kZXBjb21wCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllNTUyMmQKLS0tIC9kZXYvbnVsbAorKysgYi9kZXBjb21wCkBAIC0wLDAgKzEsNTIwIEBACisjISAvYmluL3NoCisjIGRlcGNvbXAgLSBjb21waWxlIGEgcHJvZ3JhbSBnZW5lcmF0aW5nIGRlcGVuZGVuY2llcyBhcyBzaWRlLWVmZmVjdHMKKworc2NyaXB0dmVyc2lvbj0yMDAzLTExLTA4LjIzCisKKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyMgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyMgMDIxMTEtMTMwNywgVVNBLgorCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWxleGFuZHJlIE9saXZhIDxvbGl2YUBkY2MudW5pY2FtcC5icj4uCisKK2Nhc2UgJDEgaW4KKyAgJycpCisgICAgIGVjaG8gIiQwOiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDE+JjIKKyAgICAgZXhpdCAxOworICAgICA7OworICAtaCB8IC0taCopCisgICAgY2F0IDw8XEVPRgorVXNhZ2U6IGRlcGNvbXAgWy0taGVscF0gWy0tdmVyc2lvbl0gUFJPR1JBTSBbQVJHU10KKworUnVuIFBST0dSQU1TIEFSR1MgdG8gY29tcGlsZSBhIGZpbGUsIGdlbmVyYXRpbmcgZGVwZW5kZW5jaWVzCithcyBzaWRlLWVmZmVjdHMuCisKK0Vudmlyb25tZW50IHZhcmlhYmxlczoKKyAgZGVwbW9kZSAgICAgRGVwZW5kZW5jeSB0cmFja2luZyBtb2RlLgorICBzb3VyY2UgICAgICBTb3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFNUyBBUkdTJy4KKyAgb2JqZWN0ICAgICAgT2JqZWN0IGZpbGUgb3V0cHV0IGJ5IGBQUk9HUkFNUyBBUkdTJy4KKyAgZGVwZmlsZSAgICAgRGVwZW5kZW5jeSBmaWxlIHRvIG91dHB1dC4KKyAgdG1wZGVwZmlsZSAgVGVtcG9yYXJ5IGZpbGUgdG8gdXNlIHdoZW4gb3V0cHV0aW5nIGRlcGVuZGVuY2llcy4KKyAgbGlidG9vbCAgICAgV2hldGhlciBsaWJ0b29sIGlzIHVzZWQgKHllcy9ubykuCisKK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4uCitFT0YKKyAgICBleGl0IDAKKyAgICA7OworICAtdiB8IC0tdiopCisgICAgZWNobyAiZGVwY29tcCAkc2NyaXB0dmVyc2lvbiIKKyAgICBleGl0IDAKKyAgICA7OworZXNhYworCitpZiB0ZXN0IC16ICIkZGVwbW9kZSIgfHwgdGVzdCAteiAiJHNvdXJjZSIgfHwgdGVzdCAteiAiJG9iamVjdCI7IHRoZW4KKyAgZWNobyAiZGVwY29tcDogVmFyaWFibGVzIHNvdXJjZSwgb2JqZWN0IGFuZCBkZXBtb2RlIG11c3QgYmUgc2V0IiAxPiYyCisgIGV4aXQgMQorZmkKKyMgYGxpYnRvb2wnIGNhbiBhbHNvIGJlIHNldCB0byBgeWVzJyBvciBgbm8nLgorCitpZiB0ZXN0IC16ICIkZGVwZmlsZSI7IHRoZW4KKyAgIGJhc2U9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzLF4uKi8sLCcgLWUgJ3MsXC5cKFteLl0qXCkkLC5QXDEsJ2AKKyAgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgJ3MsLy4qJCwvLCdgCisgICBpZiB0ZXN0ICIkZGlyIiA9ICIkb2JqZWN0IjsgdGhlbgorICAgICAgZGlyPQorICAgZmkKKyAgICMgRklYTUU6IHNob3VsZCBiZSBfZGVwcyBvbiBET1MuCisgICBkZXBmaWxlPSIkZGlyLmRlcHMvJGJhc2UiCitmaQorCit0bXBkZXBmaWxlPSR7dG1wZGVwZmlsZS1gZWNobyAiJGRlcGZpbGUiIHwgc2VkICdzL1wuXChbXi5dKlwpJC8uVFwxLydgfQorCitybSAtZiAiJHRtcGRlcGZpbGUiCisKKyMgU29tZSBtb2RlcyB3b3JrIGp1c3QgbGlrZSBvdGhlciBtb2RlcywgYnV0IHVzZSBkaWZmZXJlbnQgZmxhZ3MuICBXZQorIyBwYXJhbWV0ZXJpemUgaGVyZSwgYnV0IHN0aWxsIGxpc3QgdGhlIG1vZGVzIGluIHRoZSBiaWcgY2FzZSBiZWxvdywKKyMgdG8gbWFrZSBkZXBlbmQubTQgZWFzaWVyIHRvIHdyaXRlLiAgTm90ZSB0aGF0IHdlICpjYW5ub3QqIHVzZSBhIGNhc2UKKyMgaGVyZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9ubHkgY29udGFpbiBvbmUgY2FzZSBzdGF0ZW1lbnQuCitpZiB0ZXN0ICIkZGVwbW9kZSIgPSBocDsgdGhlbgorICAjIEhQIGNvbXBpbGVyIHVzZXMgLU0gYW5kIG5vIGV4dHJhIGFyZy4KKyAgZ2NjZmxhZz0tTQorICBkZXBtb2RlPWdjYworZmkKKworaWYgdGVzdCAiJGRlcG1vZGUiID0gZGFzaFhtc3Rkb3V0OyB0aGVuCisgICAjIFRoaXMgaXMganVzdCBsaWtlIGRhc2htc3Rkb3V0IHdpdGggYSBkaWZmZXJlbnQgYXJndW1lbnQuCisgICBkYXNobWZsYWc9LXhNCisgICBkZXBtb2RlPWRhc2htc3Rkb3V0CitmaQorCitjYXNlICIkZGVwbW9kZSIgaW4KK2djYzMpCisjIyBnY2MgMyBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgdHJhY2tpbmcgdGhhdCBkb2VzIGV4YWN0bHkgd2hhdAorIyMgd2Ugd2FudC4gIFlheSEgIE5vdGU6IGZvciBzb21lIHJlYXNvbiBsaWJ0b29sIDEuNCBkb2Vzbid0IGxpa2UKKyMjIGl0IGlmIC1NRCAtTVAgY29tZXMgYWZ0ZXIgdGhlIC1NRiBzdHVmZi4gIEhtbS4KKyAgIiRAIiAtTVQgIiRvYmplY3QiIC1NRCAtTVAgLU1GICIkdG1wZGVwZmlsZSIKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIG12ICIkdG1wZGVwZmlsZSIgIiRkZXBmaWxlIgorICA7OworCitnY2MpCisjIyBUaGVyZSBhcmUgdmFyaW91cyB3YXlzIHRvIGdldCBkZXBlbmRlbmN5IG91dHB1dCBmcm9tIGdjYy4gIEhlcmUncworIyMgd2h5IHdlIHBpY2sgdGhpcyByYXRoZXIgb2JzY3VyZSBtZXRob2Q6CisjIyAtIERvbid0IHdhbnQgdG8gdXNlIC1NRCBiZWNhdXNlIHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAorIyMgICB1cCBpbiBhIHN1YmRpci4gIEhhdmluZyB0byByZW5hbWUgYnkgaGFuZCBpcyB1Z2x5LgorIyMgICAoV2UgbWlnaHQgZW5kIHVwIGRvaW5nIHRoaXMgYW55d2F5IHRvIHN1cHBvcnQgb3RoZXIgY29tcGlsZXJzLikKKyMjIC0gVGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFyaWFibGUgbWFrZXMgZ2NjIGFjdCBsaWtlCisjIyAgIC1NTSwgbm90IC1NIChkZXNwaXRlIHdoYXQgdGhlIGRvY3Mgc2F5KS4KKyMjIC0gVXNpbmcgLU0gZGlyZWN0bHkgbWVhbnMgcnVubmluZyB0aGUgY29tcGlsZXIgdHdpY2UgKGV2ZW4gd29yc2UKKyMjICAgdGhhbiByZW5hbWluZykuCisgIGlmIHRlc3QgLXogIiRnY2NmbGFnIjsgdGhlbgorICAgIGdjY2ZsYWc9LU1ELAorICBmaQorICAiJEAiIC1XcCwiJGdjY2ZsYWckdG1wZGVwZmlsZSIKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIHJtIC1mICIkZGVwZmlsZSIKKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKyAgYWxwaGE9QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egorIyMgVGhlIHNlY29uZCAtZSBleHByZXNzaW9uIGhhbmRsZXMgRE9TLXN0eWxlIGZpbGUgbmFtZXMgd2l0aCBkcml2ZSBsZXR0ZXJzLgorICBzZWQgLWUgJ3MvXlteOl0qOiAvIC8nIFwKKyAgICAgIC1lICdzL15bJyRhbHBoYSddOlwvW146XSo6IC8gLycgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKyMjIFRoaXMgbmV4dCBwaWVjZSBvZiBtYWdpYyBhdm9pZHMgdGhlIGBkZWxldGVkIGhlYWRlciBmaWxlJyBwcm9ibGVtLgorIyMgVGhlIHByb2JsZW0gaXMgdGhhdCB3aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5QIGZpbGUKKyMjIGlzIGRlbGV0ZWQsIHRoZSBkZXBlbmRlbmN5IGNhdXNlcyBtYWtlIHRvIGRpZSAoYmVjYXVzZSB0aGVyZSBpcworIyMgdHlwaWNhbGx5IG5vIHdheSB0byByZWJ1aWxkIHRoZSBoZWFkZXIpLiAgV2UgYXZvaWQgdGhpcyBieSBhZGRpbmcKKyMjIGR1bW15IGRlcGVuZGVuY2llcyBmb3IgZWFjaCBoZWFkZXIgZmlsZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KKyMjIHRoaXMgZm9yIHVzIGRpcmVjdGx5LgorICB0ciAnICcgJworJyA8ICIkdG1wZGVwZmlsZSIgfAorIyMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgcHV0IGEgc3BhY2UgYmVmb3JlIHRoZSBgOicuICBPbiB0aGUgdGhlb3J5CisjIyB0aGF0IHRoZSBzcGFjZSBtZWFucyBzb21ldGhpbmcsIHdlIGFkZCBhIHNwYWNlIHRvIHRoZSBvdXRwdXQgYXMKKyMjIHdlbGwuCisjIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorIyMgY29ycmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fyb3VuZC4KKyAgICBzZWQgLWUgJ3MvXlxcJC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmlsZSIKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCitocCkKKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5CisgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1biwKKyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKyAgZXhpdCAxCisgIDs7CisKK3NnaSkKKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgIiRAIiAiLVdwLC1NRHVwZGF0ZSwkdG1wZGVwZmlsZSIKKyAgZWxzZQorICAgICIkQCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKKyAgZmkKKyAgc3RhdD0kPworICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgZWxzZQorICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBleGl0ICRzdGF0CisgIGZpCisgIHJtIC1mICIkZGVwZmlsZSIKKworICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gICMgeWVzLCB0aGUgc291cmNlZmlsZSBkZXBlbmQgb24gb3RoZXIgZmlsZXMKKyAgICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgorCisgICAgIyBDbGlwIG9mZiB0aGUgaW5pdGlhbCBlbGVtZW50ICh0aGUgZGVwZW5kZW50KS4gIERvbid0IHRyeSB0byBiZQorICAgICMgY2xldmVyIGFuZCByZXBsYWNlIHRoaXMgd2l0aCBzZWQgY29kZSwgYXMgSVJJWCBzZWQgd29uJ3QgaGFuZGxlCisgICAgIyBsaW5lcyB3aXRoIG1vcmUgdGhhbiBhIGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCisgICAgIyBJUklYIDYuMiBzZWQsIDgxOTIgaW4gSVJJWCA2LjUpLiAgV2UgYWxzbyByZW1vdmUgY29tbWVudCBsaW5lczsKKyAgICAjIHRoZSBJUklYIGNjIGFkZHMgY29tbWVudHMgbGlrZSBgIzpmZWMnIHRvIHRoZSBlbmQgb2YgdGhlCisgICAgIyBkZXBlbmRlbmN5IGxpbmUuCisgICAgdHIgJyAnICcKKycgPCAiJHRtcGRlcGZpbGUiIFwKKyAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgfCBcCisgICAgdHIgJworJyAnICcgPj4gJGRlcGZpbGUKKyAgICBlY2hvID4+ICRkZXBmaWxlCisKKyAgICAjIFRoZSBzZWNvbmQgcGFzcyBnZW5lcmF0ZXMgYSBkdW1teSBlbnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KKyAgICB0ciAnICcgJworJyA8ICIkdG1wZGVwZmlsZSIgXAorICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQvIGQnIC1lICdzLyQvOi8nIFwKKyAgID4+ICRkZXBmaWxlCisgIGVsc2UKKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAorICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCisgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKyAgZmkKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCithaXgpCisgICMgVGhlIEMgZm9yIEFJWCBDb21waWxlciB1c2VzIC1NIGFuZCBvdXRwdXRzIHRoZSBkZXBlbmRlbmNpZXMKKyAgIyBpbiBhIC51IGZpbGUuICBJbiBvbGRlciB2ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUKKyAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQorICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGluZm9ybWF0aW9uLgorICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJlY3RvcnkgaW4gYm90aCBjYXNlcy4KKyAgc3RyaXBwZWQ9YGVjaG8gIiRvYmplY3QiIHwgc2VkICdzL1woLipcKVwuLiokL1wxLydgCisgIHRtcGRlcGZpbGU9IiRzdHJpcHBlZC51IgorICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKyAgICAiJEAiIC1XYywtTQorICBlbHNlCisgICAgIiRAIiAtTQorICBmaQorICBzdGF0PSQ/CisKKyAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuIDoKKyAgZWxzZQorICAgIHN0cmlwcGVkPWBlY2hvICIkc3RyaXBwZWQiIHwgc2VkICdzLF4uKi8sLCdgCisgICAgdG1wZGVwZmlsZT0iJHN0cmlwcGVkLnUiCisgIGZpCisKKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisgIGVsc2UKKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisgICAgZXhpdCAkc3RhdAorICBmaQorCisgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgorICAgIG91dG5hbWU9IiRzdHJpcHBlZC5vIgorICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgorICAgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCisgICAgIyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgorICAgIHNlZCAtZSAicyxeJG91dG5hbWU6LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKyAgICBzZWQgLWUgInMsXiRvdXRuYW1lOiBcKC4qXCkkLFwxOiwiIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisgIGVsc2UKKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAorICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQorICAgICMgImluY2x1ZGUgYmFzZW5hbWUuUGxvIiBzY2hlbWUuCisgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKKyAgZmkKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCitpY2MpCisgICMgSW50ZWwncyBDIGNvbXBpbGVyIHVuZGVyc3RhbmRzIGAtTUQgLU1GIGZpbGUnLiAgSG93ZXZlciBvbgorICAjICAgIGljYyAtTUQgLU1GIGZvby5kIC1jIC1vIHN1Yi9mb28ubyBzdWIvZm9vLmMKKyAgIyBJQ0MgNy4wIHdpbGwgZmlsbCBmb28uZCB3aXRoIHNvbWV0aGluZyBsaWtlCisgICMgICAgZm9vLm86IHN1Yi9mb28uYworICAjICAgIGZvby5vOiBzdWIvZm9vLmgKKyAgIyB3aGljaCBpcyB3cm9uZy4gIFdlIHdhbnQ6CisgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmMKKyAgIyAgICBzdWIvZm9vLm86IHN1Yi9mb28uaAorICAjICAgIHN1Yi9mb28uYzoKKyAgIyAgICBzdWIvZm9vLmg6CisgICMgSUNDIDcuMSB3aWxsIG91dHB1dAorICAjICAgIGZvby5vOiBzdWIvZm9vLmMgc3ViL2Zvby5oCisgICMgYW5kIHdpbGwgd3JhcCBsb25nIGxpbmVzIHVzaW5nIFwgOgorICAjICAgIGZvby5vOiBzdWIvZm9vLmMgLi4uIFwKKyAgIyAgICAgc3ViL2Zvby5oIC4uLiBcCisgICMgICAgIC4uLgorCisgICIkQCIgLU1EIC1NRiAiJHRtcGRlcGZpbGUiCisgIHN0YXQ9JD8KKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6CisgIGVsc2UKKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCisgICAgZXhpdCAkc3RhdAorICBmaQorICBybSAtZiAiJGRlcGZpbGUiCisgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLAorICAjIG9yIGBmb28ubzogZGVwMS5oIGRlcDIuaCBcJywgb3IgYCBkZXAzLmggZGVwNC5oIFwnLgorICAjIERvIHR3byBwYXNzZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bworICAjIGAkb2JqZWN0OiBkZXBlbmRlbnQuaCcgYW5kIG9uZSB0byBzaW1wbHkgYGRlcGVuZGVudC5oOicuCisgIHNlZCAicyxeW146XSo6LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKyAgIyBTb21lIHZlcnNpb25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgorICAjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisgIHNlZCAncyxeW146XSo6IFwoLipcKSQsXDEsO3MvXlxcJC8vOy9eJC9kOy86JC9kJyA8ICIkdG1wZGVwZmlsZSIgfAorICAgIHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiCisgIDs7CisKK3RydTY0KQorICAgIyBUaGUgVHJ1NjQgY29tcGlsZXIgdXNlcyAtTUQgdG8gZ2VuZXJhdGUgZGVwZW5kZW5jaWVzIGFzIGEgc2lkZQorICAgIyBlZmZlY3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZvby5vLmQnLgorICAgIyBBdCBsZWFzdCBvbiBBbHBoYS9SZWRoYXQgNi4xLCBDb21wYXEgQ0NDIFY2LjItNTA0IHNlZW1zIHRvIHB1dAorICAgIyBkZXBlbmRlbmNpZXMgaW4gYGZvby5kJyBpbnN0ZWFkLCBzbyB3ZSBjaGVjayBmb3IgdGhhdCB0b28uCisgICAjIFN1YmRpcmVjdG9yaWVzIGFyZSByZXNwZWN0ZWQuCisgICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAorICAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9CisgICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQvLydgCisKKyAgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgICAgdG1wZGVwZmlsZTE9IiRkaXIubGlicy8kYmFzZS5sby5kIgorICAgICAgdG1wZGVwZmlsZTI9IiRkaXIubGlicy8kYmFzZS5kIgorICAgICAgIiRAIiAtV2MsLU1ECisgICBlbHNlCisgICAgICB0bXBkZXBmaWxlMT0iJGRpciRiYXNlLm8uZCIKKyAgICAgIHRtcGRlcGZpbGUyPSIkZGlyJGJhc2UuZCIKKyAgICAgICIkQCIgLU1ECisgICBmaQorCisgICBzdGF0PSQ/CisgICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKKyAgIGVsc2UKKyAgICAgIHJtIC1mICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiCisgICAgICBleGl0ICRzdGF0CisgICBmaQorCisgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZTEiOyB0aGVuCisgICAgICB0bXBkZXBmaWxlPSIkdG1wZGVwZmlsZTEiCisgICBlbHNlCisgICAgICB0bXBkZXBmaWxlPSIkdG1wZGVwZmlsZTIiCisgICBmaQorICAgaWYgdGVzdCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuCisgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgorICAgICAgIyBUaGF0J3MgYSB0YWIgYW5kIGEgc3BhY2UgaW4gdGhlIFtdLgorICAgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisgICBlbHNlCisgICAgICBlY2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgorICAgZmkKKyAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgIDs7CisKKyNub3NpZGVlZmZlY3QpCisgICMgVGhpcyBjb21tZW50IGFib3ZlIGlzIHVzZWQgYnkgYXV0b21ha2UgdG8gdGVsbCBzaWRlLWVmZmVjdAorICAjIGRlcGVuZGVuY3kgdHJhY2tpbmcgbWVjaGFuaXNtcyBmcm9tIHNsb3dlciBvbmVzLgorCitkYXNobXN0ZG91dCkKKyAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCisgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCisgICIkQCIgfHwgZXhpdCAkPworCisgICMgUmVtb3ZlIHRoZSBjYWxsIHRvIExpYnRvb2wuCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHdoaWxlIHRlc3QgJDEgIT0gJy0tbW9kZT1jb21waWxlJzsgZG8KKyAgICAgIHNoaWZ0CisgICAgZG9uZQorICAgIHNoaWZ0CisgIGZpCisKKyAgIyBSZW1vdmUgYC1vICRvYmplY3QnLgorICBJRlM9IiAiCisgIGZvciBhcmcKKyAgZG8KKyAgICBjYXNlICRhcmcgaW4KKyAgICAtbykKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgICRvYmplY3QpCisgICAgICBzaGlmdAorICAgICAgOzsKKyAgICAqKQorICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciCisgICAgICBzaGlmdCAjIGZub3JkCisgICAgICBzaGlmdCAjICRhcmcKKyAgICAgIDs7CisgICAgZXNhYworICBkb25lCisKKyAgdGVzdCAteiAiJGRhc2htZmxhZyIgJiYgZGFzaG1mbGFnPS1NCisgICMgUmVxdWlyZSBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBiZWZvcmUgc2VhcmNoaW5nIGZvciBgOicKKyAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBUaGlzIGlzIHRvIGNvcGUgd2l0aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgorICAjIGEgZGVwZW5kZW5jeSBzdWNoIGFzIGBjOi9mb28vYmFyJyBjb3VsZCBiZSBzZWVuIGFzIHRhcmdldCBgYycgb3RoZXJ3aXNlLgorICAiJEAiICRkYXNobWZsYWcgfAorICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1bXjpdKlw6WyAgICBdKjonIiRvYmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgorICBybSAtZiAiJGRlcGZpbGUiCisgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgIHRyICcgJyAnCisnIDwgIiR0bXBkZXBmaWxlIiB8IFwKKyMjIFNvbWUgdmVyc2lvbnMgb2YgdGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCisjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgorICAgIHNlZCAtZSAncy9eXFwkLy8nIC1lICcvXiQvZCcgLWUgJy86JC9kJyB8IHNlZCAtZSAncy8kLyA6LycgPj4gIiRkZXBmaWxlIgorICBybSAtZiAiJHRtcGRlcGZpbGUiCisgIDs7CisKK2Rhc2hYbXN0ZG91dCkKKyAgIyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBlbmQubTQuICBJdCBpcyBuZXZlciBhY3R1YWxseQorICAjIHJ1biwgYXMgdGhpcyBtb2RlIGlzIHNwZWNpYWxseSByZWNvZ25pemVkIGluIHRoZSBwcmVhbWJsZS4KKyAgZXhpdCAxCisgIDs7CisKK21ha2VkZXBlbmQpCisgICIkQCIgfHwgZXhpdCAkPworICAjIFJlbW92ZSBhbnkgTGlidG9vbCBjYWxsCisgIGlmIHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgorICAgIHdoaWxlIHRlc3QgJDEgIT0gJy0tbW9kZT1jb21waWxlJzsgZG8KKyAgICAgIHNoaWZ0CisgICAgZG9uZQorICAgIHNoaWZ0CisgIGZpCisgICMgWCBtYWtlZGVwZW5kCisgIHNoaWZ0CisgIGNsZWFyZWQ9bm8KKyAgZm9yIGFyZyBpbiAiJEAiOyBkbworICAgIGNhc2UgJGNsZWFyZWQgaW4KKyAgICBubykKKyAgICAgIHNldCAiIjsgc2hpZnQKKyAgICAgIGNsZWFyZWQ9eWVzIDs7CisgICAgZXNhYworICAgIGNhc2UgIiRhcmciIGluCisgICAgLUQqfC1JKikKKyAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKKyAgICAjIFN0cmlwIGFueSBvcHRpb24gdGhhdCBtYWtlZGVwZW5kIG1heSBub3QgdW5kZXJzdGFuZC4gIFJlbW92ZQorICAgICMgdGhlIG9iamVjdCB0b28sIG90aGVyd2lzZSBtYWtlZGVwZW5kIHdpbGwgcGFyc2UgaXQgYXMgYSBzb3VyY2UgZmlsZS4KKyAgICAtKnwkb2JqZWN0KQorICAgICAgOzsKKyAgICAqKQorICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OworICAgIGVzYWMKKyAgZG9uZQorICBvYmpfc3VmZml4PSJgZWNobyAkb2JqZWN0IHwgc2VkICdzL14uKlwuLy4vJ2AiCisgIHRvdWNoICIkdG1wZGVwZmlsZSIKKyAgJHtNQUtFREVQRU5ELW1ha2VkZXBlbmR9IC1vIiRvYmpfc3VmZml4IiAtZiIkdG1wZGVwZmlsZSIgIiRAIgorICBybSAtZiAiJGRlcGZpbGUiCisgIGNhdCA8ICIkdG1wZGVwZmlsZSIgPiAiJGRlcGZpbGUiCisgIHNlZCAnMSwyZCcgIiR0bXBkZXBmaWxlIiB8IHRyICcgJyAnCisnIHwgXAorIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3QgcHJvY2VzcyB0aGlzIGludm9jYXRpb24KKyMjIGNvcnJlY3RseS4gIEJyZWFraW5nIGl0IGludG8gdHdvIHNlZCBpbnZvY2F0aW9ucyBpcyBhIHdvcmthcm91bmQuCisgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2VkIC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisgIHJtIC1mICIkdG1wZGVwZmlsZSIgIiR0bXBkZXBmaWxlIi5iYWsKKyAgOzsKKworY3BwKQorICAjIEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxlciAqbXVzdCoKKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KKyAgIiRAIiB8fCBleGl0ICQ/CisKKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgd2hpbGUgdGVzdCAkMSAhPSAnLS1tb2RlPWNvbXBpbGUnOyBkbworICAgICAgc2hpZnQKKyAgICBkb25lCisgICAgc2hpZnQKKyAgZmkKKworICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCisgIElGUz0iICIKKyAgZm9yIGFyZworICBkbworICAgIGNhc2UgJGFyZyBpbgorICAgIC1vKQorICAgICAgc2hpZnQKKyAgICAgIDs7CisgICAgJG9iamVjdCkKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgICopCisgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIKKyAgICAgIHNoaWZ0ICMgZm5vcmQKKyAgICAgIHNoaWZ0ICMgJGFyZworICAgICAgOzsKKyAgICBlc2FjCisgIGRvbmUKKworICAiJEAiIC1FIHwKKyAgICBzZWQgLW4gJy9eIyBbMC05XVswLTldKiAiXChbXiJdKlwpIi4qLyBzOjogXDEgXFw6cCcgfAorICAgIHNlZCAnJCBzOiBcXCQ6OicgPiAiJHRtcGRlcGZpbGUiCisgIHJtIC1mICIkZGVwZmlsZSIKKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmlsZSIKKyAgY2F0IDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisgIHNlZCA8ICIkdG1wZGVwZmlsZSIgJy9eJC9kO3MvXiAvLztzLyBcXCQvLztzLyQvIDovJyA+PiAiJGRlcGZpbGUiCisgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgOzsKKworbXN2aXN1YWxjcHApCisgICMgSW1wb3J0YW50IG5vdGU6IGluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgorICAjIGFsd2F5cyB3cml0ZSB0aGUgcHJlcHJvY2Vzc2VkIGZpbGUgdG8gc3Rkb3V0LCByZWdhcmRsZXNzIG9mIC1vLAorICAjIGJlY2F1c2Ugd2UgbXVzdCB1c2UgLW8gd2hlbiBydW5uaW5nIGxpYnRvb2wuCisgICIkQCIgfHwgZXhpdCAkPworICBJRlM9IiAiCisgIGZvciBhcmcKKyAgZG8KKyAgICBjYXNlICIkYXJnIiBpbgorICAgICItR20ifCIvR20ifCItR2kifCIvR2kifCItWkkifCIvWkkiKQorCXNldCBmbm9yZCAiJEAiCisJc2hpZnQKKwlzaGlmdAorCTs7CisgICAgKikKKwlzZXQgZm5vcmQgIiRAIiAiJGFyZyIKKwlzaGlmdAorCXNoaWZ0CisJOzsKKyAgICBlc2FjCisgIGRvbmUKKyAgIiRAIiAtRSB8CisgIHNlZCAtbiAnL14jbGluZSBbMC05XVswLTldKiAiXChbXiJdKlwpIi8gczo6ZWNobyAiYGN5Z3BhdGggLXUgXFwiXDFcXCJgIjpwJyB8IHNvcnQgfCB1bmlxID4gIiR0bXBkZXBmaWxlIgorICBybSAtZiAiJGRlcGZpbGUiCisgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCisgIC4gIiR0bXBkZXBmaWxlIiB8IHNlZCAncyUgJVxcICVnJyB8IHNlZCAtbiAnL15cKC4qXCkkLyBzOjoJXDEgXFw6cCcgPj4gIiRkZXBmaWxlIgorICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCisgIC4gIiR0bXBkZXBmaWxlIiB8IHNlZCAncyUgJVxcICVnJyB8IHNlZCAtbiAnL15cKC4qXCkkLyBzOjpcMVw6OnAnID4+ICIkZGVwZmlsZSIKKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgorICA7OworCitub25lKQorICBleGVjICIkQCIKKyAgOzsKKworKikKKyAgZWNobyAiVW5rbm93biBkZXBtb2RlICRkZXBtb2RlIiAxPiYyCisgIGV4aXQgMQorICA7OworZXNhYworCitleGl0IDAKKworIyBMb2NhbCBWYXJpYWJsZXM6CisjIG1vZGU6IHNoZWxsLXNjcmlwdAorIyBzaC1pbmRlbnRhdGlvbjogMgorIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisjIHRpbWUtc3RhbXAtZW5kOiAiJCIKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvZGVzYy5jIGIvZGVzYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZTBiY2IKLS0tIC9kZXYvbnVsbAorKysgYi9kZXNjLmMKQEAgLTAsMCArMSw5MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBkZXNjLmMsdiAxLjIyIDIwMDUvMDYvMDEgMTk6MjI6MDcgcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KKyNpZmRlZiBMSU5VWAorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19FUE9MTF9ICisjaW5jbHVkZSA8c3lzL2Vwb2xsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX0xJQkFJT19ICisjaW5jbHVkZSA8bGliYWlvLmg+CisjZW5kaWYKKworI2lmIEhBVkVfTE9OR19MT05HX09GRl9UCisvKgorICogSGFja3MgZm9yIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG9uZyBsb25nIG9mZl90CisgKi8KKyNkZWZpbmUgZmxvY2s2NAlmbG9jawkJLyogSG9ycmlkIGhhY2sgKi8KKyNkZWZpbmUgcHJpbnRmbG9jayBwcmludGZsb2NrNjQJLyogSG9ycmlkZXIgaGFjayAqLworI2VuZGlmCisKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZjbnRsY21kc1tdID0geworCXsgRl9EVVBGRCwJIkZfRFVQRkQiCX0sCisJeyBGX0dFVEZELAkiRl9HRVRGRCIJfSwKKwl7IEZfU0VURkQsCSJGX1NFVEZEIgl9LAorCXsgRl9HRVRGTCwJIkZfR0VURkwiCX0sCisJeyBGX1NFVEZMLAkiRl9TRVRGTCIJfSwKKwl7IEZfR0VUTEssCSJGX0dFVExLIgl9LAorCXsgRl9TRVRMSywJIkZfU0VUTEsiCX0sCisJeyBGX1NFVExLVywJIkZfU0VUTEtXIgl9LAorCXsgRl9HRVRPV04sCSJGX0dFVE9XTiIJfSwKKwl7IEZfU0VUT1dOLAkiRl9TRVRPV04iCX0sCisjaWZkZWYgRl9SU0VUTEsKKwl7IEZfUlNFVExLLAkiRl9SU0VUTEsiCX0sCisjZW5kaWYKKyNpZmRlZiBGX1JTRVRMS1cKKwl7IEZfUlNFVExLVywJIkZfUlNFVExLVyIJfSwKKyNlbmRpZgorI2lmZGVmIEZfUkdFVExLCisJeyBGX1JHRVRMSywJIkZfUkdFVExLIgl9LAorI2VuZGlmCisjaWZkZWYgRl9DTlZUCisJeyBGX0NOVlQsCSJGX0NOVlQiCX0sCisjZW5kaWYKKyNpZmRlZiBGX1NFVFNJRworCXsgRl9TRVRTSUcsCSJGX1NFVFNJRyIJfSwKKyNlbmRpZgorI2lmZGVmIEZfR0VUU0lHCisJeyBGX0dFVFNJRywJIkZfR0VUU0lHIgl9LAorI2VuZGlmCisjaWZkZWYgRl9DSEtGTAorCXsgRl9DSEtGTCwJIkZfQ0hLRkwiCX0sCisjZW5kaWYKKyNpZmRlZiBGX0RVUDJGRAorCXsgRl9EVVAyRkQsCSJGX0RVUDJGRCIJfSwKKyNlbmRpZgorI2lmZGVmIEZfQUxMT0NTUAorCXsgRl9BTExPQ1NQLAkiRl9BTExPQ1NQIgl9LAorI2VuZGlmCisjaWZkZWYgRl9JU1NUUkVBTQorCXsgRl9JU1NUUkVBTSwJIkZfSVNTVFJFQU0iCX0sCisjZW5kaWYKKyNpZmRlZiBGX1BSSVYKKwl7IEZfUFJJViwJIkZfUFJJViIJfSwKKyNlbmRpZgorI2lmZGVmIEZfTlBSSVYKKwl7IEZfTlBSSVYsCSJGX05QUklWIgl9LAorI2VuZGlmCisjaWZkZWYgRl9RVU9UQUNMCisJeyBGX1FVT1RBQ0wsCSJGX1FVT1RBQ0wiCX0sCisjZW5kaWYKKyNpZmRlZiBGX0JMT0NLUworCXsgRl9CTE9DS1MsCSJGX0JMT0NLUyIJfSwKKyNlbmRpZgorI2lmZGVmIEZfQkxLU0laRQorCXsgRl9CTEtTSVpFLAkiRl9CTEtTSVpFIgl9LAorI2VuZGlmCisjaWZkZWYgRl9HRVRPV04KKwl7IEZfR0VUT1dOLAkiRl9HRVRPV04iCX0sCisjZW5kaWYKKyNpZmRlZiBGX1NFVE9XTgorCXsgRl9TRVRPV04sCSJGX1NFVE9XTiIJfSwKKyNlbmRpZgorI2lmZGVmIEZfUkVWT0tFCisJeyBGX1JFVk9LRSwJIkZfUkVWT0tFIgl9LAorI2VuZGlmCisjaWZkZWYgRl9TRVRMSworCXsgRl9TRVRMSywJIkZfU0VUTEsiCX0sCisjZW5kaWYKKyNpZmRlZiBGX1NFVExLVworCXsgRl9TRVRMS1csCSJGX1NFVExLVyIJfSwKKyNlbmRpZgorI2lmZGVmIEZfRlJFRVNQCisJeyBGX0ZSRUVTUCwJIkZfRlJFRVNQIgl9LAorI2VuZGlmCisjaWZkZWYgRl9HRVRMSworCXsgRl9HRVRMSywJIkZfR0VUTEsiCX0sCisjZW5kaWYKKyNpZmRlZiBGX1NFVExLNjQKKwl7IEZfU0VUTEs2NCwJIkZfU0VUTEs2NCIJfSwKKyNlbmRpZgorI2lmZGVmIEZfU0VUTEtXNjQKKwl7IEZfU0VUTEtXNjQsCSJGX1NFVExLVzY0Igl9LAorI2VuZGlmCisjaWZkZWYgRl9GUkVFU1A2NAorCXsgRl9GUkVFU1A2NCwJIkZfRlJFRVNQNjQiCX0sCisjZW5kaWYKKyNpZmRlZiBGX0dFVExLNjQKKwl7IEZfR0VUTEs2NCwJIkZfR0VUTEs2NCIJfSwKKyNlbmRpZgorI2lmZGVmIEZfU0hBUkUKKwl7IEZfU0hBUkUsCSJGX1NIQVJFIgl9LAorI2VuZGlmCisjaWZkZWYgRl9VTlNIQVJFCisJeyBGX1VOU0hBUkUsCSJGX1VOU0hBUkUiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZkZmxhZ3NbXSA9IHsKKyNpZmRlZiBGRF9DTE9FWEVDCisJeyBGRF9DTE9FWEVDLAkiRkRfQ0xPRVhFQyIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworCisjaWZkZWYgTE9DS19TSAorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgZmxvY2tjbWRzW10gPSB7CisJeyBMT0NLX1NILAkiTE9DS19TSCIJfSwKKwl7IExPQ0tfRVgsCSJMT0NLX0VYIgl9LAorCXsgTE9DS19OQiwJIkxPQ0tfTkIiCX0sCisJeyBMT0NLX1VOLAkiTE9DS19VTiIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworI2VuZGlmIC8qIExPQ0tfU0ggKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGxvY2tmY21kc1tdID0geworCXsgRl9SRExDSywJIkZfUkRMQ0siCX0sCisJeyBGX1dSTENLLAkiRl9XUkxDSyIJfSwKKwl7IEZfVU5MQ0ssCSJGX1VOTENLIgl9LAorI2lmZGVmIEZfRVhMQ0sKKwl7IEZfRVhMQ0ssCSJGX0VYTENLIgl9LAorI2VuZGlmCisjaWZkZWYgRl9TSExDSworCXsgRl9TSExDSywJIkZfU0hMQ0siCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHdoZW5jZVtdID0geworCXsgU0VFS19TRVQsCSJTRUVLX1NFVCIJfSwKKwl7IFNFRUtfQ1VSLAkiU0VFS19DVVIiCX0sCisJeyBTRUVLX0VORCwJIlNFRUtfRU5EIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCisjaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCisvKiBmY250bC9sb2NrZiAqLworc3RhdGljIHZvaWQKK3ByaW50ZmxvY2sodGNwLCBhZGRyLCBnZXRsaykKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgYWRkcjsKK2ludCBnZXRsazsKK3sKKwlzdHJ1Y3QgZmxvY2sgZmw7CisKKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmZmwpIDwgMCkgeworCQl0cHJpbnRmKCJ7Li4ufSIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoInt0eXBlPSIpOworCXByaW50eHZhbChsb2NrZmNtZHMsIGZsLmxfdHlwZSwgIkZfPz8/Iik7CisJdHByaW50ZigiLCB3aGVuY2U9Iik7CisJcHJpbnR4dmFsKHdoZW5jZSwgZmwubF93aGVuY2UsICJTRUVLXz8/PyIpOworCXRwcmludGYoIiwgc3RhcnQ9JWxkLCBsZW49JWxkIiwgZmwubF9zdGFydCwgZmwubF9sZW4pOworCWlmIChnZXRsaykKKwkJdHByaW50ZigiLCBwaWQ9JWx1fSIsICh1bnNpZ25lZCBsb25nKSBmbC5sX3BpZCk7CisJZWxzZQorCQl0cHJpbnRmKCJ9Iik7Cit9CisjZW5kaWYKKworI2lmIF9MRlM2NF9MQVJHRUZJTEUgfHwgSEFWRV9MT05HX0xPTkdfT0ZGX1QKKy8qIGZjbnRsL2xvY2tmICovCitzdGF0aWMgdm9pZAorcHJpbnRmbG9jazY0KHRjcCwgYWRkciwgZ2V0bGspCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7CitpbnQgZ2V0bGs7Cit7CisJc3RydWN0IGZsb2NrNjQgZmw7CisKKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmZmwpIDwgMCkgeworCQl0cHJpbnRmKCJ7Li4ufSIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoInt0eXBlPSIpOworCXByaW50eHZhbChsb2NrZmNtZHMsIGZsLmxfdHlwZSwgIkZfPz8/Iik7CisJdHByaW50ZigiLCB3aGVuY2U9Iik7CisJcHJpbnR4dmFsKHdoZW5jZSwgZmwubF93aGVuY2UsICJTRUVLXz8/PyIpOworCXRwcmludGYoIiwgc3RhcnQ9JWxsZCwgbGVuPSVsbGQiLCAobG9uZyBsb25nKSBmbC5sX3N0YXJ0LCAobG9uZyBsb25nKSBmbC5sX2xlbik7CisJaWYgKGdldGxrKQorCQl0cHJpbnRmKCIsIHBpZD0lbHV9IiwgKHVuc2lnbmVkIGxvbmcpIGZsLmxfcGlkKTsKKwllbHNlCisJCXRwcmludGYoIn0iKTsKK30KKyNlbmRpZgorCitzdGF0aWMgY2hhciAqCitzcHJpbnRmbGFncyh4bGF0LCBmbGFncykKK2NvbnN0IHN0cnVjdCB4bGF0ICp4bGF0OworaW50IGZsYWdzOworeworCXN0YXRpYyBjaGFyIG91dHN0clsxMDI0XTsKKwljaGFyICpzZXA7CisKKwlzdHJjcHkob3V0c3RyLCAiZmxhZ3MgIik7CisJc2VwID0gIiI7CisJZm9yICg7IHhsYXQtPnN0cjsgeGxhdCsrKSB7CisJCWlmICgoZmxhZ3MgJiB4bGF0LT52YWwpID09IHhsYXQtPnZhbCkgeworCQkJc3ByaW50ZihvdXRzdHIgKyBzdHJsZW4ob3V0c3RyKSwKKwkJCQkiJXMlcyIsIHNlcCwgeGxhdC0+c3RyKTsKKwkJCXNlcCA9ICJ8IjsKKwkJCWZsYWdzICY9IH54bGF0LT52YWw7CisJCX0KKwl9CisJaWYgKGZsYWdzKQorCQlzcHJpbnRmKG91dHN0ciArIHN0cmxlbihvdXRzdHIpLAorCQkJIiVzJSN4Iiwgc2VwLCBmbGFncyk7CisJcmV0dXJuIG91dHN0cjsKK30KKworLyoKKyAqIGxvdyBiaXRzIG9mIHRoZSBvcGVuKDIpIGZsYWdzIGRlZmluZSBhY2Nlc3MgbW9kZSwKKyAqIG90aGVyIGJpdHMgYXJlIHJlYWwgZmxhZ3MuCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICoKK3NwcmludF9vcGVuX21vZGVzKG1vZGVfdCBmbGFncykKK3sKKwlleHRlcm4gY29uc3Qgc3RydWN0IHhsYXQgb3Blbl9hY2Nlc3NfbW9kZXNbXTsKKwlleHRlcm4gY29uc3Qgc3RydWN0IHhsYXQgb3Blbl9tb2RlX2ZsYWdzW107CisJc3RhdGljIGNoYXIgb3V0c3RyWzEwMjRdOworCWNvbnN0IGNoYXIgKnN0ciA9IHhsb29rdXAob3Blbl9hY2Nlc3NfbW9kZXMsIGZsYWdzICYgMyk7CisJY29uc3QgY2hhciAqc2VwID0gIiI7CisJY29uc3Qgc3RydWN0IHhsYXQgKng7CisKKwlzdHJjcHkob3V0c3RyLCAiZmxhZ3MgIik7CisJaWYgKHN0cikKKwl7CisJCXN0cmNhdChvdXRzdHIsIHN0cik7CisJCWZsYWdzICY9IH4zOworCQlpZiAoIWZsYWdzKQorCQkJcmV0dXJuIG91dHN0cjsKKwkJc3RyY2F0KG91dHN0ciwgInwiKTsKKwl9CisKKwlmb3IgKHggPSBvcGVuX21vZGVfZmxhZ3M7IHgtPnN0cjsgeCsrKQorCXsKKwkJaWYgKChmbGFncyAmIHgtPnZhbCkgPT0geC0+dmFsKQorCQl7CisJCQlzcHJpbnRmKG91dHN0ciArIHN0cmxlbihvdXRzdHIpLAorCQkJCSIlcyVzIiwgc2VwLCB4LT5zdHIpOworCQkJc2VwID0gInwiOworCQkJZmxhZ3MgJj0gfngtPnZhbDsKKwkJfQorCX0KKwlpZiAoZmxhZ3MpCisJCXNwcmludGYob3V0c3RyICsgc3RybGVuKG91dHN0ciksICIlcyUjeCIsIHNlcCwgZmxhZ3MpOworCXJldHVybiBvdXRzdHI7Cit9CisKK2ludAorc3lzX2ZjbnRsKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHh2YWwoZmNudGxjbWRzLCB0Y3AtPnVfYXJnWzFdLCAiRl8/Pz8iKTsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7CisJCWNhc2UgRl9TRVRGRDoKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKGZkZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJGRF8/Pz8iKTsKKwkJCWJyZWFrOworCQljYXNlIEZfU0VUT1dOOiBjYXNlIEZfRFVQRkQ6CisJCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbMl0pOworCQkJYnJlYWs7CisJCWNhc2UgRl9TRVRGTDoKKwkJCXRwcmludGYoIiwgIik7CisJCQl0cHJpbnRfb3Blbl9tb2Rlcyh0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQkJYnJlYWs7CisJCWNhc2UgRl9TRVRMSzogY2FzZSBGX1NFVExLVzoKKyNpZmRlZiBGX0ZSRUVTUAorCQljYXNlIEZfRlJFRVNQOgorI2VuZGlmCisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbG9jayh0Y3AsIHRjcC0+dV9hcmdbMl0sIDApOworCQkJYnJlYWs7CisjaWYgX0xGUzY0X0xBUkdFRklMRQorI2lmZGVmIEZfRlJFRVNQNjQKKwkJY2FzZSBGX0ZSRUVTUDY0OgorI2VuZGlmCisJCS8qIExpbnV4IGdsaWJjIGRlZmluZXMgU0VUTEs2NCBhcyBTRVRMSywKKwkJICAgZXZlbiB0aG91Z2ggdGhlIGtlcm5lbCBoYXMgZGlmZmVyZW50IHZhbHVlcyAtIGFzIGRvZXMgU29sYXJpcy4gKi8KKyNpZiBkZWZpbmVkKEZfU0VUTEs2NCkgJiYgRl9TRVRMSzY0KzAhPUZfU0VUTEsKKwkJY2FzZSBGX1NFVExLNjQ6CisjZW5kaWYKKyNpZiBkZWZpbmVkKEZfU0VUTEtXNjQpICYmIEZfU0VUTEtXNjQrMCE9Rl9TRVRMS1cKKwkJY2FzZSBGX1NFVExLVzY0OgorI2VuZGlmCisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbG9jazY0KHRjcCwgdGNwLT51X2FyZ1syXSwgMCk7CisJCQlicmVhazsKKyNlbmRpZgorIAkJfQorCX0KKwllbHNlIHsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7CisJCWNhc2UgRl9EVVBGRDoKKwkJY2FzZSBGX1NFVEZEOiBjYXNlIEZfU0VURkw6CisJCWNhc2UgRl9TRVRMSzogY2FzZSBGX1NFVExLVzoKKwkJY2FzZSBGX1NFVE9XTjogY2FzZSBGX0dFVE9XTjoKKwkJCWJyZWFrOworCQljYXNlIEZfR0VURkQ6CisJCQlpZiAodGNwLT51X3J2YWwgPT0gMCkKKwkJCQlyZXR1cm4gMDsKKwkJCXRjcC0+YXV4c3RyID0gc3ByaW50ZmxhZ3MoZmRmbGFncywgdGNwLT51X3J2YWwpOworCQkJcmV0dXJuIFJWQUxfSEVYfFJWQUxfU1RSOworCQljYXNlIEZfR0VURkw6CisJCQl0Y3AtPmF1eHN0ciA9IHNwcmludF9vcGVuX21vZGVzKHRjcC0+dV9ydmFsKTsKKwkJCXJldHVybiBSVkFMX0hFWHxSVkFMX1NUUjsKKwkJY2FzZSBGX0dFVExLOgorCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50ZmxvY2sodGNwLCB0Y3AtPnVfYXJnWzJdLCAxKTsKKwkJCWJyZWFrOworI2lmIF9MRlM2NF9MQVJHRUZJTEUKKyNpZiBkZWZpbmVkKEZfR0VUTEs2NCkgJiYgRl9HRVRMSzY0KzAhPUZfR0VUTEsKKwkJY2FzZSBGX0dFVExLNjQ6CisjZW5kaWYKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsb2NrNjQodGNwLCB0Y3AtPnVfYXJnWzJdLCAxKTsKKwkJCWJyZWFrOworI2VuZGlmCisgCQlkZWZhdWx0OgorCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIExPQ0tfU0gKKworaW50CitzeXNfZmxvY2sodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmxhZ3MoZmxvY2tjbWRzLCB0Y3AtPnVfYXJnWzFdLCAiTE9DS18/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTE9DS19TSCAqLworCitpbnQKK3N5c19jbG9zZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19kdXAodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCIsIHRjcC0+dV9hcmdbMF0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZHVwMih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAlbGQiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2dldGR0YWJsZXNpemUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitkZWNvZGVfc2VsZWN0KHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyAqYXJncywgZW51bSBiaXRuZXNzX3QgYml0bmVzcykKK3sKKwlpbnQgaSwgaiwgbmZkczsKKwl1bnNpZ25lZCBpbnQgZmRzaXplID0gKCgoKGFyZ3NbMF0gKyA3KSAvIDgpICsgc2l6ZW9mKGxvbmcpIC0gMSkKKwkJCSAgICAgICAmIC1zaXplb2YobG9uZykpOworCWZkX3NldCAqZmRzOworCXN0YXRpYyBjaGFyIG91dHN0clsxMDI0XTsKKwljaGFyICpzZXA7CisJbG9uZyBhcmc7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlmZHMgPSAoZmRfc2V0ICopIG1hbGxvYyhmZHNpemUpOworCQlpZiAoZmRzID09IE5VTEwpCisJCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworCQluZmRzID0gYXJnc1swXTsKKwkJdHByaW50ZigiJWQiLCBuZmRzKTsKKwkJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworCQkJYXJnID0gYXJnc1tpKzFdOworCQkJaWYgKGFyZyA9PSAwKSB7CisJCQkJdHByaW50ZigiLCBOVUxMIik7CisJCQkJY29udGludWU7CisJCQl9CisJCQlpZiAoZmRzID09IE5VTEwgfHwgIXZlcmJvc2UodGNwKSkgeworCQkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7CisJCQkJY29udGludWU7CisJCQl9CisJCQlpZiAodW1vdmVuKHRjcCwgYXJnLCBmZHNpemUsIChjaGFyICopIGZkcykgPCAwKSB7CisJCQkJdHByaW50ZigiLCBbP10iKTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCXRwcmludGYoIiwgWyIpOworCQkJZm9yIChqID0gMCwgc2VwID0gIiI7IGogPCBuZmRzOyBqKyspIHsKKwkJCQlpZiAoRkRfSVNTRVQoaiwgZmRzKSkgeworCQkJCQl0cHJpbnRmKCIlcyV1Iiwgc2VwLCBqKTsKKwkJCQkJc2VwID0gIiAiOworCQkJCX0KKwkJCX0KKwkJCXRwcmludGYoIl0iKTsKKwkJfQorCQlmcmVlKGZkcyk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50dHZfYml0bmVzcyh0Y3AsIGFyZ3NbNF0sIGJpdG5lc3MpOworCX0KKwllbHNlCisJeworCQl1bnNpZ25lZCBpbnQgY3VtbGVuID0gMDsKKwkJY2hhciAqc2VwID0gIiI7CisKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQlyZXR1cm4gMDsKKworCQlpZiAoKG5mZHMgPSB0Y3AtPnVfcnZhbCkgPT0gMCkgeworCQkJdGNwLT5hdXhzdHIgPSAiVGltZW91dCI7CisJCQlyZXR1cm4gUlZBTF9TVFI7CisJCX0KKworCQlmZHMgPSAoZmRfc2V0ICopIG1hbGxvYyhmZHNpemUpOworCQlpZiAoZmRzID09IE5VTEwpCisJCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworCisJCW91dHN0clswXSA9ICdcMCc7CisJCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKwkJCWludCBmaXJzdCA9IDE7CisJCQljaGFyIHN0clsyMF07CisKKwkJCXRjcC0+YXV4c3RyID0gb3V0c3RyOworCQkJYXJnID0gYXJnc1tpKzFdOworCQkJaWYgKGZkcyA9PSBOVUxMIHx8ICFhcmcgfHwKKwkJCSAgICB1bW92ZW4odGNwLCBhcmcsIGZkc2l6ZSwgKGNoYXIgKikgZmRzKSA8IDApCisJCQkJY29udGludWU7CisJCQlmb3IgKGogPSAwOyBqIDwgYXJnc1swXTsgaisrKSB7CisJCQkJaWYgKEZEX0lTU0VUKGosIGZkcykpIHsKKwkJCQkJaWYgKGZpcnN0KSB7CisJCQkJCQlzcHJpbnRmKHN0ciwgIiVzJXMgWyV1Iiwgc2VwLAorCQkJCQkJCWkgPT0gMCA/ICJpbiIgOgorCQkJCQkJCWkgPT0gMSA/ICJvdXQiIDoKKwkJCQkJCQkiZXhjZXB0Iiwgaik7CisJCQkJCQlmaXJzdCA9IDA7CisJCQkJCQlzZXAgPSAiLCAiOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCXNwcmludGYoc3RyLCAiICV1Iiwgaik7CisJCQkJCWN1bWxlbiArPSBzdHJsZW4oc3RyKTsKKwkJCQkJaWYgKGN1bWxlbiA8IHNpemVvZihvdXRzdHIpKQorCQkJCQkJc3RyY2F0KG91dHN0ciwgc3RyKTsKKwkJCQkJbmZkcy0tOworCQkJCX0KKwkJCX0KKwkJCWlmIChjdW1sZW4pCisJCQkJc3RyY2F0KG91dHN0ciwgIl0iKTsKKwkJCWlmIChuZmRzID09IDApCisJCQkJYnJlYWs7CisJCX0KKwkJZnJlZShmZHMpOworI2lmZGVmIExJTlVYCisJCS8qIFRoaXMgY29udGFpbnMgbm8gdXNlZnVsIGluZm9ybWF0aW9uIG9uIFN1bk9TLiAgKi8KKwkJaWYgKGFyZ3NbNF0pIHsKKwkJCWNoYXIgc3RyWzEyOF07CisKKwkJCXNwcmludGYoc3RyLCAiJXNsZWZ0ICIsIHNlcCk7CisJCQlzcHJpbnR0dih0Y3AsIGFyZ3NbNF0sIGJpdG5lc3MsIHN0ciArIHN0cmxlbihzdHIpKTsKKwkJCWlmICgoY3VtbGVuICs9IHN0cmxlbihzdHIpKSA8IHNpemVvZihvdXRzdHIpKQorCQkJCXN0cmNhdChvdXRzdHIsIHN0cik7CisJCX0KKyNlbmRpZiAvKiBMSU5VWCAqLworCQlyZXR1cm4gUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgTElOVVgKKworaW50CitzeXNfb2xkc2VsZWN0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlsb25nIGFyZ3NbNV07CisKKwlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIGFyZ3MsIChjaGFyICopIGFyZ3MpIDwgMCkgeworCQl0cHJpbnRmKCJbLi4uXSIpOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIGRlY29kZV9zZWxlY3QodGNwLCBhcmdzLCBCSVRORVNTX0NVUlJFTlQpOworfQorCisjaWZkZWYgQUxQSEEKK2ludAorc3lzX29zZl9zZWxlY3QodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWxvbmcgKmFyZ3MgPSB0Y3AtPnVfYXJnOworCXJldHVybiBkZWNvZGVfc2VsZWN0KHRjcCwgYXJncywgQklUTkVTU18zMik7Cit9CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCB4bGF0IGVwb2xsY3Rsc1tdID0geworI2lmZGVmIEVQT0xMX0NUTF9BREQKKwl7IEVQT0xMX0NUTF9BREQsCSJFUE9MTF9DVExfQUREIgl9LAorI2VuZGlmCisjaWZkZWYgRVBPTExfQ1RMX01PRAorCXsgRVBPTExfQ1RMX01PRCwJIkVQT0xMX0NUTF9NT0QiCX0sCisjZW5kaWYKKyNpZmRlZiBFUE9MTF9DVExfREVMCisJeyBFUE9MTF9DVExfREVMLAkiRVBPTExfQ1RMX0RFTCIJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQl9Cit9OworCitzdGF0aWMgc3RydWN0IHhsYXQgZXBvbGxldmVudHNbXSA9IHsKKyNpZmRlZiBFUE9MTElOCisJeyBFUE9MTElOLAkiRVBPTExJTiIJfSwKKyNlbmRpZgorI2lmZGVmIEVQT0xMUFJJCisJeyBFUE9MTFBSSSwJIkVQT0xMUFJJIgl9LAorI2VuZGlmCisjaWZkZWYgRVBPTExPVVQKKwl7IEVQT0xMT1VULAkiRVBPTExPVVQiCX0sCisjZW5kaWYKKyNpZmRlZiBFUE9MTFJETk9STQorCXsgRVBPTExSRE5PUk0sCSJFUE9MTFJETk9STSIJfSwKKyNlbmRpZgorI2lmZGVmIEVQT0xMUkRCQU5ECisJeyBFUE9MTFJEQkFORCwJIkVQT0xMUkRCQU5EIgl9LAorI2VuZGlmCisjaWZkZWYgRVBPTExXUk5PUk0KKwl7IEVQT0xMV1JOT1JNLAkiRVBPTExXUk5PUk0iCX0sCisjZW5kaWYKKyNpZmRlZiBFUE9MTFdSQkFORAorCXsgRVBPTExXUkJBTkQsCSJFUE9MTFdSQkFORCIJfSwKKyNlbmRpZgorI2lmZGVmIEVQT0xMTVNHCisJeyBFUE9MTE1TRywJIkVQT0xMTVNHIgl9LAorI2VuZGlmCisjaWZkZWYgRVBPTExFUlIKKwl7IEVQT0xMRVJSLAkiRVBPTExFUlIiCX0sCisjZW5kaWYKKyNpZmRlZiBFUE9MTEhVUAorCXsgRVBPTExIVVAsCSJFUE9MTEhVUCIJfSwKKyNlbmRpZgorI2lmZGVmIEVQT0xMT05FU0hPVAorCXsgRVBPTExPTkVTSE9ULAkiRVBPTExPTkVTSE9UIgl9LAorI2VuZGlmCisjaWZkZWYgRVBPTExFVAorCXsgRVBPTExFVCwJIkVQT0xMRVQiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9Cit9OworCitpbnQKK3N5c19lcG9sbF9jcmVhdGUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKQorCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIEhBVkVfU1lTX0VQT0xMX0gKK3N0YXRpYyB2b2lkCitwcmludF9lcG9sbF9ldmVudChldikKK3N0cnVjdCBlcG9sbF9ldmVudCAqZXY7Cit7CisJdHByaW50ZigieyIpOworCXByaW50ZmxhZ3MoZXBvbGxldmVudHMsIGV2LT5ldmVudHMsICJFUE9MTD8/PyIpOworCS8qIFdlIGNhbm5vdCBrbm93IHdoYXQgZm9ybWF0IHRoZSBwcm9ncmFtIHVzZXMsIHNvIHByaW50IHUzMiBhbmQgdTY0CisJICAgd2hpY2ggd2lsbCBjb3ZlciBldmVyeSB2YWx1ZS4gICovCisJdHByaW50ZigiLCB7dTMyPSUiIFBSSXUzMiAiLCB1NjQ9JSIgUFJJdTY0ICJ9fSIsCisJCWV2LT5kYXRhLnUzMiwgZXYtPmRhdGEudTY0KTsKK30KKyNlbmRpZgorCitpbnQKK3N5c19lcG9sbF9jdGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisgICAgICAgICAgICAgICAgcHJpbnR4dmFsKGVwb2xsY3RscywgdGNwLT51X2FyZ1sxXSwgIkVQT0xMX0NUTF8/Pz8iKTsKKwkJdHByaW50ZigiLCAlbGQsICIsIHRjcC0+dV9hcmdbMl0pOworCQlpZiAodGNwLT51X2FyZ1szXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIHsKKyNpZmRlZiBIQVZFX1NZU19FUE9MTF9ICisJCQlzdHJ1Y3QgZXBvbGxfZXZlbnQgZXY7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmZXYpID09IDApCisJCQkJcHJpbnRfZXBvbGxfZXZlbnQoJmV2KTsKKwkJCWVsc2UKKyNlbmRpZgorCQkJCXRwcmludGYoInsuLi59Iik7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2Vwb2xsX3dhaXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKQorCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCWVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiVseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlIGlmICh0Y3AtPnVfcnZhbCA9PSAwKQorCQkJdHByaW50Zigie30iKTsKKwkJZWxzZSB7CisjaWZkZWYgSEFWRV9TWVNfRVBPTExfSAorCQkJc3RydWN0IGVwb2xsX2V2ZW50IGV2LCAqc3RhcnQsICpjdXIsICplbmQ7CisJCQlpbnQgZmFpbGVkID0gMDsKKworCQkJdHByaW50ZigieyIpOworCQkJc3RhcnQgPSAoc3RydWN0IGVwb2xsX2V2ZW50ICopIHRjcC0+dV9hcmdbMV07CisJCQllbmQgPSBzdGFydCArIHRjcC0+dV9ydmFsOworCQkJZm9yIChjdXIgPSBzdGFydDsgY3VyIDwgZW5kOyArK2N1cikgeworCQkJCWlmIChjdXIgPiBzdGFydCkKKwkJCQkJdHByaW50ZigiLCAiKTsKKwkJCQlpZiAodW1vdmUodGNwLCAobG9uZykgY3VyLCAmZXYpID09IDApCisJCQkJCXByaW50X2Vwb2xsX2V2ZW50KCZldik7CisJCQkJZWxzZSB7CisJCQkJCXRwcmludGYoIj8iKTsKKwkJCQkJZmFpbGVkID0gMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJdHByaW50ZigifSIpOworCQkJaWYgKGZhaWxlZCkKKwkJCQl0cHJpbnRmKCIgJSNseCIsIChsb25nKSBzdGFydCk7CisjZWxzZQorCQkJdHByaW50Zigiey4uLn0iKTsKKyNlbmRpZgorCQl9CisJCXRwcmludGYoIiwgJWxkLCAlbGQiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2lvX3NldHVwKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwllbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIweCUwbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZSB7CisJCQl1bnNpZ25lZCBsb25nIHVzZXJfaWQ7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmdXNlcl9pZCkgPT0gMCkKKwkJCQl0cHJpbnRmKCJ7JWx1fSIsIHVzZXJfaWQpOworCQkJZWxzZQorCQkJCXRwcmludGYoInsuLi59Iik7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2lvX2Rlc3Ryb3kodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKQorCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfaW9fc3VibWl0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlsb25nIG5yOworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgJWxkLCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJbnIgPSB0Y3AtPnVfYXJnWzFdOworCQkvKiBhbmQgaWYgbnIgaXMgbmVnYXRpdmU/ICovCisJCWlmIChuciA9PSAwKQorCQkJdHByaW50Zigie30iKTsKKwkJZWxzZSB7CisjaWZkZWYgSEFWRV9MSUJBSU9fSAorCQkJbG9uZyBpOworCQkJc3RydWN0IGlvY2IgKmlvY2JwLCAqKmlvY2JzID0gKHZvaWQgKil0Y3AtPnVfYXJnWzJdOworCisJCQlmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKywgaW9jYnMrKykgeworCQkJCXN0cnVjdCBpb2NiIGlvY2I7CisJCQkJaWYgKGkgPT0gMCkKKwkJCQkJdHByaW50ZigieyIpOworCQkJCWVsc2UKKwkJCQkJdHByaW50ZigiLCAiKTsKKworCQkJCWlmICh1bW92ZSh0Y3AsICh1bnNpZ25lZCBsb25nKWlvY2JzLCAmaW9jYnApIHx8CisJCQkJICAgIHVtb3ZlKHRjcCwgKHVuc2lnbmVkIGxvbmcpaW9jYnAsICZpb2NiKSkgeworCQkJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQkJdHByaW50ZigieyVwLCAldSwgJWh1LCAlaHUsICVkfSIsCisJCQkJCWlvY2IuZGF0YSwgaW9jYi5rZXksCisJCQkJCWlvY2IuYWlvX2xpb19vcGNvZGUsCisJCQkJCWlvY2IuYWlvX3JlcXByaW8sIGlvY2IuYWlvX2ZpbGRlcyk7CisJCQl9CisJCQlpZiAoaSkKKwkJCQl0cHJpbnRmKCJ9Iik7CisjZWxzZQorCQkJdHByaW50Zigiey4uLn0iKTsKKyNlbmRpZgorCQl9CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19pb19jYW5jZWwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisjaWZkZWYgSEFWRV9MSUJBSU9fSAorCQlzdHJ1Y3QgaW9jYiBpb2NiOworI2VuZGlmCisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisjaWZkZWYgSEFWRV9MSUJBSU9fSAorCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmaW9jYikgPT0gMCkgeworCQkJdHByaW50ZigieyVwLCAldSwgJWh1LCAlaHUsICVkfSwgIiwKKwkJCQlpb2NiLmRhdGEsIGlvY2Iua2V5LAorCQkJCWlvY2IuYWlvX2xpb19vcGNvZGUsCisJCQkJaW9jYi5haW9fcmVxcHJpbywgaW9jYi5haW9fZmlsZGVzKTsKKwkJfSBlbHNlCisjZW5kaWYKKwkJCXRwcmludGYoInsuLi59LCAiKTsKKwl9IGVsc2UgeworCQlpZiAodGNwLT51X3J2YWwgPCAwKQorCQkJdHByaW50Zigiey4uLn0iKTsKKwkJZWxzZSB7CisjaWZkZWYgSEFWRV9MSUJBSU9fSAorCQkJc3RydWN0IGlvX2V2ZW50IGV2ZW50OworCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJmV2ZW50KSA9PSAwKQorCQkJCXRwcmludGYoInslcCwgJXAsICVsZCwgJWxkfSIsCisJCQkJCWV2ZW50LmRhdGEsIGV2ZW50Lm9iaiwKKwkJCQkJZXZlbnQucmVzLCBldmVudC5yZXMyKTsKKwkJCWVsc2UgCisjZW5kaWYKKwkJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQl9CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19pb19nZXRldmVudHModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgJWxkLCAlbGQsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0sCisJCQl0Y3AtPnVfYXJnWzJdKTsKKwl9IGVsc2UgeworCQlpZiAodGNwLT51X3J2YWwgPT0gMCkgeworCQkJdHByaW50Zigie30iKTsKKwkJfSBlbHNlICB7CisjaWZkZWYgSEFWRV9MSUJBSU9fSAorCQkJc3RydWN0IGlvX2V2ZW50ICpldmVudHMgPSAodm9pZCAqKXRjcC0+dV9hcmdbM107CisJCQlsb25nIGksIG5yID0gdGNwLT51X3J2YWw7CisKKwkJCWZvciAoaSA9IDA7IGkgPCBucjsgaSsrLCBldmVudHMrKykgeworCQkJCXN0cnVjdCBpb19ldmVudCBldmVudDsKKworCQkJCWlmIChpID09IDApCisJCQkJCXRwcmludGYoInsiKTsKKwkJCQllbHNlCisJCQkJCXRwcmludGYoIiwgIik7CisKKwkJCQlpZiAodW1vdmUodGNwLCAodW5zaWduZWQgbG9uZylldmVudHMsICZldmVudCkgIT0gMCkgeworCQkJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQkJdHByaW50ZigieyVwLCAlcCwgJWxkLCAlbGR9IiwgZXZlbnQuZGF0YSwKKwkJCQkJZXZlbnQub2JqLCBldmVudC5yZXMsIGV2ZW50LnJlczIpOworCQkJfQorCQkJdHByaW50ZigifSwgIik7CisjZWxzZQorCQkJCXRwcmludGYoInsuLi59Iik7CisjZW5kaWYKKwkJfQorCisJCWlmICh0Y3AtPnVfYXJnWzRdID09IDApCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UgeworCQkJc3RydWN0IHRpbWVzcGVjIHRvOworCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJnRvKSA9PSAwKQorCQkJCXRwcmludGYoInslbHUsICVsdX0iLCB0by50dl9zZWMsIHRvLnR2X25zZWMpOworCQkJZWxzZQorCQkJCXRwcmludGYoInsuLi59Iik7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTElOVVggKi8KKworaW50CitzeXNfc2VsZWN0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gZGVjb2RlX3NlbGVjdCh0Y3AsIHRjcC0+dV9hcmcsIEJJVE5FU1NfQ1VSUkVOVCk7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfcHNlbGVjdDYoc3RydWN0IHRjYiAqdGNwKQoreworCWludCByYyA9IGRlY29kZV9zZWxlY3QodGNwLCB0Y3AtPnVfYXJnLCBCSVRORVNTX0NVUlJFTlQpOworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJc3RydWN0IHsKKwkJCXZvaWQgKnNzOworCQkJdW5zaWduZWQgbG9uZyBsZW47CisJCX0gZGF0YTsKKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s1XSwgJmRhdGEpIDwgMCkKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbNV0pOworCQllbHNlIHsKKwkJCXRwcmludGYoIiwgeyIpOworCQkJaWYgKGRhdGEubGVuIDwgc2l6ZW9mKHNpZ3NldF90KSkKKwkJCQl0cHJpbnRmKCIlI2x4IiwgKGxvbmcpZGF0YS5zcyk7CisJCQllbHNlCisJCQkJcHJpbnRfc2lnc2V0KHRjcCwgKGxvbmcpZGF0YS5zcywgMCk7CisJCQl0cHJpbnRmKCIsICVsdX0iLCBkYXRhLmxlbik7CisJCX0KKwl9CisJcmV0dXJuIHJjOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9lcnJub2VudC5zaCBiL2Vycm5vZW50LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhOGZkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9lcnJub2VudC5zaApAQCAtMCwwICsxLDQyIEBACisjIS9iaW4vc2gKKyMgQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisjIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworIwkkSWQ6IGVycm5vZW50LnNoLHYgMS4xLjEuMSAxOTk5LzAyLzE5IDAwOjIyOjA5IHdpY2hlcnQgRXhwICQKKworYXdrICcKKy9eI2RlZmluZVsgCV0rRVtBLVowLTlfXStbIAldK1swLTldKy8geworCWVycm5vWyQzXSA9ICQyCisJaWYgKCQzID4gbWF4KQorCQltYXggPSAkMworfQorRU5EIHsKKwlmb3IgKGkgPSAwOyBpIDw9IG1heDsgaSsrKSB7CisJCWlmICghZXJybm9baV0pCisJCQllcnJub1tpXSA9ICJFUlJOT18iIGkKKwkJcHJpbnRmICJcdFwiJXNcIiwgLyogJWQgKi9cbiIsIGVycm5vW2ldLCBpCisJfQorfQorJyAkKgpkaWZmIC0tZ2l0IGEvZmlsZS5jIGIvZmlsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlZDhiZjgKLS0tIC9kZXYvbnVsbAorKysgYi9maWxlLmMKQEAgLTAsMCArMSwyODg2IEBACisvKgorI2lmZGVmIExJTlVYCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBmaWxlLmMsdiAxLjc1IDIwMDUvMDYvMDggMjA6NDU6Mjggcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKworI2luY2x1ZGUgPGRpcmVudC5oPgorI2lmIGRlZmluZWQoTElOVVgpCisjZGVmaW5lIGRpcmVudCBrZXJuZWxfZGlyZW50CisjaWZuZGVmIEhBVkVfQU5EUk9JRF9PUworI2RlZmluZSBkaXJlbnQ2NCBrZXJuZWxfZGlyZW50NjQKKyNlbmRpZgorI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworI2luY2x1ZGUgPGxpbnV4L2ZhZHZpc2UuaD4KKworLy8gQU5EUk9JRDogRnJvbSBrZXJuZWxfaGVhZGVycy9hc20vc3RhdGZzLmgKKworLyoKKyAqIFdpdGggRUFCSSB0aGVyZSBpcyA0IGJ5dGVzIG9mIHBhZGRpbmcgYWRkZWQgdG8gdGhpcyBzdHJ1Y3R1cmUuCisgKiBMZXQncyBwYWNrIGl0IHNvIHRoZSBwYWRkaW5nIGdvZXMgYXdheSB0byBzaW1wbGlmeSBkdWFsIEFCSSBzdXBwb3J0LgorICogTm90ZSB0aGF0IHVzZXIgc3BhY2UgZG9lcyBOT1QgaGF2ZSB0byBwYWNrIHRoaXMgc3RydWN0dXJlLgorICovCitzdHJ1Y3Qgc3RhdGZzNjQgeworICAgICAgICBfX3UzMiBmX3R5cGU7CisgICAgICAgIF9fdTMyIGZfYnNpemU7CisgICAgICAgIF9fdTY0IGZfYmxvY2tzOworICAgICAgICBfX3U2NCBmX2JmcmVlOworICAgICAgICBfX3U2NCBmX2JhdmFpbDsKKyAgICAgICAgX191NjQgZl9maWxlczsKKyAgICAgICAgX191NjQgZl9mZnJlZTsKKyAgICAgICAgX19rZXJuZWxfZnNpZF90IGZfZnNpZDsKKyAgICAgICAgX191MzIgZl9uYW1lbGVuOworICAgICAgICBfX3UzMiBmX2Zyc2l6ZTsKKyAgICAgICAgX191MzIgZl9zcGFyZVs1XTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCxhbGlnbmVkKDQpKSk7CisKKworCisKKyNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2RpcmVudC5oPgorI3VuZGVmIGRpcmVudAorI3VuZGVmIGRpcmVudDY0CisjZWxzZQorI2RlZmluZSBrZXJuZWxfZGlyZW50IGRpcmVudAorI2VuZGlmCisKKyNpZmRlZiBMSU5VWAorIyAgaWZkZWYgTElOVVhTUEFSQworc3RydWN0IHN0YXQgeworCXVuc2lnbmVkIHNob3J0CXN0X2RldjsKKwl1bnNpZ25lZCBpbnQJc3RfaW5vOworCXVuc2lnbmVkIHNob3J0CXN0X21vZGU7CisJc2hvcnQJCXN0X25saW5rOworCXVuc2lnbmVkIHNob3J0CXN0X3VpZDsKKwl1bnNpZ25lZCBzaG9ydAlzdF9naWQ7CisJdW5zaWduZWQgc2hvcnQJc3RfcmRldjsKKwl1bnNpZ25lZCBpbnQJc3Rfc2l6ZTsKKwlpbnQJCXN0X2F0aW1lOworCXVuc2lnbmVkIGludAlfX3VudXNlZDE7CisJaW50CQlzdF9tdGltZTsKKwl1bnNpZ25lZCBpbnQJX191bnVzZWQyOworCWludAkJc3RfY3RpbWU7CisJdW5zaWduZWQgaW50CV9fdW51c2VkMzsKKwlpbnQJCXN0X2Jsa3NpemU7CisJaW50CQlzdF9ibG9ja3M7CisJdW5zaWduZWQgaW50CV9fdW51c2VkNFsyXTsKK307CisjaWYgZGVmaW5lZChTUEFSQzY0KQorc3RydWN0IHN0YXRfc3BhcmM2NCB7CisJdW5zaWduZWQgaW50CXN0X2RldjsKKwl1bnNpZ25lZCBsb25nCXN0X2lubzsKKwl1bnNpZ25lZCBpbnQJc3RfbW9kZTsKKwl1bnNpZ25lZCBpbnQJc3Rfbmxpbms7CisJdW5zaWduZWQgaW50CXN0X3VpZDsKKwl1bnNpZ25lZCBpbnQJc3RfZ2lkOworCXVuc2lnbmVkIGludAlzdF9yZGV2OworCWxvbmcJCXN0X3NpemU7CisJbG9uZwkJc3RfYXRpbWU7CisJbG9uZwkJc3RfbXRpbWU7CisJbG9uZwkJc3RfY3RpbWU7CisJbG9uZwkJc3RfYmxrc2l6ZTsKKwlsb25nCQlzdF9ibG9ja3M7CisJdW5zaWduZWQgbG9uZwlfX3VudXNlZDRbMl07Cit9OworI2VuZGlmIC8qIFNQQVJDNjQgKi8KKyMgICAgZGVmaW5lIHN0YXQga2VybmVsX3N0YXQKKyMgICAgaW5jbHVkZSA8YXNtL3N0YXQuaD4KKyMgICAgdW5kZWYgc3RhdAorIyAgZWxzZQorIyAgICB1bmRlZiBkZXZfdAorIyAgICB1bmRlZiBpbm9fdAorIyAgICB1bmRlZiBtb2RlX3QKKyMgICAgdW5kZWYgbmxpbmtfdAorIyAgICB1bmRlZiB1aWRfdAorIyAgICB1bmRlZiBnaWRfdAorIyAgICB1bmRlZiBvZmZfdAorIyAgICB1bmRlZiBsb2ZmX3QKKworIyAgICBkZWZpbmUgZGV2X3QgX19rZXJuZWxfZGV2X3QKKyMgICAgZGVmaW5lIGlub190IF9fa2VybmVsX2lub190CisjICAgIGRlZmluZSBtb2RlX3QgX19rZXJuZWxfbW9kZV90CisjICAgIGRlZmluZSBubGlua190IF9fa2VybmVsX25saW5rX3QKKyMgICAgZGVmaW5lIHVpZF90IF9fa2VybmVsX3VpZF90CisjICAgIGRlZmluZSBnaWRfdCBfX2tlcm5lbF9naWRfdAorIyAgICBkZWZpbmUgb2ZmX3QgX19rZXJuZWxfb2ZmX3QKKyMgICAgZGVmaW5lIGxvZmZfdCBfX2tlcm5lbF9sb2ZmX3QKKworIyAgICBpbmNsdWRlIDxhc20vc3RhdC5oPgorCisjICAgIHVuZGVmIGRldl90CisjICAgIHVuZGVmIGlub190CisjICAgIHVuZGVmIG1vZGVfdAorIyAgICB1bmRlZiBubGlua190CisjICAgIHVuZGVmIHVpZF90CisjICAgIHVuZGVmIGdpZF90CisjICAgIHVuZGVmIG9mZl90CisjICAgIHVuZGVmIGxvZmZfdAorCisjICAgIGRlZmluZSBkZXZfdCBkZXZfdAorIyAgICBkZWZpbmUgaW5vX3QgaW5vX3QKKyMgICAgZGVmaW5lIG1vZGVfdCBtb2RlX3QKKyMgICAgZGVmaW5lIG5saW5rX3QgbmxpbmtfdAorIyAgICBkZWZpbmUgdWlkX3QgdWlkX3QKKyMgICAgZGVmaW5lIGdpZF90IGdpZF90CisjICAgIGRlZmluZSBvZmZfdCBvZmZfdAorIyAgICBkZWZpbmUgbG9mZl90IGxvZmZfdAorIyAgZW5kaWYKKyMgIGlmZGVmIEhQUEEJLyogYXNtLXBhcmlzYy9zdGF0LmggZGVmaW5lcyBzdGF0NjQgKi8KKyMgICAgdW5kZWYgc3RhdDY0CisjICBlbmRpZgorIyAgZGVmaW5lIHN0YXQgbGliY19zdGF0CisjICBkZWZpbmUgc3RhdDY0IGxpYmNfc3RhdDY0CisjICBpbmNsdWRlIDxzeXMvc3RhdC5oPgorIyAgdW5kZWYgc3RhdAorIyAgdW5kZWYgc3RhdDY0CisgICAvKiBUaGVzZSBtaWdodCBiZSBtYWNyb3MuICovCisjICB1bmRlZiBzdF9hdGltZQorIyAgdW5kZWYgc3RfbXRpbWUKKyMgIHVuZGVmIHN0X2N0aW1lCisjICBpZmRlZiBIUFBBCisjICAgIGRlZmluZSBzdGF0NjQgaHB1eF9zdGF0NjQKKyMgIGVuZGlmCisjZWxzZQorIyAgaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8ZmNudGwuaD4KKworI2lmZGVmIFNWUjQKKyMgIGluY2x1ZGUgPHN5cy9jcmVkLmg+CisjZW5kaWYgLyogU1ZSNCAqLworCisjaWZkZWYgSEFWRV9TWVNfVkZTX0gKKyNpbmNsdWRlIDxzeXMvdmZzLmg+CisjZW5kaWYKKworI2lmZGVmIEhBVkVfTElOVVhfWEFUVFJfSAorI2luY2x1ZGUgPGxpbnV4L3hhdHRyLmg+CisjZWxpZiBkZWZpbmVkIGxpbnV4CisjZGVmaW5lIFhBVFRSX0NSRUFURSAxCisjZGVmaW5lIFhBVFRSX1JFUExBQ0UgMgorI2VuZGlmCisKKyNpZmRlZiBGUkVFQlNECisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lzL21vdW50Lmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNlbmRpZgorCisjaWYgX0xGUzY0X0xBUkdFRklMRSAmJiAoZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChTVlI0KSkKKyMgaWZkZWYgSEFWRV9JTlRUWVBFU19ICisjICBpbmNsdWRlIDxpbnR0eXBlcy5oPgorIyBlbHNlCisjICBkZWZpbmUgUFJJZDY0ICJsbGQiCisjICBkZWZpbmUgUFJJdTY0ICJsbHUiCisjIGVuZGlmCisjZW5kaWYKKworI2lmIEhBVkVfTE9OR19MT05HX09GRl9UCisvKgorICogVWdseSBoYWNrcyBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgdHlwZWRlZiBsb25nIGxvbmcgb2ZmX3QKKyAqLworCisjZGVmaW5lIHN0YXQ2NCBzdGF0CisjZGVmaW5lIEhBVkVfU1RBVDY0IDEJLyogVWdseSBoYWNrICovCisKKyNkZWZpbmUJc3lzX3N0YXQ2NAlzeXNfc3RhdAorI2RlZmluZSBzeXNfZnN0YXQ2NAlzeXNfZnN0YXQKKyNkZWZpbmUgc3lzX2xzdGF0NjQJc3lzX2xzdGF0CisjZGVmaW5lIHN5c19sc2VlazY0CXN5c19sc2VlaworI2RlZmluZSBzeXNfdHJ1bmNhdGU2NAlzeXNfdHJ1bmNhdGUKKyNkZWZpbmUgc3lzX2Z0cnVuY2F0ZTY0CXN5c19mdHJ1bmNhdGUKKyNlbmRpZgorCisjaWZkZWYgTUFKT1JfSU5fU1lTTUFDUk9TCisjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgorI2VuZGlmCisKKyNpZmRlZiBNQUpPUl9JTl9NS0RFVgorI2luY2x1ZGUgPHN5cy9ta2Rldi5oPgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1NZU19BU1lOQ0hfSAorI2luY2x1ZGUgPHN5cy9hc3luY2guaD4KKyNlbmRpZgorCisjaWZkZWYgU1VOT1M0CisjaW5jbHVkZSA8dXN0YXQuaD4KKyNlbmRpZgorCitjb25zdCBzdHJ1Y3QgeGxhdCBvcGVuX2FjY2Vzc19tb2Rlc1tdID0geworCXsgT19SRE9OTFksCSJPX1JET05MWSIJfSwKKwl7IE9fV1JPTkxZLAkiT19XUk9OTFkiCX0sCisJeyBPX1JEV1IsCSJPX1JEV1IiCX0sCisjaWZkZWYgT19BQ0NNT0RFCisJeyBPX0FDQ01PREUsCSJPX0FDQ01PREUiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworY29uc3Qgc3RydWN0IHhsYXQgb3Blbl9tb2RlX2ZsYWdzW10gPSB7CisJeyBPX0NSRUFULAkiT19DUkVBVCIJfSwKKwl7IE9fRVhDTCwJIk9fRVhDTCIJfSwKKwl7IE9fTk9DVFRZLAkiT19OT0NUVFkiCX0sCisJeyBPX1RSVU5DLAkiT19UUlVOQyIJfSwKKwl7IE9fQVBQRU5ELAkiT19BUFBFTkQiCX0sCisJeyBPX05PTkJMT0NLLAkiT19OT05CTE9DSyIJfSwKKyNpZmRlZiBPX1NZTkMKKwl7IE9fU1lOQywJIk9fU1lOQyIJfSwKKyNlbmRpZgorI2lmZGVmIE9fQVNZTkMKKwl7IE9fQVNZTkMsCSJPX0FTWU5DIgl9LAorI2VuZGlmCisjaWZkZWYgT19EU1lOQworCXsgT19EU1lOQywJIk9fRFNZTkMiCX0sCisjZW5kaWYKKyNpZmRlZiBPX1JTWU5DCisJeyBPX1JTWU5DLAkiT19SU1lOQyIJfSwKKyNlbmRpZgorI2lmZGVmIE9fTkRFTEFZCisJeyBPX05ERUxBWSwJIk9fTkRFTEFZIgl9LAorI2VuZGlmCisjaWZkZWYgT19QUklWCisJeyBPX1BSSVYsCSJPX1BSSVYiCX0sCisjZW5kaWYKKyNpZmRlZiBPX0RJUkVDVAorCXsgT19ESVJFQ1QsCSJPX0RJUkVDVCIJfSwKKyNlbmRpZgorI2lmZGVmIE9fTEFSR0VGSUxFCisjIGlmIE9fTEFSR0VGSUxFID09IDAJCS8qIGJpYXJjaCBwbGF0Zm9ybXMgaW4gNjQtYml0IG1vZGUgKi8KKyMgIHVuZGVmIE9fTEFSR0VGSUxFCisjICBpZmRlZiBTUEFSQzY0CisjICAgZGVmaW5lIE9fTEFSR0VGSUxFCTB4NDAwMDAKKyMgIGVsaWYgZGVmaW5lZCBYODZfNjQgfHwgZGVmaW5lZCBTMzkwWAorIyAgIGRlZmluZSBPX0xBUkdFRklMRQkwMTAwMDAwCisjICBlbmRpZgorIyBlbmRpZgorIyBpZmRlZiBPX0xBUkdFRklMRQorCXsgT19MQVJHRUZJTEUsCSJPX0xBUkdFRklMRSIgICB9LAorIyBlbmRpZgorI2VuZGlmCisjaWZkZWYgT19ESVJFQ1RPUlkKKwl7IE9fRElSRUNUT1JZLAkiT19ESVJFQ1RPUlkiICAgfSwKKyNlbmRpZgorI2lmZGVmIE9fTk9GT0xMT1cKKwl7IE9fTk9GT0xMT1csIAkiT19OT0ZPTExPVyIJfSwKKyNlbmRpZgorI2lmZGVmIE9fTk9BVElNRQorCXsgT19OT0FUSU1FLCAJIk9fTk9BVElNRSIJfSwKKyNlbmRpZgorI2lmZGVmIE9fQ0xPRVhFQworCXsgT19DTE9FWEVDLAkiT19DTE9FWEVDIgl9LAorI2VuZGlmCisKKyNpZmRlZiBGTkRFTEFZCisJeyBGTkRFTEFZLAkiRk5ERUxBWSIJfSwKKyNlbmRpZgorI2lmZGVmIEZBUFBFTkQKKwl7IEZBUFBFTkQsCSJGQVBQRU5EIgl9LAorI2VuZGlmCisjaWZkZWYgRk1BUksKKwl7IEZNQVJLLAkiRk1BUksiCQl9LAorI2VuZGlmCisjaWZkZWYgRkRFRkVSCisJeyBGREVGRVIsCSJGREVGRVIiCX0sCisjZW5kaWYKKyNpZmRlZiBGQVNZTkMKKwl7IEZBU1lOQywJIkZBU1lOQyIJfSwKKyNlbmRpZgorI2lmZGVmIEZTSExPQ0sKKwl7IEZTSExPQ0ssCSJGU0hMT0NLIgl9LAorI2VuZGlmCisjaWZkZWYgRkVYTE9DSworCXsgRkVYTE9DSywJIkZFWExPQ0siCX0sCisjZW5kaWYKKyNpZmRlZiBGQ1JFQVQKKwl7IEZDUkVBVCwJIkZDUkVBVCIJfSwKKyNlbmRpZgorI2lmZGVmIEZUUlVOQworCXsgRlRSVU5DLAkiRlRSVU5DIgl9LAorI2VuZGlmCisjaWZkZWYgRkVYQ0wKKwl7IEZFWENMLAkiRkVYQ0wiCQl9LAorI2VuZGlmCisjaWZkZWYgRk5CSU8KKwl7IEZOQklPLAkiRk5CSU8iCQl9LAorI2VuZGlmCisjaWZkZWYgRlNZTkMKKwl7IEZTWU5DLAkiRlNZTkMiCQl9LAorI2VuZGlmCisjaWZkZWYgRk5PQ1RUWQorCXsgRk5PQ1RUWSwJIkZOT0NUVFkiCX0sCisjZW5kaWYKKyNpZmRlZiBPX1NITE9DSworCXsgT19TSExPQ0ssCSJPX1NITE9DSyIJfSwKKyNlbmRpZgorI2lmZGVmIE9fRVhMT0NLCisJeyBPX0VYTE9DSywJIk9fRVhMT0NLIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKKyNpZmRlZiBMSU5VWAorCisjaWZuZGVmIEFUX0ZEQ1dECisjIGRlZmluZSBBVF9GRENXRCAgICAgICAgICAgICAgICAtMTAwCisjZW5kaWYKKworc3RhdGljIHZvaWQKK3ByaW50X2RpcmZkKGxvbmcgZmQpCit7CisJaWYgKGZkID09IEFUX0ZEQ1dEKQorCQl0cHJpbnRmKCJBVF9GRENXRCwgIik7CisJZWxzZQorCQl0cHJpbnRmKCIlbGQsICIsIGZkKTsKK30KKyNlbmRpZgorCisvKgorICogbG93IGJpdHMgb2YgdGhlIG9wZW4oMikgZmxhZ3MgZGVmaW5lIGFjY2VzcyBtb2RlLAorICogb3RoZXIgYml0cyBhcmUgcmVhbCBmbGFncy4KKyAqLwordm9pZAordHByaW50X29wZW5fbW9kZXMoc3RydWN0IHRjYiAqdGNwLCBtb2RlX3QgZmxhZ3MpCit7CisJY29uc3QgY2hhciAqc3RyID0geGxvb2t1cChvcGVuX2FjY2Vzc19tb2RlcywgZmxhZ3MgJiAzKTsKKworCWlmIChzdHIpCisJeworCQl0cHJpbnRmKCIlcyIsIHN0cik7CisJCWZsYWdzICY9IH4zOworCQlpZiAoIWZsYWdzKQorCQkJcmV0dXJuOworCQl0cHJpbnRmKCJ8Iik7CisJfQorCXByaW50ZmxhZ3Mob3Blbl9tb2RlX2ZsYWdzLCBmbGFncywgIk9fPz8/Iik7Cit9CisKK3N0YXRpYyBpbnQKK2RlY29kZV9vcGVuKHN0cnVjdCB0Y2IgKnRjcCwgaW50IG9mZnNldCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnW29mZnNldF0pOworCQl0cHJpbnRmKCIsICIpOworCQkvKiBmbGFncyAqLworCQl0cHJpbnRfb3Blbl9tb2Rlcyh0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMV0pOworCQlpZiAodGNwLT51X2FyZ1tvZmZzZXQgKyAxXSAmIE9fQ1JFQVQpIHsKKwkJCS8qIG1vZGUgKi8KKwkJCXRwcmludGYoIiwgJSNsbyIsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMl0pOworCQl9CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19vcGVuKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZGVjb2RlX29wZW4odGNwLCAwKTsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19vcGVuYXQoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlwcmludF9kaXJmZCh0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gZGVjb2RlX29wZW4odGNwLCAxKTsKK30KKyNlbmRpZgorCisjaWZkZWYgTElOVVhTUEFSQworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG9wZW5tb2Rlc3NvbFtdID0geworCXsgMCwJCSJPX1JEV1IiCX0sCisJeyAxLAkJIk9fUkRPTkxZIgl9LAorCXsgMiwJCSJPX1dST05MWSIJfSwKKwl7IDB4ODAsCQkiT19OT05CTE9DSyIJfSwKKwl7IDgsCQkiT19BUFBFTkQiCX0sCisJeyAweDEwMCwJIk9fQ1JFQVQiCX0sCisJeyAweDIwMCwJIk9fVFJVTkMiCX0sCisJeyAweDQwMCwJIk9fRVhDTCIJfSwKKwl7IDB4ODAwLAkiT19OT0NUVFkiCX0sCisJeyAweDEwLAkJIk9fU1lOQyIJfSwKKwl7IDB4NDAsCQkiT19EU1lOQyIJfSwKKwl7IDB4ODAwMCwJIk9fUlNZTkMiCX0sCisJeyA0LAkJIk9fTkRFTEFZIgl9LAorCXsgMHgxMDAwLAkiT19QUklWIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitpbnQKK3NvbGFyaXNfb3Blbih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCS8qIGZsYWdzICovCisJCXByaW50ZmxhZ3Mob3Blbm1vZGVzc29sLCB0Y3AtPnVfYXJnWzFdICsgMSwgIk9fPz8/Iik7CisJCWlmICh0Y3AtPnVfYXJnWzFdICYgMHgxMDApIHsKKwkJCS8qIG1vZGUgKi8KKwkJCXRwcmludGYoIiwgJSNsbyIsIHRjcC0+dV9hcmdbMl0pOworCQl9CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYKKworaW50CitzeXNfY3JlYXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICUjbG8iLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhY2Nlc3NfZmxhZ3NbXSA9IHsKKwl7IEZfT0ssCQkiRl9PSyIsCQl9LAorCXsgUl9PSywJCSJSX09LIgkJfSwKKwl7IFdfT0ssCQkiV19PSyIJCX0sCisJeyBYX09LLAkJIlhfT0siCQl9LAorI2lmZGVmIEVGRl9PTkxZX09LCisJeyBFRkZfT05MWV9PSywJIkVGRl9PTkxZX09LIgl9LAorI2VuZGlmCisjaWZkZWYgRVhfT0sKKwl7IEVYX09LLAkiRVhfT0siCQl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBpbnQKK2RlY29kZV9hY2Nlc3Moc3RydWN0IHRjYiAqdGNwLCBpbnQgb2Zmc2V0KQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0XSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MoYWNjZXNzX2ZsYWdzLCB0Y3AtPnVfYXJnW29mZnNldCArIDFdLCAiP19PSyIpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfYWNjZXNzKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZGVjb2RlX2FjY2Vzcyh0Y3AsIDApOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX2ZhY2Nlc3NhdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXByaW50X2RpcmZkKHRjcC0+dV9hcmdbMF0pOworCXJldHVybiBkZWNvZGVfYWNjZXNzKHRjcCwgMSk7Cit9CisjZW5kaWYKKworaW50CitzeXNfdW1hc2sodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiUjbG8iLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIFJWQUxfT0NUQUw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB3aGVuY2VbXSA9IHsKKwl7IFNFRUtfU0VULAkiU0VFS19TRVQiCX0sCisJeyBTRUVLX0NVUiwJIlNFRUtfQ1VSIgl9LAorCXsgU0VFS19FTkQsCSJTRUVLX0VORCIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworI2lmbmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVAoraW50CitzeXNfbHNlZWsodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCW9mZl90IG9mZnNldDsKKwlpbnQgX3doZW5jZTsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCW9mZnNldCA9IHRjcC0+dV9hcmdbMV07CisJCV93aGVuY2UgPSB0Y3AtPnVfYXJnWzJdOworCQlpZiAoX3doZW5jZSA9PSBTRUVLX1NFVCkKKwkJCXRwcmludGYoIiVsdSwgIiwgb2Zmc2V0KTsKKwkJZWxzZQorCQkJdHByaW50ZigiJWxkLCAiLCBvZmZzZXQpOworCQlwcmludHh2YWwod2hlbmNlLCBfd2hlbmNlLCAiU0VFS18/Pz8iKTsKKwl9CisJcmV0dXJuIFJWQUxfVURFQ0lNQUw7Cit9CisjZW5kaWYKKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19sbHNlZWsgKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCS8qCisJICogVGhpcyBvbmUgY2FsbCB0YWtlcyBleHBsaWNpdGx5IHR3byAzMi1iaXQgYXJndW1lbnRzIGhpLCBsbywKKwkgKiByYXRoZXIgdGhhbiBvbmUgNjQtYml0IGFyZ3VtZW50IGZvciB3aGljaCBMT05HX0xPTkcgd29ya3MKKwkgKiBhcHByb3ByaWF0ZSBmb3IgdGhlIG5hdGl2ZSBieXRlIG9yZGVyLgorCSAqLworCWlmICh0Y3AtPnVfYXJnWzRdID09IFNFRUtfU0VUKQorCSAgICB0cHJpbnRmKCIlbGQsICVsbHUsICIsIHRjcC0+dV9hcmdbMF0sCisJCSAgICAoKChsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdKSA8PCAzMgorCQkgICAgIHwgKHVuc2lnbmVkIGxvbmcgbG9uZykgKHVuc2lnbmVkKSB0Y3AtPnVfYXJnWzJdKSk7CisJZWxzZQorCSAgICB0cHJpbnRmKCIlbGQsICVsbGQsICIsIHRjcC0+dV9hcmdbMF0sCisJCSAgICAoKChsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdKSA8PCAzMgorCQkgICAgIHwgKHVuc2lnbmVkIGxvbmcgbG9uZykgKHVuc2lnbmVkKSB0Y3AtPnVfYXJnWzJdKSk7CisgICAgfQorICAgIGVsc2UgeworCWxvbmcgbG9uZyBpbnQgb2ZmOworCWlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJm9mZikgPCAwKQorCSAgICB0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzNdKTsKKwllbHNlCisJICAgIHRwcmludGYoIlslbGx1XSwgIiwgb2ZmKTsKKwlwcmludHh2YWwod2hlbmNlLCB0Y3AtPnVfYXJnWzRdLCAiU0VFS18/Pz8iKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3JlYWRhaGVhZCAodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJdHByaW50ZigiJWxkLCAlbGxkLCAlbGQiLCB0Y3AtPnVfYXJnWzBdLAorIyBpZiBkZWZpbmVkIElBNjQgfHwgZGVmaW5lZCBYODZfNjQgfHwgZGVmaW5lZCBBTFBIQQorCQkobG9uZyBsb25nIGludCkgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXQorIyBlbHNlCisJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKSwgdGNwLT51X2FyZ1szXQorIyBlbmRpZgorCQkpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWYgX0xGUzY0X0xBUkdFRklMRSB8fCBIQVZFX0xPTkdfTE9OR19PRkZfVAoraW50CitzeXNfbHNlZWs2NCAodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWxvbmcgbG9uZyBvZmZzZXQ7CisJCUFMSUdONjQgKHRjcCwgMSk7CS8qIEZyZWVCU0QgYWxpZ25zIG9mZl90IGFyZ3MgKi8KKwkJb2Zmc2V0ID0gTE9OR19MT05HKHRjcC0+dV9hcmcgWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJaWYgKHRjcC0+dV9hcmdbM10gPT0gU0VFS19TRVQpCisJCQl0cHJpbnRmKCIlbGQsICVsbHUsICIsIHRjcC0+dV9hcmdbMF0sIG9mZnNldCk7CisJCWVsc2UKKwkJCXRwcmludGYoIiVsZCwgJWxsZCwgIiwgdGNwLT51X2FyZ1swXSwgb2Zmc2V0KTsKKwkJcHJpbnR4dmFsKHdoZW5jZSwgdGNwLT51X2FyZ1szXSwgIlNFRUtfPz8/Iik7CisJfQorCXJldHVybiBSVkFMX0xVREVDSU1BTDsKK30KKyNlbmRpZgorCisjaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCitpbnQKK3N5c190cnVuY2F0ZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCitpbnQKK3N5c190cnVuY2F0ZTY0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlBTElHTjY0ICh0Y3AsIDEpOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAlbGx1IiwgTE9OR19MT05HKHRjcC0+dV9hcmdbMV0sdGNwLT51X2FyZ1syXSkpOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCitpbnQKK3N5c19mdHJ1bmNhdGUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgJWx1IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCitpbnQKK3N5c19mdHJ1bmNhdGU2NCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJQUxJR042NCAodGNwLCAxKTsKKwkJdHByaW50ZigiJWxkLCAlbGx1IiwgdGNwLT51X2FyZ1swXSwKKwkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzFdICx0Y3AtPnVfYXJnWzJdKSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKy8qIHNldmVyYWwgc3RhdHMgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1vZGV0eXBlc1tdID0geworCXsgU19JRlJFRywJIlNfSUZSRUciCX0sCisJeyBTX0lGU09DSywJIlNfSUZTT0NLIgl9LAorCXsgU19JRklGTywJIlNfSUZJRk8iCX0sCisJeyBTX0lGTE5LLAkiU19JRkxOSyIJfSwKKwl7IFNfSUZESVIsCSJTX0lGRElSIgl9LAorCXsgU19JRkJMSywJIlNfSUZCTEsiCX0sCisJeyBTX0lGQ0hSLAkiU19JRkNIUiIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKgorc3ByaW50bW9kZShtb2RlKQoraW50IG1vZGU7Cit7CisJc3RhdGljIGNoYXIgYnVmWzY0XTsKKwljb25zdCBjaGFyICpzOworCisJaWYgKChtb2RlICYgU19JRk1UKSA9PSAwKQorCQlzID0gIiI7CisJZWxzZSBpZiAoKHMgPSB4bG9va3VwKG1vZGV0eXBlcywgbW9kZSAmIFNfSUZNVCkpID09IE5VTEwpIHsKKwkJc3ByaW50ZihidWYsICIlI28iLCBtb2RlKTsKKwkJcmV0dXJuIGJ1ZjsKKwl9CisJc3ByaW50ZihidWYsICIlcyVzJXMlcyIsIHMsCisJCShtb2RlICYgU19JU1VJRCkgPyAifFNfSVNVSUQiIDogIiIsCisJCShtb2RlICYgU19JU0dJRCkgPyAifFNfSVNHSUQiIDogIiIsCisJCShtb2RlICYgU19JU1ZUWCkgPyAifFNfSVNWVFgiIDogIiIpOworCW1vZGUgJj0gfihTX0lGTVR8U19JU1VJRHxTX0lTR0lEfFNfSVNWVFgpOworCWlmIChtb2RlKQorCQlzcHJpbnRmKGJ1ZiArIHN0cmxlbihidWYpLCAifCUjbyIsIG1vZGUpOworCXMgPSAoKmJ1ZiA9PSAnfCcpID8gYnVmICsgMSA6IGJ1ZjsKKwlyZXR1cm4gKnMgPyBzIDogIjAiOworfQorCitzdGF0aWMgY2hhciAqCitzcHJpbnR0aW1lKHQpCit0aW1lX3QgdDsKK3sKKwlzdHJ1Y3QgdG0gKnRtcDsKKwlzdGF0aWMgY2hhciBidWZbMzJdOworCisJaWYgKHQgPT0gMCkgeworCQlzcHJpbnRmKGJ1ZiwgIjAiKTsKKwkJcmV0dXJuIGJ1ZjsKKwl9CisJdG1wID0gbG9jYWx0aW1lKCZ0KTsKKwlzcHJpbnRmKGJ1ZiwgIiUwMmQvJTAyZC8lMDJkLSUwMmQ6JTAyZDolMDJkIiwKKwkJdG1wLT50bV95ZWFyICsgMTkwMCwgdG1wLT50bV9tb24gKyAxLCB0bXAtPnRtX21kYXksCisJCXRtcC0+dG1faG91ciwgdG1wLT50bV9taW4sIHRtcC0+dG1fc2VjKTsKKwlyZXR1cm4gYnVmOworfQorCisjaWZkZWYgTElOVVhTUEFSQwordHlwZWRlZiBzdHJ1Y3QgeworICAgICAgICBpbnQgICAgIHR2X3NlYzsKKyAgICAgICAgaW50ICAgICB0dl9uc2VjOworfSB0aW1lc3RydWN0X3Q7CisKK3N0cnVjdCBzb2xzdGF0IHsKKyAgICAgICAgdW5zaWduZWQgICAgICAgIHN0X2RldjsKKyAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3BhZDFbM107ICAgICAvKiBuZXR3b3JrIGlkICovCisgICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9pbm87CisgICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9tb2RlOworICAgICAgICB1bnNpZ25lZCAgICAgICAgc3Rfbmxpbms7CisgICAgICAgIHVuc2lnbmVkICAgICAgICBzdF91aWQ7CisgICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9naWQ7CisgICAgICAgIHVuc2lnbmVkICAgICAgICBzdF9yZGV2OworICAgICAgICBpbnQgICAgICAgICAgICAgc3RfcGFkMlsyXTsKKyAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3NpemU7CisgICAgICAgIGludCAgICAgICAgICAgICBzdF9wYWQzOyAgICAgICAgLyogc3Rfc2l6ZSwgb2ZmX3QgZXhwYW5zaW9uICovCisgICAgICAgIHRpbWVzdHJ1Y3RfdCAgICBzdF9hdGltZTsKKyAgICAgICAgdGltZXN0cnVjdF90ICAgIHN0X210aW1lOworICAgICAgICB0aW1lc3RydWN0X3QgICAgc3RfY3RpbWU7CisgICAgICAgIGludCAgICAgICAgICAgICBzdF9ibGtzaXplOworICAgICAgICBpbnQgICAgICAgICAgICAgc3RfYmxvY2tzOworICAgICAgICBjaGFyICAgICAgICAgICAgc3RfZnN0eXBlWzE2XTsKKyAgICAgICAgaW50ICAgICAgICAgICAgIHN0X3BhZDRbOF07ICAgICAvKiBleHBhbnNpb24gYXJlYSAqLworfTsKKworc3RhdGljIHZvaWQKK3ByaW50c3RhdHNvbCh0Y3AsIGFkZHIpCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7Cit7CisJc3RydWN0IHNvbHN0YXQgc3RhdGJ1ZjsKKworCWlmICghYWRkcikgeworCQl0cHJpbnRmKCJOVUxMIik7CisJCXJldHVybjsKKwl9CisJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCXJldHVybjsKKwl9CisJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgeworCQl0cHJpbnRmKCJ7Li4ufSIpOworCQlyZXR1cm47CisJfQorCWlmICghYWJicmV2KHRjcCkpIHsKKwkJdHByaW50Zigie3N0X2Rldj1tYWtlZGV2KCVsdSwgJWx1KSwgc3RfaW5vPSVsdSwgc3RfbW9kZT0lcywgIiwKKwkJCSh1bnNpZ25lZCBsb25nKSAoKHN0YXRidWYuc3RfZGV2ID4+IDE4KSAmIDB4M2ZmZiksCisJCQkodW5zaWduZWQgbG9uZykgKHN0YXRidWYuc3RfZGV2ICYgMHgzZmZmZiksCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9pbm8sCisJCQlzcHJpbnRtb2RlKHN0YXRidWYuc3RfbW9kZSkpOworCQl0cHJpbnRmKCJzdF9ubGluaz0lbHUsIHN0X3VpZD0lbHUsIHN0X2dpZD0lbHUsICIsCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ubGluaywKKwkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X3VpZCwKKwkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X2dpZCk7CisJCXRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibGtzaXplKTsKKwkJdHByaW50Zigic3RfYmxvY2tzPSVsdSwgIiwgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfYmxvY2tzKTsKKwl9CisJZWxzZQorCQl0cHJpbnRmKCJ7c3RfbW9kZT0lcywgIiwgc3ByaW50bW9kZShzdGF0YnVmLnN0X21vZGUpKTsKKwlzd2l0Y2ggKHN0YXRidWYuc3RfbW9kZSAmIFNfSUZNVCkgeworCWNhc2UgU19JRkNIUjogY2FzZSBTX0lGQkxLOgorCQl0cHJpbnRmKCJzdF9yZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCAiLAorCQkJKHVuc2lnbmVkIGxvbmcpICgoc3RhdGJ1Zi5zdF9yZGV2ID4+IDE4KSAmIDB4M2ZmZiksCisJCQkodW5zaWduZWQgbG9uZykgKHN0YXRidWYuc3RfcmRldiAmIDB4M2ZmZmYpKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJdHByaW50Zigic3Rfc2l6ZT0ldSwgIiwgc3RhdGJ1Zi5zdF9zaXplKTsKKwkJYnJlYWs7CisJfQorCWlmICghYWJicmV2KHRjcCkpIHsKKwkJdHByaW50Zigic3RfYXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9hdGltZSkpOworCQl0cHJpbnRmKCJzdF9tdGltZT0lcywgIiwgc3ByaW50dGltZShzdGF0YnVmLnN0X210aW1lKSk7CisJCXRwcmludGYoInN0X2N0aW1lPSVzfSIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOworCX0KKwllbHNlCisJCXRwcmludGYoIi4uLn0iKTsKK30KKworI2lmIGRlZmluZWQgKFNQQVJDNjQpCitzdGF0aWMgdm9pZAorcHJpbnRzdGF0X3NwYXJjNjQodGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworCXN0cnVjdCBzdGF0X3NwYXJjNjQgc3RhdGJ1ZjsKKworCWlmICghYWRkcikgeworCQl0cHJpbnRmKCJOVUxMIik7CisJCXJldHVybjsKKwl9CisJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCXJldHVybjsKKwl9CisJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgeworCQl0cHJpbnRmKCJ7Li4ufSIpOworCQlyZXR1cm47CisJfQorCisJaWYgKCFhYmJyZXYodGNwKSkgeworCQl0cHJpbnRmKCJ7c3RfZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCBzdF9pbm89JWx1LCBzdF9tb2RlPSVzLCAiLAorCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYuc3RfZGV2KSwKKwkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLnN0X2RldiksCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9pbm8sCisJCQlzcHJpbnRtb2RlKHN0YXRidWYuc3RfbW9kZSkpOworCQl0cHJpbnRmKCJzdF9ubGluaz0lbHUsIHN0X3VpZD0lbHUsIHN0X2dpZD0lbHUsICIsCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ubGluaywKKwkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X3VpZCwKKwkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X2dpZCk7CisJCXRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLAorCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfYmxrc2l6ZSk7CisJCXRwcmludGYoInN0X2Jsb2Nrcz0lbHUsICIsCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibG9ja3MpOworCX0KKwllbHNlCisJCXRwcmludGYoIntzdF9tb2RlPSVzLCAiLCBzcHJpbnRtb2RlKHN0YXRidWYuc3RfbW9kZSkpOworCXN3aXRjaCAoc3RhdGJ1Zi5zdF9tb2RlICYgU19JRk1UKSB7CisJY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6CisJCXRwcmludGYoInN0X3JkZXY9bWFrZWRldiglbHUsICVsdSksICIsCisJCQkodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi5zdF9yZGV2KSwKKwkJCSh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLnN0X3JkZXYpKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJdHByaW50Zigic3Rfc2l6ZT0lbHUsICIsIHN0YXRidWYuc3Rfc2l6ZSk7CisJCWJyZWFrOworCX0KKwlpZiAoIWFiYnJldih0Y3ApKSB7CisJCXRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfYXRpbWUpKTsKKwkJdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9tdGltZSkpOworCQl0cHJpbnRmKCJzdF9jdGltZT0lcyIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOworCQl0cHJpbnRmKCJ9Iik7CisJfQorCWVsc2UKKwkJdHByaW50ZigiLi4ufSIpOworfQorI2VuZGlmIC8qIFNQQVJDNjQgKi8KKyNlbmRpZiAvKiBMSU5VWFNQQVJDICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmaWxlZmxhZ3NbXSA9IHsKKyNpZmRlZiBGUkVFQlNECisJeyBVRl9OT0RVTVAsCSJVRl9OT0RVTVAiCX0sCisJeyBVRl9JTU1VVEFCTEUsCSJVRl9JTU1VVEFCTEUiCX0sCisJeyBVRl9BUFBFTkQsCSJVRl9BUFBFTkQiCX0sCisJeyBVRl9PUEFRVUUsCSJVRl9PUEFRVUUiCX0sCisJeyBVRl9OT1VOTElOSywJIlVGX05PVU5MSU5LIgl9LAorCXsgU0ZfQVJDSElWRUQsCSJTRl9BUkNISVZFRCIJfSwKKwl7IFNGX0lNTVVUQUJMRSwJIlNGX0lNTVVUQUJMRSIJfSwKKwl7IFNGX0FQUEVORCwJIlNGX0FQUEVORCIJfSwKKwl7IFNGX05PVU5MSU5LLAkiU0ZfTk9VTkxJTksiCX0sCisjZWxpZiBVTklYV0FSRSA+PSAyCisjaWZkZWYgCV9TX0lTTUxECisJeyBfU19JU01MRCwgCSJfU19JU01MRCIJfSwKKyNlbmRpZgorI2lmZGVmIAlfU19JU01PVU5URUQKKwl7IF9TX0lTTU9VTlRFRCwgIl9TX0lTTU9VTlRFRCIJfSwKKyNlbmRpZgorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKKyNpZmRlZiBGUkVFQlNECitpbnQKK3N5c19jaGZsYWdzKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhmaWxlZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJVRl8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2ZjaGZsYWdzKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludGZsYWdzKGZpbGVmbGFncywgdGNwLT51X2FyZ1sxXSwgIlVGXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCitzdGF0aWMgdm9pZAorcmVhbHByaW50c3RhdCh0Y3AsIHN0YXRidWYpCitzdHJ1Y3QgdGNiICp0Y3A7CitzdHJ1Y3Qgc3RhdCAqc3RhdGJ1ZjsKK3sKKyAgICBpZiAoIWFiYnJldih0Y3ApKSB7CisJICAgIHRwcmludGYoIntzdF9kZXY9bWFrZWRldiglbHUsICVsdSksIHN0X2lubz0lbHUsIHN0X21vZGU9JXMsICIsCisJCSAgICAodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi0+c3RfZGV2KSwKKwkJICAgICh1bnNpZ25lZCBsb25nKSBtaW5vcihzdGF0YnVmLT5zdF9kZXYpLAorCQkgICAgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2lubywKKwkJICAgIHNwcmludG1vZGUoc3RhdGJ1Zi0+c3RfbW9kZSkpOworCSAgICB0cHJpbnRmKCJzdF9ubGluaz0lbHUsIHN0X3VpZD0lbHUsIHN0X2dpZD0lbHUsICIsCisJCSAgICAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfbmxpbmssCisJCSAgICAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfdWlkLAorCQkgICAgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2dpZCk7CisjaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFCisJICAgIHRwcmludGYoInN0X2Jsa3NpemU9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi0+c3RfYmxrc2l6ZSk7CisjZW5kaWYgLyogSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTEtTSVpFICovCisjaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MKKwkgICAgdHByaW50Zigic3RfYmxvY2tzPSVsdSwgIiwgKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYtPnN0X2Jsb2Nrcyk7CisjZW5kaWYgLyogSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MgKi8KKyAgICB9CisgICAgZWxzZQorCSAgICB0cHJpbnRmKCJ7c3RfbW9kZT0lcywgIiwgc3ByaW50bW9kZShzdGF0YnVmLT5zdF9tb2RlKSk7CisgICAgc3dpdGNoIChzdGF0YnVmLT5zdF9tb2RlICYgU19JRk1UKSB7CisgICAgY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6CisjaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWCisJICAgIHRwcmludGYoInN0X3JkZXY9bWFrZWRldiglbHUsICVsdSksICIsCisJCSAgICAodW5zaWduZWQgbG9uZykgbWFqb3Ioc3RhdGJ1Zi0+c3RfcmRldiksCisJCSAgICAodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi0+c3RfcmRldikpOworI2Vsc2UgLyogIUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAqLworCSAgICB0cHJpbnRmKCJzdF9zaXplPW1ha2VkZXYoJWx1LCAlbHUpLCAiLAorCQkgICAgKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYtPnN0X3NpemUpLAorCQkgICAgKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHN0YXRidWYtPnN0X3NpemUpKTsKKyNlbmRpZiAvKiAhSEFWRV9TVFJVQ1RfU1RBVF9TVF9SREVWICovCisJICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisJICAgIHRwcmludGYoInN0X3NpemU9JWx1LCAiLCBzdGF0YnVmLT5zdF9zaXplKTsKKwkgICAgYnJlYWs7CisgICAgfQorICAgIGlmICghYWJicmV2KHRjcCkpIHsKKwkgICAgdHByaW50Zigic3RfYXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi0+c3RfYXRpbWUpKTsKKwkgICAgdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi0+c3RfbXRpbWUpKTsKKwkgICAgdHByaW50Zigic3RfY3RpbWU9JXMiLCBzcHJpbnR0aW1lKHN0YXRidWYtPnN0X2N0aW1lKSk7CisjaWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GTEFHUworCQl0cHJpbnRmKCIsIHN0X2ZsYWdzPSIpOworCQlwcmludGZsYWdzKGZpbGVmbGFncywgc3RhdGJ1Zi0+c3RfZmxhZ3MsICJVRl8/Pz8iKTsKKyNlbmRpZgorI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UCisJCXRwcmludGYoIiwgc3RfYWNsY250PSVkIiwgc3RhdGJ1Zi0+c3RfYWNsY250KTsKKyNlbmRpZgorI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfTEVWRUwKKwkJdHByaW50ZigiLCBzdF9sZXZlbD0lbGQiLCBzdGF0YnVmLT5zdF9sZXZlbCk7CisjZW5kaWYKKyNpZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0ZTVFlQRQorCQl0cHJpbnRmKCIsIHN0X2ZzdHlwZT0lLipzIiwKKwkJCShpbnQpIHNpemVvZiBzdGF0YnVmLT5zdF9mc3R5cGUsIHN0YXRidWYtPnN0X2ZzdHlwZSk7CisjZW5kaWYKKyNpZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0dFTgorCQl0cHJpbnRmKCIsIHN0X2dlbj0ldSIsIHN0YXRidWYtPnN0X2dlbik7CisjZW5kaWYKKwkJdHByaW50ZigifSIpOworICAgIH0KKyAgICBlbHNlCisJICAgIHRwcmludGYoIi4uLn0iKTsKK30KKworCitzdGF0aWMgdm9pZAorcHJpbnRzdGF0KHRjcCwgYWRkcikKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgYWRkcjsKK3sKKwlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCisjaWZkZWYgTElOVVhTUEFSQworIAlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7CisgCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKKyAJCXJldHVybjsKKyAJfQorI2lmZGVmIFNQQVJDNjQKKwllbHNlIGlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDIpIHsKKwkJcHJpbnRzdGF0X3NwYXJjNjQodGNwLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKyNlbmRpZgorI2VuZGlmIC8qIExJTlVYU1BBUkMgKi8KKworCWlmICghYWRkcikgeworCQl0cHJpbnRmKCJOVUxMIik7CisJCXJldHVybjsKKwl9CisJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCXJldHVybjsKKwl9CisJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgeworCQl0cHJpbnRmKCJ7Li4ufSIpOworCQlyZXR1cm47CisJfQorCisJcmVhbHByaW50c3RhdCh0Y3AsICZzdGF0YnVmKTsKK30KKyNlbmRpZgkvKiAhSEFWRV9MT05HX0xPTkdfT0ZGX1QgKi8KKworI2lmZGVmIEhBVkVfU1RBVDY0CitzdGF0aWMgdm9pZAorcHJpbnRzdGF0NjQodGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworCXN0cnVjdCBzdGF0NjQgc3RhdGJ1ZjsKKworI2lmZGVmIExJTlVYU1BBUkMKKyAJaWYgKGN1cnJlbnRfcGVyc29uYWxpdHkgPT0gMSkgeworIAkJcHJpbnRzdGF0c29sKHRjcCwgYWRkcik7CisgCQlyZXR1cm47CisgCX0KKyNpZmRlZiBTUEFSQzY0CisJZWxzZSBpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAyKSB7CisJCXByaW50c3RhdF9zcGFyYzY0KHRjcCwgYWRkcik7CisJCXJldHVybjsKKwl9CisjZW5kaWYKKyNlbmRpZiAvKiBMSU5VWFNQQVJDICovCisKKwlpZiAoIWFkZHIpIHsKKwkJdHByaW50ZigiTlVMTCIpOworCQlyZXR1cm47CisJfQorCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZzdGF0YnVmKSA8IDApIHsKKwkJdHByaW50Zigiey4uLn0iKTsKKwkJcmV0dXJuOworCX0KKworCWlmICghYWJicmV2KHRjcCkpIHsKKyNpZmRlZiBIQVZFX0xPTkdfTE9ORworCQl0cHJpbnRmKCJ7c3RfZGV2PW1ha2VkZXYoJWx1LCAlbHUpLCBzdF9pbm89JWxsdSwgc3RfbW9kZT0lcywgIiwKKyNlbHNlCisJCXRwcmludGYoIntzdF9kZXY9bWFrZWRldiglbHUsICVsdSksIHN0X2lubz0lbHUsIHN0X21vZGU9JXMsICIsCisjZW5kaWYKKwkJCSh1bnNpZ25lZCBsb25nKSBtYWpvcihzdGF0YnVmLnN0X2RldiksCisJCQkodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi5zdF9kZXYpLAorI2lmZGVmIEhBVkVfTE9OR19MT05HCisJCQkodW5zaWduZWQgbG9uZyBsb25nKSBzdGF0YnVmLnN0X2lubywKKyNlbHNlCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9pbm8sCisjZW5kaWYKKwkJCXNwcmludG1vZGUoc3RhdGJ1Zi5zdF9tb2RlKSk7CisJCXRwcmludGYoInN0X25saW5rPSVsdSwgc3RfdWlkPSVsdSwgc3RfZ2lkPSVsdSwgIiwKKwkJCSh1bnNpZ25lZCBsb25nKSBzdGF0YnVmLnN0X25saW5rLAorCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfdWlkLAorCQkJKHVuc2lnbmVkIGxvbmcpIHN0YXRidWYuc3RfZ2lkKTsKKyNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUKKwkJdHByaW50Zigic3RfYmxrc2l6ZT0lbHUsICIsCisJCQkodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibGtzaXplKTsKKyNlbmRpZiAvKiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUgKi8KKyNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMT0NLUworCQl0cHJpbnRmKCJzdF9ibG9ja3M9JWx1LCAiLCAodW5zaWduZWQgbG9uZykgc3RhdGJ1Zi5zdF9ibG9ja3MpOworI2VuZGlmIC8qIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxPQ0tTICovCisJfQorCWVsc2UKKwkJdHByaW50Zigie3N0X21vZGU9JXMsICIsIHNwcmludG1vZGUoc3RhdGJ1Zi5zdF9tb2RlKSk7CisJc3dpdGNoIChzdGF0YnVmLnN0X21vZGUgJiBTX0lGTVQpIHsKKwljYXNlIFNfSUZDSFI6IGNhc2UgU19JRkJMSzoKKyNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX1JERVYKKwkJdHByaW50Zigic3RfcmRldj1tYWtlZGV2KCVsdSwgJWx1KSwgIiwKKwkJCSh1bnNpZ25lZCBsb25nKSBtYWpvcihzdGF0YnVmLnN0X3JkZXYpLAorCQkJKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHN0YXRidWYuc3RfcmRldikpOworI2Vsc2UgLyogIUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAqLworCQl0cHJpbnRmKCJzdF9zaXplPW1ha2VkZXYoJWx1LCAlbHUpLCAiLAorCQkJKHVuc2lnbmVkIGxvbmcpIG1ham9yKHN0YXRidWYuc3Rfc2l6ZSksCisJCQkodW5zaWduZWQgbG9uZykgbWlub3Ioc3RhdGJ1Zi5zdF9zaXplKSk7CisjZW5kaWYgLyogIUhBVkVfU1RSVUNUX1NUQVRfU1RfUkRFViAqLworCQlicmVhazsKKwlkZWZhdWx0OgorCQl0cHJpbnRmKCJzdF9zaXplPSVsbHUsICIsIHN0YXRidWYuc3Rfc2l6ZSk7CisJCWJyZWFrOworCX0KKwlpZiAoIWFiYnJldih0Y3ApKSB7CisJCXRwcmludGYoInN0X2F0aW1lPSVzLCAiLCBzcHJpbnR0aW1lKHN0YXRidWYuc3RfYXRpbWUpKTsKKwkJdHByaW50Zigic3RfbXRpbWU9JXMsICIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9tdGltZSkpOworCQl0cHJpbnRmKCJzdF9jdGltZT0lcyIsIHNwcmludHRpbWUoc3RhdGJ1Zi5zdF9jdGltZSkpOworI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfRkxBR1MKKwkJdHByaW50ZigiLCBzdF9mbGFncz0iKTsKKwkJcHJpbnRmbGFncyhmaWxlZmxhZ3MsIHN0YXRidWYuc3RfZmxhZ3MsICJVRl8/Pz8iKTsKKyNlbmRpZgorI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQUNMQ05UCisJCXRwcmludGYoIiwgc3RfYWNsY250PSVkIiwgc3RhdGJ1Zi5zdF9hY2xjbnQpOworI2VuZGlmCisjaWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9MRVZFTAorCQl0cHJpbnRmKCIsIHN0X2xldmVsPSVsZCIsIHN0YXRidWYuc3RfbGV2ZWwpOworI2VuZGlmCisjaWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9GU1RZUEUKKwkJdHByaW50ZigiLCBzdF9mc3R5cGU9JS4qcyIsCisJCQkoaW50KSBzaXplb2Ygc3RhdGJ1Zi5zdF9mc3R5cGUsIHN0YXRidWYuc3RfZnN0eXBlKTsKKyNlbmRpZgorI2lmIEhBVkVfU1RSVUNUX1NUQVRfU1RfR0VOCisJCXRwcmludGYoIiwgc3RfZ2VuPSV1Iiwgc3RhdGJ1Zi5zdF9nZW4pOworI2VuZGlmCisJCXRwcmludGYoIn0iKTsKKwl9CisJZWxzZQorCQl0cHJpbnRmKCIuLi59Iik7Cit9CisjZW5kaWYgLyogSEFWRV9TVEFUNjQgKi8KKworI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQpCitzdGF0aWMgdm9pZAorY29udmVydG9sZHN0YXQob2xkYnVmLCBuZXdidWYpCitjb25zdCBzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgKm9sZGJ1ZjsKK3N0cnVjdCBzdGF0ICpuZXdidWY7Cit7CisgICAgbmV3YnVmLT5zdF9kZXY9b2xkYnVmLT5zdF9kZXY7CisgICAgbmV3YnVmLT5zdF9pbm89b2xkYnVmLT5zdF9pbm87CisgICAgbmV3YnVmLT5zdF9tb2RlPW9sZGJ1Zi0+c3RfbW9kZTsKKyAgICBuZXdidWYtPnN0X25saW5rPW9sZGJ1Zi0+c3Rfbmxpbms7CisgICAgbmV3YnVmLT5zdF91aWQ9b2xkYnVmLT5zdF91aWQ7CisgICAgbmV3YnVmLT5zdF9naWQ9b2xkYnVmLT5zdF9naWQ7CisgICAgbmV3YnVmLT5zdF9yZGV2PW9sZGJ1Zi0+c3RfcmRldjsKKyAgICBuZXdidWYtPnN0X3NpemU9b2xkYnVmLT5zdF9zaXplOworICAgIG5ld2J1Zi0+c3RfYXRpbWU9b2xkYnVmLT5zdF9hdGltZTsKKyAgICBuZXdidWYtPnN0X210aW1lPW9sZGJ1Zi0+c3RfbXRpbWU7CisgICAgbmV3YnVmLT5zdF9jdGltZT1vbGRidWYtPnN0X2N0aW1lOworICAgIG5ld2J1Zi0+c3RfYmxrc2l6ZT0wOwkvKiBub3Qgc3VwcG9ydGVkIGluIG9sZF9zdGF0ICovCisgICAgbmV3YnVmLT5zdF9ibG9ja3M9MDsJCS8qIG5vdCBzdXBwb3J0ZWQgaW4gb2xkX3N0YXQgKi8KK30KKworCitzdGF0aWMgdm9pZAorcHJpbnRvbGRzdGF0KHRjcCwgYWRkcikKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgYWRkcjsKK3sKKwlzdHJ1Y3QgX19vbGRfa2VybmVsX3N0YXQgc3RhdGJ1ZjsKKwlzdHJ1Y3Qgc3RhdCBuZXdzdGF0YnVmOworCisjaWZkZWYgTElOVVhTUEFSQworIAlpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7CisgCQlwcmludHN0YXRzb2wodGNwLCBhZGRyKTsKKyAJCXJldHVybjsKKyAJfQorI2VuZGlmIC8qIExJTlVYU1BBUkMgKi8KKworCWlmICghYWRkcikgeworCQl0cHJpbnRmKCJOVUxMIik7CisJCXJldHVybjsKKwl9CisJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCXJldHVybjsKKwl9CisJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN0YXRidWYpIDwgMCkgeworCQl0cHJpbnRmKCJ7Li4ufSIpOworCQlyZXR1cm47CisJfQorCisJY29udmVydG9sZHN0YXQoJnN0YXRidWYsICZuZXdzdGF0YnVmKTsKKwlyZWFscHJpbnRzdGF0KHRjcCwgJm5ld3N0YXRidWYpOworfQorI2VuZGlmIC8qIExJTlVYICYmICFJQTY0ICYmICFIUFBBICYmICFYODZfNjQgJiYgIVMzOTAgJiYgIVMzOTBYICovCisKKyNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKK2ludAorc3lzX3N0YXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisJCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQKK3N5c19zdGF0NjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmZGVmIEhBVkVfU1RBVDY0CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKwkJcHJpbnRzdGF0NjQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7CisjZWxzZQorCXJldHVybiBwcmludGFyZ3ModGNwKTsKKyNlbmRpZgorfQorCisjaWZkZWYgTElOVVgKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmc3RhdGF0ZmxhZ3NbXSA9IHsKKyNpZm5kZWYgQVRfU1lNTElOS19OT0ZPTExPVworIyBkZWZpbmUgQVRfU1lNTElOS19OT0ZPTExPVyAgICAgMHgxMDAKKyNlbmRpZgorCXsgQVRfU1lNTElOS19OT0ZPTExPVywJIkFUX1NZTUxJTktfTk9GT0xMT1ciCX0sCisJeyAwLAkJCU5VTEwJCQl9LAorfTsKKworaW50CitzeXNfbmV3ZnN0YXRhdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRfZGlyZmQodGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisjaWZkZWYgSEFWRV9TVEFUNjQKKwkJcHJpbnRzdGF0NjQodGNwLCB0Y3AtPnVfYXJnWzJdKTsKKyNlbHNlCisJCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMl0pOworI2VuZGlmCisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MoZnN0YXRhdGZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiQVRfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUKQoraW50CitzeXNfb2xkc3RhdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKwkJcHJpbnRvbGRzdGF0KHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmIC8qIExJTlVYICYmIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUICovCisKKyNpZm5kZWYgSEFWRV9MT05HX0xPTkdfT0ZGX1QKK2ludAorc3lzX2ZzdGF0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwllbHNlIHsKKwkJcHJpbnRzdGF0KHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKK2ludAorc3lzX2ZzdGF0NjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmZGVmIEhBVkVfU1RBVDY0CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJZWxzZSB7CisJCXByaW50c3RhdDY0KHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworI2Vsc2UKKwlyZXR1cm4gcHJpbnRhcmdzKHRjcCk7CisjZW5kaWYKK30KKworI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQpCitpbnQKK3N5c19vbGRmc3RhdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJZWxzZSB7CisJCXByaW50b2xkc3RhdCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBMSU5VWCAmJiBIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCAqLworCisjaWZuZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCitpbnQKK3N5c19sc3RhdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKwkJcHJpbnRzdGF0KHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKK2ludAorc3lzX2xzdGF0NjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmZGVmIEhBVkVfU1RBVDY0CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKwkJcHJpbnRzdGF0NjQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7CisjZWxzZQorCXJldHVybiBwcmludGFyZ3ModGNwKTsKKyNlbmRpZgorfQorCisjaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9fX09MRF9LRVJORUxfU1RBVCkKK2ludAorc3lzX29sZGxzdGF0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgeworCQlwcmludG9sZHN0YXQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTElOVVggJiYgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQgKi8KKworCisjaWYgZGVmaW5lZChTVlI0KSB8fCBkZWZpbmVkKExJTlVYU1BBUkMpCisKK2ludAorc3lzX3hzdGF0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgeworI2lmZGVmIF9TVEFUNjRfVkVSCisJCWlmICh0Y3AtPnVfYXJnWzBdID09IF9TVEFUNjRfVkVSKQorCQkJcHJpbnRzdGF0NjQgKHRjcCwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UKKyNlbmRpZgorCQlwcmludHN0YXQodGNwLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2Z4c3RhdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIiVsZCwgJWxkLCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwllbHNlIHsKKyNpZmRlZiBfU1RBVDY0X1ZFUgorCQlpZiAodGNwLT51X2FyZ1swXSA9PSBfU1RBVDY0X1ZFUikKKwkJCXByaW50c3RhdDY0ICh0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlCisjZW5kaWYKKwkJcHJpbnRzdGF0KHRjcCwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19seHN0YXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisjaWZkZWYgX1NUQVQ2NF9WRVIKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gX1NUQVQ2NF9WRVIpCisJCQlwcmludHN0YXQ2NCAodGNwLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZQorI2VuZGlmCisJCXByaW50c3RhdCh0Y3AsIHRjcC0+dV9hcmdbMl0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfeG1rbm9kKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpbnQgbW9kZSA9IHRjcC0+dV9hcmdbMl07CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAlcyIsIHNwcmludG1vZGUobW9kZSkpOworCQlzd2l0Y2ggKG1vZGUgJiBTX0lGTVQpIHsKKwkJY2FzZSBTX0lGQ0hSOiBjYXNlIFNfSUZCTEs6CisjaWZkZWYgTElOVVhTUEFSQworCQkJdHByaW50ZigiLCBtYWtlZGV2KCVsdSwgJWx1KSIsCisJCQkJKHVuc2lnbmVkIGxvbmcpICgodGNwLT51X2FyZ1szXSA+PiAxOCkgJiAweDNmZmYpLAorCQkJCSh1bnNpZ25lZCBsb25nKSAodGNwLT51X2FyZ1szXSAmIDB4M2ZmZmYpKTsKKyNlbHNlCisJCQl0cHJpbnRmKCIsIG1ha2VkZXYoJWx1LCAlbHUpIiwKKwkJCQkodW5zaWduZWQgbG9uZykgbWFqb3IodGNwLT51X2FyZ1szXSksCisJCQkJKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHRjcC0+dV9hcmdbM10pKTsKKyNlbmRpZgorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIEhBVkVfU1lTX0FDTF9ICisKKyNpbmNsdWRlIDxzeXMvYWNsLmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhY2xjbWRzW10gPSB7CisjaWZkZWYgU0VUQUNMCisJeyBTRVRBQ0wsCSJTRVRBQ0wiCX0sCisjZW5kaWYKKyNpZmRlZiBHRVRBQ0wKKwl7IEdFVEFDTCwJIkdFVEFDTCIJfSwKKyNlbmRpZgorI2lmZGVmIEdFVEFDTENOVAorCXsgR0VUQUNMQ05ULAkiR0VUQUNMQ05UIgl9LAorI2VuZGlmCisjaWZkZWYgQUNMX0dFVAorCXsgQUNMX0dFVCwJIkFDTF9HRVQiCX0sCisjZW5kaWYKKyNpZmRlZiBBQ0xfU0VUCisJeyBBQ0xfU0VULAkiQUNMX1NFVCIJfSwKKyNlbmRpZgorI2lmZGVmIEFDTF9DTlQKKwl7IEFDTF9DTlQsCSJBQ0xfQ05UIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKK2ludAorc3lzX2FjbCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50eHZhbChhY2xjbWRzLCB0Y3AtPnVfYXJnWzFdLCAiPz8/QUNMPz8/Iik7CisJCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1syXSk7CisJCS8qCisJCSAqIEZJWE1FIC0gZHVtcCBvdXQgdGhlIGxpc3Qgb2YgYWNsZW50X3QncyBwb2ludGVkIHRvCisJCSAqIGJ5ICJ0Y3AtPnVfYXJnWzNdIiBpZiBpdCdzIG5vdCBOVUxMLgorCQkgKi8KKwkJaWYgKHRjcC0+dV9hcmdbM10pCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJZWxzZQorCQkJdHByaW50ZigiLCBOVUxMIik7CisJfQorCXJldHVybiAwOworfQorCisKK2ludAorc3lzX2ZhY2wodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50eHZhbChhY2xjbWRzLCB0Y3AtPnVfYXJnWzFdLCAiPz8/QUNMPz8/Iik7CisJCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1syXSk7CisJCS8qCisJCSAqIEZJWE1FIC0gZHVtcCBvdXQgdGhlIGxpc3Qgb2YgYWNsZW50X3QncyBwb2ludGVkIHRvCisJCSAqIGJ5ICJ0Y3AtPnVfYXJnWzNdIiBpZiBpdCdzIG5vdCBOVUxMLgorCQkgKi8KKwkJaWYgKHRjcC0+dV9hcmdbM10pCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJZWxzZQorCQkJdHByaW50ZigiLCBOVUxMIik7CisJfQorCXJldHVybiAwOworfQorCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhY2xpcGNbXSA9IHsKKyNpZmRlZiBJUENfU0hNCisJeyBJUENfU0hNLAkiSVBDX1NITSIJfSwKKyNlbmRpZgorI2lmZGVmIElQQ19TRU0KKwl7IElQQ19TRU0sCSJJUENfU0VNIgl9LAorI2VuZGlmCisjaWZkZWYgSVBDX01TRworCXsgSVBDX01TRywJIklQQ19NU0ciCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworCitpbnQKK3N5c19hY2xpcGModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbChhY2xpcGMsIHRjcC0+dV9hcmdbMF0sICI/Pz9JUEM/Pz8iKTsKKwkJdHByaW50ZigiLCAlI2x4LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnR4dmFsKGFjbGNtZHMsIHRjcC0+dV9hcmdbMl0sICI/Pz9BQ0w/Pz8iKTsKKwkJdHByaW50ZigiLCAlbGQiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJLyoKKwkJICogRklYTUUgLSBkdW1wIG91dCB0aGUgbGlzdCBvZiBhY2xlbnRfdCdzIHBvaW50ZWQgdG8KKwkJICogYnkgInRjcC0+dV9hcmdbNF0iIGlmIGl0J3Mgbm90IE5VTEwuCisJCSAqLworCQlpZiAodGNwLT51X2FyZ1s0XSkKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbNF0pOworCQllbHNlCisJCQl0cHJpbnRmKCIsIE5VTEwiKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKworCisjZW5kaWYgLyogSEFWRV9TWVNfQUNMX0ggKi8KKworI2VuZGlmIC8qIFNWUjQgfHwgTElOVVhTUEFSQyAqLworCisjaWZkZWYgTElOVVgKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGZzbWFnaWNbXSA9IHsKKwl7IDB4NzM3NTcyNDUsCSJDT0RBX1NVUEVSX01BR0lDIgl9LAorCXsgMHgwMTJmZjdiNywJIkNPSF9TVVBFUl9NQUdJQyIJfSwKKwl7IDB4MTM3MywJIkRFVkZTX1NVUEVSX01BR0lDIgl9LAorCXsgMHgxY2QxLAkiREVWUFRTX1NVUEVSX01BR0lDIgl9LAorCXsgMHg0MTRBNTMsCSJFRlNfU1VQRVJfTUFHSUMiCX0sCisJeyAweGVmNTEsCSJFWFQyX09MRF9TVVBFUl9NQUdJQyIJfSwKKwl7IDB4ZWY1MywJIkVYVDJfU1VQRVJfTUFHSUMiCX0sCisJeyAweDEzN2QsCSJFWFRfU1VQRVJfTUFHSUMiCX0sCisJeyAweGY5OTVlODQ5LAkiSFBGU19TVVBFUl9NQUdJQyIJfSwKKwl7IDB4OTY2MCwJIklTT0ZTX1NVUEVSX01BR0lDIgl9LAorCXsgMHgxMzdmLAkiTUlOSVhfU1VQRVJfTUFHSUMiCX0sCisJeyAweDEzOGYsCSJNSU5JWF9TVVBFUl9NQUdJQzIiCX0sCisJeyAweDI0NjgsCSJNSU5JWDJfU1VQRVJfTUFHSUMiCX0sCisJeyAweDI0NzgsCSJNSU5JWDJfU1VQRVJfTUFHSUMyIgl9LAorCXsgMHg0ZDQ0LAkiTVNET1NfU1VQRVJfTUFHSUMiCX0sCisJeyAweDU2NGMsCSJOQ1BfU1VQRVJfTUFHSUMiCX0sCisJeyAweDY5NjksCSJORlNfU1VQRVJfTUFHSUMiCX0sCisJeyAweDlmYTAsCSJQUk9DX1NVUEVSX01BR0lDIgl9LAorCXsgMHgwMDJmLAkiUU5YNF9TVVBFUl9NQUdJQyIJfSwKKwl7IDB4NTI2NTQ5NzMsCSJSRUlTRVJGU19TVVBFUl9NQUdJQyIJfSwKKwl7IDB4MDIwMTE5OTQsCSJTSE1GU19TVVBFUl9NQUdJQyIJfSwKKwl7IDB4NTE3YiwJIlNNQl9TVVBFUl9NQUdJQyIJfSwKKwl7IDB4MDEyZmY3YjYsCSJTWVNWMl9TVVBFUl9NQUdJQyIJfSwKKwl7IDB4MDEyZmY3YjUsCSJTWVNWNF9TVVBFUl9NQUdJQyIJfSwKKwl7IDB4MDAwMTE5NTQsCSJVRlNfTUFHSUMiCQl9LAorCXsgMHg1NDE5MDEwMCwJIlVGU19DSUdBTSIJCX0sCisJeyAweDAxMmZmN2I0LAkiWEVOSVhfU1VQRVJfTUFHSUMiCX0sCisJeyAweDAxMmZkMTZkLAkiWElBRlNfU1VQRVJfTUFHSUMiCX0sCisJeyAweDYyNjU2NTcyLAkiU1lTRlNfTUFHSUMiCQl9LAorCXsgMCwJCU5VTEwJCQl9LAorfTsKKworI2VuZGlmIC8qIExJTlVYICovCisKKyNpZm5kZWYgU1ZSNAorCitzdGF0aWMgY29uc3QgY2hhciAqCitzcHJpbnRmc3R5cGUobWFnaWMpCitpbnQgbWFnaWM7Cit7CisJc3RhdGljIGNoYXIgYnVmWzMyXTsKKyNpZmRlZiBMSU5VWAorCWNvbnN0IGNoYXIgKnM7CisKKwlzID0geGxvb2t1cChmc21hZ2ljLCBtYWdpYyk7CisJaWYgKHMpIHsKKwkJc3ByaW50ZihidWYsICJcIiVzXCIiLCBzKTsKKwkJcmV0dXJuIGJ1ZjsKKwl9CisjZW5kaWYgLyogTElOVVggKi8KKwlzcHJpbnRmKGJ1ZiwgIiUjeCIsIG1hZ2ljKTsKKwlyZXR1cm4gYnVmOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRzdGF0ZnModGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworCXN0cnVjdCBzdGF0ZnMgc3RhdGJ1ZjsKKworCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZzdGF0YnVmKSA8IDApIHsKKwkJdHByaW50Zigiey4uLn0iKTsKKwkJcmV0dXJuOworCX0KKyNpZmRlZiBBTFBIQQorCisJdHByaW50Zigie2ZfdHlwZT0lcywgZl9mYnNpemU9JXUsIGZfYmxvY2tzPSV1LCBmX2JmcmVlPSV1LCAiLAorCQlzcHJpbnRmc3R5cGUoc3RhdGJ1Zi5mX3R5cGUpLAorCQlzdGF0YnVmLmZfYnNpemUsIHN0YXRidWYuZl9ibG9ja3MsIHN0YXRidWYuZl9iZnJlZSk7CisJdHByaW50ZigiZl9iYXZhaWw9JXUsIGZfZmlsZXM9JXUsIGZfZmZyZWU9JXUsIGZfZnNpZD17JWQsICVkfSwgZl9uYW1lbGVuPSV1IiwKKwkJc3RhdGJ1Zi5mX2JhdmFpbCxzdGF0YnVmLmZfZmlsZXMsIHN0YXRidWYuZl9mZnJlZSwKKwkJc3RhdGJ1Zi5mX2ZzaWQuX192YWxbMF0sIHN0YXRidWYuZl9mc2lkLl9fdmFsWzFdLAorCQlzdGF0YnVmLmZfbmFtZWxlbik7CisjZWxzZSAvKiAhQUxQSEEgKi8KKwl0cHJpbnRmKCJ7Zl90eXBlPSVzLCBmX2JzaXplPSVsdSwgZl9ibG9ja3M9JWx1LCBmX2JmcmVlPSVsdSwgIiwKKwkJc3ByaW50ZnN0eXBlKHN0YXRidWYuZl90eXBlKSwKKwkJKHVuc2lnbmVkIGxvbmcpc3RhdGJ1Zi5mX2JzaXplLAorCQkodW5zaWduZWQgbG9uZylzdGF0YnVmLmZfYmxvY2tzLAorCQkodW5zaWduZWQgbG9uZylzdGF0YnVmLmZfYmZyZWUpOworCXRwcmludGYoImZfYmF2YWlsPSVsdSwgZl9maWxlcz0lbHUsIGZfZmZyZWU9JWx1LCBmX2ZzaWQ9eyVkLCAlZH0iLAorCQkodW5zaWduZWQgbG9uZylzdGF0YnVmLmZfYmF2YWlsLAorCQkodW5zaWduZWQgbG9uZylzdGF0YnVmLmZfZmlsZXMsCisJCSh1bnNpZ25lZCBsb25nKXN0YXRidWYuZl9mZnJlZSwKKwkJc3RhdGJ1Zi5mX2ZzaWQuX192YWxbMF0sIHN0YXRidWYuZl9mc2lkLl9fdmFsWzFdKTsKKyNpZmRlZiBMSU5VWAorCXRwcmludGYoIiwgZl9uYW1lbGVuPSVsdSIsICh1bnNpZ25lZCBsb25nKXN0YXRidWYuZl9uYW1lbGVuKTsKKyNlbmRpZiAvKiBMSU5VWCAqLworI2VuZGlmIC8qICFBTFBIQSAqLworI2lmZGVmIF9TVEFURlNfRl9GUlNJWkUKKwl0cHJpbnRmKCIsIGZfZnJzaXplPSVsdSIsICh1bnNpZ25lZCBsb25nKXN0YXRidWYuZl9mcnNpemUpOworI2VuZGlmCisJdHByaW50ZigifSIpOworfQorCitpbnQKK3N5c19zdGF0ZnModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisJCXByaW50c3RhdGZzKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19mc3RhdGZzKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOworCX0gZWxzZSB7CisJCXByaW50c3RhdGZzKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgTElOVVggCitzdGF0aWMgdm9pZAorcHJpbnRzdGF0ZnM2NCh0Y3AsIGFkZHIpCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7Cit7CisJc3RydWN0IHN0YXRmczY0IHN0YXRidWY7CisKKwlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmc3RhdGJ1ZikgPCAwKSB7CisJCXRwcmludGYoInsuLi59Iik7CisJCXJldHVybjsKKwl9CisJdHByaW50Zigie2ZfdHlwZT0lcywgZl9ic2l6ZT0lbGx1LCBmX2Jsb2Nrcz0lbGx1LCBmX2JmcmVlPSVsbHUsICIsCisJCXNwcmludGZzdHlwZShzdGF0YnVmLmZfdHlwZSksCisJCSh1bnNpZ25lZCBsb25nIGxvbmcpc3RhdGJ1Zi5mX2JzaXplLAorCQkodW5zaWduZWQgbG9uZyBsb25nKXN0YXRidWYuZl9ibG9ja3MsCisJCSh1bnNpZ25lZCBsb25nIGxvbmcpc3RhdGJ1Zi5mX2JmcmVlKTsKKwl0cHJpbnRmKCJmX2JhdmFpbD0lbGx1LCBmX2ZpbGVzPSVsbHUsIGZfZmZyZWU9JWxsdSwgZl9mc2lkPXslZCwgJWR9IiwKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZylzdGF0YnVmLmZfYmF2YWlsLAorCQkodW5zaWduZWQgbG9uZyBsb25nKXN0YXRidWYuZl9maWxlcywKKwkJKHVuc2lnbmVkIGxvbmcgbG9uZylzdGF0YnVmLmZfZmZyZWUsCisJCXN0YXRidWYuZl9mc2lkLl9fdmFsWzBdLCBzdGF0YnVmLmZfZnNpZC5fX3ZhbFsxXSk7CisJdHByaW50ZigiLCBmX25hbWVsZW49JWx1IiwgKHVuc2lnbmVkIGxvbmcpc3RhdGJ1Zi5mX25hbWVsZW4pOworI2lmZGVmIF9TVEFURlNfRl9GUlNJWkUKKwl0cHJpbnRmKCIsIGZfZnJzaXplPSVsbHUiLCAodW5zaWduZWQgbG9uZyBsb25nKXN0YXRidWYuZl9mcnNpemUpOworI2VuZGlmCisJdHByaW50ZigifSIpOworfQorCitpbnQKK3N5c19zdGF0ZnM2NCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwl9IGVsc2UgeworCQlpZiAodGNwLT51X2FyZ1sxXSA9PSBzaXplb2YgKHN0cnVjdCBzdGF0ZnM2NCkpCisJCQlwcmludHN0YXRmczY0KHRjcCwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UKKwkJCXRwcmludGYoIns/Pz99Iik7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19mc3RhdGZzNjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgJWx1LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwl9IGVsc2UgeworCQlpZiAodGNwLT51X2FyZ1sxXSA9PSBzaXplb2YgKHN0cnVjdCBzdGF0ZnM2NCkpCisJCQlwcmludHN0YXRmczY0KHRjcCwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UKKwkJCXRwcmludGYoIns/Pz99Iik7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKF9fYWxwaGEpCisKK2ludAorb3NmX3N0YXRmcyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKwkJcHJpbnRzdGF0ZnModGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorb3NmX2ZzdGF0ZnModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJcHJpbnRzdGF0ZnModGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTElOVVggJiYgX19hbHBoYSAqLworCisjZW5kaWYgLyogIVNWUjQgKi8KKworI2lmZGVmIFNVTk9TNAorCitpbnQKK3N5c191c3RhdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IHVzdGF0IHN0YXRidWY7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCJtYWtlZGV2KCVsdSwgJWx1KSwgIiwKKwkJCQkobG9uZykgbWFqb3IodGNwLT51X2FyZ1swXSksCisJCQkJKGxvbmcpIG1pbm9yKHRjcC0+dV9hcmdbMF0pKTsKKwl9CisJZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnN0YXRidWYpIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJCWVsc2UgeworCQkJdHByaW50Zigie2ZfdGZyZWU9JWx1LCBmX3Rpbm9kZT0lbHUsICIsCisJCQkJc3RhdGJ1Zi5mX3RmcmVlLCBzdGF0YnVmLmZfdGlub2RlKTsKKwkJCXRwcmludGYoImZfZm5hbWU9XCIlLipzXCIsICIsCisJCQkJKGludCkgc2l6ZW9mKHN0YXRidWYuZl9mbmFtZSksCisJCQkJc3RhdGJ1Zi5mX2ZuYW1lKTsKKwkJCXRwcmludGYoImZfZnBhY2s9XCIlLipzXCJ9IiwKKwkJCQkoaW50KSBzaXplb2Yoc3RhdGJ1Zi5mX2ZwYWNrKSwKKwkJCQlzdGF0YnVmLmZfZnBhY2spOworCQl9CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogU1VOT1M0ICovCisKK2ludAorc3lzX3Bpdm90cm9vdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworCisvKiBkaXJlY3RvcnkgKi8KK2ludAorc3lzX2NoZGlyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2RlY29kZV9ta2RpcihzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXRdKTsKKwkJdHByaW50ZigiLCAlI2xvIiwgdGNwLT51X2FyZ1tvZmZzZXQgKyAxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19ta2RpcihzdHJ1Y3QgdGNiICp0Y3ApCit7CisJcmV0dXJuIGRlY29kZV9ta2Rpcih0Y3AsIDApOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX21rZGlyYXQoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlwcmludF9kaXJmZCh0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gZGVjb2RlX21rZGlyKHRjcCwgMSk7Cit9CisjZW5kaWYKKworaW50CitzeXNfcm1kaXIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZmNoZGlyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2Nocm9vdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19mY2hyb290KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2xpbmsodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfbGlua2F0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludF9kaXJmZCh0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50X2RpcmZkKHRjcC0+dV9hcmdbMl0pOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzNdKTsKKwkJdHByaW50ZigiLCAlbGQiLCB0Y3AtPnVfYXJnWzRdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50CitzeXNfdW5saW5rKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBMSU5VWAorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHVubGlua2F0ZmxhZ3NbXSA9IHsKKyNpZm5kZWYgQVRfUkVNT1ZFRElSCisjIGRlZmluZSBBVF9SRU1PVkVESVIgICAgICAgICAgICAweDIwMAorI2VuZGlmCisJeyBBVF9SRU1PVkVESVIsCSJBVF9SRU1PVkVESVIiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK2ludAorc3lzX3VubGlua2F0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludF9kaXJmZCh0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3ModW5saW5rYXRmbGFncywgdGNwLT51X2FyZ1syXSwgIkFUXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQKK3N5c19zeW1saW5rKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX3N5bWxpbmthdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50X2RpcmZkKHRjcC0+dV9hcmdbMV0pOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworc3RhdGljIGludAorZGVjb2RlX3JlYWRsaW5rKHN0cnVjdCB0Y2IgKnRjcCwgaW50IG9mZnNldCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnW29mZnNldF0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMV0pOworCQllbHNlCisJCQlwcmludHBhdGhuKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXQgKyAxXSwgdGNwLT51X3J2YWwpOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMl0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfcmVhZGxpbmsoc3RydWN0IHRjYiAqdGNwKQoreworCXJldHVybiBkZWNvZGVfcmVhZGxpbmsodGNwLCAwKTsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19yZWFkbGlua2F0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcHJpbnRfZGlyZmQodGNwLT51X2FyZ1swXSk7CisJcmV0dXJuIGRlY29kZV9yZWFkbGluayh0Y3AsIDEpOworfQorI2VuZGlmCisKK2ludAorc3lzX3JlbmFtZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19yZW5hbWVhdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRfZGlyZmQodGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludF9kaXJmZCh0Y3AtPnVfYXJnWzJdKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1szXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKK2ludAorc3lzX2Nob3duKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnR1aWQoIiwgIiwgdGNwLT51X2FyZ1sxXSk7CisJCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMl0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19mY2hvd25hdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRfZGlyZmQodGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJcHJpbnR1aWQoIiwgIiwgdGNwLT51X2FyZ1szXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MoZnN0YXRhdGZsYWdzLCB0Y3AtPnVfYXJnWzRdLCAiQVRfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKK2ludAorc3lzX2ZjaG93bih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMV0pOworCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2RlY29kZV9jaG1vZChzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXRdKTsKKwkJdHByaW50ZigiLCAlI2xvIiwgdGNwLT51X2FyZ1tvZmZzZXQgKyAxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19jaG1vZChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJcmV0dXJuIGRlY29kZV9jaG1vZCh0Y3AsIDApOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX2ZjaG1vZGF0KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcHJpbnRfZGlyZmQodGNwLT51X2FyZ1swXSk7CisJcmV0dXJuIGRlY29kZV9jaG1vZCh0Y3AsIDEpOworfQorI2VuZGlmCisKK2ludAorc3lzX2ZjaG1vZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAlI2xvIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgQUxQSEEKK2ludAorc3lzX29zZl91dGltZXModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJdHByaW50ZigiLCAiKTsKKwlwcmludHR2X2JpdG5lc3ModGNwLCB0Y3AtPnVfYXJnWzFdLCBCSVRORVNTXzMyKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworc3RhdGljIGludAorZGVjb2RlX3V0aW1lcyhzdHJ1Y3QgdGNiICp0Y3AsIGludCBvZmZzZXQpCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1tvZmZzZXRdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0ICsgMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdXRpbWVzKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZGVjb2RlX3V0aW1lcyh0Y3AsIDApOworfQorCisjaWZkZWYgTElOVVgKK2ludAorc3lzX2Z1dGltZXNhdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXByaW50X2RpcmZkKHRjcC0+dV9hcmdbMF0pOworCXJldHVybiBkZWNvZGVfdXRpbWVzKHRjcCwgMSk7Cit9CisjZW5kaWYKKworaW50CitzeXNfdXRpbWUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXVuaW9uIHsKKwkJbG9uZyB1dGxbMl07CisJCWludCB1dGlbMl07CisJfSB1OworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCWlmICghdGNwLT51X2FyZ1sxXSkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZSBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1sxXSwKKwkJCQkyICogcGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0sCisJCQkJKGNoYXIgKikgJnUpIDwgMCkKKwkJCXRwcmludGYoIls/LCA/XSIpOworCQllbHNlIGlmIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XQorCQkJID09IHNpemVvZiB1LnV0bFswXSkgeworCQkJdHByaW50ZigiWyVzLCIsIHNwcmludHRpbWUodS51dGxbMF0pKTsKKwkJCXRwcmludGYoIiAlc10iLCBzcHJpbnR0aW1lKHUudXRsWzFdKSk7CisJCX0KKwkJZWxzZSBpZiAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0KKwkJCSA9PSBzaXplb2YgdS51dGlbMF0pIHsKKwkJCXRwcmludGYoIlslcywiLCBzcHJpbnR0aW1lKHUudXRpWzBdKSk7CisJCQl0cHJpbnRmKCIgJXNdIiwgc3ByaW50dGltZSh1LnV0aVsxXSkpOworCQl9CisJCWVsc2UKKwkJCWFib3J0KCk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitkZWNvZGVfbWtub2Qoc3RydWN0IHRjYiAqdGNwLCBpbnQgb2Zmc2V0KQoreworCWludCBtb2RlID0gdGNwLT51X2FyZ1tvZmZzZXQgKyAxXTsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbb2Zmc2V0XSk7CisJCXRwcmludGYoIiwgJXMiLCBzcHJpbnRtb2RlKG1vZGUpKTsKKwkJc3dpdGNoIChtb2RlICYgU19JRk1UKSB7CisJCWNhc2UgU19JRkNIUjogY2FzZSBTX0lGQkxLOgorI2lmZGVmIExJTlVYU1BBUkMKKwkJCWlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDEpCisJCQl0cHJpbnRmKCIsIG1ha2VkZXYoJWx1LCAlbHUpIiwKKwkJCQkodW5zaWduZWQgbG9uZykgKCh0Y3AtPnVfYXJnW29mZnNldCArIDJdID4+IDE4KSAmIDB4M2ZmZiksCisJCQkJKHVuc2lnbmVkIGxvbmcpICh0Y3AtPnVfYXJnW29mZnNldCArIDJdICYgMHgzZmZmZikpOworCQkJZWxzZQorI2VuZGlmCisJCQl0cHJpbnRmKCIsIG1ha2VkZXYoJWx1LCAlbHUpIiwKKwkJCQkodW5zaWduZWQgbG9uZykgbWFqb3IodGNwLT51X2FyZ1tvZmZzZXQgKyAyXSksCisJCQkJKHVuc2lnbmVkIGxvbmcpIG1pbm9yKHRjcC0+dV9hcmdbb2Zmc2V0ICsgMl0pKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX21rbm9kKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlyZXR1cm4gZGVjb2RlX21rbm9kKHRjcCwgMCk7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfbWtub2RhdChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXByaW50X2RpcmZkKHRjcC0+dV9hcmdbMF0pOworCXJldHVybiBkZWNvZGVfbWtub2QodGNwLCAxKTsKK30KKyNlbmRpZgorCitpbnQKK3N5c19ta2ZpZm8odGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICUjbG8iLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2ZzeW5jKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBMSU5VWAorCitzdGF0aWMgdm9pZAorcHJpbnRkaXIodGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworCXN0cnVjdCBkaXJlbnQgZDsKKworCWlmICghdmVyYm9zZSh0Y3ApKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmZCkgPCAwKSB7CisJCXRwcmludGYoInsuLi59Iik7CisJCXJldHVybjsKKwl9CisJdHByaW50Zigie2RfaW5vPSVsZCwgIiwgKHVuc2lnbmVkIGxvbmcpIGQuZF9pbm8pOworCXRwcmludGYoImRfbmFtZT0iKTsKKwlwcmludHBhdGhuKHRjcCwgKGxvbmcpICgoc3RydWN0IGRpcmVudCAqKSBhZGRyKS0+ZF9uYW1lLCBkLmRfcmVjbGVuKTsKKwl0cHJpbnRmKCJ9Iik7Cit9CisKK2ludAorc3lzX3JlYWRkaXIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdGNwLT51X3J2YWwgPT0gMCB8fCAhdmVyYm9zZSh0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlCisJCQlwcmludGRpcih0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQkvKiBOb3QgbXVjaCBwb2ludCBpbiBwcmludGluZyB0aGlzIG91dCwgaXQgaXMgYWx3YXlzIDEuICovCisJCWlmICh0Y3AtPnVfYXJnWzJdICE9IDEpCisJCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIExJTlVYICovCisKKyNpZiBkZWZpbmVkIEZSRUVCU0QgfHwgZGVmaW5lZCBMSU5VWAorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGRpcmVudHR5cGVzW10gPSB7CisJeyBEVF9VTktOT1dOLAkiRFRfVU5LTk9XTiIgCX0sCisJeyBEVF9GSUZPLAkiRFRfRklGTyIgCX0sCisJeyBEVF9DSFIsCSJEVF9DSFIiIAl9LAorCXsgRFRfRElSLAkiRFRfRElSIiAJfSwKKwl7IERUX0JMSywJIkRUX0JMSyIgCX0sCisJeyBEVF9SRUcsCSJEVF9SRUciIAl9LAorCXsgRFRfTE5LLAkiRFRfTE5LIiAJfSwKKwl7IERUX1NPQ0ssCSJEVF9TT0NLIiAJfSwKKwl7IERUX1dIVCwJIkRUX1dIVCIgCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKKyNlbmRpZgorCitpbnQKK3N5c19nZXRkZW50cyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IGksIGxlbiwgZGVudHMgPSAwOworCWNoYXIgKmJ1ZjsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXJldHVybiAwOworCX0KKwlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKSB7CisJCXRwcmludGYoIiUjbHgsICVsdSIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQlyZXR1cm4gMDsKKwl9CisJbGVuID0gdGNwLT51X3J2YWw7CisJaWYgKChidWYgPSBtYWxsb2MobGVuKSkgPT0gTlVMTCkgeworCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzFdLCBsZW4sIGJ1ZikgPCAwKSB7CisJCXRwcmludGYoIiUjbHgsICVsdSIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQlmcmVlKGJ1Zik7CisJCXJldHVybiAwOworCX0KKwlpZiAoIWFiYnJldih0Y3ApKQorCQl0cHJpbnRmKCJ7Iik7CisJZm9yIChpID0gMDsgaSA8IGxlbjspIHsKKwkJc3RydWN0IGtlcm5lbF9kaXJlbnQgKmQgPSAoc3RydWN0IGtlcm5lbF9kaXJlbnQgKikgJmJ1ZltpXTsKKyNpZmRlZiBMSU5VWAorCQlpZiAoIWFiYnJldih0Y3ApKSB7CisJCQl0cHJpbnRmKCIlc3tkX2lubz0lbHUsIGRfb2ZmPSVsdSwgIiwKKwkJCQlpID8gIiAiIDogIiIsIGQtPmRfaW5vLCBkLT5kX29mZik7CisJCQl0cHJpbnRmKCJkX3JlY2xlbj0ldSwgZF9uYW1lPVwiJXNcIn0iLAorCQkJCWQtPmRfcmVjbGVuLCBkLT5kX25hbWUpOworCQl9CisjZW5kaWYgLyogTElOVVggKi8KKyNpZmRlZiBTVlI0CisJCWlmICghYWJicmV2KHRjcCkpIHsKKwkJCXRwcmludGYoIiVze2RfaW5vPSVsdSwgZF9vZmY9JWx1LCAiLAorCQkJCWkgPyAiICIgOiAiIiwKKwkJCQkodW5zaWduZWQgbG9uZykgZC0+ZF9pbm8sCisJCQkJKHVuc2lnbmVkIGxvbmcpIGQtPmRfb2ZmKTsKKwkJCXRwcmludGYoImRfcmVjbGVuPSV1LCBkX25hbWU9XCIlc1wifSIsCisJCQkJZC0+ZF9yZWNsZW4sIGQtPmRfbmFtZSk7CisJCX0KKyNlbmRpZiAvKiBTVlI0ICovCisjaWZkZWYgU1VOT1M0CisJCWlmICghYWJicmV2KHRjcCkpIHsKKwkJCXRwcmludGYoIiVze2Rfb2ZmPSVsdSwgZF9maWxlbm89JWx1LCBkX3JlY2xlbj0ldSwgIiwKKwkJCQlpID8gIiAiIDogIiIsIGQtPmRfb2ZmLCBkLT5kX2ZpbGVubywKKwkJCQlkLT5kX3JlY2xlbik7CisJCQl0cHJpbnRmKCJkX25hbWxlbj0ldSwgZF9uYW1lPVwiJS4qc1wifSIsCisJCQkJZC0+ZF9uYW1sZW4sIGQtPmRfbmFtbGVuLCBkLT5kX25hbWUpOworCQl9CisjZW5kaWYgLyogU1VOT1M0ICovCisjaWZkZWYgRlJFRUJTRAorCQlpZiAoIWFiYnJldih0Y3ApKSB7CisJCQl0cHJpbnRmKCIlc3tkX2ZpbGVubz0ldSwgZF9yZWNsZW49JXUsIGRfdHlwZT0iLAorCQkJCWkgPyAiICIgOiAiIiwgZC0+ZF9maWxlbm8sIGQtPmRfcmVjbGVuKTsKKwkJCXByaW50eHZhbChkaXJlbnR0eXBlcywgZC0+ZF90eXBlLCAiRFRfPz8/Iik7CisJCQl0cHJpbnRmKCIsIGRfbmFtbGVuPSV1LCBkX25hbWU9XCIlLipzXCJ9IiwKKwkJCQlkLT5kX25hbWxlbiwgZC0+ZF9uYW1sZW4sIGQtPmRfbmFtZSk7CisJCX0KKyNlbmRpZiAvKiBGUkVFQlNEICovCisJCWlmICghZC0+ZF9yZWNsZW4pIHsKKwkJCXRwcmludGYoIi8qIGRfcmVjbGVuID09IDAsIHByb2JsZW0gaGVyZSAqLyIpOworCQkJYnJlYWs7CisJCX0KKwkJaSArPSBkLT5kX3JlY2xlbjsKKwkJZGVudHMrKzsKKwl9CisJaWYgKCFhYmJyZXYodGNwKSkKKwkJdHByaW50ZigifSIpOworCWVsc2UKKwkJdHByaW50ZigiLyogJXUgZW50cmllcyAqLyIsIGRlbnRzKTsKKwl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOworCWZyZWUoYnVmKTsKKwlyZXR1cm4gMDsKK30KKworCisjaWYgX0xGUzY0X0xBUkdFRklMRQoraW50CitzeXNfZ2V0ZGVudHM2NCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IGksIGxlbiwgZGVudHMgPSAwOworCWNoYXIgKmJ1ZjsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXJldHVybiAwOworCX0KKwlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKSB7CisJCXRwcmludGYoIiUjbHgsICVsdSIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQlyZXR1cm4gMDsKKwl9CisJbGVuID0gdGNwLT51X3J2YWw7CisJaWYgKChidWYgPSBtYWxsb2MobGVuKSkgPT0gTlVMTCkgeworCQl0cHJpbnRmKCIlI2x4LCAlbHUiLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzFdLCBsZW4sIGJ1ZikgPCAwKSB7CisJCXRwcmludGYoIiUjbHgsICVsdSIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQlmcmVlKGJ1Zik7CisJCXJldHVybiAwOworCX0KKwlpZiAoIWFiYnJldih0Y3ApKQorCQl0cHJpbnRmKCJ7Iik7CisJZm9yIChpID0gMDsgaSA8IGxlbjspIHsKKwkJc3RydWN0IGRpcmVudDY0ICpkID0gKHN0cnVjdCBkaXJlbnQ2NCAqKSAmYnVmW2ldOworI2lmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoU1ZSNCkKKwkJaWYgKCFhYmJyZXYodGNwKSkgeworCQkJdHByaW50ZigiJXN7ZF9pbm89JSIgUFJJdTY0ICIsIGRfb2ZmPSUiIFBSSWQ2NCAiLCAiLAorCQkJCWkgPyAiICIgOiAiIiwKKwkJCQlkLT5kX2lubywKKwkJCQlkLT5kX29mZik7CisjaWZkZWYgTElOVVgKKwkJCXRwcmludGYoImRfdHlwZT0iKTsKKwkJCXByaW50eHZhbChkaXJlbnR0eXBlcywgZC0+ZF90eXBlLCAiRFRfPz8/Iik7CisJCQl0cHJpbnRmKCIsICIpOworI2VuZGlmCisJCQl0cHJpbnRmKCJkX3JlY2xlbj0ldSwgZF9uYW1lPVwiJXNcIn0iLAorCQkJCWQtPmRfcmVjbGVuLCBkLT5kX25hbWUpOworCQl9CisjZW5kaWYgLyogTElOVVggfHwgU1ZSNCAqLworI2lmZGVmIFNVTk9TNAorCQlpZiAoIWFiYnJldih0Y3ApKSB7CisJCQl0cHJpbnRmKCIlc3tkX29mZj0lbHUsIGRfZmlsZW5vPSVsdSwgZF9yZWNsZW49JXUsICIsCisJCQkJaSA/ICIgIiA6ICIiLCBkLT5kX29mZiwgZC0+ZF9maWxlbm8sCisJCQkJZC0+ZF9yZWNsZW4pOworCQkJdHByaW50ZigiZF9uYW1sZW49JXUsIGRfbmFtZT1cIiUuKnNcIn0iLAorCQkJCWQtPmRfbmFtbGVuLCBkLT5kX25hbWxlbiwgZC0+ZF9uYW1lKTsKKwkJfQorI2VuZGlmIC8qIFNVTk9TNCAqLworCQlpICs9IGQtPmRfcmVjbGVuOworCQlkZW50cysrOworCX0KKwlpZiAoIWFiYnJldih0Y3ApKQorCQl0cHJpbnRmKCJ9Iik7CisJZWxzZQorCQl0cHJpbnRmKCIvKiAldSBlbnRyaWVzICovIiwgZGVudHMpOworCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7CisJZnJlZShidWYpOworCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZmRlZiBGUkVFQlNECitpbnQKK3N5c19nZXRkaXJlbnRyaWVzKHRjcCkKK3N0cnVjdCB0Y2IgKiB0Y3A7Cit7CisJaW50IGksIGxlbiwgZGVudHMgPSAwOworCWxvbmcgYmFzZXA7CisJY2hhciAqYnVmOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJCXJldHVybiAwOworCX0KKwlsZW4gPSB0Y3AtPnVfcnZhbDsKKwlpZiAoKGJ1ZiA9IG1hbGxvYyhsZW4pKSA9PSBOVUxMKSB7CisJCXRwcmludGYoIiUjbHgsICVsdSwgJSNseCIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pOworCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMV0sIGxlbiwgYnVmKSA8IDApIHsKKwkJdHByaW50ZigiJSNseCwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJCWZyZWUoYnVmKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmICghYWJicmV2KHRjcCkpCisJCXRwcmludGYoInsiKTsKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOykgeworCQlzdHJ1Y3Qga2VybmVsX2RpcmVudCAqZCA9IChzdHJ1Y3Qga2VybmVsX2RpcmVudCAqKSAmYnVmW2ldOworCQlpZiAoIWFiYnJldih0Y3ApKSB7CisJCQl0cHJpbnRmKCIlc3tkX2ZpbGVubz0ldSwgZF9yZWNsZW49JXUsIGRfdHlwZT0iLAorCQkJCWkgPyAiICIgOiAiIiwgZC0+ZF9maWxlbm8sIGQtPmRfcmVjbGVuKTsKKwkJCXByaW50eHZhbChkaXJlbnR0eXBlcywgZC0+ZF90eXBlLCAiRFRfPz8/Iik7CisJCQl0cHJpbnRmKCIsIGRfbmFtbGVuPSV1LCBkX25hbWU9XCIlLipzXCJ9IiwKKwkJCQlkLT5kX25hbWxlbiwgZC0+ZF9uYW1sZW4sIGQtPmRfbmFtZSk7CisJCX0KKwkJaSArPSBkLT5kX3JlY2xlbjsKKwkJZGVudHMrKzsKKwl9CisJaWYgKCFhYmJyZXYodGNwKSkKKwkJdHByaW50ZigifSIpOworCWVsc2UKKwkJdHByaW50ZigiLyogJXUgZW50cmllcyAqLyIsIGRlbnRzKTsKKwlmcmVlKGJ1Zik7CisJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmYmFzZXApIDwgMCkKKwkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJZWxzZQorCQl0cHJpbnRmKCIsIFslbHVdIiwgYmFzZXApOworCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfZ2V0Y3dkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZXhpdGluZyh0Y3ApKSB7CisJaWYgKHN5c2Vycm9yKHRjcCkpCisJICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwllbHNlCisJICAgIHByaW50cGF0aG4odGNwLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfcnZhbCAtIDEpOworCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIExJTlVYICovCisKKyNpZmRlZiBGUkVFQlNECitpbnQKK3N5c19fX2dldGN3ZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGV4aXRpbmcodGNwKSkgeworCWlmIChzeXNlcnJvcih0Y3ApKQorCSAgICB0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJZWxzZQorCSAgICBwcmludHBhdGhuKHRjcCwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworI2lmZGVmIEhBVkVfU1lTX0FTWU5DSF9ICisKK2ludAorc3lzX2Fpb3JlYWQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBhaW9fcmVzdWx0X3QgcmVzOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9IGVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZQorCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUsICVsdSwgIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJCXByaW50eHZhbCh3aGVuY2UsIHRjcC0+dV9hcmdbNF0sICJMXz8/PyIpOworCQlpZiAoc3lzZXJyb3IodGNwKSB8fCB0Y3AtPnVfYXJnWzVdID09IDAKKwkJICAgIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s1XSwgJnJlcykgPCAwKQorCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s1XSk7CisJCWVsc2UKKwkJCXRwcmludGYoIiwge2Fpb19yZXR1cm4gJWQgYWlvX2Vycm5vICVkfSIsCisJCQkJcmVzLmFpb19yZXR1cm4sIHJlcy5haW9fZXJybm8pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfYWlvd3JpdGUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBhaW9fcmVzdWx0X3QgcmVzOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWx1LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUsICVsdSwgIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJCXByaW50eHZhbCh3aGVuY2UsIHRjcC0+dV9hcmdbNF0sICJMXz8/PyIpOworCX0KKwllbHNlIHsKKwkJaWYgKHRjcC0+dV9hcmdbNV0gPT0gMCkKKwkJCXRwcmludGYoIiwgTlVMTCIpOworCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApCisJCSAgICB8fCB1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNV0sICZyZXMpIDwgMCkKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbNV0pOworCQllbHNlCisJCQl0cHJpbnRmKCIsIHthaW9fcmV0dXJuICVkIGFpb19lcnJubyAlZH0iLAorCQkJCXJlcy5haW9fcmV0dXJuLCByZXMuYWlvX2Vycm5vKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2Fpb3dhaXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1swXSk7CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2Fpb2NhbmNlbCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IGFpb19yZXN1bHRfdCByZXM7CisKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCWlmICh0Y3AtPnVfYXJnWzBdID09IDApCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkKKwkJICAgIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnJlcykgPCAwKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlCisJCQl0cHJpbnRmKCJ7YWlvX3JldHVybiAlZCBhaW9fZXJybm8gJWR9IiwKKwkJCQlyZXMuYWlvX3JldHVybiwgcmVzLmFpb19lcnJubyk7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogSEFWRV9TWVNfQVNZTkNIX0ggKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHhhdHRyZmxhZ3NbXSA9IHsKKyNpZmRlZiBYQVRUUl9DUkVBVEUKKwl7IFhBVFRSX0NSRUFURSwJICJYQVRUUl9DUkVBVEUiIH0sCisJeyBYQVRUUl9SRVBMQUNFLCAiWEFUVFJfUkVQTEFDRSIgfSwKKyNlbmRpZgorCXsgMCwJCSBOVUxMIH0KK307CisKK3N0YXRpYyB2b2lkCitwcmludF94YXR0cl92YWwodGNwLCBmYWlsZWQsIGFyZywgaW5zaXplLCBzaXplKQorc3RydWN0IHRjYiAqdGNwOworaW50IGZhaWxlZDsKK3Vuc2lnbmVkIGxvbmcgYXJnOwordW5zaWduZWQgbG9uZyBpbnNpemUsIHNpemU7Cit7CisgICAgaWYgKCFmYWlsZWQpIHsKKwl1bnNpZ25lZCBsb25nIGNhcGFjaXR5ID0gNCAqIHNpemUgKyAxOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IChjYXBhY2l0eSA8IHNpemUpID8gTlVMTCA6IG1hbGxvYyhjYXBhY2l0eSk7CisJaWYgKGJ1ZiA9PSBOVUxMIHx8IC8qIHByb2JhYmx5IGEgYm9ndXMgc2l6ZSBhcmd1bWVudCAqLworCSAgICB1bW92ZW4odGNwLCBhcmcsIHNpemUsIChjaGFyICopICZidWZbMyAqIHNpemVdKSA8IDApIHsKKwkgICAgZmFpbGVkID0gMTsKKwl9CisJZWxzZSB7CisJICAgIHVuc2lnbmVkIGNoYXIgKm91dCA9IGJ1ZjsKKwkgICAgdW5zaWduZWQgY2hhciAqaW4gPSAmYnVmWzMgKiBzaXplXTsKKwkgICAgc2l6ZV90IGk7CisJICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyArK2kpCisJCWlmIChpc3ByaW50KGluW2ldKSkKKwkJICAgICpvdXQrKyA9IGluW2ldOworCQllbHNlIHsKKyNkZWZpbmUgdG9oZXgobikgIjAxMjM0NTY3ODlhYmNkZWYiW25dCisJCSAgICAqb3V0KysgPSAnXFwnOworCQkgICAgKm91dCsrID0gJ3gnOworCQkgICAgKm91dCsrID0gdG9oZXgoaW5baV0gLyAxNik7CisJCSAgICAqb3V0KysgPSB0b2hleChpbltpXSAlIDE2KTsKKwkJfQorCSAgICAvKiBEb24ndCBwcmludCB0ZXJtaW5hdGluZyBOVUwgaWYgdGhlcmUgaXMgb25lLiAgKi8KKwkgICAgaWYgKGkgPiAwICYmIGluW2kgLSAxXSA9PSAnXDAnKQorCQlvdXQgLT0gNDsKKwkgICAgKm91dCA9ICdcMCc7CisJICAgIHRwcmludGYoIiwgXCIlc1wiLCAlbGQiLCBidWYsIGluc2l6ZSk7CisJfQorCWZyZWUoYnVmKTsKKyAgICB9CisgICAgaWYgKGZhaWxlZCkKKwl0cHJpbnRmKCIsIDB4JWx4LCAlbGQiLCBhcmcsIGluc2l6ZSk7Cit9CisKK2ludAorc3lzX3NldHhhdHRyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCXRwcmludGYoIiwgIik7CisJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7CisJcHJpbnRfeGF0dHJfdmFsKHRjcCwgMCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1szXSk7CisJdHByaW50ZigiLCAiKTsKKwlwcmludGZsYWdzKHhhdHRyZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJYQVRUUl8/Pz8iKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2ZzZXR4YXR0cih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworCXByaW50X3hhdHRyX3ZhbCh0Y3AsIDAsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbM10pOworCXRwcmludGYoIiwgIik7CisJcHJpbnRmbGFncyh4YXR0cmZsYWdzLCB0Y3AtPnVfYXJnWzRdLCAiWEFUVFJfPz8/Iik7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQKK3N5c19nZXR4YXR0cih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwl0cHJpbnRmKCIsICIpOworCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworICAgIH0gZWxzZSB7CisJcHJpbnRfeGF0dHJfdmFsKHRjcCwgc3lzZXJyb3IodGNwKSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwKKwkJCXRjcC0+dV9ydmFsKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2ZnZXR4YXR0cih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworICAgIH0gZWxzZSB7CisJcHJpbnRfeGF0dHJfdmFsKHRjcCwgc3lzZXJyb3IodGNwKSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSwKKwkJCXRjcC0+dV9ydmFsKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2xpc3R4YXR0cih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKyAgICB9IGVsc2UgeworCS8qIFhYWCBQcmludCB2YWx1ZSBpbiBmb3JtYXQgKi8KKwl0cHJpbnRmKCIsICVwLCAlbHUiLCAodm9pZCAqKSB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2ZsaXN0eGF0dHIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1swXSk7CisgICAgfSBlbHNlIHsKKwkvKiBYWFggUHJpbnQgdmFsdWUgaW4gZm9ybWF0ICovCisJdHByaW50ZigiLCAlcCwgJWx1IiwgKHZvaWQgKikgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQKK3N5c19yZW1vdmV4YXR0cih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwl0cHJpbnRmKCIsICIpOworCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworaW50CitzeXNfZnJlbW92ZXhhdHRyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYWR2aXNlW10gPSB7CisgIHsgUE9TSVhfRkFEVl9OT1JNQUwsCQkiUE9TSVhfRkFEVl9OT1JNQUwiCX0sCisgIHsgUE9TSVhfRkFEVl9SQU5ET00sCQkiUE9TSVhfRkFEVl9SQU5ET00iCX0sCisgIHsgUE9TSVhfRkFEVl9TRVFVRU5USUFMLAkiUE9TSVhfRkFEVl9TRVFVRU5USUFMIgl9LAorICB7IFBPU0lYX0ZBRFZfV0lMTE5FRUQsCSJQT1NJWF9GQURWX1dJTExORUVEIgl9LAorICB7IFBPU0lYX0ZBRFZfRE9OVE5FRUQsCSJQT1NJWF9GQURWX0RPTlRORUVEIgl9LAorICB7IFBPU0lYX0ZBRFZfTk9SRVVTRSwJCSJQT1NJWF9GQURWX05PUkVVU0UiCX0sCisgIHsgMCwJCQkJTlVMTAkJCX0KK307CisKKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19mYWR2aXNlNjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJdHByaW50ZigiJWxkLCAlbGxkLCAlbGQsICIsCisJCXRjcC0+dV9hcmdbMF0sCisjIGlmIGRlZmluZWQgSUE2NCB8fCBkZWZpbmVkIFg4Nl82NCB8fCBkZWZpbmVkIEFMUEhBCisJCShsb25nIGxvbmcgaW50KSB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwlwcmludHh2YWwoYWR2aXNlLCB0Y3AtPnVfYXJnWzNdLCAiUE9TSVhfRkFEVl8/Pz8iKTsKKyNlbHNlCisJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKSwgdGNwLT51X2FyZ1szXSk7CisJcHJpbnR4dmFsKGFkdmlzZSwgdGNwLT51X2FyZ1s0XSwgIlBPU0lYX0ZBRFZfPz8/Iik7CisjZW5kaWYKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworCitpbnQKK3N5c19mYWR2aXNlNjRfNjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJdHByaW50ZigiJWxkLCAlbGxkLCAlbGxkLCAiLAorCQl0Y3AtPnVfYXJnWzBdLAorIyBpZiBkZWZpbmVkIElBNjQgfHwgZGVmaW5lZCBYODZfNjQgfHwgZGVmaW5lZCBBTFBIQQorCQkobG9uZyBsb25nIGludCkgdGNwLT51X2FyZ1sxXSwgKGxvbmcgbG9uZyBpbnQpIHRjcC0+dV9hcmdbMl0pOworCXByaW50eHZhbChhZHZpc2UsIHRjcC0+dV9hcmdbM10sICJQT1NJWF9GQURWXz8/PyIpOworI2Vsc2UKKwkJTE9OR19MT05HKHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pLAorCQlMT05HX0xPTkcodGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSkpOworCXByaW50eHZhbChhZHZpc2UsIHRjcC0+dV9hcmdbNV0sICJQT1NJWF9GQURWXz8/PyIpOworI2VuZGlmCisgICAgfQorICAgIHJldHVybiAwOworfQorCisvLyNlbmRpZiAvKkhBVkVfQU5EUk9JRF9PUyAqLworI2lmZGVmIExJTlVYCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgaW5vdGlmeV9tb2Rlc1tdID0geworCXsgMHgwMDAwMDAwMSwgIklOX0FDQ0VTUyIgfSwKKwl7IDB4MDAwMDAwMDIsICJJTl9NT0RJRlkiIH0sCisJeyAweDAwMDAwMDA0LCAiSU5fQVRUUklCIiB9LAorCXsgMHgwMDAwMDAwOCwgIklOX0NMT1NFX1dSSVRFIiB9LAorCXsgMHgwMDAwMDAxMCwgIklOX0NMT1NFX05PV1JJVEUiIH0sCisJeyAweDAwMDAwMDIwLCAiSU5fT1BFTiIgfSwKKwl7IDB4MDAwMDAwNDAsICJJTl9NT1ZFRF9GUk9NIiB9LAorCXsgMHgwMDAwMDA4MCwgIklOX01PVkVEX1RPIiB9LAorCXsgMHgwMDAwMDEwMCwgIklOX0NSRUFURSIgfSwKKwl7IDB4MDAwMDAyMDAsICJJTl9ERUxFVEUiIH0sCisJeyAweDAwMDAwNDAwLCAiSU5fREVMRVRFX1NFTEYiIH0sCisJeyAweDAwMDAwODAwLCAiSU5fTU9WRV9TRUxGIiB9LAorCXsgMHgwMDAwMjAwMCwgIklOX1VOTU9VTlQiIH0sCisJeyAweDAwMDA0MDAwLCAiSU5fUV9PVkVSRkxPVyIgfSwKKwl7IDB4MDAwMDgwMDAsICJJTl9JR05PUkVEIiB9LAorCXsgMHgwMTAwMDAwMCwgIklOX09OTFlESVIiIH0sCisJeyAweDAyMDAwMDAwLCAiSU5fRE9OVF9GT0xMT1ciIH0sCisJeyAweDIwMDAwMDAwLCAiSU5fTUFTS19BREQiIH0sCisJeyAweDQwMDAwMDAwLCAiSU5fSVNESVIiIH0sCisJeyAweDgwMDAwMDAwLCAiSU5fT05FU0hPVCIgfQorfTsKKworaW50CitzeXNfaW5vdGlmeV9hZGRfd2F0Y2goc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZsYWdzKGlub3RpZnlfbW9kZXMsIHRjcC0+dV9hcmdbMl0sICJJTl8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2lub3RpZnlfcm1fd2F0Y2goc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgJWxkIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9pbnN0YWxsLXNoIGIvaW5zdGFsbC1zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNmY5NmYzCi0tLSAvZGV2L251bGwKKysrIGIvaW5zdGFsbC1zaApAQCAtMCwwICsxLDI3NiBAQAorIyEvYmluL3NoCisjCisjIGluc3RhbGwgLSBpbnN0YWxsIGEgcHJvZ3JhbSwgc2NyaXB0LCBvciBkYXRhZmlsZQorIyBUaGlzIGNvbWVzIGZyb20gWDExUjUgKG1pdC91dGlsL3NjcmlwdHMvaW5zdGFsbC5zaCkuCisjCisjIENvcHlyaWdodCAxOTkxIGJ5IHRoZSBNYXNzYWNodXNldHRzIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5CisjCisjIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cworIyBkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBpcyBoZXJlYnkgZ3JhbnRlZCB3aXRob3V0IGZlZSwgcHJvdmlkZWQgdGhhdAorIyB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdCBib3RoIHRoYXQKKyMgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZworIyBkb2N1bWVudGF0aW9uLCBhbmQgdGhhdCB0aGUgbmFtZSBvZiBNLkkuVC4gbm90IGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3IKKyMgcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLAorIyB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uICBNLkkuVC4gbWFrZXMgbm8gcmVwcmVzZW50YXRpb25zIGFib3V0IHRoZQorIyBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0IGlzIHByb3ZpZGVkICJhcyBpcyIKKyMgd2l0aG91dCBleHByZXNzIG9yIGltcGxpZWQgd2FycmFudHkuCisjCisjIENhbGxpbmcgdGhpcyBzY3JpcHQgaW5zdGFsbC1zaCBpcyBwcmVmZXJyZWQgb3ZlciBpbnN0YWxsLnNoLCB0byBwcmV2ZW50CisjIGBtYWtlJyBpbXBsaWNpdCBydWxlcyBmcm9tIGNyZWF0aW5nIGEgZmlsZSBjYWxsZWQgaW5zdGFsbCBmcm9tIGl0CisjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCisjCisjIFRoaXMgc2NyaXB0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgQlNEIGluc3RhbGwgc2NyaXB0LCBidXQgd2FzIHdyaXR0ZW4KKyMgZnJvbSBzY3JhdGNoLiAgSXQgY2FuIG9ubHkgaW5zdGFsbCBvbmUgZmlsZSBhdCBhIHRpbWUsIGEgcmVzdHJpY3Rpb24KKyMgc2hhcmVkIHdpdGggbWFueSBPUydzIGluc3RhbGwgcHJvZ3JhbXMuCisKKworIyBzZXQgRE9JVFBST0cgdG8gZWNobyB0byB0ZXN0IHRoaXMgc2NyaXB0CisKKyMgRG9uJ3QgdXNlIDotIHNpbmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlrZSBpdC4KK2RvaXQ9IiR7RE9JVFBST0ctfSIKKworCisjIHB1dCBpbiBhYnNvbHV0ZSBwYXRocyBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGVtIGluIHlvdXIgcGF0aDsgb3IgdXNlIGVudi4gdmFycy4KKworbXZwcm9nPSIke01WUFJPRy1tdn0iCitjcHByb2c9IiR7Q1BQUk9HLWNwfSIKK2NobW9kcHJvZz0iJHtDSE1PRFBST0ctY2htb2R9IgorY2hvd25wcm9nPSIke0NIT1dOUFJPRy1jaG93bn0iCitjaGdycHByb2c9IiR7Q0hHUlBQUk9HLWNoZ3JwfSIKK3N0cmlwcHJvZz0iJHtTVFJJUFBST0ctc3RyaXB9Igorcm1wcm9nPSIke1JNUFJPRy1ybX0iCitta2RpcnByb2c9IiR7TUtESVJQUk9HLW1rZGlyfSIKKwordHJhbnNmb3JtYmFzZW5hbWU9IiIKK3RyYW5zZm9ybV9hcmc9IiIKK2luc3RjbWQ9IiRtdnByb2ciCitjaG1vZGNtZD0iJGNobW9kcHJvZyAwNzU1IgorY2hvd25jbWQ9IiIKK2NoZ3JwY21kPSIiCitzdHJpcGNtZD0iIgorcm1jbWQ9IiRybXByb2cgLWYiCittdmNtZD0iJG12cHJvZyIKK3NyYz0iIgorZHN0PSIiCitkaXJfYXJnPSIiCisKK3doaWxlIFsgeCIkMSIgIT0geCBdOyBkbworICAgIGNhc2UgJDEgaW4KKwktYykgaW5zdGNtZD0kY3Bwcm9nCisJICAgIHNoaWZ0CisJICAgIGNvbnRpbnVlOzsKKworCS1kKSBkaXJfYXJnPXRydWUKKwkgICAgc2hpZnQKKwkgICAgY29udGludWU7OworCisJLW0pIGNobW9kY21kPSIkY2htb2Rwcm9nICQyIgorCSAgICBzaGlmdAorCSAgICBzaGlmdAorCSAgICBjb250aW51ZTs7CisKKwktbykgY2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCisJICAgIHNoaWZ0CisJICAgIHNoaWZ0CisJICAgIGNvbnRpbnVlOzsKKworCS1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKKwkgICAgc2hpZnQKKwkgICAgc2hpZnQKKwkgICAgY29udGludWU7OworCisJLXMpIHN0cmlwY21kPSRzdHJpcHByb2cKKwkgICAgc2hpZnQKKwkgICAgY29udGludWU7OworCisJLXQ9KikgdHJhbnNmb3JtYXJnPWBlY2hvICQxIHwgc2VkICdzLy10PS8vJ2AKKwkgICAgc2hpZnQKKwkgICAgY29udGludWU7OworCisJLWI9KikgdHJhbnNmb3JtYmFzZW5hbWU9YGVjaG8gJDEgfCBzZWQgJ3MvLWI9Ly8nYAorCSAgICBzaGlmdAorCSAgICBjb250aW51ZTs7CisKKwkqKSAgaWYgWyB4IiRzcmMiID0geCBdCisJICAgIHRoZW4KKwkJc3JjPSQxCisJICAgIGVsc2UKKwkJIyB0aGlzIGNvbG9uIGlzIHRvIHdvcmsgYXJvdW5kIGEgMzg2QlNEIC9iaW4vc2ggYnVnCisJCToKKwkJZHN0PSQxCisJICAgIGZpCisJICAgIHNoaWZ0CisJICAgIGNvbnRpbnVlOzsKKyAgICBlc2FjCitkb25lCisKK2lmIFsgeCIkc3JjIiA9IHggXQordGhlbgorCWVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZCIgPiYyCisJZXhpdCAxCitlbHNlCisJOgorZmkKKworaWYgWyB4IiRkaXJfYXJnIiAhPSB4IF07IHRoZW4KKwlkc3Q9JHNyYworCXNyYz0iIgorCisJaWYgWyAtZCAiJGRzdCIgXTsgdGhlbgorCQlpbnN0Y21kPToKKwkJY2htb2RjbWQ9IiIKKwllbHNlCisJCWluc3RjbWQ9JG1rZGlycHJvZworCWZpCitlbHNlCisKKyMgV2FpdGluZyBmb3IgdGhpcyB0byBiZSBkZXRlY3RlZCBieSB0aGUgIiRpbnN0Y21kICRzcmMgJGRzdHRtcCIgY29tbWFuZAorIyBtaWdodCBjYXVzZSBkaXJlY3RvcmllcyB0byBiZSBjcmVhdGVkLCB3aGljaCB3b3VsZCBiZSBlc3BlY2lhbGx5IGJhZAorIyBpZiAkc3JjIChhbmQgdGh1cyAkZHN0dG1wKSBjb250YWlucyAnKicuCisKKwlpZiBbIC1mICIkc3JjIiBdIHx8IFsgLWQgIiRzcmMiIF0KKwl0aGVuCisJCToKKwllbHNlCisJCWVjaG8gIiQwOiAkc3JjIGRvZXMgbm90IGV4aXN0IiA+JjIKKwkJZXhpdCAxCisJZmkKKworCWlmIFsgeCIkZHN0IiA9IHggXQorCXRoZW4KKwkJZWNobyAiJDA6IG5vIGRlc3RpbmF0aW9uIHNwZWNpZmllZCIgPiYyCisJCWV4aXQgMQorCWVsc2UKKwkJOgorCWZpCisKKyMgSWYgZGVzdGluYXRpb24gaXMgYSBkaXJlY3RvcnksIGFwcGVuZCB0aGUgaW5wdXQgZmlsZW5hbWU7IGlmIHlvdXIgc3lzdGVtCisjIGRvZXMgbm90IGxpa2UgZG91YmxlIHNsYXNoZXMgaW4gZmlsZW5hbWVzLCB5b3UgbWF5IG5lZWQgdG8gYWRkIHNvbWUgbG9naWMKKworCWlmIFsgLWQgIiRkc3QiIF0KKwl0aGVuCisJCWRzdD0kZHN0L2BiYXNlbmFtZSAiJHNyYyJgCisJZWxzZQorCQk6CisJZmkKK2ZpCisKKyMjIHRoaXMgc2VkIGNvbW1hbmQgZW11bGF0ZXMgdGhlIGRpcm5hbWUgY29tbWFuZAorZHN0ZGlyPWBlY2hvICIkZHN0IiB8IHNlZCAtZSAncyxbXi9dKiQsLDtzLC8kLCw7cyxeJCwuLCdgCisKKyMgTWFrZSBzdXJlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMuCisjICB0aGlzIHBhcnQgaXMgdGFrZW4gZnJvbSBOb2FoIEZyaWVkbWFuJ3MgbWtpbnN0YWxsZGlycyBzY3JpcHQKKworIyBTa2lwIGxvdHMgb2Ygc3RhdCBjYWxscyBpbiB0aGUgdXN1YWwgY2FzZS4KK2lmIFsgISAtZCAiJGRzdGRpciIgXTsgdGhlbgorZGVmYXVsdElGUz0nCisJJworSUZTPSIke0lGUy0kZGVmYXVsdElGU30iCisKK29JRlM9JElGUworIyBTb21lIHNoJ3MgY2FuJ3QgaGFuZGxlIElGUz0vIGZvciBzb21lIHJlYXNvbi4KK0lGUz0nJScKK3NldCAtIGBlY2hvICIkZHN0ZGlyIiB8IHNlZCAtZSAnc0AvQCVAZycgLWUgJ3NAXiVAL0AnYAorSUZTPSRvSUZTCisKK3BhdGhjb21wPScnCisKK3doaWxlIFsgJCMgLW5lIDAgXSA7IGRvCisJcGF0aGNvbXA9JHBhdGhjb21wJDEKKwlzaGlmdAorCisJaWYgWyAhIC1kICIkcGF0aGNvbXAiIF0gOworICAgICAgICB0aGVuCisJCSRta2RpcnByb2cgIiRwYXRoY29tcCIKKwllbHNlCisJCToKKwlmaQorCisJcGF0aGNvbXA9JHBhdGhjb21wLworZG9uZQorZmkKKworaWYgWyB4IiRkaXJfYXJnIiAhPSB4IF0KK3RoZW4KKwkkZG9pdCAkaW5zdGNtZCAiJGRzdCIgJiYKKworCWlmIFsgeCIkY2hvd25jbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkY2hvd25jbWQgIiRkc3QiOyBlbHNlIDogOyBmaSAmJgorCWlmIFsgeCIkY2hncnBjbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkY2hncnBjbWQgIiRkc3QiOyBlbHNlIDogOyBmaSAmJgorCWlmIFsgeCIkc3RyaXBjbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkc3RyaXBjbWQgIiRkc3QiOyBlbHNlIDogOyBmaSAmJgorCWlmIFsgeCIkY2htb2RjbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkY2htb2RjbWQgIiRkc3QiOyBlbHNlIDogOyBmaQorZWxzZQorCisjIElmIHdlJ3JlIGdvaW5nIHRvIHJlbmFtZSB0aGUgZmluYWwgZXhlY3V0YWJsZSwgZGV0ZXJtaW5lIHRoZSBuYW1lIG5vdy4KKworCWlmIFsgeCIkdHJhbnNmb3JtYXJnIiA9IHggXQorCXRoZW4KKwkJZHN0ZmlsZT1gYmFzZW5hbWUgIiRkc3QiYAorCWVsc2UKKwkJZHN0ZmlsZT1gYmFzZW5hbWUgIiRkc3QiICR0cmFuc2Zvcm1iYXNlbmFtZSB8CisJCQlzZWQgJHRyYW5zZm9ybWFyZ2AkdHJhbnNmb3JtYmFzZW5hbWUKKwlmaQorCisjIGRvbid0IGFsbG93IHRoZSBzZWQgY29tbWFuZCB0byBjb21wbGV0ZWx5IGVsaW1pbmF0ZSB0aGUgZmlsZW5hbWUKKworCWlmIFsgeCIkZHN0ZmlsZSIgPSB4IF0KKwl0aGVuCisJCWRzdGZpbGU9YGJhc2VuYW1lICIkZHN0ImAKKwllbHNlCisJCToKKwlmaQorCisjIE1ha2UgYSBjb3VwbGUgb2YgdGVtcCBmaWxlIG5hbWVzIGluIHRoZSBwcm9wZXIgZGlyZWN0b3J5LgorCisJZHN0dG1wPSRkc3RkaXIvI2luc3QuJCQjCisJcm10bXA9JGRzdGRpci8jcm0uJCQjCisKKyMgVHJhcCB0byBjbGVhbiB1cCB0ZW1wIGZpbGVzIGF0IGV4aXQuCisKKwl0cmFwICdzdGF0dXM9JD87IHJtIC1mICIkZHN0dG1wIiAiJHJtdG1wIiAmJiBleGl0ICRzdGF0dXMnIDAKKwl0cmFwICcoZXhpdCAkPyk7IGV4aXQnIDEgMiAxMyAxNQorCisjIE1vdmUgb3IgY29weSB0aGUgZmlsZSBuYW1lIHRvIHRoZSB0ZW1wIG5hbWUKKworCSRkb2l0ICRpbnN0Y21kICIkc3JjIiAiJGRzdHRtcCIgJiYKKworIyBhbmQgc2V0IGFueSBvcHRpb25zOyBkbyBjaG1vZCBsYXN0IHRvIHByZXNlcnZlIHNldHVpZCBiaXRzCisKKyMgSWYgYW55IG9mIHRoZXNlIGZhaWwsIHdlIGFib3J0IHRoZSB3aG9sZSB0aGluZy4gIElmIHdlIHdhbnQgdG8KKyMgaWdub3JlIGVycm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUgbm90IHRvIGlnbm9yZQorIyBlcnJvcnMgZnJvbSB0aGUgYWJvdmUgIiRkb2l0ICRpbnN0Y21kICRzcmMgJGRzdHRtcCIgY29tbWFuZC4KKworCWlmIFsgeCIkY2hvd25jbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkY2hvd25jbWQgIiRkc3R0bXAiOyBlbHNlIDo7ZmkgJiYKKwlpZiBbIHgiJGNoZ3JwY21kIiAhPSB4IF07IHRoZW4gJGRvaXQgJGNoZ3JwY21kICIkZHN0dG1wIjsgZWxzZSA6O2ZpICYmCisJaWYgWyB4IiRzdHJpcGNtZCIgIT0geCBdOyB0aGVuICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IGVsc2UgOjtmaSAmJgorCWlmIFsgeCIkY2htb2RjbWQiICE9IHggXTsgdGhlbiAkZG9pdCAkY2htb2RjbWQgIiRkc3R0bXAiOyBlbHNlIDo7ZmkgJiYKKworIyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9sZCBmaWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLiAgV2UgdHJ5IHRoaXMKKyMgdHdvIHdheXMgc2luY2Ugcm0gY2FuJ3QgdW5saW5rIGl0c2VsZiBvbiBzb21lIHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbgorIyBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVyIHJlYXNvbnMuICBJbiB0aGlzIGNhc2UsIHRoZSBmaW5hbCBjbGVhbnVwCisjIG1pZ2h0IGZhaWwgYnV0IHRoZSBuZXcgZmlsZSBzaG91bGQgc3RpbGwgaW5zdGFsbCBzdWNjZXNzZnVsbHkuCisKK3sKKwlpZiBbIC1mICIkZHN0ZGlyLyRkc3RmaWxlIiBdCisJdGhlbgorCQkkZG9pdCAkcm1jbWQgLWYgIiRkc3RkaXIvJGRzdGZpbGUiIDI+L2Rldi9udWxsIHx8CisJCSRkb2l0ICRtdmNtZCAtZiAiJGRzdGRpci8kZHN0ZmlsZSIgIiRybXRtcCIgMj4vZGV2L251bGwgfHwKKwkJeworCQkgIGVjaG8gIiQwOiBjYW5ub3QgdW5saW5rIG9yIHJlbmFtZSAkZHN0ZGlyLyRkc3RmaWxlIiA+JjIKKwkJICAoZXhpdCAxKTsgZXhpdAorCQl9CisJZWxzZQorCQk6CisJZmkKK30gJiYKKworIyBOb3cgcmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uLgorCisJJGRvaXQgJG12Y21kICIkZHN0dG1wIiAiJGRzdGRpci8kZHN0ZmlsZSIKKworZmkgJiYKKworIyBUaGUgZmluYWwgbGl0dGxlIHRyaWNrIHRvICJjb3JyZWN0bHkiIHBhc3MgdGhlIGV4aXQgc3RhdHVzIHRvIHRoZSBleGl0IHRyYXAuCisKK3sKKwkoZXhpdCAwKTsgZXhpdAorfQpkaWZmIC0tZ2l0IGEvaW8uYyBiL2lvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBlNjJkMAotLS0gL2Rldi9udWxsCisrKyBiL2lvLmMKQEAgLTAsMCArMSw0MDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBpby5jLHYgMS4yMCAyMDA1LzA2LzAxIDE5OjIyOjA4IHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2lmIEhBVkVfU1lTX1VJT19ICisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0xPTkdfTE9OR19PRkZfVAorLyoKKyAqIEhhY2tzIGZvciBzeXN0ZW1zIHRoYXQgaGF2ZSBhIGxvbmcgbG9uZyBvZmZfdAorICovCisKKyNkZWZpbmUgc3lzX3ByZWFkNjQJc3lzX3ByZWFkCisjZGVmaW5lIHN5c19wd3JpdGU2NAlzeXNfcHdyaXRlCisjZW5kaWYKKworaW50CitzeXNfcmVhZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9IGVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZQorCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfcnZhbCk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c193cml0ZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZiBIQVZFX1NZU19VSU9fSAordm9pZAordHByaW50X2lvdih0Y3AsIGxlbiwgYWRkcikKK3N0cnVjdCB0Y2IgKiB0Y3A7Cit1bnNpZ25lZCBsb25nIGxlbjsKK3Vuc2lnbmVkIGxvbmcgYWRkcjsKK3sKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwl1bmlvbiB7CisJCXN0cnVjdCB7IHVfaW50MzJfdCBiYXNlOyB1X2ludDMyX3QgbGVuOyB9IGlvdjMyOworCQlzdHJ1Y3QgeyB1X2ludDY0X3QgYmFzZTsgdV9pbnQ2NF90IGxlbjsgfSBpb3Y2NDsKKwl9IGlvdjsKKyNkZWZpbmUgc2l6ZW9mX2lvdiBcCisgIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0IFwKKyAgID8gc2l6ZW9mKGlvdi5pb3YzMikgOiBzaXplb2YoaW92LmlvdjY0KSkKKyNkZWZpbmUgaW92X2lvdl9iYXNlIFwKKyAgKHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldID09IDQgXAorICAgPyAodV9pbnQ2NF90KSBpb3YuaW92MzIuYmFzZSA6IGlvdi5pb3Y2NC5iYXNlKQorI2RlZmluZSBpb3ZfaW92X2xlbiBcCisgIChwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0IFwKKyAgID8gKHVfaW50NjRfdCkgaW92LmlvdjMyLmxlbiA6IGlvdi5pb3Y2NC5sZW4pCisjZWxzZQorCXN0cnVjdCBpb3ZlYyBpb3Y7CisjZGVmaW5lIHNpemVvZl9pb3Ygc2l6ZW9mKGlvdikKKyNkZWZpbmUgaW92X2lvdl9iYXNlIGlvdi5pb3ZfYmFzZQorI2RlZmluZSBpb3ZfaW92X2xlbiBpb3YuaW92X2xlbgorI2VuZGlmCisJdW5zaWduZWQgbG9uZyBzaXplLCBjdXIsIGVuZCwgYWJicmV2X2VuZDsKKwlpbnQgZmFpbGVkID0gMDsKKworCWlmICghbGVuKSB7CisJCXRwcmludGYoIltdIik7CisJCXJldHVybjsKKwl9CisJc2l6ZSA9IGxlbiAqIHNpemVvZl9pb3Y7CisJZW5kID0gYWRkciArIHNpemU7CisJaWYgKCF2ZXJib3NlKHRjcCkgfHwgc2l6ZSAvIHNpemVvZl9pb3YgIT0gbGVuIHx8IGVuZCA8IGFkZHIpIHsKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCWlmIChhYmJyZXYodGNwKSkgeworCQlhYmJyZXZfZW5kID0gYWRkciArIG1heF9zdHJsZW4gKiBzaXplb2ZfaW92OworCQlpZiAoYWJicmV2X2VuZCA8IGFkZHIpCisJCQlhYmJyZXZfZW5kID0gZW5kOworCX0gZWxzZSB7CisJCWFiYnJldl9lbmQgPSBlbmQ7CisJfQorCXRwcmludGYoIlsiKTsKKwlmb3IgKGN1ciA9IGFkZHI7IGN1ciA8IGVuZDsgY3VyICs9IHNpemVvZl9pb3YpIHsKKwkJaWYgKGN1ciA+IGFkZHIpCisJCQl0cHJpbnRmKCIsICIpOworCQlpZiAoY3VyID49IGFiYnJldl9lbmQpIHsKKwkJCXRwcmludGYoIi4uLiIpOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mX2lvdiwgKGNoYXIgKikgJmlvdikgPCAwKSB7CisJCQl0cHJpbnRmKCI/Iik7CisJCQlmYWlsZWQgPSAxOworCQkJYnJlYWs7CisJCX0KKwkJdHByaW50ZigieyIpOworCQlwcmludHN0cih0Y3AsIChsb25nKSBpb3ZfaW92X2Jhc2UsIGlvdl9pb3ZfbGVuKTsKKwkJdHByaW50ZigiLCAlbHV9IiwgKHVuc2lnbmVkIGxvbmcpaW92X2lvdl9sZW4pOworCX0KKwl0cHJpbnRmKCJdIik7CisJaWYgKGZhaWxlZCkKKwkJdHByaW50ZigiICUjbHgiLCBhZGRyKTsKKyN1bmRlZiBzaXplb2ZfaW92CisjdW5kZWYgaW92X2lvdl9iYXNlCisjdW5kZWYgaW92X2lvdl9sZW4KK30KKworaW50CitzeXNfcmVhZHYodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgsICVsdSIsCisJCQkJCXRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQkJcmV0dXJuIDA7CisJCX0KKwkJdHByaW50X2lvdih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfd3JpdGV2KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRfaW92KHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFNWUjQpCisKK2ludAorc3lzX3ByZWFkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCX0gZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlCisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKKyNpZiBVTklYV0FSRQorCQkvKiBvZmZfdCBpcyBzaWduZWQgaW50ICovCisJCXRwcmludGYoIiwgJWx1LCAlbGQiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKKyNlbHNlCisJCXRwcmludGYoIiwgJWx1LCAlbGx1IiwgdGNwLT51X2FyZ1syXSwKKwkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKSk7CisjZW5kaWYKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3B3cml0ZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKyNpZiBVTklYV0FSRQorCQkvKiBvZmZfdCBpcyBzaWduZWQgaW50ICovCisJCXRwcmludGYoIiwgJWx1LCAlbGQiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKKyNlbHNlCisJCXRwcmludGYoIiwgJWx1LCAlbGx1IiwgdGNwLT51X2FyZ1syXSwKKwkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKSk7CisjZW5kaWYKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogU1ZSNCAqLworCisjaWZkZWYgRlJFRUJTRAorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKworaW50CitzeXNfc2VuZGZpbGUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgJWxkLCAlbGx1LCAlbHUiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdLAorCQkJTE9OR19MT05HKHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pLAorCQkJdGNwLT51X2FyZ1s0XSk7CisJfSBlbHNlIHsKKwkJb2ZmX3Qgb2Zmc2V0OworCisJCWlmICghdGNwLT51X2FyZ1s1XSkKKwkJCXRwcmludGYoIiwgTlVMTCIpOworCQllbHNlIHsKKwkJCXN0cnVjdCBzZl9oZHRyIGhkdHI7CisKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNV0sICZoZHRyKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s1XSk7CisJCQllbHNlIHsKKwkJCQl0cHJpbnRmKCIsIHsgIik7CisJCQkJdHByaW50X2lvdih0Y3AsIGhkdHIuaGRyX2NudCwgaGR0ci5oZWFkZXJzKTsKKwkJCQl0cHJpbnRmKCIsICV1LCAiLCBoZHRyLmhkcl9jbnQpOworCQkJCXRwcmludF9pb3YodGNwLCBoZHRyLnRybF9jbnQsIGhkdHIudHJhaWxlcnMpOworCQkJCXRwcmludGYoIiwgJXUgfSIsIGhkdHIuaGRyX2NudCk7CisJCQl9CisJCX0KKwkJaWYgKCF0Y3AtPnVfYXJnWzZdKQorCQkJdHByaW50ZigiLCBOVUxMIik7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s2XSwgJm9mZnNldCkgPCAwKQorCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s2XSk7CisJCWVsc2UKKwkJCXRwcmludGYoIiwgWyVsbHVdIiwgb2Zmc2V0KTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzddKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogRlJFRUJTRCAqLworCisjaWZkZWYgTElOVVgKKworLyogVGhlIFNINCBBQkkgZG9lcyBhbGxvdyBsb25nIGxvbmdzIGluIG9kZC1udW1iZXJlZCByZWdpc3RlcnMsIGJ1dAorICAgZG9lcyBub3QgYWxsb3cgdGhlbSB0byBiZSBzcGxpdCBiZXR3ZWVuIHJlZ2lzdGVycyBhbmQgbWVtb3J5IC0gYW5kCisgICB0aGVyZSBhcmUgb25seSBmb3VyIGFyZ3VtZW50IHJlZ2lzdGVycyBmb3Igbm9ybWFsIGZ1bmN0aW9ucy4gIEFzIGEKKyAgIHJlc3VsdCBwcmVhZCB0YWtlcyBhbiBleHRyYSBwYWRkaW5nIGFyZ3VtZW50IGJlZm9yZSB0aGUgb2Zmc2V0LiAgVGhpcworICAgd2FzIGNoYW5nZWQgbGF0ZSBpbiB0aGUgMi40IHNlcmllcyAoYXJvdW5kIDIuNC4yMCkuICAqLworI2lmIGRlZmluZWQoU0gpCisjZGVmaW5lIFBSRUFEX09GRlNFVF9BUkcgNAorI2Vsc2UKKyNkZWZpbmUgUFJFQURfT0ZGU0VUX0FSRyAzCisjZW5kaWYKKworaW50CitzeXNfcHJlYWQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UKKwkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X3J2YWwpOworCQlBTElHTjY0ICh0Y3AsIFBSRUFEX09GRlNFVF9BUkcpOyAvKiBQb3dlclBDIGFsaWdubWVudCByZXN0cmljdGlvbiAqLworCQl0cHJpbnRmKCIsICVsdSwgJWxsdSIsIHRjcC0+dV9hcmdbMl0sCisJCQkqKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSZ0Y3AtPnVfYXJnW1BSRUFEX09GRlNFVF9BUkddKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3B3cml0ZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJQUxJR042NCAodGNwLCBQUkVBRF9PRkZTRVRfQVJHKTsgLyogUG93ZXJQQyBhbGlnbm1lbnQgcmVzdHJpY3Rpb24gKi8KKwkJdHByaW50ZigiLCAlbHUsICVsbHUiLCB0Y3AtPnVfYXJnWzJdLAorCQkJKih1bnNpZ25lZCBsb25nIGxvbmcgKikmdGNwLT51X2FyZ1tQUkVBRF9PRkZTRVRfQVJHXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19zZW5kZmlsZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJb2ZmX3Qgb2Zmc2V0OworCisJCXRwcmludGYoIiVsZCwgJWxkLCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJaWYgKCF0Y3AtPnVfYXJnWzJdKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZvZmZzZXQpIDwgMCkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZQorCQkJdHByaW50ZigiWyVsdV0iLCBvZmZzZXQpOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2VuZGZpbGU2NCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJbG9mZl90IG9mZnNldDsKKworCQl0cHJpbnRmKCIlbGQsICVsZCwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJCWlmICghdGNwLT51X2FyZ1syXSkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmb2Zmc2V0KSA8IDApCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UKKwkJCXRwcmludGYoIlslbGx1XSIsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50KSBvZmZzZXQpOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIExJTlVYICovCisKKyNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCitpbnQKK3N5c19wcmVhZDY0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCX0gZWxzZSB7CisJCUFMSUdONjQgKHRjcCwgMyk7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlCisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKKwkJdHByaW50ZigiLCAlbHUsICUjbGx4IiwgdGNwLT51X2FyZ1syXSwKKwkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19wd3JpdGU2NCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJQUxJR042NCAodGNwLCAzKTsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUsICUjbGx4IiwgdGNwLT51X2FyZ1syXSwKKwkJCUxPTkdfTE9ORyh0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKK2ludAorc3lzX2lvY3RsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwljb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvcDsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCWlvcCA9IGlvY3RsX2xvb2t1cCh0Y3AtPnVfYXJnWzFdKTsKKwkJaWYgKGlvcCkgeworCQkJdHByaW50ZigiJXMiLCBpb3AtPnN5bWJvbCk7CisJCQl3aGlsZSAoKGlvcCA9IGlvY3RsX25leHRfbWF0Y2goaW9wKSkpCisJCQkJdHByaW50ZigiIG9yICVzIiwgaW9wLT5zeW1ib2wpOworCQl9IGVsc2UKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJaW9jdGxfZGVjb2RlKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJfQorCWVsc2UgeworCQlpbnQgcmV0OworCQlpZiAoIShyZXQgPSBpb2N0bF9kZWNvZGUodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKSkpCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZQorCQkJcmV0dXJuIHJldCAtIDE7CisJfQorCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvaW9jdGwuYyBiL2lvY3RsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU0MDI2MAotLS0gL2Rldi9udWxsCisrKyBiL2lvY3RsLmMKQEAgLTAsMCArMSwyMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBpb2N0bC5jLHYgMS4xNCAyMDA1LzAyLzAyIDIwOjMyOjEzIHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisKK2NvbnN0IHN0cnVjdCBpb2N0bGVudCBpb2N0bGVudDBbXSA9IHsKKy8qCisgKiBgaW9jdGxlbnQuaCcgbWF5IGJlIGdlbmVyYXRlZCBmcm9tIGBpb2N0bGVudC5yYXcnIGJ5IHRoZSBhdXhpbGlhcnkKKyAqIHByb2dyYW0gYGlvY3Rsc29ydCcsIHN1Y2ggdGhhdCB0aGUgbGlzdCBpcyBzb3J0ZWQgYnkgdGhlIGBjb2RlJyBmaWVsZC4KKyAqIFRoaXMgaGFzIHRoZSBzaWRlLWVmZmVjdCBvZiByZXNvbHZpbmcgdGhlIF9JTy4uIG1hY3JvcyBpbnRvCisgKiBwbGFpbiBpbnRlZ2VycywgZWxpbWluYXRpbmcgdGhlIG5lZWQgdG8gaW5jbHVkZSBoZXJlIGV2ZXJ5dGhpbmcKKyAqIGluICIvdXNyL2luY2x1ZGUiIC4KKyAqLworI2luY2x1ZGUgImlvY3RsZW50LmgiCit9OworCisjaWZkZWYgTElOVVgKKyNpbmNsdWRlIDxhc20vaW9jdGwuaD4KKyNlbmRpZgorCitjb25zdCBpbnQgbmlvY3RsZW50czAgPSBzaXplb2YgaW9jdGxlbnQwIC8gc2l6ZW9mIGlvY3RsZW50MFswXTsKKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIKK2NvbnN0IHN0cnVjdCBpb2N0bGVudCBpb2N0bGVudDFbXSA9IHsKKyNpbmNsdWRlICJpb2N0bGVudDEuaCIKK307CisKK2NvbnN0IGludCBuaW9jdGxlbnRzMSA9IHNpemVvZiBpb2N0bGVudDEgLyBzaXplb2YgaW9jdGxlbnQxWzBdOworI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKK2NvbnN0IHN0cnVjdCBpb2N0bGVudCBpb2N0bGVudDJbXSA9IHsKKyNpbmNsdWRlICJpb2N0bGVudDIuaCIKK307CisKK2NvbnN0IGludCBuaW9jdGxlbnRzMiA9IHNpemVvZiBpb2N0bGVudDIgLyBzaXplb2YgaW9jdGxlbnQyWzBdOworI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMgKi8KKworY29uc3Qgc3RydWN0IGlvY3RsZW50ICppb2N0bGVudDsKK2ludCBuaW9jdGxlbnRzOworCitzdGF0aWMgaW50Citjb21wYXJlKGEsIGIpCitjb25zdCB2b2lkICphOworY29uc3Qgdm9pZCAqYjsKK3sKKwl1bnNpZ25lZCBsb25nIGNvZGUxID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYSktPmNvZGU7CisJdW5zaWduZWQgbG9uZyBjb2RlMiA9ICgoc3RydWN0IGlvY3RsZW50ICopIGIpLT5jb2RlOworCXJldHVybiAoY29kZTEgPiBjb2RlMikgPyAxIDogKGNvZGUxIDwgY29kZTIpID8gLTEgOiAwOworfQorCitjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKgoraW9jdGxfbG9va3VwKGNvZGUpCitsb25nIGNvZGU7Cit7CisJc3RydWN0IGlvY3RsZW50ICppb3AsIGlvZW50OworCisJaW9lbnQuY29kZSA9IGNvZGU7CisjaWZkZWYgTElOVVgKKwlpb2VudC5jb2RlICY9IChfSU9DX05STUFTSzw8X0lPQ19OUlNISUZUKSB8IChfSU9DX1RZUEVNQVNLPDxfSU9DX1RZUEVTSElGVCk7CisjZW5kaWYKKwlpb3AgPSAoc3RydWN0IGlvY3RsZW50ICopIGJzZWFyY2goKGNoYXIgKikgJmlvZW50LCAoY2hhciAqKSBpb2N0bGVudCwKKwkJCW5pb2N0bGVudHMsIHNpemVvZihzdHJ1Y3QgaW9jdGxlbnQpLCBjb21wYXJlKTsKKwl3aGlsZSAoaW9wID4gaW9jdGxlbnQpCisJCWlmICgoLS1pb3ApLT5jb2RlICE9IGlvZW50LmNvZGUpIHsKKwkJCWlvcCsrOworCQkJYnJlYWs7CisJCX0KKwlyZXR1cm4gaW9wOworfQorCitjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKgoraW9jdGxfbmV4dF9tYXRjaChpb3ApCitjb25zdCBzdHJ1Y3QgaW9jdGxlbnQgKmlvcDsKK3sKKwlsb25nIGNvZGU7CisKKwljb2RlID0gKGlvcCsrKS0+Y29kZTsKKwlpZiAoaW9wIDwgaW9jdGxlbnQgKyBuaW9jdGxlbnRzICYmIGlvcC0+Y29kZSA9PSBjb2RlKQorCQlyZXR1cm4gaW9wOworCXJldHVybiBOVUxMOworfQorCitpbnQKK2lvY3RsX2RlY29kZSh0Y3AsIGNvZGUsIGFyZykKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgY29kZSwgYXJnOworeworCXN3aXRjaCAoKGNvZGUgPj4gOCkgJiAweGZmKSB7CisjaWZkZWYgTElOVVgKKyNpZiBkZWZpbmVkKEFMUEhBKSB8fCBkZWZpbmVkKFBPV0VSUEMpCisJY2FzZSAnZic6IGNhc2UgJ3QnOiBjYXNlICdUJzoKKyNlbHNlIC8qICFBTFBIQSAqLworCWNhc2UgMHg1NDoKKyNlbmRpZiAvKiAhQUxQSEEgKi8KKyNlbHNlIC8qICFMSU5VWCAqLworCWNhc2UgJ2YnOiBjYXNlICd0JzogY2FzZSAnVCc6CisjZW5kaWYgLyogIUxJTlVYICovCisJCXJldHVybiB0ZXJtX2lvY3RsKHRjcCwgY29kZSwgYXJnKTsKKyNpZmRlZiBMSU5VWAorCWNhc2UgMHg4OToKKyNlbHNlIC8qICFMSU5VWCAqLworCWNhc2UgJ3InOiBjYXNlICdzJzogY2FzZSAnaSc6CisjaWZuZGVmIEZSRUVCU0QKKwljYXNlICdwJzoKKyNlbmRpZgorI2VuZGlmIC8qICFMSU5VWCAqLworCQlyZXR1cm4gc29ja19pb2N0bCh0Y3AsIGNvZGUsIGFyZyk7CisjaWZkZWYgVVNFX1BST0NGUworI2lmbmRlZiBIQVZFX01QX1BST0NGUworI2lmbmRlZiBGUkVFQlNECisJY2FzZSAncSc6CisjZWxzZQorCWNhc2UgJ3AnOgorI2VuZGlmCisJCXJldHVybiBwcm9jX2lvY3RsKHRjcCwgY29kZSwgYXJnKTsKKyNlbmRpZgorI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KKyNpZmRlZiBIQVZFX1NZU19TVFJFQU1fSAorCWNhc2UgJ1MnOgorCQlyZXR1cm4gc3RyZWFtX2lvY3RsKHRjcCwgY29kZSwgYXJnKTsKKyNlbmRpZiAvKiBIQVZFX1NZU19TVFJFQU1fSCAqLworI2lmZGVmIExJTlVYCisJY2FzZSAncCc6CisJCXJldHVybiBydGNfaW9jdGwodGNwLCBjb2RlLCBhcmcpOworI2VuZGlmCisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogUmVnaXN0cnkgb2YgaW9jdGwgY2hhcmFjdGVycywgY3VsbGVkIGZyb20KKyAqCUAoIylpb2Njb20uaCAxLjcgODkvMDYvMTYgU01JOyBmcm9tIFVDQiBpb2N0bC5oIDcuMSA2LzQvODYKKyAqCisgKiBjaGFyCWZpbGUgd2hlcmUgZGVmaW5lZAkJbm90ZXMKKyAqIC0tLS0JLS0tLS0tLS0tLS0tLS0tLS0tCQktLS0tLQorICogICBGCXN1bi9mYmlvLmgKKyAqICAgRwlzdW4vZ3Bpby5oCisgKiAgIEgJdmF4aWYvaWZfaHkuaAorICogICBNCXN1bmRldi9tY3BjbWQuaAkJCSpvdmVybGFwKgorICogICBNCXN5cy9tb2RlbS5oCQkJKm92ZXJsYXAqCisgKiAgIFMJc3lzL3N0cm9wdHMuaAorICogICBUCXN5cy90ZXJtaW8uaAkJCS1ubyBvdmVybGFwLQorICogICBUCXN5cy90ZXJtaW9zLmgJCQktbm8gb3ZlcmxhcC0KKyAqICAgVglzdW5kZXYvbWRyZWcuaAorICogICBhCXZheHViYS9hZHJlZy5oCisgKiAgIGQJc3VuL2RraW8uaAkJCS1ubyBvdmVybGFwIHdpdGggc3lzL2Rlcy5oLQorICogICBkCXN5cy9kZXMuaAkJCShwb3NzaWJsZSBvdmVybGFwKQorICogICBkCXZheC9ka2lvLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKKyAqICAgZAl2YXh1YmEvcnhyZWcuaAkJCShwb3NzaWJsZSBvdmVybGFwKQorICogICBmCXN5cy9maWxpby5oCisgKiAgIGcJc3Vud2luZG93L3dpbl9pb2N0bC5oCQktbm8gb3ZlcmxhcC0KKyAqICAgZwlzdW53aW5kb3dkZXYvd2luaW9jdGwuYwkJIW5vIG1hbmlmZXN0IGNvbnN0YW50ISAtbm8gb3ZlcmxhcC0KKyAqICAgaAlzdW5kZXYvaHJjX2NvbW1vbi5oCisgKiAgIGkJc3lzL3NvY2tpby5oCQkJKm92ZXJsYXAqCisgKiAgIGkJdmF4dWJhL2lrcmVnLmgJCQkqb3ZlcmxhcCoKKyAqICAgawlzdW5kZXYva2Jpby5oCisgKiAgIG0Jc3VuZGV2L21zaW8uaAkJCShwb3NzaWJsZSBvdmVybGFwKQorICogICBtCXN1bmRldi9tc3JlZy5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCisgKiAgIG0Jc3lzL210aW8uaAkJCShwb3NzaWJsZSBvdmVybGFwKQorICogICBuCXN1bi9uZGlvLmgKKyAqICAgcAluZXQvbml0X2J1Zi5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCisgKiAgIHAJbmV0L25pdF9pZi5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCisgKiAgIHAJbmV0L25pdF9wZi5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCisgKiAgIHAJc3VuZGV2L2ZwYXJlZy5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCisgKiAgIHAJc3lzL3NvY2tpby5oCQkJKHBvc3NpYmxlIG92ZXJsYXApCisgKiAgIHAJdmF4dWJhL3BzcmVnLmgJCQkocG9zc2libGUgb3ZlcmxhcCkKKyAqICAgcQlzdW4vc3F6LmgKKyAqICAgcglzeXMvc29ja2lvLmgKKyAqICAgcwlzeXMvc29ja2lvLmgKKyAqICAgdAlzeXMvdHRvbGQuaAkJCShwb3NzaWJsZSBvdmVybGFwKQorICogICB0CXN5cy90dHljb20uaAkJCShwb3NzaWJsZSBvdmVybGFwKQorICogICB2CXN1bmRldi92dWlkX2V2ZW50LmgJCSpvdmVybGFwKgorICogICB2CXN5cy92Y21kLmgJCQkqb3ZlcmxhcCoKKyAqCisgKiBFbmQgb2YgUmVnaXN0cnkKKyAqLwpkaWZmIC0tZ2l0IGEvaW9jdGxzb3J0LmMgYi9pb2N0bHNvcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzMyZmJjCi0tLSAvZGV2L251bGwKKysrIGIvaW9jdGxzb3J0LmMKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IGlvY3Rsc29ydC5jLHYgMS4yIDIwMDEvMDMvMTcgMTc6MjY6MzQgd2ljaGVydCBFeHAgJAorICovCisKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZmRlZiBTVERDX0hFQURFUlMKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorCitzdHJ1Y3QgaW9jdGxlbnQgeworCWNoYXIgKmRvdGg7CisJY2hhciAqc3ltYm9sOworCXVuc2lnbmVkIGxvbmcgY29kZTsKK307CisKKyNpbmNsdWRlICJpb2N0bGVudC5yYXciCisKK2ludCBuaW9jdGxlbnRzID0gc2l6ZW9mIGlvY3RsZW50IC8gc2l6ZW9mIGlvY3RsZW50WzBdOworCitpbnQKK2NvbXBhcmUoYSwgYikKK2NvbnN0IHZvaWQgKmE7Citjb25zdCB2b2lkICpiOworeworCXVuc2lnbmVkIGxvbmcgY29kZTEgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBhKS0+Y29kZTsKKwl1bnNpZ25lZCBsb25nIGNvZGUyID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYiktPmNvZGU7CisJcmV0dXJuIChjb2RlMSA+IGNvZGUyKSA/IDEgOiAoY29kZTEgPCBjb2RlMikgPyAtMSA6IDA7Cit9CisKK2ludAorbWFpbihhcmdjLCBhcmd2KQoraW50IGFyZ2M7CitjaGFyICphcmd2W107Cit7CisJaW50IGk7CisKKwlxc29ydChpb2N0bGVudCwgbmlvY3RsZW50cywgc2l6ZW9mIGlvY3RsZW50WzBdLCBjb21wYXJlKTsKKwlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsZW50czsgaSsrKSB7CisJCXByaW50Zigie1wiJXNcIiwgXCIlc1wiLCAlI2x4fSxcbiIsCisJCQlpb2N0bGVudFtpXS5kb3RoLCBpb2N0bGVudFtpXS5zeW1ib2wsIGlvY3RsZW50W2ldLmNvZGUpOworCX0KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2lwYy5jIGIvaXBjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJiYTdmMwotLS0gL2Rldi9udWxsCisrKyBiL2lwYy5jCkBAIC0wLDAgKzEsNTA1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzIFVscmljaCBQZWdlbG93IDxwZWdlbG93QG1vb3JlYS51bmktbXVlbnN0ZXIuZGU+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IGlwYy5jLHYgMS4xMCAyMDA1LzA2LzAxIDE5OjAyOjM3IHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisKKyNpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChGUkVFQlNEKQorCisjIGlmZGVmIEhBVkVfTVFVRVVFX0gKKyMgIGluY2x1ZGUgPG1xdWV1ZS5oPgorIyBlbmRpZgorCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvaXBjLmg+CisjaW5jbHVkZSA8c3lzL3NlbS5oPgorI2luY2x1ZGUgPHN5cy9tc2cuaD4KKyNpbmNsdWRlIDxzeXMvc2htLmg+CisKKyNpZm5kZWYgTVNHX1NUQVQKKyNkZWZpbmUgTVNHX1NUQVQgMTEKKyNlbmRpZgorI2lmbmRlZiBNU0dfSU5GTworI2RlZmluZSBNU0dfSU5GTyAxMgorI2VuZGlmCisjaWZuZGVmIFNITV9TVEFUCisjZGVmaW5lIFNITV9TVEFUIDEzCisjZW5kaWYKKyNpZm5kZWYgU0hNX0lORk8KKyNkZWZpbmUgU0hNX0lORk8gMTQKKyNlbmRpZgorI2lmbmRlZiBTRU1fU1RBVAorI2RlZmluZSBTRU1fU1RBVCAxOAorI2VuZGlmCisjaWZuZGVmIFNFTV9JTkZPCisjZGVmaW5lIFNFTV9JTkZPIDE5CisjZW5kaWYKKworI2lmIGRlZmluZWQgTElOVVggJiYgIWRlZmluZWQgSVBDXzY0CisjIGRlZmluZSBJUENfNjQgMHgxMDAKKyNlbmRpZgorCitleHRlcm4gdm9pZCBwcmludHNpZ2V2ZW50KHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhcmcpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbXNnY3RsX2ZsYWdzW10gPSB7CisJeyBJUENfUk1JRCwJIklQQ19STUlEIgl9LAorCXsgSVBDX1NFVCwJIklQQ19TRVQiCX0sCisJeyBJUENfU1RBVCwJIklQQ19TVEFUIgl9LAorI2lmZGVmIExJTlVYCisJeyBJUENfSU5GTywJIklQQ19JTkZPIgl9LAorCXsgTVNHX1NUQVQsCSJNU0dfU1RBVCIJfSwKKwl7IE1TR19JTkZPLAkiTVNHX0lORk8iCX0sCisjZW5kaWYgLyogTElOVVggKi8KKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNlbWN0bF9mbGFnc1tdID0geworCXsgSVBDX1JNSUQsCSJJUENfUk1JRCIJfSwKKwl7IElQQ19TRVQsCSJJUENfU0VUIgl9LAorCXsgSVBDX1NUQVQsCSJJUENfU1RBVCIJfSwKKyNpZmRlZiBMSU5VWAorCXsgSVBDX0lORk8sCSJJUENfSU5GTyIJfSwKKwl7IFNFTV9TVEFULAkiU0VNX1NUQVQiCX0sCisJeyBTRU1fSU5GTywJIlNFTV9JTkZPIgl9LAorI2VuZGlmIC8qIExJTlVYICovCisJeyBHRVRQSUQsCSJHRVRQSUQiCX0sCisJeyBHRVRWQUwsCSJHRVRWQUwiCX0sCisJeyBHRVRBTEwsCSJHRVRBTEwiCX0sCisJeyBHRVROQ05ULAkiR0VUTkNOVCIJfSwKKwl7IEdFVFpDTlQsCSJHRVRaQ05UIgl9LAorCXsgU0VUVkFMLAkiU0VUVkFMIgl9LAorCXsgU0VUQUxMLAkiU0VUQUxMIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2htY3RsX2ZsYWdzW10gPSB7CisJeyBJUENfUk1JRCwJIklQQ19STUlEIgl9LAorCXsgSVBDX1NFVCwJIklQQ19TRVQiCX0sCisJeyBJUENfU1RBVCwJIklQQ19TVEFUIgl9LAorI2lmZGVmIExJTlVYCisJeyBJUENfSU5GTywJIklQQ19JTkZPIgl9LAorCXsgU0hNX1NUQVQsCSJTSE1fU1RBVCIJfSwKKwl7IFNITV9JTkZPLAkiU0hNX0lORk8iCX0sCisjZW5kaWYgLyogTElOVVggKi8KKyNpZmRlZiBTSE1fTE9DSworCXsgU0hNX0xPQ0ssCSJTSE1fTE9DSyIJfSwKKyNlbmRpZgorI2lmZGVmIFNITV9VTkxPQ0sKKwl7IFNITV9VTkxPQ0ssCSJTSE1fVU5MT0NLIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCByZXNvdXJjZV9mbGFnc1tdID0geworCXsgSVBDX0NSRUFULAkiSVBDX0NSRUFUIgl9LAorCXsgSVBDX0VYQ0wsCSJJUENfRVhDTCIJfSwKKwl7IElQQ19OT1dBSVQsCSJJUENfTk9XQUlUIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2htX3Jlc291cmNlX2ZsYWdzW10gPSB7CisJeyBJUENfQ1JFQVQsCSJJUENfQ1JFQVQiCX0sCisJeyBJUENfRVhDTCwJIklQQ19FWENMIgl9LAorI2lmZGVmIFNITV9IVUdFVExCCisJeyBTSE1fSFVHRVRMQiwJIlNITV9IVUdFVExCIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaG1fZmxhZ3NbXSA9IHsKKyNpZmRlZiBMSU5VWAorCXsgU0hNX1JFTUFQLAkiU0hNX1JFTUFQIgl9LAorI2VuZGlmIC8qIExJTlVYICovCisJeyBTSE1fUkRPTkxZLAkiU0hNX1JET05MWSIJfSwKKwl7IFNITV9STkQsCSJTSE1fUk5EIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbXNnX2ZsYWdzW10gPSB7CisJeyBNU0dfTk9FUlJPUiwJIk1TR19OT0VSUk9SIgl9LAorI2lmZGVmIExJTlVYCisJeyBNU0dfRVhDRVBULAkiTVNHX0VYQ0VQVCIJfSwKKyNlbmRpZiAvKiBMSU5VWCAqLworCXsgSVBDX05PV0FJVCwJIklQQ19OT1dBSVQiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK2ludCBzeXNfbXNnZ2V0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlpZiAodGNwLT51X2FyZ1swXSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJZWxzZQorCQkJdHByaW50ZigiSVBDX1BSSVZBVEUiKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKHByaW50ZmxhZ3MocmVzb3VyY2VfZmxhZ3MsIHRjcC0+dV9hcmdbMV0gJiB+MDc3NywgTlVMTCkgIT0gMCkKKwkJCXRwcmludGYoInwiKTsKKwkJdHByaW50ZigiJSNsbyIsIHRjcC0+dV9hcmdbMV0gJiAwNzc3KTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBJUENfNjQKKyMgZGVmaW5lIFBSSU5UQ1RMKGZsYWdzZXQsIGFyZywgZGZsdCkgXAorCWlmICgoYXJnKSAmIElQQ182NCkgdHByaW50ZigiSVBDXzY0fCIpOyBcCisJcHJpbnR4dmFsKChmbGFnc2V0KSwgKGFyZykgJn4gSVBDXzY0LCBkZmx0KQorI2Vsc2UKKyMgZGVmaW5lIFBSSU5UQ1RMIHByaW50eHZhbAorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2luZGlyZWN0X2lwY2NhbGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmZGVmIExJTlVYCisjaWZkZWYgWDg2XzY0CisJcmV0dXJuIGN1cnJlbnRfcGVyc29uYWxpdHkgPiAwOworI2VuZGlmCisJcmV0dXJuIDE7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKworaW50IHN5c19tc2djdGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJCVBSSU5UQ1RMKG1zZ2N0bF9mbGFncywgdGNwLT51X2FyZ1sxXSwgIk1TR18/Pz8iKTsKKwkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1tpbmRpcmVjdF9pcGNjYWxsKHRjcCkgPyAzIDogMl0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHN5c19tc2dzbmQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWxvbmcgbXR5cGU7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJaWYgKGluZGlyZWN0X2lwY2NhbGwodGNwKSkgeworCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmbXR5cGUpOworCQkJdHByaW50ZigiLCB7JWx1LCAiLCBtdHlwZSk7CisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbM10gKyBzaXplb2YobG9uZyksCisJCQkJIHRjcC0+dV9hcmdbMV0pOworCQkJdHByaW50ZigifSwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNU0dfPz8/Iik7CisJCX0gZWxzZSB7CisJCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZtdHlwZSk7CisJCQl0cHJpbnRmKCIsIHslbHUsICIsIG10eXBlKTsKKwkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSArIHNpemVvZihsb25nKSwKKwkJCQkgdGNwLT51X2FyZ1syXSk7CisJCQl0cHJpbnRmKCJ9LCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1szXSwgIk1TR18/Pz8iKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHN5c19tc2dyY3YodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWxvbmcgbXR5cGU7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOworCX0gZWxzZSB7CisJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOworCQlpZiAoaW5kaXJlY3RfaXBjY2FsbCh0Y3ApKSB7CisJCQlzdHJ1Y3QgaXBjX3dyYXBwZXIgeworCQkJCXN0cnVjdCBtc2didWYgKm1zZ3A7CisJCQkJbG9uZyBtc2d0eXA7CisJCQl9IHRtcDsKKwkJCXVtb3ZlKHRjcCwgdGNwLT51X2FyZ1szXSwgJnRtcCk7CisJCQl1bW92ZSh0Y3AsIChsb25nKSB0bXAubXNncCwgJm10eXBlKTsKKwkJCXRwcmludGYoIiwgeyVsdSwgIiwgbXR5cGUpOworCQkJcHJpbnRzdHIodGNwLCAobG9uZykgKHRtcC5tc2dwKSArIHNpemVvZihsb25nKSwKKwkJCQkgdGNwLT51X2FyZ1sxXSk7CisJCQl0cHJpbnRmKCJ9LCAlbHUiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXRwcmludGYoIiwgJWxkIiwgdG1wLm1zZ3R5cCk7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNU0dfPz8/Iik7CisJCX0gZWxzZSB7CisJCQl1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZtdHlwZSk7CisJCQl0cHJpbnRmKCJ7JWx1LCAiLCBtdHlwZSk7CisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0gKyBzaXplb2YobG9uZyksCisJCQkJIHRjcC0+dV9hcmdbMl0pOworCQkJdHByaW50ZigifSwgJWx1IiwgdGNwLT51X2FyZ1syXSk7CisJCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbM10pOworCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzRdLCAiTVNHXz8/PyIpOworCQl9CisJfQorCXJldHVybiAwOworfQorCitpbnQgc3lzX3NlbW9wKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJaWYgKGluZGlyZWN0X2lwY2NhbGwodGNwKSkgeworCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOworCQl9IGVsc2UgeworCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMl0pOworCQl9CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgTElOVVgKK2ludCBzeXNfc2VtdGltZWRvcCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7CisJCWlmIChpbmRpcmVjdF9pcGNjYWxsKHRjcCkpIHsKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbM10pOworCQkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMV0pOworCQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbNV0pOworCQl9IGVsc2UgeworCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7CisJCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1szXSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50IHN5c19zZW1nZXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWlmICh0Y3AtPnVfYXJnWzBdKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlCisJCQl0cHJpbnRmKCJJUENfUFJJVkFURSIpOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCQlpZiAocHJpbnRmbGFncyhyZXNvdXJjZV9mbGFncywgdGNwLT51X2FyZ1syXSAmIH4wNzc3LCBOVUxMKSAhPSAwKQorCQkJdHByaW50ZigifCIpOworCQl0cHJpbnRmKCIlI2xvIiwgdGNwLT51X2FyZ1syXSAmIDA3NzcpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHN5c19zZW1jdGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1sxXSk7CisJCVBSSU5UQ1RMKHNlbWN0bF9mbGFncywgdGNwLT51X2FyZ1syXSwgIlNFTV8/Pz8iKTsKKwkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQgc3lzX3NobWdldCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaWYgKHRjcC0+dV9hcmdbMF0pCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJCWVsc2UKKwkJCXRwcmludGYoIklQQ19QUklWQVRFIik7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJCWlmIChwcmludGZsYWdzKHNobV9yZXNvdXJjZV9mbGFncywgdGNwLT51X2FyZ1syXSAmIH4wNzc3LCBOVUxMKSAhPSAwKQorCQkJdHByaW50ZigifCIpOworCQl0cHJpbnRmKCIlI2xvIiwgdGNwLT51X2FyZ1syXSAmIDA3NzcpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHN5c19zaG1jdGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJCVBSSU5UQ1RMKHNobWN0bF9mbGFncywgdGNwLT51X2FyZ1sxXSwgIlNITV8/Pz8iKTsKKwkJaWYgKGluZGlyZWN0X2lwY2NhbGwodGNwKSkgeworCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJCX0gZWxzZSB7CisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHN5c19zaG1hdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisjaWZkZWYgTElOVVgKKwl1bnNpZ25lZCBsb25nIHJhZGRyOworI2VuZGlmIC8qIExJTlVYICovCisKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOworCQlpZiAoaW5kaXJlY3RfaXBjY2FsbCh0Y3ApKSB7CisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKHNobV9mbGFncywgdGNwLT51X2FyZ1sxXSwgIlNITV8/Pz8iKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50ZmxhZ3Moc2htX2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiU0hNXz8/PyIpOworCQl9CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJcmV0dXJuIDA7CisjaWZkZWYgTElOVVgKKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJnJhZGRyKSA8IDApCisJCQlyZXR1cm4gUlZBTF9OT05FOworCQl0Y3AtPnVfcnZhbCA9IHJhZGRyOworI2VuZGlmIC8qIExJTlVYICovCisJCXJldHVybiBSVkFMX0hFWDsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludCBzeXNfc2htZHQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWlmIChpbmRpcmVjdF9pcGNjYWxsKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJfSBlbHNlIHsKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKEZSRUVCU0QpICovCisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfbXFfb3BlbihzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCS8qIGZsYWdzICovCisJCXRwcmludF9vcGVuX21vZGVzKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCWlmICh0Y3AtPnVfYXJnWzFdICYgT19DUkVBVCkgeworIyBpZm5kZWYgSEFWRV9NUVVFVUVfSAorCQkJdHByaW50ZigiLCAlbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKyMgZWxzZQorCQkJc3RydWN0IG1xX2F0dHIgYXR0cjsKKwkJCS8qIG1vZGUgKi8KKwkJCXRwcmludGYoIiwgJSNsbywgIiwgdGNwLT51X2FyZ1syXSk7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmYXR0cikgPCAwKQorCQkJCXRwcmludGYoInsgPz8/IH0iKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCJ7bXFfbWF4bXNnPSVsZCwgbXFfbXNnc2l6ZT0lbGR9IiwKKwkJCQkJYXR0ci5tcV9tYXhtc2csIGF0dHIubXFfbXNnc2l6ZSk7CisjIGVuZGlmCisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX21xX3RpbWVkc2VuZChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUsICVsZCwgIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzRdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX21xX3RpbWVkcmVjZWl2ZShzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJZWxzZSB7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCXRwcmludGYoIiwgJWx1LCAlbGQsICIsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pOworCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1s0XSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19tcV9ub3RpZnkoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50c2lnZXZlbnQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitwcmludG1xYXR0cihzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkcikKK3sKKwlpZiAoYWRkciA9PSAwKQorCQl0cHJpbnRmKCJOVUxMIik7CisJZWxzZSB7CisjIGlmbmRlZiBIQVZFX01RVUVVRV9ICisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKyMgZWxzZQorCQlzdHJ1Y3QgbXFfYXR0ciBhdHRyOworCQlpZiAodW1vdmUodGNwLCBhZGRyLCAmYXR0cikgPCAwKSB7CisJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQkJcmV0dXJuOworCQl9CisJCXRwcmludGYoInttcV9mbGFncz0iKTsKKwkJdHByaW50X29wZW5fbW9kZXModGNwLCBhdHRyLm1xX2ZsYWdzKTsKKwkJdHByaW50ZigiLCBtcV9tYXhtc2c9JWxkLCBtcV9tc2dzaXplPSVsZCwgbXFfY3VybXNnPSVsZH0iLAorCQkJYXR0ci5tcV9tYXhtc2csIGF0dHIubXFfbXNnc2l6ZSwgYXR0ci5tcV9jdXJtc2dzKTsKKyMgZW5kaWYKKwl9Cit9CisKK2ludAorc3lzX21xX2dldHNldGF0dHIoc3RydWN0IHRjYiAqdGNwKQoreworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50bXFhdHRyKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlCisJCXByaW50bXFhdHRyKHRjcCwgdGNwLT51X2FyZ1syXSk7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpbnV4L2R1bW15LmggYi9saW51eC9kdW1teS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjYjNhZGIKLS0tIC9kZXYvbnVsbAorKysgYi9saW51eC9kdW1teS5oCkBAIC0wLDAgKzEsMjQ4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBkdW1teS5oLHYgMS4xNyAyMDA0LzA0LzE2IDIxOjQ4OjQ0IHJvbGFuZCBFeHAgJAorICovCisKKy8qIHN0aWxsIHVuZmluaXNoZWQgKi8KKyNkZWZpbmUJc3lzX2lvcGVybQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zeXNsb2cJCXByaW50YXJncworI2RlZmluZQlzeXNfaW9wbAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c192bTg2b2xkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldF9rZXJuZWxfc3ltcwlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2JkZmx1c2gJCXByaW50YXJncworI2RlZmluZQlzeXNfc3lzZnMJCXByaW50YXJncworI2RlZmluZQlzeXNfYWZzX3N5c2NhbGwJCXByaW50YXJncworCisvKiBtYWNoaW5lLXNwZWNpZmljICovCisjaWZuZGVmIEkzODYKKyNkZWZpbmUJc3lzX21vZGlmeV9sZHQJCXByaW50YXJncworI2RlZmluZSBzeXNfZ2V0X3RocmVhZF9hcmVhCXByaW50YXJncworI2RlZmluZSBzeXNfc2V0X3RocmVhZF9hcmVhCXByaW50YXJncworI2VuZGlmCisKKyNkZWZpbmUgc3lzX3NjaGVkX3lpZWxkCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXggc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4KKyNkZWZpbmUgc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCBwcmludGFyZ3MKKworLyogbGlrZSBhbm90aGVyIGNhbGwgKi8KKyNkZWZpbmUJc3lzX3VzZWxpYgkJc3lzX2NoZGlyCisjZGVmaW5lCXN5c191bW91bnQJCXN5c19jaGRpcgorI2RlZmluZQlzeXNfc3dhcG9uCQlzeXNfY2hkaXIKKyNkZWZpbmUJc3lzX3N3YXBvZmYJCXN5c19jaGRpcgorI2RlZmluZQlzeXNfZGVsZXRlX21vZHVsZQlzeXNfb3BlbgorI2RlZmluZQlzeXNfZmNoZGlyCQlzeXNfY2xvc2UKKyNkZWZpbmUJc3lzX3NldGZzdWlkCQlzeXNfc2V0dWlkCisjZGVmaW5lCXN5c19zZXRmc2dpZAkJc3lzX3NldGdpZAorI2RlZmluZSBzeXNfbmFub3NsZWVwCQlzeXNfYWRqdGltZQorI2RlZmluZQlzeXNfYWNjdAkJc3lzX2NoZGlyCisjZGVmaW5lIHN5c19mZGF0YXN5bmMJCXN5c19jbG9zZQorI2RlZmluZSBzeXNfbWxvY2sJCXN5c19tdW5tYXAKKyNkZWZpbmUgc3lzX211bmxvY2sJCXN5c19tdW5tYXAKKyNkZWZpbmUgc3lzX2Nsb2NrX2dldHJlcwlzeXNfY2xvY2tfZ2V0dGltZQorI2RlZmluZSBzeXNfbXFfdW5saW5rCQlzeXNfdW5saW5rCisKKy8qIHByaW50YXJncyBkb2VzIHRoZSByaWdodCB0aGluZyAqLworI2RlZmluZQlzeXNfc2V0dXAJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0cGlkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldHVpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19wYXVzZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zeW5jCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldGdpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRldWlkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldGVnaWQJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0cHBpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRwZ3JwCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldHNpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c192aGFuZ3VwCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2lkbGUJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0cGdpZAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19tdW5sb2NrYWxsCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3RpbWVyX2dldG92ZXJydW4JcHJpbnRhcmdzCisjZGVmaW5lIHN5c190aW1lcl9kZWxldGUJcHJpbnRhcmdzCisKKy8qIHN1YmNhbGwgZW50cnkgcG9pbnRzICovCisjZGVmaW5lCXN5c19zb2NrZXRjYWxsCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2lwYwkJCXByaW50YXJncworCisvKiB1bmltcGxlbWVudGVkICovCisjZGVmaW5lCXN5c19zdHR5CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2d0dHkJCXByaW50YXJncworI2RlZmluZQlzeXNfZnRpbWUJCXByaW50YXJncworI2RlZmluZQlzeXNfcHJvZgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19waHlzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2xvY2sJCXByaW50YXJncworI2RlZmluZQlzeXNfbXB4CQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c191bGltaXQJCXByaW50YXJncworI2RlZmluZQlzeXNfcHJvZmlsCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3VzdGF0CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2JyZWFrCQlwcmludGFyZ3MKKworLyogZGVwcmVjYXRlZCAqLworI2RlZmluZQlzeXNfb2xkdW5hbWUJCXByaW50YXJncworI2RlZmluZQlzeXNfb2xkb2xkdW5hbWUJCXByaW50YXJncworCisvKiBubyBsaWJyYXJ5IHN1cHBvcnQgKi8KKyNpZm5kZWYgSEFWRV9TRU5ETVNHCisjZGVmaW5lIHN5c19zZW5kbXNnCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3JlY3Ztc2cJCXByaW50YXJncworI2VuZGlmCisKKyNpZm5kZWYgU1lTX2dldHBtc2cKKyNkZWZpbmUgc3lzX2dldHBtc2cJCXByaW50YXJncworI2VuZGlmCisjaWZuZGVmIFNZU19wdXRwbXNnCisjZGVmaW5lIHN5c19wdXRwbXNnCQlwcmludGFyZ3MKKyNlbmRpZgorCisjaWZuZGVmIEhBVkVfU1RSVUNUX19fT0xEX0tFUk5FTF9TVEFUCisjZGVmaW5lIHN5c19vbGRzdGF0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX29sZGZzdGF0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX29sZGxzdGF0CQlwcmludGFyZ3MKKyNlbmRpZgorCisjaWYgRE9ORQorI2RlZmluZSBzeXNfb2xkc2VsZWN0CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX21zeW5jCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2Zsb2NrCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldGRlbnRzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3N0aW1lCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3RpbWUJCXByaW50YXJncworI2RlZmluZQlzeXNfdGltZXMJCXByaW50YXJncworI2RlZmluZQlzeXNfbW91bnQJCXByaW50YXJncworI2RlZmluZQlzeXNfbmljZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19tcHJvdGVjdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zaWdwcm9jbWFzawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19hZGp0aW1leAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zeXNpbmZvCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2lwYwkJCXByaW50YXJncworI2RlZmluZQlzeXNfc2V0ZG9tYWlubmFtZQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3N0YXRmcwkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19mc3RhdGZzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3B0cmFjZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zaWdyZXR1cm4JCXByaW50YXJncworI2RlZmluZQlzeXNfZnN5bmMJCXByaW50YXJncworI2RlZmluZQlzeXNfYWxhcm0JCXByaW50YXJncworI2RlZmluZQlzeXNfc29ja2V0Y2FsbAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zaWdzdXNwZW5kCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3V0aW1lCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2JyawkJCXByaW50YXJncworI2RlZmluZQlzeXNfbW1hcAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19tdW5tYXAJCXByaW50YXJncworI2RlZmluZQlzeXNfc2VsZWN0CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldHVpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRnaWQJCXByaW50YXJncworI2RlZmluZQlzeXNfc2V0cmV1aWQJCXByaW50YXJncworI2RlZmluZQlzeXNfc2V0cmVnaWQJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0Z3JvdXBzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldGdyb3VwcwkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRybGltaXQJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0cmxpbWl0CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldHJ1c2FnZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRwcmlvcml0eQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRwcmlvcml0eQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRwZ2lkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2FjY2VzcwkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRob3N0bmFtZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19yZWFkZGlyCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3dhaXRwaWQJCXByaW50YXJncworI2RlZmluZQlzeXNfd2FpdDQJCXByaW50YXJncworI2RlZmluZQlzeXNfZXhlY3ZlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2ZvcmsJCXByaW50YXJncworI2RlZmluZQlzeXNfdW5hbWUJCXByaW50YXJncworI2RlZmluZQlzeXNfcGlwZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zaWdnZXRtYXNrCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NpZ3NldG1hc2sJCXByaW50YXJncworI2RlZmluZQlzeXNfZXhpdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19raWxsCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NpZ25hbAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zaWdhY3Rpb24JCXByaW50YXJncworI2RlZmluZQlzeXNfc2lncGVuZGluZwkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19mY250bAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19kdXAJCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2R1cDIJCXByaW50YXJncworI2RlZmluZQlzeXNfY2xvc2UJCXByaW50YXJncworI2RlZmluZQlzeXNfaW9jdGwJCXByaW50YXJncworI2RlZmluZQlzeXNfcmVhZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c193cml0ZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19vcGVuCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2NyZWF0CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2xpbmsJCXByaW50YXJncworI2RlZmluZQlzeXNfdW5saW5rCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2NoZGlyCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX21rbm9kCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2NobW9kCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2Nob3duCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2xzZWVrCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3JlbmFtZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19ta2RpcgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19ybWRpcgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c191bWFzawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19jaHJvb3QJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0dGltZW9mZGF5CXByaW50YXJncworI2RlZmluZQlzeXNfc2V0dGltZW9mZGF5CXByaW50YXJncworI2RlZmluZQlzeXNfc3ltbGluawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19yZWFkbGluawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c190cnVuY2F0ZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19mdHJ1bmNhdGUJCXByaW50YXJncworI2RlZmluZQlzeXNfZmNobW9kCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2ZjaG93bgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRpdGltZXIJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0aXRpbWVyCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3N0YXQJCXByaW50YXJncworI2RlZmluZQlzeXNfbHN0YXQJCXByaW50YXJncworI2RlZmluZQlzeXNfZnN0YXQJCXByaW50YXJncworI2RlZmluZQlzeXNfcGVyc29uYWxpdHkJCXByaW50YXJncworI2RlZmluZSBzeXNfcG9sbAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19jcmVhdGVfbW9kdWxlCXByaW50YXJncworI2RlZmluZQlzeXNfaW5pdF9tb2R1bGUJCXByaW50YXJncworI2RlZmluZQlzeXNfcXVvdGFjdGwJCXByaW50YXJncworI2RlZmluZSBzeXNfbWxvY2thbGwJCXByaW50YXJncworI2RlZmluZQlzeXNfcmVib290CQlwcmludGFyZ3MKKyNlbmRpZgorCisKKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKworI2RlZmluZSBzeXNfbXFfb3BlbiBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX21xX3RpbWVkc2VuZCBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX21xX3RpbWVkcmVjZWl2ZSBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX21xX25vdGlmeSBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX21xX2dldHNldGF0dHIgcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zZW1vcCBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NlbWdldCBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NlbWN0bCBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NlbXRpbWVkb3AgcHJpbnRhcmdzCisjZGVmaW5lIHN5c19tc2dzbmQgcHJpbnRhcmdzCisjZGVmaW5lIHN5c19tc2dyY3YgcHJpbnRhcmdzCisjZGVmaW5lIHN5c19tc2dnZXQgcHJpbnRhcmdzCisjZGVmaW5lIHN5c19tc2djdGwgcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zaG1hdCBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NobWR0IHByaW50YXJncworI2RlZmluZSBzeXNfc2htZ2V0IHByaW50YXJncworI2RlZmluZSBzeXNfc2htY3RsIHByaW50YXJncworI2VuZGlmCmRpZmYgLS1naXQgYS9saW51eC9lcnJub2VudC5oIGIvbGludXgvZXJybm9lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGIyYWRjCi0tLSAvZGV2L251bGwKKysrIGIvbGludXgvZXJybm9lbnQuaApAQCAtMCwwICsxLDUyOSBAQAorCSJFUlJOT18wIiwgLyogMCAqLworCSJFUEVSTSIsIC8qIDEgKi8KKwkiRU5PRU5UIiwgLyogMiAqLworCSJFU1JDSCIsIC8qIDMgKi8KKwkiRUlOVFIiLCAvKiA0ICovCisJIkVJTyIsIC8qIDUgKi8KKwkiRU5YSU8iLCAvKiA2ICovCisJIkUyQklHIiwgLyogNyAqLworCSJFTk9FWEVDIiwgLyogOCAqLworCSJFQkFERiIsIC8qIDkgKi8KKwkiRUNISUxEIiwgLyogMTAgKi8KKwkiRUFHQUlOIiwgLyogMTEgKi8KKwkiRU5PTUVNIiwgLyogMTIgKi8KKwkiRUFDQ0VTIiwgLyogMTMgKi8KKwkiRUZBVUxUIiwgLyogMTQgKi8KKwkiRU5PVEJMSyIsIC8qIDE1ICovCisJIkVCVVNZIiwgLyogMTYgKi8KKwkiRUVYSVNUIiwgLyogMTcgKi8KKwkiRVhERVYiLCAvKiAxOCAqLworCSJFTk9ERVYiLCAvKiAxOSAqLworCSJFTk9URElSIiwgLyogMjAgKi8KKwkiRUlTRElSIiwgLyogMjEgKi8KKwkiRUlOVkFMIiwgLyogMjIgKi8KKwkiRU5GSUxFIiwgLyogMjMgKi8KKwkiRU1GSUxFIiwgLyogMjQgKi8KKwkiRU5PVFRZIiwgLyogMjUgKi8KKwkiRVRYVEJTWSIsIC8qIDI2ICovCisJIkVGQklHIiwgLyogMjcgKi8KKwkiRU5PU1BDIiwgLyogMjggKi8KKwkiRVNQSVBFIiwgLyogMjkgKi8KKwkiRVJPRlMiLCAvKiAzMCAqLworCSJFTUxJTksiLCAvKiAzMSAqLworCSJFUElQRSIsIC8qIDMyICovCisJIkVET00iLCAvKiAzMyAqLworCSJFUkFOR0UiLCAvKiAzNCAqLworCSJFREVBRExLIiwgLyogMzUgKi8KKwkiRU5BTUVUT09MT05HIiwgLyogMzYgKi8KKwkiRU5PTENLIiwgLyogMzcgKi8KKwkiRU5PU1lTIiwgLyogMzggKi8KKwkiRU5PVEVNUFRZIiwgLyogMzkgKi8KKwkiRUxPT1AiLCAvKiA0MCAqLworCSJFUlJOT180MSIsIC8qIDQxICovCisJIkVOT01TRyIsIC8qIDQyICovCisJIkVJRFJNIiwgLyogNDMgKi8KKwkiRUNIUk5HIiwgLyogNDQgKi8KKwkiRUwyTlNZTkMiLCAvKiA0NSAqLworCSJFTDNITFQiLCAvKiA0NiAqLworCSJFTDNSU1QiLCAvKiA0NyAqLworCSJFTE5STkciLCAvKiA0OCAqLworCSJFVU5BVENIIiwgLyogNDkgKi8KKwkiRU5PQ1NJIiwgLyogNTAgKi8KKwkiRUwySExUIiwgLyogNTEgKi8KKwkiRUJBREUiLCAvKiA1MiAqLworCSJFQkFEUiIsIC8qIDUzICovCisJIkVYRlVMTCIsIC8qIDU0ICovCisJIkVOT0FOTyIsIC8qIDU1ICovCisJIkVCQURSUUMiLCAvKiA1NiAqLworCSJFQkFEU0xUIiwgLyogNTcgKi8KKwkiRVJSTk9fNTgiLCAvKiA1OCAqLworCSJFQkZPTlQiLCAvKiA1OSAqLworCSJFTk9TVFIiLCAvKiA2MCAqLworCSJFTk9EQVRBIiwgLyogNjEgKi8KKwkiRVRJTUUiLCAvKiA2MiAqLworCSJFTk9TUiIsIC8qIDYzICovCisJIkVOT05FVCIsIC8qIDY0ICovCisJIkVOT1BLRyIsIC8qIDY1ICovCisJIkVSRU1PVEUiLCAvKiA2NiAqLworCSJFTk9MSU5LIiwgLyogNjcgKi8KKwkiRUFEViIsIC8qIDY4ICovCisJIkVTUk1OVCIsIC8qIDY5ICovCisJIkVDT01NIiwgLyogNzAgKi8KKwkiRVBST1RPIiwgLyogNzEgKi8KKwkiRU1VTFRJSE9QIiwgLyogNzIgKi8KKwkiRURPVERPVCIsIC8qIDczICovCisJIkVCQURNU0ciLCAvKiA3NCAqLworCSJFT1ZFUkZMT1ciLCAvKiA3NSAqLworCSJFTk9UVU5JUSIsIC8qIDc2ICovCisJIkVCQURGRCIsIC8qIDc3ICovCisJIkVSRU1DSEciLCAvKiA3OCAqLworCSJFTElCQUNDIiwgLyogNzkgKi8KKwkiRUxJQkJBRCIsIC8qIDgwICovCisJIkVMSUJTQ04iLCAvKiA4MSAqLworCSJFTElCTUFYIiwgLyogODIgKi8KKwkiRUxJQkVYRUMiLCAvKiA4MyAqLworCSJFSUxTRVEiLCAvKiA4NCAqLworCSJFUkVTVEFSVCIsIC8qIDg1ICovCisJIkVTVFJQSVBFIiwgLyogODYgKi8KKwkiRVVTRVJTIiwgLyogODcgKi8KKwkiRU5PVFNPQ0siLCAvKiA4OCAqLworCSJFREVTVEFERFJSRVEiLCAvKiA4OSAqLworCSJFTVNHU0laRSIsIC8qIDkwICovCisJIkVQUk9UT1RZUEUiLCAvKiA5MSAqLworCSJFTk9QUk9UT09QVCIsIC8qIDkyICovCisJIkVQUk9UT05PU1VQUE9SVCIsIC8qIDkzICovCisJIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDk0ICovCisJIkVPUE5PVFNVUFAiLCAvKiA5NSAqLworCSJFUEZOT1NVUFBPUlQiLCAvKiA5NiAqLworCSJFQUZOT1NVUFBPUlQiLCAvKiA5NyAqLworCSJFQUREUklOVVNFIiwgLyogOTggKi8KKwkiRUFERFJOT1RBVkFJTCIsIC8qIDk5ICovCisJIkVORVRET1dOIiwgLyogMTAwICovCisJIkVORVRVTlJFQUNIIiwgLyogMTAxICovCisJIkVORVRSRVNFVCIsIC8qIDEwMiAqLworCSJFQ09OTkFCT1JURUQiLCAvKiAxMDMgKi8KKwkiRUNPTk5SRVNFVCIsIC8qIDEwNCAqLworCSJFTk9CVUZTIiwgLyogMTA1ICovCisJIkVJU0NPTk4iLCAvKiAxMDYgKi8KKwkiRU5PVENPTk4iLCAvKiAxMDcgKi8KKwkiRVNIVVRET1dOIiwgLyogMTA4ICovCisJIkVUT09NQU5ZUkVGUyIsIC8qIDEwOSAqLworCSJFVElNRURPVVQiLCAvKiAxMTAgKi8KKwkiRUNPTk5SRUZVU0VEIiwgLyogMTExICovCisJIkVIT1NURE9XTiIsIC8qIDExMiAqLworCSJFSE9TVFVOUkVBQ0giLCAvKiAxMTMgKi8KKwkiRUFMUkVBRFkiLCAvKiAxMTQgKi8KKwkiRUlOUFJPR1JFU1MiLCAvKiAxMTUgKi8KKwkiRVNUQUxFIiwgLyogMTE2ICovCisJIkVVQ0xFQU4iLCAvKiAxMTcgKi8KKwkiRU5PVE5BTSIsIC8qIDExOCAqLworCSJFTkFWQUlMIiwgLyogMTE5ICovCisJIkVJU05BTSIsIC8qIDEyMCAqLworCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KKwkiRURRVU9UIiwgLyogMTIyICovCisJIkVOT01FRElVTSIsIC8qIDEyMyAqLworCSJFTUVESVVNVFlQRSIsIC8qIDEyNCAqLworCSJFUlJOT18xMjUiLCAvKiAxMjUgKi8KKwkiRVJSTk9fMTI2IiwgLyogMTI2ICovCisJIkVSUk5PXzEyNyIsIC8qIDEyNyAqLworCSJFUlJOT18xMjgiLCAvKiAxMjggKi8KKwkiRVJSTk9fMTI5IiwgLyogMTI5ICovCisJIkVSUk5PXzEzMCIsIC8qIDEzMCAqLworCSJFUlJOT18xMzEiLCAvKiAxMzEgKi8KKwkiRVJSTk9fMTMyIiwgLyogMTMyICovCisJIkVSUk5PXzEzMyIsIC8qIDEzMyAqLworCSJFUlJOT18xMzQiLCAvKiAxMzQgKi8KKwkiRVJSTk9fMTM1IiwgLyogMTM1ICovCisJIkVSUk5PXzEzNiIsIC8qIDEzNiAqLworCSJFUlJOT18xMzciLCAvKiAxMzcgKi8KKwkiRVJSTk9fMTM4IiwgLyogMTM4ICovCisJIkVSUk5PXzEzOSIsIC8qIDEzOSAqLworCSJFUlJOT18xNDAiLCAvKiAxNDAgKi8KKwkiRVJSTk9fMTQxIiwgLyogMTQxICovCisJIkVSUk5PXzE0MiIsIC8qIDE0MiAqLworCSJFUlJOT18xNDMiLCAvKiAxNDMgKi8KKwkiRVJSTk9fMTQ0IiwgLyogMTQ0ICovCisJIkVSUk5PXzE0NSIsIC8qIDE0NSAqLworCSJFUlJOT18xNDYiLCAvKiAxNDYgKi8KKwkiRVJSTk9fMTQ3IiwgLyogMTQ3ICovCisJIkVSUk5PXzE0OCIsIC8qIDE0OCAqLworCSJFUlJOT18xNDkiLCAvKiAxNDkgKi8KKwkiRVJSTk9fMTUwIiwgLyogMTUwICovCisJIkVSUk5PXzE1MSIsIC8qIDE1MSAqLworCSJFUlJOT18xNTIiLCAvKiAxNTIgKi8KKwkiRVJSTk9fMTUzIiwgLyogMTUzICovCisJIkVSUk5PXzE1NCIsIC8qIDE1NCAqLworCSJFUlJOT18xNTUiLCAvKiAxNTUgKi8KKwkiRVJSTk9fMTU2IiwgLyogMTU2ICovCisJIkVSUk5PXzE1NyIsIC8qIDE1NyAqLworCSJFUlJOT18xNTgiLCAvKiAxNTggKi8KKwkiRVJSTk9fMTU5IiwgLyogMTU5ICovCisJIkVSUk5PXzE2MCIsIC8qIDE2MCAqLworCSJFUlJOT18xNjEiLCAvKiAxNjEgKi8KKwkiRVJSTk9fMTYyIiwgLyogMTYyICovCisJIkVSUk5PXzE2MyIsIC8qIDE2MyAqLworCSJFUlJOT18xNjQiLCAvKiAxNjQgKi8KKwkiRVJSTk9fMTY1IiwgLyogMTY1ICovCisJIkVSUk5PXzE2NiIsIC8qIDE2NiAqLworCSJFUlJOT18xNjciLCAvKiAxNjcgKi8KKwkiRVJSTk9fMTY4IiwgLyogMTY4ICovCisJIkVSUk5PXzE2OSIsIC8qIDE2OSAqLworCSJFUlJOT18xNzAiLCAvKiAxNzAgKi8KKwkiRVJSTk9fMTcxIiwgLyogMTcxICovCisJIkVSUk5PXzE3MiIsIC8qIDE3MiAqLworCSJFUlJOT18xNzMiLCAvKiAxNzMgKi8KKwkiRVJSTk9fMTc0IiwgLyogMTc0ICovCisJIkVSUk5PXzE3NSIsIC8qIDE3NSAqLworCSJFUlJOT18xNzYiLCAvKiAxNzYgKi8KKwkiRVJSTk9fMTc3IiwgLyogMTc3ICovCisJIkVSUk5PXzE3OCIsIC8qIDE3OCAqLworCSJFUlJOT18xNzkiLCAvKiAxNzkgKi8KKwkiRVJSTk9fMTgwIiwgLyogMTgwICovCisJIkVSUk5PXzE4MSIsIC8qIDE4MSAqLworCSJFUlJOT18xODIiLCAvKiAxODIgKi8KKwkiRVJSTk9fMTgzIiwgLyogMTgzICovCisJIkVSUk5PXzE4NCIsIC8qIDE4NCAqLworCSJFUlJOT18xODUiLCAvKiAxODUgKi8KKwkiRVJSTk9fMTg2IiwgLyogMTg2ICovCisJIkVSUk5PXzE4NyIsIC8qIDE4NyAqLworCSJFUlJOT18xODgiLCAvKiAxODggKi8KKwkiRVJSTk9fMTg5IiwgLyogMTg5ICovCisJIkVSUk5PXzE5MCIsIC8qIDE5MCAqLworCSJFUlJOT18xOTEiLCAvKiAxOTEgKi8KKwkiRVJSTk9fMTkyIiwgLyogMTkyICovCisJIkVSUk5PXzE5MyIsIC8qIDE5MyAqLworCSJFUlJOT18xOTQiLCAvKiAxOTQgKi8KKwkiRVJSTk9fMTk1IiwgLyogMTk1ICovCisJIkVSUk5PXzE5NiIsIC8qIDE5NiAqLworCSJFUlJOT18xOTciLCAvKiAxOTcgKi8KKwkiRVJSTk9fMTk4IiwgLyogMTk4ICovCisJIkVSUk5PXzE5OSIsIC8qIDE5OSAqLworCSJFUlJOT18yMDAiLCAvKiAyMDAgKi8KKwkiRVJSTk9fMjAxIiwgLyogMjAxICovCisJIkVSUk5PXzIwMiIsIC8qIDIwMiAqLworCSJFUlJOT18yMDMiLCAvKiAyMDMgKi8KKwkiRVJSTk9fMjA0IiwgLyogMjA0ICovCisJIkVSUk5PXzIwNSIsIC8qIDIwNSAqLworCSJFUlJOT18yMDYiLCAvKiAyMDYgKi8KKwkiRVJSTk9fMjA3IiwgLyogMjA3ICovCisJIkVSUk5PXzIwOCIsIC8qIDIwOCAqLworCSJFUlJOT18yMDkiLCAvKiAyMDkgKi8KKwkiRVJSTk9fMjEwIiwgLyogMjEwICovCisJIkVSUk5PXzIxMSIsIC8qIDIxMSAqLworCSJFUlJOT18yMTIiLCAvKiAyMTIgKi8KKwkiRVJSTk9fMjEzIiwgLyogMjEzICovCisJIkVSUk5PXzIxNCIsIC8qIDIxNCAqLworCSJFUlJOT18yMTUiLCAvKiAyMTUgKi8KKwkiRVJSTk9fMjE2IiwgLyogMjE2ICovCisJIkVSUk5PXzIxNyIsIC8qIDIxNyAqLworCSJFUlJOT18yMTgiLCAvKiAyMTggKi8KKwkiRVJSTk9fMjE5IiwgLyogMjE5ICovCisJIkVSUk5PXzIyMCIsIC8qIDIyMCAqLworCSJFUlJOT18yMjEiLCAvKiAyMjEgKi8KKwkiRVJSTk9fMjIyIiwgLyogMjIyICovCisJIkVSUk5PXzIyMyIsIC8qIDIyMyAqLworCSJFUlJOT18yMjQiLCAvKiAyMjQgKi8KKwkiRVJSTk9fMjI1IiwgLyogMjI1ICovCisJIkVSUk5PXzIyNiIsIC8qIDIyNiAqLworCSJFUlJOT18yMjciLCAvKiAyMjcgKi8KKwkiRVJSTk9fMjI4IiwgLyogMjI4ICovCisJIkVSUk5PXzIyOSIsIC8qIDIyOSAqLworCSJFUlJOT18yMzAiLCAvKiAyMzAgKi8KKwkiRVJSTk9fMjMxIiwgLyogMjMxICovCisJIkVSUk5PXzIzMiIsIC8qIDIzMiAqLworCSJFUlJOT18yMzMiLCAvKiAyMzMgKi8KKwkiRVJSTk9fMjM0IiwgLyogMjM0ICovCisJIkVSUk5PXzIzNSIsIC8qIDIzNSAqLworCSJFUlJOT18yMzYiLCAvKiAyMzYgKi8KKwkiRVJSTk9fMjM3IiwgLyogMjM3ICovCisJIkVSUk5PXzIzOCIsIC8qIDIzOCAqLworCSJFUlJOT18yMzkiLCAvKiAyMzkgKi8KKwkiRVJSTk9fMjQwIiwgLyogMjQwICovCisJIkVSUk5PXzI0MSIsIC8qIDI0MSAqLworCSJFUlJOT18yNDIiLCAvKiAyNDIgKi8KKwkiRVJSTk9fMjQzIiwgLyogMjQzICovCisJIkVSUk5PXzI0NCIsIC8qIDI0NCAqLworCSJFUlJOT18yNDUiLCAvKiAyNDUgKi8KKwkiRVJSTk9fMjQ2IiwgLyogMjQ2ICovCisJIkVSUk5PXzI0NyIsIC8qIDI0NyAqLworCSJFUlJOT18yNDgiLCAvKiAyNDggKi8KKwkiRVJSTk9fMjQ5IiwgLyogMjQ5ICovCisJIkVSUk5PXzI1MCIsIC8qIDI1MCAqLworCSJFUlJOT18yNTEiLCAvKiAyNTEgKi8KKwkiRVJSTk9fMjUyIiwgLyogMjUyICovCisJIkVSUk5PXzI1MyIsIC8qIDI1MyAqLworCSJFUlJOT18yNTQiLCAvKiAyNTQgKi8KKwkiRVJSTk9fMjU1IiwgLyogMjU1ICovCisJIkVSUk5PXzI1NiIsIC8qIDI1NiAqLworCSJFUlJOT18yNTciLCAvKiAyNTcgKi8KKwkiRVJSTk9fMjU4IiwgLyogMjU4ICovCisJIkVSUk5PXzI1OSIsIC8qIDI1OSAqLworCSJFUlJOT18yNjAiLCAvKiAyNjAgKi8KKwkiRVJSTk9fMjYxIiwgLyogMjYxICovCisJIkVSUk5PXzI2MiIsIC8qIDI2MiAqLworCSJFUlJOT18yNjMiLCAvKiAyNjMgKi8KKwkiRVJSTk9fMjY0IiwgLyogMjY0ICovCisJIkVSUk5PXzI2NSIsIC8qIDI2NSAqLworCSJFUlJOT18yNjYiLCAvKiAyNjYgKi8KKwkiRVJSTk9fMjY3IiwgLyogMjY3ICovCisJIkVSUk5PXzI2OCIsIC8qIDI2OCAqLworCSJFUlJOT18yNjkiLCAvKiAyNjkgKi8KKwkiRVJSTk9fMjcwIiwgLyogMjcwICovCisJIkVSUk5PXzI3MSIsIC8qIDI3MSAqLworCSJFUlJOT18yNzIiLCAvKiAyNzIgKi8KKwkiRVJSTk9fMjczIiwgLyogMjczICovCisJIkVSUk5PXzI3NCIsIC8qIDI3NCAqLworCSJFUlJOT18yNzUiLCAvKiAyNzUgKi8KKwkiRVJSTk9fMjc2IiwgLyogMjc2ICovCisJIkVSUk5PXzI3NyIsIC8qIDI3NyAqLworCSJFUlJOT18yNzgiLCAvKiAyNzggKi8KKwkiRVJSTk9fMjc5IiwgLyogMjc5ICovCisJIkVSUk5PXzI4MCIsIC8qIDI4MCAqLworCSJFUlJOT18yODEiLCAvKiAyODEgKi8KKwkiRVJSTk9fMjgyIiwgLyogMjgyICovCisJIkVSUk5PXzI4MyIsIC8qIDI4MyAqLworCSJFUlJOT18yODQiLCAvKiAyODQgKi8KKwkiRVJSTk9fMjg1IiwgLyogMjg1ICovCisJIkVSUk5PXzI4NiIsIC8qIDI4NiAqLworCSJFUlJOT18yODciLCAvKiAyODcgKi8KKwkiRVJSTk9fMjg4IiwgLyogMjg4ICovCisJIkVSUk5PXzI4OSIsIC8qIDI4OSAqLworCSJFUlJOT18yOTAiLCAvKiAyOTAgKi8KKwkiRVJSTk9fMjkxIiwgLyogMjkxICovCisJIkVSUk5PXzI5MiIsIC8qIDI5MiAqLworCSJFUlJOT18yOTMiLCAvKiAyOTMgKi8KKwkiRVJSTk9fMjk0IiwgLyogMjk0ICovCisJIkVSUk5PXzI5NSIsIC8qIDI5NSAqLworCSJFUlJOT18yOTYiLCAvKiAyOTYgKi8KKwkiRVJSTk9fMjk3IiwgLyogMjk3ICovCisJIkVSUk5PXzI5OCIsIC8qIDI5OCAqLworCSJFUlJOT18yOTkiLCAvKiAyOTkgKi8KKwkiRVJSTk9fMzAwIiwgLyogMzAwICovCisJIkVSUk5PXzMwMSIsIC8qIDMwMSAqLworCSJFUlJOT18zMDIiLCAvKiAzMDIgKi8KKwkiRVJSTk9fMzAzIiwgLyogMzAzICovCisJIkVSUk5PXzMwNCIsIC8qIDMwNCAqLworCSJFUlJOT18zMDUiLCAvKiAzMDUgKi8KKwkiRVJSTk9fMzA2IiwgLyogMzA2ICovCisJIkVSUk5PXzMwNyIsIC8qIDMwNyAqLworCSJFUlJOT18zMDgiLCAvKiAzMDggKi8KKwkiRVJSTk9fMzA5IiwgLyogMzA5ICovCisJIkVSUk5PXzMxMCIsIC8qIDMxMCAqLworCSJFUlJOT18zMTEiLCAvKiAzMTEgKi8KKwkiRVJSTk9fMzEyIiwgLyogMzEyICovCisJIkVSUk5PXzMxMyIsIC8qIDMxMyAqLworCSJFUlJOT18zMTQiLCAvKiAzMTQgKi8KKwkiRVJSTk9fMzE1IiwgLyogMzE1ICovCisJIkVSUk5PXzMxNiIsIC8qIDMxNiAqLworCSJFUlJOT18zMTciLCAvKiAzMTcgKi8KKwkiRVJSTk9fMzE4IiwgLyogMzE4ICovCisJIkVSUk5PXzMxOSIsIC8qIDMxOSAqLworCSJFUlJOT18zMjAiLCAvKiAzMjAgKi8KKwkiRVJSTk9fMzIxIiwgLyogMzIxICovCisJIkVSUk5PXzMyMiIsIC8qIDMyMiAqLworCSJFUlJOT18zMjMiLCAvKiAzMjMgKi8KKwkiRVJSTk9fMzI0IiwgLyogMzI0ICovCisJIkVSUk5PXzMyNSIsIC8qIDMyNSAqLworCSJFUlJOT18zMjYiLCAvKiAzMjYgKi8KKwkiRVJSTk9fMzI3IiwgLyogMzI3ICovCisJIkVSUk5PXzMyOCIsIC8qIDMyOCAqLworCSJFUlJOT18zMjkiLCAvKiAzMjkgKi8KKwkiRVJSTk9fMzMwIiwgLyogMzMwICovCisJIkVSUk5PXzMzMSIsIC8qIDMzMSAqLworCSJFUlJOT18zMzIiLCAvKiAzMzIgKi8KKwkiRVJSTk9fMzMzIiwgLyogMzMzICovCisJIkVSUk5PXzMzNCIsIC8qIDMzNCAqLworCSJFUlJOT18zMzUiLCAvKiAzMzUgKi8KKwkiRVJSTk9fMzM2IiwgLyogMzM2ICovCisJIkVSUk5PXzMzNyIsIC8qIDMzNyAqLworCSJFUlJOT18zMzgiLCAvKiAzMzggKi8KKwkiRVJSTk9fMzM5IiwgLyogMzM5ICovCisJIkVSUk5PXzM0MCIsIC8qIDM0MCAqLworCSJFUlJOT18zNDEiLCAvKiAzNDEgKi8KKwkiRVJSTk9fMzQyIiwgLyogMzQyICovCisJIkVSUk5PXzM0MyIsIC8qIDM0MyAqLworCSJFUlJOT18zNDQiLCAvKiAzNDQgKi8KKwkiRVJSTk9fMzQ1IiwgLyogMzQ1ICovCisJIkVSUk5PXzM0NiIsIC8qIDM0NiAqLworCSJFUlJOT18zNDciLCAvKiAzNDcgKi8KKwkiRVJSTk9fMzQ4IiwgLyogMzQ4ICovCisJIkVSUk5PXzM0OSIsIC8qIDM0OSAqLworCSJFUlJOT18zNTAiLCAvKiAzNTAgKi8KKwkiRVJSTk9fMzUxIiwgLyogMzUxICovCisJIkVSUk5PXzM1MiIsIC8qIDM1MiAqLworCSJFUlJOT18zNTMiLCAvKiAzNTMgKi8KKwkiRVJSTk9fMzU0IiwgLyogMzU0ICovCisJIkVSUk5PXzM1NSIsIC8qIDM1NSAqLworCSJFUlJOT18zNTYiLCAvKiAzNTYgKi8KKwkiRVJSTk9fMzU3IiwgLyogMzU3ICovCisJIkVSUk5PXzM1OCIsIC8qIDM1OCAqLworCSJFUlJOT18zNTkiLCAvKiAzNTkgKi8KKwkiRVJSTk9fMzYwIiwgLyogMzYwICovCisJIkVSUk5PXzM2MSIsIC8qIDM2MSAqLworCSJFUlJOT18zNjIiLCAvKiAzNjIgKi8KKwkiRVJSTk9fMzYzIiwgLyogMzYzICovCisJIkVSUk5PXzM2NCIsIC8qIDM2NCAqLworCSJFUlJOT18zNjUiLCAvKiAzNjUgKi8KKwkiRVJSTk9fMzY2IiwgLyogMzY2ICovCisJIkVSUk5PXzM2NyIsIC8qIDM2NyAqLworCSJFUlJOT18zNjgiLCAvKiAzNjggKi8KKwkiRVJSTk9fMzY5IiwgLyogMzY5ICovCisJIkVSUk5PXzM3MCIsIC8qIDM3MCAqLworCSJFUlJOT18zNzEiLCAvKiAzNzEgKi8KKwkiRVJSTk9fMzcyIiwgLyogMzcyICovCisJIkVSUk5PXzM3MyIsIC8qIDM3MyAqLworCSJFUlJOT18zNzQiLCAvKiAzNzQgKi8KKwkiRVJSTk9fMzc1IiwgLyogMzc1ICovCisJIkVSUk5PXzM3NiIsIC8qIDM3NiAqLworCSJFUlJOT18zNzciLCAvKiAzNzcgKi8KKwkiRVJSTk9fMzc4IiwgLyogMzc4ICovCisJIkVSUk5PXzM3OSIsIC8qIDM3OSAqLworCSJFUlJOT18zODAiLCAvKiAzODAgKi8KKwkiRVJSTk9fMzgxIiwgLyogMzgxICovCisJIkVSUk5PXzM4MiIsIC8qIDM4MiAqLworCSJFUlJOT18zODMiLCAvKiAzODMgKi8KKwkiRVJSTk9fMzg0IiwgLyogMzg0ICovCisJIkVSUk5PXzM4NSIsIC8qIDM4NSAqLworCSJFUlJOT18zODYiLCAvKiAzODYgKi8KKwkiRVJSTk9fMzg3IiwgLyogMzg3ICovCisJIkVSUk5PXzM4OCIsIC8qIDM4OCAqLworCSJFUlJOT18zODkiLCAvKiAzODkgKi8KKwkiRVJSTk9fMzkwIiwgLyogMzkwICovCisJIkVSUk5PXzM5MSIsIC8qIDM5MSAqLworCSJFUlJOT18zOTIiLCAvKiAzOTIgKi8KKwkiRVJSTk9fMzkzIiwgLyogMzkzICovCisJIkVSUk5PXzM5NCIsIC8qIDM5NCAqLworCSJFUlJOT18zOTUiLCAvKiAzOTUgKi8KKwkiRVJSTk9fMzk2IiwgLyogMzk2ICovCisJIkVSUk5PXzM5NyIsIC8qIDM5NyAqLworCSJFUlJOT18zOTgiLCAvKiAzOTggKi8KKwkiRVJSTk9fMzk5IiwgLyogMzk5ICovCisJIkVSUk5PXzQwMCIsIC8qIDQwMCAqLworCSJFUlJOT180MDEiLCAvKiA0MDEgKi8KKwkiRVJSTk9fNDAyIiwgLyogNDAyICovCisJIkVSUk5PXzQwMyIsIC8qIDQwMyAqLworCSJFUlJOT180MDQiLCAvKiA0MDQgKi8KKwkiRVJSTk9fNDA1IiwgLyogNDA1ICovCisJIkVSUk5PXzQwNiIsIC8qIDQwNiAqLworCSJFUlJOT180MDciLCAvKiA0MDcgKi8KKwkiRVJSTk9fNDA4IiwgLyogNDA4ICovCisJIkVSUk5PXzQwOSIsIC8qIDQwOSAqLworCSJFUlJOT180MTAiLCAvKiA0MTAgKi8KKwkiRVJSTk9fNDExIiwgLyogNDExICovCisJIkVSUk5PXzQxMiIsIC8qIDQxMiAqLworCSJFUlJOT180MTMiLCAvKiA0MTMgKi8KKwkiRVJSTk9fNDE0IiwgLyogNDE0ICovCisJIkVSUk5PXzQxNSIsIC8qIDQxNSAqLworCSJFUlJOT180MTYiLCAvKiA0MTYgKi8KKwkiRVJSTk9fNDE3IiwgLyogNDE3ICovCisJIkVSUk5PXzQxOCIsIC8qIDQxOCAqLworCSJFUlJOT180MTkiLCAvKiA0MTkgKi8KKwkiRVJSTk9fNDIwIiwgLyogNDIwICovCisJIkVSUk5PXzQyMSIsIC8qIDQyMSAqLworCSJFUlJOT180MjIiLCAvKiA0MjIgKi8KKwkiRVJSTk9fNDIzIiwgLyogNDIzICovCisJIkVSUk5PXzQyNCIsIC8qIDQyNCAqLworCSJFUlJOT180MjUiLCAvKiA0MjUgKi8KKwkiRVJSTk9fNDI2IiwgLyogNDI2ICovCisJIkVSUk5PXzQyNyIsIC8qIDQyNyAqLworCSJFUlJOT180MjgiLCAvKiA0MjggKi8KKwkiRVJSTk9fNDI5IiwgLyogNDI5ICovCisJIkVSUk5PXzQzMCIsIC8qIDQzMCAqLworCSJFUlJOT180MzEiLCAvKiA0MzEgKi8KKwkiRVJSTk9fNDMyIiwgLyogNDMyICovCisJIkVSUk5PXzQzMyIsIC8qIDQzMyAqLworCSJFUlJOT180MzQiLCAvKiA0MzQgKi8KKwkiRVJSTk9fNDM1IiwgLyogNDM1ICovCisJIkVSUk5PXzQzNiIsIC8qIDQzNiAqLworCSJFUlJOT180MzciLCAvKiA0MzcgKi8KKwkiRVJSTk9fNDM4IiwgLyogNDM4ICovCisJIkVSUk5PXzQzOSIsIC8qIDQzOSAqLworCSJFUlJOT180NDAiLCAvKiA0NDAgKi8KKwkiRVJSTk9fNDQxIiwgLyogNDQxICovCisJIkVSUk5PXzQ0MiIsIC8qIDQ0MiAqLworCSJFUlJOT180NDMiLCAvKiA0NDMgKi8KKwkiRVJSTk9fNDQ0IiwgLyogNDQ0ICovCisJIkVSUk5PXzQ0NSIsIC8qIDQ0NSAqLworCSJFUlJOT180NDYiLCAvKiA0NDYgKi8KKwkiRVJSTk9fNDQ3IiwgLyogNDQ3ICovCisJIkVSUk5PXzQ0OCIsIC8qIDQ0OCAqLworCSJFUlJOT180NDkiLCAvKiA0NDkgKi8KKwkiRVJSTk9fNDUwIiwgLyogNDUwICovCisJIkVSUk5PXzQ1MSIsIC8qIDQ1MSAqLworCSJFUlJOT180NTIiLCAvKiA0NTIgKi8KKwkiRVJSTk9fNDUzIiwgLyogNDUzICovCisJIkVSUk5PXzQ1NCIsIC8qIDQ1NCAqLworCSJFUlJOT180NTUiLCAvKiA0NTUgKi8KKwkiRVJSTk9fNDU2IiwgLyogNDU2ICovCisJIkVSUk5PXzQ1NyIsIC8qIDQ1NyAqLworCSJFUlJOT180NTgiLCAvKiA0NTggKi8KKwkiRVJSTk9fNDU5IiwgLyogNDU5ICovCisJIkVSUk5PXzQ2MCIsIC8qIDQ2MCAqLworCSJFUlJOT180NjEiLCAvKiA0NjEgKi8KKwkiRVJSTk9fNDYyIiwgLyogNDYyICovCisJIkVSUk5PXzQ2MyIsIC8qIDQ2MyAqLworCSJFUlJOT180NjQiLCAvKiA0NjQgKi8KKwkiRVJSTk9fNDY1IiwgLyogNDY1ICovCisJIkVSUk5PXzQ2NiIsIC8qIDQ2NiAqLworCSJFUlJOT180NjciLCAvKiA0NjcgKi8KKwkiRVJSTk9fNDY4IiwgLyogNDY4ICovCisJIkVSUk5PXzQ2OSIsIC8qIDQ2OSAqLworCSJFUlJOT180NzAiLCAvKiA0NzAgKi8KKwkiRVJSTk9fNDcxIiwgLyogNDcxICovCisJIkVSUk5PXzQ3MiIsIC8qIDQ3MiAqLworCSJFUlJOT180NzMiLCAvKiA0NzMgKi8KKwkiRVJSTk9fNDc0IiwgLyogNDc0ICovCisJIkVSUk5PXzQ3NSIsIC8qIDQ3NSAqLworCSJFUlJOT180NzYiLCAvKiA0NzYgKi8KKwkiRVJSTk9fNDc3IiwgLyogNDc3ICovCisJIkVSUk5PXzQ3OCIsIC8qIDQ3OCAqLworCSJFUlJOT180NzkiLCAvKiA0NzkgKi8KKwkiRVJSTk9fNDgwIiwgLyogNDgwICovCisJIkVSUk5PXzQ4MSIsIC8qIDQ4MSAqLworCSJFUlJOT180ODIiLCAvKiA0ODIgKi8KKwkiRVJSTk9fNDgzIiwgLyogNDgzICovCisJIkVSUk5PXzQ4NCIsIC8qIDQ4NCAqLworCSJFUlJOT180ODUiLCAvKiA0ODUgKi8KKwkiRVJSTk9fNDg2IiwgLyogNDg2ICovCisJIkVSUk5PXzQ4NyIsIC8qIDQ4NyAqLworCSJFUlJOT180ODgiLCAvKiA0ODggKi8KKwkiRVJSTk9fNDg5IiwgLyogNDg5ICovCisJIkVSUk5PXzQ5MCIsIC8qIDQ5MCAqLworCSJFUlJOT180OTEiLCAvKiA0OTEgKi8KKwkiRVJSTk9fNDkyIiwgLyogNDkyICovCisJIkVSUk5PXzQ5MyIsIC8qIDQ5MyAqLworCSJFUlJOT180OTQiLCAvKiA0OTQgKi8KKwkiRVJSTk9fNDk1IiwgLyogNDk1ICovCisJIkVSUk5PXzQ5NiIsIC8qIDQ5NiAqLworCSJFUlJOT180OTciLCAvKiA0OTcgKi8KKwkiRVJSTk9fNDk4IiwgLyogNDk4ICovCisJIkVSUk5PXzQ5OSIsIC8qIDQ5OSAqLworCSJFUlJOT181MDAiLCAvKiA1MDAgKi8KKwkiRVJSTk9fNTAxIiwgLyogNTAxICovCisJIkVSUk5PXzUwMiIsIC8qIDUwMiAqLworCSJFUlJOT181MDMiLCAvKiA1MDMgKi8KKwkiRVJSTk9fNTA0IiwgLyogNTA0ICovCisJIkVSUk5PXzUwNSIsIC8qIDUwNSAqLworCSJFUlJOT181MDYiLCAvKiA1MDYgKi8KKwkiRVJSTk9fNTA3IiwgLyogNTA3ICovCisJIkVSUk5PXzUwOCIsIC8qIDUwOCAqLworCSJFUlJOT181MDkiLCAvKiA1MDkgKi8KKwkiRVJSTk9fNTEwIiwgLyogNTEwICovCisJIkVSUk5PXzUxMSIsIC8qIDUxMSAqLworCSJFUkVTVEFSVFNZUyIsIC8qIDUxMiAqLworCSJFUkVTVEFSVE5PSU5UUiIsIC8qIDUxMyAqLworCSJFUkVTVEFSVE5PSEFORCIsIC8qIDUxNCAqLworCSJFTk9JT0NUTENNRCIsIC8qIDUxNSAqLworCSJFUlJOT181MTYiLCAvKiA1MTYgKi8KKwkiRVJSTk9fNTE3IiwgLyogNTE3ICovCisJIkVSUk5PXzUxOCIsIC8qIDUxOCAqLworCSJFUlJOT181MTkiLCAvKiA1MTkgKi8KKwkiRVJSTk9fNTIwIiwgLyogNTIwICovCisJIkVCQURIQU5ETEUiLCAvKiA1MjEgKi8KKwkiRU5PVFNZTkMiLCAvKiA1MjIgKi8KKwkiRUJBRENPT0tJRSIsIC8qIDUyMyAqLworCSJFTk9UU1VQUCIsIC8qIDUyNCAqLworCSJFVE9PU01BTEwiLCAvKiA1MjUgKi8KKwkiRVNFUlZFUkZBVUxUIiwgLyogNTI2ICovCisJIkVCQURUWVBFIiwgLyogNTI3ICovCisJIkVKVUtFQk9YIiwgLyogNTI4ICovCmRpZmYgLS1naXQgYS9saW51eC9pb2N0bGVudC5oIGIvbGludXgvaW9jdGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2EyMDcwCi0tLSAvZGV2L251bGwKKysrIGIvbGludXgvaW9jdGxlbnQuaApAQCAtMCwwICsxLDEzMTIgQEAKKwkvKiBHZW5lcmF0ZWQgYnkgaW9jdGxzb3J0ICovCisJeyJsaW51eC9mcy5oIiwJIkZJQk1BUCIsCTB4MX0sCisJeyJsaW51eC9mcy5oIiwJIkZJR0VUQlNaIiwJMHgyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRQUk0iLAkweDIwNH0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VUTUFYRVJSUyIsCTB4MjBlfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZUWVAiLAkweDIwZn0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWUFJNIiwJMHgyMTF9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlNUQVQiLAkweDIxMn0sCisJeyJsaW51eC9mZC5oIiwJIkZEUE9MTERSVlNUQVQiLAkweDIxM30sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURkRDU1RBVCIsCTB4MjE1fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JHRVQiLAkweDIxN30sCisJeyJsaW51eC9mZC5oIiwJIkZEQ0xSUFJNIiwJMHgyNDF9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVFBSTSIsCTB4MjQyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRERUZQUk0iLAkweDI0M30sCisJeyJsaW51eC9mZC5oIiwJIkZETVNHT04iLAkweDI0NX0sCisJeyJsaW51eC9mZC5oIiwJIkZETVNHT0ZGIiwJMHgyNDZ9LAorCXsibGludXgvZmQuaCIsCSJGREZNVEJFRyIsCTB4MjQ3fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRUUksiLAkweDI0OH0sCisJeyJsaW51eC9mZC5oIiwJIkZERk1URU5EIiwJMHgyNDl9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVEVNU0dUUkVTSCIsCTB4MjRhfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTFVTSCIsCTB4MjRifSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRNQVhFUlJTIiwJMHgyNGN9LAorCXsibGludXgvZmQuaCIsCSJGRFJFU0VUIiwJMHgyNTR9LAorCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkNMUiIsCTB4MjU2fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRSQVdDTUQiLAkweDI1OH0sCisJeyJsaW51eC9mZC5oIiwJIkZEVFdBRERMRSIsCTB4MjU5fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRFSkVDVCIsCTB4MjVhfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVREUlZQUk0iLAkweDI5MH0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9ET1MiLAkweDRkMn0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0RPUyIsCTB4NGQzfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19STURJUl9ET1MiLAkweDRkNH0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfU1RBVF9ET1MiLAkweDRkNX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfQ1JFQVRfRU1EIiwJMHg0ZDZ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19FTUQiLAkweDRkN30sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVBRERJUl9FTUQiLAkweDRkOH0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfR0VUVkVSU0lPTiIsCTB4NGQ5fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19JTklUX0VNRCIsCTB4NGRhfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19ET1NfU0VUVVAiLAkweDRkYn0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUkVOQU1FX0RPUyIsCTB4NGRjfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAorCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAorCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAorCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAorCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAorCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0dFVExBU1RTRUNUIiwJMHgxMjZjfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VUTEFTVFNFQ1QiLAkweDEyNmR9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9USU1FT1VUIiwJMHgyMjAxfSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfVElNRU9VVCIsCTB4MjIwMn0sCisJeyJzY3NpL3NnLmgiLAkiU0dfRU1VTEFURURfSE9TVCIsCTB4MjIwM30sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX1RSQU5TRk9STSIsCTB4MjIwNH0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1RSQU5TRk9STSIsCTB4MjIwNX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0NPTU1BTkRfUSIsCTB4MjI3MH0sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0NPTU1BTkRfUSIsCTB4MjI3MX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1JFU0VSVkVEX1NJWkUiLAkweDIyNzJ9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9SRVNFUlZFRF9TSVpFIiwJMHgyMjc1fSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfU0NTSV9JRCIsCTB4MjI3Nn0sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0ZPUkNFX0xPV19ETUEiLAkweDIyNzl9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9MT1dfRE1BIiwJMHgyMjdhfSwKKwl7InNjc2kvc2cuaCIsCSJTR19TRVRfRk9SQ0VfUEFDS19JRCIsCTB4MjI3Yn0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1BBQ0tfSUQiLAkweDIyN2N9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9OVU1fV0FJVElORyIsCTB4MjI3ZH0sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0RFQlVHIiwJMHgyMjdlfSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfU0dfVEFCTEVTSVpFIiwJMHgyMjdmfSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfVkVSU0lPTl9OVU0iLAkweDIyODJ9LAorCXsic2NzaS9zZy5oIiwJIlNHX05FWFRfQ01EX0xFTiIsCTB4MjI4M30sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0NTSV9SRVNFVCIsCTB4MjI4NH0sCisJeyJzY3NpL3NnLmgiLAkiU0dfSU8iLAkweDIyODV9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9SRVFVRVNUX1RBQkxFIiwJMHgyMjg2fSwKKwl7InNjc2kvc2cuaCIsCSJTR19TRVRfS0VFUF9PUlBIQU4iLAkweDIyODd9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9LRUVQX09SUEhBTiIsCTB4MjI4OH0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX0FDQ0VTU19DT1VOVCIsCTB4MjI4OX0sCisJeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9HUlNUUkFUIiwJMHgzMjAxfSwKKwl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT0dXU1RSQVQiLAkweDMyMDJ9LAorCXsibGludXgvaTJvLmgiLAkiQkxLSTJPU1JTVFJBVCIsCTB4MzIwM30sCisJeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9TV1NUUkFUIiwJMHgzMjA0fSwKKwl7ImFzbS9wcm9jZXNzb3IuaCIsCSJNSUNST0NPREVfSU9DRlJFRSIsCTB4MzYwMH0sCisJeyJsaW51eC9yYWRlb25mYi5oIiwJIkZCSU9fUkFERU9OX0dFVF9NSVJST1IiLAkweDQwMDN9LAorCXsibGludXgvcmFkZW9uZmIuaCIsCSJGQklPX1JBREVPTl9TRVRfTUlSUk9SIiwJMHg0MDA0fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAorCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKKwl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HUkFCX0JBQ0tMSUdIVCIsCTB4NDIwNn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfREVSRUdESVNLIiwJMHg0MjBjfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVHTkVXRElTSyIsCTB4NDIwZH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFR05FV0QiLAkweDQyMGV9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVNDQU5ESVNLIiwJMHg0MjEwfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTFVOSU5GTyIsCTB4NDIxMX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0JJR19QQVNTVEhSVSIsCTB4NDIxMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SRVNFVCIsCTB4NDMwMH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9SRUdJU1RFUiIsCTB4NDMwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9MT0FEIiwJMHg0MzAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JEQVRBIiwJMHg0MzAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDT0RFIiwJMHg0MzAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dEQVRBIiwJMHg0MzA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1dDT0RFIiwJMHg0MzA1fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9NQU5VRkFDVFVSRVIiLAkweDQzMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUlVOIiwJMHg0MzA2fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9WRVJTSU9OIiwJMHg0MzA3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0hBTFQiLAkweDQzMDd9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1NFUklBTCIsCTB4NDMwOH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9TRU5ETVNHIiwJMHg0MzA4fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9QUk9GSUxFIiwJMHg0MzA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JDVk1TRyIsCTB4NDMwOX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9NQU5VRkFDVFVSRVJfQ01EIiwJMHg0MzIwfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9FUlJDT0RFIiwJMHg0MzIxfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0lOU1RBTExFRCIsCTB4NDMyMn0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRkxBR1MiLAkweDQzMjN9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfU0VUX0ZMQUdTIiwJMHg0MzI0fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0NMUl9GTEFHUyIsCTB4NDMyNX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX09QRU5DT1VOVCIsCTB4NDMyNn0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9OQ0NJX0dFVFVOSVQiLAkweDQzMjd9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dWRVJTSU9OIiwJMHg0NTAxfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHSUQiLAkweDQ1MDJ9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dSRVAiLAkweDQ1MDN9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVlDT0RFIiwJMHg0NTA0fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkFCIiwJMHg0NTkwfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WU0NSRUVOSU5GTyIsCTB4NDYwMH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfVlNDUkVFTklORk8iLAkweDQ2MDF9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0ZTQ1JFRU5JTkZPIiwJMHg0NjAyfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVENNQVAiLAkweDQ2MDR9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUQ01BUCIsCTB4NDYwNX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QQU5fRElTUExBWSIsCTB4NDYwNn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRkNVUlNPUklORk8iLAkweDQ2MDd9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZDVVJTT1JJTkZPIiwJMHg0NjA4fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT19DVVJTT1IiLAkweDQ2MDh9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZDVVJTT1JJTkZPIiwJMHg0NjA5fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9DVVJTT1JTVEFURSIsCTB4NDYwYX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfQ1VSU09SU1RBVEUiLAkweDQ2MGJ9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0NPTjJGQk1BUCIsCTB4NDYwZn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfQ09OMkZCTUFQIiwJMHg0NjEwfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0JMQU5LIiwJMHg0NjExfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAorCXsibGludXgvZmIuaCIsCSJGQklPX0FMTE9DIiwJMHg0NjEzfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT19GUkVFIiwJMHg0NjE0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9HTFlQSCIsCTB4NDYxNX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfSFdDSU5GTyIsCTB4NDYxNn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfTU9ERUlORk8iLAkweDQ2MTd9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0RJU1BJTkZPIiwJMHg0NjE4fSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiRkJJT19XQUlURk9SVlNZTkMiLAkweDQ2MjB9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGTEFHIiwJMHg0ODBlfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NGTEFHIiwJMHg0ODBmfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dDT0xMRUNUSU9OSU5ERVgiLAkweDQ4MTB9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfSU5GTyIsCTB4NDgxMH0sCisJeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9JTkZPIiwJMHg0ODEwfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dDT0xMRUNUSU9OSU5GTyIsCTB4NDgxMX0sCisJeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9DT0RFX1BPS0UiLAkweDQ4MTF9LAorCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfTE9BRF9DT0RFIiwJMHg0ODExfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0NPREVfUEVFSyIsCTB4NDgxMn0sCisJeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9VTkxPQURfQ09ERSIsCTB4NDgxMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0VTIiwJMHg0ODEzfSwKKwl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1NUQVJUIiwJMHg0ODEzfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRVMiLAkweDQ4MTR9LAorCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfU1RPUCIsCTB4NDgxNH0sCisJeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9QQVVTRSIsCTB4NDgxNX0sCisJeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9SRVNUQVJUIiwJMHg0ODE2fSwKKwl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX0lORk8iLAkweDQ4MjB9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfVFJBTV9TRVRVUCIsCTB4NDgyMH0sCisJeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9SRVNFVCIsCTB4NDgyMX0sCisJeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9UUkFNX1BPS0UiLAkweDQ4MjF9LAorCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfUExBWV9OT1RFIiwJMHg0ODIyfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1RSQU1fUEVFSyIsCTB4NDgyMn0sCisJeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9TRVRfVk9JQ0UiLAkweDQ4MjN9LAorCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfU0VUX1BBUkFNUyIsCTB4NDgyNH0sCisJeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9TRVRfTU9ERSIsCTB4NDgyNX0sCisJeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9TRVRfQ09OTkVDVElPTiIsCTB4NDgyNn0sCisJeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9QQ01fUE9LRSIsCTB4NDgzMH0sCisJeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9QQ01fUEVFSyIsCTB4NDgzMX0sCisJeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9HRVRfUEVBS19STVMiLAkweDQ4NDB9LAorCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUX0NPTkZJR19JTkZPIiwJMHg0ODQxfSwKKwl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX1VQTE9BRF9GSVJNV0FSRSIsCTB4NDg0Mn0sCisJeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9HRVRfVkVSU0lPTiIsCTB4NDg0M30sCisJeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9HRVRfTUlYRVIiLAkweDQ4NDR9LAorCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUXzk2MzJfQUVCIiwJMHg0ODQ1fSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1NUT1AiLAkweDQ4ODB9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfQ09OVElOVUUiLAkweDQ4ODF9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfWkVST19UUkFNX0NPVU5URVIiLAkweDQ4ODJ9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfU0lOR0xFX1NURVAiLAkweDQ4ODN9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfREJHX1JFQUQiLAkweDQ4ODR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAorCXsibGludXgva2QuaCIsCSJLSU9DU09VTkQiLAkweDRiMmZ9LAorCXsibGludXgva2QuaCIsCSJLRE1LVE9ORSIsCTB4NGIzMH0sCisJeyJsaW51eC9rZC5oIiwJIktER0VUTEVEIiwJMHg0YjMxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTRVRMRUQiLAkweDRiMzJ9LAorCXsibGludXgva2QuaCIsCSJLREdLQlRZUEUiLAkweDRiMzN9LAorCXsibGludXgva2QuaCIsCSJLREFERElPIiwJMHg0YjM0fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RERUxJTyIsCTB4NGIzNX0sCisJeyJsaW51eC9rZC5oIiwJIktERU5BQklPIiwJMHg0YjM2fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RESVNBQklPIiwJMHg0YjM3fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTRVRNT0RFIiwJMHg0YjNhfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHRVRNT0RFIiwJMHg0YjNifSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RNQVBESVNQIiwJMHg0YjNjfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RVTk1BUERJU1AiLAkweDRiM2R9LAorCXsibGludXgva2QuaCIsCSJHSU9fU0NSTk1BUCIsCTB4NGI0MH0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19TQ1JOTUFQIiwJMHg0YjQxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JNT0RFIiwJMHg0YjQ0fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTS0JNT0RFIiwJMHg0YjQ1fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JFTlQiLAkweDRiNDZ9LAorCXsibGludXgva2QuaCIsCSJLRFNLQkVOVCIsCTB4NGI0N30sCisJeyJsaW51eC9rZC5oIiwJIktER0tCU0VOVCIsCTB4NGI0OH0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCU0VOVCIsCTB4NGI0OX0sCisJeyJsaW51eC9rZC5oIiwJIktER0tCRElBQ1IiLAkweDRiNGF9LAorCXsibGludXgva2QuaCIsCSJLRFNLQkRJQUNSIiwJMHg0YjRifSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHRVRLRVlDT0RFIiwJMHg0YjRjfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTRVRLRVlDT0RFIiwJMHg0YjRkfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTSUdBQ0NFUFQiLAkweDRiNGV9LAorCXsibGludXgva2QuaCIsCSJLREtCRFJFUCIsCTB4NGI1Mn0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19GT05UIiwJMHg0YjYwfSwKKwl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlQiLAkweDRiNjF9LAorCXsibGludXgva2QuaCIsCSJLREdLQk1FVEEiLAkweDRiNjJ9LAorCXsibGludXgva2QuaCIsCSJLRFNLQk1FVEEiLAkweDRiNjN9LAorCXsibGludXgva2QuaCIsCSJLREdLQkxFRCIsCTB4NGI2NH0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCTEVEIiwJMHg0YjY1fSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSU1BUCIsCTB4NGI2Nn0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVAiLAkweDRiNjd9LAorCXsibGludXgva2QuaCIsCSJQSU9fVU5JTUFQQ0xSIiwJMHg0YjY4fSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSVNDUk5NQVAiLAkweDRiNjl9LAorCXsibGludXgva2QuaCIsCSJQSU9fVU5JU0NSTk1BUCIsCTB4NGI2YX0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19GT05UWCIsCTB4NGI2Yn0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19GT05UWCIsCTB4NGI2Y30sCisJeyJsaW51eC9rZC5oIiwJIlBJT19GT05UUkVTRVQiLAkweDRiNmR9LAorCXsibGludXgva2QuaCIsCSJHSU9fQ01BUCIsCTB4NGI3MH0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19DTUFQIiwJMHg0YjcxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RGT05UT1AiLAkweDRiNzJ9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0FERF9FTlRSWSIsCTB4NGQwMH0sCisJeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfU0VUX0VOVFJZIiwJMHg0ZDAxfSwKKwl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19ERUxfRU5UUlkiLAkweDRkMDJ9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0dFVF9FTlRSWSIsCTB4NGQwM30sCisJeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfS0lMTF9FTlRSWSIsCTB4NGQwNH0sCisJeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfQUREX1BBR0VfRU5UUlkiLAkweDRkMDV9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX1NFVF9QQUdFX0VOVFJZIiwJMHg0ZDA2fSwKKwl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19ERUxfUEFHRV9FTlRSWSIsCTB4NGQwN30sCisJeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfR0VUX1BBR0VfRU5UUlkiLAkweDRkMDh9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0tJTExfUEFHRV9FTlRSWSIsCTB4NGQwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9JTkZPIiwJMHg0ZDY1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FDQ0VTUyIsCTB4NGQ2Nn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BR0MiLAkweDRkNjd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfM0RTRSIsCTB4NGQ2OH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMSIsCTB4NGQ2Zn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMiIsCTB4NGQ3MH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFMyIsCTB4NGQ3MX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNCIsCTB4NGQ3Mn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9QUklWQVRFNSIsCTB4NGQ3M30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9HRVRMRVZFTFMiLAkweDRkNzR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfU0VUTEVWRUxTIiwJMHg0ZDc1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIk9TU19HRVRWRVJTSU9OIiwJMHg0ZDc2fSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVVTQl9USU1FT1VUIiwJMHg0ZTIwfSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVVTQl9SRVNFVF9ERVZJQ0UiLAkweDRlMjF9LAorCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJVVNCX1JFU0VUX1BJUEVTIiwJMHg0ZTIyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUkVTRVQiLAkweDUwMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TWU5DIiwJMHg1MDAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1BFRUQiLAkweDUwMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfUkFURSIsCTB4NTAwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NURVJFTyIsCTB4NTAwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEJMS1NJWkUiLAkweDUwMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGTVQiLAkweDUwMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQklUUyIsCTB4NTAwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKKwl7InNvdW5kL3NzY2FwZV9pb2N0bC5oIiwJIlNORF9TU0NBUEVfTE9BRF9CT09UQiIsCTB4NTA2NH0sCisJeyJzb3VuZC9zc2NhcGVfaW9jdGwuaCIsCSJTTkRfU1NDQVBFX0xPQURfTUNPREUiLAkweDUwNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVCIsCTB4NTEwMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1NZTkMiLAkweDUxMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lORk8iLAkweDUxMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9DVFJMUkFURSIsCTB4NTEwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVE9VVENPVU5UIiwJMHg1MTA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUSU5DT1VOVCIsCTB4NTEwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BFUkNNT0RFIiwJMHg1MTA2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV9MT0FEX0lOU1RSIiwJMHg1MTA3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEVTVE1JREkiLAkweDUxMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9SRVNFVFNBTVBMRVMiLAkweDUxMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUlNZTlRIUyIsCTB4NTEwYX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05STUlESVMiLAkweDUxMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfSU5GTyIsCTB4NTEwY30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RIUkVTSE9MRCIsCTB4NTEwZH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfTUVNQVZMIiwJMHg1MTBlfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9GTV80T1BfRU5BQkxFIiwJMHg1MTBmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEFOSUMiLAkweDUxMTF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9PVVRPRkJBTkQiLAkweDUxMTJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRUSU1FIiwJMHg1MTEzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JRCIsCTB4NTExNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfQ09OVFJPTCIsCTB4NTExNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfUkVNT1ZFU0FNUExFIiwJMHg1MTE2fSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVEVOVENOVCIsCTB4NTIwMH0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERUT0VOVENOVCIsCTB4NTIwMX0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRQT09MIiwJMHg1MjAyfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFEREVOVFJPUFkiLAkweDUyMDN9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EWkFQRU5UQ05UIiwJMHg1MjA0fSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORENMRUFSUE9PTCIsCTB4NTIwNn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1BWRVJTSU9OIiwJMHg1MzAwfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QQVVTRSIsCTB4NTMwMX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0NMSUVOVF9JRCIsCTB4NTMwMX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVTVU1FIiwJMHg1MzAyfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU1lTVEVNX0lORk8iLAkweDUzMDJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlNU0YiLAkweDUzMDN9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9SVU5OSU5HX01PREUiLAkweDUzMDN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlUUktJTkQiLAkweDUzMDR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NIRFIiLAkweDUzMDV9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NFTlRSWSIsCTB4NTMwNn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RPUCIsCTB4NTMwN30sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RBUlQiLAkweDUzMDh9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUIiwJMHg1MzA5fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01WT0xDVFJMIiwJMHg1MzBhfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVUJDSE5MIiwJMHg1MzBifSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFETU9ERTIiLAkweDUzMGN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMSIsCTB4NTMwZH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFVRElPIiwJMHg1MzBlfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01FSkVDVF9TVyIsCTB4NTMwZn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NTVVMVElTRVNTSU9OIiwJMHg1MzEwfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX0NMSUVOVF9JTkZPIiwJMHg1MzEwfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fR0VUX01DTiIsCTB4NTMxMX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9DTElFTlRfSU5GTyIsCTB4NTMxMX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVTRVQiLAkweDUzMTJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTFJFQUQiLAkweDUzMTN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURSQVciLAkweDUzMTR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURDT09LRUQiLAkweDUzMTV9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFRUsiLAkweDUzMTZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlCTEsiLAkweDUzMTd9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURBTEwiLAkweDUzMTh9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUNMT1NFVFJBWSIsCTB4NTMxOX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NR0VUU1BJTkRPV04iLAkweDUzMWR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFVFNQSU5ET1dOIiwJMHg1MzFlfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VUX09QVElPTlMiLAkweDUzMjB9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9DUkVBVEVfUE9SVCIsCTB4NTMyMH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0NMRUFSX09QVElPTlMiLAkweDUzMjF9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9ERUxFVEVfUE9SVCIsCTB4NTMyMX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTEVDVF9TUEVFRCIsCTB4NTMyMn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9QT1JUX0lORk8iLAkweDUzMjJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRUxFQ1RfRElTQyIsCTB4NTMyM30sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9QT1JUX0lORk8iLAkweDUzMjN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9NRURJQV9DSEFOR0VEIiwJMHg1MzI1fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRFJJVkVfU1RBVFVTIiwJMHg1MzI2fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRElTQ19TVEFUVVMiLAkweDUzMjd9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DSEFOR0VSX05TTE9UUyIsCTB4NTMyOH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0xPQ0tET09SIiwJMHg1MzI5fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fREVCVUciLAkweDUzMzB9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TVUJTQ1JJQkVfUE9SVCIsCTB4NTMzMH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0dFVF9DQVBBQklMSVRZIiwJMHg1MzMxfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfVU5TVUJTQ1JJQkVfUE9SVCIsCTB4NTMzMX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0NSRUFURV9RVUVVRSIsCTB4NTMzMn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0RFTEVURV9RVUVVRSIsCTB4NTMzM30sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9JTkZPIiwJMHg1MzM0fSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1FVRVVFX0lORk8iLAkweDUzMzV9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfTkFNRURfUVVFVUUiLAkweDUzMzZ9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfU1RBVFVTIiwJMHg1MzQwfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX1RFTVBPIiwJMHg1MzQxfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1FVRVVFX1RFTVBPIiwJMHg1MzQyfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX09XTkVSIiwJMHg1MzQzfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1FVRVVFX09XTkVSIiwJMHg1MzQ0fSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX1RJTUVSIiwJMHg1MzQ1fSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1FVRVVFX1RJTUVSIiwJMHg1MzQ2fSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX0NMSUVOVCIsCTB4NTM0OX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9DTElFTlQiLAkweDUzNGF9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfQ0xJRU5UX1BPT0wiLAkweDUzNGJ9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfQ0xJRU5UX1BPT0wiLAkweDUzNGN9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9SRU1PVkVfRVZFTlRTIiwJMHg1MzRlfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUVVFUllfU1VCUyIsCTB4NTM0Zn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9TVUJTQ1JJUFRJT04iLAkweDUzNTB9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9RVUVSWV9ORVhUX0NMSUVOVCIsCTB4NTM1MX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1FVRVJZX05FWFRfUE9SVCIsCTB4NTM1Mn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9TWU5DIiwJMHg1MzUzfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX1FVRVVFX1NZTkMiLAkweDUzNTR9LAorCXsic2NzaS9zY3NpX2lvY3RsLmgiLAkiU0NTSV9JT0NUTF9ET09STE9DSyIsCTB4NTM4MH0sCisJeyJzY3NpL3Njc2lfaW9jdGwuaCIsCSJTQ1NJX0lPQ1RMX0RPT1JVTkxPQ0siLAkweDUzODF9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUFVRElPQlVGU0laIiwJMHg1MzgyfSwKKwl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfR0VUX0lETFVOIiwJMHg1MzgyfSwKKwl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfVEFHR0VEX0VOQUJMRSIsCTB4NTM4M30sCisJeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX1RBR0dFRF9ESVNBQkxFIiwJMHg1Mzg0fSwKKwl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfUFJPQkVfSE9TVCIsCTB4NTM4NX0sCisJeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX0dFVF9CVVNfTlVNQkVSIiwJMHg1Mzg2fSwKKwl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfR0VUX1BDSSIsCTB4NTM4N30sCisJeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9SRUFEX1NUUlVDVCIsCTB4NTM5MH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkRWRF9XUklURV9TVFJVQ1QiLAkweDUzOTF9LAorCXsibGludXgvY2Ryb20uaCIsCSJEVkRfQVVUSCIsCTB4NTM5Mn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFTkRfUEFDS0VUIiwJMHg1MzkzfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTkVYVF9XUklUQUJMRSIsCTB4NTM5NH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0xBU1RfV1JJVFRFTiIsCTB4NTM5NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NTQwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg1NDA2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfTUVUUk9OT01FIiwJMHg1NDA3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg1NDA3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU0VMRUNUIiwJMHg1NDA4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg1NDA4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDU0MDl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NTQwYX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg1NDBifSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DRVhDTCIsCTB4NTQwY30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ05YQ0wiLAkweDU0MGR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQ1RUWSIsCTB4NTQwZX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQR1JQIiwJMHg1NDBmfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BHUlAiLAkweDU0MTB9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NPVVRRIiwJMHg1NDExfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg1NDEzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg1NDE0fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05SRUFEIiwJMHg1NDFifSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTElOVVgiLAkweDU0MWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDT05TIiwJMHg1NDFkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NFUklBTCIsCTB4NTQxZX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTRVJJQUwiLAkweDU0MWZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NQS1QiLAkweDU0MjB9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05CSU8iLAkweDU0MjF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOT1RUWSIsCTB4NTQyMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVEQiLAkweDU0MjN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVREIiwJMHg1NDI0fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUktQIiwJMHg1NDI1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DVFRZR1NUUlVDVCIsCTB4NTQyNn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NCUksiLAkweDU0Mjd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NDQlJLIiwJMHg1NDI4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NJRCIsCTB4NTQyOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dQVE4iLAkweDU0MzB9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUFRMQ0siLAkweDU0MzF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHREVWIiwJMHg1NDMyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NTQ1MH0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NTQ1MX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDU0NTJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSEFZRVNFU1AiLAkweDU0NWV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTSEFZRVNFU1AiLAkweDU0NWZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT1FTSVpFIiwJMHg1NDYwfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX0RFVl9DUkVBVEUiLAkweDU1MDF9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfREVWX0RFU1RST1kiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NPTk5FQ1QiLAkweDU1MTZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVCIsCTB4NTUxN30sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfRVZCSVQiLAkweDU1NjR9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0tFWUJJVCIsCTB4NTU2NX0sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfUkVMQklUIiwJMHg1NTY2fSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9BQlNCSVQiLAkweDU1Njd9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX01TQ0JJVCIsCTB4NTU2OH0sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfTEVEQklUIiwJMHg1NTY5fSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9TTkRCSVQiLAkweDU1NmF9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0ZGQklUIiwJMHg1NTZifSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUNBUCIsCTB4NTYwMH0sCisJeyJsaW51eC92dC5oIiwJIlZUX09QRU5RUlkiLAkweDU2MDB9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1JFU0VSVkVEIiwJMHg1NjAxfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUTU9ERSIsCTB4NTYwMX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTV9GTVQiLAkweDU2MDJ9LAorCXsibGludXgvdnQuaCIsCSJWVF9TRVRNT0RFIiwJMHg1NjAyfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUU1RBVEUiLAkweDU2MDN9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRk1UIiwJMHg1NjA0fSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VORFNJRyIsCTB4NTYwNH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GTVQiLAkweDU2MDV9LAorCXsibGludXgvdnQuaCIsCSJWVF9SRUxESVNQIiwJMHg1NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NPTVAiLAkweDU2MDZ9LAorCXsibGludXgvdnQuaCIsCSJWVF9BQ1RJVkFURSIsCTB4NTYwNn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DT01QIiwJMHg1NjA3fSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfV0FJVEFDVElWRSIsCTB4NTYwN30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUkVRQlVGUyIsCTB4NTYwOH0sCisJeyJsaW51eC92dC5oIiwJIlZUX0RJU0FMTE9DQVRFIiwJMHg1NjA4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUJVRiIsCTB4NTYwOX0sCisJeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRSIsCTB4NTYwOX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GQlVGIiwJMHg1NjBhfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFWCIsCTB4NTYwYX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GQlVGIiwJMHg1NjBifSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfTE9DS1NXSVRDSCIsCTB4NTYwYn0sCisJeyJsaW51eC92dC5oIiwJIlZUX1VOTE9DS1NXSVRDSCIsCTB4NTYwY30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfT1ZFUkxBWSIsCTB4NTYwZX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUUJVRiIsCTB4NTYwZn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRFFCVUYiLAkweDU2MTF9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NUUkVBTU9OIiwJMHg1NjEyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TVFJFQU1PRkYiLAkweDU2MTN9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfUEFSTSIsCTB4NTYxNX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19QQVJNIiwJMHg1NjE2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1NURCIsCTB4NTYxN30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19TVEQiLAkweDU2MTh9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1TVEQiLAkweDU2MTl9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1JTlBVVCIsCTB4NTYxYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dfVFZPQ1RSTCIsCTB4NTYxYn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DVFJMIiwJMHg1NjFifSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU19UVk9DVFJMIiwJMHg1NjFjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0NUUkwiLAkweDU2MWN9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfVFVORVIiLAkweDU2MWR9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfVFVORVIiLAkweDU2MWV9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQVVESU8iLAkweDU2MjF9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQVVESU8iLAkweDU2MjJ9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9UVk9RVUVSWUNUUkwiLAkweDU2MjR9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZQ1RSTCIsCTB4NTYyNH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllNRU5VIiwJMHg1NjI1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0lOUFVUIiwJMHg1NjI2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0lOUFVUIiwJMHg1NjI3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX09VVFBVVCIsCTB4NTYyZX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19PVVRQVVQiLAkweDU2MmZ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1PVVRQVVQiLAkweDU2MzB9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQVVET1VUIiwJMHg1NjMxfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0FVRE9VVCIsCTB4NTYzMn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19NT0RVTEFUT1IiLAkweDU2MzZ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfTU9EVUxBVE9SIiwJMHg1NjM3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZSRVFVRU5DWSIsCTB4NTYzOH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GUkVRVUVOQ1kiLAkweDU2Mzl9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0NST1BDQVAiLAkweDU2M2F9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ1JPUCIsCTB4NTYzYn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DUk9QIiwJMHg1NjNjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0pQRUdDT01QIiwJMHg1NjNkfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0pQRUdDT01QIiwJMHg1NjNlfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWVNURCIsCTB4NTYzZn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfVFJZX0ZNVCIsCTB4NTY0MH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTUFVRElPIiwJMHg1NjQxfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNQVVET1VUIiwJMHg1NjQyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1BSSU9SSVRZIiwJMHg1NjQzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1BSSU9SSVRZIiwJMHg1NjQ0fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRUSU1FT1VUIiwJMHg1NzA3fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAorCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKKwl7ImxpbnV4L2F0bV9oZS5oIiwJIkhFX0dFVF9SRUciLAkweDYxNjB9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19HRVRQU1RBVCIsCTB4NjE2MX0sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTCIsCTB4NjE2MX0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX1NFVEJVRkxFViIsCTB4NjE2Mn0sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTFoiLAkweDYxNjJ9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19BREpCVUZMRVYiLAkweDYxNjN9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX1NFVFBPT0wiLAkweDYxNjN9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFRISVNUIiwJMHg2MTY0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCisJeyJsaW51eC9hdG1icjI2ODQuaCIsCSJCUjI2ODRfU0VURklMVCIsCTB4NjE5MH0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAorCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAorCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAorCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAorCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fTkVXQkFDS0VORElGIiwJMHg2MWYzfSwKKwl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAorCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfRklGT19TVEFUVVMiLAkweDY3MDF9LAorCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfRklGT19GTFVTSCIsCTB4NjcwMn0sCisJeyJsaW51eC91c2JfZ2FkZ2V0ZnMuaCIsCSJHQURHRVRGU19DTEVBUl9IQUxUIiwJMHg2NzAzfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUNFSVZFX01TR19UUlVOQyIsCTB4NjkwYn0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUNFSVZFX01TRyIsCTB4NjkwY30sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRU5EX0NPTU1BTkQiLAkweDY5MGR9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVHSVNURVJfRk9SX0NNRCIsCTB4NjkwZX0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9VTlJFR0lTVEVSX0ZPUl9DTUQiLAkweDY5MGZ9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX0dFVFNfRVZFTlRTX0NNRCIsCTB4NjkxMH0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfTVlfQUREUkVTU19DTUQiLAkweDY5MTF9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfR0VUX01ZX0FERFJFU1NfQ01EIiwJMHg2OTEyfSwKKwl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9NWV9MVU5fQ01EIiwJMHg2OTEzfSwKKwl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX0dFVF9NWV9MVU5fQ01EIiwJMHg2OTE0fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAorCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAorCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU0lGIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHSUYiLAkweDZkMGJ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKKwl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvc2lzZmIuaCIsCSJTSVNGQl9HRVRfSU5GTyIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUExMX0dFVCIsCTB4NzAxMX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUExMX1NFVCIsCTB4NzAxMn0sCisJeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAorCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0RFVklDRSIsCTB4NzA1MH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfUkVJTlRLTUwiLAkweDcwNTF9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dFVF9SQ1ZEIiwJMHg3MDUyfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfSU9DVExfVUlEIiwJMHg3MDUzfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HRVRfS01MX1NJWkUiLAkweDcwNTR9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1BVUkdFX0ZJTEVfREFUQSIsCTB4NzA1NX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQ09OTkVDVCIsCTB4NzA1Nn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR09fRkVUQ0hfS01MIiwJMHg3MDU3fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19NQVJLIiwJMHg3MDU4fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19DTEVBUl9GU0VUIiwJMHg3MDU5fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19DTEVBUl9BTExfRlNFVFMiLAkweDcwNjB9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9GU0VUIiwJMHg3MDYxfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19SRVZPS0VfUEVSTUlUIiwJMHg3MDYyfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfS01MU0laRSIsCTB4NzA2M30sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQ0xJRU5UX01BS0VfQlJBTkNIIiwJMHg3MDY0fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVJWRVJfTUFLRV9CUkFOQ0giLAkweDcwNjV9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0JSQU5DSF9VTkRPIiwJMHg3MDY2fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19CUkFOQ0hfUkVETyIsCTB4NzA2N30sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX1BJRCIsCTB4NzA2OH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0NIQU5ORUwiLAkweDcwNjl9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dFVF9DSEFOTkVMIiwJMHg3MDcwfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HRVRfRklMRUlEIiwJMHg3MDcxfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19BREpVU1RfTE1MIiwJMHg3MDcyfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfRklMRUlEIiwJMHg3MDczfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19SRVBTVEFUVVMiLAkweDcwNzR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCisJeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElTRVJfREVMQVkiLAkweDcwYTB9LAorCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJU0VSX1RJTUVPVVQiLAkweDcwYTF9LAorCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJUEFSX0RFTEFZIiwJMHg3MGE4fSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVBBUl9USU1FT1VUIiwJMHg3MGE5fSwKKwl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRJTkZPIiwJMHg3MTAxfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUlBBR0UiLAkweDcxMDJ9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSRk9VTkQiLAkweDcxMDN9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUEFHRVJFUSIsCTB4NzEwNH0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRTVEFUIiwJMHg3MTA1fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVFBBR0UiLAkweDcxMDZ9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU1RPUERBVSIsCTB4NzEwN30sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQVVRQQUdFIiwJMHg3MTA4fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NFVERJU1AiLAkweDcxMDl9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUFVUU1RBVCIsCTB4NzEwYX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJDQUNIRSIsCTB4NzEwYn0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTRVRWSVJUIiwJMHg3MTBjfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NHRVRJTkZPIiwJMHg3MjAxfSwKKwl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLAkweDcyMDF9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DUkVTRVQiLAkweDcyMDJ9LAorCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLAkweDcyMDJ9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DU0VURlJFUSIsCTB4NzIwM30sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NHRVRGUkVRIiwJMHg3MjA0fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1NFVENIQU4iLAkweDcyMDV9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VUQ0hBTiIsCTB4NzIwNn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAorCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxQ0FQIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxUkVNIiwJMHg3NjAzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyQ0FQIiwJMHg3NjA0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMlJFTSIsCTB4NzYwNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFURkxBR1MiLAkweDc2MDd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JMVUUiLAkweDc2MDh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQkxVRSIsCTB4NzYwOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDg5MDF9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DU1BHUlAiLAkweDg5MDJ9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDg5MDN9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1BHUlAiLAkweDg5MDR9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DQVRNQVJLIiwJMHg4OTA1fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dTVEFNUCIsCTB4ODkwNn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERFJUIiwJMHg4OTBifSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMUlQiLAkweDg5MGN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NSVE1TRyIsCTB4ODkwZH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk5BTUUiLAkweDg5MTB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZMSU5LIiwJMHg4OTExfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQ09ORiIsCTB4ODkxMn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkZMQUdTIiwJMHg4OTEzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRkxBR1MiLAkweDg5MTR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZBRERSIiwJMHg4OTE1fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQUREUiIsCTB4ODkxNn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkRTVEFERFIiLAkweDg5MTd9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZEU1RBRERSIiwJMHg4OTE4fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQlJEQUREUiIsCTB4ODkxOX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkJSREFERFIiLAkweDg5MWF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZORVRNQVNLIiwJMHg4OTFifSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTkVUTUFTSyIsCTB4ODkxY30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1FVFJJQyIsCTB4ODkxZH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1FVFJJQyIsCTB4ODkxZX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1FTSIsCTB4ODkxZn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1FTSIsCTB4ODkyMH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1UVSIsCTB4ODkyMX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1UVSIsCTB4ODkyMn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5BTUUiLAkweDg5MjN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZIV0FERFIiLAkweDg5MjR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZFTkNBUCIsCTB4ODkyNX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkVOQ0FQIiwJMHg4OTI2fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSFdBRERSIiwJMHg4OTI3fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGU0xBVkUiLAkweDg5Mjl9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZTTEFWRSIsCTB4ODkzMH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERE1VTFRJIiwJMHg4OTMxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMTVVMVEkiLAkweDg5MzJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZJTkRFWCIsCTB4ODkzM30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlBGTEFHUyIsCTB4ODkzNH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlBGTEFHUyIsCTB4ODkzNX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RJRkFERFIiLAkweDg5MzZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZIV0JST0FEQ0FTVCIsCTB4ODkzN30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPVU5UIiwJMHg4OTM4fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQlIiLAkweDg5NDB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUiIsCTB4ODk0MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlRYUUxFTiIsCTB4ODk0Mn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlRYUUxFTiIsCTB4ODk0M30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkRJVkVSVCIsCTB4ODk0NH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkRJVkVSVCIsCTB4ODk0NX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0VUSFRPT0wiLAkweDg5NDZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHTUlJUEhZIiwJMHg4OTQ3fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVJFRyIsCTB4ODk0OH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NNSUlSRUciLAkweDg5NDl9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NXQU5ERVYiLAkweDg5NGF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NEQVJQIiwJMHg4OTUzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0FSUCIsCTB4ODk1NH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NBUlAiLAkweDg5NTV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NEUkFSUCIsCTB4ODk2MH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dSQVJQIiwJMHg4OTYxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU1JBUlAiLAkweDg5NjJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNQVAiLAkweDg5NzB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNQVAiLAkweDg5NzF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERETENJIiwJMHg4OTgwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMRExDSSIsCTB4ODk4MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlZMQU4iLAkweDg5ODJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZWTEFOIiwJMHg4OTgzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9OREVOU0xBVkUiLAkweDg5OTB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EUkVMRUFTRSIsCTB4ODk5MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRTRVRIV0FERFIiLAkweDg5OTJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0xBVkVJTkZPUVVFUlkiLAkweDg5OTN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05ESU5GT1FVRVJZIiwJMHg4OTk0fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORENIQU5HRUFDVElWRSIsCTB4ODk5NX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1BST1RPUFJJVkFURSIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFVlBSSVZBVEUiLAkweDg5ZjB9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXQ09NTUlUIiwJMHg4YjAwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05BTUUiLAkweDhiMDF9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTldJRCIsCTB4OGIwMn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOV0lEIiwJMHg4YjAzfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0ZSRVEiLAkweDhiMDR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRlJFUSIsCTB4OGIwNX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdNT0RFIiwJMHg4YjA2fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV01PREUiLAkweDhiMDd9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU0VOUyIsCTB4OGIwOH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTRU5TIiwJMHg4YjA5fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JBTkdFIiwJMHg4YjBhfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JBTkdFIiwJMHg4YjBifSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1BSSVYiLAkweDhiMGN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUFJJViIsCTB4OGIwZH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTVEFUUyIsCTB4OGIwZX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTVEFUUyIsCTB4OGIwZn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTUFkiLAkweDhiMTB9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU1BZIiwJMHg4YjExfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1RIUlNQWSIsCTB4OGIxMn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdUSFJTUFkiLAkweDhiMTN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXQVAiLAkweDhiMTR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXQVAiLAkweDhiMTV9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXQVBMSVNUIiwJMHg4YjE3fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NDQU4iLAkweDhiMTh9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU0NBTiIsCTB4OGIxOX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdFU1NJRCIsCTB4OGIxYX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFU1NJRCIsCTB4OGIxYn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdOSUNLTiIsCTB4OGIxY30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOSUNLTiIsCTB4OGIxZH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSQVRFIiwJMHg4YjIwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JBVEUiLAkweDhiMjF9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUlRTIiwJMHg4YjIyfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JUUyIsCTB4OGIyM30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdGUkFHIiwJMHg4YjI0fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0ZSQUciLAkweDhiMjV9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXVFhQT1ciLAkweDhiMjZ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXVFhQT1ciLAkweDhiMjd9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkVUUlkiLAkweDhiMjh9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUkVUUlkiLAkweDhiMjl9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRU5DT0RFIiwJMHg4YjJhfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0VOQ09ERSIsCTB4OGIyYn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdQT1dFUiIsCTB4OGIyY30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdQT1dFUiIsCTB4OGIyZH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0ZJUlNUUFJJViIsCTB4OGJlMH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0xBU1RQUklWIiwJMHg4YmZmfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKKwl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAorCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVkVSU0lPTiIsCTB4ZmQwMH0sCisJeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1JFTU9WRV9BTEwiLAkweGZkMDF9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9MSVNUX0RFVklDRVMiLAkweGZkMDJ9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfQ1JFQVRFIiwJMHhmZDAzfSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1JFTU9WRSIsCTB4ZmQwNH0sCisJeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9SRU5BTUUiLAkweGZkMDV9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfU1VTUEVORCIsCTB4ZmQwNn0sCisJeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9TVEFUVVMiLAkweGZkMDd9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfV0FJVCIsCTB4ZmQwOH0sCisJeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1RBQkxFX0xPQUQiLAkweGZkMDl9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9UQUJMRV9DTEVBUiIsCTB4ZmQwYX0sCisJeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1RBQkxFX0RFUFMiLAkweGZkMGJ9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9UQUJMRV9TVEFUVVMiLAkweGZkMGN9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9MSVNUX1ZFUlNJT05TIiwJMHhmZDBkfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAorCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAorCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmU5YX0sCmRpZmYgLS1naXQgYS9saW51eC9pb2N0bGVudC5zaCBiL2xpbnV4L2lvY3RsZW50LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmM2Q3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9saW51eC9pb2N0bGVudC5zaApAQCAtMCwwICsxLDg5IEBACisjISAvYmluL3NoCisjCisjIENvcHlyaWdodCAoYykgMjAwMSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisjIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworIwkkSWQ6IGlvY3RsZW50LnNoLHYgMS4xMiAyMDA0LzEwLzA2IDIyOjMxOjM4IHJvbGFuZCBFeHAgJAorIworCisjIFZhbGlkYXRlIGFyZyBjb3VudC4KK2Nhc2UgJCMgaW4KKzEpCisJZGlyPSIkMSIKKwlhc209YXNtCisJOzsKKzIpCisJZGlyPSIkMSIKKwlhc209IiQyIgorCTs7CisqKQorICAgICAgICBlY2hvICJ1c2FnZTogJDAgaW5jbHVkZS1kaXJlY3RvcnkgW2FzbS1zdWJkaXJlY3RvcnldIiA+JjIKKyAgICAgICAgZXhpdCAxCisJOzsKK2VzYWMKKworbG9va3VwX2lvY3RscygpCit7CisJdHlwZT0iJDEiCisJc2hpZnQKKworCSMgQnVpbGQgdGhlIGxpc3Qgb2YgYWxsIGlvY3RscworCXJlZ2V4cD0nXltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXVwrW0EtWl1bQS1aMC05X10qW1s6c3BhY2U6XV1cKzB4JyIkdHlwZSInLi5cPicKKwkoY2QgIiRkaXIiIDsgZ3JlcCAiJHJlZ2V4cCIgIiRAIiAvZGV2L251bGwgMj4vZGV2L251bGwgKSB8CisJCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKK3MvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpcKDB4JyIkdHlwZSInLi5cKS4qLwl7ICJcMSIsCSJcMiIsCVwzCX0sL3AnIFwKKwkJPj4gaW9jdGxzLmgKK30KKworOiA+IGlvY3Rscy5oCitsb29rdXBfaW9jdGxzIDIyIHNjc2kvc2cuaAorbG9va3VwX2lvY3RscyA0NiBsaW51eC9mYi5oCitsb29rdXBfaW9jdGxzIDRCIGxpbnV4L2tkLmgKK2xvb2t1cF9pb2N0bHMgNTMgbGludXgvY2Ryb20uaCBzY3NpL3Njc2kuaCBzY3NpL3Njc2lfaW9jdGwuaAorbG9va3VwX2lvY3RscyA1NCAkYXNtL2lvY3Rscy5oCitsb29rdXBfaW9jdGxzIDU2IGxpbnV4L3Z0LmgKK2xvb2t1cF9pb2N0bHMgJzdbMTJdJyBsaW51eC92aWRlb3RleHQuaAorbG9va3VwX2lvY3RscyA4OSAkYXNtL3NvY2tpb3MuaCBsaW51eC9zb2NraW9zLmgKK2xvb2t1cF9pb2N0bHMgOEIgbGludXgvd2lyZWxlc3MuaAorCitmaWxlcz0ibGludXgvKiAkYXNtLyogc2NzaS8qIHNvdW5kLyoiCisKKyMgQnVpbGQgdGhlIGxpc3Qgb2YgYWxsIGlvY3RscworcmVnZXhwPSdeW1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dXCtbQS1aXVtBLVowLTlfXSpbWzpzcGFjZTpdXVwrX1NcP1woSU9cfElPV1x8SU9SXHxJT1dSXClcPicKKyhjZCAkZGlyIDsgZ3JlcCAkcmVnZXhwICRmaWxlcyAyPi9kZXYvbnVsbCApIHwgXAorCXNlZCAtbmUgInMsJGFzbS8sYXNtLyxnIicKK3MvXlwoLipcKTpbWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV0qXChbQS1aMC05X10qXClbWzpzcGFjZTpdXSpfU1w/SS4qKFwoW15bLF0qXClbWzpzcGFjZTpdXSosW1s6c3BhY2U6XV0qXChbXiwpXSpcKS4qLwl7ICJcMSIsCSJcMiIsCV9JT0MoX0lPQ19OT05FLFwzLFw0LDApCX0sL3AnIFwKKwk+PiBpb2N0bHMuaAorCisjIFNvbWUgdXNlIGEgc3BlY2lhbCBiYXNlIHRvIG9mZnNldCB0aGVpciBpb2N0bHMgb24uIEV4dHJhY3QgdGhhdCBhcyB3ZWxsLgorOiA+IGlvY3RsZGVmcy5oCisKK2Jhc2VzPSQoc2VkIC1uZSAncy8uKl9JT0NfTk9ORS4qLFtbOnNwYWNlOl1dKlwoW0EtWl1bQS1aMC05X11cK1wpW1s6c3BhY2U6XSssXS4qL1wxL3AnIGlvY3Rscy5oIHwgdW5pcSB8IHNvcnQpCitmb3IgYmFzZSBpbiAkYmFzZXMgOyBkbworCWVjaG8gIkxvb2tpbmcgZm9yICRiYXNlIgorCXJlZ2V4cD0iXltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXVwrJGJhc2UiCisJKGNkICRkaXIgOyBncmVwIC1oICRyZWdleHAgMj4vZGV2L251bGwgJGZpbGVzICkgfCBcCisJCWdyZXAgLXYgJ1w8X0lPJyA+PiBpb2N0bGRlZnMuaAorZG9uZQpkaWZmIC0tZ2l0IGEvbGludXgvaW9jdGxzb3J0LmMgYi9saW51eC9pb2N0bHNvcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTQ0ZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGludXgvaW9jdGxzb3J0LmMKQEAgLTAsMCArMSw1MiBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlIDxhc20vaW9jdGwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjaW5jbHVkZSAiaW9jdGxkZWZzLmgiCisjaW5jbHVkZSA8bGludXgvYXRtaW9jLmg+CisKK3N0cnVjdCBpb2N0bGVudCB7CisJY29uc3QgY2hhcioJaGVhZGVyOworCWNvbnN0IGNoYXIqCW5hbWU7CisJdW5zaWduZWQgbG9uZwljb2RlOworfTsKKworc3RydWN0IGlvY3RsZW50IGlvY3Rsc1tdID0geworI2luY2x1ZGUgImlvY3Rscy5oIgorfTsKKworaW50IG5pb2N0bHMgPSBzaXplb2YoaW9jdGxzKSAvIHNpemVvZihpb2N0bHNbMF0pOworCisKK2ludCBjb21wYXJlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpIHsKKwl1bnNpZ25lZCBsb25nIGNvZGUxID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYSktPmNvZGU7CisJdW5zaWduZWQgbG9uZyBjb2RlMiA9ICgoc3RydWN0IGlvY3RsZW50ICopIGIpLT5jb2RlOworCWNvbnN0IGNoYXIgKm5hbWUxID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYSktPm5hbWU7CisJY29uc3QgY2hhciAqbmFtZTIgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBiKS0+bmFtZTsKKwlyZXR1cm4gKGNvZGUxID4gY29kZTIpID8gMSA6IChjb2RlMSA8IGNvZGUyKSA/IC0xIDogc3RyY21wIChuYW1lMSwgbmFtZTIpOworfQorCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworCWludCBpOworCisjaWZkZWYgUE9XRVJQQwkJCS8qIHVuc3BlYWthYmxlIGtsdWRnZSAqLworCWZvciAoaSA9IDA7IGkgPCBuaW9jdGxzOyBpKyspCisJCWlvY3Rsc1tpXS5jb2RlICY9IH5fSU9DX0RJUk1BU0s7CisjZW5kaWYKKworCXFzb3J0KGlvY3RscywgbmlvY3Rscywgc2l6ZW9mKGlvY3Rsc1swXSksIGNvbXBhcmUpOworCXB1dHMgKCJcdC8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8iKTsKKwlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsczsgaSsrKQorCQlpZiAoaSA9PSAwIHx8IGlvY3Rsc1tpXS5jb2RlICE9IGlvY3Rsc1tpLTFdLmNvZGUgfHwKKwkJICAgIHN0cmNtcCAoaW9jdGxzW2ldLm5hbWUsIGlvY3Rsc1tpLTFdLm5hbWUpKQorCQkJcHJpbnRmKCJcdHtcIiVzXCIsXHRcIiVzXCIsXHQlI2x4fSxcbiIsCisJCQkJaW9jdGxzW2ldLmhlYWRlciwgaW9jdGxzW2ldLm5hbWUsIGlvY3Rsc1tpXS5jb2RlKTsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGludXgvc2lnbmFsZW50LmggYi9saW51eC9zaWduYWxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTJmNzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGludXgvc2lnbmFsZW50LmgKQEAgLTAsMCArMSwzMyBAQAorCSJTSUdfMCIsCS8qIDAgKi8KKwkiU0lHSFVQIiwJLyogMSAqLworCSJTSUdJTlQiLAkvKiAyICovCisJIlNJR1FVSVQiLAkvKiAzICovCisJIlNJR0lMTCIsCS8qIDQgKi8KKwkiU0lHVFJBUCIsCS8qIDUgKi8KKwkiU0lHQUJSVCIsCS8qIDYgKi8KKwkiU0lHQlVTIiwJLyogNyAqLworCSJTSUdGUEUiLAkvKiA4ICovCisJIlNJR0tJTEwiLAkvKiA5ICovCisJIlNJR1VTUjEiLAkvKiAxMCAqLworCSJTSUdTRUdWIiwJLyogMTEgKi8KKwkiU0lHVVNSMiIsCS8qIDEyICovCisJIlNJR1BJUEUiLAkvKiAxMyAqLworCSJTSUdBTFJNIiwJLyogMTQgKi8KKwkiU0lHVEVSTSIsCS8qIDE1ICovCisJIlNJR1NUS0ZMVCIsCS8qIDE2ICovCisJIlNJR0NITEQiLAkvKiAxNyAqLworCSJTSUdDT05UIiwJLyogMTggKi8KKwkiU0lHU1RPUCIsCS8qIDE5ICovCisJIlNJR1RTVFAiLAkvKiAyMCAqLworCSJTSUdUVElOIiwJLyogMjEgKi8KKwkiU0lHVFRPVSIsCS8qIDIyICovCisJIlNJR1VSRyIsCS8qIDIzICovCisJIlNJR1hDUFUiLAkvKiAyNCAqLworCSJTSUdYRlNaIiwJLyogMjUgKi8KKwkiU0lHVlRBTFJNIiwJLyogMjYgKi8KKwkiU0lHUFJPRiIsCS8qIDI3ICovCisJIlNJR1dJTkNIIiwJLyogMjggKi8KKwkiU0lHSU8iLAkvKiAyOSAqLworCSJTSUdQV1IiLAkvKiAzMCAqLworCSJTSUdTWVMiLAkvKiAzMSAqLworCSJTSUdSVE1JTiIsCS8qIDMyICovCmRpZmYgLS1naXQgYS9saW51eC9zeXNjYWxsLmggYi9saW51eC9zeXNjYWxsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThmZmNiYwotLS0gL2Rldi9udWxsCisrKyBiL2xpbnV4L3N5c2NhbGwuaApAQCAtMCwwICsxLDMxNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogc3lzY2FsbC5oLHYgMS40NSAyMDA1LzA2LzA3IDIzOjIxOjI4IHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkdW1teS5oIgorCisvKiBwcmltYXJ5IHN5c2NhbGxzICovCisKK2ludCBzeXNfc2V0dXAoKSwgc3lzX2V4aXQoKSwgc3lzX2ZvcmsoKSwgc3lzX3JlYWQoKSwgc3lzX3dyaXRlKCk7CitpbnQgc3lzX29wZW4oKSwgc3lzX2Nsb3NlKCksIHN5c193YWl0cGlkKCksIHN5c19jcmVhdCgpLCBzeXNfbGluaygpOworaW50IHN5c191bmxpbmsoKSwgc3lzX2V4ZWN2ZSgpLCBzeXNfY2hkaXIoKSwgc3lzX3RpbWUoKSwgc3lzX21rbm9kKCk7CitpbnQgc3lzX2NobW9kKCksIHN5c19jaG93bigpLCBzeXNfYnJlYWsoKSwgc3lzX29sZHN0YXQoKTsKK2ludCBzeXNfbHNlZWsoKSwgc3lzX2dldHBpZCgpLCBzeXNfbW91bnQoKSwgc3lzX3Vtb3VudCgpLCBzeXNfdW1vdW50MigpOworaW50IHN5c19zZXR1aWQoKSwgc3lzX2dldHVpZCgpLCBzeXNfc3RpbWUoKSwgc3lzX3B0cmFjZSgpOworaW50IHN5c19hbGFybSgpLCBzeXNfb2xkZnN0YXQoKSwgc3lzX3BhdXNlKCksIHN5c191dGltZSgpOworaW50IHN5c19zdHR5KCksIHN5c19ndHR5KCksIHN5c19hY2Nlc3MoKSwgc3lzX25pY2UoKSwgc3lzX2Z0aW1lKCk7CitpbnQgc3lzX3N5bmMoKSwgc3lzX2tpbGwoKSwgc3lzX3JlbmFtZSgpLCBzeXNfbWtkaXIoKSwgc3lzX3JtZGlyKCk7CitpbnQgc3lzX2R1cCgpLCBzeXNfcGlwZSgpLCBzeXNfdGltZXMoKSwgc3lzX3Byb2YoKSwgc3lzX2JyaygpOworaW50IHN5c19zZXRnaWQoKSwgc3lzX2dldGdpZCgpLCBzeXNfc2lnbmFsKCksIHN5c19nZXRldWlkKCk7CitpbnQgc3lzX2dldGVnaWQoKSwgc3lzX2FjY3QoKSwgc3lzX3BoeXMoKSwgc3lzX2xvY2soKSwgc3lzX2lvY3RsKCk7CitpbnQgc3lzX2ZjbnRsKCksIHN5c19tcHgoKSwgc3lzX3NldHBnaWQoKSwgc3lzX3VsaW1pdCgpOworaW50IHN5c19vbGR1bmFtZSgpLCBzeXNfdW1hc2soKSwgc3lzX2Nocm9vdCgpLCBzeXNfdXN0YXQoKTsKK2ludCBzeXNfZHVwMigpLCBzeXNfZ2V0cHBpZCgpLCBzeXNfZ2V0cGdycCgpLCBzeXNfc2V0c2lkKCk7CitpbnQgc3lzX3NpZ2FjdGlvbigpLCBzeXNfc2lnZ2V0bWFzaygpLCBzeXNfc2lnc2V0bWFzaygpOworaW50IHN5c19zZXRyZXVpZCgpLCBzeXNfc2V0cmVnaWQoKSwgc3lzX3NpZ3N1c3BlbmQoKTsKK2ludCBzeXNfc2lncGVuZGluZygpLCBzeXNfc2V0aG9zdG5hbWUoKSwgc3lzX3NldHJsaW1pdCgpOworaW50IHN5c19nZXRybGltaXQoKSwgc3lzX2dldHJ1c2FnZSgpLCBzeXNfZ2V0dGltZW9mZGF5KCk7CitpbnQgc3lzX3NldHRpbWVvZmRheSgpLCBzeXNfZ2V0Z3JvdXBzKCksIHN5c19zZXRncm91cHMoKTsKK2ludCBzeXNfc2V0Z3JvdXBzMzIoKSwgc3lzX2dldGdyb3VwczMyKCk7CitpbnQgc3lzX29sZHNlbGVjdCgpLCBzeXNfc3ltbGluaygpLCBzeXNfb2xkbHN0YXQoKSwgc3lzX3JlYWRsaW5rKCk7CitpbnQgc3lzX3VzZWxpYigpLCBzeXNfc3dhcG9uKCksIHN5c19yZWJvb3QoKSwgc3lzX3JlYWRkaXIoKTsKK2ludCBzeXNfbW1hcCgpLCBzeXNfbXVubWFwKCksIHN5c190cnVuY2F0ZSgpLCBzeXNfZnRydW5jYXRlKCk7CitpbnQgc3lzX2ZjaG1vZCgpLCBzeXNfZmNob3duKCksIHN5c19nZXRwcmlvcml0eSgpOworaW50IHN5c19zZXRwcmlvcml0eSgpLCBzeXNfcHJvZmlsKCksIHN5c19zdGF0ZnMoKSwgc3lzX2ZzdGF0ZnMoKTsKK2ludCBzeXNfaW9wZXJtKCksIHN5c19zb2NrZXRjYWxsKCksIHN5c19zeXNsb2coKSwgc3lzX3NldGl0aW1lcigpOworaW50IHN5c19nZXRpdGltZXIoKSwgc3lzX3N0YXQoKSwgc3lzX2xzdGF0KCksIHN5c19mc3RhdCgpOworaW50IHN5c191bmFtZSgpLCBzeXNfaW9wbCgpLCBzeXNfdmhhbmd1cCgpLCBzeXNfaWRsZSgpLCBzeXNfdm04NigpOworaW50IHN5c193YWl0NCgpLCBzeXNfc3dhcG9mZigpLCBzeXNfaXBjKCksIHN5c19zaWdyZXR1cm4oKTsKK2ludCBzeXNfZnN5bmMoKSwgc3lzX2Nsb25lKCksIHN5c19zZXRkb21haW5uYW1lKCksIHN5c19zeXNpbmZvKCk7CitpbnQgc3lzX21vZGlmeV9sZHQoKSwgc3lzX2FkanRpbWV4KCksIHN5c19tcHJvdGVjdCgpOworaW50IHN5c19zaWdwcm9jbWFzaygpLCBzeXNfY3JlYXRlX21vZHVsZSgpLCBzeXNfaW5pdF9tb2R1bGUoKTsKK2ludCBzeXNfZGVsZXRlX21vZHVsZSgpLCBzeXNfZ2V0X2tlcm5lbF9zeW1zKCksIHN5c19xdW90YWN0bCgpOworaW50IHN5c19nZXRwZ2lkKCksIHN5c19mY2hkaXIoKSwgc3lzX2JkZmx1c2goKTsKK2ludCBzeXNfc3lzZnMoKSwgc3lzX3BlcnNvbmFsaXR5KCksIHN5c19hZnNfc3lzY2FsbCgpOworaW50IHN5c19zZXRmc3VpZCgpLCBzeXNfc2V0ZnNnaWQoKSwgc3lzX2xsc2VlaygpOworaW50IHN5c19nZXRkZW50cygpLCBzeXNfZmxvY2soKSwgc3lzX21zeW5jKCk7CitpbnQgc3lzX3JlYWR2KCksIHN5c193cml0ZXYoKSwgc3lzX3NlbGVjdCgpOworaW50IHN5c19nZXRzaWQoKSwgc3lzX2ZkYXRhc3luYygpLCBzeXNfc3lzY3RsKCk7CitpbnQgc3lzX21sb2NrKCksIHN5c19tdW5sb2NrKCksIHN5c19tbG9ja2FsbCgpLCBzeXNfbXVubG9ja2FsbCgpLCBzeXNfbWFkdmlzZSgpOworaW50IHN5c19zY2hlZF9zZXRwYXJhbSgpLCBzeXNfc2NoZWRfZ2V0cGFyYW0oKTsKK2ludCBzeXNfc2NoZWRfc2V0c2NoZWR1bGVyKCksIHN5c19zY2hlZF9nZXRzY2hlZHVsZXIoKSwgc3lzX3NjaGVkX3lpZWxkKCk7CitpbnQgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgoKSwgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4oKTsKK2ludCBzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsKCksIHN5c19uYW5vc2xlZXAoKSwgc3lzX21yZW1hcCgpOworaW50IHN5c19zZW5kbXNnKCksIHN5c19yZWN2bXNnKCksIHN5c19zZXRyZXN1aWQoKSwgc3lzX3NldHJlc2dpZCgpOworaW50IHN5c19nZXRyZXN1aWQoKSwgc3lzX2dldHJlc2dpZCgpLCBzeXNfcHJlYWQoKSwgc3lzX3B3cml0ZSgpLCBzeXNfZ2V0Y3dkKCk7CitpbnQgc3lzX3NpZ2FsdHN0YWNrKCksIHN5c19ydF9zaWdwcm9jbWFzaygpLCBzeXNfcnRfc2lnYWN0aW9uKCk7CitpbnQgc3lzX3J0X3NpZ3BlbmRpbmcoKSwgc3lzX3J0X3NpZ3N1c3BlbmQoKSwgc3lzX3J0X3NpZ3F1ZXVlaW5mbygpOworaW50IHN5c19ydF9zaWd0aW1lZHdhaXQoKSwgc3lzX3ByY3RsKCksIHN5c19wb2xsKCksIHN5c192Zm9yaygpOworaW50IHN5c19zZW5kZmlsZSgpLCBzeXNfb2xkX21tYXAoKSwgc3lzX3N0YXQ2NCgpLCBzeXNfbHN0YXQ2NCgpLCBzeXNfZnN0YXQ2NCgpOworaW50IHN5c190cnVuY2F0ZTY0KCksIHN5c19mdHJ1bmNhdGU2NCgpLCBzeXNfcGl2b3Ryb290KCk7CitpbnQgc3lzX2dldGRlbnRzNjQoKTsKK2ludCBzeXNfZ2V0cG1zZygpLCBzeXNfcHV0cG1zZygpLCBzeXNfcmVhZGFoZWFkKCksIHN5c19zZW5kZmlsZTY0KCk7CitpbnQgc3lzX3NldHhhdHRyKCksIHN5c19mc2V0eGF0dHIoKSwgc3lzX2dldHhhdHRyKCksIHN5c19mZ2V0eGF0dHIoKTsKK2ludCBzeXNfbGlzdHhhdHRyKCksIHN5c19mbGlzdHhhdHRyKCksIHN5c19yZW1vdmV4YXR0cigpLCBzeXNfZnJlbW92ZXhhdHRyKCk7CitpbnQgc3lzX3NjaGVkX3NldGFmZmluaXR5KCksIHN5c19zY2hlZF9nZXRhZmZpbml0eSgpLCBzeXNfZnV0ZXgoKTsKK2ludCBzeXNfc2V0X3RocmVhZF9hcmVhKCksIHN5c19nZXRfdGhyZWFkX2FyZWEoKSwgc3lzX3JlbWFwX2ZpbGVfcGFnZXMoKTsKK2ludCBzeXNfdGltZXJfY3JlYXRlKCksIHN5c190aW1lcl9kZWxldGUoKSwgc3lzX3RpbWVyX2dldG92ZXJydW4oKTsKK2ludCBzeXNfdGltZXJfZ2V0dGltZSgpLCBzeXNfdGltZXJfc2V0dGltZSgpLCBzeXNfY2xvY2tfc2V0dGltZSgpOworaW50IHN5c19jbG9ja19nZXR0aW1lKCksIHN5c19jbG9ja19nZXRyZXMoKSwgc3lzX2Nsb2NrX25hbm9zbGVlcCgpOworaW50IHN5c19zZW10aW1lZG9wKCksIHN5c19zdGF0ZnM2NCgpLCBzeXNfZnN0YXRmczY0KCksIHN5c190Z2tpbGwoKTsKK2ludCBzeXNfbXFfb3BlbigpLCBzeXNfbXFfdGltZWRzZW5kKCksIHN5c19tcV90aW1lZHJlY2VpdmUoKTsKK2ludCBzeXNfbXFfbm90aWZ5KCksIHN5c19tcV9nZXRzZXRhdHRyKCk7CitpbnQgc3lzX2Vwb2xsX2NyZWF0ZSgpLCBzeXNfZXBvbGxfY3RsKCksIHN5c19lcG9sbF93YWl0KCk7CitpbnQgc3lzX3dhaXRpZCgpLCBzeXNfZmFkdmlzZTY0KCksIHN5c19mYWR2aXNlNjRfNjQoKTsKK2ludCBzeXNfbWJpbmQoKSwgc3lzX2dldF9tZW1wb2xpY3koKSwgc3lzX3NldF9tZW1wb2xpY3koKSwgc3lzX21vdmVfcGFnZXMoKTsKK2ludCBzeXNfYXJjaF9wcmN0bCgpOworaW50IHN5c19pb19zZXR1cCgpLCBzeXNfaW9fc3VibWl0KCksIHN5c19pb19jYW5jZWwoKSwgc3lzX2lvX2dldGV2ZW50cygpLCBzeXNfaW9fZGVzdHJveSgpOworCisvKiBzeXNfc29ja2V0Y2FsbCBzdWJjYWxscyAqLworCitpbnQgc3lzX3NvY2tldCgpLCBzeXNfYmluZCgpLCBzeXNfY29ubmVjdCgpLCBzeXNfbGlzdGVuKCk7CitpbnQgc3lzX2FjY2VwdCgpLCBzeXNfZ2V0c29ja25hbWUoKSwgc3lzX2dldHBlZXJuYW1lKCksIHN5c19zb2NrZXRwYWlyKCk7CitpbnQgc3lzX3NlbmQoKSwgc3lzX3JlY3YoKSwgc3lzX3NlbmR0bygpLCBzeXNfcmVjdmZyb20oKTsKK2ludCBzeXNfc2h1dGRvd24oKSwgc3lzX3NldHNvY2tvcHQoKSwgc3lzX2dldHNvY2tvcHQoKTsKKworLyogKmF0IHN5c2NhbGxzICovCitpbnQgc3lzX2ZjaG1vZGF0KCk7CitpbnQgc3lzX25ld2ZzdGF0YXQoKTsKK2ludCBzeXNfdW5saW5rYXQoKTsKK2ludCBzeXNfZmNob3duYXQoKTsKK2ludCBzeXNfb3BlbmF0KCk7CitpbnQgc3lzX3JlbmFtZWF0KCk7CitpbnQgc3lzX3N5bWxpbmthdCgpOworaW50IHN5c19yZWFkbGlua2F0KCk7CitpbnQgc3lzX2xpbmthdCgpOworaW50IHN5c19mYWNjZXNzYXQoKTsKK2ludCBzeXNfbWtkaXJhdCgpOworaW50IHN5c19ta25vZGF0KCk7CitpbnQgc3lzX2Z1dGltZXNhdCgpOworCisvKiBuZXcgb25lcyAqLworaW50IHN5c19xdWVyeV9tb2R1bGUoKTsKK2ludCBzeXNfcG9sbCgpOworaW50IHN5c19taW5jb3JlKCk7CitpbnQgc3lzX2lub3RpZnlfYWRkX3dhdGNoKCk7CitpbnQgc3lzX2lub3RpZnlfcm1fd2F0Y2goKTsKK2ludCBzeXNfcHNlbGVjdDYoKTsKK2ludCBzeXNfcHBvbGwoKTsKK2ludCBzeXNfdW5zaGFyZSgpOworCisvKiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY2FsbHMgKi8KKyNpZmRlZiBBTFBIQQoraW50IHN5c19vc2Zfc2VsZWN0KCk7CitpbnQgc3lzX29zZl9nZXR0aW1lb2ZkYXkoKTsKK2ludCBzeXNfb3NmX3NldHRpbWVvZmRheSgpOworaW50IHN5c19vc2ZfZ2V0aXRpbWVyKCk7CitpbnQgc3lzX29zZl9zZXRpdGltZXIoKTsKK2ludCBzeXNfb3NmX2dldHJ1c2FnZSgpOworaW50IHN5c19vc2Zfd2FpdDQoKTsKK2ludCBzeXNfb3NmX3V0aW1lcygpOworI2VuZGlmCisKKworI2lmbmRlZiBTWVNfd2FpdGlkCisjIGlmZGVmIEkzODYKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDI4NAorIyBlbGlmIGRlZmluZWQgQUxQSEEKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDQzOAorIyBlbGlmIGRlZmluZWQgQVJNCisjICBkZWZpbmUgU1lTX3dhaXRpZCAoTlJfU1lTQ0FMTF9CQVNFICsgMjgwKQorIyBlbGlmIGRlZmluZWQgSUE2NAorIyAgZGVmaW5lIFNZU193YWl0aWQgMTI3MAorIyBlbGlmIGRlZmluZWQgTTY4SworIyAgZGVmaW5lIFNZU193YWl0aWQgMjc3CisjIGVsaWYgZGVmaW5lZCBQT1dFUlBDCisjICBkZWZpbmUgU1lTX3dhaXRpZCAyNzIKKyMgZWxpZiBkZWZpbmVkIFMzOTAgfHwgZGVmaW5lZCBTMzkwWAorIyAgZGVmaW5lIFNZU193YWl0aWQgMjgxCisjIGVsaWYgZGVmaW5lZCBTSDY0CisjICBkZWZpbmUgU1lTX3dhaXRpZCAzMTIKKyMgZWxpZiBkZWZpbmVkIFNINjQKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDMxMgorIyBlbGlmIGRlZmluZWQgU0gKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDI4NAorIyBlbGlmIGRlZmluZWQgU1BBUkMgfHwgZGVmaW5lZCBTUEFSQzY0CisjICBkZWZpbmUgU1lTX3dhaXRpZCAyNzkKKyMgZWxpZiBkZWZpbmVkIFg4Nl82NAorIyAgZGVmaW5lIFNZU193YWl0aWQgMjQ3CisjIGVuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFMUEhBKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChIUFBBKQorIyBpZmRlZglJQTY0CisvKgorICogIElBNjQgc3lzY2FsbCBudW1iZXJzICh0aGUgb25seSBvbmVzIGF2YWlsYWJsZSBmcm9tIHN0YW5kYXJkIGhlYWRlcgorICogIGZpbGVzKSBhcmUgZGlzam9pbnQgZnJvbSBJQTMyIHN5c2NhbGwgbnVtYmVycy4gIFdlIG5lZWQgdG8gZGVmaW5lCisgKiAgdGhlIElBMzIgc29ja2V0IGNhbGwgbnVtYmVyIGhlcmUuCisgKi8KKyMgIGRlZmluZSBTWVNfc29ja2V0Y2FsbAkxMDIKKworIyAgdW5kZWYgU1lTX3NvY2tldAorIyAgdW5kZWYgU1lTX2JpbmQKKyMgIHVuZGVmIFNZU19jb25uZWN0CisjICB1bmRlZiBTWVNfbGlzdGVuCisjICB1bmRlZiBTWVNfYWNjZXB0CisjICB1bmRlZiBTWVNfZ2V0c29ja25hbWUKKyMgIHVuZGVmIFNZU19nZXRwZWVybmFtZQorIyAgdW5kZWYgU1lTX3NvY2tldHBhaXIKKyMgIHVuZGVmIFNZU19zZW5kCisjICB1bmRlZiBTWVNfcmVjdgorIyAgdW5kZWYgU1lTX3NlbmR0bworIyAgdW5kZWYgU1lTX3JlY3Zmcm9tCisjICB1bmRlZiBTWVNfc2h1dGRvd24KKyMgIHVuZGVmIFNZU19zZXRzb2Nrb3B0CisjICB1bmRlZiBTWVNfZ2V0c29ja29wdAorIyAgdW5kZWYgU1lTX3NlbmRtc2cKKyMgIHVuZGVmIFNZU19yZWN2bXNnCisjIGVuZGlmIC8qIElBNjQgKi8KKyMgIGRlZmluZSBTWVNfc29ja2V0X3N1YmNhbGwJNDAwCisjZGVmaW5lIFNZU19zdWJfc29ja2V0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMSkKKyNkZWZpbmUgU1lTX3N1Yl9iaW5kCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMikKKyNkZWZpbmUgU1lTX3N1Yl9jb25uZWN0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMykKKyNkZWZpbmUgU1lTX3N1Yl9saXN0ZW4JCShTWVNfc29ja2V0X3N1YmNhbGwgKyA0KQorI2RlZmluZSBTWVNfc3ViX2FjY2VwdAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDUpCisjZGVmaW5lIFNZU19zdWJfZ2V0c29ja25hbWUJKFNZU19zb2NrZXRfc3ViY2FsbCArIDYpCisjZGVmaW5lIFNZU19zdWJfZ2V0cGVlcm5hbWUJKFNZU19zb2NrZXRfc3ViY2FsbCArIDcpCisjZGVmaW5lIFNZU19zdWJfc29ja2V0cGFpcgkoU1lTX3NvY2tldF9zdWJjYWxsICsgOCkKKyNkZWZpbmUgU1lTX3N1Yl9zZW5kCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgOSkKKyNkZWZpbmUgU1lTX3N1Yl9yZWN2CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTApCisjZGVmaW5lIFNZU19zdWJfc2VuZHRvCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTEpCisjZGVmaW5lIFNZU19zdWJfcmVjdmZyb20JKFNZU19zb2NrZXRfc3ViY2FsbCArIDEyKQorI2RlZmluZSBTWVNfc3ViX3NodXRkb3duCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMykKKyNkZWZpbmUgU1lTX3N1Yl9zZXRzb2Nrb3B0CShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNCkKKyNkZWZpbmUgU1lTX3N1Yl9nZXRzb2Nrb3B0CShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNSkKKyNkZWZpbmUgU1lTX3N1Yl9zZW5kbXNnCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTYpCisjZGVmaW5lIFNZU19zdWJfcmVjdm1zZwkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE3KQorCisjZGVmaW5lIFNZU19zb2NrZXRfbnN1YmNhbGxzCTE4CisjZW5kaWYgLyogIShBTFBIQSB8fCBNSVBTIHx8IEhQUEEpICovCisKKy8qIHN5c19pcGMgc3ViY2FsbHMgKi8KKworaW50IHN5c19zZW1nZXQoKSwgc3lzX3NlbWN0bCgpLCBzeXNfc2Vtb3AoKTsKK2ludCBzeXNfbXNnc25kKCksIHN5c19tc2dyY3YoKSwgc3lzX21zZ2dldCgpLCBzeXNfbXNnY3RsKCk7CitpbnQgc3lzX3NobWF0KCksIHN5c19zaG1kdCgpLCBzeXNfc2htZ2V0KCksIHN5c19zaG1jdGwoKTsKKworI2lmICFkZWZpbmVkKEFMUEhBKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChTUEFSQykgJiYgIWRlZmluZWQoSFBQQSkKKyMgaWZkZWYJSUE2NAorICAgLyoKKyAgICAqIElBNjQgc3lzY2FsbCBudW1iZXJzICh0aGUgb25seSBvbmVzIGF2YWlsYWJsZSBmcm9tIHN0YW5kYXJkCisgICAgKiBoZWFkZXIgZmlsZXMpIGFyZSBkaXNqb2ludCBmcm9tIElBMzIgc3lzY2FsbCBudW1iZXJzLiAgV2UgbmVlZAorICAgICogdG8gZGVmaW5lIHRoZSBJQTMyIHNvY2tldCBjYWxsIG51bWJlciBoZXJlLiAgRm9ydHVuYXRlbHksIHRoaXMKKyAgICAqIHN5bWJvbCwgYFNZU19pcGMnLCBpcyBub3QgdXNlZCBieSBhbnkgb2YgdGhlIElBNjQgY29kZSBzbworICAgICogcmUtZGVmaW5pbmcgdGhpcyBzeW1ib2wgd2lsbCBub3QgY2F1c2UgYSBwcm9ibGVtLgorICAgKi8KKyMgIHVuZGVmIFNZU19pcGMKKyMgIGRlZmluZSBTWVNfaXBjCQkxMTcKKyMgIHVuZGVmIFNZU19zZW1vcAorIyAgdW5kZWYgU1lTX3NlbWdldAorIyAgdW5kZWYgU1lTX3NlbWN0bAorIyAgdW5kZWYgU1lTX3NlbXRpbWVkb3AKKyMgIHVuZGVmIFNZU19tc2dzbmQKKyMgIHVuZGVmIFNZU19tc2dyY3YKKyMgIHVuZGVmIFNZU19tc2dnZXQKKyMgIHVuZGVmIFNZU19tc2djdGwKKyMgIHVuZGVmIFNZU19zaG1hdAorIyAgdW5kZWYgU1lTX3NobWR0CisjICB1bmRlZiBTWVNfc2htZ2V0CisjICB1bmRlZiBTWVNfc2htY3RsCisjIGVuZGlmIC8qIElBNjQgKi8KKyNkZWZpbmUgU1lTX2lwY19zdWJjYWxsCQkoKFNZU19zb2NrZXRfc3ViY2FsbCkrKFNZU19zb2NrZXRfbnN1YmNhbGxzKSkKKyNkZWZpbmUgU1lTX3N1Yl9zZW1vcAkJKFNZU19pcGNfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNZU19zdWJfc2VtZ2V0CQkoU1lTX2lwY19zdWJjYWxsICsgMikKKyNkZWZpbmUgU1lTX3N1Yl9zZW1jdGwJCShTWVNfaXBjX3N1YmNhbGwgKyAzKQorI2RlZmluZSBTWVNfc3ViX3NlbXRpbWVkb3AJKFNZU19pcGNfc3ViY2FsbCArIDQpCisjZGVmaW5lIFNZU19zdWJfbXNnc25kCQkoU1lTX2lwY19zdWJjYWxsICsgMTEpCisjZGVmaW5lIFNZU19zdWJfbXNncmN2CQkoU1lTX2lwY19zdWJjYWxsICsgMTIpCisjZGVmaW5lIFNZU19zdWJfbXNnZ2V0CQkoU1lTX2lwY19zdWJjYWxsICsgMTMpCisjZGVmaW5lIFNZU19zdWJfbXNnY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMTQpCisjZGVmaW5lIFNZU19zdWJfc2htYXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMSkKKyNkZWZpbmUgU1lTX3N1Yl9zaG1kdAkJKFNZU19pcGNfc3ViY2FsbCArIDIyKQorI2RlZmluZSBTWVNfc3ViX3NobWdldAkJKFNZU19pcGNfc3ViY2FsbCArIDIzKQorI2RlZmluZSBTWVNfc3ViX3NobWN0bAkJKFNZU19pcGNfc3ViY2FsbCArIDI0KQorCisjZGVmaW5lIFNZU19pcGNfbnN1YmNhbGxzCTI1CisjZW5kaWYgLyogIShBTFBIQSB8fCBNSVBTIHx8IFNQQVJDIHx8IEhQUEEpICovCisKKyNpZiBkZWZpbmVkIFNZU19pcGNfc3ViY2FsbCAmJiAhZGVmaW5lZCBTWVNfaXBjCisjIGRlZmluZSBTWVNfaXBjIFNZU19pcGNfc3ViY2FsbAorI2VuZGlmCisjaWYgZGVmaW5lZCBTWVNfc29ja2V0X3N1YmNhbGwgJiYgIWRlZmluZWQgU1lTX3NvY2tldGNhbGwKKyMgZGVmaW5lIFNZU19zb2NrZXRjYWxsIFNZU19zb2NrZXRfc3ViY2FsbAorI2VuZGlmCisKKyNpZmRlZiBJQTY0CisgIC8qCisgICAqIElBNjQgc3lzY2FsbCBudW1iZXJzICh0aGUgb25seSBvbmVzIGF2YWlsYWJsZSBmcm9tIHN0YW5kYXJkIGhlYWRlcgorICAgKiBmaWxlcykgYXJlIGRpc2pvaW50IGZyb20gSUEzMiBzeXNjYWxsIG51bWJlcnMuICBXZSBuZWVkIHRvIGRlZmluZQorICAgKiBzb21lIElBMzIgc3BlY2lmaWMgc3lzY2FsbHMgaGVyZS4KKyAgICovCisjIGRlZmluZSBTWVNfZm9yawkyCisjIGRlZmluZSBTWVNfdmZvcmsJMTkwCisjIGRlZmluZSBTWVMzMl9leGl0CTEKKyMgZGVmaW5lIFNZU193YWl0cGlkCTcKKyMgZGVmaW5lIFNZUzMyX3dhaXQ0CTExNAorIyBkZWZpbmUgU1lTMzJfZXhlY3ZlCTExCisjZW5kaWYgLyogSUE2NCAqLworCisjaWYgZGVmaW5lZChBTFBIQSkgfHwgZGVmaW5lZChJQTY0KQoraW50IHN5c19nZXRwYWdlc2l6ZSgpOworI2VuZGlmCisKKyNpZmRlZiBBTFBIQQoraW50IG9zZl9zdGF0ZnMoKSwgb3NmX2ZzdGF0ZnMoKTsKKyNlbmRpZgorCisjaWZkZWYgSUE2NAoraW50IHN5c19nZXRwbXNnKCksIHN5c19wdXRwbXNnKCk7CS8qIFNUUkVBTVMgc3R1ZmYgKi8KKyNlbmRpZgorCisjaWZkZWYgTUlQUworaW50IHN5c19zeXNtaXBzKCk7CisjZW5kaWYKKworaW50IHN5c19zZXRwZ3JwKCksIHN5c19nZXRob3N0bmFtZSgpLCBzeXNfZ2V0ZHRhYmxlc2l6ZSgpLCBzeXNfdXRpbWVzKCk7CitpbnQgc3lzX2NhcGdldCgpLCBzeXNfY2Fwc2V0KCk7CisKKyNpZmRlZiBNNjhLCitpbnQgc3lzX2NhY2hlZmx1c2goKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGludXgvc3lzY2FsbGVudC5oIGIvbGludXgvc3lzY2FsbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyZTI5YzEKLS0tIC9kZXYvbnVsbAorKysgYi9saW51eC9zeXNjYWxsZW50LmgKQEAgLTAsMCArMSw0OTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMzQgMjAwNS8wNi8wNyAyMzoyMToyNCByb2xhbmQgRXhwICQKKyAqLworCisJeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIsIFNZU19leGl0IH0sIC8qIDEgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIiwgU1lTX2ZvcmsgfSwgLyogMiAqLworCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIsIFNZU19yZWFkIH0sIC8qIDMgKi8KKwl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIsIFNZU193cml0ZSB9LCAvKiA0ICovCisJeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KKwl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KKwl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIiwgU1lTX3dhaXQ0IH0sIC8qIDcgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCisJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDkgKi8KKwl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KKwl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIsIFNZU19leGVjdmUgfSwgLyogMTEgKi8KKwl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAvKiAxMiAqLworCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCisJeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KKwl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxNSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDE2ICovCisJeyAwLAkwLAlzeXNfYnJlYWssCQkiYnJlYWsiCQl9LCAvKiAxNyAqLworCXsgMiwJVEYsCXN5c19vbGRzdGF0LAkJIm9sZHN0YXQiCX0sIC8qIDE4ICovCisJeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLworCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCisJeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMjEgKi8KKwl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogMjIgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDI0ICovCisJeyAxLAkwLAlzeXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLworCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCisJeyAxLAkwLAlzeXNfYWxhcm0sCQkiYWxhcm0iCQl9LCAvKiAyNyAqLworCXsgMiwJMCwJc3lzX29sZGZzdGF0LAkJIm9sZGZzdGF0Igl9LCAvKiAyOCAqLworCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDI5ICovCisJeyAyLAlURiwJc3lzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KKwl7IDIsCTAsCXN5c19zdHR5LAkJInN0dHkiCQl9LCAvKiAzMSAqLworCXsgMiwJMCwJc3lzX2d0dHksCQkiZ3R0eSIJCX0sIC8qIDMyICovCisJeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCisJeyAxLAkwLAlzeXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KKwl7IDAsCTAsCXN5c19mdGltZSwJCSJmdGltZSIJCX0sIC8qIDM1ICovCisJeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgLyogMzYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KKwl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMzggKi8KKwl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAzOSAqLworCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCX0sIC8qIDQwICovCisJeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCisJeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogNDIgKi8KKwl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCisJeyAwLAkwLAlzeXNfcHJvZiwJCSJwcm9mIgkJfSwgLyogNDQgKi8KKwl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgLyogNDUgKi8KKwl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgl9LCAvKiA0NiAqLworCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQ3ICovCisJeyAzLAlUUywJc3lzX3NpZ25hbCwJCSJzaWduYWwiCX0sIC8qIDQ4ICovCisJeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgl9LCAvKiA0OSAqLworCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNTAgKi8KKwl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KKwl7IDIsCVRGLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCX0sIC8qIDUyICovCisJeyAwLAkwLAlzeXNfbG9jaywJCSJsb2NrIgkJfSwgLyogNTMgKi8KKwl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCisJeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA1NSAqLworCXsgMCwJMCwJc3lzX21weCwJCSJtcHgiCQl9LCAvKiA1NiAqLworCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgLyogNTcgKi8KKwl7IDIsCTAsCXN5c191bGltaXQsCQkidWxpbWl0Igl9LCAvKiA1OCAqLworCXsgMSwJMCwJc3lzX29sZG9sZHVuYW1lLAkib2xkb2xkdW5hbWUiCX0sIC8qIDU5ICovCisJeyAxLAkwLAlzeXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLworCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiA2MSAqLworCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNjIgKi8KKwl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQl9LCAvKiA2MyAqLworCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgLyogNjQgKi8KKwl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCX0sIC8qIDY1ICovCisJeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogNjYgKi8KKwl7IDMsCVRTLAlzeXNfc2lnYWN0aW9uLAkJInNpZ2FjdGlvbiIJfSwgLyogNjcgKi8KKwl7IDAsCVRTLAlzeXNfc2lnZ2V0bWFzaywJCSJzaWdnZXRtYXNrIgl9LCAvKiA2OCAqLworCXsgMSwJVFMsCXN5c19zaWdzZXRtYXNrLAkJInNpZ3NldG1hc2siCX0sIC8qIDY5ICovCisJeyAyLAkwLAlzeXNfc2V0cmV1aWQsCQkic2V0cmV1aWQiCX0sIC8qIDcwICovCisJeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDcxICovCisJeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCQkic2lnc3VzcGVuZCIJfSwgLyogNzIgKi8KKwl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgl9LCAvKiA3MyAqLworCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCX0sIC8qIDc0ICovCisJeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogNzUgKi8KKwl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkib2xkX2dldHJsaW1pdCIJfSwgLyogNzYgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA3NyAqLworCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogNzggKi8KKwl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCX0sIC8qIDc5ICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogODAgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgl9LCAvKiA4MSAqLworCXsgMSwJMCwJc3lzX29sZHNlbGVjdCwJCSJvbGRzZWxlY3QiCX0sIC8qIDgyICovCisJeyAyLAlURiwJc3lzX3N5bWxpbmssCQkic3ltbGluayIJfSwgLyogODMgKi8KKwl7IDIsCVRGLAlzeXNfb2xkbHN0YXQsCQkib2xkbHN0YXQiCX0sIC8qIDg0ICovCisJeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiA4NSAqLworCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAvKiA4NiAqLworCXsgMSwJVEYsCXN5c19zd2Fwb24sCQkic3dhcG9uIgl9LCAvKiA4NyAqLworCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCX0sIC8qIDg4ICovCisJeyAzLAkwLAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA4OSAqLworCXsgNiwJMCwJc3lzX29sZF9tbWFwLAkJIm9sZF9tbWFwIgl9LCAvKiA5MCAqLworCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDkxICovCisJeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiA5MiAqLworCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDkzICovCisJeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NSAqLworCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDk2ICovCisJeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgLyogOTcgKi8KKwl7IDQsCTAsCXN5c19wcm9maWwsCQkicHJvZmlsIgl9LCAvKiA5OCAqLworCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiA5OSAqLworCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTAwICovCisJeyAzLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJfSwgLyogMTAxICovCisjaWZkZWYgSEFWRV9BTkRST0lEX09TCisJeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIn0sIC8qIDEwMiAqLworI2Vsc2UKKwl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkJInNvY2tldGNhbGwiLCBTWVNfc29ja2V0Y2FsbCB9LCAvKiAxMDIgKi8KKyNlbmRpZgorCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDEwMyAqLworCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDEwNCAqLworCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDEwNSAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiAxMDYgKi8KKwl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMDcgKi8KKwl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLworCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiAxMDkgKi8KKwl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAvKiAxMTAgKi8KKwl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLworCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLworCXsgMSwJMCwJc3lzX3ZtODZvbGQsCQkidm04Nm9sZCIJfSwgLyogMTEzICovCisJeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IiwgU1lTX3dhaXQ0IH0sIC8qIDExNCAqLworCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogMTE1ICovCisJeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiAxMTYgKi8KKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKwl7IDYsCTAsCXN5c19pcGMsCQkiaXBjIn0sIC8qIDExNyAqLworI2Vsc2UKKwl7IDYsCTAsCXN5c19pcGMsCQkiaXBjIiwgU1lTX2lwYyB9LCAvKiAxMTcgKi8KKyNlbmRpZgorCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIsIFNZU19jbG9uZSB9LCAvKiAxMjAgKi8KKwl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTIxICovCisJeyAxLAkwLAlzeXNfdW5hbWUsCQkidW5hbWUiCQl9LCAvKiAxMjIgKi8KKwl7IDMsCTAsCXN5c19tb2RpZnlfbGR0LAkJIm1vZGlmeV9sZHQiCX0sIC8qIDEyMyAqLworCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KKwl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCisJeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLworCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KKwl7IDMsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KKwl7IDIsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCisJeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLworCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KKwl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLworCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEzMyAqLworCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogMTM0ICovCisJeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiLCBTWVNfc3lzZnMgfSwgLyogMTM1ICovCisJeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgLyogMTM2ICovCisJeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsCSJhZnNfc3lzY2FsbCIJfSwgLyogMTM3ICovCisJeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sIC8qIDEzOCAqLworCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMzkgKi8KKwl7IDUsCTAsCXN5c19sbHNlZWssCQkiX2xsc2VlayIJfSwgLyogMTQwICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDE0MSAqLworCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCX0sIC8qIDE0MiAqLworCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJfSwgLyogMTQzICovCisJeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiAxNDQgKi8KKwl7IDMsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIsIFNZU19yZWFkdiB9LCAvKiAxNDUgKi8KKwl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2IiwgU1lTX3dyaXRldiB9LCAvKiAxNDYgKi8KKwl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAxNDcgKi8KKwl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiAxNDggKi8KKwl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogMTQ5ICovCisJeyAyLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQl9LCAvKiAxNTAgKi8KKwl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDE1MSAqLworCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxNTIgKi8KKwl7IDAsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCX0sIC8qIDE1MyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0ifSwgLyogMTU0ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxNTUgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTU2ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDE1NyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgLyogMTU4ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLworCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDE2MiAqLworCXsgNCwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDE2MyAqLworCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDE2NCAqLworCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDE2NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxNjYgKi8KKwl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLworCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDE3MCAqLworCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDE3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCisJeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogMTczICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sIC8qIDE3NCAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KKwl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCisKKwl7IDUsCTAsCXN5c19wcmVhZCwJCSJwcmVhZDY0IiwgU1lTX3JlYWQgfSwgLyogMTgwICovCisJeyA1LAkwLAlzeXNfcHdyaXRlLAkJInB3cml0ZTY0IiwgU1lTX3dyaXRlIH0sIC8qIDE4MSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLworCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgl9LCAvKiAxODMgKi8KKwl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxODQgKi8KKwl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0Igl9LCAvKiAxODUgKi8KKwl7IDIsCVRTLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogMTg2ICovCisJeyA0LAkwLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sIC8qIDE4NyAqLworCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJfSwgLyogMTg4ICovCisJeyA1LAkwLAlzeXNfcHV0cG1zZywJCSJwdXRwbXNnIgl9LCAvKiAxODkgKi8KKwl7IDAsCVRQLAlzeXNfdmZvcmssCQkidmZvcmsiLCBTWVNfdmZvcmsgfSwgLyogMTkwICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCisJeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLworCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLworCXsgMywJMCwJc3lzX2Z0cnVuY2F0ZTY0LAkiZnRydW5jYXRlNjQiCX0sIC8qIDE5NCAqLworCXsgMiwJVEYsCXN5c19zdGF0NjQsCQkic3RhdDY0Igl9LCAvKiAxOTUgKi8KKwl7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJCSJsc3RhdDY0Igl9LCAvKiAxOTYgKi8KKwl7IDIsCTAsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCX0sIC8qIDE5NyAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24zMiIJfSwgLyogMTk4ICovCisJeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZDMyIgl9LCAvKiAxOTkgKi8KKworCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQzMiIJfSwgLyogMjAwICovCisJeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkMzIiCX0sIC8qIDIwMSAqLworCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZDMyIgl9LCAvKiAyMDIgKi8KKwl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZDMyIgl9LCAvKiAyMDMgKi8KKwl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZDMyIgl9LCAvKiAyMDQgKi8KKwl7IDIsCTAsCXN5c19nZXRncm91cHMzMiwJImdldGdyb3VwczMyIgl9LCAvKiAyMDUgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMzMiwJInNldGdyb3VwczMyIgl9LCAvKiAyMDYgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duMzIiCX0sIC8qIDIwNyAqLworCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQzMiIJfSwgLyogMjA4ICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZDMyIgl9LCAvKiAyMDkgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkic2V0cmVzZ2lkMzIiCX0sIC8qIDIxMCAqLworCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQzMiIJfSwgLyogMjExICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duMzIiCX0sIC8qIDIxMiAqLworCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQzMiIJfSwgLyogMjEzICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZDMyIgl9LCAvKiAyMTQgKi8KKwl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZDMyIgl9LCAvKiAyMTUgKi8KKwl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZDMyIgl9LCAvKiAyMTYgKi8KKwl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCX0sIC8qIDIxNyAqLworCXsgMywJMCwJc3lzX21pbmNvcmUsCQkibWluY29yZSIJfSwgLyogMjE4ICovCisJeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAyMTkgKi8KKwl7IDQsCTAsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCX0sIC8qIDIyMCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCX0sIC8qIDIyMSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIiCX0sIC8qIDIyMiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMiCX0sIC8qIDIyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldHRpZCIJfSwgLyogMjI0ICovCisJeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJfSwgLyogMjI1ICovCisJeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgl9LCAvKiAyMjYgKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgl9LCAvKiAyMjcgKi8KKwl7IDUsCTAsCXN5c19mc2V0eGF0dHIsCQkiZnNldHhhdHRyIgl9LCAvKiAyMjggKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDIyOSAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCX0sIC8qIDIzMCAqLworCXsgNCwJMCwJc3lzX2ZnZXR4YXR0ciwJCSJmZ2V0eGF0dHIiCX0sIC8qIDIzMSAqLworCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgl9LCAvKiAyMzIgKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCX0sIC8qIDIzMyAqLworCXsgMywJMCwJc3lzX2ZsaXN0eGF0dHIsCQkiZmxpc3R4YXR0ciIJfSwgLyogMjM0ICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCX0sIC8qIDIzNSAqLworCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJfSwgLyogMjM2ICovCisJeyAyLAkwLAlzeXNfZnJlbW92ZXhhdHRyLAkiZnJlbW92ZXhhdHRyIgl9LCAvKiAyMzcgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDIzOCAqLworCXsgNCwJMCwJc3lzX3NlbmRmaWxlNjQsCQkic2VuZGZpbGU2NCIJfSwgLyogMjM5ICovCisJeyA1LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiAyNDAgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDI0MSAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjQyICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkiaW9fc2V0dXAiCX0sIC8qIDI0MyAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJImlvX2Rlc3Ryb3kiCX0sIC8qIDI0NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImlvX2dldGV2ZW50cyIJfSwgLyogMjQ1ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9fc3VibWl0Igl9LCAvKiAyNDYgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJpb19jYW5jZWwiCX0sIC8qIDI0NyAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCX0sIC8qIDI0OCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIn0sIC8qIDI0OSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJImVwb2xsX2NyZWF0ZSIJfSwgLyogMjUwICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiZXBvbGxfY3RsIgl9LCAvKiAyNTEgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJlcG9sbF93YWl0Igl9LCAvKiAyNTIgKi8KKwl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLAkicmVtYXBfZmlsZV9wYWdlcyJ9LCAvKiAyNTMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU0Igl9LCAvKiAyNTQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU1Igl9LCAvKiAyNTUgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMjU2ICovCisJeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiAyNTcgKi8KKwl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMjU4ICovCisJeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDI1OSAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDI2MCAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMjYxICovCisJeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDI2MiAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAyNjMgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDI2NCAqLworCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAyNjUgKi8KKwl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCQkic3RhdGZzNjQiCX0sIC8qIDI2NiAqLworCXsgMywJMCwJc3lzX2ZzdGF0ZnM2NCwJCSJmc3RhdGZzNjQiCX0sIC8qIDI2NyAqLworCXsgMywJVFMsCXN5c190Z2tpbGwsCQkidGdraWxsIgl9LCAvKiAyNjggKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMjY5ICovCisJeyA2LAkwLAlzeXNfZmFkdmlzZTY0XzY0LAkiZmFkdmlzZTY0XzY0Igl9LCAvKiAyNzAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJwY2ljb25maWdfaW9iYXNlIgl9LCAvKiAyNzEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJwY2ljb25maWdfcmVhZCIJfSwgLyogMjcyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3dyaXRlIgl9LCAvKiAyNzMgKi8KKwl7IDQsCTAsCXN5c19tcV9vcGVuLAkJIm1xX29wZW4iCX0sIC8qIDI3NCAqLworCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCX0sIC8qIDI3NSAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMjc2ICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRyZWNlaXZlLAkibXFfdGltZWRyZWNlaXZlIiB9LCAvKiAyNzcgKi8KKwl7IDIsCTAsCXN5c19tcV9ub3RpZnksCQkibXFfbm90aWZ5Igl9LCAvKiAyNzggKi8KKwl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMjc5ICovCisJeyA1LAlUUCwJc3lzX3dhaXRpZCwJCSJ3YWl0aWQiCX0sIC8qIDI4MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCX0sIC8qIDI4MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIiCX0sIC8qIDI4MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIiB9LCAvKiAyODMgKi8KKwl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIsIFNZU193YWl0aWQgfSwgLyogMjg0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogMjg1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYWRkX2tleSIJfSwgLyogMjg2ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkicmVxdWVzdF9rZXkiCX0sIC8qIDI4NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleWN0bCIJfSwgLyogMjg4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX3NldCIJfSwgLyogMjg5ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX2dldCIJfSwgLyogMjkwICovCisJeyAwLAlURCwJcHJpbnRhcmdzLAkJImlub3RpZnlfaW5pdCIJfSwgLyogMjkxICovCisJeyAzLAlURCwJc3lzX2lub3RpZnlfYWRkX3dhdGNoLAkiaW5vdGlmeV9hZGRfd2F0Y2giIH0sIC8qIDI5MiAqLworCXsgMiwJVEQsCXN5c19pbm90aWZ5X3JtX3dhdGNoLAkiaW5vdGlmeV9ybV93YXRjaCIgfSwgLyogMjkzICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibWlncmF0ZV9wYWdlcyIJfSwgLyogMjk0ICovCisJeyA0LAlURHxURiwJc3lzX29wZW5hdCwJCSJvcGVuYXQiCX0sIC8qIDI5NSAqLworCXsgMywJVER8VEYsCXN5c19ta2RpcmF0LAkJIm1rZGlyYXQiCX0sIC8qIDI5NiAqLworCXsgNCwJVER8VEYsCXN5c19ta25vZGF0LAkJIm1rbm9kYXQiCX0sIC8qIDI5NyAqLworCXsgNSwJVER8VEYsCXN5c19mY2hvd25hdCwJCSJmY2hvd25hdCIJfSwgLyogMjk4ICovCisJeyAzLAlURHxURiwJc3lzX2Z1dGltZXNhdCwJCSJmdXRpbWVzYXQiCX0sIC8qIDI5OSAqLworCXsgNCwJVER8VEQsCXN5c19uZXdmc3RhdGF0LAkJImZzdGF0YXQ2NCIJfSwgLyogMzAwICovCisJeyAzLAlURHxURiwJc3lzX3VubGlua2F0LAkJInVubGlua2F0Igl9LCAvKiAzMDEgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVuYW1lYXQsCQkicmVuYW1lYXQiCX0sIC8qIDMwMiAqLworCXsgNSwJVER8VEYsCXN5c19saW5rYXQsCQkibGlua2F0Igl9LCAvKiAzMDMgKi8KKwl7IDMsCVREfFRGLAlzeXNfc3ltbGlua2F0LAkJInN5bWxpbmthdCIJfSwgLyogMzA0ICovCisJeyA0LAlURHxURiwJc3lzX3JlYWRsaW5rYXQsCQkicmVhZGxpbmthdCIJfSwgLyogMzA1ICovCisJeyAzLAlURHxURiwJc3lzX2ZjaG1vZGF0LAkJImZjaG1vZGF0Igl9LCAvKiAzMDYgKi8KKwl7IDMsCVREfFRGLAlzeXNfZmFjY2Vzc2F0LAkJImZhY2Nlc3NhdCIJfSwgLyogMzA3ICovCisJeyA2LAlURCwJc3lzX3BzZWxlY3Q2LAkJInBzZWxlY3Q2Igl9LCAvKiAzMDggKi8KKwl7IDUsCVRELAlzeXNfcHBvbGwsCQkicHBvbGwiCQl9LCAvKiAzMDkgKi8KKwl7IDEsCVRQLAlzeXNfdW5zaGFyZSwJCSJ1bnNoYXJlIgl9LCAvKiAzMTAgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJzZXRfcm9idXN0X2xpc3QiIH0sIC8qIDMxMSAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldF9yb2J1c3RfbGlzdCIgfSwgLyogMzEyICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJInNwbGljZSIJfSwgLyogMzEzICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJInN5bmNfZmlsZV9yYW5nZSIgfSwgLyogMzE0ICovCisJeyA0LAlURCwJcHJpbnRhcmdzLAkJInRlZSIJCX0sIC8qIDMxNSAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ2bXNwbGljZSIJfSwgLyogMzE2ICovCisJeyA2LAkwLAlzeXNfbW92ZV9wYWdlcywJCSJtb3ZlX3BhZ2VzIgl9LCAvKiAzMTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzE4Igl9LCAvKiAzMTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzE5Igl9LCAvKiAzMTkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzIwIgl9LCAvKiAzMjAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzIxIgl9LCAvKiAzMjEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzIyIgl9LCAvKiAzMjIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzIzIgl9LCAvKiAzMjMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzI0Igl9LCAvKiAzMjQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzI1Igl9LCAvKiAzMjUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzI2Igl9LCAvKiAzMjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzI3Igl9LCAvKiAzMjcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzI4Igl9LCAvKiAzMjggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzI5Igl9LCAvKiAzMjkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzMwIgl9LCAvKiAzMzAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzMxIgl9LCAvKiAzMzEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzMyIgl9LCAvKiAzMzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzMzIgl9LCAvKiAzMzMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzM0Igl9LCAvKiAzMzQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzM1Igl9LCAvKiAzMzUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzM2Igl9LCAvKiAzMzYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzM3Igl9LCAvKiAzMzcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzM4Igl9LCAvKiAzMzggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzM5Igl9LCAvKiAzMzkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQwIgl9LCAvKiAzNDAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQxIgl9LCAvKiAzNDEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQyIgl9LCAvKiAzNDIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQzIgl9LCAvKiAzNDMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0Igl9LCAvKiAzNDQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1Igl9LCAvKiAzNDUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2Igl9LCAvKiAzNDYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3Igl9LCAvKiAzNDcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4Igl9LCAvKiAzNDggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5Igl9LCAvKiAzNDkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzUwIgl9LCAvKiAzNTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzUxIgl9LCAvKiAzNTEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzUyIgl9LCAvKiAzNTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzUzIgl9LCAvKiAzNTMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzU0Igl9LCAvKiAzNTQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzU1Igl9LCAvKiAzNTUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzU2Igl9LCAvKiAzNTYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzU3Igl9LCAvKiAzNTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzU4Igl9LCAvKiAzNTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzU5Igl9LCAvKiAzNTkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzYwIgl9LCAvKiAzNjAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzYxIgl9LCAvKiAzNjEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzYyIgl9LCAvKiAzNjIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzYzIgl9LCAvKiAzNjMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzY0Igl9LCAvKiAzNjQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzY1Igl9LCAvKiAzNjUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzY2Igl9LCAvKiAzNjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzY3Igl9LCAvKiAzNjcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzY4Igl9LCAvKiAzNjggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzY5Igl9LCAvKiAzNjkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzcwIgl9LCAvKiAzNzAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzcxIgl9LCAvKiAzNzEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzcyIgl9LCAvKiAzNzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzczIgl9LCAvKiAzNzMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzc0Igl9LCAvKiAzNzQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzc1Igl9LCAvKiAzNzUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzc2Igl9LCAvKiAzNzYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzc3Igl9LCAvKiAzNzcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzc4Igl9LCAvKiAzNzggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzc5Igl9LCAvKiAzNzkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzgwIgl9LCAvKiAzODAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzgxIgl9LCAvKiAzODEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzgyIgl9LCAvKiAzODIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzgzIgl9LCAvKiAzODMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzg0Igl9LCAvKiAzODQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzg1Igl9LCAvKiAzODUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzg2Igl9LCAvKiAzODYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzg3Igl9LCAvKiAzODcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzg4Igl9LCAvKiAzODggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzg5Igl9LCAvKiAzODkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzkwIgl9LCAvKiAzOTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzkxIgl9LCAvKiAzOTEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzkyIgl9LCAvKiAzOTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzkzIgl9LCAvKiAzOTMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzk0Igl9LCAvKiAzOTQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzk1Igl9LCAvKiAzOTUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzk2Igl9LCAvKiAzOTYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzk3Igl9LCAvKiAzOTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzk4Igl9LCAvKiAzOTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMzk5Igl9LCAvKiAzOTkgKi8KKworI2lmIFNZU19zb2NrZXRfc3ViY2FsbCAhPSA0MDAKKyAjZXJyb3IgZml4IG1lCisjZW5kaWYKKwl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiA0MDAgKi8KKwl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogNDAxICovCisJeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDQwMiAqLworCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDQwMyAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiA0MDQgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogNDA1ICovCisJeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDQwNiAqLworCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiA0MDcgKi8KKwl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiA0MDggKi8KKwl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIiwgU1lTX3N1Yl9zZW5kIH0sIC8qIDQwOSAqLworCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiLCBTWVNfc3ViX3JlY3YgfSwgLyogNDEwICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iLCBTWVNfc3ViX3NlbmR0byB9LCAvKiA0MTEgKi8KKwl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iLCBTWVNfc3ViX3JlY3Zmcm9tIH0sIC8qIDQxMiAqLworCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogNDEzICovCisJeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogNDE0ICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogNDE1ICovCisJeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogNDE2ICovCisJeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogNDE3ICovCisKKyNpZiBTWVNfaXBjX3N1YmNhbGwgIT0gNDE4CisgI2Vycm9yIGZpeCBtZQorI2VuZGlmCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQxOCAqLworCXsgNCwJVEksCXN5c19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDQxOSAqLworCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAvKiA0MjAgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogNDIxICovCisJeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogNDIyICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyMyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjQgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI1ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyNiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjcgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI4ICovCisJeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDQyOSAqLworCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiA0MzAgKi8KKwl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJfSwgLyogNDMxICovCisJeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDQzMiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzMgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM0ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzNSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzOCAqLworCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDQzOSAqLworCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDQ0MCAqLworCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAvKiA0NDEgKi8KKwl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogNDQyICovCmRpZmYgLS1naXQgYS9tZW0uYyBiL21lbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0Zjg4NDkKLS0tIC9kZXYvbnVsbAorKysgYi9tZW0uYwpAQCAtMCwwICsxLDg3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIENvcHlyaWdodCAoYykgMjAwMCBQb2NrZXRQZW5ndWlucyBJbmMuICBMaW51eCBmb3IgSGl0YWNoaSBTdXBlckgKKyAqICAgICAgICAgICAgICAgICAgICBwb3J0IGJ5IEdyZWcgQmFua3MgPGdiYW5rc0Bwb2NrZXRwZW5ndWlucy5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBtZW0uYyx2IDEuMzYgMjAwNS8wNi8wMSAxOToyMjowNyByb2xhbmQgRXhwICQKKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorCisjaWZkZWYgTElOVVgKKyNpbmNsdWRlIDxhc20vbW1hbi5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKworI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSTM4NikKKyNpbmNsdWRlIDxhc20vbGR0Lmg+CisjIGlmZGVmIEhBVkVfU1RSVUNUX1VTRVJfREVTQworIyAgZGVmaW5lIG1vZGlmeV9sZHRfbGR0X3MgdXNlcl9kZXNjCisjIGVuZGlmCisjZW5kaWYKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKFNINjQpCisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4JICAgIC8qIGZvciBQQUdFX1NISUZUICovCisjZW5kaWYKKworI2lmZGVmIEhBVkVfTE9OR19MT05HX09GRl9UCisvKgorICogVWdseSBoYWNrcyBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgYSBsb25nIGxvbmcgb2ZmX3QKKyAqLworI2RlZmluZSBzeXNfbW1hcDY0CXN5c19tbWFwCisjZW5kaWYKKworaW50CitzeXNfYnJrKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJfQorI2lmZGVmIExJTlVYCisJcmV0dXJuIFJWQUxfSEVYOworI2Vsc2UKKwlyZXR1cm4gMDsKKyNlbmRpZgorfQorCitpbnQKK3N5c19zYnJrKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIFJWQUxfSEVYOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW1hcF9wcm90W10gPSB7CisJeyBQUk9UX05PTkUsCSJQUk9UX05PTkUiLAl9LAorCXsgUFJPVF9SRUFELAkiUFJPVF9SRUFEIgl9LAorCXsgUFJPVF9XUklURSwJIlBST1RfV1JJVEUiCX0sCisJeyBQUk9UX0VYRUMsCSJQUk9UX0VYRUMiCX0sCisjaWZkZWYgUFJPVF9TRU0KKwl7IFBST1RfU0VNLAkiUFJPVF9TRU0iCX0sCisjZW5kaWYKKyNpZmRlZiBQUk9UX0dST1dTRE9XTgorCXsgUFJPVF9HUk9XU0RPV04sIlBST1RfR1JPV1NET1dOIn0sCisjZW5kaWYKKyNpZmRlZiBQUk9UX0dST1dTVVAKKwl7IFBST1RfR1JPV1NVUCwgIlBST1RfR1JPV1NVUCIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW1hcF9mbGFnc1tdID0geworCXsgTUFQX1NIQVJFRCwJIk1BUF9TSEFSRUQiCX0sCisJeyBNQVBfUFJJVkFURSwJIk1BUF9QUklWQVRFIgl9LAorCXsgTUFQX0ZJWEVELAkiTUFQX0ZJWEVEIgl9LAorI2lmZGVmIE1BUF9BTk9OWU1PVVMKKwl7IE1BUF9BTk9OWU1PVVMsIk1BUF9BTk9OWU1PVVMiCX0sCisjZW5kaWYKKyNpZmRlZiBNQVBfMzJCSVQKKwl7IE1BUF8zMkJJVCwJIk1BUF8zMkJJVCIJfSwKKyNlbmRpZgorI2lmZGVmIE1BUF9SRU5BTUUKKwl7IE1BUF9SRU5BTUUsCSJNQVBfUkVOQU1FIgl9LAorI2VuZGlmCisjaWZkZWYgTUFQX05PUkVTRVJWRQorCXsgTUFQX05PUkVTRVJWRSwiTUFQX05PUkVTRVJWRSIJfSwKKyNlbmRpZgorI2lmZGVmIE1BUF9QT1BVTEFURQorCXsgTUFQX1BPUFVMQVRFLCAiTUFQX1BPUFVMQVRFIiB9LAorI2VuZGlmCisjaWZkZWYgTUFQX05PTkJMT0NLCisJeyBNQVBfTk9OQkxPQ0ssICJNQVBfTk9OQkxPQ0siIH0sCisjZW5kaWYKKwkvKgorCSAqIFhYWCAtIHRoaXMgd2FzIGludHJvZHVjZWQgaW4gU3VuT1MgNC54IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4KKwkgKiB0aGUgb2xkIHByZS00LnggIm1tYXAoKSIsIHdoaWNoOgorCSAqCisJICoJb25seSBsZXQgeW91IG1hcCBkZXZpY2VzIHdpdGggYW4gIm1tYXAiIHJvdXRpbmUgKGUuZy4sCisJICoJZnJhbWUgYnVmZmVycykgaW47CisJICoKKwkgKglyZXF1aXJlZCB5b3UgdG8gc3BlY2lmeSB0aGUgbWFwcGluZyBhZGRyZXNzOworCSAqCisJICoJcmV0dXJuZWQgMCBvbiBzdWNjZXNzIGFuZCAtMSBvbiBmYWlsdXJlOworCSAqCisJICogbWVtb3J5IGFuZCB3aGljaCwgYW5kIHRoZSA0LnggIm1tYXAoKSIgd2hpY2g6CisJICoKKwkgKgljYW4gbWFwIHBsYWluIGZpbGVzOworCSAqCisJICoJY2FuIGJlIGFza2VkIHRvIHBpY2sgd2hlcmUgdG8gbWFwIHRoZSBmaWxlOworCSAqCisJICoJcmV0dXJucyB0aGUgYWRkcmVzcyB3aGVyZSBpdCBtYXBwZWQgdGhlIGZpbGUgb24gc3VjY2VzcworCSAqCWFuZCAtMSBvbiBmYWlsdXJlLgorCSAqCisJICogSXQncyBub3QgYWN0dWFsbHkgdXNlZCBpbiBzb3VyY2UgY29kZSB0aGF0IGNhbGxzICJtbWFwKCkiOyB0aGUKKwkgKiAibW1hcCgpIiByb3V0aW5lIGFkZHMgaXQgZm9yIHlvdS4KKwkgKgorCSAqIEl0J2QgYmUgbmljZSB0byBjb21lIHVwIHdpdGggc29tZSB3YXkgb2YgZWxpbWluYXRpbmcgaXQgZnJvbQorCSAqIHRoZSBmbGFncywgZS5nLiByZXBvcnRpbmcgY2FsbHMgKndpdGhvdXQqIGl0IGFzICJvbGRfbW1hcCgpIgorCSAqIGFuZCBjYWxscyB3aXRoIGl0IGFzICJtbWFwKCkiLgorCSAqLworI2lmZGVmIF9NQVBfTkVXCisJeyBfTUFQX05FVywJIl9NQVBfTkVXIgl9LAorI2VuZGlmCisjaWZkZWYgTUFQX0dST1dTRE9XTgorCXsgTUFQX0dST1dTRE9XTiwiTUFQX0dST1dTRE9XTiIJfSwKKyNlbmRpZgorI2lmZGVmIE1BUF9ERU5ZV1JJVEUKKwl7IE1BUF9ERU5ZV1JJVEUsIk1BUF9ERU5ZV1JJVEUiCX0sCisjZW5kaWYKKyNpZmRlZiBNQVBfRVhFQ1VUQUJMRQorCXsgTUFQX0VYRUNVVEFCTEUsIk1BUF9FWEVDVVRBQkxFIn0sCisjZW5kaWYKKyNpZmRlZiBNQVBfSU5IRVJJVAorCXsgTUFQX0lOSEVSSVQsIk1BUF9JTkhFUklUIgl9LAorI2VuZGlmCisjaWZkZWYgTUFQX0ZJTEUKKwl7IE1BUF9GSUxFLCJNQVBfRklMRSJ9LAorI2VuZGlmCisjaWZkZWYgTUFQX0xPQ0tFRAorCXsgTUFQX0xPQ0tFRCwiTUFQX0xPQ0tFRCJ9LAorI2VuZGlmCisJLyogRnJlZUJTRCBvbmVzICovCisjaWZkZWYgTUFQX0FOT04KKwl7IE1BUF9BTk9OLAkJIk1BUF9BTk9OIgl9LAorI2VuZGlmCisjaWZkZWYgTUFQX0hBU1NFTUFQSE9SRQorCXsgTUFQX0hBU1NFTUFQSE9SRSwJIk1BUF9IQVNTRU1BUEhPUkUiCX0sCisjZW5kaWYKKyNpZmRlZiBNQVBfU1RBQ0sKKwl7IE1BUF9TVEFDSywJCSJNQVBfU1RBQ0siCX0sCisjZW5kaWYKKyNpZmRlZiBNQVBfTk9TWU5DCisJeyBNQVBfTk9TWU5DLAkJIk1BUF9OT1NZTkMiCX0sCisjZW5kaWYKKyNpZmRlZiBNQVBfTk9DT1JFCisJeyBNQVBfTk9DT1JFLAkJIk1BUF9OT0NPUkUiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworI2lmICFIQVZFX0xPTkdfTE9OR19PRkZfVAorc3RhdGljCitpbnQKK3ByaW50X21tYXAodGNwLHVfYXJnKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyAqdV9hcmc7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJLyogYWRkciAqLworCQlpZiAoIXVfYXJnWzBdKQorCQkJdHByaW50ZigiTlVMTCwgIik7CisJCWVsc2UKKwkJCXRwcmludGYoIiUjbHgsICIsIHVfYXJnWzBdKTsKKwkJLyogbGVuICovCisJCXRwcmludGYoIiVsdSwgIiwgdV9hcmdbMV0pOworCQkvKiBwcm90ICovCisJCXByaW50ZmxhZ3MobW1hcF9wcm90LCB1X2FyZ1syXSwgIlBST1RfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCS8qIGZsYWdzICovCisjaWZkZWYgTUFQX1RZUEUKKwkJcHJpbnR4dmFsKG1tYXBfZmxhZ3MsIHVfYXJnWzNdICYgTUFQX1RZUEUsICJNQVBfPz8/Iik7CisJCWFkZGZsYWdzKG1tYXBfZmxhZ3MsIHVfYXJnWzNdICYgfk1BUF9UWVBFKTsKKyNlbHNlCisJCXByaW50ZmxhZ3MobW1hcF9mbGFncywgdV9hcmdbM10sICJNQVBfPz8/Iik7CisjZW5kaWYKKwkJLyogZmQgKGlzIGFsd2F5cyBpbnQsIG5vdCBsb25nKSAqLworCQl0cHJpbnRmKCIsICVkLCAiLCAoaW50KXVfYXJnWzRdKTsKKwkJLyogb2Zmc2V0ICovCisJCXRwcmludGYoIiUjbHgiLCB1X2FyZ1s1XSk7CisJfQorCXJldHVybiBSVkFMX0hFWDsKK30KKworI2lmZGVmIExJTlVYCitpbnQgc3lzX29sZF9tbWFwKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBsb25nIHVfYXJnWzZdOworCisjaWYJZGVmaW5lZChJQTY0KQorICAgIGludCBpLCB2OworICAgIC8qCisgICAgICogIElBNjQgcHJvY2Vzc2VzIG5ldmVyIGNhbGwgdGhpcyByb3V0aW5lLCB0aGV5IG9ubHkgdXNlIHRoZQorICAgICAqICBuZXcgYHN5c19tbWFwJyBpbnRlcmZhY2UuICBUaGlzIGNvZGUgY29udmVydHMgdGhlIGludGVnZXIKKyAgICAgKiAgYXJndW1lbnRzIHRoYXQgdGhlIElBMzIgcHJvY2VzcyBwdXNoZWQgb250byB0aGUgc3RhY2sgaW50bworICAgICAqICBsb25ncy4KKyAgICAgKgorICAgICAqICBOb3RlIHRoYXQgYWRkcmVzc2VzIHdpdGggYml0IDMxIHNldCB3aWxsIGJlIHNpZ24gZXh0ZW5kZWQuCisgICAgICogIEZvcnR1bmF0ZWx5LCB0aG9zZSBhZGRyZXNzZXMgYXJlIG5vdCBjdXJyZW50bHkgYmVpbmcgZ2VuZXJhdGVkCisgICAgICogIGZvciBJQTMyIHByb2Nlc3NlcyBzbyBpdCdzIG5vdCBhIHByb2JsZW0uCisgICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykKKwlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdICsgKGkgKiBzaXplb2YoaW50KSksICZ2KSA9PSAtMSkKKwkJcmV0dXJuIDA7CisJZWxzZQorCQl1X2FyZ1tpXSA9IHY7CisjZWxpZiBkZWZpbmVkKFNIKSB8fCBkZWZpbmVkKFNINjQpCisgICAgLyogU0ggaGFzIGFsd2F5cyBwYXNzZWQgdGhlIGFyZ3MgaW4gcmVnaXN0ZXJzICovCisgICAgaW50IGk7CisgICAgZm9yIChpPTA7IGk8NjsgaSsrKQorICAgICAgICB1X2FyZ1tpXSA9IHRjcC0+dV9hcmdbaV07CisjZWxzZQorIyBpZiBkZWZpbmVkKFg4Nl82NCkKKyAgICBpZiAoY3VycmVudF9wZXJzb25hbGl0eSA9PSAxKSB7CisJICAgIGludCBpOworCSAgICBmb3IgKGkgPSAwOyBpIDwgNjsgKytpKSB7CisJCSAgICB1bnNpZ25lZCBpbnQgdmFsOworCQkgICAgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSArIGkgKiA0LCAmdmFsKSA9PSAtMSkKKwkJCSAgICByZXR1cm4gMDsKKwkJICAgIHVfYXJnW2ldID0gdmFsOworCSAgICB9CisgICAgfQorICAgIGVsc2UKKyMgZW5kaWYKKyAgICBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIHVfYXJnLCAoY2hhciAqKSB1X2FyZykgPT0gLTEpCisJICAgIHJldHVybiAwOworI2VuZGlmCS8vIGRlZmluZWQoSUE2NCkKKyAgICByZXR1cm4gcHJpbnRfbW1hcCh0Y3AsIHVfYXJnKTsKKworfQorI2VuZGlmCisKK2ludAorc3lzX21tYXAodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoU0g2NCkKKyAgICAvKgorICAgICAqIE9sZCBtbWFwIGRpZmZlcnMgZnJvbSBuZXcgbW1hcCBpbiBzcGVjaWZ5aW5nIHRoZQorICAgICAqIG9mZnNldCBpbiB1bml0cyBvZiBieXRlcyByYXRoZXIgdGhhbiBwYWdlcy4gIFdlCisgICAgICogcHJldGVuZCBpdCdzIGluIGJ5dGUgdW5pdHMgc28gdGhlIHVzZXIgb25seSBldmVyCisgICAgICogc2VlcyBieXRlcyBpbiB0aGUgcHJpbnRvdXQuCisgICAgICovCisgICAgdGNwLT51X2FyZ1s1XSA8PD0gUEFHRV9TSElGVDsKKyNlbmRpZgorICAgIHJldHVybiBwcmludF9tbWFwKHRjcCwgdGNwLT51X2FyZyk7Cit9CisjZW5kaWYgLyogIUhBVkVfTE9OR19MT05HX09GRl9UICovCisKKyNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX09GRl9UCitpbnQKK3N5c19tbWFwNjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmZGVmIGxpbnV4CisjaWZkZWYgQUxQSEEKKwlsb25nICp1X2FyZyA9IHRjcC0+dV9hcmc7CisjZWxzZSAvKiAhQUxQSEEgKi8KKwlsb25nIHVfYXJnWzddOworI2VuZGlmIC8qICFBTFBIQSAqLworI2Vsc2UgLyogIWxpbnV4ICovCisJbG9uZyAqdV9hcmcgPSB0Y3AtPnVfYXJnOworI2VuZGlmIC8qICFsaW51eCAqLworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKyNpZmRlZiBsaW51eAorI2lmbmRlZiBBTFBIQQorCQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mIHVfYXJnLAorCQkJCShjaGFyICopIHVfYXJnKSA9PSAtMSkKKwkJCXJldHVybiAwOworI2VuZGlmIC8qIEFMUEhBICovCisjZW5kaWYgLyogbGludXggKi8KKwkJQUxJR042NCAodGNwLCA1KTsJLyogRnJlZUJTRCB3aWVyZGllcyAqLworCisJCS8qIGFkZHIgKi8KKwkJdHByaW50ZigiJSNseCwgIiwgdV9hcmdbMF0pOworCQkvKiBsZW4gKi8KKwkJdHByaW50ZigiJWx1LCAiLCB1X2FyZ1sxXSk7CisJCS8qIHByb3QgKi8KKwkJcHJpbnRmbGFncyhtbWFwX3Byb3QsIHVfYXJnWzJdLCAiUFJPVF8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJLyogZmxhZ3MgKi8KKyNpZmRlZiBNQVBfVFlQRQorCQlwcmludHh2YWwobW1hcF9mbGFncywgdV9hcmdbM10gJiBNQVBfVFlQRSwgIk1BUF8/Pz8iKTsKKwkJYWRkZmxhZ3MobW1hcF9mbGFncywgdV9hcmdbM10gJiB+TUFQX1RZUEUpOworI2Vsc2UKKwkJcHJpbnRmbGFncyhtbWFwX2ZsYWdzLCB1X2FyZ1szXSwgIk1BUF8/Pz8iKTsKKyNlbmRpZgorCQkvKiBmZCAqLworCQl0cHJpbnRmKCIsICVsZCwgIiwgdV9hcmdbNF0pOworCQkvKiBvZmZzZXQgKi8KKwkJdHByaW50ZigiJSNsbHgiLCBMT05HX0xPTkcodV9hcmdbNV0sIHVfYXJnWzZdKSk7CisJfQorCXJldHVybiBSVkFMX0hFWDsKK30KKyNlbmRpZgorCisKK2ludAorc3lzX211bm1hcCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCwgJWx1IiwKKwkJCXRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfbXByb3RlY3QodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiUjbHgsICVsdSwgIiwKKwkJCXRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQlwcmludGZsYWdzKG1tYXBfcHJvdCwgdGNwLT51X2FyZ1syXSwgIlBST1RfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgTElOVVgKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1yZW1hcF9mbGFnc1tdID0geworCXsgTVJFTUFQX01BWU1PVkUsCSJNUkVNQVBfTUFZTU9WRSIJfSwKKwl7IDAsCQkJTlVMTAkJCX0KK307CisKK2ludAorc3lzX21yZW1hcCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCwgJWx1LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0sCisJCQl0Y3AtPnVfYXJnWzJdKTsKKwkJcHJpbnRmbGFncyhtcmVtYXBfZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJNUkVNQVBfPz8/Iik7CisJfQorCXJldHVybiBSVkFMX0hFWDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1hZHZpc2VfZmxhZ3NbXSA9IHsKKyNpZmRlZiBNQURWX05PUk1BTAorCXsgTUFEVl9OT1JNQUwsCQkiTUFEVl9OT1JNQUwiIH0sCisjZW5kaWYKKyNpZmRlZiBNQURaVl9SQU5ET00KKwl7IE1BRFZfUkFORE9NLAkJIk1BRFZfUkFORE9NIiB9LAorI2VuZGlmCisjaWZkZWYgTUFEVl9TRVFVRU5USUFMCisJeyBNQURWX1NFUVVFTlRJQUwsCSJNQURWX1NFUVVFTlRJQUwiIH0sCisjZW5kaWYKKyNpZmRlZiBNQURWX1dJTExORUVECisJeyBNQURWX1dJTExORUVELAkiTUFEVl9XSUxMTkVFRCIgfSwKKyNlbmRpZgorI2lmZGVmIE1BRFZfRE9OVE5FRAorCXsgTUFEVl9ET05UTkVFRCwJIk1BRFZfRE9OVE5FRUQiIH0sCisjZW5kaWYKKwl7IDAsCQkJTlVMTCB9LAorfTsKKworCitpbnQKK3N5c19tYWR2aXNlKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQlwcmludGZsYWdzKG1hZHZpc2VfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNQURWXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbWxvY2thbGxfZmxhZ3NbXSA9IHsKKyNpZmRlZiBNQ0xfQ1VSUkVOVAorCXsgTUNMX0NVUlJFTlQsCSJNQ0xfQ1VSUkVOVCIgfSwKKyNlbmRpZgorI2lmZGVmIE1DTF9GVVRVUkUKKwl7IE1DTF9GVVRVUkUsCSJNQ0xfRlVUVVJFIiB9LAorI2VuZGlmCisJeyAwLAkJTlVMTH0KK307CisKK2ludAorc3lzX21sb2NrYWxsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZsYWdzKG1sb2NrYWxsX2ZsYWdzLCB0Y3AtPnVfYXJnWzBdLCAiTUNMXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKworCisjZW5kaWYgLyogTElOVVggKi8KKworI2lmZGVmIE1TX0FTWU5DCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtY3RsX3N5bmNbXSA9IHsKKyNpZmRlZiBNU19TWU5DCisJeyBNU19TWU5DLAkiTVNfU1lOQyIJfSwKKyNlbmRpZgorCXsgTVNfQVNZTkMsCSJNU19BU1lOQyIJfSwKKwl7IE1TX0lOVkFMSURBVEUsIk1TX0lOVkFMSURBVEUiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK2ludAorc3lzX21zeW5jKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQkvKiBhZGRyICovCisJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJLyogbGVuICovCisJCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJLyogZmxhZ3MgKi8KKwkJcHJpbnRmbGFncyhtY3RsX3N5bmMsIHRjcC0+dV9hcmdbMl0sICJNU18/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBNU19BU1lOQyAqLworCisjaWZkZWYgTUNfU1lOQworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbWN0bF9mdW5jc1tdID0geworCXsgTUNfTE9DSywJIk1DX0xPQ0siCX0sCisJeyBNQ19MT0NLQVMsCSJNQ19MT0NLQVMiCX0sCisJeyBNQ19TWU5DLAkiTUNfU1lOQyIJfSwKKwl7IE1DX1VOTE9DSywJIk1DX1VOTE9DSyIJfSwKKwl7IE1DX1VOTE9DS0FTLAkiTUNfVU5MT0NLQVMiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtY3RsX2xvY2thc1tdID0geworCXsgTUNMX0NVUlJFTlQsCSJNQ0xfQ1VSUkVOVCIJfSwKKwl7IE1DTF9GVVRVUkUsCSJNQ0xfRlVUVVJFIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitpbnQKK3N5c19tY3RsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpbnQgYXJnLCBmdW5jdGlvbjsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCS8qIGFkZHIgKi8KKwkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQkvKiBsZW4gKi8KKwkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMV0pOworCQkvKiBmdW5jdGlvbiAqLworCQlmdW5jdGlvbiA9IHRjcC0+dV9hcmdbMl07CisJCXByaW50ZmxhZ3MobWN0bF9mdW5jcywgZnVuY3Rpb24sICJNQ18/Pz8iKTsKKwkJLyogYXJnICovCisJCWFyZyA9IHRjcC0+dV9hcmdbM107CisJCXRwcmludGYoIiwgIik7CisJCXN3aXRjaCAoZnVuY3Rpb24pIHsKKwkJY2FzZSBNQ19TWU5DOgorCQkJcHJpbnRmbGFncyhtY3RsX3N5bmMsIGFyZywgIk1TXz8/PyIpOworCQkJYnJlYWs7CisJCWNhc2UgTUNfTE9DS0FTOgorCQkJcHJpbnRmbGFncyhtY3RsX2xvY2thcywgYXJnLCAiTUNMXz8/PyIpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl0cHJpbnRmKCIlI3giLCBhcmcpOworCQkJYnJlYWs7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBNQ19TWU5DICovCisKK2ludAorc3lzX21pbmNvcmUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXVuc2lnbmVkIGxvbmcgaSwgbGVuOworCWNoYXIgKnZlYyA9IE5VTEw7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlI2x4LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCX0gZWxzZSB7CisJCWxlbiA9IHRjcC0+dV9hcmdbMV07CisJCWlmIChzeXNlcnJvcih0Y3ApIHx8IHRjcC0+dV9hcmdbMl0gPT0gMCB8fAorCQkJKHZlYyA9IG1hbGxvYyhsZW4pKSA9PSBOVUxMIHx8CisJCQl1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzJdLCBsZW4sIHZlYykgPCAwKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlIHsKKwkJCXRwcmludGYoIlsiKTsKKwkJCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworCQkJCWlmIChhYmJyZXYodGNwKSAmJiBpID49IG1heF9zdHJsZW4pIHsKKwkJCQkJdHByaW50ZigiLi4uIik7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQl0cHJpbnRmKCh2ZWNbaV0gJiAxKSA/ICIxIiA6ICIwIik7CisJCQl9CisJCQl0cHJpbnRmKCJdIik7CisJCX0KKwkJaWYgKHZlYykKKwkJCWZyZWUodmVjKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2dldHBhZ2VzaXplKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZXhpdGluZyh0Y3ApKQorCQlyZXR1cm4gUlZBTF9IRVg7CisJcmV0dXJuIDA7Cit9CisKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKF9faTM4Nl9fKQordm9pZAorcHJpbnRfbGR0X2VudHJ5IChsZHRfZW50cnkpCitzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcyAqbGR0X2VudHJ5OworeworCXRwcmludGYoImJhc2VfYWRkcjolIzA4bHgsICIKKwkJImxpbWl0OiVkLCAiCisJCSJzZWdfMzJiaXQ6JWQsICIKKwkJImNvbnRlbnRzOiVkLCAiCisJCSJyZWFkX2V4ZWNfb25seTolZCwgIgorCQkibGltaXRfaW5fcGFnZXM6JWQsICIKKwkJInNlZ19ub3RfcHJlc2VudDolZCwgIgorCQkidXNlYWJsZTolZH0iLAorCQlsZHRfZW50cnktPmJhc2VfYWRkciwKKwkJbGR0X2VudHJ5LT5saW1pdCwKKwkJbGR0X2VudHJ5LT5zZWdfMzJiaXQsCisJCWxkdF9lbnRyeS0+Y29udGVudHMsCisJCWxkdF9lbnRyeS0+cmVhZF9leGVjX29ubHksCisJCWxkdF9lbnRyeS0+bGltaXRfaW5fcGFnZXMsCisJCWxkdF9lbnRyeS0+c2VnX25vdF9wcmVzZW50LAorCQlsZHRfZW50cnktPnVzZWFibGUpOworfQorCitpbnQKK3N5c19tb2RpZnlfbGR0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcyBjb3B5OworCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJaWYgKHRjcC0+dV9hcmdbMV0gPT0gMAorCQkJCXx8IHRjcC0+dV9hcmdbMl0gIT0gc2l6ZW9mIChzdHJ1Y3QgbW9kaWZ5X2xkdF9sZHRfcykKKwkJCQl8fCB1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZjb3B5KSA9PSAtMSkKKwkJCXRwcmludGYoIiwgJWx4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UgeworCQkJdHByaW50ZigiLCB7ZW50cnlfbnVtYmVyOiVkLCAiLCBjb3B5LmVudHJ5X251bWJlcik7CisJCQlpZiAoIXZlcmJvc2UodGNwKSkKKwkJCQl0cHJpbnRmKCIuLi59Iik7CisJCQllbHNlIHsKKwkJCQlwcmludF9sZHRfZW50cnkoJmNvcHkpOworCQkJfQorCQl9CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19zZXRfdGhyZWFkX2FyZWEodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBtb2RpZnlfbGR0X2xkdF9zIGNvcHk7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJmNvcHkpICE9IC0xKSB7CisJCQlpZiAoY29weS5lbnRyeV9udW1iZXIgPT0gLTEpCisJCQkJdHByaW50Zigie2VudHJ5X251bWJlcjolZCAtPiAiLAorCQkJCQljb3B5LmVudHJ5X251bWJlcik7CisJCQllbHNlCisJCQkJdHByaW50Zigie2VudHJ5X251bWJlcjoiKTsKKwkJfQorCX0gZWxzZSB7CisJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZjb3B5KSAhPSAtMSkgeworCQkJdHByaW50ZigiJWQsICIsIGNvcHkuZW50cnlfbnVtYmVyKTsKKwkJCWlmICghdmVyYm9zZSh0Y3ApKQorCQkJCXRwcmludGYoIi4uLn0iKTsKKwkJCWVsc2UgeworCQkJCXByaW50X2xkdF9lbnRyeSgmY29weSk7CisJCQl9CisJCX0gZWxzZSB7CisJCQl0cHJpbnRmKCIlbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKKworfQorCitpbnQKK3N5c19nZXRfdGhyZWFkX2FyZWEodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBtb2RpZnlfbGR0X2xkdF9zIGNvcHk7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmY29weSkgIT0gLTEpIHsKKwkJCXRwcmludGYoIntlbnRyeV9udW1iZXI6JWQsICIsIGNvcHkuZW50cnlfbnVtYmVyKTsKKwkJCWlmICghdmVyYm9zZSh0Y3ApKQorCQkJCXRwcmludGYoIi4uLn0iKTsKKwkJCWVsc2UgeworCQkJCXByaW50X2xkdF9lbnRyeSgmY29weSk7CisJCQl9CisJCX0gZWxzZSB7CisJCQl0cHJpbnRmKCIlbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKKworfQorI2VuZGlmIC8qIExJTlVYICYmIF9faTM4Nl9fICovCisKKyNpZiBkZWZpbmVkKExJTlVYKQoraW50CitzeXNfcmVtYXBfZmlsZV9wYWdlcyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCwgJWx1LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnRmbGFncyhtbWFwX3Byb3QsIHRjcC0+dV9hcmdbMl0sICJQUk9UXz8/PyIpOworCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1szXSk7CisjaWZkZWYgTUFQX1RZUEUKKwkJcHJpbnR4dmFsKG1tYXBfZmxhZ3MsIHRjcC0+dV9hcmdbNF0gJiBNQVBfVFlQRSwgIk1BUF8/Pz8iKTsKKwkJYWRkZmxhZ3MobW1hcF9mbGFncywgdGNwLT51X2FyZ1s0XSAmIH5NQVBfVFlQRSk7CisjZWxzZQorCQlwcmludGZsYWdzKG1tYXBfZmxhZ3MsIHRjcC0+dV9hcmdbNF0sICJNQVBfPz8/Iik7CisjZW5kaWYKKwl9CisJcmV0dXJuIDA7Cit9CisKKworI2RlZmluZSBNUE9MX0RFRkFVTFQgICAgMAorI2RlZmluZSBNUE9MX1BSRUZFUlJFRCAgMQorI2RlZmluZSBNUE9MX0JJTkQgICAgICAgMgorI2RlZmluZSBNUE9MX0lOVEVSTEVBVkUgMworCisjZGVmaW5lIE1QT0xfRl9OT0RFICAgICAoMTw8MCkKKyNkZWZpbmUgTVBPTF9GX0FERFIgICAgICgxPDwxKQorCisjZGVmaW5lIE1QT0xfTUZfU1RSSUNUICAoMTw8MCkKKyNkZWZpbmUgTVBPTF9NRl9NT1ZFCSgxPDwxKQorI2RlZmluZSBNUE9MX01GX01PVkVfQUxMICgxPDwyKQorCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwb2xpY2llc1tdID0geworCXsgTVBPTF9ERUZBVUxULAkJIk1QT0xfREVGQVVMVCIJCX0sCisJeyBNUE9MX1BSRUZFUlJFRCwJIk1QT0xfUFJFRkVSUkVEIgl9LAorCXsgTVBPTF9CSU5ELAkJIk1QT0xfQklORCIJCX0sCisJeyBNUE9MX0lOVEVSTEVBVkUsCSJNUE9MX0lOVEVSTEVBVkUiCX0sCisJeyAwLAkJCU5VTEwJCQl9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbWJpbmRmbGFnc1tdID0geworCXsgTVBPTF9NRl9TVFJJQ1QsCSJNUE9MX01GX1NUUklDVCIJfSwKKwl7IE1QT0xfTUZfTU9WRSwJCSJNUE9MX01GX01PVkUiCQl9LAorCXsgTVBPTF9NRl9NT1ZFX0FMTCwJIk1QT0xfTUZfTU9WRV9BTEwiCX0sCisJeyAwLAkJCU5VTEwJCQl9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbWVtcG9saWN5ZmxhZ3NbXSA9IHsKKwl7IE1QT0xfRl9OT0RFLAkJIk1QT0xfRl9OT0RFIgkJfSwKKwl7IE1QT0xfRl9BRERSLAkJIk1QT0xfRl9BRERSIgkJfSwKKwl7IDAsCQkJTlVMTAkJCX0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtb3ZlX3BhZ2VzX2ZsYWdzW10gPSB7CisJeyBNUE9MX01GX01PVkUsCQkiTVBPTF9NRl9NT1ZFIgkJfSwKKwl7IE1QT0xfTUZfTU9WRV9BTEwsCSJNUE9MX01GX01PVkVfQUxMIgl9LAorCXsgMCwJCQlOVUxMCQkJfQorfTsKKworCitzdGF0aWMgdm9pZAorZ2V0X25vZGVzKHRjcCwgcHRyLCBtYXhub2RlcywgZXJyKQorc3RydWN0IHRjYiAqdGNwOwordW5zaWduZWQgbG9uZyBwdHI7Cit1bnNpZ25lZCBsb25nIG1heG5vZGVzOworaW50IGVycjsKK3sKKwl1bnNpZ25lZCBsb25nIG5sb25ncywgc2l6ZSwgZW5kOworCisJbmxvbmdzID0gKG1heG5vZGVzICsgOCAqIHNpemVvZihsb25nKSAtIDEpIC8gKDggKiBzaXplb2YobG9uZykpOworCXNpemUgPSBubG9uZ3MgKiBzaXplb2YobG9uZyk7CisJZW5kID0gcHRyICsgc2l6ZTsKKwlpZiAobmxvbmdzID09IDAgfHwgKChlcnIgfHwgdmVyYm9zZSh0Y3ApKSAmJiAoc2l6ZSAqIDggPT0gbWF4bm9kZXMpCisJCQkgICAgJiYgKGVuZCA+IHB0cikpKSB7CisJCXVuc2lnbmVkIGxvbmcgbiwgY3VyLCBhYmJyZXZfZW5kOworCQlpbnQgZmFpbGVkID0gMDsKKworCQlpZiAoYWJicmV2KHRjcCkpIHsKKwkJCWFiYnJldl9lbmQgPSBwdHIgKyBtYXhfc3RybGVuICogc2l6ZW9mKGxvbmcpOworCQkJaWYgKGFiYnJldl9lbmQgPCBwdHIpCisJCQkJYWJicmV2X2VuZCA9IGVuZDsKKwkJfSBlbHNlIHsKKwkJCWFiYnJldl9lbmQgPSBlbmQ7CisJCX0KKwkJdHByaW50ZigiLCB7Iik7CisJCWZvciAoY3VyID0gcHRyOyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YobG9uZykpIHsKKwkJCWlmIChjdXIgPiBwdHIpCisJCQkJdHByaW50ZigiLCAiKTsKKwkJCWlmIChjdXIgPj0gYWJicmV2X2VuZCkgeworCQkJCXRwcmludGYoIi4uLiIpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mKG4pLCAoY2hhciAqKSAmbikgPCAwKSB7CisJCQkJdHByaW50ZigiPyIpOworCQkJCWZhaWxlZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCIlIzAqbHgiLCAoaW50KSBzaXplb2YobG9uZykgKiAyICsgMiwgbik7CisJCX0KKwkJdHByaW50ZigifSIpOworCQlpZiAoZmFpbGVkKQorCQkJdHByaW50ZigiICUjbHgiLCBwdHIpOworCX0gZWxzZQorCQl0cHJpbnRmKCIsICUjbHgiLCBwdHIpOworCXRwcmludGYoIiwgJWx1IiwgbWF4bm9kZXMpOworfQorCitpbnQKK3N5c19tYmluZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWx1LCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQlwcmludHh2YWwocG9saWNpZXMsIHRjcC0+dV9hcmdbMl0sICJNUE9MXz8/PyIpOworCQlnZXRfbm9kZXModGNwLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdLCAwKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhtYmluZGZsYWdzLCB0Y3AtPnVfYXJnWzVdLCAiTVBPTF8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NldF9tZW1wb2xpY3kodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbChwb2xpY2llcywgdGNwLT51X2FyZ1swXSwgIk1QT0xfPz8/Iik7CisJCWdldF9ub2Rlcyh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIDApOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZ2V0X21lbXBvbGljeSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpbnQgcG9sOworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnBvbCkgPCAwKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlCisJCQlwcmludHh2YWwocG9saWNpZXMsIHBvbCwgIk1QT0xfPz8/Iik7CisJCWdldF9ub2Rlcyh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIHN5c2Vycm9yKHRjcCkpOworCQl0cHJpbnRmKCIsICUjbHgsICIsIHRjcC0+dV9hcmdbM10pOworCQlwcmludGZsYWdzKG1lbXBvbGljeWZsYWdzLCB0Y3AtPnVfYXJnWzRdLCAiTVBPTF8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX21vdmVfcGFnZXModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXVuc2lnbmVkIGxvbmcgbnBhZ2VzID0gdGNwLT51X2FyZ1sxXTsKKwkJdHByaW50ZigiJWxkLCAlbHUsICIsIHRjcC0+dV9hcmdbMF0sIG5wYWdlcyk7CisJCWlmICh0Y3AtPnVfYXJnWzJdID09IDApCisJCQl0cHJpbnRmKCJOVUxMLCAiKTsKKwkJZWxzZSB7CisJCQlpbnQgaTsKKwkJCWxvbmcgcHVzZXIgPSB0Y3AtPnVfYXJnWzJdOworCQkJdHByaW50ZigieyIpOworCQkJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgKytpKSB7CisJCQkJdm9pZCAqcDsKKwkJCQlpZiAoaSA+IDApCisJCQkJCXRwcmludGYoIiwgIik7CisJCQkJaWYgKHVtb3ZlKHRjcCwgcHVzZXIsICZwKSA8IDApIHsKKwkJCQkJdHByaW50ZigiPz8/Iik7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQl0cHJpbnRmKCIlcCIsIHApOworCQkJCXB1c2VyICs9IHNpemVvZiAodm9pZCAqKTsKKwkJCX0KKwkJCXRwcmludGYoIn0sICIpOworCQl9CisJCWlmICh0Y3AtPnVfYXJnWzNdID09IDApCisJCQl0cHJpbnRmKCJOVUxMLCAiKTsKKwkJZWxzZSB7CisJCQlpbnQgaTsKKwkJCWxvbmcgbm9kZXVzZXIgPSB0Y3AtPnVfYXJnWzNdOworCQkJdHByaW50ZigieyIpOworCQkJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgKytpKSB7CisJCQkJaW50IG5vZGU7CisJCQkJaWYgKGkgPiAwKQorCQkJCQl0cHJpbnRmKCIsICIpOworCQkJCWlmICh1bW92ZSh0Y3AsIG5vZGV1c2VyLCAmbm9kZSkgPCAwKSB7CisJCQkJCXRwcmludGYoIj8/PyIpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJdHByaW50ZigiJSN4Iiwgbm9kZSk7CisJCQkJbm9kZXVzZXIgKz0gc2l6ZW9mIChpbnQpOworCQkJfQorCQkJdHByaW50ZigifSwgIik7CisJCX0KKwl9CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQl1bnNpZ25lZCBsb25nIG5wYWdlcyA9IHRjcC0+dV9hcmdbMV07CisJCWlmICh0Y3AtPnVfYXJnWzRdID09IDApCisJCQl0cHJpbnRmKCJOVUxMLCAiKTsKKwkJZWxzZSB7CisJCQlpbnQgaTsKKwkJCWxvbmcgc3RhdHVzdXNlciA9IHRjcC0+dV9hcmdbNF07CisJCQl0cHJpbnRmKCJ7Iik7CisJCQlmb3IgKGkgPSAwOyBpIDwgbnBhZ2VzOyArK2kpIHsKKwkJCQlpbnQgc3RhdHVzOworCQkJCWlmIChpID4gMCkKKwkJCQkJdHByaW50ZigiLCAiKTsKKwkJCQlpZiAodW1vdmUodGNwLCBzdGF0dXN1c2VyLCAmc3RhdHVzKSA8IDApIHsKKwkJCQkJdHByaW50ZigiPz8/Iik7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQl0cHJpbnRmKCIlI3giLCBzdGF0dXMpOworCQkJCXN0YXR1c3VzZXIgKz0gc2l6ZW9mIChpbnQpOworCQkJfQorCQkJdHByaW50ZigifSwgIik7CisJCX0KKwkJcHJpbnRmbGFncyhtb3ZlX3BhZ2VzX2ZsYWdzLCB0Y3AtPnVfYXJnWzVdLCAiTVBPTF8/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL21pc3NpbmcgYi9taXNzaW5nCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU3ZWY4M2EKLS0tIC9kZXYvbnVsbAorKysgYi9taXNzaW5nCkBAIC0wLDAgKzEsMzYwIEBACisjISAvYmluL3NoCisjIENvbW1vbiBzdHViIGZvciBhIGZldyBtaXNzaW5nIEdOVSBwcm9ncmFtcyB3aGlsZSBpbnN0YWxsaW5nLgorCitzY3JpcHR2ZXJzaW9uPTIwMDMtMDktMDIuMjMKKworIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTksIDIwMDAsIDIwMDIsIDIwMDMgCisjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIE9yaWdpbmFsbHkgYnkgRnJhbixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51bW9udHJlYWwuY2E+LCAxOTk2LgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyMgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyMgMDIxMTEtMTMwNywgVVNBLgorCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworaWYgdGVzdCAkIyAtZXEgMDsgdGhlbgorICBlY2hvIDE+JjIgIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24iCisgIGV4aXQgMQorZmkKKworcnVuPToKKworIyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQorIyBzcmNkaXIgYWxyZWFkeS4KK2lmIHRlc3QgLWYgY29uZmlndXJlLmFjOyB0aGVuCisgIGNvbmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKK2Vsc2UKKyAgY29uZmlndXJlX2FjPWNvbmZpZ3VyZS5pbgorZmkKKworbXNnPSJtaXNzaW5nIG9uIHlvdXIgc3lzdGVtIgorCitjYXNlICIkMSIgaW4KKy0tcnVuKQorICAjIFRyeSB0byBydW4gcmVxdWVzdGVkIHByb2dyYW0sIGFuZCBqdXN0IGV4aXQgaWYgaXQgc3VjY2VlZHMuCisgIHJ1bj0KKyAgc2hpZnQKKyAgIiRAIiAmJiBleGl0IDAKKyAgIyBFeGl0IGNvZGUgNjMgbWVhbnMgdmVyc2lvbiBtaXNtYXRjaC4gIFRoaXMgb2Z0ZW4gaGFwcGVucworICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNpb24gb2YgYSB0b29sIG9uCisgICMgYSBmaWxlIHRoYXQgcmVxdWlyZXMgYSBtaW5pbXVtIHZlcnNpb24uICBJbiB0aGlzIGNhc2Ugd2UKKyAgIyB3ZSBzaG91bGQgcHJvY2VlZCBoYXMgaWYgdGhlIHByb2dyYW0gaGFkIGJlZW4gYWJzZW50LCBvcgorICAjIGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBhc3NlZC4KKyAgaWYgdGVzdCAkPyA9IDYzOyB0aGVuCisgICAgcnVuPToKKyAgICBtc2c9InByb2JhYmx5IHRvbyBvbGQiCisgIGZpCisgIDs7Citlc2FjCisKKyMgSWYgaXQgZG9lcyBub3QgZXhpc3QsIG9yIGZhaWxzIHRvIHJ1biAocG9zc2libHkgYW4gb3V0ZGF0ZWQgdmVyc2lvbiksCisjIHRyeSB0byBlbXVsYXRlIGl0LgorY2FzZSAiJDEiIGluCisKKyAgLWh8LS1ofC0taGV8LS1oZWx8LS1oZWxwKQorICAgIGVjaG8gIlwKKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VNRU5UXS4uLgorCitIYW5kbGUgXGBQUk9HUkFNIFtBUkdVTUVOVF0uLi4nIGZvciB3aGVuIFBST0dSQU0gaXMgbWlzc2luZywgb3IgcmV0dXJuIGFuCitlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMgbm8ga25vd24gaGFuZGxpbmcgZm9yIFBST0dSQU0uCisKK09wdGlvbnM6CisgIC1oLCAtLWhlbHAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAorICAtdiwgLS12ZXJzaW9uICAgb3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKyAgLS1ydW4gICAgICAgICAgIHRyeSB0byBydW4gdGhlIGdpdmVuIGNvbW1hbmQsIGFuZCBlbXVsYXRlIGl0IGlmIGl0IGZhaWxzCisKK1N1cHBvcnRlZCBQUk9HUkFNIHZhbHVlczoKKyAgYWNsb2NhbCAgICAgIHRvdWNoIGZpbGUgXGBhY2xvY2FsLm00JworICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKKyAgYXV0b2hlYWRlciAgIHRvdWNoIGZpbGUgXGBjb25maWcuaC5pbicKKyAgYXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcworICBiaXNvbiAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCisgIGZsZXggICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCisgIGhlbHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKKyAgbGV4ICAgICAgICAgIGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKKyAgbWFrZWluZm8gICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZQorICB0YXIgICAgICAgICAgdHJ5IHRhciwgZ251dGFyLCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncworICB5YWNjICAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCisKK1NlbmQgYnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCisgICAgOzsKKworICAtdnwtLXZ8LS12ZXwtLXZlcnwtLXZlcnN8LS12ZXJzaXwtLXZlcnNpb3wtLXZlcnNpb24pCisgICAgZWNobyAibWlzc2luZyAkc2NyaXB0dmVyc2lvbiAoR05VIEF1dG9tYWtlKSIKKyAgICA7OworCisgIC0qKQorICAgIGVjaG8gMT4mMiAiJDA6IFVua25vd24gXGAkMScgb3B0aW9uIgorICAgIGVjaG8gMT4mMiAiVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiIKKyAgICBleGl0IDEKKyAgICA7OworCisgIGFjbG9jYWwqKQorICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCisgICAgICAgZXhpdCAxCisgICAgZmkKKworICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisgICAgICAgICB5b3UgbW9kaWZpZWQgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50CisgICAgICAgICB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tCisgICAgICAgICBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgdG91Y2ggYWNsb2NhbC5tNAorICAgIDs7CisKKyAgYXV0b2NvbmYpCisgICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KKyAgICAgICBleGl0IDEKKyAgICBmaQorCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZQorICAgICAgICAgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbSBmcm9tIGFueSBHTlUKKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisgICAgdG91Y2ggY29uZmlndXJlCisgICAgOzsKKworICBhdXRvaGVhZGVyKQorICAgIGlmIHRlc3QgLXogIiRydW4iICYmICgkMSAtLXZlcnNpb24pID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgICAjIFdlIGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCisgICAgICAgZXhpdCAxCisgICAgZmkKKworICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCisgICAgICAgICB5b3UgbW9kaWZpZWQgXGBhY2NvbmZpZy5oJyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudAorICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdyYWIgdGhlbQorICAgICAgICAgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgZmlsZXM9YHNlZCAtbiAncy9eWyBdKkFbQ01dX0NPTkZJR19IRUFERVIoXChbXildKlwpKS4qL1wxL3AnICR7Y29uZmlndXJlX2FjfWAKKyAgICB0ZXN0IC16ICIkZmlsZXMiICYmIGZpbGVzPSJjb25maWcuaCIKKyAgICB0b3VjaF9maWxlcz0KKyAgICBmb3IgZiBpbiAkZmlsZXM7IGRvCisgICAgICBjYXNlICIkZiIgaW4KKyAgICAgICo6KikgdG91Y2hfZmlsZXM9IiR0b3VjaF9maWxlcyAiYGVjaG8gIiRmIiB8CisJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8nIC1lICdzLzouKi8vJ2A7OworICAgICAgKikgdG91Y2hfZmlsZXM9IiR0b3VjaF9maWxlcyAkZi5pbiI7OworICAgICAgZXNhYworICAgIGRvbmUKKyAgICB0b3VjaCAkdG91Y2hfZmlsZXMKKyAgICA7OworCisgIGF1dG9tYWtlKikKKyAgICBpZiB0ZXN0IC16ICIkcnVuIiAmJiAoJDEgLS12ZXJzaW9uKSA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAgIyBXZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLgorICAgICAgIGV4aXQgMQorICAgIGZpCisKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorICAgICAgICAgeW91IG1vZGlmaWVkIFxgTWFrZWZpbGUuYW0nLCBcYGFjaW5jbHVkZS5tNCcgb3IgXGAke2NvbmZpZ3VyZV9hY30nLgorICAgICAgICAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUgXGBBdXRvbWFrZScgYW5kIFxgUGVybCcgcGFja2FnZXMuCisgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgZmluZCAuIC10eXBlIGYgLW5hbWUgTWFrZWZpbGUuYW0gLXByaW50IHwKKwkgICBzZWQgJ3MvXC5hbSQvLmluLycgfAorCSAgIHdoaWxlIHJlYWQgZjsgZG8gdG91Y2ggIiRmIjsgZG9uZQorICAgIDs7CisKKyAgYXV0b200dGUpCisgICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KKyAgICAgICBleGl0IDEKKyAgICBmaQorCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyBuZWVkZWQsIGJ1dCBpcyAkbXNnLgorICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmluZyB0aGUKKyAgICAgICAgIHByb3BlciB0b29scyBmb3IgZnVydGhlciBoYW5kbGluZyB0aGVtLgorICAgICAgICAgWW91IGNhbiBnZXQgXGAkMScgYXMgcGFydCBvZiBcYEF1dG9jb25mJyBmcm9tIGFueSBHTlUKKyAgICAgICAgIGFyY2hpdmUgc2l0ZS4iCisKKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gJ3MvLiotLW91dHB1dFsgPV0qXChbXiBdKlwpLiovXDEvcCdgCisgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAncy8uKi1vWyBdKlwoW14gXSpcKS4qL1wxL3AnYAorICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgorCXRvdWNoICRmaWxlCisgICAgZWxzZQorCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQorCWVjaG8gIiMhIC9iaW4vc2giCisJZWNobyAiIyBDcmVhdGVkIGJ5IEdOVSBBdXRvbWFrZSBtaXNzaW5nIGFzIGEgcmVwbGFjZW1lbnQgb2YiCisJZWNobyAiIyAgJCAkQCIKKwllY2hvICJleGl0IDAiCisJY2htb2QgK3ggJGZpbGUKKwlleGl0IDEKKyAgICBmaQorICAgIDs7CisKKyAgYmlzb258eWFjYykKKyAgICBlY2hvIDE+JjIgIlwKK1dBUk5JTkc6IFxgJDEnICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgorICAgICAgICAgeW91IG1vZGlmaWVkIGEgXGAueScgZmlsZS4gIFlvdSBtYXkgbmVlZCB0aGUgXGBCaXNvbicgcGFja2FnZQorICAgICAgICAgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZSBlZmZlY3QuICBZb3UgY2FuIGdldAorICAgICAgICAgXGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgcm0gLWYgeS50YWIuYyB5LnRhYi5oCisgICAgaWYgWyAkIyAtbmUgMSBdOyB0aGVuCisgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7JCN9IgorCWNhc2UgIiRMQVNUQVJHIiBpbgorCSoueSkKKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL3kkL2MvJ2AKKwkgICAgaWYgWyAtZiAiJFNSQ0ZJTEUiIF07IHRoZW4KKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmMKKwkgICAgZmkKKwkgICAgU1JDRklMRT1gZWNobyAiJExBU1RBUkciIHwgc2VkICdzL3kkL2gvJ2AKKwkgICAgaWYgWyAtZiAiJFNSQ0ZJTEUiIF07IHRoZW4KKwkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmgKKwkgICAgZmkKKwkgIDs7CisJZXNhYworICAgIGZpCisgICAgaWYgWyAhIC1mIHkudGFiLmggXTsgdGhlbgorCWVjaG8gPnkudGFiLmgKKyAgICBmaQorICAgIGlmIFsgISAtZiB5LnRhYi5jIF07IHRoZW4KKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPnkudGFiLmMKKyAgICBmaQorICAgIDs7CisKKyAgbGV4fGZsZXgpCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLmwnIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgRmxleCcgcGFja2FnZQorICAgICAgICAgaW4gb3JkZXIgZm9yIHRob3NlIG1vZGlmaWNhdGlvbnMgdG8gdGFrZSBlZmZlY3QuICBZb3UgY2FuIGdldAorICAgICAgICAgXGBGbGV4JyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKKyAgICBybSAtZiBsZXgueXkuYworICAgIGlmIFsgJCMgLW5lIDEgXTsgdGhlbgorICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKKwljYXNlICIkTEFTVEFSRyIgaW4KKwkqLmwpCisJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy9sJC9jLydgCisJICAgIGlmIFsgLWYgIiRTUkNGSUxFIiBdOyB0aGVuCisJICAgICAgICAgY3AgIiRTUkNGSUxFIiBsZXgueXkuYworCSAgICBmaQorCSAgOzsKKwllc2FjCisgICAgZmkKKyAgICBpZiBbICEgLWYgbGV4Lnl5LmMgXTsgdGhlbgorCWVjaG8gJ21haW4oKSB7IHJldHVybiAwOyB9JyA+bGV4Lnl5LmMKKyAgICBmaQorICAgIDs7CisKKyAgaGVscDJtYW4pCisgICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgICMgV2UgaGF2ZSBpdCwgYnV0IGl0IGZhaWxlZC4KKyAgICAgICBleGl0IDEKKyAgICBmaQorCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKwkgeW91IG1vZGlmaWVkIGEgZGVwZW5kZW5jeSBvZiBhIG1hbnVhbCBwYWdlLiAgWW91IG1heSBuZWVkIHRoZQorCSBcYEhlbHAybWFuJyBwYWNrYWdlIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UKKwkgZWZmZWN0LiAgWW91IGNhbiBnZXQgXGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisKKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gJ3MvLiotbyBcKFteIF0qXCkuKi9cMS9wJ2AKKyAgICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KKwlmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gJ3MvLiotLW91dHB1dD1cKFteIF0qXCkuKi9cMS9wJ2AKKyAgICBmaQorICAgIGlmIFsgLWYgIiRmaWxlIiBdOyB0aGVuCisJdG91Y2ggJGZpbGUKKyAgICBlbHNlCisJdGVzdCAteiAiJGZpbGUiIHx8IGV4ZWMgPiRmaWxlCisJZWNobyAiLmFiIGhlbHAybWFuIGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoaXMgcGFnZSIKKwlleGl0IDEKKyAgICBmaQorICAgIDs7CisKKyAgbWFrZWluZm8pCisgICAgaWYgdGVzdCAteiAiJHJ1biIgJiYgKG1ha2VpbmZvIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgICMgV2UgaGF2ZSBtYWtlaW5mbywgYnV0IGl0IGZhaWxlZC4KKyAgICAgICBleGl0IDEKKyAgICBmaQorCisgICAgZWNobyAxPiYyICJcCitXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnRleGknIG9yIFxgLnRleGluZm8nIGZpbGUsIG9yIGFueSBvdGhlciBmaWxlCisgICAgICAgICBpbmRpcmVjdGx5IGFmZmVjdGluZyB0aGUgYXNwZWN0IG9mIHRoZSBtYW51YWwuICBUaGUgc3B1cmlvdXMKKyAgICAgICAgIGNhbGwgbWlnaHQgYWxzbyBiZSB0aGUgY29uc2VxdWVuY2Ugb2YgdXNpbmcgYSBidWdneSBcYG1ha2UnIChBSVgsCisgICAgICAgICBEVSwgSVJJWCkuICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYFRleGluZm8nIHBhY2thZ2Ugb3IKKyAgICAgICAgIHRoZSBcYEdOVSBtYWtlJyBwYWNrYWdlLiAgR3JhYiBlaXRoZXIgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCisgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLW8gXChbXiBdKlwpLiovXDEvcCdgCisgICAgaWYgdGVzdCAteiAiJGZpbGUiOyB0aGVuCisgICAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgJ3MvLiogXChbXiBdKlwpICokL1wxLydgCisgICAgICBmaWxlPWBzZWQgLW4gJy9eQHNldGZpbGVuYW1lLyB7IHMvLiogXChbXiBdKlwpICokL1wxLzsgcDsgcTsgfScgJGZpbGVgCisgICAgZmkKKyAgICB0b3VjaCAkZmlsZQorICAgIDs7CisKKyAgdGFyKQorICAgIHNoaWZ0CisgICAgaWYgdGVzdCAtbiAiJHJ1biI7IHRoZW4KKyAgICAgIGVjaG8gMT4mMiAiRVJST1I6IFxgdGFyJyByZXF1aXJlcyAtLXJ1biIKKyAgICAgIGV4aXQgMQorICAgIGZpCisKKyAgICAjIFdlIGhhdmUgYWxyZWFkeSB0cmllZCB0YXIgaW4gdGhlIGdlbmVyaWMgcGFydC4KKyAgICAjIExvb2sgZm9yIGdudXRhci9ndGFyIGJlZm9yZSBpbnZvY2F0aW9uIHRvIGF2b2lkIHVnbHkgZXJyb3IKKyAgICAjIG1lc3NhZ2VzLgorICAgIGlmIChnbnV0YXIgLS12ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCisgICAgICAgZ251dGFyICIkQCIgJiYgZXhpdCAwCisgICAgZmkKKyAgICBpZiAoZ3RhciAtLXZlcnNpb24gPiAvZGV2L251bGwgMj4mMSk7IHRoZW4KKyAgICAgICBndGFyICIkQCIgJiYgZXhpdCAwCisgICAgZmkKKyAgICBmaXJzdGFyZz0iJDEiCisgICAgaWYgc2hpZnQ7IHRoZW4KKwljYXNlICIkZmlyc3RhcmciIGluCisJKm8qKQorCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKKwkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCisJICAgIDs7CisJZXNhYworCWNhc2UgIiRmaXJzdGFyZyIgaW4KKwkqaCopCisJICAgIGZpcnN0YXJnPWBlY2hvICIkZmlyc3RhcmciIHwgc2VkIHMvaC8vYAorCSAgICB0YXIgIiRmaXJzdGFyZyIgIiRAIiAmJiBleGl0IDAKKwkgICAgOzsKKwllc2FjCisgICAgZmkKKworICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogSSBjYW4ndCBzZWVtIHRvIGJlIGFibGUgdG8gcnVuIFxgdGFyJyB3aXRoIHRoZSBnaXZlbiBhcmd1bWVudHMuCisgICAgICAgICBZb3UgbWF5IHdhbnQgdG8gaW5zdGFsbCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRoZQorICAgICAgICAgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4iCisgICAgZXhpdCAxCisgICAgOzsKKworICAqKQorICAgIGVjaG8gMT4mMiAiXAorV0FSTklORzogXGAkMScgaXMgbmVlZGVkLCBhbmQgaXMgJG1zZy4KKyAgICAgICAgIFlvdSBtaWdodCBoYXZlIG1vZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCisgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4gIENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKKyAgICAgICAgIGl0IG9mdGVuIHRlbGxzIHlvdSBhYm91dCB0aGUgbmVlZGVkIHByZXJlcXVpc2l0ZXMgZm9yIGluc3RhbGxpbmcKKyAgICAgICAgIHRoaXMgcGFja2FnZS4gIFlvdSBtYXkgYWxzbyBwZWVrIGF0IGFueSBHTlUgYXJjaGl2ZSBzaXRlLCBpbiBjYXNlCisgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ugd291bGQgY29udGFpbiB0aGlzIG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCisgICAgZXhpdCAxCisgICAgOzsKK2VzYWMKKworZXhpdCAwCisKKyMgTG9jYWwgdmFyaWFibGVzOgorIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCisjIHRpbWUtc3RhbXAtZW5kOiAiJCIKKyMgRW5kOgpkaWZmIC0tZ2l0IGEvbWtpbnN0YWxsZGlycyBiL21raW5zdGFsbGRpcnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmZiZTVlMQotLS0gL2Rldi9udWxsCisrKyBiL21raW5zdGFsbGRpcnMKQEAgLTAsMCArMSwxNTAgQEAKKyMhIC9iaW4vc2gKKyMgbWtpbnN0YWxsZGlycyAtLS0gbWFrZSBkaXJlY3RvcnkgaGllcmFyY2h5CisKK3NjcmlwdHZlcnNpb249MjAwNC0wMi0xNS4yMAorCisjIE9yaWdpbmFsIGF1dGhvcjogTm9haCBGcmllZG1hbiA8ZnJpZWRtYW5AcHJlcC5haS5taXQuZWR1PgorIyBDcmVhdGVkOiAxOTkzLTA1LTE2CisjIFB1YmxpYyBkb21haW4uCisjCisjIFRoaXMgZmlsZSBpcyBtYWludGFpbmVkIGluIEF1dG9tYWtlLCBwbGVhc2UgcmVwb3J0CisjIGJ1Z3MgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPiBvciBzZW5kIHBhdGNoZXMgdG8KKyMgPGF1dG9tYWtlLXBhdGNoZXNAZ251Lm9yZz4uCisKK2VycnN0YXR1cz0wCitkaXJtb2RlPSIiCisKK3VzYWdlPSJcCitVc2FnZTogbWtpbnN0YWxsZGlycyBbLWhdIFstLWhlbHBdIFstLXZlcnNpb25dIFstbSBNT0RFXSBESVIgLi4uCisKK0NyZWF0ZSBlYWNoIGRpcmVjdG9yeSBESVIgKHdpdGggbW9kZSBNT0RFLCBpZiBzcGVjaWZpZWQpLCBpbmNsdWRpbmcgYWxsCitsZWFkaW5nIGZpbGUgbmFtZSBjb21wb25lbnRzLgorCitSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9tYWtlQGdudS5vcmc+LiIKKworIyBwcm9jZXNzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworICBjYXNlICQxIGluCisgICAgLWggfCAtLWhlbHAgfCAtLWgqKSAgICAgICAgICMgLWggZm9yIGhlbHAKKyAgICAgIGVjaG8gIiR1c2FnZSIKKyAgICAgIGV4aXQgMAorICAgICAgOzsKKyAgICAtbSkgICAgICAgICAgICAgICAgICAgICAgICAgIyAtbSBQRVJNIGFyZworICAgICAgc2hpZnQKKyAgICAgIHRlc3QgJCMgLWVxIDAgJiYgeyBlY2hvICIkdXNhZ2UiIDE+JjI7IGV4aXQgMTsgfQorICAgICAgZGlybW9kZT0kMQorICAgICAgc2hpZnQKKyAgICAgIDs7CisgICAgLS12ZXJzaW9uKQorICAgICAgZWNobyAiJDAgJHNjcmlwdHZlcnNpb24iCisgICAgICBleGl0IDAKKyAgICAgIDs7CisgICAgLS0pICAgICAgICAgICAgICAgICAgICAgICAgICMgc3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgc2hpZnQKKyAgICAgIGJyZWFrCisgICAgICA7OworICAgIC0qKSAgICAgICAgICAgICAgICAgICAgICAgICAjIHVua25vd24gb3B0aW9uCisgICAgICBlY2hvICIkdXNhZ2UiIDE+JjIKKyAgICAgIGV4aXQgMQorICAgICAgOzsKKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmaXJzdCBub24tb3B0IGFyZworICAgICAgYnJlYWsKKyAgICAgIDs7CisgIGVzYWMKK2RvbmUKKworZm9yIGZpbGUKK2RvCisgIGlmIHRlc3QgLWQgIiRmaWxlIjsgdGhlbgorICAgIHNoaWZ0CisgIGVsc2UKKyAgICBicmVhaworICBmaQorZG9uZQorCitjYXNlICQjIGluCisgIDApIGV4aXQgMCA7OworZXNhYworCisjIFNvbGFyaXMgOCdzIG1rZGlyIC1wIGlzbid0IHRocmVhZC1zYWZlLiAgSWYgeW91IG1rZGlyIC1wIGEvYiBhbmQKKyMgbWtkaXIgLXAgYS9jIGF0IHRoZSBzYW1lIHRpbWUsIGJvdGggd2lsbCBkZXRlY3QgdGhhdCBhIGlzIG1pc3NpbmcsCisjIG9uZSB3aWxsIGNyZWF0ZSBhLCB0aGVuIHRoZSBvdGhlciB3aWxsIHRyeSB0byBjcmVhdGUgYSBhbmQgZGllIHdpdGgKKyMgYSAiRmlsZSBleGlzdHMiIGVycm9yLiAgVGhpcyBpcyBhIHByb2JsZW0gd2hlbiBjYWxsaW5nIG1raW5zdGFsbGRpcnMKKyMgZnJvbSBhIHBhcmFsbGVsIG1ha2UuICBXZSB1c2UgLS12ZXJzaW9uIGluIHRoZSBwcm9iZSB0byByZXN0cmljdAorIyBvdXJzZWx2ZXMgdG8gR05VIG1rZGlyLCB3aGljaCBpcyB0aHJlYWQtc2FmZS4KK2Nhc2UgJGRpcm1vZGUgaW4KKyAgJycpCisgICAgaWYgbWtkaXIgLXAgLS12ZXJzaW9uIC4gPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgorICAgICAgZWNobyAibWtkaXIgLXAgLS0gJCoiCisgICAgICBleGVjIG1rZGlyIC1wIC0tICIkQCIKKyAgICBlbHNlCisgICAgICAjIE9uIE5leHRTdGVwIGFuZCBPcGVuU3RlcCwgdGhlIGBta2RpcicgY29tbWFuZCBkb2VzIG5vdAorICAgICAgIyByZWNvZ25pemUgYW55IG9wdGlvbi4gIEl0IHdpbGwgaW50ZXJwcmV0IGFsbCBvcHRpb25zIGFzCisgICAgICAjIGRpcmVjdG9yaWVzIHRvIGNyZWF0ZSwgYW5kIHRoZW4gYWJvcnQgYmVjYXVzZSBgLicgYWxyZWFkeQorICAgICAgIyBleGlzdHMuCisgICAgICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorICAgICAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgorICAgIGZpCisgICAgOzsKKyAgKikKKyAgICBpZiBta2RpciAtbSAiJGRpcm1vZGUiIC1wIC0tdmVyc2lvbiAuID4vZGV2L251bGwgMj4mMSAmJgorICAgICAgIHRlc3QgISAtZCAuLy0tdmVyc2lvbjsgdGhlbgorICAgICAgZWNobyAibWtkaXIgLW0gJGRpcm1vZGUgLXAgLS0gJCoiCisgICAgICBleGVjIG1rZGlyIC1tICIkZGlybW9kZSIgLXAgLS0gIiRAIgorICAgIGVsc2UKKyAgICAgICMgQ2xlYW4gdXAgYWZ0ZXIgTmV4dFN0ZXAgYW5kIE9wZW5TdGVwIG1rZGlyLgorICAgICAgZm9yIGQgaW4gLi8tbSAuLy1wIC4vLS12ZXJzaW9uICIuLyRkaXJtb2RlIjsKKyAgICAgIGRvCisgICAgICAgIHRlc3QgLWQgJGQgJiYgcm1kaXIgJGQKKyAgICAgIGRvbmUKKyAgICBmaQorICAgIDs7Citlc2FjCisKK2ZvciBmaWxlCitkbworICBzZXQgZm5vcmQgYGVjaG8gIjokZmlsZSIgfCBzZWQgLW5lICdzL146XC8vIy87cy9eOi8vO3MvXC8vIC9nO3MvXiMvXC8vO3AnYAorICBzaGlmdAorCisgIHBhdGhjb21wPQorICBmb3IgZAorICBkbworICAgIHBhdGhjb21wPSIkcGF0aGNvbXAkZCIKKyAgICBjYXNlICRwYXRoY29tcCBpbgorICAgICAgLSopIHBhdGhjb21wPS4vJHBhdGhjb21wIDs7CisgICAgZXNhYworCisgICAgaWYgdGVzdCAhIC1kICIkcGF0aGNvbXAiOyB0aGVuCisgICAgICBlY2hvICJta2RpciAkcGF0aGNvbXAiCisKKyAgICAgIG1rZGlyICIkcGF0aGNvbXAiIHx8IGxhc3RlcnI9JD8KKworICAgICAgaWYgdGVzdCAhIC1kICIkcGF0aGNvbXAiOyB0aGVuCisJZXJyc3RhdHVzPSRsYXN0ZXJyCisgICAgICBlbHNlCisJaWYgdGVzdCAhIC16ICIkZGlybW9kZSI7IHRoZW4KKwkgIGVjaG8gImNobW9kICRkaXJtb2RlICRwYXRoY29tcCIKKwkgIGxhc3RlcnI9IiIKKwkgIGNobW9kICIkZGlybW9kZSIgIiRwYXRoY29tcCIgfHwgbGFzdGVycj0kPworCisJICBpZiB0ZXN0ICEgLXogIiRsYXN0ZXJyIjsgdGhlbgorCSAgICBlcnJzdGF0dXM9JGxhc3RlcnIKKwkgIGZpCisJZmkKKyAgICAgIGZpCisgICAgZmkKKworICAgIHBhdGhjb21wPSIkcGF0aGNvbXAvIgorICBkb25lCitkb25lCisKK2V4aXQgJGVycnN0YXR1cworCisjIExvY2FsIFZhcmlhYmxlczoKKyMgbW9kZTogc2hlbGwtc2NyaXB0CisjIHNoLWluZGVudGF0aW9uOiAyCisjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKKyMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgorIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKKyMgdGltZS1zdGFtcC1lbmQ6ICIkIgorIyBFbmQ6CmRpZmYgLS1naXQgYS9uZXQuYyBiL25ldC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MTExODgKLS0tIC9kZXYvbnVsbAorKysgYi9uZXQuYwpAQCAtMCwwICsxLDE5NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMCBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBuZXQuYyx2IDEuNDggMjAwNS8wNi8wMSAxOToyMjowNyByb2xhbmQgRXhwICQKKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorCisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3VuLmg+CisKKyNpZiBkZWZpbmVkKEhBVkVfU0lONl9TQ09QRV9JRF9MSU5VWCkKKyNkZWZpbmUgaW42X2FkZHIgaW42X2FkZHJfbGliYworI2RlZmluZSBpcHY2X21yZXEgaXB2Nl9tcmVxX2xpYmMKKyNkZWZpbmUgc29ja2FkZHJfaW42IHNvY2thZGRyX2luNl9saWJjCisjZW5kaWYKKworI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpZmRlZiBIQVZFX05FVElORVRfVENQX0gKKyNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9ORVRJTkVUX1VEUF9ICisjaW5jbHVkZSA8bmV0aW5ldC91ZHAuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2luY2x1ZGUgPG5ldC9pZi5oPgorI2lmIGRlZmluZWQoTElOVVgpCisjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CisjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmIChfX0dMSUJDX18gPj0gMikgJiYgKF9fR0xJQkNfXyArIF9fR0xJQkNfTUlOT1JfXyA+PSAzKQorIyAgaW5jbHVkZSA8bmV0aXB4L2lweC5oPgorI2Vsc2UKKyMgIGluY2x1ZGUgPGxpbnV4L2lweC5oPgorI2VuZGlmCisjZW5kaWYgLyogTElOVVggKi8KKworI2lmIGRlZmluZWQgKF9fR0xJQkNfXykgJiYgKCgoX19HTElCQ19fIDwgMikgfHwgKF9fR0xJQkNfXyA9PSAyICYmIF9fR0xJQkNfTUlOT1JfXyA8IDEpKSB8fCBkZWZpbmVkKEhBVkVfU0lONl9TQ09QRV9JRF9MSU5VWCkpCisjaWYgZGVmaW5lZChIQVZFX0xJTlVYX0lONl9IKQorI2lmIGRlZmluZWQoSEFWRV9TSU42X1NDT1BFX0lEX0xJTlVYKQorI3VuZGVmIGluNl9hZGRyCisjdW5kZWYgaXB2Nl9tcmVxCisjdW5kZWYgc29ja2FkZHJfaW42CisjZGVmaW5lIGluNl9hZGRyIGluNl9hZGRyX2tlcm5lbAorI2RlZmluZSBpcHY2X21yZXEgaXB2Nl9tcmVxX2tlcm5lbAorI2RlZmluZSBzb2NrYWRkcl9pbjYgc29ja2FkZHJfaW42X2tlcm5lbAorI2VuZGlmCisjaW5jbHVkZSA8bGludXgvaW42Lmg+CisjaWYgZGVmaW5lZChIQVZFX1NJTjZfU0NPUEVfSURfTElOVVgpCisjdW5kZWYgaW42X2FkZHIKKyN1bmRlZiBpcHY2X21yZXEKKyN1bmRlZiBzb2NrYWRkcl9pbjYKKyNkZWZpbmUgaW42X2FkZHIgaW42X2FkZHJfbGliYworI2RlZmluZSBpcHY2X21yZXEgaXB2Nl9tcmVxX2xpYmMKKyNkZWZpbmUgc29ja2FkZHJfaW42IHNvY2thZGRyX2luNl9rZXJuZWwKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9TWVNfVUlPX0gpCisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEhBVkVfTElOVVhfTkVUTElOS19IKQorI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChIQVZFX0xJTlVYX0lGX1BBQ0tFVF9IKQorI2luY2x1ZGUgPGxpbnV4L2lmX3BhY2tldC5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEhBVkVfTElOVVhfSUNNUF9IKQorI2luY2x1ZGUgPGxpbnV4L2ljbXAuaD4KKyNlbmRpZgorCisjaWZuZGVmIFBGX1VOU1BFQworI2RlZmluZSBQRl9VTlNQRUMgQUZfVU5TUEVDCisjZW5kaWYKKworI2lmIFVOSVhXQVJFID49IDcKKyNkZWZpbmUgSEFWRV9TRU5ETVNHCQkxCQkvKiBIQUNLIC0gKkZJWE1FKiAqLworI2VuZGlmCisKKyNpZmRlZiBMSU5VWAorLyogVW5kZXIgTGludXggdGhlc2UgYXJlIGVudW1zIHNvIHdlIGNhbid0IHRlc3QgZm9yIHRoZW0gd2l0aCBpZmRlZi4gKi8KKyNkZWZpbmUgSVBQUk9UT19FR1AgSVBQUk9UT19FR1AKKyNkZWZpbmUgSVBQUk9UT19QVVAgSVBQUk9UT19QVVAKKyNkZWZpbmUgSVBQUk9UT19JRFAgSVBQUk9UT19JRFAKKyNkZWZpbmUgSVBQUk9UT19JR01QIElQUFJPVE9fSUdNUAorI2RlZmluZSBJUFBST1RPX1JBVyBJUFBST1RPX1JBVworI2RlZmluZSBJUFBST1RPX01BWCBJUFBST1RPX01BWAorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBkb21haW5zW10gPSB7CisjaWZkZWYgUEZfQUFMNQorCXsgUEZfQUFMNSwJIlBGX0FBTDUiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9BUFBMRVRBTEsKKwl7IFBGX0FQUExFVEFMSywJIlBGX0FQUExFVEFMSyIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX0FTSAorCXsgUEZfQVNILAkiUEZfQVNIIgl9LAorI2VuZGlmCisjaWZkZWYgUEZfQVRNUFZDCisJeyBQRl9BVE1QVkMsCSJQRl9BVE1QVkMiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9BVE1TVkMKKwl7IFBGX0FUTVNWQywJIlBGX0FUTVNWQyIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX0FYMjUKKwl7IFBGX0FYMjUsCSJQRl9BWDI1Igl9LAorI2VuZGlmCisjaWZkZWYgUEZfQkxVRVRPT1RICisJeyBQRl9CTFVFVE9PVEgsCSJQRl9CTFVFVE9PVEgiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9CUklER0UKKwl7IFBGX0JSSURHRSwJIlBGX0JSSURHRSIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX0RFQ25ldAorCXsgUEZfREVDbmV0LAkiUEZfREVDbmV0Igl9LAorI2VuZGlmCisjaWZkZWYgUEZfREVDTkVUCisJeyBQRl9ERUNORVQsCSJQRl9ERUNORVQiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9FQ09ORVQKKwl7IFBGX0VDT05FVCwJIlBGX0VDT05FVCIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX0ZJTEUKKwl7IFBGX0ZJTEUsCSJQRl9GSUxFIgl9LAorI2VuZGlmCisjaWZkZWYgUEZfSU1QTElOSworCXsgUEZfSU1QTElOSywJIlBGX0lNUExJTksiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9JTkVUCisJeyBQRl9JTkVULAkiUEZfSU5FVCIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX0lORVQ2CisJeyBQRl9JTkVUNiwJIlBGX0lORVQ2Igl9LAorI2VuZGlmCisjaWZkZWYgUEZfSVBYCisJeyBQRl9JUFgsCSJQRl9JUFgiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9JUkRBCisJeyBQRl9JUkRBLAkiUEZfSVJEQSIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX0lTTworCXsgUEZfSVNPLAkiUEZfSVNPIgl9LAorI2VuZGlmCisjaWZkZWYgUEZfS0VZCisJeyBQRl9LRVksCSJQRl9LRVkiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9VTklYCisJeyBQRl9VTklYLAkiUEZfVU5JWCIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX0xPQ0FMCisJeyBQRl9MT0NBTCwJIlBGX0xPQ0FMIgl9LAorI2VuZGlmCisjaWZkZWYgUEZfTkVUQkVVSQorCXsgUEZfTkVUQkVVSSwJIlBGX05FVEJFVUkiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9ORVRMSU5LCisJeyBQRl9ORVRMSU5LLAkiUEZfTkVUTElOSyIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX05FVFJPTQorCXsgUEZfTkVUUk9NLAkiUEZfTkVUUk9NIgl9LAorI2VuZGlmCisjaWZkZWYgUEZfUEFDS0VUCisJeyBQRl9QQUNLRVQsCSJQRl9QQUNLRVQiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9QUFBPWAorCXsgUEZfUFBQT1gsCSJQRl9QUFBPWCIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX1JPU0UKKwl7IFBGX1JPU0UsCSJQRl9ST1NFIgl9LAorI2VuZGlmCisjaWZkZWYgUEZfUk9VVEUKKwl7IFBGX1JPVVRFLAkiUEZfUk9VVEUiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9TRUNVUklUWQorCXsgUEZfU0VDVVJJVFksCSJQRl9TRUNVUklUWSIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX1NOQQorCXsgUEZfU05BLAkiUEZfU05BIgl9LAorI2VuZGlmCisjaWZkZWYgUEZfVU5TUEVDCisJeyBQRl9VTlNQRUMsCSJQRl9VTlNQRUMiCX0sCisjZW5kaWYKKyNpZmRlZiBQRl9XQU5QSVBFCisJeyBQRl9XQU5QSVBFLAkiUEZfV0FOUElQRSIJfSwKKyNlbmRpZgorI2lmZGVmIFBGX1gyNQorCXsgUEZfWDI1LAkiUEZfWDI1Igl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307Citjb25zdCBzdHJ1Y3QgeGxhdCBhZGRyZmFtc1tdID0geworI2lmZGVmIEFGX0FQUExFVEFMSworCXsgQUZfQVBQTEVUQUxLLAkiQUZfQVBQTEVUQUxLIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfQVNICisJeyBBRl9BU0gsCSJBRl9BU0giCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9BVE1QVkMKKwl7IEFGX0FUTVBWQywJIkFGX0FUTVBWQyIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX0FUTVNWQworCXsgQUZfQVRNU1ZDLAkiQUZfQVRNU1ZDIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfQVgyNQorCXsgQUZfQVgyNSwJIkFGX0FYMjUiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9CTFVFVE9PVEgKKwl7IEFGX0JMVUVUT09USCwJIkFGX0JMVUVUT09USCIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX0JSSURHRQorCXsgQUZfQlJJREdFLAkiQUZfQlJJREdFIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfREVDbmV0CisJeyBBRl9ERUNuZXQsCSJBRl9ERUNuZXQiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9FQ09ORVQKKwl7IEFGX0VDT05FVCwJIkFGX0VDT05FVCIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX0ZJTEUKKwl7IEFGX0ZJTEUsCSJBRl9GSUxFIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfSU1QTElOSworCXsgQUZfSU1QTElOSywJIkFGX0lNUExJTksiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9JTkVUCisJeyBBRl9JTkVULAkiQUZfSU5FVCIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX0lORVQ2CisJeyBBRl9JTkVUNiwJIkFGX0lORVQ2Igl9LAorI2VuZGlmCisjaWZkZWYgQUZfSVBYCisJeyBBRl9JUFgsCSJBRl9JUFgiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9JUkRBCisJeyBBRl9JUkRBLAkiQUZfSVJEQSIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX0lTTworCXsgQUZfSVNPLAkiQUZfSVNPIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfS0VZCisJeyBBRl9LRVksCSJBRl9LRVkiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9VTklYCisJeyBBRl9VTklYLAkiQUZfVU5JWCIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX0xPQ0FMCisJeyBBRl9MT0NBTCwJIkFGX0xPQ0FMIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfTkVUQkVVSQorCXsgQUZfTkVUQkVVSSwJIkFGX05FVEJFVUkiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9ORVRMSU5LCisJeyBBRl9ORVRMSU5LLAkiQUZfTkVUTElOSyIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX05FVFJPTQorCXsgQUZfTkVUUk9NLAkiQUZfTkVUUk9NIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfUEFDS0VUCisJeyBBRl9QQUNLRVQsCSJBRl9QQUNLRVQiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9QUFBPWAorCXsgQUZfUFBQT1gsCSJBRl9QUFBPWCIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX1JPU0UKKwl7IEFGX1JPU0UsCSJBRl9ST1NFIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfUk9VVEUKKwl7IEFGX1JPVVRFLAkiQUZfUk9VVEUiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9TRUNVUklUWQorCXsgQUZfU0VDVVJJVFksCSJBRl9TRUNVUklUWSIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX1NOQQorCXsgQUZfU05BLAkiQUZfU05BIgl9LAorI2VuZGlmCisjaWZkZWYgQUZfVU5TUEVDCisJeyBBRl9VTlNQRUMsCSJBRl9VTlNQRUMiCX0sCisjZW5kaWYKKyNpZmRlZiBBRl9XQU5QSVBFCisJeyBBRl9XQU5QSVBFLAkiQUZfV0FOUElQRSIJfSwKKyNlbmRpZgorI2lmZGVmIEFGX1gyNQorCXsgQUZfWDI1LAkiQUZfWDI1Igl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja3R5cGVzW10gPSB7CisJeyBTT0NLX1NUUkVBTSwJIlNPQ0tfU1RSRUFNIgl9LAorCXsgU09DS19ER1JBTSwJIlNPQ0tfREdSQU0iCX0sCisjaWZkZWYgU09DS19SQVcKKwl7IFNPQ0tfUkFXLAkiU09DS19SQVciCX0sCisjZW5kaWYKKyNpZmRlZiBTT0NLX1NFUVBBQ0tFVAorCXsgU09DS19TRVFQQUNLRVQsIlNPQ0tfU0VRUEFDS0VUIn0sCisjZW5kaWYKKyNpZmRlZiBTT0NLX1JETQorCXsgU09DS19SRE0sCSJTT0NLX1JETSIJfSwKKyNlbmRpZgorI2lmZGVmIFNPQ0tfUEFDS0VUCisJeyBTT0NLX1BBQ0tFVCwJIlNPQ0tfUEFDS0VUIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja2V0bGF5ZXJzW10gPSB7CisjaWYgZGVmaW5lZChTT0xfSVApCisJeyBTT0xfSVAsCSJTT0xfSVAiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9JQ01QKQorCXsgU09MX0lDTVAsCSJTT0xfSUNNUCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX1RDUCkKKwl7IFNPTF9UQ1AsCSJTT0xfVENQIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfVURQKQorCXsgU09MX1VEUCwJIlNPTF9VRFAiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9JUFY2KQorCXsgU09MX0lQVjYsCSJTT0xfSVBWNiIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX0lDTVBWNikKKwl7IFNPTF9JQ01QVjYsCSJTT0xfSUNNUFY2Igl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfUkFXKQorCXsgU09MX1JBVywJIlNPTF9SQVciCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9JUFgpCisJeyBTT0xfSVBYLAkiU09MX0lQWCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX0lQWCkKKwl7IFNPTF9JUFgsCSJTT0xfSVBYIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfQVgyNSkKKwl7IFNPTF9BWDI1LAkiU09MX0FYMjUiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9BVEFMSykKKwl7IFNPTF9BVEFMSywJIlNPTF9BVEFMSyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX05FVFJPTSkKKwl7IFNPTF9ORVRST00sCSJTT0xfTkVUUk9NIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfUk9TRSkKKwl7IFNPTF9ST1NFLAkiU09MX1JPU0UiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9ERUNORVQpCisJeyBTT0xfREVDTkVULAkiU09MX0RFQ05FVCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX1gyNSkKKwl7IFNPTF9YMjUsCSJTT0xfWDI1Igl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfUEFDS0VUKQorCXsgU09MX1BBQ0tFVCwJIlNPTF9QQUNLRVQiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNPTF9BVE0pCisJeyBTT0xfQVRNLAkiU09MX0FUTSIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoU09MX0FBTCkKKwl7IFNPTF9BQUwsCSJTT0xfQUFMIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTT0xfSVJEQSkKKwl7IFNPTF9JUkRBLAkiU09MX0lSREEiCX0sCisjZW5kaWYKKwl7IFNPTF9TT0NLRVQsCSJTT0xfU09DS0VUIgl9LAkvKiBOZXZlciB1c2VkISAqLworfTsKKy8qKiogV0FSTklORzogREFOR0VSIFdJTEwgUk9CSU5TT046IE5PVEUgInNvY2tldGxheWVycyIgYXJyYXkgYWJvdmUKKyAgICAgZmFsbHMgaW50byAicHJvdG9jb2xzIiBhcnJheSBiZWxvdyEhISEgICBUaGlzIGlzIGludGVuZGVkISEhICoqKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm90b2NvbHNbXSA9IHsKKwl7IElQUFJPVE9fSVAsCSJJUFBST1RPX0lQIgl9LAorCXsgSVBQUk9UT19JQ01QLAkiSVBQUk9UT19JQ01QIgl9LAorCXsgSVBQUk9UT19UQ1AsCSJJUFBST1RPX1RDUCIJfSwKKwl7IElQUFJPVE9fVURQLAkiSVBQUk9UT19VRFAiCX0sCisjaWZkZWYgSVBQUk9UT19HR1AKKwl7IElQUFJPVE9fR0dQLAkiSVBQUk9UT19HR1AiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX0VHUAorCXsgSVBQUk9UT19FR1AsCSJJUFBST1RPX0VHUCIJfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fUFVQCisJeyBJUFBST1RPX1BVUCwJIklQUFJPVE9fUFVQIgl9LAorI2VuZGlmCisjaWZkZWYgSVBQUk9UT19JRFAKKwl7IElQUFJPVE9fSURQLAkiSVBQUk9UT19JRFAiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX0lQVjYKKwl7IElQUFJPVE9fSVBWNiwJIklQUFJPVE9fSVBWNiIJfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fSUNNUFY2CisJeyBJUFBST1RPX0lDTVBWNiwiSVBQUk9UT19JQ01QVjYifSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fSUdNUAorCXsgSVBQUk9UT19JR01QLAkiSVBQUk9UT19JR01QIgl9LAorI2VuZGlmCisjaWZkZWYgSVBQUk9UT19IRUxMTworCXsgSVBQUk9UT19IRUxMTywiSVBQUk9UT19IRUxMTyIJfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fTkQKKwl7IElQUFJPVE9fTkQsCSJJUFBST1RPX05EIgl9LAorI2VuZGlmCisjaWZkZWYgSVBQUk9UT19SQVcKKwl7IElQUFJPVE9fUkFXLAkiSVBQUk9UT19SQVciCX0sCisjZW5kaWYKKyNpZmRlZiBJUFBST1RPX01BWAorCXsgSVBQUk9UT19NQVgsCSJJUFBST1RPX01BWCIJfSwKKyNlbmRpZgorI2lmZGVmIElQUFJPVE9fSVBJUAorCXsgSVBQUk9UT19JUElQLAkiSVBQUk9UT19JUElQIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbXNnX2ZsYWdzW10gPSB7CisJeyBNU0dfT09CLAkJIk1TR19PT0IiCQl9LAorI2lmZGVmIE1TR19ET05UUk9VVEUKKwl7IE1TR19ET05UUk9VVEUsCSJNU0dfRE9OVFJPVVRFIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1TR19QRUVLCisJeyBNU0dfUEVFSywJCSJNU0dfUEVFSyIJCX0sCisjZW5kaWYKKyNpZmRlZiBNU0dfQ1RSVU5DCisJeyBNU0dfQ1RSVU5DLAkJIk1TR19DVFJVTkMiCQl9LAorI2VuZGlmCisjaWZkZWYgTVNHX1BST1hZCisJeyBNU0dfUFJPWFksCQkiTVNHX1BST1hZIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1TR19FT1IKKwl7IE1TR19FT1IsCQkiTVNHX0VPUiIJCX0sCisjZW5kaWYKKyNpZmRlZiBNU0dfV0FJVEFMTAorCXsgTVNHX1dBSVRBTEwsCQkiTVNHX1dBSVRBTEwiCQl9LAorI2VuZGlmCisjaWZkZWYgTVNHX1RSVU5DCisJeyBNU0dfVFJVTkMsCQkiTVNHX1RSVU5DIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1TR19DVFJVTkMKKwl7IE1TR19DVFJVTkMsCQkiTVNHX0NUUlVOQyIJCX0sCisjZW5kaWYKKyNpZmRlZiBNU0dfRVJSUVVFVUUKKwl7IE1TR19FUlJRVUVVRSwJCSJNU0dfRVJSUVVFVUUiCQl9LAorI2VuZGlmCisjaWZkZWYgTVNHX0RPTlRXQUlUCisJeyBNU0dfRE9OVFdBSVQsCQkiTVNHX0RPTlRXQUlUIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1TR19DT05GSVJNCisJeyBNU0dfQ09ORklSTSwJCSJNU0dfQ09ORklSTSIJCX0sCisjZW5kaWYKKyNpZmRlZiBNU0dfUFJPQkUKKwl7IE1TR19QUk9CRSwJCSJNU0dfUFJPQkUiCQl9LAorI2VuZGlmCisjaWZkZWYgTVNHX0ZJTgorCXsgTVNHX0ZJTiwJCSJNU0dfRklOIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1TR19TWU4KKwl7IE1TR19TWU4sCQkiTVNHX1NZTiIJCX0sCisjZW5kaWYKKyNpZmRlZiBNU0dfUlNUCisJeyBNU0dfUlNULAkJIk1TR19SU1QiCQl9LAorI2VuZGlmCisjaWZkZWYgTVNHX05PU0lHTkFMCisJeyBNU0dfTk9TSUdOQUwsCQkiTVNHX05PU0lHTkFMIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1TR19NT1JFCisJeyBNU0dfTU9SRSwJCSJNU0dfTU9SRSIJCX0sCisjZW5kaWYKKyNpZmRlZiBNU0dfQ01TR19DTE9FWEVDCisJeyBNU0dfQ01TR19DTE9FWEVDLAkiTVNHX0NNU0dfQ0xPRVhFQyIJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzb2Nrb3B0aW9uc1tdID0geworI2lmZGVmIFNPX0FDQ0VQVENPTk4KKwl7IFNPX0FDQ0VQVENPTk4sCSJTT19BQ0NFUFRDT05OIgl9LAorI2VuZGlmCisjaWZkZWYgU09fQUxMUkFXCisJeyBTT19BTExSQVcsCSJTT19BTExSQVciCX0sCisjZW5kaWYKKyNpZmRlZiBTT19BVFRBQ0hfRklMVEVSCisJeyBTT19BVFRBQ0hfRklMVEVSLAkiU09fQVRUQUNIX0ZJTFRFUiIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX0JJTkRUT0RFVklDRQorCXsgU09fQklORFRPREVWSUNFLAkiU09fQklORFRPREVWSUNFIgl9LAorI2VuZGlmCisjaWZkZWYgU09fQlJPQURDQVNUCisJeyBTT19CUk9BRENBU1QsCSJTT19CUk9BRENBU1QiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19CU0RDT01QQVQKKwl7IFNPX0JTRENPTVBBVCwJIlNPX0JTRENPTVBBVCIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX0RFQlVHCisJeyBTT19ERUJVRywJIlNPX0RFQlVHIgl9LAorI2VuZGlmCisjaWZkZWYgU09fREVUQUNIX0ZJTFRFUgorCXsgU09fREVUQUNIX0ZJTFRFUiwJIlNPX0RFVEFDSF9GSUxURVIiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19ET05UUk9VVEUKKwl7IFNPX0RPTlRST1VURSwJIlNPX0RPTlRST1VURSIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX0VSUk9SCisJeyBTT19FUlJPUiwJIlNPX0VSUk9SIgl9LAorI2VuZGlmCisjaWZkZWYgU09fSUNTCisJeyBTT19JQ1MsCSJTT19JQ1MiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19JTUFTT0NLRVQKKwl7IFNPX0lNQVNPQ0tFVCwJIlNPX0lNQVNPQ0tFVCIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX0tFRVBBTElWRQorCXsgU09fS0VFUEFMSVZFLAkiU09fS0VFUEFMSVZFIgl9LAorI2VuZGlmCisjaWZkZWYgU09fTElOR0VSCisJeyBTT19MSU5HRVIsCSJTT19MSU5HRVIiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19MSVNURU5JTkcKKwl7IFNPX0xJU1RFTklORywJIlNPX0xJU1RFTklORyIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX01HTVQKKwl7IFNPX01HTVQsCSJTT19NR01UIgl9LAorI2VuZGlmCisjaWZkZWYgU09fTk9fQ0hFQ0sKKwl7IFNPX05PX0NIRUNLLAkiU09fTk9fQ0hFQ0siCX0sCisjZW5kaWYKKyNpZmRlZiBTT19PT0JJTkxJTkUKKwl7IFNPX09PQklOTElORSwJIlNPX09PQklOTElORSIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX09SRFJFTAorCXsgU09fT1JEUkVMLAkiU09fT1JEUkVMIgl9LAorI2VuZGlmCisjaWZkZWYgU09fUEFSQUxMRUxTVlIKKwl7IFNPX1BBUkFMTEVMU1ZSLAkiU09fUEFSQUxMRUxTVlIiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19QQVNTQ1JFRAorCXsgU09fUEFTU0NSRUQsCSJTT19QQVNTQ1JFRCIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX1BFRVJDUkVECisJeyBTT19QRUVSQ1JFRCwJIlNPX1BFRVJDUkVEIgl9LAorI2VuZGlmCisjaWZkZWYgU09fUEVFUk5BTUUKKwl7IFNPX1BFRVJOQU1FLAkiU09fUEVFUk5BTUUiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19QRUVSU0VDCisJeyBTT19QRUVSU0VDLAkiU09fUEVFUlNFQyIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX1BSSU9SSVRZCisJeyBTT19QUklPUklUWSwJIlNPX1BSSU9SSVRZIgl9LAorI2VuZGlmCisjaWZkZWYgU09fUFJPVE9UWVBFCisJeyBTT19QUk9UT1RZUEUsCSJTT19QUk9UT1RZUEUiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19SQ1ZCVUYKKwl7IFNPX1JDVkJVRiwJIlNPX1JDVkJVRiIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX1JDVkxPV0FUCisJeyBTT19SQ1ZMT1dBVCwJIlNPX1JDVkxPV0FUIgl9LAorI2VuZGlmCisjaWZkZWYgU09fUkNWVElNRU8KKwl7IFNPX1JDVlRJTUVPLAkiU09fUkNWVElNRU8iCX0sCisjZW5kaWYKKyNpZmRlZiBTT19SRFdSCisJeyBTT19SRFdSLAkiU09fUkRXUiIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX1JFVVNFQUREUgorCXsgU09fUkVVU0VBRERSLAkiU09fUkVVU0VBRERSIgl9LAorI2VuZGlmCisjaWZkZWYgU09fUkVVU0VQT1JUCisJeyBTT19SRVVTRVBPUlQsCSJTT19SRVVTRVBPUlQiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19TRUNVUklUWV9BVVRIRU5USUNBVElPTgorCXsgU09fU0VDVVJJVFlfQVVUSEVOVElDQVRJT04sIlNPX1NFQ1VSSVRZX0FVVEhFTlRJQ0FUSU9OIn0sCisjZW5kaWYKKyNpZmRlZiBTT19TRUNVUklUWV9FTkNSWVBUSU9OX05FVFdPUksKKwl7IFNPX1NFQ1VSSVRZX0VOQ1JZUFRJT05fTkVUV09SSywiU09fU0VDVVJJVFlfRU5DUllQVElPTl9ORVRXT1JLIn0sCisjZW5kaWYKKyNpZmRlZiBTT19TRUNVUklUWV9FTkNSWVBUSU9OX1RSQU5TUE9SVAorCXsgU09fU0VDVVJJVFlfRU5DUllQVElPTl9UUkFOU1BPUlQsIlNPX1NFQ1VSSVRZX0VOQ1JZUFRJT05fVFJBTlNQT1JUIn0sCisjZW5kaWYKKyNpZmRlZiBTT19TRU1BCisJeyBTT19TRU1BLAkiU09fU0VNQSIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX1NOREJVRgorCXsgU09fU05EQlVGLAkiU09fU05EQlVGIgl9LAorI2VuZGlmCisjaWZkZWYgU09fU05ETE9XQVQKKwl7IFNPX1NORExPV0FULAkiU09fU05ETE9XQVQiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19TTkRUSU1FTworCXsgU09fU05EVElNRU8sCSJTT19TTkRUSU1FTyIJfSwKKyNlbmRpZgorI2lmZGVmIFNPX1RJTUVTVEFNUAorCXsgU09fVElNRVNUQU1QLAkiU09fVElNRVNUQU1QIgl9LAorI2VuZGlmCisjaWZkZWYgU09fVFlQRQorCXsgU09fVFlQRSwJIlNPX1RZUEUiCX0sCisjZW5kaWYKKyNpZmRlZiBTT19VU0VMT09QQkFDSworCXsgU09fVVNFTE9PUEJBQ0ssCSJTT19VU0VMT09QQkFDSyIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworCisjaWYgIWRlZmluZWQgKFNPTF9JUCkgJiYgZGVmaW5lZCAoSVBQUk9UT19JUCkKKyNkZWZpbmUgU09MX0lQIElQUFJPVE9fSVAKKyNlbmRpZgorCisjaWZkZWYgU09MX0lQCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja2lwb3B0aW9uc1tdID0geworI2lmZGVmIElQX1RPUworCXsgSVBfVE9TLAkJIklQX1RPUyIJCX0sCisjZW5kaWYKKyNpZmRlZiBJUF9UVEwKKwl7IElQX1RUTCwJCSJJUF9UVEwiCQl9LAorI2VuZGlmCisjaWZkZWYgSVBfSERSSU5DTAorCXsgSVBfSERSSU5DTCwJCSJJUF9IRFJJTkNMIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQX09QVElPTlMKKwl7IElQX09QVElPTlMsCQkiSVBfT1BUSU9OUyIJCX0sCisjZW5kaWYKKyNpZmRlZiBJUF9ST1VURVJfQUxFUlQKKwl7IElQX1JPVVRFUl9BTEVSVCwJIklQX1JPVVRFUl9BTEVSVCIJfSwKKyNlbmRpZgorI2lmZGVmIElQX1JFQ1ZPUFRJT05TCisJeyBJUF9SRUNWT1BUSU9OUywJIklQX1JFQ1ZPUFRJT05TIgl9LAorI2VuZGlmCisjaWZkZWYgSVBfUkVDVk9QVFMKKwl7IElQX1JFQ1ZPUFRTLAkJIklQX1JFQ1ZPUFRTIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQX1JFQ1ZSRVRPUFRTCisJeyBJUF9SRUNWUkVUT1BUUywJIklQX1JFQ1ZSRVRPUFRTIgl9LAorI2VuZGlmCisjaWZkZWYgSVBfUkVDVkRTVEFERFIKKwl7IElQX1JFQ1ZEU1RBRERSLAkiSVBfUkVDVkRTVEFERFIiCX0sCisjZW5kaWYKKyNpZmRlZiBJUF9SRVRPUFRTCisJeyBJUF9SRVRPUFRTLAkJIklQX1JFVE9QVFMiCQl9LAorI2VuZGlmCisjaWZkZWYgSVBfUEtUSU5GTworCXsgSVBfUEtUSU5GTywJCSJJUF9QS1RJTkZPIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQX1BLVE9QVElPTlMKKwl7IElQX1BLVE9QVElPTlMsCSJJUF9QS1RPUFRJT05TIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQX01UVV9ESVNDT1ZFUgorCXsgSVBfTVRVX0RJU0NPVkVSLAkiSVBfTVRVX0RJU0NPVkVSIgl9LAorI2VuZGlmCisjaWZkZWYgSVBfUkVDVkVSUgorCXsgSVBfUkVDVkVSUiwJCSJJUF9SRUNWRVJSIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQX1JFQ1ZUVEwKKwl7IElQX1JFQ1ZUVEwsCQkiSVBfUkVDVlRUTCIJCX0sCisjZW5kaWYKKyNpZmRlZiBJUF9SRUNWVE9TCisJeyBJUF9SRUNWVE9TLAkJIklQX1JFQ1ZUT1MiCQl9LAorI2VuZGlmCisjaWZkZWYgSVBfTVRVCisJeyBJUF9NVFUsCQkiSVBfTVRVIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQX01VTFRJQ0FTVF9JRgorCXsgSVBfTVVMVElDQVNUX0lGLAkiSVBfTVVMVElDQVNUX0lGIgl9LAorI2VuZGlmCisjaWZkZWYgSVBfTVVMVElDQVNUX1RUTAorCXsgSVBfTVVMVElDQVNUX1RUTCwJIklQX01VTFRJQ0FTVF9UVEwiCX0sCisjZW5kaWYKKyNpZmRlZiBJUF9NVUxUSUNBU1RfTE9PUAorCXsgSVBfTVVMVElDQVNUX0xPT1AsCSJJUF9NVUxUSUNBU1RfTE9PUCIJfSwKKyNlbmRpZgorI2lmZGVmIElQX0FERF9NRU1CRVJTSElQCisJeyBJUF9BRERfTUVNQkVSU0hJUCwJIklQX0FERF9NRU1CRVJTSElQIgl9LAorI2VuZGlmCisjaWZkZWYgSVBfRFJPUF9NRU1CRVJTSElQCisJeyBJUF9EUk9QX01FTUJFUlNISVAsCSJJUF9EUk9QX01FTUJFUlNISVAiCX0sCisjZW5kaWYKKyNpZmRlZiBJUF9CUk9BRENBU1RfSUYKKwl7IElQX0JST0FEQ0FTVF9JRiwJIklQX0JST0FEQ0FTVF9JRiIJfSwKKyNlbmRpZgorI2lmZGVmIElQX1JFQ1ZJRklOREVYCisJeyBJUF9SRUNWSUZJTkRFWCwJIklQX1JFQ1ZJRklOREVYIgl9LAorI2VuZGlmCisjaWZkZWYgSVBfTVNGSUxURVIKKwl7IElQX01TRklMVEVSLAkJIklQX01TRklMVEVSIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1DQVNUX01TRklMVEVSCisJeyBNQ0FTVF9NU0ZJTFRFUiwJIk1DQVNUX01TRklMVEVSIgl9LAorI2VuZGlmCisjaWZkZWYgSVBfRlJFRUJJTkQKKwl7IElQX0ZSRUVCSU5ELAkJIklQX0ZSRUVCSU5EIgkJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQkJfSwKK307CisjZW5kaWYgLyogU09MX0lQICovCisKKyNpZmRlZiBTT0xfSVBWNgorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNvY2tpcHY2b3B0aW9uc1tdID0geworI2lmZGVmIElQVjZfQUREUkZPUk0KKwl7IElQVjZfQUREUkZPUk0sCSJJUFY2X0FERFJGT1JNIgkJfSwKKyNlbmRpZgorI2lmZGVmIE1DQVNUX0ZJTFRFUgorCXsgTUNBU1RfRklMVEVSLAkJIk1DQVNUX0ZJTFRFUiIJCX0sCisjZW5kaWYKKyNpZmRlZiBJUFY2X1BLVE9QVElPTlMKKwl7IElQVjZfUEtUT1BUSU9OUywJIklQVjZfUEtUT1BUSU9OUyIJfSwKKyNlbmRpZgorI2lmZGVmIElQVjZfTVRVCisJeyBJUFY2X01UVSwJCSJJUFY2X01UVSIJCX0sCisjZW5kaWYKKyNpZmRlZiBJUFY2X1Y2T05MWQorCXsgSVBWNl9WNk9OTFksCQkiSVBWNl9WNk9OTFkiCQl9LAorI2VuZGlmCisjaWZkZWYgSVBWNl9QS1RJTkZPCisJeyBJUFY2X1BLVElORk8sCQkiSVBWNl9QS1RJTkZPIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQVjZfSE9QTElNSVQKKwl7IElQVjZfSE9QTElNSVQsCSJJUFY2X0hPUExJTUlUIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQVjZfUlRIRFIKKwl7IElQVjZfUlRIRFIsCQkiSVBWNl9SVEhEUiIJCX0sCisjZW5kaWYKKyNpZmRlZiBJUFY2X0hPUE9QVFMKKwl7IElQVjZfSE9QT1BUUywJCSJJUFY2X0hPUE9QVFMiCQl9LAorI2VuZGlmCisjaWZkZWYgSVBWNl9EU1RPUFRTCisJeyBJUFY2X0RTVE9QVFMsCQkiSVBWNl9EU1RPUFRTIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQVjZfRkxPV0lORk8KKwl7IElQVjZfRkxPV0lORk8sCSJJUFY2X0ZMT1dJTkZPIgkJfSwKKyNlbmRpZgorI2lmZGVmIElQVjZfVU5JQ0FTVF9IT1BTCisJeyBJUFY2X1VOSUNBU1RfSE9QUywJIklQVjZfVU5JQ0FTVF9IT1BTIgl9LAorI2VuZGlmCisjaWZkZWYgSVBWNl9NVUxUSUNBU1RfSE9QUworCXsgSVBWNl9NVUxUSUNBU1RfSE9QUywJIklQVjZfTVVMVElDQVNUX0hPUFMiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFY2X01VTFRJQ0FTVF9MT09QCisJeyBJUFY2X01VTFRJQ0FTVF9MT09QLAkiSVBWNl9NVUxUSUNBU1RfTE9PUCIJfSwKKyNlbmRpZgorI2lmZGVmIElQVjZfTVVMVElDQVNUX0lGCisJeyBJUFY2X01VTFRJQ0FTVF9JRiwJIklQVjZfTVVMVElDQVNUX0lGIgl9LAorI2VuZGlmCisjaWZkZWYgSVBWNl9NVFVfRElTQ09WRVIKKwl7IElQVjZfTVRVX0RJU0NPVkVSLAkiSVBWNl9NVFVfRElTQ09WRVIiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFY2X1JFQ1ZFUlIKKwl7IElQVjZfUkVDVkVSUiwJCSJJUFY2X1JFQ1ZFUlIiCQl9LAorI2VuZGlmCisjaWZkZWYgSVBWNl9GTE9XSU5GT19TRU5ECisJeyBJUFY2X0ZMT1dJTkZPX1NFTkQsCSJJUFY2X0ZMT1dJTkZPX1NFTkQiCX0sCisjZW5kaWYKKyNpZmRlZiBJUFY2X0FERF9NRU1CRVJTSElQCisJeyBJUFY2X0FERF9NRU1CRVJTSElQLAkiSVBWNl9BRERfTUVNQkVSU0hJUCIJfSwKKyNlbmRpZgorI2lmZGVmIElQVjZfRFJPUF9NRU1CRVJTSElQCisJeyBJUFY2X0RST1BfTUVNQkVSU0hJUCwJIklQVjZfRFJPUF9NRU1CRVJTSElQIgl9LAorI2VuZGlmCisjaWZkZWYgSVBWNl9ST1VURVJfQUxFUlQKKwl7IElQVjZfUk9VVEVSX0FMRVJULAkiSVBWNl9ST1VURVJfQUxFUlQiCX0sCisjZW5kaWYKKwl7IDAsCQkJTlVMTAkJCX0sCit9OworI2VuZGlmIC8qIFNPTF9JUFY2ICovCisKKyNpZmRlZiBTT0xfSVBYCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja2lweG9wdGlvbnNbXSA9IHsKKwl7IElQWF9UWVBFLCAgICAgIklQWF9UWVBFIiAgICAgIH0sCisJeyAwLCAgICAgICAgICAgIE5VTEwgICAgICAgICAgICB9LAorfTsKKyNlbmRpZiAvKiBTT0xfSVBYICovCisKKyNpZmRlZiBTT0xfUkFXCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja3Jhd29wdGlvbnNbXSA9IHsKKyNpZiBkZWZpbmVkKElDTVBfRklMVEVSKQorCXsgSUNNUF9GSUxURVIsCQkiSUNNUF9GSUxURVIiCX0sCisjZW5kaWYKKwl7IDAsCQkJTlVMTAkJfSwKK307CisjZW5kaWYgLyogU09MX1JBVyAqLworCisjaWZkZWYgU09MX1BBQ0tFVAorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNvY2twYWNrZXRvcHRpb25zW10gPSB7CisjaWZkZWYgUEFDS0VUX0FERF9NRU1CRVJTSElQCisJeyBQQUNLRVRfQUREX01FTUJFUlNISVAsCSJQQUNLRVRfQUREX01FTUJFUlNISVAiCX0sCisjZW5kaWYKKyNpZmRlZiBQQUNLRVRfRFJPUF9NRU1CRVJTSElQCisJeyBQQUNLRVRfRFJPUF9NRU1CRVJTSElQLAkiUEFDS0VUX0RST1BfTUVNQkVSU0hJUCJ9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfUkVDVl9PVVRQVVQpCisJeyBQQUNLRVRfUkVDVl9PVVRQVVQsCQkiUEFDS0VUX1JFQ1ZfT1VUUFVUIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfUlhfUklORykKKwl7IFBBQ0tFVF9SWF9SSU5HLAkJIlBBQ0tFVF9SWF9SSU5HIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQQUNLRVRfU1RBVElTVElDUykKKwl7IFBBQ0tFVF9TVEFUSVNUSUNTLAkJIlBBQ0tFVF9TVEFUSVNUSUNTIgl9LAorI2VuZGlmCisJeyAwLAkJCQlOVUxMCQkJfSwKK307CisjZW5kaWYgLyogU09MX1BBQ0tFVCAqLworCisjaWYgICFkZWZpbmVkIChTT0xfVENQKSAmJiBkZWZpbmVkIChJUFBST1RPX1RDUCkKKyNkZWZpbmUgU09MX1RDUCBJUFBST1RPX1RDUAorI2VuZGlmCisKKyNpZmRlZiBTT0xfVENQCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc29ja3RjcG9wdGlvbnNbXSA9IHsKKwl7IFRDUF9OT0RFTEFZLAkJIlRDUF9OT0RFTEFZIgl9LAorCXsgVENQX01BWFNFRywJCSJUQ1BfTUFYU0VHIgl9LAorI2lmIGRlZmluZWQoVENQX0NPUkspCisJeyBUQ1BfQ09SSywJCSJUQ1BfQ09SSyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoVENQX0tFRVBJRExFKQorCXsgVENQX0tFRVBJRExFLAkJIlRDUF9LRUVQSURMRSIgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoVENQX0tFRVBJTlRWTCkKKwl7IFRDUF9LRUVQSU5UVkwsCSJUQ1BfS0VFUElOVFZMIiB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChUQ1BfS0VFUENOVCkKKwl7IFRDUF9LRUVQQ05ULAkJIlRDUF9LRUVQQ05UIiB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChUQ1BfTktFRVApCisJeyBUQ1BfTktFRVAsCQkiVENQX05LRUVQIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChUQ1BfU1lOQ05UKQorCXsgVENQX1NZTkNOVCwJCSJUQ1BfU1lOQ05UIiB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChUQ1BfTElOR0VSMikKKwl7IFRDUF9MSU5HRVIyLAkJIlRDUF9MSU5HRVIyIiB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChUQ1BfREVGRVJfQUNDRVBUKQorCXsgVENQX0RFRkVSX0FDQ0VQVCwJIlRDUF9ERUZFUl9BQ0NFUFQiIH0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKFRDUF9XSU5ET1dfQ0xBTVApCisJeyBUQ1BfV0lORE9XX0NMQU1QLAkiVENQX1dJTkRPV19DTEFNUCIgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoVENQX0lORk8pCisJeyBUQ1BfSU5GTywJCSJUQ1BfSU5GTyIgfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoVENQX1FVSUNLQUNLKQorCXsgVENQX1FVSUNLQUNLLAkJIlRDUF9RVUlDS0FDSyIgfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQl9LAorfTsKKyNlbmRpZiAvKiBTT0xfVENQICovCisKKyNpZmRlZiBTT0xfUkFXCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgaWNtcGZpbHRlcmZsYWdzW10gPSB7CisjaWYgZGVmaW5lZChJQ01QX0VDSE9SRVBMWSkKKwl7ICgxPDxJQ01QX0VDSE9SRVBMWSksCQkiSUNNUF9FQ0hPUkVQTFkiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKElDTVBfREVTVF9VTlJFQUNIKQorCXsgKDE8PElDTVBfREVTVF9VTlJFQUNIKSwJIklDTVBfREVTVF9VTlJFQUNIIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChJQ01QX1NPVVJDRV9RVUVOQ0gpCisJeyAoMTw8SUNNUF9TT1VSQ0VfUVVFTkNIKSwJIklDTVBfU09VUkNFX1FVRU5DSCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoSUNNUF9SRURJUkVDVCkKKwl7ICgxPDxJQ01QX1JFRElSRUNUKSwJCSJJQ01QX1JFRElSRUNUIgkJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoSUNNUF9FQ0hPKQorCXsgKDE8PElDTVBfRUNITyksCQkiSUNNUF9FQ0hPIgkJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoSUNNUF9USU1FX0VYQ0VFREVEKQorCXsgKDE8PElDTVBfVElNRV9FWENFRURFRCksCSJJQ01QX1RJTUVfRVhDRUVERUQiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKElDTVBfUEFSQU1FVEVSUFJPQikKKwl7ICgxPDxJQ01QX1BBUkFNRVRFUlBST0IpLAkiSUNNUF9QQVJBTUVURVJQUk9CIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChJQ01QX1RJTUVTVEFNUCkKKwl7ICgxPDxJQ01QX1RJTUVTVEFNUCksCQkiSUNNUF9USU1FU1RBTVAiCX0sCisjZW5kaWYKKyNpZiBkZWZpbmVkKElDTVBfVElNRVNUQU1QUkVQTFkpCisJeyAoMTw8SUNNUF9USU1FU1RBTVBSRVBMWSksCSJJQ01QX1RJTUVTVEFNUFJFUExZIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChJQ01QX0lORk9fUkVRVUVTVCkKKwl7ICgxPDxJQ01QX0lORk9fUkVRVUVTVCksCSJJQ01QX0lORk9fUkVRVUVTVCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoSUNNUF9JTkZPX1JFUExZKQorCXsgKDE8PElDTVBfSU5GT19SRVBMWSksCQkiSUNNUF9JTkZPX1JFUExZIgl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChJQ01QX0FERFJFU1MpCisJeyAoMTw8SUNNUF9BRERSRVNTKSwJCSJJQ01QX0FERFJFU1MiCQl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChJQ01QX0FERFJFU1NSRVBMWSkKKwl7ICgxPDxJQ01QX0FERFJFU1NSRVBMWSksCSJJQ01QX0FERFJFU1NSRVBMWSIJfSwKKyNlbmRpZgorCXsgMCwJCQkJTlVMTAkJCX0sCit9OworI2VuZGlmIC8qIFNPTF9SQVcgKi8KKworI2lmIGRlZmluZWQoQUZfUEFDS0VUKSAvKiBmcm9tIGUuZy4gbGludXgvaWZfcGFja2V0LmggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhZl9wYWNrZXRfdHlwZXNbXSA9IHsKKyNpZiBkZWZpbmVkKFBBQ0tFVF9IT1NUKQorCXsgUEFDS0VUX0hPU1QsCQkJIlBBQ0tFVF9IT1NUIgkJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUEFDS0VUX0JST0FEQ0FTVCkKKwl7IFBBQ0tFVF9CUk9BRENBU1QsCQkiUEFDS0VUX0JST0FEQ0FTVCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUEFDS0VUX01VTFRJQ0FTVCkKKwl7IFBBQ0tFVF9NVUxUSUNBU1QsCQkiUEFDS0VUX01VTFRJQ0FTVCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUEFDS0VUX09USEVSSE9TVCkKKwl7IFBBQ0tFVF9PVEhFUkhPU1QsCQkiUEFDS0VUX09USEVSSE9TVCIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUEFDS0VUX09VVEdPSU5HKQorCXsgUEFDS0VUX09VVEdPSU5HLAkJIlBBQ0tFVF9PVVRHT0lORyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUEFDS0VUX0xPT1BCQUNLKQorCXsgUEFDS0VUX0xPT1BCQUNLLAkJIlBBQ0tFVF9MT09QQkFDSyIJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUEFDS0VUX0ZBU1RST1VURSkKKwl7IFBBQ0tFVF9GQVNUUk9VVEUsCQkiUEFDS0VUX0ZBU1RST1VURSIJfSwKKyNlbmRpZgorCXsgMCwJCQkJTlVMTAkJCX0sCit9OworI2VuZGlmIC8qIGRlZmluZWQoQUZfUEFDS0VUKSAqLworCisKK3ZvaWQKK3ByaW50c29jayhzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgaW50IGFkZHJsZW4pCit7CisJdW5pb24geworCQljaGFyIHBhZFsxMjhdOworCQlzdHJ1Y3Qgc29ja2FkZHIgc2E7CisJCXN0cnVjdCBzb2NrYWRkcl9pbiBzaW47CisJCXN0cnVjdCBzb2NrYWRkcl91biBzYXU7CisjaWZkZWYgSEFWRV9JTkVUX05UT1AKKwkJc3RydWN0IHNvY2thZGRyX2luNiBzYTY7CisjZW5kaWYKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKEFGX0lQWCkKKwkJc3RydWN0IHNvY2thZGRyX2lweCBzaXB4OworI2VuZGlmCisjaWZkZWYgQUZfUEFDS0VUCisJCXN0cnVjdCBzb2NrYWRkcl9sbCBsbDsKKyNlbmRpZgorI2lmZGVmIEFGX05FVExJTksKKwkJc3RydWN0IHNvY2thZGRyX25sIG5sOworI2VuZGlmCisJfSBhZGRyYnVmOworCWNoYXIgc3RyaW5nX2FkZHJbMTAwXTsKKworCWlmIChhZGRyID09IDApIHsKKwkJdHByaW50ZigiTlVMTCIpOworCQlyZXR1cm47CisJfQorCWlmICghdmVyYm9zZSh0Y3ApKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChhZGRybGVuIDwgMiB8fCBhZGRybGVuID4gc2l6ZW9mKGFkZHJidWYpKQorCQlhZGRybGVuID0gc2l6ZW9mKGFkZHJidWYpOworCisJbWVtc2V0KCZhZGRyYnVmLCAwLCBzaXplb2YoYWRkcmJ1ZikpOworCWlmICh1bW92ZW4odGNwLCBhZGRyLCBhZGRybGVuLCBhZGRyYnVmLnBhZCkgPCAwKSB7CisJCXRwcmludGYoInsuLi59Iik7CisJCXJldHVybjsKKwl9CisJYWRkcmJ1Zi5wYWRbc2l6ZW9mKGFkZHJidWYucGFkKSAtIDFdID0gJ1wwJzsKKworCXRwcmludGYoIntzYV9mYW1pbHk9Iik7CisJcHJpbnR4dmFsKGFkZHJmYW1zLCBhZGRyYnVmLnNhLnNhX2ZhbWlseSwgIkFGXz8/PyIpOworCXRwcmludGYoIiwgIik7CisKKwlzd2l0Y2ggKGFkZHJidWYuc2Euc2FfZmFtaWx5KSB7CisJY2FzZSBBRl9VTklYOgorCQlpZiAoYWRkcmxlbiA9PSAyKSB7CisJCQl0cHJpbnRmKCJOVUxMIik7CisJCX0gZWxzZSBpZiAoYWRkcmJ1Zi5zYXUuc3VuX3BhdGhbMF0pIHsKKwkJCXRwcmludGYoInBhdGg9Iik7CisJCQlwcmludHBhdGhuKHRjcCwgYWRkciArIDIsIHN0cmxlbihhZGRyYnVmLnNhdS5zdW5fcGF0aCkpOworCQl9IGVsc2UgeworCQkJdHByaW50ZigicGF0aD1AIik7CisJCQlwcmludHBhdGhuKHRjcCwgYWRkciArIDMsIHN0cmxlbihhZGRyYnVmLnNhdS5zdW5fcGF0aCArIDEpKTsKKwkJfQorCQlicmVhazsKKwljYXNlIEFGX0lORVQ6CisJCXRwcmludGYoInNpbl9wb3J0PWh0b25zKCV1KSwgc2luX2FkZHI9aW5ldF9hZGRyKFwiJXNcIikiLAorCQkJbnRvaHMoYWRkcmJ1Zi5zaW4uc2luX3BvcnQpLCBpbmV0X250b2EoYWRkcmJ1Zi5zaW4uc2luX2FkZHIpKTsKKwkJYnJlYWs7CisjaWZkZWYgSEFWRV9JTkVUX05UT1AKKwljYXNlIEFGX0lORVQ2OgorCQlpbmV0X250b3AoQUZfSU5FVDYsICZhZGRyYnVmLnNhNi5zaW42X2FkZHIsIHN0cmluZ19hZGRyLCBzaXplb2Yoc3RyaW5nX2FkZHIpKTsKKwkJdHByaW50Zigic2luNl9wb3J0PWh0b25zKCV1KSwgaW5ldF9wdG9uKEFGX0lORVQ2LCBcIiVzXCIsICZzaW42X2FkZHIpLCBzaW42X2Zsb3dpbmZvPSV1IiwKKwkJCQludG9ocyhhZGRyYnVmLnNhNi5zaW42X3BvcnQpLCBzdHJpbmdfYWRkciwKKwkJCQlhZGRyYnVmLnNhNi5zaW42X2Zsb3dpbmZvKTsKKyNpZmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9JTjZfU0lONl9TQ09QRV9JRAorCQl7CisjaWYgZGVmaW5lZChIQVZFX0lGX0lOREVYVE9OQU1FKSAmJiBkZWZpbmVkKElONl9JU19BRERSX0xJTktMT0NBTCkgJiYgZGVmaW5lZChJTjZfSVNfQUREUl9NQ19MSU5LTE9DQUwpCisJCSAgICBpbnQgbnVtZXJpY3Njb3BlID0gMDsKKwkJICAgIGlmIChJTjZfSVNfQUREUl9MSU5LTE9DQUwgKCZhZGRyYnVmLnNhNi5zaW42X2FkZHIpCisJCQkgICAgfHwgSU42X0lTX0FERFJfTUNfTElOS0xPQ0FMICgmYWRkcmJ1Zi5zYTYuc2luNl9hZGRyKSkgeworCQkJY2hhciBzY29wZWJ1ZltJRk5BTVNJWiArIDFdOworCisJCQlpZiAoaWZfaW5kZXh0b25hbWUgKGFkZHJidWYuc2E2LnNpbjZfc2NvcGVfaWQsIHNjb3BlYnVmKSA9PSBOVUxMKQorCQkJICAgIG51bWVyaWNzY29wZSsrOworCQkJZWxzZQorCQkJICAgIHRwcmludGYoIiwgc2luNl9zY29wZV9pZD1pZl9uYW1ldG9pbmRleChcIiVzXCIpIiwgc2NvcGVidWYpOworCQkgICAgfSBlbHNlCisJCQludW1lcmljc2NvcGUrKzsKKworCQkgICAgaWYgKG51bWVyaWNzY29wZSkKKyNlbmRpZgorCQkJdHByaW50ZigiLCBzaW42X3Njb3BlX2lkPSV1IiwgYWRkcmJ1Zi5zYTYuc2luNl9zY29wZV9pZCk7CisJCX0KKyNlbmRpZgorCQkgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBkZWZpbmVkKEFGX0lQWCkgJiYgZGVmaW5lZChsaW51eCkKKwljYXNlIEFGX0lQWDoKKwkJeworCQkJaW50IGk7CisJCQl0cHJpbnRmKCJzaXB4X3BvcnQ9aHRvbnMoJXUpLCAiLAorCQkJCQludG9ocyhhZGRyYnVmLnNpcHguc2lweF9wb3J0KSk7CisJCQkvKiBZZXMsIEkga25vdywgdGhpcyBkb2VzIG5vdCBsb29rIHRvbworCQkJICogc3RyYWNlLWlzaCwgYnV0IG90aGVyd2lzZSB0aGUgSVBYCisJCQkgKiBhZGRyZXNzZXMganVzdCBsb29rIG1vbnN0cm91cy4uLgorCQkJICogQW55d2F5cywgZmVlbCBmcmVlIGlmIHlvdSBkb24ndCBsaWtlCisJCQkgKiB0aGlzIHdheS4uIDopCisJCQkgKi8KKwkJCXRwcmludGYoIiUwOGx4OiIsICh1bnNpZ25lZCBsb25nKW50b2hsKGFkZHJidWYuc2lweC5zaXB4X25ldHdvcmspKTsKKwkJCWZvciAoaSA9IDA7IGk8SVBYX05PREVfTEVOOyBpKyspCisJCQkJdHByaW50ZigiJTAyeCIsIGFkZHJidWYuc2lweC5zaXB4X25vZGVbaV0pOworCQkJdHByaW50ZigiL1slMDJ4XSIsIGFkZHJidWYuc2lweC5zaXB4X3R5cGUpOworCQl9CisJCWJyZWFrOworI2VuZGlmIC8qIEFGX0lQWCAmJiBsaW51eCAqLworI2lmZGVmIEFGX1BBQ0tFVAorCWNhc2UgQUZfUEFDS0VUOgorCQl7CisJCQlpbnQgaTsKKwkJCXRwcmludGYoInByb3RvPSUjMDR4LCBpZiVkLCBwa3R0eXBlPSIsCisJCQkJCW50b2hzKGFkZHJidWYubGwuc2xsX3Byb3RvY29sKSwKKwkJCQkJYWRkcmJ1Zi5sbC5zbGxfaWZpbmRleCk7CisJCQlwcmludHh2YWwoYWZfcGFja2V0X3R5cGVzLCBhZGRyYnVmLmxsLnNsbF9wa3R0eXBlLCAiPyIpOworCQkJdHByaW50ZigiLCBhZGRyKCVkKT17JWQsICIsCisJCQkJCWFkZHJidWYubGwuc2xsX2hhbGVuLAorCQkJCQlhZGRyYnVmLmxsLnNsbF9oYXR5cGUpOworCQkJZm9yIChpPTA7IGk8YWRkcmJ1Zi5sbC5zbGxfaGFsZW47IGkrKykKKwkJCQl0cHJpbnRmKCIlMDJ4IiwgYWRkcmJ1Zi5sbC5zbGxfYWRkcltpXSk7CisJCX0KKwkJYnJlYWs7CisKKyNlbmRpZiAvKiBBRl9BUEFDS0VUICovCisjaWZkZWYgQUZfTkVUTElOSworCWNhc2UgQUZfTkVUTElOSzoKKwkJdHByaW50ZigicGlkPSVkLCBncm91cHM9JTA4eCIsIGFkZHJidWYubmwubmxfcGlkLCBhZGRyYnVmLm5sLm5sX2dyb3Vwcyk7CisJCWJyZWFrOworI2VuZGlmIC8qIEFGX05FVExJTksgKi8KKwkvKiBBRl9BWDI1IEFGX0FQUExFVEFMSyBBRl9ORVRST00gQUZfQlJJREdFIEFGX0FBTDUKKwlBRl9YMjUgQUZfUk9TRSBldGMuIHN0aWxsIG5lZWQgdG8gYmUgZG9uZSAqLworCisJZGVmYXVsdDoKKwkJdHByaW50Zigic2FfZGF0YT0iKTsKKwkJcHJpbnRzdHIodGNwLCAobG9uZykgJigoc3RydWN0IHNvY2thZGRyICopIGFkZHIpLT5zYV9kYXRhLAorCQkJc2l6ZW9mIGFkZHJidWYuc2Euc2FfZGF0YSk7CisJCWJyZWFrOworCX0KKwl0cHJpbnRmKCJ9Iik7Cit9CisKKyNpZiBIQVZFX1NFTkRNU0cKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzY212YWxzW10gPSB7CisjaWZkZWYgU0NNX1JJR0hUUworCXsgU0NNX1JJR0hUUywJCSJTQ01fUklHSFRTIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNDTV9DUkVERU5USUFMUworCXsgU0NNX0NSRURFTlRJQUxTLAkiU0NNX0NSRURFTlRJQUxTIgl9LAorI2VuZGlmCisJeyAwLAkJCU5VTEwJCQl9Cit9OworCitzdGF0aWMgdm9pZAorcHJpbnRjbXNnaGRyKHRjcCwgYWRkciwgbGVuKQorc3RydWN0IHRjYiAqdGNwOwordW5zaWduZWQgbG9uZyBhZGRyOwordW5zaWduZWQgbG9uZyBsZW47Cit7CisJc3RydWN0IGNtc2doZHIgKmNtc2cgPSBsZW4gPCBzaXplb2Yoc3RydWN0IGNtc2doZHIpID8KKwkJCSAgICAgICBOVUxMIDogbWFsbG9jKGxlbik7CisJaWYgKGNtc2cgPT0gTlVMTCB8fCB1bW92ZW4odGNwLCBhZGRyLCBsZW4sIChjaGFyICopIGNtc2cpIDwgMCkgeworCQl0cHJpbnRmKCIsIG1zZ19jb250cm9sPSUjbHgiLCBhZGRyKTsKKwkJZnJlZShjbXNnKTsKKwkJcmV0dXJuOworCX0KKworCXRwcmludGYoIiwge2Ntc2dfbGVuPSV6dSwgY21zZ19sZXZlbD0iLCBjbXNnLT5jbXNnX2xlbik7CisJcHJpbnR4dmFsKHNvY2tldGxheWVycywgY21zZy0+Y21zZ19sZXZlbCwgIlNPTF8/Pz8iKTsKKwl0cHJpbnRmKCIsIGNtc2dfdHlwZT0iKTsKKworCWlmIChjbXNnLT5jbXNnX2xldmVsID09IFNPTF9TT0NLRVQpIHsKKwkJdW5zaWduZWQgbG9uZyBjbXNnX2xlbjsKKworCQlwcmludHh2YWwoc2NtdmFscywgY21zZy0+Y21zZ190eXBlLCAiU0NNXz8/PyIpOworCQljbXNnX2xlbiA9IChsZW4gPCBjbXNnLT5jbXNnX2xlbikgPyBsZW4gOiBjbXNnLT5jbXNnX2xlbjsKKworCQlpZiAoY21zZy0+Y21zZ190eXBlID09IFNDTV9SSUdIVFMKKwkJICAgICYmIENNU0dfTEVOKHNpemVvZihpbnQpKSA8PSBjbXNnX2xlbikgeworCQkJaW50ICpmZHMgPSAoaW50ICopIENNU0dfREFUQSAoY21zZyk7CisJCQlpbnQgZmlyc3QgPSAxOworCisJCQl0cHJpbnRmKCIsIHsiKTsKKwkJCXdoaWxlICgoY2hhciAqKSBmZHMgPCAoKGNoYXIgKikgY21zZyArIGNtc2dfbGVuKSkgeworCQkJCWlmICghZmlyc3QpCisJCQkJCXRwcmludGYoIiwgIik7CisJCQkJdHByaW50ZigiJWQiLCAqZmRzKyspOworCQkJCWZpcnN0ID0gMDsKKwkJCX0KKwkJCXRwcmludGYoIn19Iik7CisJCQlmcmVlKGNtc2cpOworCQkJcmV0dXJuOworCQl9CisJCWlmIChjbXNnLT5jbXNnX3R5cGUgPT0gU0NNX0NSRURFTlRJQUxTCisJCSAgICAmJiBDTVNHX0xFTihzaXplb2Yoc3RydWN0IHVjcmVkKSkgPD0gY21zZ19sZW4pIHsKKwkJCXN0cnVjdCB1Y3JlZCAqdWMgPSAoc3RydWN0IHVjcmVkICopIENNU0dfREFUQSAoY21zZyk7CisKKwkJCXRwcmludGYoIntwaWQ9JWxkLCB1aWQ9JWxkLCBnaWQ9JWxkfX0iLAorCQkJCShsb25nKXVjLT5waWQsIChsb25nKXVjLT51aWQsIChsb25nKXVjLT5naWQpOworCQkJZnJlZShjbXNnKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKwlmcmVlKGNtc2cpOworCXRwcmludGYoIiwgLi4ufSIpOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRtc2doZHIodGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworCXN0cnVjdCBtc2doZHIgbXNnOworCisJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJm1zZykgPCAwKSB7CisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJ7bXNnX25hbWUoJWQpPSIsIG1zZy5tc2dfbmFtZWxlbik7CisJcHJpbnRzb2NrKHRjcCwgKGxvbmcpbXNnLm1zZ19uYW1lLCBtc2cubXNnX25hbWVsZW4pOworCisJdHByaW50ZigiLCBtc2dfaW92KCVsdSk9IiwgKHVuc2lnbmVkIGxvbmcpbXNnLm1zZ19pb3ZsZW4pOworCXRwcmludF9pb3YodGNwLCAodW5zaWduZWQgbG9uZyltc2cubXNnX2lvdmxlbiwKKwkJICAgKHVuc2lnbmVkIGxvbmcpbXNnLm1zZ19pb3YpOworCisjaWZkZWYgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MCisJdHByaW50ZigiLCBtc2dfY29udHJvbGxlbj0lbHUiLCAodW5zaWduZWQgbG9uZyltc2cubXNnX2NvbnRyb2xsZW4pOworCWlmIChtc2cubXNnX2NvbnRyb2xsZW4pCisJCXByaW50Y21zZ2hkcih0Y3AsICh1bnNpZ25lZCBsb25nKSBtc2cubXNnX2NvbnRyb2wsCisJCQkgICAgIG1zZy5tc2dfY29udHJvbGxlbik7CisJdHByaW50ZigiLCBtc2dfZmxhZ3M9Iik7CisJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIG1zZy5tc2dfZmxhZ3MsICJNU0dfPz8/Iik7CisjZWxzZSAvKiAhSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MICovCisJdHByaW50ZigibXNnX2FjY3JpZ2h0cz0lI2x4LCBtc2dfYWNjcmlnaHRzbGVuPSV1IiwKKwkJKHVuc2lnbmVkIGxvbmcpIG1zZy5tc2dfYWNjcmlnaHRzLCBtc2cubXNnX2FjY3JpZ2h0c2xlbik7CisjZW5kaWYgLyogIUhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTCAqLworCXRwcmludGYoIn0iKTsKK30KKworI2VuZGlmIC8qIEhBVkVfU0VORE1TRyAqLworCitpbnQKK3N5c19zb2NrZXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbChkb21haW5zLCB0Y3AtPnVfYXJnWzBdLCAiUEZfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50eHZhbChzb2NrdHlwZXMsIHRjcC0+dV9hcmdbMV0sICJTT0NLXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMF0pIHsKKwkJY2FzZSBQRl9JTkVUOgorI2lmZGVmIFBGX0lORVQ2CisJCWNhc2UgUEZfSU5FVDY6CisjZW5kaWYKKwkJCXByaW50eHZhbChwcm90b2NvbHMsIHRjcC0+dV9hcmdbMl0sICJJUFBST1RPXz8/PyIpOworCQkJYnJlYWs7CisjaWZkZWYgUEZfSVBYCisJCWNhc2UgUEZfSVBYOgorCQkJLyogQlRXOiBJIGRvbid0IGJlbGlldmUgdGhpcy4uICovCisJCQl0cHJpbnRmKCJbIik7CisJCQlwcmludHh2YWwoZG9tYWlucywgdGNwLT51X2FyZ1syXSwgIlBGXz8/PyIpOworCQkJdHByaW50ZigiXSIpOworCQkJYnJlYWs7CisjZW5kaWYgLyogUEZfSVBYICovCisJCWRlZmF1bHQ6CisJCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCWJyZWFrOworCQl9CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19zb19zb2NrZXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCS8qIG5vdCBzdXJlIHJlYWxseSB3aGF0IHRoZXNlIGFyZ3MgYXJlLi4uIGJ1dCB0aGlzCisJCSAqIGlzIGhvdyB0cnVzcyBwcmludHMgaXQKKwkJICovCisJCXRwcmludGYoIiVsZCwgJWxkLCAlbGQsICIsCisJCSAgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbM10pOworCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbNF0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc29fc29ja2V0cGFpcih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkgIAkvKiBub3Qgc3VyZSB3aGF0IHRoaXMgYXJnIGlzICovCisJCXRwcmludGYoIjB4JWx4IiwgdGNwLT51X2FyZ1swXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19iaW5kKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHNvY2sodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2Nvbm5lY3QodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBzeXNfYmluZCh0Y3ApOworfQorCitpbnQKK3N5c19saXN0ZW4odGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgJWx1IiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19hY2NlcHQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIGlmICghdGNwLT51X2FyZ1syXSkKKwkJdHByaW50ZigiJSNseCwgTlVMTCIsIHRjcC0+dV9hcmdbMV0pOworCWVsc2UgeworCQlpZiAodGNwLT51X2FyZ1sxXSA9PSAwIHx8IHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJfSBlbHNlIHsKKwkJCXByaW50c29jayh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQl9CisJCXRwcmludGYoIiwgIik7CisJCXByaW50bnVtKHRjcCwgdGNwLT51X2FyZ1syXSwgIiVsdSIpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2VuZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMl0pOworCQkvKiBmbGFncyAqLworCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1szXSwgIk1TR18/Pz8iKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NlbmR0byh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfYXJnWzJdKTsKKwkJdHByaW50ZigiLCAlbHUsICIsIHRjcC0+dV9hcmdbMl0pOworCQkvKiBmbGFncyAqLworCQlwcmludGZsYWdzKG1zZ19mbGFncywgdGNwLT51X2FyZ1szXSwgIk1TR18/Pz8iKTsKKwkJLyogdG8gYWRkcmVzcyAqLworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHNvY2sodGNwLCB0Y3AtPnVfYXJnWzRdLCB0Y3AtPnVfYXJnWzVdKTsKKwkJLyogdG8gbGVuZ3RoICovCisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1s1XSk7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgSEFWRV9TRU5ETVNHCisKK2ludAorc3lzX3NlbmRtc2codGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50bXNnaGRyKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCS8qIGZsYWdzICovCisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiTVNHXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIEhBVkVfU0VORE1TRyAqLworCitpbnQKK3N5c19yZWN2KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCX0gZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlCisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9ydmFsKTsKKworCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7CisJCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiTVNHXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfcmVjdmZyb20odGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWludCBmcm9tbGVuOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9IGVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkgeworCQkJdHByaW50ZigiJSNseCwgJWx1LCAlbHUsICUjbHgsICUjbHgiLAorCQkJCXRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sCisJCQkJdGNwLT51X2FyZ1s0XSwgdGNwLT51X2FyZ1s1XSk7CisJCQlyZXR1cm4gMDsKKwkJfQorCQkvKiBidWYgKi8KKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfcnZhbCk7CisJCS8qIGxlbiAqLworCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7CisJCS8qIGZsYWdzICovCisJCXByaW50ZmxhZ3MobXNnX2ZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiTVNHXz8/PyIpOworCQkvKiBmcm9tIGFkZHJlc3MsIGxlbiAqLworCQlpZiAoIXRjcC0+dV9hcmdbNF0gfHwgIXRjcC0+dV9hcmdbNV0pIHsKKwkJCWlmICh0Y3AtPnVfYXJnWzRdID09IDApCisJCQkJdHByaW50ZigiLCBOVUxMIik7CisJCQllbHNlCisJCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1s0XSk7CisJCQlpZiAodGNwLT51X2FyZ1s1XSA9PSAwKQorCQkJCXRwcmludGYoIiwgTlVMTCIpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbNV0pOworCQkJcmV0dXJuIDA7CisJCX0KKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s1XSwgJmZyb21sZW4pIDwgMCkgeworCQkJdHByaW50ZigiLCB7Li4ufSwgWz9dIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQl0cHJpbnRmKCIsICIpOworCQlwcmludHNvY2sodGNwLCB0Y3AtPnVfYXJnWzRdLCB0Y3AtPnVfYXJnWzVdKTsKKwkJLyogZnJvbSBsZW5ndGggKi8KKwkJdHByaW50ZigiLCBbJXVdIiwgZnJvbWxlbik7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgSEFWRV9TRU5ETVNHCisKK2ludAorc3lzX3JlY3Ztc2codGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZQorCQkJcHJpbnRtc2doZHIodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJLyogZmxhZ3MgKi8KKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhtc2dfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNU0dfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogSEFWRV9TRU5ETVNHICovCisKK2ludAorc3lzX3NodXRkb3duKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICVsZCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQlzd2l0Y2ggKHRjcC0+dV9hcmdbMV0pIHsKKwkJY2FzZSAwOgorCQkJdHByaW50ZigiJXMiLCAiIC8qIHJlY2VpdmUgKi8iKTsKKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQl0cHJpbnRmKCIlcyIsICIgLyogc2VuZCAqLyIpOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCXRwcmludGYoIiVzIiwgIiAvKiBzZW5kIGFuZCByZWNlaXZlICovIik7CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZ2V0c29ja25hbWUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBzeXNfYWNjZXB0KHRjcCk7Cit9CisKK2ludAorc3lzX2dldHBlZXJuYW1lKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gc3lzX2FjY2VwdCh0Y3ApOworfQorCitpbnQKK3N5c19waXBlKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKworI2lmIGRlZmluZWQoTElOVVgpICYmICFkZWZpbmVkKFNQQVJDKSAmJiAhZGVmaW5lZChTUEFSQzY0KSAmJiAhZGVmaW5lZChTSCkgJiYgIWRlZmluZWQoSUE2NCkKKwlpbnQgZmRzWzJdOworCisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAoc3lzZXJyb3IodGNwKSkgeworCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQkJcmV0dXJuIDA7CisJCX0KKwkJaWYgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMF0sIHNpemVvZiBmZHMsIChjaGFyICopIGZkcykgPCAwKQorCQkJdHByaW50ZigiWy4uLl0iKTsKKwkJZWxzZQorCQkJdHByaW50ZigiWyV1LCAldV0iLCBmZHNbMF0sIGZkc1sxXSk7CisJfQorI2VsaWYgZGVmaW5lZChTUEFSQykgfHwgZGVmaW5lZChTUEFSQzY0KSB8fCBkZWZpbmVkKFNIKSB8fCBkZWZpbmVkKFNWUjQpIHx8IGRlZmluZWQoRlJFRUJTRCkgfHwgZGVmaW5lZChJQTY0KQorCWlmIChleGl0aW5nKHRjcCkpCisJCXRwcmludGYoIlslbHUsICVsdV0iLCB0Y3AtPnVfcnZhbCwgZ2V0cnZhbDIodGNwKSk7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc29ja2V0cGFpcih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisjaWZkZWYgTElOVVgKKwlpbnQgZmRzWzJdOworI2VuZGlmCisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwoZG9tYWlucywgdGNwLT51X2FyZ1swXSwgIlBGXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHh2YWwoc29ja3R5cGVzLCB0Y3AtPnVfYXJnWzFdLCAiU09DS18/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7CisJCWNhc2UgUEZfSU5FVDoKKwkJCXByaW50eHZhbChwcm90b2NvbHMsIHRjcC0+dV9hcmdbMl0sICJJUFBST1RPXz8/PyIpOworCQkJYnJlYWs7CisjaWZkZWYgUEZfSVBYCisJCWNhc2UgUEZfSVBYOgorCQkJLyogQlRXOiBJIGRvbid0IGJlbGlldmUgdGhpcy4uICovCisJCQl0cHJpbnRmKCJbIik7CisJCQlwcmludHh2YWwoZG9tYWlucywgdGNwLT51X2FyZ1syXSwgIlBGXz8/PyIpOworCQkJdHByaW50ZigiXSIpOworCQkJYnJlYWs7CisjZW5kaWYgLyogUEZfSVBYICovCisJCWRlZmF1bHQ6CisJCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCWJyZWFrOworCQl9CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbM10pOworCQkJcmV0dXJuIDA7CisJCX0KKyNpZmRlZiBMSU5VWAorCQlpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1szXSwgc2l6ZW9mIGZkcywgKGNoYXIgKikgZmRzKSA8IDApCisJCQl0cHJpbnRmKCIsIFsuLi5dIik7CisJCWVsc2UKKwkJCXRwcmludGYoIiwgWyV1LCAldV0iLCBmZHNbMF0sIGZkc1sxXSk7CisjZW5kaWYgLyogTElOVVggKi8KKyNpZiBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChTVlI0KSB8fCBkZWZpbmVkKEZSRUVCU0QpCisJCXRwcmludGYoIiwgWyVsdSwgJWx1XSIsIHRjcC0+dV9ydmFsLCBnZXRydmFsMih0Y3ApKTsKKyNlbmRpZiAvKiBTVU5PUzQgfHwgU1ZSNCB8fCBGUkVFQlNEICovCisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19nZXRzb2Nrb3B0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHh2YWwoc29ja2V0bGF5ZXJzLCB0Y3AtPnVfYXJnWzFdLCAiU09MXz8/PyIpOworCQl0cHJpbnRmICgiLCAiKTsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7CisJCWNhc2UgU09MX1NPQ0tFVDoKKwkJCXByaW50eHZhbChzb2Nrb3B0aW9ucywgdGNwLT51X2FyZ1syXSwgIlNPXz8/PyIpOworCQkJYnJlYWs7CisjaWZkZWYgU09MX0lQCisJCWNhc2UgU09MX0lQOgorCQkJcHJpbnR4dmFsKHNvY2tpcG9wdGlvbnMsIHRjcC0+dV9hcmdbMl0sICJJUF8/Pz8iKTsKKwkJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgU09MX0lQVjYKKwkJY2FzZSBTT0xfSVBWNjoKKwkJCXByaW50eHZhbChzb2NraXB2Nm9wdGlvbnMsIHRjcC0+dV9hcmdbMl0sICJJUFY2Xz8/PyIpOworCQkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBTT0xfSVBYCisJCWNhc2UgU09MX0lQWDoKKwkJCXByaW50eHZhbChzb2NraXB4b3B0aW9ucywgdGNwLT51X2FyZ1syXSwgIklQWF8/Pz8iKTsKKwkJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgU09MX1BBQ0tFVAorCQljYXNlIFNPTF9QQUNLRVQ6CisJCQlwcmludHh2YWwoc29ja3BhY2tldG9wdGlvbnMsIHRjcC0+dV9hcmdbMl0sICJQQUNLRVRfPz8/Iik7CisJCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFNPTF9UQ1AKKwkJY2FzZSBTT0xfVENQOgorCQkJcHJpbnR4dmFsKHNvY2t0Y3BvcHRpb25zLCB0Y3AtPnVfYXJnWzJdLCAiVENQXz8/PyIpOworCQkJYnJlYWs7CisjZW5kaWYKKworCQkvKiBTT0xfQVgyNSBTT0xfUk9TRSBTT0xfQVRBTEsgU09MX05FVFJPTSBTT0xfVURQIFNPTF9ERUNORVQgU09MX1gyNQorCQkgKiBldGMuIHN0aWxsIG5lZWQgd29yayAqLworCQlkZWZhdWx0OgorCQkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1syXSk7CisJCQlicmVhazsKKwkJfQorCX0gZWxzZSB7CisJCWludCBsZW47CisJCWlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlICh0Y3AsIHRjcC0+dV9hcmdbNF0sICZsZW4pIDwgMCkgeworCQkJdHByaW50ZigiLCAlI2x4LCAlI2x4IiwKKwkJCQl0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKTsKKwkJCXJldHVybiAwOworCQl9CisKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7CisJCWNhc2UgU09MX1NPQ0tFVDoKKwkJCXN3aXRjaCAodGNwLT51X2FyZ1syXSkgeworI2lmZGVmIFNPX0xJTkdFUgorCQkJY2FzZSBTT19MSU5HRVI6CisJCQkgICAgICAgIGlmIChsZW4gPT0gc2l6ZW9mIChzdHJ1Y3QgbGluZ2VyKSkgeworCQkJCQlzdHJ1Y3QgbGluZ2VyIGxpbmdlcjsKKwkJCQkJaWYgKHVtb3ZlICh0Y3AsCisJCQkJCQkgICB0Y3AtPnVfYXJnWzNdLAorCQkJCQkJICAgJmxpbmdlcikgPCAwKQorCQkJCQkJYnJlYWs7CisJCQkJCXRwcmludGYoIiwge29ub2ZmPSVkLCBsaW5nZXI9JWR9LCAiCisJCQkJCQkiWyVkXSIsCisJCQkJCQlsaW5nZXIubF9vbm9mZiwKKwkJCQkJCWxpbmdlci5sX2xpbmdlciwKKwkJCQkJCWxlbik7CisJCQkJCXJldHVybiAwOworCQkJCX0KKwkJCQlicmVhazsKKyNlbmRpZgorCQkJfQorCQkJYnJlYWs7CisJCX0KKworCQl0cHJpbnRmICgiLCAiKTsKKwkJaWYgKGxlbiA9PSBzaXplb2YgKGludCkpIHsKKwkJCXByaW50bnVtKHRjcCwgdGNwLT51X2FyZ1szXSwgIiVsZCIpOworCQl9CisJCWVsc2UgeworCQkJcHJpbnRzdHIgKHRjcCwgdGNwLT51X2FyZ1szXSwgbGVuKTsKKwkJfQorCQl0cHJpbnRmKCIsIFslZF0iLCBsZW4pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoSUNNUF9GSUxURVIpCitzdGF0aWMgdm9pZCBwcmludGljbXBmaWx0ZXIodGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworCXN0cnVjdCBpY21wX2ZpbHRlcglmaWx0ZXI7CisKKwlpZiAoIWFkZHIpIHsKKwkJdHByaW50ZigiTlVMTCIpOworCQlyZXR1cm47CisJfQorCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZmaWx0ZXIpIDwgMCkgeworCQl0cHJpbnRmKCJ7Li4ufSIpOworCQlyZXR1cm47CisJfQorCisJdHByaW50ZigifigiKTsKKwlwcmludGZsYWdzKGljbXBmaWx0ZXJmbGFncywgfmZpbHRlci5kYXRhLCAiSUNNUF8/Pz8iKTsKKwl0cHJpbnRmKCIpIik7Cit9CisjZW5kaWYgLyogSUNNUF9GSUxURVIgKi8KKworc3RhdGljIGludAorcHJpbnRzb2Nrb3B0ICh0Y3AsIGxldmVsLCBuYW1lLCBhZGRyLCBsZW4pCitzdHJ1Y3QgdGNiICp0Y3A7CitpbnQgbGV2ZWw7CitpbnQgbmFtZTsKK2xvbmcgYWRkcjsKK2ludCBsZW47Cit7CisJcHJpbnR4dmFsKHNvY2tldGxheWVycywgbGV2ZWwsICJTT0xfPz8iKTsKKwl0cHJpbnRmICgiLCAiKTsKKwlzd2l0Y2ggKGxldmVsKSB7CisJICAgIGNhc2UgU09MX1NPQ0tFVDoKKwkJcHJpbnR4dmFsKHNvY2tvcHRpb25zLCBuYW1lLCAiU09fPz8/Iik7CisJCXN3aXRjaCAobmFtZSkgeworI2lmIGRlZmluZWQoU09fTElOR0VSKQorCQkgICAgY2FzZSBTT19MSU5HRVI6CisJCQlpZiAobGVuID09IHNpemVvZiAoc3RydWN0IGxpbmdlcikpIHsKKwkJCQlzdHJ1Y3QgbGluZ2VyIGxpbmdlcjsKKwkJCQlpZiAodW1vdmUgKHRjcCwgYWRkciwgJmxpbmdlcikgPCAwKQorCQkJCQlicmVhazsKKwkJCQl0cHJpbnRmKCIsIHtvbm9mZj0lZCwgbGluZ2VyPSVkfSIsCisJCQkJCWxpbmdlci5sX29ub2ZmLAorCQkJCQlsaW5nZXIubF9saW5nZXIpOworCQkJCXJldHVybiAwOworCQkJfQorCQkJYnJlYWs7CisjZW5kaWYKKwkJfQorCQlicmVhazsKKyNpZmRlZiBTT0xfSVAKKwkgICAgY2FzZSBTT0xfSVA6CisJCXByaW50eHZhbChzb2NraXBvcHRpb25zLCBuYW1lLCAiSVBfPz8/Iik7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgU09MX0lQVjYKKwkgICAgY2FzZSBTT0xfSVBWNjoKKwkJcHJpbnR4dmFsKHNvY2tpcHY2b3B0aW9ucywgbmFtZSwgIklQVjZfPz8/Iik7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgU09MX0lQWAorCSAgICBjYXNlIFNPTF9JUFg6CisJCXByaW50eHZhbChzb2NraXB4b3B0aW9ucywgbmFtZSwgIklQWF8/Pz8iKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBTT0xfUEFDS0VUCisJICAgIGNhc2UgU09MX1BBQ0tFVDoKKwkJcHJpbnR4dmFsKHNvY2twYWNrZXRvcHRpb25zLCBuYW1lLCAiUEFDS0VUXz8/PyIpOworCQkvKiBUT0RPOiBkZWNvZGUgcGFja2F0ZV9tcmVxIGZvciBQQUNLRVRfKl9NRU1CRVJTSElQICovCisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgU09MX1RDUAorCSAgICBjYXNlIFNPTF9UQ1A6CisJCXByaW50eHZhbChzb2NrdGNwb3B0aW9ucywgbmFtZSwgIlRDUF8/Pz8iKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBTT0xfUkFXCisJICAgIGNhc2UgU09MX1JBVzoKKwkJcHJpbnR4dmFsKHNvY2tyYXdvcHRpb25zLCBuYW1lLCAiUkFXXz8/PyIpOworCQlzd2l0Y2ggKG5hbWUpIHsKKyNpZiBkZWZpbmVkKElDTVBfRklMVEVSKQorCQkgICAgY2FzZSBJQ01QX0ZJTFRFUjoKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGljbXBmaWx0ZXIodGNwLCBhZGRyKTsKKwkJCXJldHVybiAwOworI2VuZGlmCisJCX0KKwkJYnJlYWs7CisjZW5kaWYKKworCQkvKiBTT0xfQVgyNSBTT0xfQVRBTEsgU09MX05FVFJPTSBTT0xfVURQIFNPTF9ERUNORVQgU09MX1gyNQorCQkgKiBldGMuIHN0aWxsIG5lZWQgd29yayAgKi8KKworCSAgICBkZWZhdWx0OgorCQl0cHJpbnRmKCIldSIsIG5hbWUpOworCX0KKworCS8qIGRlZmF1bHQgYXJnIHByaW50aW5nICovCisKKwl0cHJpbnRmICgiLCAiKTsKKworCWlmIChsZW4gPT0gc2l6ZW9mIChpbnQpKSB7CisJCXByaW50bnVtX2ludCAodGNwLCBhZGRyLCAiJWQiKTsKKwl9CisJZWxzZSB7CisJCXByaW50c3RyICh0Y3AsIGFkZHIsIGxlbik7CisJfQorCXJldHVybiAwOworfQorCisKKyNpZmRlZiBIQVZFX1NUUlVDVF9PUFRIRFIKKwordm9pZAorcHJpbnRfc29ja19vcHRtZ210ICh0Y3AsIGFkZHIsIGxlbikKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgYWRkcjsKK2ludCBsZW47Cit7CisJaW50IGMgPSAwOworCXN0cnVjdCBvcHRoZHIgaGRyOworCisJd2hpbGUgKGxlbiA+PSAoaW50KSBzaXplb2YgaGRyKSB7CisJCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZoZHIpIDwgMCkgYnJlYWs7CisJCWlmIChjKyspIHsKKwkJCXRwcmludGYgKCIsICIpOworCQl9CisJCWVsc2UgaWYgKGxlbiA+IGhkci5sZW4gKyBzaXplb2YgaGRyKSB7CisJCQl0cHJpbnRmICgiWyIpOworCQl9CisJCXRwcmludGYgKCJ7Iik7CisJCWFkZHIgKz0gc2l6ZW9mIGhkcjsKKwkJbGVuIC09IHNpemVvZiBoZHI7CisJCXByaW50c29ja29wdCAodGNwLCBoZHIubGV2ZWwsIGhkci5uYW1lLCBhZGRyLCBoZHIubGVuKTsKKwkJaWYgKGhkci5sZW4gPiAwKSB7CisJCQlhZGRyICs9IGhkci5sZW47CisJCQlsZW4gLT0gaGRyLmxlbjsKKwkJfQorCQl0cHJpbnRmICgifSIpOworCX0KKwlpZiAobGVuID4gMCkgeworCQlpZiAoYysrKSB0cHJpbnRmICgiLCAiKTsKKwkJcHJpbnRzdHIgKHRjcCwgYWRkciwgbGVuKTsKKwl9CisJaWYgKGMgPiAxKSB0cHJpbnRmICgiXSIpOworfQorCisjZW5kaWYKKworaW50CitzeXNfc2V0c29ja29wdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJcHJpbnRzb2Nrb3B0ICh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sCisJCQkgICAgICB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzRdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZiBVTklYV0FSRSA+PSA3CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzb2NrX3ZlcnNpb25bXSA9IHsKKwl7IF9fTkVUTElCX1VXMjExX1NWUjQsCSJVVzIxMV9TVlI0IiB9LAorCXsgX19ORVRMSUJfVVcyMTFfWFBHNCwJIlVXMjExX1hQRzQiIH0sCisJeyBfX05FVExJQl9HRU1JTklfU1ZSNCwJIkdFTUlOSV9TVlI0IiB9LAorCXsgX19ORVRMSUJfR0VNSU5JX1hQRzQsCSJHRU1JTklfWFBHNCIgfSwKKwl7IF9fTkVUTElCX0ZQMV9TVlI0LAkiRlAxX1NWUjQiIH0sCisJeyBfX05FVExJQl9GUDFfWFBHNCwJIkZQMV9YUEc0IiB9LAorCXsgMCwgICAgICAgICAgICBOVUxMICAgICAgICAgICAgfSwKK307CisKKworaW50CituZXRsaWJfY2FsbCh0Y3AsIGZ1bmMpCitzdHJ1Y3QgdGNiICp0Y3A7CitpbnQgKCpmdW5jKSAoKTsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlpbnQgaTsKKwkJcHJpbnR4dmFsIChzb2NrX3ZlcnNpb24sIHRjcC0+dV9hcmdbMF0sICJfX05FVExJQl8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJLS10Y3AtPnVfbmFyZ3M7CisJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKKwkJCXRjcC0+dV9hcmdbaV0gPSB0Y3AtPnVfYXJnW2kgKyAxXTsKKwkJcmV0dXJuIGZ1bmMgKHRjcCk7CisKKwl9CisKKwlyZXR1cm4gZnVuYyAodGNwKTsKK30KKworaW50CitzeXNfeHNvY2tldCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19zb2NrZXQpOworfQorCitpbnQKK3N5c194c29ja2V0cGFpcih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19zb2NrZXRwYWlyKTsKK30KKworaW50CitzeXNfeGJpbmQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBuZXRsaWJfY2FsbCAodGNwLCBzeXNfYmluZCk7Cit9CisKK2ludAorc3lzX3hjb25uZWN0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX2Nvbm5lY3QpOworfQorCitpbnQKK3N5c194bGlzdGVuKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX2xpc3Rlbik7Cit9CisKK2ludAorc3lzX3hhY2NlcHQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBuZXRsaWJfY2FsbCAodGNwLCBzeXNfYWNjZXB0KTsKK30KKworaW50CitzeXNfeHNlbmRtc2codGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBuZXRsaWJfY2FsbCAodGNwLCBzeXNfc2VuZG1zZyk7Cit9CisKK2ludAorc3lzX3hyZWN2bXNnKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX3JlY3Ztc2cpOworfQorCitpbnQKK3N5c194Z2V0c29ja2FkZHIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbCAoc29ja192ZXJzaW9uLCB0Y3AtPnVfYXJnWzBdLCAiX19ORVRMSUJfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCWlmICh0Y3AtPnVfYXJnWzFdID09IDApIHsKKwkJCXRwcmludGYgKCJMT0NBTE5BTUUsICIpOworCQl9CisJCWVsc2UgaWYgKHRjcC0+dV9hcmdbMV0gPT0gMSkgeworCQkJdHByaW50ZiAoIlJFTU9URU5BTUUsICIpOworCQl9CisJCWVsc2UgeworCQkJdHByaW50ZiAoIiVsZCwgIiwgdGNwLT51X2FyZyBbMV0pOworCQl9CisJCXRwcmludGYgKCIlbGQsICIsIHRjcC0+dV9hcmcgWzJdKTsKKwl9CisJZWxzZSB7CisJCWlmICh0Y3AtPnVfYXJnWzNdID09IDAgfHwgc3lzZXJyb3IodGNwKSkgeworCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbM10pOworCQl9IGVsc2UgeworCQkJcHJpbnRzb2NrKHRjcCwgdGNwLT51X2FyZ1szXSwgdGNwLT51X2FyZ1s0XSk7CisJCX0KKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzRdLCAiJWx1Iik7CisJfQorCisJcmV0dXJuIDA7CisKK30KKworI2lmIDAKKworaW50CitzeXNfeHNldHNvY2thZGRyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX3NldHNvY2thZGRyKTsKK30KKworI2VuZGlmCisKK2ludAorc3lzX3hnZXRzb2Nrb3B0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX2dldHNvY2tvcHQpOworfQorCitpbnQKK3N5c194c2V0c29ja29wdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIG5ldGxpYl9jYWxsICh0Y3AsIHN5c19zZXRzb2Nrb3B0KTsKK30KKworaW50CitzeXNfeHNodXRkb3duKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gbmV0bGliX2NhbGwgKHRjcCwgc3lzX3NodXRkb3duKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9wcm9jLmMgYi9wcm9jLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdjNTYzNgotLS0gL2Rldi9udWxsCisrKyBiL3Byb2MuYwpAQCAtMCwwICsxLDI2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogcHJvYy5jLHYgMS43IDIwMDUvMDYvMDEgMTk6MDI6MzYgcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKworI2lmZGVmIFNWUjQKKyNpZm5kZWYgSEFWRV9NUF9QUk9DRlMKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHByb2Nfc3RhdHVzX2ZsYWdzW10gPSB7CisJeyBQUl9TVE9QUEVELAkiUFJfU1RPUFBFRCIJfSwKKwl7IFBSX0lTVE9QLAkiUFJfSVNUT1AiCX0sCisJeyBQUl9EU1RPUCwJIlBSX0RTVE9QIgl9LAorCXsgUFJfQVNMRUVQLAkiUFJfQVNMRUVQIgl9LAorCXsgUFJfRk9SSywJIlBSX0ZPUksiCX0sCisJeyBQUl9STEMsCSJQUl9STEMiCX0sCisJeyBQUl9QVFJBQ0UsCSJQUl9QVFJBQ0UiCX0sCisJeyBQUl9QQ0lOVkFMLAkiUFJfUENJTlZBTCIJfSwKKwl7IFBSX0lTU1lTLAkiUFJfSVNTWVMiCX0sCisjaWZkZWYgUFJfU1RFUAorCXsgUFJfU1RFUCwJIlBSX1NURVAiCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9LTEMKKwl7IFBSX0tMQywJIlBSX0tMQyIJfSwKKyNlbmRpZgorI2lmZGVmIFBSX0FTWU5DCisJeyBQUl9BU1lOQywJIlBSX0FTWU5DIgl9LAorI2VuZGlmCisjaWZkZWYgUFJfUENPTVBBVAorCXsgUFJfUENPTVBBVCwJIlBSX1BDT01QQVQiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHByb2Nfc3RhdHVzX3doeVtdID0geworCXsgUFJfUkVRVUVTVEVELAkiUFJfUkVRVUVTVEVEIgl9LAorCXsgUFJfU0lHTkFMTEVELAkiUFJfU0lHTkFMTEVEIgl9LAorCXsgUFJfU1lTRU5UUlksCSJQUl9TWVNFTlRSWSIJfSwKKwl7IFBSX1NZU0VYSVQsCSJQUl9TWVNFWElUIgl9LAorCXsgUFJfSk9CQ09OVFJPTCwiUFJfSk9CQ09OVFJPTCIJfSwKKwl7IFBSX0ZBVUxURUQsCSJQUl9GQVVMVEVEIgl9LAorI2lmZGVmIFBSX1NVU1BFTkRFRAorCXsgUFJfU1VTUEVOREVELAkiUFJfU1VTUEVOREVEIgl9LAorI2VuZGlmCisjaWZkZWYgUFJfQ0hFQ0tQT0lOVAorCXsgUFJfQ0hFQ0tQT0lOVCwiUFJfQ0hFQ0tQT0lOVCIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvY19ydW5fZmxhZ3NbXSA9IHsKKwl7IFBSQ1NJRywJIlBSQ1NJRyIJfSwKKwl7IFBSQ0ZBVUxULAkiUFJDRkFVTFQiCX0sCisJeyBQUlNUUkFDRSwJIlBSU1RSQUNFIgl9LAorCXsgUFJTSE9MRCwJIlBSU0hPTEQiCX0sCisJeyBQUlNGQVVMVCwJIlBSU0ZBVUxUIgl9LAorCXsgUFJTVkFERFIsCSJQUlNWQUREUiIJfSwKKwl7IFBSU1RFUCwJIlBSU1RFUCIJfSwKKwl7IFBSU0FCT1JULAkiUFJTQUJPUlQiCX0sCisJeyBQUlNUT1AsCSJQUlNUT1AiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK2ludAorcHJvY19pb2N0bCh0Y3AsIGNvZGUsIGFyZykKK3N0cnVjdCB0Y2IgKnRjcDsKK2ludCBjb2RlLCBhcmc7Cit7CisJaW50IHZhbDsKKwlwcnN0YXR1c190IHN0YXR1czsKKwlwcnJ1bl90IHJ1bjsKKworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlyZXR1cm4gMDsKKworCXN3aXRjaCAoY29kZSkgeworCWNhc2UgUElPQ1NUQVRVUzoKKwljYXNlIFBJT0NTVE9QOgorCWNhc2UgUElPQ1dTVE9QOgorCQlpZiAoYXJnID09IDApCisJCQl0cHJpbnRmKCIsIE5VTEwiKTsKKwkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiwgJSN4IiwgYXJnKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCBhcmcsICZzdGF0dXMpIDwgMCkKKwkJCXRwcmludGYoIiwgey4uLn0iKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCIsIHtwcl9mbGFncz0iKTsKKwkJCXByaW50ZmxhZ3MocHJvY19zdGF0dXNfZmxhZ3MsIHN0YXR1cy5wcl9mbGFncywgIlBSXz8/PyIpOworCQkJaWYgKHN0YXR1cy5wcl93aHkpIHsKKwkJCQl0cHJpbnRmKCIsIHByX3doeT0iKTsKKwkJCQlwcmludHh2YWwocHJvY19zdGF0dXNfd2h5LCBzdGF0dXMucHJfd2h5LAorCQkJCQkgICJQUl8/Pz8iKTsKKwkJCX0KKwkJCXN3aXRjaCAoc3RhdHVzLnByX3doeSkgeworCQkJY2FzZSBQUl9TSUdOQUxMRUQ6CisJCQljYXNlIFBSX0pPQkNPTlRST0w6CisJCQkJdHByaW50ZigiLCBwcl93aGF0PSIpOworCQkJCXByaW50c2lnbmFsKHN0YXR1cy5wcl93aGF0KTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUFJfRkFVTFRFRDoKKwkJCQl0cHJpbnRmKCIsIHByX3doYXQ9JWQiLCBzdGF0dXMucHJfd2hhdCk7CisJCQkJYnJlYWs7CisJCQljYXNlIFBSX1NZU0VOVFJZOgorCQkJY2FzZSBQUl9TWVNFWElUOgorCQkJCXRwcmludGYoIiwgcHJfd2hhdD1TWVNfJXMiLAorCQkJCQlzeXNlbnRbc3RhdHVzLnByX3doYXRdLnN5c19uYW1lKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIiwgLi4ufSIpOworCQl9CisJCXJldHVybiAxOworCWNhc2UgUElPQ1JVTjoKKwkJaWYgKGFyZyA9PSAwKQorCQkJdHByaW50ZigiLCBOVUxMIik7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYXJnLCAmcnVuKSA8IDApCisJCQl0cHJpbnRmKCIsIHsuLi59Iik7CisJCWVsc2UgeworCQkJdHByaW50ZigiLCB7cHJfZmxhZ3M9Iik7CisJCQlwcmludGZsYWdzKHByb2NfcnVuX2ZsYWdzLCBydW4ucHJfZmxhZ3MsICJQUj8/PyIpOworCQkJdHByaW50ZigiLCAuLi59Iik7CisJCX0KKwkJcmV0dXJuIDE7CisjaWZkZWYgUElPQ1NFVAorCWNhc2UgUElPQ1NFVDoKKwljYXNlIFBJT0NSRVNFVDoKKwkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCisJCQl0cHJpbnRmKCIsIFs/XSIpOworCQllbHNlIHsKKwkJCXRwcmludGYoIiwgWyIpOworCQkJcHJpbnRmbGFncyhwcm9jX3N0YXR1c19mbGFncywgdmFsLCAiUFJfPz8/Iik7CisJCQl0cHJpbnRmKCJdIik7CisJCX0KKwkJcmV0dXJuIDE7CisjZW5kaWYgLyogUElPQ1NFVCAqLworCWNhc2UgUElPQ0tJTEw6CisJY2FzZSBQSU9DVU5LSUxMOgorCQkvKiB0YWtlcyBhIHBvaW50ZXIgdG8gYSBzaWduYWwgKi8KKwkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCisJCQl0cHJpbnRmKCIsIFs/XSIpOworCQllbHNlIHsKKwkJCXRwcmludGYoIiwgWyIpOworCQkJcHJpbnRzaWduYWwodmFsKTsKKwkJCXRwcmludGYoIl0iKTsKKwkJfQorCQlyZXR1cm4gMTsKKwljYXNlIFBJT0NTRk9SSzoKKwljYXNlIFBJT0NSRk9SSzoKKwljYXNlIFBJT0NTUkxDOgorCWNhc2UgUElPQ1JSTEM6CisJCS8qIGRvZXNuJ3QgdGFrZSBhbiBhcmcgKi8KKwkJcmV0dXJuIDE7CisJZGVmYXVsdDoKKwkJLyogYWQgbmFzZXVtICovCisJCXJldHVybiAwOworCX0KK30KKworI2VuZGlmIC8qIEhBVkVfTVBfUFJPQ0ZTICovCisjZW5kaWYgLyogU1ZSNCAqLworCisjaWZkZWYgRlJFRUJTRAorI2luY2x1ZGUgPHN5cy9waW9jdGwuaD4KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHByb2Nfc3RhdHVzX3doeVtdID0geworCXsgU19FWEVDLAkiU19FWEVDIgl9LAorCXsgU19TSUcsCSJTX1NJRyIJCX0sCisJeyBTX1NDRSwJIlNfU0NFIgkJfSwKKwl7IFNfU0NYLAkiU19TQ1giCQl9LAorCXsgU19DT1JFLAkiU19DT1JFIgl9LAorCXsgU19FWElULAkiU19FWElUIgl9LAorCXsgMCwJCU5VTEwJCX0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm9jX3N0YXR1c19mbGFnc1tdID0geworCXsgUEZfTElOR0VSLAkiUEZfTElOR0VSIgl9LAorCXsgUEZfSVNVR0lELAkiUEZfSVNVR0lEIgl9LAorCXsgMCwJCU5VTEwJCX0KK307CisKK2ludAorcHJvY19pb2N0bCh0Y3AsIGNvZGUsIGFyZykKK3N0cnVjdCB0Y2IgKnRjcDsKK2ludCBjb2RlLCBhcmc7Cit7CisJaW50IHZhbDsKKwlzdHJ1Y3QgcHJvY2ZzX3N0YXR1cyBzdGF0dXM7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcmV0dXJuIDA7CisKKwlzd2l0Y2ggKGNvZGUpIHsKKwljYXNlIFBJT0NTVEFUVVM6CisJY2FzZSBQSU9DV0FJVDoKKwkJaWYgKGFyZyA9PSAwKQorCQkJdHByaW50ZigiLCBOVUxMIik7CisJCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIsICV4IiwgYXJnKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCBhcmcsICZzdGF0dXMpIDwgMCkKKwkJCXRwcmludGYoIiwgey4uLn0iKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCIsIHtzdGF0ZT0lZCwgZmxhZ3M9Iiwgc3RhdHVzLnN0YXRlKTsKKwkJCXByaW50ZmxhZ3MocHJvY19zdGF0dXNfZmxhZ3MsIHN0YXR1cy5mbGFncywgIlBGXz8/PyIpOworCQkJdHByaW50ZigiLCBldmVudHM9Iik7CisJCQlwcmludGZsYWdzKHByb2Nfc3RhdHVzX3doeSwgc3RhdHVzLmV2ZW50cywgIlNfPz8/Iik7CisJCQl0cHJpbnRmKCIsIHdoeT0iKTsKKwkJCXByaW50eHZhbChwcm9jX3N0YXR1c193aHksIHN0YXR1cy53aHksICJTXz8/PyIpOworCQkJdHByaW50ZigiLCB2YWw9JWx1fSIsIHN0YXR1cy52YWwpOworCQl9CisJCXJldHVybiAxOworCWNhc2UgUElPQ0JJUzoKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhwcm9jX3N0YXR1c193aHksIGFyZywgIlNfPz8/Iik7CisJCXJldHVybiAxOworCQlyZXR1cm4gMTsKKwljYXNlIFBJT0NTRkw6CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MocHJvY19zdGF0dXNfZmxhZ3MsIGFyZywgIlBGXz8/PyIpOworCQlyZXR1cm4gMTsKKwljYXNlIFBJT0NHRkw6CisJICAgICAgICBpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiwgJSN4IiwgYXJnKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKKwkJCXRwcmludGYoIiwgey4uLn0iKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCIsIFsiKTsKKwkJCXByaW50ZmxhZ3MocHJvY19zdGF0dXNfZmxhZ3MsIHZhbCwgIlBGXz8/PyIpOworCQkJdHByaW50ZigiXSIpOworCQl9CisJCXJldHVybiAxOworCWRlZmF1bHQ6CisJCS8qIGFkIG5hc2V1bSAqLworCQlyZXR1cm4gMDsKKwl9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3Byb2Nlc3MuYyBiL3Byb2Nlc3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzY0M2JlCi0tLSAvZGV2L251bGwKKysrIGIvcHJvY2Vzcy5jCkBAIC0wLDAgKzEsMzM0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5OSBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgIExpbnV4IGZvciBzMzkwIHBvcnQgYnkgRC5KLiBCYXJyb3cKKyAqICAgICAgICAgICAgICAgICAgICA8YmFycm93X2RqQG1haWwueWFob28uY29tLGRqYmFycm93QGRlLmlibS5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDAgUG9ja2V0UGVuZ3VpbnMgSW5jLiAgTGludXggZm9yIEhpdGFjaGkgU3VwZXJICisgKiAgICAgICAgICAgICAgICAgICAgcG9ydCBieSBHcmVnIEJhbmtzIDxnYmFua3NAcG9ja2V0cGVuZ3VpbnMuY29tPgorCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogcHJvY2Vzcy5jLHYgMS45NyAyMDA1LzA2LzA4IDIwOjQ1OjI4IHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisjaWZkZWYgSEFWRV9BTkRST0lEX09TCisjaW5jbHVkZSA8YXNtL3VzZXIuaD4KKyNlbHNlCisjaW5jbHVkZSA8c3lzL3VzZXIuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaWZkZWYgU1VOT1M0CisjaW5jbHVkZSA8bWFjaGluZS9yZWcuaD4KKyNlbmRpZiAvKiBTVU5PUzQgKi8KKworI2lmZGVmIEZSRUVCU0QKKyNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+CisjZW5kaWYKKworI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworLyogZm9yIHN0cnVjdCBzY2hlZF9wYXJhbSAqLworI2RlZmluZSBzY2hlZF9wcmlvcml0eSAgX19zY2hlZF9wcmlvcml0eQorI2VuZGlmCisKKyNpZiBIQVZFX0FTTV9SRUdfSAorI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQorIyAgZGVmaW5lIGZwcSBrZXJuZWxfZnBxCisjICBkZWZpbmUgZnEga2VybmVsX2ZxCisjICBkZWZpbmUgZnB1IGtlcm5lbF9mcHUKKyNlbmRpZiAvKiBTUEFSQyB8fCBTUEFSQzY0ICovCisjaW5jbHVkZSA8YXNtL3JlZy5oPgorI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQorIyAgdW5kZWYgZnBxCisjICB1bmRlZiBmcQorIyAgdW5kZWYgZnB1CisjZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCAqLworI2VuZGlmIC8qIEhBVkVfQVNNX1JFR19IICovCisKKyNpZmRlZiBIQVZFX1NZU19SRUdfSAorIyBpbmNsdWRlIDxzeXMvcmVnLmg+CisjaWZuZGVmIFBUUkFDRV9QRUVLVVNSCisjIGRlZmluZSBQVFJBQ0VfUEVFS1VTUiBQVFJBQ0VfUEVFS1VTRVIKKyNlbmRpZgorI2lmbmRlZiBQVFJBQ0VfUE9LRVVTUgorIyBkZWZpbmUgUFRSQUNFX1BPS0VVU1IgUFRSQUNFX1BPS0VVU0VSCisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MSU5VWF9QVFJBQ0VfSAorI3VuZGVmIFBUUkFDRV9TWVNDQUxMCisjIGlmZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKKyMgIGRlZmluZSBpYTY0X2ZwcmVnIFhYWF9pYTY0X2ZwcmVnCisjIGVuZGlmCisjIGlmZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MKKyMgIGRlZmluZSBwdF9hbGxfdXNlcl9yZWdzIFhYWF9wdF9hbGxfdXNlcl9yZWdzCisjIGVuZGlmCisjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CisjIHVuZGVmIGlhNjRfZnByZWcKKyMgdW5kZWYgcHRfYWxsX3VzZXJfcmVncworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChMSU5VWCkgJiYgZGVmaW5lZCAoU1BBUkM2NCkKKyMgZGVmaW5lIHJfcGMgcl90cGMKKyMgdW5kZWYgUFRSQUNFX0dFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9HRVRSRUdTIFBUUkFDRV9HRVRSRUdTNjQKKyMgdW5kZWYgUFRSQUNFX1NFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9TRVRSRUdTIFBUUkFDRV9TRVRSRUdTNjQKKyNlbmRpZiAvKiBMSU5VWCAmJiBTUEFSQzY0ICovCisKKyNpZmRlZiBIQVZFX0xJTlVYX0ZVVEVYX0gKKyNpbmNsdWRlIDxsaW51eC9mdXRleC5oPgorI2VuZGlmCisjaWYgZGVmaW5lZCBMSU5VWAorIyBpZm5kZWYgRlVURVhfV0FJVAorIyAgZGVmaW5lIEZVVEVYX1dBSVQgMAorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfV0FLRQorIyAgZGVmaW5lIEZVVEVYX1dBS0UgMQorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfRkQKKyMgIGRlZmluZSBGVVRFWF9GRCAyCisjIGVuZGlmCisjIGlmbmRlZiBGVVRFWF9SRVFVRVVFCisjICBkZWZpbmUgRlVURVhfUkVRVUVVRSAzCisjIGVuZGlmCisjZW5kaWYKKworI2lmZGVmIExJTlVYCisjaW5jbHVkZSA8c2NoZWQuaD4KKyNpbmNsdWRlIDxhc20vcG9zaXhfdHlwZXMuaD4KKyN1bmRlZiBHRVRHUk9VUFNfVAorI2RlZmluZSBHRVRHUk9VUFNfVCBfX2tlcm5lbF9naWRfdAorI3VuZGVmIEdFVEdST1VQUzMyX1QKKyNkZWZpbmUgR0VUR1JPVVBTMzJfVCBfX2tlcm5lbF9naWQzMl90CisjZW5kaWYgLyogTElOVVggKi8KKworI2lmIGRlZmluZWQoTElOVVgpICYmIGRlZmluZWQoSUE2NCkKKyMgaW5jbHVkZSA8YXNtL3B0cmFjZV9vZmZzZXRzLmg+CisjIGluY2x1ZGUgPGFzbS9yc2UuaD4KKyNlbmRpZgorCisjaWZkZWYgSEFWRV9QUkNUTAorI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgorI2VuZGlmCisKKyNpZm5kZWYgV0NPUkVEVU1QCisjZGVmaW5lIFdDT1JFRFVNUChzdGF0dXMpICgoc3RhdHVzKSAmIDAyMDApCisjZW5kaWYKKworLyogV1RBOiB0aGlzIHdhcyBgJiYgIWRlZmluZWQoTElOVVhTUEFSQyknLCB0aGlzIHNlZW1zIHVubmVlZGVkIHRob3VnaD8gKi8KKyNpZiBkZWZpbmVkKEhBVkVfUFJDVEwpCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJjdGxfb3B0aW9uc1tdID0geworI2lmZGVmIFBSX01BWFBST0NTCisJeyBQUl9NQVhQUk9DUywJCSJQUl9NQVhQUk9DUyIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9JU0JMT0NLRUQKKwl7IFBSX0lTQkxPQ0tFRCwJCSJQUl9JU0JMT0NLRUQiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfU0VUU1RBQ0tTSVpFCisJeyBQUl9TRVRTVEFDS1NJWkUsCSJQUl9TRVRTVEFDS1NJWkUiCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9HRVRTVEFDS1NJWkUKKwl7IFBSX0dFVFNUQUNLU0laRSwJIlBSX0dFVFNUQUNLU0laRSIJfSwKKyNlbmRpZgorI2lmZGVmIFBSX01BWFBQUk9DUworCXsgUFJfTUFYUFBST0NTLAkJIlBSX01BWFBQUk9DUyIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9VTkJMS09ORVhFQworCXsgUFJfVU5CTEtPTkVYRUMsCSJQUl9VTkJMS09ORVhFQyIJfSwKKyNlbmRpZgorI2lmZGVmIFBSX0FUT01JQ1NJTQorCXsgUFJfQVRPTUlDU0lNLAkJIlBSX0FUT01JQ1NJTSIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9TRVRFWElUU0lHCisJeyBQUl9TRVRFWElUU0lHLAkiUFJfU0VURVhJVFNJRyIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9SRVNJREVOVAorCXsgUFJfUkVTSURFTlQsCQkiUFJfUkVTSURFTlQiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfQVRUQUNIQUREUgorCXsgUFJfQVRUQUNIQUREUiwJIlBSX0FUVEFDSEFERFIiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfREVUQUNIQUREUgorCXsgUFJfREVUQUNIQUREUiwJIlBSX0RFVEFDSEFERFIiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfVEVSTUNISUxECisJeyBQUl9URVJNQ0hJTEQsCQkiUFJfVEVSTUNISUxEIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBSX0dFVFNITUFTSworCXsgUFJfR0VUU0hNQVNLLAkJIlBSX0dFVFNITUFTSyIJCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9HRVROU0hBUkUKKwl7IFBSX0dFVE5TSEFSRSwJCSJQUl9HRVROU0hBUkUiCQl9LAorI2VuZGlmCisjaWYgZGVmaW5lZChQUl9TRVRfUERFQVRIU0lHKQorCXsgUFJfU0VUX1BERUFUSFNJRywJIlBSX1NFVF9QREVBVEhTSUciCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9DT1JFUElECisJeyBQUl9DT1JFUElELAkJIlBSX0NPUkVQSUQiCQl9LAorI2VuZGlmCisjaWZkZWYgUFJfQVRUQUNIQUREUlBFUk0KKwl7IFBSX0FUVEFDSEFERFJQRVJNLAkiUFJfQVRUQUNIQUREUlBFUk0iCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9QVEhSRUFERVhJVAorCXsgUFJfUFRIUkVBREVYSVQsCSJQUl9QVEhSRUFERVhJVCIJfSwKKyNlbmRpZgorI2lmZGVmIFBSX1NFVF9QREVBVEhTSUcKKwl7IFBSX1NFVF9QREVBVEhTSUcsCSJQUl9TRVRfUERFQVRIU0lHIgl9LAorI2VuZGlmCisjaWZkZWYgUFJfR0VUX1BERUFUSFNJRworCXsgUFJfR0VUX1BERUFUSFNJRywJIlBSX0dFVF9QREVBVEhTSUciCX0sCisjZW5kaWYKKyNpZmRlZiBQUl9HRVRfVU5BTElHTgorCXsgUFJfR0VUX1VOQUxJR04sCSJQUl9HRVRfVU5BTElHTiIJfSwKKyNlbmRpZgorI2lmZGVmIFBSX1NFVF9VTkFMSUdOCisJeyBQUl9TRVRfVU5BTElHTiwJIlBSX1NFVF9VTkFMSUdOIgl9LAorI2VuZGlmCisjaWZkZWYgUFJfR0VUX0tFRVBDQVBTCisJeyBQUl9HRVRfS0VFUENBUFMsCSJQUl9HRVRfS0VFUF9DQVBTIgl9LAorI2VuZGlmCisjaWZkZWYgUFJfU0VUX0tFRVBDQVBTCisJeyBQUl9TRVRfS0VFUENBUFMsCSJQUl9TRVRfS0VFUF9DQVBTIgl9LAorI2VuZGlmCisJeyAwLAkJCU5VTEwJCQl9LAorfTsKKworCitzdGF0aWMgY29uc3QgY2hhciAqCit1bmFsaWduY3RsX3N0cmluZyAodW5zaWduZWQgaW50IGN0bCkKK3sKKwlzdGF0aWMgY2hhciBidWZbMTZdOworCisJc3dpdGNoIChjdGwpIHsKKyNpZmRlZiBQUl9VTkFMSUdOX05PUFJJTlQKKwkgICAgICBjYXNlIFBSX1VOQUxJR05fTk9QUklOVDoKKwkJcmV0dXJuICJOT1BSSU5UIjsKKyNlbmRpZgorI2lmZGVmIFBSX1VOQUxJR05fU0lHQlVTCisJICAgICAgY2FzZSBQUl9VTkFMSUdOX1NJR0JVUzoKKwkJcmV0dXJuICJTSUdCVVMiOworI2VuZGlmCisJICAgICAgZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCXNwcmludGYoYnVmLCAiJXgiLCBjdGwpOworCXJldHVybiBidWY7Cit9CisKKworaW50CitzeXNfcHJjdGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWludCBpOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHByY3RsX29wdGlvbnMsIHRjcC0+dV9hcmdbMF0sICJQUl8/Pz8iKTsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7CisjaWZkZWYgUFJfR0VUTlNIQVJFCisJCWNhc2UgUFJfR0VUTlNIQVJFOgorCQkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBQUl9TRVRfREVBVEhTSUcKKwkJY2FzZSBQUl9HRVRfUERFQVRIU0lHOgorCQkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBQUl9TRVRfVU5BTElHTgorCQljYXNlIFBSX1NFVF9VTkFMSUdOOgorCQkJdHByaW50ZigiLCAlcyIsIHVuYWxpZ25jdGxfc3RyaW5nKHRjcC0+dV9hcmdbMV0pKTsKKwkJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgUFJfR0VUX1VOQUxJR04KKwkJY2FzZSBQUl9HRVRfVU5BTElHTjoKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQkJYnJlYWs7CisjZW5kaWYKKwkJZGVmYXVsdDoKKwkJCWZvciAoaSA9IDE7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnW2ldKTsKKwkJCWJyZWFrOworCQl9CisJfSBlbHNlIHsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7CisjaWZkZWYgUFJfR0VUX1BERUFUSFNJRworCQljYXNlIFBSX0dFVF9QREVBVEhTSUc6CisJCQlmb3IgKGk9MTsgaTx0Y3AtPnVfbmFyZ3M7IGkrKykKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnW2ldKTsKKwkJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgUFJfU0VUX1VOQUxJR04KKwkJY2FzZSBQUl9TRVRfVU5BTElHTjoKKwkJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgUFJfR0VUX1VOQUxJR04KKwkJY2FzZSBQUl9HRVRfVU5BTElHTjoKKwkJeworCQkJaW50IGN0bDsKKworCQkJdW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmY3RsKTsKKwkJCXRjcC0+YXV4c3RyID0gdW5hbGlnbmN0bF9zdHJpbmcoY3RsKTsKKwkJCXJldHVybiBSVkFMX1NUUjsKKwkJfQorI2VuZGlmCisJCWRlZmF1bHQ6CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIEhBVkVfUFJDVEwgKi8KKworaW50CitzeXNfZ2V0aG9zdGlkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZXhpdGluZyh0Y3ApKQorCQlyZXR1cm4gUlZBTF9IRVg7CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NldGhvc3RuYW1lKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGhuKHRjcCwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19nZXRob3N0bmFtZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJZWxzZQorCQkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19zZXRkb21haW5uYW1lKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGhuKHRjcCwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCisjaWYgIWRlZmluZWQoTElOVVgpCisKK2ludAorc3lzX2dldGRvbWFpbm5hbWUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJCWVsc2UKKwkJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiAhTElOVVggKi8KKworaW50CitzeXNfZXhpdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIl9leGl0IHJldHVybmVkIVxuIik7CisJCXJldHVybiAtMTsKKwl9CisJLyogc3BlY2lhbCBjYXNlOiB3ZSBzdG9wIHRyYWNpbmcgdGhpcyBwcm9jZXNzLCBmaW5pc2ggbGluZSBub3cgKi8KKwl0cHJpbnRmKCIlbGQpICIsIHRjcC0+dV9hcmdbMF0pOworCXRhYnRvKGFjb2x1bW4pOworCXRwcmludGYoIj0gPyIpOworCXByaW50dHJhaWxlcih0Y3ApOworCXJldHVybiAwOworfQorCitpbnQKK2ludGVybmFsX2V4aXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRjcC0+ZmxhZ3MgfD0gVENCX0VYSVRJTkc7CisjaWZkZWYgX19OUl9leGl0X2dyb3VwCisjIGlmZGVmIElBNjQKKwkJaWYgKGlhMzIpIHsKKwkJCWlmICh0Y3AtPnNjbm8gPT0gMjUyKQorCQkJCXRjcC0+ZmxhZ3MgfD0gVENCX0dST1VQX0VYSVRJTkc7CisJCX0gZWxzZQorIyBlbmRpZgorCQlpZiAoa25vd25fc2Nubyh0Y3ApID09IF9fTlJfZXhpdF9ncm91cCkKKwkJCXRjcC0+ZmxhZ3MgfD0gVENCX0dST1VQX0VYSVRJTkc7CisjZW5kaWYKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qIFRDUCBpcyBjcmVhdGluZyBhIGNoaWxkIHdlIHdhbnQgdG8gZm9sbG93LgorICAgSWYgdGhlcmUgd2lsbCBiZSBzcGFjZSBpbiB0Y2J0YWIgZm9yIGl0LCBzZXQgVENCX0ZPTExPV0ZPUksgYW5kIHJldHVybiAwLgorICAgSWYgbm90LCBjbGVhciBUQ0JfRk9MTE9XRk9SSywgcHJpbnQgYW4gZXJyb3IsIGFuZCByZXR1cm4gMS4gICovCitzdGF0aWMgaW50Citmb3JrX3RjYihzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaWYgKG5wcm9jcyA9PSB0Y2J0YWJzaXplKSB7CisJCWlmIChleHBhbmRfdGNidGFiKCkpIHsKKwkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9GT0xMT1dGT1JLOworCQkJcmV0dXJuIDE7CisJCX0KKwl9CisKKwl0Y3AtPmZsYWdzIHw9IFRDQl9GT0xMT1dGT1JLOworCXJldHVybiAwOworfQorCisjaWZkZWYgVVNFX1BST0NGUworCitpbnQKK3N5c19mb3JrKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCWlmIChnZXRydmFsMih0Y3ApKSB7CisJCQl0Y3AtPmF1eHN0ciA9ICJjaGlsZCBwcm9jZXNzIjsKKwkJCXJldHVybiBSVkFMX1VERUNJTUFMIHwgUlZBTF9TVFI7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZiBVTklYV0FSRSA+IDIKKworaW50CitzeXNfcmZvcmsodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYgKCIlbGQiLCB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJZWxzZSB7CisJCWlmIChnZXRydmFsMih0Y3ApKSB7CisJCQl0Y3AtPmF1eHN0ciA9ICJjaGlsZCBwcm9jZXNzIjsKKwkJCXJldHVybiBSVkFMX1VERUNJTUFMIHwgUlZBTF9TVFI7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZgorCitpbnQKK2ludGVybmFsX2ZvcmsodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCB0Y2IgKnRjcGNoaWxkOworCisJaWYgKGV4aXRpbmcodGNwKSkgeworI2lmZGVmIFNZU19yZm9yaworCQlpZiAoa25vd25fc2Nubyh0Y3ApID09IFNZU19yZm9yayAmJiAhKHRjcC0+dV9hcmdbMF0mUkZQUk9DKSkKKwkJCXJldHVybiAwOworI2VuZGlmCisJCWlmIChnZXRydmFsMih0Y3ApKQorCQkJcmV0dXJuIDA7CisJCWlmICghZm9sbG93Zm9yaykKKwkJCXJldHVybiAwOworCQlpZiAoZm9ya190Y2IodGNwKSkKKwkJCXJldHVybiAwOworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXJldHVybiAwOworCQlpZiAoKHRjcGNoaWxkID0gYWxsb2N0Y2IodGNwLT51X3J2YWwpKSA9PSBOVUxMKQorCQkJcmV0dXJuIDA7CisJCWlmIChwcm9jX29wZW4odGNwY2hpbGQsIDIpIDwgMCkKKwkJICAJZHJvcHRjYih0Y3BjaGlsZCk7CisJfQorCXJldHVybiAwOworfQorCisjZWxzZSAvKiAhVVNFX1BST0NGUyAqLworCisjaWZkZWYgTElOVVgKKworLyogZGVmaW5lcyBjb3BpZWQgZnJvbSBsaW51eC9zY2hlZC5oIHNpbmNlIHdlIGNhbid0IGluY2x1ZGUgdGhhdAorICogb3Vyc2VsdmVzIChpdCBjb25mbGljdHMgd2l0aCAqbG90cyogb2YgbGliYyBpbmNsdWRlcykKKyAqLworI2RlZmluZSBDU0lHTkFMICAgICAgICAgMHgwMDAwMDBmZiAgICAgIC8qIHNpZ25hbCBtYXNrIHRvIGJlIHNlbnQgYXQgZXhpdCAqLworI2RlZmluZSBDTE9ORV9WTSAgICAgICAgMHgwMDAwMDEwMCAgICAgIC8qIHNldCBpZiBWTSBzaGFyZWQgYmV0d2VlbiBwcm9jZXNzZXMgKi8KKyNkZWZpbmUgQ0xPTkVfRlMgICAgICAgIDB4MDAwMDAyMDAgICAgICAvKiBzZXQgaWYgZnMgaW5mbyBzaGFyZWQgYmV0d2VlbiBwcm9jZXNzZXMgKi8KKyNkZWZpbmUgQ0xPTkVfRklMRVMgICAgIDB4MDAwMDA0MDAgICAgICAvKiBzZXQgaWYgb3BlbiBmaWxlcyBzaGFyZWQgYmV0d2VlbiBwcm9jZXNzZXMgKi8KKyNkZWZpbmUgQ0xPTkVfU0lHSEFORCAgIDB4MDAwMDA4MDAgICAgICAvKiBzZXQgaWYgc2lnbmFsIGhhbmRsZXJzIHNoYXJlZCAqLworI2RlZmluZSBDTE9ORV9JRExFVEFTSyAgMHgwMDAwMTAwMCAgICAgIC8qIGtlcm5lbC1vbmx5IGZsYWcgKi8KKyNkZWZpbmUgQ0xPTkVfUFRSQUNFICAgIDB4MDAwMDIwMDAgICAgICAvKiBzZXQgaWYgd2Ugd2FudCB0byBsZXQgdHJhY2luZyBjb250aW51ZSBvbiB0aGUgY2hpbGQgdG9vICovCisjZGVmaW5lIENMT05FX1ZGT1JLICAgICAweDAwMDA0MDAwICAgICAgLyogc2V0IGlmIHRoZSBwYXJlbnQgd2FudHMgdGhlIGNoaWxkIHRvIHdha2UgaXQgdXAgb24gbW1fcmVsZWFzZSAqLworI2RlZmluZSBDTE9ORV9QQVJFTlQgICAgMHgwMDAwODAwMCAgICAgIC8qIHNldCBpZiB3ZSB3YW50IHRvIGhhdmUgdGhlIHNhbWUgcGFyZW50IGFzIHRoZSBjbG9uZXIgKi8KKyNkZWZpbmUgQ0xPTkVfVEhSRUFECTB4MDAwMTAwMDAJLyogU2FtZSB0aHJlYWQgZ3JvdXA/ICovCisjZGVmaW5lIENMT05FX05FV05TCTB4MDAwMjAwMDAJLyogTmV3IG5hbWVzcGFjZSBncm91cD8gKi8KKyNkZWZpbmUgQ0xPTkVfU1lTVlNFTQkweDAwMDQwMDAwCS8qIHNoYXJlIHN5c3RlbSBWIFNFTV9VTkRPIHNlbWFudGljcyAqLworI2RlZmluZSBDTE9ORV9TRVRUTFMJMHgwMDA4MDAwMAkvKiBjcmVhdGUgYSBuZXcgVExTIGZvciB0aGUgY2hpbGQgKi8KKyNkZWZpbmUgQ0xPTkVfUEFSRU5UX1NFVFRJRAkweDAwMTAwMDAwCS8qIHNldCB0aGUgVElEIGluIHRoZSBwYXJlbnQgKi8KKyNkZWZpbmUgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQJMHgwMDIwMDAwMAkvKiBjbGVhciB0aGUgVElEIGluIHRoZSBjaGlsZCAqLworI2RlZmluZSBDTE9ORV9ERVRBQ0hFRAkJMHgwMDQwMDAwMAkvKiBwYXJlbnQgd2FudHMgbm8gY2hpbGQtZXhpdCBzaWduYWwgKi8KKyNkZWZpbmUgQ0xPTkVfVU5UUkFDRUQJCTB4MDA4MDAwMDAJLyogc2V0IGlmIHRoZSB0cmFjaW5nIHByb2Nlc3MgY2FuJ3QgZm9yY2UgQ0xPTkVfUFRSQUNFIG9uIHRoaXMgY2xvbmUgKi8KKyNkZWZpbmUgQ0xPTkVfQ0hJTERfU0VUVElECTB4MDEwMDAwMDAJLyogc2V0IHRoZSBUSUQgaW4gdGhlIGNoaWxkICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBjbG9uZV9mbGFnc1tdID0geworICAgIHsgQ0xPTkVfVk0sCQkiQ0xPTkVfVk0iCX0sCisgICAgeyBDTE9ORV9GUywJCSJDTE9ORV9GUyIJfSwKKyAgICB7IENMT05FX0ZJTEVTLAkiQ0xPTkVfRklMRVMiCX0sCisgICAgeyBDTE9ORV9TSUdIQU5ELAkiQ0xPTkVfU0lHSEFORCIJfSwKKyAgICB7IENMT05FX0lETEVUQVNLLAkiQ0xPTkVfSURMRVRBU0sifSwKKyAgICB7IENMT05FX1BUUkFDRSwJIkNMT05FX1BUUkFDRSIJfSwKKyAgICB7IENMT05FX1ZGT1JLLAkiQ0xPTkVfVkZPUksiCX0sCisgICAgeyBDTE9ORV9QQVJFTlQsCSJDTE9ORV9QQVJFTlQiCX0sCisgICAgeyBDTE9ORV9USFJFQUQsCSJDTE9ORV9USFJFQUQiIH0sCisgICAgeyBDTE9ORV9ORVdOUywJIkNMT05FX05FV05TIiB9LAorICAgIHsgQ0xPTkVfU1lTVlNFTSwJIkNMT05FX1NZU1ZTRU0iIH0sCisgICAgeyBDTE9ORV9TRVRUTFMsCSJDTE9ORV9TRVRUTFMiIH0sCisgICAgeyBDTE9ORV9QQVJFTlRfU0VUVElELCJDTE9ORV9QQVJFTlRfU0VUVElEIiB9LAorICAgIHsgQ0xPTkVfQ0hJTERfQ0xFQVJUSUQsIkNMT05FX0NISUxEX0NMRUFSVElEIiB9LAorICAgIHsgQ0xPTkVfREVUQUNIRUQsCSJDTE9ORV9ERVRBQ0hFRCIgfSwKKyAgICB7IENMT05FX1VOVFJBQ0VELAkiQ0xPTkVfVU5UUkFDRUQiIH0sCisgICAgeyBDTE9ORV9DSElMRF9TRVRUSUQsIkNMT05FX0NISUxEX1NFVFRJRCIgfSwKKyAgICB7IDAsCQlOVUxMCQl9LAorfTsKKworIyBpZmRlZiBJMzg2CisjICBpbmNsdWRlIDxhc20vbGR0Lmg+CisjICAgaWZkZWYgSEFWRV9TVFJVQ1RfVVNFUl9ERVNDCisjICAgIGRlZmluZSBtb2RpZnlfbGR0X2xkdF9zIHVzZXJfZGVzYworIyAgIGVuZGlmCitleHRlcm4gdm9pZCBwcmludF9sZHRfZW50cnkoKTsKKyMgZW5kaWYKKworIyBpZiBkZWZpbmVkIElBNjQKKyMgIGRlZmluZSBBUkdfRkxBR1MJMAorIyAgZGVmaW5lIEFSR19TVEFDSwkxCisjICBkZWZpbmUgQVJHX1NUQUNLU0laRQkoa25vd25fc2Nubyh0Y3ApID09IFNZU19jbG9uZTIgPyAyIDogLTEpCisjICBkZWZpbmUgQVJHX1BUSUQJKGtub3duX3Njbm8odGNwKSA9PSBTWVNfY2xvbmUyID8gMyA6IDIpCisjICBkZWZpbmUgQVJHX0NUSUQJKGtub3duX3Njbm8odGNwKSA9PSBTWVNfY2xvbmUyID8gNCA6IDMpCisjICBkZWZpbmUgQVJHX1RMUwkoa25vd25fc2Nubyh0Y3ApID09IFNZU19jbG9uZTIgPyA1IDogNCkKKyMgZWxpZiBkZWZpbmVkIFMzOTAgfHwgZGVmaW5lZCBTMzkwWAorIyAgZGVmaW5lIEFSR19TVEFDSwkwCisjICBkZWZpbmUgQVJHX0ZMQUdTCTEKKyMgIGRlZmluZSBBUkdfUFRJRAkyCisjICBkZWZpbmUgQVJHX0NUSUQJMworIyAgZGVmaW5lIEFSR19UTFMJNAorIyBlbGlmIGRlZmluZWQgWDg2XzY0IHx8IGRlZmluZWQgQUxQSEEKKyMgIGRlZmluZSBBUkdfRkxBR1MJMAorIyAgZGVmaW5lIEFSR19TVEFDSwkxCisjICBkZWZpbmUgQVJHX1BUSUQJMgorIyAgZGVmaW5lIEFSR19DVElECTMKKyMgIGRlZmluZSBBUkdfVExTCTQKKyMgZWxzZQorIyAgZGVmaW5lIEFSR19GTEFHUwkwCisjICBkZWZpbmUgQVJHX1NUQUNLCTEKKyMgIGRlZmluZSBBUkdfUFRJRAkyCisjICBkZWZpbmUgQVJHX1RMUwkzCisjICBkZWZpbmUgQVJHX0NUSUQJNAorIyBlbmRpZgorCitpbnQKK3N5c19jbG9uZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQl1bnNpZ25lZCBsb25nIGZsYWdzID0gdGNwLT51X2FyZ1tBUkdfRkxBR1NdOworCQl0cHJpbnRmKCJjaGlsZF9zdGFjaz0lI2x4LCAiLCB0Y3AtPnVfYXJnW0FSR19TVEFDS10pOworIyBpZmRlZiBBUkdfU1RBQ0tTSVpFCisJCWlmIChBUkdfU1RBQ0tTSVpFICE9IC0xKQorCQkJdHByaW50Zigic3RhY2tfc2l6ZT0lI2x4LCAiLAorCQkJCXRjcC0+dV9hcmdbQVJHX1NUQUNLU0laRV0pOworIyBlbmRpZgorCQl0cHJpbnRmKCJmbGFncz0iKTsKKwkJcHJpbnRmbGFncyhjbG9uZV9mbGFncywgZmxhZ3MgJn4gQ1NJR05BTCwgTlVMTCk7CisJCWlmICgoZmxhZ3MgJiBDU0lHTkFMKSAhPSAwKQorCQkJdHByaW50ZigifCVzIiwgc2lnbmFtZShmbGFncyAmIENTSUdOQUwpKTsKKwkJaWYgKChmbGFncyAmIChDTE9ORV9QQVJFTlRfU0VUVElEfENMT05FX0NISUxEX1NFVFRJRAorCQkJICAgICAgfENMT05FX0NISUxEX0NMRUFSVElEfENMT05FX1NFVFRMUykpID09IDApCisJCQlyZXR1cm4gMDsKKwkJaWYgKGZsYWdzICYgQ0xPTkVfUEFSRU5UX1NFVFRJRCkKKwkJCXRwcmludGYoIiwgcGFyZW50X3RpZHB0cj0lI2x4IiwgdGNwLT51X2FyZ1tBUkdfUFRJRF0pOworCQlpZiAoZmxhZ3MgJiBDTE9ORV9TRVRUTFMpIHsKKyMgaWZkZWYgSTM4NgorCQkJc3RydWN0IG1vZGlmeV9sZHRfbGR0X3MgY29weTsKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbQVJHX1RMU10sICZjb3B5KSAhPSAtMSkgeworCQkJCXRwcmludGYoIiwge2VudHJ5X251bWJlcjolZCwgIiwKKwkJCQkJY29weS5lbnRyeV9udW1iZXIpOworCQkJCWlmICghdmVyYm9zZSh0Y3ApKQorCQkJCQl0cHJpbnRmKCIuLi59Iik7CisJCQkJZWxzZQorCQkJCQlwcmludF9sZHRfZW50cnkoJmNvcHkpOworCQkJfQorCQkJZWxzZQorIyBlbmRpZgorCQkJCXRwcmludGYoIiwgdGxzPSUjbHgiLCB0Y3AtPnVfYXJnW0FSR19UTFNdKTsKKwkJfQorCQlpZiAoZmxhZ3MgJiAoQ0xPTkVfQ0hJTERfU0VUVElEfENMT05FX0NISUxEX0NMRUFSVElEKSkKKwkJCXRwcmludGYoIiwgY2hpbGRfdGlkcHRyPSUjbHgiLCB0Y3AtPnVfYXJnW0FSR19DVElEXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c191bnNoYXJlKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcHJpbnRmbGFncyhjbG9uZV9mbGFncywgdGNwLT51X2FyZ1swXSwgIkNMT05FXz8/PyIpOworCXJldHVybiAwOworfQorI2VuZGlmCisKK2ludAorc3lzX2ZvcmsodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChleGl0aW5nKHRjcCkpCisJCXJldHVybiBSVkFMX1VERUNJTUFMOworCXJldHVybiAwOworfQorCitpbnQKK2NoYW5nZV9zeXNjYWxsKHRjcCwgbmV3KQorc3RydWN0IHRjYiAqdGNwOworaW50IG5ldzsKK3sKKyNpZiBkZWZpbmVkKExJTlVYKQorI2lmIGRlZmluZWQoSTM4NikKKwkvKiBBdHRlbXB0IHRvIG1ha2UgdmZvcmsgaW50byBmb3JrLCB3aGljaCB3ZSBjYW4gZm9sbG93LiAqLworCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShPUklHX0VBWCAqIDQpLCBuZXcpIDwgMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChYODZfNjQpCisJLyogQXR0ZW1wdCB0byBtYWtlIHZmb3JrIGludG8gZm9yaywgd2hpY2ggd2UgY2FuIGZvbGxvdy4gKi8KKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoT1JJR19SQVggKiA4KSwgbmV3KSA8IDApCisJCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKKyNlbGlmIGRlZmluZWQoUE9XRVJQQykKKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsCisJCSAgIChjaGFyKikoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX1IwKSwgbmV3KSA8IDApCisJCXJldHVybiAtMTsKKyAgICAgICByZXR1cm4gMDsKKyNlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKKwkvKiBzMzkwIGxpbnV4IGFmdGVyIDIuNC43IGhhcyBhIGhvb2sgaW4gZW50cnkuUyB0byBhbGxvdyB0aGlzICovCisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX0dQUjIpLCBuZXcpPDApCisJICAgICAgICByZXR1cm4gLTE7CisJcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKE02OEspCisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKDQqUFRfT1JJR19EMCksIG5ldyk8MCkKKwkgICAgCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKKyNlbGlmIGRlZmluZWQoU1BBUkMpIHx8IGRlZmluZWQoU1BBUkM2NCkKKwlzdHJ1Y3QgcmVncyByZWdzOworCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciopJnJlZ3MsIDApPDApCisJCXJldHVybiAtMTsKKwlyZWdzLnJfZzE9bmV3OworCWlmIChwdHJhY2UoUFRSQUNFX1NFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciopJnJlZ3MsIDApPDApCisJICAgIAlyZXR1cm4gLTE7CisJcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKE1JUFMpCisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19WMCksIG5ldyk8MCkKKwkgICAgCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKKyNlbGlmIGRlZmluZWQoQUxQSEEpCisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19BMyksIG5ldyk8MCkKKwkgICAgCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKKyNlbGlmIGRlZmluZWQoSUE2NCkKKwlpZiAoaWEzMikgeworCQlzd2l0Y2ggKG5ldykgeworCQkgICAgICBjYXNlIDI6IGJyZWFrOwkvKiB4ODYgU1lTX2ZvcmsgKi8KKwkJICAgICAgY2FzZSBTWVNfY2xvbmU6CW5ldyA9IDEyMDsgYnJlYWs7CisJCSAgICAgIGRlZmF1bHQ6CisJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiB1bmV4cGVjdGVkIHN5c2NhbGwgJWRcbiIsCisJCQkJX19GVU5DVElPTl9fLCBuZXcpOworCQkJcmV0dXJuIC0xOworCQl9CisJCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShQVF9SMSksIG5ldyk8MCkKKwkJCXJldHVybiAtMTsKKwl9IGVsc2UgaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX1IxNSksIG5ldyk8MCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChIUFBBKQorCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShQVF9HUjIwKSwgbmV3KTwwKQorCSAgICAJcmV0dXJuIC0xOworCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChTSCkKKyAgICAgICBpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCooUkVHX1JFRzArMykpLCBuZXcpPDApCisgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKFNINjQpCisgICAgICAgLyogVG9wIGhhbGYgb2YgcmVnIGVuY29kZXMgdGhlIG5vLiBvZiBhcmdzIG4gYXMgMHgxbi4KKyAgICAgICAgICBBc3N1bWUgMCBhcmdzIGFzIGtlcm5lbCBuZXZlciBhY3R1YWxseSBjaGVja3MuLi4gKi8KKyAgICAgICBpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkVHX1NZU0NBTEwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwMCB8IG5ldykgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgcmV0dXJuIDA7CisjZWxpZiBkZWZpbmVkKEFSTSkKKyAgICAgICAvKiBTb21lIGtlcm5lbHMgc3VwcG9ydCB0aGlzLCBzb21lIChwcmUtMi42LjE2IG9yIHNvKSBkb24ndC4gICovCisjIGlmbmRlZiBQVFJBQ0VfU0VUX1NZU0NBTEwKKyMgIGRlZmluZSBQVFJBQ0VfU0VUX1NZU0NBTEwgMjMKKyMgZW5kaWYKKworICAgICAgIGlmIChwdHJhY2UgKFBUUkFDRV9TRVRfU1lTQ0FMTCwgdGNwLT5waWQsIDAsIG5ldykgIT0gMCkKKwkJcmV0dXJuIC0xOworCisgICAgICAgcmV0dXJuIDA7CisjZWxzZQorI3dhcm5pbmcgRG8gbm90IGtub3cgaG93IHRvIGhhbmRsZSBjaGFuZ2Vfc3lzY2FsbCBmb3IgdGhpcyBhcmNoaXRlY3R1cmUKKyNlbmRpZiAvKiBhcmNoaXRlY3R1cmUgKi8KKyNlbmRpZiAvKiBMSU5VWCAqLworCXJldHVybiAtMTsKK30KKworI2lmIDAKK2ludAorc2V0YXJnKHRjcCwgYXJnbnVtKQorCXN0cnVjdCB0Y2IgKnRjcDsKKwlpbnQgYXJnbnVtOworeworI2lmIGRlZmluZWQgKElBNjQpCisJeworCQl1bnNpZ25lZCBsb25nICpic3AsICphcDsKKworCQlpZiAodXBlZWsodGNwLT5waWQsIFBUX0FSX0JTUCwgKGxvbmcgKikgJmJzcCkgLCAwKQorCQkJcmV0dXJuIC0xOworCisJCWFwID0gaWE2NF9yc2Vfc2tpcF9yZWdzKGJzcCwgYXJnbnVtKTsKKwkJZXJybm8gPSAwOworCQlwdHJhY2UoUFRSQUNFX1BPS0VEQVRBLCB0Y3AtPnBpZCwgKGNoYXIgKikgYXAsIHRjcC0+dV9hcmdbYXJnbnVtXSk7CisJCWlmIChlcnJubykKKwkJCXJldHVybiAtMTsKKworCX0KKyNlbGlmIGRlZmluZWQoSTM4NikKKwl7CisJCXB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKDQqYXJnbnVtKSwgdGNwLT51X2FyZ1thcmdudW1dKTsKKwkJaWYgKGVycm5vKQorCQkJcmV0dXJuIC0xOworCX0KKyNlbGlmIGRlZmluZWQoWDg2XzY0KQorCXsKKwkJcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoOCoobG9uZylhcmdudW0pLCB0Y3AtPnVfYXJnW2FyZ251bV0pOworCQlpZiAoZXJybm8pCisJCQlyZXR1cm4gLTE7CisJfQorI2VsaWYgZGVmaW5lZChQT1dFUlBDKQorI2lmbmRlZiBQVF9PUklHX1IzCisjZGVmaW5lIFBUX09SSUdfUjMgMzQKKyNlbmRpZgorCXsKKwkJcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsCisJCSAgICAgICAoY2hhciopKChhcmdudW09PTAgPyBQVF9PUklHX1IzIDogYXJnbnVtK1BUX1IzKSpzaXplb2YodW5zaWduZWQgbG9uZykpLAorCQkgICAgICAgdGNwLT51X2FyZ1thcmdudW1dKTsKKwkJaWYgKGVycm5vKQorCQkJcmV0dXJuIC0xOworCX0KKyNlbGlmIGRlZmluZWQoTUlQUykKKwl7CisJCWVycm5vID0gMDsKKwkJaWYgKGFyZ251bSA8IDQpCisJCQlwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwKKwkJCSAgICAgICAoY2hhciopKFJFR19BMCArIGFyZ251bSksIHRjcC0+dV9hcmdbYXJnbnVtXSk7CisJCWVsc2UgeworCQkJdW5zaWduZWQgbG9uZyAqc3A7CisKKwkJCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1NQLCAobG9uZyAqKSAmc3ApICwgMCkKKwkJCQlyZXR1cm4gLTE7CisKKwkJCXB0cmFjZShQVFJBQ0VfUE9LRURBVEEsIHRjcC0+cGlkLAorCQkJICAgICAgIChjaGFyKikoc3AgKyBhcmdudW0gLSA0KSwgdGNwLT51X2FyZ1thcmdudW1dKTsKKwkJfQorCQlpZiAoZXJybm8pCisJCQlyZXR1cm4gLTE7CisJfQorI2VsaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQorICAgICAgICB7CisJCWlmKGFyZ251bSA8PSA1KQorCQkJcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsCisJCQkgICAgICAgKGNoYXIgKikgKGFyZ251bT09MCA/IFBUX09SSUdHUFIyIDoKKwkJCSAgICAgICBQVF9HUFIyICsgYXJnbnVtKnNpemVvZihsb25nKSksCisJCQkgICAgICAgdGNwLT51X2FyZ1thcmdudW1dKTsKKwkJZWxzZQorCQkJcmV0dXJuIC1FMkJJRzsKKwkJaWYgKGVycm5vKQorCQkJcmV0dXJuIC0xOworICAgICAgICB9CisjZWxzZQorIyB3YXJuaW5nIFNvcnJ5LCBzZXRhcmdzIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhpcyBhcmNoaXRlY3R1cmUuCisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWYgZGVmaW5lZCBTWVNfY2xvbmUgfHwgZGVmaW5lZCBTWVNfY2xvbmUyIHx8IGRlZmluZWQgX19OUl9jbG9uZQoraW50CitpbnRlcm5hbF9jbG9uZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IHRjYiAqdGNwY2hpbGQ7CisJaW50IHBpZDsKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlpZiAoIWZvbGxvd2ZvcmspCisJCQlyZXR1cm4gMDsKKwkJaWYgKGZvcmtfdGNiKHRjcCkpCisJCQlyZXR1cm4gMDsKKwkJaWYgKHNldGJwdCh0Y3ApIDwgMCkKKwkJCXJldHVybiAwOworCX0gZWxzZSB7CisJCWludCBicHQgPSB0Y3AtPmZsYWdzICYgVENCX0JQVFNFVDsKKworCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0ZPTExPV0ZPUkspKQorCQkJcmV0dXJuIDA7CisKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCWlmIChicHQpCisJCQkJY2xlYXJicHQodGNwKTsKKwkJCXJldHVybiAwOworCQl9CisKKwkJcGlkID0gdGNwLT51X3J2YWw7CisKKyNpZmRlZiBDTE9ORV9QVFJBQ0UJCS8qIFNlZSBuZXcgc2V0YnB0IGNvZGUuICAqLworCQl0Y3BjaGlsZCA9IHBpZDJ0Y2IocGlkKTsKKwkJaWYgKHRjcGNoaWxkICE9IE5VTEwpIHsKKwkJCS8qIFRoZSBjaGlsZCBhbHJlYWR5IHJlcG9ydGVkIGl0cyBzdGFydHVwIHRyYXAKKwkJCSAgIGJlZm9yZSB0aGUgcGFyZW50IHJlcG9ydGVkIGl0cyBzeXNjYWxsIHJldHVybi4gICovCisJCQlpZiAoKHRjcGNoaWxkLT5mbGFncworCQkJICAgICAmIChUQ0JfU1RBUlRVUHxUQ0JfQVRUQUNIRUR8VENCX1NVU1BFTkRFRCkpCisJCQkgICAgIT0gKFRDQl9TVEFSVFVQfFRDQl9BVFRBQ0hFRHxUQ0JfU1VTUEVOREVEKSkKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKK1twcmVhdHRhY2hlZCBjaGlsZCAlZCBvZiAlZCBpbiB3ZWlyZCBzdGF0ZSFdXG4iLAorCQkJCQlwaWQsIHRjcC0+cGlkKTsKKwkJfQorCQllbHNlCisjZW5kaWYKKwkJaWYgKGZvcmtfdGNiKHRjcCkgfHwgKHRjcGNoaWxkID0gYWxsb2N0Y2IocGlkKSkgPT0gTlVMTCkgeworCQkJaWYgKGJwdCkKKwkJCQljbGVhcmJwdCh0Y3ApOworCQkJa2lsbChwaWQsIFNJR0tJTEwpOyAvKiBYWFggKi8KKwkJCXJldHVybiAwOworCQl9CisKKyNpZm5kZWYgQ0xPTkVfUFRSQUNFCisJCS8qIEF0dGFjaCB0byB0aGUgbmV3IGNoaWxkICovCisJCWlmIChwdHJhY2UoUFRSQUNFX0FUVEFDSCwgcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKKwkJCWlmIChicHQpCisJCQkJY2xlYXJicHQodGNwKTsKKwkJCXBlcnJvcigiUFRSQUNFX0FUVEFDSCIpOworCQkJZnByaW50ZihzdGRlcnIsICJUb28gbGF0ZT9cbiIpOworCQkJZHJvcHRjYih0Y3BjaGlsZCk7CisJCQlyZXR1cm4gMDsKKwkJfQorI2VuZGlmCisKKwkJaWYgKGJwdCkKKwkJCWNsZWFyYnB0KHRjcCk7CisKKwkJdGNwY2hpbGQtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRDsKKwkJLyogQ2hpbGQgaGFzIEJQVCB0b28sIG11c3QgYmUgcmVtb3ZlZCBvbiBmaXJzdCBvY2Nhc2lvbi4gICovCisJCWlmIChicHQpIHsKKwkJCXRjcGNoaWxkLT5mbGFncyB8PSBUQ0JfQlBUU0VUOworCQkJdGNwY2hpbGQtPmJhZGRyID0gdGNwLT5iYWRkcjsKKwkJCW1lbWNweSh0Y3BjaGlsZC0+aW5zdCwgdGNwLT5pbnN0LAorCQkJCXNpemVvZiB0Y3BjaGlsZC0+aW5zdCk7CisJCX0KKwkJdGNwY2hpbGQtPnBhcmVudCA9IHRjcDsKKyAJCXRjcC0+bmNoaWxkcmVuKys7CisJCWlmICh0Y3BjaGlsZC0+ZmxhZ3MgJiBUQ0JfU1VTUEVOREVEKSB7CisJCQkvKiBUaGUgY2hpbGQgd2FzIGJvcm4gc3VzcGVuZGVkLCBkdWUgdG8gb3VyIGhhdmluZworCQkJICAgZm9yY2VkIENMT05FX1BUUkFDRS4gICovCisJCQlpZiAoYnB0KQorCQkJCWNsZWFyYnB0KHRjcGNoaWxkKTsKKworCQkJdGNwY2hpbGQtPmZsYWdzICY9IH4oVENCX1NVU1BFTkRFRHxUQ0JfU1RBUlRVUCk7CisJCQlpZiAocHRyYWNlKFBUUkFDRV9TWVNDQUxMLCBwaWQsIChjaGFyICopIDEsIDApIDwgMCkgeworCQkJCXBlcnJvcigicmVzdW1lOiBwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIC4uLikiKTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisKKwkJCWlmICghcWZsYWcpCisJCQkJZnByaW50ZihzdGRlcnIsICJcCitQcm9jZXNzICV1IHJlc3VtZWQgKHBhcmVudCAlZCByZWFkeSlcbiIsCisJCQkJCXBpZCwgdGNwLT5waWQpOworCQl9CisJCWVsc2UgeworCQkJbmV3b3V0Zih0Y3BjaGlsZCk7CisJCQlpZiAoIXFmbGFnKQorCQkJCWZwcmludGYoc3RkZXJyLCAiUHJvY2VzcyAlZCBhdHRhY2hlZFxuIiwgcGlkKTsKKwkJfQorCisjaWZkZWYgVENCX0NMT05FX1RIUkVBRAorCQl7CisJCQkvKgorCQkJICogU2F2ZSB0aGUgZmxhZ3MgdXNlZCBpbiB0aGlzIGNhbGwsCisJCQkgKiBpbiBjYXNlIHdlIHBvaW50IFRDUCB0byBvdXIgcGFyZW50IGJlbG93LgorCQkJICovCisJCQlpbnQgY2FsbF9mbGFncyA9IHRjcC0+dV9hcmdbQVJHX0ZMQUdTXTsKKwkJCWlmICgodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpICYmCisJCQkgICAgdGNwLT5wYXJlbnQgIT0gTlVMTCkgeworCQkJCS8qIFRoZSBwYXJlbnQgaW4gdGhpcyBjbG9uZSBpcyBpdHNlbGYgYQorCQkJCSAgIHRocmVhZCBiZWxvbmdpbmcgdG8gYW5vdGhlciBwcm9jZXNzLgorCQkJCSAgIFRoZXJlIGlzIG5vIG1lYW5pbmcgdG8gdGhlIHBhcmVudGFnZQorCQkJCSAgIHJlbGF0aW9uc2hpcCBvZiB0aGUgbmV3IGNoaWxkIHdpdGggdGhlCisJCQkJICAgdGhyZWFkLCBvbmx5IHdpdGggdGhlIHByb2Nlc3MuICBXZQorCQkJCSAgIGFzc29jaWF0ZSB0aGUgbmV3IHRocmVhZCB3aXRoIG91cgorCQkJCSAgIHBhcmVudC4gIFNpbmNlIHRoaXMgaXMgZG9uZSBmb3IgZXZlcnkKKwkJCQkgICBuZXcgdGhyZWFkLCB0aGVyZSB3aWxsIG5ldmVyIGJlIGEKKwkJCQkgICBUQ0JfQ0xPTkVfVEhSRUFEIHByb2Nlc3MgdGhhdCBoYXMKKwkJCQkgICBjaGlsZHJlbi4gICovCisJCQkJLS10Y3AtPm5jaGlsZHJlbjsKKwkJCQl0Y3AgPSB0Y3AtPnBhcmVudDsKKwkJCQl0Y3BjaGlsZC0+cGFyZW50ID0gdGNwOworCQkJCSsrdGNwLT5uY2hpbGRyZW47CisJCQl9CisJCQlpZiAoY2FsbF9mbGFncyAmIENMT05FX1RIUkVBRCkgeworCQkJCXRjcGNoaWxkLT5mbGFncyB8PSBUQ0JfQ0xPTkVfVEhSRUFEOworCQkJCSsrdGNwLT5uY2xvbmVfdGhyZWFkczsKKwkJCX0KKwkJCWlmIChjYWxsX2ZsYWdzICYgQ0xPTkVfREVUQUNIRUQpIHsKKwkJCQl0Y3BjaGlsZC0+ZmxhZ3MgfD0gVENCX0NMT05FX0RFVEFDSEVEOworCQkJCSsrdGNwLT5uY2xvbmVfZGV0YWNoZWQ7CisJCQl9CisJCX0KKyNlbmRpZgorCisgCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQKK2ludGVybmFsX2ZvcmsodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmZGVmIExJTlVYCisJLyogV2UgZG8gc3BlY2lhbCBtYWdpYyB3aXRoIGNsb25lIGZvciBhbnkgY2xvbmUgb3IgZm9yay4gICovCisJcmV0dXJuIGludGVybmFsX2Nsb25lKHRjcCk7CisjZWxzZQorCisJc3RydWN0IHRjYiAqdGNwY2hpbGQ7CisJaW50IHBpZDsKKwlpbnQgZG9udF9mb2xsb3cgPSAwOworCisjaWZkZWYgU1lTX3Zmb3JrCisJaWYgKGtub3duX3Njbm8odGNwKSA9PSBTWVNfdmZvcmspIHsKKwkJLyogQXR0ZW1wdCB0byBtYWtlIHZmb3JrIGludG8gZm9yaywgd2hpY2ggd2UgY2FuIGZvbGxvdy4gKi8KKwkJaWYgKCFmb2xsb3d2Zm9yayB8fAorCQkgICAgY2hhbmdlX3N5c2NhbGwodGNwLCBTWVNfZm9yaykgPCAwKQorCQkJZG9udF9mb2xsb3cgPSAxOworCX0KKyNlbmRpZgorCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWlmICghZm9sbG93Zm9yayB8fCBkb250X2ZvbGxvdykKKwkJCXJldHVybiAwOworCQlpZiAoZm9ya190Y2IodGNwKSkKKwkJCXJldHVybiAwOworCQlpZiAoc2V0YnB0KHRjcCkgPCAwKQorCQkJcmV0dXJuIDA7CisgIAl9CisJZWxzZSB7CisJCWludCBicHQgPSB0Y3AtPmZsYWdzICYgVENCX0JQVFNFVDsKKworCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0ZPTExPV0ZPUkspKQorCQkJcmV0dXJuIDA7CisJCWlmIChicHQpCisJCQljbGVhcmJwdCh0Y3ApOworCisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJcmV0dXJuIDA7CisKKwkJcGlkID0gdGNwLT51X3J2YWw7CisJCWlmIChmb3JrX3RjYih0Y3ApIHx8ICh0Y3BjaGlsZCA9IGFsbG9jdGNiKHBpZCkpID09IE5VTEwpIHsKKwkJCWtpbGwocGlkLCBTSUdLSUxMKTsgLyogWFhYICovCisJCQlyZXR1cm4gMDsKKwkJfQorI2lmZGVmIExJTlVYCisjaWZkZWYgSFBQQQorCQkvKiBUaGUgY2hpbGQgbXVzdCBoYXZlIHJ1biBiZWZvcmUgaXQgY2FuIGJlIGF0dGFjaGVkLiAqLworCQkvKiBUaGlzIG11c3QgYmUgYSBidWcgaW4gdGhlIHBhcmlzYyBrZXJuZWwsIGJ1dCBJIGhhdm4ndAorCQkgKiBpZGVudGlmaWVkIGl0IHlldC4gIFNlZW1zIHRvIGJlIGFuIGlzc3VlIGFzc29jaWF0ZWQKKwkJICogd2l0aCBhdHRhY2hpbmcgdG8gYSBwcm9jZXNzICh3aGljaCBzZW5kcyBpdCBhIHNpZ25hbCkKKwkJICogYmVmb3JlIHRoYXQgcHJvY2VzcyBoYXMgZXZlciBiZWVuIHNjaGVkdWxlZC4gIFdoZW4KKwkJICogZGVidWdnaW5nLCBJIHN0YXJ0ZWQgc2VlaW5nIGNyYXNoZXMgaW4KKwkJICogYXJjaC9wYXJpc2Mva2VybmVsL3NpZ25hbC5jOmRvX3NpZ25hbCgpLCBhcHBhcmVudGx5CisJCSAqIGNhdXNlZCBieSByOCBnZXR0aW5nIGNvcnJ1cHQgb3ZlciB0aGUgZGVxdWV1ZV9zaWduYWwoKQorCQkgKiBjYWxsLiAgRGlkbid0IG1ha2UgbXVjaCBzZW5zZSB0aG91Z2guLi4KKwkJICovCisJCXsKKwkJCXN0cnVjdCB0aW1ldmFsIHR2OworCQkJdHYudHZfc2VjID0gMDsKKwkJCXR2LnR2X3VzZWMgPSAxMDAwMDsKKwkJCXNlbGVjdCgwLCBOVUxMLCBOVUxMLCBOVUxMLCAmdHYpOworCQl9CisjZW5kaWYKKwkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCBwaWQsIChjaGFyICopIDEsIDApIDwgMCkgeworCQkJcGVycm9yKCJQVFJBQ0VfQVRUQUNIIik7CisJCQlmcHJpbnRmKHN0ZGVyciwgIlRvbyBsYXRlP1xuIik7CisJCQlkcm9wdGNiKHRjcGNoaWxkKTsKKwkJCXJldHVybiAwOworCQl9CisjZW5kaWYgLyogTElOVVggKi8KKyNpZmRlZiBTVU5PUzQKKyNpZmRlZiBvbGR3YXkKKwkJLyogVGhlIGNoaWxkIG11c3QgaGF2ZSBydW4gYmVmb3JlIGl0IGNhbiBiZSBhdHRhY2hlZC4gKi8KKwkJeworCQkJc3RydWN0IHRpbWV2YWwgdHY7CisJCQl0di50dl9zZWMgPSAwOworCQkJdHYudHZfdXNlYyA9IDEwMDAwOworCQkJc2VsZWN0KDAsIE5VTEwsIE5VTEwsIE5VTEwsICZ0dik7CisJCX0KKwkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCBwaWQsIChjaGFyICopMSwgMCkgPCAwKSB7CisJCQlwZXJyb3IoIlBUUkFDRV9BVFRBQ0giKTsKKwkJCWZwcmludGYoc3RkZXJyLCAiVG9vIGxhdGU/XG4iKTsKKwkJCWRyb3B0Y2IodGNwY2hpbGQpOworCQkJcmV0dXJuIDA7CisJCX0KKyNlbHNlIC8qICFvbGR3YXkgKi8KKwkJLyogVHJ5IHRvIGNhdGNoIHRoZSBuZXcgcHJvY2VzcyBhcyBzb29uIGFzIHBvc3NpYmxlLiAqLworCQl7CisJCQlpbnQgaTsKKwkJCWZvciAoaSA9IDA7IGkgPCAxMDI0OyBpKyspCisJCQkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCBwaWQsIChjaGFyICopIDEsIDApID49IDApCisJCQkJCWJyZWFrOworCQkJaWYgKGkgPT0gMTAyNCkgeworCQkJCXBlcnJvcigiUFRSQUNFX0FUVEFDSCIpOworCQkJCWZwcmludGYoc3RkZXJyLCAiVG9vIGxhdGU/XG4iKTsKKwkJCQlkcm9wdGNiKHRjcGNoaWxkKTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJfQorI2VuZGlmIC8qICFvbGR3YXkgKi8KKyNlbmRpZiAvKiBTVU5PUzQgKi8KKwkJdGNwY2hpbGQtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRDsKKwkJLyogQ2hpbGQgaGFzIEJQVCB0b28sIG11c3QgYmUgcmVtb3ZlZCBvbiBmaXJzdCBvY2Nhc2lvbiAqLworCQlpZiAoYnB0KSB7CisJCQl0Y3BjaGlsZC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKKwkJCXRjcGNoaWxkLT5iYWRkciA9IHRjcC0+YmFkZHI7CisJCQltZW1jcHkodGNwY2hpbGQtPmluc3QsIHRjcC0+aW5zdCwKKwkJCQlzaXplb2YgdGNwY2hpbGQtPmluc3QpOworCQl9CisJCW5ld291dGYodGNwY2hpbGQpOworCQl0Y3BjaGlsZC0+cGFyZW50ID0gdGNwOworCQl0Y3AtPm5jaGlsZHJlbisrOworCQlpZiAoIXFmbGFnKQorCQkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICVkIGF0dGFjaGVkXG4iLCBwaWQpOworCX0KKwlyZXR1cm4gMDsKKyNlbmRpZgorfQorCisjZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KKworI2lmIGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKEZSRUVCU0QpCisKK2ludAorc3lzX3Zmb3JrKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZXhpdGluZyh0Y3ApKQorCQlyZXR1cm4gUlZBTF9VREVDSU1BTDsKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIFNVTk9TNCB8fCBMSU5VWCB8fCBGUkVFQlNEICovCisKKyNpZm5kZWYgTElOVVgKKworc3RhdGljIGNoYXIgaWRzdHJbMTZdOworCitpbnQKK3N5c19nZXRwaWQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJc3ByaW50ZihpZHN0ciwgInBwaWQgJWx1IiwgZ2V0cnZhbDIodGNwKSk7CisJCXRjcC0+YXV4c3RyID0gaWRzdHI7CisJCXJldHVybiBSVkFMX1NUUjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2dldHVpZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlzcHJpbnRmKGlkc3RyLCAiZXVpZCAlbHUiLCBnZXRydmFsMih0Y3ApKTsKKwkJdGNwLT5hdXhzdHIgPSBpZHN0cjsKKwkJcmV0dXJuIFJWQUxfU1RSOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZ2V0Z2lkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCXNwcmludGYoaWRzdHIsICJlZ2lkICVsdSIsIGdldHJ2YWwyKHRjcCkpOworCQl0Y3AtPmF1eHN0ciA9IGlkc3RyOworCQlyZXR1cm4gUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogIUxJTlVYICovCisKKyNpZmRlZiBMSU5VWAorCitpbnQKK3N5c19zZXR1aWQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiV1IiwgKHVpZF90KSB0Y3AtPnVfYXJnWzBdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NldGdpZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJXUiLCAoZ2lkX3QpIHRjcC0+dV9hcmdbMF0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZ2V0cmVzdWlkKHRjcCkKKyAgICBzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlfX2tlcm5lbF91aWRfdCB1aWQ7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCwgJSNseCwgJSNseCIsIHRjcC0+dV9hcmdbMF0sCisJCQkJdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UgeworCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnVpZCkgPCAwKQorCQkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMF0pOworCQkJZWxzZQorCQkJCXRwcmludGYoIlslbHVdLCAiLCAodW5zaWduZWQgbG9uZykgdWlkKTsKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZ1aWQpIDwgMCkKKwkJCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCJbJWx1XSwgIiwgKHVuc2lnbmVkIGxvbmcpIHVpZCk7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmdWlkKSA8IDApCisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQkJZWxzZQorCQkJCXRwcmludGYoIlslbHVdIiwgKHVuc2lnbmVkIGxvbmcpIHVpZCk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2dldHJlc2dpZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlfX2tlcm5lbF9naWRfdCBnaWQ7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCwgJSNseCwgJSNseCIsIHRjcC0+dV9hcmdbMF0sCisJCQkJdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UgeworCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJmdpZCkgPCAwKQorCQkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMF0pOworCQkJZWxzZQorCQkJCXRwcmludGYoIlslbHVdLCAiLCAodW5zaWduZWQgbG9uZykgZ2lkKTsKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZnaWQpIDwgMCkKKwkJCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCJbJWx1XSwgIiwgKHVuc2lnbmVkIGxvbmcpIGdpZCk7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmZ2lkKSA8IDApCisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQkJZWxzZQorCQkJCXRwcmludGYoIlslbHVdIiwgKHVuc2lnbmVkIGxvbmcpIGdpZCk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBMSU5VWCAqLworCitpbnQKK3N5c19zZXRyZXVpZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR1aWQoIiIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NldHJlZ2lkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHVpZCgiIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoRlJFRUJTRCkKK2ludAorc3lzX3NldHJlc3VpZCh0Y3ApCisgICAgIHN0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHVpZCgiIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50dWlkKCIsICIsIHRjcC0+dV9hcmdbMV0pOworCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CitpbnQKK3N5c19zZXRyZXNnaWQodGNwKQorICAgICBzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR1aWQoIiIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHVpZCgiLCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJcHJpbnR1aWQoIiwgIiwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogTElOVVggfHwgRlJFRUJTRCAqLworCitpbnQKK3N5c19zZXRncm91cHModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXVuc2lnbmVkIGxvbmcgbGVuLCBzaXplLCBzdGFydCwgY3VyLCBlbmQsIGFiYnJldl9lbmQ7CisJCUdFVEdST1VQU19UIGdpZDsKKwkJaW50IGZhaWxlZCA9IDA7CisKKwkJbGVuID0gdGNwLT51X2FyZ1swXTsKKwkJdHByaW50ZigiJWx1LCAiLCBsZW4pOworCQlpZiAobGVuID09IDApIHsKKwkJCXRwcmludGYoIltdIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlzdGFydCA9IHRjcC0+dV9hcmdbMV07CisJCWlmIChzdGFydCA9PSAwKSB7CisJCQl0cHJpbnRmKCJOVUxMIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlzaXplID0gbGVuICogc2l6ZW9mKGdpZCk7CisJCWVuZCA9IHN0YXJ0ICsgc2l6ZTsKKwkJaWYgKCF2ZXJib3NlKHRjcCkgfHwgc2l6ZSAvIHNpemVvZihnaWQpICE9IGxlbiB8fCBlbmQgPCBzdGFydCkgeworCQkJdHByaW50ZigiJSNseCIsIHN0YXJ0KTsKKwkJCXJldHVybiAwOworCQl9CisJCWlmIChhYmJyZXYodGNwKSkgeworCQkJYWJicmV2X2VuZCA9IHN0YXJ0ICsgbWF4X3N0cmxlbiAqIHNpemVvZihnaWQpOworCQkJaWYgKGFiYnJldl9lbmQgPCBzdGFydCkKKwkJCQlhYmJyZXZfZW5kID0gZW5kOworCQl9IGVsc2UgeworCQkJYWJicmV2X2VuZCA9IGVuZDsKKwkJfQorCQl0cHJpbnRmKCJbIik7CisJCWZvciAoY3VyID0gc3RhcnQ7IGN1ciA8IGVuZDsgY3VyICs9IHNpemVvZihnaWQpKSB7CisJCQlpZiAoY3VyID4gc3RhcnQpCisJCQkJdHByaW50ZigiLCAiKTsKKwkJCWlmIChjdXIgPj0gYWJicmV2X2VuZCkgeworCQkJCXRwcmludGYoIi4uLiIpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mKGdpZCksIChjaGFyICopICZnaWQpIDwgMCkgeworCQkJCXRwcmludGYoIj8iKTsKKwkJCQlmYWlsZWQgPSAxOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50ZigiJWx1IiwgKHVuc2lnbmVkIGxvbmcpIGdpZCk7CisJCX0KKwkJdHByaW50ZigiXSIpOworCQlpZiAoZmFpbGVkKQorCQkJdHByaW50ZigiICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2dldGdyb3Vwcyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJdW5zaWduZWQgbG9uZyBsZW47CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlsZW4gPSB0Y3AtPnVfYXJnWzBdOworCQl0cHJpbnRmKCIlbHUsICIsIGxlbik7CisJfSBlbHNlIHsKKwkJdW5zaWduZWQgbG9uZyBzaXplLCBzdGFydCwgY3VyLCBlbmQsIGFiYnJldl9lbmQ7CisJCUdFVEdST1VQU19UIGdpZDsKKwkJaW50IGZhaWxlZCA9IDA7CisKKwkJbGVuID0gdGNwLT51X3J2YWw7CisJCWlmIChsZW4gPT0gMCkgeworCQkJdHByaW50ZigiW10iKTsKKwkJCXJldHVybiAwOworCQl9CisJCXN0YXJ0ID0gdGNwLT51X2FyZ1sxXTsKKwkJaWYgKHN0YXJ0ID09IDApIHsKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJCXJldHVybiAwOworCQl9CisJCWlmICh0Y3AtPnVfYXJnWzBdID09IDApIHsKKwkJCXRwcmludGYoIiUjbHgiLCBzdGFydCk7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlzaXplID0gbGVuICogc2l6ZW9mKGdpZCk7CisJCWVuZCA9IHN0YXJ0ICsgc2l6ZTsKKwkJaWYgKCF2ZXJib3NlKHRjcCkgfHwgdGNwLT51X2FyZ1swXSA9PSAwIHx8CisJCSAgICBzaXplIC8gc2l6ZW9mKGdpZCkgIT0gbGVuIHx8IGVuZCA8IHN0YXJ0KSB7CisJCQl0cHJpbnRmKCIlI2x4Iiwgc3RhcnQpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJaWYgKGFiYnJldih0Y3ApKSB7CisJCQlhYmJyZXZfZW5kID0gc3RhcnQgKyBtYXhfc3RybGVuICogc2l6ZW9mKGdpZCk7CisJCQlpZiAoYWJicmV2X2VuZCA8IHN0YXJ0KQorCQkJCWFiYnJldl9lbmQgPSBlbmQ7CisJCX0gZWxzZSB7CisJCQlhYmJyZXZfZW5kID0gZW5kOworCQl9CisJCXRwcmludGYoIlsiKTsKKwkJZm9yIChjdXIgPSBzdGFydDsgY3VyIDwgZW5kOyBjdXIgKz0gc2l6ZW9mKGdpZCkpIHsKKwkJCWlmIChjdXIgPiBzdGFydCkKKwkJCQl0cHJpbnRmKCIsICIpOworCQkJaWYgKGN1ciA+PSBhYmJyZXZfZW5kKSB7CisJCQkJdHByaW50ZigiLi4uIik7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmVuKHRjcCwgY3VyLCBzaXplb2YoZ2lkKSwgKGNoYXIgKikgJmdpZCkgPCAwKSB7CisJCQkJdHByaW50ZigiPyIpOworCQkJCWZhaWxlZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCIlbHUiLCAodW5zaWduZWQgbG9uZykgZ2lkKTsKKwkJfQorCQl0cHJpbnRmKCJdIik7CisJCWlmIChmYWlsZWQpCisJCQl0cHJpbnRmKCIgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19zZXRncm91cHMzMih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdW5zaWduZWQgbG9uZyBsZW4sIHNpemUsIHN0YXJ0LCBjdXIsIGVuZCwgYWJicmV2X2VuZDsKKwkJR0VUR1JPVVBTMzJfVCBnaWQ7CisJCWludCBmYWlsZWQgPSAwOworCisJCWxlbiA9IHRjcC0+dV9hcmdbMF07CisJCXRwcmludGYoIiVsdSwgIiwgbGVuKTsKKwkJaWYgKGxlbiA9PSAwKSB7CisJCQl0cHJpbnRmKCJbXSIpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJc3RhcnQgPSB0Y3AtPnVfYXJnWzFdOworCQlpZiAoc3RhcnQgPT0gMCkgeworCQkJdHByaW50ZigiTlVMTCIpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJc2l6ZSA9IGxlbiAqIHNpemVvZihnaWQpOworCQllbmQgPSBzdGFydCArIHNpemU7CisJCWlmICghdmVyYm9zZSh0Y3ApIHx8IHNpemUgLyBzaXplb2YoZ2lkKSAhPSBsZW4gfHwgZW5kIDwgc3RhcnQpIHsKKwkJCXRwcmludGYoIiUjbHgiLCBzdGFydCk7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlpZiAoYWJicmV2KHRjcCkpIHsKKwkJCWFiYnJldl9lbmQgPSBzdGFydCArIG1heF9zdHJsZW4gKiBzaXplb2YoZ2lkKTsKKwkJCWlmIChhYmJyZXZfZW5kIDwgc3RhcnQpCisJCQkJYWJicmV2X2VuZCA9IGVuZDsKKwkJfSBlbHNlIHsKKwkJCWFiYnJldl9lbmQgPSBlbmQ7CisJCX0KKwkJdHByaW50ZigiWyIpOworCQlmb3IgKGN1ciA9IHN0YXJ0OyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YoZ2lkKSkgeworCQkJaWYgKGN1ciA+IHN0YXJ0KQorCQkJCXRwcmludGYoIiwgIik7CisJCQlpZiAoY3VyID49IGFiYnJldl9lbmQpIHsKKwkJCQl0cHJpbnRmKCIuLi4iKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZW4odGNwLCBjdXIsIHNpemVvZihnaWQpLCAoY2hhciAqKSAmZ2lkKSA8IDApIHsKKwkJCQl0cHJpbnRmKCI/Iik7CisJCQkJZmFpbGVkID0gMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIiVsdSIsICh1bnNpZ25lZCBsb25nKSBnaWQpOworCQl9CisJCXRwcmludGYoIl0iKTsKKwkJaWYgKGZhaWxlZCkKKwkJCXRwcmludGYoIiAlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19nZXRncm91cHMzMih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJdW5zaWduZWQgbG9uZyBsZW47CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlsZW4gPSB0Y3AtPnVfYXJnWzBdOworCQl0cHJpbnRmKCIlbHUsICIsIGxlbik7CisJfSBlbHNlIHsKKwkJdW5zaWduZWQgbG9uZyBzaXplLCBzdGFydCwgY3VyLCBlbmQsIGFiYnJldl9lbmQ7CisJCUdFVEdST1VQUzMyX1QgZ2lkOworCQlpbnQgZmFpbGVkID0gMDsKKworCQlsZW4gPSB0Y3AtPnVfcnZhbDsKKwkJaWYgKGxlbiA9PSAwKSB7CisJCQl0cHJpbnRmKCJbXSIpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJc3RhcnQgPSB0Y3AtPnVfYXJnWzFdOworCQlpZiAoc3RhcnQgPT0gMCkgeworCQkJdHByaW50ZigiTlVMTCIpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJc2l6ZSA9IGxlbiAqIHNpemVvZihnaWQpOworCQllbmQgPSBzdGFydCArIHNpemU7CisJCWlmICghdmVyYm9zZSh0Y3ApIHx8IHRjcC0+dV9hcmdbMF0gPT0gMCB8fAorCQkgICAgc2l6ZSAvIHNpemVvZihnaWQpICE9IGxlbiB8fCBlbmQgPCBzdGFydCkgeworCQkJdHByaW50ZigiJSNseCIsIHN0YXJ0KTsKKwkJCXJldHVybiAwOworCQl9CisJCWlmIChhYmJyZXYodGNwKSkgeworCQkJYWJicmV2X2VuZCA9IHN0YXJ0ICsgbWF4X3N0cmxlbiAqIHNpemVvZihnaWQpOworCQkJaWYgKGFiYnJldl9lbmQgPCBzdGFydCkKKwkJCQlhYmJyZXZfZW5kID0gZW5kOworCQl9IGVsc2UgeworCQkJYWJicmV2X2VuZCA9IGVuZDsKKwkJfQorCQl0cHJpbnRmKCJbIik7CisJCWZvciAoY3VyID0gc3RhcnQ7IGN1ciA8IGVuZDsgY3VyICs9IHNpemVvZihnaWQpKSB7CisJCQlpZiAoY3VyID4gc3RhcnQpCisJCQkJdHByaW50ZigiLCAiKTsKKwkJCWlmIChjdXIgPj0gYWJicmV2X2VuZCkgeworCQkJCXRwcmludGYoIi4uLiIpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mKGdpZCksIChjaGFyICopICZnaWQpIDwgMCkgeworCQkJCXRwcmludGYoIj8iKTsKKwkJCQlmYWlsZWQgPSAxOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50ZigiJWx1IiwgKHVuc2lnbmVkIGxvbmcpIGdpZCk7CisJCX0KKwkJdHByaW50ZigiXSIpOworCQlpZiAoZmFpbGVkKQorCQkJdHByaW50ZigiICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogTElOVVggKi8KKworaW50CitzeXNfc2V0cGdycCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKyNpZm5kZWYgU1ZSNAorCQl0cHJpbnRmKCIlbHUsICVsdSIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworI2VuZGlmIC8qICFTVlI0ICovCisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19nZXRwZ3JwKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworI2lmbmRlZiBTVlI0CisJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOworI2VuZGlmIC8qICFTVlI0ICovCisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19nZXRzaWQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbMF0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2V0c2lkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZ2V0cGdpZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWx1IiwgdGNwLT51X2FyZ1swXSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19zZXRwZ2lkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUsICVsdSIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmIFVOSVhXQVJFID49IDIKKworI2luY2x1ZGUgPHN5cy9wcml2aWxlZ2UuaD4KKworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvY3ByaXZfY21kcyBbXSA9IHsKKwl7IFNFVFBSViwJIlNFVFBSViIJfSwKKwl7IENMUlBSViwJIkNMUlBSViIJfSwKKwl7IFBVVFBSViwJIlBVVFBSViIJfSwKKwl7IEdFVFBSViwJIkdFVFBSViIJfSwKKwl7IENOVFBSViwJIkNOVFBSViIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvY3ByaXZfcHJpdiBbXSA9IHsKKwl7IFBfT1dORVIsCSJQX09XTkVSIgl9LAorCXsgUF9BVURJVCwJIlBfQVVESVQiCX0sCisJeyBQX0NPTVBBVCwJIlBfQ09NUEFUIgl9LAorCXsgUF9EQUNSRUFELAkiUF9EQUNSRUFEIgl9LAorCXsgUF9EQUNXUklURSwJIlBfREFDV1JJVEUiCX0sCisJeyBQX0RFViwJIlBfREVWIgkJfSwKKwl7IFBfRklMRVNZUywJIlBfRklMRVNZUyIJfSwKKwl7IFBfTUFDUkVBRCwJIlBfTUFDUkVBRCIJfSwKKwl7IFBfTUFDV1JJVEUsCSJQX01BQ1dSSVRFIgl9LAorCXsgUF9NT1VOVCwJIlBfTU9VTlQiCX0sCisJeyBQX01VTFRJRElSLAkiUF9NVUxUSURJUiIJfSwKKwl7IFBfU0VUUExFVkVMLAkiUF9TRVRQTEVWRUwiCX0sCisJeyBQX1NFVFNQUklWLAkiUF9TRVRTUFJJViIJfSwKKwl7IFBfU0VUVUlELAkiUF9TRVRVSUQiCX0sCisJeyBQX1NZU09QUywJIlBfU1lTT1BTIgl9LAorCXsgUF9TRVRVUFJJViwJIlBfU0VUVVBSSVYiCX0sCisJeyBQX0RSSVZFUiwJIlBfRFJJVkVSIgl9LAorCXsgUF9SVElNRSwJIlBfUlRJTUUiCX0sCisJeyBQX01BQ1VQR1JBREUsCSJQX01BQ1VQR1JBREUiCX0sCisJeyBQX0ZTWVNSQU5HRSwJIlBfRlNZU1JBTkdFIgl9LAorCXsgUF9TRVRGTEVWRUwsCSJQX1NFVEZMRVZFTCIJfSwKKwl7IFBfQVVESVRXUiwJIlBfQVVESVRXUiIJfSwKKwl7IFBfVFNIQVIsCSJQX1RTSEFSIgl9LAorCXsgUF9QTE9DSywJIlBfUExPQ0siCX0sCisJeyBQX0NPUkUsCSJQX0NPUkUiCX0sCisJeyBQX0xPQURNT0QsCSJQX0xPQURNT0QiCX0sCisJeyBQX0JJTkQsCSJQX0JJTkQiCX0sCisJeyBQX0FMTFBSSVZTLAkiUF9BTExQUklWUyIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJvY3ByaXZfdHlwZSBbXSA9IHsKKwl7IFBTX0ZJWCwJIlBTX0ZJWCIJfSwKKwl7IFBTX0lOSCwJIlBTX0lOSCIJfSwKKwl7IFBTX01BWCwJIlBTX01BWCIJfSwKKwl7IFBTX1dLRywJIlBTX1dLRyIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworCitzdGF0aWMgdm9pZAorcHJpbnRwcml2KHRjcCwgYWRkciwgbGVuLCBvcHQpCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7CitpbnQgbGVuOworY29uc3Qgc3RydWN0IHhsYXQgKm9wdDsKK3sKKwlwcml2X3QgYnVmIFsxMjhdOworCWludCBtYXggPSB2ZXJib3NlICh0Y3ApID8gc2l6ZW9mIGJ1ZiAvIHNpemVvZiBidWYgWzBdIDogMTA7CisJaW50IGRvdHMgPSBsZW4gPiBtYXg7CisJaW50IGk7CisKKwlpZiAobGVuID4gbWF4KSBsZW4gPSBtYXg7CisKKwlpZiAobGVuIDw9IDAgfHwKKwkgICAgdW1vdmVuICh0Y3AsIGFkZHIsIGxlbiAqIHNpemVvZiBidWZbMF0sIChjaGFyICopIGJ1ZikgPCAwKQorCXsKKwkJdHByaW50ZiAoIiUjbHgiLCBhZGRyKTsKKwkJcmV0dXJuOworCX0KKworCXRwcmludGYgKCJbIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKwkJY2hhciAqdCwgKnA7CisKKwkJaWYgKGkpIHRwcmludGYgKCIsICIpOworCisJCWlmICgodCA9IHhsb29rdXAgKHByb2Nwcml2X3R5cGUsIGJ1ZiBbaV0gJiBQU19UWVBFKSkgJiYKKwkJICAgIChwID0geGxvb2t1cCAocHJvY3ByaXZfcHJpdiwgYnVmIFtpXSAmIH5QU19UWVBFKSkpCisJCXsKKwkJCXRwcmludGYgKCIlc3wlcyIsIHQsIHApOworCQl9CisJCWVsc2UgeworCQkJdHByaW50ZiAoIiUjbHgiLCBidWYgW2ldKTsKKwkJfQorCX0KKworCWlmIChkb3RzKSB0cHJpbnRmICgiIC4uLiIpOworCisJdHByaW50ZiAoIl0iKTsKK30KKworCitpbnQKK3N5c19wcm9jcHJpdih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHByb2Nwcml2X2NtZHMsIHRjcC0+dV9hcmdbMF0sICI/Pz9QUlYiKTsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzBdKSB7CisJCSAgICBjYXNlIENOVFBSVjoKKwkJCXRwcmludGYoIiwgJSNseCwgJWxkIiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCQlicmVhazsKKworCQkgICAgY2FzZSBHRVRQUlY6CisJCQlicmVhazsKKworCQkgICAgZGVmYXVsdDoKKwkJCXRwcmludGYgKCIsICIpOworCQkJcHJpbnRwcml2ICh0Y3AsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQkJdHByaW50ZiAoIiwgJWxkIiwgdGNwLT51X2FyZ1syXSk7CisJCX0KKwl9CisJZWxzZSBpZiAodGNwLT51X2FyZ1swXSA9PSBHRVRQUlYpIHsKKwkJaWYgKHN5c2Vycm9yICh0Y3ApKSB7CisJCQl0cHJpbnRmKCIsICUjbHgsICVsZCIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCQl9CisJCWVsc2UgeworCQkJdHByaW50ZiAoIiwgIik7CisJCQlwcmludHByaXYgKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X3J2YWwpOworCQkJdHByaW50ZiAoIiwgJWxkIiwgdGNwLT51X2FyZ1syXSk7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmCisKKworc3RhdGljIHZvaWQKK3ByaW50YXJndih0Y3AsIGFkZHIpCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7Cit7CisJdW5pb24geworCQlpbnQgcDMyOworCQlsb25nIHA2NDsKKwkJY2hhciBkYXRhW3NpemVvZihsb25nKV07CisJfSBjcDsKKwljaGFyICpzZXA7CisJaW50IG4gPSAwOworCisJY3AucDY0ID0gMTsKKwlmb3IgKHNlcCA9ICIiOyAhYWJicmV2KHRjcCkgfHwgbiA8IG1heF9zdHJsZW4gLyAyOyBzZXAgPSAiLCAiLCArK24pIHsKKwkJaWYgKHVtb3Zlbih0Y3AsIGFkZHIsIHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldLAorCQkJICAgY3AuZGF0YSkgPCAwKSB7CisJCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCQlyZXR1cm47CisJCX0KKwkJaWYgKHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldID09IDQpCisJCQljcC5wNjQgPSBjcC5wMzI7CisJCWlmIChjcC5wNjQgPT0gMCkKKwkJCWJyZWFrOworCQl0cHJpbnRmKCIlcyIsIHNlcCk7CisJCXByaW50c3RyKHRjcCwgY3AucDY0LCAtMSk7CisJCWFkZHIgKz0gcGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV07CisJfQorCWlmIChjcC5wNjQpCisJCXRwcmludGYoIiVzLi4uIiwgc2VwKTsKK30KKworc3RhdGljIHZvaWQKK3ByaW50YXJnYyhmbXQsIHRjcCwgYWRkcikKK2NoYXIgKmZtdDsKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgYWRkcjsKK3sKKwlpbnQgY291bnQ7CisJY2hhciAqY3A7CisKKwlmb3IgKGNvdW50ID0gMDsgdW1vdmUodGNwLCBhZGRyLCAmY3ApID49IDAgJiYgY3AgIT0gTlVMTDsgY291bnQrKykgeworCQlhZGRyICs9IHNpemVvZihjaGFyICopOworCX0KKwl0cHJpbnRmKGZtdCwgY291bnQsIGNvdW50ID09IDEgPyAiIiA6ICJzIik7Cit9CisKK2ludAorc3lzX2V4ZWN2KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJaWYgKCF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKyNpZiAwCisJCWVsc2UgaWYgKGFiYnJldih0Y3ApKQorCQkJcHJpbnRhcmdjKCIsIFsvKiAlZCBhcmclcyAqL10iLCB0Y3AsIHRjcC0+dV9hcmdbMV0pOworI2VuZGlmCisJCWVsc2UgeworCQkJdHByaW50ZigiLCBbIik7CisJCQlwcmludGFyZ3YodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXRwcmludGYoIl0iKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZXhlY3ZlKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJaWYgKCF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKyNpZiAwCisJCWVsc2UgaWYgKGFiYnJldih0Y3ApKQorCQkJcHJpbnRhcmdjKCIsIFsvKiAlZCBhcmclcyAqL10iLCB0Y3AsIHRjcC0+dV9hcmdbMV0pOworI2VuZGlmCisJCWVsc2UgeworCQkJdHByaW50ZigiLCBbIik7CisJCQlwcmludGFyZ3YodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXRwcmludGYoIl0iKTsKKwkJfQorCQlpZiAoIXZlcmJvc2UodGNwKSkKKwkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlIGlmIChhYmJyZXYodGNwKSkKKwkJCXByaW50YXJnYygiLCBbLyogJWQgdmFyJXMgKi9dIiwgdGNwLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCIsIFsiKTsKKwkJCXByaW50YXJndih0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQkJdHByaW50ZigiXSIpOworCQl9CisJfQorCXJldHVybiAwOworfQorCisjaWYgVU5JWFdBUkUgPiAyCisKK2ludCBzeXNfcmV4ZWN2ZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nICh0Y3ApKSB7CisJCXN5c19leGVjdmUgKHRjcCk7CisJCXRwcmludGYgKCIsICVsZCIsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmCisKK2ludAoraW50ZXJuYWxfZXhlYyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisjaWZkZWYgU1VOT1M0CisJaWYgKGV4aXRpbmcodGNwKSAmJiAhc3lzZXJyb3IodGNwKSAmJiBmb2xsb3dmb3JrKQorCQlmaXh2Zm9yayh0Y3ApOworI2VuZGlmIC8qIFNVTk9TNCAqLworI2lmIGRlZmluZWQgTElOVVggJiYgZGVmaW5lZCBUQ0JfV0FJVEVYRUNWRQorCWlmIChleGl0aW5nKHRjcCkgJiYgc3lzZXJyb3IodGNwKSkKKwkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7CisJZWxzZQorCQl0Y3AtPmZsYWdzIHw9IFRDQl9XQUlURVhFQ1ZFOworI2VuZGlmIC8qIExJTlVYICYmIFRDQl9XQUlURVhFQ1ZFICovCisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBMSU5VWAorI2lmbmRlZiBfX1dOT1RIUkVBRAorI2RlZmluZSBfX1dOT1RIUkVBRAkweDIwMDAwMDAwCisjZW5kaWYKKyNpZm5kZWYgX19XQUxMCisjZGVmaW5lIF9fV0FMTAkJMHg0MDAwMDAwMAorI2VuZGlmCisjaWZuZGVmIF9fV0NMT05FCisjZGVmaW5lIF9fV0NMT05FCTB4ODAwMDAwMDAKKyNlbmRpZgorI2VuZGlmIC8qIExJTlVYICovCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB3YWl0NF9vcHRpb25zW10gPSB7CisJeyBXTk9IQU5HLAkiV05PSEFORyIJfSwKKyNpZm5kZWYgV1NUT1BQRUQKKwl7IFdVTlRSQUNFRCwJIldVTlRSQUNFRCIJfSwKKyNlbmRpZgorI2lmZGVmIFdFWElURUQKKwl7IFdFWElURUQsCSJXRVhJVEVEIgl9LAorI2VuZGlmCisjaWZkZWYgV1RSQVBQRUQKKwl7IFdUUkFQUEVELAkiV1RSQVBQRUQiCX0sCisjZW5kaWYKKyNpZmRlZiBXU1RPUFBFRAorCXsgV1NUT1BQRUQsCSJXU1RPUFBFRCIJfSwKKyNlbmRpZgorI2lmZGVmIFdDT05USU5VRUQKKwl7IFdDT05USU5VRUQsCSJXQ09OVElOVUVEIgl9LAorI2VuZGlmCisjaWZkZWYgV05PV0FJVAorCXsgV05PV0FJVCwJIldOT1dBSVQiCX0sCisjZW5kaWYKKyNpZmRlZiBfX1dDTE9ORQorCXsgX19XQ0xPTkUsCSJfX1dDTE9ORSIJfSwKKyNlbmRpZgorI2lmZGVmIF9fV0FMTAorCXsgX19XQUxMLAkiX19XQUxMIgl9LAorI2VuZGlmCisjaWZkZWYgX19XTk9USFJFQUQKKwl7IF9fV05PVEhSRUFELAkiX19XTk9USFJFQUQiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworI2lmICFkZWZpbmVkIFdDT1JFRkxBRyAmJiBkZWZpbmVkIFdDT1JFRkxHCisjIGRlZmluZSBXQ09SRUZMQUcgV0NPUkVGTEcKKyNlbmRpZgorI2lmbmRlZiBXQ09SRUZMQUcKKyNkZWZpbmUgV0NPUkVGTEFHIDB4ODAKKyNlbmRpZgorCisjaWZuZGVmIFdfU1RPUENPREUKKyNkZWZpbmUgV19TVE9QQ09ERShzaWcpCQkoKHNpZykgPDwgOCB8IDB4N2YpCisjZW5kaWYKKyNpZm5kZWYgV19FWElUQ09ERQorI2RlZmluZSBXX0VYSVRDT0RFKHJldCwgc2lnKQkoKHJldCkgPDwgOCB8IChzaWcpKQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK3ByaW50c3RhdHVzKHN0YXR1cykKK2ludCBzdGF0dXM7Cit7CisJaW50IGV4aXRlZCA9IDA7CisKKwkvKgorCSAqIEhlcmUgaXMgYSB0cmlja3kgcHJlc2VudGF0aW9uIHByb2JsZW0uICBUaGlzIHNvbHV0aW9uCisJICogaXMgc3RpbGwgbm90IGVudGlyZWx5IHNhdGlzZmFjdG9yeSBidXQgc2luY2UgdGhlcmUKKwkgKiBhcmUgbm8gd2FpdCBzdGF0dXMgY29uc3RydWN0b3JzIGl0IHdpbGwgaGF2ZSB0byBkby4KKwkgKi8KKwlpZiAoV0lGU1RPUFBFRChzdGF0dXMpKSB7CisJCXRwcmludGYoIlt7V0lGU1RPUFBFRChzKSAmJiBXU1RPUFNJRyhzKSA9PSAlc30iLAorCQkJc2lnbmFtZShXU1RPUFNJRyhzdGF0dXMpKSk7CisJCXN0YXR1cyAmPSB+V19TVE9QQ09ERShXU1RPUFNJRyhzdGF0dXMpKTsKKwl9CisJZWxzZSBpZiAoV0lGU0lHTkFMRUQoc3RhdHVzKSkgeworCQl0cHJpbnRmKCJbe1dJRlNJR05BTEVEKHMpICYmIFdURVJNU0lHKHMpID09ICVzJXN9IiwKKwkJCXNpZ25hbWUoV1RFUk1TSUcoc3RhdHVzKSksCisJCQlXQ09SRURVTVAoc3RhdHVzKSA/ICIgJiYgV0NPUkVEVU1QKHMpIiA6ICIiKTsKKwkJc3RhdHVzICY9IH4oV19FWElUQ09ERSgwLCBXVEVSTVNJRyhzdGF0dXMpKSB8IFdDT1JFRkxBRyk7CisJfQorCWVsc2UgaWYgKFdJRkVYSVRFRChzdGF0dXMpKSB7CisJCXRwcmludGYoIlt7V0lGRVhJVEVEKHMpICYmIFdFWElUU1RBVFVTKHMpID09ICVkfSIsCisJCQlXRVhJVFNUQVRVUyhzdGF0dXMpKTsKKwkJZXhpdGVkID0gMTsKKwkJc3RhdHVzICY9IH5XX0VYSVRDT0RFKFdFWElUU1RBVFVTKHN0YXR1cyksIDApOworCX0KKwllbHNlIHsKKwkJdHByaW50ZigiWyUjeF0iLCBzdGF0dXMpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoc3RhdHVzID09IDApCisJCXRwcmludGYoIl0iKTsKKwllbHNlCisJCXRwcmludGYoIiB8ICUjeF0iLCBzdGF0dXMpOworCisJcmV0dXJuIGV4aXRlZDsKK30KKworc3RhdGljIGludAorcHJpbnR3YWl0bih0Y3AsIG4sIGJpdG5lc3MpCitzdHJ1Y3QgdGNiICp0Y3A7CitpbnQgbjsKK2ludCBiaXRuZXNzOworeworCWludCBzdGF0dXM7CisJaW50IGV4aXRlZCA9IDA7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCX0gZWxzZSB7CisJCS8qIHN0YXR1cyAqLworCQlpZiAoIXRjcC0+dV9hcmdbMV0pCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkgfHwgdGNwLT51X3J2YWwgPT0gMCkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmc3RhdHVzKSA8IDApCisJCQl0cHJpbnRmKCJbP10iKTsKKwkJZWxzZQorCQkJZXhpdGVkID0gcHJpbnRzdGF0dXMoc3RhdHVzKTsKKwkJLyogb3B0aW9ucyAqLworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZsYWdzKHdhaXQ0X29wdGlvbnMsIHRjcC0+dV9hcmdbMl0sICJXPz8/Iik7CisJCWlmIChuID09IDQpIHsKKwkJCXRwcmludGYoIiwgIik7CisJCQkvKiB1c2FnZSAqLworCQkJaWYgKCF0Y3AtPnVfYXJnWzNdKQorCQkJCXRwcmludGYoIk5VTEwiKTsKKyNpZmRlZiBMSU5VWAorCQkJZWxzZSBpZiAodGNwLT51X3J2YWwgPiAwKSB7CisjaWZkZWYgTElOVVhfNjRCSVQKKwkJCQlpZiAoYml0bmVzcykKKwkJCQkJcHJpbnRydXNhZ2UzMih0Y3AsIHRjcC0+dV9hcmdbM10pOworCQkJCWVsc2UKKyNlbmRpZgorCQkJCQlwcmludHJ1c2FnZSh0Y3AsIHRjcC0+dV9hcmdbM10pOworCQkJfQorI2VuZGlmIC8qIExJTlVYICovCisjaWZkZWYgU1VOT1M0CisJCQllbHNlIGlmICh0Y3AtPnVfcnZhbCA+IDAgJiYgZXhpdGVkKQorCQkJCXByaW50cnVzYWdlKHRjcCwgdGNwLT51X2FyZ1szXSk7CisjZW5kaWYgLyogU1VOT1M0ICovCisJCQllbHNlCisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbM10pOworCQl9CisJfQorCXJldHVybiAwOworfQorCitpbnQKK2ludGVybmFsX3dhaXQodGNwLCBmbGFnYXJnKQorc3RydWN0IHRjYiAqdGNwOworaW50IGZsYWdhcmc7Cit7CisJaW50IGdvdF9raWRzOworCisjaWZkZWYgVENCX0NMT05FX1RIUkVBRAorCWlmICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKKwkJLyogVGhlIGNoaWxkcmVuIHdlIHdhaXQgZm9yIGFyZSBvdXIgcGFyZW50J3MgY2hpbGRyZW4uICAqLworCQlnb3Rfa2lkcyA9ICh0Y3AtPnBhcmVudC0+bmNoaWxkcmVuCisJCQkgICAgPiB0Y3AtPnBhcmVudC0+bmNsb25lX2RldGFjaGVkKTsKKwllbHNlCisJCWdvdF9raWRzID0gKHRjcC0+bmNoaWxkcmVuID4gdGNwLT5uY2xvbmVfZGV0YWNoZWQpOworI2Vsc2UKKwlnb3Rfa2lkcyA9IHRjcC0+bmNoaWxkcmVuID4gMDsKKyNlbmRpZgorCisJaWYgKGVudGVyaW5nKHRjcCkgJiYgZ290X2tpZHMpIHsKKwkJLyogVGhlcmUgYXJlIGNoaWxkcmVuIHRoYXQgdGhpcyBwYXJlbnQgc2hvdWxkIGJsb2NrIGZvci4KKwkJICAgQnV0IHB0cmFjZSBtYWRlIHVzIHRoZSBwYXJlbnQgb2YgdGhlIHRyYWNlZCBjaGlsZHJlbgorCQkgICBhbmQgdGhlIHJlYWwgcGFyZW50IHdpbGwgZ2V0IEVDSElMRCBmcm9tIHRoZSB3YWl0IGNhbGwuCisKKwkJICAgWFhYIElmIHdlIGF0dGFjaGVkIHdpdGggc3RyYWNlIC1mIC1wIFBJRCwgdGhlbiB0aGVyZQorCQkgICBtYXkgYmUgdW50cmFjZWQgZGVhZCBjaGlsZHJlbiB0aGUgcGFyZW50IGNvdWxkIGJlIHJlYXBpbmcKKwkJICAgbm93LCBidXQgd2UgbWFrZSBoaW0gYmxvY2suICAqLworCisJCS8qID8/PyBXVEE6IGZpeCBidWcgd2l0aCBoYW5naW5nIGNoaWxkcmVuICovCisKKwkJaWYgKCEodGNwLT51X2FyZ1tmbGFnYXJnXSAmIFdOT0hBTkcpKSB7CisJCQkvKgorCQkJICogVGhlcmUgYXJlIHRyYWNlZCBjaGlsZHJlbi4gIFdlJ2xsIG1ha2UgdGhlIHBhcmVudAorCQkJICogYmxvY2sgdG8gYXZvaWQgYSBmYWxzZSBFQ0hJTEQgZXJyb3IgZHVlIHRvIG91cgorCQkJICogcHRyYWNlIGhhdmluZyBzdG9sZW4gdGhlIGNoaWxkcmVuLiAgSG93ZXZlciwKKwkJCSAqIHdlIHNob3VsZG4ndCBibG9jayBpZiB0aGVyZSBhcmUgem9tYmllcyB0byByZWFwLgorCQkJICogWFhYIGRvZXNuJ3QgaGFuZGxlIHBncnAgbWF0Y2hlcyAodV9hcmdbMF09PTAsPC0xKQorCQkJICovCisJCQlzdHJ1Y3QgdGNiICpjaGlsZCA9IE5VTEw7CisJCQlpZiAodGNwLT5uem9tYmllcyA+IDAgJiYKKwkJCSAgICAodGNwLT51X2FyZ1swXSA9PSAtMSB8fAorCQkJICAgICAoY2hpbGQgPSBwaWQydGNiKHRjcC0+dV9hcmdbMF0pKSA9PSBOVUxMKSkKKwkJCQlyZXR1cm4gMDsKKwkJCWlmICh0Y3AtPnVfYXJnWzBdID4gMCkgeworCQkJCS8qCisJCQkJICogSWYgdGhlIHBhcmVudCB3YWl0cyBmb3IgYSBzcGVjaWZpZWQgY2hpbGQKKwkJCQkgKiBQSUQsIHRoZW4gaXQgbXVzdCBnZXQgRUNISUxEIHJpZ2h0IGF3YXkKKwkJCQkgKiBpZiB0aGF0IFBJRCBpcyBub3Qgb25lIG9mIGl0cyBjaGlsZHJlbi4KKwkJCQkgKiBNYWtlIHN1cmUgdGhhdCB0aGUgcmVxdWVzdGVkIFBJRCBtYXRjaGVzCisJCQkJICogb25lIG9mIHRoZSBwYXJlbnQncyBjaGlsZHJlbiB0aGF0IHdlIGFyZQorCQkJCSAqIHRyYWNpbmcsIGFuZCBkb24ndCBzdXNwZW5kIGl0IG90aGVyd2lzZS4KKwkJCQkgKi8KKwkJCQlpZiAoY2hpbGQgPT0gTlVMTCkKKwkJCQkJY2hpbGQgPSBwaWQydGNiKHRjcC0+dV9hcmdbMF0pOworCQkJCWlmIChjaGlsZCA9PSBOVUxMIHx8IGNoaWxkLT5wYXJlbnQgIT0gKAorI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKKwkJCQkJICAgICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKKwkJCQkJICAgID8gdGNwLT5wYXJlbnQgOgorI2VuZGlmCisJCQkJCSAgICB0Y3ApIHx8CisJCQkJICAgIChjaGlsZC0+ZmxhZ3MgJiBUQ0JfRVhJVElORykpCisJCQkJCXJldHVybiAwOworCQkJfQorCQkJdGNwLT5mbGFncyB8PSBUQ0JfU1VTUEVOREVEOworCQkJdGNwLT53YWl0cGlkID0gdGNwLT51X2FyZ1swXTsKKyNpZmRlZiBUQ0JfQ0xPTkVfVEhSRUFECisJCQlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCisJCQkJdGNwLT5wYXJlbnQtPm5jbG9uZV93YWl0aW5nKys7CisjZW5kaWYKKwkJfQorCX0KKwlpZiAoZXhpdGluZyh0Y3ApICYmIHRjcC0+dV9lcnJvciA9PSBFQ0hJTEQgJiYgZ290X2tpZHMpIHsKKwkJaWYgKHRjcC0+dV9hcmdbZmxhZ2FyZ10gJiBXTk9IQU5HKSB7CisJCQkvKiBXZSBtdXN0IGZvcmNlIGEgZmFrZSByZXN1bHQgb2YgMCBpbnN0ZWFkIG9mCisJCQkgICB0aGUgRUNISUxEIGVycm9yLiAgKi8KKwkJCWV4dGVybiBpbnQgZm9yY2VfcmVzdWx0KCk7CisJCQlyZXR1cm4gZm9yY2VfcmVzdWx0KHRjcCwgMCwgMCk7CisJCX0KKwl9CisJZWxzZSBpZiAoZXhpdGluZyh0Y3ApICYmIHRjcC0+dV9lcnJvciA9PSAwICYmIHRjcC0+dV9ydmFsID4gMCAmJgorCQkgdGNwLT5uem9tYmllcyA+IDAgJiYgcGlkMnRjYih0Y3AtPnVfcnZhbCkgPT0gTlVMTCkgeworCQkvKgorCQkgKiBXZSBqdXN0IHJlYXBlZCBhIGNoaWxkIHdlIGRvbid0IGtub3cgYWJvdXQsCisJCSAqIHByZXN1bWFibHkgYSB6b21iaWUgd2UgYWxyZWFkeSBkcm9wdGNiJ2QuCisJCSAqLworCQl0Y3AtPm56b21iaWVzLS07CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgU1ZSNAorCitpbnQKK3N5c193YWl0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCS8qIFRoZSBsaWJyYXJ5IHdyYXBwZXIgc3R1ZmZzIHRoaXMgaW50byB0aGUgdXNlciB2YXJpYWJsZS4gKi8KKwkJaWYgKCFzeXNlcnJvcih0Y3ApKQorCQkJcHJpbnRzdGF0dXMoZ2V0cnZhbDIodGNwKSk7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogU1ZSNCAqLworCisjaWZkZWYgRlJFRUJTRAoraW50CitzeXNfd2FpdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IHN0YXR1czsKKworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJaWYgKCFzeXNlcnJvcih0Y3ApKSB7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmc3RhdHVzKSA8IDApCisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQkJZWxzZQorCQkJCXByaW50c3RhdHVzKHN0YXR1cyk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50CitzeXNfd2FpdHBpZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIHByaW50d2FpdG4odGNwLCAzLCAwKTsKK30KKworaW50CitzeXNfd2FpdDQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBwcmludHdhaXRuKHRjcCwgNCwgMCk7Cit9CisKKyNpZmRlZiBBTFBIQQoraW50CitzeXNfb3NmX3dhaXQ0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gcHJpbnR3YWl0bih0Y3AsIDQsIDEpOworfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkIFNWUjQgfHwgZGVmaW5lZCBMSU5VWAorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgd2FpdGlkX3R5cGVzW10gPSB7CisJeyBQX1BJRCwJIlBfUElEIgkJfSwKKyNpZmRlZiBQX1BQSUQKKwl7IFBfUFBJRCwJIlBfUFBJRCIJfSwKKyNlbmRpZgorCXsgUF9QR0lELAkiUF9QR0lEIgl9LAorI2lmZGVmIFBfU0lECisJeyBQX1NJRCwJIlBfU0lEIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBfQ0lECisJeyBQX0NJRCwJIlBfQ0lEIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBfVUlECisJeyBQX1VJRCwJIlBfVUlEIgkJfSwKKyNlbmRpZgorI2lmZGVmIFBfR0lECisJeyBQX0dJRCwJIlBfR0lEIgkJfSwKKyNlbmRpZgorCXsgUF9BTEwsCSJQX0FMTCIJCX0sCisjaWZkZWYgUF9MV1BJRAorCXsgUF9MV1BJRCwJIlBfTFdQSUQiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworaW50CitzeXNfd2FpdGlkKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlzaWdpbmZvX3Qgc2k7CisJaW50IGV4aXRlZDsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbCh3YWl0aWRfdHlwZXMsIHRjcC0+dV9hcmdbMF0sICJQXz8/PyIpOworCQl0cHJpbnRmKCIsICVsZCwgIiwgdGNwLT51X2FyZ1sxXSk7CisJfQorCWVsc2UgeworCQkvKiBzaWdpbmZvICovCisJCWV4aXRlZCA9IDA7CisJCWlmICghdGNwLT51X2FyZ1syXSkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmc2kpIDwgMCkKKwkJCXRwcmludGYoIns/Pz99Iik7CisJCWVsc2UKKwkJCXByaW50c2lnaW5mbygmc2ksIHZlcmJvc2UgKHRjcCkpOworCQkvKiBvcHRpb25zICovCisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3Mod2FpdDRfb3B0aW9ucywgdGNwLT51X2FyZ1szXSwgIlc/Pz8iKTsKKwkJaWYgKHRjcC0+dV9uYXJncyA+IDQpIHsKKwkJCS8qIHVzYWdlICovCisJCQl0cHJpbnRmKCIsICIpOworCQkJaWYgKCF0Y3AtPnVfYXJnWzRdKQorCQkJCXRwcmludGYoIk5VTEwiKTsKKwkJCWVsc2UgaWYgKHRjcC0+dV9lcnJvcikKKwkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1s0XSk7CisJCQllbHNlCisJCQkJcHJpbnRydXNhZ2UodGNwLCB0Y3AtPnVfYXJnWzRdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIFNWUjQgb3IgTElOVVggKi8KKworaW50CitzeXNfYWxhcm0odGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKQorCQl0cHJpbnRmKCIlbHUiLCB0Y3AtPnVfYXJnWzBdKTsKKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdW5hbWUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCB1dHNuYW1lIHVuYW1lOworCisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAoc3lzZXJyb3IodGNwKSB8fCAhdmVyYm9zZSh0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZ1bmFtZSkgPCAwKQorCQkJdHByaW50Zigiey4uLn0iKTsKKwkJZWxzZSBpZiAoIWFiYnJldih0Y3ApKSB7CisKKwkJCXRwcmludGYoIntzeXNuYW1lPVwiJXNcIiwgbm9kZW5hbWU9XCIlc1wiLCAiLAorCQkJCXVuYW1lLnN5c25hbWUsIHVuYW1lLm5vZGVuYW1lKTsKKwkJCXRwcmludGYoInJlbGVhc2U9XCIlc1wiLCB2ZXJzaW9uPVwiJXNcIiwgIiwKKwkJCQl1bmFtZS5yZWxlYXNlLCB1bmFtZS52ZXJzaW9uKTsKKwkJCXRwcmludGYoIm1hY2hpbmU9XCIlc1wiIiwgdW5hbWUubWFjaGluZSk7CisjaWZkZWYgTElOVVgKKyNpZm5kZWYgX19HTElCQ19fCisJCQl0cHJpbnRmKCIsIGRvbWFpbm5hbWU9XCIlc1wiIiwgdW5hbWUuZG9tYWlubmFtZSk7CisjZW5kaWYgLyogX19HTElCQ19fICovCisjZW5kaWYgLyogTElOVVggKi8KKwkJCXRwcmludGYoIn0iKTsKKwkJfQorCQllbHNlCisJCQl0cHJpbnRmKCJ7c3lzPVwiJXNcIiwgbm9kZT1cIiVzXCIsIC4uLn0iLAorCQkJCXVuYW1lLnN5c25hbWUsIHVuYW1lLm5vZGVuYW1lKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZm5kZWYgU1ZSNAorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHRyYWNlX2NtZHNbXSA9IHsKKyNpZm5kZWYgRlJFRUJTRAorCXsgUFRSQUNFX1RSQUNFTUUsCSJQVFJBQ0VfVFJBQ0VNRSIJfSwKKwl7IFBUUkFDRV9QRUVLVEVYVCwJIlBUUkFDRV9QRUVLVEVYVCIsCX0sCisJeyBQVFJBQ0VfUEVFS0RBVEEsCSJQVFJBQ0VfUEVFS0RBVEEiLAl9LAorCXsgUFRSQUNFX1BFRUtVU0VSLAkiUFRSQUNFX1BFRUtVU0VSIiwJfSwKKwl7IFBUUkFDRV9QT0tFVEVYVCwJIlBUUkFDRV9QT0tFVEVYVCIsCX0sCisJeyBQVFJBQ0VfUE9LRURBVEEsCSJQVFJBQ0VfUE9LRURBVEEiLAl9LAorCXsgUFRSQUNFX1BPS0VVU0VSLAkiUFRSQUNFX1BPS0VVU0VSIiwJfSwKKwl7IFBUUkFDRV9DT05ULAkJIlBUUkFDRV9DT05UIgkJfSwKKwl7IFBUUkFDRV9LSUxMLAkJIlBUUkFDRV9LSUxMIgkJfSwKKwl7IFBUUkFDRV9TSU5HTEVTVEVQLAkiUFRSQUNFX1NJTkdMRVNURVAiCX0sCisJeyBQVFJBQ0VfQVRUQUNILAkiUFRSQUNFX0FUVEFDSCIJCX0sCisJeyBQVFJBQ0VfREVUQUNILAkiUFRSQUNFX0RFVEFDSCIJCX0sCisjaWZkZWYgUFRSQUNFX0dFVFJFR1MKKwl7IFBUUkFDRV9HRVRSRUdTLAkiUFRSQUNFX0dFVFJFR1MiCX0sCisjZW5kaWYKKyNpZmRlZiBQVFJBQ0VfU0VUUkVHUworCXsgUFRSQUNFX1NFVFJFR1MsCSJQVFJBQ0VfU0VUUkVHUyIJfSwKKyNlbmRpZgorI2lmZGVmIFBUUkFDRV9HRVRGUFJFR1MKKwl7IFBUUkFDRV9HRVRGUFJFR1MsCSJQVFJBQ0VfR0VURlBSRUdTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFBUUkFDRV9TRVRGUFJFR1MKKwl7IFBUUkFDRV9TRVRGUFJFR1MsCSJQVFJBQ0VfU0VURlBSRUdTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFBUUkFDRV9HRVRGUFhSRUdTCisJeyBQVFJBQ0VfR0VURlBYUkVHUywJIlBUUkFDRV9HRVRGUFhSRUdTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFBUUkFDRV9TRVRGUFhSRUdTCisJeyBQVFJBQ0VfU0VURlBYUkVHUywJIlBUUkFDRV9TRVRGUFhSRUdTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFBUUkFDRV9HRVRWUlJFR1MKKwl7IFBUUkFDRV9HRVRWUlJFR1MsCSJQVFJBQ0VfR0VUVlJSRUdTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFBUUkFDRV9TRVRWUlJFR1MKKwl7IFBUUkFDRV9TRVRWUlJFR1MsCSJQVFJBQ0VfU0VUVlJSRUdTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFNVTk9TNAorCXsgUFRSQUNFX1JFQUREQVRBLAkiUFRSQUNFX1JFQUREQVRBIgl9LAorCXsgUFRSQUNFX1dSSVRFREFUQSwJIlBUUkFDRV9XUklURURBVEEiCX0sCisJeyBQVFJBQ0VfUkVBRFRFWFQsCSJQVFJBQ0VfUkVBRFRFWFQiCX0sCisJeyBQVFJBQ0VfV1JJVEVURVhULAkiUFRSQUNFX1dSSVRFVEVYVCIJfSwKKwl7IFBUUkFDRV9HRVRGUEFSRUdTLAkiUFRSQUNFX0dFVEZQQVJFR1MiCX0sCisJeyBQVFJBQ0VfU0VURlBBUkVHUywJIlBUUkFDRV9TRVRGUEFSRUdTIgl9LAorI2lmZGVmIFNQQVJDCisJeyBQVFJBQ0VfR0VUV0lORE9XLAkiUFRSQUNFX0dFVFdJTkRPVyIJfSwKKwl7IFBUUkFDRV9TRVRXSU5ET1csCSJQVFJBQ0VfU0VUV0lORE9XIgl9LAorI2Vsc2UgLyogIVNQQVJDICovCisJeyBQVFJBQ0VfMjIsCQkiUFRSQUNFX1BUUkFDRV8yMiIJfSwKKwl7IFBUUkFDRV8yMywJCSJQVFJBQ0VfUFRSQUNFXzIzIgl9LAorI2VuZGlmIC8qICFTUEFSQyAqLworI2VuZGlmIC8qIFNVTk9TNCAqLworCXsgUFRSQUNFX1NZU0NBTEwsCSJQVFJBQ0VfU1lTQ0FMTCIJfSwKKyNpZmRlZiBTVU5PUzQKKwl7IFBUUkFDRV9EVU1QQ09SRSwJIlBUUkFDRV9EVU1QQ09SRSIJfSwKKyNpZmRlZiBJMzg2CisJeyBQVFJBQ0VfU0VUV1JCS1BULAkiUFRSQUNFX1NFVFdSQktQVCIJfSwKKwl7IFBUUkFDRV9TRVRBQ0JLUFQsCSJQVFJBQ0VfU0VUQUNCS1BUIgl9LAorCXsgUFRSQUNFX0NMUkRSNywJIlBUUkFDRV9DTFJEUjciCQl9LAorI2Vsc2UgLyogIUkzODYgKi8KKwl7IFBUUkFDRV8yNiwJCSJQVFJBQ0VfMjYiCQl9LAorCXsgUFRSQUNFXzI3LAkJIlBUUkFDRV8yNyIJCX0sCisJeyBQVFJBQ0VfMjgsCQkiUFRSQUNFXzI4IgkJfSwKKyNlbmRpZiAvKiAhSTM4NiAqLworCXsgUFRSQUNFX0dFVFVDT0RFLAkiUFRSQUNFX0dFVFVDT0RFIgl9LAorI2VuZGlmIC8qIFNVTk9TNCAqLworI2Vsc2UgLyogRlJFRUJTRCAqLworCXsgUFRfVFJBQ0VfTUUsCQkiUFRfVFJBQ0VfTUUiCQl9LAorCXsgUFRfUkVBRF9JLAkJIlBUX1JFQURfSSIJCX0sCisJeyBQVF9SRUFEX0QsCQkiUFRfUkVBRF9EIgkJfSwKKwl7IFBUX1dSSVRFX0ksCQkiUFRfV1JJVEVfSSIJCX0sCisJeyBQVF9XUklURV9ELAkJIlBUX1dSSVRFX0QiCQl9LAorI2lmZGVmIFBUX1JFQURfVQorCXsgUFRfUkVBRF9VLAkJIlBUX1JFQURfVSIJCX0sCisjZW5kaWYKKwl7IFBUX0NPTlRJTlVFLAkJIlBUX0NPTlRJTlVFIgkJfSwKKwl7IFBUX0tJTEwsCQkiUFRfS0lMTCIJCX0sCisJeyBQVF9TVEVQLAkJIlBUX1NURVAiCQl9LAorCXsgUFRfQVRUQUNILAkJIlBUX0FUVEFDSCIJCX0sCisJeyBQVF9ERVRBQ0gsCQkiUFRfREVUQUNIIgkJfSwKKwl7IFBUX0dFVFJFR1MsCQkiUFRfR0VUUkVHUyIJCX0sCisJeyBQVF9TRVRSRUdTLAkJIlBUX1NFVFJFR1MiCQl9LAorCXsgUFRfR0VURlBSRUdTLAkJIlBUX0dFVEZQUkVHUyIJCX0sCisJeyBQVF9TRVRGUFJFR1MsCQkiUFRfU0VURlBSRUdTIgkJfSwKKwl7IFBUX0dFVERCUkVHUywJCSJQVF9HRVREQlJFR1MiCQl9LAorCXsgUFRfU0VUREJSRUdTLAkJIlBUX1NFVERCUkVHUyIJCX0sCisjZW5kaWYgLyogRlJFRUJTRCAqLworCXsgMCwJCQlOVUxMCQkJfSwKK307CisKKyNpZm5kZWYgRlJFRUJTRAorI2lmbmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFCitzdGF0aWMKKyNlbmRpZiAvKiAhU1VOT1M0X0tFUk5FTF9BUkNIX0tMVURHRSAqLworY29uc3Qgc3RydWN0IHhsYXQgc3RydWN0X3VzZXJfb2Zmc2V0c1tdID0geworI2lmZGVmIExJTlVYCisjaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQorCXsgUFRfUFNXTUFTSywJCSJwc3dfbWFzayIJCQkJfSwKKwl7IFBUX1BTV0FERFIsCQkicHN3X2FkZHIiCQkJCX0sCisJeyBQVF9HUFIwLAkJImdwcjAiCQkJCQl9LAorCXsgUFRfR1BSMSwJCSJncHIxIgkJCQkJfSwKKwl7IFBUX0dQUjIsCQkiZ3ByMiIJCQkJCX0sCisJeyBQVF9HUFIzLAkJImdwcjMiCQkJCQl9LAorCXsgUFRfR1BSNCwJCSJncHI0IgkJCQkJfSwKKwl7IFBUX0dQUjUsCQkiZ3ByNSIJCQkJCX0sCisJeyBQVF9HUFI2LAkJImdwcjYiCQkJCQl9LAorCXsgUFRfR1BSNywJCSJncHI3IgkJCQkJfSwKKwl7IFBUX0dQUjgsCQkiZ3ByOCIJCQkJCX0sCisJeyBQVF9HUFI5LAkJImdwcjkiCQkJCQl9LAorCXsgUFRfR1BSMTAsCQkiZ3ByMTAiCQkJCQl9LAorCXsgUFRfR1BSMTEsCQkiZ3ByMTEiCQkJCQl9LAorCXsgUFRfR1BSMTIsCQkiZ3ByMTIiCQkJCQl9LAorCXsgUFRfR1BSMTMsCQkiZ3ByMTMiCQkJCQl9LAorCXsgUFRfR1BSMTQsCQkiZ3ByMTQiCQkJCQl9LAorCXsgUFRfR1BSMTUsCQkiZ3ByMTUiCQkJCQl9LAorCXsgUFRfQUNSMCwJCSJhY3IwIgkJCQkJfSwKKwl7IFBUX0FDUjEsCQkiYWNyMSIJCQkJCX0sCisJeyBQVF9BQ1IyLAkJImFjcjIiCQkJCQl9LAorCXsgUFRfQUNSMywJCSJhY3IzIgkJCQkJfSwKKwl7IFBUX0FDUjQsCQkiYWNyNCIJCQkJCX0sCisJeyBQVF9BQ1I1LAkJImFjcjUiCQkJCQl9LAorCXsgUFRfQUNSNiwJCSJhY3I2IgkJCQkJfSwKKwl7IFBUX0FDUjcsCQkiYWNyNyIJCQkJCX0sCisJeyBQVF9BQ1I4LAkJImFjcjgiCQkJCQl9LAorCXsgUFRfQUNSOSwJCSJhY3I5IgkJCQkJfSwKKwl7IFBUX0FDUjEwLAkJImFjcjEwIgkJCQkJfSwKKwl7IFBUX0FDUjExLAkJImFjcjExIgkJCQkJfSwKKwl7IFBUX0FDUjEyLAkJImFjcjEyIgkJCQkJfSwKKwl7IFBUX0FDUjEzLAkJImFjcjEzIgkJCQkJfSwKKwl7IFBUX0FDUjE0LAkJImFjcjE0IgkJCQkJfSwKKwl7IFBUX0FDUjE1LAkJImFjcjE1IgkJCQkJfSwKKwl7IFBUX09SSUdHUFIyLAkJIm9yaWdfZ3ByMiIJCQkJfSwKKwl7IFBUX0ZQQywJCSJmcGMiCQkJCQl9LAorI2lmIGRlZmluZWQoUzM5MCkKKwl7IFBUX0ZQUjBfSEksCQkiZnByMC5oaSIJCQkJfSwKKwl7IFBUX0ZQUjBfTE8sCQkiZnByMC5sbyIJCQkJfSwKKwl7IFBUX0ZQUjFfSEksCQkiZnByMS5oaSIJCQkJfSwKKwl7IFBUX0ZQUjFfTE8sCQkiZnByMS5sbyIJCQkJfSwKKwl7IFBUX0ZQUjJfSEksCQkiZnByMi5oaSIJCQkJfSwKKwl7IFBUX0ZQUjJfTE8sCQkiZnByMi5sbyIJCQkJfSwKKwl7IFBUX0ZQUjNfSEksCQkiZnByMy5oaSIJCQkJfSwKKwl7IFBUX0ZQUjNfTE8sCQkiZnByMy5sbyIJCQkJfSwKKwl7IFBUX0ZQUjRfSEksCQkiZnByNC5oaSIJCQkJfSwKKwl7IFBUX0ZQUjRfTE8sCQkiZnByNC5sbyIJCQkJfSwKKwl7IFBUX0ZQUjVfSEksCQkiZnByNS5oaSIJCQkJfSwKKwl7IFBUX0ZQUjVfTE8sCQkiZnByNS5sbyIJCQkJfSwKKwl7IFBUX0ZQUjZfSEksCQkiZnByNi5oaSIJCQkJfSwKKwl7IFBUX0ZQUjZfTE8sCQkiZnByNi5sbyIJCQkJfSwKKwl7IFBUX0ZQUjdfSEksCQkiZnByNy5oaSIJCQkJfSwKKwl7IFBUX0ZQUjdfTE8sCQkiZnByNy5sbyIJCQkJfSwKKwl7IFBUX0ZQUjhfSEksCQkiZnByOC5oaSIJCQkJfSwKKwl7IFBUX0ZQUjhfTE8sCQkiZnByOC5sbyIJCQkJfSwKKwl7IFBUX0ZQUjlfSEksCQkiZnByOS5oaSIJCQkJfSwKKwl7IFBUX0ZQUjlfTE8sCQkiZnByOS5sbyIJCQkJfSwKKwl7IFBUX0ZQUjEwX0hJLAkJImZwcjEwLmhpIgkJCQl9LAorCXsgUFRfRlBSMTBfTE8sCQkiZnByMTAubG8iCQkJCX0sCisJeyBQVF9GUFIxMV9ISSwJCSJmcHIxMS5oaSIJCQkJfSwKKwl7IFBUX0ZQUjExX0xPLAkJImZwcjExLmxvIgkJCQl9LAorCXsgUFRfRlBSMTJfSEksCQkiZnByMTIuaGkiCQkJCX0sCisJeyBQVF9GUFIxMl9MTywJCSJmcHIxMi5sbyIJCQkJfSwKKwl7IFBUX0ZQUjEzX0hJLAkJImZwcjEzLmhpIgkJCQl9LAorCXsgUFRfRlBSMTNfTE8sCQkiZnByMTMubG8iCQkJCX0sCisJeyBQVF9GUFIxNF9ISSwJCSJmcHIxNC5oaSIJCQkJfSwKKwl7IFBUX0ZQUjE0X0xPLAkJImZwcjE0LmxvIgkJCQl9LAorCXsgUFRfRlBSMTVfSEksCQkiZnByMTUuaGkiCQkJCX0sCisJeyBQVF9GUFIxNV9MTywJCSJmcHIxNS5sbyIJCQkJfSwKKyNlbmRpZgorI2lmIGRlZmluZWQoUzM5MFgpCisJeyBQVF9GUFIwLAkJImZwcjAiCQkJCQl9LAorCXsgUFRfRlBSMSwJCSJmcHIxIgkJCQkJfSwKKwl7IFBUX0ZQUjIsCQkiZnByMiIJCQkJCX0sCisJeyBQVF9GUFIzLAkJImZwcjMiCQkJCQl9LAorCXsgUFRfRlBSNCwJCSJmcHI0IgkJCQkJfSwKKwl7IFBUX0ZQUjUsCQkiZnByNSIJCQkJCX0sCisJeyBQVF9GUFI2LAkJImZwcjYiCQkJCQl9LAorCXsgUFRfRlBSNywJCSJmcHI3IgkJCQkJfSwKKwl7IFBUX0ZQUjgsCQkiZnByOCIJCQkJCX0sCisJeyBQVF9GUFI5LAkJImZwcjkiCQkJCQl9LAorCXsgUFRfRlBSMTAsCQkiZnByMTAiCQkJCQl9LAorCXsgUFRfRlBSMTEsCQkiZnByMTEiCQkJCQl9LAorCXsgUFRfRlBSMTIsCQkiZnByMTIiCQkJCQl9LAorCXsgUFRfRlBSMTMsCQkiZnByMTMiCQkJCQl9LAorCXsgUFRfRlBSMTQsCQkiZnByMTQiCQkJCQl9LAorCXsgUFRfRlBSMTUsCQkiZnByMTUiCQkJCQl9LAorI2VuZGlmCisJeyBQVF9DUl85LAkJImNyOSIJCQkJCX0sCisJeyBQVF9DUl8xMCwJCSJjcjEwIgkJCQkJfSwKKwl7IFBUX0NSXzExLAkJImNyMTEiCQkJCQl9LAorCXsgUFRfSUVFRV9JUCwgICAgICAgICAgICJpZWVlX2V4Y2VwdGlvbl9pcCIgICAgICAgICAgICAgICAgICAgICB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChTUEFSQykKKwkvKiBYWFggTm8gc3VwcG9ydCBmb3IgdGhlc2Ugb2Zmc2V0cyB5ZXQuICovCisjZWxpZiBkZWZpbmVkKEhQUEEpCisJLyogWFhYIE5vIHN1cHBvcnQgZm9yIHRoZXNlIG9mZnNldHMgeWV0LiAqLworI2VsaWYgZGVmaW5lZChQT1dFUlBDKQorI2lmbmRlZiBQVF9PUklHX1IzCisjZGVmaW5lIFBUX09SSUdfUjMgMzQKKyNlbmRpZgorI2RlZmluZSBSRUdTSVpFIChzaXplb2YodW5zaWduZWQgbG9uZykpCisJeyBSRUdTSVpFKlBUX1IwLAkJInIwIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMSwJCSJyMSIJCQkJfSwKKwl7IFJFR1NJWkUqUFRfUjIsCQkicjIiCQkJCX0sCisJeyBSRUdTSVpFKlBUX1IzLAkJInIzIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SNCwJCSJyNCIJCQkJfSwKKwl7IFJFR1NJWkUqUFRfUjUsCQkicjUiCQkJCX0sCisJeyBSRUdTSVpFKlBUX1I2LAkJInI2IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SNywJCSJyNyIJCQkJfSwKKwl7IFJFR1NJWkUqUFRfUjgsCQkicjgiCQkJCX0sCisJeyBSRUdTSVpFKlBUX1I5LAkJInI5IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTAsCQkicjEwIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTEsCQkicjExIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTIsCQkicjEyIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTMsCQkicjEzIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTQsCQkicjE0IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTUsCQkicjE1IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTYsCQkicjE2IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTcsCQkicjE3IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTgsCQkicjE4IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMTksCQkicjE5IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjAsCQkicjIwIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjEsCQkicjIxIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjIsCQkicjIyIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjMsCQkicjIzIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjQsCQkicjI0IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjUsCQkicjI1IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjYsCQkicjI2IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjcsCQkicjI3IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjgsCQkicjI4IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMjksCQkicjI5IgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMzAsCQkicjMwIgkJCQl9LAorCXsgUkVHU0laRSpQVF9SMzEsCQkicjMxIgkJCQl9LAorCXsgUkVHU0laRSpQVF9OSVAsCQkiTklQIgkJCQl9LAorCXsgUkVHU0laRSpQVF9NU1IsCQkiTVNSIgkJCQl9LAorCXsgUkVHU0laRSpQVF9PUklHX1IzLAkJIk9SSUdfUjMiCQkJfSwKKwl7IFJFR1NJWkUqUFRfQ1RSLAkJIkNUUiIJCQkJfSwKKwl7IFJFR1NJWkUqUFRfTE5LLAkJIkxOSyIJCQkJfSwKKwl7IFJFR1NJWkUqUFRfWEVSLAkJIlhFUiIJCQkJfSwKKwl7IFJFR1NJWkUqUFRfQ0NSLAkJIkNDUiIJCQkJfSwKKwl7IFJFR1NJWkUqUFRfRlBSMCwJCSJGUFIwIgkJCQl9LAorI3VuZGVmIFJFR1NJWkUKKyNlbHNlCisjaWZkZWYgQUxQSEEKKwl7IDAsCQkJInIwIgkJCQkJfSwKKwl7IDEsCQkJInIxIgkJCQkJfSwKKwl7IDIsCQkJInIyIgkJCQkJfSwKKwl7IDMsCQkJInIzIgkJCQkJfSwKKwl7IDQsCQkJInI0IgkJCQkJfSwKKwl7IDUsCQkJInI1IgkJCQkJfSwKKwl7IDYsCQkJInI2IgkJCQkJfSwKKwl7IDcsCQkJInI3IgkJCQkJfSwKKwl7IDgsCQkJInI4IgkJCQkJfSwKKwl7IDksCQkJInI5IgkJCQkJfSwKKwl7IDEwLAkJCSJyMTAiCQkJCQl9LAorCXsgMTEsCQkJInIxMSIJCQkJCX0sCisJeyAxMiwJCQkicjEyIgkJCQkJfSwKKwl7IDEzLAkJCSJyMTMiCQkJCQl9LAorCXsgMTQsCQkJInIxNCIJCQkJCX0sCisJeyAxNSwJCQkicjE1IgkJCQkJfSwKKwl7IDE2LAkJCSJyMTYiCQkJCQl9LAorCXsgMTcsCQkJInIxNyIJCQkJCX0sCisJeyAxOCwJCQkicjE4IgkJCQkJfSwKKwl7IDE5LAkJCSJyMTkiCQkJCQl9LAorCXsgMjAsCQkJInIyMCIJCQkJCX0sCisJeyAyMSwJCQkicjIxIgkJCQkJfSwKKwl7IDIyLAkJCSJyMjIiCQkJCQl9LAorCXsgMjMsCQkJInIyMyIJCQkJCX0sCisJeyAyNCwJCQkicjI0IgkJCQkJfSwKKwl7IDI1LAkJCSJyMjUiCQkJCQl9LAorCXsgMjYsCQkJInIyNiIJCQkJCX0sCisJeyAyNywJCQkicjI3IgkJCQkJfSwKKwl7IDI4LAkJCSJyMjgiCQkJCQl9LAorCXsgMjksCQkJImdwIgkJCQkJfSwKKwl7IDMwLAkJCSJmcCIJCQkJCX0sCisJeyAzMSwJCQkiemVybyIJCQkJCX0sCisJeyAzMiwJCQkiZnAwIgkJCQkJfSwKKwl7IDMzLAkJCSJmcCIJCQkJCX0sCisJeyAzNCwJCQkiZnAyIgkJCQkJfSwKKwl7IDM1LAkJCSJmcDMiCQkJCQl9LAorCXsgMzYsCQkJImZwNCIJCQkJCX0sCisJeyAzNywJCQkiZnA1IgkJCQkJfSwKKwl7IDM4LAkJCSJmcDYiCQkJCQl9LAorCXsgMzksCQkJImZwNyIJCQkJCX0sCisJeyA0MCwJCQkiZnA4IgkJCQkJfSwKKwl7IDQxLAkJCSJmcDkiCQkJCQl9LAorCXsgNDIsCQkJImZwMTAiCQkJCQl9LAorCXsgNDMsCQkJImZwMTEiCQkJCQl9LAorCXsgNDQsCQkJImZwMTIiCQkJCQl9LAorCXsgNDUsCQkJImZwMTMiCQkJCQl9LAorCXsgNDYsCQkJImZwMTQiCQkJCQl9LAorCXsgNDcsCQkJImZwMTUiCQkJCQl9LAorCXsgNDgsCQkJImZwMTYiCQkJCQl9LAorCXsgNDksCQkJImZwMTciCQkJCQl9LAorCXsgNTAsCQkJImZwMTgiCQkJCQl9LAorCXsgNTEsCQkJImZwMTkiCQkJCQl9LAorCXsgNTIsCQkJImZwMjAiCQkJCQl9LAorCXsgNTMsCQkJImZwMjEiCQkJCQl9LAorCXsgNTQsCQkJImZwMjIiCQkJCQl9LAorCXsgNTUsCQkJImZwMjMiCQkJCQl9LAorCXsgNTYsCQkJImZwMjQiCQkJCQl9LAorCXsgNTcsCQkJImZwMjUiCQkJCQl9LAorCXsgNTgsCQkJImZwMjYiCQkJCQl9LAorCXsgNTksCQkJImZwMjciCQkJCQl9LAorCXsgNjAsCQkJImZwMjgiCQkJCQl9LAorCXsgNjEsCQkJImZwMjkiCQkJCQl9LAorCXsgNjIsCQkJImZwMzAiCQkJCQl9LAorCXsgNjMsCQkJImZwMzEiCQkJCQl9LAorCXsgNjQsCQkJInBjIgkJCQkJfSwKKyNlbHNlIC8qICFBTFBIQSAqLworI2lmZGVmIElBNjQKKwl7IFBUX0YzMiwgImYzMiIgfSwgeyBQVF9GMzMsICJmMzMiIH0sIHsgUFRfRjM0LCAiZjM0IiB9LAorCXsgUFRfRjM1LCAiZjM1IiB9LCB7IFBUX0YzNiwgImYzNiIgfSwgeyBQVF9GMzcsICJmMzciIH0sCisJeyBQVF9GMzgsICJmMzgiIH0sIHsgUFRfRjM5LCAiZjM5IiB9LCB7IFBUX0Y0MCwgImY0MCIgfSwKKwl7IFBUX0Y0MSwgImY0MSIgfSwgeyBQVF9GNDIsICJmNDIiIH0sIHsgUFRfRjQzLCAiZjQzIiB9LAorCXsgUFRfRjQ0LCAiZjQ0IiB9LCB7IFBUX0Y0NSwgImY0NSIgfSwgeyBQVF9GNDYsICJmNDYiIH0sCisJeyBQVF9GNDcsICJmNDciIH0sIHsgUFRfRjQ4LCAiZjQ4IiB9LCB7IFBUX0Y0OSwgImY0OSIgfSwKKwl7IFBUX0Y1MCwgImY1MCIgfSwgeyBQVF9GNTEsICJmNTEiIH0sIHsgUFRfRjUyLCAiZjUyIiB9LAorCXsgUFRfRjUzLCAiZjUzIiB9LCB7IFBUX0Y1NCwgImY1NCIgfSwgeyBQVF9GNTUsICJmNTUiIH0sCisJeyBQVF9GNTYsICJmNTYiIH0sIHsgUFRfRjU3LCAiZjU3IiB9LCB7IFBUX0Y1OCwgImY1OCIgfSwKKwl7IFBUX0Y1OSwgImY1OSIgfSwgeyBQVF9GNjAsICJmNjAiIH0sIHsgUFRfRjYxLCAiZjYxIiB9LAorCXsgUFRfRjYyLCAiZjYyIiB9LCB7IFBUX0Y2MywgImY2MyIgfSwgeyBQVF9GNjQsICJmNjQiIH0sCisJeyBQVF9GNjUsICJmNjUiIH0sIHsgUFRfRjY2LCAiZjY2IiB9LCB7IFBUX0Y2NywgImY2NyIgfSwKKwl7IFBUX0Y2OCwgImY2OCIgfSwgeyBQVF9GNjksICJmNjkiIH0sIHsgUFRfRjcwLCAiZjcwIiB9LAorCXsgUFRfRjcxLCAiZjcxIiB9LCB7IFBUX0Y3MiwgImY3MiIgfSwgeyBQVF9GNzMsICJmNzMiIH0sCisJeyBQVF9GNzQsICJmNzQiIH0sIHsgUFRfRjc1LCAiZjc1IiB9LCB7IFBUX0Y3NiwgImY3NiIgfSwKKwl7IFBUX0Y3NywgImY3NyIgfSwgeyBQVF9GNzgsICJmNzgiIH0sIHsgUFRfRjc5LCAiZjc5IiB9LAorCXsgUFRfRjgwLCAiZjgwIiB9LCB7IFBUX0Y4MSwgImY4MSIgfSwgeyBQVF9GODIsICJmODIiIH0sCisJeyBQVF9GODMsICJmODMiIH0sIHsgUFRfRjg0LCAiZjg0IiB9LCB7IFBUX0Y4NSwgImY4NSIgfSwKKwl7IFBUX0Y4NiwgImY4NiIgfSwgeyBQVF9GODcsICJmODciIH0sIHsgUFRfRjg4LCAiZjg4IiB9LAorCXsgUFRfRjg5LCAiZjg5IiB9LCB7IFBUX0Y5MCwgImY5MCIgfSwgeyBQVF9GOTEsICJmOTEiIH0sCisJeyBQVF9GOTIsICJmOTIiIH0sIHsgUFRfRjkzLCAiZjkzIiB9LCB7IFBUX0Y5NCwgImY5NCIgfSwKKwl7IFBUX0Y5NSwgImY5NSIgfSwgeyBQVF9GOTYsICJmOTYiIH0sIHsgUFRfRjk3LCAiZjk3IiB9LAorCXsgUFRfRjk4LCAiZjk4IiB9LCB7IFBUX0Y5OSwgImY5OSIgfSwgeyBQVF9GMTAwLCAiZjEwMCIgfSwKKwl7IFBUX0YxMDEsICJmMTAxIiB9LCB7IFBUX0YxMDIsICJmMTAyIiB9LCB7IFBUX0YxMDMsICJmMTAzIiB9LAorCXsgUFRfRjEwNCwgImYxMDQiIH0sIHsgUFRfRjEwNSwgImYxMDUiIH0sIHsgUFRfRjEwNiwgImYxMDYiIH0sCisJeyBQVF9GMTA3LCAiZjEwNyIgfSwgeyBQVF9GMTA4LCAiZjEwOCIgfSwgeyBQVF9GMTA5LCAiZjEwOSIgfSwKKwl7IFBUX0YxMTAsICJmMTEwIiB9LCB7IFBUX0YxMTEsICJmMTExIiB9LCB7IFBUX0YxMTIsICJmMTEyIiB9LAorCXsgUFRfRjExMywgImYxMTMiIH0sIHsgUFRfRjExNCwgImYxMTQiIH0sIHsgUFRfRjExNSwgImYxMTUiIH0sCisJeyBQVF9GMTE2LCAiZjExNiIgfSwgeyBQVF9GMTE3LCAiZjExNyIgfSwgeyBQVF9GMTE4LCAiZjExOCIgfSwKKwl7IFBUX0YxMTksICJmMTE5IiB9LCB7IFBUX0YxMjAsICJmMTIwIiB9LCB7IFBUX0YxMjEsICJmMTIxIiB9LAorCXsgUFRfRjEyMiwgImYxMjIiIH0sIHsgUFRfRjEyMywgImYxMjMiIH0sIHsgUFRfRjEyNCwgImYxMjQiIH0sCisJeyBQVF9GMTI1LCAiZjEyNSIgfSwgeyBQVF9GMTI2LCAiZjEyNiIgfSwgeyBQVF9GMTI3LCAiZjEyNyIgfSwKKwkvKiBzd2l0Y2ggc3RhY2s6ICovCisJeyBQVF9GMiwgImYyIiB9LCB7IFBUX0YzLCAiZjMiIH0sIHsgUFRfRjQsICJmNCIgfSwKKwl7IFBUX0Y1LCAiZjUiIH0sIHsgUFRfRjEwLCAiZjEwIiB9LCB7IFBUX0YxMSwgImYxMSIgfSwKKwl7IFBUX0YxMiwgImYxMiIgfSwgeyBQVF9GMTMsICJmMTMiIH0sIHsgUFRfRjE0LCAiZjE0IiB9LAorCXsgUFRfRjE1LCAiZjE1IiB9LCB7IFBUX0YxNiwgImYxNiIgfSwgeyBQVF9GMTcsICJmMTciIH0sCisJeyBQVF9GMTgsICJmMTgiIH0sIHsgUFRfRjE5LCAiZjE5IiB9LCB7IFBUX0YyMCwgImYyMCIgfSwKKwl7IFBUX0YyMSwgImYyMSIgfSwgeyBQVF9GMjIsICJmMjIiIH0sIHsgUFRfRjIzLCAiZjIzIiB9LAorCXsgUFRfRjI0LCAiZjI0IiB9LCB7IFBUX0YyNSwgImYyNSIgfSwgeyBQVF9GMjYsICJmMjYiIH0sCisJeyBQVF9GMjcsICJmMjciIH0sIHsgUFRfRjI4LCAiZjI4IiB9LCB7IFBUX0YyOSwgImYyOSIgfSwKKwl7IFBUX0YzMCwgImYzMCIgfSwgeyBQVF9GMzEsICJmMzEiIH0sIHsgUFRfUjQsICJyNCIgfSwKKwl7IFBUX1I1LCAicjUiIH0sIHsgUFRfUjYsICJyNiIgfSwgeyBQVF9SNywgInI3IiB9LAorCXsgUFRfQjEsICJiMSIgfSwgeyBQVF9CMiwgImIyIiB9LCB7IFBUX0IzLCAiYjMiIH0sCisJeyBQVF9CNCwgImI0IiB9LCB7IFBUX0I1LCAiYjUiIH0sCisJeyBQVF9BUl9FQywgImFyLmVjIiB9LCB7IFBUX0FSX0xDLCAiYXIubGMiIH0sCisJLyogcHRfcmVncyAqLworCXsgUFRfQ1JfSVBTUiwgInBzciIgfSwgeyBQVF9DUl9JSVAsICJpcCIgfSwKKwl7IFBUX0NGTSwgImNmbSIgfSwgeyBQVF9BUl9VTkFULCAiYXIudW5hdCIgfSwKKwl7IFBUX0FSX1BGUywgImFyLnBmcyIgfSwgeyBQVF9BUl9SU0MsICJhci5yc2MiIH0sCisJeyBQVF9BUl9STkFULCAiYXIucm5hdCIgfSwgeyBQVF9BUl9CU1BTVE9SRSwgImFyLmJzcHN0b3JlIiB9LAorCXsgUFRfUFIsICJwciIgfSwgeyBQVF9CNiwgImI2IiB9LCB7IFBUX0FSX0JTUCwgImFyLmJzcCIgfSwKKwl7IFBUX1IxLCAicjEiIH0sIHsgUFRfUjIsICJyMiIgfSwgeyBQVF9SMywgInIzIiB9LAorCXsgUFRfUjEyLCAicjEyIiB9LCB7IFBUX1IxMywgInIxMyIgfSwgeyBQVF9SMTQsICJyMTQiIH0sCisJeyBQVF9SMTUsICJyMTUiIH0sIHsgUFRfUjgsICJyOCIgfSwgeyBQVF9SOSwgInI5IiB9LAorCXsgUFRfUjEwLCAicjEwIiB9LCB7IFBUX1IxMSwgInIxMSIgfSwgeyBQVF9SMTYsICJyMTYiIH0sCisJeyBQVF9SMTcsICJyMTciIH0sIHsgUFRfUjE4LCAicjE4IiB9LCB7IFBUX1IxOSwgInIxOSIgfSwKKwl7IFBUX1IyMCwgInIyMCIgfSwgeyBQVF9SMjEsICJyMjEiIH0sIHsgUFRfUjIyLCAicjIyIiB9LAorCXsgUFRfUjIzLCAicjIzIiB9LCB7IFBUX1IyNCwgInIyNCIgfSwgeyBQVF9SMjUsICJyMjUiIH0sCisJeyBQVF9SMjYsICJyMjYiIH0sIHsgUFRfUjI3LCAicjI3IiB9LCB7IFBUX1IyOCwgInIyOCIgfSwKKwl7IFBUX1IyOSwgInIyOSIgfSwgeyBQVF9SMzAsICJyMzAiIH0sIHsgUFRfUjMxLCAicjMxIiB9LAorCXsgUFRfQVJfQ0NWLCAiYXIuY2N2IiB9LCB7IFBUX0FSX0ZQU1IsICJhci5mcHNyIiB9LAorCXsgUFRfQjAsICJiMCIgfSwgeyBQVF9CNywgImI3IiB9LCB7IFBUX0Y2LCAiZjYiIH0sCisJeyBQVF9GNywgImY3IiB9LCB7IFBUX0Y4LCAiZjgiIH0sIHsgUFRfRjksICJmOSIgfSwKKyMgaWZkZWYgUFRfQVJfQ1NECisJeyBQVF9BUl9DU0QsICJhci5jc2QiIH0sCisjIGVuZGlmCisjIGlmZGVmIFBUX0FSX1NTRAorCXsgUFRfQVJfU1NELCAiYXIuc3NkIiB9LAorIyBlbmRpZgorCXsgUFRfREJSLCAiZGJyIiB9LCB7IFBUX0lCUiwgImliciIgfSwgeyBQVF9QTUQsICJwbWQiIH0sCisjZWxzZSAvKiAhSUE2NCAqLworI2lmZGVmIEkzODYKKwl7IDQqRUJYLAkJIjQqRUJYIgkJCQkJfSwKKwl7IDQqRUNYLAkJIjQqRUNYIgkJCQkJfSwKKwl7IDQqRURYLAkJIjQqRURYIgkJCQkJfSwKKwl7IDQqRVNJLAkJIjQqRVNJIgkJCQkJfSwKKwl7IDQqRURJLAkJIjQqRURJIgkJCQkJfSwKKwl7IDQqRUJQLAkJIjQqRUJQIgkJCQkJfSwKKwl7IDQqRUFYLAkJIjQqRUFYIgkJCQkJfSwKKwl7IDQqRFMsCQkJIjQqRFMiCQkJCQl9LAorCXsgNCpFUywJCQkiNCpFUyIJCQkJCX0sCisJeyA0KkZTLAkJCSI0KkZTIgkJCQkJfSwKKwl7IDQqR1MsCQkJIjQqR1MiCQkJCQl9LAorCXsgNCpPUklHX0VBWCwJCSI0Kk9SSUdfRUFYIgkJCQl9LAorCXsgNCpFSVAsCQkiNCpFSVAiCQkJCQl9LAorCXsgNCpDUywJCQkiNCpDUyIJCQkJCX0sCisJeyA0KkVGTCwJCSI0KkVGTCIJCQkJCX0sCisJeyA0KlVFU1AsCQkiNCpVRVNQIgkJCQl9LAorCXsgNCpTUywJCQkiNCpTUyIJCQkJCX0sCisjZWxzZSAvKiAhSTM4NiAqLworI2lmZGVmIFg4Nl82NAorCXsgOCpSMTUsIAkJIjgqUjE1IgkJCQkJfSwKKwl7IDgqUjE0LCAJCSI4KlIxNCIJCQkJCX0sCisJeyA4KlIxMywgCQkiOCpSMTMiCQkJCQl9LAorCXsgOCpSMTIsIAkJIjgqUjEyIgkJCQkJfSwKKwl7IDgqUkJQLAkJIjgqUkJQIgkJCQkJfSwKKwl7IDgqUkJYLAkJIjgqUkJYIgkJCQkJfSwKKwl7IDgqUjExLAkJIjgqUjExIgkJCQkJfSwKKwl7IDgqUjEwLAkJIjgqUjEwIgkJCQkJfSwKKwl7IDgqUjksCQkJIjgqUjkiCQkJCQl9LAorCXsgOCpSOCwJCQkiOCpSOCIJCQkJCX0sCisJeyA4KlJBWCwJCSI4KlJBWCIJCQkJCX0sCisJeyA4KlJDWCwJCSI4KlJDWCIJCQkJCX0sCisJeyA4KlJEWCwJCSI4KlJEWCIJCQkJCX0sCisJeyA4KlJTSSwJCSI4KlJTSSIJCQkJCX0sCisJeyA4KlJESSwJCSI4KlJESSIJCQkJCX0sCisjaWYgMAorCXsgRFMsCQkJIkRTIgkJCQkJfSwKKwl7IEVTLAkJCSJFUyIJCQkJCX0sCisJeyBGUywJCQkiRlMiCQkJCQl9LAorCXsgR1MsCQkJIkdTIgkJCQkJfSwKKyNlbmRpZgorCXsgOCpPUklHX1JBWCwJCSI4Kk9SSUdfUkFYIgkJCQl9LAorCXsgOCpSSVAsCQkiOCpSSVAiCQkJCQl9LAorCXsgOCpDUywJCQkiOCpDUyIJCQkJCX0sCisJeyA4KkVGTEFHUywJCSI4KkVGTCIJCQkJCX0sCisJeyA4KlJTUCwJCSI4KlJTUCIJCQkJCX0sCisJeyA4KlNTLAkJCSI4KlNTIgkJCQkJfSwKKyNlbmRpZgorI2lmZGVmIE02OEsKKwl7IDQqUFRfRDEsCQkiNCpQVF9EMSIJCQkJfSwKKwl7IDQqUFRfRDIsCQkiNCpQVF9EMiIJCQkJfSwKKwl7IDQqUFRfRDMsCQkiNCpQVF9EMyIJCQkJfSwKKwl7IDQqUFRfRDQsCQkiNCpQVF9ENCIJCQkJfSwKKwl7IDQqUFRfRDUsCQkiNCpQVF9ENSIJCQkJfSwKKwl7IDQqUFRfRDYsCQkiNCpQVF9ENiIJCQkJfSwKKwl7IDQqUFRfRDcsCQkiNCpQVF9ENyIJCQkJfSwKKwl7IDQqUFRfQTAsCQkiNCpQVF9BMCIJCQkJfSwKKwl7IDQqUFRfQTEsCQkiNCpQVF9BMSIJCQkJfSwKKwl7IDQqUFRfQTIsCQkiNCpQVF9BMiIJCQkJfSwKKwl7IDQqUFRfQTMsCQkiNCpQVF9BMyIJCQkJfSwKKwl7IDQqUFRfQTQsCQkiNCpQVF9BNCIJCQkJfSwKKwl7IDQqUFRfQTUsCQkiNCpQVF9BNSIJCQkJfSwKKwl7IDQqUFRfQTYsCQkiNCpQVF9BNiIJCQkJfSwKKwl7IDQqUFRfRDAsCQkiNCpQVF9EMCIJCQkJfSwKKwl7IDQqUFRfVVNQLAkJIjQqUFRfVVNQIgkJCQl9LAorCXsgNCpQVF9PUklHX0QwLAkJIjQqUFRfT1JJR19EMCIJCQkJfSwKKwl7IDQqUFRfU1IsCQkiNCpQVF9TUiIJCQkJfSwKKwl7IDQqUFRfUEMsCQkiNCpQVF9QQyIJCQkJfSwKKyNlbmRpZiAvKiBNNjhLICovCisjZW5kaWYgLyogIUkzODYgKi8KKyNpZmRlZiBTSAorICAgICAgIHsgNCpSRUdfUkVHMCwgICAgICAgICAgICI0KlJFR19SRUcwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMSksICAgICAgICI0KlJFR19SRUcxIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMiksICAgICAgICI0KlJFR19SRUcyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMyksICAgICAgICI0KlJFR19SRUczIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArNCksICAgICAgICI0KlJFR19SRUc0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArNSksICAgICAgICI0KlJFR19SRUc1IiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArNiksICAgICAgICI0KlJFR19SRUc2IiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArNyksICAgICAgICI0KlJFR19SRUc3IiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArOCksICAgICAgICI0KlJFR19SRUc4IiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArOSksICAgICAgICI0KlJFR19SRUc5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMTApLCAgICAgICI0KlJFR19SRUcxMCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMTEpLCAgICAgICI0KlJFR19SRUcxMSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMTIpLCAgICAgICI0KlJFR19SRUcxMiIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMTMpLCAgICAgICI0KlJFR19SRUcxMyIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX1JFRzArMTQpLCAgICAgICI0KlJFR19SRUcxNCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfUkVHMTUsICAgICAgICAgICI0KlJFR19SRUcxNSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfUEMsICAgICAgICAgICAgICI0KlJFR19QQyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfUFIsICAgICAgICAgICAgICI0KlJFR19QUiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfU1IsICAgICAgICAgICAgICI0KlJFR19TUiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfR0JSLCAgICAgICAgICAgICI0KlJFR19HQlIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfTUFDSCwgICAgICAgICAgICI0KlJFR19NQUNIIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfTUFDTCwgICAgICAgICAgICI0KlJFR19NQUNMIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfU1lTQ0FMTCwgICAgICAgICI0KlJFR19TWVNDQUxMIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfRlBVTCwgICAgICAgICAgICI0KlJFR19GUFVMIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfRlBSRUcwLCAgICAgICAgICI0KlJFR19GUFJFRzAiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCsxKSwgICAgICI0KlJFR19GUFJFRzEiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCsyKSwgICAgICI0KlJFR19GUFJFRzIiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCszKSwgICAgICI0KlJFR19GUFJFRzMiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCs0KSwgICAgICI0KlJFR19GUFJFRzQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCs1KSwgICAgICI0KlJFR19GUFJFRzUiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCs2KSwgICAgICI0KlJFR19GUFJFRzYiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCs3KSwgICAgICI0KlJFR19GUFJFRzciICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCs4KSwgICAgICI0KlJFR19GUFJFRzgiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCs5KSwgICAgICI0KlJFR19GUFJFRzkiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCsxMCksICAgICI0KlJFR19GUFJFRzEwIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCsxMSksICAgICI0KlJFR19GUFJFRzExIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCsxMiksICAgICI0KlJFR19GUFJFRzEyIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCsxMyksICAgICI0KlJFR19GUFJFRzEzIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCooUkVHX0ZQUkVHMCsxNCksICAgICI0KlJFR19GUFJFRzE0IiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgIHsgNCpSRUdfRlBSRUcxNSwgICAgICAgICI0KlJFR19GUFJFRzE1IiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorI2lmZGVmIFJFR19YRFJFRzAKKyAgICAgICB7IDQqUkVHX1hEUkVHMCwgICAgICAgICAiNCpSRUdfWERSRUcwIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICB7IDQqKFJFR19YRFJFRzArMiksICAgICAiNCpSRUdfWERSRUcyIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICB7IDQqKFJFR19YRFJFRzArNCksICAgICAiNCpSRUdfWERSRUc0IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICB7IDQqKFJFR19YRFJFRzArNiksICAgICAiNCpSRUdfWERSRUc2IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICB7IDQqKFJFR19YRFJFRzArOCksICAgICAiNCpSRUdfWERSRUc4IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICB7IDQqKFJFR19YRFJFRzArMTApLCAgICAiNCpSRUdfWERSRUcxMCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICB7IDQqKFJFR19YRFJFRzArMTIpLCAgICAiNCpSRUdfWERSRUcxMiIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICB7IDQqUkVHX1hEUkVHMTQsICAgICAgICAiNCpSRUdfWERSRUcxNCIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyNlbmRpZgorICAgICAgIHsgNCpSRUdfRlBTQ1IsICAgICAgICAgICI0KlJFR19GUFNDUiIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorI2VuZGlmIC8qIFNIICovCisjaWZkZWYgU0g2NAorCXsgMCwJCSAgICAgICAgIlBDKEwpIgkJCQkgICAgICAgIH0sCisJeyA0LAkgICAgICAgICAgICAgICAgIlBDKFUpIgkJCQkgICAgICAgIH0sCisJeyA4LCAJICAgICAgICAgICAgICAgICJTUihMKSIJICAJICAgICAgICAgCQl9LAorCXsgMTIsICAgICAgICAgICAgICAgCSJTUihVKSIgICAgIAkJCQl9LAorCXsgMTYsICAgICAgICAgICAgCSJzeXNjYWxsIG5vLihMKSIgCQkJfSwKKwl7IDIwLCAgICAgICAgICAgIAkic3lzY2FsbF9uby4oVSkiCQkJfSwKKwl7IDI0LCAgICAgICAgICAgIAkiUjAoTCkiICAgICAJCQkJfSwKKwl7IDI4LCAgICAgICAgICAgIAkiUjAoVSkiICAgICAJCQkJfSwKKwl7IDMyLCAgICAgICAgICAgIAkiUjEoTCkiICAgICAJCQkJfSwKKwl7IDM2LCAgICAgICAgICAgIAkiUjEoVSkiICAgICAJCQkJfSwKKwl7IDQwLCAgICAgICAgICAgIAkiUjIoTCkiICAgICAJCQkJfSwKKwl7IDQ0LCAgICAgICAgICAgIAkiUjIoVSkiICAgICAJCQkJfSwKKwl7IDQ4LCAgICAgICAgICAgIAkiUjMoTCkiICAgICAJCQkJfSwKKwl7IDUyLCAgICAgICAgICAgIAkiUjMoVSkiICAgICAJCQkJfSwKKwl7IDU2LCAgICAgICAgICAgIAkiUjQoTCkiICAgICAJCQkJfSwKKwl7IDYwLCAgICAgICAgICAgIAkiUjQoVSkiICAgICAJCQkJfSwKKwl7IDY0LCAgICAgICAgICAgIAkiUjUoTCkiICAgICAJCQkJfSwKKwl7IDY4LCAgICAgICAgICAgIAkiUjUoVSkiICAgICAJCQkJfSwKKwl7IDcyLCAgICAgICAgICAgIAkiUjYoTCkiICAgICAJCQkJfSwKKwl7IDc2LCAgICAgICAgICAgIAkiUjYoVSkiICAgICAJCQkJfSwKKwl7IDgwLCAgICAgICAgICAgIAkiUjcoTCkiICAgICAJCQkJfSwKKwl7IDg0LCAgICAgICAgICAgIAkiUjcoVSkiICAgICAJCQkJfSwKKwl7IDg4LCAgICAgICAgICAgIAkiUjgoTCkiICAgICAJCQkJfSwKKwl7IDkyLCAgICAgICAgICAgIAkiUjgoVSkiICAgICAJCQkJfSwKKwl7IDk2LCAgICAgICAgICAgIAkiUjkoTCkiICAgICAJCQkJfSwKKwl7IDEwMCwgICAgICAgICAgIAkiUjkoVSkiICAgICAJCQkJfSwKKwl7IDEwNCwgICAgICAgICAgIAkiUjEwKEwpIiAgICAgCQkJCX0sCisJeyAxMDgsICAgICAgICAgICAJIlIxMChVKSIgICAgIAkJCQl9LAorCXsgMTEyLCAgICAgICAgICAgCSJSMTEoTCkiICAgICAJCQkJfSwKKwl7IDExNiwgICAgICAgICAgIAkiUjExKFUpIiAgICAgCQkJCX0sCisJeyAxMjAsICAgICAgICAgICAJIlIxMihMKSIgICAgIAkJCQl9LAorCXsgMTI0LCAgICAgICAgICAgCSJSMTIoVSkiICAgICAJCQkJfSwKKwl7IDEyOCwgICAgICAgICAgIAkiUjEzKEwpIiAgICAgCQkJCX0sCisJeyAxMzIsICAgICAgICAgICAJIlIxMyhVKSIgICAgIAkJCQl9LAorCXsgMTM2LCAgICAgICAgICAgCSJSMTQoTCkiICAgICAJCQkJfSwKKwl7IDE0MCwgICAgICAgICAgIAkiUjE0KFUpIiAgICAgCQkJCX0sCisJeyAxNDQsICAgICAgICAgICAJIlIxNShMKSIgICAgIAkJCQl9LAorCXsgMTQ4LCAgICAgICAgICAgCSJSMTUoVSkiICAgICAJCQkJfSwKKwl7IDE1MiwgICAgICAgICAgIAkiUjE2KEwpIiAgICAgCQkJCX0sCisJeyAxNTYsICAgICAgICAgICAJIlIxNihVKSIgICAgIAkJCQl9LAorCXsgMTYwLCAgICAgICAgICAgCSJSMTcoTCkiICAgICAJCQkJfSwKKwl7IDE2NCwgICAgICAgICAgIAkiUjE3KFUpIiAgICAgCQkJCX0sCisJeyAxNjgsICAgICAgICAgICAJIlIxOChMKSIgICAgIAkJCQl9LAorCXsgMTcyLCAgICAgICAgICAgCSJSMTgoVSkiICAgICAJCQkJfSwKKwl7IDE3NiwgICAgICAgICAgIAkiUjE5KEwpIiAgICAgCQkJCX0sCisJeyAxODAsICAgICAgICAgICAJIlIxOShVKSIgICAgIAkJCQl9LAorCXsgMTg0LCAgICAgICAgICAgCSJSMjAoTCkiICAgICAJCQkJfSwKKwl7IDE4OCwgICAgICAgICAgIAkiUjIwKFUpIiAgICAgCQkJCX0sCisJeyAxOTIsICAgICAgICAgICAJIlIyMShMKSIgICAgIAkJCQl9LAorCXsgMTk2LCAgICAgICAgICAgCSJSMjEoVSkiICAgICAJCQkJfSwKKwl7IDIwMCwgICAgICAgICAgIAkiUjIyKEwpIiAgICAgCQkJCX0sCisJeyAyMDQsICAgICAgICAgICAJIlIyMihVKSIgICAgIAkJCQl9LAorCXsgMjA4LCAgICAgICAgICAgCSJSMjMoTCkiICAgICAJCQkJfSwKKwl7IDIxMiwgICAgICAgICAgIAkiUjIzKFUpIiAgICAgCQkJCX0sCisJeyAyMTYsICAgICAgICAgICAJIlIyNChMKSIgICAgIAkJCQl9LAorCXsgMjIwLCAgICAgICAgICAgCSJSMjQoVSkiICAgICAJCQkJfSwKKwl7IDIyNCwgICAgICAgICAgIAkiUjI1KEwpIiAgICAgCQkJCX0sCisJeyAyMjgsICAgICAgICAgICAJIlIyNShVKSIgICAgIAkJCQl9LAorCXsgMjMyLCAgICAgICAgICAgCSJSMjYoTCkiICAgICAJCQkJfSwKKwl7IDIzNiwgICAgICAgICAgIAkiUjI2KFUpIiAgICAgCQkJCX0sCisJeyAyNDAsICAgICAgICAgICAJIlIyNyhMKSIgICAgIAkJCQl9LAorCXsgMjQ0LCAgICAgICAgICAgCSJSMjcoVSkiICAgICAJCQkJfSwKKwl7IDI0OCwgICAgICAgICAgIAkiUjI4KEwpIiAgICAgCQkJCX0sCisJeyAyNTIsICAgICAgICAgICAJIlIyOChVKSIgICAgIAkJCQl9LAorCXsgMjU2LCAgICAgICAgICAgCSJSMjkoTCkiICAgICAJCQkJfSwKKwl7IDI2MCwgICAgICAgICAgIAkiUjI5KFUpIiAgICAgCQkJCX0sCisJeyAyNjQsICAgICAgICAgICAJIlIzMChMKSIgICAgIAkJCQl9LAorCXsgMjY4LCAgICAgICAgICAgCSJSMzAoVSkiICAgICAJCQkJfSwKKwl7IDI3MiwgICAgICAgICAgIAkiUjMxKEwpIiAgICAgCQkJCX0sCisJeyAyNzYsICAgICAgICAgICAJIlIzMShVKSIgICAgIAkJCQl9LAorCXsgMjgwLCAgICAgICAgICAgCSJSMzIoTCkiICAgICAJCQkJfSwKKwl7IDI4NCwgICAgICAgICAgIAkiUjMyKFUpIiAgICAgCQkJCX0sCisJeyAyODgsICAgICAgICAgICAJIlIzMyhMKSIgICAgIAkJCQl9LAorCXsgMjkyLCAgICAgICAgICAgCSJSMzMoVSkiICAgICAJCQkJfSwKKwl7IDI5NiwgICAgICAgICAgIAkiUjM0KEwpIiAgICAgCQkJCX0sCisJeyAzMDAsICAgICAgICAgICAJIlIzNChVKSIgICAgIAkJCQl9LAorCXsgMzA0LCAgICAgICAgICAgCSJSMzUoTCkiICAgICAJCQkJfSwKKwl7IDMwOCwgICAgICAgICAgIAkiUjM1KFUpIiAgICAgCQkJCX0sCisJeyAzMTIsICAgICAgICAgICAJIlIzNihMKSIgICAgIAkJCQl9LAorCXsgMzE2LCAgICAgICAgICAgCSJSMzYoVSkiICAgICAJCQkJfSwKKwl7IDMyMCwgICAgICAgICAgIAkiUjM3KEwpIiAgICAgCQkJCX0sCisJeyAzMjQsICAgICAgICAgICAJIlIzNyhVKSIgICAgIAkJCQl9LAorCXsgMzI4LCAgICAgICAgICAgCSJSMzgoTCkiICAgICAJCQkJfSwKKwl7IDMzMiwgICAgICAgICAgIAkiUjM4KFUpIiAgICAgCQkJCX0sCisJeyAzMzYsICAgICAgICAgICAJIlIzOShMKSIgICAgIAkJCQl9LAorCXsgMzQwLCAgICAgICAgICAgCSJSMzkoVSkiICAgICAJCQkJfSwKKwl7IDM0NCwgICAgICAgICAgIAkiUjQwKEwpIiAgICAgCQkJCX0sCisJeyAzNDgsICAgICAgICAgICAJIlI0MChVKSIgICAgIAkJCQl9LAorCXsgMzUyLCAgICAgICAgICAgCSJSNDEoTCkiICAgICAJCQkJfSwKKwl7IDM1NiwgICAgICAgICAgIAkiUjQxKFUpIiAgICAgCQkJCX0sCisJeyAzNjAsICAgICAgICAgICAJIlI0MihMKSIgICAgIAkJCQl9LAorCXsgMzY0LCAgICAgICAgICAgCSJSNDIoVSkiICAgICAJCQkJfSwKKwl7IDM2OCwgICAgICAgICAgIAkiUjQzKEwpIiAgICAgCQkJCX0sCisJeyAzNzIsICAgICAgICAgICAJIlI0MyhVKSIgICAgIAkJCQl9LAorCXsgMzc2LCAgICAgICAgICAgCSJSNDQoTCkiICAgICAJCQkJfSwKKwl7IDM4MCwgICAgICAgICAgIAkiUjQ0KFUpIiAgICAgCQkJCX0sCisJeyAzODQsICAgICAgICAgICAJIlI0NShMKSIgICAgIAkJCQl9LAorCXsgMzg4LCAgICAgICAgICAgCSJSNDUoVSkiICAgICAJCQkJfSwKKwl7IDM5MiwgICAgICAgICAgIAkiUjQ2KEwpIiAgICAgCQkJCX0sCisJeyAzOTYsICAgICAgICAgICAJIlI0NihVKSIgICAgIAkJCQl9LAorCXsgNDAwLCAgICAgICAgICAgCSJSNDcoTCkiICAgICAJCQkJfSwKKwl7IDQwNCwgICAgICAgICAgIAkiUjQ3KFUpIiAgICAgCQkJCX0sCisJeyA0MDgsICAgICAgICAgICAJIlI0OChMKSIgICAgIAkJCQl9LAorCXsgNDEyLCAgICAgICAgICAgCSJSNDgoVSkiICAgICAJCQkJfSwKKwl7IDQxNiwgICAgICAgICAgIAkiUjQ5KEwpIiAgICAgCQkJCX0sCisJeyA0MjAsICAgICAgICAgICAJIlI0OShVKSIgICAgIAkJCQl9LAorCXsgNDI0LCAgICAgICAgICAgCSJSNTAoTCkiICAgICAJCQkJfSwKKwl7IDQyOCwgICAgICAgICAgIAkiUjUwKFUpIiAgICAgCQkJCX0sCisJeyA0MzIsICAgICAgICAgICAJIlI1MShMKSIgICAgIAkJCQl9LAorCXsgNDM2LCAgICAgICAgICAgCSJSNTEoVSkiICAgICAJCQkJfSwKKwl7IDQ0MCwgICAgICAgICAgIAkiUjUyKEwpIiAgICAgCQkJCX0sCisJeyA0NDQsICAgICAgICAgICAJIlI1MihVKSIgICAgIAkJCQl9LAorCXsgNDQ4LCAgICAgICAgICAgCSJSNTMoTCkiICAgICAJCQkJfSwKKwl7IDQ1MiwgICAgICAgICAgIAkiUjUzKFUpIiAgICAgCQkJCX0sCisJeyA0NTYsICAgICAgICAgICAJIlI1NChMKSIgICAgIAkJCQl9LAorCXsgNDYwLCAgICAgICAgICAgCSJSNTQoVSkiICAgICAJCQkJfSwKKwl7IDQ2NCwgICAgICAgICAgIAkiUjU1KEwpIiAgICAgCQkJCX0sCisJeyA0NjgsICAgICAgICAgICAJIlI1NShVKSIgICAgIAkJCQl9LAorCXsgNDcyLCAgICAgICAgICAgCSJSNTYoTCkiICAgICAJCQkJfSwKKwl7IDQ3NiwgICAgICAgICAgIAkiUjU2KFUpIiAgICAgCQkJCX0sCisJeyA0ODAsICAgICAgICAgICAJIlI1NyhMKSIgICAgIAkJCQl9LAorCXsgNDg0LCAgICAgICAgICAgCSJSNTcoVSkiICAgICAJCQkJfSwKKwl7IDQ4OCwgICAgICAgICAgIAkiUjU4KEwpIiAgICAgCQkJCX0sCisJeyA0OTIsICAgICAgICAgICAJIlI1OChVKSIgICAgIAkJCQl9LAorCXsgNDk2LCAgICAgICAgICAgCSJSNTkoTCkiICAgICAJCQkJfSwKKwl7IDUwMCwgICAgICAgICAgIAkiUjU5KFUpIiAgICAgCQkJCX0sCisJeyA1MDQsICAgICAgICAgICAJIlI2MChMKSIgICAgIAkJCQl9LAorCXsgNTA4LCAgICAgICAgICAgCSJSNjAoVSkiICAgICAJCQkJfSwKKwl7IDUxMiwgICAgICAgICAgIAkiUjYxKEwpIiAgICAgCQkJCX0sCisJeyA1MTYsICAgICAgICAgICAJIlI2MShVKSIgICAgIAkJCQl9LAorCXsgNTIwLCAgICAgICAgICAgCSJSNjIoTCkiICAgICAJCQkJfSwKKwl7IDUyNCwgICAgICAgICAgIAkiUjYyKFUpIiAgICAgCQkJCX0sCisJeyA1MjgsICAgICAgICAgICAgICAgICAgIlRSMChMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1MzIsICAgICAgICAgICAgICAgICAgIlRSMChVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1MzYsICAgICAgICAgICAgICAgICAgIlRSMShMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NDAsICAgICAgICAgICAgICAgICAgIlRSMShVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NDQsICAgICAgICAgICAgICAgICAgIlRSMihMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NDgsICAgICAgICAgICAgICAgICAgIlRSMihVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NTIsICAgICAgICAgICAgICAgICAgIlRSMyhMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NTYsICAgICAgICAgICAgICAgICAgIlRSMyhVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NjAsICAgICAgICAgICAgICAgICAgIlRSNChMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NjQsICAgICAgICAgICAgICAgICAgIlRSNChVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NjgsICAgICAgICAgICAgICAgICAgIlRSNShMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NzIsICAgICAgICAgICAgICAgICAgIlRSNShVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1NzYsICAgICAgICAgICAgICAgICAgIlRSNihMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1ODAsICAgICAgICAgICAgICAgICAgIlRSNihVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1ODQsICAgICAgICAgICAgICAgICAgIlRSNyhMKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisJeyA1ODgsICAgICAgICAgICAgICAgICAgIlRSNyhVKSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIC8qIFRoaXMgZW50cnkgaXMgaW4gY2FzZSBwdF9yZWdzIGNvbnRhaW5zIGRyZWdzIChkZXBlbmRzIG9uCisgICAgICAgICAgIHRoZSBrZXJuZWwgYnVpbGQgb3B0aW9ucykuICovCisJeyB1b2ZmKHJlZ3MpLAkgICAgICAgICJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgcmVncykiCSAgICAgICAgfSwKKwl7IHVvZmYoZnB1KSwJICAgICAgICAib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIGZwdSkiCSAgICAgICAgfSwKKyNlbmRpZgorI2lmZGVmIEFSTQorCXsgdW9mZihyZWdzLkFSTV9yMCksCSJyMCIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MuQVJNX3IxKSwJInIxIgkJCQkJfSwKKwl7IHVvZmYocmVncy5BUk1fcjIpLAkicjIiCQkJCQl9LAorCXsgdW9mZihyZWdzLkFSTV9yMyksCSJyMyIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MuQVJNX3I0KSwJInI0IgkJCQkJfSwKKwl7IHVvZmYocmVncy5BUk1fcjUpLAkicjUiCQkJCQl9LAorCXsgdW9mZihyZWdzLkFSTV9yNiksCSJyNiIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MuQVJNX3I3KSwJInI3IgkJCQkJfSwKKwl7IHVvZmYocmVncy5BUk1fcjgpLAkicjgiCQkJCQl9LAorCXsgdW9mZihyZWdzLkFSTV9yOSksCSJyOSIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MuQVJNX3IxMCksCSJyMTAiCQkJCQl9LAorCXsgdW9mZihyZWdzLkFSTV9mcCksCSJmcCIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MuQVJNX2lwKSwJImlwIgkJCQkJfSwKKwl7IHVvZmYocmVncy5BUk1fc3ApLAkic3AiCQkJCQl9LAorCXsgdW9mZihyZWdzLkFSTV9sciksCSJsciIJCQkJCX0sCisJeyB1b2ZmKHJlZ3MuQVJNX3BjKSwJInBjIgkJCQkJfSwKKwl7IHVvZmYocmVncy5BUk1fY3BzciksCSJjcHNyIgkJCQkJfSwKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoUzM5MCkgJiYgIWRlZmluZWQoUzM5MFgpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFNQQVJDNjQpCisJeyB1b2ZmKHVfZnB2YWxpZCksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9mcHZhbGlkKSIJfSwKKyNlbmRpZgorI2lmICBkZWZpbmVkKEkzODYpIHx8IGRlZmluZWQoWDg2XzY0KQorCXsgdW9mZihpMzg3KSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgaTM4NykiCQl9LAorI2Vsc2UgLyogIUkzODYgKi8KKyNpZmRlZiBNNjhLCisJeyB1b2ZmKG02OGtmcCksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIG02OGtmcCkiCQl9LAorI2VuZGlmIC8qIE02OEsgKi8KKyNlbmRpZiAvKiAhSTM4NiAqLworCXsgdW9mZih1X3RzaXplKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3RzaXplKSIJfSwKKwl7IHVvZmYodV9kc2l6ZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9kc2l6ZSkiCX0sCisJeyB1b2ZmKHVfc3NpemUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfc3NpemUpIgl9LAorI2lmICFkZWZpbmVkKFNQQVJDNjQpCisJeyB1b2ZmKHN0YXJ0X2NvZGUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHN0YXJ0X2NvZGUpIgl9LAorI2VuZGlmCisjaWZkZWYgU0g2NAorCXsgdW9mZihzdGFydF9kYXRhKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCBzdGFydF9kYXRhKSIJfSwKKyNlbmRpZgorI2lmICFkZWZpbmVkKFNQQVJDNjQpCisJeyB1b2ZmKHN0YXJ0X3N0YWNrKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCBzdGFydF9zdGFjaykiCX0sCisjZW5kaWYKKwl7IHVvZmYoc2lnbmFsKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgc2lnbmFsKSIJCX0sCisjaWYgIWRlZmluZWQoUzM5MCkgJiYgIWRlZmluZWQoUzM5MFgpICYmICFkZWZpbmVkKE1JUFMpICYmICFkZWZpbmVkKFNIKSAmJiAhZGVmaW5lZChTSDY0KSAmJiAhZGVmaW5lZChTUEFSQzY0KQorCXsgdW9mZihyZXNlcnZlZCksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgcmVzZXJ2ZWQpIgl9LAorI2VuZGlmCisjaWYgIWRlZmluZWQoU1BBUkM2NCkKKwl7IHVvZmYodV9hcjApLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2FyMCkiCQl9LAorI2VuZGlmCisjaWYgIWRlZmluZWQoQVJNKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChTMzkwKSAmJiAhZGVmaW5lZChTMzkwWCkgJiYgIWRlZmluZWQoU1BBUkM2NCkKKwl7IHVvZmYodV9mcHN0YXRlKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2Zwc3RhdGUpIgl9LAorI2VuZGlmCisJeyB1b2ZmKG1hZ2ljKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgbWFnaWMpIgkJfSwKKwl7IHVvZmYodV9jb21tKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9jb21tKSIJCX0sCisjaWYgZGVmaW5lZChJMzg2KSB8fCBkZWZpbmVkKFg4Nl82NCkKKwl7IHVvZmYodV9kZWJ1Z3JlZyksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9kZWJ1Z3JlZykiCX0sCisjZW5kaWYgLyogSTM4NiAqLworI2VuZGlmIC8qICFJQTY0ICovCisjZW5kaWYgLyogIUFMUEhBICovCisjZW5kaWYgLyogIVBPV0VSUEMvIVNQQVJDICovCisjZW5kaWYgLyogTElOVVggKi8KKyNpZmRlZiBTVU5PUzQKKwl7IHVvZmYodV9wY2IpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3BjYikiCQl9LAorCXsgdW9mZih1X3Byb2NwKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3Byb2NwKSIJfSwKKwl7IHVvZmYodV9hcjApLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2FyMCkiCQl9LAorCXsgdW9mZih1X2NvbW1bMF0pLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfY29tbVswXSkiCX0sCisJeyB1b2ZmKHVfYXJnWzBdKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2FyZ1swXSkiCX0sCisJeyB1b2ZmKHVfYXApLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2FwKSIJCX0sCisJeyB1b2ZmKHVfcXNhdmUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfcXNhdmUpIgl9LAorCXsgdW9mZih1X3J2YWwxKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3J2YWwxKSIJfSwKKwl7IHVvZmYodV9ydmFsMiksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9ydmFsMikiCX0sCisJeyB1b2ZmKHVfZXJyb3IpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfZXJyb3IpIgl9LAorCXsgdW9mZih1X2Vvc3lzKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2Vvc3lzKSIJfSwKKwl7IHVvZmYodV9zc2F2ZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9zc2F2ZSkiCX0sCisJeyB1b2ZmKHVfc2lnbmFsWzBdKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3NpZ25hbCkiCX0sCisJeyB1b2ZmKHVfc2lnbWFza1swXSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9zaWdtYXNrKSIJfSwKKwl7IHVvZmYodV9zaWdvbnN0YWNrKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3NpZ29uc3RhY2spIgl9LAorCXsgdW9mZih1X3NpZ2ludHIpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfc2lnaW50cikiCX0sCisJeyB1b2ZmKHVfc2lncmVzZXQpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfc2lncmVzZXQpIgl9LAorCXsgdW9mZih1X29sZG1hc2spLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfb2xkbWFzaykiCX0sCisJeyB1b2ZmKHVfY29kZSksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfY29kZSkiCQl9LAorCXsgdW9mZih1X2FkZHIpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2FkZHIpIgkJfSwKKwl7IHVvZmYodV9zaWdzdGFjayksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9zaWdzdGFjaykiCX0sCisJeyB1b2ZmKHVfb2ZpbGUpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfb2ZpbGUpIgl9LAorCXsgdW9mZih1X3BvZmlsZSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9wb2ZpbGUpIgl9LAorCXsgdW9mZih1X29maWxlX2FyclswXSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9vZmlsZV9hcnJbMF0pIgl9LAorCXsgdW9mZih1X3BvZmlsZV9hcnJbMF0pLCJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9wb2ZpbGVfYXJyWzBdKSJ9LAorCXsgdW9mZih1X2xhc3RmaWxlKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2xhc3RmaWxlKSIJfSwKKwl7IHVvZmYodV9jd2QpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2N3ZCkiCQl9LAorCXsgdW9mZih1X2NkaXIpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2NkaXIpIgkJfSwKKwl7IHVvZmYodV9yZGlyKSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9yZGlyKSIJCX0sCisJeyB1b2ZmKHVfY21hc2spLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfY21hc2spIgl9LAorCXsgdW9mZih1X3J1KSwJCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9ydSkiCQl9LAorCXsgdW9mZih1X2NydSksCQkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfY3J1KSIJCX0sCisJeyB1b2ZmKHVfdGltZXJbMF0pLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfdGltZXJbMF0pIgl9LAorCXsgdW9mZih1X1hYWFswXSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9YWFhbMF0pIgl9LAorCXsgdW9mZih1X2lvY2gpLAkJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2lvY2gpIgkJfSwKKwl7IHVvZmYodV9zdGFydCksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9zdGFydCkiCX0sCisJeyB1b2ZmKHVfYWNmbGFnKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2FjZmxhZykiCX0sCisJeyB1b2ZmKHVfcHJvZi5wcl9iYXNlKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3Byb2YucHJfYmFzZSkiCX0sCisJeyB1b2ZmKHVfcHJvZi5wcl9zaXplKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X3Byb2YucHJfc2l6ZSkiCX0sCisJeyB1b2ZmKHVfcHJvZi5wcl9vZmYpLAkib2Zmc2V0b2Yoc3RydWN0IHVzZXIsIHVfcHJvZi5wcl9vZmYpIgl9LAorCXsgdW9mZih1X3Byb2YucHJfc2NhbGUpLCJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9wcm9mLnByX3NjYWxlKSJ9LAorCXsgdW9mZih1X3JsaW1pdFswXSksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9ybGltaXQpIgl9LAorCXsgdW9mZih1X2V4ZGF0YS5VeF9BKSwJIm9mZnNldG9mKHN0cnVjdCB1c2VyLCB1X2V4ZGF0YS5VeF9BKSIJfSwKKwl7IHVvZmYodV9leGRhdGEudXhfc2hlbGxbMF0pLCJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9leGRhdGEudXhfc2hlbGxbMF0pIn0sCisJeyB1b2ZmKHVfbG9mYXVsdCksCSJvZmZzZXRvZihzdHJ1Y3QgdXNlciwgdV9sb2ZhdWx0KSIJfSwKKyNlbmRpZiAvKiBTVU5PUzQgKi8KKyNpZm5kZWYgSFBQQQorCXsgc2l6ZW9mKHN0cnVjdCB1c2VyKSwJInNpemVvZihzdHJ1Y3QgdXNlcikiCQkJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQkJCQl9LAorfTsKKyNlbmRpZgorCitpbnQKK3N5c19wdHJhY2UodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWNvbnN0IHN0cnVjdCB4bGF0ICp4OworCWxvbmcgYWRkcjsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbChwdHJhY2VfY21kcywgdGNwLT51X2FyZ1swXSwKKyNpZm5kZWYgRlJFRUJTRAorCQkJICAiUFRSQUNFXz8/PyIKKyNlbHNlCisJCQkgICJQVF8/Pz8iCisjZW5kaWYKKwkJCSk7CisJCXRwcmludGYoIiwgJWx1LCAiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJYWRkciA9IHRjcC0+dV9hcmdbMl07CisjaWZuZGVmIEZSRUVCU0QKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gUFRSQUNFX1BFRUtVU0VSCisJCQl8fCB0Y3AtPnVfYXJnWzBdID09IFBUUkFDRV9QT0tFVVNFUikgeworCQkJZm9yICh4ID0gc3RydWN0X3VzZXJfb2Zmc2V0czsgeC0+c3RyOyB4KyspIHsKKwkJCQlpZiAoeC0+dmFsID49IGFkZHIpCisJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKCF4LT5zdHIpCisJCQkJdHByaW50ZigiJSNseCwgIiwgYWRkcik7CisJCQllbHNlIGlmICh4LT52YWwgPiBhZGRyICYmIHggIT0gc3RydWN0X3VzZXJfb2Zmc2V0cykgeworCQkJCXgtLTsKKwkJCQl0cHJpbnRmKCIlcyArICVsZCwgIiwgeC0+c3RyLCBhZGRyIC0geC0+dmFsKTsKKwkJCX0KKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIlcywgIiwgeC0+c3RyKTsKKwkJfQorCQllbHNlCisjZW5kaWYKKwkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMl0pOworI2lmZGVmIExJTlVYCisJCXN3aXRjaCAodGNwLT51X2FyZ1swXSkgeworCQljYXNlIFBUUkFDRV9QRUVLREFUQToKKwkJY2FzZSBQVFJBQ0VfUEVFS1RFWFQ6CisJCWNhc2UgUFRSQUNFX1BFRUtVU0VSOgorCQkJYnJlYWs7CisJCWNhc2UgUFRSQUNFX0NPTlQ6CisJCWNhc2UgUFRSQUNFX1NJTkdMRVNURVA6CisJCWNhc2UgUFRSQUNFX1NZU0NBTEw6CisJCWNhc2UgUFRSQUNFX0RFVEFDSDoKKwkJCXByaW50c2lnbmFsKHRjcC0+dV9hcmdbM10pOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJCQlicmVhazsKKwkJfQorCX0gZWxzZSB7CisJCXN3aXRjaCAodGNwLT51X2FyZ1swXSkgeworCQljYXNlIFBUUkFDRV9QRUVLREFUQToKKwkJY2FzZSBQVFJBQ0VfUEVFS1RFWFQ6CisJCWNhc2UgUFRSQUNFX1BFRUtVU0VSOgorCQkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzNdLCAiJSNseCIpOworCQkJYnJlYWs7CisJCX0KKwl9CisjZW5kaWYgLyogTElOVVggKi8KKyNpZmRlZiBTVU5PUzQKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gUFRSQUNFX1dSSVRFREFUQSB8fAorCQkJdGNwLT51X2FyZ1swXSA9PSBQVFJBQ0VfV1JJVEVURVhUKSB7CisJCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbM10pOworCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzRdLCB0Y3AtPnVfYXJnWzNdKTsKKwkJfSBlbHNlIGlmICh0Y3AtPnVfYXJnWzBdICE9IFBUUkFDRV9SRUFEREFUQSAmJgorCQkJCXRjcC0+dV9hcmdbMF0gIT0gUFRSQUNFX1JFQURURVhUKSB7CisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1szXSk7CisJCX0KKwl9IGVsc2UgeworCQlpZiAodGNwLT51X2FyZ1swXSA9PSBQVFJBQ0VfUkVBRERBVEEgfHwKKwkJCXRjcC0+dV9hcmdbMF0gPT0gUFRSQUNFX1JFQURURVhUKSB7CisJCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbM10pOworCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzRdLCB0Y3AtPnVfYXJnWzNdKTsKKwkJfQorCX0KKyNlbmRpZiAvKiBTVU5PUzQgKi8KKyNpZmRlZiBGUkVFQlNECisJCXRwcmludGYoIiVsdSIsIHRjcC0+dV9hcmdbM10pOworCX0KKyNlbmRpZiAvKiBGUkVFQlNEICovCisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiAhU1ZSNCAqLworCisjaWZkZWYgTElOVVgKKyMgaWZuZGVmIEZVVEVYX0NNUF9SRVFVRVVFCisjICBkZWZpbmUgRlVURVhfQ01QX1JFUVVFVUUgNAorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfV0FLRV9PUAorIyAgZGVmaW5lIEZVVEVYX1dBS0VfT1AgNQorIyBlbmRpZgorIyBpZm5kZWYgRlVURVhfTE9DS19QSQorIyAgZGVmaW5lIEZVVEVYX0xPQ0tfUEkgNgorIyAgZGVmaW5lIEZVVEVYX1VOTE9DS19QSSA3CisjICBkZWZpbmUgRlVURVhfVFJZTE9DS19QSSA4CisjIGVuZGlmCisjIGlmbmRlZiBGVVRFWF9DTVBfUkVRVUVVRV9QSQorIyAgZGVmaW5lIEZVVEVYX0NNUF9SRVFVRVVFX1BJIDkKKyMgZW5kaWYKKyMgaWZuZGVmIEZVVEVYX1BSSVZBVEVfRkxBRworIyAgZGVmaW5lIEZVVEVYX1BSSVZBVEVfRkxBRyAxMjgKKyMgZW5kaWYKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmdXRleG9wc1tdID0geworCXsgRlVURVhfV0FJVCwJCQkJCSJGVVRFWF9XQUlUIiB9LAorCXsgRlVURVhfV0FLRSwJCQkJCSJGVVRFWF9XQUtFIiB9LAorCXsgRlVURVhfRkQsCQkJCQkiRlVURVhfRkQiIH0sCisJeyBGVVRFWF9SRVFVRVVFLAkJCQkiRlVURVhfUkVRVUVVRSIgfSwKKwl7IEZVVEVYX0NNUF9SRVFVRVVFLAkJCQkiRlVURVhfQ01QX1JFUVVFVUUiIH0sCisJeyBGVVRFWF9XQUtFX09QLAkJCQkiRlVURVhfV0FLRV9PUCIgfSwKKwl7IEZVVEVYX0xPQ0tfUEksCQkJCSJGVVRFWF9MT0NLX1BJIiB9LAorCXsgRlVURVhfVU5MT0NLX1BJLAkJCQkiRlVURVhfVU5MT0NLX1BJIiB9LAorCXsgRlVURVhfVFJZTE9DS19QSSwJCQkJIkZVVEVYX1RSWUxPQ0tfUEkiIH0sCisJeyBGVVRFWF9DTVBfUkVRVUVVRV9QSSwJCQkJIkZVVEVYX0NNUF9SRVFVRVVFX1BJIiB9LAorCXsgRlVURVhfV0FJVHxGVVRFWF9QUklWQVRFX0ZMQUcsCQkiRlVURVhfV0FJVF9QUklWQVRFIiB9LAorCXsgRlVURVhfV0FLRXxGVVRFWF9QUklWQVRFX0ZMQUcsCQkiRlVURVhfV0FLRV9QUklWQVRFIiB9LAorCXsgRlVURVhfRkR8RlVURVhfUFJJVkFURV9GTEFHLAkJCSJGVVRFWF9GRF9QUklWQVRFIiB9LAorCXsgRlVURVhfUkVRVUVVRXxGVVRFWF9QUklWQVRFX0ZMQUcsCQkiRlVURVhfUkVRVUVVRV9QUklWQVRFIiB9LAorCXsgRlVURVhfQ01QX1JFUVVFVUV8RlVURVhfUFJJVkFURV9GTEFHLAkJIkZVVEVYX0NNUF9SRVFVRVVFX1BSSVZBVEUiIH0sCisJeyBGVVRFWF9XQUtFX09QfEZVVEVYX1BSSVZBVEVfRkxBRywJCSJGVVRFWF9XQUtFX09QX1BSSVZBVEUiIH0sCisJeyBGVVRFWF9MT0NLX1BJfEZVVEVYX1BSSVZBVEVfRkxBRywJCSJGVVRFWF9MT0NLX1BJX1BSSVZBVEUiIH0sCisJeyBGVVRFWF9VTkxPQ0tfUEl8RlVURVhfUFJJVkFURV9GTEFHLAkJIkZVVEVYX1VOTE9DS19QSV9QUklWQVRFIiB9LAorCXsgRlVURVhfVFJZTE9DS19QSXxGVVRFWF9QUklWQVRFX0ZMQUcsCQkiRlVURVhfVFJZTE9DS19QSV9QUklWQVRFIiB9LAorCXsgRlVURVhfQ01QX1JFUVVFVUVfUEl8RlVURVhfUFJJVkFURV9GTEFHLAkiRlVURVhfQ01QX1JFUVVFVUVfUElfUFJJVkFURSIgfSwKKwl7IDAsCQkJCQkJTlVMTCB9Cit9OworI2lmbmRlZiBGVVRFWF9PUF9TRVQKKyMgZGVmaW5lIEZVVEVYX09QX1NFVAkJMAorIyBkZWZpbmUgRlVURVhfT1BfQURECQkxCisjIGRlZmluZSBGVVRFWF9PUF9PUgkJMgorIyBkZWZpbmUgRlVURVhfT1BfQU5ETgkJMworIyBkZWZpbmUgRlVURVhfT1BfWE9SCQk0CisjIGRlZmluZSBGVVRFWF9PUF9DTVBfRVEJMAorIyBkZWZpbmUgRlVURVhfT1BfQ01QX05FCTEKKyMgZGVmaW5lIEZVVEVYX09QX0NNUF9MVAkyCisjIGRlZmluZSBGVVRFWF9PUF9DTVBfTEUJMworIyBkZWZpbmUgRlVURVhfT1BfQ01QX0dUCTQKKyMgZGVmaW5lIEZVVEVYX09QX0NNUF9HRQk1CisjZW5kaWYKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmdXRleHdha2VvcHNbXSA9IHsKKwl7IEZVVEVYX09QX1NFVCwJCSJGVVRFWF9PUF9TRVQiIH0sCisJeyBGVVRFWF9PUF9BREQsCQkiRlVURVhfT1BfQUREIiB9LAorCXsgRlVURVhfT1BfT1IsCQkiRlVURVhfT1BfT1IiIH0sCisJeyBGVVRFWF9PUF9BTkROLAkiRlVURVhfT1BfQU5ETiIgfSwKKwl7IEZVVEVYX09QX1hPUiwJCSJGVVRFWF9PUF9YT1IiIH0sCisJeyAwLAkJCU5VTEwgfQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBmdXRleHdha2VjbXBzW10gPSB7CisJeyBGVVRFWF9PUF9DTVBfRVEsCSJGVVRFWF9PUF9DTVBfRVEiIH0sCisJeyBGVVRFWF9PUF9DTVBfTkUsCSJGVVRFWF9PUF9DTVBfTkUiIH0sCisJeyBGVVRFWF9PUF9DTVBfTFQsCSJGVVRFWF9PUF9DTVBfTFQiIH0sCisJeyBGVVRFWF9PUF9DTVBfTEUsCSJGVVRFWF9PUF9DTVBfTEUiIH0sCisJeyBGVVRFWF9PUF9DTVBfR1QsCSJGVVRFWF9PUF9DTVBfR1QiIH0sCisJeyBGVVRFWF9PUF9DTVBfR0UsCSJGVVRFWF9PUF9DTVBfR0UiIH0sCisJeyAwLAkJCU5VTEwgfQorfTsKKworaW50CitzeXNfZnV0ZXgodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJbG9uZyBpbnQgY21kID0gdGNwLT51X2FyZ1sxXSAmIH5GVVRFWF9QUklWQVRFX0ZMQUc7CisJdHByaW50ZigiJXAsICIsICh2b2lkICopIHRjcC0+dV9hcmdbMF0pOworCXByaW50eHZhbChmdXRleG9wcywgdGNwLT51X2FyZ1sxXSwgIkZVVEVYXz8/PyIpOworCXRwcmludGYoIiwgJWxkIiwgdGNwLT51X2FyZ1syXSk7CisJaWYgKGNtZCA9PSBGVVRFWF9XQUlUKSB7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzNdKTsKKwl9IGVsc2UgaWYgKGNtZCA9PSBGVVRFWF9SRVFVRVVFKQorCQl0cHJpbnRmKCIsICVsZCwgJXAiLCB0Y3AtPnVfYXJnWzNdLCAodm9pZCAqKSB0Y3AtPnVfYXJnWzRdKTsKKwllbHNlIGlmIChjbWQgPT0gRlVURVhfQ01QX1JFUVVFVUUpCisJCXRwcmludGYoIiwgJWxkLCAlcCwgJWxkIiwgdGNwLT51X2FyZ1szXSwgKHZvaWQgKikgdGNwLT51X2FyZ1s0XSwgdGNwLT51X2FyZ1s1XSk7CisJZWxzZSBpZiAoY21kID09IEZVVEVYX1dBS0VfT1ApIHsKKwkJdHByaW50ZigiLCAlbGQsICVwLCB7IiwgdGNwLT51X2FyZ1szXSwgKHZvaWQgKikgdGNwLT51X2FyZ1s0XSk7CisJCWlmICgodGNwLT51X2FyZ1s1XSA+PiAyOCkgJiA4KQorCQkJdHByaW50ZigiRlVURVhfT1BfT1BBUkdfU0hJRlR8Iik7CisJCXByaW50eHZhbChmdXRleHdha2VvcHMsICh0Y3AtPnVfYXJnWzVdID4+IDI4KSAmIDB4NywgIkZVVEVYX09QXz8/PyIpOworCQl0cHJpbnRmKCIsICVsZCwgIiwgKHRjcC0+dV9hcmdbNV0gPj4gMTIpICYgMHhmZmYpOworCQlpZiAoKHRjcC0+dV9hcmdbNV0gPj4gMjQpICYgOCkKKwkJCXRwcmludGYoIkZVVEVYX09QX09QQVJHX1NISUZUfCIpOworCQlwcmludHh2YWwoZnV0ZXh3YWtlY21wcywgKHRjcC0+dV9hcmdbNV0gPj4gMjQpICYgMHg3LCAiRlVURVhfT1BfQ01QXz8/PyIpOworCQl0cHJpbnRmKCIsICVsZH0iLCB0Y3AtPnVfYXJnWzVdICYgMHhmZmYpOworCX0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitwcmludF9hZmZpbml0eWxpc3QodGNwLCBsaXN0LCBsZW4pCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGxpc3Q7Cit1bnNpZ25lZCBpbnQgbGVuOworeworICAgIGludCBmaXJzdCA9IDE7CisgICAgdHByaW50ZigiIHsiKTsKKyAgICB3aGlsZSAobGVuID49IHNpemVvZiAodW5zaWduZWQgbG9uZykpIHsKKwl1bnNpZ25lZCBsb25nIHc7CisJdW1vdmUodGNwLCBsaXN0LCAmdyk7CisJdHByaW50ZigiJXMgJWx4IiwgZmlyc3QgPyAiIiA6ICIsIiwgdyk7CisJZmlyc3QgPSAwOworCWxlbiAtPSBzaXplb2YgKHVuc2lnbmVkIGxvbmcpOworCWxpc3QgKz0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOworICAgIH0KKyAgICB0cHJpbnRmKCIgfSIpOworfQorCitpbnQKK3N5c19zY2hlZF9zZXRhZmZpbml0eSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwl0cHJpbnRmKCIlbGQsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisJcHJpbnRfYWZmaW5pdHlsaXN0KHRjcCwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1sxXSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQKK3N5c19zY2hlZF9nZXRhZmZpbml0eSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwl0cHJpbnRmKCIlbGQsICVsdSwgIiwgdGNwLT51X2FyZ1swXSwgdGNwLT51X2FyZ1sxXSk7CisgICAgfSBlbHNlIHsKKwlpZiAodGNwLT51X3J2YWwgPT0gLTEpCisJICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwllbHNlCisJICAgIHByaW50X2FmZmluaXR5bGlzdCh0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9ydmFsKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzY2hlZHVsZXJzW10gPSB7CisJeyBTQ0hFRF9PVEhFUiwJIlNDSEVEX09USEVSIiB9LAorCXsgU0NIRURfUlIsCSJTQ0hFRF9SUiIgfSwKKwl7IFNDSEVEX0ZJRk8sCSJTQ0hFRF9GSUZPIiB9LAorCXsgMCwJCU5VTEwgfQorfTsKKworaW50CitzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXRwcmludGYoIiVkIiwgKGludCkgdGNwLT51X2FyZ1swXSk7CisgICAgfSBlbHNlIGlmICghIHN5c2Vycm9yKHRjcCkpIHsKKwl0Y3AtPmF1eHN0ciA9IHhsb29rdXAgKHNjaGVkdWxlcnMsIHRjcC0+dV9ydmFsKTsKKwlpZiAodGNwLT5hdXhzdHIgIT0gTlVMTCkKKwkgICAgcmV0dXJuIFJWQUxfU1RSOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworaW50CitzeXNfc2NoZWRfc2V0c2NoZWR1bGVyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXN0cnVjdCBzY2hlZF9wYXJhbSBwOworCXRwcmludGYoIiVkLCAiLCAoaW50KSB0Y3AtPnVfYXJnWzBdKTsKKwlwcmludHh2YWwoc2NoZWR1bGVycywgdGNwLT51X2FyZ1sxXSwgIlNDSEVEXz8/PyIpOworCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZwKSA8IDApCisJICAgIHRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCWVsc2UKKwkgICAgdHByaW50ZigiLCB7ICVkIH0iLCBwLl9fc2NoZWRfcHJpb3JpdHkpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworaW50CitzeXNfc2NoZWRfZ2V0cGFyYW0odGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJICAgIHRwcmludGYoIiVkLCAiLCAoaW50KSB0Y3AtPnVfYXJnWzBdKTsKKyAgICB9IGVsc2UgeworCXN0cnVjdCBzY2hlZF9wYXJhbSBwOworCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZwKSA8IDApCisJICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwllbHNlCisJICAgIHRwcmludGYoInsgJWQgfSIsIHAuX19zY2hlZF9wcmlvcml0eSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQKK3N5c19zY2hlZF9zZXRwYXJhbSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisgICAgaWYgKGVudGVyaW5nKHRjcCkpIHsKKwlzdHJ1Y3Qgc2NoZWRfcGFyYW0gcDsKKwlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmcCkgPCAwKQorCSAgICB0cHJpbnRmKCIlZCwgJSNseCIsIChpbnQpIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCWVsc2UKKwkgICAgdHByaW50ZigiJWQsIHsgJWQgfSIsIChpbnQpIHRjcC0+dV9hcmdbMF0sIHAuX19zY2hlZF9wcmlvcml0eSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQKK3N5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXByaW50eHZhbChzY2hlZHVsZXJzLCB0Y3AtPnVfYXJnWzBdLCAiU0NIRURfPz8/Iik7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisjaWZkZWYgWDg2XzY0CisjaW5jbHVkZSA8YXNtL3ByY3RsLmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBhcmNodmFsc1tdID0geworCXsgQVJDSF9TRVRfR1MsCQkiQVJDSF9TRVRfR1MiCQl9LAorCXsgQVJDSF9TRVRfRlMsCQkiQVJDSF9TRVRfRlMiCQl9LAorCXsgQVJDSF9HRVRfRlMsCQkiQVJDSF9HRVRfRlMiCQl9LAorCXsgQVJDSF9HRVRfR1MsCQkiQVJDSF9HRVRfR1MiCQl9LAorCXsgMCwJCQlOVUxMCQkJfSwKK307CisKK2ludAorc3lzX2FyY2hfcHJjdGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJcHJpbnR4dmFsKGFyY2h2YWxzLCB0Y3AtPnVfYXJnWzBdLCAiQVJDSF8/Pz8iKTsKKwlpZiAodGNwLT51X2FyZ1swXSA9PSBBUkNIX1NFVF9HUworCSAgICB8fCB0Y3AtPnVfYXJnWzBdID09IEFSQ0hfU0VUX0ZTKQorCSAgICB0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKyAgICB9IGVsc2UgeworCWlmICh0Y3AtPnVfYXJnWzBdID09IEFSQ0hfR0VUX0dTCisJICAgIHx8IHRjcC0+dV9hcmdbMF0gPT0gQVJDSF9HRVRfRlMpIHsKKwkgICAgbG9uZyBpbnQgdjsKKwkgICAgaWYgKCFzeXNlcnJvcih0Y3ApICYmIHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnYpICE9IC0xKQorCQl0cHJpbnRmKCIsIFslI2x4XSIsIHYpOworCSAgICBlbHNlCisJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCX0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9xdW90YS5jIGIvcXVvdGEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDdkMWExCi0tLSAvZGV2L251bGwKKysrIGIvcXVvdGEuYwpAQCAtMCwwICsxLDczNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIENvcHlyaWdodCAoYykgMjAwNSwgMjAwNiBEbWl0cnkgVi4gTGV2aW4gPGxkdkBhbHRsaW51eC5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkJAorICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisKKyNpZmRlZiBMSU5VWAorCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKworI2RlZmluZSBTVUJDTURNQVNLICAweDAwZmYKKyNkZWZpbmUgU1VCQ01EU0hJRlQgOAorI2RlZmluZSBRQ01EX0NNRChjbWQpCSgodV9pbnQzMl90KShjbWQpID4+IFNVQkNNRFNISUZUKQorI2RlZmluZSBRQ01EX1RZUEUoY21kKQkoKHVfaW50MzJfdCkoY21kKSAmIFNVQkNNRE1BU0spCisKKyNkZWZpbmUgT0xEX0NNRChjbWQpCSgodV9pbnQzMl90KShjbWQpIDw8IDgpCisjZGVmaW5lIE5FV19DTUQoY21kKQkoKHVfaW50MzJfdCkoY21kKSB8IDB4ODAwMDAwKQorI2RlZmluZSBYUU1fQ01EKGNtZCkJKCh1X2ludDMyX3QpKGNtZCkgfCAoJ1gnPDw4KSkKKworI2RlZmluZSBRX1YxX1FVT1RBT04JT0xEX0NNRCgweDEpCisjZGVmaW5lIFFfVjFfUVVPVEFPRkYJT0xEX0NNRCgweDIpCisjZGVmaW5lIFFfVjFfR0VUUVVPVEEJT0xEX0NNRCgweDMpCisjZGVmaW5lIFFfVjFfU0VUUVVPVEEJT0xEX0NNRCgweDQpCisjZGVmaW5lIFFfVjFfU0VUVVNFCU9MRF9DTUQoMHg1KQorI2RlZmluZSBRX1YxX1NZTkMJT0xEX0NNRCgweDYpCisjZGVmaW5lIFFfU0VUUUxJTQlPTERfQ01EKDB4NykKKyNkZWZpbmUgUV9WMV9HRVRTVEFUUwlPTERfQ01EKDB4OCkKKyNkZWZpbmUgUV9WMV9SU1FVQVNICU9MRF9DTUQoMHgxMCkKKworI2RlZmluZSBRX1YyX0dFVFFVT1RBCU9MRF9DTUQoMHhEKQorI2RlZmluZSBRX1YyX1NFVFFVT1RBCU9MRF9DTUQoMHhFKQorI2RlZmluZSBRX1YyX1NFVFVTRQlPTERfQ01EKDB4RikKKyNkZWZpbmUgUV9WMl9HRVRJTkZPCU9MRF9DTUQoMHg5KQorI2RlZmluZSBRX1YyX1NFVElORk8JT0xEX0NNRCgweEEpCisjZGVmaW5lIFFfVjJfU0VUR1JBQ0UJT0xEX0NNRCgweEIpCisjZGVmaW5lIFFfVjJfU0VURkxBR1MJT0xEX0NNRCgweEMpCisjZGVmaW5lIFFfVjJfR0VUU1RBVFMJT0xEX0NNRCgweDExKQorCisjZGVmaW5lIFFfU1lOQwkJTkVXX0NNRCgweDEpCisjZGVmaW5lIFFfUVVPVEFPTglORVdfQ01EKDB4MikKKyNkZWZpbmUgUV9RVU9UQU9GRglORVdfQ01EKDB4MykKKyNkZWZpbmUgUV9HRVRGTVQJTkVXX0NNRCgweDQpCisjZGVmaW5lIFFfR0VUSU5GTwlORVdfQ01EKDB4NSkKKyNkZWZpbmUgUV9TRVRJTkZPCU5FV19DTUQoMHg2KQorI2RlZmluZSBRX0dFVFFVT1RBCU5FV19DTUQoMHg3KQorI2RlZmluZSBRX1NFVFFVT1RBCU5FV19DTUQoMHg4KQorCisjZGVmaW5lIFFfWFFVT1RBT04JWFFNX0NNRCgweDEpCisjZGVmaW5lIFFfWFFVT1RBT0ZGCVhRTV9DTUQoMHgyKQorI2RlZmluZSBRX1hHRVRRVU9UQQlYUU1fQ01EKDB4MykKKyNkZWZpbmUgUV9YU0VUUUxJTQlYUU1fQ01EKDB4NCkKKyNkZWZpbmUgUV9YR0VUUVNUQVQJWFFNX0NNRCgweDUpCisjZGVmaW5lIFFfWFFVT1RBUk0JWFFNX0NNRCgweDYpCisjZGVmaW5lIFFfWFFVT1RBU1lOQwlYUU1fQ01EKDB4NykKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHF1b3RhY21kc1tdID0geworCXtRX1YxX1FVT1RBT04sICJRX1YxX1FVT1RBT04ifSwKKwl7UV9WMV9RVU9UQU9GRiwgIlFfVjFfUVVPVEFPRkYifSwKKwl7UV9WMV9HRVRRVU9UQSwgIlFfVjFfR0VUUVVPVEEifSwKKwl7UV9WMV9TRVRRVU9UQSwgIlFfVjFfU0VUUVVPVEEifSwKKwl7UV9WMV9TRVRVU0UsICJRX1YxX1NFVFVTRSJ9LAorCXtRX1YxX1NZTkMsICJRX1YxX1NZTkMifSwKKwl7UV9TRVRRTElNLCAiUV9TRVRRTElNIn0sCisJe1FfVjFfR0VUU1RBVFMsICJRX1YxX0dFVFNUQVRTIn0sCisJe1FfVjFfUlNRVUFTSCwgIlFfVjFfUlNRVUFTSCJ9LAorCisJe1FfVjJfR0VUUVVPVEEsICJRX1YyX0dFVFFVT1RBIn0sCisJe1FfVjJfU0VUUVVPVEEsICJRX1YyX1NFVFFVT1RBIn0sCisJe1FfVjJfU0VUVVNFLCAiUV9WMl9TRVRVU0UifSwKKwl7UV9WMl9HRVRJTkZPLCAiUV9WMl9HRVRJTkZPIn0sCisJe1FfVjJfU0VUSU5GTywgIlFfVjJfU0VUSU5GTyJ9LAorCXtRX1YyX1NFVEdSQUNFLCAiUV9WMl9TRVRHUkFDRSJ9LAorCXtRX1YyX1NFVEZMQUdTLCAiUV9WMl9TRVRGTEFHUyJ9LAorCXtRX1YyX0dFVFNUQVRTLCAiUV9WMl9HRVRTVEFUUyJ9LAorCisJe1FfU1lOQywgIlFfU1lOQyJ9LAorCXtRX1FVT1RBT04sICJRX1FVT1RBT04ifSwKKwl7UV9RVU9UQU9GRiwgIlFfUVVPVEFPRkYifSwKKwl7UV9HRVRGTVQsICJRX0dFVEZNVCJ9LAorCXtRX0dFVElORk8sICJRX0dFVElORk8ifSwKKwl7UV9TRVRJTkZPLCAiUV9TRVRJTkZPIn0sCisJe1FfR0VUUVVPVEEsICJRX0dFVFFVT1RBIn0sCisJe1FfU0VUUVVPVEEsICJRX1NFVFFVT1RBIn0sCisKKwl7UV9YUVVPVEFPTiwgIlFfWFFVT1RBT04ifSwKKwl7UV9YUVVPVEFPRkYsICJRX1hRVU9UQU9GRiJ9LAorCXtRX1hHRVRRVU9UQSwgIlFfWEdFVFFVT1RBIn0sCisJe1FfWFNFVFFMSU0sICJRX1hTRVRRTElNIn0sCisJe1FfWEdFVFFTVEFULCAiUV9YR0VUUVNUQVQifSwKKwl7UV9YUVVPVEFSTSwgIlFfWFFVT1RBUk0ifSwKKwl7UV9YUVVPVEFTWU5DLCAiUV9YUVVPVEFTWU5DIn0sCisKKwl7MCwgTlVMTH0sCit9OworCisjZGVmaW5lIFVTUlFVT1RBIDAKKyNkZWZpbmUgR1JQUVVPVEEgMQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcXVvdGF0eXBlc1tdID0geworCXtVU1JRVU9UQSwgIlVTUlFVT1RBIn0sCisJe0dSUFFVT1RBLCAiR1JQUVVPVEEifSwKKwl7MCwgTlVMTH0sCit9OworCisvKiBRdW90YSBmb3JtYXQgaWRlbnRpZmllcnMgKi8KKyNkZWZpbmUgUUZNVF9WRlNfT0xEIDEKKyNkZWZpbmUgUUZNVF9WRlNfVjAgIDIKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHF1b3RhX2Zvcm1hdHNbXSA9IHsKKwl7UUZNVF9WRlNfT0xELCAiUUZNVF9WRlNfT0xEIn0sCisJe1FGTVRfVkZTX1YwLCAiUUZNVF9WRlNfVjAifSwKKwl7MCwgTlVMTH0sCit9OworCisjZGVmaW5lIFhGU19RVU9UQV9VRFFfQUNDVAkoMTw8MCkJLyogdXNlciBxdW90YSBhY2NvdW50aW5nICovCisjZGVmaW5lIFhGU19RVU9UQV9VRFFfRU5GRAkoMTw8MSkJLyogdXNlciBxdW90YSBsaW1pdHMgZW5mb3JjZW1lbnQgKi8KKyNkZWZpbmUgWEZTX1FVT1RBX0dEUV9BQ0NUCSgxPDwyKQkvKiBncm91cCBxdW90YSBhY2NvdW50aW5nICovCisjZGVmaW5lIFhGU19RVU9UQV9HRFFfRU5GRAkoMTw8MykJLyogZ3JvdXAgcXVvdGEgbGltaXRzIGVuZm9yY2VtZW50ICovCisKKyNkZWZpbmUgWEZTX1VTRVJfUVVPVEEJCSgxPDwwKQkvKiB1c2VyIHF1b3RhIHR5cGUgKi8KKyNkZWZpbmUgWEZTX1BST0pfUVVPVEEJCSgxPDwxKQkvKiAoSVJJWCkgcHJvamVjdCBxdW90YSB0eXBlICovCisjZGVmaW5lIFhGU19HUk9VUF9RVU9UQQkJKDE8PDIpCS8qIGdyb3VwIHF1b3RhIHR5cGUgKi8KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHhmc19xdW90YV9mbGFnc1tdID0geworCXtYRlNfUVVPVEFfVURRX0FDQ1QsICJYRlNfUVVPVEFfVURRX0FDQ1QifSwKKwl7WEZTX1FVT1RBX1VEUV9FTkZELCAiWEZTX1FVT1RBX1VEUV9FTkZEIn0sCisJe1hGU19RVU9UQV9HRFFfQUNDVCwgIlhGU19RVU9UQV9HRFFfQUNDVCJ9LAorCXtYRlNfUVVPVEFfR0RRX0VORkQsICJYRlNfUVVPVEFfR0RRX0VORkQifSwKKwl7MCwgTlVMTH0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB4ZnNfZHFibGtfZmxhZ3NbXSA9IHsKKwl7WEZTX1VTRVJfUVVPVEEsICJYRlNfVVNFUl9RVU9UQSJ9LAorCXtYRlNfUFJPSl9RVU9UQSwgIlhGU19QUk9KX1FVT1RBIn0sCisJe1hGU19HUk9VUF9RVU9UQSwgIlhGU19HUk9VUF9RVU9UQSJ9LAorCXswLCBOVUxMfQorfTsKKworLyoKKyAqIEZvbGxvd2luZyBmbGFncyBhcmUgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGZpZWxkcyBhcmUgdmFsaWQKKyAqLworI2RlZmluZSBRSUZfQkxJTUlUUwkxCisjZGVmaW5lIFFJRl9TUEFDRQkyCisjZGVmaW5lIFFJRl9JTElNSVRTCTQKKyNkZWZpbmUgUUlGX0lOT0RFUwk4CisjZGVmaW5lIFFJRl9CVElNRQkxNgorI2RlZmluZSBRSUZfSVRJTUUJMzIKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGlmX2RxYmxrX3ZhbGlkW10gPSB7CisJe1FJRl9CTElNSVRTLCAiUUlGX0JMSU1JVFMifSwKKwl7UUlGX1NQQUNFLCAiUUlGX1NQQUNFIn0sCisJe1FJRl9JTElNSVRTLCAiUUlGX0lMSU1JVFMifSwKKwl7UUlGX0lOT0RFUywgIlFJRl9JTk9ERVMifSwKKwl7UUlGX0JUSU1FLCAiUUlGX0JUSU1FIn0sCisJe1FJRl9JVElNRSwgIlFJRl9JVElNRSJ9LAorCXswLCBOVUxMfQorfTsKKworc3RydWN0IGlmX2RxYmxrCit7CisJdV9pbnQ2NF90IGRxYl9iaGFyZGxpbWl0OworCXVfaW50NjRfdCBkcWJfYnNvZnRsaW1pdDsKKwl1X2ludDY0X3QgZHFiX2N1cnNwYWNlOworCXVfaW50NjRfdCBkcWJfaWhhcmRsaW1pdDsKKwl1X2ludDY0X3QgZHFiX2lzb2Z0bGltaXQ7CisJdV9pbnQ2NF90IGRxYl9jdXJpbm9kZXM7CisJdV9pbnQ2NF90IGRxYl9idGltZTsKKwl1X2ludDY0X3QgZHFiX2l0aW1lOworCXVfaW50MzJfdCBkcWJfdmFsaWQ7Cit9OworCitzdHJ1Y3QgdjFfZHFibGsKK3sKKwl1X2ludDMyX3QgZHFiX2JoYXJkbGltaXQ7CS8qIGFic29sdXRlIGxpbWl0IG9uIGRpc2sgYmxrcyBhbGxvYyAqLworCXVfaW50MzJfdCBkcWJfYnNvZnRsaW1pdDsJLyogcHJlZmVycmVkIGxpbWl0IG9uIGRpc2sgYmxrcyAqLworCXVfaW50MzJfdCBkcWJfY3VyYmxvY2tzOwkvKiBjdXJyZW50IGJsb2NrIGNvdW50ICovCisJdV9pbnQzMl90IGRxYl9paGFyZGxpbWl0OwkvKiBtYXhpbXVtICMgYWxsb2NhdGVkIGlub2RlcyAqLworCXVfaW50MzJfdCBkcWJfaXNvZnRsaW1pdDsJLyogcHJlZmVycmVkIGlub2RlIGxpbWl0ICovCisJdV9pbnQzMl90IGRxYl9jdXJpbm9kZXM7CS8qIGN1cnJlbnQgIyBhbGxvY2F0ZWQgaW5vZGVzICovCisJdGltZV90ICBkcWJfYnRpbWU7CS8qIHRpbWUgbGltaXQgZm9yIGV4Y2Vzc2l2ZSBkaXNrIHVzZSAqLworCXRpbWVfdCAgZHFiX2l0aW1lOwkvKiB0aW1lIGxpbWl0IGZvciBleGNlc3NpdmUgZmlsZXMgKi8KK307CisKK3N0cnVjdCB2Ml9kcWJsaworeworCXVuc2lnbmVkIGludCBkcWJfaWhhcmRsaW1pdDsKKwl1bnNpZ25lZCBpbnQgZHFiX2lzb2Z0bGltaXQ7CisJdW5zaWduZWQgaW50IGRxYl9jdXJpbm9kZXM7CisJdW5zaWduZWQgaW50IGRxYl9iaGFyZGxpbWl0OworCXVuc2lnbmVkIGludCBkcWJfYnNvZnRsaW1pdDsKKwl1X2ludDY0X3QgZHFiX2N1cnNwYWNlOworCXRpbWVfdCAgZHFiX2J0aW1lOworCXRpbWVfdCAgZHFiX2l0aW1lOworfTsKKworc3RydWN0IHhmc19kcWJsaworeworCWludDhfdCAgZF92ZXJzaW9uOwkvKiB2ZXJzaW9uIG9mIHRoaXMgc3RydWN0dXJlICovCisJaW50OF90ICBkX2ZsYWdzOwkvKiBYRlNfe1VTRVIsUFJPSixHUk9VUH1fUVVPVEEgKi8KKwl1X2ludDE2X3QgZF9maWVsZG1hc2s7CS8qIGZpZWxkIHNwZWNpZmllciAqLworCXVfaW50MzJfdCBkX2lkOwkJLyogdXNlciwgcHJvamVjdCwgb3IgZ3JvdXAgSUQgKi8KKwl1X2ludDY0X3QgZF9ibGtfaGFyZGxpbWl0OwkvKiBhYnNvbHV0ZSBsaW1pdCBvbiBkaXNrIGJsa3MgKi8KKwl1X2ludDY0X3QgZF9ibGtfc29mdGxpbWl0OwkvKiBwcmVmZXJyZWQgbGltaXQgb24gZGlzayBibGtzICovCisJdV9pbnQ2NF90IGRfaW5vX2hhcmRsaW1pdDsJLyogbWF4aW11bSAjIGFsbG9jYXRlZCBpbm9kZXMgKi8KKwl1X2ludDY0X3QgZF9pbm9fc29mdGxpbWl0OwkvKiBwcmVmZXJyZWQgaW5vZGUgbGltaXQgKi8KKwl1X2ludDY0X3QgZF9iY291bnQ7CS8qICMgZGlzayBibG9ja3Mgb3duZWQgYnkgdGhlIHVzZXIgKi8KKwl1X2ludDY0X3QgZF9pY291bnQ7CS8qICMgaW5vZGVzIG93bmVkIGJ5IHRoZSB1c2VyICovCisJaW50MzJfdCBkX2l0aW1lcjsJLyogemVybyBpZiB3aXRoaW4gaW5vZGUgbGltaXRzICovCisJaW50MzJfdCBkX2J0aW1lcjsJLyogc2ltaWxhciB0byBhYm92ZTsgZm9yIGRpc2sgYmxvY2tzICovCisJdV9pbnQxNl90IGRfaXdhcm5zOwkvKiAjIHdhcm5pbmdzIGlzc3VlZCB3cnQgbnVtIGlub2RlcyAqLworCXVfaW50MTZfdCBkX2J3YXJuczsJLyogIyB3YXJuaW5ncyBpc3N1ZWQgd3J0IGRpc2sgYmxvY2tzICovCisJaW50MzJfdCBkX3BhZGRpbmcyOwkvKiBwYWRkaW5nMiAtIGZvciBmdXR1cmUgdXNlICovCisJdV9pbnQ2NF90IGRfcnRiX2hhcmRsaW1pdDsJLyogYWJzb2x1dGUgbGltaXQgb24gcmVhbHRpbWUgYmxrcyAqLworCXVfaW50NjRfdCBkX3J0Yl9zb2Z0bGltaXQ7CS8qIHByZWZlcnJlZCBsaW1pdCBvbiBSVCBkaXNrIGJsa3MgKi8KKwl1X2ludDY0X3QgZF9ydGJjb3VudDsJLyogIyByZWFsdGltZSBibG9ja3Mgb3duZWQgKi8KKwlpbnQzMl90IGRfcnRidGltZXI7CS8qIHNpbWlsYXIgdG8gYWJvdmU7IGZvciBSVCBkaXNrIGJsa3MgKi8KKwl1X2ludDE2X3QgZF9ydGJ3YXJuczsJLyogIyB3YXJuaW5ncyBpc3N1ZWQgd3J0IFJUIGRpc2sgYmxrcyAqLworCWludDE2X3QgZF9wYWRkaW5nMzsJLyogcGFkZGluZzMgLSBmb3IgZnV0dXJlIHVzZSAqLworCWNoYXIgICAgZF9wYWRkaW5nNFs4XTsJLyogeWV0IG1vcmUgcGFkZGluZyAqLworfTsKKworLyoKKyAqIEZvbGxvd2luZyBmbGFncyBhcmUgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGZpZWxkcyBhcmUgdmFsaWQKKyAqLworI2RlZmluZSBJSUZfQkdSQUNFCTEKKyNkZWZpbmUgSUlGX0lHUkFDRQkyCisjZGVmaW5lIElJRl9GTEFHUwk0CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBpZl9kcWluZm9fdmFsaWRbXSA9IHsKKwl7SUlGX0JHUkFDRSwgIklJRl9CR1JBQ0UifSwKKwl7SUlGX0lHUkFDRSwgIklJRl9JR1JBQ0UifSwKKwl7SUlGX0ZMQUdTLCAiSUlGX0ZMQUdTIn0sCisJezAsIE5VTEx9Cit9OworCitzdHJ1Y3QgaWZfZHFpbmZvCit7CisJdV9pbnQ2NF90IGRxaV9iZ3JhY2U7CisJdV9pbnQ2NF90IGRxaV9pZ3JhY2U7CisJdV9pbnQzMl90IGRxaV9mbGFnczsKKwl1X2ludDMyX3QgZHFpX3ZhbGlkOworfTsKKworc3RydWN0IHYyX2RxaW5mbworeworCXVuc2lnbmVkIGludCBkcWlfYmdyYWNlOworCXVuc2lnbmVkIGludCBkcWlfaWdyYWNlOworCXVuc2lnbmVkIGludCBkcWlfZmxhZ3M7CisJdW5zaWduZWQgaW50IGRxaV9ibG9ja3M7CisJdW5zaWduZWQgaW50IGRxaV9mcmVlX2JsazsKKwl1bnNpZ25lZCBpbnQgZHFpX2ZyZWVfZW50cnk7Cit9OworCitzdHJ1Y3QgdjFfZHFzdGF0cworeworCXVfaW50MzJfdCBsb29rdXBzOworCXVfaW50MzJfdCBkcm9wczsKKwl1X2ludDMyX3QgcmVhZHM7CisJdV9pbnQzMl90IHdyaXRlczsKKwl1X2ludDMyX3QgY2FjaGVfaGl0czsKKwl1X2ludDMyX3QgYWxsb2NhdGVkX2RxdW90czsKKwl1X2ludDMyX3QgZnJlZV9kcXVvdHM7CisJdV9pbnQzMl90IHN5bmNzOworfTsKKworc3RydWN0IHYyX2Rxc3RhdHMKK3sKKwl1X2ludDMyX3QgbG9va3VwczsKKwl1X2ludDMyX3QgZHJvcHM7CisJdV9pbnQzMl90IHJlYWRzOworCXVfaW50MzJfdCB3cml0ZXM7CisJdV9pbnQzMl90IGNhY2hlX2hpdHM7CisJdV9pbnQzMl90IGFsbG9jYXRlZF9kcXVvdHM7CisJdV9pbnQzMl90IGZyZWVfZHF1b3RzOworCXVfaW50MzJfdCBzeW5jczsKKwl1X2ludDMyX3QgdmVyc2lvbjsKK307CisKK3R5cGVkZWYgc3RydWN0IGZzX3FmaWxlc3RhdAoreworCXVfaW50NjRfdCBxZnNfaW5vOwkvKiBpbm9kZSBudW1iZXIgKi8KKwl1X2ludDY0X3QgcWZzX25ibGtzOwkvKiBudW1iZXIgb2YgQkJzIDUxMi1ieXRlLWJsa3MgKi8KKwl1X2ludDMyX3QgcWZzX25leHRlbnRzOwkvKiBudW1iZXIgb2YgZXh0ZW50cyAqLworfSBmc19xZmlsZXN0YXRfdDsKKworc3RydWN0IHhmc19kcXN0YXRzCit7CisJaW50OF90ICBxc192ZXJzaW9uOwkvKiB2ZXJzaW9uIG51bWJlciBmb3IgZnV0dXJlIGNoYW5nZXMgKi8KKwl1X2ludDE2X3QgcXNfZmxhZ3M7CS8qIFhGU19RVU9UQV97VSxQLEd9RFFfe0FDQ1QsRU5GRH0gKi8KKwlpbnQ4X3QgIHFzX3BhZDsJCS8qIHVudXNlZCAqLworCWZzX3FmaWxlc3RhdF90IHFzX3VxdW90YTsJLyogdXNlciBxdW90YSBzdG9yYWdlIGluZm9ybWF0aW9uICovCisJZnNfcWZpbGVzdGF0X3QgcXNfZ3F1b3RhOwkvKiBncm91cCBxdW90YSBzdG9yYWdlIGluZm9ybWF0aW9uICovCisJdV9pbnQzMl90IHFzX2luY29yZWRxczsJLyogbnVtYmVyIG9mIGRxdW90cyBpbmNvcmUgKi8KKwlpbnQzMl90IHFzX2J0aW1lbGltaXQ7CS8qIGxpbWl0IGZvciBibGtzIHRpbWVyICovCisJaW50MzJfdCBxc19pdGltZWxpbWl0OwkvKiBsaW1pdCBmb3IgaW5vZGVzIHRpbWVyICovCisJaW50MzJfdCBxc19ydGJ0aW1lbGltaXQ7CS8qIGxpbWl0IGZvciBydCBibGtzIHRpbWVyICovCisJdV9pbnQxNl90IHFzX2J3YXJubGltaXQ7CS8qIGxpbWl0IGZvciBudW0gd2FybmluZ3MgKi8KKwl1X2ludDE2X3QgcXNfaXdhcm5saW1pdDsJLyogbGltaXQgZm9yIG51bSB3YXJuaW5ncyAqLworfTsKKworc3RhdGljIHZvaWQKK2RlY29kZV9jbWRfZGF0YShzdHJ1Y3QgdGNiICp0Y3AsIHVfaW50MzJfdCBjbWQsIHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzd2l0Y2ggKGNtZCkKKwl7CisJCWNhc2UgUV9HRVRRVU9UQToKKwkJY2FzZSBRX1NFVFFVT1RBOgorCQl7CisJCQlzdHJ1Y3QgaWZfZHFibGsgZHE7CisKKwkJCWlmIChjbWQgPT0gUV9HRVRRVU9UQSAmJiBzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIntiaGFyZGxpbWl0PSUiIFBSSXU2NCAiLCAiLCBkcS5kcWJfYmhhcmRsaW1pdCk7CisJCQl0cHJpbnRmKCJic29mdGxpbWl0PSUiIFBSSXU2NCAiLCAiLCBkcS5kcWJfYnNvZnRsaW1pdCk7CisJCQl0cHJpbnRmKCJjdXJzcGFjZT0lIiBQUkl1NjQgIiwgIiwgZHEuZHFiX2N1cnNwYWNlKTsKKwkJCXRwcmludGYoImloYXJkbGltaXQ9JSIgUFJJdTY0ICIsICIsIGRxLmRxYl9paGFyZGxpbWl0KTsKKwkJCXRwcmludGYoImlzb2Z0bGltaXQ9JSIgUFJJdTY0ICIsICIsIGRxLmRxYl9pc29mdGxpbWl0KTsKKwkJCXRwcmludGYoImN1cmlub2Rlcz0lIiBQUkl1NjQgIiwgIiwgZHEuZHFiX2N1cmlub2Rlcyk7CisJCQlpZiAoIWFiYnJldih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoImJ0aW1lPSUiIFBSSXU2NCAiLCAiLCBkcS5kcWJfYnRpbWUpOworCQkJCXRwcmludGYoIml0aW1lPSUiIFBSSXU2NCAiLCAiLCBkcS5kcWJfaXRpbWUpOworCQkJCXRwcmludGYoInZhbGlkPSIpOworCQkJCXByaW50ZmxhZ3MoaWZfZHFibGtfdmFsaWQsCisJCQkJCSAgIGRxLmRxYl92YWxpZCwgIlFJRl8/Pz8iKTsKKwkJCQl0cHJpbnRmKCJ9Iik7CisJCQl9IGVsc2UKKwkJCQl0cHJpbnRmKCIuLi59Iik7CisJCQlicmVhazsKKwkJfQorCQljYXNlIFFfVjFfR0VUUVVPVEE6CisJCWNhc2UgUV9WMV9TRVRRVU9UQToKKwkJeworCQkJc3RydWN0IHYxX2RxYmxrIGRxOworCisJCQlpZiAoY21kID09IFFfVjFfR0VUUVVPVEEgJiYgc3lzZXJyb3IodGNwKSkKKwkJCXsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAodW1vdmUodGNwLCBkYXRhLCAmZHEpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7YmhhcmRsaW1pdD0ldSwgIiwgZHEuZHFiX2JoYXJkbGltaXQpOworCQkJdHByaW50ZigiYnNvZnRsaW1pdD0ldSwgIiwgZHEuZHFiX2Jzb2Z0bGltaXQpOworCQkJdHByaW50ZigiY3VyYmxvY2tzPSV1LCAiLCBkcS5kcWJfY3VyYmxvY2tzKTsKKwkJCXRwcmludGYoImloYXJkbGltaXQ9JXUsICIsIGRxLmRxYl9paGFyZGxpbWl0KTsKKwkJCXRwcmludGYoImlzb2Z0bGltaXQ9JXUsICIsIGRxLmRxYl9pc29mdGxpbWl0KTsKKwkJCXRwcmludGYoImN1cmlub2Rlcz0ldSwgIiwgZHEuZHFiX2N1cmlub2Rlcyk7CisJCQl0cHJpbnRmKCJidGltZT0lbHUsICIsIGRxLmRxYl9idGltZSk7CisJCQl0cHJpbnRmKCJpdGltZT0lbHV9IiwgZHEuZHFiX2l0aW1lKTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9WMl9HRVRRVU9UQToKKwkJY2FzZSBRX1YyX1NFVFFVT1RBOgorCQl7CisJCQlzdHJ1Y3QgdjJfZHFibGsgZHE7CisKKwkJCWlmIChjbWQgPT0gUV9WMl9HRVRRVU9UQSAmJiBzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIntpaGFyZGxpbWl0PSV1LCAiLCBkcS5kcWJfaWhhcmRsaW1pdCk7CisJCQl0cHJpbnRmKCJpc29mdGxpbWl0PSV1LCAiLCBkcS5kcWJfaXNvZnRsaW1pdCk7CisJCQl0cHJpbnRmKCJjdXJpbm9kZXM9JXUsICIsIGRxLmRxYl9jdXJpbm9kZXMpOworCQkJdHByaW50ZigiYmhhcmRsaW1pdD0ldSwgIiwgZHEuZHFiX2JoYXJkbGltaXQpOworCQkJdHByaW50ZigiYnNvZnRsaW1pdD0ldSwgIiwgZHEuZHFiX2Jzb2Z0bGltaXQpOworCQkJdHByaW50ZigiY3Vyc3BhY2U9JSIgUFJJdTY0ICIsICIsIGRxLmRxYl9jdXJzcGFjZSk7CisJCQl0cHJpbnRmKCJidGltZT0lbHUsICIsIGRxLmRxYl9idGltZSk7CisJCQl0cHJpbnRmKCJpdGltZT0lbHV9IiwgZHEuZHFiX2l0aW1lKTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9YR0VUUVVPVEE6CisJCWNhc2UgUV9YU0VUUUxJTToKKwkJeworCQkJc3RydWN0IHhmc19kcWJsayBkcTsKKworCQkJaWYgKGNtZCA9PSBRX1hHRVRRVU9UQSAmJiBzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoInt2ZXJzaW9uPSVkLCAiLCBkcS5kX3ZlcnNpb24pOworCQkJdHByaW50ZigiZmxhZ3M9Iik7CisJCQlwcmludGZsYWdzKHhmc19kcWJsa19mbGFncywKKwkJCQkgICBkcS5kX2ZsYWdzLCAiWEZTXz8/P19RVU9UQSIpOworCQkJdHByaW50ZigiLCBmaWVsZG1hc2s9JSN4LCAiLCBkcS5kX2ZpZWxkbWFzayk7CisJCQl0cHJpbnRmKCJpZD0ldSwgIiwgZHEuZF9pZCk7CisJCQl0cHJpbnRmKCJibGtfaGFyZGxpbWl0PSUiIFBSSXU2NCAiLCAiLCBkcS5kX2Jsa19oYXJkbGltaXQpOworCQkJdHByaW50ZigiYmxrX3NvZnRsaW1pdD0lIiBQUkl1NjQgIiwgIiwgZHEuZF9ibGtfc29mdGxpbWl0KTsKKwkJCXRwcmludGYoImlub19oYXJkbGltaXQ9JSIgUFJJdTY0ICIsICIsIGRxLmRfaW5vX2hhcmRsaW1pdCk7CisJCQl0cHJpbnRmKCJpbm9fc29mdGxpbWl0PSUiIFBSSXU2NCAiLCAiLCBkcS5kX2lub19zb2Z0bGltaXQpOworCQkJdHByaW50ZigiYmNvdW50PSUiIFBSSXU2NCAiLCAiLCBkcS5kX2Jjb3VudCk7CisJCQl0cHJpbnRmKCJpY291bnQ9JSIgUFJJdTY0ICIsICIsIGRxLmRfaWNvdW50KTsKKwkJCWlmICghYWJicmV2KHRjcCkpCisJCQl7CisJCQkJdHByaW50ZigiaXRpbWVyPSVkLCAiLCBkcS5kX2l0aW1lcik7CisJCQkJdHByaW50ZigiYnRpbWVyPSVkLCAiLCBkcS5kX2J0aW1lcik7CisJCQkJdHByaW50ZigiaXdhcm5zPSV1LCAiLCBkcS5kX2l3YXJucyk7CisJCQkJdHByaW50ZigiYndhcm5zPSV1LCAiLCBkcS5kX2J3YXJucyk7CisJCQkJdHByaW50ZigicnRiY291bnQ9JSIgUFJJdTY0ICIsICIsIGRxLmRfcnRiY291bnQpOworCQkJCXRwcmludGYoInJ0YnRpbWVyPSVkLCAiLCBkcS5kX3J0YnRpbWVyKTsKKwkJCQl0cHJpbnRmKCJydGJ3YXJucz0ldX0iLCBkcS5kX3J0Yndhcm5zKTsKKwkJCX0gZWxzZQorCQkJCXRwcmludGYoIi4uLn0iKTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9HRVRGTVQ6CisJCXsKKwkJCXVfaW50MzJfdCBmbXQ7CisKKwkJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZmbXQpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7Iik7CisJCQlwcmludHh2YWwocXVvdGFfZm9ybWF0cywgZm10LCAiUUZNVF9WRlNfPz8/Iik7CisJCQl0cHJpbnRmKCJ9Iik7CisJCQlicmVhazsKKwkJfQorCQljYXNlIFFfR0VUSU5GTzoKKwkJY2FzZSBRX1NFVElORk86CisJCXsKKwkJCXN0cnVjdCBpZl9kcWluZm8gZHE7CisKKwkJCWlmIChjbWQgPT0gUV9HRVRJTkZPICYmIHN5c2Vycm9yKHRjcCkpCisJCQl7CisJCQkJdHByaW50ZigiJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHVtb3ZlKHRjcCwgZGF0YSwgJmRxKSA8IDApCisJCQl7CisJCQkJdHByaW50Zigiez8/P30gJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50Zigie2JncmFjZT0lIiBQUkl1NjQgIiwgIiwgZHEuZHFpX2JncmFjZSk7CisJCQl0cHJpbnRmKCJpZ3JhY2U9JSIgUFJJdTY0ICIsICIsIGRxLmRxaV9pZ3JhY2UpOworCQkJdHByaW50ZigiZmxhZ3M9JSN4LCAiLCBkcS5kcWlfZmxhZ3MpOworCQkJdHByaW50ZigidmFsaWQ9Iik7CisJCQlwcmludGZsYWdzKGlmX2RxaW5mb192YWxpZCwgZHEuZHFpX3ZhbGlkLCAiSUlGXz8/PyIpOworCQkJdHByaW50ZigifSIpOworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBRX1YyX0dFVElORk86CisJCWNhc2UgUV9WMl9TRVRJTkZPOgorCQl7CisJCQlzdHJ1Y3QgdjJfZHFpbmZvIGRxOworCisJCQlpZiAoY21kID09IFFfVjJfR0VUSU5GTyAmJiBzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIntiZ3JhY2U9JXUsICIsIGRxLmRxaV9iZ3JhY2UpOworCQkJdHByaW50ZigiaWdyYWNlPSV1LCAiLCBkcS5kcWlfaWdyYWNlKTsKKwkJCXRwcmludGYoImZsYWdzPSUjeCwgIiwgZHEuZHFpX2ZsYWdzKTsKKwkJCXRwcmludGYoImJsb2Nrcz0ldSwgIiwgZHEuZHFpX2Jsb2Nrcyk7CisJCQl0cHJpbnRmKCJmcmVlX2Jsaz0ldSwgIiwgZHEuZHFpX2ZyZWVfYmxrKTsKKwkJCXRwcmludGYoImZyZWVfZW50cnk9JXV9IiwgZHEuZHFpX2ZyZWVfZW50cnkpOworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBRX1YxX0dFVFNUQVRTOgorCQl7CisJCQlzdHJ1Y3QgdjFfZHFzdGF0cyBkcTsKKworCQkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl7CisJCQkJdHByaW50ZigiJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHVtb3ZlKHRjcCwgZGF0YSwgJmRxKSA8IDApCisJCQl7CisJCQkJdHByaW50Zigiez8/P30gJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50Zigie2xvb2t1cHM9JXUsICIsIGRxLmxvb2t1cHMpOworCQkJdHByaW50ZigiZHJvcHM9JXUsICIsIGRxLmRyb3BzKTsKKwkJCXRwcmludGYoInJlYWRzPSV1LCAiLCBkcS5yZWFkcyk7CisJCQl0cHJpbnRmKCJ3cml0ZXM9JXUsICIsIGRxLndyaXRlcyk7CisJCQl0cHJpbnRmKCJjYWNoZV9oaXRzPSV1LCAiLCBkcS5jYWNoZV9oaXRzKTsKKwkJCXRwcmludGYoImFsbG9jYXRlZF9kcXVvdHM9JXUsICIsIGRxLmFsbG9jYXRlZF9kcXVvdHMpOworCQkJdHByaW50ZigiZnJlZV9kcXVvdHM9JXUsICIsIGRxLmZyZWVfZHF1b3RzKTsKKwkJCXRwcmludGYoInN5bmNzPSV1fSIsIGRxLnN5bmNzKTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9WMl9HRVRTVEFUUzoKKwkJeworCQkJc3RydWN0IHYyX2Rxc3RhdHMgZHE7CisKKwkJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIiUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICh1bW92ZSh0Y3AsIGRhdGEsICZkcSkgPCAwKQorCQkJeworCQkJCXRwcmludGYoIns/Pz99ICUjbHgiLCBkYXRhKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIntsb29rdXBzPSV1LCAiLCBkcS5sb29rdXBzKTsKKwkJCXRwcmludGYoImRyb3BzPSV1LCAiLCBkcS5kcm9wcyk7CisJCQl0cHJpbnRmKCJyZWFkcz0ldSwgIiwgZHEucmVhZHMpOworCQkJdHByaW50Zigid3JpdGVzPSV1LCAiLCBkcS53cml0ZXMpOworCQkJdHByaW50ZigiY2FjaGVfaGl0cz0ldSwgIiwgZHEuY2FjaGVfaGl0cyk7CisJCQl0cHJpbnRmKCJhbGxvY2F0ZWRfZHF1b3RzPSV1LCAiLCBkcS5hbGxvY2F0ZWRfZHF1b3RzKTsKKwkJCXRwcmludGYoImZyZWVfZHF1b3RzPSV1LCAiLCBkcS5mcmVlX2RxdW90cyk7CisJCQl0cHJpbnRmKCJzeW5jcz0ldSwgIiwgZHEuc3luY3MpOworCQkJdHByaW50ZigidmVyc2lvbj0ldX0iLCBkcS52ZXJzaW9uKTsKKwkJCWJyZWFrOworCQl9CisJCWNhc2UgUV9YR0VUUVNUQVQ6CisJCXsKKwkJCXN0cnVjdCB4ZnNfZHFzdGF0cyBkcTsKKworCQkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl7CisJCQkJdHByaW50ZigiJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHVtb3ZlKHRjcCwgZGF0YSwgJmRxKSA8IDApCisJCQl7CisJCQkJdHByaW50Zigiez8/P30gJSNseCIsIGRhdGEpOworCQkJCWJyZWFrOworCQkJfQorCQkJdHByaW50Zigie3ZlcnNpb249JWQsICIsIGRxLnFzX3ZlcnNpb24pOworCQkJaWYgKGFiYnJldih0Y3ApKQorCQkJeworCQkJCXRwcmludGYoIi4uLn0iKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoImZsYWdzPSIpOworCQkJcHJpbnRmbGFncyh4ZnNfcXVvdGFfZmxhZ3MsCisJCQkJICAgZHEucXNfZmxhZ3MsICJYRlNfUVVPVEFfPz8/Iik7CisJCQl0cHJpbnRmKCIsIGluY29yZWRxcz0ldSwgIiwgZHEucXNfaW5jb3JlZHFzKTsKKwkJCXRwcmludGYoInVfaW5vPSUiIFBSSXU2NCAiLCAiLCBkcS5xc191cXVvdGEucWZzX2lubyk7CisJCQl0cHJpbnRmKCJ1X25ibGtzPSUiIFBSSXU2NCAiLCAiLCBkcS5xc191cXVvdGEucWZzX25ibGtzKTsKKwkJCXRwcmludGYoInVfbmV4dGVudHM9JXUsICIsIGRxLnFzX3VxdW90YS5xZnNfbmV4dGVudHMpOworCQkJdHByaW50ZigiZ19pbm89JSIgUFJJdTY0ICIsICIsIGRxLnFzX2dxdW90YS5xZnNfaW5vKTsKKwkJCXRwcmludGYoImdfbmJsa3M9JSIgUFJJdTY0ICIsICIsIGRxLnFzX2dxdW90YS5xZnNfbmJsa3MpOworCQkJdHByaW50ZigiZ19uZXh0ZW50cz0ldSwgIiwgZHEucXNfZ3F1b3RhLnFmc19uZXh0ZW50cyk7CisJCQl0cHJpbnRmKCJidGltZWxpbWl0PSVkLCAiLCBkcS5xc19idGltZWxpbWl0KTsKKwkJCXRwcmludGYoIml0aW1lbGltaXQ9JWQsICIsIGRxLnFzX2l0aW1lbGltaXQpOworCQkJdHByaW50ZigicnRidGltZWxpbWl0PSVkLCAiLCBkcS5xc19ydGJ0aW1lbGltaXQpOworCQkJdHByaW50ZigiYndhcm5saW1pdD0ldSwgIiwgZHEucXNfYndhcm5saW1pdCk7CisJCQl0cHJpbnRmKCJpd2FybmxpbWl0PSV1fSIsIGRxLnFzX2l3YXJubGltaXQpOworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBRX1hRVU9UQU9OOgorCQl7CisJCQl1X2ludDMyX3QgZmxhZzsKKworCQkJaWYgKHVtb3ZlKHRjcCwgZGF0YSwgJmZsYWcpIDwgMCkKKwkJCXsKKwkJCQl0cHJpbnRmKCJ7Pz8/fSAlI2x4IiwgZGF0YSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQl0cHJpbnRmKCJ7Iik7CisJCQlwcmludGZsYWdzKHhmc19xdW90YV9mbGFncywgZmxhZywgIlhGU19RVU9UQV8/Pz8iKTsKKwkJCXRwcmludGYoIn0iKTsKKwkJCWJyZWFrOworCQl9CisJCWRlZmF1bHQ6CisJCQl0cHJpbnRmKCIlI2x4IiwgZGF0YSk7CisJCQlicmVhazsKKwl9Cit9CisKK2ludAorc3lzX3F1b3RhY3RsKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwkvKgorCSAqIFRoZSBMaW51eCBrZXJuZWwgb25seSBsb29rcyBhdCB0aGUgbG93IDMyIGJpdHMgb2YgY29tbWFuZCBhbmQgaWQKKwkgKiBhcmd1bWVudHMsIGJ1dCBvbiBzb21lIDY0LWJpdCBhcmNoaXRlY3R1cmVzIChzMzkweCkgdGhpcyB3b3JkCisJICogd2lsbCBoYXZlIGJlZW4gc2lnbi1leHRlbmRlZCB3aGVuIHdlIHNlZSBpdC4gIFRoZSBoaWdoIDEgYml0cworCSAqIGRvbid0IG1lYW4gYW55dGhpbmcsIHNvIGRvbid0IGNvbmZ1c2UgdGhlIG91dHB1dCB3aXRoIHRoZW0uCisJICovCisJdV9pbnQzMl90IHFjbWQgPSB0Y3AtPnVfYXJnWzBdOworCXVfaW50MzJfdCBjbWQgPSBRQ01EX0NNRChxY21kKTsKKwl1X2ludDMyX3QgdHlwZSA9IFFDTURfVFlQRShxY21kKTsKKwl1X2ludDMyX3QgaWQgPSB0Y3AtPnVfYXJnWzJdOworCisJaWYgKCF2ZXJib3NlKHRjcCkpCisJCXJldHVybiBwcmludGFyZ3ModGNwKTsKKworCWlmIChlbnRlcmluZyh0Y3ApKQorCXsKKwkJcHJpbnR4dmFsKHF1b3RhY21kcywgY21kLCAiUV8/Pz8iKTsKKwkJdHByaW50ZigifCIpOworCQlwcmludHh2YWwocXVvdGF0eXBlcywgdHlwZSwgIj8/P1FVT1RBIik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworCQl0cHJpbnRmKCIsICIpOworCQlzd2l0Y2ggKGNtZCkKKwkJeworCQkJY2FzZSBRX1YxX1FVT1RBT046CisJCQljYXNlIFFfUVVPVEFPTjoKKwkJCQlwcmludHh2YWwocXVvdGFfZm9ybWF0cywgaWQsICJRRk1UX1ZGU18/Pz8iKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUV9WMV9HRVRRVU9UQToKKwkJCWNhc2UgUV9WMl9HRVRRVU9UQToKKwkJCWNhc2UgUV9HRVRRVU9UQToKKwkJCWNhc2UgUV9WMV9TRVRRVU9UQToKKwkJCWNhc2UgUV9WMl9TRVRRVU9UQToKKwkJCWNhc2UgUV9WMV9TRVRVU0U6CisJCQljYXNlIFFfVjJfU0VUVVNFOgorCQkJY2FzZSBRX1NFVFFMSU06CisJCQljYXNlIFFfU0VUUVVPVEE6CisJCQljYXNlIFFfWEdFVFFVT1RBOgorCQkJY2FzZSBRX1hTRVRRTElNOgorCQkJCXRwcmludGYoIiV1IiwgaWQpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCQkJYnJlYWs7CisJCX0KKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UKKwl7CisJCWlmICghdGNwLT51X2FyZ1szXSkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZQorCQkJZGVjb2RlX2NtZF9kYXRhKHRjcCwgY21kLCB0Y3AtPnVfYXJnWzNdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBMaW51eCAqLworCisjaWYgZGVmaW5lZChTVU5PUzQpIHx8IGRlZmluZWQoRlJFRUJTRCkKKworI2lmZGVmIFNVTk9TNAorI2luY2x1ZGUgPHVmcy9xdW90YS5oPgorI2VuZGlmCisKKyNpZmRlZiBGUkVFQlNECisjaW5jbHVkZSA8dWZzL3Vmcy9xdW90YS5oPgorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YWNtZHNbXSA9IHsKKwl7UV9RVU9UQU9OLCAiUV9RVU9UQU9OIn0sCisJe1FfUVVPVEFPRkYsICJRX1FVT1RBT0ZGIn0sCisJe1FfR0VUUVVPVEEsICJRX0dFVFFVT1RBIn0sCisJe1FfU0VUUVVPVEEsICJRX1NFVFFVT1RBIn0sCisjaWZkZWYgUV9TRVRRTElNCisJe1FfU0VUUUxJTSwgIlFfU0VUUUxJTSJ9LAorI2VuZGlmCisjaWZkZWYgUV9TRVRVU0UKKwl7UV9TRVRVU0UsICJRX1NFVFVTRSJ9LAorI2VuZGlmCisJe1FfU1lOQywgIlFfU1lOQyJ9LAorCXswLCBOVUxMfSwKK307CisKK2ludAorc3lzX3F1b3RhY3RsKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwkvKiBmb3VydGggYXJnIChhZGRyKSBub3QgaW50ZXJwcmV0ZWQgaGVyZSAqLworCWlmIChlbnRlcmluZyh0Y3ApKQorCXsKKyNpZmRlZiBTVU5PUzQKKwkJcHJpbnR4dmFsKHF1b3RhY21kcywgdGNwLT51X2FyZ1swXSwgIlFfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworI2VuZGlmCisjaWZkZWYgRlJFRUJTRAorCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR4dmFsKHF1b3RhY21kcywgdGNwLT51X2FyZ1sxXSwgIlFfPz8/Iik7CisjZW5kaWYKKwkJdHByaW50ZigiLCAlbHUsICUjbHgiLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzNdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBTVU5PUzQgfHwgRlJFRUJTRCAqLwpkaWZmIC0tZ2l0IGEvcmVzb3VyY2UuYyBiL3Jlc291cmNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRmNjVjOQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc291cmNlLmMKQEAgLTAsMCArMSw2MjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiByZXNvdXJjZS5jLHYgMS4xMyAyMDA0LzEwLzA2IDIyOjE0OjUzIHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisKKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyNpZmRlZiBMSU5VWAorI2luY2x1ZGUgPHN5cy90aW1lcy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworI2RlZmluZSBzcGlubG9ja190IHN0cnVjdCBzcGlubG9ja190CisjZGVmaW5lIGlmX2RxYmxrIGRxYmxrCisjZGVmaW5lIGRxYl9jdXJibG9ja3MgZHFiX2N1cnNwYWNlCisjZWxzZQorI2luY2x1ZGUgPHN5cy9xdW90YS5oPgorI2VuZGlmCisjaW5jbHVkZSA8bGludXgvcXVvdGEuaD4KKyNlbmRpZiAvKiBMSU5VWCAqLworI2lmIGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKQorI2luY2x1ZGUgPHN5cy90aW1lcy5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjZW5kaWYKKworI2lmIEhBVkVfTE9OR19MT05HX1JMSU1fVAorLyoKKyAqIEhhY2tzIGZvciBzeXN0ZW1zIHRoYXQgaGF2ZSBhIGxvbmcgbG9uZyBybGltX3QKKyAqLworCisjZGVmaW5lIHJsaW1pdDY0IHJsaW1pdAkJCS8qIFVnbHkgaGFjayAqLworI2RlZmluZSBybGltNjRfdCBybGltX3QJCQkvKiBVZ2x5IGhhY2sgKi8KKyNkZWZpbmUgUkxJTTY0X0lORklOSVRZIFJMSU1fSU5GSU5JVFkJLyogWW91IGd1ZXNzZWQgaXQgKi8KKworI2RlZmluZSBzeXNfZ2V0cmxpbWl0NjQJc3lzX2dldHJsaW1pdAorI2RlZmluZSBzeXNfc2V0cmxpbWl0NjQJc3lzX3NldHJsaW1pdAorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCByZXNvdXJjZXNbXSA9IHsKKyNpZmRlZiBSTElNSVRfQVMKKwl7IFJMSU1JVF9BUywJIlJMSU1JVF9BUyIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9DT1JFCisJeyBSTElNSVRfQ09SRSwJIlJMSU1JVF9DT1JFIgl9LAorI2VuZGlmCisjaWZkZWYgUkxJTUlUX0NQVQorCXsgUkxJTUlUX0NQVSwJIlJMSU1JVF9DUFUiCX0sCisjZW5kaWYKKyNpZmRlZiBSTElNSVRfREFUQQorCXsgUkxJTUlUX0RBVEEsCSJSTElNSVRfREFUQSIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9GU0laRQorCXsgUkxJTUlUX0ZTSVpFLAkiUkxJTUlUX0ZTSVpFIgl9LAorI2VuZGlmCisjaWZkZWYgUkxJTUlUX0xPQ0tTCisJeyBSTElNSVRfTE9DS1MsCSJSTElNSVRfTE9DS1MiCX0sCisjZW5kaWYKKyNpZmRlZiBSTElNSVRfTUVNTE9DSworCXsgUkxJTUlUX01FTUxPQ0ssCSJSTElNSVRfTUVNTE9DSyIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9NU0dRVUVVRQorCXsgUkxJTUlUX01TR1FVRVVFLAkiUkxJTUlUX01TR1FVRVVFIgl9LAorI2VuZGlmCisjaWZkZWYgUkxJTUlUX05JQ0UKKwl7IFJMSU1JVF9OSUNFLAkiUkxJTUlUX05JQ0UiCX0sCisjZW5kaWYKKyNpZmRlZiBSTElNSVRfTk9GSUxFCisJeyBSTElNSVRfTk9GSUxFLAkiUkxJTUlUX05PRklMRSIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9OUFJPQworCXsgUkxJTUlUX05QUk9DLAkiUkxJTUlUX05QUk9DIgl9LAorI2VuZGlmCisjaWZkZWYgUkxJTUlUX1JTUworCXsgUkxJTUlUX1JTUywJIlJMSU1JVF9SU1MiCX0sCisjZW5kaWYKKyNpZmRlZiBSTElNSVRfUlRQUklPCisJeyBSTElNSVRfUlRQUklPLAkiUkxJTUlUX1JUUFJJTyIJfSwKKyNlbmRpZgorI2lmZGVmIFJMSU1JVF9TSUdQRU5ESU5HCisJeyBSTElNSVRfU0lHUEVORElORywJIlJMSU1JVF9TSUdQRU5ESU5HIgl9LAorI2VuZGlmCisjaWZkZWYgUkxJTUlUX1NUQUNLCisJeyBSTElNSVRfU1RBQ0ssCSJSTElNSVRfU1RBQ0siCX0sCisjZW5kaWYKKyNpZmRlZiBSTElNSVRfVk1FTQorCXsgUkxJTUlUX1ZNRU0sCSJSTElNSVRfVk1FTSIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworCisjaWYgIUhBVkVfTE9OR19MT05HX1JMSU1fVAorc3RhdGljIGNoYXIgKgorc3ByaW50cmxpbShsaW0pCitsb25nIGxpbTsKK3sKKwlzdGF0aWMgY2hhciBidWZbMzJdOworCisJaWYgKGxpbSA9PSBSTElNX0lORklOSVRZKQorCQlzcHJpbnRmKGJ1ZiwgIlJMSU1fSU5GSU5JVFkiKTsKKwllbHNlIGlmIChsaW0gPiAxMDI0ICYmIGxpbSUxMDI0ID09IDApCisJCXNwcmludGYoYnVmLCAiJWxkKjEwMjQiLCBsaW0vMTAyNCk7CisJZWxzZQorCQlzcHJpbnRmKGJ1ZiwgIiVsZCIsIGxpbSk7CisJcmV0dXJuIGJ1ZjsKK30KKworaW50CitzeXNfZ2V0cmxpbWl0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlzdHJ1Y3QgcmxpbWl0IHJsaW07CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwocmVzb3VyY2VzLCB0Y3AtPnVfYXJnWzBdLCAiUkxJTUlUXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCX0KKwllbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmcmxpbSkgPCAwKQorCQkJdHByaW50Zigiey4uLn0iKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCJ7cmxpbV9jdXI9JXMsIiwgc3ByaW50cmxpbShybGltLnJsaW1fY3VyKSk7CisJCQl0cHJpbnRmKCIgcmxpbV9tYXg9JXN9Iiwgc3ByaW50cmxpbShybGltLnJsaW1fbWF4KSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NldHJsaW1pdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IHJsaW1pdCBybGltOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHJlc291cmNlcywgdGNwLT51X2FyZ1swXSwgIlJMSU1JVF8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKCF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnJsaW0pIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJCWVsc2UgeworCQkJdHByaW50Zigie3JsaW1fY3VyPSVzLCIsIHNwcmludHJsaW0ocmxpbS5ybGltX2N1cikpOworCQkJdHByaW50ZigiIHJsaW1fbWF4PSVzfSIsIHNwcmludHJsaW0ocmxpbS5ybGltX21heCkpOworCQl9CisJfQorCXJldHVybiAwOworfQorI2VuZGlmIC8qICFIQVZFX0xPTkdfTE9OR19STElNX1QgKi8KKworI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKKyNpZiBfTEZTNjRfTEFSR0VGSUxFIHx8IEhBVkVfTE9OR19MT05HX1JMSU1fVAorc3RhdGljIGNoYXIgKgorc3ByaW50cmxpbTY0KGxpbSkKK3JsaW02NF90IGxpbTsKK3sKKwlzdGF0aWMgY2hhciBidWZbNjRdOworCisJaWYgKGxpbSA9PSBSTElNNjRfSU5GSU5JVFkpCisJCXNwcmludGYoYnVmLCAiUkxJTTY0X0lORklOSVRZIik7CisJZWxzZSBpZiAobGltID4gMTAyNCAmJiBsaW0lMTAyNCA9PSAwKQorCQlzcHJpbnRmKGJ1ZiwgIiVsbGQqMTAyNCIsIChsb25nIGxvbmcpIGxpbS8xMDI0KTsKKwllbHNlCisJCXNwcmludGYoYnVmLCAiJWxsZCIsIChsb25nIGxvbmcpIGxpbSk7CisJcmV0dXJuIGJ1ZjsKK30KKworaW50CitzeXNfZ2V0cmxpbWl0NjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBybGltaXQ2NCBybGltOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHJlc291cmNlcywgdGNwLT51X2FyZ1swXSwgIlJMSU1JVF8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9CisJZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnJsaW0pIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJCWVsc2UgeworCQkJdHByaW50Zigie3JsaW1fY3VyPSVzLCIsIHNwcmludHJsaW02NChybGltLnJsaW1fY3VyKSk7CisJCQl0cHJpbnRmKCIgcmxpbV9tYXg9JXN9Iiwgc3ByaW50cmxpbTY0KHJsaW0ucmxpbV9tYXgpKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2V0cmxpbWl0NjQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBybGltaXQ2NCBybGltOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHJlc291cmNlcywgdGNwLT51X2FyZ1swXSwgIlJMSU1JVF8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKCF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1sxXSwgJnJsaW0pIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJCWVsc2UgeworCQkJdHByaW50Zigie3JsaW1fY3VyPSVzLCIsIHNwcmludHJsaW02NChybGltLnJsaW1fY3VyKSk7CisJCQl0cHJpbnRmKCIgcmxpbV9tYXg9JXN9Iiwgc3ByaW50cmxpbTY0KHJsaW0ucmxpbV9tYXgpKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBfTEZTNjRfTEFSR0VGSUxFUyB8fCBIQVZFX0xPTkdfTE9OR19STElNX1QgKi8KKyNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KKworI2lmbmRlZiBTVlI0CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB1c2FnZXdob1tdID0geworCXsgUlVTQUdFX1NFTEYsCQkiUlVTQUdFX1NFTEYiCQl9LAorCXsgUlVTQUdFX0NISUxEUkVOLAkiUlVTQUdFX0NISUxEUkVOIgl9LAorI2lmZGVmIFJVU0FHRV9CT1RICisJeyBSVVNBR0VfQk9USCwJCSJSVVNBR0VfQk9USCIJCX0sCisjZW5kaWYKKwl7IDAsCQkJTlVMTAkJCX0sCit9OworCisjaWZkZWYgQUxQSEEKK3ZvaWQKK3ByaW50cnVzYWdlMzIodGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworICAgIHN0cnVjdCB0aW1ldmFsMzIKKyAgICB7CisJdW5zaWduZWQgdHZfc2VjOworCXVuc2lnbmVkIHR2X3VzZWM7CisgICAgfTsKKyAgICBzdHJ1Y3QgcnVzYWdlMzIKKyAgICB7CisJc3RydWN0IHRpbWV2YWwzMiBydV91dGltZTsJLyogdXNlciB0aW1lIHVzZWQgKi8KKwlzdHJ1Y3QgdGltZXZhbDMyIHJ1X3N0aW1lOwkvKiBzeXN0ZW0gdGltZSB1c2VkICovCisJbG9uZwlydV9tYXhyc3M7CQkvKiBtYXhpbXVtIHJlc2lkZW50IHNldCBzaXplICovCisJbG9uZwlydV9peHJzczsJCS8qIGludGVncmFsIHNoYXJlZCBtZW1vcnkgc2l6ZSAqLworCWxvbmcJcnVfaWRyc3M7CQkvKiBpbnRlZ3JhbCB1bnNoYXJlZCBkYXRhIHNpemUgKi8KKwlsb25nCXJ1X2lzcnNzOwkJLyogaW50ZWdyYWwgdW5zaGFyZWQgc3RhY2sgc2l6ZSAqLworCWxvbmcJcnVfbWluZmx0OwkJLyogcGFnZSByZWNsYWltcyAqLworCWxvbmcJcnVfbWFqZmx0OwkJLyogcGFnZSBmYXVsdHMgKi8KKwlsb25nCXJ1X25zd2FwOwkJLyogc3dhcHMgKi8KKwlsb25nCXJ1X2luYmxvY2s7CQkvKiBibG9jayBpbnB1dCBvcGVyYXRpb25zICovCisJbG9uZwlydV9vdWJsb2NrOwkJLyogYmxvY2sgb3V0cHV0IG9wZXJhdGlvbnMgKi8KKwlsb25nCXJ1X21zZ3NuZDsJCS8qIG1lc3NhZ2VzIHNlbnQgKi8KKwlsb25nCXJ1X21zZ3JjdjsJCS8qIG1lc3NhZ2VzIHJlY2VpdmVkICovCisJbG9uZwlydV9uc2lnbmFsczsJCS8qIHNpZ25hbHMgcmVjZWl2ZWQgKi8KKwlsb25nCXJ1X252Y3N3OwkJLyogdm9sdW50YXJ5IGNvbnRleHQgc3dpdGNoZXMgKi8KKwlsb25nCXJ1X25pdmNzdzsJCS8qIGludm9sdW50YXJ5ICIgKi8KKyAgICB9IHJ1OworCisgICAgaWYgKCFhZGRyKQorCXRwcmludGYoIk5VTEwiKTsKKyAgICBlbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCisJdHByaW50ZigiJSNseCIsIGFkZHIpOworICAgIGVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnJ1KSA8IDApCisJdHByaW50Zigiey4uLn0iKTsKKyAgICBlbHNlIGlmICghYWJicmV2KHRjcCkpIHsKKwl0cHJpbnRmKCJ7cnVfdXRpbWU9eyVsdSwgJWx1fSwgcnVfc3RpbWU9eyVsdSwgJWx1fSwgIiwKKwkJKGxvbmcpIHJ1LnJ1X3V0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3V0aW1lLnR2X3VzZWMsCisJCShsb25nKSBydS5ydV9zdGltZS50dl9zZWMsIChsb25nKSBydS5ydV9zdGltZS50dl91c2VjKTsKKwl0cHJpbnRmKCJydV9tYXhyc3M9JWx1LCBydV9peHJzcz0lbHUsICIsCisJCXJ1LnJ1X21heHJzcywgcnUucnVfaXhyc3MpOworCXRwcmludGYoInJ1X2lkcnNzPSVsdSwgcnVfaXNyc3M9JWx1LCAiLAorCQlydS5ydV9pZHJzcywgcnUucnVfaXNyc3MpOworCXRwcmludGYoInJ1X21pbmZsdD0lbHUsIHJ1X21hamZsdD0lbHUsIHJ1X25zd2FwPSVsdSwgIiwKKwkJcnUucnVfbWluZmx0LCBydS5ydV9tYWpmbHQsIHJ1LnJ1X25zd2FwKTsKKwl0cHJpbnRmKCJydV9pbmJsb2NrPSVsdSwgcnVfb3VibG9jaz0lbHUsICIsCisJCXJ1LnJ1X2luYmxvY2ssIHJ1LnJ1X291YmxvY2spOworCXRwcmludGYoInJ1X21zZ3NuZD0lbHUsIHJ1X21zZ3Jjdj0lbHUsICIsCisJCXJ1LnJ1X21zZ3NuZCwgcnUucnVfbXNncmN2KTsKKwl0cHJpbnRmKCJydV9uc2lnbmFscz0lbHUsIHJ1X252Y3N3PSVsdSwgcnVfbml2Y3N3PSVsdX0iLAorCQlydS5ydV9uc2lnbmFscywgcnUucnVfbnZjc3csIHJ1LnJ1X25pdmNzdyk7CisgICAgfQorICAgIGVsc2UgeworCXRwcmludGYoIntydV91dGltZT17JWx1LCAlbHV9LCBydV9zdGltZT17JWx1LCAlbHV9LCAuLi59IiwKKwkJKGxvbmcpIHJ1LnJ1X3V0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3V0aW1lLnR2X3VzZWMsCisJCShsb25nKSBydS5ydV9zdGltZS50dl9zZWMsIChsb25nKSBydS5ydV9zdGltZS50dl91c2VjKTsKKyAgICB9Cit9CisjZW5kaWYKKwordm9pZAorcHJpbnRydXNhZ2UodGNwLCBhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworeworCXN0cnVjdCBydXNhZ2UgcnU7CisKKwlpZiAoIWFkZHIpCisJCXRwcmludGYoIk5VTEwiKTsKKwllbHNlIGlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwllbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZydSkgPCAwKQorCQl0cHJpbnRmKCJ7Li4ufSIpOworCWVsc2UgaWYgKCFhYmJyZXYodGNwKSkgeworCQl0cHJpbnRmKCJ7cnVfdXRpbWU9eyVsdSwgJWx1fSwgcnVfc3RpbWU9eyVsdSwgJWx1fSwgIiwKKwkJCShsb25nKSBydS5ydV91dGltZS50dl9zZWMsIChsb25nKSBydS5ydV91dGltZS50dl91c2VjLAorCQkJKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3VzZWMpOworCQl0cHJpbnRmKCJydV9tYXhyc3M9JWx1LCBydV9peHJzcz0lbHUsICIsCisJCQlydS5ydV9tYXhyc3MsIHJ1LnJ1X2l4cnNzKTsKKwkJdHByaW50ZigicnVfaWRyc3M9JWx1LCBydV9pc3Jzcz0lbHUsICIsCisJCQlydS5ydV9pZHJzcywgcnUucnVfaXNyc3MpOworCQl0cHJpbnRmKCJydV9taW5mbHQ9JWx1LCBydV9tYWpmbHQ9JWx1LCBydV9uc3dhcD0lbHUsICIsCisJCQlydS5ydV9taW5mbHQsIHJ1LnJ1X21hamZsdCwgcnUucnVfbnN3YXApOworCQl0cHJpbnRmKCJydV9pbmJsb2NrPSVsdSwgcnVfb3VibG9jaz0lbHUsICIsCisJCQlydS5ydV9pbmJsb2NrLCBydS5ydV9vdWJsb2NrKTsKKwkJdHByaW50ZigicnVfbXNnc25kPSVsdSwgcnVfbXNncmN2PSVsdSwgIiwKKwkJCXJ1LnJ1X21zZ3NuZCwgcnUucnVfbXNncmN2KTsKKwkJdHByaW50ZigicnVfbnNpZ25hbHM9JWx1LCBydV9udmNzdz0lbHUsIHJ1X25pdmNzdz0lbHV9IiwKKwkJCXJ1LnJ1X25zaWduYWxzLCBydS5ydV9udmNzdywgcnUucnVfbml2Y3N3KTsKKwl9CisJZWxzZSB7CisJCXRwcmludGYoIntydV91dGltZT17JWx1LCAlbHV9LCBydV9zdGltZT17JWx1LCAlbHV9LCAuLi59IiwKKwkJCShsb25nKSBydS5ydV91dGltZS50dl9zZWMsIChsb25nKSBydS5ydV91dGltZS50dl91c2VjLAorCQkJKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3NlYywgKGxvbmcpIHJ1LnJ1X3N0aW1lLnR2X3VzZWMpOworCX0KK30KKworaW50CitzeXNfZ2V0cnVzYWdlKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwodXNhZ2V3aG8sIHRjcC0+dV9hcmdbMF0sICJSVVNBR0VfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJfQorCWVsc2UKKwkJcHJpbnRydXNhZ2UodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIEFMUEhBCitpbnQKK3N5c19vc2ZfZ2V0cnVzYWdlKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXByaW50eHZhbCh1c2FnZXdobywgdGNwLT51X2FyZ1swXSwgIlJVU0FHRV8/Pz8iKTsKKwl0cHJpbnRmKCIsICIpOworICAgIH0KKyAgICBlbHNlCisJcHJpbnRydXNhZ2UzMih0Y3AsIHRjcC0+dV9hcmdbMV0pOworICAgIHJldHVybiAwOworfQorI2VuZGlmIC8qIEFMUEhBICovCisKKyNlbmRpZiAvKiAhU1ZSNCAqLworCisjaWZkZWYgTElOVVgKKworaW50CitzeXNfc3lzaW5mbyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IHN5c2luZm8gc2k7CisKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCWlmIChzeXNlcnJvcih0Y3ApIHx8ICF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJCWVsc2UgaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1swXSwgJnNpKSA8IDApCisJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQllbHNlIHsKKwkJCXRwcmludGYoInt1cHRpbWU9JWx1LCBsb2Fkcz1bJWx1LCAlbHUsICVsdV0gIiwKKwkJCQlzaS51cHRpbWUsIHNpLmxvYWRzWzBdLCBzaS5sb2Fkc1sxXSwKKwkJCQlzaS5sb2Fkc1syXSk7CisJCQl0cHJpbnRmKCJ0b3RhbHJhbT0lbHUsIGZyZWVyYW09JWx1LCAiLAorCQkJCXNpLnRvdGFscmFtLCBzaS5mcmVlcmFtKTsKKwkJCXRwcmludGYoInNoYXJlZHJhbT0lbHUsIGJ1ZmZlcnJhbT0lbHV9ICIsCisJCQkJc2kuc2hhcmVkcmFtLCBzaS5idWZmZXJyYW0pOworCQkJdHByaW50ZigidG90YWxzd2FwPSVsdSwgZnJlZXN3YXA9JWx1LCBwcm9jcz0laHV9IiwKKwkJCQlzaS50b3RhbHN3YXAsIHNpLmZyZWVzd2FwLCBzaS5wcm9jcyk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBMSU5VWCAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgcHJpb3JpdGllc1tdID0geworCXsgUFJJT19QUk9DRVNTLAkiUFJJT19QUk9DRVNTIgl9LAorCXsgUFJJT19QR1JQLAkiUFJJT19QR1JQIgl9LAorCXsgUFJJT19VU0VSLAkiUFJJT19VU0VSIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitpbnQKK3N5c19nZXRwcmlvcml0eSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHByaW9yaXRpZXMsIHRjcC0+dV9hcmdbMF0sICJQUklPXz8/PyIpOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2V0cHJpb3JpdHkodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbChwcmlvcml0aWVzLCB0Y3AtPnVfYXJnWzBdLCAiUFJJT18/Pz8iKTsKKwkJdHByaW50ZigiLCAlbHUsICVsZCIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfbmljZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIiVsZCIsIHRjcC0+dV9hcmdbMF0pOworCXJldHVybiAwOworfQorCisjaWZuZGVmIFNVTk9TNAorCitpbnQKK3N5c190aW1lcyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IHRtcyB0YnVmOworCisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZ0YnVmKSA8IDApCisJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQllbHNlIHsKKwkJCXRwcmludGYoInt0bXNfdXRpbWU9JWx1LCB0bXNfc3RpbWU9JWx1LCAiLAorCQkJCXRidWYudG1zX3V0aW1lLCB0YnVmLnRtc19zdGltZSk7CisJCQl0cHJpbnRmKCJ0bXNfY3V0aW1lPSVsdSwgdG1zX2NzdGltZT0lbHV9IiwKKwkJCQl0YnVmLnRtc19jdXRpbWUsIHRidWYudG1zX2NzdGltZSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiAhU1VOT1M0ICovCisKKworLy8jaWZuZGVmIEhBVkVfQU5EUk9JRF9PUworI2lmZGVmIExJTlVYCisKKyNkZWZpbmUgTkVXX0NNRChjKSAgICAgICgoMHg4MDw8MTYpKyhjKSkKKyNkZWZpbmUgWFFNX0NNRChjKSAgICAgICgoJ1gnPDw4KSsoYykpCisjZGVmaW5lIE5FV19DT01NQU5EKGMpICgoICgoYykgPj4gU1VCQ01EU0hJRlQpICYgKDB4ODAgPDwgMTYpKSkKKyNkZWZpbmUgWFFNX0NPTU1BTkQoYykgKCggKChjKSA+PiBTVUJDTURTSElGVCkgJiAoJ1gnIDw8IDgpKSA9PSAoJ1gnIDw8IDgpKQorI2RlZmluZSBPTERfQ09NTUFORChjKSAoIU5FV19DT01NQU5EKGMpICYmICFYUU1fQ09NTUFORChjKSkKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHF1b3RhY21kc1tdID0geworCXsgUV9RVU9UQU9OLAkiUV9RVU9UQU9OIgl9LAorCXsgUV9RVU9UQU9GRiwJIlFfUVVPVEFPRkYiCX0sCisJeyBRX0dFVFFVT1RBLAkiUV9HRVRRVU9UQSIJfSwKKwl7IFFfU0VUUVVPVEEsCSJRX1NFVFFVT1RBIgl9LAorI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKKwl7IFFfU0VUVVNFLAkiUV9TRVRVU0UiCX0sCisjZW5kaWYKKwl7IFFfU1lOQywJIlFfU1lOQyIJfSwKKyNpZm5kZWYgSEFWRV9BTkRST0lEX09TCisJeyBRX1NFVFFMSU0sCSJRX1NFVFFMSU0iCX0sCisJeyBRX0dFVFNUQVRTLAkiUV9HRVRTVEFUUyIJfSwKKwl7IFFfUlNRVUFTSCwJIlFfUlNRVUFTSCIJfSwKKyNlbmRpZgorCXsgTkVXX0NNRCgweDEpLCAiUV9TWU5DIiAgICAgICAgfSwKKwl7IE5FV19DTUQoMHgyKSwgIlFfUVVPVEFPTiIgICAgIH0sCisJeyBORVdfQ01EKDB4MyksICJRX1FVT1RBT0ZGIiAgICB9LAorCXsgTkVXX0NNRCgweDQpLCAiUV9HRVRGTVQiICAgICAgfSwKKwl7IE5FV19DTUQoMHg1KSwgIlFfR0VUSU5GTyIgICAgIH0sCisJeyBORVdfQ01EKDB4NiksICJRX1NFVElORk8iICAgICB9LAorCXsgTkVXX0NNRCgweDcpLCAiUV9HRVRRVU9UQSIgICAgfSwKKwl7IE5FV19DTUQoMHg4KSwgIlFfU0VUUVVPVEEiICAgIH0sCisJeyBYUU1fQ01EKDB4MSksICJRX1hRVU9UQU9OIiAgICB9LAorCXsgWFFNX0NNRCgweDIpLCAiUV9YUVVPVEFPRkYiICAgfSwKKwl7IFhRTV9DTUQoMHgzKSwgIlFfWEdFVFFVT1RBIiAgIH0sCisJeyBYUU1fQ01EKDB4NCksICJRX1hTRVRRTElNIiAgICB9LAorCXsgWFFNX0NNRCgweDUpLCAiUV9YR0VUUVNUQVQiICAgfSwKKwl7IFhRTV9DTUQoMHg2KSwgIlFfWFFVT1RBUk0iICAgIH0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YXR5cGVzW10gPSB7CisJeyBVU1JRVU9UQSwJIlVTUlFVT1RBIgl9LAorCXsgR1JQUVVPVEEsCSJHUlBRVU9UQSIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworaW50CitzeXNfcXVvdGFjdGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCS8qCisJICogVGhlIExpbnV4IGtlcm5lbCBvbmx5IGxvb2tzIGF0IHRoZSBsb3cgMzIgYml0cyBvZiB0aGUgY29tbWFuZAorCSAqIGFyZ3VtZW50LCBidXQgb24gc29tZSA2NC1iaXQgYXJjaGl0ZWN0dXJlcyAoczM5MHgpIHRoaXMgd29yZAorCSAqIHdpbGwgaGF2ZSBiZWVuIHNpZ24tZXh0ZW5kZWQgd2hlbiB3ZSBzZWUgaXQuICBUaGUgaGlnaCAxIGJpdHMKKwkgKiBkb24ndCBtZWFuIGFueXRoaW5nLCBzbyBkb24ndCBjb25mdXNlIHRoZSBvdXRwdXQgd2l0aCB0aGVtLgorCSAqLworCXVuc2lnbmVkIGludCBjbWQgPSB0Y3AtPnVfYXJnWzBdOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHF1b3RhY21kcywgY21kID4+IFNVQkNNRFNISUZULCAiUV8/Pz8iKTsKKwkJdHByaW50ZigifCIpOworCQlwcmludHh2YWwocXVvdGF0eXBlcywgY21kICYgU1VCQ01ETUFTSywgIj8/P1FVT1RBIik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgLTEpOworCQl0cHJpbnRmKCIsICVsdSwgIiwgdGNwLT51X2FyZ1syXSk7CisJfQorCWVsc2UgeworCQlzdHJ1Y3QgZHFibGsgZHE7CisKKwkJaWYgKCF0Y3AtPnVfYXJnWzNdKQorCQkJdHByaW50ZigiTlVMTCIpOworICAgICAgICAgICAgICAgZWxzZSBpZiAoIXZlcmJvc2UodGNwKSB8fAorI2lmZGVmIEhBVkVfU1RSVUNUX0RRQkxLX0RRQl9DVVJCTE9DS1MKKwkJCSEKKyNlbmRpZgorCQkJT0xEX0NPTU1BTkQoY21kKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzNdKTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzNdLCBzaXplb2Yoc3RydWN0IGRxYmxrKSwKKyAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikgJmRxKSA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCI/Pz8iKTsKKwkJZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCJ7Iik7CisJCQl0cHJpbnRmKCIlbGx1LCAiLCAodW5zaWduZWQgbG9uZyBsb25nKSBkcS5kcWJfYmhhcmRsaW1pdCk7CisJCQl0cHJpbnRmKCIlbGx1LCAiLCAodW5zaWduZWQgbG9uZyBsb25nKSBkcS5kcWJfYnNvZnRsaW1pdCk7CisjaWZkZWYgSEFWRV9TVFJVQ1RfRFFCTEtfRFFCX0NVUkJMT0NLUworCQkJdHByaW50ZigiJWxsdSwgIiwgKHVuc2lnbmVkIGxvbmcgbG9uZykgZHEuZHFiX2N1cmJsb2Nrcyk7CisjZWxzZQorCQkJdHByaW50ZigiJWxsdSwgIiwgKHVuc2lnbmVkIGxvbmcgbG9uZykgZHEuZHFiX2N1cnNwYWNlKTsKKyNlbmRpZgorCQkJdHByaW50ZigiJWxsdSwgIiwgKHVuc2lnbmVkIGxvbmcgbG9uZykgZHEuZHFiX2loYXJkbGltaXQpOworCQkJdHByaW50ZigiJWxsdSwgIiwgKHVuc2lnbmVkIGxvbmcgbG9uZykgZHEuZHFiX2lzb2Z0bGltaXQpOworCQkJdHByaW50ZigiJWxsdSwgIiwgKHVuc2lnbmVkIGxvbmcgbG9uZykgZHEuZHFiX2N1cmlub2Rlcyk7CisJCQl0cHJpbnRmKCIlbGx1LCAiLCAodW5zaWduZWQgbG9uZyBsb25nKSBkcS5kcWJfYnRpbWUpOworCQkJdHByaW50ZigiJWxsdSIsICh1bnNpZ25lZCBsb25nIGxvbmcpIGRxLmRxYl9pdGltZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCJ9Iik7CisJCX0KKworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIExpbnV4ICovCisvLyNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KKworI2lmIGRlZmluZWQoU1VOT1M0KSB8fCBkZWZpbmVkKEZSRUVCU0QpCisKKyNpZmRlZiBGUkVFQlNECisjaW5jbHVkZSA8dWZzL3Vmcy9xdW90YS5oPgorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBxdW90YWNtZHNbXSA9IHsKKwl7IFFfUVVPVEFPTiwJIlFfUVVPVEFPTiIJfSwKKwl7IFFfUVVPVEFPRkYsCSJRX1FVT1RBT0ZGIgl9LAorCXsgUV9HRVRRVU9UQSwJIlFfR0VUUVVPVEEiCX0sCisJeyBRX1NFVFFVT1RBLAkiUV9TRVRRVU9UQSIJfSwKKyNpZmRlZiBRX1NFVFFMSU0KKwl7IFFfU0VUUUxJTSwJIlFfU0VUUUxJTSIJfSwKKyNlbmRpZgorI2lmZGVmIFFfU0VUVVNFCisJeyBRX1NFVFVTRSwJIlFfU0VUVVNFIgl9LAorI2VuZGlmCisJeyBRX1NZTkMsCSJRX1NZTkMiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK2ludAorc3lzX3F1b3RhY3RsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwkvKiBmb3VydGggYXJnIChhZGRyKSBub3QgaW50ZXJwcmV0ZWQgaGVyZSAqLworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisjaWZkZWYgU1VOT1M0CisJCXByaW50eHZhbChxdW90YWNtZHMsIHRjcC0+dV9hcmdbMF0sICJRXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKKyNlbmRpZgorI2lmZGVmIEZSRUVCU0QKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50eHZhbChxdW90YWNtZHMsIHRjcC0+dV9hcmdbMV0sICJRXz8/PyIpOworI2VuZGlmCisJCXRwcmludGYoIiwgJWx1LCAlI2x4IiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogU1VOT1M0IHx8IEZSRUVCU0QgKi8KZGlmZiAtLWdpdCBhL3NpZ25hbC5jIGIvc2lnbmFsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ4Y2FkMAotLS0gL2Rldi9udWxsCisrKyBiL3NpZ25hbC5jCkBAIC0wLDAgKzEsMTk2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5OSBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgIExpbnV4IGZvciBzMzkwIHBvcnQgYnkgRC5KLiBCYXJyb3cKKyAqICAgICAgICAgICAgICAgICAgICA8YmFycm93X2RqQG1haWwueWFob28uY29tLGRqYmFycm93QGRlLmlibS5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzaWduYWwuYyx2IDEuNTQgMjAwNS8wNi8wMSAxOTowMjozNyByb2xhbmQgRXhwICQKKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorCisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaWZkZWYgSEFWRV9BTkRST0lEX09TCisjZWxzZQorI2luY2x1ZGUgPHN5cy91c2VyLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxmY250bC5oPgorCisjaWZkZWYgU1ZSNAorI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorI2VuZGlmIC8qIFNWUjQgKi8KKworI2lmZGVmIEhBVkVfU1lTX1JFR19ICisjIGluY2x1ZGUgPHN5cy9yZWcuaD4KKyNpZm5kZWYgUFRSQUNFX1BFRUtVU1IKKyMgZGVmaW5lIFBUUkFDRV9QRUVLVVNSIFBUUkFDRV9QRUVLVVNFUgorI2VuZGlmCisjaWZuZGVmIFBUUkFDRV9QT0tFVVNSCisjIGRlZmluZSBQVFJBQ0VfUE9LRVVTUiBQVFJBQ0VfUE9LRVVTRVIKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChIQVZFX0xJTlVYX1BUUkFDRV9IKQorI3VuZGVmIFBUUkFDRV9TWVNDQUxMCisjIGlmZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKKyMgIGRlZmluZSBpYTY0X2ZwcmVnIFhYWF9pYTY0X2ZwcmVnCisjIGVuZGlmCisjIGlmZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MKKyMgIGRlZmluZSBwdF9hbGxfdXNlcl9yZWdzIFhYWF9wdF9hbGxfdXNlcl9yZWdzCisjIGVuZGlmCisjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CisjIHVuZGVmIGlhNjRfZnByZWcKKyMgdW5kZWYgcHRfYWxsX3VzZXJfcmVncworI2VuZGlmCisKKworI2lmZGVmIExJTlVYCisKKyNpZmRlZiBJQTY0CisjIGluY2x1ZGUgPGFzbS9wdHJhY2Vfb2Zmc2V0cy5oPgorI2VuZGlmIC8qICFJQTY0ICovCisKKyNpZiBIQVZFX0FTTV9SRUdfSAorIyBpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKyMgIGRlZmluZSBmcHEga2VybmVsX2ZwcQorIyAgZGVmaW5lIGZxIGtlcm5lbF9mcQorIyAgZGVmaW5lIGZwdSBrZXJuZWxfZnB1CisjIGVuZGlmCisjIGluY2x1ZGUgPGFzbS9yZWcuaD4KKyMgaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCisjICB1bmRlZiBmcHEKKyMgIHVuZGVmIGZxCisjICB1bmRlZiBmcHUKKyMgZW5kaWYKKyNpZiBkZWZpbmVkIChMSU5VWCkgJiYgZGVmaW5lZCAoU1BBUkM2NCkKKyMgZGVmaW5lIHJfcGMgcl90cGMKKyMgdW5kZWYgUFRSQUNFX0dFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9HRVRSRUdTIFBUUkFDRV9HRVRSRUdTNjQKKyMgdW5kZWYgUFRSQUNFX1NFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9TRVRSRUdTIFBUUkFDRV9TRVRSRUdTNjQKKyNlbmRpZiAvKiBMSU5VWCAmJiBTUEFSQzY0ICovCisjZW5kaWYgLyogSEFWRV9BU01fUkVHX0ggKi8KKworI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQordHlwZWRlZiBzdHJ1Y3QgeworCXN0cnVjdCByZWdzCQlzaV9yZWdzOworCWludAkJCXNpX21hc2s7Cit9IG1fc2lnaW5mb190OworI2VsaWYgZGVmaW5lZCBIQVZFX0FTTV9TSUdDT05URVhUX0gKKyNpZiAhZGVmaW5lZChJQTY0KSAmJiAhZGVmaW5lZChYODZfNjQpCisjaW5jbHVkZSA8YXNtL3NpZ2NvbnRleHQuaD4KKyNlbmRpZiAvKiAhSUE2NCAmJiAhWDg2XzY0ICovCisjZWxzZSAvKiAhSEFWRV9BU01fU0lHQ09OVEVYVF9IICovCisjaWZkZWYgSTM4Ngorc3RydWN0IHNpZ2NvbnRleHRfc3RydWN0IHsKKwl1bnNpZ25lZCBzaG9ydCBncywgX19nc2g7CisJdW5zaWduZWQgc2hvcnQgZnMsIF9fZnNoOworCXVuc2lnbmVkIHNob3J0IGVzLCBfX2VzaDsKKwl1bnNpZ25lZCBzaG9ydCBkcywgX19kc2g7CisJdW5zaWduZWQgbG9uZyBlZGk7CisJdW5zaWduZWQgbG9uZyBlc2k7CisJdW5zaWduZWQgbG9uZyBlYnA7CisJdW5zaWduZWQgbG9uZyBlc3A7CisJdW5zaWduZWQgbG9uZyBlYng7CisJdW5zaWduZWQgbG9uZyBlZHg7CisJdW5zaWduZWQgbG9uZyBlY3g7CisJdW5zaWduZWQgbG9uZyBlYXg7CisJdW5zaWduZWQgbG9uZyB0cmFwbm87CisJdW5zaWduZWQgbG9uZyBlcnI7CisJdW5zaWduZWQgbG9uZyBlaXA7CisJdW5zaWduZWQgc2hvcnQgY3MsIF9fY3NoOworCXVuc2lnbmVkIGxvbmcgZWZsYWdzOworCXVuc2lnbmVkIGxvbmcgZXNwX2F0X3NpZ25hbDsKKwl1bnNpZ25lZCBzaG9ydCBzcywgX19zc2g7CisJdW5zaWduZWQgbG9uZyBpMzg3OworCXVuc2lnbmVkIGxvbmcgb2xkbWFzazsKKwl1bnNpZ25lZCBsb25nIGNyMjsKK307CisjZWxzZSAvKiAhSTM4NiAqLworI2lmZGVmIE02OEsKK3N0cnVjdCBzaWdjb250ZXh0Cit7CisJdW5zaWduZWQgbG9uZyBzY19tYXNrOworCXVuc2lnbmVkIGxvbmcgc2NfdXNwOworCXVuc2lnbmVkIGxvbmcgc2NfZDA7CisJdW5zaWduZWQgbG9uZyBzY19kMTsKKwl1bnNpZ25lZCBsb25nIHNjX2EwOworCXVuc2lnbmVkIGxvbmcgc2NfYTE7CisJdW5zaWduZWQgc2hvcnQgc2Nfc3I7CisJdW5zaWduZWQgbG9uZyBzY19wYzsKKwl1bnNpZ25lZCBzaG9ydCBzY19mb3JtYXR2ZWM7Cit9OworI2VuZGlmIC8qIE02OEsgKi8KKyNlbmRpZiAvKiAhSTM4NiAqLworI2VuZGlmIC8qICFIQVZFX0FTTV9TSUdDT05URVhUX0ggKi8KKyNpZm5kZWYgTlNJRworI2RlZmluZSBOU0lHIDMyCisjZW5kaWYKKyNpZmRlZiBBUk0KKyN1bmRlZiBOU0lHCisjZGVmaW5lIE5TSUcgMzIKKyNlbmRpZgorI2VuZGlmIC8qIExJTlVYICovCisKK2NvbnN0IGNoYXIgKmNvbnN0IHNpZ25hbGVudDBbXSA9IHsKKyNpbmNsdWRlICJzaWduYWxlbnQuaCIKK307Citjb25zdCBpbnQgbnNpZ25hbHMwID0gc2l6ZW9mIHNpZ25hbGVudDAgLyBzaXplb2Ygc2lnbmFsZW50MFswXTsKKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIKK2NvbnN0IGNoYXIgKmNvbnN0IHNpZ25hbGVudDFbXSA9IHsKKyNpbmNsdWRlICJzaWduYWxlbnQxLmgiCit9OworY29uc3QgaW50IG5zaWduYWxzMSA9IHNpemVvZiBzaWduYWxlbnQxIC8gc2l6ZW9mIHNpZ25hbGVudDFbMF07CisjZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMiAqLworCisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMworY29uc3QgY2hhciAqY29uc3Qgc2lnbmFsZW50MltdID0geworI2luY2x1ZGUgInNpZ25hbGVudDIuaCIKK307Citjb25zdCBpbnQgbnNpZ25hbHMyID0gc2l6ZW9mIHNpZ25hbGVudDIgLyBzaXplb2Ygc2lnbmFsZW50MlswXTsKKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCisKK2NvbnN0IGNoYXIgKmNvbnN0ICpzaWduYWxlbnQ7CitpbnQgbnNpZ25hbHM7CisKKyNpZiBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChGUkVFQlNEKQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2lndmVjX2ZsYWdzW10gPSB7CisJeyBTVl9PTlNUQUNLLAkiU1ZfT05TVEFDSyIJfSwKKwl7IFNWX0lOVEVSUlVQVCwJIlNWX0lOVEVSUlVQVCIJfSwKKwl7IFNWX1JFU0VUSEFORCwJIlNWX1JFU0VUSEFORCIJfSwKKwl7IFNBX05PQ0xEU1RPUCwJIlNBX05PQ0xEU1RPUCIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworI2VuZGlmIC8qIFNVTk9TNCB8fCBGUkVFQlNEICovCisKKyNpZmRlZiBIQVZFX1NJR0FDVElPTgorCisjaWYgZGVmaW5lZCBMSU5VWCAmJiAoZGVmaW5lZCBJMzg2IHx8IGRlZmluZWQgWDg2XzY0KQorLyogVGhlIGxpYmMgaGVhZGVycyBkbyBub3QgZGVmaW5lIHRoaXMgY29uc3RhbnQgc2luY2UgaXQgc2hvdWxkIG9ubHkgYmUKKyAgIHVzZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uLiAgU28gd3dlIGRlZmluZSBpdCBoZXJlLiAgKi8KKyMgaWZuZGVmIFNBX1JFU1RPUkVSCisjICBkZWZpbmUgU0FfUkVTVE9SRVIgMHgwNDAwMDAwMAorIyBlbmRpZgorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdhY3RfZmxhZ3NbXSA9IHsKKyNpZmRlZiBTQV9SRVNUT1JFUgorCXsgU0FfUkVTVE9SRVIsCSJTQV9SRVNUT1JFUiIJfSwKKyNlbmRpZgorI2lmZGVmIFNBX1NUQUNLCisJeyBTQV9TVEFDSywJIlNBX1NUQUNLIgl9LAorI2VuZGlmCisjaWZkZWYgU0FfUkVTVEFSVAorCXsgU0FfUkVTVEFSVCwJIlNBX1JFU1RBUlQiCX0sCisjZW5kaWYKKyNpZmRlZiBTQV9JTlRFUlJVUFQKKwl7IFNBX0lOVEVSUlVQVCwJIlNBX0lOVEVSUlVQVCIJfSwKKyNlbmRpZgorI2lmZGVmIFNBX05PTUFTSworCXsgU0FfTk9NQVNLLAkiU0FfTk9NQVNLIgl9LAorI2VuZGlmCisjaWZkZWYgU0FfT05FU0hPVAorCXsgU0FfT05FU0hPVCwJIlNBX09ORVNIT1QiCX0sCisjZW5kaWYKKyNpZmRlZiBTQV9TSUdJTkZPCisJeyBTQV9TSUdJTkZPLAkiU0FfU0lHSU5GTyIJfSwKKyNlbmRpZgorI2lmZGVmIFNBX1JFU0VUSEFORAorCXsgU0FfUkVTRVRIQU5ELAkiU0FfUkVTRVRIQU5EIgl9LAorI2VuZGlmCisjaWZkZWYgU0FfT05TVEFDSworCXsgU0FfT05TVEFDSywJIlNBX09OU1RBQ0siCX0sCisjZW5kaWYKKyNpZmRlZiBTQV9OT0RFRkVSCisJeyBTQV9OT0RFRkVSLAkiU0FfTk9ERUZFUiIJfSwKKyNlbmRpZgorI2lmZGVmIFNBX05PQ0xEU1RPUAorCXsgU0FfTk9DTERTVE9QLAkiU0FfTk9DTERTVE9QIgl9LAorI2VuZGlmCisjaWZkZWYgU0FfTk9DTERXQUlUCisJeyBTQV9OT0NMRFdBSVQsCSJTQV9OT0NMRFdBSVQiCX0sCisjZW5kaWYKKyNpZmRlZiBfU0FfQlNEQ0FMTAorCXsgX1NBX0JTRENBTEwsCSJfU0FfQlNEQ0FMTCIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2lncHJvY21hc2tjbWRzW10gPSB7CisJeyBTSUdfQkxPQ0ssCSJTSUdfQkxPQ0siCX0sCisJeyBTSUdfVU5CTE9DSywJIlNJR19VTkJMT0NLIgl9LAorCXsgU0lHX1NFVE1BU0ssCSJTSUdfU0VUTUFTSyIJfSwKKyNpZmRlZiBTSUdfU0VUTUFTSzMyCisJeyBTSUdfU0VUTUFTSzMyLCJTSUdfU0VUTUFTSzMyIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKKyNlbmRpZiAvKiBIQVZFX1NJR0FDVElPTiAqLworCisvKiBBbm9ueW1vdXMgcmVhbHRpbWUgc2lnbmFscy4gKi8KKy8qIFVuZGVyIGdsaWJjIDIuMSwgU0lHUlRNSU4gZXQgYWwgYXJlIGZ1bmN0aW9ucywgYnV0IF9fU0lHUlRNSU4gaXMgYQorICAgY29uc3RhbnQuICBUaGlzIGlzIHdoYXQgd2Ugd2FudC4gIE90aGVyd2lzZSwganVzdCB1c2UgU0lHUlRNSU4uICovCisjaWZkZWYgU0lHUlRNSU4KKyNpZm5kZWYgX19TSUdSVE1JTgorI2RlZmluZSBfX1NJR1JUTUlOIFNJR1JUTUlOCisjZGVmaW5lIF9fU0lHUlRNQVggU0lHUlRNQVggLyogbGlrZXdpc2UgKi8KKyNlbmRpZgorI2VuZGlmCisKK2NvbnN0IGNoYXIgKgorc2lnbmFtZShzaWcpCitpbnQgc2lnOworeworCXN0YXRpYyBjaGFyIGJ1ZlszMF07CisJaWYgKHNpZyA+PSAwICYmIHNpZyA8IG5zaWduYWxzKSB7CisJCXJldHVybiBzaWduYWxlbnRbc2lnXTsKKyNpZmRlZiBTSUdSVE1JTgorCX0gZWxzZSBpZiAoc2lnID49IF9fU0lHUlRNSU4gJiYgc2lnIDw9IF9fU0lHUlRNQVgpIHsKKwkJc3ByaW50ZihidWYsICJTSUdSVF8lbGQiLCAobG9uZykoc2lnIC0gX19TSUdSVE1JTikpOworCQlyZXR1cm4gYnVmOworI2VuZGlmIC8qIFNJR1JUTUlOICovCisJfSBlbHNlIHsKKwkJc3ByaW50ZihidWYsICIlZCIsIHNpZyk7CisJCXJldHVybiBidWY7CisJfQorfQorCisjaWZuZGVmIFVOSVhXQVJFCitzdGF0aWMgdm9pZAorbG9uZ190b19zaWdzZXQobCwgcykKK2xvbmcgbDsKK3NpZ3NldF90ICpzOworeworCXNpZ2VtcHR5c2V0KHMpOworCSoobG9uZyAqKXMgPSBsOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2NvcHlfc2lnc2V0X2xlbih0Y3AsIGFkZHIsIHMsIGxlbikKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgYWRkcjsKK3NpZ3NldF90ICpzOworaW50IGxlbjsKK3sKKwlpZiAobGVuID4gc2l6ZW9mKCpzKSkKKwkJbGVuID0gc2l6ZW9mKCpzKTsKKwlzaWdlbXB0eXNldChzKTsKKwlpZiAodW1vdmVuKHRjcCwgYWRkciwgbGVuLCAoY2hhciAqKXMpIDwgMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworfQorCisjaWZkZWYgTElOVVgKKy8qIE9yaWdpbmFsIHNpZ3NldCBpcyB1bnNpZ25lZCBsb25nICovCisjZGVmaW5lIGNvcHlfc2lnc2V0KHRjcCwgYWRkciwgcykgY29weV9zaWdzZXRfbGVuKHRjcCwgYWRkciwgcywgc2l6ZW9mKGxvbmcpKQorI2Vsc2UKKyNkZWZpbmUgY29weV9zaWdzZXQodGNwLCBhZGRyLCBzKSBjb3B5X3NpZ3NldF9sZW4odGNwLCBhZGRyLCBzLCBzaXplb2Yoc2lnc2V0X3QpKQorI2VuZGlmCisKK3N0YXRpYyBjaGFyICoKK3NwcmludHNpZ21hc2socywgbWFzaywgcnQpCitjaGFyICpzOworc2lnc2V0X3QgKm1hc2s7CitpbnQgcnQ7IC8qIHNldCBtaWdodCBpbmNsdWRlIHJlYWx0aW1lIHNpZ3MgKi8KK3sKKwlpbnQgaSwgbnNpZ3M7CisJaW50IG1heHNpZ3M7CisJY2hhciAqZm9ybWF0OworCXN0YXRpYyBjaGFyIG91dHN0cls4ICogc2l6ZW9mKHNpZ3NldF90KSAqIDhdOworCisJc3RyY3B5KG91dHN0ciwgcyk7CisJcyA9IG91dHN0ciArIHN0cmxlbihvdXRzdHIpOworCW5zaWdzID0gMDsKKwltYXhzaWdzID0gbnNpZ25hbHM7CisjaWZkZWYgX19TSUdSVE1BWAorCWlmIChydCkKKwkJbWF4c2lncyA9IF9fU0lHUlRNQVg7IC8qIGluc3RlYWQgKi8KKyNlbmRpZgorCWZvciAoaSA9IDE7IGkgPCBtYXhzaWdzOyBpKyspIHsKKwkJaWYgKHNpZ2lzbWVtYmVyKG1hc2ssIGkpID09IDEpCisJCQluc2lncysrOworCX0KKwlpZiAobnNpZ3MgPj0gbnNpZ25hbHMgKiAyIC8gMykgeworCQkqcysrID0gJ34nOworCQlmb3IgKGkgPSAxOyBpIDwgbWF4c2lnczsgaSsrKSB7CisJCQlzd2l0Y2ggKHNpZ2lzbWVtYmVyKG1hc2ssIGkpKSB7CisJCQljYXNlIDE6CisJCQkJc2lnZGVsc2V0KG1hc2ssIGkpOworCQkJCWJyZWFrOworCQkJY2FzZSAwOgorCQkJCXNpZ2FkZHNldChtYXNrLCBpKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKwlmb3JtYXQgPSAiJXMiOworCSpzKysgPSAnWyc7CisJZm9yIChpID0gMTsgaSA8IG1heHNpZ3M7IGkrKykgeworCQlpZiAoc2lnaXNtZW1iZXIobWFzaywgaSkgPT0gMSkgeworCQkJLyogcmVhbC10aW1lIHNpZ25hbHMgb24gc29sYXJpcyBkb24ndCBoYXZlCisJCQkgKiBzaWduYWxlbnQgZW50cmllcworCQkJICovCisJCQlpZiAoaSA8IG5zaWduYWxzKSB7CisJCQkJc3ByaW50ZihzLCBmb3JtYXQsIHNpZ25hbGVudFtpXSArIDMpOworCQkJfQorI2lmZGVmIFNJR1JUTUlOCisJCQllbHNlIGlmIChpID49IF9fU0lHUlRNSU4gJiYgaSA8PSBfX1NJR1JUTUFYKSB7CisJCQkJY2hhciB0c2lnWzQwXTsKKwkJCQlzcHJpbnRmKHRzaWcsICJSVF8ldSIsIGkgLSBfX1NJR1JUTUlOKTsKKwkJCQlzcHJpbnRmKHMsIGZvcm1hdCwgdHNpZyk7CisJCQl9CisjZW5kaWYgLyogU0lHUlRNSU4gKi8KKwkJCWVsc2UgeworCQkJCWNoYXIgdHNpZ1szMl07CisJCQkJc3ByaW50Zih0c2lnLCAiJXUiLCBpKTsKKwkJCQlzcHJpbnRmKHMsIGZvcm1hdCwgdHNpZyk7CisJCQl9CisJCQlzICs9IHN0cmxlbihzKTsKKwkJCWZvcm1hdCA9ICIgJXMiOworCQl9CisJfQorCSpzKysgPSAnXSc7CisJKnMgPSAnXDAnOworCXJldHVybiBvdXRzdHI7Cit9CisKK3N0YXRpYyB2b2lkCitwcmludHNpZ21hc2sobWFzaywgcnQpCitzaWdzZXRfdCAqbWFzazsKK2ludCBydDsKK3sKKwl0cHJpbnRmKCIlcyIsIHNwcmludHNpZ21hc2soIiIsIG1hc2ssIHJ0KSk7Cit9CisKK3ZvaWQKK3ByaW50c2lnbmFsKG5yKQoraW50IG5yOworeworCXRwcmludGYoIiVzIiwgc2lnbmFtZShucikpOworfQorCit2b2lkCitwcmludF9zaWdzZXQoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGludCBydCkKK3sKKwlzaWdzZXRfdCBzczsKKworCWlmICghYWRkcikKKwkJdHByaW50ZigiTlVMTCIpOworCWVsc2UgaWYgKGNvcHlfc2lnc2V0KHRjcCwgYWRkciwgJnNzKSA8IDApCisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwllbHNlCisJCXByaW50c2lnbWFzaygmc3MsIHJ0KTsKK30KKworI2lmZGVmIExJTlVYCisKKyNpZm5kZWYgSUxMX0lMTE9QQworI2RlZmluZSBJTExfSUxMT1BDICAgICAgMSAgICAgICAvKiBpbGxlZ2FsIG9wY29kZSAqLworI2RlZmluZSBJTExfSUxMT1BOICAgICAgMiAgICAgICAvKiBpbGxlZ2FsIG9wZXJhbmQgKi8KKyNkZWZpbmUgSUxMX0lMTEFEUiAgICAgIDMgICAgICAgLyogaWxsZWdhbCBhZGRyZXNzaW5nIG1vZGUgKi8KKyNkZWZpbmUgSUxMX0lMTFRSUCAgICAgIDQgICAgICAgLyogaWxsZWdhbCB0cmFwICovCisjZGVmaW5lIElMTF9QUlZPUEMgICAgICA1ICAgICAgIC8qIHByaXZpbGVnZWQgb3Bjb2RlICovCisjZGVmaW5lIElMTF9QUlZSRUcgICAgICA2ICAgICAgIC8qIHByaXZpbGVnZWQgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgSUxMX0NPUFJPQyAgICAgIDcgICAgICAgLyogY29wcm9jZXNzb3IgZXJyb3IgKi8KKyNkZWZpbmUgSUxMX0JBRFNUSyAgICAgIDggICAgICAgLyogaW50ZXJuYWwgc3RhY2sgZXJyb3IgKi8KKyNkZWZpbmUgRlBFX0lOVERJViAgICAgIDEgICAgICAgLyogaW50ZWdlciBkaXZpZGUgYnkgemVybyAqLworI2RlZmluZSBGUEVfSU5UT1ZGICAgICAgMiAgICAgICAvKiBpbnRlZ2VyIG92ZXJmbG93ICovCisjZGVmaW5lIEZQRV9GTFRESVYgICAgICAzICAgICAgIC8qIGZsb2F0aW5nIHBvaW50IGRpdmlkZSBieSB6ZXJvICovCisjZGVmaW5lIEZQRV9GTFRPVkYgICAgICA0ICAgICAgIC8qIGZsb2F0aW5nIHBvaW50IG92ZXJmbG93ICovCisjZGVmaW5lIEZQRV9GTFRVTkQgICAgICA1ICAgICAgIC8qIGZsb2F0aW5nIHBvaW50IHVuZGVyZmxvdyAqLworI2RlZmluZSBGUEVfRkxUUkVTICAgICAgNiAgICAgICAvKiBmbG9hdGluZyBwb2ludCBpbmV4YWN0IHJlc3VsdCAqLworI2RlZmluZSBGUEVfRkxUSU5WICAgICAgNyAgICAgICAvKiBmbG9hdGluZyBwb2ludCBpbnZhbGlkIG9wZXJhdGlvbiAqLworI2RlZmluZSBGUEVfRkxUU1VCICAgICAgOCAgICAgICAvKiBzdWJzY3JpcHQgb3V0IG9mIHJhbmdlICovCisjZGVmaW5lIFNFR1ZfTUFQRVJSICAgICAxICAgICAgIC8qIGFkZHJlc3Mgbm90IG1hcHBlZCB0byBvYmplY3QgKi8KKyNkZWZpbmUgU0VHVl9BQ0NFUlIgICAgIDIgICAgICAgLyogaW52YWxpZCBwZXJtaXNzaW9ucyBmb3IgbWFwcGVkIG9iamVjdCAqLworI2RlZmluZSBCVVNfQURSQUxOICAgICAgMSAgICAgICAvKiBpbnZhbGlkIGFkZHJlc3MgYWxpZ25tZW50ICovCisjZGVmaW5lIEJVU19BRFJFUlIgICAgICAyICAgICAgIC8qIG5vbi1leGlzdGFudCBwaHlzaWNhbCBhZGRyZXNzICovCisjZGVmaW5lIEJVU19PQkpFUlIgICAgICAzICAgICAgIC8qIG9iamVjdCBzcGVjaWZpYyBoYXJkd2FyZSBlcnJvciAqLworI2RlZmluZSBUUkFQX0JSS1BUICAgICAgMSAgICAgICAvKiBwcm9jZXNzIGJyZWFrcG9pbnQgKi8KKyNkZWZpbmUgVFJBUF9UUkFDRSAgICAgIDIgICAgICAgLyogcHJvY2VzcyB0cmFjZSB0cmFwICovCisjZGVmaW5lIENMRF9FWElURUQgICAgICAxICAgICAgIC8qIGNoaWxkIGhhcyBleGl0ZWQgKi8KKyNkZWZpbmUgQ0xEX0tJTExFRCAgICAgIDIgICAgICAgLyogY2hpbGQgd2FzIGtpbGxlZCAqLworI2RlZmluZSBDTERfRFVNUEVEICAgICAgMyAgICAgICAvKiBjaGlsZCB0ZXJtaW5hdGVkIGFibm9ybWFsbHkgKi8KKyNkZWZpbmUgQ0xEX1RSQVBQRUQgICAgIDQgICAgICAgLyogdHJhY2VkIGNoaWxkIGhhcyB0cmFwcGVkICovCisjZGVmaW5lIENMRF9TVE9QUEVEICAgICA1ICAgICAgIC8qIGNoaWxkIGhhcyBzdG9wcGVkICovCisjZGVmaW5lIENMRF9DT05USU5VRUQgICA2ICAgICAgIC8qIHN0b3BwZWQgY2hpbGQgaGFzIGNvbnRpbnVlZCAqLworI2RlZmluZSBQT0xMX0lOICAgICAgICAgMSAgICAgICAvKiBkYXRhIGlucHV0IGF2YWlsYWJsZSAqLworI2RlZmluZSBQT0xMX09VVCAgICAgICAgMiAgICAgICAvKiBvdXRwdXQgYnVmZmVycyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgUE9MTF9NU0cgICAgICAgIDMgICAgICAgLyogaW5wdXQgbWVzc2FnZSBhdmFpbGFibGUgKi8KKyNkZWZpbmUgUE9MTF9FUlIgICAgICAgIDQgICAgICAgLyogaS9vIGVycm9yICovCisjZGVmaW5lIFBPTExfUFJJICAgICAgICA1ICAgICAgIC8qIGhpZ2ggcHJpb3JpdHkgaW5wdXQgYXZhaWxhYmxlICovCisjZGVmaW5lIFBPTExfSFVQICAgICAgICA2ICAgICAgIC8qIGRldmljZSBkaXNjb25uZWN0ZWQgKi8KKyNkZWZpbmUgU0lfVVNFUiAgICAgICAgIDAgICAgICAgLyogc2VudCBieSBraWxsLCBzaWdzZW5kLCByYWlzZSAqLworI2RlZmluZSBTSV9RVUVVRSAgICAgICAgLTEgICAgICAvKiBzZW50IGJ5IHNpZ3F1ZXVlICovCisjZGVmaW5lIFNJX1RJTUVSICAgICAgICAtMiAgICAgIC8qIHNlbnQgYnkgdGltZXIgZXhwaXJhdGlvbiAqLworI2RlZmluZSBTSV9NRVNHUSAgICAgICAgLTMgICAgICAvKiBzZW50IGJ5IHJlYWwgdGltZSBtZXNxIHN0YXRlIGNoYW5nZSAqLworI2RlZmluZSBTSV9BU1lOQ0lPICAgICAgLTQgICAgICAvKiBzZW50IGJ5IEFJTyBjb21wbGV0aW9uICovCisjZGVmaW5lIFNJX1NJR0lPCS01CS8qIFNlbnQgYnkgU0lHSU8gKi8KKyNkZWZpbmUgU0lfVEtJTEwJLTYJLyogU2VudCBieSB0a2lsbCAqLworI2VuZGlmCisKKyNpZiBfX0dMSUJDX01JTk9SX18gPCAxICYmICFkZWZpbmVkKEhBVkVfQU5EUk9JRF9PUykKKy8qIFR5cGUgZm9yIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc2lnbmFsLiAgKi8KK3R5cGVkZWYgdW5pb24gc2lndmFsCit7CisJaW50IHNpdmFsX2ludDsKKwl2b2lkICpzaXZhbF9wdHI7Cit9IHNpZ3ZhbF90OworCisjIGRlZmluZSBfX1NJX01BWF9TSVpFICAgICAxMjgKKyMgZGVmaW5lIF9fU0lfUEFEX1NJWkUgICAgICgoX19TSV9NQVhfU0laRSAvIHNpemVvZiAoaW50KSkgLSAzKQorCit0eXBlZGVmIHN0cnVjdCBzaWdpbmZvCit7CisJaW50IHNpX3NpZ25vOyAgICAgICAgICAgICAgIC8qIFNpZ25hbCBudW1iZXIuICAqLworCWludCBzaV9lcnJubzsgICAgICAgICAgICAgICAvKiBJZiBub24temVybywgYW4gZXJybm8gdmFsdWUgYXNzb2NpYXRlZCB3aXRoCisJCQkJCQkJCSAgIHRoaXMgc2lnbmFsLCBhcyBkZWZpbmVkIGluIDxlcnJuby5oPi4gICovCisJaW50IHNpX2NvZGU7ICAgICAgICAgICAgICAgIC8qIFNpZ25hbCBjb2RlLiAgKi8KKworCXVuaW9uCisJeworCQlpbnQgX3BhZFtfX1NJX1BBRF9TSVpFXTsKKworCQkvKiBraWxsKCkuICAqLworCQlzdHJ1Y3QKKwkJeworCQkJX19waWRfdCBzaV9waWQ7ICAgICAvKiBTZW5kaW5nIHByb2Nlc3MgSUQuICAqLworCQkJX191aWRfdCBzaV91aWQ7ICAgICAvKiBSZWFsIHVzZXIgSUQgb2Ygc2VuZGluZyBwcm9jZXNzLiAgKi8KKwkJfSBfa2lsbDsKKworCQkvKiBQT1NJWC4xYiB0aW1lcnMuICAqLworCQlzdHJ1Y3QKKwkJeworCQkJdW5zaWduZWQgaW50IF90aW1lcjE7CisJCQl1bnNpZ25lZCBpbnQgX3RpbWVyMjsKKwkJfSBfdGltZXI7CisKKwkJLyogUE9TSVguMWIgc2lnbmFscy4gICovCisJCXN0cnVjdAorCQl7CisJCQlfX3BpZF90IHNpX3BpZDsgICAgIC8qIFNlbmRpbmcgcHJvY2VzcyBJRC4gICovCisJCQlfX3VpZF90IHNpX3VpZDsgICAgIC8qIFJlYWwgdXNlciBJRCBvZiBzZW5kaW5nIHByb2Nlc3MuICAqLworCQkJc2lndmFsX3Qgc2lfc2lndmFsOyAvKiBTaWduYWwgdmFsdWUuICAqLworCQl9IF9ydDsKKworCQkvKiBTSUdDSExELiAgKi8KKwkJc3RydWN0CisJCXsKKwkJCV9fcGlkX3Qgc2lfcGlkOyAgICAgLyogV2hpY2ggY2hpbGQuICAqLworCQkJaW50IHNpX3N0YXR1czsgICAgICAvKiBFeGl0IHZhbHVlIG9yIHNpZ25hbC4gICovCisJCQlfX2Nsb2NrX3Qgc2lfdXRpbWU7CisJCQlfX2Nsb2NrX3Qgc2lfc3RpbWU7CisJCX0gX3NpZ2NobGQ7CisKKwkJLyogU0lHSUxMLCBTSUdGUEUsIFNJR1NFR1YsIFNJR0JVUy4gICovCisJCXN0cnVjdAorCQl7CisJCQl2b2lkICpzaV9hZGRyOyAgICAgIC8qIEZhdWx0aW5nIGluc24vbWVtb3J5IHJlZi4gICovCisJCX0gX3NpZ2ZhdWx0OworCisJCS8qIFNJR1BPTEwuICAqLworCQlzdHJ1Y3QKKwkJeworCQkJaW50IHNpX2JhbmQ7ICAgICAgICAvKiBCYW5kIGV2ZW50IGZvciBTSUdQT0xMLiAgKi8KKwkJCWludCBzaV9mZDsKKwkJfSBfc2lncG9sbDsKKwl9IF9zaWZpZWxkczsKK30gc2lnaW5mb190OworCisjZGVmaW5lIHNpX3BpZAkJX3NpZmllbGRzLl9raWxsLnNpX3BpZAorI2RlZmluZSBzaV91aWQJCV9zaWZpZWxkcy5fa2lsbC5zaV91aWQKKyNkZWZpbmUgc2lfc3RhdHVzCV9zaWZpZWxkcy5fc2lnY2hsZC5zaV9zdGF0dXMKKyNkZWZpbmUgc2lfdXRpbWUJX3NpZmllbGRzLl9zaWdjaGxkLnNpX3V0aW1lCisjZGVmaW5lIHNpX3N0aW1lCV9zaWZpZWxkcy5fc2lnY2hsZC5zaV9zdGltZQorI2RlZmluZSBzaV92YWx1ZQlfc2lmaWVsZHMuX3J0LnNpX3NpZ3ZhbAorI2RlZmluZSBzaV9pbnQJCV9zaWZpZWxkcy5fcnQuc2lfc2lndmFsLnNpdmFsX2ludAorI2RlZmluZSBzaV9wdHIJCV9zaWZpZWxkcy5fcnQuc2lfc2lndmFsLnNpdmFsX3B0cgorI2RlZmluZSBzaV9hZGRyCQlfc2lmaWVsZHMuX3NpZ2ZhdWx0LnNpX2FkZHIKKyNkZWZpbmUgc2lfYmFuZAkJX3NpZmllbGRzLl9zaWdwb2xsLnNpX2JhbmQKKyNkZWZpbmUgc2lfZmQJCV9zaWZpZWxkcy5fc2lncG9sbC5zaV9mZAorCisjZW5kaWYKKworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChTVlI0KSB8fCBkZWZpbmVkIChMSU5VWCkKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2luZm9fY29kZXNbXSA9IHsKKyNpZmRlZiBTSV9OT0lORk8KKwl7IFNJX05PSU5GTywJIlNJX05PSU5GTyIJfSwKKyNlbmRpZgorI2lmZGVmIFNJX1VTRVIKKwl7IFNJX1VTRVIsCSJTSV9VU0VSIgl9LAorI2VuZGlmCisjaWZkZWYgU0lfTFdQCisJeyBTSV9MV1AsCSJTSV9MV1AiCX0sCisjZW5kaWYKKyNpZmRlZiBTSV9RVUVVRQorCXsgU0lfUVVFVUUsCSJTSV9RVUVVRSIJfSwKKyNlbmRpZgorI2lmZGVmIFNJX1RJTUVSCisJeyBTSV9USU1FUiwJIlNJX1RJTUVSIgl9LAorI2VuZGlmCisjaWZkZWYgU0lfQVNZTkNJTworCXsgU0lfQVNZTkNJTywJIlNJX0FTWU5DSU8iCX0sCisjZW5kaWYKKyNpZmRlZiBTSV9NRVNHUQorCXsgU0lfTUVTR1EsCSJTSV9NRVNHUSIJfSwKKyNlbmRpZgorI2lmZGVmIFNJX1NJR0lPCisJeyBTSV9TSUdJTywJIlNJX1NJR0lPIgl9LAorI2VuZGlmCisjaWZkZWYgU0lfVEtJTEwKKwl7IFNJX1RLSUxMLAkiU0lfVEtJTEwiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2lsbF9jb2Rlc1tdID0geworCXsgSUxMX0lMTE9QQywJIklMTF9JTExPUEMiCX0sCisJeyBJTExfSUxMT1BOLAkiSUxMX0lMTE9QTiIJfSwKKwl7IElMTF9JTExBRFIsCSJJTExfSUxMQURSIgl9LAorCXsgSUxMX0lMTFRSUCwJIklMTF9JTExUUlAiCX0sCisJeyBJTExfUFJWT1BDLAkiSUxMX1BSVk9QQyIJfSwKKwl7IElMTF9QUlZSRUcsCSJJTExfUFJWUkVHIgl9LAorCXsgSUxMX0NPUFJPQywJIklMTF9DT1BST0MiCX0sCisJeyBJTExfQkFEU1RLLAkiSUxMX0JBRFNUSyIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2ZwZV9jb2Rlc1tdID0geworCXsgRlBFX0lOVERJViwJIkZQRV9JTlRESVYiCX0sCisJeyBGUEVfSU5UT1ZGLAkiRlBFX0lOVE9WRiIJfSwKKwl7IEZQRV9GTFRESVYsCSJGUEVfRkxURElWIgl9LAorCXsgRlBFX0ZMVE9WRiwJIkZQRV9GTFRPVkYiCX0sCisJeyBGUEVfRkxUVU5ELAkiRlBFX0ZMVFVORCIJfSwKKwl7IEZQRV9GTFRSRVMsCSJGUEVfRkxUUkVTIgl9LAorCXsgRlBFX0ZMVElOViwJIkZQRV9GTFRJTlYiCX0sCisJeyBGUEVfRkxUU1VCLAkiRlBFX0ZMVFNVQiIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ3RyYXBfY29kZXNbXSA9IHsKKwl7IFRSQVBfQlJLUFQsCSJUUkFQX0JSS1BUIgl9LAorCXsgVFJBUF9UUkFDRSwJIlRSQVBfVFJBQ0UiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdjaGxkX2NvZGVzW10gPSB7CisJeyBDTERfRVhJVEVELAkiQ0xEX0VYSVRFRCIJfSwKKwl7IENMRF9LSUxMRUQsCSJDTERfS0lMTEVEIgl9LAorCXsgQ0xEX0RVTVBFRCwJIkNMRF9EVU1QRUQiCX0sCisJeyBDTERfVFJBUFBFRCwJIkNMRF9UUkFQUEVEIgl9LAorCXsgQ0xEX1NUT1BQRUQsCSJDTERfU1RPUFBFRCIJfSwKKwl7IENMRF9DT05USU5VRUQsIkNMRF9DT05USU5VRUQiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdwb2xsX2NvZGVzW10gPSB7CisJeyBQT0xMX0lOLAkiUE9MTF9JTiIJfSwKKwl7IFBPTExfT1VULAkiUE9MTF9PVVQiCX0sCisJeyBQT0xMX01TRywJIlBPTExfTVNHIgl9LAorCXsgUE9MTF9FUlIsCSJQT0xMX0VSUiIJfSwKKwl7IFBPTExfUFJJLAkiUE9MTF9QUkkiCX0sCisJeyBQT0xMX0hVUCwJIlBPTExfSFVQIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2lncHJvZl9jb2Rlc1tdID0geworI2lmZGVmIFBST0ZfU0lHCisJeyBQUk9GX1NJRywJIlBST0ZfU0lHIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKKyNpZmRlZiBTSUdFTVQKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdlbXRfY29kZXNbXSA9IHsKKyNpZmRlZiBFTVRfVEFHT1ZGCisJeyBFTVRfVEFHT1ZGLAkiRU1UX1RBR09WRiIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdzZWd2X2NvZGVzW10gPSB7CisJeyBTRUdWX01BUEVSUiwJIlNFR1ZfTUFQRVJSIgl9LAorCXsgU0VHVl9BQ0NFUlIsCSJTRUdWX0FDQ0VSUiIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2J1c19jb2Rlc1tdID0geworCXsgQlVTX0FEUkFMTiwJIkJVU19BRFJBTE4iCX0sCisJeyBCVVNfQURSRVJSLAkiQlVTX0FEUkVSUiIJfSwKKwl7IEJVU19PQkpFUlIsCSJCVVNfT0JKRVJSIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCit2b2lkCitwcmludHNpZ2luZm8oc2lwLCB2ZXJib3NlKQorc2lnaW5mb190ICpzaXA7CitpbnQgdmVyYm9zZTsKK3sKKwljb25zdCBjaGFyICpjb2RlOworCisJaWYgKHNpcC0+c2lfc2lnbm8gPT0gMCkgeworCQl0cHJpbnRmICgie30iKTsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJ7c2lfc2lnbm89Iik7CisJcHJpbnRzaWduYWwoc2lwLT5zaV9zaWdubyk7CisJY29kZSA9IHhsb29rdXAoc2lnaW5mb19jb2Rlcywgc2lwLT5zaV9jb2RlKTsKKwlpZiAoIWNvZGUpIHsKKwkJc3dpdGNoIChzaXAtPnNpX3NpZ25vKSB7CisJCWNhc2UgU0lHVFJBUDoKKwkJCWNvZGUgPSB4bG9va3VwKHNpZ3RyYXBfY29kZXMsIHNpcC0+c2lfY29kZSk7CisJCQlicmVhazsKKwkJY2FzZSBTSUdDSExEOgorCQkJY29kZSA9IHhsb29rdXAoc2lnY2hsZF9jb2Rlcywgc2lwLT5zaV9jb2RlKTsKKwkJCWJyZWFrOworCQljYXNlIFNJR1BPTEw6CisJCQljb2RlID0geGxvb2t1cChzaWdwb2xsX2NvZGVzLCBzaXAtPnNpX2NvZGUpOworCQkJYnJlYWs7CisJCWNhc2UgU0lHUFJPRjoKKwkJCWNvZGUgPSB4bG9va3VwKHNpZ3Byb2ZfY29kZXMsIHNpcC0+c2lfY29kZSk7CisJCQlicmVhazsKKwkJY2FzZSBTSUdJTEw6CisJCQljb2RlID0geGxvb2t1cChzaWdpbGxfY29kZXMsIHNpcC0+c2lfY29kZSk7CisJCQlicmVhazsKKyNpZmRlZiBTSUdFTVQKKwkJY2FzZSBTSUdFTVQ6CisJCQljb2RlID0geGxvb2t1cChzaWdlbXRfY29kZXMsIHNpcC0+c2lfY29kZSk7CisJCQlicmVhazsKKyNlbmRpZgorCQljYXNlIFNJR0ZQRToKKwkJCWNvZGUgPSB4bG9va3VwKHNpZ2ZwZV9jb2Rlcywgc2lwLT5zaV9jb2RlKTsKKwkJCWJyZWFrOworCQljYXNlIFNJR1NFR1Y6CisJCQljb2RlID0geGxvb2t1cChzaWdzZWd2X2NvZGVzLCBzaXAtPnNpX2NvZGUpOworCQkJYnJlYWs7CisJCWNhc2UgU0lHQlVTOgorCQkJY29kZSA9IHhsb29rdXAoc2lnYnVzX2NvZGVzLCBzaXAtPnNpX2NvZGUpOworCQkJYnJlYWs7CisJCX0KKwl9CisJaWYgKGNvZGUpCisJCXRwcmludGYoIiwgc2lfY29kZT0lcyIsIGNvZGUpOworCWVsc2UKKwkJdHByaW50ZigiLCBzaV9jb2RlPSUjeCIsIHNpcC0+c2lfY29kZSk7CisjaWZkZWYgU0lfTk9JTkZPCisJaWYgKHNpcC0+c2lfY29kZSAhPSBTSV9OT0lORk8pCisjZW5kaWYKKwl7CisJCWlmIChzaXAtPnNpX2Vycm5vKSB7CisJCQlpZiAoc2lwLT5zaV9lcnJubyA8IDAgfHwgc2lwLT5zaV9lcnJubyA+PSBuZXJybm9zKQorCQkJCXRwcmludGYoIiwgc2lfZXJybm89JWQiLCBzaXAtPnNpX2Vycm5vKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIsIHNpX2Vycm5vPSVzIiwKKwkJCQkJZXJybm9lbnRbc2lwLT5zaV9lcnJub10pOworCQl9CisjaWZkZWYgU0lfRlJPTVVTRVIKKwkJaWYgKFNJX0ZST01VU0VSKHNpcCkpIHsKKwkJCXRwcmludGYoIiwgc2lfcGlkPSVsZCwgc2lfdWlkPSVsZCIsCisJCQkJc2lwLT5zaV9waWQsIHNpcC0+c2lfdWlkKTsKKyNpZmRlZiBTSV9RVUVVRQorCQkJc3dpdGNoIChzaXAtPnNpX2NvZGUpIHsKKwkJCWNhc2UgU0lfUVVFVUU6CisjaWZkZWYgU0lfVElNRVIKKwkJCWNhc2UgU0lfVElNRVI6CisjZW5kaWYgLyogU0lfUVVFVUUgKi8KKwkJCWNhc2UgU0lfQVNZTkNJTzoKKyNpZmRlZiBTSV9NRVNHUQorCQkJY2FzZSBTSV9NRVNHUToKKyNlbmRpZiAvKiBTSV9NRVNHUSAqLworCQkJCXRwcmludGYoIiwgc2lfdmFsdWU9JWQiLAorCQkJCQlzaXAtPnNpX3ZhbHVlLnNpdmFsX2ludCk7CisJCQkJYnJlYWs7CisJCQl9CisjZW5kaWYgLyogU0lfUVVFVUUgKi8KKwkJfQorCQllbHNlCisjZW5kaWYgLyogU0lfRlJPTVVTRVIgKi8KKwkJeworCQkJc3dpdGNoIChzaXAtPnNpX3NpZ25vKSB7CisJCQljYXNlIFNJR0NITEQ6CisJCQkJdHByaW50ZigiLCBzaV9waWQ9JWxkLCBzaV9zdGF0dXM9IiwKKwkJCQkJKGxvbmcpIHNpcC0+c2lfcGlkKTsKKwkJCQlpZiAoc2lwLT5zaV9jb2RlID09IENMRF9FWElURUQpCisJCQkJCXRwcmludGYoIiVkIiwgc2lwLT5zaV9zdGF0dXMpOworCQkJCWVsc2UKKwkJCQkJcHJpbnRzaWduYWwoc2lwLT5zaV9zdGF0dXMpOworI2lmIExJTlVYCisJCQkJaWYgKCF2ZXJib3NlKQorCQkJCQl0cHJpbnRmKCIsIC4uLiIpOworCQkJCWVsc2UKKwkJCQkJdHByaW50ZigiLCBzaV91dGltZT0lbHUsIHNpX3N0aW1lPSVsdSIsCisJCQkJCQlzaXAtPnNpX3V0aW1lLAorCQkJCQkJc2lwLT5zaV9zdGltZSk7CisjZW5kaWYKKwkJCQlicmVhazsKKwkJCWNhc2UgU0lHSUxMOiBjYXNlIFNJR0ZQRToKKwkJCWNhc2UgU0lHU0VHVjogY2FzZSBTSUdCVVM6CisJCQkJdHByaW50ZigiLCBzaV9hZGRyPSUjbHgiLAorCQkJCQkodW5zaWduZWQgbG9uZykgc2lwLT5zaV9hZGRyKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgU0lHUE9MTDoKKwkJCQlzd2l0Y2ggKHNpcC0+c2lfY29kZSkgeworCQkJCWNhc2UgUE9MTF9JTjogY2FzZSBQT0xMX09VVDogY2FzZSBQT0xMX01TRzoKKwkJCQkJdHByaW50ZigiLCBzaV9iYW5kPSVsZCIsCisJCQkJCQkobG9uZykgc2lwLT5zaV9iYW5kKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWJyZWFrOworI2lmZGVmIExJTlVYCisJCQlkZWZhdWx0OgorCQkJICAgICAgICB0cHJpbnRmKCIsIHNpX3BpZD0lbHUsIHNpX3VpZD0lbHUsICIsCisJCQkJCSh1bnNpZ25lZCBsb25nKSBzaXAtPnNpX3BpZCwKKwkJCQkJKHVuc2lnbmVkIGxvbmcpIHNpcC0+c2lfdWlkKTsKKwkJCQlpZiAoIXZlcmJvc2UpCisJCQkJCXRwcmludGYoIi4uLiIpOworCQkJCWVsc2UgeworCQkJCQl0cHJpbnRmKCJzaV92YWx1ZT17aW50PSV1LCBwdHI9JSNseH0iLAorCQkJCQkJc2lwLT5zaV9pbnQsCisJCQkJCQkodW5zaWduZWQgbG9uZykgc2lwLT5zaV9wdHIpOworCQkJCX0KKyNlbmRpZgorCisJCQl9CisJCX0KKwl9CisJdHByaW50ZigifSIpOworfQorCisjZW5kaWYgLyogU1ZSNCB8fCBMSU5VWCAqLworCisjaWZkZWYgTElOVVgKKworc3RhdGljIHZvaWQKK3BhcnNlX3NpZ3NldF90IChjb25zdCBjaGFyICpzdHIsIHNpZ3NldF90ICpzZXQpCit7CisJY29uc3QgY2hhciAqcDsKKwl1bnNpZ25lZCBpbnQgZGlnaXQ7CisJaW50IGk7CisKKwlzaWdlbXB0eXNldChzZXQpOworCisJcCA9IHN0cmNocihzdHIsICdcbicpOworCWlmIChwID09IE5VTEwpCisJCXAgPSBzdHJjaHIoc3RyLCAnXDAnKTsKKwlmb3IgKGkgPSAwOyBwLS0gPiBzdHI7IGkgKz0gNCkgeworCQlpZiAoKnAgPj0gJzAnICYmICpwIDw9ICc5JykKKwkJCWRpZ2l0ID0gKnAgLSAnMCc7CisJCWVsc2UgaWYgKCpwID49ICdhJyAmJiAqcCA8PSAnZicpCisJCQlkaWdpdCA9ICpwIC0gJ2EnICsgMTA7CisJCWVsc2UgaWYgKCpwID49ICdBJyAmJiAqcCA8PSAnRicpCisJCQlkaWdpdCA9ICpwIC0gJ0EnICsgMTA7CisJCWVsc2UKKwkJCWJyZWFrOworCQlpZiAoZGlnaXQgJiAxKQorCQkJc2lnYWRkc2V0KHNldCwgaSArIDEpOworCQlpZiAoZGlnaXQgJiAyKQorCQkJc2lnYWRkc2V0KHNldCwgaSArIDIpOworCQlpZiAoZGlnaXQgJiA0KQorCQkJc2lnYWRkc2V0KHNldCwgaSArIDMpOworCQlpZiAoZGlnaXQgJiA4KQorCQkJc2lnYWRkc2V0KHNldCwgaSArIDQpOworCX0KK30KKworI2VuZGlmCisKKy8qCisgKiBDaGVjayBwcm9jZXNzIFRDUCBmb3IgdGhlIGRpc3Bvc2l0aW9uIG9mIHNpZ25hbCBTSUcuCisgKiBSZXR1cm4gMSBpZiB0aGUgcHJvY2VzcyB3b3VsZCBzb21laG93IG1hbmFnZSB0byAgc3Vydml2ZSBzaWduYWwgU0lHLAorICogZWxzZSByZXR1cm4gMC4gIFRoaXMgcm91dGluZSB3aWxsIG5ldmVyIGJlIGNhbGxlZCB3aXRoIFNJR0tJTEwuCisgKi8KK2ludAorc2lnaXNoYW5kbGVkKHRjcCwgc2lnKQorc3RydWN0IHRjYiAqdGNwOworaW50IHNpZzsKK3sKKyNpZmRlZiBMSU5VWAorCWludCBzZmQ7CisJY2hhciBzbmFtZVszMl07CisJY2hhciBidWZbMjA0OF07CisJY2hhciAqczsKKwlpbnQgaTsKKwlzaWdzZXRfdCBpZ25vcmVkLCBjYXVnaHQ7CisjZW5kaWYKKyNpZmRlZiBTVlI0CisJLyoKKwkgKiBTaW5jZSBwcm9jZnMgZG9lc24ndCBpbnRlcmZlcmUgd2l0aCB3YWl0IEkgdGhpbmsgaXQgaXMgc2FmZQorCSAqIHRvIHB1bnQgb24gdGhpcyBxdWVzdGlvbi4gIElmIG5vdCwgdGhlIGluZm9ybWF0aW9uIGlzIHRoZXJlLgorCSAqLworCXJldHVybiAxOworI2Vsc2UgLyogIVNWUjQgKi8KKwlzd2l0Y2ggKHNpZykgeworCWNhc2UgU0lHQ09OVDoKKwljYXNlIFNJR1NUT1A6CisJY2FzZSBTSUdUU1RQOgorCWNhc2UgU0lHVFRJTjoKKwljYXNlIFNJR1RUT1U6CisJY2FzZSBTSUdDSExEOgorCWNhc2UgU0lHSU86CisjaWYgZGVmaW5lZChTSUdVUkcpICYmIFNJR1VSRyAhPSBTSUdJTworCWNhc2UgU0lHVVJHOgorI2VuZGlmCisJY2FzZSBTSUdXSU5DSDoKKwkJLyogR2xvcmlhIEdheW5vciBzYXlzIC4uLiAqLworCQlyZXR1cm4gMTsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisjZW5kaWYgLyogIVNWUjQgKi8KKyNpZmRlZiBMSU5VWAorCisJLyogVGhpcyBpcyBpbmNyZWRpYmx5IGNvc3RseSBidXQgaXQncyB3b3J0aCBpdC4gKi8KKwkvKiBOT1RFOiBMaW51eFRocmVhZHMgaW50ZXJuYWxseSB1c2VzIFNJR1JUTUlOLCBTSUdSVE1JTiArIDEgYW5kCisJICAgU0lHUlRNSU4gKyAyLCBzbyB3ZSBjYW4ndCB1c2UgdGhlIG9ic29sZXRlIC9wcm9jLyVkL3N0YXQgd2hpY2gKKwkgICBkb2Vzbid0IGhhbmRsZSByZWFsLXRpbWUgc2lnbmFscykuICovCisJc3ByaW50ZihzbmFtZSwgIi9wcm9jLyVkL3N0YXR1cyIsIHRjcC0+cGlkKTsKKwlpZiAoKHNmZCA9IG9wZW4oc25hbWUsIE9fUkRPTkxZKSkgPT0gLTEpIHsKKwkJcGVycm9yKHNuYW1lKTsKKwkJcmV0dXJuIDE7CisJfQorCWkgPSByZWFkKHNmZCwgYnVmLCBzaXplb2YoYnVmKSk7CisJYnVmW2ldID0gJ1wwJzsKKwljbG9zZShzZmQpOworCS8qCisJICogU2tpcCB0aGUgZXh0cmFuZW91cyBmaWVsZHMuIFdlIG5lZWQgdG8gc2tpcAorCSAqIGNvbW1hbmQgbmFtZSBoYXMgYW55IHNwYWNlcyBpbiBpdC4gIFNvIGJlIGl0LgorCSAqLworCXMgPSBzdHJzdHIoYnVmLCAiU2lnSWduOlx0Iik7CisJaWYgKCFzKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICIvcHJvYy9waWQvc3RhdHVzIGZvcm1hdCBlcnJvclxuIik7CisJCXJldHVybiAxOworCX0KKwlwYXJzZV9zaWdzZXRfdChzICsgOCwgJmlnbm9yZWQpOworCisJcyA9IHN0cnN0cihidWYsICJTaWdDZ3Q6XHQiKTsKKwlpZiAoIXMpCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIi9wcm9jL3BpZC9zdGF0dXMgZm9ybWF0IGVycm9yXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCXBhcnNlX3NpZ3NldF90KHMgKyA4LCAmY2F1Z2h0KTsKKworI2lmZGVmIERFQlVHCisJZnByaW50ZihzdGRlcnIsICJzaWdzOiAlMDE2cXggJTAxNnF4IChzaWc9JWQpXG4iLAorCQkqKGxvbmcgbG9uZyAqKSAmaWdub3JlZCwgKihsb25nIGxvbmcgKikgJmNhdWdodCwgc2lnKTsKKyNlbmRpZgorCWlmIChzaWdpc21lbWJlcigmaWdub3JlZCwgc2lnKSB8fCBzaWdpc21lbWJlcigmY2F1Z2h0LCBzaWcpKQorCQlyZXR1cm4gMTsKKyNlbmRpZiAvKiBMSU5VWCAqLworCisjaWZkZWYgU1VOT1M0CisJdm9pZCAoKnVfc2lnbmFsKSgpOworCisJaWYgKHVwZWVrKHRjcC0+cGlkLCB1b2ZmKHVfc2lnbmFsWzBdKSArIHNpZypzaXplb2YodV9zaWduYWwpLAorCSAgICAobG9uZyAqKSAmdV9zaWduYWwpIDwgMCkgeworCQlyZXR1cm4gMDsKKwl9CisJaWYgKHVfc2lnbmFsICE9IFNJR19ERkwpCisJCXJldHVybiAxOworI2VuZGlmIC8qIFNVTk9TNCAqLworCisJcmV0dXJuIDA7Cit9CisKKyNpZiBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChGUkVFQlNEKQorCitpbnQKK3N5c19zaWd2ZWModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBzaWd2ZWMgc3Y7CisJbG9uZyBhZGRyOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOworCX0gZWxzZSB7CisJCWFkZHIgPSB0Y3AtPnVfYXJnWzJdOworCX0KKwlpZiAoYWRkciA9PSAwKQorCQl0cHJpbnRmKCJOVUxMIik7CisJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnN2KSA8IDApCisJCXRwcmludGYoInsuLi59Iik7CisJZWxzZSB7CisJCXN3aXRjaCAoKGludCkgc3Yuc3ZfaGFuZGxlcikgeworCQljYXNlIChpbnQpIFNJR19FUlI6CisJCQl0cHJpbnRmKCJ7U0lHX0VSUn0iKTsKKwkJCWJyZWFrOworCQljYXNlIChpbnQpIFNJR19ERkw6CisJCQl0cHJpbnRmKCJ7U0lHX0RGTH0iKTsKKwkJCWJyZWFrOworCQljYXNlIChpbnQpIFNJR19JR046CisJCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7CisJCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKKwkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKKwkJCX0KKwkJCXRwcmludGYoIntTSUdfSUdOfSIpOworCQkJYnJlYWs7CisJCWNhc2UgKGludCkgU0lHX0hPTEQ6CisJCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7CisJCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKKwkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKKwkJCX0KKwkJCXRwcmludGYoIlNJR19IT0xEIik7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWlmICh0Y3AtPnVfYXJnWzBdID09IFNJR1RSQVApIHsKKwkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9TSUdUUkFQUEVEOworCQkJCWtpbGwodGNwLT5waWQsIFNJR1NUT1ApOworCQkJfQorCQkJdHByaW50ZigieyUjbHgsICIsICh1bnNpZ25lZCBsb25nKSBzdi5zdl9oYW5kbGVyKTsKKwkJCXByaW50c2lnbWFzaygmc3Yuc3ZfbWFzaywgMCk7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbGFncyhzaWd2ZWNfZmxhZ3MsIHN2LnN2X2ZsYWdzLCAiU1ZfPz8/Iik7CisJCQl0cHJpbnRmKCJ9Iik7CisJCX0KKwl9CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIiwgIik7CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NpZ3BhdXNlKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgewkvKiBXVEE6IFVEIGhhZCBhIGJ1ZyBoZXJlOiBoZSBmb3Jnb3QgdGhlIGJyYWNlcyAqLworCQlzaWdzZXRfdCBzaWdtOworCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzBdLCAmc2lnbSk7CisJCXByaW50c2lnbWFzaygmc2lnbSwgMCk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19zaWdzdGFjayh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IHNpZ3N0YWNrIHNzOworCWxvbmcgYWRkcjsKKworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlhZGRyID0gdGNwLT51X2FyZ1swXTsKKwllbHNlCisJCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOworCWlmIChhZGRyID09IDApCisJCXRwcmludGYoIk5VTEwiKTsKKwllbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZzcykgPCAwKQorCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJZWxzZSB7CisJCXRwcmludGYoIntzc19zcCAlI2x4ICIsICh1bnNpZ25lZCBsb25nKSBzcy5zc19zcCk7CisJCXRwcmludGYoInNzX29uc3RhY2sgJXN9Iiwgc3Muc3Nfb25zdGFjayA/ICJZRVMiIDogIk5PIik7CisJfQorCWlmIChlbnRlcmluZyh0Y3ApKQorCQl0cHJpbnRmKCIsICIpOworCXJldHVybiAwOworfQorCitpbnQKK3N5c19zaWdjbGVhbnVwKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIFNVTk9TNCB8fCBGUkVFQlNEICovCisKKyNpZm5kZWYgU1ZSNAorCitpbnQKK3N5c19zaWdzZXRtYXNrKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlzaWdzZXRfdCBzaWdtOworCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzBdLCAmc2lnbSk7CisJCXByaW50c2lnbWFzaygmc2lnbSwgMCk7CisjaWZuZGVmIFVTRV9QUk9DRlMKKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKy8vRklYTUUgdXNlICJzaWdwcm9jbWFzayIgb3Igc29tZXRoaW5nCisjZGVmaW5lIHNpZ21hc2soc2lnKSAgICAoMVVMIDw8ICgoc2lnKSAtIDEpKQorI2VuZGlmIAorCisJCWlmICgodGNwLT51X2FyZ1swXSAmIHNpZ21hc2soU0lHVFJBUCkpKSB7CisJCQkvKiBNYXJrIGF0dGVtcHQgdG8gYmxvY2sgU0lHVFJBUCAqLworCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKKwkJCS8qIFNlbmQgdW5ibG9ja2FibGUgc2lnbmFsICovCisJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKKwkJfQorI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCisJfQorCWVsc2UgaWYgKCFzeXNlcnJvcih0Y3ApKSB7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9ydmFsLCAmc2lnbSk7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygib2xkIG1hc2sgIiwgJnNpZ20sIDApOworCisJCXJldHVybiBSVkFMX0hFWCB8IFJWQUxfU1RSOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2lnYmxvY2sodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBzeXNfc2lnc2V0bWFzayh0Y3ApOworfQorCisjZW5kaWYgLyogIVNWUjQgKi8KKworI2lmZGVmIEhBVkVfU0lHQUNUSU9OCisKKyNpZmRlZiBMSU5VWAorc3RydWN0IG9sZF9zaWdhY3Rpb24geworCV9fc2lnaGFuZGxlcl90IF9fc2FfaGFuZGxlcjsKKwl1bnNpZ25lZCBsb25nIHNhX21hc2s7CisJdW5zaWduZWQgbG9uZyBzYV9mbGFnczsKKwl2b2lkICgqc2FfcmVzdG9yZXIpKHZvaWQpOworfTsKKyNkZWZpbmUgU0FfSEFORExFUiBfX3NhX2hhbmRsZXIKKyNlbmRpZiAvKiBMSU5VWCAqLworCisjaWZuZGVmIFNBX0hBTkRMRVIKKyNkZWZpbmUgU0FfSEFORExFUiBzYV9oYW5kbGVyCisjZW5kaWYKKworaW50CitzeXNfc2lnYWN0aW9uKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlsb25nIGFkZHI7CisjaWZkZWYgTElOVVgKKwlzaWdzZXRfdCBzaWdzZXQ7CisJc3RydWN0IG9sZF9zaWdhY3Rpb24gc2E7CisjZWxzZQorCXN0cnVjdCBzaWdhY3Rpb24gc2E7CisjZW5kaWYKKworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJCWFkZHIgPSB0Y3AtPnVfYXJnWzFdOworCX0gZWxzZQorCQlhZGRyID0gdGNwLT51X2FyZ1syXTsKKwlpZiAoYWRkciA9PSAwKQorCQl0cHJpbnRmKCJOVUxMIik7CisJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYWRkciwgJnNhKSA8IDApCisJCXRwcmludGYoInsuLi59Iik7CisJZWxzZSB7CisJCXN3aXRjaCAoKGxvbmcpIHNhLlNBX0hBTkRMRVIpIHsKKwkJY2FzZSAobG9uZykgU0lHX0VSUjoKKwkJCXRwcmludGYoIntTSUdfRVJSfSIpOworCQkJYnJlYWs7CisJCWNhc2UgKGxvbmcpIFNJR19ERkw6CisJCQl0cHJpbnRmKCJ7U0lHX0RGTH0iKTsKKwkJCWJyZWFrOworCQljYXNlIChsb25nKSBTSUdfSUdOOgorI2lmbmRlZiBVU0VfUFJPQ0ZTCisJCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7CisJCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKKwkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKKwkJCX0KKyNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLworCQkJdHByaW50Zigie1NJR19JR059Iik7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKyNpZm5kZWYgVVNFX1BST0NGUworCQkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gU0lHVFJBUCkgeworCQkJCXRjcC0+ZmxhZ3MgfD0gVENCX1NJR1RSQVBQRUQ7CisJCQkJa2lsbCh0Y3AtPnBpZCwgU0lHU1RPUCk7CisJCQl9CisjZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KKwkJCXRwcmludGYoInslI2x4LCAiLCAobG9uZykgc2EuU0FfSEFORExFUik7CisjaWZuZGVmIExJTlVYCisJCQlwcmludHNpZ21hc2sgKCZzYS5zYV9tYXNrLCAwKTsKKyNlbHNlCisJCQlsb25nX3RvX3NpZ3NldChzYS5zYV9tYXNrLCAmc2lnc2V0KTsKKwkJCXByaW50c2lnbWFzaygmc2lnc2V0LCAwKTsKKyNlbmRpZgorCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50ZmxhZ3Moc2lnYWN0X2ZsYWdzLCBzYS5zYV9mbGFncywgIlNBXz8/PyIpOworI2lmZGVmIFNBX1JFU1RPUkVSCisJCQlpZiAoc2Euc2FfZmxhZ3MgJiBTQV9SRVNUT1JFUikKKwkJCQl0cHJpbnRmKCIsICVwIiwgc2Euc2FfcmVzdG9yZXIpOworI2VuZGlmCisJCQl0cHJpbnRmKCJ9Iik7CisJCX0KKwl9CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXRwcmludGYoIiwgIik7CisjaWZkZWYgTElOVVgKKwllbHNlCisJCXRwcmludGYoIiwgJSNseCIsICh1bnNpZ25lZCBsb25nKSBzYS5zYV9yZXN0b3Jlcik7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc2lnbmFsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHNpZ25hbCh0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJc3dpdGNoICh0Y3AtPnVfYXJnWzFdKSB7CisJCWNhc2UgKGludCkgU0lHX0VSUjoKKwkJCXRwcmludGYoIlNJR19FUlIiKTsKKwkJCWJyZWFrOworCQljYXNlIChpbnQpIFNJR19ERkw6CisJCQl0cHJpbnRmKCJTSUdfREZMIik7CisJCQlicmVhazsKKwkJY2FzZSAoaW50KSBTSUdfSUdOOgorI2lmbmRlZiBVU0VfUFJPQ0ZTCisJCQlpZiAodGNwLT51X2FyZ1swXSA9PSBTSUdUUkFQKSB7CisJCQkJdGNwLT5mbGFncyB8PSBUQ0JfU0lHVFJBUFBFRDsKKwkJCQlraWxsKHRjcC0+cGlkLCBTSUdTVE9QKTsKKwkJCX0KKyNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLworCQkJdHByaW50ZigiU0lHX0lHTiIpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisjaWZuZGVmIFVTRV9QUk9DRlMKKwkJCWlmICh0Y3AtPnVfYXJnWzBdID09IFNJR1RSQVApIHsKKwkJCQl0Y3AtPmZsYWdzIHw9IFRDQl9TSUdUUkFQUEVEOworCQkJCWtpbGwodGNwLT5waWQsIFNJR1NUT1ApOworCQkJfQorI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCX0KKwkJcmV0dXJuIDA7CisJfQorCWVsc2UgeworCQlzd2l0Y2ggKHRjcC0+dV9ydmFsKSB7CisJCSAgICBjYXNlIChpbnQpIFNJR19FUlI6CisJCQl0Y3AtPmF1eHN0ciA9ICJTSUdfRVJSIjsgYnJlYWs7CisJCSAgICBjYXNlIChpbnQpIFNJR19ERkw6CisJCQl0Y3AtPmF1eHN0ciA9ICJTSUdfREZMIjsgYnJlYWs7CisJCSAgICBjYXNlIChpbnQpIFNJR19JR046CisJCQl0Y3AtPmF1eHN0ciA9ICJTSUdfSUdOIjsgYnJlYWs7CisJCSAgICBkZWZhdWx0OgorCQkJdGNwLT5hdXhzdHIgPSBOVUxMOworCQl9CisJCXJldHVybiBSVkFMX0hFWCB8IFJWQUxfU1RSOworCX0KK30KKworaW50CitzeXNfc2lnaG9sZCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRzaWduYWwodGNwLT51X2FyZ1swXSk7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogSEFWRV9TSUdBQ1RJT04gKi8KKworI2lmZGVmIEhBVkVfQU5EUk9JRF9PUworI2RlZmluZSBzaWdjb250ZXh0X3N0cnVjdCBzaWdjb250ZXh0CisjZW5kaWYKKy8vI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKKyNpZmRlZiBMSU5VWAorCitpbnQKK3N5c19zaWdyZXR1cm4odGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmZGVmIEFSTQorCXN0cnVjdCBwdF9yZWdzIHJlZ3M7CisJc3RydWN0IHNpZ2NvbnRleHRfc3RydWN0IHNjOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdGNwLT51X2FyZ1swXSA9IDA7CisKKwkJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIE5VTEwsICh2b2lkICopJnJlZ3MpID09IC0xKQorCQkJcmV0dXJuIDA7CisKKwkJaWYgKHVtb3ZlKHRjcCwgcmVncy5BUk1fc3AsICZzYykgPCAwKQorCQkJcmV0dXJuIDA7CisKKwkJdGNwLT51X2FyZ1swXSA9IDE7CisJCXRjcC0+dV9hcmdbMV0gPSBzYy5vbGRtYXNrOworCX0gZWxzZSB7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKKwkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOworCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworI2VsaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQorCWxvbmcgdXNwOworCXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCBzYzsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRjcC0+dV9hcmdbMF0gPSAwOworCQlpZiAodXBlZWsodGNwLT5waWQsUFRfR1BSMTUsJnVzcCk8MCkKKwkJCXJldHVybiAwOworCQlpZiAodW1vdmUodGNwLCB1c3ArX19TSUdOQUxfRlJBTUVTSVpFLCAmc2MpIDwgMCkKKwkJCXJldHVybiAwOworCQl0Y3AtPnVfYXJnWzBdID0gMTsKKwkJbWVtY3B5KCZ0Y3AtPnVfYXJnWzFdLCZzYy5vbGRtYXNrWzBdLHNpemVvZihzaWdzZXRfdCkpOworCX0gZWxzZSB7CisJCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKKwkJCXJldHVybiAwOworCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsKHNpZ3NldF90ICopJnRjcC0+dV9hcmdbMV0sMCk7CisJCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKKwl9CisJcmV0dXJuIDA7CisjZWxzZQorI2lmZGVmIEkzODYKKwlsb25nIGVzcDsKKwlzdHJ1Y3Qgc2lnY29udGV4dF9zdHJ1Y3Qgc2M7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0Y3AtPnVfYXJnWzBdID0gMDsKKwkJaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlVFU1AsICZlc3ApIDwgMCkKKwkJCXJldHVybiAwOworCQlpZiAodW1vdmUodGNwLCBlc3AsICZzYykgPCAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+dV9hcmdbMF0gPSAxOworCQl0Y3AtPnVfYXJnWzFdID0gc2Mub2xkbWFzazsKKwl9CisJZWxzZSB7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKKwkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOworCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworI2Vsc2UgLyogIUkzODYgKi8KKyNpZmRlZiBJQTY0CisJc3RydWN0IHNpZ2NvbnRleHQgc2M7CisJbG9uZyBzcDsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCS8qIG9mZnNldCBvZiBzaWdjb250ZXh0IGluIHRoZSBrZXJuZWwncyBzaWdmcmFtZSBzdHJ1Y3R1cmU6ICovCisjCQlkZWZpbmUgU0lHRlJBTUVfU0NfT0ZGU0VUCTB4OTAKKwkJdGNwLT51X2FyZ1swXSA9IDA7CisJCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfUjEyLCAmc3ApIDwgMCkKKwkJCXJldHVybiAwOworCQlpZiAodW1vdmUodGNwLCBzcCArIDE2ICsgU0lHRlJBTUVfU0NfT0ZGU0VULCAmc2MpIDwgMCkKKwkJCXJldHVybiAwOworCQl0Y3AtPnVfYXJnWzBdID0gMTsKKwkJbWVtY3B5KHRjcC0+dV9hcmcgKyAxLCAmc2Muc2NfbWFzaywgc2l6ZW9mKHNjLnNjX21hc2spKTsKKwl9CisJZWxzZSB7CisJCXNpZ3NldF90IHNpZ207CisKKwkJbWVtY3B5KCZzaWdtLCB0Y3AtPnVfYXJnICsgMSwgc2l6ZW9mIChzaWdtKSk7CisJCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKKwkJCXJldHVybiAwOworCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsICZzaWdtLCAwKTsKKwkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOworCX0KKwlyZXR1cm4gMDsKKyNlbHNlIC8qICFJQTY0ICovCisjaWZkZWYgUE9XRVJQQworCWxvbmcgZXNwOworCXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCBzYzsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRjcC0+dV9hcmdbMF0gPSAwOworCQlpZiAodXBlZWsodGNwLT5waWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMSwgJmVzcCkgPCAwKQorCQkJcmV0dXJuIDA7CisJCWlmICh1bW92ZSh0Y3AsIGVzcCwgJnNjKSA8IDApCisJCQlyZXR1cm4gMDsKKwkJdGNwLT51X2FyZ1swXSA9IDE7CisJCXRjcC0+dV9hcmdbMV0gPSBzYy5vbGRtYXNrOworCX0KKwllbHNlIHsKKwkJc2lnc2V0X3Qgc2lnbTsKKwkJbG9uZ190b19zaWdzZXQodGNwLT51X2FyZ1sxXSwgJnNpZ20pOworCQl0Y3AtPnVfcnZhbCA9IHRjcC0+dV9lcnJvciA9IDA7CisJCWlmICh0Y3AtPnVfYXJnWzBdID09IDApCisJCQlyZXR1cm4gMDsKKwkJdGNwLT5hdXhzdHIgPSBzcHJpbnRzaWdtYXNrKCJtYXNrIG5vdyAiLCAmc2lnbSwgMCk7CisJCXJldHVybiBSVkFMX05PTkUgfCBSVkFMX1NUUjsKKwl9CisJcmV0dXJuIDA7CisjZWxzZSAvKiAhUE9XRVJQQyAqLworI2lmZGVmIE02OEsKKwlsb25nIHVzcDsKKwlzdHJ1Y3Qgc2lnY29udGV4dCBzYzsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRjcC0+dV9hcmdbMF0gPSAwOworCQlpZiAodXBlZWsodGNwLT5waWQsIDQqUFRfVVNQLCAmdXNwKSA8IDApCisJCQlyZXR1cm4gMDsKKwkJaWYgKHVtb3ZlKHRjcCwgdXNwLCAmc2MpIDwgMCkKKwkJCXJldHVybiAwOworCQl0Y3AtPnVfYXJnWzBdID0gMTsKKwkJdGNwLT51X2FyZ1sxXSA9IHNjLnNjX21hc2s7CisJfQorCWVsc2UgeworCQlzaWdzZXRfdCBzaWdtOworCQlsb25nX3RvX3NpZ3NldCh0Y3AtPnVfYXJnWzFdLCAmc2lnbSk7CisJCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKKwkJCXJldHVybiAwOworCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsICZzaWdtLCAwKTsKKwkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOworCX0KKwlyZXR1cm4gMDsKKyNlbHNlIC8qICFNNjhLICovCisjaWZkZWYgQUxQSEEKKwlsb25nIGZwOworCXN0cnVjdCBzaWdjb250ZXh0X3N0cnVjdCBzYzsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRjcC0+dV9hcmdbMF0gPSAwOworCQlpZiAodXBlZWsodGNwLT5waWQsIFJFR19GUCwgJmZwKSA8IDApCisJCQlyZXR1cm4gMDsKKwkJaWYgKHVtb3ZlKHRjcCwgZnAsICZzYykgPCAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+dV9hcmdbMF0gPSAxOworCQl0Y3AtPnVfYXJnWzFdID0gc2Muc2NfbWFzazsKKwl9CisJZWxzZSB7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMV0sICZzaWdtKTsKKwkJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOworCQlpZiAodGNwLT51X2FyZ1swXSA9PSAwKQorCQkJcmV0dXJuIDA7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygibWFzayBub3cgIiwgJnNpZ20sIDApOworCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworI2Vsc2UKKyNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKwlsb25nIGkxOworCXN0cnVjdCByZWdzIHJlZ3M7CisJbV9zaWdpbmZvX3Qgc2k7CisKKwlpZihwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApIHsKKwkJcGVycm9yKCJzaWdyZXR1cm46IFBUUkFDRV9HRVRSRUdTICIpOworCQlyZXR1cm4gMDsKKwl9CisJaWYoZW50ZXJpbmcodGNwKSkgeworCQl0Y3AtPnVfYXJnWzBdID0gMDsKKwkJaTEgPSByZWdzLnJfbzE7CisJCWlmKHVtb3ZlKHRjcCwgaTEsICZzaSkgPCAwKSB7CisJCQlwZXJyb3IoInNpZ3JldHVybjogdW1vdmUgIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQl0Y3AtPnVfYXJnWzBdID0gMTsKKwkJdGNwLT51X2FyZ1sxXSA9IHNpLnNpX21hc2s7CisJfSBlbHNlIHsKKwkJc2lnc2V0X3Qgc2lnbTsKKwkJbG9uZ190b19zaWdzZXQodGNwLT51X2FyZ1sxXSwgJnNpZ20pOworCQl0Y3AtPnVfcnZhbCA9IHRjcC0+dV9lcnJvciA9IDA7CisJCWlmKHRjcC0+dV9hcmdbMF0gPT0gMCkKKwkJCXJldHVybiAwOworCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsICZzaWdtLCAwKTsKKwkJcmV0dXJuIFJWQUxfTk9ORSB8IFJWQUxfU1RSOworCX0KKwlyZXR1cm4gMDsKKyNlbHNlCisjaWZkZWYgTUlQUworCWxvbmcgc3A7CisJc3RydWN0IHNpZ2NvbnRleHQgc2M7CisKKwlpZihlbnRlcmluZyh0Y3ApKSB7CisJICAJdGNwLT51X2FyZ1swXSA9IDA7CisJCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1NQLCAmc3ApIDwgMCkKKwkJICAJcmV0dXJuIDA7CisJCWlmICh1bW92ZSh0Y3AsIHNwLCAmc2MpIDwgMCkKKwkJICAJcmV0dXJuIDA7CisJCXRjcC0+dV9hcmdbMF0gPSAxOworCQl0Y3AtPnVfYXJnWzFdID0gc2Muc2Nfc2lnc2V0OworCX0gZWxzZSB7CisJICAJdGNwLT51X3J2YWwgPSB0Y3AtPnVfZXJyb3IgPSAwOworCQlpZih0Y3AtPnVfYXJnWzBdID09IDApCisJCSAgCXJldHVybiAwOworCQl0Y3AtPmF1eHN0ciA9IHNwcmludHNpZ21hc2soIm1hc2sgbm93ICIsIHRjcC0+dV9hcmdbMV0pOworCQlyZXR1cm4gUlZBTF9OT05FIHwgUlZBTF9TVFI7CisJfQorCXJldHVybiAwOworI2Vsc2UKKyN3YXJuaW5nIE5vIHN5c19zaWdyZXR1cm4oKSBmb3IgdGhpcyBhcmNoaXRlY3R1cmUKKyN3YXJuaW5nICAgICAgICAgKG5vIHByb2JsZW0sIGp1c3QgYSByZW1pbmRlciA6LSkKKwlyZXR1cm4gMDsKKyNlbmRpZiAvKiBNSVBTICovCisjZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCAqLworI2VuZGlmIC8qIEFMUEhBICovCisjZW5kaWYgLyogIU02OEsgKi8KKyNlbmRpZiAvKiAhUE9XRVJQQyAqLworI2VuZGlmIC8qICFJQTY0ICovCisjZW5kaWYgLyogIUkzODYgKi8KKyNlbmRpZiAvKiBTMzkwICovCit9CisKK2ludAorc3lzX3NpZ2dldG1hc2sodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJc2lnc2V0X3Qgc2lnbTsKKwkJbG9uZ190b19zaWdzZXQodGNwLT51X3J2YWwsICZzaWdtKTsKKwkJdGNwLT5hdXhzdHIgPSBzcHJpbnRzaWdtYXNrKCJtYXNrICIsICZzaWdtLCAwKTsKKwl9CisJcmV0dXJuIFJWQUxfSEVYIHwgUlZBTF9TVFI7Cit9CisKK2ludAorc3lzX3NpZ3N1c3BlbmQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXNpZ3NldF90IHNpZ207CisJCWxvbmdfdG9fc2lnc2V0KHRjcC0+dV9hcmdbMl0sICZzaWdtKTsKKyNpZiAwCisJCS8qIGZpcnN0IHR3byBhcmUgbm90IHJlYWxseSBhcmd1bWVudHMsIGJ1dCBwcmludCB0aGVtIGFueXdheSAqLworCQkvKiBuZXZlcm1pbmQsIHRoZXkgYXJlIGFuIGFuYWNocm9uaXNtIG5vdywgdG9vIGJhZC4uLiAqLworCQl0cHJpbnRmKCIlZCwgJSN4LCAiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKyNlbmRpZgorCQlwcmludHNpZ21hc2soJnNpZ20sIDApOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIExJTlVYICovCisvLyNlbmRpZiAvKiBIQVZFX0FORFJPSURfT1MgKi8KKworI2lmIGRlZmluZWQoU1ZSNCkgfHwgZGVmaW5lZChGUkVFQlNEKQorCitpbnQKK3N5c19zaWdzdXNwZW5kKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlzaWdzZXRfdCBzaWdzZXQ7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmc2lnc2V0KSA8IDApCisJCQl0cHJpbnRmKCJbP10iKTsKKwkJZWxzZQorCQkJcHJpbnRzaWdtYXNrKCZzaWdzZXQsIDApOworCX0KKwlyZXR1cm4gMDsKK30KKyNpZm5kZWYgRlJFRUJTRAorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHVjb250ZXh0X2ZsYWdzW10gPSB7CisJeyBVQ19TSUdNQVNLLAkiVUNfU0lHTUFTSyIJfSwKKwl7IFVDX1NUQUNLLAkiVUNfU1RBQ0siCX0sCisJeyBVQ19DUFUsCSJVQ19DUFUiCX0sCisjaWZkZWYgVUNfRlBVCisJeyBVQ19GUFUsCSJVQ19GUFUiCX0sCisjZW5kaWYKKyNpZmRlZiBVQ19JTlRSCisJeyBVQ19JTlRSLAkiVUNfSU5UUiIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworI2VuZGlmIC8qICFGUkVFQlNEICovCisjZW5kaWYgLyogU1ZSNCB8fCBGUkVFQlNEICovCisKKyNpZiBkZWZpbmVkIFNWUjQgfHwgZGVmaW5lZCBMSU5VWCB8fCBkZWZpbmVkIEZSRUVCU0QKKyNpZiBkZWZpbmVkIExJTlVYICYmICFkZWZpbmVkIFNTX09OU1RBQ0sKKyNkZWZpbmUgU1NfT05TVEFDSyAgICAgIDEKKyNkZWZpbmUgU1NfRElTQUJMRSAgICAgIDIKKyNpZiBfX0dMSUJDX01JTk9SX18gPT0gMAordHlwZWRlZiBzdHJ1Y3QKK3sKKwlfX3B0cl90IHNzX3NwOworCWludCBzc19mbGFnczsKKwlzaXplX3Qgc3Nfc2l6ZTsKK30gc3RhY2tfdDsKKyNlbmRpZgorI2VuZGlmCisjaWZkZWYgRlJFRUJTRAorI2RlZmluZSBzdGFja190IHN0cnVjdCBzaWdhbHRzdGFjaworI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzaWdhbHRzdGFja19mbGFnc1tdID0geworCXsgU1NfT05TVEFDSywJIlNTX09OU1RBQ0siCX0sCisJeyBTU19ESVNBQkxFLAkiU1NfRElTQUJMRSIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKyNlbmRpZgorCisjaWZkZWYgU1ZSNAorc3RhdGljIHZvaWQKK3ByaW50Y29udGV4dCh0Y3AsIHVjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3Vjb250ZXh0X3QgKnVjcDsKK3sKKwl0cHJpbnRmKCJ7Iik7CisJaWYgKCFhYmJyZXYodGNwKSkgeworCQl0cHJpbnRmKCJ1Y19mbGFncz0iKTsKKwkJcHJpbnRmbGFncyh1Y29udGV4dF9mbGFncywgdWNwLT51Y19mbGFncywgIlVDXz8/PyIpOworCQl0cHJpbnRmKCIsIHVjX2xpbms9JSNseCwgIiwgKHVuc2lnbmVkIGxvbmcpIHVjcC0+dWNfbGluayk7CisJfQorCXRwcmludGYoInVjX3NpZ21hc2s9Iik7CisJcHJpbnRzaWdtYXNrKCZ1Y3AtPnVjX3NpZ21hc2ssIDApOworCWlmICghYWJicmV2KHRjcCkpIHsKKwkJdHByaW50ZigiLCB1Y19zdGFjaz17c3Nfc3A9JSNseCwgc3Nfc2l6ZT0lZCwgc3NfZmxhZ3M9IiwKKwkJCSh1bnNpZ25lZCBsb25nKSB1Y3AtPnVjX3N0YWNrLnNzX3NwLAorCQkJdWNwLT51Y19zdGFjay5zc19zaXplKTsKKwkJcHJpbnRmbGFncyhzaWdhbHRzdGFja19mbGFncywgdWNwLT51Y19zdGFjay5zc19mbGFncywgIlNTXz8/PyIpOworCQl0cHJpbnRmKCJ9Iik7CisJfQorCXRwcmludGYoIiwgLi4ufSIpOworfQorCitpbnQKK3N5c19nZXRjb250ZXh0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwl1Y29udGV4dF90IHVjOworCisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAodGNwLT51X2Vycm9yKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlIGlmICghdGNwLT51X2FyZ1swXSkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmdWMpIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJCWVsc2UKKwkJCXByaW50Y29udGV4dCh0Y3AsICZ1Yyk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19zZXRjb250ZXh0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwl1Y29udGV4dF90IHVjOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaWYgKCF0Y3AtPnVfYXJnWzBdKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMF0sICZ1YykgPCAwKQorCQkJdHByaW50Zigiey4uLn0iKTsKKwkJZWxzZQorCQkJcHJpbnRjb250ZXh0KHRjcCwgJnVjKTsKKwl9CisJZWxzZSB7CisJCXRjcC0+dV9ydmFsID0gdGNwLT51X2Vycm9yID0gMDsKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKKwkJCXJldHVybiAwOworCQlyZXR1cm4gUlZBTF9OT05FOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIFNWUjQgKi8KKworI2lmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoRlJFRUJTRCkKKworc3RhdGljIGludAorcHJpbnRfc3RhY2tfdCh0Y3AsIGFkZHIpCitzdHJ1Y3QgdGNiICp0Y3A7Cit1bnNpZ25lZCBsb25nIGFkZHI7Cit7CisJc3RhY2tfdCBzczsKKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmc3MpIDwgMCkKKwkJcmV0dXJuIC0xOworCXRwcmludGYoIntzc19zcD0lI2x4LCBzc19mbGFncz0iLCAodW5zaWduZWQgbG9uZykgc3Muc3Nfc3ApOworCXByaW50ZmxhZ3Moc2lnYWx0c3RhY2tfZmxhZ3MsIHNzLnNzX2ZsYWdzLCAiU1NfPz8/Iik7CisJdHByaW50ZigiLCBzc19zaXplPSVsdX0iLCAodW5zaWduZWQgbG9uZykgc3Muc3Nfc2l6ZSk7CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3NpZ2FsdHN0YWNrKHRjcCkKKwlzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAocHJpbnRfc3RhY2tfdCh0Y3AsIHRjcC0+dV9hcmdbMF0pIDwgMCkKKwkJCXJldHVybiAtMTsKKwl9CisJZWxzZSB7CisJCXRwcmludGYoIiwgIik7CisJCWlmICh0Y3AtPnVfYXJnWzFdID09IDApCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UgaWYgKHByaW50X3N0YWNrX3QodGNwLCB0Y3AtPnVfYXJnWzFdKSA8IDApCisJCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1NJR0FDVElPTgorCitpbnQKK3N5c19zaWdwcm9jbWFzayh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisjaWZkZWYgQUxQSEEKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwoc2lncHJvY21hc2tjbWRzLCB0Y3AtPnVfYXJnWzBdLCAiU0lHXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHNpZ21hc2sodGNwLT51X2FyZ1sxXSwgMCk7CisJfQorCWVsc2UgaWYgKCFzeXNlcnJvcih0Y3ApKSB7CisJCXRjcC0+YXV4c3RyID0gc3ByaW50c2lnbWFzaygib2xkIG1hc2sgIiwgdGNwLT51X3J2YWwsIDApOworCQlyZXR1cm4gUlZBTF9IRVggfCBSVkFMX1NUUjsKKwl9CisjZWxzZSAvKiAhQUxQSEEgKi8KKwlpZiAoZW50ZXJpbmcodGNwKSkgeworI2lmZGVmIFNWUjQKKwkJaWYgKHRjcC0+dV9hcmdbMF0gPT0gMCkKKwkJCXRwcmludGYoIjAiKTsKKwkJZWxzZQorI2VuZGlmIC8qIFNWUjQgKi8KKwkJcHJpbnR4dmFsKHNpZ3Byb2NtYXNrY21kcywgdGNwLT51X2FyZ1swXSwgIlNJR18/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRfc2lnc2V0KHRjcCwgdGNwLT51X2FyZ1sxXSwgMCk7CisJCXRwcmludGYoIiwgIik7CisJfQorCWVsc2UgeworCQlpZiAoIXRjcC0+dV9hcmdbMl0pCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UKKwkJCXByaW50X3NpZ3NldCh0Y3AsIHRjcC0+dV9hcmdbMl0sIDApOworCX0KKyNlbmRpZiAvKiAhQUxQSEEgKi8KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qIEhBVkVfU0lHQUNUSU9OICovCisKK2ludAorc3lzX2tpbGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXRwcmludGYoIiVsZCwgJXMiLCB0Y3AtPnVfYXJnWzBdLCBzaWduYW1lKHRjcC0+dV9hcmdbMV0pKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX2tpbGxwZyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIHN5c19raWxsKHRjcCk7Cit9CisKKyNpZmRlZiBMSU5VWAoraW50CitzeXNfdGdraWxsKHRjcCkKKwlzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJWxkLCAlbGQsICVzIiwKKwkJCXRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0sIHNpZ25hbWUodGNwLT51X2FyZ1syXSkpOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQKK3N5c19zaWdwZW5kaW5nKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlzaWdzZXRfdCBzaWdzZXQ7CisKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlIGlmIChjb3B5X3NpZ3NldCh0Y3AsIHRjcC0+dV9hcmdbMF0sICZzaWdzZXQpIDwgMCkKKwkJCXRwcmludGYoIls/XSIpOworCQllbHNlCisJCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMCk7CisJfQorCXJldHVybiAwOworfQorCitpbnQgc3lzX3NpZ3dhaXQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXNpZ3NldF90IHNpZ3NldDsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWlmIChjb3B5X3NpZ3NldCh0Y3AsIHRjcC0+dV9hcmdbMF0sICZzaWdzZXQpIDwgMCkKKwkJCXRwcmludGYoIls/XSIpOworCQllbHNlCisJCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMCk7CisJfQorCWVsc2UgeworCQlpZiAoIXN5c2Vycm9yKHRjcCkpIHsKKwkJCXRjcC0+YXV4c3RyID0gc2lnbmFsZW50W3RjcC0+dV9ydmFsXTsKKwkJCXJldHVybiBSVkFMX0RFQ0lNQUwgfCBSVkFMX1NUUjsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIExJTlVYCisKKwlpbnQKK3N5c19ydF9zaWdwcm9jbWFzayh0Y3ApCisJc3RydWN0IHRjYiAqdGNwOworeworCXNpZ3NldF90IHNpZ3NldDsKKworCS8qIE5vdGU6IGFyZ1szXSBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBzaWdzZXQuICovCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHNpZ3Byb2NtYXNrY21kcywgdGNwLT51X2FyZ1swXSwgIlNJR18/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKCF0Y3AtPnVfYXJnWzFdKQorCQkJdHByaW50ZigiTlVMTCwgIik7CisJCWVsc2UgaWYgKGNvcHlfc2lnc2V0X2xlbih0Y3AsIHRjcC0+dV9hcmdbMV0sICZzaWdzZXQsIHRjcC0+dV9hcmdbM10pIDwgMCkKKwkJCXRwcmludGYoIiUjbHgsICIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlIHsKKwkJCXByaW50c2lnbWFzaygmc2lnc2V0LCAxKTsKKwkJCXRwcmludGYoIiwgIik7CisJCX0KKwl9CisJZWxzZSB7CisJCWlmICghdGNwLT51X2FyZ1syXSkKKworCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIGlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlIGlmIChjb3B5X3NpZ3NldF9sZW4odGNwLCB0Y3AtPnVfYXJnWzJdLCAmc2lnc2V0LCB0Y3AtPnVfYXJnWzNdKSA8IDApCisJCQl0cHJpbnRmKCJbP10iKTsKKwkJZWxzZQorCQkJcHJpbnRzaWdtYXNrKCZzaWdzZXQsIDEpOworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKworCisvKiBTdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgYWN0aW9uIHRvIGJlIHRha2VuIHdoZW4gYSBzaWduYWwgYXJyaXZlcy4gICovCitzdHJ1Y3QgbmV3X3NpZ2FjdGlvbgoreworCXVuaW9uCisJeworCQlfX3NpZ2hhbmRsZXJfdCBfX3NhX2hhbmRsZXI7CisJCXZvaWQgKCpfX3NhX3NpZ2FjdGlvbikgKGludCwgc2lnaW5mb190ICosIHZvaWQgKik7CisJfQorCV9fc2lnYWN0aW9uX2hhbmRsZXI7CisJdW5zaWduZWQgbG9uZyBzYV9mbGFnczsKKwl2b2lkICgqc2FfcmVzdG9yZXIpICh2b2lkKTsKKwl1bnNpZ25lZCBsb25nIGludCBzYV9tYXNrWzJdOworfTsKKworCisJaW50CitzeXNfcnRfc2lnYWN0aW9uKHRjcCkKKwlzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc3RydWN0IG5ld19zaWdhY3Rpb24gc2E7CisJc2lnc2V0X3Qgc2lnc2V0OworCWxvbmcgYWRkcjsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50c2lnbmFsKHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlhZGRyID0gdGNwLT51X2FyZ1sxXTsKKwl9IGVsc2UKKwkJYWRkciA9IHRjcC0+dV9hcmdbMl07CisJaWYgKGFkZHIgPT0gMCkKKwkJdHByaW50ZigiTlVMTCIpOworCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwllbHNlIGlmICh1bW92ZSh0Y3AsIGFkZHIsICZzYSkgPCAwKQorCQl0cHJpbnRmKCJ7Li4ufSIpOworCWVsc2UgeworCQlzd2l0Y2ggKChsb25nKSBzYS5fX3NpZ2FjdGlvbl9oYW5kbGVyLl9fc2FfaGFuZGxlcikgeworCQkJY2FzZSAobG9uZykgU0lHX0VSUjoKKwkJCQl0cHJpbnRmKCJ7U0lHX0VSUn0iKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgKGxvbmcpIFNJR19ERkw6CisJCQkJdHByaW50Zigie1NJR19ERkx9Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIChsb25nKSBTSUdfSUdOOgorCQkJCXRwcmludGYoIntTSUdfSUdOfSIpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQl0cHJpbnRmKCJ7JSNseCwgIiwKKwkJCQkJCShsb25nKSBzYS5fX3NpZ2FjdGlvbl9oYW5kbGVyLl9fc2FfaGFuZGxlcik7CisJCQkJc2lnZW1wdHlzZXQoJnNpZ3NldCk7CisjaWZkZWYgTElOVVhTUEFSQworCQkJCWlmICh0Y3AtPnVfYXJnWzRdIDw9IHNpemVvZihzaWdzZXQpKQorCQkJCQltZW1jcHkoJnNpZ3NldCwgJnNhLnNhX21hc2ssIHRjcC0+dV9hcmdbNF0pOworI2Vsc2UKKwkJCQlpZiAodGNwLT51X2FyZ1szXSA8PSBzaXplb2Yoc2lnc2V0KSkKKwkJCQkJbWVtY3B5KCZzaWdzZXQsICZzYS5zYV9tYXNrLCB0Y3AtPnVfYXJnWzNdKTsKKyNlbmRpZgorCQkJCWVsc2UKKwkJCQkJbWVtY3B5KCZzaWdzZXQsICZzYS5zYV9tYXNrLCBzaXplb2Yoc2lnc2V0KSk7CisJCQkJcHJpbnRzaWdtYXNrKCZzaWdzZXQsIDEpOworCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnRmbGFncyhzaWdhY3RfZmxhZ3MsIHNhLnNhX2ZsYWdzLCAiU0FfPz8/Iik7CisjaWZkZWYgU0FfUkVTVE9SRVIKKwkJCQlpZiAoc2Euc2FfZmxhZ3MgJiBTQV9SRVNUT1JFUikKKwkJCQkJdHByaW50ZigiLCAlcCIsIHNhLnNhX3Jlc3RvcmVyKTsKKyNlbmRpZgorCQkJCXRwcmludGYoIn0iKTsKKwkJfQorCX0KKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJdHByaW50ZigiLCAiKTsKKwllbHNlCisjaWZkZWYgTElOVVhTUEFSQworCQl0cHJpbnRmKCIsICUjbHgsICVsdSIsIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbNF0pOworI2VsaWYgZGVmaW5lZChBTFBIQSkKKwkJdHByaW50ZigiLCAlbHUsICUjbHgiLCB0Y3AtPnVfYXJnWzNdLCB0Y3AtPnVfYXJnWzRdKTsKKyNlbHNlCisJCXRwcmludGYoIiwgJWx1IiwgYWRkciA9IHRjcC0+dV9hcmdbM10pOworI2VuZGlmCisJcmV0dXJuIDA7Cit9CisKKwlpbnQKK3N5c19ydF9zaWdwZW5kaW5nKHRjcCkKKwlzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJc2lnc2V0X3Qgc2lnc2V0OworCisJaWYgKGV4aXRpbmcodGNwKSkgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJZWxzZSBpZiAoY29weV9zaWdzZXRfbGVuKHRjcCwgdGNwLT51X2FyZ1swXSwKKwkJCQkJICZzaWdzZXQsIHRjcC0+dV9hcmdbMV0pIDwgMCkKKwkJCXRwcmludGYoIls/XSIpOworCQllbHNlCisJCQlwcmludHNpZ21hc2soJnNpZ3NldCwgMSk7CisJfQorCXJldHVybiAwOworfQorCWludAorc3lzX3J0X3NpZ3N1c3BlbmQodGNwKQorCXN0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlzaWdzZXRfdCBzaWdtOworCQlpZiAoY29weV9zaWdzZXRfbGVuKHRjcCwgdGNwLT51X2FyZ1swXSwgJnNpZ20sIHRjcC0+dV9hcmdbMV0pIDwgMCkKKwkJCXRwcmludGYoIls/XSIpOworCQllbHNlCisJCQlwcmludHNpZ21hc2soJnNpZ20sIDEpOworCX0KKwlyZXR1cm4gMDsKK30KKwlpbnQKK3N5c19ydF9zaWdxdWV1ZWluZm8odGNwKQorCXN0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlzaWdpbmZvX3Qgc2k7CisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50c2lnbmFsKHRjcC0+dV9hcmdbMV0pOworCQl0cHJpbnRmKCIsICIpOworCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmc2kpIDwgMCkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZQorCQkJcHJpbnRzaWdpbmZvKCZzaSwgdmVyYm9zZSAodGNwKSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQgc3lzX3J0X3NpZ3RpbWVkd2FpdCh0Y3ApCisJc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXNpZ3NldF90IHNpZ3NldDsKKworCQlpZiAoY29weV9zaWdzZXRfbGVuKHRjcCwgdGNwLT51X2FyZ1swXSwKKwkJCQkgICAgJnNpZ3NldCwgdGNwLT51X2FyZ1szXSkgPCAwKQorCQkJdHByaW50ZigiWz9dIik7CisJCWVsc2UKKwkJCXByaW50c2lnbWFzaygmc2lnc2V0LCAxKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9CisJZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMF0pOworCQllbHNlIHsKKwkJCXNpZ2luZm9fdCBzaTsKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMV0sICZzaSkgPCAwKQorCQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCWVsc2UKKwkJCQlwcmludHNpZ2luZm8oJnNpLCB2ZXJib3NlICh0Y3ApKTsKKwkJCS8qIFhYWCBGb3Igbm93ICovCisJCQl0cHJpbnRmKCIsICUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJCXRwcmludGYoIiwgJWQiLCAoaW50KSB0Y3AtPnVfYXJnWzNdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK307CisKKyNlbmRpZiAvKiBMSU5VWCAqLwpkaWZmIC0tZ2l0IGEvc2lnbmFsZW50LnNoIGIvc2lnbmFsZW50LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxYzBhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zaWduYWxlbnQuc2gKQEAgLTAsMCArMSw1NSBAQAorIyEvYmluL3NoCisjIENvcHlyaWdodCAoYykgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyMgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisjIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyMgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorIyBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyMgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMKKyMJJElkOiBzaWduYWxlbnQuc2gsdiAxLjEuMS4xIDE5OTkvMDIvMTkgMDA6MjI6Mjggd2ljaGVydCBFeHAgJAorCitjYXQgJCogfAorCXNlZCAtbiAtZSAncy9cL1wqLipcKlwvLyAvJyAtZSAncy9eI1sgCV0qZGVmaW5lWyAJXVsgCV0qU0lHXChbXl8gCV0qXClbIAldWyAJXSpcKFswLTldWzAtOV0qXClbIAldKiQvXDEgXDIvcCcgfAorCXNvcnQgKzFuIHwKKwlhd2sgJworCUJFR0lOIHsKKwkJdGFicyA9ICJcdFx0XHRcdFx0XHRcdFx0IgorCQlzaWduYWwgPSAtMTsKKwl9CisJJDIgPD0gMjU2IHsKKwkJaWYgKHNpZ25hbCA9PSAkMikKKwkJCW5leHQKKwkJd2hpbGUgKCsrc2lnbmFsIDwgJDIpIHsKKwkJCW4gPSAiXCJTSUdfIiBzaWduYWwgIlwiIgorCQkJcyA9ICJcdCIgbiAiLCIKKwkJCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAxNi84IC0gaW50KChsZW5ndGgobikgKyAxKS84KSkKKwkJCXMgPSBzICIvKiAiIHNpZ25hbCAiICovIgorCQkJcHJpbnQgcworCQl9CisJCWlmIChzaWduYWwgPT0gJDIpCisJCQluID0gIlwiU0lHIiAkMSAiXCIiCisJCW4gPSAiXCJTSUciICQxICJcIiIKKwkJcyA9ICJcdCIgbiAiLCIKKwkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDE2LzggLSBpbnQoKGxlbmd0aChuKSArIDEpLzgpKQorCQlzID0gcyAiLyogIiBzaWduYWwgIiAqLyIKKwkJcHJpbnQgcworCX0KKwknCmRpZmYgLS1naXQgYS9zb2NrLmMgYi9zb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk1YmE0YQotLS0gL2Rldi9udWxsCisrKyBiL3NvY2suYwpAQCAtMCwwICsxLDI3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogc29jay5jLHYgMS4xMSAyMDA1LzA2LzAxIDE5OjAyOjM3IHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkZWZzLmgiCisKKyNpZmRlZiBMSU5VWAorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zb2NraW9zLmg+CisjZWxzZQorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2lvLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKworI2lmIGRlZmluZWQgKEFMUEhBKSB8fCBkZWZpbmVkKFNIKSB8fCBkZWZpbmVkKFNINjQpCisjaWZkZWYgSEFWRV9TWVNfSU9DVExfSAorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2VsaWYgZGVmaW5lZChIQVZFX0lPQ1RMU19IKQorI2luY2x1ZGUgPGlvY3Rscy5oPgorI2VuZGlmCisjZW5kaWYKKyNpbmNsdWRlIDxuZXQvaWYuaD4KKworZXh0ZXJuIGNvbnN0IHN0cnVjdCB4bGF0IGFkZHJmYW1zW107CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBpZmZmbGFnc1tdID0geworCXsgSUZGX1VQLAkJIklGRl9VUCIJCX0sCisJeyBJRkZfQlJPQURDQVNULAkiSUZGX0JST0FEQ0FTVCIJCX0sCisJeyBJRkZfREVCVUcsCQkiSUZGX0RFQlVHIgkJfSwKKwl7IElGRl9MT09QQkFDSywJCSJJRkZfTE9PUEJBQ0siCQl9LAorCXsgSUZGX1BPSU5UT1BPSU5ULAkiSUZGX1BPSU5UT1BPSU5UIgl9LAorCXsgSUZGX05PVFJBSUxFUlMsCSJJRkZfTk9UUkFJTEVSUyIJfSwKKwl7IElGRl9SVU5OSU5HLAkJIklGRl9SVU5OSU5HIgkJfSwKKwl7IElGRl9OT0FSUCwJCSJJRkZfTk9BUlAiCQl9LAorCXsgSUZGX1BST01JU0MsCQkiSUZGX1BST01JU0MiCQl9LAorCXsgSUZGX0FMTE1VTFRJLAkJIklGRl9BTExNVUxUSSIJCX0sCisJeyBJRkZfTUFTVEVSLAkJIklGRl9NQVNURVIiCQl9LAorCXsgSUZGX1NMQVZFLAkJIklGRl9TTEFWRSIJCX0sCisJeyBJRkZfTVVMVElDQVNULAkiSUZGX01VTFRJQ0FTVCIJCX0sCisJeyBJRkZfUE9SVFNFTCwJCSJJRkZfUE9SVFNFTCIJCX0sCisJeyBJRkZfQVVUT01FRElBLAkiSUZGX0FVVE9NRURJQSIJCX0sCisJeyAwLAkJCU5VTEwJCQl9Cit9OworCisKK3N0YXRpYyB2b2lkCitwcmludF9hZGRyKHRjcCwgYWRkciwgaWZyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworc3RydWN0IGlmcmVxICppZnI7Cit7CisJaWYgKGlmci0+aWZyX2FkZHIuc2FfZmFtaWx5ID09IEFGX0lORVQpIHsKKwkJc3RydWN0IHNvY2thZGRyX2luICpzaW5wOworCQlzaW5wID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSAmaWZyLT5pZnJfYWRkcjsKKwkJdHByaW50ZigiaW5ldF9hZGRyKFwiJXNcIikiLCBpbmV0X250b2Eoc2lucC0+c2luX2FkZHIpKTsKKwl9IGVsc2UKKwkJcHJpbnRzdHIodGNwLCBhZGRyLCBzaXplb2YoaWZyLT5pZnJfYWRkci5zYV9kYXRhKSk7Cit9CisKK2ludAorc29ja19pb2N0bChzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgY29kZSwgbG9uZyBhcmcpCit7CisJc3RydWN0IGlmcmVxIGlmcjsKKwlzdHJ1Y3QgaWZjb25mIGlmYzsKKwljb25zdCBjaGFyICpzdHIgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgKmJ5dGVzOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaWYgKGNvZGUgPT0gU0lPQ0dJRkNPTkYpIHsKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbMl0sICZpZmMpID49IDAKKwkJCSAgICAmJiBpZmMuaWZjX2J1ZiA9PSBOVUxMKQorCQkJCXRwcmludGYoIiwgeyVkIC0+ICIsIGlmYy5pZmNfbGVuKTsKKwkJCWVsc2UKKwkJCQl0cHJpbnRmKCIsIHsiKTsKKwkJfQorCQlyZXR1cm4gMDsKKwl9CisKKwlzd2l0Y2ggKGNvZGUpIHsKKyNpZmRlZiBTSU9DU0hJV0FUCisJY2FzZSBTSU9DU0hJV0FUOgorI2VuZGlmCisjaWZkZWYgU0lPQ0dISVdBVAorCWNhc2UgU0lPQ0dISVdBVDoKKyNlbmRpZgorI2lmZGVmIFNJT0NTTE9XQVQKKwljYXNlIFNJT0NTTE9XQVQ6CisjZW5kaWYKKyNpZmRlZiBTSU9DR0xPV0FUCisJY2FzZSBTSU9DR0xPV0FUOgorI2VuZGlmCisjaWZkZWYgRklPU0VUT1dOCisJY2FzZSBGSU9TRVRPV046CisjZW5kaWYKKyNpZmRlZiBGSU9HRVRPV04KKwljYXNlIEZJT0dFVE9XTjoKKyNlbmRpZgorI2lmZGVmIFNJT0NTUEdSUAorCWNhc2UgU0lPQ1NQR1JQOgorI2VuZGlmCisjaWZkZWYgU0lPQ0dQR1JQCisJY2FzZSBTSU9DR1BHUlA6CisjZW5kaWYKKyNpZmRlZiBTSU9DQVRNQVJLCisJY2FzZSBTSU9DQVRNQVJLOgorI2VuZGlmCisJCXByaW50bnVtKHRjcCwgYXJnLCAiLCAlI2QiKTsKKwkJcmV0dXJuIDE7CisjaWZkZWYgTElOVVgKKwljYXNlIFNJT0NHSUZOQU1FOgorCWNhc2UgU0lPQ0dJRklOREVYOgorCWNhc2UgU0lPQ0dJRkFERFI6CisJY2FzZSBTSU9DR0lGRFNUQUREUjoKKwljYXNlIFNJT0NHSUZCUkRBRERSOgorCWNhc2UgU0lPQ0dJRk5FVE1BU0s6CisJY2FzZSBTSU9DR0lGRkxBR1M6CisJY2FzZSBTSU9DR0lGTUVUUklDOgorCWNhc2UgU0lPQ0dJRk1UVToKKwljYXNlIFNJT0NHSUZTTEFWRToKKwljYXNlIFNJT0NHSUZIV0FERFI6CisJY2FzZSBTSU9DR0lGVFhRTEVOOgorCWNhc2UgU0lPQ0dJRk1BUDoKKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJmlmcikgPCAwKQorCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCWlmIChjb2RlID09IFNJT0NHSUZOQU1FKQorCQkJCXRwcmludGYoIiwge2lmcl9pbmRleD0lZCwgaWZyX25hbWU9Pz8/fSIsIGlmci5pZnJfaWZpbmRleCk7CisJCQllbHNlCisJCQkJdHByaW50ZigiLCB7aWZyX25hbWU9XCIlc1wiLCA/Pz99IiwgaWZyLmlmcl9uYW1lKTsKKwkJfSBlbHNlIGlmIChjb2RlID09IFNJT0NHSUZOQU1FKQorCQkJdHByaW50ZigiLCB7aWZyX2luZGV4PSVkLCBpZnJfbmFtZT1cIiVzXCJ9IiwKKwkJCQlpZnIuaWZyX2lmaW5kZXgsIGlmci5pZnJfbmFtZSk7CisJCWVsc2UgeworCQkJdHByaW50ZigiLCB7aWZyX25hbWU9XCIlc1wiLCAiLCBpZnIuaWZyX25hbWUpOworCQkJc3dpdGNoIChjb2RlKSB7CisJCQljYXNlIFNJT0NHSUZJTkRFWDoKKwkJCQl0cHJpbnRmKCJpZnJfaW5kZXg9JWQiLCBpZnIuaWZyX2lmaW5kZXgpOworCQkJCWJyZWFrOworCQkJY2FzZSBTSU9DR0lGQUREUjoKKwkJCQlzdHIgPSAiaWZyX2FkZHIiOworCQkJY2FzZSBTSU9DR0lGRFNUQUREUjoKKwkJCQlpZiAoc3RyID09IE5VTEwpCisJCQkJCXN0ciA9ICJpZnJfZHN0YWRkciI7CisJCQljYXNlIFNJT0NHSUZCUkRBRERSOgorCQkJCWlmIChzdHIgPT0gTlVMTCkKKwkJCQkJc3RyID0gImlmcl9icm9hZGFkZHIiOworCQkJY2FzZSBTSU9DR0lGTkVUTUFTSzoKKwkJCQlpZiAoc3RyID09IE5VTEwpCisJCQkJCXN0ciA9ICJpZnJfbmV0bWFzayI7CisJCQkJdHByaW50ZigiJXM9eyIsIHN0cik7CisJCQkJcHJpbnR4dmFsKGFkZHJmYW1zLAorCQkJCQkgIGlmci5pZnJfYWRkci5zYV9mYW1pbHksCisgICAgICAgICAgICAgICAgICAgIAkJCSAgIkFGXz8/PyIpOworCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnRfYWRkcih0Y3AsICgobG9uZykgdGNwLT51X2FyZ1syXQorCQkJCQkJICsgb2Zmc2V0b2YgKHN0cnVjdCBpZnJlcSwKKwkJCQkJCQkgICAgIGlmcl9hZGRyLnNhX2RhdGEpKSwKKwkJCQkJICAgJmlmcik7CisJCQkJdHByaW50ZigifSIpOworCQkJCWJyZWFrOworCQkJY2FzZSBTSU9DR0lGSFdBRERSOgorCQkJCS8qIFhYWCBBcmUgdGhlcmUgb3RoZXIgaGFyZHdhcmUgYWRkcmVzc2VzCisJCQkJICAgdGhhbiA2LWJ5dGUgTUFDcz8gICovCisJCQkJYnl0ZXMgPSAodW5zaWduZWQgY2hhciAqKSAmaWZyLmlmcl9od2FkZHIuc2FfZGF0YTsKKwkJCQl0cHJpbnRmKCJpZnJfaHdhZGRyPSUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4IiwKKwkJCQkJYnl0ZXNbMF0sIGJ5dGVzWzFdLCBieXRlc1syXSwKKwkJCQkJYnl0ZXNbM10sIGJ5dGVzWzRdLCBieXRlc1s1XSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFNJT0NHSUZGTEFHUzoKKwkJCQl0cHJpbnRmKCJpZnJfZmxhZ3M9Iik7CisJCQkJcHJpbnRmbGFncyhpZmZmbGFncywgaWZyLmlmcl9mbGFncywgIklGRl8/Pz8iKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgU0lPQ0dJRk1FVFJJQzoKKwkJCQl0cHJpbnRmKCJpZnJfbWV0cmljPSVkIiwgaWZyLmlmcl9tZXRyaWMpOworCQkJCWJyZWFrOworCQkJY2FzZSBTSU9DR0lGTVRVOgorCQkJCXRwcmludGYoImlmcl9tdHU9JWQiLCBpZnIuaWZyX210dSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFNJT0NHSUZTTEFWRToKKwkJCQl0cHJpbnRmKCJpZnJfc2xhdmU9XCIlc1wiIiwgaWZyLmlmcl9zbGF2ZSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFNJT0NHSUZUWFFMRU46CisJCQkJdHByaW50ZigiaWZyX3FsZW49JWQiLCBpZnIuaWZyX3FsZW4pOworCQkJCWJyZWFrOworCQkJY2FzZSBTSU9DR0lGTUFQOgorCQkJCXRwcmludGYoImlmcl9tYXA9e21lbV9zdGFydD0lI2x4LCAiCisJCQkJCSJtZW1fZW5kPSUjbHgsIGJhc2VfYWRkcj0lI3gsICIKKwkJCQkJImlycT0ldSwgZG1hPSV1LCBwb3J0PSV1fSIsCisJCQkJCWlmci5pZnJfbWFwLm1lbV9zdGFydCwKKwkJCQkJaWZyLmlmcl9tYXAubWVtX2VuZCwKKwkJCQkJKHVuc2lnbmVkKSBpZnIuaWZyX21hcC5iYXNlX2FkZHIsCisJCQkJCSh1bnNpZ25lZCkgaWZyLmlmcl9tYXAuaXJxLAorCQkJCQkodW5zaWduZWQpIGlmci5pZnJfbWFwLmRtYSwKKwkJCQkJKHVuc2lnbmVkKSBpZnIuaWZyX21hcC5wb3J0KTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCXRwcmludGYoIn0iKTsKKwkJfQorCQlyZXR1cm4gMTsKKwljYXNlIFNJT0NHSUZDT05GOgorCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmaWZjKSA8IDApIHsKKwkJCXRwcmludGYoIj8/P30iKTsKKwkJCXJldHVybiAxOworCQl9CisJCXRwcmludGYoIiVkLCAiLCBpZmMuaWZjX2xlbik7CisgICAgICAgICAgICAgICAgaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiVseCIsICh1bnNpZ25lZCBsb25nKSBpZmMuaWZjX2J1Zik7CisJCX0gZWxzZSBpZiAoaWZjLmlmY19idWYgPT0gTlVMTCkgeworCQkJdHByaW50ZigiTlVMTCIpOworCQl9IGVsc2UgeworCQkJaW50IGk7CisJCQl1bnNpZ25lZCBuaWZyYSA9IGlmYy5pZmNfbGVuIC8gc2l6ZW9mKHN0cnVjdCBpZnJlcSk7CisJCQlzdHJ1Y3QgaWZyZXEgaWZyYVtuaWZyYV07CisJCQl1bW92ZW4odGNwLCAodW5zaWduZWQgbG9uZykgaWZjLmlmY19idWYsIHNpemVvZihpZnJhKSwKKwkJCSAgICAgICAoY2hhciAqKSBpZnJhKTsKKwkJCXRwcmludGYoInsiKTsKKwkJCWZvciAoaSA9IDA7IGkgPCBuaWZyYTsgKytpICkgeworCQkJCWlmIChpID4gMCkKKwkJCQkJdHByaW50ZigiLCAiKTsKKwkJCQl0cHJpbnRmKCJ7XCIlc1wiLCB7IiwKKwkJCQkJaWZyYVtpXS5pZnJfbmFtZSk7CisJCQkJaWYgKHZlcmJvc2UodGNwKSkgeworCQkJCQlwcmludHh2YWwoYWRkcmZhbXMsCisJCQkJCQkgIGlmcmFbaV0uaWZyX2FkZHIuc2FfZmFtaWx5LAorCQkJCQkJICAiQUZfPz8/Iik7CisJCQkJCXRwcmludGYoIiwgIik7CisJCQkJCXByaW50X2FkZHIodGNwLCAoKGxvbmcpIHRjcC0+dV9hcmdbMl0KKwkJCQkJCQkgKyBvZmZzZXRvZiAoc3RydWN0IGlmcmVxLAorCQkJCQkJCQkgICAgIGlmcl9hZGRyLnNhX2RhdGEpCisJCQkJCQkJICsgKChjaGFyICopICZpZnJhW2ldCisJCQkJCQkJICAgIC0gKGNoYXIgKikgJmlmcmFbMF0pKSwKKwkJCQkJCSAgICZpZnJhW2ldKTsKKwkJCQl9IGVsc2UKKwkJCQkJdHByaW50ZigiLi4uIik7CisJCQkJdHByaW50ZigifX0iKTsKKwkJCX0KKwkJCXRwcmludGYoIn0iKTsKKwkJfQorCQl0cHJpbnRmKCJ9Iik7CisJCXJldHVybiAxOworI2VuZGlmCisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3RyYWNlLWdyYXBoIGIvc3RyYWNlLWdyYXBoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwYTNmZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UtZ3JhcGgKQEAgLTAsMCArMSwzMzkgQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIFRoaXMgc2NyaXB0IHByb2Nlc3NlcyBzdHJhY2UgLWYgb3V0cHV0LiAgSXQgZGlzcGxheXMgYSBncmFwaCBvZiBpbnZva2VkCisjIHN1YnByb2Nlc3NlcywgYW5kIGlzIHVzZWZ1bCBmb3IgZmluZGluZyBvdXQgd2hhdCBjb21wbGV4IGNvbW1hbmRzIGRvLgorCisjIFlvdSB3aWxsIHByb2JhYmx5IHdhbnQgdG8gaW52b2tlIHN0cmFjZSB3aXRoIC1xIGFzIHdlbGwsIGFuZCB3aXRoCisjIC1zIDEwMCB0byBnZXQgY29tcGxldGUgZmlsZW5hbWVzLgorCisjIFRoZSBzY3JpcHQgY2FuIGFsc28gaGFuZGxlIHRoZSBvdXRwdXQgd2l0aCBzdHJhY2UgLXQsIC10dCwgb3IgLXR0dC4KKyMgSXQgd2lsbCBhZGQgZWxhcHNlZCB0aW1lIGZvciBlYWNoIHByb2Nlc3MgaW4gdGhhdCBjYXNlLgorCisjIFRoaXMgc2NyaXB0IGlzIENvcHlyaWdodCAoQykgMTk5OCBieSBSaWNoYXJkIEJyYWFrbWFuIDxkYXJrQHhzNGFsbC5ubD4uCisKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisjICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorIyBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisjIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisjIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyMgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisjIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisjCSRJZDogc3RyYWNlLWdyYXBoLHYgMS4yIDE5OTkvMDgvMzAgMjM6MjY6NTMgd2ljaGVydCBFeHAgJAorCitteSAldW5maW5pc2hlZDsKKworIyBTY2FsZXMgZm9yIHN0cmFjZSBzbG93ZG93bi4gIE1ha2UgY29uZmlndXJhYmxlIQorbXkgJHNjYWxlX2ZhY3RvciA9IDMuNTsKKword2hpbGUgKDw+KSB7CisgICAgbXkgKCRwaWQsICRjYWxsLCAkYXJncywgJHJlc3VsdCwgJHRpbWUpOworICAgIGNob3A7CisKKyAgICBzL14oXGQrKVxzKy8vOworICAgICRwaWQgPSAkMTsKKworICAgIGlmIChzL14oXGRcZCk6KFxkXGQpOihcZFxkKSg/OlwuKFxkXGRcZFxkXGRcZCkpPyAvLykgeworCSR0aW1lID0gJDEgKiAzNjAwICsgJDIgKiA2MCArICQzOworCWlmIChkZWZpbmVkICQ0KSB7CisJICAgICR0aW1lID0gJHRpbWUgKyAkNCAvIDEwMDAwMDA7CisJICAgICRmbG9hdGZvcm0gPSAxOworCX0KKyAgICB9IGVsc2lmIChzL14oXGQrKVwuKFxkXGRcZFxkXGRcZCkgLy8pIHsKKwkkdGltZSA9ICQxICsgKCQyIC8gMTAwMDAwMCk7CisJJGZsb2F0Zm9ybSA9IDE7CisgICAgfQorCisgICAgaWYgKHMvIDx1bmZpbmlzaGVkIC4uLj4kLy8pIHsKKwkkdW5maW5pc2hlZHskcGlkfSA9ICRfOworCW5leHQ7CisgICAgfQorCisgICAgaWYgKHMvXjwuLi4gXFMrIHJlc3VtZWQ+IC8vKSB7CisJdW5sZXNzIChleGlzdHMgJHVuZmluaXNoZWR7JHBpZH0pIHsKKwkgICAgcHJpbnQgU1RERVJSICIkMDogJEFSR1Y6IGNhbm5vdCBmaW5kIHN0YXJ0IG9mIHJlc3VtZWQgY2FsbCBvbiBsaW5lICQuIjsKKwkgICAgbmV4dDsKKwl9CisJJF8gPSAkdW5maW5pc2hlZHskcGlkfSAuICRfOworCWRlbGV0ZSAkdW5maW5pc2hlZHskcGlkfTsKKyAgICB9CisKKyAgICBpZiAoL14tLS0gU0lHKFxTKykgXCguKlwpIC0tLSQvKSB7CisJIyAkcGlkIHJlY2VpdmVkIHNpZ25hbCAkMQorCSMgY3VycmVudGx5IHdlIGRvbid0IGRvIGFueXRoaW5nIHdpdGggdGhpcworCW5leHQ7CisgICAgfQorCisgICAgaWYgKC9eXCtcK1wrIGtpbGxlZCBieSBTSUcoXFMrKSBcK1wrXCskLykgeworCSMgJHBpZCByZWNlaXZlZCBzaWduYWwgJDEKKwloYW5kbGVfa2lsbGVkKCRwaWQsICR0aW1lKTsKKwluZXh0OworICAgIH0KKworICAgICgkY2FsbCwgJGFyZ3MsICRyZXN1bHQpID0gLyhcUyspXCgoLiopXClccys9ICguKikkLzsKKyAgICB1bmxlc3MgKGRlZmluZWQgJHJlc3VsdCkgeworCXByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogY2Fubm90IHBhcnNlIGxpbmUuXG4iOworCW5leHQ7CisgICAgfQorCisgICAgaGFuZGxlX3RyYWNlKCRwaWQsICRjYWxsLCAkYXJncywgJHJlc3VsdCwgJHRpbWUpOworfQorCitkaXNwbGF5X3RyYWNlKCk7CisKK2V4aXQgMDsKKworc3ViIHBhcnNlX3N0ciB7CisgICAgbXkgKCRpbikgPSBAXzsKKyAgICBteSAkcmVzdWx0ID0gIiI7CisKKyAgICB3aGlsZSAoMSkgeworCWlmICgkaW4gPX4gcy9eXFwoLikvLykgeworCSAgICAkcmVzdWx0IC49ICQxOworCX0gZWxzaWYgKCRpbiA9fiBzL15cIi8vKSB7CisJICAgIGlmICgkaW4gPX4gcy9eXC5cLlwuLy8pIHsKKwkJcmV0dXJuICgiJHJlc3VsdC4uLiIsICRpbik7CisJICAgIH0KKwkgICAgcmV0dXJuICgkcmVzdWx0LCAkaW4pOworCX0gZWxzaWYgKCRpbiA9fiBzLyhbXlxcXCJdKikvLykgeworCSAgICAkcmVzdWx0IC49ICQxOworCX0gZWxzZSB7CisJICAgIHJldHVybiAodW5kZWYsICRpbik7CisJfQorICAgIH0KK30gICAgCisKK3N1YiBwYXJzZV9vbmUgeworICAgIG15ICgkaW4pID0gQF87CisKKyAgICBpZiAoJGluID1+IHMvXlwiLy8pIHsKKwkoJHRtcCwgJGluKSA9IHBhcnNlX3N0cigkaW4pOworCWlmIChub3QgZGVmaW5lZCAkdG1wKSB7CisJICAgIHByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogY2Fubm90IHBhcnNlIHN0cmluZy5cbiI7CisJICAgIHJldHVybiAodW5kZWYsICRpbik7CisJfQorCXJldHVybiAoJHRtcCwgJGluKTsKKyAgICB9IGVsc2lmICgkaW4gPX4gcy9eMHgoXHgrKS8vKSB7CisJcmV0dXJuIChoZXggJDEsICRpbik7CisgICAgfSBlbHNpZiAoJGluID1+IHMvXihcZCspLy8pIHsKKwlyZXR1cm4gKGludCAkMSwgJGluKTsKKyAgICB9IGVsc2UgeworCXByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogdW5yZWNvZ25pemVkIGVsZW1lbnQuXG4iOworCXJldHVybiAodW5kZWYsICRpbik7CisgICAgfQorfQorCitzdWIgcGFyc2VhcmdzIHsKKyAgICBteSAoJGluKSA9IEBfOworICAgIG15IEBhcmdzID0gKCk7CisgICAgbXkgJHRtcDsKKworICAgIHdoaWxlIChsZW5ndGggJGluKSB7CisJaWYgKCRpbiA9fiBzL15cWy8vKSB7CisJICAgIG15IEBzdWJhcnIgPSAoKTsKKwkgICAgaWYgKCRpbiA9fiBzLF4vXCogKFxkKykgdmFycyBcKi9cXSwsKSB7CisJCXB1c2ggQGFyZ3MsICQxOworCSAgICB9IGVsc2UgeworCQl3aGlsZSAoJGluICF+IHMvXlxdLy8pIHsKKwkJICAgICgkdG1wLCAkaW4pID0gcGFyc2Vfb25lKCRpbik7CisJCSAgICBkZWZpbmVkICR0bXAgb3IgcmV0dXJuIHVuZGVmOworCQkgICAgcHVzaCBAc3ViYXJyLCAkdG1wOworCQkgICAgdW5sZXNzICgkaW4gPX4gL15cXS8gb3IgJGluID1+IHMvXiwgLy8pIHsKKwkJCXByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogbWlzc2luZyBjb21tYSBpbiBhcnJheS5cbiI7CisJCQlyZXR1cm4gdW5kZWY7CisJCSAgICB9CisJCSAgICBpZiAoJGluID1+IHMvXlwuXC5cLi8vKSB7CisJCQlwdXNoIEBzdWJhcnIsICIuLi4iOworCQkgICAgfQorCQl9CisJCXB1c2ggQGFyZ3MsIFxAc3ViYXJyOworCSAgICB9CisJfSBlbHNpZiAoJGluID1+IHMvXlx7Ly8pIHsKKwkgICAgbXkgJXN1Ymhhc2ggPSAoKTsKKwkgICAgd2hpbGUgKCRpbiAhfiBzL15cfS8vKSB7CisJCW15ICRrZXk7CisJCXVubGVzcyAoJGluID1+IHMvXihcdyspPS8vKSB7CisJCSAgICBwcmludCBTVERFUlIgIiQwOiAkQVJHVjogJC46IHN0cnVjdCBmaWVsZCBleHBlY3RlZC5cbiI7CisJCSAgICByZXR1cm4gdW5kZWY7CisJCX0KKwkJJGtleSA9ICQxOworCQkoJHRtcCwgJGluKSA9IHBhcnNlX29uZSgkaW4pOworCQlkZWZpbmVkICR0bXAgb3IgcmV0dXJuIHVuZGVmOworCQkkc3ViaGFzaHska2V5fSA9ICR0bXA7CisJCXVubGVzcyAoJGluID1+IHMvLCAvLykgeworCQkgICAgcHJpbnQgU1RERVJSICIkMDogJEFSR1Y6ICQuOiBtaXNzaW5nIGNvbW1hIGluIHN0cnVjdC5cbiI7CisJCSAgICByZXR1cm4gdW5kZWY7CisJCX0KKwkgICAgfQorCSAgICBwdXNoIEBhcmdzLCBcJXN1Ymhhc2g7CisJfSBlbHNlIHsKKwkgICAgKCR0bXAsICRpbikgPSBwYXJzZV9vbmUoJGluKTsKKwkgICAgZGVmaW5lZCAkdG1wIG9yIHJldHVybiB1bmRlZjsKKwkgICAgcHVzaCBAYXJncywgJHRtcDsKKwl9CisJdW5sZXNzIChsZW5ndGgoJGluKSA9PSAwIG9yICRpbiA9fiBzL14sIC8vKSB7CisJICAgIHByaW50IFNUREVSUiAiJDA6ICRBUkdWOiAkLjogbWlzc2luZyBjb21tYS5cbiI7CisJICAgIHJldHVybiB1bmRlZjsKKwl9CSAgICAKKyAgICB9CisgICAgcmV0dXJuIEBhcmdzOworfQorCSAgICAKKworbXkgJGRlcHRoID0gIiI7CisKKyMgcHJvY2VzcyBpbmZvLCBpbmRleGVkIGJ5IHBpZC4KKyMgZmllbGRzOiAKKyMgICAgcGFyZW50ICAgICAgICAgcGlkIG51bWJlcgorIyAgICBzZXEgICAgICAgICAgICBmb3JrcyBhbmQgZXhlY3MgZm9yIHRoaXMgcGlkLCBpbiBzZXF1ZW5jZSAgKGFycmF5KQorIAorIyAgZmlsZW5hbWUgYW5kIGFyZ3YgKGZyb20gbGF0ZXN0IGV4ZWMpCisjICBiYXNlbmFtZSAoZGVyaXZlZCBmcm9tIGZpbGVuYW1lKQorIyBhcmd2WzBdIGlzIG1vZGlmaWVkIHRvIGFkZCB0aGUgYmFzZW5hbWUgaWYgaXQgZGlmZmVycyBmcm9tIHRoZSAwdGggYXJndW1lbnQuCisKK215ICVwcjsKKworc3ViIGhhbmRsZV90cmFjZSB7CisgICAgbXkgKCRwaWQsICRjYWxsLCAkYXJncywgJHJlc3VsdCwgJHRpbWUpID0gQF87CisgICAgbXkgJHA7CisKKyAgICBpZiAoZGVmaW5lZCAkdGltZSBhbmQgbm90IGRlZmluZWQgJHByeyRwaWR9e3N0YXJ0fSkgeworCSRwcnskcGlkfXtzdGFydH0gPSAkdGltZTsKKyAgICB9CisKKyAgICBpZiAoJGNhbGwgZXEgJ2V4ZWN2ZScpIHsKKwlyZXR1cm4gaWYgJHJlc3VsdCAhPSAwOworCisJbXkgKCRmaWxlbmFtZSwgJGFyZ3YpID0gcGFyc2VhcmdzKCRhcmdzKTsKKwkoJGJhc2VuYW1lKSA9ICRmaWxlbmFtZSA9fiBtLyhbXlwvXSopJC87CisJaWYgKCRiYXNlbmFtZSBuZSAkJGFyZ3ZbMF0pIHsKKwkgICAgJCRhcmd2WzBdID0gIiRiYXNlbmFtZSgkJGFyZ3ZbMF0pIjsKKyAgICAgICAgfQorCW15ICRzZXEgPSAkcHJ7JHBpZH17c2VxfTsKKwkkc2VxID0gW10gaWYgbm90IGRlZmluZWQgJHNlcTsKKworCXB1c2ggQCRzZXEsIFsnRVhFQycsICRmaWxlbmFtZSwgJGFyZ3ZdOworCisJJHByeyRwaWR9e3NlcX0gPSAkc2VxOworICAgIH0gZWxzaWYgKCRjYWxsIGVxICdmb3JrJyB8fCAkY2FsbCBlcSAnY2xvbmUnIHx8ICRjYWxsIGVxICd2Zm9yaycpIHsKKwlyZXR1cm4gaWYgJHJlc3VsdCA9PSAwOworCisJbXkgJHNlcSA9ICRwcnskcGlkfXtzZXF9OworCSRzZXEgPSBbXSBpZiBub3QgZGVmaW5lZCAkc2VxOworCXB1c2ggQCRzZXEsIFsnRk9SSycsICRyZXN1bHRdOworCSRwcnskcGlkfXtzZXF9ID0gJHNlcTsKKwkkcHJ7JHJlc3VsdH17cGFyZW50fSA9ICRwaWQ7CisgICAgfSBlbHNpZiAoJGNhbGwgZXEgJ19leGl0JykgeworCSRwcnskcGlkfXtlbmR9ID0gJHRpbWUgaWYgZGVmaW5lZCAkdGltZTsKKyAgICB9Cit9CisKK3N1YiBoYW5kbGVfa2lsbGVkIHsKKyAgICBteSAoJHBpZCwgJHRpbWUpID0gQF87CisgICAgJHByeyRwaWR9e2VuZH0gPSAkdGltZSBpZiBkZWZpbmVkICR0aW1lOworfQorCitzdWIgc3RyYWlnaHRfc2VxIHsKKyAgICBteSAoJHBpZCkgPSBAXzsKKyAgICBteSAkc2VxID0gJHByeyRwaWR9e3NlcX07CisKKyAgICBmb3IgJGVsZW0gKEAkc2VxKSB7CisJaWYgKCQkZWxlbVswXSBlcSAnRVhFQycpIHsKKwkgICAgbXkgJGFyZ3YgPSAkJGVsZW1bMl07CisJICAgIHByaW50ICIkJGVsZW1bMF0gJCRlbGVtWzFdIEAkYXJndlxuIjsKKwl9IGVsc2lmICgkJGVsZW1bMF0gZXEgJ0ZPUksnKSB7CisJICAgIHByaW50ICIkJGVsZW1bMF0gJCRlbGVtWzFdXG4iOworCX0gZWxzZSB7CisJICAgIHByaW50ICIkJGVsZW1bMF1cbiI7CisJfQorICAgIH0KK30KKworc3ViIGZpcnN0X2V4ZWMgeworICAgIG15ICgkcGlkKSA9IEBfOworICAgIG15ICRzZXEgPSAkcHJ7JHBpZH17c2VxfTsKKworICAgIGZvciAkZWxlbSAoQCRzZXEpIHsKKwlpZiAoJCRlbGVtWzBdIGVxICdFWEVDJykgeworCSAgICByZXR1cm4gJGVsZW07CisJfQorICAgIH0KKyAgICByZXR1cm4gdW5kZWY7Cit9CisKK3N1YiBkaXNwbGF5X3BpZF90cmFjZSB7CisgICAgbXkgKCRwaWQsICRsZWFkKSA9IEBfOworICAgIG15ICRpID0gMDsKKyAgICBteSBAc2VxID0gQHskcHJ7JHBpZH17c2VxfX07CisgICAgbXkgJGVsYXBzZWQ7CisKKyAgICBpZiAobm90IGRlZmluZWQgZmlyc3RfZXhlYygkcGlkKSkgeworCXVuc2hpZnQgQHNlcSwgWydFWEVDJywgJycsIFsnKGFub24pJ10gXTsKKyAgICB9CisKKyAgICBpZiAoZGVmaW5lZCAkcHJ7JHBpZH17c3RhcnR9IGFuZCBkZWZpbmVkICRwcnskcGlkfXtlbmR9KSB7CisJJGVsYXBzZWQgPSAkcHJ7JHBpZH17ZW5kfSAtICRwcnskcGlkfXtzdGFydH07CisJJGVsYXBzZWQgLz0gJHNjYWxlX2ZhY3RvcjsKKwlpZiAoJGZsb2F0Zm9ybSkgeworCSAgICAkZWxhcHNlZCA9IHNwcmludGYoIiUwLjAyZiIsICRlbGFwc2VkKTsKKwl9IGVsc2UgeworCSAgICAkZWxhcHNlZCA9IGludCAkZWxhcHNlZDsKKwl9CisgICAgfQorCisgICAgZm9yICRlbGVtIChAc2VxKSB7CisJJGkrKzsKKwlpZiAoJCRlbGVtWzBdIGVxICdFWEVDJykgeworCSAgICBteSAkYXJndiA9ICQkZWxlbVsyXTsKKwkgICAgaWYgKGRlZmluZWQgJGVsYXBzZWQpIHsKKwkJcHJpbnQgIiRsZWFkIFskZWxhcHNlZF0gQCRhcmd2XG4iOworCQl1bmRlZiAkZWxhcHNlZDsKKwkgICAgfSBlbHNlIHsKKwkJcHJpbnQgIiRsZWFkIEAkYXJndlxuIjsKKwkgICAgfQorCX0gZWxzaWYgKCQkZWxlbVswXSBlcSAnRk9SSycpIHsKKwkgICAgaWYgKCRpID09IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAoJGxlYWQgPX4gLy0kLykgeworIAkJICAgIGRpc3BsYXlfcGlkX3RyYWNlKCQkZWxlbVsxXSwgIiRsZWFkLS0rLS0iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworIAkJICAgIGRpc3BsYXlfcGlkX3RyYWNlKCQkZWxlbVsxXSwgIiRsZWFkICArLS0iKTsKKyAgICAgICAgICAgICAgICB9CisJICAgIH0gZWxzaWYgKCRpID09IEBzZXEpIHsKKwkJZGlzcGxheV9waWRfdHJhY2UoJCRlbGVtWzFdLCAiJGxlYWQgIGAtLSIpOworCSAgICB9IGVsc2UgeworCQlkaXNwbGF5X3BpZF90cmFjZSgkJGVsZW1bMV0sICIkbGVhZCAgKy0tIik7CisJICAgIH0KKwl9CisJaWYgKCRpID09IDEpIHsKKwkgICAgJGxlYWQgPX4gcy9cYC0tLyAgIC9nOworCSAgICAkbGVhZCA9fiBzLy0vIC9nOworCSAgICAkbGVhZCA9fiBzL1wrL3wvZzsKKwl9CisgICAgfQorfQorCitzdWIgZGlzcGxheV90cmFjZSB7CisgICAgbXkgKCRzdGFydHBpZCkgPSBAXzsKKworICAgICRzdGFydHBpZCA9IChrZXlzICVwcilbMF07CisgICAgd2hpbGUgKCRwcnskc3RhcnRwaWR9e3BhcmVudH0pIHsKKwkkc3RhcnRwaWQgPSAkcHJ7JHN0YXJ0cGlkfXtwYXJlbnR9OworICAgIH0KKworICAgIGRpc3BsYXlfcGlkX3RyYWNlKCRzdGFydHBpZCwgIiIpOworfQorICAgIApkaWZmIC0tZ2l0IGEvc3RyYWNlLjEgYi9zdHJhY2UuMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjAxMzAzCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlLjEKQEAgLTAsMCArMSw2NjIgQEAKKy5cIiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorLlwiIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KKy5cIiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKy5cIiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLlwiCisuXCIgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisuXCIgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisuXCIgYXJlIG1ldDoKKy5cIiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy5cIiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLlwiIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworLlwiICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLlwiCisuXCIgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKy5cIiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisuXCIgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKy5cIiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisuXCIgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisuXCIgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorLlwiIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLlwiIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy5cIiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKy5cIiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorLlwiCisuXCIJJElkOiBzdHJhY2UuMSx2IDEuMTIgMjAwNC8wOC8zMSAwNzo0Nzo0NyByb2xhbmQgRXhwICQKKy5cIgorLmRlIENXCisuc3AKKy5uZgorLmZ0IENXCisuLgorLmRlIENFCisuZnQgUgorLmZpCisuc3AKKy4uCisuVEggU1RSQUNFIDEgIjIwMDMtMDEtMjEiCisuU0ggTkFNRQorc3RyYWNlIFwtIHRyYWNlIHN5c3RlbSBjYWxscyBhbmQgc2lnbmFscworLlNIIFNZTk9QU0lTCisuQiBzdHJhY2UKK1sKKy5CIFwtZGZmaGlxcnR0dFR2eHgKK10KK1sKKy5CSSBcLWEgY29sdW1uCitdCitbCisuQkkgXC1lIGV4cHIKK10KK1wmLi4uCitbCisuQkkgXC1vIGZpbGUKK10KK1sKKy5CSSBcLXAgcGlkCitdCitcJi4uLgorWworLkJJIFwtcyBzdHJzaXplCitdCitbCisuQkkgXC11IHVzZXJuYW1lCitdCitbCisuQkkgXC1FIHZhcj12YWwKK10KK1wmLi4uCitbCisuQkkgXC1FIHZhcgorXQorXCYuLi4KK1sKKy5JIGNvbW1hbmQKK1sKKy5JIGFyZworXCYuLi4KK10KK10KKy5zcAorLkIgc3RyYWNlCisuQiBcLWMKK1sKKy5CSSBcLWUgZXhwcgorXQorXCYuLi4KK1sKKy5CSSBcLU8gb3ZlcmhlYWQKK10KK1sKKy5CSSBcLVMgc29ydGJ5CitdCitbCisuSSBjb21tYW5kCitbCisuSSBhcmcKK1wmLi4uCitdCitdCisuU0ggREVTQ1JJUFRJT04KKy5JWCAic3RyYWNlIGNvbW1hbmQiICIiICJcZkxzdHJhY2VcZlIgY29tbWFuZCIKKy5MUAorSW4gdGhlIHNpbXBsZXN0IGNhc2UKKy5CIHN0cmFjZQorcnVucyB0aGUgc3BlY2lmaWVkCisuSSBjb21tYW5kCit1bnRpbCBpdCBleGl0cy4KK0l0IGludGVyY2VwdHMgYW5kIHJlY29yZHMgdGhlIHN5c3RlbSBjYWxscyB3aGljaCBhcmUgY2FsbGVkCitieSBhIHByb2Nlc3MgYW5kIHRoZSBzaWduYWxzIHdoaWNoIGFyZSByZWNlaXZlZCBieSBhIHByb2Nlc3MuCitUaGUgbmFtZSBvZiBlYWNoIHN5c3RlbSBjYWxsLCBpdHMgYXJndW1lbnRzIGFuZCBpdHMgcmV0dXJuIHZhbHVlCithcmUgcHJpbnRlZCBvbiBzdGFuZGFyZCBlcnJvciBvciB0byB0aGUgZmlsZSBzcGVjaWZpZWQgd2l0aCB0aGUKKy5CIFwtbworb3B0aW9uLgorLkxQCisuQiBzdHJhY2UKK2lzIGEgdXNlZnVsIGRpYWdub3N0aWMsIGluc3RydWN0aW9uYWwsIGFuZCBkZWJ1Z2dpbmcgdG9vbC4KK1N5c3RlbSBhZG1pbmlzdHJhdG9ycywgZGlhZ25vc3RpY2lhbnMgYW5kIHRyb3VibGUtc2hvb3RlcnMgd2lsbCBmaW5kCitpdCBpbnZhbHVhYmxlIGZvciBzb2x2aW5nIHByb2JsZW1zIHdpdGgKK3Byb2dyYW1zIGZvciB3aGljaCB0aGUgc291cmNlIGlzIG5vdCByZWFkaWx5IGF2YWlsYWJsZSBzaW5jZQordGhleSBkbyBub3QgbmVlZCB0byBiZSByZWNvbXBpbGVkIGluIG9yZGVyIHRvIHRyYWNlIHRoZW0uCitTdHVkZW50cywgaGFja2VycyBhbmQgdGhlIG92ZXJseS1jdXJpb3VzIHdpbGwgZmluZCB0aGF0CithIGdyZWF0IGRlYWwgY2FuIGJlIGxlYXJuZWQgYWJvdXQgYSBzeXN0ZW0gYW5kIGl0cyBzeXN0ZW0gY2FsbHMgYnkKK3RyYWNpbmcgZXZlbiBvcmRpbmFyeSBwcm9ncmFtcy4gIEFuZCBwcm9ncmFtbWVycyB3aWxsIGZpbmQgdGhhdAorc2luY2Ugc3lzdGVtIGNhbGxzIGFuZCBzaWduYWxzIGFyZSBldmVudHMgdGhhdCBoYXBwZW4gYXQgdGhlIHVzZXIva2VybmVsCitpbnRlcmZhY2UsIGEgY2xvc2UgZXhhbWluYXRpb24gb2YgdGhpcyBib3VuZGFyeSBpcyB2ZXJ5Cit1c2VmdWwgZm9yIGJ1ZyBpc29sYXRpb24sIHNhbml0eSBjaGVja2luZyBhbmQKK2F0dGVtcHRpbmcgdG8gY2FwdHVyZSByYWNlIGNvbmRpdGlvbnMuCisuTFAKK0VhY2ggbGluZSBpbiB0aGUgdHJhY2UgY29udGFpbnMgdGhlIHN5c3RlbSBjYWxsIG5hbWUsIGZvbGxvd2VkCitieSBpdHMgYXJndW1lbnRzIGluIHBhcmVudGhlc2VzIGFuZCBpdHMgcmV0dXJuIHZhbHVlLgorQW4gZXhhbXBsZSBmcm9tIHN0cmFjaW5nIHRoZSBjb21tYW5kIGBgY2F0IC9kZXYvbnVsbCcnIGlzOgorLkNXCitvcGVuKCIvZGV2L251bGwiLCBPX1JET05MWSkgPSAzCisuQ0UKK0Vycm9ycyAodHlwaWNhbGx5IGEgcmV0dXJuIHZhbHVlIG9mIFwtMSkgaGF2ZSB0aGUgZXJybm8gc3ltYm9sCithbmQgZXJyb3Igc3RyaW5nIGFwcGVuZGVkLgorLkNXCitvcGVuKCIvZm9vL2JhciIsIE9fUkRPTkxZKSA9IC0xIEVOT0VOVCAoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSkKKy5DRQorU2lnbmFscyBhcmUgcHJpbnRlZCBhcyBhIHNpZ25hbCBzeW1ib2wgYW5kIGEgc2lnbmFsIHN0cmluZy4KK0FuIGV4Y2VycHQgZnJvbSBzdHJhY2luZyBhbmQgaW50ZXJydXB0aW5nIHRoZSBjb21tYW5kIGBgc2xlZXAgNjY2JycgaXM6CisuQ1cKK3NpZ3N1c3BlbmQoW10gPHVuZmluaXNoZWQgLi4uPgorLS0tIFNJR0lOVCAoSW50ZXJydXB0KSAtLS0KKysrKyBraWxsZWQgYnkgU0lHSU5UICsrKworLkNFCitBcmd1bWVudHMgYXJlIHByaW50ZWQgaW4gc3ltYm9saWMgZm9ybSB3aXRoIGEgcGFzc2lvbi4KK1RoaXMgZXhhbXBsZSBzaG93cyB0aGUgc2hlbGwgcGVyZm9ybWluZyBgYD4+eHl6enknJyBvdXRwdXQgcmVkaXJlY3Rpb246CisuQ1cKK29wZW4oInh5enp5IiwgT19XUk9OTFl8T19BUFBFTkR8T19DUkVBVCwgMDY2NikgPSAzCisuQ0UKK0hlcmUgdGhlIHRocmVlIGFyZ3VtZW50IGZvcm0gb2Ygb3BlbiBpcyBkZWNvZGVkIGJ5IGJyZWFraW5nIGRvd24gdGhlCitmbGFnIGFyZ3VtZW50IGludG8gaXRzIHRocmVlIGJpdHdpc2UtT1IgY29uc3RpdHVlbnRzIGFuZCBwcmludGluZyB0aGUKK21vZGUgdmFsdWUgaW4gb2N0YWwgYnkgdHJhZGl0aW9uLiAgV2hlcmUgdHJhZGl0aW9uYWwgb3IgbmF0aXZlCit1c2FnZSBkaWZmZXJzIGZyb20gQU5TSSBvciBQT1NJWCwgdGhlIGxhdHRlciBmb3JtcyBhcmUgcHJlZmVycmVkLgorSW4gc29tZSBjYXNlcywKKy5CIHN0cmFjZQorb3V0cHV0IGhhcyBwcm92ZW4gdG8gYmUgbW9yZSByZWFkYWJsZSB0aGFuIHRoZSBzb3VyY2UuCisuTFAKK1N0cnVjdHVyZSBwb2ludGVycyBhcmUgZGVyZWZlcmVuY2VkIGFuZCB0aGUgbWVtYmVycyBhcmUgZGlzcGxheWVkCithcyBhcHByb3ByaWF0ZS4gIEluIGFsbCBjYXNlcyBhcmd1bWVudHMgYXJlIGZvcm1hdHRlZCBpbiB0aGUgbW9zdCBDLWxpa2UKK2Zhc2hpb24gcG9zc2libGUuCitGb3IgZXhhbXBsZSwgdGhlIGVzc2VuY2Ugb2YgdGhlIGNvbW1hbmQgYGBscyBcLWwgL2Rldi9udWxsJycgaXMgY2FwdHVyZWQgYXM6CisuQ1cKK2xzdGF0KCIvZGV2L251bGwiLCB7c3RfbW9kZT1TX0lGQ0hSfDA2NjYsIHN0X3JkZXY9bWFrZWRldigxLCAzKSwgLi4ufSkgPSAwCisuQ0UKK05vdGljZSBob3cgdGhlIGBzdHJ1Y3Qgc3RhdCcgYXJndW1lbnQgaXMgZGVyZWZlcmVuY2VkIGFuZCBob3cgZWFjaCBtZW1iZXIgaXMKK2Rpc3BsYXllZCBzeW1ib2xpY2FsbHkuICBJbiBwYXJ0aWN1bGFyLCBvYnNlcnZlIGhvdyB0aGUgc3RfbW9kZSBtZW1iZXIKK2lzIGNhcmVmdWxseSBkZWNvZGVkIGludG8gYSBiaXR3aXNlLU9SIG9mIHN5bWJvbGljIGFuZCBudW1lcmljIHZhbHVlcy4KK0Fsc28gbm90aWNlIGluIHRoaXMgZXhhbXBsZSB0aGF0IHRoZSBmaXJzdCBhcmd1bWVudCB0byBsc3RhdCBpcyBhbiBpbnB1dAordG8gdGhlIHN5c3RlbSBjYWxsIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIGFuIG91dHB1dC4gIFNpbmNlIG91dHB1dAorYXJndW1lbnRzIGFyZSBub3QgbW9kaWZpZWQgaWYgdGhlIHN5c3RlbSBjYWxsIGZhaWxzLCBhcmd1bWVudHMgbWF5IG5vdAorYWx3YXlzIGJlIGRlcmVmZXJlbmNlZC4gIEZvciBleGFtcGxlLCByZXRyeWluZyB0aGUgYGBscyBcLWwnJyBleGFtcGxlCit3aXRoIGEgbm9uLWV4aXN0ZW50IGZpbGUgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBsaW5lOgorLkNXCitsc3RhdCgiL2Zvby9iYXIiLCAweGIwMDQpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQorLkNFCitJbiB0aGlzIGNhc2UgdGhlIHBvcmNoIGxpZ2h0IGlzIG9uIGJ1dCBub2JvZHkgaXMgaG9tZS4KKy5MUAorQ2hhcmFjdGVyIHBvaW50ZXJzIGFyZSBkZXJlZmVyZW5jZWQgYW5kIHByaW50ZWQgYXMgQyBzdHJpbmdzLgorTm9uLXByaW50aW5nIGNoYXJhY3RlcnMgaW4gc3RyaW5ncyBhcmUgbm9ybWFsbHkgcmVwcmVzZW50ZWQgYnkKK29yZGluYXJ5IEMgZXNjYXBlIGNvZGVzLgorT25seSB0aGUgZmlyc3QKKy5JIHN0cnNpemUKKygzMiBieSBkZWZhdWx0KSBieXRlcyBvZiBzdHJpbmdzIGFyZSBwcmludGVkOworbG9uZ2VyIHN0cmluZ3MgaGF2ZSBhbiBlbGxpcHNpcyBhcHBlbmRlZCBmb2xsb3dpbmcgdGhlIGNsb3NpbmcgcXVvdGUuCitIZXJlIGlzIGEgbGluZSBmcm9tIGBgbHMgXC1sJycgd2hlcmUgdGhlCisuQiBnZXRwd3VpZAorbGlicmFyeSByb3V0aW5lIGlzIHJlYWRpbmcgdGhlIHBhc3N3b3JkIGZpbGU6CisuQ1cKK3JlYWQoMywgInJvb3Q6OjA6MDpTeXN0ZW0gQWRtaW5pc3RyYXRvcjovIi4uLiwgMTAyNCkgPSA0MjIKKy5DRQorV2hpbGUgc3RydWN0dXJlcyBhcmUgYW5ub3RhdGVkIHVzaW5nIGN1cmx5IGJyYWNlcywgc2ltcGxlIHBvaW50ZXJzCithbmQgYXJyYXlzIGFyZSBwcmludGVkIHVzaW5nIHNxdWFyZSBicmFja2V0cyB3aXRoIGNvbW1hcyBzZXBhcmF0aW5nCitlbGVtZW50cy4gIEhlcmUgaXMgYW4gZXhhbXBsZSBmcm9tIHRoZSBjb21tYW5kIGBgaWQnJyBvbiBhIHN5c3RlbSB3aXRoCitzdXBwbGVtZW50YXJ5IGdyb3VwIGlkczoKKy5DVworZ2V0Z3JvdXBzKDMyLCBbMTAwLCAwXSkgPSAyCisuQ0UKK09uIHRoZSBvdGhlciBoYW5kLCBiaXQtc2V0cyBhcmUgYWxzbyBzaG93biB1c2luZyBzcXVhcmUgYnJhY2tldHMKK2J1dCBzZXQgZWxlbWVudHMgYXJlIHNlcGFyYXRlZCBvbmx5IGJ5IGEgc3BhY2UuICBIZXJlIGlzIHRoZSBzaGVsbAorcHJlcGFyaW5nIHRvIGV4ZWN1dGUgYW4gZXh0ZXJuYWwgY29tbWFuZDoKKy5DVworc2lncHJvY21hc2soU0lHX0JMT0NLLCBbQ0hMRCBUVE9VXSwgW10pID0gMAorLkNFCitIZXJlIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYSBiaXQtc2V0IG9mIHR3byBzaWduYWxzLCBTSUdDSExEIGFuZCBTSUdUVE9VLgorSW4gc29tZSBjYXNlcyB0aGUgYml0LXNldCBpcyBzbyBmdWxsIHRoYXQgcHJpbnRpbmcgb3V0IHRoZSB1bnNldAorZWxlbWVudHMgaXMgbW9yZSB2YWx1YWJsZS4gIEluIHRoYXQgY2FzZSwgdGhlIGJpdC1zZXQgaXMgcHJlZml4ZWQgYnkKK2EgdGlsZGUgbGlrZSB0aGlzOgorLkNXCitzaWdwcm9jbWFzayhTSUdfVU5CTE9DSywgfltdLCBOVUxMKSA9IDAKKy5DRQorSGVyZSB0aGUgc2Vjb25kIGFyZ3VtZW50IHJlcHJlc2VudHMgdGhlIGZ1bGwgc2V0IG9mIGFsbCBzaWduYWxzLgorLlNIIE9QVElPTlMKKy5UUCAxMgorLlRQCisuQiBcLWMKK0NvdW50IHRpbWUsIGNhbGxzLCBhbmQgZXJyb3JzIGZvciBlYWNoIHN5c3RlbSBjYWxsIGFuZCByZXBvcnQgYSBzdW1tYXJ5IG9uCitwcm9ncmFtIGV4aXQuICBPbiBMaW51eCwgdGhpcyBhdHRlbXB0cyB0byBzaG93IHN5c3RlbSB0aW1lIChDUFUgdGltZSBzcGVudAorcnVubmluZyBpbiB0aGUga2VybmVsKSBpbmRlcGVuZGVudCBvZiB3YWxsIGNsb2NrIHRpbWUuICBJZiAtYyBpcyB1c2VkIHdpdGgKKy1mIG9yIC1GIChiZWxvdyksIG9ubHkgYWdncmVnYXRlIHRvdGFscyBmb3IgYWxsIHRyYWNlZCBwcm9jZXNzZXMgYXJlIGtlcHQuCisuVFAKKy5CIFwtZAorU2hvdyBzb21lIGRlYnVnZ2luZyBvdXRwdXQgb2YKKy5CIHN0cmFjZQoraXRzZWxmIG9uIHRoZSBzdGFuZGFyZCBlcnJvci4KKy5UUAorLkIgXC1mCitUcmFjZSBjaGlsZCBwcm9jZXNzZXMgYXMgdGhleSBhcmUgY3JlYXRlZCBieSBjdXJyZW50bHkgdHJhY2VkCitwcm9jZXNzZXMgYXMgYSByZXN1bHQgb2YgdGhlCisuQlIgZm9yayAoMikKK3N5c3RlbSBjYWxsLiAgVGhlIG5ldyBwcm9jZXNzIGlzCithdHRhY2hlZCB0byBhcyBzb29uIGFzIGl0cyBwaWQgaXMga25vd24gKHRocm91Z2ggdGhlIHJldHVybiB2YWx1ZSBvZgorLkJSIGZvcmsgKDIpCitpbiB0aGUgcGFyZW50IHByb2Nlc3MpLiBUaGlzIG1lYW5zIHRoYXQgc3VjaCBjaGlsZHJlbiBtYXkgcnVuCit1bmNvbnRyb2xsZWQgZm9yIGEgd2hpbGUgKGVzcGVjaWFsbHkgaW4gdGhlIGNhc2Ugb2YgYQorLkJSIHZmb3JrICgyKSksCit1bnRpbCB0aGUgcGFyZW50IGlzIHNjaGVkdWxlZCBhZ2FpbiB0byBjb21wbGV0ZSBpdHMKKy5SQiAoIHYgKSBmb3JrICgyKQorY2FsbC4KK0lmIHRoZSBwYXJlbnQgcHJvY2VzcyBkZWNpZGVzIHRvCisuQlIgd2FpdCAoMikKK2ZvciBhIGNoaWxkIHRoYXQgaXMgY3VycmVudGx5CitiZWluZyB0cmFjZWQsIGl0IGlzIHN1c3BlbmRlZCB1bnRpbCBhbiBhcHByb3ByaWF0ZSBjaGlsZCBwcm9jZXNzIGVpdGhlcgordGVybWluYXRlcyBvciBpbmN1cnMgYSBzaWduYWwgdGhhdCB3b3VsZCBjYXVzZSBpdCB0byB0ZXJtaW5hdGUgKGFzCitkZXRlcm1pbmVkIGZyb20gdGhlIGNoaWxkJ3MgY3VycmVudCBzaWduYWwgZGlzcG9zaXRpb24pLgorLlRQCisuQiBcLWZmCitJZiB0aGUKKy5CIFwtbworLkkgZmlsZW5hbWUKK29wdGlvbiBpcyBpbiBlZmZlY3QsIGVhY2ggcHJvY2Vzc2VzIHRyYWNlIGlzIHdyaXR0ZW4gdG8KKy5JIGZpbGVuYW1lLnBpZAord2hlcmUgcGlkIGlzIHRoZSBudW1lcmljIHByb2Nlc3MgaWQgb2YgZWFjaCBwcm9jZXNzLgorVGhpcyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtYywgc2luY2Ugbm8gcGVyLXByb2Nlc3MgY291bnRzIGFyZSBrZXB0LgorLlRQCisuQiBcLUYKK0F0dGVtcHQgdG8gZm9sbG93CisuQlIgdmZvcmsgcy4KKyhPbiBTdW5PUyA0LngsIHRoaXMgaXMgYWNjb21wbGlzaGVkIHdpdGgKK3NvbWUgZHluYW1pYyBsaW5raW5nIHRyaWNrZXJ5LikKK090aGVyd2lzZSwKKy5CUiB2Zm9yayBzCit3aWxsCitub3QgYmUgZm9sbG93ZWQgZXZlbiBpZgorLkIgXC1mCitoYXMgYmVlbiBnaXZlbi4KKy5UUAorLkIgXC1oCitQcmludCB0aGUgaGVscCBzdW1tYXJ5LgorLlRQCisuQiBcLWkKK1ByaW50IHRoZSBpbnN0cnVjdGlvbiBwb2ludGVyIGF0IHRoZSB0aW1lIG9mIHRoZSBzeXN0ZW0gY2FsbC4KKy5UUAorLkIgXC1xCitTdXBwcmVzcyBtZXNzYWdlcyBhYm91dCBhdHRhY2hpbmcsIGRldGFjaGluZyBldGMuICBUaGlzIGhhcHBlbnMKK2F1dG9tYXRpY2FsbHkgd2hlbiBvdXRwdXQgaXMgcmVkaXJlY3RlZCB0byBhIGZpbGUgYW5kIHRoZSBjb21tYW5kCitpcyBydW4gZGlyZWN0bHkgaW5zdGVhZCBvZiBhdHRhY2hpbmcuCisuVFAKKy5CIFwtcgorUHJpbnQgYSByZWxhdGl2ZSB0aW1lc3RhbXAgdXBvbiBlbnRyeSB0byBlYWNoIHN5c3RlbSBjYWxsLiAgVGhpcworcmVjb3JkcyB0aGUgdGltZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGJlZ2lubmluZyBvZiBzdWNjZXNzaXZlCitzeXN0ZW0gY2FsbHMuCisuVFAKKy5CIFwtdAorUHJlZml4IGVhY2ggbGluZSBvZiB0aGUgdHJhY2Ugd2l0aCB0aGUgdGltZSBvZiBkYXkuCisuVFAKKy5CIFwtdHQKK0lmIGdpdmVuIHR3aWNlLCB0aGUgdGltZSBwcmludGVkIHdpbGwgaW5jbHVkZSB0aGUgbWljcm9zZWNvbmRzLgorLlRQCisuQiBcLXR0dAorSWYgZ2l2ZW4gdGhyaWNlLCB0aGUgdGltZSBwcmludGVkIHdpbGwgaW5jbHVkZSB0aGUgbWljcm9zZWNvbmRzCithbmQgdGhlIGxlYWRpbmcgcG9ydGlvbiB3aWxsIGJlIHByaW50ZWQgYXMgdGhlIG51bWJlcgorb2Ygc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2guCisuVFAKKy5CIFwtVAorU2hvdyB0aGUgdGltZSBzcGVudCBpbiBzeXN0ZW0gY2FsbHMuIFRoaXMgcmVjb3JkcyB0aGUgdGltZQorZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgYW5kIHRoZSBlbmQgb2YgZWFjaCBzeXN0ZW0gY2FsbC4KKy5UUAorLkIgXC12CitQcmludCB1bmFiYnJldmlhdGVkIHZlcnNpb25zIG9mIGVudmlyb25tZW50LCBzdGF0LCB0ZXJtaW9zLCBldGMuCitjYWxscy4gIFRoZXNlIHN0cnVjdHVyZXMgYXJlIHZlcnkgY29tbW9uIGluIGNhbGxzIGFuZCBzbyB0aGUgZGVmYXVsdAorYmVoYXZpb3IgZGlzcGxheXMgYSByZWFzb25hYmxlIHN1YnNldCBvZiBzdHJ1Y3R1cmUgbWVtYmVycy4gIFVzZQordGhpcyBvcHRpb24gdG8gZ2V0IGFsbCBvZiB0aGUgZ29yeSBkZXRhaWxzLgorLlRQCisuQiBcLVYKK1ByaW50IHRoZSB2ZXJzaW9uIG51bWJlciBvZgorLkJSIHN0cmFjZSAuCisuVFAKKy5CIFwteAorUHJpbnQgYWxsIG5vbi1BU0NJSSBzdHJpbmdzIGluIGhleGFkZWNpbWFsIHN0cmluZyBmb3JtYXQuCisuVFAKKy5CIFwteHgKK1ByaW50IGFsbCBzdHJpbmdzIGluIGhleGFkZWNpbWFsIHN0cmluZyBmb3JtYXQuCisuVFAKKy5CSSAiXC1hICIgY29sdW1uCitBbGlnbiByZXR1cm4gdmFsdWVzIGluIGEgc3BlY2lmaWMgY29sdW1uIChkZWZhdWx0IGNvbHVtbiA0MCkuCisuVFAKKy5CSSAiXC1lICIgZXhwcgorQSBxdWFsaWZ5aW5nIGV4cHJlc3Npb24gd2hpY2ggbW9kaWZpZXMgd2hpY2ggZXZlbnRzIHRvIHRyYWNlCitvciBob3cgdG8gdHJhY2UgdGhlbS4gIFRoZSBmb3JtYXQgb2YgdGhlIGV4cHJlc3Npb24gaXM6CisuUlMgMTUKKy5JUAorW1xmSXF1YWxpZmllclxmQj1cZlJdW1xmQiFcZlJdXGZJdmFsdWUxXGZSW1xmQixcZkl2YWx1ZTJcZlJdLi4uCisuUkUKKy5JUAord2hlcmUKKy5JIHF1YWxpZmllcgoraXMgb25lIG9mCisuQlIgdHJhY2UgLAorLkJSIGFiYnJldiAsCisuQlIgdmVyYm9zZSAsCisuQlIgcmF3ICwKKy5CUiBzaWduYWwgLAorLkJSIHJlYWQgLAorb3IKKy5CIHdyaXRlCithbmQKKy5JIHZhbHVlCitpcyBhIHF1YWxpZmllci1kZXBlbmRlbnQgc3ltYm9sIG9yIG51bWJlci4gIFRoZSBkZWZhdWx0CitxdWFsaWZpZXIgaXMKKy5CUiB0cmFjZSAuCitVc2luZyBhbiBleGNsYW1hdGlvbiBtYXJrIG5lZ2F0ZXMgdGhlIHNldCBvZiB2YWx1ZXMuICBGb3IgZXhhbXBsZSwKKy5CIFwtZW9wZW4KK21lYW5zIGxpdGVyYWxseQorLkIgIlwtZSB0cmFjZT1vcGVuIgord2hpY2ggaW4gdHVybiBtZWFucyB0cmFjZSBvbmx5IHRoZQorLkIgb3Blbgorc3lzdGVtIGNhbGwuICBCeSBjb250cmFzdCwKKy5CICJcLWV0cmFjZT0hb3BlbiIKK21lYW5zIHRvIHRyYWNlIGV2ZXJ5IHN5c3RlbSBjYWxsIGV4Y2VwdAorLkJSIG9wZW4gLgorSW4gYWRkaXRpb24sIHRoZSBzcGVjaWFsIHZhbHVlcworLkIgYWxsCithbmQKKy5CIG5vbmUKK2hhdmUgdGhlIG9idmlvdXMgbWVhbmluZ3MuCisuSVAKK05vdGUgdGhhdCBzb21lIHNoZWxscyB1c2UgdGhlIGV4Y2xhbWF0aW9uIHBvaW50IGZvciBoaXN0b3J5CitleHBhbnNpb24gZXZlbiBpbnNpZGUgcXVvdGVkIGFyZ3VtZW50cy4gIElmIHNvLCB5b3UgbXVzdCBlc2NhcGUKK3RoZSBleGNsYW1hdGlvbiBwb2ludCB3aXRoIGEgYmFja3NsYXNoLgorLlRQCisuQkkgIlwtZSB0cmFjZT0iIHNldAorVHJhY2Ugb25seSB0aGUgc3BlY2lmaWVkIHNldCBvZiBzeXN0ZW0gY2FsbHMuICBUaGUKKy5CIFwtYworb3B0aW9uIGlzIHVzZWZ1bCBmb3IgZGV0ZXJtaW5pbmcgd2hpY2ggc3lzdGVtIGNhbGxzIG1pZ2h0IGJlIHVzZWZ1bAordG8gdHJhY2UuICBGb3IgZXhhbXBsZSwKKy5CIHRyYWNlPW9wZW4sY2xvc2UscmVhZCx3cml0ZQorbWVhbnMgdG8gb25seQordHJhY2UgdGhvc2UgZm91ciBzeXN0ZW0gY2FsbHMuICBCZSBjYXJlZnVsIHdoZW4gbWFraW5nIGluZmVyZW5jZXMKK2Fib3V0IHRoZSB1c2VyL2tlcm5lbCBib3VuZGFyeSBpZiBvbmx5IGEgc3Vic2V0IG9mIHN5c3RlbSBjYWxscworYXJlIGJlaW5nIG1vbml0b3JlZC4gIFRoZSBkZWZhdWx0IGlzCisuQlIgdHJhY2U9YWxsIC4KKy5UUAorLkIgIlwtZSB0cmFjZT1maWxlIgorVHJhY2UgYWxsIHN5c3RlbSBjYWxscyB3aGljaCB0YWtlIGEgZmlsZSBuYW1lIGFzIGFuIGFyZ3VtZW50LiAgWW91CitjYW4gdGhpbmsgb2YgdGhpcyBhcyBhbiBhYmJyZXZpYXRpb24gZm9yCisuQlIgIlwtZVwgdHJhY2U9b3BlbixzdGF0LGNobW9kLHVubGluaywiIC4uLgord2hpY2ggaXMgdXNlZnVsIHRvIHNlZWluZyB3aGF0IGZpbGVzIHRoZSBwcm9jZXNzIGlzIHJlZmVyZW5jaW5nLgorRnVydGhlcm1vcmUsIHVzaW5nIHRoZSBhYmJyZXZpYXRpb24gd2lsbCBlbnN1cmUgdGhhdCB5b3UgZG9uJ3QKK2FjY2lkZW50YWxseSBmb3JnZXQgdG8gaW5jbHVkZSBhIGNhbGwgbGlrZQorLkIgbHN0YXQKK2luIHRoZSBsaXN0LiAgQmV0Y2h5YSB3b3VsZGEgZm9yZ290IHRoYXQgb25lLgorLlRQCisuQiAiXC1lIHRyYWNlPXByb2Nlc3MiCitUcmFjZSBhbGwgc3lzdGVtIGNhbGxzIHdoaWNoIGludm9sdmUgcHJvY2VzcyBtYW5hZ2VtZW50LiAgVGhpcworaXMgdXNlZnVsIGZvciB3YXRjaGluZyB0aGUgZm9yaywgd2FpdCwgYW5kIGV4ZWMgc3RlcHMgb2YgYSBwcm9jZXNzLgorLlRQCisuQiAiXC1lIHRyYWNlPW5ldHdvcmsiCitUcmFjZSBhbGwgdGhlIG5ldHdvcmsgcmVsYXRlZCBzeXN0ZW0gY2FsbHMuCisuVFAKKy5CICJcLWUgdHJhY2U9c2lnbmFsIgorVHJhY2UgYWxsIHNpZ25hbCByZWxhdGVkIHN5c3RlbSBjYWxscy4KKy5UUAorLkIgIlwtZSB0cmFjZT1pcGMiCitUcmFjZSBhbGwgSVBDIHJlbGF0ZWQgc3lzdGVtIGNhbGxzLgorLlRQCisuQkkgIlwtZSBhYmJyZXY9IiBzZXQKK0FiYnJldmlhdGUgdGhlIG91dHB1dCBmcm9tIHByaW50aW5nIGVhY2ggbWVtYmVyIG9mIGxhcmdlIHN0cnVjdHVyZXMuCitUaGUgZGVmYXVsdCBpcworLkJSIGFiYnJldj1hbGwgLgorVGhlCisuQiBcLXYKK29wdGlvbiBoYXMgdGhlIGVmZmVjdCBvZgorLkJSIGFiYnJldj1ub25lIC4KKy5UUAorLkJJICJcLWUgdmVyYm9zZT0iIHNldAorRGVyZWZlcmVuY2Ugc3RydWN0dXJlcyBmb3IgdGhlIHNwZWNpZmllZCBzZXQgb2Ygc3lzdGVtIGNhbGxzLiAgVGhlCitkZWZhdWx0IGlzCisuQlIgdmVyYm9zZT1hbGwgLgorLlRQCisuQkkgIlwtZSByYXc9IiBzZXQKK1ByaW50IHJhdywgdW5kZWNvZGVkIGFyZ3VtZW50cyBmb3IgdGhlIHNwZWNpZmllZCBzZXQgb2Ygc3lzdGVtIGNhbGxzLgorVGhpcyBvcHRpb24gaGFzIHRoZSBlZmZlY3Qgb2YgY2F1c2luZyBhbGwgYXJndW1lbnRzIHRvIGJlIHByaW50ZWQKK2luIGhleGFkZWNpbWFsLiAgVGhpcyBpcyBtb3N0bHkgdXNlZnVsIGlmIHlvdSBkb24ndCB0cnVzdCB0aGUKK2RlY29kaW5nIG9yIHlvdSBuZWVkIHRvIGtub3cgdGhlIGFjdHVhbCBudW1lcmljIHZhbHVlIG9mIGFuCithcmd1bWVudC4KKy5UUAorLkJJICJcLWUgc2lnbmFsPSIgc2V0CitUcmFjZSBvbmx5IHRoZSBzcGVjaWZpZWQgc3Vic2V0IG9mIHNpZ25hbHMuICBUaGUgZGVmYXVsdCBpcworLkJSIHNpZ25hbD1hbGwgLgorRm9yIGV4YW1wbGUsCisuQiBzaWduYWw9IVNJR0lPCisob3IKKy5CUiBzaWduYWw9IWlvICkKK2NhdXNlcyBTSUdJTyBzaWduYWxzIG5vdCB0byBiZSB0cmFjZWQuCisuVFAKKy5CSSAiXC1lIHJlYWQ9IiBzZXQKK1BlcmZvcm0gYSBmdWxsIGhleGFkZWNpbWFsIGFuZCBBU0NJSSBkdW1wIG9mIGFsbCB0aGUgZGF0YSByZWFkIGZyb20KK2ZpbGUgZGVzY3JpcHRvcnMgbGlzdGVkIGluIHRoZSBzcGVjaWZpZWQgc2V0LiAgRm9yIGV4YW1wbGUsIHRvIHNlZQorYWxsIGlucHV0IGFjdGl2aXR5IG9uIGZpbGUgZGVzY3JpcHRvcnMgMyBhbmQgNSB1c2UKKy5CUiAiXC1lIHJlYWQ9Myw1IiAuCitOb3RlIHRoYXQgdGhpcyBpcyBpbmRlcGVuZGVudCBmcm9tIHRoZSBub3JtYWwgdHJhY2luZyBvZiB0aGUKKy5CUiByZWFkICgyKQorc3lzdGVtIGNhbGwgd2hpY2ggaXMgY29udHJvbGxlZCBieSB0aGUgb3B0aW9uCisuQlIgIlwtZSB0cmFjZT1yZWFkIiAuCisuVFAKKy5CSSAiXC1lIHdyaXRlPSIgc2V0CitQZXJmb3JtIGEgZnVsbCBoZXhhZGVjaW1hbCBhbmQgQVNDSUkgZHVtcCBvZiBhbGwgdGhlIGRhdGEgd3JpdHRlbiB0bworZmlsZSBkZXNjcmlwdG9ycyBsaXN0ZWQgaW4gdGhlIHNwZWNpZmllZCBzZXQuICBGb3IgZXhhbXBsZSwgdG8gc2VlCithbGwgb3V0cHV0IGFjdGl2aXR5IG9uIGZpbGUgZGVzY3JpcHRvcnMgMyBhbmQgNSB1c2UKKy5CUiAiXC1lIHdyaXRlPTMsNSIgLgorTm90ZSB0aGF0IHRoaXMgaXMgaW5kZXBlbmRlbnQgZnJvbSB0aGUgbm9ybWFsIHRyYWNpbmcgb2YgdGhlCisuQlIgd3JpdGUgKDIpCitzeXN0ZW0gY2FsbCB3aGljaCBpcyBjb250cm9sbGVkIGJ5IHRoZSBvcHRpb24KKy5CUiAiXC1lIHRyYWNlPXdyaXRlIiAuCisuVFAKKy5CSSAiXC1vICIgZmlsZW5hbWUKK1dyaXRlIHRoZSB0cmFjZSBvdXRwdXQgdG8gdGhlIGZpbGUKKy5JIGZpbGVuYW1lCityYXRoZXIgdGhhbiB0byBzdGRlcnIuCitVc2UKKy5JIGZpbGVuYW1lLnBpZAoraWYKKy5CIFwtZmYKK2lzIHVzZWQuCitJZiB0aGUgYXJndW1lbnQgYmVnaW5zIHdpdGggYHwnIG9yIHdpdGggYCEnIHRoZW4gdGhlIHJlc3Qgb2YgdGhlCithcmd1bWVudCBpcyB0cmVhdGVkIGFzIGEgY29tbWFuZCBhbmQgYWxsIG91dHB1dCBpcyBwaXBlZCB0byBpdC4KK1RoaXMgaXMgY29udmVuaWVudCBmb3IgcGlwaW5nIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0IHRvIGEgcHJvZ3JhbQord2l0aG91dCBhZmZlY3RpbmcgdGhlIHJlZGlyZWN0aW9ucyBvZiBleGVjdXRlZCBwcm9ncmFtcy4KKy5UUAorLkJJICJcLU8gIiBvdmVyaGVhZAorU2V0IHRoZSBvdmVyaGVhZCBmb3IgdHJhY2luZyBzeXN0ZW0gY2FsbHMgdG8KKy5JIG92ZXJoZWFkCittaWNyb3NlY29uZHMuCitUaGlzIGlzIHVzZWZ1bCBmb3Igb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBoZXVyaXN0aWMgZm9yIGd1ZXNzaW5nCitob3cgbXVjaCB0aW1lIGlzIHNwZW50IGluIG1lcmUgbWVhc3VyaW5nIHdoZW4gdGltaW5nIHN5c3RlbSBjYWxscyB1c2luZwordGhlCisuQiBcLWMKK29wdGlvbi4gIFRoZSBhY2N1cmFjeSBvZiB0aGUgaGV1cmlzdGljIGNhbiBiZSBnYXVnZWQgYnkgdGltaW5nIGEgZ2l2ZW4KK3Byb2dyYW0gcnVuIHdpdGhvdXQgdHJhY2luZyAodXNpbmcKKy5CUiB0aW1lICgxKSkKK2FuZCBjb21wYXJpbmcgdGhlIGFjY3VtdWxhdGVkCitzeXN0ZW0gY2FsbCB0aW1lIHRvIHRoZSB0b3RhbCBwcm9kdWNlZCB1c2luZworLkJSIFwtYyAuCisuVFAKKy5CSSAiXC1wICIgcGlkCitBdHRhY2ggdG8gdGhlIHByb2Nlc3Mgd2l0aCB0aGUgcHJvY2VzcworLlNNIElECisuSSBwaWQKK2FuZCBiZWdpbiB0cmFjaW5nLgorVGhlIHRyYWNlIG1heSBiZSB0ZXJtaW5hdGVkCithdCBhbnkgdGltZSBieSBhIGtleWJvYXJkIGludGVycnVwdCBzaWduYWwgKFxjCisuU00gQ1RSTFxzMC1DKS4KKy5CIHN0cmFjZQord2lsbCByZXNwb25kIGJ5IGRldGFjaGluZyBpdHNlbGYgZnJvbSB0aGUgdHJhY2VkIHByb2Nlc3MoZXMpCitsZWF2aW5nIGl0ICh0aGVtKSB0byBjb250aW51ZSBydW5uaW5nLgorTXVsdGlwbGUKKy5CIFwtcAorb3B0aW9ucyBjYW4gYmUgdXNlZCB0byBhdHRhY2ggdG8gdXAgdG8gMzIgcHJvY2Vzc2VzIGluIGFkZGl0aW9uIHRvCisuSSBjb21tYW5kCisod2hpY2ggaXMgb3B0aW9uYWwgaWYgYXQgbGVhc3Qgb25lCisuQiBcLXAKK29wdGlvbiBpcyBnaXZlbikuCisuVFAKKy5CSSAiXC1zICIgc3Ryc2l6ZQorU3BlY2lmeSB0aGUgbWF4aW11bSBzdHJpbmcgc2l6ZSB0byBwcmludCAodGhlIGRlZmF1bHQgaXMgMzIpLiAgTm90ZQordGhhdCBmaWxlbmFtZXMgYXJlIG5vdCBjb25zaWRlcmVkIHN0cmluZ3MgYW5kIGFyZSBhbHdheXMgcHJpbnRlZCBpbgorZnVsbC4KKy5UUAorLkJJICJcLVMgIiBzb3J0YnkKK1NvcnQgdGhlIG91dHB1dCBvZiB0aGUgaGlzdG9ncmFtIHByaW50ZWQgYnkgdGhlCisuQiBcLWMKK29wdGlvbiBieSB0aGUgc3BlY2lmaWVkIGNyaXRlcmlvbi4gIExlZ2FsIHZhbHVlcyBhcmUKKy5CUiB0aW1lICwKKy5CUiBjYWxscyAsCisuQlIgbmFtZSAsCithbmQKKy5CIG5vdGhpbmcKKyhkZWZhdWx0CisuQlIgdGltZSApLgorLlRQCisuQkkgIlwtdSAiIHVzZXJuYW1lCitSdW4gY29tbWFuZCB3aXRoIHRoZSB1c2VyIFxzLTFJRFxzMCwgZ3JvdXAgXHMtMklEXHMwLCBhbmQKK3N1cHBsZW1lbnRhcnkgZ3JvdXBzIG9mCisuSVIgdXNlcm5hbWUgLgorVGhpcyBvcHRpb24gaXMgb25seSB1c2VmdWwgd2hlbiBydW5uaW5nIGFzIHJvb3QgYW5kIGVuYWJsZXMgdGhlCitjb3JyZWN0IGV4ZWN1dGlvbiBvZiBzZXR1aWQgYW5kL29yIHNldGdpZCBiaW5hcmllcy4KK1VubGVzcyB0aGlzIG9wdGlvbiBpcyB1c2VkIHNldHVpZCBhbmQgc2V0Z2lkIHByb2dyYW1zIGFyZSBleGVjdXRlZAord2l0aG91dCBlZmZlY3RpdmUgcHJpdmlsZWdlcy4KKy5UUAorLkJJICJcLUUgIiB2YXI9dmFsCitSdW4gY29tbWFuZCB3aXRoCisuSVIgdmFyPXZhbAoraW4gaXRzIGxpc3Qgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzLgorLlRQCisuQkkgIlwtRSAiIHZhcgorUmVtb3ZlCisuSVIgdmFyCitmcm9tIHRoZSBpbmhlcml0ZWQgbGlzdCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYmVmb3JlIHBhc3NpbmcgaXQgb24gdG8KK3RoZSBjb21tYW5kLgorLlNIICJTRVRVSUQgSU5TVEFMTEFUSU9OIgorSWYKKy5CIHN0cmFjZQoraXMgaW5zdGFsbGVkIHNldHVpZCB0byByb290IHRoZW4gdGhlIGludm9raW5nIHVzZXIgd2lsbCBiZSBhYmxlIHRvCithdHRhY2ggdG8gYW5kIHRyYWNlIHByb2Nlc3NlcyBvd25lZCBieSBhbnkgdXNlci4KK0luIGFkZGl0aW9uIHNldHVpZCBhbmQgc2V0Z2lkIHByb2dyYW1zIHdpbGwgYmUgZXhlY3V0ZWQgYW5kIHRyYWNlZAord2l0aCB0aGUgY29ycmVjdCBlZmZlY3RpdmUgcHJpdmlsZWdlcy4KK1NpbmNlIG9ubHkgdXNlcnMgdHJ1c3RlZCB3aXRoIGZ1bGwgcm9vdCBwcml2aWxlZ2VzIHNob3VsZCBiZSBhbGxvd2VkCit0byBkbyB0aGVzZSB0aGluZ3MsCitpdCBvbmx5IG1ha2VzIHNlbnNlIHRvIGluc3RhbGwKKy5CIHN0cmFjZQorYXMgc2V0dWlkIHRvIHJvb3Qgd2hlbiB0aGUgdXNlcnMgd2hvIGNhbiBleGVjdXRlIGl0IGFyZSByZXN0cmljdGVkCit0byB0aG9zZSB1c2VycyB3aG8gaGF2ZSB0aGlzIHRydXN0LgorRm9yIGV4YW1wbGUsIGl0IG1ha2VzIHNlbnNlIHRvIGluc3RhbGwgYSBzcGVjaWFsIHZlcnNpb24gb2YKKy5CIHN0cmFjZQord2l0aCBtb2RlIGByd3NyLXhyLS0nLCB1c2VyCisuQiByb290CithbmQgZ3JvdXAKKy5CUiB0cmFjZSAsCit3aGVyZSBtZW1iZXJzIG9mIHRoZQorLkIgdHJhY2UKK2dyb3VwIGFyZSB0cnVzdGVkIHVzZXJzLgorSWYgeW91IGRvIHVzZSB0aGlzIGZlYXR1cmUsIHBsZWFzZSByZW1lbWJlciB0byBpbnN0YWxsCithIG5vbi1zZXR1aWQgdmVyc2lvbiBvZgorLkIgc3RyYWNlCitmb3Igb3JkaW5hcnkgbHVzZXJzIHRvIHVzZS4KKy5TSCAiU0VFIEFMU08iCisuQlIgcHRyYWNlICgyKSwKKy5CUiBwcm9jICg0KSwKKy5CUiB0aW1lICgxKSwKKy5CUiB0cmFjZSAoMSksCisuQlIgdHJ1c3MgKDEpCisuU0ggTk9URVMKK0l0IGlzIGEgcGl0eSB0aGF0IHNvIG11Y2ggdHJhY2luZyBjbHV0dGVyIGlzIHByb2R1Y2VkIGJ5IHN5c3RlbXMKK2VtcGxveWluZyBzaGFyZWQgbGlicmFyaWVzLgorLkxQCitJdCBpcyBpbnN0cnVjdGl2ZSB0byB0aGluayBhYm91dCBzeXN0ZW0gY2FsbCBpbnB1dHMgYW5kIG91dHB1dHMKK2FzIGRhdGEtZmxvdyBhY3Jvc3MgdGhlIHVzZXIva2VybmVsIGJvdW5kYXJ5LiAgQmVjYXVzZSB1c2VyLXNwYWNlCithbmQga2VybmVsLXNwYWNlIGFyZSBzZXBhcmF0ZSBhbmQgYWRkcmVzcy1wcm90ZWN0ZWQsIGl0IGlzCitzb21ldGltZXMgcG9zc2libGUgdG8gbWFrZSBkZWR1Y3RpdmUgaW5mZXJlbmNlcyBhYm91dCBwcm9jZXNzCitiZWhhdmlvciB1c2luZyBpbnB1dHMgYW5kIG91dHB1dHMgYXMgcHJvcG9zaXRpb25zLgorLkxQCitJbiBzb21lIGNhc2VzLCBhIHN5c3RlbSBjYWxsIHdpbGwgZGlmZmVyIGZyb20gdGhlIGRvY3VtZW50ZWQgYmVoYXZpb3IKK29yIGhhdmUgYSBkaWZmZXJlbnQgbmFtZS4gIEZvciBleGFtcGxlLCBvbiBTeXN0ZW0gVi1kZXJpdmVkIHN5c3RlbXMKK3RoZSB0cnVlCisuQlIgdGltZSAoMikKK3N5c3RlbSBjYWxsIGRvZXMgbm90IHRha2UgYW4gYXJndW1lbnQgYW5kIHRoZQorLkIgc3RhdAorZnVuY3Rpb24gaXMgY2FsbGVkCisuQiB4c3RhdAorYW5kIHRha2VzIGFuIGV4dHJhIGxlYWRpbmcgYXJndW1lbnQuICBUaGVzZQorZGlzY3JlcGFuY2llcyBhcmUgbm9ybWFsIGJ1dCBpZGlvc3luY3JhdGljIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUKK3N5c3RlbSBjYWxsIGludGVyZmFjZSBhbmQgYXJlIGFjY291bnRlZCBmb3IgYnkgQyBsaWJyYXJ5IHdyYXBwZXIKK2Z1bmN0aW9ucy4KKy5MUAorT24gc29tZSBwbGF0Zm9ybXMgYSBwcm9jZXNzIHRoYXQgaGFzIGEgc3lzdGVtIGNhbGwgdHJhY2UgYXBwbGllZAordG8gaXQgd2l0aCB0aGUKKy5CIFwtcAorb3B0aW9uIHdpbGwgcmVjZWl2ZSBhCisuQlIgXHMtMVNJR1NUT1BcczAgLgorVGhpcyBzaWduYWwgbWF5IGludGVycnVwdCBhIHN5c3RlbSBjYWxsIHRoYXQgaXMgbm90IHJlc3RhcnRhYmxlLgorVGhpcyBtYXkgaGF2ZSBhbiB1bnByZWRpY3RhYmxlIGVmZmVjdCBvbiB0aGUgcHJvY2VzcworaWYgdGhlIHByb2Nlc3MgdGFrZXMgbm8gYWN0aW9uIHRvIHJlc3RhcnQgdGhlIHN5c3RlbSBjYWxsLgorLlNIIEJVR1MKK1Byb2dyYW1zIHRoYXQgdXNlIHRoZQorLkkgc2V0dWlkCitiaXQgZG8gbm90IGhhdmUKK2VmZmVjdGl2ZSB1c2VyCisuU00gSUQKK3ByaXZpbGVnZXMgd2hpbGUgYmVpbmcgdHJhY2VkLgorLkxQCitBIHRyYWNlZCBwcm9jZXNzIGlnbm9yZXMKKy5TTSBTSUdTVE9QCitleGNlcHQgb24gU1ZSNCBwbGF0Zm9ybXMuCisuTFAKK0EgdHJhY2VkIHByb2Nlc3Mgd2hpY2ggdHJpZXMgdG8gYmxvY2sgU0lHVFJBUCB3aWxsIGJlIHNlbnQgYSBTSUdTVE9QCitpbiBhbiBhdHRlbXB0IHRvIGZvcmNlIGNvbnRpbnVhdGlvbiBvZiB0cmFjaW5nLgorLkxQCitBIHRyYWNlZCBwcm9jZXNzIHJ1bnMgc2xvd2x5LgorLkxQCitUcmFjZWQgcHJvY2Vzc2VzIHdoaWNoIGFyZSBkZXNjZW5kZWQgZnJvbQorLkkgY29tbWFuZAorbWF5IGJlIGxlZnQgcnVubmluZyBhZnRlciBhbiBpbnRlcnJ1cHQgc2lnbmFsIChcYworLlNNIENUUkxcczAtQykuCisuTFAKK09uIExpbnV4LCBleGNpdGluZyBhcyBpdCB3b3VsZCBiZSwgdHJhY2luZyB0aGUgaW5pdCBwcm9jZXNzIGlzIGZvcmJpZGRlbi4KKy5MUAorVGhlCisuQiBcLWkKK29wdGlvbiBpcyB3ZWFrbHkgc3VwcG9ydGVkLgorLlNIIEhJU1RPUlkKKy5CIHN0cmFjZQorVGhlIG9yaWdpbmFsCisuQiBzdHJhY2UKK3dhcyB3cml0dGVuIGJ5IFBhdWwgS3JhbmVuYnVyZworZm9yIFN1bk9TIGFuZCB3YXMgaW5zcGlyZWQgYnkgaXRzIHRyYWNlIHV0aWxpdHkuCitUaGUgU3VuT1MgdmVyc2lvbiBvZgorLkIgc3RyYWNlCit3YXMgcG9ydGVkIHRvIExpbnV4IGFuZCBlbmhhbmNlZAorYnkgQnJhbmtvIExhbmtlc3Rlciwgd2hvIGFsc28gd3JvdGUgdGhlIExpbnV4IGtlcm5lbCBzdXBwb3J0LgorRXZlbiB0aG91Z2ggUGF1bCByZWxlYXNlZAorLkIgc3RyYWNlCisyLjUgaW4gMTk5MiwKK0JyYW5rbydzIHdvcmsgd2FzIGJhc2VkIG9uIFBhdWwncworLkIgc3RyYWNlCisxLjUgcmVsZWFzZSBmcm9tIDE5OTEuCitJbiAxOTkzLCBSaWNrIFNsYWRrZXkgbWVyZ2VkCisuQiBzdHJhY2UKKzIuNSBmb3IgU3VuT1MgYW5kIHRoZSBzZWNvbmQgcmVsZWFzZSBvZgorLkIgc3RyYWNlCitmb3IgTGludXgsIGFkZGVkIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mCisuQlIgdHJ1c3MgKDEpCitmcm9tIFNWUjQsIGFuZCBwcm9kdWNlZCBhbgorLkIgc3RyYWNlCit0aGF0IHdvcmtlZCBvbiBib3RoIHBsYXRmb3Jtcy4gIEluIDE5OTQgUmljayBwb3J0ZWQKKy5CIHN0cmFjZQordG8gU1ZSNCBhbmQgU29sYXJpcyBhbmQgd3JvdGUgdGhlCithdXRvbWF0aWMgY29uZmlndXJhdGlvbiBzdXBwb3J0LiAgSW4gMTk5NSBoZSBwb3J0ZWQKKy5CIHN0cmFjZQordG8gSXJpeAorYW5kIHRpcmVkIG9mIHdyaXRpbmcgYWJvdXQgaGltc2VsZiBpbiB0aGUgdGhpcmQgcGVyc29uLgorLlNIIFBST0JMRU1TCitQcm9ibGVtcyB3aXRoCisuQiBzdHJhY2UKK3Nob3VsZCBiZSByZXBvcnRlZCB2aWEgdGhlIERlYmlhbiBCdWcgVHJhY2tpbmcgU3lzdGVtLAorb3IgdG8gdGhlCisuQiBzdHJhY2UKK21haWxpbmcgbGlzdCBhdCA8c3RyYWNlLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4uCmRpZmYgLS1naXQgYS9zdHJhY2UuYyBiL3N0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0OGMzNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UuYwpAQCAtMCwwICsxLDI1MDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTYtMTk5OSBXaWNoZXJ0IEFra2VybWFuIDx3aWNoZXJ0QGNpc3Ryb24ubmw+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzdHJhY2UuYyx2IDEuNjYgMjAwNS8wNi8wNyAyMzoyMTozMSByb2xhbmQgRXhwICQKKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxwd2QuaD4KKyNpbmNsdWRlIDxncnAuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKworI2lmZGVmIExJTlVYCisjIGluY2x1ZGUgPGFzbS91bmlzdGQuaD4KKyMgaWYgZGVmaW5lZCBfX05SX3Rna2lsbAorIyAgZGVmaW5lIG15X3Rna2lsbChwaWQsIHRpZCwgc2lnKSBzeXNjYWxsIChfX05SX3Rna2lsbCwgKHBpZCksICh0aWQpLCAoc2lnKSkKKyMgZWxpZiBkZWZpbmVkIF9fTlJfdGtpbGwKKyMgIGRlZmluZSBteV90Z2tpbGwocGlkLCB0aWQsIHNpZykgc3lzY2FsbCAoX19OUl90a2lsbCwgKHRpZCksIChzaWcpKQorIyBlbHNlCisgICAvKiBraWxsKCkgbWF5IGNob29zZSBhcmJpdHJhcmlseSB0aGUgdGFyZ2V0IHRhc2sgb2YgdGhlIHByb2Nlc3MgZ3JvdXAKKyAgICAgIHdoaWxlIHdlIGxhdGVyIHdhaXQgb24gYSB0aGF0IHNwZWNpZmljIFRJRC4gIFBJRCBwcm9jZXNzIHdhaXRzIGJlY29tZQorICAgICAgVElEIHRhc2sgc3BlY2lmaWMgd2FpdHMgZm9yIGEgcHJvY2VzcyB1bmRlciBwdHJhY2UoMikuICAqLworIyAgd2FybmluZyAiTmVpdGhlciB0a2lsbCgyKSBub3IgdGdraWxsKDIpIGF2YWlsYWJsZSwgcmlzayBvZiBzdHJhY2UgaGFuZ3MhIgorIyAgZGVmaW5lIG15X3Rna2lsbChwaWQsIHRpZCwgc2lnKSBraWxsICgodGlkKSwgKHNpZykpCisjIGVuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoSUE2NCkgJiYgZGVmaW5lZChMSU5VWCkKKyMgaW5jbHVkZSA8YXNtL3B0cmFjZV9vZmZzZXRzLmg+CisjZW5kaWYKKworI2lmZGVmIFVTRV9QUk9DRlMKKyNpbmNsdWRlIDxwb2xsLmg+CisjZW5kaWYKKworI2lmZGVmIFNWUjQKKyNpbmNsdWRlIDxzeXMvc3Ryb3B0cy5oPgorI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCisjaWZkZWYgSEFWRV9TWVNfVUlPX0gKKyNpbmNsdWRlIDxzeXMvdWlvLmg+CisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKyNkZWZpbmUgd2FpdDQgX193YWl0NAorI2VuZGlmCisKK2ludCBkZWJ1ZyA9IDAsIGZvbGxvd2ZvcmsgPSAwLCBmb2xsb3d2Zm9yayA9IDAsIGludGVyYWN0aXZlID0gMDsKK2ludCByZmxhZyA9IDAsIHRmbGFnID0gMCwgZHRpbWUgPSAwLCBjZmxhZyA9IDA7CitpbnQgaWZsYWcgPSAwLCB4ZmxhZyA9IDAsIHFmbGFnID0gMDsKK2ludCBwZmxhZ19zZWVuID0gMDsKKworLyogU29tZXRpbWVzIHdlIHdhbnQgdG8gcHJpbnQgb25seSBzdWNjZWVkaW5nIHN5c2NhbGxzLiAqLworaW50IG5vdF9mYWlsaW5nX29ubHkgPSAwOworCitjaGFyICp1c2VybmFtZSA9IE5VTEw7Cit1aWRfdCBydW5fdWlkOworZ2lkX3QgcnVuX2dpZDsKKworaW50IGFjb2x1bW4gPSBERUZBVUxUX0FDT0xVTU47CitpbnQgbWF4X3N0cmxlbiA9IERFRkFVTFRfU1RSTEVOOworY2hhciAqb3V0Zm5hbWUgPSBOVUxMOworRklMRSAqb3V0ZjsKK3N0cnVjdCB0Y2IgKip0Y2J0YWI7Cit1bnNpZ25lZCBpbnQgbnByb2NzLCB0Y2J0YWJzaXplOworY2hhciAqcHJvZ25hbWU7CitleHRlcm4gY2hhciAqKmVudmlyb247CisKK3N0YXRpYyBpbnQgZGV0YWNoIFAoKHN0cnVjdCB0Y2IgKnRjcCwgaW50IHNpZykpOworc3RhdGljIGludCB0cmFjZSBQKCh2b2lkKSk7CitzdGF0aWMgdm9pZCBjbGVhbnVwIFAoKHZvaWQpKTsKK3N0YXRpYyB2b2lkIGludGVycnVwdCBQKChpbnQgc2lnKSk7CitzdGF0aWMgc2lnc2V0X3QgZW1wdHlfc2V0LCBibG9ja2VkX3NldDsKKworI2lmZGVmIEhBVkVfU0lHX0FUT01JQ19UCitzdGF0aWMgdm9sYXRpbGUgc2lnX2F0b21pY190IGludGVycnVwdGVkOworI2Vsc2UgLyogIUhBVkVfU0lHX0FUT01JQ19UICovCisjaWZkZWYgX19TVERDX18KK3N0YXRpYyB2b2xhdGlsZSBpbnQgaW50ZXJydXB0ZWQ7CisjZWxzZSAvKiAhX19TVERDX18gKi8KK3N0YXRpYyBpbnQgaW50ZXJydXB0ZWQ7CisjZW5kaWYgLyogIV9fU1REQ19fICovCisjZW5kaWYgLyogIUhBVkVfU0lHX0FUT01JQ19UICovCisKKyNpZmRlZiBVU0VfUFJPQ0ZTCisKK3N0YXRpYyBzdHJ1Y3QgdGNiICpwZmQydGNiIFAoKGludCBwZmQpKTsKK3N0YXRpYyB2b2lkIHJlYXBlciBQKChpbnQgc2lnKSk7CitzdGF0aWMgdm9pZCByZWJ1aWxkX3BvbGx2IFAoKHZvaWQpKTsKK3N0YXRpYyBzdHJ1Y3QgcG9sbGZkICpwb2xsdjsKKworI2lmbmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUworCitzdGF0aWMgdm9pZCBwcm9jX3BvbGxfb3BlbiBQKCh2b2lkKSk7CitzdGF0aWMgdm9pZCBwcm9jX3BvbGxlciBQKChpbnQgcGZkKSk7CisKK3N0cnVjdCBwcm9jX3BvbGxmZCB7CisJaW50IGZkOworCWludCByZXZlbnRzOworCWludCBwaWQ7Cit9OworCitzdGF0aWMgaW50IHBvbGxlcl9waWQ7CitzdGF0aWMgaW50IHByb2NfcG9sbF9waXBlWzJdID0geyAtMSwgLTEgfTsKKworI2VuZGlmIC8qICFIQVZFX1BPTExBQkxFX1BST0NGUyAqLworCisjaWZkZWYgSEFWRV9NUF9QUk9DRlMKKyNkZWZpbmUgUE9MTFdBTlQJUE9MTFdSTk9STQorI2Vsc2UKKyNkZWZpbmUgUE9MTFdBTlQJUE9MTFBSSQorI2VuZGlmCisjZW5kaWYgLyogVVNFX1BST0NGUyAqLworCitzdGF0aWMgdm9pZAordXNhZ2Uob2ZwLCBleGl0dmFsKQorRklMRSAqb2ZwOworaW50IGV4aXR2YWw7Cit7CisJZnByaW50ZihvZnAsICJcCit1c2FnZTogc3RyYWNlIFstZGZmaGlxcnR0dFR2Vnh4XSBbLWEgY29sdW1uXSBbLWUgZXhwcl0gLi4uIFstbyBmaWxlXVxuXAorICAgICAgICAgICAgICBbLXAgcGlkXSAuLi4gWy1zIHN0cnNpemVdIFstdSB1c2VybmFtZV0gWy1FIHZhcj12YWxdIC4uLlxuXAorICAgICAgICAgICAgICBbY29tbWFuZCBbYXJnIC4uLl1dXG5cCisgICBvcjogc3RyYWNlIC1jIFstZSBleHByXSAuLi4gWy1PIG92ZXJoZWFkXSBbLVMgc29ydGJ5XSBbLUUgdmFyPXZhbF0gLi4uXG5cCisgICAgICAgICAgICAgIFtjb21tYW5kIFthcmcgLi4uXV1cblwKKy1jIC0tIGNvdW50IHRpbWUsIGNhbGxzLCBhbmQgZXJyb3JzIGZvciBlYWNoIHN5c2NhbGwgYW5kIHJlcG9ydCBzdW1tYXJ5XG5cCistZiAtLSBmb2xsb3cgZm9ya3MsIC1mZiAtLSB3aXRoIG91dHB1dCBpbnRvIHNlcGFyYXRlIGZpbGVzXG5cCistRiAtLSBhdHRlbXB0IHRvIGZvbGxvdyB2Zm9ya3MsIC1oIC0tIHByaW50IGhlbHAgbWVzc2FnZVxuXAorLWkgLS0gcHJpbnQgaW5zdHJ1Y3Rpb24gcG9pbnRlciBhdCB0aW1lIG9mIHN5c2NhbGxcblwKKy1xIC0tIHN1cHByZXNzIG1lc3NhZ2VzIGFib3V0IGF0dGFjaGluZywgZGV0YWNoaW5nLCBldGMuXG5cCistciAtLSBwcmludCByZWxhdGl2ZSB0aW1lc3RhbXAsIC10IC0tIGFic29sdXRlIHRpbWVzdGFtcCwgLXR0IC0tIHdpdGggdXNlY3NcblwKKy1UIC0tIHByaW50IHRpbWUgc3BlbnQgaW4gZWFjaCBzeXNjYWxsLCAtViAtLSBwcmludCB2ZXJzaW9uXG5cCistdiAtLSB2ZXJib3NlIG1vZGU6IHByaW50IHVuYWJicmV2aWF0ZWQgYXJndiwgc3RhdCwgdGVybWlvW3NdLCBldGMuIGFyZ3NcblwKKy14IC0tIHByaW50IG5vbi1hc2NpaSBzdHJpbmdzIGluIGhleCwgLXh4IC0tIHByaW50IGFsbCBzdHJpbmdzIGluIGhleFxuXAorLWEgY29sdW1uIC0tIGFsaWdubWVudCBDT0xVTU4gZm9yIHByaW50aW5nIHN5c2NhbGwgcmVzdWx0cyAoZGVmYXVsdCAlZClcblwKKy1lIGV4cHIgLS0gYSBxdWFsaWZ5aW5nIGV4cHJlc3Npb246IG9wdGlvbj1bIV1hbGwgb3Igb3B0aW9uPVshXXZhbDFbLHZhbDJdLi4uXG5cCisgICBvcHRpb25zOiB0cmFjZSwgYWJicmV2LCB2ZXJib3NlLCByYXcsIHNpZ25hbCwgcmVhZCwgb3Igd3JpdGVcblwKKy1vIGZpbGUgLS0gc2VuZCB0cmFjZSBvdXRwdXQgdG8gRklMRSBpbnN0ZWFkIG9mIHN0ZGVyclxuXAorLU8gb3ZlcmhlYWQgLS0gc2V0IG92ZXJoZWFkIGZvciB0cmFjaW5nIHN5c2NhbGxzIHRvIE9WRVJIRUFEIHVzZWNzXG5cCistcCBwaWQgLS0gdHJhY2UgcHJvY2VzcyB3aXRoIHByb2Nlc3MgaWQgUElELCBtYXkgYmUgcmVwZWF0ZWRcblwKKy1zIHN0cnNpemUgLS0gbGltaXQgbGVuZ3RoIG9mIHByaW50IHN0cmluZ3MgdG8gU1RSU0laRSBjaGFycyAoZGVmYXVsdCAlZClcblwKKy1TIHNvcnRieSAtLSBzb3J0IHN5c2NhbGwgY291bnRzIGJ5OiB0aW1lLCBjYWxscywgbmFtZSwgbm90aGluZyAoZGVmYXVsdCAlcylcblwKKy11IHVzZXJuYW1lIC0tIHJ1biBjb21tYW5kIGFzIHVzZXJuYW1lIGhhbmRsaW5nIHNldHVpZCBhbmQvb3Igc2V0Z2lkXG5cCistRSB2YXI9dmFsIC0tIHB1dCB2YXI9dmFsIGluIHRoZSBlbnZpcm9ubWVudCBmb3IgY29tbWFuZFxuXAorLUUgdmFyIC0tIHJlbW92ZSB2YXIgZnJvbSB0aGUgZW52aXJvbm1lbnQgZm9yIGNvbW1hbmRcblwKKyIgLyogdGhpcyBpcyBicm9rZW4sIHNvIGRvbid0IGRvY3VtZW50IGl0CisteiAtLSBwcmludCBvbmx5IHN1Y2NlZWRpbmcgc3lzY2FsbHNcblwKKyAgKi8KKywgREVGQVVMVF9BQ09MVU1OLCBERUZBVUxUX1NUUkxFTiwgREVGQVVMVF9TT1JUQlkpOworCWV4aXQoZXhpdHZhbCk7Cit9CisKKyNpZmRlZiBTVlI0CisjaWZkZWYgTUlQUwordm9pZAorZm9vYmFyKCkKK3sKK30KKyNlbmRpZiAvKiBNSVBTICovCisjZW5kaWYgLyogU1ZSNCAqLworCitpbnQKK21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlleHRlcm4gaW50IG9wdGluZDsKKwlleHRlcm4gY2hhciAqb3B0YXJnOworCXN0cnVjdCB0Y2IgKnRjcDsKKwlpbnQgYywgcGlkID0gMDsKKwlzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworCisJc3RhdGljIGNoYXIgYnVmW0JVRlNJWl07CisKKwlwcm9nbmFtZSA9IGFyZ3ZbMF0gPyBhcmd2WzBdIDogInN0cmFjZSI7CisKKwkvKiBBbGxvY2F0ZSB0aGUgaW5pdGlhbCB0Y2J0YWIuICAqLworCXRjYnRhYnNpemUgPSBhcmdjOwkvKiBTdXJlbHkgZW5vdWdoIGZvciBhbGwgLXAgYXJncy4gICovCisJaWYgKCh0Y2J0YWIgPSBjYWxsb2MgKHRjYnRhYnNpemUsIHNpemVvZiB0Y2J0YWJbMF0pKSA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IG91dCBvZiBtZW1vcnlcbiIsIHByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYgKCh0Y2J0YWJbMF0gPSBjYWxsb2MgKHRjYnRhYnNpemUsIHNpemVvZiB0Y2J0YWJbMF1bMF0pKSA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAiJXM6IG91dCBvZiBtZW1vcnlcbiIsIHByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisJZm9yICh0Y3AgPSB0Y2J0YWJbMF07IHRjcCA8ICZ0Y2J0YWJbMF1bdGNidGFic2l6ZV07ICsrdGNwKQorCQl0Y2J0YWJbdGNwIC0gdGNidGFiWzBdXSA9ICZ0Y2J0YWJbMF1bdGNwIC0gdGNidGFiWzBdXTsKKworCW91dGYgPSBzdGRlcnI7CisJaW50ZXJhY3RpdmUgPSAxOworCXNldF9zb3J0YnkoREVGQVVMVF9TT1JUQlkpOworCXNldF9wZXJzb25hbGl0eShERUZBVUxUX1BFUlNPTkFMSVRZKTsKKwlxdWFsaWZ5KCJ0cmFjZT1hbGwiKTsKKwlxdWFsaWZ5KCJhYmJyZXY9YWxsIik7CisJcXVhbGlmeSgidmVyYm9zZT1hbGwiKTsKKwlxdWFsaWZ5KCJzaWduYWw9YWxsIik7CisJd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsCisJCSIrY2RmRmhpcXJ0VHZWeHphOmU6bzpPOnA6czpTOnU6RToiKSkgIT0gRU9GKSB7CisJCXN3aXRjaCAoYykgeworCQljYXNlICdjJzoKKwkJCWNmbGFnKys7CisJCQlkdGltZSsrOworCQkJYnJlYWs7CisJCWNhc2UgJ2QnOgorCQkJZGVidWcrKzsKKwkJCWJyZWFrOworCQljYXNlICdmJzoKKwkJCWZvbGxvd2ZvcmsrKzsKKwkJCWJyZWFrOworCQljYXNlICdGJzoKKwkJCWZvbGxvd3Zmb3JrKys7CisJCQlicmVhazsKKwkJY2FzZSAnaCc6CisJCQl1c2FnZShzdGRvdXQsIDApOworCQkJYnJlYWs7CisJCWNhc2UgJ2knOgorCQkJaWZsYWcrKzsKKwkJCWJyZWFrOworCQljYXNlICdxJzoKKwkJCXFmbGFnKys7CisJCQlicmVhazsKKwkJY2FzZSAncic6CisJCQlyZmxhZysrOworCQkJdGZsYWcrKzsKKwkJCWJyZWFrOworCQljYXNlICd0JzoKKwkJCXRmbGFnKys7CisJCQlicmVhazsKKwkJY2FzZSAnVCc6CisJCQlkdGltZSsrOworCQkJYnJlYWs7CisJCWNhc2UgJ3gnOgorCQkJeGZsYWcrKzsKKwkJCWJyZWFrOworCQljYXNlICd2JzoKKwkJCXF1YWxpZnkoImFiYnJldj1ub25lIik7CisJCQlicmVhazsKKwkJY2FzZSAnVic6CisJCQlwcmludGYoIiVzIC0tIHZlcnNpb24gJXNcbiIsIFBBQ0tBR0VfTkFNRSwgVkVSU0lPTik7CisJCQlleGl0KDApOworCQkJYnJlYWs7CisJCWNhc2UgJ3onOgorCQkJbm90X2ZhaWxpbmdfb25seSA9IDE7CisJCQlicmVhazsKKwkJY2FzZSAnYSc6CisJCQlhY29sdW1uID0gYXRvaShvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ2UnOgorCQkJcXVhbGlmeShvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ28nOgorCQkJb3V0Zm5hbWUgPSBzdHJkdXAob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdPJzoKKwkJCXNldF9vdmVyaGVhZChhdG9pKG9wdGFyZykpOworCQkJYnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJaWYgKChwaWQgPSBhdG9pKG9wdGFyZykpIDw9IDApIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBJbnZhbGlkIHByb2Nlc3MgaWQ6ICVzXG4iLAorCQkJCQlwcm9nbmFtZSwgb3B0YXJnKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChwaWQgPT0gZ2V0cGlkKCkpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBJJ20gc29ycnksIEkgY2FuJ3QgbGV0IHlvdSBkbyB0aGF0LCBEYXZlLlxuIiwgcHJvZ25hbWUpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKCh0Y3AgPSBhbGxvY3RjYihwaWQpKSA9PSBOVUxMKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICIlczogb3V0IG9mIG1lbW9yeVxuIiwKKwkJCQkJcHJvZ25hbWUpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQl0Y3AtPmZsYWdzIHw9IFRDQl9BVFRBQ0hFRDsKKwkJCXBmbGFnX3NlZW4rKzsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCW1heF9zdHJsZW4gPSBhdG9pKG9wdGFyZyk7CisJCQlpZiAobWF4X3N0cmxlbiA8IDApIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkJIiVzOiBpbnZhbGlkIC1zIGFyZ3VtZW50OiAlc1xuIiwKKwkJCQkJcHJvZ25hbWUsIG9wdGFyZyk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlICdTJzoKKwkJCXNldF9zb3J0Ynkob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICd1JzoKKwkJCXVzZXJuYW1lID0gc3RyZHVwKG9wdGFyZyk7CisJCQlicmVhazsKKwkJY2FzZSAnRSc6CisJCQlpZiAocHV0ZW52KG9wdGFyZykgPCAwKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICIlczogb3V0IG9mIG1lbW9yeVxuIiwKKwkJCQkJcHJvZ25hbWUpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXVzYWdlKHN0ZGVyciwgMSk7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICgob3B0aW5kID09IGFyZ2MpID09ICFwZmxhZ19zZWVuKQorCQl1c2FnZShzdGRlcnIsIDEpOworCisJaWYgKGZvbGxvd2ZvcmsgPiAxICYmIGNmbGFnKSB7CisJCWZwcmludGYoc3RkZXJyLAorCQkJIiVzOiAtYyBhbmQgLWZmIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgb3B0aW9uc1xuIiwKKwkJCXByb2duYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisKKwkvKiBTZWUgaWYgdGhleSB3YW50IHRvIHJ1biBhcyBhbm90aGVyIHVzZXIuICovCisJaWYgKHVzZXJuYW1lICE9IE5VTEwpIHsKKwkJc3RydWN0IHBhc3N3ZCAqcGVudDsKKworCQlpZiAoZ2V0dWlkKCkgIT0gMCB8fCBnZXRldWlkKCkgIT0gMCkgeworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJIiVzOiB5b3UgbXVzdCBiZSByb290IHRvIHVzZSB0aGUgLXUgb3B0aW9uXG4iLAorCQkJCXByb2duYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJaWYgKChwZW50ID0gZ2V0cHduYW0odXNlcm5hbWUpKSA9PSBOVUxMKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBjYW5ub3QgZmluZCB1c2VyIGAlcydcbiIsCisJCQkJcHJvZ25hbWUsIHVzZXJuYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJcnVuX3VpZCA9IHBlbnQtPnB3X3VpZDsKKwkJcnVuX2dpZCA9IHBlbnQtPnB3X2dpZDsKKwl9CisJZWxzZSB7CisJCXJ1bl91aWQgPSBnZXR1aWQoKTsKKwkJcnVuX2dpZCA9IGdldGdpZCgpOworCX0KKworI2lmbmRlZiBTVlI0CisJc2V0cmV1aWQoZ2V0ZXVpZCgpLCBnZXR1aWQoKSk7CisjZW5kaWYKKworCS8qIENoZWNrIGlmIHRoZXkgd2FudCB0byByZWRpcmVjdCB0aGUgb3V0cHV0LiAqLworCWlmIChvdXRmbmFtZSkgeworCQlsb25nIGY7CisKKwkJLyogU2VlIGlmIHRoZXkgd2FudCB0byBwaXBlIHRoZSBvdXRwdXQuICovCisJCWlmIChvdXRmbmFtZVswXSA9PSAnfCcgfHwgb3V0Zm5hbWVbMF0gPT0gJyEnKSB7CisJCQkvKgorCQkJICogV2UgY2FuJ3QgZG8gdGhlIDxvdXRmbmFtZT4uUElEIGZ1bm55IGJ1c2luZXNzCisJCQkgKiB3aGVuIHVzaW5nIHBvcGVuLCBzbyBwcm9oaWJpdCBpdC4KKwkJCSAqLworCQkJaWYgKGZvbGxvd2ZvcmsgPiAxKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJcCislczogcGlwaW5nIHRoZSBvdXRwdXQgYW5kIC1mZiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIG9wdGlvbnNcbiIsCisJCQkJCXByb2duYW1lKTsKKwkJCQlleGl0KDEpOworCQkJfQorCisjaWZkZWYgSEFWRV9BTkRST0lEX09TCisgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwib3V0cHV0IHRvIGEgcGlwZSBub3Qgc3VwcG9ydGVkIG9uIGFuZHJvaWQuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQoLTEpOworI2Vsc2UKKwkJCWlmICgob3V0ZiA9IHBvcGVuKG91dGZuYW1lICsgMSwgInciKSkgPT0gTlVMTCkgeworCQkJCWZwcmludGYoc3RkZXJyLCAiJXM6IGNhbid0IHBvcGVuICclcyc6ICVzXG4iLAorCQkJCQlwcm9nbmFtZSwgb3V0Zm5hbWUgKyAxLAorCQkJCQlzdHJlcnJvcihlcnJubykpOworCQkJCWV4aXQoMSk7CisJCQl9CisjZW5kaWYKKwkJfQorCQllbHNlIGlmICgob3V0ZiA9IGZvcGVuKG91dGZuYW1lLCAidyIpKSA9PSBOVUxMKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBjYW4ndCBmb3BlbiAnJXMnOiAlc1xuIiwKKwkJCQlwcm9nbmFtZSwgb3V0Zm5hbWUsIHN0cmVycm9yKGVycm5vKSk7CisJCQlleGl0KDEpOworCQl9CisKKwkJaWYgKChmPWZjbnRsKGZpbGVubyhvdXRmKSwgRl9HRVRGRCkpIDwgMCApIHsKKwkJCXBlcnJvcigiZmFpbGVkIHRvIGdldCBmbGFncyBmb3Igb3V0cHV0ZmlsZSIpOworCQkJZXhpdCgxKTsKKwkJfQorCisJCWlmIChmY250bChmaWxlbm8ob3V0ZiksIEZfU0VURkQsIGZ8RkRfQ0xPRVhFQykgPCAwICkgeworCQkJcGVycm9yKCJmYWlsZWQgdG8gc2V0IGZsYWdzIGZvciBvdXRwdXRmaWxlIik7CisJCQlleGl0KDEpOworCQl9CisJfQorCisjaWZuZGVmIFNWUjQKKwlzZXRyZXVpZChnZXRldWlkKCksIGdldHVpZCgpKTsKKyNlbmRpZgorCisJaWYgKCFvdXRmbmFtZSB8fCBvdXRmbmFtZVswXSA9PSAnfCcgfHwgb3V0Zm5hbWVbMF0gPT0gJyEnKQorCQlzZXR2YnVmKG91dGYsIGJ1ZiwgX0lPTEJGLCBCVUZTSVopOworCWlmIChvdXRmbmFtZSAmJiBvcHRpbmQgPCBhcmdjKSB7CisJCWludGVyYWN0aXZlID0gMDsKKwkJcWZsYWcgPSAxOworCX0KKworCWZvciAoYyA9IDA7IGMgPCB0Y2J0YWJzaXplOyBjKyspIHsKKwkJdGNwID0gdGNidGFiW2NdOworCQkvKiBSZWluaXRpYWxpemUgdGhlIG91dHB1dCBzaW5jZSBpdCBtYXkgaGF2ZSBjaGFuZ2VkLiAqLworCQl0Y3AtPm91dGYgPSBvdXRmOworCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKSB8fCAhKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpKQorCQkJY29udGludWU7CisjaWZkZWYgVVNFX1BST0NGUworCQlpZiAocHJvY19vcGVuKHRjcCwgMSkgPCAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgInRyb3VibGUgb3BlbmluZyBwcm9jIGZpbGVcbiIpOworCQkJZHJvcHRjYih0Y3ApOworCQkJY29udGludWU7CisJCX0KKyNlbHNlIC8qICFVU0VfUFJPQ0ZTICovCisjIGlmZGVmIExJTlVYCisJCWlmICh0Y3AtPmZsYWdzICYgVENCX0NMT05FX1RIUkVBRCkKKwkJCWNvbnRpbnVlOworCQlpZiAoZm9sbG93Zm9yaykgeworCQkJY2hhciBwcm9jZGlyW01BWFBBVEhMRU5dOworCQkJRElSICpkaXI7CisJCQlzcHJpbnRmKHByb2NkaXIsICIvcHJvYy8lZC90YXNrIiwgdGNwLT5waWQpOworCQkJZGlyID0gb3BlbmRpcihwcm9jZGlyKTsKKwkJCWlmIChkaXIgIT0gTlVMTCkgeworCQkJCXVuc2lnbmVkIGludCBudGlkID0gMCwgbmVyciA9IDA7CisJCQkJc3RydWN0IGRpcmVudCAqZGU7CisJCQkJaW50IHRpZDsKKwkJCQl3aGlsZSAoKGRlID0gcmVhZGRpcihkaXIpKSAhPSBOVUxMKSB7CisJCQkJCWlmIChkZS0+ZF9maWxlbm8gPT0gMCB8fAorCQkJCQkgICAgZGUtPmRfbmFtZVswXSA9PSAnLicpCisJCQkJCQljb250aW51ZTsKKwkJCQkJdGlkID0gYXRvaShkZS0+ZF9uYW1lKTsKKwkJCQkJaWYgKHRpZCA8PSAwKQorCQkJCQkJY29udGludWU7CisJCQkJCSsrbnRpZDsKKwkJCQkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCB0aWQsCisJCQkJCQkgICAoY2hhciAqKSAxLCAwKSA8IDApCisJCQkJCQkrK25lcnI7CisJCQkJCWVsc2UgaWYgKHRpZCAhPSB0Y2J0YWJbY10tPnBpZCkgeworCQkJCQkJaWYgKG5wcm9jcyA9PSB0Y2J0YWJzaXplICYmCisJCQkJCQkgICAgZXhwYW5kX3RjYnRhYigpKQorCQkJCQkJCXRjcCA9IE5VTEw7CisJCQkJCQllbHNlCisJCQkJCQkJdGNwID0gYWxsb2N0Y2IodGlkKTsKKwkJCQkJCWlmICh0Y3AgPT0gTlVMTCkKKwkJCQkJCQlleGl0KDEpOworCQkJCQkJdGNwLT5mbGFncyB8PSBUQ0JfQVRUQUNIRUR8VENCX0NMT05FX1RIUkVBRHxUQ0JfQ0xPTkVfREVUQUNIRUR8VENCX0ZPTExPV0ZPUks7CisJCQkJCQl0Y2J0YWJbY10tPm5jaGlsZHJlbisrOworCQkJCQkJdGNidGFiW2NdLT5uY2xvbmVfdGhyZWFkcysrOworCQkJCQkJdGNidGFiW2NdLT5uY2xvbmVfZGV0YWNoZWQrKzsKKwkJCQkJCXRjcC0+cGFyZW50ID0gdGNidGFiW2NdOworCQkJCQl9CisJCQkJfQorCQkJCWNsb3NlZGlyKGRpcik7CisJCQkJaWYgKG5lcnIgPT0gbnRpZCkgeworCQkJCQlwZXJyb3IoImF0dGFjaDogcHRyYWNlKFBUUkFDRV9BVFRBQ0gsIC4uLikiKTsKKwkJCQkJZHJvcHRjYih0Y3ApOworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQkJaWYgKCFxZmxhZykgeworCQkJCQludGlkIC09IG5lcnI7CisJCQkJCWlmIChudGlkID4gMSkKKwkJCQkJCWZwcmludGYoc3RkZXJyLCAiXAorUHJvY2VzcyAldSBhdHRhY2hlZCB3aXRoICV1IHRocmVhZHMgLSBpbnRlcnJ1cHQgdG8gcXVpdFxuIiwKKwkJCQkJCQl0Y3AtPnBpZCwgbnRpZCk7CisJCQkJCWVsc2UKKwkJCQkJCWZwcmludGYoc3RkZXJyLCAiXAorUHJvY2VzcyAldSBhdHRhY2hlZCAtIGludGVycnVwdCB0byBxdWl0XG4iLAorCQkJCQkJCXRjcC0+cGlkKTsKKwkJCQl9CisJCQkJY29udGludWU7CisJCQl9CisJCX0KKyMgZW5kaWYKKwkJaWYgKHB0cmFjZShQVFJBQ0VfQVRUQUNILCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7CisJCQlwZXJyb3IoImF0dGFjaDogcHRyYWNlKFBUUkFDRV9BVFRBQ0gsIC4uLikiKTsKKwkJCWRyb3B0Y2IodGNwKTsKKwkJCWNvbnRpbnVlOworCQl9CisjZW5kaWYgLyogIVVTRV9QUk9DRlMgKi8KKwkJaWYgKCFxZmxhZykKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCSJQcm9jZXNzICV1IGF0dGFjaGVkIC0gaW50ZXJydXB0IHRvIHF1aXRcbiIsCisJCQkJdGNwLT5waWQpOworCX0KKworCWlmICghcGZsYWdfc2VlbikgeworCQlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOworCQljaGFyICpmaWxlbmFtZTsKKwkJY2hhciBwYXRobmFtZVtNQVhQQVRITEVOXTsKKworCQlmaWxlbmFtZSA9IGFyZ3Zbb3B0aW5kXTsKKwkJaWYgKHN0cmNocihmaWxlbmFtZSwgJy8nKSkgeworCQkJaWYgKHN0cmxlbihmaWxlbmFtZSkgPiBzaXplb2YgcGF0aG5hbWUgLSAxKSB7CisJCQkJZXJybm8gPSBFTkFNRVRPT0xPTkc7CisJCQkJcGVycm9yKCJzdHJhY2U6IGV4ZWMiKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJc3RyY3B5KHBhdGhuYW1lLCBmaWxlbmFtZSk7CisJCX0KKyNpZmRlZiBVU0VfREVCVUdHSU5HX0VYRUMKKwkJLyoKKwkJICogRGVidWdnZXJzIGN1c3RvbWFyaWx5IGNoZWNrIHRoZSBjdXJyZW50IGRpcmVjdG9yeQorCQkgKiBmaXJzdCByZWdhcmRsZXNzIG9mIHRoZSBwYXRoIGJ1dCBkb2luZyB0aGF0IGdpdmVzCisJCSAqIHNlY3VyaXR5IGdlZWtzIGEgcGFuaWMgYXR0YWNrLgorCQkgKi8KKwkJZWxzZSBpZiAoc3RhdChmaWxlbmFtZSwgJnN0YXRidWYpID09IDApCisJCQlzdHJjcHkocGF0aG5hbWUsIGZpbGVuYW1lKTsKKyNlbmRpZiAvKiBVU0VfREVCVUdHSU5HX0VYRUMgKi8KKwkJZWxzZSB7CisJCQljaGFyICpwYXRoOworCQkJaW50IG0sIG4sIGxlbjsKKworCQkJZm9yIChwYXRoID0gZ2V0ZW52KCJQQVRIIik7IHBhdGggJiYgKnBhdGg7IHBhdGggKz0gbSkgeworCQkJCWlmIChzdHJjaHIocGF0aCwgJzonKSkgeworCQkJCQluID0gc3RyY2hyKHBhdGgsICc6JykgLSBwYXRoOworCQkJCQltID0gbiArIDE7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJbSA9IG4gPSBzdHJsZW4ocGF0aCk7CisJCQkJaWYgKG4gPT0gMCkgeworCQkJCQlpZiAoIWdldGN3ZChwYXRobmFtZSwgTUFYUEFUSExFTikpCisJCQkJCQljb250aW51ZTsKKwkJCQkJbGVuID0gc3RybGVuKHBhdGhuYW1lKTsKKwkJCQl9CisJCQkJZWxzZSBpZiAobiA+IHNpemVvZiBwYXRobmFtZSAtIDEpCisJCQkJCWNvbnRpbnVlOworCQkJCWVsc2UgeworCQkJCQlzdHJuY3B5KHBhdGhuYW1lLCBwYXRoLCBuKTsKKwkJCQkJbGVuID0gbjsKKwkJCQl9CisJCQkJaWYgKGxlbiAmJiBwYXRobmFtZVtsZW4gLSAxXSAhPSAnLycpCisJCQkJCXBhdGhuYW1lW2xlbisrXSA9ICcvJzsKKwkJCQlzdHJjcHkocGF0aG5hbWUgKyBsZW4sIGZpbGVuYW1lKTsKKwkJCQlpZiAoc3RhdChwYXRobmFtZSwgJnN0YXRidWYpID09IDAgJiYKKwkJCQkgICAgLyogQWNjZXB0IG9ubHkgcmVndWxhciBmaWxlcworCQkJCSAgICAgICB3aXRoIHNvbWUgZXhlY3V0ZSBiaXRzIHNldC4KKwkJCQkgICAgICAgWFhYIG5vdCBwZXJmZWN0LCBtaWdodCBzdGlsbCBmYWlsICovCisJCQkJICAgIFNfSVNSRUcoc3RhdGJ1Zi5zdF9tb2RlKSAmJgorCQkJCSAgICAoc3RhdGJ1Zi5zdF9tb2RlICYgMDExMSkpCisJCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChzdGF0KHBhdGhuYW1lLCAmc3RhdGJ1ZikgPCAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiAlczogY29tbWFuZCBub3QgZm91bmRcbiIsCisJCQkJcHJvZ25hbWUsIGZpbGVuYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJc3dpdGNoIChwaWQgPSBmb3JrKCkpIHsKKwkJY2FzZSAtMToKKwkJCXBlcnJvcigic3RyYWNlOiBmb3JrIik7CisJCQljbGVhbnVwKCk7CisJCQlleGl0KDEpOworCQkJYnJlYWs7CisJCWNhc2UgMDogeworI2lmZGVmIFVTRV9QUk9DRlMKKwkJICAgICAgICBpZiAob3V0ZiAhPSBzdGRlcnIpIGNsb3NlIChmaWxlbm8gKG91dGYpKTsKKyNpZmRlZiBNSVBTCisJCQkvKiBLbHVkZ2UgZm9yIFNHSSwgc2VlIHByb2Nfb3BlbiBmb3IgZGV0YWlscy4gKi8KKwkJCXNhLnNhX2hhbmRsZXIgPSBmb29iYXI7CisJCQlzYS5zYV9mbGFncyA9IDA7CisJCQlzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CisJCQlzaWdhY3Rpb24oU0lHSU5ULCAmc2EsIE5VTEwpOworI2VuZGlmIC8qIE1JUFMgKi8KKyNpZm5kZWYgRlJFRUJTRAorCQkJcGF1c2UoKTsKKyNlbHNlIC8qIEZSRUVCU0QgKi8KKwkJCWtpbGwoZ2V0cGlkKCksIFNJR1NUT1ApOyAvKiBzdG9wIEhFUkUgKi8KKyNlbmRpZiAvKiBGUkVFQlNEICovCisjZWxzZSAvKiAhVVNFX1BST0NGUyAqLworCQkJaWYgKG91dGYhPXN0ZGVycikKKwkJCQljbG9zZShmaWxlbm8gKG91dGYpKTsKKworCQkJaWYgKHB0cmFjZShQVFJBQ0VfVFJBQ0VNRSwgMCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7CisJCQkJcGVycm9yKCJzdHJhY2U6IHB0cmFjZShQVFJBQ0VfVFJBQ0VNRSwgLi4uKSIpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJCWlmIChkZWJ1ZykKKwkJCQlraWxsKGdldHBpZCgpLCBTSUdTVE9QKTsKKworCQkJaWYgKHVzZXJuYW1lICE9IE5VTEwgfHwgZ2V0ZXVpZCgpID09IDApIHsKKwkJCQl1aWRfdCBydW5fZXVpZCA9IHJ1bl91aWQ7CisJCQkJZ2lkX3QgcnVuX2VnaWQgPSBydW5fZ2lkOworCisJCQkJaWYgKHN0YXRidWYuc3RfbW9kZSAmIFNfSVNVSUQpCisJCQkJCXJ1bl9ldWlkID0gc3RhdGJ1Zi5zdF91aWQ7CisJCQkJaWYgKHN0YXRidWYuc3RfbW9kZSAmIFNfSVNHSUQpCisJCQkJCXJ1bl9lZ2lkID0gc3RhdGJ1Zi5zdF9naWQ7CisKKwkJCQkvKgorCQkJCSAqIEl0IGlzIGltcG9ydGFudCB0byBzZXQgZ3JvdXBzIGJlZm9yZSB3ZQorCQkJCSAqIGxvc2UgcHJpdmlsZWdlcyBvbiBzZXR1aWQuCisJCQkJICovCisJCQkJaWYgKHVzZXJuYW1lICE9IE5VTEwpIHsKKyNpZm5kZWYgSEFWRV9BTkRST0lEX09TCisJCQkJCWlmIChpbml0Z3JvdXBzKHVzZXJuYW1lLCBydW5fZ2lkKSA8IDApIHsKKwkJCQkJCXBlcnJvcigiaW5pdGdyb3VwcyIpOworCQkJCQkJZXhpdCgxKTsKKwkJCQkJfQorI2VuZGlmIC8qIEhBVkVfQU5EUk9JRF9PUyAqLworCQkJCQlpZiAoc2V0cmVnaWQocnVuX2dpZCwgcnVuX2VnaWQpIDwgMCkgeworCQkJCQkJcGVycm9yKCJzZXRyZWdpZCIpOworCQkJCQkJZXhpdCgxKTsKKwkJCQkJfQorCQkJCQlpZiAoc2V0cmV1aWQocnVuX3VpZCwgcnVuX2V1aWQpIDwgMCkgeworCQkJCQkJcGVycm9yKCJzZXRyZXVpZCIpOworCQkJCQkJZXhpdCgxKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCQlzZXRyZXVpZChydW5fdWlkLCBydW5fdWlkKTsKKworCQkJLyoKKwkJCSAqIEluZHVjZSBhbiBpbW1lZGlhdGUgc3RvcCBzbyB0aGF0IHRoZSBwYXJlbnQKKwkJCSAqIHdpbGwgcmVzdW1lIHVzIHdpdGggUFRSQUNFX1NZU0NBTEwgYW5kIGRpc3BsYXkKKwkJCSAqIHRoaXMgZXhlY3ZlIGNhbGwgbm9ybWFsbHkuCisJCQkgKi8KKwkJCWtpbGwoZ2V0cGlkKCksIFNJR1NUT1ApOworI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCisKKwkJCWV4ZWN2KHBhdGhuYW1lLCAmYXJndltvcHRpbmRdKTsKKwkJCXBlcnJvcigic3RyYWNlOiBleGVjIik7CisJCQlfZXhpdCgxKTsKKwkJCWJyZWFrOworCQl9CisJCWRlZmF1bHQ6CisJCQlpZiAoKHRjcCA9IGFsbG9jdGNiKHBpZCkpID09IE5VTEwpIHsKKwkJCQljbGVhbnVwKCk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKyNpZmRlZiBVU0VfUFJPQ0ZTCisJCQlpZiAocHJvY19vcGVuKHRjcCwgMCkgPCAwKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJ0cm91YmxlIG9wZW5pbmcgcHJvYyBmaWxlXG4iKTsKKwkJCQljbGVhbnVwKCk7CisJCQkJZXhpdCgxKTsKKwkJCX0KKyNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCisJCQlicmVhazsKKwkJfQorCX0KKworCXNpZ2VtcHR5c2V0KCZlbXB0eV9zZXQpOworCXNpZ2VtcHR5c2V0KCZibG9ja2VkX3NldCk7CisJc2Euc2FfaGFuZGxlciA9IFNJR19JR047CisJc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOworCXNhLnNhX2ZsYWdzID0gMDsKKwlzaWdhY3Rpb24oU0lHVFRPVSwgJnNhLCBOVUxMKTsKKwlzaWdhY3Rpb24oU0lHVFRJTiwgJnNhLCBOVUxMKTsKKwlpZiAoaW50ZXJhY3RpdmUpIHsKKwkJc2lnYWRkc2V0KCZibG9ja2VkX3NldCwgU0lHSFVQKTsKKwkJc2lnYWRkc2V0KCZibG9ja2VkX3NldCwgU0lHSU5UKTsKKwkJc2lnYWRkc2V0KCZibG9ja2VkX3NldCwgU0lHUVVJVCk7CisJCXNpZ2FkZHNldCgmYmxvY2tlZF9zZXQsIFNJR1BJUEUpOworCQlzaWdhZGRzZXQoJmJsb2NrZWRfc2V0LCBTSUdURVJNKTsKKwkJc2Euc2FfaGFuZGxlciA9IGludGVycnVwdDsKKyNpZmRlZiBTVU5PUzQKKwkJLyogUE9TSVggc2lnbmFscyBvbiBzdW5vczQuMSBhcmUgYSBsaXR0bGUgYnJva2VuLiAqLworCQlzYS5zYV9mbGFncyA9IFNBX0lOVEVSUlVQVDsKKyNlbmRpZiAvKiBTVU5PUzQgKi8KKwl9CisJc2lnYWN0aW9uKFNJR0hVUCwgJnNhLCBOVUxMKTsKKwlzaWdhY3Rpb24oU0lHSU5ULCAmc2EsIE5VTEwpOworCXNpZ2FjdGlvbihTSUdRVUlULCAmc2EsIE5VTEwpOworCXNpZ2FjdGlvbihTSUdQSVBFLCAmc2EsIE5VTEwpOworCXNpZ2FjdGlvbihTSUdURVJNLCAmc2EsIE5VTEwpOworI2lmZGVmIFVTRV9QUk9DRlMKKwlzYS5zYV9oYW5kbGVyID0gcmVhcGVyOworCXNpZ2FjdGlvbihTSUdDSExELCAmc2EsIE5VTEwpOworI2Vsc2UKKwkvKiBNYWtlIHN1cmUgU0lHQ0hMRCBoYXMgdGhlIGRlZmF1bHQgYWN0aW9uIHNvIHRoYXQgd2FpdHBpZAorCSAgIGRlZmluaXRlbHkgd29ya3Mgd2l0aG91dCBsb3NpbmcgdHJhY2sgb2YgY2hpbGRyZW4uICBUaGUgdXNlcgorCSAgIHNob3VsZCBub3QgaGF2ZSBnaXZlbiB1cyBhIGJvZ3VzIHN0YXRlIHRvIGluaGVyaXQsIGJ1dCBoZSBtaWdodAorCSAgIGhhdmUuICBBcmd1YWJseSB3ZSBzaG91bGQgZGV0ZWN0IFNJR19JR04gaGVyZSBhbmQgcGFzcyBpdCBvbgorCSAgIHRvIGNoaWxkcmVuLCBidXQgcHJvYmFibHkgbm9vbmUgcmVhbGx5IG5lZWRzIHRoYXQuICAqLworCXNhLnNhX2hhbmRsZXIgPSBTSUdfREZMOworCXNpZ2FjdGlvbihTSUdDSExELCAmc2EsIE5VTEwpOworI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KKworCWlmICh0cmFjZSgpIDwgMCkKKwkJZXhpdCgxKTsKKwljbGVhbnVwKCk7CisJZXhpdCgwKTsKK30KKwordm9pZAorbmV3b3V0Zih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJY2hhciBuYW1lW01BWFBBVEhMRU5dOworCUZJTEUgKmZwOworCisJaWYgKG91dGZuYW1lICYmIGZvbGxvd2ZvcmsgPiAxKSB7CisJCXNwcmludGYobmFtZSwgIiVzLiV1Iiwgb3V0Zm5hbWUsIHRjcC0+cGlkKTsKKyNpZm5kZWYgU1ZSNAorCQlzZXRyZXVpZChnZXRldWlkKCksIGdldHVpZCgpKTsKKyNlbmRpZgorCQlmcCA9IGZvcGVuKG5hbWUsICJ3Iik7CisjaWZuZGVmIFNWUjQKKwkJc2V0cmV1aWQoZ2V0ZXVpZCgpLCBnZXR1aWQoKSk7CisjZW5kaWYKKwkJaWYgKGZwID09IE5VTEwpIHsKKwkJCXBlcnJvcigiZm9wZW4iKTsKKwkJCXJldHVybjsKKwkJfQorCQl0Y3AtPm91dGYgPSBmcDsKKwl9CisJcmV0dXJuOworfQorCitpbnQKK2V4cGFuZF90Y2J0YWIoKQoreworCS8qIEFsbG9jYXRlIHNvbWUgbW9yZSBUQ0JzIGFuZCBleHBhbmQgdGhlIHRhYmxlLgorCSAgIFdlIGRvbid0IHdhbnQgdG8gcmVsb2NhdGUgdGhlIFRDQnMgYmVjYXVzZSBvdXIKKwkgICBjYWxsZXJzIGhhdmUgcG9pbnRlcnMgYW5kIGl0IHdvdWxkIGJlIGEgcGFpbi4KKwkgICBTbyB0Y2J0YWIgaXMgYSB0YWJsZSBvZiBwb2ludGVycy4gIFNpbmNlIHdlIG5ldmVyCisJICAgZnJlZSB0aGUgVENCcywgd2UgYWxsb2NhdGUgYSBzaW5nbGUgY2h1bmsgb2YgbWFueS4gICovCisJc3RydWN0IHRjYiAqKm5ld3RhYiA9IChzdHJ1Y3QgdGNiICoqKQorCQlyZWFsbG9jKHRjYnRhYiwgMiAqIHRjYnRhYnNpemUgKiBzaXplb2YgdGNidGFiWzBdKTsKKwlzdHJ1Y3QgdGNiICpuZXd0Y2JzID0gKHN0cnVjdCB0Y2IgKikgY2FsbG9jKHRjYnRhYnNpemUsCisJCQkJCQkgICAgc2l6ZW9mICpuZXd0Y2JzKTsKKwlpbnQgaTsKKwlpZiAobmV3dGFiID09IE5VTEwgfHwgbmV3dGNicyA9PSBOVUxMKSB7CisJCWlmIChuZXd0YWIgIT0gTlVMTCkKKwkJCWZyZWUobmV3dGFiKTsKKwkJZnByaW50ZihzdGRlcnIsICIlczogZXhwYW5kX3RjYnRhYjogb3V0IG9mIG1lbW9yeVxuIiwKKwkJCXByb2duYW1lKTsKKwkJcmV0dXJuIDE7CisJfQorCWZvciAoaSA9IHRjYnRhYnNpemU7IGkgPCAyICogdGNidGFic2l6ZTsgKytpKQorCQluZXd0YWJbaV0gPSAmbmV3dGNic1tpIC0gdGNidGFic2l6ZV07CisJdGNidGFic2l6ZSAqPSAyOworCXRjYnRhYiA9IG5ld3RhYjsKKworCXJldHVybiAwOworfQorCisKK3N0cnVjdCB0Y2IgKgorYWxsb2N0Y2IocGlkKQoraW50IHBpZDsKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgdGNiICp0Y3A7CisKKwlmb3IgKGkgPSAwOyBpIDwgdGNidGFic2l6ZTsgaSsrKSB7CisJCXRjcCA9IHRjYnRhYltpXTsKKwkJaWYgKCh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKSA9PSAwKSB7CisJCQl0Y3AtPnBpZCA9IHBpZDsKKwkJCXRjcC0+cGFyZW50ID0gTlVMTDsKKwkJCXRjcC0+bmNoaWxkcmVuID0gMDsKKwkJCXRjcC0+bnpvbWJpZXMgPSAwOworI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKKwkJCXRjcC0+bmNsb25lX3RocmVhZHMgPSB0Y3AtPm5jbG9uZV9kZXRhY2hlZCA9IDA7CisJCQl0Y3AtPm5jbG9uZV93YWl0aW5nID0gMDsKKyNlbmRpZgorCQkJdGNwLT5mbGFncyA9IFRDQl9JTlVTRSB8IFRDQl9TVEFSVFVQOworCQkJdGNwLT5vdXRmID0gb3V0ZjsgLyogSW5pdGlhbGlzZSB0byBjdXJyZW50IG91dCBmaWxlICovCisJCQl0Y3AtPnN0aW1lLnR2X3NlYyA9IDA7CisJCQl0Y3AtPnN0aW1lLnR2X3VzZWMgPSAwOworCQkJdGNwLT5wZmQgPSAtMTsKKwkJCW5wcm9jcysrOworCQkJcmV0dXJuIHRjcDsKKwkJfQorCX0KKwlmcHJpbnRmKHN0ZGVyciwgIiVzOiBhbGxvY3RjYjogdGNiIHRhYmxlIGZ1bGxcbiIsIHByb2duYW1lKTsKKwlyZXR1cm4gTlVMTDsKK30KKworI2lmZGVmIFVTRV9QUk9DRlMKK2ludAorcHJvY19vcGVuKHRjcCwgYXR0YWNoaW5nKQorc3RydWN0IHRjYiAqdGNwOworaW50IGF0dGFjaGluZzsKK3sKKwljaGFyIHByb2NbMzJdOworCWxvbmcgYXJnOworI2lmZGVmIFNWUjQKKwlpbnQgaTsKKwlzeXNzZXRfdCBzeXNjYWxsczsKKwlzaWdzZXRfdCBzaWduYWxzOworCWZsdHNldF90IGZhdWx0czsKKyNlbmRpZgorI2lmbmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUworCXN0YXRpYyBpbnQgbGFzdF9wZmQ7CisjZW5kaWYKKworI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCisJLyogT3BlbiB0aGUgcHJvY2VzcyBwc2V1ZG8tZmlsZXMgaW4gL3Byb2MuICovCisJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvY3RsIiwgdGNwLT5waWQpOworCWlmICgodGNwLT5wZmQgPSBvcGVuKHByb2MsIE9fV1JPTkxZfE9fRVhDTCkpIDwgMCkgeworCQlwZXJyb3IoInN0cmFjZTogb3BlbihcIi9wcm9jLy4uLlwiLCAuLi4pIik7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKChhcmcgPSBmY250bCh0Y3AtPnBmZCwgRl9HRVRGRCkpIDwgMCkgeworCQlwZXJyb3IoIkZfR0VURkQiKTsKKwkJcmV0dXJuIC0xOworCX0KKwlpZiAoZmNudGwodGNwLT5wZmQsIEZfU0VURkQsIGFyZ3xGRF9DTE9FWEVDKSA8IDApIHsKKwkJcGVycm9yKCJGX1NFVEZEIik7CisJCXJldHVybiAtMTsKKwl9CisJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvc3RhdHVzIiwgdGNwLT5waWQpOworCWlmICgodGNwLT5wZmRfc3RhdCA9IG9wZW4ocHJvYywgT19SRE9OTFl8T19FWENMKSkgPCAwKSB7CisJCXBlcnJvcigic3RyYWNlOiBvcGVuKFwiL3Byb2MvLi4uXCIsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKwlpZiAoKGFyZyA9IGZjbnRsKHRjcC0+cGZkX3N0YXQsIEZfR0VURkQpKSA8IDApIHsKKwkJcGVycm9yKCJGX0dFVEZEIik7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKGZjbnRsKHRjcC0+cGZkX3N0YXQsIEZfU0VURkQsIGFyZ3xGRF9DTE9FWEVDKSA8IDApIHsKKwkJcGVycm9yKCJGX1NFVEZEIik7CisJCXJldHVybiAtMTsKKwl9CisJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvYXMiLCB0Y3AtPnBpZCk7CisJaWYgKCh0Y3AtPnBmZF9hcyA9IG9wZW4ocHJvYywgT19SRE9OTFl8T19FWENMKSkgPCAwKSB7CisJCXBlcnJvcigic3RyYWNlOiBvcGVuKFwiL3Byb2MvLi4uXCIsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKwlpZiAoKGFyZyA9IGZjbnRsKHRjcC0+cGZkX2FzLCBGX0dFVEZEKSkgPCAwKSB7CisJCXBlcnJvcigiRl9HRVRGRCIpOworCQlyZXR1cm4gLTE7CisJfQorCWlmIChmY250bCh0Y3AtPnBmZF9hcywgRl9TRVRGRCwgYXJnfEZEX0NMT0VYRUMpIDwgMCkgeworCQlwZXJyb3IoIkZfU0VURkQiKTsKKwkJcmV0dXJuIC0xOworCX0KKyNlbHNlCisJLyogT3BlbiB0aGUgcHJvY2VzcyBwc2V1ZG8tZmlsZSBpbiAvcHJvYy4gKi8KKyNpZm5kZWYgRlJFRUJTRAorCXNwcmludGYocHJvYywgIi9wcm9jLyVkIiwgdGNwLT5waWQpOworCWlmICgodGNwLT5wZmQgPSBvcGVuKHByb2MsIE9fUkRXUnxPX0VYQ0wpKSA8IDApIHsKKyNlbHNlIC8qIEZSRUVCU0QgKi8KKwlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9tZW0iLCB0Y3AtPnBpZCk7CisJaWYgKCh0Y3AtPnBmZCA9IG9wZW4ocHJvYywgT19SRFdSKSkgPCAwKSB7CisjZW5kaWYgLyogRlJFRUJTRCAqLworCQlwZXJyb3IoInN0cmFjZTogb3BlbihcIi9wcm9jLy4uLlwiLCAuLi4pIik7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKChhcmcgPSBmY250bCh0Y3AtPnBmZCwgRl9HRVRGRCkpIDwgMCkgeworCQlwZXJyb3IoIkZfR0VURkQiKTsKKwkJcmV0dXJuIC0xOworCX0KKwlpZiAoZmNudGwodGNwLT5wZmQsIEZfU0VURkQsIGFyZ3xGRF9DTE9FWEVDKSA8IDApIHsKKwkJcGVycm9yKCJGX1NFVEZEIik7CisJCXJldHVybiAtMTsKKwl9CisjZW5kaWYKKyNpZmRlZiBGUkVFQlNECisJc3ByaW50Zihwcm9jLCAiL3Byb2MvJWQvcmVncyIsIHRjcC0+cGlkKTsKKwlpZiAoKHRjcC0+cGZkX3JlZyA9IG9wZW4ocHJvYywgT19SRE9OTFkpKSA8IDApIHsKKwkJcGVycm9yKCJzdHJhY2U6IG9wZW4oXCIvcHJvYy8uLi4vcmVnc1wiLCAuLi4pIik7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKGNmbGFnKSB7CisJCXNwcmludGYocHJvYywgIi9wcm9jLyVkL3N0YXR1cyIsIHRjcC0+cGlkKTsKKwkJaWYgKCh0Y3AtPnBmZF9zdGF0dXMgPSBvcGVuKHByb2MsIE9fUkRPTkxZKSkgPCAwKSB7CisJCQlwZXJyb3IoInN0cmFjZTogb3BlbihcIi9wcm9jLy4uLi9zdGF0dXNcIiwgLi4uKSIpOworCQkJcmV0dXJuIC0xOworCQl9CisJfSBlbHNlCisJCXRjcC0+cGZkX3N0YXR1cyA9IC0xOworI2VuZGlmIC8qIEZSRUVCU0QgKi8KKwlyZWJ1aWxkX3BvbGx2KCk7CisJaWYgKCFhdHRhY2hpbmcpIHsKKwkJLyoKKwkJICogV2FpdCBmb3IgdGhlIGNoaWxkIHRvIHBhdXNlLiAgQmVjYXVzZSBvZiBhIHJhY2UKKwkJICogY29uZGl0aW9uIHdlIGhhdmUgdG8gcG9sbCBmb3IgdGhlIGV2ZW50LgorCQkgKi8KKwkJZm9yICg7OykgeworCQkJaWYgKElPQ1RMX1NUQVRVUyAodGNwKSA8IDApIHsKKwkJCQlwZXJyb3IoInN0cmFjZTogUElPQ1NUQVRVUyIpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJCWlmICh0Y3AtPnN0YXR1cy5QUl9GTEFHUyAmIFBSX0FTTEVFUCkKKwkJCSAgICBicmVhazsKKwkJfQorCX0KKyNpZm5kZWYgRlJFRUJTRAorCS8qIFN0b3AgdGhlIHByb2Nlc3Mgc28gdGhhdCB3ZSBvd24gdGhlIHN0b3AuICovCisJaWYgKElPQ1RMKHRjcC0+cGZkLCBQSU9DU1RPUCwgKGNoYXIgKilOVUxMKSA8IDApIHsKKwkJcGVycm9yKCJzdHJhY2U6IFBJT0NTVE9QIik7CisJCXJldHVybiAtMTsKKwl9CisjZW5kaWYKKyNpZmRlZiBQSU9DU0VUCisJLyogU2V0IFJ1bi1vbi1MYXN0LUNsb3NlLiAqLworCWFyZyA9IFBSX1JMQzsKKwlpZiAoSU9DVEwodGNwLT5wZmQsIFBJT0NTRVQsICZhcmcpIDwgMCkgeworCQlwZXJyb3IoIlBJT0NTRVQgUFJfUkxDIik7CisJCXJldHVybiAtMTsKKwl9CisJLyogU2V0IG9yIFJlc2V0IEluaGVyaXQtb24tRm9yay4gKi8KKwlhcmcgPSBQUl9GT1JLOworCWlmIChJT0NUTCh0Y3AtPnBmZCwgZm9sbG93Zm9yayA/IFBJT0NTRVQgOiBQSU9DUkVTRVQsICZhcmcpIDwgMCkgeworCQlwZXJyb3IoIlBJT0N7U0VULFJFU0VUfSBQUl9GT1JLIik7CisJCXJldHVybiAtMTsKKwl9CisjZWxzZSAgLyogIVBJT0NTRVQgKi8KKyNpZm5kZWYgRlJFRUJTRAorCWlmIChpb2N0bCh0Y3AtPnBmZCwgUElPQ1NSTEMpIDwgMCkgeworCQlwZXJyb3IoIlBJT0NTUkxDIik7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKGlvY3RsKHRjcC0+cGZkLCBmb2xsb3dmb3JrID8gUElPQ1NGT1JLIDogUElPQ1JGT1JLKSA8IDApIHsKKwkJcGVycm9yKCJQSU9De1MsUn1GT1JLIik7CisJCXJldHVybiAtMTsKKwl9CisjZWxzZSAvKiBGUkVFQlNEICovCisJLyoganVzdCB1bnNldCB0aGUgUEZfTElOR0VSIGZsYWcgZm9yIHRoZSBSdW4tb24tTGFzdC1DbG9zZS4gKi8KKwlpZiAoaW9jdGwodGNwLT5wZmQsIFBJT0NHRkwsICZhcmcpIDwgMCkgeworCSAgICAgICAgcGVycm9yKCJQSU9DR0ZMIik7CisJICAgICAgICByZXR1cm4gLTE7CisJfQorCWFyZyAmPSB+UEZfTElOR0VSOworCWlmIChpb2N0bCh0Y3AtPnBmZCwgUElPQ1NGTCwgYXJnKSA8IDApIHsKKwkgICAgICAgIHBlcnJvcigiUElPQ1NGTCIpOworCSAgICAgICAgcmV0dXJuIC0xOworCX0KKyNlbmRpZiAvKiBGUkVFQlNEICovCisjZW5kaWYgLyogIVBJT0NTRVQgKi8KKyNpZm5kZWYgRlJFRUJTRAorCS8qIEVuYWJsZSBhbGwgc3lzY2FsbCBlbnRyaWVzIHdlIGNhcmUgYWJvdXQuICovCisJcHJlbXB0eXNldCgmc3lzY2FsbHMpOworCWZvciAoaSA9IDE7IGkgPCBNQVhfUVVBTFM7ICsraSkgeworCQlpZiAoaSA+IChzaXplb2Ygc3lzY2FsbHMpICogQ0hBUl9CSVQpIGJyZWFrOworCQlpZiAocXVhbF9mbGFncyBbaV0gJiBRVUFMX1RSQUNFKSBwcmFkZHNldCAoJnN5c2NhbGxzLCBpKTsKKwl9CisJcHJhZGRzZXQgKCZzeXNjYWxscywgU1lTX2V4ZWN2ZSk7CisJaWYgKGZvbGxvd2ZvcmspIHsKKwkJcHJhZGRzZXQgKCZzeXNjYWxscywgU1lTX2ZvcmspOworI2lmZGVmIFNZU19mb3JrYWxsCisJCXByYWRkc2V0ICgmc3lzY2FsbHMsIFNZU19mb3JrYWxsKTsKKyNlbmRpZgorI2lmZGVmIFNZU19mb3JrMQorCQlwcmFkZHNldCAoJnN5c2NhbGxzLCBTWVNfZm9yazEpOworI2VuZGlmCisjaWZkZWYgU1lTX3Jmb3JrMQorCQlwcmFkZHNldCAoJnN5c2NhbGxzLCBTWVNfcmZvcmsxKTsKKyNlbmRpZgorI2lmZGVmIFNZU19yZm9ya2FsbAorCQlwcmFkZHNldCAoJnN5c2NhbGxzLCBTWVNfcmZvcmthbGwpOworI2VuZGlmCisJfQorCWlmIChJT0NUTCh0Y3AtPnBmZCwgUElPQ1NFTlRSWSwgJnN5c2NhbGxzKSA8IDApIHsKKwkJcGVycm9yKCJQSU9DU0VOVFJZIik7CisJCXJldHVybiAtMTsKKwl9CisJLyogRW5hYmxlIHRoZSBzeXNjYWxsIGV4aXRzLiAqLworCWlmIChJT0NUTCh0Y3AtPnBmZCwgUElPQ1NFWElULCAmc3lzY2FsbHMpIDwgMCkgeworCQlwZXJyb3IoIlBJT1NFWElUIik7CisJCXJldHVybiAtMTsKKwl9CisJLyogRW5hYmxlIHNpZ25hbHMgd2UgY2FyZSBhYm91dC4gKi8KKwlwcmVtcHR5c2V0KCZzaWduYWxzKTsKKwlmb3IgKGkgPSAxOyBpIDwgTUFYX1FVQUxTOyArK2kpIHsKKwkJaWYgKGkgPiAoc2l6ZW9mIHNpZ25hbHMpICogQ0hBUl9CSVQpIGJyZWFrOworCQlpZiAocXVhbF9mbGFncyBbaV0gJiBRVUFMX1NJR05BTCkgcHJhZGRzZXQgKCZzaWduYWxzLCBpKTsKKwl9CisJaWYgKElPQ1RMKHRjcC0+cGZkLCBQSU9DU1RSQUNFLCAmc2lnbmFscykgPCAwKSB7CisJCXBlcnJvcigiUElPQ1NUUkFDRSIpOworCQlyZXR1cm4gLTE7CisJfQorCS8qIEVuYWJsZSBmYXVsdHMgd2UgY2FyZSBhYm91dCAqLworCXByZW1wdHlzZXQoJmZhdWx0cyk7CisJZm9yIChpID0gMTsgaSA8IE1BWF9RVUFMUzsgKytpKSB7CisJCWlmIChpID4gKHNpemVvZiBmYXVsdHMpICogQ0hBUl9CSVQpIGJyZWFrOworCQlpZiAocXVhbF9mbGFncyBbaV0gJiBRVUFMX0ZBVUxUKSBwcmFkZHNldCAoJmZhdWx0cywgaSk7CisJfQorCWlmIChJT0NUTCh0Y3AtPnBmZCwgUElPQ1NGQVVMVCwgJmZhdWx0cykgPCAwKSB7CisJCXBlcnJvcigiUElPQ1NGQVVMVCIpOworCQlyZXR1cm4gLTE7CisJfQorI2Vsc2UgLyogRlJFRUJTRCAqLworCS8qIHNldCBldmVudHMgZmxhZ3MuICovCisJYXJnID0gU19TSUcgfCBTX1NDRSB8IFNfU0NYIDsKKwlpZihpb2N0bCh0Y3AtPnBmZCwgUElPQ0JJUywgYXJnKSA8IDApIHsKKwkJcGVycm9yKCJQSU9DQklTIik7CisJCXJldHVybiAtMTsKKwl9CisjZW5kaWYgLyogRlJFRUJTRCAqLworCWlmICghYXR0YWNoaW5nKSB7CisjaWZkZWYgTUlQUworCQkvKgorCQkgKiBUaGUgU0dJIFBSU0FCT1JUIGRvZXNuJ3Qgd29yayBmb3IgcGF1c2UoKSBzbworCQkgKiB3ZSBzZW5kIGl0IGEgY2F1Z2h0IHNpZ25hbCB0byB3YWtlIGl0IHVwLgorCQkgKi8KKwkJa2lsbCh0Y3AtPnBpZCwgU0lHSU5UKTsKKyNlbHNlIC8qICFNSVBTICovCisjaWZkZWYgUFJTQUJPUlQKKwkJLyogVGhlIGNoaWxkIGlzIGluIGEgcGF1c2UoKSwgYWJvcnQgaXQuICovCisJCWFyZyA9IFBSU0FCT1JUOworCQlpZiAoSU9DVEwgKHRjcC0+cGZkLCBQSU9DUlVOLCAmYXJnKSA8IDApIHsKKwkJCXBlcnJvcigiUElPQ1JVTiIpOworCQkJcmV0dXJuIC0xOworCQl9CisjZW5kaWYKKyNlbmRpZiAvKiAhTUlQUyovCisjaWZkZWYgRlJFRUJTRAorCQkvKiB3YWtlIHVwIHRoZSBjaGlsZCBpZiBpdCByZWNlaXZlZCB0aGUgU0lHU1RPUCAqLworCQlraWxsKHRjcC0+cGlkLCBTSUdDT05UKTsKKyNlbmRpZgorCQlmb3IgKDs7KSB7CisJCQkvKiBXYWl0IGZvciB0aGUgY2hpbGQgdG8gZG8gc29tZXRoaW5nLiAqLworCQkJaWYgKElPQ1RMX1dTVE9QICh0Y3ApIDwgMCkgeworCQkJCXBlcnJvcigiUElPQ1dTVE9QIik7CisJCQkJcmV0dXJuIC0xOworCQkJfQorCQkJaWYgKHRjcC0+c3RhdHVzLlBSX1dIWSA9PSBQUl9TWVNFTlRSWSkgeworCQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7CisJCQkJZ2V0X3Njbm8odGNwKTsKKwkJCQlpZiAoa25vd25fc2Nubyh0Y3ApID09IFNZU19leGVjdmUpCisJCQkJCWJyZWFrOworCQkJfQorCQkJLyogU2V0IGl0IHJ1bm5pbmc6IG1heWJlIGV4ZWN2ZSB3aWxsIGJlIG5leHQuICovCisjaWZuZGVmIEZSRUVCU0QKKwkJCWFyZyA9IDA7CisJCQlpZiAoSU9DVEwodGNwLT5wZmQsIFBJT0NSVU4sICZhcmcpIDwgMCkgeworI2Vsc2UgLyogRlJFRUJTRCAqLworCQkJaWYgKElPQ1RMKHRjcC0+cGZkLCBQSU9DUlVOLCAwKSA8IDApIHsKKyNlbmRpZiAvKiBGUkVFQlNEICovCisJCQkJcGVycm9yKCJQSU9DUlVOIik7CisJCQkJcmV0dXJuIC0xOworCQkJfQorI2lmZGVmIEZSRUVCU0QKKwkJCS8qIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSAib3BlbmVkIiB0aGUgY2hpbGQgYmVmb3JlCisJCQkgICBpdCBkaWQgdGhlIGtpbGwgLVNUT1AgKi8KKwkJCWlmICh0Y3AtPnN0YXR1cy5QUl9XSFkgPT0gUFJfU0lHTkFMTEVEICYmCisJCQkgICAgdGNwLT5zdGF0dXMuUFJfV0hBVCA9PSBTSUdTVE9QKQorCQkJICAgICAgICBraWxsKHRjcC0+cGlkLCBTSUdDT05UKTsKKyNlbmRpZgorCQl9CisjaWZuZGVmIEZSRUVCU0QKKwl9CisjZWxzZSAvKiBGUkVFQlNEICovCisJfSBlbHNlIHsKKwkJaWYgKGF0dGFjaGluZyA8IDIpIHsKKwkJCS8qIFdlIGFyZSBhdHRhY2hpbmcgdG8gYW4gYWxyZWFkeSBydW5uaW5nIHByb2Nlc3MuCisJCQkgKiBUcnkgdG8gZmlndXJlIG91dCB0aGUgc3RhdGUgb2YgdGhlIHByb2Nlc3MgaW4gc3lzY2FsbHMsCisJCQkgKiB0byBoYW5kbGUgdGhlIGZpcnN0IGV2ZW50IHdlbGwuCisJCQkgKiBUaGlzIGlzIGRvbmUgYnkgaGF2aW5nIGEgbG9vayBhdCB0aGUgIndjaGFuIiBwcm9wZXJ0eSBvZiB0aGUKKwkJCSAqIHByb2Nlc3MsIHdoaWNoIHRlbGxzIHdoZXJlIGl0IGlzIHN0b3BwZWQgKGlmIGl0IGlzKS4gKi8KKwkJCUZJTEUgKiBzdGF0dXM7CisJCQljaGFyIHdjaGFuWzIwXTsgLyogc2hvdWxkIGJlIGVub3VnaCAqLworCisJCQlzcHJpbnRmKHByb2MsICIvcHJvYy8lZC9zdGF0dXMiLCB0Y3AtPnBpZCk7CisJCQlzdGF0dXMgPSBmb3Blbihwcm9jLCAiciIpOworCQkJaWYgKHN0YXR1cyAmJgorCQkJICAgIChmc2NhbmYoc3RhdHVzLCAiJSpzICUqZCAlKmQgJSpkICUqZCAlKmQsJSpkICUqcyAlKmQsJSpkIgorCQkJCSAgICAiJSpkLCUqZCAlKmQsJSpkICUxOXMiLCB3Y2hhbikgPT0gMSkgJiYKKwkJCSAgICBzdHJjbXAod2NoYW4sICJub2NoYW4iKSAmJiBzdHJjbXAod2NoYW4sICJzcHJlYWQiKSAmJgorCQkJICAgIHN0cmNtcCh3Y2hhbiwgInN0b3BldmVudCIpKSB7CisJCQkJLyogVGhlIHByb2Nlc3MgaXMgYXNsZWVwIGluIHRoZSBtaWRkbGUgb2YgYSBzeXNjYWxsLgorCQkJCSAgIEZha2UgdGhlIHN5c2NhbGwgZW50cnkgZXZlbnQgKi8KKwkJCQl0Y3AtPmZsYWdzICY9IH4oVENCX0lOU1lTQ0FMTHxUQ0JfU1RBUlRVUCk7CisJCQkJdGNwLT5zdGF0dXMuUFJfV0hZID0gUFJfU1lTRU5UUlk7CisJCQkJdHJhY2Vfc3lzY2FsbCh0Y3ApOworCQkJfQorCQkJaWYgKHN0YXR1cykKKwkJCQlmY2xvc2Uoc3RhdHVzKTsKKwkJfSAvKiBvdGhlcndpc2UgaXQncyBhIGZvcmsgYmVpbmcgZm9sbG93ZWQgKi8KKwl9CisjZW5kaWYgLyogRlJFRUJTRCAqLworI2lmbmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUworCWlmIChwcm9jX3BvbGxfcGlwZVswXSAhPSAtMSkKKwkJcHJvY19wb2xsZXIodGNwLT5wZmQpOworCWVsc2UgaWYgKG5wcm9jcyA+IDEpIHsKKwkJcHJvY19wb2xsX29wZW4oKTsKKwkJcHJvY19wb2xsZXIobGFzdF9wZmQpOworCQlwcm9jX3BvbGxlcih0Y3AtPnBmZCk7CisJfQorCWxhc3RfcGZkID0gdGNwLT5wZmQ7CisjZW5kaWYgLyogIUhBVkVfUE9MTEFCTEVfUFJPQ0ZTICovCisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBVU0VfUFJPQ0ZTICovCisKK3N0cnVjdCB0Y2IgKgorcGlkMnRjYihwaWQpCitpbnQgcGlkOworeworCWludCBpOworCXN0cnVjdCB0Y2IgKnRjcDsKKworCWZvciAoaSA9IDA7IGkgPCB0Y2J0YWJzaXplOyBpKyspIHsKKwkJdGNwID0gdGNidGFiW2ldOworCQlpZiAocGlkICYmIHRjcC0+cGlkICE9IHBpZCkKKwkJCWNvbnRpbnVlOworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9JTlVTRSkKKwkJCXJldHVybiB0Y3A7CisJfQorCXJldHVybiBOVUxMOworfQorCisjaWZkZWYgVVNFX1BST0NGUworCitzdGF0aWMgc3RydWN0IHRjYiAqCitwZmQydGNiKHBmZCkKK2ludCBwZmQ7Cit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdGNidGFic2l6ZTsgaSsrKSB7CisJCXN0cnVjdCB0Y2IgKnRjcCA9IHRjYnRhYltpXTsKKwkJaWYgKHRjcC0+cGZkICE9IHBmZCkKKwkJCWNvbnRpbnVlOworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9JTlVTRSkKKwkJCXJldHVybiB0Y3A7CisJfQorCXJldHVybiBOVUxMOworfQorCisjZW5kaWYgLyogVVNFX1BST0NGUyAqLworCit2b2lkCitkcm9wdGNiKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAodGNwLT5waWQgPT0gMCkKKwkJcmV0dXJuOworI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKKwlpZiAodGNwLT5uY2xvbmVfdGhyZWFkcyA+IDApIHsKKwkJLyogVGhlcmUgYXJlIG90aGVyIHRocmVhZHMgbGVmdCBpbiB0aGlzIHByb2Nlc3MsIGJ1dCB0aGlzCisJCSAgIGlzIHRoZSBvbmUgd2hvc2UgUElEIHJlcHJlc2VudHMgdGhlIHdob2xlIHByb2Nlc3MuCisJCSAgIFdlIG5lZWQgdG8ga2VlcCB0aGlzIHJlY29yZCBhcm91bmQgYXMgYSB6b21iaWUgdW50aWwKKwkJICAgYWxsIHRoZSB0aHJlYWRzIGRpZS4gICovCisJCXRjcC0+ZmxhZ3MgfD0gVENCX0VYSVRJTkc7CisJCXJldHVybjsKKwl9CisjZW5kaWYKKwlucHJvY3MtLTsKKwl0Y3AtPnBpZCA9IDA7CisKKwlpZiAodGNwLT5wYXJlbnQgIT0gTlVMTCkgeworCQl0Y3AtPnBhcmVudC0+bmNoaWxkcmVuLS07CisjaWZkZWYgVENCX0NMT05FX1RIUkVBRAorCQlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9ERVRBQ0hFRCkKKwkJCXRjcC0+cGFyZW50LT5uY2xvbmVfZGV0YWNoZWQtLTsKKwkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQ0xPTkVfVEhSRUFEKQorCQkJdGNwLT5wYXJlbnQtPm5jbG9uZV90aHJlYWRzLS07CisjZW5kaWYKKyNpZmRlZiBUQ0JfQ0xPTkVfREVUQUNIRUQKKwkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9ERVRBQ0hFRCkpCisjZW5kaWYKKwkJCXRjcC0+cGFyZW50LT5uem9tYmllcysrOworCQl0Y3AtPnBhcmVudCA9IE5VTEw7CisJfQorCisJdGNwLT5mbGFncyA9IDA7CisJaWYgKHRjcC0+cGZkICE9IC0xKSB7CisJCWNsb3NlKHRjcC0+cGZkKTsKKwkJdGNwLT5wZmQgPSAtMTsKKyNpZmRlZiBGUkVFQlNECisJCWlmICh0Y3AtPnBmZF9yZWcgIT0gLTEpIHsKKwkJICAgICAgICBjbG9zZSh0Y3AtPnBmZF9yZWcpOworCQkgICAgICAgIHRjcC0+cGZkX3JlZyA9IC0xOworCQl9CisJCWlmICh0Y3AtPnBmZF9zdGF0dXMgIT0gLTEpIHsKKwkJCWNsb3NlKHRjcC0+cGZkX3N0YXR1cyk7CisJCQl0Y3AtPnBmZF9zdGF0dXMgPSAtMTsKKwkJfQorI2VuZGlmIC8qICFGUkVFQlNEICovCisjaWZkZWYgVVNFX1BST0NGUworCQlyZWJ1aWxkX3BvbGx2KCk7IC8qIE5vdGUsIGZsYWdzIG5lZWRzIHRvIGJlIGNsZWFyZWQgYnkgbm93LiAgKi8KKyNlbmRpZgorCX0KKworCWlmIChvdXRmbmFtZSAmJiBmb2xsb3dmb3JrID4gMSAmJiB0Y3AtPm91dGYpCisJCWZjbG9zZSh0Y3AtPm91dGYpOworCisJdGNwLT5vdXRmID0gMDsKK30KKworI2lmbmRlZiBVU0VfUFJPQ0ZTCisKK3N0YXRpYyBpbnQKK3Jlc3VtZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKHRjcCA9PSBOVUxMKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX1NVU1BFTkRFRCkpIHsKKwkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogcGlkICV1IG5vdCBzdXNwZW5kZWRcbiIsIHRjcC0+cGlkKTsKKwkJcmV0dXJuIC0xOworCX0KKwl0Y3AtPmZsYWdzICY9IH5UQ0JfU1VTUEVOREVEOworI2lmZGVmIFRDQl9DTE9ORV9USFJFQUQKKwlpZiAodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpCisJCXRjcC0+cGFyZW50LT5uY2xvbmVfd2FpdGluZy0tOworI2VuZGlmCisKKwlpZiAocHRyYWNlKFBUUkFDRV9TWVNDQUxMLCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7CisJCXBlcnJvcigicmVzdW1lOiBwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmICghcWZsYWcpCisJCWZwcmludGYoc3RkZXJyLCAiUHJvY2VzcyAldSByZXN1bWVkXG4iLCB0Y3AtPnBpZCk7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLworCisvKiBkZXRhY2ggdHJhY2VkIHByb2Nlc3M7IGNvbnRpbnVlIHdpdGggc2lnCisgICBOZXZlciBjYWxsIERFVEFDSCB0d2ljZSBvbiB0aGUgc2FtZSBwcm9jZXNzIGFzIGJvdGggdW5hdHRhY2hlZCBhbmQKKyAgIGF0dGFjaGVkLXVuc3RvcHBlZCBwcm9jZXNzZXMgZ2l2ZSB0aGUgc2FtZSBFU1JDSC4gIEZvciB1bmF0dGFjaGVkIHByb2Nlc3Mgd2UKKyAgIHdvdWxkIFNJR1NUT1AgaXQgYW5kIHdhaXQgZm9yIGl0cyBTSUdTVE9QIG5vdGlmaWNhdGlvbiBmb3JldmVyLiAgKi8KKworc3RhdGljIGludAorZGV0YWNoKHRjcCwgc2lnKQorc3RydWN0IHRjYiAqdGNwOworaW50IHNpZzsKK3sKKwlpbnQgZXJyb3IgPSAwOworI2lmZGVmIExJTlVYCisJaW50IHN0YXR1cywgcmVzdW1lZDsKKwlzdHJ1Y3QgdGNiICp6b21iaWUgPSBOVUxMOworCisJLyogSWYgdGhlIGdyb3VwIGxlYWRlciBpcyBsaW5nZXJpbmcgb25seSBiZWNhdXNlIG9mIHRoaXMgb3RoZXIKKwkgICB0aHJlYWQgbm93IGR5aW5nLCB0aGVuIGRldGFjaCB0aGUgbGVhZGVyIGFzIHdlbGwuICAqLworCWlmICgodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQpICYmCisJICAgIHRjcC0+cGFyZW50LT5uY2xvbmVfdGhyZWFkcyA9PSAxICYmCisJICAgICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJiBUQ0JfRVhJVElORykpCisJCXpvbWJpZSA9IHRjcC0+cGFyZW50OworI2VuZGlmCisKKwlpZiAodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpCisJCXNpZyA9IFNJR0tJTEw7CisKKyNpZmRlZiBMSU5VWAorCS8qCisJICogTGludXggd3JvbmdseSBpbnNpc3RzIHRoZSBjaGlsZCBiZSBzdG9wcGVkCisJICogYmVmb3JlIGRldGFjaGluZy4gIEFyZ2hoLiAgV2UgZ28gdGhyb3VnaCBob29wcworCSAqIHRvIG1ha2UgYSBjbGVhbiBicmVhayBvZiB0aGluZ3MuCisJICovCisjaWYgZGVmaW5lZChTUEFSQykKKyN1bmRlZiBQVFJBQ0VfREVUQUNICisjZGVmaW5lIFBUUkFDRV9ERVRBQ0ggUFRSQUNFX1NVTkRFVEFDSAorI2VuZGlmCisJaWYgKChlcnJvciA9IHB0cmFjZShQVFJBQ0VfREVUQUNILCB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgc2lnKSkgPT0gMCkgeworCQkvKiBPbiBhIGNsZWFyIGRheSwgeW91IGNhbiBzZWUgZm9yZXZlci4gKi8KKwl9CisJZWxzZSBpZiAoZXJybm8gIT0gRVNSQ0gpIHsKKwkJLyogU2hvdWxkbid0IGhhcHBlbi4gKi8KKwkJcGVycm9yKCJkZXRhY2g6IHB0cmFjZShQVFJBQ0VfREVUQUNILCAuLi4pIik7CisJfQorCWVsc2UgaWYgKG15X3Rna2lsbCgodGNwLT5mbGFncyAmIFRDQl9DTE9ORV9USFJFQUQgPyB0Y3AtPnBhcmVudC0+cGlkCisJCQkJCQkJICA6IHRjcC0+cGlkKSwKKwkJCSAgIHRjcC0+cGlkLCAwKSA8IDApIHsKKwkJaWYgKGVycm5vICE9IEVTUkNIKQorCQkJcGVycm9yKCJkZXRhY2g6IGNoZWNraW5nIHNhbml0eSIpOworCX0KKwllbHNlIGlmIChteV90Z2tpbGwoKHRjcC0+ZmxhZ3MgJiBUQ0JfQ0xPTkVfVEhSRUFEID8gdGNwLT5wYXJlbnQtPnBpZAorCQkJCQkJCSAgOiB0Y3AtPnBpZCksCisJCQkgICB0Y3AtPnBpZCwgU0lHU1RPUCkgPCAwKSB7CisJCWlmIChlcnJubyAhPSBFU1JDSCkKKwkJCXBlcnJvcigiZGV0YWNoOiBzdG9wcGluZyBjaGlsZCIpOworCX0KKwllbHNlIHsKKwkJZm9yICg7OykgeworI2lmZGVmIF9fV0FMTAorCQkJaWYgKHdhaXQ0KHRjcC0+cGlkLCAmc3RhdHVzLCBfX1dBTEwsIE5VTEwpIDwgMCkgeworCQkJCWlmIChlcnJubyA9PSBFQ0hJTEQpIC8qIEFscmVhZHkgZ29uZS4gICovCisJCQkJCWJyZWFrOworCQkJCWlmIChlcnJubyAhPSBFSU5WQUwpIHsKKwkJCQkJcGVycm9yKCJkZXRhY2g6IHdhaXRpbmciKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorI2VuZGlmIC8qIF9fV0FMTCAqLworCQkJCS8qIE5vIF9fV0FMTCBoZXJlLiAgKi8KKwkJCQlpZiAod2FpdHBpZCh0Y3AtPnBpZCwgJnN0YXR1cywgMCkgPCAwKSB7CisJCQkJCWlmIChlcnJubyAhPSBFQ0hJTEQpIHsKKwkJCQkJCXBlcnJvcigiZGV0YWNoOiB3YWl0aW5nIik7CisJCQkJCQlicmVhazsKKwkJCQkJfQorI2lmZGVmIF9fV0NMT05FCisJCQkJCS8qIElmIG5vIHByb2Nlc3NlcywgdHJ5IGNsb25lcy4gICovCisJCQkJCWlmICh3YWl0NCh0Y3AtPnBpZCwgJnN0YXR1cywgX19XQ0xPTkUsCisJCQkJCQkgIE5VTEwpIDwgMCkgeworCQkJCQkJaWYgKGVycm5vICE9IEVDSElMRCkKKwkJCQkJCQlwZXJyb3IoImRldGFjaDogd2FpdGluZyIpOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKyNlbmRpZiAvKiBfX1dDTE9ORSAqLworCQkJCX0KKyNpZmRlZiBfX1dBTEwKKwkJCX0KKyNlbmRpZgorCQkJaWYgKCFXSUZTVE9QUEVEKHN0YXR1cykpIHsKKwkJCQkvKiBBdSByZXZvaXIsIG1vbiBhbWkuICovCisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoV1NUT1BTSUcoc3RhdHVzKSA9PSBTSUdTVE9QKSB7CisJCQkJaWYgKChlcnJvciA9IHB0cmFjZShQVFJBQ0VfREVUQUNILAorCQkJCSAgICB0Y3AtPnBpZCwgKGNoYXIgKikgMSwgc2lnKSkgPCAwKSB7CisJCQkJCWlmIChlcnJubyAhPSBFU1JDSCkKKwkJCQkJCXBlcnJvcigiZGV0YWNoOiBwdHJhY2UoUFRSQUNFX0RFVEFDSCwgLi4uKSIpOworCQkJCQkvKiBJIGRpZWQgdHJ5aW5nLiAqLworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmICgoZXJyb3IgPSBwdHJhY2UoUFRSQUNFX0NPTlQsIHRjcC0+cGlkLCAoY2hhciAqKSAxLAorCQkJICAgIFdTVE9QU0lHKHN0YXR1cykgPT0gU0lHVFJBUCA/CisJCQkgICAgMCA6IFdTVE9QU0lHKHN0YXR1cykpKSA8IDApIHsKKwkJCQlpZiAoZXJybm8gIT0gRVNSQ0gpCisJCQkJCXBlcnJvcigiZGV0YWNoOiBwdHJhY2UoUFRSQUNFX0NPTlQsIC4uLikiKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKyNlbmRpZiAvKiBMSU5VWCAqLworCisjaWYgZGVmaW5lZChTVU5PUzQpCisJLyogUFRSQUNFX0RFVEFDSCB3b24ndCByZXNwZWN0IGBzaWcnIGFyZ3VtZW50LCBzbyB3ZSBwb3N0IGl0IGhlcmUuICovCisJaWYgKHNpZyAmJiBraWxsKHRjcC0+cGlkLCBzaWcpIDwgMCkKKwkJcGVycm9yKCJkZXRhY2g6IGtpbGwiKTsKKwlzaWcgPSAwOworCWlmICgoZXJyb3IgPSBwdHJhY2UoUFRSQUNFX0RFVEFDSCwgdGNwLT5waWQsIChjaGFyICopIDEsIHNpZykpIDwgMCkKKwkJcGVycm9yKCJkZXRhY2g6IHB0cmFjZShQVFJBQ0VfREVUQUNILCAuLi4pIik7CisjZW5kaWYgLyogU1VOT1M0ICovCisKKyNpZm5kZWYgVVNFX1BST0NGUworCXJlc3VtZWQgPSAwOworCisJLyogWFhYIFRoaXMgd29uJ3QgYWx3YXlzIGJlIHF1aXRlIHJpZ2h0IChidXQgaXQgbmV2ZXIgd2FzKS4KKwkgICBBIHdhaXRlciB3aXRoIGFyZ3VtZW50IDAgb3IgPCAtMSBpcyB3YWl0aW5nIGZvciBhbnkgcGlkIGluCisJICAgYSBwYXJ0aWN1bGFyIHBncnAsIHdoaWNoIHRoaXMgY2hpbGQgbWlnaHQgb3IgbWlnaHQgbm90IGJlCisJICAgaW4uICBUaGUgd2FpdGVyIHdpbGwgb25seSB3YWtlIHVwIGlmIGl0J3MgYXJndW1lbnQgaXMgLTEKKwkgICBvciBpZiBpdCdzIHdhaXRpbmcgZm9yIHRjcC0+cGlkJ3MgcGdycC4gIEl0IG1ha2VzIGEKKwkgICBkaWZmZXJlbmNlIHRvIHdha2UgdXAgYSB3YWl0ZXIgd2hlbiB0aGVyZSBtaWdodCBiZSBtb3JlCisJICAgdHJhY2VkIGNoaWxkcmVuLCBiZWNhdXNlIGl0IGNvdWxkIGdldCBhIGZhbHNlIEVDSElMRAorCSAgIGVycm9yLiAgT1RPSCwgaWYgdGhpcyB3YXMgdGhlIGxhc3QgY2hpbGQgaW4gdGhlIHBncnAsIHRoZW4KKwkgICBpdCBvdWdodCB0byB3YWtlIHVwIGFuZCBnZXQgRUNISUxELiAgV2Ugd291bGQgaGF2ZSB0bworCSAgIHNlYXJjaCB0aGUgc3lzdGVtIGZvciBhbGwgcGlkJ3MgaW4gdGhlIHBncnAgdG8gYmUgc3VyZS4KKworCSAgICAgJiYgKHQtPndhaXRwaWQgPT0gLTEgfHwKKwkJICh0LT53YWl0cGlkID09IDAgJiYgZ2V0cGdpZCAodGNwLT5waWQpID09IGdldHBnaWQgKHQtPnBpZCkpCisJCSB8fCAodC0+d2FpdHBpZCA8IDAgJiYgdC0+d2FpdHBpZCA9PSAtZ2V0cGlkICh0LT5waWQpKSkKKwkqLworCisJaWYgKHRjcC0+cGFyZW50ICYmCisJICAgICh0Y3AtPnBhcmVudC0+ZmxhZ3MgJiBUQ0JfU1VTUEVOREVEKSAmJgorCSAgICAodGNwLT5wYXJlbnQtPndhaXRwaWQgPD0gMCB8fCB0Y3AtPnBhcmVudC0+d2FpdHBpZCA9PSB0Y3AtPnBpZCkpIHsKKyAJCWVycm9yID0gcmVzdW1lKHRjcC0+cGFyZW50KTsKKwkJKytyZXN1bWVkOworCX0KKyNpZmRlZiBUQ0JfQ0xPTkVfVEhSRUFECisJaWYgKHRjcC0+cGFyZW50ICYmIHRjcC0+cGFyZW50LT5uY2xvbmVfd2FpdGluZyA+IDApIHsKKwkJLyogU29tZSBvdGhlciB0aHJlYWRzIG9mIG91ciBwYXJlbnQgYXJlIHdhaXRpbmcgdG9vLiAgKi8KKwkJdW5zaWduZWQgaW50IGk7CisKKwkJLyogUmVzdW1lIGFsbCB0aGUgdGhyZWFkcyB0aGF0IHdlcmUgd2FpdGluZyBmb3IgdGhpcyBQSUQuICAqLworCQlmb3IgKGkgPSAwOyBpIDwgdGNidGFic2l6ZTsgaSsrKSB7CisJCQlzdHJ1Y3QgdGNiICp0ID0gdGNidGFiW2ldOworCQkJaWYgKHQtPnBhcmVudCA9PSB0Y3AtPnBhcmVudCAmJiB0ICE9IHRjcAorCQkJICAgICYmICgodC0+ZmxhZ3MgJiAoVENCX0NMT05FX1RIUkVBRHxUQ0JfU1VTUEVOREVEKSkKKwkJCQk9PSAoVENCX0NMT05FX1RIUkVBRHxUQ0JfU1VTUEVOREVEKSkKKwkJCSAgICAmJiB0LT53YWl0cGlkID09IHRjcC0+cGlkKSB7CisJCQkJZXJyb3IgfD0gcmVzdW1lICh0KTsKKwkJCQkrK3Jlc3VtZWQ7CisJCQl9CisJCX0KKwkJaWYgKHJlc3VtZWQgPT0gMCkKKwkJCS8qIE5vb25lIHdhcyB3YWl0aW5nIGZvciB0aGlzIFBJRCBpbiBwYXJ0aWN1bGFyLAorCQkJICAgc28gbm93IHdlIG1pZ2h0IG5lZWQgdG8gcmVzdW1lIHNvbWUgd2lsZGNhcmRlcnMuICAqLworCQkJZm9yIChpID0gMDsgaSA8IHRjYnRhYnNpemU7IGkrKykgeworCQkJCXN0cnVjdCB0Y2IgKnQgPSB0Y2J0YWJbaV07CisJCQkJaWYgKHQtPnBhcmVudCA9PSB0Y3AtPnBhcmVudCAmJiB0ICE9IHRjcAorCQkJCSAgICAmJiAoKHQtPmZsYWdzCisJCQkJCSAmIChUQ0JfQ0xPTkVfVEhSRUFEfFRDQl9TVVNQRU5ERUQpKQorCQkJCQk9PSAoVENCX0NMT05FX1RIUkVBRHxUQ0JfU1VTUEVOREVEKSkKKwkJCQkgICAgJiYgdC0+d2FpdHBpZCA8PSAwCisJCQkJCSkgeworCQkJCQllcnJvciB8PSByZXN1bWUgKHQpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJfQorI2VuZGlmCisKKyNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLworCisJaWYgKCFxZmxhZykKKwkJZnByaW50ZihzdGRlcnIsICJQcm9jZXNzICV1IGRldGFjaGVkXG4iLCB0Y3AtPnBpZCk7CisKKwlkcm9wdGNiKHRjcCk7CisKKyNpZmRlZiBMSU5VWAorCWlmICh6b21iaWUgIT0gTlVMTCkgeworCQkvKiBUQ1Agbm8gbG9uZ2VyIGV4aXN0cyB0aGVyZWZvcmUgeW91IG11c3Qgbm90IGRldGFjaCAoKSBpdC4gICovCisJCWRyb3B0Y2Ioem9tYmllKTsKKwl9CisjZW5kaWYKKworCXJldHVybiBlcnJvcjsKK30KKworI2lmZGVmIFVTRV9QUk9DRlMKKworc3RhdGljIHZvaWQKK3JlYXBlcihzaWcpCitpbnQgc2lnOworeworCWludCBwaWQ7CisJaW50IHN0YXR1czsKKworCXdoaWxlICgocGlkID0gd2FpdHBpZCgtMSwgJnN0YXR1cywgV05PSEFORykpID4gMCkgeworI2lmIDAKKwkJc3RydWN0IHRjYiAqdGNwOworCisJCXRjcCA9IHBpZDJ0Y2IocGlkKTsKKwkJaWYgKHRjcCkKKwkJCWRyb3B0Y2IodGNwKTsKKyNlbmRpZgorCX0KK30KKworI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KKworc3RhdGljIHZvaWQKK2NsZWFudXAoKQoreworCWludCBpOworCXN0cnVjdCB0Y2IgKnRjcDsKKworCWZvciAoaSA9IDA7IGkgPCB0Y2J0YWJzaXplOyBpKyspIHsKKwkJdGNwID0gdGNidGFiW2ldOworCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOVVNFKSkKKwkJCWNvbnRpbnVlOworCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiY2xlYW51cDogbG9va2luZyBhdCBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKKwkJaWYgKHRjcF9sYXN0ICYmCisJCSAgICAoIW91dGZuYW1lIHx8IGZvbGxvd2ZvcmsgPCAyIHx8IHRjcF9sYXN0ID09IHRjcCkpIHsKKwkJCXRwcmludGYoIiA8dW5maW5pc2hlZCAuLi4+XG4iKTsKKwkJCXRjcF9sYXN0ID0gTlVMTDsKKwkJfQorCQlpZiAodGNwLT5mbGFncyAmIFRDQl9BVFRBQ0hFRCkKKwkJCWRldGFjaCh0Y3AsIDApOworCQllbHNlIHsKKwkJCWtpbGwodGNwLT5waWQsIFNJR0NPTlQpOworCQkJa2lsbCh0Y3AtPnBpZCwgU0lHVEVSTSk7CisJCX0KKwl9CisJaWYgKGNmbGFnKQorCQljYWxsX3N1bW1hcnkob3V0Zik7Cit9CisKK3N0YXRpYyB2b2lkCitpbnRlcnJ1cHQoc2lnKQoraW50IHNpZzsKK3sKKwlpbnRlcnJ1cHRlZCA9IDE7Cit9CisKKyNpZm5kZWYgSEFWRV9TVFJFUlJPUgorCisjaWYgIUhBVkVfREVDTF9TWVNfRVJSTElTVAorZXh0ZXJuIGludCBzeXNfbmVycjsKK2V4dGVybiBjaGFyICpzeXNfZXJybGlzdFtdOworI2VuZGlmIC8qIEhBVkVfREVDTF9TWVNfRVJSTElTVCAqLworCitjb25zdCBjaGFyICoKK3N0cmVycm9yKGVycm5vKQoraW50IGVycm5vOworeworCXN0YXRpYyBjaGFyIGJ1Zls2NF07CisKKwlpZiAoZXJybm8gPCAxIHx8IGVycm5vID49IHN5c19uZXJyKSB7CisJCXNwcmludGYoYnVmLCAiVW5rbm93biBlcnJvciAlZCIsIGVycm5vKTsKKwkJcmV0dXJuIGJ1ZjsKKwl9CisJcmV0dXJuIHN5c19lcnJsaXN0W2Vycm5vXTsKK30KKworI2VuZGlmIC8qIEhBVkVfU1RFUlJST1IgKi8KKworI2lmbmRlZiBIQVZFX1NUUlNJR05BTAorCisjaWYgZGVmaW5lZCBIQVZFX1NZU19TSUdMSVNUICYmICFkZWZpbmVkIEhBVkVfREVDTF9TWVNfU0lHTElTVAorZXh0ZXJuIGNoYXIgKnN5c19zaWdsaXN0W107CisjZW5kaWYKKyNpZiBkZWZpbmVkIEhBVkVfU1lTX19TSUdMSVNUICYmICFkZWZpbmVkIEhBVkVfREVDTF9fU1lTX1NJR0xJU1QKK2V4dGVybiBjaGFyICpfc3lzX3NpZ2xpc3RbXTsKKyNlbmRpZgorCitjb25zdCBjaGFyICoKK3N0cnNpZ25hbChzaWcpCitpbnQgc2lnOworeworCXN0YXRpYyBjaGFyIGJ1Zls2NF07CisKKwlpZiAoc2lnIDwgMSB8fCBzaWcgPj0gTlNJRykgeworCQlzcHJpbnRmKGJ1ZiwgIlVua25vd24gc2lnbmFsICVkIiwgc2lnKTsKKwkJcmV0dXJuIGJ1ZjsKKwl9CisjaWZkZWYgSEFWRV9fU1lTX1NJR0xJU1QKKwlyZXR1cm4gX3N5c19zaWdsaXN0W3NpZ107CisjZWxzZQorCXJldHVybiBzeXNfc2lnbGlzdFtzaWddOworI2VuZGlmCit9CisKKyNlbmRpZiAvKiBIQVZFX1NUUlNJR05BTCAqLworCisjaWZkZWYgVVNFX1BST0NGUworCitzdGF0aWMgdm9pZAorcmVidWlsZF9wb2xsdigpCit7CisJaW50IGksIGo7CisKKwlpZiAocG9sbHYgIT0gTlVMTCkKKwkJZnJlZSAocG9sbHYpOworCXBvbGx2ID0gKHN0cnVjdCBwb2xsZmQgKikgbWFsbG9jKG5wcm9jcyAqIHNpemVvZiBwb2xsdlswXSk7CisJaWYgKHBvbGx2ID09IE5VTEwpIHsKKwkJZnByaW50ZihzdGRlcnIsICIlczogb3V0IG9mIG1lbW9yeVxuIiwgcHJvZ25hbWUpOworCQlleGl0KDEpOworCX0KKworCWZvciAoaSA9IGogPSAwOyBpIDwgdGNidGFic2l6ZTsgaSsrKSB7CisJCXN0cnVjdCB0Y2IgKnRjcCA9IHRjYnRhYltpXTsKKwkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlVTRSkpCisJCQljb250aW51ZTsKKwkJcG9sbHZbal0uZmQgPSB0Y3AtPnBmZDsKKwkJcG9sbHZbal0uZXZlbnRzID0gUE9MTFdBTlQ7CisJCWorKzsKKwl9CisJaWYgKGogIT0gbnByb2NzKSB7CisJCWZwcmludGYoc3RkZXJyLCAic3RyYWNlOiBwcm9jIG1pc2NvdW50XG4iKTsKKwkJZXhpdCgxKTsKKwl9Cit9CisKKyNpZm5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMKKworc3RhdGljIHZvaWQKK3Byb2NfcG9sbF9vcGVuKCkKK3sKKwlpbnQgYXJnOworCWludCBpOworCisJaWYgKHBpcGUocHJvY19wb2xsX3BpcGUpIDwgMCkgeworCQlwZXJyb3IoInBpcGUiKTsKKwkJZXhpdCgxKTsKKwl9CisJZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworCQlpZiAoKGFyZyA9IGZjbnRsKHByb2NfcG9sbF9waXBlW2ldLCBGX0dFVEZEKSkgPCAwKSB7CisJCQlwZXJyb3IoIkZfR0VURkQiKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJaWYgKGZjbnRsKHByb2NfcG9sbF9waXBlW2ldLCBGX1NFVEZELCBhcmd8RkRfQ0xPRVhFQykgPCAwKSB7CisJCQlwZXJyb3IoIkZfU0VURkQiKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbnQKK3Byb2NfcG9sbChwb2xsdiwgbmZkcywgdGltZW91dCkKK3N0cnVjdCBwb2xsZmQgKnBvbGx2OworaW50IG5mZHM7CitpbnQgdGltZW91dDsKK3sKKwlpbnQgaTsKKwlpbnQgbjsKKwlzdHJ1Y3QgcHJvY19wb2xsZmQgcG9sbGluZm87CisKKwlpZiAoKG4gPSByZWFkKHByb2NfcG9sbF9waXBlWzBdLCAmcG9sbGluZm8sIHNpemVvZihwb2xsaW5mbykpKSA8IDApCisJCXJldHVybiBuOworCWlmIChuICE9IHNpemVvZihzdHJ1Y3QgcHJvY19wb2xsZmQpKSB7CisJCWZwcmludGYoc3RkZXJyLCAicGFuaWM6IHNob3J0IHJlYWQ6ICVkXG4iLCBuKTsKKwkJZXhpdCgxKTsKKwl9CisJZm9yIChpID0gMDsgaSA8IG5wcm9jczsgaSsrKSB7CisJCWlmIChwb2xsdltpXS5mZCA9PSBwb2xsaW5mby5mZCkKKwkJCXBvbGx2W2ldLnJldmVudHMgPSBwb2xsaW5mby5yZXZlbnRzOworCQllbHNlCisJCQlwb2xsdltpXS5yZXZlbnRzID0gMDsKKwl9CisJcG9sbGVyX3BpZCA9IHBvbGxpbmZvLnBpZDsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQKK3dha2V1cF9oYW5kbGVyKHNpZykKK2ludCBzaWc7Cit7Cit9CisKK3N0YXRpYyB2b2lkCitwcm9jX3BvbGxlcihwZmQpCitpbnQgcGZkOworeworCXN0cnVjdCBwcm9jX3BvbGxmZCBwb2xsaW5mbzsKKwlzdHJ1Y3Qgc2lnYWN0aW9uIHNhOworCXNpZ3NldF90IGJsb2NrZWRfc2V0LCBlbXB0eV9zZXQ7CisJaW50IGk7CisJaW50IG47CisJc3RydWN0IHJsaW1pdCBybDsKKyNpZmRlZiBGUkVFQlNECisJc3RydWN0IHByb2Nmc19zdGF0dXMgcGZzOworI2VuZGlmIC8qIEZSRUVCU0QgKi8KKworCXN3aXRjaCAoZm9yaygpKSB7CisJY2FzZSAtMToKKwkJcGVycm9yKCJmb3JrIik7CisJCV9leGl0KDApOworCWNhc2UgMDoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuOworCX0KKworCXNhLnNhX2hhbmRsZXIgPSBpbnRlcmFjdGl2ZSA/IFNJR19ERkwgOiBTSUdfSUdOOworCXNhLnNhX2ZsYWdzID0gMDsKKwlzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CisJc2lnYWN0aW9uKFNJR0hVUCwgJnNhLCBOVUxMKTsKKwlzaWdhY3Rpb24oU0lHSU5ULCAmc2EsIE5VTEwpOworCXNpZ2FjdGlvbihTSUdRVUlULCAmc2EsIE5VTEwpOworCXNpZ2FjdGlvbihTSUdQSVBFLCAmc2EsIE5VTEwpOworCXNpZ2FjdGlvbihTSUdURVJNLCAmc2EsIE5VTEwpOworCXNhLnNhX2hhbmRsZXIgPSB3YWtldXBfaGFuZGxlcjsKKwlzaWdhY3Rpb24oU0lHVVNSMSwgJnNhLCBOVUxMKTsKKwlzaWdlbXB0eXNldCgmYmxvY2tlZF9zZXQpOworCXNpZ2FkZHNldCgmYmxvY2tlZF9zZXQsIFNJR1VTUjEpOworCXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJmJsb2NrZWRfc2V0LCBOVUxMKTsKKwlzaWdlbXB0eXNldCgmZW1wdHlfc2V0KTsKKworCWlmIChnZXRybGltaXQoUkxJTUlUX05PRklMRSwgJnJsKSA8IDApIHsKKwkJcGVycm9yKCJnZXRybGltaXQoUkxJTUlUX05PRklMRSwgLi4uKSIpOworCQlfZXhpdCgwKTsKKwl9CisJbiA9IHJsLnJsaW1fY3VyOworCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKKwkJaWYgKGkgIT0gcGZkICYmIGkgIT0gcHJvY19wb2xsX3BpcGVbMV0pCisJCQljbG9zZShpKTsKKwl9CisKKwlwb2xsaW5mby5mZCA9IHBmZDsKKwlwb2xsaW5mby5waWQgPSBnZXRwaWQoKTsKKwlmb3IgKDs7KSB7CisjaWZuZGVmIEZSRUVCU0QKKwkgICAgICAgIGlmIChpb2N0bChwZmQsIFBJT0NXU1RPUCwgTlVMTCkgPCAwKQorI2Vsc2UgLyogRlJFRUJTRCAqLworCSAgICAgICAgaWYgKGlvY3RsKHBmZCwgUElPQ1dTVE9QLCAmcGZzKSA8IDApCisjZW5kaWYgLyogRlJFRUJTRCAqLworCQl7CisJCQlzd2l0Y2ggKGVycm5vKSB7CisJCQljYXNlIEVJTlRSOgorCQkJCWNvbnRpbnVlOworCQkJY2FzZSBFQkFERjoKKwkJCQlwb2xsaW5mby5yZXZlbnRzID0gUE9MTEVSUjsKKwkJCQlicmVhazsKKwkJCWNhc2UgRU5PRU5UOgorCQkJCXBvbGxpbmZvLnJldmVudHMgPSBQT0xMSFVQOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQlwZXJyb3IoInByb2NfcG9sbGVyOiBQSU9DV1NUT1AiKTsKKwkJCX0KKwkJCXdyaXRlKHByb2NfcG9sbF9waXBlWzFdLCAmcG9sbGluZm8sIHNpemVvZihwb2xsaW5mbykpOworCQkJX2V4aXQoMCk7CisJCX0KKwkJcG9sbGluZm8ucmV2ZW50cyA9IFBPTExXQU5UOworCQl3cml0ZShwcm9jX3BvbGxfcGlwZVsxXSwgJnBvbGxpbmZvLCBzaXplb2YocG9sbGluZm8pKTsKKwkJc2lnc3VzcGVuZCgmZW1wdHlfc2V0KTsKKwl9Cit9CisKKyNlbmRpZiAvKiAhSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KKworc3RhdGljIGludAorY2hvb3NlX3BmZCgpCit7CisJaW50IGksIGo7CisJc3RydWN0IHRjYiAqdGNwOworCisJc3RhdGljIGludCBsYXN0OworCisJaWYgKGZvbGxvd2ZvcmsgPCAyICYmCisJICAgIGxhc3QgPCBucHJvY3MgJiYgKHBvbGx2W2xhc3RdLnJldmVudHMgJiBQT0xMV0FOVCkpIHsKKwkJLyoKKwkJICogVGhlIHByZXZpb3VzIHByb2Nlc3MgaXMgcmVhZHkgdG8gcnVuIGFnYWluLiAgV2UnbGwKKwkJICogbGV0IGl0IGRvIHNvIGlmIGl0IGlzIGN1cnJlbnRseSBpbiBhIHN5c2NhbGwuICBUaGlzCisJCSAqIGhldXJpc3RpYyBpbXByb3ZlcyB0aGUgcmVhZGFiaWxpdHkgb2YgdGhlIHRyYWNlLgorCQkgKi8KKwkJdGNwID0gcGZkMnRjYihwb2xsdltsYXN0XS5mZCk7CisJCWlmICh0Y3AgJiYgKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkKKwkJCXJldHVybiBwb2xsdltsYXN0XS5mZDsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbnByb2NzOyBpKyspIHsKKwkJLyogTGV0IGNvbXBldGluZyBjaGlsZHJlbiBydW4gcm91bmQgcm9iaW4uICovCisJCWogPSAoaSArIGxhc3QgKyAxKSAlIG5wcm9jczsKKwkJaWYgKHBvbGx2W2pdLnJldmVudHMgJiAoUE9MTEhVUCB8IFBPTExFUlIpKSB7CisJCQl0Y3AgPSBwZmQydGNiKHBvbGx2W2pdLmZkKTsKKwkJCWlmICghdGNwKSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJzdHJhY2U6IGxvc3QgcHJvY1xuIik7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCWRyb3B0Y2IodGNwKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlpZiAocG9sbHZbal0ucmV2ZW50cyAmIFBPTExXQU5UKSB7CisJCQlsYXN0ID0gajsKKwkJCXJldHVybiBwb2xsdltqXS5mZDsKKwkJfQorCX0KKwlmcHJpbnRmKHN0ZGVyciwgInN0cmFjZTogbm90aGluZyByZWFkeVxuIik7CisJZXhpdCgxKTsKK30KKworc3RhdGljIGludAordHJhY2UoKQoreworI2lmZGVmIFBPTExfSEFDSworCXN0cnVjdCB0Y2IgKmluX3N5c2NhbGwgPSBOVUxMOworI2VuZGlmCisJc3RydWN0IHRjYiAqdGNwOworCWludCBwZmQ7CisJaW50IHdoYXQ7CisJaW50IGlvY3RsX3Jlc3VsdCA9IDAsIGlvY3RsX2Vycm5vID0gMDsKKwlsb25nIGFyZzsKKworCWZvciAoOzspIHsKKwkJaWYgKGludGVyYWN0aXZlKQorCQkJc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZlbXB0eV9zZXQsIE5VTEwpOworCisJCWlmIChucHJvY3MgPT0gMCkKKwkJCWJyZWFrOworCisJCXN3aXRjaCAobnByb2NzKSB7CisJCWNhc2UgMToKKyNpZm5kZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMKKwkJCWlmIChwcm9jX3BvbGxfcGlwZVswXSA9PSAtMSkgeworI2VuZGlmCisJCQkJdGNwID0gcGlkMnRjYigwKTsKKwkJCQlpZiAoIXRjcCkKKwkJCQkJY29udGludWU7CisJCQkJcGZkID0gdGNwLT5wZmQ7CisJCQkJaWYgKHBmZCA9PSAtMSkKKwkJCQkJY29udGludWU7CisJCQkJYnJlYWs7CisjaWZuZGVmIEhBVkVfUE9MTEFCTEVfUFJPQ0ZTCisJCQl9CisJCQkvKiBmYWxsIHRocm91Z2ggLi4uICovCisjZW5kaWYgLyogIUhBVkVfUE9MTEFCTEVfUFJPQ0ZTICovCisJCWRlZmF1bHQ6CisjaWZkZWYgSEFWRV9QT0xMQUJMRV9QUk9DRlMKKyNpZmRlZiBQT0xMX0hBQ0sKKwkJICAgICAgICAvKiBPbiBzb21lIHN5c3RlbXMgKGUuZy4gVW5peFdhcmUpIHdlIGdldCB0b28gbXVjaCB1Z2x5CisJCQkgICAidW5maW5pc2hlZC4uLiIgc3R1ZmYgd2hlbiBtdWx0aXBsZSBwcm9jZXNlcyBhcmUgaW4KKwkJCSAgIHN5c2NhbGxzLiAgSGVyZSdzIGEgbmFzdHkgaGFjayAqLworCisJCQlpZiAoaW5fc3lzY2FsbCkgeworCQkJCXN0cnVjdCBwb2xsZmQgcHY7CisJCQkJdGNwID0gaW5fc3lzY2FsbDsKKwkJCQlpbl9zeXNjYWxsID0gTlVMTDsKKwkJCQlwdi5mZCA9IHRjcC0+cGZkOworCQkJCXB2LmV2ZW50cyA9IFBPTExXQU5UOworCQkJCWlmICgod2hhdCA9IHBvbGwgKCZwdiwgMSwgMSkpIDwgMCkgeworCQkJCQlpZiAoaW50ZXJydXB0ZWQpCisJCQkJCQlyZXR1cm4gMDsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJCWVsc2UgaWYgKHdoYXQgPT0gMSAmJiBwdi5yZXZlbnRzICYgUE9MTFdBTlQpIHsKKwkJCQkJZ290byBGT1VORDsKKwkJCQl9CisJCQl9CisjZW5kaWYKKworCQkJaWYgKHBvbGwocG9sbHYsIG5wcm9jcywgSU5GVElNKSA8IDApIHsKKwkJCQlpZiAoaW50ZXJydXB0ZWQpCisJCQkJCXJldHVybiAwOworCQkJCWNvbnRpbnVlOworCQkJfQorI2Vsc2UgLyogIUhBVkVfUE9MTEFCTEVfUFJPQ0ZTICovCisJCQlpZiAocHJvY19wb2xsKHBvbGx2LCBucHJvY3MsIElORlRJTSkgPCAwKSB7CisJCQkJaWYgKGludGVycnVwdGVkKQorCQkJCQlyZXR1cm4gMDsKKwkJCQljb250aW51ZTsKKwkJCX0KKyNlbmRpZiAvKiAhSEFWRV9QT0xMQUJMRV9QUk9DRlMgKi8KKwkJCXBmZCA9IGNob29zZV9wZmQoKTsKKwkJCWlmIChwZmQgPT0gLTEpCisJCQkJY29udGludWU7CisJCQlicmVhazsKKwkJfQorCisJCS8qIExvb2sgdXAgYHBmZCcgaW4gb3VyIHRhYmxlLiAqLworCQlpZiAoKHRjcCA9IHBmZDJ0Y2IocGZkKSkgPT0gTlVMTCkgeworCQkJZnByaW50ZihzdGRlcnIsICJ1bmtub3duIHBmZDogJXVcbiIsIHBmZCk7CisJCQlleGl0KDEpOworCQl9CisjaWZkZWYgUE9MTF9IQUNLCisJRk9VTkQ6CisjZW5kaWYKKwkJLyogR2V0IHRoZSBzdGF0dXMgb2YgdGhlIHByb2Nlc3MuICovCisJCWlmICghaW50ZXJydXB0ZWQpIHsKKyNpZm5kZWYgRlJFRUJTRAorCQkJaW9jdGxfcmVzdWx0ID0gSU9DVExfV1NUT1AgKHRjcCk7CisjZWxzZSAvKiBGUkVFQlNEICovCisJCQkvKiBUaGFua3MgdG8gc29tZSBzY2hlZHVsaW5nIG15c3RlcnksIHRoZSBmaXJzdCBwb2xsZXIKKwkJCSAgIHNvbWV0aW1lcyB3YWl0cyBmb3IgdGhlIGFscmVhZHkgcHJvY2Vzc2VkIGVuZCBvZiBmb3JrCisJCQkgICBldmVudC4gRG9pbmcgYSBub24gYmxvY2tpbmcgcG9sbCBoZXJlIHNvbHZlcyB0aGUgcHJvYmxlbS4gKi8KKwkJCWlmIChwcm9jX3BvbGxfcGlwZVswXSAhPSAtMSkKKwkJCQlpb2N0bF9yZXN1bHQgPSBJT0NUTF9TVEFUVVMgKHRjcCk7CisJCQllbHNlCisJCQkgIAlpb2N0bF9yZXN1bHQgPSBJT0NUTF9XU1RPUCAodGNwKTsKKyNlbmRpZiAvKiBGUkVFQlNEICovCisJCQlpb2N0bF9lcnJubyA9IGVycm5vOworI2lmbmRlZiBIQVZFX1BPTExBQkxFX1BST0NGUworCQkJaWYgKHByb2NfcG9sbF9waXBlWzBdICE9IC0xKSB7CisJCQkJaWYgKGlvY3RsX3Jlc3VsdCA8IDApCisJCQkJCWtpbGwocG9sbGVyX3BpZCwgU0lHS0lMTCk7CisJCQkJZWxzZQorCQkJCQlraWxsKHBvbGxlcl9waWQsIFNJR1VTUjEpOworCQkJfQorI2VuZGlmIC8qICFIQVZFX1BPTExBQkxFX1BST0NGUyAqLworCQl9CisJCWlmIChpbnRlcnJ1cHRlZCkKKwkJCXJldHVybiAwOworCisJCWlmIChpbnRlcmFjdGl2ZSkKKwkJCXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJmJsb2NrZWRfc2V0LCBOVUxMKTsKKworCQlpZiAoaW9jdGxfcmVzdWx0IDwgMCkgeworCQkJLyogRmluZCBvdXQgd2hhdCBoYXBwZW5lZCBpZiBpdCBmYWlsZWQuICovCisJCQlzd2l0Y2ggKGlvY3RsX2Vycm5vKSB7CisJCQljYXNlIEVJTlRSOgorCQkJY2FzZSBFQkFERjoKKwkJCQljb250aW51ZTsKKyNpZmRlZiBGUkVFQlNECisJCQljYXNlIEVOT1RUWToKKyNlbmRpZgorCQkJY2FzZSBFTk9FTlQ6CisJCQkJZHJvcHRjYih0Y3ApOworCQkJCWNvbnRpbnVlOworCQkJZGVmYXVsdDoKKwkJCQlwZXJyb3IoIlBJT0NXU1RPUCIpOworCQkJCWV4aXQoMSk7CisJCQl9CisJCX0KKworI2lmZGVmIEZSRUVCU0QKKwkJaWYgKCh0Y3AtPmZsYWdzICYgVENCX1NUQVJUVVApICYmICh0Y3AtPnN0YXR1cy5QUl9XSFkgPT0gUFJfU1lTRVhJVCkpIHsKKwkJCS8qIGRpc2NhcmQgZmlyc3QgZXZlbnQgZm9yIGEgc3lzY2FsbCB3ZSBuZXZlciBlbnRlcmVkICovCisJCQlJT0NUTCAodGNwLT5wZmQsIFBJT0NSVU4sIDApOworCQkJY29udGludWU7CisJCX0KKyNlbmRpZgorCisJCS8qIGNsZWFyIHRoZSBqdXN0IHN0YXJ0ZWQgZmxhZyAqLworCQl0Y3AtPmZsYWdzICY9IH5UQ0JfU1RBUlRVUDsKKworCQkvKiBzZXQgY3VycmVudCBvdXRwdXQgZmlsZSAqLworCQlvdXRmID0gdGNwLT5vdXRmOworCisJCWlmIChjZmxhZykgeworCQkJc3RydWN0IHRpbWV2YWwgc3RpbWU7CisjaWZkZWYgRlJFRUJTRAorCQkJY2hhciBidWZbMTAyNF07CisJCQlpbnQgbGVuOworCisJCQlpZiAoKGxlbiA9IHByZWFkKHRjcC0+cGZkX3N0YXR1cywgYnVmLCBzaXplb2YoYnVmKSAtIDEsIDApKSA+IDApIHsKKwkJCQlidWZbbGVuXSA9ICdcMCc7CisJCQkJc3NjYW5mKGJ1ZiwKKwkJCQkgICAgICAgIiUqcyAlKmQgJSpkICUqZCAlKmQgJSpkLCUqZCAlKnMgJSpkLCUqZCAlKmQsJSpkICVsZCwlbGQiLAorCQkJCSAgICAgICAmc3RpbWUudHZfc2VjLCAmc3RpbWUudHZfdXNlYyk7CisJCQl9IGVsc2UKKwkJCQlzdGltZS50dl9zZWMgPSBzdGltZS50dl91c2VjID0gMDsKKyNlbHNlIC8qICFGUkVFQlNEICovCisJCQlzdGltZS50dl9zZWMgPSB0Y3AtPnN0YXR1cy5wcl9zdGltZS50dl9zZWM7CisJCQlzdGltZS50dl91c2VjID0gdGNwLT5zdGF0dXMucHJfc3RpbWUudHZfbnNlYy8xMDAwOworI2VuZGlmIC8qICFGUkVFQlNEICovCisJCQl0dl9zdWIoJnRjcC0+ZHRpbWUsICZzdGltZSwgJnRjcC0+c3RpbWUpOworCQkJdGNwLT5zdGltZSA9IHN0aW1lOworCQl9CisJCXdoYXQgPSB0Y3AtPnN0YXR1cy5QUl9XSEFUOworCQlzd2l0Y2ggKHRjcC0+c3RhdHVzLlBSX1dIWSkgeworI2lmbmRlZiBGUkVFQlNECisJCWNhc2UgUFJfUkVRVUVTVEVEOgorCQkJaWYgKHRjcC0+c3RhdHVzLlBSX0ZMQUdTICYgUFJfQVNMRUVQKSB7CisJCQkJdGNwLT5zdGF0dXMuUFJfV0hZID0gUFJfU1lTRU5UUlk7CisJCQkJaWYgKHRyYWNlX3N5c2NhbGwodGNwKSA8IDApIHsKKwkJCQkJZnByaW50ZihzdGRlcnIsICJzeXNjYWxsIHRyb3VibGVcbiIpOworCQkJCQlleGl0KDEpOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOworI2VuZGlmIC8qICFGUkVFQlNEICovCisJCWNhc2UgUFJfU1lTRU5UUlk6CisjaWZkZWYgUE9MTF9IQUNLCisJCSAgICAgICAgaW5fc3lzY2FsbCA9IHRjcDsKKyNlbmRpZgorCQljYXNlIFBSX1NZU0VYSVQ6CisJCQlpZiAodHJhY2Vfc3lzY2FsbCh0Y3ApIDwgMCkgeworCQkJCWZwcmludGYoc3RkZXJyLCAic3lzY2FsbCB0cm91YmxlXG4iKTsKKwkJCQlleGl0KDEpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgUFJfU0lHTkFMTEVEOgorCQkJaWYgKCFjZmxhZyAmJiAocXVhbF9mbGFnc1t3aGF0XSAmIFFVQUxfU0lHTkFMKSkgeworCQkJCXByaW50bGVhZGVyKHRjcCk7CisJCQkJdHByaW50ZigiLS0tICVzICglcykgLS0tIiwKKwkJCQkJc2lnbmFtZSh3aGF0KSwgc3Ryc2lnbmFsKHdoYXQpKTsKKwkJCQlwcmludHRyYWlsZXIodGNwKTsKKyNpZmRlZiBQUl9JTkZPCisJCQkJaWYgKHRjcC0+c3RhdHVzLlBSX0lORk8uc2lfc2lnbm8gPT0gd2hhdCkgeworCQkJCQlwcmludGxlYWRlcih0Y3ApOworCQkJCQl0cHJpbnRmKCIgICAgc2lnaW5mbz0iKTsKKwkJCQkJcHJpbnRzaWdpbmZvKCZ0Y3AtPnN0YXR1cy5QUl9JTkZPLCAxKTsKKwkJCQkJcHJpbnR0cmFpbGVyKHRjcCk7CisJCQkJfQorI2VuZGlmCisJCQl9CisJCQlicmVhazsKKwkJY2FzZSBQUl9GQVVMVEVEOgorCQkJaWYgKCFjZmxhZyAmJiAocXVhbF9mbGFnc1t3aGF0XSAmIFFVQUxfRkFVTFQpKSB7CisJCQkJcHJpbnRsZWFkZXIodGNwKTsKKwkJCQl0cHJpbnRmKCI9PT0gRkFVTFQgJWQgPT09Iiwgd2hhdCk7CisJCQkJcHJpbnR0cmFpbGVyKHRjcCk7CisJCQl9CisJCQlicmVhazsKKyNpZmRlZiBGUkVFQlNECisJCWNhc2UgMDogLyogaGFuZGxlIGNhc2Ugd2UgcG9sbGVkIGZvciBub3RoaW5nICovCisJCSAgCWNvbnRpbnVlOworI2VuZGlmCisJCWRlZmF1bHQ6CisJCQlmcHJpbnRmKHN0ZGVyciwgIm9kZCBzdG9wICVkXG4iLCB0Y3AtPnN0YXR1cy5QUl9XSFkpOworCQkJZXhpdCgxKTsKKwkJCWJyZWFrOworCQl9CisJCWFyZyA9IDA7CisjaWZuZGVmIEZSRUVCU0QKKwkJaWYgKElPQ1RMICh0Y3AtPnBmZCwgUElPQ1JVTiwgJmFyZykgPCAwKSB7CisjZWxzZQorCQlpZiAoSU9DVEwgKHRjcC0+cGZkLCBQSU9DUlVOLCAwKSA8IDApIHsKKyNlbmRpZgorCQkJcGVycm9yKCJQSU9DUlVOIik7CisJCQlleGl0KDEpOworCQl9CisJfQorCXJldHVybiAwOworfQorCisjZWxzZSAvKiAhVVNFX1BST0NGUyAqLworCisjaWZkZWYgVENCX0dST1VQX0VYSVRJTkcKKy8qIEhhbmRsZSBhbiBleGl0IGRldGFjaCBvciBkZWF0aCBzaWduYWwgdGhhdCBpcyB0YWtpbmcgYWxsIHRoZQorICAgcmVsYXRlZCBjbG9uZSB0aHJlYWRzIHdpdGggaXQuICBUaGlzIGlzIGNhbGxlZCBpbiB0aHJlZSBjaXJjdW1zdGFuY2VzOgorICAgU0lHID09IC0xCVRDUCBoYXMgYWxyZWFkeSBkaWVkIChUQ0JfQVRUQUNIRUQgaXMgY2xlYXIsIHN0cmFjZSBpcyBwYXJlbnQpLgorICAgU0lHID09IDAJQ29udGludWluZyBUQ1Agd2lsbCBwZXJmb3JtIGFuIGV4aXRfZ3JvdXAgc3lzY2FsbC4KKyAgIFNJRyA9PSBvdGhlcglDb250aW51aW5nIFRDUCB3aXRoIFNJRyB3aWxsIGtpbGwgdGhlIHByb2Nlc3MuCisqLworc3RhdGljIGludAoraGFuZGxlX2dyb3VwX2V4aXQoc3RydWN0IHRjYiAqdGNwLCBpbnQgc2lnKQoreworCS8qIFdlIG5lZWQgdG8gbG9jYXRlIG91ciByZWNvcmRzIG9mIGFsbCB0aGUgY2xvbmUgdGhyZWFkcworCSAgIHJlbGF0ZWQgdG8gVENQLCBlaXRoZXIgaXRzIGNoaWxkcmVuIG9yIHNpYmxpbmdzLiAgKi8KKwlzdHJ1Y3QgdGNiICpsZWFkZXIgPSAoKHRjcC0+ZmxhZ3MgJiBUQ0JfQ0xPTkVfVEhSRUFEKQorCQkJICAgICAgPyB0Y3AtPnBhcmVudAorCQkJICAgICAgOiB0Y3AtPm5jbG9uZV9kZXRhY2hlZCA+IDAKKwkJCSAgICAgID8gdGNwIDogTlVMTCk7CisKKwlpZiAoc2lnIDwgMCkgeworCQlpZiAobGVhZGVyICE9IE5VTEwgJiYgbGVhZGVyICE9IHRjcCAmJgorCQkgICAgIShsZWFkZXItPmZsYWdzICYgVENCX0dST1VQX0VYSVRJTkcpKQorCQkJZnByaW50ZihzdGRlcnIsCisJCQkJIlBBTklDOiBoYW5kbGVfZ3JvdXBfZXhpdDogJWQgbGVhZGVyICVkXG4iLAorCQkJCXRjcC0+cGlkLCBsZWFkZXIgPyBsZWFkZXItPnBpZCA6IC0xKTsKKwkJLyogVENQIG5vIGxvbmdlciBleGlzdHMgdGhlcmVmb3JlIHlvdSBtdXN0IG5vdCBkZXRhY2ggKCkgaXQuICAqLworCQlkcm9wdGNiKHRjcCk7CS8qIEFscmVhZHkgZGllZC4gICovCisJfQorCWVsc2UgeworCQkvKiBNYXJrIHRoYXQgd2UgYXJlIHRha2luZyB0aGUgcHJvY2VzcyBkb3duLiAgKi8KKwkJdGNwLT5mbGFncyB8PSBUQ0JfRVhJVElORyB8IFRDQl9HUk9VUF9FWElUSU5HOworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9BVFRBQ0hFRCkgeworCQkJZGV0YWNoKHRjcCwgc2lnKTsKKwkJICAJaWYgKGxlYWRlciAhPSBOVUxMICYmIGxlYWRlciAhPSB0Y3ApIHsKKwkJCQlpZiAoKGxlYWRlci0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpICYmCisJCQkJICAgICEobGVhZGVyLT5mbGFncyAmIFRDQl9FWElUSU5HKSkgeworCQkJCQkvKiBXZSBuZWVkIHRvIGRldGFjaCB0aGUgbGVhZGVyIHNvCisJCQkJCSAgIHRoYXQgdGhlIHByb2Nlc3MgZGVhdGggd2lsbCBiZQorCQkJCQkgICByZXBvcnRlZCB0byBpdHMgcmVhbCBwYXJlbnQuICAqLworCQkJCQlpZiAoZGVidWcpCisJCQkJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkJCQkiIFslZCBleGl0ICVkIGRldGFjaGVzICVkXVxuIiwKKwkJCQkJCQl0Y3AtPnBpZCwgc2lnLCBsZWFkZXItPnBpZCk7CisJCQkJCWRldGFjaChsZWFkZXIsIHNpZyk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJbGVhZGVyLT5mbGFncyB8PSBUQ0JfR1JPVVBfRVhJVElORzsKKwkJCX0KKwkJfQorCQllbHNlIGlmIChwdHJhY2UoUFRSQUNFX0NPTlQsIHRjcC0+cGlkLCAoY2hhciAqKSAxLCBzaWcpIDwgMCkgeworCQkJcGVycm9yKCJzdHJhY2U6IHB0cmFjZShQVFJBQ0VfQ09OVCwgLi4uKSIpOworCQkJY2xlYW51cCgpOworCQkJcmV0dXJuIC0xOworCQl9CisJCWVsc2UgeworCQkJaWYgKGxlYWRlciAhPSBOVUxMKQorCQkJCWxlYWRlci0+ZmxhZ3MgfD0gVENCX0dST1VQX0VYSVRJTkc7CisJCQlpZiAobGVhZGVyICE9IE5VTEwgJiYgbGVhZGVyICE9IHRjcCkKKwkJCQlkcm9wdGNiKHRjcCk7CisJCQkvKiBUaGUgbGVhZGVyIHdpbGwgcmVwb3J0IHRvIHVzIGFzIHBhcmVudCBub3csCisJCQkgICBhbmQgdGhlbiB3ZSdsbCBnZXQgdG8gdGhlIFNJRz09LTEgY2FzZS4gICovCisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK3RyYWNlKCkKK3sKKwlpbnQgcGlkOworCWludCB3YWl0X2Vycm5vOworCWludCBzdGF0dXM7CisJc3RydWN0IHRjYiAqdGNwOworI2lmZGVmIExJTlVYCisJc3RydWN0IHJ1c2FnZSBydTsKKyNpZmRlZiBfX1dBTEwKKwlzdGF0aWMgaW50IHdhaXQ0X29wdGlvbnMgPSBfX1dBTEw7CisjZW5kaWYKKyNlbmRpZiAvKiBMSU5VWCAqLworCisJd2hpbGUgKG5wcm9jcyAhPSAwKSB7CisJCWlmIChpbnRlcmFjdGl2ZSkKKwkJCXNpZ3Byb2NtYXNrKFNJR19TRVRNQVNLLCAmZW1wdHlfc2V0LCBOVUxMKTsKKyNpZmRlZiBMSU5VWAorI2lmZGVmIF9fV0FMTAorCQlwaWQgPSB3YWl0NCgtMSwgJnN0YXR1cywgd2FpdDRfb3B0aW9ucywgY2ZsYWcgPyAmcnUgOiBOVUxMKTsKKwkJaWYgKHBpZCA8IDAgJiYgKHdhaXQ0X29wdGlvbnMgJiBfX1dBTEwpICYmIGVycm5vID09IEVJTlZBTCkgeworCQkJLyogdGhpcyBrZXJuZWwgZG9lcyBub3Qgc3VwcG9ydCBfX1dBTEwgKi8KKwkJCXdhaXQ0X29wdGlvbnMgJj0gfl9fV0FMTDsKKwkJCWVycm5vID0gMDsKKwkJCXBpZCA9IHdhaXQ0KC0xLCAmc3RhdHVzLCB3YWl0NF9vcHRpb25zLAorCQkJCQljZmxhZyA/ICZydSA6IE5VTEwpOworCQl9CisJCWlmIChwaWQgPCAwICYmICEod2FpdDRfb3B0aW9ucyAmIF9fV0FMTCkgJiYgZXJybm8gPT0gRUNISUxEKSB7CisJCQkvKiBtb3N0IGxpa2VseSBhICJjbG9uZWQiIHByb2Nlc3MgKi8KKwkJCXBpZCA9IHdhaXQ0KC0xLCAmc3RhdHVzLCBfX1dDTE9ORSwKKwkJCQkJY2ZsYWcgPyAmcnUgOiBOVUxMKTsKKwkJCWlmIChwaWQgPT0gLTEpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgInN0cmFjZTogY2xvbmUgd2FpdDQgIgorCQkJCQkJImZhaWxlZDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CisJCQl9CisJCX0KKyNlbHNlCisJCXBpZCA9IHdhaXQ0KC0xLCAmc3RhdHVzLCAwLCBjZmxhZyA/ICZydSA6IE5VTEwpOworI2VuZGlmIC8qIF9fV0FMTCAqLworI2VuZGlmIC8qIExJTlVYICovCisjaWZkZWYgU1VOT1M0CisJCXBpZCA9IHdhaXQoJnN0YXR1cyk7CisjZW5kaWYgLyogU1VOT1M0ICovCisJCXdhaXRfZXJybm8gPSBlcnJubzsKKwkJaWYgKGludGVyYWN0aXZlKQorCQkJc2lncHJvY21hc2soU0lHX0JMT0NLLCAmYmxvY2tlZF9zZXQsIE5VTEwpOworCisJCWlmIChpbnRlcnJ1cHRlZCkKKwkJCXJldHVybiAwOworCisJCWlmIChwaWQgPT0gLTEpIHsKKwkJCXN3aXRjaCAod2FpdF9lcnJubykgeworCQkJY2FzZSBFSU5UUjoKKwkJCQljb250aW51ZTsKKwkJCWNhc2UgRUNISUxEOgorCQkJCS8qCisJCQkJICogV2Ugd291bGQgbGlrZSB0byB2ZXJpZnkgdGhpcyBjYXNlCisJCQkJICogYnV0IHNvbWV0aW1lcyBhIHJhY2UgaW4gU29sYm91cm5lJ3MKKwkJCQkgKiB2ZXJzaW9uIG9mIFN1bk9TIHNvbWV0aW1lcyByZXBvcnRzCisJCQkJICogRUNISUxEIGJlZm9yZSBzZW5kaW5nIHVzIFNJR0NISUxELgorCQkJCSAqLworI2lmIDAKKwkJCQlpZiAobnByb2NzID09IDApCisJCQkJCXJldHVybiAwOworCQkJCWZwcmludGYoc3RkZXJyLCAic3RyYWNlOiBwcm9jIG1pc2NvdW50XG4iKTsKKwkJCQlleGl0KDEpOworI2VuZGlmCisJCQkJcmV0dXJuIDA7CisJCQlkZWZhdWx0OgorCQkJCWVycm5vID0gd2FpdF9lcnJubzsKKwkJCQlwZXJyb3IoInN0cmFjZTogd2FpdCIpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfQorCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwgIiBbd2FpdCglI3gpID0gJXVdXG4iLCBzdGF0dXMsIHBpZCk7CisKKwkJLyogTG9vayB1cCBgcGlkJyBpbiBvdXIgdGFibGUuICovCisJCWlmICgodGNwID0gcGlkMnRjYihwaWQpKSA9PSBOVUxMKSB7CisjaWZkZWYgTElOVVgKKwkJCWlmIChmb2xsb3dmb3JrIHx8IGZvbGxvd3Zmb3JrKSB7CisJCQkJLyogVGhpcyBpcyBuZWVkZWQgdG8gZ28gd2l0aCB0aGUgQ0xPTkVfUFRSQUNFCisJCQkJICAgY2hhbmdlcyBpbiBwcm9jZXNzLmMvdXRpbC5jOiB3ZSBtaWdodCBzZWUKKwkJCQkgICB0aGUgY2hpbGQncyBpbml0aWFsIHRyYXAgYmVmb3JlIHdlIHNlZSB0aGUKKwkJCQkgICBwYXJlbnQgcmV0dXJuIGZyb20gdGhlIGNsb25lIHN5c2NhbGwuCisJCQkJICAgTGVhdmUgdGhlIGNoaWxkIHN1c3BlbmRlZCB1bnRpbCB0aGUgcGFyZW50CisJCQkJICAgcmV0dXJucyBmcm9tIGl0cyBzeXN0ZW0gY2FsbC4gIE9ubHkgdGhlbgorCQkJCSAgIHdpbGwgd2UgaGF2ZSB0aGUgYXNzb2NpYXRpb24gb2YgcGFyZW50IGFuZAorCQkJCSAgIGNoaWxkIHNvIHRoYXQgd2Uga25vdyBob3cgdG8gZG8gY2xlYXJicHQKKwkJCQkgICBpbiB0aGUgY2hpbGQuICAqLworCQkJCWlmIChucHJvY3MgPT0gdGNidGFic2l6ZSAmJgorCQkJCSAgICBleHBhbmRfdGNidGFiKCkpCisJCQkJCXRjcCA9IE5VTEw7CisJCQkJZWxzZQorCQkJCQl0Y3AgPSBhbGxvY3RjYihwaWQpOworCQkJCWlmICh0Y3AgPT0gTlVMTCkgeworCQkJCQlraWxsKHBpZCwgU0lHS0lMTCk7IC8qIFhYWCAqLworCQkJCQlyZXR1cm4gMDsKKwkJCQl9CisJCQkJdGNwLT5mbGFncyB8PSBUQ0JfQVRUQUNIRUQgfCBUQ0JfU1VTUEVOREVEOworCQkJCW5ld291dGYodGNwKTsKKwkJCQlpZiAoIXFmbGFnKQorCQkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKK1Byb2Nlc3MgJWQgYXR0YWNoZWQgKHdhaXRpbmcgZm9yIHBhcmVudClcbiIsCisJCQkJCQlwaWQpOworCQkJfQorCQkJZWxzZQorCQkJCS8qIFRoaXMgY2FuIGhhcHBlbiBpZiBhIGNsb25lIGNhbGwgdXNlZAorCQkJCSAgIENMT05FX1BUUkFDRSBpdHNlbGYuICAqLworI2VuZGlmCisJCQl7CisJCQkJZnByaW50ZihzdGRlcnIsICJ1bmtub3duIHBpZDogJXVcbiIsIHBpZCk7CisJCQkJaWYgKFdJRlNUT1BQRUQoc3RhdHVzKSkKKwkJCQkJcHRyYWNlKFBUUkFDRV9DT05ULCBwaWQsIChjaGFyICopIDEsIDApOworCQkJCWV4aXQoMSk7CisJCQl9CisJCX0KKwkJLyogc2V0IGN1cnJlbnQgb3V0cHV0IGZpbGUgKi8KKwkJb3V0ZiA9IHRjcC0+b3V0ZjsKKwkJaWYgKGNmbGFnKSB7CisjaWZkZWYgTElOVVgKKwkJCXR2X3N1YigmdGNwLT5kdGltZSwgJnJ1LnJ1X3N0aW1lLCAmdGNwLT5zdGltZSk7CisJCQl0Y3AtPnN0aW1lID0gcnUucnVfc3RpbWU7CisjZW5kaWYgLyogIUxJTlVYICovCisJCX0KKworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9TVVNQRU5ERUQpIHsKKwkJCS8qCisJCQkgKiBBcHBhcmVudGx5LCBkb2luZyBhbnkgcHRyYWNlKCkgY2FsbCBvbiBhIHN0b3BwZWQKKwkJCSAqIHByb2Nlc3MsIHByb3Zva2VzIHRoZSBrZXJuZWwgdG8gcmVwb3J0IHRoZSBwcm9jZXNzCisJCQkgKiBzdGF0dXMgYWdhaW4gb24gYSBzdWJzZXF1ZW50IHdhaXQoKSwgZXZlbiBpZiB0aGUKKwkJCSAqIHByb2Nlc3MgaGFzIG5vdCBiZWVuIGFjdHVhbGx5IHJlc3RhcnRlZC4KKwkJCSAqIFNpbmNlIHdlIGhhdmUgaW5zcGVjdGVkIHRoZSBhcmd1bWVudHMgb2Ygc3VzcGVuZGVkCisJCQkgKiBwcm9jZXNzZXMgd2UgZW5kIHVwIGhlcmUgdGVzdGluZyBmb3IgdGhpcyBjYXNlLgorCQkJICovCisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoV0lGU0lHTkFMRUQoc3RhdHVzKSkgeworCQkJaWYgKCFjZmxhZworCQkJICAgICYmIChxdWFsX2ZsYWdzW1dURVJNU0lHKHN0YXR1cyldICYgUVVBTF9TSUdOQUwpKSB7CisJCQkJcHJpbnRsZWFkZXIodGNwKTsKKwkJCQl0cHJpbnRmKCIrKysga2lsbGVkIGJ5ICVzICVzKysrIiwKKwkJCQkJc2lnbmFtZShXVEVSTVNJRyhzdGF0dXMpKSwKKyNpZmRlZiBXQ09SRURVTVAKKwkJCQkJV0NPUkVEVU1QKHN0YXR1cykgPyAiKGNvcmUgZHVtcGVkKSAiIDoKKyNlbmRpZgorCQkJCQkiIik7CisJCQkJcHJpbnR0cmFpbGVyKHRjcCk7CisJCQl9CisjaWZkZWYgVENCX0dST1VQX0VYSVRJTkcKKwkJCWhhbmRsZV9ncm91cF9leGl0KHRjcCwgLTEpOworI2Vsc2UKKwkJCWRyb3B0Y2IodGNwKTsKKyNlbmRpZgorCQkJY29udGludWU7CisJCX0KKwkJaWYgKFdJRkVYSVRFRChzdGF0dXMpKSB7CisJCQlpZiAoZGVidWcpCisJCQkJZnByaW50ZihzdGRlcnIsICJwaWQgJXUgZXhpdGVkXG4iLCBwaWQpOworCQkJaWYgKCh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKQorI2lmZGVmIFRDQl9HUk9VUF9FWElUSU5HCisJCQkgICAgJiYgISh0Y3AtPnBhcmVudCAmJiAodGNwLT5wYXJlbnQtPmZsYWdzICYKKwkJCQkJCSBUQ0JfR1JPVVBfRVhJVElORykpCisjZW5kaWYKKwkJCQkpCisJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCSJQQU5JQzogYXR0YWNoZWQgcGlkICV1IGV4aXRlZFxuIiwKKwkJCQkJcGlkKTsKKwkJCWlmICh0Y3AgPT0gdGNwX2xhc3QpIHsKKwkJCQlpZiAoKHRjcC0+ZmxhZ3MgJiAoVENCX0lOU1lTQ0FMTHxUQ0JfUkVQUklOVCkpCisJCQkJICAgID09IFRDQl9JTlNZU0NBTEwpCisJCQkJCXRwcmludGYoIiA8dW5maW5pc2hlZCAuLi4gZXhpdCBzdGF0dXMgJWQ+XG4iLAorCQkJCQkJV0VYSVRTVEFUVVMoc3RhdHVzKSk7CisJCQkJdGNwX2xhc3QgPSBOVUxMOworCQkJfQorI2lmZGVmIFRDQl9HUk9VUF9FWElUSU5HCisJCQloYW5kbGVfZ3JvdXBfZXhpdCh0Y3AsIC0xKTsKKyNlbHNlCisJCQlkcm9wdGNiKHRjcCk7CisjZW5kaWYKKwkJCWNvbnRpbnVlOworCQl9CisJCWlmICghV0lGU1RPUFBFRChzdGF0dXMpKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBwaWQgJXUgbm90IHN0b3BwZWRcbiIsIHBpZCk7CisJCQlkcm9wdGNiKHRjcCk7CisJCQljb250aW51ZTsKKwkJfQorCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwgInBpZCAldSBzdG9wcGVkLCBbJXNdXG4iLAorCQkJCXBpZCwgc2lnbmFtZShXU1RPUFNJRyhzdGF0dXMpKSk7CisKKwkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfU1RBUlRVUCkgeworCQkJLyoKKwkJCSAqIFRoaXMgZmxhZyBpcyB0aGVyZSB0byBrZWVwIHVzIGluIHN5bmMuCisJCQkgKiBOZXh0IHRpbWUgdGhpcyBwcm9jZXNzIHN0b3BzIGl0IHNob3VsZAorCQkJICogcmVhbGx5IGJlIGVudGVyaW5nIGEgc3lzdGVtIGNhbGwuCisJCQkgKi8KKwkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9TVEFSVFVQOworCQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQVRUQUNIRUQpIHsKKwkJCQkvKgorCQkJCSAqIEludGVyZXN0aW5nbHksIHRoZSBwcm9jZXNzIG1heSBzdG9wCisJCQkJICogd2l0aCBTVE9QU0lHIGVxdWFsIHRvIHNvbWUgb3RoZXIgc2lnbmFsCisJCQkJICogdGhhbiBTSUdTVE9QIGlmIHdlIGhhcHBlbmQgdG8gYXR0YWNoCisJCQkJICoganVzdCBiZWZvcmUgdGhlIHByb2Nlc3MgdGFrZXMgYSBzaWduYWwuCisJCQkJICovCisJCQkJaWYgKCFXSUZTVE9QUEVEKHN0YXR1cykpIHsKKwkJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCQkicGlkICV1IG5vdCBzdG9wcGVkXG4iLCBwaWQpOworCQkJCQlkZXRhY2godGNwLCBXU1RPUFNJRyhzdGF0dXMpKTsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfQorCQkJZWxzZSB7CisjaWZkZWYgU1VOT1M0CisJCQkJLyogQSBjaGlsZCBvZiB1cyBzdG9wcGVkIGF0IGV4ZWMgKi8KKwkJCQlpZiAoV1NUT1BTSUcoc3RhdHVzKSA9PSBTSUdUUkFQICYmIGZvbGxvd3Zmb3JrKQorCQkJCQlmaXh2Zm9yayh0Y3ApOworI2VuZGlmIC8qIFNVTk9TNCAqLworCQkJfQorCQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSB7CisJCQkJaWYgKGNsZWFyYnB0KHRjcCkgPCAwKSAvKiBQcmV0dHkgZmF0YWwgKi8geworCQkJCQlkcm9wdGNiKHRjcCk7CisJCQkJCWNsZWFudXAoKTsKKwkJCQkJcmV0dXJuIC0xOworCQkJCX0KKwkJCX0KKwkJCWdvdG8gdHJhY2luZzsKKwkJfQorCisJCWlmIChXU1RPUFNJRyhzdGF0dXMpICE9IFNJR1RSQVApIHsKKwkJCWlmIChXU1RPUFNJRyhzdGF0dXMpID09IFNJR1NUT1AgJiYKKwkJCQkJKHRjcC0+ZmxhZ3MgJiBUQ0JfU0lHVFJBUFBFRCkpIHsKKwkJCQkvKgorCQkJCSAqIFRyYXBwZWQgYXR0ZW1wdCB0byBibG9jayBTSUdUUkFQCisJCQkJICogSG9wZSB3ZSBhcmUgYmFjayBpbiBjb250cm9sIG5vdy4KKwkJCQkgKi8KKwkJCQl0Y3AtPmZsYWdzICY9IH4oVENCX0lOU1lTQ0FMTCB8IFRDQl9TSUdUUkFQUEVEKTsKKwkJCQlpZiAocHRyYWNlKFBUUkFDRV9TWVNDQUxMLAorCQkJCQkJcGlkLCAoY2hhciAqKSAxLCAwKSA8IDApIHsKKwkJCQkJcGVycm9yKCJ0cmFjZTogcHRyYWNlKFBUUkFDRV9TWVNDQUxMLCAuLi4pIik7CisJCQkJCWNsZWFudXAoKTsKKwkJCQkJcmV0dXJuIC0xOworCQkJCX0KKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWlmICghY2ZsYWcKKwkJCSAgICAmJiAocXVhbF9mbGFnc1tXU1RPUFNJRyhzdGF0dXMpXSAmIFFVQUxfU0lHTkFMKSkgeworCQkJCXVuc2lnbmVkIGxvbmcgYWRkciA9IDAsIHBjID0gMDsKKyNpZiBkZWZpbmVkKFBUX0NSX0lQU1IpICYmIGRlZmluZWQoUFRfQ1JfSUlQKSAmJiBkZWZpbmVkKFBUX0dFVFNJR0lORk8pCisjCQkJCWRlZmluZSBQU1JfUkkJNDEKKwkJCQlzdHJ1Y3Qgc2lnaW5mbyBzaTsKKwkJCQl1bnNpZ25lZCBsb25nIHBzcjsKKworCQkJCXVwZWVrKHBpZCwgUFRfQ1JfSVBTUiwgJnBzcik7CisJCQkJdXBlZWsocGlkLCBQVF9DUl9JSVAsICZwYyk7CisKKwkJCQlwYyArPSAocHNyID4+IFBTUl9SSSkgJiAweDM7CisJCQkJcHRyYWNlKFBUX0dFVFNJR0lORk8sIHBpZCwgMCwgKGxvbmcpICZzaSk7CisJCQkJYWRkciA9ICh1bnNpZ25lZCBsb25nKSBzaS5zaV9hZGRyOworI2VsaWYgZGVmaW5lZCBQVFJBQ0VfR0VUU0lHSU5GTworCQkJCWlmIChXU1RPUFNJRyhzdGF0dXMpID09IFNJR1NFR1YgfHwKKwkJCQkgICAgV1NUT1BTSUcoc3RhdHVzKSA9PSBTSUdCVVMpIHsKKwkJCQkJc2lnaW5mb190IHNpOworCQkJCQlpZiAocHRyYWNlKFBUUkFDRV9HRVRTSUdJTkZPLCBwaWQsCisJCQkJCQkgICAwLCAmc2kpID09IDApCisJCQkJCQlhZGRyID0gKHVuc2lnbmVkIGxvbmcpCisJCQkJCQkJc2kuc2lfYWRkcjsKKwkJCQl9CisjZW5kaWYKKwkJCQlwcmludGxlYWRlcih0Y3ApOworCQkJCXRwcmludGYoIi0tLSAlcyAoJXMpIEAgJWx4ICglbHgpIC0tLSIsCisJCQkJCXNpZ25hbWUoV1NUT1BTSUcoc3RhdHVzKSksCisJCQkJCXN0cnNpZ25hbChXU1RPUFNJRyhzdGF0dXMpKSwgcGMsIGFkZHIpOworCQkJCXByaW50dHJhaWxlcih0Y3ApOworCQkJfQorCQkJaWYgKCgodGNwLT5mbGFncyAmIFRDQl9BVFRBQ0hFRCkgfHwKKwkJCSAgICAgdGNwLT5uY2xvbmVfdGhyZWFkcyA+IDApICYmCisJCQkJIXNpZ2lzaGFuZGxlZCh0Y3AsIFdTVE9QU0lHKHN0YXR1cykpKSB7CisjaWZkZWYgVENCX0dST1VQX0VYSVRJTkcKKwkJCQloYW5kbGVfZ3JvdXBfZXhpdCh0Y3AsIFdTVE9QU0lHKHN0YXR1cykpOworI2Vsc2UKKwkJCQlkZXRhY2godGNwLCBXU1RPUFNJRyhzdGF0dXMpKTsKKyNlbmRpZgorCQkJCWNvbnRpbnVlOworCQkJfQorCQkJaWYgKHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgcGlkLCAoY2hhciAqKSAxLAorCQkJCSAgIFdTVE9QU0lHKHN0YXR1cykpIDwgMCkgeworCQkJCXBlcnJvcigidHJhY2U6IHB0cmFjZShQVFJBQ0VfU1lTQ0FMTCwgLi4uKSIpOworCQkJCWNsZWFudXAoKTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfU1VTUEVOREVEOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKHRyYWNlX3N5c2NhbGwodGNwKSA8IDApIHsKKwkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKQorCQkJCWRldGFjaCh0Y3AsIDApOworCQkJZWxzZSB7CisJCQkJcHRyYWNlKFBUUkFDRV9LSUxMLAorCQkJCQl0Y3AtPnBpZCwgKGNoYXIgKikgMSwgU0lHVEVSTSk7CisJCQkJZHJvcHRjYih0Y3ApOworCQkJfQorCQkJY29udGludWU7CisJCX0KKwkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfRVhJVElORykgeworI2lmZGVmIFRDQl9HUk9VUF9FWElUSU5HCisJCQlpZiAodGNwLT5mbGFncyAmIFRDQl9HUk9VUF9FWElUSU5HKSB7CisJCQkJaWYgKGhhbmRsZV9ncm91cF9leGl0KHRjcCwgMCkgPCAwKQorCQkJCQlyZXR1cm4gLTE7CisJCQkJY29udGludWU7CisJCQl9CisjZW5kaWYKKwkJCWlmICh0Y3AtPmZsYWdzICYgVENCX0FUVEFDSEVEKQorCQkJCWRldGFjaCh0Y3AsIDApOworCQkJZWxzZSBpZiAocHRyYWNlKFBUUkFDRV9DT05ULCBwaWQsIChjaGFyICopIDEsIDApIDwgMCkgeworCQkJCXBlcnJvcigic3RyYWNlOiBwdHJhY2UoUFRSQUNFX0NPTlQsIC4uLikiKTsKKwkJCQljbGVhbnVwKCk7CisJCQkJcmV0dXJuIC0xOworCQkJfQorCQkJY29udGludWU7CisJCX0KKwkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfU1VTUEVOREVEKSB7CisJCQlpZiAoIXFmbGFnKQorCQkJCWZwcmludGYoc3RkZXJyLCAiUHJvY2VzcyAldSBzdXNwZW5kZWRcbiIsIHBpZCk7CisJCQljb250aW51ZTsKKwkJfQorCXRyYWNpbmc6CisJCWlmIChwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIHBpZCwgKGNoYXIgKikgMSwgMCkgPCAwKSB7CisJCQlwZXJyb3IoInRyYWNlOiBwdHJhY2UoUFRSQUNFX1NZU0NBTEwsIC4uLikiKTsKKwkJCWNsZWFudXAoKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCisKK3N0YXRpYyBpbnQgY3VyY29sOworCisjaWZkZWYgX19TVERDX18KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNkZWZpbmUgVkFfU1RBUlQoYSwgYikgdmFfc3RhcnQoYSwgYikKKyNlbHNlCisjaW5jbHVkZSA8dmFyYXJncy5oPgorI2RlZmluZSBWQV9TVEFSVChhLCBiKSB2YV9zdGFydChhKQorI2VuZGlmCisKK3ZvaWQKKyNpZmRlZiBfX1NURENfXwordHByaW50Zihjb25zdCBjaGFyICpmbXQsIC4uLikKKyNlbHNlCit0cHJpbnRmKGZtdCwgdmFfYWxpc3QpCitjaGFyICpmbXQ7Cit2YV9kY2wKKyNlbmRpZgoreworCXZhX2xpc3QgYXJnczsKKworCVZBX1NUQVJUKGFyZ3MsIGZtdCk7CisJaWYgKG91dGYpIHsKKwkJaW50IG4gPSB2ZnByaW50ZihvdXRmLCBmbXQsIGFyZ3MpOworCQlpZiAobiA8IDAgJiYgb3V0ZiAhPSBzdGRlcnIpCisJCQlwZXJyb3Iob3V0Zm5hbWUgPT0gTlVMTAorCQkJICAgICAgID8gIjx3cml0aW5nIHRvIHBpcGU+IiA6IG91dGZuYW1lKTsKKwkJZWxzZQorCQkJY3VyY29sICs9IG47CisJfQorCXZhX2VuZChhcmdzKTsKKwlyZXR1cm47Cit9CisKK3ZvaWQKK3ByaW50bGVhZGVyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAodGNwX2xhc3QgJiYgKCFvdXRmbmFtZSB8fCBmb2xsb3dmb3JrIDwgMiB8fCB0Y3BfbGFzdCA9PSB0Y3ApKSB7CisJCXRjcF9sYXN0LT5mbGFncyB8PSBUQ0JfUkVQUklOVDsKKwkJdHByaW50ZigiIDx1bmZpbmlzaGVkIC4uLj5cbiIpOworCX0KKwljdXJjb2wgPSAwOworCWlmICgoZm9sbG93Zm9yayA9PSAxIHx8IHBmbGFnX3NlZW4gPiAxKSAmJiBvdXRmbmFtZSkKKwkJdHByaW50ZigiJS01ZCAiLCB0Y3AtPnBpZCk7CisJZWxzZSBpZiAobnByb2NzID4gMSAmJiAhb3V0Zm5hbWUpCisJCXRwcmludGYoIltwaWQgJTV1XSAiLCB0Y3AtPnBpZCk7CisJaWYgKHRmbGFnKSB7CisJCWNoYXIgc3RyW3NpemVvZigiSEg6TU06U1MiKV07CisJCXN0cnVjdCB0aW1ldmFsIHR2LCBkdHY7CisJCXN0YXRpYyBzdHJ1Y3QgdGltZXZhbCBvdHY7CisKKwkJZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CisJCWlmIChyZmxhZykgeworCQkJaWYgKG90di50dl9zZWMgPT0gMCkKKwkJCQlvdHYgPSB0djsKKwkJCXR2X3N1YigmZHR2LCAmdHYsICZvdHYpOworCQkJdHByaW50ZigiJTZsZC4lMDZsZCAiLAorCQkJCShsb25nKSBkdHYudHZfc2VjLCAobG9uZykgZHR2LnR2X3VzZWMpOworCQkJb3R2ID0gdHY7CisJCX0KKwkJZWxzZSBpZiAodGZsYWcgPiAyKSB7CisJCQl0cHJpbnRmKCIlbGQuJTA2bGQgIiwKKwkJCQkobG9uZykgdHYudHZfc2VjLCAobG9uZykgdHYudHZfdXNlYyk7CisJCX0KKwkJZWxzZSB7CisJCQl0aW1lX3QgbG9jYWwgPSB0di50dl9zZWM7CisJCQlzdHJmdGltZShzdHIsIHNpemVvZihzdHIpLCAiJVQiLCBsb2NhbHRpbWUoJmxvY2FsKSk7CisJCQlpZiAodGZsYWcgPiAxKQorCQkJCXRwcmludGYoIiVzLiUwNmxkICIsIHN0ciwgKGxvbmcpIHR2LnR2X3VzZWMpOworCQkJZWxzZQorCQkJCXRwcmludGYoIiVzICIsIHN0cik7CisJCX0KKwl9CisJaWYgKGlmbGFnKQorCQlwcmludGNhbGwodGNwKTsKK30KKwordm9pZAordGFidG8oY29sKQoraW50IGNvbDsKK3sKKwlpZiAoY3VyY29sIDwgY29sKQorCQl0cHJpbnRmKCIlKnMiLCBjb2wgLSBjdXJjb2wsICIiKTsKK30KKwordm9pZAorcHJpbnR0cmFpbGVyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwl0cHJpbnRmKCJcbiIpOworCXRjcF9sYXN0ID0gTlVMTDsKK30KKworI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCisKK2ludCBtcF9pb2N0bCAoaW50IGZkLCBpbnQgY21kLCB2b2lkICphcmcsIGludCBzaXplKSB7CisKKwlzdHJ1Y3QgaW92ZWMgaW92WzJdOworCWludCBuID0gMTsKKworCWlvdlswXS5pb3ZfYmFzZSA9ICZjbWQ7CisJaW92WzBdLmlvdl9sZW4gPSBzaXplb2YgY21kOworCWlmIChhcmcpIHsKKwkJKytuOworCQlpb3ZbMV0uaW92X2Jhc2UgPSBhcmc7CisJCWlvdlsxXS5pb3ZfbGVuID0gc2l6ZTsKKwl9CisKKwlyZXR1cm4gd3JpdGV2IChmZCwgaW92LCBuKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9zdHJhY2Uuc3BlYyBiL3N0cmFjZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NjZhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2Uuc3BlYwpAQCAtMCwwICsxLDM1NiBAQAorU3VtbWFyeTogVHJhY2tzIGFuZCBkaXNwbGF5cyBzeXN0ZW0gY2FsbHMgYXNzb2NpYXRlZCB3aXRoIGEgcnVubmluZyBwcm9jZXNzLgorTmFtZTogc3RyYWNlCitWZXJzaW9uOiA0LjUuMTIKK1JlbGVhc2U6IDEKK0xpY2Vuc2U6IEJTRAorR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycworVVJMOiBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3N0cmFjZS8KK1NvdXJjZTA6IGh0dHA6Ly9kbC5zb3VyY2Vmb3JnZS5uZXQvc3RyYWNlLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuYnoyCitCdWlsZFJvb3Q6ICV7X3RtcHBhdGh9LyV7bmFtZX0tcm9vdAorCislZGVmaW5lIHN0cmFjZTY0X2FyY2hlcyBwcGM2NAorCislZGVzY3JpcHRpb24KK1RoZSBzdHJhY2UgcHJvZ3JhbSBpbnRlcmNlcHRzIGFuZCByZWNvcmRzIHRoZSBzeXN0ZW0gY2FsbHMgY2FsbGVkIGFuZAorcmVjZWl2ZWQgYnkgYSBydW5uaW5nIHByb2Nlc3MuICBTdHJhY2UgY2FuIHByaW50IGEgcmVjb3JkIG9mIGVhY2gKK3N5c3RlbSBjYWxsLCBpdHMgYXJndW1lbnRzIGFuZCBpdHMgcmV0dXJuIHZhbHVlLiAgU3RyYWNlIGlzIHVzZWZ1bCBmb3IKK2RpYWdub3NpbmcgcHJvYmxlbXMgYW5kIGRlYnVnZ2luZywgYXMgd2VsbCBhcyBmb3IgaW5zdHJ1Y3Rpb25hbAorcHVycG9zZXMuCisKK0luc3RhbGwgc3RyYWNlIGlmIHlvdSBuZWVkIGEgdG9vbCB0byB0cmFjayB0aGUgc3lzdGVtIGNhbGxzIG1hZGUgYW5kCityZWNlaXZlZCBieSBhIHByb2Nlc3MuCisKKyVpZmFyY2ggJXtzdHJhY2U2NF9hcmNoZXN9CislcGFja2FnZSAtbiBzdHJhY2U2NAorU3VtbWFyeTogVHJhY2tzIGFuZCBkaXNwbGF5cyBzeXN0ZW0gY2FsbHMgYXNzb2NpYXRlZCB3aXRoIGEgcnVubmluZyBwcm9jZXNzLgorR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycworCislZGVzY3JpcHRpb24gLW4gc3RyYWNlNjQKK1RoZSBzdHJhY2UgcHJvZ3JhbSBpbnRlcmNlcHRzIGFuZCByZWNvcmRzIHRoZSBzeXN0ZW0gY2FsbHMgY2FsbGVkIGFuZAorcmVjZWl2ZWQgYnkgYSBydW5uaW5nIHByb2Nlc3MuICBTdHJhY2UgY2FuIHByaW50IGEgcmVjb3JkIG9mIGVhY2gKK3N5c3RlbSBjYWxsLCBpdHMgYXJndW1lbnRzIGFuZCBpdHMgcmV0dXJuIHZhbHVlLiAgU3RyYWNlIGlzIHVzZWZ1bCBmb3IKK2RpYWdub3NpbmcgcHJvYmxlbXMgYW5kIGRlYnVnZ2luZywgYXMgd2VsbCBhcyBmb3IgaW5zdHJ1Y3Rpb25hbAorcHVycG9zZXMuCisKK0luc3RhbGwgc3RyYWNlIGlmIHlvdSBuZWVkIGEgdG9vbCB0byB0cmFjayB0aGUgc3lzdGVtIGNhbGxzIG1hZGUgYW5kCityZWNlaXZlZCBieSBhIHByb2Nlc3MuCisKK1RoaXMgcGFja2FnZSBwcm92aWRlcyB0aGUgYHN0cmFjZTY0JyBwcm9ncmFtIHRvIHRyYWNlIDY0LWJpdCBwcm9jZXNzZXMuCitUaGUgYHN0cmFjZScgcHJvZ3JhbSBpbiB0aGUgYHN0cmFjZScgcGFja2FnZSBpcyBmb3IgMzItYml0IHByb2Nlc3Nlcy4KKyVlbmRpZgorCislcHJlcAorJXNldHVwIC1xCisKKyVidWlsZAorJWNvbmZpZ3VyZQorbWFrZQorCislaW5zdGFsbAorcm0gLXJmICV7YnVpbGRyb290fQorbWtkaXIgLXAgJXtidWlsZHJvb3R9JXtfbWFuZGlyfS9tYW4xCitta2RpciAtcCAle2J1aWxkcm9vdH0le19iaW5kaXJ9CislbWFrZWluc3RhbGwgbWFuMWRpcj0le2J1aWxkcm9vdH0le19tYW5kaXJ9L21hbjEKKworIyByZW1vdmUgdW5wYWNrYWdlZCBmaWxlcyBmcm9tIHRoZSBidWlsZHJvb3QKK3JtIC1mICV7YnVpbGRyb290fSV7X2JpbmRpcn0vc3RyYWNlLWdyYXBoCisKKyVpZmFyY2ggJXtzdHJhY2U2NF9hcmNoZXN9CitsbiAle2J1aWxkcm9vdH0le19iaW5kaXJ9L3N0cmFjZSAle2J1aWxkcm9vdH0le19iaW5kaXJ9L3N0cmFjZTY0CislZW5kaWYKKworJWNsZWFuCitybSAtcmYgJXtidWlsZHJvb3R9CisKKyVmaWxlcworJWRlZmF0dHIoLSxyb290LHJvb3QpCisle19iaW5kaXJ9L3N0cmFjZQorJXtfbWFuZGlyfS9tYW4xLyoKKworJWlmYXJjaCAle3N0cmFjZTY0X2FyY2hlc30KKyVmaWxlcyAtbiBzdHJhY2U2NAorJWRlZmF0dHIoLSxyb290LHJvb3QpCisle19iaW5kaXJ9L3N0cmFjZTY0CislZW5kaWYKKworCislY2hhbmdlbG9nCisqIFdlZCBKdW4gIDggMjAwNSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjEyLTEKKy0gRml4IGtub3duIHN5c2NhbGwgcmVjb2duaXRpb24gZm9yIElBMzIgcHJvY2Vzc2VzIG9uIHg4Ni02NCAoIzE1ODkzNCkuCistIEZpeCBiYWQgb3V0cHV0IGZvciBwdHJhY2Ugb24geDg2LTY0ICgjMTU5Nzg3KS4KKy0gRml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcnJ1bnMgKCMxNTE1NzAsICMxNTkxOTYpLgorLSBNYWtlIHNvbWUgZGlhZ25vc3RpY3MgbW9yZSBjb25zaXN0ZW50ICgjMTU5MzA4KS4KKy0gVXBkYXRlIFBvd2VyUEMgc3lzdGVtIGNhbGxzLgorLSBCZXR0ZXIgcHJpbnRpbmcgZm9yIExpbnV4IGFpbyBzeXN0ZW0gY2FsbHMuCistIERvbid0IHRydW5jYXRlIHN0YXRmczY0IGZpZWxkcyB0byAzMiBiaXRzIGluIG91dHB1dCAoIzE1ODI0MykuCistIENvc21ldGljIGNvZGUgY2xlYW51cHMgKCMxNTk2ODgpLgorCisqIFR1ZSBNYXIgMjIgMjAwNSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjExLTEKKy0gQnVpbGQgdHdlYWtzLgorLSBOb3RlIDQuNS4xMCBzZWxlY3QgZml4ICgjMTUxNTcwKS4KKworKiBNb24gTWFyIDE0IDIwMDUgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiAtIDQuNS4xMC0xCistIEZpeCBzZWxlY3QgaGFuZGxpbmcgb24gbm9uc3RhbmRhcmQgZmRfc2V0IHNpemVzLgorLSBEb24ndCBwcmludCBlcnJvcnMgZm9yIG51bGwgZmlsZSBuYW1lIHBvaW50ZXJzLgorLSBGaXggaW5pdGlhbCBleGVjdmUgb3V0cHV0IHdpdGggLWkgKCMxNDMzNjUpLgorCisqIEZyaSBGZWIgIDQgMjAwNSBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjktMgorLSB1cGRhdGUgaWE2NCBzeXNjYWxsIGxpc3QgKCMxNDYyNDUpCistIGZpeCB4ODZfNjQgc3lzY2FsbCBhcmd1bWVudCBleHRyYWN0aW9uIGZvciAzMi1iaXQgcHJvY2Vzc2VzICgjMTQ2MDkzKQorLSBmaXggLWUgc2lnbmFsPU5BTUUgcGFyc2luZyAoIzE0MzM2MikKKy0gZml4IHg4Nl82NCBleGl0X2dyb3VwIHN5c2NhbGwgaGFuZGxpbmcKKy0gaW1wcm92ZSBzb2NrZXQgaW9jdGwgcHJpbnRpbmcgKCMxMzgyMjMpCistIGNvZGUgY2xlYW51cHMgKCMxNDMzNjksICMxNDMzNzApCistIGltcHJvdmUgbW91bnQgZmxhZ3MgcHJpbnRpbmcgKCMxNDE5MzIpCistIHN1cHBvcnQgc3ltYm9saWMgcHJpbnRpbmcgb2YgeDg2XzY0IGFyY2hfcHJjdGwgcGFyYW1ldGVycyAoIzE0MjY2NykKKy0gZml4IHBvdGVudGlhbCBjcmFzaCBpbiBnZXR4YXR0ciBwcmludGluZworCisqIFR1ZSBPY3QgMTkgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjgtMQorLSBmaXggbXVsdGl0aHJlYWRlZCBleGl0IGhhbmRsaW5nICgjMTMyMTUwLCAjMTM1MjU0KQorLSBmaXggaW9jdGwgbmFtZSBtYXRjaGluZyAoIzEyOTgwOCkKKy0gcHJpbnQgUlRDXyogaW9jdGwgc3RydWN0dXJlIGNvbnRlbnRzICgjNTg2MDYpCistIGdyb2sgZXBvbGxfKiBzeXNjYWxscyAoIzEzNDQ2MykKKy0gZ3JvayBuZXcgUkxJTUlUXyogdmFsdWVzICgjMTMzNTk0KQorLSBwcmludCBzdHJ1Y3QgY21zZ2hkciBjb250ZW50cyBmb3Igc2VuZG1zZyAoIzEzMTY4OSkKKy0gZml4IGNsb2NrXyogYW5kIHRpbWVyXyogYXJndW1lbnQgb3V0cHV0ICgjMTMxNDIwKQorCisqIFR1ZSBBdWcgMzEgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IC0gNC41LjctMgorLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbWlzYyBmaXhlcyBhbmQgdXBkYXRlcyAoIzEyODA5MSwgIzEyOTE2NiwgIzEyODM5MSwgIzEyOTM3OCwgIzEzMDk2NSwgIzEzMTE3NykKKworKiBNb24gSnVsIDEyIDIwMDQgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUuNi0xCistIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCB1cGRhdGVzIGlvY3RsIGxpc3RzICgjMTI3Mzk4KSwgZml4ZXMgcXVvdGFjdGwgKCMxMjczOTMpLCBtb3JlIGlvY3RsIGRlY29kaW5nICgjMTI2OTE3KQorCisqIFN1biBKdW4gMjcgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS41LTEKKy0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIGZpeGVzIHg4Ni02NCBiaWFyY2ggc3VwcG9ydCAoIzEyNjU0NykKKworKiBUdWUgSnVuIDE1IDIwMDQgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiA0LjUuNC0yCistIHJlYnVpbHQKKworKiBUaHUgSnVuICAzIDIwMDQgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUuNC0wLkZDMQorLSByZWJ1aWx0IGZvciBGQzEgdXBkYXRlCisKKyogVGh1IEp1biAgMyAyMDA0IFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC41LjQtMQorLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbW9yZSBpb2N0bHMgKCMxMjIyNTcpLCBtaW5vciBmaXhlcworCisqIEZyaSBBcHIgMTYgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS4zLTEKKy0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIG1xXyogY2FsbHMgKCMxMjA3MDEpLCAtcCB2cyBOUFRMICgjMTIwNDYyKSwgbW9yZSBmaXhlcyAoIzExODY5NCwgIzEyMDU0MSwgIzExODY4NSkKKworKiBUdWUgTWFyIDAyIDIwMDQgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiA0LjUuMi0xLjEKKy0gcmVidWlsdAorCisqIE1vbiBNYXIgIDEgMjAwNCBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS4yLTEKKy0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIHNjaGVkXyogY2FsbHMgKCMxMTY5OTApLCBzaG93IGNvcmUgZmxhZyAoIzExMjExNykKKworKiBGcmkgRmViIDEzIDIwMDQgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPgorLSByZWJ1aWx0CisKKyogVGh1IE5vdiAxMyAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC41LjEtMQorLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbW9yZSBmaXhlcyAoIzEwODAxMiwgIzEwNTM2NiwgIzEwNTM1OSwgIzEwNTM1OCkKKworKiBUdWUgU2VwIDMwIDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUtMworLSByZXZlcnQgYm9ndXMgczM5MCBmaXgKKworKiBUaHUgU2VwIDI1IDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjUtMS4yLjFBUworLSByZWJ1aWx0IGZvciAyLjFBUyBlcnJhdHVtCisKKyogV2VkIFNlcCAyNCAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC41LTIKKy0gcmVidWlsdAorCisqIFdlZCBTZXAgMjQgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNS0xCistIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCBtb3JlIGZpeGVzICgjMTAxNDk5LCAjMTA0MzY1KQorCisqIFRodSBKdWwgMTcgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNC45OS0yCistIHJlYnVpbHQKKworKiBUaHUgSnVsIDE3IDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTktMQorLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgZ3Jva3MgbW9yZSBuZXcgc3lzdGVtIGNhbGxzLCBQRl9JTkVUNiBzb2NrZXRzCisKKyogTW9uIEp1biAxMCAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC40Ljk4LTEKKy0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIG1vcmUgZml4ZXMgKCM5MDc1NCwgIzkxMDg1KQorCisqIFdlZCBKdW4gMDQgMjAwMyBFbGxpb3QgTGVlIDxzb3B3aXRoQHJlZGhhdC5jb20+CistIHJlYnVpbHQKKworKiBTdW4gTWFyIDMwIDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTYtMQorLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgaGFuZGxlcyB5ZXQgbW9yZSAyLjUgc3lzY2FsbHMsIHg4Nl82NCAmIGlhNjQgZml4ZXMKKworKiBNb24gRmViIDI0IDIwMDMgRWxsaW90IExlZSA8c29wd2l0aEByZWRoYXQuY29tPiA0LjQuOTUtMgorLSByZWJ1aWx0CisKKyogTW9uIEZlYiAyNCAyMDAzIFJvbGFuZCBNY0dyYXRoIDxyb2xhbmRAcmVkaGF0LmNvbT4gNC40Ljk1LTEKKy0gbmV3IHVwc3RyZWFtIHZlcnNpb24sIGZpeGVkIGdldHJlc3VpZC9nZXRyZXNnaWQgKCM4NDk1OSkKKworKiBXZWQgRmViIDE5IDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTQtMQorLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgbmV3IG9wdGlvbiAtRSB0byBzZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzICgjODIzOTIpCisKKyogV2VkIEphbiAyMiAyMDAzIFRpbSBQb3dlcnMgPHRpbXBAcmVkaGF0LmNvbT4gNC40LjkzLTIKKy0gcmVidWlsdAorCisqIFR1ZSBKYW4gMjEgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNC45My0xCistIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCBmaXhlcyBwcGMgYW5kIHMzOTAgYnVncywgYWRkcyBtaXNzaW5nIHB0cmFjZSByZXF1ZXN0cworCisqIEZyaSBKYW4gMTAgMjAwMyBSb2xhbmQgTWNHcmF0aCA8cm9sYW5kQHJlZGhhdC5jb20+IDQuNC45MS0xCistIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLCBmaXhlcyAtZiBvbiB4ODYtNjQKKworKiBGcmkgSmFuIDEwIDIwMDMgUm9sYW5kIE1jR3JhdGggPHJvbGFuZEByZWRoYXQuY29tPiA0LjQuOTAtMQorLSBuZXcgdXBzdHJlYW0gdmVyc2lvbiwgZml4ZXMgYWxsIGtub3duIGJ1Z3MgbW9kdWxvIGlhNjQgYW5kIHMzOTAgaXNzdWVzCisKKyogRnJpIEphbiAwMyAyMDAzIEZsb3JpYW4gTGEgUm9jaGUgPEZsb3JpYW4uTGFSb2NoZUByZWRoYXQuZGU+IDQuNC0xMQorLSBhZGQgZnVydGhlciBzMzkwIHBhdGNoIGZyb20gSUJNCisKKyogV2VkIE5vdiAyNyAyMDAyIFRpbSBQb3dlcnMgPHRpbXBAcmVkaGF0LmNvbT4gNC40LTEwCistIHJlbW92ZSB1bnBhY2thZ2VkIGZpbGVzIGZyb20gdGhlIGJ1aWxkcm9vdAorCisqIE1vbiBPY3QgMDcgMjAwMiBQaGlsIEtuaXJzY2ggPHBrbmlyc2NoQHJlZGhhdC5jb20+IDQuNC05LjEKKy0gQWRkZWQgbGF0ZXN0IHMzOTAoeCkgcGF0Y2guCisKKyogRnJpIFNlcCAwNiAyMDAyIEthcnN0ZW4gSG9wcCA8a2Fyc3RlbkByZWRoYXQuZGU+IDQuNC05CistIHByZWxpbWluYXJ5IHg4Nl82NCBzdXBwb3J0IHdpdGggYW4gdWdseSBwYXRjaCB0byBoZWxwCisgIGRlYnVnZ2luZy4gTmVlZHMgY2xlYW51cCEKKworKiBNb24gU2VwICAyIDIwMDIgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LTgKKy0gbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY2xvbmUgZml4aW5nIHBhdGNoIChSb2xhbmQgTWNHcmF0aCkKKy0gYWlvIHN5c2NhbGxzIGZvciBpMzg2L2lhNjQvcHBjIChCZW4gTGFIYWlzZSkKKworKiBXZWQgQXVnIDI4IDIwMDIgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LTcKKy0gZml4IHN0cmFjZSAtZiAoUm9sYW5kIE1jR3JhdGgsICM2ODk5NCkKKy0gaGFuZGxlID9ldF90aHJlYWRfYXJlYSwgU0FfUkVTVE9SRVIgKFVscmljaCBEcmVwcGVyKQorCisqIEZyaSBKdW4gMjEgMjAwMiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQtNgorLSBoYW5kbGUgZnV0ZXhlcywgKnhhdHRyLCBzZW5kZmlsZTY0LCBldGMuIChVbHJpY2ggRHJlcHBlcikKKy0gaGFuZGxlIG1vZGlmeV9sZHQgKCM2Njg5NCkKKworKiBUaHUgTWF5IDIzIDIwMDIgVGltIFBvd2VycyA8dGltcEByZWRoYXQuY29tPgorLSBhdXRvbWF0ZWQgcmVidWlsZAorCisqIFR1ZSBBcHIgMTYgMjAwMiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQtNAorLSBmaXggZm9yIHRoZSBsYXN0IHBhdGNoIGJ5IEplZmYgTGF3ICgjNjI1OTEpCisKKyogTW9uIE1hciAgNCAyMDAyIFByZXN0b24gQnJvd24gPHBicm93bkByZWRoYXQuY29tPiA0LjQtMworLSBpbnRlZ3JhdGUgcGF0Y2ggZnJvbSBKZWZmIExhdyB0byBlbGltaW5hdGUgaGFuZyB0cmFjaW5nIHRocmVhZHMKKworKiBTYXQgRmViIDIzIDIwMDIgRmxvcmlhbiBMYSBSb2NoZSA8Rmxvcmlhbi5MYVJvY2hlQHJlZGhhdC5kZT4KKy0gbWlub3IgdXBkYXRlIGZyb20gZGViaWFuIHRhci1iYWxsCisKKyogV2VkIEphbiAwMiAyMDAyIEZsb3JpYW4gTGEgUm9jaGUgPEZsb3JpYW4uTGFSb2NoZUByZWRoYXQuZGU+CistIHVwZGF0ZSB0byA0LjQKKworKiBTdW4gSnVsIDIyIDIwMDEgRmxvcmlhbiBMYSBSb2NoZSA8Rmxvcmlhbi5MYVJvY2hlQHJlZGhhdC5kZT4KKy0gZGlzYWJsZSBzMzkwIHBhdGNoZXMsIHRoZXkgYXJlIGFscmVhZHkgaW5jbHVkZWQKKworKiBXZWQgSnVsIDE4IDIwMDEgUHJlc3RvbiBCcm93biA8cGJyb3duQHJlZGhhdC5jb20+IDQuMy0xCistIG5ldyB1cHN0cmVhbSB2ZXJzaW9uLiAgU2VlbXMgdG8gaGF2ZSBpbnRlZ3JhdGVkIG1vc3QgbmV3IHN5c2NhbGxzCistIHRyYWNpbmcgdGhyZWFkZWQgcHJvZ3JhbXMgaXMgbm93IGZ1bmN0aW9uYWwuCisKKyogTW9uIEp1biAxMSAyMDAxIFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+CistIHBvcnQgczM5MCBwYXRjaGVzIGZyb20gSUJNCisKKyogV2VkIE1heSAxNiAyMDAxIE5hbGluIERhaHlhYmhhaSA8bmFsaW5AcmVkaGF0LmNvbT4KKy0gbW9kaWZ5IG5ldyBzeXNjYWxsIHBhdGNoIHRvIGFsbG9jYXRlIGVub3VnaCBoZWFwIHNwYWNlIGluIHNldGdyb3VwczMyKCkKKworKiBXZWQgRmViIDE0IDIwMDEgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KKy0gI2luY2x1ZGUgPHRpbWUuaD4gaW4gYWRkaXRpb24gdG8gPHN5cy90aW1lLmg+CisKKyogRnJpIEphbiAyNiAyMDAxIEthcnN0ZW4gSG9wcCA8a2Fyc3RlbkByZWRoYXQuY29tPgorLSBjbGVhbiB1cCBjb25mbGljdGluZyBwYXRjaGVzLiBUaGlzIGhhcHBlbmVkIG9ubHkKKyAgd2hlbiBidWlsZGluZyBvbiBTMzkwCisKKyogRnJpIEphbiAxOSAyMDAxIEJpbGwgTm90dGluZ2hhbSA8bm90dGluZ0ByZWRoYXQuY29tPgorLSB1cGRhdGUgdG8gQ1ZTLCByZWludGVncmF0ZSBpYTY0IHN1cHBvcnQKKworKiBTYXQgRGVjICA4IDIwMDAgQmVybmhhcmQgUm9zZW5rcmFlbnplciA8YmVyb0ByZWRoYXQuY29tPgorLSBHZXQgUy8zOTAgc3VwcG9ydCBpbnRvIHRoZSBub3JtYWwgcGFja2FnZQorCisqIFNhdCBOb3YgMTggMjAwMCBGbG9yaWFuIExhIFJvY2hlIDxGbG9yaWFuLkxhUm9jaGVAcmVkaGF0LmRlPgorLSBhZGRlZCBTLzM5MCBwYXRjaCBmcm9tIElCTSwgYWRhcHRpbmcgaXQgdG8gbm90IGNvbmZsaWN0IHdpdGgKKyAgSUE2NCBwYXRjaAorCisqIFNhdCBBdWcgMTkgMjAwMCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgorLSBkb2gsIGFjdHVhbGx5IGFwcGx5IHRoZSAyLjQgc3lzY2FsbHMgcGF0Y2gKKy0gbWFrZSBpdCBjb21waWxlIHdpdGggMi40LjAtdGVzdDctcHJlNCsgaGVhZGVycywgYWRkCisgIGdldGRlbnRzNjQgYW5kIGZjbnRsNjQKKworKiBUaHUgQXVnICAzIDIwMDAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KKy0gYWRkIGEgYnVuY2ggb2YgbmV3IDIuNCBzeXNjYWxscyAoIzE0MDM2KQorCisqIFdlZCBKdWwgMTIgMjAwMCBQcm9zcGVjdG9yIDxidWd6aWxsYUByZWRoYXQuY29tPgorLSBhdXRvbWF0aWMgcmVidWlsZAorLSBleGNsdWRlYXJjaCBpYTY0CisKKyogRnJpIEp1biAgMiAyMDAwIE1hdHQgV2lsc29uIDxtc3dAcmVkaGF0LmNvbT4KKy0gdXNlIGJ1aWxkaW5zdGFsbCBmb3IgRkhTCisKKyogV2VkIE1heSAyNCAyMDAwIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+CistIG1ha2UgdGhpbmdzIGNvbXBpbGUgb24gc3BhcmMKKy0gZml4IHNpZ3JldHVybiBvbiBzcGFyYworCisqIEZyaSBNYXIgMzEgMjAwMCBCaWxsIE5vdHRpbmdoYW0gPG5vdHRpbmdAcmVkaGF0LmNvbT4KKy0gZml4IHN0YXQ2NCBtaXNkZWYgKCMxMDQ4NSkKKworKiBUdWUgTWFyIDIxIDIwMDAgTWljaGFlbCBLLiBKb2huc29uIDxqb2huc29ubUByZWRoYXQuY29tPgorLSBhZGRlZCBpYTY0IHBhdGNoCisKKyogVGh1IEZlYiAwMyAyMDAwIENyaXN0aWFuIEdhZnRvbiA8Z2FmdG9uQHJlZGhhdC5jb20+CistIG1hbiBwYWdlcyBhcmUgY29tcHJlc3NlZAorLSB2ZXJzaW9uIDQuMiAod2h5IGFyZSB3ZSBrZWVwaW5nIGFsbCB0aGVzZSBwYXRjaGVzIGFyb3VuZD8pCisKKyogU2F0IE5vdiAyNyAxOTk5IEplZmYgSm9obnNvbiA8amJqQHJlZGhhdC5jb20+CistIHVwZGF0ZSB0byA0LjEgKHdpdGggc3BhcmMgc29ja2V0Y2FsbCBwYXRjaCkuCisKKyogRnJpIE5vdiAxMiAxOTk5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+CistIGZpeCBzb2NrZXRjYWxsIG9uIHNwYXJjLgorCisqIFRodSBTZXAgMDIgMTk5OSBDcmlzdGlhbiBHYWZ0b24gPGdhZnRvbkByZWRoYXQuY29tPgorLSBmaXggS0VSTl9TRUNVUkVMVkwgY29tcGlsZSBwcm9ibGVtCisKKyogVHVlIEF1ZyAzMSAxOTk5IENyaXN0aWFuIEdhZnRvbiA8Z2FmdG9uQHJlZGhhdC5jb20+CistIGFkZGVkIGFscGhhIHBhdGNoIGZyb20gSEpMdSB0byBmaXggdGhlIG9zZl9zaWdwcm9jbWFzayBpbnRlcnByZXRhdGlvbgorCisqIFNhdCBKdW4gMTIgMTk5OSBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgorLSB1cGRhdGUgdG8gMy45OS4xLgorCisqIFdlZCBKdW4gIDIgMTk5OSBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgorLSBhZGQgKHRoZSBvdGhlciA6LSkgamoncyBzcGFyYyBwYXRjaC4KKworKiBXZWQgTWF5IDI2IDE5OTkgSmVmZiBKb2huc29uIDxqYmpAcmVkaGF0LmNvbT4KKy0gdXBncmFkZSB0byAzLjk5IGluIG9yZGVyIHRvCistICAgIGFkZCBuZXcgMi4yLnggb3BlbiBmbGFncyAoIzI5NTUpLgorLSAgICBhZGQgbmV3IDIuMi54IHN5c2NhbGxzICgjMjg2NikuCistIHN0cmFjZSAzLjEgcGF0Y2hlcyBjYXJyaWVkIGFsb25nIGZvciBub3cuCisKKyogU3VuIE1heSAxNiAxOTk5IEplZmYgSm9obnNvbiA8amJqQHJlZGhhdC5jb20+CistIGRvbid0IHJlbHkgb24gKGJyb2tlbiEpIHJwbSAlcGF0Y2ggKCMyNzM1KQorCisqIFR1ZSBBcHIgMDYgMTk5OSBQcmVzdG9uIEJyb3duIDxwYnJvd25AcmVkaGF0LmNvbT4KKy0gc3RyaXAgYmluYXJ5CisKKyogU3VuIE1hciAyMSAxOTk5IENyaXN0aWFuIEdhZnRvbiA8Z2FmdG9uQHJlZGhhdC5jb20+CistIGF1dG8gcmVidWlsZCBpbiB0aGUgbmV3IGJ1aWxkIGVudmlyb25tZW50IChyZWxlYXNlIDE2KQorCisqIFR1ZSBGZWIgIDkgMTk5OSBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgorLSB2Zm9yayBlc3QgYXJyaXZlIQorCisqIFR1ZSBGZWIgIDkgMTk5OSBDaHJpc3RvcGhlciBCbGl6emFyZCA8YmxpenphcmRAcmVkaGF0LmNvbT4KKy0gQWRkIHBhdGNoIHRvIGZvbGxvdyBjbG9uZSgpIHN5c2NhbGxzLCB0b28uCisKKyogU3VuIEphbiAxNyAxOTk5IEplZmYgSm9obnNvbiA8amJqQHJlZGhhdC5jb20+CistIHBhdGNoIHRvIGJ1aWxkIGFscGhhL3NwYXJjIHdpdGggZ2xpYmMgMi4xLgorCisqIFRodSBEZWMgMDMgMTk5OCBDcmlzdGlhbiBHYWZ0b24gPGdhZnRvbkByZWRoYXQuY29tPgorLSBwYXRjaCB0byBidWlsZCBvbiBBUk0KKworKiBXZWQgU2VwIDMwIDE5OTggSmVmZiBKb2huc29uIDxqYmpAcmVkaGF0LmNvbT4KKy0gZml4IHR5cG8gKHByaW50Ziwgbm90IHRwcmludGYpLgorCisqIFNhdCBTZXAgMTkgMTk5OCBKZWZmIEpvaG5zb24gPGpiakByZWRoYXQuY29tPgorLSBmaXggY29tcGlsZSBwcm9ibGVtIG9uIHNwYXJjLgorCisqIFR1ZSBBdWcgMTggMTk5OCBDcmlzdGlhbiBHYWZ0b24gPGdhZnRvbkByZWRoYXQuY29tPgorLSBidWlsZHJvb3QKKworKiBNb24gSnVsIDIwIDE5OTggQ3Jpc3RpYW4gR2FmdG9uIDxnYWZ0b25AcmVkaGF0LmNvbT4KKy0gYWRkZWQgdGhlIHVtb3ZlbiBwYXRjaCBmcm9tIEphbWVzIFlvdW5nbWFuIDxqYXlAZ251Lm9yZz4KKy0gZml4ZWQgYnVpbGQgcHJvYmxlbXMgb24gbmV3ZXIgZ2xpYmMgcmVsZWFzZXMKKworKiBNb24gSnVuIDA4IDE5OTggUHJvc3BlY3RvciBTeXN0ZW0gPGJ1Z3NAcmVkaGF0LmNvbT4KKy0gdHJhbnNsYXRpb25zIG1vZGlmaWVkIGZvciBkZSwgZnIsIHRyCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvYWxwaGEvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9hbHBoYS9lcnJub2VudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmZmFmZjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvYWxwaGEvZXJybm9lbnQuaApAQCAtMCwwICsxLDUxNiBAQAorCSJFUlJOT18wIiwgLyogMCAqLworCSJFUEVSTSIsIC8qIDEgKi8KKwkiRU5PRU5UIiwgLyogMiAqLworCSJFU1JDSCIsIC8qIDMgKi8KKwkiRUlOVFIiLCAvKiA0ICovCisJIkVJTyIsIC8qIDUgKi8KKwkiRU5YSU8iLCAvKiA2ICovCisJIkUyQklHIiwgLyogNyAqLworCSJFTk9FWEVDIiwgLyogOCAqLworCSJFQkFERiIsIC8qIDkgKi8KKwkiRUNISUxEIiwgLyogMTAgKi8KKwkiRURFQURMSyIsIC8qIDExICovCisJIkVOT01FTSIsIC8qIDEyICovCisJIkVBQ0NFUyIsIC8qIDEzICovCisJIkVGQVVMVCIsIC8qIDE0ICovCisJIkVOT1RCTEsiLCAvKiAxNSAqLworCSJFQlVTWSIsIC8qIDE2ICovCisJIkVFWElTVCIsIC8qIDE3ICovCisJIkVYREVWIiwgLyogMTggKi8KKwkiRU5PREVWIiwgLyogMTkgKi8KKwkiRU5PVERJUiIsIC8qIDIwICovCisJIkVJU0RJUiIsIC8qIDIxICovCisJIkVJTlZBTCIsIC8qIDIyICovCisJIkVORklMRSIsIC8qIDIzICovCisJIkVNRklMRSIsIC8qIDI0ICovCisJIkVOT1RUWSIsIC8qIDI1ICovCisJIkVUWFRCU1kiLCAvKiAyNiAqLworCSJFRkJJRyIsIC8qIDI3ICovCisJIkVOT1NQQyIsIC8qIDI4ICovCisJIkVTUElQRSIsIC8qIDI5ICovCisJIkVST0ZTIiwgLyogMzAgKi8KKwkiRU1MSU5LIiwgLyogMzEgKi8KKwkiRVBJUEUiLCAvKiAzMiAqLworCSJFRE9NIiwgLyogMzMgKi8KKwkiRVJBTkdFIiwgLyogMzQgKi8KKwkiRUFHQUlOIiwgLyogMzUgKi8KKwkiRUlOUFJPR1JFU1MiLCAvKiAzNiAqLworCSJFQUxSRUFEWSIsIC8qIDM3ICovCisJIkVOT1RTT0NLIiwgLyogMzggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogMzkgKi8KKwkiRU1TR1NJWkUiLCAvKiA0MCAqLworCSJFUFJPVE9UWVBFIiwgLyogNDEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA0MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA0MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA0NCAqLworCSJFT1BOT1RTVVBQIiwgLyogNDUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogNDYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogNDcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDQ4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA0OSAqLworCSJFTkVURE9XTiIsIC8qIDUwICovCisJIkVORVRVTlJFQUNIIiwgLyogNTEgKi8KKwkiRU5FVFJFU0VUIiwgLyogNTIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogNTMgKi8KKwkiRUNPTk5SRVNFVCIsIC8qIDU0ICovCisJIkVOT0JVRlMiLCAvKiA1NSAqLworCSJFSVNDT05OIiwgLyogNTYgKi8KKwkiRU5PVENPTk4iLCAvKiA1NyAqLworCSJFU0hVVERPV04iLCAvKiA1OCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiA1OSAqLworCSJFVElNRURPVVQiLCAvKiA2MCAqLworCSJFQ09OTlJFRlVTRUQiLCAvKiA2MSAqLworCSJFTE9PUCIsIC8qIDYyICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDYzICovCisJIkVIT1NURE9XTiIsIC8qIDY0ICovCisJIkVIT1NUVU5SRUFDSCIsIC8qIDY1ICovCisJIkVOT1RFTVBUWSIsIC8qIDY2ICovCisJIkVSUk5PXzY3IiwgLyogNjcgKi8KKwkiRVVTRVJTIiwgLyogNjggKi8KKwkiRURRVU9UIiwgLyogNjkgKi8KKwkiRVNUQUxFIiwgLyogNzAgKi8KKwkiRVJFTU9URSIsIC8qIDcxICovCisJIkVSUk5PXzcyIiwgLyogNzIgKi8KKwkiRVJSTk9fNzMiLCAvKiA3MyAqLworCSJFUlJOT183NCIsIC8qIDc0ICovCisJIkVSUk5PXzc1IiwgLyogNzUgKi8KKwkiRVJSTk9fNzYiLCAvKiA3NiAqLworCSJFTk9MQ0siLCAvKiA3NyAqLworCSJFTk9TWVMiLCAvKiA3OCAqLworCSJFUlJOT183OSIsIC8qIDc5ICovCisJIkVOT01TRyIsIC8qIDgwICovCisJIkVJRFJNIiwgLyogODEgKi8KKwkiRU5PU1IiLCAvKiA4MiAqLworCSJFVElNRSIsIC8qIDgzICovCisJIkVCQURNU0ciLCAvKiA4NCAqLworCSJFUFJPVE8iLCAvKiA4NSAqLworCSJFTk9EQVRBIiwgLyogODYgKi8KKwkiRU5PU1RSIiwgLyogODcgKi8KKwkiRUNIUk5HIiwgLyogODggKi8KKwkiRUwyTlNZTkMiLCAvKiA4OSAqLworCSJFTDNITFQiLCAvKiA5MCAqLworCSJFTDNSU1QiLCAvKiA5MSAqLworCSJFTk9QS0ciLCAvKiA5MiAqLworCSJFTE5STkciLCAvKiA5MyAqLworCSJFVU5BVENIIiwgLyogOTQgKi8KKwkiRU5PQ1NJIiwgLyogOTUgKi8KKwkiRUwySExUIiwgLyogOTYgKi8KKwkiRUJBREUiLCAvKiA5NyAqLworCSJFQkFEUiIsIC8qIDk4ICovCisJIkVYRlVMTCIsIC8qIDk5ICovCisJIkVOT0FOTyIsIC8qIDEwMCAqLworCSJFQkFEUlFDIiwgLyogMTAxICovCisJIkVCQURTTFQiLCAvKiAxMDIgKi8KKwkiRURFQURMT0NLIiwgLyogMTAzICovCisJIkVCRk9OVCIsIC8qIDEwNCAqLworCSJFTk9ORVQiLCAvKiAxMDUgKi8KKwkiRU5PTElOSyIsIC8qIDEwNiAqLworCSJFQURWIiwgLyogMTA3ICovCisJIkVTUk1OVCIsIC8qIDEwOCAqLworCSJFQ09NTSIsIC8qIDEwOSAqLworCSJFTVVMVElIT1AiLCAvKiAxMTAgKi8KKwkiRURPVERPVCIsIC8qIDExMSAqLworCSJFT1ZFUkZMT1ciLCAvKiAxMTIgKi8KKwkiRU5PVFVOSVEiLCAvKiAxMTMgKi8KKwkiRUJBREZEIiwgLyogMTE0ICovCisJIkVSRU1DSEciLCAvKiAxMTUgKi8KKwkiRUlMU0VRIiwgLyogMTE2ICovCisJIkVVQ0xFQU4iLCAvKiAxMTcgKi8KKwkiRU5PVE5BTSIsIC8qIDExOCAqLworCSJFTkFWQUlMIiwgLyogMTE5ICovCisJIkVJU05BTSIsIC8qIDEyMCAqLworCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KKwkiRUxJQkFDQyIsIC8qIDEyMiAqLworCSJFTElCQkFEIiwgLyogMTIzICovCisJIkVMSUJTQ04iLCAvKiAxMjQgKi8KKwkiRUxJQk1BWCIsIC8qIDEyNSAqLworCSJFTElCRVhFQyIsIC8qIDEyNiAqLworCSJFUkVTVEFSVCIsIC8qIDEyNyAqLworCSJFU1RSUElQRSIsIC8qIDEyOCAqLworCSJFUlJOT18xMjkiLCAvKiAxMjkgKi8KKwkiRVJSTk9fMTMwIiwgLyogMTMwICovCisJIkVSUk5PXzEzMSIsIC8qIDEzMSAqLworCSJFUlJOT18xMzIiLCAvKiAxMzIgKi8KKwkiRVJSTk9fMTMzIiwgLyogMTMzICovCisJIkVSUk5PXzEzNCIsIC8qIDEzNCAqLworCSJFUlJOT18xMzUiLCAvKiAxMzUgKi8KKwkiRVJSTk9fMTM2IiwgLyogMTM2ICovCisJIkVSUk5PXzEzNyIsIC8qIDEzNyAqLworCSJFUlJOT18xMzgiLCAvKiAxMzggKi8KKwkiRVJSTk9fMTM5IiwgLyogMTM5ICovCisJIkVSUk5PXzE0MCIsIC8qIDE0MCAqLworCSJFUlJOT18xNDEiLCAvKiAxNDEgKi8KKwkiRVJSTk9fMTQyIiwgLyogMTQyICovCisJIkVSUk5PXzE0MyIsIC8qIDE0MyAqLworCSJFUlJOT18xNDQiLCAvKiAxNDQgKi8KKwkiRVJSTk9fMTQ1IiwgLyogMTQ1ICovCisJIkVSUk5PXzE0NiIsIC8qIDE0NiAqLworCSJFUlJOT18xNDciLCAvKiAxNDcgKi8KKwkiRVJSTk9fMTQ4IiwgLyogMTQ4ICovCisJIkVSUk5PXzE0OSIsIC8qIDE0OSAqLworCSJFUlJOT18xNTAiLCAvKiAxNTAgKi8KKwkiRVJSTk9fMTUxIiwgLyogMTUxICovCisJIkVSUk5PXzE1MiIsIC8qIDE1MiAqLworCSJFUlJOT18xNTMiLCAvKiAxNTMgKi8KKwkiRVJSTk9fMTU0IiwgLyogMTU0ICovCisJIkVSUk5PXzE1NSIsIC8qIDE1NSAqLworCSJFUlJOT18xNTYiLCAvKiAxNTYgKi8KKwkiRVJSTk9fMTU3IiwgLyogMTU3ICovCisJIkVSUk5PXzE1OCIsIC8qIDE1OCAqLworCSJFUlJOT18xNTkiLCAvKiAxNTkgKi8KKwkiRVJSTk9fMTYwIiwgLyogMTYwICovCisJIkVSUk5PXzE2MSIsIC8qIDE2MSAqLworCSJFUlJOT18xNjIiLCAvKiAxNjIgKi8KKwkiRVJSTk9fMTYzIiwgLyogMTYzICovCisJIkVSUk5PXzE2NCIsIC8qIDE2NCAqLworCSJFUlJOT18xNjUiLCAvKiAxNjUgKi8KKwkiRVJSTk9fMTY2IiwgLyogMTY2ICovCisJIkVSUk5PXzE2NyIsIC8qIDE2NyAqLworCSJFUlJOT18xNjgiLCAvKiAxNjggKi8KKwkiRVJSTk9fMTY5IiwgLyogMTY5ICovCisJIkVSUk5PXzE3MCIsIC8qIDE3MCAqLworCSJFUlJOT18xNzEiLCAvKiAxNzEgKi8KKwkiRVJSTk9fMTcyIiwgLyogMTcyICovCisJIkVSUk5PXzE3MyIsIC8qIDE3MyAqLworCSJFUlJOT18xNzQiLCAvKiAxNzQgKi8KKwkiRVJSTk9fMTc1IiwgLyogMTc1ICovCisJIkVSUk5PXzE3NiIsIC8qIDE3NiAqLworCSJFUlJOT18xNzciLCAvKiAxNzcgKi8KKwkiRVJSTk9fMTc4IiwgLyogMTc4ICovCisJIkVSUk5PXzE3OSIsIC8qIDE3OSAqLworCSJFUlJOT18xODAiLCAvKiAxODAgKi8KKwkiRVJSTk9fMTgxIiwgLyogMTgxICovCisJIkVSUk5PXzE4MiIsIC8qIDE4MiAqLworCSJFUlJOT18xODMiLCAvKiAxODMgKi8KKwkiRVJSTk9fMTg0IiwgLyogMTg0ICovCisJIkVSUk5PXzE4NSIsIC8qIDE4NSAqLworCSJFUlJOT18xODYiLCAvKiAxODYgKi8KKwkiRVJSTk9fMTg3IiwgLyogMTg3ICovCisJIkVSUk5PXzE4OCIsIC8qIDE4OCAqLworCSJFUlJOT18xODkiLCAvKiAxODkgKi8KKwkiRVJSTk9fMTkwIiwgLyogMTkwICovCisJIkVSUk5PXzE5MSIsIC8qIDE5MSAqLworCSJFUlJOT18xOTIiLCAvKiAxOTIgKi8KKwkiRVJSTk9fMTkzIiwgLyogMTkzICovCisJIkVSUk5PXzE5NCIsIC8qIDE5NCAqLworCSJFUlJOT18xOTUiLCAvKiAxOTUgKi8KKwkiRVJSTk9fMTk2IiwgLyogMTk2ICovCisJIkVSUk5PXzE5NyIsIC8qIDE5NyAqLworCSJFUlJOT18xOTgiLCAvKiAxOTggKi8KKwkiRVJSTk9fMTk5IiwgLyogMTk5ICovCisJIkVSUk5PXzIwMCIsIC8qIDIwMCAqLworCSJFUlJOT18yMDEiLCAvKiAyMDEgKi8KKwkiRVJSTk9fMjAyIiwgLyogMjAyICovCisJIkVSUk5PXzIwMyIsIC8qIDIwMyAqLworCSJFUlJOT18yMDQiLCAvKiAyMDQgKi8KKwkiRVJSTk9fMjA1IiwgLyogMjA1ICovCisJIkVSUk5PXzIwNiIsIC8qIDIwNiAqLworCSJFUlJOT18yMDciLCAvKiAyMDcgKi8KKwkiRVJSTk9fMjA4IiwgLyogMjA4ICovCisJIkVSUk5PXzIwOSIsIC8qIDIwOSAqLworCSJFUlJOT18yMTAiLCAvKiAyMTAgKi8KKwkiRVJSTk9fMjExIiwgLyogMjExICovCisJIkVSUk5PXzIxMiIsIC8qIDIxMiAqLworCSJFUlJOT18yMTMiLCAvKiAyMTMgKi8KKwkiRVJSTk9fMjE0IiwgLyogMjE0ICovCisJIkVSUk5PXzIxNSIsIC8qIDIxNSAqLworCSJFUlJOT18yMTYiLCAvKiAyMTYgKi8KKwkiRVJSTk9fMjE3IiwgLyogMjE3ICovCisJIkVSUk5PXzIxOCIsIC8qIDIxOCAqLworCSJFUlJOT18yMTkiLCAvKiAyMTkgKi8KKwkiRVJSTk9fMjIwIiwgLyogMjIwICovCisJIkVSUk5PXzIyMSIsIC8qIDIyMSAqLworCSJFUlJOT18yMjIiLCAvKiAyMjIgKi8KKwkiRVJSTk9fMjIzIiwgLyogMjIzICovCisJIkVSUk5PXzIyNCIsIC8qIDIyNCAqLworCSJFUlJOT18yMjUiLCAvKiAyMjUgKi8KKwkiRVJSTk9fMjI2IiwgLyogMjI2ICovCisJIkVSUk5PXzIyNyIsIC8qIDIyNyAqLworCSJFUlJOT18yMjgiLCAvKiAyMjggKi8KKwkiRVJSTk9fMjI5IiwgLyogMjI5ICovCisJIkVSUk5PXzIzMCIsIC8qIDIzMCAqLworCSJFUlJOT18yMzEiLCAvKiAyMzEgKi8KKwkiRVJSTk9fMjMyIiwgLyogMjMyICovCisJIkVSUk5PXzIzMyIsIC8qIDIzMyAqLworCSJFUlJOT18yMzQiLCAvKiAyMzQgKi8KKwkiRVJSTk9fMjM1IiwgLyogMjM1ICovCisJIkVSUk5PXzIzNiIsIC8qIDIzNiAqLworCSJFUlJOT18yMzciLCAvKiAyMzcgKi8KKwkiRVJSTk9fMjM4IiwgLyogMjM4ICovCisJIkVSUk5PXzIzOSIsIC8qIDIzOSAqLworCSJFUlJOT18yNDAiLCAvKiAyNDAgKi8KKwkiRVJSTk9fMjQxIiwgLyogMjQxICovCisJIkVSUk5PXzI0MiIsIC8qIDI0MiAqLworCSJFUlJOT18yNDMiLCAvKiAyNDMgKi8KKwkiRVJSTk9fMjQ0IiwgLyogMjQ0ICovCisJIkVSUk5PXzI0NSIsIC8qIDI0NSAqLworCSJFUlJOT18yNDYiLCAvKiAyNDYgKi8KKwkiRVJSTk9fMjQ3IiwgLyogMjQ3ICovCisJIkVSUk5PXzI0OCIsIC8qIDI0OCAqLworCSJFUlJOT18yNDkiLCAvKiAyNDkgKi8KKwkiRVJSTk9fMjUwIiwgLyogMjUwICovCisJIkVSUk5PXzI1MSIsIC8qIDI1MSAqLworCSJFUlJOT18yNTIiLCAvKiAyNTIgKi8KKwkiRVJSTk9fMjUzIiwgLyogMjUzICovCisJIkVSUk5PXzI1NCIsIC8qIDI1NCAqLworCSJFUlJOT18yNTUiLCAvKiAyNTUgKi8KKwkiRVJSTk9fMjU2IiwgLyogMjU2ICovCisJIkVSUk5PXzI1NyIsIC8qIDI1NyAqLworCSJFUlJOT18yNTgiLCAvKiAyNTggKi8KKwkiRVJSTk9fMjU5IiwgLyogMjU5ICovCisJIkVSUk5PXzI2MCIsIC8qIDI2MCAqLworCSJFUlJOT18yNjEiLCAvKiAyNjEgKi8KKwkiRVJSTk9fMjYyIiwgLyogMjYyICovCisJIkVSUk5PXzI2MyIsIC8qIDI2MyAqLworCSJFUlJOT18yNjQiLCAvKiAyNjQgKi8KKwkiRVJSTk9fMjY1IiwgLyogMjY1ICovCisJIkVSUk5PXzI2NiIsIC8qIDI2NiAqLworCSJFUlJOT18yNjciLCAvKiAyNjcgKi8KKwkiRVJSTk9fMjY4IiwgLyogMjY4ICovCisJIkVSUk5PXzI2OSIsIC8qIDI2OSAqLworCSJFUlJOT18yNzAiLCAvKiAyNzAgKi8KKwkiRVJSTk9fMjcxIiwgLyogMjcxICovCisJIkVSUk5PXzI3MiIsIC8qIDI3MiAqLworCSJFUlJOT18yNzMiLCAvKiAyNzMgKi8KKwkiRVJSTk9fMjc0IiwgLyogMjc0ICovCisJIkVSUk5PXzI3NSIsIC8qIDI3NSAqLworCSJFUlJOT18yNzYiLCAvKiAyNzYgKi8KKwkiRVJSTk9fMjc3IiwgLyogMjc3ICovCisJIkVSUk5PXzI3OCIsIC8qIDI3OCAqLworCSJFUlJOT18yNzkiLCAvKiAyNzkgKi8KKwkiRVJSTk9fMjgwIiwgLyogMjgwICovCisJIkVSUk5PXzI4MSIsIC8qIDI4MSAqLworCSJFUlJOT18yODIiLCAvKiAyODIgKi8KKwkiRVJSTk9fMjgzIiwgLyogMjgzICovCisJIkVSUk5PXzI4NCIsIC8qIDI4NCAqLworCSJFUlJOT18yODUiLCAvKiAyODUgKi8KKwkiRVJSTk9fMjg2IiwgLyogMjg2ICovCisJIkVSUk5PXzI4NyIsIC8qIDI4NyAqLworCSJFUlJOT18yODgiLCAvKiAyODggKi8KKwkiRVJSTk9fMjg5IiwgLyogMjg5ICovCisJIkVSUk5PXzI5MCIsIC8qIDI5MCAqLworCSJFUlJOT18yOTEiLCAvKiAyOTEgKi8KKwkiRVJSTk9fMjkyIiwgLyogMjkyICovCisJIkVSUk5PXzI5MyIsIC8qIDI5MyAqLworCSJFUlJOT18yOTQiLCAvKiAyOTQgKi8KKwkiRVJSTk9fMjk1IiwgLyogMjk1ICovCisJIkVSUk5PXzI5NiIsIC8qIDI5NiAqLworCSJFUlJOT18yOTciLCAvKiAyOTcgKi8KKwkiRVJSTk9fMjk4IiwgLyogMjk4ICovCisJIkVSUk5PXzI5OSIsIC8qIDI5OSAqLworCSJFUlJOT18zMDAiLCAvKiAzMDAgKi8KKwkiRVJSTk9fMzAxIiwgLyogMzAxICovCisJIkVSUk5PXzMwMiIsIC8qIDMwMiAqLworCSJFUlJOT18zMDMiLCAvKiAzMDMgKi8KKwkiRVJSTk9fMzA0IiwgLyogMzA0ICovCisJIkVSUk5PXzMwNSIsIC8qIDMwNSAqLworCSJFUlJOT18zMDYiLCAvKiAzMDYgKi8KKwkiRVJSTk9fMzA3IiwgLyogMzA3ICovCisJIkVSUk5PXzMwOCIsIC8qIDMwOCAqLworCSJFUlJOT18zMDkiLCAvKiAzMDkgKi8KKwkiRVJSTk9fMzEwIiwgLyogMzEwICovCisJIkVSUk5PXzMxMSIsIC8qIDMxMSAqLworCSJFUlJOT18zMTIiLCAvKiAzMTIgKi8KKwkiRVJSTk9fMzEzIiwgLyogMzEzICovCisJIkVSUk5PXzMxNCIsIC8qIDMxNCAqLworCSJFUlJOT18zMTUiLCAvKiAzMTUgKi8KKwkiRVJSTk9fMzE2IiwgLyogMzE2ICovCisJIkVSUk5PXzMxNyIsIC8qIDMxNyAqLworCSJFUlJOT18zMTgiLCAvKiAzMTggKi8KKwkiRVJSTk9fMzE5IiwgLyogMzE5ICovCisJIkVSUk5PXzMyMCIsIC8qIDMyMCAqLworCSJFUlJOT18zMjEiLCAvKiAzMjEgKi8KKwkiRVJSTk9fMzIyIiwgLyogMzIyICovCisJIkVSUk5PXzMyMyIsIC8qIDMyMyAqLworCSJFUlJOT18zMjQiLCAvKiAzMjQgKi8KKwkiRVJSTk9fMzI1IiwgLyogMzI1ICovCisJIkVSUk5PXzMyNiIsIC8qIDMyNiAqLworCSJFUlJOT18zMjciLCAvKiAzMjcgKi8KKwkiRVJSTk9fMzI4IiwgLyogMzI4ICovCisJIkVSUk5PXzMyOSIsIC8qIDMyOSAqLworCSJFUlJOT18zMzAiLCAvKiAzMzAgKi8KKwkiRVJSTk9fMzMxIiwgLyogMzMxICovCisJIkVSUk5PXzMzMiIsIC8qIDMzMiAqLworCSJFUlJOT18zMzMiLCAvKiAzMzMgKi8KKwkiRVJSTk9fMzM0IiwgLyogMzM0ICovCisJIkVSUk5PXzMzNSIsIC8qIDMzNSAqLworCSJFUlJOT18zMzYiLCAvKiAzMzYgKi8KKwkiRVJSTk9fMzM3IiwgLyogMzM3ICovCisJIkVSUk5PXzMzOCIsIC8qIDMzOCAqLworCSJFUlJOT18zMzkiLCAvKiAzMzkgKi8KKwkiRVJSTk9fMzQwIiwgLyogMzQwICovCisJIkVSUk5PXzM0MSIsIC8qIDM0MSAqLworCSJFUlJOT18zNDIiLCAvKiAzNDIgKi8KKwkiRVJSTk9fMzQzIiwgLyogMzQzICovCisJIkVSUk5PXzM0NCIsIC8qIDM0NCAqLworCSJFUlJOT18zNDUiLCAvKiAzNDUgKi8KKwkiRVJSTk9fMzQ2IiwgLyogMzQ2ICovCisJIkVSUk5PXzM0NyIsIC8qIDM0NyAqLworCSJFUlJOT18zNDgiLCAvKiAzNDggKi8KKwkiRVJSTk9fMzQ5IiwgLyogMzQ5ICovCisJIkVSUk5PXzM1MCIsIC8qIDM1MCAqLworCSJFUlJOT18zNTEiLCAvKiAzNTEgKi8KKwkiRVJSTk9fMzUyIiwgLyogMzUyICovCisJIkVSUk5PXzM1MyIsIC8qIDM1MyAqLworCSJFUlJOT18zNTQiLCAvKiAzNTQgKi8KKwkiRVJSTk9fMzU1IiwgLyogMzU1ICovCisJIkVSUk5PXzM1NiIsIC8qIDM1NiAqLworCSJFUlJOT18zNTciLCAvKiAzNTcgKi8KKwkiRVJSTk9fMzU4IiwgLyogMzU4ICovCisJIkVSUk5PXzM1OSIsIC8qIDM1OSAqLworCSJFUlJOT18zNjAiLCAvKiAzNjAgKi8KKwkiRVJSTk9fMzYxIiwgLyogMzYxICovCisJIkVSUk5PXzM2MiIsIC8qIDM2MiAqLworCSJFUlJOT18zNjMiLCAvKiAzNjMgKi8KKwkiRVJSTk9fMzY0IiwgLyogMzY0ICovCisJIkVSUk5PXzM2NSIsIC8qIDM2NSAqLworCSJFUlJOT18zNjYiLCAvKiAzNjYgKi8KKwkiRVJSTk9fMzY3IiwgLyogMzY3ICovCisJIkVSUk5PXzM2OCIsIC8qIDM2OCAqLworCSJFUlJOT18zNjkiLCAvKiAzNjkgKi8KKwkiRVJSTk9fMzcwIiwgLyogMzcwICovCisJIkVSUk5PXzM3MSIsIC8qIDM3MSAqLworCSJFUlJOT18zNzIiLCAvKiAzNzIgKi8KKwkiRVJSTk9fMzczIiwgLyogMzczICovCisJIkVSUk5PXzM3NCIsIC8qIDM3NCAqLworCSJFUlJOT18zNzUiLCAvKiAzNzUgKi8KKwkiRVJSTk9fMzc2IiwgLyogMzc2ICovCisJIkVSUk5PXzM3NyIsIC8qIDM3NyAqLworCSJFUlJOT18zNzgiLCAvKiAzNzggKi8KKwkiRVJSTk9fMzc5IiwgLyogMzc5ICovCisJIkVSUk5PXzM4MCIsIC8qIDM4MCAqLworCSJFUlJOT18zODEiLCAvKiAzODEgKi8KKwkiRVJSTk9fMzgyIiwgLyogMzgyICovCisJIkVSUk5PXzM4MyIsIC8qIDM4MyAqLworCSJFUlJOT18zODQiLCAvKiAzODQgKi8KKwkiRVJSTk9fMzg1IiwgLyogMzg1ICovCisJIkVSUk5PXzM4NiIsIC8qIDM4NiAqLworCSJFUlJOT18zODciLCAvKiAzODcgKi8KKwkiRVJSTk9fMzg4IiwgLyogMzg4ICovCisJIkVSUk5PXzM4OSIsIC8qIDM4OSAqLworCSJFUlJOT18zOTAiLCAvKiAzOTAgKi8KKwkiRVJSTk9fMzkxIiwgLyogMzkxICovCisJIkVSUk5PXzM5MiIsIC8qIDM5MiAqLworCSJFUlJOT18zOTMiLCAvKiAzOTMgKi8KKwkiRVJSTk9fMzk0IiwgLyogMzk0ICovCisJIkVSUk5PXzM5NSIsIC8qIDM5NSAqLworCSJFUlJOT18zOTYiLCAvKiAzOTYgKi8KKwkiRVJSTk9fMzk3IiwgLyogMzk3ICovCisJIkVSUk5PXzM5OCIsIC8qIDM5OCAqLworCSJFUlJOT18zOTkiLCAvKiAzOTkgKi8KKwkiRVJSTk9fNDAwIiwgLyogNDAwICovCisJIkVSUk5PXzQwMSIsIC8qIDQwMSAqLworCSJFUlJOT180MDIiLCAvKiA0MDIgKi8KKwkiRVJSTk9fNDAzIiwgLyogNDAzICovCisJIkVSUk5PXzQwNCIsIC8qIDQwNCAqLworCSJFUlJOT180MDUiLCAvKiA0MDUgKi8KKwkiRVJSTk9fNDA2IiwgLyogNDA2ICovCisJIkVSUk5PXzQwNyIsIC8qIDQwNyAqLworCSJFUlJOT180MDgiLCAvKiA0MDggKi8KKwkiRVJSTk9fNDA5IiwgLyogNDA5ICovCisJIkVSUk5PXzQxMCIsIC8qIDQxMCAqLworCSJFUlJOT180MTEiLCAvKiA0MTEgKi8KKwkiRVJSTk9fNDEyIiwgLyogNDEyICovCisJIkVSUk5PXzQxMyIsIC8qIDQxMyAqLworCSJFUlJOT180MTQiLCAvKiA0MTQgKi8KKwkiRVJSTk9fNDE1IiwgLyogNDE1ICovCisJIkVSUk5PXzQxNiIsIC8qIDQxNiAqLworCSJFUlJOT180MTciLCAvKiA0MTcgKi8KKwkiRVJSTk9fNDE4IiwgLyogNDE4ICovCisJIkVSUk5PXzQxOSIsIC8qIDQxOSAqLworCSJFUlJOT180MjAiLCAvKiA0MjAgKi8KKwkiRVJSTk9fNDIxIiwgLyogNDIxICovCisJIkVSUk5PXzQyMiIsIC8qIDQyMiAqLworCSJFUlJOT180MjMiLCAvKiA0MjMgKi8KKwkiRVJSTk9fNDI0IiwgLyogNDI0ICovCisJIkVSUk5PXzQyNSIsIC8qIDQyNSAqLworCSJFUlJOT180MjYiLCAvKiA0MjYgKi8KKwkiRVJSTk9fNDI3IiwgLyogNDI3ICovCisJIkVSUk5PXzQyOCIsIC8qIDQyOCAqLworCSJFUlJOT180MjkiLCAvKiA0MjkgKi8KKwkiRVJSTk9fNDMwIiwgLyogNDMwICovCisJIkVSUk5PXzQzMSIsIC8qIDQzMSAqLworCSJFUlJOT180MzIiLCAvKiA0MzIgKi8KKwkiRVJSTk9fNDMzIiwgLyogNDMzICovCisJIkVSUk5PXzQzNCIsIC8qIDQzNCAqLworCSJFUlJOT180MzUiLCAvKiA0MzUgKi8KKwkiRVJSTk9fNDM2IiwgLyogNDM2ICovCisJIkVSUk5PXzQzNyIsIC8qIDQzNyAqLworCSJFUlJOT180MzgiLCAvKiA0MzggKi8KKwkiRVJSTk9fNDM5IiwgLyogNDM5ICovCisJIkVSUk5PXzQ0MCIsIC8qIDQ0MCAqLworCSJFUlJOT180NDEiLCAvKiA0NDEgKi8KKwkiRVJSTk9fNDQyIiwgLyogNDQyICovCisJIkVSUk5PXzQ0MyIsIC8qIDQ0MyAqLworCSJFUlJOT180NDQiLCAvKiA0NDQgKi8KKwkiRVJSTk9fNDQ1IiwgLyogNDQ1ICovCisJIkVSUk5PXzQ0NiIsIC8qIDQ0NiAqLworCSJFUlJOT180NDciLCAvKiA0NDcgKi8KKwkiRVJSTk9fNDQ4IiwgLyogNDQ4ICovCisJIkVSUk5PXzQ0OSIsIC8qIDQ0OSAqLworCSJFUlJOT180NTAiLCAvKiA0NTAgKi8KKwkiRVJSTk9fNDUxIiwgLyogNDUxICovCisJIkVSUk5PXzQ1MiIsIC8qIDQ1MiAqLworCSJFUlJOT180NTMiLCAvKiA0NTMgKi8KKwkiRVJSTk9fNDU0IiwgLyogNDU0ICovCisJIkVSUk5PXzQ1NSIsIC8qIDQ1NSAqLworCSJFUlJOT180NTYiLCAvKiA0NTYgKi8KKwkiRVJSTk9fNDU3IiwgLyogNDU3ICovCisJIkVSUk5PXzQ1OCIsIC8qIDQ1OCAqLworCSJFUlJOT180NTkiLCAvKiA0NTkgKi8KKwkiRVJSTk9fNDYwIiwgLyogNDYwICovCisJIkVSUk5PXzQ2MSIsIC8qIDQ2MSAqLworCSJFUlJOT180NjIiLCAvKiA0NjIgKi8KKwkiRVJSTk9fNDYzIiwgLyogNDYzICovCisJIkVSUk5PXzQ2NCIsIC8qIDQ2NCAqLworCSJFUlJOT180NjUiLCAvKiA0NjUgKi8KKwkiRVJSTk9fNDY2IiwgLyogNDY2ICovCisJIkVSUk5PXzQ2NyIsIC8qIDQ2NyAqLworCSJFUlJOT180NjgiLCAvKiA0NjggKi8KKwkiRVJSTk9fNDY5IiwgLyogNDY5ICovCisJIkVSUk5PXzQ3MCIsIC8qIDQ3MCAqLworCSJFUlJOT180NzEiLCAvKiA0NzEgKi8KKwkiRVJSTk9fNDcyIiwgLyogNDcyICovCisJIkVSUk5PXzQ3MyIsIC8qIDQ3MyAqLworCSJFUlJOT180NzQiLCAvKiA0NzQgKi8KKwkiRVJSTk9fNDc1IiwgLyogNDc1ICovCisJIkVSUk5PXzQ3NiIsIC8qIDQ3NiAqLworCSJFUlJOT180NzciLCAvKiA0NzcgKi8KKwkiRVJSTk9fNDc4IiwgLyogNDc4ICovCisJIkVSUk5PXzQ3OSIsIC8qIDQ3OSAqLworCSJFUlJOT180ODAiLCAvKiA0ODAgKi8KKwkiRVJSTk9fNDgxIiwgLyogNDgxICovCisJIkVSUk5PXzQ4MiIsIC8qIDQ4MiAqLworCSJFUlJOT180ODMiLCAvKiA0ODMgKi8KKwkiRVJSTk9fNDg0IiwgLyogNDg0ICovCisJIkVSUk5PXzQ4NSIsIC8qIDQ4NSAqLworCSJFUlJOT180ODYiLCAvKiA0ODYgKi8KKwkiRVJSTk9fNDg3IiwgLyogNDg3ICovCisJIkVSUk5PXzQ4OCIsIC8qIDQ4OCAqLworCSJFUlJOT180ODkiLCAvKiA0ODkgKi8KKwkiRVJSTk9fNDkwIiwgLyogNDkwICovCisJIkVSUk5PXzQ5MSIsIC8qIDQ5MSAqLworCSJFUlJOT180OTIiLCAvKiA0OTIgKi8KKwkiRVJSTk9fNDkzIiwgLyogNDkzICovCisJIkVSUk5PXzQ5NCIsIC8qIDQ5NCAqLworCSJFUlJOT180OTUiLCAvKiA0OTUgKi8KKwkiRVJSTk9fNDk2IiwgLyogNDk2ICovCisJIkVSUk5PXzQ5NyIsIC8qIDQ5NyAqLworCSJFUlJOT180OTgiLCAvKiA0OTggKi8KKwkiRVJSTk9fNDk5IiwgLyogNDk5ICovCisJIkVSUk5PXzUwMCIsIC8qIDUwMCAqLworCSJFUlJOT181MDEiLCAvKiA1MDEgKi8KKwkiRVJSTk9fNTAyIiwgLyogNTAyICovCisJIkVSUk5PXzUwMyIsIC8qIDUwMyAqLworCSJFUlJOT181MDQiLCAvKiA1MDQgKi8KKwkiRVJSTk9fNTA1IiwgLyogNTA1ICovCisJIkVSUk5PXzUwNiIsIC8qIDUwNiAqLworCSJFUlJOT181MDciLCAvKiA1MDcgKi8KKwkiRVJSTk9fNTA4IiwgLyogNTA4ICovCisJIkVSUk5PXzUwOSIsIC8qIDUwOSAqLworCSJFUlJOT181MTAiLCAvKiA1MTAgKi8KKwkiRVJSTk9fNTExIiwgLyogNTExICovCisJIkVSRVNUQVJUU1lTIiwgLyogNTEyICovCisJIkVSRVNUQVJUTk9JTlRSIiwgLyogNTEzICovCisJIkVSRVNUQVJUTk9IQU5EIiwgLyogNTE0ICovCisJIkVOT0lPQ1RMQ01EIiwgLyogNTE1ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvYWxwaGEvaW9jdGxlbnQuaCBiL3N0cmFjZS9saW51eC9hbHBoYS9pb2N0bGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZmRiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvYWxwaGEvaW9jdGxlbnQuaApAQCAtMCwwICsxLDg1MiBAQAorCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAorCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAorCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAorCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAorCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAorCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAorCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCisJeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAorCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCisJeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAorCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKKwl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkNPTkZJRyIsCTB4NTQ1M30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdXSUxEIiwJMHg1NDU0fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU1dJTEQiLAkweDU0NTV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTENLVFJNSU9TIiwJMHg1NDU2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xDS1RSTUlPUyIsCTB4NTQ1N30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdTVFJVQ1QiLAkweDU0NTh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRMU1IiLAkweDU0NTl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHRVRNVUxUSSIsCTB4NTQ1YX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNFVE1VTFRJIiwJMHg1NDVifSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUlXQUlUIiwJMHg1NDVjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0lDT1VOVCIsCTB4NTQ1ZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dIQVlFU0VTUCIsCTB4NTQ1ZX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NIQVlFU0VTUCIsCTB4NTQ1Zn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19CVUxLIiwJMHg1NTAyfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VURVAiLAkweDU1MDN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUSU5URVJGQUNFIiwJMHg1NTA0fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVENPTkZJR1VSQVRJT04iLAkweDU1MDV9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfR0VURFJJVkVSIiwJMHg1NTA4fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NVQk1JVFVSQiIsCTB4NTUwYX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDQVJEVVJCIiwJMHg1NTBifSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkIiLAkweDU1MGN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQk5ERUxBWSIsCTB4NTUwZH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDU0lHTkFMIiwJMHg1NTBlfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwJMHg1NTBmfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLAkweDU1MTB9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVElORk8iLAkweDU1MTF9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSU9DVEwiLAkweDU1MTJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfSFVCX1BPUlRJTkZPIiwJMHg1NTEzfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFU0VUIiwJMHg1NTE0fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NMRUFSX0hBTFQiLAkweDU1MTV9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVVBQT1JUIiwJMHg1NzAwfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1RBVFVTIiwJMHg1NzAxfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUQk9PVFNUQVRVUyIsCTB4NTcwMn0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRFTVAiLAkweDU3MDN9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRPUFRJT05TIiwJMHg1NzA0fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfS0VFUEFMSVZFIiwJMHg1NzA1fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUVElNRU9VVCIsCTB4NTcwNn0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFRJTUVPVVQiLAkweDU3MDd9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTiIsCTB4NWEwMH0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVCIsCTB4NWEwMX0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9DVFJMIiwJMHg1YTAyfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5fU1RBVFVTIiwJMHg1YTAzfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUX1NUQVRVUyIsCTB4NWEwNH0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0dFTl9DVFJMIiwJMHg1YTA1fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX1dBSVQiLAkweDVhMDZ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUIiwJMHg2MTEwfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVFoiLAkweDYxMTF9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRESUFHIiwJMHg2MTEyfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfQ0xSRElBRyIsCTB4NjExM30sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVERJQUciLAkweDYxMTR9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9TRVRGUkFNSU5HIiwJMHg2MTE1fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJBTUlORyIsCTB4NjExNn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSU0VOU0UiLAkweDYxMTd9LAorCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVCIsCTB4NjEzMn0sCisJeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUWiIsCTB4NjEzM30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVCIsCTB4NjE1MH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUU1RBVFoiLAkweDYxNTF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExPT1AiLAkweDYxNTJ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVExPT1AiLAkweDYxNTN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1FVRVJZTE9PUCIsCTB4NjE1NH0sCisJeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX01FTURVTVAiLAkweDYxNjB9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19HRVRQU1RBVCIsCTB4NjE2MX0sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTCIsCTB4NjE2MX0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX1NFVEJVRkxFViIsCTB4NjE2Mn0sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUUE9PTFoiLAkweDYxNjJ9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19BREpCVUZMRVYiLAkweDYxNjN9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX1NFVFBPT0wiLAkweDYxNjN9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFRISVNUIiwJMHg2MTY0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAorCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAorCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAorCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAorCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCisJeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9FVkVOVF9NQVNLIiwJMHg2NDAyfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VURkxBR1MiLAkweDY2MDF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDY2MDF9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg2NjdifSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg2NjdjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9BU1lOQyIsCTB4NjY3ZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NjY3ZX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDY2N2Z9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0dFVElPUFMiLAkweDY5MDB9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hSVEdFVCIsCTB4NjkwMX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPTENUR0VUIiwJMHg2OTAyfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNU0VUIiwJMHg2OTAzfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9QQVJNR0VUIiwJMHg2OTA0fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RMIiwJMHg2OTA1fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV1VMIiwJMHg2OTA2fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9TV0RFTCIsCTB4NjkwN30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPVkFMSURBVEUiLAkweDY5MDh9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0hUTUwiLAkweDY5MDl9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVFJFRyIsCTB4NjkwYX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUR0VUIiwJMHg2OTBifSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAorCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAorCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVENNRCIsCTB4NmQwYn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DQ0xSTU9EQ09VTlQiLAkweDZkMGZ9LAorCXsibGludXgvemZ0YXBlLmgiLAkiTVRJT0NfWkZUQVBFX0dFVEJMS1NaIiwJMHg2ZDY4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTkNQUkVRVUVTVCIsCTB4NmUwMX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwJMHg2ZTAyfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQyIiwJMHg2ZTAyfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfQ09OTl9MT0dHRURfSU4iLAkweDZlMDN9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GTyIsCTB4NmUwNH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPX1YyIiwJMHg2ZTA0fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9JTklUIiwJMHg2ZTA1fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19MT0NLVU5MT0NLIiwJMHg2ZTA3fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUk9PVCIsCTB4NmUwOH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFJPT1QiLAkweDZlMDh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRDSEFSU0VUUyIsCTB4NmUwYn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVENIQVJTRVRTIiwJMHg2ZTBifSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FWQUlMQUJMRV9PVVRQVVRTIiwJMHg2ZWY5fSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfU0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9NT0RFIiwJMHg2ZWZhfSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX0FMTF9PVVRQVVRTIiwJMHg2ZWZifSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT04iLAkweDcwMDF9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PRkYiLAkweDcwMDJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRNT1VOVCIsCTB4NzAwM30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUUElEIiwJMHg3MDA0fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTE9TRV9KT1VSTkFMRiIsCTB4NzAwNn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVF9GU0VUUk9PVCIsCTB4NzAwN30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0ZTRVRST09UIiwJMHg3MDA4fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fUkVBRCIsCTB4NzAwOH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVE9QVCIsCTB4NzAwOX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUkRfVElNRSIsCTB4NzAwOX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE9QVCIsCTB4NzAwYX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfU0VUX1RJTUUiLAkweDcwMGF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfS01MU0laRSIsCTB4NzAwYn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX1JFQ05PIiwJMHg3MDBjfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRBVFRSIiwJMHg3MDEwfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DUkVBVEUiLAkweDcwMTF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTElOSyIsCTB4NzAxMn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19VTkxJTksiLAkweDcwMTN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU1lNTElOSyIsCTB4NzAxNH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS0RJUiIsCTB4NzAxNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19STURJUiIsCTB4NzAxNn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19NS05PRCIsCTB4NzAxN30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19SRU5BTUUiLAkweDcwMTh9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ0xPU0UiLAkweDcwMWF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfSU9QRU4iLAkweDcwMWJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VURVhUQVRUUiIsCTB4NzAxY30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19ERUxFWFRBVFRSIiwJMHg3MDFkfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fTUFSSyIsCTB4NzAyMH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFTEVBU0VfUEVSTUlUIiwJMHg3MDIxfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfQUxMX0ZTRVRST09UUyIsCTB4NzAyMn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0JBQ0tGRVRDSF9MTUwiLAkweDcwMjN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVCIsCTB4NzAyNH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NBTkNFTF9MTUwiLAkweDcwMjV9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRVNFVF9GU0VUIiwJMHg3MDI2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ09NUExFVEVfQ0xPU0VTIiwJMHg3MDI3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfQkVHSU4iLAkweDcwMzB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19ET19SRUlOVCIsCTB4NzAzMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0VORCIsCTB4NzAzMn0sCisJeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAorCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9TRVRDS1MiLAkweDcwNDF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVE1PREUiLAkweDcwODB9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJTVEFUVVMiLAkweDcwODF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJDT05UUk9MIiwJMHg3MDgzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ09OVFJPTCIsCTB4NzA4NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUkRBVEEiLAkweDcwODV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdEQVRBIiwJMHg3MDg2fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTEFJTSIsCTB4NzA4Yn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUkVMRUFTRSIsCTB4NzA4Y30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQWUlFTEQiLAkweDcwOGR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEZDT05UUk9MIiwJMHg3MDhlfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBFWENMIiwJMHg3MDhmfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBEQVRBRElSIiwJMHg3MDkwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBORUdPVCIsCTB4NzA5MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NUTE9OSVJRIiwJMHg3MDkyfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBDTFJJUlEiLAkweDcwOTN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFBIQVNFIiwJMHg3MDk0fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRUSU1FIiwJMHg3MDk1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRUSU1FIiwJMHg3MDk2fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFUyIsCTB4NzA5N30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERSIsCTB4NzA5OH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUUEhBU0UiLAkweDcwOTl9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVEZMQUdTIiwJMHg3MDlhfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRGTEFHUyIsCTB4NzA5Yn0sCisJeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiT0xEX1BIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKKwl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLAkweDcyMDF9LAorCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLAkweDcyMDJ9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DQVRNQVJLIiwJMHg3MzA3fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg3MzA4fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg3MzA5fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVRQIiwJMHg3NDA4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VUUCIsCTB4NzQwOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVE4iLAkweDc0MGF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVRDIiwJMHg3NDExfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VUQyIsCTB4NzQxMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg3NDEzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDc0MTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDc0MTV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDc0MTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NzQxN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg3NDE4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg3NDE5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg3NDFjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDc0MWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NzQxZX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg3NDFmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NzQ2N30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NzQ2OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUQVJUIiwJMHg3NDZlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RPUCIsCTB4NzQ2Zn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDc0NzN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTFRDIiwJMHg3NDc0fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xUQyIsCTB4NzQ3NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg3NDc2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDc0Nzd9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKKwl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxQ0FQIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxUkVNIiwJMHg3NjAzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyQ0FQIiwJMHg3NjA0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMlJFTSIsCTB4NzYwNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFURkxBR1MiLAkweDc2MDd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JMVUUiLAkweDc2MDh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQkxVRSIsCTB4NzYwOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAorCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJPU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKKwl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKKwl7ImxpbnV4L2RuLmgiLAkiT1NJT0NHTkVUQUREUiIsCTB4ODllMX0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCisJeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKKwl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAorCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCisJeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAorCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCisJeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZmMDB9LApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2FscGhhL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L2FscGhhL3NpZ25hbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiNTA3ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvYWxwaGEvc2lnbmFsZW50LmgKQEAgLTAsMCArMSwzMiBAQAorCSJTSUdfMCIsCS8qIDAgKi8KKwkiU0lHSFVQIiwJLyogMSAqLworCSJTSUdJTlQiLAkvKiAyICovCisJIlNJR1FVSVQiLAkvKiAzICovCisJIlNJR0lMTCIsCS8qIDQgKi8KKwkiU0lHVFJBUCIsCS8qIDUgKi8KKwkiU0lHQUJSVCIsCS8qIDYgKi8KKwkiU0lHRU1UIiwJLyogNyAqLworCSJTSUdGUEUiLAkvKiA4ICovCisJIlNJR0tJTEwiLAkvKiA5ICovCisJIlNJR0JVUyIsCS8qIDEwICovCisJIlNJR1NFR1YiLAkvKiAxMSAqLworCSJTSUdTWVMiLAkvKiAxMiAqLworCSJTSUdQSVBFIiwJLyogMTMgKi8KKwkiU0lHQUxSTSIsCS8qIDE0ICovCisJIlNJR1RFUk0iLAkvKiAxNSAqLworCSJTSUdVUkciLAkvKiAxNiAqLworCSJTSUdTVE9QIiwJLyogMTcgKi8KKwkiU0lHVFNUUCIsCS8qIDE4ICovCisJIlNJR0NPTlQiLAkvKiAxOSAqLworCSJTSUdDSExEIiwJLyogMjAgKi8KKwkiU0lHVFRJTiIsCS8qIDIxICovCisJIlNJR1RUT1UiLAkvKiAyMiAqLworCSJTSUdJTyIsCS8qIDIzICovCisJIlNJR1hDUFUiLAkvKiAyNCAqLworCSJTSUdYRlNaIiwJLyogMjUgKi8KKwkiU0lHVlRBTFJNIiwJLyogMjYgKi8KKwkiU0lHUFJPRiIsCS8qIDI3ICovCisJIlNJR1dJTkNIIiwJLyogMjggKi8KKwkiU0lHSU5GTyIsCS8qIDI5ICovCisJIlNJR1VTUjEiLAkvKiAzMCAqLworCSJTSUdVU1IyIiwJLyogMzEgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9hbHBoYS9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvYWxwaGEvc3lzY2FsbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NzgxZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvYWxwaGEvc3lzY2FsbGVudC5oCkBAIC0wLDAgKzEsNDc3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjE1IDIwMDUvMDUvMDkgMDg6MDI6MDUgcm9sYW5kIEV4cCAkCisgKi8KKworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zeXNjYWxsIgkJfSwgLyogMCwgbm90IGltcGxlbWVudGVkICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIJCQl9LCAvKiAxICovCisJeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCQl9LCAvKiAyICovCisJeyAzLAkwLAlzeXNfcmVhZCwJCSJyZWFkIgkJCX0sIC8qIDMgKi8KKwl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIJCQl9LCAvKiA0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9vcGVuIgkJfSwgLyogNSwgbm90IGltcGxlbWVudGVkICovCisJeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQkJfSwgLyogNiAqLworCXsgNCwJVFAsCXN5c19vc2Zfd2FpdDQsCQkib3NmX3dhaXQ0IgkJfSwgLyogNyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfY3JlYXQiCQl9LCAvKiA4LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDIsCVRGLAlzeXNfbGluaywJCSJsaW5rIgkJCX0sIC8qIDkgKi8KKwl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJCX0sIC8qIDEwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2V4ZWN2ZSIJCX0sIC8qIDExLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQkJfSwgLyogMTIgKi8KKwl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJCX0sIC8qIDEzICovCisJeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJCX0sIC8qIDE0ICovCisJeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJCX0sIC8qIDE1ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJCX0sIC8qIDE2ICovCisJeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCQl9LCAvKiAxNyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRmc3N0YXQiCQl9LCAvKiAxOCwgbm90IGltcGxlbWVudGVkICovCisJeyAzLAlURiwJc3lzX2xzZWVrLAkJImxzZWVrIgkJCX0sIC8qIDE5ICovCisJeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHhwaWQiCQl9LCAvKiAyMCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tb3VudCIJCX0sIC8qIDIxICovCisJeyAyLAkwLAlzeXNfdW1vdW50MiwJCSJ1bW91bnQiCQl9LCAvKiAyMiAqLworCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCQl9LCAvKiAyMyAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR4dWlkIgkJfSwgLyogMjQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJleGVjX3dpdGhfbG9hZGVyIgl9LCAvKiAyNSwgbm90IGltcGxlbWVudGVkICovCisJeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJCX0sIC8qIDI2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX25yZWN2bXNnIgkJfSwgLyogMjcsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uc2VuZG1zZyIJCX0sIC8qIDI4LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbnJlY3Zmcm9tIgkJfSwgLyogMjksIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uYWNjZXB0IgkJfSwgLyogMzAsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uZ2V0cGVlcm5hbWUiCX0sIC8qIDMxLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbmdldHNvY2tuYW1lIgl9LCAvKiAzMiwgbm90IGltcGxlbWVudGVkICovCisJeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCQl9LCAvKiAzMyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9jaGZsYWdzIgkJfSwgLyogMzQsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9mY2hmbGFncyIJCX0sIC8qIDM1LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQkJfSwgLyogMzYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJCX0sIC8qIDM3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9zdGF0IgkJfSwgLyogMzgsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJCX0sIC8qIDM5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9sc3RhdCIJCX0sIC8qIDQwLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJCX0sIC8qIDQxICovCisJeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJCX0sIC8qIDQyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldF9wcm9ncmFtX2F0dHJpYnV0ZXMiCX0sIC8qIDQzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3Byb2ZpbCIJCX0sIC8qIDQ0LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJCX0sIC8qIDQ1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX29sZF9zaWdhY3Rpb24iCX0sIC8qIDQ2LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDEsCTAsCXN5c19nZXRnaWQsCQkiZ2V0eGdpZCIJCX0sIC8qIDQ3ICovCisJeyAzLAlUUywJcHJpbnRhcmdzLAkJIm9zZl9zaWdwcm9jbWFzayIJfSwgLyogNDggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfZ2V0bG9naW4iCQl9LCAvKiA0OSwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldGxvZ2luIgkJfSwgLyogNTAsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQkJfSwgLyogNTEgKi8KKwl7IDEsCVRTLAlzeXNfc2lncGVuZGluZywJCSJzaWdwZW5kaW5nIgkJfSwgLyogNTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfNTMiCQl9LCAvKiA1MyAqLworCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJCX0sIC8qIDU0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3JlYm9vdCIJCX0sIC8qIDU1LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcmV2b2tlIgkJfSwgLyogNTYsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCQl9LCAvKiA1NyAqLworCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJCX0sIC8qIDU4ICovCisJeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCQl9LCAvKiA1OSAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJCX0sIC8qIDYwICovCisJeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCQl9LCAvKiA2MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfZnN0YXQiCQl9LCAvKiA2Miwgbm90IGltcGxlbWVudGVkICovCisJeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgkJfSwgLyogNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwYWdlc2l6ZSwJImdldHBhZ2VzaXplIgkJfSwgLyogNjQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXJlbWFwIgkJfSwgLyogNjUsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMCwJVFAsCXN5c19mb3JrLAkJInZmb3JrIgkJCX0sIC8qIDY2ICovCisJeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCQl9LCAvKiA2NyAqLworCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCQl9LCAvKiA2OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zYnJrIgkJfSwgLyogNjksIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zc3RrIgkJfSwgLyogNzAsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCQl9LCAvKiA3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfdmFkdmlzZSIJfSwgLyogNzIsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCQl9LCAvKiA3MyAqLworCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0IgkJfSwgLyogNzQgKi8KKwl7IDAsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCQl9LCAvKiA3NSAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJCX0sIC8qIDc2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ttb2RjYWxsIgkJfSwgLyogNzcsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9taW5jb3JlIgkJfSwgLyogNzgsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCQl9LCAvKiA3OSAqLworCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCQl9LCAvKiA4MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfZ2V0cGdycCIJfSwgLyogODEsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMiwJMCwJc3lzX3NldHBncnAsCQkic2V0cGdycCIJCX0sIC8qIDgyICovCisJeyAzLAkwLAlzeXNfb3NmX3NldGl0aW1lciwJIm9zZl9zZXRpdGltZXIiCQl9LCAvKiA4MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfd2FpdCIJCX0sIC8qIDg0LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfdGFibGUiCQl9LCAvKiA4NSwgbm90IGltcGxlbWVudGVkICovCisJeyAyLAkwLAlzeXNfb3NmX2dldGl0aW1lciwJIm9zZl9nZXRpdGltZXIiCQl9LCAvKiA4NiAqLworCXsgMiwJMCwJc3lzX2dldGhvc3RuYW1lLAkiZ2V0aG9zdG5hbWUiCQl9LCAvKiA4NyAqLworCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCQl9LCAvKiA4OCAqLworCXsgMCwJMCwJc3lzX2dldGR0YWJsZXNpemUsCSJnZXRkdGFibGVzaXplIgkJfSwgLyogODkgKi8KKwl7IDIsCTAsCXN5c19kdXAyLAkJImR1cDIiCQkJfSwgLyogOTAgKi8KKwl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCQl9LCAvKiA5MSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJCX0sIC8qIDkyICovCisJeyA1LAkwLAlzeXNfb3NmX3NlbGVjdCwJCSJvc2Zfc2VsZWN0IgkJfSwgLyogOTMgKi8KKwl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQkJfSwgLyogOTQgKi8KKwl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCQl9LCAvKiA5NSAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCQl9LCAvKiA5NiAqLworCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0IgkJfSwgLyogOTcgKi8KKwl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0IgkJfSwgLyogOTggKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJCX0sIC8qIDk5ICovCisJeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJvc2ZfZ2V0cHJpb3JpdHkiCX0sIC8qIDEwMCAqLworCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQkJfSwgLyogMTAxICovCisJeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCQl9LCAvKiAxMDIgKi8KKwl7IDEsCVRTLAlzeXNfc2lncmV0dXJuLAkJInNpZ3JldHVybiIJCX0sIC8qIDEwMyAqLworCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQkJfSwgLyogMTA0ICovCisJeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJCX0sIC8qIDEwNSAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgkJfSwgLyogMTA2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3Bsb2NrIgkJfSwgLyogMTA3LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ3ZlYyIJfSwgLyogMTA4LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ2Jsb2NrIgl9LCAvKiAxMDksIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfc2lnc2V0bWFzayIJfSwgLyogMTEwLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgkJfSwgLyogMTExICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkic2lnc3RhY2siCQl9LCAvKiAxMTIgKi8KKwl7IDMsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgkJfSwgLyogMTEzICovCisJeyAzLAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJCX0sIC8qIDExNCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9vbGRfdnRyYWNlIgl9LCAvKiAxMTUsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMiwJMCwJc3lzX29zZl9nZXR0aW1lb2ZkYXksCSJvc2ZfZ2V0dGltZW9mZGF5Igl9LCAvKiAxMTYgKi8KKwl7IDIsCTAsCXN5c19vc2ZfZ2V0cnVzYWdlLAkib3NmX2dldHJ1c2FnZSIJCX0sIC8qIDExNyAqLworCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCQl9LCAvKiAxMTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTE5IgkJfSwgLyogMTE5ICovCisJeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQkJfSwgLyogMTIwICovCisJeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJCX0sIC8qIDEyMSAqLworCXsgMiwJMCwJc3lzX29zZl9zZXR0aW1lb2ZkYXksCSJvc2Zfc2V0dGltZW9mZGF5Igl9LCAvKiAxMjIgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgkJfSwgLyogMTIzICovCisJeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJCX0sIC8qIDEyNCAqLworCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJCX0sIC8qIDEyNSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgkJfSwgLyogMTI2ICovCisJeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCQl9LCAvKiAxMjcgKi8KKwl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJCX0sIC8qIDEyOCAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJCX0sIC8qIDEyOSAqLworCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCQl9LCAvKiAxMzAgKi8KKwl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCQl9LCAvKiAxMzEgKi8KKwl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkIgkJfSwgLyogMTMyICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCQl9LCAvKiAxMzMgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCQl9LCAvKiAxMzQgKi8KKwl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgkJfSwgLyogMTM1ICovCisJeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJCX0sIC8qIDEzNiAqLworCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCQl9LCAvKiAxMzcgKi8KKwl7IDIsCTAsCXN5c19vc2ZfdXRpbWVzLAkJIm9zZl91dGltZXMiCQl9LCAvKiAxMzggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX3NpZ3JldHVybiIJfSwgLyogMTM5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FkanRpbWUiCQl9LCAvKiAxNDAsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgkJfSwgLyogMTQxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2dldGhvc3RpZCIJCX0sIC8qIDE0Miwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NldGhvc3RpZCIJCX0sIC8qIDE0Mywgbm90IGltcGxlbWVudGVkICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJCX0sIC8qIDE0NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCQl9LCAvKiAxNDUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkX2tpbGxwZyIJfSwgLyogMTQ2LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgkJfSwgLyogMTQ3ICovCisJeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCQl9LCAvKiAxNDggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfb2xkcXVvdGEiCQl9LCAvKiAxNDksIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgkJfSwgLyogMTUwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MSIJCX0sIC8qIDE1MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTIiCQl9LCAvKiAxNTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcGlkX2Jsb2NrIgkJfSwgLyogMTUzLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfcGlkX3VuYmxvY2siCX0sIC8qIDE1NCwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NSIJCX0sIC8qIDE1NSAqLworCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgkJfSwgLyogMTU2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NpZ3dhaXRwcmltIgl9LCAvKiAxNTcsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9uZnNzdmMiCQl9LCAvKiAxNTgsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRkaXJlbnRyaWVzIgl9LCAvKiAxNTkgKi8KKwl7IDMsCTAsCW9zZl9zdGF0ZnMsCQkib3NmX3N0YXRmcyIJCX0sIC8qIDE2MCAqLworCXsgMywJMCwJb3NmX2ZzdGF0ZnMsCQkib3NmX2ZzdGF0ZnMiCQl9LCAvKiAxNjEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTYyIgkJfSwgLyogMTYyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FzeW5jaF9kYWVtb24iCX0sIC8qIDE2Mywgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2dldGZoIgkJfSwgLyogMTY0LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJvc2ZfZ2V0ZG9tYWlubmFtZSIJfSwgLyogMTY1ICovCisJeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCQl9LCAvKiAxNjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTY3IgkJfSwgLyogMTY3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OCIJCX0sIC8qIDE2OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9leHBvcnRmcyIJCX0sIC8qIDE2OSwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MCIJCX0sIC8qIDE3MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzEiCQl9LCAvKiAxNzEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTcyIgkJfSwgLyogMTcyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MyIJCX0sIC8qIDE3MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQiCQl9LCAvKiAxNzQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTc1IgkJfSwgLyogMTc1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NiIJCX0sIC8qIDE3NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzciCQl9LCAvKiAxNzcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTc4IgkJfSwgLyogMTc4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OSIJCX0sIC8qIDE3OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODAiCQl9LCAvKiAxODAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfYWx0X3Bsb2NrIgkJfSwgLyogMTgxLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTgyIgkJfSwgLyogMTgyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MyIJCX0sIC8qIDE4MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRtbnQiCQl9LCAvKiAxODQsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUiCQl9LCAvKiAxODUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTg2IgkJfSwgLyogMTg2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2FsdF9zaWdwZW5kaW5nIgl9LCAvKiAxODcsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9hbHRfc2V0c2lkIgl9LCAvKiAxODgsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkiCQl9LCAvKiAxODkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTkwIgkJfSwgLyogMTkwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MSIJCX0sIC8qIDE5MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTIiCQl9LCAvKiAxOTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTkzIgkJfSwgLyogMTkzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NCIJCX0sIC8qIDE5NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTUiCQl9LCAvKiAxOTUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTk2IgkJfSwgLyogMTk2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NyIJCX0sIC8qIDE5NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTgiCQl9LCAvKiAxOTggKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJvc2Zfc3dhcG9uIgkJfSwgLyogMTk5ICovCisJeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCQl9LCAvKiAyMDAgKi8KKwl7IDQsCVRJLAlzeXNfbXNnZ2V0LAkJIm1zZ2dldCIJCX0sIC8qIDIwMSAqLworCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2IgkJfSwgLyogMjAyICovCisJeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCQl9LCAvKiAyMDMgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJCX0sIC8qIDIwNCAqLworCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0IgkJfSwgLyogMjA1ICovCisJeyA0LAlUSSwJcHJpbnRhcmdzLAkJInNlbW9wIgkJCX0sIC8qIDIwNiAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91dHNuYW1lIgkJfSwgLyogMjA3ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJCX0sIC8qIDIwOCAqLworCXsgMywJVEksCXByaW50YXJncywJCSJvc2Zfc2htYXQiCQl9LCAvKiAyMDkgKi8KKwl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJCX0sIC8qIDIxMCAqLworCXsgNCwJVEksCXN5c19zaG1kdCwJCSJzaG1kdCIJCQl9LCAvKiAyMTEgKi8KKwl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJCX0sIC8qIDIxMiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tdmFsaWQiCQl9LCAvKiAyMTMsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRhZGRyZXNzY29uZiIJfSwgLyogMjE0LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXNsZWVwIgkJfSwgLyogMjE1LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbXdha2V1cCIJCX0sIC8qIDIxNiwgbm90IGltcGxlbWVudGVkICovCisJeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQkJfSwgLyogMjE3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NpZ25hbCIJCX0sIC8qIDIxOCwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3V0Y19nZXR0aW1lIgl9LCAvKiAyMTksIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91dGNfYWRqdGltZSIJfSwgLyogMjIwLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIgkJfSwgLyogMjIxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3NlY3VyaXR5IgkJfSwgLyogMjIyLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfa2xvYWRjYWxsIgkJfSwgLyogMjIzLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI0IgkJfSwgLyogMjI0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNSIJCX0sIC8qIDIyNSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYiCQl9LCAvKiAyMjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI3IgkJfSwgLyogMjI3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOCIJCX0sIC8qIDIyOCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkiCQl9LCAvKiAyMjkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjMwIgkJfSwgLyogMjMwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMSIJCX0sIC8qIDIzMSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIiCQl9LCAvKiAyMzIgKi8KKwl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCQl9LCAvKiAyMzMgKi8KKwl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgkJfSwgLyogMjM0ICovCisJeyA1LAkwLAlzeXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJCX0sIC8qIDIzNSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl93YWl0aWQiCQl9LCAvKiAyMzYsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wcmlvY250bHNldCIJfSwgLyogMjM3LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2lnc2VuZHNldCIJfSwgLyogMjM4LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2V0X3NwZWN1bGF0aXZlIgl9LCAvKiAyMzksIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9tc2ZzX3N5c2NhbGwiCX0sIC8qIDI0MCwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX3N5c2luZm8iCQl9LCAvKiAyNDEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfdWFkbWluIgkJfSwgLyogMjQyLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfZnVzZXIiCQl9LCAvKiAyNDMsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wcm9wbGlzdF9zeXNjYWxsIgl9LCAvKiAyNDQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbnRwX2FkanRpbWUiCX0sIC8qIDI0NSwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX250cF9nZXR0aW1lIgl9LCAvKiAyNDYsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9wYXRoY29uZiIJCX0sIC8qIDI0Nywgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ZwYXRoY29uZiIJCX0sIC8qIDI0OCwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OSIJCX0sIC8qIDI0OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl91c3dpdGNoIgkJfSwgLyogMjUwLCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJvc2ZfdXNsZWVwX3RocmVhZCIJfSwgLyogMjUxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2F1ZGNudGwiCQl9LCAvKiAyNTIsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9hdWRnZW4iCQl9LCAvKiAyNTMsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJCX0sIC8qIDI1NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zdWJzeXNpbmZvIgl9LCAvKiAyNTUsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9nZXRzeXNpbmZvIgl9LCAvKiAyNTYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2Zfc2V0c3lzaW5mbyIJfSwgLyogMjU3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2Fmc19zeXNjYWxsIgl9LCAvKiAyNTgsIG5vdCBpbXBsZW1lbnRlZCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm9zZl9zd2FwY3RsIgkJfSwgLyogMjU5LCBub3QgaW1wbGVtZW50ZWQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJvc2ZfbWVtY250bCIJCX0sIC8qIDI2MCwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkib3NmX2ZkYXRhc3luYyIJCX0sIC8qIDI2MSwgbm90IGltcGxlbWVudGVkICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MiIJCX0sIC8qIDI2MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMiCQl9LCAvKiAyNjMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY0IgkJfSwgLyogMjY0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NSIJCX0sIC8qIDI2NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYiCQl9LCAvKiAyNjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY3IgkJfSwgLyogMjY3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OCIJCX0sIC8qIDI2OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkiCQl9LCAvKiAyNjkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgkJfSwgLyogMjcwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MSIJCX0sIC8qIDI3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIiCQl9LCAvKiAyNzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgkJfSwgLyogMjczICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NCIJCX0sIC8qIDI3NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCQl9LCAvKiAyNzUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc2IgkJfSwgLyogMjc2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NyIJCX0sIC8qIDI3NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCQl9LCAvKiAyNzggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc5IgkJfSwgLyogMjc5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MCIJCX0sIC8qIDI4MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCQl9LCAvKiAyODEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgkJfSwgLyogMjgyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MyIJCX0sIC8qIDI4MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQiCQl9LCAvKiAyODQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg1IgkJfSwgLyogMjg1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJCX0sIC8qIDI4NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCQl9LCAvKiAyODcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg4IgkJfSwgLyogMjg4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJCX0sIC8qIDI4OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCQl9LCAvKiAyOTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgkJfSwgLyogMjkxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJCX0sIC8qIDI5MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCQl9LCAvKiAyOTMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk0IgkJfSwgLyogMjk0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJCX0sIC8qIDI5NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCQl9LCAvKiAyOTYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk3IgkJfSwgLyogMjk3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJCX0sIC8qIDI5OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCQl9LCAvKiAyOTkgKi8KKwl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCQl9LCAvKiAzMDAgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJzZXRoYWUiCQl9LCAvKiAzMDEgKi8KKwl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQkJfSwgLyogMzAyICovCisJeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgzMiIJCX0sIC8qIDMwMyAqLworCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJCX0sIC8qIDMwNCAqLworCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgkJfSwgLyogMzA1ICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCQl9LCAvKiAzMDYgKi8KKwl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgkJfSwgLyogMzA3ICovCisJeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCQl9LCAvKiAzMDggKi8KKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMiCX0sIC8qIDMwOSAqLworCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCQl9LCAvKiAzMTAgKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290IgkJfSwgLyogMzExICovCisJeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJCX0sIC8qIDMxMiAqLworCXsgMSwJMCwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCQl9LCAvKiAzMTMgKi8KKwl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCQl9LCAvKiAzMTQgKi8KKwl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCQl9LCAvKiAzMTUgKi8KKwl7IDEsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJCX0sIC8qIDMxNiAqLworCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJCX0sIC8qIDMxNyAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJCX0sIC8qIDMxOCAqLworCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJzeXNjdGwiCQl9LCAvKiAzMTkgKi8KKwl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQkJfSwgLyogMzIwICovCisJeyAxLAkwLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJCX0sIC8qIDMyMSAqLworCXsgMSwJMCwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCQl9LCAvKiAzMjIgKi8KKwl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCQl9LCAvKiAzMjMgKi8KKwl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5IgkJfSwgLyogMzI0ICovCisJeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCQl9LCAvKiAzMjUgKi8KKwl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJCX0sIC8qIDMyNiAqLworCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJCX0sIC8qIDMyNyAqLworCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgkJfSwgLyogMzI4ICovCisJeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgkJfSwgLyogMzI5ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSIJfSwgLyogMzMwICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSIJfSwgLyogMzMxICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIgl9LCAvKiAzMzIgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIiCX0sIC8qIDMzMyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCQl9LCAvKiAzMzQgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4Igl9LCAvKiAzMzUgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIgl9LCAvKiAzMzYgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCIJfSwgLyogMzM3ICovCisJeyA1LAkwLAlzeXNfYWZzX3N5c2NhbGwsCSJhZnNfc3lzY2FsbCIJCX0sIC8qIDMzOCAqLworCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJCX0sIC8qIDMzOSAqLworCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCQl9LCAvKiAzNDAgKi8KKwl7IDUsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgkJfSwgLyogMzQxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJCX0sIC8qIDM0MiAqLworCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCQl9LCAvKiAzNDMgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgkJfSwgLyogMzQ0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3JlYWQiCX0sIC8qIDM0NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInBjaWNvbmZpZ193cml0ZSIJfSwgLyogMzQ2ICovCisJeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgkJfSwgLyogMzQ3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQkJfSwgLyogMzQ4ICovCisJeyA1LAkwLAlzeXNfcHJlYWQsCQkicHJlYWQiCQkJfSwgLyogMzQ5ICovCisJeyA1LAkwLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJCX0sIC8qIDM1MCAqLworCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCQl9LCAvKiAzNTEgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgkJfSwgLyogMzUyICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2siCX0sIC8qIDM1MyAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJCX0sIC8qIDM1NCAqLworCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQiCX0sIC8qIDM1NSAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8iCX0sIC8qIDM1NiAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJCX0sIC8qIDM1NyAqLworCXsgNSwJMCwJc3lzX3NlbGVjdCwJCSJzZWxlY3QiCQl9LCAvKiAzNTggKi8KKwl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCQl9LCAvKiAzNTkgKi8KKwl7IDMsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCQl9LCAvKiAzNjAgKi8KKwl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgkJfSwgLyogMzYxICovCisJeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJCX0sIC8qIDM2MiAqLworCXsgMiwJMCwJc3lzX3V0aW1lcywJCSJ1dGltZXMiCQl9LCAvKiAzNjMgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgkJfSwgLyogMzY0ICovCisJeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJCX0sIC8qIDM2NSAqLworCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4IgkJfSwgLyogMzY2ICovCisJeyAyLAkwLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJCX0sIC8qIDM2NyAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCQl9LCAvKiAzNjggKi8KKwl7IDIsCTAsCXN5c19jYXBzZXQsCQkiY2Fwc2V0IgkJfSwgLyogMzY5ICovCisJeyA0LAkwLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCQl9LCAvKiAzNzAgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJzZXRyZXNnaWQiCQl9LCAvKiAzNzEgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXNnaWQiCQl9LCAvKiAzNzIgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJkaXBjIgkJCX0sIC8qIDM3Mywgbm90IGltcGxlbWVudGVkICovCisJeyAyLAlURiwJcHJpbnRhcmdzLAkJInBpdm90X3Jvb3QiCQl9LCAvKiAzNzQgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJtaW5jb3JlIgkJfSwgLyogMzc1ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX2lvYmFzZSIJfSwgLyogMzc2ICovCisJeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0IgkJfSwgLyogMzc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgkJfSwgLyogMzc4ICovCisJeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJCX0sIC8qIDM3OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAiCQl9LCAvKiAzODAgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCQl9LCAvKiAzODEgKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCQl9LCAvKiAzODIgKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkibHNldHhhdHRyIgkJfSwgLyogMzgzICovCisJeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJCX0sIC8qIDM4NCAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJCX0sIC8qIDM4NSAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJsZ2V0eGF0dHIiCQl9LCAvKiAzODYgKi8KKwl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgkJfSwgLyogMzg3ICovCisJeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCQl9LCAvKiAzODggKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCQl9LCAvKiAzODkgKi8KKwl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCQl9LCAvKiAzOTAgKi8KKwl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MSAqLworCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJImxyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MiAqLworCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJCX0sIC8qIDM5MyAqLworCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJCX0sIC8qIDM5NCAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiCX0sIC8qIDM5NSAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiCX0sIC8qIDM5NiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInR1eGNhbGwiCQl9LCAvKiAzOTcgKi8KKwl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJCX0sIC8qIDM5OCAqLworCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJCX0sIC8qIDM5OSAqLworCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCQl9LCAvKiA0MDAgKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0IgkJfSwgLyogNDAxICovCisJeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJCX0sIC8qIDQwMiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDMiCQl9LCAvKiA0MDMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfNDA0IgkJfSwgLyogNDA0ICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIJCX0sIC8qIDQwNSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIgl9LCAvKiA0MDYgKi8KKwl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCQl9LCAvKiA0MDcgKi8KKwl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCQkiZXBvbGxfY3RsIgkJfSwgLyogNDA4ICovCisJeyA0LAkwLAlzeXNfZXBvbGxfd2FpdCwJCSJlcG9sbF93YWl0IgkJfSwgLyogNDA5ICovCisJeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMiCX0sIC8qIDQxMCAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyIJfSwgLyogNDExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicmVzdGFydF9zeXNjYWxsIgl9LCAvKiA0MTIgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJmYWR2aXNlIgkJfSwgLyogNDEzICovCisJeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgkJfSwgLyogNDE0ICovCisJeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCQl9LCAvKiA0MTUgKi8KKwl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLAkidGltZXJfZ2V0dGltZSIJCX0sIC8qIDQxNiAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIgl9LCAvKiA0MTcgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCQl9LCAvKiA0MTggKi8KKwl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJCX0sIC8qIDQxOSAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgkJfSwgLyogNDIwICovCisJeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgkJfSwgLyogNDIxICovCisJeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLAkiY2xvY2tfbmFub3NsZWVwIgl9LCAvKiA0MjIgKi8KKwl7IDUsCVRJLAlzeXNfc2VtdGltZWRvcCwJCSJzZW10aW1lZG9wIgkJfSwgLyogNDIzICovCisJeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCQl9LCAvKiA0MjQgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJCX0sIC8qIDQyNSAqLworCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCQl9LCAvKiA0MjYgKi8KKwl7IDIsCTAsCXN5c19mc3RhdDY0LAkJImZzdGF0NjQiCQl9LCAvKiA0MjcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJ2c2VydmVyIgkJfSwgLyogNDI4ID8/PyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm1iaW5kIgkJCX0sIC8qIDQyOSA/Pz8gKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJnZXRfbWVtcG9saWN5IgkJfSwgLyogNDMwID8/PyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNldF9tZW1wb2xpY3kiCQl9LCAvKiA0MzEgPz8/ICovCisJeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgkJfSwgLyogNDMyICovCisJeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJCX0sIC8qIDQzMyAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJCX0sIC8qIDQzNCAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIJfSwgLyogNDM1ICovCisJeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJCX0sIC8qIDQzNiAqLworCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgkJfSwgLyogNDM3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkid2FpdGlkIgkJfSwgLyogNDM4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYWRkX2tleSIJCX0sIC8qIDQzOSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJInJlcXVlc3Rfa2V5IgkJfSwgLyogNDQwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkia2V5Y3RsIgkJfSwgLyogNDQxICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX3NldCIJCX0sIC8qIDQ0MiAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJImlvcHJpb19nZXQiCQl9LCAvKiA0NDMgKi8KKwl7IDAsCVRELAlwcmludGFyZ3MsCQkiaW5vdGlmeV9pbml0IgkJfSwgLyogNDQ0ICovCisJeyAzLAlURCwJc3lzX2lub3RpZnlfYWRkX3dhdGNoLAkiaW5vdGlmeV9hZGRfd2F0Y2giCX0sIC8qIDQ0NSAqLworCXsgMiwJVEQsCXN5c19pbm90aWZ5X3JtX3dhdGNoLAkiaW5vdGlmeV9ybV93YXRjaCIJfSwgLyogNDQ2ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvZHVtbXkuaCBiL3N0cmFjZS9saW51eC9kdW1teS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NmNkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvZHVtbXkuaApAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogZHVtbXkuaCx2IDEuMTcgMjAwNC8wNC8xNiAyMTo0ODo0NCByb2xhbmQgRXhwICQKKyAqLworCisvKiBzdGlsbCB1bmZpbmlzaGVkICovCisjZGVmaW5lCXN5c19pb3Blcm0JCXByaW50YXJncworI2RlZmluZQlzeXNfc3lzbG9nCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2lvcGwJCXByaW50YXJncworI2RlZmluZQlzeXNfdm04Nm9sZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRfa2VybmVsX3N5bXMJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19iZGZsdXNoCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3N5c2ZzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2Fmc19zeXNjYWxsCQlwcmludGFyZ3MKKworLyogbWFjaGluZS1zcGVjaWZpYyAqLworI2lmbmRlZiBJMzg2CisjZGVmaW5lCXN5c19tb2RpZnlfbGR0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2dldF90aHJlYWRfYXJlYQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NldF90aHJlYWRfYXJlYQlwcmludGFyZ3MKKyNlbmRpZgorCisjZGVmaW5lIHN5c19zY2hlZF95aWVsZAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4IHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluCisjZGVmaW5lIHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgcHJpbnRhcmdzCisKKy8qIGxpa2UgYW5vdGhlciBjYWxsICovCisjZGVmaW5lCXN5c191c2VsaWIJCXN5c19jaGRpcgorI2RlZmluZQlzeXNfdW1vdW50CQlzeXNfY2hkaXIKKyNkZWZpbmUJc3lzX3N3YXBvbgkJc3lzX2NoZGlyCisjZGVmaW5lCXN5c19zd2Fwb2ZmCQlzeXNfY2hkaXIKKyNkZWZpbmUJc3lzX2RlbGV0ZV9tb2R1bGUJc3lzX2NoZGlyCisjZGVmaW5lCXN5c19mY2hkaXIJCXN5c19jbG9zZQorI2RlZmluZQlzeXNfc2V0ZnN1aWQJCXN5c19zZXR1aWQKKyNkZWZpbmUJc3lzX3NldGZzZ2lkCQlzeXNfc2V0Z2lkCisjZGVmaW5lIHN5c19uYW5vc2xlZXAJCXN5c19hZGp0aW1lCisjZGVmaW5lCXN5c19hY2N0CQlzeXNfY2hkaXIKKyNkZWZpbmUgc3lzX2ZkYXRhc3luYwkJc3lzX2Nsb3NlCisjZGVmaW5lIHN5c19tbG9jawkJc3lzX211bm1hcAorI2RlZmluZSBzeXNfbXVubG9jawkJc3lzX211bm1hcAorI2RlZmluZSBzeXNfY2xvY2tfZ2V0cmVzCXN5c19jbG9ja19nZXR0aW1lCisjZGVmaW5lIHN5c19tcV91bmxpbmsJCXN5c191bmxpbmsKKworLyogcHJpbnRhcmdzIGRvZXMgdGhlIHJpZ2h0IHRoaW5nICovCisjZGVmaW5lCXN5c19zZXR1cAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRwaWQJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0dWlkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3BhdXNlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3N5bmMJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0Z2lkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldGV1aWQJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0ZWdpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRwcGlkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldHBncnAJCXByaW50YXJncworI2RlZmluZQlzeXNfc2V0c2lkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3ZoYW5ndXAJCXByaW50YXJncworI2RlZmluZQlzeXNfaWRsZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRwZ2lkCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX211bmxvY2thbGwJCXByaW50YXJncworI2RlZmluZSBzeXNfdGltZXJfZ2V0b3ZlcnJ1bglwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3RpbWVyX2RlbGV0ZQlwcmludGFyZ3MKKworLyogc3ViY2FsbCBlbnRyeSBwb2ludHMgKi8KKyNkZWZpbmUJc3lzX3NvY2tldGNhbGwJCXByaW50YXJncworI2RlZmluZQlzeXNfaXBjCQkJcHJpbnRhcmdzCisKKy8qIHVuaW1wbGVtZW50ZWQgKi8KKyNkZWZpbmUJc3lzX3N0dHkJCXByaW50YXJncworI2RlZmluZQlzeXNfZ3R0eQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19mdGltZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19wcm9mCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3BoeXMJCXByaW50YXJncworI2RlZmluZQlzeXNfbG9jawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19tcHgJCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3VsaW1pdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19wcm9maWwJCXByaW50YXJncworI2RlZmluZQlzeXNfdXN0YXQJCXByaW50YXJncworI2RlZmluZQlzeXNfYnJlYWsJCXByaW50YXJncworCisvKiBkZXByZWNhdGVkICovCisjZGVmaW5lCXN5c19vbGR1bmFtZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19vbGRvbGR1bmFtZQkJcHJpbnRhcmdzCisKKy8qIG5vIGxpYnJhcnkgc3VwcG9ydCAqLworI2lmbmRlZiBIQVZFX1NFTkRNU0cKKyNkZWZpbmUgc3lzX3NlbmRtc2cJCXByaW50YXJncworI2RlZmluZSBzeXNfcmVjdm1zZwkJcHJpbnRhcmdzCisjZW5kaWYKKworI2lmbmRlZiBTWVNfZ2V0cG1zZworI2RlZmluZSBzeXNfZ2V0cG1zZwkJcHJpbnRhcmdzCisjZW5kaWYKKyNpZm5kZWYgU1lTX3B1dHBtc2cKKyNkZWZpbmUgc3lzX3B1dHBtc2cJCXByaW50YXJncworI2VuZGlmCisKKyNpZm5kZWYgSEFWRV9TVFJVQ1RfX19PTERfS0VSTkVMX1NUQVQKKyNkZWZpbmUgc3lzX29sZHN0YXQJCXByaW50YXJncworI2RlZmluZSBzeXNfb2xkZnN0YXQJCXByaW50YXJncworI2RlZmluZSBzeXNfb2xkbHN0YXQJCXByaW50YXJncworI2VuZGlmCisKKyNpZiBET05FCisjZGVmaW5lIHN5c19vbGRzZWxlY3QJCXByaW50YXJncworI2RlZmluZQlzeXNfbXN5bmMJCXByaW50YXJncworI2RlZmluZQlzeXNfZmxvY2sJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0ZGVudHMJCXByaW50YXJncworI2RlZmluZQlzeXNfc3RpbWUJCXByaW50YXJncworI2RlZmluZQlzeXNfdGltZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c190aW1lcwkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19tb3VudAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19uaWNlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX21wcm90ZWN0CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NpZ3Byb2NtYXNrCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2FkanRpbWV4CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3N5c2luZm8JCXByaW50YXJncworI2RlZmluZQlzeXNfaXBjCQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRkb21haW5uYW1lCXByaW50YXJncworI2RlZmluZQlzeXNfc3RhdGZzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2ZzdGF0ZnMJCXByaW50YXJncworI2RlZmluZQlzeXNfcHRyYWNlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NpZ3JldHVybgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19mc3luYwkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19hbGFybQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zb2NrZXRjYWxsCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NpZ3N1c3BlbmQJCXByaW50YXJncworI2RlZmluZQlzeXNfdXRpbWUJCXByaW50YXJncworI2RlZmluZQlzeXNfYnJrCQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19tbWFwCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX211bm1hcAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZWxlY3QJCXByaW50YXJncworI2RlZmluZQlzeXNfc2V0dWlkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldGdpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRyZXVpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXRyZWdpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRncm91cHMJCXByaW50YXJncworI2RlZmluZQlzeXNfc2V0Z3JvdXBzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldHJsaW1pdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRybGltaXQJCXByaW50YXJncworI2RlZmluZQlzeXNfZ2V0cnVzYWdlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2dldHByaW9yaXR5CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldHByaW9yaXR5CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldHBnaWQJCXByaW50YXJncworI2RlZmluZQlzeXNfYWNjZXNzCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldGhvc3RuYW1lCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3JlYWRkaXIJCXByaW50YXJncworI2RlZmluZQlzeXNfd2FpdHBpZAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c193YWl0NAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19leGVjdmUJCXByaW50YXJncworI2RlZmluZQlzeXNfZm9yawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c191bmFtZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19waXBlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NpZ2dldG1hc2sJCXByaW50YXJncworI2RlZmluZQlzeXNfc2lnc2V0bWFzawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19leGl0CQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2tpbGwJCXByaW50YXJncworI2RlZmluZQlzeXNfc2lnbmFsCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NpZ2FjdGlvbgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zaWdwZW5kaW5nCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2ZjbnRsCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2R1cAkJCXByaW50YXJncworI2RlZmluZQlzeXNfZHVwMgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19jbG9zZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19pb2N0bAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19yZWFkCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3dyaXRlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX29wZW4JCXByaW50YXJncworI2RlZmluZQlzeXNfY3JlYXQJCXByaW50YXJncworI2RlZmluZQlzeXNfbGluawkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c191bmxpbmsJCXByaW50YXJncworI2RlZmluZQlzeXNfY2hkaXIJCXByaW50YXJncworI2RlZmluZQlzeXNfbWtub2QJCXByaW50YXJncworI2RlZmluZQlzeXNfY2htb2QJCXByaW50YXJncworI2RlZmluZQlzeXNfY2hvd24JCXByaW50YXJncworI2RlZmluZQlzeXNfbHNlZWsJCXByaW50YXJncworI2RlZmluZQlzeXNfcmVuYW1lCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX21rZGlyCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3JtZGlyCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3VtYXNrCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2Nocm9vdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXR0aW1lb2ZkYXkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zZXR0aW1lb2ZkYXkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19zeW1saW5rCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3JlYWRsaW5rCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3RydW5jYXRlCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2Z0cnVuY2F0ZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19mY2htb2QJCXByaW50YXJncworI2RlZmluZQlzeXNfZmNob3duCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX3NldGl0aW1lcgkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19nZXRpdGltZXIJCXByaW50YXJncworI2RlZmluZQlzeXNfc3RhdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19sc3RhdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19mc3RhdAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19wZXJzb25hbGl0eQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19wb2xsCQlwcmludGFyZ3MKKyNkZWZpbmUJc3lzX2NyZWF0ZV9tb2R1bGUJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19pbml0X21vZHVsZQkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19xdW90YWN0bAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19tbG9ja2FsbAkJcHJpbnRhcmdzCisjZGVmaW5lCXN5c19yZWJvb3QJCXByaW50YXJncworI2VuZGlmCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9lcnJub2VudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4YjJhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvZXJybm9lbnQuaApAQCAtMCwwICsxLDUyOSBAQAorCSJFUlJOT18wIiwgLyogMCAqLworCSJFUEVSTSIsIC8qIDEgKi8KKwkiRU5PRU5UIiwgLyogMiAqLworCSJFU1JDSCIsIC8qIDMgKi8KKwkiRUlOVFIiLCAvKiA0ICovCisJIkVJTyIsIC8qIDUgKi8KKwkiRU5YSU8iLCAvKiA2ICovCisJIkUyQklHIiwgLyogNyAqLworCSJFTk9FWEVDIiwgLyogOCAqLworCSJFQkFERiIsIC8qIDkgKi8KKwkiRUNISUxEIiwgLyogMTAgKi8KKwkiRUFHQUlOIiwgLyogMTEgKi8KKwkiRU5PTUVNIiwgLyogMTIgKi8KKwkiRUFDQ0VTIiwgLyogMTMgKi8KKwkiRUZBVUxUIiwgLyogMTQgKi8KKwkiRU5PVEJMSyIsIC8qIDE1ICovCisJIkVCVVNZIiwgLyogMTYgKi8KKwkiRUVYSVNUIiwgLyogMTcgKi8KKwkiRVhERVYiLCAvKiAxOCAqLworCSJFTk9ERVYiLCAvKiAxOSAqLworCSJFTk9URElSIiwgLyogMjAgKi8KKwkiRUlTRElSIiwgLyogMjEgKi8KKwkiRUlOVkFMIiwgLyogMjIgKi8KKwkiRU5GSUxFIiwgLyogMjMgKi8KKwkiRU1GSUxFIiwgLyogMjQgKi8KKwkiRU5PVFRZIiwgLyogMjUgKi8KKwkiRVRYVEJTWSIsIC8qIDI2ICovCisJIkVGQklHIiwgLyogMjcgKi8KKwkiRU5PU1BDIiwgLyogMjggKi8KKwkiRVNQSVBFIiwgLyogMjkgKi8KKwkiRVJPRlMiLCAvKiAzMCAqLworCSJFTUxJTksiLCAvKiAzMSAqLworCSJFUElQRSIsIC8qIDMyICovCisJIkVET00iLCAvKiAzMyAqLworCSJFUkFOR0UiLCAvKiAzNCAqLworCSJFREVBRExLIiwgLyogMzUgKi8KKwkiRU5BTUVUT09MT05HIiwgLyogMzYgKi8KKwkiRU5PTENLIiwgLyogMzcgKi8KKwkiRU5PU1lTIiwgLyogMzggKi8KKwkiRU5PVEVNUFRZIiwgLyogMzkgKi8KKwkiRUxPT1AiLCAvKiA0MCAqLworCSJFUlJOT180MSIsIC8qIDQxICovCisJIkVOT01TRyIsIC8qIDQyICovCisJIkVJRFJNIiwgLyogNDMgKi8KKwkiRUNIUk5HIiwgLyogNDQgKi8KKwkiRUwyTlNZTkMiLCAvKiA0NSAqLworCSJFTDNITFQiLCAvKiA0NiAqLworCSJFTDNSU1QiLCAvKiA0NyAqLworCSJFTE5STkciLCAvKiA0OCAqLworCSJFVU5BVENIIiwgLyogNDkgKi8KKwkiRU5PQ1NJIiwgLyogNTAgKi8KKwkiRUwySExUIiwgLyogNTEgKi8KKwkiRUJBREUiLCAvKiA1MiAqLworCSJFQkFEUiIsIC8qIDUzICovCisJIkVYRlVMTCIsIC8qIDU0ICovCisJIkVOT0FOTyIsIC8qIDU1ICovCisJIkVCQURSUUMiLCAvKiA1NiAqLworCSJFQkFEU0xUIiwgLyogNTcgKi8KKwkiRVJSTk9fNTgiLCAvKiA1OCAqLworCSJFQkZPTlQiLCAvKiA1OSAqLworCSJFTk9TVFIiLCAvKiA2MCAqLworCSJFTk9EQVRBIiwgLyogNjEgKi8KKwkiRVRJTUUiLCAvKiA2MiAqLworCSJFTk9TUiIsIC8qIDYzICovCisJIkVOT05FVCIsIC8qIDY0ICovCisJIkVOT1BLRyIsIC8qIDY1ICovCisJIkVSRU1PVEUiLCAvKiA2NiAqLworCSJFTk9MSU5LIiwgLyogNjcgKi8KKwkiRUFEViIsIC8qIDY4ICovCisJIkVTUk1OVCIsIC8qIDY5ICovCisJIkVDT01NIiwgLyogNzAgKi8KKwkiRVBST1RPIiwgLyogNzEgKi8KKwkiRU1VTFRJSE9QIiwgLyogNzIgKi8KKwkiRURPVERPVCIsIC8qIDczICovCisJIkVCQURNU0ciLCAvKiA3NCAqLworCSJFT1ZFUkZMT1ciLCAvKiA3NSAqLworCSJFTk9UVU5JUSIsIC8qIDc2ICovCisJIkVCQURGRCIsIC8qIDc3ICovCisJIkVSRU1DSEciLCAvKiA3OCAqLworCSJFTElCQUNDIiwgLyogNzkgKi8KKwkiRUxJQkJBRCIsIC8qIDgwICovCisJIkVMSUJTQ04iLCAvKiA4MSAqLworCSJFTElCTUFYIiwgLyogODIgKi8KKwkiRUxJQkVYRUMiLCAvKiA4MyAqLworCSJFSUxTRVEiLCAvKiA4NCAqLworCSJFUkVTVEFSVCIsIC8qIDg1ICovCisJIkVTVFJQSVBFIiwgLyogODYgKi8KKwkiRVVTRVJTIiwgLyogODcgKi8KKwkiRU5PVFNPQ0siLCAvKiA4OCAqLworCSJFREVTVEFERFJSRVEiLCAvKiA4OSAqLworCSJFTVNHU0laRSIsIC8qIDkwICovCisJIkVQUk9UT1RZUEUiLCAvKiA5MSAqLworCSJFTk9QUk9UT09QVCIsIC8qIDkyICovCisJIkVQUk9UT05PU1VQUE9SVCIsIC8qIDkzICovCisJIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDk0ICovCisJIkVPUE5PVFNVUFAiLCAvKiA5NSAqLworCSJFUEZOT1NVUFBPUlQiLCAvKiA5NiAqLworCSJFQUZOT1NVUFBPUlQiLCAvKiA5NyAqLworCSJFQUREUklOVVNFIiwgLyogOTggKi8KKwkiRUFERFJOT1RBVkFJTCIsIC8qIDk5ICovCisJIkVORVRET1dOIiwgLyogMTAwICovCisJIkVORVRVTlJFQUNIIiwgLyogMTAxICovCisJIkVORVRSRVNFVCIsIC8qIDEwMiAqLworCSJFQ09OTkFCT1JURUQiLCAvKiAxMDMgKi8KKwkiRUNPTk5SRVNFVCIsIC8qIDEwNCAqLworCSJFTk9CVUZTIiwgLyogMTA1ICovCisJIkVJU0NPTk4iLCAvKiAxMDYgKi8KKwkiRU5PVENPTk4iLCAvKiAxMDcgKi8KKwkiRVNIVVRET1dOIiwgLyogMTA4ICovCisJIkVUT09NQU5ZUkVGUyIsIC8qIDEwOSAqLworCSJFVElNRURPVVQiLCAvKiAxMTAgKi8KKwkiRUNPTk5SRUZVU0VEIiwgLyogMTExICovCisJIkVIT1NURE9XTiIsIC8qIDExMiAqLworCSJFSE9TVFVOUkVBQ0giLCAvKiAxMTMgKi8KKwkiRUFMUkVBRFkiLCAvKiAxMTQgKi8KKwkiRUlOUFJPR1JFU1MiLCAvKiAxMTUgKi8KKwkiRVNUQUxFIiwgLyogMTE2ICovCisJIkVVQ0xFQU4iLCAvKiAxMTcgKi8KKwkiRU5PVE5BTSIsIC8qIDExOCAqLworCSJFTkFWQUlMIiwgLyogMTE5ICovCisJIkVJU05BTSIsIC8qIDEyMCAqLworCSJFUkVNT1RFSU8iLCAvKiAxMjEgKi8KKwkiRURRVU9UIiwgLyogMTIyICovCisJIkVOT01FRElVTSIsIC8qIDEyMyAqLworCSJFTUVESVVNVFlQRSIsIC8qIDEyNCAqLworCSJFUlJOT18xMjUiLCAvKiAxMjUgKi8KKwkiRVJSTk9fMTI2IiwgLyogMTI2ICovCisJIkVSUk5PXzEyNyIsIC8qIDEyNyAqLworCSJFUlJOT18xMjgiLCAvKiAxMjggKi8KKwkiRVJSTk9fMTI5IiwgLyogMTI5ICovCisJIkVSUk5PXzEzMCIsIC8qIDEzMCAqLworCSJFUlJOT18xMzEiLCAvKiAxMzEgKi8KKwkiRVJSTk9fMTMyIiwgLyogMTMyICovCisJIkVSUk5PXzEzMyIsIC8qIDEzMyAqLworCSJFUlJOT18xMzQiLCAvKiAxMzQgKi8KKwkiRVJSTk9fMTM1IiwgLyogMTM1ICovCisJIkVSUk5PXzEzNiIsIC8qIDEzNiAqLworCSJFUlJOT18xMzciLCAvKiAxMzcgKi8KKwkiRVJSTk9fMTM4IiwgLyogMTM4ICovCisJIkVSUk5PXzEzOSIsIC8qIDEzOSAqLworCSJFUlJOT18xNDAiLCAvKiAxNDAgKi8KKwkiRVJSTk9fMTQxIiwgLyogMTQxICovCisJIkVSUk5PXzE0MiIsIC8qIDE0MiAqLworCSJFUlJOT18xNDMiLCAvKiAxNDMgKi8KKwkiRVJSTk9fMTQ0IiwgLyogMTQ0ICovCisJIkVSUk5PXzE0NSIsIC8qIDE0NSAqLworCSJFUlJOT18xNDYiLCAvKiAxNDYgKi8KKwkiRVJSTk9fMTQ3IiwgLyogMTQ3ICovCisJIkVSUk5PXzE0OCIsIC8qIDE0OCAqLworCSJFUlJOT18xNDkiLCAvKiAxNDkgKi8KKwkiRVJSTk9fMTUwIiwgLyogMTUwICovCisJIkVSUk5PXzE1MSIsIC8qIDE1MSAqLworCSJFUlJOT18xNTIiLCAvKiAxNTIgKi8KKwkiRVJSTk9fMTUzIiwgLyogMTUzICovCisJIkVSUk5PXzE1NCIsIC8qIDE1NCAqLworCSJFUlJOT18xNTUiLCAvKiAxNTUgKi8KKwkiRVJSTk9fMTU2IiwgLyogMTU2ICovCisJIkVSUk5PXzE1NyIsIC8qIDE1NyAqLworCSJFUlJOT18xNTgiLCAvKiAxNTggKi8KKwkiRVJSTk9fMTU5IiwgLyogMTU5ICovCisJIkVSUk5PXzE2MCIsIC8qIDE2MCAqLworCSJFUlJOT18xNjEiLCAvKiAxNjEgKi8KKwkiRVJSTk9fMTYyIiwgLyogMTYyICovCisJIkVSUk5PXzE2MyIsIC8qIDE2MyAqLworCSJFUlJOT18xNjQiLCAvKiAxNjQgKi8KKwkiRVJSTk9fMTY1IiwgLyogMTY1ICovCisJIkVSUk5PXzE2NiIsIC8qIDE2NiAqLworCSJFUlJOT18xNjciLCAvKiAxNjcgKi8KKwkiRVJSTk9fMTY4IiwgLyogMTY4ICovCisJIkVSUk5PXzE2OSIsIC8qIDE2OSAqLworCSJFUlJOT18xNzAiLCAvKiAxNzAgKi8KKwkiRVJSTk9fMTcxIiwgLyogMTcxICovCisJIkVSUk5PXzE3MiIsIC8qIDE3MiAqLworCSJFUlJOT18xNzMiLCAvKiAxNzMgKi8KKwkiRVJSTk9fMTc0IiwgLyogMTc0ICovCisJIkVSUk5PXzE3NSIsIC8qIDE3NSAqLworCSJFUlJOT18xNzYiLCAvKiAxNzYgKi8KKwkiRVJSTk9fMTc3IiwgLyogMTc3ICovCisJIkVSUk5PXzE3OCIsIC8qIDE3OCAqLworCSJFUlJOT18xNzkiLCAvKiAxNzkgKi8KKwkiRVJSTk9fMTgwIiwgLyogMTgwICovCisJIkVSUk5PXzE4MSIsIC8qIDE4MSAqLworCSJFUlJOT18xODIiLCAvKiAxODIgKi8KKwkiRVJSTk9fMTgzIiwgLyogMTgzICovCisJIkVSUk5PXzE4NCIsIC8qIDE4NCAqLworCSJFUlJOT18xODUiLCAvKiAxODUgKi8KKwkiRVJSTk9fMTg2IiwgLyogMTg2ICovCisJIkVSUk5PXzE4NyIsIC8qIDE4NyAqLworCSJFUlJOT18xODgiLCAvKiAxODggKi8KKwkiRVJSTk9fMTg5IiwgLyogMTg5ICovCisJIkVSUk5PXzE5MCIsIC8qIDE5MCAqLworCSJFUlJOT18xOTEiLCAvKiAxOTEgKi8KKwkiRVJSTk9fMTkyIiwgLyogMTkyICovCisJIkVSUk5PXzE5MyIsIC8qIDE5MyAqLworCSJFUlJOT18xOTQiLCAvKiAxOTQgKi8KKwkiRVJSTk9fMTk1IiwgLyogMTk1ICovCisJIkVSUk5PXzE5NiIsIC8qIDE5NiAqLworCSJFUlJOT18xOTciLCAvKiAxOTcgKi8KKwkiRVJSTk9fMTk4IiwgLyogMTk4ICovCisJIkVSUk5PXzE5OSIsIC8qIDE5OSAqLworCSJFUlJOT18yMDAiLCAvKiAyMDAgKi8KKwkiRVJSTk9fMjAxIiwgLyogMjAxICovCisJIkVSUk5PXzIwMiIsIC8qIDIwMiAqLworCSJFUlJOT18yMDMiLCAvKiAyMDMgKi8KKwkiRVJSTk9fMjA0IiwgLyogMjA0ICovCisJIkVSUk5PXzIwNSIsIC8qIDIwNSAqLworCSJFUlJOT18yMDYiLCAvKiAyMDYgKi8KKwkiRVJSTk9fMjA3IiwgLyogMjA3ICovCisJIkVSUk5PXzIwOCIsIC8qIDIwOCAqLworCSJFUlJOT18yMDkiLCAvKiAyMDkgKi8KKwkiRVJSTk9fMjEwIiwgLyogMjEwICovCisJIkVSUk5PXzIxMSIsIC8qIDIxMSAqLworCSJFUlJOT18yMTIiLCAvKiAyMTIgKi8KKwkiRVJSTk9fMjEzIiwgLyogMjEzICovCisJIkVSUk5PXzIxNCIsIC8qIDIxNCAqLworCSJFUlJOT18yMTUiLCAvKiAyMTUgKi8KKwkiRVJSTk9fMjE2IiwgLyogMjE2ICovCisJIkVSUk5PXzIxNyIsIC8qIDIxNyAqLworCSJFUlJOT18yMTgiLCAvKiAyMTggKi8KKwkiRVJSTk9fMjE5IiwgLyogMjE5ICovCisJIkVSUk5PXzIyMCIsIC8qIDIyMCAqLworCSJFUlJOT18yMjEiLCAvKiAyMjEgKi8KKwkiRVJSTk9fMjIyIiwgLyogMjIyICovCisJIkVSUk5PXzIyMyIsIC8qIDIyMyAqLworCSJFUlJOT18yMjQiLCAvKiAyMjQgKi8KKwkiRVJSTk9fMjI1IiwgLyogMjI1ICovCisJIkVSUk5PXzIyNiIsIC8qIDIyNiAqLworCSJFUlJOT18yMjciLCAvKiAyMjcgKi8KKwkiRVJSTk9fMjI4IiwgLyogMjI4ICovCisJIkVSUk5PXzIyOSIsIC8qIDIyOSAqLworCSJFUlJOT18yMzAiLCAvKiAyMzAgKi8KKwkiRVJSTk9fMjMxIiwgLyogMjMxICovCisJIkVSUk5PXzIzMiIsIC8qIDIzMiAqLworCSJFUlJOT18yMzMiLCAvKiAyMzMgKi8KKwkiRVJSTk9fMjM0IiwgLyogMjM0ICovCisJIkVSUk5PXzIzNSIsIC8qIDIzNSAqLworCSJFUlJOT18yMzYiLCAvKiAyMzYgKi8KKwkiRVJSTk9fMjM3IiwgLyogMjM3ICovCisJIkVSUk5PXzIzOCIsIC8qIDIzOCAqLworCSJFUlJOT18yMzkiLCAvKiAyMzkgKi8KKwkiRVJSTk9fMjQwIiwgLyogMjQwICovCisJIkVSUk5PXzI0MSIsIC8qIDI0MSAqLworCSJFUlJOT18yNDIiLCAvKiAyNDIgKi8KKwkiRVJSTk9fMjQzIiwgLyogMjQzICovCisJIkVSUk5PXzI0NCIsIC8qIDI0NCAqLworCSJFUlJOT18yNDUiLCAvKiAyNDUgKi8KKwkiRVJSTk9fMjQ2IiwgLyogMjQ2ICovCisJIkVSUk5PXzI0NyIsIC8qIDI0NyAqLworCSJFUlJOT18yNDgiLCAvKiAyNDggKi8KKwkiRVJSTk9fMjQ5IiwgLyogMjQ5ICovCisJIkVSUk5PXzI1MCIsIC8qIDI1MCAqLworCSJFUlJOT18yNTEiLCAvKiAyNTEgKi8KKwkiRVJSTk9fMjUyIiwgLyogMjUyICovCisJIkVSUk5PXzI1MyIsIC8qIDI1MyAqLworCSJFUlJOT18yNTQiLCAvKiAyNTQgKi8KKwkiRVJSTk9fMjU1IiwgLyogMjU1ICovCisJIkVSUk5PXzI1NiIsIC8qIDI1NiAqLworCSJFUlJOT18yNTciLCAvKiAyNTcgKi8KKwkiRVJSTk9fMjU4IiwgLyogMjU4ICovCisJIkVSUk5PXzI1OSIsIC8qIDI1OSAqLworCSJFUlJOT18yNjAiLCAvKiAyNjAgKi8KKwkiRVJSTk9fMjYxIiwgLyogMjYxICovCisJIkVSUk5PXzI2MiIsIC8qIDI2MiAqLworCSJFUlJOT18yNjMiLCAvKiAyNjMgKi8KKwkiRVJSTk9fMjY0IiwgLyogMjY0ICovCisJIkVSUk5PXzI2NSIsIC8qIDI2NSAqLworCSJFUlJOT18yNjYiLCAvKiAyNjYgKi8KKwkiRVJSTk9fMjY3IiwgLyogMjY3ICovCisJIkVSUk5PXzI2OCIsIC8qIDI2OCAqLworCSJFUlJOT18yNjkiLCAvKiAyNjkgKi8KKwkiRVJSTk9fMjcwIiwgLyogMjcwICovCisJIkVSUk5PXzI3MSIsIC8qIDI3MSAqLworCSJFUlJOT18yNzIiLCAvKiAyNzIgKi8KKwkiRVJSTk9fMjczIiwgLyogMjczICovCisJIkVSUk5PXzI3NCIsIC8qIDI3NCAqLworCSJFUlJOT18yNzUiLCAvKiAyNzUgKi8KKwkiRVJSTk9fMjc2IiwgLyogMjc2ICovCisJIkVSUk5PXzI3NyIsIC8qIDI3NyAqLworCSJFUlJOT18yNzgiLCAvKiAyNzggKi8KKwkiRVJSTk9fMjc5IiwgLyogMjc5ICovCisJIkVSUk5PXzI4MCIsIC8qIDI4MCAqLworCSJFUlJOT18yODEiLCAvKiAyODEgKi8KKwkiRVJSTk9fMjgyIiwgLyogMjgyICovCisJIkVSUk5PXzI4MyIsIC8qIDI4MyAqLworCSJFUlJOT18yODQiLCAvKiAyODQgKi8KKwkiRVJSTk9fMjg1IiwgLyogMjg1ICovCisJIkVSUk5PXzI4NiIsIC8qIDI4NiAqLworCSJFUlJOT18yODciLCAvKiAyODcgKi8KKwkiRVJSTk9fMjg4IiwgLyogMjg4ICovCisJIkVSUk5PXzI4OSIsIC8qIDI4OSAqLworCSJFUlJOT18yOTAiLCAvKiAyOTAgKi8KKwkiRVJSTk9fMjkxIiwgLyogMjkxICovCisJIkVSUk5PXzI5MiIsIC8qIDI5MiAqLworCSJFUlJOT18yOTMiLCAvKiAyOTMgKi8KKwkiRVJSTk9fMjk0IiwgLyogMjk0ICovCisJIkVSUk5PXzI5NSIsIC8qIDI5NSAqLworCSJFUlJOT18yOTYiLCAvKiAyOTYgKi8KKwkiRVJSTk9fMjk3IiwgLyogMjk3ICovCisJIkVSUk5PXzI5OCIsIC8qIDI5OCAqLworCSJFUlJOT18yOTkiLCAvKiAyOTkgKi8KKwkiRVJSTk9fMzAwIiwgLyogMzAwICovCisJIkVSUk5PXzMwMSIsIC8qIDMwMSAqLworCSJFUlJOT18zMDIiLCAvKiAzMDIgKi8KKwkiRVJSTk9fMzAzIiwgLyogMzAzICovCisJIkVSUk5PXzMwNCIsIC8qIDMwNCAqLworCSJFUlJOT18zMDUiLCAvKiAzMDUgKi8KKwkiRVJSTk9fMzA2IiwgLyogMzA2ICovCisJIkVSUk5PXzMwNyIsIC8qIDMwNyAqLworCSJFUlJOT18zMDgiLCAvKiAzMDggKi8KKwkiRVJSTk9fMzA5IiwgLyogMzA5ICovCisJIkVSUk5PXzMxMCIsIC8qIDMxMCAqLworCSJFUlJOT18zMTEiLCAvKiAzMTEgKi8KKwkiRVJSTk9fMzEyIiwgLyogMzEyICovCisJIkVSUk5PXzMxMyIsIC8qIDMxMyAqLworCSJFUlJOT18zMTQiLCAvKiAzMTQgKi8KKwkiRVJSTk9fMzE1IiwgLyogMzE1ICovCisJIkVSUk5PXzMxNiIsIC8qIDMxNiAqLworCSJFUlJOT18zMTciLCAvKiAzMTcgKi8KKwkiRVJSTk9fMzE4IiwgLyogMzE4ICovCisJIkVSUk5PXzMxOSIsIC8qIDMxOSAqLworCSJFUlJOT18zMjAiLCAvKiAzMjAgKi8KKwkiRVJSTk9fMzIxIiwgLyogMzIxICovCisJIkVSUk5PXzMyMiIsIC8qIDMyMiAqLworCSJFUlJOT18zMjMiLCAvKiAzMjMgKi8KKwkiRVJSTk9fMzI0IiwgLyogMzI0ICovCisJIkVSUk5PXzMyNSIsIC8qIDMyNSAqLworCSJFUlJOT18zMjYiLCAvKiAzMjYgKi8KKwkiRVJSTk9fMzI3IiwgLyogMzI3ICovCisJIkVSUk5PXzMyOCIsIC8qIDMyOCAqLworCSJFUlJOT18zMjkiLCAvKiAzMjkgKi8KKwkiRVJSTk9fMzMwIiwgLyogMzMwICovCisJIkVSUk5PXzMzMSIsIC8qIDMzMSAqLworCSJFUlJOT18zMzIiLCAvKiAzMzIgKi8KKwkiRVJSTk9fMzMzIiwgLyogMzMzICovCisJIkVSUk5PXzMzNCIsIC8qIDMzNCAqLworCSJFUlJOT18zMzUiLCAvKiAzMzUgKi8KKwkiRVJSTk9fMzM2IiwgLyogMzM2ICovCisJIkVSUk5PXzMzNyIsIC8qIDMzNyAqLworCSJFUlJOT18zMzgiLCAvKiAzMzggKi8KKwkiRVJSTk9fMzM5IiwgLyogMzM5ICovCisJIkVSUk5PXzM0MCIsIC8qIDM0MCAqLworCSJFUlJOT18zNDEiLCAvKiAzNDEgKi8KKwkiRVJSTk9fMzQyIiwgLyogMzQyICovCisJIkVSUk5PXzM0MyIsIC8qIDM0MyAqLworCSJFUlJOT18zNDQiLCAvKiAzNDQgKi8KKwkiRVJSTk9fMzQ1IiwgLyogMzQ1ICovCisJIkVSUk5PXzM0NiIsIC8qIDM0NiAqLworCSJFUlJOT18zNDciLCAvKiAzNDcgKi8KKwkiRVJSTk9fMzQ4IiwgLyogMzQ4ICovCisJIkVSUk5PXzM0OSIsIC8qIDM0OSAqLworCSJFUlJOT18zNTAiLCAvKiAzNTAgKi8KKwkiRVJSTk9fMzUxIiwgLyogMzUxICovCisJIkVSUk5PXzM1MiIsIC8qIDM1MiAqLworCSJFUlJOT18zNTMiLCAvKiAzNTMgKi8KKwkiRVJSTk9fMzU0IiwgLyogMzU0ICovCisJIkVSUk5PXzM1NSIsIC8qIDM1NSAqLworCSJFUlJOT18zNTYiLCAvKiAzNTYgKi8KKwkiRVJSTk9fMzU3IiwgLyogMzU3ICovCisJIkVSUk5PXzM1OCIsIC8qIDM1OCAqLworCSJFUlJOT18zNTkiLCAvKiAzNTkgKi8KKwkiRVJSTk9fMzYwIiwgLyogMzYwICovCisJIkVSUk5PXzM2MSIsIC8qIDM2MSAqLworCSJFUlJOT18zNjIiLCAvKiAzNjIgKi8KKwkiRVJSTk9fMzYzIiwgLyogMzYzICovCisJIkVSUk5PXzM2NCIsIC8qIDM2NCAqLworCSJFUlJOT18zNjUiLCAvKiAzNjUgKi8KKwkiRVJSTk9fMzY2IiwgLyogMzY2ICovCisJIkVSUk5PXzM2NyIsIC8qIDM2NyAqLworCSJFUlJOT18zNjgiLCAvKiAzNjggKi8KKwkiRVJSTk9fMzY5IiwgLyogMzY5ICovCisJIkVSUk5PXzM3MCIsIC8qIDM3MCAqLworCSJFUlJOT18zNzEiLCAvKiAzNzEgKi8KKwkiRVJSTk9fMzcyIiwgLyogMzcyICovCisJIkVSUk5PXzM3MyIsIC8qIDM3MyAqLworCSJFUlJOT18zNzQiLCAvKiAzNzQgKi8KKwkiRVJSTk9fMzc1IiwgLyogMzc1ICovCisJIkVSUk5PXzM3NiIsIC8qIDM3NiAqLworCSJFUlJOT18zNzciLCAvKiAzNzcgKi8KKwkiRVJSTk9fMzc4IiwgLyogMzc4ICovCisJIkVSUk5PXzM3OSIsIC8qIDM3OSAqLworCSJFUlJOT18zODAiLCAvKiAzODAgKi8KKwkiRVJSTk9fMzgxIiwgLyogMzgxICovCisJIkVSUk5PXzM4MiIsIC8qIDM4MiAqLworCSJFUlJOT18zODMiLCAvKiAzODMgKi8KKwkiRVJSTk9fMzg0IiwgLyogMzg0ICovCisJIkVSUk5PXzM4NSIsIC8qIDM4NSAqLworCSJFUlJOT18zODYiLCAvKiAzODYgKi8KKwkiRVJSTk9fMzg3IiwgLyogMzg3ICovCisJIkVSUk5PXzM4OCIsIC8qIDM4OCAqLworCSJFUlJOT18zODkiLCAvKiAzODkgKi8KKwkiRVJSTk9fMzkwIiwgLyogMzkwICovCisJIkVSUk5PXzM5MSIsIC8qIDM5MSAqLworCSJFUlJOT18zOTIiLCAvKiAzOTIgKi8KKwkiRVJSTk9fMzkzIiwgLyogMzkzICovCisJIkVSUk5PXzM5NCIsIC8qIDM5NCAqLworCSJFUlJOT18zOTUiLCAvKiAzOTUgKi8KKwkiRVJSTk9fMzk2IiwgLyogMzk2ICovCisJIkVSUk5PXzM5NyIsIC8qIDM5NyAqLworCSJFUlJOT18zOTgiLCAvKiAzOTggKi8KKwkiRVJSTk9fMzk5IiwgLyogMzk5ICovCisJIkVSUk5PXzQwMCIsIC8qIDQwMCAqLworCSJFUlJOT180MDEiLCAvKiA0MDEgKi8KKwkiRVJSTk9fNDAyIiwgLyogNDAyICovCisJIkVSUk5PXzQwMyIsIC8qIDQwMyAqLworCSJFUlJOT180MDQiLCAvKiA0MDQgKi8KKwkiRVJSTk9fNDA1IiwgLyogNDA1ICovCisJIkVSUk5PXzQwNiIsIC8qIDQwNiAqLworCSJFUlJOT180MDciLCAvKiA0MDcgKi8KKwkiRVJSTk9fNDA4IiwgLyogNDA4ICovCisJIkVSUk5PXzQwOSIsIC8qIDQwOSAqLworCSJFUlJOT180MTAiLCAvKiA0MTAgKi8KKwkiRVJSTk9fNDExIiwgLyogNDExICovCisJIkVSUk5PXzQxMiIsIC8qIDQxMiAqLworCSJFUlJOT180MTMiLCAvKiA0MTMgKi8KKwkiRVJSTk9fNDE0IiwgLyogNDE0ICovCisJIkVSUk5PXzQxNSIsIC8qIDQxNSAqLworCSJFUlJOT180MTYiLCAvKiA0MTYgKi8KKwkiRVJSTk9fNDE3IiwgLyogNDE3ICovCisJIkVSUk5PXzQxOCIsIC8qIDQxOCAqLworCSJFUlJOT180MTkiLCAvKiA0MTkgKi8KKwkiRVJSTk9fNDIwIiwgLyogNDIwICovCisJIkVSUk5PXzQyMSIsIC8qIDQyMSAqLworCSJFUlJOT180MjIiLCAvKiA0MjIgKi8KKwkiRVJSTk9fNDIzIiwgLyogNDIzICovCisJIkVSUk5PXzQyNCIsIC8qIDQyNCAqLworCSJFUlJOT180MjUiLCAvKiA0MjUgKi8KKwkiRVJSTk9fNDI2IiwgLyogNDI2ICovCisJIkVSUk5PXzQyNyIsIC8qIDQyNyAqLworCSJFUlJOT180MjgiLCAvKiA0MjggKi8KKwkiRVJSTk9fNDI5IiwgLyogNDI5ICovCisJIkVSUk5PXzQzMCIsIC8qIDQzMCAqLworCSJFUlJOT180MzEiLCAvKiA0MzEgKi8KKwkiRVJSTk9fNDMyIiwgLyogNDMyICovCisJIkVSUk5PXzQzMyIsIC8qIDQzMyAqLworCSJFUlJOT180MzQiLCAvKiA0MzQgKi8KKwkiRVJSTk9fNDM1IiwgLyogNDM1ICovCisJIkVSUk5PXzQzNiIsIC8qIDQzNiAqLworCSJFUlJOT180MzciLCAvKiA0MzcgKi8KKwkiRVJSTk9fNDM4IiwgLyogNDM4ICovCisJIkVSUk5PXzQzOSIsIC8qIDQzOSAqLworCSJFUlJOT180NDAiLCAvKiA0NDAgKi8KKwkiRVJSTk9fNDQxIiwgLyogNDQxICovCisJIkVSUk5PXzQ0MiIsIC8qIDQ0MiAqLworCSJFUlJOT180NDMiLCAvKiA0NDMgKi8KKwkiRVJSTk9fNDQ0IiwgLyogNDQ0ICovCisJIkVSUk5PXzQ0NSIsIC8qIDQ0NSAqLworCSJFUlJOT180NDYiLCAvKiA0NDYgKi8KKwkiRVJSTk9fNDQ3IiwgLyogNDQ3ICovCisJIkVSUk5PXzQ0OCIsIC8qIDQ0OCAqLworCSJFUlJOT180NDkiLCAvKiA0NDkgKi8KKwkiRVJSTk9fNDUwIiwgLyogNDUwICovCisJIkVSUk5PXzQ1MSIsIC8qIDQ1MSAqLworCSJFUlJOT180NTIiLCAvKiA0NTIgKi8KKwkiRVJSTk9fNDUzIiwgLyogNDUzICovCisJIkVSUk5PXzQ1NCIsIC8qIDQ1NCAqLworCSJFUlJOT180NTUiLCAvKiA0NTUgKi8KKwkiRVJSTk9fNDU2IiwgLyogNDU2ICovCisJIkVSUk5PXzQ1NyIsIC8qIDQ1NyAqLworCSJFUlJOT180NTgiLCAvKiA0NTggKi8KKwkiRVJSTk9fNDU5IiwgLyogNDU5ICovCisJIkVSUk5PXzQ2MCIsIC8qIDQ2MCAqLworCSJFUlJOT180NjEiLCAvKiA0NjEgKi8KKwkiRVJSTk9fNDYyIiwgLyogNDYyICovCisJIkVSUk5PXzQ2MyIsIC8qIDQ2MyAqLworCSJFUlJOT180NjQiLCAvKiA0NjQgKi8KKwkiRVJSTk9fNDY1IiwgLyogNDY1ICovCisJIkVSUk5PXzQ2NiIsIC8qIDQ2NiAqLworCSJFUlJOT180NjciLCAvKiA0NjcgKi8KKwkiRVJSTk9fNDY4IiwgLyogNDY4ICovCisJIkVSUk5PXzQ2OSIsIC8qIDQ2OSAqLworCSJFUlJOT180NzAiLCAvKiA0NzAgKi8KKwkiRVJSTk9fNDcxIiwgLyogNDcxICovCisJIkVSUk5PXzQ3MiIsIC8qIDQ3MiAqLworCSJFUlJOT180NzMiLCAvKiA0NzMgKi8KKwkiRVJSTk9fNDc0IiwgLyogNDc0ICovCisJIkVSUk5PXzQ3NSIsIC8qIDQ3NSAqLworCSJFUlJOT180NzYiLCAvKiA0NzYgKi8KKwkiRVJSTk9fNDc3IiwgLyogNDc3ICovCisJIkVSUk5PXzQ3OCIsIC8qIDQ3OCAqLworCSJFUlJOT180NzkiLCAvKiA0NzkgKi8KKwkiRVJSTk9fNDgwIiwgLyogNDgwICovCisJIkVSUk5PXzQ4MSIsIC8qIDQ4MSAqLworCSJFUlJOT180ODIiLCAvKiA0ODIgKi8KKwkiRVJSTk9fNDgzIiwgLyogNDgzICovCisJIkVSUk5PXzQ4NCIsIC8qIDQ4NCAqLworCSJFUlJOT180ODUiLCAvKiA0ODUgKi8KKwkiRVJSTk9fNDg2IiwgLyogNDg2ICovCisJIkVSUk5PXzQ4NyIsIC8qIDQ4NyAqLworCSJFUlJOT180ODgiLCAvKiA0ODggKi8KKwkiRVJSTk9fNDg5IiwgLyogNDg5ICovCisJIkVSUk5PXzQ5MCIsIC8qIDQ5MCAqLworCSJFUlJOT180OTEiLCAvKiA0OTEgKi8KKwkiRVJSTk9fNDkyIiwgLyogNDkyICovCisJIkVSUk5PXzQ5MyIsIC8qIDQ5MyAqLworCSJFUlJOT180OTQiLCAvKiA0OTQgKi8KKwkiRVJSTk9fNDk1IiwgLyogNDk1ICovCisJIkVSUk5PXzQ5NiIsIC8qIDQ5NiAqLworCSJFUlJOT180OTciLCAvKiA0OTcgKi8KKwkiRVJSTk9fNDk4IiwgLyogNDk4ICovCisJIkVSUk5PXzQ5OSIsIC8qIDQ5OSAqLworCSJFUlJOT181MDAiLCAvKiA1MDAgKi8KKwkiRVJSTk9fNTAxIiwgLyogNTAxICovCisJIkVSUk5PXzUwMiIsIC8qIDUwMiAqLworCSJFUlJOT181MDMiLCAvKiA1MDMgKi8KKwkiRVJSTk9fNTA0IiwgLyogNTA0ICovCisJIkVSUk5PXzUwNSIsIC8qIDUwNSAqLworCSJFUlJOT181MDYiLCAvKiA1MDYgKi8KKwkiRVJSTk9fNTA3IiwgLyogNTA3ICovCisJIkVSUk5PXzUwOCIsIC8qIDUwOCAqLworCSJFUlJOT181MDkiLCAvKiA1MDkgKi8KKwkiRVJSTk9fNTEwIiwgLyogNTEwICovCisJIkVSUk5PXzUxMSIsIC8qIDUxMSAqLworCSJFUkVTVEFSVFNZUyIsIC8qIDUxMiAqLworCSJFUkVTVEFSVE5PSU5UUiIsIC8qIDUxMyAqLworCSJFUkVTVEFSVE5PSEFORCIsIC8qIDUxNCAqLworCSJFTk9JT0NUTENNRCIsIC8qIDUxNSAqLworCSJFUlJOT181MTYiLCAvKiA1MTYgKi8KKwkiRVJSTk9fNTE3IiwgLyogNTE3ICovCisJIkVSUk5PXzUxOCIsIC8qIDUxOCAqLworCSJFUlJOT181MTkiLCAvKiA1MTkgKi8KKwkiRVJSTk9fNTIwIiwgLyogNTIwICovCisJIkVCQURIQU5ETEUiLCAvKiA1MjEgKi8KKwkiRU5PVFNZTkMiLCAvKiA1MjIgKi8KKwkiRUJBRENPT0tJRSIsIC8qIDUyMyAqLworCSJFTk9UU1VQUCIsIC8qIDUyNCAqLworCSJFVE9PU01BTEwiLCAvKiA1MjUgKi8KKwkiRVNFUlZFUkZBVUxUIiwgLyogNTI2ICovCisJIkVCQURUWVBFIiwgLyogNTI3ICovCisJIkVKVUtFQk9YIiwgLyogNTI4ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaHBwYS9lcnJub2VudC5oIGIvc3RyYWNlL2xpbnV4L2hwcGEvZXJybm9lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzkyNjMzCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L2hwcGEvZXJybm9lbnQuaApAQCAtMCwwICsxLDI1NCBAQAorCSJFUlJOT18wIiwgLyogMCAqLworCSJFUEVSTSIsIC8qIDEgKi8KKwkiRU5PRU5UIiwgLyogMiAqLworCSJFU1JDSCIsIC8qIDMgKi8KKwkiRUlOVFIiLCAvKiA0ICovCisJIkVJTyIsIC8qIDUgKi8KKwkiRU5YSU8iLCAvKiA2ICovCisJIkUyQklHIiwgLyogNyAqLworCSJFTk9FWEVDIiwgLyogOCAqLworCSJFQkFERiIsIC8qIDkgKi8KKwkiRUNISUxEIiwgLyogMTAgKi8KKwkiRUFHQUlOIiwgLyogMTEgKi8KKwkiRU5PTUVNIiwgLyogMTIgKi8KKwkiRUFDQ0VTIiwgLyogMTMgKi8KKwkiRUZBVUxUIiwgLyogMTQgKi8KKwkiRU5PVEJMSyIsIC8qIDE1ICovCisJIkVCVVNZIiwgLyogMTYgKi8KKwkiRUVYSVNUIiwgLyogMTcgKi8KKwkiRVhERVYiLCAvKiAxOCAqLworCSJFTk9ERVYiLCAvKiAxOSAqLworCSJFTk9URElSIiwgLyogMjAgKi8KKwkiRUlTRElSIiwgLyogMjEgKi8KKwkiRUlOVkFMIiwgLyogMjIgKi8KKwkiRU5GSUxFIiwgLyogMjMgKi8KKwkiRU1GSUxFIiwgLyogMjQgKi8KKwkiRU5PVFRZIiwgLyogMjUgKi8KKwkiRVRYVEJTWSIsIC8qIDI2ICovCisJIkVGQklHIiwgLyogMjcgKi8KKwkiRU5PU1BDIiwgLyogMjggKi8KKwkiRVNQSVBFIiwgLyogMjkgKi8KKwkiRVJPRlMiLCAvKiAzMCAqLworCSJFTUxJTksiLCAvKiAzMSAqLworCSJFUElQRSIsIC8qIDMyICovCisJIkVET00iLCAvKiAzMyAqLworCSJFUkFOR0UiLCAvKiAzNCAqLworCSJFTk9NU0ciLCAvKiAzNSAqLworCSJFSURSTSIsIC8qIDM2ICovCisJIkVDSFJORyIsIC8qIDM3ICovCisJIkVMMk5TWU5DIiwgLyogMzggKi8KKwkiRUwzSExUIiwgLyogMzkgKi8KKwkiRUwzUlNUIiwgLyogNDAgKi8KKwkiRUxOUk5HIiwgLyogNDEgKi8KKwkiRVVOQVRDSCIsIC8qIDQyICovCisJIkVOT0NTSSIsIC8qIDQzICovCisJIkVMMkhMVCIsIC8qIDQ0ICovCisJIkVERUFETEsiLCAvKiA0NSAqLworCSJFTk9MQ0siLCAvKiA0NiAqLworCSJFSUxTRVEiLCAvKiA0NyAqLworCSJFUlJOT180OCIsIC8qIDQ4ICovCisJIkVSUk5PXzQ5IiwgLyogNDkgKi8KKwkiRU5PTkVUIiwgLyogNTAgKi8KKwkiRU5PREFUQSIsIC8qIDUxICovCisJIkVUSU1FIiwgLyogNTIgKi8KKwkiRU5PU1IiLCAvKiA1MyAqLworCSJFTk9TVFIiLCAvKiA1NCAqLworCSJFTk9QS0ciLCAvKiA1NSAqLworCSJFUlJOT181NiIsIC8qIDU2ICovCisJIkVOT0xJTksiLCAvKiA1NyAqLworCSJFQURWIiwgLyogNTggKi8KKwkiRVNSTU5UIiwgLyogNTkgKi8KKwkiRUNPTU0iLCAvKiA2MCAqLworCSJFUFJPVE8iLCAvKiA2MSAqLworCSJFUlJOT182MiIsIC8qIDYyICovCisJIkVSUk5PXzYzIiwgLyogNjMgKi8KKwkiRU1VTFRJSE9QIiwgLyogNjQgKi8KKwkiRVJSTk9fNjUiLCAvKiA2NSAqLworCSJFRE9URE9UIiwgLyogNjYgKi8KKwkiRUJBRE1TRyIsIC8qIDY3ICovCisJIkVVU0VSUyIsIC8qIDY4ICovCisJIkVEUVVPVCIsIC8qIDY5ICovCisJIkVTVEFMRSIsIC8qIDcwICovCisJIkVSRU1PVEUiLCAvKiA3MSAqLworCSJFT1ZFUkZMT1ciLCAvKiA3MiAqLworCSJFUlJOT183MyIsIC8qIDczICovCisJIkVSUk5PXzc0IiwgLyogNzQgKi8KKwkiRVJSTk9fNzUiLCAvKiA3NSAqLworCSJFUlJOT183NiIsIC8qIDc2ICovCisJIkVSUk5PXzc3IiwgLyogNzcgKi8KKwkiRVJSTk9fNzgiLCAvKiA3OCAqLworCSJFUlJOT183OSIsIC8qIDc5ICovCisJIkVSUk5PXzgwIiwgLyogODAgKi8KKwkiRVJSTk9fODEiLCAvKiA4MSAqLworCSJFUlJOT184MiIsIC8qIDgyICovCisJIkVSUk5PXzgzIiwgLyogODMgKi8KKwkiRVJSTk9fODQiLCAvKiA4NCAqLworCSJFUlJOT184NSIsIC8qIDg1ICovCisJIkVSUk5PXzg2IiwgLyogODYgKi8KKwkiRVJSTk9fODciLCAvKiA4NyAqLworCSJFUlJOT184OCIsIC8qIDg4ICovCisJIkVSUk5PXzg5IiwgLyogODkgKi8KKwkiRVJSTk9fOTAiLCAvKiA5MCAqLworCSJFUlJOT185MSIsIC8qIDkxICovCisJIkVSUk5PXzkyIiwgLyogOTIgKi8KKwkiRVJSTk9fOTMiLCAvKiA5MyAqLworCSJFUlJOT185NCIsIC8qIDk0ICovCisJIkVSUk5PXzk1IiwgLyogOTUgKi8KKwkiRVJSTk9fOTYiLCAvKiA5NiAqLworCSJFUlJOT185NyIsIC8qIDk3ICovCisJIkVSUk5PXzk4IiwgLyogOTggKi8KKwkiRVJSTk9fOTkiLCAvKiA5OSAqLworCSJFUlJOT18xMDAiLCAvKiAxMDAgKi8KKwkiRVJSTk9fMTAxIiwgLyogMTAxICovCisJIkVSUk5PXzEwMiIsIC8qIDEwMiAqLworCSJFUlJOT18xMDMiLCAvKiAxMDMgKi8KKwkiRVJSTk9fMTA0IiwgLyogMTA0ICovCisJIkVSUk5PXzEwNSIsIC8qIDEwNSAqLworCSJFUlJOT18xMDYiLCAvKiAxMDYgKi8KKwkiRVJSTk9fMTA3IiwgLyogMTA3ICovCisJIkVSUk5PXzEwOCIsIC8qIDEwOCAqLworCSJFUlJOT18xMDkiLCAvKiAxMDkgKi8KKwkiRVJSTk9fMTEwIiwgLyogMTEwICovCisJIkVSUk5PXzExMSIsIC8qIDExMSAqLworCSJFUlJOT18xMTIiLCAvKiAxMTIgKi8KKwkiRVJSTk9fMTEzIiwgLyogMTEzICovCisJIkVSUk5PXzExNCIsIC8qIDExNCAqLworCSJFUlJOT18xMTUiLCAvKiAxMTUgKi8KKwkiRVJSTk9fMTE2IiwgLyogMTE2ICovCisJIkVSUk5PXzExNyIsIC8qIDExNyAqLworCSJFUlJOT18xMTgiLCAvKiAxMTggKi8KKwkiRVJSTk9fMTE5IiwgLyogMTE5ICovCisJIkVSUk5PXzEyMCIsIC8qIDEyMCAqLworCSJFUlJOT18xMjEiLCAvKiAxMjEgKi8KKwkiRVJSTk9fMTIyIiwgLyogMTIyICovCisJIkVSUk5PXzEyMyIsIC8qIDEyMyAqLworCSJFUlJOT18xMjQiLCAvKiAxMjQgKi8KKwkiRVJSTk9fMTI1IiwgLyogMTI1ICovCisJIkVSUk5PXzEyNiIsIC8qIDEyNiAqLworCSJFUlJOT18xMjciLCAvKiAxMjcgKi8KKwkiRVJSTk9fMTI4IiwgLyogMTI4ICovCisJIkVSUk5PXzEyOSIsIC8qIDEyOSAqLworCSJFUlJOT18xMzAiLCAvKiAxMzAgKi8KKwkiRVJSTk9fMTMxIiwgLyogMTMxICovCisJIkVSUk5PXzEzMiIsIC8qIDEzMiAqLworCSJFUlJOT18xMzMiLCAvKiAxMzMgKi8KKwkiRVJSTk9fMTM0IiwgLyogMTM0ICovCisJIkVSUk5PXzEzNSIsIC8qIDEzNSAqLworCSJFUlJOT18xMzYiLCAvKiAxMzYgKi8KKwkiRVJSTk9fMTM3IiwgLyogMTM3ICovCisJIkVSUk5PXzEzOCIsIC8qIDEzOCAqLworCSJFUlJOT18xMzkiLCAvKiAxMzkgKi8KKwkiRVJSTk9fMTQwIiwgLyogMTQwICovCisJIkVSUk5PXzE0MSIsIC8qIDE0MSAqLworCSJFUlJOT18xNDIiLCAvKiAxNDIgKi8KKwkiRVJSTk9fMTQzIiwgLyogMTQzICovCisJIkVSUk5PXzE0NCIsIC8qIDE0NCAqLworCSJFUlJOT18xNDUiLCAvKiAxNDUgKi8KKwkiRVJSTk9fMTQ2IiwgLyogMTQ2ICovCisJIkVSUk5PXzE0NyIsIC8qIDE0NyAqLworCSJFUlJOT18xNDgiLCAvKiAxNDggKi8KKwkiRVJSTk9fMTQ5IiwgLyogMTQ5ICovCisJIkVSUk5PXzE1MCIsIC8qIDE1MCAqLworCSJFUlJOT18xNTEiLCAvKiAxNTEgKi8KKwkiRVJSTk9fMTUyIiwgLyogMTUyICovCisJIkVSUk5PXzE1MyIsIC8qIDE1MyAqLworCSJFUlJOT18xNTQiLCAvKiAxNTQgKi8KKwkiRVJSTk9fMTU1IiwgLyogMTU1ICovCisJIkVSUk5PXzE1NiIsIC8qIDE1NiAqLworCSJFUlJOT18xNTciLCAvKiAxNTcgKi8KKwkiRVJSTk9fMTU4IiwgLyogMTU4ICovCisJIkVSUk5PXzE1OSIsIC8qIDE1OSAqLworCSJFQkFERSIsIC8qIDE2MCAqLworCSJFQkFEUiIsIC8qIDE2MSAqLworCSJFWEZVTEwiLCAvKiAxNjIgKi8KKwkiRU5PQU5PIiwgLyogMTYzICovCisJIkVCQURSUUMiLCAvKiAxNjQgKi8KKwkiRUJBRFNMVCIsIC8qIDE2NSAqLworCSJFQkZPTlQiLCAvKiAxNjYgKi8KKwkiRU5PVFVOSVEiLCAvKiAxNjcgKi8KKwkiRUJBREZEIiwgLyogMTY4ICovCisJIkVSRU1DSEciLCAvKiAxNjkgKi8KKwkiRUxJQkFDQyIsIC8qIDE3MCAqLworCSJFTElCQkFEIiwgLyogMTcxICovCisJIkVMSUJTQ04iLCAvKiAxNzIgKi8KKwkiRUxJQk1BWCIsIC8qIDE3MyAqLworCSJFTElCRVhFQyIsIC8qIDE3NCAqLworCSJFUkVTVEFSVCIsIC8qIDE3NSAqLworCSJFU1RSUElQRSIsIC8qIDE3NiAqLworCSJFVUNMRUFOIiwgLyogMTc3ICovCisJIkVOT1ROQU0iLCAvKiAxNzggKi8KKwkiRU5BVkFJTCIsIC8qIDE3OSAqLworCSJFSVNOQU0iLCAvKiAxODAgKi8KKwkiRVJFTU9URUlPIiwgLyogMTgxICovCisJIkVOT01FRElVTSIsIC8qIDE4MiAqLworCSJFTUVESVVNVFlQRSIsIC8qIDE4MyAqLworCSJFUlJOT18xODQiLCAvKiAxODQgKi8KKwkiRVJSTk9fMTg1IiwgLyogMTg1ICovCisJIkVSUk5PXzE4NiIsIC8qIDE4NiAqLworCSJFUlJOT18xODciLCAvKiAxODcgKi8KKwkiRVJSTk9fMTg4IiwgLyogMTg4ICovCisJIkVSUk5PXzE4OSIsIC8qIDE4OSAqLworCSJFUlJOT18xOTAiLCAvKiAxOTAgKi8KKwkiRVJSTk9fMTkxIiwgLyogMTkxICovCisJIkVSUk5PXzE5MiIsIC8qIDE5MiAqLworCSJFUlJOT18xOTMiLCAvKiAxOTMgKi8KKwkiRVJSTk9fMTk0IiwgLyogMTk0ICovCisJIkVSUk5PXzE5NSIsIC8qIDE5NSAqLworCSJFUlJOT18xOTYiLCAvKiAxOTYgKi8KKwkiRVJSTk9fMTk3IiwgLyogMTk3ICovCisJIkVSUk5PXzE5OCIsIC8qIDE5OCAqLworCSJFUlJOT18xOTkiLCAvKiAxOTkgKi8KKwkiRVJSTk9fMjAwIiwgLyogMjAwICovCisJIkVSUk5PXzIwMSIsIC8qIDIwMSAqLworCSJFUlJOT18yMDIiLCAvKiAyMDIgKi8KKwkiRVJSTk9fMjAzIiwgLyogMjAzICovCisJIkVSUk5PXzIwNCIsIC8qIDIwNCAqLworCSJFUlJOT18yMDUiLCAvKiAyMDUgKi8KKwkiRVJSTk9fMjA2IiwgLyogMjA2ICovCisJIkVSUk5PXzIwNyIsIC8qIDIwNyAqLworCSJFUlJOT18yMDgiLCAvKiAyMDggKi8KKwkiRVJSTk9fMjA5IiwgLyogMjA5ICovCisJIkVSUk5PXzIxMCIsIC8qIDIxMCAqLworCSJFUlJOT18yMTEiLCAvKiAyMTEgKi8KKwkiRVJSTk9fMjEyIiwgLyogMjEyICovCisJIkVSUk5PXzIxMyIsIC8qIDIxMyAqLworCSJFUlJOT18yMTQiLCAvKiAyMTQgKi8KKwkiRU5PU1lNIiwgLyogMjE1ICovCisJIkVOT1RTT0NLIiwgLyogMjE2ICovCisJIkVERVNUQUREUlJFUSIsIC8qIDIxNyAqLworCSJFTVNHU0laRSIsIC8qIDIxOCAqLworCSJFUFJPVE9UWVBFIiwgLyogMjE5ICovCisJIkVOT1BST1RPT1BUIiwgLyogMjIwICovCisJIkVQUk9UT05PU1VQUE9SVCIsIC8qIDIyMSAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiAyMjIgKi8KKwkiRU9QTk9UU1VQUCIsIC8qIDIyMyAqLworCSJFUEZOT1NVUFBPUlQiLCAvKiAyMjQgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogMjI1ICovCisJIkVBRERSSU5VU0UiLCAvKiAyMjYgKi8KKwkiRUFERFJOT1RBVkFJTCIsIC8qIDIyNyAqLworCSJFTkVURE9XTiIsIC8qIDIyOCAqLworCSJFTkVUVU5SRUFDSCIsIC8qIDIyOSAqLworCSJFTkVUUkVTRVQiLCAvKiAyMzAgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogMjMxICovCisJIkVDT05OUkVTRVQiLCAvKiAyMzIgKi8KKwkiRU5PQlVGUyIsIC8qIDIzMyAqLworCSJFSVNDT05OIiwgLyogMjM0ICovCisJIkVOT1RDT05OIiwgLyogMjM1ICovCisJIkVTSFVURE9XTiIsIC8qIDIzNiAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiAyMzcgKi8KKwkiRVRJTUVET1VUIiwgLyogMjM4ICovCisJIkVDT05OUkVGVVNFRCIsIC8qIDIzOSAqLworCSJFUkVNT1RFUkVMRUFTRSIsIC8qIDI0MCAqLworCSJFSE9TVERPV04iLCAvKiAyNDEgKi8KKwkiRUhPU1RVTlJFQUNIIiwgLyogMjQyICovCisJIkVSUk5PXzI0MyIsIC8qIDI0MyAqLworCSJFQUxSRUFEWSIsIC8qIDI0NCAqLworCSJFSU5QUk9HUkVTUyIsIC8qIDI0NSAqLworCSJFV09VTERCTE9DSyIsIC8qIDI0NiAqLworCSJFTk9URU1QVFkiLCAvKiAyNDcgKi8KKwkiRU5BTUVUT09MT05HIiwgLyogMjQ4ICovCisJIkVMT09QIiwgLyogMjQ5ICovCisJIkVSUk5PXzI1MCIsIC8qIDI1MCAqLworCSJFTk9TWVMiLCAvKiAyNTEgKi8KKwkiRU5PVFNVUCIsIC8qIDI1MiAqLworCSJFQ0FOQ0VMTEVEIiwgLyogMjUzICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvaHBwYS9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L2hwcGEvaW9jdGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGRhYWY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L2hwcGEvaW9jdGxlbnQuaApAQCAtMCwwICsxLDc3OSBAQAorCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAorCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAorCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAorCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAorCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAorCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAorCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCisJeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAorCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCisJeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAorCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKKwl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRUSU1FT1VUIiwJMHg1NzA3fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAorCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCisJeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKKwl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKKwl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAorCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAorCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKKwl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEVYVEFUVFIiLAkweDcwMWN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfREVMRVhUQVRUUiIsCTB4NzAxZH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAorCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAorCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIk9MRF9QSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKKwl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCisJeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKKwl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKKwl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAorCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCisJeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCisJeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCisJeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCisJeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCisJeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAorCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAorCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAorCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAorCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAorCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZjAwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9ocHBhL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L2hwcGEvc2lnbmFsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJlNTU2NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9ocHBhL3NpZ25hbGVudC5oCkBAIC0wLDAgKzEsMzggQEAKKwkiU0lHXzAiLAkvKiAwICovCisJIlNJR0hVUCIsCS8qIDEgKi8KKwkiU0lHSU5UIiwJLyogMiAqLworCSJTSUdRVUlUIiwJLyogMyAqLworCSJTSUdJTEwiLAkvKiA0ICovCisJIlNJR1RSQVAiLAkvKiA1ICovCisJIlNJR0FCUlQiLAkvKiA2ICovCisJIlNJR0VNVCIsCS8qIDcgKi8KKwkiU0lHRlBFIiwJLyogOCAqLworCSJTSUdLSUxMIiwJLyogOSAqLworCSJTSUdCVVMiLAkvKiAxMCAqLworCSJTSUdTRUdWIiwJLyogMTEgKi8KKwkiU0lHU1lTIiwJLyogMTIgKi8KKwkiU0lHUElQRSIsCS8qIDEzICovCisJIlNJR0FMUk0iLAkvKiAxNCAqLworCSJTSUdURVJNIiwJLyogMTUgKi8KKwkiU0lHVVNSMSIsCS8qIDE2ICovCisJIlNJR1VTUjIiLAkvKiAxNyAqLworCSJTSUdDSExEIiwJLyogMTggKi8KKwkiU0lHUFdSIiwJLyogMTkgKi8KKwkiU0lHVlRBTFJNIiwJLyogMjAgKi8KKwkiU0lHUFJPRiIsCS8qIDIxICovCisJIlNJR0lPIiwJLyogMjIgKi8KKwkiU0lHV0lOQ0giLAkvKiAyMyAqLworCSJTSUdTVE9QIiwJLyogMjQgKi8KKwkiU0lHVFNUUCIsCS8qIDI1ICovCisJIlNJR0NPTlQiLAkvKiAyNiAqLworCSJTSUdUVElOIiwJLyogMjcgKi8KKwkiU0lHVFRPVSIsCS8qIDI4ICovCisJIlNJR1VSRyIsCS8qIDI5ICovCisJIlNJR0xPU1QiLAkvKiAzMCAqLworCSJTSUdVTlVTRUQiLAkvKiAzMSAqLworCSJTSUdfMzIiLAkvKiAzMiAqLworCSJTSUdYQ1BVIiwJLyogMzMgKi8KKwkiU0lHWEZTWiIsCS8qIDM0ICovCisJIlNJR18zNSIsCS8qIDM1ICovCisJIlNJR1NUS0ZMVCIsCS8qIDM2ICovCisJIlNJR1JUTUlOIiwJLyogMzcgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9ocHBhL3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9ocHBhL3N5c2NhbGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmYxYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L2hwcGEvc3lzY2FsbGVudC5oCkBAIC0wLDAgKzEsMzAyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxIEhld2xldHQtUGFja2FyZCwgTWF0dGhldyBXaWxjb3gKKyAqCisgKiAkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMTIgMjAwNS8wNS8wOSAwODowMjowNCByb2xhbmQgRXhwICQKKyAqCisgKi8KKworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIlNZU18wIgkJCX0sIC8qIDAgKi8KKwl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0IgkJCX0sIC8qIDEgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJCX0sIC8qIDIgKi8KKwl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiCQkJfSwgLyogMyAqLworCXsgMywJMCwJc3lzX3dyaXRlLAkJIndyaXRlIgkJCX0sIC8qIDQgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJCX0sIC8qIDUgKi8KKwl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCQl9LCAvKiA2ICovCisJeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIJCX0sIC8qIDcgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQkJfSwgLyogOCAqLworCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQkJfSwgLyogOSAqLworCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgkJfSwgLyogMTAgKi8KKwl7IDMsCVRGfFRQLAlzeXNfZXhlY3ZlLAkJImV4ZWN2ZSIJCX0sIC8qIDExICovCisJeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJCX0sIC8qIDEyICovCisJeyAxLAkwLAlzeXNfdGltZSwJCSJ0aW1lIgkJCX0sIC8qIDEzICovCisJeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJCX0sIC8qIDE0ICovCisJeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJCX0sIC8qIDE1ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJCX0sIC8qIDE2ICovCisJeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCQl9LCAvKiAxNyAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkJIm5ld3N0YXQiCQl9LCAvKiAxOCAqLworCXsgMywJVEYsCXN5c19sc2VlaywJCSJsc2VlayIJCQl9LCAvKiAxOSAqLworCXsgMCwJMCwJc3lzX2dldHBpZCwJCSJnZXRwaWQiCQl9LCAvKiAyMCAqLworCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCQl9LCAvKiAyMSAqLworCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQkJfSwgLyogMjIgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgkJfSwgLyogMjMgKi8KKwl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgkJfSwgLyogMjQgKi8KKwl7IDEsCTAsCXN5c19zdGltZSwJCSJzdGltZSIJCQl9LCAvKiAyNSAqLworCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCQl9LCAvKiAyNiAqLworCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJCX0sIC8qIDI3ICovCisJeyAyLAkwLAlzeXNfZnN0YXQsCQkibmV3ZnN0YXQiCQl9LCAvKiAyOCAqLworCXsgMCwJMCwJc3lzX3BhdXNlLAkJInBhdXNlIgkJCX0sIC8qIDI5ICovCisJeyAyLAkwLAlzeXNfdXRpbWUsCQkidXRpbWUiCQkJfSwgLyogMzAgKi8KKwl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0IgkJfSwgLyogMzEgKi8KKwl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJCX0sIC8qIDMyICovCisJeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCQl9LCAvKiAzMyAqLworCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCQl9LCAvKiAzNCAqLworCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0IgkJfSwgLyogMzUgKi8KKwl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQkJfSwgLyogMzYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJraWxsIgkJCX0sIC8qIDM3ICovCisJeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCQl9LCAvKiAzOCAqLworCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCQl9LCAvKiAzOSAqLworCXsgMSwJVEYsCXN5c19ybWRpciwJCSJybWRpciIJCQl9LCAvKiA0MCAqLworCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQkJfSwgLyogNDEgKi8KKwl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQkJfSwgLyogNDIgKi8KKwl7IDEsCTAsCXN5c190aW1lcywJCSJ0aW1lcyIJCQl9LCAvKiA0MyAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgkJfSwgLyogNDQgKi8KKwl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJCX0sIC8qIDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJCX0sIC8qIDQ2ICovCisJeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJCX0sIC8qIDQ3ICovCisJeyAyLAkwLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJCX0sIC8qIDQ4ICovCisJeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRldWlkIgkJfSwgLyogNDkgKi8KKwl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCQl9LCAvKiA1MCAqLworCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQkJfSwgLyogNTEgKi8KKwl7IDIsCTAsCXN5c191bW91bnQyLAkJInVtb3VudDIiCQl9LCAvKiA1MiAqLworCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImxvY2siCQkJfSwgLyogNTMgKi8KKwl7IDMsCTAsCXN5c19pb2N0bCwJCSJpb2N0bCIJCQl9LCAvKiA1NCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJCX0sIC8qIDU1ICovCisJeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJCX0sIC8qIDU2ICovCisJeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgkJfSwgLyogNTcgKi8KKwl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJCX0sIC8qIDU4ICovCisJeyAxLAkwLAlzeXNfdW5hbWUsCQkibmV3dW5hbWUiCQkJfSwgLyogNTkgKi8KKwl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCQl9LCAvKiA2MCAqLworCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290IgkJfSwgLyogNjEgKi8KKwl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCQl9LCAvKiA2MiAqLworCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCQl9LCAvKiA2MyAqLworCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJCX0sIC8qIDY0ICovCisJeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgkJfSwgLyogNjUgKi8KKwl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgkJfSwgLyogNjYgKi8KKwl7IDIsCVRGLAlzeXNfcGl2b3Ryb290LAkJInBpdm90X3Jvb3QiCQl9LCAvKiA2NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNnZXRtYXNrIgkJfSwgLyogNjggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJzc2V0bWFzayIJCX0sIC8qIDY5ICovCisJeyAyLAkwLAlzeXNfc2V0cmV1aWQsCQkic2V0cmV1aWQiCQl9LCAvKiA3MCAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgkJfSwgLyogNzEgKi8KKwl7IDMsCTAsCXN5c19taW5jb3JlLAkJIm1pbmNvcmUiCQl9LCAvKiA3MiAqLworCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCQl9LCAvKiA3MyAqLworCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCQl9LCAvKiA3NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCQl9LCAvKiA3NSAqLworCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCQl9LCAvKiA3NiAqLworCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCQl9LCAvKiA3NyAqLworCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJCX0sIC8qIDc4ICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5IgkJfSwgLyogNzkgKi8KKwl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgkJfSwgLyogODAgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgkJfSwgLyogODEgKi8KKwl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJCX0sIC8qIDgyICovCisJeyAyLAlURiwJc3lzX3N5bWxpbmssCQkic3ltbGluayIJCX0sIC8qIDgzICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkJIm5ld2xzdGF0IgkJfSwgLyogODQgKi8KKwl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCQl9LCAvKiA4NSAqLworCXsgMSwJMCwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCQl9LCAvKiA4NiAqLworCXsgMSwJMCwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCQl9LCAvKiA4NyAqLworCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCQl9LCAvKiA4OCAqLworCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcDIiCQkJfSwgLyogODkgKi8KKwl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAiCQkJfSwgLyogOTAgKi8KKwl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgkJfSwgLyogOTEgKi8KKwl7IDIsCVRGLAlzeXNfdHJ1bmNhdGUsCQkidHJ1bmNhdGUiCQl9LCAvKiA5MiAqLworCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCQl9LCAvKiA5MyAqLworCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCQl9LCAvKiA5NCAqLworCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCQl9LCAvKiA5NSAqLworCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCQl9LCAvKiA5NiAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCQl9LCAvKiA5NyAqLworCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQkJfSwgLyogOTggKi8KKwl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJCX0sIC8qIDk5ICovCisJeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgkJfSwgLyogMTAwICovCisJeyAyLAlURiwJc3lzX3N0YXQ2NCwJCSJzdGF0NjQiCQl9LCAvKiAxMDEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTAyIgkJfSwgLyogMTAyICovCisJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJCX0sIC8qIDEwMyAqLworCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCQl9LCAvKiAxMDQgKi8KKwl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgkJfSwgLyogMTA1ICovCisJeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJCX0sIC8qIDEwNiAqLworCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCQl9LCAvKiAxMDcgKi8KKwl7IDUsCTAsCXN5c19wcmVhZCwJCSJwcmVhZCIJCQl9LCAvKiAxMDggKi8KKwl7IDUsCTAsCXN5c19wd3JpdGUsCQkicHdyaXRlIgkJfSwgLyogMTA5ICovCisJeyAyLAkwLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJCX0sIC8qIDExMCAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJCX0sIC8qIDExMSAqLworCXsgMiwJMCwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJCX0sIC8qIDExMiAqLworCXsgMCwJMCwJc3lzX3Zmb3JrLAkJInZmb3JrIgkJCX0sIC8qIDExMyAqLworCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCQl9LCAvKiAxMTQgKi8KKwl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCQl9LCAvKiAxMTUgKi8KKwl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCQl9LCAvKiAxMTYgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCQl9LCAvKiAxMTcgKi8KKwl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCQl9LCAvKiAxMTggKi8KKwl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCQl9LCAvKiAxMTkgKi8KKwl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiCQkJfSwgLyogMTIwICovCisJeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCQl9LCAvKiAxMjEgKi8KKwl7IDQsCTAsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJCX0sIC8qIDEyMiAqLworCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJCX0sIC8qIDEyMyAqLworCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4IgkJfSwgLyogMTI0ICovCisJeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCQl9LCAvKiAxMjUgKi8KKwl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJCX0sIC8qIDEyNiAqLworCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgkJfSwgLyogMTI3ICovCisJeyA0LAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJCX0sIC8qIDEyOCAqLworCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgkJfSwgLyogMTI5ICovCisJeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIgl9LCAvKiAxMzAgKi8KKwl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJCX0sIC8qIDEzMSAqLworCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJCX0sIC8qIDEzMiAqLworCXsgMSwJVEYsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgkJfSwgLyogMTMzICovCisJeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgkJfSwgLyogMTM0ICovCisJeyA1LAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQkJfSwgLyogMTM1ICovCisJeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJCX0sIC8qIDEzNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCQl9LCAvKiAxMzcgKi8KKwl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJCX0sIC8qIDEzOCAqLworCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgkJfSwgLyogMTM5ICovCisJeyA1LAlURiwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgkJfSwgLyogMTQwICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCQl9LCAvKiAxNDEgKi8KKwl7IDUsCTAsCXN5c19zZWxlY3QsCQkiX25ld3NlbGVjdCIJCX0sIC8qIDE0MiAqLworCXsgMiwJMCwJc3lzX2Zsb2NrLAkJImZsb2NrIgkJCX0sIC8qIDE0MyAqLworCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJCX0sIC8qIDE0NCAqLworCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJCX0sIC8qIDE0NSAqLworCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCQl9LCAvKiAxNDYgKi8KKwl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgkJfSwgLyogMTQ3ICovCisJeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJCX0sIC8qIDE0OCAqLworCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgkJfSwgLyogMTQ5ICovCisJeyAyLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQkJfSwgLyogMTUwICovCisJeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgkJfSwgLyogMTUxICovCisJeyAxLAkwLAlzeXNfbWxvY2thbGwsCQkibWxvY2thbGwiCQl9LCAvKiAxNTIgKi8KKwl7IDEsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCQl9LCAvKiAxNTMgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIgl9LCAvKiAxNTQgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9nZXRwYXJhbSwJInNjaGVkX2dldHBhcmFtIgl9LCAvKiAxNTUgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIiCX0sIC8qIDE1NiAqLworCXsgMiwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciIJfSwgLyogMTU3ICovCisJeyAwLAkwLAlzeXNfc2NoZWRfeWllbGQsCSJzY2hlZF95aWVsZCIJCX0sIC8qIDE1OCAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KKwl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgkJfSwgLyogMTYyICovCisJeyA0LAkwLAlzeXNfbXJlbWFwLAkJIm1yZW1hcCIJCX0sIC8qIDE2MyAqLworCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCQl9LCAvKiAxNjQgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgkJfSwgLyogMTY1ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCQl9LCAvKiAxNjYgKi8KKwl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCQl9LCAvKiAxNjcgKi8KKwl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQkJfSwgLyogMTY4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJCX0sIC8qIDE2OSAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCQl9LCAvKiAxNzAgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgkJfSwgLyogMTcxICovCisJeyA1LAkwLAlzeXNfcHJjdGwsCQkicHJjdGwiCQkJfSwgLyogMTcyICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJydF9zaWdyZXR1cm4iCQl9LCAvKiAxNzMgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgkJfSwgLyogMTc0ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2siCX0sIC8qIDE3NSAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJCX0sIC8qIDE3NiAqLworCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQiCX0sIC8qIDE3NyAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8iCX0sIC8qIDE3OCAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJCX0sIC8qIDE3OSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCQl9LCAvKiAxODAgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0IgkJfSwgLyogMTgxICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJCX0sIC8qIDE4MiAqLworCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCQl9LCAvKiAxODMgKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgkJfSwgLyogMTg0ICovCisJeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJCX0sIC8qIDE4NSAqLworCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0IgkJfSwgLyogMTg2ICovCisJeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCQl9LCAvKiAxODcgKi8KKwl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJCX0sIC8qIDE4OCAqLworCXsgNCwJVEksCXN5c19tc2dyY3YsCQkibXNncmN2IgkJfSwgLyogMTg5ICovCisJeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCQl9LCAvKiAxOTAgKi8KKwl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJCX0sIC8qIDE5MSAqLworCXsgNCwJVEksCXN5c19zaG1hdCwJCSJzaG1hdCIJCQl9LCAvKiAxOTIgKi8KKwl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQkJfSwgLyogMTkzICovCisJeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCQl9LCAvKiAxOTQgKi8KKwl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJCX0sIC8qIDE5NSAqLworCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJCX0sIC8qIDE5NiAqLworCXsgNSwJMCwJc3lzX3B1dHBtc2csCQkicHV0cG1zZyIJCX0sIC8qIDE5NyAqLworCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkJImxzdGF0NjQiCQl9LCAvKiAxOTggKi8KKwl7IDMsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0IgkJfSwgLyogMTk5ICovCisJeyAzLAkwLAlzeXNfZnRydW5jYXRlNjQsCSJmdHJ1bmNhdGU2NCIJCX0sIC8qIDIwMCAqLworCXsgMywJMCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJCX0sIC8qIDIwMSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsNjQiCQl9LCAvKiAyMDIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJhdHRyY3RsIgkJfSwgLyogMjAzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYWNsX2dldCIJCX0sIC8qIDIwNCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFjbF9zZXQiCQl9LCAvKiAyMDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCQl9LCAvKiAyMDYgKi8KKwl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgkJfSwgLyogMjA3ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkidGtpbGwiCQkJfSwgLyogMjA4ICovCisJeyA0LAkwLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGU2NCIJCX0sIC8qIDIwOSAqLworCXsgNSwJMCwJc3lzX2Z1dGV4LAkJImZ1dGV4IgkJCX0sIC8qIDIxMCAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiCX0sIC8qIDIxMSAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiCX0sIC8qIDIxMiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNldF90aHJlYWRfYXJlYSIJfSwgLyogMjEzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiZ2V0X3RocmVhZF9hcmVhIgl9LCAvKiAyMTQgKi8KKwl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJCX0sIC8qIDIxNSAqLworCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJCX0sIC8qIDIxNiAqLworCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCQl9LCAvKiAyMTcgKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0IgkJfSwgLyogMjE4ICovCisJeyA0LAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJCX0sIC8qIDIxOSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFsbG9jX2h1Z2VwYWdlcyIJfSwgLyogMjIwICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkiZnJlZV9odWdlcGFnZXMiCX0sIC8qIDIyMSAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCQl9LCAvKiAyMjIgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSIJfSwgLyogMjIzICovCisJeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgkJfSwgLyogMjI0ICovCisJeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJCX0sIC8qIDIyNSAqLworCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJCX0sIC8qIDIyNiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInJlbWFwX2ZpbGVfcGFnZXMiCX0sIC8qIDIyNyAqLworICAgICAgIHsgNSwgICAgVEksICAgICBzeXNfc2VtdGltZWRvcCwgICAgICAgICAic2VtdGltZWRvcCIgICAgICAgICAgICB9LCAvKiAyMjggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJtcV9vcGVuIgkJfSwgLyogMjI5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibXFfdW5saW5rIgkJfSwgLyogMjMwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibXFfdGltZWRzZW5kIgkJfSwgLyogMjMxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibXFfdGltZWRyZWNlaXZlIgkJfSwgLyogMjMyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibXFfbm90aWZ5IgkJfSwgLyogMjMzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkibXFfZ2V0c2V0YXR0ciIJCX0sIC8qIDIzNCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIndhaXRpZCIJCX0sIC8qIDIzNSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImZhZHZpc2U2NF82NCIJCX0sIC8qIDIzNiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInNldF90aWRfYWRkcmVzcyIJfSwgLyogMjM3ICovCisJeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgkJfSwgLyogMjM4ICovCisJeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJCX0sIC8qIDIzOSAqLworCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCQl9LCAvKiAyNDAgKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCQl9LCAvKiAyNDEgKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgkJfSwgLyogMjQyICovCisJeyA0LAkwLAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJCX0sIC8qIDI0MyAqLworCXsgNSwJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgkJfSwgLyogMjQ0ICovCisJeyA1LAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgkJfSwgLyogMjQ1ICovCisJeyA1LAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgkJfSwgLyogMjQ2ICovCisJeyA1LAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCQl9LCAvKiAyNDcgKi8KKwl7IDUsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCQl9LCAvKiAyNDggKi8KKwl7IDUsCTAsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCQl9LCAvKiAyNDkgKi8KKwl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCQl9LCAvKiAyNTAgKi8KKwl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJCX0sIC8qIDI1MSAqLworCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgkJfSwgLyogMjUyICovCisJeyAxLAkwLAlzeXNfdGltZXJfZ2V0b3ZlcnJ1biwJInRpbWVyX2dldG92ZXJydW4iCX0sIC8qIDI1MyAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJCX0sIC8qIDI1NCAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgkJfSwgLyogMjU1ICovCisJeyAyLAkwLAlzeXNfY2xvY2tfZ2V0dGltZSwJImNsb2NrX2dldHRpbWUiCQl9LCAvKiAyNTYgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCQl9LCAvKiAyNTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJjbG9ja19uYW5vc2xlZXAiCX0sIC8qIDI1OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInRna2lsbCIJCX0sIC8qIDI1OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJIm1iaW5kIgkJCX0sIC8qIDI2MCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImdldF9tZW1wb2xpY3kiCQl9LCAvKiAyNjEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJzZXRfbWVtcG9saWN5IgkJfSwgLyogMjYyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJCX0sIC8qIDI2MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImFkZF9rZXkiCQl9LCAvKiAyNjQgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJyZXF1ZXN0X2tleSIJCX0sIC8qIDI2NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleWN0bCIJCX0sIC8qIDI2NiAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImlvcHJpb19zZXQiCQl9LCAvKiAyNjcgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJpb3ByaW9fZ2V0IgkJfSwgLyogMjY4ICovCisJeyAwLAlURCwJcHJpbnRhcmdzLAkJImlub3RpZnlfaW5pdCIJCX0sIC8qIDI2OSAqLworCXsgMywJVEQsCXN5c19pbm90aWZ5X2FkZF93YXRjaCwJImlub3RpZnlfYWRkX3dhdGNoIgl9LCAvKiAyNzAgKi8KKwl7IDIsCVRELAlzeXNfaW5vdGlmeV9ybV93YXRjaCwJImlub3RpZnlfcm1fd2F0Y2giCX0sIC8qIDI3MSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm1pZ3JhdGVfcGFnZXMiCQl9LCAvKiAyNzIgKi8KKwl7IDYsCVRELAlzeXNfcHNlbGVjdDYsCQkicHNlbGVjdDYiCQl9LCAvKiAyNzMgKi8KKwl7IDUsCVRELAlzeXNfcHBvbGwsCQkicHBvbGwiCQkJfSwgLyogMjc0ICovCisJeyA0LAlURHxURiwJc3lzX29wZW5hdCwJCSJvcGVuYXQiCQl9LCAvKiAyNzUgKi8KKwl7IDMsCVREfFRGLAlzeXNfbWtkaXJhdCwJCSJta2RpcmF0IgkJfSwgLyogMjc2ICovCisJeyA0LAlURHxURiwJc3lzX21rbm9kYXQsCQkibWtub2RhdCIJCX0sIC8qIDI3NyAqLworCXsgNSwJVER8VEYsCXN5c19mY2hvd25hdCwJCSJmY2hvd25hdCIJCX0sIC8qIDI3OCAqLworCXsgMywJVER8VEYsCXN5c19mdXRpbWVzYXQsCQkiZnV0aW1lc2F0IgkJfSwgLyogMjc5ICovCisJeyA0LAlURHxURCwJc3lzX25ld2ZzdGF0YXQsCQkibmV3ZnN0YXRhdCIJCX0sIC8qIDI4MCAqLworCXsgMywJVER8VEYsCXN5c191bmxpbmthdCwJCSJ1bmxpbmthdCIJCX0sIC8qIDI4MSAqLworCXsgNCwJVER8VEYsCXN5c19yZW5hbWVhdCwJCSJyZW5hbWVhdCIJCX0sIC8qIDI4MiAqLworCXsgNSwJVER8VEYsCXN5c19saW5rYXQsCQkibGlua2F0IgkJfSwgLyogMjgzICovCisJeyAzLAlURHxURiwJc3lzX3N5bWxpbmthdCwJCSJzeW1saW5rYXQiCQl9LCAvKiAyODQgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVhZGxpbmthdCwJCSJyZWFkbGlua2F0IgkJfSwgLyogMjg1ICovCisJeyAzLAlURHxURiwJc3lzX2ZjaG1vZGF0LAkJImZjaG1vZGF0IgkJfSwgLyogMjg2ICovCisJeyAzLAlURHxURiwJc3lzX2ZhY2Nlc3NhdCwJCSJmYWNjZXNzYXQiCQl9LCAvKiAyODcgKi8KKwl7IDEsCVRQLAlzeXNfdW5zaGFyZSwJCSJ1bnNoYXJlIgkJfSwgLyogMjg4ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0X3JvYnVzdF9saXN0Igl9LCAvKiAyODkgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRfcm9idXN0X2xpc3QiCX0sIC8qIDI5MCAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJzcGxpY2UiCQl9LCAvKiAyOTEgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkic3luY19maWxlX3JhbmdlIgl9LCAvKiAyOTIgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkidGVlIgkJCX0sIC8qIDI5MyAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ2bXNwbGljZSIJCX0sIC8qIDI5NCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lhNjQvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L2Vycm5vZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwYjUwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9pYTY0L2Vycm5vZW50LmgKQEAgLTAsMCArMSwxMjUgQEAKKwkiRVJSTk9fMCIsIC8qIDAgKi8KKwkiRVBFUk0iLCAvKiAxICovCisJIkVOT0VOVCIsIC8qIDIgKi8KKwkiRVNSQ0giLCAvKiAzICovCisJIkVJTlRSIiwgLyogNCAqLworCSJFSU8iLCAvKiA1ICovCisJIkVOWElPIiwgLyogNiAqLworCSJFMkJJRyIsIC8qIDcgKi8KKwkiRU5PRVhFQyIsIC8qIDggKi8KKwkiRUJBREYiLCAvKiA5ICovCisJIkVDSElMRCIsIC8qIDEwICovCisJIkVBR0FJTiIsIC8qIDExICovCisJIkVOT01FTSIsIC8qIDEyICovCisJIkVBQ0NFUyIsIC8qIDEzICovCisJIkVGQVVMVCIsIC8qIDE0ICovCisJIkVOT1RCTEsiLCAvKiAxNSAqLworCSJFQlVTWSIsIC8qIDE2ICovCisJIkVFWElTVCIsIC8qIDE3ICovCisJIkVYREVWIiwgLyogMTggKi8KKwkiRU5PREVWIiwgLyogMTkgKi8KKwkiRU5PVERJUiIsIC8qIDIwICovCisJIkVJU0RJUiIsIC8qIDIxICovCisJIkVJTlZBTCIsIC8qIDIyICovCisJIkVORklMRSIsIC8qIDIzICovCisJIkVNRklMRSIsIC8qIDI0ICovCisJIkVOT1RUWSIsIC8qIDI1ICovCisJIkVUWFRCU1kiLCAvKiAyNiAqLworCSJFRkJJRyIsIC8qIDI3ICovCisJIkVOT1NQQyIsIC8qIDI4ICovCisJIkVTUElQRSIsIC8qIDI5ICovCisJIkVST0ZTIiwgLyogMzAgKi8KKwkiRU1MSU5LIiwgLyogMzEgKi8KKwkiRVBJUEUiLCAvKiAzMiAqLworCSJFRE9NIiwgLyogMzMgKi8KKwkiRVJBTkdFIiwgLyogMzQgKi8KKwkiRURFQURMSyIsIC8qIDM1ICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCisJIkVOT0xDSyIsIC8qIDM3ICovCisJIkVOT1NZUyIsIC8qIDM4ICovCisJIkVOT1RFTVBUWSIsIC8qIDM5ICovCisJIkVMT09QIiwgLyogNDAgKi8KKwkiRVJSTk9fNDEiLCAvKiA0MSAqLworCSJFTk9NU0ciLCAvKiA0MiAqLworCSJFSURSTSIsIC8qIDQzICovCisJIkVDSFJORyIsIC8qIDQ0ICovCisJIkVMMk5TWU5DIiwgLyogNDUgKi8KKwkiRUwzSExUIiwgLyogNDYgKi8KKwkiRUwzUlNUIiwgLyogNDcgKi8KKwkiRUxOUk5HIiwgLyogNDggKi8KKwkiRVVOQVRDSCIsIC8qIDQ5ICovCisJIkVOT0NTSSIsIC8qIDUwICovCisJIkVMMkhMVCIsIC8qIDUxICovCisJIkVCQURFIiwgLyogNTIgKi8KKwkiRUJBRFIiLCAvKiA1MyAqLworCSJFWEZVTEwiLCAvKiA1NCAqLworCSJFTk9BTk8iLCAvKiA1NSAqLworCSJFQkFEUlFDIiwgLyogNTYgKi8KKwkiRUJBRFNMVCIsIC8qIDU3ICovCisJIkVSUk5PXzU4IiwgLyogNTggKi8KKwkiRUJGT05UIiwgLyogNTkgKi8KKwkiRU5PU1RSIiwgLyogNjAgKi8KKwkiRU5PREFUQSIsIC8qIDYxICovCisJIkVUSU1FIiwgLyogNjIgKi8KKwkiRU5PU1IiLCAvKiA2MyAqLworCSJFTk9ORVQiLCAvKiA2NCAqLworCSJFTk9QS0ciLCAvKiA2NSAqLworCSJFUkVNT1RFIiwgLyogNjYgKi8KKwkiRU5PTElOSyIsIC8qIDY3ICovCisJIkVBRFYiLCAvKiA2OCAqLworCSJFU1JNTlQiLCAvKiA2OSAqLworCSJFQ09NTSIsIC8qIDcwICovCisJIkVQUk9UTyIsIC8qIDcxICovCisJIkVNVUxUSUhPUCIsIC8qIDcyICovCisJIkVET1RET1QiLCAvKiA3MyAqLworCSJFQkFETVNHIiwgLyogNzQgKi8KKwkiRU9WRVJGTE9XIiwgLyogNzUgKi8KKwkiRU5PVFVOSVEiLCAvKiA3NiAqLworCSJFQkFERkQiLCAvKiA3NyAqLworCSJFUkVNQ0hHIiwgLyogNzggKi8KKwkiRUxJQkFDQyIsIC8qIDc5ICovCisJIkVMSUJCQUQiLCAvKiA4MCAqLworCSJFTElCU0NOIiwgLyogODEgKi8KKwkiRUxJQk1BWCIsIC8qIDgyICovCisJIkVMSUJFWEVDIiwgLyogODMgKi8KKwkiRUlMU0VRIiwgLyogODQgKi8KKwkiRVJFU1RBUlQiLCAvKiA4NSAqLworCSJFU1RSUElQRSIsIC8qIDg2ICovCisJIkVVU0VSUyIsIC8qIDg3ICovCisJIkVOT1RTT0NLIiwgLyogODggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KKwkiRU1TR1NJWkUiLCAvKiA5MCAqLworCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLworCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDk4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLworCSJFTkVURE9XTiIsIC8qIDEwMCAqLworCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLworCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCisJIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KKwkiRU5PQlVGUyIsIC8qIDEwNSAqLworCSJFSVNDT05OIiwgLyogMTA2ICovCisJIkVOT1RDT05OIiwgLyogMTA3ICovCisJIkVTSFVURE9XTiIsIC8qIDEwOCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KKwkiRVRJTUVET1VUIiwgLyogMTEwICovCisJIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLworCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KKwkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCisJIkVBTFJFQURZIiwgLyogMTE0ICovCisJIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCisJIkVTVEFMRSIsIC8qIDExNiAqLworCSJFVUNMRUFOIiwgLyogMTE3ICovCisJIkVOT1ROQU0iLCAvKiAxMTggKi8KKwkiRU5BVkFJTCIsIC8qIDExOSAqLworCSJFSVNOQU0iLCAvKiAxMjAgKi8KKwkiRVJFTU9URUlPIiwgLyogMTIxICovCisJIkVEUVVPVCIsIC8qIDEyMiAqLworCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KKwkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9pYTY0L2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvaWE2NC9pb2N0bGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZDJhY2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvaWE2NC9pb2N0bGVudC5oCkBAIC0wLDAgKzEsMTA4MCBAQAorCS8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8KKwl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAorCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAorCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAorCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAorCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCisJeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAorCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAorCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9TRVQiLAkweDEyNWR9LAorCXsibGludXgvZnMuaCIsCSJCTEtST0dFVCIsCTB4MTI1ZX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JSUEFSVCIsCTB4MTI1Zn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkUiLAkweDEyNjB9LAorCXsibGludXgvZnMuaCIsCSJCTEtGTFNCVUYiLAkweDEyNjF9LAorCXsibGludXgvZnMuaCIsCSJCTEtSQVNFVCIsCTB4MTI2Mn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JBR0VUIiwJMHgxMjYzfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBU0VUIiwJMHgxMjY0fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRlJBR0VUIiwJMHgxMjY1fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVFNFVCIsCTB4MTI2Nn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RHRVQiLAkweDEyNjd9LAorCXsibGludXgvZnMuaCIsCSJCTEtTU1pHRVQiLAkweDEyNjh9LAorCXsibGludXgvYmxrcGcuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUTEFTVFNFQ1QiLAkweDEyNmN9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRVRMQVNUU0VDVCIsCTB4MTI2ZH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCisJeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DQVRUQUNIIiwJMHg0MDY1fSwKKwl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NERVRBQ0giLAkweDQwNjZ9LAorCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ1NVU1BFTkQiLAkweDQwNjd9LAorCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ1JFU1VNRSIsCTB4NDA2OH0sCisJeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DQ0xSUE9MSUNZIiwJMHg0MDY5fSwKKwl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NTRVRQT0xJQ1kiLAkweDQwNmF9LAorCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ0lBTUFVRElURCIsCTB4NDA2Yn0sCisJeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DU0VUQVVESVRJRCIsCTB4NDA2Y30sCisJeyJsaW51eC9hdWRpdC5oIiwJIkFVSU9DTE9HSU4iLAkweDQwNmV9LAorCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ1VTRVJNRVNTQUdFIiwJMHg0MDZmfSwKKwl7ImxpbnV4L2F1ZGl0LmgiLAkiQVVJT0NDTFJGSUxURVIiLAkweDQwNzB9LAorCXsibGludXgvYXVkaXQuaCIsCSJBVUlPQ1NFVEZJTFRFUiIsCTB4NDA3MX0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAwfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9WU0NSRUVOSU5GTyIsCTB4NDYwMX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRlNDUkVFTklORk8iLAkweDQ2MDJ9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUQ01BUCIsCTB4NDYwNH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRDTUFQIiwJMHg0NjA1fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BBTl9ESVNQTEFZIiwJMHg0NjA2fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GQ1VSU09SSU5GTyIsCTB4NDYwN30sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkNVUlNPUklORk8iLAkweDQ2MDh9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZDVVJTT1JJTkZPIiwJMHg0NjA5fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9DVVJTT1JTVEFURSIsCTB4NDYwYX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfQ1VSU09SU1RBVEUiLAkweDQ2MGJ9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0NPTjJGQk1BUCIsCTB4NDYwZn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfQ09OMkZCTUFQIiwJMHg0NjEwfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0JMQU5LIiwJMHg0NjExfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAorCXsibGludXgvZmIuaCIsCSJGQklPX0FMTE9DIiwJMHg0NjEzfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT19GUkVFIiwJMHg0NjE0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9HTFlQSCIsCTB4NDYxNX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfSFdDSU5GTyIsCTB4NDYxNn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9QVVRfTU9ERUlORk8iLAkweDQ2MTd9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0RJU1BJTkZPIiwJMHg0NjE4fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFJRiIsCTB4NDkwMX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJRiIsCTB4NDkwMn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVFNDRiIsCTB4NDkwM30sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdDRiIsCTB4NDkwNH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFOTSIsCTB4NDkwNX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEROTSIsCTB4NDkwNn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdOTSIsCTB4NDkwN30sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFNFVCIsCTB4NDkwOH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFNFVCIsCTB4NDkwOX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFZFUiIsCTB4NDkwYX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEhVUCIsCTB4NDkwYn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEdTVCIsCTB4NDkwY30sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVEJSSiIsCTB4NDkwZH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NJR1BSRiIsCTB4NDkwZX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVFBSRiIsCTB4NDkwZn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVFBSRiIsCTB4NDkxMH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVE1BUCIsCTB4NDkxMX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ1NFVE1BUCIsCTB4NDkxMn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFTTCIsCTB4NDkxM30sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERJTCIsCTB4NDkxNH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVENQUyIsCTB4NDkxNX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0dFVERWUiIsCTB4NDkxNn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVExDUiIsCTB4NDkxN30sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERXUlNFVCIsCTB4NDkxOH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEFMTiIsCTB4NDkyMH0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVERMTiIsCTB4NDkyMX0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ05FVEdQTiIsCTB4NDkyMn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RCR1ZBUiIsCTB4NDk3Zn0sCisJeyJsaW51eC9pc2RuLmgiLAkiSUlPQ0RSVkNUTCIsCTB4NDk4MH0sCisJeyJsaW51eC9rZC5oIiwJIktJT0NTT1VORCIsCTB4NGIyZn0sCisJeyJsaW51eC9rZC5oIiwJIktETUtUT05FIiwJMHg0YjMwfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHRVRMRUQiLAkweDRiMzF9LAorCXsibGludXgva2QuaCIsCSJLRFNFVExFRCIsCTB4NGIzMn0sCisJeyJsaW51eC9rZC5oIiwJIktER0tCVFlQRSIsCTB4NGIzM30sCisJeyJsaW51eC9rZC5oIiwJIktEQURESU8iLAkweDRiMzR9LAorCXsibGludXgva2QuaCIsCSJLRERFTElPIiwJMHg0YjM1fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RFTkFCSU8iLAkweDRiMzZ9LAorCXsibGludXgva2QuaCIsCSJLRERJU0FCSU8iLAkweDRiMzd9LAorCXsibGludXgva2QuaCIsCSJLRFNFVE1PREUiLAkweDRiM2F9LAorCXsibGludXgva2QuaCIsCSJLREdFVE1PREUiLAkweDRiM2J9LAorCXsibGludXgva2QuaCIsCSJLRE1BUERJU1AiLAkweDRiM2N9LAorCXsibGludXgva2QuaCIsCSJLRFVOTUFQRElTUCIsCTB4NGIzZH0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19TQ1JOTUFQIiwJMHg0YjQwfSwKKwl7ImxpbnV4L2tkLmgiLAkiUElPX1NDUk5NQVAiLAkweDRiNDF9LAorCXsibGludXgva2QuaCIsCSJLREdLQk1PREUiLAkweDRiNDR9LAorCXsibGludXgva2QuaCIsCSJLRFNLQk1PREUiLAkweDRiNDV9LAorCXsibGludXgva2QuaCIsCSJLREdLQkVOVCIsCTB4NGI0Nn0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCRU5UIiwJMHg0YjQ3fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JTRU5UIiwJMHg0YjQ4fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTS0JTRU5UIiwJMHg0YjQ5fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JESUFDUiIsCTB4NGI0YX0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCRElBQ1IiLAkweDRiNGJ9LAorCXsibGludXgva2QuaCIsCSJLREdFVEtFWUNPREUiLAkweDRiNGN9LAorCXsibGludXgva2QuaCIsCSJLRFNFVEtFWUNPREUiLAkweDRiNGR9LAorCXsibGludXgva2QuaCIsCSJLRFNJR0FDQ0VQVCIsCTB4NGI0ZX0sCisJeyJsaW51eC9rZC5oIiwJIktER0hXQ0xLIiwJMHg0YjUwfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTSFdDTEsiLAkweDRiNTF9LAorCXsibGludXgva2QuaCIsCSJLREtCRFJFUCIsCTB4NGI1Mn0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19GT05UIiwJMHg0YjYwfSwKKwl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlQiLAkweDRiNjF9LAorCXsibGludXgva2QuaCIsCSJLREdLQk1FVEEiLAkweDRiNjJ9LAorCXsibGludXgva2QuaCIsCSJLRFNLQk1FVEEiLAkweDRiNjN9LAorCXsibGludXgva2QuaCIsCSJLREdLQkxFRCIsCTB4NGI2NH0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCTEVEIiwJMHg0YjY1fSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSU1BUCIsCTB4NGI2Nn0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVAiLAkweDRiNjd9LAorCXsibGludXgva2QuaCIsCSJQSU9fVU5JTUFQQ0xSIiwJMHg0YjY4fSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSVNDUk5NQVAiLAkweDRiNjl9LAorCXsibGludXgva2QuaCIsCSJQSU9fVU5JU0NSTk1BUCIsCTB4NGI2YX0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19GT05UWCIsCTB4NGI2Yn0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19GT05UWCIsCTB4NGI2Y30sCisJeyJsaW51eC9rZC5oIiwJIlBJT19GT05UUkVTRVQiLAkweDRiNmR9LAorCXsibGludXgva2QuaCIsCSJHSU9fQ01BUCIsCTB4NGI3MH0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19DTUFQIiwJMHg0YjcxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RGT05UT1AiLAkweDRiNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBBVVNFIiwJMHg1MzAxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNVTUUiLAkweDUzMDJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlNU0YiLAkweDUzMDN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlUUktJTkQiLAkweDUzMDR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NIRFIiLAkweDUzMDV9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NFTlRSWSIsCTB4NTMwNn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RPUCIsCTB4NTMwN30sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RBUlQiLAkweDUzMDh9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUIiwJMHg1MzA5fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01WT0xDVFJMIiwJMHg1MzBhfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVUJDSE5MIiwJMHg1MzBifSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFETU9ERTIiLAkweDUzMGN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMSIsCTB4NTMwZH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFVRElPIiwJMHg1MzBlfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01FSkVDVF9TVyIsCTB4NTMwZn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NTVVMVElTRVNTSU9OIiwJMHg1MzEwfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fR0VUX01DTiIsCTB4NTMxMX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVTRVQiLAkweDUzMTJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTFJFQUQiLAkweDUzMTN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURSQVciLAkweDUzMTR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURDT09LRUQiLAkweDUzMTV9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFRUsiLAkweDUzMTZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlCTEsiLAkweDUzMTd9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURBTEwiLAkweDUzMTh9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUNMT1NFVFJBWSIsCTB4NTMxOX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NR0VUU1BJTkRPV04iLAkweDUzMWR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFVFNQSU5ET1dOIiwJMHg1MzFlfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VUX09QVElPTlMiLAkweDUzMjB9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DTEVBUl9PUFRJT05TIiwJMHg1MzIxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX1NQRUVEIiwJMHg1MzIyfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX0RJU0MiLAkweDUzMjN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9NRURJQV9DSEFOR0VEIiwJMHg1MzI1fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRFJJVkVfU1RBVFVTIiwJMHg1MzI2fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRElTQ19TVEFUVVMiLAkweDUzMjd9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DSEFOR0VSX05TTE9UUyIsCTB4NTMyOH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0xPQ0tET09SIiwJMHg1MzI5fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fREVCVUciLAkweDUzMzB9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsCTB4NTMzMX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQVVESU9CVUZTSVoiLAkweDUzODJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJEVkRfUkVBRF9TVFJVQ1QiLAkweDUzOTB9LAorCXsibGludXgvY2Ryb20uaCIsCSJEVkRfV1JJVEVfU1RSVUNUIiwJMHg1MzkxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX0FVVEgiLAkweDUzOTJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRU5EX1BBQ0tFVCIsCTB4NTM5M30sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX05FWFRfV1JJVEFCTEUiLAkweDUzOTR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MQVNUX1dSSVRURU4iLAkweDUzOTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg1NDAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NTQwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NTQwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDU0MDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NTQ1MH0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NTQ1MX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDU0NTJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSEFZRVNFU1AiLAkweDU0NWV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTSEFZRVNFU1AiLAkweDU0NWZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT1FTSVpFIiwJMHg1NDYwfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCisJeyJsaW51eC92dC5oIiwJIlZUX09QRU5RUlkiLAkweDU2MDB9LAorCXsibGludXgvdnQuaCIsCSJWVF9HRVRNT0RFIiwJMHg1NjAxfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VUTU9ERSIsCTB4NTYwMn0sCisJeyJsaW51eC92dC5oIiwJIlZUX0dFVFNUQVRFIiwJMHg1NjAzfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VORFNJRyIsCTB4NTYwNH0sCisJeyJsaW51eC92dC5oIiwJIlZUX1JFTERJU1AiLAkweDU2MDV9LAorCXsibGludXgvdnQuaCIsCSJWVF9BQ1RJVkFURSIsCTB4NTYwNn0sCisJeyJsaW51eC92dC5oIiwJIlZUX1dBSVRBQ1RJVkUiLAkweDU2MDd9LAorCXsibGludXgvdnQuaCIsCSJWVF9ESVNBTExPQ0FURSIsCTB4NTYwOH0sCisJeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRSIsCTB4NTYwOX0sCisJeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRVgiLAkweDU2MGF9LAorCXsibGludXgvdnQuaCIsCSJWVF9MT0NLU1dJVENIIiwJMHg1NjBifSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfVU5MT0NLU1dJVENIIiwJMHg1NjBjfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCisJeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCisJeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCisJeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKKwl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTUEFSQU1TIiwJMHg2ZDAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NUWElETEUiLAkweDZkMDJ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVENPTkZJRyIsCTB4NmQwNH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DU0VUQ09ORklHIiwJMHg2ZDA1fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEFCT1JUIiwJMHg2ZDA2fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dTVEFUUyIsCTB4NmQwN30sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NXQUlURVZFTlQiLAkweDZkMDh9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DTE9PUFRYRE9ORSIsCTB4NmQwOX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCisJeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAorCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAorCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVElORk8iLAkweDcxMDF9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSUEFHRSIsCTB4NzEwMn0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJGT1VORCIsCTB4NzEwM30sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQQUdFUkVRIiwJMHg3MTA0fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0dFVFNUQVQiLAkweDcxMDV9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUUEFHRSIsCTB4NzEwNn0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTVE9QREFVIiwJMHg3MTA3fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFBBR0UiLAkweDcxMDh9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VURElTUCIsCTB4NzEwOX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NQVVRTVEFUIiwJMHg3MTBhfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkNBQ0hFIiwJMHg3MTBifSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NFVFZJUlQiLAkweDcxMGN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTIiwJMHg3MTgwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19MSVNUIiwJMHg3MTgxfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsCTB4NzE4Mn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HIiwJMHg3MTgzfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0hPT0tTVEFURSIsCTB4NzE4NH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9NQVhSSU5HUyIsCTB4NzE4NX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX0NBREVOQ0UiLAkweDcxODZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiT0xEX1BIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUT1AiLAkweDcxODh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0NPREVDIiwJMHg3MTg5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVEFSVCIsCTB4NzE4YX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RPUCIsCTB4NzE4Yn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfREVQVEgiLAkweDcxOGN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRlJBTUUiLAkweDcxOGR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRSIsCTB4NzE4ZX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfTEVWRUwiLAkweDcxOGZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9DT0RFQyIsCTB4NzE5MH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUQVJUIiwJMHg3MTkxfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RPUCIsCTB4NzE5Mn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0RFUFRIIiwJMHg3MTkzfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FIiwJMHg3MTk0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfTEVWRUwiLAkweDcxOTV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9SRUFEWSIsCTB4NzE5Nn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRiIsCTB4NzE5N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfRFRNRl9BU0NJSSIsCTB4NzE5OH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX09PQiIsCTB4NzE5OX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9FWENFUFRJT04iLAkweDcxOWF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9UT05FIiwJMHg3MTlifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09OX1RJTUUiLAkweDcxOWN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT05fVElNRSIsCTB4NzE5ZX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5Zn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9TVEFURSIsCTB4NzFhMH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9CVVNZIiwJMHg3MWExfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdCQUNLIiwJMHg3MWEyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RJQUxUT05FIiwJMHg3MWEzfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NQVF9TVE9QIiwJMHg3MWE0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwJMHg3MWE0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwJMHg3MWE1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTktfRFVSQVRJT04iLAkweDcxYTZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUVVFUllfQ09ERUMiLAkweDcxYTd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9MSU5FVEVTVCIsCTB4NzFhOH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9WQUQiLAkweDcxYTl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOSyIsCTB4NzFhYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9SRVNFVCIsCTB4NzFjMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NBUkRUWVBFIiwJMHg3MWMxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VSSUFMIiwJMHg3MWMyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1RZUEUiLAkweDcxYzN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVkVSU0lPTiIsCTB4NzFjNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9JRExFIiwJMHg3MWM1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVEVTVFJBTSIsCTB4NzFjNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVIiLAkweDcxYzd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLAkweDcxYzh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTklUX1RPTkUiLAkweDcxYzl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9UT05FX0NBREVOQ0UiLAkweDcxY2F9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RBUlQiLAkweDcxY2J9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfU1RPUCIsCTB4NzFjY30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLAkweDcxY2R9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfTEVEIiwJMHg3MWNlfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfTUlYRVIiLAkweDcxY2Z9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwJMHg3MWQwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9SVCIsCTB4NzFkMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9BR0FJTiIsCTB4NzFkMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BTVE5fTElORVRFU1QiLAkweDcxZDN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSUQiLAkweDcxZDR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1RTX1BTVE4iLAkweDcxZDV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GSUxURVJfQ0FERU5DRSIsCTB4NzFkNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BMQVlfQ0lEIiwJMHg3MWQ3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVk1XSSIsCTB4NzFkOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRENXIiwJMHg3MWQ5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVkVSU0lPTiIsCTB4NzFkYX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FX0xJTkVBUiIsCTB4NzFkYn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSX1JBVyIsCTB4NzFkZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0haIiwJMHg3MWUwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkFURSIsCTB4NzFlMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19SRUFEIiwJMHg3MWUyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1dSSVRURU4iLAkweDcxZTN9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SRUFEX1dBSVQiLAkweDcxZTR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9XUklURV9XQUlUIiwJMHg3MWU1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLAkweDcxZTZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfQ0xFQVIiLAkweDcxZTd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EVE1GX1BSRVNDQUxFIiwJMHg3MWU4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0lHQ1RMIiwJMHg3MWU5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfUlhHIiwJMHg3MWVhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0NfVFhHIiwJMHg3MWVifSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RBUlQiLAkweDcxZmR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVE9QIiwJMHg3MWZlfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVElORk8iLAkweDcyMDF9LAorCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NSRVNFVCIsCTB4NzIwMn0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRGUkVRIiwJMHg3MjAzfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVEZSRVEiLAkweDcyMDR9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DU0VUQ0hBTiIsCTB4NzIwNX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NHRVRDSEFOIiwJMHg3MjA2fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfSEFTSCIsCTB4NzQ1YX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHRkxBR1MiLAkweDc0NWF9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCisJeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCisJeyJhc20vc29ja2lvcy5oIiwJIkZJT1NFVE9XTiIsCTB4ODkwMX0sCisJeyJhc20vc29ja2lvcy5oIiwJIlNJT0NTUEdSUCIsCTB4ODkwMn0sCisJeyJhc20vc29ja2lvcy5oIiwJIkZJT0dFVE9XTiIsCTB4ODkwM30sCisJeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHUEdSUCIsCTB4ODkwNH0sCisJeyJhc20vc29ja2lvcy5oIiwJIlNJT0NBVE1BUksiLAkweDg5MDV9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1NUQU1QIiwJMHg4OTA2fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQUREUlQiLAkweDg5MGJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxSVCIsCTB4ODkwY30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1JUTVNHIiwJMHg4OTBkfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkFNRSIsCTB4ODkxMH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkxJTksiLAkweDg5MTF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT05GIiwJMHg4OTEyfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRkxBR1MiLAkweDg5MTN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZGTEFHUyIsCTB4ODkxNH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkFERFIiLAkweDg5MTV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZBRERSIiwJMHg4OTE2fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRFNUQUREUiIsCTB4ODkxN30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkRTVEFERFIiLAkweDg5MTh9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZCUkRBRERSIiwJMHg4OTE5fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlJEQUREUiIsCTB4ODkxYX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk5FVE1BU0siLAkweDg5MWJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZORVRNQVNLIiwJMHg4OTFjfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUVUUklDIiwJMHg4OTFkfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUVUUklDIiwJMHg4OTFlfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUVNIiwJMHg4OTFmfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUVNIiwJMHg4OTIwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTVRVIiwJMHg4OTIxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTVRVIiwJMHg4OTIyfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTkFNRSIsCTB4ODkyM30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkhXQUREUiIsCTB4ODkyNH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkVOQ0FQIiwJMHg4OTI1fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRU5DQVAiLAkweDg5MjZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZIV0FERFIiLAkweDg5Mjd9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZTTEFWRSIsCTB4ODkyOX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlNMQVZFIiwJMHg4OTMwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURETVVMVEkiLAkweDg5MzF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxNVUxUSSIsCTB4ODkzMn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRklOREVYIiwJMHg4OTMzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGUEZMQUdTIiwJMHg4OTM0fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGUEZMQUdTIiwJMHg4OTM1fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRElGQUREUiIsCTB4ODkzNn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkhXQlJPQURDQVNUIiwJMHg4OTM3fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQ09VTlQiLAkweDg5Mzh9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZCUiIsCTB4ODk0MH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkJSIiwJMHg4OTQxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGVFhRTEVOIiwJMHg4OTQyfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVFhRTEVOIiwJMHg4OTQzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRElWRVJUIiwJMHg4OTQ0fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRElWRVJUIiwJMHg4OTQ1fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRVRIVE9PTCIsCTB4ODk0Nn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlQSFkiLAkweDg5NDd9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHTUlJUkVHIiwJMHg4OTQ4fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU01JSVJFRyIsCTB4ODk0OX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RBUlAiLAkweDg5NTN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHQVJQIiwJMHg4OTU0fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0FSUCIsCTB4ODk1NX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RSQVJQIiwJMHg4OTYwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR1JBUlAiLAkweDg5NjF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTUkFSUCIsCTB4ODk2Mn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1BUCIsCTB4ODk3MH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1BUCIsCTB4ODk3MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERERMQ0kiLAkweDg5ODB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERUxETENJIiwJMHg4OTgxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGVkxBTiIsCTB4ODk4Mn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlZMQU4iLAkweDg5ODN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05ERU5TTEFWRSIsCTB4ODk5MH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRSRUxFQVNFIiwJMHg4OTkxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNFVEhXQUREUiIsCTB4ODk5Mn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRTTEFWRUlORk9RVUVSWSIsCTB4ODk5M30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRJTkZPUVVFUlkiLAkweDg5OTR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EQ0hBTkdFQUNUSVZFIiwJMHg4OTk1fSwKKwl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1BST1RPUFJJVkFURSIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERVZQUklWQVRFIiwJMHg4OWYwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0lXRklSU1QiLAkweDhiMDB9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXQ09NTUlUIiwJMHg4YjAwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV05BTUUiLAkweDhiMDF9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTldJRCIsCTB4OGIwMn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOV0lEIiwJMHg4YjAzfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0ZSRVEiLAkweDhiMDR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRlJFUSIsCTB4OGIwNX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdNT0RFIiwJMHg4YjA2fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV01PREUiLAkweDhiMDd9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU0VOUyIsCTB4OGIwOH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTRU5TIiwJMHg4YjA5fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JBTkdFIiwJMHg4YjBhfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JBTkdFIiwJMHg4YjBifSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1BSSVYiLAkweDhiMGN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUFJJViIsCTB4OGIwZH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTVEFUUyIsCTB4OGIwZX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdTVEFUUyIsCTB4OGIwZn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTUFkiLAkweDhiMTB9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU1BZIiwJMHg4YjExfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0FQIiwJMHg4YjE0fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQIiwJMHg4YjE1fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQTElTVCIsCTB4OGIxN30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTQ0FOIiwJMHg4YjE4fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NDQU4iLAkweDhiMTl9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRVNTSUQiLAkweDhiMWF9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRVNTSUQiLAkweDhiMWJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTklDS04iLAkweDhiMWN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTklDS04iLAkweDhiMWR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFURSIsCTB4OGIyMH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQVRFIiwJMHg4YjIxfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JUUyIsCTB4OGIyMn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSVFMiLAkweDhiMjN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJBRyIsCTB4OGIyNH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkFHIiwJMHg4YjI1fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1RYUE9XIiwJMHg4YjI2fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RYUE9XIiwJMHg4YjI3fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JFVFJZIiwJMHg4YjI4fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JFVFJZIiwJMHg4YjI5fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VOQ09ERSIsCTB4OGIyYX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFTkNPREUiLAkweDhiMmJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUE9XRVIiLAkweDhiMmN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUE9XRVIiLAkweDhiMmR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVFBSSVYiLAkweDhiZTB9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdMQVNUUFJJViIsCTB4OGJmZn0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCisJeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKKwl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAorCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCisJeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAorCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCisJeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZmMDB9LApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lhNjQvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvaWE2NC9zaWduYWxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzkxYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L2lhNjQvc2lnbmFsZW50LmgKQEAgLTAsMCArMSw2NCBAQAorCSJTSUdfMCIsCS8qIDAgKi8KKwkiU0lHSFVQIiwJLyogMSAqLworCSJTSUdJTlQiLAkvKiAyICovCisJIlNJR1FVSVQiLAkvKiAzICovCisJIlNJR0lMTCIsCS8qIDQgKi8KKwkiU0lHVFJBUCIsCS8qIDUgKi8KKwkiU0lHQUJSVCIsCS8qIDYgKi8KKwkiU0lHQlVTIiwJLyogNyAqLworCSJTSUdGUEUiLAkvKiA4ICovCisJIlNJR0tJTEwiLAkvKiA5ICovCisJIlNJR1VTUjEiLAkvKiAxMCAqLworCSJTSUdTRUdWIiwJLyogMTEgKi8KKwkiU0lHVVNSMiIsCS8qIDEyICovCisJIlNJR1BJUEUiLAkvKiAxMyAqLworCSJTSUdBTFJNIiwJLyogMTQgKi8KKwkiU0lHVEVSTSIsCS8qIDE1ICovCisJIlNJR1NUS0ZMVCIsCS8qIDE2ICovCisJIlNJR0NITEQiLAkvKiAxNyAqLworCSJTSUdDT05UIiwJLyogMTggKi8KKwkiU0lHU1RPUCIsCS8qIDE5ICovCisJIlNJR1RTVFAiLAkvKiAyMCAqLworCSJTSUdUVElOIiwJLyogMjEgKi8KKwkiU0lHVFRPVSIsCS8qIDIyICovCisJIlNJR1VSRyIsCS8qIDIzICovCisJIlNJR1hDUFUiLAkvKiAyNCAqLworCSJTSUdYRlNaIiwJLyogMjUgKi8KKwkiU0lHVlRBTFJNIiwJLyogMjYgKi8KKwkiU0lHUFJPRiIsCS8qIDI3ICovCisJIlNJR1dJTkNIIiwJLyogMjggKi8KKwkiU0lHSU8iLAkvKiAyOSAqLworCSJTSUdQV1IiLAkvKiAzMCAqLworCSJTSUdTWVMiLAkvKiAzMSAqLworCSJTSUdSVDAiLAkvKiAzMiAqLworCSJTSUdSVDEiLAkvKiAzMyAqLworCSJTSUdSVDIiLAkvKiAzNCAqLworCSJTSUdSVDMiLAkvKiAzNSAqLworCSJTSUdSVDQiLAkvKiAzNiAqLworCSJTSUdSVDUiLAkvKiAzNyAqLworCSJTSUdSVDYiLAkvKiAzOCAqLworCSJTSUdSVDciLAkvKiAzOSAqLworCSJTSUdSVDgiLAkvKiA0MCAqLworCSJTSUdSVDkiLAkvKiA0MSAqLworCSJTSUdSVDEwIiwJLyogNDIgKi8KKwkiU0lHUlQxMSIsCS8qIDQzICovCisJIlNJR1JUMTIiLAkvKiA0NCAqLworCSJTSUdSVDEzIiwJLyogNDUgKi8KKwkiU0lHUlQxNCIsCS8qIDQ2ICovCisJIlNJR1JUMTUiLAkvKiA0NyAqLworCSJTSUdSVDE2IiwJLyogNDggKi8KKwkiU0lHUlQxNyIsCS8qIDQ5ICovCisJIlNJR1JUMTgiLAkvKiA1MCAqLworCSJTSUdSVDE5IiwJLyogNTEgKi8KKwkiU0lHUlQyMCIsCS8qIDUyICovCisJIlNJR1JUMjEiLAkvKiA1MyAqLworCSJTSUdSVDIyIiwJLyogNTQgKi8KKwkiU0lHUlQyMyIsCS8qIDU1ICovCisJIlNJR1JUMjQiLAkvKiA1NiAqLworCSJTSUdSVDI1IiwJLyogNTcgKi8KKwkiU0lHUlQyNiIsCS8qIDU4ICovCisJIlNJR1JUMjciLAkvKiA1OSAqLworCSJTSUdSVDI4IiwJLyogNjAgKi8KKwkiU0lHUlQyOSIsCS8qIDYxICovCisJIlNJR1JUMzAiLAkvKiA2MiAqLworCSJTSUdSVDMxIiwJLyogNjMgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9pYTY0L3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9pYTY0L3N5c2NhbGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTc2NGFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L2lhNjQvc3lzY2FsbGVudC5oCkBAIC0wLDAgKzEsMTExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5OSwgMjAwMSBIZXdsZXR0LVBhY2thcmQgQ28KKyAqCURhdmlkIE1vc2Jlcmdlci1UYW5nIDxkYXZpZG1AaHBsLmhwLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMTggMjAwNS8wNS8wOSAwODowMjowNSByb2xhbmQgRXhwICQKKyAqLworCisvKgorICogSUEtMzIgc3lzY2FsbHMgdGhhdCBoYXZlIHBvaW50ZXIgYXJndW1lbnRzIHdoaWNoIGFyZSBpbmNvbXBhdGlibGUKKyAqIHdpdGggNjQtYml0IGxheW91dCBnZXQgcmVkaXJlY3RlZCB0byBwcmludGFyZ3MuCisgKi8KKyNkZWZpbmUgc3lzX2dldHJsaW1pdAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19hZnNfc3lzY2FsbAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19nZXRwbXNnCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3B1dHBtc2cJCXByaW50YXJncworI2RlZmluZSBzeXNfdWdldHJsaW1pdAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19mb3JrCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3dhaXRwaWQJCXByaW50YXJncworI2RlZmluZSBzeXNfdGltZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19icmVhawkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19vbGRzdGF0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2xzZWVrCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3N0aW1lCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3B0cmFjZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19hbGFybQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19vbGRmc3RhdAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19wYXVzZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c191dGltZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zdHR5CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2d0dHkJCXByaW50YXJncworI2RlZmluZSBzeXNfZnRpbWUJCXByaW50YXJncworI2RlZmluZSBzeXNfcGlwZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c190aW1lcwkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19wcm9mCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NpZ25hbAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19sb2NrCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2lvY3RsCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2ZjbnRsCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX21weAkJCXByaW50YXJncworI2RlZmluZSBzeXNfdWxpbWl0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX29sZG9sZHVuYW1lCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NpZ2FjdGlvbgkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zZ2V0bWFzawkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zc2V0bWFzawkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zaWdzdXNwZW5kCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NpZ3BlbmRpbmcJCXByaW50YXJncworI2RlZmluZSBzeXNfc2V0cmxpbWl0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2dldHJ1c2FnZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19nZXR0aW1lb2ZkYXkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zZXR0aW1lb2ZkYXkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19nZXRncm91cHMJCXByaW50YXJncworI2RlZmluZSBzeXNfc2V0Z3JvdXBzCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NlbGVjdAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19vbGRsc3RhdAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19yZWFkZGlyCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3Byb2ZpbAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zdGF0ZnMJCXByaW50YXJncworI2RlZmluZSBzeXNfZnN0YXRmcwkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19pb3Blcm0JCXByaW50YXJncworI2RlZmluZSBzeXNfc29ja2V0Y2FsbAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19zZXRpdGltZXIJCXByaW50YXJncworI2RlZmluZSBzeXNfZ2V0aXRpbWVyCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3N0YXQJCXByaW50YXJncworI2RlZmluZSBzeXNfbHN0YXQJCXByaW50YXJncworI2RlZmluZSBzeXNfZnN0YXQJCXByaW50YXJncworI2RlZmluZSBzeXNfb2xkdW5hbWUJCXByaW50YXJncworI2RlZmluZSBzeXNfaW9wbAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19pZGxlCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3ZtODZvbGQJCXByaW50YXJncworI2RlZmluZSBzeXNfd2FpdDQJCXByaW50YXJncworI2RlZmluZSBzeXNfc3lzaW5mbwkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19pcGMJCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NpZ3JldHVybgkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c191bmFtZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19tb2RpZnlfbGR0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2FkanRpbWV4CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NpZ3Byb2NtYXNrCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2NyZWF0ZV9tb2R1bGUJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19pbml0X21vZHVsZQkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19nZXRfa2VybmVsX3N5bXMJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19xdW90YWN0bAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19iZGZsdXNoCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3BlcnNvbmFsaXR5CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2dldGRlbnRzCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX19uZXdzZWxlY3QJCXByaW50YXJncworI2RlZmluZSBzeXNfbXN5bmMJCXByaW50YXJncworI2RlZmluZSBzeXNfcmVhZHYJCXByaW50YXJncworI2RlZmluZSBzeXNfd3JpdGV2CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX19zeXNjdGwJCXByaW50YXJncworI2RlZmluZSBzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsIHByaW50YXJncworI2RlZmluZSBzeXNfZ2V0cmVzdWlkCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3ZtODYJCXByaW50YXJncworI2RlZmluZSBzeXNfcXVlcnlfbW9kdWxlCXByaW50YXJncworI2RlZmluZSBzeXNfbmZzc2VydmN0bAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19nZXRyZXNnaWQJCXByaW50YXJncworI2RlZmluZSBzeXNfcnRfc2lncmV0dXJuCXByaW50YXJncworI2RlZmluZSBzeXNfcnRfc2lnYWN0aW9uCXByaW50YXJncworI2RlZmluZSBzeXNfcnRfc2lncHJvY21hc2sJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19ydF9zaWd0aW1lZHdhaXQJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19ydF9zaWdxdWV1ZWluZm8JcHJpbnRhcmdzCisjZGVmaW5lIHN5c19ydF9zaWdzdXNwZW5kCXByaW50YXJncworI2RlZmluZSBzeXNfcHJlYWQJCXByaW50YXJncworI2RlZmluZSBzeXNfcHdyaXRlCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NpZ2FsdHN0YWNrCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3NlbmRmaWxlCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3Zmb3JrCQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX3RydW5jYXRlNjQJCXByaW50YXJncworI2RlZmluZSBzeXNfZnRydW5jYXRlNjQJCXByaW50YXJncworI2RlZmluZSBzeXNfc3RhdDY0CQlwcmludGFyZ3MKKyNkZWZpbmUgc3lzX2xzdGF0NjQJCXByaW50YXJncworI2RlZmluZSBzeXNfZnN0YXQ2NAkJcHJpbnRhcmdzCisjZGVmaW5lIHN5c19mY250bDY0CQlwcmludGFyZ3MKKworI2luY2x1ZGUgIi4uL3N5c2NhbGxlbnQuaCIKKworI3VuZGVmIHN5c19nZXRybGltaXQKKyN1bmRlZiBzeXNfYWZzX3N5c2NhbGwKKyN1bmRlZiBzeXNfZ2V0cG1zZworI3VuZGVmIHN5c19wdXRwbXNnCisjdW5kZWYgc3lzX3VnZXRybGltaXQKKyN1bmRlZiBzeXNfZm9yaworI3VuZGVmIHN5c193YWl0cGlkCisjdW5kZWYgc3lzX3RpbWUKKyN1bmRlZiBzeXNfYnJlYWsKKyN1bmRlZiBzeXNfb2xkc3RhdAorI3VuZGVmIHN5c19sc2VlaworI3VuZGVmIHN5c19zdGltZQorI3VuZGVmIHN5c19wdHJhY2UKKyN1bmRlZiBzeXNfYWxhcm0KKyN1bmRlZiBzeXNfb2xkZnN0YXQKKyN1bmRlZiBzeXNfcGF1c2UKKyN1bmRlZiBzeXNfdXRpbWUKKyN1bmRlZiBzeXNfc3R0eQorI3VuZGVmIHN5c19ndHR5CisjdW5kZWYgc3lzX2Z0aW1lCisjdW5kZWYgc3lzX3BpcGUKKyN1bmRlZiBzeXNfdGltZXMKKyN1bmRlZiBzeXNfcHJvZgorI3VuZGVmIHN5c19zaWduYWwKKyN1bmRlZiBzeXNfbG9jaworI3VuZGVmIHN5c19pb2N0bAorI3VuZGVmIHN5c19mY250bAorI3VuZGVmIHN5c19tcHgKKyN1bmRlZiBzeXNfdWxpbWl0CisjdW5kZWYgc3lzX29sZG9sZHVuYW1lCisjdW5kZWYgc3lzX3NpZ2FjdGlvbgorI3VuZGVmIHN5c19zZ2V0bWFzaworI3VuZGVmIHN5c19zc2V0bWFzaworI3VuZGVmIHN5c19zaWdzdXNwZW5kCisjdW5kZWYgc3lzX3NpZ3BlbmRpbmcKKyN1bmRlZiBzeXNfc2V0cmxpbWl0CisjdW5kZWYgc3lzX2dldHJ1c2FnZQorI3VuZGVmIHN5c19nZXR0aW1lb2ZkYXkKKyN1bmRlZiBzeXNfc2V0dGltZW9mZGF5CisjdW5kZWYgc3lzX2dldGdyb3VwcworI3VuZGVmIHN5c19zZXRncm91cHMKKyN1bmRlZiBzeXNfc2VsZWN0CisjdW5kZWYgc3lzX29sZGxzdGF0CisjdW5kZWYgc3lzX3JlYWRkaXIKKyN1bmRlZiBzeXNfcHJvZmlsCisjdW5kZWYgc3lzX3N0YXRmcworI3VuZGVmIHN5c19mc3RhdGZzCisjdW5kZWYgc3lzX2lvcGVybQorI3VuZGVmIHN5c19zb2NrZXRjYWxsCisjdW5kZWYgc3lzX3NldGl0aW1lcgorI3VuZGVmIHN5c19nZXRpdGltZXIKKyN1bmRlZiBzeXNfc3RhdAorI3VuZGVmIHN5c19sc3RhdAorI3VuZGVmIHN5c19mc3RhdAorI3VuZGVmIHN5c19vbGR1bmFtZQorI3VuZGVmIHN5c19pb3BsCisjdW5kZWYgc3lzX2lkbGUKKyN1bmRlZiBzeXNfdm04Nm9sZAorI3VuZGVmIHN5c193YWl0NAorI3VuZGVmIHN5c19zeXNpbmZvCisjdW5kZWYgc3lzX2lwYworI3VuZGVmIHN5c19zaWdyZXR1cm4KKyN1bmRlZiBzeXNfdW5hbWUKKyN1bmRlZiBzeXNfbW9kaWZ5X2xkdAorI3VuZGVmIHN5c19hZGp0aW1leAorI3VuZGVmIHN5c19zaWdwcm9jbWFzaworI3VuZGVmIHN5c19jcmVhdGVfbW9kdWxlCisjdW5kZWYgc3lzX2luaXRfbW9kdWxlCisjdW5kZWYgc3lzX2RlbGV0ZV9tb2R1bGUKKyN1bmRlZiBzeXNfZ2V0X2tlcm5lbF9zeW1zCisjdW5kZWYgc3lzX3F1b3RhY3RsCisjdW5kZWYgc3lzX2JkZmx1c2gKKyN1bmRlZiBzeXNfcGVyc29uYWxpdHkKKyN1bmRlZiBzeXNfZ2V0ZGVudHMKKyN1bmRlZiBzeXNfX25ld3NlbGVjdAorI3VuZGVmIHN5c19tc3luYworI3VuZGVmIHN5c19yZWFkdgorI3VuZGVmIHN5c193cml0ZXYKKyN1bmRlZiBzeXNfX3N5c2N0bAorI3VuZGVmIHN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwKKyN1bmRlZiBzeXNfbmFub3NsZWVwCisjdW5kZWYgc3lzX2dldHJlc3VpZAorI3VuZGVmIHN5c192bTg2CisjdW5kZWYgc3lzX3F1ZXJ5X21vZHVsZQorI3VuZGVmIHN5c19uZnNzZXJ2Y3RsCisjdW5kZWYgc3lzX2dldHJlc2dpZAorI3VuZGVmIHN5c19ydF9zaWdyZXR1cm4KKyN1bmRlZiBzeXNfcnRfc2lnYWN0aW9uCisjdW5kZWYgc3lzX3J0X3NpZ3Byb2NtYXNrCisjdW5kZWYgc3lzX3J0X3NpZ3RpbWVkd2FpdAorI3VuZGVmIHN5c19ydF9zaWdxdWV1ZWluZm8KKyN1bmRlZiBzeXNfcnRfc2lnc3VzcGVuZAorI3VuZGVmIHN5c19wcmVhZAorI3VuZGVmIHN5c19wd3JpdGUKKyN1bmRlZiBzeXNfc2lnYWx0c3RhY2sKKyN1bmRlZiBzeXNfc2VuZGZpbGUKKyN1bmRlZiBzeXNfdmZvcmsKKyN1bmRlZiBzeXNfdHJ1bmNhdGU2NAorI3VuZGVmIHN5c19mdHJ1bmNhdGU2NAorI3VuZGVmIHN5c19zdGF0NjQKKyN1bmRlZiBzeXNfbHN0YXQ2NAorI3VuZGVmIHN5c19mc3RhdDY0CisjdW5kZWYgc3lzX2ZjbnRsNjQKKworI2luY2x1ZGUgIi4uL2R1bW15LmgiCisKKy8qIFlvdSBtdXN0IGJlIGNhcmVmdWwgdG8gY2hlY2sgLi4vc3lzY2FsbGVudC5oIHNvIHRoYXQgdGhpcyB0YWJsZQorICAgc3RhcnRzIHdoZXJlIHRoYXQgb25lIGxlYXZlcyBvZmYuCisqLworCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MyIJfSwgLyogNDQzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NCIJfSwgLyogNDQ0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NSIJfSwgLyogNDQ1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NiIJfSwgLyogNDQ2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NyIJfSwgLyogNDQ3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OCIJfSwgLyogNDQ4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OSIJfSwgLyogNDQ5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MCIJfSwgLyogNDUwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MSIJfSwgLyogNDUxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MiIJfSwgLyogNDUyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MyIJfSwgLyogNDUzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NCIJfSwgLyogNDU0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NSIJfSwgLyogNDU1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NiIJfSwgLyogNDU2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NyIJfSwgLyogNDU3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OCIJfSwgLyogNDU4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OSIJfSwgLyogNDU5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MCIJfSwgLyogNDYwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MSIJfSwgLyogNDYxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MiIJfSwgLyogNDYyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MyIJfSwgLyogNDYzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NCIJfSwgLyogNDY0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NSIJfSwgLyogNDY1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NiIJfSwgLyogNDY2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NyIJfSwgLyogNDY3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OCIJfSwgLyogNDY4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OSIJfSwgLyogNDY5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MCIJfSwgLyogNDcwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MSIJfSwgLyogNDcxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MiIJfSwgLyogNDcyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MyIJfSwgLyogNDczICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NCIJfSwgLyogNDc0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NSIJfSwgLyogNDc1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NiIJfSwgLyogNDc2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NyIJfSwgLyogNDc3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OCIJfSwgLyogNDc4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OSIJfSwgLyogNDc5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MCIJfSwgLyogNDgwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MSIJfSwgLyogNDgxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MiIJfSwgLyogNDgyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MyIJfSwgLyogNDgzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NCIJfSwgLyogNDg0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NSIJfSwgLyogNDg1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NiIJfSwgLyogNDg2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NyIJfSwgLyogNDg3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OCIJfSwgLyogNDg4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OSIJfSwgLyogNDg5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MCIJfSwgLyogNDkwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MSIJfSwgLyogNDkxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MiIJfSwgLyogNDkyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MyIJfSwgLyogNDkzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NCIJfSwgLyogNDk0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NSIJfSwgLyogNDk1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NiIJfSwgLyogNDk2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NyIJfSwgLyogNDk3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OCIJfSwgLyogNDk4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OSIJfSwgLyogNDk5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwMCIJfSwgLyogNTAwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwMSIJfSwgLyogNTAxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwMiIJfSwgLyogNTAyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwMyIJfSwgLyogNTAzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwNCIJfSwgLyogNTA0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwNSIJfSwgLyogNTA1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwNiIJfSwgLyogNTA2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwNyIJfSwgLyogNTA3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwOCIJfSwgLyogNTA4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwOSIJfSwgLyogNTA5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxMCIJfSwgLyogNTEwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxMSIJfSwgLyogNTExICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxMiIJfSwgLyogNTEyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxMyIJfSwgLyogNTEzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxNCIJfSwgLyogNTE0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxNSIJfSwgLyogNTE1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxNiIJfSwgLyogNTE2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxNyIJfSwgLyogNTE3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxOCIJfSwgLyogNTE4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxOSIJfSwgLyogNTE5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMCIJfSwgLyogNTIwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMSIJfSwgLyogNTIxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMiIJfSwgLyogNTIyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMyIJfSwgLyogNTIzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNCIJfSwgLyogNTI0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNSIJfSwgLyogNTI1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNiIJfSwgLyogNTI2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNyIJfSwgLyogNTI3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyOCIJfSwgLyogNTI4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyOSIJfSwgLyogNTI5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMCIJfSwgLyogNTMwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMSIJfSwgLyogNTMxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMiIJfSwgLyogNTMyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMyIJfSwgLyogNTMzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNCIJfSwgLyogNTM0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNSIJfSwgLyogNTM1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNiIJfSwgLyogNTM2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNyIJfSwgLyogNTM3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzOCIJfSwgLyogNTM4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzOSIJfSwgLyogNTM5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MCIJfSwgLyogNTQwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MSIJfSwgLyogNTQxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MiIJfSwgLyogNTQyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MyIJfSwgLyogNTQzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NCIJfSwgLyogNTQ0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NSIJfSwgLyogNTQ1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NiIJfSwgLyogNTQ2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NyIJfSwgLyogNTQ3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0OCIJfSwgLyogNTQ4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0OSIJfSwgLyogNTQ5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MCIJfSwgLyogNTUwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MSIJfSwgLyogNTUxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MiIJfSwgLyogNTUyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MyIJfSwgLyogNTUzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NCIJfSwgLyogNTU0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NSIJfSwgLyogNTU1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NiIJfSwgLyogNTU2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NyIJfSwgLyogNTU3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1OCIJfSwgLyogNTU4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1OSIJfSwgLyogNTU5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MCIJfSwgLyogNTYwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MSIJfSwgLyogNTYxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MiIJfSwgLyogNTYyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MyIJfSwgLyogNTYzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NCIJfSwgLyogNTY0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NSIJfSwgLyogNTY1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NiIJfSwgLyogNTY2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NyIJfSwgLyogNTY3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2OCIJfSwgLyogNTY4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2OSIJfSwgLyogNTY5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MCIJfSwgLyogNTcwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MSIJfSwgLyogNTcxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MiIJfSwgLyogNTcyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MyIJfSwgLyogNTczICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NCIJfSwgLyogNTc0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NSIJfSwgLyogNTc1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NiIJfSwgLyogNTc2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NyIJfSwgLyogNTc3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3OCIJfSwgLyogNTc4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3OSIJfSwgLyogNTc5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MCIJfSwgLyogNTgwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MSIJfSwgLyogNTgxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MiIJfSwgLyogNTgyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MyIJfSwgLyogNTgzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NCIJfSwgLyogNTg0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NSIJfSwgLyogNTg1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NiIJfSwgLyogNTg2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NyIJfSwgLyogNTg3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4OCIJfSwgLyogNTg4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4OSIJfSwgLyogNTg5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MCIJfSwgLyogNTkwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MSIJfSwgLyogNTkxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MiIJfSwgLyogNTkyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MyIJfSwgLyogNTkzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NCIJfSwgLyogNTk0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NSIJfSwgLyogNTk1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NiIJfSwgLyogNTk2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NyIJfSwgLyogNTk3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5OCIJfSwgLyogNTk4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5OSIJfSwgLyogNTk5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwMCIJfSwgLyogNjAwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwMSIJfSwgLyogNjAxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwMiIJfSwgLyogNjAyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwMyIJfSwgLyogNjAzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwNCIJfSwgLyogNjA0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwNSIJfSwgLyogNjA1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwNiIJfSwgLyogNjA2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwNyIJfSwgLyogNjA3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwOCIJfSwgLyogNjA4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwOSIJfSwgLyogNjA5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxMCIJfSwgLyogNjEwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxMSIJfSwgLyogNjExICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxMiIJfSwgLyogNjEyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxMyIJfSwgLyogNjEzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxNCIJfSwgLyogNjE0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxNSIJfSwgLyogNjE1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxNiIJfSwgLyogNjE2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxNyIJfSwgLyogNjE3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxOCIJfSwgLyogNjE4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxOSIJfSwgLyogNjE5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMCIJfSwgLyogNjIwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMSIJfSwgLyogNjIxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMiIJfSwgLyogNjIyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMyIJfSwgLyogNjIzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNCIJfSwgLyogNjI0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNSIJfSwgLyogNjI1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNiIJfSwgLyogNjI2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNyIJfSwgLyogNjI3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyOCIJfSwgLyogNjI4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyOSIJfSwgLyogNjI5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMCIJfSwgLyogNjMwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMSIJfSwgLyogNjMxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMiIJfSwgLyogNjMyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMyIJfSwgLyogNjMzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNCIJfSwgLyogNjM0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNSIJfSwgLyogNjM1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNiIJfSwgLyogNjM2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNyIJfSwgLyogNjM3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOCIJfSwgLyogNjM4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOSIJfSwgLyogNjM5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MCIJfSwgLyogNjQwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MSIJfSwgLyogNjQxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MiIJfSwgLyogNjQyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MyIJfSwgLyogNjQzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NCIJfSwgLyogNjQ0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NSIJfSwgLyogNjQ1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NiIJfSwgLyogNjQ2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NyIJfSwgLyogNjQ3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0OCIJfSwgLyogNjQ4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0OSIJfSwgLyogNjQ5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MCIJfSwgLyogNjUwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MSIJfSwgLyogNjUxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MiIJfSwgLyogNjUyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MyIJfSwgLyogNjUzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NCIJfSwgLyogNjU0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NSIJfSwgLyogNjU1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NiIJfSwgLyogNjU2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NyIJfSwgLyogNjU3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1OCIJfSwgLyogNjU4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1OSIJfSwgLyogNjU5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MCIJfSwgLyogNjYwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MSIJfSwgLyogNjYxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MiIJfSwgLyogNjYyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MyIJfSwgLyogNjYzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NCIJfSwgLyogNjY0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NSIJfSwgLyogNjY1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NiIJfSwgLyogNjY2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NyIJfSwgLyogNjY3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OCIJfSwgLyogNjY4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OSIJfSwgLyogNjY5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MCIJfSwgLyogNjcwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MSIJfSwgLyogNjcxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MiIJfSwgLyogNjcyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MyIJfSwgLyogNjczICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NCIJfSwgLyogNjc0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NSIJfSwgLyogNjc1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NiIJfSwgLyogNjc2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NyIJfSwgLyogNjc3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3OCIJfSwgLyogNjc4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3OSIJfSwgLyogNjc5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MCIJfSwgLyogNjgwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MSIJfSwgLyogNjgxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MiIJfSwgLyogNjgyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MyIJfSwgLyogNjgzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NCIJfSwgLyogNjg0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NSIJfSwgLyogNjg1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NiIJfSwgLyogNjg2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NyIJfSwgLyogNjg3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4OCIJfSwgLyogNjg4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4OSIJfSwgLyogNjg5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MCIJfSwgLyogNjkwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MSIJfSwgLyogNjkxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MiIJfSwgLyogNjkyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MyIJfSwgLyogNjkzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NCIJfSwgLyogNjk0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NSIJfSwgLyogNjk1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NiIJfSwgLyogNjk2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NyIJfSwgLyogNjk3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OCIJfSwgLyogNjk4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OSIJfSwgLyogNjk5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwMCIJfSwgLyogNzAwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwMSIJfSwgLyogNzAxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwMiIJfSwgLyogNzAyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwMyIJfSwgLyogNzAzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwNCIJfSwgLyogNzA0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwNSIJfSwgLyogNzA1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwNiIJfSwgLyogNzA2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwNyIJfSwgLyogNzA3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwOCIJfSwgLyogNzA4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwOSIJfSwgLyogNzA5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxMCIJfSwgLyogNzEwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxMSIJfSwgLyogNzExICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxMiIJfSwgLyogNzEyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxMyIJfSwgLyogNzEzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxNCIJfSwgLyogNzE0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxNSIJfSwgLyogNzE1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxNiIJfSwgLyogNzE2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxNyIJfSwgLyogNzE3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxOCIJfSwgLyogNzE4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxOSIJfSwgLyogNzE5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyMCIJfSwgLyogNzIwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyMSIJfSwgLyogNzIxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyMiIJfSwgLyogNzIyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyMyIJfSwgLyogNzIzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyNCIJfSwgLyogNzI0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyNSIJfSwgLyogNzI1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyNiIJfSwgLyogNzI2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyNyIJfSwgLyogNzI3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyOCIJfSwgLyogNzI4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyOSIJfSwgLyogNzI5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczMCIJfSwgLyogNzMwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczMSIJfSwgLyogNzMxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczMiIJfSwgLyogNzMyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczMyIJfSwgLyogNzMzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczNCIJfSwgLyogNzM0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczNSIJfSwgLyogNzM1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczNiIJfSwgLyogNzM2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczNyIJfSwgLyogNzM3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczOCIJfSwgLyogNzM4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzczOSIJfSwgLyogNzM5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0MCIJfSwgLyogNzQwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0MSIJfSwgLyogNzQxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0MiIJfSwgLyogNzQyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0MyIJfSwgLyogNzQzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0NCIJfSwgLyogNzQ0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0NSIJfSwgLyogNzQ1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0NiIJfSwgLyogNzQ2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0NyIJfSwgLyogNzQ3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0OCIJfSwgLyogNzQ4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0OSIJfSwgLyogNzQ5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1MCIJfSwgLyogNzUwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1MSIJfSwgLyogNzUxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1MiIJfSwgLyogNzUyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1MyIJfSwgLyogNzUzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1NCIJfSwgLyogNzU0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1NSIJfSwgLyogNzU1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1NiIJfSwgLyogNzU2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1NyIJfSwgLyogNzU3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1OCIJfSwgLyogNzU4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1OSIJfSwgLyogNzU5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2MCIJfSwgLyogNzYwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2MSIJfSwgLyogNzYxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2MiIJfSwgLyogNzYyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2MyIJfSwgLyogNzYzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2NCIJfSwgLyogNzY0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2NSIJfSwgLyogNzY1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2NiIJfSwgLyogNzY2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2NyIJfSwgLyogNzY3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2OCIJfSwgLyogNzY4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2OSIJfSwgLyogNzY5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3MCIJfSwgLyogNzcwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3MSIJfSwgLyogNzcxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3MiIJfSwgLyogNzcyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3MyIJfSwgLyogNzczICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3NCIJfSwgLyogNzc0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3NSIJfSwgLyogNzc1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3NiIJfSwgLyogNzc2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3NyIJfSwgLyogNzc3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3OCIJfSwgLyogNzc4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3OSIJfSwgLyogNzc5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4MCIJfSwgLyogNzgwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4MSIJfSwgLyogNzgxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4MiIJfSwgLyogNzgyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4MyIJfSwgLyogNzgzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4NCIJfSwgLyogNzg0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4NSIJfSwgLyogNzg1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4NiIJfSwgLyogNzg2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4NyIJfSwgLyogNzg3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4OCIJfSwgLyogNzg4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4OSIJfSwgLyogNzg5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5MCIJfSwgLyogNzkwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5MSIJfSwgLyogNzkxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5MiIJfSwgLyogNzkyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5MyIJfSwgLyogNzkzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5NCIJfSwgLyogNzk0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5NSIJfSwgLyogNzk1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5NiIJfSwgLyogNzk2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5NyIJfSwgLyogNzk3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5OCIJfSwgLyogNzk4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5OSIJfSwgLyogNzk5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwMCIJfSwgLyogODAwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwMSIJfSwgLyogODAxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwMiIJfSwgLyogODAyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwMyIJfSwgLyogODAzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwNCIJfSwgLyogODA0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwNSIJfSwgLyogODA1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwNiIJfSwgLyogODA2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwNyIJfSwgLyogODA3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwOCIJfSwgLyogODA4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwOSIJfSwgLyogODA5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxMCIJfSwgLyogODEwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxMSIJfSwgLyogODExICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxMiIJfSwgLyogODEyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxMyIJfSwgLyogODEzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxNCIJfSwgLyogODE0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxNSIJfSwgLyogODE1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxNiIJfSwgLyogODE2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxNyIJfSwgLyogODE3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxOCIJfSwgLyogODE4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxOSIJfSwgLyogODE5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyMCIJfSwgLyogODIwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyMSIJfSwgLyogODIxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyMiIJfSwgLyogODIyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyMyIJfSwgLyogODIzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyNCIJfSwgLyogODI0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyNSIJfSwgLyogODI1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyNiIJfSwgLyogODI2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyNyIJfSwgLyogODI3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyOCIJfSwgLyogODI4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyOSIJfSwgLyogODI5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzMCIJfSwgLyogODMwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzMSIJfSwgLyogODMxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzMiIJfSwgLyogODMyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzMyIJfSwgLyogODMzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzNCIJfSwgLyogODM0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzNSIJfSwgLyogODM1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzNiIJfSwgLyogODM2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzNyIJfSwgLyogODM3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzOCIJfSwgLyogODM4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzOSIJfSwgLyogODM5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0MCIJfSwgLyogODQwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0MSIJfSwgLyogODQxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0MiIJfSwgLyogODQyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0MyIJfSwgLyogODQzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0NCIJfSwgLyogODQ0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0NSIJfSwgLyogODQ1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0NiIJfSwgLyogODQ2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0NyIJfSwgLyogODQ3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0OCIJfSwgLyogODQ4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0OSIJfSwgLyogODQ5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1MCIJfSwgLyogODUwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1MSIJfSwgLyogODUxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1MiIJfSwgLyogODUyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1MyIJfSwgLyogODUzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1NCIJfSwgLyogODU0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1NSIJfSwgLyogODU1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1NiIJfSwgLyogODU2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1NyIJfSwgLyogODU3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1OCIJfSwgLyogODU4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1OSIJfSwgLyogODU5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2MCIJfSwgLyogODYwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2MSIJfSwgLyogODYxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2MiIJfSwgLyogODYyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2MyIJfSwgLyogODYzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2NCIJfSwgLyogODY0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2NSIJfSwgLyogODY1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2NiIJfSwgLyogODY2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2NyIJfSwgLyogODY3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2OCIJfSwgLyogODY4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2OSIJfSwgLyogODY5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3MCIJfSwgLyogODcwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3MSIJfSwgLyogODcxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3MiIJfSwgLyogODcyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3MyIJfSwgLyogODczICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3NCIJfSwgLyogODc0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3NSIJfSwgLyogODc1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3NiIJfSwgLyogODc2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3NyIJfSwgLyogODc3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3OCIJfSwgLyogODc4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3OSIJfSwgLyogODc5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4MCIJfSwgLyogODgwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4MSIJfSwgLyogODgxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4MiIJfSwgLyogODgyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4MyIJfSwgLyogODgzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4NCIJfSwgLyogODg0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4NSIJfSwgLyogODg1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4NiIJfSwgLyogODg2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4NyIJfSwgLyogODg3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4OCIJfSwgLyogODg4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4OSIJfSwgLyogODg5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5MCIJfSwgLyogODkwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5MSIJfSwgLyogODkxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5MiIJfSwgLyogODkyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5MyIJfSwgLyogODkzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5NCIJfSwgLyogODk0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5NSIJfSwgLyogODk1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5NiIJfSwgLyogODk2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5NyIJfSwgLyogODk3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5OCIJfSwgLyogODk4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5OSIJfSwgLyogODk5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwMCIJfSwgLyogOTAwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwMSIJfSwgLyogOTAxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwMiIJfSwgLyogOTAyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwMyIJfSwgLyogOTAzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwNCIJfSwgLyogOTA0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwNSIJfSwgLyogOTA1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwNiIJfSwgLyogOTA2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwNyIJfSwgLyogOTA3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwOCIJfSwgLyogOTA4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwOSIJfSwgLyogOTA5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxMCIJfSwgLyogOTEwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxMSIJfSwgLyogOTExICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxMiIJfSwgLyogOTEyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxMyIJfSwgLyogOTEzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxNCIJfSwgLyogOTE0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxNSIJfSwgLyogOTE1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxNiIJfSwgLyogOTE2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxNyIJfSwgLyogOTE3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxOCIJfSwgLyogOTE4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxOSIJfSwgLyogOTE5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyMCIJfSwgLyogOTIwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyMSIJfSwgLyogOTIxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyMiIJfSwgLyogOTIyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyMyIJfSwgLyogOTIzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyNCIJfSwgLyogOTI0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyNSIJfSwgLyogOTI1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyNiIJfSwgLyogOTI2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyNyIJfSwgLyogOTI3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyOCIJfSwgLyogOTI4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyOSIJfSwgLyogOTI5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzMCIJfSwgLyogOTMwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzMSIJfSwgLyogOTMxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzMiIJfSwgLyogOTMyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzMyIJfSwgLyogOTMzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzNCIJfSwgLyogOTM0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzNSIJfSwgLyogOTM1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzNiIJfSwgLyogOTM2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzNyIJfSwgLyogOTM3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzOCIJfSwgLyogOTM4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzOSIJfSwgLyogOTM5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0MCIJfSwgLyogOTQwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0MSIJfSwgLyogOTQxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0MiIJfSwgLyogOTQyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0MyIJfSwgLyogOTQzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0NCIJfSwgLyogOTQ0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0NSIJfSwgLyogOTQ1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0NiIJfSwgLyogOTQ2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0NyIJfSwgLyogOTQ3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0OCIJfSwgLyogOTQ4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0OSIJfSwgLyogOTQ5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1MCIJfSwgLyogOTUwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1MSIJfSwgLyogOTUxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1MiIJfSwgLyogOTUyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1MyIJfSwgLyogOTUzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1NCIJfSwgLyogOTU0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1NSIJfSwgLyogOTU1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1NiIJfSwgLyogOTU2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1NyIJfSwgLyogOTU3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1OCIJfSwgLyogOTU4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1OSIJfSwgLyogOTU5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2MCIJfSwgLyogOTYwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2MSIJfSwgLyogOTYxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2MiIJfSwgLyogOTYyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2MyIJfSwgLyogOTYzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2NCIJfSwgLyogOTY0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2NSIJfSwgLyogOTY1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2NiIJfSwgLyogOTY2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2NyIJfSwgLyogOTY3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2OCIJfSwgLyogOTY4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2OSIJfSwgLyogOTY5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3MCIJfSwgLyogOTcwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3MSIJfSwgLyogOTcxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3MiIJfSwgLyogOTcyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3MyIJfSwgLyogOTczICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3NCIJfSwgLyogOTc0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3NSIJfSwgLyogOTc1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3NiIJfSwgLyogOTc2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3NyIJfSwgLyogOTc3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3OCIJfSwgLyogOTc4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3OSIJfSwgLyogOTc5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4MCIJfSwgLyogOTgwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4MSIJfSwgLyogOTgxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4MiIJfSwgLyogOTgyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4MyIJfSwgLyogOTgzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4NCIJfSwgLyogOTg0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4NSIJfSwgLyogOTg1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4NiIJfSwgLyogOTg2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4NyIJfSwgLyogOTg3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4OCIJfSwgLyogOTg4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4OSIJfSwgLyogOTg5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5MCIJfSwgLyogOTkwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5MSIJfSwgLyogOTkxICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5MiIJfSwgLyogOTkyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5MyIJfSwgLyogOTkzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5NCIJfSwgLyogOTk0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5NSIJfSwgLyogOTk1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5NiIJfSwgLyogOTk2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5NyIJfSwgLyogOTk3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5OCIJfSwgLyogOTk4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5OSIJfSwgLyogOTk5ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDAiCX0sIC8qIDEwMDAgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwMSIJfSwgLyogMTAwMSAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDAyIgl9LCAvKiAxMDAyICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDMiCX0sIC8qIDEwMDMgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwNCIJfSwgLyogMTAwNCAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDA1Igl9LCAvKiAxMDA1ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDYiCX0sIC8qIDEwMDYgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAwNyIJfSwgLyogMTAwNyAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDA4Igl9LCAvKiAxMDA4ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMDkiCX0sIC8qIDEwMDkgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxMCIJfSwgLyogMTAxMCAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDExIgl9LCAvKiAxMDExICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTIiCX0sIC8qIDEwMTIgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxMyIJfSwgLyogMTAxMyAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDE0Igl9LCAvKiAxMDE0ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTUiCX0sIC8qIDEwMTUgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxNiIJfSwgLyogMTAxNiAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDE3Igl9LCAvKiAxMDE3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMTgiCX0sIC8qIDEwMTggKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAxOSIJfSwgLyogMTAxOSAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDIwIgl9LCAvKiAxMDIwICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwMjEiCX0sIC8qIDEwMjEgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTAyMiIJfSwgLyogMTAyMiAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDIzIgl9LCAvKiAxMDIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkibmlfc3lzY2FsbCIJfSwgLyogMTAyNCAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXQiCQl9LCAvKiAxMDI1ICovCisJeyAzLAkwLAlzeXNfcmVhZCwJCSJyZWFkIgkJfSwgLyogMTAyNiAqLworCXsgMywJMCwJc3lzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogMTAyNyAqLworCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiAxMDI4ICovCisJeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiAxMDI5ICovCisJeyAyLAkwLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiAxMDMwICovCisJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDEwMzEgKi8KKwl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAzMiAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiAxMDMzICovCisJeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTAzNCAqLworCXsgMSwJVEYsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMDM1ICovCisJeyAyLAkwLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMTAzNiAqLworCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDEwMzcgKi8KKwl7IDIsCVRGLAlzeXNfY2htb2QsCQkiY2htb2QiCQl9LCAvKiAxMDM4ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTAzOSAqLworCXsgMywJVEYsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDEwNDAgKi8KKwl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAxMDQxICovCisJeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiAxMDQyICovCisJeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgLyogMTA0MyAqLworCXsgMSwJMCwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiAxMDQ0ICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMTA0NSAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQiCX0sIC8qIDEwNDYgKi8KKwl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCX0sIC8qIDEwNDcgKi8KKwl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAxMDQ4ICovCisJeyAyLAlURiwJc3lzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDEwNDkgKi8KKwl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAxMDUwICovCisJeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiAxMDUxICovCisJeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTA1MiAqLworCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAxMDUzICovCisJeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDEwNTQgKi8KKwl7IDIsCVRGLAlzeXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiAxMDU1ICovCisJeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogMTA1NiAqLworCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiAxMDU3ICovCisJeyAxLAkwLAlzeXNfcGlwZSwJCSJwaXBlIgkJfSwgLyogMTA1OCAqLworCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogMTA1OSAqLworCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiAxMDYwICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogMTA2MSAqLworCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDEwNjIgKi8KKwl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDEwNjMgKi8KKwl7IDEsCVRGLAlzeXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogMTA2NCAqLworCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogMTA2NSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogMTA2NiAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogMTA2NyAqLworCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAvKiAxMDY4ICovCisJeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiAxMDY5ICovCisJeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogMTA3MCAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiAxMDcxICovCisJeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDEwNzIgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRyZXN1aWQiCX0sIC8qIDEwNzMgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxMDc0ICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc2dpZCIJfSwgLyogMTA3NSAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJInNldHJlc2dpZCIJfSwgLyogMTA3NiAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDEwNzcgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgl9LCAvKiAxMDc4ICovCisJeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMDc5ICovCisJeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiAxMDgwICovCisJeyAwLAkwLAlzeXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogMTA4MSAqLworCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sIC8qIDEwODIgKi8KKwl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiAxMDgzICovCisJeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgLyogMTA4NCAqLworCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDEwODUgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiAxMDg2ICovCisJeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiAxMDg3ICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiAxMDg4ICovCisJeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTA4OSAqLworCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDEwOTAgKi8KKwl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiAxMDkxICovCisJeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiAxMDkyICovCisJeyAxLAkwLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogMTA5MyAqLworCXsgMSwJMCwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sIC8qIDEwOTQgKi8KKwl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDEwOTUgKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiAxMDk2ICovCisJeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiAxMDk3ICovCisJeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgLyogMTA5OCAqLworCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDEwOTkgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiAxMTAwICovCisJeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgLyogMTEwMSAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDExMDIgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogMTEwMyAqLworCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTEwNCAqLworCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDExMDUgKi8KKwl7IDMsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMTEwNiAqLworCXsgMywJVEksCXByaW50YXJncywJCSJzZW1vcCIJCX0sIC8qIDExMDcgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgLyogMTEwOCAqLworCXsgMiwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAxMTA5ICovCisJeyA0LAlUSSwJc3lzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDExMTAgKi8KKwl7IDUsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMTExMSAqLworCXsgMywJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiAxMTEyICovCisJeyAzLAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDExMTMgKi8KKwl7IDMsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAxMTE0ICovCisJeyAxLAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMTExNSAqLworCXsgMywJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAxMTE2ICovCisJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTExNyAqLworCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDExMTggKi8KKwl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMTE5ICovCisJeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDExMjAgKi8KKwl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMTIxICovCisJeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMTIyICovCisJeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAvKiAxMTIzICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTEyNCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxMTI1ICovCisJeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgLyogMTEyNiAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTEyNyAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDExMjggKi8KKwl7IDIsCTAsCXN5c19zZXRkb21haW5uYW1lLAkic2V0ZG9tYWlubmFtZSIJfSwgLyogMTEyOSAqLworCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTEzMCAqLworCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMTMxICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDExMzIgKi8KKwl7IDQsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMTMzICovCisJeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDExMzQgKi8KKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTEzNSAqLworCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTEzNiAqLworCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMTM3ICovCisJeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMTM4ICovCisJeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMTM5ICovCisJeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgLyogMTE0MCAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDExNDEgKi8KKwl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTE0MiAqLworCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkIgl9LCAvKiAxMTQzICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sIC8qIDExNDQgKi8KKwl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDExNDUgKi8KKwl7IDUsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDExNDYgKi8KKwl7IDUsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxMTQ3ICovCisJeyA0LAkwLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxMTQ4ICovCisJeyA0LAkwLAlzeXNfcHdyaXRlLAkJInB3cml0ZSIJfSwgLyogMTE0OSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJIl9zeXNjdGwiCX0sIC8qIDExNTAgKi8KKwl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAiCQl9LCAvKiAxMTUxICovCisJeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogMTE1MiAqLworCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTE1MyAqLworCXsgMSwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxMTU0ICovCisJeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDExNTUgKi8KKwl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxMTU2ICovCisJeyAzLAkwLAlzeXNfbXN5bmMsCQkibXN5bmMiCQl9LCAvKiAxMTU3ICovCisJeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxMTU4ICovCisJeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxMTU5ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxMTYwICovCisJeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiAxMTYxICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDExNjIgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTE2MyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCX0sIC8qIDExNjQgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sIC8qIDExNjUgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDExNjYgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxMTY3ICovCisJeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkJIm5hbm9zbGVlcCIJfSwgLyogMTE2OCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDExNjkgKi8KKwl7IDUsCTAsCXN5c19wcmN0bCwJCSJwcmN0bCIJCX0sIC8qIDExNzAgKi8KKwl7IDEsCTAsCXN5c19nZXRwYWdlc2l6ZSwJImdldHBhZ2VzaXplIgl9LCAvKiAxMTcxICovCisJeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDExNzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJwY2ljb25maWdfcmVhZCJ9LCAvKiAxMTczICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicGNpY29uZmlnX3dyaXRlIn0sIC8qIDExNzQgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJwZXJmbW9uY3RsIgl9LCAvKiAxMTc1ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDExNzYgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIgl9LCAvKiAxMTc3ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxMTc4ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTE3OSAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sCSJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTE4MCAqLworCXsgMCwJVFMsCXN5c19zaWdyZXR1cm4sCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxMTgxICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxMTgyICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxMTgzICovCisJeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDExODQgKi8KKwl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiAxMTg1ICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTE4NiAqLworCXsgNCwJMCwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiAxMTg3ICovCisJeyA1LAlUTiwJcHJpbnRhcmdzLAkJImdldHBtc2ciCX0sIC8qIDExODggKi8KKwl7IDUsCVROLAlwcmludGFyZ3MsCQkicHV0cG1zZyIJfSwgLyogMTE4OSAqLworCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAxMTkwICovCisJeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDExOTEgKi8KKwl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiAxMTkyICovCisJeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDExOTMgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMTE5NCAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiAxMTk1ICovCisJeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDExOTYgKi8KKwl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAxMTk3ICovCisJeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDExOTggKi8KKwl7IDYsCVROLAlzeXNfc2VuZHRvLAkJInNlbmR0byIJfSwgLyogMTE5OSAqLworCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQl9LCAvKiAxMjAwICovCisJeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIgl9LCAvKiAxMjAxICovCisJeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAxMjAyICovCisJeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMTIwMyAqLworCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDEyMDQgKi8KKwl7IDMsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAxMjA1ICovCisJeyAzLAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMTIwNiAqLworCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMTIwNyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm1pbmNvcmUiCX0sIC8qIDEyMDggKi8KKwl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDEyMDkgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTIxMCAqLworCXsgMiwJMCwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogMTIxMSAqLworCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMTIxMiAqLworCXsgNiwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZTIiCX0sIC8qIDEyMTMgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRkZW50czY0Igl9LCAvKiAxMjE0ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkiZ2V0dW53aW5kIgl9LCAvKiAxMjE1ICovCisJeyA0LAkwLAlzeXNfcmVhZGFoZWFkLAkJInJlYWRhaGVhZCIJfSwgLyogMTIxNiAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMTIxNyAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDEyMTggKi8KKwl7IDUsCTAsCXN5c19zZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDEyMTkgKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDEyMjAgKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiAxMjIxICovCisJeyA0LAkwLAlzeXNfZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAxMjIyICovCisJeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDEyMjMgKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxsaXN0eGF0dHIiCX0sIC8qIDEyMjQgKi8KKwl7IDMsCTAsCXN5c19saXN0eGF0dHIsCQkiZmxpc3R4YXR0ciIJfSwgLyogMTIyNSAqLworCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAxMjI2ICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkibHJlbW92ZXhhdHRyIgl9LCAvKiAxMjI3ICovCisJeyAyLAkwLAlzeXNfcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDEyMjggKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDEyMjkgKi8KKwl7IDUsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDEyMzAgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5In0sLyogMTIzMSAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkifSwvKiAxMjMyICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIn0sIC8qIDEyMzMgKi8KKwl7IDUsCTAsCXN5c19mYWR2aXNlNjQsCQkiZmFkdmlzZTY0Igl9LCAvKiAxMjM0ICovCisJeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDEyMzUgKi8KKwl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgl9LCAvKiAxMjM2ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibG9va3VwX2Rjb29raWUifSwgLyogMTIzNyAqLworCXsgMiwJMCwJc3lzX2lvX3NldHVwLAkJImlvX3NldHVwIgl9LCAvKiAxMjM4ICovCisJeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAxMjM5ICovCisJeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkJImlvX2dldGV2ZW50cyIJfSwgLyogMTI0MCAqLworCXsgMywJMCwJc3lzX2lvX3N1Ym1pdCwJCSJpb19zdWJtaXQiCX0sIC8qIDEyNDEgKi8KKwl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAxMjQyICovCisJeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiAxMjQzICovCisJeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogMTI0NCAqLworCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogMTI0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiAxMjQ2ICovCisJeyA1LAlUSSwJc3lzX3NlbXRpbWVkb3AsCQkic2VtdGltZWRvcCIJfSwgLyogMTI0NyAqLworCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMTI0OCAqLworCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAxMjQ5ICovCisJeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDEyNTAgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAxMjUxICovCisJeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiAxMjUyICovCisJeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDEyNTMgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMTI1NCAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMTI1NSAqLworCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAxMjU2ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiZnN0YXRmczY0Igl9LCAvKiAxMjU3ICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkic3RhdGZzNjQiCX0sIC8qIDEyNTggKi8KKwl7IDYsCTAsCXN5c19tYmluZCwJCSJtYmluZCIJCX0sIC8qIDEyNTkgKi8KKwl7IDUsCTAsCXN5c19nZXRfbWVtcG9saWN5LAkiZ2V0X21lbXBvbGljeSIJfSwgLyogMTI2MCAqLworCXsgMywJMCwJc3lzX3NldF9tZW1wb2xpY3ksCSJzZXRfbWVtcG9saWN5Igl9LCAvKiAxMjYxICovCisJeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgl9LCAvKiAxMjYyICovCisJeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMTI2MyAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMTI2NCAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIgfSwgLyogMTI2NSAqLworCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDEyNjYgKi8KKwl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMTI2NyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIiB9LCAvKiAxMjY4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJfSwgLyogMTI2OSAqLworCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiAxMjcwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYWRkX2tleSIJfSwgLyogMTI3MSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJInJlcXVlc3Rfa2V5Igl9LCAvKiAxMjcyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkia2V5Y3RsIgl9LCAvKiAxMjczICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX3NldCIJfSwgLyogMTI3NCAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJImlvcHJpb19nZXQiCX0sIC8qIDEyNzUgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTI3NiIJfSwgLyogMTI3NiAqLworCXsgMCwJVEQsCXByaW50YXJncywJCSJpbm90aWZ5X2luaXQiCX0sIC8qIDEyNzcgKi8KKwl7IDMsCVRELAlzeXNfaW5vdGlmeV9hZGRfd2F0Y2gsCSJpbm90aWZ5X2FkZF93YXRjaCIgfSwgLyogMTI3OCAqLworCXsgMiwJVEQsCXN5c19pbm90aWZ5X3JtX3dhdGNoLAkiaW5vdGlmeV9ybV93YXRjaCIgfSwgLyogMTI3OSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJIm1pZ3JhdGVfcGFnZXMiCX0sIC8qIDEyODAgKi8KKwl7IDQsCVREfFRGLAlzeXNfb3BlbmF0LAkJIm9wZW5hdCIJfSwgLyogMTI4MSAqLworCXsgMywJVER8VEYsCXN5c19ta2RpcmF0LAkJIm1rZGlyYXQiCX0sIC8qIDEyODIgKi8KKwl7IDQsCVREfFRGLAlzeXNfbWtub2RhdCwJCSJta25vZGF0Igl9LCAvKiAxMjgzICovCisJeyA1LAlURHxURiwJc3lzX2ZjaG93bmF0LAkJImZjaG93bmF0Igl9LCAvKiAxMjg0ICovCisJeyAzLAlURHxURiwJc3lzX2Z1dGltZXNhdCwJCSJmdXRpbWVzYXQiCX0sIC8qIDEyODUgKi8KKwl7IDQsCVREfFRELAlzeXNfbmV3ZnN0YXRhdCwJCSJuZXdmc3RhdGF0Igl9LCAvKiAxMjg2ICovCisJeyAzLAlURHxURiwJc3lzX3VubGlua2F0LAkJInVubGlua2F0Igl9LCAvKiAxMjg3ICovCisJeyA0LAlURHxURiwJc3lzX3JlbmFtZWF0LAkJInJlbmFtZWF0Igl9LCAvKiAxMjg4ICovCisJeyA1LAlURHxURiwJc3lzX2xpbmthdCwJCSJsaW5rYXQiCX0sIC8qIDEyODkgKi8KKwl7IDMsCVREfFRGLAlzeXNfc3ltbGlua2F0LAkJInN5bWxpbmthdCIJfSwgLyogMTI5MCAqLworCXsgNCwJVER8VEYsCXN5c19yZWFkbGlua2F0LAkJInJlYWRsaW5rYXQiCX0sIC8qIDEyOTEgKi8KKwl7IDMsCVREfFRGLAlzeXNfZmNobW9kYXQsCQkiZmNobW9kYXQiCX0sIC8qIDEyOTIgKi8KKwl7IDMsCVREfFRGLAlzeXNfZmFjY2Vzc2F0LAkJImZhY2Nlc3NhdCIJfSwgLyogMTI5MyAqLworCXsgNiwJVEQsCXN5c19wc2VsZWN0NiwJCSJwc2VsZWN0NiIJfSwgLyogMTI5NCAqLworCXsgNSwJVEQsCXN5c19wcG9sbCwJCSJwcG9sbCIJCX0sIC8qIDEyOTUgKi8KKwl7IDEsCVRQLAlzeXNfdW5zaGFyZSwJCSJ1bnNoYXJlIgl9LCAvKiAxMjk2ICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0X3JvYnVzdF9saXN0IiB9LCAvKiAxMjk3ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0X3JvYnVzdF9saXN0IiB9LCAvKiAxMjk4ICovCisJeyA2LAlURCwJcHJpbnRhcmdzLAkJInNwbGljZSIJfSwgLyogMTI5OSAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJzeW5jX2ZpbGVfcmFuZ2UiIH0sIC8qIDEzMDAgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkidGVlIgkJfSwgLyogMTMwMSAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ2bXNwbGljZSIJfSwgLyogMTMwMiAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAzIgl9LCAvKiAxMzAzICovCisJeyA4LAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDQiCX0sIC8qIDEzMDQgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJTWVNfMTMwNSIJfSwgLyogMTMwNSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvaW9jdGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2EyMDcwCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L2lvY3RsZW50LmgKQEAgLTAsMCArMSwxMzEyIEBACisJLyogR2VuZXJhdGVkIGJ5IGlvY3Rsc29ydCAqLworCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAorCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAorCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAorCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAorCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAorCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAorCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCisJeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAorCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCisJeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAorCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKKwl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRMQVNUU0VDVCIsCTB4MTI2Y30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NFVExBU1RTRUNUIiwJMHgxMjZkfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKKwl7InNjc2kvc2cuaCIsCSJTR19TRVRfVElNRU9VVCIsCTB4MjIwMX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1RJTUVPVVQiLAkweDIyMDJ9LAorCXsic2NzaS9zZy5oIiwJIlNHX0VNVUxBVEVEX0hPU1QiLAkweDIyMDN9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9UUkFOU0ZPUk0iLAkweDIyMDR9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9UUkFOU0ZPUk0iLAkweDIyMDV9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9DT01NQU5EX1EiLAkweDIyNzB9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9DT01NQU5EX1EiLAkweDIyNzF9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwJMHgyMjcyfSwKKwl7InNjc2kvc2cuaCIsCSJTR19TRVRfUkVTRVJWRURfU0laRSIsCTB4MjI3NX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NDU0lfSUQiLAkweDIyNzZ9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwJMHgyMjc5fSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfTE9XX0RNQSIsCTB4MjI3YX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0ZPUkNFX1BBQ0tfSUQiLAkweDIyN2J9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9QQUNLX0lEIiwJMHgyMjdjfSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfTlVNX1dBSVRJTkciLAkweDIyN2R9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9ERUJVRyIsCTB4MjI3ZX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NHX1RBQkxFU0laRSIsCTB4MjI3Zn0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1ZFUlNJT05fTlVNIiwJMHgyMjgyfSwKKwl7InNjc2kvc2cuaCIsCSJTR19ORVhUX0NNRF9MRU4iLAkweDIyODN9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NDU0lfUkVTRVQiLAkweDIyODR9LAorCXsic2NzaS9zZy5oIiwJIlNHX0lPIiwJMHgyMjg1fSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfUkVRVUVTVF9UQUJMRSIsCTB4MjI4Nn0sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0tFRVBfT1JQSEFOIiwJMHgyMjg3fSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfS0VFUF9PUlBIQU4iLAkweDIyODh9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9BQ0NFU1NfQ09VTlQiLAkweDIyODl9LAorCXsibGludXgvaTJvLmgiLAkiQkxLSTJPR1JTVFJBVCIsCTB4MzIwMX0sCisJeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9HV1NUUkFUIiwJMHgzMjAyfSwKKwl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT1NSU1RSQVQiLAkweDMyMDN9LAorCXsibGludXgvaTJvLmgiLAkiQkxLSTJPU1dTVFJBVCIsCTB4MzIwNH0sCisJeyJhc20vcHJvY2Vzc29yLmgiLAkiTUlDUk9DT0RFX0lPQ0ZSRUUiLAkweDM2MDB9LAorCXsibGludXgvcmFkZW9uZmIuaCIsCSJGQklPX1JBREVPTl9HRVRfTUlSUk9SIiwJMHg0MDAzfSwKKwl7ImxpbnV4L3JhZGVvbmZiLmgiLAkiRkJJT19SQURFT05fU0VUX01JUlJPUiIsCTB4NDAwNH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR1JBQl9CQUNLTElHSFQiLAkweDQyMDZ9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRCVVNUWVBFUyIsCTB4NDIwN30sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEZJUk1WRVIiLAkweDQyMDh9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVREUklWVkVSIiwJMHg0MjA5fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVWQUxJRFZPTFMiLAkweDQyMGF9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19QQVNTVEhSVSIsCTB4NDIwYn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0RFUkVHRElTSyIsCTB4NDIwY30sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFR05FV0RJU0siLAkweDQyMGR9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRUdORVdEIiwJMHg0MjBlfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVTQ0FORElTSyIsCTB4NDIxMH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVExVTklORk8iLAkweDQyMTF9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19CSUdfUEFTU1RIUlUiLAkweDQyMTJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWSIsCTB4NDUwNX0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0JVUyIsCTB4NDUwN30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DUk1GRiIsCTB4NDU4MX0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0dBSU4iLAkweDQ1ODJ9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NBVVRPQ0VOVEVSIiwJMHg0NTgzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JBQiIsCTB4NDU5MH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVlNDUkVFTklORk8iLAkweDQ2MDB9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAxfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GU0NSRUVOSU5GTyIsCTB4NDYwMn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRDTUFQIiwJMHg0NjA0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVENNQVAiLAkweDQ2MDV9LAorCXsibGludXgvZmIuaCIsCSJGQklPUEFOX0RJU1BMQVkiLAkweDQ2MDZ9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0ZDVVJTT1JJTkZPIiwJMHg0NjA3fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQ1VSU09SSU5GTyIsCTB4NDYwOH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9fQ1VSU09SIiwJMHg0NjA4fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9WQ1VSU09SSU5GTyIsCTB4NDYwOX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ1VSU09SU1RBVEUiLAkweDQ2MGF9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUX0NVUlNPUlNUQVRFIiwJMHg0NjBifSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9DT04yRkJNQVAiLAkweDQ2MGZ9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUX0NPTjJGQk1BUCIsCTB4NDYxMH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9CTEFOSyIsCTB4NDYxMX0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVkJMQU5LIiwJMHg0NjEyfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT19BTExPQyIsCTB4NDYxM30sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9fRlJFRSIsCTB4NDYxNH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfR0xZUEgiLAkweDQ2MTV9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0hXQ0lORk8iLAkweDQ2MTZ9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUX01PREVJTkZPIiwJMHg0NjE3fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9ESVNQSU5GTyIsCTB4NDYxOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIkZCSU9fV0FJVEZPUlZTWU5DIiwJMHg0NjIwfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dWRVJTSU9OIiwJMHg0ODAxfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0FQUExJQ0FUSU9OIiwJMHg0ODAyfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dERVZJTkZPIiwJMHg0ODAzfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dTVFJJTkciLAkweDQ4MDR9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DSU5JVFJFUE9SVCIsCTB4NDgwNX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUIiwJMHg0ODA3fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NSRVBPUlQiLAkweDQ4MDh9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVElORk8iLAkweDQ4MDl9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZJRUxESU5GTyIsCTB4NDgwYX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVVNBR0UiLAkweDQ4MGJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1VTQUdFIiwJMHg0ODBjfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVQ09ERSIsCTB4NDgwZH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRkxBRyIsCTB4NDgwZX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTRkxBRyIsCTB4NDgwZn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHQ09MTEVDVElPTklOREVYIiwJMHg0ODEwfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0lORk8iLAkweDQ4MTB9LAorCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfSU5GTyIsCTB4NDgxMH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHQ09MTEVDVElPTklORk8iLAkweDQ4MTF9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfQ09ERV9QT0tFIiwJMHg0ODExfSwKKwl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX0xPQURfQ09ERSIsCTB4NDgxMX0sCisJeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9DT0RFX1BFRUsiLAkweDQ4MTJ9LAorCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfVU5MT0FEX0NPREUiLAkweDQ4MTJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFUyIsCTB4NDgxM30sCisJeyJzb3VuZC9zYjE2X2NzcC5oIiwJIlNORFJWX1NCX0NTUF9JT0NUTF9TVEFSVCIsCTB4NDgxM30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0VTIiwJMHg0ODE0fSwKKwl7InNvdW5kL3NiMTZfY3NwLmgiLAkiU05EUlZfU0JfQ1NQX0lPQ1RMX1NUT1AiLAkweDQ4MTR9LAorCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfUEFVU0UiLAkweDQ4MTV9LAorCXsic291bmQvc2IxNl9jc3AuaCIsCSJTTkRSVl9TQl9DU1BfSU9DVExfUkVTVEFSVCIsCTB4NDgxNn0sCisJeyJzb3VuZC9hc291bmRfZm0uaCIsCSJTTkRSVl9ETV9GTV9JT0NUTF9JTkZPIiwJMHg0ODIwfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1RSQU1fU0VUVVAiLAkweDQ4MjB9LAorCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfUkVTRVQiLAkweDQ4MjF9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfVFJBTV9QT0tFIiwJMHg0ODIxfSwKKwl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1BMQVlfTk9URSIsCTB4NDgyMn0sCisJeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9UUkFNX1BFRUsiLAkweDQ4MjJ9LAorCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfU0VUX1ZPSUNFIiwJMHg0ODIzfSwKKwl7InNvdW5kL2Fzb3VuZF9mbS5oIiwJIlNORFJWX0RNX0ZNX0lPQ1RMX1NFVF9QQVJBTVMiLAkweDQ4MjR9LAorCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfU0VUX01PREUiLAkweDQ4MjV9LAorCXsic291bmQvYXNvdW5kX2ZtLmgiLAkiU05EUlZfRE1fRk1fSU9DVExfU0VUX0NPTk5FQ1RJT04iLAkweDQ4MjZ9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfUENNX1BPS0UiLAkweDQ4MzB9LAorCXsic291bmQvZW11MTBrMS5oIiwJIlNORFJWX0VNVTEwSzFfSU9DVExfUENNX1BFRUsiLAkweDQ4MzF9LAorCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUX1BFQUtfUk1TIiwJMHg0ODQwfSwKKwl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF9DT05GSUdfSU5GTyIsCTB4NDg0MX0sCisJeyJzb3VuZC9oZHNwLmgiLAkiU05EUlZfSERTUF9JT0NUTF9VUExPQURfRklSTVdBUkUiLAkweDQ4NDJ9LAorCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUX1ZFUlNJT04iLAkweDQ4NDN9LAorCXsic291bmQvaGRzcC5oIiwJIlNORFJWX0hEU1BfSU9DVExfR0VUX01JWEVSIiwJMHg0ODQ0fSwKKwl7InNvdW5kL2hkc3AuaCIsCSJTTkRSVl9IRFNQX0lPQ1RMX0dFVF85NjMyX0FFQiIsCTB4NDg0NX0sCisJeyJzb3VuZC9lbXUxMGsxLmgiLAkiU05EUlZfRU1VMTBLMV9JT0NUTF9TVE9QIiwJMHg0ODgwfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0NPTlRJTlVFIiwJMHg0ODgxfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1pFUk9fVFJBTV9DT1VOVEVSIiwJMHg0ODgyfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX1NJTkdMRV9TVEVQIiwJMHg0ODgzfSwKKwl7InNvdW5kL2VtdTEwazEuaCIsCSJTTkRSVl9FTVUxMEsxX0lPQ1RMX0RCR19SRUFEIiwJMHg0ODg0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0lPQ1NPVU5EIiwJMHg0YjJmfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RNS1RPTkUiLAkweDRiMzB9LAorCXsibGludXgva2QuaCIsCSJLREdFVExFRCIsCTB4NGIzMX0sCisJeyJsaW51eC9rZC5oIiwJIktEU0VUTEVEIiwJMHg0YjMyfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JUWVBFIiwJMHg0YjMzfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RBRERJTyIsCTB4NGIzNH0sCisJeyJsaW51eC9rZC5oIiwJIktEREVMSU8iLAkweDRiMzV9LAorCXsibGludXgva2QuaCIsCSJLREVOQUJJTyIsCTB4NGIzNn0sCisJeyJsaW51eC9rZC5oIiwJIktERElTQUJJTyIsCTB4NGIzN30sCisJeyJsaW51eC9rZC5oIiwJIktEU0VUTU9ERSIsCTB4NGIzYX0sCisJeyJsaW51eC9rZC5oIiwJIktER0VUTU9ERSIsCTB4NGIzYn0sCisJeyJsaW51eC9rZC5oIiwJIktETUFQRElTUCIsCTB4NGIzY30sCisJeyJsaW51eC9rZC5oIiwJIktEVU5NQVBESVNQIiwJMHg0YjNkfSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX1NDUk5NQVAiLAkweDRiNDB9LAorCXsibGludXgva2QuaCIsCSJQSU9fU0NSTk1BUCIsCTB4NGI0MX0sCisJeyJsaW51eC9rZC5oIiwJIktER0tCTU9ERSIsCTB4NGI0NH0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCTU9ERSIsCTB4NGI0NX0sCisJeyJsaW51eC9rZC5oIiwJIktER0tCRU5UIiwJMHg0YjQ2fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTS0JFTlQiLAkweDRiNDd9LAorCXsibGludXgva2QuaCIsCSJLREdLQlNFTlQiLAkweDRiNDh9LAorCXsibGludXgva2QuaCIsCSJLRFNLQlNFTlQiLAkweDRiNDl9LAorCXsibGludXgva2QuaCIsCSJLREdLQkRJQUNSIiwJMHg0YjRhfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTS0JESUFDUiIsCTB4NGI0Yn0sCisJeyJsaW51eC9rZC5oIiwJIktER0VUS0VZQ09ERSIsCTB4NGI0Y30sCisJeyJsaW51eC9rZC5oIiwJIktEU0VUS0VZQ09ERSIsCTB4NGI0ZH0sCisJeyJsaW51eC9rZC5oIiwJIktEU0lHQUNDRVBUIiwJMHg0YjRlfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RLQkRSRVAiLAkweDRiNTJ9LAorCXsibGludXgva2QuaCIsCSJHSU9fRk9OVCIsCTB4NGI2MH0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19GT05UIiwJMHg0YjYxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JNRVRBIiwJMHg0YjYyfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTS0JNRVRBIiwJMHg0YjYzfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JMRUQiLAkweDRiNjR9LAorCXsibGludXgva2QuaCIsCSJLRFNLQkxFRCIsCTB4NGI2NX0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19VTklNQVAiLAkweDRiNjZ9LAorCXsibGludXgva2QuaCIsCSJQSU9fVU5JTUFQIiwJMHg0YjY3fSwKKwl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSU1BUENMUiIsCTB4NGI2OH0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19VTklTQ1JOTUFQIiwJMHg0YjY5fSwKKwl7ImxpbnV4L2tkLmgiLAkiUElPX1VOSVNDUk5NQVAiLAkweDRiNmF9LAorCXsibGludXgva2QuaCIsCSJHSU9fRk9OVFgiLAkweDRiNmJ9LAorCXsibGludXgva2QuaCIsCSJQSU9fRk9OVFgiLAkweDRiNmN9LAorCXsibGludXgva2QuaCIsCSJQSU9fRk9OVFJFU0VUIiwJMHg0YjZkfSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX0NNQVAiLAkweDRiNzB9LAorCXsibGludXgva2QuaCIsCSJQSU9fQ01BUCIsCTB4NGI3MX0sCisJeyJsaW51eC9rZC5oIiwJIktERk9OVE9QIiwJMHg0YjcyfSwKKwl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19BRERfRU5UUlkiLAkweDRkMDB9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX1NFVF9FTlRSWSIsCTB4NGQwMX0sCisJeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfREVMX0VOVFJZIiwJMHg0ZDAyfSwKKwl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19HRVRfRU5UUlkiLAkweDRkMDN9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0tJTExfRU5UUlkiLAkweDRkMDR9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0FERF9QQUdFX0VOVFJZIiwJMHg0ZDA1fSwKKwl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19TRVRfUEFHRV9FTlRSWSIsCTB4NGQwNn0sCisJeyJhc20vbXRyci5oIiwJIk1UUlJJT0NfREVMX1BBR0VfRU5UUlkiLAkweDRkMDd9LAorCXsiYXNtL210cnIuaCIsCSJNVFJSSU9DX0dFVF9QQUdFX0VOVFJZIiwJMHg0ZDA4fSwKKwl7ImFzbS9tdHJyLmgiLAkiTVRSUklPQ19LSUxMX1BBR0VfRU5UUlkiLAkweDRkMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCisJeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfVElNRU9VVCIsCTB4NGUyMH0sCisJeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfUkVTRVRfREVWSUNFIiwJMHg0ZTIxfSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVVTQl9SRVNFVF9QSVBFUyIsCTB4NGUyMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfRklMVEVSIiwJMHg1MDA3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUE9TVCIsCTB4NTAwOH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NVQkRJVklERSIsCTB4NTAwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZSQUdNRU5UIiwJMHg1MDBhfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VURk1UUyIsCTB4NTAwYn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVE9TUEFDRSIsCTB4NTAwY30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElTUEFDRSIsCTB4NTAwZH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX05PTkJMT0NLIiwJMHg1MDBlfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0FQUyIsCTB4NTAwZn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFRSSUdHRVIiLAkweDUwMTB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCisJeyJzb3VuZC9zc2NhcGVfaW9jdGwuaCIsCSJTTkRfU1NDQVBFX0xPQURfQk9PVEIiLAkweDUwNjR9LAorCXsic291bmQvc3NjYXBlX2lvY3RsLmgiLAkiU05EX1NTQ0FQRV9MT0FEX01DT0RFIiwJMHg1MDY1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9QVkVSU0lPTiIsCTB4NTMwMH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUEFVU0UiLAkweDUzMDF9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9DTElFTlRfSUQiLAkweDUzMDF9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFU1VNRSIsCTB4NTMwMn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NZU1RFTV9JTkZPIiwJMHg1MzAyfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZTVNGIiwJMHg1MzAzfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUlVOTklOR19NT0RFIiwJMHg1MzAzfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZVFJLSU5EIiwJMHg1MzA0fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEVE9DSERSIiwJMHg1MzA1fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEVE9DRU5UUlkiLAkweDUzMDZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNUT1AiLAkweDUzMDd9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNUQVJUIiwJMHg1MzA4fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01FSkVDVCIsCTB4NTMwOX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NVk9MQ1RSTCIsCTB4NTMwYX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1VCQ0hOTCIsCTB4NTMwYn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBRE1PREUyIiwJMHg1MzBjfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFETU9ERTEiLAkweDUzMGR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURBVURJTyIsCTB4NTMwZX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NRUpFQ1RfU1ciLAkweDUzMGZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTU1VTFRJU0VTU0lPTiIsCTB4NTMxMH0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9DTElFTlRfSU5GTyIsCTB4NTMxMH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0dFVF9NQ04iLAkweDUzMTF9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfQ0xJRU5UX0lORk8iLAkweDUzMTF9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFU0VUIiwJMHg1MzEyfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01WT0xSRUFEIiwJMHg1MzEzfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEUkFXIiwJMHg1MzE0fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQ09PS0VEIiwJMHg1MzE1fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TRUVLIiwJMHg1MzE2fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01QTEFZQkxLIiwJMHg1MzE3fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFEQUxMIiwJMHg1MzE4fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01DTE9TRVRSQVkiLAkweDUzMTl9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUdFVFNQSU5ET1dOIiwJMHg1MzFkfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TRVRTUElORE9XTiIsCTB4NTMxZX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX1NFVF9PUFRJT05TIiwJMHg1MzIwfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfQ1JFQVRFX1BPUlQiLAkweDUzMjB9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DTEVBUl9PUFRJT05TIiwJMHg1MzIxfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfREVMRVRFX1BPUlQiLAkweDUzMjF9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRUxFQ1RfU1BFRUQiLAkweDUzMjJ9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUE9SVF9JTkZPIiwJMHg1MzIyfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX0RJU0MiLAkweDUzMjN9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUE9SVF9JTkZPIiwJMHg1MzIzfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fTUVESUFfQ0hBTkdFRCIsCTB4NTMyNX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RSSVZFX1NUQVRVUyIsCTB4NTMyNn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RJU0NfU1RBVFVTIiwJMHg1MzI3fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fQ0hBTkdFUl9OU0xPVFMiLAkweDUzMjh9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MT0NLRE9PUiIsCTB4NTMyOX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0RFQlVHIiwJMHg1MzMwfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU1VCU0NSSUJFX1BPUlQiLAkweDUzMzB9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsCTB4NTMzMX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1VOU1VCU0NSSUJFX1BPUlQiLAkweDUzMzF9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9DUkVBVEVfUVVFVUUiLAkweDUzMzJ9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9ERUxFVEVfUVVFVUUiLAkweDUzMzN9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfSU5GTyIsCTB4NTMzNH0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9JTkZPIiwJMHg1MzM1fSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX05BTUVEX1FVRVVFIiwJMHg1MzM2fSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX1FVRVVFX1NUQVRVUyIsCTB4NTM0MH0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9URU1QTyIsCTB4NTM0MX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9URU1QTyIsCTB4NTM0Mn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9PV05FUiIsCTB4NTM0M30sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9PV05FUiIsCTB4NTM0NH0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9USU1FUiIsCTB4NTM0NX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9USU1FUiIsCTB4NTM0Nn0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX0dFVF9RVUVVRV9DTElFTlQiLAkweDUzNDl9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9TRVRfUVVFVUVfQ0xJRU5UIiwJMHg1MzRhfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfR0VUX0NMSUVOVF9QT09MIiwJMHg1MzRifSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfU0VUX0NMSUVOVF9QT09MIiwJMHg1MzRjfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUkVNT1ZFX0VWRU5UUyIsCTB4NTM0ZX0sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1FVRVJZX1NVQlMiLAkweDUzNGZ9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfU1VCU0NSSVBUSU9OIiwJMHg1MzUwfSwKKwl7InNvdW5kL2FzZXF1ZW5jZXIuaCIsCSJTTkRSVl9TRVFfSU9DVExfUVVFUllfTkVYVF9DTElFTlQiLAkweDUzNTF9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9RVUVSWV9ORVhUX1BPUlQiLAkweDUzNTJ9LAorCXsic291bmQvYXNlcXVlbmNlci5oIiwJIlNORFJWX1NFUV9JT0NUTF9HRVRfUVVFVUVfU1lOQyIsCTB4NTM1M30sCisJeyJzb3VuZC9hc2VxdWVuY2VyLmgiLAkiU05EUlZfU0VRX0lPQ1RMX1NFVF9RVUVVRV9TWU5DIiwJMHg1MzU0fSwKKwl7InNjc2kvc2NzaV9pb2N0bC5oIiwJIlNDU0lfSU9DVExfRE9PUkxPQ0siLAkweDUzODB9LAorCXsic2NzaS9zY3NpX2lvY3RsLmgiLAkiU0NTSV9JT0NUTF9ET09SVU5MT0NLIiwJMHg1MzgxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01BVURJT0JVRlNJWiIsCTB4NTM4Mn0sCisJeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX0dFVF9JRExVTiIsCTB4NTM4Mn0sCisJeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX1RBR0dFRF9FTkFCTEUiLAkweDUzODN9LAorCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9UQUdHRURfRElTQUJMRSIsCTB4NTM4NH0sCisJeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX1BST0JFX0hPU1QiLAkweDUzODV9LAorCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfQlVTX05VTUJFUiIsCTB4NTM4Nn0sCisJeyJzY3NpL3Njc2kuaCIsCSJTQ1NJX0lPQ1RMX0dFVF9QQ0kiLAkweDUzODd9LAorCXsibGludXgvY2Ryb20uaCIsCSJEVkRfUkVBRF9TVFJVQ1QiLAkweDUzOTB9LAorCXsibGludXgvY2Ryb20uaCIsCSJEVkRfV1JJVEVfU1RSVUNUIiwJMHg1MzkxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX0FVVEgiLAkweDUzOTJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRU5EX1BBQ0tFVCIsCTB4NTM5M30sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX05FWFRfV1JJVEFCTEUiLAkweDUzOTR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MQVNUX1dSSVRURU4iLAkweDUzOTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg1NDAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUUyIsCTB4NTQwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTRiIsCTB4NTQwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVEEiLAkweDU0MDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0RFViIsCTB4NTQzMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDU0NTB9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDU0NTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg1NDUyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9RU0laRSIsCTB4NTQ2MH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVROT0NTVU0iLAkweDU0Yzh9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUREVCVUciLAkweDU0Yzl9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUSUZGIiwJMHg1NGNhfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVFBFUlNJU1QiLAkweDU0Y2J9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUT1dORVIiLAkweDU0Y2N9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OVFJPTCIsCTB4NTUwMH0sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9ERVZfQ1JFQVRFIiwJMHg1NTAxfSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX0RFVl9ERVNUUk9ZIiwJMHg1NTAyfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19ESVNDT05ORUNUIiwJMHg1NTE2fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1QiLAkweDU1MTd9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0VWQklUIiwJMHg1NTY0fSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9LRVlCSVQiLAkweDU1NjV9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX1JFTEJJVCIsCTB4NTU2Nn0sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfQUJTQklUIiwJMHg1NTY3fSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9NU0NCSVQiLAkweDU1Njh9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0xFREJJVCIsCTB4NTU2OX0sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfU05EQklUIiwJMHg1NTZhfSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9GRkJJVCIsCTB4NTU2Yn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllDQVAiLAkweDU2MDB9LAorCXsibGludXgvdnQuaCIsCSJWVF9PUEVOUVJZIiwJMHg1NjAwfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19SRVNFUlZFRCIsCTB4NTYwMX0sCisJeyJsaW51eC92dC5oIiwJIlZUX0dFVE1PREUiLAkweDU2MDF9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1fRk1UIiwJMHg1NjAyfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VUTU9ERSIsCTB4NTYwMn0sCisJeyJsaW51eC92dC5oIiwJIlZUX0dFVFNUQVRFIiwJMHg1NjAzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZNVCIsCTB4NTYwNH0sCisJeyJsaW51eC92dC5oIiwJIlZUX1NFTkRTSUciLAkweDU2MDR9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRk1UIiwJMHg1NjA1fSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVMRElTUCIsCTB4NTYwNX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DT01QIiwJMHg1NjA2fSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfQUNUSVZBVEUiLAkweDU2MDZ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ09NUCIsCTB4NTYwN30sCisJeyJsaW51eC92dC5oIiwJIlZUX1dBSVRBQ1RJVkUiLAkweDU2MDd9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1JFUUJVRlMiLAkweDU2MDh9LAorCXsibGludXgvdnQuaCIsCSJWVF9ESVNBTExPQ0FURSIsCTB4NTYwOH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllCVUYiLAkweDU2MDl9LAorCXsibGludXgvdnQuaCIsCSJWVF9SRVNJWkUiLAkweDU2MDl9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRkJVRiIsCTB4NTYwYX0sCisJeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRVgiLAkweDU2MGF9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRkJVRiIsCTB4NTYwYn0sCisJeyJsaW51eC92dC5oIiwJIlZUX0xPQ0tTV0lUQ0giLAkweDU2MGJ9LAorCXsibGludXgvdnQuaCIsCSJWVF9VTkxPQ0tTV0lUQ0giLAkweDU2MGN9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX09WRVJMQVkiLAkweDU2MGV9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FCVUYiLAkweDU2MGZ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0RRQlVGIiwJMHg1NjExfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TVFJFQU1PTiIsCTB4NTYxMn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU1RSRUFNT0ZGIiwJMHg1NjEzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1BBUk0iLAkweDU2MTV9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfUEFSTSIsCTB4NTYxNn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19TVEQiLAkweDU2MTd9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfU1REIiwJMHg1NjE4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNU1REIiwJMHg1NjE5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNSU5QVVQiLAkweDU2MWF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HX1RWT0NUUkwiLAkweDU2MWJ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ1RSTCIsCTB4NTYxYn0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NfVFZPQ1RSTCIsCTB4NTYxY30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DVFJMIiwJMHg1NjFjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1RVTkVSIiwJMHg1NjFkfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX1RVTkVSIiwJMHg1NjFlfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0FVRElPIiwJMHg1NjIxfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0FVRElPIiwJMHg1NjIyfSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfVFZPUVVFUllDVFJMIiwJMHg1NjI0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUNUUkwiLAkweDU2MjR9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZTUVOVSIsCTB4NTYyNX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19JTlBVVCIsCTB4NTYyNn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19JTlBVVCIsCTB4NTYyN30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19PVVRQVVQiLAkweDU2MmV9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfT1VUUFVUIiwJMHg1NjJmfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19FTlVNT1VUUFVUIiwJMHg1NjMwfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0FVRE9VVCIsCTB4NTYzMX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19BVURPVVQiLAkweDU2MzJ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfTU9EVUxBVE9SIiwJMHg1NjM2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX01PRFVMQVRPUiIsCTB4NTYzN30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GUkVRVUVOQ1kiLAkweDU2Mzh9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfRlJFUVVFTkNZIiwJMHg1NjM5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19DUk9QQ0FQIiwJMHg1NjNhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NST1AiLAkweDU2M2J9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQ1JPUCIsCTB4NTYzY30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19KUEVHQ09NUCIsCTB4NTYzZH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19KUEVHQ09NUCIsCTB4NTYzZX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllTVEQiLAkweDU2M2Z9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1RSWV9GTVQiLAkweDU2NDB9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1BVURJTyIsCTB4NTY0MX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTUFVRE9VVCIsCTB4NTY0Mn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19QUklPUklUWSIsCTB4NTY0M30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19QUklPUklUWSIsCTB4NTY0NH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCisJeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCisJeyJsaW51eC9hdG1faGUuaCIsCSJIRV9HRVRfUkVHIiwJMHg2MTYwfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCisJeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAorCXsibGludXgvYXRtYnIyNjg0LmgiLAkiQlIyNjg0X1NFVEZJTFQiLAkweDYxOTB9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKKwl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKKwl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX05FV0JBQ0tFTkRJRiIsCTB4NjFmM30sCisJeyJsaW51eC9jb2RhLmgiLAkiQ0lPQ19LRVJORUxfVkVSU0lPTiIsCTB4NjMwYX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRQT1JUU1RBVFMiLAkweDYzMWV9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fQ0xSUE9SVFNUQVRTIiwJMHg2MzFmfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVEJSRFNUQVRTIiwJMHg2MzIwfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQT1JUIiwJMHg2MzI4fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURCT0FSRCIsCTB4NjMyOX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUEFORUwiLAkweDYzMmF9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfR0VUX1BST1RPX1JFViIsCTB4NjQwMH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NDAxfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9TVEFUVVMiLAkweDY0MDJ9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfUkVMRUFTRV9FVkVOVF9RVUVVRSIsCTB4NjQwM30sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfSU5QVVQiLAkweDY0MDR9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX09VVFBVVCIsCTB4NjQwNX0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NDA2fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9QSUNUVVJFIiwJMHg2NDA3fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0RVTVAiLAkweDY0YzB9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjUwMX0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfTk9STSIsCTB4NjUwMn0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfSU5QVVQiLAkweDY1MDN9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX09VVFBVVCIsCTB4NjUwNH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9FTkFCTEVfT1VUUFVUIiwJMHg2NTA1fSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKKwl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0ZJRk9fU1RBVFVTIiwJMHg2NzAxfSwKKwl7ImxpbnV4L3VzYl9nYWRnZXRmcy5oIiwJIkdBREdFVEZTX0ZJRk9fRkxVU0giLAkweDY3MDJ9LAorCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfQ0xFQVJfSEFMVCIsCTB4NjcwM30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVDRUlWRV9NU0dfVFJVTkMiLAkweDY5MGJ9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVDRUlWRV9NU0ciLAkweDY5MGN9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VORF9DT01NQU5EIiwJMHg2OTBkfSwKKwl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1JFR0lTVEVSX0ZPUl9DTUQiLAkweDY5MGV9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfVU5SRUdJU1RFUl9GT1JfQ01EIiwJMHg2OTBmfSwKKwl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9HRVRTX0VWRU5UU19DTUQiLAkweDY5MTB9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX01ZX0FERFJFU1NfQ01EIiwJMHg2OTExfSwKKwl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX0dFVF9NWV9BRERSRVNTX0NNRCIsCTB4NjkxMn0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfTVlfTFVOX0NNRCIsCTB4NjkxM30sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9HRVRfTVlfTFVOX0NNRCIsCTB4NjkxNH0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAorCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHVFhJRExFIiwJMHg2ZDAzfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhFTkFCTEUiLAkweDZkMDR9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NSWEVOQUJMRSIsCTB4NmQwNX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1dSRlRTRUciLAkweDZkMDd9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NWT0xJTkZPIiwJMHg2ZDA4fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NJRiIsCTB4NmQwYX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NGVEZPUk1BVCIsCTB4NmQwYX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR0lGIiwJMHg2ZDBifSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCisJeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9JTklUIiwJMHg2ZTA1fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0lHTl9XQU5URUQiLAkweDZlMDZ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19MT0NLVU5MT0NLIiwJMHg2ZTA3fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUk9PVCIsCTB4NmUwOH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwJMHg2ZTBjfSwKKwl7ImxpbnV4L21hdHJveGZiLmgiLAkiTUFUUk9YRkJfR0VUX09VVFBVVF9DT05ORUNUSU9OIiwJMHg2ZWY4fSwKKwl7ImxpbnV4L3Npc2ZiLmgiLAkiU0lTRkJfR0VUX0lORk8iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09OIiwJMHg3MDAzfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT0ZGIiwJMHg3MDA0fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT04iLAkweDcwMDV9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9SRUFEIiwJMHg3MDBifSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1NFVCIsCTB4NzAwY30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfUkVBRCIsCTB4NzAwZH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfRVBPQ0hfU0VUIiwJMHg3MDBlfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT04iLAkweDcwMGZ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1NFVCIsCTB4NzAwZn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BMTF9HRVQiLAkweDcwMTF9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BMTF9TRVQiLAkweDcwMTJ9LAorCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19ERVZJQ0UiLAkweDcwNTB9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1JFSU5US01MIiwJMHg3MDUxfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HRVRfUkNWRCIsCTB4NzA1Mn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0lPQ1RMX1VJRCIsCTB4NzA1M30sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX0tNTF9TSVpFIiwJMHg3MDU0fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19QVVJHRV9GSUxFX0RBVEEiLAkweDcwNTV9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NPTk5FQ1QiLAkweDcwNTZ9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0dPX0ZFVENIX0tNTCIsCTB4NzA1N30sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfTUFSSyIsCTB4NzA1OH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQ0xFQVJfRlNFVCIsCTB4NzA1OX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQ0xFQVJfQUxMX0ZTRVRTIiwJMHg3MDYwfSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19TRVRfRlNFVCIsCTB4NzA2MX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfUkVWT0tFX1BFUk1JVCIsCTB4NzA2Mn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0tNTFNJWkUiLAkweDcwNjN9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX0NMSUVOVF9NQUtFX0JSQU5DSCIsCTB4NzA2NH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VSVkVSX01BS0VfQlJBTkNIIiwJMHg3MDY1fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19CUkFOQ0hfVU5ETyIsCTB4NzA2Nn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQlJBTkNIX1JFRE8iLAkweDcwNjd9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9QSUQiLAkweDcwNjh9LAorCXsibGludXgvaW50ZXJtZXp6b19pZGwuaCIsCSJJWk9fSU9DX1NFVF9DSEFOTkVMIiwJMHg3MDY5fSwKKwl7ImxpbnV4L2ludGVybWV6em9faWRsLmgiLAkiSVpPX0lPQ19HRVRfQ0hBTk5FTCIsCTB4NzA3MH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfR0VUX0ZJTEVJRCIsCTB4NzA3MX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfQURKVVNUX0xNTCIsCTB4NzA3Mn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfU0VUX0ZJTEVJRCIsCTB4NzA3M30sCisJeyJsaW51eC9pbnRlcm1lenpvX2lkbC5oIiwJIklaT19JT0NfUkVQU1RBVFVTIiwJMHg3MDc0fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAorCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJU0VSX0RFTEFZIiwJMHg3MGEwfSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVNFUl9USU1FT1VUIiwJMHg3MGExfSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVBBUl9ERUxBWSIsCTB4NzBhOH0sCisJeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElQQVJfVElNRU9VVCIsCTB4NzBhOX0sCisJeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUSU5GTyIsCTB4NzEwMX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJQQUdFIiwJMHg3MTAyfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkZPVU5EIiwJMHg3MTAzfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BBR0VSRVEiLAkweDcxMDR9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUU1RBVCIsCTB4NzEwNX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRQQUdFIiwJMHg3MTA2fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NUT1BEQVUiLAkweDcxMDd9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUFVUUEFHRSIsCTB4NzEwOH0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTRVRESVNQIiwJMHg3MTA5fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFNUQVQiLAkweDcxMGF9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSQ0FDSEUiLAkweDcxMGJ9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VUVklSVCIsCTB4NzEwY30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VUSU5GTyIsCTB4NzIwMX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1JFU0VUIiwJMHg3MjAyfSwKKwl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1NFVEZSRVEiLAkweDcyMDN9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VURlJFUSIsCTB4NzIwNH0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRDSEFOIiwJMHg3MjA1fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVENIQU4iLAkweDcyMDZ9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JJTlRSIiwJMHg3MzE0fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RBUlQiLAkweDczMTV9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVE9QIiwJMHg3MzE2fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CUkVTRVQiLAkweDczMTd9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0dFVFBGTEFHIiwJMHg3MzUwfSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9TRVRQRkxBRyIsCTB4NzM1MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQ0hBTiIsCTB4NzQzN30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRDSEFOIiwJMHg3NDM4fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RJU0NPTk4iLAkweDc0Mzl9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQ09OTkVDVCIsCTB4NzQzYX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJSVSIsCTB4NzQzYn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NERVRBQ0giLAkweDc0M2N9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQUNIIiwJMHg3NDNkfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ05FV1VOSVQiLAkweDc0M2V9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0lETEUiLAkweDc0M2Z9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0RFQlVHIiwJMHg3NDQwfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dERUJVRyIsCTB4NzQ0MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQUNUSVZFIiwJMHg3NDQ2fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NQQVNTIiwJMHg3NDQ3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NOUE1PREUiLAkweDc0NGJ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR05QTU9ERSIsCTB4NzQ0Y30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1MiLAkweDc0NGR9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DWEZFUlVOSVQiLAkweDc0NGV9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1hBU1lOQ01BUCIsCTB4NzQ0Zn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHWEFTWU5DTUFQIiwJMHg3NDUwfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNQVhDSUQiLAkweDc0NTF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SVSIsCTB4NzQ1Mn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTVJVIiwJMHg3NDUzfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NSQVNZTkNNQVAiLAkweDc0NTR9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1JBU1lOQ01BUCIsCTB4NzQ1NX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHVU5JVCIsCTB4NzQ1Nn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTQVNZTkNNQVAiLAkweDc0NTd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0FTWU5DTUFQIiwJMHg3NDU4fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NGTEFHUyIsCTB4NzQ1OX0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9UUkVFIiwJMHg3NDVifSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX0dFVF9TVEFUVVMiLAkweDc0NWN9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKKwl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiRklPU0VUT1dOIiwJMHg4OTAxfSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg4OTAyfSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiRklPR0VUT1dOIiwJMHg4OTAzfSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg4OTA0fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0FUTUFSSyIsCTB4ODkwNX0sCisJeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHU1RBTVAiLAkweDg5MDZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERSVCIsCTB4ODkwYn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTFJUIiwJMHg4OTBjfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DUlRNU0ciLAkweDg5MGR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZOQU1FIiwJMHg4OTEwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTElOSyIsCTB4ODkxMX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPTkYiLAkweDg5MTJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZGTEFHUyIsCTB4ODkxM30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkZMQUdTIiwJMHg4OTE0fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQUREUiIsCTB4ODkxNX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkFERFIiLAkweDg5MTZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZEU1RBRERSIiwJMHg4OTE3fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRFNUQUREUiIsCTB4ODkxOH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSREFERFIiLAkweDg5MTl9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUkRBRERSIiwJMHg4OTFhfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTkVUTUFTSyIsCTB4ODkxYn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5FVE1BU0siLAkweDg5MWN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRVRSSUMiLAkweDg5MWR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRVRSSUMiLAkweDg5MWV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNRU0iLAkweDg5MWZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNRU0iLAkweDg5MjB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNVFUiLAkweDg5MjF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNVFUiLAkweDg5MjJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZOQU1FIiwJMHg4OTIzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdBRERSIiwJMHg4OTI0fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGRU5DQVAiLAkweDg5MjV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZFTkNBUCIsCTB4ODkyNn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkhXQUREUiIsCTB4ODkyN30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlNMQVZFIiwJMHg4OTI5fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGU0xBVkUiLAkweDg5MzB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERNVUxUSSIsCTB4ODkzMX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTE1VTFRJIiwJMHg4OTMyfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSU5ERVgiLAkweDg5MzN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZQRkxBR1MiLAkweDg5MzR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZQRkxBR1MiLAkweDg5MzV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NESUZBRERSIiwJMHg4OTM2fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGSFdCUk9BRENBU1QiLAkweDg5Mzd9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZDT1VOVCIsCTB4ODkzOH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkJSIiwJMHg4OTQwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQlIiLAkweDg5NDF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZUWFFMRU4iLAkweDg5NDJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZUWFFMRU4iLAkweDg5NDN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZESVZFUlQiLAkweDg5NDR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZESVZFUlQiLAkweDg5NDV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NFVEhUT09MIiwJMHg4OTQ2fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVBIWSIsCTB4ODk0N30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dNSUlSRUciLAkweDg5NDh9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTTUlJUkVHIiwJMHg4OTQ5fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DV0FOREVWIiwJMHg4OTRhfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREFSUCIsCTB4ODk1M30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dBUlAiLAkweDg5NTR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTQVJQIiwJMHg4OTU1fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DRFJBUlAiLAkweDg5NjB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHUkFSUCIsCTB4ODk2MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NSQVJQIiwJMHg4OTYyfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGTUFQIiwJMHg4OTcwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTUFQIiwJMHg4OTcxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQURERExDSSIsCTB4ODk4MH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RFTERMQ0kiLAkweDg5ODF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZWTEFOIiwJMHg4OTgyfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGVkxBTiIsCTB4ODk4M30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRFTlNMQVZFIiwJMHg4OTkwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFJFTEVBU0UiLAkweDg5OTF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0VUSFdBRERSIiwJMHg4OTkyfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORFNMQVZFSU5GT1FVRVJZIiwJMHg4OTkzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORElORk9RVUVSWSIsCTB4ODk5NH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRDSEFOR0VBQ1RJVkUiLAkweDg5OTV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NQUk9UT1BSSVZBVEUiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NERVZQUklWQVRFIiwJMHg4OWYwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0NPTU1JVCIsCTB4OGIwMH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOQU1FIiwJMHg4YjAxfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV05XSUQiLAkweDhiMDJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTldJRCIsCTB4OGIwM30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdGUkVRIiwJMHg4YjA0fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0ZSRVEiLAkweDhiMDV9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTU9ERSIsCTB4OGIwNn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdNT0RFIiwJMHg4YjA3fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NFTlMiLAkweDhiMDh9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU0VOUyIsCTB4OGIwOX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSQU5HRSIsCTB4OGIwYX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQU5HRSIsCTB4OGIwYn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdQUklWIiwJMHg4YjBjfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1BSSVYiLAkweDhiMGR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1RBVFMiLAkweDhiMGV9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU1RBVFMiLAkweDhiMGZ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1BZIiwJMHg4YjEwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NQWSIsCTB4OGIxMX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdUSFJTUFkiLAkweDhiMTJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXVEhSU1BZIiwJMHg4YjEzfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0FQIiwJMHg4YjE0fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQIiwJMHg4YjE1fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQTElTVCIsCTB4OGIxN30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTQ0FOIiwJMHg4YjE4fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NDQU4iLAkweDhiMTl9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRVNTSUQiLAkweDhiMWF9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRVNTSUQiLAkweDhiMWJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTklDS04iLAkweDhiMWN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTklDS04iLAkweDhiMWR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFURSIsCTB4OGIyMH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQVRFIiwJMHg4YjIxfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JUUyIsCTB4OGIyMn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSVFMiLAkweDhiMjN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJBRyIsCTB4OGIyNH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkFHIiwJMHg4YjI1fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1RYUE9XIiwJMHg4YjI2fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RYUE9XIiwJMHg4YjI3fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JFVFJZIiwJMHg4YjI4fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JFVFJZIiwJMHg4YjI5fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VOQ09ERSIsCTB4OGIyYX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFTkNPREUiLAkweDhiMmJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUE9XRVIiLAkweDhiMmN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUE9XRVIiLAkweDhiMmR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVFBSSVYiLAkweDhiZTB9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdMQVNUUFJJViIsCTB4OGJmZn0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCisJeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKKwl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCisJeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX1ZFUlNJT04iLAkweGZkMDB9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9SRU1PVkVfQUxMIiwJMHhmZDAxfSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fTElTVF9ERVZJQ0VTIiwJMHhmZDAyfSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX0NSRUFURSIsCTB4ZmQwM30sCisJeyJsaW51eC9kbS1pb2N0bC5oIiwJIkRNX0RFVl9SRU1PVkUiLAkweGZkMDR9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfUkVOQU1FIiwJMHhmZDA1fSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1NVU1BFTkQiLAkweGZkMDZ9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9ERVZfU1RBVFVTIiwJMHhmZDA3fSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fREVWX1dBSVQiLAkweGZkMDh9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9UQUJMRV9MT0FEIiwJMHhmZDA5fSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfQ0xFQVIiLAkweGZkMGF9LAorCXsibGludXgvZG0taW9jdGwuaCIsCSJETV9UQUJMRV9ERVBTIiwJMHhmZDBifSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fVEFCTEVfU1RBVFVTIiwJMHhmZDBjfSwKKwl7ImxpbnV4L2RtLWlvY3RsLmgiLAkiRE1fTElTVF9WRVJTSU9OUyIsCTB4ZmQwZH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEVfT0xEIiwJMHhmZTAwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTU9WRSIsCTB4ZmUwMX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19FWFRFTkQiLAkweGZlMDN9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVEVUNFIiwJMHhmZTA0fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVUyIsCTB4ZmUwNX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX0NPVU5UIiwJMHhmZTA2fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfTkFNRUxJU1QiLAkweGZlMDd9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU0VUX0VYVEVOREFCTEUiLAkweGZlMDh9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVOQU1FIiwJMHhmZTA5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURSIsCTB4ZmUwYX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9DUkVBVEUiLAkweGZlMjB9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVNT1ZFIiwJMHhmZTIxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0FDVElWQVRFIiwJMHhmZTIyfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0RFQUNUSVZBVEUiLAkweGZlMjN9LAorCXsibGludXgvbHZtLmgiLAkiTFZfRVhURU5EIiwJMHhmZTI0fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFRFVDRSIsCTB4ZmUyNX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllOQU1FIiwJMHhmZTI2fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWUlOREVYIiwJMHhmZTI3fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BQ0NFU1MiLAkweGZlMjh9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FMTE9DQVRJT04iLAkweGZlMjl9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX1NUQVRVUyIsCTB4ZmUyYX0sCisJeyJsaW51eC9sdm0uaCIsCSJMRV9SRU1BUCIsCTB4ZmUyYn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TTkFQU0hPVF9VU0VfUkFURSIsCTB4ZmUyY30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllERVYiLAkweGZlMmV9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVOQU1FIiwJMHhmZTJmfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0JNQVAiLAkweGZlMzB9LAorCXsibGludXgvbHZtLmgiLAkiUFZfU1RBVFVTIiwJMHhmZTQwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX0NIQU5HRSIsCTB4ZmU0MX0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9GTFVTSCIsCTB4ZmU0Mn0sCisJeyJsaW51eC9sdm0uaCIsCSJQRV9MT0NLX1VOTE9DSyIsCTB4ZmU1MH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fR0VUX0lPUF9WRVJTSU9OIiwJMHhmZTk4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9SRVNFVCIsCTB4ZmU5OX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fTE9DS19MVk0iLAkweGZlOWF9LApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L2lvY3RsZW50LnNoIGIvc3RyYWNlL2xpbnV4L2lvY3RsZW50LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmM2Q3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvaW9jdGxlbnQuc2gKQEAgLTAsMCArMSw4OSBAQAorIyEgL2Jpbi9zaAorIworIyBDb3B5cmlnaHQgKGMpIDIwMDEgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyMgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisjIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyMgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorIyBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyMgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMKKyMJJElkOiBpb2N0bGVudC5zaCx2IDEuMTIgMjAwNC8xMC8wNiAyMjozMTozOCByb2xhbmQgRXhwICQKKyMKKworIyBWYWxpZGF0ZSBhcmcgY291bnQuCitjYXNlICQjIGluCisxKQorCWRpcj0iJDEiCisJYXNtPWFzbQorCTs7CisyKQorCWRpcj0iJDEiCisJYXNtPSIkMiIKKwk7OworKikKKyAgICAgICAgZWNobyAidXNhZ2U6ICQwIGluY2x1ZGUtZGlyZWN0b3J5IFthc20tc3ViZGlyZWN0b3J5XSIgPiYyCisgICAgICAgIGV4aXQgMQorCTs7Citlc2FjCisKK2xvb2t1cF9pb2N0bHMoKQoreworCXR5cGU9IiQxIgorCXNoaWZ0CisKKwkjIEJ1aWxkIHRoZSBsaXN0IG9mIGFsbCBpb2N0bHMKKwlyZWdleHA9J15bWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV1cK1tBLVpdW0EtWjAtOV9dKltbOnNwYWNlOl1dXCsweCciJHR5cGUiJy4uXD4nCisJKGNkICIkZGlyIiA7IGdyZXAgIiRyZWdleHAiICIkQCIgL2Rldi9udWxsIDI+L2Rldi9udWxsICkgfAorCQlzZWQgLW5lICJzLCRhc20vLGFzbS8sZyInCitzL15cKC4qXCk6W1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dKlwoW0EtWjAtOV9dKlwpW1s6c3BhY2U6XV0qXCgweCciJHR5cGUiJy4uXCkuKi8JeyAiXDEiLAkiXDIiLAlcMwl9LC9wJyBcCisJCT4+IGlvY3Rscy5oCit9CisKKzogPiBpb2N0bHMuaAorbG9va3VwX2lvY3RscyAyMiBzY3NpL3NnLmgKK2xvb2t1cF9pb2N0bHMgNDYgbGludXgvZmIuaAorbG9va3VwX2lvY3RscyA0QiBsaW51eC9rZC5oCitsb29rdXBfaW9jdGxzIDUzIGxpbnV4L2Nkcm9tLmggc2NzaS9zY3NpLmggc2NzaS9zY3NpX2lvY3RsLmgKK2xvb2t1cF9pb2N0bHMgNTQgJGFzbS9pb2N0bHMuaAorbG9va3VwX2lvY3RscyA1NiBsaW51eC92dC5oCitsb29rdXBfaW9jdGxzICc3WzEyXScgbGludXgvdmlkZW90ZXh0LmgKK2xvb2t1cF9pb2N0bHMgODkgJGFzbS9zb2NraW9zLmggbGludXgvc29ja2lvcy5oCitsb29rdXBfaW9jdGxzIDhCIGxpbnV4L3dpcmVsZXNzLmgKKworZmlsZXM9ImxpbnV4LyogJGFzbS8qIHNjc2kvKiBzb3VuZC8qIgorCisjIEJ1aWxkIHRoZSBsaXN0IG9mIGFsbCBpb2N0bHMKK3JlZ2V4cD0nXltbOnNwYWNlOl1dKiNbWzpzcGFjZTpdXSpkZWZpbmVbWzpzcGFjZTpdXVwrW0EtWl1bQS1aMC05X10qW1s6c3BhY2U6XV1cK19TXD9cKElPXHxJT1dcfElPUlx8SU9XUlwpXD4nCisoY2QgJGRpciA7IGdyZXAgJHJlZ2V4cCAkZmlsZXMgMj4vZGV2L251bGwgKSB8IFwKKwlzZWQgLW5lICJzLCRhc20vLGFzbS8sZyInCitzL15cKC4qXCk6W1s6c3BhY2U6XV0qI1tbOnNwYWNlOl1dKmRlZmluZVtbOnNwYWNlOl1dKlwoW0EtWjAtOV9dKlwpW1s6c3BhY2U6XV0qX1NcP0kuKihcKFteWyxdKlwpW1s6c3BhY2U6XV0qLFtbOnNwYWNlOl1dKlwoW14sKV0qXCkuKi8JeyAiXDEiLAkiXDIiLAlfSU9DKF9JT0NfTk9ORSxcMyxcNCwwKQl9LC9wJyBcCisJPj4gaW9jdGxzLmgKKworIyBTb21lIHVzZSBhIHNwZWNpYWwgYmFzZSB0byBvZmZzZXQgdGhlaXIgaW9jdGxzIG9uLiBFeHRyYWN0IHRoYXQgYXMgd2VsbC4KKzogPiBpb2N0bGRlZnMuaAorCitiYXNlcz0kKHNlZCAtbmUgJ3MvLipfSU9DX05PTkUuKixbWzpzcGFjZTpdXSpcKFtBLVpdW0EtWjAtOV9dXCtcKVtbOnNwYWNlOl0rLF0uKi9cMS9wJyBpb2N0bHMuaCB8IHVuaXEgfCBzb3J0KQorZm9yIGJhc2UgaW4gJGJhc2VzIDsgZG8KKwllY2hvICJMb29raW5nIGZvciAkYmFzZSIKKwlyZWdleHA9Il5bWzpzcGFjZTpdXSojW1s6c3BhY2U6XV0qZGVmaW5lW1s6c3BhY2U6XV1cKyRiYXNlIgorCShjZCAkZGlyIDsgZ3JlcCAtaCAkcmVnZXhwIDI+L2Rldi9udWxsICRmaWxlcyApIHwgXAorCQlncmVwIC12ICdcPF9JTycgPj4gaW9jdGxkZWZzLmgKK2RvbmUKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9pb2N0bHNvcnQuYyBiL3N0cmFjZS9saW51eC9pb2N0bHNvcnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTQ0ZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L2lvY3Rsc29ydC5jCkBAIC0wLDAgKzEsNTIgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSA8YXNtL2lvY3RsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2luY2x1ZGUgImlvY3RsZGVmcy5oIgorI2luY2x1ZGUgPGxpbnV4L2F0bWlvYy5oPgorCitzdHJ1Y3QgaW9jdGxlbnQgeworCWNvbnN0IGNoYXIqCWhlYWRlcjsKKwljb25zdCBjaGFyKgluYW1lOworCXVuc2lnbmVkIGxvbmcJY29kZTsKK307CisKK3N0cnVjdCBpb2N0bGVudCBpb2N0bHNbXSA9IHsKKyNpbmNsdWRlICJpb2N0bHMuaCIKK307CisKK2ludCBuaW9jdGxzID0gc2l6ZW9mKGlvY3RscykgLyBzaXplb2YoaW9jdGxzWzBdKTsKKworCitpbnQgY29tcGFyZShjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKSB7CisJdW5zaWduZWQgbG9uZyBjb2RlMSA9ICgoc3RydWN0IGlvY3RsZW50ICopIGEpLT5jb2RlOworCXVuc2lnbmVkIGxvbmcgY29kZTIgPSAoKHN0cnVjdCBpb2N0bGVudCAqKSBiKS0+Y29kZTsKKwljb25zdCBjaGFyICpuYW1lMSA9ICgoc3RydWN0IGlvY3RsZW50ICopIGEpLT5uYW1lOworCWNvbnN0IGNoYXIgKm5hbWUyID0gKChzdHJ1Y3QgaW9jdGxlbnQgKikgYiktPm5hbWU7CisJcmV0dXJuIChjb2RlMSA+IGNvZGUyKSA/IDEgOiAoY29kZTEgPCBjb2RlMikgPyAtMSA6IHN0cmNtcCAobmFtZTEsIG5hbWUyKTsKK30KKworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKwlpbnQgaTsKKworI2lmZGVmIFBPV0VSUEMJCQkvKiB1bnNwZWFrYWJsZSBrbHVkZ2UgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbmlvY3RsczsgaSsrKQorCQlpb2N0bHNbaV0uY29kZSAmPSB+X0lPQ19ESVJNQVNLOworI2VuZGlmCisKKwlxc29ydChpb2N0bHMsIG5pb2N0bHMsIHNpemVvZihpb2N0bHNbMF0pLCBjb21wYXJlKTsKKwlwdXRzICgiXHQvKiBHZW5lcmF0ZWQgYnkgaW9jdGxzb3J0ICovIik7CisJZm9yIChpID0gMDsgaSA8IG5pb2N0bHM7IGkrKykKKwkJaWYgKGkgPT0gMCB8fCBpb2N0bHNbaV0uY29kZSAhPSBpb2N0bHNbaS0xXS5jb2RlIHx8CisJCSAgICBzdHJjbXAgKGlvY3Rsc1tpXS5uYW1lLCBpb2N0bHNbaS0xXS5uYW1lKSkKKwkJCXByaW50ZigiXHR7XCIlc1wiLFx0XCIlc1wiLFx0JSNseH0sXG4iLAorCQkJCWlvY3Rsc1tpXS5oZWFkZXIsIGlvY3Rsc1tpXS5uYW1lLCBpb2N0bHNbaV0uY29kZSk7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9taXBzL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvbWlwcy9lcnJub2VudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMmVlODcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvbWlwcy9lcnJub2VudC5oCkBAIC0wLDAgKzEsMTEzNSBAQAorCSJFUlJOT18wIiwgLyogMCAqLworCSJFUEVSTSIsIC8qIDEgKi8KKwkiRU5PRU5UIiwgLyogMiAqLworCSJFU1JDSCIsIC8qIDMgKi8KKwkiRUlOVFIiLCAvKiA0ICovCisJIkVJTyIsIC8qIDUgKi8KKwkiRU5YSU8iLCAvKiA2ICovCisJIkUyQklHIiwgLyogNyAqLworCSJFTk9FWEVDIiwgLyogOCAqLworCSJFQkFERiIsIC8qIDkgKi8KKwkiRUNISUxEIiwgLyogMTAgKi8KKwkiRUFHQUlOIiwgLyogMTEgKi8KKwkiRU5PTUVNIiwgLyogMTIgKi8KKwkiRUFDQ0VTIiwgLyogMTMgKi8KKwkiRUZBVUxUIiwgLyogMTQgKi8KKwkiRU5PVEJMSyIsIC8qIDE1ICovCisJIkVCVVNZIiwgLyogMTYgKi8KKwkiRUVYSVNUIiwgLyogMTcgKi8KKwkiRVhERVYiLCAvKiAxOCAqLworCSJFTk9ERVYiLCAvKiAxOSAqLworCSJFTk9URElSIiwgLyogMjAgKi8KKwkiRUlTRElSIiwgLyogMjEgKi8KKwkiRUlOVkFMIiwgLyogMjIgKi8KKwkiRU5GSUxFIiwgLyogMjMgKi8KKwkiRU1GSUxFIiwgLyogMjQgKi8KKwkiRU5PVFRZIiwgLyogMjUgKi8KKwkiRVRYVEJTWSIsIC8qIDI2ICovCisJIkVGQklHIiwgLyogMjcgKi8KKwkiRU5PU1BDIiwgLyogMjggKi8KKwkiRVNQSVBFIiwgLyogMjkgKi8KKwkiRVJPRlMiLCAvKiAzMCAqLworCSJFTUxJTksiLCAvKiAzMSAqLworCSJFUElQRSIsIC8qIDMyICovCisJIkVET00iLCAvKiAzMyAqLworCSJFUkFOR0UiLCAvKiAzNCAqLworCSJFTk9NU0ciLCAvKiAzNSAqLworCSJFSURSTSIsIC8qIDM2ICovCisJIkVDSFJORyIsIC8qIDM3ICovCisJIkVMMk5TWU5DIiwgLyogMzggKi8KKwkiRUwzSExUIiwgLyogMzkgKi8KKwkiRUwzUlNUIiwgLyogNDAgKi8KKwkiRUxOUk5HIiwgLyogNDEgKi8KKwkiRVVOQVRDSCIsIC8qIDQyICovCisJIkVOT0NTSSIsIC8qIDQzICovCisJIkVMMkhMVCIsIC8qIDQ0ICovCisJIkVERUFETEsiLCAvKiA0NSAqLworCSJFTk9MQ0siLCAvKiA0NiAqLworCSJFUlJOT180NyIsIC8qIDQ3ICovCisJIkVSUk5PXzQ4IiwgLyogNDggKi8KKwkiRVJSTk9fNDkiLCAvKiA0OSAqLworCSJFQkFERSIsIC8qIDUwICovCisJIkVCQURSIiwgLyogNTEgKi8KKwkiRVhGVUxMIiwgLyogNTIgKi8KKwkiRU5PQU5PIiwgLyogNTMgKi8KKwkiRUJBRFJRQyIsIC8qIDU0ICovCisJIkVCQURTTFQiLCAvKiA1NSAqLworCSJFREVBRExPQ0siLCAvKiA1NiAqLworCSJFUlJOT181NyIsIC8qIDU3ICovCisJIkVSUk5PXzU4IiwgLyogNTggKi8KKwkiRUJGT05UIiwgLyogNTkgKi8KKwkiRU5PU1RSIiwgLyogNjAgKi8KKwkiRU5PREFUQSIsIC8qIDYxICovCisJIkVUSU1FIiwgLyogNjIgKi8KKwkiRU5PU1IiLCAvKiA2MyAqLworCSJFTk9ORVQiLCAvKiA2NCAqLworCSJFTk9QS0ciLCAvKiA2NSAqLworCSJFUkVNT1RFIiwgLyogNjYgKi8KKwkiRU5PTElOSyIsIC8qIDY3ICovCisJIkVBRFYiLCAvKiA2OCAqLworCSJFU1JNTlQiLCAvKiA2OSAqLworCSJFQ09NTSIsIC8qIDcwICovCisJIkVQUk9UTyIsIC8qIDcxICovCisJIkVSUk5PXzcyIiwgLyogNzIgKi8KKwkiRURPVERPVCIsIC8qIDczICovCisJIkVNVUxUSUhPUCIsIC8qIDc0ICovCisJIkVSUk5PXzc1IiwgLyogNzUgKi8KKwkiRVJSTk9fNzYiLCAvKiA3NiAqLworCSJFQkFETVNHIiwgLyogNzcgKi8KKwkiRU5BTUVUT09MT05HIiwgLyogNzggKi8KKwkiRU9WRVJGTE9XIiwgLyogNzkgKi8KKwkiRU5PVFVOSVEiLCAvKiA4MCAqLworCSJFQkFERkQiLCAvKiA4MSAqLworCSJFUkVNQ0hHIiwgLyogODIgKi8KKwkiRUxJQkFDQyIsIC8qIDgzICovCisJIkVMSUJCQUQiLCAvKiA4NCAqLworCSJFTElCU0NOIiwgLyogODUgKi8KKwkiRUxJQk1BWCIsIC8qIDg2ICovCisJIkVMSUJFWEVDIiwgLyogODcgKi8KKwkiRUlMU0VRIiwgLyogODggKi8KKwkiRU5PU1lTIiwgLyogODkgKi8KKwkiRUxPT1AiLCAvKiA5MCAqLworCSJFUkVTVEFSVCIsIC8qIDkxICovCisJIkVTVFJQSVBFIiwgLyogOTIgKi8KKwkiRU5PVEVNUFRZIiwgLyogOTMgKi8KKwkiRVVTRVJTIiwgLyogOTQgKi8KKwkiRU5PVFNPQ0siLCAvKiA5NSAqLworCSJFREVTVEFERFJSRVEiLCAvKiA5NiAqLworCSJFTVNHU0laRSIsIC8qIDk3ICovCisJIkVQUk9UT1RZUEUiLCAvKiA5OCAqLworCSJFTk9QUk9UT09QVCIsIC8qIDk5ICovCisJIkVSUk5PXzEwMCIsIC8qIDEwMCAqLworCSJFUlJOT18xMDEiLCAvKiAxMDEgKi8KKwkiRVJSTk9fMTAyIiwgLyogMTAyICovCisJIkVSUk5PXzEwMyIsIC8qIDEwMyAqLworCSJFUlJOT18xMDQiLCAvKiAxMDQgKi8KKwkiRVJSTk9fMTA1IiwgLyogMTA1ICovCisJIkVSUk5PXzEwNiIsIC8qIDEwNiAqLworCSJFUlJOT18xMDciLCAvKiAxMDcgKi8KKwkiRVJSTk9fMTA4IiwgLyogMTA4ICovCisJIkVSUk5PXzEwOSIsIC8qIDEwOSAqLworCSJFUlJOT18xMTAiLCAvKiAxMTAgKi8KKwkiRVJSTk9fMTExIiwgLyogMTExICovCisJIkVSUk5PXzExMiIsIC8qIDExMiAqLworCSJFUlJOT18xMTMiLCAvKiAxMTMgKi8KKwkiRVJSTk9fMTE0IiwgLyogMTE0ICovCisJIkVSUk5PXzExNSIsIC8qIDExNSAqLworCSJFUlJOT18xMTYiLCAvKiAxMTYgKi8KKwkiRVJSTk9fMTE3IiwgLyogMTE3ICovCisJIkVSUk5PXzExOCIsIC8qIDExOCAqLworCSJFUlJOT18xMTkiLCAvKiAxMTkgKi8KKwkiRVBST1RPTk9TVVBQT1JUIiwgLyogMTIwICovCisJIkVTT0NLVE5PU1VQUE9SVCIsIC8qIDEyMSAqLworCSJFT1BOT1RTVVBQIiwgLyogMTIyICovCisJIkVQRk5PU1VQUE9SVCIsIC8qIDEyMyAqLworCSJFQUZOT1NVUFBPUlQiLCAvKiAxMjQgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDEyNSAqLworCSJFQUREUk5PVEFWQUlMIiwgLyogMTI2ICovCisJIkVORVRET1dOIiwgLyogMTI3ICovCisJIkVORVRVTlJFQUNIIiwgLyogMTI4ICovCisJIkVORVRSRVNFVCIsIC8qIDEyOSAqLworCSJFQ09OTkFCT1JURUQiLCAvKiAxMzAgKi8KKwkiRUNPTk5SRVNFVCIsIC8qIDEzMSAqLworCSJFTk9CVUZTIiwgLyogMTMyICovCisJIkVJU0NPTk4iLCAvKiAxMzMgKi8KKwkiRU5PVENPTk4iLCAvKiAxMzQgKi8KKwkiRVVDTEVBTiIsIC8qIDEzNSAqLworCSJFUlJOT18xMzYiLCAvKiAxMzYgKi8KKwkiRU5PVE5BTSIsIC8qIDEzNyAqLworCSJFTkFWQUlMIiwgLyogMTM4ICovCisJIkVJU05BTSIsIC8qIDEzOSAqLworCSJFUkVNT1RFSU8iLCAvKiAxNDAgKi8KKwkiRUlOSVQiLCAvKiAxNDEgKi8KKwkiRVJFTURFViIsIC8qIDE0MiAqLworCSJFU0hVVERPV04iLCAvKiAxNDMgKi8KKwkiRVRPT01BTllSRUZTIiwgLyogMTQ0ICovCisJIkVUSU1FRE9VVCIsIC8qIDE0NSAqLworCSJFQ09OTlJFRlVTRUQiLCAvKiAxNDYgKi8KKwkiRUhPU1RET1dOIiwgLyogMTQ3ICovCisJIkVIT1NUVU5SRUFDSCIsIC8qIDE0OCAqLworCSJFQUxSRUFEWSIsIC8qIDE0OSAqLworCSJFSU5QUk9HUkVTUyIsIC8qIDE1MCAqLworCSJFU1RBTEUiLCAvKiAxNTEgKi8KKwkiRVJSTk9fMTUyIiwgLyogMTUyICovCisJIkVSUk5PXzE1MyIsIC8qIDE1MyAqLworCSJFUlJOT18xNTQiLCAvKiAxNTQgKi8KKwkiRVJSTk9fMTU1IiwgLyogMTU1ICovCisJIkVSUk5PXzE1NiIsIC8qIDE1NiAqLworCSJFUlJOT18xNTciLCAvKiAxNTcgKi8KKwkiRUNBTkNFTEVEIiwgLyogMTU4ICovCisJIkVOT01FRElVTSIsIC8qIDE1OSAqLworCSJFTUVESVVNVFlQRSIsIC8qIDE2MCAqLworCSJFUlJOT18xNjEiLCAvKiAxNjEgKi8KKwkiRVJSTk9fMTYyIiwgLyogMTYyICovCisJIkVSUk5PXzE2MyIsIC8qIDE2MyAqLworCSJFUlJOT18xNjQiLCAvKiAxNjQgKi8KKwkiRVJSTk9fMTY1IiwgLyogMTY1ICovCisJIkVSUk5PXzE2NiIsIC8qIDE2NiAqLworCSJFUlJOT18xNjciLCAvKiAxNjcgKi8KKwkiRVJSTk9fMTY4IiwgLyogMTY4ICovCisJIkVSUk5PXzE2OSIsIC8qIDE2OSAqLworCSJFUlJOT18xNzAiLCAvKiAxNzAgKi8KKwkiRVJSTk9fMTcxIiwgLyogMTcxICovCisJIkVSUk5PXzE3MiIsIC8qIDE3MiAqLworCSJFUlJOT18xNzMiLCAvKiAxNzMgKi8KKwkiRVJSTk9fMTc0IiwgLyogMTc0ICovCisJIkVSUk5PXzE3NSIsIC8qIDE3NSAqLworCSJFUlJOT18xNzYiLCAvKiAxNzYgKi8KKwkiRVJSTk9fMTc3IiwgLyogMTc3ICovCisJIkVSUk5PXzE3OCIsIC8qIDE3OCAqLworCSJFUlJOT18xNzkiLCAvKiAxNzkgKi8KKwkiRVJSTk9fMTgwIiwgLyogMTgwICovCisJIkVSUk5PXzE4MSIsIC8qIDE4MSAqLworCSJFUlJOT18xODIiLCAvKiAxODIgKi8KKwkiRVJSTk9fMTgzIiwgLyogMTgzICovCisJIkVSUk5PXzE4NCIsIC8qIDE4NCAqLworCSJFUlJOT18xODUiLCAvKiAxODUgKi8KKwkiRVJSTk9fMTg2IiwgLyogMTg2ICovCisJIkVSUk5PXzE4NyIsIC8qIDE4NyAqLworCSJFUlJOT18xODgiLCAvKiAxODggKi8KKwkiRVJSTk9fMTg5IiwgLyogMTg5ICovCisJIkVSUk5PXzE5MCIsIC8qIDE5MCAqLworCSJFUlJOT18xOTEiLCAvKiAxOTEgKi8KKwkiRVJSTk9fMTkyIiwgLyogMTkyICovCisJIkVSUk5PXzE5MyIsIC8qIDE5MyAqLworCSJFUlJOT18xOTQiLCAvKiAxOTQgKi8KKwkiRVJSTk9fMTk1IiwgLyogMTk1ICovCisJIkVSUk5PXzE5NiIsIC8qIDE5NiAqLworCSJFUlJOT18xOTciLCAvKiAxOTcgKi8KKwkiRVJSTk9fMTk4IiwgLyogMTk4ICovCisJIkVSUk5PXzE5OSIsIC8qIDE5OSAqLworCSJFUlJOT18yMDAiLCAvKiAyMDAgKi8KKwkiRVJSTk9fMjAxIiwgLyogMjAxICovCisJIkVSUk5PXzIwMiIsIC8qIDIwMiAqLworCSJFUlJOT18yMDMiLCAvKiAyMDMgKi8KKwkiRVJSTk9fMjA0IiwgLyogMjA0ICovCisJIkVSUk5PXzIwNSIsIC8qIDIwNSAqLworCSJFUlJOT18yMDYiLCAvKiAyMDYgKi8KKwkiRVJSTk9fMjA3IiwgLyogMjA3ICovCisJIkVSUk5PXzIwOCIsIC8qIDIwOCAqLworCSJFUlJOT18yMDkiLCAvKiAyMDkgKi8KKwkiRVJSTk9fMjEwIiwgLyogMjEwICovCisJIkVSUk5PXzIxMSIsIC8qIDIxMSAqLworCSJFUlJOT18yMTIiLCAvKiAyMTIgKi8KKwkiRVJSTk9fMjEzIiwgLyogMjEzICovCisJIkVSUk5PXzIxNCIsIC8qIDIxNCAqLworCSJFUlJOT18yMTUiLCAvKiAyMTUgKi8KKwkiRVJSTk9fMjE2IiwgLyogMjE2ICovCisJIkVSUk5PXzIxNyIsIC8qIDIxNyAqLworCSJFUlJOT18yMTgiLCAvKiAyMTggKi8KKwkiRVJSTk9fMjE5IiwgLyogMjE5ICovCisJIkVSUk5PXzIyMCIsIC8qIDIyMCAqLworCSJFUlJOT18yMjEiLCAvKiAyMjEgKi8KKwkiRVJSTk9fMjIyIiwgLyogMjIyICovCisJIkVSUk5PXzIyMyIsIC8qIDIyMyAqLworCSJFUlJOT18yMjQiLCAvKiAyMjQgKi8KKwkiRVJSTk9fMjI1IiwgLyogMjI1ICovCisJIkVSUk5PXzIyNiIsIC8qIDIyNiAqLworCSJFUlJOT18yMjciLCAvKiAyMjcgKi8KKwkiRVJSTk9fMjI4IiwgLyogMjI4ICovCisJIkVSUk5PXzIyOSIsIC8qIDIyOSAqLworCSJFUlJOT18yMzAiLCAvKiAyMzAgKi8KKwkiRVJSTk9fMjMxIiwgLyogMjMxICovCisJIkVSUk5PXzIzMiIsIC8qIDIzMiAqLworCSJFUlJOT18yMzMiLCAvKiAyMzMgKi8KKwkiRVJSTk9fMjM0IiwgLyogMjM0ICovCisJIkVSUk5PXzIzNSIsIC8qIDIzNSAqLworCSJFUlJOT18yMzYiLCAvKiAyMzYgKi8KKwkiRVJSTk9fMjM3IiwgLyogMjM3ICovCisJIkVSUk5PXzIzOCIsIC8qIDIzOCAqLworCSJFUlJOT18yMzkiLCAvKiAyMzkgKi8KKwkiRVJSTk9fMjQwIiwgLyogMjQwICovCisJIkVSUk5PXzI0MSIsIC8qIDI0MSAqLworCSJFUlJOT18yNDIiLCAvKiAyNDIgKi8KKwkiRVJSTk9fMjQzIiwgLyogMjQzICovCisJIkVSUk5PXzI0NCIsIC8qIDI0NCAqLworCSJFUlJOT18yNDUiLCAvKiAyNDUgKi8KKwkiRVJSTk9fMjQ2IiwgLyogMjQ2ICovCisJIkVSUk5PXzI0NyIsIC8qIDI0NyAqLworCSJFUlJOT18yNDgiLCAvKiAyNDggKi8KKwkiRVJSTk9fMjQ5IiwgLyogMjQ5ICovCisJIkVSUk5PXzI1MCIsIC8qIDI1MCAqLworCSJFUlJOT18yNTEiLCAvKiAyNTEgKi8KKwkiRVJSTk9fMjUyIiwgLyogMjUyICovCisJIkVSUk5PXzI1MyIsIC8qIDI1MyAqLworCSJFUlJOT18yNTQiLCAvKiAyNTQgKi8KKwkiRVJSTk9fMjU1IiwgLyogMjU1ICovCisJIkVSUk5PXzI1NiIsIC8qIDI1NiAqLworCSJFUlJOT18yNTciLCAvKiAyNTcgKi8KKwkiRVJSTk9fMjU4IiwgLyogMjU4ICovCisJIkVSUk5PXzI1OSIsIC8qIDI1OSAqLworCSJFUlJOT18yNjAiLCAvKiAyNjAgKi8KKwkiRVJSTk9fMjYxIiwgLyogMjYxICovCisJIkVSUk5PXzI2MiIsIC8qIDI2MiAqLworCSJFUlJOT18yNjMiLCAvKiAyNjMgKi8KKwkiRVJSTk9fMjY0IiwgLyogMjY0ICovCisJIkVSUk5PXzI2NSIsIC8qIDI2NSAqLworCSJFUlJOT18yNjYiLCAvKiAyNjYgKi8KKwkiRVJSTk9fMjY3IiwgLyogMjY3ICovCisJIkVSUk5PXzI2OCIsIC8qIDI2OCAqLworCSJFUlJOT18yNjkiLCAvKiAyNjkgKi8KKwkiRVJSTk9fMjcwIiwgLyogMjcwICovCisJIkVSUk5PXzI3MSIsIC8qIDI3MSAqLworCSJFUlJOT18yNzIiLCAvKiAyNzIgKi8KKwkiRVJSTk9fMjczIiwgLyogMjczICovCisJIkVSUk5PXzI3NCIsIC8qIDI3NCAqLworCSJFUlJOT18yNzUiLCAvKiAyNzUgKi8KKwkiRVJSTk9fMjc2IiwgLyogMjc2ICovCisJIkVSUk5PXzI3NyIsIC8qIDI3NyAqLworCSJFUlJOT18yNzgiLCAvKiAyNzggKi8KKwkiRVJSTk9fMjc5IiwgLyogMjc5ICovCisJIkVSUk5PXzI4MCIsIC8qIDI4MCAqLworCSJFUlJOT18yODEiLCAvKiAyODEgKi8KKwkiRVJSTk9fMjgyIiwgLyogMjgyICovCisJIkVSUk5PXzI4MyIsIC8qIDI4MyAqLworCSJFUlJOT18yODQiLCAvKiAyODQgKi8KKwkiRVJSTk9fMjg1IiwgLyogMjg1ICovCisJIkVSUk5PXzI4NiIsIC8qIDI4NiAqLworCSJFUlJOT18yODciLCAvKiAyODcgKi8KKwkiRVJSTk9fMjg4IiwgLyogMjg4ICovCisJIkVSUk5PXzI4OSIsIC8qIDI4OSAqLworCSJFUlJOT18yOTAiLCAvKiAyOTAgKi8KKwkiRVJSTk9fMjkxIiwgLyogMjkxICovCisJIkVSUk5PXzI5MiIsIC8qIDI5MiAqLworCSJFUlJOT18yOTMiLCAvKiAyOTMgKi8KKwkiRVJSTk9fMjk0IiwgLyogMjk0ICovCisJIkVSUk5PXzI5NSIsIC8qIDI5NSAqLworCSJFUlJOT18yOTYiLCAvKiAyOTYgKi8KKwkiRVJSTk9fMjk3IiwgLyogMjk3ICovCisJIkVSUk5PXzI5OCIsIC8qIDI5OCAqLworCSJFUlJOT18yOTkiLCAvKiAyOTkgKi8KKwkiRVJSTk9fMzAwIiwgLyogMzAwICovCisJIkVSUk5PXzMwMSIsIC8qIDMwMSAqLworCSJFUlJOT18zMDIiLCAvKiAzMDIgKi8KKwkiRVJSTk9fMzAzIiwgLyogMzAzICovCisJIkVSUk5PXzMwNCIsIC8qIDMwNCAqLworCSJFUlJOT18zMDUiLCAvKiAzMDUgKi8KKwkiRVJSTk9fMzA2IiwgLyogMzA2ICovCisJIkVSUk5PXzMwNyIsIC8qIDMwNyAqLworCSJFUlJOT18zMDgiLCAvKiAzMDggKi8KKwkiRVJSTk9fMzA5IiwgLyogMzA5ICovCisJIkVSUk5PXzMxMCIsIC8qIDMxMCAqLworCSJFUlJOT18zMTEiLCAvKiAzMTEgKi8KKwkiRVJSTk9fMzEyIiwgLyogMzEyICovCisJIkVSUk5PXzMxMyIsIC8qIDMxMyAqLworCSJFUlJOT18zMTQiLCAvKiAzMTQgKi8KKwkiRVJSTk9fMzE1IiwgLyogMzE1ICovCisJIkVSUk5PXzMxNiIsIC8qIDMxNiAqLworCSJFUlJOT18zMTciLCAvKiAzMTcgKi8KKwkiRVJSTk9fMzE4IiwgLyogMzE4ICovCisJIkVSUk5PXzMxOSIsIC8qIDMxOSAqLworCSJFUlJOT18zMjAiLCAvKiAzMjAgKi8KKwkiRVJSTk9fMzIxIiwgLyogMzIxICovCisJIkVSUk5PXzMyMiIsIC8qIDMyMiAqLworCSJFUlJOT18zMjMiLCAvKiAzMjMgKi8KKwkiRVJSTk9fMzI0IiwgLyogMzI0ICovCisJIkVSUk5PXzMyNSIsIC8qIDMyNSAqLworCSJFUlJOT18zMjYiLCAvKiAzMjYgKi8KKwkiRVJSTk9fMzI3IiwgLyogMzI3ICovCisJIkVSUk5PXzMyOCIsIC8qIDMyOCAqLworCSJFUlJOT18zMjkiLCAvKiAzMjkgKi8KKwkiRVJSTk9fMzMwIiwgLyogMzMwICovCisJIkVSUk5PXzMzMSIsIC8qIDMzMSAqLworCSJFUlJOT18zMzIiLCAvKiAzMzIgKi8KKwkiRVJSTk9fMzMzIiwgLyogMzMzICovCisJIkVSUk5PXzMzNCIsIC8qIDMzNCAqLworCSJFUlJOT18zMzUiLCAvKiAzMzUgKi8KKwkiRVJSTk9fMzM2IiwgLyogMzM2ICovCisJIkVSUk5PXzMzNyIsIC8qIDMzNyAqLworCSJFUlJOT18zMzgiLCAvKiAzMzggKi8KKwkiRVJSTk9fMzM5IiwgLyogMzM5ICovCisJIkVSUk5PXzM0MCIsIC8qIDM0MCAqLworCSJFUlJOT18zNDEiLCAvKiAzNDEgKi8KKwkiRVJSTk9fMzQyIiwgLyogMzQyICovCisJIkVSUk5PXzM0MyIsIC8qIDM0MyAqLworCSJFUlJOT18zNDQiLCAvKiAzNDQgKi8KKwkiRVJSTk9fMzQ1IiwgLyogMzQ1ICovCisJIkVSUk5PXzM0NiIsIC8qIDM0NiAqLworCSJFUlJOT18zNDciLCAvKiAzNDcgKi8KKwkiRVJSTk9fMzQ4IiwgLyogMzQ4ICovCisJIkVSUk5PXzM0OSIsIC8qIDM0OSAqLworCSJFUlJOT18zNTAiLCAvKiAzNTAgKi8KKwkiRVJSTk9fMzUxIiwgLyogMzUxICovCisJIkVSUk5PXzM1MiIsIC8qIDM1MiAqLworCSJFUlJOT18zNTMiLCAvKiAzNTMgKi8KKwkiRVJSTk9fMzU0IiwgLyogMzU0ICovCisJIkVSUk5PXzM1NSIsIC8qIDM1NSAqLworCSJFUlJOT18zNTYiLCAvKiAzNTYgKi8KKwkiRVJSTk9fMzU3IiwgLyogMzU3ICovCisJIkVSUk5PXzM1OCIsIC8qIDM1OCAqLworCSJFUlJOT18zNTkiLCAvKiAzNTkgKi8KKwkiRVJSTk9fMzYwIiwgLyogMzYwICovCisJIkVSUk5PXzM2MSIsIC8qIDM2MSAqLworCSJFUlJOT18zNjIiLCAvKiAzNjIgKi8KKwkiRVJSTk9fMzYzIiwgLyogMzYzICovCisJIkVSUk5PXzM2NCIsIC8qIDM2NCAqLworCSJFUlJOT18zNjUiLCAvKiAzNjUgKi8KKwkiRVJSTk9fMzY2IiwgLyogMzY2ICovCisJIkVSUk5PXzM2NyIsIC8qIDM2NyAqLworCSJFUlJOT18zNjgiLCAvKiAzNjggKi8KKwkiRVJSTk9fMzY5IiwgLyogMzY5ICovCisJIkVSUk5PXzM3MCIsIC8qIDM3MCAqLworCSJFUlJOT18zNzEiLCAvKiAzNzEgKi8KKwkiRVJSTk9fMzcyIiwgLyogMzcyICovCisJIkVSUk5PXzM3MyIsIC8qIDM3MyAqLworCSJFUlJOT18zNzQiLCAvKiAzNzQgKi8KKwkiRVJSTk9fMzc1IiwgLyogMzc1ICovCisJIkVSUk5PXzM3NiIsIC8qIDM3NiAqLworCSJFUlJOT18zNzciLCAvKiAzNzcgKi8KKwkiRVJSTk9fMzc4IiwgLyogMzc4ICovCisJIkVSUk5PXzM3OSIsIC8qIDM3OSAqLworCSJFUlJOT18zODAiLCAvKiAzODAgKi8KKwkiRVJSTk9fMzgxIiwgLyogMzgxICovCisJIkVSUk5PXzM4MiIsIC8qIDM4MiAqLworCSJFUlJOT18zODMiLCAvKiAzODMgKi8KKwkiRVJSTk9fMzg0IiwgLyogMzg0ICovCisJIkVSUk5PXzM4NSIsIC8qIDM4NSAqLworCSJFUlJOT18zODYiLCAvKiAzODYgKi8KKwkiRVJSTk9fMzg3IiwgLyogMzg3ICovCisJIkVSUk5PXzM4OCIsIC8qIDM4OCAqLworCSJFUlJOT18zODkiLCAvKiAzODkgKi8KKwkiRVJSTk9fMzkwIiwgLyogMzkwICovCisJIkVSUk5PXzM5MSIsIC8qIDM5MSAqLworCSJFUlJOT18zOTIiLCAvKiAzOTIgKi8KKwkiRVJSTk9fMzkzIiwgLyogMzkzICovCisJIkVSUk5PXzM5NCIsIC8qIDM5NCAqLworCSJFUlJOT18zOTUiLCAvKiAzOTUgKi8KKwkiRVJSTk9fMzk2IiwgLyogMzk2ICovCisJIkVSUk5PXzM5NyIsIC8qIDM5NyAqLworCSJFUlJOT18zOTgiLCAvKiAzOTggKi8KKwkiRVJSTk9fMzk5IiwgLyogMzk5ICovCisJIkVSUk5PXzQwMCIsIC8qIDQwMCAqLworCSJFUlJOT180MDEiLCAvKiA0MDEgKi8KKwkiRVJSTk9fNDAyIiwgLyogNDAyICovCisJIkVSUk5PXzQwMyIsIC8qIDQwMyAqLworCSJFUlJOT180MDQiLCAvKiA0MDQgKi8KKwkiRVJSTk9fNDA1IiwgLyogNDA1ICovCisJIkVSUk5PXzQwNiIsIC8qIDQwNiAqLworCSJFUlJOT180MDciLCAvKiA0MDcgKi8KKwkiRVJSTk9fNDA4IiwgLyogNDA4ICovCisJIkVSUk5PXzQwOSIsIC8qIDQwOSAqLworCSJFUlJOT180MTAiLCAvKiA0MTAgKi8KKwkiRVJSTk9fNDExIiwgLyogNDExICovCisJIkVSUk5PXzQxMiIsIC8qIDQxMiAqLworCSJFUlJOT180MTMiLCAvKiA0MTMgKi8KKwkiRVJSTk9fNDE0IiwgLyogNDE0ICovCisJIkVSUk5PXzQxNSIsIC8qIDQxNSAqLworCSJFUlJOT180MTYiLCAvKiA0MTYgKi8KKwkiRVJSTk9fNDE3IiwgLyogNDE3ICovCisJIkVSUk5PXzQxOCIsIC8qIDQxOCAqLworCSJFUlJOT180MTkiLCAvKiA0MTkgKi8KKwkiRVJSTk9fNDIwIiwgLyogNDIwICovCisJIkVSUk5PXzQyMSIsIC8qIDQyMSAqLworCSJFUlJOT180MjIiLCAvKiA0MjIgKi8KKwkiRVJSTk9fNDIzIiwgLyogNDIzICovCisJIkVSUk5PXzQyNCIsIC8qIDQyNCAqLworCSJFUlJOT180MjUiLCAvKiA0MjUgKi8KKwkiRVJSTk9fNDI2IiwgLyogNDI2ICovCisJIkVSUk5PXzQyNyIsIC8qIDQyNyAqLworCSJFUlJOT180MjgiLCAvKiA0MjggKi8KKwkiRVJSTk9fNDI5IiwgLyogNDI5ICovCisJIkVSUk5PXzQzMCIsIC8qIDQzMCAqLworCSJFUlJOT180MzEiLCAvKiA0MzEgKi8KKwkiRVJSTk9fNDMyIiwgLyogNDMyICovCisJIkVSUk5PXzQzMyIsIC8qIDQzMyAqLworCSJFUlJOT180MzQiLCAvKiA0MzQgKi8KKwkiRVJSTk9fNDM1IiwgLyogNDM1ICovCisJIkVSUk5PXzQzNiIsIC8qIDQzNiAqLworCSJFUlJOT180MzciLCAvKiA0MzcgKi8KKwkiRVJSTk9fNDM4IiwgLyogNDM4ICovCisJIkVSUk5PXzQzOSIsIC8qIDQzOSAqLworCSJFUlJOT180NDAiLCAvKiA0NDAgKi8KKwkiRVJSTk9fNDQxIiwgLyogNDQxICovCisJIkVSUk5PXzQ0MiIsIC8qIDQ0MiAqLworCSJFUlJOT180NDMiLCAvKiA0NDMgKi8KKwkiRVJSTk9fNDQ0IiwgLyogNDQ0ICovCisJIkVSUk5PXzQ0NSIsIC8qIDQ0NSAqLworCSJFUlJOT180NDYiLCAvKiA0NDYgKi8KKwkiRVJSTk9fNDQ3IiwgLyogNDQ3ICovCisJIkVSUk5PXzQ0OCIsIC8qIDQ0OCAqLworCSJFUlJOT180NDkiLCAvKiA0NDkgKi8KKwkiRVJSTk9fNDUwIiwgLyogNDUwICovCisJIkVSUk5PXzQ1MSIsIC8qIDQ1MSAqLworCSJFUlJOT180NTIiLCAvKiA0NTIgKi8KKwkiRVJSTk9fNDUzIiwgLyogNDUzICovCisJIkVSUk5PXzQ1NCIsIC8qIDQ1NCAqLworCSJFUlJOT180NTUiLCAvKiA0NTUgKi8KKwkiRVJSTk9fNDU2IiwgLyogNDU2ICovCisJIkVSUk5PXzQ1NyIsIC8qIDQ1NyAqLworCSJFUlJOT180NTgiLCAvKiA0NTggKi8KKwkiRVJSTk9fNDU5IiwgLyogNDU5ICovCisJIkVSUk5PXzQ2MCIsIC8qIDQ2MCAqLworCSJFUlJOT180NjEiLCAvKiA0NjEgKi8KKwkiRVJSTk9fNDYyIiwgLyogNDYyICovCisJIkVSUk5PXzQ2MyIsIC8qIDQ2MyAqLworCSJFUlJOT180NjQiLCAvKiA0NjQgKi8KKwkiRVJSTk9fNDY1IiwgLyogNDY1ICovCisJIkVSUk5PXzQ2NiIsIC8qIDQ2NiAqLworCSJFUlJOT180NjciLCAvKiA0NjcgKi8KKwkiRVJSTk9fNDY4IiwgLyogNDY4ICovCisJIkVSUk5PXzQ2OSIsIC8qIDQ2OSAqLworCSJFUlJOT180NzAiLCAvKiA0NzAgKi8KKwkiRVJSTk9fNDcxIiwgLyogNDcxICovCisJIkVSUk5PXzQ3MiIsIC8qIDQ3MiAqLworCSJFUlJOT180NzMiLCAvKiA0NzMgKi8KKwkiRVJSTk9fNDc0IiwgLyogNDc0ICovCisJIkVSUk5PXzQ3NSIsIC8qIDQ3NSAqLworCSJFUlJOT180NzYiLCAvKiA0NzYgKi8KKwkiRVJSTk9fNDc3IiwgLyogNDc3ICovCisJIkVSUk5PXzQ3OCIsIC8qIDQ3OCAqLworCSJFUlJOT180NzkiLCAvKiA0NzkgKi8KKwkiRVJSTk9fNDgwIiwgLyogNDgwICovCisJIkVSUk5PXzQ4MSIsIC8qIDQ4MSAqLworCSJFUlJOT180ODIiLCAvKiA0ODIgKi8KKwkiRVJSTk9fNDgzIiwgLyogNDgzICovCisJIkVSUk5PXzQ4NCIsIC8qIDQ4NCAqLworCSJFUlJOT180ODUiLCAvKiA0ODUgKi8KKwkiRVJSTk9fNDg2IiwgLyogNDg2ICovCisJIkVSUk5PXzQ4NyIsIC8qIDQ4NyAqLworCSJFUlJOT180ODgiLCAvKiA0ODggKi8KKwkiRVJSTk9fNDg5IiwgLyogNDg5ICovCisJIkVSUk5PXzQ5MCIsIC8qIDQ5MCAqLworCSJFUlJOT180OTEiLCAvKiA0OTEgKi8KKwkiRVJSTk9fNDkyIiwgLyogNDkyICovCisJIkVSUk5PXzQ5MyIsIC8qIDQ5MyAqLworCSJFUlJOT180OTQiLCAvKiA0OTQgKi8KKwkiRVJSTk9fNDk1IiwgLyogNDk1ICovCisJIkVSUk5PXzQ5NiIsIC8qIDQ5NiAqLworCSJFUlJOT180OTciLCAvKiA0OTcgKi8KKwkiRVJSTk9fNDk4IiwgLyogNDk4ICovCisJIkVSUk5PXzQ5OSIsIC8qIDQ5OSAqLworCSJFUlJOT181MDAiLCAvKiA1MDAgKi8KKwkiRVJSTk9fNTAxIiwgLyogNTAxICovCisJIkVSUk5PXzUwMiIsIC8qIDUwMiAqLworCSJFUlJOT181MDMiLCAvKiA1MDMgKi8KKwkiRVJSTk9fNTA0IiwgLyogNTA0ICovCisJIkVSUk5PXzUwNSIsIC8qIDUwNSAqLworCSJFUlJOT181MDYiLCAvKiA1MDYgKi8KKwkiRVJSTk9fNTA3IiwgLyogNTA3ICovCisJIkVSUk5PXzUwOCIsIC8qIDUwOCAqLworCSJFUlJOT181MDkiLCAvKiA1MDkgKi8KKwkiRVJSTk9fNTEwIiwgLyogNTEwICovCisJIkVSUk5PXzUxMSIsIC8qIDUxMSAqLworCSJFUlJOT181MTIiLCAvKiA1MTIgKi8KKwkiRVJSTk9fNTEzIiwgLyogNTEzICovCisJIkVSUk5PXzUxNCIsIC8qIDUxNCAqLworCSJFUlJOT181MTUiLCAvKiA1MTUgKi8KKwkiRVJSTk9fNTE2IiwgLyogNTE2ICovCisJIkVSUk5PXzUxNyIsIC8qIDUxNyAqLworCSJFUlJOT181MTgiLCAvKiA1MTggKi8KKwkiRVJSTk9fNTE5IiwgLyogNTE5ICovCisJIkVSUk5PXzUyMCIsIC8qIDUyMCAqLworCSJFUlJOT181MjEiLCAvKiA1MjEgKi8KKwkiRVJSTk9fNTIyIiwgLyogNTIyICovCisJIkVSUk5PXzUyMyIsIC8qIDUyMyAqLworCSJFUlJOT181MjQiLCAvKiA1MjQgKi8KKwkiRVJSTk9fNTI1IiwgLyogNTI1ICovCisJIkVSUk5PXzUyNiIsIC8qIDUyNiAqLworCSJFUlJOT181MjciLCAvKiA1MjcgKi8KKwkiRVJSTk9fNTI4IiwgLyogNTI4ICovCisJIkVSUk5PXzUyOSIsIC8qIDUyOSAqLworCSJFUlJOT181MzAiLCAvKiA1MzAgKi8KKwkiRVJSTk9fNTMxIiwgLyogNTMxICovCisJIkVSUk5PXzUzMiIsIC8qIDUzMiAqLworCSJFUlJOT181MzMiLCAvKiA1MzMgKi8KKwkiRVJSTk9fNTM0IiwgLyogNTM0ICovCisJIkVSUk5PXzUzNSIsIC8qIDUzNSAqLworCSJFUlJOT181MzYiLCAvKiA1MzYgKi8KKwkiRVJSTk9fNTM3IiwgLyogNTM3ICovCisJIkVSUk5PXzUzOCIsIC8qIDUzOCAqLworCSJFUlJOT181MzkiLCAvKiA1MzkgKi8KKwkiRVJSTk9fNTQwIiwgLyogNTQwICovCisJIkVSUk5PXzU0MSIsIC8qIDU0MSAqLworCSJFUlJOT181NDIiLCAvKiA1NDIgKi8KKwkiRVJSTk9fNTQzIiwgLyogNTQzICovCisJIkVSUk5PXzU0NCIsIC8qIDU0NCAqLworCSJFUlJOT181NDUiLCAvKiA1NDUgKi8KKwkiRVJSTk9fNTQ2IiwgLyogNTQ2ICovCisJIkVSUk5PXzU0NyIsIC8qIDU0NyAqLworCSJFUlJOT181NDgiLCAvKiA1NDggKi8KKwkiRVJSTk9fNTQ5IiwgLyogNTQ5ICovCisJIkVSUk5PXzU1MCIsIC8qIDU1MCAqLworCSJFUlJOT181NTEiLCAvKiA1NTEgKi8KKwkiRVJSTk9fNTUyIiwgLyogNTUyICovCisJIkVSUk5PXzU1MyIsIC8qIDU1MyAqLworCSJFUlJOT181NTQiLCAvKiA1NTQgKi8KKwkiRVJSTk9fNTU1IiwgLyogNTU1ICovCisJIkVSUk5PXzU1NiIsIC8qIDU1NiAqLworCSJFUlJOT181NTciLCAvKiA1NTcgKi8KKwkiRVJSTk9fNTU4IiwgLyogNTU4ICovCisJIkVSUk5PXzU1OSIsIC8qIDU1OSAqLworCSJFUlJOT181NjAiLCAvKiA1NjAgKi8KKwkiRVJSTk9fNTYxIiwgLyogNTYxICovCisJIkVSUk5PXzU2MiIsIC8qIDU2MiAqLworCSJFUlJOT181NjMiLCAvKiA1NjMgKi8KKwkiRVJSTk9fNTY0IiwgLyogNTY0ICovCisJIkVSUk5PXzU2NSIsIC8qIDU2NSAqLworCSJFUlJOT181NjYiLCAvKiA1NjYgKi8KKwkiRVJSTk9fNTY3IiwgLyogNTY3ICovCisJIkVSUk5PXzU2OCIsIC8qIDU2OCAqLworCSJFUlJOT181NjkiLCAvKiA1NjkgKi8KKwkiRVJSTk9fNTcwIiwgLyogNTcwICovCisJIkVSUk5PXzU3MSIsIC8qIDU3MSAqLworCSJFUlJOT181NzIiLCAvKiA1NzIgKi8KKwkiRVJSTk9fNTczIiwgLyogNTczICovCisJIkVSUk5PXzU3NCIsIC8qIDU3NCAqLworCSJFUlJOT181NzUiLCAvKiA1NzUgKi8KKwkiRVJSTk9fNTc2IiwgLyogNTc2ICovCisJIkVSUk5PXzU3NyIsIC8qIDU3NyAqLworCSJFUlJOT181NzgiLCAvKiA1NzggKi8KKwkiRVJSTk9fNTc5IiwgLyogNTc5ICovCisJIkVSUk5PXzU4MCIsIC8qIDU4MCAqLworCSJFUlJOT181ODEiLCAvKiA1ODEgKi8KKwkiRVJSTk9fNTgyIiwgLyogNTgyICovCisJIkVSUk5PXzU4MyIsIC8qIDU4MyAqLworCSJFUlJOT181ODQiLCAvKiA1ODQgKi8KKwkiRVJSTk9fNTg1IiwgLyogNTg1ICovCisJIkVSUk5PXzU4NiIsIC8qIDU4NiAqLworCSJFUlJOT181ODciLCAvKiA1ODcgKi8KKwkiRVJSTk9fNTg4IiwgLyogNTg4ICovCisJIkVSUk5PXzU4OSIsIC8qIDU4OSAqLworCSJFUlJOT181OTAiLCAvKiA1OTAgKi8KKwkiRVJSTk9fNTkxIiwgLyogNTkxICovCisJIkVSUk5PXzU5MiIsIC8qIDU5MiAqLworCSJFUlJOT181OTMiLCAvKiA1OTMgKi8KKwkiRVJSTk9fNTk0IiwgLyogNTk0ICovCisJIkVSUk5PXzU5NSIsIC8qIDU5NSAqLworCSJFUlJOT181OTYiLCAvKiA1OTYgKi8KKwkiRVJSTk9fNTk3IiwgLyogNTk3ICovCisJIkVSUk5PXzU5OCIsIC8qIDU5OCAqLworCSJFUlJOT181OTkiLCAvKiA1OTkgKi8KKwkiRVJSTk9fNjAwIiwgLyogNjAwICovCisJIkVSUk5PXzYwMSIsIC8qIDYwMSAqLworCSJFUlJOT182MDIiLCAvKiA2MDIgKi8KKwkiRVJSTk9fNjAzIiwgLyogNjAzICovCisJIkVSUk5PXzYwNCIsIC8qIDYwNCAqLworCSJFUlJOT182MDUiLCAvKiA2MDUgKi8KKwkiRVJSTk9fNjA2IiwgLyogNjA2ICovCisJIkVSUk5PXzYwNyIsIC8qIDYwNyAqLworCSJFUlJOT182MDgiLCAvKiA2MDggKi8KKwkiRVJSTk9fNjA5IiwgLyogNjA5ICovCisJIkVSUk5PXzYxMCIsIC8qIDYxMCAqLworCSJFUlJOT182MTEiLCAvKiA2MTEgKi8KKwkiRVJSTk9fNjEyIiwgLyogNjEyICovCisJIkVSUk5PXzYxMyIsIC8qIDYxMyAqLworCSJFUlJOT182MTQiLCAvKiA2MTQgKi8KKwkiRVJSTk9fNjE1IiwgLyogNjE1ICovCisJIkVSUk5PXzYxNiIsIC8qIDYxNiAqLworCSJFUlJOT182MTciLCAvKiA2MTcgKi8KKwkiRVJSTk9fNjE4IiwgLyogNjE4ICovCisJIkVSUk5PXzYxOSIsIC8qIDYxOSAqLworCSJFUlJOT182MjAiLCAvKiA2MjAgKi8KKwkiRVJSTk9fNjIxIiwgLyogNjIxICovCisJIkVSUk5PXzYyMiIsIC8qIDYyMiAqLworCSJFUlJOT182MjMiLCAvKiA2MjMgKi8KKwkiRVJSTk9fNjI0IiwgLyogNjI0ICovCisJIkVSUk5PXzYyNSIsIC8qIDYyNSAqLworCSJFUlJOT182MjYiLCAvKiA2MjYgKi8KKwkiRVJSTk9fNjI3IiwgLyogNjI3ICovCisJIkVSUk5PXzYyOCIsIC8qIDYyOCAqLworCSJFUlJOT182MjkiLCAvKiA2MjkgKi8KKwkiRVJSTk9fNjMwIiwgLyogNjMwICovCisJIkVSUk5PXzYzMSIsIC8qIDYzMSAqLworCSJFUlJOT182MzIiLCAvKiA2MzIgKi8KKwkiRVJSTk9fNjMzIiwgLyogNjMzICovCisJIkVSUk5PXzYzNCIsIC8qIDYzNCAqLworCSJFUlJOT182MzUiLCAvKiA2MzUgKi8KKwkiRVJSTk9fNjM2IiwgLyogNjM2ICovCisJIkVSUk5PXzYzNyIsIC8qIDYzNyAqLworCSJFUlJOT182MzgiLCAvKiA2MzggKi8KKwkiRVJSTk9fNjM5IiwgLyogNjM5ICovCisJIkVSUk5PXzY0MCIsIC8qIDY0MCAqLworCSJFUlJOT182NDEiLCAvKiA2NDEgKi8KKwkiRVJSTk9fNjQyIiwgLyogNjQyICovCisJIkVSUk5PXzY0MyIsIC8qIDY0MyAqLworCSJFUlJOT182NDQiLCAvKiA2NDQgKi8KKwkiRVJSTk9fNjQ1IiwgLyogNjQ1ICovCisJIkVSUk5PXzY0NiIsIC8qIDY0NiAqLworCSJFUlJOT182NDciLCAvKiA2NDcgKi8KKwkiRVJSTk9fNjQ4IiwgLyogNjQ4ICovCisJIkVSUk5PXzY0OSIsIC8qIDY0OSAqLworCSJFUlJOT182NTAiLCAvKiA2NTAgKi8KKwkiRVJSTk9fNjUxIiwgLyogNjUxICovCisJIkVSUk5PXzY1MiIsIC8qIDY1MiAqLworCSJFUlJOT182NTMiLCAvKiA2NTMgKi8KKwkiRVJSTk9fNjU0IiwgLyogNjU0ICovCisJIkVSUk5PXzY1NSIsIC8qIDY1NSAqLworCSJFUlJOT182NTYiLCAvKiA2NTYgKi8KKwkiRVJSTk9fNjU3IiwgLyogNjU3ICovCisJIkVSUk5PXzY1OCIsIC8qIDY1OCAqLworCSJFUlJOT182NTkiLCAvKiA2NTkgKi8KKwkiRVJSTk9fNjYwIiwgLyogNjYwICovCisJIkVSUk5PXzY2MSIsIC8qIDY2MSAqLworCSJFUlJOT182NjIiLCAvKiA2NjIgKi8KKwkiRVJSTk9fNjYzIiwgLyogNjYzICovCisJIkVSUk5PXzY2NCIsIC8qIDY2NCAqLworCSJFUlJOT182NjUiLCAvKiA2NjUgKi8KKwkiRVJSTk9fNjY2IiwgLyogNjY2ICovCisJIkVSUk5PXzY2NyIsIC8qIDY2NyAqLworCSJFUlJOT182NjgiLCAvKiA2NjggKi8KKwkiRVJSTk9fNjY5IiwgLyogNjY5ICovCisJIkVSUk5PXzY3MCIsIC8qIDY3MCAqLworCSJFUlJOT182NzEiLCAvKiA2NzEgKi8KKwkiRVJSTk9fNjcyIiwgLyogNjcyICovCisJIkVSUk5PXzY3MyIsIC8qIDY3MyAqLworCSJFUlJOT182NzQiLCAvKiA2NzQgKi8KKwkiRVJSTk9fNjc1IiwgLyogNjc1ICovCisJIkVSUk5PXzY3NiIsIC8qIDY3NiAqLworCSJFUlJOT182NzciLCAvKiA2NzcgKi8KKwkiRVJSTk9fNjc4IiwgLyogNjc4ICovCisJIkVSUk5PXzY3OSIsIC8qIDY3OSAqLworCSJFUlJOT182ODAiLCAvKiA2ODAgKi8KKwkiRVJSTk9fNjgxIiwgLyogNjgxICovCisJIkVSUk5PXzY4MiIsIC8qIDY4MiAqLworCSJFUlJOT182ODMiLCAvKiA2ODMgKi8KKwkiRVJSTk9fNjg0IiwgLyogNjg0ICovCisJIkVSUk5PXzY4NSIsIC8qIDY4NSAqLworCSJFUlJOT182ODYiLCAvKiA2ODYgKi8KKwkiRVJSTk9fNjg3IiwgLyogNjg3ICovCisJIkVSUk5PXzY4OCIsIC8qIDY4OCAqLworCSJFUlJOT182ODkiLCAvKiA2ODkgKi8KKwkiRVJSTk9fNjkwIiwgLyogNjkwICovCisJIkVSUk5PXzY5MSIsIC8qIDY5MSAqLworCSJFUlJOT182OTIiLCAvKiA2OTIgKi8KKwkiRVJSTk9fNjkzIiwgLyogNjkzICovCisJIkVSUk5PXzY5NCIsIC8qIDY5NCAqLworCSJFUlJOT182OTUiLCAvKiA2OTUgKi8KKwkiRVJSTk9fNjk2IiwgLyogNjk2ICovCisJIkVSUk5PXzY5NyIsIC8qIDY5NyAqLworCSJFUlJOT182OTgiLCAvKiA2OTggKi8KKwkiRVJSTk9fNjk5IiwgLyogNjk5ICovCisJIkVSUk5PXzcwMCIsIC8qIDcwMCAqLworCSJFUlJOT183MDEiLCAvKiA3MDEgKi8KKwkiRVJSTk9fNzAyIiwgLyogNzAyICovCisJIkVSUk5PXzcwMyIsIC8qIDcwMyAqLworCSJFUlJOT183MDQiLCAvKiA3MDQgKi8KKwkiRVJSTk9fNzA1IiwgLyogNzA1ICovCisJIkVSUk5PXzcwNiIsIC8qIDcwNiAqLworCSJFUlJOT183MDciLCAvKiA3MDcgKi8KKwkiRVJSTk9fNzA4IiwgLyogNzA4ICovCisJIkVSUk5PXzcwOSIsIC8qIDcwOSAqLworCSJFUlJOT183MTAiLCAvKiA3MTAgKi8KKwkiRVJSTk9fNzExIiwgLyogNzExICovCisJIkVSUk5PXzcxMiIsIC8qIDcxMiAqLworCSJFUlJOT183MTMiLCAvKiA3MTMgKi8KKwkiRVJSTk9fNzE0IiwgLyogNzE0ICovCisJIkVSUk5PXzcxNSIsIC8qIDcxNSAqLworCSJFUlJOT183MTYiLCAvKiA3MTYgKi8KKwkiRVJSTk9fNzE3IiwgLyogNzE3ICovCisJIkVSUk5PXzcxOCIsIC8qIDcxOCAqLworCSJFUlJOT183MTkiLCAvKiA3MTkgKi8KKwkiRVJSTk9fNzIwIiwgLyogNzIwICovCisJIkVSUk5PXzcyMSIsIC8qIDcyMSAqLworCSJFUlJOT183MjIiLCAvKiA3MjIgKi8KKwkiRVJSTk9fNzIzIiwgLyogNzIzICovCisJIkVSUk5PXzcyNCIsIC8qIDcyNCAqLworCSJFUlJOT183MjUiLCAvKiA3MjUgKi8KKwkiRVJSTk9fNzI2IiwgLyogNzI2ICovCisJIkVSUk5PXzcyNyIsIC8qIDcyNyAqLworCSJFUlJOT183MjgiLCAvKiA3MjggKi8KKwkiRVJSTk9fNzI5IiwgLyogNzI5ICovCisJIkVSUk5PXzczMCIsIC8qIDczMCAqLworCSJFUlJOT183MzEiLCAvKiA3MzEgKi8KKwkiRVJSTk9fNzMyIiwgLyogNzMyICovCisJIkVSUk5PXzczMyIsIC8qIDczMyAqLworCSJFUlJOT183MzQiLCAvKiA3MzQgKi8KKwkiRVJSTk9fNzM1IiwgLyogNzM1ICovCisJIkVSUk5PXzczNiIsIC8qIDczNiAqLworCSJFUlJOT183MzciLCAvKiA3MzcgKi8KKwkiRVJSTk9fNzM4IiwgLyogNzM4ICovCisJIkVSUk5PXzczOSIsIC8qIDczOSAqLworCSJFUlJOT183NDAiLCAvKiA3NDAgKi8KKwkiRVJSTk9fNzQxIiwgLyogNzQxICovCisJIkVSUk5PXzc0MiIsIC8qIDc0MiAqLworCSJFUlJOT183NDMiLCAvKiA3NDMgKi8KKwkiRVJSTk9fNzQ0IiwgLyogNzQ0ICovCisJIkVSUk5PXzc0NSIsIC8qIDc0NSAqLworCSJFUlJOT183NDYiLCAvKiA3NDYgKi8KKwkiRVJSTk9fNzQ3IiwgLyogNzQ3ICovCisJIkVSUk5PXzc0OCIsIC8qIDc0OCAqLworCSJFUlJOT183NDkiLCAvKiA3NDkgKi8KKwkiRVJSTk9fNzUwIiwgLyogNzUwICovCisJIkVSUk5PXzc1MSIsIC8qIDc1MSAqLworCSJFUlJOT183NTIiLCAvKiA3NTIgKi8KKwkiRVJSTk9fNzUzIiwgLyogNzUzICovCisJIkVSUk5PXzc1NCIsIC8qIDc1NCAqLworCSJFUlJOT183NTUiLCAvKiA3NTUgKi8KKwkiRVJSTk9fNzU2IiwgLyogNzU2ICovCisJIkVSUk5PXzc1NyIsIC8qIDc1NyAqLworCSJFUlJOT183NTgiLCAvKiA3NTggKi8KKwkiRVJSTk9fNzU5IiwgLyogNzU5ICovCisJIkVSUk5PXzc2MCIsIC8qIDc2MCAqLworCSJFUlJOT183NjEiLCAvKiA3NjEgKi8KKwkiRVJSTk9fNzYyIiwgLyogNzYyICovCisJIkVSUk5PXzc2MyIsIC8qIDc2MyAqLworCSJFUlJOT183NjQiLCAvKiA3NjQgKi8KKwkiRVJSTk9fNzY1IiwgLyogNzY1ICovCisJIkVSUk5PXzc2NiIsIC8qIDc2NiAqLworCSJFUlJOT183NjciLCAvKiA3NjcgKi8KKwkiRVJSTk9fNzY4IiwgLyogNzY4ICovCisJIkVSUk5PXzc2OSIsIC8qIDc2OSAqLworCSJFUlJOT183NzAiLCAvKiA3NzAgKi8KKwkiRVJSTk9fNzcxIiwgLyogNzcxICovCisJIkVSUk5PXzc3MiIsIC8qIDc3MiAqLworCSJFUlJOT183NzMiLCAvKiA3NzMgKi8KKwkiRVJSTk9fNzc0IiwgLyogNzc0ICovCisJIkVSUk5PXzc3NSIsIC8qIDc3NSAqLworCSJFUlJOT183NzYiLCAvKiA3NzYgKi8KKwkiRVJSTk9fNzc3IiwgLyogNzc3ICovCisJIkVSUk5PXzc3OCIsIC8qIDc3OCAqLworCSJFUlJOT183NzkiLCAvKiA3NzkgKi8KKwkiRVJSTk9fNzgwIiwgLyogNzgwICovCisJIkVSUk5PXzc4MSIsIC8qIDc4MSAqLworCSJFUlJOT183ODIiLCAvKiA3ODIgKi8KKwkiRVJSTk9fNzgzIiwgLyogNzgzICovCisJIkVSUk5PXzc4NCIsIC8qIDc4NCAqLworCSJFUlJOT183ODUiLCAvKiA3ODUgKi8KKwkiRVJSTk9fNzg2IiwgLyogNzg2ICovCisJIkVSUk5PXzc4NyIsIC8qIDc4NyAqLworCSJFUlJOT183ODgiLCAvKiA3ODggKi8KKwkiRVJSTk9fNzg5IiwgLyogNzg5ICovCisJIkVSUk5PXzc5MCIsIC8qIDc5MCAqLworCSJFUlJOT183OTEiLCAvKiA3OTEgKi8KKwkiRVJSTk9fNzkyIiwgLyogNzkyICovCisJIkVSUk5PXzc5MyIsIC8qIDc5MyAqLworCSJFUlJOT183OTQiLCAvKiA3OTQgKi8KKwkiRVJSTk9fNzk1IiwgLyogNzk1ICovCisJIkVSUk5PXzc5NiIsIC8qIDc5NiAqLworCSJFUlJOT183OTciLCAvKiA3OTcgKi8KKwkiRVJSTk9fNzk4IiwgLyogNzk4ICovCisJIkVSUk5PXzc5OSIsIC8qIDc5OSAqLworCSJFUlJOT184MDAiLCAvKiA4MDAgKi8KKwkiRVJSTk9fODAxIiwgLyogODAxICovCisJIkVSUk5PXzgwMiIsIC8qIDgwMiAqLworCSJFUlJOT184MDMiLCAvKiA4MDMgKi8KKwkiRVJSTk9fODA0IiwgLyogODA0ICovCisJIkVSUk5PXzgwNSIsIC8qIDgwNSAqLworCSJFUlJOT184MDYiLCAvKiA4MDYgKi8KKwkiRVJSTk9fODA3IiwgLyogODA3ICovCisJIkVSUk5PXzgwOCIsIC8qIDgwOCAqLworCSJFUlJOT184MDkiLCAvKiA4MDkgKi8KKwkiRVJSTk9fODEwIiwgLyogODEwICovCisJIkVSUk5PXzgxMSIsIC8qIDgxMSAqLworCSJFUlJOT184MTIiLCAvKiA4MTIgKi8KKwkiRVJSTk9fODEzIiwgLyogODEzICovCisJIkVSUk5PXzgxNCIsIC8qIDgxNCAqLworCSJFUlJOT184MTUiLCAvKiA4MTUgKi8KKwkiRVJSTk9fODE2IiwgLyogODE2ICovCisJIkVSUk5PXzgxNyIsIC8qIDgxNyAqLworCSJFUlJOT184MTgiLCAvKiA4MTggKi8KKwkiRVJSTk9fODE5IiwgLyogODE5ICovCisJIkVSUk5PXzgyMCIsIC8qIDgyMCAqLworCSJFUlJOT184MjEiLCAvKiA4MjEgKi8KKwkiRVJSTk9fODIyIiwgLyogODIyICovCisJIkVSUk5PXzgyMyIsIC8qIDgyMyAqLworCSJFUlJOT184MjQiLCAvKiA4MjQgKi8KKwkiRVJSTk9fODI1IiwgLyogODI1ICovCisJIkVSUk5PXzgyNiIsIC8qIDgyNiAqLworCSJFUlJOT184MjciLCAvKiA4MjcgKi8KKwkiRVJSTk9fODI4IiwgLyogODI4ICovCisJIkVSUk5PXzgyOSIsIC8qIDgyOSAqLworCSJFUlJOT184MzAiLCAvKiA4MzAgKi8KKwkiRVJSTk9fODMxIiwgLyogODMxICovCisJIkVSUk5PXzgzMiIsIC8qIDgzMiAqLworCSJFUlJOT184MzMiLCAvKiA4MzMgKi8KKwkiRVJSTk9fODM0IiwgLyogODM0ICovCisJIkVSUk5PXzgzNSIsIC8qIDgzNSAqLworCSJFUlJOT184MzYiLCAvKiA4MzYgKi8KKwkiRVJSTk9fODM3IiwgLyogODM3ICovCisJIkVSUk5PXzgzOCIsIC8qIDgzOCAqLworCSJFUlJOT184MzkiLCAvKiA4MzkgKi8KKwkiRVJSTk9fODQwIiwgLyogODQwICovCisJIkVSUk5PXzg0MSIsIC8qIDg0MSAqLworCSJFUlJOT184NDIiLCAvKiA4NDIgKi8KKwkiRVJSTk9fODQzIiwgLyogODQzICovCisJIkVSUk5PXzg0NCIsIC8qIDg0NCAqLworCSJFUlJOT184NDUiLCAvKiA4NDUgKi8KKwkiRVJSTk9fODQ2IiwgLyogODQ2ICovCisJIkVSUk5PXzg0NyIsIC8qIDg0NyAqLworCSJFUlJOT184NDgiLCAvKiA4NDggKi8KKwkiRVJSTk9fODQ5IiwgLyogODQ5ICovCisJIkVSUk5PXzg1MCIsIC8qIDg1MCAqLworCSJFUlJOT184NTEiLCAvKiA4NTEgKi8KKwkiRVJSTk9fODUyIiwgLyogODUyICovCisJIkVSUk5PXzg1MyIsIC8qIDg1MyAqLworCSJFUlJOT184NTQiLCAvKiA4NTQgKi8KKwkiRVJSTk9fODU1IiwgLyogODU1ICovCisJIkVSUk5PXzg1NiIsIC8qIDg1NiAqLworCSJFUlJOT184NTciLCAvKiA4NTcgKi8KKwkiRVJSTk9fODU4IiwgLyogODU4ICovCisJIkVSUk5PXzg1OSIsIC8qIDg1OSAqLworCSJFUlJOT184NjAiLCAvKiA4NjAgKi8KKwkiRVJSTk9fODYxIiwgLyogODYxICovCisJIkVSUk5PXzg2MiIsIC8qIDg2MiAqLworCSJFUlJOT184NjMiLCAvKiA4NjMgKi8KKwkiRVJSTk9fODY0IiwgLyogODY0ICovCisJIkVSUk5PXzg2NSIsIC8qIDg2NSAqLworCSJFUlJOT184NjYiLCAvKiA4NjYgKi8KKwkiRVJSTk9fODY3IiwgLyogODY3ICovCisJIkVSUk5PXzg2OCIsIC8qIDg2OCAqLworCSJFUlJOT184NjkiLCAvKiA4NjkgKi8KKwkiRVJSTk9fODcwIiwgLyogODcwICovCisJIkVSUk5PXzg3MSIsIC8qIDg3MSAqLworCSJFUlJOT184NzIiLCAvKiA4NzIgKi8KKwkiRVJSTk9fODczIiwgLyogODczICovCisJIkVSUk5PXzg3NCIsIC8qIDg3NCAqLworCSJFUlJOT184NzUiLCAvKiA4NzUgKi8KKwkiRVJSTk9fODc2IiwgLyogODc2ICovCisJIkVSUk5PXzg3NyIsIC8qIDg3NyAqLworCSJFUlJOT184NzgiLCAvKiA4NzggKi8KKwkiRVJSTk9fODc5IiwgLyogODc5ICovCisJIkVSUk5PXzg4MCIsIC8qIDg4MCAqLworCSJFUlJOT184ODEiLCAvKiA4ODEgKi8KKwkiRVJSTk9fODgyIiwgLyogODgyICovCisJIkVSUk5PXzg4MyIsIC8qIDg4MyAqLworCSJFUlJOT184ODQiLCAvKiA4ODQgKi8KKwkiRVJSTk9fODg1IiwgLyogODg1ICovCisJIkVSUk5PXzg4NiIsIC8qIDg4NiAqLworCSJFUlJOT184ODciLCAvKiA4ODcgKi8KKwkiRVJSTk9fODg4IiwgLyogODg4ICovCisJIkVSUk5PXzg4OSIsIC8qIDg4OSAqLworCSJFUlJOT184OTAiLCAvKiA4OTAgKi8KKwkiRVJSTk9fODkxIiwgLyogODkxICovCisJIkVSUk5PXzg5MiIsIC8qIDg5MiAqLworCSJFUlJOT184OTMiLCAvKiA4OTMgKi8KKwkiRVJSTk9fODk0IiwgLyogODk0ICovCisJIkVSUk5PXzg5NSIsIC8qIDg5NSAqLworCSJFUlJOT184OTYiLCAvKiA4OTYgKi8KKwkiRVJSTk9fODk3IiwgLyogODk3ICovCisJIkVSUk5PXzg5OCIsIC8qIDg5OCAqLworCSJFUlJOT184OTkiLCAvKiA4OTkgKi8KKwkiRVJSTk9fOTAwIiwgLyogOTAwICovCisJIkVSUk5PXzkwMSIsIC8qIDkwMSAqLworCSJFUlJOT185MDIiLCAvKiA5MDIgKi8KKwkiRVJSTk9fOTAzIiwgLyogOTAzICovCisJIkVSUk5PXzkwNCIsIC8qIDkwNCAqLworCSJFUlJOT185MDUiLCAvKiA5MDUgKi8KKwkiRVJSTk9fOTA2IiwgLyogOTA2ICovCisJIkVSUk5PXzkwNyIsIC8qIDkwNyAqLworCSJFUlJOT185MDgiLCAvKiA5MDggKi8KKwkiRVJSTk9fOTA5IiwgLyogOTA5ICovCisJIkVSUk5PXzkxMCIsIC8qIDkxMCAqLworCSJFUlJOT185MTEiLCAvKiA5MTEgKi8KKwkiRVJSTk9fOTEyIiwgLyogOTEyICovCisJIkVSUk5PXzkxMyIsIC8qIDkxMyAqLworCSJFUlJOT185MTQiLCAvKiA5MTQgKi8KKwkiRVJSTk9fOTE1IiwgLyogOTE1ICovCisJIkVSUk5PXzkxNiIsIC8qIDkxNiAqLworCSJFUlJOT185MTciLCAvKiA5MTcgKi8KKwkiRVJSTk9fOTE4IiwgLyogOTE4ICovCisJIkVSUk5PXzkxOSIsIC8qIDkxOSAqLworCSJFUlJOT185MjAiLCAvKiA5MjAgKi8KKwkiRVJSTk9fOTIxIiwgLyogOTIxICovCisJIkVSUk5PXzkyMiIsIC8qIDkyMiAqLworCSJFUlJOT185MjMiLCAvKiA5MjMgKi8KKwkiRVJSTk9fOTI0IiwgLyogOTI0ICovCisJIkVSUk5PXzkyNSIsIC8qIDkyNSAqLworCSJFUlJOT185MjYiLCAvKiA5MjYgKi8KKwkiRVJSTk9fOTI3IiwgLyogOTI3ICovCisJIkVSUk5PXzkyOCIsIC8qIDkyOCAqLworCSJFUlJOT185MjkiLCAvKiA5MjkgKi8KKwkiRVJSTk9fOTMwIiwgLyogOTMwICovCisJIkVSUk5PXzkzMSIsIC8qIDkzMSAqLworCSJFUlJOT185MzIiLCAvKiA5MzIgKi8KKwkiRVJSTk9fOTMzIiwgLyogOTMzICovCisJIkVSUk5PXzkzNCIsIC8qIDkzNCAqLworCSJFUlJOT185MzUiLCAvKiA5MzUgKi8KKwkiRVJSTk9fOTM2IiwgLyogOTM2ICovCisJIkVSUk5PXzkzNyIsIC8qIDkzNyAqLworCSJFUlJOT185MzgiLCAvKiA5MzggKi8KKwkiRVJSTk9fOTM5IiwgLyogOTM5ICovCisJIkVSUk5PXzk0MCIsIC8qIDk0MCAqLworCSJFUlJOT185NDEiLCAvKiA5NDEgKi8KKwkiRVJSTk9fOTQyIiwgLyogOTQyICovCisJIkVSUk5PXzk0MyIsIC8qIDk0MyAqLworCSJFUlJOT185NDQiLCAvKiA5NDQgKi8KKwkiRVJSTk9fOTQ1IiwgLyogOTQ1ICovCisJIkVSUk5PXzk0NiIsIC8qIDk0NiAqLworCSJFUlJOT185NDciLCAvKiA5NDcgKi8KKwkiRVJSTk9fOTQ4IiwgLyogOTQ4ICovCisJIkVSUk5PXzk0OSIsIC8qIDk0OSAqLworCSJFUlJOT185NTAiLCAvKiA5NTAgKi8KKwkiRVJSTk9fOTUxIiwgLyogOTUxICovCisJIkVSUk5PXzk1MiIsIC8qIDk1MiAqLworCSJFUlJOT185NTMiLCAvKiA5NTMgKi8KKwkiRVJSTk9fOTU0IiwgLyogOTU0ICovCisJIkVSUk5PXzk1NSIsIC8qIDk1NSAqLworCSJFUlJOT185NTYiLCAvKiA5NTYgKi8KKwkiRVJSTk9fOTU3IiwgLyogOTU3ICovCisJIkVSUk5PXzk1OCIsIC8qIDk1OCAqLworCSJFUlJOT185NTkiLCAvKiA5NTkgKi8KKwkiRVJSTk9fOTYwIiwgLyogOTYwICovCisJIkVSUk5PXzk2MSIsIC8qIDk2MSAqLworCSJFUlJOT185NjIiLCAvKiA5NjIgKi8KKwkiRVJSTk9fOTYzIiwgLyogOTYzICovCisJIkVSUk5PXzk2NCIsIC8qIDk2NCAqLworCSJFUlJOT185NjUiLCAvKiA5NjUgKi8KKwkiRVJSTk9fOTY2IiwgLyogOTY2ICovCisJIkVSUk5PXzk2NyIsIC8qIDk2NyAqLworCSJFUlJOT185NjgiLCAvKiA5NjggKi8KKwkiRVJSTk9fOTY5IiwgLyogOTY5ICovCisJIkVSUk5PXzk3MCIsIC8qIDk3MCAqLworCSJFUlJOT185NzEiLCAvKiA5NzEgKi8KKwkiRVJSTk9fOTcyIiwgLyogOTcyICovCisJIkVSUk5PXzk3MyIsIC8qIDk3MyAqLworCSJFUlJOT185NzQiLCAvKiA5NzQgKi8KKwkiRVJSTk9fOTc1IiwgLyogOTc1ICovCisJIkVSUk5PXzk3NiIsIC8qIDk3NiAqLworCSJFUlJOT185NzciLCAvKiA5NzcgKi8KKwkiRVJSTk9fOTc4IiwgLyogOTc4ICovCisJIkVSUk5PXzk3OSIsIC8qIDk3OSAqLworCSJFUlJOT185ODAiLCAvKiA5ODAgKi8KKwkiRVJSTk9fOTgxIiwgLyogOTgxICovCisJIkVSUk5PXzk4MiIsIC8qIDk4MiAqLworCSJFUlJOT185ODMiLCAvKiA5ODMgKi8KKwkiRVJSTk9fOTg0IiwgLyogOTg0ICovCisJIkVSUk5PXzk4NSIsIC8qIDk4NSAqLworCSJFUlJOT185ODYiLCAvKiA5ODYgKi8KKwkiRVJSTk9fOTg3IiwgLyogOTg3ICovCisJIkVSUk5PXzk4OCIsIC8qIDk4OCAqLworCSJFUlJOT185ODkiLCAvKiA5ODkgKi8KKwkiRVJSTk9fOTkwIiwgLyogOTkwICovCisJIkVSUk5PXzk5MSIsIC8qIDk5MSAqLworCSJFUlJOT185OTIiLCAvKiA5OTIgKi8KKwkiRVJSTk9fOTkzIiwgLyogOTkzICovCisJIkVSUk5PXzk5NCIsIC8qIDk5NCAqLworCSJFUlJOT185OTUiLCAvKiA5OTUgKi8KKwkiRVJSTk9fOTk2IiwgLyogOTk2ICovCisJIkVSUk5PXzk5NyIsIC8qIDk5NyAqLworCSJFUlJOT185OTgiLCAvKiA5OTggKi8KKwkiRVJSTk9fOTk5IiwgLyogOTk5ICovCisJIkVDQU5DRUxFRCIsIC8qIDEwMDAgKi8KKwkiRVJSTk9fMTAwMSIsIC8qIDEwMDEgKi8KKwkiRVJSTk9fMTAwMiIsIC8qIDEwMDIgKi8KKwkiRVJSTk9fMTAwMyIsIC8qIDEwMDMgKi8KKwkiRVJSTk9fMTAwNCIsIC8qIDEwMDQgKi8KKwkiRVJSTk9fMTAwNSIsIC8qIDEwMDUgKi8KKwkiRVJSTk9fMTAwNiIsIC8qIDEwMDYgKi8KKwkiRVJSTk9fMTAwNyIsIC8qIDEwMDcgKi8KKwkiRVJSTk9fMTAwOCIsIC8qIDEwMDggKi8KKwkiRVJSTk9fMTAwOSIsIC8qIDEwMDkgKi8KKwkiRVJSTk9fMTAxMCIsIC8qIDEwMTAgKi8KKwkiRVJSTk9fMTAxMSIsIC8qIDEwMTEgKi8KKwkiRVJSTk9fMTAxMiIsIC8qIDEwMTIgKi8KKwkiRVJSTk9fMTAxMyIsIC8qIDEwMTMgKi8KKwkiRVJSTk9fMTAxNCIsIC8qIDEwMTQgKi8KKwkiRVJSTk9fMTAxNSIsIC8qIDEwMTUgKi8KKwkiRVJSTk9fMTAxNiIsIC8qIDEwMTYgKi8KKwkiRVJSTk9fMTAxNyIsIC8qIDEwMTcgKi8KKwkiRVJSTk9fMTAxOCIsIC8qIDEwMTggKi8KKwkiRVJSTk9fMTAxOSIsIC8qIDEwMTkgKi8KKwkiRVJSTk9fMTAyMCIsIC8qIDEwMjAgKi8KKwkiRVJSTk9fMTAyMSIsIC8qIDEwMjEgKi8KKwkiRVJSTk9fMTAyMiIsIC8qIDEwMjIgKi8KKwkiRVJSTk9fMTAyMyIsIC8qIDEwMjMgKi8KKwkiRVJSTk9fMTAyNCIsIC8qIDEwMjQgKi8KKwkiRVJSTk9fMTAyNSIsIC8qIDEwMjUgKi8KKwkiRVJSTk9fMTAyNiIsIC8qIDEwMjYgKi8KKwkiRVJSTk9fMTAyNyIsIC8qIDEwMjcgKi8KKwkiRVJSTk9fMTAyOCIsIC8qIDEwMjggKi8KKwkiRVJSTk9fMTAyOSIsIC8qIDEwMjkgKi8KKwkiRVJSTk9fMTAzMCIsIC8qIDEwMzAgKi8KKwkiRVJSTk9fMTAzMSIsIC8qIDEwMzEgKi8KKwkiRVJSTk9fMTAzMiIsIC8qIDEwMzIgKi8KKwkiRVJSTk9fMTAzMyIsIC8qIDEwMzMgKi8KKwkiRVJSTk9fMTAzNCIsIC8qIDEwMzQgKi8KKwkiRVJSTk9fMTAzNSIsIC8qIDEwMzUgKi8KKwkiRVJSTk9fMTAzNiIsIC8qIDEwMzYgKi8KKwkiRVJSTk9fMTAzNyIsIC8qIDEwMzcgKi8KKwkiRVJSTk9fMTAzOCIsIC8qIDEwMzggKi8KKwkiRVJSTk9fMTAzOSIsIC8qIDEwMzkgKi8KKwkiRVJSTk9fMTA0MCIsIC8qIDEwNDAgKi8KKwkiRVJSTk9fMTA0MSIsIC8qIDEwNDEgKi8KKwkiRVJSTk9fMTA0MiIsIC8qIDEwNDIgKi8KKwkiRVJSTk9fMTA0MyIsIC8qIDEwNDMgKi8KKwkiRVJSTk9fMTA0NCIsIC8qIDEwNDQgKi8KKwkiRVJSTk9fMTA0NSIsIC8qIDEwNDUgKi8KKwkiRVJSTk9fMTA0NiIsIC8qIDEwNDYgKi8KKwkiRVJSTk9fMTA0NyIsIC8qIDEwNDcgKi8KKwkiRVJSTk9fMTA0OCIsIC8qIDEwNDggKi8KKwkiRVJSTk9fMTA0OSIsIC8qIDEwNDkgKi8KKwkiRVJSTk9fMTA1MCIsIC8qIDEwNTAgKi8KKwkiRVJSTk9fMTA1MSIsIC8qIDEwNTEgKi8KKwkiRVJSTk9fMTA1MiIsIC8qIDEwNTIgKi8KKwkiRVJSTk9fMTA1MyIsIC8qIDEwNTMgKi8KKwkiRVJSTk9fMTA1NCIsIC8qIDEwNTQgKi8KKwkiRVJSTk9fMTA1NSIsIC8qIDEwNTUgKi8KKwkiRVJSTk9fMTA1NiIsIC8qIDEwNTYgKi8KKwkiRVJSTk9fMTA1NyIsIC8qIDEwNTcgKi8KKwkiRVJSTk9fMTA1OCIsIC8qIDEwNTggKi8KKwkiRVJSTk9fMTA1OSIsIC8qIDEwNTkgKi8KKwkiRVJSTk9fMTA2MCIsIC8qIDEwNjAgKi8KKwkiRVJSTk9fMTA2MSIsIC8qIDEwNjEgKi8KKwkiRVJSTk9fMTA2MiIsIC8qIDEwNjIgKi8KKwkiRVJSTk9fMTA2MyIsIC8qIDEwNjMgKi8KKwkiRVJSTk9fMTA2NCIsIC8qIDEwNjQgKi8KKwkiRVJSTk9fMTA2NSIsIC8qIDEwNjUgKi8KKwkiRVJSTk9fMTA2NiIsIC8qIDEwNjYgKi8KKwkiRVJSTk9fMTA2NyIsIC8qIDEwNjcgKi8KKwkiRVJSTk9fMTA2OCIsIC8qIDEwNjggKi8KKwkiRVJSTk9fMTA2OSIsIC8qIDEwNjkgKi8KKwkiRVJSTk9fMTA3MCIsIC8qIDEwNzAgKi8KKwkiRVJSTk9fMTA3MSIsIC8qIDEwNzEgKi8KKwkiRVJSTk9fMTA3MiIsIC8qIDEwNzIgKi8KKwkiRVJSTk9fMTA3MyIsIC8qIDEwNzMgKi8KKwkiRVJSTk9fMTA3NCIsIC8qIDEwNzQgKi8KKwkiRVJSTk9fMTA3NSIsIC8qIDEwNzUgKi8KKwkiRVJSTk9fMTA3NiIsIC8qIDEwNzYgKi8KKwkiRVJSTk9fMTA3NyIsIC8qIDEwNzcgKi8KKwkiRVJSTk9fMTA3OCIsIC8qIDEwNzggKi8KKwkiRVJSTk9fMTA3OSIsIC8qIDEwNzkgKi8KKwkiRVJSTk9fMTA4MCIsIC8qIDEwODAgKi8KKwkiRVJSTk9fMTA4MSIsIC8qIDEwODEgKi8KKwkiRVJSTk9fMTA4MiIsIC8qIDEwODIgKi8KKwkiRVJSTk9fMTA4MyIsIC8qIDEwODMgKi8KKwkiRVJSTk9fMTA4NCIsIC8qIDEwODQgKi8KKwkiRVJSTk9fMTA4NSIsIC8qIDEwODUgKi8KKwkiRVJSTk9fMTA4NiIsIC8qIDEwODYgKi8KKwkiRVJSTk9fMTA4NyIsIC8qIDEwODcgKi8KKwkiRVJSTk9fMTA4OCIsIC8qIDEwODggKi8KKwkiRVJSTk9fMTA4OSIsIC8qIDEwODkgKi8KKwkiRVJSTk9fMTA5MCIsIC8qIDEwOTAgKi8KKwkiRVJSTk9fMTA5MSIsIC8qIDEwOTEgKi8KKwkiRVJSTk9fMTA5MiIsIC8qIDEwOTIgKi8KKwkiRVJSTk9fMTA5MyIsIC8qIDEwOTMgKi8KKwkiRVJSTk9fMTA5NCIsIC8qIDEwOTQgKi8KKwkiRVJSTk9fMTA5NSIsIC8qIDEwOTUgKi8KKwkiRVJSTk9fMTA5NiIsIC8qIDEwOTYgKi8KKwkiRVJSTk9fMTA5NyIsIC8qIDEwOTcgKi8KKwkiRVJSTk9fMTA5OCIsIC8qIDEwOTggKi8KKwkiRVJSTk9fMTA5OSIsIC8qIDEwOTkgKi8KKwkiRVJSTk9fMTEwMCIsIC8qIDExMDAgKi8KKwkiRVJSTk9fMTEwMSIsIC8qIDExMDEgKi8KKwkiRVJSTk9fMTEwMiIsIC8qIDExMDIgKi8KKwkiRVJSTk9fMTEwMyIsIC8qIDExMDMgKi8KKwkiRVJSTk9fMTEwNCIsIC8qIDExMDQgKi8KKwkiRVJSTk9fMTEwNSIsIC8qIDExMDUgKi8KKwkiRVJSTk9fMTEwNiIsIC8qIDExMDYgKi8KKwkiRVJSTk9fMTEwNyIsIC8qIDExMDcgKi8KKwkiRVJSTk9fMTEwOCIsIC8qIDExMDggKi8KKwkiRVJSTk9fMTEwOSIsIC8qIDExMDkgKi8KKwkiRVJSTk9fMTExMCIsIC8qIDExMTAgKi8KKwkiRVJSTk9fMTExMSIsIC8qIDExMTEgKi8KKwkiRVJSTk9fMTExMiIsIC8qIDExMTIgKi8KKwkiRVJSTk9fMTExMyIsIC8qIDExMTMgKi8KKwkiRVJSTk9fMTExNCIsIC8qIDExMTQgKi8KKwkiRVJSTk9fMTExNSIsIC8qIDExMTUgKi8KKwkiRVJSTk9fMTExNiIsIC8qIDExMTYgKi8KKwkiRVJSTk9fMTExNyIsIC8qIDExMTcgKi8KKwkiRVJSTk9fMTExOCIsIC8qIDExMTggKi8KKwkiRVJSTk9fMTExOSIsIC8qIDExMTkgKi8KKwkiRVJSTk9fMTEyMCIsIC8qIDExMjAgKi8KKwkiRVJSTk9fMTEyMSIsIC8qIDExMjEgKi8KKwkiRVJSTk9fMTEyMiIsIC8qIDExMjIgKi8KKwkiRVJSTk9fMTEyMyIsIC8qIDExMjMgKi8KKwkiRVJSTk9fMTEyNCIsIC8qIDExMjQgKi8KKwkiRVJSTk9fMTEyNSIsIC8qIDExMjUgKi8KKwkiRVJSTk9fMTEyNiIsIC8qIDExMjYgKi8KKwkiRVJSTk9fMTEyNyIsIC8qIDExMjcgKi8KKwkiRVJSTk9fMTEyOCIsIC8qIDExMjggKi8KKwkiRVJSTk9fMTEyOSIsIC8qIDExMjkgKi8KKwkiRVJSTk9fMTEzMCIsIC8qIDExMzAgKi8KKwkiRVJSTk9fMTEzMSIsIC8qIDExMzEgKi8KKwkiRVJSTk9fMTEzMiIsIC8qIDExMzIgKi8KKwkiRURRVU9UIiwgLyogMTEzMyAqLworCSJFTUFYRVJSTk8iLCAvKiAxMTM0ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvbWlwcy9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWQ2YjhhCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuaApAQCAtMCwwICsxLDgzOCBAQAorCXsibGludXgvZnMuaCIsCSJGSUJNQVAiLAkweDF9LAorCXsibGludXgvZnMuaCIsCSJGSUdFVEJTWiIsCTB4Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VUUFJNIiwJMHgyMDR9LAorCXsibGludXgvZmQuaCIsCSJGREdFVE1BWEVSUlMiLAkweDIwZX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWVFlQIiwJMHgyMGZ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlBSTSIsCTB4MjExfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZTVEFUIiwJMHgyMTJ9LAorCXsibGludXgvZmQuaCIsCSJGRFBPTExEUlZTVEFUIiwJMHgyMTN9LAorCXsibGludXgvZmQuaCIsCSJGREdFVEZEQ1NUQVQiLAkweDIxNX0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SR0VUIiwJMHgyMTd9LAorCXsibGludXgvZmQuaCIsCSJGRENMUlBSTSIsCTB4MjQxfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRQUk0iLAkweDI0Mn0sCisJeyJsaW51eC9mZC5oIiwJIkZEREVGUFJNIiwJMHgyNDN9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09OIiwJMHgyNDV9LAorCXsibGludXgvZmQuaCIsCSJGRE1TR09GRiIsCTB4MjQ2fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRCRUciLAkweDI0N30sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UVFJLIiwJMHgyNDh9LAorCXsibGludXgvZmQuaCIsCSJGREZNVEVORCIsCTB4MjQ5fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRTRVRFTVNHVFJFU0giLAkweDI0YX0sCisJeyJsaW51eC9mZC5oIiwJIkZERkxVU0giLAkweDI0Yn0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUTUFYRVJSUyIsCTB4MjRjfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRSRVNFVCIsCTB4MjU0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRXRVJST1JDTFIiLAkweDI1Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZEUkFXQ01EIiwJMHgyNTh9LAorCXsibGludXgvZmQuaCIsCSJGRFRXQURETEUiLAkweDI1OX0sCisJeyJsaW51eC9mZC5oIiwJIkZERUpFQ1QiLAkweDI1YX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURFJWUFJNIiwJMHgyOTB9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRE9TIiwJMHg0ZDJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1VOTElOS19ET1MiLAkweDRkM30sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfUk1ESVJfRE9TIiwJMHg0ZDR9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1NUQVRfRE9TIiwJMHg0ZDV9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0NSRUFUX0VNRCIsCTB4NGQ2fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRU1EIiwJMHg0ZDd9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFQURESVJfRU1EIiwJMHg0ZDh9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0dFVFZFUlNJT04iLAkweDRkOX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfSU5JVF9FTUQiLAkweDRkYX0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfRE9TX1NFVFVQIiwJMHg0ZGJ9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JFTkFNRV9ET1MiLAkweDRkY30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPU0VUIiwJMHgxMjVkfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUk9HRVQiLAkweDEyNWV9LAorCXsibGludXgvZnMuaCIsCSJCTEtSUlBBUlQiLAkweDEyNWZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFIiwJMHgxMjYwfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRkxTQlVGIiwJMHgxMjYxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFTRVQiLAkweDEyNjJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtSQUdFVCIsCTB4MTI2M30sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQVNFVCIsCTB4MTI2NH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZSQUdFVCIsCTB4MTI2NX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NFQ1RTRVQiLAkweDEyNjZ9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUR0VUIiwJMHgxMjY3fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU1NaR0VUIiwJMHgxMjY4fSwKKwl7ImxpbnV4L2Jsa3BnLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZnMuaCIsCSJCTEtQRyIsCTB4MTI2OX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0VMVkdFVCIsCTB4MTI2YX0sCisJeyJsaW51eC9lbGV2YXRvci5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0VMVlNFVCIsCTB4MTI2Yn0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWkdFVCIsCTB4MTI3MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0JTWlNFVCIsCTB4MTI3MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0dFVFNJWkU2NCIsCTB4MTI3Mn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0lORk8iLAkweDQxMDB9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BQ1FVSVJFIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVEFOREJZIiwJMHg0MTAxfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVMRUFTRSIsCTB4NDEwMn0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1VTUEVORCIsCTB4NDEwMn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1NFVFVQIiwJMHg0MTAzfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUkVTRVJWRSIsCTB4NDEwNH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1BST1RFQ1QiLAkweDQxMDV9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19BTExPQ0FURSIsCTB4NDEwNn0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0RFQUxMT0NBVEUiLAkweDQxMDd9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19CSU5EIiwJMHg0MTA4fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfVU5CSU5EIiwJMHg0MTA5fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0xFRVAiLAkweDQyMDB9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRQQ0lJTkZPIiwJMHg0MjAxfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX0JBQ0tMSUdIVCIsCTB4NDIwMX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVElOVElORk8iLAkweDQyMDJ9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TRVRfQkFDS0xJR0hUIiwJMHg0MjAyfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUSU5USU5GTyIsCTB4NDIwM30sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9NT0RFTCIsCTB4NDIwM30sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVE5PREVOQU1FIiwJMHg0MjA0fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfSEFTX0FEQiIsCTB4NDIwNH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVE5PREVOQU1FIiwJMHg0MjA1fSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfQ0FOX1NMRUVQIiwJMHg0MjA1fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSEVBUlRCRUFUIiwJMHg0MjA2fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUQlVTVFlQRVMiLAkweDQyMDd9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRGSVJNVkVSIiwJMHg0MjA4fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURFJJVlZFUiIsCTB4NDIwOX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFVkFMSURWT0xTIiwJMHg0MjBhfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUEFTU1RIUlUiLAkweDQyMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkVTRVQiLAkweDQzMDB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfUkVHSVNURVIiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfTE9BRCIsCTB4NDMwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SREFUQSIsCTB4NDMwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ09ERSIsCTB4NDMwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XREFUQSIsCTB4NDMwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9XQ09ERSIsCTB4NDMwNX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwJMHg0MzA2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JVTiIsCTB4NDMwNn0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfVkVSU0lPTiIsCTB4NDMwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9IQUxUIiwJMHg0MzA3fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9TRVJJQUwiLAkweDQzMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfU0VORE1TRyIsCTB4NDMwOH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfUFJPRklMRSIsCTB4NDMwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SQ1ZNU0ciLAkweDQzMDl9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTUFOVUZBQ1RVUkVSX0NNRCIsCTB4NDMyMH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfRVJSQ09ERSIsCTB4NDMyMX0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9JTlNUQUxMRUQiLAkweDQzMjJ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0ZMQUdTIiwJMHg0MzIzfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1NFVF9GTEFHUyIsCTB4NDMyNH0sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9DTFJfRkxBR1MiLAkweDQzMjV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9PUEVOQ09VTlQiLAkweDQzMjZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfTkNDSV9HRVRVTklUIiwJMHg0MzI3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHVkVSU0lPTiIsCTB4NDUwMX0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0lEIiwJMHg0NTAyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTUkVQIiwJMHg0NTAzfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZQ09ERSIsCTB4NDUwNH0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dLRVkiLAkweDQ1MDV9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dCVVMiLAkweDQ1MDd9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1JNRkYiLAkweDQ1ODF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NHQUlOIiwJMHg0NTgyfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTQVVUT0NFTlRFUiIsCTB4NDU4M30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0VGRkVDVFMiLAkweDQ1ODR9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fV1JJVEVfRklMVEVSIiwJMHg1MDA3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUUyIsCTB4NTQwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RJTUVCQVNFIiwJMHg1NDAxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDU0MDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVEFSVCIsCTB4NTQwMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTVyIsCTB4NTQwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUT1AiLAkweDU0MDN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDU0MDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9DT05USU5VRSIsCTB4NTQwNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg1NDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQSIsCTB4NTQwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBVyIsCTB4NTQwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBRiIsCTB4NTQwOH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLIiwJMHg1NDA5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1hPTkMiLAkweDU0MGF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDRkxTSCIsCTB4NTQwYn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUEdSUCIsCTB4NTQwZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg1NDEwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NTQxMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUSSIsCTB4NTQxMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NTQxM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NTQxNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01HRVQiLAkweDU0MTV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklTIiwJMHg1NDE2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJQyIsCTB4NTQxN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01TRVQiLAkweDU0MTh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU09GVENBUiIsCTB4NTQxOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NTT0ZUQ0FSIiwJMHg1NDFhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NTQxYn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg1NDIxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NTQ1MH0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NTQ1MX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDU0NTJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJDT05GSUciLAkweDU0NTN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHV0lMRCIsCTB4NTQ1NH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUlNXSUxEIiwJMHg1NDU1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0xDS1RSTUlPUyIsCTB4NTQ1Nn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NMQ0tUUk1JT1MiLAkweDU0NTd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJHU1RSVUNUIiwJMHg1NDU4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTFNSIiwJMHg1NDU5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR0VUTVVMVEkiLAkweDU0NWF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTRVRNVUxUSSIsCTB4NTQ1Yn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01JV0FJVCIsCTB4NTQ1Y30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dJQ09VTlQiLAkweDU0NWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSEFZRVNFU1AiLAkweDU0NWV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTSEFZRVNFU1AiLAkweDU0NWZ9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUTk9DU1VNIiwJMHg1NGM4fSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVERFQlVHIiwJMHg1NGM5fSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVElGRiIsCTB4NTRjYX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRQRVJTSVNUIiwJMHg1NGNifSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE9XTkVSIiwJMHg1NGNjfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTlRST0wiLAkweDU1MDB9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUU1VQUE9SVCIsCTB4NTcwMH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNUQVRVUyIsCTB4NTcwMX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVEJPT1RTVEFUVVMiLAkweDU3MDJ9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRURU1QIiwJMHg1NzAzfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfU0VUT1BUSU9OUyIsCTB4NTcwNH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0tFRVBBTElWRSIsCTB4NTcwNX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVFRJTUVPVVQiLAkweDU3MDZ9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRUSU1FT1VUIiwJMHg1NzA3fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAorCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCisJeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKKwl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKKwl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAorCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT04iLAkweDY2MDN9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT04iLAkweDY2MDR9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1dBSVRfRk9SX1JFQURPTkxZIiwJMHg2NjYzfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAorCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKKwl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEVYVEFUVFIiLAkweDcwMWN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfREVMRVhUQVRUUiIsCTB4NzAxZH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAorCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAorCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIk9MRF9QSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKKwl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NBTExJTkZPIiwJMHg3NDgwfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DQlVORExFIiwJMHg3NDgxfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR01QRkxBR1MiLAkweDc0ODJ9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBGTEFHUyIsCTB4NzQ4M30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1UVSIsCTB4NzQ4NH0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUE1SVSIsCTB4NzQ4NX0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDT01QUkVTU09SUyIsCTB4NzQ4Nn0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTU09SIiwJMHg3NDg3fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0lGTkFNRSIsCTB4NzQ4OH0sCisJeyJsaW51eC90b3NoaWJhLmgiLAkiVE9TSF9TTU0iLAkweDc0OTB9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRCIsCTB4NzUwMX0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX05FV0NPTk4iLAkweDc1MDJ9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwJMHg3NTAzfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQlJUIiwJMHg3NjAwfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQlJUIiwJMHg3NjAwfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19HRVRWRVJTSU9OIiwJMHg3NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OX09MRCIsCTB4NzYwMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVAiLAkweDc2MDF9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX1NFVFZFUlNJT04iLAkweDc2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVFZFUlNJT05fT0xEIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMUNBUCIsCTB4NzYwMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDSEFOIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMVJFTSIsCTB4NzYwM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMkNBUCIsCTB4NzYwNH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dUVU5FUiIsCTB4NzYwNH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJSRU0iLAkweDc2MDV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVFVORVIiLAkweDc2MDV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUElDVCIsCTB4NzYwNn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVEZMQUdTIiwJMHg3NjA3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BJQ1QiLAkweDc2MDd9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCTFVFIiwJMHg3NjA4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DQ0FQVFVSRSIsCTB4NzYwOH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JMVUUiLAkweDc2MDl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKKwl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKKwl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAorCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCisJeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCisJeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCisJeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCisJeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCisJeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAorCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAorCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAorCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAorCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAorCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZjAwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9taXBzL2lvY3RsZW50LnNoIGIvc3RyYWNlL2xpbnV4L21pcHMvaW9jdGxlbnQuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc5ZDJjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9taXBzL2lvY3RsZW50LnNoCkBAIC0wLDAgKzEsOTggQEAKKyMhL2Jpbi9zaAorIyBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgQ29weXJpZ2h0IChjKSAxOTk1LCAxOTk2IE1pY2hhZWwgRWxpemFiZXRoIENoYXN0YWluIDxtZWNAZHVyYWNlZi5zaG91dC5uZXQ+CisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyMgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworIyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorIyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisjIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworIwkkSWQ6IGlvY3RsZW50LnNoLHYgMS4xIDE5OTkvMTEvMDEgMDA6NDY6NDkgd2ljaGVydCBFeHAgJAorCisjIEZpbGVzIHRvIGZpbmQuCitmaWxlX2ZpbmQ9J2FzbS8qLmggbGludXgvKi5oIHNjc2kvKi5oJworCisjIEZpbGVzIHRvIHN0b3AuCitmaWxlX3N0b3A9J2FzbS9ieXRlb3JkZXIuaCBsaW51eC9jb25maWcuaCBsaW51eC9wY2kuaCBsaW51eC94ZC5oJworCisjIERlZnMgdG8gZmluZC4KKyMgV29yayBvbiB0aGUga2VybmVsIHNvdXJjZSB0byBjb252ZXJ0IGFsbCB0byBkZl9pb3dyLgorIyBEb24ndCBrbm93IGhvdyB0byBmaW5kIGxvdy1udW1iZXJlZCBpb2N0bHMgaW4gbGludXgvbWMxNDY4MThydGMuaC4KK2RmX25hbWU9J15bCSBdKiNbCSBdKmRlZmluZVsJIF0rW0EtWl9dW0EtWjAtOV9dKlsJIF0rJworZGZfaW93cj0nX0lPfF9JT1J8X0lPV3xfSU9XUicKK2RmX05OTk49JzBbWHhdKDAzfDA2fDIyfDQ2fDRCfDRDfDUzfDU0fDU2fDg5fDkwKVswLTlBLUZhLWZdWzAtOUEtRmEtZl0nCitkZl80MzU5PScwW1h4XTQzNTlbMC05QS1GYS1mXVswLTlBLUZhLWZdJwkjIGxpbnV4L2N5Y2xhZGVzLmgKK2RmXzQ3ME49JzQ3MFswLTldJwkJCQkjIGxpbnV4L2ZzLmggICAgICAgIChvbmx5IGluIDEuMi4xMykKK2RmX3NtaXg9J01JWEVSX1JFQUR8TUlYRVJfV1JJVEUnCQkjIGxpbnV4L3NvdW5kY2FyZC5oCitkZl8xMk5OPScxMlszLTRdWzAtOV0nCQkJCSMgbGludXgvdW1zZG9zX2ZzLmggKG9ubHkgaW4gMS4yLjEzKQorZGZfdGFpbD0nKFsoKQkgXXwkKScKK2RlZl9maW5kPSIkZGZfbmFtZSgkZGZfaW93cnwkZGZfTk5OTnwkZGZfNDM1OXwkZGZfNDcwTnwkZGZfc21peHwkZGZfMTJOTikkZGZfdGFpbCIKKworIyBEZWZzIHRvIHN0b3AuCitkc190YWlsPSdfTUFHSUN8X1BBVENIJworZHNfZmRtcD0nRkQoREVGfEdFVHxTRVQpTUVESUFQUk0nCQkjIGxpbnV4L2ZkLmggYWxpYXNlcyAob25seSBpbiAxLjIuMTMpCitkc19tdGlvPSdNVElPQyhHRVR8U0VUKUNPTkZJRycJCQkjIGxpbnV4L210aW8uaCBuZWVkcyBjb25maWcgKG9ubHkgaW4gMS4yLjEzKQorZGVmX3N0b3A9IiRkc190YWlsfCRkc19mZG1wfCRkc19tdGlvIgorCisjIFZhbGlkYXRlIGFyZyBjb3VudC4KK2lmIFsgJCMgLW5lIDEgXQordGhlbgorCWVjaG8gInVzYWdlOiAkMCBpbmNsdWRlLWRpcmVjdG9yeSIgPiYyCisJZXhpdCAxCitmaQorCisjIEdyZXAgdGhyb3VnaCB0aGUgZmlsZXMuCisoCisJIyBDb25zdHJ1Y3QgbGlzdDogZmluZCBmaWxlcyBtaW51cyBzdG9wIGZpbGVzLgorCWNkICQxIHx8IGV4aXQKKwlmaWxlX2xpc3Q9YChscyAkZmlsZV9maW5kICRmaWxlX3N0b3AgJGZpbGVfc3RvcCAyPi9kZXYvbnVsbCkgfCBzb3J0IHwgdW5pcSAtdWAKKworCSMgR3JlcCBtYXRjaGluZyAjZGVmaW5lIGxpbmVzLgorCSMgVHJhbnNmb3JtIHRvIEMgc3RydWN0dXJlIGZvcm0uCisJIyBGaWx0ZXIgb3V0IHN0b3AgbGlzdC4KKwllZ3JlcCAiJGRlZl9maW5kIiAkZmlsZV9saXN0IHwKKwkJc2VkIC1uIC1lICdzL15cKC4qXCk6I1sJIF0qZGVmaW5lWwkgXSpcKFtBLVpfXVtBLVowLTlfXSpcKS4qJC8JeyAiXDEiLAkiXDIiLAlcMgl9LC9wJyB8CisJCWVncmVwIC12ICIkZGVmX3N0b3AiCispID4gaW9jdGxlbnQudG1wCisKKyMgR2VuZXJhdGUgdGhlIG91dHB1dCBmaWxlLgorZWNobyAnLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGlvY3RsZW50LnNoICovJworZWNobworZWNobyAnI2luY2x1ZGUgPHN5cy90eXBlcy5oPicKK2VjaG8KK2VjaG8gJy8qIE5lZWRlZCBmb3IgPGxpbnV4L2JheWNvbS5oPiAqLycKK2VjaG8gJyNkZWZpbmUgQkFZQ09NX0RFQlVHJworZWNobworZWNobyAnLyogTmVlZGVkIGZvciA8bGludXgvY3ljbGFkZXMuaD4gKi8nCitlY2hvICcjaW5jbHVkZSA8bGludXgvdGVybWlvcy5oPicKK2VjaG8gJyNpbmNsdWRlIDxsaW51eC90cXVldWUuaD4nCitlY2hvCithd2sgJ3sgcHJpbnQgIiNpbmNsdWRlIDwiIHN1YnN0cigkMiwgMiwgbGVuZ3RoKCQyKSAtIDMpICI+IiB9JyBpb2N0bGVudC50bXAgfCBzb3J0IC11CitlY2hvCitlY2hvICdzdHJ1Y3QgaW9jdGxlbnQgaW9jdGxlbnQgW10gPScKK2VjaG8gJ3snCitjYXQgaW9jdGxlbnQudG1wCitlY2hvICd9OycKKworIyBDbGVhbiB1cC4KK3JtIC1mIGlvY3RsZW50LnRtcApkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L21pcHMvc2lnbmFsZW50LmggYi9zdHJhY2UvbGludXgvbWlwcy9zaWduYWxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2Y3NDZhCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L21pcHMvc2lnbmFsZW50LmgKQEAgLTAsMCArMSwzMiBAQAorCSJTSUdfMCIsCS8qIDAgKi8KKwkiU0lHSFVQIiwJLyogMSAqLworCSJTSUdJTlQiLAkvKiAyICovCisJIlNJR1FVSVQiLAkvKiAzICovCisJIlNJR0lMTCIsCS8qIDQgKi8KKwkiU0lHVFJBUCIsCS8qIDUgKi8KKwkiU0lHSU9UIiwJLyogNiAqLworCSJTSUdFTVQiLAkvKiA3ICovCisJIlNJR0ZQRSIsCS8qIDggKi8KKwkiU0lHS0lMTCIsCS8qIDkgKi8KKwkiU0lHQlVTIiwJLyogMTAgKi8KKwkiU0lHU0VHViIsCS8qIDExICovCisJIlNJR1NZUyIsCS8qIDEyICovCisJIlNJR1BJUEUiLAkvKiAxMyAqLworCSJTSUdBTFJNIiwJLyogMTQgKi8KKwkiU0lHVEVSTSIsCS8qIDE1ICovCisJIlNJR1VTUjEiLAkvKiAxNiAqLworCSJTSUdVU1IyIiwJLyogMTcgKi8KKwkiU0lHQ0hMRCIsCS8qIDE4ICovCisJIlNJR1BXUiIsCS8qIDE5ICovCisJIlNJR1dJTkNIIiwJLyogMjAgKi8KKwkiU0lHVVJHIiwJLyogMjEgKi8KKwkiU0lHSU8iLAkvKiAyMiAqLworCSJTSUdTVE9QIiwJLyogMjMgKi8KKwkiU0lHVFNUUCIsCS8qIDI0ICovCisJIlNJR0NPTlQiLAkvKiAyNSAqLworCSJTSUdUVElOIiwJLyogMjYgKi8KKwkiU0lHVFRPVSIsCS8qIDI3ICovCisJIlNJR1ZUQUxSTSIsCS8qIDI4ICovCisJIlNJR1BST0YiLAkvKiAyOSAqLworCSJTSUdYQ1BVIiwJLyogMzAgKi8KKwkiU0lHWEZTWiIsCS8qIDMxICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvbWlwcy9zeXNjYWxsZW50LmggYi9zdHJhY2UvbGludXgvbWlwcy9zeXNjYWxsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzExNWM1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9taXBzL3N5c2NhbGxlbnQuaApAQCAtMCwwICsxLDUwMDAgQEAKKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5c2NhbGwiCX0sIC8qICAwMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2V4aXQiCX0sIC8qICAwMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2ZvcmsiCX0sIC8qICAwMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3JlYWQiCX0sIC8qICAwMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3dyaXRlIgl9LCAvKiAgMDA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9vcGVuIgl9LCAvKiAgMDA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9jbG9zZSIJfSwgLyogIDAwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfd2FpdCIJfSwgLyogIDAwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfY3JlYXQiCX0sIC8qICAwMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2xpbmsiCX0sIC8qICAwMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3VubGluayIJfSwgLyogIDAxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZXhlYyIJfSwgLyogIDAxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfY2hkaXIiCX0sIC8qICAwMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2d0aW1lIgl9LCAvKiAgMDEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9ta25vZCIJfSwgLyogIDAxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfY2htb2QiCX0sIC8qICAwMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2Nob3duIgl9LCAvKiAgMDE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zYnJlYWsiCX0sIC8qICAwMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N0YXQiCX0sIC8qICAwMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2xzZWVrIgl9LCAvKiAgMDE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9nZXRwaWQiCX0sIC8qICAwMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X21vdW50Igl9LCAvKiAgMDIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF91bW91bnQiCX0sIC8qICAwMjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NldHVpZCIJfSwgLyogIDAyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZ2V0dWlkIgl9LCAvKiAgMDI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zdGltZSIJfSwgLyogIDAyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcHRyYWNlIgl9LCAvKiAgMDI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9hbGFybSIJfSwgLyogIDAyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZnN0YXQiCX0sIC8qICAwMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3BhdXNlIgl9LCAvKiAgMDI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF91dGltZSIJfSwgLyogIDAzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc3R0eSIJfSwgLyogIDAzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZ3R0eSIJfSwgLyogIDAzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYWNjZXNzIgl9LCAvKiAgMDMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9uaWNlIgl9LCAvKiAgMDM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zdGF0ZnMiCX0sIC8qICAwMzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5bmMiCX0sIC8qICAwMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2tpbGwiCX0sIC8qICAwMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2ZzdGF0ZnMiCX0sIC8qICAwMzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NldHBncnAiCX0sIC8qICAwMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2N4ZW5peCIJfSwgLyogIDA0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZHVwIgl9LCAvKiAgMDQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9waXBlIgl9LCAvKiAgMDQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF90aW1lcyIJfSwgLyogIDA0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcHJvZmlsIgl9LCAvKiAgMDQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9wbG9jayIJfSwgLyogIDA0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0Z2lkIgl9LCAvKiAgMDQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9nZXRnaWQiCX0sIC8qICAwNDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NpZyIJfSwgLyogIDA0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbXNnc3lzIgl9LCAvKiAgMDQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zeXNtaXBzIgl9LCAvKiAgMDUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zeXNhY2N0Igl9LCAvKiAgMDUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zaG1zeXMiCX0sIC8qICAwNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NlbXN5cyIJfSwgLyogIDA1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfaW9jdGwiCX0sIC8qICAwNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3VhZG1pbiIJfSwgLyogIDA1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZXhjaCIJfSwgLyogIDA1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfdXRzc3lzIgl9LCAvKiAgMDU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9mc3luYyIJfSwgLyogIDA1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZXhlY2UiCX0sIC8qICAwNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3VtYXNrIgl9LCAvKiAgMDYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9jaHJvb3QiCX0sIC8qICAwNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2ZjbnRsIgl9LCAvKiAgMDYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF91bGltaXQiCX0sIC8qICAwNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQiLAl9LCAvKiAgMDY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1IiwJfSwgLyogIDA2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NiIsCX0sIC8qICAwNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjciLAl9LCAvKiAgMDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4IiwJfSwgLyogIDA2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OSIsCX0sIC8qICAwNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2FkdmZzIgl9LCAvKiAgMDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF91bmFkdmZzIgl9LCAvKiAgMDcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyIiwJfSwgLyogIDA3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MyIsCX0sIC8qICAwNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3Jmc3RhcnQiCX0sIC8qICAwNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzUiLAl9LCAvKiAgMDc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9yZGVidWciCX0sIC8qICAwNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3Jmc3RvcCIJfSwgLyogIDA3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcmZzeXMiCX0sIC8qICAwNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3JtZGlyIgl9LCAvKiAgMDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9ta2RpciIJfSwgLyogIDA4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZ2V0ZGVudHMiCX0sIC8qICAwODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2xpYmF0dGFjaCIJfSwgLyogIDA4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbGliZGV0YWNoIgl9LCAvKiAgMDgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zeXNmcyIJfSwgLyogIDA4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZ2V0bXNnIgl9LCAvKiAgMDg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9wdXRtc2ciCX0sIC8qICAwODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3BvbGwiCX0sIC8qICAwODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2xzdGF0Igl9LCAvKiAgMDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zeW1saW5rIgl9LCAvKiAgMDg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9yZWFkbGluayIJfSwgLyogIDA5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0Z3JvdXBzIgl9LCAvKiAgMDkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9nZXRncm91cHMiCX0sIC8qICAwOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2ZjaG1vZCIJfSwgLyogIDA5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZmNob3duIgl9LCAvKiAgMDk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zaWdwcm9jbWFzayIJfSwgLyogIDA5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2lnc3VzcGVuZCIJfSwgLyogIDA5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2lnYWx0c3RhY2siCX0sIC8qICAwOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NpZ2FjdGlvbiIJfSwgLyogIDA5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2lncGVuZGluZyIJfSwgLyogIDA5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0Y29udGV4dCIJfSwgLyogIDAxMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2V2c3lzIgl9LCAvKiAgMDEwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZXZ0cmFwcmV0Igl9LCAvKiAgMDEwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc3RhdHZmcyIJfSwgLyogIDAxMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2ZzdGF0dmZzIgl9LCAvKiAgMDEwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDUiLAl9LCAvKiAxMDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X25mc3N5cyIJfSwgLyogIDAxMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3dhaXRpZCIJfSwgLyogIDAxMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NpZ3NlbmRzZXQiCX0sIC8qICAwMTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9ocnRzeXMiCX0sIC8qICAwMTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9hY2FuY2VsIgl9LCAvKiAgMDExMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYXN5bmMiCX0sIC8qICAwMTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9wcmlvY250bHNldCIJfSwgLyogIDAxMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3BhdGhjb25mIgl9LCAvKiAgMDExMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfbWluY29yZSIJfSwgLyogIDAxMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X21tYXAiCX0sIC8qICAwMTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9tcHJvdGVjdCIJfSwgLyogIDAxMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X211bm1hcCIJfSwgLyogIDAxMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2ZwYXRoY29uZiIJfSwgLyogIDAxMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3Zmb3JrIgl9LCAvKiAgMDExOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfZmNoZGlyIgl9LCAvKiAgMDEyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcmVhZHYiCX0sIC8qICAwMTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF93cml0ZXYiCX0sIC8qICAwMTIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF94c3RhdCIJfSwgLyogIDAxMjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2x4c3RhdCIJfSwgLyogIDAxMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2Z4c3RhdCIJfSwgLyogIDAxMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3hta25vZCIJfSwgLyogIDAxMjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2Nsb2NhbCIJfSwgLyogIDAxMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NldHJsaW1pdCIJfSwgLyogIDAxMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2dldHJsaW1pdCIJfSwgLyogIDAxMjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2xjaG93biIJfSwgLyogIDAxMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X21lbWNudGwiCX0sIC8qICAwMTMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9nZXRwbXNnIgl9LCAvKiAgMDEzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfcHV0cG1zZyIJfSwgLyogIDAxMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3JlbmFtZSIJfSwgLyogIDAxMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X251bmFtZSIJfSwgLyogIDAxMzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3NldGVnaWQiCX0sIC8qICAwMTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9zeXNjb25mIgl9LCAvKiAgMDEzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfYWRqdGltZSIJfSwgLyogIDAxMzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X3N5c2luZm8iCX0sIC8qICAwMTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MCIsCX0sIC8qIDE0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfc2V0ZXVpZCIJfSwgLyogIDAxNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X1BZUkFNSURfc3RhdGlzIgl9LCAvKiAgMDE0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN2cjRfUFlSQU1JRF90dW5pbmciCX0sIC8qICAwMTQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9QWVJBTUlEX2ZvcmNlcnIiCX0sIC8qICAwMTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9QWVJBTUlEX21wY250bCIJfSwgLyogIDAxNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ2IiwJfSwgLyogMTQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NyIsCX0sIC8qIDE0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDgiLAl9LCAvKiAxNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5IiwJfSwgLyogMTQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MCIsCX0sIC8qIDE1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTEiLAl9LCAvKiAxNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUyIiwJfSwgLyogMTUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MyIsCX0sIC8qIDE1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQiLAl9LCAvKiAxNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU1IiwJfSwgLyogMTU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NiIsCX0sIC8qIDE1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTciLAl9LCAvKiAxNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU4IiwJfSwgLyogMTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OSIsCX0sIC8qIDE1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjAiLAl9LCAvKiAxNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYxIiwJfSwgLyogMTYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MiIsCX0sIC8qIDE2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjMiLAl9LCAvKiAxNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY0IiwJfSwgLyogMTY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NSIsCX0sIC8qIDE2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjYiLAl9LCAvKiAxNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY3IiwJfSwgLyogMTY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OCIsCX0sIC8qIDE2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjkiLAl9LCAvKiAxNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcwIiwJfSwgLyogMTcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MSIsCX0sIC8qIDE3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzIiLAl9LCAvKiAxNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTczIiwJfSwgLyogMTczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NCIsCX0sIC8qIDE3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzUiLAl9LCAvKiAxNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc2IiwJfSwgLyogMTc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NyIsCX0sIC8qIDE3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzgiLAl9LCAvKiAxNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc5IiwJfSwgLyogMTc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MCIsCX0sIC8qIDE4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODEiLAl9LCAvKiAxODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgyIiwJfSwgLyogMTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MyIsCX0sIC8qIDE4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQiLAl9LCAvKiAxODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg1IiwJfSwgLyogMTg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NiIsCX0sIC8qIDE4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODciLAl9LCAvKiAxODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg4IiwJfSwgLyogMTg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OSIsCX0sIC8qIDE4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTAiLAl9LCAvKiAxOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkxIiwJfSwgLyogMTkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MiIsCX0sIC8qIDE5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTMiLAl9LCAvKiAxOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk0IiwJfSwgLyogMTk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NSIsCX0sIC8qIDE5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTYiLAl9LCAvKiAxOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk3IiwJfSwgLyogMTk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OCIsCX0sIC8qIDE5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTkiLAl9LCAvKiAxOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjAwIiwJfSwgLyogMjAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9hcmVhZCIJfSwgLyogIDAyMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2F3cml0ZSIJfSwgLyogIDAyMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2xpc3RpbyIJfSwgLyogIDAyMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X21pcHNfYWNhbmNlbCIJfSwgLyogIDAyMDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2FzdGF0dXMiCX0sIC8qICAwMjA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3ZyNF9hd2FpdCIJfSwgLyogIDAyMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2FyZWFkdiIJfSwgLyogIDAyMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzdnI0X2F3cml0ZXYiCX0sIC8qICAwMjA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIwOSIsCX0sIC8qIDIwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTAiLAl9LCAvKiAyMTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjExIiwJfSwgLyogMjExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxMiIsCX0sIC8qIDIxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTMiLAl9LCAvKiAyMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE0IiwJfSwgLyogMjE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNSIsCX0sIC8qIDIxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTYiLAl9LCAvKiAyMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE3IiwJfSwgLyogMjE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOCIsCX0sIC8qIDIxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTkiLAl9LCAvKiAyMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIwIiwJfSwgLyogMjIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMSIsCX0sIC8qIDIyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIiLAl9LCAvKiAyMjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIzIiwJfSwgLyogMjIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNCIsCX0sIC8qIDIyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjUiLAl9LCAvKiAyMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI2IiwJfSwgLyogMjI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNyIsCX0sIC8qIDIyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjgiLAl9LCAvKiAyMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI5IiwJfSwgLyogMjI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMCIsCX0sIC8qIDIzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzEiLAl9LCAvKiAyMzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMyIiwJfSwgLyogMjMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMyIsCX0sIC8qIDIzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQiLAl9LCAvKiAyMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM1IiwJfSwgLyogMjM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNiIsCX0sIC8qIDIzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzciLAl9LCAvKiAyMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM4IiwJfSwgLyogMjM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOSIsCX0sIC8qIDIzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDAiLAl9LCAvKiAyNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQxIgl9LCAvKiAgMjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MiIJfSwgLyogIDI0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDMiCX0sIC8qICAyNDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0Igl9LCAvKiAgMjQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NSIJfSwgLyogIDI0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDYiCX0sIC8qICAyNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3Igl9LCAvKiAgMjQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OCIJfSwgLyogIDI0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkiCX0sIC8qICAyNDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUwIgl9LCAvKiAgMjUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogIDI1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIiCX0sIC8qICAyNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUzIgl9LCAvKiAgMjUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NCIJfSwgLyogIDI1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTUiCX0sIC8qICAyNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU2Igl9LCAvKiAgMjU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NyIJfSwgLyogIDI1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgiCX0sIC8qICAyNTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU5Igl9LCAvKiAgMjU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MCIJfSwgLyogIDI2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjEiCX0sIC8qICAyNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYyIgl9LCAvKiAgMjYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MyIJfSwgLyogIDI2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQiCX0sIC8qICAyNjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY1Igl9LCAvKiAgMjY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NiIJfSwgLyogIDI2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjciCX0sIC8qICAyNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY4Igl9LCAvKiAgMjY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OSIJfSwgLyogIDI2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAiCX0sIC8qICAyNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcxIgl9LCAvKiAgMjcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MiIJfSwgLyogIDI3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMiCX0sIC8qICAyNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc0Igl9LCAvKiAgMjc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NSIJfSwgLyogIDI3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYiCX0sIC8qICAyNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAgMjc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OCIJfSwgLyogIDI3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkiCX0sIC8qICAyNzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgl9LCAvKiAgMjgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MSIJfSwgLyogIDI4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIiCX0sIC8qICAyODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgl9LCAvKiAgMjgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NCIJfSwgLyogIDI4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCX0sIC8qICAyODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAgMjg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJfSwgLyogIDI4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgiCX0sIC8qICAyODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAgMjg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJfSwgLyogIDI5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEiCX0sIC8qICAyOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAgMjkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogIDI5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQiCX0sIC8qICAyOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAgMjk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJfSwgLyogIDI5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTciCX0sIC8qICAyOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAgMjk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogIDI5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDAiCX0sIC8qICAzMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzAxIgl9LCAvKiAgMzAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwMiIJfSwgLyogIDMwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDMiCX0sIC8qICAzMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA0Igl9LCAvKiAgMzA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNSIJfSwgLyogIDMwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDYiCX0sIC8qICAzMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA3Igl9LCAvKiAgMzA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwOCIJfSwgLyogIDMwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDkiCX0sIC8qICAzMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzEwIgl9LCAvKiAgMzEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxMSIJfSwgLyogIDMxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTIiCX0sIC8qICAzMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzEzIgl9LCAvKiAgMzEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNCIJfSwgLyogIDMxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTUiCX0sIC8qICAzMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE2Igl9LCAvKiAgMzE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNyIJfSwgLyogIDMxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgiCX0sIC8qICAzMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE5Igl9LCAvKiAgMzE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMCIJfSwgLyogIDMyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjEiCX0sIC8qICAzMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzIyIgl9LCAvKiAgMzIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMyIJfSwgLyogIDMyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQiCX0sIC8qICAzMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI1Igl9LCAvKiAgMzI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNiIJfSwgLyogIDMyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjciCX0sIC8qICAzMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4Igl9LCAvKiAgMzI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyOSIJfSwgLyogIDMyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzAiCX0sIC8qICAzMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxIgl9LCAvKiAgMzMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMiIJfSwgLyogIDMzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzMiCX0sIC8qICAzMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0Igl9LCAvKiAgMzM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNSIJfSwgLyogIDMzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzYiCX0sIC8qICAzMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3Igl9LCAvKiAgMzM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOCIJfSwgLyogIDMzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzkiCX0sIC8qICAzMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwIgl9LCAvKiAgMzQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MSIJfSwgLyogIDM0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDIiCX0sIC8qICAzNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzIgl9LCAvKiAgMzQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NCIJfSwgLyogIDM0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUiCX0sIC8qICAzNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2Igl9LCAvKiAgMzQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NyIJfSwgLyogIDM0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgiCX0sIC8qICAzNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5Igl9LCAvKiAgMzQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MCIJfSwgLyogIDM1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTEiCX0sIC8qICAzNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyIgl9LCAvKiAgMzUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MyIJfSwgLyogIDM1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQiCX0sIC8qICAzNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1Igl9LCAvKiAgMzU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NiIJfSwgLyogIDM1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTciCX0sIC8qICAzNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4Igl9LCAvKiAgMzU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OSIJfSwgLyogIDM1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjAiCX0sIC8qICAzNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxIgl9LCAvKiAgMzYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MiIJfSwgLyogIDM2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjMiCX0sIC8qICAzNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0Igl9LCAvKiAgMzY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NSIJfSwgLyogIDM2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYiCX0sIC8qICAzNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3Igl9LCAvKiAgMzY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OCIJfSwgLyogIDM2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkiCX0sIC8qICAzNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwIgl9LCAvKiAgMzcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MSIJfSwgLyogIDM3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIiCX0sIC8qICAzNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczIgl9LCAvKiAgMzczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NCIJfSwgLyogIDM3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUiCX0sIC8qICAzNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2Igl9LCAvKiAgMzc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NyIJfSwgLyogIDM3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgiCX0sIC8qICAzNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5Igl9LCAvKiAgMzc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MCIJfSwgLyogIDM4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEiCX0sIC8qICAzODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyIgl9LCAvKiAgMzgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MyIJfSwgLyogIDM4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQiCX0sIC8qICAzODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1Igl9LCAvKiAgMzg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NiIJfSwgLyogIDM4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODciCX0sIC8qICAzODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4Igl9LCAvKiAgMzg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OSIJfSwgLyogIDM4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAiCX0sIC8qICAzOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxIgl9LCAvKiAgMzkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MiIJfSwgLyogIDM5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMiCX0sIC8qICAzOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0Igl9LCAvKiAgMzk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NSIJfSwgLyogIDM5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYiCX0sIC8qICAzOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3Igl9LCAvKiAgMzk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OCIJfSwgLyogIDM5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkiCX0sIC8qICAzOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDAwIgl9LCAvKiAgNDAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQwMSIJfSwgLyogIDQwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDIiCX0sIC8qICA0MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDAzIgl9LCAvKiAgNDAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQwNCIJfSwgLyogIDQwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDUiCX0sIC8qICA0MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDA2Igl9LCAvKiAgNDA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQwNyIJfSwgLyogIDQwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MDgiCX0sIC8qICA0MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDA5Igl9LCAvKiAgNDA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQxMCIJfSwgLyogIDQxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTEiCX0sIC8qICA0MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDEyIgl9LCAvKiAgNDEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQxMyIJfSwgLyogIDQxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTQiCX0sIC8qICA0MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDE1Igl9LCAvKiAgNDE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQxNiIJfSwgLyogIDQxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MTciCX0sIC8qICA0MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDE4Igl9LCAvKiAgNDE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQxOSIJfSwgLyogIDQxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjAiCX0sIC8qICA0MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDIxIgl9LCAvKiAgNDIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMiIJfSwgLyogIDQyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjMiCX0sIC8qICA0MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI0Igl9LCAvKiAgNDI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyNSIJfSwgLyogIDQyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjYiCX0sIC8qICA0MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI3Igl9LCAvKiAgNDI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyOCIJfSwgLyogIDQyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjkiCX0sIC8qICA0MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwIgl9LCAvKiAgNDMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMSIJfSwgLyogIDQzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzIiCX0sIC8qICA0MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzIgl9LCAvKiAgNDMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNCIJfSwgLyogIDQzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzUiCX0sIC8qICA0MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2Igl9LCAvKiAgNDM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNyIJfSwgLyogIDQzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzgiCX0sIC8qICA0MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5Igl9LCAvKiAgNDM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MCIJfSwgLyogIDQ0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDEiCX0sIC8qICA0NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyIgl9LCAvKiAgNDQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MyIJfSwgLyogIDQ0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQiCX0sIC8qICA0NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1Igl9LCAvKiAgNDQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NiIJfSwgLyogIDQ0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDciCX0sIC8qICA0NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4Igl9LCAvKiAgNDQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OSIJfSwgLyogIDQ0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTAiCX0sIC8qICA0NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxIgl9LCAvKiAgNDUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MiIJfSwgLyogIDQ1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTMiCX0sIC8qICA0NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0Igl9LCAvKiAgNDU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NSIJfSwgLyogIDQ1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTYiCX0sIC8qICA0NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3Igl9LCAvKiAgNDU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OCIJfSwgLyogIDQ1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTkiCX0sIC8qICA0NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwIgl9LCAvKiAgNDYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MSIJfSwgLyogIDQ2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjIiCX0sIC8qICA0NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzIgl9LCAvKiAgNDYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NCIJfSwgLyogIDQ2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjUiCX0sIC8qICA0NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2Igl9LCAvKiAgNDY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NyIJfSwgLyogIDQ2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjgiCX0sIC8qICA0NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5Igl9LCAvKiAgNDY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MCIJfSwgLyogIDQ3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzEiCX0sIC8qICA0NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyIgl9LCAvKiAgNDcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MyIJfSwgLyogIDQ3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQiCX0sIC8qICA0NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1Igl9LCAvKiAgNDc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NiIJfSwgLyogIDQ3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzciCX0sIC8qICA0NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4Igl9LCAvKiAgNDc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OSIJfSwgLyogIDQ3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODAiCX0sIC8qICA0ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxIgl9LCAvKiAgNDgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MiIJfSwgLyogIDQ4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODMiCX0sIC8qICA0ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0Igl9LCAvKiAgNDg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NSIJfSwgLyogIDQ4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODYiCX0sIC8qICA0ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3Igl9LCAvKiAgNDg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OCIJfSwgLyogIDQ4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODkiCX0sIC8qICA0ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwIgl9LCAvKiAgNDkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MSIJfSwgLyogIDQ5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTIiCX0sIC8qICA0OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzIgl9LCAvKiAgNDkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NCIJfSwgLyogIDQ5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTUiCX0sIC8qICA0OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2Igl9LCAvKiAgNDk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NyIJfSwgLyogIDQ5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTgiCX0sIC8qICA0OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5Igl9LCAvKiAgNDk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwMCIJfSwgLyogIDUwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDEiCX0sIC8qICA1MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTAyIgl9LCAvKiAgNTAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwMyIJfSwgLyogIDUwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDQiCX0sIC8qICA1MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTA1Igl9LCAvKiAgNTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwNiIJfSwgLyogIDUwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MDciCX0sIC8qICA1MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTA4Igl9LCAvKiAgNTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUwOSIJfSwgLyogIDUwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTAiCX0sIC8qICA1MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTExIgl9LCAvKiAgNTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxMiIJfSwgLyogIDUxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTMiCX0sIC8qICA1MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTE0Igl9LCAvKiAgNTE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxNSIJfSwgLyogIDUxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTYiCX0sIC8qICA1MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTE3Igl9LCAvKiAgNTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUxOCIJfSwgLyogIDUxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MTkiCX0sIC8qICA1MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTIwIgl9LCAvKiAgNTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyMSIJfSwgLyogIDUyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjIiCX0sIC8qICA1MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTIzIgl9LCAvKiAgNTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNCIJfSwgLyogIDUyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjUiCX0sIC8qICA1MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTI2Igl9LCAvKiAgNTI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUyNyIJfSwgLyogIDUyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MjgiCX0sIC8qICA1MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTI5Igl9LCAvKiAgNTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMCIJfSwgLyogIDUzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzEiCX0sIC8qICA1MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTMyIgl9LCAvKiAgNTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzMyIJfSwgLyogIDUzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzQiCX0sIC8qICA1MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM1Igl9LCAvKiAgNTM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzNiIJfSwgLyogIDUzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181MzciCX0sIC8qICA1MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTM4Igl9LCAvKiAgNTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzUzOSIJfSwgLyogIDUzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDAiCX0sIC8qICA1NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQxIgl9LCAvKiAgNTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0MiIJfSwgLyogIDU0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDMiCX0sIC8qICA1NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ0Igl9LCAvKiAgNTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0NSIJfSwgLyogIDU0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDYiCX0sIC8qICA1NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTQ3Igl9LCAvKiAgNTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU0OCIJfSwgLyogIDU0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NDkiCX0sIC8qICA1NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUwIgl9LCAvKiAgNTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1MSIJfSwgLyogIDU1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTIiCX0sIC8qICA1NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTUzIgl9LCAvKiAgNTUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NCIJfSwgLyogIDU1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTUiCX0sIC8qICA1NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU2Igl9LCAvKiAgNTU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU1NyIJfSwgLyogIDU1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NTgiCX0sIC8qICA1NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTU5Igl9LCAvKiAgNTU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MCIJfSwgLyogIDU2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjEiCX0sIC8qICA1NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTYyIgl9LCAvKiAgNTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2MyIJfSwgLyogIDU2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjQiCX0sIC8qICA1NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY1Igl9LCAvKiAgNTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2NiIJfSwgLyogIDU2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NjciCX0sIC8qICA1NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTY4Igl9LCAvKiAgNTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU2OSIJfSwgLyogIDU2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzAiCX0sIC8qICA1NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTcxIgl9LCAvKiAgNTcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3MiIJfSwgLyogIDU3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzMiCX0sIC8qICA1NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc0Igl9LCAvKiAgNTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3NSIJfSwgLyogIDU3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzYiCX0sIC8qICA1NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTc3Igl9LCAvKiAgNTc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU3OCIJfSwgLyogIDU3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181NzkiCX0sIC8qICA1NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgwIgl9LCAvKiAgNTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4MSIJfSwgLyogIDU4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODIiCX0sIC8qICA1ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTgzIgl9LCAvKiAgNTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NCIJfSwgLyogIDU4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODUiCX0sIC8qICA1ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg2Igl9LCAvKiAgNTg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU4NyIJfSwgLyogIDU4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181ODgiCX0sIC8qICA1ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTg5Igl9LCAvKiAgNTg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MCIJfSwgLyogIDU5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTEiCX0sIC8qICA1OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTkyIgl9LCAvKiAgNTkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5MyIJfSwgLyogIDU5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTQiCX0sIC8qICA1OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk1Igl9LCAvKiAgNTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5NiIJfSwgLyogIDU5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU181OTciCX0sIC8qICA1OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNTk4Igl9LCAvKiAgNTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzU5OSIJfSwgLyogIDU5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDAiCX0sIC8qICA2MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjAxIgl9LCAvKiAgNjAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwMiIJfSwgLyogIDYwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDMiCX0sIC8qICA2MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjA0Igl9LCAvKiAgNjA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwNSIJfSwgLyogIDYwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDYiCX0sIC8qICA2MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjA3Igl9LCAvKiAgNjA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYwOCIJfSwgLyogIDYwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MDkiCX0sIC8qICA2MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjEwIgl9LCAvKiAgNjEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxMSIJfSwgLyogIDYxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTIiCX0sIC8qICA2MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjEzIgl9LCAvKiAgNjEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxNCIJfSwgLyogIDYxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTUiCX0sIC8qICA2MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjE2Igl9LCAvKiAgNjE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYxNyIJfSwgLyogIDYxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MTgiCX0sIC8qICA2MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjE5Igl9LCAvKiAgNjE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMCIJfSwgLyogIDYyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjEiCX0sIC8qICA2MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjIyIgl9LCAvKiAgNjIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyMyIJfSwgLyogIDYyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjQiCX0sIC8qICA2MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjI1Igl9LCAvKiAgNjI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyNiIJfSwgLyogIDYyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MjciCX0sIC8qICA2MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjI4Igl9LCAvKiAgNjI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYyOSIJfSwgLyogIDYyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzAiCX0sIC8qICA2MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjMxIgl9LCAvKiAgNjMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzMiIJfSwgLyogIDYzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzMiCX0sIC8qICA2MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM0Igl9LCAvKiAgNjM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzNSIJfSwgLyogIDYzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzYiCX0sIC8qICA2MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjM3Igl9LCAvKiAgNjM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzYzOCIJfSwgLyogIDYzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182MzkiCX0sIC8qICA2MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQwIgl9LCAvKiAgNjQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0MSIJfSwgLyogIDY0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDIiCX0sIC8qICA2NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQzIgl9LCAvKiAgNjQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NCIJfSwgLyogIDY0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDUiCX0sIC8qICA2NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ2Igl9LCAvKiAgNjQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY0NyIJfSwgLyogIDY0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NDgiCX0sIC8qICA2NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjQ5Igl9LCAvKiAgNjQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MCIJfSwgLyogIDY1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTEiCX0sIC8qICA2NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjUyIgl9LCAvKiAgNjUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1MyIJfSwgLyogIDY1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTQiCX0sIC8qICA2NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU1Igl9LCAvKiAgNjU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1NiIJfSwgLyogIDY1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NTciCX0sIC8qICA2NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjU4Igl9LCAvKiAgNjU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1OSIJfSwgLyogIDY1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjAiCX0sIC8qICA2NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjYxIgl9LCAvKiAgNjYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2MiIJfSwgLyogIDY2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjMiCX0sIC8qICA2NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY0Igl9LCAvKiAgNjY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2NSIJfSwgLyogIDY2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjYiCX0sIC8qICA2NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjY3Igl9LCAvKiAgNjY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2OCIJfSwgLyogIDY2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NjkiCX0sIC8qICA2NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjcwIgl9LCAvKiAgNjcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3MSIJfSwgLyogIDY3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzIiCX0sIC8qICA2NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjczIgl9LCAvKiAgNjczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NCIJfSwgLyogIDY3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzUiCX0sIC8qICA2NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc2Igl9LCAvKiAgNjc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY3NyIJfSwgLyogIDY3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182NzgiCX0sIC8qICA2NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjc5Igl9LCAvKiAgNjc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MCIJfSwgLyogIDY4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODEiCX0sIC8qICA2ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjgyIgl9LCAvKiAgNjgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4MyIJfSwgLyogIDY4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODQiCX0sIC8qICA2ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg1Igl9LCAvKiAgNjg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4NiIJfSwgLyogIDY4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182ODciCX0sIC8qICA2ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjg4Igl9LCAvKiAgNjg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4OSIJfSwgLyogIDY4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTAiCX0sIC8qICA2OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjkxIgl9LCAvKiAgNjkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5MiIJfSwgLyogIDY5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTMiCX0sIC8qICA2OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk0Igl9LCAvKiAgNjk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5NSIJfSwgLyogIDY5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTYiCX0sIC8qICA2OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNjk3Igl9LCAvKiAgNjk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5OCIJfSwgLyogIDY5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU182OTkiCX0sIC8qICA2OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzAwIgl9LCAvKiAgNzAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwMSIJfSwgLyogIDcwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDIiCX0sIC8qICA3MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzAzIgl9LCAvKiAgNzAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwNCIJfSwgLyogIDcwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDUiCX0sIC8qICA3MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzA2Igl9LCAvKiAgNzA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcwNyIJfSwgLyogIDcwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MDgiCX0sIC8qICA3MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzA5Igl9LCAvKiAgNzA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxMCIJfSwgLyogIDcxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTEiCX0sIC8qICA3MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzEyIgl9LCAvKiAgNzEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxMyIJfSwgLyogIDcxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTQiCX0sIC8qICA3MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzE1Igl9LCAvKiAgNzE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxNiIJfSwgLyogIDcxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MTciCX0sIC8qICA3MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzE4Igl9LCAvKiAgNzE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxOSIJfSwgLyogIDcxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjAiCX0sIC8qICA3MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzIxIgl9LCAvKiAgNzIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyMiIJfSwgLyogIDcyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjMiCX0sIC8qICA3MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzI0Igl9LCAvKiAgNzI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyNSIJfSwgLyogIDcyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjYiCX0sIC8qICA3MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzI3Igl9LCAvKiAgNzI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyOCIJfSwgLyogIDcyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MjkiCX0sIC8qICA3MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzMwIgl9LCAvKiAgNzMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzczMSIJfSwgLyogIDczMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzIiCX0sIC8qICA3MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzMzIgl9LCAvKiAgNzMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzczNCIJfSwgLyogIDczNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzUiCX0sIC8qICA3MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzM2Igl9LCAvKiAgNzM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzczNyIJfSwgLyogIDczNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183MzgiCX0sIC8qICA3MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzM5Igl9LCAvKiAgNzM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0MCIJfSwgLyogIDc0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDEiCX0sIC8qICA3NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzQyIgl9LCAvKiAgNzQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0MyIJfSwgLyogIDc0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDQiCX0sIC8qICA3NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzQ1Igl9LCAvKiAgNzQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0NiIJfSwgLyogIDc0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NDciCX0sIC8qICA3NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzQ4Igl9LCAvKiAgNzQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0OSIJfSwgLyogIDc0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTAiCX0sIC8qICA3NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzUxIgl9LCAvKiAgNzUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1MiIJfSwgLyogIDc1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTMiCX0sIC8qICA3NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzU0Igl9LCAvKiAgNzU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1NSIJfSwgLyogIDc1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTYiCX0sIC8qICA3NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzU3Igl9LCAvKiAgNzU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1OCIJfSwgLyogIDc1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NTkiCX0sIC8qICA3NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzYwIgl9LCAvKiAgNzYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2MSIJfSwgLyogIDc2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjIiCX0sIC8qICA3NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzYzIgl9LCAvKiAgNzYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2NCIJfSwgLyogIDc2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjUiCX0sIC8qICA3NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzY2Igl9LCAvKiAgNzY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc2NyIJfSwgLyogIDc2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NjgiCX0sIC8qICA3NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzY5Igl9LCAvKiAgNzY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3MCIJfSwgLyogIDc3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzEiCX0sIC8qICA3NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzcyIgl9LCAvKiAgNzcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3MyIJfSwgLyogIDc3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzQiCX0sIC8qICA3NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzc1Igl9LCAvKiAgNzc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3NiIJfSwgLyogIDc3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183NzciCX0sIC8qICA3NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzc4Igl9LCAvKiAgNzc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3OSIJfSwgLyogIDc3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODAiCX0sIC8qICA3ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzgxIgl9LCAvKiAgNzgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4MiIJfSwgLyogIDc4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODMiCX0sIC8qICA3ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzg0Igl9LCAvKiAgNzg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4NSIJfSwgLyogIDc4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODYiCX0sIC8qICA3ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzg3Igl9LCAvKiAgNzg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4OCIJfSwgLyogIDc4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183ODkiCX0sIC8qICA3ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzkwIgl9LCAvKiAgNzkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5MSIJfSwgLyogIDc5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTIiCX0sIC8qICA3OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzkzIgl9LCAvKiAgNzkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5NCIJfSwgLyogIDc5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTUiCX0sIC8qICA3OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzk2Igl9LCAvKiAgNzk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzc5NyIJfSwgLyogIDc5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU183OTgiCX0sIC8qICA3OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNzk5Igl9LCAvKiAgNzk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwMCIJfSwgLyogIDgwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDEiCX0sIC8qICA4MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODAyIgl9LCAvKiAgODAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwMyIJfSwgLyogIDgwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDQiCX0sIC8qICA4MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODA1Igl9LCAvKiAgODA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwNiIJfSwgLyogIDgwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MDciCX0sIC8qICA4MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODA4Igl9LCAvKiAgODA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgwOSIJfSwgLyogIDgwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTAiCX0sIC8qICA4MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODExIgl9LCAvKiAgODExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxMiIJfSwgLyogIDgxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTMiCX0sIC8qICA4MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODE0Igl9LCAvKiAgODE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxNSIJfSwgLyogIDgxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTYiCX0sIC8qICA4MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODE3Igl9LCAvKiAgODE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgxOCIJfSwgLyogIDgxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MTkiCX0sIC8qICA4MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODIwIgl9LCAvKiAgODIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyMSIJfSwgLyogIDgyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjIiCX0sIC8qICA4MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODIzIgl9LCAvKiAgODIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyNCIJfSwgLyogIDgyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjUiCX0sIC8qICA4MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODI2Igl9LCAvKiAgODI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgyNyIJfSwgLyogIDgyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MjgiCX0sIC8qICA4MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODI5Igl9LCAvKiAgODI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzMCIJfSwgLyogIDgzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzEiCX0sIC8qICA4MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODMyIgl9LCAvKiAgODMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzMyIJfSwgLyogIDgzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzQiCX0sIC8qICA4MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODM1Igl9LCAvKiAgODM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzNiIJfSwgLyogIDgzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184MzciCX0sIC8qICA4MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODM4Igl9LCAvKiAgODM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzgzOSIJfSwgLyogIDgzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDAiCX0sIC8qICA4NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODQxIgl9LCAvKiAgODQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0MiIJfSwgLyogIDg0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDMiCX0sIC8qICA4NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODQ0Igl9LCAvKiAgODQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0NSIJfSwgLyogIDg0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDYiCX0sIC8qICA4NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODQ3Igl9LCAvKiAgODQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg0OCIJfSwgLyogIDg0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NDkiCX0sIC8qICA4NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODUwIgl9LCAvKiAgODUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1MSIJfSwgLyogIDg1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTIiCX0sIC8qICA4NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODUzIgl9LCAvKiAgODUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1NCIJfSwgLyogIDg1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTUiCX0sIC8qICA4NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODU2Igl9LCAvKiAgODU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg1NyIJfSwgLyogIDg1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NTgiCX0sIC8qICA4NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODU5Igl9LCAvKiAgODU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2MCIJfSwgLyogIDg2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjEiCX0sIC8qICA4NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODYyIgl9LCAvKiAgODYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2MyIJfSwgLyogIDg2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjQiCX0sIC8qICA4NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODY1Igl9LCAvKiAgODY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2NiIJfSwgLyogIDg2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NjciCX0sIC8qICA4NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODY4Igl9LCAvKiAgODY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg2OSIJfSwgLyogIDg2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzAiCX0sIC8qICA4NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODcxIgl9LCAvKiAgODcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3MiIJfSwgLyogIDg3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzMiCX0sIC8qICA4NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODc0Igl9LCAvKiAgODc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3NSIJfSwgLyogIDg3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzYiCX0sIC8qICA4NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODc3Igl9LCAvKiAgODc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg3OCIJfSwgLyogIDg3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184NzkiCX0sIC8qICA4NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODgwIgl9LCAvKiAgODgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4MSIJfSwgLyogIDg4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODIiCX0sIC8qICA4ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODgzIgl9LCAvKiAgODgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4NCIJfSwgLyogIDg4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODUiCX0sIC8qICA4ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODg2Igl9LCAvKiAgODg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg4NyIJfSwgLyogIDg4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184ODgiCX0sIC8qICA4ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODg5Igl9LCAvKiAgODg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5MCIJfSwgLyogIDg5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTEiCX0sIC8qICA4OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODkyIgl9LCAvKiAgODkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5MyIJfSwgLyogIDg5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTQiCX0sIC8qICA4OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODk1Igl9LCAvKiAgODk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5NiIJfSwgLyogIDg5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU184OTciCX0sIC8qICA4OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfODk4Igl9LCAvKiAgODk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzg5OSIJfSwgLyogIDg5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDAiCX0sIC8qICA5MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTAxIgl9LCAvKiAgOTAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwMiIJfSwgLyogIDkwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDMiCX0sIC8qICA5MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTA0Igl9LCAvKiAgOTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwNSIJfSwgLyogIDkwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDYiCX0sIC8qICA5MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTA3Igl9LCAvKiAgOTA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkwOCIJfSwgLyogIDkwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MDkiCX0sIC8qICA5MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTEwIgl9LCAvKiAgOTEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxMSIJfSwgLyogIDkxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTIiCX0sIC8qICA5MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTEzIgl9LCAvKiAgOTEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxNCIJfSwgLyogIDkxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTUiCX0sIC8qICA5MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTE2Igl9LCAvKiAgOTE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkxNyIJfSwgLyogIDkxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MTgiCX0sIC8qICA5MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTE5Igl9LCAvKiAgOTE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyMCIJfSwgLyogIDkyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjEiCX0sIC8qICA5MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTIyIgl9LCAvKiAgOTIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyMyIJfSwgLyogIDkyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjQiCX0sIC8qICA5MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTI1Igl9LCAvKiAgOTI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyNiIJfSwgLyogIDkyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MjciCX0sIC8qICA5MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTI4Igl9LCAvKiAgOTI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkyOSIJfSwgLyogIDkyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzAiCX0sIC8qICA5MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTMxIgl9LCAvKiAgOTMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzMiIJfSwgLyogIDkzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzMiCX0sIC8qICA5MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTM0Igl9LCAvKiAgOTM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzNSIJfSwgLyogIDkzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzYiCX0sIC8qICA5MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTM3Igl9LCAvKiAgOTM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzkzOCIJfSwgLyogIDkzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185MzkiCX0sIC8qICA5MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTQwIgl9LCAvKiAgOTQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0MSIJfSwgLyogIDk0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDIiCX0sIC8qICA5NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTQzIgl9LCAvKiAgOTQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0NCIJfSwgLyogIDk0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDUiCX0sIC8qICA5NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTQ2Igl9LCAvKiAgOTQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk0NyIJfSwgLyogIDk0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NDgiCX0sIC8qICA5NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTQ5Igl9LCAvKiAgOTQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1MCIJfSwgLyogIDk1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTEiCX0sIC8qICA5NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTUyIgl9LCAvKiAgOTUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1MyIJfSwgLyogIDk1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTQiCX0sIC8qICA5NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTU1Igl9LCAvKiAgOTU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1NiIJfSwgLyogIDk1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NTciCX0sIC8qICA5NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTU4Igl9LCAvKiAgOTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk1OSIJfSwgLyogIDk1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjAiCX0sIC8qICA5NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTYxIgl9LCAvKiAgOTYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2MiIJfSwgLyogIDk2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjMiCX0sIC8qICA5NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTY0Igl9LCAvKiAgOTY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2NSIJfSwgLyogIDk2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjYiCX0sIC8qICA5NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTY3Igl9LCAvKiAgOTY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk2OCIJfSwgLyogIDk2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NjkiCX0sIC8qICA5NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTcwIgl9LCAvKiAgOTcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3MSIJfSwgLyogIDk3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzIiCX0sIC8qICA5NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTczIgl9LCAvKiAgOTczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3NCIJfSwgLyogIDk3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzUiCX0sIC8qICA5NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTc2Igl9LCAvKiAgOTc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk3NyIJfSwgLyogIDk3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185NzgiCX0sIC8qICA5NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTc5Igl9LCAvKiAgOTc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4MCIJfSwgLyogIDk4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODEiCX0sIC8qICA5ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTgyIgl9LCAvKiAgOTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4MyIJfSwgLyogIDk4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODQiCX0sIC8qICA5ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTg1Igl9LCAvKiAgOTg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4NiIJfSwgLyogIDk4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185ODciCX0sIC8qICA5ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTg4Igl9LCAvKiAgOTg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk4OSIJfSwgLyogIDk4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTAiCX0sIC8qICA5OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTkxIgl9LCAvKiAgOTkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5MiIJfSwgLyogIDk5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTMiCX0sIC8qICA5OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTk0Igl9LCAvKiAgOTk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5NSIJfSwgLyogIDk5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTYiCX0sIC8qICA5OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfOTk3Igl9LCAvKiAgOTk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzk5OCIJfSwgLyogIDk5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU185OTkiCX0sIC8qICA5OTkgKi8gLyogZW5kIG9mIFNWUjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N5c2NhbGwiCX0sIC8qIDEwMDAgKi8gLyogc3RhcnQgb2YgU1lTViAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZXhpdCIJfSwgLyogMTAwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZm9yayIJfSwgLyogMTAwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcmVhZCIJfSwgLyogMTAwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfd3JpdGUiCX0sIC8qIDEwMDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X29wZW4iCX0sIC8qIDEwMDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2Nsb3NlIgl9LCAvKiAxMDA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl93YWl0Igl9LCAvKiAxMDA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9jcmVhdCIJfSwgLyogMTAwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbGluayIJfSwgLyogMTAwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdW5saW5rIgl9LCAvKiAxMDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9leGVjdiIJfSwgLyogMTAxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfY2hkaXIiCX0sIC8qIDEwMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3RpbWUiCX0sIC8qIDEwMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X21rbm9kIgl9LCAvKiAxMDE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9jaG1vZCIJfSwgLyogMTAxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfY2hvd24iCX0sIC8qIDEwMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2JyayIJfSwgLyogMTAxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3RhdCIJfSwgLyogMTAxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbHNlZWsiCX0sIC8qIDEwMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldHBpZCIJfSwgLyogMTAyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbW91bnQiCX0sIC8qIDEwMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3Vtb3VudCIJfSwgLyogMTAyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0dWlkIgl9LCAvKiAxMDIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXR1aWQiCX0sIC8qIDEwMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N0aW1lIgl9LCAvKiAxMDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wdHJhY2UiCX0sIC8qIDEwMjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2FsYXJtIgl9LCAvKiAxMDI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mc3RhdCIJfSwgLyogMTAyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcGF1c2UiCX0sIC8qIDEwMjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3V0aW1lIgl9LCAvKiAxMDMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zdHR5Igl9LCAvKiAxMDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9ndHR5Igl9LCAvKiAxMDMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9hY2Nlc3MiCX0sIC8qIDEwMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X25pY2UiCX0sIC8qIDEwMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N0YXRmcyIJfSwgLyogMTAzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3luYyIJfSwgLyogMTAzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfa2lsbCIJfSwgLyogMTAzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZnN0YXRmcyIJfSwgLyogMTAzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0cGdycCIJfSwgLyogMTAzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3lzc2dpIgl9LCAvKiAxMDQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9kdXAiCX0sIC8qIDEwNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3BpcGUiCX0sIC8qIDEwNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3RpbWVzIgl9LCAvKiAxMDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wcm9maWwiCX0sIC8qIDEwNDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3Bsb2NrIgl9LCAvKiAxMDQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRnaWQiCX0sIC8qIDEwNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldGdpZCIJfSwgLyogMTA0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2lnIgl9LCAvKiAxMDQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9tc2dzeXMiCX0sIC8qIDEwNDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N5c21pcHMiCX0sIC8qIDEwNTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2FjY3QiCX0sIC8qIDEwNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NobXN5cyIJfSwgLyogMTA1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2Vtc3lzIgl9LCAvKiAxMDUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9pb2N0bCIJfSwgLyogMTA1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdWFkbWluIgl9LCAvKiAxMDU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zeXNtcCIJfSwgLyogMTA1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfdXRzc3lzIgl9LCAvKiAxMDU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEwNTgiLAl9LCAvKiAxMDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9leGVjdmUiCX0sIC8qIDEwNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3VtYXNrIgl9LCAvKiAxMDYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9jaHJvb3QiCX0sIC8qIDEwNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2ZjbnRsIgl9LCAvKiAxMDYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl91bGltaXQiCX0sIC8qIDEwNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTA2NCIsCX0sIC8qIDEwNjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTA2NSIsCX0sIC8qIDEwNjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTA2NiIsCX0sIC8qIDEwNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTA2NyIsCX0sIC8qIDEwNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTA2OCIsCX0sIC8qIDEwNjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTA2OSIsCX0sIC8qIDEwNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2FkdmZzIgl9LCAvKiAxMDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl91bmFkdmZzIgl9LCAvKiAxMDcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9ybW91bnQiCX0sIC8qIDEwNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3J1bW91bnQiCX0sIC8qIDEwNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3Jmc3RhcnQiCX0sIC8qIDEwNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldHJsaW1pdDY0Igl9LCAvKiAxMDc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRybGltaXQ2NCIJfSwgLyogMTA3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbmFub3NsZWVwIgl9LCAvKiAxMDc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9sc2VlazY0Igl9LCAvKiAxMDc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9ybWRpciIJfSwgLyogMTA3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbWtkaXIiCX0sIC8qIDEwODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldGRlbnRzIgl9LCAvKiAxMDgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZ2luYXAiCX0sIC8qIDEwODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NnaWtvcHQiCX0sIC8qIDEwODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3N5c2ZzIgl9LCAvKiAxMDg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRtc2ciCX0sIC8qIDEwODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3B1dG1zZyIJfSwgLyogMTA4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcG9sbCIJfSwgLyogMTA4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2lncmV0dXJuIgl9LCAvKiAxMDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9hY2NlcHQiCX0sIC8qIDEwODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2JpbmQiCX0sIC8qIDEwOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2Nvbm5lY3QiCX0sIC8qIDEwOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldGhvc3RpZCIJfSwgLyogMTA5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0cGVlcm5hbWUiCX0sIC8qIDEwOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldHNvY2tuYW1lIgl9LCAvKiAxMDk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRzb2Nrb3B0Igl9LCAvKiAxMDk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9saXN0ZW4iCX0sIC8qIDEwOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3JlY3YiCX0sIC8qIDEwOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3JlY3Zmcm9tIgl9LCAvKiAxMDk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9yZWN2bXNnIgl9LCAvKiAxMDk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZWxlY3QiCX0sIC8qIDExMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NlbmQiCX0sIC8qIDExMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NlbmRtc2ciCX0sIC8qIDExMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NlbmR0byIJfSwgLyogMTEwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0aG9zdGlkIgl9LCAvKiAxMTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZXRzb2Nrb3B0Igl9LCAvKiAxMTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaHV0ZG93biIJfSwgLyogMTEwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc29ja2V0Igl9LCAvKiAxMTA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRob3N0bmFtZSIJfSwgLyogMTEwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0aG9zdG5hbWUiCX0sIC8qIDExMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldGRvbWFpbm5hbWUiCX0sIC8qIDExMTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NldGRvbWFpbm5hbWUiCX0sIC8qIDExMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3RydW5jYXRlIgl9LCAvKiAxMTEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mdHJ1bmNhdGUiCX0sIC8qIDExMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3JlbmFtZSIJfSwgLyogMTExNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3ltbGluayIJfSwgLyogMTExNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcmVhZGxpbmsiCX0sIC8qIDExMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2xzdGF0Igl9LCAvKiAxMTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9uZnNtb3VudCIJfSwgLyogMTExOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbmZzc3ZjIgl9LCAvKiAxMTE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRmaCIJfSwgLyogMTEyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfYXN5bmNfZGFlbW9uIgl9LCAvKiAxMTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9leHBvcnRmcyIJfSwgLyogMTEyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0cmVnaWQiCX0sIC8qIDExMjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NldHJldWlkIgl9LCAvKiAxMTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9nZXRpdGltZXIiCX0sIC8qIDExMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NldGl0aW1lciIJfSwgLyogMTEyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfYWRqdGltZSIJfSwgLyogMTEyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfQlNEX2dldGltZSIJfSwgLyogMTEyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3Byb2MiCX0sIC8qIDExMjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3ByY3RsIgl9LCAvKiAxMTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wcm9jYmxrIgl9LCAvKiAxMTMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zcHJvY3NwIgl9LCAvKiAxMTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zZ2lnc2MiCX0sIC8qIDExMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X21tYXAiCX0sIC8qIDExMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X211bm1hcCIJfSwgLyogMTEzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbXByb3RlY3QiCX0sIC8qIDExMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X21zeW5jIgl9LCAvKiAxMTM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9tYWR2aXNlIgl9LCAvKiAxMTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wYWdlbG9jayIJfSwgLyogMTEzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0cGFnZXNpemUiCX0sIC8qIDExNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3F1b3RhY3RsIgl9LCAvKiAxMTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9saWJkZXRhY2giCX0sIC8qIDExNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X0JTRGdldHBncnAiCX0sIC8qIDExNDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X0JTRHNldHBncnAiCX0sIC8qIDExNDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3ZoYW5ndXAiCX0sIC8qIDExNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2ZzeW5jIgl9LCAvKiAxMTQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mY2hkaXIiCX0sIC8qIDExNDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2dldHJsaW1pdCIJfSwgLyogMTE0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0cmxpbWl0Igl9LCAvKiAxMTQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9jYWNoZWZsdXNoIgl9LCAvKiAxMTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9jYWNoZWN0bCIJfSwgLyogMTE1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZmNob3duIgl9LCAvKiAxMTUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mY2htb2QiCX0sIC8qIDExNTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3dhaXQzIgl9LCAvKiAxMTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zb2NrZXRwYWlyIgl9LCAvKiAxMTU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zeXNpbmZvIgl9LCAvKiAxMTU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9udW5hbWUiCX0sIC8qIDExNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3hzdGF0Igl9LCAvKiAxMTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9seHN0YXQiCX0sIC8qIDExNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X2Z4c3RhdCIJfSwgLyogMTE2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfeG1rbm9kIgl9LCAvKiAxMTYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9rc2lnYWN0aW9uIgl9LCAvKiAxMTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWdwZW5kaW5nIgl9LCAvKiAxMTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWdwcm9jbWFzayIJfSwgLyogMTE2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2lnc3VzcGVuZCIJfSwgLyogMTE2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2lncG9sbCIJfSwgLyogMTE2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc3dhcGN0bCIJfSwgLyogMTE2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0Y29udGV4dCIJfSwgLyogMTE2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2V0Y29udGV4dCIJfSwgLyogMTE2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfd2FpdHN5cyIJfSwgLyogMTE3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfc2lnc3RhY2siCX0sIC8qIDExNzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3NpZ2FsdHN0YWNrIgl9LCAvKiAxMTcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zaWdzZW5kc2V0Igl9LCAvKiAxMTczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9zdGF0dmZzIgl9LCAvKiAxMTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mc3RhdHZmcyIJfSwgLyogMTE3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfZ2V0cG1zZyIJfSwgLyogMTE3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfcHV0cG1zZyIJfSwgLyogMTE3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbGNob3duIgl9LCAvKiAxMTc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wcmlvY250bCIJfSwgLyogMTE3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfa3NpZ3F1ZXVlIgl9LCAvKiAxMTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9yZWFkdiIJfSwgLyogMTE4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3Zfd3JpdGV2Igl9LCAvKiAxMTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl90cnVuY2F0ZTY0Igl9LCAvKiAxMTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9mdHJ1bmNhdGU2NCIJfSwgLyogMTE4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInN5c3ZfbW1hcDY0Igl9LCAvKiAxMTg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9kbWkiCX0sIC8qIDExODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJzeXN2X3ByZWFkIgl9LCAvKiAxMTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkic3lzdl9wd3JpdGUiCX0sIC8qIDExODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTE4OSIJfSwgLyogMTE4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTkwIgl9LCAvKiAxMTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExOTEiCX0sIC8qIDExOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTE5MiIJfSwgLyogMTE5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTkzIgl9LCAvKiAxMTkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExOTQiCX0sIC8qIDExOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTE5NSIJfSwgLyogMTE5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTk2Igl9LCAvKiAxMTk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzExOTciCX0sIC8qIDExOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTE5OCIJfSwgLyogMTE5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMTk5Igl9LCAvKiAxMTk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMDAiCX0sIC8qIDEyMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIwMSIJfSwgLyogMTIwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjAyIgl9LCAvKiAxMjAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMDMiCX0sIC8qIDEyMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIwNCIJfSwgLyogMTIwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjA1Igl9LCAvKiAxMjA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMDYiCX0sIC8qIDEyMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIwNyIJfSwgLyogMTIwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjA4Igl9LCAvKiAxMjA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMDkiCX0sIC8qIDEyMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIxMCIJfSwgLyogMTIxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjExIgl9LCAvKiAxMjExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMTIiCX0sIC8qIDEyMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIxMyIJfSwgLyogMTIxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjE0Igl9LCAvKiAxMjE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMTUiCX0sIC8qIDEyMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIxNiIJfSwgLyogMTIxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjE3Igl9LCAvKiAxMjE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMTgiCX0sIC8qIDEyMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIxOSIJfSwgLyogMTIxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjIwIgl9LCAvKiAxMjIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMjEiCX0sIC8qIDEyMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIyMiIJfSwgLyogMTIyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjIzIgl9LCAvKiAxMjIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMjQiCX0sIC8qIDEyMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIyNSIJfSwgLyogMTIyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjI2Igl9LCAvKiAxMjI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMjciCX0sIC8qIDEyMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIyOCIJfSwgLyogMTIyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjI5Igl9LCAvKiAxMjI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMzAiCX0sIC8qIDEyMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIzMSIJfSwgLyogMTIzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjMyIgl9LCAvKiAxMjMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMzMiCX0sIC8qIDEyMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIzNCIJfSwgLyogMTIzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjM1Igl9LCAvKiAxMjM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMzYiCX0sIC8qIDEyMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTIzNyIJfSwgLyogMTIzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjM4Igl9LCAvKiAxMjM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyMzkiCX0sIC8qIDEyMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI0MCIJfSwgLyogMTI0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjQxIgl9LCAvKiAxMjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNDIiCX0sIC8qIDEyNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI0MyIJfSwgLyogMTI0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjQ0Igl9LCAvKiAxMjQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNDUiCX0sIC8qIDEyNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI0NiIJfSwgLyogMTI0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjQ3Igl9LCAvKiAxMjQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNDgiCX0sIC8qIDEyNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI0OSIJfSwgLyogMTI0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjUwIgl9LCAvKiAxMjUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNTEiCX0sIC8qIDEyNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI1MiIJfSwgLyogMTI1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjUzIgl9LCAvKiAxMjUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNTQiCX0sIC8qIDEyNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI1NSIJfSwgLyogMTI1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjU2Igl9LCAvKiAxMjU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNTciCX0sIC8qIDEyNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI1OCIJfSwgLyogMTI1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjU5Igl9LCAvKiAxMjU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNjAiCX0sIC8qIDEyNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI2MSIJfSwgLyogMTI2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjYyIgl9LCAvKiAxMjYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNjMiCX0sIC8qIDEyNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI2NCIJfSwgLyogMTI2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjY1Igl9LCAvKiAxMjY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNjYiCX0sIC8qIDEyNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI2NyIJfSwgLyogMTI2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjY4Igl9LCAvKiAxMjY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNjkiCX0sIC8qIDEyNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI3MCIJfSwgLyogMTI3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjcxIgl9LCAvKiAxMjcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzIiCX0sIC8qIDEyNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI3MyIJfSwgLyogMTI3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc0Igl9LCAvKiAxMjc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzUiCX0sIC8qIDEyNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI3NiIJfSwgLyogMTI3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjc3Igl9LCAvKiAxMjc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyNzgiCX0sIC8qIDEyNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI3OSIJfSwgLyogMTI3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjgwIgl9LCAvKiAxMjgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODEiCX0sIC8qIDEyODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI4MiIJfSwgLyogMTI4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjgzIgl9LCAvKiAxMjgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODQiCX0sIC8qIDEyODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI4NSIJfSwgLyogMTI4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg2Igl9LCAvKiAxMjg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyODciCX0sIC8qIDEyODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI4OCIJfSwgLyogMTI4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjg5Igl9LCAvKiAxMjg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTAiCX0sIC8qIDEyOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI5MSIJfSwgLyogMTI5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjkyIgl9LCAvKiAxMjkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTMiCX0sIC8qIDEyOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI5NCIJfSwgLyogMTI5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk1Igl9LCAvKiAxMjk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTYiCX0sIC8qIDEyOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTI5NyIJfSwgLyogMTI5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjk4Igl9LCAvKiAxMjk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEyOTkiCX0sIC8qIDEyOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMwMCIJfSwgLyogMTMwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzAxIgl9LCAvKiAxMzAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDIiCX0sIC8qIDEzMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMwMyIJfSwgLyogMTMwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzA0Igl9LCAvKiAxMzA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDUiCX0sIC8qIDEzMDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMwNiIJfSwgLyogMTMwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzA3Igl9LCAvKiAxMzA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMDgiCX0sIC8qIDEzMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMwOSIJfSwgLyogMTMwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzEwIgl9LCAvKiAxMzEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMTEiCX0sIC8qIDEzMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMxMiIJfSwgLyogMTMxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzEzIgl9LCAvKiAxMzEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMTQiCX0sIC8qIDEzMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMxNSIJfSwgLyogMTMxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzE2Igl9LCAvKiAxMzE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMTciCX0sIC8qIDEzMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMxOCIJfSwgLyogMTMxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzE5Igl9LCAvKiAxMzE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMjAiCX0sIC8qIDEzMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMyMSIJfSwgLyogMTMyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzIyIgl9LCAvKiAxMzIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMjMiCX0sIC8qIDEzMjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMyNCIJfSwgLyogMTMyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzI1Igl9LCAvKiAxMzI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMjYiCX0sIC8qIDEzMjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMyNyIJfSwgLyogMTMyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzI4Igl9LCAvKiAxMzI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMjkiCX0sIC8qIDEzMjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMzMCIJfSwgLyogMTMzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzMxIgl9LCAvKiAxMzMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMzIiCX0sIC8qIDEzMzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMzMyIJfSwgLyogMTMzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzM0Igl9LCAvKiAxMzM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMzUiCX0sIC8qIDEzMzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMzNiIJfSwgLyogMTMzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzM3Igl9LCAvKiAxMzM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzMzgiCX0sIC8qIDEzMzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTMzOSIJfSwgLyogMTMzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzQwIgl9LCAvKiAxMzQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNDEiCX0sIC8qIDEzNDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM0MiIJfSwgLyogMTM0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzQzIgl9LCAvKiAxMzQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNDQiCX0sIC8qIDEzNDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM0NSIJfSwgLyogMTM0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzQ2Igl9LCAvKiAxMzQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNDciCX0sIC8qIDEzNDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM0OCIJfSwgLyogMTM0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzQ5Igl9LCAvKiAxMzQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNTAiCX0sIC8qIDEzNTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM1MSIJfSwgLyogMTM1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzUyIgl9LCAvKiAxMzUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNTMiCX0sIC8qIDEzNTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM1NCIJfSwgLyogMTM1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzU1Igl9LCAvKiAxMzU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNTYiCX0sIC8qIDEzNTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM1NyIJfSwgLyogMTM1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzU4Igl9LCAvKiAxMzU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNTkiCX0sIC8qIDEzNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM2MCIJfSwgLyogMTM2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzYxIgl9LCAvKiAxMzYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNjIiCX0sIC8qIDEzNjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM2MyIJfSwgLyogMTM2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzY0Igl9LCAvKiAxMzY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNjUiCX0sIC8qIDEzNjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM2NiIJfSwgLyogMTM2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzY3Igl9LCAvKiAxMzY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNjgiCX0sIC8qIDEzNjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM2OSIJfSwgLyogMTM2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzcwIgl9LCAvKiAxMzcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNzEiCX0sIC8qIDEzNzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM3MiIJfSwgLyogMTM3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzczIgl9LCAvKiAxMzczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNzQiCX0sIC8qIDEzNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM3NSIJfSwgLyogMTM3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzc2Igl9LCAvKiAxMzc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzNzciCX0sIC8qIDEzNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM3OCIJfSwgLyogMTM3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzc5Igl9LCAvKiAxMzc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzODAiCX0sIC8qIDEzODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM4MSIJfSwgLyogMTM4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzgyIgl9LCAvKiAxMzgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzODMiCX0sIC8qIDEzODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM4NCIJfSwgLyogMTM4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzg1Igl9LCAvKiAxMzg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzODYiCX0sIC8qIDEzODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM4NyIJfSwgLyogMTM4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzg4Igl9LCAvKiAxMzg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzODkiCX0sIC8qIDEzODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM5MCIJfSwgLyogMTM5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzkxIgl9LCAvKiAxMzkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzOTIiCX0sIC8qIDEzOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM5MyIJfSwgLyogMTM5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzk0Igl9LCAvKiAxMzk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzOTUiCX0sIC8qIDEzOTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM5NiIJfSwgLyogMTM5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMzk3Igl9LCAvKiAxMzk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzEzOTgiCX0sIC8qIDEzOTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTM5OSIJfSwgLyogMTM5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDAwIgl9LCAvKiAxNDAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MDEiCX0sIC8qIDE0MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQwMiIJfSwgLyogMTQwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDAzIgl9LCAvKiAxNDAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MDQiCX0sIC8qIDE0MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQwNSIJfSwgLyogMTQwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDA2Igl9LCAvKiAxNDA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MDciCX0sIC8qIDE0MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQwOCIJfSwgLyogMTQwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDA5Igl9LCAvKiAxNDA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MTAiCX0sIC8qIDE0MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQxMSIJfSwgLyogMTQxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDEyIgl9LCAvKiAxNDEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MTMiCX0sIC8qIDE0MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQxNCIJfSwgLyogMTQxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDE1Igl9LCAvKiAxNDE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MTYiCX0sIC8qIDE0MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQxNyIJfSwgLyogMTQxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDE4Igl9LCAvKiAxNDE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MTkiCX0sIC8qIDE0MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQyMCIJfSwgLyogMTQyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDIxIgl9LCAvKiAxNDIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MjIiCX0sIC8qIDE0MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQyMyIJfSwgLyogMTQyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDI0Igl9LCAvKiAxNDI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MjUiCX0sIC8qIDE0MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQyNiIJfSwgLyogMTQyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDI3Igl9LCAvKiAxNDI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MjgiCX0sIC8qIDE0MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQyOSIJfSwgLyogMTQyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDMwIgl9LCAvKiAxNDMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MzEiCX0sIC8qIDE0MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQzMiIJfSwgLyogMTQzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDMzIgl9LCAvKiAxNDMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MzQiCX0sIC8qIDE0MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQzNSIJfSwgLyogMTQzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDM2Igl9LCAvKiAxNDM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MzciCX0sIC8qIDE0MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQzOCIJfSwgLyogMTQzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDM5Igl9LCAvKiAxNDM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NDAiCX0sIC8qIDE0NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ0MSIJfSwgLyogMTQ0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDQyIgl9LCAvKiAxNDQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NDMiCX0sIC8qIDE0NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ0NCIJfSwgLyogMTQ0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDQ1Igl9LCAvKiAxNDQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NDYiCX0sIC8qIDE0NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ0NyIJfSwgLyogMTQ0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDQ4Igl9LCAvKiAxNDQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NDkiCX0sIC8qIDE0NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ1MCIJfSwgLyogMTQ1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDUxIgl9LCAvKiAxNDUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NTIiCX0sIC8qIDE0NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ1MyIJfSwgLyogMTQ1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDU0Igl9LCAvKiAxNDU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NTUiCX0sIC8qIDE0NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ1NiIJfSwgLyogMTQ1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDU3Igl9LCAvKiAxNDU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NTgiCX0sIC8qIDE0NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ1OSIJfSwgLyogMTQ1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDYwIgl9LCAvKiAxNDYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NjEiCX0sIC8qIDE0NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ2MiIJfSwgLyogMTQ2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDYzIgl9LCAvKiAxNDYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NjQiCX0sIC8qIDE0NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ2NSIJfSwgLyogMTQ2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDY2Igl9LCAvKiAxNDY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NjciCX0sIC8qIDE0NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ2OCIJfSwgLyogMTQ2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDY5Igl9LCAvKiAxNDY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NzAiCX0sIC8qIDE0NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3MSIJfSwgLyogMTQ3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDcyIgl9LCAvKiAxNDcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NzMiCX0sIC8qIDE0NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3NCIJfSwgLyogMTQ3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDc1Igl9LCAvKiAxNDc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NzYiCX0sIC8qIDE0NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ3NyIJfSwgLyogMTQ3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDc4Igl9LCAvKiAxNDc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0NzkiCX0sIC8qIDE0NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ4MCIJfSwgLyogMTQ4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDgxIgl9LCAvKiAxNDgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0ODIiCX0sIC8qIDE0ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ4MyIJfSwgLyogMTQ4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDg0Igl9LCAvKiAxNDg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0ODUiCX0sIC8qIDE0ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ4NiIJfSwgLyogMTQ4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDg3Igl9LCAvKiAxNDg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0ODgiCX0sIC8qIDE0ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ4OSIJfSwgLyogMTQ4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDkwIgl9LCAvKiAxNDkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OTEiCX0sIC8qIDE0OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5MiIJfSwgLyogMTQ5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDkzIgl9LCAvKiAxNDkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OTQiCX0sIC8qIDE0OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5NSIJfSwgLyogMTQ5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDk2Igl9LCAvKiAxNDk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0OTciCX0sIC8qIDE0OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5OCIJfSwgLyogMTQ5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDk5Igl9LCAvKiAxNDk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MDAiCX0sIC8qIDE1MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwMSIJfSwgLyogMTUwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTAyIgl9LCAvKiAxNTAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MDMiCX0sIC8qIDE1MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwNCIJfSwgLyogMTUwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTA1Igl9LCAvKiAxNTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MDYiCX0sIC8qIDE1MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUwNyIJfSwgLyogMTUwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTA4Igl9LCAvKiAxNTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MDkiCX0sIC8qIDE1MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUxMCIJfSwgLyogMTUxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTExIgl9LCAvKiAxNTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MTIiCX0sIC8qIDE1MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUxMyIJfSwgLyogMTUxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTE0Igl9LCAvKiAxNTE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MTUiCX0sIC8qIDE1MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUxNiIJfSwgLyogMTUxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTE3Igl9LCAvKiAxNTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MTgiCX0sIC8qIDE1MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUxOSIJfSwgLyogMTUxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTIwIgl9LCAvKiAxNTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MjEiCX0sIC8qIDE1MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUyMiIJfSwgLyogMTUyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTIzIgl9LCAvKiAxNTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MjQiCX0sIC8qIDE1MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUyNSIJfSwgLyogMTUyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTI2Igl9LCAvKiAxNTI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MjciCX0sIC8qIDE1MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUyOCIJfSwgLyogMTUyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTI5Igl9LCAvKiAxNTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MzAiCX0sIC8qIDE1MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzMSIJfSwgLyogMTUzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTMyIgl9LCAvKiAxNTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MzMiCX0sIC8qIDE1MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzNCIJfSwgLyogMTUzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTM1Igl9LCAvKiAxNTM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MzYiCX0sIC8qIDE1MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTUzNyIJfSwgLyogMTUzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTM4Igl9LCAvKiAxNTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1MzkiCX0sIC8qIDE1MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU0MCIJfSwgLyogMTU0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQxIgl9LCAvKiAxNTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NDIiCX0sIC8qIDE1NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU0MyIJfSwgLyogMTU0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQ0Igl9LCAvKiAxNTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NDUiCX0sIC8qIDE1NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU0NiIJfSwgLyogMTU0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTQ3Igl9LCAvKiAxNTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NDgiCX0sIC8qIDE1NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU0OSIJfSwgLyogMTU0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTUwIgl9LCAvKiAxNTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NTEiCX0sIC8qIDE1NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU1MiIJfSwgLyogMTU1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTUzIgl9LCAvKiAxNTUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NTQiCX0sIC8qIDE1NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU1NSIJfSwgLyogMTU1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTU2Igl9LCAvKiAxNTU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NTciCX0sIC8qIDE1NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU1OCIJfSwgLyogMTU1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTU5Igl9LCAvKiAxNTU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NjAiCX0sIC8qIDE1NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2MSIJfSwgLyogMTU2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTYyIgl9LCAvKiAxNTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NjMiCX0sIC8qIDE1NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2NCIJfSwgLyogMTU2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTY1Igl9LCAvKiAxNTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NjYiCX0sIC8qIDE1NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU2NyIJfSwgLyogMTU2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTY4Igl9LCAvKiAxNTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NjkiCX0sIC8qIDE1NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU3MCIJfSwgLyogMTU3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTcxIgl9LCAvKiAxNTcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NzIiCX0sIC8qIDE1NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU3MyIJfSwgLyogMTU3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTc0Igl9LCAvKiAxNTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NzUiCX0sIC8qIDE1NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU3NiIJfSwgLyogMTU3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTc3Igl9LCAvKiAxNTc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1NzgiCX0sIC8qIDE1NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU3OSIJfSwgLyogMTU3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTgwIgl9LCAvKiAxNTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1ODEiCX0sIC8qIDE1ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU4MiIJfSwgLyogMTU4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTgzIgl9LCAvKiAxNTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1ODQiCX0sIC8qIDE1ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU4NSIJfSwgLyogMTU4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTg2Igl9LCAvKiAxNTg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1ODciCX0sIC8qIDE1ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU4OCIJfSwgLyogMTU4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTg5Igl9LCAvKiAxNTg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OTAiCX0sIC8qIDE1OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5MSIJfSwgLyogMTU5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTkyIgl9LCAvKiAxNTkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OTMiCX0sIC8qIDE1OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5NCIJfSwgLyogMTU5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTk1Igl9LCAvKiAxNTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OTYiCX0sIC8qIDE1OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTU5NyIJfSwgLyogMTU5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTk4Igl9LCAvKiAxNTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE1OTkiCX0sIC8qIDE1OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYwMCIJfSwgLyogMTYwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjAxIgl9LCAvKiAxNjAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MDIiCX0sIC8qIDE2MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYwMyIJfSwgLyogMTYwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjA0Igl9LCAvKiAxNjA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MDUiCX0sIC8qIDE2MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYwNiIJfSwgLyogMTYwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjA3Igl9LCAvKiAxNjA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MDgiCX0sIC8qIDE2MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYwOSIJfSwgLyogMTYwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjEwIgl9LCAvKiAxNjEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MTEiCX0sIC8qIDE2MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYxMiIJfSwgLyogMTYxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjEzIgl9LCAvKiAxNjEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MTQiCX0sIC8qIDE2MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYxNSIJfSwgLyogMTYxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjE2Igl9LCAvKiAxNjE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MTciCX0sIC8qIDE2MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYxOCIJfSwgLyogMTYxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjE5Igl9LCAvKiAxNjE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MjAiCX0sIC8qIDE2MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyMSIJfSwgLyogMTYyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjIyIgl9LCAvKiAxNjIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MjMiCX0sIC8qIDE2MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyNCIJfSwgLyogMTYyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjI1Igl9LCAvKiAxNjI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MjYiCX0sIC8qIDE2MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYyNyIJfSwgLyogMTYyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjI4Igl9LCAvKiAxNjI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MjkiCX0sIC8qIDE2MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYzMCIJfSwgLyogMTYzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjMxIgl9LCAvKiAxNjMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MzIiCX0sIC8qIDE2MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYzMyIJfSwgLyogMTYzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjM0Igl9LCAvKiAxNjM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MzUiCX0sIC8qIDE2MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYzNiIJfSwgLyogMTYzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjM3Igl9LCAvKiAxNjM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2MzgiCX0sIC8qIDE2MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTYzOSIJfSwgLyogMTYzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQwIgl9LCAvKiAxNjQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NDEiCX0sIC8qIDE2NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY0MiIJfSwgLyogMTY0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQzIgl9LCAvKiAxNjQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NDQiCX0sIC8qIDE2NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY0NSIJfSwgLyogMTY0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQ2Igl9LCAvKiAxNjQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NDciCX0sIC8qIDE2NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY0OCIJfSwgLyogMTY0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjQ5Igl9LCAvKiAxNjQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NTAiCX0sIC8qIDE2NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1MSIJfSwgLyogMTY1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjUyIgl9LCAvKiAxNjUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NTMiCX0sIC8qIDE2NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1NCIJfSwgLyogMTY1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjU1Igl9LCAvKiAxNjU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NTYiCX0sIC8qIDE2NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY1NyIJfSwgLyogMTY1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjU4Igl9LCAvKiAxNjU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NTkiCX0sIC8qIDE2NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY2MCIJfSwgLyogMTY2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjYxIgl9LCAvKiAxNjYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NjIiCX0sIC8qIDE2NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY2MyIJfSwgLyogMTY2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjY0Igl9LCAvKiAxNjY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NjUiCX0sIC8qIDE2NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY2NiIJfSwgLyogMTY2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjY3Igl9LCAvKiAxNjY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NjgiCX0sIC8qIDE2NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY2OSIJfSwgLyogMTY2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjcwIgl9LCAvKiAxNjcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NzEiCX0sIC8qIDE2NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY3MiIJfSwgLyogMTY3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjczIgl9LCAvKiAxNjczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NzQiCX0sIC8qIDE2NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY3NSIJfSwgLyogMTY3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjc2Igl9LCAvKiAxNjc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NzciCX0sIC8qIDE2NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY3OCIJfSwgLyogMTY3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjc5Igl9LCAvKiAxNjc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2ODAiCX0sIC8qIDE2ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4MSIJfSwgLyogMTY4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjgyIgl9LCAvKiAxNjgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2ODMiCX0sIC8qIDE2ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4NCIJfSwgLyogMTY4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjg1Igl9LCAvKiAxNjg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2ODYiCX0sIC8qIDE2ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY4NyIJfSwgLyogMTY4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjg4Igl9LCAvKiAxNjg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2ODkiCX0sIC8qIDE2ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY5MCIJfSwgLyogMTY5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjkxIgl9LCAvKiAxNjkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OTIiCX0sIC8qIDE2OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY5MyIJfSwgLyogMTY5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjk0Igl9LCAvKiAxNjk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OTUiCX0sIC8qIDE2OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY5NiIJfSwgLyogMTY5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNjk3Igl9LCAvKiAxNjk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2OTgiCX0sIC8qIDE2OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTY5OSIJfSwgLyogMTY5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzAwIgl9LCAvKiAxNzAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MDEiCX0sIC8qIDE3MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcwMiIJfSwgLyogMTcwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzAzIgl9LCAvKiAxNzAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MDQiCX0sIC8qIDE3MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcwNSIJfSwgLyogMTcwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzA2Igl9LCAvKiAxNzA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MDciCX0sIC8qIDE3MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcwOCIJfSwgLyogMTcwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzA5Igl9LCAvKiAxNzA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MTAiCX0sIC8qIDE3MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxMSIJfSwgLyogMTcxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzEyIgl9LCAvKiAxNzEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MTMiCX0sIC8qIDE3MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxNCIJfSwgLyogMTcxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzE1Igl9LCAvKiAxNzE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MTYiCX0sIC8qIDE3MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcxNyIJfSwgLyogMTcxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzE4Igl9LCAvKiAxNzE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MTkiCX0sIC8qIDE3MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcyMCIJfSwgLyogMTcyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzIxIgl9LCAvKiAxNzIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MjIiCX0sIC8qIDE3MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcyMyIJfSwgLyogMTcyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzI0Igl9LCAvKiAxNzI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MjUiCX0sIC8qIDE3MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcyNiIJfSwgLyogMTcyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzI3Igl9LCAvKiAxNzI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MjgiCX0sIC8qIDE3MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTcyOSIJfSwgLyogMTcyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzMwIgl9LCAvKiAxNzMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MzEiCX0sIC8qIDE3MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTczMiIJfSwgLyogMTczMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzMzIgl9LCAvKiAxNzMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MzQiCX0sIC8qIDE3MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTczNSIJfSwgLyogMTczNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzM2Igl9LCAvKiAxNzM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3MzciCX0sIC8qIDE3MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTczOCIJfSwgLyogMTczOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzM5Igl9LCAvKiAxNzM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NDAiCX0sIC8qIDE3NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0MSIJfSwgLyogMTc0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQyIgl9LCAvKiAxNzQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NDMiCX0sIC8qIDE3NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0NCIJfSwgLyogMTc0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQ1Igl9LCAvKiAxNzQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NDYiCX0sIC8qIDE3NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc0NyIJfSwgLyogMTc0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzQ4Igl9LCAvKiAxNzQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NDkiCX0sIC8qIDE3NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc1MCIJfSwgLyogMTc1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzUxIgl9LCAvKiAxNzUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NTIiCX0sIC8qIDE3NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc1MyIJfSwgLyogMTc1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzU0Igl9LCAvKiAxNzU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NTUiCX0sIC8qIDE3NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc1NiIJfSwgLyogMTc1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzU3Igl9LCAvKiAxNzU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NTgiCX0sIC8qIDE3NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc1OSIJfSwgLyogMTc1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzYwIgl9LCAvKiAxNzYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NjEiCX0sIC8qIDE3NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc2MiIJfSwgLyogMTc2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzYzIgl9LCAvKiAxNzYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NjQiCX0sIC8qIDE3NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc2NSIJfSwgLyogMTc2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzY2Igl9LCAvKiAxNzY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NjciCX0sIC8qIDE3NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc2OCIJfSwgLyogMTc2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzY5Igl9LCAvKiAxNzY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NzAiCX0sIC8qIDE3NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3MSIJfSwgLyogMTc3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzcyIgl9LCAvKiAxNzcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NzMiCX0sIC8qIDE3NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3NCIJfSwgLyogMTc3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzc1Igl9LCAvKiAxNzc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NzYiCX0sIC8qIDE3NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc3NyIJfSwgLyogMTc3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzc4Igl9LCAvKiAxNzc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NzkiCX0sIC8qIDE3NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc4MCIJfSwgLyogMTc4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzgxIgl9LCAvKiAxNzgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3ODIiCX0sIC8qIDE3ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc4MyIJfSwgLyogMTc4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzg0Igl9LCAvKiAxNzg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3ODUiCX0sIC8qIDE3ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc4NiIJfSwgLyogMTc4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzg3Igl9LCAvKiAxNzg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3ODgiCX0sIC8qIDE3ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc4OSIJfSwgLyogMTc4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzkwIgl9LCAvKiAxNzkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OTEiCX0sIC8qIDE3OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc5MiIJfSwgLyogMTc5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzkzIgl9LCAvKiAxNzkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OTQiCX0sIC8qIDE3OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc5NSIJfSwgLyogMTc5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzk2Igl9LCAvKiAxNzk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OTciCX0sIC8qIDE3OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTc5OCIJfSwgLyogMTc5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNzk5Igl9LCAvKiAxNzk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MDAiCX0sIC8qIDE4MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwMSIJfSwgLyogMTgwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODAyIgl9LCAvKiAxODAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MDMiCX0sIC8qIDE4MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwNCIJfSwgLyogMTgwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODA1Igl9LCAvKiAxODA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MDYiCX0sIC8qIDE4MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgwNyIJfSwgLyogMTgwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODA4Igl9LCAvKiAxODA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MDkiCX0sIC8qIDE4MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgxMCIJfSwgLyogMTgxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODExIgl9LCAvKiAxODExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MTIiCX0sIC8qIDE4MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgxMyIJfSwgLyogMTgxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODE0Igl9LCAvKiAxODE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MTUiCX0sIC8qIDE4MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgxNiIJfSwgLyogMTgxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODE3Igl9LCAvKiAxODE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MTgiCX0sIC8qIDE4MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgxOSIJfSwgLyogMTgxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODIwIgl9LCAvKiAxODIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MjEiCX0sIC8qIDE4MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgyMiIJfSwgLyogMTgyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODIzIgl9LCAvKiAxODIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MjQiCX0sIC8qIDE4MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgyNSIJfSwgLyogMTgyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODI2Igl9LCAvKiAxODI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MjciCX0sIC8qIDE4MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgyOCIJfSwgLyogMTgyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODI5Igl9LCAvKiAxODI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MzAiCX0sIC8qIDE4MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzMSIJfSwgLyogMTgzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODMyIgl9LCAvKiAxODMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MzMiCX0sIC8qIDE4MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzNCIJfSwgLyogMTgzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODM1Igl9LCAvKiAxODM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MzYiCX0sIC8qIDE4MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTgzNyIJfSwgLyogMTgzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODM4Igl9LCAvKiAxODM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MzkiCX0sIC8qIDE4MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg0MCIJfSwgLyogMTg0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQxIgl9LCAvKiAxODQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NDIiCX0sIC8qIDE4NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg0MyIJfSwgLyogMTg0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQ0Igl9LCAvKiAxODQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NDUiCX0sIC8qIDE4NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg0NiIJfSwgLyogMTg0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODQ3Igl9LCAvKiAxODQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NDgiCX0sIC8qIDE4NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg0OSIJfSwgLyogMTg0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUwIgl9LCAvKiAxODUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NTEiCX0sIC8qIDE4NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg1MiIJfSwgLyogMTg1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODUzIgl9LCAvKiAxODUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NTQiCX0sIC8qIDE4NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg1NSIJfSwgLyogMTg1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODU2Igl9LCAvKiAxODU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NTciCX0sIC8qIDE4NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg1OCIJfSwgLyogMTg1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODU5Igl9LCAvKiAxODU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NjAiCX0sIC8qIDE4NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2MSIJfSwgLyogMTg2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODYyIgl9LCAvKiAxODYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NjMiCX0sIC8qIDE4NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2NCIJfSwgLyogMTg2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODY1Igl9LCAvKiAxODY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NjYiCX0sIC8qIDE4NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg2NyIJfSwgLyogMTg2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODY4Igl9LCAvKiAxODY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NjkiCX0sIC8qIDE4NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg3MCIJfSwgLyogMTg3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODcxIgl9LCAvKiAxODcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NzIiCX0sIC8qIDE4NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg3MyIJfSwgLyogMTg3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODc0Igl9LCAvKiAxODc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NzUiCX0sIC8qIDE4NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg3NiIJfSwgLyogMTg3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODc3Igl9LCAvKiAxODc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NzgiCX0sIC8qIDE4NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg3OSIJfSwgLyogMTg3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODgwIgl9LCAvKiAxODgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4ODEiCX0sIC8qIDE4ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg4MiIJfSwgLyogMTg4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODgzIgl9LCAvKiAxODgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4ODQiCX0sIC8qIDE4ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg4NSIJfSwgLyogMTg4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODg2Igl9LCAvKiAxODg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4ODciCX0sIC8qIDE4ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg4OCIJfSwgLyogMTg4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODg5Igl9LCAvKiAxODg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OTAiCX0sIC8qIDE4OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5MSIJfSwgLyogMTg5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODkyIgl9LCAvKiAxODkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OTMiCX0sIC8qIDE4OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5NCIJfSwgLyogMTg5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODk1Igl9LCAvKiAxODk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OTYiCX0sIC8qIDE4OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTg5NyIJfSwgLyogMTg5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xODk4Igl9LCAvKiAxODk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OTkiCX0sIC8qIDE4OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkwMCIJfSwgLyogMTkwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTAxIgl9LCAvKiAxOTAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MDIiCX0sIC8qIDE5MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkwMyIJfSwgLyogMTkwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTA0Igl9LCAvKiAxOTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MDUiCX0sIC8qIDE5MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkwNiIJfSwgLyogMTkwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTA3Igl9LCAvKiAxOTA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MDgiCX0sIC8qIDE5MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkwOSIJfSwgLyogMTkwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTEwIgl9LCAvKiAxOTEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MTEiCX0sIC8qIDE5MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkxMiIJfSwgLyogMTkxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTEzIgl9LCAvKiAxOTEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MTQiCX0sIC8qIDE5MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkxNSIJfSwgLyogMTkxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTE2Igl9LCAvKiAxOTE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MTciCX0sIC8qIDE5MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkxOCIJfSwgLyogMTkxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTE5Igl9LCAvKiAxOTE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MjAiCX0sIC8qIDE5MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyMSIJfSwgLyogMTkyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTIyIgl9LCAvKiAxOTIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MjMiCX0sIC8qIDE5MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyNCIJfSwgLyogMTkyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTI1Igl9LCAvKiAxOTI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MjYiCX0sIC8qIDE5MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkyNyIJfSwgLyogMTkyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTI4Igl9LCAvKiAxOTI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MjkiCX0sIC8qIDE5MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkzMCIJfSwgLyogMTkzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTMxIgl9LCAvKiAxOTMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MzIiCX0sIC8qIDE5MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkzMyIJfSwgLyogMTkzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTM0Igl9LCAvKiAxOTM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MzUiCX0sIC8qIDE5MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkzNiIJfSwgLyogMTkzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTM3Igl9LCAvKiAxOTM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5MzgiCX0sIC8qIDE5MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTkzOSIJfSwgLyogMTkzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQwIgl9LCAvKiAxOTQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NDEiCX0sIC8qIDE5NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk0MiIJfSwgLyogMTk0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQzIgl9LCAvKiAxOTQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NDQiCX0sIC8qIDE5NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk0NSIJfSwgLyogMTk0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQ2Igl9LCAvKiAxOTQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NDciCX0sIC8qIDE5NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk0OCIJfSwgLyogMTk0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTQ5Igl9LCAvKiAxOTQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NTAiCX0sIC8qIDE5NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1MSIJfSwgLyogMTk1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTUyIgl9LCAvKiAxOTUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NTMiCX0sIC8qIDE5NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1NCIJfSwgLyogMTk1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTU1Igl9LCAvKiAxOTU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NTYiCX0sIC8qIDE5NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk1NyIJfSwgLyogMTk1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTU4Igl9LCAvKiAxOTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NTkiCX0sIC8qIDE5NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk2MCIJfSwgLyogMTk2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTYxIgl9LCAvKiAxOTYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NjIiCX0sIC8qIDE5NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk2MyIJfSwgLyogMTk2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTY0Igl9LCAvKiAxOTY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NjUiCX0sIC8qIDE5NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk2NiIJfSwgLyogMTk2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTY3Igl9LCAvKiAxOTY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NjgiCX0sIC8qIDE5NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk2OSIJfSwgLyogMTk2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTcwIgl9LCAvKiAxOTcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NzEiCX0sIC8qIDE5NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk3MiIJfSwgLyogMTk3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTczIgl9LCAvKiAxOTczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NzQiCX0sIC8qIDE5NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk3NSIJfSwgLyogMTk3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTc2Igl9LCAvKiAxOTc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5NzciCX0sIC8qIDE5NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk3OCIJfSwgLyogMTk3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTc5Igl9LCAvKiAxOTc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5ODAiCX0sIC8qIDE5ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4MSIJfSwgLyogMTk4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTgyIgl9LCAvKiAxOTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5ODMiCX0sIC8qIDE5ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4NCIJfSwgLyogMTk4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTg1Igl9LCAvKiAxOTg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5ODYiCX0sIC8qIDE5ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk4NyIJfSwgLyogMTk4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTg4Igl9LCAvKiAxOTg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5ODkiCX0sIC8qIDE5ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk5MCIJfSwgLyogMTk5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTkxIgl9LCAvKiAxOTkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OTIiCX0sIC8qIDE5OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk5MyIJfSwgLyogMTk5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTk0Igl9LCAvKiAxOTk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OTUiCX0sIC8qIDE5OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk5NiIJfSwgLyogMTk5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18xOTk3Igl9LCAvKiAxOTk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzE5OTgiCX0sIC8qIDE5OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMTk5OSIJfSwgLyogMTk5OSAqLyAvKiBlbmQgb2YgU1lTViAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3N5c2NhbGwiCX0sIC8qIDIwMDAgKi8gLyogc3RhcnQgb2YgQlNEIDQuMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2V4aXQiCX0sIC8qIDIwMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mb3JrIgl9LCAvKiAyMDAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcmVhZCIJfSwgLyogMjAwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3dyaXRlIgl9LCAvKiAyMDA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfb3BlbiIJfSwgLyogMjAwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2Nsb3NlIgl9LCAvKiAyMDA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfd2FpdCIJfSwgLyogMjAwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2NyZWF0Igl9LCAvKiAyMDA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbGluayIJfSwgLyogMjAwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3VubGluayIJfSwgLyogMjAxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2V4ZWMiCX0sIC8qIDIwMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19jaGRpciIJfSwgLyogMjAxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3RpbWUiCX0sIC8qIDIwMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19ta25vZCIJfSwgLyogMjAxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2NobW9kIgl9LCAvKiAyMDE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfY2hvd24iCX0sIC8qIDIwMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zYnJlYWsiCX0sIC8qIDIwMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRzdGF0Igl9LCAvKiAyMDE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbHNlZWsiCX0sIC8qIDIwMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRwaWQiCX0sIC8qIDIwMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRtb3VudCIJfSwgLyogMjAyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3Vtb3VudCIJfSwgLyogMjAyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldHVpZCIJfSwgLyogMjAyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldHVpZCIJfSwgLyogMjAyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3N0aW1lIgl9LCAvKiAyMDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcHRyYWNlIgl9LCAvKiAyMDI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfYWxhcm0iCX0sIC8qIDIwMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRmc3RhdCIJfSwgLyogMjAyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3BhdXNlIgl9LCAvKiAyMDI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdXRpbWUiCX0sIC8qIDIwMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zdHR5Igl9LCAvKiAyMDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ3R0eSIJfSwgLyogMjAzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2FjY2VzcyIJfSwgLyogMjAzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX25pY2UiCX0sIC8qIDIwMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mdGltZSIJfSwgLyogMjAzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3N5bmMiCX0sIC8qIDIwMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19raWxsIgl9LCAvKiAyMDM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3RhdCIJfSwgLyogMjAzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZHNldHBncnAiCX0sIC8qIDIwMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19sc3RhdCIJfSwgLyogMjA0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2R1cCIJfSwgLyogMjA0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3BpcGUiCX0sIC8qIDIwNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M190aW1lcyIJfSwgLyogMjA0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3Byb2ZpbCIJfSwgLyogMjA0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21zZ3N5cyIJfSwgLyogMjA0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldGdpZCIJfSwgLyogMjA0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldGdpZCIJfSwgLyogMjA0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NzaWciCX0sIC8qIDIwNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjA0OSIJfSwgLyogMjA0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDUwIgl9LCAvKiAyMDUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3lzYWNjdCIJfSwgLyogMjA1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3BoeXMiCX0sIC8qIDIwNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19sb2NrIgl9LCAvKiAyMDUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfaW9jdGwiCX0sIC8qIDIwNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19yZWJvb3QiCX0sIC8qIDIwNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19tcHhjaGFuIgl9LCAvKiAyMDU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc3ltbGluayIJfSwgLyogMjA1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3JlYWRsaW5rIgl9LCAvKiAyMDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZXhlY3ZlIgl9LCAvKiAyMDU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdW1hc2siCX0sIC8qIDIwNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19jaHJvb3QiCX0sIC8qIDIwNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mc3RhdCIJfSwgLyogMjA2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDYzIgl9LCAvKiAyMDYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0cGFnZXNpemUiCX0sIC8qIDIwNjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19tcmVtYXAiCX0sIC8qIDIwNjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M192Zm9yayIJfSwgLyogMjA2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3ZyZWFkIgl9LCAvKiAyMDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdndyaXRlIgl9LCAvKiAyMDY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2JyayIJfSwgLyogMjA2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NzdGsiCX0sIC8qIDIwNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19tbWFwIgl9LCAvKiAyMDcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdmFkdmlzZSIJfSwgLyogMjA3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX211bm1hcCIJfSwgLyogMjA3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21wcm90ZWN0Igl9LCAvKiAyMDc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbWFkdmlzZSIJfSwgLyogMjA3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3ZoYW5ndXAiCX0sIC8qIDIwNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M192bGltaXQiCX0sIC8qIDIwNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19taW5jb3JlIgl9LCAvKiAyMDc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0Z3JvdXBzIgl9LCAvKiAyMDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0Z3JvdXBzIgl9LCAvKiAyMDgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0cGdycCIJfSwgLyogMjA4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldHBncnAiCX0sIC8qIDIwODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXRpdGltZXIiCX0sIC8qIDIwODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M193YWl0MyIJfSwgLyogMjA4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3N3YXBvbiIJfSwgLyogMjA4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldGl0aW1lciIJfSwgLyogMjA4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldGhvc3RuYW1lIgl9LCAvKiAyMDg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0aG9zdG5hbWUiCX0sIC8qIDIwODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19nZXRkdGFibGVzaXplIgl9LCAvKiAyMDg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZHVwMiIJfSwgLyogMjA5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldGRvcHQiCX0sIC8qIDIwOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mY250bCIJfSwgLyogMjA5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NlbGVjdCIJfSwgLyogMjA5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldGRvcHQiCX0sIC8qIDIwOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mc3luYyIJfSwgLyogMjA5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldHByaW9yaXR5Igl9LCAvKiAyMDk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc29ja2V0Igl9LCAvKiAyMDk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfY29ubmVjdCIJfSwgLyogMjA5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZGFjY2VwdCIJfSwgLyogMjA5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldHByaW9yaXR5Igl9LCAvKiAyMTAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2VuZCIJfSwgLyogMjEwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3JlY3YiCX0sIC8qIDIxMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zaWdyZXR1cm4iCX0sIC8qIDIxMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19iaW5kIgl9LCAvKiAyMTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0c29ja29wdCIJfSwgLyogMjEwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2xpc3RlbiIJfSwgLyogMjEwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3Z0aW1lcyIJfSwgLyogMjEwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NpZ3ZlYyIJfSwgLyogMjEwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NpZ2Jsb2NrIgl9LCAvKiAyMTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2lnc2V0bWFzayIJfSwgLyogMjExMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NpZ3BhdXNlIgl9LCAvKiAyMTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2lnc3RhY2siCX0sIC8qIDIxMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRyZWN2bXNnIgl9LCAvKiAyMTEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfb2xkc2VuZG1zZyIJfSwgLyogMjExNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3Z0cmFjZSIJfSwgLyogMjExNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldHRpbWVvZmRheSIJfSwgLyogMjExNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldHJ1c2FnZSIJfSwgLyogMjExNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldHNvY2tvcHQiCX0sIC8qIDIxMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjExOSIJfSwgLyogMjExOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3JlYWR2Igl9LCAvKiAyMTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfd3JpdGV2Igl9LCAvKiAyMTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0dGltZW9mZGF5Igl9LCAvKiAyMTIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZmNob3duIgl9LCAvKiAyMTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZmNobW9kIgl9LCAvKiAyMTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfb2xkcmVjdmZyb20iCX0sIC8qIDIxMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zZXRyZXVpZCIJfSwgLyogMjEyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldHJlZ2lkIgl9LCAvKiAyMTI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcmVuYW1lIgl9LCAvKiAyMTI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfdHJ1bmNhdGUiCX0sIC8qIDIxMjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mdHJ1bmNhdGUiCX0sIC8qIDIxMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19mbG9jayIJfSwgLyogMjEzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NlbXN5cyIJfSwgLyogMjEzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NlbmR0byIJfSwgLyogMjEzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NodXRkb3duIgl9LCAvKiAyMTM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc29ja2V0cGFpciIJfSwgLyogMjEzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21rZGlyIgl9LCAvKiAyMTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcm1kaXIiCX0sIC8qIDIxMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M191dGltZXMiCX0sIC8qIDIxMzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19zaWdjbGVhbnVwIgl9LCAvKiAyMTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfYWRqdGltZSIJfSwgLyogMjE0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX29sZGdldHBlZXJuYW1lIgl9LCAvKiAyMTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0aG9zdGlkIgl9LCAvKiAyMTQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0aG9zdGlkIgl9LCAvKiAyMTQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0cmxpbWl0Igl9LCAvKiAyMTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2V0cmxpbWl0Igl9LCAvKiAyMTQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfa2lsbHBnIgl9LCAvKiAyMTQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2htc3lzIgl9LCAvKiAyMTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcXVvdGEiCX0sIC8qIDIxNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19xcXVvdGEiCX0sIC8qIDIxNDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRnZXRzb2NrbmFtZSIJfSwgLyogMjE1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3N5c21pcHMiCX0sIC8qIDIxNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19jYWNoZWZsdXNoIgl9LCAvKiAyMTUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfY2FjaGVjdGwiCX0sIC8qIDIxNTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19kZWJ1ZyIJfSwgLyogMjE1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTU1Igl9LCAvKiAyMTU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxNTYiCX0sIC8qIDIxNTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19uZnNfbW91bnQiCX0sIC8qIDIxNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19uZnNfc3ZjIgl9LCAvKiAyMTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0ZGlyZW50cmllcyIJfSwgLyogMjE1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3N0YXRmcyIJfSwgLyogMjE2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2ZzdGF0ZnMiCX0sIC8qIDIxNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M191bm1vdW50Igl9LCAvKiAyMTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfYXN5bmNfZGFlbW9uIgl9LCAvKiAyMTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfbmZzX2dldGZoIgl9LCAvKiAyMTY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0ZG9tYWlubmFtZSIJfSwgLyogMjE2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3NldGRvbWFpbm5hbWUiCX0sIC8qIDIxNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19wY2ZzX21vdW50Igl9LCAvKiAyMTY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcXVvdGFjdGwiCX0sIC8qIDIxNjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19vbGRleHBvcnRmcyIJfSwgLyogMjE2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3Ntb3VudCIJfSwgLyogMjE3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX21pcHNod2NvbmYiCX0sIC8qIDIxNzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19leHBvcnRmcyIJfSwgLyogMjE3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX25mc2ZoX29wZW4iCX0sIC8qIDIxNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19saWJhdHRhY2giCX0sIC8qIDIxNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19saWJkZXRhY2giCX0sIC8qIDIxNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hY2NlcHQiCX0sIC8qIDIxNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE3NyIJfSwgLyogMjE3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTc4Igl9LCAvKiAyMTc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfcmVjdm1zZyIJfSwgLyogMjE3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX3JlY3Zmcm9tIgl9LCAvKiAyMTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfc2VuZG1zZyIJfSwgLyogMjE4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2dldHBlZXJuYW1lIgl9LCAvKiAyMTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfZ2V0c29ja25hbWUiCX0sIC8qIDIxODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hcmVhZCIJfSwgLyogMjE4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2F3cml0ZSIJfSwgLyogMjE4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2xpc3RpbyIJfSwgLyogMjE4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImJzZDQzX2FjYW5jZWwiCX0sIC8qIDIxODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hc3RhdHVzIgl9LCAvKiAyMTg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiYnNkNDNfYXdhaXQiCX0sIC8qIDIxODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hcmVhZHYiCX0sIC8qIDIxOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJic2Q0M19hd3JpdGV2Igl9LCAvKiAyMTkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOTIiCX0sIC8qIDIxOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE5MyIJfSwgLyogMjE5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTk0Igl9LCAvKiAyMTk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOTUiCX0sIC8qIDIxOTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE5NiIJfSwgLyogMjE5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTk3Igl9LCAvKiAyMTk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIxOTgiCX0sIC8qIDIxOTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjE5OSIJfSwgLyogMjE5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjAwIgl9LCAvKiAyMjAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMDEiCX0sIC8qIDIyMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIwMiIJfSwgLyogMjIwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjAzIgl9LCAvKiAyMjAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMDQiCX0sIC8qIDIyMDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIwNSIJfSwgLyogMjIwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjA2Igl9LCAvKiAyMjA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMDciCX0sIC8qIDIyMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIwOCIJfSwgLyogMjIwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjA5Igl9LCAvKiAyMjA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMTAiCX0sIC8qIDIyMTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxMSIJfSwgLyogMjIxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjEyIgl9LCAvKiAyMjEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMTMiCX0sIC8qIDIyMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxNCIJfSwgLyogMjIxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjE1Igl9LCAvKiAyMjE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMTYiCX0sIC8qIDIyMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIxNyIJfSwgLyogMjIxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjE4Igl9LCAvKiAyMjE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMTkiCX0sIC8qIDIyMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIyMCIJfSwgLyogMjIyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIxIgl9LCAvKiAyMjIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMjIiCX0sIC8qIDIyMjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIyMyIJfSwgLyogMjIyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjI0Igl9LCAvKiAyMjI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMjUiCX0sIC8qIDIyMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIyNiIJfSwgLyogMjIyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjI3Igl9LCAvKiAyMjI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMjgiCX0sIC8qIDIyMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIyOSIJfSwgLyogMjIyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMwIgl9LCAvKiAyMjMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMzEiCX0sIC8qIDIyMzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIzMiIJfSwgLyogMjIzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMzIgl9LCAvKiAyMjMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMzQiCX0sIC8qIDIyMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIzNSIJfSwgLyogMjIzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjM2Igl9LCAvKiAyMjM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMzciCX0sIC8qIDIyMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjIzOCIJfSwgLyogMjIzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjM5Igl9LCAvKiAyMjM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNDAiCX0sIC8qIDIyNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0MSIJfSwgLyogMjI0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQyIgl9LCAvKiAyMjQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNDMiCX0sIC8qIDIyNDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0NCIJfSwgLyogMjI0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQ1Igl9LCAvKiAyMjQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNDYiCX0sIC8qIDIyNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI0NyIJfSwgLyogMjI0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQ4Igl9LCAvKiAyMjQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNDkiCX0sIC8qIDIyNDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI1MCIJfSwgLyogMjI1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjUxIgl9LCAvKiAyMjUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNTIiCX0sIC8qIDIyNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI1MyIJfSwgLyogMjI1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjU0Igl9LCAvKiAyMjU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNTUiCX0sIC8qIDIyNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI1NiIJfSwgLyogMjI1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjU3Igl9LCAvKiAyMjU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNTgiCX0sIC8qIDIyNTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI1OSIJfSwgLyogMjI1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYwIgl9LCAvKiAyMjYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNjEiCX0sIC8qIDIyNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI2MiIJfSwgLyogMjI2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYzIgl9LCAvKiAyMjYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNjQiCX0sIC8qIDIyNjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI2NSIJfSwgLyogMjI2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjY2Igl9LCAvKiAyMjY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNjciCX0sIC8qIDIyNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI2OCIJfSwgLyogMjI2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjY5Igl9LCAvKiAyMjY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNzAiCX0sIC8qIDIyNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3MSIJfSwgLyogMjI3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjcyIgl9LCAvKiAyMjcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNzMiCX0sIC8qIDIyNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3NCIJfSwgLyogMjI3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjc1Igl9LCAvKiAyMjc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNzYiCX0sIC8qIDIyNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI3NyIJfSwgLyogMjI3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjc4Igl9LCAvKiAyMjc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyNzkiCX0sIC8qIDIyNzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI4MCIJfSwgLyogMjI4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjgxIgl9LCAvKiAyMjgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyODIiCX0sIC8qIDIyODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI4MyIJfSwgLyogMjI4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjg0Igl9LCAvKiAyMjg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyODUiCX0sIC8qIDIyODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI4NiIJfSwgLyogMjI4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjg3Igl9LCAvKiAyMjg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyODgiCX0sIC8qIDIyODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI4OSIJfSwgLyogMjI4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkwIgl9LCAvKiAyMjkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOTEiCX0sIC8qIDIyOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI5MiIJfSwgLyogMjI5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkzIgl9LCAvKiAyMjkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOTQiCX0sIC8qIDIyOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI5NSIJfSwgLyogMjI5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjk2Igl9LCAvKiAyMjk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyOTciCX0sIC8qIDIyOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjI5OCIJfSwgLyogMjI5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjk5Igl9LCAvKiAyMjk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMDAiCX0sIC8qIDIzMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwMSIJfSwgLyogMjMwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzAyIgl9LCAvKiAyMzAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMDMiCX0sIC8qIDIzMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwNCIJfSwgLyogMjMwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzA1Igl9LCAvKiAyMzA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMDYiCX0sIC8qIDIzMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMwNyIJfSwgLyogMjMwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzA4Igl9LCAvKiAyMzA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMDkiCX0sIC8qIDIzMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMxMCIJfSwgLyogMjMxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzExIgl9LCAvKiAyMzExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMTIiCX0sIC8qIDIzMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMxMyIJfSwgLyogMjMxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzE0Igl9LCAvKiAyMzE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMTUiCX0sIC8qIDIzMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMxNiIJfSwgLyogMjMxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzE3Igl9LCAvKiAyMzE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMTgiCX0sIC8qIDIzMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMxOSIJfSwgLyogMjMxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIwIgl9LCAvKiAyMzIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMjEiCX0sIC8qIDIzMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMyMiIJfSwgLyogMjMyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIzIgl9LCAvKiAyMzIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMjQiCX0sIC8qIDIzMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMyNSIJfSwgLyogMjMyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzI2Igl9LCAvKiAyMzI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMjciCX0sIC8qIDIzMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMyOCIJfSwgLyogMjMyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzI5Igl9LCAvKiAyMzI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMzAiCX0sIC8qIDIzMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzMSIJfSwgLyogMjMzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzMyIgl9LCAvKiAyMzMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMzMiCX0sIC8qIDIzMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzNCIJfSwgLyogMjMzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzM1Igl9LCAvKiAyMzM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMzYiCX0sIC8qIDIzMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjMzNyIJfSwgLyogMjMzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzM4Igl9LCAvKiAyMzM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzMzkiCX0sIC8qIDIzMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM0MCIJfSwgLyogMjM0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQxIgl9LCAvKiAyMzQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNDIiCX0sIC8qIDIzNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM0MyIJfSwgLyogMjM0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQ0Igl9LCAvKiAyMzQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNDUiCX0sIC8qIDIzNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM0NiIJfSwgLyogMjM0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQ3Igl9LCAvKiAyMzQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNDgiCX0sIC8qIDIzNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM0OSIJfSwgLyogMjM0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzUwIgl9LCAvKiAyMzUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNTEiCX0sIC8qIDIzNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM1MiIJfSwgLyogMjM1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzUzIgl9LCAvKiAyMzUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNTQiCX0sIC8qIDIzNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM1NSIJfSwgLyogMjM1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzU2Igl9LCAvKiAyMzU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNTciCX0sIC8qIDIzNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM1OCIJfSwgLyogMjM1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzU5Igl9LCAvKiAyMzU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNjAiCX0sIC8qIDIzNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2MSIJfSwgLyogMjM2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzYyIgl9LCAvKiAyMzYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNjMiCX0sIC8qIDIzNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2NCIJfSwgLyogMjM2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzY1Igl9LCAvKiAyMzY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNjYiCX0sIC8qIDIzNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM2NyIJfSwgLyogMjM2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzY4Igl9LCAvKiAyMzY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNjkiCX0sIC8qIDIzNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM3MCIJfSwgLyogMjM3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzcxIgl9LCAvKiAyMzcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNzIiCX0sIC8qIDIzNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM3MyIJfSwgLyogMjM3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzc0Igl9LCAvKiAyMzc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNzUiCX0sIC8qIDIzNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM3NiIJfSwgLyogMjM3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzc3Igl9LCAvKiAyMzc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzNzgiCX0sIC8qIDIzNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM3OSIJfSwgLyogMjM3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzgwIgl9LCAvKiAyMzgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzODEiCX0sIC8qIDIzODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM4MiIJfSwgLyogMjM4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzgzIgl9LCAvKiAyMzgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzODQiCX0sIC8qIDIzODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM4NSIJfSwgLyogMjM4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzg2Igl9LCAvKiAyMzg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzODciCX0sIC8qIDIzODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM4OCIJfSwgLyogMjM4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzg5Igl9LCAvKiAyMzg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOTAiCX0sIC8qIDIzOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5MSIJfSwgLyogMjM5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzkyIgl9LCAvKiAyMzkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOTMiCX0sIC8qIDIzOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5NCIJfSwgLyogMjM5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzk1Igl9LCAvKiAyMzk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOTYiCX0sIC8qIDIzOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjM5NyIJfSwgLyogMjM5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzk4Igl9LCAvKiAyMzk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzIzOTkiCX0sIC8qIDIzOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQwMCIJfSwgLyogMjQwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDAxIgl9LCAvKiAyNDAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MDIiCX0sIC8qIDI0MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQwMyIJfSwgLyogMjQwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDA0Igl9LCAvKiAyNDA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MDUiCX0sIC8qIDI0MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQwNiIJfSwgLyogMjQwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDA3Igl9LCAvKiAyNDA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MDgiCX0sIC8qIDI0MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQwOSIJfSwgLyogMjQwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDEwIgl9LCAvKiAyNDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MTEiCX0sIC8qIDI0MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQxMiIJfSwgLyogMjQxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDEzIgl9LCAvKiAyNDEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MTQiCX0sIC8qIDI0MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQxNSIJfSwgLyogMjQxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDE2Igl9LCAvKiAyNDE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MTciCX0sIC8qIDI0MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQxOCIJfSwgLyogMjQxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDE5Igl9LCAvKiAyNDE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MjAiCX0sIC8qIDI0MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyMSIJfSwgLyogMjQyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDIyIgl9LCAvKiAyNDIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MjMiCX0sIC8qIDI0MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyNCIJfSwgLyogMjQyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDI1Igl9LCAvKiAyNDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MjYiCX0sIC8qIDI0MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQyNyIJfSwgLyogMjQyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDI4Igl9LCAvKiAyNDI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MjkiCX0sIC8qIDI0MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQzMCIJfSwgLyogMjQzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDMxIgl9LCAvKiAyNDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MzIiCX0sIC8qIDI0MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQzMyIJfSwgLyogMjQzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDM0Igl9LCAvKiAyNDM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MzUiCX0sIC8qIDI0MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQzNiIJfSwgLyogMjQzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDM3Igl9LCAvKiAyNDM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0MzgiCX0sIC8qIDI0MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQzOSIJfSwgLyogMjQzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQwIgl9LCAvKiAyNDQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NDEiCX0sIC8qIDI0NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0MiIJfSwgLyogMjQ0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQzIgl9LCAvKiAyNDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NDQiCX0sIC8qIDI0NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0NSIJfSwgLyogMjQ0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQ2Igl9LCAvKiAyNDQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NDciCX0sIC8qIDI0NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0OCIJfSwgLyogMjQ0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQ5Igl9LCAvKiAyNDQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NTAiCX0sIC8qIDI0NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1MSIJfSwgLyogMjQ1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDUyIgl9LCAvKiAyNDUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NTMiCX0sIC8qIDI0NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1NCIJfSwgLyogMjQ1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDU1Igl9LCAvKiAyNDU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NTYiCX0sIC8qIDI0NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1NyIJfSwgLyogMjQ1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDU4Igl9LCAvKiAyNDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NTkiCX0sIC8qIDI0NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2MCIJfSwgLyogMjQ2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDYxIgl9LCAvKiAyNDYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NjIiCX0sIC8qIDI0NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2MyIJfSwgLyogMjQ2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDY0Igl9LCAvKiAyNDY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NjUiCX0sIC8qIDI0NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2NiIJfSwgLyogMjQ2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDY3Igl9LCAvKiAyNDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NjgiCX0sIC8qIDI0NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2OSIJfSwgLyogMjQ2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDcwIgl9LCAvKiAyNDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NzEiCX0sIC8qIDI0NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3MiIJfSwgLyogMjQ3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDczIgl9LCAvKiAyNDczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NzQiCX0sIC8qIDI0NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3NSIJfSwgLyogMjQ3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDc2Igl9LCAvKiAyNDc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0NzciCX0sIC8qIDI0NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3OCIJfSwgLyogMjQ3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDc5Igl9LCAvKiAyNDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0ODAiCX0sIC8qIDI0ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4MSIJfSwgLyogMjQ4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDgyIgl9LCAvKiAyNDgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0ODMiCX0sIC8qIDI0ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4NCIJfSwgLyogMjQ4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDg1Igl9LCAvKiAyNDg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0ODYiCX0sIC8qIDI0ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4NyIJfSwgLyogMjQ4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDg4Igl9LCAvKiAyNDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0ODkiCX0sIC8qIDI0ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5MCIJfSwgLyogMjQ5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkxIgl9LCAvKiAyNDkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OTIiCX0sIC8qIDI0OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5MyIJfSwgLyogMjQ5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDk0Igl9LCAvKiAyNDk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OTUiCX0sIC8qIDI0OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5NiIJfSwgLyogMjQ5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDk3Igl9LCAvKiAyNDk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI0OTgiCX0sIC8qIDI0OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5OSIJfSwgLyogMjQ5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAwIgl9LCAvKiAyNTAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MDEiCX0sIC8qIDI1MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUwMiIJfSwgLyogMjUwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAzIgl9LCAvKiAyNTAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MDQiCX0sIC8qIDI1MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUwNSIJfSwgLyogMjUwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTA2Igl9LCAvKiAyNTA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MDciCX0sIC8qIDI1MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUwOCIJfSwgLyogMjUwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTA5Igl9LCAvKiAyNTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MTAiCX0sIC8qIDI1MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxMSIJfSwgLyogMjUxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTEyIgl9LCAvKiAyNTEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MTMiCX0sIC8qIDI1MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxNCIJfSwgLyogMjUxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTE1Igl9LCAvKiAyNTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MTYiCX0sIC8qIDI1MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUxNyIJfSwgLyogMjUxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTE4Igl9LCAvKiAyNTE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MTkiCX0sIC8qIDI1MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUyMCIJfSwgLyogMjUyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIxIgl9LCAvKiAyNTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MjIiCX0sIC8qIDI1MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUyMyIJfSwgLyogMjUyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTI0Igl9LCAvKiAyNTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MjUiCX0sIC8qIDI1MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUyNiIJfSwgLyogMjUyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTI3Igl9LCAvKiAyNTI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MjgiCX0sIC8qIDI1MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUyOSIJfSwgLyogMjUyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMwIgl9LCAvKiAyNTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MzEiCX0sIC8qIDI1MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUzMiIJfSwgLyogMjUzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMzIgl9LCAvKiAyNTMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MzQiCX0sIC8qIDI1MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUzNSIJfSwgLyogMjUzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTM2Igl9LCAvKiAyNTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MzciCX0sIC8qIDI1MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjUzOCIJfSwgLyogMjUzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTM5Igl9LCAvKiAyNTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NDAiCX0sIC8qIDI1NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0MSIJfSwgLyogMjU0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQyIgl9LCAvKiAyNTQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NDMiCX0sIC8qIDI1NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0NCIJfSwgLyogMjU0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQ1Igl9LCAvKiAyNTQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NDYiCX0sIC8qIDI1NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU0NyIJfSwgLyogMjU0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQ4Igl9LCAvKiAyNTQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NDkiCX0sIC8qIDI1NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU1MCIJfSwgLyogMjU1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTUxIgl9LCAvKiAyNTUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NTIiCX0sIC8qIDI1NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU1MyIJfSwgLyogMjU1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTU0Igl9LCAvKiAyNTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NTUiCX0sIC8qIDI1NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU1NiIJfSwgLyogMjU1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTU3Igl9LCAvKiAyNTU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NTgiCX0sIC8qIDI1NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU1OSIJfSwgLyogMjU1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTYwIgl9LCAvKiAyNTYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NjEiCX0sIC8qIDI1NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU2MiIJfSwgLyogMjU2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTYzIgl9LCAvKiAyNTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NjQiCX0sIC8qIDI1NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU2NSIJfSwgLyogMjU2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTY2Igl9LCAvKiAyNTY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NjciCX0sIC8qIDI1NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU2OCIJfSwgLyogMjU2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTY5Igl9LCAvKiAyNTY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NzAiCX0sIC8qIDI1NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3MSIJfSwgLyogMjU3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTcyIgl9LCAvKiAyNTcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NzMiCX0sIC8qIDI1NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3NCIJfSwgLyogMjU3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTc1Igl9LCAvKiAyNTc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NzYiCX0sIC8qIDI1NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU3NyIJfSwgLyogMjU3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTc4Igl9LCAvKiAyNTc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1NzkiCX0sIC8qIDI1NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU4MCIJfSwgLyogMjU4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgxIgl9LCAvKiAyNTgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1ODIiCX0sIC8qIDI1ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU4MyIJfSwgLyogMjU4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTg0Igl9LCAvKiAyNTg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1ODUiCX0sIC8qIDI1ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU4NiIJfSwgLyogMjU4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTg3Igl9LCAvKiAyNTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1ODgiCX0sIC8qIDI1ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU4OSIJfSwgLyogMjU4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTkwIgl9LCAvKiAyNTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OTEiCX0sIC8qIDI1OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU5MiIJfSwgLyogMjU5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTkzIgl9LCAvKiAyNTkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OTQiCX0sIC8qIDI1OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU5NSIJfSwgLyogMjU5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTk2Igl9LCAvKiAyNTk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1OTciCX0sIC8qIDI1OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjU5OCIJfSwgLyogMjU5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTk5Igl9LCAvKiAyNTk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MDAiCX0sIC8qIDI2MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwMSIJfSwgLyogMjYwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjAyIgl9LCAvKiAyNjAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MDMiCX0sIC8qIDI2MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwNCIJfSwgLyogMjYwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjA1Igl9LCAvKiAyNjA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MDYiCX0sIC8qIDI2MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYwNyIJfSwgLyogMjYwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjA4Igl9LCAvKiAyNjA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MDkiCX0sIC8qIDI2MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYxMCIJfSwgLyogMjYxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjExIgl9LCAvKiAyNjExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MTIiCX0sIC8qIDI2MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYxMyIJfSwgLyogMjYxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjE0Igl9LCAvKiAyNjE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MTUiCX0sIC8qIDI2MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYxNiIJfSwgLyogMjYxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjE3Igl9LCAvKiAyNjE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MTgiCX0sIC8qIDI2MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYxOSIJfSwgLyogMjYxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjIwIgl9LCAvKiAyNjIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MjEiCX0sIC8qIDI2MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYyMiIJfSwgLyogMjYyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjIzIgl9LCAvKiAyNjIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MjQiCX0sIC8qIDI2MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYyNSIJfSwgLyogMjYyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjI2Igl9LCAvKiAyNjI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MjciCX0sIC8qIDI2MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYyOCIJfSwgLyogMjYyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjI5Igl9LCAvKiAyNjI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MzAiCX0sIC8qIDI2MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzMSIJfSwgLyogMjYzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMyIgl9LCAvKiAyNjMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MzMiCX0sIC8qIDI2MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzNCIJfSwgLyogMjYzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjM1Igl9LCAvKiAyNjM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MzYiCX0sIC8qIDI2MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjYzNyIJfSwgLyogMjYzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjM4Igl9LCAvKiAyNjM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2MzkiCX0sIC8qIDI2MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY0MCIJfSwgLyogMjY0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQxIgl9LCAvKiAyNjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NDIiCX0sIC8qIDI2NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY0MyIJfSwgLyogMjY0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQ0Igl9LCAvKiAyNjQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NDUiCX0sIC8qIDI2NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY0NiIJfSwgLyogMjY0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQ3Igl9LCAvKiAyNjQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NDgiCX0sIC8qIDI2NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY0OSIJfSwgLyogMjY0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUwIgl9LCAvKiAyNjUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NTEiCX0sIC8qIDI2NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY1MiIJfSwgLyogMjY1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUzIgl9LCAvKiAyNjUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NTQiCX0sIC8qIDI2NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY1NSIJfSwgLyogMjY1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjU2Igl9LCAvKiAyNjU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NTciCX0sIC8qIDI2NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY1OCIJfSwgLyogMjY1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjU5Igl9LCAvKiAyNjU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NjAiCX0sIC8qIDI2NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2MSIJfSwgLyogMjY2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYyIgl9LCAvKiAyNjYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NjMiCX0sIC8qIDI2NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2NCIJfSwgLyogMjY2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjY1Igl9LCAvKiAyNjY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NjYiCX0sIC8qIDI2NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY2NyIJfSwgLyogMjY2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjY4Igl9LCAvKiAyNjY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NjkiCX0sIC8qIDI2NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY3MCIJfSwgLyogMjY3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjcxIgl9LCAvKiAyNjcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NzIiCX0sIC8qIDI2NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY3MyIJfSwgLyogMjY3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjc0Igl9LCAvKiAyNjc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NzUiCX0sIC8qIDI2NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY3NiIJfSwgLyogMjY3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjc3Igl9LCAvKiAyNjc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2NzgiCX0sIC8qIDI2NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY3OSIJfSwgLyogMjY3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgwIgl9LCAvKiAyNjgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2ODEiCX0sIC8qIDI2ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY4MiIJfSwgLyogMjY4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgzIgl9LCAvKiAyNjgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2ODQiCX0sIC8qIDI2ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY4NSIJfSwgLyogMjY4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjg2Igl9LCAvKiAyNjg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2ODciCX0sIC8qIDI2ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY4OCIJfSwgLyogMjY4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjg5Igl9LCAvKiAyNjg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OTAiCX0sIC8qIDI2OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5MSIJfSwgLyogMjY5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkyIgl9LCAvKiAyNjkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OTMiCX0sIC8qIDI2OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5NCIJfSwgLyogMjY5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjk1Igl9LCAvKiAyNjk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OTYiCX0sIC8qIDI2OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjY5NyIJfSwgLyogMjY5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjk4Igl9LCAvKiAyNjk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI2OTkiCX0sIC8qIDI2OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcwMCIJfSwgLyogMjcwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAxIgl9LCAvKiAyNzAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MDIiCX0sIC8qIDI3MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcwMyIJfSwgLyogMjcwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzA0Igl9LCAvKiAyNzA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MDUiCX0sIC8qIDI3MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcwNiIJfSwgLyogMjcwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzA3Igl9LCAvKiAyNzA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MDgiCX0sIC8qIDI3MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcwOSIJfSwgLyogMjcwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEwIgl9LCAvKiAyNzEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MTEiCX0sIC8qIDI3MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcxMiIJfSwgLyogMjcxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEzIgl9LCAvKiAyNzEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MTQiCX0sIC8qIDI3MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcxNSIJfSwgLyogMjcxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzE2Igl9LCAvKiAyNzE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MTciCX0sIC8qIDI3MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcxOCIJfSwgLyogMjcxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzE5Igl9LCAvKiAyNzE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MjAiCX0sIC8qIDI3MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyMSIJfSwgLyogMjcyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIyIgl9LCAvKiAyNzIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MjMiCX0sIC8qIDI3MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyNCIJfSwgLyogMjcyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzI1Igl9LCAvKiAyNzI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MjYiCX0sIC8qIDI3MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjcyNyIJfSwgLyogMjcyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzI4Igl9LCAvKiAyNzI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MjkiCX0sIC8qIDI3MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjczMCIJfSwgLyogMjczMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMxIgl9LCAvKiAyNzMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MzIiCX0sIC8qIDI3MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjczMyIJfSwgLyogMjczMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzM0Igl9LCAvKiAyNzM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MzUiCX0sIC8qIDI3MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjczNiIJfSwgLyogMjczNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzM3Igl9LCAvKiAyNzM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3MzgiCX0sIC8qIDI3MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjczOSIJfSwgLyogMjczOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQwIgl9LCAvKiAyNzQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NDEiCX0sIC8qIDI3NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc0MiIJfSwgLyogMjc0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQzIgl9LCAvKiAyNzQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NDQiCX0sIC8qIDI3NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc0NSIJfSwgLyogMjc0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQ2Igl9LCAvKiAyNzQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NDciCX0sIC8qIDI3NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc0OCIJfSwgLyogMjc0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQ5Igl9LCAvKiAyNzQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NTAiCX0sIC8qIDI3NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1MSIJfSwgLyogMjc1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUyIgl9LCAvKiAyNzUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NTMiCX0sIC8qIDI3NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1NCIJfSwgLyogMjc1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzU1Igl9LCAvKiAyNzU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NTYiCX0sIC8qIDI3NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc1NyIJfSwgLyogMjc1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzU4Igl9LCAvKiAyNzU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NTkiCX0sIC8qIDI3NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc2MCIJfSwgLyogMjc2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYxIgl9LCAvKiAyNzYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NjIiCX0sIC8qIDI3NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc2MyIJfSwgLyogMjc2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzY0Igl9LCAvKiAyNzY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NjUiCX0sIC8qIDI3NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc2NiIJfSwgLyogMjc2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzY3Igl9LCAvKiAyNzY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NjgiCX0sIC8qIDI3NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc2OSIJfSwgLyogMjc2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzcwIgl9LCAvKiAyNzcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NzEiCX0sIC8qIDI3NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc3MiIJfSwgLyogMjc3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzczIgl9LCAvKiAyNzczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NzQiCX0sIC8qIDI3NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc3NSIJfSwgLyogMjc3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzc2Igl9LCAvKiAyNzc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3NzciCX0sIC8qIDI3NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc3OCIJfSwgLyogMjc3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzc5Igl9LCAvKiAyNzc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3ODAiCX0sIC8qIDI3ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4MSIJfSwgLyogMjc4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgyIgl9LCAvKiAyNzgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3ODMiCX0sIC8qIDI3ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4NCIJfSwgLyogMjc4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzg1Igl9LCAvKiAyNzg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3ODYiCX0sIC8qIDI3ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc4NyIJfSwgLyogMjc4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzg4Igl9LCAvKiAyNzg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3ODkiCX0sIC8qIDI3ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc5MCIJfSwgLyogMjc5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkxIgl9LCAvKiAyNzkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OTIiCX0sIC8qIDI3OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc5MyIJfSwgLyogMjc5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzk0Igl9LCAvKiAyNzk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OTUiCX0sIC8qIDI3OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc5NiIJfSwgLyogMjc5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzk3Igl9LCAvKiAyNzk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI3OTgiCX0sIC8qIDI3OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjc5OSIJfSwgLyogMjc5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAwIgl9LCAvKiAyODAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MDEiCX0sIC8qIDI4MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgwMiIJfSwgLyogMjgwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAzIgl9LCAvKiAyODAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MDQiCX0sIC8qIDI4MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgwNSIJfSwgLyogMjgwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODA2Igl9LCAvKiAyODA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MDciCX0sIC8qIDI4MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgwOCIJfSwgLyogMjgwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODA5Igl9LCAvKiAyODA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MTAiCX0sIC8qIDI4MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxMSIJfSwgLyogMjgxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEyIgl9LCAvKiAyODEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MTMiCX0sIC8qIDI4MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxNCIJfSwgLyogMjgxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODE1Igl9LCAvKiAyODE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MTYiCX0sIC8qIDI4MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgxNyIJfSwgLyogMjgxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODE4Igl9LCAvKiAyODE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MTkiCX0sIC8qIDI4MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgyMCIJfSwgLyogMjgyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIxIgl9LCAvKiAyODIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MjIiCX0sIC8qIDI4MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgyMyIJfSwgLyogMjgyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODI0Igl9LCAvKiAyODI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MjUiCX0sIC8qIDI4MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgyNiIJfSwgLyogMjgyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODI3Igl9LCAvKiAyODI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MjgiCX0sIC8qIDI4MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgyOSIJfSwgLyogMjgyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMwIgl9LCAvKiAyODMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MzEiCX0sIC8qIDI4MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgzMiIJfSwgLyogMjgzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMzIgl9LCAvKiAyODMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MzQiCX0sIC8qIDI4MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgzNSIJfSwgLyogMjgzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODM2Igl9LCAvKiAyODM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4MzciCX0sIC8qIDI4MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjgzOCIJfSwgLyogMjgzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODM5Igl9LCAvKiAyODM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NDAiCX0sIC8qIDI4NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0MSIJfSwgLyogMjg0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQyIgl9LCAvKiAyODQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NDMiCX0sIC8qIDI4NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0NCIJfSwgLyogMjg0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQ1Igl9LCAvKiAyODQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NDYiCX0sIC8qIDI4NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg0NyIJfSwgLyogMjg0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQ4Igl9LCAvKiAyODQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NDkiCX0sIC8qIDI4NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg1MCIJfSwgLyogMjg1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUxIgl9LCAvKiAyODUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NTIiCX0sIC8qIDI4NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg1MyIJfSwgLyogMjg1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODU0Igl9LCAvKiAyODU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NTUiCX0sIC8qIDI4NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg1NiIJfSwgLyogMjg1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODU3Igl9LCAvKiAyODU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NTgiCX0sIC8qIDI4NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg1OSIJfSwgLyogMjg1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYwIgl9LCAvKiAyODYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NjEiCX0sIC8qIDI4NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg2MiIJfSwgLyogMjg2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYzIgl9LCAvKiAyODYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NjQiCX0sIC8qIDI4NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg2NSIJfSwgLyogMjg2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODY2Igl9LCAvKiAyODY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NjciCX0sIC8qIDI4NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg2OCIJfSwgLyogMjg2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODY5Igl9LCAvKiAyODY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NzAiCX0sIC8qIDI4NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3MSIJfSwgLyogMjg3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODcyIgl9LCAvKiAyODcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NzMiCX0sIC8qIDI4NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3NCIJfSwgLyogMjg3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODc1Igl9LCAvKiAyODc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NzYiCX0sIC8qIDI4NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg3NyIJfSwgLyogMjg3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODc4Igl9LCAvKiAyODc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NzkiCX0sIC8qIDI4NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg4MCIJfSwgLyogMjg4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgxIgl9LCAvKiAyODgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4ODIiCX0sIC8qIDI4ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg4MyIJfSwgLyogMjg4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODg0Igl9LCAvKiAyODg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4ODUiCX0sIC8qIDI4ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg4NiIJfSwgLyogMjg4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODg3Igl9LCAvKiAyODg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4ODgiCX0sIC8qIDI4ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg4OSIJfSwgLyogMjg4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkwIgl9LCAvKiAyODkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OTEiCX0sIC8qIDI4OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg5MiIJfSwgLyogMjg5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkzIgl9LCAvKiAyODkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OTQiCX0sIC8qIDI4OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg5NSIJfSwgLyogMjg5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODk2Igl9LCAvKiAyODk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OTciCX0sIC8qIDI4OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjg5OCIJfSwgLyogMjg5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODk5Igl9LCAvKiAyODk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MDAiCX0sIC8qIDI5MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwMSIJfSwgLyogMjkwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAyIgl9LCAvKiAyOTAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MDMiCX0sIC8qIDI5MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwNCIJfSwgLyogMjkwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTA1Igl9LCAvKiAyOTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MDYiCX0sIC8qIDI5MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkwNyIJfSwgLyogMjkwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTA4Igl9LCAvKiAyOTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MDkiCX0sIC8qIDI5MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkxMCIJfSwgLyogMjkxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTExIgl9LCAvKiAyOTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MTIiCX0sIC8qIDI5MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkxMyIJfSwgLyogMjkxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTE0Igl9LCAvKiAyOTE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MTUiCX0sIC8qIDI5MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkxNiIJfSwgLyogMjkxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTE3Igl9LCAvKiAyOTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MTgiCX0sIC8qIDI5MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkxOSIJfSwgLyogMjkxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIwIgl9LCAvKiAyOTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MjEiCX0sIC8qIDI5MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkyMiIJfSwgLyogMjkyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIzIgl9LCAvKiAyOTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MjQiCX0sIC8qIDI5MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkyNSIJfSwgLyogMjkyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTI2Igl9LCAvKiAyOTI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MjciCX0sIC8qIDI5MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkyOCIJfSwgLyogMjkyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTI5Igl9LCAvKiAyOTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MzAiCX0sIC8qIDI5MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzMSIJfSwgLyogMjkzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMyIgl9LCAvKiAyOTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MzMiCX0sIC8qIDI5MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzNCIJfSwgLyogMjkzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTM1Igl9LCAvKiAyOTM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MzYiCX0sIC8qIDI5MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjkzNyIJfSwgLyogMjkzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTM4Igl9LCAvKiAyOTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MzkiCX0sIC8qIDI5MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk0MCIJfSwgLyogMjk0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQxIgl9LCAvKiAyOTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NDIiCX0sIC8qIDI5NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk0MyIJfSwgLyogMjk0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQ0Igl9LCAvKiAyOTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NDUiCX0sIC8qIDI5NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk0NiIJfSwgLyogMjk0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQ3Igl9LCAvKiAyOTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NDgiCX0sIC8qIDI5NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk0OSIJfSwgLyogMjk0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUwIgl9LCAvKiAyOTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NTEiCX0sIC8qIDI5NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk1MiIJfSwgLyogMjk1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUzIgl9LCAvKiAyOTUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NTQiCX0sIC8qIDI5NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk1NSIJfSwgLyogMjk1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTU2Igl9LCAvKiAyOTU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NTciCX0sIC8qIDI5NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk1OCIJfSwgLyogMjk1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTU5Igl9LCAvKiAyOTU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NjAiCX0sIC8qIDI5NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2MSIJfSwgLyogMjk2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYyIgl9LCAvKiAyOTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NjMiCX0sIC8qIDI5NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2NCIJfSwgLyogMjk2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTY1Igl9LCAvKiAyOTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NjYiCX0sIC8qIDI5NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk2NyIJfSwgLyogMjk2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTY4Igl9LCAvKiAyOTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NjkiCX0sIC8qIDI5NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk3MCIJfSwgLyogMjk3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTcxIgl9LCAvKiAyOTcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NzIiCX0sIC8qIDI5NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk3MyIJfSwgLyogMjk3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTc0Igl9LCAvKiAyOTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NzUiCX0sIC8qIDI5NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk3NiIJfSwgLyogMjk3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTc3Igl9LCAvKiAyOTc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NzgiCX0sIC8qIDI5NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk3OSIJfSwgLyogMjk3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgwIgl9LCAvKiAyOTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5ODEiCX0sIC8qIDI5ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk4MiIJfSwgLyogMjk4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgzIgl9LCAvKiAyOTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5ODQiCX0sIC8qIDI5ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk4NSIJfSwgLyogMjk4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTg2Igl9LCAvKiAyOTg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5ODciCX0sIC8qIDI5ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk4OCIJfSwgLyogMjk4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTg5Igl9LCAvKiAyOTg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OTAiCX0sIC8qIDI5OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5MSIJfSwgLyogMjk5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkyIgl9LCAvKiAyOTkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OTMiCX0sIC8qIDI5OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5NCIJfSwgLyogMjk5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTk1Igl9LCAvKiAyOTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OTYiCX0sIC8qIDI5OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMjk5NyIJfSwgLyogMjk5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTk4Igl9LCAvKiAyOTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OTkiCX0sIC8qIDI5OTkgKi8gLyogZW5kIG9mIEJTRCA0LjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zeXNjYWxsIgl9LCAvKiAzMDAwICovIC8qIHN0YXJ0IG9mIFBPU0lYICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZXhpdCIJfSwgLyogMzAwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2ZvcmsiCX0sIC8qIDMwMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZWFkIgl9LCAvKiAzMDAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfd3JpdGUiCX0sIC8qIDMwMDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9vcGVuIgl9LCAvKiAzMDA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY2xvc2UiCX0sIC8qIDMwMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF93YWl0Igl9LCAvKiAzMDA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY3JlYXQiCX0sIC8qIDMwMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9saW5rIgl9LCAvKiAzMDA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfdW5saW5rIgl9LCAvKiAzMDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZXhlYyIJfSwgLyogMzAxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2NoZGlyIgl9LCAvKiAzMDEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ3RpbWUiCX0sIC8qIDMwMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9ta25vZCIJfSwgLyogMzAxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2NobW9kIgl9LCAvKiAzMDE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY2hvd24iCX0sIC8qIDMwMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zYnJlYWsiCX0sIC8qIDMwMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zdGF0Igl9LCAvKiAzMDE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbHNlZWsiCX0sIC8qIDMwMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRwaWQiCX0sIC8qIDMwMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9tb3VudCIJfSwgLyogMzAyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3Vtb3VudCIJfSwgLyogMzAyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldHVpZCIJfSwgLyogMzAyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHVpZCIJfSwgLyogMzAyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N0aW1lIgl9LCAvKiAzMDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcHRyYWNlIgl9LCAvKiAzMDI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfYWxhcm0iCX0sIC8qIDMwMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9mc3RhdCIJfSwgLyogMzAyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3BhdXNlIgl9LCAvKiAzMDI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfdXRpbWUiCX0sIC8qIDMwMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zdHR5Igl9LCAvKiAzMDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ3R0eSIJfSwgLyogMzAzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2FjY2VzcyIJfSwgLyogMzAzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X25pY2UiCX0sIC8qIDMwMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zdGF0ZnMiCX0sIC8qIDMwMzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zeW5jIgl9LCAvKiAzMDM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfa2lsbCIJfSwgLyogMzAzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2ZzdGF0ZnMiCX0sIC8qIDMwMzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRwZ3JwIgl9LCAvKiAzMDM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc3lzc2dpIgl9LCAvKiAzMDQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZHVwIgl9LCAvKiAzMDQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcGlwZSIJfSwgLyogMzA0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3RpbWVzIgl9LCAvKiAzMDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcHJvZmlsIgl9LCAvKiAzMDQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbG9jayIJfSwgLyogMzA0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldGdpZCIJfSwgLyogMzA0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldGdpZCIJfSwgLyogMzA0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NpZyIJfSwgLyogMzA0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X21zZ3N5cyIJfSwgLyogMzA0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3N5c21pcHMiCX0sIC8qIDMwNTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zeXNhY2N0Igl9LCAvKiAzMDUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2htc3lzIgl9LCAvKiAzMDUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2Vtc3lzIgl9LCAvKiAzMDUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfaW9jdGwiCX0sIC8qIDMwNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF91YWRtaW4iCX0sIC8qIDMwNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9leGNoIgl9LCAvKiAzMDU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfdXRzc3lzIgl9LCAvKiAzMDU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNTgiLAl9LCAvKiAzMDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZXhlY2UiCX0sIC8qIDMwNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF91bWFzayIJfSwgLyogMzA2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2Nocm9vdCIJfSwgLyogMzA2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2ZjbnRsIgl9LCAvKiAzMDYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfdWxpbWl0Igl9LCAvKiAzMDYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNjQiLAl9LCAvKiAzMDY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNjUiLAl9LCAvKiAzMDY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNjYiLAl9LCAvKiAzMDY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNjciLAl9LCAvKiAzMDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNjgiLAl9LCAvKiAzMDY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNjkiLAl9LCAvKiAzMDY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfYWR2ZnMiCX0sIC8qIDMwNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF91bmFkdmZzIgl9LCAvKiAzMDcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcm1vdW50Igl9LCAvKiAzMDcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcnVtb3VudCIJfSwgLyogMzA3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3Jmc3RhcnQiCX0sIC8qIDMwNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzA3NSIsCX0sIC8qIDMwNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZGVidWciCX0sIC8qIDMwNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZnN0b3AiCX0sIC8qIDMwNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZnN5cyIJfSwgLyogMzA3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3JtZGlyIgl9LCAvKiAzMDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbWtkaXIiCX0sIC8qIDMwODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRkZW50cyIJfSwgLyogMzA4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NnaW5hcCIJfSwgLyogMzA4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NnaWtvcHQiCX0sIC8qIDMwODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zeXNmcyIJfSwgLyogMzA4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldG1zZyIJfSwgLyogMzA4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3B1dG1zZyIJfSwgLyogMzA4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3BvbGwiCX0sIC8qIDMwODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zaWdyZXR1cm4iCX0sIC8qIDMwODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9hY2NlcHQiCX0sIC8qIDMwODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9iaW5kIgl9LCAvKiAzMDkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY29ubmVjdCIJfSwgLyogMzA5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldGhvc3RpZCIJfSwgLyogMzA5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldHBlZXJuYW1lIgl9LCAvKiAzMDkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0c29ja25hbWUiCX0sIC8qIDMwOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRzb2Nrb3B0Igl9LCAvKiAzMDk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfbGlzdGVuIgl9LCAvKiAzMDk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcmVjdiIJfSwgLyogMzA5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3JlY3Zmcm9tIgl9LCAvKiAzMDk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcmVjdm1zZyIJfSwgLyogMzA5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NlbGVjdCIJfSwgLyogMzEwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NlbmQiCX0sIC8qIDMxMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZW5kbXNnIgl9LCAvKiAzMTAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2VuZHRvIgl9LCAvKiAzMTAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0aG9zdGlkIgl9LCAvKiAzMTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0c29ja29wdCIJfSwgLyogMzEwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NodXRkb3duIgl9LCAvKiAzMTA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc29ja2V0Igl9LCAvKiAzMTA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZ2V0aG9zdG5hbWUiCX0sIC8qIDMxMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRob3N0bmFtZSIJfSwgLyogMzEwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldGRvbWFpbm5hbWUiCX0sIC8qIDMxMTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRkb21haW5uYW1lIgl9LCAvKiAzMTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfdHJ1bmNhdGUiCX0sIC8qIDMxMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9mdHJ1bmNhdGUiCX0sIC8qIDMxMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZW5hbWUiCX0sIC8qIDMxMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zeW1saW5rIgl9LCAvKiAzMTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfcmVhZGxpbmsiCX0sIC8qIDMxMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9sc3RhdCIJfSwgLyogMzExNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X25mc19tb3VudCIJfSwgLyogMzExOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X25mc19zdmMiCX0sIC8qIDMxMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9uZnNfZ2V0ZmgiCX0sIC8qIDMxMjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9hc3luY19kYWVtb24iCX0sIC8qIDMxMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9leHBvcnRmcyIJfSwgLyogMzEyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9zZXRyZWdpZCIJfSwgLyogMzEyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9zZXRyZXVpZCIJfSwgLyogMzEyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldGl0aW1lciIJfSwgLyogMzEyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldGl0aW1lciIJfSwgLyogMzEyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2FkanRpbWUiCX0sIC8qIDMxMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfYnNkZ2V0dGltZSIJfSwgLyogMzEyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9zcHJvYyIJfSwgLyogMzEyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9wcmN0bCIJfSwgLyogMzEzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9ibGtwcm9jIgl9LCAvKiAzMTMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxMzIiLAl9LCAvKiAzMTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX3NnaWdzYyIJfSwgLyogMzEzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9tbWFwIgl9LCAvKiAzMTM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX211bm1hcCIJfSwgLyogMzEzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9tcHJvdGVjdCIJfSwgLyogMzEzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9tc3luYyIJfSwgLyogMzEzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9tYWR2aXNlIgl9LCAvKiAzMTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX21waW4iCX0sIC8qIDMxMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfZ2V0cGFnZXNpemUiCX0sIC8qIDMxNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9TR0lfbGliYXR0YWNoIgl9LCAvKiAzMTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX2xpYmRldGFjaCIJfSwgLyogMzE0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X1NHSV9nZXRwZ3JwIgl9LCAvKiAzMTQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfU0dJX3NldHBncnAiCX0sIC8qIDMxNDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE0NSIsCX0sIC8qIDMxNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE0NiIsCX0sIC8qIDMxNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE0NyIsCX0sIC8qIDMxNDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE0OCIsCX0sIC8qIDMxNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzE0OSIsCX0sIC8qIDMxNDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9jYWNoZWZsdXNoIgl9LCAvKiAzMTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfY2FjaGVjdGwiCX0sIC8qIDMxNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9mY2hvd24iCX0sIC8qIDMxNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9mY2htb2QiCX0sIC8qIDMxNTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF93YWl0MyIJfSwgLyogMzE1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X21tYXAiCX0sIC8qIDMxNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9tdW5tYXAiCX0sIC8qIDMxNTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9tYWR2aXNlIgl9LCAvKiAzMTU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfQlNEX2dldHBhZ2VzaXplIgl9LCAvKiAzMTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfc2V0cmV1aWQiCX0sIC8qIDMxNTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRyZWdpZCIJfSwgLyogMzE2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldHBnaWQiCX0sIC8qIDMxNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRncm91cHMiCX0sIC8qIDMxNjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRncm91cHMiCX0sIC8qIDMxNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXR0aW1lb2ZkYXkiCX0sIC8qIDMxNjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRydXNhZ2UiCX0sIC8qIDMxNjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9nZXRybGltaXQiCX0sIC8qIDMxNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zZXRybGltaXQiCX0sIC8qIDMxNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF93YWl0cGlkIgl9LCAvKiAzMTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkicG9zaXhfZHVwMiIJfSwgLyogMzE2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTcwIiwJfSwgLyogMzE3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTcxIiwJfSwgLyogMzE3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTcyIiwJfSwgLyogMzE3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTczIiwJfSwgLyogMzE3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTc0IiwJfSwgLyogMzE3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTc1IiwJfSwgLyogMzE3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTc2IiwJfSwgLyogMzE3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTc3IiwJfSwgLyogMzE3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTc4IiwJfSwgLyogMzE3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTc5IiwJfSwgLyogMzE3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgwIiwJfSwgLyogMzE4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgxIiwJfSwgLyogMzE4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgyIiwJfSwgLyogMzE4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgzIiwJfSwgLyogMzE4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTg0IiwJfSwgLyogMzE4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTg1IiwJfSwgLyogMzE4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTg2IiwJfSwgLyogMzE4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTg3IiwJfSwgLyogMzE4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTg4IiwJfSwgLyogMzE4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTg5IiwJfSwgLyogMzE4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkwIiwJfSwgLyogMzE5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkxIiwJfSwgLyogMzE5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkyIiwJfSwgLyogMzE5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkzIiwJfSwgLyogMzE5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTk0IiwJfSwgLyogMzE5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTk1IiwJfSwgLyogMzE5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTk2IiwJfSwgLyogMzE5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTk3IiwJfSwgLyogMzE5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTk4IiwJfSwgLyogMzE5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTk5IiwJfSwgLyogMzE5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjAwIiwJfSwgLyogMzIwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjAxIiwJfSwgLyogMzIwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjAyIiwJfSwgLyogMzIwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjAzIiwJfSwgLyogMzIwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjA0IiwJfSwgLyogMzIwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjA1IiwJfSwgLyogMzIwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjA2IiwJfSwgLyogMzIwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjA3IiwJfSwgLyogMzIwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjA4IiwJfSwgLyogMzIwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjA5IiwJfSwgLyogMzIwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjEwIiwJfSwgLyogMzIxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjExIiwJfSwgLyogMzIxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjEyIiwJfSwgLyogMzIxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjEzIiwJfSwgLyogMzIxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjE0IiwJfSwgLyogMzIxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjE1IiwJfSwgLyogMzIxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjE2IiwJfSwgLyogMzIxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjE3IiwJfSwgLyogMzIxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjE4IiwJfSwgLyogMzIxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjE5IiwJfSwgLyogMzIxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjIwIiwJfSwgLyogMzIyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjIxIiwJfSwgLyogMzIyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjIyIiwJfSwgLyogMzIyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjIzIiwJfSwgLyogMzIyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjI0IiwJfSwgLyogMzIyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjI1IiwJfSwgLyogMzIyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjI2IiwJfSwgLyogMzIyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjI3IiwJfSwgLyogMzIyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjI4IiwJfSwgLyogMzIyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjI5IiwJfSwgLyogMzIyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjMwIiwJfSwgLyogMzIzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjMxIiwJfSwgLyogMzIzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjMyIiwJfSwgLyogMzIzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjMzIiwJfSwgLyogMzIzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjM0IiwJfSwgLyogMzIzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjM1IiwJfSwgLyogMzIzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjM2IiwJfSwgLyogMzIzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjM3IiwJfSwgLyogMzIzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjM4IiwJfSwgLyogMzIzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjM5IiwJfSwgLyogMzIzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQwIiwJfSwgLyogMzI0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQxIiwJfSwgLyogMzI0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQyIiwJfSwgLyogMzI0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQzIiwJfSwgLyogMzI0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQ0IiwJfSwgLyogMzI0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQ1IiwJfSwgLyogMzI0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQ2IiwJfSwgLyogMzI0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQ3IiwJfSwgLyogMzI0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQ4IiwJfSwgLyogMzI0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQ5IiwJfSwgLyogMzI0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjUwIiwJfSwgLyogMzI1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjUxIiwJfSwgLyogMzI1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjUyIiwJfSwgLyogMzI1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjUzIiwJfSwgLyogMzI1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjU0IiwJfSwgLyogMzI1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjU1IiwJfSwgLyogMzI1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjU2IiwJfSwgLyogMzI1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjU3IiwJfSwgLyogMzI1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjU4IiwJfSwgLyogMzI1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjU5IiwJfSwgLyogMzI1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X25ldGJvb3QiCX0sIC8qIDMyNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9uZXR1bmJvb3QiCX0sIC8qIDMyNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9yZHVtcCIJfSwgLyogMzI2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NldHNpZCIJfSwgLyogMzI2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X2dldG1heHNpZyIJfSwgLyogMzI2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NpZ3BlbmRpbmciCX0sIC8qIDMyNjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zaWdwcm9jbWFzayIJfSwgLyogMzI2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInBvc2l4X3NpZ3N1c3BlbmQiCX0sIC8qIDMyNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJwb3NpeF9zaWdhY3Rpb24iCX0sIC8qIDMyNjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI2OSIsCX0sIC8qIDMyNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3MCIsCX0sIC8qIDMyNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3MSIsCX0sIC8qIDMyNzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3MiIsCX0sIC8qIDMyNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3MyIsCX0sIC8qIDMyNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3NCIsCX0sIC8qIDMyNzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3NSIsCX0sIC8qIDMyNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3NiIsCX0sIC8qIDMyNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3NyIsCX0sIC8qIDMyNzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3OCIsCX0sIC8qIDMyNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI3OSIsCX0sIC8qIDMyNzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4MCIsCX0sIC8qIDMyODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4MSIsCX0sIC8qIDMyODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4MiIsCX0sIC8qIDMyODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4MyIsCX0sIC8qIDMyODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4NCIsCX0sIC8qIDMyODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4NSIsCX0sIC8qIDMyODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4NiIsCX0sIC8qIDMyODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4NyIsCX0sIC8qIDMyODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4OCIsCX0sIC8qIDMyODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI4OSIsCX0sIC8qIDMyODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5MCIsCX0sIC8qIDMyOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5MSIsCX0sIC8qIDMyOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5MiIsCX0sIC8qIDMyOTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5MyIsCX0sIC8qIDMyOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5NCIsCX0sIC8qIDMyOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5NSIsCX0sIC8qIDMyOTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5NiIsCX0sIC8qIDMyOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5NyIsCX0sIC8qIDMyOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5OCIsCX0sIC8qIDMyOTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzI5OSIsCX0sIC8qIDMyOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwMCIsCX0sIC8qIDMzMDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwMSIsCX0sIC8qIDMzMDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwMiIsCX0sIC8qIDMzMDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwMyIsCX0sIC8qIDMzMDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwNCIsCX0sIC8qIDMzMDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwNSIsCX0sIC8qIDMzMDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwNiIsCX0sIC8qIDMzMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwNyIsCX0sIC8qIDMzMDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwOCIsCX0sIC8qIDMzMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMwOSIsCX0sIC8qIDMzMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxMCIsCX0sIC8qIDMzMTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxMSIsCX0sIC8qIDMzMTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxMiIsCX0sIC8qIDMzMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxMyIsCX0sIC8qIDMzMTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxNCIsCX0sIC8qIDMzMTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxNSIsCX0sIC8qIDMzMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxNiIsCX0sIC8qIDMzMTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxNyIsCX0sIC8qIDMzMTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxOCIsCX0sIC8qIDMzMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMxOSIsCX0sIC8qIDMzMTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyMCIJfSwgLyogMzMyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzIxIgl9LCAvKiAzMzIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMjIiCX0sIC8qIDMzMjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyMyIJfSwgLyogMzMyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzI0Igl9LCAvKiAzMzI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMjUiCX0sIC8qIDMzMjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyNiIJfSwgLyogMzMyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzI3Igl9LCAvKiAzMzI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMjgiCX0sIC8qIDMzMjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMyOSIJfSwgLyogMzMyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzMwIgl9LCAvKiAzMzMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMzEiCX0sIC8qIDMzMzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMzMiIJfSwgLyogMzMzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzMzIgl9LCAvKiAzMzMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMzQiCX0sIC8qIDMzMzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMzNSIJfSwgLyogMzMzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzM2Igl9LCAvKiAzMzM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMzciCX0sIC8qIDMzMzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzMzOCIJfSwgLyogMzMzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzM5Igl9LCAvKiAzMzM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNDAiCX0sIC8qIDMzNDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0MSIJfSwgLyogMzM0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQyIgl9LCAvKiAzMzQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNDMiCX0sIC8qIDMzNDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0NCIJfSwgLyogMzM0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQ1Igl9LCAvKiAzMzQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNDYiCX0sIC8qIDMzNDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM0NyIJfSwgLyogMzM0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQ4Igl9LCAvKiAzMzQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNDkiCX0sIC8qIDMzNDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1MCIJfSwgLyogMzM1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzUxIgl9LCAvKiAzMzUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNTIiCX0sIC8qIDMzNTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1MyIJfSwgLyogMzM1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzU0Igl9LCAvKiAzMzU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNTUiCX0sIC8qIDMzNTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1NiIJfSwgLyogMzM1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzU3Igl9LCAvKiAzMzU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNTgiCX0sIC8qIDMzNTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM1OSIJfSwgLyogMzM1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzYwIgl9LCAvKiAzMzYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNjEiCX0sIC8qIDMzNjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM2MiIJfSwgLyogMzM2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzYzIgl9LCAvKiAzMzYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNjQiCX0sIC8qIDMzNjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM2NSIJfSwgLyogMzM2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzY2Igl9LCAvKiAzMzY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNjciCX0sIC8qIDMzNjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM2OCIJfSwgLyogMzM2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzY5Igl9LCAvKiAzMzY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNzAiCX0sIC8qIDMzNzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3MSIJfSwgLyogMzM3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzcyIgl9LCAvKiAzMzcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNzMiCX0sIC8qIDMzNzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3NCIJfSwgLyogMzM3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzc1Igl9LCAvKiAzMzc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNzYiCX0sIC8qIDMzNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM3NyIJfSwgLyogMzM3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzc4Igl9LCAvKiAzMzc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNzkiCX0sIC8qIDMzNzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4MCIJfSwgLyogMzM4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzgxIgl9LCAvKiAzMzgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzODIiCX0sIC8qIDMzODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4MyIJfSwgLyogMzM4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzg0Igl9LCAvKiAzMzg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzODUiCX0sIC8qIDMzODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4NiIJfSwgLyogMzM4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzg3Igl9LCAvKiAzMzg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzODgiCX0sIC8qIDMzODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM4OSIJfSwgLyogMzM4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzkwIgl9LCAvKiAzMzkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOTEiCX0sIC8qIDMzOTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM5MiIJfSwgLyogMzM5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzkzIgl9LCAvKiAzMzkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOTQiCX0sIC8qIDMzOTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM5NSIJfSwgLyogMzM5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzk2Igl9LCAvKiAzMzk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOTciCX0sIC8qIDMzOTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzM5OCIJfSwgLyogMzM5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzk5Igl9LCAvKiAzMzk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MDAiCX0sIC8qIDM0MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwMSIJfSwgLyogMzQwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDAyIgl9LCAvKiAzNDAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MDMiCX0sIC8qIDM0MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwNCIJfSwgLyogMzQwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDA1Igl9LCAvKiAzNDA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MDYiCX0sIC8qIDM0MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQwNyIJfSwgLyogMzQwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDA4Igl9LCAvKiAzNDA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MDkiCX0sIC8qIDM0MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxMCIJfSwgLyogMzQxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDExIgl9LCAvKiAzNDExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MTIiCX0sIC8qIDM0MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxMyIJfSwgLyogMzQxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDE0Igl9LCAvKiAzNDE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MTUiCX0sIC8qIDM0MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxNiIJfSwgLyogMzQxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDE3Igl9LCAvKiAzNDE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MTgiCX0sIC8qIDM0MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQxOSIJfSwgLyogMzQxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDIwIgl9LCAvKiAzNDIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MjEiCX0sIC8qIDM0MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQyMiIJfSwgLyogMzQyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDIzIgl9LCAvKiAzNDIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MjQiCX0sIC8qIDM0MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQyNSIJfSwgLyogMzQyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDI2Igl9LCAvKiAzNDI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MjciCX0sIC8qIDM0MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQyOCIJfSwgLyogMzQyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDI5Igl9LCAvKiAzNDI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MzAiCX0sIC8qIDM0MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzMSIJfSwgLyogMzQzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDMyIgl9LCAvKiAzNDMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MzMiCX0sIC8qIDM0MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzNCIJfSwgLyogMzQzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDM1Igl9LCAvKiAzNDM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MzYiCX0sIC8qIDM0MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQzNyIJfSwgLyogMzQzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDM4Igl9LCAvKiAzNDM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MzkiCX0sIC8qIDM0MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0MCIJfSwgLyogMzQ0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQxIgl9LCAvKiAzNDQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NDIiCX0sIC8qIDM0NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0MyIJfSwgLyogMzQ0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQ0Igl9LCAvKiAzNDQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NDUiCX0sIC8qIDM0NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0NiIJfSwgLyogMzQ0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQ3Igl9LCAvKiAzNDQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NDgiCX0sIC8qIDM0NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0OSIJfSwgLyogMzQ0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUwIgl9LCAvKiAzNDUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NTEiCX0sIC8qIDM0NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1MiIJfSwgLyogMzQ1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUzIgl9LCAvKiAzNDUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NTQiCX0sIC8qIDM0NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1NSIJfSwgLyogMzQ1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDU2Igl9LCAvKiAzNDU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NTciCX0sIC8qIDM0NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1OCIJfSwgLyogMzQ1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDU5Igl9LCAvKiAzNDU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NjAiCX0sIC8qIDM0NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2MSIJfSwgLyogMzQ2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDYyIgl9LCAvKiAzNDYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NjMiCX0sIC8qIDM0NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2NCIJfSwgLyogMzQ2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDY1Igl9LCAvKiAzNDY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NjYiCX0sIC8qIDM0NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2NyIJfSwgLyogMzQ2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDY4Igl9LCAvKiAzNDY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NjkiCX0sIC8qIDM0NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3MCIJfSwgLyogMzQ3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDcxIgl9LCAvKiAzNDcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NzIiCX0sIC8qIDM0NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3MyIJfSwgLyogMzQ3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDc0Igl9LCAvKiAzNDc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NzUiCX0sIC8qIDM0NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3NiIJfSwgLyogMzQ3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDc3Igl9LCAvKiAzNDc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NzgiCX0sIC8qIDM0NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3OSIJfSwgLyogMzQ3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgwIgl9LCAvKiAzNDgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0ODEiCX0sIC8qIDM0ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4MiIJfSwgLyogMzQ4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgzIgl9LCAvKiAzNDgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0ODQiCX0sIC8qIDM0ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4NSIJfSwgLyogMzQ4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDg2Igl9LCAvKiAzNDg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0ODciCX0sIC8qIDM0ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4OCIJfSwgLyogMzQ4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDg5Igl9LCAvKiAzNDg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OTAiCX0sIC8qIDM0OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5MSIJfSwgLyogMzQ5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDkyIgl9LCAvKiAzNDkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OTMiCX0sIC8qIDM0OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5NCIJfSwgLyogMzQ5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDk1Igl9LCAvKiAzNDk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OTYiCX0sIC8qIDM0OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5NyIJfSwgLyogMzQ5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDk4Igl9LCAvKiAzNDk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OTkiCX0sIC8qIDM0OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwMCIJfSwgLyogMzUwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTAxIgl9LCAvKiAzNTAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MDIiCX0sIC8qIDM1MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwMyIJfSwgLyogMzUwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTA0Igl9LCAvKiAzNTA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MDUiCX0sIC8qIDM1MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwNiIJfSwgLyogMzUwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTA3Igl9LCAvKiAzNTA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MDgiCX0sIC8qIDM1MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUwOSIJfSwgLyogMzUwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTEwIgl9LCAvKiAzNTEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MTEiCX0sIC8qIDM1MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUxMiIJfSwgLyogMzUxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTEzIgl9LCAvKiAzNTEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MTQiCX0sIC8qIDM1MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUxNSIJfSwgLyogMzUxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTE2Igl9LCAvKiAzNTE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MTciCX0sIC8qIDM1MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUxOCIJfSwgLyogMzUxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTE5Igl9LCAvKiAzNTE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MjAiCX0sIC8qIDM1MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyMSIJfSwgLyogMzUyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTIyIgl9LCAvKiAzNTIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MjMiCX0sIC8qIDM1MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyNCIJfSwgLyogMzUyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTI1Igl9LCAvKiAzNTI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MjYiCX0sIC8qIDM1MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUyNyIJfSwgLyogMzUyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTI4Igl9LCAvKiAzNTI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MjkiCX0sIC8qIDM1MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzMCIJfSwgLyogMzUzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTMxIgl9LCAvKiAzNTMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MzIiCX0sIC8qIDM1MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzMyIJfSwgLyogMzUzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTM0Igl9LCAvKiAzNTM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MzUiCX0sIC8qIDM1MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzNiIJfSwgLyogMzUzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTM3Igl9LCAvKiAzNTM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MzgiCX0sIC8qIDM1MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzUzOSIJfSwgLyogMzUzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQwIgl9LCAvKiAzNTQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NDEiCX0sIC8qIDM1NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU0MiIJfSwgLyogMzU0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQzIgl9LCAvKiAzNTQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NDQiCX0sIC8qIDM1NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU0NSIJfSwgLyogMzU0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQ2Igl9LCAvKiAzNTQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NDciCX0sIC8qIDM1NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU0OCIJfSwgLyogMzU0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTQ5Igl9LCAvKiAzNTQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NTAiCX0sIC8qIDM1NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1MSIJfSwgLyogMzU1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTUyIgl9LCAvKiAzNTUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NTMiCX0sIC8qIDM1NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1NCIJfSwgLyogMzU1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTU1Igl9LCAvKiAzNTU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NTYiCX0sIC8qIDM1NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU1NyIJfSwgLyogMzU1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTU4Igl9LCAvKiAzNTU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NTkiCX0sIC8qIDM1NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2MCIJfSwgLyogMzU2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTYxIgl9LCAvKiAzNTYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NjIiCX0sIC8qIDM1NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2MyIJfSwgLyogMzU2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTY0Igl9LCAvKiAzNTY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NjUiCX0sIC8qIDM1NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2NiIJfSwgLyogMzU2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTY3Igl9LCAvKiAzNTY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NjgiCX0sIC8qIDM1NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU2OSIJfSwgLyogMzU2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTcwIgl9LCAvKiAzNTcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NzEiCX0sIC8qIDM1NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU3MiIJfSwgLyogMzU3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTczIgl9LCAvKiAzNTczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NzQiCX0sIC8qIDM1NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU3NSIJfSwgLyogMzU3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTc2Igl9LCAvKiAzNTc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NzciCX0sIC8qIDM1NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU3OCIJfSwgLyogMzU3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTc5Igl9LCAvKiAzNTc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1ODAiCX0sIC8qIDM1ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4MSIJfSwgLyogMzU4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTgyIgl9LCAvKiAzNTgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1ODMiCX0sIC8qIDM1ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4NCIJfSwgLyogMzU4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTg1Igl9LCAvKiAzNTg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1ODYiCX0sIC8qIDM1ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU4NyIJfSwgLyogMzU4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTg4Igl9LCAvKiAzNTg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1ODkiCX0sIC8qIDM1ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5MCIJfSwgLyogMzU5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTkxIgl9LCAvKiAzNTkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OTIiCX0sIC8qIDM1OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5MyIJfSwgLyogMzU5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTk0Igl9LCAvKiAzNTk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OTUiCX0sIC8qIDM1OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5NiIJfSwgLyogMzU5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNTk3Igl9LCAvKiAzNTk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OTgiCX0sIC8qIDM1OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzU5OSIJfSwgLyogMzU5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjAwIgl9LCAvKiAzNjAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MDEiCX0sIC8qIDM2MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYwMiIJfSwgLyogMzYwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjAzIgl9LCAvKiAzNjAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MDQiCX0sIC8qIDM2MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYwNSIJfSwgLyogMzYwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjA2Igl9LCAvKiAzNjA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MDciCX0sIC8qIDM2MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYwOCIJfSwgLyogMzYwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjA5Igl9LCAvKiAzNjA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MTAiCX0sIC8qIDM2MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxMSIJfSwgLyogMzYxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjEyIgl9LCAvKiAzNjEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MTMiCX0sIC8qIDM2MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxNCIJfSwgLyogMzYxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjE1Igl9LCAvKiAzNjE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MTYiCX0sIC8qIDM2MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYxNyIJfSwgLyogMzYxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjE4Igl9LCAvKiAzNjE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MTkiCX0sIC8qIDM2MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyMCIJfSwgLyogMzYyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjIxIgl9LCAvKiAzNjIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MjIiCX0sIC8qIDM2MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyMyIJfSwgLyogMzYyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjI0Igl9LCAvKiAzNjI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MjUiCX0sIC8qIDM2MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyNiIJfSwgLyogMzYyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjI3Igl9LCAvKiAzNjI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MjgiCX0sIC8qIDM2MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYyOSIJfSwgLyogMzYyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjMwIgl9LCAvKiAzNjMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MzEiCX0sIC8qIDM2MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYzMiIJfSwgLyogMzYzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjMzIgl9LCAvKiAzNjMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MzQiCX0sIC8qIDM2MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYzNSIJfSwgLyogMzYzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjM2Igl9LCAvKiAzNjM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MzciCX0sIC8qIDM2MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzYzOCIJfSwgLyogMzYzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjM5Igl9LCAvKiAzNjM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NDAiCX0sIC8qIDM2NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0MSIJfSwgLyogMzY0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQyIgl9LCAvKiAzNjQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NDMiCX0sIC8qIDM2NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0NCIJfSwgLyogMzY0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQ1Igl9LCAvKiAzNjQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NDYiCX0sIC8qIDM2NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY0NyIJfSwgLyogMzY0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQ4Igl9LCAvKiAzNjQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NDkiCX0sIC8qIDM2NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1MCIJfSwgLyogMzY1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUxIgl9LCAvKiAzNjUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NTIiCX0sIC8qIDM2NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1MyIJfSwgLyogMzY1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjU0Igl9LCAvKiAzNjU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NTUiCX0sIC8qIDM2NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1NiIJfSwgLyogMzY1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjU3Igl9LCAvKiAzNjU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NTgiCX0sIC8qIDM2NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY1OSIJfSwgLyogMzY1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYwIgl9LCAvKiAzNjYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NjEiCX0sIC8qIDM2NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY2MiIJfSwgLyogMzY2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYzIgl9LCAvKiAzNjYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NjQiCX0sIC8qIDM2NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY2NSIJfSwgLyogMzY2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjY2Igl9LCAvKiAzNjY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NjciCX0sIC8qIDM2NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY2OCIJfSwgLyogMzY2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjY5Igl9LCAvKiAzNjY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NzAiCX0sIC8qIDM2NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3MSIJfSwgLyogMzY3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjcyIgl9LCAvKiAzNjcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NzMiCX0sIC8qIDM2NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3NCIJfSwgLyogMzY3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjc1Igl9LCAvKiAzNjc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NzYiCX0sIC8qIDM2NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY3NyIJfSwgLyogMzY3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjc4Igl9LCAvKiAzNjc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NzkiCX0sIC8qIDM2NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4MCIJfSwgLyogMzY4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgxIgl9LCAvKiAzNjgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2ODIiCX0sIC8qIDM2ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4MyIJfSwgLyogMzY4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjg0Igl9LCAvKiAzNjg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2ODUiCX0sIC8qIDM2ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4NiIJfSwgLyogMzY4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjg3Igl9LCAvKiAzNjg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2ODgiCX0sIC8qIDM2ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY4OSIJfSwgLyogMzY4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkwIgl9LCAvKiAzNjkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OTEiCX0sIC8qIDM2OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY5MiIJfSwgLyogMzY5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkzIgl9LCAvKiAzNjkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OTQiCX0sIC8qIDM2OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY5NSIJfSwgLyogMzY5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjk2Igl9LCAvKiAzNjk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OTciCX0sIC8qIDM2OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzY5OCIJfSwgLyogMzY5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjk5Igl9LCAvKiAzNjk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MDAiCX0sIC8qIDM3MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwMSIJfSwgLyogMzcwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzAyIgl9LCAvKiAzNzAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MDMiCX0sIC8qIDM3MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwNCIJfSwgLyogMzcwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzA1Igl9LCAvKiAzNzA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MDYiCX0sIC8qIDM3MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcwNyIJfSwgLyogMzcwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzA4Igl9LCAvKiAzNzA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MDkiCX0sIC8qIDM3MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxMCIJfSwgLyogMzcxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzExIgl9LCAvKiAzNzExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MTIiCX0sIC8qIDM3MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxMyIJfSwgLyogMzcxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzE0Igl9LCAvKiAzNzE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MTUiCX0sIC8qIDM3MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxNiIJfSwgLyogMzcxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzE3Igl9LCAvKiAzNzE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MTgiCX0sIC8qIDM3MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcxOSIJfSwgLyogMzcxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIwIgl9LCAvKiAzNzIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MjEiCX0sIC8qIDM3MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcyMiIJfSwgLyogMzcyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzIzIgl9LCAvKiAzNzIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MjQiCX0sIC8qIDM3MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcyNSIJfSwgLyogMzcyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzI2Igl9LCAvKiAzNzI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MjciCX0sIC8qIDM3MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzcyOCIJfSwgLyogMzcyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzI5Igl9LCAvKiAzNzI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MzAiCX0sIC8qIDM3MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczMSIJfSwgLyogMzczMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzMyIgl9LCAvKiAzNzMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MzMiCX0sIC8qIDM3MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczNCIJfSwgLyogMzczNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzM1Igl9LCAvKiAzNzM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MzYiCX0sIC8qIDM3MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzczNyIJfSwgLyogMzczNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzM4Igl9LCAvKiAzNzM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MzkiCX0sIC8qIDM3MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0MCIJfSwgLyogMzc0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQxIgl9LCAvKiAzNzQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NDIiCX0sIC8qIDM3NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0MyIJfSwgLyogMzc0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQ0Igl9LCAvKiAzNzQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NDUiCX0sIC8qIDM3NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0NiIJfSwgLyogMzc0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzQ3Igl9LCAvKiAzNzQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NDgiCX0sIC8qIDM3NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc0OSIJfSwgLyogMzc0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUwIgl9LCAvKiAzNzUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NTEiCX0sIC8qIDM3NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc1MiIJfSwgLyogMzc1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzUzIgl9LCAvKiAzNzUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NTQiCX0sIC8qIDM3NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc1NSIJfSwgLyogMzc1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzU2Igl9LCAvKiAzNzU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NTciCX0sIC8qIDM3NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc1OCIJfSwgLyogMzc1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzU5Igl9LCAvKiAzNzU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NjAiCX0sIC8qIDM3NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2MSIJfSwgLyogMzc2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzYyIgl9LCAvKiAzNzYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NjMiCX0sIC8qIDM3NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2NCIJfSwgLyogMzc2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzY1Igl9LCAvKiAzNzY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NjYiCX0sIC8qIDM3NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc2NyIJfSwgLyogMzc2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzY4Igl9LCAvKiAzNzY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NjkiCX0sIC8qIDM3NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3MCIJfSwgLyogMzc3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzcxIgl9LCAvKiAzNzcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NzIiCX0sIC8qIDM3NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3MyIJfSwgLyogMzc3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzc0Igl9LCAvKiAzNzc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NzUiCX0sIC8qIDM3NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3NiIJfSwgLyogMzc3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzc3Igl9LCAvKiAzNzc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NzgiCX0sIC8qIDM3NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc3OSIJfSwgLyogMzc3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgwIgl9LCAvKiAzNzgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3ODEiCX0sIC8qIDM3ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc4MiIJfSwgLyogMzc4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzgzIgl9LCAvKiAzNzgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3ODQiCX0sIC8qIDM3ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc4NSIJfSwgLyogMzc4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzg2Igl9LCAvKiAzNzg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3ODciCX0sIC8qIDM3ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc4OCIJfSwgLyogMzc4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzg5Igl9LCAvKiAzNzg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OTAiCX0sIC8qIDM3OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5MSIJfSwgLyogMzc5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzkyIgl9LCAvKiAzNzkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OTMiCX0sIC8qIDM3OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5NCIJfSwgLyogMzc5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzk1Igl9LCAvKiAzNzk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OTYiCX0sIC8qIDM3OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzc5NyIJfSwgLyogMzc5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNzk4Igl9LCAvKiAzNzk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OTkiCX0sIC8qIDM3OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwMCIJfSwgLyogMzgwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODAxIgl9LCAvKiAzODAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MDIiCX0sIC8qIDM4MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwMyIJfSwgLyogMzgwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODA0Igl9LCAvKiAzODA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MDUiCX0sIC8qIDM4MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwNiIJfSwgLyogMzgwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODA3Igl9LCAvKiAzODA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MDgiCX0sIC8qIDM4MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgwOSIJfSwgLyogMzgwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEwIgl9LCAvKiAzODEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MTEiCX0sIC8qIDM4MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgxMiIJfSwgLyogMzgxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODEzIgl9LCAvKiAzODEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MTQiCX0sIC8qIDM4MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgxNSIJfSwgLyogMzgxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODE2Igl9LCAvKiAzODE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MTciCX0sIC8qIDM4MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgxOCIJfSwgLyogMzgxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODE5Igl9LCAvKiAzODE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MjAiCX0sIC8qIDM4MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyMSIJfSwgLyogMzgyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODIyIgl9LCAvKiAzODIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MjMiCX0sIC8qIDM4MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyNCIJfSwgLyogMzgyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODI1Igl9LCAvKiAzODI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MjYiCX0sIC8qIDM4MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgyNyIJfSwgLyogMzgyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODI4Igl9LCAvKiAzODI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MjkiCX0sIC8qIDM4MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzMCIJfSwgLyogMzgzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODMxIgl9LCAvKiAzODMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MzIiCX0sIC8qIDM4MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzMyIJfSwgLyogMzgzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODM0Igl9LCAvKiAzODM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MzUiCX0sIC8qIDM4MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzNiIJfSwgLyogMzgzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODM3Igl9LCAvKiAzODM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MzgiCX0sIC8qIDM4MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzgzOSIJfSwgLyogMzgzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQwIgl9LCAvKiAzODQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NDEiCX0sIC8qIDM4NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg0MiIJfSwgLyogMzg0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQzIgl9LCAvKiAzODQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NDQiCX0sIC8qIDM4NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg0NSIJfSwgLyogMzg0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQ2Igl9LCAvKiAzODQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NDciCX0sIC8qIDM4NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg0OCIJfSwgLyogMzg0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODQ5Igl9LCAvKiAzODQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NTAiCX0sIC8qIDM4NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1MSIJfSwgLyogMzg1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODUyIgl9LCAvKiAzODUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NTMiCX0sIC8qIDM4NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1NCIJfSwgLyogMzg1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODU1Igl9LCAvKiAzODU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NTYiCX0sIC8qIDM4NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg1NyIJfSwgLyogMzg1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODU4Igl9LCAvKiAzODU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NTkiCX0sIC8qIDM4NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2MCIJfSwgLyogMzg2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODYxIgl9LCAvKiAzODYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NjIiCX0sIC8qIDM4NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2MyIJfSwgLyogMzg2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODY0Igl9LCAvKiAzODY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NjUiCX0sIC8qIDM4NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2NiIJfSwgLyogMzg2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODY3Igl9LCAvKiAzODY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NjgiCX0sIC8qIDM4NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg2OSIJfSwgLyogMzg2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODcwIgl9LCAvKiAzODcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NzEiCX0sIC8qIDM4NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg3MiIJfSwgLyogMzg3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODczIgl9LCAvKiAzODczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NzQiCX0sIC8qIDM4NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg3NSIJfSwgLyogMzg3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODc2Igl9LCAvKiAzODc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NzciCX0sIC8qIDM4NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg3OCIJfSwgLyogMzg3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODc5Igl9LCAvKiAzODc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4ODAiCX0sIC8qIDM4ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4MSIJfSwgLyogMzg4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODgyIgl9LCAvKiAzODgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4ODMiCX0sIC8qIDM4ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4NCIJfSwgLyogMzg4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODg1Igl9LCAvKiAzODg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4ODYiCX0sIC8qIDM4ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg4NyIJfSwgLyogMzg4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODg4Igl9LCAvKiAzODg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4ODkiCX0sIC8qIDM4ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5MCIJfSwgLyogMzg5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODkxIgl9LCAvKiAzODkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OTIiCX0sIC8qIDM4OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5MyIJfSwgLyogMzg5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODk0Igl9LCAvKiAzODk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OTUiCX0sIC8qIDM4OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5NiIJfSwgLyogMzg5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zODk3Igl9LCAvKiAzODk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OTgiCX0sIC8qIDM4OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzg5OSIJfSwgLyogMzg5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAwIgl9LCAvKiAzOTAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MDEiCX0sIC8qIDM5MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkwMiIJfSwgLyogMzkwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAzIgl9LCAvKiAzOTAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MDQiCX0sIC8qIDM5MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkwNSIJfSwgLyogMzkwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTA2Igl9LCAvKiAzOTA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MDciCX0sIC8qIDM5MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkwOCIJfSwgLyogMzkwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTA5Igl9LCAvKiAzOTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MTAiCX0sIC8qIDM5MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxMSIJfSwgLyogMzkxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEyIgl9LCAvKiAzOTEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MTMiCX0sIC8qIDM5MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxNCIJfSwgLyogMzkxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTE1Igl9LCAvKiAzOTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MTYiCX0sIC8qIDM5MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkxNyIJfSwgLyogMzkxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTE4Igl9LCAvKiAzOTE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MTkiCX0sIC8qIDM5MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyMCIJfSwgLyogMzkyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIxIgl9LCAvKiAzOTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MjIiCX0sIC8qIDM5MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyMyIJfSwgLyogMzkyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTI0Igl9LCAvKiAzOTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MjUiCX0sIC8qIDM5MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyNiIJfSwgLyogMzkyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTI3Igl9LCAvKiAzOTI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MjgiCX0sIC8qIDM5MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkyOSIJfSwgLyogMzkyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMwIgl9LCAvKiAzOTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MzEiCX0sIC8qIDM5MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkzMiIJfSwgLyogMzkzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMzIgl9LCAvKiAzOTMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MzQiCX0sIC8qIDM5MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkzNSIJfSwgLyogMzkzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTM2Igl9LCAvKiAzOTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MzciCX0sIC8qIDM5MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzkzOCIJfSwgLyogMzkzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTM5Igl9LCAvKiAzOTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NDAiCX0sIC8qIDM5NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0MSIJfSwgLyogMzk0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQyIgl9LCAvKiAzOTQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NDMiCX0sIC8qIDM5NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0NCIJfSwgLyogMzk0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQ1Igl9LCAvKiAzOTQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NDYiCX0sIC8qIDM5NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk0NyIJfSwgLyogMzk0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQ4Igl9LCAvKiAzOTQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NDkiCX0sIC8qIDM5NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1MCIJfSwgLyogMzk1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUxIgl9LCAvKiAzOTUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NTIiCX0sIC8qIDM5NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1MyIJfSwgLyogMzk1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTU0Igl9LCAvKiAzOTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NTUiCX0sIC8qIDM5NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1NiIJfSwgLyogMzk1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTU3Igl9LCAvKiAzOTU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NTgiCX0sIC8qIDM5NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk1OSIJfSwgLyogMzk1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYwIgl9LCAvKiAzOTYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NjEiCX0sIC8qIDM5NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk2MiIJfSwgLyogMzk2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYzIgl9LCAvKiAzOTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NjQiCX0sIC8qIDM5NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk2NSIJfSwgLyogMzk2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTY2Igl9LCAvKiAzOTY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NjciCX0sIC8qIDM5NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk2OCIJfSwgLyogMzk2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTY5Igl9LCAvKiAzOTY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NzAiCX0sIC8qIDM5NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3MSIJfSwgLyogMzk3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTcyIgl9LCAvKiAzOTcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NzMiCX0sIC8qIDM5NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3NCIJfSwgLyogMzk3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTc1Igl9LCAvKiAzOTc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NzYiCX0sIC8qIDM5NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk3NyIJfSwgLyogMzk3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTc4Igl9LCAvKiAzOTc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NzkiCX0sIC8qIDM5NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4MCIJfSwgLyogMzk4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgxIgl9LCAvKiAzOTgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5ODIiCX0sIC8qIDM5ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4MyIJfSwgLyogMzk4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTg0Igl9LCAvKiAzOTg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5ODUiCX0sIC8qIDM5ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4NiIJfSwgLyogMzk4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTg3Igl9LCAvKiAzOTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5ODgiCX0sIC8qIDM5ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk4OSIJfSwgLyogMzk4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkwIgl9LCAvKiAzOTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTEiCX0sIC8qIDM5OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk5MiIJfSwgLyogMzk5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkzIgl9LCAvKiAzOTkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTQiCX0sIC8qIDM5OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk5NSIJfSwgLyogMzk5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTk2Igl9LCAvKiAzOTk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OTciCX0sIC8qIDM5OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfMzk5OCIJfSwgLyogMzk5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTk5Igl9LCAvKiAzOTk5ICovIC8qIGVuZCBvZiBQT1NJWCAqLworCXsgOCwJMCwJcHJpbnRhcmdzLAkJInN5c2NhbGwiCX0sIC8qIDQwMDAgKi8gLyogc3RhcnQgb2YgTGludXggbzMyICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdCIJCX0sIC8qIDQwMDEgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJCSJmb3JrIgkJfSwgLyogNDAwMiAqLworCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDQwMDMgKi8KKwl7IDMsCTAsCXN5c193cml0ZSwJCSJ3cml0ZSIJCX0sIC8qIDQwMDQgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNDAwNSAqLworCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNDAwNiAqLworCXsgMywJVFAsCXN5c193YWl0cGlkLAkJIndhaXRwaWQiCX0sIC8qIDQwMDcgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA0MDA4ICovCisJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sIC8qIDQwMDkgKi8KKwl7IDEsCVRGLAlzeXNfdW5saW5rLAkJInVubGluayIJfSwgLyogNDAxMCAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAvKiA0MDExICovCisJeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogNDAxMiAqLworCXsgMSwJMCwJc3lzX3RpbWUsCQkidGltZSIJCX0sIC8qIDQwMTMgKi8KKwl7IDMsCVRGLAlzeXNfbWtub2QsCQkibWtub2QiCQl9LCAvKiA0MDE0ICovCisJeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogNDAxNSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sIC8qIDQwMTYgKi8KKwl7IDAsCTAsCXN5c19icmVhaywJCSJicmVhayIJCX0sIC8qIDQwMTcgKi8KKwl7IDIsCVRGLAlzeXNfb2xkc3RhdCwJCSJvbGRzdGF0Igl9LCAvKiA0MDE4ICovCisJeyAzLAkwLAlzeXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiA0MDE5ICovCisJeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogNDAyMCAqLworCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDQwMjEgKi8KKwl7IDEsCVRGLAlzeXNfdW1vdW50LAkJIm9sZHVtb3VudCIJfSwgLyogNDAyMiAqLworCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDQwMjMgKi8KKwl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiA0MDI0ICovCisJeyAxLAkwLAlzeXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiA0MDI1ICovCisJeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogNDAyNiAqLworCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogNDAyNyAqLworCXsgMiwJVEYsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJfSwgLyogNDAyOCAqLworCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sIC8qIDQwMjkgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiA0MDMwICovCisJeyAwLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogNDAzMSAqLworCXsgMCwJMCwJc3lzX2d0dHksCQkiZ3R0eSIJCX0sIC8qIDQwMzIgKi8KKwl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogNDAzMyAqLworCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDQwMzQgKi8KKwl7IDEsCTAsCXN5c19mdGltZSwJCSJmdGltZSIJCX0sIC8qIDQwMzUgKi8KKwl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiA0MDM2ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDQwMzcgKi8KKwl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogNDAzOCAqLworCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCX0sIC8qIDQwMzkgKi8KKwl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MDQwICovCisJeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sIC8qIDQwNDEgKi8KKwl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQl9LCAvKiA0MDQyICovCisJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MDQzICovCisJeyAwLAkwLAlzeXNfcHJvZiwJCSJwcm9mIgkJfSwgLyogNDA0NCAqLworCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA0MDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDA0NiAqLworCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sIC8qIDQwNDcgKi8KKwl7IDEsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogNDA0OCAqLworCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDA0OSAqLworCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgLyogNDA1MCAqLworCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAvKiA0MDUxICovCisJeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA0MDUyICovCisJeyAwLAkwLAlzeXNfbG9jaywJCSJsb2NrIgkJfSwgLyogNDA1MyAqLworCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNDA1NCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNDA1NSAqLworCXsgMCwJMCwJc3lzX21weCwJCSJtcHgiCQl9LCAvKiA0MDU2ICovCisJeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiA0MDU3ICovCisJeyAwLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNDA1OCAqLworCXsgMSwJMCwJc3lzX29sZG9sZHVuYW1lLAkib2xkb2xkdW5hbWUiCX0sIC8qIDQwNTkgKi8KKwl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCX0sIC8qIDQwNjAgKi8KKwl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNDA2MSAqLworCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgLyogNDA2MiAqLworCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDQwNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDQwNjQgKi8KKwl7IDAsCTAsCXN5c19nZXRwZ3JwLAkJImdldHBncnAiCX0sIC8qIDQwNjUgKi8KKwl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgl9LCAvKiA0MDY2ICovCisJeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDQwNjcgKi8KKwl7IDAsCVRTLAlzeXNfc2lnZ2V0bWFzaywJCSJzaWdnZXRtYXNrIgl9LCAvKiA0MDY4ICovCisJeyAxLAlUUywJc3lzX3NpZ3NldG1hc2ssCQkic2lnc2V0bWFzayIJfSwgLyogNDA2OSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA0MDcwICovCisJeyAyLAkwLAlzeXNfc2V0cmVnaWQsCQkic2V0cmVnaWQiCX0sIC8qIDQwNzEgKi8KKwl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgl9LCAvKiA0MDcyICovCisJeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNDA3MyAqLworCXsgMiwJMCwJc3lzX3NldGhvc3RuYW1lLAkic2V0aG9zdG5hbWUiCX0sIC8qIDQwNzQgKi8KKwl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAvKiA0MDc1ICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogNDA3NiAqLworCXsgMiwJMCwJc3lzX2dldHJ1c2FnZSwJCSJnZXRydXNhZ2UiCX0sIC8qIDQwNzcgKi8KKwl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDQwNzggKi8KKwl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCX0sIC8qIDQwNzkgKi8KKwl7IDIsCTAsCXN5c19nZXRncm91cHMsCQkiZ2V0Z3JvdXBzIgl9LCAvKiA0MDgwICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogNDA4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInJlc2VydmVkODIiCX0sIC8qIDQwODIgKi8KKwl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAvKiA0MDgzICovCisJeyAyLAlURiwJc3lzX29sZGxzdGF0LAkJIm9sZGxzdGF0Igl9LCAvKiA0MDg0ICovCisJeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiA0MDg1ICovCisJeyAxLAlURiwJc3lzX3VzZWxpYiwJCSJ1c2VsaWIiCX0sIC8qIDQwODYgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogNDA4NyAqLworCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCX0sIC8qIDQwODggKi8KKwl7IDMsCTAsCXN5c19yZWFkZGlyLAkJInJlYWRkaXIiCX0sIC8qIDQwODkgKi8KKwl7IDYsCTAsCXN5c19tbWFwLAkJIm9sZF9tbWFwIgl9LCAvKiA0MDkwICovCisJeyAyLAkwLAlzeXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogNDA5MSAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogNDA5MiAqLworCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDQwOTMgKi8KKwl7IDIsCTAsCXN5c19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA0MDk0ICovCisJeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogNDA5NSAqLworCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDQwOTYgKi8KKwl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwJInNldHByaW9yaXR5Igl9LCAvKiA0MDk3ICovCisJeyAwLAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogNDA5OCAqLworCXsgMywJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiA0MDk5ICovCisJeyAzLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAvKiA0MTAwICovCisJeyAwLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJfSwgLyogNDEwMSAqLworCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIJfSwgLyogNDEwMiAqLworCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDQxMDMgKi8KKwl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiA0MTA0ICovCisJeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgLyogNDEwNSAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiA0MTA2ICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogNDEwNyAqLworCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogNDEwOCAqLworCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiA0MTA5ICovCisJeyAwLAkwLAlzeXNfaW9wbCwJCSJpb3BsIgkJfSwgLyogNDExMCAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogNDExMSAqLworCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDQxMTIgKi8KKwl7IDUsCTAsCXN5c192bTg2b2xkLAkJInZtODYiCQl9LCAvKiA0MTEzICovCisJeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IgkJfSwgLyogNDExNCAqLworCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogNDExNSAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogNDExNiAqLworCXsgNiwJMCwJc3lzX2lwYywJCSJpcGMiCQl9LCAvKiA0MTE3ICovCisJeyAxLAkwLAlzeXNfZnN5bmMsCQkiZnN5bmMiCQl9LCAvKiA0MTE4ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDQxMTkgKi8KKwl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiCQl9LCAvKiA0MTIwICovCisJeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDQxMjEgKi8KKwl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDQxMjIgKi8KKwl7IDAsCTAsCXN5c19tb2RpZnlfbGR0LAkJIm1vZGlmeV9sZHQiCX0sIC8qIDQxMjMgKi8KKwl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogNDEyNCAqLworCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiA0MTI1ICovCisJeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDQxMjYgKi8KKwl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogNDEyNyAqLworCXsgMywJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDQxMjggKi8KKwl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogNDEyOSAqLworCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAvKiA0MTMwICovCisJeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDQxMzEgKi8KKwl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDQxMzIgKi8KKwl7IDEsCVRGLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogNDEzMyAqLworCXsgMiwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogNDEzNCAqLworCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogNDEzNSAqLworCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDQxMzYgKi8KKwl7IDAsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiA0MTM3ICovCisJeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sIC8qIDQxMzggKi8KKwl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogNDEzOSAqLworCXsgNSwJVEYsCXN5c19sbHNlZWssCQkiX2xsc2VlayIJfSwgLyogNDE0MCAqLworCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiA0MTQxICovCisJeyA1LAkwLAlzeXNfc2VsZWN0LAkJIl9uZXdzZWxlY3QiCX0sIC8qIDQxNDIgKi8KKwl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDQxNDMgKi8KKwl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDQxNDQgKi8KKwl7IDMsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDQxNDUgKi8KKwl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiA0MTQ2ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiY2FjaGVmbHVzaCIJfSwgLyogNDE0NyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImNhY2hlY3RsIgl9LCAvKiA0MTQ4ICovCisJeyA0LAkwLAlzeXNfc3lzbWlwcywJCSJzeXNtaXBzIgl9LCAvKiA0MTQ5ICovCisJeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiA0MTUwICovCisJeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogNDE1MSAqLworCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sIC8qIDQxNTIgKi8KKwl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogNDE1MyAqLworCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogNDE1NCAqLworCXsgMiwJMCwJc3lzX211bmxvY2ssCQkibXVubG9jayIJfSwgLyogNDE1NSAqLworCXsgMSwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiA0MTU2ICovCisJeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiA0MTU3ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfc2V0cGFyYW0sCSJzY2hlZF9zZXRwYXJhbSJ9LCAvKiA0MTU4ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiA0MTU5ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDQxNjAgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRzY2hlZHVsZXIsCSJzY2hlZF9nZXRzY2hlZHVsZXIifSwgLyogNDE2MSAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQiCX0sIC8qIDQxNjIgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4IgkJCQkJCQkJfSwgLyogNDE2MyAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4iCQkJCQkJCQl9LCAvKiA0MTY0ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsLCJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwifSwgLyogNDE2NSAqLworCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDQxNjYgKi8KKwl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiA0MTY3ICovCisJeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDQxNjggKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogNDE2OSAqLworCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDQxNzAgKi8KKwl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogNDE3MSAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiA0MTcyICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogNDE3MyAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiA0MTc0ICovCisJeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDQxNzUgKi8KKwl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDQxNzYgKi8KKwl7IDMsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiA0MTc3ICovCisJeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIJCX0sIC8qIDQxNzggKi8KKwl7IDMsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiA0MTc5ICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDQxODAgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiA0MTgxICovCisJeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiA0MTgyICovCisJeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDQxODMgKi8KKwl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiA0MTg0ICovCisJeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZCIJfSwgLyogNDE4NSAqLworCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDQxODYgKi8KKwl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDQxODcgKi8KKwl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAvKiA0MTg4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogNDE4OSAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDQxOTAgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAvKiA0MTkxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAvKiA0MTkyICovCisJeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogNDE5MyAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdhY3Rpb24sCSJydF9zaWdhY3Rpb24iCX0sIC8qIDQxOTQgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssCSJydF9zaWdwcm9jbWFzayJ9LCAvKiA0MTk1ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiA0MTk2ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LC8qIDQxOTcgKi8KKwl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLAkicnRfc2lncXVldWVpbmZvIn0sLyogNDE5OCAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogNDE5OSAqLworCXsgNiwJMCwJc3lzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogNDIwMCAqLworCXsgNiwJMCwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDQyMDEgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiA0MjAyICovCisJeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDQyMDMgKi8KKwl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAvKiA0MjA0ICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogNDIwNSAqLworCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YXRjayIJfSwgLyogNDIwNiAqLworCXsgNCwJMCwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiA0MjA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMDgiCX0sIC8qIDQyMDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDIwOSIJfSwgLyogNDIwOSAqLworCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcCIJCX0sIC8qIDQyMTAgKi8KKwl7IDQsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiA0MjExICovCisJeyA0LAkwLAlzeXNfZnRydW5jYXRlNjQsCSJmdHJ1bmNhdGU2NCIJfSwgLyogNDIxMiAqLworCXsgMiwJVEYsCXByaW50YXJncywJCSJzdGF0NjQiCX0sIC8qIDQyMTMgKi8KKwl7IDIsCVRGLAlzeXNfbHN0YXQ2NCwJCSJsc3RhdDY0Igl9LCAvKiA0MjE0ICovCisJeyAyLAkwLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0Igl9LCAvKiA0MjE1ICovCisJeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJCSJwaXZvdF9yb290Igl9LCAvKiA0MjE2ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibWluY29yZSIJfSwgLyogNDIxNyAqLworCXsgMywJMCwJc3lzX21hZHZpc2UsCQkibWFkdmlzZSIJfSwgLyogNDIxOCAqLworCXsgMywJVEYsCXN5c19nZXRkZW50czY0LAkJImdldGRlbnRzNjQiCX0sIC8qIDQyMTkgKi8KKwl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bDY0Igl9LCAvKiA0MjIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyMjEiCX0sIC8qIDQyMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDQyMjIgKi8KKwl7IDUsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiA0MjIzICovCisJeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJInNldHhhdHRyIgl9LCAvKiA0MjI0ICovCisJeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogNDIyNSAqLworCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDQyMjYgKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkiZ2V0eGF0dHIiCX0sIC8qIDQyMjcgKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiA0MjI4ICovCisJeyA0LAkwLAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogNDIyOSAqLworCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGlzdHhhdHRyIgl9LCAvKiA0MjMwICovCisJeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiA0MjMxICovCisJeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiA0MjMyICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkicmVtb3ZleGF0dHIiCX0sIC8qIDQyMzMgKi8KKwl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDQyMzQgKi8KKwl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDQyMzUgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJCSJ0a2lsbCIJCX0sIC8qIDQyMzYgKi8KKwl7IDUsCTAsCXN5c19zZW5kZmlsZTY0LAkJInNlbmRmaWxlNjQiCX0sIC8qIDQyMzcgKi8KKwl7IDYsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDQyMzggKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5In0sIC8qIDQyMzkgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9nZXRhZmZpbml0eSwJInNjaGVkX2dldGFmZmluaXR5In0sIC8qIDQyNDAgKi8KKwl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJfSwgLyogNDI0MSAqLworCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogNDI0MiAqLworCXsgNSwJMCwJc3lzX2lvX2dldGV2ZW50cywJCSJpb19nZXRldmVudHMiCX0sIC8qIDQyNDMgKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiA0MjQ0ICovCisJeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogNDI0NSAqLworCXsgMSwJVFAsCXN5c19leGl0LAkJImV4aXRfZ3JvdXAiCX0sIC8qIDQyNDYgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSJ9LCAvKiA0MjQ3ICovCisJeyAxLAkwLAlzeXNfZXBvbGxfY3JlYXRlLAkiZXBvbGxfY3JlYXRlIgl9LCAvKiA0MjQ4ICovCisJeyA0LAkwLAlzeXNfZXBvbGxfY3RsLAkJImVwb2xsX2N0bCIJfSwgLyogNDI0OSAqLworCXsgMywJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogNDI1MCAqLworCXsgNSwJMCwJc3lzX3JlbWFwX2ZpbGVfcGFnZXMsCSJyZW1hcF9maWxlX3BhZ2VzIn0sIC8qIDQyNTEgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogNDI1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJInJlc3RhcnRfc3lzY2FsbCJ9LCAvKiA0MjUzICovCisJeyA3LAkwLAlzeXNfZmFkdmlzZTY0XzY0LAkiZmFkdmlzZTY0XzY0Igl9LCAvKiA0MjU0ICovCisJeyAzLAlURiwJc3lzX3N0YXRmczY0LAkJInN0YXRmczY0Igl9LCAvKiA0MjU1ICovCisJeyAyLAkwLAlzeXNfZnN0YXRmczY0LAkJImZzdGF0ZnM2NCIJfSwgLyogNDI1NiAqLworCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogNDI1NyAqLworCXsgNCwJMCwJc3lzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiA0MjU4ICovCisJeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDQyNTkgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiA0MjYwICovCisJeyAxLAkwLAlzeXNfdGltZXJfZGVsZXRlLAkidGltZXJfZGVsZXRlIgl9LCAvKiA0MjYxICovCisJeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDQyNjIgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogNDI2MyAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogNDI2NCAqLworCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiA0MjY1ICovCisJeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDQyNjYgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogNDI2NyAqLworCXsgNCwJMCwJc3lzX21iaW5kLAkJIm1iaW5kIgkJfSwgLyogNDI2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MjY5Igl9LCAvKiA0MjY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyNzAiCX0sIC8qIDQyNzAgKi8KKwl7IDQsCTAsCXN5c19tcV9vcGVuLAkJIm1xX29wZW4iCX0sIC8qIDQyNzEgKi8KKwl7IDEsCTAsCXN5c19tcV91bmxpbmssCQkibXFfdW5saW5rIgl9LCAvKiA0MjcyICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRzZW5kLAkibXFfdGltZWRzZW5kIgl9LCAvKiA0MjczICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRyZWNlaXZlLAkibXFfdGltZWRyZWNlaXZlIn0sIC8qIDQyNzQgKi8KKwl7IDIsCTAsCXN5c19tcV9ub3RpZnksCQkibXFfbm90aWZ5Igl9LCAvKiA0Mjc1ICovCisJeyAzLAkwLAlzeXNfbXFfZ2V0c2V0YXR0ciwJIm1xX2dldHNldGF0dHIiCX0sIC8qIDQyNzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDI3NyIJfSwgLyogNDI3NyAqLworCXsgNSwJVFAsCXN5c193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiA0Mjc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQyNzkiCX0sIC8qIDQyNzkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJhZGRfa2V5Igl9LCAvKiA0MjgwICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkicmVxdWVzdF9rZXkiCX0sIC8qIDQyODEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJrZXljdGwiCX0sIC8qIDQyODIgKi8KKwl7IDEsCTAsCXN5c19zZXRfdGhyZWFkX2FyZWEsCSJzZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDQyODMgKi8KKwl7IDAsCVRELAlwcmludGFyZ3MsCQkiaW5vdGlmeV9pbml0Igl9LCAvKiA0Mjg0ICovCisJeyAzLAlURCwJc3lzX2lub3RpZnlfYWRkX3dhdGNoLAkiaW5vdGlmeV9hZGRfd2F0Y2giIH0sIC8qIDQyODUgKi8KKwl7IDIsCVRELAlzeXNfaW5vdGlmeV9ybV93YXRjaCwJImlub3RpZnlfcm1fd2F0Y2giIH0sIC8qIDQyODYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJtaWdyYXRlX3BhZ2VzIgl9LCAvKiA0Mjg3ICovCisJeyA0LAlURHxURiwJc3lzX29wZW5hdCwJCSJvcGVuYXQiCX0sIC8qIDQyODggKi8KKwl7IDMsCVREfFRGLAlzeXNfbWtkaXJhdCwJCSJta2RpcmF0Igl9LCAvKiA0Mjg5ICovCisJeyA0LAlURHxURiwJc3lzX21rbm9kYXQsCQkibWtub2RhdCIJfSwgLyogNDI5MCAqLworCXsgNSwJVER8VEYsCXN5c19mY2hvd25hdCwJCSJmY2hvd25hdCIJfSwgLyogNDI5MSAqLworCXsgMywJVER8VEYsCXN5c19mdXRpbWVzYXQsCQkiZnV0aW1lc2F0Igl9LCAvKiA0MjkyICovCisJeyA0LAlURHxURCwJc3lzX25ld2ZzdGF0YXQsCQkibmV3ZnN0YXRhdCIJfSwgLyogNDI5MyAqLworCXsgMywJVER8VEYsCXN5c191bmxpbmthdCwJCSJ1bmxpbmthdCIJfSwgLyogNDI5NCAqLworCXsgNCwJVER8VEYsCXN5c19yZW5hbWVhdCwJCSJyZW5hbWVhdCIJfSwgLyogNDI5NSAqLworCXsgNSwJVER8VEYsCXN5c19saW5rYXQsCQkibGlua2F0Igl9LCAvKiA0Mjk2ICovCisJeyAzLAlURHxURiwJc3lzX3N5bWxpbmthdCwJCSJzeW1saW5rYXQiCX0sIC8qIDQyOTcgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVhZGxpbmthdCwJCSJyZWFkbGlua2F0Igl9LCAvKiA0Mjk4ICovCisJeyAzLAlURHxURiwJc3lzX2ZjaG1vZGF0LAkJImZjaG1vZGF0Igl9LCAvKiA0Mjk5ICovCisJeyAzLAlURHxURiwJc3lzX2ZhY2Nlc3NhdCwJCSJmYWNjZXNzYXQiCX0sIC8qIDQzMDAgKi8KKwl7IDYsCVRELAlzeXNfcHNlbGVjdDYsCQkicHNlbGVjdDYiCX0sIC8qIDQzMDEgKi8KKwl7IDUsCVRELAlzeXNfcHBvbGwsCQkicHBvbGwiCQl9LCAvKiA0MzAyICovCisJeyAxLAlUUCwJc3lzX3Vuc2hhcmUsCQkidW5zaGFyZSIJfSwgLyogNDMwMyAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJzcGxpY2UiCX0sIC8qIDQzMDQgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkic3luY19maWxlX3JhbmdlIiB9LCAvKiA0MzA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDYiCX0sIC8qIDQzMDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMwNyIJfSwgLyogNDMwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzA4Igl9LCAvKiA0MzA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMDkiCX0sIC8qIDQzMDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxMCIJfSwgLyogNDMxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzExIgl9LCAvKiA0MzExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTIiCX0sIC8qIDQzMTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxMyIJfSwgLyogNDMxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzE0Igl9LCAvKiA0MzE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTUiCX0sIC8qIDQzMTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxNiIJfSwgLyogNDMxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzE3Igl9LCAvKiA0MzE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMTgiCX0sIC8qIDQzMTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMxOSIJfSwgLyogNDMxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzIwIgl9LCAvKiA0MzIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjEiCX0sIC8qIDQzMjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyMiIJfSwgLyogNDMyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzIzIgl9LCAvKiA0MzIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjQiCX0sIC8qIDQzMjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyNSIJfSwgLyogNDMyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzI2Igl9LCAvKiA0MzI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMjciCX0sIC8qIDQzMjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMyOCIJfSwgLyogNDMyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzI5Igl9LCAvKiA0MzI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzAiCX0sIC8qIDQzMzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzMSIJfSwgLyogNDMzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzMyIgl9LCAvKiA0MzMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzMiCX0sIC8qIDQzMzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzNCIJfSwgLyogNDMzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzM1Igl9LCAvKiA0MzM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzYiCX0sIC8qIDQzMzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDMzNyIJfSwgLyogNDMzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzM4Igl9LCAvKiA0MzM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzMzkiCX0sIC8qIDQzMzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0MCIJfSwgLyogNDM0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQxIgl9LCAvKiA0MzQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNDIiCX0sIC8qIDQzNDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0MyIJfSwgLyogNDM0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQ0Igl9LCAvKiA0MzQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNDUiCX0sIC8qIDQzNDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0NiIJfSwgLyogNDM0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzQ3Igl9LCAvKiA0MzQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNDgiCX0sIC8qIDQzNDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM0OSIJfSwgLyogNDM0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzUwIgl9LCAvKiA0MzUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNTEiCX0sIC8qIDQzNTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM1MiIJfSwgLyogNDM1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzUzIgl9LCAvKiA0MzUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNTQiCX0sIC8qIDQzNTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM1NSIJfSwgLyogNDM1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzU2Igl9LCAvKiA0MzU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNTciCX0sIC8qIDQzNTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM1OCIJfSwgLyogNDM1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzU5Igl9LCAvKiA0MzU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNjAiCX0sIC8qIDQzNjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2MSIJfSwgLyogNDM2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzYyIgl9LCAvKiA0MzYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNjMiCX0sIC8qIDQzNjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2NCIJfSwgLyogNDM2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzY1Igl9LCAvKiA0MzY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNjYiCX0sIC8qIDQzNjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM2NyIJfSwgLyogNDM2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzY4Igl9LCAvKiA0MzY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNjkiCX0sIC8qIDQzNjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3MCIJfSwgLyogNDM3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzcxIgl9LCAvKiA0MzcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNzIiCX0sIC8qIDQzNzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3MyIJfSwgLyogNDM3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzc0Igl9LCAvKiA0Mzc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNzUiCX0sIC8qIDQzNzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3NiIJfSwgLyogNDM3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzc3Igl9LCAvKiA0Mzc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzNzgiCX0sIC8qIDQzNzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM3OSIJfSwgLyogNDM3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzgwIgl9LCAvKiA0MzgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzODEiCX0sIC8qIDQzODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM4MiIJfSwgLyogNDM4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzgzIgl9LCAvKiA0MzgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzODQiCX0sIC8qIDQzODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM4NSIJfSwgLyogNDM4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzg2Igl9LCAvKiA0Mzg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzODciCX0sIC8qIDQzODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM4OCIJfSwgLyogNDM4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzg5Igl9LCAvKiA0Mzg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOTAiCX0sIC8qIDQzOTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5MSIJfSwgLyogNDM5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180MzkyIgl9LCAvKiA0MzkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOTMiCX0sIC8qIDQzOTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5NCIJfSwgLyogNDM5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzk1Igl9LCAvKiA0Mzk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOTYiCX0sIC8qIDQzOTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDM5NyIJfSwgLyogNDM5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Mzk4Igl9LCAvKiA0Mzk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQzOTkiCX0sIC8qIDQzOTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwMCIJfSwgLyogNDQwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDAxIgl9LCAvKiA0NDAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MDIiCX0sIC8qIDQ0MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwMyIJfSwgLyogNDQwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDA0Igl9LCAvKiA0NDA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MDUiCX0sIC8qIDQ0MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwNiIJfSwgLyogNDQwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDA3Igl9LCAvKiA0NDA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MDgiCX0sIC8qIDQ0MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQwOSIJfSwgLyogNDQwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDEwIgl9LCAvKiA0NDEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MTEiCX0sIC8qIDQ0MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQxMiIJfSwgLyogNDQxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDEzIgl9LCAvKiA0NDEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MTQiCX0sIC8qIDQ0MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQxNSIJfSwgLyogNDQxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDE2Igl9LCAvKiA0NDE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MTciCX0sIC8qIDQ0MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQxOCIJfSwgLyogNDQxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDE5Igl9LCAvKiA0NDE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MjAiCX0sIC8qIDQ0MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyMSIJfSwgLyogNDQyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDIyIgl9LCAvKiA0NDIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MjMiCX0sIC8qIDQ0MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyNCIJfSwgLyogNDQyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDI1Igl9LCAvKiA0NDI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MjYiCX0sIC8qIDQ0MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQyNyIJfSwgLyogNDQyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDI4Igl9LCAvKiA0NDI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MjkiCX0sIC8qIDQ0MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzMCIJfSwgLyogNDQzMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDMxIgl9LCAvKiA0NDMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MzIiCX0sIC8qIDQ0MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzMyIJfSwgLyogNDQzMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDM0Igl9LCAvKiA0NDM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MzUiCX0sIC8qIDQ0MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzNiIJfSwgLyogNDQzNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDM3Igl9LCAvKiA0NDM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0MzgiCX0sIC8qIDQ0MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQzOSIJfSwgLyogNDQzOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQwIgl9LCAvKiA0NDQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NDEiCX0sIC8qIDQ0NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ0MiIJfSwgLyogNDQ0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQzIgl9LCAvKiA0NDQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NDQiCX0sIC8qIDQ0NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ0NSIJfSwgLyogNDQ0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQ2Igl9LCAvKiA0NDQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NDciCX0sIC8qIDQ0NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ0OCIJfSwgLyogNDQ0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDQ5Igl9LCAvKiA0NDQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NTAiCX0sIC8qIDQ0NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1MSIJfSwgLyogNDQ1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDUyIgl9LCAvKiA0NDUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NTMiCX0sIC8qIDQ0NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1NCIJfSwgLyogNDQ1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDU1Igl9LCAvKiA0NDU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NTYiCX0sIC8qIDQ0NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ1NyIJfSwgLyogNDQ1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDU4Igl9LCAvKiA0NDU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NTkiCX0sIC8qIDQ0NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2MCIJfSwgLyogNDQ2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDYxIgl9LCAvKiA0NDYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NjIiCX0sIC8qIDQ0NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2MyIJfSwgLyogNDQ2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDY0Igl9LCAvKiA0NDY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NjUiCX0sIC8qIDQ0NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2NiIJfSwgLyogNDQ2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDY3Igl9LCAvKiA0NDY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NjgiCX0sIC8qIDQ0NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ2OSIJfSwgLyogNDQ2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDcwIgl9LCAvKiA0NDcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NzEiCX0sIC8qIDQ0NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ3MiIJfSwgLyogNDQ3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDczIgl9LCAvKiA0NDczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NzQiCX0sIC8qIDQ0NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ3NSIJfSwgLyogNDQ3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDc2Igl9LCAvKiA0NDc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0NzciCX0sIC8qIDQ0NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ3OCIJfSwgLyogNDQ3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDc5Igl9LCAvKiA0NDc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0ODAiCX0sIC8qIDQ0ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4MSIJfSwgLyogNDQ4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDgyIgl9LCAvKiA0NDgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0ODMiCX0sIC8qIDQ0ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4NCIJfSwgLyogNDQ4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDg1Igl9LCAvKiA0NDg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0ODYiCX0sIC8qIDQ0ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ4NyIJfSwgLyogNDQ4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDg4Igl9LCAvKiA0NDg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0ODkiCX0sIC8qIDQ0ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5MCIJfSwgLyogNDQ5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDkxIgl9LCAvKiA0NDkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OTIiCX0sIC8qIDQ0OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5MyIJfSwgLyogNDQ5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDk0Igl9LCAvKiA0NDk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OTUiCX0sIC8qIDQ0OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5NiIJfSwgLyogNDQ5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NDk3Igl9LCAvKiA0NDk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ0OTgiCX0sIC8qIDQ0OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDQ5OSIJfSwgLyogNDQ5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTAwIgl9LCAvKiA0NTAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MDEiCX0sIC8qIDQ1MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUwMiIJfSwgLyogNDUwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTAzIgl9LCAvKiA0NTAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MDQiCX0sIC8qIDQ1MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUwNSIJfSwgLyogNDUwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTA2Igl9LCAvKiA0NTA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MDciCX0sIC8qIDQ1MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUwOCIJfSwgLyogNDUwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTA5Igl9LCAvKiA0NTA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MTAiCX0sIC8qIDQ1MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxMSIJfSwgLyogNDUxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTEyIgl9LCAvKiA0NTEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MTMiCX0sIC8qIDQ1MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxNCIJfSwgLyogNDUxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTE1Igl9LCAvKiA0NTE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MTYiCX0sIC8qIDQ1MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUxNyIJfSwgLyogNDUxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTE4Igl9LCAvKiA0NTE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MTkiCX0sIC8qIDQ1MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyMCIJfSwgLyogNDUyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTIxIgl9LCAvKiA0NTIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MjIiCX0sIC8qIDQ1MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyMyIJfSwgLyogNDUyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTI0Igl9LCAvKiA0NTI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MjUiCX0sIC8qIDQ1MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyNiIJfSwgLyogNDUyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTI3Igl9LCAvKiA0NTI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MjgiCX0sIC8qIDQ1MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUyOSIJfSwgLyogNDUyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTMwIgl9LCAvKiA0NTMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MzEiCX0sIC8qIDQ1MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUzMiIJfSwgLyogNDUzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTMzIgl9LCAvKiA0NTMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MzQiCX0sIC8qIDQ1MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUzNSIJfSwgLyogNDUzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTM2Igl9LCAvKiA0NTM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1MzciCX0sIC8qIDQ1MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDUzOCIJfSwgLyogNDUzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTM5Igl9LCAvKiA0NTM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NDAiCX0sIC8qIDQ1NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0MSIJfSwgLyogNDU0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQyIgl9LCAvKiA0NTQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NDMiCX0sIC8qIDQ1NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0NCIJfSwgLyogNDU0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQ1Igl9LCAvKiA0NTQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NDYiCX0sIC8qIDQ1NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU0NyIJfSwgLyogNDU0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTQ4Igl9LCAvKiA0NTQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NDkiCX0sIC8qIDQ1NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1MCIJfSwgLyogNDU1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTUxIgl9LCAvKiA0NTUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NTIiCX0sIC8qIDQ1NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1MyIJfSwgLyogNDU1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTU0Igl9LCAvKiA0NTU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NTUiCX0sIC8qIDQ1NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1NiIJfSwgLyogNDU1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTU3Igl9LCAvKiA0NTU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NTgiCX0sIC8qIDQ1NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU1OSIJfSwgLyogNDU1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTYwIgl9LCAvKiA0NTYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NjEiCX0sIC8qIDQ1NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU2MiIJfSwgLyogNDU2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTYzIgl9LCAvKiA0NTYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NjQiCX0sIC8qIDQ1NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU2NSIJfSwgLyogNDU2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTY2Igl9LCAvKiA0NTY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NjciCX0sIC8qIDQ1NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU2OCIJfSwgLyogNDU2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTY5Igl9LCAvKiA0NTY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NzAiCX0sIC8qIDQ1NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3MSIJfSwgLyogNDU3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTcyIgl9LCAvKiA0NTcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NzMiCX0sIC8qIDQ1NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3NCIJfSwgLyogNDU3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTc1Igl9LCAvKiA0NTc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NzYiCX0sIC8qIDQ1NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU3NyIJfSwgLyogNDU3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTc4Igl9LCAvKiA0NTc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1NzkiCX0sIC8qIDQ1NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4MCIJfSwgLyogNDU4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTgxIgl9LCAvKiA0NTgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1ODIiCX0sIC8qIDQ1ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4MyIJfSwgLyogNDU4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTg0Igl9LCAvKiA0NTg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1ODUiCX0sIC8qIDQ1ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4NiIJfSwgLyogNDU4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTg3Igl9LCAvKiA0NTg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1ODgiCX0sIC8qIDQ1ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU4OSIJfSwgLyogNDU4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTkwIgl9LCAvKiA0NTkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OTEiCX0sIC8qIDQ1OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU5MiIJfSwgLyogNDU5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTkzIgl9LCAvKiA0NTkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OTQiCX0sIC8qIDQ1OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU5NSIJfSwgLyogNDU5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTk2Igl9LCAvKiA0NTk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ1OTciCX0sIC8qIDQ1OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDU5OCIJfSwgLyogNDU5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NTk5Igl9LCAvKiA0NTk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MDAiCX0sIC8qIDQ2MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwMSIJfSwgLyogNDYwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjAyIgl9LCAvKiA0NjAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MDMiCX0sIC8qIDQ2MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwNCIJfSwgLyogNDYwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjA1Igl9LCAvKiA0NjA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MDYiCX0sIC8qIDQ2MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYwNyIJfSwgLyogNDYwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjA4Igl9LCAvKiA0NjA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MDkiCX0sIC8qIDQ2MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxMCIJfSwgLyogNDYxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjExIgl9LCAvKiA0NjExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MTIiCX0sIC8qIDQ2MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxMyIJfSwgLyogNDYxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjE0Igl9LCAvKiA0NjE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MTUiCX0sIC8qIDQ2MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxNiIJfSwgLyogNDYxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjE3Igl9LCAvKiA0NjE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MTgiCX0sIC8qIDQ2MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYxOSIJfSwgLyogNDYxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjIwIgl9LCAvKiA0NjIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MjEiCX0sIC8qIDQ2MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYyMiIJfSwgLyogNDYyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjIzIgl9LCAvKiA0NjIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MjQiCX0sIC8qIDQ2MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYyNSIJfSwgLyogNDYyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjI2Igl9LCAvKiA0NjI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MjciCX0sIC8qIDQ2MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYyOCIJfSwgLyogNDYyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjI5Igl9LCAvKiA0NjI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MzAiCX0sIC8qIDQ2MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzMSIJfSwgLyogNDYzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjMyIgl9LCAvKiA0NjMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MzMiCX0sIC8qIDQ2MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzNCIJfSwgLyogNDYzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjM1Igl9LCAvKiA0NjM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MzYiCX0sIC8qIDQ2MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDYzNyIJfSwgLyogNDYzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjM4Igl9LCAvKiA0NjM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2MzkiCX0sIC8qIDQ2MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0MCIJfSwgLyogNDY0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQxIgl9LCAvKiA0NjQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NDIiCX0sIC8qIDQ2NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0MyIJfSwgLyogNDY0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQ0Igl9LCAvKiA0NjQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NDUiCX0sIC8qIDQ2NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0NiIJfSwgLyogNDY0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjQ3Igl9LCAvKiA0NjQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NDgiCX0sIC8qIDQ2NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY0OSIJfSwgLyogNDY0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjUwIgl9LCAvKiA0NjUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NTEiCX0sIC8qIDQ2NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY1MiIJfSwgLyogNDY1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjUzIgl9LCAvKiA0NjUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NTQiCX0sIC8qIDQ2NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY1NSIJfSwgLyogNDY1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjU2Igl9LCAvKiA0NjU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NTciCX0sIC8qIDQ2NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY1OCIJfSwgLyogNDY1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjU5Igl9LCAvKiA0NjU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NjAiCX0sIC8qIDQ2NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2MSIJfSwgLyogNDY2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjYyIgl9LCAvKiA0NjYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NjMiCX0sIC8qIDQ2NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2NCIJfSwgLyogNDY2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjY1Igl9LCAvKiA0NjY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NjYiCX0sIC8qIDQ2NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY2NyIJfSwgLyogNDY2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjY4Igl9LCAvKiA0NjY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NjkiCX0sIC8qIDQ2NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3MCIJfSwgLyogNDY3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjcxIgl9LCAvKiA0NjcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NzIiCX0sIC8qIDQ2NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3MyIJfSwgLyogNDY3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njc0Igl9LCAvKiA0Njc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NzUiCX0sIC8qIDQ2NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3NiIJfSwgLyogNDY3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njc3Igl9LCAvKiA0Njc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2NzgiCX0sIC8qIDQ2NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY3OSIJfSwgLyogNDY3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjgwIgl9LCAvKiA0NjgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2ODEiCX0sIC8qIDQ2ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY4MiIJfSwgLyogNDY4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjgzIgl9LCAvKiA0NjgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2ODQiCX0sIC8qIDQ2ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY4NSIJfSwgLyogNDY4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njg2Igl9LCAvKiA0Njg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2ODciCX0sIC8qIDQ2ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY4OCIJfSwgLyogNDY4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njg5Igl9LCAvKiA0Njg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OTAiCX0sIC8qIDQ2OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5MSIJfSwgLyogNDY5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NjkyIgl9LCAvKiA0NjkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OTMiCX0sIC8qIDQ2OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5NCIJfSwgLyogNDY5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njk1Igl9LCAvKiA0Njk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OTYiCX0sIC8qIDQ2OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDY5NyIJfSwgLyogNDY5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Njk4Igl9LCAvKiA0Njk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ2OTkiCX0sIC8qIDQ2OTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwMCIJfSwgLyogNDcwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzAxIgl9LCAvKiA0NzAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MDIiCX0sIC8qIDQ3MDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwMyIJfSwgLyogNDcwMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzA0Igl9LCAvKiA0NzA0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MDUiCX0sIC8qIDQ3MDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwNiIJfSwgLyogNDcwNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzA3Igl9LCAvKiA0NzA3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MDgiCX0sIC8qIDQ3MDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcwOSIJfSwgLyogNDcwOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzEwIgl9LCAvKiA0NzEwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MTEiCX0sIC8qIDQ3MTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcxMiIJfSwgLyogNDcxMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzEzIgl9LCAvKiA0NzEzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MTQiCX0sIC8qIDQ3MTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcxNSIJfSwgLyogNDcxNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzE2Igl9LCAvKiA0NzE2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MTciCX0sIC8qIDQ3MTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcxOCIJfSwgLyogNDcxOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzE5Igl9LCAvKiA0NzE5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MjAiCX0sIC8qIDQ3MjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyMSIJfSwgLyogNDcyMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzIyIgl9LCAvKiA0NzIyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MjMiCX0sIC8qIDQ3MjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyNCIJfSwgLyogNDcyNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzI1Igl9LCAvKiA0NzI1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MjYiCX0sIC8qIDQ3MjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDcyNyIJfSwgLyogNDcyNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzI4Igl9LCAvKiA0NzI4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MjkiCX0sIC8qIDQ3MjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczMCIJfSwgLyogNDczMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzMxIgl9LCAvKiA0NzMxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MzIiCX0sIC8qIDQ3MzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczMyIJfSwgLyogNDczMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzM0Igl9LCAvKiA0NzM0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MzUiCX0sIC8qIDQ3MzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczNiIJfSwgLyogNDczNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzM3Igl9LCAvKiA0NzM3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3MzgiCX0sIC8qIDQ3MzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDczOSIJfSwgLyogNDczOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQwIgl9LCAvKiA0NzQwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NDEiCX0sIC8qIDQ3NDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc0MiIJfSwgLyogNDc0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQzIgl9LCAvKiA0NzQzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NDQiCX0sIC8qIDQ3NDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc0NSIJfSwgLyogNDc0NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQ2Igl9LCAvKiA0NzQ2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NDciCX0sIC8qIDQ3NDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc0OCIJfSwgLyogNDc0OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzQ5Igl9LCAvKiA0NzQ5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NTAiCX0sIC8qIDQ3NTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1MSIJfSwgLyogNDc1MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzUyIgl9LCAvKiA0NzUyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NTMiCX0sIC8qIDQ3NTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1NCIJfSwgLyogNDc1NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzU1Igl9LCAvKiA0NzU1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NTYiCX0sIC8qIDQ3NTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc1NyIJfSwgLyogNDc1NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzU4Igl9LCAvKiA0NzU4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NTkiCX0sIC8qIDQ3NTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2MCIJfSwgLyogNDc2MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzYxIgl9LCAvKiA0NzYxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NjIiCX0sIC8qIDQ3NjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2MyIJfSwgLyogNDc2MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzY0Igl9LCAvKiA0NzY0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NjUiCX0sIC8qIDQ3NjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2NiIJfSwgLyogNDc2NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzY3Igl9LCAvKiA0NzY3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NjgiCX0sIC8qIDQ3NjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc2OSIJfSwgLyogNDc2OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzcwIgl9LCAvKiA0NzcwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NzEiCX0sIC8qIDQ3NzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc3MiIJfSwgLyogNDc3MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzczIgl9LCAvKiA0NzczICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NzQiCX0sIC8qIDQ3NzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc3NSIJfSwgLyogNDc3NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzc2Igl9LCAvKiA0Nzc2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3NzciCX0sIC8qIDQ3NzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc3OCIJfSwgLyogNDc3OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzc5Igl9LCAvKiA0Nzc5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3ODAiCX0sIC8qIDQ3ODAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4MSIJfSwgLyogNDc4MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzgyIgl9LCAvKiA0NzgyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3ODMiCX0sIC8qIDQ3ODMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4NCIJfSwgLyogNDc4NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzg1Igl9LCAvKiA0Nzg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3ODYiCX0sIC8qIDQ3ODYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc4NyIJfSwgLyogNDc4NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzg4Igl9LCAvKiA0Nzg4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3ODkiCX0sIC8qIDQ3ODkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5MCIJfSwgLyogNDc5MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180NzkxIgl9LCAvKiA0NzkxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OTIiCX0sIC8qIDQ3OTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5MyIJfSwgLyogNDc5MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzk0Igl9LCAvKiA0Nzk0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OTUiCX0sIC8qIDQ3OTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5NiIJfSwgLyogNDc5NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180Nzk3Igl9LCAvKiA0Nzk3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ3OTgiCX0sIC8qIDQ3OTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDc5OSIJfSwgLyogNDc5OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODAwIgl9LCAvKiA0ODAwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MDEiCX0sIC8qIDQ4MDEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgwMiIJfSwgLyogNDgwMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODAzIgl9LCAvKiA0ODAzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MDQiCX0sIC8qIDQ4MDQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgwNSIJfSwgLyogNDgwNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODA2Igl9LCAvKiA0ODA2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MDciCX0sIC8qIDQ4MDcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgwOCIJfSwgLyogNDgwOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODA5Igl9LCAvKiA0ODA5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MTAiCX0sIC8qIDQ4MTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxMSIJfSwgLyogNDgxMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODEyIgl9LCAvKiA0ODEyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MTMiCX0sIC8qIDQ4MTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxNCIJfSwgLyogNDgxNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODE1Igl9LCAvKiA0ODE1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MTYiCX0sIC8qIDQ4MTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgxNyIJfSwgLyogNDgxNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODE4Igl9LCAvKiA0ODE4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MTkiCX0sIC8qIDQ4MTkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyMCIJfSwgLyogNDgyMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODIxIgl9LCAvKiA0ODIxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MjIiCX0sIC8qIDQ4MjIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyMyIJfSwgLyogNDgyMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODI0Igl9LCAvKiA0ODI0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MjUiCX0sIC8qIDQ4MjUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyNiIJfSwgLyogNDgyNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODI3Igl9LCAvKiA0ODI3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MjgiCX0sIC8qIDQ4MjggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgyOSIJfSwgLyogNDgyOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODMwIgl9LCAvKiA0ODMwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MzEiCX0sIC8qIDQ4MzEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgzMiIJfSwgLyogNDgzMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODMzIgl9LCAvKiA0ODMzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MzQiCX0sIC8qIDQ4MzQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgzNSIJfSwgLyogNDgzNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODM2Igl9LCAvKiA0ODM2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4MzciCX0sIC8qIDQ4MzcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDgzOCIJfSwgLyogNDgzOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODM5Igl9LCAvKiA0ODM5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NDAiCX0sIC8qIDQ4NDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0MSIJfSwgLyogNDg0MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQyIgl9LCAvKiA0ODQyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NDMiCX0sIC8qIDQ4NDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0NCIJfSwgLyogNDg0NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQ1Igl9LCAvKiA0ODQ1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NDYiCX0sIC8qIDQ4NDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg0NyIJfSwgLyogNDg0NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODQ4Igl9LCAvKiA0ODQ4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NDkiCX0sIC8qIDQ4NDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1MCIJfSwgLyogNDg1MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODUxIgl9LCAvKiA0ODUxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NTIiCX0sIC8qIDQ4NTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1MyIJfSwgLyogNDg1MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODU0Igl9LCAvKiA0ODU0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NTUiCX0sIC8qIDQ4NTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1NiIJfSwgLyogNDg1NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODU3Igl9LCAvKiA0ODU3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NTgiCX0sIC8qIDQ4NTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg1OSIJfSwgLyogNDg1OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODYwIgl9LCAvKiA0ODYwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NjEiCX0sIC8qIDQ4NjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg2MiIJfSwgLyogNDg2MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODYzIgl9LCAvKiA0ODYzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NjQiCX0sIC8qIDQ4NjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg2NSIJfSwgLyogNDg2NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODY2Igl9LCAvKiA0ODY2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NjciCX0sIC8qIDQ4NjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg2OCIJfSwgLyogNDg2OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODY5Igl9LCAvKiA0ODY5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NzAiCX0sIC8qIDQ4NzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3MSIJfSwgLyogNDg3MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODcyIgl9LCAvKiA0ODcyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NzMiCX0sIC8qIDQ4NzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3NCIJfSwgLyogNDg3NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODc1Igl9LCAvKiA0ODc1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NzYiCX0sIC8qIDQ4NzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg3NyIJfSwgLyogNDg3NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODc4Igl9LCAvKiA0ODc4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4NzkiCX0sIC8qIDQ4NzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4MCIJfSwgLyogNDg4MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODgxIgl9LCAvKiA0ODgxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4ODIiCX0sIC8qIDQ4ODIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4MyIJfSwgLyogNDg4MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODg0Igl9LCAvKiA0ODg0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4ODUiCX0sIC8qIDQ4ODUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4NiIJfSwgLyogNDg4NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODg3Igl9LCAvKiA0ODg3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4ODgiCX0sIC8qIDQ4ODggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg4OSIJfSwgLyogNDg4OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODkwIgl9LCAvKiA0ODkwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OTEiCX0sIC8qIDQ4OTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg5MiIJfSwgLyogNDg5MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODkzIgl9LCAvKiA0ODkzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OTQiCX0sIC8qIDQ4OTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg5NSIJfSwgLyogNDg5NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODk2Igl9LCAvKiA0ODk2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ4OTciCX0sIC8qIDQ4OTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDg5OCIJfSwgLyogNDg5OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180ODk5Igl9LCAvKiA0ODk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MDAiCX0sIC8qIDQ5MDAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwMSIJfSwgLyogNDkwMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTAyIgl9LCAvKiA0OTAyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MDMiCX0sIC8qIDQ5MDMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwNCIJfSwgLyogNDkwNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTA1Igl9LCAvKiA0OTA1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MDYiCX0sIC8qIDQ5MDYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkwNyIJfSwgLyogNDkwNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTA4Igl9LCAvKiA0OTA4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MDkiCX0sIC8qIDQ5MDkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxMCIJfSwgLyogNDkxMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTExIgl9LCAvKiA0OTExICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MTIiCX0sIC8qIDQ5MTIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxMyIJfSwgLyogNDkxMyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTE0Igl9LCAvKiA0OTE0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MTUiCX0sIC8qIDQ5MTUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxNiIJfSwgLyogNDkxNiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTE3Igl9LCAvKiA0OTE3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MTgiCX0sIC8qIDQ5MTggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkxOSIJfSwgLyogNDkxOSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTIwIgl9LCAvKiA0OTIwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MjEiCX0sIC8qIDQ5MjEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkyMiIJfSwgLyogNDkyMiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTIzIgl9LCAvKiA0OTIzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MjQiCX0sIC8qIDQ5MjQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkyNSIJfSwgLyogNDkyNSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTI2Igl9LCAvKiA0OTI2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MjciCX0sIC8qIDQ5MjcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkyOCIJfSwgLyogNDkyOCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTI5Igl9LCAvKiA0OTI5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MzAiCX0sIC8qIDQ5MzAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzMSIJfSwgLyogNDkzMSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTMyIgl9LCAvKiA0OTMyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MzMiCX0sIC8qIDQ5MzMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzNCIJfSwgLyogNDkzNCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTM1Igl9LCAvKiA0OTM1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MzYiCX0sIC8qIDQ5MzYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDkzNyIJfSwgLyogNDkzNyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTM4Igl9LCAvKiA0OTM4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5MzkiCX0sIC8qIDQ5MzkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0MCIJfSwgLyogNDk0MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQxIgl9LCAvKiA0OTQxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NDIiCX0sIC8qIDQ5NDIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0MyIJfSwgLyogNDk0MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQ0Igl9LCAvKiA0OTQ0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NDUiCX0sIC8qIDQ5NDUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0NiIJfSwgLyogNDk0NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTQ3Igl9LCAvKiA0OTQ3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NDgiCX0sIC8qIDQ5NDggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk0OSIJfSwgLyogNDk0OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTUwIgl9LCAvKiA0OTUwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NTEiCX0sIC8qIDQ5NTEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk1MiIJfSwgLyogNDk1MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTUzIgl9LCAvKiA0OTUzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NTQiCX0sIC8qIDQ5NTQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk1NSIJfSwgLyogNDk1NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTU2Igl9LCAvKiA0OTU2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NTciCX0sIC8qIDQ5NTcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk1OCIJfSwgLyogNDk1OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTU5Igl9LCAvKiA0OTU5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NjAiCX0sIC8qIDQ5NjAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2MSIJfSwgLyogNDk2MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTYyIgl9LCAvKiA0OTYyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NjMiCX0sIC8qIDQ5NjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2NCIJfSwgLyogNDk2NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTY1Igl9LCAvKiA0OTY1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NjYiCX0sIC8qIDQ5NjYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk2NyIJfSwgLyogNDk2NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTY4Igl9LCAvKiA0OTY4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NjkiCX0sIC8qIDQ5NjkgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3MCIJfSwgLyogNDk3MCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTcxIgl9LCAvKiA0OTcxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NzIiCX0sIC8qIDQ5NzIgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3MyIJfSwgLyogNDk3MyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTc0Igl9LCAvKiA0OTc0ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NzUiCX0sIC8qIDQ5NzUgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3NiIJfSwgLyogNDk3NiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTc3Igl9LCAvKiA0OTc3ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5NzgiCX0sIC8qIDQ5NzggKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk3OSIJfSwgLyogNDk3OSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTgwIgl9LCAvKiA0OTgwICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5ODEiCX0sIC8qIDQ5ODEgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk4MiIJfSwgLyogNDk4MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTgzIgl9LCAvKiA0OTgzICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5ODQiCX0sIC8qIDQ5ODQgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk4NSIJfSwgLyogNDk4NSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTg2Igl9LCAvKiA0OTg2ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5ODciCX0sIC8qIDQ5ODcgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk4OCIJfSwgLyogNDk4OCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTg5Igl9LCAvKiA0OTg5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTAiCX0sIC8qIDQ5OTAgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5MSIJfSwgLyogNDk5MSAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTkyIgl9LCAvKiA0OTkyICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTMiCX0sIC8qIDQ5OTMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5NCIJfSwgLyogNDk5NCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTk1Igl9LCAvKiA0OTk1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTYiCX0sIC8qIDQ5OTYgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJTWVNfNDk5NyIJfSwgLyogNDk5NyAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJIlNZU180OTk4Igl9LCAvKiA0OTk4ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiU1lTXzQ5OTkiCX0sIC8qIDQ5OTkgKi8gLyogZW5kIG9mIExpbnV4IG8zMiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3Bvd2VycGMvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9wb3dlcnBjL2Vycm5vZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI2NTlhNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9wb3dlcnBjL2Vycm5vZW50LmgKQEAgLTAsMCArMSw1MjkgQEAKKwkiRVJSTk9fMCIsIC8qIDAgKi8KKwkiRVBFUk0iLCAvKiAxICovCisJIkVOT0VOVCIsIC8qIDIgKi8KKwkiRVNSQ0giLCAvKiAzICovCisJIkVJTlRSIiwgLyogNCAqLworCSJFSU8iLCAvKiA1ICovCisJIkVOWElPIiwgLyogNiAqLworCSJFMkJJRyIsIC8qIDcgKi8KKwkiRU5PRVhFQyIsIC8qIDggKi8KKwkiRUJBREYiLCAvKiA5ICovCisJIkVDSElMRCIsIC8qIDEwICovCisJIkVBR0FJTiIsIC8qIDExICovCisJIkVOT01FTSIsIC8qIDEyICovCisJIkVBQ0NFUyIsIC8qIDEzICovCisJIkVGQVVMVCIsIC8qIDE0ICovCisJIkVOT1RCTEsiLCAvKiAxNSAqLworCSJFQlVTWSIsIC8qIDE2ICovCisJIkVFWElTVCIsIC8qIDE3ICovCisJIkVYREVWIiwgLyogMTggKi8KKwkiRU5PREVWIiwgLyogMTkgKi8KKwkiRU5PVERJUiIsIC8qIDIwICovCisJIkVJU0RJUiIsIC8qIDIxICovCisJIkVJTlZBTCIsIC8qIDIyICovCisJIkVORklMRSIsIC8qIDIzICovCisJIkVNRklMRSIsIC8qIDI0ICovCisJIkVOT1RUWSIsIC8qIDI1ICovCisJIkVUWFRCU1kiLCAvKiAyNiAqLworCSJFRkJJRyIsIC8qIDI3ICovCisJIkVOT1NQQyIsIC8qIDI4ICovCisJIkVTUElQRSIsIC8qIDI5ICovCisJIkVST0ZTIiwgLyogMzAgKi8KKwkiRU1MSU5LIiwgLyogMzEgKi8KKwkiRVBJUEUiLCAvKiAzMiAqLworCSJFRE9NIiwgLyogMzMgKi8KKwkiRVJBTkdFIiwgLyogMzQgKi8KKwkiRURFQURMSyIsIC8qIDM1ICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCisJIkVOT0xDSyIsIC8qIDM3ICovCisJIkVOT1NZUyIsIC8qIDM4ICovCisJIkVOT1RFTVBUWSIsIC8qIDM5ICovCisJIkVMT09QIiwgLyogNDAgKi8KKwkiRVJSTk9fNDEiLCAvKiA0MSAqLworCSJFTk9NU0ciLCAvKiA0MiAqLworCSJFSURSTSIsIC8qIDQzICovCisJIkVDSFJORyIsIC8qIDQ0ICovCisJIkVMMk5TWU5DIiwgLyogNDUgKi8KKwkiRUwzSExUIiwgLyogNDYgKi8KKwkiRUwzUlNUIiwgLyogNDcgKi8KKwkiRUxOUk5HIiwgLyogNDggKi8KKwkiRVVOQVRDSCIsIC8qIDQ5ICovCisJIkVOT0NTSSIsIC8qIDUwICovCisJIkVMMkhMVCIsIC8qIDUxICovCisJIkVCQURFIiwgLyogNTIgKi8KKwkiRUJBRFIiLCAvKiA1MyAqLworCSJFWEZVTEwiLCAvKiA1NCAqLworCSJFTk9BTk8iLCAvKiA1NSAqLworCSJFQkFEUlFDIiwgLyogNTYgKi8KKwkiRUJBRFNMVCIsIC8qIDU3ICovCisJIkVERUFETE9DSyIsIC8qIDU4ICovCisJIkVCRk9OVCIsIC8qIDU5ICovCisJIkVOT1NUUiIsIC8qIDYwICovCisJIkVOT0RBVEEiLCAvKiA2MSAqLworCSJFVElNRSIsIC8qIDYyICovCisJIkVOT1NSIiwgLyogNjMgKi8KKwkiRU5PTkVUIiwgLyogNjQgKi8KKwkiRU5PUEtHIiwgLyogNjUgKi8KKwkiRVJFTU9URSIsIC8qIDY2ICovCisJIkVOT0xJTksiLCAvKiA2NyAqLworCSJFQURWIiwgLyogNjggKi8KKwkiRVNSTU5UIiwgLyogNjkgKi8KKwkiRUNPTU0iLCAvKiA3MCAqLworCSJFUFJPVE8iLCAvKiA3MSAqLworCSJFTVVMVElIT1AiLCAvKiA3MiAqLworCSJFRE9URE9UIiwgLyogNzMgKi8KKwkiRUJBRE1TRyIsIC8qIDc0ICovCisJIkVPVkVSRkxPVyIsIC8qIDc1ICovCisJIkVOT1RVTklRIiwgLyogNzYgKi8KKwkiRUJBREZEIiwgLyogNzcgKi8KKwkiRVJFTUNIRyIsIC8qIDc4ICovCisJIkVMSUJBQ0MiLCAvKiA3OSAqLworCSJFTElCQkFEIiwgLyogODAgKi8KKwkiRUxJQlNDTiIsIC8qIDgxICovCisJIkVMSUJNQVgiLCAvKiA4MiAqLworCSJFTElCRVhFQyIsIC8qIDgzICovCisJIkVJTFNFUSIsIC8qIDg0ICovCisJIkVSRVNUQVJUIiwgLyogODUgKi8KKwkiRVNUUlBJUEUiLCAvKiA4NiAqLworCSJFVVNFUlMiLCAvKiA4NyAqLworCSJFTk9UU09DSyIsIC8qIDg4ICovCisJIkVERVNUQUREUlJFUSIsIC8qIDg5ICovCisJIkVNU0dTSVpFIiwgLyogOTAgKi8KKwkiRVBST1RPVFlQRSIsIC8qIDkxICovCisJIkVOT1BST1RPT1BUIiwgLyogOTIgKi8KKwkiRVBST1RPTk9TVVBQT1JUIiwgLyogOTMgKi8KKwkiRVNPQ0tUTk9TVVBQT1JUIiwgLyogOTQgKi8KKwkiRU9QTk9UU1VQUCIsIC8qIDk1ICovCisJIkVQRk5PU1VQUE9SVCIsIC8qIDk2ICovCisJIkVBRk5PU1VQUE9SVCIsIC8qIDk3ICovCisJIkVBRERSSU5VU0UiLCAvKiA5OCAqLworCSJFQUREUk5PVEFWQUlMIiwgLyogOTkgKi8KKwkiRU5FVERPV04iLCAvKiAxMDAgKi8KKwkiRU5FVFVOUkVBQ0giLCAvKiAxMDEgKi8KKwkiRU5FVFJFU0VUIiwgLyogMTAyICovCisJIkVDT05OQUJPUlRFRCIsIC8qIDEwMyAqLworCSJFQ09OTlJFU0VUIiwgLyogMTA0ICovCisJIkVOT0JVRlMiLCAvKiAxMDUgKi8KKwkiRUlTQ09OTiIsIC8qIDEwNiAqLworCSJFTk9UQ09OTiIsIC8qIDEwNyAqLworCSJFU0hVVERPV04iLCAvKiAxMDggKi8KKwkiRVRPT01BTllSRUZTIiwgLyogMTA5ICovCisJIkVUSU1FRE9VVCIsIC8qIDExMCAqLworCSJFQ09OTlJFRlVTRUQiLCAvKiAxMTEgKi8KKwkiRUhPU1RET1dOIiwgLyogMTEyICovCisJIkVIT1NUVU5SRUFDSCIsIC8qIDExMyAqLworCSJFQUxSRUFEWSIsIC8qIDExNCAqLworCSJFSU5QUk9HUkVTUyIsIC8qIDExNSAqLworCSJFU1RBTEUiLCAvKiAxMTYgKi8KKwkiRVVDTEVBTiIsIC8qIDExNyAqLworCSJFTk9UTkFNIiwgLyogMTE4ICovCisJIkVOQVZBSUwiLCAvKiAxMTkgKi8KKwkiRUlTTkFNIiwgLyogMTIwICovCisJIkVSRU1PVEVJTyIsIC8qIDEyMSAqLworCSJFRFFVT1QiLCAvKiAxMjIgKi8KKwkiRU5PTUVESVVNIiwgLyogMTIzICovCisJIkVNRURJVU1UWVBFIiwgLyogMTI0ICovCisJIkVSUk5PXzEyNSIsIC8qIDEyNSAqLworCSJFUlJOT18xMjYiLCAvKiAxMjYgKi8KKwkiRVJSTk9fMTI3IiwgLyogMTI3ICovCisJIkVSUk5PXzEyOCIsIC8qIDEyOCAqLworCSJFUlJOT18xMjkiLCAvKiAxMjkgKi8KKwkiRVJSTk9fMTMwIiwgLyogMTMwICovCisJIkVSUk5PXzEzMSIsIC8qIDEzMSAqLworCSJFUlJOT18xMzIiLCAvKiAxMzIgKi8KKwkiRVJSTk9fMTMzIiwgLyogMTMzICovCisJIkVSUk5PXzEzNCIsIC8qIDEzNCAqLworCSJFUlJOT18xMzUiLCAvKiAxMzUgKi8KKwkiRVJSTk9fMTM2IiwgLyogMTM2ICovCisJIkVSUk5PXzEzNyIsIC8qIDEzNyAqLworCSJFUlJOT18xMzgiLCAvKiAxMzggKi8KKwkiRVJSTk9fMTM5IiwgLyogMTM5ICovCisJIkVSUk5PXzE0MCIsIC8qIDE0MCAqLworCSJFUlJOT18xNDEiLCAvKiAxNDEgKi8KKwkiRVJSTk9fMTQyIiwgLyogMTQyICovCisJIkVSUk5PXzE0MyIsIC8qIDE0MyAqLworCSJFUlJOT18xNDQiLCAvKiAxNDQgKi8KKwkiRVJSTk9fMTQ1IiwgLyogMTQ1ICovCisJIkVSUk5PXzE0NiIsIC8qIDE0NiAqLworCSJFUlJOT18xNDciLCAvKiAxNDcgKi8KKwkiRVJSTk9fMTQ4IiwgLyogMTQ4ICovCisJIkVSUk5PXzE0OSIsIC8qIDE0OSAqLworCSJFUlJOT18xNTAiLCAvKiAxNTAgKi8KKwkiRVJSTk9fMTUxIiwgLyogMTUxICovCisJIkVSUk5PXzE1MiIsIC8qIDE1MiAqLworCSJFUlJOT18xNTMiLCAvKiAxNTMgKi8KKwkiRVJSTk9fMTU0IiwgLyogMTU0ICovCisJIkVSUk5PXzE1NSIsIC8qIDE1NSAqLworCSJFUlJOT18xNTYiLCAvKiAxNTYgKi8KKwkiRVJSTk9fMTU3IiwgLyogMTU3ICovCisJIkVSUk5PXzE1OCIsIC8qIDE1OCAqLworCSJFUlJOT18xNTkiLCAvKiAxNTkgKi8KKwkiRVJSTk9fMTYwIiwgLyogMTYwICovCisJIkVSUk5PXzE2MSIsIC8qIDE2MSAqLworCSJFUlJOT18xNjIiLCAvKiAxNjIgKi8KKwkiRVJSTk9fMTYzIiwgLyogMTYzICovCisJIkVSUk5PXzE2NCIsIC8qIDE2NCAqLworCSJFUlJOT18xNjUiLCAvKiAxNjUgKi8KKwkiRVJSTk9fMTY2IiwgLyogMTY2ICovCisJIkVSUk5PXzE2NyIsIC8qIDE2NyAqLworCSJFUlJOT18xNjgiLCAvKiAxNjggKi8KKwkiRVJSTk9fMTY5IiwgLyogMTY5ICovCisJIkVSUk5PXzE3MCIsIC8qIDE3MCAqLworCSJFUlJOT18xNzEiLCAvKiAxNzEgKi8KKwkiRVJSTk9fMTcyIiwgLyogMTcyICovCisJIkVSUk5PXzE3MyIsIC8qIDE3MyAqLworCSJFUlJOT18xNzQiLCAvKiAxNzQgKi8KKwkiRVJSTk9fMTc1IiwgLyogMTc1ICovCisJIkVSUk5PXzE3NiIsIC8qIDE3NiAqLworCSJFUlJOT18xNzciLCAvKiAxNzcgKi8KKwkiRVJSTk9fMTc4IiwgLyogMTc4ICovCisJIkVSUk5PXzE3OSIsIC8qIDE3OSAqLworCSJFUlJOT18xODAiLCAvKiAxODAgKi8KKwkiRVJSTk9fMTgxIiwgLyogMTgxICovCisJIkVSUk5PXzE4MiIsIC8qIDE4MiAqLworCSJFUlJOT18xODMiLCAvKiAxODMgKi8KKwkiRVJSTk9fMTg0IiwgLyogMTg0ICovCisJIkVSUk5PXzE4NSIsIC8qIDE4NSAqLworCSJFUlJOT18xODYiLCAvKiAxODYgKi8KKwkiRVJSTk9fMTg3IiwgLyogMTg3ICovCisJIkVSUk5PXzE4OCIsIC8qIDE4OCAqLworCSJFUlJOT18xODkiLCAvKiAxODkgKi8KKwkiRVJSTk9fMTkwIiwgLyogMTkwICovCisJIkVSUk5PXzE5MSIsIC8qIDE5MSAqLworCSJFUlJOT18xOTIiLCAvKiAxOTIgKi8KKwkiRVJSTk9fMTkzIiwgLyogMTkzICovCisJIkVSUk5PXzE5NCIsIC8qIDE5NCAqLworCSJFUlJOT18xOTUiLCAvKiAxOTUgKi8KKwkiRVJSTk9fMTk2IiwgLyogMTk2ICovCisJIkVSUk5PXzE5NyIsIC8qIDE5NyAqLworCSJFUlJOT18xOTgiLCAvKiAxOTggKi8KKwkiRVJSTk9fMTk5IiwgLyogMTk5ICovCisJIkVSUk5PXzIwMCIsIC8qIDIwMCAqLworCSJFUlJOT18yMDEiLCAvKiAyMDEgKi8KKwkiRVJSTk9fMjAyIiwgLyogMjAyICovCisJIkVSUk5PXzIwMyIsIC8qIDIwMyAqLworCSJFUlJOT18yMDQiLCAvKiAyMDQgKi8KKwkiRVJSTk9fMjA1IiwgLyogMjA1ICovCisJIkVSUk5PXzIwNiIsIC8qIDIwNiAqLworCSJFUlJOT18yMDciLCAvKiAyMDcgKi8KKwkiRVJSTk9fMjA4IiwgLyogMjA4ICovCisJIkVSUk5PXzIwOSIsIC8qIDIwOSAqLworCSJFUlJOT18yMTAiLCAvKiAyMTAgKi8KKwkiRVJSTk9fMjExIiwgLyogMjExICovCisJIkVSUk5PXzIxMiIsIC8qIDIxMiAqLworCSJFUlJOT18yMTMiLCAvKiAyMTMgKi8KKwkiRVJSTk9fMjE0IiwgLyogMjE0ICovCisJIkVSUk5PXzIxNSIsIC8qIDIxNSAqLworCSJFUlJOT18yMTYiLCAvKiAyMTYgKi8KKwkiRVJSTk9fMjE3IiwgLyogMjE3ICovCisJIkVSUk5PXzIxOCIsIC8qIDIxOCAqLworCSJFUlJOT18yMTkiLCAvKiAyMTkgKi8KKwkiRVJSTk9fMjIwIiwgLyogMjIwICovCisJIkVSUk5PXzIyMSIsIC8qIDIyMSAqLworCSJFUlJOT18yMjIiLCAvKiAyMjIgKi8KKwkiRVJSTk9fMjIzIiwgLyogMjIzICovCisJIkVSUk5PXzIyNCIsIC8qIDIyNCAqLworCSJFUlJOT18yMjUiLCAvKiAyMjUgKi8KKwkiRVJSTk9fMjI2IiwgLyogMjI2ICovCisJIkVSUk5PXzIyNyIsIC8qIDIyNyAqLworCSJFUlJOT18yMjgiLCAvKiAyMjggKi8KKwkiRVJSTk9fMjI5IiwgLyogMjI5ICovCisJIkVSUk5PXzIzMCIsIC8qIDIzMCAqLworCSJFUlJOT18yMzEiLCAvKiAyMzEgKi8KKwkiRVJSTk9fMjMyIiwgLyogMjMyICovCisJIkVSUk5PXzIzMyIsIC8qIDIzMyAqLworCSJFUlJOT18yMzQiLCAvKiAyMzQgKi8KKwkiRVJSTk9fMjM1IiwgLyogMjM1ICovCisJIkVSUk5PXzIzNiIsIC8qIDIzNiAqLworCSJFUlJOT18yMzciLCAvKiAyMzcgKi8KKwkiRVJSTk9fMjM4IiwgLyogMjM4ICovCisJIkVSUk5PXzIzOSIsIC8qIDIzOSAqLworCSJFUlJOT18yNDAiLCAvKiAyNDAgKi8KKwkiRVJSTk9fMjQxIiwgLyogMjQxICovCisJIkVSUk5PXzI0MiIsIC8qIDI0MiAqLworCSJFUlJOT18yNDMiLCAvKiAyNDMgKi8KKwkiRVJSTk9fMjQ0IiwgLyogMjQ0ICovCisJIkVSUk5PXzI0NSIsIC8qIDI0NSAqLworCSJFUlJOT18yNDYiLCAvKiAyNDYgKi8KKwkiRVJSTk9fMjQ3IiwgLyogMjQ3ICovCisJIkVSUk5PXzI0OCIsIC8qIDI0OCAqLworCSJFUlJOT18yNDkiLCAvKiAyNDkgKi8KKwkiRVJSTk9fMjUwIiwgLyogMjUwICovCisJIkVSUk5PXzI1MSIsIC8qIDI1MSAqLworCSJFUlJOT18yNTIiLCAvKiAyNTIgKi8KKwkiRVJSTk9fMjUzIiwgLyogMjUzICovCisJIkVSUk5PXzI1NCIsIC8qIDI1NCAqLworCSJFUlJOT18yNTUiLCAvKiAyNTUgKi8KKwkiRVJSTk9fMjU2IiwgLyogMjU2ICovCisJIkVSUk5PXzI1NyIsIC8qIDI1NyAqLworCSJFUlJOT18yNTgiLCAvKiAyNTggKi8KKwkiRVJSTk9fMjU5IiwgLyogMjU5ICovCisJIkVSUk5PXzI2MCIsIC8qIDI2MCAqLworCSJFUlJOT18yNjEiLCAvKiAyNjEgKi8KKwkiRVJSTk9fMjYyIiwgLyogMjYyICovCisJIkVSUk5PXzI2MyIsIC8qIDI2MyAqLworCSJFUlJOT18yNjQiLCAvKiAyNjQgKi8KKwkiRVJSTk9fMjY1IiwgLyogMjY1ICovCisJIkVSUk5PXzI2NiIsIC8qIDI2NiAqLworCSJFUlJOT18yNjciLCAvKiAyNjcgKi8KKwkiRVJSTk9fMjY4IiwgLyogMjY4ICovCisJIkVSUk5PXzI2OSIsIC8qIDI2OSAqLworCSJFUlJOT18yNzAiLCAvKiAyNzAgKi8KKwkiRVJSTk9fMjcxIiwgLyogMjcxICovCisJIkVSUk5PXzI3MiIsIC8qIDI3MiAqLworCSJFUlJOT18yNzMiLCAvKiAyNzMgKi8KKwkiRVJSTk9fMjc0IiwgLyogMjc0ICovCisJIkVSUk5PXzI3NSIsIC8qIDI3NSAqLworCSJFUlJOT18yNzYiLCAvKiAyNzYgKi8KKwkiRVJSTk9fMjc3IiwgLyogMjc3ICovCisJIkVSUk5PXzI3OCIsIC8qIDI3OCAqLworCSJFUlJOT18yNzkiLCAvKiAyNzkgKi8KKwkiRVJSTk9fMjgwIiwgLyogMjgwICovCisJIkVSUk5PXzI4MSIsIC8qIDI4MSAqLworCSJFUlJOT18yODIiLCAvKiAyODIgKi8KKwkiRVJSTk9fMjgzIiwgLyogMjgzICovCisJIkVSUk5PXzI4NCIsIC8qIDI4NCAqLworCSJFUlJOT18yODUiLCAvKiAyODUgKi8KKwkiRVJSTk9fMjg2IiwgLyogMjg2ICovCisJIkVSUk5PXzI4NyIsIC8qIDI4NyAqLworCSJFUlJOT18yODgiLCAvKiAyODggKi8KKwkiRVJSTk9fMjg5IiwgLyogMjg5ICovCisJIkVSUk5PXzI5MCIsIC8qIDI5MCAqLworCSJFUlJOT18yOTEiLCAvKiAyOTEgKi8KKwkiRVJSTk9fMjkyIiwgLyogMjkyICovCisJIkVSUk5PXzI5MyIsIC8qIDI5MyAqLworCSJFUlJOT18yOTQiLCAvKiAyOTQgKi8KKwkiRVJSTk9fMjk1IiwgLyogMjk1ICovCisJIkVSUk5PXzI5NiIsIC8qIDI5NiAqLworCSJFUlJOT18yOTciLCAvKiAyOTcgKi8KKwkiRVJSTk9fMjk4IiwgLyogMjk4ICovCisJIkVSUk5PXzI5OSIsIC8qIDI5OSAqLworCSJFUlJOT18zMDAiLCAvKiAzMDAgKi8KKwkiRVJSTk9fMzAxIiwgLyogMzAxICovCisJIkVSUk5PXzMwMiIsIC8qIDMwMiAqLworCSJFUlJOT18zMDMiLCAvKiAzMDMgKi8KKwkiRVJSTk9fMzA0IiwgLyogMzA0ICovCisJIkVSUk5PXzMwNSIsIC8qIDMwNSAqLworCSJFUlJOT18zMDYiLCAvKiAzMDYgKi8KKwkiRVJSTk9fMzA3IiwgLyogMzA3ICovCisJIkVSUk5PXzMwOCIsIC8qIDMwOCAqLworCSJFUlJOT18zMDkiLCAvKiAzMDkgKi8KKwkiRVJSTk9fMzEwIiwgLyogMzEwICovCisJIkVSUk5PXzMxMSIsIC8qIDMxMSAqLworCSJFUlJOT18zMTIiLCAvKiAzMTIgKi8KKwkiRVJSTk9fMzEzIiwgLyogMzEzICovCisJIkVSUk5PXzMxNCIsIC8qIDMxNCAqLworCSJFUlJOT18zMTUiLCAvKiAzMTUgKi8KKwkiRVJSTk9fMzE2IiwgLyogMzE2ICovCisJIkVSUk5PXzMxNyIsIC8qIDMxNyAqLworCSJFUlJOT18zMTgiLCAvKiAzMTggKi8KKwkiRVJSTk9fMzE5IiwgLyogMzE5ICovCisJIkVSUk5PXzMyMCIsIC8qIDMyMCAqLworCSJFUlJOT18zMjEiLCAvKiAzMjEgKi8KKwkiRVJSTk9fMzIyIiwgLyogMzIyICovCisJIkVSUk5PXzMyMyIsIC8qIDMyMyAqLworCSJFUlJOT18zMjQiLCAvKiAzMjQgKi8KKwkiRVJSTk9fMzI1IiwgLyogMzI1ICovCisJIkVSUk5PXzMyNiIsIC8qIDMyNiAqLworCSJFUlJOT18zMjciLCAvKiAzMjcgKi8KKwkiRVJSTk9fMzI4IiwgLyogMzI4ICovCisJIkVSUk5PXzMyOSIsIC8qIDMyOSAqLworCSJFUlJOT18zMzAiLCAvKiAzMzAgKi8KKwkiRVJSTk9fMzMxIiwgLyogMzMxICovCisJIkVSUk5PXzMzMiIsIC8qIDMzMiAqLworCSJFUlJOT18zMzMiLCAvKiAzMzMgKi8KKwkiRVJSTk9fMzM0IiwgLyogMzM0ICovCisJIkVSUk5PXzMzNSIsIC8qIDMzNSAqLworCSJFUlJOT18zMzYiLCAvKiAzMzYgKi8KKwkiRVJSTk9fMzM3IiwgLyogMzM3ICovCisJIkVSUk5PXzMzOCIsIC8qIDMzOCAqLworCSJFUlJOT18zMzkiLCAvKiAzMzkgKi8KKwkiRVJSTk9fMzQwIiwgLyogMzQwICovCisJIkVSUk5PXzM0MSIsIC8qIDM0MSAqLworCSJFUlJOT18zNDIiLCAvKiAzNDIgKi8KKwkiRVJSTk9fMzQzIiwgLyogMzQzICovCisJIkVSUk5PXzM0NCIsIC8qIDM0NCAqLworCSJFUlJOT18zNDUiLCAvKiAzNDUgKi8KKwkiRVJSTk9fMzQ2IiwgLyogMzQ2ICovCisJIkVSUk5PXzM0NyIsIC8qIDM0NyAqLworCSJFUlJOT18zNDgiLCAvKiAzNDggKi8KKwkiRVJSTk9fMzQ5IiwgLyogMzQ5ICovCisJIkVSUk5PXzM1MCIsIC8qIDM1MCAqLworCSJFUlJOT18zNTEiLCAvKiAzNTEgKi8KKwkiRVJSTk9fMzUyIiwgLyogMzUyICovCisJIkVSUk5PXzM1MyIsIC8qIDM1MyAqLworCSJFUlJOT18zNTQiLCAvKiAzNTQgKi8KKwkiRVJSTk9fMzU1IiwgLyogMzU1ICovCisJIkVSUk5PXzM1NiIsIC8qIDM1NiAqLworCSJFUlJOT18zNTciLCAvKiAzNTcgKi8KKwkiRVJSTk9fMzU4IiwgLyogMzU4ICovCisJIkVSUk5PXzM1OSIsIC8qIDM1OSAqLworCSJFUlJOT18zNjAiLCAvKiAzNjAgKi8KKwkiRVJSTk9fMzYxIiwgLyogMzYxICovCisJIkVSUk5PXzM2MiIsIC8qIDM2MiAqLworCSJFUlJOT18zNjMiLCAvKiAzNjMgKi8KKwkiRVJSTk9fMzY0IiwgLyogMzY0ICovCisJIkVSUk5PXzM2NSIsIC8qIDM2NSAqLworCSJFUlJOT18zNjYiLCAvKiAzNjYgKi8KKwkiRVJSTk9fMzY3IiwgLyogMzY3ICovCisJIkVSUk5PXzM2OCIsIC8qIDM2OCAqLworCSJFUlJOT18zNjkiLCAvKiAzNjkgKi8KKwkiRVJSTk9fMzcwIiwgLyogMzcwICovCisJIkVSUk5PXzM3MSIsIC8qIDM3MSAqLworCSJFUlJOT18zNzIiLCAvKiAzNzIgKi8KKwkiRVJSTk9fMzczIiwgLyogMzczICovCisJIkVSUk5PXzM3NCIsIC8qIDM3NCAqLworCSJFUlJOT18zNzUiLCAvKiAzNzUgKi8KKwkiRVJSTk9fMzc2IiwgLyogMzc2ICovCisJIkVSUk5PXzM3NyIsIC8qIDM3NyAqLworCSJFUlJOT18zNzgiLCAvKiAzNzggKi8KKwkiRVJSTk9fMzc5IiwgLyogMzc5ICovCisJIkVSUk5PXzM4MCIsIC8qIDM4MCAqLworCSJFUlJOT18zODEiLCAvKiAzODEgKi8KKwkiRVJSTk9fMzgyIiwgLyogMzgyICovCisJIkVSUk5PXzM4MyIsIC8qIDM4MyAqLworCSJFUlJOT18zODQiLCAvKiAzODQgKi8KKwkiRVJSTk9fMzg1IiwgLyogMzg1ICovCisJIkVSUk5PXzM4NiIsIC8qIDM4NiAqLworCSJFUlJOT18zODciLCAvKiAzODcgKi8KKwkiRVJSTk9fMzg4IiwgLyogMzg4ICovCisJIkVSUk5PXzM4OSIsIC8qIDM4OSAqLworCSJFUlJOT18zOTAiLCAvKiAzOTAgKi8KKwkiRVJSTk9fMzkxIiwgLyogMzkxICovCisJIkVSUk5PXzM5MiIsIC8qIDM5MiAqLworCSJFUlJOT18zOTMiLCAvKiAzOTMgKi8KKwkiRVJSTk9fMzk0IiwgLyogMzk0ICovCisJIkVSUk5PXzM5NSIsIC8qIDM5NSAqLworCSJFUlJOT18zOTYiLCAvKiAzOTYgKi8KKwkiRVJSTk9fMzk3IiwgLyogMzk3ICovCisJIkVSUk5PXzM5OCIsIC8qIDM5OCAqLworCSJFUlJOT18zOTkiLCAvKiAzOTkgKi8KKwkiRVJSTk9fNDAwIiwgLyogNDAwICovCisJIkVSUk5PXzQwMSIsIC8qIDQwMSAqLworCSJFUlJOT180MDIiLCAvKiA0MDIgKi8KKwkiRVJSTk9fNDAzIiwgLyogNDAzICovCisJIkVSUk5PXzQwNCIsIC8qIDQwNCAqLworCSJFUlJOT180MDUiLCAvKiA0MDUgKi8KKwkiRVJSTk9fNDA2IiwgLyogNDA2ICovCisJIkVSUk5PXzQwNyIsIC8qIDQwNyAqLworCSJFUlJOT180MDgiLCAvKiA0MDggKi8KKwkiRVJSTk9fNDA5IiwgLyogNDA5ICovCisJIkVSUk5PXzQxMCIsIC8qIDQxMCAqLworCSJFUlJOT180MTEiLCAvKiA0MTEgKi8KKwkiRVJSTk9fNDEyIiwgLyogNDEyICovCisJIkVSUk5PXzQxMyIsIC8qIDQxMyAqLworCSJFUlJOT180MTQiLCAvKiA0MTQgKi8KKwkiRVJSTk9fNDE1IiwgLyogNDE1ICovCisJIkVSUk5PXzQxNiIsIC8qIDQxNiAqLworCSJFUlJOT180MTciLCAvKiA0MTcgKi8KKwkiRVJSTk9fNDE4IiwgLyogNDE4ICovCisJIkVSUk5PXzQxOSIsIC8qIDQxOSAqLworCSJFUlJOT180MjAiLCAvKiA0MjAgKi8KKwkiRVJSTk9fNDIxIiwgLyogNDIxICovCisJIkVSUk5PXzQyMiIsIC8qIDQyMiAqLworCSJFUlJOT180MjMiLCAvKiA0MjMgKi8KKwkiRVJSTk9fNDI0IiwgLyogNDI0ICovCisJIkVSUk5PXzQyNSIsIC8qIDQyNSAqLworCSJFUlJOT180MjYiLCAvKiA0MjYgKi8KKwkiRVJSTk9fNDI3IiwgLyogNDI3ICovCisJIkVSUk5PXzQyOCIsIC8qIDQyOCAqLworCSJFUlJOT180MjkiLCAvKiA0MjkgKi8KKwkiRVJSTk9fNDMwIiwgLyogNDMwICovCisJIkVSUk5PXzQzMSIsIC8qIDQzMSAqLworCSJFUlJOT180MzIiLCAvKiA0MzIgKi8KKwkiRVJSTk9fNDMzIiwgLyogNDMzICovCisJIkVSUk5PXzQzNCIsIC8qIDQzNCAqLworCSJFUlJOT180MzUiLCAvKiA0MzUgKi8KKwkiRVJSTk9fNDM2IiwgLyogNDM2ICovCisJIkVSUk5PXzQzNyIsIC8qIDQzNyAqLworCSJFUlJOT180MzgiLCAvKiA0MzggKi8KKwkiRVJSTk9fNDM5IiwgLyogNDM5ICovCisJIkVSUk5PXzQ0MCIsIC8qIDQ0MCAqLworCSJFUlJOT180NDEiLCAvKiA0NDEgKi8KKwkiRVJSTk9fNDQyIiwgLyogNDQyICovCisJIkVSUk5PXzQ0MyIsIC8qIDQ0MyAqLworCSJFUlJOT180NDQiLCAvKiA0NDQgKi8KKwkiRVJSTk9fNDQ1IiwgLyogNDQ1ICovCisJIkVSUk5PXzQ0NiIsIC8qIDQ0NiAqLworCSJFUlJOT180NDciLCAvKiA0NDcgKi8KKwkiRVJSTk9fNDQ4IiwgLyogNDQ4ICovCisJIkVSUk5PXzQ0OSIsIC8qIDQ0OSAqLworCSJFUlJOT180NTAiLCAvKiA0NTAgKi8KKwkiRVJSTk9fNDUxIiwgLyogNDUxICovCisJIkVSUk5PXzQ1MiIsIC8qIDQ1MiAqLworCSJFUlJOT180NTMiLCAvKiA0NTMgKi8KKwkiRVJSTk9fNDU0IiwgLyogNDU0ICovCisJIkVSUk5PXzQ1NSIsIC8qIDQ1NSAqLworCSJFUlJOT180NTYiLCAvKiA0NTYgKi8KKwkiRVJSTk9fNDU3IiwgLyogNDU3ICovCisJIkVSUk5PXzQ1OCIsIC8qIDQ1OCAqLworCSJFUlJOT180NTkiLCAvKiA0NTkgKi8KKwkiRVJSTk9fNDYwIiwgLyogNDYwICovCisJIkVSUk5PXzQ2MSIsIC8qIDQ2MSAqLworCSJFUlJOT180NjIiLCAvKiA0NjIgKi8KKwkiRVJSTk9fNDYzIiwgLyogNDYzICovCisJIkVSUk5PXzQ2NCIsIC8qIDQ2NCAqLworCSJFUlJOT180NjUiLCAvKiA0NjUgKi8KKwkiRVJSTk9fNDY2IiwgLyogNDY2ICovCisJIkVSUk5PXzQ2NyIsIC8qIDQ2NyAqLworCSJFUlJOT180NjgiLCAvKiA0NjggKi8KKwkiRVJSTk9fNDY5IiwgLyogNDY5ICovCisJIkVSUk5PXzQ3MCIsIC8qIDQ3MCAqLworCSJFUlJOT180NzEiLCAvKiA0NzEgKi8KKwkiRVJSTk9fNDcyIiwgLyogNDcyICovCisJIkVSUk5PXzQ3MyIsIC8qIDQ3MyAqLworCSJFUlJOT180NzQiLCAvKiA0NzQgKi8KKwkiRVJSTk9fNDc1IiwgLyogNDc1ICovCisJIkVSUk5PXzQ3NiIsIC8qIDQ3NiAqLworCSJFUlJOT180NzciLCAvKiA0NzcgKi8KKwkiRVJSTk9fNDc4IiwgLyogNDc4ICovCisJIkVSUk5PXzQ3OSIsIC8qIDQ3OSAqLworCSJFUlJOT180ODAiLCAvKiA0ODAgKi8KKwkiRVJSTk9fNDgxIiwgLyogNDgxICovCisJIkVSUk5PXzQ4MiIsIC8qIDQ4MiAqLworCSJFUlJOT180ODMiLCAvKiA0ODMgKi8KKwkiRVJSTk9fNDg0IiwgLyogNDg0ICovCisJIkVSUk5PXzQ4NSIsIC8qIDQ4NSAqLworCSJFUlJOT180ODYiLCAvKiA0ODYgKi8KKwkiRVJSTk9fNDg3IiwgLyogNDg3ICovCisJIkVSUk5PXzQ4OCIsIC8qIDQ4OCAqLworCSJFUlJOT180ODkiLCAvKiA0ODkgKi8KKwkiRVJSTk9fNDkwIiwgLyogNDkwICovCisJIkVSUk5PXzQ5MSIsIC8qIDQ5MSAqLworCSJFUlJOT180OTIiLCAvKiA0OTIgKi8KKwkiRVJSTk9fNDkzIiwgLyogNDkzICovCisJIkVSUk5PXzQ5NCIsIC8qIDQ5NCAqLworCSJFUlJOT180OTUiLCAvKiA0OTUgKi8KKwkiRVJSTk9fNDk2IiwgLyogNDk2ICovCisJIkVSUk5PXzQ5NyIsIC8qIDQ5NyAqLworCSJFUlJOT180OTgiLCAvKiA0OTggKi8KKwkiRVJSTk9fNDk5IiwgLyogNDk5ICovCisJIkVSUk5PXzUwMCIsIC8qIDUwMCAqLworCSJFUlJOT181MDEiLCAvKiA1MDEgKi8KKwkiRVJSTk9fNTAyIiwgLyogNTAyICovCisJIkVSUk5PXzUwMyIsIC8qIDUwMyAqLworCSJFUlJOT181MDQiLCAvKiA1MDQgKi8KKwkiRVJSTk9fNTA1IiwgLyogNTA1ICovCisJIkVSUk5PXzUwNiIsIC8qIDUwNiAqLworCSJFUlJOT181MDciLCAvKiA1MDcgKi8KKwkiRVJSTk9fNTA4IiwgLyogNTA4ICovCisJIkVSUk5PXzUwOSIsIC8qIDUwOSAqLworCSJFUlJOT181MTAiLCAvKiA1MTAgKi8KKwkiRVJSTk9fNTExIiwgLyogNTExICovCisJIkVSRVNUQVJUU1lTIiwgLyogNTEyICovCisJIkVSRVNUQVJUTk9JTlRSIiwgLyogNTEzICovCisJIkVSRVNUQVJUTk9IQU5EIiwgLyogNTE0ICovCisJIkVOT0lPQ1RMQ01EIiwgLyogNTE1ICovCisJIkVSUk5PXzUxNiIsIC8qIDUxNiAqLworCSJFUlJOT181MTciLCAvKiA1MTcgKi8KKwkiRVJSTk9fNTE4IiwgLyogNTE4ICovCisJIkVSUk5PXzUxOSIsIC8qIDUxOSAqLworCSJFUlJOT181MjAiLCAvKiA1MjAgKi8KKwkiRUJBREhBTkRMRSIsIC8qIDUyMSAqLworCSJFTk9UU1lOQyIsIC8qIDUyMiAqLworCSJFQkFEQ09PS0lFIiwgLyogNTIzICovCisJIkVOT1RTVVBQIiwgLyogNTI0ICovCisJIkVUT09TTUFMTCIsIC8qIDUyNSAqLworCSJFU0VSVkVSRkFVTFQiLCAvKiA1MjYgKi8KKwkiRUJBRFRZUEUiLCAvKiA1MjcgKi8KKwkiRUpVS0VCT1giLCAvKiA1MjggKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9wb3dlcnBjL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvcG93ZXJwYy9pb2N0bGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2MDEwZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvcG93ZXJwYy9pb2N0bGVudC5oCkBAIC0wLDAgKzEsMTE4MSBAQAorCS8qIEdlbmVyYXRlZCBieSBpb2N0bHNvcnQgKi8KKwl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAorCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAorCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAorCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAorCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCisJeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAorCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAorCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAorCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCisJeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWR0VUIiwJMHgxMjZhfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLRUxWU0VUIiwJMHgxMjZifSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaR0VUIiwJMHgxMjcwfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLQlNaU0VUIiwJMHgxMjcxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRTY0IiwJMHgxMjcyfSwKKwl7InNjc2kvc2cuaCIsCSJTR19TRVRfVElNRU9VVCIsCTB4MjIwMX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1RJTUVPVVQiLAkweDIyMDJ9LAorCXsic2NzaS9zZy5oIiwJIlNHX0VNVUxBVEVEX0hPU1QiLAkweDIyMDN9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9UUkFOU0ZPUk0iLAkweDIyMDR9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9UUkFOU0ZPUk0iLAkweDIyMDV9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9DT01NQU5EX1EiLAkweDIyNzB9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9DT01NQU5EX1EiLAkweDIyNzF9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwJMHgyMjcyfSwKKwl7InNjc2kvc2cuaCIsCSJTR19TRVRfUkVTRVJWRURfU0laRSIsCTB4MjI3NX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NDU0lfSUQiLAkweDIyNzZ9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwJMHgyMjc5fSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfTE9XX0RNQSIsCTB4MjI3YX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0ZPUkNFX1BBQ0tfSUQiLAkweDIyN2J9LAorCXsic2NzaS9zZy5oIiwJIlNHX0dFVF9QQUNLX0lEIiwJMHgyMjdjfSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfTlVNX1dBSVRJTkciLAkweDIyN2R9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NFVF9ERUJVRyIsCTB4MjI3ZX0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1NHX1RBQkxFU0laRSIsCTB4MjI3Zn0sCisJeyJzY3NpL3NnLmgiLAkiU0dfR0VUX1ZFUlNJT05fTlVNIiwJMHgyMjgyfSwKKwl7InNjc2kvc2cuaCIsCSJTR19ORVhUX0NNRF9MRU4iLAkweDIyODN9LAorCXsic2NzaS9zZy5oIiwJIlNHX1NDU0lfUkVTRVQiLAkweDIyODR9LAorCXsic2NzaS9zZy5oIiwJIlNHX0lPIiwJMHgyMjg1fSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfUkVRVUVTVF9UQUJMRSIsCTB4MjI4Nn0sCisJeyJzY3NpL3NnLmgiLAkiU0dfU0VUX0tFRVBfT1JQSEFOIiwJMHgyMjg3fSwKKwl7InNjc2kvc2cuaCIsCSJTR19HRVRfS0VFUF9PUlBIQU4iLAkweDIyODh9LAorCXsibGludXgvaTJvLmgiLAkiQkxLSTJPR1JTVFJBVCIsCTB4MzIwMX0sCisJeyJsaW51eC9pMm8uaCIsCSJCTEtJMk9HV1NUUkFUIiwJMHgzMjAyfSwKKwl7ImxpbnV4L2kyby5oIiwJIkJMS0kyT1NSU1RSQVQiLAkweDMyMDN9LAorCXsibGludXgvaTJvLmgiLAkiQkxLSTJPU1dTVFJBVCIsCTB4MzIwNH0sCisJeyJsaW51eC9yYWRlb25mYi5oIiwJIkZCSU9fUkFERU9OX0dFVF9NSVJST1IiLAkweDQwMDN9LAorCXsibGludXgvcmFkZW9uZmIuaCIsCSJGQklPX1JBREVPTl9TRVRfTUlSUk9SIiwJMHg0MDA0fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfSU5GTyIsCTB4NDEwMH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FDUVVJUkUiLAkweDQxMDF9LAorCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NUQU5EQlkiLAkweDQxMDF9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRUxFQVNFIiwJMHg0MTAyfSwKKwl7ImxpbnV4L2FwbV9iaW9zLmgiLAkiQVBNX0lPQ19TVVNQRU5EIiwJMHg0MTAyfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfU0VUVVAiLAkweDQxMDN9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19SRVNFUlZFIiwJMHg0MTA0fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfUFJPVEVDVCIsCTB4NDEwNX0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0FMTE9DQVRFIiwJMHg0MTA2fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfREVBTExPQ0FURSIsCTB4NDEwN30sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX0JJTkQiLAkweDQxMDh9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19VTkJJTkQiLAkweDQxMDl9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19TTEVFUCIsCTB4NDIwMH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVFBDSUlORk8iLAkweDQyMDF9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwJMHg0MjAxfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUSU5USU5GTyIsCTB4NDIwMn0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLAkweDQyMDJ9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVRJTlRJTkZPIiwJMHg0MjAzfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfR0VUX01PREVMIiwJMHg0MjAzfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUTk9ERU5BTUUiLAkweDQyMDR9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19IQVNfQURCIiwJMHg0MjA0fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfU0VUTk9ERU5BTUUiLAkweDQyMDV9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19DQU5fU0xFRVAiLAkweDQyMDV9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRIRUFSVEJFQVQiLAkweDQyMDZ9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HUkFCX0JBQ0tMSUdIVCIsCTB4NDIwNn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfREVSRUdESVNLIiwJMHg0MjBjfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfUkVHTkVXRElTSyIsCTB4NDIwZH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1JFR05FV0QiLAkweDQyMGV9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRMVU5JTkZPIiwJMHg0MjExfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfQklHX1BBU1NUSFJVIiwJMHg0MjEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHRUZGRUNUUyIsCTB4NDU4NH0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JBQiIsCTB4NDU5MH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfVlNDUkVFTklORk8iLAkweDQ2MDB9LAorCXsibGludXgvZmIuaCIsCSJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwJMHg0NjAxfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9GU0NSRUVOSU5GTyIsCTB4NDYwMn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRDTUFQIiwJMHg0NjA0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVENNQVAiLAkweDQ2MDV9LAorCXsibGludXgvZmIuaCIsCSJGQklPUEFOX0RJU1BMQVkiLAkweDQ2MDZ9LAorCXsibGludXgvZmIuaCIsCSJGQklPX0NVUlNPUiIsCTB4NDYwOH0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfQ09OMkZCTUFQIiwJMHg0NjBmfSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9DT04yRkJNQVAiLAkweDQ2MTB9LAorCXsibGludXgvZmIuaCIsCSJGQklPQkxBTksiLAkweDQ2MTF9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX1ZCTEFOSyIsCTB4NDYxMn0sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9fQUxMT0MiLAkweDQ2MTN9LAorCXsibGludXgvZmIuaCIsCSJGQklPX0ZSRUUiLAkweDQ2MTR9LAorCXsibGludXgvZmIuaCIsCSJGQklPR0VUX0dMWVBIIiwJMHg0NjE1fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9IV0NJTkZPIiwJMHg0NjE2fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT1BVVF9NT0RFSU5GTyIsCTB4NDYxN30sCisJeyJsaW51eC9mYi5oIiwJIkZCSU9HRVRfRElTUElORk8iLAkweDQ2MTh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJGQklPX1dBSVRGT1JWU1lOQyIsCTB4NDYyMH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVkVSU0lPTiIsCTB4NDgwMX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NBUFBMSUNBVElPTiIsCTB4NDgwMn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHREVWSU5GTyIsCTB4NDgwM30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHU1RSSU5HIiwJMHg0ODA0fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0lOSVRSRVBPUlQiLAkweDQ4MDV9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1JFUE9SVCIsCTB4NDgwN30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTUkVQT1JUIiwJMHg0ODA4fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlRJTkZPIiwJMHg0ODA5fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dGSUVMRElORk8iLAkweDQ4MGF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VTQUdFIiwJMHg0ODBifSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ1NVU0FHRSIsCTB4NDgwY30sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHVUNPREUiLAkweDQ4MGR9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0ZMQUciLAkweDQ4MGV9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU0ZMQUciLAkweDQ4MGZ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0NPTExFQ1RJT05JTkRFWCIsCTB4NDgxMH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHQ09MTEVDVElPTklORk8iLAkweDQ4MTF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBSUYiLAkweDQ5MDF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUYiLAkweDQ5MDJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRTQ0YiLAkweDQ5MDN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHQ0YiLAkweDQ5MDR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTk0iLAkweDQ5MDV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETk0iLAkweDQ5MDZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHTk0iLAkweDQ5MDd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRTRVQiLAkweDQ5MDh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRTRVQiLAkweDQ5MDl9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRWRVIiLAkweDQ5MGF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRIVVAiLAkweDQ5MGJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRHU1QiLAkweDQ5MGN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRCUkoiLAkweDQ5MGR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTSUdQUkYiLAkweDQ5MGV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRQUkYiLAkweDQ5MGZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRQUkYiLAkweDQ5MTB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRNQVAiLAkweDQ5MTF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NTRVRNQVAiLAkweDQ5MTJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBU0wiLAkweDQ5MTN9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRESUwiLAkweDQ5MTR9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVRDUFMiLAkweDQ5MTV9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NHRVREVlIiLAkweDQ5MTZ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRMQ1IiLAkweDQ5MTd9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVREV1JTRVQiLAkweDQ5MTh9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRBTE4iLAkweDQ5MjB9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRETE4iLAkweDQ5MjF9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NORVRHUE4iLAkweDQ5MjJ9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEQkdWQVIiLAkweDQ5N2Z9LAorCXsibGludXgvaXNkbi5oIiwJIklJT0NEUlZDVEwiLAkweDQ5ODB9LAorCXsibGludXgva2QuaCIsCSJLSU9DU09VTkQiLAkweDRiMmZ9LAorCXsibGludXgva2QuaCIsCSJLRE1LVE9ORSIsCTB4NGIzMH0sCisJeyJsaW51eC9rZC5oIiwJIktER0VUTEVEIiwJMHg0YjMxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTRVRMRUQiLAkweDRiMzJ9LAorCXsibGludXgva2QuaCIsCSJLREdLQlRZUEUiLAkweDRiMzN9LAorCXsibGludXgva2QuaCIsCSJLREFERElPIiwJMHg0YjM0fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RERUxJTyIsCTB4NGIzNX0sCisJeyJsaW51eC9rZC5oIiwJIktERU5BQklPIiwJMHg0YjM2fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RESVNBQklPIiwJMHg0YjM3fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTRVRNT0RFIiwJMHg0YjNhfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHRVRNT0RFIiwJMHg0YjNifSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RNQVBESVNQIiwJMHg0YjNjfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RVTk1BUERJU1AiLAkweDRiM2R9LAorCXsibGludXgva2QuaCIsCSJHSU9fU0NSTk1BUCIsCTB4NGI0MH0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19TQ1JOTUFQIiwJMHg0YjQxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JNT0RFIiwJMHg0YjQ0fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTS0JNT0RFIiwJMHg0YjQ1fSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHS0JFTlQiLAkweDRiNDZ9LAorCXsibGludXgva2QuaCIsCSJLRFNLQkVOVCIsCTB4NGI0N30sCisJeyJsaW51eC9rZC5oIiwJIktER0tCU0VOVCIsCTB4NGI0OH0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCU0VOVCIsCTB4NGI0OX0sCisJeyJsaW51eC9rZC5oIiwJIktER0tCRElBQ1IiLAkweDRiNGF9LAorCXsibGludXgva2QuaCIsCSJLRFNLQkRJQUNSIiwJMHg0YjRifSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RHRVRLRVlDT0RFIiwJMHg0YjRjfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTRVRLRVlDT0RFIiwJMHg0YjRkfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RTSUdBQ0NFUFQiLAkweDRiNGV9LAorCXsibGludXgva2QuaCIsCSJLREtCRFJFUCIsCTB4NGI1Mn0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19GT05UIiwJMHg0YjYwfSwKKwl7ImxpbnV4L2tkLmgiLAkiUElPX0ZPTlQiLAkweDRiNjF9LAorCXsibGludXgva2QuaCIsCSJLREdLQk1FVEEiLAkweDRiNjJ9LAorCXsibGludXgva2QuaCIsCSJLRFNLQk1FVEEiLAkweDRiNjN9LAorCXsibGludXgva2QuaCIsCSJLREdLQkxFRCIsCTB4NGI2NH0sCisJeyJsaW51eC9rZC5oIiwJIktEU0tCTEVEIiwJMHg0YjY1fSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSU1BUCIsCTB4NGI2Nn0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19VTklNQVAiLAkweDRiNjd9LAorCXsibGludXgva2QuaCIsCSJQSU9fVU5JTUFQQ0xSIiwJMHg0YjY4fSwKKwl7ImxpbnV4L2tkLmgiLAkiR0lPX1VOSVNDUk5NQVAiLAkweDRiNjl9LAorCXsibGludXgva2QuaCIsCSJQSU9fVU5JU0NSTk1BUCIsCTB4NGI2YX0sCisJeyJsaW51eC9rZC5oIiwJIkdJT19GT05UWCIsCTB4NGI2Yn0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19GT05UWCIsCTB4NGI2Y30sCisJeyJsaW51eC9rZC5oIiwJIlBJT19GT05UUkVTRVQiLAkweDRiNmR9LAorCXsibGludXgva2QuaCIsCSJHSU9fQ01BUCIsCTB4NGI3MH0sCisJeyJsaW51eC9rZC5oIiwJIlBJT19DTUFQIiwJMHg0YjcxfSwKKwl7ImxpbnV4L2tkLmgiLAkiS0RGT05UT1AiLAkweDRiNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9PTERfTUlYRVJfSU5GTyIsCTB4NGQ2NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9BQ0NFU1MiLAkweDRkNjZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUdDIiwJMHg0ZDY3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSXzNEU0UiLAkweDRkNjh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTEiLAkweDRkNmZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTIiLAkweDRkNzB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTMiLAkweDRkNzF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTQiLAkweDRkNzJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfUFJJVkFURTUiLAkweDRkNzN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfR0VUTEVWRUxTIiwJMHg0ZDc0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1NFVExFVkVMUyIsCTB4NGQ3NX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJPU1NfR0VUVkVSU0lPTiIsCTB4NGQ3Nn0sCisJeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfVElNRU9VVCIsCTB4NGUyMH0sCisJeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElVU0JfUkVTRVRfREVWSUNFIiwJMHg0ZTIxfSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVVTQl9SRVNFVF9QSVBFUyIsCTB4NGUyMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1JFU0VUIiwJMHg1MDAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1lOQyIsCTB4NTAwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NQRUVEIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX1JBVEUiLAkweDUwMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVEVSRU8iLAkweDUwMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRCTEtTSVpFIiwJMHg1MDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURk1UIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX1BDTV9SRUFEX0JJVFMiLAkweDUwMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9DSEFOTkVMUyIsCTB4NTAwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1BPU1QiLAkweDUwMDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TVUJESVZJREUiLAkweDUwMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRGUkFHTUVOVCIsCTB4NTAwYX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVEZNVFMiLAkweDUwMGJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPU1BBQ0UiLAkweDUwMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJU1BBQ0UiLAkweDUwMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9OT05CTE9DSyIsCTB4NTAwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENBUFMiLAkweDUwMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRUUklHR0VSIiwJMHg1MDEwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVElQVFIiLAkweDUwMTF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPUFRSIiwJMHg1MDEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQSU5CVUYiLAkweDUwMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9NQVBPVVRCVUYiLAkweDUwMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTWU5DUk8iLAkweDUwMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVREVVBMRVgiLAkweDUwMTZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRPREVMQVkiLAkweDUwMTd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QUk9GSUxFIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQ0hBTk5FTE1BU0siLAkweDUwNDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9CSU5EX0NIQU5ORUwiLAkweDUwNDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TRVRTUERJRiIsCTB4NTA0Mn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVFNQRElGIiwJMHg1MDQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVQiLAkweDUxMDB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9TWU5DIiwJMHg1MTAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9JTkZPIiwJMHg1MTAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfQ1RSTFJBVEUiLAkweDUxMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRPVVRDT1VOVCIsCTB4NTEwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVElOQ09VTlQiLAkweDUxMDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QRVJDTU9ERSIsCTB4NTEwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fTE9BRF9JTlNUUiIsCTB4NTEwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1RFU1RNSURJIiwJMHg1MTA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUkVTRVRTQU1QTEVTIiwJMHg1MTA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJTWU5USFMiLAkweDUxMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9OUk1JRElTIiwJMHg1MTBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX0lORk8iLAkweDUxMGN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9USFJFU0hPTEQiLAkweDUxMGR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX01FTUFWTCIsCTB4NTEwZX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRk1fNE9QX0VOQUJMRSIsCTB4NTEwZn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1BBTklDIiwJMHg1MTExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfT1VUT0ZCQU5EIiwJMHg1MTEyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUVElNRSIsCTB4NTExM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSUQiLAkweDUxMTR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0NPTlRST0wiLAkweDUxMTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX1JFTU9WRVNBTVBMRSIsCTB4NTExNn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRHRVRFTlRDTlQiLAkweDUyMDB9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQUREVE9FTlRDTlQiLAkweDUyMDF9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VUUE9PTCIsCTB4NTIwMn0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRBRERFTlRST1BZIiwJMHg1MjAzfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJORFpBUEVOVENOVCIsCTB4NTIwNH0sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRDTEVBUlBPT0wiLAkweDUyMDZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBBVVNFIiwJMHg1MzAxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRVNVTUUiLAkweDUzMDJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlNU0YiLAkweDUzMDN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlUUktJTkQiLAkweDUzMDR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NIRFIiLAkweDUzMDV9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURUT0NFTlRSWSIsCTB4NTMwNn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RPUCIsCTB4NTMwN30sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NU1RBUlQiLAkweDUzMDh9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUVKRUNUIiwJMHg1MzA5fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01WT0xDVFJMIiwJMHg1MzBhfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01TVUJDSE5MIiwJMHg1MzBifSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01SRUFETU9ERTIiLAkweDUzMGN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURNT0RFMSIsCTB4NTMwZH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVBREFVRElPIiwJMHg1MzBlfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01FSkVDVF9TVyIsCTB4NTMwZn0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NTVVMVElTRVNTSU9OIiwJMHg1MzEwfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fR0VUX01DTiIsCTB4NTMxMX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NUkVTRVQiLAkweDUzMTJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVZPTFJFQUQiLAkweDUzMTN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURSQVciLAkweDUzMTR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURDT09LRUQiLAkweDUzMTV9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFRUsiLAkweDUzMTZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVBMQVlCTEsiLAkweDUzMTd9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVJFQURBTEwiLAkweDUzMTh9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTUNMT1NFVFJBWSIsCTB4NTMxOX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NR0VUU1BJTkRPV04iLAkweDUzMWR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTVNFVFNQSU5ET1dOIiwJMHg1MzFlfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VUX09QVElPTlMiLAkweDUzMjB9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DTEVBUl9PUFRJT05TIiwJMHg1MzIxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX1NQRUVEIiwJMHg1MzIyfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fU0VMRUNUX0RJU0MiLAkweDUzMjN9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9NRURJQV9DSEFOR0VEIiwJMHg1MzI1fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRFJJVkVfU1RBVFVTIiwJMHg1MzI2fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fRElTQ19TVEFUVVMiLAkweDUzMjd9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9DSEFOR0VSX05TTE9UUyIsCTB4NTMyOH0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX0xPQ0tET09SIiwJMHg1MzI5fSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiQ0RST01fREVCVUciLAkweDUzMzB9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsCTB4NTMzMX0sCisJeyJzY3NpL3Njc2lfaW9jdGwuaCIsCSJTQ1NJX0lPQ1RMX0RPT1JMT0NLIiwJMHg1MzgwfSwKKwl7InNjc2kvc2NzaV9pb2N0bC5oIiwJIlNDU0lfSU9DVExfRE9PUlVOTE9DSyIsCTB4NTM4MX0sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NQVVESU9CVUZTSVoiLAkweDUzODJ9LAorCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9HRVRfSURMVU4iLAkweDUzODJ9LAorCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9UQUdHRURfRU5BQkxFIiwJMHg1MzgzfSwKKwl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLAkweDUzODR9LAorCXsic2NzaS9zY3NpLmgiLAkiU0NTSV9JT0NUTF9QUk9CRV9IT1NUIiwJMHg1Mzg1fSwKKwl7InNjc2kvc2NzaS5oIiwJIlNDU0lfSU9DVExfR0VUX0JVU19OVU1CRVIiLAkweDUzODZ9LAorCXsibGludXgvY2Ryb20uaCIsCSJEVkRfUkVBRF9TVFJVQ1QiLAkweDUzOTB9LAorCXsibGludXgvY2Ryb20uaCIsCSJEVkRfV1JJVEVfU1RSVUNUIiwJMHg1MzkxfSwKKwl7ImxpbnV4L2Nkcm9tLmgiLAkiRFZEX0FVVEgiLAkweDUzOTJ9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9TRU5EX1BBQ0tFVCIsCTB4NTM5M30sCisJeyJsaW51eC9jZHJvbS5oIiwJIkNEUk9NX05FWFRfV1JJVEFCTEUiLAkweDUzOTR9LAorCXsibGludXgvY2Ryb20uaCIsCSJDRFJPTV9MQVNUX1dSSVRURU4iLAkweDUzOTV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NUQVJUIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RPUCIsCTB4NTQwM30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX0NPTlRJTlVFIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfVEVNUE8iLAkweDU0MDV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RJIiwJMHg1NDEyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUdFVCIsCTB4NTQxNX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSVMiLAkweDU0MTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNQklDIiwJMHg1NDE3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTVNFVCIsCTB4NTQxOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTT0ZUQ0FSIiwJMHg1NDE5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NPRlRDQVIiLAkweDU0MWF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX0RFVl9DUkVBVEUiLAkweDU1MDF9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfREVWX0RFU1RST1kiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQlVMSyIsCTB4NTUwMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVEVQIiwJMHg1NTAzfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsCTB4NTUwNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwJMHg1NTA1fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0dFVERSSVZFUiIsCTB4NTUwOH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TVUJNSVRVUkIiLAkweDU1MGF9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ0FSRFVSQiIsCTB4NTUwYn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCIiwJMHg1NTBjfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX1JFQVBVUkJOREVMQVkiLAkweDU1MGR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfRElTQ1NJR05BTCIsCTB4NTUwZX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEFJTUlOVEVSRkFDRSIsCTB4NTUwZn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUxFQVNFSU5URVJGQUNFIiwJMHg1NTEwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwJMHg1NTExfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0lPQ1RMIiwJMHg1NTEyfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0hVQl9QT1JUSU5GTyIsCTB4NTUxM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRVNFVCIsCTB4NTUxNH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DTEVBUl9IQUxUIiwJMHg1NTE1fSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NPTk5FQ1QiLAkweDU1MTZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ09OTkVDVCIsCTB4NTUxN30sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfRVZCSVQiLAkweDU1NjR9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0tFWUJJVCIsCTB4NTU2NX0sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfUkVMQklUIiwJMHg1NTY2fSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9BQlNCSVQiLAkweDU1Njd9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX01TQ0JJVCIsCTB4NTU2OH0sCisJeyJsaW51eC91aW5wdXQuaCIsCSJVSV9TRVRfTEVEQklUIiwJMHg1NTY5fSwKKwl7ImxpbnV4L3VpbnB1dC5oIiwJIlVJX1NFVF9TTkRCSVQiLAkweDU1NmF9LAorCXsibGludXgvdWlucHV0LmgiLAkiVUlfU0VUX0ZGQklUIiwJMHg1NTZifSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUNBUCIsCTB4NTYwMH0sCisJeyJsaW51eC92dC5oIiwJIlZUX09QRU5RUlkiLAkweDU2MDB9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1JFU0VSVkVEIiwJMHg1NjAxfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUTU9ERSIsCTB4NTYwMX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRU5VTV9GTVQiLAkweDU2MDJ9LAorCXsibGludXgvdnQuaCIsCSJWVF9TRVRNT0RFIiwJMHg1NjAyfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfR0VUU1RBVEUiLAkweDU2MDN9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfRk1UIiwJMHg1NjA0fSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfU0VORFNJRyIsCTB4NTYwNH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GTVQiLAkweDU2MDV9LAorCXsibGludXgvdnQuaCIsCSJWVF9SRUxESVNQIiwJMHg1NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0NPTVAiLAkweDU2MDZ9LAorCXsibGludXgvdnQuaCIsCSJWVF9BQ1RJVkFURSIsCTB4NTYwNn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DT01QIiwJMHg1NjA3fSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfV0FJVEFDVElWRSIsCTB4NTYwN30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUkVRQlVGUyIsCTB4NTYwOH0sCisJeyJsaW51eC92dC5oIiwJIlZUX0RJU0FMTE9DQVRFIiwJMHg1NjA4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWUJVRiIsCTB4NTYwOX0sCisJeyJsaW51eC92dC5oIiwJIlZUX1JFU0laRSIsCTB4NTYwOX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19GQlVGIiwJMHg1NjBhfSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfUkVTSVpFWCIsCTB4NTYwYX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GQlVGIiwJMHg1NjBifSwKKwl7ImxpbnV4L3Z0LmgiLAkiVlRfTE9DS1NXSVRDSCIsCTB4NTYwYn0sCisJeyJsaW51eC92dC5oIiwJIlZUX1VOTE9DS1NXSVRDSCIsCTB4NTYwY30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfT1ZFUkxBWSIsCTB4NTYwZX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUUJVRiIsCTB4NTYwZn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfRFFCVUYiLAkweDU2MTF9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NUUkVBTU9OIiwJMHg1NjEyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TVFJFQU1PRkYiLAkweDU2MTN9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfUEFSTSIsCTB4NTYxNX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19QQVJNIiwJMHg1NjE2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX1NURCIsCTB4NTYxN30sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19TVEQiLAkweDU2MTh9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1TVEQiLAkweDU2MTl9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1JTlBVVCIsCTB4NTYxYX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19DVFJMIiwJMHg1NjFifSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0NUUkwiLAkweDU2MWN9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfVFVORVIiLAkweDU2MWR9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfVFVORVIiLAkweDU2MWV9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQVVESU8iLAkweDU2MjF9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfQVVESU8iLAkweDU2MjJ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1FVRVJZQ1RSTCIsCTB4NTYyNH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfUVVFUllNRU5VIiwJMHg1NjI1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0lOUFVUIiwJMHg1NjI2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0lOUFVUIiwJMHg1NjI3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX09VVFBVVCIsCTB4NTYyZX0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19PVVRQVVQiLAkweDU2MmZ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0VOVU1PVVRQVVQiLAkweDU2MzB9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQVVET1VUIiwJMHg1NjMxfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0FVRE9VVCIsCTB4NTYzMn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfR19NT0RVTEFUT1IiLAkweDU2MzZ9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX1NfTU9EVUxBVE9SIiwJMHg1NjM3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0ZSRVFVRU5DWSIsCTB4NTYzOH0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19GUkVRVUVOQ1kiLAkweDU2Mzl9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0NST1BDQVAiLAkweDU2M2F9LAorCXsibGludXgvdmlkZW9kZXYyLmgiLAkiVklESU9DX0dfQ1JPUCIsCTB4NTYzYn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfU19DUk9QIiwJMHg1NjNjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19HX0pQRUdDT01QIiwJMHg1NjNkfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19TX0pQRUdDT01QIiwJMHg1NjNlfSwKKwl7ImxpbnV4L3ZpZGVvZGV2Mi5oIiwJIlZJRElPQ19RVUVSWVNURCIsCTB4NTYzZn0sCisJeyJsaW51eC92aWRlb2RldjIuaCIsCSJWSURJT0NfVFJZX0ZNVCIsCTB4NTY0MH0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCisJeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCisJeyJsaW51eC9hdG1faGUuaCIsCSJIRV9HRVRfUkVHIiwJMHg2MTYwfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfU0VUTVVMVCIsCTB4NjE2N30sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiU0lPQ1NJRkFUTVRDUCIsCTB4NjE4MH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTElOS1JBVEUiLAkweDYxODF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVE5BTUVTIiwJMHg2MTgzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRUWVBFIiwJMHg2MTg0fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRFU0kiLAkweDYxODV9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEFERFIiLAkweDYxODZ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1JTVEFERFIiLAkweDYxODd9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0FEREFERFIiLAkweDYxODh9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0RFTEFERFIiLAkweDYxODl9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVENJUkFOR0UiLAkweDYxOGF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVENJUkFOR0UiLAkweDYxOGJ9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSSIsCTB4NjE4Y30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJRiIsCTB4NjE4ZH0sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX0NSRUFURSIsCTB4NjE4ZX0sCisJeyJsaW51eC9hdG1fdGNwLmgiLAkiQVRNVENQX1JFTU9WRSIsCTB4NjE4Zn0sCisJeyJsaW51eC9hdG1icjI2ODQuaCIsCSJCUjI2ODRfU0VURklMVCIsCTB4NjE5MH0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfQ1RSTCIsCTB4NjFkMH0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfREFUQSIsCTB4NjFkMX0sCisJeyJsaW51eC9hdG1sZWMuaCIsCSJBVE1MRUNfTUNBU1QiLAkweDYxZDJ9LAorCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0NUUkwiLAkweDYxZDh9LAorCXsibGludXgvYXRtbXBjLmgiLAkiQVRNTVBDX0RBVEEiLAkweDYxZDl9LAorCXsibGludXgvYXRtY2xpcC5oIiwJIlNJT0NNS0NMSVAiLAkweDYxZTB9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQRF9DVFJMIiwJMHg2MWUxfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9NS0lQIiwJMHg2MWUyfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9TRVRFTlRSWSIsCTB4NjFlM30sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfRU5DQVAiLAkweDYxZTV9LAorCXsibGludXgvYXRtc3ZjLmgiLAkiQVRNU0lHRF9DVFJMIiwJMHg2MWYwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRTQyIsCTB4NjFmMX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQkFDS0VORCIsCTB4NjFmMn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fTkVXQkFDS0VORElGIiwJMHg2MWYzfSwKKwl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfTk9STSIsCTB4NjQwM30sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfREVCVUdfTUFTSyIsCTB4NjQwNH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQ0xFWCIsCTB4NjYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQ0xFWCIsCTB4NjYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTiIsCTB4NjYwM30sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTiIsCTB4NjYwNH0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfV0FJVF9GT1JfUkVBRE9OTFkiLAkweDY2NjN9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDY2N2J9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDY2N2N9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg2NjdkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OQklPIiwJMHg2NjdlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9OUkVBRCIsCTB4NjY3Zn0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPUVNJWkUiLAkweDY2ODB9LAorCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfRklGT19TVEFUVVMiLAkweDY3MDF9LAorCXsibGludXgvdXNiX2dhZGdldGZzLmgiLAkiR0FER0VURlNfRklGT19GTFVTSCIsCTB4NjcwMn0sCisJeyJsaW51eC91c2JfZ2FkZ2V0ZnMuaCIsCSJHQURHRVRGU19DTEVBUl9IQUxUIiwJMHg2NzAzfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUNFSVZFX01TR19UUlVOQyIsCTB4NjkwYn0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9SRUNFSVZFX01TRyIsCTB4NjkwY30sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRU5EX0NPTU1BTkQiLAkweDY5MGR9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfUkVHSVNURVJfRk9SX0NNRCIsCTB4NjkwZX0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9VTlJFR0lTVEVSX0ZPUl9DTUQiLAkweDY5MGZ9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfU0VUX0dFVFNfRVZFTlRTX0NNRCIsCTB4NjkxMH0sCisJeyJsaW51eC9pcG1pLmgiLAkiSVBNSUNUTF9TRVRfTVlfQUREUkVTU19DTUQiLAkweDY5MTF9LAorCXsibGludXgvaXBtaS5oIiwJIklQTUlDVExfR0VUX01ZX0FERFJFU1NfQ01EIiwJMHg2OTEyfSwKKwl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX1NFVF9NWV9MVU5fQ01EIiwJMHg2OTEzfSwKKwl7ImxpbnV4L2lwbWkuaCIsCSJJUE1JQ1RMX0dFVF9NWV9MVU5fQ01EIiwJMHg2OTE0fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19CSU9TX1ZFUlNJT04iLAkweDY5ODB9LAorCXsibGludXgvaThrLmgiLAkiSThLX01BQ0hJTkVfSUQiLAkweDY5ODF9LAorCXsibGludXgvaThrLmgiLAkiSThLX1BPV0VSX1NUQVRVUyIsCTB4Njk4Mn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfRk5fU1RBVFVTIiwJMHg2OTgzfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfVEVNUCIsCTB4Njk4NH0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1NQRUVEIiwJMHg2OTg1fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfRkFOIiwJMHg2OTg2fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19TRVRfRkFOIiwJMHg2OTg3fSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHVkVSU0lPTiIsCTB4NmEwMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYRVMiLAkweDZhMTF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVVRUT05TIiwJMHg2YTEyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQ09SUiIsCTB4NmEyMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0NPUlIiLAkweDZhMjJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NBWE1BUCIsCTB4NmEzMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0FYTUFQIiwJMHg2YTMyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQlROTUFQIiwJMHg2YTMzfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlROTUFQIiwJMHg2YTM0fSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBU0laRSIsCTB4NmM0MH0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQUJMT0NLIiwJMHg2YzQxfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVFZPTElERU5UIiwJMHg2YzQyfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX1JFTE9DQVRFX0JMT0NLUyIsCTB4NmM0M30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9QUkVUSU1FIiwJMHg2ZDAwfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHUEFSQU1TIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1RPUCIsCTB4NmQwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVNT0RFIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVCIsCTB4NmQwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9NUFVDTUQiLAkweDZkMDJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DUE9TIiwJMHg2ZDAzfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NSREZUU0VHIiwJMHg2ZDA2fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUU0laRSIsCTB4NmQwOX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU0lGIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHSUYiLAkweDZkMGJ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKKwl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09GRiIsCTB4NzAwNn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1NFVCIsCTB4NzAwN30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XSUVfT0ZGIiwJMHg3MDEwfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9SRCIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUExMX0dFVCIsCTB4NzAxMX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUExMX1NFVCIsCTB4NzAxMn0sCisJeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX0lOSVQiLAkweDcwNDB9LAorCXsiYXNtL252cmFtLmgiLAkiUE1BQ19OVlJBTV9HRVRfT0ZGU0VUIiwJMHg3MDQwfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAorCXsibGludXgvdGljYWJsZS5oIiwJIklPQ1RMX1RJU0VSX0RFTEFZIiwJMHg3MGEwfSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVNFUl9USU1FT1VUIiwJMHg3MGExfSwKKwl7ImxpbnV4L3RpY2FibGUuaCIsCSJJT0NUTF9USVBBUl9ERUxBWSIsCTB4NzBhOH0sCisJeyJsaW51eC90aWNhYmxlLmgiLAkiSU9DVExfVElQQVJfVElNRU9VVCIsCTB4NzBhOX0sCisJeyJsaW51eC9zZXJpby5oIiwJIlNQSU9DU1RZUEUiLAkweDcxMDF9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUSU5GTyIsCTB4NzEwMX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NDTFJQQUdFIiwJMHg3MTAyfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ0NMUkZPVU5EIiwJMHg3MTAzfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BBR0VSRVEiLAkweDcxMDR9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DR0VUU1RBVCIsCTB4NzEwNX0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NHRVRQQUdFIiwJMHg3MTA2fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1NUT1BEQVUiLAkweDcxMDd9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DUFVUUEFHRSIsCTB4NzEwOH0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJWVFhJT0NTRVRESVNQIiwJMHg3MTA5fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlZUWElPQ1BVVFNUQVQiLAkweDcxMGF9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DQ0xSQ0FDSEUiLAkweDcxMGJ9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVlRYSU9DU0VUVklSVCIsCTB4NzEwY30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VUSU5GTyIsCTB4NzIwMX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1JFU0VUIiwJMHg3MjAyfSwKKwl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ1NFVEZSRVEiLAkweDcyMDN9LAorCXsibGludXgvdmlkZW90ZXh0LmgiLAkiVFVOSU9DR0VURlJFUSIsCTB4NzIwNH0sCisJeyJsaW51eC92aWRlb3RleHQuaCIsCSJUVU5JT0NTRVRDSEFOIiwJMHg3MjA1fSwKKwl7ImxpbnV4L3ZpZGVvdGV4dC5oIiwJIlRVTklPQ0dFVENIQU4iLAkweDcyMDZ9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DQVRNQVJLIiwJMHg3MzA3fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ1NQR1JQIiwJMHg3MzA4fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dQR1JQIiwJMHg3MzA5fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CSU5UUiIsCTB4NzMxNH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUQVJUIiwJMHg3MzE1fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9CU1RPUCIsCTB4NzMxNn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlJFU0VUIiwJMHg3MzE3fSwKKwl7ImxpbnV4L2Nkay5oIiwJIlNUTF9HRVRQRkxBRyIsCTB4NzM1MH0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfU0VUUEZMQUciLAkweDczNTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHRVRQIiwJMHg3NDA4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VUUCIsCTB4NzQwOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFVE4iLAkweDc0MGF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVRDIiwJMHg3NDExfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VUQyIsCTB4NzQxMn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENHRVRTIiwJMHg3NDEzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFMiLAkweDc0MTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDc0MTV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU0YiLAkweDc0MTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NzQxN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRBIiwJMHg3NDE4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFXIiwJMHg3NDE5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEFGIiwJMHg3NDFjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NCUksiLAkweDc0MWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDWE9OQyIsCTB4NzQxZX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENGTFNIIiwJMHg3NDFmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NXSU5TWiIsCTB4NzQ2N30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dXSU5TWiIsCTB4NzQ2OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NUQVJUIiwJMHg3NDZlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RPUCIsCTB4NzQ2Zn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDc0NzN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHTFRDIiwJMHg3NDc0fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0xUQyIsCTB4NzQ3NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg3NDc2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDc0Nzd9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKKwl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxQ0FQIiwJMHg3NjAyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NIQU4iLAkweDc2MDJ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQxUkVNIiwJMHg3NjAzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NIQU4iLAkweDc2MDN9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyQ0FQIiwJMHg3NjA0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFUMlJFTSIsCTB4NzYwNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NUVU5FUiIsCTB4NzYwNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQSUNUIiwJMHg3NjA2fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkFURkxBR1MiLAkweDc2MDd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JMVUUiLAkweDc2MDh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NDQVBUVVJFIiwJMHg3NjA4fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NTQkxVRSIsCTB4NzYwOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dXSU4iLAkweDc2MDl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV0lOIiwJMHg3NjBhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZCVUYiLAkweDc2MGJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRkJVRiIsCTB4NzYwY30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0tFWSIsCTB4NzYwZH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGUkVRIiwJMHg3NjBlfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZSRVEiLAkweDc2MGZ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQVVESU8iLAkweDc2MTB9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQVVESU8iLAkweDc2MTF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTWU5DIiwJMHg3NjEyfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DTUNBUFRVUkUiLAkweDc2MTN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHTUJVRiIsCTB4NzYxNH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dVTklUIiwJMHg3NjE1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUFRVUkUiLAkweDc2MTZ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0FQVFVSRSIsCTB4NzYxN30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQTEFZTU9ERSIsCTB4NzYxOH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXUklURU1PREUiLAkweDc2MTl9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHUExBWUlORk8iLAkweDc2MWF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTTUlDUk9DT0RFIiwJMHg3NjFifSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1ZCSUZNVCIsCTB4NzYxY30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NWQklGTVQiLAkweDc2MWR9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfR19QQVJBTVMiLAkweDc2YzB9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU19QQVJBTVMiLAkweDc2YzF9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfUUJVRl9DQVBUIiwJMHg3NmMyfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NZTkMiLAkweDc2YzN9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExDQVBUIiwJMHg3NmM0fSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMSkNBUFQiLAkweDc2YzV9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9TRVRPV04iLAkweDg5MDF9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DU1BHUlAiLAkweDg5MDJ9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJGSU9HRVRPV04iLAkweDg5MDN9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DR1BHUlAiLAkweDg5MDR9LAorCXsiYXNtL3NvY2tpb3MuaCIsCSJTSU9DQVRNQVJLIiwJMHg4OTA1fSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dTVEFNUCIsCTB4ODkwNn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERFJUIiwJMHg4OTBifSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMUlQiLAkweDg5MGN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NSVE1TRyIsCTB4ODkwZH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk5BTUUiLAkweDg5MTB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZMSU5LIiwJMHg4OTExfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQ09ORiIsCTB4ODkxMn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkZMQUdTIiwJMHg4OTEzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGRkxBR1MiLAkweDg5MTR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZBRERSIiwJMHg4OTE1fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGQUREUiIsCTB4ODkxNn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkRTVEFERFIiLAkweDg5MTd9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZEU1RBRERSIiwJMHg4OTE4fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQlJEQUREUiIsCTB4ODkxOX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkJSREFERFIiLAkweDg5MWF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZORVRNQVNLIiwJMHg4OTFifSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU0lGTkVUTUFTSyIsCTB4ODkxY30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1FVFJJQyIsCTB4ODkxZH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1FVFJJQyIsCTB4ODkxZX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1FTSIsCTB4ODkxZn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1FTSIsCTB4ODkyMH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRk1UVSIsCTB4ODkyMX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk1UVSIsCTB4ODkyMn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRk5BTUUiLAkweDg5MjN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZIV0FERFIiLAkweDg5MjR9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZFTkNBUCIsCTB4ODkyNX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkVOQ0FQIiwJMHg4OTI2fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGSFdBRERSIiwJMHg4OTI3fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGU0xBVkUiLAkweDg5Mjl9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZTTEFWRSIsCTB4ODkzMH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0FERE1VTFRJIiwJMHg4OTMxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMTVVMVEkiLAkweDg5MzJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZJTkRFWCIsCTB4ODkzM30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlBGTEFHUyIsCTB4ODkzNH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlBGTEFHUyIsCTB4ODkzNX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0RJRkFERFIiLAkweDg5MzZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZIV0JST0FEQ0FTVCIsCTB4ODkzN30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkNPVU5UIiwJMHg4OTM4fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0lGQlIiLAkweDg5NDB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZCUiIsCTB4ODk0MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlRYUUxFTiIsCTB4ODk0Mn0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRlRYUUxFTiIsCTB4ODk0M30sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRkRJVkVSVCIsCTB4ODk0NH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NJRkRJVkVSVCIsCTB4ODk0NX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0VUSFRPT0wiLAkweDg5NDZ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHTUlJUEhZIiwJMHg4OTQ3fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR01JSVJFRyIsCTB4ODk0OH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NNSUlSRUciLAkweDg5NDl9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NXQU5ERVYiLAkweDg5NGF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NEQVJQIiwJMHg4OTUzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DR0FSUCIsCTB4ODk1NH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ1NBUlAiLAkweDg5NTV9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NEUkFSUCIsCTB4ODk2MH0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dSQVJQIiwJMHg4OTYxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DU1JBUlAiLAkweDg5NjJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NHSUZNQVAiLAkweDg5NzB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZNQVAiLAkweDg5NzF9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NBRERETENJIiwJMHg4OTgwfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVMRExDSSIsCTB4ODk4MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0dJRlZMQU4iLAkweDg5ODJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NTSUZWTEFOIiwJMHg4OTgzfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9OREVOU0xBVkUiLAkweDg5OTB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EUkVMRUFTRSIsCTB4ODk5MX0sCisJeyJsaW51eC9zb2NraW9zLmgiLAkiU0lPQ0JPTkRTRVRIV0FERFIiLAkweDg5OTJ9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05EU0xBVkVJTkZPUVVFUlkiLAkweDg5OTN9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NCT05ESU5GT1FVRVJZIiwJMHg4OTk0fSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DQk9ORENIQU5HRUFDVElWRSIsCTB4ODk5NX0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAorCXsibGludXgvc29ja2lvcy5oIiwJIlNJT0NQUk9UT1BSSVZBVEUiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJTSU9DU05FVEFERFIiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKKwl7ImxpbnV4L2RuLmgiLAkiU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKKwl7ImxpbnV4L3NvY2tpb3MuaCIsCSJTSU9DREVWUFJJVkFURSIsCTB4ODlmMH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NJV0ZJUlNUIiwJMHg4YjAwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0NPTU1JVCIsCTB4OGIwMH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdOQU1FIiwJMHg4YjAxfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV05XSUQiLAkweDhiMDJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTldJRCIsCTB4OGIwM30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdGUkVRIiwJMHg4YjA0fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0ZSRVEiLAkweDhiMDV9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTU9ERSIsCTB4OGIwNn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdNT0RFIiwJMHg4YjA3fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1NFTlMiLAkweDhiMDh9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU0VOUyIsCTB4OGIwOX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdSQU5HRSIsCTB4OGIwYX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQU5HRSIsCTB4OGIwYn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdQUklWIiwJMHg4YjBjfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1BSSVYiLAkweDhiMGR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1RBVFMiLAkweDhiMGV9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXU1RBVFMiLAkweDhiMGZ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXU1BZIiwJMHg4YjEwfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NQWSIsCTB4OGIxMX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdUSFJTUFkiLAkweDhiMTJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXVEhSU1BZIiwJMHg4YjEzfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0FQIiwJMHg4YjE0fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQIiwJMHg4YjE1fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV0FQTElTVCIsCTB4OGIxN30sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NTSVdTQ0FOIiwJMHg4YjE4fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1NDQU4iLAkweDhiMTl9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRVNTSUQiLAkweDhiMWF9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXRVNTSUQiLAkweDhiMWJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXTklDS04iLAkweDhiMWN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXTklDS04iLAkweDhiMWR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUkFURSIsCTB4OGIyMH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSQVRFIiwJMHg4YjIxfSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JUUyIsCTB4OGIyMn0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdSVFMiLAkweDhiMjN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXRlJBRyIsCTB4OGIyNH0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdGUkFHIiwJMHg4YjI1fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1RYUE9XIiwJMHg4YjI2fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1RYUE9XIiwJMHg4YjI3fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV1JFVFJZIiwJMHg4YjI4fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ0dJV1JFVFJZIiwJMHg4YjI5fSwKKwl7ImxpbnV4L3dpcmVsZXNzLmgiLAkiU0lPQ1NJV0VOQ09ERSIsCTB4OGIyYX0sCisJeyJsaW51eC93aXJlbGVzcy5oIiwJIlNJT0NHSVdFTkNPREUiLAkweDhiMmJ9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DU0lXUE9XRVIiLAkweDhiMmN9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DR0lXUE9XRVIiLAkweDhiMmR9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdGSVJTVFBSSVYiLAkweDhiZTB9LAorCXsibGludXgvd2lyZWxlc3MuaCIsCSJTSU9DSVdMQVNUUFJJViIsCTB4OGJmZn0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19SRUFEWSIsCTB4OTM2MH0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19GQUlMIiwJMHg5MzYxfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0NBVEFUT05JQyIsCTB4OTM2Mn0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsCTB4OTM2M30sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwJMHg5MzY0fSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0VYUElSRSIsCTB4OTM2NX0sCisJeyJsaW51eC9hdXRvX2ZzNC5oIiwJIkFVVE9GU19JT0NfRVhQSVJFX01VTFRJIiwJMHg5MzY2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU09DSyIsCTB4YWIwMH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX0JMS1NJWkUiLAkweGFiMDF9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFIiwJMHhhYjAyfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ET19JVCIsCTB4YWIwM30sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfU09DSyIsCTB4YWIwNH0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfQ0xFQVJfUVVFIiwJMHhhYjA1fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9QUklOVF9ERUJVRyIsCTB4YWIwNn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkVfQkxPQ0tTIiwJMHhhYjA3fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9ESVNDT05ORUNUIiwJMHhhYjA4fSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19TRVRCSU5EIiwJMHhhYzAwfSwKKwl7ImxpbnV4L3Jhdy5oIiwJIlJBV19HRVRCSU5EIiwJMHhhYzAxfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NTRldEIiwJMHhiMTAwfSwKKwl7ImxpbnV4L2lmX3BwcG94LmgiLAkiUFBQT0VJT0NERldEIiwJMHhiMTAxfSwKKwl7ImxpbnV4L3JlaXNlcmZzX2ZzLmgiLAkiUkVJU0VSRlNfSU9DX1VOUEFDSyIsCTB4Y2QwMX0sCisJeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX1ZFUlNJT04iLAkweGZkMDB9LAorCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9SRU1PVkVfQUxMIiwJMHhmZDAxfSwKKwl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fTElTVF9ERVZJQ0VTIiwJMHhmZDAyfSwKKwl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX0NSRUFURSIsCTB4ZmQwM30sCisJeyJsaW51eC9kbS1pb2N0bC12NC5oIiwJIkRNX0RFVl9SRU1PVkUiLAkweGZkMDR9LAorCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9ERVZfUkVOQU1FIiwJMHhmZDA1fSwKKwl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX1NVU1BFTkQiLAkweGZkMDZ9LAorCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9ERVZfU1RBVFVTIiwJMHhmZDA3fSwKKwl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fREVWX1dBSVQiLAkweGZkMDh9LAorCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9UQUJMRV9MT0FEIiwJMHhmZDA5fSwKKwl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fVEFCTEVfQ0xFQVIiLAkweGZkMGF9LAorCXsibGludXgvZG0taW9jdGwtdjQuaCIsCSJETV9UQUJMRV9ERVBTIiwJMHhmZDBifSwKKwl7ImxpbnV4L2RtLWlvY3RsLXY0LmgiLAkiRE1fVEFCTEVfU1RBVFVTIiwJMHhmZDBjfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9wb3dlcnBjL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3Bvd2VycGMvc2lnbmFsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRiMDBiMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9wb3dlcnBjL3NpZ25hbGVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKwkiU0lHXzAiLAkvKiAwICovCisJIlNJR0hVUCIsCS8qIDEgKi8KKwkiU0lHSU5UIiwJLyogMiAqLworCSJTSUdRVUlUIiwJLyogMyAqLworCSJTSUdJTEwiLAkvKiA0ICovCisJIlNJR1RSQVAiLAkvKiA1ICovCisJIlNJR0FCUlQiLAkvKiA2ICovCisJIlNJR0JVUyIsCS8qIDcgKi8KKwkiU0lHRlBFIiwJLyogOCAqLworCSJTSUdLSUxMIiwJLyogOSAqLworCSJTSUdVU1IxIiwJLyogMTAgKi8KKwkiU0lHU0VHViIsCS8qIDExICovCisJIlNJR1VTUjIiLAkvKiAxMiAqLworCSJTSUdQSVBFIiwJLyogMTMgKi8KKwkiU0lHQUxSTSIsCS8qIDE0ICovCisJIlNJR1RFUk0iLAkvKiAxNSAqLworCSJTSUdTVEtGTFQiLAkvKiAxNiAqLworCSJTSUdDSExEIiwJLyogMTcgKi8KKwkiU0lHQ09OVCIsCS8qIDE4ICovCisJIlNJR1NUT1AiLAkvKiAxOSAqLworCSJTSUdUU1RQIiwJLyogMjAgKi8KKwkiU0lHVFRJTiIsCS8qIDIxICovCisJIlNJR1RUT1UiLAkvKiAyMiAqLworCSJTSUdVUkciLAkvKiAyMyAqLworCSJTSUdYQ1BVIiwJLyogMjQgKi8KKwkiU0lHWEZTWiIsCS8qIDI1ICovCisJIlNJR1ZUQUxSTSIsCS8qIDI2ICovCisJIlNJR1BST0YiLAkvKiAyNyAqLworCSJTSUdXSU5DSCIsCS8qIDI4ICovCisJIlNJR0lPIiwJLyogMjkgKi8KKwkiU0lHUFdSIiwJLyogMzAgKi8KKwkiU0lHVU5VU0VEIiwJLyogMzEgKi8KKwkiU0lHUlRNSU4iLAkvKiAzMiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3MzOTAvZXJybm9lbnQuaCBiL3N0cmFjZS9saW51eC9zMzkwL2Vycm5vZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwYjUwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zMzkwL2Vycm5vZW50LmgKQEAgLTAsMCArMSwxMjUgQEAKKwkiRVJSTk9fMCIsIC8qIDAgKi8KKwkiRVBFUk0iLCAvKiAxICovCisJIkVOT0VOVCIsIC8qIDIgKi8KKwkiRVNSQ0giLCAvKiAzICovCisJIkVJTlRSIiwgLyogNCAqLworCSJFSU8iLCAvKiA1ICovCisJIkVOWElPIiwgLyogNiAqLworCSJFMkJJRyIsIC8qIDcgKi8KKwkiRU5PRVhFQyIsIC8qIDggKi8KKwkiRUJBREYiLCAvKiA5ICovCisJIkVDSElMRCIsIC8qIDEwICovCisJIkVBR0FJTiIsIC8qIDExICovCisJIkVOT01FTSIsIC8qIDEyICovCisJIkVBQ0NFUyIsIC8qIDEzICovCisJIkVGQVVMVCIsIC8qIDE0ICovCisJIkVOT1RCTEsiLCAvKiAxNSAqLworCSJFQlVTWSIsIC8qIDE2ICovCisJIkVFWElTVCIsIC8qIDE3ICovCisJIkVYREVWIiwgLyogMTggKi8KKwkiRU5PREVWIiwgLyogMTkgKi8KKwkiRU5PVERJUiIsIC8qIDIwICovCisJIkVJU0RJUiIsIC8qIDIxICovCisJIkVJTlZBTCIsIC8qIDIyICovCisJIkVORklMRSIsIC8qIDIzICovCisJIkVNRklMRSIsIC8qIDI0ICovCisJIkVOT1RUWSIsIC8qIDI1ICovCisJIkVUWFRCU1kiLCAvKiAyNiAqLworCSJFRkJJRyIsIC8qIDI3ICovCisJIkVOT1NQQyIsIC8qIDI4ICovCisJIkVTUElQRSIsIC8qIDI5ICovCisJIkVST0ZTIiwgLyogMzAgKi8KKwkiRU1MSU5LIiwgLyogMzEgKi8KKwkiRVBJUEUiLCAvKiAzMiAqLworCSJFRE9NIiwgLyogMzMgKi8KKwkiRVJBTkdFIiwgLyogMzQgKi8KKwkiRURFQURMSyIsIC8qIDM1ICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCisJIkVOT0xDSyIsIC8qIDM3ICovCisJIkVOT1NZUyIsIC8qIDM4ICovCisJIkVOT1RFTVBUWSIsIC8qIDM5ICovCisJIkVMT09QIiwgLyogNDAgKi8KKwkiRVJSTk9fNDEiLCAvKiA0MSAqLworCSJFTk9NU0ciLCAvKiA0MiAqLworCSJFSURSTSIsIC8qIDQzICovCisJIkVDSFJORyIsIC8qIDQ0ICovCisJIkVMMk5TWU5DIiwgLyogNDUgKi8KKwkiRUwzSExUIiwgLyogNDYgKi8KKwkiRUwzUlNUIiwgLyogNDcgKi8KKwkiRUxOUk5HIiwgLyogNDggKi8KKwkiRVVOQVRDSCIsIC8qIDQ5ICovCisJIkVOT0NTSSIsIC8qIDUwICovCisJIkVMMkhMVCIsIC8qIDUxICovCisJIkVCQURFIiwgLyogNTIgKi8KKwkiRUJBRFIiLCAvKiA1MyAqLworCSJFWEZVTEwiLCAvKiA1NCAqLworCSJFTk9BTk8iLCAvKiA1NSAqLworCSJFQkFEUlFDIiwgLyogNTYgKi8KKwkiRUJBRFNMVCIsIC8qIDU3ICovCisJIkVSUk5PXzU4IiwgLyogNTggKi8KKwkiRUJGT05UIiwgLyogNTkgKi8KKwkiRU5PU1RSIiwgLyogNjAgKi8KKwkiRU5PREFUQSIsIC8qIDYxICovCisJIkVUSU1FIiwgLyogNjIgKi8KKwkiRU5PU1IiLCAvKiA2MyAqLworCSJFTk9ORVQiLCAvKiA2NCAqLworCSJFTk9QS0ciLCAvKiA2NSAqLworCSJFUkVNT1RFIiwgLyogNjYgKi8KKwkiRU5PTElOSyIsIC8qIDY3ICovCisJIkVBRFYiLCAvKiA2OCAqLworCSJFU1JNTlQiLCAvKiA2OSAqLworCSJFQ09NTSIsIC8qIDcwICovCisJIkVQUk9UTyIsIC8qIDcxICovCisJIkVNVUxUSUhPUCIsIC8qIDcyICovCisJIkVET1RET1QiLCAvKiA3MyAqLworCSJFQkFETVNHIiwgLyogNzQgKi8KKwkiRU9WRVJGTE9XIiwgLyogNzUgKi8KKwkiRU5PVFVOSVEiLCAvKiA3NiAqLworCSJFQkFERkQiLCAvKiA3NyAqLworCSJFUkVNQ0hHIiwgLyogNzggKi8KKwkiRUxJQkFDQyIsIC8qIDc5ICovCisJIkVMSUJCQUQiLCAvKiA4MCAqLworCSJFTElCU0NOIiwgLyogODEgKi8KKwkiRUxJQk1BWCIsIC8qIDgyICovCisJIkVMSUJFWEVDIiwgLyogODMgKi8KKwkiRUlMU0VRIiwgLyogODQgKi8KKwkiRVJFU1RBUlQiLCAvKiA4NSAqLworCSJFU1RSUElQRSIsIC8qIDg2ICovCisJIkVVU0VSUyIsIC8qIDg3ICovCisJIkVOT1RTT0NLIiwgLyogODggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KKwkiRU1TR1NJWkUiLCAvKiA5MCAqLworCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLworCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDk4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLworCSJFTkVURE9XTiIsIC8qIDEwMCAqLworCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLworCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCisJIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KKwkiRU5PQlVGUyIsIC8qIDEwNSAqLworCSJFSVNDT05OIiwgLyogMTA2ICovCisJIkVOT1RDT05OIiwgLyogMTA3ICovCisJIkVTSFVURE9XTiIsIC8qIDEwOCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KKwkiRVRJTUVET1VUIiwgLyogMTEwICovCisJIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLworCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KKwkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCisJIkVBTFJFQURZIiwgLyogMTE0ICovCisJIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCisJIkVTVEFMRSIsIC8qIDExNiAqLworCSJFVUNMRUFOIiwgLyogMTE3ICovCisJIkVOT1ROQU0iLCAvKiAxMTggKi8KKwkiRU5BVkFJTCIsIC8qIDExOSAqLworCSJFSVNOQU0iLCAvKiAxMjAgKi8KKwkiRVJFTU9URUlPIiwgLyogMTIxICovCisJIkVEUVVPVCIsIC8qIDEyMiAqLworCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KKwkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkwL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvczM5MC9pb2N0bGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNGZiZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvczM5MC9pb2N0bGVudC5oCkBAIC0wLDAgKzEsOTQxIEBACit7ImxpbnV4L2ZzLmgiLCAiRklCTUFQIiwgMHgxfSwKK3sibGludXgvZnMuaCIsICJGSUdFVEJTWiIsIDB4Mn0sCit7ImxpbnV4L2ZkLmgiLCAiRkRDTFJQUk0iLCAweDI0MX0sCit7ImxpbnV4L2ZkLmgiLCAiRkRNU0dPTiIsIDB4MjQ1fSwKK3sibGludXgvZmQuaCIsICJGRE1TR09GRiIsIDB4MjQ2fSwKK3sibGludXgvZmQuaCIsICJGREZNVEJFRyIsIDB4MjQ3fSwKK3sibGludXgvZmQuaCIsICJGREZNVEVORCIsIDB4MjQ5fSwKK3sibGludXgvZmQuaCIsICJGRFNFVEVNU0dUUkVTSCIsIDB4MjRhfSwKK3sibGludXgvZmQuaCIsICJGREZMVVNIIiwgMHgyNGJ9LAoreyJsaW51eC9mZC5oIiwgIkZEUkVTRVQiLCAweDI1NH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRXRVJST1JDTFIiLCAweDI1Nn0sCit7ImxpbnV4L2ZkLmgiLCAiRkRSQVdDTUQiLCAweDI1OH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRUV0FERExFIiwgMHgyNTl9LAoreyJsaW51eC9mZC5oIiwgIkZERUpFQ1QiLCAweDI1YX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRHRU8iLCAweDMwMX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfVU5NQVNLSU5UUiIsIDB4MzAyfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9NVUxUQ09VTlQiLCAweDMwNH0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19PQlNPTEVURV9JREVOVElUWSIsIDB4MzA3fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9LRUVQU0VUVElOR1MiLCAweDMwOH0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfMzJCSVQiLCAweDMwOX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTk9XRVJSIiwgMHgzMGF9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0RNQSIsIDB4MzBifSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9OSUNFIiwgMHgzMGN9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0lERU5USVRZIiwgMHgzMGR9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfUkVTRVQiLCAweDMxY30sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19UUklTVEFURV9IV0lGIiwgMHgzMWR9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfVEFTSyIsIDB4MzFlfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX0NNRCIsIDB4MzFmfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9NVUxUQ09VTlQiLCAweDMyMX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfVU5NQVNLSU5UUiIsIDB4MzIyfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9LRUVQU0VUVElOR1MiLCAweDMyM30sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfMzJCSVQiLCAweDMyNH0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTk9XRVJSIiwgMHgzMjV9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX0RNQSIsIDB4MzI2fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9QSU9fTU9ERSIsIDB4MzI3fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NDQU5fSFdJRiIsIDB4MzI4fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9OSUNFIiwgMHgzMjl9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fVU5SRUdJU1RFUl9IV0lGIiwgMHgzMmF9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUR0VPX0JJRyIsIDB4MzMwfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVEdFT19CSUdfUkFXIiwgMHgzMzF9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9ET1MiLCAweDRkMn0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRE9TIiwgMHg0ZDN9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUk1ESVJfRE9TIiwgMHg0ZDR9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfU1RBVF9ET1MiLCAweDRkNX0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19DUkVBVF9FTUQiLCAweDRkNn0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRU1EIiwgMHg0ZDd9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9FTUQiLCAweDRkOH0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19HRVRWRVJTSU9OIiwgMHg0ZDl9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfSU5JVF9FTUQiLCAweDRkYX0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19ET1NfU0VUVVAiLCAweDRkYn0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19SRU5BTUVfRE9TIiwgMHg0ZGN9LAoreyJsaW51eC9scC5oIiwgIkxQQ0hBUiIsIDB4NjAxfSwKK3sibGludXgvbHAuaCIsICJMUFRJTUUiLCAweDYwMn0sCit7ImxpbnV4L2xwLmgiLCAiTFBBQk9SVCIsIDB4NjA0fSwKK3sibGludXgvbHAuaCIsICJMUFNFVElSUSIsIDB4NjA1fSwKK3sibGludXgvYWM5N19jb2RlYy5oIiwgIkFDOTdfUkVDTVVYX01PTk9fTUlYIiwgMHg2MDZ9LAoreyJsaW51eC9scC5oIiwgIkxQR0VUSVJRIiwgMHg2MDZ9LAoreyJsaW51eC9scC5oIiwgIkxQV0FJVCIsIDB4NjA4fSwKK3sibGludXgvbHAuaCIsICJMUENBUkVGVUwiLCAweDYwOX0sCit7ImxpbnV4L2xwLmgiLCAiTFBBQk9SVE9QRU4iLCAweDYwYX0sCit7ImxpbnV4L2xwLmgiLCAiTFBHRVRTVEFUVVMiLCAweDYwYn0sCit7ImxpbnV4L2xwLmgiLCAiTFBSRVNFVCIsIDB4NjBjfSwKK3sibGludXgvbHAuaCIsICJMUEdFVFNUQVRTIiwgMHg2MGR9LAoreyJsaW51eC9scC5oIiwgIkxQR0VURkxBR1MiLCAweDYwZX0sCit7ImxpbnV4L2xwLmgiLCAiTFBTRVRUSU1FT1VUIiwgMHg2MGZ9LAoreyJsaW51eC9mcy5oIiwgIkJMS1JPU0VUIiwgMHgxMjVkfSwKK3sibGludXgvZnMuaCIsICJCTEtST0dFVCIsIDB4MTI1ZX0sCit7ImxpbnV4L2ZzLmgiLCAiQkxLUlJQQVJUIiwgMHgxMjVmfSwKK3sibGludXgvZnMuaCIsICJCTEtHRVRTSVpFIiwgMHgxMjYwfSwKK3sibGludXgvZnMuaCIsICJCTEtGTFNCVUYiLCAweDEyNjF9LAoreyJsaW51eC9mcy5oIiwgIkJMS1JBU0VUIiwgMHgxMjYyfSwKK3sibGludXgvZnMuaCIsICJCTEtSQUdFVCIsIDB4MTI2M30sCit7ImxpbnV4L2ZzLmgiLCAiQkxLRlJBU0VUIiwgMHgxMjY0fSwKK3sibGludXgvZnMuaCIsICJCTEtGUkFHRVQiLCAweDEyNjV9LAoreyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RTRVQiLCAweDEyNjZ9LAoreyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RHRVQiLCAweDEyNjd9LAoreyJsaW51eC9mcy5oIiwgIkJMS1NTWkdFVCIsIDB4MTI2OH0sCit7ImxpbnV4L2ZzLmgiLCAiQkxLUEciLCAweDEyNjl9LAoreyJzY3NpL3NnLmgiLCAiU0dfU0VUX1RJTUVPVVQiLCAweDIyMDF9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX1RJTUVPVVQiLCAweDIyMDJ9LAoreyJzY3NpL3NnLmgiLCAiU0dfRU1VTEFURURfSE9TVCIsIDB4MjIwM30sCit7InNjc2kvc2cuaCIsICJTR19TRVRfVFJBTlNGT1JNIiwgMHgyMjA0fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9UUkFOU0ZPUk0iLCAweDIyMDV9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX0NPTU1BTkRfUSIsIDB4MjI3MH0sCit7InNjc2kvc2cuaCIsICJTR19TRVRfQ09NTUFORF9RIiwgMHgyMjcxfSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjcyfSwKK3sic2NzaS9zZy5oIiwgIlNHX1NFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjc1fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9TQ1NJX0lEIiwgMHgyMjc2fSwKK3sic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwgMHgyMjc5fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9MT1dfRE1BIiwgMHgyMjdhfSwKK3sic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9QQUNLX0lEIiwgMHgyMjdifSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9QQUNLX0lEIiwgMHgyMjdjfSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9OVU1fV0FJVElORyIsIDB4MjI3ZH0sCit7InNjc2kvc2cuaCIsICJTR19TRVRfREVCVUciLCAweDIyN2V9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX1NHX1RBQkxFU0laRSIsIDB4MjI3Zn0sCit7InNjc2kvc2cuaCIsICJTR19HRVRfVkVSU0lPTl9OVU0iLCAweDIyODJ9LAoreyJzY3NpL3NnLmgiLCAiU0dfTkVYVF9DTURfTEVOIiwgMHgyMjgzfSwKK3sic2NzaS9zZy5oIiwgIlNHX1NDU0lfUkVTRVQiLCAweDIyODR9LAoreyJzY3NpL3NnLmgiLCAiU0dfSU8iLCAweDIyODV9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX1JFUVVFU1RfVEFCTEUiLCAweDIyODZ9LAoreyJzY3NpL3NnLmgiLCAiU0dfU0VUX0tFRVBfT1JQSEFOIiwgMHgyMjg3fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9LRUVQX09SUEhBTiIsIDB4MjI4OH0sCit7ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQUNRVUlSRSIsIDB4NDEwMX0sCit7ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfUkVMRUFTRSIsIDB4NDEwMn0sCit7ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfU0xFRVAiLCAweDQyMDB9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RESVNBQkxFIiwgMHg0NDAwfSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNERU5BQkxFIiwgMHg0NDAxfSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUlNSViIsIDB4NDQwMn0sCit7ImFzbS9kYXNkLmgiLCAiQklPREFTRFJMU0UiLCAweDQ0MDN9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTTENLIiwgMHg0NDA0fSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSU1QiLCAweDQ0MDV9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RRVUlFU0NFIiwgMHg0NDA2fSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUkVTVU1FIiwgMHg0NDA3fSwKK3siYXNtL2NtYi5oIiwgIkJJT0RBU0RDTUZFTkFCTEUiLCAweDQ0MjB9LAoreyJhc20vY21iLmgiLCAiQklPREFTRENNRkRJU0FCTEUiLCAweDQ0MjF9LAoreyJhc20vY21iLmgiLCAiQklPREFTRFJFU0VUQ01CIiwgMHg0NDIyfSwKK3sibGludXgvZmIuaCIsICJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAwfSwKK3sibGludXgvZmIuaCIsICJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAxfSwKK3sibGludXgvcHMyZXNkaS5oIiwgIkNNRF9SRUFEIiwgMHg0NjAxfSwKK3sibGludXgvZmIuaCIsICJGQklPR0VUX0ZTQ1JFRU5JTkZPIiwgMHg0NjAyfSwKK3sibGludXgvcHMyZXNkaS5oIiwgIkNNRF9XUklURSIsIDB4NDYwMn0sCit7ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVENNQVAiLCAweDQ2MDR9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9QVVRDTUFQIiwgMHg0NjA1fSwKK3sibGludXgvZmIuaCIsICJGQklPUEFOX0RJU1BMQVkiLCAweDQ2MDZ9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfRkNVUlNPUklORk8iLCAweDQ2MDd9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfVkNVUlNPUklORk8iLCAweDQ2MDh9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfVkNVUlNPUklORk8iLCAweDQ2MDl9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ1VSU09SU1RBVEUiLCAweDQ2MGF9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfQ1VSU09SU1RBVEUiLCAweDQ2MGJ9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ09OMkZCTUFQIiwgMHg0NjBmfSwKK3sibGludXgvZmIuaCIsICJGQklPUFVUX0NPTjJGQk1BUCIsIDB4NDYxMH0sCit7ImxpbnV4L2ZiLmgiLCAiRkJJT0JMQU5LIiwgMHg0NjExfSwKK3sibGludXgvZmIuaCIsICJGQklPX0FMTE9DIiwgMHg0NjEzfSwKK3sibGludXgvZmIuaCIsICJGQklPX0ZSRUUiLCAweDQ2MTR9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfR0xZUEgiLCAweDQ2MTV9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfSFdDSU5GTyIsIDB4NDYxNn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUlGIiwgMHg0OTAxfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRESUYiLCAweDQ5MDJ9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVFNDRiIsIDB4NDkwM30sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR0NGIiwgMHg0OTA0fSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRBTk0iLCAweDQ5MDV9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEROTSIsIDB4NDkwNn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR05NIiwgMHg0OTA3fSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NHRVRTRVQiLCAweDQ5MDh9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFNFVCIsIDB4NDkwOX0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUVkVSIiwgMHg0OTBhfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRIVVAiLCAweDQ5MGJ9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVEdTVCIsIDB4NDkwY30sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUQlJKIiwgMHg0OTBkfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NTSUdQUkYiLCAweDQ5MGV9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVFBSRiIsIDB4NDkwZn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUUFJGIiwgMHg0OTEwfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NHRVRNQVAiLCAweDQ5MTF9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVE1BUCIsIDB4NDkxMn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQVNMIiwgMHg0OTEzfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRESUwiLCAweDQ5MTR9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVENQUyIsIDB4NDkxNX0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VURFZSIiwgMHg0OTE2fSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRMQ1IiLCAweDQ5MTd9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVERXUlNFVCIsIDB4NDkxOH0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUxOIiwgMHg0OTIwfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRETE4iLCAweDQ5MjF9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdQTiIsIDB4NDkyMn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DREJHVkFSIiwgMHg0OTdmfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NEUlZDVEwiLCAweDQ5ODB9LAoreyJsaW51eC9rZC5oIiwgIktJT0NTT1VORCIsIDB4NGIyZn0sCit7ImxpbnV4L2tkLmgiLCAiS0RNS1RPTkUiLCAweDRiMzB9LAoreyJsaW51eC9rZC5oIiwgIktER0VUTEVEIiwgMHg0YjMxfSwKK3sibGludXgva2QuaCIsICJLRFNFVExFRCIsIDB4NGIzMn0sCit7ImxpbnV4L2tkLmgiLCAiS0RHS0JUWVBFIiwgMHg0YjMzfSwKK3sibGludXgva2QuaCIsICJLREFERElPIiwgMHg0YjM0fSwKK3sibGludXgva2QuaCIsICJLRERFTElPIiwgMHg0YjM1fSwKK3sibGludXgva2QuaCIsICJLREVOQUJJTyIsIDB4NGIzNn0sCit7ImxpbnV4L2tkLmgiLCAiS0RESVNBQklPIiwgMHg0YjM3fSwKK3sibGludXgva2QuaCIsICJLRFNFVE1PREUiLCAweDRiM2F9LAoreyJsaW51eC9rZC5oIiwgIktER0VUTU9ERSIsIDB4NGIzYn0sCit7ImxpbnV4L2tkLmgiLCAiS0RNQVBESVNQIiwgMHg0YjNjfSwKK3sibGludXgva2QuaCIsICJLRFVOTUFQRElTUCIsIDB4NGIzZH0sCit7ImxpbnV4L2tkLmgiLCAiR0lPX1NDUk5NQVAiLCAweDRiNDB9LAoreyJsaW51eC9rZC5oIiwgIlBJT19TQ1JOTUFQIiwgMHg0YjQxfSwKK3sibGludXgva2QuaCIsICJLREdLQk1PREUiLCAweDRiNDR9LAoreyJsaW51eC9rZC5oIiwgIktEU0tCTU9ERSIsIDB4NGI0NX0sCit7ImxpbnV4L2tkLmgiLCAiS0RHS0JFTlQiLCAweDRiNDZ9LAoreyJsaW51eC9rZC5oIiwgIktEU0tCRU5UIiwgMHg0YjQ3fSwKK3sibGludXgva2QuaCIsICJLREdLQlNFTlQiLCAweDRiNDh9LAoreyJsaW51eC9rZC5oIiwgIktEU0tCU0VOVCIsIDB4NGI0OX0sCit7ImxpbnV4L2tkLmgiLCAiS0RHS0JESUFDUiIsIDB4NGI0YX0sCit7ImxpbnV4L2tkLmgiLCAiS0RTS0JESUFDUiIsIDB4NGI0Yn0sCit7ImxpbnV4L2tkLmgiLCAiS0RHRVRLRVlDT0RFIiwgMHg0YjRjfSwKK3sibGludXgva2QuaCIsICJLRFNFVEtFWUNPREUiLCAweDRiNGR9LAoreyJsaW51eC9rZC5oIiwgIktEU0lHQUNDRVBUIiwgMHg0YjRlfSwKK3sibGludXgva2QuaCIsICJLREdIV0NMSyIsIDB4NGI1MH0sCit7ImxpbnV4L2tkLmgiLCAiS0RTSFdDTEsiLCAweDRiNTF9LAoreyJsaW51eC9rZC5oIiwgIktES0JEUkVQIiwgMHg0YjUyfSwKK3sibGludXgva2QuaCIsICJHSU9fRk9OVCIsIDB4NGI2MH0sCit7ImxpbnV4L2tkLmgiLCAiUElPX0ZPTlQiLCAweDRiNjF9LAoreyJsaW51eC9rZC5oIiwgIktER0tCTUVUQSIsIDB4NGI2Mn0sCit7ImxpbnV4L2tkLmgiLCAiS0RTS0JNRVRBIiwgMHg0YjYzfSwKK3sibGludXgva2QuaCIsICJLREdLQkxFRCIsIDB4NGI2NH0sCit7ImxpbnV4L2tkLmgiLCAiS0RTS0JMRUQiLCAweDRiNjV9LAoreyJsaW51eC9rZC5oIiwgIkdJT19VTklNQVAiLCAweDRiNjZ9LAoreyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVAiLCAweDRiNjd9LAoreyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVBDTFIiLCAweDRiNjh9LAoreyJsaW51eC9rZC5oIiwgIkdJT19VTklTQ1JOTUFQIiwgMHg0YjY5fSwKK3sibGludXgva2QuaCIsICJQSU9fVU5JU0NSTk1BUCIsIDB4NGI2YX0sCit7ImxpbnV4L2tkLmgiLCAiR0lPX0ZPTlRYIiwgMHg0YjZifSwKK3sibGludXgva2QuaCIsICJQSU9fRk9OVFgiLCAweDRiNmN9LAoreyJsaW51eC9rZC5oIiwgIlBJT19GT05UUkVTRVQiLCAweDRiNmR9LAoreyJsaW51eC9rZC5oIiwgIkdJT19DTUFQIiwgMHg0YjcwfSwKK3sibGludXgva2QuaCIsICJQSU9fQ01BUCIsIDB4NGI3MX0sCit7ImxpbnV4L2tkLmgiLCAiS0RGT05UT1AiLCAweDRiNzJ9LAoreyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfRkQiLCAweDRjMDB9LAoreyJsaW51eC9sb29wLmgiLCAiTE9PUF9DTFJfRkQiLCAweDRjMDF9LAoreyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfU1RBVFVTIiwgMHg0YzAyfSwKK3sibGludXgvbG9vcC5oIiwgIkxPT1BfR0VUX1NUQVRVUyIsIDB4NGMwM30sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJORFpBUEVOVENOVCIsIDB4NTIwNH0sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJORENMRUFSUE9PTCIsIDB4NTIwNn0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QQVVTRSIsIDB4NTMwMX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNVTUUiLCAweDUzMDJ9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUExBWU1TRiIsIDB4NTMwM30sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QTEFZVFJLSU5EIiwgMHg1MzA0fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURUT0NIRFIiLCAweDUzMDV9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRFRPQ0VOVFJZIiwgMHg1MzA2fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVNUT1AiLCAweDUzMDd9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU1RBUlQiLCAweDUzMDh9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NRUpFQ1QiLCAweDUzMDl9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NVk9MQ1RSTCIsIDB4NTMwYX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TVUJDSE5MIiwgMHg1MzBifSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURNT0RFMiIsIDB4NTMwY30sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFETU9ERTEiLCAweDUzMGR9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFVRElPIiwgMHg1MzBlfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTUVKRUNUX1NXIiwgMHg1MzBmfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTU1VTFRJU0VTU0lPTiIsIDB4NTMxMH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fR0VUX01DTiIsIDB4NTMxMX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNFVCIsIDB4NTMxMn0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01WT0xSRUFEIiwgMHg1MzEzfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURSQVciLCAweDUzMTR9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRENPT0tFRCIsIDB4NTMxNX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TRUVLIiwgMHg1MzE2fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVBMQVlCTEsiLCAweDUzMTd9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFMTCIsIDB4NTMxOH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01DTE9TRVRSQVkiLCAweDUzMTl9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NR0VUU1BJTkRPV04iLCAweDUzMWR9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU0VUU1BJTkRPV04iLCAweDUzMWV9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFVF9PUFRJT05TIiwgMHg1MzIwfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9DTEVBUl9PUFRJT05TIiwgMHg1MzIxfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRUxFQ1RfU1BFRUQiLCAweDUzMjJ9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFTEVDVF9ESVNDIiwgMHg1MzIzfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9NRURJQV9DSEFOR0VEIiwgMHg1MzI1fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9EUklWRV9TVEFUVVMiLCAweDUzMjZ9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RJU0NfU1RBVFVTIiwgMHg1MzI3fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9DSEFOR0VSX05TTE9UUyIsIDB4NTMyOH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTE9DS0RPT1IiLCAweDUzMjl9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RFQlVHIiwgMHg1MzMwfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsIDB4NTMzMX0sCit7InNjc2kvc2NzaV9pb2N0bC5oIiwgIlNDU0lfSU9DVExfRE9PUkxPQ0siLCAweDUzODB9LAoreyJzY3NpL3Njc2lfaW9jdGwuaCIsICJTQ1NJX0lPQ1RMX0RPT1JVTkxPQ0siLCAweDUzODF9LAoreyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9JRExVTiIsIDB4NTM4Mn0sCit7InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0VOQUJMRSIsIDB4NTM4M30sCit7InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLCAweDUzODR9LAoreyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1BST0JFX0hPU1QiLCAweDUzODV9LAoreyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9CVVNfTlVNQkVSIiwgMHg1Mzg2fSwKK3sibGludXgvY2Ryb20uaCIsICJEVkRfUkVBRF9TVFJVQ1QiLCAweDUzOTB9LAoreyJsaW51eC9jZHJvbS5oIiwgIkRWRF9XUklURV9TVFJVQ1QiLCAweDUzOTF9LAoreyJsaW51eC9jZHJvbS5oIiwgIkRWRF9BVVRIIiwgMHg1MzkyfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRU5EX1BBQ0tFVCIsIDB4NTM5M30sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTkVYVF9XUklUQUJMRSIsIDB4NTM5NH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTEFTVF9XUklUVEVOIiwgMHg1Mzk1fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRDR0VUUyIsIDB4NTQwMX0sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFMiLCAweDU0MDJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVENTRVRTVyIsIDB4NTQwM30sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFNGIiwgMHg1NDA0fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRDR0VUQSIsIDB4NTQwNX0sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEEiLCAweDU0MDZ9LAoreyJhc20vaW9jdGxzLmgiLCAiVENTRVRBVyIsIDB4NTQwN30sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEFGIiwgMHg1NDA4fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRDU0JSSyIsIDB4NTQwOX0sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1hPTkMiLCAweDU0MGF9LAoreyJhc20vaW9jdGxzLmgiLCAiVENGTFNIIiwgMHg1NDBifSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NFWENMIiwgMHg1NDBjfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NOWENMIiwgMHg1NDBkfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTQ1RUWSIsIDB4NTQwZX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR1BHUlAiLCAweDU0MGZ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ1NQR1JQIiwgMHg1NDEwfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NPVVRRIiwgMHg1NDExfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTVEkiLCAweDU0MTJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0dXSU5TWiIsIDB4NTQxM30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU1dJTlNaIiwgMHg1NDE0fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNR0VUIiwgMHg1NDE1fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklTIiwgMHg1NDE2fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklDIiwgMHg1NDE3fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNU0VUIiwgMHg1NDE4fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NHU09GVENBUiIsIDB4NTQxOX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU1NPRlRDQVIiLCAweDU0MWF9LAoreyJhc20vaW9jdGxzLmgiLCAiRklPTlJFQUQiLCAweDU0MWJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0xJTlVYIiwgMHg1NDFjfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NDT05TIiwgMHg1NDFkfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NHU0VSSUFMIiwgMHg1NDFlfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTU0VSSUFMIiwgMHg1NDFmfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NQS1QiLCAweDU0MjB9LAoreyJhc20vaW9jdGxzLmgiLCAiRklPTkJJTyIsIDB4NTQyMX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DTk9UVFkiLCAweDU0MjJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFVEQiLCAweDU0MjN9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0dFVEQiLCAweDU0MjR9LAoreyJhc20vaW9jdGxzLmgiLCAiVENTQlJLUCIsIDB4NTQyNX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DVFRZR1NUUlVDVCIsIDB4NTQyNn0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0JSSyIsIDB4NTQyN30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DQ0JSSyIsIDB4NTQyOH0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NJRCIsIDB4NTQyOX0sCit7ImFzbS9pb2N0bHMuaCIsICJGSU9OQ0xFWCIsIDB4NTQ1MH0sCit7ImFzbS9pb2N0bHMuaCIsICJGSU9DTEVYIiwgMHg1NDUxfSwKK3siYXNtL2lvY3Rscy5oIiwgIkZJT0FTWU5DIiwgMHg1NDUyfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJDT05GSUciLCAweDU0NTN9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdXSUxEIiwgMHg1NDU0fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJTV0lMRCIsIDB4NTQ1NX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR0xDS1RSTUlPUyIsIDB4NTQ1Nn0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0xDS1RSTUlPUyIsIDB4NTQ1N30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR1NUUlVDVCIsIDB4NTQ1OH0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR0VUTFNSIiwgMHg1NDU5fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJHRVRNVUxUSSIsIDB4NTQ1YX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSU0VUTVVMVEkiLCAweDU0NWJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ01JV0FJVCIsIDB4NTQ1Y30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR0lDT1VOVCIsIDB4NTQ1ZH0sCit7ImFzbS9pb2N0bHMuaCIsICJGSU9RU0laRSIsIDB4NTQ1ZX0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0RJU0NBUkRVUkIiLCAweDU1MGJ9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRVNFVCIsIDB4NTUxNH0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfT1BFTlFSWSIsIDB4NTYwMH0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfR0VUTU9ERSIsIDB4NTYwMX0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfU0VUTU9ERSIsIDB4NTYwMn0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfR0VUU1RBVEUiLCAweDU2MDN9LAoreyJsaW51eC92dC5oIiwgIlZUX1NFTkRTSUciLCAweDU2MDR9LAoreyJsaW51eC92dC5oIiwgIlZUX1JFTERJU1AiLCAweDU2MDV9LAoreyJsaW51eC92dC5oIiwgIlZUX0FDVElWQVRFIiwgMHg1NjA2fSwKK3sibGludXgvdnQuaCIsICJWVF9XQUlUQUNUSVZFIiwgMHg1NjA3fSwKK3sibGludXgvdnQuaCIsICJWVF9ESVNBTExPQ0FURSIsIDB4NTYwOH0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfUkVTSVpFIiwgMHg1NjA5fSwKK3sibGludXgvdnQuaCIsICJWVF9SRVNJWkVYIiwgMHg1NjBhfSwKK3sibGludXgvdnQuaCIsICJWVF9MT0NLU1dJVENIIiwgMHg1NjBifSwKK3sibGludXgvdnQuaCIsICJWVF9VTkxPQ0tTV0lUQ0giLCAweDU2MGN9LAoreyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX1NFVEZSQU1JTkciLCAweDYxMTV9LAoreyJsaW51eC9hdG1fbmljc3Rhci5oIiwgIk5TX0FESkJVRkxFViIsIDB4NjE2M30sCit7ImxpbnV4L2F0bV90Y3AuaCIsICJTSU9DU0lGQVRNVENQIiwgMHg2MTgwfSwKK3sibGludXgvYXRtX3RjcC5oIiwgIkFUTVRDUF9DUkVBVEUiLCAweDYxOGV9LAoreyJsaW51eC9hdG1fdGNwLmgiLCAiQVRNVENQX1JFTU9WRSIsIDB4NjE4Zn0sCit7ImxpbnV4L2F0bWxlYy5oIiwgIkFUTUxFQ19DVFJMIiwgMHg2MWQwfSwKK3sibGludXgvYXRtbGVjLmgiLCAiQVRNTEVDX0RBVEEiLCAweDYxZDF9LAoreyJsaW51eC9hdG1sZWMuaCIsICJBVE1MRUNfTUNBU1QiLCAweDYxZDJ9LAoreyJsaW51eC9hdG1tcGMuaCIsICJBVE1NUENfQ1RSTCIsIDB4NjFkOH0sCit7ImxpbnV4L2F0bW1wYy5oIiwgIkFUTU1QQ19EQVRBIiwgMHg2MWQ5fSwKK3sibGludXgvYXRtY2xpcC5oIiwgIlNJT0NNS0NMSVAiLCAweDYxZTB9LAoreyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBEX0NUUkwiLCAweDYxZTF9LAoreyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfTUtJUCIsIDB4NjFlMn0sCit7ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9TRVRFTlRSWSIsIDB4NjFlM30sCit7ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9FTkNBUCIsIDB4NjFlNX0sCit7ImxpbnV4L2F0bXN2Yy5oIiwgIkFUTVNJR0RfQ1RSTCIsIDB4NjFmMH0sCit7ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVFBPUlRTVEFUUyIsIDB4NjMxZX0sCit7ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0NMUlBPUlRTVEFUUyIsIDB4NjMxZn0sCit7ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVEJSRFNUQVRTIiwgMHg2MzIwfSwKK3sibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBRFBPUlQiLCAweDYzMjh9LAoreyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEQk9BUkQiLCAweDYzMjl9LAoreyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEUEFORUwiLCAweDYzMmF9LAoreyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9EVU1QIiwgMHg2NGMwfSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NUWElETEUiLCAweDZkMDJ9LAoreyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1RYSURMRSIsIDB4NmQwM30sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEVOQUJMRSIsIDB4NmQwNH0sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NSWEVOQUJMRSIsIDB4NmQwNX0sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEFCT1JUIiwgMHg2ZDA2fSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dTVEFUUyIsIDB4NmQwN30sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NMT09QVFhET05FIiwgMHg2ZDA5fSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0NMUk1PRENPVU5UIiwgMHg2ZDBmfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsIDB4NmUwM30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19BSUVfT04iLCAweDcwMDF9LAoreyJsaW51eC9ydGMuaCIsICJSVENfQUlFX09GRiIsIDB4NzAwMn0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19VSUVfT04iLCAweDcwMDN9LAoreyJsaW51eC9ydGMuaCIsICJSVENfVUlFX09GRiIsIDB4NzAwNH0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19QSUVfT04iLCAweDcwMDV9LAoreyJsaW51eC9ydGMuaCIsICJSVENfUElFX09GRiIsIDB4NzAwNn0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19XSUVfT04iLCAweDcwMGZ9LAoreyJsaW51eC9ydGMuaCIsICJSVENfV0lFX09GRiIsIDB4NzAxMH0sCit7ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fSU5JVCIsIDB4NzA0MH0sCit7ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fU0VUQ0tTIiwgMHg3MDQxfSwKK3sibGludXgvcHBkZXYuaCIsICJQUENMQUlNIiwgMHg3MDhifSwKK3sibGludXgvcHBkZXYuaCIsICJQUFJFTEVBU0UiLCAweDcwOGN9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQWUlFTEQiLCAweDcwOGR9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQRVhDTCIsIDB4NzA4Zn0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFUyIsIDB4NzE4MH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkciLCAweDcxODN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9IT09LU1RBVEUiLCAweDcxODR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX1NUQVJUIiwgMHg3MTg3fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19TVE9QIiwgMHg3MTg4fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUQVJUIiwgMHg3MThhfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUT1AiLCAweDcxOGJ9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfTEVWRUwiLCAweDcxOGZ9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1NUQVJUIiwgMHg3MTkxfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9TVE9QIiwgMHg3MTkyfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9MRVZFTCIsIDB4NzE5NX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLCAweDcxOWV9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsIDB4NzE5Zn0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX1NUQVRFIiwgMHg3MWEwfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQlVTWSIsIDB4NzFhMX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkdCQUNLIiwgMHg3MWEyfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRElBTFRPTkUiLCAweDcxYTN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DUFRfU1RPUCIsIDB4NzFhNH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwgMHg3MWE1fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUFNUTl9MSU5FVEVTVCIsIDB4NzFhOH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX1JFU0VUIiwgMHg3MWMwfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfSURMRSIsIDB4NzFjNX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfVEVTVFJBTSIsIDB4NzFjNn0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQUVDX1NUT1AiLCAweDcxY2N9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLCAweDcxY2R9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BTVE5fTElORVRFU1QiLCAweDcxZDN9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsIDB4NzFlN30sCit7ImxpbnV4L2Nkay5oIiwgIlNUTF9CSU5UUiIsIDB4NzMxNH0sCit7ImxpbnV4L2Nkay5oIiwgIlNUTF9CU1RBUlQiLCAweDczMTV9LAoreyJsaW51eC9jZGsuaCIsICJTVExfQlNUT1AiLCAweDczMTZ9LAoreyJsaW51eC9jZGsuaCIsICJTVExfQlJFU0VUIiwgMHg3MzE3fSwKK3sibGludXgvY2RrLmgiLCAiU1RMX0dFVFBGTEFHIiwgMHg3MzUwfSwKK3sibGludXgvY2RrLmgiLCAiU1RMX1NFVFBGTEFHIiwgMHg3MzUxfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DRElTQ09OTiIsIDB4NzQzOX0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1hGRVJVTklUIiwgMHg3NDRlfSwKK3sibGludXgvamZmcy5oIiwgIkpGRlNfUFJJTlRfSEFTSCIsIDB4NzQ1YX0sCit7ImxpbnV4L2pmZnMuaCIsICJKRkZTX1BSSU5UX1RSRUUiLCAweDc0NWJ9LAoreyJsaW51eC9qZmZzLmgiLCAiSkZGU19HRVRfU1RBVFVTIiwgMHg3NDVjfSwKK3siYXNtL3NvY2tpb3MuaCIsICJGSU9TRVRPV04iLCAweDg5MDF9LAoreyJhc20vc29ja2lvcy5oIiwgIlNJT0NTUEdSUCIsIDB4ODkwMn0sCit7ImFzbS9zb2NraW9zLmgiLCAiRklPR0VUT1dOIiwgMHg4OTAzfSwKK3siYXNtL3NvY2tpb3MuaCIsICJTSU9DR1BHUlAiLCAweDg5MDR9LAoreyJhc20vc29ja2lvcy5oIiwgIlNJT0NBVE1BUksiLCAweDg5MDV9LAoreyJhc20vc29ja2lvcy5oIiwgIlNJT0NHU1RBTVAiLCAweDg5MDZ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0FERFJUIiwgMHg4OTBifSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NERUxSVCIsIDB4ODkwY30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUlRNU0ciLCAweDg5MGR9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk5BTUUiLCAweDg5MTB9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkxJTksiLCAweDg5MTF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPTkYiLCAweDg5MTJ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkZMQUdTIiwgMHg4OTEzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZGTEFHUyIsIDB4ODkxNH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQUREUiIsIDB4ODkxNX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQUREUiIsIDB4ODkxNn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGRFNUQUREUiIsIDB4ODkxN30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRFNUQUREUiIsIDB4ODkxOH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQlJEQUREUiIsIDB4ODkxOX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlJEQUREUiIsIDB4ODkxYX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTkVUTUFTSyIsIDB4ODkxYn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkVUTUFTSyIsIDB4ODkxY30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTUVUUklDIiwgMHg4OTFkfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNRVRSSUMiLCAweDg5MWV9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk1FTSIsIDB4ODkxZn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTUVNIiwgMHg4OTIwfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNVFUiLCAweDg5MjF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1UVSIsIDB4ODkyMn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkFNRSIsIDB4ODkyM30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdBRERSIiwgMHg4OTI0fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZFTkNBUCIsIDB4ODkyNX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRU5DQVAiLCAweDg5MjZ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkhXQUREUiIsIDB4ODkyN30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGU0xBVkUiLCAweDg5Mjl9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRlNMQVZFIiwgMHg4OTMwfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NBRERNVUxUSSIsIDB4ODkzMX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMTVVMVEkiLCAweDg5MzJ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRklOREVYIiwgMHg4OTMzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZQRkxBR1MiLCAweDg5MzR9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlBGTEFHUyIsIDB4ODkzNX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DRElGQUREUiIsIDB4ODkzNn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdCUk9BRENBU1QiLCAweDg5Mzd9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPVU5UIiwgMHg4OTM4fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZCUiIsIDB4ODk0MH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlIiLCAweDg5NDF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlRYUUxFTiIsIDB4ODk0Mn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGVFhRTEVOIiwgMHg4OTQzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NEQVJQIiwgMHg4OTUzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHQVJQIiwgMHg4OTU0fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTQVJQIiwgMHg4OTU1fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NEUkFSUCIsIDB4ODk2MH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR1JBUlAiLCAweDg5NjF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NSQVJQIiwgMHg4OTYyfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNQVAiLCAweDg5NzB9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1BUCIsIDB4ODk3MX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DQURERExDSSIsIDB4ODk4MH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMRExDSSIsIDB4ODk4MX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUFJPVE9QUklWQVRFIiwgMHg4OWUwfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NERVZQUklWQVRFIiwgMHg4OWYwfSwKK3sibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfUkVBRFkiLCAweDkzNjB9LAoreyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19GQUlMIiwgMHg5MzYxfSwKK3sibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwgMHg5MzYyfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TT0NLIiwgMHhhYjAwfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9CTEtTSVpFIiwgMHhhYjAxfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFIiwgMHhhYjAyfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX0RPX0lUIiwgMHhhYjAzfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX0NMRUFSX1NPQ0siLCAweGFiMDR9LAoreyJsaW51eC9uYmQuaCIsICJOQkRfQ0xFQVJfUVVFIiwgMHhhYjA1fSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1BSSU5UX0RFQlVHIiwgMHhhYjA2fSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFX0JMT0NLUyIsIDB4YWIwN30sCit7ImxpbnV4L25iZC5oIiwgIk5CRF9ESVNDT05ORUNUIiwgMHhhYjA4fSwKK3sibGludXgvcmF3LmgiLCAiUkFXX1NFVEJJTkQiLCAweGFjMDB9LAoreyJsaW51eC9yYXcuaCIsICJSQVdfR0VUQklORCIsIDB4YWMwMX0sCit7ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NERldEIiwgMHhiMTAxfSwKK3sibGludXgvbHZtLmgiLCAiTFZfQUNUSVZBVEUiLCAweGZlMjJ9LAoreyJsaW51eC9sdm0uaCIsICJMVl9ERUFDVElWQVRFIiwgMHhmZTIzfSwKK3sibGludXgvbHZtLmgiLCAiTFZNX1JFU0VUIiwgMHhmZTk5fSwKK3sibGludXgvbHZtLmgiLCAiTFZNX0xPQ0tfTFZNIiwgMHhmZjAwfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVE1PTiIsIDB4NDM1OTAxfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRIUkVTSCIsIDB4NDM1OTAyfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFRIUkVTSCIsIDB4NDM1OTAzfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVERFRlRIUkVTSCIsIDB4NDM1OTA0fSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRIUkVTSCIsIDB4NDM1OTA1fSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRJTUVPVVQiLCAweDQzNTkwNn0sCit7ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRUSU1FT1VUIiwgMHg0MzU5MDd9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZR0VUREVGVElNRU9VVCIsIDB4NDM1OTA4fSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRJTUVPVVQiLCAweDQzNTkwOX0sCit7ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRSRkxPVyIsIDB4NDM1OTBhfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJGTE9XIiwgMHg0MzU5MGJ9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUUlRTRFRSX0lOViIsIDB4NDM1OTBjfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJUU0RUUl9JTlYiLCAweDQzNTkwZH0sCit7ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1laU0VUUE9MTENZQ0xFIiwgMHg0MzU5MGV9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZWkdFVFBPTExDWUNMRSIsIDB4NDM1OTBmfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENEMTQwMFZFUiIsIDB4NDM1OTEwfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENBUkRJTkZPIiwgMHg0MzU5MTF9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUV0FJVCIsIDB4NDM1OTEyfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFdBSVQiLCAweDQzNTkxM30sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfVk9MVU1FIiwgMHgyMDA0NGQwMH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQkFTUyIsIDB4MjAwNDRkMDF9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1RSRUJMRSIsIDB4MjAwNDRkMDJ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NZTlRIIiwgMHgyMDA0NGQwM30sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUENNIiwgMHgyMDA0NGQwNH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1BFQUtFUiIsIDB4MjAwNDRkMDV9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUiLCAweDIwMDQ0ZDA2fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9NSUMiLCAweDIwMDQ0ZDA3fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9DRCIsIDB4MjAwNDRkMDh9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0lNSVgiLCAweDIwMDQ0ZDA5fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9BTFRQQ00iLCAweDIwMDQ0ZDBhfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNMRVYiLCAweDIwMDQ0ZDBifSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9JR0FJTiIsIDB4MjAwNDRkMGN9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX09HQUlOIiwgMHgyMDA0NGQwZH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTElORTEiLCAweDIwMDQ0ZDBlfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FMiIsIDB4MjAwNDRkMGZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUzIiwgMHgyMDA0NGQxMH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTVVURSIsIDB4MjAwNDRkMWZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0VOSEFOQ0UiLCAweDIwMDQ0ZDFmfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MT1VEIiwgMHgyMDA0NGQxZn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1RFUkVPREVWUyIsIDB4MjAwNDRkZmJ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0NBUFMiLCAweDIwMDQ0ZGZjfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNNQVNLIiwgMHgyMDA0NGRmZH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfREVWTUFTSyIsIDB4MjAwNDRkZmV9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1JFQ1NSQyIsIDB4MjAwNDRkZmZ9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQV0NPTlRST0wiLCAweDQwMDE3MDg0fSwKK3sibGludXgvcHBkZXYuaCIsICJQUFdEQVRBIiwgMHg0MDAxNzA4Nn0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBXQ1RMT05JUlEiLCAweDQwMDE3MDkyfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfTUFYUklOR1MiLCAweDQwMDE3MTg1fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9UT05FIiwgMHg0MDAxNzE5Yn0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBGQ09OVFJPTCIsIDB4NDAwMjcwOGV9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX0NBREVOQ0UiLCAweDQwMDI3MTg2fSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19ERUFMTE9DQVRFIiwgMHg0MDA0NDEwN30sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFERFRPRU5UQ05UIiwgMHg0MDA0NTIwMX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU1BUTENLIiwgMHg0MDA0NTQzMX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRTQyIsIDB4NDAwNDYxZjF9LAoreyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsIDB4NDAwNDY0MDJ9LAoreyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwgMHg0MDA0NjQwM30sCit7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9OT1JNIiwgMHg0MDA0NjQwM30sCit7ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwgMHg0MDA0NjQwNH0sCit7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9JTlBVVCIsIDB4NDAwNDY0MDR9LAoreyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfT1VUUFVUIiwgMHg0MDA0NjQwNX0sCit7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX0VOQUJMRV9PVVRQVVQiLCAweDQwMDQ2NDA2fSwKK3sibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX05PUk0iLCAweDQwMDQ2NTAyfSwKK3sibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX0lOUFVUIiwgMHg0MDA0NjUwM30sCit7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9PVVRQVVQiLCAweDQwMDQ2NTA0fSwKK3sibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsIDB4NDAwNDY1MDV9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwgMHg0MDA0NmUwMn0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwgMHg0MDA0NmUwNn0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwgMHg0MDA0NmUwY30sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBTRVRNT0RFIiwgMHg0MDA0NzA4MH0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBEQVRBRElSIiwgMHg0MDA0NzA5MH0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBORUdPVCIsIDB4NDAwNDcwOTF9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQU0VUUEhBU0UiLCAweDQwMDQ3MDk0fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX0NPREVDIiwgMHg0MDA0NzE4OX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19ERVBUSCIsIDB4NDAwNDcxOGN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9GUkFNRSIsIDB4NDAwNDcxOGR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfVk9MVU1FIiwgMHg0MDA0NzE4ZX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfQ09ERUMiLCAweDQwMDQ3MTkwfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9ERVBUSCIsIDB4NDAwNDcxOTN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1ZPTFVNRSIsIDB4NDAwNDcxOTR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9EVE1GX09PQiIsIDB4NDAwNDcxOTl9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwgMHg0MDA0NzE5Y30sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwgMHg0MDA0NzE5ZH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwgMHg0MDA0NzFhNH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1dJTktfRFVSQVRJT04iLCAweDQwMDQ3MWE2fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLCAweDQwMDQ3MWM4fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9BRUNfU1RBUlQiLCAweDQwMDQ3MWNifSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVRfTEVEIiwgMHg0MDA0NzFjZX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfTUlYRVIiLCAweDQwMDQ3MWNmfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwgMHg0MDA0NzFkMH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUE9SVCIsIDB4NDAwNDcxZDF9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RBQV9BR0FJTiIsIDB4NDAwNDcxZDJ9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BPVFNfUFNUTiIsIDB4NDAwNDcxZDV9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0haIiwgMHg0MDA0NzFlMH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUkFURSIsIDB4NDAwNDcxZTF9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwgMHg0MDA0NzFmZH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfSU5URVJDT01fU1RPUCIsIDB4NDAwNDcxZmV9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NBVFRDSEFOIiwgMHg0MDA0NzQzOH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0NPTk5FQ1QiLCAweDQwMDQ3NDNhfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01SUlUiLCAweDQwMDQ3NDNifSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DREVUQUNIIiwgMHg0MDA0NzQzY30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0FUVEFDSCIsIDB4NDAwNDc0M2R9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTREVCVUciLCAweDQwMDQ3NDQwfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01BWENJRCIsIDB4NDAwNDc0NTF9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTTVJVIiwgMHg0MDA0NzQ1Mn0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NSQVNZTkNNQVAiLCAweDQwMDQ3NDU0fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0FTWU5DTUFQIiwgMHg0MDA0NzQ1N30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NGTEFHUyIsIDB4NDAwNDc0NTl9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0JVTkRMRSIsIDB4NDAwNDc0ODF9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUEZMQUdTIiwgMHg0MDA0NzQ4M30sCit7ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVRVIiwgMHg0MDA0NzQ4NH0sCit7ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVJVIiwgMHg0MDA0NzQ4NX0sCit7ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTT1IiLCAweDQwMDQ3NDg3fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NDQVBUVVJFIiwgMHg0MDA0NzYwOH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1lOQyIsIDB4NDAwNDc2MTJ9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NXUklURU1PREUiLCAweDQwMDQ3NjE5fSwKK3sibGludXgvZG4uaCIsICJTSU9DU05FVEFERFIiLCAweDQwMDQ4OWUwfSwKK3sibGludXgvZG4uaCIsICJPU0lPQ1NORVRBRERSIiwgMHg0MDA0ODllMH0sCit7ImxpbnV4L2F1dG9fZnM0LmgiLCAiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLCAweDQwMDQ5MzY2fSwKK3sibGludXgvbHZtLmgiLCAiVkdfQ1JFQVRFIiwgMHg0MDA0ZmUwMH0sCit7ImxpbnV4L2x2bS5oIiwgIlZHX1JFTU9WRSIsIDB4NDAwNGZlMDF9LAoreyJsaW51eC9sdm0uaCIsICJWR19FWFRFTkQiLCAweDQwMDRmZTAzfSwKK3sibGludXgvbHZtLmgiLCAiVkdfUkVEVUNFIiwgMHg0MDA0ZmUwNH0sCit7ImxpbnV4L2x2bS5oIiwgIlZHX1NFVF9FWFRFTkRBQkxFIiwgMHg0MDA0ZmUwOH0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX0NSRUFURSIsIDB4NDAwNGZlMjB9LAoreyJsaW51eC9sdm0uaCIsICJMVl9SRU1PVkUiLCAweDQwMDRmZTIxfSwKK3sibGludXgvbHZtLmgiLCAiTFZfRVhURU5EIiwgMHg0MDA0ZmUyNH0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1JFRFVDRSIsIDB4NDAwNGZlMjV9LAoreyJsaW51eC9sdm0uaCIsICJMVl9TRVRfQUNDRVNTIiwgMHg0MDA0ZmUyOH0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9BTExPQ0FUSU9OIiwgMHg0MDA0ZmUyOX0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9TVEFUVVMiLCAweDQwMDRmZTJhfSwKK3sibGludXgvbHZtLmgiLCAiTEVfUkVNQVAiLCAweDQwMDRmZTJifSwKK3sibGludXgvbHZtLmgiLCAiUFZfRkxVU0giLCAweDQwMDRmZTQyfSwKK3sibGludXgvbHZtLmgiLCAiUEVfTE9DS19VTkxPQ0siLCAweDQwMDRmZTUwfSwKK3sibGludXgvZWxldmF0b3IuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKK3sibGludXgvZnMuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19TRVRVUCIsIDB4NDAwODQxMDN9LAoreyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1JFU0VSVkUiLCAweDQwMDg0MTA0fSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19QUk9URUNUIiwgMHg0MDA4NDEwNX0sCit7ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQklORCIsIDB4NDAwODQxMDh9LAoreyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1VOQklORCIsIDB4NDAwODQxMDl9LAoreyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLCAweDQwMDg0MjAyfSwKK3sibGludXgvaW5wdXQuaCIsICJFVklPQ1NSRVAiLCAweDQwMDg0NTAzfSwKK3sibGludXgvaW5wdXQuaCIsICJFVklPQ1NLRVlDT0RFIiwgMHg0MDA4NDUwNH0sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFEREVOVFJPUFkiLCAweDQwMDg1MjAzfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVBUFVSQiIsIDB4NDAwODU1MGN9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwgMHg0MDA4NTUwZH0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwgMHg0MDA4NTUxMX0sCit7ImxpbnV4L2V4dDJfZnMuaCIsICJFWFQyX0lPQ19TRVRGTEFHUyIsIDB4NDAwODY2MDJ9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NUT1AiLCAweDQwMDg2ZDAxfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLCAweDQwMDg2ZTAyfSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDQwMDg2ZWY4fSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLCAweDQwMDg2ZWZhfSwKK3sibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfU0VUIiwgMHg0MDA4NzAwY30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19FUE9DSF9TRVQiLCAweDQwMDg3MDBlfSwKK3sibGludXgvc2VyaW8uaCIsICJTUElPQ1NUWVBFIiwgMHg0MDA4NzEwMX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsIDB4NDAwODcxODJ9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1NFVF9GSUxURVIiLCAweDQwMDg3MWM3fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9JTklUX1RPTkUiLCAweDQwMDg3MWM5fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9UT05FX0NBREVOQ0UiLCAweDQwMDg3MWNhfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU05QTU9ERSIsIDB4NDAwODc0NGJ9LAoreyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfU0VUVkVSU0lPTiIsIDB4NDAwODc2MDJ9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGUkVRIiwgMHg0MDA4NzYwZn0sCit7ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NTRldEIiwgMHg0MDA4YjEwMH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRGTVRUUksiLCAweDQwMGMwMjQ4fSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfUkVHSVNURVIiLCAweDQwMGM0MzAxfSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT0VWVFJFRyIsIDB4NDAwYzY5MGF9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFJPT1QiLCAweDQwMGM2ZTA4fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUExBWU1PREUiLCAweDQwMGM3NjE4fSwKK3sibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLCAweDQwMGU2NDA3fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUElDVCIsIDB4NDAwZTc2MDd9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RGTVQiLCAweDQwMTA0NDAxfSwKK3sibGludXgvYXRtX2lkdDc3MTA1LmgiLCAiSURUNzcxMDVfR0VUU1RBVCIsIDB4NDAxMDYxMzJ9LAoreyJsaW51eC9hdG1faWR0NzcxMDUuaCIsICJJRFQ3NzEwNV9HRVRTVEFUWiIsIDB4NDAxMDYxMzN9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVCIsIDB4NDAxMDYxNTB9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVFoiLCAweDQwMTA2MTUxfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExPT1AiLCAweDQwMTA2MTUyfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVExPT1AiLCAweDQwMTA2MTUzfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX1FVRVJZTE9PUCIsIDB4NDAxMDYxNTR9LAoreyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX01FTURVTVAiLCAweDQwMTA2MTYwfSwKK3sibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0wiLCAweDQwMTA2MTYxfSwKK3sibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19TRVRCVUZMRVYiLCAweDQwMTA2MTYyfSwKK3sibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0xaIiwgMHg0MDEwNjE2Mn0sCit7ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9TRVRQT09MIiwgMHg0MDEwNjE2M30sCit7ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRUSElTVCIsIDB4NDAxMDYxNjR9LAoreyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX1NFVE1VTFQiLCAweDQwMTA2MTY3fSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExJTktSQVRFIiwgMHg0MDEwNjE4MX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVROQU1FUyIsIDB4NDAxMDYxODN9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUVFlQRSIsIDB4NDAxMDYxODR9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VURVNJIiwgMHg0MDEwNjE4NX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRBRERSIiwgMHg0MDEwNjE4Nn0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9SU1RBRERSIiwgMHg0MDEwNjE4N30sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9BRERBRERSIiwgMHg0MDEwNjE4OH0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9ERUxBRERSIiwgMHg0MDEwNjE4OX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRDSVJBTkdFIiwgMHg0MDEwNjE4YX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRDSVJBTkdFIiwgMHg0MDEwNjE4Yn0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRFU0kiLCAweDQwMTA2MThjfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVEVTSUYiLCAweDQwMTA2MThkfSwKK3sibGludXgvcHBkZXYuaCIsICJQUFNFVFRJTUUiLCAweDQwMTA3MDk2fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTIiwgMHg0MDEwNzQ0ZH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DTUNBUFRVUkUiLCAweDQwMTA3NjEzfSwKK3siYXNtL3RhcGUzOTAuaCIsICJUQVBFMzkwX0RJU1BMQVkiLCAweDQwMTE2NDAxfSwKK3sibGludXgvZmQuaCIsICJGRFNFVE1BWEVSUlMiLCAweDQwMTQwMjRjfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0FQVFVSRSIsIDB4NDAxNDc2MTd9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGQlVGIiwgMHg0MDE4NzYwY30sCit7ImxpbnV4L2ZkLmgiLCAiRkRTRVRQUk0iLCAweDQwMjAwMjQyfSwKK3sibGludXgvZmQuaCIsICJGRERFRlBSTSIsIDB4NDAyMDAyNDN9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTQVRUUiIsIDB4NDAyMDQ0MDJ9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTWEFTWU5DTUFQIiwgMHg0MDIwNzQ0Zn0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU01JQ1JPQ09ERSIsIDB4NDAyMDc2MWJ9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NWQklGTVQiLCAweDQwMjA3NjFkfSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ1NDT1JSIiwgMHg0MDI0NmEyMX0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fU0VUIiwgMHg0MDI0NzAwN30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19TRVRfVElNRSIsIDB4NDAyNDcwMGF9LAoreyJsaW51eC9ydGMuaCIsICJSVENfV0tBTE1fU0VUIiwgMHg0MDI4NzAwZn0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1dJTiIsIDB4NDAyODc2MGF9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NBVURJTyIsIDB4NDAyODc2MTF9LAoreyJsaW51eC9zbWJfZnMuaCIsICJTTUJfSU9DX05FV0NPTk4iLCAweDQwMmM3NTAyfSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NQQVJBTVMiLCAweDQwMzA2ZDAwfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0hBTiIsIDB4NDAzMDc2MDN9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NUVU5FUiIsIDB4NDA0MDc2MDV9LAoreyJsaW51eC9mZC5oIiwgIkZEU0VURFJWUFJNIiwgMHg0MDgwMDI5MH0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0dFVERSSVZFUiIsIDB4NDEwNDU1MDh9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9WT0xVTUUiLCAweDYwMDQ0ZDAwfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQkFTUyIsIDB4NjAwNDRkMDF9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9UUkVCTEUiLCAweDYwMDQ0ZDAyfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfU1lOVEgiLCAweDYwMDQ0ZDAzfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUENNIiwgMHg2MDA0NGQwNH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1NQRUFLRVIiLCAweDYwMDQ0ZDA1fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTElORSIsIDB4NjAwNDRkMDZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9NSUMiLCAweDYwMDQ0ZDA3fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQ0QiLCAweDYwMDQ0ZDA4fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfSU1JWCIsIDB4NjAwNDRkMDl9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9BTFRQQ00iLCAweDYwMDQ0ZDBhfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUkVDTEVWIiwgMHg2MDA0NGQwYn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0lHQUlOIiwgMHg2MDA0NGQwY30sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX09HQUlOIiwgMHg2MDA0NGQwZH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUxIiwgMHg2MDA0NGQwZX0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUyIiwgMHg2MDA0NGQwZn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUzIiwgMHg2MDA0NGQxMH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX01VVEUiLCAweDYwMDQ0ZDFmfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfRU5IQU5DRSIsIDB4NjAwNDRkMWZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MT1VEIiwgMHg2MDA0NGQxZn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1JFQ1NSQyIsIDB4NjAwNDRkZmZ9LAoreyJsaW51eC9qb3lzdGljay5oIiwgIkpTSU9DR0FYRVMiLCAweDgwMDE2YTExfSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dCVVRUT05TIiwgMHg4MDAxNmExMn0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBSU1RBVFVTIiwgMHg4MDAxNzA4MX0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBSQ09OVFJPTCIsIDB4ODAwMTcwODN9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQUkRBVEEiLCAweDgwMDE3MDg1fSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX0VSUkNPREUiLCAweDgwMDI0MzIxfSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfSU5TVEFMTEVEIiwgMHg4MDAyNDMyMn0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9GTEFHUyIsIDB4ODAwNDQzMjN9LAoreyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9TRVRfRkxBR1MiLCAweDgwMDQ0MzI0fSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfQ0xSX0ZMQUdTIiwgMHg4MDA0NDMyNX0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfT1BFTkNPVU5UIiwgMHg4MDA0NDMyNn0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfR0VUVU5JVCIsIDB4ODAwNDQzMjd9LAoreyJhc20vZGFzZC5oIiwgIkRBU0RBUElWRVIiLCAweDgwMDQ0NDAwfSwKK3sibGludXgvaW5wdXQuaCIsICJFVklPQ0dWRVJTSU9OIiwgMHg4MDA0NDUwMX0sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJOREdFVEVOVENOVCIsIDB4ODAwNDUyMDB9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0dQVE4iLCAweDgwMDQ1NDMwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVTRVRFUCIsIDB4ODAwNDU1MDN9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwgMHg4MDA0NTUwNX0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwgMHg4MDA0NTUwZn0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLCAweDgwMDQ1NTEwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQ0xFQVJfSEFMVCIsIDB4ODAwNDU1MTV9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNUQVRVUyIsIDB4ODAwNDU3MDF9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVEJPT1RTVEFUVVMiLCAweDgwMDQ1NzAyfSwKK3sibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRURU1QIiwgMHg4MDA0NTcwM30sCit7ImxpbnV4L3dhdGNoZG9nLmgiLCAiV0RJT0NfU0VUT1BUSU9OUyIsIDB4ODAwNDU3MDR9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0tFRVBBTElWRSIsIDB4ODAwNDU3MDV9LAoreyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVERJQUciLCAweDgwMDQ2MTE0fSwKK3sibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRGUkFNSU5HIiwgMHg4MDA0NjExNn0sCit7ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLCAweDgwMDQ2NDAwfSwKK3sibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfR0VUX1NUQVRVUyIsIDB4ODAwNDY0MDJ9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPVkFMSURBVEUiLCAweDgwMDQ2OTA4fSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dWRVJTSU9OIiwgMHg4MDA0NmEwMX0sCit7ImxpbnV4L3VkZl9mc19pLmgiLCAiVURGX0dFVEVBU0laRSIsIDB4ODAwNDZjNDB9LAoreyJsaW51eC96ZnRhcGUuaCIsICJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLCAweDgwMDQ2ZDY4fSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TSUdOX1dBTlRFRCIsIDB4ODAwNDZlMDZ9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsIDB4ODAwNDZlMGN9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQQ0xSSVJRIiwgMHg4MDA0NzA5M30sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0RUTUZfUkVBRFkiLCAweDgwMDQ3MTk2fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUYiLCAweDgwMDQ3MTk3fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLCAweDgwMDQ3MTk4fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRVhDRVBUSU9OIiwgMHg4MDA0NzE5YX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQ0FSRFRZUEUiLCAweDgwMDQ3MWMxfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVJJQUwiLCAweDgwMDQ3MWMyfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfVFlQRSIsIDB4ODAwNDcxYzN9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RTUF9WRVJTSU9OIiwgMHg4MDA0NzFjNH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dDSEFOIiwgMHg4MDA0NzQzN30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dERUJVRyIsIDB4ODAwNDc0NDF9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHTVJVIiwgMHg4MDA0NzQ1M30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dSQVNZTkNNQVAiLCAweDgwMDQ3NDU1fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1VOSVQiLCAweDgwMDQ3NDU2fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0FTWU5DTUFQIiwgMHg4MDA0NzQ1OH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dGTEFHUyIsIDB4ODAwNDc0NWF9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dNUEZMQUdTIiwgMHg4MDA0NzQ4Mn0sCit7ImxpbnV4L3NtYl9mcy5oIiwgIlNNQl9JT0NfR0VUTU9VTlRVSUQiLCAweDgwMDQ3NTAxfSwKK3sibGludXgvc21iX2ZzLmgiLCAiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwgMHg4MDA0NzUwM30sCit7ImxpbnV4L2RuLmgiLCAiU0lPQ0dORVRBRERSIiwgMHg4MDA0ODllMX0sCit7ImxpbnV4L2RuLmgiLCAiT1NJT0NHTkVUQUREUiIsIDB4ODAwNDg5ZTF9LAoreyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsIDB4ODAwNDkzNjN9LAoreyJsaW51eC9sdm0uaCIsICJMVk1fR0VUX0lPUF9WRVJTSU9OIiwgMHg4MDA0ZmU5OH0sCit7ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VURlJTRU5TRSIsIDB4ODAwNjYxMTd9LAoreyJsaW51eC9lbGV2YXRvci5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoreyJsaW51eC9mcy5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoreyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0lORk8iLCAweDgwMDg0MTAwfSwKK3sibGludXgvcG11LmgiLCAiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwgMHg4MDA4NDIwMX0sCit7ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfR0VUX01PREVMIiwgMHg4MDA4NDIwM30sCit7ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfSEFTX0FEQiIsIDB4ODAwODQyMDR9LAoreyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0lEIiwgMHg4MDA4NDUwMn0sCit7ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHUkVQIiwgMHg4MDA4NDUwM30sCit7ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHS0VZQ09ERSIsIDB4ODAwODQ1MDR9LAoreyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0tFWSIsIDB4ODAwODQ1MDV9LAoreyJsaW51eC9yYW5kb20uaCIsICJSTkRHRVRQT09MIiwgMHg4MDA4NTIwMn0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsIDB4ODAwODU1MDR9LAoreyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfR0VURkxBR1MiLCAweDgwMDg2NjAxfSwKK3sibGludXgvdWRmX2ZzX2kuaCIsICJVREZfR0VURUFCTE9DSyIsIDB4ODAwODZjNDF9LAoreyJsaW51eC91ZGZfZnNfaS5oIiwgIlVERl9HRVRWT0xJREVOVCIsIDB4ODAwODZjNDJ9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NQT1MiLCAweDgwMDg2ZDAzfSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDgwMDg2ZWY4fSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLCAweDgwMDg2ZWY5fSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLCAweDgwMDg2ZWZifSwKK3sibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfUkVBRCIsIDB4ODAwODcwMGJ9LAoreyJsaW51eC9ydGMuaCIsICJSVENfRVBPQ0hfUkVBRCIsIDB4ODAwODcwMGR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsIDB4ODAwODcxODF9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0NJRCIsIDB4ODAwODcxZDR9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0ZSQU1FU19SRUFEIiwgMHg4MDA4NzFlMn0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRlJBTUVTX1dSSVRURU4iLCAweDgwMDg3MWUzfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9SRUFEX1dBSVQiLCAweDgwMDg3MWU0fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9XUklURV9XQUlUIiwgMHg4MDA4NzFlNX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLCAweDgwMDg3MWU2fSwKK3sibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX0dFVFZFUlNJT04iLCAweDgwMDg3NjAxfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRlJFUSIsIDB4ODAwODc2MGV9LAoreyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwgMHg4MDBjNjQwMX0sCit7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLCAweDgwMGM2NTAxfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRST09UIiwgMHg4MDBjNmUwOH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DS0VZIiwgMHg4MDBjNzYwZH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1BJQ1QiLCAweDgwMGU3NjA2fSwKK3sibGludXgvZmQuaCIsICJGREdFVERSVlRZUCIsIDB4ODAxMDAyMGZ9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19ESVNDU0lHTkFMIiwgMHg4MDEwNTUwZX0sCit7ImxpbnV4L210aW8uaCIsICJNVElPQ0dFVFNJWkUiLCAweDgwMTA2ZDA5fSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19OQ1BSRVFVRVNUIiwgMHg4MDEwNmUwMX0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLCAweDgwMTA2ZTBhfSwKK3sibGludXgvcHBkZXYuaCIsICJQUEdFVFRJTUUiLCAweDgwMTA3MDk1fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0lETEUiLCAweDgwMTA3NDNmfSwKK3sibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHSUZOQU1FIiwgMHg4MDEwNzQ4OH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRHRVRNQVhFUlJTIiwgMHg4MDE0MDIwZX0sCit7ImxpbnV4L210aW8uaCIsICJNVElPQ1ZPTElORk8iLCAweDgwMTQ2ZDA4fSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19MT0NLVU5MT0NLIiwgMHg4MDE0NmUwN30sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1VOSVQiLCAweDgwMTQ3NjE1fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0FQVFVSRSIsIDB4ODAxNDc2MTZ9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NJR05fSU5JVCIsIDB4ODAxODZlMDV9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLCAweDgwMTg2ZTA5fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRkJVRiIsIDB4ODAxODc2MGJ9LAoreyJsaW51eC9mZC5oIiwgIkZER0VUUFJNIiwgMHg4MDIwMDIwNH0sCit7ImFzbS9kYXNkLmgiLCAiQklPREFTREdBVFRSIiwgMHg4MDIwNDQwNX0sCit7ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9WQkxBTksiLCAweDgwMjA0NjEyfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1hBU1lOQ01BUCIsIDB4ODAyMDc0NTB9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dWQklGTVQiLCAweDgwMjA3NjFjfSwKK3sibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRTVEFUIiwgMHg4MDI0NjExMH0sCit7ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VUU1RBVFoiLCAweDgwMjQ2MTExfSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dDT1JSIiwgMHg4MDI0NmEyMn0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fUkVBRCIsIDB4ODAyNDcwMDh9LAoreyJsaW51eC9ydGMuaCIsICJSVENfUkRfVElNRSIsIDB4ODAyNDcwMDl9LAoreyJsaW51eC9mZC5oIiwgIkZER0VURkRDU1RBVCIsIDB4ODAyODAyMTV9LAoreyJsaW51eC9mZC5oIiwgIkZEV0VSUk9SR0VUIiwgMHg4MDI4MDIxN30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19XS0FMTV9SRCIsIDB4ODAyODcwMTB9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dXSU4iLCAweDgwMjg3NjA5fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQVVESU8iLCAweDgwMjg3NjEwfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRDSEFSU0VUUyIsIDB4ODAyYTZlMGJ9LAoreyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1BBUkFNUyIsIDB4ODAzMDZkMDF9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NHRVQiLCAweDgwMzA2ZDAyfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfU1VCTUlUVVJCIiwgMHg4MDM4NTUwYX0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NBUCIsIDB4ODAzYzc2MDF9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPR0VUSU9QUyIsIDB4ODA0MDY5MDB9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dDT01QUkVTU09SUyIsIDB4ODA0MDc0ODZ9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNVUFBPUlQiLCAweDgwNDg1NzAwfSwKK3sibGludXgvZmQuaCIsICJGREdFVERSVlNUQVQiLCAweDgwNTAwMjEyfSwKK3sibGludXgvZmQuaCIsICJGRFBPTExEUlZTVEFUIiwgMHg4MDUwMDIxM30sCit7ImxpbnV4L2kyby1kZXYuaCIsICJJMk9FVlRHRVQiLCAweDgwNjg2OTBifSwKK3sibGludXgvZmQuaCIsICJGREdFVERSVlBSTSIsIDB4ODA4MDAyMTF9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19IVUJfUE9SVElORk8iLCAweDgwODA1NTEzfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHTUJVRiIsIDB4ODA4ODc2MTR9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RQU1JEIiwgMHg4MGMwNDQwNH0sCit7ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX0VYUElSRSIsIDB4ODEwYzkzNjV9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dQTEFZSU5GTyIsIDB4ODExODc2MWF9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RJTkZPIiwgMHg4MTc4NDQwMX0sCit7ImFzbS9kYXNkLmgiLCAiQklPREFTRElORk8yIiwgMHg4MWEwNDQwM30sCit7ImxpbnV4L21zZG9zX2ZzLmgiLCAiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLCAweDgyMzA3MjAxfSwKK3sibGludXgvbXNkb3NfZnMuaCIsICJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLCAweDgyMzA3MjAyfSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSRCIsIDB4ODQwODQ0MDJ9LAoreyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwgMHhjMDA0NDMwNn0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9TRVJJQUwiLCAweGMwMDQ0MzA4fSwKK3sibGludXgvc29uZXQuaCIsICJTT05FVF9TRVRESUFHIiwgMHhjMDA0NjExMn0sCit7ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfQ0xSRElBRyIsIDB4YzAwNDYxMTN9LAoreyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DV0FJVEVWRU5UIiwgMHhjMDA0NmQwOH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ05FV1VOSVQiLCAweGMwMDQ3NDNlfSwKK3sibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTIiwgMHhjMDA0ZmUwNX0sCit7ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVU19HRVRfQ09VTlQiLCAweGMwMDRmZTA2fSwKK3sibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsIDB4YzAwNGZlMDd9LAoreyJsaW51eC9sdm0uaCIsICJMVl9TVEFUVVNfQllOQU1FIiwgMHhjMDA0ZmUyNn0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1NUQVRVU19CWUlOREVYIiwgMHhjMDA0ZmUyN30sCit7ImxpbnV4L2x2bS5oIiwgIlBWX1NUQVRVUyIsIDB4YzAwNGZlNDB9LAoreyJsaW51eC9sdm0uaCIsICJQVl9DSEFOR0UiLCAweGMwMDRmZTQxfSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19BTExPQ0FURSIsIDB4YzAwODQxMDZ9LAoreyJhc20vY21iLmgiLCAiQklPREFTRFJFQURDTUIiLCAweGMwMDg0NDIwfSwKK3sibGludXgvY29kYS5oIiwgIkNJT0NfS0VSTkVMX1ZFUlNJT04iLCAweGMwMDg2MzBhfSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLCAweGMwMDg2ZWZhfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUVVFUllfQ09ERUMiLCAweGMwMDg3MWE3fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR05QTU9ERSIsIDB4YzAwODc0NGN9LAoreyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwgMHhjMDA4OTM2NH0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9WRVJTSU9OIiwgMHhjMDEwNDMwN30sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLCAweGMwMTA0MzIwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfSU9DVEwiLCAweGMwMTA1NTEyfSwKK3sibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19HRVRQU1RBVCIsIDB4YzAxMDYxNjF9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwgMHhjMDEwNmUwYX0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTlRST0wiLCAweGMwMTg1NTAwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQlVMSyIsIDB4YzAxODU1MDJ9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPSFJUR0VUIiwgMHhjMDE4NjkwMX0sCit7ImxpbnV4L2kyby1kZXYuaCIsICJJMk9MQ1RHRVQiLCAweGMwMTg2OTAyfSwKK3sibGludXgvbXRpby5oIiwgIk1USU9DUkRGVFNFRyIsIDB4YzAxODZkMDZ9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NXUkZUU0VHIiwgMHhjMDE4NmQwN30sCit7ImxpbnV4L210aW8uaCIsICJNVElPQ0ZURk9STUFUIiwgMHhjMDE4NmQwYX0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsIDB4YzAxODZlMDl9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NGVENNRCIsIDB4YzAyMDZkMGJ9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTVNFVCIsIDB4YzAyODY5MDN9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTUdFVCIsIDB4YzAyODY5MDR9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVF9GU19JTkZPIiwgMHhjMDI4NmUwNH0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLCAweGMwMmE2ZTBifSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREwiLCAweGMwMzA2OTA1fSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT1NXVUwiLCAweGMwMzA2OTA2fSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREVMIiwgMHhjMDMwNjkwN30sCit7ImxpbnV4L2kyby1kZXYuaCIsICJJMk9IVE1MIiwgMHhjMDMwNjkwOX0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLCAweGMwMzA2ZTA0fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0hBTiIsIDB4YzAzMDc2MDJ9LAoreyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfUFJPRklMRSIsIDB4YzA0MDQzMDl9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dUVU5FUiIsIDB4YzA0MDc2MDR9LAoreyJhc20vY21iLmgiLCAiQklPREFTRFJFQURBTExDTUIiLCAweGMwNTg0NDIxfSwKK3sibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHQ0FMTElORk8iLCAweGMwODg3NDgwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkwL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3MzOTAvc2lnbmFsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRiMDBiMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zMzkwL3NpZ25hbGVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKwkiU0lHXzAiLAkvKiAwICovCisJIlNJR0hVUCIsCS8qIDEgKi8KKwkiU0lHSU5UIiwJLyogMiAqLworCSJTSUdRVUlUIiwJLyogMyAqLworCSJTSUdJTEwiLAkvKiA0ICovCisJIlNJR1RSQVAiLAkvKiA1ICovCisJIlNJR0FCUlQiLAkvKiA2ICovCisJIlNJR0JVUyIsCS8qIDcgKi8KKwkiU0lHRlBFIiwJLyogOCAqLworCSJTSUdLSUxMIiwJLyogOSAqLworCSJTSUdVU1IxIiwJLyogMTAgKi8KKwkiU0lHU0VHViIsCS8qIDExICovCisJIlNJR1VTUjIiLAkvKiAxMiAqLworCSJTSUdQSVBFIiwJLyogMTMgKi8KKwkiU0lHQUxSTSIsCS8qIDE0ICovCisJIlNJR1RFUk0iLAkvKiAxNSAqLworCSJTSUdTVEtGTFQiLAkvKiAxNiAqLworCSJTSUdDSExEIiwJLyogMTcgKi8KKwkiU0lHQ09OVCIsCS8qIDE4ICovCisJIlNJR1NUT1AiLAkvKiAxOSAqLworCSJTSUdUU1RQIiwJLyogMjAgKi8KKwkiU0lHVFRJTiIsCS8qIDIxICovCisJIlNJR1RUT1UiLAkvKiAyMiAqLworCSJTSUdVUkciLAkvKiAyMyAqLworCSJTSUdYQ1BVIiwJLyogMjQgKi8KKwkiU0lHWEZTWiIsCS8qIDI1ICovCisJIlNJR1ZUQUxSTSIsCS8qIDI2ICovCisJIlNJR1BST0YiLAkvKiAyNyAqLworCSJTSUdXSU5DSCIsCS8qIDI4ICovCisJIlNJR0lPIiwJLyogMjkgKi8KKwkiU0lHUFdSIiwJLyogMzAgKi8KKwkiU0lHVU5VU0VEIiwJLyogMzEgKi8KKwkiU0lHUlRNSU4iLAkvKiAzMiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3MzOTB4L2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvczM5MHgvZXJybm9lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODBiNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3MzOTB4L2Vycm5vZW50LmgKQEAgLTAsMCArMSwxMjUgQEAKKwkiRVJSTk9fMCIsIC8qIDAgKi8KKwkiRVBFUk0iLCAvKiAxICovCisJIkVOT0VOVCIsIC8qIDIgKi8KKwkiRVNSQ0giLCAvKiAzICovCisJIkVJTlRSIiwgLyogNCAqLworCSJFSU8iLCAvKiA1ICovCisJIkVOWElPIiwgLyogNiAqLworCSJFMkJJRyIsIC8qIDcgKi8KKwkiRU5PRVhFQyIsIC8qIDggKi8KKwkiRUJBREYiLCAvKiA5ICovCisJIkVDSElMRCIsIC8qIDEwICovCisJIkVBR0FJTiIsIC8qIDExICovCisJIkVOT01FTSIsIC8qIDEyICovCisJIkVBQ0NFUyIsIC8qIDEzICovCisJIkVGQVVMVCIsIC8qIDE0ICovCisJIkVOT1RCTEsiLCAvKiAxNSAqLworCSJFQlVTWSIsIC8qIDE2ICovCisJIkVFWElTVCIsIC8qIDE3ICovCisJIkVYREVWIiwgLyogMTggKi8KKwkiRU5PREVWIiwgLyogMTkgKi8KKwkiRU5PVERJUiIsIC8qIDIwICovCisJIkVJU0RJUiIsIC8qIDIxICovCisJIkVJTlZBTCIsIC8qIDIyICovCisJIkVORklMRSIsIC8qIDIzICovCisJIkVNRklMRSIsIC8qIDI0ICovCisJIkVOT1RUWSIsIC8qIDI1ICovCisJIkVUWFRCU1kiLCAvKiAyNiAqLworCSJFRkJJRyIsIC8qIDI3ICovCisJIkVOT1NQQyIsIC8qIDI4ICovCisJIkVTUElQRSIsIC8qIDI5ICovCisJIkVST0ZTIiwgLyogMzAgKi8KKwkiRU1MSU5LIiwgLyogMzEgKi8KKwkiRVBJUEUiLCAvKiAzMiAqLworCSJFRE9NIiwgLyogMzMgKi8KKwkiRVJBTkdFIiwgLyogMzQgKi8KKwkiRURFQURMSyIsIC8qIDM1ICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCisJIkVOT0xDSyIsIC8qIDM3ICovCisJIkVOT1NZUyIsIC8qIDM4ICovCisJIkVOT1RFTVBUWSIsIC8qIDM5ICovCisJIkVMT09QIiwgLyogNDAgKi8KKwkiRVJSTk9fNDEiLCAvKiA0MSAqLworCSJFTk9NU0ciLCAvKiA0MiAqLworCSJFSURSTSIsIC8qIDQzICovCisJIkVDSFJORyIsIC8qIDQ0ICovCisJIkVMMk5TWU5DIiwgLyogNDUgKi8KKwkiRUwzSExUIiwgLyogNDYgKi8KKwkiRUwzUlNUIiwgLyogNDcgKi8KKwkiRUxOUk5HIiwgLyogNDggKi8KKwkiRVVOQVRDSCIsIC8qIDQ5ICovCisJIkVOT0NTSSIsIC8qIDUwICovCisJIkVMMkhMVCIsIC8qIDUxICovCisJIkVCQURFIiwgLyogNTIgKi8KKwkiRUJBRFIiLCAvKiA1MyAqLworCSJFWEZVTEwiLCAvKiA1NCAqLworCSJFTk9BTk8iLCAvKiA1NSAqLworCSJFQkFEUlFDIiwgLyogNTYgKi8KKwkiRUJBRFNMVCIsIC8qIDU3ICovCisJIkVSUk5PXzU4IiwgLyogNTggKi8KKwkiRUJGT05UIiwgLyogNTkgKi8KKwkiRU5PU1RSIiwgLyogNjAgKi8KKwkiRU5PREFUQSIsIC8qIDYxICovCisJIkVUSU1FIiwgLyogNjIgKi8KKwkiRU5PU1IiLCAvKiA2MyAqLworCSJFTk9ORVQiLCAvKiA2NCAqLworCSJFTk9QS0ciLCAvKiA2NSAqLworCSJFUkVNT1RFIiwgLyogNjYgKi8KKwkiRU5PTElOSyIsIC8qIDY3ICovCisJIkVBRFYiLCAvKiA2OCAqLworCSJFU1JNTlQiLCAvKiA2OSAqLworCSJFQ09NTSIsIC8qIDcwICovCisJIkVQUk9UTyIsIC8qIDcxICovCisJIkVNVUxUSUhPUCIsIC8qIDcyICovCisJIkVET1RET1QiLCAvKiA3MyAqLworCSJFQkFETVNHIiwgLyogNzQgKi8KKwkiRU9WRVJGTE9XIiwgLyogNzUgKi8KKwkiRU5PVFVOSVEiLCAvKiA3NiAqLworCSJFQkFERkQiLCAvKiA3NyAqLworCSJFUkVNQ0hHIiwgLyogNzggKi8KKwkiRUxJQkFDQyIsIC8qIDc5ICovCisJIkVMSUJCQUQiLCAvKiA4MCAqLworCSJFTElCU0NOIiwgLyogODEgKi8KKwkiRUxJQk1BWCIsIC8qIDgyICovCisJIkVMSUJFWEVDIiwgLyogODMgKi8KKwkiRUlMU0VRIiwgLyogODQgKi8KKwkiRVJFU1RBUlQiLCAvKiA4NSAqLworCSJFU1RSUElQRSIsIC8qIDg2ICovCisJIkVVU0VSUyIsIC8qIDg3ICovCisJIkVOT1RTT0NLIiwgLyogODggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KKwkiRU1TR1NJWkUiLCAvKiA5MCAqLworCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLworCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDk4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLworCSJFTkVURE9XTiIsIC8qIDEwMCAqLworCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLworCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCisJIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KKwkiRU5PQlVGUyIsIC8qIDEwNSAqLworCSJFSVNDT05OIiwgLyogMTA2ICovCisJIkVOT1RDT05OIiwgLyogMTA3ICovCisJIkVTSFVURE9XTiIsIC8qIDEwOCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KKwkiRVRJTUVET1VUIiwgLyogMTEwICovCisJIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLworCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KKwkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCisJIkVBTFJFQURZIiwgLyogMTE0ICovCisJIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCisJIkVTVEFMRSIsIC8qIDExNiAqLworCSJFVUNMRUFOIiwgLyogMTE3ICovCisJIkVOT1ROQU0iLCAvKiAxMTggKi8KKwkiRU5BVkFJTCIsIC8qIDExOSAqLworCSJFSVNOQU0iLCAvKiAxMjAgKi8KKwkiRVJFTU9URUlPIiwgLyogMTIxICovCisJIkVEUVVPVCIsIC8qIDEyMiAqLworCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KKwkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkweC9pb2N0bGVudC5oIGIvc3RyYWNlL2xpbnV4L3MzOTB4L2lvY3RsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE0ZmJlYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zMzkweC9pb2N0bGVudC5oCkBAIC0wLDAgKzEsOTQxIEBACit7ImxpbnV4L2ZzLmgiLCAiRklCTUFQIiwgMHgxfSwKK3sibGludXgvZnMuaCIsICJGSUdFVEJTWiIsIDB4Mn0sCit7ImxpbnV4L2ZkLmgiLCAiRkRDTFJQUk0iLCAweDI0MX0sCit7ImxpbnV4L2ZkLmgiLCAiRkRNU0dPTiIsIDB4MjQ1fSwKK3sibGludXgvZmQuaCIsICJGRE1TR09GRiIsIDB4MjQ2fSwKK3sibGludXgvZmQuaCIsICJGREZNVEJFRyIsIDB4MjQ3fSwKK3sibGludXgvZmQuaCIsICJGREZNVEVORCIsIDB4MjQ5fSwKK3sibGludXgvZmQuaCIsICJGRFNFVEVNU0dUUkVTSCIsIDB4MjRhfSwKK3sibGludXgvZmQuaCIsICJGREZMVVNIIiwgMHgyNGJ9LAoreyJsaW51eC9mZC5oIiwgIkZEUkVTRVQiLCAweDI1NH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRXRVJST1JDTFIiLCAweDI1Nn0sCit7ImxpbnV4L2ZkLmgiLCAiRkRSQVdDTUQiLCAweDI1OH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRUV0FERExFIiwgMHgyNTl9LAoreyJsaW51eC9mZC5oIiwgIkZERUpFQ1QiLCAweDI1YX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRHRU8iLCAweDMwMX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfVU5NQVNLSU5UUiIsIDB4MzAyfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9NVUxUQ09VTlQiLCAweDMwNH0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19PQlNPTEVURV9JREVOVElUWSIsIDB4MzA3fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9LRUVQU0VUVElOR1MiLCAweDMwOH0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfMzJCSVQiLCAweDMwOX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19HRVRfTk9XRVJSIiwgMHgzMGF9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0RNQSIsIDB4MzBifSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVF9OSUNFIiwgMHgzMGN9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUX0lERU5USVRZIiwgMHgzMGR9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfUkVTRVQiLCAweDMxY30sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19UUklTVEFURV9IV0lGIiwgMHgzMWR9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fRFJJVkVfVEFTSyIsIDB4MzFlfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0RSSVZFX0NNRCIsIDB4MzFmfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9NVUxUQ09VTlQiLCAweDMyMX0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfVU5NQVNLSU5UUiIsIDB4MzIyfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9LRUVQU0VUVElOR1MiLCAweDMyM30sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfMzJCSVQiLCAweDMyNH0sCit7ImxpbnV4L2hkcmVnLmgiLCAiSERJT19TRVRfTk9XRVJSIiwgMHgzMjV9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fU0VUX0RNQSIsIDB4MzI2fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9QSU9fTU9ERSIsIDB4MzI3fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NDQU5fSFdJRiIsIDB4MzI4fSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX1NFVF9OSUNFIiwgMHgzMjl9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fVU5SRUdJU1RFUl9IV0lGIiwgMHgzMmF9LAoreyJsaW51eC9oZHJlZy5oIiwgIkhESU9fR0VUR0VPX0JJRyIsIDB4MzMwfSwKK3sibGludXgvaGRyZWcuaCIsICJIRElPX0dFVEdFT19CSUdfUkFXIiwgMHgzMzF9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9ET1MiLCAweDRkMn0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRE9TIiwgMHg0ZDN9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUk1ESVJfRE9TIiwgMHg0ZDR9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfU1RBVF9ET1MiLCAweDRkNX0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19DUkVBVF9FTUQiLCAweDRkNn0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19VTkxJTktfRU1EIiwgMHg0ZDd9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfUkVBRERJUl9FTUQiLCAweDRkOH0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19HRVRWRVJTSU9OIiwgMHg0ZDl9LAoreyJsaW51eC91bXNkb3NfZnMuaCIsICJVTVNET1NfSU5JVF9FTUQiLCAweDRkYX0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19ET1NfU0VUVVAiLCAweDRkYn0sCit7ImxpbnV4L3Vtc2Rvc19mcy5oIiwgIlVNU0RPU19SRU5BTUVfRE9TIiwgMHg0ZGN9LAoreyJsaW51eC9scC5oIiwgIkxQQ0hBUiIsIDB4NjAxfSwKK3sibGludXgvbHAuaCIsICJMUFRJTUUiLCAweDYwMn0sCit7ImxpbnV4L2xwLmgiLCAiTFBBQk9SVCIsIDB4NjA0fSwKK3sibGludXgvbHAuaCIsICJMUFNFVElSUSIsIDB4NjA1fSwKK3sibGludXgvYWM5N19jb2RlYy5oIiwgIkFDOTdfUkVDTVVYX01PTk9fTUlYIiwgMHg2MDZ9LAoreyJsaW51eC9scC5oIiwgIkxQR0VUSVJRIiwgMHg2MDZ9LAoreyJsaW51eC9scC5oIiwgIkxQV0FJVCIsIDB4NjA4fSwKK3sibGludXgvbHAuaCIsICJMUENBUkVGVUwiLCAweDYwOX0sCit7ImxpbnV4L2xwLmgiLCAiTFBBQk9SVE9QRU4iLCAweDYwYX0sCit7ImxpbnV4L2xwLmgiLCAiTFBHRVRTVEFUVVMiLCAweDYwYn0sCit7ImxpbnV4L2xwLmgiLCAiTFBSRVNFVCIsIDB4NjBjfSwKK3sibGludXgvbHAuaCIsICJMUEdFVFNUQVRTIiwgMHg2MGR9LAoreyJsaW51eC9scC5oIiwgIkxQR0VURkxBR1MiLCAweDYwZX0sCit7ImxpbnV4L2xwLmgiLCAiTFBTRVRUSU1FT1VUIiwgMHg2MGZ9LAoreyJsaW51eC9mcy5oIiwgIkJMS1JPU0VUIiwgMHgxMjVkfSwKK3sibGludXgvZnMuaCIsICJCTEtST0dFVCIsIDB4MTI1ZX0sCit7ImxpbnV4L2ZzLmgiLCAiQkxLUlJQQVJUIiwgMHgxMjVmfSwKK3sibGludXgvZnMuaCIsICJCTEtHRVRTSVpFIiwgMHgxMjYwfSwKK3sibGludXgvZnMuaCIsICJCTEtGTFNCVUYiLCAweDEyNjF9LAoreyJsaW51eC9mcy5oIiwgIkJMS1JBU0VUIiwgMHgxMjYyfSwKK3sibGludXgvZnMuaCIsICJCTEtSQUdFVCIsIDB4MTI2M30sCit7ImxpbnV4L2ZzLmgiLCAiQkxLRlJBU0VUIiwgMHgxMjY0fSwKK3sibGludXgvZnMuaCIsICJCTEtGUkFHRVQiLCAweDEyNjV9LAoreyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RTRVQiLCAweDEyNjZ9LAoreyJsaW51eC9mcy5oIiwgIkJMS1NFQ1RHRVQiLCAweDEyNjd9LAoreyJsaW51eC9mcy5oIiwgIkJMS1NTWkdFVCIsIDB4MTI2OH0sCit7ImxpbnV4L2ZzLmgiLCAiQkxLUEciLCAweDEyNjl9LAoreyJzY3NpL3NnLmgiLCAiU0dfU0VUX1RJTUVPVVQiLCAweDIyMDF9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX1RJTUVPVVQiLCAweDIyMDJ9LAoreyJzY3NpL3NnLmgiLCAiU0dfRU1VTEFURURfSE9TVCIsIDB4MjIwM30sCit7InNjc2kvc2cuaCIsICJTR19TRVRfVFJBTlNGT1JNIiwgMHgyMjA0fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9UUkFOU0ZPUk0iLCAweDIyMDV9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX0NPTU1BTkRfUSIsIDB4MjI3MH0sCit7InNjc2kvc2cuaCIsICJTR19TRVRfQ09NTUFORF9RIiwgMHgyMjcxfSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjcyfSwKK3sic2NzaS9zZy5oIiwgIlNHX1NFVF9SRVNFUlZFRF9TSVpFIiwgMHgyMjc1fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9TQ1NJX0lEIiwgMHgyMjc2fSwKK3sic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9MT1dfRE1BIiwgMHgyMjc5fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9MT1dfRE1BIiwgMHgyMjdhfSwKK3sic2NzaS9zZy5oIiwgIlNHX1NFVF9GT1JDRV9QQUNLX0lEIiwgMHgyMjdifSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9QQUNLX0lEIiwgMHgyMjdjfSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9OVU1fV0FJVElORyIsIDB4MjI3ZH0sCit7InNjc2kvc2cuaCIsICJTR19TRVRfREVCVUciLCAweDIyN2V9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX1NHX1RBQkxFU0laRSIsIDB4MjI3Zn0sCit7InNjc2kvc2cuaCIsICJTR19HRVRfVkVSU0lPTl9OVU0iLCAweDIyODJ9LAoreyJzY3NpL3NnLmgiLCAiU0dfTkVYVF9DTURfTEVOIiwgMHgyMjgzfSwKK3sic2NzaS9zZy5oIiwgIlNHX1NDU0lfUkVTRVQiLCAweDIyODR9LAoreyJzY3NpL3NnLmgiLCAiU0dfSU8iLCAweDIyODV9LAoreyJzY3NpL3NnLmgiLCAiU0dfR0VUX1JFUVVFU1RfVEFCTEUiLCAweDIyODZ9LAoreyJzY3NpL3NnLmgiLCAiU0dfU0VUX0tFRVBfT1JQSEFOIiwgMHgyMjg3fSwKK3sic2NzaS9zZy5oIiwgIlNHX0dFVF9LRUVQX09SUEhBTiIsIDB4MjI4OH0sCit7ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQUNRVUlSRSIsIDB4NDEwMX0sCit7ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfUkVMRUFTRSIsIDB4NDEwMn0sCit7ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfU0xFRVAiLCAweDQyMDB9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RESVNBQkxFIiwgMHg0NDAwfSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNERU5BQkxFIiwgMHg0NDAxfSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUlNSViIsIDB4NDQwMn0sCit7ImFzbS9kYXNkLmgiLCAiQklPREFTRFJMU0UiLCAweDQ0MDN9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTTENLIiwgMHg0NDA0fSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSU1QiLCAweDQ0MDV9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RRVUlFU0NFIiwgMHg0NDA2fSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUkVTVU1FIiwgMHg0NDA3fSwKK3siYXNtL2NtYi5oIiwgIkJJT0RBU0RDTUZFTkFCTEUiLCAweDQ0MjB9LAoreyJhc20vY21iLmgiLCAiQklPREFTRENNRkRJU0FCTEUiLCAweDQ0MjF9LAoreyJhc20vY21iLmgiLCAiQklPREFTRFJFU0VUQ01CIiwgMHg0NDIyfSwKK3sibGludXgvZmIuaCIsICJGQklPR0VUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAwfSwKK3sibGludXgvZmIuaCIsICJGQklPUFVUX1ZTQ1JFRU5JTkZPIiwgMHg0NjAxfSwKK3sibGludXgvcHMyZXNkaS5oIiwgIkNNRF9SRUFEIiwgMHg0NjAxfSwKK3sibGludXgvZmIuaCIsICJGQklPR0VUX0ZTQ1JFRU5JTkZPIiwgMHg0NjAyfSwKK3sibGludXgvcHMyZXNkaS5oIiwgIkNNRF9XUklURSIsIDB4NDYwMn0sCit7ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVENNQVAiLCAweDQ2MDR9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9QVVRDTUFQIiwgMHg0NjA1fSwKK3sibGludXgvZmIuaCIsICJGQklPUEFOX0RJU1BMQVkiLCAweDQ2MDZ9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfRkNVUlNPUklORk8iLCAweDQ2MDd9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfVkNVUlNPUklORk8iLCAweDQ2MDh9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfVkNVUlNPUklORk8iLCAweDQ2MDl9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ1VSU09SU1RBVEUiLCAweDQ2MGF9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9QVVRfQ1VSU09SU1RBVEUiLCAweDQ2MGJ9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfQ09OMkZCTUFQIiwgMHg0NjBmfSwKK3sibGludXgvZmIuaCIsICJGQklPUFVUX0NPTjJGQk1BUCIsIDB4NDYxMH0sCit7ImxpbnV4L2ZiLmgiLCAiRkJJT0JMQU5LIiwgMHg0NjExfSwKK3sibGludXgvZmIuaCIsICJGQklPX0FMTE9DIiwgMHg0NjEzfSwKK3sibGludXgvZmIuaCIsICJGQklPX0ZSRUUiLCAweDQ2MTR9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfR0xZUEgiLCAweDQ2MTV9LAoreyJsaW51eC9mYi5oIiwgIkZCSU9HRVRfSFdDSU5GTyIsIDB4NDYxNn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUlGIiwgMHg0OTAxfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRESUYiLCAweDQ5MDJ9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVFNDRiIsIDB4NDkwM30sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR0NGIiwgMHg0OTA0fSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRBTk0iLCAweDQ5MDV9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEROTSIsIDB4NDkwNn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUR05NIiwgMHg0OTA3fSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NHRVRTRVQiLCAweDQ5MDh9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVFNFVCIsIDB4NDkwOX0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUVkVSIiwgMHg0OTBhfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRIVVAiLCAweDQ5MGJ9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVEdTVCIsIDB4NDkwY30sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUQlJKIiwgMHg0OTBkfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NTSUdQUkYiLCAweDQ5MGV9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVFBSRiIsIDB4NDkwZn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DU0VUUFJGIiwgMHg0OTEwfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NHRVRNQVAiLCAweDQ5MTF9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ1NFVE1BUCIsIDB4NDkxMn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQVNMIiwgMHg0OTEzfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRESUwiLCAweDQ5MTR9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ0dFVENQUyIsIDB4NDkxNX0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DR0VURFZSIiwgMHg0OTE2fSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRMQ1IiLCAweDQ5MTd9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVERXUlNFVCIsIDB4NDkxOH0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DTkVUQUxOIiwgMHg0OTIwfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NORVRETE4iLCAweDQ5MjF9LAoreyJsaW51eC9pc2RuLmgiLCAiSUlPQ05FVEdQTiIsIDB4NDkyMn0sCit7ImxpbnV4L2lzZG4uaCIsICJJSU9DREJHVkFSIiwgMHg0OTdmfSwKK3sibGludXgvaXNkbi5oIiwgIklJT0NEUlZDVEwiLCAweDQ5ODB9LAoreyJsaW51eC9rZC5oIiwgIktJT0NTT1VORCIsIDB4NGIyZn0sCit7ImxpbnV4L2tkLmgiLCAiS0RNS1RPTkUiLCAweDRiMzB9LAoreyJsaW51eC9rZC5oIiwgIktER0VUTEVEIiwgMHg0YjMxfSwKK3sibGludXgva2QuaCIsICJLRFNFVExFRCIsIDB4NGIzMn0sCit7ImxpbnV4L2tkLmgiLCAiS0RHS0JUWVBFIiwgMHg0YjMzfSwKK3sibGludXgva2QuaCIsICJLREFERElPIiwgMHg0YjM0fSwKK3sibGludXgva2QuaCIsICJLRERFTElPIiwgMHg0YjM1fSwKK3sibGludXgva2QuaCIsICJLREVOQUJJTyIsIDB4NGIzNn0sCit7ImxpbnV4L2tkLmgiLCAiS0RESVNBQklPIiwgMHg0YjM3fSwKK3sibGludXgva2QuaCIsICJLRFNFVE1PREUiLCAweDRiM2F9LAoreyJsaW51eC9rZC5oIiwgIktER0VUTU9ERSIsIDB4NGIzYn0sCit7ImxpbnV4L2tkLmgiLCAiS0RNQVBESVNQIiwgMHg0YjNjfSwKK3sibGludXgva2QuaCIsICJLRFVOTUFQRElTUCIsIDB4NGIzZH0sCit7ImxpbnV4L2tkLmgiLCAiR0lPX1NDUk5NQVAiLCAweDRiNDB9LAoreyJsaW51eC9rZC5oIiwgIlBJT19TQ1JOTUFQIiwgMHg0YjQxfSwKK3sibGludXgva2QuaCIsICJLREdLQk1PREUiLCAweDRiNDR9LAoreyJsaW51eC9rZC5oIiwgIktEU0tCTU9ERSIsIDB4NGI0NX0sCit7ImxpbnV4L2tkLmgiLCAiS0RHS0JFTlQiLCAweDRiNDZ9LAoreyJsaW51eC9rZC5oIiwgIktEU0tCRU5UIiwgMHg0YjQ3fSwKK3sibGludXgva2QuaCIsICJLREdLQlNFTlQiLCAweDRiNDh9LAoreyJsaW51eC9rZC5oIiwgIktEU0tCU0VOVCIsIDB4NGI0OX0sCit7ImxpbnV4L2tkLmgiLCAiS0RHS0JESUFDUiIsIDB4NGI0YX0sCit7ImxpbnV4L2tkLmgiLCAiS0RTS0JESUFDUiIsIDB4NGI0Yn0sCit7ImxpbnV4L2tkLmgiLCAiS0RHRVRLRVlDT0RFIiwgMHg0YjRjfSwKK3sibGludXgva2QuaCIsICJLRFNFVEtFWUNPREUiLCAweDRiNGR9LAoreyJsaW51eC9rZC5oIiwgIktEU0lHQUNDRVBUIiwgMHg0YjRlfSwKK3sibGludXgva2QuaCIsICJLREdIV0NMSyIsIDB4NGI1MH0sCit7ImxpbnV4L2tkLmgiLCAiS0RTSFdDTEsiLCAweDRiNTF9LAoreyJsaW51eC9rZC5oIiwgIktES0JEUkVQIiwgMHg0YjUyfSwKK3sibGludXgva2QuaCIsICJHSU9fRk9OVCIsIDB4NGI2MH0sCit7ImxpbnV4L2tkLmgiLCAiUElPX0ZPTlQiLCAweDRiNjF9LAoreyJsaW51eC9rZC5oIiwgIktER0tCTUVUQSIsIDB4NGI2Mn0sCit7ImxpbnV4L2tkLmgiLCAiS0RTS0JNRVRBIiwgMHg0YjYzfSwKK3sibGludXgva2QuaCIsICJLREdLQkxFRCIsIDB4NGI2NH0sCit7ImxpbnV4L2tkLmgiLCAiS0RTS0JMRUQiLCAweDRiNjV9LAoreyJsaW51eC9rZC5oIiwgIkdJT19VTklNQVAiLCAweDRiNjZ9LAoreyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVAiLCAweDRiNjd9LAoreyJsaW51eC9rZC5oIiwgIlBJT19VTklNQVBDTFIiLCAweDRiNjh9LAoreyJsaW51eC9rZC5oIiwgIkdJT19VTklTQ1JOTUFQIiwgMHg0YjY5fSwKK3sibGludXgva2QuaCIsICJQSU9fVU5JU0NSTk1BUCIsIDB4NGI2YX0sCit7ImxpbnV4L2tkLmgiLCAiR0lPX0ZPTlRYIiwgMHg0YjZifSwKK3sibGludXgva2QuaCIsICJQSU9fRk9OVFgiLCAweDRiNmN9LAoreyJsaW51eC9rZC5oIiwgIlBJT19GT05UUkVTRVQiLCAweDRiNmR9LAoreyJsaW51eC9rZC5oIiwgIkdJT19DTUFQIiwgMHg0YjcwfSwKK3sibGludXgva2QuaCIsICJQSU9fQ01BUCIsIDB4NGI3MX0sCit7ImxpbnV4L2tkLmgiLCAiS0RGT05UT1AiLCAweDRiNzJ9LAoreyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfRkQiLCAweDRjMDB9LAoreyJsaW51eC9sb29wLmgiLCAiTE9PUF9DTFJfRkQiLCAweDRjMDF9LAoreyJsaW51eC9sb29wLmgiLCAiTE9PUF9TRVRfU1RBVFVTIiwgMHg0YzAyfSwKK3sibGludXgvbG9vcC5oIiwgIkxPT1BfR0VUX1NUQVRVUyIsIDB4NGMwM30sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJORFpBUEVOVENOVCIsIDB4NTIwNH0sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJORENMRUFSUE9PTCIsIDB4NTIwNn0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QQVVTRSIsIDB4NTMwMX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNVTUUiLCAweDUzMDJ9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUExBWU1TRiIsIDB4NTMwM30sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01QTEFZVFJLSU5EIiwgMHg1MzA0fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURUT0NIRFIiLCAweDUzMDV9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRFRPQ0VOVFJZIiwgMHg1MzA2fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVNUT1AiLCAweDUzMDd9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU1RBUlQiLCAweDUzMDh9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NRUpFQ1QiLCAweDUzMDl9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NVk9MQ1RSTCIsIDB4NTMwYX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TVUJDSE5MIiwgMHg1MzBifSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURNT0RFMiIsIDB4NTMwY30sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRUFETU9ERTEiLCAweDUzMGR9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFVRElPIiwgMHg1MzBlfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTUVKRUNUX1NXIiwgMHg1MzBmfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTU1VTFRJU0VTU0lPTiIsIDB4NTMxMH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fR0VUX01DTiIsIDB4NTMxMX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01SRVNFVCIsIDB4NTMxMn0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01WT0xSRUFEIiwgMHg1MzEzfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVJFQURSQVciLCAweDUzMTR9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBRENPT0tFRCIsIDB4NTMxNX0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01TRUVLIiwgMHg1MzE2fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTVBMQVlCTEsiLCAweDUzMTd9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NUkVBREFMTCIsIDB4NTMxOH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01DTE9TRVRSQVkiLCAweDUzMTl9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NR0VUU1BJTkRPV04iLCAweDUzMWR9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NU0VUU1BJTkRPV04iLCAweDUzMWV9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFVF9PUFRJT05TIiwgMHg1MzIwfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9DTEVBUl9PUFRJT05TIiwgMHg1MzIxfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRUxFQ1RfU1BFRUQiLCAweDUzMjJ9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX1NFTEVDVF9ESVNDIiwgMHg1MzIzfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9NRURJQV9DSEFOR0VEIiwgMHg1MzI1fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9EUklWRV9TVEFUVVMiLCAweDUzMjZ9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RJU0NfU1RBVFVTIiwgMHg1MzI3fSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9DSEFOR0VSX05TTE9UUyIsIDB4NTMyOH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTE9DS0RPT1IiLCAweDUzMjl9LAoreyJsaW51eC9jZHJvbS5oIiwgIkNEUk9NX0RFQlVHIiwgMHg1MzMwfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9HRVRfQ0FQQUJJTElUWSIsIDB4NTMzMX0sCit7InNjc2kvc2NzaV9pb2N0bC5oIiwgIlNDU0lfSU9DVExfRE9PUkxPQ0siLCAweDUzODB9LAoreyJzY3NpL3Njc2lfaW9jdGwuaCIsICJTQ1NJX0lPQ1RMX0RPT1JVTkxPQ0siLCAweDUzODF9LAoreyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9JRExVTiIsIDB4NTM4Mn0sCit7InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0VOQUJMRSIsIDB4NTM4M30sCit7InNjc2kvc2NzaS5oIiwgIlNDU0lfSU9DVExfVEFHR0VEX0RJU0FCTEUiLCAweDUzODR9LAoreyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX1BST0JFX0hPU1QiLCAweDUzODV9LAoreyJzY3NpL3Njc2kuaCIsICJTQ1NJX0lPQ1RMX0dFVF9CVVNfTlVNQkVSIiwgMHg1Mzg2fSwKK3sibGludXgvY2Ryb20uaCIsICJEVkRfUkVBRF9TVFJVQ1QiLCAweDUzOTB9LAoreyJsaW51eC9jZHJvbS5oIiwgIkRWRF9XUklURV9TVFJVQ1QiLCAweDUzOTF9LAoreyJsaW51eC9jZHJvbS5oIiwgIkRWRF9BVVRIIiwgMHg1MzkyfSwKK3sibGludXgvY2Ryb20uaCIsICJDRFJPTV9TRU5EX1BBQ0tFVCIsIDB4NTM5M30sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTkVYVF9XUklUQUJMRSIsIDB4NTM5NH0sCit7ImxpbnV4L2Nkcm9tLmgiLCAiQ0RST01fTEFTVF9XUklUVEVOIiwgMHg1Mzk1fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRDR0VUUyIsIDB4NTQwMX0sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFMiLCAweDU0MDJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVENTRVRTVyIsIDB4NTQwM30sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVFNGIiwgMHg1NDA0fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRDR0VUQSIsIDB4NTQwNX0sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEEiLCAweDU0MDZ9LAoreyJhc20vaW9jdGxzLmgiLCAiVENTRVRBVyIsIDB4NTQwN30sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1NFVEFGIiwgMHg1NDA4fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRDU0JSSyIsIDB4NTQwOX0sCit7ImFzbS9pb2N0bHMuaCIsICJUQ1hPTkMiLCAweDU0MGF9LAoreyJhc20vaW9jdGxzLmgiLCAiVENGTFNIIiwgMHg1NDBifSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NFWENMIiwgMHg1NDBjfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NOWENMIiwgMHg1NDBkfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTQ1RUWSIsIDB4NTQwZX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR1BHUlAiLCAweDU0MGZ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ1NQR1JQIiwgMHg1NDEwfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NPVVRRIiwgMHg1NDExfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTVEkiLCAweDU0MTJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0dXSU5TWiIsIDB4NTQxM30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU1dJTlNaIiwgMHg1NDE0fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNR0VUIiwgMHg1NDE1fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklTIiwgMHg1NDE2fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNQklDIiwgMHg1NDE3fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NNU0VUIiwgMHg1NDE4fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NHU09GVENBUiIsIDB4NTQxOX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU1NPRlRDQVIiLCAweDU0MWF9LAoreyJhc20vaW9jdGxzLmgiLCAiRklPTlJFQUQiLCAweDU0MWJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0xJTlVYIiwgMHg1NDFjfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NDT05TIiwgMHg1NDFkfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NHU0VSSUFMIiwgMHg1NDFlfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTU0VSSUFMIiwgMHg1NDFmfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NQS1QiLCAweDU0MjB9LAoreyJhc20vaW9jdGxzLmgiLCAiRklPTkJJTyIsIDB4NTQyMX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DTk9UVFkiLCAweDU0MjJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFVEQiLCAweDU0MjN9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0dFVEQiLCAweDU0MjR9LAoreyJhc20vaW9jdGxzLmgiLCAiVENTQlJLUCIsIDB4NTQyNX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DVFRZR1NUUlVDVCIsIDB4NTQyNn0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0JSSyIsIDB4NTQyN30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DQ0JSSyIsIDB4NTQyOH0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR1NJRCIsIDB4NTQyOX0sCit7ImFzbS9pb2N0bHMuaCIsICJGSU9OQ0xFWCIsIDB4NTQ1MH0sCit7ImFzbS9pb2N0bHMuaCIsICJGSU9DTEVYIiwgMHg1NDUxfSwKK3siYXNtL2lvY3Rscy5oIiwgIkZJT0FTWU5DIiwgMHg1NDUyfSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJDT05GSUciLCAweDU0NTN9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ1NFUkdXSUxEIiwgMHg1NDU0fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJTV0lMRCIsIDB4NTQ1NX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR0xDS1RSTUlPUyIsIDB4NTQ1Nn0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0xDS1RSTUlPUyIsIDB4NTQ1N30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR1NUUlVDVCIsIDB4NTQ1OH0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSR0VUTFNSIiwgMHg1NDU5fSwKK3siYXNtL2lvY3Rscy5oIiwgIlRJT0NTRVJHRVRNVUxUSSIsIDB4NTQ1YX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU0VSU0VUTVVMVEkiLCAweDU0NWJ9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ01JV0FJVCIsIDB4NTQ1Y30sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DR0lDT1VOVCIsIDB4NTQ1ZH0sCit7ImFzbS9pb2N0bHMuaCIsICJGSU9RU0laRSIsIDB4NTQ1ZX0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0RJU0NBUkRVUkIiLCAweDU1MGJ9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRVNFVCIsIDB4NTUxNH0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfT1BFTlFSWSIsIDB4NTYwMH0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfR0VUTU9ERSIsIDB4NTYwMX0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfU0VUTU9ERSIsIDB4NTYwMn0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfR0VUU1RBVEUiLCAweDU2MDN9LAoreyJsaW51eC92dC5oIiwgIlZUX1NFTkRTSUciLCAweDU2MDR9LAoreyJsaW51eC92dC5oIiwgIlZUX1JFTERJU1AiLCAweDU2MDV9LAoreyJsaW51eC92dC5oIiwgIlZUX0FDVElWQVRFIiwgMHg1NjA2fSwKK3sibGludXgvdnQuaCIsICJWVF9XQUlUQUNUSVZFIiwgMHg1NjA3fSwKK3sibGludXgvdnQuaCIsICJWVF9ESVNBTExPQ0FURSIsIDB4NTYwOH0sCit7ImxpbnV4L3Z0LmgiLCAiVlRfUkVTSVpFIiwgMHg1NjA5fSwKK3sibGludXgvdnQuaCIsICJWVF9SRVNJWkVYIiwgMHg1NjBhfSwKK3sibGludXgvdnQuaCIsICJWVF9MT0NLU1dJVENIIiwgMHg1NjBifSwKK3sibGludXgvdnQuaCIsICJWVF9VTkxPQ0tTV0lUQ0giLCAweDU2MGN9LAoreyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX1NFVEZSQU1JTkciLCAweDYxMTV9LAoreyJsaW51eC9hdG1fbmljc3Rhci5oIiwgIk5TX0FESkJVRkxFViIsIDB4NjE2M30sCit7ImxpbnV4L2F0bV90Y3AuaCIsICJTSU9DU0lGQVRNVENQIiwgMHg2MTgwfSwKK3sibGludXgvYXRtX3RjcC5oIiwgIkFUTVRDUF9DUkVBVEUiLCAweDYxOGV9LAoreyJsaW51eC9hdG1fdGNwLmgiLCAiQVRNVENQX1JFTU9WRSIsIDB4NjE4Zn0sCit7ImxpbnV4L2F0bWxlYy5oIiwgIkFUTUxFQ19DVFJMIiwgMHg2MWQwfSwKK3sibGludXgvYXRtbGVjLmgiLCAiQVRNTEVDX0RBVEEiLCAweDYxZDF9LAoreyJsaW51eC9hdG1sZWMuaCIsICJBVE1MRUNfTUNBU1QiLCAweDYxZDJ9LAoreyJsaW51eC9hdG1tcGMuaCIsICJBVE1NUENfQ1RSTCIsIDB4NjFkOH0sCit7ImxpbnV4L2F0bW1wYy5oIiwgIkFUTU1QQ19EQVRBIiwgMHg2MWQ5fSwKK3sibGludXgvYXRtY2xpcC5oIiwgIlNJT0NNS0NMSVAiLCAweDYxZTB9LAoreyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBEX0NUUkwiLCAweDYxZTF9LAoreyJsaW51eC9hdG1hcnAuaCIsICJBVE1BUlBfTUtJUCIsIDB4NjFlMn0sCit7ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9TRVRFTlRSWSIsIDB4NjFlM30sCit7ImxpbnV4L2F0bWFycC5oIiwgIkFUTUFSUF9FTkNBUCIsIDB4NjFlNX0sCit7ImxpbnV4L2F0bXN2Yy5oIiwgIkFUTVNJR0RfQ1RSTCIsIDB4NjFmMH0sCit7ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVFBPUlRTVEFUUyIsIDB4NjMxZX0sCit7ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0NMUlBPUlRTVEFUUyIsIDB4NjMxZn0sCit7ImxpbnV4L2NvbXN0YXRzLmgiLCAiQ09NX0dFVEJSRFNUQVRTIiwgMHg2MzIwfSwKK3sibGludXgvY29tc3RhdHMuaCIsICJDT01fUkVBRFBPUlQiLCAweDYzMjh9LAoreyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEQk9BUkQiLCAweDYzMjl9LAoreyJsaW51eC9jb21zdGF0cy5oIiwgIkNPTV9SRUFEUEFORUwiLCAweDYzMmF9LAoreyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9EVU1QIiwgMHg2NGMwfSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NUWElETEUiLCAweDZkMDJ9LAoreyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1RYSURMRSIsIDB4NmQwM30sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEVOQUJMRSIsIDB4NmQwNH0sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NSWEVOQUJMRSIsIDB4NmQwNX0sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NUWEFCT1JUIiwgMHg2ZDA2fSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0dTVEFUUyIsIDB4NmQwN30sCit7ImxpbnV4L3N5bmNsaW5rLmgiLCAiTUdTTF9JT0NMT09QVFhET05FIiwgMHg2ZDA5fSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ0NMUk1PRENPVU5UIiwgMHg2ZDBmfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsIDB4NmUwM30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19BSUVfT04iLCAweDcwMDF9LAoreyJsaW51eC9ydGMuaCIsICJSVENfQUlFX09GRiIsIDB4NzAwMn0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19VSUVfT04iLCAweDcwMDN9LAoreyJsaW51eC9ydGMuaCIsICJSVENfVUlFX09GRiIsIDB4NzAwNH0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19QSUVfT04iLCAweDcwMDV9LAoreyJsaW51eC9ydGMuaCIsICJSVENfUElFX09GRiIsIDB4NzAwNn0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19XSUVfT04iLCAweDcwMGZ9LAoreyJsaW51eC9ydGMuaCIsICJSVENfV0lFX09GRiIsIDB4NzAxMH0sCit7ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fSU5JVCIsIDB4NzA0MH0sCit7ImxpbnV4L252cmFtLmgiLCAiTlZSQU1fU0VUQ0tTIiwgMHg3MDQxfSwKK3sibGludXgvcHBkZXYuaCIsICJQUENMQUlNIiwgMHg3MDhifSwKK3sibGludXgvcHBkZXYuaCIsICJQUFJFTEVBU0UiLCAweDcwOGN9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQWUlFTEQiLCAweDcwOGR9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQRVhDTCIsIDB4NzA4Zn0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFUyIsIDB4NzE4MH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkciLCAweDcxODN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9IT09LU1RBVEUiLCAweDcxODR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX1NUQVJUIiwgMHg3MTg3fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUklOR19TVE9QIiwgMHg3MTg4fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUQVJUIiwgMHg3MThhfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX1NUT1AiLCAweDcxOGJ9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfTEVWRUwiLCAweDcxOGZ9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1NUQVJUIiwgMHg3MTkxfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9TVE9QIiwgMHg3MTkyfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9MRVZFTCIsIDB4NzE5NX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLCAweDcxOWV9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9HRVRfVE9ORV9PRkZfVElNRSIsIDB4NzE5Zn0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0dFVF9UT05FX1NUQVRFIiwgMHg3MWEwfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfQlVTWSIsIDB4NzFhMX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JJTkdCQUNLIiwgMHg3MWEyfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRElBTFRPTkUiLCAweDcxYTN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DUFRfU1RPUCIsIDB4NzFhNH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fR0VUX1NUQVRFIiwgMHg3MWE1fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUFNUTl9MSU5FVEVTVCIsIDB4NzFhOH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFNQX1JFU0VUIiwgMHg3MWMwfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfSURMRSIsIDB4NzFjNX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfVEVTVFJBTSIsIDB4NzFjNn0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQUVDX1NUT1AiLCAweDcxY2N9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0FFQ19HRVRfTEVWRUwiLCAweDcxY2R9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BTVE5fTElORVRFU1QiLCAweDcxZDN9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsIDB4NzFlN30sCit7ImxpbnV4L2Nkay5oIiwgIlNUTF9CSU5UUiIsIDB4NzMxNH0sCit7ImxpbnV4L2Nkay5oIiwgIlNUTF9CU1RBUlQiLCAweDczMTV9LAoreyJsaW51eC9jZGsuaCIsICJTVExfQlNUT1AiLCAweDczMTZ9LAoreyJsaW51eC9jZGsuaCIsICJTVExfQlJFU0VUIiwgMHg3MzE3fSwKK3sibGludXgvY2RrLmgiLCAiU1RMX0dFVFBGTEFHIiwgMHg3MzUwfSwKK3sibGludXgvY2RrLmgiLCAiU1RMX1NFVFBGTEFHIiwgMHg3MzUxfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DRElTQ09OTiIsIDB4NzQzOX0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1hGRVJVTklUIiwgMHg3NDRlfSwKK3sibGludXgvamZmcy5oIiwgIkpGRlNfUFJJTlRfSEFTSCIsIDB4NzQ1YX0sCit7ImxpbnV4L2pmZnMuaCIsICJKRkZTX1BSSU5UX1RSRUUiLCAweDc0NWJ9LAoreyJsaW51eC9qZmZzLmgiLCAiSkZGU19HRVRfU1RBVFVTIiwgMHg3NDVjfSwKK3siYXNtL3NvY2tpb3MuaCIsICJGSU9TRVRPV04iLCAweDg5MDF9LAoreyJhc20vc29ja2lvcy5oIiwgIlNJT0NTUEdSUCIsIDB4ODkwMn0sCit7ImFzbS9zb2NraW9zLmgiLCAiRklPR0VUT1dOIiwgMHg4OTAzfSwKK3siYXNtL3NvY2tpb3MuaCIsICJTSU9DR1BHUlAiLCAweDg5MDR9LAoreyJhc20vc29ja2lvcy5oIiwgIlNJT0NBVE1BUksiLCAweDg5MDV9LAoreyJhc20vc29ja2lvcy5oIiwgIlNJT0NHU1RBTVAiLCAweDg5MDZ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0FERFJUIiwgMHg4OTBifSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NERUxSVCIsIDB4ODkwY30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUlRNU0ciLCAweDg5MGR9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk5BTUUiLCAweDg5MTB9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRkxJTksiLCAweDg5MTF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPTkYiLCAweDg5MTJ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkZMQUdTIiwgMHg4OTEzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZGTEFHUyIsIDB4ODkxNH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQUREUiIsIDB4ODkxNX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQUREUiIsIDB4ODkxNn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGRFNUQUREUiIsIDB4ODkxN30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRFNUQUREUiIsIDB4ODkxOH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGQlJEQUREUiIsIDB4ODkxOX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlJEQUREUiIsIDB4ODkxYX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTkVUTUFTSyIsIDB4ODkxYn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkVUTUFTSyIsIDB4ODkxY30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGTUVUUklDIiwgMHg4OTFkfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZNRVRSSUMiLCAweDg5MWV9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRk1FTSIsIDB4ODkxZn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTUVNIiwgMHg4OTIwfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNVFUiLCAweDg5MjF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1UVSIsIDB4ODkyMn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGTkFNRSIsIDB4ODkyM30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdBRERSIiwgMHg4OTI0fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZFTkNBUCIsIDB4ODkyNX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGRU5DQVAiLCAweDg5MjZ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkhXQUREUiIsIDB4ODkyN30sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR0lGU0xBVkUiLCAweDg5Mjl9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRlNMQVZFIiwgMHg4OTMwfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NBRERNVUxUSSIsIDB4ODkzMX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMTVVMVEkiLCAweDg5MzJ9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRklOREVYIiwgMHg4OTMzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTSUZQRkxBR1MiLCAweDg5MzR9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlBGTEFHUyIsIDB4ODkzNX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DRElGQUREUiIsIDB4ODkzNn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGSFdCUk9BRENBU1QiLCAweDg5Mzd9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRkNPVU5UIiwgMHg4OTM4fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZCUiIsIDB4ODk0MH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGQlIiLCAweDg5NDF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ0dJRlRYUUxFTiIsIDB4ODk0Mn0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DU0lGVFhRTEVOIiwgMHg4OTQzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NEQVJQIiwgMHg4OTUzfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHQVJQIiwgMHg4OTU0fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NTQVJQIiwgMHg4OTU1fSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NEUkFSUCIsIDB4ODk2MH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DR1JBUlAiLCAweDg5NjF9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NSQVJQIiwgMHg4OTYyfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NHSUZNQVAiLCAweDg5NzB9LAoreyJsaW51eC9zb2NraW9zLmgiLCAiU0lPQ1NJRk1BUCIsIDB4ODk3MX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DQURERExDSSIsIDB4ODk4MH0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DREVMRExDSSIsIDB4ODk4MX0sCit7ImxpbnV4L3NvY2tpb3MuaCIsICJTSU9DUFJPVE9QUklWQVRFIiwgMHg4OWUwfSwKK3sibGludXgvc29ja2lvcy5oIiwgIlNJT0NERVZQUklWQVRFIiwgMHg4OWYwfSwKK3sibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfUkVBRFkiLCAweDkzNjB9LAoreyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19GQUlMIiwgMHg5MzYxfSwKK3sibGludXgvYXV0b19mcy5oIiwgIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwgMHg5MzYyfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TT0NLIiwgMHhhYjAwfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9CTEtTSVpFIiwgMHhhYjAxfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFIiwgMHhhYjAyfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX0RPX0lUIiwgMHhhYjAzfSwKK3sibGludXgvbmJkLmgiLCAiTkJEX0NMRUFSX1NPQ0siLCAweGFiMDR9LAoreyJsaW51eC9uYmQuaCIsICJOQkRfQ0xFQVJfUVVFIiwgMHhhYjA1fSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1BSSU5UX0RFQlVHIiwgMHhhYjA2fSwKK3sibGludXgvbmJkLmgiLCAiTkJEX1NFVF9TSVpFX0JMT0NLUyIsIDB4YWIwN30sCit7ImxpbnV4L25iZC5oIiwgIk5CRF9ESVNDT05ORUNUIiwgMHhhYjA4fSwKK3sibGludXgvcmF3LmgiLCAiUkFXX1NFVEJJTkQiLCAweGFjMDB9LAoreyJsaW51eC9yYXcuaCIsICJSQVdfR0VUQklORCIsIDB4YWMwMX0sCit7ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NERldEIiwgMHhiMTAxfSwKK3sibGludXgvbHZtLmgiLCAiTFZfQUNUSVZBVEUiLCAweGZlMjJ9LAoreyJsaW51eC9sdm0uaCIsICJMVl9ERUFDVElWQVRFIiwgMHhmZTIzfSwKK3sibGludXgvbHZtLmgiLCAiTFZNX1JFU0VUIiwgMHhmZTk5fSwKK3sibGludXgvbHZtLmgiLCAiTFZNX0xPQ0tfTFZNIiwgMHhmZjAwfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVE1PTiIsIDB4NDM1OTAxfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRIUkVTSCIsIDB4NDM1OTAyfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVFRIUkVTSCIsIDB4NDM1OTAzfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVERFRlRIUkVTSCIsIDB4NDM1OTA0fSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRIUkVTSCIsIDB4NDM1OTA1fSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFRJTUVPVVQiLCAweDQzNTkwNn0sCit7ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRUSU1FT1VUIiwgMHg0MzU5MDd9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZR0VUREVGVElNRU9VVCIsIDB4NDM1OTA4fSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWVNFVERFRlRJTUVPVVQiLCAweDQzNTkwOX0sCit7ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1lTRVRSRkxPVyIsIDB4NDM1OTBhfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJGTE9XIiwgMHg0MzU5MGJ9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUUlRTRFRSX0lOViIsIDB4NDM1OTBjfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFJUU0RUUl9JTlYiLCAweDQzNTkwZH0sCit7ImxpbnV4L2N5Y2xhZGVzLmgiLCAiQ1laU0VUUE9MTENZQ0xFIiwgMHg0MzU5MGV9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZWkdFVFBPTExDWUNMRSIsIDB4NDM1OTBmfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENEMTQwMFZFUiIsIDB4NDM1OTEwfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVENBUkRJTkZPIiwgMHg0MzU5MTF9LAoreyJsaW51eC9jeWNsYWRlcy5oIiwgIkNZU0VUV0FJVCIsIDB4NDM1OTEyfSwKK3sibGludXgvY3ljbGFkZXMuaCIsICJDWUdFVFdBSVQiLCAweDQzNTkxM30sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfVk9MVU1FIiwgMHgyMDA0NGQwMH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfQkFTUyIsIDB4MjAwNDRkMDF9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1RSRUJMRSIsIDB4MjAwNDRkMDJ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1NZTlRIIiwgMHgyMDA0NGQwM30sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfUENNIiwgMHgyMDA0NGQwNH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1BFQUtFUiIsIDB4MjAwNDRkMDV9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUiLCAweDIwMDQ0ZDA2fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9NSUMiLCAweDIwMDQ0ZDA3fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9DRCIsIDB4MjAwNDRkMDh9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0lNSVgiLCAweDIwMDQ0ZDA5fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9BTFRQQ00iLCAweDIwMDQ0ZDBhfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNMRVYiLCAweDIwMDQ0ZDBifSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9JR0FJTiIsIDB4MjAwNDRkMGN9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX09HQUlOIiwgMHgyMDA0NGQwZH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTElORTEiLCAweDIwMDQ0ZDBlfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MSU5FMiIsIDB4MjAwNDRkMGZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0xJTkUzIiwgMHgyMDA0NGQxMH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfTVVURSIsIDB4MjAwNDRkMWZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0VOSEFOQ0UiLCAweDIwMDQ0ZDFmfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9MT1VEIiwgMHgyMDA0NGQxZn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfU1RFUkVPREVWUyIsIDB4MjAwNDRkZmJ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX0NBUFMiLCAweDIwMDQ0ZGZjfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfUkVBRF9SRUNNQVNLIiwgMHgyMDA0NGRmZH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1JFQURfREVWTUFTSyIsIDB4MjAwNDRkZmV9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9SRUFEX1JFQ1NSQyIsIDB4MjAwNDRkZmZ9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQV0NPTlRST0wiLCAweDQwMDE3MDg0fSwKK3sibGludXgvcHBkZXYuaCIsICJQUFdEQVRBIiwgMHg0MDAxNzA4Nn0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBXQ1RMT05JUlEiLCAweDQwMDE3MDkyfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfTUFYUklOR1MiLCAweDQwMDE3MTg1fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9UT05FIiwgMHg0MDAxNzE5Yn0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBGQ09OVFJPTCIsIDB4NDAwMjcwOGV9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SSU5HX0NBREVOQ0UiLCAweDQwMDI3MTg2fSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19ERUFMTE9DQVRFIiwgMHg0MDA0NDEwN30sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFERFRPRU5UQ05UIiwgMHg0MDA0NTIwMX0sCit7ImFzbS9pb2N0bHMuaCIsICJUSU9DU1BUTENLIiwgMHg0MDA0NTQzMX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRTQyIsIDB4NDAwNDYxZjF9LAoreyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsIDB4NDAwNDY0MDJ9LAoreyJsaW51eC9kZXZmc19mcy5oIiwgIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwgMHg0MDA0NjQwM30sCit7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9OT1JNIiwgMHg0MDA0NjQwM30sCit7ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwgMHg0MDA0NjQwNH0sCit7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX1NFVF9JTlBVVCIsIDB4NDAwNDY0MDR9LAoreyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9TRVRfT1VUUFVUIiwgMHg0MDA0NjQwNX0sCit7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsICJERUNPREVSX0VOQUJMRV9PVVRQVVQiLCAweDQwMDQ2NDA2fSwKK3sibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX05PUk0iLCAweDQwMDQ2NTAyfSwKK3sibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfU0VUX0lOUFVUIiwgMHg0MDA0NjUwM30sCit7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX1NFVF9PVVRQVVQiLCAweDQwMDQ2NTA0fSwKK3sibGludXgvdmlkZW9fZW5jb2Rlci5oIiwgIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsIDB4NDAwNDY1MDV9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVE1PVU5UVUlEIiwgMHg0MDA0NmUwMn0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwgMHg0MDA0NmUwNn0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUREVOVFJZVFRMIiwgMHg0MDA0NmUwY30sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBTRVRNT0RFIiwgMHg0MDA0NzA4MH0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBEQVRBRElSIiwgMHg0MDA0NzA5MH0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBORUdPVCIsIDB4NDAwNDcwOTF9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQU0VUUEhBU0UiLCAweDQwMDQ3MDk0fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUkVDX0NPREVDIiwgMHg0MDA0NzE4OX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1JFQ19ERVBUSCIsIDB4NDAwNDcxOGN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9GUkFNRSIsIDB4NDAwNDcxOGR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9SRUNfVk9MVU1FIiwgMHg0MDA0NzE4ZX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BMQVlfQ09ERUMiLCAweDQwMDQ3MTkwfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUExBWV9ERVBUSCIsIDB4NDAwNDcxOTN9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9QTEFZX1ZPTFVNRSIsIDB4NDAwNDcxOTR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9EVE1GX09PQiIsIDB4NDAwNDcxOTl9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwgMHg0MDA0NzE5Y30sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwgMHg0MDA0NzE5ZH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1BTVE5fU0VUX1NUQVRFIiwgMHg0MDA0NzFhNH0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX1dJTktfRFVSQVRJT04iLCAweDQwMDQ3MWE2fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9HRVRfRklMVEVSX0hJU1QiLCAweDQwMDQ3MWM4fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9BRUNfU1RBUlQiLCAweDQwMDQ3MWNifSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVRfTEVEIiwgMHg0MDA0NzFjZX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfTUlYRVIiLCAweDQwMDQ3MWNmfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EQUFfQ09FRkZfU0VUIiwgMHg0MDA0NzFkMH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUE9SVCIsIDB4NDAwNDcxZDF9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RBQV9BR0FJTiIsIDB4NDAwNDcxZDJ9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1BPVFNfUFNUTiIsIDB4NDAwNDcxZDV9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0haIiwgMHg0MDA0NzFlMH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfUkFURSIsIDB4NDAwNDcxZTF9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwgMHg0MDA0NzFmZH0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfSU5URVJDT01fU1RPUCIsIDB4NDAwNDcxZmV9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NBVFRDSEFOIiwgMHg0MDA0NzQzOH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0NPTk5FQ1QiLCAweDQwMDQ3NDNhfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01SUlUiLCAweDQwMDQ3NDNifSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DREVUQUNIIiwgMHg0MDA0NzQzY30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0FUVEFDSCIsIDB4NDAwNDc0M2R9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTREVCVUciLCAweDQwMDQ3NDQwfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU01BWENJRCIsIDB4NDAwNDc0NTF9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTTVJVIiwgMHg0MDA0NzQ1Mn0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NSQVNZTkNNQVAiLCAweDQwMDQ3NDU0fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0FTWU5DTUFQIiwgMHg0MDA0NzQ1N30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ1NGTEFHUyIsIDB4NDAwNDc0NTl9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0JVTkRMRSIsIDB4NDAwNDc0ODF9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ1NNUEZMQUdTIiwgMHg0MDA0NzQ4M30sCit7ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVRVIiwgMHg0MDA0NzQ4NH0sCit7ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU01QTVJVIiwgMHg0MDA0NzQ4NX0sCit7ImxpbnV4L2lzZG5fcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTT1IiLCAweDQwMDQ3NDg3fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NDQVBUVVJFIiwgMHg0MDA0NzYwOH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1lOQyIsIDB4NDAwNDc2MTJ9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NXUklURU1PREUiLCAweDQwMDQ3NjE5fSwKK3sibGludXgvZG4uaCIsICJTSU9DU05FVEFERFIiLCAweDQwMDQ4OWUwfSwKK3sibGludXgvZG4uaCIsICJPU0lPQ1NORVRBRERSIiwgMHg0MDA0ODllMH0sCit7ImxpbnV4L2F1dG9fZnM0LmgiLCAiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLCAweDQwMDQ5MzY2fSwKK3sibGludXgvbHZtLmgiLCAiVkdfQ1JFQVRFIiwgMHg0MDA0ZmUwMH0sCit7ImxpbnV4L2x2bS5oIiwgIlZHX1JFTU9WRSIsIDB4NDAwNGZlMDF9LAoreyJsaW51eC9sdm0uaCIsICJWR19FWFRFTkQiLCAweDQwMDRmZTAzfSwKK3sibGludXgvbHZtLmgiLCAiVkdfUkVEVUNFIiwgMHg0MDA0ZmUwNH0sCit7ImxpbnV4L2x2bS5oIiwgIlZHX1NFVF9FWFRFTkRBQkxFIiwgMHg0MDA0ZmUwOH0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX0NSRUFURSIsIDB4NDAwNGZlMjB9LAoreyJsaW51eC9sdm0uaCIsICJMVl9SRU1PVkUiLCAweDQwMDRmZTIxfSwKK3sibGludXgvbHZtLmgiLCAiTFZfRVhURU5EIiwgMHg0MDA0ZmUyNH0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1JFRFVDRSIsIDB4NDAwNGZlMjV9LAoreyJsaW51eC9sdm0uaCIsICJMVl9TRVRfQUNDRVNTIiwgMHg0MDA0ZmUyOH0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9BTExPQ0FUSU9OIiwgMHg0MDA0ZmUyOX0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1NFVF9TVEFUVVMiLCAweDQwMDRmZTJhfSwKK3sibGludXgvbHZtLmgiLCAiTEVfUkVNQVAiLCAweDQwMDRmZTJifSwKK3sibGludXgvbHZtLmgiLCAiUFZfRkxVU0giLCAweDQwMDRmZTQyfSwKK3sibGludXgvbHZtLmgiLCAiUEVfTE9DS19VTkxPQ0siLCAweDQwMDRmZTUwfSwKK3sibGludXgvZWxldmF0b3IuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKK3sibGludXgvZnMuaCIsICJCTEtFTFZTRVQiLCAweDQwMDgxMjZifSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19TRVRVUCIsIDB4NDAwODQxMDN9LAoreyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1JFU0VSVkUiLCAweDQwMDg0MTA0fSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19QUk9URUNUIiwgMHg0MDA4NDEwNX0sCit7ImxpbnV4L2FncGdhcnQuaCIsICJBR1BJT0NfQklORCIsIDB4NDAwODQxMDh9LAoreyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX1VOQklORCIsIDB4NDAwODQxMDl9LAoreyJsaW51eC9wbXUuaCIsICJQTVVfSU9DX1NFVF9CQUNLTElHSFQiLCAweDQwMDg0MjAyfSwKK3sibGludXgvaW5wdXQuaCIsICJFVklPQ1NSRVAiLCAweDQwMDg0NTAzfSwKK3sibGludXgvaW5wdXQuaCIsICJFVklPQ1NLRVlDT0RFIiwgMHg0MDA4NDUwNH0sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJOREFEREVOVFJPUFkiLCAweDQwMDg1MjAzfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVBUFVSQiIsIDB4NDAwODU1MGN9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwgMHg0MDA4NTUwZH0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTk5FQ1RJTkZPIiwgMHg0MDA4NTUxMX0sCit7ImxpbnV4L2V4dDJfZnMuaCIsICJFWFQyX0lPQ19TRVRGTEFHUyIsIDB4NDAwODY2MDJ9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NUT1AiLCAweDQwMDg2ZDAxfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLCAweDQwMDg2ZTAyfSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDQwMDg2ZWY4fSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLCAweDQwMDg2ZWZhfSwKK3sibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfU0VUIiwgMHg0MDA4NzAwY30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19FUE9DSF9TRVQiLCAweDQwMDg3MDBlfSwKK3sibGludXgvc2VyaW8uaCIsICJTUElPQ1NUWVBFIiwgMHg0MDA4NzEwMX0sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0NBUEFCSUxJVElFU19DSEVDSyIsIDB4NDAwODcxODJ9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX1NFVF9GSUxURVIiLCAweDQwMDg3MWM3fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9JTklUX1RPTkUiLCAweDQwMDg3MWM5fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9UT05FX0NBREVOQ0UiLCAweDQwMDg3MWNhfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU05QTU9ERSIsIDB4NDAwODc0NGJ9LAoreyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfU0VUVkVSU0lPTiIsIDB4NDAwODc2MDJ9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGUkVRIiwgMHg0MDA4NzYwZn0sCit7ImxpbnV4L2lmX3BwcG94LmgiLCAiUFBQT0VJT0NTRldEIiwgMHg0MDA4YjEwMH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRGTVRUUksiLCAweDQwMGMwMjQ4fSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfUkVHSVNURVIiLCAweDQwMGM0MzAxfSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT0VWVFJFRyIsIDB4NDAwYzY5MGF9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFJPT1QiLCAweDQwMGM2ZTA4fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUExBWU1PREUiLCAweDQwMGM3NjE4fSwKK3sibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLCAweDQwMGU2NDA3fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTUElDVCIsIDB4NDAwZTc2MDd9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RGTVQiLCAweDQwMTA0NDAxfSwKK3sibGludXgvYXRtX2lkdDc3MTA1LmgiLCAiSURUNzcxMDVfR0VUU1RBVCIsIDB4NDAxMDYxMzJ9LAoreyJsaW51eC9hdG1faWR0NzcxMDUuaCIsICJJRFQ3NzEwNV9HRVRTVEFUWiIsIDB4NDAxMDYxMzN9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVCIsIDB4NDAxMDYxNTB9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUU1RBVFoiLCAweDQwMTA2MTUxfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExPT1AiLCAweDQwMTA2MTUyfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVExPT1AiLCAweDQwMTA2MTUzfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX1FVRVJZTE9PUCIsIDB4NDAxMDYxNTR9LAoreyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX01FTURVTVAiLCAweDQwMTA2MTYwfSwKK3sibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0wiLCAweDQwMTA2MTYxfSwKK3sibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19TRVRCVUZMRVYiLCAweDQwMTA2MTYyfSwKK3sibGludXgvYXRtX3phdG0uaCIsICJaQVRNX0dFVFBPT0xaIiwgMHg0MDEwNjE2Mn0sCit7ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9TRVRQT09MIiwgMHg0MDEwNjE2M30sCit7ImxpbnV4L2F0bV96YXRtLmgiLCAiWkFUTV9HRVRUSElTVCIsIDB4NDAxMDYxNjR9LAoreyJsaW51eC9hdG1fZW5pLmgiLCAiRU5JX1NFVE1VTFQiLCAweDQwMTA2MTY3fSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX0dFVExJTktSQVRFIiwgMHg0MDEwNjE4MX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVROQU1FUyIsIDB4NDAxMDYxODN9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VUVFlQRSIsIDB4NDAxMDYxODR9LAoreyJsaW51eC9hdG1kZXYuaCIsICJBVE1fR0VURVNJIiwgMHg0MDEwNjE4NX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRBRERSIiwgMHg0MDEwNjE4Nn0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9SU1RBRERSIiwgMHg0MDEwNjE4N30sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9BRERBRERSIiwgMHg0MDEwNjE4OH0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9ERUxBRERSIiwgMHg0MDEwNjE4OX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9HRVRDSVJBTkdFIiwgMHg0MDEwNjE4YX0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRDSVJBTkdFIiwgMHg0MDEwNjE4Yn0sCit7ImxpbnV4L2F0bWRldi5oIiwgIkFUTV9TRVRFU0kiLCAweDQwMTA2MThjfSwKK3sibGludXgvYXRtZGV2LmgiLCAiQVRNX1NFVEVTSUYiLCAweDQwMTA2MThkfSwKK3sibGludXgvcHBkZXYuaCIsICJQUFNFVFRJTUUiLCAweDQwMTA3MDk2fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DU0NPTVBSRVNTIiwgMHg0MDEwNzQ0ZH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DTUNBUFRVUkUiLCAweDQwMTA3NjEzfSwKK3siYXNtL3RhcGUzOTAuaCIsICJUQVBFMzkwX0RJU1BMQVkiLCAweDQwMTE2NDAxfSwKK3sibGludXgvZmQuaCIsICJGRFNFVE1BWEVSUlMiLCAweDQwMTQwMjRjfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0FQVFVSRSIsIDB4NDAxNDc2MTd9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NGQlVGIiwgMHg0MDE4NzYwY30sCit7ImxpbnV4L2ZkLmgiLCAiRkRTRVRQUk0iLCAweDQwMjAwMjQyfSwKK3sibGludXgvZmQuaCIsICJGRERFRlBSTSIsIDB4NDAyMDAyNDN9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RTQVRUUiIsIDB4NDAyMDQ0MDJ9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NTWEFTWU5DTUFQIiwgMHg0MDIwNzQ0Zn0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU01JQ1JPQ09ERSIsIDB4NDAyMDc2MWJ9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NWQklGTVQiLCAweDQwMjA3NjFkfSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ1NDT1JSIiwgMHg0MDI0NmEyMX0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fU0VUIiwgMHg0MDI0NzAwN30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19TRVRfVElNRSIsIDB4NDAyNDcwMGF9LAoreyJsaW51eC9ydGMuaCIsICJSVENfV0tBTE1fU0VUIiwgMHg0MDI4NzAwZn0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DU1dJTiIsIDB4NDAyODc2MGF9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NBVURJTyIsIDB4NDAyODc2MTF9LAoreyJsaW51eC9zbWJfZnMuaCIsICJTTUJfSU9DX05FV0NPTk4iLCAweDQwMmM3NTAyfSwKK3sibGludXgvc3luY2xpbmsuaCIsICJNR1NMX0lPQ1NQQVJBTVMiLCAweDQwMzA2ZDAwfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NTQ0hBTiIsIDB4NDAzMDc2MDN9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ1NUVU5FUiIsIDB4NDA0MDc2MDV9LAoreyJsaW51eC9mZC5oIiwgIkZEU0VURFJWUFJNIiwgMHg0MDgwMDI5MH0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0dFVERSSVZFUiIsIDB4NDEwNDU1MDh9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9WT0xVTUUiLCAweDYwMDQ0ZDAwfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQkFTUyIsIDB4NjAwNDRkMDF9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9UUkVCTEUiLCAweDYwMDQ0ZDAyfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfU1lOVEgiLCAweDYwMDQ0ZDAzfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUENNIiwgMHg2MDA0NGQwNH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1NQRUFLRVIiLCAweDYwMDQ0ZDA1fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfTElORSIsIDB4NjAwNDRkMDZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9NSUMiLCAweDYwMDQ0ZDA3fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfQ0QiLCAweDYwMDQ0ZDA4fSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfSU1JWCIsIDB4NjAwNDRkMDl9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9BTFRQQ00iLCAweDYwMDQ0ZDBhfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfUkVDTEVWIiwgMHg2MDA0NGQwYn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0lHQUlOIiwgMHg2MDA0NGQwY30sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX09HQUlOIiwgMHg2MDA0NGQwZH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUxIiwgMHg2MDA0NGQwZX0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUyIiwgMHg2MDA0NGQwZn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX0xJTkUzIiwgMHg2MDA0NGQxMH0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX01VVEUiLCAweDYwMDQ0ZDFmfSwKK3sibGludXgvc291bmRjYXJkLmgiLCAiU09VTkRfTUlYRVJfV1JJVEVfRU5IQU5DRSIsIDB4NjAwNDRkMWZ9LAoreyJsaW51eC9zb3VuZGNhcmQuaCIsICJTT1VORF9NSVhFUl9XUklURV9MT1VEIiwgMHg2MDA0NGQxZn0sCit7ImxpbnV4L3NvdW5kY2FyZC5oIiwgIlNPVU5EX01JWEVSX1dSSVRFX1JFQ1NSQyIsIDB4NjAwNDRkZmZ9LAoreyJsaW51eC9qb3lzdGljay5oIiwgIkpTSU9DR0FYRVMiLCAweDgwMDE2YTExfSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dCVVRUT05TIiwgMHg4MDAxNmExMn0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBSU1RBVFVTIiwgMHg4MDAxNzA4MX0sCit7ImxpbnV4L3BwZGV2LmgiLCAiUFBSQ09OVFJPTCIsIDB4ODAwMTcwODN9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQUkRBVEEiLCAweDgwMDE3MDg1fSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfR0VUX0VSUkNPREUiLCAweDgwMDI0MzIxfSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfSU5TVEFMTEVEIiwgMHg4MDAyNDMyMn0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9GTEFHUyIsIDB4ODAwNDQzMjN9LAoreyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9TRVRfRkxBR1MiLCAweDgwMDQ0MzI0fSwKK3sibGludXgvY2FwaS5oIiwgIkNBUElfQ0xSX0ZMQUdTIiwgMHg4MDA0NDMyNX0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfT1BFTkNPVU5UIiwgMHg4MDA0NDMyNn0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX05DQ0lfR0VUVU5JVCIsIDB4ODAwNDQzMjd9LAoreyJhc20vZGFzZC5oIiwgIkRBU0RBUElWRVIiLCAweDgwMDQ0NDAwfSwKK3sibGludXgvaW5wdXQuaCIsICJFVklPQ0dWRVJTSU9OIiwgMHg4MDA0NDUwMX0sCit7ImxpbnV4L3JhbmRvbS5oIiwgIlJOREdFVEVOVENOVCIsIDB4ODAwNDUyMDB9LAoreyJhc20vaW9jdGxzLmgiLCAiVElPQ0dQVE4iLCAweDgwMDQ1NDMwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfUkVTRVRFUCIsIDB4ODAwNDU1MDN9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19TRVRDT05GSUdVUkFUSU9OIiwgMHg4MDA0NTUwNX0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NMQUlNSU5URVJGQUNFIiwgMHg4MDA0NTUwZn0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1JFTEVBU0VJTlRFUkZBQ0UiLCAweDgwMDQ1NTEwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQ0xFQVJfSEFMVCIsIDB4ODAwNDU1MTV9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNUQVRVUyIsIDB4ODAwNDU3MDF9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVEJPT1RTVEFUVVMiLCAweDgwMDQ1NzAyfSwKK3sibGludXgvd2F0Y2hkb2cuaCIsICJXRElPQ19HRVRURU1QIiwgMHg4MDA0NTcwM30sCit7ImxpbnV4L3dhdGNoZG9nLmgiLCAiV0RJT0NfU0VUT1BUSU9OUyIsIDB4ODAwNDU3MDR9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0tFRVBBTElWRSIsIDB4ODAwNDU3MDV9LAoreyJsaW51eC9zb25ldC5oIiwgIlNPTkVUX0dFVERJQUciLCAweDgwMDQ2MTE0fSwKK3sibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRGUkFNSU5HIiwgMHg4MDA0NjExNn0sCit7ImxpbnV4L2RldmZzX2ZzLmgiLCAiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLCAweDgwMDQ2NDAwfSwKK3sibGludXgvdmlkZW9fZGVjb2Rlci5oIiwgIkRFQ09ERVJfR0VUX1NUQVRVUyIsIDB4ODAwNDY0MDJ9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPVkFMSURBVEUiLCAweDgwMDQ2OTA4fSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dWRVJTSU9OIiwgMHg4MDA0NmEwMX0sCit7ImxpbnV4L3VkZl9mc19pLmgiLCAiVURGX0dFVEVBU0laRSIsIDB4ODAwNDZjNDB9LAoreyJsaW51eC96ZnRhcGUuaCIsICJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLCAweDgwMDQ2ZDY4fSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TSUdOX1dBTlRFRCIsIDB4ODAwNDZlMDZ9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsIDB4ODAwNDZlMGN9LAoreyJsaW51eC9wcGRldi5oIiwgIlBQQ0xSSVJRIiwgMHg4MDA0NzA5M30sCit7ImxpbnV4L3RlbGVwaG9ueS5oIiwgIlBIT05FX0RUTUZfUkVBRFkiLCAweDgwMDQ3MTk2fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUYiLCAweDgwMDQ3MTk3fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLCAweDgwMDQ3MTk4fSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfRVhDRVBUSU9OIiwgMHg4MDA0NzE5YX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfQ0FSRFRZUEUiLCAweDgwMDQ3MWMxfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9TRVJJQUwiLCAweDgwMDQ3MWMyfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9EU1BfVFlQRSIsIDB4ODAwNDcxYzN9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0RTUF9WRVJTSU9OIiwgMHg4MDA0NzFjNH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dDSEFOIiwgMHg4MDA0NzQzN30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dERUJVRyIsIDB4ODAwNDc0NDF9LAoreyJsaW51eC9pZl9wcHAuaCIsICJQUFBJT0NHTVJVIiwgMHg4MDA0NzQ1M30sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dSQVNZTkNNQVAiLCAweDgwMDQ3NDU1fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1VOSVQiLCAweDgwMDQ3NDU2fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0FTWU5DTUFQIiwgMHg4MDA0NzQ1OH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ0dGTEFHUyIsIDB4ODAwNDc0NWF9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dNUEZMQUdTIiwgMHg4MDA0NzQ4Mn0sCit7ImxpbnV4L3NtYl9mcy5oIiwgIlNNQl9JT0NfR0VUTU9VTlRVSUQiLCAweDgwMDQ3NTAxfSwKK3sibGludXgvc21iX2ZzLmgiLCAiU01CX0lPQ19HRVRNT1VOVFVJRDMyIiwgMHg4MDA0NzUwM30sCit7ImxpbnV4L2RuLmgiLCAiU0lPQ0dORVRBRERSIiwgMHg4MDA0ODllMX0sCit7ImxpbnV4L2RuLmgiLCAiT1NJT0NHTkVUQUREUiIsIDB4ODAwNDg5ZTF9LAoreyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19QUk9UT1ZFUiIsIDB4ODAwNDkzNjN9LAoreyJsaW51eC9sdm0uaCIsICJMVk1fR0VUX0lPUF9WRVJTSU9OIiwgMHg4MDA0ZmU5OH0sCit7ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VURlJTRU5TRSIsIDB4ODAwNjYxMTd9LAoreyJsaW51eC9lbGV2YXRvci5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoreyJsaW51eC9mcy5oIiwgIkJMS0VMVkdFVCIsIDB4ODAwODEyNmF9LAoreyJsaW51eC9hZ3BnYXJ0LmgiLCAiQUdQSU9DX0lORk8iLCAweDgwMDg0MTAwfSwKK3sibGludXgvcG11LmgiLCAiUE1VX0lPQ19HRVRfQkFDS0xJR0hUIiwgMHg4MDA4NDIwMX0sCit7ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfR0VUX01PREVMIiwgMHg4MDA4NDIwM30sCit7ImxpbnV4L3BtdS5oIiwgIlBNVV9JT0NfSEFTX0FEQiIsIDB4ODAwODQyMDR9LAoreyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0lEIiwgMHg4MDA4NDUwMn0sCit7ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHUkVQIiwgMHg4MDA4NDUwM30sCit7ImxpbnV4L2lucHV0LmgiLCAiRVZJT0NHS0VZQ09ERSIsIDB4ODAwODQ1MDR9LAoreyJsaW51eC9pbnB1dC5oIiwgIkVWSU9DR0tFWSIsIDB4ODAwODQ1MDV9LAoreyJsaW51eC9yYW5kb20uaCIsICJSTkRHRVRQT09MIiwgMHg4MDA4NTIwMn0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX1NFVElOVEVSRkFDRSIsIDB4ODAwODU1MDR9LAoreyJsaW51eC9leHQyX2ZzLmgiLCAiRVhUMl9JT0NfR0VURkxBR1MiLCAweDgwMDg2NjAxfSwKK3sibGludXgvdWRmX2ZzX2kuaCIsICJVREZfR0VURUFCTE9DSyIsIDB4ODAwODZjNDF9LAoreyJsaW51eC91ZGZfZnNfaS5oIiwgIlVERl9HRVRWT0xJREVOVCIsIDB4ODAwODZjNDJ9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NQT1MiLCAweDgwMDg2ZDAzfSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLCAweDgwMDg2ZWY4fSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLCAweDgwMDg2ZWY5fSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLCAweDgwMDg2ZWZifSwKK3sibGludXgvcnRjLmgiLCAiUlRDX0lSUVBfUkVBRCIsIDB4ODAwODcwMGJ9LAoreyJsaW51eC9ydGMuaCIsICJSVENfRVBPQ0hfUkVBRCIsIDB4ODAwODcwMGR9LAoreyJsaW51eC90ZWxlcGhvbnkuaCIsICJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsIDB4ODAwODcxODF9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0NJRCIsIDB4ODAwODcxZDR9LAoreyJsaW51eC9peGp1c2VyLmgiLCAiSVhKQ1RMX0ZSQU1FU19SRUFEIiwgMHg4MDA4NzFlMn0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRlJBTUVTX1dSSVRURU4iLCAweDgwMDg3MWUzfSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9SRUFEX1dBSVQiLCAweDgwMDg3MWU0fSwKK3sibGludXgvaXhqdXNlci5oIiwgIklYSkNUTF9XUklURV9XQUlUIiwgMHg4MDA4NzFlNX0sCit7ImxpbnV4L2l4anVzZXIuaCIsICJJWEpDVExfRFJZQlVGRkVSX1JFQUQiLCAweDgwMDg3MWU2fSwKK3sibGludXgvZXh0Ml9mcy5oIiwgIkVYVDJfSU9DX0dFVFZFUlNJT04iLCAweDgwMDg3NjAxfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRlJFUSIsIDB4ODAwODc2MGV9LAoreyJsaW51eC92aWRlb19kZWNvZGVyLmgiLCAiREVDT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwgMHg4MDBjNjQwMX0sCit7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsICJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLCAweDgwMGM2NTAxfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRST09UIiwgMHg4MDBjNmUwOH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DS0VZIiwgMHg4MDBjNzYwZH0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1BJQ1QiLCAweDgwMGU3NjA2fSwKK3sibGludXgvZmQuaCIsICJGREdFVERSVlRZUCIsIDB4ODAxMDAyMGZ9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19ESVNDU0lHTkFMIiwgMHg4MDEwNTUwZX0sCit7ImxpbnV4L210aW8uaCIsICJNVElPQ0dFVFNJWkUiLCAweDgwMTA2ZDA5fSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19OQ1BSRVFVRVNUIiwgMHg4MDEwNmUwMX0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfU0VUUFJJVkFURURBVEEiLCAweDgwMTA2ZTBhfSwKK3sibGludXgvcHBkZXYuaCIsICJQUEdFVFRJTUUiLCAweDgwMTA3MDk1fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR0lETEUiLCAweDgwMTA3NDNmfSwKK3sibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHSUZOQU1FIiwgMHg4MDEwNzQ4OH0sCit7ImxpbnV4L2ZkLmgiLCAiRkRHRVRNQVhFUlJTIiwgMHg4MDE0MDIwZX0sCit7ImxpbnV4L210aW8uaCIsICJNVElPQ1ZPTElORk8iLCAweDgwMTQ2ZDA4fSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19MT0NLVU5MT0NLIiwgMHg4MDE0NmUwN30sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR1VOSVQiLCAweDgwMTQ3NjE1fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0FQVFVSRSIsIDB4ODAxNDc2MTZ9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NJR05fSU5JVCIsIDB4ODAxODZlMDV9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLCAweDgwMTg2ZTA5fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHRkJVRiIsIDB4ODAxODc2MGJ9LAoreyJsaW51eC9mZC5oIiwgIkZER0VUUFJNIiwgMHg4MDIwMDIwNH0sCit7ImFzbS9kYXNkLmgiLCAiQklPREFTREdBVFRSIiwgMHg4MDIwNDQwNX0sCit7ImxpbnV4L2ZiLmgiLCAiRkJJT0dFVF9WQkxBTksiLCAweDgwMjA0NjEyfSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR1hBU1lOQ01BUCIsIDB4ODAyMDc0NTB9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dWQklGTVQiLCAweDgwMjA3NjFjfSwKK3sibGludXgvc29uZXQuaCIsICJTT05FVF9HRVRTVEFUIiwgMHg4MDI0NjExMH0sCit7ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfR0VUU1RBVFoiLCAweDgwMjQ2MTExfSwKK3sibGludXgvam95c3RpY2suaCIsICJKU0lPQ0dDT1JSIiwgMHg4MDI0NmEyMn0sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19BTE1fUkVBRCIsIDB4ODAyNDcwMDh9LAoreyJsaW51eC9ydGMuaCIsICJSVENfUkRfVElNRSIsIDB4ODAyNDcwMDl9LAoreyJsaW51eC9mZC5oIiwgIkZER0VURkRDU1RBVCIsIDB4ODAyODAyMTV9LAoreyJsaW51eC9mZC5oIiwgIkZEV0VSUk9SR0VUIiwgMHg4MDI4MDIxN30sCit7ImxpbnV4L3J0Yy5oIiwgIlJUQ19XS0FMTV9SRCIsIDB4ODAyODcwMTB9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dXSU4iLCAweDgwMjg3NjA5fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQVVESU8iLCAweDgwMjg3NjEwfSwKK3sibGludXgvbmNwX2ZzLmgiLCAiTkNQX0lPQ19TRVRDSEFSU0VUUyIsIDB4ODAyYTZlMGJ9LAoreyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DR1BBUkFNUyIsIDB4ODAzMDZkMDF9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NHRVQiLCAweDgwMzA2ZDAyfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfU1VCTUlUVVJCIiwgMHg4MDM4NTUwYX0sCit7ImxpbnV4L3ZpZGVvZGV2LmgiLCAiVklESU9DR0NBUCIsIDB4ODAzYzc2MDF9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPR0VUSU9QUyIsIDB4ODA0MDY5MDB9LAoreyJsaW51eC9pc2RuX3BwcC5oIiwgIlBQUElPQ0dDT01QUkVTU09SUyIsIDB4ODA0MDc0ODZ9LAoreyJsaW51eC93YXRjaGRvZy5oIiwgIldESU9DX0dFVFNVUFBPUlQiLCAweDgwNDg1NzAwfSwKK3sibGludXgvZmQuaCIsICJGREdFVERSVlNUQVQiLCAweDgwNTAwMjEyfSwKK3sibGludXgvZmQuaCIsICJGRFBPTExEUlZTVEFUIiwgMHg4MDUwMDIxM30sCit7ImxpbnV4L2kyby1kZXYuaCIsICJJMk9FVlRHRVQiLCAweDgwNjg2OTBifSwKK3sibGludXgvZmQuaCIsICJGREdFVERSVlBSTSIsIDB4ODA4MDAyMTF9LAoreyJsaW51eC91c2JkZXZpY2VfZnMuaCIsICJVU0JERVZGU19IVUJfUE9SVElORk8iLCAweDgwODA1NTEzfSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHTUJVRiIsIDB4ODA4ODc2MTR9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RQU1JEIiwgMHg4MGMwNDQwNH0sCit7ImxpbnV4L2F1dG9fZnMuaCIsICJBVVRPRlNfSU9DX0VYUElSRSIsIDB4ODEwYzkzNjV9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dQTEFZSU5GTyIsIDB4ODExODc2MWF9LAoreyJhc20vZGFzZC5oIiwgIkJJT0RBU0RJTkZPIiwgMHg4MTc4NDQwMX0sCit7ImFzbS9kYXNkLmgiLCAiQklPREFTRElORk8yIiwgMHg4MWEwNDQwM30sCit7ImxpbnV4L21zZG9zX2ZzLmgiLCAiVkZBVF9JT0NUTF9SRUFERElSX0JPVEgiLCAweDgyMzA3MjAxfSwKK3sibGludXgvbXNkb3NfZnMuaCIsICJWRkFUX0lPQ1RMX1JFQURESVJfU0hPUlQiLCAweDgyMzA3MjAyfSwKK3siYXNtL2Rhc2QuaCIsICJCSU9EQVNEUFJSRCIsIDB4ODQwODQ0MDJ9LAoreyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfTUFOVUZBQ1RVUkVSIiwgMHhjMDA0NDMwNn0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9TRVJJQUwiLCAweGMwMDQ0MzA4fSwKK3sibGludXgvc29uZXQuaCIsICJTT05FVF9TRVRESUFHIiwgMHhjMDA0NjExMn0sCit7ImxpbnV4L3NvbmV0LmgiLCAiU09ORVRfQ0xSRElBRyIsIDB4YzAwNDYxMTN9LAoreyJsaW51eC9zeW5jbGluay5oIiwgIk1HU0xfSU9DV0FJVEVWRU5UIiwgMHhjMDA0NmQwOH0sCit7ImxpbnV4L2lmX3BwcC5oIiwgIlBQUElPQ05FV1VOSVQiLCAweGMwMDQ3NDNlfSwKK3sibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTIiwgMHhjMDA0ZmUwNX0sCit7ImxpbnV4L2x2bS5oIiwgIlZHX1NUQVRVU19HRVRfQ09VTlQiLCAweGMwMDRmZTA2fSwKK3sibGludXgvbHZtLmgiLCAiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsIDB4YzAwNGZlMDd9LAoreyJsaW51eC9sdm0uaCIsICJMVl9TVEFUVVNfQllOQU1FIiwgMHhjMDA0ZmUyNn0sCit7ImxpbnV4L2x2bS5oIiwgIkxWX1NUQVRVU19CWUlOREVYIiwgMHhjMDA0ZmUyN30sCit7ImxpbnV4L2x2bS5oIiwgIlBWX1NUQVRVUyIsIDB4YzAwNGZlNDB9LAoreyJsaW51eC9sdm0uaCIsICJQVl9DSEFOR0UiLCAweGMwMDRmZTQxfSwKK3sibGludXgvYWdwZ2FydC5oIiwgIkFHUElPQ19BTExPQ0FURSIsIDB4YzAwODQxMDZ9LAoreyJhc20vY21iLmgiLCAiQklPREFTRFJFQURDTUIiLCAweGMwMDg0NDIwfSwKK3sibGludXgvY29kYS5oIiwgIkNJT0NfS0VSTkVMX1ZFUlNJT04iLCAweGMwMDg2MzBhfSwKK3sibGludXgvbWF0cm94ZmIuaCIsICJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLCAweGMwMDg2ZWZhfSwKK3sibGludXgvdGVsZXBob255LmgiLCAiUEhPTkVfUVVFUllfQ09ERUMiLCAweGMwMDg3MWE3fSwKK3sibGludXgvaWZfcHBwLmgiLCAiUFBQSU9DR05QTU9ERSIsIDB4YzAwODc0NGN9LAoreyJsaW51eC9hdXRvX2ZzLmgiLCAiQVVUT0ZTX0lPQ19TRVRUSU1FT1VUIiwgMHhjMDA4OTM2NH0sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX0dFVF9WRVJTSU9OIiwgMHhjMDEwNDMwN30sCit7ImxpbnV4L2NhcGkuaCIsICJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLCAweGMwMTA0MzIwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfSU9DVEwiLCAweGMwMTA1NTEyfSwKK3sibGludXgvYXRtX25pY3N0YXIuaCIsICJOU19HRVRQU1RBVCIsIDB4YzAxMDYxNjF9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVFBSSVZBVEVEQVRBIiwgMHhjMDEwNmUwYX0sCit7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwgIlVTQkRFVkZTX0NPTlRST0wiLCAweGMwMTg1NTAwfSwKK3sibGludXgvdXNiZGV2aWNlX2ZzLmgiLCAiVVNCREVWRlNfQlVMSyIsIDB4YzAxODU1MDJ9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPSFJUR0VUIiwgMHhjMDE4NjkwMX0sCit7ImxpbnV4L2kyby1kZXYuaCIsICJJMk9MQ1RHRVQiLCAweGMwMTg2OTAyfSwKK3sibGludXgvbXRpby5oIiwgIk1USU9DUkRGVFNFRyIsIDB4YzAxODZkMDZ9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NXUkZUU0VHIiwgMHhjMDE4NmQwN30sCit7ImxpbnV4L210aW8uaCIsICJNVElPQ0ZURk9STUFUIiwgMHhjMDE4NmQwYX0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsIDB4YzAxODZlMDl9LAoreyJsaW51eC9tdGlvLmgiLCAiTVRJT0NGVENNRCIsIDB4YzAyMDZkMGJ9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTVNFVCIsIDB4YzAyODY5MDN9LAoreyJsaW51eC9pMm8tZGV2LmgiLCAiSTJPUEFSTUdFVCIsIDB4YzAyODY5MDR9LAoreyJsaW51eC9uY3BfZnMuaCIsICJOQ1BfSU9DX0dFVF9GU19JTkZPIiwgMHhjMDI4NmUwNH0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLCAweGMwMmE2ZTBifSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREwiLCAweGMwMzA2OTA1fSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT1NXVUwiLCAweGMwMzA2OTA2fSwKK3sibGludXgvaTJvLWRldi5oIiwgIkkyT1NXREVMIiwgMHhjMDMwNjkwN30sCit7ImxpbnV4L2kyby1kZXYuaCIsICJJMk9IVE1MIiwgMHhjMDMwNjkwOX0sCit7ImxpbnV4L25jcF9mcy5oIiwgIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLCAweGMwMzA2ZTA0fSwKK3sibGludXgvdmlkZW9kZXYuaCIsICJWSURJT0NHQ0hBTiIsIDB4YzAzMDc2MDJ9LAoreyJsaW51eC9jYXBpLmgiLCAiQ0FQSV9HRVRfUFJPRklMRSIsIDB4YzA0MDQzMDl9LAoreyJsaW51eC92aWRlb2Rldi5oIiwgIlZJRElPQ0dUVU5FUiIsIDB4YzA0MDc2MDR9LAoreyJhc20vY21iLmgiLCAiQklPREFTRFJFQURBTExDTUIiLCAweGMwNTg0NDIxfSwKK3sibGludXgvaXNkbl9wcHAuaCIsICJQUFBJT0NHQ0FMTElORk8iLCAweGMwODg3NDgwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zMzkweC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9zMzkweC9zaWduYWxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGIwMGIxCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3MzOTB4L3NpZ25hbGVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKwkiU0lHXzAiLAkvKiAwICovCisJIlNJR0hVUCIsCS8qIDEgKi8KKwkiU0lHSU5UIiwJLyogMiAqLworCSJTSUdRVUlUIiwJLyogMyAqLworCSJTSUdJTEwiLAkvKiA0ICovCisJIlNJR1RSQVAiLAkvKiA1ICovCisJIlNJR0FCUlQiLAkvKiA2ICovCisJIlNJR0JVUyIsCS8qIDcgKi8KKwkiU0lHRlBFIiwJLyogOCAqLworCSJTSUdLSUxMIiwJLyogOSAqLworCSJTSUdVU1IxIiwJLyogMTAgKi8KKwkiU0lHU0VHViIsCS8qIDExICovCisJIlNJR1VTUjIiLAkvKiAxMiAqLworCSJTSUdQSVBFIiwJLyogMTMgKi8KKwkiU0lHQUxSTSIsCS8qIDE0ICovCisJIlNJR1RFUk0iLAkvKiAxNSAqLworCSJTSUdTVEtGTFQiLAkvKiAxNiAqLworCSJTSUdDSExEIiwJLyogMTcgKi8KKwkiU0lHQ09OVCIsCS8qIDE4ICovCisJIlNJR1NUT1AiLAkvKiAxOSAqLworCSJTSUdUU1RQIiwJLyogMjAgKi8KKwkiU0lHVFRJTiIsCS8qIDIxICovCisJIlNJR1RUT1UiLAkvKiAyMiAqLworCSJTSUdVUkciLAkvKiAyMyAqLworCSJTSUdYQ1BVIiwJLyogMjQgKi8KKwkiU0lHWEZTWiIsCS8qIDI1ICovCisJIlNJR1ZUQUxSTSIsCS8qIDI2ICovCisJIlNJR1BST0YiLAkvKiAyNyAqLworCSJTSUdXSU5DSCIsCS8qIDI4ICovCisJIlNJR0lPIiwJLyogMjkgKi8KKwkiU0lHUFdSIiwJLyogMzAgKi8KKwkiU0lHVU5VU0VEIiwJLyogMzEgKi8KKwkiU0lHUlRNSU4iLAkvKiAzMiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoL2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvc2gvZXJybm9lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGIyYWRjCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NoL2Vycm5vZW50LmgKQEAgLTAsMCArMSw1MjkgQEAKKwkiRVJSTk9fMCIsIC8qIDAgKi8KKwkiRVBFUk0iLCAvKiAxICovCisJIkVOT0VOVCIsIC8qIDIgKi8KKwkiRVNSQ0giLCAvKiAzICovCisJIkVJTlRSIiwgLyogNCAqLworCSJFSU8iLCAvKiA1ICovCisJIkVOWElPIiwgLyogNiAqLworCSJFMkJJRyIsIC8qIDcgKi8KKwkiRU5PRVhFQyIsIC8qIDggKi8KKwkiRUJBREYiLCAvKiA5ICovCisJIkVDSElMRCIsIC8qIDEwICovCisJIkVBR0FJTiIsIC8qIDExICovCisJIkVOT01FTSIsIC8qIDEyICovCisJIkVBQ0NFUyIsIC8qIDEzICovCisJIkVGQVVMVCIsIC8qIDE0ICovCisJIkVOT1RCTEsiLCAvKiAxNSAqLworCSJFQlVTWSIsIC8qIDE2ICovCisJIkVFWElTVCIsIC8qIDE3ICovCisJIkVYREVWIiwgLyogMTggKi8KKwkiRU5PREVWIiwgLyogMTkgKi8KKwkiRU5PVERJUiIsIC8qIDIwICovCisJIkVJU0RJUiIsIC8qIDIxICovCisJIkVJTlZBTCIsIC8qIDIyICovCisJIkVORklMRSIsIC8qIDIzICovCisJIkVNRklMRSIsIC8qIDI0ICovCisJIkVOT1RUWSIsIC8qIDI1ICovCisJIkVUWFRCU1kiLCAvKiAyNiAqLworCSJFRkJJRyIsIC8qIDI3ICovCisJIkVOT1NQQyIsIC8qIDI4ICovCisJIkVTUElQRSIsIC8qIDI5ICovCisJIkVST0ZTIiwgLyogMzAgKi8KKwkiRU1MSU5LIiwgLyogMzEgKi8KKwkiRVBJUEUiLCAvKiAzMiAqLworCSJFRE9NIiwgLyogMzMgKi8KKwkiRVJBTkdFIiwgLyogMzQgKi8KKwkiRURFQURMSyIsIC8qIDM1ICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDM2ICovCisJIkVOT0xDSyIsIC8qIDM3ICovCisJIkVOT1NZUyIsIC8qIDM4ICovCisJIkVOT1RFTVBUWSIsIC8qIDM5ICovCisJIkVMT09QIiwgLyogNDAgKi8KKwkiRVJSTk9fNDEiLCAvKiA0MSAqLworCSJFTk9NU0ciLCAvKiA0MiAqLworCSJFSURSTSIsIC8qIDQzICovCisJIkVDSFJORyIsIC8qIDQ0ICovCisJIkVMMk5TWU5DIiwgLyogNDUgKi8KKwkiRUwzSExUIiwgLyogNDYgKi8KKwkiRUwzUlNUIiwgLyogNDcgKi8KKwkiRUxOUk5HIiwgLyogNDggKi8KKwkiRVVOQVRDSCIsIC8qIDQ5ICovCisJIkVOT0NTSSIsIC8qIDUwICovCisJIkVMMkhMVCIsIC8qIDUxICovCisJIkVCQURFIiwgLyogNTIgKi8KKwkiRUJBRFIiLCAvKiA1MyAqLworCSJFWEZVTEwiLCAvKiA1NCAqLworCSJFTk9BTk8iLCAvKiA1NSAqLworCSJFQkFEUlFDIiwgLyogNTYgKi8KKwkiRUJBRFNMVCIsIC8qIDU3ICovCisJIkVSUk5PXzU4IiwgLyogNTggKi8KKwkiRUJGT05UIiwgLyogNTkgKi8KKwkiRU5PU1RSIiwgLyogNjAgKi8KKwkiRU5PREFUQSIsIC8qIDYxICovCisJIkVUSU1FIiwgLyogNjIgKi8KKwkiRU5PU1IiLCAvKiA2MyAqLworCSJFTk9ORVQiLCAvKiA2NCAqLworCSJFTk9QS0ciLCAvKiA2NSAqLworCSJFUkVNT1RFIiwgLyogNjYgKi8KKwkiRU5PTElOSyIsIC8qIDY3ICovCisJIkVBRFYiLCAvKiA2OCAqLworCSJFU1JNTlQiLCAvKiA2OSAqLworCSJFQ09NTSIsIC8qIDcwICovCisJIkVQUk9UTyIsIC8qIDcxICovCisJIkVNVUxUSUhPUCIsIC8qIDcyICovCisJIkVET1RET1QiLCAvKiA3MyAqLworCSJFQkFETVNHIiwgLyogNzQgKi8KKwkiRU9WRVJGTE9XIiwgLyogNzUgKi8KKwkiRU5PVFVOSVEiLCAvKiA3NiAqLworCSJFQkFERkQiLCAvKiA3NyAqLworCSJFUkVNQ0hHIiwgLyogNzggKi8KKwkiRUxJQkFDQyIsIC8qIDc5ICovCisJIkVMSUJCQUQiLCAvKiA4MCAqLworCSJFTElCU0NOIiwgLyogODEgKi8KKwkiRUxJQk1BWCIsIC8qIDgyICovCisJIkVMSUJFWEVDIiwgLyogODMgKi8KKwkiRUlMU0VRIiwgLyogODQgKi8KKwkiRVJFU1RBUlQiLCAvKiA4NSAqLworCSJFU1RSUElQRSIsIC8qIDg2ICovCisJIkVVU0VSUyIsIC8qIDg3ICovCisJIkVOT1RTT0NLIiwgLyogODggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogODkgKi8KKwkiRU1TR1NJWkUiLCAvKiA5MCAqLworCSJFUFJPVE9UWVBFIiwgLyogOTEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA5MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA5MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA5NCAqLworCSJFT1BOT1RTVVBQIiwgLyogOTUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogOTYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogOTcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDk4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA5OSAqLworCSJFTkVURE9XTiIsIC8qIDEwMCAqLworCSJFTkVUVU5SRUFDSCIsIC8qIDEwMSAqLworCSJFTkVUUkVTRVQiLCAvKiAxMDIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogMTAzICovCisJIkVDT05OUkVTRVQiLCAvKiAxMDQgKi8KKwkiRU5PQlVGUyIsIC8qIDEwNSAqLworCSJFSVNDT05OIiwgLyogMTA2ICovCisJIkVOT1RDT05OIiwgLyogMTA3ICovCisJIkVTSFVURE9XTiIsIC8qIDEwOCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiAxMDkgKi8KKwkiRVRJTUVET1VUIiwgLyogMTEwICovCisJIkVDT05OUkVGVVNFRCIsIC8qIDExMSAqLworCSJFSE9TVERPV04iLCAvKiAxMTIgKi8KKwkiRUhPU1RVTlJFQUNIIiwgLyogMTEzICovCisJIkVBTFJFQURZIiwgLyogMTE0ICovCisJIkVJTlBST0dSRVNTIiwgLyogMTE1ICovCisJIkVTVEFMRSIsIC8qIDExNiAqLworCSJFVUNMRUFOIiwgLyogMTE3ICovCisJIkVOT1ROQU0iLCAvKiAxMTggKi8KKwkiRU5BVkFJTCIsIC8qIDExOSAqLworCSJFSVNOQU0iLCAvKiAxMjAgKi8KKwkiRVJFTU9URUlPIiwgLyogMTIxICovCisJIkVEUVVPVCIsIC8qIDEyMiAqLworCSJFTk9NRURJVU0iLCAvKiAxMjMgKi8KKwkiRU1FRElVTVRZUEUiLCAvKiAxMjQgKi8KKwkiRVJSTk9fMTI1IiwgLyogMTI1ICovCisJIkVSUk5PXzEyNiIsIC8qIDEyNiAqLworCSJFUlJOT18xMjciLCAvKiAxMjcgKi8KKwkiRVJSTk9fMTI4IiwgLyogMTI4ICovCisJIkVSUk5PXzEyOSIsIC8qIDEyOSAqLworCSJFUlJOT18xMzAiLCAvKiAxMzAgKi8KKwkiRVJSTk9fMTMxIiwgLyogMTMxICovCisJIkVSUk5PXzEzMiIsIC8qIDEzMiAqLworCSJFUlJOT18xMzMiLCAvKiAxMzMgKi8KKwkiRVJSTk9fMTM0IiwgLyogMTM0ICovCisJIkVSUk5PXzEzNSIsIC8qIDEzNSAqLworCSJFUlJOT18xMzYiLCAvKiAxMzYgKi8KKwkiRVJSTk9fMTM3IiwgLyogMTM3ICovCisJIkVSUk5PXzEzOCIsIC8qIDEzOCAqLworCSJFUlJOT18xMzkiLCAvKiAxMzkgKi8KKwkiRVJSTk9fMTQwIiwgLyogMTQwICovCisJIkVSUk5PXzE0MSIsIC8qIDE0MSAqLworCSJFUlJOT18xNDIiLCAvKiAxNDIgKi8KKwkiRVJSTk9fMTQzIiwgLyogMTQzICovCisJIkVSUk5PXzE0NCIsIC8qIDE0NCAqLworCSJFUlJOT18xNDUiLCAvKiAxNDUgKi8KKwkiRVJSTk9fMTQ2IiwgLyogMTQ2ICovCisJIkVSUk5PXzE0NyIsIC8qIDE0NyAqLworCSJFUlJOT18xNDgiLCAvKiAxNDggKi8KKwkiRVJSTk9fMTQ5IiwgLyogMTQ5ICovCisJIkVSUk5PXzE1MCIsIC8qIDE1MCAqLworCSJFUlJOT18xNTEiLCAvKiAxNTEgKi8KKwkiRVJSTk9fMTUyIiwgLyogMTUyICovCisJIkVSUk5PXzE1MyIsIC8qIDE1MyAqLworCSJFUlJOT18xNTQiLCAvKiAxNTQgKi8KKwkiRVJSTk9fMTU1IiwgLyogMTU1ICovCisJIkVSUk5PXzE1NiIsIC8qIDE1NiAqLworCSJFUlJOT18xNTciLCAvKiAxNTcgKi8KKwkiRVJSTk9fMTU4IiwgLyogMTU4ICovCisJIkVSUk5PXzE1OSIsIC8qIDE1OSAqLworCSJFUlJOT18xNjAiLCAvKiAxNjAgKi8KKwkiRVJSTk9fMTYxIiwgLyogMTYxICovCisJIkVSUk5PXzE2MiIsIC8qIDE2MiAqLworCSJFUlJOT18xNjMiLCAvKiAxNjMgKi8KKwkiRVJSTk9fMTY0IiwgLyogMTY0ICovCisJIkVSUk5PXzE2NSIsIC8qIDE2NSAqLworCSJFUlJOT18xNjYiLCAvKiAxNjYgKi8KKwkiRVJSTk9fMTY3IiwgLyogMTY3ICovCisJIkVSUk5PXzE2OCIsIC8qIDE2OCAqLworCSJFUlJOT18xNjkiLCAvKiAxNjkgKi8KKwkiRVJSTk9fMTcwIiwgLyogMTcwICovCisJIkVSUk5PXzE3MSIsIC8qIDE3MSAqLworCSJFUlJOT18xNzIiLCAvKiAxNzIgKi8KKwkiRVJSTk9fMTczIiwgLyogMTczICovCisJIkVSUk5PXzE3NCIsIC8qIDE3NCAqLworCSJFUlJOT18xNzUiLCAvKiAxNzUgKi8KKwkiRVJSTk9fMTc2IiwgLyogMTc2ICovCisJIkVSUk5PXzE3NyIsIC8qIDE3NyAqLworCSJFUlJOT18xNzgiLCAvKiAxNzggKi8KKwkiRVJSTk9fMTc5IiwgLyogMTc5ICovCisJIkVSUk5PXzE4MCIsIC8qIDE4MCAqLworCSJFUlJOT18xODEiLCAvKiAxODEgKi8KKwkiRVJSTk9fMTgyIiwgLyogMTgyICovCisJIkVSUk5PXzE4MyIsIC8qIDE4MyAqLworCSJFUlJOT18xODQiLCAvKiAxODQgKi8KKwkiRVJSTk9fMTg1IiwgLyogMTg1ICovCisJIkVSUk5PXzE4NiIsIC8qIDE4NiAqLworCSJFUlJOT18xODciLCAvKiAxODcgKi8KKwkiRVJSTk9fMTg4IiwgLyogMTg4ICovCisJIkVSUk5PXzE4OSIsIC8qIDE4OSAqLworCSJFUlJOT18xOTAiLCAvKiAxOTAgKi8KKwkiRVJSTk9fMTkxIiwgLyogMTkxICovCisJIkVSUk5PXzE5MiIsIC8qIDE5MiAqLworCSJFUlJOT18xOTMiLCAvKiAxOTMgKi8KKwkiRVJSTk9fMTk0IiwgLyogMTk0ICovCisJIkVSUk5PXzE5NSIsIC8qIDE5NSAqLworCSJFUlJOT18xOTYiLCAvKiAxOTYgKi8KKwkiRVJSTk9fMTk3IiwgLyogMTk3ICovCisJIkVSUk5PXzE5OCIsIC8qIDE5OCAqLworCSJFUlJOT18xOTkiLCAvKiAxOTkgKi8KKwkiRVJSTk9fMjAwIiwgLyogMjAwICovCisJIkVSUk5PXzIwMSIsIC8qIDIwMSAqLworCSJFUlJOT18yMDIiLCAvKiAyMDIgKi8KKwkiRVJSTk9fMjAzIiwgLyogMjAzICovCisJIkVSUk5PXzIwNCIsIC8qIDIwNCAqLworCSJFUlJOT18yMDUiLCAvKiAyMDUgKi8KKwkiRVJSTk9fMjA2IiwgLyogMjA2ICovCisJIkVSUk5PXzIwNyIsIC8qIDIwNyAqLworCSJFUlJOT18yMDgiLCAvKiAyMDggKi8KKwkiRVJSTk9fMjA5IiwgLyogMjA5ICovCisJIkVSUk5PXzIxMCIsIC8qIDIxMCAqLworCSJFUlJOT18yMTEiLCAvKiAyMTEgKi8KKwkiRVJSTk9fMjEyIiwgLyogMjEyICovCisJIkVSUk5PXzIxMyIsIC8qIDIxMyAqLworCSJFUlJOT18yMTQiLCAvKiAyMTQgKi8KKwkiRVJSTk9fMjE1IiwgLyogMjE1ICovCisJIkVSUk5PXzIxNiIsIC8qIDIxNiAqLworCSJFUlJOT18yMTciLCAvKiAyMTcgKi8KKwkiRVJSTk9fMjE4IiwgLyogMjE4ICovCisJIkVSUk5PXzIxOSIsIC8qIDIxOSAqLworCSJFUlJOT18yMjAiLCAvKiAyMjAgKi8KKwkiRVJSTk9fMjIxIiwgLyogMjIxICovCisJIkVSUk5PXzIyMiIsIC8qIDIyMiAqLworCSJFUlJOT18yMjMiLCAvKiAyMjMgKi8KKwkiRVJSTk9fMjI0IiwgLyogMjI0ICovCisJIkVSUk5PXzIyNSIsIC8qIDIyNSAqLworCSJFUlJOT18yMjYiLCAvKiAyMjYgKi8KKwkiRVJSTk9fMjI3IiwgLyogMjI3ICovCisJIkVSUk5PXzIyOCIsIC8qIDIyOCAqLworCSJFUlJOT18yMjkiLCAvKiAyMjkgKi8KKwkiRVJSTk9fMjMwIiwgLyogMjMwICovCisJIkVSUk5PXzIzMSIsIC8qIDIzMSAqLworCSJFUlJOT18yMzIiLCAvKiAyMzIgKi8KKwkiRVJSTk9fMjMzIiwgLyogMjMzICovCisJIkVSUk5PXzIzNCIsIC8qIDIzNCAqLworCSJFUlJOT18yMzUiLCAvKiAyMzUgKi8KKwkiRVJSTk9fMjM2IiwgLyogMjM2ICovCisJIkVSUk5PXzIzNyIsIC8qIDIzNyAqLworCSJFUlJOT18yMzgiLCAvKiAyMzggKi8KKwkiRVJSTk9fMjM5IiwgLyogMjM5ICovCisJIkVSUk5PXzI0MCIsIC8qIDI0MCAqLworCSJFUlJOT18yNDEiLCAvKiAyNDEgKi8KKwkiRVJSTk9fMjQyIiwgLyogMjQyICovCisJIkVSUk5PXzI0MyIsIC8qIDI0MyAqLworCSJFUlJOT18yNDQiLCAvKiAyNDQgKi8KKwkiRVJSTk9fMjQ1IiwgLyogMjQ1ICovCisJIkVSUk5PXzI0NiIsIC8qIDI0NiAqLworCSJFUlJOT18yNDciLCAvKiAyNDcgKi8KKwkiRVJSTk9fMjQ4IiwgLyogMjQ4ICovCisJIkVSUk5PXzI0OSIsIC8qIDI0OSAqLworCSJFUlJOT18yNTAiLCAvKiAyNTAgKi8KKwkiRVJSTk9fMjUxIiwgLyogMjUxICovCisJIkVSUk5PXzI1MiIsIC8qIDI1MiAqLworCSJFUlJOT18yNTMiLCAvKiAyNTMgKi8KKwkiRVJSTk9fMjU0IiwgLyogMjU0ICovCisJIkVSUk5PXzI1NSIsIC8qIDI1NSAqLworCSJFUlJOT18yNTYiLCAvKiAyNTYgKi8KKwkiRVJSTk9fMjU3IiwgLyogMjU3ICovCisJIkVSUk5PXzI1OCIsIC8qIDI1OCAqLworCSJFUlJOT18yNTkiLCAvKiAyNTkgKi8KKwkiRVJSTk9fMjYwIiwgLyogMjYwICovCisJIkVSUk5PXzI2MSIsIC8qIDI2MSAqLworCSJFUlJOT18yNjIiLCAvKiAyNjIgKi8KKwkiRVJSTk9fMjYzIiwgLyogMjYzICovCisJIkVSUk5PXzI2NCIsIC8qIDI2NCAqLworCSJFUlJOT18yNjUiLCAvKiAyNjUgKi8KKwkiRVJSTk9fMjY2IiwgLyogMjY2ICovCisJIkVSUk5PXzI2NyIsIC8qIDI2NyAqLworCSJFUlJOT18yNjgiLCAvKiAyNjggKi8KKwkiRVJSTk9fMjY5IiwgLyogMjY5ICovCisJIkVSUk5PXzI3MCIsIC8qIDI3MCAqLworCSJFUlJOT18yNzEiLCAvKiAyNzEgKi8KKwkiRVJSTk9fMjcyIiwgLyogMjcyICovCisJIkVSUk5PXzI3MyIsIC8qIDI3MyAqLworCSJFUlJOT18yNzQiLCAvKiAyNzQgKi8KKwkiRVJSTk9fMjc1IiwgLyogMjc1ICovCisJIkVSUk5PXzI3NiIsIC8qIDI3NiAqLworCSJFUlJOT18yNzciLCAvKiAyNzcgKi8KKwkiRVJSTk9fMjc4IiwgLyogMjc4ICovCisJIkVSUk5PXzI3OSIsIC8qIDI3OSAqLworCSJFUlJOT18yODAiLCAvKiAyODAgKi8KKwkiRVJSTk9fMjgxIiwgLyogMjgxICovCisJIkVSUk5PXzI4MiIsIC8qIDI4MiAqLworCSJFUlJOT18yODMiLCAvKiAyODMgKi8KKwkiRVJSTk9fMjg0IiwgLyogMjg0ICovCisJIkVSUk5PXzI4NSIsIC8qIDI4NSAqLworCSJFUlJOT18yODYiLCAvKiAyODYgKi8KKwkiRVJSTk9fMjg3IiwgLyogMjg3ICovCisJIkVSUk5PXzI4OCIsIC8qIDI4OCAqLworCSJFUlJOT18yODkiLCAvKiAyODkgKi8KKwkiRVJSTk9fMjkwIiwgLyogMjkwICovCisJIkVSUk5PXzI5MSIsIC8qIDI5MSAqLworCSJFUlJOT18yOTIiLCAvKiAyOTIgKi8KKwkiRVJSTk9fMjkzIiwgLyogMjkzICovCisJIkVSUk5PXzI5NCIsIC8qIDI5NCAqLworCSJFUlJOT18yOTUiLCAvKiAyOTUgKi8KKwkiRVJSTk9fMjk2IiwgLyogMjk2ICovCisJIkVSUk5PXzI5NyIsIC8qIDI5NyAqLworCSJFUlJOT18yOTgiLCAvKiAyOTggKi8KKwkiRVJSTk9fMjk5IiwgLyogMjk5ICovCisJIkVSUk5PXzMwMCIsIC8qIDMwMCAqLworCSJFUlJOT18zMDEiLCAvKiAzMDEgKi8KKwkiRVJSTk9fMzAyIiwgLyogMzAyICovCisJIkVSUk5PXzMwMyIsIC8qIDMwMyAqLworCSJFUlJOT18zMDQiLCAvKiAzMDQgKi8KKwkiRVJSTk9fMzA1IiwgLyogMzA1ICovCisJIkVSUk5PXzMwNiIsIC8qIDMwNiAqLworCSJFUlJOT18zMDciLCAvKiAzMDcgKi8KKwkiRVJSTk9fMzA4IiwgLyogMzA4ICovCisJIkVSUk5PXzMwOSIsIC8qIDMwOSAqLworCSJFUlJOT18zMTAiLCAvKiAzMTAgKi8KKwkiRVJSTk9fMzExIiwgLyogMzExICovCisJIkVSUk5PXzMxMiIsIC8qIDMxMiAqLworCSJFUlJOT18zMTMiLCAvKiAzMTMgKi8KKwkiRVJSTk9fMzE0IiwgLyogMzE0ICovCisJIkVSUk5PXzMxNSIsIC8qIDMxNSAqLworCSJFUlJOT18zMTYiLCAvKiAzMTYgKi8KKwkiRVJSTk9fMzE3IiwgLyogMzE3ICovCisJIkVSUk5PXzMxOCIsIC8qIDMxOCAqLworCSJFUlJOT18zMTkiLCAvKiAzMTkgKi8KKwkiRVJSTk9fMzIwIiwgLyogMzIwICovCisJIkVSUk5PXzMyMSIsIC8qIDMyMSAqLworCSJFUlJOT18zMjIiLCAvKiAzMjIgKi8KKwkiRVJSTk9fMzIzIiwgLyogMzIzICovCisJIkVSUk5PXzMyNCIsIC8qIDMyNCAqLworCSJFUlJOT18zMjUiLCAvKiAzMjUgKi8KKwkiRVJSTk9fMzI2IiwgLyogMzI2ICovCisJIkVSUk5PXzMyNyIsIC8qIDMyNyAqLworCSJFUlJOT18zMjgiLCAvKiAzMjggKi8KKwkiRVJSTk9fMzI5IiwgLyogMzI5ICovCisJIkVSUk5PXzMzMCIsIC8qIDMzMCAqLworCSJFUlJOT18zMzEiLCAvKiAzMzEgKi8KKwkiRVJSTk9fMzMyIiwgLyogMzMyICovCisJIkVSUk5PXzMzMyIsIC8qIDMzMyAqLworCSJFUlJOT18zMzQiLCAvKiAzMzQgKi8KKwkiRVJSTk9fMzM1IiwgLyogMzM1ICovCisJIkVSUk5PXzMzNiIsIC8qIDMzNiAqLworCSJFUlJOT18zMzciLCAvKiAzMzcgKi8KKwkiRVJSTk9fMzM4IiwgLyogMzM4ICovCisJIkVSUk5PXzMzOSIsIC8qIDMzOSAqLworCSJFUlJOT18zNDAiLCAvKiAzNDAgKi8KKwkiRVJSTk9fMzQxIiwgLyogMzQxICovCisJIkVSUk5PXzM0MiIsIC8qIDM0MiAqLworCSJFUlJOT18zNDMiLCAvKiAzNDMgKi8KKwkiRVJSTk9fMzQ0IiwgLyogMzQ0ICovCisJIkVSUk5PXzM0NSIsIC8qIDM0NSAqLworCSJFUlJOT18zNDYiLCAvKiAzNDYgKi8KKwkiRVJSTk9fMzQ3IiwgLyogMzQ3ICovCisJIkVSUk5PXzM0OCIsIC8qIDM0OCAqLworCSJFUlJOT18zNDkiLCAvKiAzNDkgKi8KKwkiRVJSTk9fMzUwIiwgLyogMzUwICovCisJIkVSUk5PXzM1MSIsIC8qIDM1MSAqLworCSJFUlJOT18zNTIiLCAvKiAzNTIgKi8KKwkiRVJSTk9fMzUzIiwgLyogMzUzICovCisJIkVSUk5PXzM1NCIsIC8qIDM1NCAqLworCSJFUlJOT18zNTUiLCAvKiAzNTUgKi8KKwkiRVJSTk9fMzU2IiwgLyogMzU2ICovCisJIkVSUk5PXzM1NyIsIC8qIDM1NyAqLworCSJFUlJOT18zNTgiLCAvKiAzNTggKi8KKwkiRVJSTk9fMzU5IiwgLyogMzU5ICovCisJIkVSUk5PXzM2MCIsIC8qIDM2MCAqLworCSJFUlJOT18zNjEiLCAvKiAzNjEgKi8KKwkiRVJSTk9fMzYyIiwgLyogMzYyICovCisJIkVSUk5PXzM2MyIsIC8qIDM2MyAqLworCSJFUlJOT18zNjQiLCAvKiAzNjQgKi8KKwkiRVJSTk9fMzY1IiwgLyogMzY1ICovCisJIkVSUk5PXzM2NiIsIC8qIDM2NiAqLworCSJFUlJOT18zNjciLCAvKiAzNjcgKi8KKwkiRVJSTk9fMzY4IiwgLyogMzY4ICovCisJIkVSUk5PXzM2OSIsIC8qIDM2OSAqLworCSJFUlJOT18zNzAiLCAvKiAzNzAgKi8KKwkiRVJSTk9fMzcxIiwgLyogMzcxICovCisJIkVSUk5PXzM3MiIsIC8qIDM3MiAqLworCSJFUlJOT18zNzMiLCAvKiAzNzMgKi8KKwkiRVJSTk9fMzc0IiwgLyogMzc0ICovCisJIkVSUk5PXzM3NSIsIC8qIDM3NSAqLworCSJFUlJOT18zNzYiLCAvKiAzNzYgKi8KKwkiRVJSTk9fMzc3IiwgLyogMzc3ICovCisJIkVSUk5PXzM3OCIsIC8qIDM3OCAqLworCSJFUlJOT18zNzkiLCAvKiAzNzkgKi8KKwkiRVJSTk9fMzgwIiwgLyogMzgwICovCisJIkVSUk5PXzM4MSIsIC8qIDM4MSAqLworCSJFUlJOT18zODIiLCAvKiAzODIgKi8KKwkiRVJSTk9fMzgzIiwgLyogMzgzICovCisJIkVSUk5PXzM4NCIsIC8qIDM4NCAqLworCSJFUlJOT18zODUiLCAvKiAzODUgKi8KKwkiRVJSTk9fMzg2IiwgLyogMzg2ICovCisJIkVSUk5PXzM4NyIsIC8qIDM4NyAqLworCSJFUlJOT18zODgiLCAvKiAzODggKi8KKwkiRVJSTk9fMzg5IiwgLyogMzg5ICovCisJIkVSUk5PXzM5MCIsIC8qIDM5MCAqLworCSJFUlJOT18zOTEiLCAvKiAzOTEgKi8KKwkiRVJSTk9fMzkyIiwgLyogMzkyICovCisJIkVSUk5PXzM5MyIsIC8qIDM5MyAqLworCSJFUlJOT18zOTQiLCAvKiAzOTQgKi8KKwkiRVJSTk9fMzk1IiwgLyogMzk1ICovCisJIkVSUk5PXzM5NiIsIC8qIDM5NiAqLworCSJFUlJOT18zOTciLCAvKiAzOTcgKi8KKwkiRVJSTk9fMzk4IiwgLyogMzk4ICovCisJIkVSUk5PXzM5OSIsIC8qIDM5OSAqLworCSJFUlJOT180MDAiLCAvKiA0MDAgKi8KKwkiRVJSTk9fNDAxIiwgLyogNDAxICovCisJIkVSUk5PXzQwMiIsIC8qIDQwMiAqLworCSJFUlJOT180MDMiLCAvKiA0MDMgKi8KKwkiRVJSTk9fNDA0IiwgLyogNDA0ICovCisJIkVSUk5PXzQwNSIsIC8qIDQwNSAqLworCSJFUlJOT180MDYiLCAvKiA0MDYgKi8KKwkiRVJSTk9fNDA3IiwgLyogNDA3ICovCisJIkVSUk5PXzQwOCIsIC8qIDQwOCAqLworCSJFUlJOT180MDkiLCAvKiA0MDkgKi8KKwkiRVJSTk9fNDEwIiwgLyogNDEwICovCisJIkVSUk5PXzQxMSIsIC8qIDQxMSAqLworCSJFUlJOT180MTIiLCAvKiA0MTIgKi8KKwkiRVJSTk9fNDEzIiwgLyogNDEzICovCisJIkVSUk5PXzQxNCIsIC8qIDQxNCAqLworCSJFUlJOT180MTUiLCAvKiA0MTUgKi8KKwkiRVJSTk9fNDE2IiwgLyogNDE2ICovCisJIkVSUk5PXzQxNyIsIC8qIDQxNyAqLworCSJFUlJOT180MTgiLCAvKiA0MTggKi8KKwkiRVJSTk9fNDE5IiwgLyogNDE5ICovCisJIkVSUk5PXzQyMCIsIC8qIDQyMCAqLworCSJFUlJOT180MjEiLCAvKiA0MjEgKi8KKwkiRVJSTk9fNDIyIiwgLyogNDIyICovCisJIkVSUk5PXzQyMyIsIC8qIDQyMyAqLworCSJFUlJOT180MjQiLCAvKiA0MjQgKi8KKwkiRVJSTk9fNDI1IiwgLyogNDI1ICovCisJIkVSUk5PXzQyNiIsIC8qIDQyNiAqLworCSJFUlJOT180MjciLCAvKiA0MjcgKi8KKwkiRVJSTk9fNDI4IiwgLyogNDI4ICovCisJIkVSUk5PXzQyOSIsIC8qIDQyOSAqLworCSJFUlJOT180MzAiLCAvKiA0MzAgKi8KKwkiRVJSTk9fNDMxIiwgLyogNDMxICovCisJIkVSUk5PXzQzMiIsIC8qIDQzMiAqLworCSJFUlJOT180MzMiLCAvKiA0MzMgKi8KKwkiRVJSTk9fNDM0IiwgLyogNDM0ICovCisJIkVSUk5PXzQzNSIsIC8qIDQzNSAqLworCSJFUlJOT180MzYiLCAvKiA0MzYgKi8KKwkiRVJSTk9fNDM3IiwgLyogNDM3ICovCisJIkVSUk5PXzQzOCIsIC8qIDQzOCAqLworCSJFUlJOT180MzkiLCAvKiA0MzkgKi8KKwkiRVJSTk9fNDQwIiwgLyogNDQwICovCisJIkVSUk5PXzQ0MSIsIC8qIDQ0MSAqLworCSJFUlJOT180NDIiLCAvKiA0NDIgKi8KKwkiRVJSTk9fNDQzIiwgLyogNDQzICovCisJIkVSUk5PXzQ0NCIsIC8qIDQ0NCAqLworCSJFUlJOT180NDUiLCAvKiA0NDUgKi8KKwkiRVJSTk9fNDQ2IiwgLyogNDQ2ICovCisJIkVSUk5PXzQ0NyIsIC8qIDQ0NyAqLworCSJFUlJOT180NDgiLCAvKiA0NDggKi8KKwkiRVJSTk9fNDQ5IiwgLyogNDQ5ICovCisJIkVSUk5PXzQ1MCIsIC8qIDQ1MCAqLworCSJFUlJOT180NTEiLCAvKiA0NTEgKi8KKwkiRVJSTk9fNDUyIiwgLyogNDUyICovCisJIkVSUk5PXzQ1MyIsIC8qIDQ1MyAqLworCSJFUlJOT180NTQiLCAvKiA0NTQgKi8KKwkiRVJSTk9fNDU1IiwgLyogNDU1ICovCisJIkVSUk5PXzQ1NiIsIC8qIDQ1NiAqLworCSJFUlJOT180NTciLCAvKiA0NTcgKi8KKwkiRVJSTk9fNDU4IiwgLyogNDU4ICovCisJIkVSUk5PXzQ1OSIsIC8qIDQ1OSAqLworCSJFUlJOT180NjAiLCAvKiA0NjAgKi8KKwkiRVJSTk9fNDYxIiwgLyogNDYxICovCisJIkVSUk5PXzQ2MiIsIC8qIDQ2MiAqLworCSJFUlJOT180NjMiLCAvKiA0NjMgKi8KKwkiRVJSTk9fNDY0IiwgLyogNDY0ICovCisJIkVSUk5PXzQ2NSIsIC8qIDQ2NSAqLworCSJFUlJOT180NjYiLCAvKiA0NjYgKi8KKwkiRVJSTk9fNDY3IiwgLyogNDY3ICovCisJIkVSUk5PXzQ2OCIsIC8qIDQ2OCAqLworCSJFUlJOT180NjkiLCAvKiA0NjkgKi8KKwkiRVJSTk9fNDcwIiwgLyogNDcwICovCisJIkVSUk5PXzQ3MSIsIC8qIDQ3MSAqLworCSJFUlJOT180NzIiLCAvKiA0NzIgKi8KKwkiRVJSTk9fNDczIiwgLyogNDczICovCisJIkVSUk5PXzQ3NCIsIC8qIDQ3NCAqLworCSJFUlJOT180NzUiLCAvKiA0NzUgKi8KKwkiRVJSTk9fNDc2IiwgLyogNDc2ICovCisJIkVSUk5PXzQ3NyIsIC8qIDQ3NyAqLworCSJFUlJOT180NzgiLCAvKiA0NzggKi8KKwkiRVJSTk9fNDc5IiwgLyogNDc5ICovCisJIkVSUk5PXzQ4MCIsIC8qIDQ4MCAqLworCSJFUlJOT180ODEiLCAvKiA0ODEgKi8KKwkiRVJSTk9fNDgyIiwgLyogNDgyICovCisJIkVSUk5PXzQ4MyIsIC8qIDQ4MyAqLworCSJFUlJOT180ODQiLCAvKiA0ODQgKi8KKwkiRVJSTk9fNDg1IiwgLyogNDg1ICovCisJIkVSUk5PXzQ4NiIsIC8qIDQ4NiAqLworCSJFUlJOT180ODciLCAvKiA0ODcgKi8KKwkiRVJSTk9fNDg4IiwgLyogNDg4ICovCisJIkVSUk5PXzQ4OSIsIC8qIDQ4OSAqLworCSJFUlJOT180OTAiLCAvKiA0OTAgKi8KKwkiRVJSTk9fNDkxIiwgLyogNDkxICovCisJIkVSUk5PXzQ5MiIsIC8qIDQ5MiAqLworCSJFUlJOT180OTMiLCAvKiA0OTMgKi8KKwkiRVJSTk9fNDk0IiwgLyogNDk0ICovCisJIkVSUk5PXzQ5NSIsIC8qIDQ5NSAqLworCSJFUlJOT180OTYiLCAvKiA0OTYgKi8KKwkiRVJSTk9fNDk3IiwgLyogNDk3ICovCisJIkVSUk5PXzQ5OCIsIC8qIDQ5OCAqLworCSJFUlJOT180OTkiLCAvKiA0OTkgKi8KKwkiRVJSTk9fNTAwIiwgLyogNTAwICovCisJIkVSUk5PXzUwMSIsIC8qIDUwMSAqLworCSJFUlJOT181MDIiLCAvKiA1MDIgKi8KKwkiRVJSTk9fNTAzIiwgLyogNTAzICovCisJIkVSUk5PXzUwNCIsIC8qIDUwNCAqLworCSJFUlJOT181MDUiLCAvKiA1MDUgKi8KKwkiRVJSTk9fNTA2IiwgLyogNTA2ICovCisJIkVSUk5PXzUwNyIsIC8qIDUwNyAqLworCSJFUlJOT181MDgiLCAvKiA1MDggKi8KKwkiRVJSTk9fNTA5IiwgLyogNTA5ICovCisJIkVSUk5PXzUxMCIsIC8qIDUxMCAqLworCSJFUlJOT181MTEiLCAvKiA1MTEgKi8KKwkiRVJFU1RBUlRTWVMiLCAvKiA1MTIgKi8KKwkiRVJFU1RBUlROT0lOVFIiLCAvKiA1MTMgKi8KKwkiRVJFU1RBUlROT0hBTkQiLCAvKiA1MTQgKi8KKwkiRU5PSU9DVExDTUQiLCAvKiA1MTUgKi8KKwkiRVJSTk9fNTE2IiwgLyogNTE2ICovCisJIkVSUk5PXzUxNyIsIC8qIDUxNyAqLworCSJFUlJOT181MTgiLCAvKiA1MTggKi8KKwkiRVJSTk9fNTE5IiwgLyogNTE5ICovCisJIkVSUk5PXzUyMCIsIC8qIDUyMCAqLworCSJFQkFESEFORExFIiwgLyogNTIxICovCisJIkVOT1RTWU5DIiwgLyogNTIyICovCisJIkVCQURDT09LSUUiLCAvKiA1MjMgKi8KKwkiRU5PVFNVUFAiLCAvKiA1MjQgKi8KKwkiRVRPT1NNQUxMIiwgLyogNTI1ICovCisJIkVTRVJWRVJGQVVMVCIsIC8qIDUyNiAqLworCSJFQkFEVFlQRSIsIC8qIDUyNyAqLworCSJFSlVLRUJPWCIsIC8qIDUyOCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvc2gvaW9jdGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjhiYzdiCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NoL2lvY3RsZW50LmgKQEAgLTAsMCArMSw4MzYgQEAKKwl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAorCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAorCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAorCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAorCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCisJeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAorCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAorCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAorCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCisJeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAorCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9URU1QTyIsCTB4NTQwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NPVVJDRSIsCTB4NTQwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX01FVFJPTk9NRSIsCTB4NTQwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1NFTEVDVCIsCTB4NTQwOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0VYQ0wiLAkweDU0MGN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NOWENMIiwJMHg1NDBkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0NUVFkiLAkweDU0MGV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0xJTlVYIiwJMHg1NDFjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ09OUyIsCTB4NTQxZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTRVJJQUwiLAkweDU0MWV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU0VSSUFMIiwJMHg1NDFmfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DUEtUIiwJMHg1NDIwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTk9UVFkiLAkweDU0MjJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVREIiwJMHg1NDIzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0VURCIsCTB4NTQyNH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTQlJLUCIsCTB4NTQyNX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1RUWUdTVFJVQ1QiLAkweDU0MjZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTQlJLIiwJMHg1NDI3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DQ0JSSyIsCTB4NTQyOH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dTSUQiLAkweDU0Mjl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHUFROIiwJMHg1NDMwfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1BUTENLIiwJMHg1NDMxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU4iLAkweDVhMDB9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVQiLAkweDVhMDF9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfQ1RSTCIsCTB4NWEwMn0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOX1NUQVRVUyIsCTB4NWEwM30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX09VVF9TVEFUVVMiLAkweDVhMDR9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19HRU5fQ1RSTCIsCTB4NWEwNX0sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOVF9XQUlUIiwJMHg1YTA2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VUU1RBVCIsCTB4NjExMH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVRaIiwJMHg2MTExfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURElBRyIsCTB4NjExMn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0NMUkRJQUciLAkweDYxMTN9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRESUFHIiwJMHg2MTE0fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfU0VURlJBTUlORyIsCTB4NjExNX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVEZSQU1JTkciLAkweDYxMTZ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUlNFTlNFIiwJMHg2MTE3fSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVQiLAkweDYxMzJ9LAorCXsibGludXgvYXRtX2lkdDc3MTA1LmgiLAkiSURUNzcxMDVfR0VUU1RBVFoiLAkweDYxMzN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVQiLAkweDYxNTB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFNUQVRaIiwJMHg2MTUxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMT09QIiwJMHg2MTUyfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRMT09QIiwJMHg2MTUzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9RVUVSWUxPT1AiLAkweDYxNTR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9NRU1EVU1QIiwJMHg2MTYwfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfR0VUUFNUQVQiLAkweDYxNjF9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0wiLAkweDYxNjF9LAorCXsibGludXgvYXRtX25pY3N0YXIuaCIsCSJOU19TRVRCVUZMRVYiLAkweDYxNjJ9LAorCXsibGludXgvYXRtX3phdG0uaCIsCSJaQVRNX0dFVFBPT0xaIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfQURKQlVGTEVWIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9TRVRQT09MIiwJMHg2MTYzfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRUSElTVCIsCTB4NjE2NH0sCisJeyJsaW51eC9hdG1fZW5pLmgiLAkiRU5JX1NFVE1VTFQiLAkweDYxNjd9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIlNJT0NTSUZBVE1UQ1AiLAkweDYxODB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVExJTktSQVRFIiwJMHg2MTgxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVROQU1FUyIsCTB4NjE4M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUVFlQRSIsCTB4NjE4NH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VURVNJIiwJMHg2MTg1fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRBRERSIiwJMHg2MTg2fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9SU1RBRERSIiwJMHg2MTg3fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9BRERBRERSIiwJMHg2MTg4fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9ERUxBRERSIiwJMHg2MTg5fSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRDSVJBTkdFIiwJMHg2MThhfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRDSVJBTkdFIiwJMHg2MThifSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0kiLAkweDYxOGN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEVTSUYiLAkweDYxOGR9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9DUkVBVEUiLAkweDYxOGV9LAorCXsibGludXgvYXRtX3RjcC5oIiwJIkFUTVRDUF9SRU1PVkUiLAkweDYxOGZ9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0NUUkwiLAkweDYxZDB9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX0RBVEEiLAkweDYxZDF9LAorCXsibGludXgvYXRtbGVjLmgiLAkiQVRNTEVDX01DQVNUIiwJMHg2MWQyfSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19DVFJMIiwJMHg2MWQ4fSwKKwl7ImxpbnV4L2F0bW1wYy5oIiwJIkFUTU1QQ19EQVRBIiwJMHg2MWQ5fSwKKwl7ImxpbnV4L2F0bWNsaXAuaCIsCSJTSU9DTUtDTElQIiwJMHg2MWUwfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUERfQ1RSTCIsCTB4NjFlMX0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfTUtJUCIsCTB4NjFlMn0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBfU0VURU5UUlkiLAkweDYxZTN9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX0VOQ0FQIiwJMHg2MWU1fSwKKwl7ImxpbnV4L2F0bXN2Yy5oIiwJIkFUTVNJR0RfQ1RSTCIsCTB4NjFmMH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUU0MiLAkweDYxZjF9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVEJBQ0tFTkQiLAkweDYxZjJ9LAorCXsibGludXgvY29kYS5oIiwJIkNJT0NfS0VSTkVMX1ZFUlNJT04iLAkweDYzMGF9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUUE9SVFNUQVRTIiwJMHg2MzFlfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0NMUlBPUlRTVEFUUyIsCTB4NjMxZn0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9HRVRCUkRTVEFUUyIsCTB4NjMyMH0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEUE9SVCIsCTB4NjMyOH0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9SRUFEQk9BUkQiLAkweDYzMjl9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBBTkVMIiwJMHg2MzJhfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX0dFVF9QUk9UT19SRVYiLAkweDY0MDB9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX0NBUEFCSUxJVElFUyIsCTB4NjQwMX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19TRVRfRVZFTlRfTUFTSyIsCTB4NjQwMn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9HRVRfU1RBVFVTIiwJMHg2NDAyfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1JFTEVBU0VfRVZFTlRfUVVFVUUiLAkweDY0MDN9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX05PUk0iLAkweDY0MDN9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0RFQlVHX01BU0siLAkweDY0MDR9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX0lOUFVUIiwJMHg2NDA0fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9PVVRQVVQiLAkweDY0MDV9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjQwNn0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfUElDVFVSRSIsCTB4NjQwN30sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9EVU1QIiwJMHg2NGMwfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY1MDF9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX05PUk0iLAkweDY1MDJ9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfU0VUX0lOUFVUIiwJMHg2NTAzfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9PVVRQVVQiLAkweDY1MDR9LAorCXsibGludXgvdmlkZW9fZW5jb2Rlci5oIiwJIkVOQ09ERVJfRU5BQkxFX09VVFBVVCIsCTB4NjUwNX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VURkxBR1MiLAkweDY2MDF9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJGSU9DTEVYIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRGTEFHUyIsCTB4NjYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05DTEVYIiwJMHg2NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCisJeyJhc20vc29ja2lvcy5oIiwJIkZJT0dFVE9XTiIsCTB4NjY3Yn0sCisJeyJhc20vc29ja2lvcy5oIiwJIkZJT1NFVE9XTiIsCTB4NjY3Y30sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPQVNZTkMiLAkweDY2N2R9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05CSU8iLAkweDY2N2V9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT05SRUFEIiwJMHg2NjdmfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9HRVRJT1BTIiwJMHg2OTAwfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IUlRHRVQiLAkweDY5MDF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0xDVEdFVCIsCTB4NjkwMn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTVNFVCIsCTB4NjkwM30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPUEFSTUdFVCIsCTB4NjkwNH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dETCIsCTB4NjkwNX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dVTCIsCTB4NjkwNn0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPU1dERUwiLAkweDY5MDd9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1ZBTElEQVRFIiwJMHg2OTA4fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9IVE1MIiwJMHg2OTA5fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRSRUciLAkweDY5MGF9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT0VWVEdFVCIsCTB4NjkwYn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfQklPU19WRVJTSU9OIiwJMHg2OTgwfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19NQUNISU5FX0lEIiwJMHg2OTgxfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19QT1dFUl9TVEFUVVMiLAkweDY5ODJ9LAorCXsibGludXgvaThrLmgiLAkiSThLX0ZOX1NUQVRVUyIsCTB4Njk4M30sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX1RFTVAiLAkweDY5ODR9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9TUEVFRCIsCTB4Njk4NX0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfR0VUX0ZBTiIsCTB4Njk4Nn0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfU0VUX0ZBTiIsCTB4Njk4N30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR1ZFUlNJT04iLAkweDZhMDF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWEVTIiwJMHg2YTExfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQlVUVE9OUyIsCTB4NmExMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0NPUlIiLAkweDZhMjF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dDT1JSIiwJMHg2YTIyfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NTQVhNQVAiLAkweDZhMzF9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dBWE1BUCIsCTB4NmEzMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0JUTk1BUCIsCTB4NmEzM30sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JUTk1BUCIsCTB4NmEzNH0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRFQVNJWkUiLAkweDZjNDB9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFCTE9DSyIsCTB4NmM0MX0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9HRVRWT0xJREVOVCIsCTB4NmM0Mn0sCisJeyJsaW51eC91ZGZfZnNfaS5oIiwJIlVERl9SRUxPQ0FURV9CTE9DS1MiLAkweDZjNDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfUFJFVElNRSIsCTB4NmQwMH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1BBUkFNUyIsCTB4NmQwMH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NUT1AiLAkweDZkMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVTU9ERSIsCTB4NmQwMX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1BBUkFNUyIsCTB4NmQwMX0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVQiLAkweDZkMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX01JRElfTVBVQ01EIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NTVFhJRExFIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1BPUyIsCTB4NmQwM30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1RYSURMRSIsCTB4NmQwM30sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRDT05GSUciLAkweDZkMDR9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYRU5BQkxFIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1NFVENPTkZJRyIsCTB4NmQwNX0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DUlhFTkFCTEUiLAkweDZkMDV9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DUkRGVFNFRyIsCTB4NmQwNn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DVFhBQk9SVCIsCTB4NmQwNn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NXUkZUU0VHIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NHU1RBVFMiLAkweDZkMDd9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVk9MSU5GTyIsCTB4NmQwOH0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DV0FJVEVWRU5UIiwJMHg2ZDA4fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0dFVFNJWkUiLAkweDZkMDl9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0xPT1BUWERPTkUiLAkweDZkMDl9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRGT1JNQVQiLAkweDZkMGF9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DRlRDTUQiLAkweDZkMGJ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0NMUk1PRENPVU5UIiwJMHg2ZDBmfSwKKwl7ImxpbnV4L3pmdGFwZS5oIiwJIk1USU9DX1pGVEFQRV9HRVRCTEtTWiIsCTB4NmQ2OH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX05DUFJFUVVFU1QiLAkweDZlMDF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRCIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE1PVU5UVUlEMiIsCTB4NmUwMn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0NPTk5fTE9HR0VEX0lOIiwJMHg2ZTAzfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk8iLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRfRlNfSU5GT19WMiIsCTB4NmUwNH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fSU5JVCIsCTB4NmUwNX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUX1NJR05fV0FOVEVEIiwJMHg2ZTA2fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfTE9DS1VOTE9DSyIsCTB4NmUwN30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVFJPT1QiLAkweDZlMDh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUT0JKRUNUTkFNRSIsCTB4NmUwOX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVFBSSVZBVEVEQVRBIiwJMHg2ZTBhfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRDSEFSU0VUUyIsCTB4NmUwYn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVERFTlRSWVRUTCIsCTB4NmUwY30sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfQ09OTkVDVElPTiIsCTB4NmVmOH0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BVkFJTEFCTEVfT1VUUFVUUyIsCTB4NmVmOX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX1NFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9PVVRQVVRfTU9ERSIsCTB4NmVmYX0sCisJeyJsaW51eC9tYXRyb3hmYi5oIiwJIk1BVFJPWEZCX0dFVF9BTExfT1VUUFVUUyIsCTB4NmVmYn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09OIiwJMHg3MDAxfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BSUVfT0ZGIiwJMHg3MDAyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUTU9VTlQiLAkweDcwMDN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PTiIsCTB4NzAwM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1NFVFBJRCIsCTB4NzAwNH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfVUlFX09GRiIsCTB4NzAwNH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfUElFX09OIiwJMHg3MDA1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xPU0VfSk9VUk5BTEYiLAkweDcwMDZ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PRkYiLAkweDcwMDZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRfRlNFVFJPT1QiLAkweDcwMDd9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9TRVQiLAkweDcwMDd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9GU0VUUk9PVCIsCTB4NzAwOH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUxNX1JFQUQiLAkweDcwMDh9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRPUFQiLAkweDcwMDl9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1JEX1RJTUUiLAkweDcwMDl9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRPUFQiLAkweDcwMGF9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1NFVF9USU1FIiwJMHg3MDBhfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUX0tNTFNJWkUiLAkweDcwMGJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfUkVBRCIsCTB4NzAwYn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9SRUNOTyIsCTB4NzAwY30sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfSVJRUF9TRVQiLAkweDcwMGN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1JFQUQiLAkweDcwMGR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0VQT0NIX1NFVCIsCTB4NzAwZX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09OIiwJMHg3MDBmfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19XS0FMTV9TRVQiLAkweDcwMGZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfU0VUQVRUUiIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0lFX09GRiIsCTB4NzAxMH0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fUkQiLAkweDcwMTB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfQ1JFQVRFIiwJMHg3MDExfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0xJTksiLAkweDcwMTJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfVU5MSU5LIiwJMHg3MDEzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NZTUxJTksiLAkweDcwMTR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtESVIiLAkweDcwMTV9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUk1ESVIiLAkweDcwMTZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfTUtOT0QiLAkweDcwMTd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfUkVOQU1FIiwJMHg3MDE4fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NMT1NFIiwJMHg3MDFhfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0lPUEVOIiwJMHg3MDFifSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEVYVEFUVFIiLAkweDcwMWN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19WRlNfREVMRVhUQVRUUiIsCTB4NzAxZH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX01BUksiLAkweDcwMjB9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUxFQVNFX1BFUk1JVCIsCTB4NzAyMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMRUFSX0FMTF9GU0VUUk9PVFMiLAkweDcwMjJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19CQUNLRkVUQ0hfTE1MIiwJMHg3MDIzfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlQiLAkweDcwMjR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DQU5DRUxfTE1MIiwJMHg3MDI1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVTRVRfRlNFVCIsCTB4NzAyNn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NPTVBMRVRFX0NMT1NFUyIsCTB4NzAyN30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UX0JFR0lOIiwJMHg3MDMwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fRE9fUkVJTlQiLAkweDcwMzF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9FTkQiLAkweDcwMzJ9LAorCXsibGludXgvbnZyYW0uaCIsCSJOVlJBTV9JTklUIiwJMHg3MDQwfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fU0VUQ0tTIiwJMHg3MDQxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRNT0RFIiwJMHg3MDgwfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSU1RBVFVTIiwJMHg3MDgxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSQ09OVFJPTCIsCTB4NzA4M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0NPTlRST0wiLAkweDcwODR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJEQVRBIiwJMHg3MDg1fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXREFUQSIsCTB4NzA4Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xBSU0iLAkweDcwOGJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFJFTEVBU0UiLAkweDcwOGN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFlJRUxEIiwJMHg3MDhkfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBGQ09OVFJPTCIsCTB4NzA4ZX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRVhDTCIsCTB4NzA4Zn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQREFUQURJUiIsCTB4NzA5MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQTkVHT1QiLAkweDcwOTF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDVExPTklSUSIsCTB4NzA5Mn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQQ0xSSVJRIiwJMHg3MDkzfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBTRVRQSEFTRSIsCTB4NzA5NH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUVElNRSIsCTB4NzA5NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUVElNRSIsCTB4NzA5Nn0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VUTU9ERVMiLAkweDcwOTd9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREUiLAkweDcwOTh9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFBIQVNFIiwJMHg3MDk5fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRGTEFHUyIsCTB4NzA5YX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VURkxBR1MiLAkweDcwOWJ9LAorCXsibGludXgvc2VyaW8uaCIsCSJTUElPQ1NUWVBFIiwJMHg3MTAxfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0NBUEFCSUxJVElFUyIsCTB4NzE4MH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfTElTVCIsCTB4NzE4MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVNfQ0hFQ0siLAkweDcxODJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklORyIsCTB4NzE4M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9IT09LU1RBVEUiLAkweDcxODR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfTUFYUklOR1MiLAkweDcxODV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19DQURFTkNFIiwJMHg3MTg2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIk9MRF9QSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RBUlQiLAkweDcxODd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR19TVE9QIiwJMHg3MTg4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19DT0RFQyIsCTB4NzE4OX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfU1RBUlQiLAkweDcxOGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUT1AiLAkweDcxOGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0RFUFRIIiwJMHg3MThjfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0ZSQU1FIiwJMHg3MThkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUUiLAkweDcxOGV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX0xFVkVMIiwJMHg3MThmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfQ09ERUMiLAkweDcxOTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVEFSVCIsCTB4NzE5MX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1NUT1AiLAkweDcxOTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9ERVBUSCIsCTB4NzE5M30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1ZPTFVNRSIsCTB4NzE5NH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0xFVkVMIiwJMHg3MTk1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfUkVBRFkiLAkweDcxOTZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUYiLAkweDcxOTd9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX0RUTUZfQVNDSUkiLAkweDcxOTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRFRNRl9PT0IiLAkweDcxOTl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRVhDRVBUSU9OIiwJMHg3MTlhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVE9ORSIsCTB4NzE5Yn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PTl9USU1FIiwJMHg3MTljfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1NFVF9UT05FX09GRl9USU1FIiwJMHg3MTlkfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09OX1RJTUUiLAkweDcxOWV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfT0ZGX1RJTUUiLAkweDcxOWZ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfR0VUX1RPTkVfU1RBVEUiLAkweDcxYTB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQlVTWSIsCTB4NzFhMX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HQkFDSyIsCTB4NzFhMn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9ESUFMVE9ORSIsCTB4NzFhM30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DUFRfU1RPUCIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX1NFVF9TVEFURSIsCTB4NzFhNH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0dFVF9TVEFURSIsCTB4NzFhNX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LX0RVUkFUSU9OIiwJMHg3MWE2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1FVRVJZX0NPREVDIiwJMHg3MWE3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BTVE5fTElORVRFU1QiLAkweDcxYTh9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfVkFEIiwJMHg3MWE5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1dJTksiLAkweDcxYWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfUkVTRVQiLAkweDcxYzB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DQVJEVFlQRSIsCTB4NzFjMX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFUklBTCIsCTB4NzFjMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9UWVBFIiwJMHg3MWMzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1ZFUlNJT04iLAkweDcxYzR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfSURMRSIsCTB4NzFjNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RFU1RSQU0iLAkweDcxYzZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVRfRklMVEVSIiwJMHg3MWM3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfR0VUX0ZJTFRFUl9ISVNUIiwJMHg3MWM4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5JVF9UT05FIiwJMHg3MWM5fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfVE9ORV9DQURFTkNFIiwJMHg3MWNhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUQVJUIiwJMHg3MWNifSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX1NUT1AiLAkweDcxY2N9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9BRUNfR0VUX0xFVkVMIiwJMHg3MWNkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0xFRCIsCTB4NzFjZX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX01JWEVSIiwJMHg3MWNmfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0NPRUZGX1NFVCIsCTB4NzFkMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPUlQiLAkweDcxZDF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EQUFfQUdBSU4iLAkweDcxZDJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QU1ROX0xJTkVURVNUIiwJMHg3MWQzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEIiwJMHg3MWQ0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUE9UU19QU1ROIiwJMHg3MWQ1fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRklMVEVSX0NBREVOQ0UiLAkweDcxZDZ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QTEFZX0NJRCIsCTB4NzFkN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZNV0kiLAkweDcxZDh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9DSURDVyIsCTB4NzFkOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1ZFUlNJT04iLAkweDcxZGF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1ZPTFVNRV9MSU5FQVIiLAkweDcxZGJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUVfTElORUFSIiwJMHg3MWRjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUl9SQVciLAkweDcxZGR9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9IWiIsCTB4NzFlMH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JBVEUiLAkweDcxZTF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfUkVBRCIsCTB4NzFlMn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZSQU1FU19XUklUVEVOIiwJMHg3MWUzfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUkVBRF9XQUlUIiwJMHg3MWU0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfV1JJVEVfV0FJVCIsCTB4NzFlNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9SRUFEIiwJMHg3MWU2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFJZQlVGRkVSX0NMRUFSIiwJMHg3MWU3fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFRNRl9QUkVTQ0FMRSIsCTB4NzFlOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NJR0NUTCIsCTB4NzFlOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1JYRyIsCTB4NzFlYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NDX1RYRyIsCTB4NzFlYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUQVJUIiwJMHg3MWZkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSU5URVJDT01fU1RPUCIsCTB4NzFmZX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9CT1RIIiwJMHg3MjAxfSwKKwl7ImxpbnV4L21zZG9zX2ZzLmgiLAkiVkZBVF9JT0NUTF9SRUFERElSX1NIT1JUIiwJMHg3MjAyfSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0FUTUFSSyIsCTB4NzMwN30sCisJeyJhc20vc29ja2lvcy5oIiwJIlNJT0NTUEdSUCIsCTB4NzMwOH0sCisJeyJhc20vc29ja2lvcy5oIiwJIlNJT0NHUEdSUCIsCTB4NzMwOX0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKKwl7ImFzbS9zb2NraW9zLmgiLAkiU0lPQ0dTVEFNUCIsCTB4NzM2NH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENHRVRBIiwJMHg3NDE3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDc0MTh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDc0MTl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDc0MWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NzQxZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg3NDFlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDc0MWZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0NIQU4iLAkweDc0Mzd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DQVRUQ0hBTiIsCTB4NzQzOH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NESVNDT05OIiwJMHg3NDM5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0NPTk5FQ1QiLAkweDc0M2F9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01SUlUiLAkweDc0M2J9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DREVUQUNIIiwJMHg3NDNjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVEFDSCIsCTB4NzQzZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NORVdVTklUIiwJMHg3NDNlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dJRExFIiwJMHg3NDNmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NERUJVRyIsCTB4NzQ0MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHREVCVUciLAkweDc0NDF9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FDVElWRSIsCTB4NzQ0Nn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUEFTUyIsCTB4NzQ0N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTlBNT0RFIiwJMHg3NDRifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dOUE1PREUiLAkweDc0NGN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTIiwJMHg3NDRkfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1hGRVJVTklUIiwJMHg3NDRlfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NYQVNZTkNNQVAiLAkweDc0NGZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1hBU1lOQ01BUCIsCTB4NzQ1MH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTUFYQ0lEIiwJMHg3NDUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlUiLAkweDc0NTJ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR01SVSIsCTB4NzQ1M30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTUkFTWU5DTUFQIiwJMHg3NDU0fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dSQVNZTkNNQVAiLAkweDc0NTV9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR1VOSVQiLAkweDc0NTZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0FTWU5DTUFQIiwJMHg3NDU3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dBU1lOQ01BUCIsCTB4NzQ1OH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTRkxBR1MiLAkweDc0NTl9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0ZMQUdTIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX0hBU0giLAkweDc0NWF9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfUFJJTlRfVFJFRSIsCTB4NzQ1Yn0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19HRVRfU1RBVFVTIiwJMHg3NDVjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1dJTlNaIiwJMHg3NDY3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1dJTlNaIiwJMHg3NDY4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1RBUlQiLAkweDc0NmV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVE9QIiwJMHg3NDZmfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DT1VUUSIsCTB4NzQ3M30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQR1JQIiwJMHg3NDc2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDc0Nzd9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ0FMTElORk8iLAkweDc0ODB9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NCVU5ETEUiLAkweDc0ODF9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHTVBGTEFHUyIsCTB4NzQ4Mn0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ1NNUEZMQUdTIiwJMHg3NDgzfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVRVIiwJMHg3NDg0fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QTVJVIiwJMHg3NDg1fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DR0NPTVBSRVNTT1JTIiwJMHg3NDg2fSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU0NPTVBSRVNTT1IiLAkweDc0ODd9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHSUZOQU1FIiwJMHg3NDg4fSwKKwl7ImxpbnV4L3Rvc2hpYmEuaCIsCSJUT1NIX1NNTSIsCTB4NzQ5MH0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEIiwJMHg3NTAxfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfTkVXQ09OTiIsCTB4NzUwMn0sCisJeyJsaW51eC9zbWJfZnMuaCIsCSJTTUJfSU9DX0dFVE1PVU5UVUlEMzIiLAkweDc1MDN9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCUlQiLAkweDc2MDB9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCUlQiLAkweDc2MDB9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVFZFUlNJT04iLAkweDc2MDF9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX0dFVFZFUlNJT05fT0xEIiwJMHg3NjAxfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0NBUCIsCTB4NzYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VUVkVSU0lPTiIsCTB4NzYwMn0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfU0VUVkVSU0lPTl9PTEQiLAkweDc2MDJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDSEFOIiwJMHg3NjAzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1RVTkVSIiwJMHg3NjA0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUElDVCIsCTB4NzYwN30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHV0lOIiwJMHg3NjA5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dJTiIsCTB4NzYwYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dGQlVGIiwJMHg3NjBifSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0ZCVUYiLAkweDc2MGN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NLRVkiLAkweDc2MGR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRlJFUSIsCTB4NzYwZX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGUkVRIiwJMHg3NjBmfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0FVRElPIiwJMHg3NjEwfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0FVRElPIiwJMHg3NjExfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1lOQyIsCTB4NzYxMn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ01DQVBUVVJFIiwJMHg3NjEzfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR01CVUYiLAkweDc2MTR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVU5JVCIsCTB4NzYxNX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dDQVBUVVJFIiwJMHg3NjE2fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU0NBUFRVUkUiLAkweDc2MTd9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTUExBWU1PREUiLAkweDc2MTh9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTV1JJVEVNT0RFIiwJMHg3NjE5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BMQVlJTkZPIiwJMHg3NjFhfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU01JQ1JPQ09ERSIsCTB4NzYxYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dWQklGTVQiLAkweDc2MWN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTVkJJRk1UIiwJMHg3NjFkfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX0dfUEFSQU1TIiwJMHg3NmMwfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NfUEFSQU1TIiwJMHg3NmMxfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1FCVUZfQ0FQVCIsCTB4NzZjMn0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TWU5DIiwJMHg3NmMzfSwKKwl7ImxpbnV4L21leWUuaCIsCSJNRVlFSU9DX1NUSUxMQ0FQVCIsCTB4NzZjNH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTEpDQVBUIiwJMHg3NmM1fSwKKwl7ImxpbnV4L2RuLmgiLAkiU0lPQ1NORVRBRERSIiwJMHg4OWUwfSwKKwl7ImxpbnV4L2RuLmgiLAkiT1NJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NHTkVUQUREUiIsCTB4ODllMX0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUkVBRFkiLAkweDkzNjB9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRkFJTCIsCTB4OTM2MX0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19DQVRBVE9OSUMiLAkweDkzNjJ9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfUFJPVE9WRVIiLAkweDkzNjN9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfU0VUVElNRU9VVCIsCTB4OTM2NH0sCisJeyJsaW51eC9hdXRvX2ZzLmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkUiLAkweDkzNjV9LAorCXsibGludXgvYXV0b19mczQuaCIsCSJBVVRPRlNfSU9DX0VYUElSRV9NVUxUSSIsCTB4OTM2Nn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NPQ0siLAkweGFiMDB9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9CTEtTSVpFIiwJMHhhYjAxfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRSIsCTB4YWIwMn0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfRE9fSVQiLAkweGFiMDN9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1NPQ0siLAkweGFiMDR9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0NMRUFSX1FVRSIsCTB4YWIwNX0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfUFJJTlRfREVCVUciLAkweGFiMDZ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TSVpFX0JMT0NLUyIsCTB4YWIwN30sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfRElTQ09OTkVDVCIsCTB4YWIwOH0sCisJeyJsaW51eC9yYXcuaCIsCSJSQVdfU0VUQklORCIsCTB4YWMwMH0sCisJeyJsaW51eC9yYXcuaCIsCSJSQVdfR0VUQklORCIsCTB4YWMwMX0sCisJeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DU0ZXRCIsCTB4YjEwMH0sCisJeyJsaW51eC9pZl9wcHBveC5oIiwJIlBQUE9FSU9DREZXRCIsCTB4YjEwMX0sCisJeyJsaW51eC9yZWlzZXJmc19mcy5oIiwJIlJFSVNFUkZTX0lPQ19VTlBBQ0siLAkweGNkMDF9LAorCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFX09MRCIsCTB4ZmUwMH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRU1PVkUiLAkweGZlMDF9LAorCXsibGludXgvbHZtLmgiLAkiVkdfRVhURU5EIiwJMHhmZTAzfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFRFVDRSIsCTB4ZmUwNH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVMiLAkweGZlMDV9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9DT1VOVCIsCTB4ZmUwNn0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TVEFUVVNfR0VUX05BTUVMSVNUIiwJMHhmZTA3fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NFVF9FWFRFTkRBQkxFIiwJMHhmZTA4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1JFTkFNRSIsCTB4ZmUwOX0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19DUkVBVEUiLAkweGZlMGF9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQ1JFQVRFIiwJMHhmZTIwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTU9WRSIsCTB4ZmUyMX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9BQ1RJVkFURSIsCTB4ZmUyMn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9ERUFDVElWQVRFIiwJMHhmZTIzfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0VYVEVORCIsCTB4ZmUyNH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRURVQ0UiLAkweGZlMjV9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZTkFNRSIsCTB4ZmUyNn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TVEFUVVNfQllJTkRFWCIsCTB4ZmUyN30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUNDRVNTIiwJMHhmZTI4fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9BTExPQ0FUSU9OIiwJMHhmZTI5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NFVF9TVEFUVVMiLAkweGZlMmF9LAorCXsibGludXgvbHZtLmgiLAkiTEVfUkVNQVAiLAkweGZlMmJ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU05BUFNIT1RfVVNFX1JBVEUiLAkweGZlMmN9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZREVWIiwJMHhmZTJlfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1JFTkFNRSIsCTB4ZmUyZn0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9CTUFQIiwJMHhmZTMwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX1NUQVRVUyIsCTB4ZmU0MH0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9DSEFOR0UiLAkweGZlNDF9LAorCXsibGludXgvbHZtLmgiLAkiUFZfRkxVU0giLAkweGZlNDJ9LAorCXsibGludXgvbHZtLmgiLAkiUEVfTE9DS19VTkxPQ0siLAkweGZlNTB9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX0dFVF9JT1BfVkVSU0lPTiIsCTB4ZmU5OH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVk1fUkVTRVQiLAkweGZlOTl9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX0xPQ0tfTFZNIiwJMHhmZjAwfSwKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zaC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9zaC9zaWduYWxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTJmNzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NoL3NpZ25hbGVudC5oCkBAIC0wLDAgKzEsMzMgQEAKKwkiU0lHXzAiLAkvKiAwICovCisJIlNJR0hVUCIsCS8qIDEgKi8KKwkiU0lHSU5UIiwJLyogMiAqLworCSJTSUdRVUlUIiwJLyogMyAqLworCSJTSUdJTEwiLAkvKiA0ICovCisJIlNJR1RSQVAiLAkvKiA1ICovCisJIlNJR0FCUlQiLAkvKiA2ICovCisJIlNJR0JVUyIsCS8qIDcgKi8KKwkiU0lHRlBFIiwJLyogOCAqLworCSJTSUdLSUxMIiwJLyogOSAqLworCSJTSUdVU1IxIiwJLyogMTAgKi8KKwkiU0lHU0VHViIsCS8qIDExICovCisJIlNJR1VTUjIiLAkvKiAxMiAqLworCSJTSUdQSVBFIiwJLyogMTMgKi8KKwkiU0lHQUxSTSIsCS8qIDE0ICovCisJIlNJR1RFUk0iLAkvKiAxNSAqLworCSJTSUdTVEtGTFQiLAkvKiAxNiAqLworCSJTSUdDSExEIiwJLyogMTcgKi8KKwkiU0lHQ09OVCIsCS8qIDE4ICovCisJIlNJR1NUT1AiLAkvKiAxOSAqLworCSJTSUdUU1RQIiwJLyogMjAgKi8KKwkiU0lHVFRJTiIsCS8qIDIxICovCisJIlNJR1RUT1UiLAkvKiAyMiAqLworCSJTSUdVUkciLAkvKiAyMyAqLworCSJTSUdYQ1BVIiwJLyogMjQgKi8KKwkiU0lHWEZTWiIsCS8qIDI1ICovCisJIlNJR1ZUQUxSTSIsCS8qIDI2ICovCisJIlNJR1BST0YiLAkvKiAyNyAqLworCSJTSUdXSU5DSCIsCS8qIDI4ICovCisJIlNJR0lPIiwJLyogMjkgKi8KKwkiU0lHUFdSIiwJLyogMzAgKi8KKwkiU0lHU1lTIiwJLyogMzEgKi8KKwkiU0lHUlRNSU4iLAkvKiAzMiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NoL3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9zaC9zeXNjYWxsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjU0NjgyZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zaC9zeXNjYWxsZW50LmgKQEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMjAwMCBQb2NrZXRQZW5ndWlucyBJbmMuICBMaW51eCBmb3IgSGl0YWNoaSBTdXBlckgKKyAqICAgICAgICAgICAgICAgICAgICBwb3J0IGJ5IEdyZWcgQmFua3MgPGdiYW5rc0Bwb2NrZXRwZW5ndWlucy5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjQgMjAwMy8xMS8xMyAyMjozMjoyOCByb2xhbmQgRXhwICQKKyAqLworCisJeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiCQl9LCAvKiAxICovCisJeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCX0sIC8qIDIgKi8KKwl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCisJeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCisJeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KKwl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KKwl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIgl9LCAvKiA3ICovCisJeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLworCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCisJeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCisJeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDExICovCisJeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLworCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCisJeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgkJfSwgLyogMTYgKi8KKwl7IDAsCTAsCXN5c19icmVhaywJCSJicmVhayIJCX0sIC8qIDE3ICovCisJeyAyLAlURiwJc3lzX29sZHN0YXQsCQkib2xkc3RhdCIJfSwgLyogMTggKi8KKwl7IDMsCTAsCXN5c19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDE5ICovCisJeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgLyogMjAgKi8KKwl7IDUsCVRGLAlzeXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiAyMSAqLworCXsgMSwJVEYsCXN5c191bW91bnQsCQkib2xkdW1vdW50Igl9LCAvKiAyMiAqLworCXsgMSwJMCwJc3lzX3NldHVpZCwJCSJzZXR1aWQiCX0sIC8qIDIzICovCisJeyAwLAkwLAlzeXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMjQgKi8KKwl7IDEsCTAsCXN5c19zdGltZSwJCSJzdGltZSIJCX0sIC8qIDI1ICovCisJeyA0LAkwLAlzeXNfcHRyYWNlLAkJInB0cmFjZSIJfSwgLyogMjYgKi8KKwl7IDEsCTAsCXN5c19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCisJeyAyLAkwLAlzeXNfb2xkZnN0YXQsCQkib2xkZnN0YXQiCX0sIC8qIDI4ICovCisJeyAwLAlUUywJc3lzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLworCXsgMiwJMCwJc3lzX3N0dHksCQkic3R0eSIJCX0sIC8qIDMxICovCisJeyAyLAkwLAlzeXNfZ3R0eSwJCSJndHR5IgkJfSwgLyogMzIgKi8KKwl7IDIsCVRGLAlzeXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KKwl7IDEsCTAsCXN5c19uaWNlLAkJIm5pY2UiCQl9LCAvKiAzNCAqLworCXsgMCwJMCwJc3lzX2Z0aW1lLAkJImZ0aW1lIgkJfSwgLyogMzUgKi8KKwl7IDAsCTAsCXN5c19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLworCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAvKiAzNyAqLworCXsgMiwJVEYsCXN5c19yZW5hbWUsCQkicmVuYW1lIgl9LCAvKiAzOCAqLworCXsgMiwJVEYsCXN5c19ta2RpciwJCSJta2RpciIJCX0sIC8qIDM5ICovCisJeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNDAgKi8KKwl7IDEsCTAsCXN5c19kdXAsCQkiZHVwIgkJfSwgLyogNDEgKi8KKwl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLworCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDMgKi8KKwl7IDAsCTAsCXN5c19wcm9mLAkJInByb2YiCQl9LCAvKiA0NCAqLworCXsgMSwJMCwJc3lzX2JyaywJCSJicmsiCQl9LCAvKiA0NSAqLworCXsgMSwJMCwJc3lzX3NldGdpZCwJCSJzZXRnaWQiCX0sIC8qIDQ2ICovCisJeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KKwl7IDMsCVRTLAlzeXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogNDggKi8KKwl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQiCX0sIC8qIDQ5ICovCisJeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJCSJnZXRlZ2lkIgl9LCAvKiA1MCAqLworCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAvKiA1MSAqLworCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogNTIgKi8KKwl7IDAsCTAsCXN5c19sb2NrLAkJImxvY2siCQl9LCAvKiA1MyAqLworCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNTQgKi8KKwl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bCIJCX0sIC8qIDU1ICovCisJeyAwLAkwLAlzeXNfbXB4LAkJIm1weCIJCX0sIC8qIDU2ICovCisJeyAyLAkwLAlzeXNfc2V0cGdpZCwJCSJzZXRwZ2lkIgl9LCAvKiA1NyAqLworCXsgMiwJMCwJc3lzX3VsaW1pdCwJCSJ1bGltaXQiCX0sIC8qIDU4ICovCisJeyAxLAkwLAlzeXNfb2xkb2xkdW5hbWUsCSJvbGRvbGR1bmFtZSIJfSwgLyogNTkgKi8KKwl7IDEsCTAsCXN5c191bWFzaywJCSJ1bWFzayIJCX0sIC8qIDYwICovCisJeyAxLAlURiwJc3lzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDYxICovCisJeyAyLAkwLAlzeXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiA2MiAqLworCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sIC8qIDYzICovCisJeyAwLAkwLAlzeXNfZ2V0cHBpZCwJCSJnZXRwcGlkIgl9LCAvKiA2NCAqLworCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgLyogNjUgKi8KKwl7IDAsCTAsCXN5c19zZXRzaWQsCQkic2V0c2lkIgl9LCAvKiA2NiAqLworCXsgMywJVFMsCXN5c19zaWdhY3Rpb24sCQkic2lnYWN0aW9uIgl9LCAvKiA2NyAqLworCXsgMCwJVFMsCXN5c19zaWdnZXRtYXNrLAkJInNpZ2dldG1hc2siCX0sIC8qIDY4ICovCisJeyAxLAlUUywJc3lzX3NpZ3NldG1hc2ssCQkic2lnc2V0bWFzayIJfSwgLyogNjkgKi8KKwl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgLyogNzAgKi8KKwl7IDIsCTAsCXN5c19zZXRyZWdpZCwJCSJzZXRyZWdpZCIJfSwgLyogNzEgKi8KKwl7IDMsCVRTLAlzeXNfc2lnc3VzcGVuZCwJCSJzaWdzdXNwZW5kIgl9LCAvKiA3MiAqLworCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkJInNpZ3BlbmRpbmciCX0sIC8qIDczICovCisJeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgLyogNzQgKi8KKwl7IDIsCTAsCXN5c19zZXRybGltaXQsCQkic2V0cmxpbWl0Igl9LCAvKiA3NSAqLworCXsgMiwJMCwJc3lzX2dldHJsaW1pdCwJCSJnZXRybGltaXQiCX0sIC8qIDc2ICovCisJeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KKwl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KKwl7IDEsCTAsCXN5c19vbGRzZWxlY3QsCQkib2xkc2VsZWN0Igl9LCAvKiA4MiAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCisJeyAyLAlURiwJc3lzX29sZGxzdGF0LAkJIm9sZGxzdGF0Igl9LCAvKiA4NCAqLworCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogODUgKi8KKwl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogODYgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogODcgKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA4OCAqLworCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJfSwgLyogODkgKi8KKwl7IDYsCTAsCXN5c19vbGRfbW1hcCwJCSJvbGRfbW1hcCIgICAJfSwgLyogOTAgKi8KKwl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA5MSAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogOTIgKi8KKwl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA5MyAqLworCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDk0ICovCisJeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTUgKi8KKwl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA5NiAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDk3ICovCisJeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogOTggKi8KKwl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogOTkgKi8KKwl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCX0sIC8qIDEwMCAqLworCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDEwMSAqLworCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIJfSwgLyogMTAyICovCisJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgLyogMTAzICovCisJeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJfSwgLyogMTA0ICovCisJeyAyLAkwLAlzeXNfZ2V0aXRpbWVyLAkJImdldGl0aW1lciIJfSwgLyogMTA1ICovCisJeyAyLAlURiwJc3lzX3N0YXQsCQkic3RhdCIJCX0sIC8qIDEwNiAqLworCXsgMiwJVEYsCXN5c19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDEwNyAqLworCXsgMiwJMCwJc3lzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMTA4ICovCisJeyAxLAkwLAlzeXNfb2xkdW5hbWUsCQkib2xkdW5hbWUiCX0sIC8qIDEwOSAqLworCXsgMSwJMCwJc3lzX2lvcGwsCQkiaW9wbCIJCX0sIC8qIDExMCAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgLyogMTExICovCisJeyAwLAkwLAlzeXNfaWRsZSwJCSJpZGxlIgkJfSwgLyogMTEyICovCisJeyAxLAkwLAlzeXNfdm04Nm9sZCwJCSJ2bTg2b2xkIgl9LCAvKiAxMTMgKi8KKwl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiAxMTQgKi8KKwl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCisJeyA1LAkwLAlzeXNfaXBjLAkJImlwYyIJCX0sIC8qIDExNyAqLworCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDEyMCAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiAxMjEgKi8KKwl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEyMiAqLworCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgLyogMTIzICovCisJeyAxLAkwLAlzeXNfYWRqdGltZXgsCQkiYWRqdGltZXgiCX0sIC8qIDEyNCAqLworCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAvKiAxMjUgKi8KKwl7IDMsCVRTLAlzeXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogMTI2ICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwJImNyZWF0ZV9tb2R1bGUiCX0sIC8qIDEyNyAqLworCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sIC8qIDEyOCAqLworCXsgMSwJMCwJc3lzX2RlbGV0ZV9tb2R1bGUsCSJkZWxldGVfbW9kdWxlIgl9LCAvKiAxMjkgKi8KKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsCSJnZXRfa2VybmVsX3N5bXMifSwgLyogMTMwICovCisJeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sIC8qIDEzMSAqLworCXsgMSwJMCwJc3lzX2dldHBnaWQsCQkiZ2V0cGdpZCIJfSwgLyogMTMyICovCisJeyAxLAkwLAlzeXNfZmNoZGlyLAkJImZjaGRpciIJfSwgLyogMTMzICovCisJeyAwLAkwLAlzeXNfYmRmbHVzaCwJCSJiZGZsdXNoIgl9LCAvKiAxMzQgKi8KKwl7IDMsCTAsCXN5c19zeXNmcywJCSJzeXNmcyIJCX0sIC8qIDEzNSAqLworCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLworCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAxMzggKi8KKwl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMTM5ICovCisJeyA1LAkwLAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLworCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiAxNDEgKi8KKwl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAvKiAxNDIgKi8KKwl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLworCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCisJeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiAxNDUgKi8KKwl7IDMsCTAsCXN5c193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxNDYgKi8KKwl7IDEsCTAsCXN5c19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAxNDcgKi8KKwl7IDEsCTAsCXN5c19mZGF0YXN5bmMsCQkiZmRhdGFzeW5jIgl9LCAvKiAxNDggKi8KKwl7IDEsCTAsCXN5c19zeXNjdGwsCQkiX3N5c2N0bCIJfSwgLyogMTQ5ICovCisJeyAxLAkwLAlzeXNfbWxvY2ssCQkibWxvY2siCQl9LCAvKiAxNTAgKi8KKwl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sIC8qIDE1MSAqLworCXsgMiwJMCwJc3lzX21sb2NrYWxsLAkJIm1sb2NrYWxsIgl9LCAvKiAxNTIgKi8KKwl7IDEsCTAsCXN5c19tdW5sb2NrYWxsLAkJIm11bmxvY2thbGwiCX0sIC8qIDE1MyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3NldHBhcmFtLAkic2NoZWRfc2V0cGFyYW0ifSwgLyogMTU0ICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSJ9LCAvKiAxNTUgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRzY2hlZHVsZXIsCSJzY2hlZF9zZXRzY2hlZHVsZXIifSwgLyogMTU2ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLAkic2NoZWRfZ2V0c2NoZWR1bGVyIn0sIC8qIDE1NyAqLworCXsgMCwJMCwJc3lzX3NjaGVkX3lpZWxkLAkic2NoZWRfeWllbGQifSwgLyogMTU4ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwic2NoZWRfZ2V0X3ByaW9yaXR5X21heCJ9LCAvKiAxNTkgKi8KKwl7IDEsCTAsCXN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluLCJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIn0sIC8qIDE2MCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sIC8qIDE2MSAqLworCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sIC8qIDE2MiAqLworCXsgNCwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sIC8qIDE2MyAqLworCXsgMywJMCwJc3lzX3NldHJlc3VpZCwJCSJzZXRyZXN1aWQiCX0sIC8qIDE2NCAqLworCXsgMywJMCwJc3lzX2dldHJlc3VpZCwJCSJnZXRyZXN1aWQiCX0sIC8qIDE2NSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxNjYgKi8KKwl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLworCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDE3MCAqLworCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDE3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCisJeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogMTczICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sIC8qIDE3NCAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KKwl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCisKKwl7IDYsCTAsCXN5c19wcmVhZCwJCSJwcmVhZCIJCX0sIC8qIDE4MCAqLworCXsgNiwJMCwJc3lzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE4MSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLworCXsgMiwJMCwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDE4MyAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDE4NCAqLworCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCX0sIC8qIDE4NSAqLworCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiAxODYgKi8KKwl7IDQsCTAsCXN5c19zZW5kZmlsZSwJCSJzZW5kZmlsZSIJfSwgLyogMTg3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OCIJfSwgLyogMTg4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4OSIJfSwgLyogMTg5ICovCisJeyAwLAlUUCwJc3lzX3Zmb3JrLAkJInZmb3JrIgkJfSwgLyogMTkwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiZ2V0cmxpbWl0Igl9LCAvKiAxOTEgKi8KKwl7IDYsCTAsCXN5c19tbWFwLAkJIm1tYXAyIgkJfSwgLyogMTkyICovCisJeyA1LAkwLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiAxOTMgKi8KKwl7IDUsCTAsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCisJeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCisJeyAyLAkwLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0Igl9LCAvKiAxOTcgKi8KKy8qVE9ETyoveyAzLAlURiwJcHJpbnRhcmdzLAkJImxjaG93bjMyIgl9LCAvKiAxOTggKi8KKy8qVE9ETyoveyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dWlkMzIiCX0sIC8qIDE5OSAqLworCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0Z2lkMzIiCX0sIC8qIDIwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGV1aWQzMiIJfSwgLyogMjAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0ZWdpZDMyIgl9LCAvKiAyMDIgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJzZXRyZXVpZDMyIgl9LCAvKiAyMDMgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJzZXRyZWdpZDMyIgl9LCAvKiAyMDQgKi8KKwl7IDIsCTAsCXN5c19nZXRncm91cHMzMiwJImdldGdyb3VwczMyIgl9LCAvKiAyMDUgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMzMiwJInNldGdyb3VwczMyIgl9LCAvKiAyMDYgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJmY2hvd24zMiIJfSwgLyogMjA3ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkic2V0cmVzdWlkMzIiCX0sIC8qIDIwOCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldHJlc3VpZDMyIgl9LCAvKiAyMDkgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJzZXRyZXNnaWQzMiIJfSwgLyogMjEwICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0c2V0Z2lkMzIiCX0sIC8qIDIxMSAqLworCXsgMywJVEYsCXByaW50YXJncywJCSJjaG93bjMyIgl9LCAvKiAyMTIgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXR1aWQzMiIJfSwgLyogMjEzICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0Z2lkMzIiCX0sIC8qIDIxNCAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldGZzdWlkMzIiCX0sIC8qIDIxNSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldGZzZ2lkMzIiCX0sIC8qIDIxNiAqLworCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMjE3ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibWluY29yZSIJfSwgLyogMjE4ICovCisJeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAyMTkgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJnZXRkZW50czY0Igl9LCAvKiAyMjAgKi8KKwl7IDMsCTAsCXN5c19mY250bCwJCSJmY250bDY0Igl9LCAvKiAyMjEgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJTWVNfMjIyIgl9LCAvKiAyMjIgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJTWVNfMjIzIgl9LCAvKiAyMjMgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJTWVNfMjI0Igl9LCAvKiAyMjQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI1Igl9LCAvKiAyMjUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI2Igl9LCAvKiAyMjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI3Igl9LCAvKiAyMjcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI4Igl9LCAvKiAyMjggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjI5Igl9LCAvKiAyMjkgKi8KKworCXsgOCwJMCwJcHJpbnRhcmdzLAkJInNvY2tldF9zdWJjYWxsIn0sIC8qIDIzMCAqLworCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAyMzEgKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogMjMyICovCisJeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMjMzICovCisJeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDIzNCAqLworCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiAyMzUgKi8KKwl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMjM2ICovCisJeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDIzNyAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDIzOCAqLworCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAyMzkgKi8KKwl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMjQwICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDI0MSAqLworCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMjQyICovCisJeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAyNDMgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiAyNDQgKi8KKwl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAyNDUgKi8KKwl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAyNDYgKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiAyNDcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4Igl9LCAvKiAyNDggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5Igl9LCAvKiAyNDkgKi8KKworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNTAgKi8KKwl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAyNTEgKi8KKwl7IDQsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMjUyICovCisJeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDI1MyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNTQgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjU1ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI1NiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNTcgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjU4ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI1OSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNjAgKi8KKwl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJfSwgLyogMjYxICovCisJeyA0LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDI2MiAqLworCXsgNCwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAyNjMgKi8KKwl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogMjY0ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI2NSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNjYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjY3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDI2OCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiAyNjkgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogMjcwICovCisJeyA0LAlUSSwJc3lzX3NobWF0LAkJInNobWF0IgkJfSwgLyogMjcxICovCisJeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMjcyICovCisJeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDI3MyAqLworCXsgNCwJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAyNzQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAyNzUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc2Igl9LCAvKiAyNzYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAyNzcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAyNzggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc5Igl9LCAvKiAyNzkgKi8KKworCXsgOCwJMCwJcHJpbnRhcmdzLAkJInNvY2tldF9zdWJjYWxsIn0sIC8qIDI4MCAqLworCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAvKiAyODEgKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgLyogMjgyICovCisJeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCQkiY29ubmVjdCIJfSwgLyogMjgzICovCisJeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sIC8qIDI4NCAqLworCXsgMywJVE4sCXN5c19hY2NlcHQsCQkiYWNjZXB0Igl9LCAvKiAyODUgKi8KKwl7IDMsCVROLAlzeXNfZ2V0c29ja25hbWUsCSJnZXRzb2NrbmFtZSIJfSwgLyogMjg2ICovCisJeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLAkiZ2V0cGVlcm5hbWUiCX0sIC8qIDI4NyAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkJInNvY2tldHBhaXIiCX0sIC8qIDI4OCAqLworCXsgNCwJVE4sCXN5c19zZW5kLAkJInNlbmQiCQl9LCAvKiAyODkgKi8KKwl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IgkJfSwgLyogMjkwICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDI5MSAqLworCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgLyogMjkyICovCisJeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAvKiAyOTMgKi8KKwl7IDUsCVROLAlzeXNfc2V0c29ja29wdCwJCSJzZXRzb2Nrb3B0Igl9LCAvKiAyOTQgKi8KKwl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJCSJnZXRzb2Nrb3B0Igl9LCAvKiAyOTUgKi8KKwl7IDUsCVROLAlzeXNfc2VuZG1zZywJCSJzZW5kbXNnIgl9LCAvKiAyOTYgKi8KKwl7IDUsCVROLAlzeXNfcmVjdm1zZywJCSJyZWN2bXNnIgl9LCAvKiAyOTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zaDY0L3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9zaDY0L3N5c2NhbGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2RmZTYxCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NoNjQvc3lzY2FsbGVudC5oCkBAIC0wLDAgKzEsMzQ5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsZW50LmgsdiAxLjIgMjAwMy8xMS8xMyAyMjozMjoyOCByb2xhbmQgRXhwICQKKyAqLworCisJeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiCQl9LCAvKiAxICovCisJeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCX0sIC8qIDIgKi8KKwl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCisJeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCisJeyAzLAlURiwJc3lzX29wZW4sCQkib3BlbiIJCX0sIC8qIDUgKi8KKwl7IDEsCTAsCXN5c19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KKwl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJCSJ3YWl0cGlkIgl9LCAvKiA3ICovCisJeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLworCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCisJeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCisJeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDExICovCisJeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLworCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCisJeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duIgl9LCAvKiAxNiAqLworCXsgMCwJMCwJc3lzX2JyZWFrLAkJImJyZWFrIgkJfSwgLyogMTcgKi8KKwl7IDIsCVRGLAlzeXNfb2xkc3RhdCwJCSJvbGRzdGF0Igl9LCAvKiAxOCAqLworCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KKwl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLworCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCisJeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KKwl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLworCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KKwl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLworCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KKwl7IDIsCTAsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJfSwgLyogMjggKi8KKwl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLworCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCisJeyAyLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KKwl7IDIsCTAsCXN5c19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLworCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLworCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCisJeyAwLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQl9LCAvKiAzNSAqLworCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCisJeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDM4ICovCisJeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogMzkgKi8KKwl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MCAqLworCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLworCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCisJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLworCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQ0ICovCisJeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KKwl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0NyAqLworCXsgMywJVFMsCXN5c19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiA0OCAqLworCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDkgKi8KKwl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCisJeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCisJeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLworCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDUzICovCisJeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KKwl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNTYgKi8KKwl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCisJeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNTggKi8KKwl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA1OSAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KKwl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KKwl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCisJeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCisJeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCisJeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCisJeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNjggKi8KKwl7IDEsCVRTLAlzeXNfc2lnc2V0bWFzaywJCSJzaWdzZXRtYXNrIgl9LCAvKiA2OSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA3MCAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA3MSAqLworCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCisJeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KKwl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogNzYgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAvKiA3NyAqLworCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogNzggKi8KKwl7IDIsCTAsCXN5c19zZXR0aW1lb2ZkYXksCSJzZXR0aW1lb2ZkYXkiCX0sIC8qIDc5ICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgLyogODAgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMsCQkic2V0Z3JvdXBzIgl9LCAvKiA4MSAqLworCXsgMSwJMCwJc3lzX29sZHNlbGVjdCwJCSJvbGRzZWxlY3QiCX0sIC8qIDgyICovCisJeyAyLAlURiwJc3lzX3N5bWxpbmssCQkic3ltbGluayIJfSwgLyogODMgKi8KKwl7IDIsCVRGLAlzeXNfb2xkbHN0YXQsCQkib2xkbHN0YXQiCX0sIC8qIDg0ICovCisJeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkJInJlYWRsaW5rIgl9LCAvKiA4NSAqLworCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAvKiA4NiAqLworCXsgMSwJVEYsCXN5c19zd2Fwb24sCQkic3dhcG9uIgl9LCAvKiA4NyAqLworCXsgMywJMCwJc3lzX3JlYm9vdCwJCSJyZWJvb3QiCX0sIC8qIDg4ICovCisJeyAzLAkwLAlzeXNfcmVhZGRpciwJCSJyZWFkZGlyIgl9LCAvKiA4OSAqLworCXsgNiwJMCwJc3lzX29sZF9tbWFwLAkJIm9sZF9tbWFwIgl9LCAvKiA5MCAqLworCXsgMiwJMCwJc3lzX211bm1hcCwJCSJtdW5tYXAiCX0sIC8qIDkxICovCisJeyAyLAlURiwJc3lzX3RydW5jYXRlLAkJInRydW5jYXRlIgl9LCAvKiA5MiAqLworCXsgMiwJMCwJc3lzX2Z0cnVuY2F0ZSwJCSJmdHJ1bmNhdGUiCX0sIC8qIDkzICovCisJeyAyLAkwLAlzeXNfZmNobW9kLAkJImZjaG1vZCIJfSwgLyogOTQgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NSAqLworCXsgMiwJMCwJc3lzX2dldHByaW9yaXR5LAkiZ2V0cHJpb3JpdHkiCX0sIC8qIDk2ICovCisJeyAzLAkwLAlzeXNfc2V0cHJpb3JpdHksCSJzZXRwcmlvcml0eSIJfSwgLyogOTcgKi8KKwl7IDQsCTAsCXN5c19wcm9maWwsCQkicHJvZmlsIgl9LCAvKiA5OCAqLworCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiA5OSAqLworCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCQkiZnN0YXRmcyIJfSwgLyogMTAwICovCisJeyAzLAkwLAlzeXNfaW9wZXJtLAkJImlvcGVybSIJfSwgLyogMTAxICovCisJeyAyLAkwLAlzeXNfc29ja2V0Y2FsbCwJCSJzb2NrZXRjYWxsIgl9LCAvKiAxMDIgKi8KKwl7IDMsCTAsCXN5c19zeXNsb2csCQkic3lzbG9nIgl9LCAvKiAxMDMgKi8KKwl7IDMsCTAsCXN5c19zZXRpdGltZXIsCQkic2V0aXRpbWVyIgl9LCAvKiAxMDQgKi8KKwl7IDIsCTAsCXN5c19nZXRpdGltZXIsCQkiZ2V0aXRpbWVyIgl9LCAvKiAxMDUgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTA2ICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogMTA3ICovCisJeyAyLAkwLAlzeXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAxMDggKi8KKwl7IDEsCTAsCXN5c19vbGR1bmFtZSwJCSJvbGR1bmFtZSIJfSwgLyogMTA5ICovCisJeyAxLAkwLAlzeXNfaW9wbCwJCSJpb3BsIgkJfSwgLyogMTEwICovCisJeyAwLAkwLAlzeXNfdmhhbmd1cCwJCSJ2aGFuZ3VwIgl9LCAvKiAxMTEgKi8KKwl7IDAsCTAsCXN5c19pZGxlLAkJImlkbGUiCQl9LCAvKiAxMTIgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJTWVNfMTEzIgl9LCAvKiAxMTMgKi8KKwl7IDQsCVRQLAlzeXNfd2FpdDQsCQkid2FpdDQiCQl9LCAvKiAxMTQgKi8KKwl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sIC8qIDExNSAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCQkic3lzaW5mbyIJfSwgLyogMTE2ICovCisJeyA1LAkwLAlzeXNfaXBjLAkJImlwYyIJCX0sIC8qIDExNyAqLworCXsgMSwJMCwJc3lzX2ZzeW5jLAkJImZzeW5jIgkJfSwgLyogMTE4ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJCSJzaWdyZXR1cm4iCX0sIC8qIDExOSAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJCSJjbG9uZSIJCX0sIC8qIDEyMCAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAvKiAxMjEgKi8KKwl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEyMiAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIlNZU18xMjMiCX0sIC8qIDEyMyAqLworCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAvKiAxMjQgKi8KKwl7IDMsCTAsCXN5c19tcHJvdGVjdCwJCSJtcHJvdGVjdCIJfSwgLyogMTI1ICovCisJeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLAkic2lncHJvY21hc2siCX0sIC8qIDEyNiAqLworCXsgMiwJMCwJc3lzX2NyZWF0ZV9tb2R1bGUsCSJjcmVhdGVfbW9kdWxlIgl9LCAvKiAxMjcgKi8KKwl7IDIsCTAsCXN5c19pbml0X21vZHVsZSwJImluaXRfbW9kdWxlIgl9LCAvKiAxMjggKi8KKwl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgLyogMTI5ICovCisJeyAxLAkwLAlzeXNfZ2V0X2tlcm5lbF9zeW1zLAkiZ2V0X2tlcm5lbF9zeW1zIn0sIC8qIDEzMCAqLworCXsgNCwJMCwJc3lzX3F1b3RhY3RsLAkJInF1b3RhY3RsIgl9LCAvKiAxMzEgKi8KKwl7IDEsCTAsCXN5c19nZXRwZ2lkLAkJImdldHBnaWQiCX0sIC8qIDEzMiAqLworCXsgMSwJMCwJc3lzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEzMyAqLworCXsgMCwJMCwJc3lzX2JkZmx1c2gsCQkiYmRmbHVzaCIJfSwgLyogMTM0ICovCisJeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiAxMzUgKi8KKwl7IDEsCTAsCXN5c19wZXJzb25hbGl0eSwJInBlcnNvbmFsaXR5Igl9LCAvKiAxMzYgKi8KKwl7IDUsCTAsCXN5c19hZnNfc3lzY2FsbCwJImFmc19zeXNjYWxsIgl9LCAvKiAxMzcgKi8KKwl7IDEsCTAsCXN5c19zZXRmc3VpZCwJCSJzZXRmc3VpZCIJfSwgLyogMTM4ICovCisJeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCQkic2V0ZnNnaWQiCX0sIC8qIDEzOSAqLworCXsgNSwJMCwJc3lzX2xsc2VlaywJCSJfbGxzZWVrIgl9LCAvKiAxNDAgKi8KKwl7IDMsCTAsCXN5c19nZXRkZW50cywJCSJnZXRkZW50cyIJfSwgLyogMTQxICovCisJeyA1LAkwLAlzeXNfc2VsZWN0LAkJInNlbGVjdCIJfSwgLyogMTQyICovCisJeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAvKiAxNDMgKi8KKwl7IDMsCTAsCXN5c19tc3luYywJCSJtc3luYyIJCX0sIC8qIDE0NCAqLworCXsgMywJMCwJc3lzX3JlYWR2LAkJInJlYWR2IgkJfSwgLyogMTQ1ICovCisJeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTQ2ICovCisJeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCisJeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCisJeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLworCXsgMSwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCisJeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KKwl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCisJeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KKwl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KKwl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTY2Igl9LCAvKiAxNjYgKi8KKwl7IDUsCTAsCXN5c19xdWVyeV9tb2R1bGUsCSJxdWVyeV9tb2R1bGUiCX0sIC8qIDE2NyAqLworCXsgMywJMCwJc3lzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDE2OCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJIm5mc3NlcnZjdGwiCX0sIC8qIDE2OSAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sIC8qIDE3MCAqLworCXsgMywJMCwJc3lzX2dldHJlc2dpZCwJCSJnZXRyZXNnaWQiCX0sIC8qIDE3MSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInByY3RsIgkJfSwgLyogMTcyICovCisJeyAxLAlUUywJcHJpbnRhcmdzLAkJInJ0X3NpZ3JldHVybiIJfSwgLyogMTczICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sIC8qIDE3NCAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sIC8qIDE3NSAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgLyogMTc2ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwJInJ0X3NpZ3RpbWVkd2FpdCJ9LCAvKiAxNzcgKi8KKwl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIn0sIC8qIDE3OCAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdzdXNwZW5kLAkicnRfc2lnc3VzcGVuZCIJfSwgLyogMTc5ICovCisJeyA1LAkwLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAvKiAxODAgKi8KKwl7IDUsCTAsCXN5c19wd3JpdGUsCQkicHdyaXRlIgl9LCAvKiAxODEgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24iCQl9LCAvKiAxODIgKi8KKwl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkJImdldGN3ZCIJfSwgLyogMTgzICovCisJeyAyLAkwLAlzeXNfY2FwZ2V0LAkJImNhcGdldCIJfSwgLyogMTg0ICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgLyogMTg1ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sIC8qIDE4NiAqLworCXsgNCwJMCwJc3lzX3NlbmRmaWxlLAkJInNlbmRmaWxlIgl9LCAvKiAxODcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTg4Igl9LCAvKiAxODggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMTg5Igl9LCAvKiAxODkgKi8KKwl7IDAsCVRQLAlzeXNfdmZvcmssCQkidmZvcmsiCQl9LCAvKiAxOTAgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJnZXRybGltaXQiCX0sIC8qIDE5MSAqLworCXsgNiwJMCwJc3lzX21tYXAsCQkibW1hcDIiCQl9LCAvKiAxOTIgKi8KKwl7IDIsCVRGLAlzeXNfdHJ1bmNhdGU2NCwJCSJ0cnVuY2F0ZTY0Igl9LCAvKiAxOTMgKi8KKwl7IDIsCTAsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCisJeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCisJeyAyLAkwLAlzeXNfZnN0YXQ2NCwJCSJmc3RhdDY0Igl9LCAvKiAxOTcgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkibGNob3duMzIiCX0sIC8qIDE5OCAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJCSJnZXR1aWQzMiIJfSwgLyogMTk5ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0Z2lkMzIiCX0sIC8qIDIwMCAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkJImdldGV1aWQzMiIJfSwgLyogMjAxICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0ZWdpZDMyIgl9LCAvKiAyMDIgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJzZXRyZXVpZDMyIgl9LCAvKiAyMDMgKi8KKwl7IDIsCTAsCXByaW50YXJncywJCSJzZXRyZWdpZDMyIgl9LCAvKiAyMDQgKi8KKwl7IDIsCTAsCXN5c19nZXRncm91cHMzMiwJImdldGdyb3VwczMyIgl9LCAvKiAyMDUgKi8KKwl7IDIsCTAsCXN5c19zZXRncm91cHMzMiwJInNldGdyb3VwczMyIgl9LCAvKiAyMDYgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJmY2hvd24zMiIJfSwgLyogMjA3ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkic2V0cmVzdWlkMzIiCX0sIC8qIDIwOCAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkJImdldHJlc3VpZDMyIgl9LCAvKiAyMDkgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJzZXRyZXNnaWQzMiIJfSwgLyogMjEwICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0cmVzZ2lkMzIiCX0sIC8qIDIxMSAqLworCXsgMywJVEYsCXByaW50YXJncywJCSJjaG93bjMyIgl9LCAvKiAyMTIgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXR1aWQzMiIJfSwgLyogMjEzICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0Z2lkMzIiCX0sIC8qIDIxNCAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldGZzdWlkMzIiCX0sIC8qIDIxNSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkJInNldGZzZ2lkMzIiCX0sIC8qIDIxNiAqLworCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMjE3ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibWluY29yZSIJfSwgLyogMjE4ICovCisJeyAzLAkwLAlzeXNfbWFkdmlzZSwJCSJtYWR2aXNlIgl9LCAvKiAyMTkgKi8KKwl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMjIwICovCisJeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDIyMSAqLworCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDIyMiAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAyMjMgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMjI0ICovCisJeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDIyNSAqLworCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAyMjYgKi8KKwl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAyMjcgKi8KKwl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogMjI4ICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sIC8qIDIyOSAqLworCXsgNCwJVE4sCXN5c19yZWN2LAkJInJlY3YiCQl9LCAvKiAyMzAgKi8KKwl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDIzMSAqLworCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMjMyICovCisJeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMjMzICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMjM0ICovCisJeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMjM1ICovCisJeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMjM2ICovCisJeyA0LAlUSSwJc3lzX3NlbW9wLAkJInNlbW9wIgkJfSwgLyogMjM3ICovCisJeyA0LAlUSSwJc3lzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDIzOCAqLworCXsgNCwJVEksCXN5c19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAyMzkgKi8KKwl7IDQsCVRJLAlzeXNfbXNnc25kLAkJIm1zZ3NuZCIJfSwgLyogMjQwICovCisJeyA0LAlUSSwJc3lzX21zZ3JjdiwJCSJtc2dyY3YiCX0sIC8qIDI0MSAqLworCXsgNCwJVEksCXN5c19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAyNDIgKi8KKwl7IDQsCVRJLAlzeXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogMjQzICovCisJeyA0LAlUSSwJc3lzX3NobWF0LAkJInNobWF0IgkJfSwgLyogMjQ0ICovCisJeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgLyogMjQ1ICovCisJeyA0LAlUSSwJc3lzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDI0NiAqLworCXsgNCwJVEksCXN5c19zaG1jdGwsCQkic2htY3RsIgl9LCAvKiAyNDcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4Igl9LCAvKiAyNDggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5Igl9LCAvKiAyNDkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjUwIgl9LCAvKiAyNTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjUxIgl9LCAvKiAyNTEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjUyIgl9LCAvKiAyNTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjUzIgl9LCAvKiAyNTMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU0Igl9LCAvKiAyNTQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU1Igl9LCAvKiAyNTUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU2Igl9LCAvKiAyNTYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU3Igl9LCAvKiAyNTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU4Igl9LCAvKiAyNTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjU5Igl9LCAvKiAyNTkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYwIgl9LCAvKiAyNjAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYxIgl9LCAvKiAyNjEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYyIgl9LCAvKiAyNjIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgl9LCAvKiAyNjMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY0Igl9LCAvKiAyNjQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY1Igl9LCAvKiAyNjUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY2Igl9LCAvKiAyNjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY3Igl9LCAvKiAyNjcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY4Igl9LCAvKiAyNjggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjY5Igl9LCAvKiAyNjkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgl9LCAvKiAyNzAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcxIgl9LCAvKiAyNzEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgl9LCAvKiAyNzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgl9LCAvKiAyNzMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc0Igl9LCAvKiAyNzQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAyNzUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc2Igl9LCAvKiAyNzYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAyNzcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAyNzggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjc5Igl9LCAvKiAyNzkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgl9LCAvKiAyODAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgl9LCAvKiAyODEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgl9LCAvKiAyODIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgl9LCAvKiAyODMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg0Igl9LCAvKiAyODQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg1Igl9LCAvKiAyODUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAyODYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAyODcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg4Igl9LCAvKiAyODggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAyODkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAyOTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgl9LCAvKiAyOTEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAyOTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAyOTMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk0Igl9LCAvKiAyOTQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAyOTUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAyOTYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk3Igl9LCAvKiAyOTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KKwl7IDgsCTAsCXByaW50YXJncywJCSJzb2NrZXRfc3ViY2FsbCJ9LCAvKiAzMDAgKi8KKwl7IDMsCVROLAlzeXNfc29ja2V0LAkJInNvY2tldCIJfSwgLyogMzAxICovCisJeyAzLAlUTiwJc3lzX2JpbmQsCQkiYmluZCIJCX0sIC8qIDMwMiAqLworCXsgMywJVE4sCXN5c19jb25uZWN0LAkJImNvbm5lY3QiCX0sIC8qIDMwMyAqLworCXsgMiwJVE4sCXN5c19saXN0ZW4sCQkibGlzdGVuIgl9LCAvKiAzMDQgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgLyogMzA1ICovCisJeyAzLAlUTiwJc3lzX2dldHNvY2tuYW1lLAkiZ2V0c29ja25hbWUiCX0sIC8qIDMwNiAqLworCXsgMywJVE4sCXN5c19nZXRwZWVybmFtZSwJImdldHBlZXJuYW1lIgl9LCAvKiAzMDcgKi8KKwl7IDQsCVROLAlzeXNfc29ja2V0cGFpciwJCSJzb2NrZXRwYWlyIgl9LCAvKiAzMDggKi8KKwl7IDQsCVROLAlzeXNfc2VuZCwJCSJzZW5kIgkJfSwgLyogMzA5ICovCisJeyA0LAlUTiwJc3lzX3JlY3YsCQkicmVjdiIJCX0sIC8qIDMxMCAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIgl9LCAvKiAzMTEgKi8KKwl7IDYsCVROLAlzeXNfcmVjdmZyb20sCQkicmVjdmZyb20iCX0sIC8qIDMxMiAqLworCXsgMiwJVE4sCXN5c19zaHV0ZG93biwJCSJzaHV0ZG93biIJfSwgLyogMzEzICovCisJeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgLyogMzE0ICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgLyogMzE1ICovCisJeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgLyogMzE2ICovCisJeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgLyogMzE3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDMxOCAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NpZ25hbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMmY3NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc2lnbmFsZW50LmgKQEAgLTAsMCArMSwzMyBAQAorCSJTSUdfMCIsCS8qIDAgKi8KKwkiU0lHSFVQIiwJLyogMSAqLworCSJTSUdJTlQiLAkvKiAyICovCisJIlNJR1FVSVQiLAkvKiAzICovCisJIlNJR0lMTCIsCS8qIDQgKi8KKwkiU0lHVFJBUCIsCS8qIDUgKi8KKwkiU0lHQUJSVCIsCS8qIDYgKi8KKwkiU0lHQlVTIiwJLyogNyAqLworCSJTSUdGUEUiLAkvKiA4ICovCisJIlNJR0tJTEwiLAkvKiA5ICovCisJIlNJR1VTUjEiLAkvKiAxMCAqLworCSJTSUdTRUdWIiwJLyogMTEgKi8KKwkiU0lHVVNSMiIsCS8qIDEyICovCisJIlNJR1BJUEUiLAkvKiAxMyAqLworCSJTSUdBTFJNIiwJLyogMTQgKi8KKwkiU0lHVEVSTSIsCS8qIDE1ICovCisJIlNJR1NUS0ZMVCIsCS8qIDE2ICovCisJIlNJR0NITEQiLAkvKiAxNyAqLworCSJTSUdDT05UIiwJLyogMTggKi8KKwkiU0lHU1RPUCIsCS8qIDE5ICovCisJIlNJR1RTVFAiLAkvKiAyMCAqLworCSJTSUdUVElOIiwJLyogMjEgKi8KKwkiU0lHVFRPVSIsCS8qIDIyICovCisJIlNJR1VSRyIsCS8qIDIzICovCisJIlNJR1hDUFUiLAkvKiAyNCAqLworCSJTSUdYRlNaIiwJLyogMjUgKi8KKwkiU0lHVlRBTFJNIiwJLyogMjYgKi8KKwkiU0lHUFJPRiIsCS8qIDI3ICovCisJIlNJR1dJTkNIIiwJLyogMjggKi8KKwkiU0lHSU8iLAkvKiAyOSAqLworCSJTSUdQV1IiLAkvKiAzMCAqLworCSJTSUdTWVMiLAkvKiAzMSAqLworCSJTSUdSVE1JTiIsCS8qIDMyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvZHVtbXkyLmggYi9zdHJhY2UvbGludXgvc3BhcmMvZHVtbXkyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzljNzc1MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYy9kdW1teTIuaApAQCAtMCwwICsxLDI4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogZHVtbXkyLmgsdiAxLjEuMS4xIDE5OTkvMDIvMTkgMDA6MjM6MDkgd2ljaGVydCBFeHAgJAorICovCisKKy8qIHN0aWxsIHVuZmluaXNoZWQgKi8KKworI2RlZmluZSBzb2xhcmlzX3N5c21wIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NnaW5hcCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZ2lrb3B0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c21pcHMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncmV0dXJuIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3JlY3Ztc2cgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2VuZG1zZyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19uZnNzdmMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfZ2V0ZmggcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfYXN5bmNfZGFlbW9uIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2V4cG9ydGZzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX0JTRF9nZXRpbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3Byb2MgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcHJvY2JsayBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zcHJvY3NwIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX21zeW5jIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX21hZHZpc2UgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcGFnZWxvY2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcXVvdGFjdGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfY2FjaGVmbHVzaCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19jYWNoZWN0bCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19udW5hbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncG9sbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zd2FwY3RsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ3N0YWNrIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ3NlbmRzZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcHJpb2NudGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfa3NpZ3F1ZXVlIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2x3cF9zZW1hX3dhaXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbWVtY250bCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNjYWxsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2Nsb2NhbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNzdW4gcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3lzaTg2IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c21hY2hpbmUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcGxvY2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcGF0aGNvbmYgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lndGltZWR3YWl0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3VsaW1pdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wdHJhY2UgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3R0eSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfaW5mbyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wcmlvY250bHN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19ocnRzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfeGVuaXggcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3RhdGZzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZzdGF0ZnMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3RhdHZmcyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mc3RhdHZmcyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mb3JrMSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdzZW5kc3lzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2d0dHkgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdnRyYWNlIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZwYXRoY29uZiBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19ldnN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hY2N0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2V4ZWMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3NlbWFfcG9zdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19uZnNzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnYWx0c3RhY2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdWFkbWluIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3Vtb3VudCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19tb2RjdGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfYWNhbmNlbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hc3luYyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19ldnRyYXByZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX2NyZWF0ZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfZXhpdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3Bfc3VzcGVuZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfY29udGludWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX2tpbGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3NlbGYgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3NldHByaXZhdGUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX2dldHByaXZhdGUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3dhaXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX211dGV4X3VubG9jayBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfbXV0ZXhfbG9jayBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfY29uZF93YWl0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2x3cF9jb25kX3NpZ25hbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfY29uZF9icm9hZGNhc3QgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbGxzZWVrIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2luc3Rfc3luYyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hdWRpdHN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wcm9jZXNzb3JfYmluZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wcm9jZXNzb3JfaW5mbyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wX29ubGluZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdxdWV1ZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19jbG9ja19nZXR0aW1lIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2Nsb2NrX3NldHRpbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfY2xvY2tfZ2V0cmVzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX25hbm9zbGVlcCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc190aW1lcl9jcmVhdGUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdGltZXJfZGVsZXRlIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3RpbWVyX3NldHRpbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdGltZXJfZ2V0dGltZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc190aW1lcl9nZXRvdmVycnVuIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ25hbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdzZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnaG9sZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdyZWxzZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdpZ25vcmUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncGF1c2UgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbXNnY3RsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX21zZ2dldCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19tc2dyY3YgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbXNnc25kIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NobWF0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NobWN0bCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaG1kdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaG1nZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2VtY3RsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NlbWdldCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZW1vcCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19vbGR1bmFtZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc191c3RhdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mdXNlcnMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3lzZnMxIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c2ZzMiBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNmczMgcHJpbnRhcmdzCisKKy8qIGxpa2UgYW5vdGhlciBjYWxsICovCisjZGVmaW5lIHNvbGFyaXNfbGNob3duIHNvbGFyaXNfY2hvd24KKyNkZWZpbmUgc29sYXJpc19zZXR1aWQgc29sYXJpc19jbG9zZQorI2RlZmluZSBzb2xhcmlzX3NldGV1aWQgc29sYXJpc19jbG9zZQorI2RlZmluZSBzb2xhcmlzX3NldGdpZCBzb2xhcmlzX2Nsb3NlCisjZGVmaW5lIHNvbGFyaXNfc2V0ZWdpZCBzb2xhcmlzX2Nsb3NlCisjZGVmaW5lIHNvbGFyaXNfdmhhbmd1cCBzb2xhcmlzX2Nsb3NlCisjZGVmaW5lIHNvbGFyaXNfZmRzeW5jIHNvbGFyaXNfY2xvc2UKKyNkZWZpbmUgc29sYXJpc19zaWdmaWxsc2V0IHNvbGFyaXNfc2lncGVuZGluZworI2RlZmluZSBzb2xhcmlzX3Zmb3JrIHNvbGFyaXNfZm9yaworI2RlZmluZSBzb2xhcmlzX2tzaWdhY3Rpb24gc29sYXJpc19zaWdhY3Rpb24KKyNkZWZpbmUgc29sYXJpc19CU0RnZXRwZ3JwIHNvbGFyaXNfZ2V0cGdycAorI2RlZmluZSBzb2xhcmlzX0JTRHNldHBncnAgc29sYXJpc19zZXRwZ3JwCisjZGVmaW5lIHNvbGFyaXNfd2FpdHN5cyBzb2xhcmlzX3dhaXRpZAorCisvKiBwcmludGFyZ3MgZG9lcyB0aGUgcmlnaHQgdGhpbmcgKi8KKyNkZWZpbmUgc29sYXJpc19zeW5jIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3Byb2ZpbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc195aWVsZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wYXVzZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZXRob3N0aWQgcHJpbnRhcmdzCisKKy8qIHN1YmZ1bmN0aW9uIGVudHJ5IHBvaW50cyAqLworI2RlZmluZSBzb2xhcmlzX3BncnBzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnY2FsbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19tc2dzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2htc3lzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NlbXN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc191dHNzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3lzZnMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3BjYWxsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2NvbnRleHQgcHJpbnRhcmdzCisKKy8qIHNhbWUgYXMgbGludXggKi8KKyNkZWZpbmUgc29sYXJpc19leGl0IHN5c19leGl0CisjZGVmaW5lIHNvbGFyaXNfZm9yayBzeXNfZm9yaworI2RlZmluZSBzb2xhcmlzX3JlYWQgc3lzX3JlYWQKKyNkZWZpbmUgc29sYXJpc193cml0ZSBzeXNfd3JpdGUKKyNkZWZpbmUgc29sYXJpc19jbG9zZSBzeXNfY2xvc2UKKyNkZWZpbmUgc29sYXJpc19jcmVhdCBzeXNfY3JlYXQKKyNkZWZpbmUgc29sYXJpc19saW5rIHN5c19saW5rCisjZGVmaW5lIHNvbGFyaXNfdW5saW5rIHN5c191bmxpbmsKKyNkZWZpbmUgc29sYXJpc19jaGRpciBzeXNfY2hkaXIKKyNkZWZpbmUgc29sYXJpc190aW1lIHN5c190aW1lCisjZGVmaW5lIHNvbGFyaXNfY2htb2Qgc3lzX2NobW9kCisjZGVmaW5lIHNvbGFyaXNfbHNlZWsgc3lzX2xzZWVrCisjZGVmaW5lIHNvbGFyaXNfc3RpbWUgc3lzX3N0aW1lCisjZGVmaW5lIHNvbGFyaXNfYWxhcm0gc3lzX2FsYXJtCisjZGVmaW5lIHNvbGFyaXNfdXRpbWUgc3lzX3V0aW1lCisjZGVmaW5lIHNvbGFyaXNfYWNjZXNzIHN5c19hY2Nlc3MKKyNkZWZpbmUgc29sYXJpc19uaWNlIHN5c19uaWNlCisjZGVmaW5lIHNvbGFyaXNfZHVwIHN5c19kdXAKKyNkZWZpbmUgc29sYXJpc19waXBlIHN5c19waXBlCisjZGVmaW5lIHNvbGFyaXNfdGltZXMgc3lzX3RpbWVzCisjZGVmaW5lIHNvbGFyaXNfZXhlY3ZlIHN5c19leGVjdmUKKyNkZWZpbmUgc29sYXJpc191bWFzayBzeXNfdW1hc2sKKyNkZWZpbmUgc29sYXJpc19jaHJvb3Qgc3lzX2Nocm9vdAorI2RlZmluZSBzb2xhcmlzX3JtZGlyIHN5c19ybWRpcgorI2RlZmluZSBzb2xhcmlzX21rZGlyIHN5c19ta2RpcgorI2RlZmluZSBzb2xhcmlzX2dldGRlbnRzIHN5c19nZXRkZW50cworI2RlZmluZSBzb2xhcmlzX3BvbGwgc3lzX3BvbGwKKyNkZWZpbmUgc29sYXJpc19zeW1saW5rIHN5c19zeW1saW5rCisjZGVmaW5lIHNvbGFyaXNfcmVhZGxpbmsgc3lzX3JlYWRsaW5rCisjZGVmaW5lIHNvbGFyaXNfc2V0Z3JvdXBzIHN5c19zZXRncm91cHMKKyNkZWZpbmUgc29sYXJpc19nZXRncm91cHMgc3lzX2dldGdyb3VwcworI2RlZmluZSBzb2xhcmlzX2ZjaG1vZCBzeXNfZmNobW9kCisjZGVmaW5lIHNvbGFyaXNfZmNob3duIHN5c19mY2hvd24KKyNkZWZpbmUgc29sYXJpc19tcHJvdGVjdCBzeXNfbXByb3RlY3QKKyNkZWZpbmUgc29sYXJpc19tdW5tYXAgc3lzX211bm1hcAorI2RlZmluZSBzb2xhcmlzX3JlYWR2IHN5c19yZWFkdgorI2RlZmluZSBzb2xhcmlzX3dyaXRldiBzeXNfd3JpdGV2CisjZGVmaW5lIHNvbGFyaXNfY2hvd24gc3lzX2Nob3duCisjZGVmaW5lIHNvbGFyaXNfcmVuYW1lIHN5c19yZW5hbWUKKyNkZWZpbmUgc29sYXJpc19nZXR0aW1lb2ZkYXkgc3lzX2dldHRpbWVvZmRheQorI2RlZmluZSBzb2xhcmlzX2dldGl0aW1lciBzeXNfZ2V0aXRpbWVyCisjZGVmaW5lIHNvbGFyaXNfc2V0aXRpbWVyIHN5c19zZXRpdGltZXIKKyNkZWZpbmUgc29sYXJpc19icmsgc3lzX2JyaworI2RlZmluZSBzb2xhcmlzX21tYXAgc3lzX21tYXAKKyNkZWZpbmUgc29sYXJpc19nZXRzaWQgc3lzX2dldHNpZAorI2RlZmluZSBzb2xhcmlzX3NldHNpZCBzeXNfc2V0c2lkCisjZGVmaW5lIHNvbGFyaXNfZ2V0cGdpZCBzeXNfZ2V0cGdpZAorI2RlZmluZSBzb2xhcmlzX3NldHBnaWQgc3lzX3NldHBnaWQKKyNkZWZpbmUgc29sYXJpc19nZXRwZ3JwIHN5c19nZXRwZ3JwCisKKy8qIFRoZXNlIGFyZSBoYW5kbGVkIGFjY29yZGluZyB0byBjdXJyZW50X3BlcnNvbmFsaXR5ICovCisjZGVmaW5lIHNvbGFyaXNfeHN0YXQgc3lzX3hzdGF0CisjZGVmaW5lIHNvbGFyaXNfZnhzdGF0IHN5c19meHN0YXQKKyNkZWZpbmUgc29sYXJpc19seHN0YXQgc3lzX2x4c3RhdAorI2RlZmluZSBzb2xhcmlzX3hta25vZCBzeXNfeG1rbm9kCisjZGVmaW5lIHNvbGFyaXNfc3RhdCBzeXNfc3RhdAorI2RlZmluZSBzb2xhcmlzX2ZzdGF0IHN5c19mc3RhdAorI2RlZmluZSBzb2xhcmlzX2xzdGF0IHN5c19sc3RhdAorI2RlZmluZSBzb2xhcmlzX3ByZWFkIHN5c19wcmVhZAorI2RlZmluZSBzb2xhcmlzX3B3cml0ZSBzeXNfcHdyaXRlCisjZGVmaW5lIHNvbGFyaXNfaW9jdGwgc3lzX2lvY3RsCisjZGVmaW5lIHNvbGFyaXNfbWtub2Qgc3lzX21rbm9kCisKKy8qIFRvIGJlIGRvbmUgKi8KKyNkZWZpbmUgc29sYXJpc19tb3VudCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNpbmZvIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c2NvbmZpZyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19nZXRwbXNnIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3B1dHBtc2cgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfd2FpdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc193YWl0aWQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnc3VzcGVuZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZXRwZ3JwIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2dldGNvbnRleHQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2V0Y29udGV4dCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19nZXRwaWQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfZ2V0dWlkIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2tpbGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfZ2V0Z2lkIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZjbnRsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2dldG1zZyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wdXRtc2cgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncHJvY21hc2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnYWN0aW9uIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ3BlbmRpbmcgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbWluY29yZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mY2hkaXIgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2V0cmxpbWl0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2dldHJsaW1pdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc191bmFtZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hZGp0aW1lIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZjaHJvb3QgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdXRpbWVzIHByaW50YXJncworCisjaWYgRE9ORQorI2RlZmluZSBzb2xhcmlzX29wZW4gcHJpbnRhcmdzCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9lcnJub2VudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL2Vycm5vZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI0MzY5OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYy9lcnJub2VudC5oCkBAIC0wLDAgKzEsMTI3IEBACisJIkVSUk5PXzAiLCAvKiAwICovCisJIkVQRVJNIiwgLyogMSAqLworCSJFTk9FTlQiLCAvKiAyICovCisJIkVTUkNIIiwgLyogMyAqLworCSJFSU5UUiIsIC8qIDQgKi8KKwkiRUlPIiwgLyogNSAqLworCSJFTlhJTyIsIC8qIDYgKi8KKwkiRTJCSUciLCAvKiA3ICovCisJIkVOT0VYRUMiLCAvKiA4ICovCisJIkVCQURGIiwgLyogOSAqLworCSJFQ0hJTEQiLCAvKiAxMCAqLworCSJFQUdBSU4iLCAvKiAxMSAqLworCSJFTk9NRU0iLCAvKiAxMiAqLworCSJFQUNDRVMiLCAvKiAxMyAqLworCSJFRkFVTFQiLCAvKiAxNCAqLworCSJFTk9UQkxLIiwgLyogMTUgKi8KKwkiRUJVU1kiLCAvKiAxNiAqLworCSJFRVhJU1QiLCAvKiAxNyAqLworCSJFWERFViIsIC8qIDE4ICovCisJIkVOT0RFViIsIC8qIDE5ICovCisJIkVOT1RESVIiLCAvKiAyMCAqLworCSJFSVNESVIiLCAvKiAyMSAqLworCSJFSU5WQUwiLCAvKiAyMiAqLworCSJFTkZJTEUiLCAvKiAyMyAqLworCSJFTUZJTEUiLCAvKiAyNCAqLworCSJFTk9UVFkiLCAvKiAyNSAqLworCSJFVFhUQlNZIiwgLyogMjYgKi8KKwkiRUZCSUciLCAvKiAyNyAqLworCSJFTk9TUEMiLCAvKiAyOCAqLworCSJFU1BJUEUiLCAvKiAyOSAqLworCSJFUk9GUyIsIC8qIDMwICovCisJIkVNTElOSyIsIC8qIDMxICovCisJIkVQSVBFIiwgLyogMzIgKi8KKwkiRURPTSIsIC8qIDMzICovCisJIkVSQU5HRSIsIC8qIDM0ICovCisJIkVXT1VMREJMT0NLIiwgLyogMzUgKi8KKwkiRUlOUFJPR1JFU1MiLCAvKiAzNiAqLworCSJFQUxSRUFEWSIsIC8qIDM3ICovCisJIkVOT1RTT0NLIiwgLyogMzggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogMzkgKi8KKwkiRU1TR1NJWkUiLCAvKiA0MCAqLworCSJFUFJPVE9UWVBFIiwgLyogNDEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA0MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA0MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA0NCAqLworCSJFT1BOT1RTVVBQIiwgLyogNDUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogNDYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogNDcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDQ4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA0OSAqLworCSJFTkVURE9XTiIsIC8qIDUwICovCisJIkVORVRVTlJFQUNIIiwgLyogNTEgKi8KKwkiRU5FVFJFU0VUIiwgLyogNTIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogNTMgKi8KKwkiRUNPTk5SRVNFVCIsIC8qIDU0ICovCisJIkVOT0JVRlMiLCAvKiA1NSAqLworCSJFSVNDT05OIiwgLyogNTYgKi8KKwkiRU5PVENPTk4iLCAvKiA1NyAqLworCSJFU0hVVERPV04iLCAvKiA1OCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiA1OSAqLworCSJFVElNRURPVVQiLCAvKiA2MCAqLworCSJFQ09OTlJFRlVTRUQiLCAvKiA2MSAqLworCSJFTE9PUCIsIC8qIDYyICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDYzICovCisJIkVIT1NURE9XTiIsIC8qIDY0ICovCisJIkVIT1NUVU5SRUFDSCIsIC8qIDY1ICovCisJIkVOT1RFTVBUWSIsIC8qIDY2ICovCisJIkVQUk9DTElNIiwgLyogNjcgKi8KKwkiRVVTRVJTIiwgLyogNjggKi8KKwkiRURRVU9UIiwgLyogNjkgKi8KKwkiRVNUQUxFIiwgLyogNzAgKi8KKwkiRVJFTU9URSIsIC8qIDcxICovCisJIkVOT1NUUiIsIC8qIDcyICovCisJIkVUSU1FIiwgLyogNzMgKi8KKwkiRU5PU1IiLCAvKiA3NCAqLworCSJFTk9NU0ciLCAvKiA3NSAqLworCSJFQkFETVNHIiwgLyogNzYgKi8KKwkiRUlEUk0iLCAvKiA3NyAqLworCSJFREVBRExLIiwgLyogNzggKi8KKwkiRU5PTENLIiwgLyogNzkgKi8KKwkiRU5PTkVUIiwgLyogODAgKi8KKwkiRVJSRU1PVEUiLCAvKiA4MSAqLworCSJFTk9MSU5LIiwgLyogODIgKi8KKwkiRUFEViIsIC8qIDgzICovCisJIkVTUk1OVCIsIC8qIDg0ICovCisJIkVDT01NIiwgLyogODUgKi8KKwkiRVBST1RPIiwgLyogODYgKi8KKwkiRU1VTFRJSE9QIiwgLyogODcgKi8KKwkiRURPVERPVCIsIC8qIDg4ICovCisJIkVSRU1DSEciLCAvKiA4OSAqLworCSJFTk9TWVMiLCAvKiA5MCAqLworCSJFU1RSUElQRSIsIC8qIDkxICovCisJIkVPVkVSRkxPVyIsIC8qIDkyICovCisJIkVCQURGRCIsIC8qIDkzICovCisJIkVDSFJORyIsIC8qIDk0ICovCisJIkVMMk5TWU5DIiwgLyogOTUgKi8KKwkiRUwzSExUIiwgLyogOTYgKi8KKwkiRUwzUlNUIiwgLyogOTcgKi8KKwkiRUxOUk5HIiwgLyogOTggKi8KKwkiRVVOQVRDSCIsIC8qIDk5ICovCisJIkVOT0NTSSIsIC8qIDEwMCAqLworCSJFTDJITFQiLCAvKiAxMDEgKi8KKwkiRUJBREUiLCAvKiAxMDIgKi8KKwkiRUJBRFIiLCAvKiAxMDMgKi8KKwkiRVhGVUxMIiwgLyogMTA0ICovCisJIkVOT0FOTyIsIC8qIDEwNSAqLworCSJFQkFEUlFDIiwgLyogMTA2ICovCisJIkVCQURTTFQiLCAvKiAxMDcgKi8KKwkiRURFQURMT0NLIiwgLyogMTA4ICovCisJIkVCRk9OVCIsIC8qIDEwOSAqLworCSJFTElCRVhFQyIsIC8qIDExMCAqLworCSJFTk9EQVRBIiwgLyogMTExICovCisJIkVMSUJCQUQiLCAvKiAxMTIgKi8KKwkiRU5PUEtHIiwgLyogMTEzICovCisJIkVMSUJBQ0MiLCAvKiAxMTQgKi8KKwkiRU5PVFVOSVEiLCAvKiAxMTUgKi8KKwkiRVJFU1RBUlQiLCAvKiAxMTYgKi8KKwkiRVVDTEVBTiIsIC8qIDExNyAqLworCSJFTk9UTkFNIiwgLyogMTE4ICovCisJIkVOQVZBSUwiLCAvKiAxMTkgKi8KKwkiRUlTTkFNIiwgLyogMTIwICovCisJIkVSRU1PVEVJTyIsIC8qIDEyMSAqLworCSJFSUxTRVEiLCAvKiAxMjIgKi8KKwkiRUxJQk1BWCIsIC8qIDEyMyAqLworCSJFTElCU0NOIiwgLyogMTI0ICovCisJIkVOT01FRElVTSIsIC8qIDEyNSAqLworCSJFTUVESVVNVFlQRSIsIC8qIDEyNiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL2Vycm5vZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL2Vycm5vZW50MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkNzUwYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmMvZXJybm9lbnQxLmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIi4uL3N2cjQvZXJybm9lbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9nZW4ucGwgYi9zdHJhY2UvbGludXgvc3BhcmMvZ2VuLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMzIwZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmMvZ2VuLnBsCkBAIC0wLDAgKzEsMzggQEAKK29wZW4gU1BBUkMsICJzeXNjYWxsZW50LmgiIHx8IGRpZSAibm8gcHVlZG8gYWJyaXIgZWwgZGUgbGEgc3BhcmMiOworb3BlbiBBTFBIQSwgIi4uL2FscGhhL3N5c2NhbGxlbnQuaCIgfHwgZGllICJubyBwdWVkbyBhYnJpciBlbCBkZSBsYSBhbHBoYSI7CitvcGVuIFBDLCAiLi4vc3lzY2FsbGVudC5oIiB8fCBkaWUgIm5vIHB1ZWRvIGFicmlyIFBDXG4iOworCit3aGlsZSAoPFNQQVJDPikgeworICAgIGNob3A7CisgICAgKCRpMSwgJGkyLCAkaTMsICRzeXNjYWxsLCAkc3lzY2FsbF9uYW1lKSA9IHNwbGl0OworICAgICRzdHJuWyRpbmRleF0gICA9ICRzeXNjYWxsX25hbWU7CisgICAgJG5hbWVbJGluZGV4KytdID0gJHN5c2NhbGw7Cit9CisKK3doaWxlICg8QUxQSEE+KXsKKyAgICBpZiAoL1x7LykgeworCSgkaTEsICRuLCAkcHIsICRzeXNjYWxsKSA9IHNwbGl0OworCSRwYXJ7JHN5c2NhbGx9ID0gJG47CisJJHBycnskc3lzY2FsbH0gPSAkcHI7CisgICAgfQorfQorCit3aGlsZSAoPFBDPil7CisgICAgaWYgKC9cey8pIHsKKwkoJGkxLCAkbiwgJHByLCAkc3lzY2FsbCkgPSBzcGxpdDsKKwkkcGFyeyRzeXNjYWxsfSA9ICRuOworCSRwcnJ7JHN5c2NhbGx9ID0gJHByOworICAgIH0KK30KKworcHJpbnQgIm1pc3NpbmcgXG4iOworCitmb3IgKCRpID0gMDsgJGkgPCAkaW5kZXg7ICRpKyspeworICAgICR4ID0gJG5hbWVbJGldOworICAgICR5ID0gJHN0cm5bJGldOworICAgICRuID0gJHBhcnskeH07CisgICAgJHAgPSAkcHJyeyR4fTsKKyAgICAkaisrOworICAgIHByaW50ICJcdHsgJG5cdCRwXHQkeFx0JHkgfSxcdCAvKiAkaiAqL1xuIjsKK30KKwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL2lvY3RsZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmMvaW9jdGxlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWQ2YjhhCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NwYXJjL2lvY3RsZW50LmgKQEAgLTAsMCArMSw4MzggQEAKKwl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAorCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAorCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAorCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAorCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCisJeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAorCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAorCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAorCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCisJeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAorCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NTQwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDU0MDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDU0MDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDU0MDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NTQwOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg1NDBhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDU0MGJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDU0MGZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NTQxMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDU0MTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDU0MTN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDU0MTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDU0MWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NTQyMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDU0NTB9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDU0NTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg1NDUyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCisJeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCisJeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCisJeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKKwl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAorCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAorCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCisJeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCisJeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKKwl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAorCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAorCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKKwl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAorCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAorCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAorCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmMvaW9jdGxlbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmMvaW9jdGxlbnQxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ1MzZjZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYy9pb2N0bGVudDEuaApAQCAtMCwwICsxIEBACisjaW5jbHVkZSAiLi4vc3ZyNC9pb2N0bGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3NpZ25hbGVudC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3NpZ25hbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNTliNWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50LmgKQEAgLTAsMCArMSwzMiBAQAorCSJTSUdfMCIsCS8qIDAgKi8KKwkiU0lHSFVQIiwJLyogMSAqLworCSJTSUdJTlQiLAkvKiAyICovCisJIlNJR1FVSVQiLAkvKiAzICovCisJIlNJR0lMTCIsCS8qIDQgKi8KKwkiU0lHVFJBUCIsCS8qIDUgKi8KKwkiU0lHQUJSVCIsCS8qIDYgKi8KKwkiU0lHRU1UIiwJLyogNyAqLworCSJTSUdGUEUiLAkvKiA4ICovCisJIlNJR0tJTEwiLAkvKiA5ICovCisJIlNJR0JVUyIsCS8qIDEwICovCisJIlNJR1NFR1YiLAkvKiAxMSAqLworCSJTSUdTWVMiLAkvKiAxMiAqLworCSJTSUdQSVBFIiwJLyogMTMgKi8KKwkiU0lHQUxSTSIsCS8qIDE0ICovCisJIlNJR1RFUk0iLAkvKiAxNSAqLworCSJTSUdVUkciLAkvKiAxNiAqLworCSJTSUdTVE9QIiwJLyogMTcgKi8KKwkiU0lHVFNUUCIsCS8qIDE4ICovCisJIlNJR0NPTlQiLAkvKiAxOSAqLworCSJTSUdDSExEIiwJLyogMjAgKi8KKwkiU0lHVFRJTiIsCS8qIDIxICovCisJIlNJR1RUT1UiLAkvKiAyMiAqLworCSJTSUdJTyIsCS8qIDIzICovCisJIlNJR1hDUFUiLAkvKiAyNCAqLworCSJTSUdYRlNaIiwJLyogMjUgKi8KKwkiU0lHVlRBTFJNIiwJLyogMjYgKi8KKwkiU0lHUFJPRiIsCS8qIDI3ICovCisJIlNJR1dJTkNIIiwJLyogMjggKi8KKwkiU0lHTE9TVCIsCS8qIDI5ICovCisJIlNJR1VTUjEiLAkvKiAzMCAqLworCSJTSUdVU1IyIiwJLyogMzEgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zaWduYWxlbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZTdhMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmMvc2lnbmFsZW50MS5oCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICIuLi9zdnI0L3NpZ25hbGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwuaCBiL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI1OTg0MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmgKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTEsIDE5OTIgUGF1bCBLcmFuZW5idXJnIDxwa0Bjcy5mZXcuZXVyLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsLmgsdiAxLjEwIDIwMDUvMDIvMDIgMjA6MzI6MTMgcm9sYW5kIEV4cCAkCisgKi8KKyNpbmNsdWRlICJkdW1teS5oIgorCitpbnQJc3lzX25vc3lzKCk7CitpbnQJc3lzX251bGxzeXMoKTsKK2ludAlzeXNfZXJyc3lzKCk7CisKKy8qIDEuMSBwcm9jZXNzZXMgYW5kIHByb3RlY3Rpb24gKi8KK2ludAlzeXNfZ2V0aG9zdGlkKCksc3lzX3NldGhvc3RuYW1lKCksc3lzX2dldGhvc3RuYW1lKCksc3lzX2dldHBpZCgpOworaW50CXN5c19zZXRkb21haW5uYW1lKCksc3lzX2dldGRvbWFpbm5hbWUoKTsKK2ludAlzeXNfZm9yaygpLHN5c19jbG9uZSgpLHN5c19leGl0KCksc3lzX2V4ZWN2KCksc3lzX2V4ZWN2ZSgpLHN5c193YWl0NCgpLHN5c193YWl0cGlkKCk7CitpbnQJc3lzX3NldHVpZCgpLHN5c19zZXRnaWQoKSxzeXNfZ2V0dWlkKCksc3lzX3NldHJldWlkKCksc3lzX2dldGdpZCgpLHN5c19nZXRncm91cHMoKSxzeXNfc2V0cmVnaWQoKSxzeXNfc2V0Z3JvdXBzKCk7CitpbnQJc3lzX2dldHBncnAoKSxzeXNfc2V0cGdycCgpOworaW50CXN5c19zZXRzaWQoKSwgc3lzX3NldHBnaWQoKTsKK2ludAlzeXNfdW5hbWUoKSwgc3lzX3N5c2luZm8oKTsKKworLyogMS4yIG1lbW9yeSBtYW5hZ2VtZW50ICovCitpbnQJc3lzX2JyaygpLHN5c19zYnJrKCksc3lzX3NzdGsoKTsKK2ludAlzeXNfZ2V0cGFnZXNpemUoKSxzeXNfbW1hcCgpLHN5c19tY3RsKCksc3lzX211bm1hcCgpLHN5c19tcHJvdGVjdCgpLHN5c19taW5jb3JlKCksIHN5c19tcmVtYXAoKTsKK2ludAlzeXNfb21zeW5jKCksc3lzX29tYWR2aXNlKCksIHN5c19tYWR2aXNlKCksc3lzX21sb2NrYWxsKCk7CisKKy8qIDEuMyBzaWduYWxzICovCitpbnQJc3lzX3NpZ3ZlYygpLHN5c19zaWdibG9jaygpLHN5c19zaWdzZXRtYXNrKCksc3lzX3NpZ3BhdXNlKCksc3lzX3NpZ3N0YWNrKCksc3lzX3NpZ2NsZWFudXAoKSwgc3lzX3NpZ3JldHVybigpOworaW50CXN5c19raWxsKCksIHN5c19raWxscGcoKSwgc3lzX3NpZ3BlbmRpbmcoKSwgc3lzX3NpZ25hbCgpLCBzeXNfc2lnYWN0aW9uKCksIHN5c19zaWdzdXNwZW5kKCksIHN5c19zaWdwcm9jbWFzaygpOworCisvKiAxLjQgdGltaW5nIGFuZCBzdGF0aXN0aWNzICovCitpbnQJc3lzX2dldHRpbWVvZmRheSgpLHN5c19zZXR0aW1lb2ZkYXkoKTsKK2ludAlzeXNfYWRqdGltZSgpLCBzeXNfYWRqdGltZXgoKTsKK2ludAlzeXNfZ2V0aXRpbWVyKCksc3lzX3NldGl0aW1lcigpOworCisvKiAxLjUgZGVzY3JpcHRvcnMgKi8KK2ludAlzeXNfZ2V0ZHRhYmxlc2l6ZSgpLHN5c19kdXAoKSxzeXNfZHVwMigpLHN5c19jbG9zZSgpOworaW50CXN5c19vbGRzZWxlY3QoKSxzeXNfc2VsZWN0KCksc3lzX2dldGRvcHQoKSxzeXNfc2V0ZG9wdCgpLHN5c19mY250bCgpLHN5c19mbG9jaygpOworaW50CXN5c19lcG9sbF9jcmVhdGUoKSwgc3lzX2Vwb2xsX2N0bCgpLCBzeXNfZXBvbGxfd2FpdCgpOworCisvKiAxLjYgcmVzb3VyY2UgY29udHJvbHMgKi8KK2ludAlzeXNfZ2V0cHJpb3JpdHkoKSxzeXNfc2V0cHJpb3JpdHkoKSxzeXNfZ2V0cnVzYWdlKCksc3lzX2dldHJsaW1pdCgpLHN5c19zZXRybGltaXQoKTsKK2ludAlzeXNfb2xkcXVvdGEoKSwgc3lzX3F1b3RhY3RsKCk7CitpbnQJc3lzX3J0c2NoZWR1bGUoKSwgc3lzX3BlcnNvbmFsaXR5KCk7CisKKy8qIDEuNyBzeXN0ZW0gb3BlcmF0aW9uIHN1cHBvcnQgKi8KK2ludAlzeXNfbW91bnQoKSxzeXNfdW5tb3VudCgpLHN5c19zd2Fwb24oKSxzeXNfcGl2b3Ryb290KCk7CitpbnQJc3lzX3N5bmMoKSxzeXNfcmVib290KCk7CitpbnQJc3lzX3N5c2FjY3QoKTsKK2ludAlzeXNfYXVkaXRzeXMoKTsKKworLyogMi4xIGdlbmVyaWMgb3BlcmF0aW9ucyAqLworaW50CXN5c19yZWFkKCksc3lzX3dyaXRlKCksc3lzX3JlYWR2KCksc3lzX3dyaXRldigpLHN5c19pb2N0bCgpOworCisvKiAyLjEuMSBhc3luY2ggb3BlcmF0aW9ucyAqLworaW50CXN5c19haW9yZWFkKCksIHN5c19haW93cml0ZSgpLCBzeXNfYWlvd2FpdCgpLCBzeXNfYWlvY2FuY2VsKCk7CisKKy8qIDIuMiBmaWxlIHN5c3RlbSAqLworaW50CXN5c19jaGRpcigpLHN5c19jaHJvb3QoKTsKK2ludAlzeXNfZmNoZGlyKCksc3lzX2ZjaHJvb3QoKTsKK2ludAlzeXNfbWtkaXIoKSxzeXNfcm1kaXIoKSxzeXNfZ2V0ZGlyZW50cmllcygpOworaW50CXN5c19nZXRkZW50cygpLCBzeXNfZ2V0ZGVudHM2NCgpLCBzeXNfcmVhZGRpcigpOworaW50CXN5c19jcmVhdCgpLHN5c19vcGVuKCksc3lzX21rbm9kKCksc3lzX3VubGluaygpLHN5c19zdGF0KCksc3lzX2ZzdGF0KCksc3lzX2xzdGF0KCk7CitpbnQJc3lzX2Nob3duKCksc3lzX2ZjaG93bigpLHN5c19jaG1vZCgpLHN5c19mY2htb2QoKSxzeXNfdXRpbWVzKCk7CitpbnQJc3lzX2xpbmsoKSxzeXNfc3ltbGluaygpLHN5c19yZWFkbGluaygpLHN5c19yZW5hbWUoKTsKK2ludAlzeXNfbHNlZWsoKSwgc3lzX2xsc2VlaygpOworaW50CXN5c190cnVuY2F0ZSgpLHN5c19mdHJ1bmNhdGUoKSxzeXNfYWNjZXNzKCksc3lzX2ZzeW5jKCksc3lzX3N5c2N0bCgpOworaW50CXN5c19zdGF0ZnMoKSxzeXNfZnN0YXRmcygpLHN5c19tc3luYygpOworaW50IHN5c19zdGF0NjQoKSwgc3lzX2xzdGF0NjQoKSwgc3lzX2ZzdGF0NjQoKTsKK2ludCBzeXNfdHJ1bmNhdGU2NCgpLCBzeXNfZnRydW5jYXRlNjQoKTsKKworCisvKiAyLjMgY29tbXVuaWNhdGlvbnMgKi8KK2ludAlzeXNfc29ja2V0KCksc3lzX2JpbmQoKSxzeXNfbGlzdGVuKCksc3lzX2FjY2VwdCgpLHN5c19jb25uZWN0KCk7CitpbnQJc3lzX3NvY2tldHBhaXIoKSxzeXNfc2VuZHRvKCksc3lzX3NlbmQoKSxzeXNfcmVjdmZyb20oKSxzeXNfcmVjdigpOworaW50CXN5c19zZW5kbXNnKCksc3lzX3JlY3Ztc2coKSxzeXNfc2h1dGRvd24oKSxzeXNfc2V0c29ja29wdCgpLHN5c19nZXRzb2Nrb3B0KCk7CitpbnQJc3lzX2dldHNvY2tuYW1lKCksc3lzX2dldHBlZXJuYW1lKCksc3lzX3BpcGUoKTsKKworaW50IHN5c19zZXRyZXN1aWQoKSwgc3lzX3NldHJlc2dpZCgpLCBzeXNfZ2V0cmVzdWlkKCksIHN5c19nZXRyZXNnaWQoKSwgc3lzX3ByZWFkKCk7CitpbnQgc3lzX3B3cml0ZSgpLCBzeXNfZ2V0Y3dkKCk7CitpbnQgc3lzX3NpZ2FsdHN0YWNrKCksIHN5c19ydF9zaWdwcm9jbWFzaygpLCBzeXNfcnRfc2lnYWN0aW9uKCk7CitpbnQgc3lzX3J0X3NpZ3BlbmRpbmcoKSwgc3lzX3J0X3NpZ3N1c3BlbmQoKSwgc3lzX3J0X3NpZ3F1ZXVlaW5mbygpOworaW50IHN5c19ydF9zaWd0aW1lZHdhaXQoKSwgc3lzX3ByY3RsKCksIHN5c19wb2xsKCk7CitpbnQgc3lzX3NlbmRmaWxlKCksIHN5c19xdWVyeV9tb2R1bGUoKSwgc3lzX2NhcGdldCgpLCBzeXNfY2Fwc2V0KCk7CitpbnQgc3lzX2NyZWF0ZV9tb2R1bGUoKSwgc3lzX2luaXRfbW9kdWxlKCk7CisKK2ludAlzeXNfdW1hc2soKTsJCS8qIFhYWCAqLworCitpbnQgc3lzX3NjaGVkX3NldHBhcmFtKCksIHN5c19zY2hlZF9nZXRwYXJhbSgpOworaW50IHN5c19zY2hlZF9zZXRzY2hlZHVsZXIoKSwgc3lzX3NjaGVkX2dldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfeWllbGQoKTsKK2ludCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCgpLCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbigpOworCisvKiAyLjMuMSBTeXN0ZW1WLWNvbXBhdGlibGUgSVBDICovCitpbnQJc3lzX3NlbXN5cygpLCBzeXNfc2VtY3RsKCksIHN5c19zZW1nZXQoKTsKKyNkZWZpbmUgU1lTX3NlbXN5c19zdWJjYWxsCTIwMAorI2RlZmluZSBTWVNfc2Vtc3lzX25zdWJjYWxscwkzCisjZGVmaW5lIFNZU19zZW1jdGwJCShTWVNfc2Vtc3lzX3N1YmNhbGwgKyAwKQorI2RlZmluZSBTWVNfc2VtZ2V0CQkoU1lTX3NlbXN5c19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU1lTX3NlbW9wCQkoU1lTX3NlbXN5c19zdWJjYWxsICsgMikKK2ludAlzeXNfbXNnc3lzKCksIHN5c19tc2dnZXQoKSwgc3lzX21zZ2N0bCgpLCBzeXNfbXNncmN2KCksIHN5c19tc2dzbmQoKTsKKyNkZWZpbmUgU1lTX21zZ3N5c19zdWJjYWxsCTIwMworI2RlZmluZSBTWVNfbXNnc3lzX25zdWJjYWxscwk0CisjZGVmaW5lIFNZU19tc2dnZXQJCShTWVNfbXNnc3lzX3N1YmNhbGwgKyAwKQorI2RlZmluZSBTWVNfbXNnY3RsCQkoU1lTX21zZ3N5c19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU1lTX21zZ3JjdgkJKFNZU19tc2dzeXNfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNZU19tc2dzbmQJCShTWVNfbXNnc3lzX3N1YmNhbGwgKyAzKQoraW50CXN5c19zaG1zeXMoKSwgc3lzX3NobWF0KCksIHN5c19zaG1jdGwoKSwgc3lzX3NobWR0KCksIHN5c19zaG1nZXQoKTsKKyNkZWZpbmUgU1lTX3NobXN5c19zdWJjYWxsCTIwNworI2RlZmluZSBTWVNfc2htc3lzX25zdWJjYWxscwk0CisjZGVmaW5lCVNZU19zaG1hdAkJKFNZU19zaG1zeXNfc3ViY2FsbCArIDApCisjZGVmaW5lIFNZU19zaG1jdGwJCShTWVNfc2htc3lzX3N1YmNhbGwgKyAxKQorI2RlZmluZSBTWVNfc2htZHQJCShTWVNfc2htc3lzX3N1YmNhbGwgKyAyKQorI2RlZmluZSBTWVNfc2htZ2V0CQkoU1lTX3NobXN5c19zdWJjYWxsICsgMykKKworLyogMi40IHByb2Nlc3NlcyAqLworaW50CXN5c19wdHJhY2UoKTsKKworLyogMi41IHRlcm1pbmFscyAqLworCisvKiBlbXVsYXRpb25zIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLworaW50CXN5c19vdGltZSgpOwkJLyogbm93IHVzZSBnZXR0aW1lb2ZkYXkgKi8KK2ludAlzeXNfb3N0aW1lKCk7CQkvKiBub3cgdXNlIHNldHRpbWVvZmRheSAqLworaW50CXN5c19vYWxhcm0oKTsJCS8qIG5vdyB1c2Ugc2V0aXRpbWVyICovCitpbnQJc3lzX291dGltZSgpOwkJLyogbm93IHVzZSB1dGltZXMgKi8KK2ludAlzeXNfb3BhdXNlKCk7CQkvKiBub3cgdXNlIHNpZ3BhdXNlICovCitpbnQJc3lzX29uaWNlKCk7CQkvKiBub3cgdXNlIHNldHByaW9yaXR5LGdldHByaW9yaXR5ICovCitpbnQJc3lzX29mdGltZSgpOwkJLyogbm93IHVzZSBnZXR0aW1lb2ZkYXkgKi8KK2ludAlzeXNfb3NldHBncnAoKTsJCS8qID8/PyAqLworaW50CXN5c19vdGltZXMoKTsJCS8qIG5vdyB1c2UgZ2V0cnVzYWdlICovCitpbnQJc3lzX29zc2lnKCk7CQkvKiBub3cgdXNlIHNpZ3ZlYywgZXRjICovCitpbnQJc3lzX292bGltaXQoKTsJCS8qIG5vdyB1c2Ugc2V0cmxpbWl0LGdldHJsaW1pdCAqLworaW50CXN5c19vdnRpbWVzKCk7CQkvKiBub3cgdXNlIGdldHJ1c2FnZSAqLworaW50CXN5c19vc2V0dWlkKCk7CQkvKiBub3cgdXNlIHNldHJldWlkICovCitpbnQJc3lzX29zZXRnaWQoKTsJCS8qIG5vdyB1c2Ugc2V0cmVnaWQgKi8KK2ludAlzeXNfb3N0YXQoKTsJCS8qIG5vdyB1c2Ugc3RhdCAqLworaW50CXN5c19vZnN0YXQoKTsJCS8qIG5vdyB1c2UgZnN0YXQgKi8KKworLyogQkVHSU4gSlVOSyAqLworaW50CXN5c19wcm9maWwoKTsJCS8qICdjdXogc3lzIGNhbGxzIGFyZSBpbnRlcnJ1cHRpYmxlICovCitpbnQJc3lzX3ZoYW5ndXAoKTsJCS8qIHNob3VsZCBqdXN0IGRvIGluIHN5c19leGl0KCkgKi8KK2ludAlzeXNfdmZvcmsoKTsJCS8qIFhYWCAtIHdhcyBhd2FpdGluZyBmb3JrIHcvIGNvcHkgb24gd3JpdGUgKi8KK2ludAlzeXNfb3ZhZHZpc2UoKTsJCS8qIGF3YWl0aW5nIG5ldyBtYWR2aXNlICovCitpbnQJc3lzX2luZGlyKCk7CQkvKiBpbmRpcmVjdCBzeXN0ZW0gY2FsbCAqLworaW50CXN5c191c3RhdCgpOwkJLyogU3lzdGVtIFYgY29tcGF0aWJpbGl0eSAqLworaW50CXN5c19vd2FpdCgpOwkJLyogc2hvdWxkIHVzZSB3YWl0NCBpbnRlcmZhY2UgKi8KK2ludAlzeXNfb3dhaXQzKCk7CQkvKiBzaG91bGQgdXNlIHdhaXQ0IGludGVyZmFjZSAqLworaW50CXN5c191bW91bnQoKTsJCS8qIHN0aWxsIG1vcmUgU3lzIFYgKGFuZCA0LjI/KSBjb21wYXRpYmlsaXR5ICovCitpbnQJc3lzX3Vtb3VudDIoKTsKK2ludAlzeXNfcGF0aGNvbmYoKTsJCS8qIHBvc2l4ICovCitpbnQJc3lzX2ZwYXRoY29uZigpOwkJLyogcG9zaXggKi8KK2ludAlzeXNfc3lzY29uZigpOwkJLyogcG9zaXggKi8KK2ludCAgICAgc3lzX2RlbGV0ZV9tb2R1bGUoKTsKK2ludCBzeXNfZGVidWcoKTsKKy8qIEVORCBKVU5LICovCisKK2ludAlzeXNfdnRyYWNlKCk7CQkvKiBrZXJuZWwgZXZlbnQgdHJhY2luZyAqLworCisvKiBuZnMgKi8KK2ludAlzeXNfYXN5bmNfZGFlbW9uKCk7CQkvKiBjbGllbnQgYXN5bmMgZGFlbW9uICovCitpbnQJc3lzX25mc19zdmMoKTsJCS8qIHJ1biBuZnMgc2VydmVyICovCitpbnQJc3lzX25mc19nZXRmaCgpOwkJLyogZ2V0IGZpbGUgaGFuZGxlICovCitpbnQJc3lzX2V4cG9ydGZzKCk7CQkvKiBleHBvcnQgZmlsZSBzeXN0ZW1zICovCisKK2ludCAgCXN5c19yZnNzeXMoKTsJCS8qIFJGUy1yZWxhdGVkIGNhbGxzICovCisKK2ludAlzeXNfZ2V0bXNnKCk7CitpbnQJc3lzX3B1dG1zZygpOworaW50CXN5c19wb2xsKCk7CisKK2ludAlzeXNfdnBpeHN5cygpOwkJLyogVlAvaXggc3lzdGVtIGNhbGxzICovCisKK2ludAlzeXNfc2VuZGZpbGU2NCgpLCBzeXNfZnV0ZXgoKSwgc3lzX2dldHRpZCgpLCBzeXNfc2NoZWRfc2V0YWZmaW5pdHkoKTsKK2ludAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHkoKSwgc3lzX3NldHhhdHRyKCksIHN5c19sc2V0eGF0dHIoKTsKK2ludAlzeXNfZnNldHhhdHRyKCksIHN5c19nZXR4YXR0cigpLCBzeXNfbGdldHhhdHRyKCksIHN5c19mZ2V0eGF0dHIoKTsKK2ludAlzeXNfbGlzdHhhdHRyKCksIHN5c19sbGlzdHhhdHRyKCksIHN5c19mbGlzdHhhdHRyKCk7CitpbnQJc3lzX3JlbW92ZXhhdHRyKCksIHN5c19scmVtb3ZleGF0dHIoKSwgc3lzX2ZyZW1vdmV4YXR0cigpOworaW50CXN5c19yZW1hcF9maWxlX3BhZ2VzKCksIHN5c19yZWFkYWhlYWQoKSwgc3lzX3Rna2lsbCgpLCBzeXNfc3RhdGZzNjQoKTsKK2ludAlzeXNfZnN0YXRmczY0KCksIHN5c19jbG9ja19zZXR0aW1lKCksIHN5c19jbG9ja19nZXR0aW1lKCk7CitpbnQJc3lzX2Nsb2NrX2dldHJlcygpLCBzeXNfY2xvY2tfbmFub3NsZWVwKCk7CitpbnQJc3lzX3RpbWVyX2NyZWF0ZSgpLCBzeXNfdGltZXJfc2V0dGltZSgpLCBzeXNfdGltZXJfZ2V0dGltZSgpOworCisjaW5jbHVkZSAic3lzY2FsbDEuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmguMiBiL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsLmguMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGMwYmNhCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwuaC4yCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzIEJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsLmguMix2IDEuMS4xLjEgMTk5OS8wMi8xOSAwMDoyMzoxNCB3aWNoZXJ0IEV4cCAkCisgKi8KKworI2luY2x1ZGUgImR1bW15LmgiCisKKy8qIHByaW1hcnkgc3lzY2FsbHMgKi8KKworaW50IHN5c19zZXR1cCgpLCBzeXNfZXhpdCgpLCBzeXNfZm9yaygpLCBzeXNfcmVhZCgpLCBzeXNfd3JpdGUoKTsKK2ludCBzeXNfb3BlbigpLCBzeXNfY2xvc2UoKSwgc3lzX3dhaXRwaWQoKSwgc3lzX2NyZWF0KCksIHN5c19saW5rKCk7CitpbnQgc3lzX3VubGluaygpLCBzeXNfZXhlY3ZlKCksIHN5c19jaGRpcigpLCBzeXNfdGltZSgpLCBzeXNfbWtub2QoKTsKK2ludCBzeXNfY2htb2QoKSwgc3lzX2Nob3duKCksIHN5c19icmVhaygpLCBzeXNfb2xkc3RhdCgpOworaW50IHN5c19sc2VlaygpLCBzeXNfZ2V0cGlkKCksIHN5c19tb3VudCgpLCBzeXNfdW1vdW50KCk7CitpbnQgc3lzX3NldHVpZCgpLCBzeXNfZ2V0dWlkKCksIHN5c19zdGltZSgpLCBzeXNfcHRyYWNlKCk7CitpbnQgc3lzX2FsYXJtKCksIHN5c19vbGRmc3RhdCgpLCBzeXNfcGF1c2UoKSwgc3lzX3V0aW1lKCk7CitpbnQgc3lzX3N0dHkoKSwgc3lzX2d0dHkoKSwgc3lzX2FjY2VzcygpLCBzeXNfbmljZSgpLCBzeXNfZnRpbWUoKTsKK2ludCBzeXNfc3luYygpLCBzeXNfa2lsbCgpLCBzeXNfcmVuYW1lKCksIHN5c19ta2RpcigpLCBzeXNfcm1kaXIoKTsKK2ludCBzeXNfZHVwKCksIHN5c19waXBlKCksIHN5c190aW1lcygpLCBzeXNfcHJvZigpLCBzeXNfYnJrKCk7CitpbnQgc3lzX3NldGdpZCgpLCBzeXNfZ2V0Z2lkKCksIHN5c19zaWduYWwoKSwgc3lzX2dldGV1aWQoKTsKK2ludCBzeXNfZ2V0ZWdpZCgpLCBzeXNfYWNjdCgpLCBzeXNfcGh5cygpLCBzeXNfbG9jaygpLCBzeXNfaW9jdGwoKTsKK2ludCBzeXNfZmNudGwoKSwgc3lzX21weCgpLCBzeXNfc2V0cGdpZCgpLCBzeXNfdWxpbWl0KCk7CitpbnQgc3lzX29sZHVuYW1lKCksIHN5c191bWFzaygpLCBzeXNfY2hyb290KCksIHN5c191c3RhdCgpOworaW50IHN5c19kdXAyKCksIHN5c19nZXRwcGlkKCksIHN5c19nZXRwZ3JwKCksIHN5c19zZXRzaWQoKTsKK2ludCBzeXNfc2lnYWN0aW9uKCksIHN5c19zaWdnZXRtYXNrKCksIHN5c19zaWdzZXRtYXNrKCk7CitpbnQgc3lzX3NldHJldWlkKCksIHN5c19zZXRyZWdpZCgpLCBzeXNfc2lnc3VzcGVuZCgpOworaW50IHN5c19zaWdwZW5kaW5nKCksIHN5c19zZXRob3N0bmFtZSgpLCBzeXNfc2V0cmxpbWl0KCk7CitpbnQgc3lzX2dldHJsaW1pdCgpLCBzeXNfZ2V0cnVzYWdlKCksIHN5c19nZXR0aW1lb2ZkYXkoKTsKK2ludCBzeXNfc2V0dGltZW9mZGF5KCksIHN5c19nZXRncm91cHMoKSwgc3lzX3NldGdyb3VwcygpOworaW50IHN5c19vbGRzZWxlY3QoKSwgc3lzX3N5bWxpbmsoKSwgc3lzX29sZGxzdGF0KCksIHN5c19yZWFkbGluaygpOworaW50IHN5c191c2VsaWIoKSwgc3lzX3N3YXBvbigpLCBzeXNfcmVib290KCksIHN5c19yZWFkZGlyKCk7CitpbnQgc3lzX21tYXAoKSwgc3lzX211bm1hcCgpLCBzeXNfdHJ1bmNhdGUoKSwgc3lzX2Z0cnVuY2F0ZSgpOworaW50IHN5c19mY2htb2QoKSwgc3lzX2ZjaG93bigpLCBzeXNfZ2V0cHJpb3JpdHkoKTsKK2ludCBzeXNfc2V0cHJpb3JpdHkoKSwgc3lzX3Byb2ZpbCgpLCBzeXNfc3RhdGZzKCksIHN5c19mc3RhdGZzKCk7CitpbnQgc3lzX2lvcGVybSgpLCBzeXNfc29ja2V0Y2FsbCgpLCBzeXNfc3lzbG9nKCksIHN5c19zZXRpdGltZXIoKTsKK2ludCBzeXNfZ2V0aXRpbWVyKCksIHN5c19zdGF0KCksIHN5c19sc3RhdCgpLCBzeXNfZnN0YXQoKTsKK2ludCBzeXNfdW5hbWUoKSwgc3lzX2lvcGwoKSwgc3lzX3ZoYW5ndXAoKSwgc3lzX2lkbGUoKSwgc3lzX3ZtODYoKTsKK2ludCBzeXNfd2FpdDQoKSwgc3lzX3N3YXBvZmYoKSwgc3lzX2lwYygpLCBzeXNfc2lncmV0dXJuKCk7CitpbnQgc3lzX2ZzeW5jKCksIHN5c19jbG9uZSgpLCBzeXNfc2V0ZG9tYWlubmFtZSgpLCBzeXNfc3lzaW5mbygpOworaW50IHN5c19tb2RpZnlfbGR0KCksIHN5c19hZGp0aW1leCgpLCBzeXNfbXByb3RlY3QoKTsKK2ludCBzeXNfc2lncHJvY21hc2soKSwgc3lzX2NyZWF0ZV9tb2R1bGUoKSwgc3lzX2luaXRfbW9kdWxlKCk7CitpbnQgc3lzX2RlbGV0ZV9tb2R1bGUoKSwgc3lzX2dldF9rZXJuZWxfc3ltcygpLCBzeXNfcXVvdGFjdGwoKTsKK2ludCBzeXNfZ2V0cGdpZCgpLCBzeXNfZmNoZGlyKCksIHN5c19iZGZsdXNoKCk7CitpbnQgc3lzX3N5c2ZzKCksIHN5c19wZXJzb25hbGl0eSgpLCBzeXNfYWZzX3N5c2NhbGwoKTsKK2ludCBzeXNfc2V0ZnN1aWQoKSwgc3lzX3NldGZzZ2lkKCksIHN5c19sbHNlZWsoKTsKK2ludCBzeXNfZ2V0ZGVudHMoKSwgc3lzX2Zsb2NrKCksIHN5c19tc3luYygpOworaW50IHN5c19yZWFkdigpLCBzeXNfd3JpdGV2KCksIHN5c19zZWxlY3QoKTsKK2ludCBzeXNfZ2V0c2lkKCksIHN5c19mZGF0YXN5bmMoKSwgc3lzX3N5c2N0bCgpOworaW50IHN5c19tbG9jaygpLCBzeXNfbXVubG9jaygpLCBzeXNfbWxvY2thbGwoKSwgc3lzX211bmxvY2thbGwoKTsKK2ludCBzeXNfc2NoZWRfc2V0cGFyYW0oKSwgc3lzX3NjaGVkX2dldHBhcmFtKCk7CitpbnQgc3lzX3NjaGVkX3NldHNjaGVkdWxlcigpLCBzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyKCksIHN5c19zY2hlZF95aWVsZCgpOworaW50IHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KCksIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWluKCk7CitpbnQgc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCgpLCBzeXNfbmFub3NsZWVwKCksIHN5c19tcmVtYXAoKTsKK2ludCBzeXNfc2VuZG1zZygpLCBzeXNfcmVjdm1zZygpOworCisvKiBzeXNfc29ja2V0Y2FsbCBzdWJjYWxscyAqLworCitpbnQgc3lzX3NvY2tldCgpLCBzeXNfYmluZCgpLCBzeXNfY29ubmVjdCgpLCBzeXNfbGlzdGVuKCk7CitpbnQgc3lzX2FjY2VwdCgpLCBzeXNfZ2V0c29ja25hbWUoKSwgc3lzX2dldHBlZXJuYW1lKCksIHN5c19zb2NrZXRwYWlyKCk7CitpbnQgc3lzX3NlbmQoKSwgc3lzX3JlY3YoKSwgc3lzX3NlbmR0bygpLCBzeXNfcmVjdmZyb20oKTsKK2ludCBzeXNfc2h1dGRvd24oKSwgc3lzX3NldHNvY2tvcHQoKSwgc3lzX2dldHNvY2tvcHQoKTsKKworI2lmbmRlZiBBTFBIQQorI2RlZmluZSBTWVNfc29ja2V0X3N1YmNhbGwJMTgwCisjZGVmaW5lIFNZU19zb2NrZXQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxKQorI2RlZmluZSBTWVNfYmluZAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNZU19jb25uZWN0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMykKKyNkZWZpbmUgU1lTX2xpc3RlbgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDQpCisjZGVmaW5lIFNZU19hY2NlcHQJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA1KQorI2RlZmluZSBTWVNfZ2V0c29ja25hbWUJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA2KQorI2RlZmluZSBTWVNfZ2V0cGVlcm5hbWUJCShTWVNfc29ja2V0X3N1YmNhbGwgKyA3KQorI2RlZmluZSBTWVNfc29ja2V0cGFpcgkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDgpCisjZGVmaW5lIFNZU19zZW5kCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgOSkKKyNkZWZpbmUgU1lTX3JlY3YJCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMCkKKyNkZWZpbmUgU1lTX3NlbmR0bwkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDExKQorI2RlZmluZSBTWVNfcmVjdmZyb20JCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMikKKyNkZWZpbmUgU1lTX3NodXRkb3duCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTMpCisjZGVmaW5lIFNZU19zZXRzb2Nrb3B0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTQpCisjZGVmaW5lIFNZU19nZXRzb2Nrb3B0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTUpCisKKyNkZWZpbmUgU1lTX3NvY2tldF9uc3ViY2FsbHMJMTYKKyNlbmRpZiAvKiAhQUxQSEEgKi8KKworLyogc3lzX2lwYyBzdWJjYWxscyAqLworCitpbnQgc3lzX3NlbWdldCgpLCBzeXNfc2VtY3RsKCk7CitpbnQgc3lzX21zZ3NuZCgpLCBzeXNfbXNncmN2KCksIHN5c19tc2dnZXQoKSwgc3lzX21zZ2N0bCgpOworaW50IHN5c19zaG1hdCgpLCBzeXNfc2htZHQoKSwgc3lzX3NobWdldCgpLCBzeXNfc2htY3RsKCk7CisKKyNpZm5kZWYgQUxQSEEKKyNkZWZpbmUgU1lTX2lwY19zdWJjYWxsCQkyMDAKKyNkZWZpbmUgU1lTX3NlbW9wCQkoU1lTX2lwY19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU1lTX3NlbWdldAkJKFNZU19pcGNfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNZU19zZW1jdGwJCShTWVNfaXBjX3N1YmNhbGwgKyAzKQorI2RlZmluZSBTWVNfbXNnc25kCQkoU1lTX2lwY19zdWJjYWxsICsgMTEpCisjZGVmaW5lIFNZU19tc2dyY3YJCShTWVNfaXBjX3N1YmNhbGwgKyAxMikKKyNkZWZpbmUgU1lTX21zZ2dldAkJKFNZU19pcGNfc3ViY2FsbCArIDEzKQorI2RlZmluZSBTWVNfbXNnY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMTQpCisjZGVmaW5lIFNZU19zaG1hdAkJKFNZU19pcGNfc3ViY2FsbCArIDIxKQorI2RlZmluZSBTWVNfc2htZHQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMikKKyNkZWZpbmUgU1lTX3NobWdldAkJKFNZU19pcGNfc3ViY2FsbCArIDIzKQorI2RlZmluZSBTWVNfc2htY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMjQpCisKKyNkZWZpbmUgU1lTX2lwY19uc3ViY2FsbHMJMjUKKyNlbmRpZiAvKiBBTFBIQSAqLworCisjaWZkZWYgQUxQSEEKK2ludCBvc2Zfc3RhdGZzKCksIG9zZl9mc3RhdGZzKCksIHN5c19nZXRwYWdlc2l6ZSgpLCBzeXNfbWFkdmlzZSgpOworaW50IHN5c19zZXRwZ3JwKCksIHN5c19nZXRob3N0bmFtZSgpLCBzeXNfZ2V0ZHRhYmxlc2l6ZSgpLCBzeXNfdXRpbWVzKCk7CisjZW5kaWYKKworaW50IHN5c19fbGxzZWVrKCksIHN5c19fbmV3c2VsZWN0KCksIHN5c19fc3lzY3RsKCksIHN5c19rbG9nKCk7CitpbnQgc3lzX3ByZXZfZnN0YXQoKSwgc3lzX3ByZXZfbHN0YXQoKSwgc3lzX3ByZXZfbWtub2QoKSwgc3lzX3ByZXZfc3RhdCgpOworaW50IHN5c19wcmV2X3VzdGF0KCksIHN5c19zeXNjYWxsX2Zsb2NrKCksIHN5c19zeXNjYWxsX3JlYWR2KCk7CitpbnQgc3lzX3N5c2NhbGxfd3JpdGV2KCk7CisKKyNpbmNsdWRlICJzeXNjYWxsMS5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwxLmggYi9zdHJhY2UvbGludXgvc3BhcmMvc3lzY2FsbDEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWQ3NjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGwxLmgKQEAgLTAsMCArMSw1MDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IHN5c2NhbGwxLmgsdiAxLjEuMS4xIDE5OTkvMDIvMTkgMDA6MjM6MTYgd2ljaGVydCBFeHAgJAorICovCisKKyNkZWZpbmUJU09MQVJJU19zeXNjYWxsCTAKKyNkZWZpbmUJU09MQVJJU19leGl0CTEKKyNkZWZpbmUJU09MQVJJU19mb3JrCTIKKyNkZWZpbmUJU09MQVJJU19yZWFkCTMKKyNkZWZpbmUJU09MQVJJU193cml0ZQk0CisjZGVmaW5lCVNPTEFSSVNfb3Blbgk1CisjZGVmaW5lCVNPTEFSSVNfY2xvc2UJNgorI2RlZmluZQlTT0xBUklTX3dhaXQJNworI2RlZmluZQlTT0xBUklTX2NyZWF0CTgKKyNkZWZpbmUJU09MQVJJU19saW5rCTkKKyNkZWZpbmUJU09MQVJJU191bmxpbmsJMTAKKyNkZWZpbmUJU09MQVJJU19leGVjCTExCisjZGVmaW5lCVNPTEFSSVNfY2hkaXIJMTIKKyNkZWZpbmUJU09MQVJJU190aW1lCTEzCisjZGVmaW5lCVNPTEFSSVNfbWtub2QJMTQKKyNkZWZpbmUJU09MQVJJU19jaG1vZAkxNQorI2RlZmluZQlTT0xBUklTX2Nob3duCTE2CisjZGVmaW5lCVNPTEFSSVNfYnJrCQkxNworI2RlZmluZQlTT0xBUklTX3N0YXQJMTgKKyNkZWZpbmUJU09MQVJJU19sc2VlawkxOQorI2RlZmluZQlTT0xBUklTX2dldHBpZAkyMAorI2RlZmluZQlTT0xBUklTX21vdW50CTIxCisjZGVmaW5lCVNPTEFSSVNfdW1vdW50CTIyCisjZGVmaW5lCVNPTEFSSVNfc2V0dWlkCTIzCisjZGVmaW5lCVNPTEFSSVNfZ2V0dWlkCTI0CisjZGVmaW5lCVNPTEFSSVNfc3RpbWUJMjUKKyNkZWZpbmUJU09MQVJJU19wdHJhY2UJMjYKKyNkZWZpbmUJU09MQVJJU19hbGFybQkyNworI2RlZmluZQlTT0xBUklTX2ZzdGF0CTI4CisjZGVmaW5lCVNPTEFSSVNfcGF1c2UJMjkKKyNkZWZpbmUJU09MQVJJU191dGltZQkzMAorI2RlZmluZQlTT0xBUklTX3N0dHkJMzEKKyNkZWZpbmUJU09MQVJJU19ndHR5CTMyCisjZGVmaW5lCVNPTEFSSVNfYWNjZXNzCTMzCisjZGVmaW5lCVNPTEFSSVNfbmljZQkzNAorI2RlZmluZQlTT0xBUklTX3N0YXRmcwkzNQorI2RlZmluZQlTT0xBUklTX3N5bmMJMzYKKyNkZWZpbmUJU09MQVJJU19raWxsCTM3CisjZGVmaW5lCVNPTEFSSVNfZnN0YXRmcwkzOAorI2RlZmluZQlTT0xBUklTX3BncnBzeXMJMzkKKyNkZWZpbmUJU09MQVJJU194ZW5peAk0MAorI2RlZmluZQlTT0xBUklTX2R1cAkJNDEKKyNkZWZpbmUJU09MQVJJU19waXBlCTQyCisjZGVmaW5lCVNPTEFSSVNfdGltZXMJNDMKKyNkZWZpbmUJU09MQVJJU19wcm9maWwJNDQKKyNkZWZpbmUJU09MQVJJU19wbG9jawk0NQorI2RlZmluZQlTT0xBUklTX3NldGdpZAk0NgorI2RlZmluZQlTT0xBUklTX2dldGdpZAk0NworI2RlZmluZQlTT0xBUklTX3NpZ25hbAk0OAorI2RlZmluZQlTT0xBUklTX21zZ3N5cwk0OQorI2RlZmluZQlTT0xBUklTX3N5c3N1bgk1MAorI2RlZmluZQlTT0xBUklTX2FjY3QJNTEKKyNkZWZpbmUJU09MQVJJU19zaG1zeXMJNTIKKyNkZWZpbmUJU09MQVJJU19zZW1zeXMJNTMKKyNkZWZpbmUJU09MQVJJU19pb2N0bAk1NAorI2RlZmluZQlTT0xBUklTX3VhZG1pbgk1NQorI2RlZmluZQlTT0xBUklTX3V0c3N5cwk1NworI2RlZmluZQlTT0xBUklTX2Zkc3luYwk1OAorI2RlZmluZQlTT0xBUklTX2V4ZWN2ZQk1OQorI2RlZmluZQlTT0xBUklTX3VtYXNrCTYwCisjZGVmaW5lCVNPTEFSSVNfY2hyb290CTYxCisjZGVmaW5lCVNPTEFSSVNfZmNudGwJNjIKKyNkZWZpbmUJU09MQVJJU191bGltaXQJNjMKKyNkZWZpbmUJU09MQVJJU19ybWRpcgk3OQorI2RlZmluZQlTT0xBUklTX21rZGlyCTgwCisjZGVmaW5lCVNPTEFSSVNfZ2V0ZGVudHMJODEKKyNkZWZpbmUJU09MQVJJU19zeXNmcwk4NAorI2RlZmluZQlTT0xBUklTX2dldG1zZwk4NQorI2RlZmluZQlTT0xBUklTX3B1dG1zZwk4NgorI2RlZmluZQlTT0xBUklTX3BvbGwJODcKKyNkZWZpbmUJU09MQVJJU19sc3RhdAk4OAorI2RlZmluZQlTT0xBUklTX3N5bWxpbmsJODkKKyNkZWZpbmUJU09MQVJJU19yZWFkbGluawk5MAorI2RlZmluZQlTT0xBUklTX3NldGdyb3Vwcwk5MQorI2RlZmluZQlTT0xBUklTX2dldGdyb3Vwcwk5MgorI2RlZmluZQlTT0xBUklTX2ZjaG1vZAk5MworI2RlZmluZQlTT0xBUklTX2ZjaG93bgk5NAorI2RlZmluZQlTT0xBUklTX3NpZ3Byb2NtYXNrCTk1CisjZGVmaW5lCVNPTEFSSVNfc2lnc3VzcGVuZAk5NgorI2RlZmluZQlTT0xBUklTX3NpZ2FsdHN0YWNrCTk3CisjZGVmaW5lCVNPTEFSSVNfc2lnYWN0aW9uCTk4CisjZGVmaW5lCVNPTEFSSVNfc2lncGVuZGluZwk5OQorI2RlZmluZQlTT0xBUklTX2NvbnRleHQJMTAwCisjZGVmaW5lCVNPTEFSSVNfZXZzeXMJMTAxCisjZGVmaW5lCVNPTEFSSVNfZXZ0cmFwcmV0CTEwMgorI2RlZmluZQlTT0xBUklTX3N0YXR2ZnMJMTAzCisjZGVmaW5lCVNPTEFSSVNfZnN0YXR2ZnMJMTA0CisjZGVmaW5lCVNPTEFSSVNfbmZzc3lzCTEwNgorI2RlZmluZQlTT0xBUklTX3dhaXRzeXMJMTA3CisjZGVmaW5lCVNPTEFSSVNfc2lnc2VuZHN5cwkxMDgKKyNkZWZpbmUJU09MQVJJU19ocnRzeXMJMTA5CisjZGVmaW5lCVNPTEFSSVNfYWNhbmNlbAkxMTAKKyNkZWZpbmUJU09MQVJJU19hc3luYwkxMTEKKyNkZWZpbmUJU09MQVJJU19wcmlvY250bHN5cwkxMTIKKyNkZWZpbmUJU09MQVJJU19wYXRoY29uZgkxMTMKKyNkZWZpbmUJU09MQVJJU19taW5jb3JlCTExNAorI2RlZmluZQlTT0xBUklTX21tYXAJMTE1CisjZGVmaW5lCVNPTEFSSVNfbXByb3RlY3QJMTE2CisjZGVmaW5lCVNPTEFSSVNfbXVubWFwCTExNworI2RlZmluZQlTT0xBUklTX2ZwYXRoY29uZgkxMTgKKyNkZWZpbmUJU09MQVJJU192Zm9yawkxMTkKKyNkZWZpbmUJU09MQVJJU19mY2hkaXIJMTIwCisjZGVmaW5lCVNPTEFSSVNfcmVhZHYJMTIxCisjZGVmaW5lCVNPTEFSSVNfd3JpdGV2CTEyMgorI2RlZmluZQlTT0xBUklTX3hzdGF0CTEyMworI2RlZmluZQlTT0xBUklTX2x4c3RhdAkxMjQKKyNkZWZpbmUJU09MQVJJU19meHN0YXQJMTI1CisjZGVmaW5lCVNPTEFSSVNfeG1rbm9kCTEyNgorI2RlZmluZQlTT0xBUklTX2Nsb2NhbAkxMjcKKyNkZWZpbmUJU09MQVJJU19zZXRybGltaXQJMTI4CisjZGVmaW5lCVNPTEFSSVNfZ2V0cmxpbWl0CTEyOQorI2RlZmluZQlTT0xBUklTX2xjaG93bgkxMzAKKyNkZWZpbmUJU09MQVJJU19tZW1jbnRsCTEzMQorI2RlZmluZQlTT0xBUklTX2dldHBtc2cJMTMyCisjZGVmaW5lCVNPTEFSSVNfcHV0cG1zZwkxMzMKKyNkZWZpbmUJU09MQVJJU19yZW5hbWUJMTM0CisjZGVmaW5lCVNPTEFSSVNfdW5hbWUJMTM1CisjZGVmaW5lCVNPTEFSSVNfc2V0ZWdpZAkxMzYKKyNkZWZpbmUJU09MQVJJU19zeXNjb25maWcJMTM3CisjZGVmaW5lCVNPTEFSSVNfYWRqdGltZQkxMzgKKyNkZWZpbmUJU09MQVJJU19zeXN0ZW1pbmZvCTEzOQorI2RlZmluZQlTT0xBUklTX3NldGV1aWQJMTQxCisjZGVmaW5lCVNPTEFSSVNfdnRyYWNlCTE0MgorI2RlZmluZQlTT0xBUklTX2ZvcmsxCTE0MworI2RlZmluZQlTT0xBUklTX3NpZ3RpbWVkd2FpdAkxNDQKKyNkZWZpbmUJU09MQVJJU19sd3BfaW5mbwkxNDUKKyNkZWZpbmUJU09MQVJJU195aWVsZAkxNDYKKyNkZWZpbmUJU09MQVJJU19sd3Bfc2VtYV93YWl0CTE0NworI2RlZmluZQlTT0xBUklTX2x3cF9zZW1hX3Bvc3QJMTQ4CisjZGVmaW5lCVNPTEFSSVNfbW9kY3RsCTE1MgorI2RlZmluZQlTT0xBUklTX2ZjaHJvb3QJMTUzCisjZGVmaW5lCVNPTEFSSVNfdXRpbWVzCTE1NAorI2RlZmluZQlTT0xBUklTX3ZoYW5ndXAJMTU1CisjZGVmaW5lCVNPTEFSSVNfZ2V0dGltZW9mZGF5CTE1NgorI2RlZmluZQlTT0xBUklTX2dldGl0aW1lcgkJMTU3CisjZGVmaW5lCVNPTEFSSVNfc2V0aXRpbWVyCQkxNTgKKyNkZWZpbmUJU09MQVJJU19sd3BfY3JlYXRlCQkxNTkKKyNkZWZpbmUJU09MQVJJU19sd3BfZXhpdAkJMTYwCisjZGVmaW5lCVNPTEFSSVNfbHdwX3N1c3BlbmQJCTE2MQorI2RlZmluZQlTT0xBUklTX2x3cF9jb250aW51ZQkxNjIKKyNkZWZpbmUJU09MQVJJU19sd3Bfa2lsbAkJMTYzCisjZGVmaW5lCVNPTEFSSVNfbHdwX3NlbGYJCTE2NAorI2RlZmluZQlTT0xBUklTX2x3cF9zZXRwcml2YXRlCTE2NQorI2RlZmluZQlTT0xBUklTX2x3cF9nZXRwcml2YXRlCTE2NgorI2RlZmluZQlTT0xBUklTX2x3cF93YWl0CQkxNjcKKyNkZWZpbmUJU09MQVJJU19sd3BfbXV0ZXhfdW5sb2NrCTE2OAorI2RlZmluZQlTT0xBUklTX2x3cF9tdXRleF9sb2NrCTE2OQorI2RlZmluZQlTT0xBUklTX2x3cF9jb25kX3dhaXQJMTcwCisjZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfc2lnbmFsCTE3MQorI2RlZmluZQlTT0xBUklTX2x3cF9jb25kX2Jyb2FkY2FzdAkxNzIKKyNkZWZpbmUJU09MQVJJU19wcmVhZAkJMTczCisjZGVmaW5lCVNPTEFSSVNfcHdyaXRlCQkxNzQKKyNkZWZpbmUJU09MQVJJU19sbHNlZWsJCTE3NQorI2RlZmluZQlTT0xBUklTX2luc3Rfc3luYwkJMTc2CisjZGVmaW5lCVNPTEFSSVNfa2FpbwkJMTc4CisjZGVmaW5lCVNPTEFSSVNfdHNvbHN5cwkJMTg0CisjZGVmaW5lCVNPTEFSSVNfYWNsCQkJMTg1CisjZGVmaW5lCVNPTEFSSVNfYXVkaXRzeXMJCTE4NgorI2RlZmluZQlTT0xBUklTX3Byb2Nlc3Nvcl9iaW5kCTE4NworI2RlZmluZQlTT0xBUklTX3Byb2Nlc3Nvcl9pbmZvCTE4OAorI2RlZmluZQlTT0xBUklTX3Bfb25saW5lCQkxODkKKyNkZWZpbmUJU09MQVJJU19zaWdxdWV1ZQkJMTkwCisjZGVmaW5lCVNPTEFSSVNfY2xvY2tfZ2V0dGltZQkxOTEKKyNkZWZpbmUJU09MQVJJU19jbG9ja19zZXR0aW1lCTE5MgorI2RlZmluZQlTT0xBUklTX2Nsb2NrX2dldHJlcwkxOTMKKyNkZWZpbmUJU09MQVJJU190aW1lcl9jcmVhdGUJMTk0CisjZGVmaW5lCVNPTEFSSVNfdGltZXJfZGVsZXRlCTE5NQorI2RlZmluZQlTT0xBUklTX3RpbWVyX3NldHRpbWUJMTk2CisjZGVmaW5lCVNPTEFSSVNfdGltZXJfZ2V0dGltZQkxOTcKKyNkZWZpbmUJU09MQVJJU190aW1lcl9nZXRvdmVycnVuCTE5OAorI2RlZmluZQlTT0xBUklTX25hbm9zbGVlcAkJMTk5CisjZGVmaW5lCVNPTEFSSVNfZmFjbAkJMjAwCisjZGVmaW5lCVNPTEFSSVNfZG9vcgkJMjAxCisjZGVmaW5lCVNPTEFSSVNfc2V0cmV1aWQJCTIwMgorI2RlZmluZQlTT0xBUklTX3NldHJlZ2lkCQkyMDMKKyNkZWZpbmUJU09MQVJJU19zaWdub3RpZnl3YWl0CTIxMAorI2RlZmluZQlTT0xBUklTX2x3cF9zaWdyZWRpcmVjdAkyMTEKKyNkZWZpbmUJU09MQVJJU19sd3BfYWxhcm0JCTIxMgorCisjaW5jbHVkZSAiZHVtbXkyLmgiCisKK2V4dGVybiBpbnQgc29sYXJpc19zeXNjYWxsKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZXhpdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2ZvcmsoKTsKK2V4dGVybiBpbnQgc29sYXJpc19yZWFkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfd3JpdGUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19vcGVuKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY2xvc2UoKTsKK2V4dGVybiBpbnQgc29sYXJpc193YWl0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfY3JlYXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19saW5rKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdW5saW5rKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZXhlYygpOworZXh0ZXJuIGludCBzb2xhcmlzX2NoZGlyKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdGltZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX21rbm9kKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY2htb2QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19jaG93bigpOworZXh0ZXJuIGludCBzb2xhcmlzX2JyaygpOworZXh0ZXJuIGludCBzb2xhcmlzX3N0YXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sc2VlaygpOworZXh0ZXJuIGludCBzb2xhcmlzX2dldHBpZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX21vdW50KCk7CitleHRlcm4gaW50IHNvbGFyaXNfdW1vdW50KCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2V0dWlkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0dWlkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3RpbWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wdHJhY2UoKTsKK2V4dGVybiBpbnQgc29sYXJpc19hbGFybSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2ZzdGF0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfcGF1c2UoKTsKK2V4dGVybiBpbnQgc29sYXJpc191dGltZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3N0dHkoKTsKK2V4dGVybiBpbnQgc29sYXJpc19ndHR5KCk7CitleHRlcm4gaW50IHNvbGFyaXNfYWNjZXNzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbmljZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3N0YXRmcygpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5bmMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19raWxsKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZnN0YXRmcygpOworZXh0ZXJuIGludCBzb2xhcmlzX3BncnBzeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zZXRwZ3JwKCk7CitleHRlcm4gaW50IHNvbGFyaXNfeGVuaXgoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zeXNzZ2koKTsKK2V4dGVybiBpbnQgc29sYXJpc19kdXAoKTsKK2V4dGVybiBpbnQgc29sYXJpc19waXBlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdGltZXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wcm9maWwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wbG9jaygpOworZXh0ZXJuIGludCBzb2xhcmlzX3NldGdpZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2dldGdpZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3NpZ2NhbGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19tc2dzeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zeXNzdW4oKTsKK2V4dGVybiBpbnQgc29sYXJpc19zeXNpODYoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zeXNtaXBzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3lzbWFjaGluZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2FjY3QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zaG1zeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zZW1zeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19pb2N0bCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3VhZG1pbigpOworZXh0ZXJuIGludCBzb2xhcmlzX3V0c3N5cygpOworZXh0ZXJuIGludCBzb2xhcmlzX2Zkc3luYygpOworZXh0ZXJuIGludCBzb2xhcmlzX2V4ZWN2ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3VtYXNrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY2hyb290KCk7CitleHRlcm4gaW50IHNvbGFyaXNfZmNudGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc191bGltaXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19ybWRpcigpOworZXh0ZXJuIGludCBzb2xhcmlzX21rZGlyKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0ZGVudHMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zeXNmcygpOworZXh0ZXJuIGludCBzb2xhcmlzX2dldG1zZygpOworZXh0ZXJuIGludCBzb2xhcmlzX3B1dG1zZygpOworZXh0ZXJuIGludCBzb2xhcmlzX3BvbGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sc3RhdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5bWxpbmsoKTsKK2V4dGVybiBpbnQgc29sYXJpc19yZWFkbGluaygpOworZXh0ZXJuIGludCBzb2xhcmlzX3NldGdyb3VwcygpOworZXh0ZXJuIGludCBzb2xhcmlzX2dldGdyb3VwcygpOworZXh0ZXJuIGludCBzb2xhcmlzX2ZjaG1vZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2ZjaG93bigpOworZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3Byb2NtYXNrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lnc3VzcGVuZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3NpZ2FsdHN0YWNrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lnYWN0aW9uKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3BjYWxsKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY29udGV4dCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2V2c3lzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZXZ0cmFwcmV0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3RhdHZmcygpOworZXh0ZXJuIGludCBzb2xhcmlzX2ZzdGF0dmZzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbmZzc3lzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfd2FpdGlkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lnc2VuZHN5cygpOworZXh0ZXJuIGludCBzb2xhcmlzX2hydHN5cygpOworZXh0ZXJuIGludCBzb2xhcmlzX2FjYW5jZWwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19hc3luYygpOworZXh0ZXJuIGludCBzb2xhcmlzX3ByaW9jbnRsc3lzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcGF0aGNvbmYoKTsKK2V4dGVybiBpbnQgc29sYXJpc19taW5jb3JlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbW1hcCgpOworZXh0ZXJuIGludCBzb2xhcmlzX21wcm90ZWN0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfbXVubWFwKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZnBhdGhjb25mKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdmZvcmsoKTsKK2V4dGVybiBpbnQgc29sYXJpc19mY2hkaXIoKTsKK2V4dGVybiBpbnQgc29sYXJpc19yZWFkdigpOworZXh0ZXJuIGludCBzb2xhcmlzX3dyaXRldigpOworZXh0ZXJuIGludCBzb2xhcmlzX3hzdGF0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHhzdGF0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfZnhzdGF0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfeG1rbm9kKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY2xvY2FsKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2V0cmxpbWl0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0cmxpbWl0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfbGNob3duKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbWVtY250bCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2dldHBtc2coKTsKK2V4dGVybiBpbnQgc29sYXJpc19wdXRwbXNnKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcmVuYW1lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdW5hbWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zZXRlZ2lkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3lzY29uZmlnKCk7CitleHRlcm4gaW50IHNvbGFyaXNfYWRqdGltZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5c2luZm8oKTsKK2V4dGVybiBpbnQgc29sYXJpc19zZXRldWlkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdnRyYWNlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZm9yazEoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zaWd0aW1lZHdhaXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3BfaW5mbygpOworZXh0ZXJuIGludCBzb2xhcmlzX3lpZWxkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX3NlbWFfd2FpdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZW1hX3Bvc3QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19tb2RjdGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19mY2hyb290KCk7CitleHRlcm4gaW50IHNvbGFyaXNfdXRpbWVzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdmhhbmd1cCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2dldHRpbWVvZmRheSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2dldGl0aW1lcigpOworZXh0ZXJuIGludCBzb2xhcmlzX3NldGl0aW1lcigpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jcmVhdGUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3BfZXhpdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zdXNwZW5kKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX2NvbnRpbnVlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX2tpbGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3Bfc2VsZigpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZXRwcml2YXRlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX2dldHByaXZhdGUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3Bfd2FpdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9tdXRleF91bmxvY2soKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3BfbXV0ZXhfbG9jaygpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX3dhaXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3BfY29uZF9zaWduYWwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3BfY29uZF9icm9hZGNhc3QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wcmVhZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3B3cml0ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2xsc2VlaygpOworZXh0ZXJuIGludCBzb2xhcmlzX2luc3Rfc3luYygpOworZXh0ZXJuIGludCBzb2xhcmlzX2F1ZGl0c3lzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcHJvY2Vzc29yX2JpbmQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wcm9jZXNzb3JfaW5mbygpOworZXh0ZXJuIGludCBzb2xhcmlzX3Bfb25saW5lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lncXVldWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19jbG9ja19nZXR0aW1lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY2xvY2tfc2V0dGltZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2Nsb2NrX2dldHJlcygpOworZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2NyZWF0ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2RlbGV0ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX3NldHRpbWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc190aW1lcl9nZXR0aW1lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdGltZXJfZ2V0b3ZlcnJ1bigpOworZXh0ZXJuIGludCBzb2xhcmlzX25hbm9zbGVlcCgpOworCisvKiBzb2xhcmlzX3BncnBzeXMgc3ViY2FsbHMgKi8KKworZXh0ZXJuIGludCBzb2xhcmlzX2dldHBncnAoKSwgc29sYXJpc19zZXRwZ3JwKCksIHNvbGFyaXNfZ2V0c2lkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2V0c2lkKCksIHNvbGFyaXNfZ2V0cGdpZCgpLCBzb2xhcmlzX3NldHBnaWQoKTsKKworI2RlZmluZSBTT0xBUklTX3BncnBzeXNfc3ViY2FsbAkzMDAKKyNkZWZpbmUgU09MQVJJU19nZXRwZ3JwCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAwKQorI2RlZmluZSBTT0xBUklTX3NldHBncnAJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNPTEFSSVNfZ2V0c2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAyKQorI2RlZmluZSBTT0xBUklTX3NldHNpZAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgMykKKyNkZWZpbmUgU09MQVJJU19nZXRwZ2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyA0KQorI2RlZmluZSBTT0xBUklTX3NldHBnaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDUpCisKKyNkZWZpbmUgU09MQVJJU19wZ3Jwc3lzX25zdWJjYWxscwk2CisKKy8qIHNvbGFyaXNfc2lnY2FsbCBzdWJjYWxscyAqLworCisjdW5kZWYgU09MQVJJU19zaWduYWwKKyNkZWZpbmUgU09MQVJJU19zaWdjYWxsCQk0OAorCitleHRlcm4gaW50IHNvbGFyaXNfc2lnbmFsKCksIHNvbGFyaXNfc2lnc2V0KCksIHNvbGFyaXNfc2lnaG9sZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3JlbHNlKCksIHNvbGFyaXNfc2lnaWdub3JlKCksIHNvbGFyaXNfc2lncGF1c2UoKTsKKworI2RlZmluZSBTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbAkzMTAKKyNkZWZpbmUgU09MQVJJU19zaWduYWwJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDApCisjZGVmaW5lIFNPTEFSSVNfc2lnc2V0CQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyAxKQorI2RlZmluZSBTT0xBUklTX3NpZ2hvbGQJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNPTEFSSVNfc2lncmVsc2UJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDMpCisjZGVmaW5lIFNPTEFSSVNfc2lnaWdub3JlCQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyA0KQorI2RlZmluZSBTT0xBUklTX3NpZ3BhdXNlCQkoU09MQVJJU19zaWdjYWxsX3N1YmNhbGwgKyA1KQorCisjZGVmaW5lIFNPTEFSSVNfc2lnY2FsbF9uc3ViY2FsbHMJNgorCisvKiBtc2dzeXMgc3ViY2FsbHMgKi8KKworZXh0ZXJuIGludCBzb2xhcmlzX21zZ2dldCgpLCBzb2xhcmlzX21zZ2N0bCgpLCBzb2xhcmlzX21zZ3JjdigpLCBzb2xhcmlzX21zZ3NuZCgpOworCisjZGVmaW5lIFNPTEFSSVNfbXNnc3lzX3N1YmNhbGwJMzIwCisjZGVmaW5lIFNPTEFSSVNfbXNnZ2V0CQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDApCisjZGVmaW5lIFNPTEFSSVNfbXNnY3RsCQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNPTEFSSVNfbXNncmN2CQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNPTEFSSVNfbXNnc25kCQkoU09MQVJJU19tc2dzeXNfc3ViY2FsbCArIDMpCisKKyNkZWZpbmUgU09MQVJJU19tc2dzeXNfbnN1YmNhbGxzCTQKKworLyogc2htc3lzIHN1YmNhbGxzICovCisKK2V4dGVybiBpbnQgc29sYXJpc19zaG1hdCgpLCBzb2xhcmlzX3NobWN0bCgpLCBzb2xhcmlzX3NobWR0KCksIHNvbGFyaXNfc2htZ2V0KCk7CisKKyNkZWZpbmUgU09MQVJJU19zaG1zeXNfc3ViY2FsbAkzMzAKKyNkZWZpbmUgU09MQVJJU19zaG1hdAkJKFNPTEFSSVNfc2htc3lzX3N1YmNhbGwgKyAwKQorI2RlZmluZSBTT0xBUklTX3NobWN0bAkJKFNPTEFSSVNfc2htc3lzX3N1YmNhbGwgKyAxKQorI2RlZmluZSBTT0xBUklTX3NobWR0CQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNPTEFSSVNfc2htZ2V0CQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDMpCisKKyNkZWZpbmUgU09MQVJJU19zaG1zeXNfbnN1YmNhbGxzCTQKKworLyogc2Vtc3lzIHN1YmNhbGxzICovCisKK2V4dGVybiBpbnQgc29sYXJpc19zZW1jdGwoKSwgc29sYXJpc19zZW1nZXQoKSwgc29sYXJpc19zZW1vcCgpOworCisjZGVmaW5lIFNPTEFSSVNfc2Vtc3lzX3N1YmNhbGwJMzQwCisjZGVmaW5lIFNPTEFSSVNfc2VtY3RsCQkoU09MQVJJU19zZW1zeXNfc3ViY2FsbCArIDApCisjZGVmaW5lIFNPTEFSSVNfc2VtZ2V0CQkoU09MQVJJU19zZW1zeXNfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNPTEFSSVNfc2Vtb3AJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMikKKworI2RlZmluZSBTT0xBUklTX3NlbXN5c19uc3ViY2FsbHMJMworCisvKiB1dHNzeXMgc3ViY2FsbHMgKi8KKworZXh0ZXJuIGludCBzb2xhcmlzX29sZHVuYW1lKCksIHNvbGFyaXNfdXN0YXQoKSwgc29sYXJpc19mdXNlcnMoKTsKKworI2RlZmluZSBTT0xBUklTX3V0c3N5c19zdWJjYWxsCTM1MAorCisjZGVmaW5lIFNPTEFSSVNfb2xkdW5hbWUJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMCkKKwkJCQkvKiAxIGlzIHVudXNlZCAqLworI2RlZmluZSBTT0xBUklTX3VzdGF0CQkoU09MQVJJU191dHNzeXNfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNPTEFSSVNfZnVzZXJzCQkoU09MQVJJU191dHNzeXNfc3ViY2FsbCArIDMpCisKKyNkZWZpbmUgU09MQVJJU191dHNzeXNfbnN1YmNhbGxzCTQKKworLyogc3lzZnMgc3ViY2FsbHMgKi8KKworZXh0ZXJuIGludCBzb2xhcmlzX3N5c2ZzMSgpLCBzb2xhcmlzX3N5c2ZzMigpLCBzb2xhcmlzX3N5c2ZzMygpOworCisjZGVmaW5lIFNPTEFSSVNfc3lzZnNfc3ViY2FsbAkzNjAKKwkJCQkvKiAwIGlzIHVudXNlZCAqLworI2RlZmluZSBTT0xBUklTX3N5c2ZzMQkJKFNPTEFSSVNfc3lzZnNfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNPTEFSSVNfc3lzZnMyCQkoU09MQVJJU19zeXNmc19zdWJjYWxsICsgMikKKyNkZWZpbmUgU09MQVJJU19zeXNmczMJCShTT0xBUklTX3N5c2ZzX3N1YmNhbGwgKyAzKQorCisjZGVmaW5lIFNPTEFSSVNfc3lzZnNfbnN1YmNhbGxzCTQKKworLyogc29sYXJpc19zcGNhbGwgc3ViY2FsbHMgKi8KKworI3VuZGVmIFNPTEFSSVNfc2lncGVuZGluZworI2RlZmluZSBTT0xBUklTX3NwY2FsbAkJOTkKKworZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3BlbmRpbmcoKSwgc29sYXJpc19zaWdmaWxsc2V0KCk7CisKKyNkZWZpbmUgU09MQVJJU19zcGNhbGxfc3ViY2FsbAkzNzAKKwkJCQkvKiAwIGlzIHVudXNlZCAqLworI2RlZmluZSBTT0xBUklTX3NpZ3BlbmRpbmcJCShTT0xBUklTX3NwY2FsbF9zdWJjYWxsICsgMSkKKyNkZWZpbmUgU09MQVJJU19zaWdmaWxsc2V0CQkoU09MQVJJU19zcGNhbGxfc3ViY2FsbCArIDIpCisKKyNkZWZpbmUgU09MQVJJU19zcGNhbGxfbnN1YmNhbGxzCTMKKworLyogc29sYXJpc19jb250ZXh0IHN1YmNhbGxzICovCisKK2V4dGVybiBpbnQgc29sYXJpc19nZXRjb250ZXh0KCksIHNvbGFyaXNfc2V0Y29udGV4dCgpOworCisjZGVmaW5lIFNPTEFSSVNfY29udGV4dF9zdWJjYWxsCTM4MAorI2RlZmluZSBTT0xBUklTX2dldGNvbnRleHQJCShTT0xBUklTX2NvbnRleHRfc3ViY2FsbCArIDApCisjZGVmaW5lIFNPTEFSSVNfc2V0Y29udGV4dAkJKFNPTEFSSVNfY29udGV4dF9zdWJjYWxsICsgMSkKKworI2RlZmluZSBTT0xBUklTX2NvbnRleHRfbnN1YmNhbGxzCTIKKwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU5NmY3YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsZW50LmgKQEAgLTAsMCArMSwzNTMgQEAKKwl7IDEsCTAsCXN5c19zZXR1cCwJInNldHVwIiB9LAkJLyogMCAqLworCXsgMSwJVFAsCXN5c19leGl0LAkiZXhpdCIgfSwJCS8qIDEgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJImZvcmsiIH0sCQkvKiAyICovCisJeyAzLAkwLAlzeXNfcmVhZCwJInJlYWQiIH0sCQkvKiAzICovCisJeyAzLAkwLAlzeXNfd3JpdGUsCSJ3cml0ZSIgfSwJCS8qIDQgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJIm9wZW4iIH0sCQkvKiA1ICovCisJeyAxLAkwLAlzeXNfY2xvc2UsCSJjbG9zZSIgfSwJCS8qIDYgKi8KKwl7IDQsCVRQLAlzeXNfd2FpdDQsCSJ3YWl0NCIgfSwJCS8qIDcgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCSJjcmVhdCIgfSwJCS8qIDggKi8KKwl7IDIsCVRGLAlzeXNfbGluaywJImxpbmsiIH0sCQkvKiA5ICovCisJeyAxLAlURiwJc3lzX3VubGluaywJInVubGluayIgfSwJCS8qIDEwICovCisJeyAyLCAgICBURnxUUCwJc3lzX2V4ZWN2LAkiZXhlY3YiIH0sCQkvKiAxMSAqLworCXsgMSwJVEYsCXN5c19jaGRpciwJImNoZGlyIiB9LAkJLyogMTIgKi8KKyAgICAgICAgeyAzLCAgICBURiwgICAgIHN5c19jaG93biwgICAgICAiY2hvd24ifSwJCS8qIDEzICovCisJeyAzLAlURiwJc3lzX21rbm9kLAkibWtub2QiIH0sCQkvKiAxNCAqLworCXsgMiwJVEYsCXN5c19jaG1vZCwJImNobW9kIiB9LAkJLyogMTUgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCSJsY2hvd24iIH0sCQkvKiAxNiAqLworCXsgMSwJMCwJc3lzX2JyaywJImJyayIgfSwJCS8qIDE3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCSJwZXJmY3RyIiB9LAkJLyogMTggKi8KKwl7IDMsCTAsCXN5c19sc2VlaywJImxzZWVrIiB9LAkJLyogMTkgKi8KKwl7IDAsCTAsCXN5c19nZXRwaWQsCSJnZXRwaWQiIH0sCQkvKiAyMCAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJImNhcGdldCIgfSwJCS8qIDIxICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkiY2Fwc2V0IiB9LAkJLyogMjIgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCSJzZXR1aWQiIH0sCQkvKiAyMyAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZCIgfSwJCS8qIDI0ICovCisJeyAxLAkwLAlzeXNfdGltZSwJInRpbWUiIH0sCQkvKiAyNSAqLworCXsgNSwJMCwJc3lzX3B0cmFjZSwJInB0cmFjZSIgfSwJCS8qIDI2ICovCisJeyAxLAkwLAlzeXNfYWxhcm0sCSJhbGFybSIgfSwJCS8qIDI3ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLCJzaWdhbHRzdGFjayIgfSwJLyogMjggKi8KKwl7IDAsCVRTLAlzeXNfcGF1c2UsCSJwYXVzZSIgfSwJCS8qIDI5ICovCisJeyAyLAlURiwJc3lzX3V0aW1lLAkidXRpbWUiIH0sCQkvKiAzMCAqLworCXsgMywJVEYsCXN5c19jaG93biwJImxjaG93bjMyIiB9LAkJLyogMzEgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24zMiIgfSwJCS8qIDMyICovCisJeyAyLAlURiwJc3lzX2FjY2VzcywJImFjY2VzcyIgfSwJCS8qIDMzICovCisJeyAxLAkwLAlzeXNfbmljZSwJIm5pY2UiIH0sCQkvKiAzNCAqLworCXsgMywJVEYsCXN5c19jaG93biwJImNob3duMzIiIH0sCQkvKiAzNSAqLworCXsgMCwJMCwJc3lzX3N5bmMsCSJzeW5jIiB9LAkJLyogMzYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJImtpbGwiIH0sCQkvKiAzNyAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDM4ICovCisJeyA0LAkwLAlzeXNfc2VuZGZpbGUsCSJzZW5kZmlsZSIgfSwJCS8qIDM5ICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiA0MCAqLworCXsgMiwJMCwJc3lzX2R1cCwJImR1cCIgfSwJCS8qIDQxICovCisJeyAwLAkwLAlzeXNfcGlwZSwJInBpcGUiIH0sCQkvKiA0MiAqLworCXsgMSwJMCwJc3lzX3RpbWVzLAkidGltZXMiIH0sCQkvKiA0MyAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZDMyIiB9LAkJLyogNDQgKi8KKwl7IDIsCVRGLAlzeXNfdW1vdW50MiwJInVtb3VudCIgfSwJCS8qIDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkIiB9LAkJLyogNDYgKi8KKwl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQiIH0sCQkvKiA0NyAqLworCXsgMywJVFMsCXN5c19zaWduYWwsCSJzaWduYWwiIH0sCQkvKiA0OCAqLworCXsgMCwJMCwJc3lzX2dldGV1aWQsCSJnZXRldWlkIiB9LAkJLyogNDkgKi8KKwl7IDAsCTAsCXN5c19nZXRlZ2lkLAkiZ2V0ZWdpZCIgfSwJCS8qIDUwICovCisJeyAxLAlURiwJc3lzX2FjY3QsCSJhY2N0IiB9LAkJLyogNTEgKi8KKwl7IDIsCTAsCXByaW50YXJncywJIm1lbW9yeV9vcmRlcmluZyIgfSwJLyogNTIgKi8KKwl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQzMiIgfSwJCS8qIDUzICovCisJeyAzLAkwLAlzeXNfaW9jdGwsCSJpb2N0bCIgfSwJCS8qIDU0ICovCisJeyAzLAkwLAlzeXNfcmVib290LAkicmVib290IiB9LAkJLyogNTUgKi8KKwl7IDYsCTAsCXN5c19tbWFwLAkibW1hcDIiIH0sCQkvKiA1NiAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkic3ltbGluayIgfSwJCS8qIDU3ICovCisJeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkicmVhZGxpbmsiIH0sCQkvKiA1OCAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCSJleGVjdmUiIH0sCQkvKiA1OSAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkidW1hc2siIH0sCQkvKiA2MCAqLworCXsgMSwJVEYsCXN5c19jaHJvb3QsCSJjaHJvb3QiIH0sCQkvKiA2MSAqLworCXsgMiwJMCwJc3lzX2ZzdGF0LAkiZnN0YXQiIH0sCQkvKiA2MiAqLworCXsgMiwJMCwJc3lzX2ZzdGF0NjQsCSJmc3RhdDY0IiB9LAkJLyogNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwYWdlc2l6ZSwiZ2V0cGFnZXNpemUiIH0sCS8qIDY0ICovCisJeyAzLAkwLAlzeXNfbXN5bmMsCSJtc3luYyIgfSwJCS8qIDY1ICovCisJeyAwLAlUUCwJc3lzX3Zmb3JrLAkidmZvcmsiIH0sCQkvKiA2NiAqLworCXsgNSwJMCwJc3lzX3ByZWFkLAkicHJlYWQiIH0sCQkvKiA2NyAqLworCXsgNSwJMCwJc3lzX3B3cml0ZSwJInB3cml0ZSIgfSwJCS8qIDY4ICovCisJeyAwLCAgICAwLAlzeXNfZ2V0ZXVpZCwJImdldGV1aWQzMiIgfSwJCS8qIDY5ICovCisJeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJImdldGVnaWQzMiIgfSwJCS8qIDcwICovCisJeyA2LAkwLAlzeXNfbW1hcCwJIm1tYXAiIH0sCQkvKiA3MSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQzMiIgfSwJCS8qIDcyICovCisJeyAyLAkwLAlzeXNfbXVubWFwLAkibXVubWFwIiB9LAkJLyogNzMgKi8KKwl7IDMsCTAsCXN5c19tcHJvdGVjdCwJIm1wcm90ZWN0IiB9LAkJLyogNzQgKi8KKwl7IDMsCTAsCXN5c19tYWR2aXNlLAkibWFkdmlzZSIgfSwJCS8qIDc1ICovCisJeyAwLAkwLAlzeXNfdmhhbmd1cCwJInZoYW5ndXAiIH0sCQkvKiA3NiAqLworCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkidHJ1bmNhdGU2NCIgfSwJCS8qIDc3ICovCisJeyAzLAkwLAlzeXNfbWluY29yZSwJIm1pbmNvcmUiIH0sCQkvKiA3OCAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJImdldGdyb3VwcyIgfSwJCS8qIDc5ICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzIiB9LAkJLyogODAgKi8KKwl7IDAsCTAsCXN5c19nZXRwZ3JwLAkiZ2V0cGdycCIgfSwJCS8qIDgxICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzMzIiIH0sCS8qIDgyICovCisJeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkic2V0aXRpbWVyIiB9LAkJLyogODMgKi8KKwl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCSJmdHJ1bmNhdGU2NCIgfSwJLyogODQgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkic3dhcG9uIiB9LAkJLyogODUgKi8KKwl7IDIsCTAsCXN5c19nZXRpdGltZXIsCSJnZXRpdGltZXIiIH0sCQkvKiA4NiAqLworCXsgMSwJMCwJc3lzX3NldHVpZCwJInNldHVpZDMyIiB9LAkJLyogODcgKi8KKwl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwic2V0aG9zdG5hbWUiIH0sCS8qIDg4ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkMzIiIH0sCQkvKiA4OSAqLworCXsgMiwJMCwJc3lzX2R1cDIsCSJkdXAyIiB9LAkJLyogOTAgKi8KKwl7IDEsCTAsCXN5c19zZXRmc3VpZCwJInNldGZzdWlkMzIiIH0sCQkvKiA5MSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGwiIH0sCQkvKiA5MiAqLworCXsgNSwJMCwJc3lzX3NlbGVjdCwJInNlbGVjdCIgfSwJCS8qIDkzICovCisJeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCSJzZXRmc2dpZDMyIiB9LAkJLyogOTQgKi8KKwl7IDEsCTAsCXN5c19mc3luYywJImZzeW5jIiB9LAkJLyogOTUgKi8KKwl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwic2V0cHJpb3JpdHkiIH0sCS8qIDk2ICovCisJeyAzLAlUTiwJc3lzX3NvY2tldCwJInNvY2tldCIgfSwJCS8qIDk3ICovCisJeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCSJjb25uZWN0IiB9LAkJLyogOTggKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkiYWNjZXB0IiB9LAkJLyogOTkgKi8KKwl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwiZ2V0cHJpb3JpdHkiIH0sCS8qIDEwMCAqLworCXsgMSwJVFMsCXByaW50YXJncywJInJ0X3NpZ3JldHVybiIgfSwJLyogMTAxICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwicnRfc2lnYWN0aW9uIiB9LAkvKiAxMDIgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssInJ0X3NpZ3Byb2NtYXNrIiB9LAkvKiAxMDMgKi8KKwl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywicnRfc2lncGVuZGluZyIgfSwJLyogMTA0ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwicnRfc2lndGltZWR3YWl0IiB9LC8qIDEwNSAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sInJ0X3NpZ3F1ZXVlaW5mbyIgfSwvKiAxMDYgKi8KKwl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwicnRfc2lnc3VzcGVuZCIgfSwJLyogMTA3ICovCisJeyAzLAlUUywJc3lzX3NldHJlc3VpZCwJInNldHJlc3VpZCIgfSwJCS8qIDEwOCAqLworCXsgMywgICAgVFMsCXN5c19nZXRyZXN1aWQsCSJnZXRyZXN1aWQiIH0sCQkvKiAxMDkgKi8KKwl7IDMsCVRTLAlzeXNfc2V0cmVzZ2lkLAkic2V0cmVzZ2lkIiB9LAkJLyogMTEwICovCisJeyAzLAlUUywJc3lzX2dldHJlc2dpZCwJImdldHJlc2dpZCIgfSwJCS8qIDExMSAqLworCXsgMiwJVFMsCXN5c19zZXRyZXNnaWQsCSJzZXRyZXNnaWQzMiIgfSwJLyogMTEyICovCisJeyA1LAlUTiwJc3lzX3JlY3Ztc2csCSJyZWN2bXNnIiB9LAkJLyogMTEzICovCisJeyA1LAlUTiwJc3lzX3NlbmRtc2csCSJzZW5kbXNnIiB9LAkJLyogMTE0ICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzMzIiIH0sCS8qIDExNSAqLworCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwiZ2V0dGltZW9mZGF5IiB9LAkvKiAxMTYgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCSJnZXRydXNhZ2UiIH0sCQkvKiAxMTcgKi8KKwl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJImdldHNvY2tvcHQiIH0sCQkvKiAxMTggKi8KKwl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkiZ2V0Y3dkIiB9LAkJLyogMTE5ICovCisJeyAzLAkwLAlzeXNfcmVhZHYsCSJyZWFkdiIgfSwJCS8qIDEyMCAqLworCXsgMywJMCwJc3lzX3dyaXRldiwJIndyaXRldiIgfSwJCS8qIDEyMSAqLworCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwic2V0dGltZW9mZGF5IiB9LAkvKiAxMjIgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24iIH0sCQkvKiAxMjMgKi8KKwl7IDIsCTAsCXN5c19mY2htb2QsCSJmY2htb2QiIH0sCQkvKiAxMjQgKi8KKwl7IDYsCVROLAlzeXNfcmVjdmZyb20sCSJyZWN2ZnJvbSIgfSwJCS8qIDEyNSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQiIH0sCQkvKiAxMjYgKi8KKwl7IDIsCTAsCXN5c19zZXRyZWdpZCwJInNldHJlZ2lkIiB9LAkJLyogMTI3ICovCisJeyAyLAlURiwJc3lzX3JlbmFtZSwJInJlbmFtZSIgfSwJCS8qIDEyOCAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJInRydW5jYXRlIiB9LAkJLyogMTI5ICovCisJeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkiZnRydW5jYXRlIiB9LAkJLyogMTMwICovCisJeyAyLAkwLAlzeXNfZmxvY2ssCSJmbG9jayIgfSwJCS8qIDEzMSAqLworCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkibHN0YXQ2NCIgfSwJCS8qIDEzMiAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCSJzZW5kdG8iIH0sCQkvKiAxMzMgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCSJzaHV0ZG93biIgfSwJCS8qIDEzNCAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkic29ja2V0cGFpciIgfSwJCS8qIDEzNSAqLworCXsgMiwJVEYsCXN5c19ta2RpciwJIm1rZGlyIiB9LAkJLyogMTM2ICovCisJeyAxLAlURiwJc3lzX3JtZGlyLAkicm1kaXIiIH0sCQkvKiAxMzcgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkidXRpbWVzIiB9LAkJLyogMTM4ICovCisJeyAyLAlURiwJc3lzX3N0YXQ2NCwJInN0YXQ2NCIgfSwJCS8qIDEzOSAqLworCXsgNCwgICAgMCwJc3lzX3NlbmRmaWxlNjQsCSJzZW5kZmlsZTY0IiB9LAkJLyogMTQwICovCisJeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLCJnZXRwZWVybmFtZSIgfSwJLyogMTQxICovCisJeyA1LCAgICAwLAlzeXNfZnV0ZXgsCSJmdXRleCIgfSwJCS8qIDE0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkiZ2V0dGlkIiB9LAkJLyogMTQzICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkiZ2V0cmxpbWl0IiB9LAkJLyogMTQ0ICovCisJeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkic2V0cmxpbWl0IiB9LAkJLyogMTQ1ICovCisJeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJInBpdm90X3Jvb3QiIH0sCQkvKiAxNDYgKi8KKwl7IDUsCTAsCXN5c19wcmN0bCwJInByY3RsIiB9LAkJLyogMTQ3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfcmVhZCIgfSwJLyogMTQ4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfd3JpdGUiIH0sCS8qIDE0OSAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwiZ2V0c29ja25hbWUiIH0sCS8qIDE1MCAqLworCXsgNCwJVE4sCXN5c19nZXRtc2csCSJnZXRtc2ciIH0sCQkvKiAxNTEgKi8KKwl7IDQsCVROLAlzeXNfcHV0bXNnLAkicHV0bXNnIiB9LAkJLyogMTUyICovCisJeyAzLAkwLAlzeXNfcG9sbCwJInBvbGwiIH0sCQkvKiAxNTMgKi8KKwl7IDQsCTAsCXN5c19nZXRkZW50czY0LAkiZ2V0ZGVudHM2NCIgfSwJCS8qIDE1NCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGw2NCIgfSwJCS8qIDE1NSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkiZ2V0ZGlyZW50cmllcyIgfSwJLyogMTU2ICovCisJeyAyLAlURiwJc3lzX3N0YXRmcywJInN0YXRmcyIgfSwJCS8qIDE1NyAqLworCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCSJmc3RhdGZzIiB9LAkJLyogMTU4ICovCisJeyAxLAlURiwJc3lzX3Vtb3VudCwJIm9sZHVtb3VudCIgfSwJCS8qIDE1OSAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMTYwICovCisJeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAxNjEgKi8KKwl7IDIsCTAsCXByaW50YXJncywJImdldGRvbWFpbm5hbWUiIH0sCS8qIDE2MiAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsInNldGRvbWFpbm5hbWUiIH0sCS8qIDE2MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkidXRyYXBfaW5zdGFsbCIgfSwJLyogMTY0ICovCisJeyA0LAkwLAlzeXNfcXVvdGFjdGwsCSJxdW90YWN0bCIgfSwJCS8qIDE2NSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkic2V0X3RpZF9hZGRyZXNzIiB9LAkvKiAxNjYgKi8KKwl7IDUsCVRGLAlzeXNfbW91bnQsCSJtb3VudCIgfSwJCS8qIDE2NyAqLworCXsgMiwJMCwJc3lzX3VzdGF0LAkidXN0YXQiIH0sCQkvKiAxNjggKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCSJzZXR4YXR0ciIgfSwJCS8qIDE2OSAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJImxzZXR4YXR0ciIgfSwJCS8qIDE3MCAqLworCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJImZzZXR4YXR0ciIgfSwJCS8qIDE3MSAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJImdldHhhdHRyIiB9LAkJLyogMTcyICovCisJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkibGdldHhhdHRyIiB9LAkJLyogMTczICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCSJnZXRkZW50cyIgfSwJCS8qIDE3NCAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJInNldHNpZCIgfSwJCS8qIDE3NSAqLworCXsgMSwJMCwJc3lzX2ZjaGRpciwJImZjaGRpciIgfSwJCS8qIDE3NiAqLworCXsgNCwgICAgMCwJc3lzX2ZnZXR4YXR0ciwJImZnZXR4YXR0ciIgfSwJCS8qIDE3NyAqLworCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCSJsaXN0eGF0dHIiIH0sCQkvKiAxNzggKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkibGxpc3R4YXR0ciIgfSwJCS8qIDE3OSAqLworCXsgMywJMCwJc3lzX2ZsaXN0eGF0dHIsCSJmbGlzdHhhdHRyIiB9LAkJLyogMTgwICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJyZW1vdmV4YXR0ciIgfSwJLyogMTgxICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJscmVtb3ZleGF0dHIiIH0sCS8qIDE4MiAqLworCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkic2lncGVuZGluZyIgfSwJCS8qIDE4MyAqLworCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwicXVlcnlfbW9kdWxlIiB9LAkvKiAxODQgKi8KKwl7IDIsCTAsCXN5c19zZXRwZ2lkLAkic2V0cGdpZCIgfSwJCS8qIDE4NSAqLworCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwiZnJlbW92ZXhhdHRyIiB9LAkvKiAxODYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJInRraWxsIiB9LAkJLyogMTg3ICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCSJleGl0X2dyb3VwIiB9LAkJLyogMTg4ICovCisJeyAxLAkwLAlzeXNfdW5hbWUsCSJ1bmFtZSIgfSwJCS8qIDE4OSAqLworCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLCJpbml0X21vZHVsZSIgfSwJLyogMTkwICovCisJeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksInBlcnNvbmFsaXR5IiB9LAkvKiAxOTEgKi8KKwl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLCJyZW1hcF9maWxlX3BhZ2VzIiB9LC8qIDE5MiAqLworCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwiZXBvbGxfY3JlYXRlIiB9LAkvKiAxOTMgKi8KKwl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCSJlcG9sbF9jdGwiIH0sCQkvKiAxOTQgKi8KKwl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkiZXBvbGxfd2FpdCIgfSwJCS8qIDE5NSAqLworCXsgMiwJMCwJc3lzX3VsaW1pdCwJInVsaW1pdCIgfSwJCS8qIDE5NiAqLworCXsgMCwJMCwJc3lzX2dldHBwaWQsCSJnZXRwcGlkIiB9LAkJLyogMTk3ICovCisJeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJInNpZ2FjdGlvbiIgfSwJCS8qIDE5OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkic2dldG1hc2siIH0sCQkvKiAxOTkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJInNzZXRtYXNrIiB9LAkJLyogMjAwICovCisJeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCSJzaWdzdXNwZW5kIiB9LAkJLyogMjAxICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiAyMDIgKi8KKwl7IDEsCVRGLAlzeXNfdXNlbGliLAkidXNlbGliIiB9LAkJLyogMjAzICovCisJeyAzLAkwLAlzeXNfcmVhZGRpciwJInJlYWRkaXIiIH0sCQkvKiAyMDQgKi8KKwl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCSJyZWFkYWhlYWQiIH0sCQkvKiAyMDUgKi8KKwl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkic29ja2V0Y2FsbCIgfSwJCS8qIDIwNiAqLworCXsgMywJMCwJc3lzX3N5c2xvZywJInN5c2xvZyIgfSwJCS8qIDIwNyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkibG9va3VwX2Rjb29raWUiIH0sCS8qIDIwOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkiZmFkdmlzZTY0IiB9LAkJLyogMjA5ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCSJmYWR2aXNlNjRfNjQiIH0sCS8qIDIxMCAqLworCXsgMywJVFMsCXN5c190Z2tpbGwsCSJ0Z2tpbGwiIH0sCQkvKiAyMTEgKi8KKwl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJIndhaXRwaWQiIH0sCQkvKiAyMTIgKi8KKwl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkic3dhcG9mZiIgfSwJCS8qIDIxMyAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCSJzeXNpbmZvIiB9LAkJLyogMjE0ICovCisJeyA1LAkwLAlzeXNfaXBjLAkiaXBjIiB9LAkJLyogMjE1ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJInNpZ3JldHVybiIgfSwJCS8qIDIxNiAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJImNsb25lIiB9LAkJLyogMjE3ICovCisJeyAzLAkwLAlzeXNfbW9kaWZ5X2xkdCwJIm1vZGlmeV9sZHQiIH0sCQkvKiAyMTggKi8KKwl7IDEsCTAsCXN5c19hZGp0aW1leCwJImFkanRpbWV4IiB9LAkJLyogMjE5ICovCisJeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLCJzaWdwcm9jbWFzayIgfSwJLyogMjIwICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwiY3JlYXRlX21vZHVsZSIgfSwJLyogMjIxICovCisJeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwiZGVsZXRlX21vZHVsZSIgfSwKKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsImdldF9rZXJuZWxfc3ltcyJ9LAkvKiAyMjMgKi8KKwl7IDEsCTAsCXN5c19nZXRwZ2lkLAkiZ2V0cGdpZCIgfSwJCS8qIDIyNCAqLworCXsgMCwJMCwJc3lzX2JkZmx1c2gsCSJiZGZsdXNoIiB9LAkJLyogMjI1ICovCisJeyAzLAkwLAlzeXNfc3lzZnMsCSJzeXNmcyIgfSwJCS8qIDIyNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLCJhZnNfc3lzY2FsbCIgfSwJLyogMjI3ICovCisJeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCSJzZXRmc3VpZCIgfSwJCS8qIDIyOCAqLworCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkic2V0ZnNnaWQiIH0sCQkvKiAyMjkgKi8KKwl7IDUsCTAsCXN5c19zZWxlY3QsCSJzZWxlY3QiIH0sCQkvKiAyMzAgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkidGltZSIgfSwJCS8qIDIzMSAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDIzMiAqLworCXsgMSwJMCwJc3lzX3N0aW1lLAkic3RpbWUiIH0sCQkvKiAyMzMgKi8KKwl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCSJzdGF0ZnM2NCIgfSwJCS8qIDIzNCAqLworCXsgMywJMCwJc3lzX2ZzdGF0ZnM2NCwJImZzdGF0ZnM2NCIgfSwJCS8qIDIzNSAqLworCXsgNSwJMCwJc3lzX2xsc2VlaywJIl9sbHNlZWsiIH0sCQkvKiAyMzYgKi8KKwl7IDIsCTAsCXN5c19tbG9jaywJIm1sb2NrIiB9LAkJLyogMjM3ICovCisJeyAyLAkwLAlzeXNfbXVubG9jaywJIm11bmxvY2siIH0sCQkvKiAyMzggKi8KKwl7IDIsCTAsCXN5c19tbG9ja2FsbCwJIm1sb2NrYWxsIiB9LAkJLyogMjM5ICovCisJeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJIm11bmxvY2thbGwiIH0sCQkvKiAyNDAgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwic2NoZWRfc2V0cGFyYW0ifSwJLyogMjQxICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sInNjaGVkX2dldHBhcmFtIn0sCS8qIDI0MiAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwic2NoZWRfc2V0c2NoZWR1bGVyIn0sLyogMjQzICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLCJzY2hlZF9nZXRzY2hlZHVsZXIifSwvKiAyNDQgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwic2NoZWRfeWllbGQiIH0sCS8qIDI0NSAqLworCXsgMSwwLHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sLyogMjQ2ICovCisJeyAxLDAsc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwvKiAyNDcgKi8KKwl7IDIsCTAsc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sLyogMjQ4ICovCisJeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkibmFub3NsZWVwIiB9LAkJLyogMjQ5ICovCisJeyA0LAkwLAlzeXNfbXJlbWFwLAkibXJlbWFwIiB9LAkJLyogMjUwICovCisJeyAxLAkwLAlzeXNfc3lzY3RsLAkiX3N5c2N0bCIgfSwJCS8qIDI1MSAqLworCXsgMSwJMCwJc3lzX2dldHNpZCwJImdldHNpZCIgfSwJCS8qIDI1MiAqLworCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJImZkYXRhc3luYyIgfSwJCS8qIDI1MyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkibmZzc2VydmN0bCIgfSwJCS8qIDI1NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkiYXBsaWIiIH0sCQkvKiAyNTUgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLCJjbG9ja19zZXR0aW1lIiB9LAkvKiAyNTYgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLCJjbG9ja19nZXR0aW1lIiB9LAkvKiAyNTcgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsImNsb2NrX2dldHJlcyIgfSwJLyogMjU4ICovCisJeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLCJjbG9ja19uYW5vc2xlZXAiIH0sLyogMjU5ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDI2MCAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LCJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNjEgKi8KKwl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLCJ0aW1lcl9zZXR0aW1lIiB9LAkvKiAyNjIgKi8KKwl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLCJ0aW1lcl9nZXR0aW1lIiB9LAkvKiAyNjMgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLCJ0aW1lcl9nZXRvdmVycnVuIiB9LC8qIDI2NCAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwidGltZXJfZGVsZXRlIiB9LAkvKiAyNjUgKi8KKwl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsInRpbWVyX2NyZWF0ZSIgfSwJLyogMjY2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY3IiB9LAkJLyogMjY3ICovCisJeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDI2OCAqLworCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogMjY5ICovCisJeyAzLAkwLAlzeXNfaW9fc3VibWl0LAkJImlvX3N1Ym1pdCIJfSwgLyogMjcwICovCisJeyAzLAkwLAlzeXNfaW9fY2FuY2VsLAkJImlvX2NhbmNlbCIJfSwgLyogMjcxICovCisJeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyNzIgKi8KKwl7IDQsCTAsCXN5c19tcV9vcGVuLAkJIm1xX29wZW4iCX0sIC8qIDI3MyAqLworCXsgMSwJMCwJc3lzX21xX3VubGluaywJCSJtcV91bmxpbmsiCX0sIC8qIDI3NCAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkc2VuZCwJIm1xX3RpbWVkc2VuZCIJfSwgLyogMjc1ICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRyZWNlaXZlLAkibXFfdGltZWRyZWNlaXZlIiB9LCAvKiAyNzYgKi8KKwl7IDIsCTAsCXN5c19tcV9ub3RpZnksCQkibXFfbm90aWZ5Igl9LCAvKiAyNzcgKi8KKwl7IDMsCTAsCXN5c19tcV9nZXRzZXRhdHRyLAkibXFfZ2V0c2V0YXR0ciIJfSwgLyogMjc4ICovCisJeyA1LAlUUCwJc3lzX3dhaXRpZCwJCSJ3YWl0aWQiCX0sIC8qIDI3OSAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ0ZWUiCQl9LCAvKiAyODAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJhZGRfa2V5Igl9LCAvKiAyODEgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJyZXF1ZXN0X2tleSIJfSwgLyogMjgyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkia2V5Y3RsIgl9LCAvKiAyODMgKi8KKwl7IDQsCVREfFRGLAlzeXNfb3BlbmF0LAkJIm9wZW5hdCIJfSwgLyogMjg0ICovCisJeyAzLAlURHxURiwJc3lzX21rZGlyYXQsCQkibWtkaXJhdCIJfSwgLyogMjg1ICovCisJeyA0LAlURHxURiwJc3lzX21rbm9kYXQsCQkibWtub2RhdCIJfSwgLyogMjg2ICovCisJeyA1LAlURHxURiwJc3lzX2ZjaG93bmF0LAkJImZjaG93bmF0Igl9LCAvKiAyODcgKi8KKwl7IDMsCVREfFRGLAlzeXNfZnV0aW1lc2F0LAkJImZ1dGltZXNhdCIJfSwgLyogMjg4ICovCisJeyA0LAlURHxURCwJc3lzX25ld2ZzdGF0YXQsCQkiZnN0YXRhdDY0Igl9LCAvKiAyODkgKi8KKwl7IDMsCVREfFRGLAlzeXNfdW5saW5rYXQsCQkidW5saW5rYXQiCX0sIC8qIDI5MCAqLworCXsgNCwJVER8VEYsCXN5c19yZW5hbWVhdCwJCSJyZW5hbWVhdCIJfSwgLyogMjkxICovCisJeyA1LAlURHxURiwJc3lzX2xpbmthdCwJCSJsaW5rYXQiCX0sIC8qIDI5MiAqLworCXsgMywJVER8VEYsCXN5c19zeW1saW5rYXQsCQkic3ltbGlua2F0Igl9LCAvKiAyOTMgKi8KKwl7IDQsCVREfFRGLAlzeXNfcmVhZGxpbmthdCwJCSJyZWFkbGlua2F0Igl9LCAvKiAyOTQgKi8KKwl7IDMsCVREfFRGLAlzeXNfZmNobW9kYXQsCQkiZmNobW9kYXQiCX0sIC8qIDI5NSAqLworCXsgMywJVER8VEYsCXN5c19mYWNjZXNzYXQsCQkiZmFjY2Vzc2F0Igl9LCAvKiAyOTYgKi8KKwl7IDYsCVRELAlzeXNfcHNlbGVjdDYsCQkicHNlbGVjdDYiCX0sIC8qIDI5NyAqLworCXsgNSwJVEQsCXN5c19wcG9sbCwJCSJwcG9sbCIJCX0sIC8qIDI5OCAqLworCXsgMSwJVFAsCXN5c191bnNoYXJlLAkJInVuc2hhcmUiCX0sIC8qIDI5OSAqLworCXsgMiwJMCwJcHJpbnRhcmdzLAkJInNldF9yb2J1c3RfbGlzdCIgfSwgLyogMzAwICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiZ2V0X3JvYnVzdF9saXN0IiB9LCAvKiAzMDEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDIiIH0sCQkvKiAzMDIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDMiIH0sCQkvKiAzMDMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDQiIH0sCQkvKiAzMDQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDUiIH0sCQkvKiAzMDUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDYiIH0sCQkvKiAzMDYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDciIH0sCQkvKiAzMDcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDgiIH0sCQkvKiAzMDggKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMDkiIH0sCQkvKiAzMDkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTAiIH0sCQkvKiAzMTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTEiIH0sCQkvKiAzMTEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTIiIH0sCQkvKiAzMTIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTMiIH0sCQkvKiAzMTMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTQiIH0sCQkvKiAzMTQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTUiIH0sCQkvKiAzMTUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTYiIH0sCQkvKiAzMTYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTciIH0sCQkvKiAzMTcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTgiIH0sCQkvKiAzMTggKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMTkiIH0sCQkvKiAzMTkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjAiIH0sCQkvKiAzMjAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjEiIH0sCQkvKiAzMjEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjIiIH0sCQkvKiAzMjIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjMiIH0sCQkvKiAzMjMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjQiIH0sCQkvKiAzMjQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjUiIH0sCQkvKiAzMjUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjYiIH0sCQkvKiAzMjYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjciIH0sCQkvKiAzMjcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjgiIH0sCQkvKiAzMjggKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMjkiIH0sCQkvKiAzMjkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzAiIH0sCQkvKiAzMzAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzEiIH0sCQkvKiAzMzEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzIiIH0sCQkvKiAzMzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzMiIH0sCQkvKiAzMzMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzQiIH0sCQkvKiAzMzQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzUiIH0sCQkvKiAzMzUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzYiIH0sCQkvKiAzMzYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzciIH0sCQkvKiAzMzcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzgiIH0sCQkvKiAzMzggKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zMzkiIH0sCQkvKiAzMzkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDAiIH0sCQkvKiAzNDAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDEiIH0sCQkvKiAzNDEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDIiIH0sCQkvKiAzNDIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDMiIH0sCQkvKiAzNDMgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDQiIH0sCQkvKiAzNDQgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDUiIH0sCQkvKiAzNDUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDYiIH0sCQkvKiAzNDYgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDciIH0sCQkvKiAzNDcgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDgiIH0sCQkvKiAzNDggKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNDkiIH0sCQkvKiAzNDkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTAiIH0sCQkvKiAzNTAgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTEiIH0sCQkvKiAzNTEgKi8KKwl7IDUsCTAsCXByaW50YXJncywJIlNZU18zNTIiIH0sCQkvKiAzNTIgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjL3N5c2NhbGxlbnQxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI1YzMzNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYy9zeXNjYWxsZW50MS5oCkBAIC0wLDAgKzEsNDM5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsZW50MS5oLHYgMS4xLjEuMSAxOTk5LzAyLzE5IDAwOjIzOjE5IHdpY2hlcnQgRXhwICQKKyAqLworCisJeyA2LAkwLAlzb2xhcmlzX3N5c2NhbGwsCSJzeXNjYWxsIgl9LCAvKiAwICovCisJeyA2LAlUUCwJc29sYXJpc19leGl0LAkJIl9leGl0IgkJfSwgLyogMSAqLworCXsgNiwJVFAsCXNvbGFyaXNfZm9yaywJCSJmb3JrIgkJfSwgLyogMiAqLworCXsgNiwJMCwJc29sYXJpc19yZWFkLAkJInJlYWQiCQl9LCAvKiAzICovCisJeyA2LAkwLAlzb2xhcmlzX3dyaXRlLAkJIndyaXRlIgkJfSwgLyogNCAqLworCXsgNiwJVEYsCXNvbGFyaXNfb3BlbiwJCSJvcGVuIgkJfSwgLyogNSAqLworCXsgNiwJMCwJc29sYXJpc19jbG9zZSwJCSJjbG9zZSIJCX0sIC8qIDYgKi8KKwl7IDYsCVRQLAlzb2xhcmlzX3dhaXQsCQkid2FpdCIJCX0sIC8qIDcgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLworCXsgNiwJVEYsCXNvbGFyaXNfbGluaywJCSJsaW5rIgkJfSwgLyogOSAqLworCXsgNiwJVEYsCXNvbGFyaXNfdW5saW5rLAkJInVubGluayIJfSwgLyogMTAgKi8KKwl7IDYsCVRGfFRQLAlzb2xhcmlzX2V4ZWMsCQkiZXhlYyIJCX0sIC8qIDExICovCisJeyA2LAlURiwJc29sYXJpc19jaGRpciwJCSJjaGRpciIJCX0sIC8qIDEyICovCisJeyA2LAkwLAlzb2xhcmlzX3RpbWUsCQkidGltZSIJCX0sIC8qIDEzICovCisJeyA2LAlURiwJc29sYXJpc19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCisJeyA2LAlURiwJc29sYXJpc19jaG1vZCwJCSJjaG1vZCIJCX0sIC8qIDE1ICovCisJeyA2LAlURiwJc29sYXJpc19jaG93biwJCSJjaG93biIJCX0sIC8qIDE2ICovCisJeyA2LAkwLAlzb2xhcmlzX2JyaywJCSJicmsiCQl9LCAvKiAxNyAqLworCXsgNiwJVEYsCXNvbGFyaXNfc3RhdCwJCSJzdGF0IgkJfSwgLyogMTggKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHNlZWssCQkibHNlZWsiCQl9LCAvKiAxOSAqLworCXsgNiwJMCwJc29sYXJpc19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLworCXsgNiwJVEYsCXNvbGFyaXNfbW91bnQsCQkibW91bnQiCQl9LCAvKiAyMSAqLworCXsgNiwJVEYsCXNvbGFyaXNfdW1vdW50LAkJInVtb3VudCIJfSwgLyogMjIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ2V0dWlkLAkJImdldHVpZCIJfSwgLyogMjQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3RpbWUsCQkic3RpbWUiCQl9LCAvKiAyNSAqLworCXsgNiwJMCwJc29sYXJpc19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLworCXsgNiwJMCwJc29sYXJpc19hbGFybSwJCSJhbGFybSIJCX0sIC8qIDI3ICovCisJeyA2LAkwLAlzb2xhcmlzX2ZzdGF0LAkJImZzdGF0IgkJfSwgLyogMjggKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3BhdXNlLAkJInBhdXNlIgkJfSwgLyogMjkgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3V0aW1lLAkJInV0aW1lIgkJfSwgLyogMzAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ3R0eSwJCSJndHR5IgkJfSwgLyogMzIgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX2FjY2VzcywJCSJhY2Nlc3MiCX0sIC8qIDMzICovCisJeyA2LAkwLAlzb2xhcmlzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCisJeyA2LAlURiwJc29sYXJpc19zdGF0ZnMsCQkic3RhdGZzIgl9LCAvKiAzNSAqLworCXsgNiwJMCwJc29sYXJpc19zeW5jLAkJInN5bmMiCQl9LCAvKiAzNiAqLworCXsgNiwJVFMsCXNvbGFyaXNfa2lsbCwJCSJraWxsIgkJfSwgLyogMzcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZnN0YXRmcywJImZzdGF0ZnMiCX0sIC8qIDM4ICovCisJeyA2LAkwLAlzb2xhcmlzX3BncnBzeXMsCSJwZ3Jwc3lzIgl9LCAvKiAzOSAqLworCXsgNiwJMCwJc29sYXJpc194ZW5peCwJCSJ4ZW5peCIJCX0sIC8qIDQwICovCisJeyA2LAkwLAlzb2xhcmlzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLworCXsgNiwJMCwJc29sYXJpc19waXBlLAkJInBpcGUiCQl9LCAvKiA0MiAqLworCXsgNiwJMCwJc29sYXJpc190aW1lcywJCSJ0aW1lcyIJCX0sIC8qIDQzICovCisJeyA2LAkwLAlzb2xhcmlzX3Byb2ZpbCwJCSJwcm9maWwiCX0sIC8qIDQ0ICovCisJeyA2LAkwLAlzb2xhcmlzX3Bsb2NrLAkJInBsb2NrIgkJfSwgLyogNDUgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ2V0Z2lkLAkJImdldGdpZCIJfSwgLyogNDcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2lnY2FsbCwJInNpZ2NhbGwiCX0sIC8qIDQ4ICovCisJeyA2LAlUSSwJc29sYXJpc19tc2dzeXMsCQkibXNnc3lzIgl9LCAvKiA0OSAqLworCXsgNiwJMCwJc29sYXJpc19zeXNzdW4sCQkic3lzc3VuIgl9LCAvKiA1MCAqLworCXsgNiwJVEYsCXNvbGFyaXNfYWNjdCwJCSJhY2N0IgkJfSwgLyogNTEgKi8KKwl7IDYsCVRJLAlzb2xhcmlzX3NobXN5cywJCSJzaG1zeXMiCX0sIC8qIDUyICovCisJeyA2LAlUSSwJc29sYXJpc19zZW1zeXMsCQkic2Vtc3lzIgl9LCAvKiA1MyAqLworCXsgNiwJMCwJc29sYXJpc19pb2N0bCwJCSJpb2N0bCIJCX0sIC8qIDU0ICovCisJeyA2LAkwLAlzb2xhcmlzX3VhZG1pbiwJCSJ1YWRtaW4iCX0sIC8qIDU1ICovCisJeyA2LAkwLAlzb2xhcmlzX3N5c21wLAkJInN5c21wIgkJfSwgLyogNTYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdXRzc3lzLAkJInV0c3N5cyIJfSwgLyogNTcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZmRzeW5jLAkJImZkc3luYyIJfSwgLyogNTggKi8KKwl7IDYsCVRGfFRQLAlzb2xhcmlzX2V4ZWN2ZSwJCSJleGVjdmUiCX0sIC8qIDU5ICovCisJeyA2LAkwLAlzb2xhcmlzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX2Nocm9vdCwJCSJjaHJvb3QiCX0sIC8qIDYxICovCisJeyA2LAkwLAlzb2xhcmlzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNjIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNjMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjQiCX0sIC8qIDY0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY1Igl9LCAvKiA2NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NiIJfSwgLyogNjYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjciCX0sIC8qIDY3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY4Igl9LCAvKiA2OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182OSIJfSwgLyogNjkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzAiCX0sIC8qIDcwICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcxIgl9LCAvKiA3MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MiIJfSwgLyogNzIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzMiCX0sIC8qIDczICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc0Igl9LCAvKiA3NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183NSIJfSwgLyogNzUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzYiCX0sIC8qIDc2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc3Igl9LCAvKiA3NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183OCIJfSwgLyogNzggKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3JtZGlyLAkJInJtZGlyIgkJfSwgLyogNzkgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogODAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ2V0ZGVudHMsCSJnZXRkZW50cyIJfSwgLyogODEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2dpbmFwLAkJInNnaW5hcCIJfSwgLyogODIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2dpa29wdCwJInNnaWtvcHQiCX0sIC8qIDgzICovCisJeyA2LAkwLAlzb2xhcmlzX3N5c2ZzLAkJInN5c2ZzIgkJfSwgLyogODQgKi8KKwl7IDYsCVROLAlzeXNfZ2V0bXNnLAkJImdldG1zZyIJfSwgLyogODUgKi8KKwl7IDYsCVROLAlzeXNfcHV0bXNnLAkJInB1dG1zZyIJfSwgLyogODYgKi8KKwl7IDYsCVROLAlzb2xhcmlzX3BvbGwsCQkicG9sbCIJCX0sIC8qIDg3ICovCisJeyA2LAlURiwJc29sYXJpc19sc3RhdCwJCSJsc3RhdCIJCX0sIC8qIDg4ICovCisJeyA2LAlURiwJc29sYXJpc19zeW1saW5rLAkic3ltbGluayIJfSwgLyogODkgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3JlYWRsaW5rLAkicmVhZGxpbmsiCX0sIC8qIDkwICovCisJeyA2LAkwLAlzb2xhcmlzX3NldGdyb3VwcywJInNldGdyb3VwcyIJfSwgLyogOTEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzIgl9LCAvKiA5MiAqLworCXsgNiwJMCwJc29sYXJpc19mY2htb2QsCQkiZmNobW9kIgl9LCAvKiA5MyAqLworCXsgNiwJMCwJc29sYXJpc19mY2hvd24sCQkiZmNob3duIgl9LCAvKiA5NCAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lncHJvY21hc2ssCSJzaWdwcm9jbWFzayIJfSwgLyogOTUgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ3N1c3BlbmQsCSJzaWdzdXNwZW5kIgl9LCAvKiA5NiAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lnYWx0c3RhY2ssCSJzaWdhbHRzdGFjayIJfSwgLyogOTcgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ2FjdGlvbiwJInNpZ2FjdGlvbiIJfSwgLyogOTggKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3BjYWxsLAkJInNwY2FsbCIJfSwgLyogOTkgKi8KKwl7IDYsCTAsCXNvbGFyaXNfY29udGV4dCwJImNvbnRleHQiCX0sIC8qIDEwMCAqLworCXsgNiwJMCwJc29sYXJpc19ldnN5cywJCSJldnN5cyIJCX0sIC8qIDEwMSAqLworCXsgNiwJMCwJc29sYXJpc19ldnRyYXByZXQsCSJldnRyYXByZXQiCX0sIC8qIDEwMiAqLworCXsgNiwJVEYsCXNvbGFyaXNfc3RhdHZmcywJInN0YXR2ZnMiCX0sIC8qIDEwMyAqLworCXsgNiwJMCwJc29sYXJpc19mc3RhdHZmcywJImZzdGF0dmZzIgl9LCAvKiAxMDQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTA1Igl9LCAvKiAxMDUgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbmZzc3lzLAkJIm5mc3N5cyIJfSwgLyogMTA2ICovCisJeyA2LAlUUCwJc29sYXJpc193YWl0aWQsCQkid2FpdGlkIgl9LCAvKiAxMDcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2lnc2VuZHN5cywJInNpZ3NlbmRzeXMiCX0sIC8qIDEwOCAqLworCXsgNiwJMCwJc29sYXJpc19ocnRzeXMsCQkiaHJ0c3lzIgl9LCAvKiAxMDkgKi8KKwl7IDYsCTAsCXNvbGFyaXNfYWNhbmNlbCwJImFjYW5jZWwiCX0sIC8qIDExMCAqLworCXsgNiwJMCwJc29sYXJpc19hc3luYywJCSJhc3luYyIJCX0sIC8qIDExMSAqLworCXsgNiwJMCwJc29sYXJpc19wcmlvY250bHN5cywJInByaW9jbnRsc3lzIgl9LCAvKiAxMTIgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3BhdGhjb25mLAkicGF0aGNvbmYiCX0sIC8qIDExMyAqLworCXsgNiwJMCwJc29sYXJpc19taW5jb3JlLAkibWluY29yZSIJfSwgLyogMTE0ICovCisJeyA2LAkwLAlzb2xhcmlzX21tYXAsCQkibW1hcCIJCX0sIC8qIDExNSAqLworCXsgNiwJMCwJc29sYXJpc19tcHJvdGVjdCwJIm1wcm90ZWN0Igl9LCAvKiAxMTYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbXVubWFwLAkJIm11bm1hcCIJfSwgLyogMTE3ICovCisJeyA2LAkwLAlzb2xhcmlzX2ZwYXRoY29uZiwJImZwYXRoY29uZiIJfSwgLyogMTE4ICovCisJeyA2LAlUUCwJc29sYXJpc192Zm9yaywJCSJ2Zm9yayIJCX0sIC8qIDExOSAqLworCXsgNiwJMCwJc29sYXJpc19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMjAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfcmVhZHYsCQkicmVhZHYiCQl9LCAvKiAxMjEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfd3JpdGV2LAkJIndyaXRldiIJfSwgLyogMTIyICovCisJeyA2LAlURiwJc29sYXJpc194c3RhdCwJCSJ4c3RhdCIJCX0sIC8qIDEyMyAqLworCXsgNiwJVEYsCXNvbGFyaXNfbHhzdGF0LAkJImx4c3RhdCIJfSwgLyogMTI0ICovCisJeyA2LAkwLAlzb2xhcmlzX2Z4c3RhdCwJCSJmeHN0YXQiCX0sIC8qIDEyNSAqLworCXsgNiwJVEYsCXNvbGFyaXNfeG1rbm9kLAkJInhta25vZCIJfSwgLyogMTI2ICovCisJeyA2LAkwLAlzb2xhcmlzX2Nsb2NhbCwJCSJjbG9jYWwiCX0sIC8qIDEyNyAqLworCXsgNiwJMCwJc29sYXJpc19zZXRybGltaXQsCSJzZXRybGltaXQiCX0sIC8qIDEyOCAqLworCXsgNiwJMCwJc29sYXJpc19nZXRybGltaXQsCSJnZXRybGltaXQiCX0sIC8qIDEyOSAqLworCXsgNiwJVEYsCXNvbGFyaXNfbGNob3duLAkJImxjaG93biIJfSwgLyogMTMwICovCisJeyA2LAkwLAlzb2xhcmlzX21lbWNudGwsCSJtZW1jbnRsIgl9LCAvKiAxMzEgKi8KKwl7IDYsCVROLAlzb2xhcmlzX2dldHBtc2csCSJnZXRwbXNnIgl9LCAvKiAxMzIgKi8KKwl7IDYsCVROLAlzb2xhcmlzX3B1dHBtc2csCSJwdXRwbXNnIgl9LCAvKiAxMzMgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDEzNCAqLworCXsgNiwJMCwJc29sYXJpc191bmFtZSwJCSJ1bmFtZSIJCX0sIC8qIDEzNSAqLworCXsgNiwJMCwJc29sYXJpc19zZXRlZ2lkLAkic2V0ZWdpZCIJfSwgLyogMTM2ICovCisJeyA2LAkwLAlzb2xhcmlzX3N5c2NvbmZpZywJInN5c2NvbmZpZyIJfSwgLyogMTM3ICovCisJeyA2LAkwLAlzb2xhcmlzX2FkanRpbWUsCSJhZGp0aW1lIgl9LCAvKiAxMzggKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3lzaW5mbywJInN5c2luZm8iCX0sIC8qIDEzOSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDAiCX0sIC8qIDE0MCAqLworCXsgNiwJMCwJc29sYXJpc19zZXRldWlkLAkic2V0ZXVpZCIJfSwgLyogMTQxICovCisJeyA2LAkwLAlzb2xhcmlzX3Z0cmFjZSwJCSJ2dHJhY2UiCX0sIC8qIDE0MiAqLworCXsgNiwJVFAsCXNvbGFyaXNfZm9yazEsCQkiZm9yazEiCQl9LCAvKiAxNDMgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ3RpbWVkd2FpdCwJInNpZ3RpbWVkd2FpdCIJfSwgLyogMTQ0ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9pbmZvLAkibHdwX2luZm8iCX0sIC8qIDE0NSAqLworCXsgNiwJMCwJc29sYXJpc195aWVsZCwJCSJ5aWVsZCIJCX0sIC8qIDE0NiAqLworCXsgNiwJMCwJc29sYXJpc19sd3Bfc2VtYV93YWl0LAkibHdwX3NlbWFfd2FpdCIJfSwgLyogMTQ3ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9zZW1hX3Bvc3QsCSJsd3Bfc2VtYV9wb3N0Igl9LCAvKiAxNDggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTQ5Igl9LCAvKiAxNDkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTUwIgl9LCAvKiAxNTAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTUxIgl9LCAvKiAxNTEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbW9kY3RsLAkJIm1vZGN0bCIJfSwgLyogMTUyICovCisJeyA2LAkwLAlzb2xhcmlzX2ZjaHJvb3QsCSJmY2hyb290Igl9LCAvKiAxNTMgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3V0aW1lcywJCSJ1dGltZXMiCX0sIC8qIDE1NCAqLworCXsgNiwJMCwJc29sYXJpc192aGFuZ3VwLAkidmhhbmd1cCIJfSwgLyogMTU1ICovCisJeyA2LAkwLAlzb2xhcmlzX2dldHRpbWVvZmRheSwJImdldHRpbWVvZmRheSIJfSwgLyogMTU2ICovCisJeyA2LAkwLAlzb2xhcmlzX2dldGl0aW1lciwJImdldGl0aW1lciIJfSwgLyogMTU3ICovCisJeyA2LAkwLAlzb2xhcmlzX3NldGl0aW1lciwJInNldGl0aW1lciIJfSwgLyogMTU4ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9jcmVhdGUsCSJsd3BfY3JlYXRlIgl9LCAvKiAxNTkgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX2V4aXQsCSJsd3BfZXhpdCIJfSwgLyogMTYwICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9zdXNwZW5kLAkibHdwX3N1c3BlbmQiCX0sIC8qIDE2MSAqLworCXsgNiwJMCwJc29sYXJpc19sd3BfY29udGludWUsCSJsd3BfY29udGludWUiCX0sIC8qIDE2MiAqLworCXsgNiwJMCwJc29sYXJpc19sd3Bfa2lsbCwJImx3cF9raWxsIgl9LCAvKiAxNjMgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX3NlbGYsCSJsd3Bfc2VsZiIJfSwgLyogMTY0ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9zZXRwcml2YXRlLAkibHdwX3NldHByaXZhdGUifSwgLyogMTY1ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9nZXRwcml2YXRlLAkibHdwX2dldHByaXZhdGUifSwgLyogMTY2ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF93YWl0LAkibHdwX3dhaXQiCX0sIC8qIDE2NyAqLworCXsgNiwJMCwJc29sYXJpc19sd3BfbXV0ZXhfdW5sb2NrLCJsd3BfbXV0ZXhfdW5sb2NrIn0sIC8qIDE2OCAqLworCXsgNiwJMCwJc29sYXJpc19sd3BfbXV0ZXhfbG9jaywJImx3cF9tdXRleF9sb2NrIn0sIC8qIDE2OSAqLworCXsgNiwJMCwJc29sYXJpc19sd3BfY29uZF93YWl0LAkibHdwX2NvbmRfd2FpdCJ9LCAvKiAxNzAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX2NvbmRfc2lnbmFsLCJsd3BfY29uZF9zaWduYWwifSwgLyogMTcxICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9jb25kX2Jyb2FkY2FzdCwibHdwX2NvbmRfYnJvYWRjYXN0In0sIC8qIDE3MiAqLworCXsgNiwJMCwJc29sYXJpc19wcmVhZCwJCSJwcmVhZCIJCX0sIC8qIDE3MyAqLworCXsgNiwJMCwJc29sYXJpc19wd3JpdGUsCQkicHdyaXRlIgl9LCAvKiAxNzQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbGxzZWVrLAkJImxsc2VlayIJfSwgLyogMTc1ICovCisJeyA2LAkwLAlzb2xhcmlzX2luc3Rfc3luYywJImluc3Rfc3luYyIJfSwgLyogMTc2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3NyIJfSwgLyogMTc3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OCIJfSwgLyogMTc4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE3OSIJfSwgLyogMTc5ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MCIJfSwgLyogMTgwICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MSIJfSwgLyogMTgxICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MiIJfSwgLyogMTgyICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4MyIJfSwgLyogMTgzICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NCIJfSwgLyogMTg0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE4NSIJfSwgLyogMTg1ICovCisJeyA2LAkwLAlzb2xhcmlzX2F1ZGl0c3lzLAkiYXVkaXRzeXMiCX0sIC8qIDE4NiAqLworCXsgNiwJMCwJc29sYXJpc19wcm9jZXNzb3JfYmluZCwJInByb2Nlc3Nvcl9iaW5kIn0sIC8qIDE4NyAqLworCXsgNiwJMCwJc29sYXJpc19wcm9jZXNzb3JfaW5mbywJInByb2Nlc3Nvcl9pbmZvIn0sIC8qIDE4OCAqLworCXsgNiwJMCwJc29sYXJpc19wX29ubGluZSwJInBfb25saW5lIgl9LCAvKiAxODkgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2lncXVldWUsCSJzaWdxdWV1ZSIJfSwgLyogMTkwICovCisJeyA2LAkwLAlzb2xhcmlzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAxOTEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDE5MiAqLworCXsgNiwJMCwJc29sYXJpc19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDE5MyAqLworCXsgNiwJMCwJc29sYXJpc190aW1lcl9jcmVhdGUsCSJ0aW1lcl9jcmVhdGUiCX0sIC8qIDE5NCAqLworCXsgNiwJMCwJc29sYXJpc190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDE5NSAqLworCXsgNiwJMCwJc29sYXJpc190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMTk2ICovCisJeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAxOTcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdGltZXJfZ2V0b3ZlcnJ1biwidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAxOTggKi8KKwl7IDYsCTAsCXNvbGFyaXNfbmFub3NsZWVwLAkibmFub3NsZWVwIgl9LCAvKiAxOTkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAwIgl9LCAvKiAyMDAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAxIgl9LCAvKiAyMDEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAyIgl9LCAvKiAyMDIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjAzIgl9LCAvKiAyMDMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA0Igl9LCAvKiAyMDQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA1Igl9LCAvKiAyMDUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA2Igl9LCAvKiAyMDYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA3Igl9LCAvKiAyMDcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA4Igl9LCAvKiAyMDggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjA5Igl9LCAvKiAyMDkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEwIgl9LCAvKiAyMTAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjExIgl9LCAvKiAyMTEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEyIgl9LCAvKiAyMTIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjEzIgl9LCAvKiAyMTMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE0Igl9LCAvKiAyMTQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE1Igl9LCAvKiAyMTUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE2Igl9LCAvKiAyMTYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE3Igl9LCAvKiAyMTcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE4Igl9LCAvKiAyMTggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjE5Igl9LCAvKiAyMTkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIwIgl9LCAvKiAyMjAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIxIgl9LCAvKiAyMjEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIyIgl9LCAvKiAyMjIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjIzIgl9LCAvKiAyMjMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI0Igl9LCAvKiAyMjQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI1Igl9LCAvKiAyMjUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI2Igl9LCAvKiAyMjYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI3Igl9LCAvKiAyMjcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI4Igl9LCAvKiAyMjggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjI5Igl9LCAvKiAyMjkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMwIgl9LCAvKiAyMzAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMxIgl9LCAvKiAyMzEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMyIgl9LCAvKiAyMzIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjMzIgl9LCAvKiAyMzMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM0Igl9LCAvKiAyMzQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM1Igl9LCAvKiAyMzUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM2Igl9LCAvKiAyMzYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM3Igl9LCAvKiAyMzcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM4Igl9LCAvKiAyMzggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjM5Igl9LCAvKiAyMzkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQwIgl9LCAvKiAyNDAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQxIgl9LCAvKiAyNDEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQyIgl9LCAvKiAyNDIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQzIgl9LCAvKiAyNDMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ0Igl9LCAvKiAyNDQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ1Igl9LCAvKiAyNDUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ2Igl9LCAvKiAyNDYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ3Igl9LCAvKiAyNDcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ4Igl9LCAvKiAyNDggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjQ5Igl9LCAvKiAyNDkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUwIgl9LCAvKiAyNTAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUxIgl9LCAvKiAyNTEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUyIgl9LCAvKiAyNTIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjUzIgl9LCAvKiAyNTMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU0Igl9LCAvKiAyNTQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU1Igl9LCAvKiAyNTUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU2Igl9LCAvKiAyNTYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU3Igl9LCAvKiAyNTcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU4Igl9LCAvKiAyNTggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjU5Igl9LCAvKiAyNTkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYwIgl9LCAvKiAyNjAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYxIgl9LCAvKiAyNjEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYyIgl9LCAvKiAyNjIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjYzIgl9LCAvKiAyNjMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY0Igl9LCAvKiAyNjQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY1Igl9LCAvKiAyNjUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY2Igl9LCAvKiAyNjYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY3Igl9LCAvKiAyNjcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY4Igl9LCAvKiAyNjggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjY5Igl9LCAvKiAyNjkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcwIgl9LCAvKiAyNzAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcxIgl9LCAvKiAyNzEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjcyIgl9LCAvKiAyNzIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjczIgl9LCAvKiAyNzMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc0Igl9LCAvKiAyNzQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc1Igl9LCAvKiAyNzUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc2Igl9LCAvKiAyNzYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc3Igl9LCAvKiAyNzcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc4Igl9LCAvKiAyNzggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjc5Igl9LCAvKiAyNzkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgwIgl9LCAvKiAyODAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgxIgl9LCAvKiAyODEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgyIgl9LCAvKiAyODIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjgzIgl9LCAvKiAyODMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg0Igl9LCAvKiAyODQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg1Igl9LCAvKiAyODUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg2Igl9LCAvKiAyODYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg3Igl9LCAvKiAyODcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg4Igl9LCAvKiAyODggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjg5Igl9LCAvKiAyODkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkwIgl9LCAvKiAyOTAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkxIgl9LCAvKiAyOTEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkyIgl9LCAvKiAyOTIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjkzIgl9LCAvKiAyOTMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk0Igl9LCAvKiAyOTQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk1Igl9LCAvKiAyOTUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk2Igl9LCAvKiAyOTYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk3Igl9LCAvKiAyOTcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk4Igl9LCAvKiAyOTggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMjk5Igl9LCAvKiAyOTkgKi8KKworCXsgNiwJMCwJc29sYXJpc19nZXRwZ3JwLAkiZ2V0cGdycCIJfSwgLyogMzAwICovCisJeyA2LAkwLAlzb2xhcmlzX3NldHBncnAsCSJzZXRwZ3JwIgl9LCAvKiAzMDEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMzAyICovCisJeyA2LAkwLAlzb2xhcmlzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDMwMyAqLworCXsgNiwJMCwJc29sYXJpc19nZXRwZ2lkLAkiZ2V0cGdpZCIJfSwgLyogMzA0ICovCisJeyA2LAkwLAlzb2xhcmlzX3NldHBnaWQsCSJzZXRwZ2lkIgl9LCAvKiAzMDUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA2Igl9LCAvKiAzMDYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA3Igl9LCAvKiAzMDcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA4Igl9LCAvKiAzMDggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzA5Igl9LCAvKiAzMDkgKi8KKworCXsgNiwJVFMsCXNvbGFyaXNfc2lnbmFsLAkJInNpZ25hbCIJfSwgLyogMzEwICovCisJeyA2LAlUUywJc29sYXJpc19zaWdzZXQsCQkic2lnc2V0Igl9LCAvKiAzMTEgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ2hvbGQsCSJzaWdob2xkIgl9LCAvKiAzMTIgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ3JlbHNlLAkic2lncmVsc2UiCX0sIC8qIDMxMyAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lnaWdub3JlLAkic2lnaWdub3JlIgl9LCAvKiAzMTQgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ3BhdXNlLAkic2lncGF1c2UiCX0sIC8qIDMxNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTYiCX0sIC8qIDMxNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTciCX0sIC8qIDMxNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTgiCX0sIC8qIDMxOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMTkiCX0sIC8qIDMxOSAqLworCisJeyA2LAlUSSwJc29sYXJpc19tc2dnZXQsCQkibXNnZ2V0Igl9LCAvKiAzMjAgKi8KKwl7IDYsCVRJLAlzb2xhcmlzX21zZ2N0bCwJCSJtc2djdGwiCX0sIC8qIDMyMSAqLworCXsgNiwJVEksCXNvbGFyaXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogMzIyICovCisJeyA2LAlUSSwJc29sYXJpc19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiAzMjMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI0Igl9LCAvKiAzMjQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI1Igl9LCAvKiAzMjUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI2Igl9LCAvKiAzMjYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI3Igl9LCAvKiAzMjcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI4Igl9LCAvKiAzMjggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzI5Igl9LCAvKiAzMjkgKi8KKworCXsgNiwJVEksCXNvbGFyaXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiAzMzAgKi8KKwl7IDYsCVRJLAlzb2xhcmlzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDMzMSAqLworCXsgNiwJVEksCXNvbGFyaXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiAzMzIgKi8KKwl7IDYsCVRJLAlzb2xhcmlzX3NobWdldCwJCSJzaG1nZXQiCX0sIC8qIDMzMyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzQiCX0sIC8qIDMzNCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzUiCX0sIC8qIDMzNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzYiCX0sIC8qIDMzNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzciCX0sIC8qIDMzNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzgiCX0sIC8qIDMzOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMzkiCX0sIC8qIDMzOSAqLworCisJeyA2LAlUSSwJc29sYXJpc19zZW1jdGwsCQkic2VtY3RsIgl9LCAvKiAzNDAgKi8KKwl7IDYsCVRJLAlzb2xhcmlzX3NlbWdldCwJCSJzZW1nZXQiCX0sIC8qIDM0MSAqLworCXsgNiwJVEksCXNvbGFyaXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiAzNDIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQzIgl9LCAvKiAzNDMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ0Igl9LCAvKiAzNDQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ1Igl9LCAvKiAzNDUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ2Igl9LCAvKiAzNDYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ3Igl9LCAvKiAzNDcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ4Igl9LCAvKiAzNDggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzQ5Igl9LCAvKiAzNDkgKi8KKworCXsgNiwJMCwJc29sYXJpc19vbGR1bmFtZSwJIm9sZHVuYW1lIgl9LCAvKiAzNTAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJ1dHNzeXMxIgl9LCAvKiAzNTEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdXN0YXQsCQkidXN0YXQiCQl9LCAvKiAzNTIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZnVzZXJzLAkJImZ1c2VycyIJfSwgLyogMzUzICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NCIJfSwgLyogMzU0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NSIJfSwgLyogMzU1ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NiIJfSwgLyogMzU2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NyIJfSwgLyogMzU3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OCIJfSwgLyogMzU4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OSIJfSwgLyogMzU5ICovCisKKwl7IDYsCTAsCXByaW50YXJncywJCSJzeXNmczAiCX0sIC8qIDM2MCAqLworCXsgNiwJMCwJc29sYXJpc19zeXNmczEsCQkic3lzZnMxIgl9LCAvKiAzNjEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3lzZnMyLAkJInN5c2ZzMiIJfSwgLyogMzYyICovCisJeyA2LAkwLAlzb2xhcmlzX3N5c2ZzMywJCSJzeXNmczMiCX0sIC8qIDM2MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjQiCX0sIC8qIDM2NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjUiCX0sIC8qIDM2NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjYiCX0sIC8qIDM2NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjciCX0sIC8qIDM2NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjgiCX0sIC8qIDM2OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNjkiCX0sIC8qIDM2OSAqLworCisJeyA2LAkwLAlwcmludGFyZ3MsCQkic3BjYWxsMCIJfSwgLyogMzcwICovCisJeyA2LAlUUywJc29sYXJpc19zaWdwZW5kaW5nLAkic2lncGVuZGluZyIJfSwgLyogMzcxICovCisJeyA2LAlUUywJc29sYXJpc19zaWdmaWxsc2V0LAkic2lnZmlsbHNldCIJfSwgLyogMzcyICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MyIJfSwgLyogMzczICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NCIJfSwgLyogMzc0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NSIJfSwgLyogMzc1ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NiIJfSwgLyogMzc2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NyIJfSwgLyogMzc3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OCIJfSwgLyogMzc4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OSIJfSwgLyogMzc5ICovCisKKwl7IDYsCTAsCXNvbGFyaXNfZ2V0Y29udGV4dCwJImdldGNvbnRleHQiCX0sIC8qIDM4MCAqLworCXsgNiwJMCwJc29sYXJpc19zZXRjb250ZXh0LAkic2V0Y29udGV4dCIJfSwgLyogMzgxICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MiIJfSwgLyogMzgyICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MyIJfSwgLyogMzgzICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NCIJfSwgLyogMzg0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NSIJfSwgLyogMzg1ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NiIJfSwgLyogMzg2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NyIJfSwgLyogMzg3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OCIJfSwgLyogMzg4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OSIJfSwgLyogMzg5ICovCisKKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkwIgl9LCAvKiAzOTAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkxIgl9LCAvKiAzOTEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkyIgl9LCAvKiAzOTIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzkzIgl9LCAvKiAzOTMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk0Igl9LCAvKiAzOTQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk1Igl9LCAvKiAzOTUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk2Igl9LCAvKiAzOTYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk3Igl9LCAvKiAzOTcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk4Igl9LCAvKiAzOTggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzk5Igl9LCAvKiAzOTkgKi8KZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2R1bW15Mi5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZHVtbXkyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYzMmM2YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2R1bW15Mi5oCkBAIC0wLDAgKzEsMjgyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBkdW1teTIuaCx2IDEuMSAyMDA0LzA3LzEyIDA3OjQ0OjA4IHJvbGFuZCBFeHAgJAorICovCisKKy8qIHN0aWxsIHVuZmluaXNoZWQgKi8KKworI2RlZmluZSBzb2xhcmlzX3N5c21wIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NnaW5hcCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZ2lrb3B0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c21pcHMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncmV0dXJuIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3JlY3Ztc2cgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2VuZG1zZyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19uZnNzdmMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfZ2V0ZmggcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfYXN5bmNfZGFlbW9uIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2V4cG9ydGZzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX0JTRF9nZXRpbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3Byb2MgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcHJvY2JsayBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zcHJvY3NwIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX21zeW5jIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX21hZHZpc2UgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcGFnZWxvY2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcXVvdGFjdGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfY2FjaGVmbHVzaCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19jYWNoZWN0bCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19udW5hbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncG9sbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zd2FwY3RsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ3N0YWNrIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ3NlbmRzZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcHJpb2NudGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfa3NpZ3F1ZXVlIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2x3cF9zZW1hX3dhaXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbWVtY250bCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNjYWxsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2Nsb2NhbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNzdW4gcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3lzaTg2IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c21hY2hpbmUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcGxvY2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfcGF0aGNvbmYgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lndGltZWR3YWl0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3VsaW1pdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wdHJhY2UgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3R0eSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfaW5mbyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wcmlvY250bHN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19ocnRzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfeGVuaXggcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3RhdGZzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZzdGF0ZnMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3RhdHZmcyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mc3RhdHZmcyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mb3JrMSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdzZW5kc3lzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2d0dHkgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdnRyYWNlIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZwYXRoY29uZiBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19ldnN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hY2N0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2V4ZWMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3NlbWFfcG9zdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19uZnNzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnYWx0c3RhY2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdWFkbWluIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3Vtb3VudCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19tb2RjdGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfYWNhbmNlbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hc3luYyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19ldnRyYXByZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX2NyZWF0ZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfZXhpdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3Bfc3VzcGVuZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfY29udGludWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX2tpbGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3NlbGYgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3NldHByaXZhdGUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX2dldHByaXZhdGUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX3dhaXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbHdwX211dGV4X3VubG9jayBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfbXV0ZXhfbG9jayBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfY29uZF93YWl0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2x3cF9jb25kX3NpZ25hbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19sd3BfY29uZF9icm9hZGNhc3QgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbGxzZWVrIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2luc3Rfc3luYyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hdWRpdHN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wcm9jZXNzb3JfYmluZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wcm9jZXNzb3JfaW5mbyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wX29ubGluZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdxdWV1ZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19jbG9ja19nZXR0aW1lIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2Nsb2NrX3NldHRpbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfY2xvY2tfZ2V0cmVzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX25hbm9zbGVlcCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc190aW1lcl9jcmVhdGUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdGltZXJfZGVsZXRlIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3RpbWVyX3NldHRpbWUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdGltZXJfZ2V0dGltZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc190aW1lcl9nZXRvdmVycnVuIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ25hbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdzZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnaG9sZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdyZWxzZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaWdpZ25vcmUgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncGF1c2UgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbXNnY3RsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX21zZ2dldCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19tc2dyY3YgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbXNnc25kIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NobWF0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NobWN0bCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaG1kdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zaG1nZXQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2VtY3RsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NlbWdldCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZW1vcCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19vbGR1bmFtZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc191c3RhdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mdXNlcnMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3lzZnMxIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c2ZzMiBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNmczMgcHJpbnRhcmdzCisKKy8qIGxpa2UgYW5vdGhlciBjYWxsICovCisjZGVmaW5lIHNvbGFyaXNfbGNob3duIHNvbGFyaXNfY2hvd24KKyNkZWZpbmUgc29sYXJpc19zZXR1aWQgc29sYXJpc19jbG9zZQorI2RlZmluZSBzb2xhcmlzX3NldGV1aWQgc29sYXJpc19jbG9zZQorI2RlZmluZSBzb2xhcmlzX3NldGdpZCBzb2xhcmlzX2Nsb3NlCisjZGVmaW5lIHNvbGFyaXNfc2V0ZWdpZCBzb2xhcmlzX2Nsb3NlCisjZGVmaW5lIHNvbGFyaXNfdmhhbmd1cCBzb2xhcmlzX2Nsb3NlCisjZGVmaW5lIHNvbGFyaXNfZmRzeW5jIHNvbGFyaXNfY2xvc2UKKyNkZWZpbmUgc29sYXJpc19zaWdmaWxsc2V0IHNvbGFyaXNfc2lncGVuZGluZworI2RlZmluZSBzb2xhcmlzX3Zmb3JrIHNvbGFyaXNfZm9yaworI2RlZmluZSBzb2xhcmlzX2tzaWdhY3Rpb24gc29sYXJpc19zaWdhY3Rpb24KKyNkZWZpbmUgc29sYXJpc19CU0RnZXRwZ3JwIHNvbGFyaXNfZ2V0cGdycAorI2RlZmluZSBzb2xhcmlzX0JTRHNldHBncnAgc29sYXJpc19zZXRwZ3JwCisjZGVmaW5lIHNvbGFyaXNfd2FpdHN5cyBzb2xhcmlzX3dhaXRpZAorCisvKiBwcmludGFyZ3MgZG9lcyB0aGUgcmlnaHQgdGhpbmcgKi8KKyNkZWZpbmUgc29sYXJpc19zeW5jIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3Byb2ZpbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc195aWVsZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wYXVzZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZXRob3N0aWQgcHJpbnRhcmdzCisKKy8qIHN1YmZ1bmN0aW9uIGVudHJ5IHBvaW50cyAqLworI2RlZmluZSBzb2xhcmlzX3BncnBzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnY2FsbCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19tc2dzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2htc3lzIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NlbXN5cyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc191dHNzeXMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3lzZnMgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc3BjYWxsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2NvbnRleHQgcHJpbnRhcmdzCisKKy8qIHNhbWUgYXMgbGludXggKi8KKyNkZWZpbmUgc29sYXJpc19leGl0IHN5c19leGl0CisjZGVmaW5lIHNvbGFyaXNfZm9yayBzeXNfZm9yaworI2RlZmluZSBzb2xhcmlzX3JlYWQgc3lzX3JlYWQKKyNkZWZpbmUgc29sYXJpc193cml0ZSBzeXNfd3JpdGUKKyNkZWZpbmUgc29sYXJpc19jbG9zZSBzeXNfY2xvc2UKKyNkZWZpbmUgc29sYXJpc19jcmVhdCBzeXNfY3JlYXQKKyNkZWZpbmUgc29sYXJpc19saW5rIHN5c19saW5rCisjZGVmaW5lIHNvbGFyaXNfdW5saW5rIHN5c191bmxpbmsKKyNkZWZpbmUgc29sYXJpc19jaGRpciBzeXNfY2hkaXIKKyNkZWZpbmUgc29sYXJpc190aW1lIHN5c190aW1lCisjZGVmaW5lIHNvbGFyaXNfY2htb2Qgc3lzX2NobW9kCisjZGVmaW5lIHNvbGFyaXNfbHNlZWsgc3lzX2xzZWVrCisjZGVmaW5lIHNvbGFyaXNfc3RpbWUgc3lzX3N0aW1lCisjZGVmaW5lIHNvbGFyaXNfYWxhcm0gc3lzX2FsYXJtCisjZGVmaW5lIHNvbGFyaXNfdXRpbWUgc3lzX3V0aW1lCisjZGVmaW5lIHNvbGFyaXNfYWNjZXNzIHN5c19hY2Nlc3MKKyNkZWZpbmUgc29sYXJpc19uaWNlIHN5c19uaWNlCisjZGVmaW5lIHNvbGFyaXNfZHVwIHN5c19kdXAKKyNkZWZpbmUgc29sYXJpc19waXBlIHN5c19waXBlCisjZGVmaW5lIHNvbGFyaXNfdGltZXMgc3lzX3RpbWVzCisjZGVmaW5lIHNvbGFyaXNfZXhlY3ZlIHN5c19leGVjdmUKKyNkZWZpbmUgc29sYXJpc191bWFzayBzeXNfdW1hc2sKKyNkZWZpbmUgc29sYXJpc19jaHJvb3Qgc3lzX2Nocm9vdAorI2RlZmluZSBzb2xhcmlzX3JtZGlyIHN5c19ybWRpcgorI2RlZmluZSBzb2xhcmlzX21rZGlyIHN5c19ta2RpcgorI2RlZmluZSBzb2xhcmlzX2dldGRlbnRzIHN5c19nZXRkZW50cworI2RlZmluZSBzb2xhcmlzX3BvbGwgc3lzX3BvbGwKKyNkZWZpbmUgc29sYXJpc19zeW1saW5rIHN5c19zeW1saW5rCisjZGVmaW5lIHNvbGFyaXNfcmVhZGxpbmsgc3lzX3JlYWRsaW5rCisjZGVmaW5lIHNvbGFyaXNfc2V0Z3JvdXBzIHN5c19zZXRncm91cHMKKyNkZWZpbmUgc29sYXJpc19nZXRncm91cHMgc3lzX2dldGdyb3VwcworI2RlZmluZSBzb2xhcmlzX2ZjaG1vZCBzeXNfZmNobW9kCisjZGVmaW5lIHNvbGFyaXNfZmNob3duIHN5c19mY2hvd24KKyNkZWZpbmUgc29sYXJpc19tcHJvdGVjdCBzeXNfbXByb3RlY3QKKyNkZWZpbmUgc29sYXJpc19tdW5tYXAgc3lzX211bm1hcAorI2RlZmluZSBzb2xhcmlzX3JlYWR2IHN5c19yZWFkdgorI2RlZmluZSBzb2xhcmlzX3dyaXRldiBzeXNfd3JpdGV2CisjZGVmaW5lIHNvbGFyaXNfY2hvd24gc3lzX2Nob3duCisjZGVmaW5lIHNvbGFyaXNfcmVuYW1lIHN5c19yZW5hbWUKKyNkZWZpbmUgc29sYXJpc19nZXR0aW1lb2ZkYXkgc3lzX2dldHRpbWVvZmRheQorI2RlZmluZSBzb2xhcmlzX2dldGl0aW1lciBzeXNfZ2V0aXRpbWVyCisjZGVmaW5lIHNvbGFyaXNfc2V0aXRpbWVyIHN5c19zZXRpdGltZXIKKyNkZWZpbmUgc29sYXJpc19icmsgc3lzX2JyaworI2RlZmluZSBzb2xhcmlzX21tYXAgc3lzX21tYXAKKyNkZWZpbmUgc29sYXJpc19nZXRzaWQgc3lzX2dldHNpZAorI2RlZmluZSBzb2xhcmlzX3NldHNpZCBzeXNfc2V0c2lkCisjZGVmaW5lIHNvbGFyaXNfZ2V0cGdpZCBzeXNfZ2V0cGdpZAorI2RlZmluZSBzb2xhcmlzX3NldHBnaWQgc3lzX3NldHBnaWQKKyNkZWZpbmUgc29sYXJpc19nZXRwZ3JwIHN5c19nZXRwZ3JwCisKKy8qIFRoZXNlIGFyZSBoYW5kbGVkIGFjY29yZGluZyB0byBjdXJyZW50X3BlcnNvbmFsaXR5ICovCisjZGVmaW5lIHNvbGFyaXNfeHN0YXQgc3lzX3hzdGF0CisjZGVmaW5lIHNvbGFyaXNfZnhzdGF0IHN5c19meHN0YXQKKyNkZWZpbmUgc29sYXJpc19seHN0YXQgc3lzX2x4c3RhdAorI2RlZmluZSBzb2xhcmlzX3hta25vZCBzeXNfeG1rbm9kCisjZGVmaW5lIHNvbGFyaXNfc3RhdCBzeXNfc3RhdAorI2RlZmluZSBzb2xhcmlzX2ZzdGF0IHN5c19mc3RhdAorI2RlZmluZSBzb2xhcmlzX2xzdGF0IHN5c19sc3RhdAorI2RlZmluZSBzb2xhcmlzX3ByZWFkIHN5c19wcmVhZAorI2RlZmluZSBzb2xhcmlzX3B3cml0ZSBzeXNfcHdyaXRlCisjZGVmaW5lIHNvbGFyaXNfaW9jdGwgc3lzX2lvY3RsCisjZGVmaW5lIHNvbGFyaXNfbWtub2Qgc3lzX21rbm9kCisKKy8qIFRvIGJlIGRvbmUgKi8KKyNkZWZpbmUgc29sYXJpc19tb3VudCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zeXNpbmZvIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3N5c2NvbmZpZyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19nZXRwbXNnIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3B1dHBtc2cgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfd2FpdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc193YWl0aWQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnc3VzcGVuZCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19zZXRwZ3JwIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2dldGNvbnRleHQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2V0Y29udGV4dCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19nZXRwaWQgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfZ2V0dWlkIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2tpbGwgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfZ2V0Z2lkIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZjbnRsIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2dldG1zZyBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19wdXRtc2cgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lncHJvY21hc2sgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2lnYWN0aW9uIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX3NpZ3BlbmRpbmcgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfbWluY29yZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19mY2hkaXIgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfc2V0cmxpbWl0IHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2dldHJsaW1pdCBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc191bmFtZSBwcmludGFyZ3MKKyNkZWZpbmUgc29sYXJpc19hZGp0aW1lIHByaW50YXJncworI2RlZmluZSBzb2xhcmlzX2ZjaHJvb3QgcHJpbnRhcmdzCisjZGVmaW5lIHNvbGFyaXNfdXRpbWVzIHByaW50YXJncworCisjaWYgRE9ORQorI2RlZmluZSBzb2xhcmlzX29wZW4gcHJpbnRhcmdzCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50LmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNDM2OTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudC5oCkBAIC0wLDAgKzEsMTI3IEBACisJIkVSUk5PXzAiLCAvKiAwICovCisJIkVQRVJNIiwgLyogMSAqLworCSJFTk9FTlQiLCAvKiAyICovCisJIkVTUkNIIiwgLyogMyAqLworCSJFSU5UUiIsIC8qIDQgKi8KKwkiRUlPIiwgLyogNSAqLworCSJFTlhJTyIsIC8qIDYgKi8KKwkiRTJCSUciLCAvKiA3ICovCisJIkVOT0VYRUMiLCAvKiA4ICovCisJIkVCQURGIiwgLyogOSAqLworCSJFQ0hJTEQiLCAvKiAxMCAqLworCSJFQUdBSU4iLCAvKiAxMSAqLworCSJFTk9NRU0iLCAvKiAxMiAqLworCSJFQUNDRVMiLCAvKiAxMyAqLworCSJFRkFVTFQiLCAvKiAxNCAqLworCSJFTk9UQkxLIiwgLyogMTUgKi8KKwkiRUJVU1kiLCAvKiAxNiAqLworCSJFRVhJU1QiLCAvKiAxNyAqLworCSJFWERFViIsIC8qIDE4ICovCisJIkVOT0RFViIsIC8qIDE5ICovCisJIkVOT1RESVIiLCAvKiAyMCAqLworCSJFSVNESVIiLCAvKiAyMSAqLworCSJFSU5WQUwiLCAvKiAyMiAqLworCSJFTkZJTEUiLCAvKiAyMyAqLworCSJFTUZJTEUiLCAvKiAyNCAqLworCSJFTk9UVFkiLCAvKiAyNSAqLworCSJFVFhUQlNZIiwgLyogMjYgKi8KKwkiRUZCSUciLCAvKiAyNyAqLworCSJFTk9TUEMiLCAvKiAyOCAqLworCSJFU1BJUEUiLCAvKiAyOSAqLworCSJFUk9GUyIsIC8qIDMwICovCisJIkVNTElOSyIsIC8qIDMxICovCisJIkVQSVBFIiwgLyogMzIgKi8KKwkiRURPTSIsIC8qIDMzICovCisJIkVSQU5HRSIsIC8qIDM0ICovCisJIkVXT1VMREJMT0NLIiwgLyogMzUgKi8KKwkiRUlOUFJPR1JFU1MiLCAvKiAzNiAqLworCSJFQUxSRUFEWSIsIC8qIDM3ICovCisJIkVOT1RTT0NLIiwgLyogMzggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogMzkgKi8KKwkiRU1TR1NJWkUiLCAvKiA0MCAqLworCSJFUFJPVE9UWVBFIiwgLyogNDEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA0MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA0MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA0NCAqLworCSJFT1BOT1RTVVBQIiwgLyogNDUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogNDYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogNDcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDQ4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA0OSAqLworCSJFTkVURE9XTiIsIC8qIDUwICovCisJIkVORVRVTlJFQUNIIiwgLyogNTEgKi8KKwkiRU5FVFJFU0VUIiwgLyogNTIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogNTMgKi8KKwkiRUNPTk5SRVNFVCIsIC8qIDU0ICovCisJIkVOT0JVRlMiLCAvKiA1NSAqLworCSJFSVNDT05OIiwgLyogNTYgKi8KKwkiRU5PVENPTk4iLCAvKiA1NyAqLworCSJFU0hVVERPV04iLCAvKiA1OCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiA1OSAqLworCSJFVElNRURPVVQiLCAvKiA2MCAqLworCSJFQ09OTlJFRlVTRUQiLCAvKiA2MSAqLworCSJFTE9PUCIsIC8qIDYyICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDYzICovCisJIkVIT1NURE9XTiIsIC8qIDY0ICovCisJIkVIT1NUVU5SRUFDSCIsIC8qIDY1ICovCisJIkVOT1RFTVBUWSIsIC8qIDY2ICovCisJIkVQUk9DTElNIiwgLyogNjcgKi8KKwkiRVVTRVJTIiwgLyogNjggKi8KKwkiRURRVU9UIiwgLyogNjkgKi8KKwkiRVNUQUxFIiwgLyogNzAgKi8KKwkiRVJFTU9URSIsIC8qIDcxICovCisJIkVOT1NUUiIsIC8qIDcyICovCisJIkVUSU1FIiwgLyogNzMgKi8KKwkiRU5PU1IiLCAvKiA3NCAqLworCSJFTk9NU0ciLCAvKiA3NSAqLworCSJFQkFETVNHIiwgLyogNzYgKi8KKwkiRUlEUk0iLCAvKiA3NyAqLworCSJFREVBRExLIiwgLyogNzggKi8KKwkiRU5PTENLIiwgLyogNzkgKi8KKwkiRU5PTkVUIiwgLyogODAgKi8KKwkiRVJSRU1PVEUiLCAvKiA4MSAqLworCSJFTk9MSU5LIiwgLyogODIgKi8KKwkiRUFEViIsIC8qIDgzICovCisJIkVTUk1OVCIsIC8qIDg0ICovCisJIkVDT01NIiwgLyogODUgKi8KKwkiRVBST1RPIiwgLyogODYgKi8KKwkiRU1VTFRJSE9QIiwgLyogODcgKi8KKwkiRURPVERPVCIsIC8qIDg4ICovCisJIkVSRU1DSEciLCAvKiA4OSAqLworCSJFTk9TWVMiLCAvKiA5MCAqLworCSJFU1RSUElQRSIsIC8qIDkxICovCisJIkVPVkVSRkxPVyIsIC8qIDkyICovCisJIkVCQURGRCIsIC8qIDkzICovCisJIkVDSFJORyIsIC8qIDk0ICovCisJIkVMMk5TWU5DIiwgLyogOTUgKi8KKwkiRUwzSExUIiwgLyogOTYgKi8KKwkiRUwzUlNUIiwgLyogOTcgKi8KKwkiRUxOUk5HIiwgLyogOTggKi8KKwkiRVVOQVRDSCIsIC8qIDk5ICovCisJIkVOT0NTSSIsIC8qIDEwMCAqLworCSJFTDJITFQiLCAvKiAxMDEgKi8KKwkiRUJBREUiLCAvKiAxMDIgKi8KKwkiRUJBRFIiLCAvKiAxMDMgKi8KKwkiRVhGVUxMIiwgLyogMTA0ICovCisJIkVOT0FOTyIsIC8qIDEwNSAqLworCSJFQkFEUlFDIiwgLyogMTA2ICovCisJIkVCQURTTFQiLCAvKiAxMDcgKi8KKwkiRURFQURMT0NLIiwgLyogMTA4ICovCisJIkVCRk9OVCIsIC8qIDEwOSAqLworCSJFTElCRVhFQyIsIC8qIDExMCAqLworCSJFTk9EQVRBIiwgLyogMTExICovCisJIkVMSUJCQUQiLCAvKiAxMTIgKi8KKwkiRU5PUEtHIiwgLyogMTEzICovCisJIkVMSUJBQ0MiLCAvKiAxMTQgKi8KKwkiRU5PVFVOSVEiLCAvKiAxMTUgKi8KKwkiRVJFU1RBUlQiLCAvKiAxMTYgKi8KKwkiRVVDTEVBTiIsIC8qIDExNyAqLworCSJFTk9UTkFNIiwgLyogMTE4ICovCisJIkVOQVZBSUwiLCAvKiAxMTkgKi8KKwkiRUlTTkFNIiwgLyogMTIwICovCisJIkVSRU1PVEVJTyIsIC8qIDEyMSAqLworCSJFSUxTRVEiLCAvKiAxMjIgKi8KKwkiRUxJQk1BWCIsIC8qIDEyMyAqLworCSJFTElCU0NOIiwgLyogMTI0ICovCisJIkVOT01FRElVTSIsIC8qIDEyNSAqLworCSJFTUVESVVNVFlQRSIsIC8qIDEyNiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQxLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9lcnJub2VudDEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDc1MGJkCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQxLmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIi4uL3N2cjQvZXJybm9lbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvZXJybm9lbnQyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI0MzY5OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2Vycm5vZW50Mi5oCkBAIC0wLDAgKzEsMTI3IEBACisJIkVSUk5PXzAiLCAvKiAwICovCisJIkVQRVJNIiwgLyogMSAqLworCSJFTk9FTlQiLCAvKiAyICovCisJIkVTUkNIIiwgLyogMyAqLworCSJFSU5UUiIsIC8qIDQgKi8KKwkiRUlPIiwgLyogNSAqLworCSJFTlhJTyIsIC8qIDYgKi8KKwkiRTJCSUciLCAvKiA3ICovCisJIkVOT0VYRUMiLCAvKiA4ICovCisJIkVCQURGIiwgLyogOSAqLworCSJFQ0hJTEQiLCAvKiAxMCAqLworCSJFQUdBSU4iLCAvKiAxMSAqLworCSJFTk9NRU0iLCAvKiAxMiAqLworCSJFQUNDRVMiLCAvKiAxMyAqLworCSJFRkFVTFQiLCAvKiAxNCAqLworCSJFTk9UQkxLIiwgLyogMTUgKi8KKwkiRUJVU1kiLCAvKiAxNiAqLworCSJFRVhJU1QiLCAvKiAxNyAqLworCSJFWERFViIsIC8qIDE4ICovCisJIkVOT0RFViIsIC8qIDE5ICovCisJIkVOT1RESVIiLCAvKiAyMCAqLworCSJFSVNESVIiLCAvKiAyMSAqLworCSJFSU5WQUwiLCAvKiAyMiAqLworCSJFTkZJTEUiLCAvKiAyMyAqLworCSJFTUZJTEUiLCAvKiAyNCAqLworCSJFTk9UVFkiLCAvKiAyNSAqLworCSJFVFhUQlNZIiwgLyogMjYgKi8KKwkiRUZCSUciLCAvKiAyNyAqLworCSJFTk9TUEMiLCAvKiAyOCAqLworCSJFU1BJUEUiLCAvKiAyOSAqLworCSJFUk9GUyIsIC8qIDMwICovCisJIkVNTElOSyIsIC8qIDMxICovCisJIkVQSVBFIiwgLyogMzIgKi8KKwkiRURPTSIsIC8qIDMzICovCisJIkVSQU5HRSIsIC8qIDM0ICovCisJIkVXT1VMREJMT0NLIiwgLyogMzUgKi8KKwkiRUlOUFJPR1JFU1MiLCAvKiAzNiAqLworCSJFQUxSRUFEWSIsIC8qIDM3ICovCisJIkVOT1RTT0NLIiwgLyogMzggKi8KKwkiRURFU1RBRERSUkVRIiwgLyogMzkgKi8KKwkiRU1TR1NJWkUiLCAvKiA0MCAqLworCSJFUFJPVE9UWVBFIiwgLyogNDEgKi8KKwkiRU5PUFJPVE9PUFQiLCAvKiA0MiAqLworCSJFUFJPVE9OT1NVUFBPUlQiLCAvKiA0MyAqLworCSJFU09DS1ROT1NVUFBPUlQiLCAvKiA0NCAqLworCSJFT1BOT1RTVVBQIiwgLyogNDUgKi8KKwkiRVBGTk9TVVBQT1JUIiwgLyogNDYgKi8KKwkiRUFGTk9TVVBQT1JUIiwgLyogNDcgKi8KKwkiRUFERFJJTlVTRSIsIC8qIDQ4ICovCisJIkVBRERSTk9UQVZBSUwiLCAvKiA0OSAqLworCSJFTkVURE9XTiIsIC8qIDUwICovCisJIkVORVRVTlJFQUNIIiwgLyogNTEgKi8KKwkiRU5FVFJFU0VUIiwgLyogNTIgKi8KKwkiRUNPTk5BQk9SVEVEIiwgLyogNTMgKi8KKwkiRUNPTk5SRVNFVCIsIC8qIDU0ICovCisJIkVOT0JVRlMiLCAvKiA1NSAqLworCSJFSVNDT05OIiwgLyogNTYgKi8KKwkiRU5PVENPTk4iLCAvKiA1NyAqLworCSJFU0hVVERPV04iLCAvKiA1OCAqLworCSJFVE9PTUFOWVJFRlMiLCAvKiA1OSAqLworCSJFVElNRURPVVQiLCAvKiA2MCAqLworCSJFQ09OTlJFRlVTRUQiLCAvKiA2MSAqLworCSJFTE9PUCIsIC8qIDYyICovCisJIkVOQU1FVE9PTE9ORyIsIC8qIDYzICovCisJIkVIT1NURE9XTiIsIC8qIDY0ICovCisJIkVIT1NUVU5SRUFDSCIsIC8qIDY1ICovCisJIkVOT1RFTVBUWSIsIC8qIDY2ICovCisJIkVQUk9DTElNIiwgLyogNjcgKi8KKwkiRVVTRVJTIiwgLyogNjggKi8KKwkiRURRVU9UIiwgLyogNjkgKi8KKwkiRVNUQUxFIiwgLyogNzAgKi8KKwkiRVJFTU9URSIsIC8qIDcxICovCisJIkVOT1NUUiIsIC8qIDcyICovCisJIkVUSU1FIiwgLyogNzMgKi8KKwkiRU5PU1IiLCAvKiA3NCAqLworCSJFTk9NU0ciLCAvKiA3NSAqLworCSJFQkFETVNHIiwgLyogNzYgKi8KKwkiRUlEUk0iLCAvKiA3NyAqLworCSJFREVBRExLIiwgLyogNzggKi8KKwkiRU5PTENLIiwgLyogNzkgKi8KKwkiRU5PTkVUIiwgLyogODAgKi8KKwkiRVJSRU1PVEUiLCAvKiA4MSAqLworCSJFTk9MSU5LIiwgLyogODIgKi8KKwkiRUFEViIsIC8qIDgzICovCisJIkVTUk1OVCIsIC8qIDg0ICovCisJIkVDT01NIiwgLyogODUgKi8KKwkiRVBST1RPIiwgLyogODYgKi8KKwkiRU1VTFRJSE9QIiwgLyogODcgKi8KKwkiRURPVERPVCIsIC8qIDg4ICovCisJIkVSRU1DSEciLCAvKiA4OSAqLworCSJFTk9TWVMiLCAvKiA5MCAqLworCSJFU1RSUElQRSIsIC8qIDkxICovCisJIkVPVkVSRkxPVyIsIC8qIDkyICovCisJIkVCQURGRCIsIC8qIDkzICovCisJIkVDSFJORyIsIC8qIDk0ICovCisJIkVMMk5TWU5DIiwgLyogOTUgKi8KKwkiRUwzSExUIiwgLyogOTYgKi8KKwkiRUwzUlNUIiwgLyogOTcgKi8KKwkiRUxOUk5HIiwgLyogOTggKi8KKwkiRVVOQVRDSCIsIC8qIDk5ICovCisJIkVOT0NTSSIsIC8qIDEwMCAqLworCSJFTDJITFQiLCAvKiAxMDEgKi8KKwkiRUJBREUiLCAvKiAxMDIgKi8KKwkiRUJBRFIiLCAvKiAxMDMgKi8KKwkiRVhGVUxMIiwgLyogMTA0ICovCisJIkVOT0FOTyIsIC8qIDEwNSAqLworCSJFQkFEUlFDIiwgLyogMTA2ICovCisJIkVCQURTTFQiLCAvKiAxMDcgKi8KKwkiRURFQURMT0NLIiwgLyogMTA4ICovCisJIkVCRk9OVCIsIC8qIDEwOSAqLworCSJFTElCRVhFQyIsIC8qIDExMCAqLworCSJFTk9EQVRBIiwgLyogMTExICovCisJIkVMSUJCQUQiLCAvKiAxMTIgKi8KKwkiRU5PUEtHIiwgLyogMTEzICovCisJIkVMSUJBQ0MiLCAvKiAxMTQgKi8KKwkiRU5PVFVOSVEiLCAvKiAxMTUgKi8KKwkiRVJFU1RBUlQiLCAvKiAxMTYgKi8KKwkiRVVDTEVBTiIsIC8qIDExNyAqLworCSJFTk9UTkFNIiwgLyogMTE4ICovCisJIkVOQVZBSUwiLCAvKiAxMTkgKi8KKwkiRUlTTkFNIiwgLyogMTIwICovCisJIkVSRU1PVEVJTyIsIC8qIDEyMSAqLworCSJFSUxTRVEiLCAvKiAxMjIgKi8KKwkiRUxJQk1BWCIsIC8qIDEyMyAqLworCSJFTElCU0NOIiwgLyogMTI0ICovCisJIkVOT01FRElVTSIsIC8qIDEyNSAqLworCSJFTUVESVVNVFlQRSIsIC8qIDEyNiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFkNmI4YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50LmgKQEAgLTAsMCArMSw4MzggQEAKKwl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAorCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAorCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAorCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAorCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCisJeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAorCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAorCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAorCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCisJeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAorCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NTQwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDU0MDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDU0MDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDU0MDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NTQwOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg1NDBhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDU0MGJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDU0MGZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NTQxMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDU0MTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDU0MTN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDU0MTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDU0MWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NTQyMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDU0NTB9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDU0NTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg1NDUyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCisJeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCisJeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCisJeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKKwl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAorCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAorCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCisJeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCisJeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKKwl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAorCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAorCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKKwl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAorCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAorCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAorCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L2lvY3RsZW50MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNTM2Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudDEuaApAQCAtMCwwICsxIEBACisjaW5jbHVkZSAiLi4vc3ZyNC9pb2N0bGVudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9pb2N0bGVudDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWQ2YjhhCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvaW9jdGxlbnQyLmgKQEAgLTAsMCArMSw4MzggQEAKKwl7ImxpbnV4L2ZzLmgiLAkiRklCTUFQIiwJMHgxfSwKKwl7ImxpbnV4L2ZzLmgiLAkiRklHRVRCU1oiLAkweDJ9LAorCXsibGludXgvZmQuaCIsCSJGREdFVFBSTSIsCTB4MjA0fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRNQVhFUlJTIiwJMHgyMGV9LAorCXsibGludXgvZmQuaCIsCSJGREdFVERSVlRZUCIsCTB4MjBmfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVREUlZQUk0iLAkweDIxMX0sCisJeyJsaW51eC9mZC5oIiwJIkZER0VURFJWU1RBVCIsCTB4MjEyfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRQT0xMRFJWU1RBVCIsCTB4MjEzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRHRVRGRENTVEFUIiwJMHgyMTV9LAorCXsibGludXgvZmQuaCIsCSJGRFdFUlJPUkdFVCIsCTB4MjE3fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRDTFJQUk0iLAkweDI0MX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VUUFJNIiwJMHgyNDJ9LAorCXsibGludXgvZmQuaCIsCSJGRERFRlBSTSIsCTB4MjQzfSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPTiIsCTB4MjQ1fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRNU0dPRkYiLAkweDI0Nn0sCisJeyJsaW51eC9mZC5oIiwJIkZERk1UQkVHIiwJMHgyNDd9LAorCXsibGludXgvZmQuaCIsCSJGREZNVFRSSyIsCTB4MjQ4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRGTVRFTkQiLAkweDI0OX0sCisJeyJsaW51eC9mZC5oIiwJIkZEU0VURU1TR1RSRVNIIiwJMHgyNGF9LAorCXsibGludXgvZmQuaCIsCSJGREZMVVNIIiwJMHgyNGJ9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVE1BWEVSUlMiLAkweDI0Y30sCisJeyJsaW51eC9mZC5oIiwJIkZEUkVTRVQiLAkweDI1NH0sCisJeyJsaW51eC9mZC5oIiwJIkZEV0VSUk9SQ0xSIiwJMHgyNTZ9LAorCXsibGludXgvZmQuaCIsCSJGRFJBV0NNRCIsCTB4MjU4fSwKKwl7ImxpbnV4L2ZkLmgiLAkiRkRUV0FERExFIiwJMHgyNTl9LAorCXsibGludXgvZmQuaCIsCSJGREVKRUNUIiwJMHgyNWF9LAorCXsibGludXgvZmQuaCIsCSJGRFNFVERSVlBSTSIsCTB4MjkwfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0RPUyIsCTB4NGQyfSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19VTkxJTktfRE9TIiwJMHg0ZDN9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX1JNRElSX0RPUyIsCTB4NGQ0fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19TVEFUX0RPUyIsCTB4NGQ1fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19DUkVBVF9FTUQiLAkweDRkNn0sCisJeyJsaW51eC91bXNkb3NfZnMuaCIsCSJVTVNET1NfVU5MSU5LX0VNRCIsCTB4NGQ3fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRUFERElSX0VNRCIsCTB4NGQ4fSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19HRVRWRVJTSU9OIiwJMHg0ZDl9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0lOSVRfRU1EIiwJMHg0ZGF9LAorCXsibGludXgvdW1zZG9zX2ZzLmgiLAkiVU1TRE9TX0RPU19TRVRVUCIsCTB4NGRifSwKKwl7ImxpbnV4L3Vtc2Rvc19mcy5oIiwJIlVNU0RPU19SRU5BTUVfRE9TIiwJMHg0ZGN9LAorCXsibGludXgvZnMuaCIsCSJCTEtST1NFVCIsCTB4MTI1ZH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JPR0VUIiwJMHgxMjVlfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUlJQQVJUIiwJMHgxMjVmfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLR0VUU0laRSIsCTB4MTI2MH0sCisJeyJsaW51eC9mcy5oIiwJIkJMS0ZMU0JVRiIsCTB4MTI2MX0sCisJeyJsaW51eC9mcy5oIiwJIkJMS1JBU0VUIiwJMHgxMjYyfSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUkFHRVQiLAkweDEyNjN9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFTRVQiLAkweDEyNjR9LAorCXsibGludXgvZnMuaCIsCSJCTEtGUkFHRVQiLAkweDEyNjV9LAorCXsibGludXgvZnMuaCIsCSJCTEtTRUNUU0VUIiwJMHgxMjY2fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLU0VDVEdFVCIsCTB4MTI2N30sCisJeyJsaW51eC9mcy5oIiwJIkJMS1NTWkdFVCIsCTB4MTI2OH0sCisJeyJsaW51eC9ibGtwZy5oIiwJIkJMS1BHIiwJMHgxMjY5fSwKKwl7ImxpbnV4L2ZzLmgiLAkiQkxLUEciLAkweDEyNjl9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZHRVQiLAkweDEyNmF9LAorCXsibGludXgvZWxldmF0b3IuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtFTFZTRVQiLAkweDEyNmJ9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pHRVQiLAkweDEyNzB9LAorCXsibGludXgvZnMuaCIsCSJCTEtCU1pTRVQiLAkweDEyNzF9LAorCXsibGludXgvZnMuaCIsCSJCTEtHRVRTSVpFNjQiLAkweDEyNzJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19JTkZPIiwJMHg0MTAwfSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUNRVUlSRSIsCTB4NDEwMX0sCisJeyJsaW51eC9hcG1fYmlvcy5oIiwJIkFQTV9JT0NfU1RBTkRCWSIsCTB4NDEwMX0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFTEVBU0UiLAkweDQxMDJ9LAorCXsibGludXgvYXBtX2Jpb3MuaCIsCSJBUE1fSU9DX1NVU1BFTkQiLAkweDQxMDJ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19TRVRVUCIsCTB4NDEwM30sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1JFU0VSVkUiLAkweDQxMDR9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19QUk9URUNUIiwJMHg0MTA1fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQUxMT0NBVEUiLAkweDQxMDZ9LAorCXsibGludXgvYWdwZ2FydC5oIiwJIkFHUElPQ19ERUFMTE9DQVRFIiwJMHg0MTA3fSwKKwl7ImxpbnV4L2FncGdhcnQuaCIsCSJBR1BJT0NfQklORCIsCTB4NDEwOH0sCisJeyJsaW51eC9hZ3BnYXJ0LmgiLAkiQUdQSU9DX1VOQklORCIsCTB4NDEwOX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX1NMRUVQIiwJMHg0MjAwfSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VUUENJSU5GTyIsCTB4NDIwMX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0dFVF9CQUNLTElHSFQiLAkweDQyMDF9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVRJTlRJTkZPIiwJMHg0MjAyfSwKKwl7ImxpbnV4L3BtdS5oIiwJIlBNVV9JT0NfU0VUX0JBQ0tMSUdIVCIsCTB4NDIwMn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1NFVElOVElORk8iLAkweDQyMDN9LAorCXsibGludXgvcG11LmgiLAkiUE1VX0lPQ19HRVRfTU9ERUwiLAkweDQyMDN9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19HRVROT0RFTkFNRSIsCTB4NDIwNH0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0hBU19BREIiLAkweDQyMDR9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19TRVROT0RFTkFNRSIsCTB4NDIwNX0sCisJeyJsaW51eC9wbXUuaCIsCSJQTVVfSU9DX0NBTl9TTEVFUCIsCTB4NDIwNX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEhFQVJUQkVBVCIsCTB4NDIwNn0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVEJVU1RZUEVTIiwJMHg0MjA3fSwKKwl7ImxpbnV4L2NjaXNzX2lvY3RsLmgiLAkiQ0NJU1NfR0VURklSTVZFUiIsCTB4NDIwOH0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX0dFVERSSVZWRVIiLAkweDQyMDl9LAorCXsibGludXgvY2Npc3NfaW9jdGwuaCIsCSJDQ0lTU19SRVZBTElEVk9MUyIsCTB4NDIwYX0sCisJeyJsaW51eC9jY2lzc19pb2N0bC5oIiwJIkNDSVNTX1BBU1NUSFJVIiwJMHg0MjBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1JFU0VUIiwJMHg0MzAwfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX1JFR0lTVEVSIiwJMHg0MzAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX0xPQUQiLAkweDQzMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkRBVEEiLAkweDQzMDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNPREUiLAkweDQzMDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0RBVEEiLAkweDQzMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfV0NPREUiLAkweDQzMDV9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX01BTlVGQUNUVVJFUiIsCTB4NDMwNn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfQ09QUl9SVU4iLAkweDQzMDZ9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1ZFUlNJT04iLAkweDQzMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfSEFMVCIsCTB4NDMwN30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9HRVRfU0VSSUFMIiwJMHg0MzA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9DT1BSX1NFTkRNU0ciLAkweDQzMDh9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX1BST0ZJTEUiLAkweDQzMDl9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0NPUFJfUkNWTVNHIiwJMHg0MzA5fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX01BTlVGQUNUVVJFUl9DTUQiLAkweDQzMjB9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfR0VUX0VSUkNPREUiLAkweDQzMjF9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfSU5TVEFMTEVEIiwJMHg0MzIyfSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX0dFVF9GTEFHUyIsCTB4NDMyM30sCisJeyJsaW51eC9jYXBpLmgiLAkiQ0FQSV9TRVRfRkxBR1MiLAkweDQzMjR9LAorCXsibGludXgvY2FwaS5oIiwJIkNBUElfQ0xSX0ZMQUdTIiwJMHg0MzI1fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfT1BFTkNPVU5UIiwJMHg0MzI2fSwKKwl7ImxpbnV4L2NhcGkuaCIsCSJDQVBJX05DQ0lfR0VUVU5JVCIsCTB4NDMyN30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1ZFUlNJT04iLAkweDQ1MDF9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dJRCIsCTB4NDUwMn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU1JFUCIsCTB4NDUwM30sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DR0tFWUNPREUiLAkweDQ1MDR9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ1NLRVlDT0RFIiwJMHg0NTA0fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHS0VZIiwJMHg0NTA1fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NHQlVTIiwJMHg0NTA3fSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NSTUZGIiwJMHg0NTgxfSwKKwl7ImxpbnV4L2lucHV0LmgiLAkiRVZJT0NTR0FJTiIsCTB4NDU4Mn0sCisJeyJsaW51eC9pbnB1dC5oIiwJIkVWSU9DU0FVVE9DRU5URVIiLAkweDQ1ODN9LAorCXsibGludXgvaW5wdXQuaCIsCSJFVklPQ0dFRkZFQ1RTIiwJMHg0NTg0fSwKKwl7ImxpbnV4L2ZiLmgiLAkiRkJJT0dFVF9WQkxBTksiLAkweDQ2MTJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1ZFUlNJT04iLAkweDQ4MDF9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DQVBQTElDQVRJT04iLAkweDQ4MDJ9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR0RFVklORk8iLAkweDQ4MDN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1NUUklORyIsCTB4NDgwNH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NJTklUUkVQT1JUIiwJMHg0ODA1fSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dSRVBPUlQiLAkweDQ4MDd9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DU1JFUE9SVCIsCTB4NDgwOH0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHUkVQT1JUSU5GTyIsCTB4NDgwOX0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NHRklFTERJTkZPIiwJMHg0ODBhfSwKKwl7ImxpbnV4L2hpZGRldi5oIiwJIkhJRElPQ0dVU0FHRSIsCTB4NDgwYn0sCisJeyJsaW51eC9oaWRkZXYuaCIsCSJISURJT0NTVVNBR0UiLAkweDQ4MGN9LAorCXsibGludXgvaGlkZGV2LmgiLAkiSElESU9DR1VDT0RFIiwJMHg0ODBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUlGIiwJMHg0OTAxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElGIiwJMHg0OTAyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUU0NGIiwJMHg0OTAzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR0NGIiwJMHg0OTA0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQU5NIiwJMHg0OTA1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURE5NIiwJMHg0OTA2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR05NIiwJMHg0OTA3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUU0VUIiwJMHg0OTA4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUU0VUIiwJMHg0OTA5fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUVkVSIiwJMHg0OTBhfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUSFVQIiwJMHg0OTBifSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUR1NUIiwJMHg0OTBjfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUQlJKIiwJMHg0OTBkfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0lHUFJGIiwJMHg0OTBlfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUUFJGIiwJMHg0OTBmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUUFJGIiwJMHg0OTEwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUTUFQIiwJMHg0OTExfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DU0VUTUFQIiwJMHg0OTEyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQVNMIiwJMHg0OTEzfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURElMIiwJMHg0OTE0fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VUQ1BTIiwJMHg0OTE1fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DR0VURFZSIiwJMHg0OTE2fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUTENSIiwJMHg0OTE3fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURFdSU0VUIiwJMHg0OTE4fSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUQUxOIiwJMHg0OTIwfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVURExOIiwJMHg0OTIxfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DTkVUR1BOIiwJMHg0OTIyfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DREJHVkFSIiwJMHg0OTdmfSwKKwl7ImxpbnV4L2lzZG4uaCIsCSJJSU9DRFJWQ1RMIiwJMHg0OTgwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfT0xEX01JWEVSX0lORk8iLAkweDRkNjV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfTUlYRVJfQUNDRVNTIiwJMHg0ZDY2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0FHQyIsCTB4NGQ2N30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl8zRFNFIiwJMHg0ZDY4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUxIiwJMHg0ZDZmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUyIiwJMHg0ZDcwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEUzIiwJMHg0ZDcxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU0IiwJMHg0ZDcyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX1BSSVZBVEU1IiwJMHg0ZDczfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNPVU5EX01JWEVSX0dFVExFVkVMUyIsCTB4NGQ3NH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9NSVhFUl9TRVRMRVZFTFMiLAkweDRkNzV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiT1NTX0dFVFZFUlNJT04iLAkweDRkNzZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9SRVNFVCIsCTB4NTAwMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NZTkMiLAkweDUwMDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9TUEVFRCIsCTB4NTAwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9SQVRFIiwJMHg1MDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1RFUkVPIiwJMHg1MDAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUQkxLU0laRSIsCTB4NTAwNH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVEZNVCIsCTB4NTAwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9CSVRTIiwJMHg1MDA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1JFQURfQ0hBTk5FTFMiLAkweDUwMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU09VTkRfUENNX1dSSVRFX0ZJTFRFUiIsCTB4NTAwN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTT1VORF9QQ01fUkVBRF9GSUxURVIiLAkweDUwMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9QT1NUIiwJMHg1MDA4fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU1VCRElWSURFIiwJMHg1MDA5fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURlJBR01FTlQiLAkweDUwMGF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRGTVRTIiwJMHg1MDBifSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1NQQUNFIiwJMHg1MDBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUSVNQQUNFIiwJMHg1MDBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTk9OQkxPQ0siLAkweDUwMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRDQVBTIiwJMHg1MDBmfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUVFJJR0dFUiIsCTB4NTAxMH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX1NFVFRSSUdHRVIiLAkweDUwMTB9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRJUFRSIiwJMHg1MDExfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT1BUUiIsCTB4NTAxMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX01BUElOQlVGIiwJMHg1MDEzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfTUFQT1VUQlVGIiwJMHg1MDE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1lOQ1JPIiwJMHg1MDE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VURFVQTEVYIiwJMHg1MDE2fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfR0VUT0RFTEFZIiwJMHg1MDE3fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfUFJPRklMRSIsCTB4NTAxN30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfRFNQX0dFVENIQU5ORUxNQVNLIiwJMHg1MDQwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfQklORF9DSEFOTkVMIiwJMHg1MDQxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9EU1BfU0VUU1BESUYiLAkweDUwNDJ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0RTUF9HRVRTUERJRiIsCTB4NTA0M30sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUIiwJMHg1MTAwfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfU1lOQyIsCTB4NTEwMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU1lOVEhfSU5GTyIsCTB4NTEwMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0NUUkxSQVRFIiwJMHg1MTAzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfR0VUT1VUQ09VTlQiLAkweDUxMDR9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9HRVRJTkNPVU5UIiwJMHg1MTA1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfUEVSQ01PREUiLAkweDUxMDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNX0xPQURfSU5TVFIiLAkweDUxMDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9URVNUTUlESSIsCTB4NTEwOH0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX1JFU0VUU0FNUExFUyIsCTB4NTEwOX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX05SU1lOVEhTIiwJMHg1MTBhfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfTlJNSURJUyIsCTB4NTEwYn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfTUlESV9JTkZPIiwJMHg1MTBjfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TRVFfVEhSRVNIT0xEIiwJMHg1MTBkfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9NRU1BVkwiLAkweDUxMGV9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX0ZNXzRPUF9FTkFCTEUiLAkweDUxMGZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NFUV9QQU5JQyIsCTB4NTExMX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX09VVE9GQkFORCIsCTB4NTExMn0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfU0VRX0dFVFRJTUUiLAkweDUxMTN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1NZTlRIX0lEIiwJMHg1MTE0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9DT05UUk9MIiwJMHg1MTE1fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9TWU5USF9SRU1PVkVTQU1QTEUiLAkweDUxMTZ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5ER0VURU5UQ05UIiwJMHg1MjAwfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREFERFRPRU5UQ05UIiwJMHg1MjAxfSwKKwl7ImxpbnV4L3JhbmRvbS5oIiwJIlJOREdFVFBPT0wiLAkweDUyMDJ9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQURERU5UUk9QWSIsCTB4NTIwM30sCisJeyJsaW51eC9yYW5kb20uaCIsCSJSTkRaQVBFTlRDTlQiLAkweDUyMDR9LAorCXsibGludXgvcmFuZG9tLmgiLAkiUk5EQ0xFQVJQT09MIiwJMHg1MjA2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0dFVFMiLAkweDU0MDF9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9USU1FQkFTRSIsCTB4NTQwMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENTRVRTIiwJMHg1NDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfU1RBUlQiLAkweDU0MDJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUU1ciLAkweDU0MDN9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TVE9QIiwJMHg1NDAzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVFNGIiwJMHg1NDA0fSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9UTVJfQ09OVElOVUUiLAkweDU0MDR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDR0VUQSIsCTB4NTQwNX0sCisJeyJsaW51eC9zb3VuZGNhcmQuaCIsCSJTTkRDVExfVE1SX1RFTVBPIiwJMHg1NDA1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ1NFVEEiLAkweDU0MDZ9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TT1VSQ0UiLAkweDU0MDZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQVciLAkweDU0MDd9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9NRVRST05PTUUiLAkweDU0MDd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0VUQUYiLAkweDU0MDh9LAorCXsibGludXgvc291bmRjYXJkLmgiLAkiU05EQ1RMX1RNUl9TRUxFQ1QiLAkweDU0MDh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSSyIsCTB4NTQwOX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVENYT05DIiwJMHg1NDBhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUQ0ZMU0giLAkweDU0MGJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NFWENMIiwJMHg1NDBjfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTlhDTCIsCTB4NTQwZH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NDVFRZIiwJMHg1NDBlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BHUlAiLAkweDU0MGZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTUEdSUCIsCTB4NTQxMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ09VVFEiLAkweDU0MTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTVEkiLAkweDU0MTJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHV0lOU1oiLAkweDU0MTN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTV0lOU1oiLAkweDU0MTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNR0VUIiwJMHg1NDE1fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DTUJJUyIsCTB4NTQxNn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ01CSUMiLAkweDU0MTd9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNU0VUIiwJMHg1NDE4fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1NPRlRDQVIiLAkweDU0MTl9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTU09GVENBUiIsCTB4NTQxYX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTlJFQUQiLAkweDU0MWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NMSU5VWCIsCTB4NTQxY30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NPTlMiLAkweDU0MWR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0VSSUFMIiwJMHg1NDFlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU1NFUklBTCIsCTB4NTQxZn0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1BLVCIsCTB4NTQyMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkJJTyIsCTB4NTQyMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ05PVFRZIiwJMHg1NDIyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VURCIsCTB4NTQyM30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dFVEQiLAkweDU0MjR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRDU0JSS1AiLAkweDU0MjV9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NUVFlHU1RSVUNUIiwJMHg1NDI2fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0JSSyIsCTB4NTQyN30sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0NCUksiLAkweDU0Mjh9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHU0lEIiwJMHg1NDI5fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR1BUTiIsCTB4NTQzMH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NQVExDSyIsCTB4NTQzMX0sCisJeyJhc20vaW9jdGxzLmgiLAkiRklPTkNMRVgiLAkweDU0NTB9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0NMRVgiLAkweDU0NTF9LAorCXsiYXNtL2lvY3Rscy5oIiwJIkZJT0FTWU5DIiwJMHg1NDUyfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSQ09ORklHIiwJMHg1NDUzfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1dJTEQiLAkweDU0NTR9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTRVJTV0lMRCIsCTB4NTQ1NX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ0dMQ0tUUk1JT1MiLAkweDU0NTZ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NTTENLVFJNSU9TIiwJMHg1NDU3fSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSR1NUUlVDVCIsCTB4NTQ1OH0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVExTUiIsCTB4NTQ1OX0sCisJeyJhc20vaW9jdGxzLmgiLAkiVElPQ1NFUkdFVE1VTFRJIiwJMHg1NDVhfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0VSU0VUTVVMVEkiLAkweDU0NWJ9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NNSVdBSVQiLAkweDU0NWN9LAorCXsiYXNtL2lvY3Rscy5oIiwJIlRJT0NHSUNPVU5UIiwJMHg1NDVkfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DR0hBWUVTRVNQIiwJMHg1NDVlfSwKKwl7ImFzbS9pb2N0bHMuaCIsCSJUSU9DU0hBWUVTRVNQIiwJMHg1NDVmfSwKKwl7ImxpbnV4L2lmX3R1bi5oIiwJIlRVTlNFVE5PQ1NVTSIsCTB4NTRjOH0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRERUJVRyIsCTB4NTRjOX0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRJRkYiLAkweDU0Y2F9LAorCXsibGludXgvaWZfdHVuLmgiLAkiVFVOU0VUUEVSU0lTVCIsCTB4NTRjYn0sCisJeyJsaW51eC9pZl90dW4uaCIsCSJUVU5TRVRPV05FUiIsCTB4NTRjY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05UUk9MIiwJMHg1NTAwfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0JVTEsiLAkweDU1MDJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVRFUCIsCTB4NTUwM30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19TRVRJTlRFUkZBQ0UiLAkweDU1MDR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU0VUQ09ORklHVVJBVElPTiIsCTB4NTUwNX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19HRVREUklWRVIiLAkweDU1MDh9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfU1VCTUlUVVJCIiwJMHg1NTBhfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NBUkRVUkIiLAkweDU1MGJ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVBUFVSQiIsCTB4NTUwY30sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19SRUFQVVJCTkRFTEFZIiwJMHg1NTBkfSwKKwl7ImxpbnV4L3VzYmRldmljZV9mcy5oIiwJIlVTQkRFVkZTX0RJU0NTSUdOQUwiLAkweDU1MGV9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xBSU1JTlRFUkZBQ0UiLAkweDU1MGZ9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVMRUFTRUlOVEVSRkFDRSIsCTB4NTUxMH0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19DT05ORUNUSU5GTyIsCTB4NTUxMX0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19JT0NUTCIsCTB4NTUxMn0sCisJeyJsaW51eC91c2JkZXZpY2VfZnMuaCIsCSJVU0JERVZGU19IVUJfUE9SVElORk8iLAkweDU1MTN9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfUkVTRVQiLAkweDU1MTR9LAorCXsibGludXgvdXNiZGV2aWNlX2ZzLmgiLAkiVVNCREVWRlNfQ0xFQVJfSEFMVCIsCTB4NTUxNX0sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX0dFVFNVUFBPUlQiLAkweDU3MDB9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRTVEFUVVMiLAkweDU3MDF9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19HRVRCT09UU1RBVFVTIiwJMHg1NzAyfSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVEVNUCIsCTB4NTcwM30sCisJeyJsaW51eC93YXRjaGRvZy5oIiwJIldESU9DX1NFVE9QVElPTlMiLAkweDU3MDR9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19LRUVQQUxJVkUiLAkweDU3MDV9LAorCXsibGludXgvd2F0Y2hkb2cuaCIsCSJXRElPQ19TRVRUSU1FT1VUIiwJMHg1NzA2fSwKKwl7ImxpbnV4L3dhdGNoZG9nLmgiLAkiV0RJT0NfR0VUVElNRU9VVCIsCTB4NTcwN30sCisJeyJsaW51eC9pdGVfZ3Bpby5oIiwJIklURV9HUElPX0lOIiwJMHg1YTAwfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fT1VUIiwJMHg1YTAxfSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fSU5UX0NUUkwiLAkweDVhMDJ9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTl9TVEFUVVMiLAkweDVhMDN9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19PVVRfU1RBVFVTIiwJMHg1YTA0fSwKKwl7ImxpbnV4L2l0ZV9ncGlvLmgiLAkiSVRFX0dQSU9fR0VOX0NUUkwiLAkweDVhMDV9LAorCXsibGludXgvaXRlX2dwaW8uaCIsCSJJVEVfR1BJT19JTlRfV0FJVCIsCTB4NWEwNn0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX0dFVFNUQVQiLAkweDYxMTB9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRTVEFUWiIsCTB4NjExMX0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVERJQUciLAkweDYxMTJ9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9DTFJESUFHIiwJMHg2MTEzfSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURElBRyIsCTB4NjExNH0sCisJeyJsaW51eC9zb25ldC5oIiwJIlNPTkVUX1NFVEZSQU1JTkciLAkweDYxMTV9LAorCXsibGludXgvc29uZXQuaCIsCSJTT05FVF9HRVRGUkFNSU5HIiwJMHg2MTE2fSwKKwl7ImxpbnV4L3NvbmV0LmgiLAkiU09ORVRfR0VURlJTRU5TRSIsCTB4NjExN30sCisJeyJsaW51eC9hdG1faWR0NzcxMDUuaCIsCSJJRFQ3NzEwNV9HRVRTVEFUIiwJMHg2MTMyfSwKKwl7ImxpbnV4L2F0bV9pZHQ3NzEwNS5oIiwJIklEVDc3MTA1X0dFVFNUQVRaIiwJMHg2MTMzfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUIiwJMHg2MTUwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRTVEFUWiIsCTB4NjE1MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTE9PUCIsCTB4NjE1Mn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUTE9PUCIsCTB4NjE1M30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUVVFUllMT09QIiwJMHg2MTU0fSwKKwl7ImxpbnV4L2F0bV9lbmkuaCIsCSJFTklfTUVNRFVNUCIsCTB4NjE2MH0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0dFVFBTVEFUIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MIiwJMHg2MTYxfSwKKwl7ImxpbnV4L2F0bV9uaWNzdGFyLmgiLAkiTlNfU0VUQlVGTEVWIiwJMHg2MTYyfSwKKwl7ImxpbnV4L2F0bV96YXRtLmgiLAkiWkFUTV9HRVRQT09MWiIsCTB4NjE2Mn0sCisJeyJsaW51eC9hdG1fbmljc3Rhci5oIiwJIk5TX0FESkJVRkxFViIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fU0VUUE9PTCIsCTB4NjE2M30sCisJeyJsaW51eC9hdG1femF0bS5oIiwJIlpBVE1fR0VUVEhJU1QiLAkweDYxNjR9LAorCXsibGludXgvYXRtX2VuaS5oIiwJIkVOSV9TRVRNVUxUIiwJMHg2MTY3fSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJTSU9DU0lGQVRNVENQIiwJMHg2MTgwfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9HRVRMSU5LUkFURSIsCTB4NjE4MX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUTkFNRVMiLAkweDYxODN9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVFRZUEUiLAkweDYxODR9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX0dFVEVTSSIsCTB4NjE4NX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQUREUiIsCTB4NjE4Nn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fUlNUQUREUiIsCTB4NjE4N30sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fQUREQUREUiIsCTB4NjE4OH0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fREVMQUREUiIsCTB4NjE4OX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fR0VUQ0lSQU5HRSIsCTB4NjE4YX0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VUQ0lSQU5HRSIsCTB4NjE4Yn0sCisJeyJsaW51eC9hdG1kZXYuaCIsCSJBVE1fU0VURVNJIiwJMHg2MThjfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRFU0lGIiwJMHg2MThkfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfQ1JFQVRFIiwJMHg2MThlfSwKKwl7ImxpbnV4L2F0bV90Y3AuaCIsCSJBVE1UQ1BfUkVNT1ZFIiwJMHg2MThmfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19DVFJMIiwJMHg2MWQwfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19EQVRBIiwJMHg2MWQxfSwKKwl7ImxpbnV4L2F0bWxlYy5oIiwJIkFUTUxFQ19NQ0FTVCIsCTB4NjFkMn0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfQ1RSTCIsCTB4NjFkOH0sCisJeyJsaW51eC9hdG1tcGMuaCIsCSJBVE1NUENfREFUQSIsCTB4NjFkOX0sCisJeyJsaW51eC9hdG1jbGlwLmgiLAkiU0lPQ01LQ0xJUCIsCTB4NjFlMH0sCisJeyJsaW51eC9hdG1hcnAuaCIsCSJBVE1BUlBEX0NUUkwiLAkweDYxZTF9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX01LSVAiLAkweDYxZTJ9LAorCXsibGludXgvYXRtYXJwLmgiLAkiQVRNQVJQX1NFVEVOVFJZIiwJMHg2MWUzfSwKKwl7ImxpbnV4L2F0bWFycC5oIiwJIkFUTUFSUF9FTkNBUCIsCTB4NjFlNX0sCisJeyJsaW51eC9hdG1zdmMuaCIsCSJBVE1TSUdEX0NUUkwiLAkweDYxZjB9LAorCXsibGludXgvYXRtZGV2LmgiLAkiQVRNX1NFVFNDIiwJMHg2MWYxfSwKKwl7ImxpbnV4L2F0bWRldi5oIiwJIkFUTV9TRVRCQUNLRU5EIiwJMHg2MWYyfSwKKwl7ImxpbnV4L2NvZGEuaCIsCSJDSU9DX0tFUk5FTF9WRVJTSU9OIiwJMHg2MzBhfSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX0dFVFBPUlRTVEFUUyIsCTB4NjMxZX0sCisJeyJsaW51eC9jb21zdGF0cy5oIiwJIkNPTV9DTFJQT1JUU1RBVFMiLAkweDYzMWZ9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fR0VUQlJEU1RBVFMiLAkweDYzMjB9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBRFBPUlQiLAkweDYzMjh9LAorCXsibGludXgvY29tc3RhdHMuaCIsCSJDT01fUkVBREJPQVJEIiwJMHg2MzI5fSwKKwl7ImxpbnV4L2NvbXN0YXRzLmgiLAkiQ09NX1JFQURQQU5FTCIsCTB4NjMyYX0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19HRVRfUFJPVE9fUkVWIiwJMHg2NDAwfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0dFVF9DQVBBQklMSVRJRVMiLAkweDY0MDF9LAorCXsibGludXgvZGV2ZnNfZnMuaCIsCSJERVZGU0RJT0NfU0VUX0VWRU5UX01BU0siLAkweDY0MDJ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfR0VUX1NUQVRVUyIsCTB4NjQwMn0sCisJeyJsaW51eC9kZXZmc19mcy5oIiwJIkRFVkZTRElPQ19SRUxFQVNFX0VWRU5UX1FVRVVFIiwJMHg2NDAzfSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9OT1JNIiwJMHg2NDAzfSwKKwl7ImxpbnV4L2RldmZzX2ZzLmgiLAkiREVWRlNESU9DX1NFVF9ERUJVR19NQVNLIiwJMHg2NDA0fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX1NFVF9JTlBVVCIsCTB4NjQwNH0sCisJeyJsaW51eC92aWRlb19kZWNvZGVyLmgiLAkiREVDT0RFUl9TRVRfT1VUUFVUIiwJMHg2NDA1fSwKKwl7ImxpbnV4L3ZpZGVvX2RlY29kZXIuaCIsCSJERUNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY0MDZ9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfU0VUX1BJQ1RVUkUiLAkweDY0MDd9LAorCXsibGludXgvdmlkZW9fZGVjb2Rlci5oIiwJIkRFQ09ERVJfRFVNUCIsCTB4NjRjMH0sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9HRVRfQ0FQQUJJTElUSUVTIiwJMHg2NTAxfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9OT1JNIiwJMHg2NTAyfSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX1NFVF9JTlBVVCIsCTB4NjUwM30sCisJeyJsaW51eC92aWRlb19lbmNvZGVyLmgiLAkiRU5DT0RFUl9TRVRfT1VUUFVUIiwJMHg2NTA0fSwKKwl7ImxpbnV4L3ZpZGVvX2VuY29kZXIuaCIsCSJFTkNPREVSX0VOQUJMRV9PVVRQVVQiLAkweDY1MDV9LAorCXsibGludXgvZXh0Ml9mcy5oIiwJIkVYVDJfSU9DX0dFVEZMQUdTIiwJMHg2NjAxfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRGTEFHUyIsCTB4NjYwMX0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfU0VURkxBR1MiLAkweDY2MDJ9LAorCXsibGludXgvZXh0M19mcy5oIiwJIkVYVDNfSU9DX1NFVEZMQUdTIiwJMHg2NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19HRVRWRVJTSU9OIiwJMHg2NjAzfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OIiwJMHg2NjA0fSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19XQUlUX0ZPUl9SRUFET05MWSIsCTB4NjY2M30sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPR0VUSU9QUyIsCTB4NjkwMH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFJUR0VUIiwJMHg2OTAxfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9MQ1RHRVQiLAkweDY5MDJ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1TRVQiLAkweDY5MDN9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1BBUk1HRVQiLAkweDY5MDR9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREwiLAkweDY5MDV9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXVUwiLAkweDY5MDZ9LAorCXsibGludXgvaTJvLWRldi5oIiwJIkkyT1NXREVMIiwJMHg2OTA3fSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9WQUxJREFURSIsCTB4NjkwOH0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPSFRNTCIsCTB4NjkwOX0sCisJeyJsaW51eC9pMm8tZGV2LmgiLAkiSTJPRVZUUkVHIiwJMHg2OTBhfSwKKwl7ImxpbnV4L2kyby1kZXYuaCIsCSJJMk9FVlRHRVQiLAkweDY5MGJ9LAorCXsibGludXgvaThrLmgiLAkiSThLX0JJT1NfVkVSU0lPTiIsCTB4Njk4MH0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfTUFDSElORV9JRCIsCTB4Njk4MX0sCisJeyJsaW51eC9pOGsuaCIsCSJJOEtfUE9XRVJfU1RBVFVTIiwJMHg2OTgyfSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19GTl9TVEFUVVMiLAkweDY5ODN9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9URU1QIiwJMHg2OTg0fSwKKwl7ImxpbnV4L2k4ay5oIiwJIkk4S19HRVRfU1BFRUQiLAkweDY5ODV9LAorCXsibGludXgvaThrLmgiLAkiSThLX0dFVF9GQU4iLAkweDY5ODZ9LAorCXsibGludXgvaThrLmgiLAkiSThLX1NFVF9GQU4iLAkweDY5ODd9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dWRVJTSU9OIiwJMHg2YTAxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhFUyIsCTB4NmExMX0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DR0JVVFRPTlMiLAkweDZhMTJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NDT1JSIiwJMHg2YTIxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQ09SUiIsCTB4NmEyMn0sCisJeyJsaW51eC9qb3lzdGljay5oIiwJIkpTSU9DU0FYTUFQIiwJMHg2YTMxfSwKKwl7ImxpbnV4L2pveXN0aWNrLmgiLAkiSlNJT0NHQVhNQVAiLAkweDZhMzJ9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ1NCVE5NQVAiLAkweDZhMzN9LAorCXsibGludXgvam95c3RpY2suaCIsCSJKU0lPQ0dCVE5NQVAiLAkweDZhMzR9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VURUFTSVpFIiwJMHg2YzQwfSwKKwl7ImxpbnV4L3VkZl9mc19pLmgiLAkiVURGX0dFVEVBQkxPQ0siLAkweDZjNDF9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfR0VUVk9MSURFTlQiLAkweDZjNDJ9LAorCXsibGludXgvdWRmX2ZzX2kuaCIsCSJVREZfUkVMT0NBVEVfQkxPQ0tTIiwJMHg2YzQzfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX1BSRVRJTUUiLAkweDZkMDB9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1NQQVJBTVMiLAkweDZkMDB9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DVE9QIiwJMHg2ZDAxfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVU1PREUiLAkweDZkMDF9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dQQVJBTVMiLAkweDZkMDF9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUIiwJMHg2ZDAyfSwKKwl7ImxpbnV4L3NvdW5kY2FyZC5oIiwJIlNORENUTF9NSURJX01QVUNNRCIsCTB4NmQwMn0sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DU1RYSURMRSIsCTB4NmQwMn0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NQT1MiLAkweDZkMDN9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ0dUWElETEUiLAkweDZkMDN9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DR0VUQ09ORklHIiwJMHg2ZDA0fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NUWEVOQUJMRSIsCTB4NmQwNH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NTRVRDT05GSUciLAkweDZkMDV9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1JYRU5BQkxFIiwJMHg2ZDA1fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1JERlRTRUciLAkweDZkMDZ9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1RYQUJPUlQiLAkweDZkMDZ9LAorCXsibGludXgvbXRpby5oIiwJIk1USU9DV1JGVFNFRyIsCTB4NmQwN30sCisJeyJsaW51eC9zeW5jbGluay5oIiwJIk1HU0xfSU9DR1NUQVRTIiwJMHg2ZDA3fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ1ZPTElORk8iLAkweDZkMDh9LAorCXsibGludXgvc3luY2xpbmsuaCIsCSJNR1NMX0lPQ1dBSVRFVkVOVCIsCTB4NmQwOH0sCisJeyJsaW51eC9tdGlvLmgiLAkiTVRJT0NHRVRTSVpFIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NMT09QVFhET05FIiwJMHg2ZDA5fSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZURk9STUFUIiwJMHg2ZDBhfSwKKwl7ImxpbnV4L210aW8uaCIsCSJNVElPQ0ZUQ01EIiwJMHg2ZDBifSwKKwl7ImxpbnV4L3N5bmNsaW5rLmgiLAkiTUdTTF9JT0NDTFJNT0RDT1VOVCIsCTB4NmQwZn0sCisJeyJsaW51eC96ZnRhcGUuaCIsCSJNVElPQ19aRlRBUEVfR0VUQkxLU1oiLAkweDZkNjh9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19OQ1BSRVFVRVNUIiwJMHg2ZTAxfSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUTU9VTlRVSUQiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRNT1VOVFVJRDIiLAkweDZlMDJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19DT05OX0xPR0dFRF9JTiIsCTB4NmUwM30sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVF9GU19JTkZPIiwJMHg2ZTA0fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUX0ZTX0lORk9fVjIiLAkweDZlMDR9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX0lOSVQiLAkweDZlMDV9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX1NFVF9TSUdOX1dBTlRFRCIsCTB4NmUwNn0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0xPQ0tVTkxPQ0siLAkweDZlMDd9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRST09UIiwJMHg2ZTA4fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUUk9PVCIsCTB4NmUwOH0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVE9CSkVDVE5BTUUiLAkweDZlMDl9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRPQkpFQ1ROQU1FIiwJMHg2ZTA5fSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfR0VUUFJJVkFURURBVEEiLAkweDZlMGF9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRQUklWQVRFREFUQSIsCTB4NmUwYX0sCisJeyJsaW51eC9uY3BfZnMuaCIsCSJOQ1BfSU9DX0dFVENIQVJTRVRTIiwJMHg2ZTBifSwKKwl7ImxpbnV4L25jcF9mcy5oIiwJIk5DUF9JT0NfU0VUQ0hBUlNFVFMiLAkweDZlMGJ9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19HRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbmNwX2ZzLmgiLAkiTkNQX0lPQ19TRVRERU5UUllUVEwiLAkweDZlMGN9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX0NPTk5FQ1RJT04iLAkweDZlZjh9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQVZBSUxBQkxFX09VVFBVVFMiLAkweDZlZjl9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9TRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfT1VUUFVUX01PREUiLAkweDZlZmF9LAorCXsibGludXgvbWF0cm94ZmIuaCIsCSJNQVRST1hGQl9HRVRfQUxMX09VVFBVVFMiLAkweDZlZmJ9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FJRV9PTiIsCTB4NzAwMX0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfQUlFX09GRiIsCTB4NzAwMn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVE1PVU5UIiwJMHg3MDAzfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19VSUVfT04iLAkweDcwMDN9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19TRVRQSUQiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1VJRV9PRkYiLAkweDcwMDR9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1BJRV9PTiIsCTB4NzAwNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0NMT1NFX0pPVVJOQUxGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19QSUVfT0ZGIiwJMHg3MDA2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUX0ZTRVRST09UIiwJMHg3MDA3fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19BTE1fU0VUIiwJMHg3MDA3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0xFQVJfRlNFVFJPT1QiLAkweDcwMDh9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0FMTV9SRUFEIiwJMHg3MDA4fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fU0VUT1BUIiwJMHg3MDA5fSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19SRF9USU1FIiwJMHg3MDA5fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fR0VUT1BUIiwJMHg3MDBhfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19TRVRfVElNRSIsCTB4NzAwYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0dFVF9LTUxTSVpFIiwJMHg3MDBifSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19JUlFQX1JFQUQiLAkweDcwMGJ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19HRVRfUkVDTk8iLAkweDcwMGN9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX0lSUVBfU0VUIiwJMHg3MDBjfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9SRUFEIiwJMHg3MDBkfSwKKwl7ImxpbnV4L3J0Yy5oIiwJIlJUQ19FUE9DSF9TRVQiLAkweDcwMGV9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PTiIsCTB4NzAwZn0sCisJeyJsaW51eC9ydGMuaCIsCSJSVENfV0tBTE1fU0VUIiwJMHg3MDBmfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1NFVEFUVFIiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dJRV9PRkYiLAkweDcwMTB9LAorCXsibGludXgvcnRjLmgiLAkiUlRDX1dLQUxNX1JEIiwJMHg3MDEwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0NSRUFURSIsCTB4NzAxMX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19MSU5LIiwJMHg3MDEyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1VOTElOSyIsCTB4NzAxM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TWU1MSU5LIiwJMHg3MDE0fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LRElSIiwJMHg3MDE1fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JNRElSIiwJMHg3MDE2fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX01LTk9EIiwJMHg3MDE3fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX1JFTkFNRSIsCTB4NzAxOH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19DTE9TRSIsCTB4NzAxYX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19JT1BFTiIsCTB4NzAxYn0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1ZGU19TRVRFWFRBVFRSIiwJMHg3MDFjfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fVkZTX0RFTEVYVEFUVFIiLAkweDcwMWR9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19NQVJLIiwJMHg3MDIwfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVMRUFTRV9QRVJNSVQiLAkweDcwMjF9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DTEVBUl9BTExfRlNFVFJPT1RTIiwJMHg3MDIyfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQkFDS0ZFVENIX0xNTCIsCTB4NzAyM30sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFSU5UIiwJMHg3MDI0fSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fQ0FOQ0VMX0xNTCIsCTB4NzAyNX0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX1JFU0VUX0ZTRVQiLAkweDcwMjZ9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19DT01QTEVURV9DTE9TRVMiLAkweDcwMjd9LAorCXsibGludXgvaW50ZXJtZXp6b19mcy5oIiwJIlBSRVNUT19SRUlOVF9CRUdJTiIsCTB4NzAzMH0sCisJeyJsaW51eC9pbnRlcm1lenpvX2ZzLmgiLAkiUFJFU1RPX0RPX1JFSU5UIiwJMHg3MDMxfSwKKwl7ImxpbnV4L2ludGVybWV6em9fZnMuaCIsCSJQUkVTVE9fUkVJTlRfRU5EIiwJMHg3MDMyfSwKKwl7ImxpbnV4L252cmFtLmgiLAkiTlZSQU1fSU5JVCIsCTB4NzA0MH0sCisJeyJsaW51eC9udnJhbS5oIiwJIk5WUkFNX1NFVENLUyIsCTB4NzA0MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUTU9ERSIsCTB4NzA4MH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUlNUQVRVUyIsCTB4NzA4MX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQUkNPTlRST0wiLAkweDcwODN9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFdDT05UUk9MIiwJMHg3MDg0fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSREFUQSIsCTB4NzA4NX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQV0RBVEEiLAkweDcwODZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUENMQUlNIiwJMHg3MDhifSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBSRUxFQVNFIiwJMHg3MDhjfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBZSUVMRCIsCTB4NzA4ZH0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQRkNPTlRST0wiLAkweDcwOGV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEVYQ0wiLAkweDcwOGZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUERBVEFESVIiLAkweDcwOTB9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUE5FR09UIiwJMHg3MDkxfSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBXQ1RMT05JUlEiLAkweDcwOTJ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUENMUklSUSIsCTB4NzA5M30sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQU0VUUEhBU0UiLAkweDcwOTR9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVFRJTUUiLAkweDcwOTV9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVFRJTUUiLAkweDcwOTZ9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUEdFVE1PREVTIiwJMHg3MDk3fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRNT0RFIiwJMHg3MDk4fSwKKwl7ImxpbnV4L3BwZGV2LmgiLAkiUFBHRVRQSEFTRSIsCTB4NzA5OX0sCisJeyJsaW51eC9wcGRldi5oIiwJIlBQR0VURkxBR1MiLAkweDcwOWF9LAorCXsibGludXgvcHBkZXYuaCIsCSJQUFNFVEZMQUdTIiwJMHg3MDlifSwKKwl7ImxpbnV4L3NlcmlvLmgiLAkiU1BJT0NTVFlQRSIsCTB4NzEwMX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9DQVBBQklMSVRJRVMiLAkweDcxODB9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0xJU1QiLAkweDcxODF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ0FQQUJJTElUSUVTX0NIRUNLIiwJMHg3MTgyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkciLAkweDcxODN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfSE9PS1NUQVRFIiwJMHg3MTg0fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX01BWFJJTkdTIiwJMHg3MTg1fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfQ0FERU5DRSIsCTB4NzE4Nn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJPTERfUEhPTkVfUklOR19TVEFSVCIsCTB4NzE4N30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SSU5HX1NUQVJUIiwJMHg3MTg3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JJTkdfU1RPUCIsCTB4NzE4OH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfQ09ERUMiLAkweDcxODl9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUkVDX1NUQVJUIiwJMHg3MThhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19TVE9QIiwJMHg3MThifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19ERVBUSCIsCTB4NzE4Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9GUkFNRSIsCTB4NzE4ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9SRUNfVk9MVU1FIiwJMHg3MThlfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19MRVZFTCIsCTB4NzE4Zn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX0NPREVDIiwJMHg3MTkwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfU1RBUlQiLAkweDcxOTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9TVE9QIiwJMHg3MTkyfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfREVQVEgiLAkweDcxOTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9WT0xVTUUiLAkweDcxOTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUExBWV9MRVZFTCIsCTB4NzE5NX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9EVE1GX1JFQURZIiwJMHg3MTk2fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GIiwJMHg3MTk3fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9EVE1GX0FTQ0lJIiwJMHg3MTk4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0RUTUZfT09CIiwJMHg3MTk5fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0VYQ0VQVElPTiIsCTB4NzE5YX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QTEFZX1RPTkUiLAkweDcxOWJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfU0VUX1RPTkVfT05fVElNRSIsCTB4NzE5Y30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9TRVRfVE9ORV9PRkZfVElNRSIsCTB4NzE5ZH0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9HRVRfVE9ORV9PTl9USU1FIiwJMHg3MTllfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX09GRl9USU1FIiwJMHg3MTlmfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0dFVF9UT05FX1NUQVRFIiwJMHg3MWEwfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX0JVU1kiLAkweDcxYTF9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUklOR0JBQ0siLAkweDcxYTJ9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfRElBTFRPTkUiLAkweDcxYTN9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfQ1BUX1NUT1AiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9TRVRfU1RBVEUiLAkweDcxYTR9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfUFNUTl9HRVRfU1RBVEUiLAkweDcxYTV9LAorCXsibGludXgvdGVsZXBob255LmgiLAkiUEhPTkVfV0lOS19EVVJBVElPTiIsCTB4NzFhNn0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9RVUVSWV9DT0RFQyIsCTB4NzFhN30sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9QU1ROX0xJTkVURVNUIiwJMHg3MWE4fSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1ZBRCIsCTB4NzFhOX0sCisJeyJsaW51eC90ZWxlcGhvbnkuaCIsCSJQSE9ORV9XSU5LIiwJMHg3MWFhfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX1JFU0VUIiwJMHg3MWMwfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0FSRFRZUEUiLAkweDcxYzF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TRVJJQUwiLAkweDcxYzJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EU1BfVFlQRSIsCTB4NzFjM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RTUF9WRVJTSU9OIiwJMHg3MWM0fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRFNQX0lETEUiLAkweDcxYzV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9URVNUUkFNIiwJMHg3MWM2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfU0VUX0ZJTFRFUiIsCTB4NzFjN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0dFVF9GSUxURVJfSElTVCIsCTB4NzFjOH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOSVRfVE9ORSIsCTB4NzFjOX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1RPTkVfQ0FERU5DRSIsCTB4NzFjYX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVEFSVCIsCTB4NzFjYn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0FFQ19TVE9QIiwJMHg3MWNjfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQUVDX0dFVF9MRVZFTCIsCTB4NzFjZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9MRUQiLAkweDcxY2V9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9NSVhFUiIsCTB4NzFjZn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RBQV9DT0VGRl9TRVQiLAkweDcxZDB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9QT1JUIiwJMHg3MWQxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfREFBX0FHQUlOIiwJMHg3MWQyfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUFNUTl9MSU5FVEVTVCIsCTB4NzFkM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0NJRCIsCTB4NzFkNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1BPVFNfUFNUTiIsCTB4NzFkNX0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0ZJTFRFUl9DQURFTkNFIiwJMHg3MWQ2fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfUExBWV9DSUQiLAkweDcxZDd9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WTVdJIiwJMHg3MWQ4fSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfQ0lEQ1ciLAkweDcxZDl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9WRVJTSU9OIiwJMHg3MWRhfSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1JFQ19WT0xVTUVfTElORUFSIiwJMHg3MWRifSwKKwl7ImxpbnV4L3RlbGVwaG9ueS5oIiwJIlBIT05FX1BMQVlfVk9MVU1FX0xJTkVBUiIsCTB4NzFkY30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1NFVF9GSUxURVJfUkFXIiwJMHg3MWRkfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfSFoiLAkweDcxZTB9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9SQVRFIiwJMHg3MWUxfSwKKwl7ImxpbnV4L2l4anVzZXIuaCIsCSJJWEpDVExfRlJBTUVTX1JFQUQiLAkweDcxZTJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9GUkFNRVNfV1JJVFRFTiIsCTB4NzFlM30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1JFQURfV0FJVCIsCTB4NzFlNH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX1dSSVRFX1dBSVQiLAkweDcxZTV9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9EUllCVUZGRVJfUkVBRCIsCTB4NzFlNn0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RSWUJVRkZFUl9DTEVBUiIsCTB4NzFlN30sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0RUTUZfUFJFU0NBTEUiLAkweDcxZTh9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TSUdDVEwiLAkweDcxZTl9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19SWEciLAkweDcxZWF9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9TQ19UWEciLAkweDcxZWJ9LAorCXsibGludXgvaXhqdXNlci5oIiwJIklYSkNUTF9JTlRFUkNPTV9TVEFSVCIsCTB4NzFmZH0sCisJeyJsaW51eC9peGp1c2VyLmgiLAkiSVhKQ1RMX0lOVEVSQ09NX1NUT1AiLAkweDcxZmV9LAorCXsibGludXgvbXNkb3NfZnMuaCIsCSJWRkFUX0lPQ1RMX1JFQURESVJfQk9USCIsCTB4NzIwMX0sCisJeyJsaW51eC9tc2Rvc19mcy5oIiwJIlZGQVRfSU9DVExfUkVBRERJUl9TSE9SVCIsCTB4NzIwMn0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQklOVFIiLAkweDczMTR9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JTVEFSVCIsCTB4NzMxNX0sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfQlNUT1AiLAkweDczMTZ9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX0JSRVNFVCIsCTB4NzMxN30sCisJeyJsaW51eC9jZGsuaCIsCSJTVExfR0VUUEZMQUciLAkweDczNTB9LAorCXsibGludXgvY2RrLmgiLAkiU1RMX1NFVFBGTEFHIiwJMHg3MzUxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dDSEFOIiwJMHg3NDM3fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0FUVENIQU4iLAkweDc0Mzh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DRElTQ09OTiIsCTB4NzQzOX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NDT05ORUNUIiwJMHg3NDNhfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NNUlJVIiwJMHg3NDNifSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0RFVEFDSCIsCTB4NzQzY30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NBVFRBQ0giLAkweDc0M2R9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DTkVXVU5JVCIsCTB4NzQzZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHSURMRSIsCTB4NzQzZn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTREVCVUciLAkweDc0NDB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DR0RFQlVHIiwJMHg3NDQxfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBQ1RJVkUiLAkweDc0NDZ9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1BBU1MiLAkweDc0NDd9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU05QTU9ERSIsCTB4NzQ0Yn0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHTlBNT0RFIiwJMHg3NDRjfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NDT01QUkVTUyIsCTB4NzQ0ZH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NYRkVSVU5JVCIsCTB4NzQ0ZX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTWEFTWU5DTUFQIiwJMHg3NDRmfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dYQVNZTkNNQVAiLAkweDc0NTB9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU01BWENJRCIsCTB4NzQ1MX0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NTTVJVIiwJMHg3NDUyfSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dNUlUiLAkweDc0NTN9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU1JBU1lOQ01BUCIsCTB4NzQ1NH0sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHUkFTWU5DTUFQIiwJMHg3NDU1fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dVTklUIiwJMHg3NDU2fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ1NBU1lOQ01BUCIsCTB4NzQ1N30sCisJeyJsaW51eC9pZl9wcHAuaCIsCSJQUFBJT0NHQVNZTkNNQVAiLAkweDc0NTh9LAorCXsibGludXgvaWZfcHBwLmgiLAkiUFBQSU9DU0ZMQUdTIiwJMHg3NDU5fSwKKwl7ImxpbnV4L2lmX3BwcC5oIiwJIlBQUElPQ0dGTEFHUyIsCTB4NzQ1YX0sCisJeyJsaW51eC9qZmZzLmgiLAkiSkZGU19QUklOVF9IQVNIIiwJMHg3NDVhfSwKKwl7ImxpbnV4L2pmZnMuaCIsCSJKRkZTX1BSSU5UX1RSRUUiLAkweDc0NWJ9LAorCXsibGludXgvamZmcy5oIiwJIkpGRlNfR0VUX1NUQVRVUyIsCTB4NzQ1Y30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dDQUxMSU5GTyIsCTB4NzQ4MH0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0JVTkRMRSIsCTB4NzQ4MX0sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dNUEZMQUdTIiwJMHg3NDgyfSwKKwl7ImxpbnV4L2lzZG5fcHBwLmgiLAkiUFBQSU9DU01QRkxBR1MiLAkweDc0ODN9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNVFUiLAkweDc0ODR9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTTVBNUlUiLAkweDc0ODV9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NHQ09NUFJFU1NPUlMiLAkweDc0ODZ9LAorCXsibGludXgvaXNkbl9wcHAuaCIsCSJQUFBJT0NTQ09NUFJFU1NPUiIsCTB4NzQ4N30sCisJeyJsaW51eC9pc2RuX3BwcC5oIiwJIlBQUElPQ0dJRk5BTUUiLAkweDc0ODh9LAorCXsibGludXgvdG9zaGliYS5oIiwJIlRPU0hfU01NIiwJMHg3NDkwfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQiLAkweDc1MDF9LAorCXsibGludXgvc21iX2ZzLmgiLAkiU01CX0lPQ19ORVdDT05OIiwJMHg3NTAyfSwKKwl7ImxpbnV4L3NtYl9mcy5oIiwJIlNNQl9JT0NfR0VUTU9VTlRVSUQzMiIsCTB4NzUwM30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JSVCIsCTB4NzYwMH0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DU0JSVCIsCTB4NzYwMH0sCisJeyJsaW51eC9leHQyX2ZzLmgiLAkiRVhUMl9JT0NfR0VUVkVSU0lPTiIsCTB4NzYwMX0sCisJeyJsaW51eC9leHQzX2ZzLmgiLAkiRVhUM19JT0NfR0VUVkVSU0lPTl9PTEQiLAkweDc2MDF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQIiwJMHg3NjAxfSwKKwl7ImxpbnV4L2V4dDJfZnMuaCIsCSJFWFQyX0lPQ19TRVRWRVJTSU9OIiwJMHg3NjAyfSwKKwl7ImxpbnV4L2V4dDNfZnMuaCIsCSJFWFQzX0lPQ19TRVRWRVJTSU9OX09MRCIsCTB4NzYwMn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFDQVAiLAkweDc2MDJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0hBTiIsCTB4NzYwMn0sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDFSRU0iLAkweDc2MDN9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTQ0hBTiIsCTB4NzYwM30sCisJeyJsaW51eC9zb255cGkuaCIsCSJTT05ZUElfSU9DR0JBVDJDQVAiLAkweDc2MDR9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVFVORVIiLAkweDc2MDR9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVQyUkVNIiwJMHg3NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1RVTkVSIiwJMHg3NjA1fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1BJQ1QiLAkweDc2MDZ9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ0dCQVRGTEFHUyIsCTB4NzYwN30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NQSUNUIiwJMHg3NjA3fSwKKwl7ImxpbnV4L3NvbnlwaS5oIiwJIlNPTllQSV9JT0NHQkxVRSIsCTB4NzYwOH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0NBUFRVUkUiLAkweDc2MDh9LAorCXsibGludXgvc29ueXBpLmgiLAkiU09OWVBJX0lPQ1NCTFVFIiwJMHg3NjA5fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1dJTiIsCTB4NzYwOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NXSU4iLAkweDc2MGF9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHRkJVRiIsCTB4NzYwYn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NGQlVGIiwJMHg3NjBjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DS0VZIiwJMHg3NjBkfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR0ZSRVEiLAkweDc2MGV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NTRlJFUSIsCTB4NzYwZn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dBVURJTyIsCTB4NzYxMH0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NBVURJTyIsCTB4NzYxMX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NZTkMiLAkweDc2MTJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NNQ0FQVFVSRSIsCTB4NzYxM30sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dNQlVGIiwJMHg3NjE0fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DR1VOSVQiLAkweDc2MTV9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHQ0FQVFVSRSIsCTB4NzYxNn0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NDQVBUVVJFIiwJMHg3NjE3fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1BMQVlNT0RFIiwJMHg3NjE4fSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1dSSVRFTU9ERSIsCTB4NzYxOX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ0dQTEFZSU5GTyIsCTB4NzYxYX0sCisJeyJsaW51eC92aWRlb2Rldi5oIiwJIlZJRElPQ1NNSUNST0NPREUiLAkweDc2MWJ9LAorCXsibGludXgvdmlkZW9kZXYuaCIsCSJWSURJT0NHVkJJRk1UIiwJMHg3NjFjfSwKKwl7ImxpbnV4L3ZpZGVvZGV2LmgiLAkiVklESU9DU1ZCSUZNVCIsCTB4NzYxZH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19HX1BBUkFNUyIsCTB4NzZjMH0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TX1BBUkFNUyIsCTB4NzZjMX0sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19RQlVGX0NBUFQiLAkweDc2YzJ9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1lOQyIsCTB4NzZjM30sCisJeyJsaW51eC9tZXllLmgiLAkiTUVZRUlPQ19TVElMTENBUFQiLAkweDc2YzR9LAorCXsibGludXgvbWV5ZS5oIiwJIk1FWUVJT0NfU1RJTExKQ0FQVCIsCTB4NzZjNX0sCisJeyJsaW51eC9kbi5oIiwJIlNJT0NTTkVUQUREUiIsCTB4ODllMH0sCisJeyJsaW51eC9kbi5oIiwJIk9TSU9DU05FVEFERFIiLAkweDg5ZTB9LAorCXsibGludXgvZG4uaCIsCSJTSU9DR05FVEFERFIiLAkweDg5ZTF9LAorCXsibGludXgvZG4uaCIsCSJPU0lPQ0dORVRBRERSIiwJMHg4OWUxfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1JFQURZIiwJMHg5MzYwfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX0ZBSUwiLAkweDkzNjF9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfQ0FUQVRPTklDIiwJMHg5MzYyfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1BST1RPVkVSIiwJMHg5MzYzfSwKKwl7ImxpbnV4L2F1dG9fZnMuaCIsCSJBVVRPRlNfSU9DX1NFVFRJTUVPVVQiLAkweDkzNjR9LAorCXsibGludXgvYXV0b19mcy5oIiwJIkFVVE9GU19JT0NfRVhQSVJFIiwJMHg5MzY1fSwKKwl7ImxpbnV4L2F1dG9fZnM0LmgiLAkiQVVUT0ZTX0lPQ19FWFBJUkVfTVVMVEkiLAkweDkzNjZ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1NFVF9TT0NLIiwJMHhhYjAwfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfQkxLU0laRSIsCTB4YWIwMX0sCisJeyJsaW51eC9uYmQuaCIsCSJOQkRfU0VUX1NJWkUiLAkweGFiMDJ9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RPX0lUIiwJMHhhYjAzfSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9TT0NLIiwJMHhhYjA0fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9DTEVBUl9RVUUiLAkweGFiMDV9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX1BSSU5UX0RFQlVHIiwJMHhhYjA2fSwKKwl7ImxpbnV4L25iZC5oIiwJIk5CRF9TRVRfU0laRV9CTE9DS1MiLAkweGFiMDd9LAorCXsibGludXgvbmJkLmgiLAkiTkJEX0RJU0NPTk5FQ1QiLAkweGFiMDh9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX1NFVEJJTkQiLAkweGFjMDB9LAorCXsibGludXgvcmF3LmgiLAkiUkFXX0dFVEJJTkQiLAkweGFjMDF9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ1NGV0QiLAkweGIxMDB9LAorCXsibGludXgvaWZfcHBwb3guaCIsCSJQUFBPRUlPQ0RGV0QiLAkweGIxMDF9LAorCXsibGludXgvcmVpc2VyZnNfZnMuaCIsCSJSRUlTRVJGU19JT0NfVU5QQUNLIiwJMHhjZDAxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0NSRUFURV9PTEQiLAkweGZlMDB9LAorCXsibGludXgvbHZtLmgiLAkiVkdfUkVNT1ZFIiwJMHhmZTAxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX0VYVEVORCIsCTB4ZmUwM30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRURVQ0UiLAkweGZlMDR9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTIiwJMHhmZTA1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIlZHX1NUQVRVU19HRVRfQ09VTlQiLAkweGZlMDZ9LAorCXsibGludXgvbHZtLmgiLAkiVkdfU1RBVFVTX0dFVF9OQU1FTElTVCIsCTB4ZmUwN30sCisJeyJsaW51eC9sdm0uaCIsCSJWR19TRVRfRVhURU5EQUJMRSIsCTB4ZmUwOH0sCisJeyJsaW51eC9sdm0uaCIsCSJWR19SRU5BTUUiLAkweGZlMDl9LAorCXsibGludXgvbHZtLmgiLAkiVkdfQ1JFQVRFIiwJMHhmZTBhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX0NSRUFURSIsCTB4ZmUyMH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU1PVkUiLAkweGZlMjF9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQUNUSVZBVEUiLAkweGZlMjJ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfREVBQ1RJVkFURSIsCTB4ZmUyM30sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9FWFRFTkQiLAkweGZlMjR9LAorCXsibGludXgvbHZtLmgiLAkiTFZfUkVEVUNFIiwJMHhmZTI1fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWU5BTUUiLAkweGZlMjZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU1RBVFVTX0JZSU5ERVgiLAkweGZlMjd9LAorCXsibGludXgvbHZtLmgiLAkiTFZfU0VUX0FDQ0VTUyIsCTB4ZmUyOH0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfQUxMT0NBVElPTiIsCTB4ZmUyOX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9TRVRfU1RBVFVTIiwJMHhmZTJhfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxFX1JFTUFQIiwJMHhmZTJifSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NOQVBTSE9UX1VTRV9SQVRFIiwJMHhmZTJjfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWX1NUQVRVU19CWURFViIsCTB4ZmUyZX0sCisJeyJsaW51eC9sdm0uaCIsCSJMVl9SRU5BTUUiLAkweGZlMmZ9LAorCXsibGludXgvbHZtLmgiLAkiTFZfQk1BUCIsCTB4ZmUzMH0sCisJeyJsaW51eC9sdm0uaCIsCSJQVl9TVEFUVVMiLAkweGZlNDB9LAorCXsibGludXgvbHZtLmgiLAkiUFZfQ0hBTkdFIiwJMHhmZTQxfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBWX0ZMVVNIIiwJMHhmZTQyfSwKKwl7ImxpbnV4L2x2bS5oIiwJIlBFX0xPQ0tfVU5MT0NLIiwJMHhmZTUwfSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9HRVRfSU9QX1ZFUlNJT04iLAkweGZlOTh9LAorCXsibGludXgvbHZtLmgiLAkiTFZNX1JFU0VUIiwJMHhmZTk5fSwKKwl7ImxpbnV4L2x2bS5oIiwJIkxWTV9MT0NLX0xWTSIsCTB4ZmYwMH0sCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L3NpZ25hbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNTliNWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQuaApAQCAtMCwwICsxLDMyIEBACisJIlNJR18wIiwJLyogMCAqLworCSJTSUdIVVAiLAkvKiAxICovCisJIlNJR0lOVCIsCS8qIDIgKi8KKwkiU0lHUVVJVCIsCS8qIDMgKi8KKwkiU0lHSUxMIiwJLyogNCAqLworCSJTSUdUUkFQIiwJLyogNSAqLworCSJTSUdBQlJUIiwJLyogNiAqLworCSJTSUdFTVQiLAkvKiA3ICovCisJIlNJR0ZQRSIsCS8qIDggKi8KKwkiU0lHS0lMTCIsCS8qIDkgKi8KKwkiU0lHQlVTIiwJLyogMTAgKi8KKwkiU0lHU0VHViIsCS8qIDExICovCisJIlNJR1NZUyIsCS8qIDEyICovCisJIlNJR1BJUEUiLAkvKiAxMyAqLworCSJTSUdBTFJNIiwJLyogMTQgKi8KKwkiU0lHVEVSTSIsCS8qIDE1ICovCisJIlNJR1VSRyIsCS8qIDE2ICovCisJIlNJR1NUT1AiLAkvKiAxNyAqLworCSJTSUdUU1RQIiwJLyogMTggKi8KKwkiU0lHQ09OVCIsCS8qIDE5ICovCisJIlNJR0NITEQiLAkvKiAyMCAqLworCSJTSUdUVElOIiwJLyogMjEgKi8KKwkiU0lHVFRPVSIsCS8qIDIyICovCisJIlNJR0lPIiwJLyogMjMgKi8KKwkiU0lHWENQVSIsCS8qIDI0ICovCisJIlNJR1hGU1oiLAkvKiAyNSAqLworCSJTSUdWVEFMUk0iLAkvKiAyNiAqLworCSJTSUdQUk9GIiwJLyogMjcgKi8KKwkiU0lHV0lOQ0giLAkvKiAyOCAqLworCSJTSUdMT1NUIiwJLyogMjkgKi8KKwkiU0lHVVNSMSIsCS8qIDMwICovCisJIlNJR1VTUjIiLAkvKiAzMSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc2lnbmFsZW50MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZTdhMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQxLmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIi4uL3N2cjQvc2lnbmFsZW50LmgiCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQyLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zaWduYWxlbnQyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1OWI1ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYzY0L3NpZ25hbGVudDIuaApAQCAtMCwwICsxLDMyIEBACisJIlNJR18wIiwJLyogMCAqLworCSJTSUdIVVAiLAkvKiAxICovCisJIlNJR0lOVCIsCS8qIDIgKi8KKwkiU0lHUVVJVCIsCS8qIDMgKi8KKwkiU0lHSUxMIiwJLyogNCAqLworCSJTSUdUUkFQIiwJLyogNSAqLworCSJTSUdBQlJUIiwJLyogNiAqLworCSJTSUdFTVQiLAkvKiA3ICovCisJIlNJR0ZQRSIsCS8qIDggKi8KKwkiU0lHS0lMTCIsCS8qIDkgKi8KKwkiU0lHQlVTIiwJLyogMTAgKi8KKwkiU0lHU0VHViIsCS8qIDExICovCisJIlNJR1NZUyIsCS8qIDEyICovCisJIlNJR1BJUEUiLAkvKiAxMyAqLworCSJTSUdBTFJNIiwJLyogMTQgKi8KKwkiU0lHVEVSTSIsCS8qIDE1ICovCisJIlNJR1VSRyIsCS8qIDE2ICovCisJIlNJR1NUT1AiLAkvKiAxNyAqLworCSJTSUdUU1RQIiwJLyogMTggKi8KKwkiU0lHQ09OVCIsCS8qIDE5ICovCisJIlNJR0NITEQiLAkvKiAyMCAqLworCSJTSUdUVElOIiwJLyogMjEgKi8KKwkiU0lHVFRPVSIsCS8qIDIyICovCisJIlNJR0lPIiwJLyogMjMgKi8KKwkiU0lHWENQVSIsCS8qIDI0ICovCisJIlNJR1hGU1oiLAkvKiAyNSAqLworCSJTSUdWVEFMUk0iLAkvKiAyNiAqLworCSJTSUdQUk9GIiwJLyogMjcgKi8KKwkiU0lHV0lOQ0giLAkvKiAyOCAqLworCSJTSUdMT1NUIiwJLyogMjkgKi8KKwkiU0lHVVNSMSIsCS8qIDMwICovCisJIlNJR1VTUjIiLAkvKiAzMSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbC5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NmUwOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsLmgKQEAgLTAsMCArMSBAQAorI2luY2x1ZGUgIi4uL3NwYXJjL3N5c2NhbGwuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGwxLmggYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsMS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MWY4ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsMS5oCkBAIC0wLDAgKzEsNTAxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkzLCAxOTk0LCAxOTk1IFJpY2sgU2xhZGtleSA8anJzQHdvcmxkLnN0ZC5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsMS5oLHYgMS4xIDIwMDQvMDcvMTIgMDc6NDQ6MDggcm9sYW5kIEV4cCAkCisgKi8KKworI2RlZmluZQlTT0xBUklTX3N5c2NhbGwJMAorI2RlZmluZQlTT0xBUklTX2V4aXQJMQorI2RlZmluZQlTT0xBUklTX2ZvcmsJMgorI2RlZmluZQlTT0xBUklTX3JlYWQJMworI2RlZmluZQlTT0xBUklTX3dyaXRlCTQKKyNkZWZpbmUJU09MQVJJU19vcGVuCTUKKyNkZWZpbmUJU09MQVJJU19jbG9zZQk2CisjZGVmaW5lCVNPTEFSSVNfd2FpdAk3CisjZGVmaW5lCVNPTEFSSVNfY3JlYXQJOAorI2RlZmluZQlTT0xBUklTX2xpbmsJOQorI2RlZmluZQlTT0xBUklTX3VubGluawkxMAorI2RlZmluZQlTT0xBUklTX2V4ZWMJMTEKKyNkZWZpbmUJU09MQVJJU19jaGRpcgkxMgorI2RlZmluZQlTT0xBUklTX3RpbWUJMTMKKyNkZWZpbmUJU09MQVJJU19ta25vZAkxNAorI2RlZmluZQlTT0xBUklTX2NobW9kCTE1CisjZGVmaW5lCVNPTEFSSVNfY2hvd24JMTYKKyNkZWZpbmUJU09MQVJJU19icmsJCTE3CisjZGVmaW5lCVNPTEFSSVNfc3RhdAkxOAorI2RlZmluZQlTT0xBUklTX2xzZWVrCTE5CisjZGVmaW5lCVNPTEFSSVNfZ2V0cGlkCTIwCisjZGVmaW5lCVNPTEFSSVNfbW91bnQJMjEKKyNkZWZpbmUJU09MQVJJU191bW91bnQJMjIKKyNkZWZpbmUJU09MQVJJU19zZXR1aWQJMjMKKyNkZWZpbmUJU09MQVJJU19nZXR1aWQJMjQKKyNkZWZpbmUJU09MQVJJU19zdGltZQkyNQorI2RlZmluZQlTT0xBUklTX3B0cmFjZQkyNgorI2RlZmluZQlTT0xBUklTX2FsYXJtCTI3CisjZGVmaW5lCVNPTEFSSVNfZnN0YXQJMjgKKyNkZWZpbmUJU09MQVJJU19wYXVzZQkyOQorI2RlZmluZQlTT0xBUklTX3V0aW1lCTMwCisjZGVmaW5lCVNPTEFSSVNfc3R0eQkzMQorI2RlZmluZQlTT0xBUklTX2d0dHkJMzIKKyNkZWZpbmUJU09MQVJJU19hY2Nlc3MJMzMKKyNkZWZpbmUJU09MQVJJU19uaWNlCTM0CisjZGVmaW5lCVNPTEFSSVNfc3RhdGZzCTM1CisjZGVmaW5lCVNPTEFSSVNfc3luYwkzNgorI2RlZmluZQlTT0xBUklTX2tpbGwJMzcKKyNkZWZpbmUJU09MQVJJU19mc3RhdGZzCTM4CisjZGVmaW5lCVNPTEFSSVNfcGdycHN5cwkzOQorI2RlZmluZQlTT0xBUklTX3hlbml4CTQwCisjZGVmaW5lCVNPTEFSSVNfZHVwCQk0MQorI2RlZmluZQlTT0xBUklTX3BpcGUJNDIKKyNkZWZpbmUJU09MQVJJU190aW1lcwk0MworI2RlZmluZQlTT0xBUklTX3Byb2ZpbAk0NAorI2RlZmluZQlTT0xBUklTX3Bsb2NrCTQ1CisjZGVmaW5lCVNPTEFSSVNfc2V0Z2lkCTQ2CisjZGVmaW5lCVNPTEFSSVNfZ2V0Z2lkCTQ3CisjZGVmaW5lCVNPTEFSSVNfc2lnbmFsCTQ4CisjZGVmaW5lCVNPTEFSSVNfbXNnc3lzCTQ5CisjZGVmaW5lCVNPTEFSSVNfc3lzc3VuCTUwCisjZGVmaW5lCVNPTEFSSVNfYWNjdAk1MQorI2RlZmluZQlTT0xBUklTX3NobXN5cwk1MgorI2RlZmluZQlTT0xBUklTX3NlbXN5cwk1MworI2RlZmluZQlTT0xBUklTX2lvY3RsCTU0CisjZGVmaW5lCVNPTEFSSVNfdWFkbWluCTU1CisjZGVmaW5lCVNPTEFSSVNfdXRzc3lzCTU3CisjZGVmaW5lCVNPTEFSSVNfZmRzeW5jCTU4CisjZGVmaW5lCVNPTEFSSVNfZXhlY3ZlCTU5CisjZGVmaW5lCVNPTEFSSVNfdW1hc2sJNjAKKyNkZWZpbmUJU09MQVJJU19jaHJvb3QJNjEKKyNkZWZpbmUJU09MQVJJU19mY250bAk2MgorI2RlZmluZQlTT0xBUklTX3VsaW1pdAk2MworI2RlZmluZQlTT0xBUklTX3JtZGlyCTc5CisjZGVmaW5lCVNPTEFSSVNfbWtkaXIJODAKKyNkZWZpbmUJU09MQVJJU19nZXRkZW50cwk4MQorI2RlZmluZQlTT0xBUklTX3N5c2ZzCTg0CisjZGVmaW5lCVNPTEFSSVNfZ2V0bXNnCTg1CisjZGVmaW5lCVNPTEFSSVNfcHV0bXNnCTg2CisjZGVmaW5lCVNPTEFSSVNfcG9sbAk4NworI2RlZmluZQlTT0xBUklTX2xzdGF0CTg4CisjZGVmaW5lCVNPTEFSSVNfc3ltbGluawk4OQorI2RlZmluZQlTT0xBUklTX3JlYWRsaW5rCTkwCisjZGVmaW5lCVNPTEFSSVNfc2V0Z3JvdXBzCTkxCisjZGVmaW5lCVNPTEFSSVNfZ2V0Z3JvdXBzCTkyCisjZGVmaW5lCVNPTEFSSVNfZmNobW9kCTkzCisjZGVmaW5lCVNPTEFSSVNfZmNob3duCTk0CisjZGVmaW5lCVNPTEFSSVNfc2lncHJvY21hc2sJOTUKKyNkZWZpbmUJU09MQVJJU19zaWdzdXNwZW5kCTk2CisjZGVmaW5lCVNPTEFSSVNfc2lnYWx0c3RhY2sJOTcKKyNkZWZpbmUJU09MQVJJU19zaWdhY3Rpb24JOTgKKyNkZWZpbmUJU09MQVJJU19zaWdwZW5kaW5nCTk5CisjZGVmaW5lCVNPTEFSSVNfY29udGV4dAkxMDAKKyNkZWZpbmUJU09MQVJJU19ldnN5cwkxMDEKKyNkZWZpbmUJU09MQVJJU19ldnRyYXByZXQJMTAyCisjZGVmaW5lCVNPTEFSSVNfc3RhdHZmcwkxMDMKKyNkZWZpbmUJU09MQVJJU19mc3RhdHZmcwkxMDQKKyNkZWZpbmUJU09MQVJJU19uZnNzeXMJMTA2CisjZGVmaW5lCVNPTEFSSVNfd2FpdHN5cwkxMDcKKyNkZWZpbmUJU09MQVJJU19zaWdzZW5kc3lzCTEwOAorI2RlZmluZQlTT0xBUklTX2hydHN5cwkxMDkKKyNkZWZpbmUJU09MQVJJU19hY2FuY2VsCTExMAorI2RlZmluZQlTT0xBUklTX2FzeW5jCTExMQorI2RlZmluZQlTT0xBUklTX3ByaW9jbnRsc3lzCTExMgorI2RlZmluZQlTT0xBUklTX3BhdGhjb25mCTExMworI2RlZmluZQlTT0xBUklTX21pbmNvcmUJMTE0CisjZGVmaW5lCVNPTEFSSVNfbW1hcAkxMTUKKyNkZWZpbmUJU09MQVJJU19tcHJvdGVjdAkxMTYKKyNkZWZpbmUJU09MQVJJU19tdW5tYXAJMTE3CisjZGVmaW5lCVNPTEFSSVNfZnBhdGhjb25mCTExOAorI2RlZmluZQlTT0xBUklTX3Zmb3JrCTExOQorI2RlZmluZQlTT0xBUklTX2ZjaGRpcgkxMjAKKyNkZWZpbmUJU09MQVJJU19yZWFkdgkxMjEKKyNkZWZpbmUJU09MQVJJU193cml0ZXYJMTIyCisjZGVmaW5lCVNPTEFSSVNfeHN0YXQJMTIzCisjZGVmaW5lCVNPTEFSSVNfbHhzdGF0CTEyNAorI2RlZmluZQlTT0xBUklTX2Z4c3RhdAkxMjUKKyNkZWZpbmUJU09MQVJJU194bWtub2QJMTI2CisjZGVmaW5lCVNPTEFSSVNfY2xvY2FsCTEyNworI2RlZmluZQlTT0xBUklTX3NldHJsaW1pdAkxMjgKKyNkZWZpbmUJU09MQVJJU19nZXRybGltaXQJMTI5CisjZGVmaW5lCVNPTEFSSVNfbGNob3duCTEzMAorI2RlZmluZQlTT0xBUklTX21lbWNudGwJMTMxCisjZGVmaW5lCVNPTEFSSVNfZ2V0cG1zZwkxMzIKKyNkZWZpbmUJU09MQVJJU19wdXRwbXNnCTEzMworI2RlZmluZQlTT0xBUklTX3JlbmFtZQkxMzQKKyNkZWZpbmUJU09MQVJJU191bmFtZQkxMzUKKyNkZWZpbmUJU09MQVJJU19zZXRlZ2lkCTEzNgorI2RlZmluZQlTT0xBUklTX3N5c2NvbmZpZwkxMzcKKyNkZWZpbmUJU09MQVJJU19hZGp0aW1lCTEzOAorI2RlZmluZQlTT0xBUklTX3N5c3RlbWluZm8JMTM5CisjZGVmaW5lCVNPTEFSSVNfc2V0ZXVpZAkxNDEKKyNkZWZpbmUJU09MQVJJU192dHJhY2UJMTQyCisjZGVmaW5lCVNPTEFSSVNfZm9yazEJMTQzCisjZGVmaW5lCVNPTEFSSVNfc2lndGltZWR3YWl0CTE0NAorI2RlZmluZQlTT0xBUklTX2x3cF9pbmZvCTE0NQorI2RlZmluZQlTT0xBUklTX3lpZWxkCTE0NgorI2RlZmluZQlTT0xBUklTX2x3cF9zZW1hX3dhaXQJMTQ3CisjZGVmaW5lCVNPTEFSSVNfbHdwX3NlbWFfcG9zdAkxNDgKKyNkZWZpbmUJU09MQVJJU19tb2RjdGwJMTUyCisjZGVmaW5lCVNPTEFSSVNfZmNocm9vdAkxNTMKKyNkZWZpbmUJU09MQVJJU191dGltZXMJMTU0CisjZGVmaW5lCVNPTEFSSVNfdmhhbmd1cAkxNTUKKyNkZWZpbmUJU09MQVJJU19nZXR0aW1lb2ZkYXkJMTU2CisjZGVmaW5lCVNPTEFSSVNfZ2V0aXRpbWVyCQkxNTcKKyNkZWZpbmUJU09MQVJJU19zZXRpdGltZXIJCTE1OAorI2RlZmluZQlTT0xBUklTX2x3cF9jcmVhdGUJCTE1OQorI2RlZmluZQlTT0xBUklTX2x3cF9leGl0CQkxNjAKKyNkZWZpbmUJU09MQVJJU19sd3Bfc3VzcGVuZAkJMTYxCisjZGVmaW5lCVNPTEFSSVNfbHdwX2NvbnRpbnVlCTE2MgorI2RlZmluZQlTT0xBUklTX2x3cF9raWxsCQkxNjMKKyNkZWZpbmUJU09MQVJJU19sd3Bfc2VsZgkJMTY0CisjZGVmaW5lCVNPTEFSSVNfbHdwX3NldHByaXZhdGUJMTY1CisjZGVmaW5lCVNPTEFSSVNfbHdwX2dldHByaXZhdGUJMTY2CisjZGVmaW5lCVNPTEFSSVNfbHdwX3dhaXQJCTE2NworI2RlZmluZQlTT0xBUklTX2x3cF9tdXRleF91bmxvY2sJMTY4CisjZGVmaW5lCVNPTEFSSVNfbHdwX211dGV4X2xvY2sJMTY5CisjZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfd2FpdAkxNzAKKyNkZWZpbmUJU09MQVJJU19sd3BfY29uZF9zaWduYWwJMTcxCisjZGVmaW5lCVNPTEFSSVNfbHdwX2NvbmRfYnJvYWRjYXN0CTE3MgorI2RlZmluZQlTT0xBUklTX3ByZWFkCQkxNzMKKyNkZWZpbmUJU09MQVJJU19wd3JpdGUJCTE3NAorI2RlZmluZQlTT0xBUklTX2xsc2VlawkJMTc1CisjZGVmaW5lCVNPTEFSSVNfaW5zdF9zeW5jCQkxNzYKKyNkZWZpbmUJU09MQVJJU19rYWlvCQkxNzgKKyNkZWZpbmUJU09MQVJJU190c29sc3lzCQkxODQKKyNkZWZpbmUJU09MQVJJU19hY2wJCQkxODUKKyNkZWZpbmUJU09MQVJJU19hdWRpdHN5cwkJMTg2CisjZGVmaW5lCVNPTEFSSVNfcHJvY2Vzc29yX2JpbmQJMTg3CisjZGVmaW5lCVNPTEFSSVNfcHJvY2Vzc29yX2luZm8JMTg4CisjZGVmaW5lCVNPTEFSSVNfcF9vbmxpbmUJCTE4OQorI2RlZmluZQlTT0xBUklTX3NpZ3F1ZXVlCQkxOTAKKyNkZWZpbmUJU09MQVJJU19jbG9ja19nZXR0aW1lCTE5MQorI2RlZmluZQlTT0xBUklTX2Nsb2NrX3NldHRpbWUJMTkyCisjZGVmaW5lCVNPTEFSSVNfY2xvY2tfZ2V0cmVzCTE5MworI2RlZmluZQlTT0xBUklTX3RpbWVyX2NyZWF0ZQkxOTQKKyNkZWZpbmUJU09MQVJJU190aW1lcl9kZWxldGUJMTk1CisjZGVmaW5lCVNPTEFSSVNfdGltZXJfc2V0dGltZQkxOTYKKyNkZWZpbmUJU09MQVJJU190aW1lcl9nZXR0aW1lCTE5NworI2RlZmluZQlTT0xBUklTX3RpbWVyX2dldG92ZXJydW4JMTk4CisjZGVmaW5lCVNPTEFSSVNfbmFub3NsZWVwCQkxOTkKKyNkZWZpbmUJU09MQVJJU19mYWNsCQkyMDAKKyNkZWZpbmUJU09MQVJJU19kb29yCQkyMDEKKyNkZWZpbmUJU09MQVJJU19zZXRyZXVpZAkJMjAyCisjZGVmaW5lCVNPTEFSSVNfc2V0cmVnaWQJCTIwMworI2RlZmluZQlTT0xBUklTX3NpZ25vdGlmeXdhaXQJMjEwCisjZGVmaW5lCVNPTEFSSVNfbHdwX3NpZ3JlZGlyZWN0CTIxMQorI2RlZmluZQlTT0xBUklTX2x3cF9hbGFybQkJMjEyCisKKyNpbmNsdWRlICJkdW1teTIuaCIKKworZXh0ZXJuIGludCBzb2xhcmlzX3N5c2NhbGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19leGl0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfZm9yaygpOworZXh0ZXJuIGludCBzb2xhcmlzX3JlYWQoKTsKK2V4dGVybiBpbnQgc29sYXJpc193cml0ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX29wZW4oKTsKK2V4dGVybiBpbnQgc29sYXJpc19jbG9zZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3dhaXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19jcmVhdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2xpbmsoKTsKK2V4dGVybiBpbnQgc29sYXJpc191bmxpbmsoKTsKK2V4dGVybiBpbnQgc29sYXJpc19leGVjKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY2hkaXIoKTsKK2V4dGVybiBpbnQgc29sYXJpc190aW1lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbWtub2QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19jaG1vZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2Nob3duKCk7CitleHRlcm4gaW50IHNvbGFyaXNfYnJrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3RhdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2xzZWVrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0cGlkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbW91bnQoKTsKK2V4dGVybiBpbnQgc29sYXJpc191bW91bnQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zZXR1aWQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19nZXR1aWQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zdGltZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3B0cmFjZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2FsYXJtKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZnN0YXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wYXVzZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3V0aW1lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3R0eSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2d0dHkoKTsKK2V4dGVybiBpbnQgc29sYXJpc19hY2Nlc3MoKTsKK2V4dGVybiBpbnQgc29sYXJpc19uaWNlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3RhdGZzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3luYygpOworZXh0ZXJuIGludCBzb2xhcmlzX2tpbGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19mc3RhdGZzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcGdycHN5cygpOworZXh0ZXJuIGludCBzb2xhcmlzX3NldHBncnAoKTsKK2V4dGVybiBpbnQgc29sYXJpc194ZW5peCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5c3NnaSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2R1cCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3BpcGUoKTsKK2V4dGVybiBpbnQgc29sYXJpc190aW1lcygpOworZXh0ZXJuIGludCBzb2xhcmlzX3Byb2ZpbCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3Bsb2NrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2V0Z2lkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0Z2lkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lnY2FsbCgpOworZXh0ZXJuIGludCBzb2xhcmlzX21zZ3N5cygpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5c3N1bigpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5c2k4NigpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5c21pcHMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zeXNtYWNoaW5lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfYWNjdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3NobXN5cygpOworZXh0ZXJuIGludCBzb2xhcmlzX3NlbXN5cygpOworZXh0ZXJuIGludCBzb2xhcmlzX2lvY3RsKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdWFkbWluKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdXRzc3lzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZmRzeW5jKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZXhlY3ZlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdW1hc2soKTsKK2V4dGVybiBpbnQgc29sYXJpc19jaHJvb3QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19mY250bCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3VsaW1pdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3JtZGlyKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbWtkaXIoKTsKK2V4dGVybiBpbnQgc29sYXJpc19nZXRkZW50cygpOworZXh0ZXJuIGludCBzb2xhcmlzX3N5c2ZzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0bXNnKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcHV0bXNnKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcG9sbCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2xzdGF0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3ltbGluaygpOworZXh0ZXJuIGludCBzb2xhcmlzX3JlYWRsaW5rKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2V0Z3JvdXBzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0Z3JvdXBzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZmNobW9kKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZmNob3duKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lncHJvY21hc2soKTsKK2V4dGVybiBpbnQgc29sYXJpc19zaWdzdXNwZW5kKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lnYWx0c3RhY2soKTsKK2V4dGVybiBpbnQgc29sYXJpc19zaWdhY3Rpb24oKTsKK2V4dGVybiBpbnQgc29sYXJpc19zcGNhbGwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19jb250ZXh0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfZXZzeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19ldnRyYXByZXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zdGF0dmZzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZnN0YXR2ZnMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19uZnNzeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc193YWl0aWQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zaWdzZW5kc3lzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfaHJ0c3lzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfYWNhbmNlbCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2FzeW5jKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcHJpb2NudGxzeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wYXRoY29uZigpOworZXh0ZXJuIGludCBzb2xhcmlzX21pbmNvcmUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19tbWFwKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbXByb3RlY3QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19tdW5tYXAoKTsKK2V4dGVybiBpbnQgc29sYXJpc19mcGF0aGNvbmYoKTsKK2V4dGVybiBpbnQgc29sYXJpc192Zm9yaygpOworZXh0ZXJuIGludCBzb2xhcmlzX2ZjaGRpcigpOworZXh0ZXJuIGludCBzb2xhcmlzX3JlYWR2KCk7CitleHRlcm4gaW50IHNvbGFyaXNfd3JpdGV2KCk7CitleHRlcm4gaW50IHNvbGFyaXNfeHN0YXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19seHN0YXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19meHN0YXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc194bWtub2QoKTsKK2V4dGVybiBpbnQgc29sYXJpc19jbG9jYWwoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zZXRybGltaXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19nZXRybGltaXQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sY2hvd24oKTsKK2V4dGVybiBpbnQgc29sYXJpc19tZW1jbnRsKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0cG1zZygpOworZXh0ZXJuIGludCBzb2xhcmlzX3B1dHBtc2coKTsKK2V4dGVybiBpbnQgc29sYXJpc19yZW5hbWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc191bmFtZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3NldGVnaWQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zeXNjb25maWcoKTsKK2V4dGVybiBpbnQgc29sYXJpc19hZGp0aW1lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc3lzaW5mbygpOworZXh0ZXJuIGludCBzb2xhcmlzX3NldGV1aWQoKTsKK2V4dGVybiBpbnQgc29sYXJpc192dHJhY2UoKTsKK2V4dGVybiBpbnQgc29sYXJpc19mb3JrMSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3NpZ3RpbWVkd2FpdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9pbmZvKCk7CitleHRlcm4gaW50IHNvbGFyaXNfeWllbGQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3Bfc2VtYV93YWl0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX3NlbWFfcG9zdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX21vZGN0bCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2ZjaHJvb3QoKTsKK2V4dGVybiBpbnQgc29sYXJpc191dGltZXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc192aGFuZ3VwKCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0dGltZW9mZGF5KCk7CitleHRlcm4gaW50IHNvbGFyaXNfZ2V0aXRpbWVyKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2V0aXRpbWVyKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX2NyZWF0ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9leGl0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX3N1c3BlbmQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3BfY29udGludWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3Bfa2lsbCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9zZWxmKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX3NldHByaXZhdGUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19sd3BfZ2V0cHJpdmF0ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF93YWl0KCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX211dGV4X3VubG9jaygpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9tdXRleF9sb2NrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbHdwX2NvbmRfd2FpdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX3NpZ25hbCgpOworZXh0ZXJuIGludCBzb2xhcmlzX2x3cF9jb25kX2Jyb2FkY2FzdCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3ByZWFkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcHdyaXRlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbGxzZWVrKCk7CitleHRlcm4gaW50IHNvbGFyaXNfaW5zdF9zeW5jKCk7CitleHRlcm4gaW50IHNvbGFyaXNfYXVkaXRzeXMoKTsKK2V4dGVybiBpbnQgc29sYXJpc19wcm9jZXNzb3JfYmluZCgpOworZXh0ZXJuIGludCBzb2xhcmlzX3Byb2Nlc3Nvcl9pbmZvKCk7CitleHRlcm4gaW50IHNvbGFyaXNfcF9vbmxpbmUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zaWdxdWV1ZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX2Nsb2NrX2dldHRpbWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc19jbG9ja19zZXR0aW1lKCk7CitleHRlcm4gaW50IHNvbGFyaXNfY2xvY2tfZ2V0cmVzKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdGltZXJfY3JlYXRlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdGltZXJfZGVsZXRlKCk7CitleHRlcm4gaW50IHNvbGFyaXNfdGltZXJfc2V0dGltZSgpOworZXh0ZXJuIGludCBzb2xhcmlzX3RpbWVyX2dldHRpbWUoKTsKK2V4dGVybiBpbnQgc29sYXJpc190aW1lcl9nZXRvdmVycnVuKCk7CitleHRlcm4gaW50IHNvbGFyaXNfbmFub3NsZWVwKCk7CisKKy8qIHNvbGFyaXNfcGdycHN5cyBzdWJjYWxscyAqLworCitleHRlcm4gaW50IHNvbGFyaXNfZ2V0cGdycCgpLCBzb2xhcmlzX3NldHBncnAoKSwgc29sYXJpc19nZXRzaWQoKTsKK2V4dGVybiBpbnQgc29sYXJpc19zZXRzaWQoKSwgc29sYXJpc19nZXRwZ2lkKCksIHNvbGFyaXNfc2V0cGdpZCgpOworCisjZGVmaW5lIFNPTEFSSVNfcGdycHN5c19zdWJjYWxsCTMwMAorI2RlZmluZSBTT0xBUklTX2dldHBncnAJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDApCisjZGVmaW5lIFNPTEFSSVNfc2V0cGdycAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU09MQVJJU19nZXRzaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDIpCisjZGVmaW5lIFNPTEFSSVNfc2V0c2lkCQkoU09MQVJJU19wZ3Jwc3lzX3N1YmNhbGwgKyAzKQorI2RlZmluZSBTT0xBUklTX2dldHBnaWQJCShTT0xBUklTX3BncnBzeXNfc3ViY2FsbCArIDQpCisjZGVmaW5lIFNPTEFSSVNfc2V0cGdpZAkJKFNPTEFSSVNfcGdycHN5c19zdWJjYWxsICsgNSkKKworI2RlZmluZSBTT0xBUklTX3BncnBzeXNfbnN1YmNhbGxzCTYKKworLyogc29sYXJpc19zaWdjYWxsIHN1YmNhbGxzICovCisKKyN1bmRlZiBTT0xBUklTX3NpZ25hbAorI2RlZmluZSBTT0xBUklTX3NpZ2NhbGwJCTQ4CisKK2V4dGVybiBpbnQgc29sYXJpc19zaWduYWwoKSwgc29sYXJpc19zaWdzZXQoKSwgc29sYXJpc19zaWdob2xkKCk7CitleHRlcm4gaW50IHNvbGFyaXNfc2lncmVsc2UoKSwgc29sYXJpc19zaWdpZ25vcmUoKSwgc29sYXJpc19zaWdwYXVzZSgpOworCisjZGVmaW5lIFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsCTMxMAorI2RlZmluZSBTT0xBUklTX3NpZ25hbAkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMCkKKyNkZWZpbmUgU09MQVJJU19zaWdzZXQJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNPTEFSSVNfc2lnaG9sZAkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMikKKyNkZWZpbmUgU09MQVJJU19zaWdyZWxzZQkJKFNPTEFSSVNfc2lnY2FsbF9zdWJjYWxsICsgMykKKyNkZWZpbmUgU09MQVJJU19zaWdpZ25vcmUJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDQpCisjZGVmaW5lIFNPTEFSSVNfc2lncGF1c2UJCShTT0xBUklTX3NpZ2NhbGxfc3ViY2FsbCArIDUpCisKKyNkZWZpbmUgU09MQVJJU19zaWdjYWxsX25zdWJjYWxscwk2CisKKy8qIG1zZ3N5cyBzdWJjYWxscyAqLworCitleHRlcm4gaW50IHNvbGFyaXNfbXNnZ2V0KCksIHNvbGFyaXNfbXNnY3RsKCksIHNvbGFyaXNfbXNncmN2KCksIHNvbGFyaXNfbXNnc25kKCk7CisKKyNkZWZpbmUgU09MQVJJU19tc2dzeXNfc3ViY2FsbAkzMjAKKyNkZWZpbmUgU09MQVJJU19tc2dnZXQJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMCkKKyNkZWZpbmUgU09MQVJJU19tc2djdGwJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU09MQVJJU19tc2dyY3YJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMikKKyNkZWZpbmUgU09MQVJJU19tc2dzbmQJCShTT0xBUklTX21zZ3N5c19zdWJjYWxsICsgMykKKworI2RlZmluZSBTT0xBUklTX21zZ3N5c19uc3ViY2FsbHMJNAorCisvKiBzaG1zeXMgc3ViY2FsbHMgKi8KKworZXh0ZXJuIGludCBzb2xhcmlzX3NobWF0KCksIHNvbGFyaXNfc2htY3RsKCksIHNvbGFyaXNfc2htZHQoKSwgc29sYXJpc19zaG1nZXQoKTsKKworI2RlZmluZSBTT0xBUklTX3NobXN5c19zdWJjYWxsCTMzMAorI2RlZmluZSBTT0xBUklTX3NobWF0CQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDApCisjZGVmaW5lIFNPTEFSSVNfc2htY3RsCQkoU09MQVJJU19zaG1zeXNfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNPTEFSSVNfc2htZHQJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMikKKyNkZWZpbmUgU09MQVJJU19zaG1nZXQJCShTT0xBUklTX3NobXN5c19zdWJjYWxsICsgMykKKworI2RlZmluZSBTT0xBUklTX3NobXN5c19uc3ViY2FsbHMJNAorCisvKiBzZW1zeXMgc3ViY2FsbHMgKi8KKworZXh0ZXJuIGludCBzb2xhcmlzX3NlbWN0bCgpLCBzb2xhcmlzX3NlbWdldCgpLCBzb2xhcmlzX3NlbW9wKCk7CisKKyNkZWZpbmUgU09MQVJJU19zZW1zeXNfc3ViY2FsbAkzNDAKKyNkZWZpbmUgU09MQVJJU19zZW1jdGwJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMCkKKyNkZWZpbmUgU09MQVJJU19zZW1nZXQJCShTT0xBUklTX3NlbXN5c19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU09MQVJJU19zZW1vcAkJKFNPTEFSSVNfc2Vtc3lzX3N1YmNhbGwgKyAyKQorCisjZGVmaW5lIFNPTEFSSVNfc2Vtc3lzX25zdWJjYWxscwkzCisKKy8qIHV0c3N5cyBzdWJjYWxscyAqLworCitleHRlcm4gaW50IHNvbGFyaXNfb2xkdW5hbWUoKSwgc29sYXJpc191c3RhdCgpLCBzb2xhcmlzX2Z1c2VycygpOworCisjZGVmaW5lIFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwJMzUwCisKKyNkZWZpbmUgU09MQVJJU19vbGR1bmFtZQkJKFNPTEFSSVNfdXRzc3lzX3N1YmNhbGwgKyAwKQorCQkJCS8qIDEgaXMgdW51c2VkICovCisjZGVmaW5lIFNPTEFSSVNfdXN0YXQJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMikKKyNkZWZpbmUgU09MQVJJU19mdXNlcnMJCShTT0xBUklTX3V0c3N5c19zdWJjYWxsICsgMykKKworI2RlZmluZSBTT0xBUklTX3V0c3N5c19uc3ViY2FsbHMJNAorCisvKiBzeXNmcyBzdWJjYWxscyAqLworCitleHRlcm4gaW50IHNvbGFyaXNfc3lzZnMxKCksIHNvbGFyaXNfc3lzZnMyKCksIHNvbGFyaXNfc3lzZnMzKCk7CisKKyNkZWZpbmUgU09MQVJJU19zeXNmc19zdWJjYWxsCTM2MAorCQkJCS8qIDAgaXMgdW51c2VkICovCisjZGVmaW5lIFNPTEFSSVNfc3lzZnMxCQkoU09MQVJJU19zeXNmc19zdWJjYWxsICsgMSkKKyNkZWZpbmUgU09MQVJJU19zeXNmczIJCShTT0xBUklTX3N5c2ZzX3N1YmNhbGwgKyAyKQorI2RlZmluZSBTT0xBUklTX3N5c2ZzMwkJKFNPTEFSSVNfc3lzZnNfc3ViY2FsbCArIDMpCisKKyNkZWZpbmUgU09MQVJJU19zeXNmc19uc3ViY2FsbHMJNAorCisvKiBzb2xhcmlzX3NwY2FsbCBzdWJjYWxscyAqLworCisjdW5kZWYgU09MQVJJU19zaWdwZW5kaW5nCisjZGVmaW5lIFNPTEFSSVNfc3BjYWxsCQk5OQorCitleHRlcm4gaW50IHNvbGFyaXNfc2lncGVuZGluZygpLCBzb2xhcmlzX3NpZ2ZpbGxzZXQoKTsKKworI2RlZmluZSBTT0xBUklTX3NwY2FsbF9zdWJjYWxsCTM3MAorCQkJCS8qIDAgaXMgdW51c2VkICovCisjZGVmaW5lIFNPTEFSSVNfc2lncGVuZGluZwkJKFNPTEFSSVNfc3BjYWxsX3N1YmNhbGwgKyAxKQorI2RlZmluZSBTT0xBUklTX3NpZ2ZpbGxzZXQJCShTT0xBUklTX3NwY2FsbF9zdWJjYWxsICsgMikKKworI2RlZmluZSBTT0xBUklTX3NwY2FsbF9uc3ViY2FsbHMJMworCisvKiBzb2xhcmlzX2NvbnRleHQgc3ViY2FsbHMgKi8KKworZXh0ZXJuIGludCBzb2xhcmlzX2dldGNvbnRleHQoKSwgc29sYXJpc19zZXRjb250ZXh0KCk7CisKKyNkZWZpbmUgU09MQVJJU19jb250ZXh0X3N1YmNhbGwJMzgwCisjZGVmaW5lIFNPTEFSSVNfZ2V0Y29udGV4dAkJKFNPTEFSSVNfY29udGV4dF9zdWJjYWxsICsgMCkKKyNkZWZpbmUgU09MQVJJU19zZXRjb250ZXh0CQkoU09MQVJJU19jb250ZXh0X3N1YmNhbGwgKyAxKQorCisjZGVmaW5lIFNPTEFSSVNfY29udGV4dF9uc3ViY2FsbHMJMgorCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3BhcmM2NC9zeXNjYWxsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzRkODEzCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDEuaApAQCAtMCwwICsxLDQzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogc3lzY2FsbGVudDEuaCx2IDEuMSAyMDA0LzA3LzEyIDA3OjQ0OjA4IHJvbGFuZCBFeHAgJAorICovCisKKwl7IDYsCTAsCXNvbGFyaXNfc3lzY2FsbCwJInN5c2NhbGwiCX0sIC8qIDAgKi8KKwl7IDYsCVRQLAlzb2xhcmlzX2V4aXQsCQkiX2V4aXQiCQl9LCAvKiAxICovCisJeyA2LAlUUCwJc29sYXJpc19mb3JrLAkJImZvcmsiCQl9LCAvKiAyICovCisJeyA2LAkwLAlzb2xhcmlzX3JlYWQsCQkicmVhZCIJCX0sIC8qIDMgKi8KKwl7IDYsCTAsCXNvbGFyaXNfd3JpdGUsCQkid3JpdGUiCQl9LCAvKiA0ICovCisJeyA2LAlURiwJc29sYXJpc19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCisJeyA2LAkwLAlzb2xhcmlzX2Nsb3NlLAkJImNsb3NlIgkJfSwgLyogNiAqLworCXsgNiwJVFAsCXNvbGFyaXNfd2FpdCwJCSJ3YWl0IgkJfSwgLyogNyAqLworCXsgNiwJVEYsCXNvbGFyaXNfY3JlYXQsCQkiY3JlYXQiCQl9LCAvKiA4ICovCisJeyA2LAlURiwJc29sYXJpc19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCisJeyA2LAlURiwJc29sYXJpc191bmxpbmssCQkidW5saW5rIgl9LCAvKiAxMCAqLworCXsgNiwJVEZ8VFAsCXNvbGFyaXNfZXhlYywJCSJleGVjIgkJfSwgLyogMTEgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdGltZSwJCSJ0aW1lIgkJfSwgLyogMTMgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX21rbm9kLAkJIm1rbm9kIgkJfSwgLyogMTQgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfYnJrLAkJImJyayIJCX0sIC8qIDE3ICovCisJeyA2LAlURiwJc29sYXJpc19zdGF0LAkJInN0YXQiCQl9LCAvKiAxOCAqLworCXsgNiwJMCwJc29sYXJpc19sc2VlaywJCSJsc2VlayIJCX0sIC8qIDE5ICovCisJeyA2LAkwLAlzb2xhcmlzX2dldHBpZCwJCSJnZXRwaWQiCX0sIC8qIDIwICovCisJeyA2LAlURiwJc29sYXJpc19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCisJeyA2LAlURiwJc29sYXJpc191bW91bnQsCQkidW1vdW50Igl9LCAvKiAyMiAqLworCXsgNiwJMCwJc29sYXJpc19zZXR1aWQsCQkic2V0dWlkIgl9LCAvKiAyMyAqLworCXsgNiwJMCwJc29sYXJpc19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLworCXsgNiwJMCwJc29sYXJpc19zdGltZSwJCSJzdGltZSIJCX0sIC8qIDI1ICovCisJeyA2LAkwLAlzb2xhcmlzX3B0cmFjZSwJCSJwdHJhY2UiCX0sIC8qIDI2ICovCisJeyA2LAkwLAlzb2xhcmlzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZnN0YXQsCQkiZnN0YXQiCQl9LCAvKiAyOCAqLworCXsgNiwJVFMsCXNvbGFyaXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLworCXsgNiwJVEYsCXNvbGFyaXNfdXRpbWUsCQkidXRpbWUiCQl9LCAvKiAzMCAqLworCXsgNiwJMCwJc29sYXJpc19zdHR5LAkJInN0dHkiCQl9LCAvKiAzMSAqLworCXsgNiwJMCwJc29sYXJpc19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLworCXsgNiwJVEYsCXNvbGFyaXNfYWNjZXNzLAkJImFjY2VzcyIJfSwgLyogMzMgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbmljZSwJCSJuaWNlIgkJfSwgLyogMzQgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3N0YXRmcywJCSJzdGF0ZnMiCX0sIC8qIDM1ICovCisJeyA2LAkwLAlzb2xhcmlzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCisJeyA2LAlUUywJc29sYXJpc19raWxsLAkJImtpbGwiCQl9LCAvKiAzNyAqLworCXsgNiwJMCwJc29sYXJpc19mc3RhdGZzLAkiZnN0YXRmcyIJfSwgLyogMzggKi8KKwl7IDYsCTAsCXNvbGFyaXNfcGdycHN5cywJInBncnBzeXMiCX0sIC8qIDM5ICovCisJeyA2LAkwLAlzb2xhcmlzX3hlbml4LAkJInhlbml4IgkJfSwgLyogNDAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZHVwLAkJImR1cCIJCX0sIC8qIDQxICovCisJeyA2LAkwLAlzb2xhcmlzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCisJeyA2LAkwLAlzb2xhcmlzX3RpbWVzLAkJInRpbWVzIgkJfSwgLyogNDMgKi8KKwl7IDYsCTAsCXNvbGFyaXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogNDQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfcGxvY2ssCQkicGxvY2siCQl9LCAvKiA0NSAqLworCXsgNiwJMCwJc29sYXJpc19zZXRnaWQsCQkic2V0Z2lkIgl9LCAvKiA0NiAqLworCXsgNiwJMCwJc29sYXJpc19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0NyAqLworCXsgNiwJMCwJc29sYXJpc19zaWdjYWxsLAkic2lnY2FsbCIJfSwgLyogNDggKi8KKwl7IDYsCVRJLAlzb2xhcmlzX21zZ3N5cywJCSJtc2dzeXMiCX0sIC8qIDQ5ICovCisJeyA2LAkwLAlzb2xhcmlzX3N5c3N1biwJCSJzeXNzdW4iCX0sIC8qIDUwICovCisJeyA2LAlURiwJc29sYXJpc19hY2N0LAkJImFjY3QiCQl9LCAvKiA1MSAqLworCXsgNiwJVEksCXNvbGFyaXNfc2htc3lzLAkJInNobXN5cyIJfSwgLyogNTIgKi8KKwl7IDYsCVRJLAlzb2xhcmlzX3NlbXN5cywJCSJzZW1zeXMiCX0sIC8qIDUzICovCisJeyA2LAkwLAlzb2xhcmlzX2lvY3RsLAkJImlvY3RsIgkJfSwgLyogNTQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdWFkbWluLAkJInVhZG1pbiIJfSwgLyogNTUgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3lzbXAsCQkic3lzbXAiCQl9LCAvKiA1NiAqLworCXsgNiwJMCwJc29sYXJpc191dHNzeXMsCQkidXRzc3lzIgl9LCAvKiA1NyAqLworCXsgNiwJMCwJc29sYXJpc19mZHN5bmMsCQkiZmRzeW5jIgl9LCAvKiA1OCAqLworCXsgNiwJVEZ8VFAsCXNvbGFyaXNfZXhlY3ZlLAkJImV4ZWN2ZSIJfSwgLyogNTkgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdW1hc2ssCQkidW1hc2siCQl9LCAvKiA2MCAqLworCXsgNiwJVEYsCXNvbGFyaXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZmNudGwsCQkiZmNudGwiCQl9LCAvKiA2MiAqLworCXsgNiwJMCwJc29sYXJpc191bGltaXQsCQkidWxpbWl0Igl9LCAvKiA2MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NCIJfSwgLyogNjQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjUiCX0sIC8qIDY1ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY2Igl9LCAvKiA2NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU182NyIJfSwgLyogNjcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNjgiCX0sIC8qIDY4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzY5Igl9LCAvKiA2OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MCIJfSwgLyogNzAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzEiCX0sIC8qIDcxICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzcyIgl9LCAvKiA3MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183MyIJfSwgLyogNzMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzQiCX0sIC8qIDc0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc1Igl9LCAvKiA3NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU183NiIJfSwgLyogNzYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfNzciCX0sIC8qIDc3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzc4Igl9LCAvKiA3OCAqLworCXsgNiwJVEYsCXNvbGFyaXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA3OSAqLworCXsgNiwJVEYsCXNvbGFyaXNfbWtkaXIsCQkibWtkaXIiCQl9LCAvKiA4MCAqLworCXsgNiwJMCwJc29sYXJpc19nZXRkZW50cywJImdldGRlbnRzIgl9LCAvKiA4MSAqLworCXsgNiwJMCwJc29sYXJpc19zZ2luYXAsCQkic2dpbmFwIgl9LCAvKiA4MiAqLworCXsgNiwJMCwJc29sYXJpc19zZ2lrb3B0LAkic2dpa29wdCIJfSwgLyogODMgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3lzZnMsCQkic3lzZnMiCQl9LCAvKiA4NCAqLworCXsgNiwJVE4sCXN5c19nZXRtc2csCQkiZ2V0bXNnIgl9LCAvKiA4NSAqLworCXsgNiwJVE4sCXN5c19wdXRtc2csCQkicHV0bXNnIgl9LCAvKiA4NiAqLworCXsgNiwJVE4sCXNvbGFyaXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogODcgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX2xzdGF0LAkJImxzdGF0IgkJfSwgLyogODggKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3N5bWxpbmssCSJzeW1saW5rIgl9LCAvKiA4OSAqLworCXsgNiwJVEYsCXNvbGFyaXNfcmVhZGxpbmssCSJyZWFkbGluayIJfSwgLyogOTAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzIgl9LCAvKiA5MSAqLworCXsgNiwJMCwJc29sYXJpc19nZXRncm91cHMsCSJnZXRncm91cHMiCX0sIC8qIDkyICovCisJeyA2LAkwLAlzb2xhcmlzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDkzICovCisJeyA2LAkwLAlzb2xhcmlzX2ZjaG93biwJCSJmY2hvd24iCX0sIC8qIDk0ICovCisJeyA2LAlUUywJc29sYXJpc19zaWdwcm9jbWFzaywJInNpZ3Byb2NtYXNrIgl9LCAvKiA5NSAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lnc3VzcGVuZCwJInNpZ3N1c3BlbmQiCX0sIC8qIDk2ICovCisJeyA2LAlUUywJc29sYXJpc19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiA5NyAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lnYWN0aW9uLAkic2lnYWN0aW9uIgl9LCAvKiA5OCAqLworCXsgNiwJMCwJc29sYXJpc19zcGNhbGwsCQkic3BjYWxsIgl9LCAvKiA5OSAqLworCXsgNiwJMCwJc29sYXJpc19jb250ZXh0LAkiY29udGV4dCIJfSwgLyogMTAwICovCisJeyA2LAkwLAlzb2xhcmlzX2V2c3lzLAkJImV2c3lzIgkJfSwgLyogMTAxICovCisJeyA2LAkwLAlzb2xhcmlzX2V2dHJhcHJldCwJImV2dHJhcHJldCIJfSwgLyogMTAyICovCisJeyA2LAlURiwJc29sYXJpc19zdGF0dmZzLAkic3RhdHZmcyIJfSwgLyogMTAzICovCisJeyA2LAkwLAlzb2xhcmlzX2ZzdGF0dmZzLAkiZnN0YXR2ZnMiCX0sIC8qIDEwNCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xMDUiCX0sIC8qIDEwNSAqLworCXsgNiwJMCwJc29sYXJpc19uZnNzeXMsCQkibmZzc3lzIgl9LCAvKiAxMDYgKi8KKwl7IDYsCVRQLAlzb2xhcmlzX3dhaXRpZCwJCSJ3YWl0aWQiCX0sIC8qIDEwNyAqLworCXsgNiwJMCwJc29sYXJpc19zaWdzZW5kc3lzLAkic2lnc2VuZHN5cyIJfSwgLyogMTA4ICovCisJeyA2LAkwLAlzb2xhcmlzX2hydHN5cywJCSJocnRzeXMiCX0sIC8qIDEwOSAqLworCXsgNiwJMCwJc29sYXJpc19hY2FuY2VsLAkiYWNhbmNlbCIJfSwgLyogMTEwICovCisJeyA2LAkwLAlzb2xhcmlzX2FzeW5jLAkJImFzeW5jIgkJfSwgLyogMTExICovCisJeyA2LAkwLAlzb2xhcmlzX3ByaW9jbnRsc3lzLAkicHJpb2NudGxzeXMiCX0sIC8qIDExMiAqLworCXsgNiwJVEYsCXNvbGFyaXNfcGF0aGNvbmYsCSJwYXRoY29uZiIJfSwgLyogMTEzICovCisJeyA2LAkwLAlzb2xhcmlzX21pbmNvcmUsCSJtaW5jb3JlIgl9LCAvKiAxMTQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbW1hcCwJCSJtbWFwIgkJfSwgLyogMTE1ICovCisJeyA2LAkwLAlzb2xhcmlzX21wcm90ZWN0LAkibXByb3RlY3QiCX0sIC8qIDExNiAqLworCXsgNiwJMCwJc29sYXJpc19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiAxMTcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZnBhdGhjb25mLAkiZnBhdGhjb25mIgl9LCAvKiAxMTggKi8KKwl7IDYsCVRQLAlzb2xhcmlzX3Zmb3JrLAkJInZmb3JrIgkJfSwgLyogMTE5ICovCisJeyA2LAkwLAlzb2xhcmlzX2ZjaGRpciwJCSJmY2hkaXIiCX0sIC8qIDEyMCAqLworCXsgNiwJMCwJc29sYXJpc19yZWFkdiwJCSJyZWFkdiIJCX0sIC8qIDEyMSAqLworCXsgNiwJMCwJc29sYXJpc193cml0ZXYsCQkid3JpdGV2Igl9LCAvKiAxMjIgKi8KKwl7IDYsCVRGLAlzb2xhcmlzX3hzdGF0LAkJInhzdGF0IgkJfSwgLyogMTIzICovCisJeyA2LAlURiwJc29sYXJpc19seHN0YXQsCQkibHhzdGF0Igl9LCAvKiAxMjQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZnhzdGF0LAkJImZ4c3RhdCIJfSwgLyogMTI1ICovCisJeyA2LAlURiwJc29sYXJpc194bWtub2QsCQkieG1rbm9kIgl9LCAvKiAxMjYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfY2xvY2FsLAkJImNsb2NhbCIJfSwgLyogMTI3ICovCisJeyA2LAkwLAlzb2xhcmlzX3NldHJsaW1pdCwJInNldHJsaW1pdCIJfSwgLyogMTI4ICovCisJeyA2LAkwLAlzb2xhcmlzX2dldHJsaW1pdCwJImdldHJsaW1pdCIJfSwgLyogMTI5ICovCisJeyA2LAlURiwJc29sYXJpc19sY2hvd24sCQkibGNob3duIgl9LCAvKiAxMzAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbWVtY250bCwJIm1lbWNudGwiCX0sIC8qIDEzMSAqLworCXsgNiwJVE4sCXNvbGFyaXNfZ2V0cG1zZywJImdldHBtc2ciCX0sIC8qIDEzMiAqLworCXsgNiwJVE4sCXNvbGFyaXNfcHV0cG1zZywJInB1dHBtc2ciCX0sIC8qIDEzMyAqLworCXsgNiwJVEYsCXNvbGFyaXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgLyogMTM0ICovCisJeyA2LAkwLAlzb2xhcmlzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTM1ICovCisJeyA2LAkwLAlzb2xhcmlzX3NldGVnaWQsCSJzZXRlZ2lkIgl9LCAvKiAxMzYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3lzY29uZmlnLAkic3lzY29uZmlnIgl9LCAvKiAxMzcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfYWRqdGltZSwJImFkanRpbWUiCX0sIC8qIDEzOCAqLworCXsgNiwJMCwJc29sYXJpc19zeXNpbmZvLAkic3lzaW5mbyIJfSwgLyogMTM5ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE0MCIJfSwgLyogMTQwICovCisJeyA2LAkwLAlzb2xhcmlzX3NldGV1aWQsCSJzZXRldWlkIgl9LCAvKiAxNDEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdnRyYWNlLAkJInZ0cmFjZSIJfSwgLyogMTQyICovCisJeyA2LAlUUCwJc29sYXJpc19mb3JrMSwJCSJmb3JrMSIJCX0sIC8qIDE0MyAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lndGltZWR3YWl0LAkic2lndGltZWR3YWl0Igl9LCAvKiAxNDQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX2luZm8sCSJsd3BfaW5mbyIJfSwgLyogMTQ1ICovCisJeyA2LAkwLAlzb2xhcmlzX3lpZWxkLAkJInlpZWxkIgkJfSwgLyogMTQ2ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9zZW1hX3dhaXQsCSJsd3Bfc2VtYV93YWl0Igl9LCAvKiAxNDcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX3NlbWFfcG9zdCwJImx3cF9zZW1hX3Bvc3QiCX0sIC8qIDE0OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNDkiCX0sIC8qIDE0OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTAiCX0sIC8qIDE1MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18xNTEiCX0sIC8qIDE1MSAqLworCXsgNiwJMCwJc29sYXJpc19tb2RjdGwsCQkibW9kY3RsIgl9LCAvKiAxNTIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZmNocm9vdCwJImZjaHJvb3QiCX0sIC8qIDE1MyAqLworCXsgNiwJVEYsCXNvbGFyaXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMTU0ICovCisJeyA2LAkwLAlzb2xhcmlzX3ZoYW5ndXAsCSJ2aGFuZ3VwIgl9LCAvKiAxNTUgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAvKiAxNTYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfZ2V0aXRpbWVyLAkiZ2V0aXRpbWVyIgl9LCAvKiAxNTcgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2V0aXRpbWVyLAkic2V0aXRpbWVyIgl9LCAvKiAxNTggKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX2NyZWF0ZSwJImx3cF9jcmVhdGUiCX0sIC8qIDE1OSAqLworCXsgNiwJMCwJc29sYXJpc19sd3BfZXhpdCwJImx3cF9leGl0Igl9LCAvKiAxNjAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX3N1c3BlbmQsCSJsd3Bfc3VzcGVuZCIJfSwgLyogMTYxICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9jb250aW51ZSwJImx3cF9jb250aW51ZSIJfSwgLyogMTYyICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9raWxsLAkibHdwX2tpbGwiCX0sIC8qIDE2MyAqLworCXsgNiwJMCwJc29sYXJpc19sd3Bfc2VsZiwJImx3cF9zZWxmIgl9LCAvKiAxNjQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX3NldHByaXZhdGUsCSJsd3Bfc2V0cHJpdmF0ZSJ9LCAvKiAxNjUgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX2dldHByaXZhdGUsCSJsd3BfZ2V0cHJpdmF0ZSJ9LCAvKiAxNjYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX3dhaXQsCSJsd3Bfd2FpdCIJfSwgLyogMTY3ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9tdXRleF91bmxvY2ssImx3cF9tdXRleF91bmxvY2sifSwgLyogMTY4ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9tdXRleF9sb2NrLAkibHdwX211dGV4X2xvY2sifSwgLyogMTY5ICovCisJeyA2LAkwLAlzb2xhcmlzX2x3cF9jb25kX3dhaXQsCSJsd3BfY29uZF93YWl0In0sIC8qIDE3MCAqLworCXsgNiwJMCwJc29sYXJpc19sd3BfY29uZF9zaWduYWwsImx3cF9jb25kX3NpZ25hbCJ9LCAvKiAxNzEgKi8KKwl7IDYsCTAsCXNvbGFyaXNfbHdwX2NvbmRfYnJvYWRjYXN0LCJsd3BfY29uZF9icm9hZGNhc3QifSwgLyogMTcyICovCisJeyA2LAkwLAlzb2xhcmlzX3ByZWFkLAkJInByZWFkIgkJfSwgLyogMTczICovCisJeyA2LAkwLAlzb2xhcmlzX3B3cml0ZSwJCSJwd3JpdGUiCX0sIC8qIDE3NCAqLworCXsgNiwJMCwJc29sYXJpc19sbHNlZWssCQkibGxzZWVrIgl9LCAvKiAxNzUgKi8KKwl7IDYsCTAsCXNvbGFyaXNfaW5zdF9zeW5jLAkiaW5zdF9zeW5jIgl9LCAvKiAxNzYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTc3Igl9LCAvKiAxNzcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTc4Igl9LCAvKiAxNzggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTc5Igl9LCAvKiAxNzkgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgwIgl9LCAvKiAxODAgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgxIgl9LCAvKiAxODEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgyIgl9LCAvKiAxODIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTgzIgl9LCAvKiAxODMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTg0Igl9LCAvKiAxODQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMTg1Igl9LCAvKiAxODUgKi8KKwl7IDYsCTAsCXNvbGFyaXNfYXVkaXRzeXMsCSJhdWRpdHN5cyIJfSwgLyogMTg2ICovCisJeyA2LAkwLAlzb2xhcmlzX3Byb2Nlc3Nvcl9iaW5kLAkicHJvY2Vzc29yX2JpbmQifSwgLyogMTg3ICovCisJeyA2LAkwLAlzb2xhcmlzX3Byb2Nlc3Nvcl9pbmZvLAkicHJvY2Vzc29yX2luZm8ifSwgLyogMTg4ICovCisJeyA2LAkwLAlzb2xhcmlzX3Bfb25saW5lLAkicF9vbmxpbmUiCX0sIC8qIDE4OSAqLworCXsgNiwJMCwJc29sYXJpc19zaWdxdWV1ZSwJInNpZ3F1ZXVlIgl9LCAvKiAxOTAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfY2xvY2tfZ2V0dGltZSwJImNsb2NrX2dldHRpbWUiCX0sIC8qIDE5MSAqLworCXsgNiwJMCwJc29sYXJpc19jbG9ja19zZXR0aW1lLAkiY2xvY2tfc2V0dGltZSIJfSwgLyogMTkyICovCisJeyA2LAkwLAlzb2xhcmlzX2Nsb2NrX2dldHJlcywJImNsb2NrX2dldHJlcyIJfSwgLyogMTkzICovCisJeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMTk0ICovCisJeyA2LAkwLAlzb2xhcmlzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMTk1ICovCisJeyA2LAkwLAlzb2xhcmlzX3RpbWVyX3NldHRpbWUsCSJ0aW1lcl9zZXR0aW1lIgl9LCAvKiAxOTYgKi8KKwl7IDYsCTAsCXNvbGFyaXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDE5NyAqLworCXsgNiwJMCwJc29sYXJpc190aW1lcl9nZXRvdmVycnVuLCJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDE5OCAqLworCXsgNiwJMCwJc29sYXJpc19uYW5vc2xlZXAsCSJuYW5vc2xlZXAiCX0sIC8qIDE5OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDAiCX0sIC8qIDIwMCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDEiCX0sIC8qIDIwMSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDIiCX0sIC8qIDIwMiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDMiCX0sIC8qIDIwMyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDQiCX0sIC8qIDIwNCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDUiCX0sIC8qIDIwNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDYiCX0sIC8qIDIwNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDciCX0sIC8qIDIwNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDgiCX0sIC8qIDIwOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMDkiCX0sIC8qIDIwOSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTAiCX0sIC8qIDIxMCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTEiCX0sIC8qIDIxMSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTIiCX0sIC8qIDIxMiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTMiCX0sIC8qIDIxMyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTQiCX0sIC8qIDIxNCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTUiCX0sIC8qIDIxNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTYiCX0sIC8qIDIxNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTciCX0sIC8qIDIxNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTgiCX0sIC8qIDIxOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMTkiCX0sIC8qIDIxOSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjAiCX0sIC8qIDIyMCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjEiCX0sIC8qIDIyMSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjIiCX0sIC8qIDIyMiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjMiCX0sIC8qIDIyMyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjQiCX0sIC8qIDIyNCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjUiCX0sIC8qIDIyNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjYiCX0sIC8qIDIyNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjciCX0sIC8qIDIyNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjgiCX0sIC8qIDIyOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMjkiCX0sIC8qIDIyOSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzAiCX0sIC8qIDIzMCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzEiCX0sIC8qIDIzMSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzIiCX0sIC8qIDIzMiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzMiCX0sIC8qIDIzMyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzQiCX0sIC8qIDIzNCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzUiCX0sIC8qIDIzNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzYiCX0sIC8qIDIzNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzciCX0sIC8qIDIzNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzgiCX0sIC8qIDIzOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yMzkiCX0sIC8qIDIzOSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDAiCX0sIC8qIDI0MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDEiCX0sIC8qIDI0MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDIiCX0sIC8qIDI0MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDMiCX0sIC8qIDI0MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDQiCX0sIC8qIDI0NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDUiCX0sIC8qIDI0NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDYiCX0sIC8qIDI0NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDciCX0sIC8qIDI0NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDgiCX0sIC8qIDI0OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNDkiCX0sIC8qIDI0OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTAiCX0sIC8qIDI1MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTEiCX0sIC8qIDI1MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTIiCX0sIC8qIDI1MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTMiCX0sIC8qIDI1MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTQiCX0sIC8qIDI1NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTUiCX0sIC8qIDI1NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTYiCX0sIC8qIDI1NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTciCX0sIC8qIDI1NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTgiCX0sIC8qIDI1OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNTkiCX0sIC8qIDI1OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjAiCX0sIC8qIDI2MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjEiCX0sIC8qIDI2MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjIiCX0sIC8qIDI2MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjMiCX0sIC8qIDI2MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjQiCX0sIC8qIDI2NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjUiCX0sIC8qIDI2NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjYiCX0sIC8qIDI2NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjciCX0sIC8qIDI2NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjgiCX0sIC8qIDI2OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNjkiCX0sIC8qIDI2OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzAiCX0sIC8qIDI3MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzEiCX0sIC8qIDI3MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzIiCX0sIC8qIDI3MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzMiCX0sIC8qIDI3MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzQiCX0sIC8qIDI3NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzUiCX0sIC8qIDI3NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzYiCX0sIC8qIDI3NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzciCX0sIC8qIDI3NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzgiCX0sIC8qIDI3OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yNzkiCX0sIC8qIDI3OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODAiCX0sIC8qIDI4MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODEiCX0sIC8qIDI4MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODIiCX0sIC8qIDI4MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODMiCX0sIC8qIDI4MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODQiCX0sIC8qIDI4NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODUiCX0sIC8qIDI4NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODYiCX0sIC8qIDI4NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODciCX0sIC8qIDI4NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODgiCX0sIC8qIDI4OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yODkiCX0sIC8qIDI4OSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTAiCX0sIC8qIDI5MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTEiCX0sIC8qIDI5MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTIiCX0sIC8qIDI5MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTMiCX0sIC8qIDI5MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTQiCX0sIC8qIDI5NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTUiCX0sIC8qIDI5NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTYiCX0sIC8qIDI5NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTciCX0sIC8qIDI5NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTgiCX0sIC8qIDI5OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18yOTkiCX0sIC8qIDI5OSAqLworCisJeyA2LAkwLAlzb2xhcmlzX2dldHBncnAsCSJnZXRwZ3JwIgl9LCAvKiAzMDAgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2V0cGdycCwJInNldHBncnAiCX0sIC8qIDMwMSAqLworCXsgNiwJMCwJc29sYXJpc19nZXRzaWQsCQkiZ2V0c2lkIgl9LCAvKiAzMDIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2V0c2lkLAkJInNldHNpZCIJfSwgLyogMzAzICovCisJeyA2LAkwLAlzb2xhcmlzX2dldHBnaWQsCSJnZXRwZ2lkIgl9LCAvKiAzMDQgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc2V0cGdpZCwJInNldHBnaWQiCX0sIC8qIDMwNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDYiCX0sIC8qIDMwNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDciCX0sIC8qIDMwNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDgiCX0sIC8qIDMwOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMDkiCX0sIC8qIDMwOSAqLworCisJeyA2LAlUUywJc29sYXJpc19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiAzMTAgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ3NldCwJCSJzaWdzZXQiCX0sIC8qIDMxMSAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lnaG9sZCwJInNpZ2hvbGQiCX0sIC8qIDMxMiAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lncmVsc2UsCSJzaWdyZWxzZSIJfSwgLyogMzEzICovCisJeyA2LAlUUywJc29sYXJpc19zaWdpZ25vcmUsCSJzaWdpZ25vcmUiCX0sIC8qIDMxNCAqLworCXsgNiwJVFMsCXNvbGFyaXNfc2lncGF1c2UsCSJzaWdwYXVzZSIJfSwgLyogMzE1ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNiIJfSwgLyogMzE2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNyIJfSwgLyogMzE3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOCIJfSwgLyogMzE4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOSIJfSwgLyogMzE5ICovCisKKwl7IDYsCVRJLAlzb2xhcmlzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDMyMCAqLworCXsgNiwJVEksCXNvbGFyaXNfbXNnY3RsLAkJIm1zZ2N0bCIJfSwgLyogMzIxICovCisJeyA2LAlUSSwJc29sYXJpc19tc2dyY3YsCQkibXNncmN2Igl9LCAvKiAzMjIgKi8KKwl7IDYsCVRJLAlzb2xhcmlzX21zZ3NuZCwJCSJtc2dzbmQiCX0sIC8qIDMyMyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjQiCX0sIC8qIDMyNCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjUiCX0sIC8qIDMyNSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjYiCX0sIC8qIDMyNiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjciCX0sIC8qIDMyNyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjgiCX0sIC8qIDMyOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zMjkiCX0sIC8qIDMyOSAqLworCisJeyA2LAlUSSwJc29sYXJpc19zaG1hdCwJCSJzaG1hdCIJCX0sIC8qIDMzMCAqLworCXsgNiwJVEksCXNvbGFyaXNfc2htY3RsLAkJInNobWN0bCIJfSwgLyogMzMxICovCisJeyA2LAlUSSwJc29sYXJpc19zaG1kdCwJCSJzaG1kdCIJCX0sIC8qIDMzMiAqLworCXsgNiwJVEksCXNvbGFyaXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogMzMzICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNCIJfSwgLyogMzM0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNSIJfSwgLyogMzM1ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNiIJfSwgLyogMzM2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNyIJfSwgLyogMzM3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOCIJfSwgLyogMzM4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOSIJfSwgLyogMzM5ICovCisKKwl7IDYsCVRJLAlzb2xhcmlzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDM0MCAqLworCXsgNiwJVEksCXNvbGFyaXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogMzQxICovCisJeyA2LAlUSSwJc29sYXJpc19zZW1vcCwJCSJzZW1vcCIJCX0sIC8qIDM0MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDMiCX0sIC8qIDM0MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDQiCX0sIC8qIDM0NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDUiCX0sIC8qIDM0NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDYiCX0sIC8qIDM0NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDciCX0sIC8qIDM0NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDgiCX0sIC8qIDM0OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zNDkiCX0sIC8qIDM0OSAqLworCisJeyA2LAkwLAlzb2xhcmlzX29sZHVuYW1lLAkib2xkdW5hbWUiCX0sIC8qIDM1MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJInV0c3N5czEiCX0sIC8qIDM1MSAqLworCXsgNiwJMCwJc29sYXJpc191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDM1MiAqLworCXsgNiwJMCwJc29sYXJpc19mdXNlcnMsCQkiZnVzZXJzIgl9LCAvKiAzNTMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU0Igl9LCAvKiAzNTQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU1Igl9LCAvKiAzNTUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU2Igl9LCAvKiAzNTYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU3Igl9LCAvKiAzNTcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU4Igl9LCAvKiAzNTggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzU5Igl9LCAvKiAzNTkgKi8KKworCXsgNiwJMCwJcHJpbnRhcmdzLAkJInN5c2ZzMCIJfSwgLyogMzYwICovCisJeyA2LAkwLAlzb2xhcmlzX3N5c2ZzMSwJCSJzeXNmczEiCX0sIC8qIDM2MSAqLworCXsgNiwJMCwJc29sYXJpc19zeXNmczIsCQkic3lzZnMyIgl9LCAvKiAzNjIgKi8KKwl7IDYsCTAsCXNvbGFyaXNfc3lzZnMzLAkJInN5c2ZzMyIJfSwgLyogMzYzICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NCIJfSwgLyogMzY0ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NSIJfSwgLyogMzY1ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NiIJfSwgLyogMzY2ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NyIJfSwgLyogMzY3ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OCIJfSwgLyogMzY4ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OSIJfSwgLyogMzY5ICovCisKKwl7IDYsCTAsCXByaW50YXJncywJCSJzcGNhbGwwIgl9LCAvKiAzNzAgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ3BlbmRpbmcsCSJzaWdwZW5kaW5nIgl9LCAvKiAzNzEgKi8KKwl7IDYsCVRTLAlzb2xhcmlzX3NpZ2ZpbGxzZXQsCSJzaWdmaWxsc2V0Igl9LCAvKiAzNzIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzczIgl9LCAvKiAzNzMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc0Igl9LCAvKiAzNzQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc1Igl9LCAvKiAzNzUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc2Igl9LCAvKiAzNzYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc3Igl9LCAvKiAzNzcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc4Igl9LCAvKiAzNzggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzc5Igl9LCAvKiAzNzkgKi8KKworCXsgNiwJMCwJc29sYXJpc19nZXRjb250ZXh0LAkiZ2V0Y29udGV4dCIJfSwgLyogMzgwICovCisJeyA2LAkwLAlzb2xhcmlzX3NldGNvbnRleHQsCSJzZXRjb250ZXh0Igl9LCAvKiAzODEgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzgyIgl9LCAvKiAzODIgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzgzIgl9LCAvKiAzODMgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg0Igl9LCAvKiAzODQgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg1Igl9LCAvKiAzODUgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg2Igl9LCAvKiAzODYgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg3Igl9LCAvKiAzODcgKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg4Igl9LCAvKiAzODggKi8KKwl7IDYsCTAsCXByaW50YXJncywJCSJTWVNfMzg5Igl9LCAvKiAzODkgKi8KKworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTAiCX0sIC8qIDM5MCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTEiCX0sIC8qIDM5MSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTIiCX0sIC8qIDM5MiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTMiCX0sIC8qIDM5MyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTQiCX0sIC8qIDM5NCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTUiCX0sIC8qIDM5NSAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTYiCX0sIC8qIDM5NiAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTciCX0sIC8qIDM5NyAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTgiCX0sIC8qIDM5OCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkJIlNZU18zOTkiCX0sIC8qIDM5OSAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3NwYXJjNjQvc3lzY2FsbGVudDIuaCBiL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkyNTY0YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zcGFyYzY0L3N5c2NhbGxlbnQyLmgKQEAgLTAsMCArMSwzNTMgQEAKKwl7IDEsCTAsCXN5c19zZXR1cCwJInNldHVwIiB9LAkJLyogMCAqLworCXsgMSwJVFAsCXN5c19leGl0LAkiZXhpdCIgfSwJCS8qIDEgKi8KKwl7IDAsCVRQLAlzeXNfZm9yaywJImZvcmsiIH0sCQkvKiAyICovCisJeyAzLAkwLAlzeXNfcmVhZCwJInJlYWQiIH0sCQkvKiAzICovCisJeyAzLAkwLAlzeXNfd3JpdGUsCSJ3cml0ZSIgfSwJCS8qIDQgKi8KKwl7IDMsCVRGLAlzeXNfb3BlbiwJIm9wZW4iIH0sCQkvKiA1ICovCisJeyAxLAkwLAlzeXNfY2xvc2UsCSJjbG9zZSIgfSwJCS8qIDYgKi8KKwl7IDQsCVRQLAlzeXNfd2FpdDQsCSJ3YWl0NCIgfSwJCS8qIDcgKi8KKwl7IDIsCVRGLAlzeXNfY3JlYXQsCSJjcmVhdCIgfSwJCS8qIDggKi8KKwl7IDIsCVRGLAlzeXNfbGluaywJImxpbmsiIH0sCQkvKiA5ICovCisJeyAxLAlURiwJc3lzX3VubGluaywJInVubGluayIgfSwJCS8qIDEwICovCisJeyAyLCAgICBURnxUUCwJc3lzX2V4ZWN2LAkiZXhlY3YiIH0sCQkvKiAxMSAqLworCXsgMSwJVEYsCXN5c19jaGRpciwJImNoZGlyIiB9LAkJLyogMTIgKi8KKyAgICAgICAgeyAzLCAgICBURiwgICAgIHN5c19jaG93biwgICAgICAiY2hvd24ifSwJCS8qIDEzICovCisJeyAzLAlURiwJc3lzX21rbm9kLAkibWtub2QiIH0sCQkvKiAxNCAqLworCXsgMiwJVEYsCXN5c19jaG1vZCwJImNobW9kIiB9LAkJLyogMTUgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCSJsY2hvd24iIH0sCQkvKiAxNiAqLworCXsgMSwJMCwJc3lzX2JyaywJImJyayIgfSwJCS8qIDE3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCSJwZXJmY3RyIiB9LAkJLyogMTggKi8KKwl7IDMsCTAsCXN5c19sc2VlaywJImxzZWVrIiB9LAkJLyogMTkgKi8KKwl7IDAsCTAsCXN5c19nZXRwaWQsCSJnZXRwaWQiIH0sCQkvKiAyMCAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJImNhcGdldCIgfSwJCS8qIDIxICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkiY2Fwc2V0IiB9LAkJLyogMjIgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCSJzZXR1aWQiIH0sCQkvKiAyMyAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZCIgfSwJCS8qIDI0ICovCisJeyAxLAkwLAlzeXNfdGltZSwJInRpbWUiIH0sCQkvKiAyNSAqLworCXsgNSwJMCwJc3lzX3B0cmFjZSwJInB0cmFjZSIgfSwJCS8qIDI2ICovCisJeyAxLAkwLAlzeXNfYWxhcm0sCSJhbGFybSIgfSwJCS8qIDI3ICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLCJzaWdhbHRzdGFjayIgfSwJLyogMjggKi8KKwl7IDAsCVRTLAlzeXNfcGF1c2UsCSJwYXVzZSIgfSwJCS8qIDI5ICovCisJeyAyLAlURiwJc3lzX3V0aW1lLAkidXRpbWUiIH0sCQkvKiAzMCAqLworCXsgMywJVEYsCXN5c19jaG93biwJImxjaG93bjMyIiB9LAkJLyogMzEgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24zMiIgfSwJCS8qIDMyICovCisJeyAyLAlURiwJc3lzX2FjY2VzcywJImFjY2VzcyIgfSwJCS8qIDMzICovCisJeyAxLAkwLAlzeXNfbmljZSwJIm5pY2UiIH0sCQkvKiAzNCAqLworCXsgMywJVEYsCXN5c19jaG93biwJImNob3duMzIiIH0sCQkvKiAzNSAqLworCXsgMCwJMCwJc3lzX3N5bmMsCSJzeW5jIiB9LAkJLyogMzYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJImtpbGwiIH0sCQkvKiAzNyAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDM4ICovCisJeyA0LAkwLAlzeXNfc2VuZGZpbGUsCSJzZW5kZmlsZSIgfSwJCS8qIDM5ICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiA0MCAqLworCXsgMiwJMCwJc3lzX2R1cCwJImR1cCIgfSwJCS8qIDQxICovCisJeyAwLAkwLAlzeXNfcGlwZSwJInBpcGUiIH0sCQkvKiA0MiAqLworCXsgMSwJMCwJc3lzX3RpbWVzLAkidGltZXMiIH0sCQkvKiA0MyAqLworCXsgMCwJMCwJc3lzX2dldHVpZCwJImdldHVpZDMyIiB9LAkJLyogNDQgKi8KKwl7IDIsCVRGLAlzeXNfdW1vdW50MiwJInVtb3VudCIgfSwJCS8qIDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkIiB9LAkJLyogNDYgKi8KKwl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQiIH0sCQkvKiA0NyAqLworCXsgMywJVFMsCXN5c19zaWduYWwsCSJzaWduYWwiIH0sCQkvKiA0OCAqLworCXsgMCwJMCwJc3lzX2dldGV1aWQsCSJnZXRldWlkIiB9LAkJLyogNDkgKi8KKwl7IDAsCTAsCXN5c19nZXRlZ2lkLAkiZ2V0ZWdpZCIgfSwJCS8qIDUwICovCisJeyAxLAlURiwJc3lzX2FjY3QsCSJhY2N0IiB9LAkJLyogNTEgKi8KKwl7IDIsCTAsCXByaW50YXJncywJIm1lbW9yeV9vcmRlcmluZyIgfSwJLyogNTIgKi8KKwl7IDAsCTAsCXN5c19nZXRnaWQsCSJnZXRnaWQzMiIgfSwJCS8qIDUzICovCisJeyAzLAkwLAlzeXNfaW9jdGwsCSJpb2N0bCIgfSwJCS8qIDU0ICovCisJeyAzLAkwLAlzeXNfcmVib290LAkicmVib290IiB9LAkJLyogNTUgKi8KKwl7IDYsCTAsCXN5c19tbWFwLAkibW1hcDIiIH0sCQkvKiA1NiAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkic3ltbGluayIgfSwJCS8qIDU3ICovCisJeyAzLAlURiwJc3lzX3JlYWRsaW5rLAkicmVhZGxpbmsiIH0sCQkvKiA1OCAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCSJleGVjdmUiIH0sCQkvKiA1OSAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkidW1hc2siIH0sCQkvKiA2MCAqLworCXsgMSwJVEYsCXN5c19jaHJvb3QsCSJjaHJvb3QiIH0sCQkvKiA2MSAqLworCXsgMiwJMCwJc3lzX2ZzdGF0LAkiZnN0YXQiIH0sCQkvKiA2MiAqLworCXsgMiwJMCwJc3lzX2ZzdGF0NjQsCSJmc3RhdDY0IiB9LAkJLyogNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwYWdlc2l6ZSwiZ2V0cGFnZXNpemUiIH0sCS8qIDY0ICovCisJeyAzLAkwLAlzeXNfbXN5bmMsCSJtc3luYyIgfSwJCS8qIDY1ICovCisJeyAwLAlUUCwJc3lzX3Zmb3JrLAkidmZvcmsiIH0sCQkvKiA2NiAqLworCXsgNSwJMCwJc3lzX3ByZWFkLAkicHJlYWQiIH0sCQkvKiA2NyAqLworCXsgNSwJMCwJc3lzX3B3cml0ZSwJInB3cml0ZSIgfSwJCS8qIDY4ICovCisJeyAwLCAgICAwLAlzeXNfZ2V0ZXVpZCwJImdldGV1aWQzMiIgfSwJCS8qIDY5ICovCisJeyAwLAkwLAlzeXNfZ2V0ZWdpZCwJImdldGVnaWQzMiIgfSwJCS8qIDcwICovCisJeyA2LAkwLAlzeXNfbW1hcCwJIm1tYXAiIH0sCQkvKiA3MSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQzMiIgfSwJCS8qIDcyICovCisJeyAyLAkwLAlzeXNfbXVubWFwLAkibXVubWFwIiB9LAkJLyogNzMgKi8KKwl7IDMsCTAsCXN5c19tcHJvdGVjdCwJIm1wcm90ZWN0IiB9LAkJLyogNzQgKi8KKwl7IDMsCTAsCXN5c19tYWR2aXNlLAkibWFkdmlzZSIgfSwJCS8qIDc1ICovCisJeyAwLAkwLAlzeXNfdmhhbmd1cCwJInZoYW5ndXAiIH0sCQkvKiA3NiAqLworCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkidHJ1bmNhdGU2NCIgfSwJCS8qIDc3ICovCisJeyAzLAkwLAlzeXNfbWluY29yZSwJIm1pbmNvcmUiIH0sCQkvKiA3OCAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJImdldGdyb3VwcyIgfSwJCS8qIDc5ICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzIiB9LAkJLyogODAgKi8KKwl7IDAsCTAsCXN5c19nZXRwZ3JwLAkiZ2V0cGdycCIgfSwJCS8qIDgxICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkic2V0Z3JvdXBzMzIiIH0sCS8qIDgyICovCisJeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkic2V0aXRpbWVyIiB9LAkJLyogODMgKi8KKwl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCSJmdHJ1bmNhdGU2NCIgfSwJLyogODQgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkic3dhcG9uIiB9LAkJLyogODUgKi8KKwl7IDIsCTAsCXN5c19nZXRpdGltZXIsCSJnZXRpdGltZXIiIH0sCQkvKiA4NiAqLworCXsgMSwJMCwJc3lzX3NldHVpZCwJInNldHVpZDMyIiB9LAkJLyogODcgKi8KKwl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwic2V0aG9zdG5hbWUiIH0sCS8qIDg4ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkic2V0Z2lkMzIiIH0sCQkvKiA4OSAqLworCXsgMiwJMCwJc3lzX2R1cDIsCSJkdXAyIiB9LAkJLyogOTAgKi8KKwl7IDEsCTAsCXN5c19zZXRmc3VpZCwJInNldGZzdWlkMzIiIH0sCQkvKiA5MSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGwiIH0sCQkvKiA5MiAqLworCXsgNSwJMCwJc3lzX3NlbGVjdCwJInNlbGVjdCIgfSwJCS8qIDkzICovCisJeyAxLAkwLAlzeXNfc2V0ZnNnaWQsCSJzZXRmc2dpZDMyIiB9LAkJLyogOTQgKi8KKwl7IDEsCTAsCXN5c19mc3luYywJImZzeW5jIiB9LAkJLyogOTUgKi8KKwl7IDMsCTAsCXN5c19zZXRwcmlvcml0eSwic2V0cHJpb3JpdHkiIH0sCS8qIDk2ICovCisJeyAzLAlUTiwJc3lzX3NvY2tldCwJInNvY2tldCIgfSwJCS8qIDk3ICovCisJeyAzLAlUTiwJc3lzX2Nvbm5lY3QsCSJjb25uZWN0IiB9LAkJLyogOTggKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkiYWNjZXB0IiB9LAkJLyogOTkgKi8KKwl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwiZ2V0cHJpb3JpdHkiIH0sCS8qIDEwMCAqLworCXsgMSwJVFMsCXByaW50YXJncywJInJ0X3NpZ3JldHVybiIgfSwJLyogMTAxICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwicnRfc2lnYWN0aW9uIiB9LAkvKiAxMDIgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lncHJvY21hc2ssInJ0X3NpZ3Byb2NtYXNrIiB9LAkvKiAxMDMgKi8KKwl7IDIsCVRTLAlzeXNfcnRfc2lncGVuZGluZywicnRfc2lncGVuZGluZyIgfSwJLyogMTA0ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3RpbWVkd2FpdCwicnRfc2lndGltZWR3YWl0IiB9LC8qIDEwNSAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sInJ0X3NpZ3F1ZXVlaW5mbyIgfSwvKiAxMDYgKi8KKwl7IDIsCVRTLAlzeXNfcnRfc2lnc3VzcGVuZCwicnRfc2lnc3VzcGVuZCIgfSwJLyogMTA3ICovCisJeyAzLAlUUywJc3lzX3NldHJlc3VpZCwJInNldHJlc3VpZCIgfSwJCS8qIDEwOCAqLworCXsgMywgICAgVFMsCXN5c19nZXRyZXN1aWQsCSJnZXRyZXN1aWQiIH0sCQkvKiAxMDkgKi8KKwl7IDMsCVRTLAlzeXNfc2V0cmVzZ2lkLAkic2V0cmVzZ2lkIiB9LAkJLyogMTEwICovCisJeyAzLAlUUywJc3lzX2dldHJlc2dpZCwJImdldHJlc2dpZCIgfSwJCS8qIDExMSAqLworCXsgMiwJVFMsCXN5c19zZXRyZXNnaWQsCSJzZXRyZXNnaWQzMiIgfSwJLyogMTEyICovCisJeyA1LAlUTiwJc3lzX3JlY3Ztc2csCSJyZWN2bXNnIiB9LAkJLyogMTEzICovCisJeyA1LAlUTiwJc3lzX3NlbmRtc2csCSJzZW5kbXNnIiB9LAkJLyogMTE0ICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkiZ2V0Z3JvdXBzMzIiIH0sCS8qIDExNSAqLworCXsgMiwJMCwJc3lzX2dldHRpbWVvZmRheSwiZ2V0dGltZW9mZGF5IiB9LAkvKiAxMTYgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCSJnZXRydXNhZ2UiIH0sCQkvKiAxMTcgKi8KKwl7IDUsCVROLAlzeXNfZ2V0c29ja29wdCwJImdldHNvY2tvcHQiIH0sCQkvKiAxMTggKi8KKwl7IDIsCVRGLAlzeXNfZ2V0Y3dkLAkiZ2V0Y3dkIiB9LAkJLyogMTE5ICovCisJeyAzLAkwLAlzeXNfcmVhZHYsCSJyZWFkdiIgfSwJCS8qIDEyMCAqLworCXsgMywJMCwJc3lzX3dyaXRldiwJIndyaXRldiIgfSwJCS8qIDEyMSAqLworCXsgMiwJMCwJc3lzX3NldHRpbWVvZmRheSwic2V0dGltZW9mZGF5IiB9LAkvKiAxMjIgKi8KKwl7IDMsCTAsCXN5c19mY2hvd24sCSJmY2hvd24iIH0sCQkvKiAxMjMgKi8KKwl7IDIsCTAsCXN5c19mY2htb2QsCSJmY2htb2QiIH0sCQkvKiAxMjQgKi8KKwl7IDYsCVROLAlzeXNfcmVjdmZyb20sCSJyZWN2ZnJvbSIgfSwJCS8qIDEyNSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkic2V0cmV1aWQiIH0sCQkvKiAxMjYgKi8KKwl7IDIsCTAsCXN5c19zZXRyZWdpZCwJInNldHJlZ2lkIiB9LAkJLyogMTI3ICovCisJeyAyLAlURiwJc3lzX3JlbmFtZSwJInJlbmFtZSIgfSwJCS8qIDEyOCAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJInRydW5jYXRlIiB9LAkJLyogMTI5ICovCisJeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkiZnRydW5jYXRlIiB9LAkJLyogMTMwICovCisJeyAyLAkwLAlzeXNfZmxvY2ssCSJmbG9jayIgfSwJCS8qIDEzMSAqLworCXsgMiwJVEYsCXN5c19sc3RhdDY0LAkibHN0YXQ2NCIgfSwJCS8qIDEzMiAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCSJzZW5kdG8iIH0sCQkvKiAxMzMgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCSJzaHV0ZG93biIgfSwJCS8qIDEzNCAqLworCXsgNCwJVE4sCXN5c19zb2NrZXRwYWlyLAkic29ja2V0cGFpciIgfSwJCS8qIDEzNSAqLworCXsgMiwJVEYsCXN5c19ta2RpciwJIm1rZGlyIiB9LAkJLyogMTM2ICovCisJeyAxLAlURiwJc3lzX3JtZGlyLAkicm1kaXIiIH0sCQkvKiAxMzcgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkidXRpbWVzIiB9LAkJLyogMTM4ICovCisJeyAyLAlURiwJc3lzX3N0YXQ2NCwJInN0YXQ2NCIgfSwJCS8qIDEzOSAqLworCXsgNCwgICAgMCwJc3lzX3NlbmRmaWxlNjQsCSJzZW5kZmlsZTY0IiB9LAkJLyogMTQwICovCisJeyAzLAlUTiwJc3lzX2dldHBlZXJuYW1lLCJnZXRwZWVybmFtZSIgfSwJLyogMTQxICovCisJeyA1LCAgICAwLAlzeXNfZnV0ZXgsCSJmdXRleCIgfSwJCS8qIDE0MiAqLworCXsgMCwJMCwJcHJpbnRhcmdzLAkiZ2V0dGlkIiB9LAkJLyogMTQzICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkiZ2V0cmxpbWl0IiB9LAkJLyogMTQ0ICovCisJeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkic2V0cmxpbWl0IiB9LAkJLyogMTQ1ICovCisJeyAyLAlURiwJc3lzX3Bpdm90cm9vdCwJInBpdm90X3Jvb3QiIH0sCQkvKiAxNDYgKi8KKwl7IDUsCTAsCXN5c19wcmN0bCwJInByY3RsIiB9LAkJLyogMTQ3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfcmVhZCIgfSwJLyogMTQ4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJwY2ljb25maWdfd3JpdGUiIH0sCS8qIDE0OSAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwiZ2V0c29ja25hbWUiIH0sCS8qIDE1MCAqLworCXsgNCwJVE4sCXN5c19nZXRtc2csCSJnZXRtc2ciIH0sCQkvKiAxNTEgKi8KKwl7IDQsCVROLAlzeXNfcHV0bXNnLAkicHV0bXNnIiB9LAkJLyogMTUyICovCisJeyAzLAkwLAlzeXNfcG9sbCwJInBvbGwiIH0sCQkvKiAxNTMgKi8KKwl7IDQsCTAsCXN5c19nZXRkZW50czY0LAkiZ2V0ZGVudHM2NCIgfSwJCS8qIDE1NCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkiZmNudGw2NCIgfSwJCS8qIDE1NSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkiZ2V0ZGlyZW50cmllcyIgfSwJLyogMTU2ICovCisJeyAyLAlURiwJc3lzX3N0YXRmcywJInN0YXRmcyIgfSwJCS8qIDE1NyAqLworCXsgMiwJMCwJc3lzX2ZzdGF0ZnMsCSJmc3RhdGZzIiB9LAkJLyogMTU4ICovCisJeyAxLAlURiwJc3lzX3Vtb3VudCwJIm9sZHVtb3VudCIgfSwJCS8qIDE1OSAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMTYwICovCisJeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAxNjEgKi8KKwl7IDIsCTAsCXByaW50YXJncywJImdldGRvbWFpbm5hbWUiIH0sCS8qIDE2MiAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsInNldGRvbWFpbm5hbWUiIH0sCS8qIDE2MyAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkidXRyYXBfaW5zdGFsbCIgfSwJLyogMTY0ICovCisJeyA0LAkwLAlzeXNfcXVvdGFjdGwsCSJxdW90YWN0bCIgfSwJCS8qIDE2NSAqLworCXsgMSwJMCwJcHJpbnRhcmdzLAkic2V0X3RpZF9hZGRyZXNzIiB9LAkvKiAxNjYgKi8KKwl7IDUsCVRGLAlzeXNfbW91bnQsCSJtb3VudCIgfSwJCS8qIDE2NyAqLworCXsgMiwJMCwJc3lzX3VzdGF0LAkidXN0YXQiIH0sCQkvKiAxNjggKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCSJzZXR4YXR0ciIgfSwJCS8qIDE2OSAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJImxzZXR4YXR0ciIgfSwJCS8qIDE3MCAqLworCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJImZzZXR4YXR0ciIgfSwJCS8qIDE3MSAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJImdldHhhdHRyIiB9LAkJLyogMTcyICovCisJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkibGdldHhhdHRyIiB9LAkJLyogMTczICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCSJnZXRkZW50cyIgfSwJCS8qIDE3NCAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJInNldHNpZCIgfSwJCS8qIDE3NSAqLworCXsgMSwJMCwJc3lzX2ZjaGRpciwJImZjaGRpciIgfSwJCS8qIDE3NiAqLworCXsgNCwgICAgMCwJc3lzX2ZnZXR4YXR0ciwJImZnZXR4YXR0ciIgfSwJCS8qIDE3NyAqLworCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCSJsaXN0eGF0dHIiIH0sCQkvKiAxNzggKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkibGxpc3R4YXR0ciIgfSwJCS8qIDE3OSAqLworCXsgMywJMCwJc3lzX2ZsaXN0eGF0dHIsCSJmbGlzdHhhdHRyIiB9LAkJLyogMTgwICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJyZW1vdmV4YXR0ciIgfSwJLyogMTgxICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLCJscmVtb3ZleGF0dHIiIH0sCS8qIDE4MiAqLworCXsgMSwJVFMsCXN5c19zaWdwZW5kaW5nLAkic2lncGVuZGluZyIgfSwJCS8qIDE4MyAqLworCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwicXVlcnlfbW9kdWxlIiB9LAkvKiAxODQgKi8KKwl7IDIsCTAsCXN5c19zZXRwZ2lkLAkic2V0cGdpZCIgfSwJCS8qIDE4NSAqLworCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwiZnJlbW92ZXhhdHRyIiB9LAkvKiAxODYgKi8KKwl7IDIsCVRTLAlzeXNfa2lsbCwJInRraWxsIiB9LAkJLyogMTg3ICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCSJleGl0X2dyb3VwIiB9LAkJLyogMTg4ICovCisJeyAxLAkwLAlzeXNfdW5hbWUsCSJ1bmFtZSIgfSwJCS8qIDE4OSAqLworCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLCJpbml0X21vZHVsZSIgfSwJLyogMTkwICovCisJeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksInBlcnNvbmFsaXR5IiB9LAkvKiAxOTEgKi8KKwl7IDUsCTAsCXN5c19yZW1hcF9maWxlX3BhZ2VzLCJyZW1hcF9maWxlX3BhZ2VzIiB9LC8qIDE5MiAqLworCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwiZXBvbGxfY3JlYXRlIiB9LAkvKiAxOTMgKi8KKwl7IDQsCTAsCXN5c19lcG9sbF9jdGwsCSJlcG9sbF9jdGwiIH0sCQkvKiAxOTQgKi8KKwl7IDQsCTAsCXN5c19lcG9sbF93YWl0LAkiZXBvbGxfd2FpdCIgfSwJCS8qIDE5NSAqLworCXsgMiwJMCwJc3lzX3VsaW1pdCwJInVsaW1pdCIgfSwJCS8qIDE5NiAqLworCXsgMCwJMCwJc3lzX2dldHBwaWQsCSJnZXRwcGlkIiB9LAkJLyogMTk3ICovCisJeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJInNpZ2FjdGlvbiIgfSwJCS8qIDE5OCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkic2dldG1hc2siIH0sCQkvKiAxOTkgKi8KKwl7IDUsCTAsCXByaW50YXJncywJInNzZXRtYXNrIiB9LAkJLyogMjAwICovCisJeyAzLAlUUywJc3lzX3NpZ3N1c3BlbmQsCSJzaWdzdXNwZW5kIiB9LAkJLyogMjAxICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkibHN0YXQiIH0sCQkvKiAyMDIgKi8KKwl7IDEsCVRGLAlzeXNfdXNlbGliLAkidXNlbGliIiB9LAkJLyogMjAzICovCisJeyAzLAkwLAlzeXNfcmVhZGRpciwJInJlYWRkaXIiIH0sCQkvKiAyMDQgKi8KKwl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCSJyZWFkYWhlYWQiIH0sCQkvKiAyMDUgKi8KKwl7IDIsCTAsCXN5c19zb2NrZXRjYWxsLAkic29ja2V0Y2FsbCIgfSwJCS8qIDIwNiAqLworCXsgMywJMCwJc3lzX3N5c2xvZywJInN5c2xvZyIgfSwJCS8qIDIwNyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkibG9va3VwX2Rjb29raWUiIH0sCS8qIDIwOCAqLworCXsgNiwJMCwJcHJpbnRhcmdzLAkiZmFkdmlzZTY0IiB9LAkJLyogMjA5ICovCisJeyA2LAkwLAlwcmludGFyZ3MsCSJmYWR2aXNlNjRfNjQiIH0sCS8qIDIxMCAqLworCXsgMywJVFMsCXN5c190Z2tpbGwsCSJ0Z2tpbGwiIH0sCQkvKiAyMTEgKi8KKwl7IDMsCVRQLAlzeXNfd2FpdHBpZCwJIndhaXRwaWQiIH0sCQkvKiAyMTIgKi8KKwl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkic3dhcG9mZiIgfSwJCS8qIDIxMyAqLworCXsgMSwJMCwJc3lzX3N5c2luZm8sCSJzeXNpbmZvIiB9LAkJLyogMjE0ICovCisJeyA1LAkwLAlzeXNfaXBjLAkiaXBjIiB9LAkJLyogMjE1ICovCisJeyAxLAlUUywJc3lzX3NpZ3JldHVybiwJInNpZ3JldHVybiIgfSwJCS8qIDIxNiAqLworCXsgNSwJVFAsCXN5c19jbG9uZSwJImNsb25lIiB9LAkJLyogMjE3ICovCisJeyAzLAkwLAlzeXNfbW9kaWZ5X2xkdCwJIm1vZGlmeV9sZHQiIH0sCQkvKiAyMTggKi8KKwl7IDEsCTAsCXN5c19hZGp0aW1leCwJImFkanRpbWV4IiB9LAkJLyogMjE5ICovCisJeyAzLAlUUywJc3lzX3NpZ3Byb2NtYXNrLCJzaWdwcm9jbWFzayIgfSwJLyogMjIwICovCisJeyAyLAkwLAlzeXNfY3JlYXRlX21vZHVsZSwiY3JlYXRlX21vZHVsZSIgfSwJLyogMjIxICovCisJeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwiZGVsZXRlX21vZHVsZSIgfSwKKwl7IDEsCTAsCXN5c19nZXRfa2VybmVsX3N5bXMsImdldF9rZXJuZWxfc3ltcyJ9LAkvKiAyMjMgKi8KKwl7IDEsCTAsCXN5c19nZXRwZ2lkLAkiZ2V0cGdpZCIgfSwJCS8qIDIyNCAqLworCXsgMCwJMCwJc3lzX2JkZmx1c2gsCSJiZGZsdXNoIiB9LAkJLyogMjI1ICovCisJeyAzLAkwLAlzeXNfc3lzZnMsCSJzeXNmcyIgfSwJCS8qIDIyNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLCJhZnNfc3lzY2FsbCIgfSwJLyogMjI3ICovCisJeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCSJzZXRmc3VpZCIgfSwJCS8qIDIyOCAqLworCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkic2V0ZnNnaWQiIH0sCQkvKiAyMjkgKi8KKwl7IDUsCTAsCXN5c19zZWxlY3QsCSJzZWxlY3QiIH0sCQkvKiAyMzAgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkidGltZSIgfSwJCS8qIDIzMSAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkic3RhdCIgfSwJCS8qIDIzMiAqLworCXsgMSwJMCwJc3lzX3N0aW1lLAkic3RpbWUiIH0sCQkvKiAyMzMgKi8KKwl7IDMsCVRGLAlzeXNfc3RhdGZzNjQsCSJzdGF0ZnM2NCIgfSwJCS8qIDIzNCAqLworCXsgMywJMCwJc3lzX2ZzdGF0ZnM2NCwJImZzdGF0ZnM2NCIgfSwJCS8qIDIzNSAqLworCXsgNSwJMCwJc3lzX2xsc2VlaywJIl9sbHNlZWsiIH0sCQkvKiAyMzYgKi8KKwl7IDIsCTAsCXN5c19tbG9jaywJIm1sb2NrIiB9LAkJLyogMjM3ICovCisJeyAyLAkwLAlzeXNfbXVubG9jaywJIm11bmxvY2siIH0sCQkvKiAyMzggKi8KKwl7IDIsCTAsCXN5c19tbG9ja2FsbCwJIm1sb2NrYWxsIiB9LAkJLyogMjM5ICovCisJeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJIm11bmxvY2thbGwiIH0sCQkvKiAyNDAgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwic2NoZWRfc2V0cGFyYW0ifSwJLyogMjQxICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sInNjaGVkX2dldHBhcmFtIn0sCS8qIDI0MiAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwic2NoZWRfc2V0c2NoZWR1bGVyIn0sLyogMjQzICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0c2NoZWR1bGVyLCJzY2hlZF9nZXRzY2hlZHVsZXIifSwvKiAyNDQgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwic2NoZWRfeWllbGQiIH0sCS8qIDI0NSAqLworCXsgMSwwLHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LCJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4In0sLyogMjQ2ICovCisJeyAxLDAsc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sInNjaGVkX2dldF9wcmlvcml0eV9taW4ifSwvKiAyNDcgKi8KKwl7IDIsCTAsc3lzX3NjaGVkX3JyX2dldF9pbnRlcnZhbCwic2NoZWRfcnJfZ2V0X2ludGVydmFsIn0sLyogMjQ4ICovCisJeyAyLAkwLAlzeXNfbmFub3NsZWVwLAkibmFub3NsZWVwIiB9LAkJLyogMjQ5ICovCisJeyA0LAkwLAlzeXNfbXJlbWFwLAkibXJlbWFwIiB9LAkJLyogMjUwICovCisJeyAxLAkwLAlzeXNfc3lzY3RsLAkiX3N5c2N0bCIgfSwJCS8qIDI1MSAqLworCXsgMSwJMCwJc3lzX2dldHNpZCwJImdldHNpZCIgfSwJCS8qIDI1MiAqLworCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJImZkYXRhc3luYyIgfSwJCS8qIDI1MyAqLworCXsgMywJMCwJcHJpbnRhcmdzLAkibmZzc2VydmN0bCIgfSwJCS8qIDI1NCAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkiYXBsaWIiIH0sCQkvKiAyNTUgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19zZXR0aW1lLCJjbG9ja19zZXR0aW1lIiB9LAkvKiAyNTYgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLCJjbG9ja19nZXR0aW1lIiB9LAkvKiAyNTcgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsImNsb2NrX2dldHJlcyIgfSwJLyogMjU4ICovCisJeyA0LAkwLAlzeXNfY2xvY2tfbmFub3NsZWVwLCJjbG9ja19uYW5vc2xlZXAiIH0sLyogMjU5ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0YWZmaW5pdHksInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDI2MCAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LCJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNjEgKi8KKwl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLCJ0aW1lcl9zZXR0aW1lIiB9LAkvKiAyNjIgKi8KKwl7IDIsCTAsCXN5c190aW1lcl9nZXR0aW1lLCJ0aW1lcl9nZXR0aW1lIiB9LAkvKiAyNjMgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLCJ0aW1lcl9nZXRvdmVycnVuIiB9LC8qIDI2NCAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwidGltZXJfZGVsZXRlIiB9LAkvKiAyNjUgKi8KKwl7IDMsCTAsCXN5c190aW1lcl9jcmVhdGUsInRpbWVyX2NyZWF0ZSIgfSwJLyogMjY2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY3IiB9LAkJLyogMjY3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY4IiB9LAkJLyogMjY4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjY5IiB9LAkJLyogMjY5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcwIiB9LAkJLyogMjcwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcxIiB9LAkJLyogMjcxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjcyIiB9LAkJLyogMjcyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjczIiB9LAkJLyogMjczICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc0IiB9LAkJLyogMjc0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc1IiB9LAkJLyogMjc1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc2IiB9LAkJLyogMjc2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc3IiB9LAkJLyogMjc3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc4IiB9LAkJLyogMjc4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjc5IiB9LAkJLyogMjc5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgwIiB9LAkJLyogMjgwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgxIiB9LAkJLyogMjgxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgyIiB9LAkJLyogMjgyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjgzIiB9LAkJLyogMjgzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg0IiB9LAkJLyogMjg0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg1IiB9LAkJLyogMjg1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg2IiB9LAkJLyogMjg2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg3IiB9LAkJLyogMjg3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg4IiB9LAkJLyogMjg4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjg5IiB9LAkJLyogMjg5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkwIiB9LAkJLyogMjkwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkxIiB9LAkJLyogMjkxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkyIiB9LAkJLyogMjkyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjkzIiB9LAkJLyogMjkzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk0IiB9LAkJLyogMjk0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk1IiB9LAkJLyogMjk1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk2IiB9LAkJLyogMjk2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk3IiB9LAkJLyogMjk3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk4IiB9LAkJLyogMjk4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMjk5IiB9LAkJLyogMjk5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAwIiB9LAkJLyogMzAwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAxIiB9LAkJLyogMzAxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAyIiB9LAkJLyogMzAyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzAzIiB9LAkJLyogMzAzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA0IiB9LAkJLyogMzA0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA1IiB9LAkJLyogMzA1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA2IiB9LAkJLyogMzA2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA3IiB9LAkJLyogMzA3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA4IiB9LAkJLyogMzA4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzA5IiB9LAkJLyogMzA5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEwIiB9LAkJLyogMzEwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzExIiB9LAkJLyogMzExICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEyIiB9LAkJLyogMzEyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzEzIiB9LAkJLyogMzEzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE0IiB9LAkJLyogMzE0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE1IiB9LAkJLyogMzE1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE2IiB9LAkJLyogMzE2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE3IiB9LAkJLyogMzE3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE4IiB9LAkJLyogMzE4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzE5IiB9LAkJLyogMzE5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIwIiB9LAkJLyogMzIwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIxIiB9LAkJLyogMzIxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIyIiB9LAkJLyogMzIyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzIzIiB9LAkJLyogMzIzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI0IiB9LAkJLyogMzI0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI1IiB9LAkJLyogMzI1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI2IiB9LAkJLyogMzI2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI3IiB9LAkJLyogMzI3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI4IiB9LAkJLyogMzI4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzI5IiB9LAkJLyogMzI5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMwIiB9LAkJLyogMzMwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMxIiB9LAkJLyogMzMxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMyIiB9LAkJLyogMzMyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzMzIiB9LAkJLyogMzMzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM0IiB9LAkJLyogMzM0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM1IiB9LAkJLyogMzM1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM2IiB9LAkJLyogMzM2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM3IiB9LAkJLyogMzM3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM4IiB9LAkJLyogMzM4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzM5IiB9LAkJLyogMzM5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQwIiB9LAkJLyogMzQwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQxIiB9LAkJLyogMzQxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQyIiB9LAkJLyogMzQyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQzIiB9LAkJLyogMzQzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ0IiB9LAkJLyogMzQ0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ1IiB9LAkJLyogMzQ1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ2IiB9LAkJLyogMzQ2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ3IiB9LAkJLyogMzQ3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ4IiB9LAkJLyogMzQ4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzQ5IiB9LAkJLyogMzQ5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUwIiB9LAkJLyogMzUwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUxIiB9LAkJLyogMzUxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCSJTWVNfMzUyIiB9LAkJLyogMzUyICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgvc3lzY2FsbC5oIGIvc3RyYWNlL2xpbnV4L3N5c2NhbGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMGE1OTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3N5c2NhbGwuaApAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogc3lzY2FsbC5oLHYgMS40NSAyMDA1LzA2LzA3IDIzOjIxOjI4IHJvbGFuZCBFeHAgJAorICovCisKKyNpbmNsdWRlICJkdW1teS5oIgorCisvKiBwcmltYXJ5IHN5c2NhbGxzICovCisKK2ludCBzeXNfc2V0dXAoKSwgc3lzX2V4aXQoKSwgc3lzX2ZvcmsoKSwgc3lzX3JlYWQoKSwgc3lzX3dyaXRlKCk7CitpbnQgc3lzX29wZW4oKSwgc3lzX2Nsb3NlKCksIHN5c193YWl0cGlkKCksIHN5c19jcmVhdCgpLCBzeXNfbGluaygpOworaW50IHN5c191bmxpbmsoKSwgc3lzX2V4ZWN2ZSgpLCBzeXNfY2hkaXIoKSwgc3lzX3RpbWUoKSwgc3lzX21rbm9kKCk7CitpbnQgc3lzX2NobW9kKCksIHN5c19jaG93bigpLCBzeXNfYnJlYWsoKSwgc3lzX29sZHN0YXQoKTsKK2ludCBzeXNfbHNlZWsoKSwgc3lzX2dldHBpZCgpLCBzeXNfbW91bnQoKSwgc3lzX3Vtb3VudCgpLCBzeXNfdW1vdW50MigpOworaW50IHN5c19zZXR1aWQoKSwgc3lzX2dldHVpZCgpLCBzeXNfc3RpbWUoKSwgc3lzX3B0cmFjZSgpOworaW50IHN5c19hbGFybSgpLCBzeXNfb2xkZnN0YXQoKSwgc3lzX3BhdXNlKCksIHN5c191dGltZSgpOworaW50IHN5c19zdHR5KCksIHN5c19ndHR5KCksIHN5c19hY2Nlc3MoKSwgc3lzX25pY2UoKSwgc3lzX2Z0aW1lKCk7CitpbnQgc3lzX3N5bmMoKSwgc3lzX2tpbGwoKSwgc3lzX3JlbmFtZSgpLCBzeXNfbWtkaXIoKSwgc3lzX3JtZGlyKCk7CitpbnQgc3lzX2R1cCgpLCBzeXNfcGlwZSgpLCBzeXNfdGltZXMoKSwgc3lzX3Byb2YoKSwgc3lzX2JyaygpOworaW50IHN5c19zZXRnaWQoKSwgc3lzX2dldGdpZCgpLCBzeXNfc2lnbmFsKCksIHN5c19nZXRldWlkKCk7CitpbnQgc3lzX2dldGVnaWQoKSwgc3lzX2FjY3QoKSwgc3lzX3BoeXMoKSwgc3lzX2xvY2soKSwgc3lzX2lvY3RsKCk7CitpbnQgc3lzX2ZjbnRsKCksIHN5c19tcHgoKSwgc3lzX3NldHBnaWQoKSwgc3lzX3VsaW1pdCgpOworaW50IHN5c19vbGR1bmFtZSgpLCBzeXNfdW1hc2soKSwgc3lzX2Nocm9vdCgpLCBzeXNfdXN0YXQoKTsKK2ludCBzeXNfZHVwMigpLCBzeXNfZ2V0cHBpZCgpLCBzeXNfZ2V0cGdycCgpLCBzeXNfc2V0c2lkKCk7CitpbnQgc3lzX3NpZ2FjdGlvbigpLCBzeXNfc2lnZ2V0bWFzaygpLCBzeXNfc2lnc2V0bWFzaygpOworaW50IHN5c19zZXRyZXVpZCgpLCBzeXNfc2V0cmVnaWQoKSwgc3lzX3NpZ3N1c3BlbmQoKTsKK2ludCBzeXNfc2lncGVuZGluZygpLCBzeXNfc2V0aG9zdG5hbWUoKSwgc3lzX3NldHJsaW1pdCgpOworaW50IHN5c19nZXRybGltaXQoKSwgc3lzX2dldHJ1c2FnZSgpLCBzeXNfZ2V0dGltZW9mZGF5KCk7CitpbnQgc3lzX3NldHRpbWVvZmRheSgpLCBzeXNfZ2V0Z3JvdXBzKCksIHN5c19zZXRncm91cHMoKTsKK2ludCBzeXNfc2V0Z3JvdXBzMzIoKSwgc3lzX2dldGdyb3VwczMyKCk7CitpbnQgc3lzX29sZHNlbGVjdCgpLCBzeXNfc3ltbGluaygpLCBzeXNfb2xkbHN0YXQoKSwgc3lzX3JlYWRsaW5rKCk7CitpbnQgc3lzX3VzZWxpYigpLCBzeXNfc3dhcG9uKCksIHN5c19yZWJvb3QoKSwgc3lzX3JlYWRkaXIoKTsKK2ludCBzeXNfbW1hcCgpLCBzeXNfbXVubWFwKCksIHN5c190cnVuY2F0ZSgpLCBzeXNfZnRydW5jYXRlKCk7CitpbnQgc3lzX2ZjaG1vZCgpLCBzeXNfZmNob3duKCksIHN5c19nZXRwcmlvcml0eSgpOworaW50IHN5c19zZXRwcmlvcml0eSgpLCBzeXNfcHJvZmlsKCksIHN5c19zdGF0ZnMoKSwgc3lzX2ZzdGF0ZnMoKTsKK2ludCBzeXNfaW9wZXJtKCksIHN5c19zb2NrZXRjYWxsKCksIHN5c19zeXNsb2coKSwgc3lzX3NldGl0aW1lcigpOworaW50IHN5c19nZXRpdGltZXIoKSwgc3lzX3N0YXQoKSwgc3lzX2xzdGF0KCksIHN5c19mc3RhdCgpOworaW50IHN5c191bmFtZSgpLCBzeXNfaW9wbCgpLCBzeXNfdmhhbmd1cCgpLCBzeXNfaWRsZSgpLCBzeXNfdm04NigpOworaW50IHN5c193YWl0NCgpLCBzeXNfc3dhcG9mZigpLCBzeXNfaXBjKCksIHN5c19zaWdyZXR1cm4oKTsKK2ludCBzeXNfZnN5bmMoKSwgc3lzX2Nsb25lKCksIHN5c19zZXRkb21haW5uYW1lKCksIHN5c19zeXNpbmZvKCk7CitpbnQgc3lzX21vZGlmeV9sZHQoKSwgc3lzX2FkanRpbWV4KCksIHN5c19tcHJvdGVjdCgpOworaW50IHN5c19zaWdwcm9jbWFzaygpLCBzeXNfY3JlYXRlX21vZHVsZSgpLCBzeXNfaW5pdF9tb2R1bGUoKTsKK2ludCBzeXNfZGVsZXRlX21vZHVsZSgpLCBzeXNfZ2V0X2tlcm5lbF9zeW1zKCksIHN5c19xdW90YWN0bCgpOworaW50IHN5c19nZXRwZ2lkKCksIHN5c19mY2hkaXIoKSwgc3lzX2JkZmx1c2goKTsKK2ludCBzeXNfc3lzZnMoKSwgc3lzX3BlcnNvbmFsaXR5KCksIHN5c19hZnNfc3lzY2FsbCgpOworaW50IHN5c19zZXRmc3VpZCgpLCBzeXNfc2V0ZnNnaWQoKSwgc3lzX2xsc2VlaygpOworaW50IHN5c19nZXRkZW50cygpLCBzeXNfZmxvY2soKSwgc3lzX21zeW5jKCk7CitpbnQgc3lzX3JlYWR2KCksIHN5c193cml0ZXYoKSwgc3lzX3NlbGVjdCgpOworaW50IHN5c19nZXRzaWQoKSwgc3lzX2ZkYXRhc3luYygpLCBzeXNfc3lzY3RsKCk7CitpbnQgc3lzX21sb2NrKCksIHN5c19tdW5sb2NrKCksIHN5c19tbG9ja2FsbCgpLCBzeXNfbXVubG9ja2FsbCgpLCBzeXNfbWFkdmlzZSgpOworaW50IHN5c19zY2hlZF9zZXRwYXJhbSgpLCBzeXNfc2NoZWRfZ2V0cGFyYW0oKTsKK2ludCBzeXNfc2NoZWRfc2V0c2NoZWR1bGVyKCksIHN5c19zY2hlZF9nZXRzY2hlZHVsZXIoKSwgc3lzX3NjaGVkX3lpZWxkKCk7CitpbnQgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgoKSwgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4oKTsKK2ludCBzeXNfc2NoZWRfcnJfZ2V0X2ludGVydmFsKCksIHN5c19uYW5vc2xlZXAoKSwgc3lzX21yZW1hcCgpOworaW50IHN5c19zZW5kbXNnKCksIHN5c19yZWN2bXNnKCksIHN5c19zZXRyZXN1aWQoKSwgc3lzX3NldHJlc2dpZCgpOworaW50IHN5c19nZXRyZXN1aWQoKSwgc3lzX2dldHJlc2dpZCgpLCBzeXNfcHJlYWQoKSwgc3lzX3B3cml0ZSgpLCBzeXNfZ2V0Y3dkKCk7CitpbnQgc3lzX3NpZ2FsdHN0YWNrKCksIHN5c19ydF9zaWdwcm9jbWFzaygpLCBzeXNfcnRfc2lnYWN0aW9uKCk7CitpbnQgc3lzX3J0X3NpZ3BlbmRpbmcoKSwgc3lzX3J0X3NpZ3N1c3BlbmQoKSwgc3lzX3J0X3NpZ3F1ZXVlaW5mbygpOworaW50IHN5c19ydF9zaWd0aW1lZHdhaXQoKSwgc3lzX3ByY3RsKCksIHN5c19wb2xsKCksIHN5c192Zm9yaygpOworaW50IHN5c19zZW5kZmlsZSgpLCBzeXNfb2xkX21tYXAoKSwgc3lzX3N0YXQ2NCgpLCBzeXNfbHN0YXQ2NCgpLCBzeXNfZnN0YXQ2NCgpOworaW50IHN5c190cnVuY2F0ZTY0KCksIHN5c19mdHJ1bmNhdGU2NCgpLCBzeXNfcGl2b3Ryb290KCk7CitpbnQgc3lzX2dldGRlbnRzNjQoKTsKK2ludCBzeXNfZ2V0cG1zZygpLCBzeXNfcHV0cG1zZygpLCBzeXNfcmVhZGFoZWFkKCksIHN5c19zZW5kZmlsZTY0KCk7CitpbnQgc3lzX3NldHhhdHRyKCksIHN5c19mc2V0eGF0dHIoKSwgc3lzX2dldHhhdHRyKCksIHN5c19mZ2V0eGF0dHIoKTsKK2ludCBzeXNfbGlzdHhhdHRyKCksIHN5c19mbGlzdHhhdHRyKCksIHN5c19yZW1vdmV4YXR0cigpLCBzeXNfZnJlbW92ZXhhdHRyKCk7CitpbnQgc3lzX3NjaGVkX3NldGFmZmluaXR5KCksIHN5c19zY2hlZF9nZXRhZmZpbml0eSgpLCBzeXNfZnV0ZXgoKTsKK2ludCBzeXNfc2V0X3RocmVhZF9hcmVhKCksIHN5c19nZXRfdGhyZWFkX2FyZWEoKSwgc3lzX3JlbWFwX2ZpbGVfcGFnZXMoKTsKK2ludCBzeXNfdGltZXJfY3JlYXRlKCksIHN5c190aW1lcl9kZWxldGUoKSwgc3lzX3RpbWVyX2dldG92ZXJydW4oKTsKK2ludCBzeXNfdGltZXJfZ2V0dGltZSgpLCBzeXNfdGltZXJfc2V0dGltZSgpLCBzeXNfY2xvY2tfc2V0dGltZSgpOworaW50IHN5c19jbG9ja19nZXR0aW1lKCksIHN5c19jbG9ja19nZXRyZXMoKSwgc3lzX2Nsb2NrX25hbm9zbGVlcCgpOworaW50IHN5c19zZW10aW1lZG9wKCksIHN5c19zdGF0ZnM2NCgpLCBzeXNfZnN0YXRmczY0KCksIHN5c190Z2tpbGwoKTsKK2ludCBzeXNfbXFfb3BlbigpLCBzeXNfbXFfdGltZWRzZW5kKCksIHN5c19tcV90aW1lZHJlY2VpdmUoKTsKK2ludCBzeXNfbXFfbm90aWZ5KCksIHN5c19tcV9nZXRzZXRhdHRyKCk7CitpbnQgc3lzX2Vwb2xsX2NyZWF0ZSgpLCBzeXNfZXBvbGxfY3RsKCksIHN5c19lcG9sbF93YWl0KCk7CitpbnQgc3lzX3dhaXRpZCgpLCBzeXNfZmFkdmlzZTY0KCksIHN5c19mYWR2aXNlNjRfNjQoKTsKK2ludCBzeXNfbWJpbmQoKSwgc3lzX2dldF9tZW1wb2xpY3koKSwgc3lzX3NldF9tZW1wb2xpY3koKTsKK2ludCBzeXNfYXJjaF9wcmN0bCgpOworaW50IHN5c19pb19zZXR1cCgpLCBzeXNfaW9fc3VibWl0KCksIHN5c19pb19jYW5jZWwoKSwgc3lzX2lvX2dldGV2ZW50cygpLCBzeXNfaW9fZGVzdHJveSgpOworCisvKiBzeXNfc29ja2V0Y2FsbCBzdWJjYWxscyAqLworCitpbnQgc3lzX3NvY2tldCgpLCBzeXNfYmluZCgpLCBzeXNfY29ubmVjdCgpLCBzeXNfbGlzdGVuKCk7CitpbnQgc3lzX2FjY2VwdCgpLCBzeXNfZ2V0c29ja25hbWUoKSwgc3lzX2dldHBlZXJuYW1lKCksIHN5c19zb2NrZXRwYWlyKCk7CitpbnQgc3lzX3NlbmQoKSwgc3lzX3JlY3YoKSwgc3lzX3NlbmR0bygpLCBzeXNfcmVjdmZyb20oKTsKK2ludCBzeXNfc2h1dGRvd24oKSwgc3lzX3NldHNvY2tvcHQoKSwgc3lzX2dldHNvY2tvcHQoKTsKKworLyogbmV3IG9uZXMgKi8KK2ludCBzeXNfcXVlcnlfbW9kdWxlKCk7CitpbnQgc3lzX3BvbGwoKTsKK2ludCBzeXNfbWluY29yZSgpOworCisvKiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY2FsbHMgKi8KKyNpZmRlZiBBTFBIQQoraW50IHN5c19vc2Zfc2VsZWN0KCk7CitpbnQgc3lzX29zZl9nZXR0aW1lb2ZkYXkoKTsKK2ludCBzeXNfb3NmX3NldHRpbWVvZmRheSgpOworaW50IHN5c19vc2ZfZ2V0aXRpbWVyKCk7CitpbnQgc3lzX29zZl9zZXRpdGltZXIoKTsKK2ludCBzeXNfb3NmX2dldHJ1c2FnZSgpOworaW50IHN5c19vc2Zfd2FpdDQoKTsKK2ludCBzeXNfb3NmX3V0aW1lcygpOworI2VuZGlmCisKKworI2lmbmRlZiBTWVNfd2FpdGlkCisjIGlmZGVmIEkzODYKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDI4NAorIyBlbGlmIGRlZmluZWQgQUxQSEEKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDQzOAorIyBlbGlmIGRlZmluZWQgQVJNCisjICBkZWZpbmUgU1lTX3dhaXRpZCAoTlJfU1lTQ0FMTF9CQVNFICsgMjgwKQorIyBlbGlmIGRlZmluZWQgSUE2NAorIyAgZGVmaW5lIFNZU193YWl0aWQgMTI3MAorIyBlbGlmIGRlZmluZWQgTTY4SworIyAgZGVmaW5lIFNZU193YWl0aWQgMjc3CisjIGVsaWYgZGVmaW5lZCBQT1dFUlBDCisjICBkZWZpbmUgU1lTX3dhaXRpZCAyNzIKKyMgZWxpZiBkZWZpbmVkIFMzOTAgfHwgZGVmaW5lZCBTMzkwWAorIyAgZGVmaW5lIFNZU193YWl0aWQgMjgxCisjIGVsaWYgZGVmaW5lZCBTSDY0CisjICBkZWZpbmUgU1lTX3dhaXRpZCAzMTIKKyMgZWxpZiBkZWZpbmVkIFNINjQKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDMxMgorIyBlbGlmIGRlZmluZWQgU0gKKyMgIGRlZmluZSBTWVNfd2FpdGlkIDI4NAorIyBlbGlmIGRlZmluZWQgU1BBUkMgfHwgZGVmaW5lZCBTUEFSQzY0CisjICBkZWZpbmUgU1lTX3dhaXRpZCAyNzkKKyMgZWxpZiBkZWZpbmVkIFg4Nl82NAorIyAgZGVmaW5lIFNZU193YWl0aWQgMjQ3CisjIGVuZGlmCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEFMUEhBKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChIUFBBKQorIyBpZmRlZglJQTY0CisvKgorICogIElBNjQgc3lzY2FsbCBudW1iZXJzICh0aGUgb25seSBvbmVzIGF2YWlsYWJsZSBmcm9tIHN0YW5kYXJkIGhlYWRlcgorICogIGZpbGVzKSBhcmUgZGlzam9pbnQgZnJvbSBJQTMyIHN5c2NhbGwgbnVtYmVycy4gIFdlIG5lZWQgdG8gZGVmaW5lCisgKiAgdGhlIElBMzIgc29ja2V0IGNhbGwgbnVtYmVyIGhlcmUuCisgKi8KKyMgIGRlZmluZSBTWVNfc29ja2V0Y2FsbAkxMDIKKworIyAgdW5kZWYgU1lTX3NvY2tldAorIyAgdW5kZWYgU1lTX2JpbmQKKyMgIHVuZGVmIFNZU19jb25uZWN0CisjICB1bmRlZiBTWVNfbGlzdGVuCisjICB1bmRlZiBTWVNfYWNjZXB0CisjICB1bmRlZiBTWVNfZ2V0c29ja25hbWUKKyMgIHVuZGVmIFNZU19nZXRwZWVybmFtZQorIyAgdW5kZWYgU1lTX3NvY2tldHBhaXIKKyMgIHVuZGVmIFNZU19zZW5kCisjICB1bmRlZiBTWVNfcmVjdgorIyAgdW5kZWYgU1lTX3NlbmR0bworIyAgdW5kZWYgU1lTX3JlY3Zmcm9tCisjICB1bmRlZiBTWVNfc2h1dGRvd24KKyMgIHVuZGVmIFNZU19zZXRzb2Nrb3B0CisjICB1bmRlZiBTWVNfZ2V0c29ja29wdAorIyAgdW5kZWYgU1lTX3NlbmRtc2cKKyMgIHVuZGVmIFNZU19yZWN2bXNnCisjIGVuZGlmIC8qIElBNjQgKi8KKyMgIGRlZmluZSBTWVNfc29ja2V0X3N1YmNhbGwJMzAwCisjZGVmaW5lIFNZU19zdWJfc29ja2V0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMSkKKyNkZWZpbmUgU1lTX3N1Yl9iaW5kCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMikKKyNkZWZpbmUgU1lTX3N1Yl9jb25uZWN0CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMykKKyNkZWZpbmUgU1lTX3N1Yl9saXN0ZW4JCShTWVNfc29ja2V0X3N1YmNhbGwgKyA0KQorI2RlZmluZSBTWVNfc3ViX2FjY2VwdAkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDUpCisjZGVmaW5lIFNZU19zdWJfZ2V0c29ja25hbWUJKFNZU19zb2NrZXRfc3ViY2FsbCArIDYpCisjZGVmaW5lIFNZU19zdWJfZ2V0cGVlcm5hbWUJKFNZU19zb2NrZXRfc3ViY2FsbCArIDcpCisjZGVmaW5lIFNZU19zdWJfc29ja2V0cGFpcgkoU1lTX3NvY2tldF9zdWJjYWxsICsgOCkKKyNkZWZpbmUgU1lTX3N1Yl9zZW5kCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgOSkKKyNkZWZpbmUgU1lTX3N1Yl9yZWN2CQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTApCisjZGVmaW5lIFNZU19zdWJfc2VuZHRvCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTEpCisjZGVmaW5lIFNZU19zdWJfcmVjdmZyb20JKFNZU19zb2NrZXRfc3ViY2FsbCArIDEyKQorI2RlZmluZSBTWVNfc3ViX3NodXRkb3duCShTWVNfc29ja2V0X3N1YmNhbGwgKyAxMykKKyNkZWZpbmUgU1lTX3N1Yl9zZXRzb2Nrb3B0CShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNCkKKyNkZWZpbmUgU1lTX3N1Yl9nZXRzb2Nrb3B0CShTWVNfc29ja2V0X3N1YmNhbGwgKyAxNSkKKyNkZWZpbmUgU1lTX3N1Yl9zZW5kbXNnCQkoU1lTX3NvY2tldF9zdWJjYWxsICsgMTYpCisjZGVmaW5lIFNZU19zdWJfcmVjdm1zZwkJKFNZU19zb2NrZXRfc3ViY2FsbCArIDE3KQorCisjZGVmaW5lIFNZU19zb2NrZXRfbnN1YmNhbGxzCTE4CisjZW5kaWYgLyogIShBTFBIQSB8fCBNSVBTIHx8IEhQUEEpICovCisKKy8qIHN5c19pcGMgc3ViY2FsbHMgKi8KKworaW50IHN5c19zZW1nZXQoKSwgc3lzX3NlbWN0bCgpLCBzeXNfc2Vtb3AoKTsKK2ludCBzeXNfbXNnc25kKCksIHN5c19tc2dyY3YoKSwgc3lzX21zZ2dldCgpLCBzeXNfbXNnY3RsKCk7CitpbnQgc3lzX3NobWF0KCksIHN5c19zaG1kdCgpLCBzeXNfc2htZ2V0KCksIHN5c19zaG1jdGwoKTsKKworI2lmICFkZWZpbmVkKEFMUEhBKSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChTUEFSQykgJiYgIWRlZmluZWQoSFBQQSkKKyMgaWZkZWYJSUE2NAorICAgLyoKKyAgICAqIElBNjQgc3lzY2FsbCBudW1iZXJzICh0aGUgb25seSBvbmVzIGF2YWlsYWJsZSBmcm9tIHN0YW5kYXJkCisgICAgKiBoZWFkZXIgZmlsZXMpIGFyZSBkaXNqb2ludCBmcm9tIElBMzIgc3lzY2FsbCBudW1iZXJzLiAgV2UgbmVlZAorICAgICogdG8gZGVmaW5lIHRoZSBJQTMyIHNvY2tldCBjYWxsIG51bWJlciBoZXJlLiAgRm9ydHVuYXRlbHksIHRoaXMKKyAgICAqIHN5bWJvbCwgYFNZU19pcGMnLCBpcyBub3QgdXNlZCBieSBhbnkgb2YgdGhlIElBNjQgY29kZSBzbworICAgICogcmUtZGVmaW5pbmcgdGhpcyBzeW1ib2wgd2lsbCBub3QgY2F1c2UgYSBwcm9ibGVtLgorICAgKi8KKyMgIHVuZGVmIFNZU19pcGMKKyMgIGRlZmluZSBTWVNfaXBjCQkxMTcKKyMgIHVuZGVmIFNZU19zZW1vcAorIyAgdW5kZWYgU1lTX3NlbWdldAorIyAgdW5kZWYgU1lTX3NlbWN0bAorIyAgdW5kZWYgU1lTX3NlbXRpbWVkb3AKKyMgIHVuZGVmIFNZU19tc2dzbmQKKyMgIHVuZGVmIFNZU19tc2dyY3YKKyMgIHVuZGVmIFNZU19tc2dnZXQKKyMgIHVuZGVmIFNZU19tc2djdGwKKyMgIHVuZGVmIFNZU19zaG1hdAorIyAgdW5kZWYgU1lTX3NobWR0CisjICB1bmRlZiBTWVNfc2htZ2V0CisjICB1bmRlZiBTWVNfc2htY3RsCisjIGVuZGlmIC8qIElBNjQgKi8KKyNkZWZpbmUgU1lTX2lwY19zdWJjYWxsCQkoKFNZU19zb2NrZXRfc3ViY2FsbCkrKFNZU19zb2NrZXRfbnN1YmNhbGxzKSkKKyNkZWZpbmUgU1lTX3N1Yl9zZW1vcAkJKFNZU19pcGNfc3ViY2FsbCArIDEpCisjZGVmaW5lIFNZU19zdWJfc2VtZ2V0CQkoU1lTX2lwY19zdWJjYWxsICsgMikKKyNkZWZpbmUgU1lTX3N1Yl9zZW1jdGwJCShTWVNfaXBjX3N1YmNhbGwgKyAzKQorI2RlZmluZSBTWVNfc3ViX3NlbXRpbWVkb3AJKFNZU19pcGNfc3ViY2FsbCArIDQpCisjZGVmaW5lIFNZU19zdWJfbXNnc25kCQkoU1lTX2lwY19zdWJjYWxsICsgMTEpCisjZGVmaW5lIFNZU19zdWJfbXNncmN2CQkoU1lTX2lwY19zdWJjYWxsICsgMTIpCisjZGVmaW5lIFNZU19zdWJfbXNnZ2V0CQkoU1lTX2lwY19zdWJjYWxsICsgMTMpCisjZGVmaW5lIFNZU19zdWJfbXNnY3RsCQkoU1lTX2lwY19zdWJjYWxsICsgMTQpCisjZGVmaW5lIFNZU19zdWJfc2htYXQJCShTWVNfaXBjX3N1YmNhbGwgKyAyMSkKKyNkZWZpbmUgU1lTX3N1Yl9zaG1kdAkJKFNZU19pcGNfc3ViY2FsbCArIDIyKQorI2RlZmluZSBTWVNfc3ViX3NobWdldAkJKFNZU19pcGNfc3ViY2FsbCArIDIzKQorI2RlZmluZSBTWVNfc3ViX3NobWN0bAkJKFNZU19pcGNfc3ViY2FsbCArIDI0KQorCisjZGVmaW5lIFNZU19pcGNfbnN1YmNhbGxzCTI1CisjZW5kaWYgLyogIShBTFBIQSB8fCBNSVBTIHx8IFNQQVJDIHx8IEhQUEEpICovCisKKyNpZiBkZWZpbmVkIFNZU19pcGNfc3ViY2FsbCAmJiAhZGVmaW5lZCBTWVNfaXBjCisjIGRlZmluZSBTWVNfaXBjIFNZU19pcGNfc3ViY2FsbAorI2VuZGlmCisjaWYgZGVmaW5lZCBTWVNfc29ja2V0X3N1YmNhbGwgJiYgIWRlZmluZWQgU1lTX3NvY2tldGNhbGwKKyMgZGVmaW5lIFNZU19zb2NrZXRjYWxsIFNZU19zb2NrZXRfc3ViY2FsbAorI2VuZGlmCisKKyNpZmRlZiBJQTY0CisgIC8qCisgICAqIElBNjQgc3lzY2FsbCBudW1iZXJzICh0aGUgb25seSBvbmVzIGF2YWlsYWJsZSBmcm9tIHN0YW5kYXJkIGhlYWRlcgorICAgKiBmaWxlcykgYXJlIGRpc2pvaW50IGZyb20gSUEzMiBzeXNjYWxsIG51bWJlcnMuICBXZSBuZWVkIHRvIGRlZmluZQorICAgKiBzb21lIElBMzIgc3BlY2lmaWMgc3lzY2FsbHMgaGVyZS4KKyAgICovCisjIGRlZmluZSBTWVNfZm9yawkyCisjIGRlZmluZSBTWVNfdmZvcmsJMTkwCisjIGRlZmluZSBTWVMzMl9leGl0CTEKKyMgZGVmaW5lIFNZU193YWl0cGlkCTcKKyMgZGVmaW5lIFNZUzMyX3dhaXQ0CTExNAorIyBkZWZpbmUgU1lTMzJfZXhlY3ZlCTExCisjZW5kaWYgLyogSUE2NCAqLworCisjaWYgZGVmaW5lZChBTFBIQSkgfHwgZGVmaW5lZChJQTY0KQoraW50IHN5c19nZXRwYWdlc2l6ZSgpOworI2VuZGlmCisKKyNpZmRlZiBBTFBIQQoraW50IG9zZl9zdGF0ZnMoKSwgb3NmX2ZzdGF0ZnMoKTsKKyNlbmRpZgorCisjaWZkZWYgSUE2NAoraW50IHN5c19nZXRwbXNnKCksIHN5c19wdXRwbXNnKCk7CS8qIFNUUkVBTVMgc3R1ZmYgKi8KKyNlbmRpZgorCisjaWZkZWYgTUlQUworaW50IHN5c19zeXNtaXBzKCk7CisjZW5kaWYKKworaW50IHN5c19zZXRwZ3JwKCksIHN5c19nZXRob3N0bmFtZSgpLCBzeXNfZ2V0ZHRhYmxlc2l6ZSgpLCBzeXNfdXRpbWVzKCk7CitpbnQgc3lzX2NhcGdldCgpLCBzeXNfY2Fwc2V0KCk7CisKKyNpZmRlZiBNNjhLCitpbnQgc3lzX2NhY2hlZmx1c2goKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC9zeXNjYWxsZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjFmNmZlNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC9zeXNjYWxsZW50LmgKQEAgLTAsMCArMSw0OTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IHN5c2NhbGxlbnQuaCx2IDEuMzQgMjAwNS8wNi8wNyAyMzoyMToyNCByb2xhbmQgRXhwICQKKyAqLworCisJeyAwLAkwLAlzeXNfc2V0dXAsCQkic2V0dXAiCQl9LCAvKiAwICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiX2V4aXQiLCBTWVNfZXhpdCB9LCAvKiAxICovCisJeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIsIFNZU19mb3JrIH0sIC8qIDIgKi8KKwl7IDMsCTAsCXN5c19yZWFkLAkJInJlYWQiLCBTWVNfcmVhZCB9LCAvKiAzICovCisJeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiLCBTWVNfd3JpdGUgfSwgLyogNCAqLworCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAvKiA1ICovCisJeyAxLAkwLAlzeXNfY2xvc2UsCQkiY2xvc2UiCQl9LCAvKiA2ICovCisJeyAzLAlUUCwJc3lzX3dhaXRwaWQsCQkid2FpdHBpZCIsIFNZU193YWl0NCB9LCAvKiA3ICovCisJeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgLyogOCAqLworCXsgMiwJVEYsCXN5c19saW5rLAkJImxpbmsiCQl9LCAvKiA5ICovCisJeyAxLAlURiwJc3lzX3VubGluaywJCSJ1bmxpbmsiCX0sIC8qIDEwICovCisJeyAzLAlURnxUUCwJc3lzX2V4ZWN2ZSwJCSJleGVjdmUiLCBTWVNfZXhlY3ZlIH0sIC8qIDExICovCisJeyAxLAlURiwJc3lzX2NoZGlyLAkJImNoZGlyIgkJfSwgLyogMTIgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAvKiAxMyAqLworCXsgMywJVEYsCXN5c19ta25vZCwJCSJta25vZCIJCX0sIC8qIDE0ICovCisJeyAyLAlURiwJc3lzX2NobW9kLAkJImNobW9kIgkJfSwgLyogMTUgKi8KKyNpZmRlZiBNNjhLCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImNob3duIgkJfSwgLyogMTYgKi8KKyNlbHNlCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTYgKi8KKyNlbmRpZgorCXsgMCwJMCwJc3lzX2JyZWFrLAkJImJyZWFrIgkJfSwgLyogMTcgKi8KKwl7IDIsCVRGLAlzeXNfb2xkc3RhdCwJCSJvbGRzdGF0Igl9LCAvKiAxOCAqLworCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgLyogMTkgKi8KKwl7IDAsCTAsCXN5c19nZXRwaWQsCQkiZ2V0cGlkIgl9LCAvKiAyMCAqLworCXsgNSwJVEYsCXN5c19tb3VudCwJCSJtb3VudCIJCX0sIC8qIDIxICovCisJeyAxLAlURiwJc3lzX3Vtb3VudCwJCSJvbGR1bW91bnQiCX0sIC8qIDIyICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZCIJfSwgLyogMjMgKi8KKwl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAvKiAyNCAqLworCXsgMSwJMCwJc3lzX3N0aW1lLAkJInN0aW1lIgkJfSwgLyogMjUgKi8KKwl7IDQsCTAsCXN5c19wdHJhY2UsCQkicHRyYWNlIgl9LCAvKiAyNiAqLworCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgLyogMjcgKi8KKwl7IDIsCTAsCXN5c19vbGRmc3RhdCwJCSJvbGRmc3RhdCIJfSwgLyogMjggKi8KKwl7IDAsCVRTLAlzeXNfcGF1c2UsCQkicGF1c2UiCQl9LCAvKiAyOSAqLworCXsgMiwJVEYsCXN5c191dGltZSwJCSJ1dGltZSIJCX0sIC8qIDMwICovCisJeyAyLAkwLAlzeXNfc3R0eSwJCSJzdHR5IgkJfSwgLyogMzEgKi8KKwl7IDIsCTAsCXN5c19ndHR5LAkJImd0dHkiCQl9LCAvKiAzMiAqLworCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAvKiAzMyAqLworCXsgMSwJMCwJc3lzX25pY2UsCQkibmljZSIJCX0sIC8qIDM0ICovCisJeyAwLAkwLAlzeXNfZnRpbWUsCQkiZnRpbWUiCQl9LCAvKiAzNSAqLworCXsgMCwJMCwJc3lzX3N5bmMsCQkic3luYyIJCX0sIC8qIDM2ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkia2lsbCIJCX0sIC8qIDM3ICovCisJeyAyLAlURiwJc3lzX3JlbmFtZSwJCSJyZW5hbWUiCX0sIC8qIDM4ICovCisJeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgLyogMzkgKi8KKwl7IDEsCVRGLAlzeXNfcm1kaXIsCQkicm1kaXIiCQl9LCAvKiA0MCAqLworCXsgMSwJMCwJc3lzX2R1cCwJCSJkdXAiCQl9LCAvKiA0MSAqLworCXsgMSwJMCwJc3lzX3BpcGUsCQkicGlwZSIJCX0sIC8qIDQyICovCisJeyAxLAkwLAlzeXNfdGltZXMsCQkidGltZXMiCQl9LCAvKiA0MyAqLworCXsgMCwJMCwJc3lzX3Byb2YsCQkicHJvZiIJCX0sIC8qIDQ0ICovCisJeyAxLAkwLAlzeXNfYnJrLAkJImJyayIJCX0sIC8qIDQ1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgLyogNDYgKi8KKwl7IDAsCTAsCXN5c19nZXRnaWQsCQkiZ2V0Z2lkIgl9LCAvKiA0NyAqLworCXsgMywJVFMsCXN5c19zaWduYWwsCQkic2lnbmFsIgl9LCAvKiA0OCAqLworCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgLyogNDkgKi8KKwl7IDAsCTAsCXN5c19nZXRlZ2lkLAkJImdldGVnaWQiCX0sIC8qIDUwICovCisJeyAxLAlURiwJc3lzX2FjY3QsCQkiYWNjdCIJCX0sIC8qIDUxICovCisJeyAyLAlURiwJc3lzX3Vtb3VudDIsCQkidW1vdW50Igl9LCAvKiA1MiAqLworCXsgMCwJMCwJc3lzX2xvY2ssCQkibG9jayIJCX0sIC8qIDUzICovCisJeyAzLAkwLAlzeXNfaW9jdGwsCQkiaW9jdGwiCQl9LCAvKiA1NCAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgLyogNTUgKi8KKwl7IDAsCTAsCXN5c19tcHgsCQkibXB4IgkJfSwgLyogNTYgKi8KKwl7IDIsCTAsCXN5c19zZXRwZ2lkLAkJInNldHBnaWQiCX0sIC8qIDU3ICovCisJeyAyLAkwLAlzeXNfdWxpbWl0LAkJInVsaW1pdCIJfSwgLyogNTggKi8KKwl7IDEsCTAsCXN5c19vbGRvbGR1bmFtZSwJIm9sZG9sZHVuYW1lIgl9LCAvKiA1OSAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgLyogNjAgKi8KKwl7IDEsCVRGLAlzeXNfY2hyb290LAkJImNocm9vdCIJfSwgLyogNjEgKi8KKwl7IDIsCTAsCXN5c191c3RhdCwJCSJ1c3RhdCIJCX0sIC8qIDYyICovCisJeyAyLAkwLAlzeXNfZHVwMiwJCSJkdXAyIgkJfSwgLyogNjMgKi8KKwl7IDAsCTAsCXN5c19nZXRwcGlkLAkJImdldHBwaWQiCX0sIC8qIDY0ICovCisJeyAwLAkwLAlzeXNfZ2V0cGdycCwJCSJnZXRwZ3JwIgl9LCAvKiA2NSAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sIC8qIDY2ICovCisJeyAzLAlUUywJc3lzX3NpZ2FjdGlvbiwJCSJzaWdhY3Rpb24iCX0sIC8qIDY3ICovCisJeyAwLAlUUywJc3lzX3NpZ2dldG1hc2ssCQkic2lnZ2V0bWFzayIJfSwgLyogNjggKi8KKwl7IDEsCVRTLAlzeXNfc2lnc2V0bWFzaywJCSJzaWdzZXRtYXNrIgl9LCAvKiA2OSAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkIgl9LCAvKiA3MCAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAvKiA3MSAqLworCXsgMywJVFMsCXN5c19zaWdzdXNwZW5kLAkJInNpZ3N1c3BlbmQiCX0sIC8qIDcyICovCisJeyAxLAlUUywJc3lzX3NpZ3BlbmRpbmcsCQkic2lncGVuZGluZyIJfSwgLyogNzMgKi8KKwl7IDIsCTAsCXN5c19zZXRob3N0bmFtZSwJInNldGhvc3RuYW1lIgl9LCAvKiA3NCAqLworCXsgMiwJMCwJc3lzX3NldHJsaW1pdCwJCSJzZXRybGltaXQiCX0sIC8qIDc1ICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJIm9sZF9nZXRybGltaXQiCX0sIC8qIDc2ICovCisJeyAyLAkwLAlzeXNfZ2V0cnVzYWdlLAkJImdldHJ1c2FnZSIJfSwgLyogNzcgKi8KKwl7IDIsCTAsCXN5c19nZXR0aW1lb2ZkYXksCSJnZXR0aW1lb2ZkYXkiCX0sIC8qIDc4ICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAvKiA3OSAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwcywJCSJnZXRncm91cHMiCX0sIC8qIDgwICovCisJeyAyLAkwLAlzeXNfc2V0Z3JvdXBzLAkJInNldGdyb3VwcyIJfSwgLyogODEgKi8KKwl7IDEsCTAsCXN5c19vbGRzZWxlY3QsCQkib2xkc2VsZWN0Igl9LCAvKiA4MiAqLworCXsgMiwJVEYsCXN5c19zeW1saW5rLAkJInN5bWxpbmsiCX0sIC8qIDgzICovCisJeyAyLAlURiwJc3lzX29sZGxzdGF0LAkJIm9sZGxzdGF0Igl9LCAvKiA4NCAqLworCXsgMywJVEYsCXN5c19yZWFkbGluaywJCSJyZWFkbGluayIJfSwgLyogODUgKi8KKwl7IDEsCVRGLAlzeXNfdXNlbGliLAkJInVzZWxpYiIJfSwgLyogODYgKi8KKwl7IDEsCVRGLAlzeXNfc3dhcG9uLAkJInN3YXBvbiIJfSwgLyogODcgKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAvKiA4OCAqLworCXsgMywJMCwJc3lzX3JlYWRkaXIsCQkicmVhZGRpciIJfSwgLyogODkgKi8KKwl7IDYsCTAsCXN5c19vbGRfbW1hcCwJCSJvbGRfbW1hcCIJfSwgLyogOTAgKi8KKwl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAvKiA5MSAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgLyogOTIgKi8KKwl7IDIsCTAsCXN5c19mdHJ1bmNhdGUsCQkiZnRydW5jYXRlIgl9LCAvKiA5MyAqLworCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sIC8qIDk0ICovCisJeyAzLAkwLAlzeXNfZmNob3duLAkJImZjaG93biIJfSwgLyogOTUgKi8KKwl7IDIsCTAsCXN5c19nZXRwcmlvcml0eSwJImdldHByaW9yaXR5Igl9LCAvKiA5NiAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sIC8qIDk3ICovCisJeyA0LAkwLAlzeXNfcHJvZmlsLAkJInByb2ZpbCIJfSwgLyogOTggKi8KKwl7IDIsCVRGLAlzeXNfc3RhdGZzLAkJInN0YXRmcyIJfSwgLyogOTkgKi8KKwl7IDIsCTAsCXN5c19mc3RhdGZzLAkJImZzdGF0ZnMiCX0sIC8qIDEwMCAqLworCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sIC8qIDEwMSAqLworCXsgMiwJMCwJc3lzX3NvY2tldGNhbGwsCQkic29ja2V0Y2FsbCIsIFNZU19zb2NrZXRjYWxsIH0sIC8qIDEwMiAqLworCXsgMywJMCwJc3lzX3N5c2xvZywJCSJzeXNsb2ciCX0sIC8qIDEwMyAqLworCXsgMywJMCwJc3lzX3NldGl0aW1lciwJCSJzZXRpdGltZXIiCX0sIC8qIDEwNCAqLworCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sIC8qIDEwNSAqLworCXsgMiwJVEYsCXN5c19zdGF0LAkJInN0YXQiCQl9LCAvKiAxMDYgKi8KKwl7IDIsCVRGLAlzeXNfbHN0YXQsCQkibHN0YXQiCQl9LCAvKiAxMDcgKi8KKwl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sIC8qIDEwOCAqLworCXsgMSwJMCwJc3lzX29sZHVuYW1lLAkJIm9sZHVuYW1lIgl9LCAvKiAxMDkgKi8KKwl7IDEsCTAsCXN5c19pb3BsLAkJImlvcGwiCQl9LCAvKiAxMTAgKi8KKwl7IDAsCTAsCXN5c192aGFuZ3VwLAkJInZoYW5ndXAiCX0sIC8qIDExMSAqLworCXsgMCwJMCwJc3lzX2lkbGUsCQkiaWRsZSIJCX0sIC8qIDExMiAqLworCXsgMSwJMCwJc3lzX3ZtODZvbGQsCQkidm04Nm9sZCIJfSwgLyogMTEzICovCisJeyA0LAlUUCwJc3lzX3dhaXQ0LAkJIndhaXQ0IiwgU1lTX3dhaXQ0IH0sIC8qIDExNCAqLworCXsgMSwJMCwJc3lzX3N3YXBvZmYsCQkic3dhcG9mZiIJfSwgLyogMTE1ICovCisJeyAxLAkwLAlzeXNfc3lzaW5mbywJCSJzeXNpbmZvIgl9LCAvKiAxMTYgKi8KKwl7IDYsCTAsCXN5c19pcGMsCQkiaXBjIiwgU1lTX2lwYyB9LCAvKiAxMTcgKi8KKwl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sIC8qIDExOCAqLworCXsgMSwJVFMsCXN5c19zaWdyZXR1cm4sCQkic2lncmV0dXJuIgl9LCAvKiAxMTkgKi8KKwl7IDUsCVRQLAlzeXNfY2xvbmUsCQkiY2xvbmUiLCBTWVNfY2xvbmUgfSwgLyogMTIwICovCisJeyAyLAkwLAlzeXNfc2V0ZG9tYWlubmFtZSwJInNldGRvbWFpbm5hbWUiCX0sIC8qIDEyMSAqLworCXsgMSwJMCwJc3lzX3VuYW1lLAkJInVuYW1lIgkJfSwgLyogMTIyICovCisjaWZkZWYgTTY4SworCXsgNCwJMCwJc3lzX2NhY2hlZmx1c2gsCQkiY2FjaGVmbHVzaCIJfSwgLyogMTIzICovCisjZWxzZQorCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgLyogMTIzICovCisjZW5kaWYKKwl7IDEsCTAsCXN5c19hZGp0aW1leCwJCSJhZGp0aW1leCIJfSwgLyogMTI0ICovCisJeyAzLAkwLAlzeXNfbXByb3RlY3QsCQkibXByb3RlY3QiCX0sIC8qIDEyNSAqLworCXsgMywJVFMsCXN5c19zaWdwcm9jbWFzaywJInNpZ3Byb2NtYXNrIgl9LCAvKiAxMjYgKi8KKwl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgLyogMTI3ICovCisJeyAyLAkwLAlzeXNfaW5pdF9tb2R1bGUsCSJpbml0X21vZHVsZSIJfSwgLyogMTI4ICovCisJeyAxLAkwLAlzeXNfZGVsZXRlX21vZHVsZSwJImRlbGV0ZV9tb2R1bGUiCX0sIC8qIDEyOSAqLworCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAvKiAxMzAgKi8KKwl7IDQsCTAsCXN5c19xdW90YWN0bCwJCSJxdW90YWN0bCIJfSwgLyogMTMxICovCisJeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAvKiAxMzIgKi8KKwl7IDEsCTAsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAvKiAxMzMgKi8KKwl7IDAsCTAsCXN5c19iZGZsdXNoLAkJImJkZmx1c2giCX0sIC8qIDEzNCAqLworCXsgMywJMCwJc3lzX3N5c2ZzLAkJInN5c2ZzIiwgU1lTX3N5c2ZzIH0sIC8qIDEzNSAqLworCXsgMSwJMCwJc3lzX3BlcnNvbmFsaXR5LAkicGVyc29uYWxpdHkiCX0sIC8qIDEzNiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sIC8qIDEzNyAqLworCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkIgl9LCAvKiAxMzggKi8KKwl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgLyogMTM5ICovCisJeyA1LAkwLAlzeXNfbGxzZWVrLAkJIl9sbHNlZWsiCX0sIC8qIDE0MCAqLworCXsgMywJMCwJc3lzX2dldGRlbnRzLAkJImdldGRlbnRzIgl9LCAvKiAxNDEgKi8KKwl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAvKiAxNDIgKi8KKwl7IDIsCTAsCXN5c19mbG9jaywJCSJmbG9jayIJCX0sIC8qIDE0MyAqLworCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgLyogMTQ0ICovCisJeyAzLAkwLAlzeXNfcmVhZHYsCQkicmVhZHYiLCBTWVNfcmVhZHYgfSwgLyogMTQ1ICovCisJeyAzLAkwLAlzeXNfd3JpdGV2LAkJIndyaXRldiIsIFNZU193cml0ZXYgfSwgLyogMTQ2ICovCisJeyAxLAkwLAlzeXNfZ2V0c2lkLAkJImdldHNpZCIJfSwgLyogMTQ3ICovCisJeyAxLAkwLAlzeXNfZmRhdGFzeW5jLAkJImZkYXRhc3luYyIJfSwgLyogMTQ4ICovCisJeyAxLAkwLAlzeXNfc3lzY3RsLAkJIl9zeXNjdGwiCX0sIC8qIDE0OSAqLworCXsgMiwJMCwJc3lzX21sb2NrLAkJIm1sb2NrIgkJfSwgLyogMTUwICovCisJeyAyLAkwLAlzeXNfbXVubG9jaywJCSJtdW5sb2NrIgl9LCAvKiAxNTEgKi8KKwl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgLyogMTUyICovCisJeyAwLAkwLAlzeXNfbXVubG9ja2FsbCwJCSJtdW5sb2NrYWxsIgl9LCAvKiAxNTMgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIn0sIC8qIDE1NCAqLworCXsgMiwJMCwJc3lzX3NjaGVkX2dldHBhcmFtLAkic2NoZWRfZ2V0cGFyYW0ifSwgLyogMTU1ICovCisJeyAzLAkwLAlzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLAkic2NoZWRfc2V0c2NoZWR1bGVyIn0sIC8qIDE1NiAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciJ9LCAvKiAxNTcgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sIC8qIDE1OCAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsInNjaGVkX2dldF9wcmlvcml0eV9tYXgifSwgLyogMTU5ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiJ9LCAvKiAxNjAgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsInNjaGVkX3JyX2dldF9pbnRlcnZhbCJ9LCAvKiAxNjEgKi8KKwl7IDIsCTAsCXN5c19uYW5vc2xlZXAsCQkibmFub3NsZWVwIgl9LCAvKiAxNjIgKi8KKwl7IDQsCTAsCXN5c19tcmVtYXAsCQkibXJlbWFwIgl9LCAvKiAxNjMgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAvKiAxNjQgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkIgl9LCAvKiAxNjUgKi8KKyNpZmRlZiBNNjhLCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzE2NiIJfSwgLyogMTY2ICovCisjZWxzZQorCXsgNSwJMCwJcHJpbnRhcmdzLAkJInZtODYiCQl9LCAvKiAxNjYgKi8KKyNlbmRpZgorCXsgNSwJMCwJc3lzX3F1ZXJ5X21vZHVsZSwJInF1ZXJ5X21vZHVsZSIJfSwgLyogMTY3ICovCisJeyAzLAkwLAlzeXNfcG9sbCwJCSJwb2xsIgkJfSwgLyogMTY4ICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkibmZzc2VydmN0bCIJfSwgLyogMTY5ICovCisJeyAzLAkwLAlzeXNfc2V0cmVzZ2lkLAkJInNldHJlc2dpZCIJfSwgLyogMTcwICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZCIJfSwgLyogMTcxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAvKiAxNzIgKi8KKwl7IDEsCVRTLAlwcmludGFyZ3MsCQkicnRfc2lncmV0dXJuIgl9LCAvKiAxNzMgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lnYWN0aW9uLAkicnRfc2lnYWN0aW9uIiAgfSwgLyogMTc0ICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ3Byb2NtYXNrLAkicnRfc2lncHJvY21hc2sifSwgLyogMTc1ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3BlbmRpbmcsCSJydF9zaWdwZW5kaW5nIgl9LCAvKiAxNzYgKi8KKwl7IDQsCVRTLAlzeXNfcnRfc2lndGltZWR3YWl0LAkicnRfc2lndGltZWR3YWl0In0sIC8qIDE3NyAqLworCXsgMywJVFMsCXN5c19ydF9zaWdxdWV1ZWluZm8sICAgICJydF9zaWdxdWV1ZWluZm8ifSwgLyogMTc4ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAvKiAxNzkgKi8KKworCXsgNSwJVEYsCXN5c19wcmVhZCwJCSJwcmVhZDY0IiwgU1lTX3JlYWQgfSwgLyogMTgwICovCisJeyA1LAlURiwJc3lzX3B3cml0ZSwJCSJwd3JpdGU2NCIsIFNZU193cml0ZSB9LCAvKiAxODEgKi8KKyNpZmRlZiBNNjhLCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93biIJfSwgLyogMTgyICovCisjZWxzZQorCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sIC8qIDE4MiAqLworI2VuZGlmCisJeyAyLAlURiwJc3lzX2dldGN3ZCwJCSJnZXRjd2QiCX0sIC8qIDE4MyAqLworCXsgMiwJMCwJc3lzX2NhcGdldCwJCSJjYXBnZXQiCX0sIC8qIDE4NCAqLworCXsgMiwJMCwJc3lzX2NhcHNldCwJCSJjYXBzZXQiCX0sIC8qIDE4NSAqLworCXsgMiwJVFMsCXN5c19zaWdhbHRzdGFjaywJInNpZ2FsdHN0YWNrIgl9LCAvKiAxODYgKi8KKwl7IDQsCVRGLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sIC8qIDE4NyAqLworCXsgNSwJMCwJc3lzX2dldHBtc2csCQkiZ2V0cG1zZyIJfSwgLyogMTg4ICovCisJeyA1LAkwLAlzeXNfcHV0cG1zZywJCSJwdXRwbXNnIgl9LCAvKiAxODkgKi8KKwl7IDAsCVRQLAlzeXNfdmZvcmssCQkidmZvcmsiLCBTWVNfdmZvcmsgfSwgLyogMTkwICovCisJeyAyLAkwLAlzeXNfZ2V0cmxpbWl0LAkJImdldHJsaW1pdCIJfSwgLyogMTkxICovCisJeyA2LAkwLAlzeXNfbW1hcCwJCSJtbWFwMiIJCX0sIC8qIDE5MiAqLworCXsgMywJVEYsCXN5c190cnVuY2F0ZTY0LAkJInRydW5jYXRlNjQiCX0sIC8qIDE5MyAqLworCXsgMywJVEYsCXN5c19mdHJ1bmNhdGU2NCwJImZ0cnVuY2F0ZTY0Igl9LCAvKiAxOTQgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdDY0LAkJInN0YXQ2NCIJfSwgLyogMTk1ICovCisJeyAyLAlURiwJc3lzX2xzdGF0NjQsCQkibHN0YXQ2NCIJfSwgLyogMTk2ICovCisJeyAyLAlURiwJc3lzX2ZzdGF0NjQsCQkiZnN0YXQ2NCIJfSwgLyogMTk3ICovCisJeyAzLAlURiwJc3lzX2Nob3duLAkJImxjaG93bjMyIgl9LCAvKiAxOTggKi8KKwl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkMzIiCX0sIC8qIDE5OSAqLworCisJeyAwLAkwLAlzeXNfZ2V0Z2lkLAkJImdldGdpZDMyIgl9LCAvKiAyMDAgKi8KKwl7IDAsCTAsCXN5c19nZXRldWlkLAkJImdldGV1aWQzMiIJfSwgLyogMjAxICovCisJeyAwLAkwLAlzeXNfZ2V0ZXVpZCwJCSJnZXRlZ2lkMzIiCX0sIC8qIDIwMiAqLworCXsgMiwJMCwJc3lzX3NldHJldWlkLAkJInNldHJldWlkMzIiCX0sIC8qIDIwMyAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkMzIiCX0sIC8qIDIwNCAqLworCXsgMiwJMCwJc3lzX2dldGdyb3VwczMyLAkiZ2V0Z3JvdXBzMzIiCX0sIC8qIDIwNSAqLworCXsgMiwJMCwJc3lzX3NldGdyb3VwczMyLAkic2V0Z3JvdXBzMzIiCX0sIC8qIDIwNiAqLworCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24zMiIJfSwgLyogMjA3ICovCisJeyAzLAkwLAlzeXNfc2V0cmVzdWlkLAkJInNldHJlc3VpZDMyIgl9LCAvKiAyMDggKi8KKwl7IDMsCTAsCXN5c19nZXRyZXN1aWQsCQkiZ2V0cmVzdWlkMzIiCX0sIC8qIDIwOSAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQzMiIJfSwgLyogMjEwICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzZ2lkLAkJImdldHJlc2dpZDMyIgl9LCAvKiAyMTEgKi8KKwl7IDMsCVRGLAlzeXNfY2hvd24sCQkiY2hvd24zMiIJfSwgLyogMjEyICovCisJeyAxLAkwLAlzeXNfc2V0dWlkLAkJInNldHVpZDMyIgl9LCAvKiAyMTMgKi8KKwl7IDEsCTAsCXN5c19zZXRnaWQsCQkic2V0Z2lkMzIiCX0sIC8qIDIxNCAqLworCXsgMSwJMCwJc3lzX3NldGZzdWlkLAkJInNldGZzdWlkMzIiCX0sIC8qIDIxNSAqLworCXsgMSwJMCwJc3lzX3NldGZzZ2lkLAkJInNldGZzZ2lkMzIiCX0sIC8qIDIxNiAqLworCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgLyogMjE3ICovCisJeyAzLAkwLAlzeXNfbWluY29yZSwJCSJtaW5jb3JlIgl9LCAvKiAyMTggKi8KKwl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sIC8qIDIxOSAqLworCXsgNCwJMCwJc3lzX2dldGRlbnRzNjQsCQkiZ2V0ZGVudHM2NCIJfSwgLyogMjIwICovCisJeyAzLAkwLAlzeXNfZmNudGwsCQkiZmNudGw2NCIJfSwgLyogMjIxICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiU1lTXzIyMiIJfSwgLyogMjIyICovCisvKlRPRE8qL3sgNSwJMCwJcHJpbnRhcmdzLAkJInNlY3VyaXR5Igl9LCAvKiAyMjMgKi8KKwl7IDAsCTAsCXByaW50YXJncywJCSJnZXR0aWQiCX0sIC8qIDIyNCAqLworCXsgNCwJMCwJc3lzX3JlYWRhaGVhZCwJCSJyZWFkYWhlYWQiCX0sIC8qIDIyNSAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJzZXR4YXR0ciIJfSwgLyogMjI2ICovCisJeyA1LAlURiwJc3lzX3NldHhhdHRyLAkJImxzZXR4YXR0ciIJfSwgLyogMjI3ICovCisJeyA1LAkwLAlzeXNfZnNldHhhdHRyLAkJImZzZXR4YXR0ciIJfSwgLyogMjI4ICovCisJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImdldHhhdHRyIgl9LCAvKiAyMjkgKi8KKwl7IDQsCVRGLAlzeXNfZ2V0eGF0dHIsCQkibGdldHhhdHRyIgl9LCAvKiAyMzAgKi8KKwl7IDQsCTAsCXN5c19mZ2V0eGF0dHIsCQkiZmdldHhhdHRyIgl9LCAvKiAyMzEgKi8KKwl7IDMsCVRGLAlzeXNfbGlzdHhhdHRyLAkJImxpc3R4YXR0ciIJfSwgLyogMjMyICovCisJeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsbGlzdHhhdHRyIgl9LCAvKiAyMzMgKi8KKwl7IDMsCTAsCXN5c19mbGlzdHhhdHRyLAkJImZsaXN0eGF0dHIiCX0sIC8qIDIzNCAqLworCXsgMiwJVEYsCXN5c19yZW1vdmV4YXR0ciwJInJlbW92ZXhhdHRyIgl9LCAvKiAyMzUgKi8KKwl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJscmVtb3ZleGF0dHIiCX0sIC8qIDIzNiAqLworCXsgMiwJMCwJc3lzX2ZyZW1vdmV4YXR0ciwJImZyZW1vdmV4YXR0ciIJfSwgLyogMjM3ICovCisJeyAyLAlUUywJc3lzX2tpbGwsCQkidGtpbGwiCQl9LCAvKiAyMzggKi8KKwl7IDQsCVRGLAlzeXNfc2VuZGZpbGU2NCwJCSJzZW5kZmlsZTY0Igl9LCAvKiAyMzkgKi8KKwl7IDUsCTAsCXN5c19mdXRleCwJCSJmdXRleCIJCX0sIC8qIDI0MCAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldGFmZmluaXR5LAkic2NoZWRfc2V0YWZmaW5pdHkiIH0sLyogMjQxICovCisJeyAzLAkwLAlzeXNfc2NoZWRfZ2V0YWZmaW5pdHksCSJzY2hlZF9nZXRhZmZpbml0eSIgfSwvKiAyNDIgKi8KKwl7IDEsCTAsCXN5c19zZXRfdGhyZWFkX2FyZWEsCSJzZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDI0MyAqLworCXsgMSwJMCwJc3lzX2dldF90aHJlYWRfYXJlYSwJImdldF90aHJlYWRfYXJlYSIgfSwgLyogMjQ0ICovCisJeyAyLAkwLAlzeXNfaW9fc2V0dXAsCQkiaW9fc2V0dXAiCX0sIC8qIDI0NSAqLworCXsgMSwJMCwJc3lzX2lvX2Rlc3Ryb3ksCQkiaW9fZGVzdHJveSIJfSwgLyogMjQ2ICovCisJeyA1LAkwLAlzeXNfaW9fZ2V0ZXZlbnRzLAkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyNDcgKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiAyNDggKi8KKwl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAyNDkgKi8KKwl7IDUsCVRGLAlzeXNfZmFkdmlzZTY0LAkJImZhZHZpc2U2NCIJfSwgLyogMjUwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI1MSIJfSwgLyogMjUxICovCisJeyAxLAlUUCwJc3lzX2V4aXQsCQkiZXhpdF9ncm91cCIsIF9fTlJfZXhpdF9ncm91cCB9LCAvKiAyNTIgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJsb29rdXBfZGNvb2tpZSJ9LCAvKiAyNTMgKi8KKwl7IDEsCTAsCXN5c19lcG9sbF9jcmVhdGUsCSJlcG9sbF9jcmVhdGUiCX0sIC8qIDI1NCAqLworCXsgNCwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDI1NSAqLworCXsgNCwJMCwJc3lzX2Vwb2xsX3dhaXQsCQkiZXBvbGxfd2FpdCIJfSwgLyogMjU2ICovCisJeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMifSwgLyogMjU3ICovCisJeyAxLAkwLAlwcmludGFyZ3MsCQkic2V0X3RpZF9hZGRyZXNzIn0sIC8qIDI1OCAqLworCXsgMywJMCwJc3lzX3RpbWVyX2NyZWF0ZSwJInRpbWVyX2NyZWF0ZSIJfSwgLyogMjU5ICovCisJeyA0LAkwLAlzeXNfdGltZXJfc2V0dGltZSwJInRpbWVyX3NldHRpbWUiCX0sIC8qIDI2MCAqLworCXsgMiwJMCwJc3lzX3RpbWVyX2dldHRpbWUsCSJ0aW1lcl9nZXR0aW1lIgl9LCAvKiAyNjEgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9nZXRvdmVycnVuLAkidGltZXJfZ2V0b3ZlcnJ1biJ9LCAvKiAyNjIgKi8KKwl7IDEsCTAsCXN5c190aW1lcl9kZWxldGUsCSJ0aW1lcl9kZWxldGUiCX0sIC8qIDI2MyAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX3NldHRpbWUsCSJjbG9ja19zZXR0aW1lIgl9LCAvKiAyNjQgKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXR0aW1lLAkiY2xvY2tfZ2V0dGltZSIJfSwgLyogMjY1ICovCisJeyAyLAkwLAlzeXNfY2xvY2tfZ2V0cmVzLAkiY2xvY2tfZ2V0cmVzIgl9LCAvKiAyNjYgKi8KKwl7IDQsCTAsCXN5c19jbG9ja19uYW5vc2xlZXAsCSJjbG9ja19uYW5vc2xlZXAifSwgLyogMjY3ICovCisJeyAzLAlURiwJc3lzX3N0YXRmczY0LAkJInN0YXRmczY0Igl9LCAvKiAyNjggKi8KKwl7IDMsCVRGLAlzeXNfZnN0YXRmczY0LAkJImZzdGF0ZnM2NCIJfSwgLyogMjY5ICovCisJeyAzLAlUUywJc3lzX3Rna2lsbCwJCSJ0Z2tpbGwiCX0sIC8qIDI3MCAqLworCXsgMiwJVEYsCXN5c191dGltZXMsCQkidXRpbWVzIgl9LCAvKiAyNzEgKi8KKwl7IDYsCVRGLAlzeXNfZmFkdmlzZTY0XzY0LAkiZmFkdmlzZTY0XzY0Igl9LCAvKiAyNzIgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJ2c2VydmVyIgl9LCAvKiAyNzMgKi8KKwl7IDYsCTAsCXN5c19tYmluZCwJCSJtYmluZCIJCX0sIC8qIDI3NCAqLworCXsgNSwJMCwJc3lzX2dldF9tZW1wb2xpY3ksCSJnZXRfbWVtcG9saWN5Igl9LCAvKiAyNzUgKi8KKwl7IDMsCTAsCXN5c19zZXRfbWVtcG9saWN5LAkic2V0X21lbXBvbGljeSIJfSwgLyogMjc2ICovCisJeyA0LAkwLAlzeXNfbXFfb3BlbiwJCSJtcV9vcGVuIgl9LCAvKiAyNzcgKi8KKwl7IDEsCTAsCXN5c19tcV91bmxpbmssCQkibXFfdW5saW5rIgl9LCAvKiAyNzggKi8KKwl7IDUsCTAsCXN5c19tcV90aW1lZHNlbmQsCSJtcV90aW1lZHNlbmQiCX0sIC8qIDI3OSAqLworCXsgNSwJMCwJc3lzX21xX3RpbWVkcmVjZWl2ZSwJIm1xX3RpbWVkcmVjZWl2ZSIgfSwgLyogMjgwICovCisJeyAyLAkwLAlzeXNfbXFfbm90aWZ5LAkJIm1xX25vdGlmeSIJfSwgLyogMjgxICovCisJeyAzLAkwLAlzeXNfbXFfZ2V0c2V0YXR0ciwJIm1xX2dldHNldGF0dHIiCX0sIC8qIDI4MiAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJInN5c19rZXhlY19sb2FkIiB9LCAvKiAyODMgKi8KKwl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIsIFNZU193YWl0aWQgfSwgLyogMjg0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NSIJfSwgLyogMjg1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NiIJfSwgLyogMjg2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4NyIJfSwgLyogMjg3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OCIJfSwgLyogMjg4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI4OSIJfSwgLyogMjg5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MCIJfSwgLyogMjkwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MSIJfSwgLyogMjkxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MiIJfSwgLyogMjkyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5MyIJfSwgLyogMjkzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NCIJfSwgLyogMjk0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NSIJfSwgLyogMjk1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NiIJfSwgLyogMjk2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5NyIJfSwgLyogMjk3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OCIJfSwgLyogMjk4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzI5OSIJfSwgLyogMjk5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwMCIJfSwgLyogMzAwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwMSIJfSwgLyogMzAxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwMiIJfSwgLyogMzAyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwMyIJfSwgLyogMzAzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNCIJfSwgLyogMzA0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNSIJfSwgLyogMzA1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNiIJfSwgLyogMzA2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwNyIJfSwgLyogMzA3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwOCIJfSwgLyogMzA4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMwOSIJfSwgLyogMzA5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxMCIJfSwgLyogMzEwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxMSIJfSwgLyogMzExICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxMiIJfSwgLyogMzEyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxMyIJfSwgLyogMzEzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNCIJfSwgLyogMzE0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNSIJfSwgLyogMzE1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNiIJfSwgLyogMzE2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxNyIJfSwgLyogMzE3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOCIJfSwgLyogMzE4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMxOSIJfSwgLyogMzE5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMCIJfSwgLyogMzIwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMSIJfSwgLyogMzIxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMiIJfSwgLyogMzIyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyMyIJfSwgLyogMzIzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNCIJfSwgLyogMzI0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNSIJfSwgLyogMzI1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNiIJfSwgLyogMzI2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyNyIJfSwgLyogMzI3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyOCIJfSwgLyogMzI4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMyOSIJfSwgLyogMzI5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMCIJfSwgLyogMzMwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMSIJfSwgLyogMzMxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMiIJfSwgLyogMzMyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzMyIJfSwgLyogMzMzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNCIJfSwgLyogMzM0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNSIJfSwgLyogMzM1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNiIJfSwgLyogMzM2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzNyIJfSwgLyogMzM3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOCIJfSwgLyogMzM4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzMzOSIJfSwgLyogMzM5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MCIJfSwgLyogMzQwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MSIJfSwgLyogMzQxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MiIJfSwgLyogMzQyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0MyIJfSwgLyogMzQzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NCIJfSwgLyogMzQ0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NSIJfSwgLyogMzQ1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NiIJfSwgLyogMzQ2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0NyIJfSwgLyogMzQ3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OCIJfSwgLyogMzQ4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM0OSIJfSwgLyogMzQ5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MCIJfSwgLyogMzUwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MSIJfSwgLyogMzUxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MiIJfSwgLyogMzUyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1MyIJfSwgLyogMzUzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NCIJfSwgLyogMzU0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NSIJfSwgLyogMzU1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NiIJfSwgLyogMzU2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1NyIJfSwgLyogMzU3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OCIJfSwgLyogMzU4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM1OSIJfSwgLyogMzU5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MCIJfSwgLyogMzYwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MSIJfSwgLyogMzYxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MiIJfSwgLyogMzYyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2MyIJfSwgLyogMzYzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NCIJfSwgLyogMzY0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NSIJfSwgLyogMzY1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NiIJfSwgLyogMzY2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2NyIJfSwgLyogMzY3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OCIJfSwgLyogMzY4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM2OSIJfSwgLyogMzY5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MCIJfSwgLyogMzcwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MSIJfSwgLyogMzcxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MiIJfSwgLyogMzcyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3MyIJfSwgLyogMzczICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NCIJfSwgLyogMzc0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NSIJfSwgLyogMzc1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NiIJfSwgLyogMzc2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3NyIJfSwgLyogMzc3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OCIJfSwgLyogMzc4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM3OSIJfSwgLyogMzc5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MCIJfSwgLyogMzgwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MSIJfSwgLyogMzgxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MiIJfSwgLyogMzgyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4MyIJfSwgLyogMzgzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NCIJfSwgLyogMzg0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NSIJfSwgLyogMzg1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NiIJfSwgLyogMzg2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4NyIJfSwgLyogMzg3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OCIJfSwgLyogMzg4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM4OSIJfSwgLyogMzg5ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MCIJfSwgLyogMzkwICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MSIJfSwgLyogMzkxICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MiIJfSwgLyogMzkyICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5MyIJfSwgLyogMzkzICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NCIJfSwgLyogMzk0ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NSIJfSwgLyogMzk1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NiIJfSwgLyogMzk2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5NyIJfSwgLyogMzk3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OCIJfSwgLyogMzk4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiU1lTXzM5OSIJfSwgLyogMzk5ICovCisKKyNpZiBTWVNfc29ja2V0X3N1YmNhbGwgIT0gNDAwCisgI2Vycm9yIGZpeCBtZQorI2VuZGlmCisJeyA4LAkwLAlwcmludGFyZ3MsCQkic29ja2V0X3N1YmNhbGwifSwgLyogNDAwICovCisJeyAzLAlUTiwJc3lzX3NvY2tldCwJCSJzb2NrZXQiCX0sIC8qIDQwMSAqLworCXsgMywJVE4sCXN5c19iaW5kLAkJImJpbmQiCQl9LCAvKiA0MDIgKi8KKwl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAvKiA0MDMgKi8KKwl7IDIsCVROLAlzeXNfbGlzdGVuLAkJImxpc3RlbiIJfSwgLyogNDA0ICovCisJeyAzLAlUTiwJc3lzX2FjY2VwdCwJCSJhY2NlcHQiCX0sIC8qIDQwNSAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAvKiA0MDYgKi8KKwl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgLyogNDA3ICovCisJeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgLyogNDA4ICovCisJeyA0LAlUTiwJc3lzX3NlbmQsCQkic2VuZCIsIFNZU19zdWJfc2VuZCB9LCAvKiA0MDkgKi8KKwl7IDQsCVROLAlzeXNfcmVjdiwJCSJyZWN2IiwgU1lTX3N1Yl9yZWN2IH0sIC8qIDQxMCAqLworCXsgNiwJVE4sCXN5c19zZW5kdG8sCQkic2VuZHRvIiwgU1lTX3N1Yl9zZW5kdG8gfSwgLyogNDExICovCisJeyA2LAlUTiwJc3lzX3JlY3Zmcm9tLAkJInJlY3Zmcm9tIiwgU1lTX3N1Yl9yZWN2ZnJvbSB9LCAvKiA0MTIgKi8KKwl7IDIsCVROLAlzeXNfc2h1dGRvd24sCQkic2h1dGRvd24iCX0sIC8qIDQxMyAqLworCXsgNSwJVE4sCXN5c19zZXRzb2Nrb3B0LAkJInNldHNvY2tvcHQiCX0sIC8qIDQxNCAqLworCXsgNSwJVE4sCXN5c19nZXRzb2Nrb3B0LAkJImdldHNvY2tvcHQiCX0sIC8qIDQxNSAqLworCXsgNSwJVE4sCXN5c19zZW5kbXNnLAkJInNlbmRtc2ciCX0sIC8qIDQxNiAqLworCXsgNSwJVE4sCXN5c19yZWN2bXNnLAkJInJlY3Ztc2ciCX0sIC8qIDQxNyAqLworCisjaWYgU1lTX2lwY19zdWJjYWxsICE9IDQxOAorICNlcnJvciBmaXggbWUKKyNlbmRpZgorCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MTggKi8KKwl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAvKiA0MTkgKi8KKwl7IDQsCVRJLAlzeXNfc2VtZ2V0LAkJInNlbWdldCIJfSwgLyogNDIwICovCisJeyA0LAlUSSwJc3lzX3NlbWN0bCwJCSJzZW1jdGwiCX0sIC8qIDQyMSAqLworCXsgNSwJVEksCXN5c19zZW10aW1lZG9wLAkJInNlbXRpbWVkb3AiCX0sIC8qIDQyMiAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjMgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI0ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyNSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MjYgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDI3ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQyOCAqLworCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAvKiA0MjkgKi8KKwl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgLyogNDMwICovCisJeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sIC8qIDQzMSAqLworCXsgNCwJVEksCXN5c19tc2djdGwsCQkibXNnY3RsIgl9LCAvKiA0MzIgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDMzICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzNCAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzUgKi8KKwl7IDQsCTAsCXByaW50YXJncywJCSJpcGNfc3ViY2FsbCIJfSwgLyogNDM2ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiaXBjX3N1YmNhbGwiCX0sIC8qIDQzNyAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImlwY19zdWJjYWxsIgl9LCAvKiA0MzggKi8KKwl7IDQsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAvKiA0MzkgKi8KKwl7IDQsCVRJLAlzeXNfc2htZHQsCQkic2htZHQiCQl9LCAvKiA0NDAgKi8KKwl7IDQsCVRJLAlzeXNfc2htZ2V0LAkJInNobWdldCIJfSwgLyogNDQxICovCisJeyA0LAlUSSwJc3lzX3NobWN0bCwJCSJzaG1jdGwiCX0sIC8qIDQ0MiAqLwpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9lcnJub2VudDEuaCBiL3N0cmFjZS9saW51eC94ODZfNjQvZXJybm9lbnQxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg5NDgyNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC94ODZfNjQvZXJybm9lbnQxLmgKQEAgLTAsMCArMSwyIEBACisvKiBPdXIgc2Vjb25kIHNldCBjb21lcyBmcm9tIHRoZSBpMzg2IGZpbGVzLiAgKi8KKyNpbmNsdWRlICIuLi9lcnJub2VudC5oIgpkaWZmIC0tZ2l0IGEvc3RyYWNlL2xpbnV4L3g4Nl82NC9nZW50YWIucGwgYi9zdHJhY2UvbGludXgveDg2XzY0L2dlbnRhYi5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjUxYjQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RyYWNlL2xpbnV4L3g4Nl82NC9nZW50YWIucGwKQEAgLTAsMCArMSw3NyBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjZ2VuZXJhdGUgc3lzY2FsbCB0YWJsZSBmcm9tIGEgdGVtcGxhdGUgZmlsZSAodXN1YWxseSB0aGUgbWFzdGVyIGkzODYgc3lzY2FsbAorI2VudC5oKSBhbmQgdGhlIHg4Nl82NCB1bmlzdGQuaAorJWNvbnYgPSAgKAorCSJleGl0IiA9PiAiX2V4aXQiLAorKTsgCQorCisla25vd24gPSAoCisJIm1tYXAiID0+ICJzeXNfbW1hcCIsCisJInNjaGVkX3lpZWxkIiA9PiAicHJpbnRhcmdzIiwJCispOyAJCisKKyMgb25seSB1c2VkIHdoZW4gdGhlIHRlbXBsYXRlIGZpbGUgaGFzIG5vIGVudHJ5CislYXJncyA9ICgKKwkiYXJjaF9wcmN0bCIgPT4gMiwKKwkidGtpbGwiID0+IDIsCisJImdldHRpZCIgPT4gMCwKKwkicmVhZGFoZWFkIiA9PiAzLAorCSMgc2hvdWxkIGRlY29kZSBhbGwgdGhlc2U6CisJInNldHhhdHRyIiA9PiA1LCAKKwkibHNldHhhdHRyIiA9PiA1LAorCSJmc2V0eGF0dHIiID0+IDUsCisJImdldHhhdHRyIiA9PiA0LAorCSJsZ2V0eGF0dHIiID0+IDQsCisJImZnZXR4YXR0ciIgPT4gNCwKKwkibGlzdHhhdHRyIiA9PiAzLAorCSJsbGlzdHhhdHRyIiA9PiAzLAorCSJmbGlzdHhhdHRyIiA9PiAzLAorCSJyZW1vdmV4YXR0ciIgPT4gMiwKKwkibHJlbW92ZXhhdHRyIiA9PiAyLAorCSJmcmVtb3ZleGF0dHIiID0+IDIsCisJIm1tYXAiID0+IDYsCisJInNjaGVkX3lpZWxkIiA9PiAwLCAKKyk7IAkKKworb3BlbihGLCRBUkdWWzBdKSB8fCBkaWUgImNhbm5vdCBvcGVuIHRlbXBsYXRlIGZpbGUgJEFSR1ZbMF1cbiI7IAorCit3aGlsZSAoPEY+KSB7IAorCW5leHQgdW5sZXNzIC97LzsgCisJcy9cL1wqLipcKlwvLy87IAorCSgkbmFtZSkgPSAvIihbXiJdKykiLzsKKwljaG9tcDsgCisJJGNhbGx7JG5hbWV9ID0gJF87IAorfSAKKworb3BlbihTTCwgIj5zeXNjYWxsbnVtLmgiKSB8fCBkaWUgImNhbm5vdCBjcmVhdGUgc3lzY2FsbG51bS5oXG4iOyAKKworCisKK29wZW4oUywkQVJHVlsxXSkgfHwgZGllICJjYW5ub3Qgb3BlbiBzeXNjYWxsIGZpbGUgJEFSR1ZbMV1cbiI7ICAKK3doaWxlICg8Uz4pIHsgCisJJG5hbWUgPSAiIjsgCisJbmV4dCB1bmxlc3MgICgoJG5hbWUsICRudW0pID0gL2RlZmluZVxzK19fTlJfKFxTKylccysoXGQrKS8pOyAKKwluZXh0IGlmICRuYW1lIGVxICIiOyAKKworCSRuYW1lID0gJGNvbnZ7JG5hbWV9IGlmIGRlZmluZWQoJGNvbnZ7JG5hbWV9KTsgCisKKwlpZiAoIWRlZmluZWQoJGNhbGx7JG5hbWV9KSkgeyAKKwkJdW5sZXNzIChkZWZpbmVkKCRhcmdzeyRuYW1lfSkpIHsgCisJCQlwcmludCBTVERFUlIgInVua25vd24gY2FsbCAkbmFtZSAkbnVtXG4iOyAKKwkJCSRuYSA9IDM7IAorCQl9IGVsc2UgeyAKKwkJCSRuYSA9ICRhcmdzeyRuYW1lfTsgCisJCX0gCQorCQlpZiAoZGVmaW5lZCgka25vd257JG5hbWV9KSkgeyAKKwkJCSRmdW5jID0gJGtub3dueyRuYW1lfTsgCisJCX0gZWxzZSB7IAorCQkJJGZ1bmMgPSAicHJpbnRhcmdzIjsgCisJCX0gCQorCQlwcmludCAiXHR7ICRuYSxcdDAsXHQkZnVuYyxcdFwiJG5hbWVcIiB9LCAvKiAkbnVtICovXG4iOyAKKwl9IGVsc2UgeyAKKwkJcHJpbnQgIiRjYWxseyRuYW1lfSAvKiAkbnVtICovXG4iOyAKKwl9IAorCXByaW50IFNMICIjZGVmaW5lIFNZU18kbmFtZSAkbnVtXG4iCit9IAorCisKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC94ODZfNjQvaW9jdGxlbnQxLmggYi9zdHJhY2UvbGludXgveDg2XzY0L2lvY3RsZW50MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0NGIwYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgveDg2XzY0L2lvY3RsZW50MS5oCkBAIC0wLDAgKzEsMiBAQAorLyogT3VyIHNlY29uZCBzZXQgY29tZXMgZnJvbSB0aGUgaTM4NiBmaWxlcy4gICovCisjaW5jbHVkZSAiLi4vaW9jdGxlbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmFjZS9saW51eC94ODZfNjQvc2lnbmFsZW50MS5oIGIvc3RyYWNlL2xpbnV4L3g4Nl82NC9zaWduYWxlbnQxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWMxOGQ5OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC94ODZfNjQvc2lnbmFsZW50MS5oCkBAIC0wLDAgKzEsMiBAQAorLyogT3VyIHNlY29uZCBzZXQgY29tZXMgZnJvbSB0aGUgaTM4NiBmaWxlcy4gICovCisjaW5jbHVkZSAiLi4vc2lnbmFsZW50LmgiCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaCBiL3N0cmFjZS9saW51eC94ODZfNjQvc3lzY2FsbGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmMTViYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQuaApAQCAtMCwwICsxLDI4MCBAQAorCXsgMywJMCwJc3lzX3JlYWQsCQkicmVhZCIJCX0sICAvKiAwICovCisJeyAzLAkwLAlzeXNfd3JpdGUsCQkid3JpdGUiCQl9LCAgLyogMSAqLworCXsgMywJVEYsCXN5c19vcGVuLAkJIm9wZW4iCQl9LCAgLyogMiAqLworCXsgMSwJMCwJc3lzX2Nsb3NlLAkJImNsb3NlIgkJfSwgIC8qIDMgKi8KKwl7IDIsCVRGLAlzeXNfc3RhdCwJCSJzdGF0IgkJfSwgIC8qIDQgKi8KKwl7IDIsCTAsCXN5c19mc3RhdCwJCSJmc3RhdCIJCX0sICAvKiA1ICovCisJeyAyLAlURiwJc3lzX2xzdGF0LAkJImxzdGF0IgkJfSwgIC8qIDYgKi8KKwl7IDMsCTAsCXN5c19wb2xsLAkJInBvbGwiCQl9LCAgLyogNyAqLworCXsgMywJMCwJc3lzX2xzZWVrLAkJImxzZWVrIgkJfSwgIC8qIDggKi8KKwl7IDYsCTAsCXN5c19tbWFwLAkibW1hcCIgfSwgLyogOSAqLworCXsgMywJMCwJc3lzX21wcm90ZWN0LAkJIm1wcm90ZWN0Igl9LCAgLyogMTAgKi8KKwl7IDIsCTAsCXN5c19tdW5tYXAsCQkibXVubWFwIgl9LCAgLyogMTEgKi8KKwl7IDEsCTAsCXN5c19icmssCQkiYnJrIgkJfSwgIC8qIDEyICovCisJeyA0LAlUUywJc3lzX3J0X3NpZ2FjdGlvbiwJInJ0X3NpZ2FjdGlvbiIgIH0sICAvKiAxMyAqLworCXsgNCwJVFMsCXN5c19ydF9zaWdwcm9jbWFzaywJInJ0X3NpZ3Byb2NtYXNrIn0sICAvKiAxNCAqLworCXsgMSwJVFMsCXByaW50YXJncywJCSJydF9zaWdyZXR1cm4iCX0sICAvKiAxNSAqLworCXsgMywJMCwJc3lzX2lvY3RsLAkJImlvY3RsIgkJfSwgIC8qIDE2ICovCisJeyA1LAkwLAlzeXNfcHJlYWQsCQkicHJlYWQiCQl9LCAgLyogMTcgKi8KKwl7IDUsCTAsCXN5c19wd3JpdGUsCQkicHdyaXRlIgl9LCAgLyogMTggKi8KKwl7IDMsCTAsCXN5c19yZWFkdiwJCSJyZWFkdiIJCX0sICAvKiAxOSAqLworCXsgMywJMCwJc3lzX3dyaXRldiwJCSJ3cml0ZXYiCX0sICAvKiAyMCAqLworCXsgMiwJVEYsCXN5c19hY2Nlc3MsCQkiYWNjZXNzIgl9LCAgLyogMjEgKi8KKwl7IDEsCTAsCXN5c19waXBlLAkJInBpcGUiCQl9LCAgLyogMjIgKi8KKwl7IDUsCTAsCXN5c19zZWxlY3QsCQkic2VsZWN0Igl9LCAgLyogMjMgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF95aWVsZCwJInNjaGVkX3lpZWxkIn0sICAvKiAyNCAqLworCXsgNCwJMCwJc3lzX21yZW1hcCwJCSJtcmVtYXAiCX0sICAvKiAyNSAqLworCXsgMywJMCwJc3lzX21zeW5jLAkJIm1zeW5jIgkJfSwgIC8qIDI2ICovCisJeyAzLAkwLAlzeXNfbWluY29yZSwJCSJtaW5jb3JlIgl9LCAgLyogMjcgKi8KKwl7IDMsCTAsCXN5c19tYWR2aXNlLAkJIm1hZHZpc2UiCX0sICAvKiAyOCAqLworCXsgNCwJVEksCXN5c19zaG1nZXQsCQkic2htZ2V0Igl9LCAgLyogMjkgKi8KKwl7IDQsCVRJLAlzeXNfc2htYXQsCQkic2htYXQiCQl9LCAgLyogMzAgKi8KKwl7IDQsCVRJLAlzeXNfc2htY3RsLAkJInNobWN0bCIJfSwgIC8qIDMxICovCisJeyAxLAkwLAlzeXNfZHVwLAkJImR1cCIJCX0sICAvKiAzMiAqLworCXsgMiwJMCwJc3lzX2R1cDIsCQkiZHVwMiIJCX0sICAvKiAzMyAqLworCXsgMCwJVFMsCXN5c19wYXVzZSwJCSJwYXVzZSIJCX0sICAvKiAzNCAqLworCXsgMiwJMCwJc3lzX25hbm9zbGVlcCwJCSJuYW5vc2xlZXAiCX0sICAvKiAzNSAqLworCXsgMiwJMCwJc3lzX2dldGl0aW1lciwJCSJnZXRpdGltZXIiCX0sICAvKiAzNiAqLworCXsgMSwJMCwJc3lzX2FsYXJtLAkJImFsYXJtIgkJfSwgIC8qIDM3ICovCisJeyAzLAkwLAlzeXNfc2V0aXRpbWVyLAkJInNldGl0aW1lciIJfSwgIC8qIDM4ICovCisJeyAwLAkwLAlzeXNfZ2V0cGlkLAkJImdldHBpZCIJfSwgIC8qIDM5ICovCisJeyA0LAkwLAlzeXNfc2VuZGZpbGUsCQkic2VuZGZpbGUiCX0sICAvKiA0MCAqLworCXsgMywJVE4sCXN5c19zb2NrZXQsCQkic29ja2V0Igl9LCAgLyogNDEgKi8KKwl7IDMsCVROLAlzeXNfY29ubmVjdCwJCSJjb25uZWN0Igl9LCAgLyogNDIgKi8KKwl7IDMsCVROLAlzeXNfYWNjZXB0LAkJImFjY2VwdCIJfSwgIC8qIDQzICovCisJeyA2LAlUTiwJc3lzX3NlbmR0bywJCSJzZW5kdG8iCX0sICAvKiA0NCAqLworCXsgNiwJVE4sCXN5c19yZWN2ZnJvbSwJCSJyZWN2ZnJvbSIJfSwgIC8qIDQ1ICovCisJeyA1LAlUTiwJc3lzX3NlbmRtc2csCQkic2VuZG1zZyIJfSwgIC8qIDQ2ICovCisJeyA1LAlUTiwJc3lzX3JlY3Ztc2csCQkicmVjdm1zZyIJfSwgIC8qIDQ3ICovCisJeyAyLAlUTiwJc3lzX3NodXRkb3duLAkJInNodXRkb3duIgl9LCAgLyogNDggKi8KKwl7IDMsCVROLAlzeXNfYmluZCwJCSJiaW5kIgkJfSwgIC8qIDQ5ICovCisJeyAyLAlUTiwJc3lzX2xpc3RlbiwJCSJsaXN0ZW4iCX0sICAvKiA1MCAqLworCXsgMywJVE4sCXN5c19nZXRzb2NrbmFtZSwJImdldHNvY2tuYW1lIgl9LCAgLyogNTEgKi8KKwl7IDMsCVROLAlzeXNfZ2V0cGVlcm5hbWUsCSJnZXRwZWVybmFtZSIJfSwgIC8qIDUyICovCisJeyA0LAlUTiwJc3lzX3NvY2tldHBhaXIsCQkic29ja2V0cGFpciIJfSwgIC8qIDUzICovCisJeyA1LAlUTiwJc3lzX3NldHNvY2tvcHQsCQkic2V0c29ja29wdCIJfSwgIC8qIDU0ICovCisJeyA1LAlUTiwJc3lzX2dldHNvY2tvcHQsCQkiZ2V0c29ja29wdCIJfSwgIC8qIDU1ICovCisJeyA1LAlUUCwJc3lzX2Nsb25lLAkJImNsb25lIgkJfSwgIC8qIDU2ICovCisJeyAwLAlUUCwJc3lzX2ZvcmssCQkiZm9yayIJCX0sICAvKiA1NyAqLworCXsgMCwJVFAsCXN5c192Zm9yaywJCSJ2Zm9yayIJCX0sICAvKiA1OCAqLworCXsgMywJVEZ8VFAsCXN5c19leGVjdmUsCQkiZXhlY3ZlIgl9LCAgLyogNTkgKi8KKwl7IDEsCVRQLAlzeXNfZXhpdCwJCSJfZXhpdCIJCX0sICAvKiA2MCAqLworCXsgNCwJVFAsCXN5c193YWl0NCwJCSJ3YWl0NCIJCX0sICAvKiA2MSAqLworCXsgMiwJVFMsCXN5c19raWxsLAkJImtpbGwiCQl9LCAgLyogNjIgKi8KKwl7IDEsCTAsCXN5c191bmFtZSwJCSJ1bmFtZSIJCX0sICAvKiA2MyAqLworCXsgNCwJVEksCXN5c19zZW1nZXQsCQkic2VtZ2V0Igl9LCAgLyogNjQgKi8KKwl7IDQsCVRJLAlzeXNfc2Vtb3AsCQkic2Vtb3AiCQl9LCAgLyogNjUgKi8KKwl7IDQsCVRJLAlzeXNfc2VtY3RsLAkJInNlbWN0bCIJfSwgIC8qIDY2ICovCisJeyA0LAlUSSwJc3lzX3NobWR0LAkJInNobWR0IgkJfSwgIC8qIDY3ICovCisJeyA0LAlUSSwJc3lzX21zZ2dldCwJCSJtc2dnZXQiCX0sICAvKiA2OCAqLworCXsgNCwJVEksCXN5c19tc2dzbmQsCQkibXNnc25kIgl9LCAgLyogNjkgKi8KKwl7IDQsCVRJLAlzeXNfbXNncmN2LAkJIm1zZ3JjdiIJfSwgIC8qIDcwICovCisJeyA0LAlUSSwJc3lzX21zZ2N0bCwJCSJtc2djdGwiCX0sICAvKiA3MSAqLworCXsgMywJMCwJc3lzX2ZjbnRsLAkJImZjbnRsIgkJfSwgIC8qIDcyICovCisJeyAyLAkwLAlzeXNfZmxvY2ssCQkiZmxvY2siCQl9LCAgLyogNzMgKi8KKwl7IDEsCTAsCXN5c19mc3luYywJCSJmc3luYyIJCX0sICAvKiA3NCAqLworCXsgMSwJMCwJc3lzX2ZkYXRhc3luYywJCSJmZGF0YXN5bmMiCX0sICAvKiA3NSAqLworCXsgMiwJVEYsCXN5c190cnVuY2F0ZSwJCSJ0cnVuY2F0ZSIJfSwgIC8qIDc2ICovCisJeyAyLAkwLAlzeXNfZnRydW5jYXRlLAkJImZ0cnVuY2F0ZSIJfSwgIC8qIDc3ICovCisJeyAzLAkwLAlzeXNfZ2V0ZGVudHMsCQkiZ2V0ZGVudHMiCX0sICAvKiA3OCAqLworCXsgMiwJVEYsCXN5c19nZXRjd2QsCQkiZ2V0Y3dkIgl9LCAgLyogNzkgKi8KKwl7IDEsCVRGLAlzeXNfY2hkaXIsCQkiY2hkaXIiCQl9LCAgLyogODAgKi8KKwl7IDEsCTAsCXN5c19mY2hkaXIsCQkiZmNoZGlyIgl9LCAgLyogODEgKi8KKwl7IDIsCVRGLAlzeXNfcmVuYW1lLAkJInJlbmFtZSIJfSwgIC8qIDgyICovCisJeyAyLAlURiwJc3lzX21rZGlyLAkJIm1rZGlyIgkJfSwgIC8qIDgzICovCisJeyAxLAlURiwJc3lzX3JtZGlyLAkJInJtZGlyIgkJfSwgIC8qIDg0ICovCisJeyAyLAlURiwJc3lzX2NyZWF0LAkJImNyZWF0IgkJfSwgIC8qIDg1ICovCisJeyAyLAlURiwJc3lzX2xpbmssCQkibGluayIJCX0sICAvKiA4NiAqLworCXsgMSwJVEYsCXN5c191bmxpbmssCQkidW5saW5rIgl9LCAgLyogODcgKi8KKwl7IDIsCVRGLAlzeXNfc3ltbGluaywJCSJzeW1saW5rIgl9LCAgLyogODggKi8KKwl7IDMsCVRGLAlzeXNfcmVhZGxpbmssCQkicmVhZGxpbmsiCX0sICAvKiA4OSAqLworCXsgMiwJVEYsCXN5c19jaG1vZCwJCSJjaG1vZCIJCX0sICAvKiA5MCAqLworCXsgMiwJMCwJc3lzX2ZjaG1vZCwJCSJmY2htb2QiCX0sICAvKiA5MSAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJjaG93biIJCX0sICAvKiA5MiAqLworCXsgMywJMCwJc3lzX2ZjaG93biwJCSJmY2hvd24iCX0sICAvKiA5MyAqLworCXsgMywJVEYsCXN5c19jaG93biwJCSJsY2hvd24iCX0sICAvKiA5NCAqLworCXsgMSwJMCwJc3lzX3VtYXNrLAkJInVtYXNrIgkJfSwgIC8qIDk1ICovCisJeyAyLAkwLAlzeXNfZ2V0dGltZW9mZGF5LAkiZ2V0dGltZW9mZGF5Igl9LCAgLyogOTYgKi8KKwl7IDIsCTAsCXN5c19nZXRybGltaXQsCQkiZ2V0cmxpbWl0Igl9LCAgLyogOTcgKi8KKwl7IDIsCTAsCXN5c19nZXRydXNhZ2UsCQkiZ2V0cnVzYWdlIgl9LCAgLyogOTggKi8KKwl7IDEsCTAsCXN5c19zeXNpbmZvLAkJInN5c2luZm8iCX0sICAvKiA5OSAqLworCXsgMSwJMCwJc3lzX3RpbWVzLAkJInRpbWVzIgkJfSwgIC8qIDEwMCAqLworCXsgNCwJMCwJc3lzX3B0cmFjZSwJCSJwdHJhY2UiCX0sICAvKiAxMDEgKi8KKwl7IDAsCTAsCXN5c19nZXR1aWQsCQkiZ2V0dWlkIgl9LCAgLyogMTAyICovCisJeyAzLAkwLAlzeXNfc3lzbG9nLAkJInN5c2xvZyIJfSwgIC8qIDEwMyAqLworCXsgMCwJMCwJc3lzX2dldGdpZCwJCSJnZXRnaWQiCX0sICAvKiAxMDQgKi8KKwl7IDEsCTAsCXN5c19zZXR1aWQsCQkic2V0dWlkIgl9LCAgLyogMTA1ICovCisJeyAxLAkwLAlzeXNfc2V0Z2lkLAkJInNldGdpZCIJfSwgIC8qIDEwNiAqLworCXsgMCwJMCwJc3lzX2dldGV1aWQsCQkiZ2V0ZXVpZCIJfSwgIC8qIDEwNyAqLworCXsgMCwJMCwJc3lzX2dldGVnaWQsCQkiZ2V0ZWdpZCIJfSwgIC8qIDEwOCAqLworCXsgMiwJMCwJc3lzX3NldHBnaWQsCQkic2V0cGdpZCIJfSwgIC8qIDEwOSAqLworCXsgMCwJMCwJc3lzX2dldHBwaWQsCQkiZ2V0cHBpZCIJfSwgIC8qIDExMCAqLworCXsgMCwJMCwJc3lzX2dldHBncnAsCQkiZ2V0cGdycCIJfSwgIC8qIDExMSAqLworCXsgMCwJMCwJc3lzX3NldHNpZCwJCSJzZXRzaWQiCX0sICAvKiAxMTIgKi8KKwl7IDIsCTAsCXN5c19zZXRyZXVpZCwJCSJzZXRyZXVpZCIJfSwgIC8qIDExMyAqLworCXsgMiwJMCwJc3lzX3NldHJlZ2lkLAkJInNldHJlZ2lkIgl9LCAgLyogMTE0ICovCisJeyAyLAkwLAlzeXNfZ2V0Z3JvdXBzLAkJImdldGdyb3VwcyIJfSwgIC8qIDExNSAqLworCXsgMiwJMCwJc3lzX3NldGdyb3VwcywJCSJzZXRncm91cHMiCX0sICAvKiAxMTYgKi8KKwl7IDMsCTAsCXN5c19zZXRyZXN1aWQsCQkic2V0cmVzdWlkIgl9LCAgLyogMTE3ICovCisJeyAzLAkwLAlzeXNfZ2V0cmVzdWlkLAkJImdldHJlc3VpZCIJfSwgIC8qIDExOCAqLworCXsgMywJMCwJc3lzX3NldHJlc2dpZCwJCSJzZXRyZXNnaWQiCX0sICAvKiAxMTkgKi8KKwl7IDMsCTAsCXN5c19nZXRyZXNnaWQsCQkiZ2V0cmVzZ2lkIgl9LCAgLyogMTIwICovCisJeyAxLAkwLAlzeXNfZ2V0cGdpZCwJCSJnZXRwZ2lkIgl9LCAgLyogMTIxICovCisJeyAxLAkwLAlzeXNfc2V0ZnN1aWQsCQkic2V0ZnN1aWQiCX0sICAvKiAxMjIgKi8KKwl7IDEsCTAsCXN5c19zZXRmc2dpZCwJCSJzZXRmc2dpZCIJfSwgIC8qIDEyMyAqLworCXsgMSwJMCwJc3lzX2dldHNpZCwJCSJnZXRzaWQiCX0sICAvKiAxMjQgKi8KKwl7IDIsCTAsCXN5c19jYXBnZXQsCQkiY2FwZ2V0Igl9LCAgLyogMTI1ICovCisJeyAyLAkwLAlzeXNfY2Fwc2V0LAkJImNhcHNldCIJfSwgIC8qIDEyNiAqLworCXsgMiwJVFMsCXN5c19ydF9zaWdwZW5kaW5nLAkicnRfc2lncGVuZGluZyIJfSwgIC8qIDEyNyAqLworCXsgNCwJVFMsCXN5c19ydF9zaWd0aW1lZHdhaXQsCSJydF9zaWd0aW1lZHdhaXQiCX0sICAvKiAxMjggKi8KKwl7IDMsCVRTLAlzeXNfcnRfc2lncXVldWVpbmZvLCAgICAicnRfc2lncXVldWVpbmZvIgl9LCAgLyogMTI5ICovCisJeyAyLAlUUywJc3lzX3J0X3NpZ3N1c3BlbmQsCSJydF9zaWdzdXNwZW5kIgl9LCAgLyogMTMwICovCisJeyAyLAlUUywJc3lzX3NpZ2FsdHN0YWNrLAkic2lnYWx0c3RhY2siCX0sICAvKiAxMzEgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWUsCQkidXRpbWUiCQl9LCAgLyogMTMyICovCisJeyAzLAlURiwJc3lzX21rbm9kLAkJIm1rbm9kIgkJfSwgIC8qIDEzMyAqLworCXsgMSwJVEYsCXN5c191c2VsaWIsCQkidXNlbGliIgl9LCAgLyogMTM0ICovCisJeyAxLAkwLAlzeXNfcGVyc29uYWxpdHksCSJwZXJzb25hbGl0eSIJfSwgIC8qIDEzNSAqLworCXsgMiwJMCwJc3lzX3VzdGF0LAkJInVzdGF0IgkJfSwgIC8qIDEzNiAqLworCXsgMiwJVEYsCXN5c19zdGF0ZnMsCQkic3RhdGZzIgl9LCAgLyogMTM3ICovCisJeyAyLAkwLAlzeXNfZnN0YXRmcywJCSJmc3RhdGZzIgl9LCAgLyogMTM4ICovCisJeyAzLAkwLAlzeXNfc3lzZnMsCQkic3lzZnMiCQl9LCAgLyogMTM5ICovCisJeyAyLAkwLAlzeXNfZ2V0cHJpb3JpdHksCSJnZXRwcmlvcml0eSIJfSwgIC8qIDE0MCAqLworCXsgMywJMCwJc3lzX3NldHByaW9yaXR5LAkic2V0cHJpb3JpdHkiCX0sICAvKiAxNDEgKi8KKwl7IDAsCTAsCXN5c19zY2hlZF9zZXRwYXJhbSwJInNjaGVkX3NldHBhcmFtIgl9LCAgLyogMTQyICovCisJeyAyLAkwLAlzeXNfc2NoZWRfZ2V0cGFyYW0sCSJzY2hlZF9nZXRwYXJhbSIJfSwgIC8qIDE0MyAqLworCXsgMywJMCwJc3lzX3NjaGVkX3NldHNjaGVkdWxlciwJInNjaGVkX3NldHNjaGVkdWxlciIJfSwgIC8qIDE0NCAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldHNjaGVkdWxlciwJInNjaGVkX2dldHNjaGVkdWxlciIJfSwgIC8qIDE0NSAqLworCXsgMSwJMCwJc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsCSJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4Igl9LCAgLyogMTQ2ICovCisJeyAxLAkwLAlzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwJInNjaGVkX2dldF9wcmlvcml0eV9taW4iCX0sICAvKiAxNDcgKi8KKwl7IDIsCTAsCXN5c19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsCSJzY2hlZF9ycl9nZXRfaW50ZXJ2YWwiCX0sICAvKiAxNDggKi8KKwl7IDIsCTAsCXN5c19tbG9jaywJCSJtbG9jayIJCX0sICAvKiAxNDkgKi8KKwl7IDIsCTAsCXN5c19tdW5sb2NrLAkJIm11bmxvY2siCX0sICAvKiAxNTAgKi8KKwl7IDIsCTAsCXN5c19tbG9ja2FsbCwJCSJtbG9ja2FsbCIJfSwgIC8qIDE1MSAqLworCXsgMCwJMCwJc3lzX211bmxvY2thbGwsCQkibXVubG9ja2FsbCIJfSwgIC8qIDE1MiAqLworCXsgMCwJMCwJc3lzX3ZoYW5ndXAsCQkidmhhbmd1cCIJfSwgIC8qIDE1MyAqLworCXsgMywJMCwJc3lzX21vZGlmeV9sZHQsCQkibW9kaWZ5X2xkdCIJfSwgIC8qIDE1NCAqLworCXsgMiwJVEYsCXN5c19waXZvdHJvb3QsCQkicGl2b3Rfcm9vdCIJfSwgIC8qIDE1NSAqLworCXsgMSwJMCwJc3lzX3N5c2N0bCwJCSJfc3lzY3RsIgl9LCAgLyogMTU2ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicHJjdGwiCQl9LCAgLyogMTU3ICovCisJeyAyLAlUUCwJc3lzX2FyY2hfcHJjdGwsCQkiYXJjaF9wcmN0bCIJfSwgIC8qIDE1OCAqLworCXsgMSwJMCwJc3lzX2FkanRpbWV4LAkJImFkanRpbWV4Igl9LCAgLyogMTU5ICovCisJeyAyLAkwLAlzeXNfc2V0cmxpbWl0LAkJInNldHJsaW1pdCIJfSwgIC8qIDE2MCAqLworCXsgMSwJVEYsCXN5c19jaHJvb3QsCQkiY2hyb290Igl9LCAgLyogMTYxICovCisJeyAwLAkwLAlzeXNfc3luYywJCSJzeW5jIgkJfSwgIC8qIDE2MiAqLworCXsgMSwJVEYsCXN5c19hY2N0LAkJImFjY3QiCQl9LCAgLyogMTYzICovCisJeyAyLAkwLAlzeXNfc2V0dGltZW9mZGF5LAkic2V0dGltZW9mZGF5Igl9LCAgLyogMTY0ICovCisJeyA1LAlURiwJc3lzX21vdW50LAkJIm1vdW50IgkJfSwgIC8qIDE2NSAqLworCXsgMiwJVEYsCXN5c191bW91bnQyLAkJInVtb3VudCIJfSwgLyogMTY2ICovCisJeyAxLAlURiwJc3lzX3N3YXBvbiwJCSJzd2Fwb24iCX0sICAvKiAxNjcgKi8KKwl7IDEsCTAsCXN5c19zd2Fwb2ZmLAkJInN3YXBvZmYiCX0sICAvKiAxNjggKi8KKwl7IDMsCTAsCXN5c19yZWJvb3QsCQkicmVib290Igl9LCAgLyogMTY5ICovCisJeyAyLAkwLAlzeXNfc2V0aG9zdG5hbWUsCSJzZXRob3N0bmFtZSIJfSwgIC8qIDE3MCAqLworCXsgMiwJMCwJc3lzX3NldGRvbWFpbm5hbWUsCSJzZXRkb21haW5uYW1lIgl9LCAgLyogMTcxICovCisJeyAxLAkwLAlzeXNfaW9wbCwJCSJpb3BsIgkJfSwgIC8qIDE3MiAqLworCXsgMywJMCwJc3lzX2lvcGVybSwJCSJpb3Blcm0iCX0sICAvKiAxNzMgKi8KKwl7IDIsCTAsCXN5c19jcmVhdGVfbW9kdWxlLAkiY3JlYXRlX21vZHVsZSIJfSwgIC8qIDE3NCAqLworCXsgMiwJMCwJc3lzX2luaXRfbW9kdWxlLAkiaW5pdF9tb2R1bGUiCX0sICAvKiAxNzUgKi8KKwl7IDEsCTAsCXN5c19kZWxldGVfbW9kdWxlLAkiZGVsZXRlX21vZHVsZSIJfSwgIC8qIDE3NiAqLworCXsgMSwJMCwJc3lzX2dldF9rZXJuZWxfc3ltcywJImdldF9rZXJuZWxfc3ltcyJ9LCAgLyogMTc3ICovCisJeyA1LAkwLAlzeXNfcXVlcnlfbW9kdWxlLAkicXVlcnlfbW9kdWxlIgl9LCAgLyogMTc4ICovCisJeyA0LAkwLAlzeXNfcXVvdGFjdGwsCQkicXVvdGFjdGwiCX0sICAvKiAxNzkgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJuZnNzZXJ2Y3RsIgl9LCAgLyogMTgwICovCisJeyA1LAkwLAlzeXNfZ2V0cG1zZywJCSJnZXRwbXNnIgl9LCAvKiAxODEgKi8KKwl7IDUsCTAsCXN5c19wdXRwbXNnLAkJInB1dHBtc2ciCX0sIC8qIDE4MiAqLworCXsgNSwJMCwJc3lzX2Fmc19zeXNjYWxsLAkiYWZzX3N5c2NhbGwiCX0sICAvKiAxODMgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJ0dXhjYWxsIgl9LCAvKiAxODQgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJzZWN1cml0eSIJfSwgLyogMTg1ICovCisJeyAwLAkwLAlwcmludGFyZ3MsCQkiZ2V0dGlkIgl9LCAvKiAxODYgKi8KKwl7IDQsCTAsCXN5c19yZWFkYWhlYWQsCQkicmVhZGFoZWFkIgl9LCAvKiAxODcgKi8KKwl7IDUsCVRGLAlzeXNfc2V0eGF0dHIsCQkic2V0eGF0dHIiCX0sIC8qIDE4OCAqLworCXsgNSwJVEYsCXN5c19zZXR4YXR0ciwJCSJsc2V0eGF0dHIiCX0sIC8qIDE4OSAqLworCXsgNSwJMCwJc3lzX2ZzZXR4YXR0ciwJCSJmc2V0eGF0dHIiCX0sIC8qIDE5MCAqLworCXsgNCwJVEYsCXN5c19nZXR4YXR0ciwJCSJnZXR4YXR0ciIJfSwgLyogMTkxICovCisJeyA0LAlURiwJc3lzX2dldHhhdHRyLAkJImxnZXR4YXR0ciIJfSwgLyogMTkyICovCisJeyA0LAkwLAlzeXNfZmdldHhhdHRyLAkJImZnZXR4YXR0ciIJfSwgLyogMTkzICovCisJeyAzLAlURiwJc3lzX2xpc3R4YXR0ciwJCSJsaXN0eGF0dHIiCX0sIC8qIDE5NCAqLworCXsgMywJVEYsCXN5c19saXN0eGF0dHIsCQkibGxpc3R4YXR0ciIJfSwgLyogMTk1ICovCisJeyAzLAkwLAlzeXNfZmxpc3R4YXR0ciwJCSJmbGlzdHhhdHRyIgl9LCAvKiAxOTYgKi8KKwl7IDIsCVRGLAlzeXNfcmVtb3ZleGF0dHIsCSJyZW1vdmV4YXR0ciIJfSwgLyogMTk3ICovCisJeyAyLAlURiwJc3lzX3JlbW92ZXhhdHRyLAkibHJlbW92ZXhhdHRyIgl9LCAvKiAxOTggKi8KKwl7IDIsCTAsCXN5c19mcmVtb3ZleGF0dHIsCSJmcmVtb3ZleGF0dHIiCX0sIC8qIDE5OSAqLworCXsgMiwJMCwJc3lzX2tpbGwsCQkidGtpbGwiCQl9LCAvKiAyMDAgKi8KKwl7IDEsCTAsCXN5c190aW1lLAkJInRpbWUiCQl9LCAgLyogMjAxICovCisJeyA1LAkwLAlzeXNfZnV0ZXgsCQkiZnV0ZXgiCQl9LCAvKiAyMDIgKi8KKwl7IDMsCTAsCXN5c19zY2hlZF9zZXRhZmZpbml0eSwJInNjaGVkX3NldGFmZmluaXR5IiB9LC8qIDIwMyAqLworCXsgMywJMCwJc3lzX3NjaGVkX2dldGFmZmluaXR5LAkic2NoZWRfZ2V0YWZmaW5pdHkiIH0sLyogMjA0ICovCisJeyAxLAkwLAlzeXNfc2V0X3RocmVhZF9hcmVhLAkic2V0X3RocmVhZF9hcmVhIiB9LCAvKiAyMDUgKi8KKwl7IDIsCTAsCXN5c19pb19zZXR1cCwJCSJpb19zZXR1cCIJfSwgLyogMjA2ICovCisJeyAxLAkwLAlzeXNfaW9fZGVzdHJveSwJCSJpb19kZXN0cm95Igl9LCAvKiAyMDcgKi8KKwl7IDUsCTAsCXN5c19pb19nZXRldmVudHMsCQkiaW9fZ2V0ZXZlbnRzIgl9LCAvKiAyMDggKi8KKwl7IDMsCTAsCXN5c19pb19zdWJtaXQsCQkiaW9fc3VibWl0Igl9LCAvKiAyMDkgKi8KKwl7IDMsCTAsCXN5c19pb19jYW5jZWwsCQkiaW9fY2FuY2VsIgl9LCAvKiAyMTAgKi8KKwl7IDEsCTAsCXN5c19nZXRfdGhyZWFkX2FyZWEsCSJnZXRfdGhyZWFkX2FyZWEiIH0sIC8qIDIxMSAqLworCXsgNCwJMCwJcHJpbnRhcmdzLAkJImxvb2t1cF9kY29va2llIn0sIC8qIDIxMiAqLworCXsgMSwJMCwJc3lzX2Vwb2xsX2NyZWF0ZSwJImVwb2xsX2NyZWF0ZSIJfSwgLyogMjEzICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiZXBvbGxfY3RsX29sZCIJfSwgLyogMjE0ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkiZXBvbGxfd2FpdF9vbGQifSwgLyogMjE1ICovCisJeyA1LAkwLAlzeXNfcmVtYXBfZmlsZV9wYWdlcywJInJlbWFwX2ZpbGVfcGFnZXMifSwgLyogMjE2ICovCisJeyA0LAkwLAlzeXNfZ2V0ZGVudHM2NCwJCSJnZXRkZW50czY0Igl9LCAvKiAyMTcgKi8KKwl7IDEsCTAsCXByaW50YXJncywJCSJzZXRfdGlkX2FkZHJlc3MifSwgLyogMjE4ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkicmVzdGFydF9zeXNjYWxsIn0sIC8qIDIxOSAqLworCXsgNSwJVEksCXN5c19zZW10aW1lZG9wLAkJInNlbXRpbWVkb3AiCX0sIC8qIDIyMCAqLworCXsgNCwJMCwJc3lzX2ZhZHZpc2U2NF82NCwJImZhZHZpc2U2NCIJfSwgLyogMjIxICovCisJeyAzLAkwLAlzeXNfdGltZXJfY3JlYXRlLAkidGltZXJfY3JlYXRlIgl9LCAvKiAyMjIgKi8KKwl7IDQsCTAsCXN5c190aW1lcl9zZXR0aW1lLAkidGltZXJfc2V0dGltZSIJfSwgLyogMjIzICovCisJeyAyLAkwLAlzeXNfdGltZXJfZ2V0dGltZSwJInRpbWVyX2dldHRpbWUiCX0sIC8qIDIyNCAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2dldG92ZXJydW4sCSJ0aW1lcl9nZXRvdmVycnVuIn0sIC8qIDIyNSAqLworCXsgMSwJMCwJc3lzX3RpbWVyX2RlbGV0ZSwJInRpbWVyX2RlbGV0ZSIJfSwgLyogMjI2ICovCisJeyAyLAkwLAlzeXNfY2xvY2tfc2V0dGltZSwJImNsb2NrX3NldHRpbWUiCX0sIC8qIDIyNyAqLworCXsgMiwJMCwJc3lzX2Nsb2NrX2dldHRpbWUsCSJjbG9ja19nZXR0aW1lIgl9LCAvKiAyMjggKi8KKwl7IDIsCTAsCXN5c19jbG9ja19nZXRyZXMsCSJjbG9ja19nZXRyZXMiCX0sIC8qIDIyOSAqLworCXsgNCwJMCwJc3lzX2Nsb2NrX25hbm9zbGVlcCwJImNsb2NrX25hbm9zbGVlcCJ9LCAvKiAyMzAgKi8KKwl7IDEsCVRQLAlzeXNfZXhpdCwJCSJleGl0X2dyb3VwIgl9LCAvKiAyMzEgKi8KKwl7IDUsCTAsCXN5c19lcG9sbF93YWl0LAkJImVwb2xsX3dhaXQiCX0sIC8qIDIzMiAqLworCXsgNSwJMCwJc3lzX2Vwb2xsX2N0bCwJCSJlcG9sbF9jdGwiCX0sIC8qIDIzMyAqLworCXsgMywJVFMsCXN5c190Z2tpbGwsCQkidGdraWxsIgl9LCAvKiAyMzQgKi8KKwl7IDIsCVRGLAlzeXNfdXRpbWVzLAkJInV0aW1lcyIJfSwgLyogMjM1ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkidnNlcnZlciIJfSwgLyogMjM2ICovCisJeyA2LAkwLAlzeXNfbWJpbmQsCQkibWJpbmQiCQl9LCAvKiAyMzcgKi8KKwl7IDMsCTAsCXN5c19zZXRfbWVtcG9saWN5LAkic2V0X21lbXBvbGljeSIJfSwgLyogMjM4ICovCisJeyA1LAkwLAlzeXNfZ2V0X21lbXBvbGljeSwJImdldF9tZW1wb2xpY3kiCX0sIC8qIDIzOSAqLworCXsgNCwJMCwJc3lzX21xX29wZW4sCQkibXFfb3BlbiIJfSwgLyogMjQwICovCisJeyAxLAkwLAlzeXNfbXFfdW5saW5rLAkJIm1xX3VubGluayIJfSwgLyogMjQxICovCisJeyA1LAkwLAlzeXNfbXFfdGltZWRzZW5kLAkibXFfdGltZWRzZW5kIgl9LCAvKiAyNDIgKi8KKwl7IDUsCTAsCXN5c19tcV90aW1lZHJlY2VpdmUsCSJtcV90aW1lZHJlY2VpdmUiIH0sIC8qIDI0MyAqLworCXsgMiwJMCwJc3lzX21xX25vdGlmeSwJCSJtcV9ub3RpZnkiCX0sIC8qIDI0NCAqLworCXsgMywJMCwJc3lzX21xX2dldHNldGF0dHIsCSJtcV9nZXRzZXRhdHRyIgl9LCAvKiAyNDUgKi8KKwl7IDUsCTAsCXByaW50YXJncywJCSJrZXhlY19sb2FkIgl9LCAvKiAyNDYgKi8KKwl7IDUsCVRQLAlzeXNfd2FpdGlkLAkJIndhaXRpZCIJfSwgLyogMjQ3ICovCisJeyA1LAkwLAlwcmludGFyZ3MsCQkiYWRkX2tleSIJfSwgLyogMjQ4ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkicmVxdWVzdF9rZXkiCX0sIC8qIDI0OSAqLworCXsgNSwJMCwJcHJpbnRhcmdzLAkJImtleWN0bCIJfSwgLyogMjUwICovCisJeyAzLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX3NldCIJfSwgLyogMjUxICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkiaW9wcmlvX2dldCIJfSwgLyogMjUyICovCisJeyAwLAlURCwJcHJpbnRhcmdzLAkJImlub3RpZnlfaW5pdCIJfSwgLyogMjUzICovCisJeyAzLAlURCwJc3lzX2lub3RpZnlfYWRkX3dhdGNoLAkiaW5vdGlmeV9hZGRfd2F0Y2giIH0sIC8qIDI1NCAqLworCXsgMiwJVEQsCXN5c19pbm90aWZ5X3JtX3dhdGNoLAkiaW5vdGlmeV9ybV93YXRjaCIgfSwgLyogMjU1ICovCisJeyA0LAkwLAlwcmludGFyZ3MsCQkibWlncmF0ZV9wYWdlcyIJfSwgLyogMjU2ICovCisJeyA0LAlURHxURiwJc3lzX29wZW5hdCwJCSJvcGVuYXQiCX0sIC8qIDI1NyAqLworCXsgMywJVER8VEYsCXN5c19ta2RpcmF0LAkJIm1rZGlyYXQiCX0sIC8qIDI1OCAqLworCXsgNCwJVER8VEYsCXN5c19ta25vZGF0LAkJIm1rbm9kYXQiCX0sIC8qIDI1OSAqLworCXsgNSwJVER8VEYsCXN5c19mY2hvd25hdCwJCSJmY2hvd25hdCIJfSwgLyogMjYwICovCisJeyAzLAlURHxURiwJc3lzX2Z1dGltZXNhdCwJCSJmdXRpbWVzYXQiCX0sIC8qIDI2MSAqLworCXsgNCwJVER8VEQsCXN5c19uZXdmc3RhdGF0LAkJIm5ld2ZzdGF0YXQiCX0sIC8qIDI2MiAqLworCXsgMywJVER8VEYsCXN5c191bmxpbmthdCwJCSJ1bmxpbmthdCIJfSwgLyogMjYzICovCisJeyA0LAlURHxURiwJc3lzX3JlbmFtZWF0LAkJInJlbmFtZWF0Igl9LCAvKiAyNjQgKi8KKwl7IDUsCVREfFRGLAlzeXNfbGlua2F0LAkJImxpbmthdCIJfSwgLyogMjY1ICovCisJeyAzLAlURHxURiwJc3lzX3N5bWxpbmthdCwJCSJzeW1saW5rYXQiCX0sIC8qIDI2NiAqLworCXsgNCwJVER8VEYsCXN5c19yZWFkbGlua2F0LAkJInJlYWRsaW5rYXQiCX0sIC8qIDI2NyAqLworCXsgMywJVER8VEYsCXN5c19mY2htb2RhdCwJCSJmY2htb2RhdCIJfSwgLyogMjY4ICovCisJeyAzLAlURHxURiwJc3lzX2ZhY2Nlc3NhdCwJCSJmYWNjZXNzYXQiCX0sIC8qIDI2OSAqLworCXsgNiwJVEQsCXN5c19wc2VsZWN0NiwJCSJwc2VsZWN0NiIJfSwgLyogMjcwICovCisJeyA1LAlURCwJc3lzX3Bwb2xsLAkJInBwb2xsIgkJfSwgLyogMjcxICovCisJeyAxLAlUUCwJc3lzX3Vuc2hhcmUsCQkidW5zaGFyZSIJfSwgLyogMjcyICovCisJeyAyLAkwLAlwcmludGFyZ3MsCQkic2V0X3JvYnVzdF9saXN0IiB9LCAvKiAyNzMgKi8KKwl7IDMsCTAsCXByaW50YXJncywJCSJnZXRfcm9idXN0X2xpc3QiIH0sIC8qIDI3NCAqLworCXsgNiwJVEQsCXByaW50YXJncywJCSJzcGxpY2UiCX0sIC8qIDI3NSAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJzeW5jX2ZpbGVfcmFuZ2UiIH0sIC8qIDI3NiAqLworCXsgNCwJVEQsCXByaW50YXJncywJCSJ0ZWUiCQl9LCAvKiAyNzcgKi8KKwl7IDQsCVRELAlwcmludGFyZ3MsCQkidm1zcGxpY2UiCX0sIC8qIDI3OCAqLworCXsgNiwJMCwJc3lzX21vdmVfcGFnZXMsCQkibW92ZV9wYWdlcyIJfSwgLyogMjc5ICovCmRpZmYgLS1naXQgYS9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmggYi9zdHJhY2UvbGludXgveDg2XzY0L3N5c2NhbGxlbnQxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZiZjE0MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cmFjZS9saW51eC94ODZfNjQvc3lzY2FsbGVudDEuaApAQCAtMCwwICsxLDcgQEAKKy8qIE91ciBzZWNvbmQgc2V0IGNvbWVzIGZyb20gdGhlIGkzODYgZmlsZXMuCisgICBPbmx5IGEgY291cGxlIG9mIGNhbGxzIHdlIGNhbm5vdCBzdXBwb3J0IHdpdGhvdXQgdGhlIGkzODYgaGVhZGVycy4gICovCisKKyNkZWZpbmUgc3lzX29sZHN0YXQgcHJpbnRhcmdzCisjZGVmaW5lIHN5c19vbGRmc3RhdCBwcmludGFyZ3MKKyNkZWZpbmUgc3lzX29sZGxzdGF0IHByaW50YXJncworI2luY2x1ZGUgIi4uL3N5c2NhbGxlbnQuaCIKZGlmZiAtLWdpdCBhL3N0cmVhbS5jIGIvc3RyZWFtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJkZDZmNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cmVhbS5jCkBAIC0wLDAgKzEsMTMyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogc3RyZWFtLmMsdiAxLjI0IDIwMDUvMDYvMDEgMTk6MjI6MDcgcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgorCisjaWZkZWYgSEFWRV9QT0xMX0gKKyNpbmNsdWRlIDxwb2xsLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19QT0xMX0gKKyNpbmNsdWRlIDxzeXMvcG9sbC5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TVFJPUFRTX0gKKyNpbmNsdWRlIDxzdHJvcHRzLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19DT05GX0gKKyNpbmNsdWRlIDxzeXMvY29uZi5oPgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU1RSRUFNX0gKKyNpbmNsdWRlIDxzeXMvc3RyZWFtLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19USUhEUl9ICisjaW5jbHVkZSA8c3lzL3RpaGRyLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9TWVNfU1RSRUFNX0gpIHx8IGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoRlJFRUJTRCkKKworI2lmbmRlZiBIQVZFX1NUUk9QVFNfSAorI2RlZmluZSBSU19ISVBSSSAxCitzdHJ1Y3Qgc3RyYnVmIHsKKyAgICAgICAgaW50ICAgICBtYXhsZW47ICAgICAgICAgICAgICAgICAvKiBuby4gb2YgYnl0ZXMgaW4gYnVmZmVyICovCisgICAgICAgIGludCAgICAgbGVuOyAgICAgICAgICAgICAgICAgICAgLyogbm8uIG9mIGJ5dGVzIHJldHVybmVkICovCisgICAgICAgIGNoYXIgICAgKmJ1ZjsgICAgICAgICAgICAgICAgICAgLyogcG9pbnRlciB0byBkYXRhICovCit9OworI2RlZmluZSBNT1JFQ1RMIDEKKyNkZWZpbmUgTU9SRURBVEEgMgorI2VuZGlmIC8qICFIQVZFX1NUUk9QVFNfSCAqLworCisjaWZkZWYgSEFWRV9TWVNfVElVU0VSX0gKKyNpbmNsdWRlIDxzeXMvdGl1c2VyLmg+CisjaW5jbHVkZSA8c3lzL3NvY2ttb2QuaD4KKyNpbmNsdWRlIDxzeXMvdGltb2QuaD4KKyNlbmRpZiAvKiBIQVZFX1NZU19USVVTRVJfSCAqLworCisjaWZuZGVmIEZSRUVCU0QKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtc2dmbGFnc1tdID0geworCXsgUlNfSElQUkksCSJSU19ISVBSSSIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworCitzdGF0aWMgdm9pZAorcHJpbnRzdHJidWYodGNwLCBzYnAsIGdldHRpbmcpCitzdHJ1Y3QgdGNiICp0Y3A7CitzdHJ1Y3Qgc3RyYnVmICpzYnA7CitpbnQgZ2V0dGluZzsKK3sKKwlpZiAoc2JwLT5tYXhsZW4gPT0gLTEgJiYgZ2V0dGluZykKKwkJdHByaW50Zigie21heGxlbj0tMX0iKTsKKwllbHNlIHsKKwkJdHByaW50ZigieyIpOworCQlpZiAoZ2V0dGluZykKKwkJCXRwcmludGYoIm1heGxlbj0lZCwgIiwgc2JwLT5tYXhsZW4pOworCQl0cHJpbnRmKCJsZW49JWQsIGJ1Zj0iLCBzYnAtPmxlbik7CisJCXByaW50c3RyKHRjcCwgKHVuc2lnbmVkIGxvbmcpIHNicC0+YnVmLCBzYnAtPmxlbik7CisJCXRwcmludGYoIn0iKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkCitwcmludHN0cmJ1ZmFyZyh0Y3AsIGFyZywgZ2V0dGluZykKK3N0cnVjdCB0Y2IgKnRjcDsKK2ludCBhcmc7CitpbnQgZ2V0dGluZzsKK3sKKwlzdHJ1Y3Qgc3RyYnVmIGJ1ZjsKKworCWlmIChhcmcgPT0gMCkKKwkJdHByaW50ZigiTlVMTCIpOworCWVsc2UgaWYgKHVtb3ZlKHRjcCwgYXJnLCAmYnVmKSA8IDApCisJCXRwcmludGYoInsuLi59Iik7CisJZWxzZQorCQlwcmludHN0cmJ1Zih0Y3AsICZidWYsIGdldHRpbmcpOworCXRwcmludGYoIiwgIik7Cit9CisKK2ludAorc3lzX3B1dG1zZyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IGk7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQkvKiBmZCAqLworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQkvKiBjb250cm9sIGFuZCBkYXRhICovCisJCWZvciAoaSA9IDE7IGkgPCAzOyBpKyspCisJCQlwcmludHN0cmJ1ZmFyZyh0Y3AsIHRjcC0+dV9hcmdbaV0sIDApOworCQkvKiBmbGFncyAqLworCQlwcmludGZsYWdzKG1zZ2ZsYWdzLCB0Y3AtPnVfYXJnWzNdLCAiUlNfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19nZXRtc2codGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWludCBpLCBmbGFnczsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCS8qIGZkICovCisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgsICUjbHgsICUjbHgiLAorCQkJCXRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pOworCQkJcmV0dXJuIDA7CisJCX0KKwkJLyogY29udHJvbCBhbmQgZGF0YSAqLworCQlmb3IgKGkgPSAxOyBpIDwgMzsgaSsrKQorCQkJcHJpbnRzdHJidWZhcmcodGNwLCB0Y3AtPnVfYXJnW2ldLCAxKTsKKwkJLyogcG9pbnRlciB0byBmbGFncyAqLworCQlpZiAodGNwLT51X2FyZ1szXSA9PSAwKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIGlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZmbGFncykgPCAwKQorCQkJdHByaW50ZigiWz9dIik7CisJCWVsc2UgeworCQkJdHByaW50ZigiWyIpOworCQkJcHJpbnRmbGFncyhtc2dmbGFncywgZmxhZ3MsICJSU18/Pz8iKTsKKwkJCXRwcmludGYoIl0iKTsKKwkJfQorCQkvKiBkZWNvZGUgcmV0dXJuIHZhbHVlICovCisJCXN3aXRjaCAodGNwLT51X3J2YWwpIHsKKwkJY2FzZSBNT1JFQ1RMOgorCQkJdGNwLT5hdXhzdHIgPSAiTU9SRUNUTCI7CisJCQlicmVhazsKKwkJY2FzZSBNT1JFQ1RMfE1PUkVEQVRBOgorCQkJdGNwLT5hdXhzdHIgPSAiTU9SRUNUTHxNT1JFREFUQSI7CisJCQlicmVhazsKKwkJY2FzZSBNT1JFREFUQToKKwkJCXRjcC0+YXV4c3RyID0gIk1PUkVDVEwiOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl0Y3AtPmF1eHN0ciA9IE5VTEw7CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm4gUlZBTF9IRVggfCBSVkFMX1NUUjsKK30KKworI2lmIGRlZmluZWQgU1lTX3B1dHBtc2cgfHwgZGVmaW5lZCBTWVNfZ2V0cG1zZworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHBtc2dmbGFnc1tdID0geworI2lmZGVmIE1TR19ISVBSSQorCXsgTVNHX0hJUFJJLAkiTVNHX0hJUFJJIgl9LAorI2VuZGlmCisjaWZkZWYgTVNHX0FORAorCXsgTVNHX0FOWSwJIk1TR19BTlkiCX0sCisjZW5kaWYKKyNpZmRlZiBNU0dfQkFORAorCXsgTVNHX0JBTkQsCSJNU0dfQkFORCIJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworI2VuZGlmCisKKyNpZmRlZiBTWVNfcHV0cG1zZworaW50CitzeXNfcHV0cG1zZyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IGk7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQkvKiBmZCAqLworCQl0cHJpbnRmKCIlbGQsICIsIHRjcC0+dV9hcmdbMF0pOworCQkvKiBjb250cm9sIGFuZCBkYXRhICovCisJCWZvciAoaSA9IDE7IGkgPCAzOyBpKyspCisJCQlwcmludHN0cmJ1ZmFyZyh0Y3AsIHRjcC0+dV9hcmdbaV0sIDApOworCQkvKiBiYW5kICovCisJCXRwcmludGYoIiVsZCwgIiwgdGNwLT51X2FyZ1szXSk7CisJCS8qIGZsYWdzICovCisJCXByaW50ZmxhZ3MocG1zZ2ZsYWdzLCB0Y3AtPnVfYXJnWzRdLCAiTVNHXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBTWVNfcHV0cG1zZyAqLworCisjaWZkZWYgU1lTX2dldHBtc2cKK2ludAorc3lzX2dldHBtc2codGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWludCBpLCBmbGFnczsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCS8qIGZkICovCisJCXRwcmludGYoIiVsdSwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgsICUjbHgsICUjbHgsICUjbHgiLCB0Y3AtPnVfYXJnWzFdLAorCQkJCXRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10sIHRjcC0+dV9hcmdbNF0pOworCQkJcmV0dXJuIDA7CisJCX0KKwkJLyogY29udHJvbCBhbmQgZGF0YSAqLworCQlmb3IgKGkgPSAxOyBpIDwgMzsgaSsrKQorCQkJcHJpbnRzdHJidWZhcmcodGNwLCB0Y3AtPnVfYXJnW2ldLCAxKTsKKwkJLyogcG9pbnRlciB0byBiYW5kICovCisJCXByaW50bnVtKHRjcCwgdGNwLT51X2FyZ1szXSwgIiVkIik7CisJCXRwcmludGYoIiwgIik7CisJCS8qIHBvaW50ZXIgdG8gZmxhZ3MgKi8KKwkJaWYgKHRjcC0+dV9hcmdbNF0gPT0gMCkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzRdLCAmZmxhZ3MpIDwgMCkKKwkJCXRwcmludGYoIls/XSIpOworCQllbHNlIHsKKwkJCXRwcmludGYoIlsiKTsKKwkJCXByaW50ZmxhZ3MocG1zZ2ZsYWdzLCBmbGFncywgIk1TR18/Pz8iKTsKKwkJCXRwcmludGYoIl0iKTsKKwkJfQorCQkvKiBkZWNvZGUgcmV0dXJuIHZhbHVlICovCisJCXN3aXRjaCAodGNwLT51X3J2YWwpIHsKKwkJY2FzZSBNT1JFQ1RMOgorCQkJdGNwLT5hdXhzdHIgPSAiTU9SRUNUTCI7CisJCQlicmVhazsKKwkJY2FzZSBNT1JFQ1RMfE1PUkVEQVRBOgorCQkJdGNwLT5hdXhzdHIgPSAiTU9SRUNUTHxNT1JFREFUQSI7CisJCQlicmVhazsKKwkJY2FzZSBNT1JFREFUQToKKwkJCXRjcC0+YXV4c3RyID0gIk1PUkVDVEwiOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl0Y3AtPmF1eHN0ciA9IE5VTEw7CisJCQlicmVhazsKKwkJfQorCX0KKwlyZXR1cm4gUlZBTF9IRVggfCBSVkFMX1NUUjsKK30KKyNlbmRpZiAvKiBTWVNfZ2V0cG1zZyAqLworCisjZW5kaWYgLyogIUZSRUVCU0QgKi8KKworCisjaWZkZWYgSEFWRV9TWVNfUE9MTF9ICisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwb2xsZmxhZ3NbXSA9IHsKKyNpZmRlZiBQT0xMSU4KKwl7IFBPTExJTiwJIlBPTExJTiIJfSwKKwl7IFBPTExQUkksCSJQT0xMUFJJIgl9LAorCXsgUE9MTE9VVCwJIlBPTExPVVQiCX0sCisjaWZkZWYgUE9MTFJETk9STQorCXsgUE9MTFJETk9STSwJIlBPTExSRE5PUk0iCX0sCisjZW5kaWYKKyNpZmRlZiBQT0xMV1JOT1JNCisJeyBQT0xMV1JOT1JNLAkiUE9MTFdSTk9STSIJfSwKKyNlbmRpZgorI2lmZGVmIFBPTExSREJBTkQKKwl7IFBPTExSREJBTkQsCSJQT0xMUkRCQU5EIgl9LAorI2VuZGlmCisjaWZkZWYgUE9MTFdSQkFORAorCXsgUE9MTFdSQkFORCwJIlBPTExXUkJBTkQiCX0sCisjZW5kaWYKKwl7IFBPTExFUlIsCSJQT0xMRVJSIgl9LAorCXsgUE9MTEhVUCwJIlBPTExIVVAiCX0sCisJeyBQT0xMTlZBTCwJIlBPTExOVkFMIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBpbnQKK2RlY29kZV9wb2xsKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlzdHJ1Y3QgcG9sbGZkIGZkczsKKwl1bnNpZ25lZCBuZmRzOworCXVuc2lnbmVkIGxvbmcgc2l6ZSwgc3RhcnQsIGN1ciwgZW5kLCBhYmJyZXZfZW5kOworCWludCBmYWlsZWQgPSAwOworCisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXJldHVybiAwOworCisJbmZkcyA9IHRjcC0+dV9hcmdbMV07CisJc2l6ZSA9IHNpemVvZihmZHMpICogbmZkczsKKwlzdGFydCA9IHRjcC0+dV9hcmdbMF07CisJZW5kID0gc3RhcnQgKyBzaXplOworCWlmIChuZmRzID09IDAgfHwgc2l6ZSAvIHNpemVvZihmZHMpICE9IG5mZHMgfHwgZW5kIDwgc3RhcnQpIHsKKwkJdHByaW50ZigiJSNseCwgJWQsICIsCisJCQl0Y3AtPnVfYXJnWzBdLCBuZmRzKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmIChhYmJyZXYodGNwKSkgeworCQlhYmJyZXZfZW5kID0gc3RhcnQgKyBtYXhfc3RybGVuICogc2l6ZW9mKGZkcyk7CisJCWlmIChhYmJyZXZfZW5kIDwgc3RhcnQpCisJCQlhYmJyZXZfZW5kID0gZW5kOworCX0gZWxzZSB7CisJCWFiYnJldl9lbmQgPSBlbmQ7CisJfQorCXRwcmludGYoIlsiKTsKKwlmb3IgKGN1ciA9IHN0YXJ0OyBjdXIgPCBlbmQ7IGN1ciArPSBzaXplb2YoZmRzKSkgeworCQlpZiAoY3VyID4gc3RhcnQpCisJCQl0cHJpbnRmKCIsICIpOworCQlpZiAoY3VyID49IGFiYnJldl9lbmQpIHsKKwkJCXRwcmludGYoIi4uLiIpOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKHVtb3Zlbih0Y3AsIGN1ciwgc2l6ZW9mIGZkcywgKGNoYXIgKikgJmZkcykgPCAwKSB7CisJCQl0cHJpbnRmKCI/Iik7CisJCQlmYWlsZWQgPSAxOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKGZkcy5mZCA8IDApIHsKKwkJCXRwcmludGYoIntmZD0lZH0iLCBmZHMuZmQpOworCQkJY29udGludWU7CisJCX0KKwkJdHByaW50Zigie2ZkPSVkLCBldmVudHM9IiwgZmRzLmZkKTsKKwkJcHJpbnRmbGFncyhwb2xsZmxhZ3MsIGZkcy5ldmVudHMsICJQT0xMPz8/Iik7CisJCWlmICghc3lzZXJyb3IodGNwKSAmJiBmZHMucmV2ZW50cykgeworCQkJdHByaW50ZigiLCByZXZlbnRzPSIpOworCQkJcHJpbnRmbGFncyhwb2xsZmxhZ3MsIGZkcy5yZXZlbnRzLCAiUE9MTD8/PyIpOworCQl9CisJCXRwcmludGYoIn0iKTsKKwl9CisJdHByaW50ZigiXSIpOworCWlmIChmYWlsZWQpCisJCXRwcmludGYoIiAlI2x4Iiwgc3RhcnQpOworCXRwcmludGYoIiwgJWQsICIsIG5mZHMpOworCXJldHVybiAwOworfQorCitpbnQKK3N5c19wb2xsKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpbnQgcmMgPSBkZWNvZGVfcG9sbCh0Y3ApOworCWlmIChleGl0aW5nKHRjcCkpIHsKKyNpZmRlZiBJTkZUSU0KKwkJaWYgKHRjcC0+dV9hcmdbMl0gPT0gSU5GVElNKQorCQkJdHByaW50ZigiSU5GVElNIik7CisJCWVsc2UKKyNlbmRpZgorCQkJdHByaW50ZigiJWxkIiwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiByYzsKK30KKworI2lmZGVmIExJTlVYCitpbnQKK3N5c19wcG9sbChzdHJ1Y3QgdGNiICp0Y3ApCit7CisJaW50IHJjID0gZGVjb2RlX3BvbGwodGNwKTsKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCXN0cnVjdCB0aW1lc3BlYyB0czsKKwkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJnRzKSA9PSAwKQorCQkJdHByaW50ZigieyVsdSwgJWx1fSwgIiwgdHMudHZfc2VjLCB0cy50dl9uc2VjKTsKKwkJZWxzZQorCQkJdHByaW50Zigiey4uLn0sICIpOworCQlwcmludF9zaWdzZXQodGNwLCB0Y3AtPnVfYXJnWzNdLCAwKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzRdKTsKKwl9CisJcmV0dXJuIHJjOworfQorI2VuZGlmCisKKyNlbHNlIC8qICFIQVZFX1NZU19QT0xMX0ggKi8KK2ludAorc3lzX3BvbGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIAlyZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoTElOVVgpICYmICFkZWZpbmVkKEZSRUVCU0QpCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzdHJlYW1fZmx1c2hfb3B0aW9uc1tdID0geworCXsgRkxVU0hSLAkiRkxVU0hSIgl9LAorCXsgRkxVU0hXLAkiRkxVU0hXIgl9LAorCXsgRkxVU0hSVywJIkZMVVNIUlciCX0sCisjaWZkZWYgRkxVU0hCQU5ECisJeyBGTFVTSEJBTkQsCSJGTFVTSEJBTkQiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN0cmVhbV9zZXRzaWdfZmxhZ3NbXSA9IHsKKwl7IFNfSU5QVVQsCSJTX0lOUFVUIgl9LAorCXsgU19ISVBSSSwJIlNfSElQUkkiCX0sCisJeyBTX09VVFBVVCwJIlNfT1VUUFVUIgl9LAorCXsgU19NU0csCSJTX01TRyIJCX0sCisjaWZkZWYgU19FUlJPUgorCXsgU19FUlJPUiwJIlNfRVJST1IiCX0sCisjZW5kaWYKKyNpZmRlZiBTX0hBTkdVUAorCXsgU19IQU5HVVAsCSJTX0hBTkdVUCIJfSwKKyNlbmRpZgorI2lmZGVmIFNfUkROT1JNCisJeyBTX1JETk9STSwJIlNfUkROT1JNIgl9LAorI2VuZGlmCisjaWZkZWYgU19XUk5PUk0KKwl7IFNfV1JOT1JNLAkiU19XUk5PUk0iCX0sCisjZW5kaWYKKyNpZmRlZiBTX1JEQkFORAorCXsgU19SREJBTkQsCSJTX1JEQkFORCIJfSwKKyNlbmRpZgorI2lmZGVmIFNfV1JCQU5ECisJeyBTX1dSQkFORCwJIlNfV1JCQU5EIgl9LAorI2VuZGlmCisjaWZkZWYgU19CQU5EVVJHCisJeyBTX0JBTkRVUkcsCSJTX0JBTkRVUkciCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN0cmVhbV9yZWFkX29wdGlvbnNbXSA9IHsKKwl7IFJOT1JNLAkiUk5PUk0iCQl9LAorCXsgUk1TR0QsCSJSTVNHRCIJCX0sCisJeyBSTVNHTiwJIlJNU0dOIgkJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN0cmVhbV9yZWFkX2ZsYWdzW10gPSB7CisjaWZkZWYgUlBST1REQVQKKwl7IFJQUk9UREFULAkiUlBST1REQVQiCX0sCisjZW5kaWYKKyNpZmRlZiBSUFJPVERJUworCXsgUlBST1RESVMsCSJSUFJPVERJUyIJfSwKKyNlbmRpZgorI2lmZGVmIFJQUk9UTk9STQorCXsgUlBST1ROT1JNLAkiUlBST1ROT1JNIgl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKKyNpZm5kZWYgUk1PREVNQVNLCisjZGVmaW5lIFJNT0RFTUFTSyAofjApCisjZW5kaWYKKworI2lmZGVmIElfU1dST1BUCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3RyZWFtX3dyaXRlX2ZsYWdzW10gPSB7CisJeyBTTkRaRVJPLAkiU05EWkVSTyIJfSwKKwl7IFNORFBJUEUsCSJTTkRQSVBFIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworI2VuZGlmIC8qIElfU1dST1BUICovCisKKyNpZmRlZiBJX0FUTUFSSworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN0cmVhbV9hdG1hcmtfb3B0aW9uc1tdID0geworCXsgQU5ZTUFSSywJIkFOWU1BUksiCX0sCisJeyBMQVNUTUFSSywJIkxBU1RNQVJLIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworI2VuZGlmIC8qIElfQVRNQVJLICovCisKKyNpZmRlZiBUSV9CSU5ECitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdHJhbnNwb3J0X3VzZXJfb3B0aW9uc1tdID0geworCXsgVF9DT05OX1JFUSwJIlRfQ09OTl9SRVEiCX0sCisJeyBUX0NPTk5fUkVTLAkiVF9DT05OX1JFUyIJfSwKKwl7IFRfRElTQ09OX1JFUSwJIlRfRElTQ09OX1JFUSIJfSwKKwl7IFRfREFUQV9SRVEsCSJUX0RBVEFfUkVRIgl9LAorCXsgVF9FWERBVEFfUkVRLAkiVF9FWERBVEFfUkVRIgl9LAorCXsgVF9JTkZPX1JFUSwJIlRfSU5GT19SRVEiCX0sCisJeyBUX0JJTkRfUkVRLAkiVF9CSU5EX1JFUSIJfSwKKwl7IFRfVU5CSU5EX1JFUSwJIlRfVU5CSU5EX1JFUSIJfSwKKwl7IFRfVU5JVERBVEFfUkVRLCJUX1VOSVREQVRBX1JFUSJ9LAorCXsgVF9PUFRNR01UX1JFUSwiVF9PUFRNR01UX1JFUSIJfSwKKwl7IFRfT1JEUkVMX1JFUSwJIlRfT1JEUkVMX1JFUSIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHRyYW5zcG9ydF91c2VyX2ZsYWdzIFtdID0geworCXsgMCwJCSIwIgkJfSwKKwl7IFRfTU9SRSwJIlRfTU9SRSIJfSwKKwl7IFRfRVhQRURJVEVELAkiVF9FWFBFRElURUQiCX0sCisJeyBUX05FR09USUFURSwJIlRfTkVHT1RJQVRFIgl9LAorCXsgVF9DSEVDSywJIlRfQ0hFQ0siCX0sCisJeyBUX0RFRkFVTFQsCSJUX0RFRkFVTFQiCX0sCisJeyBUX1NVQ0NFU1MsCSJUX1NVQ0NFU1MiCX0sCisJeyBUX0ZBSUxVUkUsCSJUX0ZBSUxVUkUiCX0sCisJeyBUX0NVUlJFTlQsCSJUX0NVUlJFTlQiCX0sCisJeyBUX1BBUlRTVUNDRVNTLCJUX1BBUlRTVUNDRVNTIgl9LAorCXsgVF9SRUFET05MWSwJIlRfUkVBRE9OTFkiCX0sCisJeyBUX05PVFNVUFBPUlQsCSJUX05PVFNVUFBPUlQiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKKworI2lmZGVmIEhBVkVfU1RSVUNUX1RfT1BUSERSCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB4dGlfbGV2ZWwgW10gPSB7CisJeyBYVElfR0VORVJJQywJIlhUSV9HRU5FUklDIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgeHRpX2dlbmVyaWMgW10gPSB7CisJeyBYVElfREVCVUcsCSJYVElfREVCVUciCX0sCisJeyBYVElfTElOR0VSLAkiWFRJX0xJTkdFUiIJfSwKKwl7IFhUSV9SQ1ZCVUYsCSJYVElfUkNWQlVGIgl9LAorCXsgWFRJX1JDVkxPV0FULAkiWFRJX1JDVkxPV0FUIgl9LAorCXsgWFRJX1NOREJVRiwJIlhUSV9TTkRCVUYiCX0sCisJeyBYVElfU05ETE9XQVQsCSJYVElfU05ETE9XQVQiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKKworCit2b2lkCitwcmludF94dGlfb3B0bWdtdCAodGNwLCBhZGRyLCBsZW4pCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7CitpbnQgbGVuOworeworCWludCBjID0gMDsKKwlzdHJ1Y3QgdF9vcHRoZHIgaGRyOworCisJd2hpbGUgKGxlbiA+PSAoaW50KSBzaXplb2YgaGRyKSB7CisJCWlmICh1bW92ZSh0Y3AsIGFkZHIsICZoZHIpIDwgMCkgYnJlYWs7CisJCWlmIChjKyspIHsKKwkJCXRwcmludGYgKCIsICIpOworCQl9CisJCWVsc2UgaWYgKGxlbiA+IGhkci5sZW4gKyBzaXplb2YgaGRyKSB7CisJCQl0cHJpbnRmICgiWyIpOworCQl9CisJCXRwcmludGYgKCJ7bGV2ZWw9Iik7CisJCXByaW50eHZhbCAoeHRpX2xldmVsLCBoZHIubGV2ZWwsICI/Pz8iKTsKKwkJdHByaW50ZiAoIiwgbmFtZT0iKTsKKwkJc3dpdGNoIChoZHIubGV2ZWwpIHsKKwkJICAgIGNhc2UgWFRJX0dFTkVSSUM6CisJCQlwcmludHh2YWwgKHh0aV9nZW5lcmljLCBoZHIubmFtZSwgIlhUSV8/Pz8iKTsKKwkJCWJyZWFrOworCQkgICAgZGVmYXVsdDoKKwkJCXRwcmludGYgKCIlbGQiLCBoZHIubmFtZSk7CisJCQlicmVhazsKKwkJfQorCQl0cHJpbnRmICgiLCBzdGF0dXM9Iik7CisJCXByaW50eHZhbCAodHJhbnNwb3J0X3VzZXJfZmxhZ3MsICBoZHIuc3RhdHVzLCAiVF8/Pz8iKTsKKwkJYWRkciArPSBzaXplb2YgaGRyOworCQlsZW4gLT0gc2l6ZW9mIGhkcjsKKwkJaWYgKChoZHIubGVuIC09IHNpemVvZiBoZHIpID4gMCkgeworCQkJaWYgKGhkci5sZW4gPiBsZW4pIGJyZWFrOworCQkJdHByaW50ZiAoIiwgdmFsPSIpOworCQkJaWYgKGxlbiA9PSBzaXplb2YgKGludCkpCisJCQkJcHJpbnRudW0gKHRjcCwgYWRkciwgIiVkIik7CisJCQllbHNlCisJCQkJcHJpbnRzdHIgKHRjcCwgYWRkciwgaGRyLmxlbik7CisJCQlhZGRyICs9IGhkci5sZW47CisJCQlsZW4gLT0gaGRyLmxlbjsKKwkJfQorCQl0cHJpbnRmICgifSIpOworCX0KKwlpZiAobGVuID4gMCkgeworCQlpZiAoYysrKSB0cHJpbnRmICgiLCAiKTsKKwkJcHJpbnRzdHIgKHRjcCwgYWRkciwgbGVuKTsKKwl9CisJaWYgKGMgPiAxKSB0cHJpbnRmICgiXSIpOworfQorCisjZW5kaWYKKworCitzdGF0aWMgdm9pZAorcHJpbnRfb3B0bWdtdCAodGNwLCBhZGRyLCBsZW4pCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7CitpbnQgbGVuOworeworCS8qIFdlIGRvbid0IGtub3cgaG93IHRvIHRlbGwgaWYgVExJIChzb2NrZXQpIG9yIFhUSQorCSAgIG9wdG1nbXQgaXMgYmVpbmcgdXNlZCB5ZXQsIGFzc3VtZSBUTEkuICovCisjaWYgZGVmaW5lZCAoSEFWRV9TVFJVQ1RfT1BUSERSKQorCXByaW50X3NvY2tfb3B0bWdtdCAodGNwLCBhZGRyLCBsZW4pOworI2VsaWYgZGVmaW5lZCAoSEFWRV9TVFJVQ1RfVF9PUFRIRFIpCisJcHJpbnRfeHRpX29wdG1nbXQgKHRjcCwgYWRkciwgbGVuKTsKKyNlbHNlCisJcHJpbnRzdHIgKHRjcCwgYWRkciwgbGVuKTsKKyNlbmRpZgorfQorCisKKworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc2VydmljZV90eXBlIFtdID0geworCXsgVF9DT1RTLAkiVF9DT1RTIgl9LAorCXsgVF9DT1RTX09SRCwJIlRfQ09UU19PUkQiCX0sCisJeyBUX0NMVFMsCSJUX0NMVFMiCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB0c19zdGF0ZSBbXSA9IHsKKwl7IFRTX1VOQk5ELAkiVFNfVU5CTkQiCX0sCisJeyBUU19XQUNLX0JSRVEsCSJUU19XQUNLX0JSRVEiCX0sCisJeyBUU19XQUNLX1VSRVEsCSJUU19XQUNLX1VSRVEiCX0sCisJeyBUU19JRExFLAkiVFNfSURMRSIJfSwKKwl7IFRTX1dBQ0tfT1BUUkVRLCJUU19XQUNLX09QVFJFUSJ9LAorCXsgVFNfV0FDS19DUkVRLAkiVFNfV0FDS19DUkVRIgl9LAorCXsgVFNfV0NPTl9DUkVRLAkiVFNfV0NPTl9DUkVRIgl9LAorCXsgVFNfV1JFU19DSU5ELAkiVFNfV1JFU19DSU5EIgl9LAorCXsgVFNfV0FDS19DUkVTLAkiVFNfV0FDS19DUkVTIgl9LAorCXsgVFNfREFUQV9YRkVSLAkiVFNfREFUQV9YRkVSIgl9LAorCXsgVFNfV0lORF9PUkRSRUwsIlRTX1dJTkRfT1JEUkVMIn0sCisJeyBUU19XUkVRX09SRFJFTCwiVFNfV1JFUV9PUkRSRUwifSwKKwl7IFRTX1dBQ0tfRFJFUTYsIlRTX1dBQ0tfRFJFUTYiCX0sCisJeyBUU19XQUNLX0RSRVE3LCJUU19XQUNLX0RSRVE3Igl9LAorCXsgVFNfV0FDS19EUkVROSwiVFNfV0FDS19EUkVROSIJfSwKKwl7IFRTX1dBQ0tfRFJFUTEwLCJUU19XQUNLX0RSRVExMCJ9LAorCXsgVFNfV0FDS19EUkVRMTEsIlRTX1dBQ0tfRFJFUTExIn0sCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwcm92aWRlcl9mbGFncyBbXSA9IHsKKwl7IDAsCQkiMCIJCX0sCisJeyBTRU5EWkVSTywJIlNFTkRaRVJPIgl9LAorCXsgRVhQSU5MSU5FLAkiRVhQSU5MSU5FIgl9LAorCXsgWFBHNF8xLAkiWFBHNF8xIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB0bGlfZXJyb3JzIFtdID0geworCXsgVEJBREFERFIsCSJUQkFEQUREUiIJfSwKKwl7IFRCQURPUFQsCSJUQkFET1BUIgl9LAorCXsgVEFDQ0VTLAkiVEFDQ0VTIgl9LAorCXsgVEJBREYsCSJUQkFERiIJCX0sCisJeyBUTk9BRERSLAkiVE5PQUREUiIJfSwKKwl7IFRPVVRTVEFURSwJIlRPVVRTVEFURSIJfSwKKwl7IFRCQURTRVEsCSJUQkFEU0VRIgl9LAorCXsgVFNZU0VSUiwJIlRTWVNFUlIiCX0sCisJeyBUTE9PSywJIlRMT09LIgkJfSwKKwl7IFRCQUREQVRBLAkiVEJBRERBVEEiCX0sCisJeyBUQlVGT1ZGTFcsCSJUQlVGT1ZGTFciCX0sCisJeyBURkxPVywJIlRGTE9XIgkJfSwKKwl7IFROT0RBVEEsCSJUTk9EQVRBIgl9LAorCXsgVE5PRElTLAkiVE5PRElTIgl9LAorCXsgVE5PVURFUlIsCSJUTk9VREVSUiIJfSwKKwl7IFRCQURGTEFHLAkiVEJBREZMQUciCX0sCisJeyBUTk9SRUwsCSJUTk9SRUwiCX0sCisJeyBUTk9UU1VQUE9SVCwJIlROT1RTVVBQT1JUIgl9LAorCXsgVFNUQVRFQ0hORywJIlRTVEFURUNITkciCX0sCisJeyBUTk9TVFJVQ1RZUEUsCSJUTk9TVFJVQ1RZUEUiCX0sCisJeyBUQkFETkFNRSwJIlRCQUROQU1FIgl9LAorCXsgVEJBRFFMRU4sCSJUQkFEUUxFTiIJfSwKKwl7IFRBRERSQlVTWSwJIlRBRERSQlVTWSIJfSwKKwl7IFRJTkRPVVQsCSJUSU5ET1VUIgl9LAorCXsgVFBST1ZNSVNNQVRDSCwiVFBST1ZNSVNNQVRDSCIJfSwKKwl7IFRSRVNRTEVOLAkiVFJFU1FMRU4iCX0sCisJeyBUUkVTQUREUiwJIlRSRVNBRERSIgl9LAorCXsgVFFGVUxMLAkiVFFGVUxMIgl9LAorCXsgVFBST1RPLAkiVFBST1RPIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCisKK3N0YXRpYyBpbnQKK3ByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsIGV4cGVjdCwgYWRkciwgbGVuKQorc3RydWN0IHRjYiAqdGNwOworaW50IGV4cGVjdDsKK2xvbmcgYWRkcjsKK2ludCBsZW47Cit7CisJdW5pb24gVF9wcmltaXRpdmVzIG07CisJaW50IGMgPSAwOworCisJaWYgKGxlbiA8IHNpemVvZiBtLnR5cGUpIGdvdG8gZHVtcDsKKworCWlmICh1bW92ZSAodGNwLCBhZGRyLCAmbS50eXBlKSA8IDApIGdvdG8gZHVtcDsKKworI2RlZmluZSBHRVQodHlwZSwgc3RydWN0KQlcCisJZG8gewkJCQkJCQlcCisJCWlmIChsZW4gPCBzaXplb2YgbS5zdHJ1Y3QpIGdvdG8gZHVtcDsJCVwKKwkJaWYgKHVtb3ZlICh0Y3AsIGFkZHIsICZtLnN0cnVjdCkgPCAwKSBnb3RvIGR1bXA7XAorCQl0cHJpbnRmICgieyIpOwkJCQkJXAorCQlpZiAoZXhwZWN0ICE9IHR5cGUpIHsJCQkJXAorCQkJKytjOwkJCQkJXAorCQkJdHByaW50ZiAoI3R5cGUpOwkJCVwKKwkJfQkJCQkJCVwKKwl9CQkJCQkJCVwKKwl3aGlsZSAoMCkKKworI2RlZmluZSBDT01NQSgpIFwKKwlkbyB7IGlmIChjKyspIHRwcmludGYgKCIsICIpOyB9IHdoaWxlICgwKQorCisKKyNkZWZpbmUgU1RSVUNUKHN0cnVjdCwgZWxlbSwgcHJpbnQpCQkJCQlcCisJZG8gewkJCQkJCQkJXAorCQlDT01NQSAoKTsJCQkJCQlcCisJCWlmIChtLnN0cnVjdC5lbGVtIyNfbGVuZ3RoIDwgMCB8fAkJCVwKKwkJICAgIG0uc3RydWN0LmVsZW0jI19vZmZzZXQgPCBzaXplb2YgbS5zdHJ1Y3QgfHwJCVwKKwkJICAgIG0uc3RydWN0LmVsZW0jI19vZmZzZXQgKyBtLnN0cnVjdC5lbGVtIyNfbGVuZ3RoID4gbGVuKSBcCisJCXsJCQkJCQkJXAorCQkJdHByaW50ZiAoI2VsZW0gIl9sZW5ndGg9JWxkLCAiICNlbGVtICJfb2Zmc2V0PSVsZCIsXAorCQkJCW0uc3RydWN0LmVsZW0jI19sZW5ndGgsCQkJXAorCQkJCW0uc3RydWN0LmVsZW0jI19vZmZzZXQpOwkJXAorCQl9CQkJCQkJCVwKKwkJZWxzZSB7CQkJCQkJCVwKKwkJCXRwcmludGYgKCNlbGVtICI9Iik7CQkJCVwKKwkJCXByaW50ICh0Y3AsCQkJCQlcCisJCQkJIGFkZHIgKyBtLnN0cnVjdC5lbGVtIyNfb2Zmc2V0LAkJXAorCQkJCSBtLnN0cnVjdC5lbGVtIyNfbGVuZ3RoKTsJCVwKKwkJfQkJCQkJCQlcCisJfQkJCQkJCQkJXAorCXdoaWxlICgwKQorCisjZGVmaW5lIEFERFIoc3RydWN0LCBlbGVtKSBTVFJVQ1QgKHN0cnVjdCwgZWxlbSwgcHJpbnRzdHIpCisKKwlzd2l0Y2ggKG0udHlwZSkgeworI2lmZGVmIFRfQ09OTl9SRVEKKwkgICAgY2FzZSBUX0NPTk5fUkVROgkvKiBjb25uZWN0IHJlcXVlc3QgICAqLworCQlHRVQgKFRfQ09OTl9SRVEsIGNvbm5fcmVxKTsKKwkJQUREUiAoY29ubl9yZXEsIERFU1QpOworCQlBRERSIChjb25uX3JlcSwgT1BUKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBUX0NPTk5fUkVTCisJICAgIGNhc2UgVF9DT05OX1JFUzoJLyogY29ubmVjdCByZXNwb25zZSAgICovCisJCUdFVCAoVF9DT05OX1JFUywgY29ubl9yZXMpOworI2lmZGVmIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfUVVFVUVfUFRSCisJCUNPTU1BICgpOworCQl0cHJpbnRmICgiUVVFVUU9JXAiLCBtLmNvbm5fcmVzLlFVRVVFX3B0cik7CisjZWxpZiBkZWZpbmVkIEhBVkVfU1RSVUNUX1RfQ09OTl9SRVNfQUNDRVBUT1JfSUQKKwkJQ09NTUEgKCk7CisJCXRwcmludGYgKCJBQ0NFUFRPUj0lI2x4IiwgbS5jb25uX3Jlcy5BQ0NFUFRPUl9pZCk7CisjZW5kaWYKKwkJQUREUiAoY29ubl9yZXMsIE9QVCk7CisJCUNPTU1BICgpOworCQl0cHJpbnRmICgiU0VRPSVsZCIsIG0uY29ubl9yZXMuU0VRX251bWJlcik7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9ESVNDT05fUkVRCisJICAgIGNhc2UgVF9ESVNDT05fUkVROgkvKiBkaXNjb25uZWN0IHJlcXVlc3QgKi8KKwkJR0VUIChUX0RJU0NPTl9SRVEsIGRpc2Nvbl9yZXEpOworCQlDT01NQSAoKTsKKwkJdHByaW50ZiAoIlNFUT0lbGQiLCBtLmRpc2Nvbl9yZXEuU0VRX251bWJlcik7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9EQVRBX1JFUQorCSAgICBjYXNlIFRfREFUQV9SRVE6CS8qIGRhdGEgcmVxdWVzdCAgICAgICAqLworCQlHRVQgKFRfREFUQV9SRVEsIGRhdGFfcmVxKTsKKwkJQ09NTUEgKCk7CisJCXRwcmludGYgKCJNT1JFPSVsZCIsIG0uZGF0YV9yZXEuTU9SRV9mbGFnKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBUX0VYREFUQV9SRVEKKwkgICAgY2FzZSBUX0VYREFUQV9SRVE6CS8qIGV4cGVkaXRlZCBkYXRhIHJlcSAqLworCQlHRVQgKFRfRVhEQVRBX1JFUSwgZXhkYXRhX3JlcSk7CisJCUNPTU1BICgpOworCQl0cHJpbnRmICgiTU9SRT0lbGQiLCBtLmV4ZGF0YV9yZXEuTU9SRV9mbGFnKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBUX0lORk9fUkVRCisJICAgIGNhc2UgVF9JTkZPX1JFUToJLyogaW5mb3JtYXRpb24gcmVxICAgICovCisJCUdFVCAoVF9JTkZPX1JFUSwgaW5mb19yZXEpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFRfQklORF9SRVEKKwkgICAgY2FzZSBUX0JJTkRfUkVROgkvKiBiaW5kIHJlcXVlc3QgICAgICAgKi8KKyNpZmRlZiBPX1RfQklORF9SRVEKKwkgICAgY2FzZSBPX1RfQklORF9SRVE6CS8qIFVnbHkgeHRpL3RsaSBoYWNrICovCisjZW5kaWYKKwkJR0VUIChUX0JJTkRfUkVRLCBiaW5kX3JlcSk7CisJCUFERFIgKGJpbmRfcmVxLCBBRERSKTsKKwkJQ09NTUEgKCk7CisJCXRwcmludGYgKCJDT05JTkQ9JWxkIiwgbS5iaW5kX3JlcS5DT05JTkRfbnVtYmVyKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBUX1VOQklORF9SRVEKKwkgICAgY2FzZSBUX1VOQklORF9SRVE6CS8qIHVuYmluZCByZXF1ZXN0ICAgICAqLworCQlHRVQgKFRfVU5CSU5EX1JFUSwgdW5iaW5kX3JlcSk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9VTklUREFUQV9SRVEKKwkgICAgY2FzZSBUX1VOSVREQVRBX1JFUToJLyogdW5pdGRhdGEgcmVxdXNldCAgICovCisJCUdFVCAoVF9VTklUREFUQV9SRVEsIHVuaXRkYXRhX3JlcSk7CisJCUFERFIgKHVuaXRkYXRhX3JlcSwgREVTVCk7CisJCUFERFIgKHVuaXRkYXRhX3JlcSwgT1BUKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBUX09QVE1HTVRfUkVRCisJICAgIGNhc2UgVF9PUFRNR01UX1JFUToJLyogbWFuYWdlIG9wdCByZXEgICAgICovCisJCUdFVCAoVF9PUFRNR01UX1JFUSwgb3B0bWdtdF9yZXEpOworCQlDT01NQSAoKTsKKwkJdHByaW50ZiAoIk1HTVQ9Iik7CisJCXByaW50ZmxhZ3MgKHRyYW5zcG9ydF91c2VyX2ZsYWdzLCBtLm9wdG1nbXRfcmVxLk1HTVRfZmxhZ3MsCisJCQkgICAgIlRfPz8/Iik7CisJCVNUUlVDVCAob3B0bWdtdF9yZXEsIE9QVCwgcHJpbnRfb3B0bWdtdCk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9PUkRSRUxfUkVRCisJICAgIGNhc2UgVF9PUkRSRUxfUkVROgkvKiBvcmRlcmx5IHJlbCByZXEgICAgKi8KKwkJR0VUIChUX09SRFJFTF9SRVEsIG9yZHJlbF9yZXEpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFRfQ09OTl9JTkQKKwkgICAgY2FzZSBUX0NPTk5fSU5EOgkvKiBjb25uZWN0IGluZGljYXRpb24gKi8KKwkJR0VUIChUX0NPTk5fSU5ELCBjb25uX2luZCk7CisJCUFERFIgKGNvbm5faW5kLCBTUkMpOworCQlBRERSIChjb25uX2luZCwgT1BUKTsKKwkJdHByaW50ZiAoIiwgU0VRPSVsZCIsIG0uY29ubl9pbmQuU0VRX251bWJlcik7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9DT05OX0NPTgorCSAgICBjYXNlIFRfQ09OTl9DT046CS8qIGNvbm5lY3QgY29yZmlybSAgICAqLworCQlHRVQgKFRfQ09OTl9DT04sIGNvbm5fY29uKTsKKwkJQUREUiAoY29ubl9jb24sIFJFUyk7CisJCUFERFIgKGNvbm5fY29uLCBPUFQpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFRfRElTQ09OX0lORAorCSAgICBjYXNlIFRfRElTQ09OX0lORDoJLyogZGlzY29uIGluZGljYXRpb24gICovCisJCUdFVCAoVF9ESVNDT05fSU5ELCBkaXNjb25faW5kKTsKKwkJQ09NTUEgKCk7CisJCXRwcmludGYgKCJESVNDT049JWxkLCBTRVE9JWxkIiwKKwkJCSBtLmRpc2Nvbl9pbmQuRElTQ09OX3JlYXNvbiwgbS5kaXNjb25faW5kLlNFUV9udW1iZXIpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFRfREFUQV9JTkQKKwkgICAgY2FzZSBUX0RBVEFfSU5EOgkvKiBkYXRhIGluZGljYXRpb24gICAgKi8KKwkJR0VUIChUX0RBVEFfSU5ELCBkYXRhX2luZCk7CisJCUNPTU1BICgpOworCQl0cHJpbnRmICgiTU9SRT0lbGQiLCBtLmRhdGFfaW5kLk1PUkVfZmxhZyk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9FWERBVEFfSU5ECisJICAgIGNhc2UgVF9FWERBVEFfSU5EOgkvKiBleHBlZGl0ZWQgZGF0YSBpbmQgKi8KKwkJR0VUIChUX0VYREFUQV9JTkQsIGV4ZGF0YV9pbmQpOworCQlDT01NQSAoKTsKKwkJdHByaW50ZiAoIk1PUkU9JWxkIiwgbS5leGRhdGFfaW5kLk1PUkVfZmxhZyk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9JTkZPX0FDSworCSAgICBjYXNlIFRfSU5GT19BQ0s6CS8qIGluZm8gYWNrICAgICAgICAgICAqLworCQlHRVQgKFRfSU5GT19BQ0ssIGluZm9fYWNrKTsKKwkJQ09NTUEgKCk7CisJCXRwcmludGYgKCJUU0RVPSVsZCwgRVRTRFU9JWxkLCBDREFUQT0lbGQsIEREQVRBPSVsZCwgIgorCQkJICJBRERSPSVsZCwgT1BUPSVsZCwgVElEVT0lbGQsIFNFUlY9IiwKKwkJCSBtLmluZm9fYWNrLlRTRFVfc2l6ZSwgbS5pbmZvX2Fjay5FVFNEVV9zaXplLAorCQkJIG0uaW5mb19hY2suQ0RBVEFfc2l6ZSwgbS5pbmZvX2Fjay5EREFUQV9zaXplLAorCQkJIG0uaW5mb19hY2suQUREUl9zaXplLCBtLmluZm9fYWNrLk9QVF9zaXplLAorCQkJIG0uaW5mb19hY2suVElEVV9zaXplKTsKKwkJcHJpbnR4dmFsIChzZXJ2aWNlX3R5cGUsIG0uaW5mb19hY2suU0VSVl90eXBlLCAiVF8/Pz8iKTsKKwkJdHByaW50ZiAoIiwgQ1VSUkVOVD0iKTsKKwkJcHJpbnR4dmFsICh0c19zdGF0ZSwgbS5pbmZvX2Fjay5DVVJSRU5UX3N0YXRlLCAiVFNfPz8/Iik7CisJCXRwcmludGYgKCIsIFBST1ZJREVSPSIpOworCQlwcmludGZsYWdzIChwcm92aWRlcl9mbGFncywgbS5pbmZvX2Fjay5QUk9WSURFUl9mbGFnLCAiPz8/Iik7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9CSU5EX0FDSworCSAgICBjYXNlIFRfQklORF9BQ0s6CS8qIGJpbmQgYWNrICAgICAgICAgICAqLworCQlHRVQgKFRfQklORF9BQ0ssIGJpbmRfYWNrKTsKKwkJQUREUiAoYmluZF9hY2ssIEFERFIpOworCQl0cHJpbnRmICgiLCBDT05JTkQ9JWxkIiwgbS5iaW5kX2Fjay5DT05JTkRfbnVtYmVyKTsKKwkJYnJlYWs7CisjZW5kaWYKKyNpZmRlZiBUX0VSUk9SX0FDSworCSAgICBjYXNlIFRfRVJST1JfQUNLOgkvKiBlcnJvciBhY2sgICAgICAgICAgKi8KKwkJR0VUIChUX0VSUk9SX0FDSywgZXJyb3JfYWNrKTsKKwkJQ09NTUEgKCk7CisJCXRwcmludGYgKCJFUlJPUj0iKTsKKwkJcHJpbnR4dmFsICh0cmFuc3BvcnRfdXNlcl9vcHRpb25zLAorCQkJICAgbS5lcnJvcl9hY2suRVJST1JfcHJpbSwgIlRJXz8/PyIpOworCQl0cHJpbnRmICgiLCBUTEk9Iik7CisJCXByaW50eHZhbCAodGxpX2Vycm9ycywgbS5lcnJvcl9hY2suVExJX2Vycm9yLCAiVD8/PyIpOworCQl0cHJpbnRmICgiVU5JWD0lcyIsIHN0cmVycm9yIChtLmVycm9yX2Fjay5VTklYX2Vycm9yKSk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9PS19BQ0sKKwkgICAgY2FzZSBUX09LX0FDSzoJLyogb2sgYWNrICAgICAgICAgICAgICovCisJCUdFVCAoVF9PS19BQ0ssIG9rX2Fjayk7CisJCUNPTU1BICgpOworCQl0cHJpbnRmICgiQ09SUkVDVD0iKTsKKwkJcHJpbnR4dmFsICh0cmFuc3BvcnRfdXNlcl9vcHRpb25zLAorCQkJICAgbS5va19hY2suQ09SUkVDVF9wcmltLCAiVElfPz8/Iik7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9VTklUREFUQV9JTkQKKwkgICAgY2FzZSBUX1VOSVREQVRBX0lORDoJLyogdW5pdGRhdGEgaW5kICAgICAgICovCisJCUdFVCAoVF9VTklUREFUQV9JTkQsIHVuaXRkYXRhX2luZCk7CisJCUFERFIgKHVuaXRkYXRhX2luZCwgU1JDKTsKKwkJQUREUiAodW5pdGRhdGFfaW5kLCBPUFQpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFRfVURFUlJPUl9JTkQKKwkgICAgY2FzZSBUX1VERVJST1JfSU5EOgkvKiB1bml0ZGF0YSBlcnJvciBpbmQgKi8KKwkJR0VUIChUX1VERVJST1JfSU5ELCB1ZGVycm9yX2luZCk7CisJCUFERFIgKHVkZXJyb3JfaW5kLCBERVNUKTsKKwkJQUREUiAodWRlcnJvcl9pbmQsIE9QVCk7CisJCXRwcmludGYgKCIsIEVSUk9SPSVsZCIsIG0udWRlcnJvcl9pbmQuRVJST1JfdHlwZSk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9PUFRNR01UX0FDSworCSAgICBjYXNlIFRfT1BUTUdNVF9BQ0s6CS8qIG1hbmFnZSBvcHQgYWNrICAgICAqLworCQlHRVQgKFRfT1BUTUdNVF9BQ0ssIG9wdG1nbXRfYWNrKTsKKwkJQ09NTUEgKCk7CisJCXRwcmludGYgKCJNR01UPSIpOworCQlwcmludGZsYWdzICh0cmFuc3BvcnRfdXNlcl9mbGFncywgbS5vcHRtZ210X2Fjay5NR01UX2ZsYWdzLAorCQkJICAgICJUXz8/PyIpOworCQlTVFJVQ1QgKG9wdG1nbXRfYWNrLCBPUFQsIHByaW50X29wdG1nbXQpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFRfT1JEUkVMX0lORAorCWNhc2UgVF9PUkRSRUxfSU5EOgkvKiBvcmRlcmx5IHJlbCBpbmQgICAgKi8KKwkJR0VUIChUX09SRFJFTF9JTkQsIG9yZHJlbF9pbmQpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFRfQUREUl9SRVEKKwkgICAgY2FzZSBUX0FERFJfUkVROgkvKiBhZGRyZXNzIHJlcSAgICAgICAgKi8KKwkJR0VUIChUX0FERFJfUkVRLCBhZGRyX3JlcSk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgVF9BRERSX0FDSworCSAgICBjYXNlIFRfQUREUl9BQ0s6CS8qIGFkZHJlc3MgcmVzcG9uc2UgICAqLworCQlHRVQgKFRfQUREUl9BQ0ssIGFkZHJfYWNrKTsKKwkJQUREUiAoYWRkcl9hY2ssIExPQ0FERFIpOworCQlBRERSIChhZGRyX2FjaywgUkVNQUREUik7CisJCWJyZWFrOworI2VuZGlmCisJICAgIGRlZmF1bHQ6CisJICAgIGR1bXA6CisJCWMgPSAtMTsKKwkJcHJpbnRzdHIodGNwLCBhZGRyLCBsZW4pOworCQlicmVhazsKKwl9CisKKwlpZiAoYyA+PSAwKSB0cHJpbnRmICgifSIpOworCisjdW5kZWYgQUREUgorI3VuZGVmIENPTU1BCisjdW5kZWYgU1RSVUNUCisKKwlyZXR1cm4gMDsKK30KKworCisjZW5kaWYgLyogVElfQklORCAqLworCisKK3N0YXRpYyBpbnQKK2ludGVybmFsX3N0cmVhbV9pb2N0bCh0Y3AsIGFyZykKK3N0cnVjdCB0Y2IgKnRjcDsKK2ludCBhcmc7Cit7CisJc3RydWN0IHN0cmlvY3RsIHNpOworCXN0cnVjdCBpb2N0bGVudCAqaW9wOworCWludCBpbl9hbmRfb3V0OworCWludCB0aW1vZCA9IDA7CisjaWZkZWYgU0lfR0VUVURBVEEKKwlzdHJ1Y3Qgc2lfdWRhdGEgdWRhdGE7CisjZW5kaWYgLyogU0lfR0VUVURBVEEgKi8KKworCWlmICghYXJnKQorCQlyZXR1cm4gMDsKKwlpZiAodW1vdmUodGNwLCBhcmcsICZzaSkgPCAwKSB7CisJCWlmIChlbnRlcmluZyh0Y3ApKQorCQkJdHByaW50ZigiLCB7Li4ufSIpOworCQlyZXR1cm4gMTsKKwl9CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaW9wID0gaW9jdGxfbG9va3VwKHNpLmljX2NtZCk7CisJCWlmIChpb3ApIHsKKwkJCXRwcmludGYoIiwge2ljX2NtZD0lcyIsIGlvcC0+c3ltYm9sKTsKKwkJCXdoaWxlICgoaW9wID0gaW9jdGxfbmV4dF9tYXRjaChpb3ApKSkKKwkJCQl0cHJpbnRmKCIgb3IgJXMiLCBpb3AtPnN5bWJvbCk7CisJCX0gZWxzZQorCQkJdHByaW50ZigiLCB7aWNfY21kPSUjeCIsIHNpLmljX2NtZCk7CisJCWlmIChzaS5pY190aW1vdXQgPT0gSU5GVElNKQorCQkJdHByaW50ZigiLCBpY190aW1vdXQ9SU5GVElNLCAiKTsKKwkJZWxzZQorCQkJdHByaW50ZigiIGljX3RpbW91dD0lZCwgIiwgc2kuaWNfdGltb3V0KTsKKwl9CisJaW5fYW5kX291dCA9IDE7CisJc3dpdGNoIChzaS5pY19jbWQpIHsKKyNpZmRlZiBTSV9HRVRVREFUQQorCWNhc2UgU0lfR0VUVURBVEE6CisJCWluX2FuZF9vdXQgPSAwOworCQlicmVhazsKKyNlbmRpZiAvKiBTSV9HRVRVREFUQSAqLworCX0KKwlpZiAoaW5fYW5kX291dCkgeworCQlpZiAoZW50ZXJpbmcodGNwKSkKKwkJCXRwcmludGYoIi8qIGluICovICIpOworCQllbHNlCisJCQl0cHJpbnRmKCIsIC8qIG91dCAqLyAiKTsKKwl9CisJaWYgKGluX2FuZF9vdXQgfHwgZW50ZXJpbmcodGNwKSkKKwkJdHByaW50ZigiaWNfbGVuPSVkLCBpY19kcD0iLCBzaS5pY19sZW4pOworCXN3aXRjaCAoc2kuaWNfY21kKSB7CisjaWZkZWYgVElfQklORAorCWNhc2UgVElfQklORDoKKwkJLyogaW4gVF9CSU5EX1JFUSwgb3V0IFRfQklORF9BQ0sgKi8KKwkJKyt0aW1vZDsKKwkJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJCXByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsCisJCQkJCQkgVF9CSU5EX1JFUSwKKwkJCQkJCSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJfQorCQllbHNlIHsKKwkJCXByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsCisJCQkJCQkgVF9CSU5EX0FDSywKKwkJCQkJCSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJfQorCQlicmVhazsKKyNlbmRpZiAvKiBUSV9CSU5EICovCisjaWZkZWYgVElfVU5CSU5ECisJY2FzZSBUSV9VTkJJTkQ6CisJCS8qIGluIFRfVU5CSU5EX1JFUSwgb3V0IFRfT0tfQUNLICovCisJCSsrdGltb2Q7CisJCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCQlwcmludF90cmFuc3BvcnRfbWVzc2FnZSAodGNwLAorCQkJCQkJIFRfVU5CSU5EX1JFUSwKKwkJCQkJCSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJfQorCQllbHNlIHsKKwkJCXByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsCisJCQkJCQkgVF9PS19BQ0ssCisJCQkJCQkgc2kuaWNfZHAsIHNpLmljX2xlbik7CisJCX0KKwkJYnJlYWs7CisjZW5kaWYgLyogVElfVU5CSU5EICovCisjaWZkZWYgVElfR0VUSU5GTworCWNhc2UgVElfR0VUSU5GTzoKKwkJLyogaW4gVF9JTkZPX1JFUSwgb3V0IFRfSU5GT19BQ0sgKi8KKwkJKyt0aW1vZDsKKwkJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJCXByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsCisJCQkJCQkgVF9JTkZPX1JFUSwKKwkJCQkJCSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJfQorCQllbHNlIHsKKwkJCXByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsCisJCQkJCQkgVF9JTkZPX0FDSywKKwkJCQkJCSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJfQorCQlicmVhazsKKyNlbmRpZiAvKiBUSV9HRVRJTkZPICovCisjaWZkZWYgVElfT1BUTUdNVAorCWNhc2UgVElfT1BUTUdNVDoKKwkJLyogaW4gVF9PUFRNR01UX1JFUSwgb3V0IFRfT1BUTUdNVF9BQ0sgKi8KKwkJKyt0aW1vZDsKKwkJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJCXByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsCisJCQkJCQkgVF9PUFRNR01UX1JFUSwKKwkJCQkJCSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJfQorCQllbHNlIHsKKwkJCXByaW50X3RyYW5zcG9ydF9tZXNzYWdlICh0Y3AsCisJCQkJCQkgVF9PUFRNR01UX0FDSywKKwkJCQkJCSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJfQorCQlicmVhazsKKyNlbmRpZiAvKiBUSV9PUFRNR01UICovCisjaWZkZWYgU0lfR0VUVURBVEEKKwljYXNlIFNJX0dFVFVEQVRBOgorCQlpZiAoZW50ZXJpbmcodGNwKSkKKwkJCWJyZWFrOworI2lmIDAKKwkJdHByaW50Zigic3RydWN0IHNpX3VkYXRhICIpOworI2VuZGlmCisJCWlmICh1bW92ZSh0Y3AsIChpbnQpIHNpLmljX2RwLCAmdWRhdGEpIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJCWVsc2UgeworCQkJdHByaW50Zigie3RpZHVzaXplPSVkLCBhZGRyc2l6ZT0lZCwgIiwKKwkJCQl1ZGF0YS50aWR1c2l6ZSwgdWRhdGEuYWRkcnNpemUpOworCQkJdHByaW50Zigib3B0c2l6ZT0lZCwgZXRzZHVzaXplPSVkLCAiLAorCQkJCXVkYXRhLm9wdHNpemUsIHVkYXRhLmV0c2R1c2l6ZSk7CisJCQl0cHJpbnRmKCJzZXJ2dHlwZT0lZCwgc29fc3RhdGU9JWQsICIsCisJCQkJdWRhdGEuc2VydnR5cGUsIHVkYXRhLnNvX3N0YXRlKTsKKwkJCXRwcmludGYoInNvX29wdGlvbnM9JWQiLCB1ZGF0YS5zb19vcHRpb25zKTsKKyNpZiAwCisJCQl0cHJpbnRmKCIsIHRzZHVzaXplPSVkIiwgdWRhdGEudHNkdXNpemUpOworI2VuZGlmCisJCQl0cHJpbnRmKCJ9Iik7CisJCX0KKwkJYnJlYWs7CisjZW5kaWYgLyogU0lfR0VUVURBVEEgKi8KKwlkZWZhdWx0OgorCQlwcmludHN0cih0Y3AsIChsb25nKSBzaS5pY19kcCwgc2kuaWNfbGVuKTsKKwkJYnJlYWs7CisJfQorCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJdHByaW50ZigifSIpOworCQlpZiAodGltb2QgJiYgdGNwLT51X3J2YWwpIHsKKwkJCXRjcC0+YXV4c3RyID0geGxvb2t1cCAodGxpX2Vycm9ycywgdGNwLT51X3J2YWwpOworCQkJcmV0dXJuIFJWQUxfU1RSICsgMTsKKwkJfQorCX0KKworCXJldHVybiAxOworfQorCitpbnQKK3N0cmVhbV9pb2N0bCh0Y3AsIGNvZGUsIGFyZykKK3N0cnVjdCB0Y2IgKnRjcDsKK2ludCBjb2RlLCBhcmc7Cit7CisjaWZkZWYgSV9MSVNUCisJaW50IGk7CisjZW5kaWYKKwlpbnQgdmFsOworI2lmZGVmIElfRkxVU0hCQU5ECisJc3RydWN0IGJhbmRpbmZvIGJpOworI2VuZGlmCisJc3RydWN0IHN0cnBlZWsgc3A7CisJc3RydWN0IHN0cmZkaW5zZXJ0IHNmaTsKKwlzdHJ1Y3Qgc3RycmVjdmZkIHNyZjsKKyNpZmRlZiBJX0xJU1QKKwlzdHJ1Y3Qgc3RyX2xpc3Qgc2w7CisjZW5kaWYKKworCS8qIElfU1RSIGlzIGEgc3BlY2lhbCBjYXNlIGJlY2F1c2UgdGhlIGRhdGEgaXMgcmVhZCAmIHdyaXR0ZW4uICovCisJaWYgKGNvZGUgPT0gSV9TVFIpCisJCXJldHVybiBpbnRlcm5hbF9zdHJlYW1faW9jdGwodGNwLCBhcmcpOworCWlmIChlbnRlcmluZyh0Y3ApKQorCQlyZXR1cm4gMDsKKworCXN3aXRjaCAoY29kZSkgeworCWNhc2UgSV9QVVNIOgorCWNhc2UgSV9MT09LOgorCWNhc2UgSV9GSU5EOgorCQkvKiBhcmcgaXMgYSBzdHJpbmcgKi8KKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRwYXRoKHRjcCwgYXJnKTsKKwkJcmV0dXJuIDE7CisJY2FzZSBJX1BPUDoKKwkJLyogZG9lc24ndCB0YWtlIGFuIGFyZ3VtZW50ICovCisJCXJldHVybiAxOworCWNhc2UgSV9GTFVTSDoKKwkJLyogYXJndW1lbnQgaXMgYW4gb3B0aW9uICovCisJCXRwcmludGYoIiwgIik7CisJCXByaW50eHZhbChzdHJlYW1fZmx1c2hfb3B0aW9ucywgYXJnLCAiRkxVU0g/Pz8iKTsKKwkJcmV0dXJuIDE7CisjaWZkZWYgSV9GTFVTSEJBTkQKKwljYXNlIElfRkxVU0hCQU5EOgorCQkvKiBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYSBiYW5kaW5mbyBzdHJ1Y3QgKi8KKwkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmYmkpIDwgMCkKKwkJCXRwcmludGYoIiwgey4uLn0iKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCIsIHtiaV9wcmk9JWQsIGJpX2ZsYWc9IiwgYmkuYmlfcHJpKTsKKwkJCXByaW50ZmxhZ3Moc3RyZWFtX2ZsdXNoX29wdGlvbnMsIGJpLmJpX2ZsYWcsICJGTFVTSD8/PyIpOworCQkJdHByaW50ZigifSIpOworCQl9CisJCXJldHVybiAxOworI2VuZGlmIC8qIElfRkxVU0hCQU5EICovCisJY2FzZSBJX1NFVFNJRzoKKwkJLyogYXJndW1lbnQgaXMgYSBzZXQgb2YgZmxhZ3MgKi8KKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhzdHJlYW1fc2V0c2lnX2ZsYWdzLCBhcmcsICJTXz8/PyIpOworCQlyZXR1cm4gMTsKKwljYXNlIElfR0VUU0lHOgorCQkvKiBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYSBzZXQgb2YgZmxhZ3MgKi8KKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQlyZXR1cm4gMDsKKwkJdHByaW50ZigiLCBbIik7CisJCWlmICh1bW92ZSh0Y3AsIGFyZywgJnZhbCkgPCAwKQorCQkJdHByaW50ZigiPyIpOworCQllbHNlCisJCQlwcmludGZsYWdzKHN0cmVhbV9zZXRzaWdfZmxhZ3MsIHZhbCwgIlNfPz8/Iik7CisJCXRwcmludGYoIl0iKTsKKwkJcmV0dXJuIDE7CisJY2FzZSBJX1BFRUs6CisJCS8qIGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIHN0cnBlZWsgc3RydWN0dXJlICovCisJCWlmIChzeXNlcnJvcih0Y3ApIHx8ICFhcmcpCisJCQlyZXR1cm4gMDsKKwkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmc3ApIDwgMCkgeworCQkJdHByaW50ZigiLCB7Li4ufSIpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJdHByaW50ZigiLCB7Y3RsYnVmPSIpOworCQlwcmludHN0cmJ1Zih0Y3AsICZzcC5jdGxidWYsIDEpOworCQl0cHJpbnRmKCIsIGRhdGFidWY9Iik7CisJCXByaW50c3RyYnVmKHRjcCwgJnNwLmRhdGFidWYsIDEpOworCQl0cHJpbnRmKCIsIGZsYWdzPSIpOworCQlwcmludGZsYWdzKG1zZ2ZsYWdzLCBzcC5mbGFncywgIlJTXz8/PyIpOworCQl0cHJpbnRmKCJ9Iik7CisJCXJldHVybiAxOworCWNhc2UgSV9TUkRPUFQ6CisJCS8qIGFyZ3VtZW50IGlzIGFuIG9wdGlvbiB3aXRoIGZsYWdzICovCisJCXRwcmludGYoIiwgIik7CisJCXByaW50eHZhbChzdHJlYW1fcmVhZF9vcHRpb25zLCBhcmcgJiBSTU9ERU1BU0ssICJSPz8/Iik7CisJCWFkZGZsYWdzKHN0cmVhbV9yZWFkX2ZsYWdzLCBhcmcgJiB+Uk1PREVNQVNLKTsKKwkJcmV0dXJuIDE7CisJY2FzZSBJX0dSRE9QVDoKKwkJLyogYXJndW1lbnQgaXMgYW4gcG9pbnRlciB0byBhbiBvcHRpb24gd2l0aCBmbGFncyAqLworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXJldHVybiAwOworCQl0cHJpbnRmKCIsIFsiKTsKKwkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmdmFsKSA8IDApCisJCQl0cHJpbnRmKCI/Iik7CisJCWVsc2UgeworCQkJcHJpbnR4dmFsKHN0cmVhbV9yZWFkX29wdGlvbnMsCisJCQkJICBhcmcgJiBSTU9ERU1BU0ssICJSPz8/Iik7CisJCQlhZGRmbGFncyhzdHJlYW1fcmVhZF9mbGFncywgYXJnICYgflJNT0RFTUFTSyk7CisJCX0KKwkJdHByaW50ZigiXSIpOworCQlyZXR1cm4gMTsKKwljYXNlIElfTlJFQUQ6CisjaWZkZWYgSV9HRVRCQU5ECisJY2FzZSBJX0dFVEJBTkQ6CisjZW5kaWYKKyNpZmRlZiBJX1NFVENMVElNRQorCWNhc2UgSV9TRVRDTFRJTUU6CisjZW5kaWYKKyNpZmRlZiBJX0dFVENMVElNRQorCWNhc2UgSV9HRVRDTFRJTUU6CisjZW5kaWYKKwkJLyogYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvIGEgZGVjaW1hbCBpbnRlZ2VyICovCisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJcmV0dXJuIDA7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50bnVtKHRjcCwgYXJnLCAiJWQiKTsKKwkJcmV0dXJuIDE7CisJY2FzZSBJX0ZESU5TRVJUOgorCQkvKiBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8gYSBzdHJmZGluc2VydCBzdHJ1Y3R1cmUgKi8KKwkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIWFyZykKKwkJCXJldHVybiAwOworCQlpZiAodW1vdmUodGNwLCBhcmcsICZzZmkpIDwgMCkgeworCQkJdHByaW50ZigiLCB7Li4ufSIpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJdHByaW50ZigiLCB7Y3RsYnVmPSIpOworCQlwcmludHN0cmJ1Zih0Y3AsICZzZmkuY3RsYnVmLCAxKTsKKwkJdHByaW50ZigiLCBkYXRhYnVmPSIpOworCQlwcmludHN0cmJ1Zih0Y3AsICZzZmkuZGF0YWJ1ZiwgMSk7CisJCXRwcmludGYoIiwgZmxhZ3M9Iik7CisJCXByaW50ZmxhZ3MobXNnZmxhZ3MsIHNmaS5mbGFncywgIlJTXz8/PyIpOworCQl0cHJpbnRmKCIsIGZpbGVkZXM9JWQsIG9mZnNldD0lZH0iLCBzZmkuZmlsZGVzLCBzZmkub2Zmc2V0KTsKKwkJcmV0dXJuIDE7CisjaWZkZWYgSV9TV1JPUFQKKwljYXNlIElfU1dST1BUOgorCQkvKiBhcmd1bWVudCBpcyBhIHNldCBvZiBmbGFncyAqLworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZsYWdzKHN0cmVhbV93cml0ZV9mbGFncywgYXJnLCAiU05EPz8/Iik7CisJCXJldHVybiAxOworI2VuZGlmIC8qIElfU1dST1BUICovCisjaWZkZWYgSV9HV1JPUFQKKwljYXNlIElfR1dST1BUOgorCQkvKiBhcmd1bWVudCBpcyBhbiBwb2ludGVyIHRvIGFuIG9wdGlvbiB3aXRoIGZsYWdzICovCisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJcmV0dXJuIDA7CisJCXRwcmludGYoIiwgWyIpOworCQlpZiAodW1vdmUodGNwLCBhcmcsICZ2YWwpIDwgMCkKKwkJCXRwcmludGYoIj8iKTsKKwkJZWxzZQorCQkJcHJpbnRmbGFncyhzdHJlYW1fd3JpdGVfZmxhZ3MsIGFyZywgIlNORD8/PyIpOworCQl0cHJpbnRmKCJdIik7CisJCXJldHVybiAxOworI2VuZGlmIC8qIElfR1dST1BUICovCisJY2FzZSBJX1NFTkRGRDoKKyNpZmRlZiBJX0NLQkFORAorCWNhc2UgSV9DS0JBTkQ6CisjZW5kaWYKKyNpZmRlZiBJX0NBTlBVVAorCWNhc2UgSV9DQU5QVVQ6CisjZW5kaWYKKwljYXNlIElfTElOSzoKKwljYXNlIElfVU5MSU5LOgorCWNhc2UgSV9QTElOSzoKKwljYXNlIElfUFVOTElOSzoKKwkJLyogYXJndW1lbnQgaXMgYSBkZWNpbWFsIGludGVnZXIgKi8KKwkJdHByaW50ZigiLCAlZCIsIGFyZyk7CisJCXJldHVybiAxOworCWNhc2UgSV9SRUNWRkQ6CisJCS8qIGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIHN0cnJlY3ZmZCBzdHJ1Y3R1cmUgKi8KKwkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgIWFyZykKKwkJCXJldHVybiAwOworCQlpZiAodW1vdmUodGNwLCBhcmcsICZzcmYpIDwgMCkgeworCQkJdHByaW50ZigiLCB7Li4ufSIpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJdHByaW50ZigiLCB7ZmQ9JWQsIHVpZD0lbHUsIGdpZD0lbHV9Iiwgc3JmLmZkLAorCQkJKHVuc2lnbmVkIGxvbmcpIHNyZi51aWQsICh1bnNpZ25lZCBsb25nKSBzcmYuZ2lkKTsKKwkJcmV0dXJuIDE7CisjaWZkZWYgSV9MSVNUCisJY2FzZSBJX0xJU1Q6CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJcmV0dXJuIDA7CisJCWlmIChhcmcgPT0gMCkgeworCQkJdHByaW50ZigiLCBOVUxMIik7CisJCQlyZXR1cm4gMTsKKwkJfQorCQlpZiAodW1vdmUodGNwLCBhcmcsICZzbCkgPCAwKSB7CisJCQl0cHJpbnRmKCIsIHsuLi59Iik7CisJCQlyZXR1cm4gMTsKKwkJfQorCQl0cHJpbnRmKCIsIHtzbF9ubW9kcz0lZCwgc2xfbW9kbGlzdD1bIiwgc2wuc2xfbm1vZHMpOworCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X3J2YWw7IGkrKykgeworCQkJaWYgKGkpCisJCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50cGF0aCh0Y3AsIChpbnQpIHNsLnNsX21vZGxpc3RbaV0ubF9uYW1lKTsKKwkJfQorCQl0cHJpbnRmKCJdfSIpOworCQlyZXR1cm4gMTsKKyNlbmRpZiAvKiBJX0xJU1QgKi8KKyNpZmRlZiBJX0FUTUFSSworCWNhc2UgSV9BVE1BUks6CisJCXRwcmludGYoIiwgIik7CisJCXByaW50eHZhbChzdHJlYW1fYXRtYXJrX29wdGlvbnMsIGFyZywgIj8/P01BUksiKTsKKwkJcmV0dXJuIDE7CisjZW5kaWYgLyogSV9BVE1BUksgKi8KKwlkZWZhdWx0OgorCQlyZXR1cm4gMDsKKwl9Cit9CisKKyNlbmRpZiAvKiAhTElOVVggJiYgIUZSRUVCU0QgKi8KKworI2VuZGlmIC8qIEhBVkVfU1lTX1NUUkVBTV9IIHx8IExJTlVYIHx8IEZSRUVCU0QgKi8KZGlmZiAtLWdpdCBhL3N5c2NhbGwtYW5kcm9pZC5oIGIvc3lzY2FsbC1hbmRyb2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk2NGIxNAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2NhbGwtYW5kcm9pZC5oCkBAIC0wLDAgKzEsMjkzIEBACisvKiBHZW5lcmF0ZWQgYXQgbGliYyBidWlsZCB0aW1lIGZyb20ga2VybmVsIHN5c2NhbGwgbGlzdC4gICovCisKKyNpZm5kZWYgX1NZU0NBTExfSAorLy8jIGVycm9yICJOZXZlciB1c2UgPGJpdHMvc3lzY2FsbC5oPiBkaXJlY3RseTsgaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4gaW5zdGVhZC4iCisjZW5kaWYKKworI2RlZmluZSBTWVNfX2xsc2VlayBfX05SX19sbHNlZWsKKyNkZWZpbmUgU1lTX19uZXdzZWxlY3QgX19OUl9fbmV3c2VsZWN0CisjZGVmaW5lIFNZU19fc3lzY3RsIF9fTlJfX3N5c2N0bAorI2RlZmluZSBTWVNfYWNjZXNzIF9fTlJfYWNjZXNzCisjZGVmaW5lIFNZU19hY2N0IF9fTlJfYWNjdAorI2RlZmluZSBTWVNfYWRkX2tleSBfX05SX2FkZF9rZXkKKyNkZWZpbmUgU1lTX2FkanRpbWV4IF9fTlJfYWRqdGltZXgKKyNkZWZpbmUgU1lTX2Fmc19zeXNjYWxsIF9fTlJfYWZzX3N5c2NhbGwKKyNkZWZpbmUgU1lTX2FsYXJtIF9fTlJfYWxhcm0KKyNkZWZpbmUgU1lTX2JkZmx1c2ggX19OUl9iZGZsdXNoCisjZGVmaW5lIFNZU19icmVhayBfX05SX2JyZWFrCisjZGVmaW5lIFNZU19icmsgX19OUl9icmsKKyNkZWZpbmUgU1lTX2NhcGdldCBfX05SX2NhcGdldAorI2RlZmluZSBTWVNfY2Fwc2V0IF9fTlJfY2Fwc2V0CisjZGVmaW5lIFNZU19jaGRpciBfX05SX2NoZGlyCisjZGVmaW5lIFNZU19jaG1vZCBfX05SX2NobW9kCisjZGVmaW5lIFNZU19jaG93biBfX05SX2Nob3duCisjZGVmaW5lIFNZU19jaG93bjMyIF9fTlJfY2hvd24zMgorI2RlZmluZSBTWVNfY2hyb290IF9fTlJfY2hyb290CisjZGVmaW5lIFNZU19jbG9ja19nZXRyZXMgX19OUl9jbG9ja19nZXRyZXMKKyNkZWZpbmUgU1lTX2Nsb2NrX2dldHRpbWUgX19OUl9jbG9ja19nZXR0aW1lCisjZGVmaW5lIFNZU19jbG9ja19uYW5vc2xlZXAgX19OUl9jbG9ja19uYW5vc2xlZXAKKyNkZWZpbmUgU1lTX2Nsb2NrX3NldHRpbWUgX19OUl9jbG9ja19zZXR0aW1lCisjZGVmaW5lIFNZU19jbG9uZSBfX05SX2Nsb25lCisjZGVmaW5lIFNZU19jbG9zZSBfX05SX2Nsb3NlCisjZGVmaW5lIFNZU19jcmVhdCBfX05SX2NyZWF0CisjZGVmaW5lIFNZU19jcmVhdGVfbW9kdWxlIF9fTlJfY3JlYXRlX21vZHVsZQorI2RlZmluZSBTWVNfZGVsZXRlX21vZHVsZSBfX05SX2RlbGV0ZV9tb2R1bGUKKyNkZWZpbmUgU1lTX2R1cCBfX05SX2R1cAorI2RlZmluZSBTWVNfZHVwMiBfX05SX2R1cDIKKyNkZWZpbmUgU1lTX2Vwb2xsX2NyZWF0ZSBfX05SX2Vwb2xsX2NyZWF0ZQorI2RlZmluZSBTWVNfZXBvbGxfY3RsIF9fTlJfZXBvbGxfY3RsCisjZGVmaW5lIFNZU19lcG9sbF93YWl0IF9fTlJfZXBvbGxfd2FpdAorI2RlZmluZSBTWVNfZXhlY3ZlIF9fTlJfZXhlY3ZlCisjZGVmaW5lIFNZU19leGl0IF9fTlJfZXhpdAorI2RlZmluZSBTWVNfZXhpdF9ncm91cCBfX05SX2V4aXRfZ3JvdXAKKyNkZWZpbmUgU1lTX2ZhZHZpc2U2NCBfX05SX2ZhZHZpc2U2NAorI2RlZmluZSBTWVNfZmFkdmlzZTY0XzY0IF9fTlJfZmFkdmlzZTY0XzY0CisjZGVmaW5lIFNZU19mY2hkaXIgX19OUl9mY2hkaXIKKyNkZWZpbmUgU1lTX2ZjaG1vZCBfX05SX2ZjaG1vZAorI2RlZmluZSBTWVNfZmNob3duIF9fTlJfZmNob3duCisjZGVmaW5lIFNZU19mY2hvd24zMiBfX05SX2ZjaG93bjMyCisjZGVmaW5lIFNZU19mY250bCBfX05SX2ZjbnRsCisjZGVmaW5lIFNZU19mY250bDY0IF9fTlJfZmNudGw2NAorI2RlZmluZSBTWVNfZmRhdGFzeW5jIF9fTlJfZmRhdGFzeW5jCisjZGVmaW5lIFNZU19mZ2V0eGF0dHIgX19OUl9mZ2V0eGF0dHIKKyNkZWZpbmUgU1lTX2ZsaXN0eGF0dHIgX19OUl9mbGlzdHhhdHRyCisjZGVmaW5lIFNZU19mbG9jayBfX05SX2Zsb2NrCisjZGVmaW5lIFNZU19mb3JrIF9fTlJfZm9yaworI2RlZmluZSBTWVNfZnJlbW92ZXhhdHRyIF9fTlJfZnJlbW92ZXhhdHRyCisjZGVmaW5lIFNZU19mc2V0eGF0dHIgX19OUl9mc2V0eGF0dHIKKyNkZWZpbmUgU1lTX2ZzdGF0IF9fTlJfZnN0YXQKKyNkZWZpbmUgU1lTX2ZzdGF0NjQgX19OUl9mc3RhdDY0CisjZGVmaW5lIFNZU19mc3RhdGZzIF9fTlJfZnN0YXRmcworI2RlZmluZSBTWVNfZnN0YXRmczY0IF9fTlJfZnN0YXRmczY0CisjZGVmaW5lIFNZU19mc3luYyBfX05SX2ZzeW5jCisjZGVmaW5lIFNZU19mdGltZSBfX05SX2Z0aW1lCisjZGVmaW5lIFNZU19mdHJ1bmNhdGUgX19OUl9mdHJ1bmNhdGUKKyNkZWZpbmUgU1lTX2Z0cnVuY2F0ZTY0IF9fTlJfZnRydW5jYXRlNjQKKyNkZWZpbmUgU1lTX2Z1dGV4IF9fTlJfZnV0ZXgKKyNkZWZpbmUgU1lTX2dldF9rZXJuZWxfc3ltcyBfX05SX2dldF9rZXJuZWxfc3ltcworI2RlZmluZSBTWVNfZ2V0X21lbXBvbGljeSBfX05SX2dldF9tZW1wb2xpY3kKKyNkZWZpbmUgU1lTX2dldF90aHJlYWRfYXJlYSBfX05SX2dldF90aHJlYWRfYXJlYQorI2RlZmluZSBTWVNfZ2V0Y3dkIF9fTlJfZ2V0Y3dkCisjZGVmaW5lIFNZU19nZXRkZW50cyBfX05SX2dldGRlbnRzCisjZGVmaW5lIFNZU19nZXRkZW50czY0IF9fTlJfZ2V0ZGVudHM2NAorI2RlZmluZSBTWVNfZ2V0ZWdpZCBfX05SX2dldGVnaWQKKyNkZWZpbmUgU1lTX2dldGVnaWQzMiBfX05SX2dldGVnaWQzMgorI2RlZmluZSBTWVNfZ2V0ZXVpZCBfX05SX2dldGV1aWQKKyNkZWZpbmUgU1lTX2dldGV1aWQzMiBfX05SX2dldGV1aWQzMgorI2RlZmluZSBTWVNfZ2V0Z2lkIF9fTlJfZ2V0Z2lkCisjZGVmaW5lIFNZU19nZXRnaWQzMiBfX05SX2dldGdpZDMyCisjZGVmaW5lIFNZU19nZXRncm91cHMgX19OUl9nZXRncm91cHMKKyNkZWZpbmUgU1lTX2dldGdyb3VwczMyIF9fTlJfZ2V0Z3JvdXBzMzIKKyNkZWZpbmUgU1lTX2dldGl0aW1lciBfX05SX2dldGl0aW1lcgorI2RlZmluZSBTWVNfZ2V0cGdpZCBfX05SX2dldHBnaWQKKyNkZWZpbmUgU1lTX2dldHBncnAgX19OUl9nZXRwZ3JwCisjZGVmaW5lIFNZU19nZXRwaWQgX19OUl9nZXRwaWQKKy8vI2RlZmluZSBTWVNfZ2V0cG1zZyBfX05SX2dldHBtc2cKKyNkZWZpbmUgU1lTX2dldHBwaWQgX19OUl9nZXRwcGlkCisjZGVmaW5lIFNZU19nZXRwcmlvcml0eSBfX05SX2dldHByaW9yaXR5CisjZGVmaW5lIFNZU19nZXRyZXNnaWQgX19OUl9nZXRyZXNnaWQKKyNkZWZpbmUgU1lTX2dldHJlc2dpZDMyIF9fTlJfZ2V0cmVzZ2lkMzIKKyNkZWZpbmUgU1lTX2dldHJlc3VpZCBfX05SX2dldHJlc3VpZAorI2RlZmluZSBTWVNfZ2V0cmVzdWlkMzIgX19OUl9nZXRyZXN1aWQzMgorI2RlZmluZSBTWVNfZ2V0cmxpbWl0IF9fTlJfZ2V0cmxpbWl0CisjZGVmaW5lIFNZU19nZXRydXNhZ2UgX19OUl9nZXRydXNhZ2UKKyNkZWZpbmUgU1lTX2dldHNpZCBfX05SX2dldHNpZAorI2RlZmluZSBTWVNfZ2V0dGlkIF9fTlJfZ2V0dGlkCisjZGVmaW5lIFNZU19nZXR0aW1lb2ZkYXkgX19OUl9nZXR0aW1lb2ZkYXkKKyNkZWZpbmUgU1lTX2dldHVpZCBfX05SX2dldHVpZAorI2RlZmluZSBTWVNfZ2V0dWlkMzIgX19OUl9nZXR1aWQzMgorI2RlZmluZSBTWVNfZ2V0eGF0dHIgX19OUl9nZXR4YXR0cgorI2RlZmluZSBTWVNfZ3R0eSBfX05SX2d0dHkKKyNkZWZpbmUgU1lTX2lkbGUgX19OUl9pZGxlCisjZGVmaW5lIFNZU19pbml0X21vZHVsZSBfX05SX2luaXRfbW9kdWxlCisjZGVmaW5lIFNZU19pb19jYW5jZWwgX19OUl9pb19jYW5jZWwKKyNkZWZpbmUgU1lTX2lvX2Rlc3Ryb3kgX19OUl9pb19kZXN0cm95CisjZGVmaW5lIFNZU19pb19nZXRldmVudHMgX19OUl9pb19nZXRldmVudHMKKyNkZWZpbmUgU1lTX2lvX3NldHVwIF9fTlJfaW9fc2V0dXAKKyNkZWZpbmUgU1lTX2lvX3N1Ym1pdCBfX05SX2lvX3N1Ym1pdAorI2RlZmluZSBTWVNfaW9jdGwgX19OUl9pb2N0bAorI2RlZmluZSBTWVNfaW9wZXJtIF9fTlJfaW9wZXJtCisjZGVmaW5lIFNZU19pb3BsIF9fTlJfaW9wbAorI2RlZmluZSBTWVNfaXBjIF9fTlJfaXBjCisjZGVmaW5lIFNZU19rZXljdGwgX19OUl9rZXljdGwKKyNkZWZpbmUgU1lTX2tpbGwgX19OUl9raWxsCisjZGVmaW5lIFNZU19sY2hvd24gX19OUl9sY2hvd24KKyNkZWZpbmUgU1lTX2xjaG93bjMyIF9fTlJfbGNob3duMzIKKyNkZWZpbmUgU1lTX2xnZXR4YXR0ciBfX05SX2xnZXR4YXR0cgorI2RlZmluZSBTWVNfbGluayBfX05SX2xpbmsKKyNkZWZpbmUgU1lTX2xpc3R4YXR0ciBfX05SX2xpc3R4YXR0cgorI2RlZmluZSBTWVNfbGxpc3R4YXR0ciBfX05SX2xsaXN0eGF0dHIKKyNkZWZpbmUgU1lTX2xvY2sgX19OUl9sb2NrCisjZGVmaW5lIFNZU19sb29rdXBfZGNvb2tpZSBfX05SX2xvb2t1cF9kY29va2llCisjZGVmaW5lIFNZU19scmVtb3ZleGF0dHIgX19OUl9scmVtb3ZleGF0dHIKKyNkZWZpbmUgU1lTX2xzZWVrIF9fTlJfbHNlZWsKKyNkZWZpbmUgU1lTX2xzZXR4YXR0ciBfX05SX2xzZXR4YXR0cgorI2RlZmluZSBTWVNfbHN0YXQgX19OUl9sc3RhdAorI2RlZmluZSBTWVNfbHN0YXQ2NCBfX05SX2xzdGF0NjQKKyNkZWZpbmUgU1lTX21hZHZpc2UgX19OUl9tYWR2aXNlCisjZGVmaW5lIFNZU19tYWR2aXNlMSBfX05SX21hZHZpc2UxCisjZGVmaW5lIFNZU19tYmluZCBfX05SX21iaW5kCisjZGVmaW5lIFNZU19taW5jb3JlIF9fTlJfbWluY29yZQorI2RlZmluZSBTWVNfbWtkaXIgX19OUl9ta2RpcgorI2RlZmluZSBTWVNfbWtub2QgX19OUl9ta25vZAorI2RlZmluZSBTWVNfbWxvY2sgX19OUl9tbG9jaworI2RlZmluZSBTWVNfbWxvY2thbGwgX19OUl9tbG9ja2FsbAorI2RlZmluZSBTWVNfbW1hcCBfX05SX21tYXAKKyNkZWZpbmUgU1lTX21tYXAyIF9fTlJfbW1hcDIKKyNkZWZpbmUgU1lTX21vZGlmeV9sZHQgX19OUl9tb2RpZnlfbGR0CisjZGVmaW5lIFNZU19tb3VudCBfX05SX21vdW50CisjZGVmaW5lIFNZU19tcHJvdGVjdCBfX05SX21wcm90ZWN0CisjZGVmaW5lIFNZU19tcHggX19OUl9tcHgKKyNkZWZpbmUgU1lTX21xX2dldHNldGF0dHIgX19OUl9tcV9nZXRzZXRhdHRyCisjZGVmaW5lIFNZU19tcV9ub3RpZnkgX19OUl9tcV9ub3RpZnkKKyNkZWZpbmUgU1lTX21xX29wZW4gX19OUl9tcV9vcGVuCisjZGVmaW5lIFNZU19tcV90aW1lZHJlY2VpdmUgX19OUl9tcV90aW1lZHJlY2VpdmUKKyNkZWZpbmUgU1lTX21xX3RpbWVkc2VuZCBfX05SX21xX3RpbWVkc2VuZAorI2RlZmluZSBTWVNfbXFfdW5saW5rIF9fTlJfbXFfdW5saW5rCisjZGVmaW5lIFNZU19tcmVtYXAgX19OUl9tcmVtYXAKKyNkZWZpbmUgU1lTX21zeW5jIF9fTlJfbXN5bmMKKyNkZWZpbmUgU1lTX211bmxvY2sgX19OUl9tdW5sb2NrCisjZGVmaW5lIFNZU19tdW5sb2NrYWxsIF9fTlJfbXVubG9ja2FsbAorI2RlZmluZSBTWVNfbXVubWFwIF9fTlJfbXVubWFwCisjZGVmaW5lIFNZU19uYW5vc2xlZXAgX19OUl9uYW5vc2xlZXAKKyNkZWZpbmUgU1lTX25mc3NlcnZjdGwgX19OUl9uZnNzZXJ2Y3RsCisjZGVmaW5lIFNZU19uaWNlIF9fTlJfbmljZQorI2RlZmluZSBTWVNfb2xkZnN0YXQgX19OUl9vbGRmc3RhdAorI2RlZmluZSBTWVNfb2xkbHN0YXQgX19OUl9vbGRsc3RhdAorI2RlZmluZSBTWVNfb2xkb2xkdW5hbWUgX19OUl9vbGRvbGR1bmFtZQorI2RlZmluZSBTWVNfb2xkc3RhdCBfX05SX29sZHN0YXQKKyNkZWZpbmUgU1lTX29sZHVuYW1lIF9fTlJfb2xkdW5hbWUKKyNkZWZpbmUgU1lTX29wZW4gX19OUl9vcGVuCisjZGVmaW5lIFNZU19wYXVzZSBfX05SX3BhdXNlCisjZGVmaW5lIFNZU19wZXJzb25hbGl0eSBfX05SX3BlcnNvbmFsaXR5CisjZGVmaW5lIFNZU19waXBlIF9fTlJfcGlwZQorI2RlZmluZSBTWVNfcGl2b3Rfcm9vdCBfX05SX3Bpdm90X3Jvb3QKKyNkZWZpbmUgU1lTX3BvbGwgX19OUl9wb2xsCisjZGVmaW5lIFNZU19wcmN0bCBfX05SX3ByY3RsCisjZGVmaW5lIFNZU19wcmVhZDY0IF9fTlJfcHJlYWQ2NAorI2RlZmluZSBTWVNfcHJvZiBfX05SX3Byb2YKKyNkZWZpbmUgU1lTX3Byb2ZpbCBfX05SX3Byb2ZpbAorI2RlZmluZSBTWVNfcHRyYWNlIF9fTlJfcHRyYWNlCisvLyNkZWZpbmUgU1lTX3B1dHBtc2cgX19OUl9wdXRwbXNnCisjZGVmaW5lIFNZU19wd3JpdGU2NCBfX05SX3B3cml0ZTY0CisjZGVmaW5lIFNZU19xdWVyeV9tb2R1bGUgX19OUl9xdWVyeV9tb2R1bGUKKyNkZWZpbmUgU1lTX3F1b3RhY3RsIF9fTlJfcXVvdGFjdGwKKyNkZWZpbmUgU1lTX3JlYWQgX19OUl9yZWFkCisjZGVmaW5lIFNZU19yZWFkYWhlYWQgX19OUl9yZWFkYWhlYWQKKyNkZWZpbmUgU1lTX3JlYWRkaXIgX19OUl9yZWFkZGlyCisjZGVmaW5lIFNZU19yZWFkbGluayBfX05SX3JlYWRsaW5rCisjZGVmaW5lIFNZU19yZWFkdiBfX05SX3JlYWR2CisjZGVmaW5lIFNZU19yZWJvb3QgX19OUl9yZWJvb3QKKyNkZWZpbmUgU1lTX3JlbWFwX2ZpbGVfcGFnZXMgX19OUl9yZW1hcF9maWxlX3BhZ2VzCisjZGVmaW5lIFNZU19yZW1vdmV4YXR0ciBfX05SX3JlbW92ZXhhdHRyCisjZGVmaW5lIFNZU19yZW5hbWUgX19OUl9yZW5hbWUKKyNkZWZpbmUgU1lTX3JlcXVlc3Rfa2V5IF9fTlJfcmVxdWVzdF9rZXkKKyNkZWZpbmUgU1lTX3Jlc3RhcnRfc3lzY2FsbCBfX05SX3Jlc3RhcnRfc3lzY2FsbAorI2RlZmluZSBTWVNfcm1kaXIgX19OUl9ybWRpcgorI2RlZmluZSBTWVNfcnRfc2lnYWN0aW9uIF9fTlJfcnRfc2lnYWN0aW9uCisjZGVmaW5lIFNZU19ydF9zaWdwZW5kaW5nIF9fTlJfcnRfc2lncGVuZGluZworI2RlZmluZSBTWVNfcnRfc2lncHJvY21hc2sgX19OUl9ydF9zaWdwcm9jbWFzaworI2RlZmluZSBTWVNfcnRfc2lncXVldWVpbmZvIF9fTlJfcnRfc2lncXVldWVpbmZvCisjZGVmaW5lIFNZU19ydF9zaWdyZXR1cm4gX19OUl9ydF9zaWdyZXR1cm4KKyNkZWZpbmUgU1lTX3J0X3NpZ3N1c3BlbmQgX19OUl9ydF9zaWdzdXNwZW5kCisjZGVmaW5lIFNZU19ydF9zaWd0aW1lZHdhaXQgX19OUl9ydF9zaWd0aW1lZHdhaXQKKyNkZWZpbmUgU1lTX3NjaGVkX2dldF9wcmlvcml0eV9tYXggX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4CisjZGVmaW5lIFNZU19zY2hlZF9nZXRfcHJpb3JpdHlfbWluIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgorI2RlZmluZSBTWVNfc2NoZWRfZ2V0YWZmaW5pdHkgX19OUl9zY2hlZF9nZXRhZmZpbml0eQorI2RlZmluZSBTWVNfc2NoZWRfZ2V0cGFyYW0gX19OUl9zY2hlZF9nZXRwYXJhbQorI2RlZmluZSBTWVNfc2NoZWRfZ2V0c2NoZWR1bGVyIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyCisjZGVmaW5lIFNZU19zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgX19OUl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwKKyNkZWZpbmUgU1lTX3NjaGVkX3NldGFmZmluaXR5IF9fTlJfc2NoZWRfc2V0YWZmaW5pdHkKKyNkZWZpbmUgU1lTX3NjaGVkX3NldHBhcmFtIF9fTlJfc2NoZWRfc2V0cGFyYW0KKyNkZWZpbmUgU1lTX3NjaGVkX3NldHNjaGVkdWxlciBfX05SX3NjaGVkX3NldHNjaGVkdWxlcgorI2RlZmluZSBTWVNfc2NoZWRfeWllbGQgX19OUl9zY2hlZF95aWVsZAorI2RlZmluZSBTWVNfc2VsZWN0IF9fTlJfc2VsZWN0CisjZGVmaW5lIFNZU19zZW5kZmlsZSBfX05SX3NlbmRmaWxlCisjZGVmaW5lIFNZU19zZW5kZmlsZTY0IF9fTlJfc2VuZGZpbGU2NAorI2RlZmluZSBTWVNfc2V0X21lbXBvbGljeSBfX05SX3NldF9tZW1wb2xpY3kKKyNkZWZpbmUgU1lTX3NldF90aHJlYWRfYXJlYSBfX05SX3NldF90aHJlYWRfYXJlYQorI2RlZmluZSBTWVNfc2V0X3RpZF9hZGRyZXNzIF9fTlJfc2V0X3RpZF9hZGRyZXNzCisjZGVmaW5lIFNZU19zZXRkb21haW5uYW1lIF9fTlJfc2V0ZG9tYWlubmFtZQorI2RlZmluZSBTWVNfc2V0ZnNnaWQgX19OUl9zZXRmc2dpZAorI2RlZmluZSBTWVNfc2V0ZnNnaWQzMiBfX05SX3NldGZzZ2lkMzIKKyNkZWZpbmUgU1lTX3NldGZzdWlkIF9fTlJfc2V0ZnN1aWQKKyNkZWZpbmUgU1lTX3NldGZzdWlkMzIgX19OUl9zZXRmc3VpZDMyCisjZGVmaW5lIFNZU19zZXRnaWQgX19OUl9zZXRnaWQKKyNkZWZpbmUgU1lTX3NldGdpZDMyIF9fTlJfc2V0Z2lkMzIKKyNkZWZpbmUgU1lTX3NldGdyb3VwcyBfX05SX3NldGdyb3VwcworI2RlZmluZSBTWVNfc2V0Z3JvdXBzMzIgX19OUl9zZXRncm91cHMzMgorI2RlZmluZSBTWVNfc2V0aG9zdG5hbWUgX19OUl9zZXRob3N0bmFtZQorI2RlZmluZSBTWVNfc2V0aXRpbWVyIF9fTlJfc2V0aXRpbWVyCisjZGVmaW5lIFNZU19zZXRwZ2lkIF9fTlJfc2V0cGdpZAorI2RlZmluZSBTWVNfc2V0cHJpb3JpdHkgX19OUl9zZXRwcmlvcml0eQorI2RlZmluZSBTWVNfc2V0cmVnaWQgX19OUl9zZXRyZWdpZAorI2RlZmluZSBTWVNfc2V0cmVnaWQzMiBfX05SX3NldHJlZ2lkMzIKKyNkZWZpbmUgU1lTX3NldHJlc2dpZCBfX05SX3NldHJlc2dpZAorI2RlZmluZSBTWVNfc2V0cmVzZ2lkMzIgX19OUl9zZXRyZXNnaWQzMgorI2RlZmluZSBTWVNfc2V0cmVzdWlkIF9fTlJfc2V0cmVzdWlkCisjZGVmaW5lIFNZU19zZXRyZXN1aWQzMiBfX05SX3NldHJlc3VpZDMyCisjZGVmaW5lIFNZU19zZXRyZXVpZCBfX05SX3NldHJldWlkCisjZGVmaW5lIFNZU19zZXRyZXVpZDMyIF9fTlJfc2V0cmV1aWQzMgorI2RlZmluZSBTWVNfc2V0cmxpbWl0IF9fTlJfc2V0cmxpbWl0CisjZGVmaW5lIFNZU19zZXRzaWQgX19OUl9zZXRzaWQKKyNkZWZpbmUgU1lTX3NldHRpbWVvZmRheSBfX05SX3NldHRpbWVvZmRheQorI2RlZmluZSBTWVNfc2V0dWlkIF9fTlJfc2V0dWlkCisjZGVmaW5lIFNZU19zZXR1aWQzMiBfX05SX3NldHVpZDMyCisjZGVmaW5lIFNZU19zZXR4YXR0ciBfX05SX3NldHhhdHRyCisjZGVmaW5lIFNZU19zZ2V0bWFzayBfX05SX3NnZXRtYXNrCisjZGVmaW5lIFNZU19zaWdhY3Rpb24gX19OUl9zaWdhY3Rpb24KKyNkZWZpbmUgU1lTX3NpZ2FsdHN0YWNrIF9fTlJfc2lnYWx0c3RhY2sKKyNkZWZpbmUgU1lTX3NpZ25hbCBfX05SX3NpZ25hbAorI2RlZmluZSBTWVNfc2lncGVuZGluZyBfX05SX3NpZ3BlbmRpbmcKKyNkZWZpbmUgU1lTX3NpZ3Byb2NtYXNrIF9fTlJfc2lncHJvY21hc2sKKyNkZWZpbmUgU1lTX3NpZ3JldHVybiBfX05SX3NpZ3JldHVybgorI2RlZmluZSBTWVNfc2lnc3VzcGVuZCBfX05SX3NpZ3N1c3BlbmQKKyNkZWZpbmUgU1lTX3NvY2tldGNhbGwgX19OUl9zb2NrZXRjYWxsCisjZGVmaW5lIFNZU19zc2V0bWFzayBfX05SX3NzZXRtYXNrCisjZGVmaW5lIFNZU19zdGF0IF9fTlJfc3RhdAorI2RlZmluZSBTWVNfc3RhdDY0IF9fTlJfc3RhdDY0CisjZGVmaW5lIFNZU19zdGF0ZnMgX19OUl9zdGF0ZnMKKyNkZWZpbmUgU1lTX3N0YXRmczY0IF9fTlJfc3RhdGZzNjQKKyNkZWZpbmUgU1lTX3N0aW1lIF9fTlJfc3RpbWUKKyNkZWZpbmUgU1lTX3N0dHkgX19OUl9zdHR5CisjZGVmaW5lIFNZU19zd2Fwb2ZmIF9fTlJfc3dhcG9mZgorI2RlZmluZSBTWVNfc3dhcG9uIF9fTlJfc3dhcG9uCisjZGVmaW5lIFNZU19zeW1saW5rIF9fTlJfc3ltbGluaworI2RlZmluZSBTWVNfc3luYyBfX05SX3N5bmMKKyNkZWZpbmUgU1lTX3N5c19rZXhlY19sb2FkIF9fTlJfc3lzX2tleGVjX2xvYWQKKyNkZWZpbmUgU1lTX3N5c2ZzIF9fTlJfc3lzZnMKKyNkZWZpbmUgU1lTX3N5c2luZm8gX19OUl9zeXNpbmZvCisjZGVmaW5lIFNZU19zeXNsb2cgX19OUl9zeXNsb2cKKyNkZWZpbmUgU1lTX3Rna2lsbCBfX05SX3Rna2lsbAorI2RlZmluZSBTWVNfdGltZSBfX05SX3RpbWUKKyNkZWZpbmUgU1lTX3RpbWVyX2NyZWF0ZSBfX05SX3RpbWVyX2NyZWF0ZQorI2RlZmluZSBTWVNfdGltZXJfZGVsZXRlIF9fTlJfdGltZXJfZGVsZXRlCisjZGVmaW5lIFNZU190aW1lcl9nZXRvdmVycnVuIF9fTlJfdGltZXJfZ2V0b3ZlcnJ1bgorI2RlZmluZSBTWVNfdGltZXJfZ2V0dGltZSBfX05SX3RpbWVyX2dldHRpbWUKKyNkZWZpbmUgU1lTX3RpbWVyX3NldHRpbWUgX19OUl90aW1lcl9zZXR0aW1lCisjZGVmaW5lIFNZU190aW1lcyBfX05SX3RpbWVzCisjZGVmaW5lIFNZU190a2lsbCBfX05SX3RraWxsCisjZGVmaW5lIFNZU190cnVuY2F0ZSBfX05SX3RydW5jYXRlCisjZGVmaW5lIFNZU190cnVuY2F0ZTY0IF9fTlJfdHJ1bmNhdGU2NAorI2RlZmluZSBTWVNfdWdldHJsaW1pdCBfX05SX3VnZXRybGltaXQKKyNkZWZpbmUgU1lTX3VsaW1pdCBfX05SX3VsaW1pdAorI2RlZmluZSBTWVNfdW1hc2sgX19OUl91bWFzaworI2RlZmluZSBTWVNfdW1vdW50IF9fTlJfdW1vdW50CisjZGVmaW5lIFNZU191bW91bnQyIF9fTlJfdW1vdW50MgorI2RlZmluZSBTWVNfdW5hbWUgX19OUl91bmFtZQorI2RlZmluZSBTWVNfdW5saW5rIF9fTlJfdW5saW5rCisjZGVmaW5lIFNZU191c2VsaWIgX19OUl91c2VsaWIKKyNkZWZpbmUgU1lTX3VzdGF0IF9fTlJfdXN0YXQKKyNkZWZpbmUgU1lTX3V0aW1lIF9fTlJfdXRpbWUKKyNkZWZpbmUgU1lTX3V0aW1lcyBfX05SX3V0aW1lcworI2RlZmluZSBTWVNfdmZvcmsgX19OUl92Zm9yaworI2RlZmluZSBTWVNfdmhhbmd1cCBfX05SX3ZoYW5ndXAKKyNkZWZpbmUgU1lTX3ZtODYgX19OUl92bTg2CisjZGVmaW5lIFNZU192bTg2b2xkIF9fTlJfdm04Nm9sZAorI2RlZmluZSBTWVNfdnNlcnZlciBfX05SX3ZzZXJ2ZXIKKyNkZWZpbmUgU1lTX3dhaXQ0IF9fTlJfd2FpdDQKKyNkZWZpbmUgU1lTX3dhaXRpZCBfX05SX3dhaXRpZAorLy9BTkRST0lECisvLyNkZWZpbmUgU1lTX3dhaXRwaWQgX19OUl93YWl0cGlkCisjZGVmaW5lIFNZU193cml0ZSBfX05SX3dyaXRlCisjZGVmaW5lIFNZU193cml0ZXYgX19OUl93cml0ZXYKZGlmZiAtLWdpdCBhL3N5c2NhbGwuYyBiL3N5c2NhbGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzc4MDliCi0tLSAvZGV2L251bGwKKysrIGIvc3lzY2FsbC5jCkBAIC0wLDAgKzEsMjgyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5OSBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgIExpbnV4IGZvciBzMzkwIHBvcnQgYnkgRC5KLiBCYXJyb3cKKyAqICAgICAgICAgICAgICAgICAgICA8YmFycm93X2RqQG1haWwueWFob28uY29tLGRqYmFycm93QGRlLmlibS5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiBzeXNjYWxsLmMsdiAxLjc5IDIwMDUvMDYvMDggMjA6NDU6Mjggcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKworI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2lmbmRlZiBIQVZFX0FORFJPSURfT1MKKyNpbmNsdWRlIDxzeXMvdXNlci5oPgorI2VuZGlmCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKworI2lmIEhBVkVfQVNNX1JFR19ICisjaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCisjICBkZWZpbmUgZnBxIGtlcm5lbF9mcHEKKyMgIGRlZmluZSBmcSBrZXJuZWxfZnEKKyMgIGRlZmluZSBmcHUga2VybmVsX2ZwdQorI2VuZGlmCisjaW5jbHVkZSA8YXNtL3JlZy5oPgorI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQorIyAgdW5kZWYgZnBxCisjICB1bmRlZiBmcQorIyAgdW5kZWYgZnB1CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9TWVNfUkVHX0gKKyNpbmNsdWRlIDxzeXMvcmVnLmg+CisjaWZuZGVmIFBUUkFDRV9QRUVLVVNSCisjIGRlZmluZSBQVFJBQ0VfUEVFS1VTUiBQVFJBQ0VfUEVFS1VTRVIKKyNlbmRpZgorI2VsaWYgZGVmaW5lZChIQVZFX0xJTlVYX1BUUkFDRV9IKQorI3VuZGVmIFBUUkFDRV9TWVNDQUxMCisjIGlmZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKKyMgIGRlZmluZSBpYTY0X2ZwcmVnIFhYWF9pYTY0X2ZwcmVnCisjIGVuZGlmCisjIGlmZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MKKyMgIGRlZmluZSBwdF9hbGxfdXNlcl9yZWdzIFhYWF9wdF9hbGxfdXNlcl9yZWdzCisjIGVuZGlmCisjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CisjIHVuZGVmIGlhNjRfZnByZWcKKyMgdW5kZWYgcHRfYWxsX3VzZXJfcmVncworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChMSU5VWCkgJiYgZGVmaW5lZCAoU1BBUkM2NCkKKyMgZGVmaW5lIHJfcGMgcl90cGMKKyMgdW5kZWYgUFRSQUNFX0dFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9HRVRSRUdTIFBUUkFDRV9HRVRSRUdTNjQKKyMgdW5kZWYgUFRSQUNFX1NFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9TRVRSRUdTIFBUUkFDRV9TRVRSRUdTNjQKKyNlbmRpZiAvKiBMSU5VWCAmJiBTUEFSQzY0ICovCisKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBkZWZpbmVkKElBNjQpCisjIGluY2x1ZGUgPGFzbS9wdHJhY2Vfb2Zmc2V0cy5oPgorIyBpbmNsdWRlIDxhc20vcnNlLmg+CisjZW5kaWYKKworI2RlZmluZSBOUl9TWVNDQUxMX0JBU0UgMAorI2lmZGVmIExJTlVYCisjaWZuZGVmIEVSRVNUQVJUU1lTCisjZGVmaW5lIEVSRVNUQVJUU1lTCTUxMgorI2VuZGlmCisjaWZuZGVmIEVSRVNUQVJUTk9JTlRSCisjZGVmaW5lIEVSRVNUQVJUTk9JTlRSCTUxMworI2VuZGlmCisjaWZuZGVmIEVSRVNUQVJUTk9IQU5ECisjZGVmaW5lIEVSRVNUQVJUTk9IQU5ECTUxNAkvKiByZXN0YXJ0IGlmIG5vIGhhbmRsZXIuLiAqLworI2VuZGlmCisjaWZuZGVmIEVOT0lPQ1RMQ01ECisjZGVmaW5lIEVOT0lPQ1RMQ01ECTUxNQkvKiBObyBpb2N0bCBjb21tYW5kICovCisjZW5kaWYKKyNpZm5kZWYgRVJFU1RBUlRfUkVTVEFSVEJMT0NLCisjZGVmaW5lIEVSRVNUQVJUX1JFU1RBUlRCTE9DSyA1MTYJLyogcmVzdGFydCBieSBjYWxsaW5nIHN5c19yZXN0YXJ0X3N5c2NhbGwgKi8KKyNlbmRpZgorI2lmbmRlZiBOU0lHCisjZGVmaW5lIE5TSUcgMzIKKyNlbmRpZgorI2lmZGVmIEFSTQorI3VuZGVmIE5TSUcKKyNkZWZpbmUgTlNJRyAzMgorI3VuZGVmIE5SX1NZU0NBTExfQkFTRQorI2RlZmluZSBOUl9TWVNDQUxMX0JBU0UgX19OUl9TWVNDQUxMX0JBU0UKKyNlbmRpZgorI2VuZGlmIC8qIExJTlVYICovCisKKyNpbmNsdWRlICJzeXNjYWxsLWFuZHJvaWQuaCIKKyNpbmNsdWRlICJzeXNjYWxsLmgiCisKKy8qIERlZmluZSB0aGVzZSBzaG9ydGhhbmQgbm90YXRpb25zIHRvIHNpbXBsaWZ5IHRoZSBzeXNjYWxsZW50IGZpbGVzLiAqLworI2RlZmluZSBURiBUUkFDRV9GSUxFCisjZGVmaW5lIFRJIFRSQUNFX0lQQworI2RlZmluZSBUTiBUUkFDRV9ORVRXT1JLCisjZGVmaW5lIFRQIFRSQUNFX1BST0NFU1MKKyNkZWZpbmUgVFMgVFJBQ0VfU0lHTkFMCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lzZW50IHN5c2VudDBbXSA9IHsKKyNpbmNsdWRlICJzeXNjYWxsZW50LmgiCit9Oworc3RhdGljIGNvbnN0IGludCBuc3lzY2FsbHMwID0gc2l6ZW9mIHN5c2VudDAgLyBzaXplb2Ygc3lzZW50MFswXTsKK2ludCBxdWFsX2ZsYWdzMFtNQVhfUVVBTFNdOworCisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMgorc3RhdGljIGNvbnN0IHN0cnVjdCBzeXNlbnQgc3lzZW50MVtdID0geworI2luY2x1ZGUgInN5c2NhbGxlbnQxLmgiCit9Oworc3RhdGljIGNvbnN0IGludCBuc3lzY2FsbHMxID0gc2l6ZW9mIHN5c2VudDEgLyBzaXplb2Ygc3lzZW50MVswXTsKK2ludCBxdWFsX2ZsYWdzMVtNQVhfUVVBTFNdOworI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lzZW50IHN5c2VudDJbXSA9IHsKKyNpbmNsdWRlICJzeXNjYWxsZW50Mi5oIgorfTsKK3N0YXRpYyBjb25zdCBpbnQgbnN5c2NhbGxzMiA9IHNpemVvZiBzeXNlbnQyIC8gc2l6ZW9mIHN5c2VudDJbMF07CitpbnQgcXVhbF9mbGFnczJbTUFYX1FVQUxTXTsKKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCisKK2NvbnN0IHN0cnVjdCBzeXNlbnQgKnN5c2VudDsKK2ludCAqcXVhbF9mbGFnczsKK2ludCBuc3lzY2FsbHM7CisKKy8qIE5vdyB1bmRlZiB0aGVtIHNpbmNlIHNob3J0IGRlZmluZXMgY2F1c2Ugd2lja2VkIG5hbWVzcGFjZSBwb2xsdXRpb24uICovCisjdW5kZWYgVEYKKyN1bmRlZiBUSQorI3VuZGVmIFROCisjdW5kZWYgVFAKKyN1bmRlZiBUUworCitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgZXJybm9lbnQwW10gPSB7CisjaW5jbHVkZSAiZXJybm9lbnQuaCIKK307CitzdGF0aWMgY29uc3QgaW50IG5lcnJub3MwID0gc2l6ZW9mIGVycm5vZW50MCAvIHNpemVvZiBlcnJub2VudDBbMF07CisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyCitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgZXJybm9lbnQxW10gPSB7CisjaW5jbHVkZSAiZXJybm9lbnQxLmgiCit9Oworc3RhdGljIGNvbnN0IGludCBuZXJybm9zMSA9IHNpemVvZiBlcnJub2VudDEgLyBzaXplb2YgZXJybm9lbnQxWzBdOworI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBlcnJub2VudDJbXSA9IHsKKyNpbmNsdWRlICJlcnJub2VudDIuaCIKK307CitzdGF0aWMgY29uc3QgaW50IG5lcnJub3MyID0gc2l6ZW9mIGVycm5vZW50MiAvIHNpemVvZiBlcnJub2VudDJbMF07CisjZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMyAqLworCitjb25zdCBjaGFyICpjb25zdCAqZXJybm9lbnQ7CitpbnQgbmVycm5vczsKKworaW50IGN1cnJlbnRfcGVyc29uYWxpdHk7CisKKyNpZm5kZWYgUEVSU09OQUxJVFkwX1dPUkRTSVpFCisjIGRlZmluZSBQRVJTT05BTElUWTBfV09SRFNJWkUgc2l6ZW9mKGxvbmcpCisjZW5kaWYKK2NvbnN0IGludCBwZXJzb25hbGl0eV93b3Jkc2l6ZVtTVVBQT1JURURfUEVSU09OQUxJVElFU10gPSB7CisJUEVSU09OQUxJVFkwX1dPUkRTSVpFLAorI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMQorCVBFUlNPTkFMSVRZMV9XT1JEU0laRSwKKyNlbmRpZgorI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMgorCVBFUlNPTkFMSVRZMl9XT1JEU0laRSwKKyNlbmRpZgorfTs7CisKK2ludAorc2V0X3BlcnNvbmFsaXR5KHBlcnNvbmFsaXR5KQoraW50IHBlcnNvbmFsaXR5OworeworCXN3aXRjaCAocGVyc29uYWxpdHkpIHsKKwljYXNlIDA6CisJCWVycm5vZW50ID0gZXJybm9lbnQwOworCQluZXJybm9zID0gbmVycm5vczA7CisJCXN5c2VudCA9IHN5c2VudDA7CisJCW5zeXNjYWxscyA9IG5zeXNjYWxsczA7CisJCWlvY3RsZW50ID0gaW9jdGxlbnQwOworCQluaW9jdGxlbnRzID0gbmlvY3RsZW50czA7CisJCXNpZ25hbGVudCA9IHNpZ25hbGVudDA7CisJCW5zaWduYWxzID0gbnNpZ25hbHMwOworCQlxdWFsX2ZsYWdzID0gcXVhbF9mbGFnczA7CisJCWJyZWFrOworCisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMgorCWNhc2UgMToKKwkJZXJybm9lbnQgPSBlcnJub2VudDE7CisJCW5lcnJub3MgPSBuZXJybm9zMTsKKwkJc3lzZW50ID0gc3lzZW50MTsKKwkJbnN5c2NhbGxzID0gbnN5c2NhbGxzMTsKKwkJaW9jdGxlbnQgPSBpb2N0bGVudDE7CisJCW5pb2N0bGVudHMgPSBuaW9jdGxlbnRzMTsKKwkJc2lnbmFsZW50ID0gc2lnbmFsZW50MTsKKwkJbnNpZ25hbHMgPSBuc2lnbmFsczE7CisJCXF1YWxfZmxhZ3MgPSBxdWFsX2ZsYWdzMTsKKwkJYnJlYWs7CisjZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMiAqLworCisjaWYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMworCWNhc2UgMjoKKwkJZXJybm9lbnQgPSBlcnJub2VudDI7CisJCW5lcnJub3MgPSBuZXJybm9zMjsKKwkJc3lzZW50ID0gc3lzZW50MjsKKwkJbnN5c2NhbGxzID0gbnN5c2NhbGxzMjsKKwkJaW9jdGxlbnQgPSBpb2N0bGVudDI7CisJCW5pb2N0bGVudHMgPSBuaW9jdGxlbnRzMjsKKwkJc2lnbmFsZW50ID0gc2lnbmFsZW50MjsKKwkJbnNpZ25hbHMgPSBuc2lnbmFsczI7CisJCXF1YWxfZmxhZ3MgPSBxdWFsX2ZsYWdzMjsKKwkJYnJlYWs7CisjZW5kaWYgLyogU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPj0gMyAqLworCisJZGVmYXVsdDoKKwkJcmV0dXJuIC0xOworCX0KKworCWN1cnJlbnRfcGVyc29uYWxpdHkgPSBwZXJzb25hbGl0eTsKKwlyZXR1cm4gMDsKK30KKworCitzdHJ1Y3QgY2FsbF9jb3VudHMgeworCXN0cnVjdCB0aW1ldmFsIHRpbWU7CisJaW50IGNhbGxzLCBlcnJvcnM7Cit9OworCitzdGF0aWMgc3RydWN0IGNhbGxfY291bnRzICpjb3VudHM7CisKK3N0YXRpYyBzdHJ1Y3QgdGltZXZhbCBzaG9ydGVzdCA9IHsgMTAwMDAwMCwgMCB9OworCitzdGF0aWMgaW50IHF1YWxfc3lzY2FsbCgpLCBxdWFsX3NpZ25hbCgpLCBxdWFsX2ZhdWx0KCksIHF1YWxfZGVzYygpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHF1YWxfb3B0aW9ucyB7CisJaW50IGJpdGZsYWc7CisJY2hhciAqb3B0aW9uX25hbWU7CisJaW50ICgqcXVhbGlmeSkoKTsKKwljaGFyICphcmd1bWVudF9uYW1lOworfSBxdWFsX29wdGlvbnNbXSA9IHsKKwl7IFFVQUxfVFJBQ0UsCSJ0cmFjZSIsCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAorCXsgUVVBTF9UUkFDRSwJInQiLAkJcXVhbF9zeXNjYWxsLAkic3lzdGVtIGNhbGwiCX0sCisJeyBRVUFMX0FCQlJFViwJImFiYnJldiIsCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAorCXsgUVVBTF9BQkJSRVYsCSJhIiwJCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAorCXsgUVVBTF9WRVJCT1NFLAkidmVyYm9zZSIsCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAorCXsgUVVBTF9WRVJCT1NFLAkidiIsCQlxdWFsX3N5c2NhbGwsCSJzeXN0ZW0gY2FsbCIJfSwKKwl7IFFVQUxfUkFXLAkicmF3IiwJCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAorCXsgUVVBTF9SQVcsCSJ4IiwJCXF1YWxfc3lzY2FsbCwJInN5c3RlbSBjYWxsIgl9LAorCXsgUVVBTF9TSUdOQUwsCSJzaWduYWwiLAlxdWFsX3NpZ25hbCwJInNpZ25hbCIJfSwKKwl7IFFVQUxfU0lHTkFMLAkic2lnbmFscyIsCXF1YWxfc2lnbmFsLAkic2lnbmFsIgl9LAorCXsgUVVBTF9TSUdOQUwsCSJzIiwJCXF1YWxfc2lnbmFsLAkic2lnbmFsIgl9LAorCXsgUVVBTF9GQVVMVCwJImZhdWx0IiwJcXVhbF9mYXVsdCwJImZhdWx0IgkJfSwKKwl7IFFVQUxfRkFVTFQsCSJmYXVsdHMiLAlxdWFsX2ZhdWx0LAkiZmF1bHQiCQl9LAorCXsgUVVBTF9GQVVMVCwJIm0iLAkJcXVhbF9mYXVsdCwJImZhdWx0IgkJfSwKKwl7IFFVQUxfUkVBRCwJInJlYWQiLAkJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKKwl7IFFVQUxfUkVBRCwJInJlYWRzIiwJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKKwl7IFFVQUxfUkVBRCwJInIiLAkJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKKwl7IFFVQUxfV1JJVEUsCSJ3cml0ZSIsCXF1YWxfZGVzYywJImRlc2NyaXB0b3IiCX0sCisJeyBRVUFMX1dSSVRFLAkid3JpdGVzIiwJcXVhbF9kZXNjLAkiZGVzY3JpcHRvciIJfSwKKwl7IFFVQUxfV1JJVEUsCSJ3IiwJCXF1YWxfZGVzYywJImRlc2NyaXB0b3IiCX0sCisJeyAwLAkJTlVMTCwJCU5VTEwsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIHZvaWQKK3F1YWxpZnlfb25lKG4sIG9wdCwgbm90LCBwZXJzKQorCWludCBuOworCWNvbnN0IHN0cnVjdCBxdWFsX29wdGlvbnMgKm9wdDsKKwlpbnQgbm90OworCWludCBwZXJzOworeworCWlmIChwZXJzID09IDAgfHwgcGVycyA8IDApIHsKKwkJaWYgKG5vdCkKKwkJCXF1YWxfZmxhZ3MwW25dICY9IH5vcHQtPmJpdGZsYWc7CisJCWVsc2UKKwkJCXF1YWxfZmxhZ3MwW25dIHw9IG9wdC0+Yml0ZmxhZzsKKwl9CisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyCisJaWYgKHBlcnMgPT0gMSB8fCBwZXJzIDwgMCkgeworCQlpZiAobm90KQorCQkJcXVhbF9mbGFnczFbbl0gJj0gfm9wdC0+Yml0ZmxhZzsKKwkJZWxzZQorCQkJcXVhbF9mbGFnczFbbl0gfD0gb3B0LT5iaXRmbGFnOworCX0KKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAyICovCisKKyNpZiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzCisJaWYgKHBlcnMgPT0gMiB8fCBwZXJzIDwgMCkgeworCQlpZiAobm90KQorCQkJcXVhbF9mbGFnczJbbl0gJj0gfm9wdC0+Yml0ZmxhZzsKKwkJZWxzZQorCQkJcXVhbF9mbGFnczJbbl0gfD0gb3B0LT5iaXRmbGFnOworCX0KKyNlbmRpZiAvKiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+PSAzICovCit9CisKK3N0YXRpYyBpbnQKK3F1YWxfc3lzY2FsbChzLCBvcHQsIG5vdCkKKwljaGFyICpzOworCWNvbnN0IHN0cnVjdCBxdWFsX29wdGlvbnMgKm9wdDsKKwlpbnQgbm90OworeworCWludCBpOworCWludCByYyA9IC0xOworCisgIAlpZiAoaXNkaWdpdCgodW5zaWduZWQgY2hhcikqcykpIHsKKyAJCWludCBpID0gYXRvaShzKTsKKwkJaWYgKGkgPCAwIHx8IGkgPj0gTUFYX1FVQUxTKQorIAkJCXJldHVybiAtMTsKKyAJCXF1YWxpZnlfb25lKGksIG9wdCwgbm90LCAtMSk7CisgCQlyZXR1cm4gMDsKKwl9CisJZm9yIChpID0gMDsgaSA8IG5zeXNjYWxsczA7IGkrKykKKwkJaWYgKHN0cmNtcChzLCBzeXNlbnQwW2ldLnN5c19uYW1lKSA9PSAwKSB7CisJCQlxdWFsaWZ5X29uZShpLCBvcHQsIG5vdCwgMCk7CisJCQlyYyA9IDA7CisJCX0KKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIKKwlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzMTsgaSsrKQorCQlpZiAoc3RyY21wKHMsIHN5c2VudDFbaV0uc3lzX25hbWUpID09IDApIHsKKwkJCXF1YWxpZnlfb25lKGksIG9wdCwgbm90LCAxKTsKKwkJCXJjID0gMDsKKwkJfQorI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKKwlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzMjsgaSsrKQorCQlpZiAoc3RyY21wKHMsIHN5c2VudDJbaV0uc3lzX25hbWUpID09IDApIHsKKwkJCXF1YWxpZnlfb25lKGksIG9wdCwgbm90LCAyKTsKKwkJCXJjID0gMDsKKwkJfQorI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMgKi8KKworCXJldHVybiByYzsKK30KKworc3RhdGljIGludAorcXVhbF9zaWduYWwocywgb3B0LCBub3QpCisJY2hhciAqczsKKwljb25zdCBzdHJ1Y3QgcXVhbF9vcHRpb25zICpvcHQ7CisJaW50IG5vdDsKK3sKKwlpbnQgaTsKKwljaGFyIGJ1ZlszMl07CisKKyAgCWlmIChpc2RpZ2l0KCh1bnNpZ25lZCBjaGFyKSpzKSkgeworIAkJaW50IHNpZ25vID0gYXRvaShzKTsKKyAJCWlmIChzaWdubyA8IDAgfHwgc2lnbm8gPj0gTUFYX1FVQUxTKQorIAkJCXJldHVybiAtMTsKKyAJCXF1YWxpZnlfb25lKHNpZ25vLCBvcHQsIG5vdCwgLTEpOworIAkJcmV0dXJuIDA7CisJfQorCWlmIChzdHJsZW4ocykgPj0gc2l6ZW9mIGJ1ZikKKwkJcmV0dXJuIC0xOworCXN0cmNweShidWYsIHMpOworCXMgPSBidWY7CisJZm9yIChpID0gMDsgc1tpXTsgaSsrKQorCQlzW2ldID0gdG91cHBlcigodW5zaWduZWQgY2hhcikoc1tpXSkpOworCWlmIChzdHJuY21wKHMsICJTSUciLCAzKSA9PSAwKQorCQlzICs9IDM7CisJZm9yIChpID0gMDsgaSA8PSBOU0lHOyBpKyspCisJCWlmIChzdHJjbXAocywgc2lnbmFtZShpKSArIDMpID09IDApIHsKKwkJCXF1YWxpZnlfb25lKGksIG9wdCwgbm90LCAtMSk7CisJCQlyZXR1cm4gMDsKKwkJfQorCXJldHVybiAtMTsKK30KKworc3RhdGljIGludAorcXVhbF9mYXVsdChzLCBvcHQsIG5vdCkKKwljaGFyICpzOworCWNvbnN0IHN0cnVjdCBxdWFsX29wdGlvbnMgKm9wdDsKKwlpbnQgbm90OworeworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludAorcXVhbF9kZXNjKHMsIG9wdCwgbm90KQorCWNoYXIgKnM7CisJY29uc3Qgc3RydWN0IHF1YWxfb3B0aW9ucyAqb3B0OworCWludCBub3Q7Cit7CisJaWYgKGlzZGlnaXQoKHVuc2lnbmVkIGNoYXIpKnMpKSB7CisJCWludCBkZXNjID0gYXRvaShzKTsKKwkJaWYgKGRlc2MgPCAwIHx8IGRlc2MgPj0gTUFYX1FVQUxTKQorCQkJcmV0dXJuIC0xOworCQlxdWFsaWZ5X29uZShkZXNjLCBvcHQsIG5vdCwgLTEpOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50Citsb29rdXBfY2xhc3MocykKKwljaGFyICpzOworeworCWlmIChzdHJjbXAocywgImZpbGUiKSA9PSAwKQorCQlyZXR1cm4gVFJBQ0VfRklMRTsKKwlpZiAoc3RyY21wKHMsICJpcGMiKSA9PSAwKQorCQlyZXR1cm4gVFJBQ0VfSVBDOworCWlmIChzdHJjbXAocywgIm5ldHdvcmsiKSA9PSAwKQorCQlyZXR1cm4gVFJBQ0VfTkVUV09SSzsKKwlpZiAoc3RyY21wKHMsICJwcm9jZXNzIikgPT0gMCkKKwkJcmV0dXJuIFRSQUNFX1BST0NFU1M7CisJaWYgKHN0cmNtcChzLCAic2lnbmFsIikgPT0gMCkKKwkJcmV0dXJuIFRSQUNFX1NJR05BTDsKKwlyZXR1cm4gLTE7Cit9CisKK3ZvaWQKK3F1YWxpZnkocykKK2NoYXIgKnM7Cit7CisJY29uc3Qgc3RydWN0IHF1YWxfb3B0aW9ucyAqb3B0OworCWludCBub3Q7CisJY2hhciAqcDsKKwlpbnQgaSwgbjsKKworCW9wdCA9ICZxdWFsX29wdGlvbnNbMF07CisJZm9yIChpID0gMDsgKHAgPSBxdWFsX29wdGlvbnNbaV0ub3B0aW9uX25hbWUpOyBpKyspIHsKKwkJbiA9IHN0cmxlbihwKTsKKwkJaWYgKHN0cm5jbXAocywgcCwgbikgPT0gMCAmJiBzW25dID09ICc9JykgeworCQkJb3B0ID0gJnF1YWxfb3B0aW9uc1tpXTsKKwkJCXMgKz0gbiArIDE7CisJCQlicmVhazsKKwkJfQorCX0KKwlub3QgPSAwOworCWlmICgqcyA9PSAnIScpIHsKKwkJbm90ID0gMTsKKwkJcysrOworCX0KKwlpZiAoc3RyY21wKHMsICJub25lIikgPT0gMCkgeworCQlub3QgPSAxIC0gbm90OworCQlzID0gImFsbCI7CisJfQorCWlmIChzdHJjbXAocywgImFsbCIpID09IDApIHsKKwkJZm9yIChpID0gMDsgaSA8IE1BWF9RVUFMUzsgaSsrKSB7CisJCQlxdWFsaWZ5X29uZShpLCBvcHQsIG5vdCwgLTEpOworCQl9CisJCXJldHVybjsKKwl9CisJZm9yIChpID0gMDsgaSA8IE1BWF9RVUFMUzsgaSsrKSB7CisJCXF1YWxpZnlfb25lKGksIG9wdCwgIW5vdCwgLTEpOworCX0KKwlmb3IgKHAgPSBzdHJ0b2socywgIiwiKTsgcDsgcCA9IHN0cnRvayhOVUxMLCAiLCIpKSB7CisJCWlmIChvcHQtPmJpdGZsYWcgPT0gUVVBTF9UUkFDRSAmJiAobiA9IGxvb2t1cF9jbGFzcyhwKSkgPiAwKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgbnN5c2NhbGxzMDsgaSsrKQorCQkJCWlmIChzeXNlbnQwW2ldLnN5c19mbGFncyAmIG4pCisJCQkJCXF1YWxpZnlfb25lKGksIG9wdCwgbm90LCAwKTsKKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIKKwkJCWZvciAoaSA9IDA7IGkgPCBuc3lzY2FsbHMxOyBpKyspCisJCQkJaWYgKHN5c2VudDFbaV0uc3lzX2ZsYWdzICYgbikKKwkJCQkJcXVhbGlmeV9vbmUoaSwgb3B0LCBub3QsIDEpOworI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDIgKi8KKworI2lmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMKKwkJCWZvciAoaSA9IDA7IGkgPCBuc3lzY2FsbHMyOyBpKyspCisJCQkJaWYgKHN5c2VudDJbaV0uc3lzX2ZsYWdzICYgbikKKwkJCQkJcXVhbGlmeV9vbmUoaSwgb3B0LCBub3QsIDIpOworI2VuZGlmIC8qIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID49IDMgKi8KKworCQkJY29udGludWU7CisJCX0KKwkJaWYgKG9wdC0+cXVhbGlmeShwLCBvcHQsIG5vdCkpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAic3RyYWNlOiBpbnZhbGlkICVzIGAlcydcbiIsCisJCQkJb3B0LT5hcmd1bWVudF9uYW1lLCBwKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9CisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZAorZHVtcGlvKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoc3lzZXJyb3IodGNwKSkKKwkJcmV0dXJuOworCWlmICh0Y3AtPnVfYXJnWzBdIDwgMCB8fCB0Y3AtPnVfYXJnWzBdID49IE1BWF9RVUFMUykKKwkJcmV0dXJuOworCXN3aXRjaCAoa25vd25fc2Nubyh0Y3ApKSB7CisJY2FzZSBTWVNfcmVhZDoKKyNpZmRlZiBTWVNfcHJlYWQ2NAorCWNhc2UgU1lTX3ByZWFkNjQ6CisjZW5kaWYKKyNpZiBkZWZpbmVkIFNZU19wcmVhZCAmJiBTWVNfcHJlYWQ2NCAhPSBTWVNfcHJlYWQKKwljYXNlIFNZU19wcmVhZDoKKyNlbmRpZgorI2lmZGVmIFNZU19yZWN2CisJY2FzZSBTWVNfcmVjdjoKKyNlbGlmIGRlZmluZWQgU1lTX3N1Yl9yZWN2CisJY2FzZSBTWVNfc3ViX3JlY3Y6CisjZW5kaWYKKyNpZmRlZiBTWVNfcmVjdmZyb20KKwljYXNlIFNZU19yZWN2ZnJvbToKKyNlbGlmIGRlZmluZWQgU1lTX3N1Yl9yZWN2ZnJvbQorCWNhc2UgU1lTX3N1Yl9yZWN2ZnJvbToKKyNlbmRpZgorCQlpZiAocXVhbF9mbGFnc1t0Y3AtPnVfYXJnWzBdXSAmIFFVQUxfUkVBRCkKKwkJCWR1bXBzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCB0Y3AtPnVfcnZhbCk7CisJCWJyZWFrOworCWNhc2UgU1lTX3dyaXRlOgorI2lmZGVmIFNZU19wd3JpdGU2NAorCWNhc2UgU1lTX3B3cml0ZTY0OgorI2VuZGlmCisjaWYgZGVmaW5lZCBTWVNfcHdyaXRlICYmIFNZU19wd3JpdGU2NCAhPSBTWVNfcHdyaXRlCisJY2FzZSBTWVNfcHdyaXRlOgorI2VuZGlmCisjaWZkZWYgU1lTX3NlbmQKKwljYXNlIFNZU19zZW5kOgorI2VsaWYgZGVmaW5lZCBTWVNfc3ViX3NlbmQKKwljYXNlIFNZU19zdWJfc2VuZDoKKyNlbmRpZgorI2lmZGVmIFNZU19zZW5kdG8KKwljYXNlIFNZU19zZW5kdG86CisjZWxpZiBkZWZpbmVkIFNZU19zdWJfc2VuZHRvCisJY2FzZSBTWVNfc3ViX3NlbmR0bzoKKyNlbmRpZgorCQlpZiAocXVhbF9mbGFnc1t0Y3AtPnVfYXJnWzBdXSAmIFFVQUxfV1JJVEUpCisJCQlkdW1wc3RyKHRjcCwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCWJyZWFrOworI2lmZGVmIFNZU19yZWFkdgorICAgICAgICBjYXNlIFNZU19yZWFkdjoKKyAgICAgICAgICAgICAgICBpZiAocXVhbF9mbGFnc1t0Y3AtPnVfYXJnWzBdXSAmIFFVQUxfUkVBRCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGR1bXBpb3YodGNwLCB0Y3AtPnVfYXJnWzJdLCB0Y3AtPnVfYXJnWzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorI2lmZGVmIFNZU193cml0ZXYKKyAgICAgICAgY2FzZSBTWVNfd3JpdGV2OgorCisgICAgICAgICAgICAgICAgaWYgKHF1YWxfZmxhZ3NbdGNwLT51X2FyZ1swXV0gJiBRVUFMX1dSSVRFKQorICAgICAgICAgICAgICAgICAgICAgICAgZHVtcGlvdih0Y3AsIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbMV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisJfQorfQorCisjaWZuZGVmIEZSRUVCU0QKK2VudW0gc3ViY2FsbF9zdHlsZSB7IHNoaWZ0X3N0eWxlLCBkZXJlZl9zdHlsZSwgbWFza19zdHlsZSwgZG9vcl9zdHlsZSB9OworI2Vsc2UgLyogRlJFRUJTRCAqLworZW51bSBzdWJjYWxsX3N0eWxlIHsgc2hpZnRfc3R5bGUsIGRlcmVmX3N0eWxlLCBtYXNrX3N0eWxlLCBkb29yX3N0eWxlLCB0YWJsZV9zdHlsZSB9OworCitzdHJ1Y3Qgc3ViY2FsbCB7CisgIGludCBjYWxsOworICBpbnQgbnN1YmNhbGxzOworICBpbnQgc3ViY2FsbHNbNV07Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHN1YmNhbGwgc3ViY2FsbHNfdGFibGVbXSA9IHsKKyAgeyBTWVNfc2htc3lzLCA1LCB7IFNZU19zaG1hdCwgU1lTX3NobWN0bCwgU1lTX3NobWR0LCBTWVNfc2htZ2V0LCBTWVNfc2htY3RsIH0gfSwKKyNpZmRlZiBTWVNfc2VtY29uZmlnCisgIHsgU1lTX3NlbXN5cywgNCwgeyBTWVNfX19zZW1jdGwsIFNZU19zZW1nZXQsIFNZU19zZW1vcCwgU1lTX3NlbWNvbmZpZyB9IH0sCisjZWxzZQorICB7IFNZU19zZW1zeXMsIDMsIHsgU1lTX19fc2VtY3RsLCBTWVNfc2VtZ2V0LCBTWVNfc2Vtb3AgfSB9LAorI2VuZGlmCisgIHsgU1lTX21zZ3N5cywgNCwgeyBTWVNfbXNnY3RsLCBTWVNfbXNnZ2V0LCBTWVNfbXNnc25kLCBTWVNfbXNncmN2IH0gfSwKK307CisjZW5kaWYgLyogRlJFRUJTRCAqLworCisjaWYgIShkZWZpbmVkKExJTlVYKSAmJiAoIGRlZmluZWQoQUxQSEEpIHx8IGRlZmluZWQoTUlQUykgKSkKKworc3RhdGljIGNvbnN0IGludCBzb2NrZXRfbWFwIFtdID0geworCSAgICAgICAvKiBTWVNfU09DS0VUICAgICAgKi8gOTcsCisJICAgICAgIC8qIFNZU19CSU5EICAgICAgICAqLyAxMDQsCisJICAgICAgIC8qIFNZU19DT05ORUNUICAgICAqLyA5OCwKKwkgICAgICAgLyogU1lTX0xJU1RFTiAgICAgICovIDEwNiwKKwkgICAgICAgLyogU1lTX0FDQ0VQVCAgICAgICovIDk5LAorCSAgICAgICAvKiBTWVNfR0VUU09DS05BTUUgKi8gMTUwLAorCSAgICAgICAvKiBTWVNfR0VUUEVFUk5BTUUgKi8gMTQxLAorCSAgICAgICAvKiBTWVNfU09DS0VUUEFJUiAgKi8gMTM1LAorCSAgICAgICAvKiBTWVNfU0VORCAgICAgICAgKi8gMTAxLAorCSAgICAgICAvKiBTWVNfUkVDViAgICAgICAgKi8gMTAyLAorCSAgICAgICAvKiBTWVNfU0VORFRPICAgICAgKi8gMTMzLAorCSAgICAgICAvKiBTWVNfUkVDVkZST00gICAgKi8gMTI1LAorCSAgICAgICAvKiBTWVNfU0hVVERPV04gICAgKi8gMTM0LAorCSAgICAgICAvKiBTWVNfU0VUU09DS09QVCAgKi8gMTA1LAorCSAgICAgICAvKiBTWVNfR0VUU09DS09QVCAgKi8gMTE4LAorCSAgICAgICAvKiBTWVNfU0VORE1TRyAgICAgKi8gMTE0LAorCSAgICAgICAvKiBTWVNfUkVDVk1TRyAgICAgKi8gMTEzCit9OworCisjaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCitzdGF0aWMgdm9pZAorc3BhcmNfc29ja2V0X2RlY29kZSAodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXZvbGF0aWxlIGxvbmcgYWRkcjsKKwl2b2xhdGlsZSBpbnQgaSwgbjsKKworCWlmICh0Y3AtPnVfYXJnIFswXSA8IDEgfHwgdGNwLT51X2FyZyBbMF0gPiBzaXplb2Yoc29ja2V0X21hcCkvc2l6ZW9mKGludCkrMSl7CisJCXJldHVybjsKKwl9CisJdGNwLT5zY25vID0gc29ja2V0X21hcCBbdGNwLT51X2FyZyBbMF0tMV07CisJbiA9IHRjcC0+dV9uYXJncyA9IHN5c2VudCBbdGNwLT5zY25vXS5uYXJnczsKKwlhZGRyID0gdGNwLT51X2FyZyBbMV07CisJZm9yIChpID0gMDsgaSA8IG47IGkrKyl7CisJICAgICAgICBpbnQgYXJnOworCQlpZiAodW1vdmVuICh0Y3AsIGFkZHIsIHNpemVvZiAoYXJnKSwgKHZvaWQgKikgJmFyZykgPCAwKQorCQkJYXJnID0gMDsKKwkJdGNwLT51X2FyZyBbaV0gPSBhcmc7CisJCWFkZHIgKz0gc2l6ZW9mIChhcmcpOworCX0KK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZAorZGVjb2RlX3N1YmNhbGwodGNwLCBzdWJjYWxsLCBuc3ViY2FsbHMsIHN0eWxlKQorc3RydWN0IHRjYiAqdGNwOworaW50IHN1YmNhbGw7CitpbnQgbnN1YmNhbGxzOworZW51bSBzdWJjYWxsX3N0eWxlIHN0eWxlOworeworCXVuc2lnbmVkIGxvbmcgYWRkciwgbWFzazsKKwlpbnQgaTsKKwlpbnQgc2l6ZSA9IHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldOworCisJc3dpdGNoIChzdHlsZSkgeworCWNhc2Ugc2hpZnRfc3R5bGU6CisJCWlmICh0Y3AtPnVfYXJnWzBdIDwgMCB8fCB0Y3AtPnVfYXJnWzBdID49IG5zdWJjYWxscykKKwkJCXJldHVybjsKKwkJdGNwLT5zY25vID0gc3ViY2FsbCArIHRjcC0+dV9hcmdbMF07CisJCWlmIChzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQllbHNlCisJCQl0Y3AtPnVfbmFyZ3MtLTsKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKQorCQkJdGNwLT51X2FyZ1tpXSA9IHRjcC0+dV9hcmdbaSArIDFdOworCQlicmVhazsKKwljYXNlIGRlcmVmX3N0eWxlOgorCQlpZiAodGNwLT51X2FyZ1swXSA8IDAgfHwgdGNwLT51X2FyZ1swXSA+PSBuc3ViY2FsbHMpCisJCQlyZXR1cm47CisJCXRjcC0+c2NubyA9IHN1YmNhbGwgKyB0Y3AtPnVfYXJnWzBdOworCQlhZGRyID0gdGNwLT51X2FyZ1sxXTsKKwkJZm9yIChpID0gMDsgaSA8IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOyBpKyspIHsKKwkJCWlmIChzaXplID09IHNpemVvZihpbnQpKSB7CisJCQkJdW5zaWduZWQgaW50IGFyZzsKKwkJCQlpZiAodW1vdmUodGNwLCBhZGRyLCAmYXJnKSA8IDApCisJCQkJCWFyZyA9IDA7CisJCQkJdGNwLT51X2FyZ1tpXSA9IGFyZzsKKwkJCX0KKwkJCWVsc2UgaWYgKHNpemUgPT0gc2l6ZW9mKGxvbmcpKSB7CisJCQkJdW5zaWduZWQgbG9uZyBhcmc7CisJCQkJaWYgKHVtb3ZlKHRjcCwgYWRkciwgJmFyZykgPCAwKQorCQkJCQlhcmcgPSAwOworCQkJCXRjcC0+dV9hcmdbaV0gPSBhcmc7CisJCQl9CisJCQllbHNlCisJCQkJYWJvcnQoKTsKKwkJCWFkZHIgKz0gc2l6ZTsKKwkJfQorCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJYnJlYWs7CisJY2FzZSBtYXNrX3N0eWxlOgorCQltYXNrID0gKHRjcC0+dV9hcmdbMF0gPj4gOCkgJiAweGZmOworCQlmb3IgKGkgPSAwOyBtYXNrOyBpKyspCisJCQltYXNrID4+PSAxOworCQlpZiAoaSA+PSBuc3ViY2FsbHMpCisJCQlyZXR1cm47CisJCXRjcC0+dV9hcmdbMF0gJj0gMHhmZjsKKwkJdGNwLT5zY25vID0gc3ViY2FsbCArIGk7CisJCWlmIChzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQlicmVhazsKKwljYXNlIGRvb3Jfc3R5bGU6CisJCS8qCisJCSAqIE9oLCB5dWNrLiAgVGhlIGNhbGwgY29kZSBpcyB0aGUgKnNpeHRoKiBhcmd1bWVudC4KKwkJICogKGRvbid0IHlvdSBtZWFuIHRoZSAqbGFzdCogYXJndW1lbnQ/IC0gSkgpCisJCSAqLworCQlpZiAodGNwLT51X2FyZ1s1XSA8IDAgfHwgdGNwLT51X2FyZ1s1XSA+PSBuc3ViY2FsbHMpCisJCQlyZXR1cm47CisJCXRjcC0+c2NubyA9IHN1YmNhbGwgKyB0Y3AtPnVfYXJnWzVdOworCQlpZiAoc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCisJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZWxzZQorCQkJdGNwLT51X25hcmdzLS07CisJCWJyZWFrOworI2lmZGVmIEZSRUVCU0QKKwljYXNlIHRhYmxlX3N0eWxlOgorCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHN1YmNhbGxzX3RhYmxlKSAvIHNpemVvZihzdHJ1Y3Qgc3ViY2FsbCk7IGkrKykKKwkJCWlmIChzdWJjYWxsc190YWJsZVtpXS5jYWxsID09IHRjcC0+c2NubykgYnJlYWs7CisJCWlmIChpIDwgc2l6ZW9mKHN1YmNhbGxzX3RhYmxlKSAvIHNpemVvZihzdHJ1Y3Qgc3ViY2FsbCkgJiYKKwkJICAgIHRjcC0+dV9hcmdbMF0gPj0gMCAmJiB0Y3AtPnVfYXJnWzBdIDwgc3ViY2FsbHNfdGFibGVbaV0ubnN1YmNhbGxzKSB7CisJCQl0Y3AtPnNjbm8gPSBzdWJjYWxsc190YWJsZVtpXS5zdWJjYWxsc1t0Y3AtPnVfYXJnWzBdXTsKKwkJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKKwkJCQl0Y3AtPnVfYXJnW2ldID0gdGNwLT51X2FyZ1tpICsgMV07CisJCX0KKwkJYnJlYWs7CisjZW5kaWYgLyogRlJFRUJTRCAqLworCX0KK30KKyNlbmRpZgorCitzdHJ1Y3QgdGNiICp0Y3BfbGFzdCA9IE5VTEw7CisKK3N0YXRpYyBpbnQKK2ludGVybmFsX3N5c2NhbGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCS8qCisJICogV2UgbXVzdCBhbHdheXMgdHJhY2UgYSBmZXcgY3JpdGljYWwgc3lzdGVtIGNhbGxzIGluIG9yZGVyIHRvCisJICogY29ycmVjdGx5IHN1cHBvcnQgZm9sbG93aW5nIGZvcmtzIGluIHRoZSBwcmVzZW5jZSBvZiB0cmFjaW5nCisJICogcXVhbGlmaWVycy4KKwkgKi8KKwlzd2l0Y2ggKGtub3duX3Njbm8odGNwKSkgeworI2lmZGVmIFNZU19mb3JrCisJY2FzZSBTWVNfZm9yazoKKyNlbmRpZgorI2lmZGVmIFNZU192Zm9yaworCWNhc2UgU1lTX3Zmb3JrOgorI2VuZGlmCisjaWZkZWYgU1lTX2ZvcmsxCisJY2FzZSBTWVNfZm9yazE6CisjZW5kaWYKKyNpZmRlZiBTWVNfZm9ya2FsbAorCWNhc2UgU1lTX2ZvcmthbGw6CisjZW5kaWYKKyNpZmRlZiBTWVNfcmZvcmsxCisJY2FzZSBTWVNfcmZvcmsxOgorI2VuZGlmCisjaWZkZWYgU1lTX3Jmb3JrYWxsCisJY2FzZSBTWVNfcmZvcmthbGw6CisjZW5kaWYKKyNpZmRlZiBTWVNfcmZvcmsKKwljYXNlIFNZU19yZm9yazoKKyNlbmRpZgorCQlpbnRlcm5hbF9mb3JrKHRjcCk7CisJCWJyZWFrOworI2lmZGVmIFNZU19jbG9uZQorCWNhc2UgU1lTX2Nsb25lOgorCQlpbnRlcm5hbF9jbG9uZSh0Y3ApOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFNZU19jbG9uZTIKKwljYXNlIFNZU19jbG9uZTI6CisJCWludGVybmFsX2Nsb25lKHRjcCk7CisJCWJyZWFrOworI2VuZGlmCisjaWZkZWYgU1lTX2V4ZWN2CisJY2FzZSBTWVNfZXhlY3Y6CisjZW5kaWYKKyNpZmRlZiBTWVNfZXhlY3ZlCisJY2FzZSBTWVNfZXhlY3ZlOgorI2VuZGlmCisjaWZkZWYgU1lTX3JleGVjdmUKKwljYXNlIFNZU19yZXhlY3ZlOgorI2VuZGlmCisJCWludGVybmFsX2V4ZWModGNwKTsKKwkJYnJlYWs7CisKKyNpZmRlZiBTWVNfd2FpdAorCWNhc2UgU1lTX3dhaXQ6CisjZW5kaWYKKyNpZmRlZiBTWVNfd2FpdDQKKwljYXNlIFNZU193YWl0NDoKKyNlbmRpZgorI2lmZGVmIFNZUzMyX3dhaXQ0CisJY2FzZSBTWVMzMl93YWl0NDoKKyNlbmRpZgorI2lmZGVmIFNZU193YWl0cGlkCisJY2FzZSBTWVNfd2FpdHBpZDoKKyNlbmRpZgorI2lmZGVmIFNZU193YWl0c3lzCisJY2FzZSBTWVNfd2FpdHN5czoKKyNlbmRpZgorCQlpbnRlcm5hbF93YWl0KHRjcCwgMik7CisJCWJyZWFrOworI2lmZGVmIFNZU193YWl0aWQKKwljYXNlIFNZU193YWl0aWQ6CisJCWludGVybmFsX3dhaXQodGNwLCAzKTsKKwkJYnJlYWs7CisjZW5kaWYKKworI2lmZGVmIFNZU19leGl0CisJY2FzZSBTWVNfZXhpdDoKKyNlbmRpZgorI2lmZGVmIFNZUzMyX2V4aXQKKwljYXNlIFNZUzMyX2V4aXQ6CisjZW5kaWYKKyNpZmRlZiBfX05SX2V4aXRfZ3JvdXAKKwljYXNlIF9fTlJfZXhpdF9ncm91cDoKKyNlbmRpZgorI2lmZGVmIElBNjQKKwljYXNlIDI1MjogLyogSUEtMzIgX19OUl9leGl0X2dyb3VwICovCisjZW5kaWYKKwkJaW50ZXJuYWxfZXhpdCh0Y3ApOworCQlicmVhazsKKwl9CisJcmV0dXJuIDA7Cit9CisKKworI2lmZGVmIExJTlVYCisjaWYgZGVmaW5lZCAoSTM4NikKKwlzdGF0aWMgbG9uZyBlYXg7CisjZWxpZiBkZWZpbmVkIChJQTY0KQorCWxvbmcgcjgsIHIxMCwgcHNyOworCWxvbmcgaWEzMiA9IDA7CisjZWxpZiBkZWZpbmVkIChQT1dFUlBDKQorCXN0YXRpYyBsb25nIHJlc3VsdCxmbGFnczsKKyNlbGlmIGRlZmluZWQgKE02OEspCisJc3RhdGljIGludCBkMDsKKyNlbGlmIGRlZmluZWQgKEFSTSkKKwlzdGF0aWMgc3RydWN0IHB0X3JlZ3MgcmVnczsKKyNlbGlmIGRlZmluZWQgKEFMUEhBKQorCXN0YXRpYyBsb25nIHIwOworCXN0YXRpYyBsb25nIGEzOworI2VsaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCisJc3RhdGljIHN0cnVjdCByZWdzIHJlZ3M7CisJc3RhdGljIHVuc2lnbmVkIGxvbmcgdHJhcDsKKyNlbGlmIGRlZmluZWQoTUlQUykKKwlzdGF0aWMgbG9uZyBhMzsKKwlzdGF0aWMgbG9uZyByMjsKKyNlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKKwlzdGF0aWMgbG9uZyBncHIyOworCXN0YXRpYyBsb25nIHBjOworCXN0YXRpYyBsb25nIHN5c2NhbGxfbW9kZTsKKyNlbGlmIGRlZmluZWQoSFBQQSkKKwlzdGF0aWMgbG9uZyByMjg7CisjZWxpZiBkZWZpbmVkKFNIKQorICAgICAgIHN0YXRpYyBsb25nIHIwOworI2VsaWYgZGVmaW5lZChTSDY0KQorICAgICAgIHN0YXRpYyBsb25nIHI5OworI2VsaWYgZGVmaW5lZChYODZfNjQpCisgICAgICAgc3RhdGljIGxvbmcgcmF4OworI2VuZGlmCisjZW5kaWYgLyogTElOVVggKi8KKyNpZmRlZiBGUkVFQlNECisJc3RydWN0IHJlZyByZWdzOworI2VuZGlmIC8qIEZSRUVCU0QgKi8KKworaW50CitnZXRfc2Nubyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJbG9uZyBzY25vID0gMDsKKyNpZm5kZWYgVVNFX1BST0NGUworCWludCBwaWQgPSB0Y3AtPnBpZDsKKyNlbmRpZiAvKiAhUFJPQ0ZTICovCisKKyNpZmRlZiBMSU5VWAorI2lmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKKwlpZiAodGNwLT5mbGFncyAmIFRDQl9XQUlURVhFQ1ZFKSB7CisJCS8qCisJCSAqIFdoZW4gdGhlIGV4ZWN2ZSBzeXN0ZW0gY2FsbCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LCB0aGUKKwkJICogbmV3IHByb2Nlc3Mgc3RpbGwgaGFzIC1FTk9TWVMgKG9sZCBzdHlsZSkgb3IgX19OUl9leGVjdmUKKwkJICogKG5ldyBzdHlsZSkgaW4gZ3ByMi4gIFdlIGNhbm5vdCByZWNvdmVyIHRoZSBzY25vIGFnYWluCisJCSAqIGJ5IGRpc2Fzc2VtYmx5LCBiZWNhdXNlIHRoZSBpbWFnZSB0aGF0IGV4ZWN1dGVkIHRoZQorCQkgKiBzeXNjYWxsIGlzIGdvbmUgbm93LiAgRm9ydHVuYXRlbHksIHdlIGRvbid0IHdhbnQgaXQuICBXZQorCQkgKiBsZWF2ZSB0aGUgZmxhZyBzZXQgc28gdGhhdCBzeXNjYWxsX2ZpeHVwIGNhbiBmYWtlIHRoZQorCQkgKiByZXN1bHQuCisJCSAqLworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpCisJCQlyZXR1cm4gMTsKKwkJLyoKKwkJICogVGhpcyBpcyB0aGUgU0lHVFJBUCBhZnRlciBleGVjdmUuICBXZSBjYW5ub3QgdHJ5IHRvIHJlYWQKKwkJICogdGhlIHN5c3RlbSBjYWxsIGhlcmUgZWl0aGVyLgorCQkgKi8KKwkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7CisJCXJldHVybiAwOworCX0KKworCWlmICh1cGVlayhwaWQsIFBUX0dQUjIsICZzeXNjYWxsX21vZGUpIDwgMCkKKwkJCXJldHVybiAtMTsKKworCWlmIChzeXNjYWxsX21vZGUgIT0gLUVOT1NZUykgeworCQkvKgorIAkJICogU2luY2Uga2VybmVsIHZlcnNpb24gMi41LjQ0IHRoZSBzY25vIGdldHMgcGFzc2VkIGluIGdwcjIuCisJCSAqLworCQlzY25vID0gc3lzY2FsbF9tb2RlOworCX0gZWxzZSB7CisJICAgICAgIAkvKgorCQkgKiBPbGQgc3R5bGUgb2YgInBhc3NpbmciIHRoZSBzY25vIHZpYSB0aGUgU1ZDIGluc3RydWN0aW9uLgorCQkgKi8KKworCQlsb25nIG9wY29kZSwgb2Zmc2V0X3JlZywgdG1wOworCQl2b2lkICogc3ZjX2FkZHI7CisJCWludCBncHJfb2Zmc2V0WzE2XSA9IHtQVF9HUFIwLCAgUFRfR1BSMSwgIFBUX09SSUdHUFIyLCBQVF9HUFIzLAorCQkJCSAgICAgIFBUX0dQUjQsICBQVF9HUFI1LCAgUFRfR1BSNiwgICAgIFBUX0dQUjcsCisJCQkJICAgICAgUFRfR1BSOCwgIFBUX0dQUjksICBQVF9HUFIxMCwgICAgUFRfR1BSMTEsCisJCQkJICAgICAgUFRfR1BSMTIsIFBUX0dQUjEzLCBQVF9HUFIxNCwgICAgUFRfR1BSMTV9OworCisJCWlmICh1cGVlayhwaWQsIFBUX1BTV0FERFIsICZwYykgPCAwKQorCQkJcmV0dXJuIC0xOworCQllcnJubyA9IDA7CisJCW9wY29kZSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgKGNoYXIgKikocGMtc2l6ZW9mKGxvbmcpKSwgMCk7CisJCWlmIChlcnJubykgeworCQkJcGVycm9yKCJwZWVrdGV4dChwYy1vbmV3b3JkKSIpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJLyoKKwkJICogIFdlIGhhdmUgdG8gY2hlY2sgaWYgdGhlIFNWQyBnb3QgZXhlY3V0ZWQgZGlyZWN0bHkgb3IgdmlhIGFuCisJCSAqICBFWEVDVVRFIGluc3RydWN0aW9uLiBJbiBjYXNlIG9mIEVYRUNVVEUgaXQgaXMgbmVjZXNzYXJ5IHRvIGRvCisJCSAqICBpbnN0cnVjdGlvbiBkZWNvZGluZyB0byBkZXJpdmUgdGhlIHN5c3RlbSBjYWxsIG51bWJlci4KKwkJICogIFVuZm9ydHVuYXRlbHkgdGhlIG9wY29kZSBzaXplcyBvZiBFWEVDVVRFIGFuZCBTVkMgYXJlIGRpZmZlcmVudGx5LAorCQkgKiAgc28gdGhhdCB0aGlzIGRvZXNuJ3Qgd29yayBpZiBhIFNWQyBvcGNvZGUgaXMgcGFydCBvZiBhbiBFWEVDVVRFCisJCSAqICBvcGNvZGUuIFNpbmNlIHRoZXJlIGlzIG5vIHdheSB0byBmaW5kIG91dCB0aGUgb3Bjb2RlIHNpemUgdGhpcworCQkgKiAgaXMgdGhlIGJlc3Qgd2UgY2FuIGRvLi4uCisJCSAqLworCisJCWlmICgob3Bjb2RlICYgMHhmZjAwKSA9PSAweDBhMDApIHsKKwkJCS8qIFNWQyBvcGNvZGUgKi8KKwkJCXNjbm8gPSBvcGNvZGUgJiAweGZmOworCQl9CisJCWVsc2UgeworCQkJLyogU1ZDIGdvdCBleGVjdXRlZCBieSBFWEVDVVRFIGluc3RydWN0aW9uICovCisKKwkJCS8qCisJCQkgKiAgRG8gaW5zdHJ1Y3Rpb24gZGVjb2Rpbmcgb2YgRVhFQ1VURS4gSWYgeW91IHJlYWxseSB3YW50IHRvCisJCQkgKiAgdW5kZXJzdGFuZCB0aGlzLCByZWFkIHRoZSBQcmluY2lwbGVzIG9mIE9wZXJhdGlvbnMuCisJCQkgKi8KKwkJCXN2Y19hZGRyID0gKHZvaWQgKikgKG9wY29kZSAmIDB4ZmZmKTsKKworCQkJdG1wID0gMDsKKwkJCW9mZnNldF9yZWcgPSAob3Bjb2RlICYgMHgwMDBmMDAwMCkgPj4gMTY7CisJCQlpZiAob2Zmc2V0X3JlZyAmJiAodXBlZWsocGlkLCBncHJfb2Zmc2V0W29mZnNldF9yZWddLCAmdG1wKSA8IDApKQorCQkJCXJldHVybiAtMTsKKwkJCXN2Y19hZGRyICs9IHRtcDsKKworCQkJdG1wID0gMDsKKwkJCW9mZnNldF9yZWcgPSAob3Bjb2RlICYgMHgwMDAwZjAwMCkgPj4gMTI7CisJCQlpZiAob2Zmc2V0X3JlZyAmJiAodXBlZWsocGlkLCBncHJfb2Zmc2V0W29mZnNldF9yZWddLCAmdG1wKSA8IDApKQorCQkJCXJldHVybiAtMTsKKwkJCXN2Y19hZGRyICs9IHRtcDsKKworCQkJc2NubyA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgc3ZjX2FkZHIsIDApOworCQkJaWYgKGVycm5vKQorCQkJCXJldHVybiAtMTsKKyNpZiBkZWZpbmVkKFMzOTBYKQorCQkJc2NubyA+Pj0gNDg7CisjZWxzZQorCQkJc2NubyA+Pj0gMTY7CisjZW5kaWYKKwkJCXRtcCA9IDA7CisJCQlvZmZzZXRfcmVnID0gKG9wY29kZSAmIDB4MDBmMDAwMDApID4+IDIwOworCQkJaWYgKG9mZnNldF9yZWcgJiYgKHVwZWVrKHBpZCwgZ3ByX29mZnNldFtvZmZzZXRfcmVnXSwgJnRtcCkgPCAwKSkKKwkJCQlyZXR1cm4gLTE7CisKKwkJCXNjbm8gPSAoc2NubyB8IHRtcCkgJiAweGZmOworCQl9CisJfQorI2VsaWYgZGVmaW5lZCAoUE9XRVJQQykKKwlpZiAodXBlZWsocGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjAsICZzY25vKSA8IDApCisJCXJldHVybiAtMTsKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJLyogQ2hlY2sgaWYgd2UgcmV0dXJuIGZyb20gZXhlY3ZlLiAqLworCQlpZiAoc2NubyA9PSAwICYmICh0Y3AtPmZsYWdzICYgVENCX1dBSVRFWEVDVkUpKSB7CisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKKwkJCXJldHVybiAwOworCQl9CisJfQorI2VsaWYgZGVmaW5lZCAoSTM4NikKKwlpZiAodXBlZWsocGlkLCA0Kk9SSUdfRUFYLCAmc2NubykgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkIChYODZfNjQpCisJaWYgKHVwZWVrKHBpZCwgOCpPUklHX1JBWCwgJnNjbm8pIDwgMCkKKwkJcmV0dXJuIC0xOworCisJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CisJICAJc3RhdGljIGludCBjdXJycGVycz0tMTsKKwkJbG9uZyB2YWw7CisKKwkJLyogQ2hlY2sgQ1MgcmVnaXN0ZXIgdmFsdWUuIE9uIHg4Ni02NCBsaW51eCBpdCBpczoKKwkJICogCTB4MzMJZm9yIGxvbmcgbW9kZSAoNjQgYml0KQorCQkgKiAJMHgyMwlmb3IgY29tcGF0aWJpbGl0eSBtb2RlICgzMiBiaXQpCisJCSAqIEl0IHRha2VzIG9ubHkgb25lIHB0cmFjZSBhbmQgdGh1cyBkb2Vzbid0IG5lZWQKKwkJICogdG8gYmUgY2FjaGVkLgorCQkgKi8KKwkJaWYgKHVwZWVrKHBpZCwgOCpDUywgJnZhbCkgPCAwKQorCQkJcmV0dXJuIC0xOworCQlzd2l0Y2godmFsKQorCQl7CisJCQljYXNlIDB4MjM6IGN1cnJwZXJzID0gMTsgYnJlYWs7CisJCQljYXNlIDB4MzM6IGN1cnJwZXJzID0gMDsgYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCWZwcmludGYoc3RkZXJyLCAiVW5rbm93biB2YWx1ZSBDUz0weCUwMlggd2hpbGUgIgorCQkJCQkgImRldGVjdGluZyBwZXJzb25hbGl0eSBvZiBwcm9jZXNzICIKKwkJCQkJICJQSUQ9JWRcbiIsIChpbnQpdmFsLCBwaWQpOworCQkJCWN1cnJwZXJzID0gY3VycmVudF9wZXJzb25hbGl0eTsKKwkJCQlicmVhazsKKwkJfQorI2lmIDAKKwkJLyogVGhpcyB2ZXJzaW9uIGFuYWx5emVzIHRoZSBvcGNvZGUgb2YgYSBzeXNjYWxsIGluc3RydWN0aW9uLgorCQkgKiAoaW50IDB4ODAgb24gaTM4NiB2cy4gc3lzY2FsbCBvbiB4ODYtNjQpCisJCSAqIEl0IHdvcmtzLCBidXQgaXMgdG9vIGNvbXBsaWNhdGVkLgorCQkgKi8KKwkJdW5zaWduZWQgbG9uZyB2YWwsIHJpcCwgaTsKKworCQlpZih1cGVlayhwaWQsIDgqUklQLCAmcmlwKTwwKQorCQkJcGVycm9yKCJ1cGVlayhSSVApIik7CisKKwkJLyogc2l6ZW9mKHN5c2NhbGwpID09IHNpemVvZihpbnQgMHg4MCkgPT0gMiAqLworCQlyaXAtPTI7CisJCWVycm5vID0gMDsKKworCQljYWxsID0gcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCxwaWQsKGNoYXIgKilyaXAsMCk7CisJCWlmIChlcnJubykKKwkJCXByaW50ZigicHRyYWNlX3BlZWt0ZXh0IGZhaWxlZDogJXNcbiIsCisJCQkJCXN0cmVycm9yKGVycm5vKSk7CisJCXN3aXRjaCAoY2FsbCAmIDB4ZmZmZikKKwkJeworCQkJLyogeDg2LTY0OiBzeXNjYWxsID0gMHgwZiAweDA1ICovCisJCQljYXNlIDB4MDUwZjogY3VycnBlcnMgPSAwOyBicmVhazsKKwkJCS8qIGkzODY6IGludCAweDgwID0gMHhjZCAweDgwICovCisJCQljYXNlIDB4ODBjZDogY3VycnBlcnMgPSAxOyBicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJY3VycnBlcnMgPSBjdXJyZW50X3BlcnNvbmFsaXR5OworCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQkiVW5rbm93biBzeXNjYWxsIG9wY29kZSAoMHglMDRYKSB3aGlsZSAiCisJCQkJCSJkZXRlY3RpbmcgcGVyc29uYWxpdHkgb2YgcHJvY2VzcyAiCisJCQkJCSJQSUQ9JWRcbiIsIChpbnQpY2FsbCwgcGlkKTsKKwkJCQlicmVhazsKKwkJfQorI2VuZGlmCisJCWlmKGN1cnJwZXJzICE9IGN1cnJlbnRfcGVyc29uYWxpdHkpCisJCXsKKwkJCWNoYXIgKm5hbWVzW109eyI2NCBiaXQiLCAiMzIgYml0In07CisJCQlzZXRfcGVyc29uYWxpdHkoY3VycnBlcnMpOworCQkJcHJpbnRmKCJbIFByb2Nlc3MgUElEPSVkIHJ1bnMgaW4gJXMgbW9kZS4gXVxuIiwKKwkJCQkJcGlkLCBuYW1lc1tjdXJyZW50X3BlcnNvbmFsaXR5XSk7CisJCX0KKwl9CisjZWxpZiBkZWZpbmVkKElBNjQpCisjCWRlZmluZSBJQTY0X1BTUl9JUwkoKGxvbmcpMSA8PCAzNCkKKwlpZiAodXBlZWsgKHBpZCwgUFRfQ1JfSVBTUiwgJnBzcikgPj0gMCkKKwkJaWEzMiA9IChwc3IgJiBJQTY0X1BTUl9JUykgIT0gMDsKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJaWYgKGlhMzIpIHsKKwkJCWlmICh1cGVlayhwaWQsIFBUX1IxLCAmc2NubykgPCAwKQkvKiBvcmlnIGVheCAqLworCQkJCXJldHVybiAtMTsKKwkJfSBlbHNlIHsKKwkJCWlmICh1cGVlayAocGlkLCBQVF9SMTUsICZzY25vKSA8IDApCisJCQkJcmV0dXJuIC0xOworCQl9CisJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KKwkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgeworCQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0gZWxzZSB7CisJCS8qIHN5c2NhbGwgaW4gcHJvZ3Jlc3MgKi8KKwkJaWYgKHVwZWVrIChwaWQsIFBUX1I4LCAmcjgpIDwgMCkKKwkJCXJldHVybiAtMTsKKwkJaWYgKHVwZWVrIChwaWQsIFBUX1IxMCwgJnIxMCkgPCAwKQorCQkJcmV0dXJuIC0xOworCX0KKyNlbGlmIGRlZmluZWQgKEFSTSkKKwkvKgorCSAqIFJlYWQgY29tcGxldGUgcmVnaXN0ZXIgc2V0IGluIG9uZSBnby4KKwkgKi8KKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCBwaWQsIE5VTEwsICh2b2lkICopJnJlZ3MpID09IC0xKQorCQlyZXR1cm4gLTE7CisKKwkvKgorCSAqIFdlIG9ubHkgbmVlZCB0byBncmFiIHRoZSBzeXNjYWxsIG51bWJlciBvbiBzeXNjYWxsIGVudHJ5LgorCSAqLworCWlmIChyZWdzLkFSTV9pcCA9PSAwKSB7CisJCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgeworCQkJLyogQ2hlY2sgaWYgd2UgcmV0dXJuIGZyb20gZXhlY3ZlLiAqLworCQkJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgeworCQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOworCQkJCXJldHVybiAwOworCQkJfQorCQl9CisKKwkJLyoKKwkJICogTm90ZTogd2Ugb25seSBkZWFsIHdpdGggb25seSAzMi1iaXQgQ1BVcyBoZXJlLgorCQkgKi8KKwkJaWYgKHJlZ3MuQVJNX2Nwc3IgJiAweDIwKSB7CisJCQkvKgorCQkJICogR2V0IHRoZSBUaHVtYi1tb2RlIHN5c3RlbSBjYWxsIG51bWJlcgorCQkJICovCisJCQlzY25vID0gcmVncy5BUk1fcjc7CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogR2V0IHRoZSBBUk0tbW9kZSBzeXN0ZW0gY2FsbCBudW1iZXIKKwkJCSAqLworCQkJZXJybm8gPSAwOworCQkJc2NubyA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHBpZCwgKHZvaWQgKikocmVncy5BUk1fcGMgLSA0KSwgTlVMTCk7CisJCQlpZiAoZXJybm8pCisJCQkJcmV0dXJuIC0xOworCisJCQlpZiAoc2NubyA9PSAwICYmICh0Y3AtPmZsYWdzICYgVENCX1dBSVRFWEVDVkUpKSB7CisJCQkJdGNwLT5mbGFncyAmPSB+VENCX1dBSVRFWEVDVkU7CisJCQkJcmV0dXJuIDA7CisJCQl9CisKKwkJCS8qIEhhbmRsZSB0aGUgRUFCSSBzeXNjYWxsIGNvbnZlbnRpb24uICBXZSBkbyBub3QKKwkJCSAgIGJvdGhlciBjb252ZXJ0aW5nIHN0cnVjdHVyZXMgYmV0d2VlbiB0aGUgdHdvCisJCQkgICBBQklzLCBidXQgYmFzaWMgZnVuY3Rpb25hbGl0eSBzaG91bGQgd29yayBldmVuCisJCQkgICBpZiBzdHJhY2UgYW5kIHRoZSB0cmFjZWQgcHJvZ3JhbSBoYXZlIGRpZmZlcmVudAorCQkJICAgQUJJcy4gICovCisJCQlpZiAoc2NubyA9PSAweGVmMDAwMDAwKSB7CisJCQkJc2NubyA9IHJlZ3MuQVJNX3I3OworCQkJfSBlbHNlIHsKKwkJCQlpZiAoKHNjbm8gJiAweDBmZjAwMDAwKSAhPSAweDBmOTAwMDAwKSB7CisJCQkJCWZwcmludGYoc3RkZXJyLCAic3lzY2FsbDogdW5rbm93biBzeXNjYWxsIHRyYXAgMHglMDhseFxuIiwKKwkJCQkJCXNjbm8pOworCQkJCQlyZXR1cm4gLTE7CisJCQkJfQorCisJCQkJLyoKKwkJCQkgKiBGaXh1cCB0aGUgc3lzY2FsbCBudW1iZXIKKwkJCQkgKi8KKwkJCQlzY25vICY9IDB4MDAwZmZmZmY7CisJCQl9CisJCX0KKworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAicGlkICVkIHN0cmF5IHN5c2NhbGwgZW50cnlcbiIsIHRjcC0+cGlkKTsKKwkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAicGlkICVkIHN0cmF5IHN5c2NhbGwgZXhpdFxuIiwgdGNwLT5waWQpOworCQkJdGNwLT5mbGFncyB8PSBUQ0JfSU5TWVNDQUxMOworCQl9CisJfQorI2VsaWYgZGVmaW5lZCAoTTY4SykKKwlpZiAodXBlZWsocGlkLCA0KlBUX09SSUdfRDAsICZzY25vKSA8IDApCisJCXJldHVybiAtMTsKKyNlbGlmIGRlZmluZWQgKE1JUFMpCisJaWYgKHVwZWVrKHBpZCwgUkVHX0EzLCAmYTMpIDwgMCkKKwkgIAlyZXR1cm4gLTE7CisKKwlpZighKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgeworCSAgCWlmICh1cGVlayhwaWQsIFJFR19WMCwgJnNjbm8pIDwgMCkKKwkJICAJcmV0dXJuIC0xOworCisJCWlmIChzY25vIDwgMCB8fCBzY25vID4gbnN5c2NhbGxzKSB7CisJCQlpZihhMyA9PSAwIHx8IGEzID09IC0xKSB7CisJCQkJaWYoZGVidWcpCisJCQkJCWZwcmludGYgKHN0ZGVyciwgInN0cmF5IHN5c2NhbGwgZXhpdDogdjAgPSAlbGRcbiIsIHNjbm8pOworCQkJCXJldHVybiAwOworCQkJfQorCQl9CisJfSBlbHNlIHsKKwkgIAlpZiAodXBlZWsocGlkLCBSRUdfVjAsICZyMikgPCAwKQorCSAgICAJCXJldHVybiAtMTsKKwl9CisjZWxpZiBkZWZpbmVkIChBTFBIQSkKKwlpZiAodXBlZWsocGlkLCBSRUdfQTMsICZhMykgPCAwKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJaWYgKHVwZWVrKHBpZCwgUkVHX1IwLCAmc2NubykgPCAwKQorCQkJcmV0dXJuIC0xOworCisJCS8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KKwkJaWYgKHNjbm8gPT0gMCAmJiB0Y3AtPmZsYWdzICYgVENCX1dBSVRFWEVDVkUpIHsKKwkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOworCQkJcmV0dXJuIDA7CisJCX0KKworCQkvKgorCQkgKiBEbyBzb21lIHNhbml0eSBjaGVja3MgdG8gZmlndXJlIG91dCBpZiBpdCdzCisJCSAqIHJlYWxseSBhIHN5c2NhbGwgZW50cnkKKwkJICovCisJCWlmIChzY25vIDwgMCB8fCBzY25vID4gbnN5c2NhbGxzKSB7CisJCQlpZiAoYTMgPT0gMCB8fCBhMyA9PSAtMSkgeworCQkJCWlmIChkZWJ1ZykKKwkJCQkJZnByaW50ZiAoc3RkZXJyLCAic3RyYXkgc3lzY2FsbCBleGl0OiByMCA9ICVsZFxuIiwgc2Nubyk7CisJCQkJcmV0dXJuIDA7CisJCQl9CisJCX0KKwl9CisJZWxzZSB7CisJCWlmICh1cGVlayhwaWQsIFJFR19SMCwgJnIwKSA8IDApCisJCQlyZXR1cm4gLTE7CisJfQorI2VsaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCisJLyogRXZlcnl0aGluZyB3ZSBuZWVkIGlzIGluIHRoZSBjdXJyZW50IHJlZ2lzdGVyIHNldC4gKi8KKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLHBpZCwoY2hhciAqKSZyZWdzLDApIDwgMCkKKwkJcmV0dXJuIC0xOworCisgICAgICAgIC8qIElmIHdlIGFyZSBlbnRlcmluZywgdGhlbiBkaXNhc3NlbWJsZSB0aGUgc3lzY2FsbCB0cmFwLiAqLworCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgeworCQkvKiBSZXRyaWV2ZSB0aGUgc3lzY2FsbCB0cmFwIGluc3RydWN0aW9uLiAqLworCQllcnJubyA9IDA7CisJCXRyYXAgPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULHBpZCwoY2hhciAqKXJlZ3Mucl9wYywwKTsKKyNpZiBkZWZpbmVkKFNQQVJDNjQpCisJCXRyYXAgPj49IDMyOworI2VuZGlmCisJCWlmIChlcnJubykKKwkJCXJldHVybiAtMTsKKworCQkvKiBEaXNhc3NlbWJsZSB0aGUgdHJhcCB0byBzZWUgd2hhdCBwZXJzb25hbGl0eSB0byB1c2UuICovCisJCXN3aXRjaCAodHJhcCkgeworCQljYXNlIDB4OTFkMDIwMTA6CisJCQkvKiBMaW51eC9TUEFSQyBzeXNjYWxsIHRyYXAuICovCisJCQlzZXRfcGVyc29uYWxpdHkoMCk7CisJCQlicmVhazsKKwkJY2FzZSAweDkxZDAyMDZkOgorCQkJLyogTGludXgvU1BBUkM2NCBzeXNjYWxsIHRyYXAuICovCisJCQlzZXRfcGVyc29uYWxpdHkoMik7CisJCQlicmVhazsKKwkJY2FzZSAweDkxZDAyMDAwOgorCQkJLyogU3VuT1Mgc3lzY2FsbCB0cmFwLiAocGVycyAxKSAqLworCQkJZnByaW50ZihzdGRlcnIsInN5c2NhbGw6IFN1bk9TIG5vIHN1cHBvcnRcbiIpOworCQkJcmV0dXJuIC0xOworCQljYXNlIDB4OTFkMDIwMDg6CisJCQkvKiBTb2xhcmlzIDIueCBzeXNjYWxsIHRyYXAuIChwZXIgMikgKi8KKwkJCXNldF9wZXJzb25hbGl0eSgxKTsKKwkJCWJyZWFrOworCQljYXNlIDB4OTFkMDIwMDk6CisJCQkvKiBOZXRCU0QvRnJlZUJTRCBzeXNjYWxsIHRyYXAuICovCisJCQlmcHJpbnRmKHN0ZGVyciwic3lzY2FsbDogTmV0QlNEL0ZyZWVCU0Qgbm90IHN1cHBvcnRlZFxuIik7CisJCQlyZXR1cm4gLTE7CisJCWNhc2UgMHg5MWQwMjAyNzoKKwkJCS8qIFNvbGFyaXMgMi54IGdldHRpbWVvZmRheSAqLworCQkJc2V0X3BlcnNvbmFsaXR5KDEpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQkvKiBVbmtub3duIHN5c2NhbGwgdHJhcC4gKi8KKwkJCWlmKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkgeworCQkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOworCQkJCXJldHVybiAwOworCQkJfQorI2lmIGRlZmluZWQgKFNQQVJDNjQpCisJCQlmcHJpbnRmKHN0ZGVyciwic3lzY2FsbDogdW5rbm93biBzeXNjYWxsIHRyYXAgJTA4bHggJTAxNmx4XG4iLCB0cmFwLCByZWdzLnJfdHBjKTsKKyNlbHNlCisJCQlmcHJpbnRmKHN0ZGVyciwic3lzY2FsbDogdW5rbm93biBzeXNjYWxsIHRyYXAgJTA4eCAlMDh4XG4iLCB0cmFwLCByZWdzLnJfcGMpOworI2VuZGlmCisJCQlyZXR1cm4gLTE7CisJCX0KKworCQkvKiBFeHRyYWN0IHRoZSBzeXN0ZW0gY2FsbCBudW1iZXIgZnJvbSB0aGUgcmVnaXN0ZXJzLiAqLworCQlpZiAodHJhcCA9PSAweDkxZDAyMDI3KQorCQkJc2NubyA9IDE1NjsKKwkJZWxzZQorCQkJc2NubyA9IHJlZ3Mucl9nMTsKKwkJaWYgKHNjbm8gPT0gMCkgeworCQkJc2NubyA9IHJlZ3Mucl9vMDsKKwkJCW1lbW1vdmUgKCZyZWdzLnJfbzAsICZyZWdzLnJfbzEsIDcqc2l6ZW9mKHJlZ3Mucl9vMCkpOworCQl9CisJfQorI2VsaWYgZGVmaW5lZChIUFBBKQorCWlmICh1cGVlayhwaWQsIFBUX0dSMjAsICZzY25vKSA8IDApCisJCXJldHVybiAtMTsKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJLyogQ2hlY2sgaWYgd2UgcmV0dXJuIGZyb20gZXhlY3ZlLiAqLworCQlpZiAoKHRjcC0+ZmxhZ3MgJiBUQ0JfV0FJVEVYRUNWRSkpIHsKKwkJCXRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisjZWxpZiBkZWZpbmVkKFNIKQorICAgICAgIC8qCisgICAgICAgICogSW4gdGhlIG5ldyBzeXNjYWxsIEFCSSwgdGhlIHN5c3RlbSBjYWxsIG51bWJlciBpcyBpbiBSMy4KKyAgICAgICAgKi8KKyAgICAgICBpZiAodXBlZWsocGlkLCA0KihSRUdfUkVHMCszKSwgJnNjbm8pIDwgMCkKKyAgICAgICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgIGlmIChzY25vIDwgMCkgeworICAgICAgICAgICAvKiBPZGQgYXMgaXQgbWF5IHNlZW0sIGEgZ2xpYmMgYnVnIGhhcyBiZWVuIGtub3duIHRvIGNhdXNlCisgICAgICAgICAgICAgIGdsaWJjIHRvIGlzc3VlIGJvZ3VzIG5lZ2F0aXZlIHN5c2NhbGwgbnVtYmVycy4gIFNvIGZvcgorICAgICAgICAgICAgICBvdXIgcHVycG9zZXMsIG1ha2Ugc3RyYWNlIHByaW50IHdoYXQgaXQgKnNob3VsZCogaGF2ZSBiZWVuICovCisgICAgICAgICAgIGxvbmcgY29ycmVjdF9zY25vID0gKHNjbm8gJiAweGZmKTsKKyAgICAgICAgICAgaWYgKGRlYnVnKQorICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgIkRldGVjdGVkIGdsaWJjIGJ1ZzogYm9ndXMgc3lzdGVtIGNhbGwgbnVtYmVyID0gJWxkLCAiCisJCSAgICJjb3JyZWN0aW5nIHRvICVsZFxuIiwKKyAgICAgICAgICAgICAgICAgICBzY25vLAorICAgICAgICAgICAgICAgICAgIGNvcnJlY3Rfc2Nubyk7CisgICAgICAgICAgIHNjbm8gPSBjb3JyZWN0X3Njbm87CisgICAgICAgfQorCisKKyAgICAgICBpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKyAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIHdlIHJldHVybiBmcm9tIGV4ZWN2ZS4gKi8KKyAgICAgICAgICAgICAgIGlmIChzY25vID09IDAgJiYgdGNwLT5mbGFncyAmIFRDQl9XQUlURVhFQ1ZFKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRjcC0+ZmxhZ3MgJj0gflRDQl9XQUlURVhFQ1ZFOworICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICB9CisjZWxpZiBkZWZpbmVkKFNINjQpCisJaWYgKHVwZWVrKHBpZCwgUkVHX1NZU0NBTEwsICZzY25vKSA8IDApCisJCXJldHVybiAtMTsKKyAgICAgICAgc2NubyAmPSAweEZGRkY7CisKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJLyogQ2hlY2sgaWYgd2UgcmV0dXJuIGZyb20gZXhlY3ZlLiAqLworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9XQUlURVhFQ1ZFKSB7CisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfV0FJVEVYRUNWRTsKKwkJCXJldHVybiAwOworCQl9CisJfQorI2VuZGlmIC8qIFNINjQgKi8KKyNlbmRpZiAvKiBMSU5VWCAqLworI2lmZGVmIFNVTk9TNAorCWlmICh1cGVlayhwaWQsIHVvZmYodV9hcmdbN10pLCAmc2NubykgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKFNIKQorICAgICAgICAvKiBuZXcgc3lzY2FsbCBBQkkgcmV0dXJucyByZXN1bHQgaW4gUjAgKi8KKyAgICAgICAgaWYgKHVwZWVrKHBpZCwgNCpSRUdfUkVHMCwgKGxvbmcgKikmcjApIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKFNINjQpCisgICAgICAgIC8qIEFCSSBkZWZpbmVzIHJlc3VsdCByZXR1cm5lZCBpbiByOSAqLworICAgICAgICBpZiAodXBlZWsocGlkLCBSRUdfR0VORVJBTCg5KSwgKGxvbmcgKikmcjkpIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisKKyNlbmRpZgorI2lmZGVmIFVTRV9QUk9DRlMKKyNpZmRlZiBIQVZFX1BSX1NZU0NBTEwKKwlzY25vID0gdGNwLT5zdGF0dXMuUFJfU1lTQ0FMTDsKKyNlbHNlIC8qICFIQVZFX1BSX1NZU0NBTEwgKi8KKyNpZm5kZWYgRlJFRUJTRAorCXNjbm8gPSB0Y3AtPnN0YXR1cy5QUl9XSEFUOworI2Vsc2UgLyogRlJFRUJTRCAqLworCWlmIChwcmVhZCh0Y3AtPnBmZF9yZWcsICZyZWdzLCBzaXplb2YocmVncyksIDApIDwgMCkgeworCSAgICAgICAgcGVycm9yKCJwcmVhZCIpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCXN3aXRjaCAocmVncy5yX2VheCkgeworCWNhc2UgU1lTX3N5c2NhbGw6CisJY2FzZSBTWVNfX19zeXNjYWxsOgorICAgIAkgICAgICAgIHByZWFkKHRjcC0+cGZkLCAmc2Nubywgc2l6ZW9mKHNjbm8pLCByZWdzLnJfZXNwICsgc2l6ZW9mKGludCkpOworCSAgICAgICAgYnJlYWs7CisJZGVmYXVsdDoKKwkgICAgICAgIHNjbm8gPSByZWdzLnJfZWF4OworCSAgICAgICAgYnJlYWs7CisJfQorI2VuZGlmIC8qIEZSRUVCU0QgKi8KKyNlbmRpZiAvKiAhSEFWRV9QUl9TWVNDQUxMICovCisjZW5kaWYgLyogVVNFX1BST0NGUyAqLworCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkKKwkJdGNwLT5zY25vID0gc2NubzsKKwlyZXR1cm4gMTsKK30KKworCitsb25nCitrbm93bl9zY25vKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlsb25nIHNjbm8gPSB0Y3AtPnNjbm87CisJaWYgKHNjbm8gPj0gMCAmJiBzY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFtzY25vXS5uYXRpdmVfc2NubyAhPSAwKQorCQlzY25vID0gc3lzZW50W3Njbm9dLm5hdGl2ZV9zY25vOworCWVsc2UKKwkJc2NubyArPSBOUl9TWVNDQUxMX0JBU0U7CisJcmV0dXJuIHNjbm87Cit9CisKK3N0YXRpYyBpbnQKK3N5c2NhbGxfZml4dXAodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmbmRlZiBVU0VfUFJPQ0ZTCisJaW50IHBpZCA9IHRjcC0+cGlkOworI2Vsc2UgLyogVVNFX1BST0NGUyAqLworCWludCBzY25vID0ga25vd25fc2Nubyh0Y3ApOworCisJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CisJCWlmICh0Y3AtPnN0YXR1cy5QUl9XSFkgIT0gUFJfU1lTRU5UUlkpIHsKKwkJCWlmICgKKwkJCSAgICBzY25vID09IFNZU19mb3JrCisjaWZkZWYgU1lTX3Zmb3JrCisJCQkgICAgfHwgc2NubyA9PSBTWVNfdmZvcmsKKyNlbmRpZiAvKiBTWVNfdmZvcmsgKi8KKyNpZmRlZiBTWVNfZm9yazEKKwkJCSAgICB8fCBzY25vID09IFNZU19mb3JrMQorI2VuZGlmIC8qIFNZU19mb3JrMSAqLworI2lmZGVmIFNZU19mb3JrYWxsCisJCQkgICAgfHwgc2NubyA9PSBTWVNfZm9ya2FsbAorI2VuZGlmIC8qIFNZU19mb3JrYWxsICovCisjaWZkZWYgU1lTX3Jmb3JrMQorCQkJICAgIHx8IHNjbm8gPT0gU1lTX3Jmb3JrMQorI2VuZGlmIC8qIFNZU19mb3JrMSAqLworI2lmZGVmIFNZU19yZm9ya2FsbAorCQkJICAgIHx8IHNjbm8gPT0gU1lTX3Jmb3JrYWxsCisjZW5kaWYgLyogU1lTX3Jmb3JrYWxsICovCisJCQkgICAgKSB7CisJCQkJLyogV2UgYXJlIHJldHVybmluZyBpbiB0aGUgY2hpbGQsIGZha2UgaXQuICovCisJCQkJdGNwLT5zdGF0dXMuUFJfV0hZID0gUFJfU1lTRU5UUlk7CisJCQkJdHJhY2Vfc3lzY2FsbCh0Y3ApOworCQkJCXRjcC0+c3RhdHVzLlBSX1dIWSA9IFBSX1NZU0VYSVQ7CisJCQl9CisJCQllbHNlIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGw6IG1pc3NpbmcgZW50cnlcbiIpOworCQkJCXRjcC0+ZmxhZ3MgfD0gVENCX0lOU1lTQ0FMTDsKKwkJCX0KKwkJfQorCX0KKwllbHNlIHsKKwkJaWYgKHRjcC0+c3RhdHVzLlBSX1dIWSAhPSBQUl9TWVNFWElUKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgInN5c2NhbGw6IG1pc3NpbmcgZXhpdFxuIik7CisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfSU5TWVNDQUxMOworCQl9CisJfQorI2VuZGlmIC8qIFVTRV9QUk9DRlMgKi8KKyNpZmRlZiBTVU5PUzQKKwlpZiAoISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJaWYgKHNjbm8gPT0gMCkgeworCQkJZnByaW50ZihzdGRlcnIsICJzeXNjYWxsOiBtaXNzaW5nIGVudHJ5XG4iKTsKKwkJCXRjcC0+ZmxhZ3MgfD0gVENCX0lOU1lTQ0FMTDsKKwkJfQorCX0KKwllbHNlIHsKKwkJaWYgKHNjbm8gIT0gMCkgeworCQkJaWYgKGRlYnVnKSB7CisJCQkJLyoKKwkJCQkgKiBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpZ25hbCBoYW5kbGVyCisJCQkJICogZm9yIGEgc2lnbmFsIHdoaWNoIGludGVycnVwdGVkIGEKKwkJCQkgKiBhIHN5c3RlbSBjYWxsIG1ha2VzIGFub3RoZXIgc3lzdGVtIGNhbGwuCisJCQkJICovCisJCQkJZnByaW50ZihzdGRlcnIsICJzeXNjYWxsOiBtaXNzaW5nIGV4aXRcbiIpOworCQkJfQorCQkJdGNwLT5mbGFncyAmPSB+VENCX0lOU1lTQ0FMTDsKKwkJfQorCX0KKyNlbmRpZiAvKiBTVU5PUzQgKi8KKyNpZmRlZiBMSU5VWAorI2lmIGRlZmluZWQgKEkzODYpCisJaWYgKHVwZWVrKHBpZCwgNCpFQVgsICZlYXgpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmIChlYXggIT0gLUVOT1NZUyAmJiAhKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgeworCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwgInN0cmF5IHN5c2NhbGwgZXhpdDogZWF4ID0gJWxkXG4iLCBlYXgpOworCQlyZXR1cm4gMDsKKwl9CisjZWxpZiBkZWZpbmVkIChYODZfNjQpCisJaWYgKHVwZWVrKHBpZCwgOCpSQVgsICZyYXgpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmIChjdXJyZW50X3BlcnNvbmFsaXR5ID09IDEpCisJCXJheCA9IChsb25nIGludCkoaW50KXJheDsgLyogc2lnbiBleHRlbmQgZnJvbSAzMiBiaXRzICovCisJaWYgKHJheCAhPSAtRU5PU1lTICYmICEodGNwLT5mbGFncyAmIFRDQl9JTlNZU0NBTEwpKSB7CisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLCAic3RyYXkgc3lzY2FsbCBleGl0OiByYXggPSAlbGRcbiIsIHJheCk7CisJCXJldHVybiAwOworCX0KKyNlbGlmIGRlZmluZWQgKFMzOTApIHx8IGRlZmluZWQgKFMzOTBYKQorCWlmICh1cGVlayhwaWQsIFBUX0dQUjIsICZncHIyKSA8IDApCisJCXJldHVybiAtMTsKKwlpZiAoc3lzY2FsbF9tb2RlICE9IC1FTk9TWVMpCisJCXN5c2NhbGxfbW9kZSA9IHRjcC0+c2NubzsKKwlpZiAoZ3ByMiAhPSBzeXNjYWxsX21vZGUgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJaWYgKGRlYnVnKQorCQkJZnByaW50ZihzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IGdwcjIgPSAlbGRcbiIsIGdwcjIpOworCQlyZXR1cm4gMDsKKwl9CisJZWxzZSBpZiAoKCh0Y3AtPmZsYWdzICYgKFRDQl9JTlNZU0NBTEx8VENCX1dBSVRFWEVDVkUpKQorCQkgID09IChUQ0JfSU5TWVNDQUxMfFRDQl9XQUlURVhFQ1ZFKSkKKwkJICYmIChncHIyID09IC1FTk9TWVMgfHwgZ3ByMiA9PSB0Y3AtPnNjbm8pKSB7CisJCS8qCisJCSAqIEZha2UgYSByZXR1cm4gdmFsdWUgb2YgemVyby4gIFdlIGxlYXZlIHRoZSBUQ0JfV0FJVEVYRUNWRQorCQkgKiBmbGFnIHNldCBmb3IgdGhlIHBvc3QtZXhlY3ZlIFNJR1RSQVAgdG8gc2VlIGFuZCByZXNldC4KKwkJICovCisJCWdwcjIgPSAwOworCX0KKyNlbGlmIGRlZmluZWQgKFBPV0VSUEMpCisjIGRlZmluZSBTT19NQVNLIDB4MTAwMDAwMDAKKwlpZiAodXBlZWsocGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfQ0NSLCAmZmxhZ3MpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmICh1cGVlayhwaWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9SMywgJnJlc3VsdCkgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKGZsYWdzICYgU09fTUFTSykKKwkJcmVzdWx0ID0gLXJlc3VsdDsKKyNlbGlmIGRlZmluZWQgKE02OEspCisJaWYgKHVwZWVrKHBpZCwgNCpQVF9EMCwgJmQwKSA8IDApCisJCXJldHVybiAtMTsKKwlpZiAoZDAgIT0gLUVOT1NZUyAmJiAhKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSkgeworCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwgInN0cmF5IHN5c2NhbGwgZXhpdDogZDAgPSAlbGRcbiIsIGQwKTsKKwkJcmV0dXJuIDA7CisJfQorI2VsaWYgZGVmaW5lZCAoQVJNKQorCS8qCisJICogTm90aGluZyByZXF1aXJlZAorCSAqLworI2VsaWYgZGVmaW5lZCAoSFBQQSkKKwlpZiAodXBlZWsocGlkLCBQVF9HUjI4LCAmcjI4KSA8IDApCisJCXJldHVybiAtMTsKKyNlbGlmIGRlZmluZWQoSUE2NCkKKwlpZiAodXBlZWsocGlkLCBQVF9SMTAsICZyMTApIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmICh1cGVlayhwaWQsIFBUX1I4LCAmcjgpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmIChpYTMyICYmIHI4ICE9IC1FTk9TWVMgJiYgISh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpIHsKKwkJaWYgKGRlYnVnKQorCQkJZnByaW50ZihzdGRlcnIsICJzdHJheSBzeXNjYWxsIGV4aXQ6IHI4ID0gJWxkXG4iLCByOCk7CisJCXJldHVybiAwOworCX0KKyNlbmRpZgorI2VuZGlmIC8qIExJTlVYICovCisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK2dldF9lcnJvcih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IHVfZXJyb3IgPSAwOworI2lmZGVmIExJTlVYCisjaWYgZGVmaW5lZChTMzkwKSB8fCBkZWZpbmVkKFMzOTBYKQorCQlpZiAoZ3ByMiAmJiAodW5zaWduZWQpIC1ncHIyIDwgbmVycm5vcykgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSAtZ3ByMjsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gZ3ByMjsKKwkJCXVfZXJyb3IgPSAwOworCQl9CisjZWxzZSAvKiAhUzM5MCAmJiAhUzM5MFggKi8KKyNpZmRlZiBJMzg2CisJCWlmIChlYXggPCAwICYmIC1lYXggPCBuZXJybm9zKSB7CisJCQl0Y3AtPnVfcnZhbCA9IC0xOworCQkJdV9lcnJvciA9IC1lYXg7CisJCX0KKwkJZWxzZSB7CisJCQl0Y3AtPnVfcnZhbCA9IGVheDsKKwkJCXVfZXJyb3IgPSAwOworCQl9CisjZWxzZSAvKiAhSTM4NiAqLworI2lmZGVmIFg4Nl82NAorCQlpZiAocmF4IDwgMCAmJiAtcmF4IDwgbmVycm5vcykgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSAtcmF4OworCQl9CisJCWVsc2UgeworCQkJdGNwLT51X3J2YWwgPSByYXg7CisJCQl1X2Vycm9yID0gMDsKKwkJfQorI2Vsc2UKKyNpZmRlZiBJQTY0CisJCWlmIChpYTMyKSB7CisJCQlpbnQgZXJyOworCisJCQllcnIgPSAoaW50KXI4OworCQkJaWYgKGVyciA8IDAgJiYgLWVyciA8IG5lcnJub3MpIHsKKwkJCQl0Y3AtPnVfcnZhbCA9IC0xOworCQkJCXVfZXJyb3IgPSAtZXJyOworCQkJfQorCQkJZWxzZSB7CisJCQkJdGNwLT51X3J2YWwgPSBlcnI7CisJCQkJdV9lcnJvciA9IDA7CisJCQl9CisJCX0gZWxzZSB7CisJCQlpZiAocjEwKSB7CisJCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCQl1X2Vycm9yID0gcjg7CisJCQl9IGVsc2UgeworCQkJCXRjcC0+dV9ydmFsID0gcjg7CisJCQkJdV9lcnJvciA9IDA7CisJCQl9CisJCX0KKyNlbHNlIC8qICFJQTY0ICovCisjaWZkZWYgTUlQUworCQlpZiAoYTMpIHsKKwkJICAJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSByMjsKKwkJfSBlbHNlIHsKKwkJICAJdGNwLT51X3J2YWwgPSByMjsKKwkJCXVfZXJyb3IgPSAwOworCQl9CisjZWxzZQorI2lmZGVmIFBPV0VSUEMKKwkJaWYgKHJlc3VsdCAmJiAodW5zaWduZWQgbG9uZykgLXJlc3VsdCA8IG5lcnJub3MpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gLXJlc3VsdDsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gcmVzdWx0OworCQkJdV9lcnJvciA9IDA7CisJCX0KKyNlbHNlIC8qICFQT1dFUlBDICovCisjaWZkZWYgTTY4SworCQlpZiAoZDAgJiYgKHVuc2lnbmVkKSAtZDAgPCBuZXJybm9zKSB7CisJCQl0Y3AtPnVfcnZhbCA9IC0xOworCQkJdV9lcnJvciA9IC1kMDsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gZDA7CisJCQl1X2Vycm9yID0gMDsKKwkJfQorI2Vsc2UgLyogIU02OEsgKi8KKyNpZmRlZiBBUk0KKwkJaWYgKHJlZ3MuQVJNX3IwICYmICh1bnNpZ25lZCkgLXJlZ3MuQVJNX3IwIDwgbmVycm5vcykgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSAtcmVncy5BUk1fcjA7CisJCX0KKwkJZWxzZSB7CisJCQl0Y3AtPnVfcnZhbCA9IHJlZ3MuQVJNX3IwOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyNlbHNlIC8qICFBUk0gKi8KKyNpZmRlZiBBTFBIQQorCQlpZiAoYTMpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gcjA7CisJCX0KKwkJZWxzZSB7CisJCQl0Y3AtPnVfcnZhbCA9IHIwOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyNlbHNlIC8qICFBTFBIQSAqLworI2lmZGVmIFNQQVJDCisJCWlmIChyZWdzLnJfcHNyICYgUFNSX0MpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gcmVncy5yX28wOworCQl9CisJCWVsc2UgeworCQkJdGNwLT51X3J2YWwgPSByZWdzLnJfbzA7CisJCQl1X2Vycm9yID0gMDsKKwkJfQorI2Vsc2UgLyogIVNQQVJDICovCisjaWZkZWYgU1BBUkM2NAorCQlpZiAocmVncy5yX3RzdGF0ZSAmIDB4MTEwMDAwMDAwMFVMKSB7CisJCQl0Y3AtPnVfcnZhbCA9IC0xOworCQkJdV9lcnJvciA9IHJlZ3Mucl9vMDsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gcmVncy5yX28wOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyNlbHNlIC8qICFTUEFSQzY0ICovCisjaWZkZWYgSFBQQQorCQlpZiAocjI4ICYmICh1bnNpZ25lZCkgLXIyOCA8IG5lcnJub3MpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gLXIyODsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gcjI4OworCQkJdV9lcnJvciA9IDA7CisJCX0KKyNlbHNlCisjaWZkZWYgU0gKKyAgICAgICAgICAgICAgIC8qIGludGVycHJldCBSMCBhcyByZXR1cm4gdmFsdWUgb3IgZXJyb3IgbnVtYmVyICovCisgICAgICAgICAgICAgICBpZiAocjAgJiYgKHVuc2lnbmVkKSAtcjAgPCBuZXJybm9zKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHRjcC0+dV9ydmFsID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgIHVfZXJyb3IgPSAtcjA7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgdGNwLT51X3J2YWwgPSByMDsKKyAgICAgICAgICAgICAgICAgICAgICAgdV9lcnJvciA9IDA7CisgICAgICAgICAgICAgICB9CisjZWxzZQorI2lmZGVmIFNINjQKKyAgICAgICAgICAgICAgICAvKiBpbnRlcnByZXQgcmVzdWx0IGFzIHJldHVybiB2YWx1ZSBvciBlcnJvciBudW1iZXIgKi8KKyAgICAgICAgICAgICAgICBpZiAocjkgJiYgKHVuc2lnbmVkKSAtcjkgPCBuZXJybm9zKSB7CisJICAgICAgICAgICAgICAgIHRjcC0+dV9ydmFsID0gLTE7CisJICAgICAgICAgICAgICAgIHVfZXJyb3IgPSAtcjk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGNwLT51X3J2YWwgPSByOTsKKwkgICAgICAgICAgICAgICAgdV9lcnJvciA9IDA7CisgICAgICAgICAgICAgICAgfQorI2VuZGlmIC8qIFNINjQgKi8KKyNlbmRpZiAvKiBTSCAqLworI2VuZGlmIC8qIEhQUEEgKi8KKyNlbmRpZiAvKiBTUEFSQyAqLworI2VuZGlmIC8qIFNQQVJDNjQgKi8KKyNlbmRpZiAvKiBBTFBIQSAqLworI2VuZGlmIC8qIEFSTSAqLworI2VuZGlmIC8qIE02OEsgKi8KKyNlbmRpZiAvKiBQT1dFUlBDICovCisjZW5kaWYgLyogTUlQUyAqLworI2VuZGlmIC8qIElBNjQgKi8KKyNlbmRpZiAvKiBYODZfNjQgKi8KKyNlbmRpZiAvKiBJMzg2ICovCisjZW5kaWYgLyogUzM5MCB8fCBTMzkwWCAqLworI2VuZGlmIC8qIExJTlVYICovCisjaWZkZWYgU1VOT1M0CisJCS8qIGdldCBlcnJvciBjb2RlIGZyb20gdXNlciBzdHJ1Y3QgKi8KKwkJaWYgKHVwZWVrKHBpZCwgdW9mZih1X2Vycm9yKSwgJnVfZXJyb3IpIDwgMCkKKwkJCXJldHVybiAtMTsKKwkJdV9lcnJvciA+Pj0gMjQ7IC8qIHVfZXJyb3IgaXMgYSBjaGFyICovCisKKwkJLyogZ2V0IHN5c3RlbSBjYWxsIHJldHVybiB2YWx1ZSAqLworCQlpZiAodXBlZWsocGlkLCB1b2ZmKHVfcnZhbDEpLCAmdGNwLT51X3J2YWwpIDwgMCkKKwkJCXJldHVybiAtMTsKKyNlbmRpZiAvKiBTVU5PUzQgKi8KKyNpZmRlZiBTVlI0CisjaWZkZWYgU1BBUkMKKwkJLyogSnVkaWNpb3VzIGd1ZXNzaW5nIGdvZXMgYSBsb25nIHdheS4gKi8KKwkJaWYgKHRjcC0+c3RhdHVzLnByX3JlZ1tSX1BTUl0gJiAweDEwMDAwMCkgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSB0Y3AtPnN0YXR1cy5wcl9yZWdbUl9PMF07CisJCX0KKwkJZWxzZSB7CisJCQl0Y3AtPnVfcnZhbCA9IHRjcC0+c3RhdHVzLnByX3JlZ1tSX08wXTsKKwkJCXVfZXJyb3IgPSAwOworCQl9CisjZW5kaWYgLyogU1BBUkMgKi8KKyNpZmRlZiBJMzg2CisJCS8qIFdhbm5hIGtub3cgaG93IHRvIGtpbGwgYW4gaG91ciBzaW5nbGUtc3RlcHBpbmc/ICovCisJCWlmICh0Y3AtPnN0YXR1cy5QUl9SRUdbRUZMXSAmIDB4MSkgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSB0Y3AtPnN0YXR1cy5QUl9SRUdbRUFYXTsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gdGNwLT5zdGF0dXMuUFJfUkVHW0VBWF07CisjaWZkZWYgSEFWRV9MT05HX0xPTkcKKwkJCXRjcC0+dV9scnZhbCA9CisJCQkJKCh1bnNpZ25lZCBsb25nIGxvbmcpIHRjcC0+c3RhdHVzLlBSX1JFR1tFRFhdIDw8IDMyKSArCisJCQkJdGNwLT5zdGF0dXMuUFJfUkVHW0VBWF07CisjZW5kaWYKKwkJCXVfZXJyb3IgPSAwOworCQl9CisjZW5kaWYgLyogSTM4NiAqLworI2lmZGVmIFg4Nl82NAorCQkvKiBXYW5uYSBrbm93IGhvdyB0byBraWxsIGFuIGhvdXIgc2luZ2xlLXN0ZXBwaW5nPyAqLworCQlpZiAodGNwLT5zdGF0dXMuUFJfUkVHW0VGTEFHU10gJiAweDEpIHsKKwkJCXRjcC0+dV9ydmFsID0gLTE7CisJCQl1X2Vycm9yID0gdGNwLT5zdGF0dXMuUFJfUkVHW1JBWF07CisJCX0KKwkJZWxzZSB7CisJCQl0Y3AtPnVfcnZhbCA9IHRjcC0+c3RhdHVzLlBSX1JFR1tSQVhdOworCQkJdV9lcnJvciA9IDA7CisJCX0KKyNlbmRpZiAvKiBYODZfNjQgKi8KKyNpZmRlZiBNSVBTCisJCWlmICh0Y3AtPnN0YXR1cy5wcl9yZWdbQ1RYX0EzXSkgeworCQkJdGNwLT51X3J2YWwgPSAtMTsKKwkJCXVfZXJyb3IgPSB0Y3AtPnN0YXR1cy5wcl9yZWdbQ1RYX1YwXTsKKwkJfQorCQllbHNlIHsKKwkJCXRjcC0+dV9ydmFsID0gdGNwLT5zdGF0dXMucHJfcmVnW0NUWF9WMF07CisJCQl1X2Vycm9yID0gMDsKKwkJfQorI2VuZGlmIC8qIE1JUFMgKi8KKyNlbmRpZiAvKiBTVlI0ICovCisjaWZkZWYgRlJFRUJTRAorCQlpZiAocmVncy5yX2VmbGFncyAmIFBTTF9DKSB7CisgCQkgICAgICAgIHRjcC0+dV9ydmFsID0gLTE7CisJCSAgICAgICAgdV9lcnJvciA9IHJlZ3Mucl9lYXg7CisJCX0gZWxzZSB7CisJCSAgICAgICAgdGNwLT51X3J2YWwgPSByZWdzLnJfZWF4OworCQkJdGNwLT51X2xydmFsID0KKwkJCSAgKCh1bnNpZ25lZCBsb25nIGxvbmcpIHJlZ3Mucl9lZHggPDwgMzIpICsgIHJlZ3Mucl9lYXg7CisJCSAgICAgICAgdV9lcnJvciA9IDA7CisJCX0KKyNlbmRpZiAvKiBGUkVFQlNEICovCisJdGNwLT51X2Vycm9yID0gdV9lcnJvcjsKKwlyZXR1cm4gMTsKK30KKworaW50Citmb3JjZV9yZXN1bHQodGNwLCBlcnJvciwgcnZhbCkKKwlzdHJ1Y3QgdGNiICp0Y3A7CisJaW50IGVycm9yOworCWxvbmcgcnZhbDsKK3sKKyNpZmRlZiBMSU5VWAorI2lmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKKwlncHIyID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOworCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKVBUX0dQUjIsIGdwcjIpIDwgMCkKKwkJcmV0dXJuIC0xOworI2Vsc2UgLyogIVMzOTAgJiYgIVMzOTBYICovCisjaWZkZWYgSTM4NgorCWVheCA9IGVycm9yID8gLWVycm9yIDogcnZhbDsKKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoRUFYICogNCksIGVheCkgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxzZSAvKiAhSTM4NiAqLworI2lmZGVmIFg4Nl82NAorCXJheCA9IGVycm9yID8gLWVycm9yIDogcnZhbDsKKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkFYICogOCksIHJheCkgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxzZQorI2lmZGVmIElBNjQKKwlpZiAoaWEzMikgeworCQlyOCA9IGVycm9yID8gLWVycm9yIDogcnZhbDsKKwkJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFBUX1I4KSwgcjgpIDwgMCkKKwkJCXJldHVybiAtMTsKKwl9CisJZWxzZSB7CisJCWlmIChlcnJvcikgeworCQkJcjggPSBlcnJvcjsKKwkJCXIxMCA9IC0xOworCQl9CisJCWVsc2UgeworCQkJcjggPSBydmFsOworCQkJcjEwID0gMDsKKwkJfQorCQlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUFRfUjgpLCByOCkgPCAwIHx8CisJCSAgICBwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShQVF9SMTApLCByMTApIDwgMCkKKwkJCXJldHVybiAtMTsKKwl9CisjZWxzZSAvKiAhSUE2NCAqLworI2lmZGVmIE1JUFMKKwlpZiAoZXJyb3IpIHsKKwkJcjIgPSBlcnJvcjsKKwkJYTMgPSAtMTsKKwl9CisJZWxzZSB7CisJCXIyID0gcnZhbDsKKwkJYTMgPSAwOworCX0KKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkVHX0EzKSwgYTMpIDwgMCB8fAorCSAgICBwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKShSRUdfVjApLCByMikgPCAwKQorCSAgICAJcmV0dXJuIC0xOworI2Vsc2UKKyNpZmRlZiBQT1dFUlBDCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfQ0NSLCAmZmxhZ3MpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmIChlcnJvcikgeworCQlmbGFncyB8PSBTT19NQVNLOworCQlyZXN1bHQgPSBlcnJvcjsKKwl9CisJZWxzZSB7CisJCWZsYWdzICY9IH5TT19NQVNLOworCQlyZXN1bHQgPSBydmFsOworCX0KKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX0NDUiksIGZsYWdzKSA8IDAgfHwKKwkgICAgcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX1IzKSwgcmVzdWx0KSA8IDApCisJCXJldHVybiAtMTsKKyNlbHNlIC8qICFQT1dFUlBDICovCisjaWZkZWYgTTY4SworCWQwID0gZXJyb3IgPyAtZXJyb3IgOiBydmFsOworCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKSg0KlBUX0QwKSwgZDApIDwgMCkKKwkJcmV0dXJuIC0xOworI2Vsc2UgLyogIU02OEsgKi8KKyNpZmRlZiBBUk0KKyAgICAgICByZWdzLkFSTV9yMCA9IGVycm9yID8gLWVycm9yIDogcnZhbDsKKyAgICAgICBpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoNCowKSwgcmVncy5BUk1fcjApIDwgMCkKKwkJcmV0dXJuIC0xOworI2Vsc2UgLyogIUFSTSAqLworI2lmZGVmIEFMUEhBCisJaWYgKGVycm9yKSB7CisJCWEzID0gLTE7CisJCXIwID0gZXJyb3I7CisJfQorCWVsc2UgeworCQlhMyA9IDA7CisJCXIwID0gcnZhbDsKKwl9CisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKFJFR19BMyksIGEzKSA8IDAgfHwKKwkgICAgcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUkVHX1IwKSwgcjApIDwgMCkKKwkJcmV0dXJuIC0xOworI2Vsc2UgLyogIUFMUEhBICovCisjaWZkZWYgU1BBUkMKKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKGVycm9yKSB7CisJCXJlZ3Mucl9wc3IgfD0gUFNSX0M7CisJCXJlZ3Mucl9vMCA9IGVycm9yOworCX0KKwllbHNlIHsKKwkJcmVncy5yX3BzciAmPSB+UFNSX0M7CisJCXJlZ3Mucl9vMCA9IHJ2YWw7CisJfQorCWlmIChwdHJhY2UoUFRSQUNFX1NFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApCisJCXJldHVybiAtMTsKKyNlbHNlIC8qICFTUEFSQyAqLworI2lmZGVmIFNQQVJDNjQKKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikmcmVncywgMCkgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKGVycm9yKSB7CisJCXJlZ3Mucl90c3RhdGUgfD0gMHgxMTAwMDAwMDAwVUw7CisJCXJlZ3Mucl9vMCA9IGVycm9yOworCX0KKwllbHNlIHsKKwkJcmVncy5yX3RzdGF0ZSAmPSB+MHgxMTAwMDAwMDAwVUw7CisJCXJlZ3Mucl9vMCA9IHJ2YWw7CisJfQorCWlmIChwdHJhY2UoUFRSQUNFX1NFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApCisJCXJldHVybiAtMTsKKyNlbHNlIC8qICFTUEFSQzY0ICovCisjaWZkZWYgSFBQQQorCXIyOCA9IGVycm9yID8gLWVycm9yIDogcnZhbDsKKwlpZiAocHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKikoUFRfR1IyOCksIHIyOCkgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxzZQorI2lmZGVmIFNICisJcjAgPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopKDQqUkVHX1JFRzApLCByMCkgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxzZQorI2lmZGVmIFNINjQKKyAgICAgICAgcjkgPSBlcnJvciA/IC1lcnJvciA6IHJ2YWw7CisJaWYgKHB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopUkVHX0dFTkVSQUwoOSksIHI5KSA8IDApCisJCXJldHVybiAtMTsKKyNlbmRpZiAvKiBTSDY0ICovCisjZW5kaWYgLyogU0ggKi8KKyNlbmRpZiAvKiBIUFBBICovCisjZW5kaWYgLyogU1BBUkMgKi8KKyNlbmRpZiAvKiBTUEFSQzY0ICovCisjZW5kaWYgLyogQUxQSEEgKi8KKyNlbmRpZiAvKiBBUk0gKi8KKyNlbmRpZiAvKiBNNjhLICovCisjZW5kaWYgLyogUE9XRVJQQyAqLworI2VuZGlmIC8qIE1JUFMgKi8KKyNlbmRpZiAvKiBJQTY0ICovCisjZW5kaWYgLyogWDg2XzY0ICovCisjZW5kaWYgLyogSTM4NiAqLworI2VuZGlmIC8qIFMzOTAgfHwgUzM5MFggKi8KKyNlbmRpZiAvKiBMSU5VWCAqLworI2lmZGVmIFNVTk9TNAorCWlmIChwdHJhY2UoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKXVvZmYodV9lcnJvciksCisJCSAgIGVycm9yIDw8IDI0KSA8IDAgfHwKKwkgICAgcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsIChjaGFyKil1b2ZmKHVfcnZhbDEpLCBydmFsKSA8IDApCisJCXJldHVybiAtMTsKKyNlbmRpZiAvKiBTVU5PUzQgKi8KKyNpZmRlZiBTVlI0CisJLyogWFhYIG5vIGNsdWUgKi8KKwlyZXR1cm4gLTE7CisjZW5kaWYgLyogU1ZSNCAqLworI2lmZGVmIEZSRUVCU0QKKwlpZiAocHJlYWQodGNwLT5wZmRfcmVnLCAmcmVncywgc2l6ZW9mKHJlZ3MpLCAwKSA8IDApIHsKKwkgICAgICAgIHBlcnJvcigicHJlYWQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKwlpZiAoZXJyb3IpIHsKKwkJcmVncy5yX2VmbGFncyB8PSBQU0xfQzsKKwkJcmVncy5yX2VheCA9IGVycm9yOworCX0KKwllbHNlIHsKKwkJcmVncy5yX2VmbGFncyAmPSB+UFNMX0M7CisJCXJlZ3Mucl9lYXggPSBydmFsOworCX0KKwlpZiAocHdyaXRlKHRjcC0+cGZkX3JlZywgJnJlZ3MsIHNpemVvZihyZWdzKSwgMCkgPCAwKSB7CisJICAgICAgICBwZXJyb3IoInB3cml0ZSIpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorI2VuZGlmIC8qIEZSRUVCU0QgKi8KKworCS8qIEFsbCBicmFuY2hlcyByZWFjaCBoZXJlIG9uIHN1Y2Nlc3MgKG9ubHkpLiAgKi8KKwl0Y3AtPnVfZXJyb3IgPSBlcnJvcjsKKwl0Y3AtPnVfcnZhbCA9IHJ2YWw7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3N5c2NhbGxfZW50ZXIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2lmbmRlZiBVU0VfUFJPQ0ZTCisJaW50IHBpZCA9IHRjcC0+cGlkOworI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCisjaWZkZWYgTElOVVgKKyNpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCisJeworCQlpbnQgaTsKKwkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQllbHNlCisgICAgIAkgICAgICAgIAl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7CisJCQlpZiAodXBlZWsocGlkLGk9PTAgPyBQVF9PUklHR1BSMjpQVF9HUFIyK2kqc2l6ZW9mKGxvbmcpLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJCXJldHVybiAtMTsKKwkJfQorCX0KKyNlbGlmIGRlZmluZWQgKEFMUEhBKQorCXsKKwkJaW50IGk7CisJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCisJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZWxzZQorICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CisJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgeworCQkJLyogV1RBOiBpZiBzY25vIGlzIG91dC1vZi1ib3VuZHMgdGhpcyB3aWxsIGJvbWIuIEFkZCByYW5nZS1jaGVjaworCQkJICogZm9yIHNjbm8gc29tZXdoZXJlIGFib3ZlIGhlcmUhCisJCQkgKi8KKwkJCWlmICh1cGVlayhwaWQsIFJFR19BMCtpLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJCXJldHVybiAtMTsKKwkJfQorCX0KKyNlbGlmIGRlZmluZWQgKElBNjQpCisJeworCQlpZiAoIWlhMzIpIHsKKwkJCXVuc2lnbmVkIGxvbmcgKm91dDAsICpyYnNfZW5kLCBjZm0sIHNvZiwgc29sLCBpOworCQkJLyogYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBrZXJuZWwgPCAyLjQuNC4uLiAqLworIwkJCWlmbmRlZiBQVF9SQlNfRU5ECisjCQkJICBkZWZpbmUgUFRfUkJTX0VORAlQVF9BUl9CU1AKKyMJCQllbmRpZgorCisJCQlpZiAodXBlZWsocGlkLCBQVF9SQlNfRU5ELCAobG9uZyAqKSAmcmJzX2VuZCkgPCAwKQorCQkJCXJldHVybiAtMTsKKwkJCWlmICh1cGVlayhwaWQsIFBUX0NGTSwgKGxvbmcgKikgJmNmbSkgPCAwKQorCQkJCXJldHVybiAtMTsKKworCQkJc29mID0gKGNmbSA+PiAwKSAmIDB4N2Y7CisJCQlzb2wgPSAoY2ZtID4+IDcpICYgMHg3ZjsKKwkJCW91dDAgPSBpYTY0X3JzZV9za2lwX3JlZ3MocmJzX2VuZCwgLXNvZiArIHNvbCk7CisKKwkJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMKKwkJCSAgICAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJCWVsc2UKKwkJCQl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7ICsraSkgeworCQkJCWlmICh1bW92ZW4odGNwLCAodW5zaWduZWQgbG9uZykgaWE2NF9yc2Vfc2tpcF9yZWdzKG91dDAsIGkpLAorCQkJCQkgICBzaXplb2YobG9uZyksIChjaGFyICopICZ0Y3AtPnVfYXJnW2ldKSA8IDApCisJCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCWludCBpOworCisJCQlpZiAoLyogRUJYID0gb3V0MCAqLworCQkJICAgIHVwZWVrKHBpZCwgUFRfUjExLCAobG9uZyAqKSAmdGNwLT51X2FyZ1swXSkgPCAwCisJCQkgICAgLyogRUNYID0gb3V0MSAqLworCQkJICAgIHx8IHVwZWVrKHBpZCwgUFRfUjksICAobG9uZyAqKSAmdGNwLT51X2FyZ1sxXSkgPCAwCisJCQkgICAgLyogRURYID0gb3V0MiAqLworCQkJICAgIHx8IHVwZWVrKHBpZCwgUFRfUjEwLCAobG9uZyAqKSAmdGNwLT51X2FyZ1syXSkgPCAwCisJCQkgICAgLyogRVNJID0gb3V0MyAqLworCQkJICAgIHx8IHVwZWVrKHBpZCwgUFRfUjE0LCAobG9uZyAqKSAmdGNwLT51X2FyZ1szXSkgPCAwCisJCQkgICAgLyogRURJID0gb3V0NCAqLworCQkJICAgIHx8IHVwZWVrKHBpZCwgUFRfUjE1LCAobG9uZyAqKSAmdGNwLT51X2FyZ1s0XSkgPCAwCisJCQkgICAgLyogRUJQID0gb3V0NSAqLworCQkJICAgIHx8IHVwZWVrKHBpZCwgUFRfUjEzLCAobG9uZyAqKSAmdGNwLT51X2FyZ1s1XSkgPCAwKQorCQkJCXJldHVybiAtMTsKKworCQkJZm9yIChpID0gMDsgaSA8IDY7ICsraSkKKwkJCQkvKiB0cnVuY2F0ZSBhd2F5IElWRSBzaWduLWV4dGVuc2lvbiAqLworCQkJCXRjcC0+dV9hcmdbaV0gJj0gMHhmZmZmZmZmZjsKKworCQkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscworCQkJICAgICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQorCQkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQkJZWxzZQorCQkJCXRjcC0+dV9uYXJncyA9IDU7CisJCX0KKwl9CisjZWxpZiBkZWZpbmVkIChNSVBTKQorCXsKKwkgIAlsb25nIHNwOworCSAgCWludCBpLCBuYXJnczsKKworCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQorCQkJbmFyZ3MgPSB0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZWxzZQorICAgICAJICAgICAgICAJbmFyZ3MgPSB0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJaWYobmFyZ3MgPiA0KSB7CisJCSAgCWlmKHVwZWVrKHBpZCwgUkVHX1NQLCAmc3ApIDwgMCkKKwkJCSAgCXJldHVybiAtMTsKKwkJCWZvcihpID0gMDsgaSA8IDQ7IGkrKykgeworCQkJICAJaWYgKHVwZWVrKHBpZCwgUkVHX0EwICsgaSwgJnRjcC0+dV9hcmdbaV0pPDApCisJCQkJICAJcmV0dXJuIC0xOworCQkJfQorCQkJdW1vdmVuKHRjcCwgc3ArMTYsIChuYXJncy00KSAqIHNpemVvZih0Y3AtPnVfYXJnWzBdKSwKKwkJCSAgICAgICAoY2hhciAqKSh0Y3AtPnVfYXJnICsgNCkpOworCQl9IGVsc2UgeworCQkgIAlmb3IoaSA9IDA7IGkgPCBuYXJnczsgaSsrKSB7CisJCQkgIAlpZiAodXBlZWsocGlkLCBSRUdfQTAgKyBpLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJCSAgCXJldHVybiAtMTsKKwkJCX0KKwkJfQorCX0KKyNlbGlmIGRlZmluZWQgKFBPV0VSUEMpCisjaWZuZGVmIFBUX09SSUdfUjMKKyNkZWZpbmUgUFRfT1JJR19SMyAzNAorI2VuZGlmCisJeworCQlpbnQgaTsKKwkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQllbHNlCisgICAgIAkgICAgICAgIAl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7CisJCQlpZiAodXBlZWsocGlkLCAoaT09MCkgPworCQkJCShzaXplb2YodW5zaWduZWQgbG9uZykqUFRfT1JJR19SMykgOgorCQkJCSgoaStQVF9SMykqc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSwKKwkJCQkJJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisjZWxpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKwl7CisJCWludCBpOworCisJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCisJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZWxzZQorICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CisJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKKwkJCXRjcC0+dV9hcmdbaV0gPSAqKCgmcmVncy5yX28wKSArIGkpOworCX0KKyNlbGlmIGRlZmluZWQgKEhQUEEpCisJeworCQlpbnQgaTsKKworCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQorCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJCWVsc2UKKyAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKKwkJCWlmICh1cGVlayhwaWQsIFBUX0dSMjYtNCppLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJCXJldHVybiAtMTsKKwkJfQorCX0KKyNlbGlmIGRlZmluZWQoQVJNKQorCXsKKwkJaW50IGk7CisKKwkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQllbHNlCisJCQl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKQorCQkJdGNwLT51X2FyZ1tpXSA9IHJlZ3MudXJlZ3NbaV07CisgCX0KKyNlbGlmIGRlZmluZWQoU0gpCisgICAgICAgeworICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICBzdGF0aWMgaW50IHN5c2NhbGxfcmVnc1tdID0geworICAgICAgICAgICAgICAgICAgIFJFR19SRUcwKzQsIFJFR19SRUcwKzUsIFJFR19SRUcwKzYsIFJFR19SRUcwKzcsCisgICAgICAgICAgICAgICAgICAgUkVHX1JFRzAsIFJFR19SRUcwKzEsIFJFR19SRUcwKzIKKyAgICAgICAgICAgICAgICAgICB9OworCisgICAgICAgICAgICAgICB0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKyAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICBpZiAodXBlZWsocGlkLCA0KnN5c2NhbGxfcmVnc1tpXSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbGlmIGRlZmluZWQoU0g2NCkKKwl7CisJCWludCBpOworICAgICAgICAgICAgICAgIC8qIFJlZ2lzdGVycyB1c2VkIGJ5IFNINSBMaW51eCBzeXN0ZW0gY2FsbHMgZm9yIHBhcmFtZXRlcnMgKi8KKwkJc3RhdGljIGludCBzeXNjYWxsX3JlZ3NbXSA9IHsgMiwgMywgNCwgNSwgNiwgNyB9OworCisJCS8qCisJCSAqIFRPRE86IHNob3VsZCBhbHNvIGNoZWNrIHRoYXQgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgZW5jb2RlZAorCQkgKiAgICAgICBpbiB0aGUgdHJhcCBudW1iZXIgbWF0Y2hlcyB0aGUgbnVtYmVyIHN0cmFjZSBleHBlY3RzLgorCQkgKi8KKwkJLyoKKwkJICAgIGFzc2VydChzeXNlbnRbdGNwLT5zY25vXS5uYXJncyA8CisJCSAgICAJc2l6ZW9mKHN5c2NhbGxfcmVncykvc2l6ZW9mKHN5c2NhbGxfcmVnc1swXSkpOworCQkgKi8KKworCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7CisJCQlpZiAodXBlZWsocGlkLCBSRUdfR0VORVJBTChzeXNjYWxsX3JlZ3NbaV0pLCAmdGNwLT51X2FyZ1tpXSkgPCAwKQorCQkJCXJldHVybiAtMTsKKwkJfQorCX0KKworI2VsaWYgZGVmaW5lZChYODZfNjQpCisJeworCQlpbnQgaTsKKwkJc3RhdGljIGludCBhcmdyZWdbU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVNdW01BWF9BUkdTXSA9IHsKKwkJCXtSREksUlNJLFJEWCxSMTAsUjgsUjl9LAkvKiB4ODYtNjQgQUJJICovCisJCQl7UkJYLFJDWCxSRFgsUlNJLFJESSxSQlB9CS8qIGkzODYgQUJJICovCisJCX07CisKKwkJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCQllbHNlCisgICAgIAkgICAgICAgIAl0Y3AtPnVfbmFyZ3MgPSBNQVhfQVJHUzsKKwkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKSB7CisJCQlpZiAodXBlZWsocGlkLCBhcmdyZWdbY3VycmVudF9wZXJzb25hbGl0eV1baV0qOCwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisjZWxzZSAvKiBPdGhlciBhcmNoaXRlY3R1cmUgKGxpa2UgaTM4NikgKDMyYml0cyBzcGVjaWZpYykgKi8KKwl7CisJCWludCBpOworCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQorCQkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJCWVsc2UKKyAgICAgCSAgICAgICAgCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspIHsKKwkJCWlmICh1cGVlayhwaWQsIGkqNCwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisjZW5kaWYKKyNlbmRpZiAvKiBMSU5VWCAqLworI2lmZGVmIFNVTk9TNAorCXsKKwkJaW50IGk7CisJCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCisJCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwkJZWxzZQorICAgICAJICAgICAgICAJdGNwLT51X25hcmdzID0gTUFYX0FSR1M7CisJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykgeworCQkJc3RydWN0IHVzZXIgKnU7CisKKwkJCWlmICh1cGVlayhwaWQsIHVvZmYodV9hcmdbMF0pICsKKwkJCSAgICAoaSpzaXplb2YodS0+dV9hcmdbMF0pKSwgJnRjcC0+dV9hcmdbaV0pIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisjZW5kaWYgLyogU1VOT1M0ICovCisjaWZkZWYgU1ZSNAorI2lmZGVmIE1JUFMKKwkvKgorCSAqIFNHSSBpcyBicm9rZW46IGV2ZW4gdGhvdWdoIGl0IGhhcyBwcl9zeXNhcmcsIGl0IGRvZXNuJ3QKKwkgKiBzZXQgdGhlbSBvbiBzeXN0ZW0gY2FsbCBlbnRyeS4gIEdldCBhIGNsdWUuCisJICovCisJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJZWxzZQorCQl0Y3AtPnVfbmFyZ3MgPSB0Y3AtPnN0YXR1cy5wcl9uc3lzYXJnOworCWlmICh0Y3AtPnVfbmFyZ3MgPiA0KSB7CisJCW1lbWNweSh0Y3AtPnVfYXJnLCAmdGNwLT5zdGF0dXMucHJfcmVnW0NUWF9BMF0sCisJCQk0KnNpemVvZih0Y3AtPnVfYXJnWzBdKSk7CisJCXVtb3Zlbih0Y3AsIHRjcC0+c3RhdHVzLnByX3JlZ1tDVFhfU1BdICsgMTYsCisJCQkodGNwLT51X25hcmdzIC0gNCkqc2l6ZW9mKHRjcC0+dV9hcmdbMF0pLCAoY2hhciAqKSAodGNwLT51X2FyZyArIDQpKTsKKwl9CisJZWxzZSB7CisJCW1lbWNweSh0Y3AtPnVfYXJnLCAmdGNwLT5zdGF0dXMucHJfcmVnW0NUWF9BMF0sCisJCQl0Y3AtPnVfbmFyZ3Mqc2l6ZW9mKHRjcC0+dV9hcmdbMF0pKTsKKwl9CisjZWxpZiBVTklYV0FSRSA+PSAyCisJLyoKKwkgKiBMaWtlIFNHSSwgVW5peFdhcmUgZG9lc24ndCBzZXQgcHJfc3lzYXJnIHVudGlsIHN5c3RlbSBjYWxsIGV4aXQKKwkgKi8KKwlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmIHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzICE9IC0xKQorCQl0Y3AtPnVfbmFyZ3MgPSBzeXNlbnRbdGNwLT5zY25vXS5uYXJnczsKKwllbHNlCisJCXRjcC0+dV9uYXJncyA9IHRjcC0+c3RhdHVzLnByX2x3cC5wcl9uc3lzYXJnOworCXVtb3Zlbih0Y3AsIHRjcC0+c3RhdHVzLlBSX1JFR1tVRVNQXSArIDQsCisJCXRjcC0+dV9uYXJncypzaXplb2YodGNwLT51X2FyZ1swXSksIChjaGFyICopIHRjcC0+dV9hcmcpOworI2VsaWYgZGVmaW5lZCAoSEFWRV9QUl9TWVNDQUxMKQorCWlmICh0Y3AtPnNjbm8gPj0gMCAmJiB0Y3AtPnNjbm8gPCBuc3lzY2FsbHMgJiYgc3lzZW50W3RjcC0+c2Nub10ubmFyZ3MgIT0gLTEpCisJCXRjcC0+dV9uYXJncyA9IHN5c2VudFt0Y3AtPnNjbm9dLm5hcmdzOworCWVsc2UKKwkJdGNwLT51X25hcmdzID0gdGNwLT5zdGF0dXMucHJfbnN5c2FyZzsKKwl7CisJCWludCBpOworCQlmb3IgKGkgPSAwOyBpIDwgdGNwLT51X25hcmdzOyBpKyspCisJCQl0Y3AtPnVfYXJnW2ldID0gdGNwLT5zdGF0dXMucHJfc3lzYXJnW2ldOworCX0KKyNlbGlmIGRlZmluZWQgKEkzODYpCisJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyAhPSAtMSkKKwkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJZWxzZQorCQl0Y3AtPnVfbmFyZ3MgPSA1OworCXVtb3Zlbih0Y3AsIHRjcC0+c3RhdHVzLlBSX1JFR1tVRVNQXSArIDQsCisJCXRjcC0+dV9uYXJncypzaXplb2YodGNwLT51X2FyZ1swXSksIChjaGFyICopIHRjcC0+dV9hcmcpOworI2Vsc2UKKwlJIERPTlQgS05PVyBXSEFUIFRPIERPCisjZW5kaWYgLyogIUhBVkVfUFJfU1lTQ0FMTCAqLworI2VuZGlmIC8qIFNWUjQgKi8KKyNpZmRlZiBGUkVFQlNECisJaWYgKHRjcC0+c2NubyA+PSAwICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJgorCSAgICBzeXNlbnRbdGNwLT5zY25vXS5uYXJncyA+IHRjcC0+c3RhdHVzLnZhbCkKKwkJdGNwLT51X25hcmdzID0gc3lzZW50W3RjcC0+c2Nub10ubmFyZ3M7CisJZWxzZQorCSAgCXRjcC0+dV9uYXJncyA9IHRjcC0+c3RhdHVzLnZhbDsKKwlpZiAodGNwLT51X25hcmdzIDwgMCkKKwkJdGNwLT51X25hcmdzID0gMDsKKwlpZiAodGNwLT51X25hcmdzID4gTUFYX0FSR1MpCisJCXRjcC0+dV9uYXJncyA9IE1BWF9BUkdTOworCXN3aXRjaChyZWdzLnJfZWF4KSB7CisJY2FzZSBTWVNfX19zeXNjYWxsOgorCQlwcmVhZCh0Y3AtPnBmZCwgJnRjcC0+dV9hcmcsIHRjcC0+dV9uYXJncyAqIHNpemVvZih1bnNpZ25lZCBsb25nKSwKKwkJICAgICAgcmVncy5yX2VzcCArIHNpemVvZihpbnQpICsgc2l6ZW9mKHF1YWRfdCkpOworCSAgYnJlYWs7CisgICAgICAgIGNhc2UgU1lTX3N5c2NhbGw6CisJCXByZWFkKHRjcC0+cGZkLCAmdGNwLT51X2FyZywgdGNwLT51X25hcmdzICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLAorCQkgICAgICByZWdzLnJfZXNwICsgMiAqIHNpemVvZihpbnQpKTsKKwkgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorCQlwcmVhZCh0Y3AtPnBmZCwgJnRjcC0+dV9hcmcsIHRjcC0+dV9uYXJncyAqIHNpemVvZih1bnNpZ25lZCBsb25nKSwKKwkJICAgICAgcmVncy5yX2VzcCArIHNpemVvZihpbnQpKTsKKwkgIGJyZWFrOworCX0KKyNlbmRpZiAvKiBGUkVFQlNEICovCisJcmV0dXJuIDE7Cit9CisKK2ludAordHJhY2Vfc3lzY2FsbCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IHN5c19yZXM7CisJc3RydWN0IHRpbWV2YWwgdHY7CisJaW50IHJlczsKKworCS8qIE1lYXN1cmUgdGhlIGV4aXQgdGltZSBhcyBlYXJseSBhcyBwb3NzaWJsZSB0byBhdm9pZCBlcnJvcnMuICovCisJaWYgKGR0aW1lICYmICh0Y3AtPmZsYWdzICYgVENCX0lOU1lTQ0FMTCkpCisJCWdldHRpbWVvZmRheSgmdHYsIE5VTEwpOworCisJcmVzID0gZ2V0X3Njbm8odGNwKTsKKwlpZiAocmVzICE9IDEpCisJCXJldHVybiByZXM7CisKKwlyZXMgPSBzeXNjYWxsX2ZpeHVwKHRjcCk7CisJaWYgKHJlcyAhPSAxKQorCQlyZXR1cm4gcmVzOworCisJaWYgKHRjcC0+ZmxhZ3MgJiBUQ0JfSU5TWVNDQUxMKSB7CisJCWxvbmcgdV9lcnJvcjsKKwkJcmVzID0gZ2V0X2Vycm9yKHRjcCk7CisJCWlmIChyZXMgIT0gMSkKKwkJCXJldHVybiByZXM7CisKKwkJaW50ZXJuYWxfc3lzY2FsbCh0Y3ApOworCQlpZiAodGNwLT5zY25vID49IDAgJiYgdGNwLT5zY25vIDwgbnN5c2NhbGxzICYmCisJCSAgICAhKHF1YWxfZmxhZ3NbdGNwLT5zY25vXSAmIFFVQUxfVFJBQ0UpKSB7CisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfSU5TWVNDQUxMOworCQkJcmV0dXJuIDA7CisJCX0KKworCQlpZiAodGNwLT5mbGFncyAmIFRDQl9SRVBSSU5UKSB7CisJCQlwcmludGxlYWRlcih0Y3ApOworCQkJdHByaW50ZigiPC4uLiAiKTsKKwkJCWlmICh0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzIHx8IHRjcC0+c2NubyA8IDApCisJCQkJdHByaW50Zigic3lzY2FsbF8lbHUiLCB0Y3AtPnNjbm8pOworCQkJZWxzZQorCQkJCXRwcmludGYoIiVzIiwgc3lzZW50W3RjcC0+c2Nub10uc3lzX25hbWUpOworCQkJdHByaW50ZigiIHJlc3VtZWQ+ICIpOworCQl9CisKKwkJaWYgKGNmbGFnICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiB0Y3AtPnNjbm8gPj0gMCkgeworCQkJaWYgKGNvdW50cyA9PSBOVUxMKSB7CisJCQkJY291bnRzID0gY2FsbG9jKHNpemVvZiAqY291bnRzLCBuc3lzY2FsbHMpOworCQkJCWlmIChjb3VudHMgPT0gTlVMTCkgeworCQkJCQlmcHJpbnRmKHN0ZGVyciwgIlwKK3N0cmFjZTogb3V0IG9mIG1lbW9yeSBmb3IgY2FsbCBjb3VudHNcbiIpOworCQkJCQlleGl0KDEpOworCQkJCX0KKwkJCX0KKworCQkJY291bnRzW3RjcC0+c2Nub10uY2FsbHMrKzsKKwkJCWlmICh0Y3AtPnVfZXJyb3IpCisJCQkJY291bnRzW3RjcC0+c2Nub10uZXJyb3JzKys7CisJCQl0dl9zdWIoJnR2LCAmdHYsICZ0Y3AtPmV0aW1lKTsKKyNpZm5kZWYgSEFWRV9BTkRST0lEX09TCisjaWZkZWYgTElOVVgKKwkJCWlmICh0dl9jbXAoJnR2LCAmdGNwLT5kdGltZSkgPiAwKSB7CisJCQkJc3RhdGljIHN0cnVjdCB0aW1ldmFsIG9uZV90aWNrOworCQkJCWlmIChvbmVfdGljay50dl91c2VjID09IDApIHsKKwkJCQkJLyogSW5pdGlhbGl6ZSBpdC4gICovCisJCQkJCXN0cnVjdCBpdGltZXJ2YWwgaXQ7CisJCQkJCW1lbXNldCgmaXQsIDAsIHNpemVvZiBpdCk7CisJCQkJCWl0Lml0X2ludGVydmFsLnR2X3VzZWMgPSAxOworCQkJCQlzZXRpdGltZXIoSVRJTUVSX1JFQUwsICZpdCwgTlVMTCk7CisJCQkJCWdldGl0aW1lcihJVElNRVJfUkVBTCwgJml0KTsKKwkJCQkJb25lX3RpY2sgPSBpdC5pdF9pbnRlcnZhbDsKKwkJCQl9CisKKwkJCQlpZiAodHZfbnooJnRjcC0+ZHRpbWUpKQorCQkJCQl0diA9IHRjcC0+ZHRpbWU7CisJCQkJZWxzZSBpZiAodHZfY21wKCZ0diwgJm9uZV90aWNrKSA+IDApIHsKKwkJCQkJaWYgKHR2X2NtcCgmc2hvcnRlc3QsICZvbmVfdGljaykgPCAwKQorCQkJCQkJdHYgPSBzaG9ydGVzdDsKKwkJCQkJZWxzZQorCQkJCQkJdHYgPSBvbmVfdGljazsKKwkJCQl9CisJCQl9CisjZW5kaWYgLyogTElOVVggKi8KKyNlbmRpZgorCQkJaWYgKHR2X2NtcCgmdHYsICZzaG9ydGVzdCkgPCAwKQorCQkJCXNob3J0ZXN0ID0gdHY7CisJCQl0dl9hZGQoJmNvdW50c1t0Y3AtPnNjbm9dLnRpbWUsCisJCQkJJmNvdW50c1t0Y3AtPnNjbm9dLnRpbWUsICZ0dik7CisJCQl0Y3AtPmZsYWdzICY9IH5UQ0JfSU5TWVNDQUxMOworCQkJcmV0dXJuIDA7CisJCX0KKworCQlpZiAodGNwLT5zY25vID49IG5zeXNjYWxscyB8fCB0Y3AtPnNjbm8gPCAwCisJCSAgICB8fCAocXVhbF9mbGFnc1t0Y3AtPnNjbm9dICYgUVVBTF9SQVcpKQorCQkJc3lzX3JlcyA9IHByaW50YXJncyh0Y3ApOworCQllbHNlIHsKKwkJCWlmIChub3RfZmFpbGluZ19vbmx5ICYmIHRjcC0+dV9lcnJvcikKKwkJCQlyZXR1cm4gMDsJLyogaWdub3JlIGZhaWxlZCBzeXNjYWxscyAqLworCQkJc3lzX3JlcyA9ICgqc3lzZW50W3RjcC0+c2Nub10uc3lzX2Z1bmMpKHRjcCk7CisJCX0KKwkJdV9lcnJvciA9IHRjcC0+dV9lcnJvcjsKKwkJdHByaW50ZigiKSAiKTsKKwkJdGFidG8oYWNvbHVtbik7CisJCWlmICh0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzIHx8IHRjcC0+c2NubyA8IDAgfHwKKwkJICAgIHF1YWxfZmxhZ3NbdGNwLT5zY25vXSAmIFFVQUxfUkFXKSB7CisJCQlpZiAodV9lcnJvcikKKwkJCQl0cHJpbnRmKCI9IC0xIChlcnJubyAlbGQpIiwgdV9lcnJvcik7CisJCQllbHNlCisJCQkJdHByaW50ZigiPSAlI2x4IiwgdGNwLT51X3J2YWwpOworCQl9CisJCWVsc2UgaWYgKCEoc3lzX3JlcyAmIFJWQUxfTk9ORSkgJiYgdV9lcnJvcikgeworCQkJc3dpdGNoICh1X2Vycm9yKSB7CisjaWZkZWYgTElOVVgKKwkJCWNhc2UgRVJFU1RBUlRTWVM6CisJCQkJdHByaW50ZigiPSA/IEVSRVNUQVJUU1lTIChUbyBiZSByZXN0YXJ0ZWQpIik7CisJCQkJYnJlYWs7CisJCQljYXNlIEVSRVNUQVJUTk9JTlRSOgorCQkJCXRwcmludGYoIj0gPyBFUkVTVEFSVE5PSU5UUiAoVG8gYmUgcmVzdGFydGVkKSIpOworCQkJCWJyZWFrOworCQkJY2FzZSBFUkVTVEFSVE5PSEFORDoKKwkJCQl0cHJpbnRmKCI9ID8gRVJFU1RBUlROT0hBTkQgKFRvIGJlIHJlc3RhcnRlZCkiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRVJFU1RBUlRfUkVTVEFSVEJMT0NLOgorCQkJCXRwcmludGYoIj0gPyBFUkVTVEFSVF9SRVNUQVJUQkxPQ0sgKFRvIGJlIHJlc3RhcnRlZCkiKTsKKwkJCQlicmVhazsKKyNlbmRpZiAvKiBMSU5VWCAqLworCQkJZGVmYXVsdDoKKwkJCQl0cHJpbnRmKCI9IC0xICIpOworCQkJCWlmICh1X2Vycm9yIDwgMCkKKwkJCQkJdHByaW50ZigiRT8/PyAoZXJybm8gJWxkKSIsIHVfZXJyb3IpOworCQkJCWVsc2UgaWYgKHVfZXJyb3IgPCBuZXJybm9zKQorCQkJCQl0cHJpbnRmKCIlcyAoJXMpIiwgZXJybm9lbnRbdV9lcnJvcl0sCisJCQkJCQlzdHJlcnJvcih1X2Vycm9yKSk7CisJCQkJZWxzZQorCQkJCQl0cHJpbnRmKCJFUlJOT18lbGQgKCVzKSIsIHVfZXJyb3IsCisJCQkJCQlzdHJlcnJvcih1X2Vycm9yKSk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJZWxzZSB7CisJCQlpZiAoc3lzX3JlcyAmIFJWQUxfTk9ORSkKKwkJCQl0cHJpbnRmKCI9ID8iKTsKKwkJCWVsc2UgeworCQkJCXN3aXRjaCAoc3lzX3JlcyAmIFJWQUxfTUFTSykgeworCQkJCWNhc2UgUlZBTF9IRVg6CisJCQkJCXRwcmludGYoIj0gJSNseCIsIHRjcC0+dV9ydmFsKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBSVkFMX09DVEFMOgorCQkJCQl0cHJpbnRmKCI9ICUjbG8iLCB0Y3AtPnVfcnZhbCk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgUlZBTF9VREVDSU1BTDoKKwkJCQkJdHByaW50ZigiPSAlbHUiLCB0Y3AtPnVfcnZhbCk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgUlZBTF9ERUNJTUFMOgorCQkJCQl0cHJpbnRmKCI9ICVsZCIsIHRjcC0+dV9ydmFsKTsKKwkJCQkJYnJlYWs7CisjaWZkZWYgSEFWRV9MT05HX0xPTkcKKwkJCQljYXNlIFJWQUxfTEhFWDoKKwkJCQkJdHByaW50ZigiPSAlI2xseCIsIHRjcC0+dV9scnZhbCk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgUlZBTF9MT0NUQUw6CisJCQkJCXRwcmludGYoIj0gJSNsbG8iLCB0Y3AtPnVfbHJ2YWwpOworCQkJCQlicmVhazsKKwkJCQljYXNlIFJWQUxfTFVERUNJTUFMOgorCQkJCQl0cHJpbnRmKCI9ICVsbHUiLCB0Y3AtPnVfbHJ2YWwpOworCQkJCQlicmVhazsKKwkJCQljYXNlIFJWQUxfTERFQ0lNQUw6CisJCQkJCXRwcmludGYoIj0gJWxsZCIsIHRjcC0+dV9scnZhbCk7CisJCQkJCWJyZWFrOworI2VuZGlmCisJCQkJZGVmYXVsdDoKKwkJCQkJZnByaW50ZihzdGRlcnIsCisJCQkJCQkiaW52YWxpZCBydmFsIGZvcm1hdFxuIik7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWlmICgoc3lzX3JlcyAmIFJWQUxfU1RSKSAmJiB0Y3AtPmF1eHN0cikKKwkJCQl0cHJpbnRmKCIgKCVzKSIsIHRjcC0+YXV4c3RyKTsKKwkJfQorCQlpZiAoZHRpbWUpIHsKKwkJCXR2X3N1YigmdHYsICZ0diwgJnRjcC0+ZXRpbWUpOworCQkJdHByaW50ZigiIDwlbGQuJTA2bGQ+IiwKKwkJCQkobG9uZykgdHYudHZfc2VjLCAobG9uZykgdHYudHZfdXNlYyk7CisJCX0KKwkJcHJpbnR0cmFpbGVyKHRjcCk7CisKKwkJZHVtcGlvKHRjcCk7CisJCWlmIChmZmx1c2godGNwLT5vdXRmKSA9PSBFT0YpCisJCQlyZXR1cm4gLTE7CisJCXRjcC0+ZmxhZ3MgJj0gflRDQl9JTlNZU0NBTEw7CisJCXJldHVybiAwOworCX0KKworCS8qIEVudGVyaW5nIHN5c3RlbSBjYWxsICovCisJcmVzID0gc3lzY2FsbF9lbnRlcih0Y3ApOworCWlmIChyZXMgIT0gMSkKKwkJcmV0dXJuIHJlczsKKworCXN3aXRjaCAoa25vd25fc2Nubyh0Y3ApKSB7CisjaWZkZWYgTElOVVgKKyNpZiAhZGVmaW5lZCAoQUxQSEEpICYmICFkZWZpbmVkKFNQQVJDKSAmJiAhZGVmaW5lZChTUEFSQzY0KSAmJiAhZGVmaW5lZChNSVBTKSAmJiAhZGVmaW5lZChIUFBBKSAmJiAhZGVmaW5lZChfX0FSTV9FQUJJX18pIC8vQU5EUk9JRAorCWNhc2UgU1lTX3NvY2tldGNhbGw6CisJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3NvY2tldF9zdWJjYWxsLAorCQkJU1lTX3NvY2tldF9uc3ViY2FsbHMsIGRlcmVmX3N0eWxlKTsKKwkJYnJlYWs7CisJY2FzZSBTWVNfaXBjOgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19pcGNfc3ViY2FsbCwKKwkJCVNZU19pcGNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7CisJCWJyZWFrOworI2VuZGlmIC8qICFBTFBIQSAmJiAhTUlQUyAmJiAhU1BBUkMgJiYgIVNQQVJDNjQgJiYgIUhQUEEgKi8KKyNpZiBkZWZpbmVkIChTUEFSQykgfHwgZGVmaW5lZCAoU1BBUkM2NCkKKwljYXNlIFNZU19zb2NrZXRjYWxsOgorCQlzcGFyY19zb2NrZXRfZGVjb2RlICh0Y3ApOworCQlicmVhazsKKyNlbmRpZgorI2VuZGlmIC8qIExJTlVYICovCisjaWZkZWYgU1ZSNAorI2lmZGVmIFNZU19wZ3Jwc3lzX3N1YmNhbGwKKwljYXNlIFNZU19wZ3Jwc3lzOgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19wZ3Jwc3lzX3N1YmNhbGwsCisJCQlTWVNfcGdycHN5c19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKKwkJYnJlYWs7CisjZW5kaWYgLyogU1lTX3BncnBzeXNfc3ViY2FsbCAqLworI2lmZGVmIFNZU19zaWdjYWxsX3N1YmNhbGwKKwljYXNlIFNZU19zaWdjYWxsOgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19zaWdjYWxsX3N1YmNhbGwsCisJCQlTWVNfc2lnY2FsbF9uc3ViY2FsbHMsIG1hc2tfc3R5bGUpOworCQlicmVhazsKKyNlbmRpZiAvKiBTWVNfc2lnY2FsbF9zdWJjYWxsICovCisJY2FzZSBTWVNfbXNnc3lzOgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19tc2dzeXNfc3ViY2FsbCwKKwkJCVNZU19tc2dzeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7CisJCWJyZWFrOworCWNhc2UgU1lTX3NobXN5czoKKwkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfc2htc3lzX3N1YmNhbGwsCisJCQlTWVNfc2htc3lzX25zdWJjYWxscywgc2hpZnRfc3R5bGUpOworCQlicmVhazsKKwljYXNlIFNZU19zZW1zeXM6CisJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3NlbXN5c19zdWJjYWxsLAorCQkJU1lTX3NlbXN5c19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKKwkJYnJlYWs7CisjaWYgMCAvKiBicm9rZW4gKi8KKwljYXNlIFNZU191dHNzeXM6CisJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX3V0c3N5c19zdWJjYWxsLAorCQkJU1lTX3V0c3N5c19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKKwkJYnJlYWs7CisjZW5kaWYKKwljYXNlIFNZU19zeXNmczoKKwkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfc3lzZnNfc3ViY2FsbCwKKwkJCVNZU19zeXNmc19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKKwkJYnJlYWs7CisJY2FzZSBTWVNfc3BjYWxsOgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19zcGNhbGxfc3ViY2FsbCwKKwkJCVNZU19zcGNhbGxfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7CisJCWJyZWFrOworI2lmZGVmIFNZU19jb250ZXh0X3N1YmNhbGwKKwljYXNlIFNZU19jb250ZXh0OgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19jb250ZXh0X3N1YmNhbGwsCisJCQlTWVNfY29udGV4dF9uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKKwkJYnJlYWs7CisjZW5kaWYgLyogU1lTX2NvbnRleHRfc3ViY2FsbCAqLworI2lmZGVmIFNZU19kb29yX3N1YmNhbGwKKwljYXNlIFNZU19kb29yOgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19kb29yX3N1YmNhbGwsCisJCQlTWVNfZG9vcl9uc3ViY2FsbHMsIGRvb3Jfc3R5bGUpOworCQlicmVhazsKKyNlbmRpZiAvKiBTWVNfZG9vcl9zdWJjYWxsICovCisjaWZkZWYgU1lTX2thaW9fc3ViY2FsbAorCWNhc2UgU1lTX2thaW86CisJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX2thaW9fc3ViY2FsbCwKKwkJCVNZU19rYWlvX25zdWJjYWxscywgc2hpZnRfc3R5bGUpOworCQlicmVhazsKKyNlbmRpZgorI2VuZGlmIC8qIFNWUjQgKi8KKyNpZmRlZiBGUkVFQlNECisJY2FzZSBTWVNfbXNnc3lzOgorCWNhc2UgU1lTX3NobXN5czoKKwljYXNlIFNZU19zZW1zeXM6CisJCWRlY29kZV9zdWJjYWxsKHRjcCwgMCwgMCwgdGFibGVfc3R5bGUpOworCQlicmVhazsKKyNlbmRpZgorI2lmZGVmIFNVTk9TNAorCWNhc2UgU1lTX3NlbXN5czoKKwkJZGVjb2RlX3N1YmNhbGwodGNwLCBTWVNfc2Vtc3lzX3N1YmNhbGwsCisJCQlTWVNfc2Vtc3lzX25zdWJjYWxscywgc2hpZnRfc3R5bGUpOworCQlicmVhazsKKwljYXNlIFNZU19tc2dzeXM6CisJCWRlY29kZV9zdWJjYWxsKHRjcCwgU1lTX21zZ3N5c19zdWJjYWxsLAorCQkJU1lTX21zZ3N5c19uc3ViY2FsbHMsIHNoaWZ0X3N0eWxlKTsKKwkJYnJlYWs7CisJY2FzZSBTWVNfc2htc3lzOgorCQlkZWNvZGVfc3ViY2FsbCh0Y3AsIFNZU19zaG1zeXNfc3ViY2FsbCwKKwkJCVNZU19zaG1zeXNfbnN1YmNhbGxzLCBzaGlmdF9zdHlsZSk7CisJCWJyZWFrOworI2VuZGlmCisJfQorCisJaW50ZXJuYWxfc3lzY2FsbCh0Y3ApOworCWlmICh0Y3AtPnNjbm8gPj0wICYmIHRjcC0+c2NubyA8IG5zeXNjYWxscyAmJiAhKHF1YWxfZmxhZ3NbdGNwLT5zY25vXSAmIFFVQUxfVFJBQ0UpKSB7CisJCXRjcC0+ZmxhZ3MgfD0gVENCX0lOU1lTQ0FMTDsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKGNmbGFnKSB7CisJCWdldHRpbWVvZmRheSgmdGNwLT5ldGltZSwgTlVMTCk7CisJCXRjcC0+ZmxhZ3MgfD0gVENCX0lOU1lTQ0FMTDsKKwkJcmV0dXJuIDA7CisJfQorCisJcHJpbnRsZWFkZXIodGNwKTsKKwl0Y3AtPmZsYWdzICY9IH5UQ0JfUkVQUklOVDsKKwl0Y3BfbGFzdCA9IHRjcDsKKwlpZiAodGNwLT5zY25vID49IG5zeXNjYWxscyB8fCB0Y3AtPnNjbm8gPCAwKQorCQl0cHJpbnRmKCJzeXNjYWxsXyVsdSgiLCB0Y3AtPnNjbm8pOworCWVsc2UKKwkJdHByaW50ZigiJXMoIiwgc3lzZW50W3RjcC0+c2Nub10uc3lzX25hbWUpOworCWlmICh0Y3AtPnNjbm8gPj0gbnN5c2NhbGxzIHx8IHRjcC0+c2NubyA8IDAgfHwKKwkgICAgKChxdWFsX2ZsYWdzW3RjcC0+c2Nub10gJiBRVUFMX1JBVykgJiYgdGNwLT5zY25vICE9IFNZU19leGl0KSkKKwkJc3lzX3JlcyA9IHByaW50YXJncyh0Y3ApOworCWVsc2UKKwkJc3lzX3JlcyA9ICgqc3lzZW50W3RjcC0+c2Nub10uc3lzX2Z1bmMpKHRjcCk7CisJaWYgKGZmbHVzaCh0Y3AtPm91dGYpID09IEVPRikKKwkJcmV0dXJuIC0xOworCXRjcC0+ZmxhZ3MgfD0gVENCX0lOU1lTQ0FMTDsKKwkvKiBNZWFzdXJlIHRoZSBlbnRyYW5jZSB0aW1lIGFzIGxhdGUgYXMgcG9zc2libGUgdG8gYXZvaWQgZXJyb3JzLiAqLworCWlmIChkdGltZSkKKwkJZ2V0dGltZW9mZGF5KCZ0Y3AtPmV0aW1lLCBOVUxMKTsKKwlyZXR1cm4gc3lzX3JlczsKK30KKworaW50CitwcmludGFyZ3ModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWludCBpOworCisJCWZvciAoaSA9IDA7IGkgPCB0Y3AtPnVfbmFyZ3M7IGkrKykKKwkJCXRwcmludGYoIiVzJSNseCIsIGkgPyAiLCAiIDogIiIsIHRjcC0+dV9hcmdbaV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworbG9uZworZ2V0cnZhbDIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWxvbmcgdmFsID0gLTE7CisKKyNpZmRlZiBMSU5VWAorI2lmIGRlZmluZWQgKFNQQVJDKSB8fCBkZWZpbmVkIChTUEFSQzY0KQorCXN0cnVjdCByZWdzIHJlZ3M7CisJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUyx0Y3AtPnBpZCwoY2hhciAqKSZyZWdzLDApIDwgMCkKKwkJcmV0dXJuIC0xOworCXZhbCA9IHJlZ3Mucl9vMTsKKyNlbGlmIGRlZmluZWQoU0gpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCA0KihSRUdfUkVHMCsxKSwgJnZhbCkgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKElBNjQpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9SOSwgJnZhbCkgPCAwKQorCQlyZXR1cm4gLTE7CisjZW5kaWYgLyogU1BBUkMgfHwgU1BBUkM2NCAqLworI2VuZGlmIC8qIExJTlVYICovCisKKyNpZmRlZiBTVU5PUzQKKwlpZiAodXBlZWsodGNwLT5waWQsIHVvZmYodV9ydmFsMiksICZ2YWwpIDwgMCkKKwkJcmV0dXJuIC0xOworI2VuZGlmIC8qIFNVTk9TNCAqLworCisjaWZkZWYgU1ZSNAorI2lmZGVmIFNQQVJDCisJdmFsID0gdGNwLT5zdGF0dXMuUFJfUkVHW1JfTzFdOworI2VuZGlmIC8qIFNQQVJDICovCisjaWZkZWYgSTM4NgorCXZhbCA9IHRjcC0+c3RhdHVzLlBSX1JFR1tFRFhdOworI2VuZGlmIC8qIEkzODYgKi8KKyNpZmRlZiBYODZfNjQKKwl2YWwgPSB0Y3AtPnN0YXR1cy5QUl9SRUdbUkRYXTsKKyNlbmRpZiAvKiBYODZfNjQgKi8KKyNpZmRlZiBNSVBTCisJdmFsID0gdGNwLT5zdGF0dXMuUFJfUkVHW0NUWF9WMV07CisjZW5kaWYgLyogTUlQUyAqLworI2VuZGlmIC8qIFNWUjQgKi8KKyNpZmRlZiBGUkVFQlNECisJc3RydWN0IHJlZyByZWdzOworCXByZWFkKHRjcC0+cGZkX3JlZywgJnJlZ3MsIHNpemVvZihyZWdzKSwgMCk7CisJdmFsID0gcmVncy5yX2VkeDsKKyNlbmRpZgorCXJldHVybiB2YWw7Cit9CisKKy8qCisgKiBBcHBhcmVudGx5LCBpbmRpcmVjdCBzeXN0ZW0gY2FsbHMgaGF2ZSBhbHJlYWR5IGJlIGNvbnZlcnRlZCBieSBwdHJhY2UoMiksCisgKiBzbyBpZiB5b3Ugc2VlICJpbmRpciIgdGhpcyBwcm9ncmFtIGhhcyBnb25lIGFzdHJheS4KKyAqLworaW50CitzeXNfaW5kaXIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWludCBpLCBzY25vLCBuYXJnczsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWlmICgoc2NubyA9IHRjcC0+dV9hcmdbMF0pID4gbnN5c2NhbGxzKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkJvZ3VzIHN5c2NhbGw6ICV1XG4iLCBzY25vKTsKKwkJCXJldHVybiAwOworCQl9CisJCW5hcmdzID0gc3lzZW50W3Njbm9dLm5hcmdzOworCQl0cHJpbnRmKCIlcyIsIHN5c2VudFtzY25vXS5zeXNfbmFtZSk7CisJCWZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorCQkJdHByaW50ZigiLCAlI2x4IiwgdGNwLT51X2FyZ1tpKzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3RpbWVfY21wKGEsIGIpCit2b2lkICphOwordm9pZCAqYjsKK3sKKwlyZXR1cm4gLXR2X2NtcCgmY291bnRzWyooKGludCAqKSBhKV0udGltZSwgJmNvdW50c1sqKChpbnQgKikgYildLnRpbWUpOworfQorCitzdGF0aWMgaW50CitzeXNjYWxsX2NtcChhLCBiKQordm9pZCAqYTsKK3ZvaWQgKmI7Cit7CisJcmV0dXJuIHN0cmNtcChzeXNlbnRbKigoaW50ICopIGEpXS5zeXNfbmFtZSwKKwkJc3lzZW50WyooKGludCAqKSBiKV0uc3lzX25hbWUpOworfQorCitzdGF0aWMgaW50Citjb3VudF9jbXAoYSwgYikKK3ZvaWQgKmE7Cit2b2lkICpiOworeworCWludCBtID0gY291bnRzWyooKGludCAqKSBhKV0uY2FsbHMsIG4gPSBjb3VudHNbKigoaW50ICopIGIpXS5jYWxsczsKKworCXJldHVybiAobSA8IG4pID8gMSA6IChtID4gbikgPyAtMSA6IDA7Cit9CisKK3N0YXRpYyBpbnQgKCpzb3J0ZnVuKSgpOworc3RhdGljIHN0cnVjdCB0aW1ldmFsIG92ZXJoZWFkID0geyAtMSwgLTEgfTsKKwordm9pZAorc2V0X3NvcnRieShzb3J0YnkpCitjaGFyICpzb3J0Ynk7Cit7CisJaWYgKHN0cmNtcChzb3J0YnksICJ0aW1lIikgPT0gMCkKKwkJc29ydGZ1biA9IHRpbWVfY21wOworCWVsc2UgaWYgKHN0cmNtcChzb3J0YnksICJjYWxscyIpID09IDApCisJCXNvcnRmdW4gPSBjb3VudF9jbXA7CisJZWxzZSBpZiAoc3RyY21wKHNvcnRieSwgIm5hbWUiKSA9PSAwKQorCQlzb3J0ZnVuID0gc3lzY2FsbF9jbXA7CisJZWxzZSBpZiAoc3RyY21wKHNvcnRieSwgIm5vdGhpbmciKSA9PSAwKQorCQlzb3J0ZnVuID0gTlVMTDsKKwllbHNlIHsKKwkJZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIHNvcnRieTogYCVzJ1xuIiwgc29ydGJ5KTsKKwkJZXhpdCgxKTsKKwl9Cit9CisKK3ZvaWQgc2V0X292ZXJoZWFkKG4pCitpbnQgbjsKK3sKKwlvdmVyaGVhZC50dl9zZWMgPSBuIC8gMTAwMDAwMDsKKwlvdmVyaGVhZC50dl91c2VjID0gbiAlIDEwMDAwMDA7Cit9CisKK3ZvaWQKK2NhbGxfc3VtbWFyeShvdXRmKQorRklMRSAqb3V0ZjsKK3sKKwlpbnQgaSwgajsKKwlpbnQgY2FsbF9jdW0sIGVycm9yX2N1bTsKKwlzdHJ1Y3QgdGltZXZhbCB0dl9jdW0sIGR0djsKKwlkb3VibGUgcGVyY2VudDsKKwljaGFyICpkYXNoZXMgPSAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI7CisJY2hhciBlcnJvcl9zdHJbMTZdOworCisJaW50ICpzb3J0ZWRfY291bnQgPSBtYWxsb2MobnN5c2NhbGxzICogc2l6ZW9mKGludCkpOworCisJY2FsbF9jdW0gPSBlcnJvcl9jdW0gPSB0dl9jdW0udHZfc2VjID0gdHZfY3VtLnR2X3VzZWMgPSAwOworCWlmIChvdmVyaGVhZC50dl9zZWMgPT0gLTEpIHsKKwkJdHZfbXVsKCZvdmVyaGVhZCwgJnNob3J0ZXN0LCA4KTsKKwkJdHZfZGl2KCZvdmVyaGVhZCwgJm92ZXJoZWFkLCAxMCk7CisJfQorCWZvciAoaSA9IDA7IGkgPCBuc3lzY2FsbHM7IGkrKykgeworCQlzb3J0ZWRfY291bnRbaV0gPSBpOworCQlpZiAoY291bnRzID09IE5VTEwgfHwgY291bnRzW2ldLmNhbGxzID09IDApCisJCQljb250aW51ZTsKKwkJdHZfbXVsKCZkdHYsICZvdmVyaGVhZCwgY291bnRzW2ldLmNhbGxzKTsKKwkJdHZfc3ViKCZjb3VudHNbaV0udGltZSwgJmNvdW50c1tpXS50aW1lLCAmZHR2KTsKKwkJY2FsbF9jdW0gKz0gY291bnRzW2ldLmNhbGxzOworCQllcnJvcl9jdW0gKz0gY291bnRzW2ldLmVycm9yczsKKwkJdHZfYWRkKCZ0dl9jdW0sICZ0dl9jdW0sICZjb3VudHNbaV0udGltZSk7CisJfQorCWlmIChjb3VudHMgJiYgc29ydGZ1bikKKwkJcXNvcnQoKHZvaWQgKikgc29ydGVkX2NvdW50LCBuc3lzY2FsbHMsIHNpemVvZihpbnQpLCBzb3J0ZnVuKTsKKwlmcHJpbnRmKG91dGYsICIlNi42cyAlMTEuMTFzICUxMS4xMXMgJTkuOXMgJTkuOXMgJXNcbiIsCisJCSIlIHRpbWUiLCAic2Vjb25kcyIsICJ1c2Vjcy9jYWxsIiwKKwkJImNhbGxzIiwgImVycm9ycyIsICJzeXNjYWxsIik7CisJZnByaW50ZihvdXRmLCAiJTYuNnMgJTExLjExcyAlMTEuMTFzICU5LjlzICU5LjlzICUtMTYuMTZzXG4iLAorCQlkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzKTsKKwlpZiAoY291bnRzKSB7CisJCWZvciAoaSA9IDA7IGkgPCBuc3lzY2FsbHM7IGkrKykgeworCQkJaiA9IHNvcnRlZF9jb3VudFtpXTsKKwkJCWlmIChjb3VudHNbal0uY2FsbHMgPT0gMCkKKwkJCQljb250aW51ZTsKKwkJCXR2X2RpdigmZHR2LCAmY291bnRzW2pdLnRpbWUsIGNvdW50c1tqXS5jYWxscyk7CisJCQlpZiAoY291bnRzW2pdLmVycm9ycykKKwkJCQlzcHJpbnRmKGVycm9yX3N0ciwgIiVkIiwgY291bnRzW2pdLmVycm9ycyk7CisJCQllbHNlCisJCQkJZXJyb3Jfc3RyWzBdID0gJ1wwJzsKKwkJCXBlcmNlbnQgPSAoMTAwLjAgKiB0dl9mbG9hdCgmY291bnRzW2pdLnRpbWUpCisJCQkJICAgLyB0dl9mbG9hdCgmdHZfY3VtKSk7CisJCQlmcHJpbnRmKG91dGYsICIlNi4yZiAlNGxkLiUwNmxkICUxMWxkICU5ZCAlOS45cyAlc1xuIiwKKwkJCQlwZXJjZW50LCAobG9uZykgY291bnRzW2pdLnRpbWUudHZfc2VjLAorCQkJCShsb25nKSBjb3VudHNbal0udGltZS50dl91c2VjLAorCQkJCShsb25nKSAxMDAwMDAwICogZHR2LnR2X3NlYyArIGR0di50dl91c2VjLAorCQkJCWNvdW50c1tqXS5jYWxscywKKwkJCQllcnJvcl9zdHIsIHN5c2VudFtqXS5zeXNfbmFtZSk7CisJCX0KKwl9CisJZnJlZShzb3J0ZWRfY291bnQpOworCisJZnByaW50ZihvdXRmLCAiJTYuNnMgJTExLjExcyAlMTEuMTFzICU5LjlzICU5LjlzICUtMTYuMTZzXG4iLAorCQlkYXNoZXMsIGRhc2hlcywgZGFzaGVzLCBkYXNoZXMsIGRhc2hlcywgZGFzaGVzKTsKKwlpZiAoZXJyb3JfY3VtKQorCQlzcHJpbnRmKGVycm9yX3N0ciwgIiVkIiwgZXJyb3JfY3VtKTsKKwllbHNlCisJCWVycm9yX3N0clswXSA9ICdcMCc7CisJZnByaW50ZihvdXRmLCAiJTYuNnMgJTRsZC4lMDZsZCAlMTEuMTFzICU5ZCAlOS45cyAlc1xuIiwKKwkJIjEwMC4wMCIsIChsb25nKSB0dl9jdW0udHZfc2VjLCAobG9uZykgdHZfY3VtLnR2X3VzZWMsICIiLAorCQljYWxsX2N1bSwgZXJyb3Jfc3RyLCAidG90YWwiKTsKKworfQpkaWZmIC0tZ2l0IGEvc3lzY2FsbGVudC5zaCBiL3N5c2NhbGxlbnQuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmYwODcwMQotLS0gL2Rldi9udWxsCisrKyBiL3N5c2NhbGxlbnQuc2gKQEAgLTAsMCArMSw3NSBAQAorIyEvYmluL3NoCisjIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyMgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisjIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyMgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorIyBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyMgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyMKKyMJJElkOiBzeXNjYWxsZW50LnNoLHYgMS4zIDIwMDMvMDMvMzEgMDE6MDM6MzQgcm9sYW5kIEV4cCAkCisKK2NhdCAkezErIiRAIn0gfAorCXNlZCAtbiAncy9eI1sgCV0qZGVmaW5lWyAJXVsgCV0qU1lTX1woW14gCV0qXClbIAldKlteMC05XSpcKFswLTldKlwpLiokL1wxIFwyL3AKK3MvXiNbIAldKmRlZmluZVsgCV1bIAldKl9fTlJfXChbXiAJXSpcKVsgCV0qW14wLTldKlwoWzAtOV0qXCkuKiQvXDEgXDIvcAorcy9eI1sgXSpkZWZpbmVbIF1bIF0qX19OUl9cKFteIF0qXClbIF0qW14wLTkoKV0qKF9fTlJfTGludXggKyBcKFswLTldKlwpKSQvXDEgXDIvcCcgfAorCXNvcnQgKzFuIHwgdW5pcSB8CisJYXdrICcKKwlCRUdJTiB7CisJCXRhYnMgPSAiXHRcdFx0XHRcdFx0XHRcdCIKKwkJY2FsbCA9IC0xOworCX0KKwl7CisJCXdoaWxlICgrK2NhbGwgPCAkMikgeworCQkJZiA9ICJwcmludGFyZ3MiCisJCQluID0gIlNZU18iIGNhbGwKKwkJCXMgPSAiXHR7IC0xLFx0MCxcdCIKKwkJCXMgPSBzIGYgIiwiCisJCQlzID0gcyBzdWJzdHIodGFicywgMSwgMjQvOCAtIGludCgobGVuZ3RoKGYpICsgMSkvOCkpCisJCQlzID0gcyAiXCIiIG4gIlwiIgorCQkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDE2LzggLSBpbnQoKGxlbmd0aChuKSArIDIpLzgpKQorCQkJcyA9IHMgIn0sIC8qICIgY2FsbCAiICovIgorCQkJcHJpbnQgcworCQl9CisJCWYgPSAic3lzXyIgJDEKKwkJbiA9ICQxCisJCXMgPSAiXHR7IC0xLFx0MCxcdCIKKwkJcyA9IHMgZiAiLCIKKwkJcyA9IHMgc3Vic3RyKHRhYnMsIDEsIDI0LzggLSBpbnQoKGxlbmd0aChmKSArIDEpLzgpKQorCQlzID0gcyAiXCIiIG4gIlwiIgorCQlzID0gcyBzdWJzdHIodGFicywgMSwgMTYvOCAtIGludCgobGVuZ3RoKG4pICsgMikvOCkpCisJCXMgPSBzICJ9LCAvKiAiIGNhbGwgIiAqLyIKKwkJcHJpbnQgcworCX0KKwlFTkQgeworCQlsaW1pdCA9IGNhbGwgKyAxMDAKKwkJd2hpbGUgKCsrY2FsbCA8IGxpbWl0KSB7CisJCQlmID0gInByaW50YXJncyIKKwkJCW4gPSAiU1lTXyIgY2FsbAorCQkJcyA9ICJcdHsgLTEsXHQwLFx0IgorCQkJcyA9IHMgZiAiLCIKKwkJCXMgPSBzIHN1YnN0cih0YWJzLCAxLCAyNC84IC0gaW50KChsZW5ndGgoZikgKyAxKS84KSkKKwkJCXMgPSBzICJcIiIgbiAiXCIiCisJCQlzID0gcyBzdWJzdHIodGFicywgMSwgMTYvOCAtIGludCgobGVuZ3RoKG4pICsgMikvOCkpCisJCQlzID0gcyAifSwgLyogIiBjYWxsICIgKi8iCisJCQlwcmludCBzCisJCX0KKwl9CisJJwpkaWZmIC0tZ2l0IGEvc3lzdGVtLmMgYi9zeXN0ZW0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGFkOWI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzdGVtLmMKQEAgLTAsMCArMSwyMjYyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAxOTkxLCAxOTkyIFBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5MyBCcmFua28gTGFua2VzdGVyIDxicmFua29AaGFja3RpYy5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgV2ljaGVydCBBa2tlcm1hbiA8d2ljaGVydEBjaXN0cm9uLm5sPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogc3lzdGVtLmMsdiAxLjM3IDIwMDUvMDYvMDEgMTk6MjI6MDYgcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKworI2lmZGVmIExJTlVYCisKKyNpZmRlZiBIQVZFX0FORFJPSURfT1MKKyN1bmRlZiBfX3VudXNlZAorI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy9tb3VudC5oPgorI2RlZmluZSBDVExfUFJPQyA0CisKKyNlbHNlCisjZGVmaW5lIF9MSU5VWF9TT0NLRVRfSAorI2RlZmluZSBfTElOVVhfRlNfSAorCisjZGVmaW5lIE1TX1JET05MWQkgMQkvKiBNb3VudCByZWFkLW9ubHkgKi8KKyNkZWZpbmUgTVNfTk9TVUlECSAyCS8qIElnbm9yZSBzdWlkIGFuZCBzZ2lkIGJpdHMgKi8KKyNkZWZpbmUgTVNfTk9ERVYJIDQJLyogRGlzYWxsb3cgYWNjZXNzIHRvIGRldmljZSBzcGVjaWFsIGZpbGVzICovCisjZGVmaW5lIE1TX05PRVhFQwkgOAkvKiBEaXNhbGxvdyBwcm9ncmFtIGV4ZWN1dGlvbiAqLworI2RlZmluZSBNU19TWU5DSFJPTk9VUwkxNgkvKiBXcml0ZXMgYXJlIHN5bmNlZCBhdCBvbmNlICovCisjZGVmaW5lIE1TX1JFTU9VTlQJMzIJLyogQWx0ZXIgZmxhZ3Mgb2YgYSBtb3VudGVkIEZTICovCisjZGVmaW5lIE1TX01BTkRMT0NLCTY0CS8qIEFsbG93IG1hbmRhdG9yeSBsb2NrcyBvbiBhbiBGUyAqLworI2RlZmluZSBNU19ESVJTWU5DCTEyOAkvKiBEaXJlY3RvcnkgbW9kaWZpY2F0aW9ucyBhcmUgc3luY2hyb25vdXMgKi8KKyNkZWZpbmUgTVNfTk9BVElNRQkxMDI0CS8qIERvIG5vdCB1cGRhdGUgYWNjZXNzIHRpbWVzLiAqLworI2RlZmluZSBNU19OT0RJUkFUSU1FCTIwNDgJLyogRG8gbm90IHVwZGF0ZSBkaXJlY3RvcnkgYWNjZXNzIHRpbWVzICovCisjZGVmaW5lIE1TX0JJTkQJCTQwOTYKKyNkZWZpbmUgTVNfTU9WRQkJODE5MgorI2RlZmluZSBNU19SRUMJCTE2Mzg0CisjZGVmaW5lIE1TX1ZFUkJPU0UJMzI3NjgKKyNkZWZpbmUgTVNfUE9TSVhBQ0wJKDE8PDE2KQkvKiBWRlMgZG9lcyBub3QgYXBwbHkgdGhlIHVtYXNrICovCisjZGVmaW5lIE1TX0FDVElWRQkoMTw8MzApCisjZGVmaW5lIE1TX05PVVNFUgkoMTw8MzEpCisjZGVmaW5lIE1TX01HQ19WQUwJMHhjMGVkMDAwMAkvKiBNYWdpYyBmbGFnIG51bWJlciAqLworI2VuZGlmIC8qIEhBVkVfQU5EUk9JRF9PUyAqLworCisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisKKyNpZmRlZiBTWVNfY2FwZ2V0CisjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgorI2VuZGlmCisKKyNpZmRlZiBTWVNfY2FjaGVmbHVzaAorI2luY2x1ZGUgPGFzbS9jYWNoZWN0bC5oPgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0xJTlVYX1VTVE5BTUVfSAorI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KKyNlbmRpZgorCisjaWZkZWYgTUlQUworI2luY2x1ZGUgPGFzbS9zeXNtaXBzLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW91bnRfZmxhZ3NbXSA9IHsKKwl7IE1TX01HQ19WQUwsCSJNU19NR0NfVkFMIgl9LAorCXsgTVNfUkRPTkxZLAkiTVNfUkRPTkxZIgl9LAorCXsgTVNfTk9TVUlELAkiTVNfTk9TVUlEIgl9LAorCXsgTVNfTk9ERVYsCSJNU19OT0RFViIJfSwKKwl7IE1TX05PRVhFQywJIk1TX05PRVhFQyIJfSwKKwl7IE1TX1NZTkNIUk9OT1VTLCJNU19TWU5DSFJPTk9VUyJ9LAorCXsgTVNfUkVNT1VOVCwJIk1TX1JFTU9VTlQiCX0sCisJeyBNU19NQU5ETE9DSywJIk1TX01BTkRMT0NLIgl9LAorCXsgTVNfTk9BVElNRSwJIk1TX05PQVRJTUUiCX0sCisJeyBNU19OT0RJUkFUSU1FLCJNU19OT0RJUkFUSU1FIgl9LAorCXsgTVNfQklORCwJIk1TX0JJTkQiCX0sCisJeyBNU19NT1ZFLAkiTVNfTU9WRSIJfSwKKwl7IE1TX1JFQywJIk1TX1JFQyIJfSwKKwl7IE1TX1ZFUkJPU0UsCSJNU19WRVJCT1NFIgl9LAorCXsgTVNfUE9TSVhBQ0wsCSJNU19QT1NJWEFDTCIJfSwKKwl7IE1TX0FDVElWRSwJIk1TX0FDVElWRSIJfSwKKwl7IE1TX05PVVNFUiwJIk1TX05PVVNFUiIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworaW50CitzeXNfbW91bnQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKCh0Y3AtPnVfYXJnWzNdICYgKE1TX0JJTkR8TVNfTU9WRXxNU19SRU1PVU5UKSkgPT0gMCkKKwkJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQllbHNlCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MobW91bnRfZmxhZ3MsIHRjcC0+dV9hcmdbM10sICJNU18/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKCh0Y3AtPnVfYXJnWzNdICYgKE1TX0JJTkR8TVNfTU9WRSkpID09IDApCisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbNF0sIC0xKTsKKwkJZWxzZQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbNF0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBNTlRfRk9SQ0UJMHgwMDAwMDAwMQkvKiBBdHRlbXB0IHRvIGZvcmNpYmlseSB1bW91bnQgKi8KKyNkZWZpbmUgTU5UX0RFVEFDSAkweDAwMDAwMDAyCS8qIEp1c3QgZGV0YWNoIGZyb20gdGhlIHRyZWUgKi8KKyNkZWZpbmUgTU5UX0VYUElSRQkweDAwMDAwMDA0CS8qIE1hcmsgZm9yIGV4cGlyeSAqLworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgdW1vdW50X2ZsYWdzW10gPSB7CisJeyBNTlRfRk9SQ0UsCSJNTlRfRk9SQ0UiCX0sCisJeyBNTlRfREVUQUNILAkiTU5UX0RFVEFDSCIJfSwKKwl7IE1OVF9FWFBJUkUsCSJNTlRfRVhQSVJFIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitpbnQKK3N5c191bW91bnQyKHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMF0sIC0xKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyh1bW91bnRfZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJNTlRfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorCisvKiBUaGVzZSBhcmUgbm90IG1hY3JvcywgYnV0IGVudW1zLiAgV2UganVzdCBjb3B5IHRoZSB2YWx1ZXMgYnkgaGFuZAorICAgZnJvbSBMaW51eCAyLjYuOSBoZXJlLiAgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBwZXJzb25hbGl0eV9vcHRpb25zW10gPSB7CisJeyAwLAkJIlBFUl9MSU5VWCIJfSwKKwl7IDB4MDA4MDAwMDAsCSJQRVJfTElOVVhfMzJCSVQifSwKKwl7IDB4MDQxMDAwMDEsCSJQRVJfU1ZSNCIJfSwKKwl7IDB4MDUwMDAwMDIsCSJQRVJfU1ZSMyIJfSwKKwl7IDB4MDcwMDAwMDMsCSJQRVJfU0NPU1ZSMyIJfSwKKwl7IDB4MDYwMDAwMDMsCSJQRVJfT1NSNSIJfSwKKwl7IDB4MDUwMDAwMDQsCSJQRVJfV1lTRVYzODYiCX0sCisJeyAweDA0MDAwMDA1LAkiUEVSX0lTQ1I0Igl9LAorCXsgMHgwMDAwMDAwNiwJIlBFUl9CU0QiCX0sCisJeyAweDA0MDAwMDA2LAkiUEVSX1NVTk9TIgl9LAorCXsgMHgwNTAwMDAwNywJIlBFUl9YRU5JWCIJfSwKKwl7IDB4MDAwMDAwMDgsCSJQRVJfTElOVVgzMiIJfSwKKwl7IDB4MDgwMDAwMDgsCSJQRVJfTElOVVgzMl8zR0IifSwKKwl7IDB4MDQwMDAwMDksCSJQRVJfSVJJWDMyIgl9LAorCXsgMHgwNDAwMDAwYSwJIlBFUl9JUklYTjMyIgl9LAorCXsgMHgwNDAwMDAwYiwJIlBFUl9JUklYNjQiCX0sCisJeyAweDAwMDAwMDBjLAkiUEVSX1JJU0NPUyIJfSwKKwl7IDB4MDQwMDAwMGQsCSJQRVJfU09MQVJJUyIJfSwKKwl7IDB4MDQxMDAwMGUsCSJQRVJfVVc3Igl9LAorCXsgMHgwMDAwMDAwZiwJIlBFUl9PU0Y0Igl9LAorCXsgMHgwMDAwMDAxMCwJIlBFUl9IUFVYIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitpbnQKK3N5c19wZXJzb25hbGl0eSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXByaW50eHZhbChwZXJzb25hbGl0eV9vcHRpb25zLCB0Y3AtPnVfYXJnWzBdLCAiUEVSXz8/PyIpOworCXJldHVybiAwOworfQorCisjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYm9vdGZsYWdzMVtdID0geworCXsgTElOVVhfUkVCT09UX01BR0lDMSwJIkxJTlVYX1JFQk9PVF9NQUdJQzEiCX0sCisJeyAwLAkJCU5VTEwJCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGJvb3RmbGFnczJbXSA9IHsKKwl7IExJTlVYX1JFQk9PVF9NQUdJQzIsCSJMSU5VWF9SRUJPT1RfTUFHSUMyIgl9LAorCXsgTElOVVhfUkVCT09UX01BR0lDMkEsCSJMSU5VWF9SRUJPT1RfTUFHSUMyQSIJfSwKKwl7IExJTlVYX1JFQk9PVF9NQUdJQzJCLAkiTElOVVhfUkVCT09UX01BR0lDMkIiCX0sCisJeyAwLAkJCU5VTEwJCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGJvb3RmbGFnczNbXSA9IHsKKwl7IExJTlVYX1JFQk9PVF9DTURfQ0FEX09GRiwJIkxJTlVYX1JFQk9PVF9DTURfQ0FEX09GRiIJfSwKKwl7IExJTlVYX1JFQk9PVF9DTURfUkVTVEFSVCwJIkxJTlVYX1JFQk9PVF9DTURfUkVTVEFSVCIJfSwKKwl7IExJTlVYX1JFQk9PVF9DTURfSEFMVCwJIkxJTlVYX1JFQk9PVF9DTURfSEFMVCIJCX0sCisJeyBMSU5VWF9SRUJPT1RfQ01EX0NBRF9PTiwJIkxJTlVYX1JFQk9PVF9DTURfQ0FEX09OIgl9LAorCXsgTElOVVhfUkVCT09UX0NNRF9QT1dFUl9PRkYsCSJMSU5VWF9SRUJPT1RfQ01EX1BPV0VSX09GRiIJfSwKKwl7IExJTlVYX1JFQk9PVF9DTURfUkVTVEFSVDIsCSJMSU5VWF9SRUJPT1RfQ01EX1JFU1RBUlQyIgl9LAorCXsgMCwJCQkJTlVMTAkJCQl9LAorfTsKKworaW50CitzeXNfcmVib290KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZsYWdzKGJvb3RmbGFnczEsIHRjcC0+dV9hcmdbMF0sICJMSU5VWF9SRUJPT1RfTUFHSUNfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MoYm9vdGZsYWdzMiwgdGNwLT51X2FyZ1sxXSwgIkxJTlVYX1JFQk9PVF9NQUdJQ18/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhib290ZmxhZ3MzLCB0Y3AtPnVfYXJnWzJdLCAiTElOVVhfUkVCT09UX0NNRF8/Pz8iKTsKKwkJaWYgKHRjcC0+dV9hcmdbMl0gPT0gTElOVVhfUkVCT09UX0NNRF9SRVNUQVJUMikgeworCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1szXSwgLTEpOworCQl9CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgTTY4Sworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGNhY2hlZmx1c2hfc2NvcGVbXSA9IHsKKyNpZmRlZiBGTFVTSF9TQ09QRV9MSU5FCisJeyBGTFVTSF9TQ09QRV9MSU5FLAkiRkxVU0hfU0NPUEVfTElORSIgfSwKKyNlbmRpZgorI2lmZGVmIEZMVVNIX1NDT1BFX1BBR0UKKwl7IEZMVVNIX1NDT1BFX1BBR0UsCSJGTFVTSF9TQ09QRV9QQUdFIiB9LAorI2VuZGlmCisjaWZkZWYgRkxVU0hfU0NPUEVfQUxMCisJeyBGTFVTSF9TQ09QRV9BTEwsCSJGTFVTSF9TQ09QRV9BTEwiIH0sCisjZW5kaWYKKwl7IDAsCQkJTlVMTCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGNhY2hlZmx1c2hfZmxhZ3NbXSA9IHsKKyNpZmRlZiBGTFVTSF9DQUNIRV9CT1RICisJeyBGTFVTSF9DQUNIRV9CT1RILAkiRkxVU0hfQ0FDSEVfQk9USCIgfSwKKyNlbmRpZgorI2lmZGVmIEZMVVNIX0NBQ0hFX0RBVEEKKwl7IEZMVVNIX0NBQ0hFX0RBVEEsCSJGTFVTSF9DQUNIRV9EQVRBIiB9LAorI2VuZGlmCisjaWZkZWYgRkxVU0hfQ0FDSEVfSU5TTgorCXsgRkxVU0hfQ0FDSEVfSU5TTiwJIkZMVVNIX0NBQ0hFX0lOU04iIH0sCisjZW5kaWYKKwl7IDAsCQkJTlVMTCB9LAorfTsKKworaW50CitzeXNfY2FjaGVmbHVzaCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJLyogYWRkciAqLworCQl0cHJpbnRmKCIlI2x4LCAiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJLyogc2NvcGUgKi8KKwkJcHJpbnR4dmFsKGNhY2hlZmx1c2hfc2NvcGUsIHRjcC0+dV9hcmdbMV0sICJGTFVTSF9TQ09QRV8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJLyogZmxhZ3MgKi8KKwkJcHJpbnRmbGFncyhjYWNoZWZsdXNoX2ZsYWdzLCB0Y3AtPnVfYXJnWzJdLCAiRkxVU0hfQ0FDSEVfPz8/Iik7CisJCS8qIGxlbiAqLworCQl0cHJpbnRmKCIsICVsdSIsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBNNjhLICovCisKKyNlbmRpZiAvKiBMSU5VWCAqLworCisjaWZkZWYgU1VOT1M0CisKKyNpbmNsdWRlIDxzeXMvcmVib290Lmg+CisjZGVmaW5lIE5GU0NMSUVOVAorI2RlZmluZSBMT0ZTCisjZGVmaW5lIFJGUworI2RlZmluZSBQQ0ZTCisjaW5jbHVkZSA8c3lzL21vdW50Lmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPG5mcy9leHBvcnQuaD4KKyNpbmNsdWRlIDxycGMvdHlwZXMuaD4KKyNpbmNsdWRlIDxycGMvYXV0aC5oPgorCisvKkFSR1NVU0VEKi8KK2ludAorc3lzX3N5bmModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYm9vdGZsYWdzW10gPSB7CisJeyBSQl9BVVRPQk9PVCwJIlJCX0FVVE9CT09UIgl9LAkvKiBmb3Igc3lzdGVtIGF1dG8tYm9vdGluZyBpdHNlbGYgKi8KKwl7IFJCX0FTS05BTUUsCSJSQl9BU0tOQU1FIgl9LAkvKiBhc2sgZm9yIGZpbGUgbmFtZSB0byByZWJvb3QgZnJvbSAqLworCXsgUkJfU0lOR0xFLAkiUkJfU0lOR0xFIgl9LAkvKiByZWJvb3QgdG8gc2luZ2xlIHVzZXIgb25seSAqLworCXsgUkJfTk9TWU5DLAkiUkJfTk9TWU5DIgl9LAkvKiBkb250IHN5bmMgYmVmb3JlIHJlYm9vdCAqLworCXsgUkJfSEFMVCwJIlJCX0hBTFQiCX0sCS8qIGRvbid0IHJlYm9vdCwganVzdCBoYWx0ICovCisJeyBSQl9JTklUTkFNRSwJIlJCX0lOSVROQU1FIgl9LAkvKiBuYW1lIGdpdmVuIGZvciAvZXRjL2luaXQgKi8KKwl7IFJCX05PQk9PVFJDLAkiUkJfTk9CT09UUkMiCX0sCS8qIGRvbid0IHJ1biAvZXRjL3JjLmJvb3QgKi8KKwl7IFJCX0RFQlVHLAkiUkJfREVCVUciCX0sCS8qIGJlaW5nIHJ1biB1bmRlciBkZWJ1Z2dlciAqLworCXsgUkJfRFVNUCwJIlJCX0RVTVAiCX0sCS8qIGR1bXAgc3lzdGVtIGNvcmUgKi8KKwl7IFJCX1dSSVRBQkxFLAkiUkJfV1JJVEFCTEUiCX0sCS8qIG1vdW50IHJvb3QgcmVhZC93cml0ZSAqLworCXsgUkJfU1RSSU5HLAkiUkJfU1RSSU5HIgl9LAkvKiBwYXNzIGJvb3QgYXJncyB0byBwcm9tIG1vbml0b3IgKi8KKwl7IDAsCQlOVUxMCQl9LAorfTsKKworaW50CitzeXNfcmVib290KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludGZsYWdzKGJvb3RmbGFncywgdGNwLT51X2FyZ1swXSwgIlJCXz8/PyIpOworCQlpZiAodGNwLT51X2FyZ1swXSAmIFJCX1NUUklORykgeworCQkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAtMSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX3N5c2FjY3QodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1swXSwgLTEpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc3dhcG9uKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMF0sIC0xKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorc3lzX25mc19zdmModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50c29jayh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG1vdW50ZmxhZ3NbXSA9IHsKKwl7IE1fUkRPTkxZLAkiTV9SRE9OTFkiCX0sCisJeyBNX05PU1VJRCwJIk1fTk9TVUlEIgl9LAorCXsgTV9ORVdUWVBFLAkiTV9ORVdUWVBFIgl9LAorCXsgTV9HUlBJRCwJIk1fR1JQSUQiCX0sCisjaWZkZWYJTV9SRU1PVU5UCisJeyBNX1JFTU9VTlQsCSJNX1JFTU9VTlQiCX0sCisjZW5kaWYKKyNpZmRlZglNX05PU1VCCisJeyBNX05PU1VCLAkiTV9OT1NVQiIJfSwKKyNlbmRpZgorI2lmZGVmCU1fTVVMVEkKKwl7IE1fTVVMVEksCSJNX01VTFRJIgl9LAorI2VuZGlmCisjaWZkZWYJTV9TWVM1CisJeyBNX1NZUzUsCSJNX1NZUzUiCX0sCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG5mc2ZsYWdzW10gPSB7CisJeyBORlNNTlRfU09GVCwJCSJORlNNTlRfU09GVCIJCX0sCisJeyBORlNNTlRfV1NJWkUsCQkiTkZTTU5UX1dTSVpFIgkJfSwKKwl7IE5GU01OVF9SU0laRSwJCSJORlNNTlRfUlNJWkUiCQl9LAorCXsgTkZTTU5UX1RJTUVPLAkJIk5GU01OVF9USU1FTyIJCX0sCisJeyBORlNNTlRfUkVUUkFOUywJIk5GU01OVF9SRVRSQU5TIgl9LAorCXsgTkZTTU5UX0hPU1ROQU1FLAkiTkZTTU5UX0hPU1ROQU1FIgl9LAorCXsgTkZTTU5UX0lOVCwJCSJORlNNTlRfSU5UIgkJfSwKKwl7IE5GU01OVF9OT0FDLAkJIk5GU01OVF9OT0FDIgkJfSwKKwl7IE5GU01OVF9BQ1JFR01JTiwJIk5GU01OVF9BQ1JFR01JTiIJfSwKKwl7IE5GU01OVF9BQ1JFR01BWCwJIk5GU01OVF9BQ1JFR01BWCIJfSwKKwl7IE5GU01OVF9BQ0RJUk1JTiwJIk5GU01OVF9BQ0RJUk1JTiIJfSwKKwl7IE5GU01OVF9BQ0RJUk1BWCwJIk5GU01OVF9BQ0RJUk1BWCIJfSwKKyNpZmRlZglORlNNTlRfU0VDVVJFCisJeyBORlNNTlRfU0VDVVJFLAkiTkZTTU5UX1NFQ1VSRSIJCX0sCisjZW5kaWYKKyNpZmRlZglORlNNTlRfTk9DVE8KKwl7IE5GU01OVF9OT0NUTywJCSJORlNNTlRfTk9DVE8iCQl9LAorI2VuZGlmCisjaWZkZWYJTkZTTU5UX1BPU0lYCisJeyBORlNNTlRfUE9TSVgsCQkiTkZTTU5UX1BPU0lYIgkJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQkJfSwKK307CisKK2ludAorc3lzX21vdW50KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwljaGFyIHR5cGVbNF07CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlpZiAoISh0Y3AtPnVfYXJnWzJdICYgTV9ORVdUWVBFKSB8fCB1bW92ZXN0cih0Y3AsCisJCQkJdGNwLT51X2FyZ1swXSwgIHNpemVvZiB0eXBlLCB0eXBlKSA8IDApIHsKKwkJCXRwcmludGYoIk9MRFRZUEU6IyVseCIsIHRjcC0+dV9hcmdbMF0pOworCQl9IGVsc2UgeworCQkJdHByaW50ZigiXCIlc1wiLCAiLCB0eXBlKTsKKwkJfQorCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMV0sIC0xKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhtb3VudGZsYWdzLCB0Y3AtPnVfYXJnWzJdICYgfk1fTkVXVFlQRSwgIk1fPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisKKwkJaWYgKHN0cmNtcCh0eXBlLCAiNC4yIikgPT0gMCkgeworCQkJc3RydWN0IHVmc19hcmdzIGE7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmYSkgPCAwKQorCQkJCXJldHVybiAwOworCQkJcHJpbnRzdHIodGNwLCAoaW50KWEuZnNwZWMsIC0xKTsKKwkJfSBlbHNlIGlmIChzdHJjbXAodHlwZSwgImxvIikgPT0gMCkgeworCQkJc3RydWN0IGxvX2FyZ3MgYTsKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZhKSA8IDApCisJCQkJcmV0dXJuIDA7CisJCQlwcmludHN0cih0Y3AsIChpbnQpYS5mc2RpciwgLTEpOworCQl9IGVsc2UgaWYgKHN0cmNtcCh0eXBlLCAibmZzIikgPT0gMCkgeworCQkJc3RydWN0IG5mc19hcmdzIGE7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmYSkgPCAwKQorCQkJCXJldHVybiAwOworCQkJdHByaW50ZigiWyIpOworCQkJcHJpbnRzb2NrKHRjcCwgKGludCkgYS5hZGRyKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKG5mc2ZsYWdzLCBhLmZsYWdzLCAiTkZTTU5UXz8/PyIpOworCQkJdHByaW50ZigiLCB3czoldSxyczoldSx0bzoldSxyZToldSwiLAorCQkJCWEud3NpemUsIGEucnNpemUsIGEudGltZW8sIGEucmV0cmFucyk7CisJCQlpZiAoYS5mbGFncyAmIE5GU01OVF9IT1NUTkFNRSAmJiBhLmhvc3RuYW1lKQorCQkJCXByaW50c3RyKHRjcCwgKGludClhLmhvc3RuYW1lLCAtMSk7CisJCQllbHNlCisJCQkJdHByaW50ZigiJSNseCIsICh1bnNpZ25lZCBsb25nKSBhLmhvc3RuYW1lKTsKKwkJCXRwcmludGYoIixyZWctbWluOiV1LG1heDoldSxkaXItbWluOiV1LG1heDoldSwiLAorCQkJCWEuYWNyZWdtaW4sIGEuYWNyZWdtYXgsIGEuYWNkaXJtaW4sIGEuYWNkaXJtYXgpOworCQkJaWYgKChhLmZsYWdzICYgTkZTTU5UX1NFQ1VSRSkgJiYgYS5uZXRuYW1lKQorCQkJCXByaW50c3RyKHRjcCwgKGludCkgYS5uZXRuYW1lLCAtMSk7CisJCQllbHNlCisJCQkJdHByaW50ZigiJSNseCIsICh1bnNpZ25lZCBsb25nKSBhLm5ldG5hbWUpOworCQkJdHByaW50ZigiXSIpOworCQl9IGVsc2UgaWYgKHN0cmNtcCh0eXBlLCAicmZzIikgPT0gMCkgeworCQkJc3RydWN0IHJmc19hcmdzIGE7CisJCQlzdHJ1Y3QgdG9rZW4gdDsKKwkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZhKSA8IDApCisJCQkJcmV0dXJuIDA7CisJCQl0cHJpbnRmKCJbIik7CisJCQlwcmludHN0cih0Y3AsIChpbnQpYS5ybXRmcywgLTEpOworCQkJaWYgKHVtb3ZlKHRjcCwgKGludClhLnRva2VuLCAmdCkgPCAwKQorCQkJCXJldHVybiAwOworCQkJdHByaW50ZigiLCAldSwgJXNdIiwgdC50X2lkLCB0LnRfdW5hbWUpOworCQl9IGVsc2UgaWYgKHN0cmNtcCh0eXBlLCAicGNmcyIpID09IDApIHsKKwkJCXN0cnVjdCBwY19hcmdzIGE7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzNdLCAmYSkgPCAwKQorCQkJCXJldHVybiAwOworCQkJcHJpbnRzdHIodGNwLCAoaW50KWEuZnNwZWMsIC0xKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdW5tb3VudCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzBdLCAtMSk7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c191bW91bnQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXJldHVybiBzeXNfdW5tb3VudCh0Y3ApOworfQorCitpbnQKK3N5c19hdWRpdHN5cyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJLyogWFhYIC0gbm8gaW5mb3JtYXRpb24gYXZhaWxhYmxlICovCisJcmV0dXJuIHByaW50YXJncyh0Y3ApOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgZXhfYXV0aF9mbGFnc1tdID0geworCXsgQVVUSF9VTklYLAkiQVVUSF9VTklYIgl9LAorCXsgQVVUSF9ERVMsCSJBVVRIX0RFUyIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworaW50CitzeXNfZXhwb3J0ZnModGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBleHBvcnQgZTsKKwlpbnQgaTsKKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1swXSwgLTEpOworCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzFdLCAmZSkgPCAwKSB7CisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCQlyZXR1cm4gMDsKKwkJfQorCQl0cHJpbnRmKCJ7Zmw6JXUsIGFub246JXUsICIsIGUuZXhfZmxhZ3MsIGUuZXhfYW5vbik7CisJCXByaW50eHZhbChleF9hdXRoX2ZsYWdzLCBlLmV4X2F1dGgsICJBVVRIXz8/PyIpOworCQl0cHJpbnRmKCIsIHJvb3RzOlsiKTsKKwkJaWYgKGUuZXhfYXV0aCA9PSBBVVRIX1VOSVgpIHsKKwkJCWZvciAoaT0wOyBpPGUuZXhfdS5leHVuaXgucm9vdGFkZHJzLm5hZGRyczsgaSsrKSB7CisJCQkJcHJpbnRzb2NrKHRjcCwKKwkJCQkJKGludCkmZS5leF91LmV4dW5peC5yb290YWRkcnMuYWRkcnZlY1tpXSk7CisJCQl9CisJCQl0cHJpbnRmKCJdLCB3cml0ZXJzOlsiKTsKKwkJCWZvciAoaT0wOyBpPGUuZXhfd3JpdGVhZGRycy5uYWRkcnM7IGkrKykgeworCQkJCXByaW50c29jayh0Y3AsCisJCQkJCShpbnQpJmUuZXhfd3JpdGVhZGRycy5hZGRydmVjW2ldKTsKKwkJCX0KKwkJCXRwcmludGYoIl0iKTsKKwkJfSBlbHNlIHsKKwkJCWZvciAoaT0wOyBpPGUuZXhfdS5leGRlcy5ubmFtZXM7IGkrKykgeworCQkJCXByaW50c29jayh0Y3AsCisJCQkJCShpbnQpJmUuZXhfdS5leGRlcy5yb290bmFtZXNbaV0pOworCQkJCXRwcmludGYoIiwgIik7CisJCQl9CisJCQl0cHJpbnRmKCJdLCB3aW5kb3c6JXUiLCBlLmV4X3UuZXhkZXMud2luZG93KTsKKwkJfQorCQl0cHJpbnRmKCJ9Iik7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3lzY29uZmxpbWl0c1tdID0geworI2lmZGVmCV9TQ19BUkdfTUFYCisJeyBfU0NfQVJHX01BWCwJIl9TQ19BUkdfTUFYIgl9LAkvKiBzcGFjZSBmb3IgYXJndiAmIGVudnAgKi8KKyNlbmRpZgorI2lmZGVmCV9TQ19DSElMRF9NQVgKKwl7IF9TQ19DSElMRF9NQVgsCSJfU0NfQ0hJTERfTUFYIgl9LAkvKiBtYXhpbXVtIGNoaWxkcmVuIHBlciBwcm9jZXNzPz8/ICovCisjZW5kaWYKKyNpZmRlZglfU0NfQ0xLX1RDSworCXsgX1NDX0NMS19UQ0ssCSJfU0NfQ0xLX1RDSyIJfSwJLyogY2xvY2sgdGlja3Mvc2VjICovCisjZW5kaWYKKyNpZmRlZglfU0NfTkdST1VQU19NQVgKKwl7IF9TQ19OR1JPVVBTX01BWCwJIl9TQ19OR1JPVVBTX01BWCIJfSwJLyogbnVtYmVyIG9mIGdyb3VwcyBpZiBtdWx0cGxlIHN1cHAuICovCisjZW5kaWYKKyNpZmRlZglfU0NfT1BFTl9NQVgKKwl7IF9TQ19PUEVOX01BWCwJIl9TQ19PUEVOX01BWCIJfSwJLyogbWF4IG9wZW4gZmlsZXMgcGVyIHByb2Nlc3MgKi8KKyNlbmRpZgorI2lmZGVmCV9TQ19KT0JfQ09OVFJPTAorCXsgX1NDX0pPQl9DT05UUk9MLAkiX1NDX0pPQl9DT05UUk9MIgl9LAkvKiBkbyB3ZSBoYXZlIGpvYiBjb250cm9sICovCisjZW5kaWYKKyNpZmRlZglfU0NfU0FWRURfSURTCisJeyBfU0NfU0FWRURfSURTLAkiX1NDX1NBVkVEX0lEUyIJfSwJLyogZG8gd2UgaGF2ZSBzYXZlZCB1aWQvZ2lkcyAqLworI2VuZGlmCisjaWZkZWYJX1NDX1ZFUlNJT04KKwl7IF9TQ19WRVJTSU9OLAkiX1NDX1ZFUlNJT04iCX0sCS8qIFBPU0lYIHZlcnNpb24gc3VwcG9ydGVkICovCisjZW5kaWYKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworaW50CitzeXNfc3lzY29uZih0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKHN5c2NvbmZsaW1pdHMsIHRjcC0+dV9hcmdbMF0sICJfU0NfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogU1VOT1M0ICovCisKKyNpZiBkZWZpbmVkKFNVTk9TNCkgfHwgZGVmaW5lZChGUkVFQlNEKQorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHBhdGhjb25mbGltaXRzW10gPSB7CisjaWZkZWYJX1BDX0xJTktfTUFYCisJeyBfUENfTElOS19NQVgsCSJfUENfTElOS19NQVgiCX0sCS8qIG1heCBsaW5rcyB0byBmaWxlL2RpciAqLworI2VuZGlmCisjaWZkZWYJX1BDX01BWF9DQU5PTgorCXsgX1BDX01BWF9DQU5PTiwJIl9QQ19NQVhfQ0FOT04iCX0sCS8qIG1heCBsaW5lIGxlbmd0aCAqLworI2VuZGlmCisjaWZkZWYJX1BDX01BWF9JTlBVVAorCXsgX1BDX01BWF9JTlBVVCwJIl9QQ19NQVhfSU5QVVQiCX0sCS8qIG1heCAicGFja2V0IiB0byBhIHR0eSBkZXZpY2UgKi8KKyNlbmRpZgorI2lmZGVmCV9QQ19OQU1FX01BWAorCXsgX1BDX05BTUVfTUFYLAkiX1BDX05BTUVfTUFYIgl9LAkvKiBtYXggcGF0aG5hbWUgY29tcG9uZW50IGxlbmd0aCAqLworI2VuZGlmCisjaWZkZWYJX1BDX1BBVEhfTUFYCisJeyBfUENfUEFUSF9NQVgsCSJfUENfUEFUSF9NQVgiCX0sCS8qIG1heCBwYXRobmFtZSBsZW5ndGggKi8KKyNlbmRpZgorI2lmZGVmCV9QQ19QSVBFX0JVRgorCXsgX1BDX1BJUEVfQlVGLAkiX1BDX1BJUEVfQlVGIgl9LAkvKiBzaXplIG9mIGEgcGlwZSAqLworI2VuZGlmCisjaWZkZWYJX1BDX0NIT1dOX1JFU1RSSUNURUQKKwl7IF9QQ19DSE9XTl9SRVNUUklDVEVELAkiX1BDX0NIT1dOX1JFU1RSSUNURUQiCX0sCS8qIGNhbiB3ZSBnaXZlIGF3YXkgZmlsZXMgKi8KKyNlbmRpZgorI2lmZGVmCV9QQ19OT19UUlVOQworCXsgX1BDX05PX1RSVU5DLAkiX1BDX05PX1RSVU5DIgl9LAkvKiB0cnVuYyBvciBlcnJvciBvbiA+TkFNRV9NQVggKi8KKyNlbmRpZgorI2lmZGVmCV9QQ19WRElTQUJMRQorCXsgX1BDX1ZESVNBQkxFLAkiX1BDX1ZESVNBQkxFIgl9LAkvKiBiZXN0IGNoYXIgdG8gc2h1dCBvZmYgdHR5IGNfY2MgKi8KKyNlbmRpZgorCXsgMCwJCU5VTEwJCX0sCit9OworCisKK2ludAorc3lzX3BhdGhjb25mKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMF0sIC0xKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR4dmFsKHBhdGhjb25mbGltaXRzLCB0Y3AtPnVfYXJnWzFdLCAiX1BDXz8/PyIpOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfZnBhdGhjb25mKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMF0pOworCQlwcmludHh2YWwocGF0aGNvbmZsaW1pdHMsIHRjcC0+dV9hcmdbMV0sICJfUENfPz8/Iik7CisJfQorCXJldHVybiAwOworfQorCisjZW5kaWYgLyogU1VOT1M0IHx8IEZSRUVCU0QgKi8KKworI2lmZGVmIFNWUjQKKworI2lmZGVmIEhBVkVfU1lTX1NZU0NPTkZJR19ICisjaW5jbHVkZSA8c3lzL3N5c2NvbmZpZy5oPgorI2VuZGlmIC8qIEhBVkVfU1lTX1NZU0NPTkZJR19IICovCisKKyNpbmNsdWRlIDxzeXMvbW91bnQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdGVtaW5mby5oPgorI2luY2x1ZGUgPHN5cy91dHNuYW1lLmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjb25maWdfb3B0aW9uc1tdID0geworI2lmZGVmIF9DT05GSUdfTkdST1VQUworCXsgX0NPTkZJR19OR1JPVVBTLAkJIl9DT05GSUdfTkdST1VQUyIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX0NISUxEX01BWAorCXsgX0NPTkZJR19DSElMRF9NQVgsCQkiX0NPTkZJR19DSElMRF9NQVgiCQl9LAorI2VuZGlmCisjaWZkZWYgX0NPTkZJR19PUEVOX0ZJTEVTCisJeyBfQ09ORklHX09QRU5fRklMRVMsCQkiX0NPTkZJR19PUEVOX0ZJTEVTIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfUE9TSVhfVkVSCisJeyBfQ09ORklHX1BPU0lYX1ZFUiwJCSJfQ09ORklHX1BPU0lYX1ZFUiIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX1BBR0VTSVpFCisJeyBfQ09ORklHX1BBR0VTSVpFLAkJIl9DT05GSUdfUEFHRVNJWkUiCQl9LAorI2VuZGlmCisjaWZkZWYgX0NPTkZJR19DTEtfVENLCisJeyBfQ09ORklHX0NMS19UQ0ssCQkiX0NPTkZJR19DTEtfVENLIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfWE9QRU5fVkVSCisJeyBfQ09ORklHX1hPUEVOX1ZFUiwJCSJfQ09ORklHX1hPUEVOX1ZFUiIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX1BST0ZfVENLCisJeyBfQ09ORklHX1BST0ZfVENLLAkJIl9DT05GSUdfUFJPRl9UQ0siCQl9LAorI2VuZGlmCisjaWZkZWYgX0NPTkZJR19OUFJPQ19DT05GCisJeyBfQ09ORklHX05QUk9DX0NPTkYsCQkiX0NPTkZJR19OUFJPQ19DT05GIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfTlBST0NfT05MTgorCXsgX0NPTkZJR19OUFJPQ19PTkxOLAkJIl9DT05GSUdfTlBST0NfT05MTiIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX0FJT19MSVNUSU9fTUFYCisJeyBfQ09ORklHX0FJT19MSVNUSU9fTUFYLAkiX0NPTkZJR19BSU9fTElTVElPX01BWCIJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfQUlPX01BWAorCXsgX0NPTkZJR19BSU9fTUFYLAkJIl9DT05GSUdfQUlPX01BWCIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX0FJT19QUklPX0RFTFRBX01BWAorCXsgX0NPTkZJR19BSU9fUFJJT19ERUxUQV9NQVgsCSJfQ09ORklHX0FJT19QUklPX0RFTFRBX01BWCIJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfQ09ORklHX0RFTEFZVElNRVJfTUFYCisJeyBfQ09ORklHX0RFTEFZVElNRVJfTUFYLAkiX0NPTkZJR19ERUxBWVRJTUVSX01BWCIJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfTVFfT1BFTl9NQVgKKwl7IF9DT05GSUdfTVFfT1BFTl9NQVgsCQkiX0NPTkZJR19NUV9PUEVOX01BWCIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX01RX1BSSU9fTUFYCisJeyBfQ09ORklHX01RX1BSSU9fTUFYLAkJIl9DT05GSUdfTVFfUFJJT19NQVgiCQl9LAorI2VuZGlmCisjaWZkZWYgX0NPTkZJR19SVFNJR19NQVgKKwl7IF9DT05GSUdfUlRTSUdfTUFYLAkJIl9DT05GSUdfUlRTSUdfTUFYIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfU0VNX05TRU1TX01BWAorCXsgX0NPTkZJR19TRU1fTlNFTVNfTUFYLAkiX0NPTkZJR19TRU1fTlNFTVNfTUFYIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfU0VNX1ZBTFVFX01BWAorCXsgX0NPTkZJR19TRU1fVkFMVUVfTUFYLAkiX0NPTkZJR19TRU1fVkFMVUVfTUFYIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfU0lHUVVFVUVfTUFYCisJeyBfQ09ORklHX1NJR1FVRVVFX01BWCwJCSJfQ09ORklHX1NJR1FVRVVFX01BWCIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX1NJR1JUX01JTgorCXsgX0NPTkZJR19TSUdSVF9NSU4sCQkiX0NPTkZJR19TSUdSVF9NSU4iCQl9LAorI2VuZGlmCisjaWZkZWYgX0NPTkZJR19TSUdSVF9NQVgKKwl7IF9DT05GSUdfU0lHUlRfTUFYLAkJIl9DT05GSUdfU0lHUlRfTUFYIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfVElNRVJfTUFYCisJeyBfQ09ORklHX1RJTUVSX01BWCwJCSJfQ09ORklHX1RJTUVSX01BWCIJCX0sCisjZW5kaWYKKyNpZmRlZiBfQ09ORklHX0NPTkZJR19QSFlTX1BBR0VTCisJeyBfQ09ORklHX1BIWVNfUEFHRVMsCQkiX0NPTkZJR19QSFlTX1BBR0VTIgkJfSwKKyNlbmRpZgorI2lmZGVmIF9DT05GSUdfQVZQSFlTX1BBR0VTCisJeyBfQ09ORklHX0FWUEhZU19QQUdFUywJCSJfQ09ORklHX0FWUEhZU19QQUdFUyIJCX0sCisjZW5kaWYKKwl7IDAsCQkJCU5VTEwJCQkJfSwKK307CisKK2ludAorc3lzX3N5c2NvbmZpZyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpCisJCXByaW50eHZhbChzeXNjb25maWdfb3B0aW9ucywgdGNwLT51X2FyZ1swXSwgIl9DT05GSUdfPz8/Iik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNpbmZvX29wdGlvbnNbXSA9IHsKKwl7IFNJX1NZU05BTUUsCQkiU0lfU1lTTkFNRSIJCX0sCisJeyBTSV9IT1NUTkFNRSwJCSJTSV9IT1NUTkFNRSIJCX0sCisJeyBTSV9SRUxFQVNFLAkJIlNJX1JFTEVBU0UiCQl9LAorCXsgU0lfVkVSU0lPTiwJCSJTSV9WRVJTSU9OIgkJfSwKKwl7IFNJX01BQ0hJTkUsCQkiU0lfTUFDSElORSIJCX0sCisJeyBTSV9BUkNISVRFQ1RVUkUsCSJTSV9BUkNISVRFQ1RVUkUiCX0sCisJeyBTSV9IV19TRVJJQUwsCQkiU0lfSFdfU0VSSUFMIgkJfSwKKwl7IFNJX0hXX1BST1ZJREVSLAkiU0lfSFdfUFJPVklERVIiCX0sCisJeyBTSV9TUlBDX0RPTUFJTiwJIlNJX1NSUENfRE9NQUlOIgl9LAorI2lmZGVmIFNJX1NFVF9IT1NUTkFNRQorCXsgU0lfU0VUX0hPU1ROQU1FLAkiU0lfU0VUX0hPU1ROQU1FIgl9LAorI2VuZGlmCisjaWZkZWYgU0lfU0VUX1NSUENfRE9NQUlOCisJeyBTSV9TRVRfU1JQQ19ET01BSU4sCSJTSV9TRVRfU1JQQ19ET01BSU4iCX0sCisjZW5kaWYKKyNpZmRlZiBTSV9TRVRfS0VSQl9SRUFMTQorCXsgU0lfU0VUX0tFUkJfUkVBTE0sCSJTSV9TRVRfS0VSQl9SRUFMTSIJfSwKKyNlbmRpZgorI2lmZGVmIAlTSV9LRVJCX1JFQUxNCisJeyBTSV9LRVJCX1JFQUxNLAkiU0lfS0VSQl9SRUFMTSIJCX0sCisjZW5kaWYKKwl7IDAsCQkJTlVMTAkJCX0sCit9OworCitpbnQKK3N5c19zeXNpbmZvKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwoc3lzaW5mb19vcHRpb25zLCB0Y3AtPnVfYXJnWzBdLCAiU0lfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJfQorCWVsc2UgeworCQkvKiBUZWNobmljYWxseSBzb21lIGNhbGxzIHdyaXRlIHZhbHVlcy4gIFNvIHdoYXQuICovCisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlCisJCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAlbHUiLCB0Y3AtPnVfYXJnWzJdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBNSVBTCisKKyNpbmNsdWRlIDxzeXMvc3lzc2dpLmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNzZ2lfb3B0aW9uc1tdID0geworCXsgU0dJX1NZU0lELAkJIlNHSV9TWVNJRCIJCX0sCisjaWZkZWYgU0dJX1JEVUJMSworCXsgU0dJX1JEVUJMSywJCSJTR0lfUkRVQkxLIgkJfSwKKyNlbmRpZgorCXsgU0dJX1RVTkUsCQkiU0dJX1RVTkUiCQl9LAorCXsgU0dJX0lEQkcsCQkiU0dJX0lEQkciCQl9LAorCXsgU0dJX0lOVkVOVCwJCSJTR0lfSU5WRU5UIgkJfSwKKwl7IFNHSV9SRE5BTUUsCQkiU0dJX1JETkFNRSIJCX0sCisJeyBTR0lfU0VUTEVELAkJIlNHSV9TRVRMRUQiCQl9LAorCXsgU0dJX1NFVE5WUkFNLAkJIlNHSV9TRVROVlJBTSIJCX0sCisJeyBTR0lfR0VUTlZSQU0sCQkiU0dJX0dFVE5WUkFNIgkJfSwKKwl7IFNHSV9RVUVSWV9GVElNRVIsCSJTR0lfUVVFUllfRlRJTUVSIgl9LAorCXsgU0dJX1FVRVJZX0NZQ0xFQ05UUiwJIlNHSV9RVUVSWV9DWUNMRUNOVFIiCX0sCisJeyBTR0lfUFJPQ1NaLAkJIlNHSV9QUk9DU1oiCQl9LAorCXsgU0dJX1NJR0FDVElPTiwJIlNHSV9TSUdBQ1RJT04iCQl9LAorCXsgU0dJX1NJR1BFTkRJTkcsCSJTR0lfU0lHUEVORElORyIJfSwKKwl7IFNHSV9TSUdQUk9DTUFTSywJIlNHSV9TSUdQUk9DTUFTSyIJfSwKKwl7IFNHSV9TSUdTVVNQRU5ELAkiU0dJX1NJR1NVU1BFTkQiCX0sCisJeyBTR0lfU0VUU0lELAkJIlNHSV9TRVRTSUQiCQl9LAorCXsgU0dJX1NFVFBHSUQsCQkiU0dJX1NFVFBHSUQiCQl9LAorCXsgU0dJX1NZU0NPTkYsCQkiU0dJX1NZU0NPTkYiCQl9LAorCXsgU0dJX1dBSVQ0LAkJIlNHSV9XQUlUNCIJCX0sCisJeyBTR0lfUEFUSENPTkYsCQkiU0dJX1BBVEhDT05GIgkJfSwKKwl7IFNHSV9SRUFEQiwJCSJTR0lfUkVBREIiCQl9LAorCXsgU0dJX1dSSVRFQiwJCSJTR0lfV1JJVEVCIgkJfSwKKwl7IFNHSV9TRVRHUk9VUFMsCSJTR0lfU0VUR1JPVVBTIgkJfSwKKwl7IFNHSV9HRVRHUk9VUFMsCSJTR0lfR0VUR1JPVVBTIgkJfSwKKwl7IFNHSV9TRVRUSU1FT0ZEQVksCSJTR0lfU0VUVElNRU9GREFZIgl9LAorCXsgU0dJX1NFVFRJTUVUUklNLAkiU0dJX1NFVFRJTUVUUklNIgl9LAorCXsgU0dJX0dFVFRJTUVUUklNLAkiU0dJX0dFVFRJTUVUUklNIgl9LAorCXsgU0dJX1NQUk9GSUwsCQkiU0dJX1NQUk9GSUwiCQl9LAorCXsgU0dJX1JVU0FHRSwJCSJTR0lfUlVTQUdFIgkJfSwKKwl7IFNHSV9TSUdTVEFDSywJCSJTR0lfU0lHU1RBQ0siCQl9LAorCXsgU0dJX1NJR1NUQVRVUywJIlNHSV9TSUdTVEFUVVMiCQl9LAorCXsgU0dJX05FVFBST0MsCQkiU0dJX05FVFBST0MiCQl9LAorCXsgU0dJX1NJR0FMVFNUQUNLLAkiU0dJX1NJR0FMVFNUQUNLIgl9LAorCXsgU0dJX0JERkxVU0hDTlQsCSJTR0lfQkRGTFVTSENOVCIJfSwKKwl7IFNHSV9TU1lOQywJCSJTR0lfU1NZTkMiCQl9LAorCXsgU0dJX05GU0NOVlQsCQkiU0dJX05GU0NOVlQiCQl9LAorCXsgU0dJX0dFVFBHSUQsCQkiU0dJX0dFVFBHSUQiCQl9LAorCXsgU0dJX0dFVFNJRCwJCSJTR0lfR0VUU0lEIgkJfSwKKwl7IFNHSV9JT1BST0JFLAkJIlNHSV9JT1BST0JFIgkJfSwKKwl7IFNHSV9DT05GSUcsCQkiU0dJX0NPTkZJRyIJCX0sCisJeyBTR0lfRUxGTUFQLAkJIlNHSV9FTEZNQVAiCQl9LAorCXsgU0dJX01DT05GSUcsCQkiU0dJX01DT05GSUciCQl9LAorCXsgU0dJX0dFVFBMQUJFTCwJIlNHSV9HRVRQTEFCRUwiCQl9LAorCXsgU0dJX1NFVFBMQUJFTCwJIlNHSV9TRVRQTEFCRUwiCQl9LAorCXsgU0dJX0dFVExBQkVMLAkJIlNHSV9HRVRMQUJFTCIJCX0sCisJeyBTR0lfU0VUTEFCRUwsCQkiU0dJX1NFVExBQkVMIgkJfSwKKwl7IFNHSV9TQVRSRUFELAkJIlNHSV9TQVRSRUFEIgkJfSwKKwl7IFNHSV9TQVRXUklURSwJCSJTR0lfU0FUV1JJVEUiCQl9LAorCXsgU0dJX1NBVENUTCwJCSJTR0lfU0FUQ1RMIgkJfSwKKwl7IFNHSV9MT0FEQVRUUiwJCSJTR0lfTE9BREFUVFIiCQl9LAorCXsgU0dJX1VOTE9BREFUVFIsCSJTR0lfVU5MT0FEQVRUUiIJfSwKKyNpZmRlZiBTR0lfUkVDVkxNU0cKKwl7IFNHSV9SRUNWTE1TRywJCSJTR0lfUkVDVkxNU0ciCQl9LAorI2VuZGlmCisJeyBTR0lfUExBTkdNT1VOVCwJIlNHSV9QTEFOR01PVU5UIgl9LAorCXsgU0dJX0dFVFBTT0FDTCwJIlNHSV9HRVRQU09BQ0wiCQl9LAorCXsgU0dJX1NFVFBTT0FDTCwJIlNHSV9TRVRQU09BQ0wiCQl9LAorI2lmZGVmIFNHSV9FQUdfR0VUX0FUVFIKKwl7IFNHSV9FQUdfR0VUX0FUVFIsCSJTR0lfRUFHX0dFVF9BVFRSIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0VBR19TRVRfQVRUUgorCXsgU0dJX0VBR19TRVRfQVRUUiwJIlNHSV9FQUdfU0VUX0FUVFIiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfRUFHX0dFVF9QUk9DQVRUUgorCXsgU0dJX0VBR19HRVRfUFJPQ0FUVFIsCSJTR0lfRUFHX0dFVF9QUk9DQVRUUiIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9FQUdfU0VUX1BST0NBVFRSCisJeyBTR0lfRUFHX1NFVF9QUk9DQVRUUiwJIlNHSV9FQUdfU0VUX1BST0NBVFRSIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0ZSRVZPS0UKKwl7IFNHSV9GUkVWT0tFLAkJIlNHSV9GUkVWT0tFIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9TQkVfR0VUX0lORk8KKwl7IFNHSV9TQkVfR0VUX0lORk8sCSJTR0lfU0JFX0dFVF9JTkZPIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1NCRV9DTFJfSU5GTworCXsgU0dJX1NCRV9DTFJfSU5GTywJIlNHSV9TQkVfQ0xSX0lORk8iCX0sCisjZW5kaWYKKwl7IFNHSV9STUlfRklYRUNDLAkiU0dJX1JNSV9GSVhFQ0MiCX0sCisJeyBTR0lfUjRLX0NFUlJTLAkiU0dJX1I0S19DRVJSUyIJCX0sCisJeyBTR0lfR0VUX0VWQ09ORiwJIlNHSV9HRVRfRVZDT05GIgl9LAorCXsgU0dJX01QQ1dBUk9GRiwJIlNHSV9NUENXQVJPRkYiCQl9LAorCXsgU0dJX1NFVF9BVVRPUFdST04sCSJTR0lfU0VUX0FVVE9QV1JPTiIJfSwKKwl7IFNHSV9TUElQRSwJCSJTR0lfU1BJUEUiCQl9LAorCXsgU0dJX1NZTVRBQiwJCSJTR0lfU1lNVEFCIgkJfSwKKyNpZmRlZiBTR0lfU0VUX0ZQREVCVUcKKwl7IFNHSV9TRVRfRlBERUJVRywJIlNHSV9TRVRfRlBERUJVRyIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9TRVRfRlBfUFJFQ0lTRQorCXsgU0dJX1NFVF9GUF9QUkVDSVNFLAkiU0dJX1NFVF9GUF9QUkVDSVNFIgl9LAorI2VuZGlmCisJeyBTR0lfVE9TU1RTQVZFLAkiU0dJX1RPU1NUU0FWRSIJCX0sCisJeyBTR0lfRkRISSwJCSJTR0lfRkRISSIJCX0sCisjaWZkZWYgU0dJX1NFVF9DT05GSUdfU01NCisJeyBTR0lfU0VUX0NPTkZJR19TTU0sCSJTR0lfU0VUX0NPTkZJR19TTU0iCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU0VUX0ZQX1BSRVNFUlZFCisJeyBTR0lfU0VUX0ZQX1BSRVNFUlZFLAkiU0dJX1NFVF9GUF9QUkVTRVJWRSIJfSwKKyNlbmRpZgorCXsgU0dJX01JTlJTUywJCSJTR0lfTUlOUlNTIgkJfSwKKyNpZmRlZiBTR0lfR1JJTworCXsgU0dJX0dSSU8sCQkiU0dJX0dSSU8iCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1hMVl9TRVRfVEFCCisJeyBTR0lfWExWX1NFVF9UQUIsCSJTR0lfWExWX1NFVF9UQUIiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfWExWX0dFVF9UQUIKKwl7IFNHSV9YTFZfR0VUX1RBQiwJIlNHSV9YTFZfR0VUX1RBQiIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9HRVRfRlBfUFJFQ0lTRQorCXsgU0dJX0dFVF9GUF9QUkVDSVNFLAkiU0dJX0dFVF9GUF9QUkVDSVNFIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0dFVF9DT05GSUdfU01NCisJeyBTR0lfR0VUX0NPTkZJR19TTU0sCSJTR0lfR0VUX0NPTkZJR19TTU0iCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfRlBfSU1QUkVDSVNFX1NVUFAKKwl7IFNHSV9GUF9JTVBSRUNJU0VfU1VQUCwiU0dJX0ZQX0lNUFJFQ0lTRV9TVVBQIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0NPTkZJR19OU01NX1NVUFAKKwl7IFNHSV9DT05GSUdfTlNNTV9TVVBQLAkiU0dJX0NPTkZJR19OU01NX1NVUFAiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfUlRfVFNUQU1QX0NSRUFURQorCXsgU0dJX1JUX1RTVEFNUF9DUkVBVEUsCSJTR0lfUlRfVFNUQU1QX0NSRUFURSIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9SVF9UU1RBTVBfREVMRVRFCisJeyBTR0lfUlRfVFNUQU1QX0RFTEVURSwJIlNHSV9SVF9UU1RBTVBfREVMRVRFIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1JUX1RTVEFNUF9TVEFSVAorCXsgU0dJX1JUX1RTVEFNUF9TVEFSVCwJIlNHSV9SVF9UU1RBTVBfU1RBUlQiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfUlRfVFNUQU1QX1NUT1AKKwl7IFNHSV9SVF9UU1RBTVBfU1RPUCwJIlNHSV9SVF9UU1RBTVBfU1RPUCIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9SVF9UU1RBTVBfQUREUgorCXsgU0dJX1JUX1RTVEFNUF9BRERSLAkiU0dJX1JUX1RTVEFNUF9BRERSIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1JUX1RTVEFNUF9NQVNLCisJeyBTR0lfUlRfVFNUQU1QX01BU0ssCSJTR0lfUlRfVFNUQU1QX01BU0siCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfUlRfVFNUQU1QX0VPQl9NT0RFCisJeyBTR0lfUlRfVFNUQU1QX0VPQl9NT0RFLCJTR0lfUlRfVFNUQU1QX0VPQl9NT0RFIn0sCisjZW5kaWYKKyNpZmRlZiBTR0lfVVNFX0ZQX0JDT1BZCisJeyBTR0lfVVNFX0ZQX0JDT1BZLAkiU0dJX1VTRV9GUF9CQ09QWSIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9HRVRfVVNUCisJeyBTR0lfR0VUX1VTVCwJCSJTR0lfR0VUX1VTVCIJCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU1BFQ1VMQVRJVkVfRVhFQworCXsgU0dJX1NQRUNVTEFUSVZFX0VYRUMsCSJTR0lfU1BFQ1VMQVRJVkVfRVhFQyIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9YTFZfTkVYVF9SUVNUCisJeyBTR0lfWExWX05FWFRfUlFTVCwJIlNHSV9YTFZfTkVYVF9SUVNUIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1hMVl9BVFRSX0NVUlNPUgorCXsgU0dJX1hMVl9BVFRSX0NVUlNPUiwJIlNHSV9YTFZfQVRUUl9DVVJTT1IiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfWExWX0FUVFJfR0VUCisJeyBTR0lfWExWX0FUVFJfR0VULAkiU0dJX1hMVl9BVFRSX0dFVCIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9YTFZfQVRUUl9TRVQKKwl7IFNHSV9YTFZfQVRUUl9TRVQsCSJTR0lfWExWX0FUVFJfU0VUIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0JUT09MU0laRQorCXsgU0dJX0JUT09MU0laRSwJIlNHSV9CVE9PTFNJWkUiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0JUT09MR0VUCisJeyBTR0lfQlRPT0xHRVQsCQkiU0dJX0JUT09MR0VUIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9CVE9PTFJFSU5JVAorCXsgU0dJX0JUT09MUkVJTklULAkiU0dJX0JUT09MUkVJTklUIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0NSRUFURV9VVUlECisJeyBTR0lfQ1JFQVRFX1VVSUQsCSJTR0lfQ1JFQVRFX1VVSUQiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfTk9GUEUKKwl7IFNHSV9OT0ZQRSwJCSJTR0lfTk9GUEUiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX09MRF9TT0ZURlAKKwl7IFNHSV9PTERfU09GVEZQLAkiU0dJX09MRF9TT0ZURlAiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfRlNfSU5VTUJFUlMKKwl7IFNHSV9GU19JTlVNQkVSUywJIlNHSV9GU19JTlVNQkVSUyIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9GU19CVUxLU1RBVAorCXsgU0dJX0ZTX0JVTEtTVEFULAkiU0dJX0ZTX0JVTEtTVEFUIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1JUX1RTVEFNUF9XQUlUCisJeyBTR0lfUlRfVFNUQU1QX1dBSVQsCSJTR0lfUlRfVFNUQU1QX1dBSVQiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfUlRfVFNUQU1QX1VQREFURQorCXsgU0dJX1JUX1RTVEFNUF9VUERBVEUsCSJTR0lfUlRfVFNUQU1QX1VQREFURSIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9QQVRIX1RPX0hBTkRMRQorCXsgU0dJX1BBVEhfVE9fSEFORExFLAkiU0dJX1BBVEhfVE9fSEFORExFIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1BBVEhfVE9fRlNIQU5ETEUKKwl7IFNHSV9QQVRIX1RPX0ZTSEFORExFLAkiU0dJX1BBVEhfVE9fRlNIQU5ETEUiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfRkRfVE9fSEFORExFCisJeyBTR0lfRkRfVE9fSEFORExFLAkiU0dJX0ZEX1RPX0hBTkRMRSIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9PUEVOX0JZX0hBTkRMRQorCXsgU0dJX09QRU5fQllfSEFORExFLAkiU0dJX09QRU5fQllfSEFORExFIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1JFQURMSU5LX0JZX0hBTkRMRQorCXsgU0dJX1JFQURMSU5LX0JZX0hBTkRMRSwiU0dJX1JFQURMSU5LX0JZX0hBTkRMRSJ9LAorI2VuZGlmCisjaWZkZWYgU0dJX1JFQURfREFOR0lECisJeyBTR0lfUkVBRF9EQU5HSUQsCSJTR0lfUkVBRF9EQU5HSUQiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfQ09OU1QKKwl7IFNHSV9DT05TVCwJCSJTR0lfQ09OU1QiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1hGU19GU09QRVJBVElPTlMKKwl7IFNHSV9YRlNfRlNPUEVSQVRJT05TLAkiU0dJX1hGU19GU09QRVJBVElPTlMiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU0VUQVNICisJeyBTR0lfU0VUQVNILAkJIlNHSV9TRVRBU0giCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0dFVEFTSAorCXsgU0dJX0dFVEFTSCwJCSJTR0lfR0VUQVNIIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9TRVRQUklECisJeyBTR0lfU0VUUFJJRCwJCSJTR0lfU0VUUFJJRCIJCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfR0VUUFJJRAorCXsgU0dJX0dFVFBSSUQsCQkiU0dJX0dFVFBSSUQiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1NFVFNQSU5GTworCXsgU0dJX1NFVFNQSU5GTywJIlNHSV9TRVRTUElORk8iCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0dFVFNQSU5GTworCXsgU0dJX0dFVFNQSU5GTywJIlNHSV9HRVRTUElORk8iCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1NIQVJFSUkKKwl7IFNHSV9TSEFSRUlJLAkJIlNHSV9TSEFSRUlJIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9ORVdBUlJBWVNFU1MKKwl7IFNHSV9ORVdBUlJBWVNFU1MsCSJTR0lfTkVXQVJSQVlTRVNTIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0dFVERGTFRQUklECisJeyBTR0lfR0VUREZMVFBSSUQsCSJTR0lfR0VUREZMVFBSSUQiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU0VUX0RJU01JU1NFRF9FWENfQ05UCisJeyBTR0lfU0VUX0RJU01JU1NFRF9FWENfQ05ULCJTR0lfU0VUX0RJU01JU1NFRF9FWENfQ05UIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0dFVF9ESVNNSVNTRURfRVhDX0NOVAorCXsgU0dJX0dFVF9ESVNNSVNTRURfRVhDX0NOVCwiU0dJX0dFVF9ESVNNSVNTRURfRVhDX0NOVCIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9DWUNMRUNOVFJfU0laRQorCXsgU0dJX0NZQ0xFQ05UUl9TSVpFLAkiU0dJX0NZQ0xFQ05UUl9TSVpFIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1FVRVJZX0ZBU1RUSU1FUgorCXsgU0dJX1FVRVJZX0ZBU1RUSU1FUiwJIlNHSV9RVUVSWV9GQVNUVElNRVIiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfUElEU0lOQVNICisJeyBTR0lfUElEU0lOQVNILAkiU0dJX1BJRFNJTkFTSCIJCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfVUxJCisJeyBTR0lfVUxJLAkJIlNHSV9VTEkiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0xQR19TSE1HRVQKKwl7IFNHSV9MUEdfU0hNR0VULAkiU0dJX0xQR19TSE1HRVQiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfTFBHX01BUAorCXsgU0dJX0xQR19NQVAsCQkiU0dJX0xQR19NQVAiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0NBQ0hFRlNfU1lTCisJeyBTR0lfQ0FDSEVGU19TWVMsCSJTR0lfQ0FDSEVGU19TWVMiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfTkZTTk9USUZZCisJeyBTR0lfTkZTTk9USUZZLAkiU0dJX05GU05PVElGWSIJCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfTE9DS0RTWVMKKwl7IFNHSV9MT0NLRFNZUywJCSJTR0lfTE9DS0RTWVMiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0VWRU5UQ1RSCisJeyBTR0lfRVZFTlRDVFIsCQkiU0dJX0VWRU5UQ1RSIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9HRVRQUlVTQUdFCisJeyBTR0lfR0VUUFJVU0FHRSwJIlNHSV9HRVRQUlVTQUdFIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1BST0NNQVNLX0xPQ0FUSU9OCisJeyBTR0lfUFJPQ01BU0tfTE9DQVRJT04sIlNHSV9QUk9DTUFTS19MT0NBVElPTiIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9VTlVTRUQKKwl7IFNHSV9VTlVTRUQsCQkiU0dJX1VOVVNFRCIJCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfQ0tQVF9TWVMKKwl7IFNHSV9DS1BUX1NZUywJCSJTR0lfQ0tQVF9TWVMiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0NLUFRfU1lTCisJeyBTR0lfQ0tQVF9TWVMsCQkiU0dJX0NLUFRfU1lTIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9HRVRHUlBQSUQKKwl7IFNHSV9HRVRHUlBQSUQsCSJTR0lfR0VUR1JQUElEIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9HRVRTRVNQSUQKKwl7IFNHSV9HRVRTRVNQSUQsCSJTR0lfR0VUU0VTUElEIgkJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9FTlVNQVNIUworCXsgU0dJX0VOVU1BU0hTLAkJIlNHSV9FTlVNQVNIUyIJCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU0VUQVNNQUNISUQKKwl7IFNHSV9TRVRBU01BQ0hJRCwJIlNHSV9TRVRBU01BQ0hJRCIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9HRVRBU01BQ0hJRAorCXsgU0dJX0dFVEFTTUFDSElELAkiU0dJX0dFVEFTTUFDSElEIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0dFVEFSU0VTUworCXsgU0dJX0dFVEFSU0VTUywJIlNHSV9HRVRBUlNFU1MiCQl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0pPSU5BUlJBWVNFU1MKKwl7IFNHSV9KT0lOQVJSQVlTRVNTLAkiU0dJX0pPSU5BUlJBWVNFU1MiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU1BST0NfS0lMTAorCXsgU0dJX1NQUk9DX0tJTEwsCSJTR0lfU1BST0NfS0lMTCIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9EQkFfQ09ORklHCisJeyBTR0lfREJBX0NPTkZJRywJIlNHSV9EQkFfQ09ORklHIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX1JFTEVBU0VfTkFNRQorCXsgU0dJX1JFTEVBU0VfTkFNRSwJIlNHSV9SRUxFQVNFX05BTUUiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU1lOQ0hfQ0FDSEVfSEFORExFUgorCXsgU0dJX1NZTkNIX0NBQ0hFX0hBTkRMRVIsIlNHSV9TWU5DSF9DQUNIRV9IQU5ETEVSIn0sCisjZW5kaWYKKyNpZmRlZiBTR0lfU1dBU0hfSU5JVAorCXsgU0dJX1NXQVNIX0lOSVQsCSJTR0lfU1dBU0hfSU5JVCIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9OVU1BX01JR1JfUEFHRQorCXsgU0dJX05VTUFfTUlHUl9QQUdFLAkiU0dJX05VTUFfTUlHUl9QQUdFIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX05VTUFfTUlHUl9QQUdFX0FMVAorCXsgU0dJX05VTUFfTUlHUl9QQUdFX0FMVCwiU0dJX05VTUFfTUlHUl9QQUdFX0FMVCJ9LAorI2VuZGlmCisjaWZkZWYgU0dJX0tBSU9fVVNFUklOSVQKKwl7IFNHSV9LQUlPX1VTRVJJTklULAkiU0dJX0tBSU9fVVNFUklOSVQiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfS0FJT19SRUFECisJeyBTR0lfS0FJT19SRUFELAkiU0dJX0tBSU9fUkVBRCIJCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfS0FJT19XUklURQorCXsgU0dJX0tBSU9fV1JJVEUsCSJTR0lfS0FJT19XUklURSIJfSwKKyNlbmRpZgorI2lmZGVmIFNHSV9LQUlPX1NVU1BFTkQKKwl7IFNHSV9LQUlPX1NVU1BFTkQsCSJTR0lfS0FJT19TVVNQRU5EIgl9LAorI2VuZGlmCisjaWZkZWYgU0dJX0tBSU9fU1RBVFMKKwl7IFNHSV9LQUlPX1NUQVRTLAkiU0dJX0tBSU9fU1RBVFMiCX0sCisjZW5kaWYKKyNpZmRlZiBTR0lfSU5JVElBTF9QVF9TUFJPQworCXsgU0dJX0lOSVRJQUxfUFRfU1BST0MsCSJTR0lfSU5JVElBTF9QVF9TUFJPQyIJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQkJfSwKK307CisKK2ludAorc3lzX3N5c3NnaSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaW50IGk7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwoc3lzc2dpX29wdGlvbnMsIHRjcC0+dV9hcmdbMF0sICJTR0lfPz8/Iik7CisJCXN3aXRjaCAodGNwLT51X2FyZ1swXSkgeworCQlkZWZhdWx0OgorCQkJZm9yIChpID0gMTsgaSA8IHRjcC0+dV9uYXJnczsgaSsrKQorCQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbaV0pOworCQkJYnJlYWs7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxycGMvcnBjLmg+CitzdHJ1Y3QgY3JlZDsKK3N0cnVjdCB1aW87CisjaW5jbHVkZSA8c3lzL2ZzaWQuaD4KKyNpbmNsdWRlIDxzeXMvdm5vZGUuaD4KKyNpbmNsdWRlIDxzeXMvZnMvbmZzLmg+CisjaW5jbHVkZSA8c3lzL2ZzL25mc19jbG50Lmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtb3VudF9mbGFnc1tdID0geworCXsgTVNfUkRPTkxZLAkiTVNfUkRPTkxZIgl9LAorCXsgTVNfRlNTLAkiTVNfRlNTIgl9LAorCXsgTVNfREFUQSwJIk1TX0RBVEEiCX0sCisJeyBNU19OT1NVSUQsCSJNU19OT1NVSUQiCX0sCisJeyBNU19SRU1PVU5ULAkiTVNfUkVNT1VOVCIJfSwKKwl7IE1TX05PVFJVTkMsCSJNU19OT1RSVU5DIgl9LAorCXsgTVNfR1JQSUQsCSJNU19HUlBJRCIJfSwKKwl7IE1TX05PREVWLAkiTVNfTk9ERVYiCX0sCisJeyBNU19CRUZPUkUsCSJNU19CRUZPUkUiCX0sCisJeyBNU19BRlRFUiwJIk1TX0FGVEVSIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbmZzX2ZsYWdzW10gPSB7CisJeyBORlNNTlRfU09GVCwJCSJORlNNTlRfU09GVCIJCX0sCisJeyBORlNNTlRfV1NJWkUsCQkiTkZTTU5UX1dTSVpFIgkJfSwKKwl7IE5GU01OVF9SU0laRSwJCSJORlNNTlRfUlNJWkUiCQl9LAorCXsgTkZTTU5UX1RJTUVPLAkJIk5GU01OVF9USU1FTyIJCX0sCisJeyBORlNNTlRfUkVUUkFOUywJIk5GU01OVF9SRVRSQU5TIgl9LAorCXsgTkZTTU5UX0hPU1ROQU1FLAkiTkZTTU5UX0hPU1ROQU1FIgl9LAorI2lmZGVmIE5GU01OVF9OT0lOVAkvKiBJUklYIDYgKi8KKwl7IE5GU01OVF9OT0lOVCwJCSJORlNNTlRfTk9JTlQiCQl9LAorI2VuZGlmCisjaWZkZWYgTkZTTU5UX0lOVAkvKiBJUklYIDUgKi8KKwl7IE5GU01OVF9JTlQsCQkiTkZTTU5UX0lOVCIJCX0sCisjZW5kaWYKKwl7IE5GU01OVF9OT0FDLAkJIk5GU01OVF9OT0FDIgkJfSwKKwl7IE5GU01OVF9BQ1JFR01JTiwJIk5GU01OVF9BQ1JFR01JTiIJfSwKKwl7IE5GU01OVF9BQ1JFR01BWCwJIk5GU01OVF9BQ1JFR01BWCIJfSwKKwl7IE5GU01OVF9BQ0RJUk1JTiwJIk5GU01OVF9BQ0RJUk1JTiIJfSwKKwl7IE5GU01OVF9BQ0RJUk1BWCwJIk5GU01OVF9BQ0RJUk1BWCIJfSwKKwl7IE5GU01OVF9QUklWQVRFLAkiTkZTTU5UX1BSSVZBVEUiCX0sCisJeyBORlNNTlRfU1lNVFRMLAkiTkZTTU5UX1NZTVRUTCIJCX0sCisJeyBORlNNTlRfTE9PUEJBQ0ssCSJORlNNTlRfTE9PUEJBQ0siCX0sCisJeyBORlNNTlRfQkFTRVRZUEUsCSJORlNNTlRfQkFTRVRZUEUiCX0sCisJeyBORlNNTlRfTkFNRU1BWCwJIk5GU01OVF9OQU1FTUFYIgl9LAorI2lmZGVmIE5GU01OVF9TSE9SVFVJRAkvKiBJUklYIDYgKi8KKwl7IE5GU01OVF9TSE9SVFVJRCwJIk5GU01OVF9TSE9SVFVJRCIJfSwKKyNlbmRpZgorI2lmZGVmIE5GU01OVF9BU1lOQ05MTQkvKiBJUklYIDYgKi8KKwl7IE5GU01OVF9BU1lOQ05MTSwJIk5GU01OVF9BU1lOQ05MTSIJfSwKKyNlbmRpZgorCXsgMCwJCQlOVUxMCQkJfSwKK307CisKK2ludAorc3lzX21vdW50KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50ZmxhZ3MobW91bnRfZmxhZ3MsIHRjcC0+dV9hcmdbMl0sICJNU18/Pz8iKTsKKwkJaWYgKHRjcC0+dV9hcmdbMl0gJiAoTVNfRlNTIHwgTVNfREFUQSkpIHsKKwkJCXRwcmludGYoIiwgIik7CisJCQl0cHJpbnRmKCIlbGQiLCB0Y3AtPnVfYXJnWzNdKTsKKwkJfQorCQlpZiAodGNwLT51X2FyZ1syXSAmIE1TX0RBVEEpIHsKKwkJCWludCBuZnNfdHlwZSA9IHN5c2ZzKEdFVEZTSU5ELCBGU0lEX05GUyk7CisKKwkJCXRwcmludGYoIiwgIik7CisJCQlpZiAodGNwLT51X2FyZ1szXSA9PSBuZnNfdHlwZSkgeworCQkJCXN0cnVjdCBuZnNfYXJncyBhcmdzOworCQkJCWlmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbNF0sICZhcmdzKSA8IDApCisJCQkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzRdKTsKKwkJCQllbHNlIHsKKwkJCQkJdHByaW50ZigiYWRkcj0iKTsKKwkJCQkJcHJpbnRzb2NrKHRjcCwgKGludCkgYXJncy5hZGRyKTsKKwkJCQkJdHByaW50ZigiLCBmbGFncz0iKTsKKwkJCQkJcHJpbnRmbGFncyhuZnNfZmxhZ3MsIGFyZ3MuZmxhZ3MsICJORlNNTlRfPz8/Iik7CisJCQkJCXRwcmludGYoIiwgaG9zdG5hbWU9Iik7CisJCQkJCXByaW50c3RyKHRjcCwgKGludCkgYXJncy5ob3N0bmFtZSwgLTEpOworCQkJCQl0cHJpbnRmKCIsIC4uLn0iKTsKKwkJCQl9CisJCQl9CisJCQllbHNlCisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbNF0pOworCQkJdHByaW50ZigiLCAlbGQiLCB0Y3AtPnVfYXJnWzVdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2Vsc2UgLyogIU1JUFMgKi8KKworI2lmIFVOSVhXQVJFCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvZnN0eXAuaD4KKyNpbmNsdWRlIDxzeXMvbW91bnQuaD4KKyNpbmNsdWRlIDxzeXMveHRpLmg+CisKKyNkZWZpbmUgTkZTQ0xJRU5UCTEKKyNpbmNsdWRlIDxuZnMvbW91bnQuaD4KKworI2luY2x1ZGUgPHN5cy9mcy92eF9pb2N0bC5oPgorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgbW91bnRfZmxhZ3NbXSA9IHsKKwl7IE1TX1JET05MWSwJIk1TX1JET05MWSIJfSwKKwl7IE1TX0ZTUywJIk1TX0ZTUyIJfSwKKwl7IE1TX0RBVEEsCSJNU19EQVRBIgl9LAorCXsgTVNfSEFEQkFELAkiTVNfSEFEQkFEIgl9LAorCXsgTVNfTk9TVUlELAkiTVNfTk9TVUlEIgl9LAorCXsgTVNfUkVNT1VOVCwJIk1TX1JFTU9VTlQiCX0sCisJeyBNU19OT1RSVU5DLAkiTVNfTk9UUlVOQyIJfSwKKwl7IE1TX1NPRlRNTlQsCSJNU19TT0ZUTU5UIgl9LAorCXsgTVNfU1lTU1BBQ0UsCSJNU19TWVNTUEFDRSIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworI2lmZGVmIFZYX01TX01BU0sKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB2eGZzX2ZsYWdzW10gPSB7CisJeyBWWF9NU19OT0xPRywJCSJWWF9NU19OT0xPRyIJCX0sCisJeyBWWF9NU19CTEtDTEVBUiwJIlZYX01TX0JMS0NMRUFSIgl9LAorCXsgVlhfTVNfU05BUFNIT1QsCSJWWF9NU19TTkFQU0hPVCIJfSwKKwl7IFZYX01TX05PREFUQUlOTE9HLAkiVlhfTVNfTk9EQVRBSU5MT0ciCX0sCisJeyBWWF9NU19ERUxBWUxPRywJIlZYX01TX0RFTEFZTE9HIgl9LAorCXsgVlhfTVNfVE1QTE9HLAkJIlZYX01TX1RNUExPRyIJCX0sCisJeyBWWF9NU19GSUxFU0VULAkiVlhfTVNfRklMRVNFVCIJCX0sCisKKwl7IFZYX01TX0NBQ0hFX0RJUkVDVCwJIlZYX01TX0NBQ0hFX0RJUkVDVCIJfSwKKwl7IFZYX01TX0NBQ0hFX0RTWU5DLAkiVlhfTVNfQ0FDSEVfRFNZTkMiCX0sCisJeyBWWF9NU19DQUNIRV9DTE9TRVNZTkMsIlZYX01TX0NBQ0hFX0NMT1NFU1lOQyIJfSwKKwl7IFZYX01TX0NBQ0hFX1RNUENBQ0hFLAkiVlhfTVNfQ0FDSEVfVE1QQ0FDSEUiCX0sCisKKwl7IFZYX01TX09TWU5DX0RJUkVDVCwJIlZYX01TX09TWU5DX0RJUkVDVCIJfSwKKwl7IFZYX01TX09TWU5DX0RTWU5DLAkiVlhfTVNfT1NZTkNfRFNZTkMiCX0sCisJeyBWWF9NU19PU1lOQ19DTE9TRVNZTkMsIlZYX01TX09TWU5DX0NMT1NFU1lOQyIJfSwKKwl7IFZYX01TX09TWU5DX0RFTEFZLAkiVlhfTVNfT1NZTkNfREVMQVkiCX0sCisJeyAwLAkJCU5VTEwsCQkJfSwKK307CisjZW5kaWYKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IG5mc19mbGFnc1tdID0geworCXsgTkZTTU5UX1NPRlQsCQkiTkZTTU5UX1NPRlQiCQl9LAorCXsgTkZTTU5UX1dTSVpFLAkJIk5GU01OVF9XU0laRSIJCX0sCisJeyBORlNNTlRfUlNJWkUsCQkiTkZTTU5UX1JTSVpFIgkJfSwKKwl7IE5GU01OVF9USU1FTywJCSJORlNNTlRfVElNRU8iCQl9LAorCXsgTkZTTU5UX1JFVFJBTlMsCSJORlNNTlRfUkVUUkFOUyIJfSwKKwl7IE5GU01OVF9IT1NUTkFNRSwJIk5GU01OVF9IT1NUTkFNRSIJfSwKKwl7IE5GU01OVF9JTlQsCQkiTkZTTU5UX0lOVCIJCX0sCisJeyBORlNNTlRfTk9BQywJCSJORlNNTlRfTk9BQyIJCX0sCisJeyBORlNNTlRfQUNSRUdNSU4sCSJORlNNTlRfQUNSRUdNSU4iCX0sCisJeyBORlNNTlRfQUNSRUdNQVgsCSJORlNNTlRfQUNSRUdNQVgiCX0sCisJeyBORlNNTlRfQUNESVJNSU4sCSJORlNNTlRfQUNESVJNSU4iCX0sCisJeyBORlNNTlRfQUNESVJNQVgsCSJORlNNTlRfQUNESVJNQVgiCX0sCisJeyBORlNNTlRfU0VDVVJFLAkiTkZTTU5UX1NFQ1VSRSIJCX0sCisJeyBORlNNTlRfTk9DVE8sCQkiTkZTTU5UX05PQ1RPIgkJfSwKKwl7IE5GU01OVF9HUlBJRCwJCSJORlNNTlRfR1JQSUQiCQl9LAorCXsgTkZTTU5UX1JQQ1RJTUVTWU5DLAkiTkZTTU5UX1JQQ1RJTUVTWU5DIgl9LAorCXsgTkZTTU5UX0xXUFNNQVgsCSJORlNNTlRfTFdQU01BWCIJfSwKKwl7IDAsCQkJTlVMTAkJCX0sCit9OworCitpbnQKK3N5c19tb3VudCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJY2hhciBmc3R5cCBbRlNUWVBTWl07CisJCXByaW50cGF0aCh0Y3AsIHRjcC0+dV9hcmdbMF0pOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRmbGFncyhtb3VudF9mbGFncywgdGNwLT51X2FyZ1syXSwgIk1TXz8/PyIpOworCQkvKiBUaGUgZG9jIHNleiB0aGF0IHRoZSBmaWxlIHN5c3RlbSB0eXBlIGlzIGdpdmVuIGFzIGEKKwkJICAgZnNpbmRleCwgYW5kIHdlIHNob3VsZCB1c2Ugc3lzZnMgdG8gd29yayBvdXQgdGhlIG5hbWUuCisJCSAgIFRoaXMgYXBwZWFycyB0byBiZSB1bnRydWUgZm9yIFVXLiAgTWF5YmUgaXQncyB1bnRydWUKKwkJICAgZm9yIGFsbCBTVlI0J3M/ICovCisJCWlmICh0Y3AtPnVfYXJnWzJdICYgKE1TX0ZTUyB8IE1TX0RBVEEpKSB7CisJCQlpZiAodW1vdmVzdHIodGNwLCB0Y3AtPnVfYXJnWzNdLCBGU1RZUFNaLCBmc3R5cCkgPCAwKSB7CisJCQkJKmZzdHlwID0gMDsKKwkJCQl0cHJpbnRmKCIsICVsZCIsIHRjcC0+dV9hcmdbM10pOworCQkJfQorCQkJZWxzZQorCQkJCXRwcmludGYoIiwgXCIlc1wiIiwgZnN0eXApOworCQl9CisJCWlmICh0Y3AtPnVfYXJnWzJdICYgTVNfREFUQSkgeworCQkJdHByaW50ZigiLCAiKTsKKyNpZmRlZiBWWF9NU19NQVNLCisJCQkvKiBPbiBVVzcgdGhleSBkb24ndCBnaXZlIHVzIHRoZSBkZWZpbmVzIGFuZCBzdHJ1Y3RzCisJCQkgICB3ZSBuZWVkIHRvIHNlZSB3aGF0IGlzIGdvaW5nIG9uLiAgQnVtbWVyLiAqLworCQkJaWYgKHN0cmNtcCAoZnN0eXAsICJ2eGZzIikgPT0gMCkgeworCQkJCXN0cnVjdCB2eF9tb3VudGFyZ3M1IGFyZ3M7CisJCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJmFyZ3MpIDwgMCkKKwkJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbNF0pOworCQkJCWVsc2UgeworCQkJCQl0cHJpbnRmKCJ7IGZsYWdzPSIpOworCQkJCQlwcmludGZsYWdzKHZ4ZnNfZmxhZ3MsIGFyZ3MubWZsYWdzLCAiVlhfTVNfPz8/Iik7CisJCQkJCWlmIChhcmdzLm1mbGFncyAmIFZYX01TX1NOQVBTSE9UKSB7CisJCQkJCQl0cHJpbnRmICgiLCBzbmFwb2Y9Iik7CisJCQkJCQlwcmludHN0ciAodGNwLAorCQkJCQkJCSAgKGxvbmcpIGFyZ3MucHJpbWFyeXNwZWMsCisJCQkJCQkJICAtMSk7CisJCQkJCQlpZiAoYXJncy5zbmFwc2l6ZSA+IDApCisJCQkJCQkJdHByaW50ZiAoIiwgc25hcHNpemU9JWxkIiwgYXJncy5zbmFwc2l6ZSk7CisJCQkJCX0KKwkJCQkJdHByaW50ZigiIH0iKTsKKwkJCQl9CisJCQl9CisJCQllbHNlCisjZW5kaWYKKwkJCWlmIChzdHJjbXAgKGZzdHlwLCAic3BlY2ZzIikgPT0gMCkgeworCQkJCXRwcmludGYgKCJkZXY9Iik7CisJCQkJcHJpbnRzdHIgKHRjcCwgdGNwLT51X2FyZ1s0XSwgLTEpOworCQkJfQorCQkJZWxzZQorCQkJaWYgKHN0cmNtcCAoZnN0eXAsICJuZnMiKSA9PSAwKSB7CisJCQkJc3RydWN0IG5mc19hcmdzIGFyZ3M7CisJCQkJaWYgKHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1s0XSwgJmFyZ3MpIDwgMCkKKwkJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbNF0pOworCQkJCWVsc2UgeworCQkJCQlzdHJ1Y3QgbmV0YnVmIGFkZHI7CisJCQkJCXRwcmludGYoInsgYWRkcj0iKTsKKwkJCQkJaWYgKHVtb3ZlICh0Y3AsIChpbnQpIGFyZ3MuYWRkciwgJmFkZHIpIDwgMCkgeworCQkJCQkJdHByaW50ZiAoIiUjbHgiLCAobG9uZykgYXJncy5hZGRyKTsKKwkJCQkJfQorCQkJCQllbHNlIHsKKwkJCQkJCXByaW50c29jayh0Y3AsIChpbnQpIGFkZHIuYnVmLCBhZGRyLmxlbik7CisJCQkJCX0KKwkJCQkJdHByaW50ZigiLCBmbGFncz0iKTsKKwkJCQkJcHJpbnRmbGFncyhuZnNfZmxhZ3MsIGFyZ3MuZmxhZ3MsICJORlNNTlRfPz8/Iik7CisJCQkJCXRwcmludGYoIiwgaG9zdG5hbWU9Iik7CisJCQkJCXByaW50c3RyKHRjcCwgKGludCkgYXJncy5ob3N0bmFtZSwgLTEpOworCQkJCQl0cHJpbnRmKCIsIC4uLn0iKTsKKwkJCQl9CisJCQl9CisJCQllbHNlCisJCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbNF0pOworCQkJdHByaW50ZigiLCAlbGQiLCB0Y3AtPnVfYXJnWzVdKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworI2Vsc2UgLyogIVVOSVhXQVJFICovCisKK2ludAorc3lzX21vdW50KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHBhdGgodGNwLCB0Y3AtPnVfYXJnWzBdKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRwYXRoKHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgLi4uIik7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmIC8qICFVTklYV0FSRSAqLworCisjZW5kaWYgLyogIU1JUFMgKi8KKworI2VuZGlmIC8qIFNWUjQgKi8KKworI2lmZGVmIFNZU19jYXBnZXQKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGNhcGFiaWxpdGllc1tdID0geworCXsgMTw8Q0FQX0NIT1dOLAkJIkNBUF9DSE9XTiIJfSwKKwl7IDE8PENBUF9EQUNfT1ZFUlJJREUsCSJDQVBfREFDX09WRVJSSURFIn0sCisJeyAxPDxDQVBfREFDX1JFQURfU0VBUkNILCJDQVBfREFDX1JFQURfU0VBUkNIIn0sCisJeyAxPDxDQVBfRk9XTkVSLAkiQ0FQX0ZPV05FUiIJfSwKKwl7IDE8PENBUF9GU0VUSUQsCSJDQVBfRlNFVElEIgl9LAorCXsgMTw8Q0FQX0tJTEwsCQkiQ0FQX0tJTEwiCX0sCisJeyAxPDxDQVBfU0VUR0lELAkiQ0FQX1NFVEdJRCIJfSwKKwl7IDE8PENBUF9TRVRVSUQsCSJDQVBfU0VUVUlEIgl9LAorCXsgMTw8Q0FQX1NFVFBDQVAsCSJDQVBfU0VUUENBUCIJfSwKKwl7IDE8PENBUF9MSU5VWF9JTU1VVEFCTEUsIkNBUF9MSU5VWF9JTU1VVEFCTEUifSwKKwl7IDE8PENBUF9ORVRfQklORF9TRVJWSUNFLCJDQVBfTkVUX0JJTkRfU0VSVklDRSJ9LAorCXsgMTw8Q0FQX05FVF9CUk9BRENBU1QsCSJDQVBfTkVUX0JST0FEQ0FTVCJ9LAorCXsgMTw8Q0FQX05FVF9BRE1JTiwJIkNBUF9ORVRfQURNSU4iCX0sCisJeyAxPDxDQVBfTkVUX1JBVywJIkNBUF9ORVRfUkFXIgl9LAorCXsgMTw8Q0FQX0lQQ19MT0NLLAkiQ0FQX0lQQ19MT0NLIgl9LAorCXsgMTw8Q0FQX0lQQ19PV05FUiwJIkNBUF9JUENfT1dORVIiCX0sCisJeyAxPDxDQVBfU1lTX01PRFVMRSwJIkNBUF9TWVNfTU9EVUxFIn0sCisJeyAxPDxDQVBfU1lTX1JBV0lPLAkiQ0FQX1NZU19SQVdJTyIJfSwKKwl7IDE8PENBUF9TWVNfQ0hST09ULAkiQ0FQX1NZU19DSFJPT1QifSwKKwl7IDE8PENBUF9TWVNfUFRSQUNFLAkiQ0FQX1NZU19QVFJBQ0UifSwKKwl7IDE8PENBUF9TWVNfUEFDQ1QsCSJDQVBfU1lTX1BBQ0NUIgl9LAorCXsgMTw8Q0FQX1NZU19BRE1JTiwJIkNBUF9TWVNfQURNSU4iCX0sCisJeyAxPDxDQVBfU1lTX0JPT1QsCSJDQVBfU1lTX0JPT1QiCX0sCisJeyAxPDxDQVBfU1lTX05JQ0UsCSJDQVBfU1lTX05JQ0UiCX0sCisJeyAxPDxDQVBfU1lTX1JFU09VUkNFLAkiQ0FQX1NZU19SRVNPVVJDRSJ9LAorCXsgMTw8Q0FQX1NZU19USU1FLAkiQ0FQX1NZU19USU1FIgl9LAorCXsgMTw8Q0FQX1NZU19UVFlfQ09ORklHLCJDQVBfU1lTX1RUWV9DT05GSUcifSwKKwl7IDAsICAgICAgICAgICAgICAgICAgICBOVUxMICAgICAgICAgICAgfSwKK307CisKKworaW50CitzeXNfY2FwZ2V0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlzdGF0aWMgY2FwX3VzZXJfaGVhZGVyX3QgICAgICAgYXJnMCA9IE5VTEw7CisJc3RhdGljIGNhcF91c2VyX2RhdGFfdCAgICAgICAgIGFyZzEgPSBOVUxMOworCisJaWYoIWVudGVyaW5nKHRjcCkpIHsKKwkJaWYgKCFhcmcwKSB7CisJCQlpZiAoKGFyZzAgPSBtYWxsb2Moc2l6ZW9mKCphcmcwKSkpID09IE5VTEwpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworCQkJCXRwcmludGYoIiUjbHgsICUjbHgiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJCX0KKwkJaWYgKCFhcmcxKSB7CisJCQlpZiAoKGFyZzEgPSBtYWxsb2Moc2l6ZW9mKCphcmcxKSkpID09IE5VTEwpIHsKKwkJCQlmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworCQkJCXRwcmludGYoIiUjbHgsICUjbHgiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJCX0KKworCQlpZiAoIXRjcC0+dV9hcmdbMF0pCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1swXSk7CisJCWVsc2UgaWYgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMF0sIHNpemVvZigqYXJnMCksIChjaGFyICopIGFyZzApIDwgMCkKKwkJCXRwcmludGYoIj8/PyIpOworCQllbHNlIHsKKwkJCXRwcmludGYoIiUjeCwgJWQiLCBhcmcwLT52ZXJzaW9uLCBhcmcwLT5waWQpOworCQl9CisJCXRwcmludGYoIiwgIik7CisJCWlmICghdGNwLT51X2FyZ1sxXSkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZSBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1sxXSwgc2l6ZW9mKCphcmcxKSwgKGNoYXIgKikgYXJnMSkgPCAwKQorCQkJdHByaW50ZigiPz8/Iik7CisJCWVsc2UgeworCQkJdHByaW50ZigieyIpOworCQkJcHJpbnRmbGFncyhjYXBhYmlsaXRpZXMsIGFyZzEtPmVmZmVjdGl2ZSwgIkNBUF8/Pz8iKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludGZsYWdzKGNhcGFiaWxpdGllcywgYXJnMS0+cGVybWl0dGVkLCAiQ0FQXz8/PyIpOworCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50ZmxhZ3MoY2FwYWJpbGl0aWVzLCBhcmcxLT5pbmhlcml0YWJsZSwgIkNBUF8/Pz8iKTsKKwkJCXRwcmludGYoIn0iKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfY2Fwc2V0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlzdGF0aWMgY2FwX3VzZXJfaGVhZGVyX3QgICAgICAgYXJnMCA9IE5VTEw7CisJc3RhdGljIGNhcF91c2VyX2RhdGFfdCAgICAgICAgIGFyZzEgPSBOVUxMOworCisJaWYoZW50ZXJpbmcodGNwKSkgeworCQlpZiAoIWFyZzApIHsKKwkJCWlmICgoYXJnMCA9IG1hbGxvYyhzaXplb2YoKmFyZzApKSkgPT0gTlVMTCkgeworCQkJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CisJCQkJdHByaW50ZigiJSNseCwgJSNseCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfQorCQlpZiAoIWFyZzEpIHsKKwkJCWlmICgoYXJnMSA9IG1hbGxvYyhzaXplb2YoKmFyZzEpKSkgPT0gTlVMTCkgeworCQkJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CisJCQkJdHByaW50ZigiJSNseCwgJSNseCIsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfQorCisJCWlmICghdGNwLT51X2FyZ1swXSkKKwkJCXRwcmludGYoIk5VTEwiKTsKKwkJZWxzZSBpZiAoIXZlcmJvc2UodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJZWxzZSBpZiAodW1vdmVuKHRjcCwgdGNwLT51X2FyZ1swXSwgc2l6ZW9mKCphcmcwKSwgKGNoYXIgKikgYXJnMCkgPCAwKQorCQkJdHByaW50ZigiPz8/Iik7CisJCWVsc2UgeworCQkJdHByaW50ZigiJSN4LCAlZCIsIGFyZzAtPnZlcnNpb24sIGFyZzAtPnBpZCk7CisJCX0KKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKCF0Y3AtPnVfYXJnWzFdKQorCQkJdHByaW50ZigiTlVMTCIpOworCQllbHNlIGlmICghdmVyYm9zZSh0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQllbHNlIGlmICh1bW92ZW4odGNwLCB0Y3AtPnVfYXJnWzFdLCBzaXplb2YoKmFyZzEpLCAoY2hhciAqKSBhcmcxKSA8IDApCisJCQl0cHJpbnRmKCI/Pz8iKTsKKwkJZWxzZSB7CisJCQl0cHJpbnRmKCJ7Iik7CisJCQlwcmludGZsYWdzKGNhcGFiaWxpdGllcywgYXJnMS0+ZWZmZWN0aXZlLCAiQ0FQXz8/PyIpOworCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50ZmxhZ3MoY2FwYWJpbGl0aWVzLCBhcmcxLT5wZXJtaXR0ZWQsICJDQVBfPz8/Iik7CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnRmbGFncyhjYXBhYmlsaXRpZXMsIGFyZzEtPmluaGVyaXRhYmxlLCAiQ0FQXz8/PyIpOworCQkJdHByaW50ZigifSIpOworCQl9CisJfQorCXJldHVybiAwOworfQorCisjZWxzZQorCitpbnQgc3lzX2NhcGdldCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIHByaW50YXJncyh0Y3ApOworfQorCitpbnQgc3lzX2NhcHNldCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIHByaW50YXJncyh0Y3ApOworfQorCisjZW5kaWYKKworI2lmZGVmIExJTlVYCisvKiBMaW51eCAyLjYuMTgrIGhlYWRlcnMgcmVtb3ZlZCBDVExfUFJPQyBlbnVtLiAgKi8KKyMgZGVmaW5lIENUTF9QUk9DIDQKKyMgZGVmaW5lIENUTF9DUFUgMTAJCS8qIG9sZGVyIGhlYWRlcnMgbGFjayAqLworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9yb290W10gPSB7CisJeyBDVExfS0VSTiwgIkNUTF9LRVJOIiB9LAorCXsgQ1RMX1ZNLCAiQ1RMX1ZNIiB9LAorCXsgQ1RMX05FVCwgIkNUTF9ORVQiIH0sCisJeyBDVExfUFJPQywgIkNUTF9QUk9DIiB9LAorCXsgQ1RMX0ZTLCAiQ1RMX0ZTIiB9LAorCXsgQ1RMX0RFQlVHLCAiQ1RMX0RFQlVHIiB9LAorCXsgQ1RMX0RFViwgIkNUTF9ERVYiIH0sCisJeyBDVExfQlVTLCAiQ1RMX0JVUyIgfSwKKwl7IENUTF9BQkksICJDVExfQUJJIiB9LAorCXsgQ1RMX0NQVSwgIkNUTF9DUFUiIH0sCisJeyAwLCBOVUxMIH0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzeXNjdGxfa2VybltdID0geworCXsgS0VSTl9PU1RZUEUsICJLRVJOX09TVFlQRSIgfSwKKwl7IEtFUk5fT1NSRUxFQVNFLCAiS0VSTl9PU1JFTEVBU0UiIH0sCisJeyBLRVJOX09TUkVWLCAiS0VSTl9PU1JFViIgfSwKKwl7IEtFUk5fVkVSU0lPTiwgIktFUk5fVkVSU0lPTiIgfSwKKwl7IEtFUk5fU0VDVVJFTUFTSywgIktFUk5fU0VDVVJFTUFTSyIgfSwKKwl7IEtFUk5fUFJPRiwgIktFUk5fUFJPRiIgfSwKKwl7IEtFUk5fTk9ERU5BTUUsICJLRVJOX05PREVOQU1FIiB9LAorCXsgS0VSTl9ET01BSU5OQU1FLCAiS0VSTl9ET01BSU5OQU1FIiB9LAorI2lmZGVmIEtFUk5fU0VDVVJFTFZMCisJeyBLRVJOX1NFQ1VSRUxWTCwgIktFUk5fU0VDVVJFTFZMIiB9LAorI2VuZGlmCisJeyBLRVJOX1BBTklDLCAiS0VSTl9QQU5JQyIgfSwKKyNpZmRlZiBLRVJOX1JFQUxST09UREVWCisJeyBLRVJOX1JFQUxST09UREVWLCAiS0VSTl9SRUFMUk9PVERFViIgfSwKKyNlbmRpZgorI2lmZGVmIEtFUk5fSkFWQV9JTlRFUlBSRVRFUgorCXsgS0VSTl9KQVZBX0lOVEVSUFJFVEVSLCAiS0VSTl9KQVZBX0lOVEVSUFJFVEVSIiB9LAorI2VuZGlmCisjaWZkZWYgS0VSTl9KQVZBX0FQUExFVFZJRVdFUgorCXsgS0VSTl9KQVZBX0FQUExFVFZJRVdFUiwgIktFUk5fSkFWQV9BUFBMRVRWSUVXRVIiIH0sCisjZW5kaWYKKwl7IEtFUk5fU1BBUkNfUkVCT09ULCAiS0VSTl9TUEFSQ19SRUJPT1QiIH0sCisJeyBLRVJOX0NUTEFMVERFTCwgIktFUk5fQ1RMQUxUREVMIiB9LAorCXsgS0VSTl9QUklOVEssICJLRVJOX1BSSU5USyIgfSwKKwl7IEtFUk5fTkFNRVRSQU5TLCAiS0VSTl9OQU1FVFJBTlMiIH0sCisJeyBLRVJOX1BQQ19IVEFCUkVDTEFJTSwgIktFUk5fUFBDX0hUQUJSRUNMQUlNIiB9LAorCXsgS0VSTl9QUENfWkVST1BBR0VELCAiS0VSTl9QUENfWkVST1BBR0VEIiB9LAorCXsgS0VSTl9QUENfUE9XRVJTQVZFX05BUCwgIktFUk5fUFBDX1BPV0VSU0FWRV9OQVAiIH0sCisJeyBLRVJOX01PRFBST0JFLCAiS0VSTl9NT0RQUk9CRSIgfSwKKwl7IEtFUk5fU0dfQklHX0JVRkYsICJLRVJOX1NHX0JJR19CVUZGIiB9LAorCXsgS0VSTl9BQ0NULCAiS0VSTl9BQ0NUIiB9LAorCXsgS0VSTl9QUENfTDJDUiwgIktFUk5fUFBDX0wyQ1IiIH0sCisJeyBLRVJOX1JUU0lHTlIsICJLRVJOX1JUU0lHTlIiIH0sCisJeyBLRVJOX1JUU0lHTUFYLCAiS0VSTl9SVFNJR01BWCIgfSwKKwl7IEtFUk5fU0hNTUFYLCAiS0VSTl9TSE1NQVgiIH0sCisJeyBLRVJOX01TR01BWCwgIktFUk5fTVNHTUFYIiB9LAorCXsgS0VSTl9NU0dNTkIsICJLRVJOX01TR01OQiIgfSwKKwl7IEtFUk5fTVNHUE9PTCwgIktFUk5fTVNHUE9PTCIgfSwKKwl7IDAsIE5VTEwgfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF92bVtdID0geworI2lmZGVmIFZNX1NXQVBDVEwKKwl7IFZNX1NXQVBDVEwsICJWTV9TV0FQQ1RMIiB9LAorI2VuZGlmCisjaWZkZWYgVk1fVU5VU0VEMQorCXsgVk1fVU5VU0VEMSwgIlZNX1VOVVNFRDEiIH0sCisjZW5kaWYKKyNpZmRlZiBWTV9TV0FQT1VUCisJeyBWTV9TV0FQT1VULCAiVk1fU1dBUE9VVCIgfSwKKyNlbmRpZgorI2lmZGVmIFZNX1VOVVNFRDIKKwl7IFZNX1VOVVNFRDIsICJWTV9VTlVTRUQyIiB9LAorI2VuZGlmCisjaWZkZWYgVk1fRlJFRVBHCisJeyBWTV9GUkVFUEcsICJWTV9GUkVFUEciIH0sCisjZW5kaWYKKyNpZmRlZiBWTV9VTlVTRUQzCisJeyBWTV9VTlVTRUQzLCAiVk1fVU5VU0VEMyIgfSwKKyNlbmRpZgorI2lmZGVmIFZNX0JERkxVU0gKKwl7IFZNX0JERkxVU0gsICJWTV9CREZMVVNIIiB9LAorI2VuZGlmCisjaWZkZWYgVk1fVU5VU0VENAorCXsgVk1fVU5VU0VENCwgIlZNX1VOVVNFRDQiIH0sCisjZW5kaWYKKwl7IFZNX09WRVJDT01NSVRfTUVNT1JZLCAiVk1fT1ZFUkNPTU1JVF9NRU1PUlkiIH0sCisjaWZkZWYgVk1fQlVGRkVSTUVNCisJeyBWTV9CVUZGRVJNRU0sICJWTV9CVUZGRVJNRU0iIH0sCisjZW5kaWYKKyNpZmRlZiBWTV9VTlVTRUQ1CisJeyBWTV9VTlVTRUQ1LCAiVk1fVU5VU0VENSIgfSwKKyNlbmRpZgorI2lmZGVmIFZNX1BBR0VDQUNIRQorCXsgVk1fUEFHRUNBQ0hFLCAiVk1fUEFHRUNBQ0hFIiB9LAorI2VuZGlmCisjaWZkZWYgVk1fVU5VU0VENworCXsgVk1fVU5VU0VENywgIlZNX1VOVVNFRDciIH0sCisjZW5kaWYKKyNpZmRlZiBWTV9QQUdFUkRBRU1PTgorCXsgVk1fUEFHRVJEQUVNT04sICJWTV9QQUdFUkRBRU1PTiIgfSwKKyNlbmRpZgorI2lmZGVmIFZNX1VOVVNFRDgKKwl7IFZNX1VOVVNFRDgsICJWTV9VTlVTRUQ4IiB9LAorI2VuZGlmCisjaWZkZWYgVk1fUEdUX0NBQ0hFCisJeyBWTV9QR1RfQ0FDSEUsICJWTV9QR1RfQ0FDSEUiIH0sCisjZW5kaWYKKyNpZmRlZiBWTV9VTlVTRUQ5CisJeyBWTV9VTlVTRUQ5LCAiVk1fVU5VU0VEOSIgfSwKKyNlbmRpZgorCXsgVk1fUEFHRV9DTFVTVEVSLCAiVk1fUEFHRV9DTFVTVEVSIiB9LAorCXsgMCwgTlVMTCB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRbXSA9IHsKKwl7IE5FVF9DT1JFLCAiTkVUX0NPUkUiIH0sCisJeyBORVRfRVRIRVIsICJORVRfRVRIRVIiIH0sCisJeyBORVRfODAyLCAiTkVUXzgwMiIgfSwKKwl7IE5FVF9VTklYLCAiTkVUX1VOSVgiIH0sCisJeyBORVRfSVBWNCwgIk5FVF9JUFY0IiB9LAorCXsgTkVUX0lQWCwgIk5FVF9JUFgiIH0sCisJeyBORVRfQVRBTEssICJORVRfQVRBTEsiIH0sCisJeyBORVRfTkVUUk9NLCAiTkVUX05FVFJPTSIgfSwKKwl7IE5FVF9BWDI1LCAiTkVUX0FYMjUiIH0sCisJeyBORVRfQlJJREdFLCAiTkVUX0JSSURHRSIgfSwKKwl7IE5FVF9ST1NFLCAiTkVUX1JPU0UiIH0sCisJeyBORVRfSVBWNiwgIk5FVF9JUFY2IiB9LAorCXsgTkVUX1gyNSwgIk5FVF9YMjUiIH0sCisJeyBORVRfVFIsICJORVRfVFIiIH0sCisJeyBORVRfREVDTkVULCAiTkVUX0RFQ05FVCIgfSwKKwl7IDAsIE5VTEwgfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRfY29yZVtdID0geworCXsgTkVUX0NPUkVfV01FTV9NQVgsICJORVRfQ09SRV9XTUVNX01BWCIgfSwKKwl7IE5FVF9DT1JFX1JNRU1fTUFYLCAiTkVUX0NPUkVfUk1FTV9NQVgiIH0sCisJeyBORVRfQ09SRV9XTUVNX0RFRkFVTFQsICJORVRfQ09SRV9XTUVNX0RFRkFVTFQiIH0sCisJeyBORVRfQ09SRV9STUVNX0RFRkFVTFQsICJORVRfQ09SRV9STUVNX0RFRkFVTFQiIH0sCisJeyBORVRfQ09SRV9NQVhfQkFDS0xPRywgIk5FVF9DT1JFX01BWF9CQUNLTE9HIiB9LAorCXsgTkVUX0NPUkVfRkFTVFJPVVRFLCAiTkVUX0NPUkVfRkFTVFJPVVRFIiB9LAorCXsgTkVUX0NPUkVfTVNHX0NPU1QsICJORVRfQ09SRV9NU0dfQ09TVCIgfSwKKwl7IE5FVF9DT1JFX01TR19CVVJTVCwgIk5FVF9DT1JFX01TR19CVVJTVCIgfSwKKwl7IE5FVF9DT1JFX09QVE1FTV9NQVgsICJORVRfQ09SRV9PUFRNRU1fTUFYIiB9LAorCXsgMCwgTlVMTCB9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3lzY3RsX25ldF91bml4W10gPSB7CisJeyBORVRfVU5JWF9ERVNUUk9ZX0RFTEFZLCAiTkVUX1VOSVhfREVTVFJPWV9ERUxBWSIgfSwKKwl7IE5FVF9VTklYX0RFTEVURV9ERUxBWSwgIk5FVF9VTklYX0RFTEVURV9ERUxBWSIgfSwKKwl7IDAsIE5VTEwgfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRfaXB2NFtdID0geworCXsgTkVUX0lQVjRfRk9SV0FSRCwgIk5FVF9JUFY0X0ZPUldBUkQiIH0sCisJeyBORVRfSVBWNF9EWU5BRERSLCAiTkVUX0lQVjRfRFlOQUREUiIgfSwKKwl7IE5FVF9JUFY0X0NPTkYsICJORVRfSVBWNF9DT05GIiB9LAorCXsgTkVUX0lQVjRfTkVJR0gsICJORVRfSVBWNF9ORUlHSCIgfSwKKwl7IE5FVF9JUFY0X1JPVVRFLCAiTkVUX0lQVjRfUk9VVEUiIH0sCisJeyBORVRfSVBWNF9GSUJfSEFTSCwgIk5FVF9JUFY0X0ZJQl9IQVNIIiB9LAorCXsgTkVUX0lQVjRfVENQX1RJTUVTVEFNUFMsICJORVRfSVBWNF9UQ1BfVElNRVNUQU1QUyIgfSwKKwl7IE5FVF9JUFY0X1RDUF9XSU5ET1dfU0NBTElORywgIk5FVF9JUFY0X1RDUF9XSU5ET1dfU0NBTElORyIgfSwKKwl7IE5FVF9JUFY0X1RDUF9TQUNLLCAiTkVUX0lQVjRfVENQX1NBQ0siIH0sCisJeyBORVRfSVBWNF9UQ1BfUkVUUkFOU19DT0xMQVBTRSwgIk5FVF9JUFY0X1RDUF9SRVRSQU5TX0NPTExBUFNFIiB9LAorCXsgTkVUX0lQVjRfREVGQVVMVF9UVEwsICJORVRfSVBWNF9ERUZBVUxUX1RUTCIgfSwKKwl7IE5FVF9JUFY0X0FVVE9DT05GSUcsICJORVRfSVBWNF9BVVRPQ09ORklHIiB9LAorCXsgTkVUX0lQVjRfTk9fUE1UVV9ESVNDLCAiTkVUX0lQVjRfTk9fUE1UVV9ESVNDIiB9LAorCXsgTkVUX0lQVjRfVENQX1NZTl9SRVRSSUVTLCAiTkVUX0lQVjRfVENQX1NZTl9SRVRSSUVTIiB9LAorCXsgTkVUX0lQVjRfSVBGUkFHX0hJR0hfVEhSRVNILCAiTkVUX0lQVjRfSVBGUkFHX0hJR0hfVEhSRVNIIiB9LAorCXsgTkVUX0lQVjRfSVBGUkFHX0xPV19USFJFU0gsICJORVRfSVBWNF9JUEZSQUdfTE9XX1RIUkVTSCIgfSwKKwl7IE5FVF9JUFY0X0lQRlJBR19USU1FLCAiTkVUX0lQVjRfSVBGUkFHX1RJTUUiIH0sCisJeyBORVRfSVBWNF9UQ1BfTUFYX0tBX1BST0JFUywgIk5FVF9JUFY0X1RDUF9NQVhfS0FfUFJPQkVTIiB9LAorCXsgTkVUX0lQVjRfVENQX0tFRVBBTElWRV9USU1FLCAiTkVUX0lQVjRfVENQX0tFRVBBTElWRV9USU1FIiB9LAorCXsgTkVUX0lQVjRfVENQX0tFRVBBTElWRV9QUk9CRVMsICJORVRfSVBWNF9UQ1BfS0VFUEFMSVZFX1BST0JFUyIgfSwKKwl7IE5FVF9JUFY0X1RDUF9SRVRSSUVTMSwgIk5FVF9JUFY0X1RDUF9SRVRSSUVTMSIgfSwKKwl7IE5FVF9JUFY0X1RDUF9SRVRSSUVTMiwgIk5FVF9JUFY0X1RDUF9SRVRSSUVTMiIgfSwKKwl7IE5FVF9JUFY0X1RDUF9GSU5fVElNRU9VVCwgIk5FVF9JUFY0X1RDUF9GSU5fVElNRU9VVCIgfSwKKwl7IE5FVF9JUFY0X0lQX01BU1FfREVCVUcsICJORVRfSVBWNF9JUF9NQVNRX0RFQlVHIiB9LAorCXsgTkVUX1RDUF9TWU5DT09LSUVTLCAiTkVUX1RDUF9TWU5DT09LSUVTIiB9LAorCXsgTkVUX1RDUF9TVERVUkcsICJORVRfVENQX1NURFVSRyIgfSwKKwl7IE5FVF9UQ1BfUkZDMTMzNywgIk5FVF9UQ1BfUkZDMTMzNyIgfSwKKwl7IE5FVF9UQ1BfU1lOX1RBSUxEUk9QLCAiTkVUX1RDUF9TWU5fVEFJTERST1AiIH0sCisJeyBORVRfVENQX01BWF9TWU5fQkFDS0xPRywgIk5FVF9UQ1BfTUFYX1NZTl9CQUNLTE9HIiB9LAorCXsgTkVUX0lQVjRfTE9DQUxfUE9SVF9SQU5HRSwgIk5FVF9JUFY0X0xPQ0FMX1BPUlRfUkFOR0UiIH0sCisJeyBORVRfSVBWNF9JQ01QX0VDSE9fSUdOT1JFX0FMTCwgIk5FVF9JUFY0X0lDTVBfRUNIT19JR05PUkVfQUxMIiB9LAorCXsgTkVUX0lQVjRfSUNNUF9FQ0hPX0lHTk9SRV9CUk9BRENBU1RTLCAiTkVUX0lQVjRfSUNNUF9FQ0hPX0lHTk9SRV9CUk9BRENBU1RTIiB9LAorCXsgTkVUX0lQVjRfSUNNUF9TT1VSQ0VRVUVOQ0hfUkFURSwgIk5FVF9JUFY0X0lDTVBfU09VUkNFUVVFTkNIX1JBVEUiIH0sCisJeyBORVRfSVBWNF9JQ01QX0RFU1RVTlJFQUNIX1JBVEUsICJORVRfSVBWNF9JQ01QX0RFU1RVTlJFQUNIX1JBVEUiIH0sCisJeyBORVRfSVBWNF9JQ01QX1RJTUVFWENFRURfUkFURSwgIk5FVF9JUFY0X0lDTVBfVElNRUVYQ0VFRF9SQVRFIiB9LAorCXsgTkVUX0lQVjRfSUNNUF9QQVJBTVBST0JfUkFURSwgIk5FVF9JUFY0X0lDTVBfUEFSQU1QUk9CX1JBVEUiIH0sCisJeyBORVRfSVBWNF9JQ01QX0VDSE9SRVBMWV9SQVRFLCAiTkVUX0lQVjRfSUNNUF9FQ0hPUkVQTFlfUkFURSIgfSwKKwl7IE5FVF9JUFY0X0lDTVBfSUdOT1JFX0JPR1VTX0VSUk9SX1JFU1BPTlNFUywgIk5FVF9JUFY0X0lDTVBfSUdOT1JFX0JPR1VTX0VSUk9SX1JFU1BPTlNFUyIgfSwKKwl7IE5FVF9JUFY0X0lHTVBfTUFYX01FTUJFUlNISVBTLCAiTkVUX0lQVjRfSUdNUF9NQVhfTUVNQkVSU0hJUFMiIH0sCisJeyAgMCwgTlVMTCB9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3lzY3RsX25ldF9pcHY0X3JvdXRlW10gPSB7CisJeyBORVRfSVBWNF9ST1VURV9GTFVTSCwgIk5FVF9JUFY0X1JPVVRFX0ZMVVNIIiB9LAorCXsgTkVUX0lQVjRfUk9VVEVfTUlOX0RFTEFZLCAiTkVUX0lQVjRfUk9VVEVfTUlOX0RFTEFZIiB9LAorCXsgTkVUX0lQVjRfUk9VVEVfTUFYX0RFTEFZLCAiTkVUX0lQVjRfUk9VVEVfTUFYX0RFTEFZIiB9LAorCXsgTkVUX0lQVjRfUk9VVEVfR0NfVEhSRVNILCAiTkVUX0lQVjRfUk9VVEVfR0NfVEhSRVNIIiB9LAorCXsgTkVUX0lQVjRfUk9VVEVfTUFYX1NJWkUsICJORVRfSVBWNF9ST1VURV9NQVhfU0laRSIgfSwKKwl7IE5FVF9JUFY0X1JPVVRFX0dDX01JTl9JTlRFUlZBTCwgIk5FVF9JUFY0X1JPVVRFX0dDX01JTl9JTlRFUlZBTCIgfSwKKwl7IE5FVF9JUFY0X1JPVVRFX0dDX1RJTUVPVVQsICJORVRfSVBWNF9ST1VURV9HQ19USU1FT1VUIiB9LAorCXsgTkVUX0lQVjRfUk9VVEVfR0NfSU5URVJWQUwsICJORVRfSVBWNF9ST1VURV9HQ19JTlRFUlZBTCIgfSwKKwl7IE5FVF9JUFY0X1JPVVRFX1JFRElSRUNUX0xPQUQsICJORVRfSVBWNF9ST1VURV9SRURJUkVDVF9MT0FEIiB9LAorCXsgTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfTlVNQkVSLCAiTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfTlVNQkVSIiB9LAorCXsgTkVUX0lQVjRfUk9VVEVfUkVESVJFQ1RfU0lMRU5DRSwgIk5FVF9JUFY0X1JPVVRFX1JFRElSRUNUX1NJTEVOQ0UiIH0sCisJeyBORVRfSVBWNF9ST1VURV9FUlJPUl9DT1NULCAiTkVUX0lQVjRfUk9VVEVfRVJST1JfQ09TVCIgfSwKKwl7IE5FVF9JUFY0X1JPVVRFX0VSUk9SX0JVUlNULCAiTkVUX0lQVjRfUk9VVEVfRVJST1JfQlVSU1QiIH0sCisJeyBORVRfSVBWNF9ST1VURV9HQ19FTEFTVElDSVRZLCAiTkVUX0lQVjRfUk9VVEVfR0NfRUxBU1RJQ0lUWSIgfSwKKwl7IDAsIE5VTEwgfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRfaXB2NF9jb25mW10gPSB7CisJeyBORVRfSVBWNF9DT05GX0ZPUldBUkRJTkcsICJORVRfSVBWNF9DT05GX0ZPUldBUkRJTkciIH0sCisJeyBORVRfSVBWNF9DT05GX01DX0ZPUldBUkRJTkcsICJORVRfSVBWNF9DT05GX01DX0ZPUldBUkRJTkciIH0sCisJeyBORVRfSVBWNF9DT05GX1BST1hZX0FSUCwgIk5FVF9JUFY0X0NPTkZfUFJPWFlfQVJQIiB9LAorCXsgTkVUX0lQVjRfQ09ORl9BQ0NFUFRfUkVESVJFQ1RTLCAiTkVUX0lQVjRfQ09ORl9BQ0NFUFRfUkVESVJFQ1RTIiB9LAorCXsgTkVUX0lQVjRfQ09ORl9TRUNVUkVfUkVESVJFQ1RTLCAiTkVUX0lQVjRfQ09ORl9TRUNVUkVfUkVESVJFQ1RTIiB9LAorCXsgTkVUX0lQVjRfQ09ORl9TRU5EX1JFRElSRUNUUywgIk5FVF9JUFY0X0NPTkZfU0VORF9SRURJUkVDVFMiIH0sCisJeyBORVRfSVBWNF9DT05GX1NIQVJFRF9NRURJQSwgIk5FVF9JUFY0X0NPTkZfU0hBUkVEX01FRElBIiB9LAorCXsgTkVUX0lQVjRfQ09ORl9SUF9GSUxURVIsICJORVRfSVBWNF9DT05GX1JQX0ZJTFRFUiIgfSwKKwl7IE5FVF9JUFY0X0NPTkZfQUNDRVBUX1NPVVJDRV9ST1VURSwgIk5FVF9JUFY0X0NPTkZfQUNDRVBUX1NPVVJDRV9ST1VURSIgfSwKKwl7IE5FVF9JUFY0X0NPTkZfQk9PVFBfUkVMQVksICJORVRfSVBWNF9DT05GX0JPT1RQX1JFTEFZIiB9LAorCXsgTkVUX0lQVjRfQ09ORl9MT0dfTUFSVElBTlMsICJORVRfSVBWNF9DT05GX0xPR19NQVJUSUFOUyIgfSwKKwl7IDAsIE5VTEwgfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRfaXB2NltdID0geworCXsgTkVUX0lQVjZfQ09ORiwgIk5FVF9JUFY2X0NPTkYiIH0sCisJeyBORVRfSVBWNl9ORUlHSCwgIk5FVF9JUFY2X05FSUdIIiB9LAorCXsgTkVUX0lQVjZfUk9VVEUsICJORVRfSVBWNl9ST1VURSIgfSwKKwl7IDAsIE5VTEwgfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHN5c2N0bF9uZXRfaXB2Nl9yb3V0ZVtdID0geworCXsgTkVUX0lQVjZfUk9VVEVfRkxVU0gsICJORVRfSVBWNl9ST1VURV9GTFVTSCIgfSwKKwl7IE5FVF9JUFY2X1JPVVRFX0dDX1RIUkVTSCwgIk5FVF9JUFY2X1JPVVRFX0dDX1RIUkVTSCIgfSwKKwl7IE5FVF9JUFY2X1JPVVRFX01BWF9TSVpFLCAiTkVUX0lQVjZfUk9VVEVfTUFYX1NJWkUiIH0sCisJeyBORVRfSVBWNl9ST1VURV9HQ19NSU5fSU5URVJWQUwsICJORVRfSVBWNl9ST1VURV9HQ19NSU5fSU5URVJWQUwiIH0sCisJeyBORVRfSVBWNl9ST1VURV9HQ19USU1FT1VULCAiTkVUX0lQVjZfUk9VVEVfR0NfVElNRU9VVCIgfSwKKwl7IE5FVF9JUFY2X1JPVVRFX0dDX0lOVEVSVkFMLCAiTkVUX0lQVjZfUk9VVEVfR0NfSU5URVJWQUwiIH0sCisJeyBORVRfSVBWNl9ST1VURV9HQ19FTEFTVElDSVRZLCAiTkVUX0lQVjZfUk9VVEVfR0NfRUxBU1RJQ0lUWSIgfSwKKwl7IDAsIE5VTEwgfQorfTsKKworaW50CitzeXNfc3lzY3RsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlzdHJ1Y3QgX19zeXNjdGxfYXJncyBpbmZvOworCWludCAqbmFtZTsKKwl1bnNpZ25lZCBsb25nIHNpemU7CisKKwlpZiAodW1vdmUgKHRjcCwgdGNwLT51X2FyZ1swXSwgJmluZm8pIDwgMCkKKwkJcmV0dXJuIHByaW50YXJncyh0Y3ApOworCisJc2l6ZSA9IHNpemVvZiAoaW50KSAqICh1bnNpZ25lZCBsb25nKSBpbmZvLm5sZW47CisJbmFtZSA9IChzaXplIC8gc2l6ZW9mIChpbnQpICE9IGluZm8ubmxlbikgPyBOVUxMIDogbWFsbG9jIChzaXplKTsKKwlpZiAobmFtZSA9PSBOVUxMIHx8CisJICAgIHVtb3Zlbih0Y3AsICh1bnNpZ25lZCBsb25nKSBpbmZvLm5hbWUsIHNpemUsIChjaGFyICopIG5hbWUpIDwgMCkgeworCQlmcmVlKG5hbWUpOworCQlpZiAoZW50ZXJpbmcodGNwKSkKKwkJCXRwcmludGYoInslcCwgJWQsICVwLCAlcCwgJXAsICVadX0iLAorCQkJCWluZm8ubmFtZSwgaW5mby5ubGVuLCBpbmZvLm9sZHZhbCwKKwkJCQlpbmZvLm9sZGxlbnAsIGluZm8ubmV3dmFsLCBpbmZvLm5ld2xlbik7CisJCXJldHVybiAwOworCX0KKworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCWludCBjbnQgPSAwLCBtYXhfY250OworCisJCXRwcmludGYoInt7Iik7CisKKwkJaWYgKGluZm8ubmxlbiA9PSAwKQorCQkJZ290byBvdXQ7CisJCXByaW50eHZhbChzeXNjdGxfcm9vdCwgbmFtZVswXSwgIkNUTF8/Pz8iKTsKKwkJKytjbnQ7CisKKwkJaWYgKGluZm8ubmxlbiA9PSAxKQorCQkJZ290byBvdXQ7CisJCXN3aXRjaCAobmFtZVswXSkgeworCQljYXNlIENUTF9LRVJOOgorCQkJdHByaW50ZigiLCAiKTsKKwkJCXByaW50eHZhbChzeXNjdGxfa2VybiwgbmFtZVsxXSwgIktFUk5fPz8/Iik7CisJCQkrK2NudDsKKwkJCWJyZWFrOworCQljYXNlIENUTF9WTToKKwkJCXRwcmludGYoIiwgIik7CisJCQlwcmludHh2YWwoc3lzY3RsX3ZtLCBuYW1lWzFdLCAiVk1fPz8/Iik7CisJCQkrK2NudDsKKwkJCWJyZWFrOworCQljYXNlIENUTF9ORVQ6CisJCQl0cHJpbnRmKCIsICIpOworCQkJcHJpbnR4dmFsKHN5c2N0bF9uZXQsIG5hbWVbMV0sICJORVRfPz8/Iik7CisJCQkrK2NudDsKKworCQkJaWYgKGluZm8ubmxlbiA9PSAyKQorCQkJCWdvdG8gb3V0OworCQkJc3dpdGNoIChuYW1lWzFdKSB7CisJCQljYXNlIE5FVF9DT1JFOgorCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnR4dmFsKHN5c2N0bF9uZXRfY29yZSwgbmFtZVsyXSwKKwkJCQkJICAiTkVUX0NPUkVfPz8/Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIE5FVF9VTklYOgorCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnR4dmFsKHN5c2N0bF9uZXRfdW5peCwgbmFtZVsyXSwKKwkJCQkJICAiTkVUX1VOSVhfPz8/Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIE5FVF9JUFY0OgorCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnR4dmFsKHN5c2N0bF9uZXRfaXB2NCwgbmFtZVsyXSwKKwkJCQkJICAiTkVUX0lQVjRfPz8/Iik7CisKKwkJCQlpZiAoaW5mby5ubGVuID09IDMpCisJCQkJCWdvdG8gb3V0OworCQkJCXN3aXRjaCAobmFtZVsyXSkgeworCQkJCWNhc2UgTkVUX0lQVjRfUk9VVEU6CisJCQkJCXRwcmludGYoIiwgIik7CisJCQkJCXByaW50eHZhbChzeXNjdGxfbmV0X2lwdjRfcm91dGUsCisJCQkJCQkgIG5hbWVbM10sCisJCQkJCQkgICJORVRfSVBWNF9ST1VURV8/Pz8iKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBORVRfSVBWNF9DT05GOgorCQkJCQl0cHJpbnRmKCIsICIpOworCQkJCQlwcmludHh2YWwoc3lzY3RsX25ldF9pcHY0X2NvbmYsCisJCQkJCQkgIG5hbWVbM10sCisJCQkJCQkgICJORVRfSVBWNF9DT05GXz8/PyIpOworCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0OgorCQkJCQlnb3RvIG91dDsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQljYXNlIE5FVF9JUFY2OgorCQkJCXRwcmludGYoIiwgIik7CisJCQkJcHJpbnR4dmFsKHN5c2N0bF9uZXRfaXB2NiwgbmFtZVsyXSwKKwkJCQkJICAiTkVUX0lQVjZfPz8/Iik7CisKKwkJCQlpZiAoaW5mby5ubGVuID09IDMpCisJCQkJCWdvdG8gb3V0OworCQkJCXN3aXRjaCAobmFtZVsyXSkgeworCQkJCWNhc2UgTkVUX0lQVjZfUk9VVEU6CisJCQkJCXRwcmludGYoIiwgIik7CisJCQkJCXByaW50eHZhbChzeXNjdGxfbmV0X2lwdjZfcm91dGUsCisJCQkJCQkgIG5hbWVbM10sCisJCQkJCQkgICJORVRfSVBWNl9ST1VURV8/Pz8iKTsKKwkJCQkJYnJlYWs7CisJCQkJZGVmYXVsdDoKKwkJCQkJZ290byBvdXQ7CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQlnb3RvIG91dDsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZ290byBvdXQ7CisJCX0KKwlvdXQ6CisJCW1heF9jbnQgPSBpbmZvLm5sZW47CisJCWlmIChhYmJyZXYodGNwKSAmJiBtYXhfY250ID4gbWF4X3N0cmxlbikKKwkJCW1heF9jbnQgPSBtYXhfc3RybGVuOworCQl3aGlsZSAoY250IDwgbWF4X2NudCkKKwkJCXRwcmludGYoIiwgJXgiLCBuYW1lW2NudCsrXSk7CisJCWlmIChjbnQgPCBpbmZvLm5sZW4pCisJCQl0cHJpbnRmKCIsIC4uLiIpOworCQl0cHJpbnRmKCJ9LCAlZCwgIiwgaW5mby5ubGVuKTsKKwl9IGVsc2UgeworCQlzaXplX3Qgb2xkbGVuOworCQlpZiAodW1vdmUodGNwLCAoc2l6ZV90KWluZm8ub2xkbGVucCwgJm9sZGxlbikgPj0gMAorCQkgICAgJiYgaW5mby5ubGVuID49IDIKKwkJICAgICYmICgobmFtZVswXSA9PSBDVExfS0VSTgorCQkJICYmIChuYW1lWzFdID09IEtFUk5fT1NSRUxFQVNFCisJCQkgICAgIHx8IG5hbWVbMV0gPT0gS0VSTl9PU1RZUEUKKyNpZmRlZiBLRVJOX0pBVkFfSU5URVJQUkVURVIKKwkJCSAgICAgfHwgbmFtZVsxXSA9PSBLRVJOX0pBVkFfSU5URVJQUkVURVIKKyNlbmRpZgorI2lmZGVmIEtFUk5fSkFWQV9BUFBMRVRWSUVXRVIKKwkJCSAgICAgfHwgbmFtZVsxXSA9PSBLRVJOX0pBVkFfQVBQTEVUVklFV0VSCisjZW5kaWYKKwkJCQkgKSkpKSB7CisJCQlwcmludHBhdGgodGNwLCAoc2l6ZV90KWluZm8ub2xkdmFsKTsKKwkJCXRwcmludGYoIiwgJVp1LCAiLCBvbGRsZW4pOworCQkJaWYgKGluZm8ubmV3dmFsID09IDApCisJCQkJdHByaW50ZigiTlVMTCIpOworCQkJZWxzZSBpZiAoc3lzZXJyb3IodGNwKSkKKwkJCQl0cHJpbnRmKCIlcCIsIGluZm8ubmV3dmFsKTsKKwkJCWVsc2UKKwkJCQlwcmludHBhdGgodGNwLCAoc2l6ZV90KWluZm8ubmV3dmFsKTsKKwkJCXRwcmludGYoIiwgJVpkIiwgaW5mby5uZXdsZW4pOworCQl9IGVsc2UgeworCQkJdHByaW50ZigiJXAsICVaZCwgJXAsICVaZCIsIGluZm8ub2xkdmFsLCBvbGRsZW4sCisJCQkJaW5mby5uZXd2YWwsIGluZm8ubmV3bGVuKTsKKwkJfQorCQl0cHJpbnRmKCJ9Iik7CisJfQorCisJZnJlZShuYW1lKTsKKwlyZXR1cm4gMDsKK30KKyNlbHNlCitpbnQgc3lzX3N5c2N0bCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJcmV0dXJuIHByaW50YXJncyh0Y3ApOworfQorI2VuZGlmCisKKyNpZmRlZiBGUkVFQlNECisjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorCitpbnQgc3lzX19fc3lzY3RsKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpbnQgcW9pZFtDVExfTUFYTkFNRSsyXTsKKwljaGFyIGN0bFsxMDI0XTsKKwlzaXplX3QgbGVuOworCWludCBpLCBudW1lcmljOworCisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJaWYgKHRjcC0+dV9hcmdbMV0gPCAwIHx8IHRjcC0+dV9hcmdbMV0gPiBDVExfTUFYTkFNRSB8fAorCQkgICAgKHVtb3Zlbih0Y3AsIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0gKiBzaXplb2YoaW50KSwKKwkJCSAgICAoY2hhciAqKSAocW9pZCArIDIpKSA8IDApKQorCQkJdHByaW50ZigiWy4uLl0sICIpOworCQllbHNlIHsKKwkJCS8qIFVzZSBzeXNjdGwgdG8gYXNrIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IE1JQgorCQkJICAgVGhpcyB1c2VzIHRoZSB1bmRvY3VtZW50ZWQgIlN0YWZmLWZ1bmN0aW9ucyIgdXNlZAorCQkJICAgYnkgdGhlIHN5c2N0bCBwcm9ncmFtLiBTZWUga2Vybl9zeXNjdGwuYyBmb3IKKwkJCSAgIGRldGFpbHMuICovCisJCQlxb2lkWzBdID0gMDsgLyogc3lzY3RsICovCisJCQlxb2lkWzFdID0gMTsgLyogbmFtZSAqLworCQkJaSA9IHNpemVvZihjdGwpOworCQkJdHByaW50ZigiWyIpOworCQkJaWYgKHN5c2N0bChxb2lkLCB0Y3AtPnVfYXJnWzFdICsgMiwgY3RsLCAmaSwgMCwgMCkgPj0gMCkgeworCQkJCW51bWVyaWMgPSAhYWJicmV2KHRjcCk7CisJCQkJdHByaW50ZigiJXMlcyIsIGN0bCwgbnVtZXJpYyA/ICIsICIgOiAiIik7CisJCQl9IGVsc2UKKwkJCQludW1lcmljID0gMTsKKwkJCWlmIChudW1lcmljKSB7CisJCQkJZm9yIChpID0gMDsgaSA8IHRjcC0+dV9hcmdbMV07IGkrKykKKwkJCQkJdHByaW50ZigiJXMlZCIsIGkgPyAiLiIgOiAiIiwgcW9pZFtpICsgMl0pOworCQkJfQorCQkJdHByaW50ZigiXSwgIik7CisJCQl0cHJpbnRmKCIlbHUsICIsIHRjcC0+dV9hcmdbMV0pOworCQl9CisJfSBlbHNlIHsKKwkJaWYgKCFzeXNlcnJvcih0Y3ApICYmICh1bW92ZSh0Y3AsIHRjcC0+dV9hcmdbM10sICZsZW4pID49IDApKSB7CisJCQlwcmludHN0cih0Y3AsIHRjcC0+dV9hcmdbMl0sIGxlbik7CisJCQl0cHJpbnRmKCIsIFsldV0sICIsIGxlbik7CisJCX0gZWxzZQorCQkJdHByaW50ZigiJSNseCwgJSNseCwgIiwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJCXByaW50c3RyKHRjcCwgdGNwLT51X2FyZ1s0XSwgdGNwLT51X2FyZ1s1XSk7CisJCXRwcmludGYoIiwgJWx1IiwgdGNwLT51X2FyZ1s1XSk7CisJfQorCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZiBVTklYV0FSRSA+PSAyCisKKyNpbmNsdWRlIDxzeXMva3N5bS5oPgorI2luY2x1ZGUgPHN5cy9lbGYuaD4KKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGtzeW1fZmxhZ3NbXSA9IHsKKwl7IFNUVF9OT1RZUEUsCSJTVFRfTk9UWVBFIgl9LAorCXsgU1RUX0ZVTkMsCSJTVFRfRlVOQyIJfSwKKwl7IFNUVF9PQkpFQ1QsCSJTVFRfT0JKRUNUIgl9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitpbnQKK3N5c19nZXRrc3ltKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcgKHRjcCkpIHsKKwkJcHJpbnRzdHIodGNwLCB0Y3AtPnVfYXJnWzBdLCAtMSk7CisJCXRwcmludGYoIiwgIik7CisJfQorCWVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkgeworCQkJdHByaW50ZigiJSNseCwgJSNseCIsCisJCQkJdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCX0KKwkJZWxzZSB7CisJCQlpbnQgdmFsOworCQkJcHJpbnRudW0gKHRjcCwgdGNwLT51X2FyZ1sxXSwgIiUjbHgiKTsKKwkJCXRwcmludGYoIiwgIik7CisJCQlpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzJdLCAmdmFsKSA8IDApIHsKKwkJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCQl9CisJCQllbHNlIHsKKwkJCQl0cHJpbnRmKCJbIik7CisJCQkJcHJpbnR4dmFsIChrc3ltX2ZsYWdzLCB2YWwsICJTVFRfPz8/Iik7CisJCQkJdHByaW50ZigiXSIpOworCQkJfQorCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBIQVZFX1NZU19OU0NTWVNfSAorCitzdHJ1Y3QgY3JlZDsKKyNpbmNsdWRlIDxzeXMvbnNjc3lzLmg+CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBzc2lfY21kIFtdID0geworCXsgU1NJU1lTX0JBRE9QLAkiU1NJU1lTX0JBRE9QIgl9LAorCXsgU1NJU1lTX0xETFZMX0lOSVQsIlNTSVNZU19MRExWTF9JTklUIn0sCisJeyBTU0lTWVNfTERMVkxfR0VUVkVDLCJTU0lTWVNfTERMVkxfR0VUVkVDIn0sCisJeyBTU0lTWVNfTERMVkxfUFVUVkVDLCJTU0lTWVNfTERMVkxfUFVUVkVDIn0sCisJeyBTU0lTWVNfTERMVkxfUFVUUkNNRFMsIlNTSVNZU19MRExWTF9QVVRSQ01EUyJ9LAorCXsgU1NJU1lTX0xETFZMX1NFVFJFWEVDLCJTU0lTWVNfTERMVkxfU0VUUkVYRUMifSwKKwl7IFNTSVNZU19DTVNfQ0xVU1RFUklELCJTU0lTWVNfQ01TX0NMVVNURVJJRCJ9LAorCXsgU1NJU1lTX0NGU19TVEFUVkZTLCJTU0lTWVNfQ0ZTX1NUQVRWRlMifSwKKwl7IFNTSVNZU19OT0RFX0dFVE5VTSwiU1NJU1lTX05PREVfR0VUTlVNIn0sCisJeyBTU0lTWVNfTk9ERV9UQUJMRSwiU1NJU1lTX05PREVfVEFCTEUifSwKKwl7IFNTSVNZU19OT0RFX0RPV04sIlNTSVNZU19OT0RFX0RPV04ifSwKKwl7IFNTSVNZU19SRUNMQUlNX0NISUxELCJTU0lTWVNfUkVDTEFJTV9DSElMRCJ9LAorCXsgU1NJU1lTX0lQQ19HRVRJTkZPLCJTU0lTWVNfSVBDX0dFVElORk8ifSwKKwl7IFNTSVNZU19JQ1NfVEVTVCwiU1NJU1lTX0lDU19URVNUIn0sCisJeyBTU0lTWVNfTk9ERV9QSUQsIlNTSVNZU19OT0RFX1BJRCJ9LAorCXsgU1NJU1lTX0lTTE9DQUwsIlNTSVNZU19JU0xPQ0FMIn0sCisJeyBTU0lTWVNfQ0ZTX0lTU1RBQ0tFRCwiU1NJU1lTX0NGU19JU1NUQUNLRUQifSwKKwl7IFNTSVNZU19ETkVUX1NZTkMsIlNTSVNZU19ETkVUX1NZTkMifSwKKwl7IFNTSVNZU19DRlNfV0FJVF9NT0RFLCJTU0lTWVNfQ0ZTX1dBSVRfTU9ERSJ9LAorCXsgU1NJU1lTX0NGU19VTU9VTlQsIlNTSVNZU19DRlNfVU1PVU5UIn0sCisJeyBTU0lTWVNfTExTVEFULCJTU0lTWVNfTExTVEFUIgl9LAorCXsgU1NJU1lTX0xUU19QRVJGVEVTVCwiU1NJU1lTX0xUU19QRVJGVEVTVCJ9LAorCXsgU1NJU1lTX0xUU19DT05GSUcsIlNTSVNZU19MVFNfQ09ORklHIn0sCisJeyBTU0lTWVNfU05FVF9QRVJGVEVTVCwiU1NJU1lTX1NORVRfUEVSRlRFU1QifSwKKwl7IFNTSVNZU19JR05PUkVfSEFMRlVQLCJTU0lTWVNfSUdOT1JFX0hBTEZVUCJ9LAorCXsgU1NJU1lTX05PREVfUk9PVERFViwiU1NJU1lTX05PREVfUk9PVERFViJ9LAorCXsgU1NJU1lTX0dFVF9QUklNQVJZLCJTU0lTWVNfR0VUX1BSSU1BUlkifSwKKwl7IFNTSVNZU19HRVRfU0VDT05EQVJZLCJTU0lTWVNfR0VUX1NFQ09OREFSWSJ9LAorCXsgU1NJU1lTX0dFVF9ST09URElTSywiU1NJU1lTX0dFVF9ST09URElTSyJ9LAorCXsgU1NJU1lTX0NMVVNURVJOT0RFX05VTSwiU1NJU1lTX0NMVVNURVJOT0RFX05VTSJ9LAorCXsgU1NJU1lTX0NMVVNURVJfTUVNQkVSU0hJUCwiU1NJU1lTX0NMVVNURVJfTUVNQkVSU0hJUCJ9LAorCXsgU1NJU1lTX0NMVVNURVJfREVUQUlMRURUUkFOUywiU1NJU1lTX0NMVVNURVJfREVUQUlMRURUUkFOUyJ9LAorCXsgU1NJU1lTX0NMVVNURVJOT0RFX0lORk8sIlNTSVNZU19DTFVTVEVSTk9ERV9JTkZPIn0sCisJeyBTU0lTWVNfQ0xVU1RFUk5PREVfU0VUSU5GTywiU1NJU1lTX0NMVVNURVJOT0RFX1NFVElORk8ifSwKKwl7IFNTSVNZU19DTFVTVEVSTk9ERV9BVkFJTCwiU1NJU1lTX0NMVVNURVJOT0RFX0FWQUlMIn0sCisJeyBTU0lTWVNfQ0xVU1RFUl9NQVhOT0RFUywiU1NJU1lTX0NMVVNURVJfTUFYTk9ERVMifSwKKwl7IFNTSVNZU19TRVRfTUVNUFJJTywiU1NJU1lTX1NFVF9NRU1QUklPIn0sCisJeyBTU0lTWVNfR0VUX1VTRVJTLCJTU0lTWVNfR0VUX1VTRVJTIn0sCisJeyBTU0lTWVNfRk9SQ0VfUk9PVF9OT0RFLCJTU0lTWVNfRk9SQ0VfUk9PVF9OT0RFIn0sCisJeyBTU0lTWVNfQ1ZJUF9TRVQsIlNTSVNZU19DVklQX1NFVCJ9LAorCXsgU1NJU1lTX0NWSVBfR0VULCJTU0lTWVNfQ1ZJUF9HRVQifSwKKwl7IFNTSVNZU19HRVRfTk9ERV9DT1VOVFMsIlNTSVNZU19HRVRfTk9ERV9DT1VOVFMifSwKKwl7IFNTSVNZU19HRVRfVFJBTlNQT1JULCJTU0lTWVNfR0VUX1RSQU5TUE9SVCJ9LAorCXsgMCwJCU5VTEwJCX0sCit9OworCitpbnQgc3lzX3NzaXN5cyAodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCXN0cnVjdCBzc2lzeXNfaW92ZWMgaW92OworCWNsc19ub2RlaW5mb19hcmdzX3QgY25pOworCWNsdXN0ZXJub2RlX2luZm9fdCBpbmZvOworCisJaWYgKGVudGVyaW5nICh0Y3ApKSB7CisJCXRzX3JlY2xhaW1fY2hpbGRfaW5hcmdzX3QgdHJjOworCQlpZiAodGNwLT51X2FyZ1sxXSAhPSBzaXplb2YgaW92IHx8CisJCSAgICB1bW92ZSAodGNwLCB0Y3AtPnVfYXJnWzBdLCAmaW92KSA8IDApCisJCXsKKwkJCXRwcmludGYgKCIlI2x4LCAlbGQiLCB0Y3AtPnVfYXJnWzBdLCB0Y3AtPnVfYXJnWzFdKTsKKwkJCXJldHVybiAwOworCQl9CisJCXRwcmludGYgKCJ7aWQ9Iik7CisJCXByaW50eHZhbChzc2lfY21kLCBpb3YudGlvX2lkLmlkX2NtZCwgIlNTSVNZU18/Pz8iKTsKKwkJdHByaW50ZiAoIjolZCIsIGlvdi50aW9faWQuaWRfdmVyKTsKKwkJc3dpdGNoIChpb3YudGlvX2lkLmlkX2NtZCkgeworCQkgICAgY2FzZSBTU0lTWVNfUkVDTEFJTV9DSElMRDoKKwkJCWlmIChpb3YudGlvX3VkYXRhaW5sZW4gIT0gc2l6ZW9mIHRyYyB8fAorCQkJICAgIHVtb3ZlICh0Y3AsIChsb25nKSBpb3YudGlvX3VkYXRhaW4sICZ0cmMpIDwgMCkKKwkJCQlnb3RvIGJhZDsKKwkJCXRwcmludGYgKCIsIGluPXtwaWQ9JWxkLCBzdGFydD0lbGR9IiwKKwkJCQkgdHJjLnRyY19waWQsIHRyYy50cmNfc3RhcnQpOworCQkJYnJlYWs7CisJCSAgICBjYXNlIFNTSVNZU19DTFVTVEVSTk9ERV9JTkZPOgorCQkJaWYgKGlvdi50aW9fdWRhdGFpbmxlbiAhPSBzaXplb2YgY25pIHx8CisJCQkgICAgdW1vdmUgKHRjcCwgKGxvbmcpIGlvdi50aW9fdWRhdGFpbiwgJmNuaSkgPCAwKQorCQkJCWdvdG8gYmFkOworCQkJdHByaW50ZiAoIiwgaW49e25vZGU9JWxkLCBsZW49JWR9IiwKKwkJCQkgY25pLm5vZGVudW0sIGNuaS5pbmZvX2xlbik7CisJCQlicmVhazsKKwkJICAgIGRlZmF1bHQ6CisJCSAgICBiYWQ6CisJCQlpZiAoaW92LnRpb191ZGF0YWlubGVuKSB7CisJCQkJdHByaW50ZiAoIiwgaW49Wy8qICVkIGJ5dGVzICovXSIsCisJCQkJCSBpb3YudGlvX3VkYXRhaW5sZW4pOworCQkJfQorCQl9CisJfQorCWVsc2UgeworCQlpZiAodGNwLT51X2FyZ1sxXSAhPSBzaXplb2YgaW92IHx8CisJCSAgICB1bW92ZSAodGNwLCB0Y3AtPnVfYXJnWzBdLCAmaW92KSA8IDApCisJCSAgICBnb3RvIGRvbmU7CisJCXN3aXRjaCAoaW92LnRpb19pZC5pZF9jbWQpIHsKKwkJICAgIGNhc2UgU1NJU1lTX0NMVVNURVJOT0RFX0lORk86CisJCQlpZiAoaW92LnRpb191ZGF0YWlubGVuICE9IHNpemVvZiBjbmkgfHwKKwkJCSAgICB1bW92ZSAodGNwLCAobG9uZykgaW92LnRpb191ZGF0YWluLCAmY25pKSA8IDApCisJCQkJZ290byBiYWRfb3V0OworCQkJaWYgKGNuaS5pbmZvX2xlbiAhPSBzaXplb2YgaW5mbyB8fAorCQkJICAgIGlvdi50aW9fdWRhdGFvdXRsZW4gIT0gc2l6ZW9mICZpbmZvIHx8CisJCQkgICAgdW1vdmUgKHRjcCwgKGxvbmcpIGlvdi50aW9fdWRhdGFvdXQsICZpbmZvKSA8IDApCisJCQkJZ290byBiYWRfb3V0OworCQkJdHByaW50ZiAoIiwgb3V0PXtub2RlPSVsZCwgY3B1cz0lZCwgb25saW5lPSVkfSIsCisJCQkJIGluZm8ubm9kZV9udW0sIGluZm8ubm9kZV90b3RhbGNwdXMsCisJCQkJIGluZm8ubm9kZV9vbmxpbmVjcHVzKTsKKwkJCWJyZWFrOworCisJCSAgICBkZWZhdWx0OgorCQkgICAgYmFkX291dDoKKwkJCWlmIChpb3YudGlvX3VkYXRhb3V0bGVuKSB7CisJCQkJdHByaW50ZiAoIiwgb3V0PVsvKiAlZCBieXRlcyAqL10iLAorCQkJCQkgaW92LnRpb191ZGF0YW91dGxlbik7CisJCQl9CisJCX0KKwkgICAgZG9uZToKKwkJdHByaW50ZiAoIn0sICVsZCIsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworI2VuZGlmCisKKyNlbmRpZiAvKiBVTklYV0FSRSA+IDIgKi8KKworI2lmZGVmIE1JUFMKKworI2lmbmRlZiBfX05FV19VVFNfTEVOCisjZGVmaW5lIF9fTkVXX1VUU19MRU4gNjQKKyNlbmRpZgorCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgc3lzbWlwc19vcGVyYXRpb25zW10gPSB7CisJeyBTRVROQU1FLAkJIlNFVE5BTUUiCX0sCisJeyBGTFVTSF9DQUNIRSwJCSJGTFVTSF9DQUNIRSIJfSwKKwl7IE1JUFNfRklYQURFLAkJIk1JUFNfRklYQURFIgl9LAorCXsgTUlQU19SRE5WUkFNLAkJIk1JUFNfUkROVlJBTSIJfSwKKwl7IE1JUFNfQVRPTUlDX1NFVCwJIk1JUFNfQVRPTUlDX1NFVCIJfSwKKwl7IDAsIE5VTEwgfQorfTsKKworaW50IHN5c19zeXNtaXBzKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwoc3lzbWlwc19vcGVyYXRpb25zLCB0Y3AtPnVfYXJnWzBdLCAiPz8/Iik7CisJCWlmICghdmVyYm9zZSh0Y3ApKSB7CisJCQl0cHJpbnRmKCIlbGQsICVsZCwgJWxkIiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSwgdGNwLT51X2FyZ1szXSk7CisJCX0gZWxzZSBpZiAodGNwLT51X2FyZ1swXT09U0VUTkFNRSkgeworCQkJY2hhciBub2RlbmFtZVtfX05FV19VVFNfTEVOICsgMV07CisJCQlpZiAodW1vdmVzdHIodGNwLCB0Y3AtPnVfYXJnWzFdLCAoX19ORVdfVVRTX0xFTiArIDEpLCBub2RlbmFtZSkgPCAwKQorCQkJCXRwcmludGYoIiwgJSNseCIsIHRjcC0+dV9hcmdbMV0pOworCQkJZWxzZQorCQkJCXRwcmludGYoIiwgXCIlc1wiIiwgbm9kZW5hbWUpOworCQl9IGVsc2UgaWYgKHRjcC0+dV9hcmdbMF0gPT0gTUlQU19BVE9NSUNfU0VUKSB7CisJCQl0cHJpbnRmKCIsICUjbHgsIDB4JWx4IiwgdGNwLT51X2FyZ1sxXSwgdGNwLT51X2FyZ1syXSk7CisJCX0gZWxzZSBpZiAodGNwLT51X2FyZ1swXSA9PSBNSVBTX0ZJWEFERSkgeworCQkJdHByaW50ZigiLCAweCVseCIsIHRjcC0+dV9hcmdbMV0pOworCQl9IGVsc2UgeworCQkJdHByaW50ZigiJWxkLCAlbGQsICVsZCIsIHRjcC0+dV9hcmdbMV0sIHRjcC0+dV9hcmdbMl0sIHRjcC0+dV9hcmdbM10pOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBNSVBTICovCmRpZmYgLS1naXQgYS90ZXJtLmMgYi90ZXJtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE2OGFmOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlcm0uYwpAQCAtMCwwICsxLDQ2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiBSaWNrIFNsYWRrZXkgPGpyc0B3b3JsZC5zdGQuY29tPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqCSRJZDogdGVybS5jLHYgMS44IDIwMDUvMDYvMDEgMTk6MDI6Mzggcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKworI2lmZGVmIExJTlVYCisvKgorICogVGhlIEMgbGlicmFyeSdzIGRlZmluaXRpb24gb2Ygc3RydWN0IHRlcm1pb3MgbWlnaHQgZGlmZmVyIGZyb20KKyAqIHRoZSBrZXJuZWwgb25lLCBhbmQgd2UgbmVlZCB0byB1c2UgdGhlIGtlcm5lbCBsYXlvdXQuCisgKi8KKyNpbmNsdWRlIDxsaW51eC90ZXJtaW9zLmg+CisjZWxzZQorCisjaWZkZWYgSEFWRV9URVJNSU9fSAorI2luY2x1ZGUgPHRlcm1pby5oPgorI2VuZGlmIC8qIEhBVkVfVEVSTUlPX0ggKi8KKworI2luY2x1ZGUgPHRlcm1pb3MuaD4KKyNlbmRpZgorCisjaWZkZWYgSEFWRV9TWVNfRklMSU9fSAorI2luY2x1ZGUgPHN5cy9maWxpby5oPgorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB0Y3hvbmNfb3B0aW9uc1tdID0geworCXsgVENPT0ZGLAkiVENPT0ZGIgl9LAorCXsgVENPT04sCSJUQ09PTiIJCX0sCisJeyBUQ0lPRkYsCSJUQ0lPRkYiCX0sCisJeyBUQ0lPTiwJIlRDSU9OIgkJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworI2lmZGVmIFRDTEZMU0gKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB0Y2Zsc2hfb3B0aW9uc1tdID0geworCXsgVENJRkxVU0gsCSJUQ0lGTFVTSCIJfSwKKwl7IFRDT0ZMVVNILAkiVENPRkxVU0giCX0sCisJeyBUQ0lPRkxVU0gsCSJUQ0lPRkxVU0giCX0sCisJeyAwLAkJTlVMTAkJfSwKK307CisjZW5kaWYKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGJhdWRfb3B0aW9uc1tdID0geworCXsgQjAsCQkiQjAiCQl9LAorCXsgQjUwLAkJIkI1MCIJCX0sCisJeyBCNzUsCQkiQjc1IgkJfSwKKwl7IEIxMTAsCQkiQjExMCIJCX0sCisJeyBCMTM0LAkJIkIxMzQiCQl9LAorCXsgQjE1MCwJCSJCMTUwIgkJfSwKKwl7IEIyMDAsCQkiQjIwMCIJCX0sCisJeyBCMzAwLAkJIkIzMDAiCQl9LAorCXsgQjYwMCwJCSJCNjAwIgkJfSwKKwl7IEIxMjAwLAkiQjEyMDAiCQl9LAorCXsgQjE4MDAsCSJCMTgwMCIJCX0sCisJeyBCMjQwMCwJIkIyNDAwIgkJfSwKKwl7IEI0ODAwLAkiQjQ4MDAiCQl9LAorCXsgQjk2MDAsCSJCOTYwMCIJCX0sCisjaWZkZWYgQjE5MjAwCisJeyBCMTkyMDAsCSJCMTkyMDAiCX0sCisjZW5kaWYKKyNpZmRlZiBCMzg0MDAKKwl7IEIzODQwMCwJIkIzODQwMCIJfSwKKyNlbmRpZgorI2lmZGVmIEI1NzYwMAorCXsgQjU3NjAwLAkiQjU3NjAwIgl9LAorI2VuZGlmCisjaWZkZWYgQjExNTIwMAorCXsgQjExNTIwMCwJIkIxMTUyMDAiCX0sCisjZW5kaWYKKyNpZmRlZiBCMjMwNDAwCisJeyBCMjMwNDAwLAkiQjIzMDQwMCIJfSwKKyNlbmRpZgorI2lmZGVmIEI0NjA4MDAKKwl7IEI0NjA4MDAsCSJCNDYwODAwIgl9LAorI2VuZGlmCisjaWZkZWYgQjUwMDAwMAorCXsgQjUwMDAwMCwJIkI1MDAwMDAiCX0sCisjZW5kaWYKKyNpZmRlZiBCNTc2MDAwCisJeyBCNTc2MDAwLAkiQjU3NjAwMCIJfSwKKyNlbmRpZgorI2lmZGVmIEI5MjE2MDAKKwl7IEI5MjE2MDAsCSJCOTIxNjAwIgl9LAorI2VuZGlmCisjaWZkZWYgQjEwMDAwMDAKKwl7IEIxMDAwMDAwLAkiQjEwMDAwMDAiCX0sCisjZW5kaWYKKyNpZmRlZiBCMTE1MjAwMAorCXsgQjExNTIwMDAsCSJCMTE1MjAwMCIJfSwKKyNlbmRpZgorI2lmZGVmIEIxNTAwMDAwCisJeyBCMTUwMDAwMCwJIkIxNTAwMDAwIgl9LAorI2VuZGlmCisjaWZkZWYgQjIwMDAwMDAKKwl7IEIyMDAwMDAwLAkiQjIwMDAwMDAiCX0sCisjZW5kaWYKKyNpZmRlZiBCMjUwMDAwMAorCXsgQjI1MDAwMDAsCSJCMjUwMDAwMCIJfSwKKyNlbmRpZgorI2lmZGVmIEIzMDAwMDAwCisJeyBCMzAwMDAwMCwJIkIzMDAwMDAwIgl9LAorI2VuZGlmCisjaWZkZWYgQjM1MDAwMDAKKwl7IEIzNTAwMDAwLAkiQjM1MDAwMDAiCX0sCisjZW5kaWYKKyNpZmRlZiBCNDAwMDAwMAorCXsgQjQwMDAwMDAsCSJCNDAwMDAwMCIJfSwKKyNlbmRpZgorI2lmZGVmIEVYVEEKKwl7IEVYVEEsCQkiRVhUQSIJCX0sCisjZW5kaWYKKyNpZmRlZiBFWFRCCisJeyBFWFRCLAkJIkVYVEIiCQl9LAorI2VuZGlmCisJeyAwLAkJTlVMTAkJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBtb2RlbV9mbGFnc1tdID0geworI2lmZGVmIFRJT0NNX0xFCisJeyBUSU9DTV9MRSwJIlRJT0NNX0xFIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX0RUUgorCXsgVElPQ01fRFRSLAkiVElPQ01fRFRSIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX1JUUworCXsgVElPQ01fUlRTLAkiVElPQ01fUlRTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX1NUCisJeyBUSU9DTV9TVCwJIlRJT0NNX1NUIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX1NSCisJeyBUSU9DTV9TUiwJIlRJT0NNX1NSIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX0NUUworCXsgVElPQ01fQ1RTLAkiVElPQ01fQ1RTIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX0NBUgorCXsgVElPQ01fQ0FSLAkiVElPQ01fQ0FSIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX0NECisJeyBUSU9DTV9DRCwJIlRJT0NNX0NEIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX1JORworCXsgVElPQ01fUk5HLAkiVElPQ01fUk5HIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX1JJCisJeyBUSU9DTV9SSSwJIlRJT0NNX1JJIiwJfSwKKyNlbmRpZgorI2lmZGVmIFRJT0NNX0RTUgorCXsgVElPQ01fRFNSLAkiVElPQ01fRFNSIiwJfSwKKyNlbmRpZgorCXsgMCwJCU5VTEwsCQl9LAorfTsKKworCitpbnQKK3Rlcm1faW9jdGwodGNwLCBjb2RlLCBhcmcpCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGNvZGUsIGFyZzsKK3sKKwlzdHJ1Y3QgdGVybWlvcyB0aW9zOworI2lmbmRlZiBGUkVFQlNECisJc3RydWN0IHRlcm1pbyB0aW87CisjZWxzZQorCSNkZWZpbmUgVENHRVRTCVRJT0NHRVRBCisJI2RlZmluZSBUQ1NFVFMJVElPQ1NFVEEKKwkjZGVmaW5lIFRDU0VUU1cJVElPQ1NFVEFXCisJI2RlZmluZSBUQ1NFVFNGCVRJT0NTRVRBRgorI2VuZGlmCisJc3RydWN0IHdpbnNpemUgd3M7CisjaWZkZWYgVElPQ0dTSVpFCisJc3RydWN0ICB0dHlzaXplIHRzOworI2VuZGlmCisJaW50IGk7CisKKwlpZiAoZW50ZXJpbmcodGNwKSkKKwkJcmV0dXJuIDA7CisKKwlzd2l0Y2ggKGNvZGUpIHsKKworCS8qIGlvY3RscyB3aXRoIHRlcm1pb3Mgb3IgdGVybWlvIGFyZ3MgKi8KKworI2lmZGVmIFRDR0VUUworCWNhc2UgVENHRVRTOgorCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXJldHVybiAwOworCWNhc2UgVENTRVRTOgorCWNhc2UgVENTRVRTVzoKKwljYXNlIFRDU0VUU0Y6CisJCWlmICghdmVyYm9zZSh0Y3ApIHx8IHVtb3ZlKHRjcCwgYXJnLCAmdGlvcykgPCAwKQorCQkJcmV0dXJuIDA7CisJCWlmIChhYmJyZXYodGNwKSkgeworCQkJdHByaW50ZigiLCB7Iik7CisjaWZuZGVmIEZSRUVCU0QKKwkJCXByaW50eHZhbChiYXVkX29wdGlvbnMsIHRpb3MuY19jZmxhZyAmIENCQVVELCAiQj8/PyIpOworI2Vsc2UKKwkJCXByaW50eHZhbChiYXVkX29wdGlvbnMsIHRpb3MuY19pc3BlZWQsICJCPz8/Iik7CisJCQlpZiAodGlvcy5jX2lzcGVlZCAhPSB0aW9zLmNfb3NwZWVkKSB7CisJCQkJdHByaW50ZigiIChpbikiKTsKKwkJCQlwcmludHh2YWwoYmF1ZF9vcHRpb25zLCB0aW9zLmNfb3NwZWVkLCAiQj8/PyIpOworCQkJCXRwcmludGYoIiAob3V0KSIpOworCQkJfQorI2VuZGlmCisJCQl0cHJpbnRmKCIgJXNvcG9zdCAlc2lzaWcgJXNpY2Fub24gJXNlY2hvIC4uLn0iLAorCQkJCSh0aW9zLmNfb2ZsYWcgJiBPUE9TVCkgPyAiIiA6ICItIiwKKwkJCQkodGlvcy5jX2xmbGFnICYgSVNJRykgPyAiIiA6ICItIiwKKwkJCQkodGlvcy5jX2xmbGFnICYgSUNBTk9OKSA/ICIiIDogIi0iLAorCQkJCSh0aW9zLmNfbGZsYWcgJiBFQ0hPKSA/ICIiIDogIi0iKTsKKwkJCXJldHVybiAxOworCQl9CisJCXRwcmludGYoIiwge2NfaWZsYWdzPSUjbHgsIGNfb2ZsYWdzPSUjbHgsICIsCisJCQkobG9uZykgdGlvcy5jX2lmbGFnLCAobG9uZykgdGlvcy5jX29mbGFnKTsKKwkJdHByaW50ZigiY19jZmxhZ3M9JSNseCwgY19sZmxhZ3M9JSNseCwgIiwKKwkJCShsb25nKSB0aW9zLmNfY2ZsYWcsIChsb25nKSB0aW9zLmNfbGZsYWcpOworI2lmICFkZWZpbmVkKFNWUjQpICYmICFkZWZpbmVkKEZSRUVCU0QpCisJCXRwcmludGYoImNfbGluZT0ldSwgIiwgdGlvcy5jX2xpbmUpOworI2VuZGlmCisJCWlmICghKHRpb3MuY19sZmxhZyAmIElDQU5PTikpCisJCQl0cHJpbnRmKCJjX2NjW1ZNSU5dPSVkLCBjX2NjW1ZUSU1FXT0lZCwgIiwKKwkJCQl0aW9zLmNfY2NbVk1JTl0sIHRpb3MuY19jY1tWVElNRV0pOworCQl0cHJpbnRmKCJjX2NjPVwiIik7CisJCWZvciAoaSA9IDA7IGkgPCBOQ0NTOyBpKyspCisJCQl0cHJpbnRmKCJcXHglMDJ4IiwgdGlvcy5jX2NjW2ldKTsKKwkJdHByaW50ZigiXCJ9Iik7CisJCXJldHVybiAxOworI2VuZGlmIC8qIFRDR0VUUyAqLworCisjaWZkZWYgVENHRVRBCisJY2FzZSBUQ0dFVEE6CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJcmV0dXJuIDA7CisJY2FzZSBUQ1NFVEE6CisJY2FzZSBUQ1NFVEFXOgorCWNhc2UgVENTRVRBRjoKKwkJaWYgKCF2ZXJib3NlKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZ0aW8pIDwgMCkKKwkJCXJldHVybiAwOworCQlpZiAoYWJicmV2KHRjcCkpIHsKKwkJCXRwcmludGYoIiwgeyIpOworCQkJcHJpbnR4dmFsKGJhdWRfb3B0aW9ucywgdGlvLmNfY2ZsYWcgJiBDQkFVRCwgIkI/Pz8iKTsKKwkJCXRwcmludGYoIiAlc29wb3N0ICVzaXNpZyAlc2ljYW5vbiAlc2VjaG8gLi4ufSIsCisJCQkJKHRpby5jX29mbGFnICYgT1BPU1QpID8gIiIgOiAiLSIsCisJCQkJKHRpby5jX2xmbGFnICYgSVNJRykgPyAiIiA6ICItIiwKKwkJCQkodGlvLmNfbGZsYWcgJiBJQ0FOT04pID8gIiIgOiAiLSIsCisJCQkJKHRpby5jX2xmbGFnICYgRUNITykgPyAiIiA6ICItIik7CisJCQlyZXR1cm4gMTsKKwkJfQorCQl0cHJpbnRmKCIsIHtjX2lmbGFncz0lI2x4LCBjX29mbGFncz0lI2x4LCAiLAorCQkJKGxvbmcpIHRpby5jX2lmbGFnLCAobG9uZykgdGlvLmNfb2ZsYWcpOworCQl0cHJpbnRmKCJjX2NmbGFncz0lI2x4LCBjX2xmbGFncz0lI2x4LCAiLAorCQkJKGxvbmcpIHRpby5jX2NmbGFnLCAobG9uZykgdGlvLmNfbGZsYWcpOworCQl0cHJpbnRmKCJjX2xpbmU9JXUsICIsIHRpby5jX2xpbmUpOworI2lmZGVmIF9WTUlOCisJCWlmICghKHRpby5jX2xmbGFnICYgSUNBTk9OKSkKKwkJCXRwcmludGYoImNfY2NbX1ZNSU5dPSVkLCBjX2NjW19WVElNRV09JWQsICIsCisJCQkJdGlvLmNfY2NbX1ZNSU5dLCB0aW8uY19jY1tfVlRJTUVdKTsKKyNlbHNlIC8qICFfVk1JTiAqLworCQlpZiAoISh0aW8uY19sZmxhZyAmIElDQU5PTikpCisJCQl0cHJpbnRmKCJjX2NjW1ZNSU5dPSVkLCBjX2NjW1ZUSU1FXT0lZCwgIiwKKwkJCQl0aW8uY19jY1tWTUlOXSwgdGlvLmNfY2NbVlRJTUVdKTsKKyNlbmRpZiAvKiAhX1ZNSU4gKi8KKwkJdHByaW50ZigiY19jYz1cIiIpOworCQlmb3IgKGkgPSAwOyBpIDwgTkNDOyBpKyspCisJCQl0cHJpbnRmKCJcXHglMDJ4IiwgdGlvLmNfY2NbaV0pOworCQl0cHJpbnRmKCJcIn0iKTsKKwkJcmV0dXJuIDE7CisjZW5kaWYgLyogVENHRVRBICovCisKKwkvKiBpb2N0bHMgd2l0aCB3aW5zaXplIG9yIHR0eXNpemUgYXJncyAqLworCisjaWZkZWYgVElPQ0dXSU5TWgorCWNhc2UgVElPQ0dXSU5TWjoKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQlyZXR1cm4gMDsKKwljYXNlIFRJT0NTV0lOU1o6CisJCWlmICghdmVyYm9zZSh0Y3ApIHx8IHVtb3ZlKHRjcCwgYXJnLCAmd3MpIDwgMCkKKwkJCXJldHVybiAwOworCQl0cHJpbnRmKCIsIHt3c19yb3c9JWQsIHdzX2NvbD0lZCwgd3NfeHBpeGVsPSVkLCB3c195cGl4ZWw9JWR9IiwKKwkJCXdzLndzX3Jvdywgd3Mud3NfY29sLCB3cy53c194cGl4ZWwsIHdzLndzX3lwaXhlbCk7CisJCXJldHVybiAxOworI2VuZGlmIC8qIFRJT0NHV0lOU1ogKi8KKworI2lmZGVmIFRJT0NHU0laRQorCWNhc2UgVElPQ0dTSVpFOgorCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXJldHVybiAwOworCWNhc2UgVElPQ1NTSVpFOgorCQlpZiAoIXZlcmJvc2UodGNwKSB8fCB1bW92ZSh0Y3AsIGFyZywgJnRzKSA8IDApCisJCQlyZXR1cm4gMDsKKwkJdHByaW50ZigiLCB7dHNfbGluZXM9JWQsIHRzX2NvbHM9JWR9IiwKKwkJCXRzLnRzX2xpbmVzLCB0cy50c19jb2xzKTsKKwkJcmV0dXJuIDE7CisjZW5kaWYKKworCS8qIGlvY3RscyB3aXRoIGEgZGlyZWN0IGRlY29kYWJsZSBhcmcgKi8KKyNpZmRlZiBUQ1hPTkMKKwljYXNlIFRDWE9OQzoKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR4dmFsKHRjeG9uY19vcHRpb25zLCBhcmcsICJUQz8/PyIpOworCQlyZXR1cm4gMTsKKyNlbmRpZgorI2lmZGVmIFRDTEZMU0gKKwljYXNlIFRDRkxTSDoKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR4dmFsKHRjZmxzaF9vcHRpb25zLCBhcmcsICJUQz8/PyIpOworCQlyZXR1cm4gMTsKKyNlbmRpZgorCisJLyogaW9jdGxzIHdpdGggYW4gaW5kaXJlY3QgcGFyYW1ldGVyIGRpc3BsYXllZCBhcyBtb2RlbSBmbGFncyAqLworCisjaWZkZWYgVElPQ01HRVQKKwljYXNlIFRJT0NNR0VUOgorCWNhc2UgVElPQ01CSVM6CisJY2FzZSBUSU9DTUJJQzoKKwljYXNlIFRJT0NNU0VUOgorCQlpZiAodW1vdmUodGNwLCBhcmcsICZhcmcpIDwgMCkKKwkJCXJldHVybiAwOworCQl0cHJpbnRmKCIsIFsiKTsKKwkJcHJpbnRmbGFncyhtb2RlbV9mbGFncywgYXJnLCAiVElPQ01fPz8/Iik7CisJCXRwcmludGYoIl0iKTsKKwkJcmV0dXJuIDE7CisjZW5kaWYgLyogVElPQ01HRVQgKi8KKworCS8qIGlvY3RscyB3aXRoIGFuIGluZGlyZWN0IHBhcmFtZXRlciBkaXNwbGF5ZWQgaW4gZGVjaW1hbCAqLworCisJY2FzZSBUSU9DU1BHUlA6CisJY2FzZSBUSU9DR1BHUlA6CisjaWZkZWYgVElPQ0dFVFBHUlAKKwljYXNlIFRJT0NHRVRQR1JQOgorI2VuZGlmCisjaWZkZWYgVElPQ1NFVFBHUlAKKwljYXNlIFRJT0NTRVRQR1JQOgorI2VuZGlmCisjaWZkZWYgRklPTlJFQUQKKwljYXNlIEZJT05SRUFEOgorI2VuZGlmCisJY2FzZSBUSU9DT1VUUToKKyNpZmRlZiBGSU9OQklPCisJY2FzZSBGSU9OQklPOgorI2VuZGlmCisjaWZkZWYgRklPQVNZTkMKKwljYXNlIEZJT0FTWU5DOgorI2VuZGlmCisjaWZkZWYgRklPR0VUT1dOCisJY2FzZSBGSU9HRVRPV046CisjZW5kaWYKKyNpZmRlZiBGSU9TRVRPV04KKwljYXNlIEZJT1NFVE9XTjoKKyNlbmRpZgorI2lmZGVmIFRJT0NHRVRECisJY2FzZSBUSU9DR0VURDoKKyNlbmRpZgorI2lmZGVmIFRJT0NTRVRECisJY2FzZSBUSU9DU0VURDoKKyNlbmRpZgorI2lmZGVmIFRJT0NQS1QKKwljYXNlIFRJT0NQS1Q6CisjZW5kaWYKKyNpZmRlZiBUSU9DUkVNT1RFCisJY2FzZSBUSU9DUkVNT1RFOgorI2VuZGlmCisjaWZkZWYgVElPQ1VDTlRMCisJY2FzZSBUSU9DVUNOVEw6CisjZW5kaWYKKyNpZmRlZiBUSU9DVENOVEwKKwljYXNlIFRJT0NUQ05UTDoKKyNlbmRpZgorI2lmZGVmIFRJT0NTSUdOQUwKKwljYXNlIFRJT0NTSUdOQUw6CisjZW5kaWYKKyNpZmRlZiBUSU9DU1NPRlRDQVIKKwljYXNlIFRJT0NTU09GVENBUjoKKyNlbmRpZgorI2lmZGVmIFRJT0NHU09GVENBUgorCWNhc2UgVElPQ0dTT0ZUQ0FSOgorI2VuZGlmCisjaWZkZWYgVElPQ0lTUEFDRQorCWNhc2UgVElPQ0lTUEFDRToKKyNlbmRpZgorI2lmZGVmIFRJT0NJU0laRQorCWNhc2UgVElPQ0lTSVpFOgorI2VuZGlmCisjaWZkZWYgVElPQ1NJTlRSCisJY2FzZSBUSU9DU0lOVFI6CisjZW5kaWYKKyNpZmRlZiBUSU9DU1BUTENLCisJY2FzZSBUSU9DU1BUTENLOgorI2VuZGlmCisjaWZkZWYgVElPQ0dQVE4KKwljYXNlIFRJT0NHUFROOgorI2VuZGlmCisJCXRwcmludGYoIiwgIik7CisJCXByaW50bnVtKHRjcCwgYXJnLCAiJWQiKTsKKwkJcmV0dXJuIDE7CisKKyNpZiAwCisJLyogaW9jdGxzIHdpdGggYW4gaW5kaXJlY3QgcGFyYW1ldGVyIGRpc3BsYXllZCBpbiBoZXggKi8KKworCQl0cHJpbnRmKCIsICIpOworCQlwcmludG51bSh0Y3AsIGFyZywgIiUjeCIpOworCQlyZXR1cm4gMTsKKyNlbmRpZgorCisJLyogaW9jdGxzIHdpdGggYW4gaW5kaXJlY3QgcGFyYW1ldGVyIGRpc3BsYXllZCBhcyBhIGNoYXIgKi8KKworI2lmZGVmIFRJT0NTVEkKKwljYXNlIFRJT0NTVEk6CisjZW5kaWYKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnRzdHIodGNwLCBhcmcsIDEpOworCQlyZXR1cm4gMTsKKworCS8qIGlvY3RscyB3aXRoIG5vIHBhcmFtZXRlcnMgKi8KKworI2lmZGVmIFRJT0NTQ1RUWQorCWNhc2UgVElPQ1NDVFRZOgorI2VuZGlmCisjaWZkZWYgVElPQ05PVFRZCisJY2FzZSBUSU9DTk9UVFk6CisjZW5kaWYKKyNpZmRlZiBGSU9DTEVYCisJY2FzZSBGSU9DTEVYOgorI2VuZGlmCisjaWZkZWYgRklPTkNMRVgKKwljYXNlIEZJT05DTEVYOgorI2VuZGlmCisjaWZkZWYgVElPQ0NPTlMKKwljYXNlIFRJT0NDT05TOgorI2VuZGlmCisJCXJldHVybiAxOworCisJLyogaW9jdGxzIHdoaWNoIGFyZSB1bmtub3duICovCisKKwlkZWZhdWx0OgorCQlyZXR1cm4gMDsKKwl9Cit9CmRpZmYgLS1naXQgYS90aW1lLmMgYi90aW1lLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1ZjcyNwotLS0gL2Rldi9udWxsCisrKyBiL3RpbWUuYwpAQCAtMCwwICsxLDc2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAorICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCisgKiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKgkkSWQ6IHRpbWUuYyx2IDEuMTIgMjAwNS8wNi8wMSAxOTowMjozOCByb2xhbmQgRXhwICQKKyAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorCisjaWZkZWYgTElOVVgKKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaWZkZWYgSEFWRV9BTkRST0lEX09TCisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNlbHNlCisjaW5jbHVkZSA8c3lzL3RpbWV4Lmg+CisjZW5kaWYKKyNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgorI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgorI2VuZGlmIC8qIExJTlVYICovCisKK3N0cnVjdCB0aW1ldmFsMzIKK3sKKwl1X2ludDMyX3QgdHZfc2VjLCB0dl91c2VjOworfTsKKworc3RhdGljIHZvaWQKK3RwcmludF90aW1ldmFsMzIoc3RydWN0IHRjYiAqdGNwLCBjb25zdCBzdHJ1Y3QgdGltZXZhbDMyICp0dikKK3sKKwl0cHJpbnRmKCJ7JXUsICV1fSIsIHR2LT50dl9zZWMsIHR2LT50dl91c2VjKTsKK30KKworc3RhdGljIHZvaWQKK3RwcmludF90aW1ldmFsKHN0cnVjdCB0Y2IgKnRjcCwgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnR2KQoreworCXRwcmludGYoInslbHUsICVsdX0iLAorCQkodW5zaWduZWQgbG9uZykgdHYtPnR2X3NlYywgKHVuc2lnbmVkIGxvbmcpIHR2LT50dl91c2VjKTsKK30KKwordm9pZAorcHJpbnR0dl9iaXRuZXNzKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLCBlbnVtIGJpdG5lc3NfdCBiaXRuZXNzKQoreworCWlmIChhZGRyID09IDApCisJCXRwcmludGYoIk5VTEwiKTsKKwllbHNlIGlmICghdmVyYm9zZSh0Y3ApKQorCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJZWxzZQorCXsKKwkJaW50ICAgICByYzsKKworCQlpZiAoYml0bmVzcyA9PSBCSVRORVNTXzMyCisjaWYgZGVmaW5lZChMSU5VWCkgJiYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxCisJCSAgICB8fCBwZXJzb25hbGl0eV93b3Jkc2l6ZVtjdXJyZW50X3BlcnNvbmFsaXR5XSA9PSA0CisjZW5kaWYKKwkJCSkKKwkJeworCQkJc3RydWN0IHRpbWV2YWwzMiB0djsKKworCQkJaWYgKChyYyA9IHVtb3ZlKHRjcCwgYWRkciwgJnR2KSkgPj0gMCkKKwkJCQl0cHJpbnRfdGltZXZhbDMyKHRjcCwgJnR2KTsKKwkJfSBlbHNlCisJCXsKKwkJCXN0cnVjdCB0aW1ldmFsIHR2OworCisJCQlpZiAoKHJjID0gdW1vdmUodGNwLCBhZGRyLCAmdHYpKSA+PSAwKQorCQkJCXRwcmludF90aW1ldmFsKHRjcCwgJnR2KTsKKwkJfQorCisJCWlmIChyYyA8IDApCisJCQl0cHJpbnRmKCJ7Li4ufSIpOworCX0KK30KKwordm9pZAorc3ByaW50dHYoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGVudW0gYml0bmVzc190IGJpdG5lc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoYWRkciA9PSAwKQorCQlzdHJjcHkoYnVmLCAiTlVMTCIpOworCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCisJCXNwcmludGYoYnVmLCAiJSNseCIsIGFkZHIpOworCWVsc2UKKwl7CisJCWludCAgICAgcmM7CisKKwkJaWYgKGJpdG5lc3MgPT0gQklUTkVTU18zMgorI2lmIGRlZmluZWQoTElOVVgpICYmIFNVUFBPUlRFRF9QRVJTT05BTElUSUVTID4gMQorCQkgICAgfHwgcGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNAorI2VuZGlmCisJCQkpCisJCXsKKwkJCXN0cnVjdCB0aW1ldmFsMzIgdHY7CisKKwkJCWlmICgocmMgPSB1bW92ZSh0Y3AsIGFkZHIsICZ0dikpID49IDApCisJCQkJc3ByaW50ZihidWYsICJ7JXUsICV1fSIsCisJCQkJCXR2LnR2X3NlYywgdHYudHZfdXNlYyk7CisJCX0gZWxzZQorCQl7CisJCQlzdHJ1Y3QgdGltZXZhbCB0djsKKworCQkJaWYgKChyYyA9IHVtb3ZlKHRjcCwgYWRkciwgJnR2KSkgPj0gMCkKKwkJCQlzcHJpbnRmKGJ1ZiwgInslbHUsICVsdX0iLAorCQkJCQkodW5zaWduZWQgbG9uZykgdHYudHZfc2VjLAorCQkJCQkodW5zaWduZWQgbG9uZykgdHYudHZfdXNlYyk7CisJCX0KKworCQlpZiAocmMgPCAwKQorCQkJc3RyY3B5KGJ1ZiwgInsuLi59Iik7CisJfQorfQorCitpbnQKK3N5c190aW1lKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisjaWZuZGVmIFNWUjQKKwkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzBdLCAiJWxkIik7CisjZW5kaWYgLyogU1ZSNCAqLworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfc3RpbWUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJcHJpbnRudW0odGNwLCB0Y3AtPnVfYXJnWzBdLCAiJWxkIik7CisJfQorCXJldHVybiAwOworfQorCitpbnQKK3N5c19nZXR0aW1lb2ZkYXkodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChleGl0aW5nKHRjcCkpIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpIHsKKwkJCXRwcmludGYoIiUjbHgsICUjbHgiLAorCQkJCXRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCQkJcmV0dXJuIDA7CisJCX0KKwkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMF0pOworI2lmbmRlZiBTVlI0CisJCXRwcmludGYoIiwgIik7CisJCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKyNlbmRpZiAvKiAhU1ZSNCAqLworCX0KKwlyZXR1cm4gMDsKK30KKworCisjaWZkZWYgQUxQSEEKK2ludAorc3lzX29zZl9nZXR0aW1lb2ZkYXkodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChleGl0aW5nKHRjcCkpIHsKKwlpZiAoc3lzZXJyb3IodGNwKSkgeworCSAgICB0cHJpbnRmKCIlI2x4LCAlI2x4IiwKKwkJICAgIHRjcC0+dV9hcmdbMF0sIHRjcC0+dV9hcmdbMV0pOworCSAgICByZXR1cm4gMDsKKwl9CisJcHJpbnR0dl9iaXRuZXNzKHRjcCwgdGNwLT51X2FyZ1swXSwgQklUTkVTU18zMik7CisjaWZuZGVmIFNWUjQKKwl0cHJpbnRmKCIsICIpOworCXByaW50dHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbMV0sIEJJVE5FU1NfMzIpOworI2VuZGlmIC8qICFTVlI0ICovCisgICAgfQorICAgIHJldHVybiAwOworfQorI2VuZGlmCisKK2ludAorc3lzX3NldHRpbWVvZmRheSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMF0pOworI2lmbmRlZiBTVlI0CisJCXRwcmludGYoIiwgIik7CisJCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKyNlbmRpZiAvKiAhU1ZSNCAqLworCX0KKwlyZXR1cm4gMDsKK30KKworI2lmZGVmIEFMUEhBCitpbnQKK3N5c19vc2Zfc2V0dGltZW9mZGF5KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXByaW50dHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbMF0sIEJJVE5FU1NfMzIpOworI2lmbmRlZiBTVlI0CisJdHByaW50ZigiLCAiKTsKKwlwcmludHR2X2JpdG5lc3ModGNwLCB0Y3AtPnVfYXJnWzFdLCBCSVRORVNTXzMyKTsKKyNlbmRpZiAvKiAhU1ZSNCAqLworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCitpbnQKK3N5c19hZGp0aW1lKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1swXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UKKwkJCXByaW50dHYodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCB3aGljaFtdID0geworCXsgSVRJTUVSX1JFQUwsCSJJVElNRVJfUkVBTCIJfSwKKwl7IElUSU1FUl9WSVJUVUFMLCJJVElNRVJfVklSVFVBTCJ9LAorCXsgSVRJTUVSX1BST0YsCSJJVElNRVJfUFJPRiIJfSwKKwl7IDAsCQlOVUxMCQl9LAorfTsKKworc3RhdGljIHZvaWQKK3ByaW50aXR2X2JpdG5lc3Moc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIsIGVudW0gYml0bmVzc190IGJpdG5lc3MpCit7CisJaWYgKGFkZHIgPT0gMCkKKwkJdHByaW50ZigiTlVMTCIpOworCWVsc2UgaWYgKCF2ZXJib3NlKHRjcCkpCisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwllbHNlCisJeworCQlpbnQgICAgIHJjOworCisJCWlmIChiaXRuZXNzID09IEJJVE5FU1NfMzIKKyNpZiBkZWZpbmVkKExJTlVYKSAmJiBTVVBQT1JURURfUEVSU09OQUxJVElFUyA+IDEKKwkJICAgIHx8IHBlcnNvbmFsaXR5X3dvcmRzaXplW2N1cnJlbnRfcGVyc29uYWxpdHldID09IDQKKyNlbmRpZgorCQkJKQorCQl7CisJCQlzdHJ1Y3QKKwkJCXsKKwkJCQlzdHJ1Y3QgdGltZXZhbDMyIGl0X2ludGVydmFsLCBpdF92YWx1ZTsKKwkJCX0gaXR2OworCisJCQlpZiAoKHJjID0gdW1vdmUodGNwLCBhZGRyLCAmaXR2KSkgPj0gMCkKKwkJCQl0cHJpbnRmKCJ7aXRfaW50ZXJ2YWw9Iik7CisJCQkJdHByaW50X3RpbWV2YWwzMih0Y3AsICZpdHYuaXRfaW50ZXJ2YWwpOworCQkJCXRwcmludGYoIiwgaXRfdmFsdWU9Iik7CisJCQkJdHByaW50X3RpbWV2YWwzMih0Y3AsICZpdHYuaXRfdmFsdWUpOworCQkJCXRwcmludGYoIn0iKTsKKwkJfSBlbHNlCisJCXsKKwkJCXN0cnVjdCBpdGltZXJ2YWwgaXR2OworCisJCQlpZiAoKHJjID0gdW1vdmUodGNwLCBhZGRyLCAmaXR2KSkgPj0gMCkKKwkJCQl0cHJpbnRmKCJ7aXRfaW50ZXJ2YWw9Iik7CisJCQkJdHByaW50X3RpbWV2YWwodGNwLCAmaXR2Lml0X2ludGVydmFsKTsKKwkJCQl0cHJpbnRmKCIsIGl0X3ZhbHVlPSIpOworCQkJCXRwcmludF90aW1ldmFsKHRjcCwgJml0di5pdF92YWx1ZSk7CisJCQkJdHByaW50ZigifSIpOworCQl9CisKKwkJaWYgKHJjIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJfQorfQorCisjZGVmaW5lIHByaW50aXR2KHRjcCwgYWRkcikJXAorCXByaW50aXR2X2JpdG5lc3MoKHRjcCksIChhZGRyKSwgQklUTkVTU19DVVJSRU5UKQorCitpbnQKK3N5c19nZXRpdGltZXIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbCh3aGljaCwgdGNwLT51X2FyZ1swXSwgIklUSU1FUl8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZQorCQkJcHJpbnRpdHYodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKworI2lmZGVmIEFMUEhBCitpbnQKK3N5c19vc2ZfZ2V0aXRpbWVyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKyAgICBpZiAoZW50ZXJpbmcodGNwKSkgeworCXByaW50eHZhbCh3aGljaCwgdGNwLT51X2FyZ1swXSwgIklUSU1FUl8/Pz8iKTsKKwl0cHJpbnRmKCIsICIpOworICAgIH0gZWxzZSB7CisJaWYgKHN5c2Vycm9yKHRjcCkpCisJICAgIHRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwllbHNlCisJICAgIHByaW50aXR2X2JpdG5lc3ModGNwLCB0Y3AtPnVfYXJnWzFdLCBCSVRORVNTXzMyKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50CitzeXNfc2V0aXRpbWVyKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwod2hpY2gsIHRjcC0+dV9hcmdbMF0sICJJVElNRVJfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50aXR2KHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJCXRwcmludGYoIiwgIik7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1syXSk7CisJCWVsc2UKKwkJCXByaW50aXR2KHRjcCwgdGNwLT51X2FyZ1syXSk7CisJfQorCXJldHVybiAwOworfQorCisjaWZkZWYgQUxQSEEKK2ludAorc3lzX29zZl9zZXRpdGltZXIodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworICAgIGlmIChlbnRlcmluZyh0Y3ApKSB7CisJcHJpbnR4dmFsKHdoaWNoLCB0Y3AtPnVfYXJnWzBdLCAiSVRJTUVSXz8/PyIpOworCXRwcmludGYoIiwgIik7CisJcHJpbnRpdHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbMV0sIEJJVE5FU1NfMzIpOworCXRwcmludGYoIiwgIik7CisgICAgfSBlbHNlIHsKKwlpZiAoc3lzZXJyb3IodGNwKSkKKwkgICAgdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbMl0pOworCWVsc2UKKwkgICAgcHJpbnRpdHZfYml0bmVzcyh0Y3AsIHRjcC0+dV9hcmdbMl0sIEJJVE5FU1NfMzIpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWZkZWYgTElOVVgKKworc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IGFkanRpbWV4X21vZGVzW10gPSB7CisgIHsgMCwgIjAiIH0sCisjaWZkZWYgQURKX09GRlNFVAorICB7IEFESl9PRkZTRVQsICJBREpfT0ZGU0VUIiB9LAorI2VuZGlmCisjaWZkZWYgQURKX0ZSRVFVRU5DWQorICB7IEFESl9GUkVRVUVOQ1ksICJBREpfRlJFUVVFTkNZIiB9LAorI2VuZGlmCisjaWZkZWYgQURKX01BWEVSUk9SCisgIHsgQURKX01BWEVSUk9SLCAiQURKX01BWEVSUk9SIiB9LAorI2VuZGlmCisjaWZkZWYgQURKX0VTVEVSUk9SCisgIHsgQURKX0VTVEVSUk9SLCAiQURKX0VTVEVSUk9SIiB9LAorI2VuZGlmCisjaWZkZWYgQURKX1NUQVRVUworICB7IEFESl9TVEFUVVMsICJBREpfU1RBVFVTIiB9LAorI2VuZGlmCisjaWZkZWYgQURKX1RJTUVDT05TVAorICB7IEFESl9USU1FQ09OU1QsICJBREpfVElNRUNPTlNUIiB9LAorI2VuZGlmCisjaWZkZWYgQURKX1RJQ0sKKyAgeyBBREpfVElDSywgIkFESl9USUNLIiB9LAorI2VuZGlmCisjaWZkZWYgQURKX09GRlNFVF9TSU5HTEVTSE9UCisgIHsgQURKX09GRlNFVF9TSU5HTEVTSE9ULCAiQURKX09GRlNFVF9TSU5HTEVTSE9UIiB9LAorI2VuZGlmCisgIHsgMCwgICAgICAgICAgICAgTlVMTCB9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYWRqdGltZXhfc3RhdHVzW10gPSB7CisjaWZkZWYgU1RBX1BMTAorICB7IFNUQV9QTEwsICJTVEFfUExMIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX1BQU0ZSRVEKKyAgeyBTVEFfUFBTRlJFUSwgIlNUQV9QUFNGUkVRIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX1BQU1RJTUUKKyAgeyBTVEFfUFBTVElNRSwgIlNUQV9QUFNUSU1FIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX0ZMTAorICB7IFNUQV9GTEwsICJTVEFfRkxMIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX0lOUworICB7IFNUQV9JTlMsICJTVEFfSU5TIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX0RFTAorICB7IFNUQV9ERUwsICJTVEFfREVMIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX1VOU1lOQworICB7IFNUQV9VTlNZTkMsICJTVEFfVU5TWU5DIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX0ZSRVFIT0xECisgIHsgU1RBX0ZSRVFIT0xELCAiU1RBX0ZSRVFIT0xEIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX1BQU1NJR05BTAorICB7IFNUQV9QUFNTSUdOQUwsICJTVEFfUFBTU0lHTkFMIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX1BQU0pJVFRFUgorICB7IFNUQV9QUFNKSVRURVIsICJTVEFfUFBTSklUVEVSIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX1BQU1dBTkRFUgorICB7IFNUQV9QUFNXQU5ERVIsICJTVEFfUFBTV0FOREVSIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX1BQU0VSUk9SCisgIHsgU1RBX1BQU0VSUk9SLCAiU1RBX1BQU0VSUk9SIiB9LAorI2VuZGlmCisjaWZkZWYgU1RBX0NMT0NLRVJSCisgIHsgU1RBX0NMT0NLRVJSLCAiU1RBX0NMT0NLRVJSIiB9LAorI2VuZGlmCisgIHsgMCwgICAgICAgICAgICAgTlVMTCB9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgYWRqdGltZXhfc3RhdGVbXSA9IHsKKyNpZmRlZiBUSU1FX09LCisgIHsgVElNRV9PSywgIlRJTUVfT0siIH0sCisjZW5kaWYKKyNpZmRlZiBUSU1FX0lOUworICB7IFRJTUVfSU5TLCAiVElNRV9JTlMiIH0sCisjZW5kaWYKKyNpZmRlZiBUSU1FX0RFTAorICB7IFRJTUVfREVMLCAiVElNRV9ERUwiIH0sCisjZW5kaWYKKyNpZmRlZiBUSU1FX09PUAorICB7IFRJTUVfT09QLCAiVElNRV9PT1AiIH0sCisjZW5kaWYKKyNpZmRlZiBUSU1FX1dBSVQKKyAgeyBUSU1FX1dBSVQsICJUSU1FX1dBSVQiIH0sCisjZW5kaWYKKyNpZmRlZiBUSU1FX0VSUk9SCisgIHsgVElNRV9FUlJPUiwgIlRJTUVfRVJST1IiIH0sCisjZW5kaWYKKyAgeyAwLCAgICAgICAgICAgICBOVUxMIH0KK307CisKK2ludAorc3lzX2FkanRpbWV4KHN0cnVjdCB0Y2IgKnRjcCkKK3sKKwlzdHJ1Y3QgdGltZXggdHg7CisKKwlpZiAoZXhpdGluZyh0Y3ApKSB7CisJCWlmICh0Y3AtPnVfYXJnWzBdID09IDApCisJCQl0cHJpbnRmKCJOVUxMIik7CisJCWVsc2UgaWYgKHN5c2Vycm9yKHRjcCkgfHwgIXZlcmJvc2UodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzBdKTsKKwkJZWxzZSBpZiAodW1vdmUodGNwLCB0Y3AtPnVfYXJnWzBdLCAmdHgpIDwgMCkKKwkJCXRwcmludGYoInsuLi59Iik7CisJCWVsc2UgeworI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IDY2MzMyCisJCQl0cHJpbnRmKCJ7bW9kZT0lZCwgb2Zmc2V0PSVsZCwgZnJlcXVlbmN5PSVsZCwgIiwKKwkJCQl0eC5tb2RlLCB0eC5vZmZzZXQsIHR4LmZyZXF1ZW5jeSk7CisJCQl0cHJpbnRmKCJtYXhlcnJvcj0lbGQsIGVzdGVycm9yPSVsdSwgc3RhdHVzPSV1LCAiLAorCQkJCXR4Lm1heGVycm9yLCB0eC5lc3RlcnJvciwgdHguc3RhdHVzKTsKKwkJCXRwcmludGYoInRpbWVfY29uc3RhbnQ9JWxkLCBwcmVjaXNpb249JWx1LCAiLAorCQkJCXR4LnRpbWVfY29uc3RhbnQsIHR4LnByZWNpc2lvbik7CisJCQl0cHJpbnRmKCJ0b2xlcmFuY2U9JWxkLCB0aW1lPSIsIHR4LnRvbGVyYW5jZSk7CisJCQl0cHJpbnRfdGltZXZhbCh0Y3AsICZ0eC50aW1lKTsKKyNlbHNlCisJCQl0cHJpbnRmKCJ7bW9kZXM9Iik7CisJCQlwcmludHh2YWwoYWRqdGltZXhfbW9kZXMsIHR4Lm1vZGVzLCAiQURKXz8/PyIpOworCQkJdHByaW50ZigiLCBvZmZzZXQ9JWxkLCBmcmVxPSVsZCwgbWF4ZXJyb3I9JWxkLCAiLAorCQkJCXR4Lm9mZnNldCwgdHguZnJlcSwgdHgubWF4ZXJyb3IpOworCQkJdHByaW50ZigiZXN0ZXJyb3I9JWx1LCBzdGF0dXM9IiwgdHguZXN0ZXJyb3IpOworCQkJcHJpbnRmbGFncyhhZGp0aW1leF9zdGF0dXMsIHR4LnN0YXR1cywgIlNUQV8/Pz8iKTsKKwkJCXRwcmludGYoIiwgY29uc3RhbnQ9JWxkLCBwcmVjaXNpb249JWx1LCAiLAorCQkJCXR4LmNvbnN0YW50LCB0eC5wcmVjaXNpb24pOworCQkJdHByaW50ZigidG9sZXJhbmNlPSVsZCwgdGltZT0iLCB0eC50b2xlcmFuY2UpOworCQkJdHByaW50X3RpbWV2YWwodGNwLCAmdHgudGltZSk7CisJCQl0cHJpbnRmKCIsIHRpY2s9JWxkLCBwcHNmcmVxPSVsZCwgaml0dGVyPSVsZCIsCisJCQkJdHgudGljaywgdHgucHBzZnJlcSwgdHguaml0dGVyKTsKKwkJCXRwcmludGYoIiwgc2hpZnQ9JWQsIHN0YWJpbD0lbGQsIGppdGNudD0lbGQiLAorCQkJCXR4LnNoaWZ0LCB0eC5zdGFiaWwsIHR4LmppdGNudCk7CisJCQl0cHJpbnRmKCIsIGNhbGNudD0lbGQsIGVycmNudD0lbGQsIHN0YmNudD0lbGQiLAorCQkJCXR4LmNhbGNudCwgdHguZXJyY250LCB0eC5zdGJjbnQpOworI2VuZGlmCisJCQl0cHJpbnRmKCJ9Iik7CisJCX0KKwkJdGNwLT5hdXhzdHIgPSB4bG9va3VwKGFkanRpbWV4X3N0YXRlLCB0Y3AtPnVfcnZhbCk7CisJCWlmICh0Y3AtPmF1eHN0cikKKwkJCXJldHVybiBSVkFMX1NUUjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeGxhdCBjbG9ja2ZsYWdzW10gPSB7CisgIHsgVElNRVJfQUJTVElNRSwgIlRJTUVSX0FCU1RJTUUiIH0sCisgIHsgMCwgICAgICAgICAgICAgTlVMTCB9Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHhsYXQgY2xvY2tuYW1lc1tdID0geworI2lmZGVmIENMT0NLX1JFQUxUSU1FCisgIHsgQ0xPQ0tfUkVBTFRJTUUsICJDTE9DS19SRUFMVElNRSIgfSwKKyNlbmRpZgorI2lmZGVmIENMT0NLX01PTk9UT05JQworICB7IENMT0NLX01PTk9UT05JQywgIkNMT0NLX01PTk9UT05JQyIgfSwKKyNlbmRpZgorICB7IDAsICAgICAgICAgICAgIE5VTEwgfQorfTsKKworaW50CitzeXNfY2xvY2tfc2V0dGltZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKGNsb2NrbmFtZXMsIHRjcC0+dV9hcmdbMF0sICJDTE9DS18/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfY2xvY2tfZ2V0dGltZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJcHJpbnR4dmFsKGNsb2NrbmFtZXMsIHRjcC0+dV9hcmdbMF0sICJDTE9DS18/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgeworCQlpZiAoc3lzZXJyb3IodGNwKSkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzFdKTsKKwkJZWxzZQorCQkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMV0pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfY2xvY2tfbmFub3NsZWVwKHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKwlpZiAoZW50ZXJpbmcodGNwKSkgeworCQlwcmludHh2YWwoY2xvY2tuYW1lcywgdGNwLT51X2FyZ1swXSwgIkNMT0NLXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGZsYWdzKGNsb2NrZmxhZ3MsIHRjcC0+dV9hcmdbMV0sICJUSU1FUl8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJcHJpbnR0dih0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbM10pOworCQllbHNlCisJCQlwcmludHR2KHRjcCwgdGNwLT51X2FyZ1szXSk7CisJfQorCXJldHVybiAwOworfQorCisjaWZuZGVmIFNJR0VWX1RIUkVBRF9JRAorIyBkZWZpbmUgU0lHRVZfVEhSRUFEX0lEIDQKKyNlbmRpZgorc3RhdGljIGNvbnN0IHN0cnVjdCB4bGF0IHNpZ2V2X3ZhbHVlW10gPSB7CisJeyBTSUdFVl9TSUdOQUwrMSwgIlNJR0VWX1NJR05BTCIgfSwKKwl7IFNJR0VWX05PTkUrMSwgIlNJR0VWX05PTkUiIH0sCisJeyBTSUdFVl9USFJFQUQrMSwgIlNJR0VWX1RIUkVBRCIgfSwKKwl7IFNJR0VWX1RIUkVBRF9JRCsxLCAiU0lHRVZfVEhSRUFEX0lEIiB9LAorCXsgMCwgTlVMTCB9Cit9OworCit2b2lkCitwcmludHNpZ2V2ZW50KHRjcCwgYXJnKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhcmc7Cit7CisJc3RydWN0IHNpZ2V2ZW50IHNldjsKKwlpZiAodW1vdmUgKHRjcCwgYXJnLCAmc2V2KSA8IDApCisJCXRwcmludGYoInsuLi59Iik7CisJZWxzZSB7CisJCXRwcmludGYoInslcCwgIiwgc2V2LnNpZ2V2X3ZhbHVlLnNpdmFsX3B0cik7CisJCWlmIChzZXYuc2lnZXZfbm90aWZ5ID09IFNJR0VWX1NJR05BTCkKKwkJCXRwcmludGYoIiVzLCAiLCBzaWduYW1lKHNldi5zaWdldl9zaWdubykpOworCQllbHNlCisJCQl0cHJpbnRmKCIldSwgIiwgc2V2LnNpZ2V2X3NpZ25vKTsKKwkJcHJpbnR4dmFsKHNpZ2V2X3ZhbHVlLCBzZXYuc2lnZXZfbm90aWZ5KzEsICJTSUdFVl8/Pz8iKTsKKwkJdHByaW50ZigiLCAiKTsKKwkJaWYgKHNldi5zaWdldl9ub3RpZnkgPT0gU0lHRVZfVEhSRUFEX0lEKQorCQkJLyogX3BhZFswXSBpcyB0aGUgX3RpZCBmaWVsZCB3aGljaCBtaWdodCBub3QgYmUKKwkJCSAgIHByZXNlbnQgaW4gdGhlIHVzZXJsZXZlbCBkZWZpbml0aW9uIG9mIHRoZQorCQkJICAgc3RydWN0LiAgKi8KKwkJCXRwcmludGYoInslZH0iLCBzZXYuX3NpZ2V2X3VuLl9wYWRbMF0pOworCQllbHNlIGlmIChzZXYuc2lnZXZfbm90aWZ5ID09IFNJR0VWX1RIUkVBRCkKKwkJCXRwcmludGYoInslcCwgJXB9Iiwgc2V2LnNpZ2V2X25vdGlmeV9mdW5jdGlvbiwKKwkJCQlzZXYuc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXMpOworCQllbHNlCisJCQl0cHJpbnRmKCJ7Li4ufSIpOworCQl0cHJpbnRmKCJ9Iik7CisJfQorfQorCitpbnQKK3N5c190aW1lcl9jcmVhdGUodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCXByaW50eHZhbChjbG9ja25hbWVzLCB0Y3AtPnVfYXJnWzBdLCAiQ0xPQ0tfPz8/Iik7CisJCXRwcmludGYoIiwgIik7CisJCXByaW50c2lnZXZlbnQodGNwLCB0Y3AtPnVfYXJnWzFdKTsKKwkJdHByaW50ZigiLCAiKTsKKwl9IGVsc2UgeworCQl2b2lkICpwOworCisJCWlmIChzeXNlcnJvcih0Y3ApIHx8IHVtb3ZlKHRjcCwgdGNwLT51X2FyZ1syXSwgJnApIDwgMCkKKwkJCXRwcmludGYoIiUjbHgiLCB0Y3AtPnVfYXJnWzJdKTsKKwkJZWxzZQorCQkJdHByaW50ZigieyVwfSIsIHApOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdGltZXJfc2V0dGltZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1swXSk7CisJCXByaW50ZmxhZ3MoY2xvY2tmbGFncywgdGNwLT51X2FyZ1sxXSwgIlRJTUVSXz8/PyIpOworCQl0cHJpbnRmKCIsICIpOworCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbMl0pOworCQl0cHJpbnRmKCIsICIpOworCX0gZWxzZSB7CisJCWlmIChzeXNlcnJvcih0Y3ApKQorCQkJdHByaW50ZigiJSNseCIsIHRjcC0+dV9hcmdbM10pOworCQllbHNlCisJCQlwcmludGl0dih0Y3AsIHRjcC0+dV9hcmdbM10pOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50CitzeXNfdGltZXJfZ2V0dGltZSh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJdHByaW50ZigiJSNseCwgIiwgdGNwLT51X2FyZ1swXSk7CisJfSBlbHNlIHsKKwkJaWYgKHN5c2Vycm9yKHRjcCkpCisJCQl0cHJpbnRmKCIlI2x4IiwgdGNwLT51X2FyZ1sxXSk7CisJCWVsc2UKKwkJCXByaW50aXR2KHRjcCwgdGNwLT51X2FyZ1sxXSk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfcnRjKHRjcCwgcnQpCitzdHJ1Y3QgdGNiICp0Y3A7Citjb25zdCBzdHJ1Y3QgcnRjX3RpbWUgKnJ0OworeworCXRwcmludGYoInt0bV9zZWM9JWQsIHRtX21pbj0lZCwgdG1faG91cj0lZCwgIgorCQkidG1fbWRheT0lZCwgdG1fbW9uPSVkLCB0bV95ZWFyPSVkLCAiLAorCQlydC0+dG1fc2VjLCBydC0+dG1fbWluLCBydC0+dG1faG91ciwKKwkJcnQtPnRtX21kYXksIHJ0LT50bV9tb24sIHJ0LT50bV95ZWFyKTsKKwlpZiAoIWFiYnJldih0Y3ApKQorCQl0cHJpbnRmKCJ0bV93ZGF5PSVkLCB0bV95ZGF5PSVkLCB0bV9pc2RzdD0lZH0iLAorCQkJcnQtPnRtX3dkYXksIHJ0LT50bV95ZGF5LCBydC0+dG1faXNkc3QpOworCWVsc2UKKwkJdHByaW50ZigiLi4ufSIpOworfQorCitpbnQKK3J0Y19pb2N0bCh0Y3AsIGNvZGUsIGFyZykKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgY29kZTsKK2xvbmcgYXJnOworeworCXN3aXRjaCAoY29kZSkgeworCWNhc2UgUlRDX0FMTV9TRVQ6CisJY2FzZSBSVENfU0VUX1RJTUU6CisJCWlmIChlbnRlcmluZyh0Y3ApKSB7CisJCQlzdHJ1Y3QgcnRjX3RpbWUgcnQ7CisJCQlpZiAodW1vdmUodGNwLCBhcmcsICZydCkgPCAwKQorCQkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7CisJCQllbHNlIHsKKwkJCQl0cHJpbnRmKCIsICIpOworCQkJCXByaW50X3J0Yyh0Y3AsICZydCk7CisJCQl9CisJCX0KKwkJYnJlYWs7CisJY2FzZSBSVENfQUxNX1JFQUQ6CisJY2FzZSBSVENfUkRfVElNRToKKwkJaWYgKGV4aXRpbmcodGNwKSkgeworCQkJc3RydWN0IHJ0Y190aW1lIHJ0OworCQkJaWYgKHN5c2Vycm9yKHRjcCkgfHwgdW1vdmUodGNwLCBhcmcsICZydCkgPCAwKQorCQkJCXRwcmludGYoIiwgJSNseCIsIGFyZyk7CisJCQllbHNlIHsKKwkJCQl0cHJpbnRmKCIsICIpOworCQkJCXByaW50X3J0Yyh0Y3AsICZydCk7CisJCQl9CisJCX0KKwkJYnJlYWs7CisJY2FzZSBSVENfSVJRUF9TRVQ6CisJY2FzZSBSVENfRVBPQ0hfU0VUOgorCQlpZiAoZW50ZXJpbmcodGNwKSkKKwkJCXRwcmludGYoIiwgJWx1IiwgYXJnKTsKKwkJYnJlYWs7CisJY2FzZSBSVENfSVJRUF9SRUFEOgorCWNhc2UgUlRDX0VQT0NIX1JFQUQ6CisJCWlmIChleGl0aW5nKHRjcCkpCisJCQl0cHJpbnRmKCIsICVsdSIsIGFyZyk7CisJCWJyZWFrOworCWNhc2UgUlRDX1dLQUxNX1NFVDoKKwkJaWYgKGVudGVyaW5nKHRjcCkpIHsKKwkJCXN0cnVjdCBydGNfd2thbHJtIHdrOworCQkJaWYgKHVtb3ZlKHRjcCwgYXJnLCAmd2spIDwgMCkKKwkJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQkJZWxzZSB7CisJCQkJdHByaW50ZigiLCB7ZW5hYmxlZD0lZCwgcGVuZGluZz0lZCwgIiwKKwkJCQkJd2suZW5hYmxlZCwgd2sucGVuZGluZyk7CisJCQkJcHJpbnRfcnRjKHRjcCwgJndrLnRpbWUpOworCQkJCXRwcmludGYoIn0iKTsKKwkJCX0KKwkJfQorCQlicmVhazsKKwljYXNlIFJUQ19XS0FMTV9SRDoKKwkJaWYgKGV4aXRpbmcodGNwKSkgeworCQkJc3RydWN0IHJ0Y193a2Fscm0gd2s7CisJCQlpZiAoc3lzZXJyb3IodGNwKSB8fCB1bW92ZSh0Y3AsIGFyZywgJndrKSA8IDApCisJCQkJdHByaW50ZigiLCAlI2x4IiwgYXJnKTsKKwkJCWVsc2UgeworCQkJCXRwcmludGYoIiwge2VuYWJsZWQ9JWQsIHBlbmRpbmc9JWQsICIsCisJCQkJCXdrLmVuYWJsZWQsIHdrLnBlbmRpbmcpOworCQkJCXByaW50X3J0Yyh0Y3AsICZ3ay50aW1lKTsKKwkJCQl0cHJpbnRmKCJ9Iik7CisJCQl9CisJCX0KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJaWYgKGVudGVyaW5nKHRjcCkpCisJCQl0cHJpbnRmKCIsICUjbHgiLCBhcmcpOworCQlicmVhazsKKwl9CisJcmV0dXJuIDE7Cit9CisjZW5kaWYgLyogTElOVVggKi8KZGlmZiAtLWdpdCBhL3V0aWwuYyBiL3V0aWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWI0ODQxCi0tLSAvZGV2L251bGwKKysrIGIvdXRpbC5jCkBAIC0wLDAgKzEsMjEyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMTk5MSwgMTk5MiBQYXVsIEtyYW5lbmJ1cmcgPHBrQGNzLmZldy5ldXIubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMgQnJhbmtvIExhbmtlc3RlciA8YnJhbmtvQGhhY2t0aWMubmw+CisgKiBDb3B5cmlnaHQgKGMpIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYgUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMTk5Ni0xOTk5IFdpY2hlcnQgQWtrZXJtYW4gPHdpY2hlcnRAY2lzdHJvbi5ubD4KKyAqIENvcHlyaWdodCAoYykgMTk5OSBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwgSUJNIENvcnBvcmF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgIExpbnV4IGZvciBzMzkwIHBvcnQgYnkgRC5KLiBCYXJyb3cKKyAqICAgICAgICAgICAgICAgICAgICA8YmFycm93X2RqQG1haWwueWFob28uY29tLGRqYmFycm93QGRlLmlibS5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKKyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICoJJElkOiB1dGlsLmMsdiAxLjYyIDIwMDUvMDYvMDggMjA6NDU6Mjggcm9sYW5kIEV4cCAkCisgKi8KKworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICIuLi9zeXNjYWxsLWFuZHJvaWQuaCIKKworI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaWZuZGVmIEhBVkVfQU5EUk9JRF9PUworI2luY2x1ZGUgPHN5cy91c2VyLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2lmIEhBVkVfU1lTX1VJT19ICisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2VuZGlmCisjaWZkZWYgU1VOT1M0CisjaW5jbHVkZSA8bWFjaGluZS9yZWcuaD4KKyNpbmNsdWRlIDxhLm91dC5oPgorI2luY2x1ZGUgPGxpbmsuaD4KKyNlbmRpZiAvKiBTVU5PUzQgKi8KKworI2lmIGRlZmluZWQobGludXgpICYmIChfX0dMSUJDX18gPCAyIHx8IChfX0dMSUJDX18gPT0gMiAmJiBfX0dMSUJDX01JTk9SX18gPCAxKSkKKyNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChMSU5VWCkgJiYgZGVmaW5lZChJQTY0KQorIyBpbmNsdWRlIDxhc20vcHRyYWNlX29mZnNldHMuaD4KKyMgaW5jbHVkZSA8YXNtL3JzZS5oPgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1NZU19SRUdfSAorI2luY2x1ZGUgPHN5cy9yZWcuaD4KKyMgZGVmaW5lIFBUUkFDRV9QRUVLVVNSIFBUUkFDRV9QRUVLVVNFUgorI2VsaWYgZGVmaW5lZChIQVZFX0xJTlVYX1BUUkFDRV9IKQorI3VuZGVmIFBUUkFDRV9TWVNDQUxMCisjIGlmZGVmIEhBVkVfU1RSVUNUX0lBNjRfRlBSRUcKKyMgIGRlZmluZSBpYTY0X2ZwcmVnIFhYWF9pYTY0X2ZwcmVnCisjIGVuZGlmCisjIGlmZGVmIEhBVkVfU1RSVUNUX1BUX0FMTF9VU0VSX1JFR1MKKyMgIGRlZmluZSBwdF9hbGxfdXNlcl9yZWdzIFhYWF9wdF9hbGxfdXNlcl9yZWdzCisjIGVuZGlmCisjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CisjIHVuZGVmIGlhNjRfZnByZWcKKyMgdW5kZWYgcHRfYWxsX3VzZXJfcmVncworI2VuZGlmCisKKyNpZmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFCisjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4KKyNlbmRpZiAvKiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFICovCisKKyNpZiBkZWZpbmVkKExJTlVYU1BBUkMpCisKKyMgZGVmaW5lIGZwcSBrZXJuZWxfZnBxCisjIGRlZmluZSBmcSBrZXJuZWxfZnEKKyMgZGVmaW5lIGZwdSBrZXJuZWxfZnB1CisjIGluY2x1ZGUgPGFzbS9yZWcuaD4KKyMgdW5kZWYgZnBxCisjIHVuZGVmIGZxCisjIHVuZGVmIGZwdQorCisjaWYgZGVmaW5lZCAoU1BBUkM2NCkKKyMgZGVmaW5lIHJfcGMgcl90cGMKKyMgdW5kZWYgUFRSQUNFX0dFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9HRVRSRUdTIFBUUkFDRV9HRVRSRUdTNjQKKyMgdW5kZWYgUFRSQUNFX1NFVFJFR1MKKyMgZGVmaW5lIFBUUkFDRV9TRVRSRUdTIFBUUkFDRV9TRVRSRUdTNjQKKyNlbmRpZiAvKiBTUEFSQzY0ICovCisKKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisKKyNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4KKworI2RlZmluZSBfaGFja19zeXNjYWxsNSh0eXBlLG5hbWUsdHlwZTEsYXJnMSx0eXBlMixhcmcyLHR5cGUzLGFyZzMsdHlwZTQsYXJnNCxcCisgICAgICAgICAgdHlwZTUsYXJnNSxzeXNjYWxsKSBcCit0eXBlIG5hbWUgKHR5cGUxIGFyZzEsdHlwZTIgYXJnMix0eXBlMyBhcmczLHR5cGU0IGFyZzQsdHlwZTUgYXJnNSkgXAoreyBcCisgICAgICBsb25nIF9fcmVzOyBcCitcCitfX2FzbV9fIHZvbGF0aWxlICgib3IgJSVnMCwgJTEsICUlbzBcblx0IiBcCisgICAgICAgICAgICAgICAgICAib3IgJSVnMCwgJTIsICUlbzFcblx0IiBcCisgICAgICAgICAgICAgICAgICAib3IgJSVnMCwgJTMsICUlbzJcblx0IiBcCisgICAgICAgICAgICAgICAgICAib3IgJSVnMCwgJTQsICUlbzNcblx0IiBcCisgICAgICAgICAgICAgICAgICAib3IgJSVnMCwgJTUsICUlbzRcblx0IiBcCisgICAgICAgICAgICAgICAgICAib3IgJSVnMCwgJTYsICUlZzFcblx0IiBcCisjaWYgZGVmaW5lZCAoU1BBUkM2NCkKKyAgICAgICAgICAgICAgICAgICJ0IDB4NmRcblx0IiBcCisjZWxzZQorICAgICAgICAgICAgICAgICAgInQgMHgxMFxuXHQiIFwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgImJjYyAxZlxuXHQiIFwKKyAgICAgICAgICAgICAgICAgICJvciAlJWcwLCAlJW8wLCAlMFxuXHQiIFwKKyAgICAgICAgICAgICAgICAgICJzdWIgJSVnMCwgJSVvMCwgJTBcblx0IiBcCisgICAgICAgICAgICAgICAgICAiMTpcblx0IiBcCisgICAgICAgICAgICAgICAgICA6ICI9ciIgKF9fcmVzKSBcCisgICAgICAgICAgICAgICAgICA6ICIwIiAoKGxvbmcpKGFyZzEpKSwiMSIgKChsb25nKShhcmcyKSksIFwKKyAgICAgICAgICAgICAgICAgICAgIjIiICgobG9uZykoYXJnMykpLCIzIiAoKGxvbmcpKGFyZzQpKSwiNCIgKChsb25nKShhcmc1KSksIFwKKyAgICAgICAgICAgICAgICAgICAgImkiIChfX05SXyMjc3lzY2FsbCkgIFwKKyAgICAgICAgICAgICAgICAgIDogImcxIiwgIm8wIiwgIm8xIiwgIm8yIiwgIm8zIiwgIm80Iik7IFwKK2lmIChfX3Jlcz49MCkgXAorICAgICAgICByZXR1cm4gKHR5cGUpIF9fcmVzOyBcCitlcnJubyA9IC1fX3JlczsgXAorcmV0dXJuIC0xOyBcCit9CisKK3N0YXRpYyBfaGFja19zeXNjYWxsNShpbnQsX3B0cmFjZSxpbnQsX19yZXF1ZXN0LGludCxfX3BpZCxpbnQsX19hZGRyLGludCxfX2RhdGEsaW50LF9fYWRkcjIscHRyYWNlKQorCisjZGVmaW5lIF9wdHJhY2UKKworI2VuZGlmCisKKyNlbmRpZgorCisvKiBtYWNyb3MgKi8KKyNpZm5kZWYgTUFYCisjZGVmaW5lIE1BWChhLGIpCQkoKChhKSA+IChiKSkgPyAoYSkgOiAoYikpCisjZW5kaWYKKyNpZm5kZWYgTUlOCisjZGVmaW5lIE1JTihhLGIpCQkoKChhKSA8IChiKSkgPyAoYSkgOiAoYikpCisjZW5kaWYKKworI2lmIDAKK3ZvaWQKK3R2X3R2KHR2LCBhLCBiKQorc3RydWN0IHRpbWV2YWwgKnR2OworaW50IGE7CitpbnQgYjsKK3sKKwl0di0+dHZfc2VjID0gYTsKKwl0di0+dHZfdXNlYyA9IGI7Cit9CisjZW5kaWYKKworaW50Cit0dl9ueihhKQorc3RydWN0IHRpbWV2YWwgKmE7Cit7CisJcmV0dXJuIGEtPnR2X3NlYyB8fCBhLT50dl91c2VjOworfQorCitpbnQKK3R2X2NtcChhLCBiKQorc3RydWN0IHRpbWV2YWwgKmEsICpiOworeworCWlmIChhLT50dl9zZWMgPCBiLT50dl9zZWMKKwkgICAgfHwgKGEtPnR2X3NlYyA9PSBiLT50dl9zZWMgJiYgYS0+dHZfdXNlYyA8IGItPnR2X3VzZWMpKQorCQlyZXR1cm4gLTE7CisJaWYgKGEtPnR2X3NlYyA+IGItPnR2X3NlYworCSAgICB8fCAoYS0+dHZfc2VjID09IGItPnR2X3NlYyAmJiBhLT50dl91c2VjID4gYi0+dHZfdXNlYykpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitkb3VibGUKK3R2X2Zsb2F0KHR2KQorc3RydWN0IHRpbWV2YWwgKnR2OworeworCXJldHVybiB0di0+dHZfc2VjICsgdHYtPnR2X3VzZWMvMTAwMDAwMC4wOworfQorCit2b2lkCit0dl9hZGQodHYsIGEsIGIpCitzdHJ1Y3QgdGltZXZhbCAqdHYsICphLCAqYjsKK3sKKwl0di0+dHZfc2VjID0gYS0+dHZfc2VjICsgYi0+dHZfc2VjOworCXR2LT50dl91c2VjID0gYS0+dHZfdXNlYyArIGItPnR2X3VzZWM7CisJaWYgKHR2LT50dl91c2VjID4gMTAwMDAwMCkgeworCQl0di0+dHZfc2VjKys7CisJCXR2LT50dl91c2VjIC09IDEwMDAwMDA7CisJfQorfQorCit2b2lkCit0dl9zdWIodHYsIGEsIGIpCitzdHJ1Y3QgdGltZXZhbCAqdHYsICphLCAqYjsKK3sKKwl0di0+dHZfc2VjID0gYS0+dHZfc2VjIC0gYi0+dHZfc2VjOworCXR2LT50dl91c2VjID0gYS0+dHZfdXNlYyAtIGItPnR2X3VzZWM7CisJaWYgKCgobG9uZykgdHYtPnR2X3VzZWMpIDwgMCkgeworCQl0di0+dHZfc2VjLS07CisJCXR2LT50dl91c2VjICs9IDEwMDAwMDA7CisJfQorfQorCit2b2lkCit0dl9kaXYodHYsIGEsIG4pCitzdHJ1Y3QgdGltZXZhbCAqdHYsICphOworaW50IG47Cit7CisJdHYtPnR2X3VzZWMgPSAoYS0+dHZfc2VjICUgbiAqIDEwMDAwMDAgKyBhLT50dl91c2VjICsgbiAvIDIpIC8gbjsKKwl0di0+dHZfc2VjID0gYS0+dHZfc2VjIC8gbiArIHR2LT50dl91c2VjIC8gMTAwMDAwMDsKKwl0di0+dHZfdXNlYyAlPSAxMDAwMDAwOworfQorCit2b2lkCit0dl9tdWwodHYsIGEsIG4pCitzdHJ1Y3QgdGltZXZhbCAqdHYsICphOworaW50IG47Cit7CisJdHYtPnR2X3VzZWMgPSBhLT50dl91c2VjICogbjsKKwl0di0+dHZfc2VjID0gYS0+dHZfc2VjICogbiArIHR2LT50dl91c2VjIC8gMTAwMDAwMDsKKwl0di0+dHZfdXNlYyAlPSAxMDAwMDAwOworfQorCitjaGFyICoKK3hsb29rdXAoeGxhdCwgdmFsKQorY29uc3Qgc3RydWN0IHhsYXQgKnhsYXQ7CitpbnQgdmFsOworeworCWZvciAoOyB4bGF0LT5zdHIgIT0gTlVMTDsgeGxhdCsrKQorCQlpZiAoeGxhdC0+dmFsID09IHZhbCkKKwkJCXJldHVybiB4bGF0LT5zdHI7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBQcmludCBlbnRyeSBpbiBzdHJ1Y3QgeGxhdCB0YWJsZSwgaWYgdGhlcmUuCisgKi8KK3ZvaWQKK3ByaW50eHZhbCh4bGF0LCB2YWwsIGRmbHQpCitjb25zdCBzdHJ1Y3QgeGxhdCAqeGxhdDsKK2ludCB2YWw7Citjb25zdCBjaGFyICpkZmx0OworeworCWNoYXIgKnN0ciA9IHhsb29rdXAoeGxhdCwgdmFsKTsKKworCWlmIChzdHIpCisJCXRwcmludGYoIiVzIiwgc3RyKTsKKwllbHNlCisJCXRwcmludGYoIiUjeCAvKiAlcyAqLyIsIHZhbCwgZGZsdCk7Cit9CisKKy8qCisgKiBJbnRlcnByZXQgYHhsYXQnIGFzIGFuIGFycmF5IG9mIGZsYWdzCisgKiBwcmludCB0aGUgZW50cmllcyB3aG9zZSBiaXRzIGFyZSBvbiBpbiBgZmxhZ3MnCisgKiByZXR1cm4gIyBvZiBmbGFncyBwcmludGVkLgorICovCitpbnQKK2FkZGZsYWdzKHhsYXQsIGZsYWdzKQorY29uc3Qgc3RydWN0IHhsYXQgKnhsYXQ7CitpbnQgZmxhZ3M7Cit7CisJaW50IG47CisKKwlmb3IgKG4gPSAwOyB4bGF0LT5zdHI7IHhsYXQrKykgeworCQlpZiAoeGxhdC0+dmFsICYmIChmbGFncyAmIHhsYXQtPnZhbCkgPT0geGxhdC0+dmFsKSB7CisJCQl0cHJpbnRmKCJ8JXMiLCB4bGF0LT5zdHIpOworCQkJZmxhZ3MgJj0gfnhsYXQtPnZhbDsKKwkJCW4rKzsKKwkJfQorCX0KKwlpZiAoZmxhZ3MpIHsKKwkJdHByaW50ZigifCUjeCIsIGZsYWdzKTsKKwkJbisrOworCX0KKwlyZXR1cm4gbjsKK30KKworaW50CitwcmludGZsYWdzKHhsYXQsIGZsYWdzLCBkZmx0KQorY29uc3Qgc3RydWN0IHhsYXQgKnhsYXQ7CitpbnQgZmxhZ3M7Citjb25zdCBjaGFyICpkZmx0OworeworCWludCBuOworCWNoYXIgKnNlcDsKKworCWlmIChmbGFncyA9PSAwICYmIHhsYXQtPnZhbCA9PSAwKSB7CisJCXRwcmludGYoIiVzIiwgeGxhdC0+c3RyKTsKKwkJcmV0dXJuIDE7CisJfQorCisJc2VwID0gIiI7CisJZm9yIChuID0gMDsgeGxhdC0+c3RyOyB4bGF0KyspIHsKKwkJaWYgKHhsYXQtPnZhbCAmJiAoZmxhZ3MgJiB4bGF0LT52YWwpID09IHhsYXQtPnZhbCkgeworCQkJdHByaW50ZigiJXMlcyIsIHNlcCwgeGxhdC0+c3RyKTsKKwkJCWZsYWdzICY9IH54bGF0LT52YWw7CisJCQlzZXAgPSAifCI7CisJCQluKys7CisJCX0KKwl9CisKKwlpZiAobikgeworCQlpZiAoZmxhZ3MpIHsKKwkJCXRwcmludGYoIiVzJSN4Iiwgc2VwLCBmbGFncyk7CisJCQluKys7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoZmxhZ3MpIHsKKwkJCXRwcmludGYoIiUjeCIsIGZsYWdzKTsKKwkJCWlmIChkZmx0KQorCQkJCXRwcmludGYoIiAvKiAlcyAqLyIsIGRmbHQpOworCQl9IGVsc2UgeworCQkJaWYgKGRmbHQpCisJCQkJdHByaW50ZigiMCIpOworCQl9CisJfQorCisJcmV0dXJuIG47Cit9CisKK3ZvaWQKK3ByaW50bnVtKHRjcCwgYWRkciwgZm10KQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworY2hhciAqZm10OworeworCWxvbmcgbnVtOworCisJaWYgKCFhZGRyKSB7CisJCXRwcmludGYoIk5VTEwiKTsKKwkJcmV0dXJuOworCX0KKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmbnVtKSA8IDApIHsKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlsiKTsKKwl0cHJpbnRmKGZtdCwgbnVtKTsKKwl0cHJpbnRmKCJdIik7Cit9CisKK3ZvaWQKK3ByaW50bnVtX2ludCh0Y3AsIGFkZHIsIGZtdCkKK3N0cnVjdCB0Y2IgKnRjcDsKK2xvbmcgYWRkcjsKK2NoYXIgKmZtdDsKK3sKKwlpbnQgbnVtOworCisJaWYgKCFhZGRyKSB7CisJCXRwcmludGYoIk5VTEwiKTsKKwkJcmV0dXJuOworCX0KKwlpZiAodW1vdmUodGNwLCBhZGRyLCAmbnVtKSA8IDApIHsKKwkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlsiKTsKKwl0cHJpbnRmKGZtdCwgbnVtKTsKKwl0cHJpbnRmKCJdIik7Cit9CisKK3ZvaWQKK3ByaW50dWlkKHRleHQsIHVpZCkKK2NvbnN0IGNoYXIgKnRleHQ7Cit1bnNpZ25lZCBsb25nIHVpZDsKK3sKKwl0cHJpbnRmKCIlcyIsIHRleHQpOworCXRwcmludGYoKHVpZCA9PSAtMSkgPyAiJWxkIiA6ICIlbHUiLCB1aWQpOworfQorCitzdGF0aWMgY2hhciBwYXRoW01BWFBBVEhMRU4gKyAxXTsKKworc3RhdGljIHZvaWQKK3N0cmluZ19xdW90ZShjb25zdCBjaGFyICppbnN0ciwgY2hhciAqb3V0c3RyLCBpbnQgbGVuLCBpbnQgc2l6ZSkKK3sKKwljb25zdCB1bnNpZ25lZCBjaGFyICp1c3RyID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgaW5zdHI7CisJY2hhciAqcyA9IG91dHN0cjsKKwlpbnQgdXNlaGV4ID0gMCwgYywgaTsKKworCWlmICh4ZmxhZyA+IDEpCisJCXVzZWhleCA9IDE7CisJZWxzZSBpZiAoeGZsYWcpIHsKKwkJZm9yIChpID0gMDsgaSA8IHNpemU7ICsraSkgeworCQkJYyA9IHVzdHJbaV07CisJCQlpZiAobGVuIDwgMCAmJiBjID09ICdcMCcpCisJCQkJYnJlYWs7CisJCQlpZiAoIWlzcHJpbnQoYykgJiYgIWlzc3BhY2UoYykpIHsKKwkJCQl1c2VoZXggPSAxOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJKnMrKyA9ICdcIic7CisKKwlpZiAodXNlaGV4KSB7CisJCWZvciAoaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKwkJCWMgPSB1c3RyW2ldOworCQkJaWYgKGxlbiA8IDAgJiYgYyA9PSAnXDAnKQorCQkJCWJyZWFrOworCQkJc3ByaW50ZihzLCAiXFx4JTAyeCIsIGMpOworCQkJcyArPSA0OworCQl9CisJfSBlbHNlIHsKKwkJZm9yIChpID0gMDsgaSA8IHNpemU7ICsraSkgeworCQkJYyA9IHVzdHJbaV07CisJCQlpZiAobGVuIDwgMCAmJiBjID09ICdcMCcpCisJCQkJYnJlYWs7CisJCQlzd2l0Y2ggKGMpIHsKKwkJCQljYXNlICdcIic6IGNhc2UgJ1xcJzoKKwkJCQkJKnMrKyA9ICdcXCc7CisJCQkJCSpzKysgPSBjOworCQkJCQlicmVhazsKKwkJCQljYXNlICdcZic6CisJCQkJCSpzKysgPSAnXFwnOworCQkJCQkqcysrID0gJ2YnOworCQkJCQlicmVhazsKKwkJCQljYXNlICdcbic6CisJCQkJCSpzKysgPSAnXFwnOworCQkJCQkqcysrID0gJ24nOworCQkJCQlicmVhazsKKwkJCQljYXNlICdccic6CisJCQkJCSpzKysgPSAnXFwnOworCQkJCQkqcysrID0gJ3InOworCQkJCQlicmVhazsKKwkJCQljYXNlICdcdCc6CisJCQkJCSpzKysgPSAnXFwnOworCQkJCQkqcysrID0gJ3QnOworCQkJCQlicmVhazsKKwkJCQljYXNlICdcdic6CisJCQkJCSpzKysgPSAnXFwnOworCQkJCQkqcysrID0gJ3YnOworCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0OgorCQkJCQlpZiAoaXNwcmludChjKSkKKwkJCQkJCSpzKysgPSBjOworCQkJCQllbHNlIGlmIChpICsgMSA8IHNpemUKKwkJCQkJCSAmJiBpc2RpZ2l0KHVzdHJbaSArIDFdKSkgeworCQkJCQkJc3ByaW50ZihzLCAiXFwlMDNvIiwgYyk7CisJCQkJCQlzICs9IDQ7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlzcHJpbnRmKHMsICJcXCVvIiwgYyk7CisJCQkJCQlzICs9IHN0cmxlbihzKTsKKwkJCQkJfQorCQkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCSpzKysgPSAnXCInOworCSpzID0gJ1wwJzsKK30KKwordm9pZAorcHJpbnRwYXRobihzdHJ1Y3QgdGNiICp0Y3AsIGxvbmcgYWRkciwgaW50IG4pCit7CisJaWYgKG4gPiBzaXplb2YgcGF0aCAtIDEpCisJCW4gPSBzaXplb2YgcGF0aCAtIDE7CisKKwlpZiAoYWRkciA9PSAwKSB7CisJCXRwcmludGYoIk5VTEwiKTsKKwkJcmV0dXJuOworCX0KKworCXBhdGhbbl0gPSAnXDAnOworCWlmICh1bW92ZXN0cih0Y3AsIGFkZHIsIG4gKyAxLCBwYXRoKSA8IDApCisJCXRwcmludGYoIiUjbHgiLCBhZGRyKTsKKwllbHNlIHsKKwkJc3RhdGljIGNoYXIgb3V0c3RyWzQqKHNpemVvZiBwYXRoIC0gMSkgKyBzaXplb2YgIlwiLi4uXCIiXTsKKwkJaW50IHRydW5jID0gKHBhdGhbbl0gIT0gJ1wwJyk7CisKKwkJaWYgKHRydW5jKQorCQkJcGF0aFtuXSA9ICdcMCc7CisJCXN0cmluZ19xdW90ZShwYXRoLCBvdXRzdHIsIC0xLCBuKTsKKwkJaWYgKHRydW5jKQorCQkJc3RyY2F0KG91dHN0ciwgIi4uLiIpOworCQl0cHJpbnRmKCIlcyIsIG91dHN0cik7CisJfQorfQorCit2b2lkCitwcmludHBhdGgoc3RydWN0IHRjYiAqdGNwLCBsb25nIGFkZHIpCit7CisJcHJpbnRwYXRobih0Y3AsIGFkZHIsIHNpemVvZiBwYXRoIC0gMSk7Cit9CisKK3ZvaWQKK3ByaW50c3RyKHN0cnVjdCB0Y2IgKnRjcCwgbG9uZyBhZGRyLCBpbnQgbGVuKQoreworCXN0YXRpYyBjaGFyICpzdHIgPSBOVUxMOworCXN0YXRpYyBjaGFyICpvdXRzdHI7CisJaW50IHNpemUsIHRydW5jOworCisJaWYgKCFhZGRyKSB7CisJCXRwcmludGYoIk5VTEwiKTsKKwkJcmV0dXJuOworCX0KKwlpZiAoIXN0cikgeworCQlpZiAoKHN0ciA9IG1hbGxvYyhtYXhfc3RybGVuICsgMSkpID09IE5VTEwKKwkJICAgIHx8IChvdXRzdHIgPSBtYWxsb2MoNCptYXhfc3RybGVuCisJCQkJCSsgc2l6ZW9mICJcIlwiLi4uIikpID09IE5VTEwpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CisJCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlpZiAobGVuIDwgMCkgeworCQlzaXplID0gbWF4X3N0cmxlbiArIDE7CisJCWlmICh1bW92ZXN0cih0Y3AsIGFkZHIsIHNpemUsIHN0cikgPCAwKSB7CisJCQl0cHJpbnRmKCIlI2x4IiwgYWRkcik7CisJCQlyZXR1cm47CisJCX0KKwl9CisJZWxzZSB7CisJCXNpemUgPSBNSU4obGVuLCBtYXhfc3RybGVuICsgMSk7CisJCWlmICh1bW92ZW4odGNwLCBhZGRyLCBzaXplLCBzdHIpIDwgMCkgeworCQkJdHByaW50ZigiJSNseCIsIGFkZHIpOworCQkJcmV0dXJuOworCQl9CisJfQorCisJdHJ1bmMgPSBzaXplID4gbWF4X3N0cmxlbiAmJiBzdHJbLS1zaXplXSAhPSAwOworCXN0cmluZ19xdW90ZShzdHIsIG91dHN0ciwgbGVuLCBzaXplKTsKKwlpZiAoc2l6ZSA8IGxlbiB8fCAobGVuIDwgMCAmJiB0cnVuYykpCisJCXN0cmNhdChvdXRzdHIsICIuLi4iKTsKKworCXRwcmludGYoIiVzIiwgb3V0c3RyKTsKK30KKworI2lmIEhBVkVfU1lTX1VJT19ICit2b2lkCitkdW1waW92KHRjcCwgbGVuLCBhZGRyKQorc3RydWN0IHRjYiAqIHRjcDsKK2ludCBsZW47Citsb25nIGFkZHI7Cit7CisjaWYgZGVmaW5lZChMSU5VWCkgJiYgU1VQUE9SVEVEX1BFUlNPTkFMSVRJRVMgPiAxCisJdW5pb24geworCQlzdHJ1Y3QgeyB1X2ludDMyX3QgYmFzZTsgdV9pbnQzMl90IGxlbjsgfSAqaW92MzI7CisJCXN0cnVjdCB7IHVfaW50NjRfdCBiYXNlOyB1X2ludDY0X3QgbGVuOyB9ICppb3Y2NDsKKwl9IGlvdnU7CisjZGVmaW5lIGlvdiBpb3Z1LmlvdjY0CisjZGVmaW5lIHNpemVvZl9pb3YgXAorICAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCBcCisgICA/IHNpemVvZigqaW92dS5pb3YzMikgOiBzaXplb2YoKmlvdnUuaW92NjQpKQorI2RlZmluZSBpb3ZfaW92X2Jhc2UoaSkgXAorICAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCBcCisgICA/ICh1X2ludDY0X3QpIGlvdnUuaW92MzJbaV0uYmFzZSA6IGlvdnUuaW92NjRbaV0uYmFzZSkKKyNkZWZpbmUgaW92X2lvdl9sZW4oaSkgXAorICAocGVyc29uYWxpdHlfd29yZHNpemVbY3VycmVudF9wZXJzb25hbGl0eV0gPT0gNCBcCisgICA/ICh1X2ludDY0X3QpIGlvdnUuaW92MzJbaV0ubGVuIDogaW92dS5pb3Y2NFtpXS5sZW4pCisjZWxzZQorCXN0cnVjdCBpb3ZlYyAqaW92OworI2RlZmluZSBzaXplb2ZfaW92IHNpemVvZigqaW92KQorI2RlZmluZSBpb3ZfaW92X2Jhc2UoaSkgaW92W2ldLmlvdl9iYXNlCisjZGVmaW5lIGlvdl9pb3ZfbGVuKGkpIGlvdltpXS5pb3ZfbGVuCisjZW5kaWYKKwlpbnQgaTsKKwl1bnNpZ25lZCBsb25nIHNpemU7CisKKwlzaXplID0gc2l6ZW9mX2lvdiAqICh1bnNpZ25lZCBsb25nKSBsZW47CisJaWYgKHNpemUgLyBzaXplb2ZfaW92ICE9IGxlbgorCSAgICB8fCAoaW92ID0gbWFsbG9jKHNpemUpKSA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CisJCXJldHVybjsKKwl9CisJaWYgKHVtb3Zlbih0Y3AsIGFkZHIsIHNpemUsIChjaGFyICopIGlvdikgPj0gMCkgeworCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGluY2x1ZGUgdGhlIGJ1ZmZlciBudW1iZXIgdG8gbWFrZSBpdCBlYXN5IHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBtYXRjaCB1cCB0aGUgdHJhY2Ugd2l0aCB0aGUgc291cmNlICovCisgICAgICAgICAgICAgICAgICAgICAgICB0cHJpbnRmKCIgKiAlbHUgYnl0ZXMgaW4gYnVmZmVyICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylpb3ZfaW92X2xlbihpKSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkdW1wc3RyKHRjcCwgKGxvbmcpIGlvdl9pb3ZfYmFzZShpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW92X2lvdl9sZW4oaSkpOworICAgICAgICAgICAgICAgIH0KKwl9CisJZnJlZSgoY2hhciAqKSBpb3YpOworI3VuZGVmIHNpemVvZl9pb3YKKyN1bmRlZiBpb3ZfaW92X2Jhc2UKKyN1bmRlZiBpb3ZfaW92X2xlbgorI3VuZGVmIGlvdgorfQorI2VuZGlmCisKK3ZvaWQKK2R1bXBzdHIodGNwLCBhZGRyLCBsZW4pCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7CitpbnQgbGVuOworeworCXN0YXRpYyBpbnQgc3Ryc2l6ZSA9IC0xOworCXN0YXRpYyB1bnNpZ25lZCBjaGFyICpzdHI7CisJc3RhdGljIGNoYXIgb3V0c3RyWzgwXTsKKwljaGFyICpzOworCWludCBpLCBqOworCisJaWYgKHN0cnNpemUgPCBsZW4pIHsKKwkJaWYgKHN0cikKKwkJCWZyZWUoc3RyKTsKKwkJaWYgKChzdHIgPSBtYWxsb2MobGVuKSkgPT0gTlVMTCkgeworCQkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5XG4iKTsKKwkJCXJldHVybjsKKwkJfQorCQlzdHJzaXplID0gbGVuOworCX0KKworCWlmICh1bW92ZW4odGNwLCBhZGRyLCBsZW4sIChjaGFyICopIHN0cikgPCAwKQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDE2KSB7CisJCXMgPSBvdXRzdHI7CisJCXNwcmludGYocywgIiB8ICUwNXggIiwgaSk7CisJCXMgKz0gOTsKKwkJZm9yIChqID0gMDsgaiA8IDE2OyBqKyspIHsKKwkJCWlmIChqID09IDgpCisJCQkJKnMrKyA9ICcgJzsKKwkJCWlmIChpICsgaiA8IGxlbikgeworCQkJCXNwcmludGYocywgIiAlMDJ4Iiwgc3RyW2kgKyBqXSk7CisJCQkJcyArPSAzOworCQkJfQorCQkJZWxzZSB7CisJCQkJKnMrKyA9ICcgJzsgKnMrKyA9ICcgJzsgKnMrKyA9ICcgJzsKKwkJCX0KKwkJfQorCQkqcysrID0gJyAnOyAqcysrID0gJyAnOworCQlmb3IgKGogPSAwOyBqIDwgMTY7IGorKykgeworCQkJaWYgKGogPT0gOCkKKwkJCQkqcysrID0gJyAnOworCQkJaWYgKGkgKyBqIDwgbGVuKSB7CisJCQkJaWYgKGlzcHJpbnQoc3RyW2kgKyBqXSkpCisJCQkJCSpzKysgPSBzdHJbaSArIGpdOworCQkJCWVsc2UKKwkJCQkJKnMrKyA9ICcuJzsKKwkJCX0KKwkJCWVsc2UKKwkJCQkqcysrID0gJyAnOworCQl9CisJCXRwcmludGYoIiVzIHxcbiIsIG91dHN0cik7CisJfQorfQorCisjZGVmaW5lIFBBR01BU0sJKH4oUEFHU0laIC0gMSkpCisvKgorICogbW92ZSBgbGVuJyBieXRlcyBvZiBkYXRhIGZyb20gcHJvY2VzcyBgcGlkJworICogYXQgYWRkcmVzcyBgYWRkcicgdG8gb3VyIHNwYWNlIGF0IGBsYWRkcicKKyAqLworaW50Cit1bW92ZW4odGNwLCBhZGRyLCBsZW4sIGxhZGRyKQorc3RydWN0IHRjYiAqdGNwOworbG9uZyBhZGRyOworaW50IGxlbjsKK2NoYXIgKmxhZGRyOworeworCisjaWZkZWYgTElOVVgKKwlpbnQgcGlkID0gdGNwLT5waWQ7CisJaW50IG4sIG07CisJaW50IHN0YXJ0ZWQgPSAwOworCXVuaW9uIHsKKwkJbG9uZyB2YWw7CisJCWNoYXIgeFtzaXplb2YobG9uZyldOworCX0gdTsKKworCWlmIChhZGRyICYgKHNpemVvZihsb25nKSAtIDEpKSB7CisJCS8qIGFkZHIgbm90IGEgbXVsdGlwbGUgb2Ygc2l6ZW9mKGxvbmcpICovCisJCW4gPSBhZGRyIC0gKGFkZHIgJiAtc2l6ZW9mKGxvbmcpKTsgLyogcmVzaWR1ZSAqLworCQlhZGRyICY9IC1zaXplb2YobG9uZyk7IC8qIHJlc2lkdWUgKi8KKwkJZXJybm8gPSAwOworCQl1LnZhbCA9IHB0cmFjZShQVFJBQ0VfUEVFS0RBVEEsIHBpZCwgKGNoYXIgKikgYWRkciwgMCk7CisJCWlmIChlcnJubykgeworCQkJaWYgKHN0YXJ0ZWQgJiYgKGVycm5vPT1FUEVSTSB8fCBlcnJubz09RUlPKSkgeworCQkJCS8qIFJhbiBpbnRvICdlbmQgb2YgbWVtb3J5JyAtIHN0dXBpZCAicHJpbnRwYXRoIiAqLworCQkJCXJldHVybiAwOworCQkJfQorCQkJLyogQnV0IGlmIG5vdCBzdGFydGVkLCB3ZSBoYWQgYSBib2d1cyBhZGRyZXNzLiAqLworCQkJaWYgKGFkZHIgIT0gMCAmJiBlcnJubyAhPSBFSU8pCisJCQkJcGVycm9yKCJwdHJhY2U6IHVtb3ZlbiIpOworCQkJcmV0dXJuIC0xOworCQl9CisJCXN0YXJ0ZWQgPSAxOworCQltZW1jcHkobGFkZHIsICZ1Lnhbbl0sIG0gPSBNSU4oc2l6ZW9mKGxvbmcpIC0gbiwgbGVuKSk7CisJCWFkZHIgKz0gc2l6ZW9mKGxvbmcpLCBsYWRkciArPSBtLCBsZW4gLT0gbTsKKwl9CisJd2hpbGUgKGxlbikgeworCQllcnJubyA9IDA7CisJCXUudmFsID0gcHRyYWNlKFBUUkFDRV9QRUVLREFUQSwgcGlkLCAoY2hhciAqKSBhZGRyLCAwKTsKKwkJaWYgKGVycm5vKSB7CisJCQlpZiAoc3RhcnRlZCAmJiAoZXJybm89PUVQRVJNIHx8IGVycm5vPT1FSU8pKSB7CisJCQkJLyogUmFuIGludG8gJ2VuZCBvZiBtZW1vcnknIC0gc3R1cGlkICJwcmludHBhdGgiICovCisJCQkJcmV0dXJuIDA7CisJCQl9CisJCQlpZiAoYWRkciAhPSAwICYmIGVycm5vICE9IEVJTykKKwkJCQlwZXJyb3IoInB0cmFjZTogdW1vdmVuIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJc3RhcnRlZCA9IDE7CisJCW1lbWNweShsYWRkciwgdS54LCBtID0gTUlOKHNpemVvZihsb25nKSwgbGVuKSk7CisJCWFkZHIgKz0gc2l6ZW9mKGxvbmcpLCBsYWRkciArPSBtLCBsZW4gLT0gbTsKKwl9CisjZW5kaWYgLyogTElOVVggKi8KKworI2lmZGVmIFNVTk9TNAorCWludCBwaWQgPSB0Y3AtPnBpZDsKKyNpZiAwCisJaW50IG4sIG07CisJdW5pb24geworCQlsb25nIHZhbDsKKwkJY2hhciB4W3NpemVvZihsb25nKV07CisJfSB1OworCisJaWYgKGFkZHIgJiAoc2l6ZW9mKGxvbmcpIC0gMSkpIHsKKwkJLyogYWRkciBub3QgYSBtdWx0aXBsZSBvZiBzaXplb2YobG9uZykgKi8KKwkJbiA9IGFkZHIgLSAoYWRkciAmIC1zaXplb2YobG9uZykpOyAvKiByZXNpZHVlICovCisJCWFkZHIgJj0gLXNpemVvZihsb25nKTsgLyogcmVzaWR1ZSAqLworCQllcnJubyA9IDA7CisJCXUudmFsID0gcHRyYWNlKFBUUkFDRV9QRUVLREFUQSwgcGlkLCAoY2hhciAqKSBhZGRyLCAwKTsKKwkJaWYgKGVycm5vKSB7CisJCQlwZXJyb3IoInVtb3ZlbiIpOworCQkJcmV0dXJuIC0xOworCQl9CisJCW1lbWNweShsYWRkciwgJnUueFtuXSwgbSA9IE1JTihzaXplb2YobG9uZykgLSBuLCBsZW4pKTsKKwkJYWRkciArPSBzaXplb2YobG9uZyksIGxhZGRyICs9IG0sIGxlbiAtPSBtOworCX0KKwl3aGlsZSAobGVuKSB7CisJCWVycm5vID0gMDsKKwkJdS52YWwgPSBwdHJhY2UoUFRSQUNFX1BFRUtEQVRBLCBwaWQsIChjaGFyICopIGFkZHIsIDApOworCQlpZiAoZXJybm8pIHsKKwkJCXBlcnJvcigidW1vdmVuIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJbWVtY3B5KGxhZGRyLCB1LngsIG0gPSBNSU4oc2l6ZW9mKGxvbmcpLCBsZW4pKTsKKwkJYWRkciArPSBzaXplb2YobG9uZyksIGxhZGRyICs9IG0sIGxlbiAtPSBtOworCX0KKyNlbHNlIC8qICFvbGR3YXkgKi8KKwlpbnQgbjsKKworCXdoaWxlIChsZW4pIHsKKwkJbiA9IE1JTihsZW4sIFBBR1NJWik7CisJCW4gPSBNSU4obiwgKChhZGRyICsgUEFHU0laKSAmIFBBR01BU0spIC0gYWRkcik7CisJCWlmIChwdHJhY2UoUFRSQUNFX1JFQUREQVRBLCBwaWQsCisJCQkgICAoY2hhciAqKSBhZGRyLCBsZW4sIGxhZGRyKSA8IDApIHsKKwkJCXBlcnJvcigidW1vdmVuOiBwdHJhY2UoUFRSQUNFX1JFQUREQVRBLCAuLi4pIik7CisJCQlhYm9ydCgpOworCQkJcmV0dXJuIC0xOworCQl9CisJCWxlbiAtPSBuOworCQlhZGRyICs9IG47CisJCWxhZGRyICs9IG47CisJfQorI2VuZGlmIC8qICFvbGR3YXkgKi8KKyNlbmRpZiAvKiBTVU5PUzQgKi8KKworI2lmZGVmIFVTRV9QUk9DRlMKKyNpZmRlZiBIQVZFX01QX1BST0NGUworCWludCBmZCA9IHRjcC0+cGZkX2FzOworI2Vsc2UKKwlpbnQgZmQgPSB0Y3AtPnBmZDsKKyNlbmRpZgorCWxzZWVrKGZkLCBhZGRyLCBTRUVLX1NFVCk7CisJaWYgKHJlYWQoZmQsIGxhZGRyLCBsZW4pID09IC0xKQorCQlyZXR1cm4gLTE7CisjZW5kaWYgLyogVVNFX1BST0NGUyAqLworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBsaWtlIGB1bW92ZScgYnV0IG1ha2UgdGhlIGFkZGl0aW9uYWwgZWZmb3J0IG9mIGxvb2tpbmcKKyAqIGZvciBhIHRlcm1pbmF0aW5nIHplcm8gYnl0ZS4KKyAqLworaW50Cit1bW92ZXN0cih0Y3AsIGFkZHIsIGxlbiwgbGFkZHIpCitzdHJ1Y3QgdGNiICp0Y3A7Citsb25nIGFkZHI7CitpbnQgbGVuOworY2hhciAqbGFkZHI7Cit7CisjaWZkZWYgVVNFX1BST0NGUworI2lmZGVmIEhBVkVfTVBfUFJPQ0ZTCisJaW50IGZkID0gdGNwLT5wZmRfYXM7CisjZWxzZQorCWludCBmZCA9IHRjcC0+cGZkOworI2VuZGlmCisJLyogU29tZSBzeXN0ZW1zIChlLmcuIEZyZWVCU0QpIGNhbiBiZSB1cHNldCBpZiB3ZSByZWFkIG9mZiB0aGUKKwkgICBlbmQgb2YgdmFsaWQgbWVtb3J5LCAgYXZvaWQgdGhpcyBieSB0cnlpbmcgdG8gcmVhZCB1cAorCSAgIHRvIHBhZ2UgYm91bmRhcmllcy4gIEJ1dCB3ZSBkb24ndCBrbm93IHdoYXQgYSBwYWdlIGlzIChhbmQKKwkgICBnZXRwYWdlc2l6ZSgyKSAoaWYgaXQgZXhpc3RzKSBkb2Vzbid0IG5lY2Vzc2FyaWx5IHJldHVybgorCSAgIGhhcmR3YXJlIHBhZ2Ugc2l6ZSkuICBBc3N1bWUgYWxsIHBhZ2VzID49IDEwMjQgKGEtaGlzdG9yaWNhbAorCSAgIEkga25vdykgKi8KKworCWludCBwYWdlID0gMTAyNDsgCS8qIEhvdyB0byBmaW5kIHRoaXM/ICovCisJaW50IG1vdmUgPSBwYWdlIC0gKGFkZHIgJiAocGFnZSAtIDEpKTsKKwlpbnQgbGVmdCA9IGxlbjsKKworCWxzZWVrKGZkLCBhZGRyLCBTRUVLX1NFVCk7CisKKwl3aGlsZSAobGVmdCkgeworCQlpZiAobW92ZSA+IGxlZnQpIG1vdmUgPSBsZWZ0OworCQlpZiAoKG1vdmUgPSByZWFkKGZkLCBsYWRkciwgbW92ZSkpIDw9IDApCisJCQlyZXR1cm4gbGVmdCAhPSBsZW4gPyAwIDogLTE7CisJCWlmIChtZW1jaHIgKGxhZGRyLCAwLCBtb3ZlKSkgYnJlYWs7CisJCWxlZnQgLT0gbW92ZTsKKwkJbGFkZHIgKz0gbW92ZTsKKwkJYWRkciArPSBtb3ZlOworCQltb3ZlID0gcGFnZTsKKwl9CisjZWxzZSAvKiAhVVNFX1BST0NGUyAqLworCWludCBzdGFydGVkID0gMDsKKwlpbnQgcGlkID0gdGNwLT5waWQ7CisJaW50IGksIG4sIG07CisJdW5pb24geworCQlsb25nIHZhbDsKKwkJY2hhciB4W3NpemVvZihsb25nKV07CisJfSB1OworCisJaWYgKGFkZHIgJiAoc2l6ZW9mKGxvbmcpIC0gMSkpIHsKKwkJLyogYWRkciBub3QgYSBtdWx0aXBsZSBvZiBzaXplb2YobG9uZykgKi8KKwkJbiA9IGFkZHIgLSAoYWRkciAmIC1zaXplb2YobG9uZykpOyAvKiByZXNpZHVlICovCisJCWFkZHIgJj0gLXNpemVvZihsb25nKTsgLyogcmVzaWR1ZSAqLworCQllcnJubyA9IDA7CisJCXUudmFsID0gcHRyYWNlKFBUUkFDRV9QRUVLREFUQSwgcGlkLCAoY2hhciAqKWFkZHIsIDApOworCQlpZiAoZXJybm8pIHsKKwkJCWlmIChzdGFydGVkICYmIChlcnJubz09RVBFUk0gfHwgZXJybm89PUVJTykpIHsKKwkJCQkvKiBSYW4gaW50byAnZW5kIG9mIG1lbW9yeScgLSBzdHVwaWQgInByaW50cGF0aCIgKi8KKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJCWlmIChhZGRyICE9IDAgJiYgZXJybm8gIT0gRUlPKQorCQkJCXBlcnJvcigidW1vdmVzdHIiKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlzdGFydGVkID0gMTsKKwkJbWVtY3B5KGxhZGRyLCAmdS54W25dLCBtID0gTUlOKHNpemVvZihsb25nKS1uLGxlbikpOworCQl3aGlsZSAobiAmIChzaXplb2YobG9uZykgLSAxKSkKKwkJCWlmICh1LnhbbisrXSA9PSAnXDAnKQorCQkJCXJldHVybiAwOworCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07CisJfQorCXdoaWxlIChsZW4pIHsKKwkJZXJybm8gPSAwOworCQl1LnZhbCA9IHB0cmFjZShQVFJBQ0VfUEVFS0RBVEEsIHBpZCwgKGNoYXIgKilhZGRyLCAwKTsKKwkJaWYgKGVycm5vKSB7CisJCQlpZiAoc3RhcnRlZCAmJiAoZXJybm89PUVQRVJNIHx8IGVycm5vPT1FSU8pKSB7CisJCQkJLyogUmFuIGludG8gJ2VuZCBvZiBtZW1vcnknIC0gc3R1cGlkICJwcmludHBhdGgiICovCisJCQkJcmV0dXJuIDA7CisJCQl9CisJCQlpZiAoYWRkciAhPSAwICYmIGVycm5vICE9IEVJTykKKwkJCQlwZXJyb3IoInVtb3Zlc3RyIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJc3RhcnRlZCA9IDE7CisJCW1lbWNweShsYWRkciwgdS54LCBtID0gTUlOKHNpemVvZihsb25nKSwgbGVuKSk7CisJCWZvciAoaSA9IDA7IGkgPCBzaXplb2YobG9uZyk7IGkrKykKKwkJCWlmICh1LnhbaV0gPT0gJ1wwJykKKwkJCQlyZXR1cm4gMDsKKworCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07CisJfQorI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBMSU5VWAorI2lmICFkZWZpbmVkIChTUEFSQykgJiYgIWRlZmluZWQoU1BBUkM2NCkKKyNkZWZpbmUgUFRSQUNFX1dSSVRFVEVYVAkxMDEKKyNkZWZpbmUgUFRSQUNFX1dSSVRFREFUQQkxMDIKKyNlbmRpZiAvKiAhU1BBUkMgJiYgIVNQQVJDNjQgKi8KKyNlbmRpZiAvKiBMSU5VWCAqLworCisjaWZkZWYgU1VOT1M0CisKK3N0YXRpYyBpbnQKK3Vsb2FkKGNtZCwgcGlkLCBhZGRyLCBsZW4sIGxhZGRyKQoraW50IGNtZDsKK2ludCBwaWQ7Citsb25nIGFkZHI7CitpbnQgbGVuOworY2hhciAqbGFkZHI7Cit7CisjaWYgMAorCWludCBuOworCisJd2hpbGUgKGxlbikgeworCQluID0gTUlOKGxlbiwgUEFHU0laKTsKKwkJbiA9IE1JTihuLCAoKGFkZHIgKyBQQUdTSVopICYgUEFHTUFTSykgLSBhZGRyKTsKKwkJaWYgKHB0cmFjZShjbWQsIHBpZCwgKGNoYXIgKilhZGRyLCBuLCBsYWRkcikgPCAwKSB7CisJCQlwZXJyb3IoInVsb2FkOiBwdHJhY2UoUFRSQUNFX1dSSVRFLCAuLi4pIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJbGVuIC09IG47CisJCWFkZHIgKz0gbjsKKwkJbGFkZHIgKz0gbjsKKwl9CisjZWxzZQorCWludCBwZWVrLCBwb2tlOworCWludCBuLCBtOworCXVuaW9uIHsKKwkJbG9uZyB2YWw7CisJCWNoYXIgeFtzaXplb2YobG9uZyldOworCX0gdTsKKworCWlmIChjbWQgPT0gUFRSQUNFX1dSSVRFVEVYVCkgeworCQlwZWVrID0gUFRSQUNFX1BFRUtURVhUOworCQlwb2tlID0gUFRSQUNFX1BPS0VURVhUOworCX0KKwllbHNlIHsKKwkJcGVlayA9IFBUUkFDRV9QRUVLREFUQTsKKwkJcG9rZSA9IFBUUkFDRV9QT0tFREFUQTsKKwl9CisJaWYgKGFkZHIgJiAoc2l6ZW9mKGxvbmcpIC0gMSkpIHsKKwkJLyogYWRkciBub3QgYSBtdWx0aXBsZSBvZiBzaXplb2YobG9uZykgKi8KKwkJbiA9IGFkZHIgLSAoYWRkciAmIC1zaXplb2YobG9uZykpOyAvKiByZXNpZHVlICovCisJCWFkZHIgJj0gLXNpemVvZihsb25nKTsKKwkJZXJybm8gPSAwOworCQl1LnZhbCA9IHB0cmFjZShwZWVrLCBwaWQsIChjaGFyICopIGFkZHIsIDApOworCQlpZiAoZXJybm8pIHsKKwkJCXBlcnJvcigidWxvYWQ6IFBPS0UiKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQltZW1jcHkoJnUueFtuXSwgbGFkZHIsIG0gPSBNSU4oc2l6ZW9mKGxvbmcpIC0gbiwgbGVuKSk7CisJCWlmIChwdHJhY2UocG9rZSwgcGlkLCAoY2hhciAqKWFkZHIsIHUudmFsKSA8IDApIHsKKwkJCXBlcnJvcigidWxvYWQ6IFBPS0UiKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQlhZGRyICs9IHNpemVvZihsb25nKSwgbGFkZHIgKz0gbSwgbGVuIC09IG07CisJfQorCXdoaWxlIChsZW4pIHsKKwkJaWYgKGxlbiA8IHNpemVvZihsb25nKSkKKwkJCXUudmFsID0gcHRyYWNlKHBlZWssIHBpZCwgKGNoYXIgKikgYWRkciwgMCk7CisJCW1lbWNweSh1LngsIGxhZGRyLCBtID0gTUlOKHNpemVvZihsb25nKSwgbGVuKSk7CisJCWlmIChwdHJhY2UocG9rZSwgcGlkLCAoY2hhciAqKSBhZGRyLCB1LnZhbCkgPCAwKSB7CisJCQlwZXJyb3IoInVsb2FkOiBQT0tFIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJYWRkciArPSBzaXplb2YobG9uZyksIGxhZGRyICs9IG0sIGxlbiAtPSBtOworCX0KKyNlbmRpZgorCXJldHVybiAwOworfQorCitpbnQKK3Rsb2FkKHBpZCwgYWRkciwgbGVuLCBsYWRkcikKK2ludCBwaWQ7CitpbnQgYWRkciwgbGVuOworY2hhciAqbGFkZHI7Cit7CisJcmV0dXJuIHVsb2FkKFBUUkFDRV9XUklURVRFWFQsIHBpZCwgYWRkciwgbGVuLCBsYWRkcik7Cit9CisKK2ludAorZGxvYWQocGlkLCBhZGRyLCBsZW4sIGxhZGRyKQoraW50IHBpZDsKK2ludCBhZGRyOworaW50IGxlbjsKK2NoYXIgKmxhZGRyOworeworCXJldHVybiB1bG9hZChQVFJBQ0VfV1JJVEVEQVRBLCBwaWQsIGFkZHIsIGxlbiwgbGFkZHIpOworfQorCisjZW5kaWYgLyogU1VOT1M0ICovCisKKyNpZm5kZWYgVVNFX1BST0NGUworCitpbnQKK3VwZWVrKHBpZCwgb2ZmLCByZXMpCitpbnQgcGlkOworbG9uZyBvZmY7Citsb25nICpyZXM7Cit7CisJbG9uZyB2YWw7CisKKyNpZmRlZiBTVU5PUzRfS0VSTkVMX0FSQ0hfS0xVREdFCisJeworCQlzdGF0aWMgaW50IGlzX3N1bjRtID0gLTE7CisJCXN0cnVjdCB1dHNuYW1lIG5hbWU7CisKKwkJLyogUm91bmQgdXAgdGhlIHVzdWFsIHN1c3BlY3RzLiAqLworCQlpZiAoaXNfc3VuNG0gPT0gLTEpIHsKKwkJCWlmICh1bmFtZSgmbmFtZSkgPCAwKSB7CisJCQkJcGVycm9yKCJ1cGVlazogdW5hbWU/Iik7CisJCQkJZXhpdCgxKTsKKwkJCX0KKwkJCWlzX3N1bjRtID0gc3RyY21wKG5hbWUubWFjaGluZSwgInN1bjRtIikgPT0gMDsKKwkJCWlmIChpc19zdW40bSkgeworCQkJCWV4dGVybiBjb25zdCBzdHJ1Y3QgeGxhdCBzdHJ1Y3RfdXNlcl9vZmZzZXRzW107CisJCQkJY29uc3Qgc3RydWN0IHhsYXQgKng7CisKKwkJCQlmb3IgKHggPSBzdHJ1Y3RfdXNlcl9vZmZzZXRzOyB4LT5zdHI7IHgrKykKKwkJCQkJeC0+dmFsICs9IDEwMjQ7CisJCQl9CisJCX0KKwkJaWYgKGlzX3N1bjRtKQorCQkJb2ZmICs9IDEwMjQ7CisJfQorI2VuZGlmIC8qIFNVTk9TNF9LRVJORUxfQVJDSF9LTFVER0UgKi8KKwllcnJubyA9IDA7CisJdmFsID0gcHRyYWNlKFBUUkFDRV9QRUVLVVNFUiwgcGlkLCAoY2hhciAqKSBvZmYsIDApOworCWlmICh2YWwgPT0gLTEgJiYgZXJybm8pIHsKKwkJY2hhciBidWZbNjBdOworCQlzcHJpbnRmKGJ1ZiwidXBlZWs6IHB0cmFjZShQVFJBQ0VfUEVFS1VTRVIsJWQsJWx1LDApIixwaWQsb2ZmKTsKKwkJcGVycm9yKGJ1Zik7CisJCXJldHVybiAtMTsKKwl9CisJKnJlcyA9IHZhbDsKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmIC8qICFVU0VfUFJPQ0ZTICovCisKKyNpZiAwCitsb25nCitnZXRwYyh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisKKyNpZmRlZiBMSU5VWAorCWxvbmcgcGM7CisjaWYgZGVmaW5lZChJMzg2KQorCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpFSVAsICZwYykgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKFg4Nl82NCkKKwlpZiAodXBlZWsodGNwLT5waWQsIDgqUklQLCAmcGMpIDwgMCkKKwkJcmV0dXJuIC0xOworI2VsaWYgZGVmaW5lZChJQTY0KQorCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQjAsICZwYykgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKEFSTSkKKwlpZiAodXBlZWsodGNwLT5waWQsIDQqMTUsICZwYykgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKFBPV0VSUEMpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfTklQLCAmcGMpIDwgMCkKKwkJcmV0dXJuIC0xOworI2VsaWYgZGVmaW5lZChNNjhLKQorCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpQVF9QQywgJnBjKSA8IDApCisJCXJldHVybiAtMTsKKyNlbGlmIGRlZmluZWQoQUxQSEEpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfUEMsICZwYykgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKE1JUFMpCisgCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX0VQQywgJnBjKSA8IDApCisgCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCisJc3RydWN0IHJlZ3MgcmVnczsKKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLHRjcC0+cGlkLChjaGFyICopJnJlZ3MsMCkgPCAwKQorCQlyZXR1cm4gLTE7CisJcGMgPSByZWdzLnJfcGM7CisjZWxpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCisJaWYodXBlZWsodGNwLT5waWQsUFRfUFNXQUREUiwmcGMpIDwgMCkKKwkJcmV0dXJuIC0xOworI2VsaWYgZGVmaW5lZChIUFBBKQorCWlmKHVwZWVrKHRjcC0+cGlkLFBUX0lBT1EwLCZwYykgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKFNIKQorICAgICAgIGlmICh1cGVlayh0Y3AtPnBpZCwgNCpSRUdfUEMgLCZwYykgPCAwKQorICAgICAgICAgICAgICAgcmV0dXJuIC0xOworI2VsaWYgZGVmaW5lZChTSDY0KQorICAgICAgIGlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1BDICwmcGMpIDwgMCkKKyAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyNlbmRpZgorCXJldHVybiBwYzsKKyNlbmRpZiAvKiBMSU5VWCAqLworCisjaWZkZWYgU1VOT1M0CisJLyoKKwkgKiBSZXR1cm4gY3VycmVudCBwcm9ncmFtIGNvdW50ZXIgZm9yIGBwaWQnCisJICogQXNzdW1lcyBQQyBpcyBuZXZlciAweGZmZmZmZmZmCisJICovCisJc3RydWN0IHJlZ3MgcmVnczsKKworCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSAmcmVncywgMCkgPCAwKSB7CisJCXBlcnJvcigiZ2V0cGM6IHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgLi4uKSIpOworCQlyZXR1cm4gLTE7CisJfQorCXJldHVybiByZWdzLnJfcGM7CisjZW5kaWYgLyogU1VOT1M0ICovCisKKyNpZmRlZiBTVlI0CisJLyogWFhYICovCisJcmV0dXJuIDA7CisjZW5kaWYgLyogU1ZSNCAqLworCisjaWZkZWYgRlJFRUJTRAorCXN0cnVjdCByZWcgcmVnczsKKwlwcmVhZCh0Y3AtPnBmZF9yZWcsICZyZWdzLCBzaXplb2YocmVncyksIDApOworCXJldHVybiByZWdzLnJfZWlwOworI2VuZGlmIC8qIEZSRUVCU0QgKi8KK30KKyNlbmRpZgorCit2b2lkCitwcmludGNhbGwodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworI2RlZmluZSBQUklOVEJBRFBDIHRwcmludGYoc2l6ZW9mKGxvbmcpID09IDQgPyAiWz8/Pz8/Pz8/XSAiIDogXAorCQkJICAgc2l6ZW9mKGxvbmcpID09IDggPyAiWz8/Pz8/Pz8/Pz8/Pz8/Pz9dICIgOiBcCisJCQkgICBOVUxMIC8qIGNyYXNoICovKQorCisjaWZkZWYgTElOVVgKKyNpZmRlZiBJMzg2CisJbG9uZyBlaXA7CisKKwlpZiAodXBlZWsodGNwLT5waWQsIDQqRUlQLCAmZWlwKSA8IDApIHsKKwkJUFJJTlRCQURQQzsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJbJTA4bHhdICIsIGVpcCk7CisKKyNlbGlmIGRlZmluZWQoUzM5MCkgfHwgZGVmaW5lZChTMzkwWCkKKyAgICAgICAgIGxvbmcgcHN3OworICAgICAgICAgaWYodXBlZWsodGNwLT5waWQsUFRfUFNXQUREUiwmcHN3KSA8IDApIHsKKyAgICAgICAgICAgICAgICAgUFJJTlRCQURQQzsKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorI2lmZGVmIFMzOTAKKyAgICAgICAgIHRwcmludGYoIlslMDhseF0gIiwgcHN3KTsKKyNlbGlmIFMzOTBYCisgICAgICAgdHByaW50ZigiWyUxNmx4XSAiLCBwc3cpOworI2VuZGlmCisKKyNlbGlmIGRlZmluZWQoWDg2XzY0KQorCWxvbmcgcmlwOworCisJaWYgKHVwZWVrKHRjcC0+cGlkLCA4KlJJUCwgJnJpcCkgPCAwKSB7CisJCVBSSU5UQkFEUEM7CisJCXJldHVybjsKKwl9CisJdHByaW50ZigiWyUxNmx4XSAiLCByaXApOworI2VsaWYgZGVmaW5lZChJQTY0KQorCWxvbmcgaXA7CisKKwlpZiAodXBlZWsodGNwLT5waWQsIFBUX0IwLCAmaXApIDwgMCkgeworCQlQUklOVEJBRFBDOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlslMDhseF0gIiwgaXApOworI2VsaWYgZGVmaW5lZChQT1dFUlBDKQorCWxvbmcgcGM7CisKKwlpZiAodXBlZWsodGNwLT5waWQsIHNpemVvZih1bnNpZ25lZCBsb25nKSpQVF9OSVAsICZwYykgPCAwKSB7CisJCXRwcmludGYgKCJbPz8/Pz8/Pz9dICIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlslMDhseF0gIiwgcGMpOworI2VsaWYgZGVmaW5lZChNNjhLKQorCWxvbmcgcGM7CisKKwlpZiAodXBlZWsodGNwLT5waWQsIDQqUFRfUEMsICZwYykgPCAwKSB7CisJCXRwcmludGYgKCJbPz8/Pz8/Pz9dICIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlslMDhseF0gIiwgcGMpOworI2VsaWYgZGVmaW5lZChBTFBIQSkKKwlsb25nIHBjOworCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfUEMsICZwYykgPCAwKSB7CisJCXRwcmludGYgKCJbPz8/Pz8/Pz8/Pz8/Pz8/P10gIik7CisJCXJldHVybjsKKwl9CisJdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7CisjZWxpZiBkZWZpbmVkKFNQQVJDKSB8fCBkZWZpbmVkKFNQQVJDNjQpCisJc3RydWN0IHJlZ3MgcmVnczsKKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLHRjcC0+cGlkLChjaGFyICopJnJlZ3MsMCkgPCAwKSB7CisJCVBSSU5UQkFEUEM7CisJCXJldHVybjsKKwl9CisJdHByaW50ZigiWyUwOGx4XSAiLCByZWdzLnJfcGMpOworI2VsaWYgZGVmaW5lZChIUFBBKQorCWxvbmcgcGM7CisKKwlpZih1cGVlayh0Y3AtPnBpZCxQVF9JQU9RMCwmcGMpIDwgMCkgeworCQl0cHJpbnRmICgiWz8/Pz8/Pz8/XSAiKTsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKKyNlbGlmIGRlZmluZWQoTUlQUykKKwlsb25nIHBjOworCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBSRUdfRVBDLCAmcGMpIDwgMCkgeworCQl0cHJpbnRmICgiWz8/Pz8/Pz8/XSAiKTsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKKyNlbGlmIGRlZmluZWQoU0gpCisgICAgICAgbG9uZyBwYzsKKworICAgICAgIGlmICh1cGVlayh0Y3AtPnBpZCwgNCpSRUdfUEMsICZwYykgPCAwKSB7CisgICAgICAgICAgICAgICB0cHJpbnRmICgiWz8/Pz8/Pz8/XSAiKTsKKyAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICB9CisgICAgICAgdHByaW50ZigiWyUwOGx4XSAiLCBwYyk7CisjZWxpZiBkZWZpbmVkKFNINjQpCisJbG9uZyBwYzsKKworCWlmICh1cGVlayh0Y3AtPnBpZCwgUkVHX1BDLCAmcGMpIDwgMCkgeworCQl0cHJpbnRmICgiWz8/Pz8/Pz8/Pz8/Pz8/Pz9dICIpOworCQlyZXR1cm47CisJfQorCXRwcmludGYoIlslMDhseF0gIiwgcGMpOworI2VsaWYgZGVmaW5lZChBUk0pCisJbG9uZyBwYzsKKworCWlmICh1cGVlayh0Y3AtPnBpZCwgNCoxNSwgJnBjKSA8IDApIHsKKwkJUFJJTlRCQURQQzsKKwkJcmV0dXJuOworCX0KKwl0cHJpbnRmKCJbJTA4bHhdICIsIHBjKTsKKyNlbmRpZiAvKiAhYXJjaGl0ZWN0dXJlICovCisjZW5kaWYgLyogTElOVVggKi8KKworI2lmZGVmIFNVTk9TNAorCXN0cnVjdCByZWdzIHJlZ3M7CisKKwlpZiAocHRyYWNlKFBUUkFDRV9HRVRSRUdTLCB0Y3AtPnBpZCwgKGNoYXIgKikgJnJlZ3MsIDApIDwgMCkgeworCQlwZXJyb3IoInByaW50Y2FsbDogcHRyYWNlKFBUUkFDRV9HRVRSRUdTLCAuLi4pIik7CisJCVBSSU5UQkFEUEM7CisJCXJldHVybjsKKwl9CisJdHByaW50ZigiWyUwOHhdICIsIHJlZ3Mucl9vNyk7CisjZW5kaWYgLyogU1VOT1M0ICovCisKKyNpZmRlZiBTVlI0CisJLyogWFhYICovCisJUFJJTlRCQURQQzsKKyNlbmRpZgorCisjaWZkZWYgRlJFRUJTRAorCXN0cnVjdCByZWcgcmVnczsKKwlwcmVhZCh0Y3AtPnBmZF9yZWcsICZyZWdzLCBzaXplb2YocmVncyksIDApOworCXRwcmludGYoIlslMDh4XSAiLCByZWdzLnJfZWlwKTsKKyNlbmRpZiAvKiBGUkVFQlNEICovCit9CisKKyNpZm5kZWYgVVNFX1BST0NGUworCisjaWYgZGVmaW5lZCBMSU5VWAorCisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpZm5kZWYgQ0xPTkVfUFRSQUNFCisjIGRlZmluZSBDTE9ORV9QVFJBQ0UgICAgMHgwMDAwMjAwMAorI2VuZGlmCisjaWZuZGVmIENMT05FX1NUT1BQRUQKKyMgZGVmaW5lIENMT05FX1NUT1BQRUQgICAweDAyMDAwMDAwCisjZW5kaWYKKworI2lmZGVmIElBNjQKKworLyogV2UgZG9uJ3QgaGF2ZSBmb3JrKCkvdmZvcmsoKSBzeXNjYWxscyBvbiBpYTY0IGl0c2VsZiwgYnV0IHRoZSBpYTMyCisgICBzdWJzeXN0ZW0gaGFzIHRoZW0gZm9yIHg4Ni4uLiAqLworI2RlZmluZSBTWVNfZm9yawkyCisjZGVmaW5lIFNZU192Zm9yawkxOTAKKwordHlwZWRlZiB1bnNpZ25lZCBsb25nICphcmdfc2V0dXBfc3RhdGU7CisKK3N0YXRpYyBpbnQKK2FyZ19zZXR1cChzdHJ1Y3QgdGNiICp0Y3AsIGFyZ19zZXR1cF9zdGF0ZSAqc3RhdGUpCit7CisJdW5zaWduZWQgbG9uZyAqYnNwLCBjZm0sIHNvZiwgc29sOworCisJaWYgKGlhMzIpCisJCXJldHVybiAwOworCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9BUl9CU1AsIChsb25nICopICZic3ApIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQ0ZNLCAobG9uZyAqKSAmY2ZtKSA8IDApCisJCXJldHVybiAtMTsKKworCXNvZiA9IChjZm0gPj4gMCkgJiAweDdmOworCXNvbCA9IChjZm0gPj4gNykgJiAweDdmOworCWJzcCA9IGlhNjRfcnNlX3NraXBfcmVncyhic3AsIC1zb2YgKyBzb2wpOworCisJKnN0YXRlID0gYnNwOworCXJldHVybiAwOworfQorCisjIGRlZmluZSBhcmdfZmluaXNoX2NoYW5nZSh0Y3AsIHN0YXRlKQkwCisKKyNpZmRlZiBTWVNfZm9yaworc3RhdGljIGludAorZ2V0X2FyZzAgKHN0cnVjdCB0Y2IgKnRjcCwgYXJnX3NldHVwX3N0YXRlICpzdGF0ZSwgbG9uZyAqdmFscCkKK3sKKwlpbnQgcmV0OworCisJaWYgKGlhMzIpCisJCXJldCA9IHVwZWVrICh0Y3AtPnBpZCwgUFRfUjExLCB2YWxwKTsKKwllbHNlCisJCXJldCA9IHVtb3ZlbiAodGNwLAorCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIGlhNjRfcnNlX3NraXBfcmVncygqc3RhdGUsIDApLAorCQkJICAgICAgc2l6ZW9mKGxvbmcpLCAodm9pZCAqKSB2YWxwKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50CitnZXRfYXJnMSAoc3RydWN0IHRjYiAqdGNwLCBhcmdfc2V0dXBfc3RhdGUgKnN0YXRlLCBsb25nICp2YWxwKQoreworCWludCByZXQ7CisKKwlpZiAoaWEzMikKKwkJcmV0ID0gdXBlZWsgKHRjcC0+cGlkLCBQVF9SOSwgdmFscCk7CisJZWxzZQorCQlyZXQgPSB1bW92ZW4gKHRjcCwKKwkJCSAgICAgICh1bnNpZ25lZCBsb25nKSBpYTY0X3JzZV9za2lwX3JlZ3MoKnN0YXRlLCAxKSwKKwkJCSAgICAgIHNpemVvZihsb25nKSwgKHZvaWQgKikgdmFscCk7CisJcmV0dXJuIHJldDsKK30KKyNlbmRpZgorCitzdGF0aWMgaW50CitzZXRfYXJnMCAoc3RydWN0IHRjYiAqdGNwLCBhcmdfc2V0dXBfc3RhdGUgKnN0YXRlLCBsb25nIHZhbCkKK3sKKwlpbnQgcmVxID0gUFRSQUNFX1BPS0VEQVRBOworCXZvaWQgKmFwOworCisJaWYgKGlhMzIpIHsKKwkJYXAgPSAodm9pZCAqKSAoaW50cHRyX3QpIFBUX1IxMTsJIC8qIHIxMSA9PSBFQlggKi8KKwkJcmVxID0gUFRSQUNFX1BPS0VVU0VSOworCX0gZWxzZQorCQlhcCA9IGlhNjRfcnNlX3NraXBfcmVncygqc3RhdGUsIDApOworCWVycm5vID0gMDsKKwlwdHJhY2UocmVxLCB0Y3AtPnBpZCwgYXAsIHZhbCk7CisJcmV0dXJuIGVycm5vID8gLTEgOiAwOworfQorCitzdGF0aWMgaW50CitzZXRfYXJnMSAoc3RydWN0IHRjYiAqdGNwLCBhcmdfc2V0dXBfc3RhdGUgKnN0YXRlLCBsb25nIHZhbCkKK3sKKwlpbnQgcmVxID0gUFRSQUNFX1BPS0VEQVRBOworCXZvaWQgKmFwOworCisJaWYgKGlhMzIpIHsKKwkJYXAgPSAodm9pZCAqKSAoaW50cHRyX3QpIFBUX1I5OwkJLyogcjkgPT0gRUNYICovCisJCXJlcSA9IFBUUkFDRV9QT0tFVVNFUjsKKwl9IGVsc2UKKwkJYXAgPSBpYTY0X3JzZV9za2lwX3JlZ3MoKnN0YXRlLCAxKTsKKwllcnJubyA9IDA7CisJcHRyYWNlKHJlcSwgdGNwLT5waWQsIGFwLCB2YWwpOworCXJldHVybiBlcnJubyA/IC0xIDogMDsKK30KKworI2VsaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCisKK3R5cGVkZWYgc3RydWN0IHJlZ3MgYXJnX3NldHVwX3N0YXRlOworCisjIGRlZmluZSBhcmdfc2V0dXAodGNwLCBzdGF0ZSkgXAorICAocHRyYWNlIChQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopIChzdGF0ZSksIDApKQorIyBkZWZpbmUgYXJnX2ZpbmlzaF9jaGFuZ2UodGNwLCBzdGF0ZSkgXAorICAocHRyYWNlIChQVFJBQ0VfU0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopIChzdGF0ZSksIDApKQorCisjIGRlZmluZSBnZXRfYXJnMCh0Y3AsIHN0YXRlLCB2YWxwKSAoKih2YWxwKSA9IChzdGF0ZSktPnJfbzAsIDApCisjIGRlZmluZSBnZXRfYXJnMSh0Y3AsIHN0YXRlLCB2YWxwKSAoKih2YWxwKSA9IChzdGF0ZSktPnJfbzEsIDApCisjIGRlZmluZSBzZXRfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpICgoc3RhdGUpLT5yX28wID0gKHZhbCksIDApCisjIGRlZmluZSBzZXRfYXJnMSh0Y3AsIHN0YXRlLCB2YWwpICgoc3RhdGUpLT5yX28xID0gKHZhbCksIDApCisjIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAwCisKKyNlbHNlCisKKyMgaWYgZGVmaW5lZCBTMzkwIHx8IGRlZmluZWQgUzM5MFgKKy8qIE5vdGU6IHRoaXMgaXMgb25seSB0cnVlIGZvciB0aGUgYGNsb25lJyBzeXN0ZW0gY2FsbCwgd2hpY2ggaGFuZGxlcworICAgYXJndW1lbnRzIHNwZWNpYWxseS4gIFdlIGNvdWxkIGFzIHdlbGwgc2F5IHRoYXQgaXRzIGZpcnN0IHR3byBhcmd1bWVudHMKKyAgIGFyZSBzd2FwcGVkIHJlbGF0aXZlIHRvIG90aGVyIGFyY2hpdGVjdHVyZXMsIGJ1dCB0aGF0IHdvdWxkIGp1c3QgYmUKKyAgIGFub3RoZXIgI2lmZGVmIGluIHRoZSBjYWxscy4gICovCisjICBkZWZpbmUgYXJnMF9vZmZzZXQJUFRfR1BSMworIyAgZGVmaW5lIGFyZzFfb2Zmc2V0CVBUX09SSUdHUFIyCisjICBkZWZpbmUgcmVzdG9yZV9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgKCh2b2lkKSAoc3RhdGUpLCAwKQorIyAgZGVmaW5lIHJlc3RvcmVfYXJnMSh0Y3AsIHN0YXRlLCB2YWwpICgodm9pZCkgKHN0YXRlKSwgMCkKKyMgIGRlZmluZSBhcmcwX2luZGV4CTEKKyMgIGRlZmluZSBhcmcxX2luZGV4CTAKKyMgZWxpZiBkZWZpbmVkIChBTFBIQSkgfHwgZGVmaW5lZCAoTUlQUykKKyMgIGRlZmluZSBhcmcwX29mZnNldAlSRUdfQTAKKyMgIGRlZmluZSBhcmcxX29mZnNldAkoUkVHX0EwKzEpCisjIGVsaWYgZGVmaW5lZCAoUE9XRVJQQykKKyMgIGRlZmluZSBhcmcwX29mZnNldAkoc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKlBUX1IzKQorIyAgZGVmaW5lIGFyZzFfb2Zmc2V0CShzaXplb2YodW5zaWduZWQgbG9uZykqUFRfUjQpCisjICBkZWZpbmUgcmVzdG9yZV9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgKCh2b2lkKSAoc3RhdGUpLCAwKQorIyBlbGlmIGRlZmluZWQgKEhQUEEpCisjICBkZWZpbmUgYXJnMF9vZmZzZXQJIFBUX0dSMjYKKyMgIGRlZmluZSBhcmcxX29mZnNldAkgKFBUX0dSMjYtNCkKKyMgZWxpZiBkZWZpbmVkIChYODZfNjQpCisjICBkZWZpbmUgYXJnMF9vZmZzZXQJKChsb25nKSg4KihjdXJyZW50X3BlcnNvbmFsaXR5ID8gUkJYIDogUkRJKSkpCisjICBkZWZpbmUgYXJnMV9vZmZzZXQJKChsb25nKSg4KihjdXJyZW50X3BlcnNvbmFsaXR5ID8gUkNYIDogUlNJKSkpCisjIGVsaWYgZGVmaW5lZCAoU0gpCisjICBkZWZpbmUgYXJnMF9vZmZzZXQJKDQqKFJFR19SRUcwKzQpKQorIyAgZGVmaW5lIGFyZzFfb2Zmc2V0CSg0KihSRUdfUkVHMCs1KSkKKyMgZWxpZiBkZWZpbmVkIChTSDY0KQorICAgLyogQUJJIGRlZmluZXMgYXJnMCAmIDEgaW4gcjIgJiByMyAqLworIyAgZGVmaW5lIGFyZzBfb2Zmc2V0ICAgKFJFR19PRkZTRVQrMTYpCisjICBkZWZpbmUgYXJnMV9vZmZzZXQgICAoUkVHX09GRlNFVCsyNCkKKyMgIGRlZmluZSByZXN0b3JlX2FyZzAodGNwLCBzdGF0ZSwgdmFsKSAwCisjIGVsc2UKKyMgIGRlZmluZSBhcmcwX29mZnNldAkwCisjICBkZWZpbmUgYXJnMV9vZmZzZXQJNAorIyAgaWYgZGVmaW5lZCBBUk0KKyMgICBkZWZpbmUgcmVzdG9yZV9hcmcwKHRjcCwgc3RhdGUsIHZhbCkgMAorIyAgZW5kaWYKKyMgZW5kaWYKKwordHlwZWRlZiBpbnQgYXJnX3NldHVwX3N0YXRlOworCisjIGRlZmluZSBhcmdfc2V0dXAodGNwLCBzdGF0ZSkgKDApCisjIGRlZmluZSBhcmdfZmluaXNoX2NoYW5nZSh0Y3AsIHN0YXRlKQkwCisjIGRlZmluZSBnZXRfYXJnMCh0Y3AsIGNvb2tpZSwgdmFscCkgXAorICAodXBlZWsgKCh0Y3ApLT5waWQsIGFyZzBfb2Zmc2V0LCAodmFscCkpKQorIyBkZWZpbmUgZ2V0X2FyZzEodGNwLCBjb29raWUsIHZhbHApIFwKKyAgKHVwZWVrICgodGNwKS0+cGlkLCBhcmcxX29mZnNldCwgKHZhbHApKSkKKworc3RhdGljIGludAorc2V0X2FyZzAgKHN0cnVjdCB0Y2IgKnRjcCwgdm9pZCAqY29va2llLCBsb25nIHZhbCkKK3sKKwlyZXR1cm4gcHRyYWNlIChQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAoY2hhciopYXJnMF9vZmZzZXQsIHZhbCk7Cit9CisKK3N0YXRpYyBpbnQKK3NldF9hcmcxIChzdHJ1Y3QgdGNiICp0Y3AsIHZvaWQgKmNvb2tpZSwgbG9uZyB2YWwpCit7CisJcmV0dXJuIHB0cmFjZSAoUFRSQUNFX1BPS0VVU0VSLCB0Y3AtPnBpZCwgKGNoYXIqKWFyZzFfb2Zmc2V0LCB2YWwpOworfQorCisjZW5kaWYKKworI2lmbmRlZiByZXN0b3JlX2FyZzAKKyMgZGVmaW5lIHJlc3RvcmVfYXJnMCh0Y3AsIHN0YXRlLCB2YWwpIHNldF9hcmcwKCh0Y3ApLCAoc3RhdGUpLCAodmFsKSkKKyNlbmRpZgorI2lmbmRlZiByZXN0b3JlX2FyZzEKKyMgZGVmaW5lIHJlc3RvcmVfYXJnMSh0Y3AsIHN0YXRlLCB2YWwpIHNldF9hcmcxKCh0Y3ApLCAoc3RhdGUpLCAodmFsKSkKKyNlbmRpZgorCisjaWZuZGVmIGFyZzBfaW5kZXgKKyMgZGVmaW5lIGFyZzBfaW5kZXggMAorIyBkZWZpbmUgYXJnMV9pbmRleCAxCisjZW5kaWYKKworaW50CitzZXRicHQodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWV4dGVybiBpbnQgY2hhbmdlX3N5c2NhbGwoc3RydWN0IHRjYiAqLCBpbnQpOworCWFyZ19zZXR1cF9zdGF0ZSBzdGF0ZTsKKworCWlmICh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBUQ0IgYWxyZWFkeSBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7CisJCXJldHVybiAtMTsKKwl9CisKKwlzd2l0Y2ggKGtub3duX3Njbm8odGNwKSkgeworI2lmZGVmIFNZU192Zm9yaworCWNhc2UgU1lTX3Zmb3JrOgorI2VuZGlmCisjaWZkZWYgU1lTX2ZvcmsKKwljYXNlIFNZU19mb3JrOgorI2VuZGlmCisjaWYgZGVmaW5lZCBTWVNfZm9yayB8fCBkZWZpbmVkIFNZU192Zm9yaworCQlpZiAoYXJnX3NldHVwICh0Y3AsICZzdGF0ZSkgPCAwCisJCSAgICB8fCBnZXRfYXJnMCAodGNwLCAmc3RhdGUsICZ0Y3AtPmluc3RbMF0pIDwgMAorCQkgICAgfHwgZ2V0X2FyZzEgKHRjcCwgJnN0YXRlLCAmdGNwLT5pbnN0WzFdKSA8IDAKKwkJICAgIHx8IGNoYW5nZV9zeXNjYWxsKHRjcCwgU1lTX2Nsb25lKSA8IDAKKwkJICAgIHx8IHNldF9hcmcwICh0Y3AsICZzdGF0ZSwgQ0xPTkVfUFRSQUNFfFNJR0NITEQpIDwgMAorCQkgICAgfHwgc2V0X2FyZzEgKHRjcCwgJnN0YXRlLCAwKSA8IDAKKwkJICAgIHx8IGFyZ19maW5pc2hfY2hhbmdlICh0Y3AsICZzdGF0ZSkgPCAwKQorCQkJcmV0dXJuIC0xOworCQl0Y3AtPnVfYXJnW2FyZzBfaW5kZXhdID0gQ0xPTkVfUFRSQUNFfFNJR0NITEQ7CisJCXRjcC0+dV9hcmdbYXJnMV9pbmRleF0gPSAwOworCQl0Y3AtPmZsYWdzIHw9IFRDQl9CUFRTRVQ7CisJCXJldHVybiAwOworI2VuZGlmCisKKwljYXNlIFNZU19jbG9uZToKKyNpZmRlZiBTWVNfY2xvbmUyCisJY2FzZSBTWVNfY2xvbmUyOgorI2VuZGlmCisJCWlmICgodGNwLT51X2FyZ1thcmcwX2luZGV4XSAmIENMT05FX1BUUkFDRSkgPT0gMAorCQkgICAgJiYgKGFyZ19zZXR1cCAodGNwLCAmc3RhdGUpIDwgMAorCQkJfHwgc2V0X2FyZzAgKHRjcCwgJnN0YXRlLAorCQkJCSAgICAgdGNwLT51X2FyZ1thcmcwX2luZGV4XSB8IENMT05FX1BUUkFDRSkgPCAwCisJCQl8fCBhcmdfZmluaXNoX2NoYW5nZSAodGNwLCAmc3RhdGUpIDwgMCkpCisJCQlyZXR1cm4gLTE7CisJCXRjcC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKKwkJdGNwLT5pbnN0WzBdID0gdGNwLT51X2FyZ1thcmcwX2luZGV4XTsKKwkJdGNwLT5pbnN0WzFdID0gdGNwLT51X2FyZ1thcmcxX2luZGV4XTsKKwkJcmV0dXJuIDA7CisKKwlkZWZhdWx0OgorCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBzZXRicHQgZm9yIHN5c2NhbGwgJWxkIG9uICV1Pz8/XG4iLAorCQkJdGNwLT5zY25vLCB0Y3AtPnBpZCk7CisJCWJyZWFrOworCX0KKworCXJldHVybiAtMTsKK30KKworaW50CitjbGVhcmJwdCh0Y3ApCitzdHJ1Y3QgdGNiICp0Y3A7Cit7CisJYXJnX3NldHVwX3N0YXRlIHN0YXRlOworCWlmIChhcmdfc2V0dXAgKHRjcCwgJnN0YXRlKSA8IDAKKwkgICAgfHwgcmVzdG9yZV9hcmcwICh0Y3AsICZzdGF0ZSwgdGNwLT5pbnN0WzBdKSA8IDAKKwkgICAgfHwgcmVzdG9yZV9hcmcxICh0Y3AsICZzdGF0ZSwgdGNwLT5pbnN0WzFdKSA8IDAKKwkgICAgfHwgYXJnX2ZpbmlzaF9jaGFuZ2UgKHRjcCwgJnN0YXRlKSkKKwkJcmV0dXJuIC0xOworCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7CisJcmV0dXJuIDA7Cit9CisKKyNlbHNlCisKK2ludAorc2V0YnB0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKworI2lmZGVmIExJTlVYCisjaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCisJLyogV2Ugc2ltcGx5IHVzZSB0aGUgU3VuT1MgYnJlYWtwb2ludCBjb2RlLiAqLworCisJc3RydWN0IHJlZ3MgcmVnczsKKwl1bnNpZ25lZCBsb25nIGluc3Q7CisjZGVmaW5lIExPT1BBCTB4MzA4MDAwMDAJLyogYmEsYQkwICovCisKKwlpZiAodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpIHsKKwkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogVENCIGFscmVhZHkgc2V0IGluIHBpZCAldVxuIiwgdGNwLT5waWQpOworCQlyZXR1cm4gLTE7CisJfQorCWlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIHRjcC0+cGlkLCAoY2hhciAqKSZyZWdzLCAwKSA8IDApIHsKKwkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgLi4uKSIpOworCQlyZXR1cm4gLTE7CisJfQorCXRjcC0+YmFkZHIgPSByZWdzLnJfbzcgKyA4OworCWVycm5vID0gMDsKKwl0Y3AtPmluc3RbMF0gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCB0Y3AtPnBpZCwgKGNoYXIgKil0Y3AtPmJhZGRyLCAwKTsKKwlpZihlcnJubykgeworCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgLi4uKSIpOworCQlyZXR1cm4gLTE7CisJfQorCisJLyoKKwkgKiBYWFggLSBCUlVUQUwgTU9ERSBPTgorCSAqIFdlIGNhbm5vdCBzZXQgYSByZWFsIEJQVCBpbiB0aGUgY2hpbGQsIHNpbmNlIGl0IHdpbGwgbm90IGJlCisJICogdHJhY2VkIGF0IHRoZSBtb21lbnQgaXQgd2lsbCByZWFjaCB0aGUgdHJhcCBhbmQgd291bGQgcHJvYmFibHkKKwkgKiBkaWUgd2l0aCBhIGNvcmUgZHVtcC4KKwkgKiBUaHVzLCB3ZSBhcmUgZm9yY2Ugb3VyIHdheSBpbiBieSB0YWtpbmcgb3V0IHR3byBpbnN0cnVjdGlvbnMKKwkgKiBhbmQgaW5zZXJ0IGFuIGV0ZXJuYWwgbG9vcCBpbnN0ZWFkLCBpbiBleHBlY3RhbmNlIG9mIHRoZSBTSUdTVE9QCisJICogZ2VuZXJhdGVkIGJ5IG91dCBQVFJBQ0VfQVRUQUNILgorCSAqIE9mIGNhdXNlLCBpZiB3ZSBldmFwb3JhdGUgb3Vyc2VsdmVzIGluIHRoZSBtaWRkbGUgb2YgYWxsIHRoaXMuLi4KKwkgKi8KKwllcnJubyA9IDA7CisJaW5zdCA9IExPT1BBOworI2lmIGRlZmluZWQgKFNQQVJDNjQpCisJaW5zdCA8PD0gMzI7CisJaW5zdCB8PSAodGNwLT5pbnN0WzBdICYgMHhmZmZmZmZmZlVMKTsKKyNlbmRpZgorCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLCBpbnN0KTsKKwlpZihlcnJubykgeworCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOworCQlyZXR1cm4gLTE7CisJfQorCXRjcC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKKworI2Vsc2UgLyogIVNQQVJDICYmICFTUEFSQzY0ICovCisjaWZkZWYgSUE2NAorCWlmIChpYTMyKSB7CisjCQlkZWZpbmUgTE9PUAkweDAwMDBmZWViCisJCWlmICh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkgeworCQkJZnByaW50ZihzdGRlcnIsICJQQU5JQzogYnB0IGFscmVhZHkgc2V0IGluIHBpZCAldVxuIiwKKwkJCQl0Y3AtPnBpZCk7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9DUl9JSVAsICZ0Y3AtPmJhZGRyKSA8IDApCisJCQlyZXR1cm4gLTE7CisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLCAiWyVkXSBzZXR0aW5nIGJwdCBhdCAlbHhcbiIsCisJCQkJdGNwLT5waWQsIHRjcC0+YmFkZHIpOworCQl0Y3AtPmluc3RbMF0gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCB0Y3AtPnBpZCwKKwkJCQkgICAgICAoY2hhciAqKSB0Y3AtPmJhZGRyLCAwKTsKKwkJaWYgKGVycm5vKSB7CisJCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QRUVLVEVYVCwgLi4uKSIpOworCQkJcmV0dXJuIC0xOworCQl9CisJCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLCBMT09QKTsKKwkJaWYgKGVycm5vKSB7CisJCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOworCQkJcmV0dXJuIC0xOworCQl9CisJCXRjcC0+ZmxhZ3MgfD0gVENCX0JQVFNFVDsKKwl9IGVsc2UgeworCQkvKgorCQkgKiBPdXIgc3RyYXRlZ3kgaGVyZSBpcyB0byByZXBsYWNlIHRoZSBidW5kbGUgdGhhdAorCQkgKiBjb250YWluZWQgdGhlIGNsb25lKCkgc3lzY2FsbCB3aXRoIGEgYnVuZGxlIG9mIHRoZQorCQkgKiBmb3JtOgorCQkgKgorCQkgKgl7IDE6IGJyIDFiOyBiciAxYjsgYnIgMWIgfQorCQkgKgorCQkgKiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgbmV3bHkgZm9ya2VkIGNoaWxkIHdpbGwgbG9vcAorCQkgKiBlbmRsZXNzbHkgdW50aWwgd2UndmUgZ290IGEgY2hhbmNlIHRvIGF0dGFjaCB0byBpdC4KKwkJICovCisjCQlkZWZpbmUgTE9PUDAJMHgwMDAwMTAwMDAwMDAwMDE3CisjCQlkZWZpbmUgTE9PUDEJMHg0MDAwMDAwMDAwMjAwMDAwCisJCXVuc2lnbmVkIGxvbmcgYWRkciwgaXBzcjsKKwkJcGlkX3QgcGlkOworCisJCXBpZCA9IHRjcC0+cGlkOworCQlpZiAodXBlZWsocGlkLCBQVF9DUl9JUFNSLCAmaXBzcikgPCAwKQorCQkJcmV0dXJuIC0xOworCQlpZiAodXBlZWsocGlkLCBQVF9DUl9JSVAsICZhZGRyKSA8IDApCisJCQlyZXR1cm4gLTE7CisJCS8qIHN0b3JlICJyaSIgaW4gbG93IHR3byBiaXRzICovCisJCXRjcC0+YmFkZHIgPSBhZGRyIHwgKChpcHNyID4+IDQxKSAmIDB4Myk7CisKKwkJZXJybm8gPSAwOworCQl0Y3AtPmluc3RbMF0gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCBwaWQsIChjaGFyICopIGFkZHIgKyAwLAorCQkJCSAgICAgIDApOworCQl0Y3AtPmluc3RbMV0gPSBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCBwaWQsIChjaGFyICopIGFkZHIgKyA4LAorCQkJCSAgICAgIDApOworCQlpZiAoZXJybm8pIHsKKwkJCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BFRUtURVhULCAuLi4pIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQllcnJubyA9IDA7CisJCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHBpZCwgKGNoYXIgKikgYWRkciArIDAsIExPT1AwKTsKKwkJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgcGlkLCAoY2hhciAqKSBhZGRyICsgOCwgTE9PUDEpOworCQlpZiAoZXJybm8pIHsKKwkJCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJdGNwLT5mbGFncyB8PSBUQ0JfQlBUU0VUOworCX0KKyNlbHNlIC8qICFJQTY0ICovCisKKyNpZiBkZWZpbmVkIChJMzg2KSB8fCBkZWZpbmVkKFg4Nl82NCkKKyNkZWZpbmUgTE9PUAkweDAwMDBmZWViCisjZWxpZiBkZWZpbmVkIChNNjhLKQorI2RlZmluZSBMT09QCTB4NjBmZTAwMDAKKyNlbGlmIGRlZmluZWQgKEFMUEhBKQorI2RlZmluZSBMT09QCTB4YzNmZmZmZmYKKyNlbGlmIGRlZmluZWQgKFBPV0VSUEMpCisjZGVmaW5lIExPT1AJMHg0ODAwMDAwMAorI2VsaWYgZGVmaW5lZChBUk0pCisjZGVmaW5lIExPT1AJMHhFQUZGRkZGRQorI2VsaWYgZGVmaW5lZChNSVBTKQorI2RlZmluZSBMT09QCTB4MTAwMGZmZmYKKyNlbGlmIGRlZmluZWQoUzM5MCkKKyNkZWZpbmUgTE9PUAkweGE3ZjQwMDAwCS8qIEJSQyAxNSwwICovCisjZWxpZiBkZWZpbmVkKFMzOTBYKQorI2RlZmluZSBMT09QICAgMHhhN2Y0MDAwMDAwMDAwMDAwVUwgLyogQlJDIDE1LDAgKi8KKyNlbGlmIGRlZmluZWQoSFBQQSkKKyNkZWZpbmUgTE9PUAkweGU4MWYxZmY3CS8qIGIsbCxuIDxsb2M+LHIwICovCisjZWxpZiBkZWZpbmVkKFNIKQorI2lmZGVmIF9fTElUVExFX0VORElBTl9fCisjZGVmaW5lIExPT1AgICAweDAwMDBhZmZlCisjZWxzZQorI2RlZmluZSBMT09QICAgMHhmZWFmMDAwMAorI2VuZGlmCisjZWxzZQorI2Vycm9yIHVua25vd24gYXJjaGl0ZWN0dXJlCisjZW5kaWYKKworCWlmICh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBicHQgYWxyZWFkeSBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7CisJCXJldHVybiAtMTsKKwl9CisjaWYgZGVmaW5lZCAoSTM4NikKKwlpZiAodXBlZWsodGNwLT5waWQsIDQqRUlQLCAmdGNwLT5iYWRkcikgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkIChYODZfNjQpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCA4KlJJUCwgJnRjcC0+YmFkZHIpIDwgMCkKKwkJcmV0dXJuIC0xOworI2VsaWYgZGVmaW5lZCAoTTY4SykKKwlpZiAodXBlZWsodGNwLT5waWQsIDQqUFRfUEMsICZ0Y3AtPmJhZGRyKSA8IDApCisJICByZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkIChBTFBIQSkKKwlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkIChBUk0pCisJcmV0dXJuIC0xOworI2VsaWYgZGVmaW5lZCAoTUlQUykKKwlyZXR1cm4gLTE7CQkvKiBGSVhNRTogSSBkbyBub3Qga25vdyB3aGF0IGkgZG8gLSBGbG8gKi8KKyNlbGlmIGRlZmluZWQgKFBPV0VSUEMpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfTklQLCAmdGNwLT5iYWRkcikgPCAwKQorCQlyZXR1cm4gLTE7CisjZWxpZiBkZWZpbmVkKFMzOTApIHx8IGRlZmluZWQoUzM5MFgpCisJaWYgKHVwZWVrKHRjcC0+cGlkLFBUX1BTV0FERFIsICZ0Y3AtPmJhZGRyKSA8IDApCisJCXJldHVybiAtMTsKKyNlbGlmIGRlZmluZWQoSFBQQSkKKwlpZiAodXBlZWsodGNwLT5waWQsIFBUX0lBT1EwLCAmdGNwLT5iYWRkcikgPCAwKQorCQlyZXR1cm4gLTE7CisJdGNwLT5iYWRkciAmPSB+MHgwMzsKKyNlbGlmIGRlZmluZWQoU0gpCisgICAgICAgaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlJFR19QQywgJnRjcC0+YmFkZHIpIDwgMCkKKyAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyNlbHNlCisjZXJyb3IgdW5rbm93biBhcmNoaXRlY3R1cmUKKyNlbmRpZgorCWlmIChkZWJ1ZykKKwkJZnByaW50ZihzdGRlcnIsICJbJWRdIHNldHRpbmcgYnB0IGF0ICVseFxuIiwgdGNwLT5waWQsIHRjcC0+YmFkZHIpOworCXRjcC0+aW5zdFswXSA9IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLCAwKTsKKwlpZiAoZXJybm8pIHsKKwkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfUEVFS1RFWFQsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKwlwdHJhY2UoUFRSQUNFX1BPS0VURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwgTE9PUCk7CisJaWYgKGVycm5vKSB7CisJCXBlcnJvcigic2V0YnB0OiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7CisJCXJldHVybiAtMTsKKwl9CisJdGNwLT5mbGFncyB8PSBUQ0JfQlBUU0VUOworCisjZW5kaWYgLyogIUlBNjQgKi8KKyNlbmRpZiAvKiBTUEFSQyB8fCBTUEFSQzY0ICovCisjZW5kaWYgLyogTElOVVggKi8KKworI2lmZGVmIFNVTk9TNAorI2lmZGVmIFNQQVJDCS8qIFRoaXMgY29kZSBpcyBzbGlnaHRseSBzcGFyYyBzcGVjaWZpYyAqLworCisJc3RydWN0IHJlZ3MgcmVnczsKKyNkZWZpbmUgQlBUCTB4OTFkMDIwMDEJLyogdGEJMSAqLworI2RlZmluZSBMT09QCTB4MTA4MDAwMDAJLyogYmEJMCAqLworI2RlZmluZSBMT09QQQkweDMwODAwMDAwCS8qIGJhLGEJMCAqLworI2RlZmluZSBOT1AJMHgwMTAwMDAwMAorI2lmIExPT1BBCisJc3RhdGljIGludCBsb29wZGVsb29wWzFdID0ge0xPT1BBfTsKKyNlbHNlCisJc3RhdGljIGludCBsb29wZGVsb29wWzJdID0ge0xPT1AsIE5PUH07CisjZW5kaWYKKworCWlmICh0Y3AtPmZsYWdzICYgVENCX0JQVFNFVCkgeworCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBUQ0IgYWxyZWFkeSBzZXQgaW4gcGlkICV1XG4iLCB0Y3AtPnBpZCk7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopJnJlZ3MsIDApIDwgMCkgeworCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9HRVRSRUdTLCAuLi4pIik7CisJCXJldHVybiAtMTsKKwl9CisJdGNwLT5iYWRkciA9IHJlZ3Mucl9vNyArIDg7CisJaWYgKHB0cmFjZShQVFJBQ0VfUkVBRFRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKXRjcC0+YmFkZHIsCisJCQkJc2l6ZW9mIHRjcC0+aW5zdCwgKGNoYXIgKil0Y3AtPmluc3QpIDwgMCkgeworCQlwZXJyb3IoInNldGJwdDogcHRyYWNlKFBUUkFDRV9SRUFEVEVYVCwgLi4uKSIpOworCQlyZXR1cm4gLTE7CisJfQorCisJLyoKKwkgKiBYWFggLSBCUlVUQUwgTU9ERSBPTgorCSAqIFdlIGNhbm5vdCBzZXQgYSByZWFsIEJQVCBpbiB0aGUgY2hpbGQsIHNpbmNlIGl0IHdpbGwgbm90IGJlCisJICogdHJhY2VkIGF0IHRoZSBtb21lbnQgaXQgd2lsbCByZWFjaCB0aGUgdHJhcCBhbmQgd291bGQgcHJvYmFibHkKKwkgKiBkaWUgd2l0aCBhIGNvcmUgZHVtcC4KKwkgKiBUaHVzLCB3ZSBhcmUgZm9yY2Ugb3VyIHdheSBpbiBieSB0YWtpbmcgb3V0IHR3byBpbnN0cnVjdGlvbnMKKwkgKiBhbmQgaW5zZXJ0IGFuIGV0ZXJuYWwgbG9vcCBpbiBzdGVhZCwgaW4gZXhwZWN0YW5jZSBvZiB0aGUgU0lHU1RPUAorCSAqIGdlbmVyYXRlZCBieSBvdXQgUFRSQUNFX0FUVEFDSC4KKwkgKiBPZiBjYXVzZSwgaWYgd2UgZXZhcG9yYXRlIG91cnNlbHZlcyBpbiB0aGUgbWlkZGxlIG9mIGFsbCB0aGlzLi4uCisJICovCisJaWYgKHB0cmFjZShQVFJBQ0VfV1JJVEVURVhULCB0Y3AtPnBpZCwgKGNoYXIgKikgdGNwLT5iYWRkciwKKwkJCXNpemVvZiBsb29wZGVsb29wLCAoY2hhciAqKSBsb29wZGVsb29wKSA8IDApIHsKKwkJcGVycm9yKCJzZXRicHQ6IHB0cmFjZShQVFJBQ0VfV1JJVEVURVhULCAuLi4pIik7CisJCXJldHVybiAtMTsKKwl9CisJdGNwLT5mbGFncyB8PSBUQ0JfQlBUU0VUOworCisjZW5kaWYgLyogU1BBUkMgKi8KKyNlbmRpZiAvKiBTVU5PUzQgKi8KKworCXJldHVybiAwOworfQorCitpbnQKK2NsZWFyYnB0KHRjcCkKK3N0cnVjdCB0Y2IgKnRjcDsKK3sKKworI2lmZGVmIExJTlVYCisjaWYgZGVmaW5lZChJMzg2KSB8fCBkZWZpbmVkKFg4Nl82NCkKKwlsb25nIGVpcDsKKyNlbGlmIGRlZmluZWQoUE9XRVJQQykKKwlsb25nIHBjOworI2VsaWYgZGVmaW5lZChNNjhLKQorCWxvbmcgcGM7CisjZWxpZiBkZWZpbmVkKEFMUEhBKQorCWxvbmcgcGM7CisjZWxpZiBkZWZpbmVkKEhQUEEpCisJbG9uZyBpYW9xOworI2VsaWYgZGVmaW5lZChTSCkKKyAgICAgICBsb25nIHBjOworI2VuZGlmIC8qIGFyY2hpdGVjdHVyZSAqLworCisjaWYgZGVmaW5lZCAoU1BBUkMpIHx8IGRlZmluZWQgKFNQQVJDNjQpCisJLyogQWdhaW4sIHdlIGJvcnJvdyB0aGUgU3VuT1MgYnJlYWtwb2ludCBjb2RlLiAqLworCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBUQ0Igbm90IHNldCBpbiBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKKwkJcmV0dXJuIC0xOworCX0KKwllcnJubyA9IDA7CisJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsIHRjcC0+aW5zdFswXSk7CisJaWYoZXJybm8pIHsKKwkJcGVycm9yKCJjbGVhcmJ0cDogcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgLi4uKSIpOworCQlyZXR1cm4gLTE7CisJfQorCXRjcC0+ZmxhZ3MgJj0gflRDQl9CUFRTRVQ7CisjZWxpZiBkZWZpbmVkKElBNjQpCisJaWYgKGlhMzIpIHsKKwkJdW5zaWduZWQgbG9uZyBhZGRyOworCisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLCAiWyVkXSBjbGVhcmluZyBicHRcbiIsIHRjcC0+cGlkKTsKKwkJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBUQ0Igbm90IHNldCBpbiBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQllcnJubyA9IDA7CisJCXB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIHRjcC0+cGlkLCAoY2hhciAqKSB0Y3AtPmJhZGRyLCB0Y3AtPmluc3RbMF0pOworCQlpZiAoZXJybm8pIHsKKwkJCXBlcnJvcigiY2xlYXJidHA6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCQl0Y3AtPmZsYWdzICY9IH5UQ0JfQlBUU0VUOworCisJCWlmICh1cGVlayh0Y3AtPnBpZCwgUFRfQ1JfSUlQLCAmYWRkcikgPCAwKQorCQkJcmV0dXJuIC0xOworCQlpZiAoYWRkciAhPSB0Y3AtPmJhZGRyKSB7CisJCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLworCQkJaWYgKGRlYnVnKQorCQkJCWZwcmludGYoc3RkZXJyLAorCQkJCQkiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKKwkJCQkJCWFkZHIsIHRjcC0+YmFkZHIpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9IGVsc2UgeworCQl1bnNpZ25lZCBsb25nIGFkZHIsIGlwc3I7CisJCXBpZF90IHBpZDsKKworCQlwaWQgPSB0Y3AtPnBpZDsKKworCQlpZiAodXBlZWsocGlkLCBQVF9DUl9JUFNSLCAmaXBzcikgPCAwKQorCQkJcmV0dXJuIC0xOworCQlpZiAodXBlZWsocGlkLCBQVF9DUl9JSVAsICZhZGRyKSA8IDApCisJCQlyZXR1cm4gLTE7CisKKwkJLyogcmVzdG9yZSBvcmlnaW5hbCBidW5kbGU6ICovCisJCWVycm5vID0gMDsKKwkJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgcGlkLCAoY2hhciAqKSBhZGRyICsgMCwgdGNwLT5pbnN0WzBdKTsKKwkJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgcGlkLCAoY2hhciAqKSBhZGRyICsgOCwgdGNwLT5pbnN0WzFdKTsKKwkJaWYgKGVycm5vKSB7CisJCQlwZXJyb3IoImNsZWFyYnB0OiBwdHJhY2UoUFRSQUNFX1BPS0VURVhULCAuLi4pIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQkvKiByZXN0b3JlIG9yaWdpbmFsICJyaSIgaW4gaXBzcjogKi8KKwkJaXBzciA9IChpcHNyICYgfigweDN1bCA8PCA0MSkpIHwgKCh0Y3AtPmJhZGRyICYgMHgzKSA8PCA0MSk7CisJCWVycm5vID0gMDsKKwkJcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgcGlkLCAoY2hhciAqKSBQVF9DUl9JUFNSLCBpcHNyKTsKKwkJaWYgKGVycm5vKSB7CisJCQlwZXJyb3IoImNscmJwdDogcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgLi4uKSIpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJdGNwLT5mbGFncyAmPSB+VENCX0JQVFNFVDsKKworCQlpZiAoYWRkciAhPSAodGNwLT5iYWRkciAmIH4weDMpKSB7CisJCQkvKiB0aGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLworCQkJaWYgKGRlYnVnKQorCQkJCWZwcmludGYoc3RkZXJyLCAiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKKwkJCQkJYWRkciwgdGNwLT5iYWRkcik7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKyNlbHNlIC8qICFJQTY0ICAmJiAhU1BBUkMgJiYgIVNQQVJDNjQgKi8KKworCWlmIChkZWJ1ZykKKwkJZnByaW50ZihzdGRlcnIsICJbJWRdIGNsZWFyaW5nIGJwdFxuIiwgdGNwLT5waWQpOworCWlmICghKHRjcC0+ZmxhZ3MgJiBUQ0JfQlBUU0VUKSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIlBBTklDOiBUQ0Igbm90IHNldCBpbiBwaWQgJXVcbiIsIHRjcC0+cGlkKTsKKwkJcmV0dXJuIC0xOworCX0KKwllcnJubyA9IDA7CisJcHRyYWNlKFBUUkFDRV9QT0tFVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsIHRjcC0+aW5zdFswXSk7CisJaWYgKGVycm5vKSB7CisJCXBlcnJvcigiY2xlYXJidHA6IHB0cmFjZShQVFJBQ0VfUE9LRVRFWFQsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKwl0Y3AtPmZsYWdzICY9IH5UQ0JfQlBUU0VUOworCisjaWZkZWYgSTM4NgorCWlmICh1cGVlayh0Y3AtPnBpZCwgNCpFSVAsICZlaXApIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmIChlaXAgIT0gdGNwLT5iYWRkcikgeworCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLworCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKKwkJCQkJZWlwLCB0Y3AtPmJhZGRyKTsKKwkJcmV0dXJuIDA7CisJfQorI2VsaWYgZGVmaW5lZChYODZfNjQpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCA4KlJJUCwgJmVpcCkgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKGVpcCAhPSB0Y3AtPmJhZGRyKSB7CisJCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCSJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAorCQkJCQllaXAsIHRjcC0+YmFkZHIpOworCQlyZXR1cm4gMDsKKwl9CisjZWxpZiBkZWZpbmVkKFBPV0VSUEMpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBzaXplb2YodW5zaWduZWQgbG9uZykqUFRfTklQLCAmcGMpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlmIChwYyAhPSB0Y3AtPmJhZGRyKSB7CisJCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLCAiTk9URTogUEMgbm90IGF0IGJwdCAocGMgJSNseCBiYWRkciAlI2x4KVxuIiwKKwkJCQlwYywgdGNwLT5iYWRkcik7CisJCXJldHVybiAwOworCX0KKyNlbGlmIGRlZmluZWQoTTY4SykKKwlpZiAodXBlZWsodGNwLT5waWQsIDQqUFRfUEMsICZwYykgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKHBjICE9IHRjcC0+YmFkZHIpIHsKKwkJLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KKwkJaWYgKGRlYnVnKQorCQkJZnByaW50ZihzdGRlcnIsICJOT1RFOiBQQyBub3QgYXQgYnB0IChwYyAlI2x4IGJhZGRyICUjbHgpXG4iLAorCQkJCXBjLCB0Y3AtPmJhZGRyKTsKKwkJcmV0dXJuIDA7CisJfQorI2VsaWYgZGVmaW5lZChBTFBIQSkKKwlpZiAodXBlZWsodGNwLT5waWQsIFJFR19QQywgJnBjKSA8IDApCisJCXJldHVybiAtMTsKKwlpZiAocGMgIT0gdGNwLT5iYWRkcikgeworCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQuICAqLworCQlpZiAoZGVidWcpCisJCQlmcHJpbnRmKHN0ZGVyciwgIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCisJCQkJcGMsIHRjcC0+YmFkZHIpOworCQlyZXR1cm4gMDsKKwl9CisjZWxpZiBkZWZpbmVkKEhQUEEpCisJaWYgKHVwZWVrKHRjcC0+cGlkLCBQVF9JQU9RMCwgJmlhb3EpIDwgMCkKKwkJcmV0dXJuIC0xOworCWlhb3EgJj0gfjB4MDM7CisJaWYgKGlhb3EgIT0gdGNwLT5iYWRkciAmJiBpYW9xICE9IHRjcC0+YmFkZHIgKyA0KSB7CisJCS8qIFRoZSBicmVha3BvaW50IGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4gICovCisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLCAiTk9URTogUEMgbm90IGF0IGJwdCAoaWFvcSAlI2x4IGJhZGRyICUjbHgpXG4iLAorCQkJCWlhb3EsIHRjcC0+YmFkZHIpOworCQlyZXR1cm4gMDsKKwl9CisJaWFvcSA9IHRjcC0+YmFkZHIgfCAzOworCS8qIFdlIHNob3VsZCBiZSBwb2ludGluZyBhdCBhICdsZGkgLTEwMDAscjEnIGluIGdsaWJjLCBzbyBpdCBpcworCSAqIHNhZmUgdG8gc2V0IGJvdGggSUFPUTAgYW5kIElBT1ExIHRvIHRoYXQgc28gdGhlIFBTVyBOIGJpdAorCSAqIGhhcyBubyBzaWduaWZpY2FudCBlZmZlY3QuCisJICovCisJcHRyYWNlKFBUUkFDRV9QT0tFVVNFUiwgdGNwLT5waWQsICh2b2lkICopUFRfSUFPUTAsIGlhb3EpOworCXB0cmFjZShQVFJBQ0VfUE9LRVVTRVIsIHRjcC0+cGlkLCAodm9pZCAqKVBUX0lBT1ExLCBpYW9xKTsKKyNlbGlmIGRlZmluZWQoU0gpCisgICAgICAgaWYgKHVwZWVrKHRjcC0+cGlkLCA0KlJFR19QQywgJnBjKSA8IDApCisgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGlmIChwYyAhPSB0Y3AtPmJhZGRyKSB7CisgICAgICAgICAgICAgICAgLyogVGhlIGJyZWFrcG9pbnQgaGFzIG5vdCBiZWVuIHJlYWNoZWQgeWV0LiAgKi8KKyAgICAgICAgICAgICAgICBpZiAoZGVidWcpCisgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjbHggYmFkZHIgJSNseClcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjLCB0Y3AtPmJhZGRyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisjZW5kaWYgLyogYXJjaCAqLworI2VuZGlmIC8qICFTUEFSQyAmJiAhU1BBUkM2NCAmJiAhSUE2NCAqLworI2VuZGlmIC8qIExJTlVYICovCisKKyNpZmRlZiBTVU5PUzQKKyNpZmRlZiBTUEFSQworCisjaWYgIUxPT1BBCisJc3RydWN0IHJlZ3MgcmVnczsKKyNlbmRpZgorCisJaWYgKCEodGNwLT5mbGFncyAmIFRDQl9CUFRTRVQpKSB7CisJCWZwcmludGYoc3RkZXJyLCAiUEFOSUM6IFRDQiBub3Qgc2V0IGluIHBpZCAldVxuIiwgdGNwLT5waWQpOworCQlyZXR1cm4gLTE7CisJfQorCWlmIChwdHJhY2UoUFRSQUNFX1dSSVRFVEVYVCwgdGNwLT5waWQsIChjaGFyICopIHRjcC0+YmFkZHIsCisJCQkJc2l6ZW9mIHRjcC0+aW5zdCwgKGNoYXIgKikgdGNwLT5pbnN0KSA8IDApIHsKKwkJcGVycm9yKCJjbGVhcmJ0cDogcHRyYWNlKFBUUkFDRV9XUklURVRFWFQsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKwl0Y3AtPmZsYWdzICY9IH5UQ0JfQlBUU0VUOworCisjaWYgIUxPT1BBCisJLyoKKwkgKiBTaW5jZSB3ZSBkb24ndCBoYXZlIGEgc2luZ2xlIGluc3RydWN0aW9uIGJyZWFrcG9pbnQsIHdlIG1heSBoYXZlCisJICogdG8gYWRqdXN0IHRoZSBwcm9ncmFtIGNvdW50ZXIgYWZ0ZXIgcmVtb3ZpbmcgdGhlIG91ciBgYnJlYWtwb2ludCcuCisJICovCisJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopJnJlZ3MsIDApIDwgMCkgeworCQlwZXJyb3IoImNsZWFyYnB0OiBwdHJhY2UoUFRSQUNFX0dFVFJFR1MsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKwlpZiAoKHJlZ3Mucl9wYyA8IHRjcC0+YmFkZHIpIHx8CisJCQkJKHJlZ3Mucl9wYyA+IHRjcC0+YmFkZHIgKyA0KSkgeworCQkvKiBUaGUgYnJlYWtwb2ludCBoYXMgbm90IGJlZW4gcmVhY2hlZCB5ZXQgKi8KKwkJaWYgKGRlYnVnKQorCQkJZnByaW50ZihzdGRlcnIsCisJCQkJIk5PVEU6IFBDIG5vdCBhdCBicHQgKHBjICUjeCBiYWRkciAlI3gpXG4iLAorCQkJCQlyZWdzLnJfcGMsIHRjcC0+cGFyZW50LT5iYWRkcik7CisJCXJldHVybiAwOworCX0KKwlpZiAocmVncy5yX3BjICE9IHRjcC0+YmFkZHIpCisJCWlmIChkZWJ1ZykKKwkJCWZwcmludGYoc3RkZXJyLCAiTk9URTogUEMgYWRqdXN0ZWQgKCUjeCAtPiAlI3hcbiIsCisJCQkJcmVncy5yX3BjLCB0Y3AtPmJhZGRyKTsKKworCXJlZ3Mucl9wYyA9IHRjcC0+YmFkZHI7CisJaWYgKHB0cmFjZShQVFJBQ0VfU0VUUkVHUywgdGNwLT5waWQsIChjaGFyICopJnJlZ3MsIDApIDwgMCkgeworCQlwZXJyb3IoImNsZWFyYnB0OiBwdHJhY2UoUFRSQUNFX1NFVFJFR1MsIC4uLikiKTsKKwkJcmV0dXJuIC0xOworCX0KKyNlbmRpZiAvKiBMT09QQSAqLworI2VuZGlmIC8qIFNQQVJDICovCisjZW5kaWYgLyogU1VOT1M0ICovCisKKwlyZXR1cm4gMDsKK30KKworI2VuZGlmCisKKyNlbmRpZiAvKiAhVVNFX1BST0NGUyAqLworCisjaWZkZWYgU1VOT1M0CisKK3N0YXRpYyBpbnQKK2dldGV4KHBpZCwgaGRyKQoraW50IHBpZDsKK3N0cnVjdCBleGVjICpoZHI7Cit7CisJaW50IG47CisKKwlmb3IgKG4gPSAwOyBuIDwgc2l6ZW9mICpoZHI7IG4gKz0gNCkgeworCQlsb25nIHJlczsKKwkJaWYgKHVwZWVrKHBpZCwgdW9mZih1X2V4ZGF0YSkgKyBuLCAmcmVzKSA8IDApCisJCQlyZXR1cm4gLTE7CisJCW1lbWNweSgoKGNoYXIgKikgaGRyKSArIG4sICZyZXMsIDQpOworCX0KKwlpZiAoZGVidWcpIHsKKwkJZnByaW50ZihzdGRlcnIsICJbc3RydWN0IGV4ZWM6IG1hZ2ljOiAlbyB2ZXJzaW9uICV1IE1hY2ggJW9cbiIsCisJCQloZHItPmFfbWFnaWMsIGhkci0+YV90b29sdmVyc2lvbiwgaGRyLT5hX21hY2h0eXBlKTsKKwkJZnByaW50ZihzdGRlcnIsICJUZXh0ICVsdSBEYXRhICVsdSBCc3MgJWx1IFN5bXMgJWx1IEVudHJ5ICUjbHhdXG4iLAorCQkJaGRyLT5hX3RleHQsIGhkci0+YV9kYXRhLCBoZHItPmFfYnNzLCBoZHItPmFfc3ltcywgaGRyLT5hX2VudHJ5KTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK2ludAorZml4dmZvcmsodGNwKQorc3RydWN0IHRjYiAqdGNwOworeworCWludCBwaWQgPSB0Y3AtPnBpZDsKKwkvKgorCSAqIENoYW5nZSBgdmZvcmsnIGluIGEgZnJlc2hseSBleGVjJ2VkIGR5bmFtaWNhbGx5IGxpbmtlZAorCSAqIGV4ZWN1dGFibGUncyAoaW50ZXJuYWwpIHN5bWJvbCB0YWJsZSB0byBwbGFpbiBvbGQgYGZvcmsnCisJICovCisKKwlzdHJ1Y3QgZXhlYyBoZHI7CisJc3RydWN0IGxpbmtfZHluYW1pYyBkeW47CisJc3RydWN0IGxpbmtfZHluYW1pY18yIGxkOworCWNoYXIgKnN0cnRhYiwgKmNwOworCisJaWYgKGdldGV4KHBpZCwgJmhkcikgPCAwKQorCQlyZXR1cm4gLTE7CisJaWYgKCFoZHIuYV9keW5hbWljKQorCQlyZXR1cm4gLTE7CisKKwlpZiAodW1vdmUodGNwLCAoaW50KSBOX0RBVEFERFIoaGRyKSwgJmR5bikgPCAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAiQ2Fubm90IHJlYWQgRFlOQU1JQ1xuIik7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKHVtb3ZlKHRjcCwgKGludCkgZHluLmxkX3VuLmxkXzIsICZsZCkgPCAwKSB7CisJCWZwcmludGYoc3RkZXJyLCAiQ2Fubm90IHJlYWQgbGlua19keW5hbWljXzJcbiIpOworCQlyZXR1cm4gLTE7CisJfQorCWlmICgoc3RydGFiID0gbWFsbG9jKCh1bnNpZ25lZClsZC5sZF9zeW1iX3NpemUpKSA9PSBOVUxMKSB7CisJCWZwcmludGYoc3RkZXJyLCAib3V0IG9mIG1lbW9yeVxuIik7CisJCXJldHVybiAtMTsKKwl9CisJaWYgKHVtb3Zlbih0Y3AsIChpbnQpbGQubGRfc3ltYm9scysoaW50KU5fVFhUQUREUihoZHIpLAorCQkJCQkoaW50KWxkLmxkX3N5bWJfc2l6ZSwgc3RydGFiKSA8IDApCisJCWdvdG8gZXJyOworCisjaWYgMAorCWZvciAoY3AgPSBzdHJ0YWI7IGNwIDwgc3RydGFiICsgbGQubGRfc3ltYl9zaXplOyApIHsKKwkJZnByaW50ZihzdGRlcnIsICJbc3ltYm9sOiAlc11cbiIsIGNwKTsKKwkJY3AgKz0gc3RybGVuKGNwKSsxOworCX0KKwlyZXR1cm4gMDsKKyNlbmRpZgorCWZvciAoY3AgPSBzdHJ0YWI7IGNwIDwgc3RydGFiICsgbGQubGRfc3ltYl9zaXplOyApIHsKKwkJaWYgKHN0cmNtcChjcCwgIl92Zm9yayIpID09IDApIHsKKwkJCWlmIChkZWJ1ZykKKwkJCQlmcHJpbnRmKHN0ZGVyciwgImZpeHZmb3JrOiBGT1VORCBfdmZvcmtcbiIpOworCQkJc3RyY3B5KGNwLCAiX2ZvcmsiKTsKKwkJCWJyZWFrOworCQl9CisJCWNwICs9IHN0cmxlbihjcCkrMTsKKwl9CisJaWYgKGNwIDwgc3RydGFiICsgbGQubGRfc3ltYl9zaXplKQorCQkvKgorCQkgKiBXcml0ZSBlbnRpcmUgc3ltYm9sIHRhYmxlIGJhY2sgdG8gYXZvaWQKKwkJICogbWVtb3J5IGFsaWdubWVudCBidWdzIGluIHB0cmFjZQorCQkgKi8KKwkJaWYgKHRsb2FkKHBpZCwgKGludClsZC5sZF9zeW1ib2xzKyhpbnQpTl9UWFRBRERSKGhkciksCisJCQkJCShpbnQpbGQubGRfc3ltYl9zaXplLCBzdHJ0YWIpIDwgMCkKKwkJCWdvdG8gZXJyOworCisJZnJlZShzdHJ0YWIpOworCXJldHVybiAwOworCitlcnI6CisJZnJlZShzdHJ0YWIpOworCXJldHVybiAtMTsKK30KKworI2VuZGlmIC8qIFNVTk9TNCAqLwo=