LyoKICogKEMpIENvcHlyaWdodCAyMDAzCiAqIERhdmlkIE38bGxlciBFTFNPRlQgQUcgU3dpdHplcmxhbmQuIGQubXVlbGxlckBlbHNvZnQuY2gKICoKICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKICogcHJvamVjdC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgogKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKICogTUEgMDIxMTEtMTMwNyBVU0EKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIE5BTUUJICAgIDogczNjMjR4MC5oCiAqIFZlcnNpb24gIDogMzEuMy4yMDAzCiAqCiAqIGNvbW1vbiBzdHVmZiBmb3IgU0FNU1VORyBTM0MyNFgwIFNvQwogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKI2lmbmRlZiBfX1MzQzI0WDBfSF9fCiNkZWZpbmUgX19TM0MyNFgwX0hfXwoKLyogTWVtb3J5IGNvbnRyb2xsZXIgKHNlZSBtYW51YWwgY2hhcHRlciA1KSAqLwpzdHJ1Y3QgczNjMjR4MF9tZW1jdGwgewoJdTMyCUJXU0NPTjsKCXUzMglCQU5LQ09OWzhdOwoJdTMyCVJFRlJFU0g7Cgl1MzIJQkFOS1NJWkU7Cgl1MzIJTVJTUkI2OwoJdTMyCU1SU1JCNzsKfTsKCgovKiBVU0IgSE9TVCAoc2VlIG1hbnVhbCBjaGFwdGVyIDEyKSAqLwpzdHJ1Y3QgczNjMjR4MF91c2JfaG9zdCB7Cgl1MzIJSGNSZXZpc2lvbjsKCXUzMglIY0NvbnRyb2w7Cgl1MzIJSGNDb21tb25TdGF0dXM7Cgl1MzIJSGNJbnRlcnJ1cHRTdGF0dXM7Cgl1MzIJSGNJbnRlcnJ1cHRFbmFibGU7Cgl1MzIJSGNJbnRlcnJ1cHREaXNhYmxlOwoJdTMyCUhjSENDQTsKCXUzMglIY1BlcmlvZEN1dHRlbmRFRDsKCXUzMglIY0NvbnRyb2xIZWFkRUQ7Cgl1MzIJSGNDb250cm9sQ3VycmVudEVEOwoJdTMyCUhjQnVsa0hlYWRFRDsKCXUzMglIY0J1bGRDdXJyZW50RUQ7Cgl1MzIJSGNEb25lSGVhZDsKCXUzMglIY1JtSW50ZXJ2YWw7Cgl1MzIJSGNGbVJlbWFpbmluZzsKCXUzMglIY0ZtTnVtYmVyOwoJdTMyCUhjUGVyaW9kaWNTdGFydDsKCXUzMglIY0xTVGhyZXNob2xkOwoJdTMyCUhjUmhEZXNjcmlwdG9yQTsKCXUzMglIY1JoRGVzY3JpcHRvckI7Cgl1MzIJSGNSaFN0YXR1czsKCXUzMglIY1JoUG9ydFN0YXR1czE7Cgl1MzIJSGNSaFBvcnRTdGF0dXMyOwp9OwoKCi8qIElOVEVSUlVQVCAoc2VlIG1hbnVhbCBjaGFwdGVyIDE0KSAqLwpzdHJ1Y3QgczNjMjR4MF9pbnRlcnJ1cHQgewoJdTMyCVNSQ1BORDsKCXUzMglJTlRNT0Q7Cgl1MzIJSU5UTVNLOwoJdTMyCVBSSU9SSVRZOwoJdTMyCUlOVFBORDsKCXUzMglJTlRPRkZTRVQ7CiNpZmRlZiBDT05GSUdfUzNDMjQxMAoJdTMyCVNVQlNSQ1BORDsKCXUzMglJTlRTVUJNU0s7CiNlbmRpZgp9OwoKCi8qIERNQVMgKHNlZSBtYW51YWwgY2hhcHRlciA4KSAqLwpzdHJ1Y3QgczNjMjR4MF9kbWEgewoJdTMyCURJU1JDOwojaWZkZWYgQ09ORklHX1MzQzI0MTAKCXUzMglESVNSQ0M7CiNlbmRpZgoJdTMyCURJRFNUOwojaWZkZWYgQ09ORklHX1MzQzI0MTAKCXUzMglESURTVEM7CiNlbmRpZgoJdTMyCURDT047Cgl1MzIJRFNUQVQ7Cgl1MzIJRENTUkM7Cgl1MzIJRENEU1Q7Cgl1MzIJRE1BU0tUUklHOwojaWZkZWYgQ09ORklHX1MzQzI0MDAKCXUzMglyZXNbMV07CiNlbmRpZgojaWZkZWYgQ09ORklHX1MzQzI0MTAKCXUzMglyZXNbN107CiNlbmRpZgp9OwoKc3RydWN0IHMzYzI0eDBfZG1hcyB7CglzdHJ1Y3QgczNjMjR4MF9kbWEJZG1hWzRdOwp9OwoKCi8qIENMT0NLICYgUE9XRVIgTUFOQUdFTUVOVCAoc2VlIFMzQzI0MDAgbWFudWFsIGNoYXB0ZXIgNikgKi8KLyogICAgICAgICAgICAgICAgICAgICAgICAgIChzZWUgUzNDMjQxMCBtYW51YWwgY2hhcHRlciA3KSAqLwpzdHJ1Y3QgczNjMjR4MF9jbG9ja19wb3dlciB7Cgl1MzIJTE9DS1RJTUU7Cgl1MzIJTVBMTENPTjsKCXUzMglVUExMQ09OOwoJdTMyCUNMS0NPTjsKCXUzMglDTEtTTE9XOwoJdTMyCUNMS0RJVk47Cn07CgoKLyogTENEIENPTlRST0xMRVIgKHNlZSBtYW51YWwgY2hhcHRlciAxNSkgKi8Kc3RydWN0IHMzYzI0eDBfbGNkIHsKCXUzMglMQ0RDT04xOwoJdTMyCUxDRENPTjI7Cgl1MzIJTENEQ09OMzsKCXUzMglMQ0RDT040OwoJdTMyCUxDRENPTjU7Cgl1MzIJTENEU0FERFIxOwoJdTMyCUxDRFNBRERSMjsKCXUzMglMQ0RTQUREUjM7Cgl1MzIJUkVETFVUOwoJdTMyCUdSRUVOTFVUOwoJdTMyCUJMVUVMVVQ7Cgl1MzIJcmVzWzhdOwoJdTMyCURJVEhNT0RFOwoJdTMyCVRQQUw7CiNpZmRlZiBDT05GSUdfUzNDMjQxMAoJdTMyCUxDRElOVFBORDsKCXUzMglMQ0RTUkNQTkQ7Cgl1MzIJTENESU5UTVNLOwoJdTMyCUxQQ1NFTDsKI2VuZGlmCn07CgoKLyogTkFORCBGTEFTSCAoc2VlIFMzQzI0MTAgbWFudWFsIGNoYXB0ZXIgNikgKi8Kc3RydWN0IHMzYzI0MTBfbmFuZCB7Cgl1MzIJTkZDT05GOwoJdTMyCU5GQ01EOwoJdTMyCU5GQUREUjsKCXUzMglORkRBVEE7Cgl1MzIJTkZTVEFUOwoJdTMyCU5GRUNDOwp9OwoKCi8qIFVBUlQgKHNlZSBtYW51YWwgY2hhcHRlciAxMSkgKi8Kc3RydWN0IHMzYzI0eDBfdWFydCB7Cgl1MzIJVUxDT047Cgl1MzIJVUNPTjsKCXUzMglVRkNPTjsKCXUzMglVTUNPTjsKCXUzMglVVFJTVEFUOwoJdTMyCVVFUlNUQVQ7Cgl1MzIJVUZTVEFUOwoJdTMyCVVNU1RBVDsKI2lmZGVmIF9fQklHX0VORElBTgoJdTgJcmVzMVszXTsKCXU4CVVUWEg7Cgl1OAlyZXMyWzNdOwoJdTgJVVJYSDsKI2Vsc2UgLyogTGl0dGxlIEVuZGlhbiAqLwoJdTgJVVRYSDsKCXU4CXJlczFbM107Cgl1OAlVUlhIOwoJdTgJcmVzMlszXTsKI2VuZGlmCgl1MzIJVUJSRElWOwp9OwoKCi8qIFBXTSBUSU1FUiAoc2VlIG1hbnVhbCBjaGFwdGVyIDEwKSAqLwpzdHJ1Y3QgczNjMjR4MF90aW1lciB7Cgl1MzIJVENOVEI7Cgl1MzIJVENNUEI7Cgl1MzIJVENOVE87Cn07CgpzdHJ1Y3QgczNjMjR4MF90aW1lcnMgewoJdTMyCVRDRkcwOwoJdTMyCVRDRkcxOwoJdTMyCVRDT047CglzdHJ1Y3QgczNjMjR4MF90aW1lcgljaFs0XTsKCXUzMglUQ05UQjQ7Cgl1MzIJVENOVE80Owp9OwoKCi8qIFVTQiBERVZJQ0UgKHNlZSBtYW51YWwgY2hhcHRlciAxMykgKi8Kc3RydWN0IHMzYzI0eDBfdXNiX2Rldl9maWZvcyB7CiNpZmRlZiBfX0JJR19FTkRJQU4KCXU4CXJlc1szXTsKCXU4CUVQX0ZJRk9fUkVHOwojZWxzZSAvKiAgbGl0dGxlIGVuZGlhbiAqLwoJdTgJRVBfRklGT19SRUc7Cgl1OAlyZXNbM107CiNlbmRpZgp9OwoKc3RydWN0IHMzYzI0eDBfdXNiX2Rldl9kbWFzIHsKI2lmZGVmIF9fQklHX0VORElBTgoJdTgJcmVzMVszXTsKCXU4CUVQX0RNQV9DT047Cgl1OAlyZXMyWzNdOwoJdTgJRVBfRE1BX1VOSVQ7Cgl1OAlyZXMzWzNdOwoJdTgJRVBfRE1BX0ZJRk87Cgl1OAlyZXM0WzNdOwoJdTgJRVBfRE1BX1RUQ19MOwoJdTgJcmVzNVszXTsKCXU4CUVQX0RNQV9UVENfTTsKCXU4CXJlczZbM107Cgl1OAlFUF9ETUFfVFRDX0g7CiNlbHNlIC8qICBsaXR0bGUgZW5kaWFuICovCgl1OAlFUF9ETUFfQ09OOwoJdTgJcmVzMVszXTsKCXU4CUVQX0RNQV9VTklUOwoJdTgJcmVzMlszXTsKCXU4CUVQX0RNQV9GSUZPOwoJdTgJcmVzM1szXTsKCXU4CUVQX0RNQV9UVENfTDsKCXU4CXJlczRbM107Cgl1OAlFUF9ETUFfVFRDX007Cgl1OAlyZXM1WzNdOwoJdTgJRVBfRE1BX1RUQ19IOwoJdTgJcmVzNlszXTsKI2VuZGlmCn07CgpzdHJ1Y3QgczNjMjR4MF91c2JfZGV2aWNlIHsKI2lmZGVmIF9fQklHX0VORElBTgoJdTgJcmVzMVszXTsKCXU4CUZVTkNfQUREUl9SRUc7Cgl1OAlyZXMyWzNdOwoJdTgJUFdSX1JFRzsKCXU4CXJlczNbM107Cgl1OAlFUF9JTlRfUkVHOwoJdTgJcmVzNFsxNV07Cgl1OAlVU0JfSU5UX1JFRzsKCXU4CXJlczVbM107Cgl1OAlFUF9JTlRfRU5fUkVHOwoJdTgJcmVzNlsxNV07Cgl1OAlVU0JfSU5UX0VOX1JFRzsKCXU4CXJlczdbM107Cgl1OAlGUkFNRV9OVU0xX1JFRzsKCXU4CXJlczhbM107Cgl1OAlGUkFNRV9OVU0yX1JFRzsKCXU4CXJlczlbM107Cgl1OAlJTkRFWF9SRUc7Cgl1OAlyZXMxMFs3XTsKCXU4CU1BWFBfUkVHOwoJdTgJcmVzMTFbM107Cgl1OAlFUDBfQ1NSX0lOX0NTUjFfUkVHOwoJdTgJcmVzMTJbM107Cgl1OAlJTl9DU1IyX1JFRzsKCXU4CXJlczEzWzddOwoJdTgJT1VUX0NTUjFfUkVHOwoJdTgJcmVzMTRbM107Cgl1OAlPVVRfQ1NSMl9SRUc7Cgl1OAlyZXMxNVszXTsKCXU4CU9VVF9GSUZPX0NOVDFfUkVHOwoJdTgJcmVzMTZbM107Cgl1OAlPVVRfRklGT19DTlQyX1JFRzsKI2Vsc2UgLyogIGxpdHRsZSBlbmRpYW4gKi8KCXU4CUZVTkNfQUREUl9SRUc7Cgl1OAlyZXMxWzNdOwoJdTgJUFdSX1JFRzsKCXU4CXJlczJbM107Cgl1OAlFUF9JTlRfUkVHOwoJdTgJcmVzM1sxNV07Cgl1OAlVU0JfSU5UX1JFRzsKCXU4CXJlczRbM107Cgl1OAlFUF9JTlRfRU5fUkVHOwoJdTgJcmVzNVsxNV07Cgl1OAlVU0JfSU5UX0VOX1JFRzsKCXU4CXJlczZbM107Cgl1OAlGUkFNRV9OVU0xX1JFRzsKCXU4CXJlczdbM107Cgl1OAlGUkFNRV9OVU0yX1JFRzsKCXU4CXJlczhbM107Cgl1OAlJTkRFWF9SRUc7Cgl1OAlyZXM5WzddOwoJdTgJTUFYUF9SRUc7Cgl1OAlyZXMxMFs3XTsKCXU4CUVQMF9DU1JfSU5fQ1NSMV9SRUc7Cgl1OAlyZXMxMVszXTsKCXU4CUlOX0NTUjJfUkVHOwoJdTgJcmVzMTJbM107Cgl1OAlPVVRfQ1NSMV9SRUc7Cgl1OAlyZXMxM1s3XTsKCXU4CU9VVF9DU1IyX1JFRzsKCXU4CXJlczE0WzNdOwoJdTgJT1VUX0ZJRk9fQ05UMV9SRUc7Cgl1OAlyZXMxNVszXTsKCXU4CU9VVF9GSUZPX0NOVDJfUkVHOwoJdTgJcmVzMTZbM107CiNlbmRpZiAvKiAgX19CSUdfRU5ESUFOICovCglzdHJ1Y3QgczNjMjR4MF91c2JfZGV2X2ZpZm9zCWZpZm9bNV07CglzdHJ1Y3QgczNjMjR4MF91c2JfZGV2X2RtYXMJZG1hWzVdOwp9OwoKCi8qIFdBVENIIERPRyBUSU1FUiAoc2VlIG1hbnVhbCBjaGFwdGVyIDE4KSAqLwpzdHJ1Y3QgczNjMjR4MF93YXRjaGRvZyB7Cgl1MzIJV1RDT047Cgl1MzIJV1REQVQ7Cgl1MzIJV1RDTlQ7Cn07CgoKLyogSUlDIChzZWUgbWFudWFsIGNoYXB0ZXIgMjApICovCnN0cnVjdCBzM2MyNHgwX2kyYyB7Cgl1MzIJSUlDQ09OOwoJdTMyCUlJQ1NUQVQ7Cgl1MzIJSUlDQUREOwoJdTMyCUlJQ0RTOwp9OwoKCi8qIElJUyAoc2VlIG1hbnVhbCBjaGFwdGVyIDIxKSAqLwpzdHJ1Y3QgczNjMjR4MF9pMnMgewojaWZkZWYgX19CSUdfRU5ESUFOCgl1MTYJcmVzMTsKCXUxNglJSVNDT047Cgl1MTYJcmVzMjsKCXUxNglJSVNNT0Q7Cgl1MTYJcmVzMzsKCXUxNglJSVNQU1I7Cgl1MTYJcmVzNDsKCXUxNglJSVNGQ09OOwoJdTE2CXJlczU7Cgl1MTYJSUlTRklGTzsKI2Vsc2UgLyogIGxpdHRsZSBlbmRpYW4gKi8KCXUxNglJSVNDT047Cgl1MTYJcmVzMTsKCXUxNglJSVNNT0Q7Cgl1MTYJcmVzMjsKCXUxNglJSVNQU1I7Cgl1MTYJcmVzMzsKCXUxNglJSVNGQ09OOwoJdTE2CXJlczQ7Cgl1MTYJSUlTRklGTzsKCXUxNglyZXM1OwojZW5kaWYKfTsKCgovKiBJL08gUE9SVCAoc2VlIG1hbnVhbCBjaGFwdGVyIDkpICovCnN0cnVjdCBzM2MyNHgwX2dwaW8gewojaWZkZWYgQ09ORklHX1MzQzI0MDAKCXUzMglQQUNPTjsKCXUzMglQQURBVDsKCgl1MzIJUEJDT047Cgl1MzIJUEJEQVQ7Cgl1MzIJUEJVUDsKCgl1MzIJUENDT047Cgl1MzIJUENEQVQ7Cgl1MzIJUENVUDsKCgl1MzIJUERDT047Cgl1MzIJUEREQVQ7Cgl1MzIJUERVUDsKCgl1MzIJUEVDT047Cgl1MzIJUEVEQVQ7Cgl1MzIJUEVVUDsKCgl1MzIJUEZDT047Cgl1MzIJUEZEQVQ7Cgl1MzIJUEZVUDsKCgl1MzIJUEdDT047Cgl1MzIJUEdEQVQ7Cgl1MzIJUEdVUDsKCgl1MzIJT1BFTkNSOwoKCXUzMglNSVNDQ1I7Cgl1MzIJRVhUSU5UOwojZW5kaWYKI2lmZGVmIENPTkZJR19TM0MyNDEwCgl1MzIJR1BBQ09OOwoJdTMyCUdQQURBVDsKCXUzMglyZXMxWzJdOwoJdTMyCUdQQkNPTjsKCXUzMglHUEJEQVQ7Cgl1MzIJR1BCVVA7Cgl1MzIJcmVzMjsKCXUzMglHUENDT047Cgl1MzIJR1BDREFUOwoJdTMyCUdQQ1VQOwoJdTMyCXJlczM7Cgl1MzIJR1BEQ09OOwoJdTMyCUdQRERBVDsKCXUzMglHUERVUDsKCXUzMglyZXM0OwoJdTMyCUdQRUNPTjsKCXUzMglHUEVEQVQ7Cgl1MzIJR1BFVVA7Cgl1MzIJcmVzNTsKCXUzMglHUEZDT047Cgl1MzIJR1BGREFUOwoJdTMyCUdQRlVQOwoJdTMyCXJlczY7Cgl1MzIJR1BHQ09OOwoJdTMyCUdQR0RBVDsKCXUzMglHUEdVUDsKCXUzMglyZXM3OwoJdTMyCUdQSENPTjsKCXUzMglHUEhEQVQ7Cgl1MzIJR1BIVVA7Cgl1MzIJcmVzODsKCgl1MzIJTUlTQ0NSOwoJdTMyCURDTEtDT047Cgl1MzIJRVhUSU5UMDsKCXUzMglFWFRJTlQxOwoJdTMyCUVYVElOVDI7Cgl1MzIJRUlOVEZMVDA7Cgl1MzIJRUlOVEZMVDE7Cgl1MzIJRUlOVEZMVDI7Cgl1MzIJRUlOVEZMVDM7Cgl1MzIJRUlOVE1BU0s7Cgl1MzIJRUlOVFBFTkQ7Cgl1MzIJR1NUQVRVUzA7Cgl1MzIJR1NUQVRVUzE7Cgl1MzIJR1NUQVRVUzI7Cgl1MzIJR1NUQVRVUzM7Cgl1MzIJR1NUQVRVUzQ7CiNlbmRpZgp9OwoKCi8qIFJUQyAoc2VlIG1hbnVhbCBjaGFwdGVyIDE3KSAqLwpzdHJ1Y3QgczNjMjR4MF9ydGMgewojaWZkZWYgX19CSUdfRU5ESUFOCgl1OAlyZXMxWzY3XTsKCXU4CVJUQ0NPTjsKCXU4CXJlczJbM107Cgl1OAlUSUNOVDsKCXU4CXJlczNbMTFdOwoJdTgJUlRDQUxNOwoJdTgJcmVzNFszXTsKCXU4CUFMTVNFQzsKCXU4CXJlczVbM107Cgl1OAlBTE1NSU47Cgl1OAlyZXM2WzNdOwoJdTgJQUxNSE9VUjsKCXU4CXJlczdbM107Cgl1OAlBTE1EQVRFOwoJdTgJcmVzOFszXTsKCXU4CUFMTU1PTjsKCXU4CXJlczlbM107Cgl1OAlBTE1ZRUFSOwoJdTgJcmVzMTBbM107Cgl1OAlSVENSU1Q7Cgl1OAlyZXMxMVszXTsKCXU4CUJDRFNFQzsKCXU4CXJlczEyWzNdOwoJdTgJQkNETUlOOwoJdTgJcmVzMTNbM107Cgl1OAlCQ0RIT1VSOwoJdTgJcmVzMTRbM107Cgl1OAlCQ0REQVRFOwoJdTgJcmVzMTVbM107Cgl1OAlCQ0REQVk7Cgl1OAlyZXMxNlszXTsKCXU4CUJDRE1PTjsKCXU4CXJlczE3WzNdOwoJdTgJQkNEWUVBUjsKI2Vsc2UgLyogIGxpdHRsZSBlbmRpYW4gKi8KCXU4CXJlczBbNjRdOwoJdTgJUlRDQ09OOwoJdTgJcmVzMVszXTsKCXU4CVRJQ05UOwoJdTgJcmVzMlsxMV07Cgl1OAlSVENBTE07Cgl1OAlyZXMzWzNdOwoJdTgJQUxNU0VDOwoJdTgJcmVzNFszXTsKCXU4CUFMTU1JTjsKCXU4CXJlczVbM107Cgl1OAlBTE1IT1VSOwoJdTgJcmVzNlszXTsKCXU4CUFMTURBVEU7Cgl1OAlyZXM3WzNdOwoJdTgJQUxNTU9OOwoJdTgJcmVzOFszXTsKCXU4CUFMTVlFQVI7Cgl1OAlyZXM5WzNdOwoJdTgJUlRDUlNUOwoJdTgJcmVzMTBbM107Cgl1OAlCQ0RTRUM7Cgl1OAlyZXMxMVszXTsKCXU4CUJDRE1JTjsKCXU4CXJlczEyWzNdOwoJdTgJQkNESE9VUjsKCXU4CXJlczEzWzNdOwoJdTgJQkNEREFURTsKCXU4CXJlczE0WzNdOwoJdTgJQkNEREFZOwoJdTgJcmVzMTVbM107Cgl1OAlCQ0RNT047Cgl1OAlyZXMxNlszXTsKCXU4CUJDRFlFQVI7Cgl1OAlyZXMxN1szXTsKI2VuZGlmCn07CgoKLyogQURDIChzZWUgbWFudWFsIGNoYXB0ZXIgMTYpICovCnN0cnVjdCBzM2MyNDAwX2FkYyB7Cgl1MzIJQURDQ09OOwoJdTMyCUFEQ0RBVDsKfTsKCgovKiBBREMgKHNlZSBtYW51YWwgY2hhcHRlciAxNikgKi8Kc3RydWN0IHMzYzI0MTBfYWRjIHsKCXUzMglBRENDT047Cgl1MzIJQURDVFNDOwoJdTMyCUFEQ0RMWTsKCXUzMglBRENEQVQwOwoJdTMyCUFEQ0RBVDE7Cn07CgoKLyogU1BJIChzZWUgbWFudWFsIGNoYXB0ZXIgMjIpICovCnN0cnVjdCBzM2MyNHgwX3NwaV9jaGFubmVsIHsKCXU4CVNQQ09OOwoJdTgJcmVzMVszXTsKCXU4CVNQU1RBOwoJdTgJcmVzMlszXTsKCXU4CVNQUElOOwoJdTgJcmVzM1szXTsKCXU4CVNQUFJFOwoJdTgJcmVzNFszXTsKCXU4CVNQVERBVDsKCXU4CXJlczVbM107Cgl1OAlTUFJEQVQ7Cgl1OAlyZXM2WzNdOwoJdTgJcmVzN1sxNl07Cn07CgpzdHJ1Y3QgczNjMjR4MF9zcGkgewoJc3RydWN0IHMzYzI0eDBfc3BpX2NoYW5uZWwJY2hbUzNDMjRYMF9TUElfQ0hBTk5FTFNdOwp9OwoKCi8qIE1NQyBJTlRFUkZBQ0UgKHNlZSBTM0MyNDAwIG1hbnVhbCBjaGFwdGVyIDE5KSAqLwpzdHJ1Y3QgczNjMjQwMF9tbWMgewojaWZkZWYgX19CSUdfRU5ESUFOCgl1OAlyZXMxWzNdOwoJdTgJTU1DT047Cgl1OAlyZXMyWzNdOwoJdTgJTU1DUlI7Cgl1OAlyZXMzWzNdOwoJdTgJTU1GQ09OOwoJdTgJcmVzNFszXTsKCXU4CU1NU1RBOwoJdTE2CXJlczU7Cgl1MTYJTU1GU1RBOwoJdTgJcmVzNlszXTsKCXU4CU1NUFJFOwoJdTE2CXJlczc7Cgl1MTYJTU1MRU47Cgl1OAlyZXM4WzNdOwoJdTgJTU1DUjc7Cgl1MzIJTU1SU1BbNF07Cgl1OAlyZXM5WzNdOwoJdTgJTU1DTUQwOwoJdTMyCU1NQ01EMTsKCXUxNglyZXMxMDsKCXUxNglNTUNSMTY7Cgl1OAlyZXMxMVszXTsKCXU4CU1NREFUOwojZWxzZQoJdTgJTU1DT047Cgl1OAlyZXMxWzNdOwoJdTgJTU1DUlI7Cgl1OAlyZXMyWzNdOwoJdTgJTU1GQ09OOwoJdTgJcmVzM1szXTsKCXU4CU1NU1RBOwoJdTgJcmVzNFszXTsKCXUxNglNTUZTVEE7Cgl1MTYJcmVzNTsKCXU4CU1NUFJFOwoJdTgJcmVzNlszXTsKCXUxNglNTUxFTjsKCXUxNglyZXM3OwoJdTgJTU1DUjc7Cgl1OAlyZXM4WzNdOwoJdTMyCU1NUlNQWzRdOwoJdTgJTU1DTUQwOwoJdTgJcmVzOVszXTsKCXUzMglNTUNNRDE7Cgl1MTYJTU1DUjE2OwoJdTE2CXJlczEwOwoJdTgJTU1EQVQ7Cgl1OAlyZXMxMVszXTsKI2VuZGlmCn07CgoKLyogU0QgSU5URVJGQUNFIChzZWUgUzNDMjQxMCBtYW51YWwgY2hhcHRlciAxOSkgKi8Kc3RydWN0IHMzYzI0MTBfc2RpIHsKCXUzMglTRElDT047Cgl1MzIJU0RJUFJFOwoJdTMyCVNESUNBUkc7Cgl1MzIJU0RJQ0NPTjsKCXUzMglTRElDU1RBOwoJdTMyCVNESVJTUDA7Cgl1MzIJU0RJUlNQMTsKCXUzMglTRElSU1AyOwoJdTMyCVNESVJTUDM7Cgl1MzIJU0RJRFRJTUVSOwoJdTMyCVNESUJTSVpFOwoJdTMyCVNESURDT047Cgl1MzIJU0RJRENOVDsKCXUzMglTRElEU1RBOwoJdTMyCVNESUZTVEE7CiNpZmRlZiBfX0JJR19FTkRJQU4KCXU4CXJlc1szXTsKCXU4CVNESURBVDsKI2Vsc2UKCXU4CVNESURBVDsKCXU4CXJlc1szXTsKI2VuZGlmCgl1MzIJU0RJSU1TSzsKfTsKCiNlbmRpZiAvKl9fUzNDMjRYMF9IX18qLwo=