ZGlmZiAtLWdpdCBhL2FwL2xpYi9saWJ6dGVfcGJtL2xpYnp0ZV9wYm0uaCBiL2FwL2xpYi9saWJ6dGVfcGJtL2xpYnp0ZV9wYm0uaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTQ0YjVlCi0tLSAvZGV2L251bGwKKysrIGIvYXAvbGliL2xpYnp0ZV9wYm0vbGlienRlX3BibS5oCkBAIC0wLDAgKzEsMzI0IEBACisjaWZuZGVmIExJQlpURV9QQk0NCisjZGVmaW5lIExJQlpURV9QQk0NCisNCisvLyNpbmNsdWRlICJjb21kZWYuaCINCisNCisvL3R5cGVkZWYgdW5zaWduZWQgY2hhciB1aW50ODsNCisvL3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgdWludDE2Ow0KKy8vdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGJvb2xlYW47DQorDQorI2lmbmRlZiB1aW50OA0KKyNkZWZpbmUgdWludDggdW5zaWduZWQgY2hhcg0KKyNlbmRpZg0KKw0KKyNpZm5kZWYgdWludDE2DQorI2RlZmluZSB1aW50MTYgdW5zaWduZWQgc2hvcnQNCisjZW5kaWYNCisNCisjaWZuZGVmIGJvb2xlYW4NCisjZGVmaW5lIGJvb2xlYW4gdW5zaWduZWQgY2hhcg0KKyNlbmRpZg0KKw0KKyNpZm5kZWYgVFJVRQ0KKyNkZWZpbmUgVFJVRSAxDQorI2VuZGlmDQorDQorI2lmbmRlZiBGQUxTRQ0KKyNkZWZpbmUgRkFMU0UgMA0KKyNlbmRpZg0KKw0KKw0KKw0KKy8vZGIgcGF0aA0KKyNpZmRlZiBfTUJCX09TX1VDTElOVVgNCisjZGVmaW5lIFpURV9QQk1fREJfRElSICAgIi9tbnQvamZmczIvZXRjX3J3L2NvbmZpZyINCisjZGVmaW5lIFpURV9QQk1fREJfUEFUSCAiL21udC9qZmZzMi9ldGNfcncvY29uZmlnL3BibS5kYiINCisjZWxzZQ0KKyNkZWZpbmUgWlRFX1BCTV9EQl9ESVIgICAiL2V0Y19ydy8iDQorLy8jaWZkZWYgV0VCU19TRUNVUklUWQ0KKyNkZWZpbmUgWlRFX1BCTV9EQl9QQVRIX1NFQyAiL3RtcC9wYm0uZGIiDQorLy8jZWxzZQ0KKyNkZWZpbmUgWlRFX1BCTV9EQl9QQVRIICIvZXRjX3J3L3BibS5kYiINCisvLyNlbmRpZg0KKyNlbmRpZg0KKw0KKyNkZWZpbmUgWlRFX0RCX1BCTV9UQUJMRSAicGJtIg0KKyNkZWZpbmUgWlRFX0RCX1BCTV9ERVZJQ0VfVEFCTEUgInBibV9kZXZpY2UiDQorI2RlZmluZSBaVEVfREJfUEJNX1NJTV9UQUJMRSAgInBibV9zaW0iDQorI2RlZmluZSBaVEVfREJfUEJNX1NJTV9DQVBBQklMSVRZX1RBQkxFICJwYm1fc2ltX2NhcGFiaWxpdHkiDQorI2RlZmluZSBaVEVfREJfUEJNX0RFVklDRV9DQVBBQklMSVRZX1RBQkxFICJwYm1fZGV2aWNlX2NhcGFiaWxpdHkiDQorDQorI2RlZmluZSBNQVhfTlVNQkVSX09GX0JZVEVTX0ZPUl9TUUwgICAgMTAyNA0KKw0KKw0KKy8vc29ja2V0IHBhcmFtZXRlcnMNCisvL3NvY2tldCBwYXRoDQorI2lmbmRlZiBaVEVfUEJNX1BBVEgNCisjZGVmaW5lIFpURV9QQk1fUEFUSCAgICJ6dGVfcGJtIg0KKyNlbmRpZg0KKw0KKy8vc29ja2V0IGJ1ZmZlciBzaXplDQorI2lmbmRlZiBaVEVfU09DS0VUX0RBVEFfQlVGX01BWA0KKyNkZWZpbmUgWlRFX1NPQ0tFVF9EQVRBX0JVRl9NQVggMTAyNA0KKyNlbmRpZg0KKw0KKy8vc29ja2V0IG1heCBsaXNjZW4gbnVtDQorI2lmbmRlZiBaVEVfU09DS0VUX01BWF9MSVNDRU5fTlVNDQorI2RlZmluZSBaVEVfU09DS0VUX01BWF9MSVNDRU5fTlVNIDUwDQorI2VuZGlmDQorDQorLy93ZWIgdWkgcGJtDQorI2lmbmRlZiBQQk1fTUFYX0RFTF9MRU4NCisjZGVmaW5lIFBCTV9NQVhfREVMX0xFTiA1MA0KKyNlbmRpZg0KKw0KKyNpZm5kZWYgWlRFX1BCX0lOREVYX01BWA0KKyNkZWZpbmUgWlRFX1BCX0lOREVYX01BWCA1MDANCisjZW5kaWYNCisNCisjaWZuZGVmIFpURV9XRUJfUEJNX1JFQ19MRU4NCisjZGVmaW5lIFpURV9XRUJfUEJNX1JFQ19MRU4gIDUNCisjZW5kaWYNCisNCisjaWZuZGVmIFBCTV9XRUJfTUFYX0NIQVJfTEVODQorI2RlZmluZSBQQk1fV0VCX01BWF9DSEFSX0xFTiAgWlRFX1dFQl9QQk1fUkVDX0xFTipaVEVfUEJfSU5ERVhfTUFYDQorI2VuZGlmDQorDQorLy9udW1iZXIgbGVuZ3RoDQorI2lmbmRlZiBQQk1fTUFYX05VTV9MRU5HVEgNCisjZGVmaW5lIFBCTV9NQVhfTlVNX0xFTkdUSCAgIDQwDQorI2VuZGlmDQorDQorI2lmbmRlZiBQQk1fTlVNX1NJWkUNCisjZGVmaW5lIFBCTV9OVU1fU0laRSAoUEJNX01BWF9OVU1fTEVOR1RIKzIpICAvKiArIGFuZCBudWxsIGZvciBzdHJpbmcgKi8NCisjZW5kaWYNCisNCisvL25hbWUgbGVuZ3RoDQorI2lmbmRlZiBQQk1fTUFYX1RFWFRfTEVOR1RIDQorI2RlZmluZSBQQk1fTUFYX1RFWFRfTEVOR1RIIDkwDQorI2VuZGlmDQorDQorI2lmbmRlZiBQQk1fVEVYVF9TSVpFX0NIQVJTDQorI2RlZmluZSBQQk1fVEVYVF9TSVpFX0NIQVJTIChQQk1fTUFYX1RFWFRfTEVOR1RIKzEpICAgICAgICAgICAgICAvKiBOdWxsIHRlcm1pbmF0ZWQgc3RyaW5nICovDQorI2VuZGlmDQorDQorI2lmbmRlZiBQQk1fVEVYVF9TSVpFX0JZVEVTDQorI2RlZmluZSBQQk1fVEVYVF9TSVpFX0JZVEVTIChQQk1fVEVYVF9TSVpFX0NIQVJTKnNpemVvZih1aW50MTYpKSAvKiBzaXplIGluIGJ5dGVzICovDQorI2VuZGlmDQorDQorLy90aGUgbWF4IG51bWJlcnMgb2YgcmVjb3JkIGluIG1vZGVtIGxvY2F0aW9uDQorI2RlZmluZSBQQk1fUENfTUFYX1JFQ09SRCAxMDANCisNCisNCisjZGVmaW5lIFBCTV9PUEVSQVRFX1NVQyAiMCINCisjZGVmaW5lIFBCTV9MT0FESU5HICIxIg0KKyNkZWZpbmUgUEJNX05FV0lORyAiMiINCisjZGVmaW5lIFBCTV9ERUxJTkcgIjMiDQorI2RlZmluZSBQQk1fTVVUX0RFTElORyAiNCINCisjZGVmaW5lIFBCTV9BTExfREVMSU5HICI1Ig0KKyNkZWZpbmUgUEJNX0xPQURfRVJST1IgIjYiDQorI2RlZmluZSBQQk1fTkVXX0VSUk9SICI3Ig0KKyNkZWZpbmUgUEJNX0RFTF9FUlJPUiAiOCINCisjZGVmaW5lIFBCTV9ORVdfRVJST1JfTUVNX0ZVTEwgIjkiDQorI2RlZmluZSBQQk1fRVJST1JfQ09OVkVSVF9DSEVTVCAiMTAiDQorI2RlZmluZSBQQk1fTE9DQVRJT05fSVNfTlVMTCAiMTEiDQorI2RlZmluZSBaVEVfU1VQUE9SVF9TSU1fUEJNICAiMTIiDQorI2RlZmluZSBaVEVfU1VQUE9SVF9VU0lNX1BCTSAgIjEzIg0KKyNkZWZpbmUgWlRFX1BCTV9FUlJPUiAiMTQiDQorI2RlZmluZSBQQk1fTVVMX0RFTF9QQVJUX1NVQyAgIjE1Ig0KKw0KKw0KKyNkZWZpbmUgWlRFX1BCTV9OVkNGR19MRU4gIDE1DQorDQorLy90aGUgbnZjb25maWcgb2YgcGJtIG1vZHVsZQ0KKyNpZm5kZWYgWlRFX1BCTV9OVg0KKyNkZWZpbmUgWlRFX1BCTV9OViAgInBibV93cml0ZV9mbGFnIg0KKyNlbmRpZg0KKw0KKyNpZm5kZWYgWlRFX1BCTV9HUk9VUF9OVg0KKyNkZWZpbmUgWlRFX1BCTV9HUk9VUF9OViAicGJtX2dyb3VwIg0KKyNlbmRpZg0KKw0KKyNpZm5kZWYgWlRFX1NVUFBPUlRfUEJNX05WDQorI2RlZmluZSBaVEVfU1VQUE9SVF9QQk1fTlYgICJzdXBwb3J0X3BibV9mbGFnIg0KKyNlbmRpZg0KKw0KKyNpZm5kZWYgWlRFX1BCTV9JTklUX05WDQorI2RlZmluZSBaVEVfUEJNX0lOSVRfTlYgICJwYm1faW5pdF9mbGFnIg0KKyNlbmRpZg0KKw0KKw0KKw0KKy8vdGhlIGxvY2F0aW9uIG9mIHBibSBpbiB3ZWIgdWkNCisvLyNkZWZpbmUgUEJNX0xPQ0FUSU9OX0RFVklDRSAgMQ0KKy8vI2RlZmluZSBQQk1fTE9DQVRJT05fU0lNICAwDQorDQordHlwZWRlZiBlbnVtDQorew0KKyAgICBQQk1fTE9DQVRJT05fU0lNID0gMCwgICAgICAgICAgICAvL3NpbSBjYXJkIG9ubHksZXhzaXQgaW4gZGF0YWJhc2UNCisgICAgUEJNX0xPQ0FUSU9OX0RFVklDRSA9IDEsICAgICAgLy9kZXZpY2Ugb25seSxleGl0IGluIGRhdGFiYXNlDQorICAgIFBCTV9MT0NBVElPTl9BTEwgPSAyLCAgICAgICAgICAgIC8vc2ltIGNhcmQgYW5kIGRldmljZSwgbm90IGV4c2l0IGluIGRhdGFiYXNlLCBvbmx5IHVzZSBpbiBwYm0gY29kZQ0KKyAgICBQQk1fTE9DQVRJT05fR1JPVVAgPSAzLCAgICAgIC8vZ3JvdXAgaW4gZGV2aWNlLGZvciBleGFtcGxlOmNvbW1vbixmYW1pbHkgYW5kIHNvIG9uLG5vdCBleHNpdCBpbiBkYXRhYmFzZSwgb25seSB1c2UgaW4gcGJtIGNvZGUNCisNCisgICAgUEJNX0xPQ0FUSU9OX01BWA0KK30genRlX3BibV9sb2NhdGlvbl9lX3R5cGU7DQorDQorDQordHlwZWRlZiBlbnVtDQorew0KKyAgICBaVEVfUEJNX0ZBSUxVUkUgPSAtMSwNCisgICAgWlRFX1BCTV9TVUNDRVNTID0gMCwNCisgICAgWlRFX1BCTV9OT1RfU1VQUE9SVCA9IDEsICAgIC8vZG8gbm90IHN1cHBvcnQgd2ViIHVpIHBibQ0KKw0KKyAgICBaVEVfUEJNX01BWA0KK30genRlX3BibV9yZXR1cm5fZV90eXBlOw0KKw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBpbnQgIHNpbV90eXBlOw0KKyAgICBpbnQgIG1heF9yZWNvcmRfbnVtYmVyOw0KKyAgICBpbnQgIHVzZWRfcmVjb3JkX251bWJlcjsNCisgICAgaW50ICBtYXhfbmFtZV9sZW47DQorICAgIGludCAgbWF4X251bWJlcl9sZW47DQorICAgIGludCAgbWF4X2Fucl9udW07DQorICAgIGludCAgbWF4X2Fucl9sZW47DQorICAgIGludCAgbWF4X2FucjFfbnVtOw0KKyAgICBpbnQgIG1heF9hbnIxX2xlbjsNCisgICAgaW50ICBtYXhfZW1haWxfbnVtOw0KKyAgICBpbnQgIG1heF9lbWFpbF9sZW47DQorICAgIGludCAgbWF4X3NuZV9sZW47DQorfSB6dGVfcGJtX3NpbV9jYXBhYmlsaXR5X3NfdHlwZTsNCisNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgaW50ICBtYXhfcmVjb3JkX251bWJlcjsNCisgICAgaW50ICB1c2VkX3JlY29yZF9udW1iZXI7DQorfSB6dGVfcGJtX2RldmljZV9jYXBhYmlsaXR5X3NfdHlwZTsNCisNCisvLy8vLy8qKioqKioqLy8vdGhlc2Ugc3RydWN0cyBtdXN0IGRlZmluZSBpbiB0aGUgbGlienRlX21jLmggYmVnaW4NCisjaWZuZGVmIFpURV9NQ19QQk1fVFlQRQ0KKyNkZWZpbmUgWlRFX01DX1BCTV9UWVBFDQorI2lmZGVmIFpURV9NQ19QQk1fVFlQRQ0KK3R5cGVkZWYgc3RydWN0ICB6dGVfcGJtX2NyZWF0ZV9leHRfcmVjb3JkX3NfdHlwZQ0KK3sNCisgICAgaW50ICAgICB6dGVfcGJtX2lkOyAgIC8vdGhlIGlkIGluIHRoZSBwYm0gdGFibGUsdW5pcXVlLEFTQw0KKyAgICBpbnQgICAgIHp0ZV9wYm1faW5kZXg7DQorICAgIGludCAgICAgenRlX3BibV9sb2NhdGlvbjsNCisgICAgY2hhciAgenRlX3BibV9uYW1lW1BCTV9URVhUX1NJWkVfQllURVNdOw0KKyAgICBjaGFyICB6dGVfcGJtX251bWJlcltQQk1fTlVNX1NJWkVdOw0KKyAgICBpbnQgICAgIHp0ZV9wYm1fdHlwZTsNCisgICAgY2hhciAgenRlX3BibV9hbnJbUEJNX05VTV9TSVpFXTsNCisgICAgY2hhciAgenRlX3BibV9hbnIxW1BCTV9OVU1fU0laRV07DQorICAgIGNoYXIgIHp0ZV9wYm1fZW1haWxbUEJNX1RFWFRfU0laRV9CWVRFU107DQorICAgIC8vY2hhciAgenRlX3BibV9zbmVbUEJNX1RFWFRfU0laRV9CWVRFU107DQorICAgIC8vY2hhciAgenRlX3BibV9ncm91cFtQQk1fVEVYVF9TSVpFX0JZVEVTXTsNCisgICAgY2hhciAgenRlX3BibV9zbmVbMzJdOy8vIDkxKjIgLS0tPiAzMiAg1N3Ksc6008O1vbjDss7K/Q0KKyAgICBjaGFyICB6dGVfcGJtX2dyb3VwWzMyXTsgIC8vIDkxKjIgLS0tPiAzMg0KKyAgICBpbnQgICB6dGVfcGJtX2RlbF9pZDsNCit9IHp0ZV9wYm1fY3JlYXRlX2V4dF9yZWNvcmRfc190eXBlOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ICB6dGVfcGJtX2RlbF9tdWx0aV9yZWNvcmRzX3NfdHlwZQ0KK3sNCisgICAgaW50ICB6dGVfZGVsX3BibV9pZFtQQk1fTUFYX0RFTF9MRU5dOw0KKyAgICBpbnQgIHp0ZV9kZWxfcGJtX3RvdGFsOw0KKyAgICBpbnQgIHp0ZV9kZWxfcGJtX2xvY2F0aW9uOw0KKyAgICBpbnQgIHp0ZV9kZWxfcGJtX2luZGV4W1BCTV9NQVhfREVMX0xFTl07DQorfSB6dGVfcGJtX2RlbF9tdWx0aV9yZWNvcmRzX3NfdHlwZTsNCisjZW5kaWYNCisjZW5kaWYNCisNCisvLy8vLy8qKioqKioqLy8vdGhlc2Ugc3RydWN0cyBtdXN0IGRlZmluZSBpbiB0aGUgbGlienRlX21jLmggZW5kDQorDQorLyoNCit0eXBlZGVmIGVudW0genRlX3BibV9jbWRfZV90eXBlDQorew0KKyAgICBaVEVfUEJNX0xPQURfUkVDX01TRz0wLC0NCisgICAgWlRFX1BCTV9XUklURV9SRUNfTVNHLC0NCisgICAgWlRFX1BCTV9ERUxfQV9SRUNfTVNHLC0NCisgICAgWlRFX1BCTV9ERUxfTVVUSV9SRUNfTVNHLC0NCisgICAgWlRFX1BCTV9ERUxfQUxMX1JFQ19NU0csLQ0KKyAgICBaVEVfUEJNX1NMRUVQX01TRywNCisgICAgWlRFX1BCTV9XQUtFVVBfTVNHLA0KKyAgICBaVEVfUEJNX0xPQURfV0lUSE9VVF9TSU1fTVNHLC0NCisgICAgWlRFX1BCTV9NQVhfTVNHLA0KK30genRlX3BibV9jbWRfZV90eXBlOw0KKyovDQorDQorLyoNCit0eXBlZGVmIHVuaW9uIHp0ZV9wYm1fZGF0YV91X3R5cGUNCit7DQorICAgIHp0ZV9wYm1fY3JlYXRlX2V4dF9yZWNvcmRfc190eXBlIHp0ZV9uZXdfcGJtX2RhdGE7DQorICAgIHp0ZV9wYm1fZGVsX211bHRpX3JlY29yZHNfc190eXBlIHp0ZV9kZWxfcGJtX2RhdGE7DQorDQorfSB6dGVfcGJtX2RhdGFfdV90eXBlOw0KKyovDQorDQorLyoNCit0eXBlZGVmIHN0cnVjdCB6dGVfcGJtX21zZ19zX3R5cGUNCit7DQorICAgIHp0ZV9wYm1fY21kX2VfdHlwZSB6dGVfcGJtX21zZzsNCisgICAgenRlX3BibV9kYXRhX3VfdHlwZSB6dGVfcGJtX2RhdGE7DQorDQorfSB6dGVfcGJtX21zZ19zX3R5cGU7DQorKi8NCisNCit0eXBlZGVmIHN0cnVjdCAgenRlX3BibV9oZWFkZXJfc190eXBlDQorew0KKyAgICBpbnQgICAgIHp0ZV9pZDsgICAvL3RoZSBpZCBpbiB0aGUgcGJtIHRhYmxlLHVuaXF1ZSxBU0MNCisgICAgaW50ICAgICB6dGVfaW5kZXg7DQorICAgIGludCAgICAgenRlX2xvY2F0aW9uOw0KK30genRlX3BibV9oZWFkZXJfc190eXBlOw0KKw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICB1aW50OCBwYWdlOw0KKyAgICB1aW50OCBudW1fcGVyX3BhZ2U7DQorICAgIHp0ZV9wYm1fbG9jYXRpb25fZV90eXBlIGxvY2F0aW9uOw0KKyAgICBib29sZWFuIGFzY19mbGFnOw0KKyAgICB1aW50OCBvcmRlcl9ieTsNCit9IHp0ZV9wYm1fcXVlcnlfcmVxX3NfdHlwZTsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgdWludDggY291bnQ7DQorICAgIHp0ZV9wYm1fY3JlYXRlX2V4dF9yZWNvcmRfc190eXBlICBkYXRhWzBdOy8qbGludCAhZTE1MDEqLw0KK30genRlX3BibV9xdWVyeV9yZXNwX3NfdHlwZTsNCisNCisNCisvLy8vLy8qKioqKioqLy8vdGhlc2UgZnVuY3Rpb25zIG11c3QgZGVmaW5lIGluIHRoZSBsaWJ6dGVfbWMuaCBiZWdpbg0KKyNpZm5kZWYgWlRFX01DX1BCTV9UWVBFDQorI2RlZmluZSBaVEVfTUNfUEJNX1RZUEUNCisjaWZkZWYgWlRFX01DX1BCTV9UWVBFDQorLy92b2lkIHp0ZV9tY19wYm1fbG9hZF9yZWMoKTsNCisvL3ZvaWQgenRlX21jX3BibV93cml0ZV9yZWMoenRlX3BibV9jcmVhdGVfZXh0X3JlY29yZF9zX3R5cGUgKnBibV9yZWN2X3JlY29yZCk7DQorLy92b2lkIHp0ZV9tY19wYm1fZGVsX2FfcmVjKHp0ZV9wYm1fZGVsX211bHRpX3JlY29yZHNfc190eXBlICpwYm1fcmVjdl9yZWNvcmQpOw0KKy8vdm9pZCB6dGVfbWNfcGJtX2RlbF9tdWx0aV9yZWNzKHp0ZV9wYm1fZGVsX211bHRpX3JlY29yZHNfc190eXBlICpwYm1fcmVjdl9yZWNvcmQpOw0KKy8vdm9pZCB6dGVfbWNfcGJtX2RlbF9hbGxfcmVjcyh6dGVfcGJtX2RlbF9tdWx0aV9yZWNvcmRzX3NfdHlwZSAqcGJtX3JlY3ZfcmVjb3JkKTsNCisvL3ZvaWQgenRlX21jX3BibV9sb2FkX2lmX25vX3NpbSgpOw0KK3ZvaWQgYWFhKGludCBpKTsNCisjZW5kaWYNCisjZW5kaWYNCisvLy8vLy8qKioqKioqLy8vdGhlc2UgZnVuY3Rpb25zIG11c3QgZGVmaW5lIGluIHRoZSBsaWJ6dGVfbWMuaCBlbmQNCisNCisvL3ZvaWQgenRlX21jX3BibV9zbGVlcF93YWtldXAoenRlX3BibV9jbWRfZV90eXBlIHBibV9tc2dfdHlwZSk7DQorDQorLy8vLy8vdGhlIGludGVyZmFjZSBmb3IgZ2V0IHBibSBkYXRhIGFuZCBjYXBhYmlsaXR5IGZvciB3ZWIgc2VydmVyDQoraW50IHp0ZV9saWJwYm1fZ2V0X2NhcGFiaWxpdHkNCisoDQorICAgIHp0ZV9wYm1fcXVlcnlfcmVxX3NfdHlwZSAqcmVxLA0KKyAgICB6dGVfcGJtX3NpbV9jYXBhYmlsaXR5X3NfdHlwZSAqc2ltX3BhcmEsDQorICAgIHp0ZV9wYm1fZGV2aWNlX2NhcGFiaWxpdHlfc190eXBlICpkZXZpY2VfcGFyYQ0KKyk7DQoraW50IHp0ZV9saWJwYm1fZ2V0X3JlY19kYXRhICh6dGVfcGJtX3F1ZXJ5X3JlcV9zX3R5cGUgKnJlcSwgenRlX3BibV9xdWVyeV9yZXNwX3NfdHlwZSpyZXNwKTsNCitpbnQgenRlX2xpYnBibV9nZXRfbmFtZV9ieV9udW1iZXIoY2hhciAqcGJtX251bWJlciwgY2hhciAqcGJtX25hbWUpOw0KKw0KKw0KKyNlbmRpZg0KKw0K