LyoKICogKEMpIENvcHlyaWdodCAyMDAzCiAqIERhdmlkIE38bGxlciBFTFNPRlQgQUcgU3dpdHplcmxhbmQuIGQubXVlbGxlckBlbHNvZnQuY2gKICoKICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKICogcHJvamVjdC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgogKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKICogTUEgMDIxMTEtMTMwNyBVU0EKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIE5BTUUJICAgIDogczNjMjR4MC5oCiAqIFZlcnNpb24gIDogMzEuMy4yMDAzCiAqCiAqIGNvbW1vbiBzdHVmZiBmb3IgU0FNU1VORyBTM0MyNFgwIFNvQwogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmbmRlZiBfX1MzQzI0WDBfSF9fCiNkZWZpbmUgX19TM0MyNFgwX0hfXwoKLyogTWVtb3J5IGNvbnRyb2xsZXIgKHNlZSBtYW51YWwgY2hhcHRlciA1KSAqLwpzdHJ1Y3QgczNjMjR4MF9tZW1jdGwgewoJdTMyCWJ3c2NvbjsKCXUzMgliYW5rY29uWzhdOwoJdTMyCXJlZnJlc2g7Cgl1MzIJYmFua3NpemU7Cgl1MzIJbXJzcmI2OwoJdTMyCW1yc3JiNzsKfTsKCgovKiBVU0IgSE9TVCAoc2VlIG1hbnVhbCBjaGFwdGVyIDEyKSAqLwpzdHJ1Y3QgczNjMjR4MF91c2JfaG9zdCB7Cgl1MzIJSGNSZXZpc2lvbjsKCXUzMglIY0NvbnRyb2w7Cgl1MzIJSGNDb21tb25TdGF0dXM7Cgl1MzIJSGNJbnRlcnJ1cHRTdGF0dXM7Cgl1MzIJSGNJbnRlcnJ1cHRFbmFibGU7Cgl1MzIJSGNJbnRlcnJ1cHREaXNhYmxlOwoJdTMyCUhjSENDQTsKCXUzMglIY1BlcmlvZEN1dHRlbmRFRDsKCXUzMglIY0NvbnRyb2xIZWFkRUQ7Cgl1MzIJSGNDb250cm9sQ3VycmVudEVEOwoJdTMyCUhjQnVsa0hlYWRFRDsKCXUzMglIY0J1bGRDdXJyZW50RUQ7Cgl1MzIJSGNEb25lSGVhZDsKCXUzMglIY1JtSW50ZXJ2YWw7Cgl1MzIJSGNGbVJlbWFpbmluZzsKCXUzMglIY0ZtTnVtYmVyOwoJdTMyCUhjUGVyaW9kaWNTdGFydDsKCXUzMglIY0xTVGhyZXNob2xkOwoJdTMyCUhjUmhEZXNjcmlwdG9yQTsKCXUzMglIY1JoRGVzY3JpcHRvckI7Cgl1MzIJSGNSaFN0YXR1czsKCXUzMglIY1JoUG9ydFN0YXR1czE7Cgl1MzIJSGNSaFBvcnRTdGF0dXMyOwp9OwoKCi8qIElOVEVSUlVQVCAoc2VlIG1hbnVhbCBjaGFwdGVyIDE0KSAqLwpzdHJ1Y3QgczNjMjR4MF9pbnRlcnJ1cHQgewoJdTMyCXNyY3BuZDsKCXUzMglpbnRtb2Q7Cgl1MzIJaW50bXNrOwoJdTMyCXByaW9yaXR5OwoJdTMyCWludHBuZDsKCXUzMglpbnRvZmZzZXQ7CiNpZiBkZWZpbmVkKENPTkZJR19TM0MyNDEwKSB8fCBkZWZpbmVkKENPTkZJR19TM0MyNDQwKQoJdTMyCXN1YnNyY3BuZDsKCXUzMglpbnRzdWJtc2s7CiNlbmRpZgp9OwoKCi8qIERNQVMgKHNlZSBtYW51YWwgY2hhcHRlciA4KSAqLwpzdHJ1Y3QgczNjMjR4MF9kbWEgewoJdTMyCWRpc3JjOwojaWYgZGVmaW5lZChDT05GSUdfUzNDMjQxMCkgfHwgZGVmaW5lZChDT05GSUdfUzNDMjQ0MCkKCXUzMglkaXNyY2M7CiNlbmRpZgoJdTMyCWRpZHN0OwojaWYgZGVmaW5lZChDT05GSUdfUzNDMjQxMCkgfHwgZGVmaW5lZChDT05GSUdfUzNDMjQ0MCkKCXUzMglkaWRzdGM7CiNlbmRpZgoJdTMyCWRjb247Cgl1MzIJZHN0YXQ7Cgl1MzIJZGNzcmM7Cgl1MzIJZGNkc3Q7Cgl1MzIJZG1hc2t0cmlnOwojaWYgZGVmaW5lZChDT05GSUdfUzNDMjQwMCkgfHwgZGVmaW5lZChDT05GSUdfUzNDMjQxMCkgXAoJCXx8IGRlZmluZWQoQ09ORklHX1MzQzI0NDApCgl1MzIJcmVzWzFdOwojZW5kaWYKfTsKCnN0cnVjdCBzM2MyNHgwX2RtYXMgewoJc3RydWN0IHMzYzI0eDBfZG1hCWRtYVs0XTsKfTsKCgovKiBDTE9DSyAmIFBPV0VSIE1BTkFHRU1FTlQgKHNlZSBTM0MyNDAwIG1hbnVhbCBjaGFwdGVyIDYpICovCi8qICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VlIFMzQzI0MTAgbWFudWFsIGNoYXB0ZXIgNykgKi8Kc3RydWN0IHMzYzI0eDBfY2xvY2tfcG93ZXIgewoJdTMyCWxvY2t0aW1lOwoJdTMyCW1wbGxjb247Cgl1MzIJdXBsbGNvbjsKCXUzMgljbGtjb247Cgl1MzIJY2xrc2xvdzsKCXUzMgljbGtkaXZuOwojaWYgZGVmaW5lZChDT05GSUdfUzNDMjQ0MCkKCXUzMgljYW1kaXZuOwojZW5kaWYKfTsKCgovKiBMQ0QgQ09OVFJPTExFUiAoc2VlIG1hbnVhbCBjaGFwdGVyIDE1KSAqLwpzdHJ1Y3QgczNjMjR4MF9sY2QgewoJdTMyCWxjZGNvbjE7Cgl1MzIJbGNkY29uMjsKCXUzMglsY2Rjb24zOwoJdTMyCWxjZGNvbjQ7Cgl1MzIJbGNkY29uNTsKCXUzMglsY2RzYWRkcjE7Cgl1MzIJbGNkc2FkZHIyOwoJdTMyCWxjZHNhZGRyMzsKCXUzMglyZWRsdXQ7Cgl1MzIJZ3JlZW5sdXQ7Cgl1MzIJYmx1ZWx1dDsKCXUzMglyZXNbOF07Cgl1MzIJZGl0aG1vZGU7Cgl1MzIJdHBhbDsKI2lmIGRlZmluZWQoQ09ORklHX1MzQzI0MTApIHx8IGRlZmluZWQoQ09ORklHX1MzQzI0NDApCgl1MzIJbGNkaW50cG5kOwoJdTMyCWxjZHNyY3BuZDsKCXUzMglsY2RpbnRtc2s7Cgl1MzIJbHBjc2VsOwojZW5kaWYKfTsKCgojaWZkZWYgQ09ORklHX1MzQzI0MTAKLyogTkFORCBGTEFTSCAoc2VlIFMzQzI0MTAgbWFudWFsIGNoYXB0ZXIgNikgKi8Kc3RydWN0IHMzYzI0MTBfbmFuZCB7Cgl1MzIJbmZjb25mOwoJdTMyCW5mY21kOwoJdTMyCW5mYWRkcjsKCXUzMgluZmRhdGE7Cgl1MzIJbmZzdGF0OwoJdTMyCW5mZWNjOwp9OwojZW5kaWYKI2lmZGVmIENPTkZJR19TM0MyNDQwCi8qIE5BTkQgRkxBU0ggKHNlZSBTM0MyNDQwIG1hbnVhbCBjaGFwdGVyIDYpICovCnN0cnVjdCBzM2MyNDQwX25hbmQgewoJdTMyCW5mY29uZjsKCXUzMgluZmNvbnQ7Cgl1MzIJbmZjbWQ7Cgl1MzIJbmZhZGRyOwoJdTMyCW5mZGF0YTsKCXUzMgluZmVjY2QwOwoJdTMyCW5mZWNjZDE7Cgl1MzIJbmZlY2NkOwoJdTMyCW5mc3RhdDsKCXUzMgluZnN0YXQwOwoJdTMyCW5mc3RhdDE7Cn07CiNlbmRpZgoKCi8qIFVBUlQgKHNlZSBtYW51YWwgY2hhcHRlciAxMSkgKi8Kc3RydWN0IHMzYzI0eDBfdWFydCB7Cgl1MzIJdWxjb247Cgl1MzIJdWNvbjsKCXUzMgl1ZmNvbjsKCXUzMgl1bWNvbjsKCXUzMgl1dHJzdGF0OwoJdTMyCXVlcnN0YXQ7Cgl1MzIJdWZzdGF0OwoJdTMyCXVtc3RhdDsKI2lmZGVmIF9fQklHX0VORElBTgoJdTgJcmVzMVszXTsKCXU4CXV0eGg7Cgl1OAlyZXMyWzNdOwoJdTgJdXJ4aDsKI2Vsc2UgLyogTGl0dGxlIEVuZGlhbiAqLwoJdTgJdXR4aDsKCXU4CXJlczFbM107Cgl1OAl1cnhoOwoJdTgJcmVzMlszXTsKI2VuZGlmCgl1MzIJdWJyZGl2Owp9OwoKCi8qIFBXTSBUSU1FUiAoc2VlIG1hbnVhbCBjaGFwdGVyIDEwKSAqLwpzdHJ1Y3QgczNjMjR4MF90aW1lciB7Cgl1MzIJdGNudGI7Cgl1MzIJdGNtcGI7Cgl1MzIJdGNudG87Cn07CgpzdHJ1Y3QgczNjMjR4MF90aW1lcnMgewoJdTMyCXRjZmcwOwoJdTMyCXRjZmcxOwoJdTMyCXRjb247CglzdHJ1Y3QgczNjMjR4MF90aW1lcgljaFs0XTsKCXUzMgl0Y250YjQ7Cgl1MzIJdGNudG80Owp9OwoKCi8qIFVTQiBERVZJQ0UgKHNlZSBtYW51YWwgY2hhcHRlciAxMykgKi8Kc3RydWN0IHMzYzI0eDBfdXNiX2Rldl9maWZvcyB7CiNpZmRlZiBfX0JJR19FTkRJQU4KCXU4CXJlc1szXTsKCXU4CWVwX2ZpZm9fcmVnOwojZWxzZSAvKiAgbGl0dGxlIGVuZGlhbiAqLwoJdTgJZXBfZmlmb19yZWc7Cgl1OAlyZXNbM107CiNlbmRpZgp9OwoKc3RydWN0IHMzYzI0eDBfdXNiX2Rldl9kbWFzIHsKI2lmZGVmIF9fQklHX0VORElBTgoJdTgJcmVzMVszXTsKCXU4CWVwX2RtYV9jb247Cgl1OAlyZXMyWzNdOwoJdTgJZXBfZG1hX3VuaXQ7Cgl1OAlyZXMzWzNdOwoJdTgJZXBfZG1hX2ZpZm87Cgl1OAlyZXM0WzNdOwoJdTgJZXBfZG1hX3R0Y19sOwoJdTgJcmVzNVszXTsKCXU4CWVwX2RtYV90dGNfbTsKCXU4CXJlczZbM107Cgl1OAllcF9kbWFfdHRjX2g7CiNlbHNlIC8qICBsaXR0bGUgZW5kaWFuICovCgl1OAllcF9kbWFfY29uOwoJdTgJcmVzMVszXTsKCXU4CWVwX2RtYV91bml0OwoJdTgJcmVzMlszXTsKCXU4CWVwX2RtYV9maWZvOwoJdTgJcmVzM1szXTsKCXU4CWVwX2RtYV90dGNfbDsKCXU4CXJlczRbM107Cgl1OAllcF9kbWFfdHRjX207Cgl1OAlyZXM1WzNdOwoJdTgJZXBfZG1hX3R0Y19oOwoJdTgJcmVzNlszXTsKI2VuZGlmCn07CgpzdHJ1Y3QgczNjMjR4MF91c2JfZGV2aWNlIHsKI2lmZGVmIF9fQklHX0VORElBTgoJdTgJcmVzMVszXTsKCXU4CWZ1bmNfYWRkcl9yZWc7Cgl1OAlyZXMyWzNdOwoJdTgJcHdyX3JlZzsKCXU4CXJlczNbM107Cgl1OAllcF9pbnRfcmVnOwoJdTgJcmVzNFsxNV07Cgl1OAl1c2JfaW50X3JlZzsKCXU4CXJlczVbM107Cgl1OAllcF9pbnRfZW5fcmVnOwoJdTgJcmVzNlsxNV07Cgl1OAl1c2JfaW50X2VuX3JlZzsKCXU4CXJlczdbM107Cgl1OAlmcmFtZV9udW0xX3JlZzsKCXU4CXJlczhbM107Cgl1OAlmcmFtZV9udW0yX3JlZzsKCXU4CXJlczlbM107Cgl1OAlpbmRleF9yZWc7Cgl1OAlyZXMxMFs3XTsKCXU4CW1heHBfcmVnOwoJdTgJcmVzMTFbM107Cgl1OAllcDBfY3NyX2luX2NzcjFfcmVnOwoJdTgJcmVzMTJbM107Cgl1OAlpbl9jc3IyX3JlZzsKCXU4CXJlczEzWzddOwoJdTgJb3V0X2NzcjFfcmVnOwoJdTgJcmVzMTRbM107Cgl1OAlvdXRfY3NyMl9yZWc7Cgl1OAlyZXMxNVszXTsKCXU4CW91dF9maWZvX2NudDFfcmVnOwoJdTgJcmVzMTZbM107Cgl1OAlvdXRfZmlmb19jbnQyX3JlZzsKI2Vsc2UgLyogIGxpdHRsZSBlbmRpYW4gKi8KCXU4CWZ1bmNfYWRkcl9yZWc7Cgl1OAlyZXMxWzNdOwoJdTgJcHdyX3JlZzsKCXU4CXJlczJbM107Cgl1OAllcF9pbnRfcmVnOwoJdTgJcmVzM1sxNV07Cgl1OAl1c2JfaW50X3JlZzsKCXU4CXJlczRbM107Cgl1OAllcF9pbnRfZW5fcmVnOwoJdTgJcmVzNVsxNV07Cgl1OAl1c2JfaW50X2VuX3JlZzsKCXU4CXJlczZbM107Cgl1OAlmcmFtZV9udW0xX3JlZzsKCXU4CXJlczdbM107Cgl1OAlmcmFtZV9udW0yX3JlZzsKCXU4CXJlczhbM107Cgl1OAlpbmRleF9yZWc7Cgl1OAlyZXM5WzddOwoJdTgJbWF4cF9yZWc7Cgl1OAlyZXMxMFs3XTsKCXU4CWVwMF9jc3JfaW5fY3NyMV9yZWc7Cgl1OAlyZXMxMVszXTsKCXU4CWluX2NzcjJfcmVnOwoJdTgJcmVzMTJbM107Cgl1OAlvdXRfY3NyMV9yZWc7Cgl1OAlyZXMxM1s3XTsKCXU4CW91dF9jc3IyX3JlZzsKCXU4CXJlczE0WzNdOwoJdTgJb3V0X2ZpZm9fY250MV9yZWc7Cgl1OAlyZXMxNVszXTsKCXU4CW91dF9maWZvX2NudDJfcmVnOwoJdTgJcmVzMTZbM107CiNlbmRpZiAvKiAgX19CSUdfRU5ESUFOICovCglzdHJ1Y3QgczNjMjR4MF91c2JfZGV2X2ZpZm9zCWZpZm9bNV07CglzdHJ1Y3QgczNjMjR4MF91c2JfZGV2X2RtYXMJZG1hWzVdOwp9OwoKCi8qIFdBVENIIERPRyBUSU1FUiAoc2VlIG1hbnVhbCBjaGFwdGVyIDE4KSAqLwpzdHJ1Y3QgczNjMjR4MF93YXRjaGRvZyB7Cgl1MzIJd3Rjb247Cgl1MzIJd3RkYXQ7Cgl1MzIJd3RjbnQ7Cn07CgoKLyogSUlDIChzZWUgbWFudWFsIGNoYXB0ZXIgMjApICovCnN0cnVjdCBzM2MyNHgwX2kyYyB7Cgl1MzIJaWljY29uOwoJdTMyCWlpY3N0YXQ7Cgl1MzIJaWljYWRkOwoJdTMyCWlpY2RzOwp9OwoKCi8qIElJUyAoc2VlIG1hbnVhbCBjaGFwdGVyIDIxKSAqLwpzdHJ1Y3QgczNjMjR4MF9pMnMgewojaWZkZWYgX19CSUdfRU5ESUFOCgl1MTYJcmVzMTsKCXUxNglpaXNjb247Cgl1MTYJcmVzMjsKCXUxNglpaXNtb2Q7Cgl1MTYJcmVzMzsKCXUxNglpaXNwc3I7Cgl1MTYJcmVzNDsKCXUxNglpaXNmY29uOwoJdTE2CXJlczU7Cgl1MTYJaWlzZmlmbzsKI2Vsc2UgLyogIGxpdHRsZSBlbmRpYW4gKi8KCXUxNglpaXNjb247Cgl1MTYJcmVzMTsKCXUxNglpaXNtb2Q7Cgl1MTYJcmVzMjsKCXUxNglpaXNwc3I7Cgl1MTYJcmVzMzsKCXUxNglpaXNmY29uOwoJdTE2CXJlczQ7Cgl1MTYJaWlzZmlmbzsKCXUxNglyZXM1OwojZW5kaWYKfTsKCgovKiBJL08gUE9SVCAoc2VlIG1hbnVhbCBjaGFwdGVyIDkpICovCnN0cnVjdCBzM2MyNHgwX2dwaW8gewojaWZkZWYgQ09ORklHX1MzQzI0MDAKCXUzMglwYWNvbjsKCXUzMglwYWRhdDsKCgl1MzIJcGJjb247Cgl1MzIJcGJkYXQ7Cgl1MzIJcGJ1cDsKCgl1MzIJcGNjb247Cgl1MzIJcGNkYXQ7Cgl1MzIJcGN1cDsKCgl1MzIJcGRjb247Cgl1MzIJcGRkYXQ7Cgl1MzIJcGR1cDsKCgl1MzIJcGVjb247Cgl1MzIJcGVkYXQ7Cgl1MzIJcGV1cDsKCgl1MzIJcGZjb247Cgl1MzIJcGZkYXQ7Cgl1MzIJcGZ1cDsKCgl1MzIJcGdjb247Cgl1MzIJcGdkYXQ7Cgl1MzIJcGd1cDsKCgl1MzIJb3BlbmNyOwoKCXUzMgltaXNjY3I7Cgl1MzIJZXh0aW50OwojZW5kaWYKI2lmZGVmIENPTkZJR19TM0MyNDEwCgl1MzIJZ3BhY29uOwoJdTMyCWdwYWRhdDsKCXUzMglyZXMxWzJdOwoJdTMyCWdwYmNvbjsKCXUzMglncGJkYXQ7Cgl1MzIJZ3BidXA7Cgl1MzIJcmVzMjsKCXUzMglncGNjb247Cgl1MzIJZ3BjZGF0OwoJdTMyCWdwY3VwOwoJdTMyCXJlczM7Cgl1MzIJZ3BkY29uOwoJdTMyCWdwZGRhdDsKCXUzMglncGR1cDsKCXUzMglyZXM0OwoJdTMyCWdwZWNvbjsKCXUzMglncGVkYXQ7Cgl1MzIJZ3BldXA7Cgl1MzIJcmVzNTsKCXUzMglncGZjb247Cgl1MzIJZ3BmZGF0OwoJdTMyCWdwZnVwOwoJdTMyCXJlczY7Cgl1MzIJZ3BnY29uOwoJdTMyCWdwZ2RhdDsKCXUzMglncGd1cDsKCXUzMglyZXM3OwoJdTMyCWdwaGNvbjsKCXUzMglncGhkYXQ7Cgl1MzIJZ3BodXA7Cgl1MzIJcmVzODsKCgl1MzIJbWlzY2NyOwoJdTMyCWRjbGtjb247Cgl1MzIJZXh0aW50MDsKCXUzMglleHRpbnQxOwoJdTMyCWV4dGludDI7Cgl1MzIJZWludGZsdDA7Cgl1MzIJZWludGZsdDE7Cgl1MzIJZWludGZsdDI7Cgl1MzIJZWludGZsdDM7Cgl1MzIJZWludG1hc2s7Cgl1MzIJZWludHBlbmQ7Cgl1MzIJZ3N0YXR1czA7Cgl1MzIJZ3N0YXR1czE7Cgl1MzIJZ3N0YXR1czI7Cgl1MzIJZ3N0YXR1czM7Cgl1MzIJZ3N0YXR1czQ7CiNlbmRpZgojaWYgZGVmaW5lZChDT05GSUdfUzNDMjQ0MCkKCXUzMglncGFjb247Cgl1MzIJZ3BhZGF0OwoJdTMyCXJlczFbMl07Cgl1MzIJZ3BiY29uOwoJdTMyCWdwYmRhdDsKCXUzMglncGJ1cDsKCXUzMglyZXMyOwoJdTMyCWdwY2NvbjsKCXUzMglncGNkYXQ7Cgl1MzIJZ3BjdXA7Cgl1MzIJcmVzMzsKCXUzMglncGRjb247Cgl1MzIJZ3BkZGF0OwoJdTMyCWdwZHVwOwoJdTMyCXJlczQ7Cgl1MzIJZ3BlY29uOwoJdTMyCWdwZWRhdDsKCXUzMglncGV1cDsKCXUzMglyZXM1OwoJdTMyCWdwZmNvbjsKCXUzMglncGZkYXQ7Cgl1MzIJZ3BmdXA7Cgl1MzIJcmVzNjsKCXUzMglncGdjb247Cgl1MzIJZ3BnZGF0OwoJdTMyCWdwZ3VwOwoJdTMyCXJlczc7Cgl1MzIJZ3BoY29uOwoJdTMyCWdwaGRhdDsKCXUzMglncGh1cDsKCXUzMglyZXM4OwoKCXUzMgltaXNjY3I7Cgl1MzIJZGNsa2NvbjsKCXUzMglleHRpbnQwOwoJdTMyCWV4dGludDE7Cgl1MzIJZXh0aW50MjsKCXUzMgllaW50Zmx0MDsKCXUzMgllaW50Zmx0MTsKCXUzMgllaW50Zmx0MjsKCXUzMgllaW50Zmx0MzsKCXUzMgllaW50bWFzazsKCXUzMgllaW50cGVuZDsKCXUzMglnc3RhdHVzMDsKCXUzMglnc3RhdHVzMTsKCXUzMglnc3RhdHVzMjsKCXUzMglnc3RhdHVzMzsKCXUzMglnc3RhdHVzNDsKCgl1MzIJcmVzOTsKCXUzMglkc2MwOwoJdTMyCWRzYzE7Cgl1MzIJbXNsY29uOwoJdTMyCWdwamNvbjsKCXUzMglncGpkYXQ7Cgl1MzIJZ3BqdXA7Cgl1MzIJcmVzMTA7CiNlbmRpZgp9OwoKCi8qIFJUQyAoc2VlIG1hbnVhbCBjaGFwdGVyIDE3KSAqLwpzdHJ1Y3QgczNjMjR4MF9ydGMgewojaWZkZWYgX19CSUdfRU5ESUFOCgl1OAlyZXMxWzY3XTsKCXU4CXJ0Y2NvbjsKCXU4CXJlczJbM107Cgl1OAl0aWNudDsKCXU4CXJlczNbMTFdOwoJdTgJcnRjYWxtOwoJdTgJcmVzNFszXTsKCXU4CWFsbXNlYzsKCXU4CXJlczVbM107Cgl1OAlhbG1taW47Cgl1OAlyZXM2WzNdOwoJdTgJYWxtaG91cjsKCXU4CXJlczdbM107Cgl1OAlhbG1kYXRlOwoJdTgJcmVzOFszXTsKCXU4CWFsbW1vbjsKCXU4CXJlczlbM107Cgl1OAlhbG15ZWFyOwoJdTgJcmVzMTBbM107Cgl1OAlydGNyc3Q7Cgl1OAlyZXMxMVszXTsKCXU4CWJjZHNlYzsKCXU4CXJlczEyWzNdOwoJdTgJYmNkbWluOwoJdTgJcmVzMTNbM107Cgl1OAliY2Rob3VyOwoJdTgJcmVzMTRbM107Cgl1OAliY2RkYXRlOwoJdTgJcmVzMTVbM107Cgl1OAliY2RkYXk7Cgl1OAlyZXMxNlszXTsKCXU4CWJjZG1vbjsKCXU4CXJlczE3WzNdOwoJdTgJYmNkeWVhcjsKI2Vsc2UgLyogIGxpdHRsZSBlbmRpYW4gKi8KCXU4CXJlczBbNjRdOwoJdTgJcnRjY29uOwoJdTgJcmVzMVszXTsKCXU4CXRpY250OwoJdTgJcmVzMlsxMV07Cgl1OAlydGNhbG07Cgl1OAlyZXMzWzNdOwoJdTgJYWxtc2VjOwoJdTgJcmVzNFszXTsKCXU4CWFsbW1pbjsKCXU4CXJlczVbM107Cgl1OAlhbG1ob3VyOwoJdTgJcmVzNlszXTsKCXU4CWFsbWRhdGU7Cgl1OAlyZXM3WzNdOwoJdTgJYWxtbW9uOwoJdTgJcmVzOFszXTsKCXU4CWFsbXllYXI7Cgl1OAlyZXM5WzNdOwoJdTgJcnRjcnN0OwoJdTgJcmVzMTBbM107Cgl1OAliY2RzZWM7Cgl1OAlyZXMxMVszXTsKCXU4CWJjZG1pbjsKCXU4CXJlczEyWzNdOwoJdTgJYmNkaG91cjsKCXU4CXJlczEzWzNdOwoJdTgJYmNkZGF0ZTsKCXU4CXJlczE0WzNdOwoJdTgJYmNkZGF5OwoJdTgJcmVzMTVbM107Cgl1OAliY2Rtb247Cgl1OAlyZXMxNlszXTsKCXU4CWJjZHllYXI7Cgl1OAlyZXMxN1szXTsKI2VuZGlmCn07CgoKLyogQURDIChzZWUgbWFudWFsIGNoYXB0ZXIgMTYpICovCnN0cnVjdCBzM2MyNDAwX2FkYyB7Cgl1MzIJYWRjY29uOwoJdTMyCWFkY2RhdDsKfTsKCgovKiBBREMgKHNlZSBtYW51YWwgY2hhcHRlciAxNikgKi8Kc3RydWN0IHMzYzI0MTBfYWRjIHsKCXUzMglhZGNjb247Cgl1MzIJYWRjdHNjOwoJdTMyCWFkY2RseTsKCXUzMglhZGNkYXQwOwoJdTMyCWFkY2RhdDE7Cn07CgoKLyogU1BJIChzZWUgbWFudWFsIGNoYXB0ZXIgMjIpICovCnN0cnVjdCBzM2MyNHgwX3NwaV9jaGFubmVsIHsKCXU4CXNwY29uOwoJdTgJcmVzMVszXTsKCXU4CXNwc3RhOwoJdTgJcmVzMlszXTsKCXU4CXNwcGluOwoJdTgJcmVzM1szXTsKCXU4CXNwcHJlOwoJdTgJcmVzNFszXTsKCXU4CXNwdGRhdDsKCXU4CXJlczVbM107Cgl1OAlzcHJkYXQ7Cgl1OAlyZXM2WzNdOwoJdTgJcmVzN1sxNl07Cn07CgpzdHJ1Y3QgczNjMjR4MF9zcGkgewoJc3RydWN0IHMzYzI0eDBfc3BpX2NoYW5uZWwJY2hbUzNDMjRYMF9TUElfQ0hBTk5FTFNdOwp9OwoKCi8qIE1NQyBJTlRFUkZBQ0UgKHNlZSBTM0MyNDAwIG1hbnVhbCBjaGFwdGVyIDE5KSAqLwpzdHJ1Y3QgczNjMjQwMF9tbWMgewojaWZkZWYgX19CSUdfRU5ESUFOCgl1OAlyZXMxWzNdOwoJdTgJbW1jb247Cgl1OAlyZXMyWzNdOwoJdTgJbW1jcnI7Cgl1OAlyZXMzWzNdOwoJdTgJbW1mY29uOwoJdTgJcmVzNFszXTsKCXU4CW1tc3RhOwoJdTE2CXJlczU7Cgl1MTYJbW1mc3RhOwoJdTgJcmVzNlszXTsKCXU4CW1tcHJlOwoJdTE2CXJlczc7Cgl1MTYJbW1sZW47Cgl1OAlyZXM4WzNdOwoJdTgJbW1jcjc7Cgl1MzIJbW1yc3BbNF07Cgl1OAlyZXM5WzNdOwoJdTgJbW1jbWQwOwoJdTMyCW1tY21kMTsKCXUxNglyZXMxMDsKCXUxNgltbWNyMTY7Cgl1OAlyZXMxMVszXTsKCXU4CW1tZGF0OwojZWxzZQoJdTgJbW1jb247Cgl1OAlyZXMxWzNdOwoJdTgJbW1jcnI7Cgl1OAlyZXMyWzNdOwoJdTgJbW1mY29uOwoJdTgJcmVzM1szXTsKCXU4CW1tc3RhOwoJdTgJcmVzNFszXTsKCXUxNgltbWZzdGE7Cgl1MTYJcmVzNTsKCXU4CW1tcHJlOwoJdTgJcmVzNlszXTsKCXUxNgltbWxlbjsKCXUxNglyZXM3OwoJdTgJbW1jcjc7Cgl1OAlyZXM4WzNdOwoJdTMyCW1tcnNwWzRdOwoJdTgJbW1jbWQwOwoJdTgJcmVzOVszXTsKCXUzMgltbWNtZDE7Cgl1MTYJbW1jcjE2OwoJdTE2CXJlczEwOwoJdTgJbW1kYXQ7Cgl1OAlyZXMxMVszXTsKI2VuZGlmCn07CgoKLyogU0QgSU5URVJGQUNFIChzZWUgUzNDMjQxMCBtYW51YWwgY2hhcHRlciAxOSkgKi8Kc3RydWN0IHMzYzI0MTBfc2RpIHsKCXUzMglzZGljb247Cgl1MzIJc2RpcHJlOwoJdTMyCXNkaWNhcmc7Cgl1MzIJc2RpY2NvbjsKCXUzMglzZGljc3RhOwoJdTMyCXNkaXJzcDA7Cgl1MzIJc2RpcnNwMTsKCXUzMglzZGlyc3AyOwoJdTMyCXNkaXJzcDM7Cgl1MzIJc2RpZHRpbWVyOwoJdTMyCXNkaWJzaXplOwoJdTMyCXNkaWRjb247Cgl1MzIJc2RpZGNudDsKCXUzMglzZGlkc3RhOwoJdTMyCXNkaWZzdGE7CiNpZmRlZiBfX0JJR19FTkRJQU4KCXU4CXJlc1szXTsKCXU4CXNkaWRhdDsKI2Vsc2UKCXU4CXNkaWRhdDsKCXU4CXJlc1szXTsKI2VuZGlmCgl1MzIJc2RpaW1zazsKfTsKCiNlbmRpZiAvKl9fUzNDMjRYMF9IX18qLwo=