From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Kalev Lember To: git-commits@fedoraproject.org Subject: [rpms/glib2] cve-2026-58016-f44: Update to 2.67.1 Date: Tue, 11 Aug 2026 10:37:13 GMT Message-ID: <178644463352.1.13884721641773947464.rpms-glib2-f60cba3ae7dd@fedoraproject.org> List-ID: X-Git-Repo: rpms/glib2 X-Git-Branch: cve-2026-58016-f44 X-Git-Rev: f60cba3ae7dd3216f1c8feb8824b1c0272e2c7ba QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xpYjIKQnJhbmNo IDogY3ZlLTIwMjYtNTgwMTYtZjQ0CkNvbW1pdCA6IGY2MGNiYTNhZTdkZDMyMTZmMWM4ZmViODgy NGIxYzAyNzJlMmM3YmEKQXV0aG9yIDogS2FsZXYgTGVtYmVyIDxrbGVtYmVyQHJlZGhhdC5jb20+ CkRhdGUgICA6IDIwMjAtMTItMTlUMDM6MDY6NDYrMDE6MDAKU3RhdHMgIDogKzYvLTM0NTkgaW4g NCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2xp YjIvYy9mNjBjYmEzYWU3ZGQzMjE2ZjFjOGZlYjg4MjRiMWMwMjcyZTJjN2JhP2JyYW5jaD1jdmUt MjAyNi01ODAxNi1mNDQKCkxvZzoKVXBkYXRlIHRvIDIuNjcuMQoKLS0tCmRpZmYgLS1naXQgYS8x NzE5LnBhdGNoIGIvMTcxOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJk YWEyYy4uMDAwMDAwMAotLS0gYS8xNzE5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQxNyAr MCwwIEBACi1Gcm9tIGZhYjU2MWY4ZDA1Nzk0MzI5MTg0Y2Q4MWY5YWI5ZDlkNzdkY2MyMmEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBl bmRsZXNzb3Mub3JnPgotRGF0ZTogV2VkLCAxMSBOb3YgMjAyMCAxODoxMjoyMiArMDAwMAotU3Vi amVjdDogW1BBVENIIDAxLzI5XSBnb2JqZWN0OiBEcm9wIHVzZSBvZiB2b2xhdGlsZSBmcm9tIGdl dF90eXBlKCkgbWFjcm9zCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLWh0 dHA6Ly9pc3ZvbGF0aWxldXNlZnVsd2l0aHRocmVhZHMuaW4vYy8KLQotSXTigJlzIHBvc3NpYmxl IHRoYXQgdGhlIHZhcmlhYmxlcyBoZXJlIGFyZSBvbmx5IG1hcmtlZCBhcyB2b2xhdGlsZQotYmVj YXVzZSB0aGV54oCZcmUgYXJndW1lbnRzIHRvIGBnX29uY2VfKigpYC4gVGhvc2UgYXJndW1lbnRz IHdpbGwgYmUKLW1vZGlmaWVkIGluIGEgc3Vic2VxdWVudCBjb21taXQuCi0KLVNpZ25lZC1vZmYt Ynk6IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBzOiAj NjAwCi0tLS0KLSBkb2NzL3JlZmVyZW5jZS9nb2JqZWN0L2dsaWItbWtlbnVtcy54bWwgfCAgOCAr Ky0tLQotIGRvY3MvcmVmZXJlbmNlL2dvYmplY3QvdHV0X2d0eXBlLnhtbCAgICB8ICAyICstCi0g Z2lvL2dpb2VudW10eXBlcy5jLnRlbXBsYXRlICAgICAgICAgICAgIHwgIDggKystLS0KLSBnaW8v dGVzdHMvZ3NldHRpbmdzLmMgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KLSBnb2JqZWN0L2di aW5kaW5nLmMgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKy0tLQotIGdvYmplY3QvZ2JveGVk LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0tCi0gZ29iamVjdC9nbGliLWVudW10 eXBlcy5jLnRlbXBsYXRlICAgICAgIHwgIDggKystLS0KLSBnb2JqZWN0L2dzb3VyY2VjbG9zdXJl LmMgICAgICAgICAgICAgICAgfCAgMiArLQotIGdvYmplY3QvZ3R5cGUuaCAgICAgICAgICAgICAg ICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSBnb2JqZWN0L3Rlc3Rz L3NpZ25hbHMuYyAgICAgICAgICAgICAgICAgfCAxNiArKysrLS0tLS0KLSAxMCBmaWxlcyBjaGFu Z2VkLCA1NiBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2Rv Y3MvcmVmZXJlbmNlL2dvYmplY3QvZ2xpYi1ta2VudW1zLnhtbCBiL2RvY3MvcmVmZXJlbmNlL2dv YmplY3QvZ2xpYi1ta2VudW1zLnhtbAotaW5kZXggMjIwMDMyOGVkLi5jZTI1MGEzZmYgMTAwNjQ0 Ci0tLS0gYS9kb2NzL3JlZmVyZW5jZS9nb2JqZWN0L2dsaWItbWtlbnVtcy54bWwKLSsrKyBiL2Rv Y3MvcmVmZXJlbmNlL2dvYmplY3QvZ2xpYi1ta2VudW1zLnhtbAotQEAgLTQ4MCw5ICs0ODAsOSBA QCBBIEMgc291cmNlIHRlbXBsYXRlIGZpbGUgd2lsbCB0eXBpY2FsbHkgbG9vayBsaWtlIHRoaXM6 Ci0gR1R5cGUKLSBAZW51bV9uYW1lQF9nZXRfdHlwZSAodm9pZCkKLSB7Ci0tICBzdGF0aWMgdm9s YXRpbGUgZ3NpemUgZ19AdHlwZUBfdHlwZV9pZF9fdm9sYXRpbGU7Ci0rICBzdGF0aWMgZ3NpemUg c3RhdGljX2dfQHR5cGVAX3R5cGVfaWQ7Ci0gCi0tICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZh bXA7Z19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUpKQotKyAgaWYgKGdfb25jZV9pbml0X2VudGVy ICgmYW1wO3N0YXRpY19nX0B0eXBlQF90eXBlX2lkKSkKLSAgICAgewotICAgICAgIHN0YXRpYyBj b25zdCBHQFR5cGVAVmFsdWUgdmFsdWVzW10gPSB7Ci0gLyoqKiBFTkQgdmFsdWUtaGVhZGVyICoq Ki8KLUBAIC00OTgsOSArNDk4LDkgQEAgR1R5cGUKLSAgICAgICBHVHlwZSBnX0B0eXBlQF90eXBl X2lkID0KLSAgICAgICAgIGdfQHR5cGVAX3JlZ2lzdGVyX3N0YXRpYyAoZ19pbnRlcm5fc3RhdGlj X3N0cmluZyAoIkBFbnVtTmFtZUAiKSwgdmFsdWVzKTsKLSAKLS0gICAgICBnX29uY2VfaW5pdF9s ZWF2ZSAoJmFtcDtnX0B0eXBlQF90eXBlX2lkX192b2xhdGlsZSwgZ19AdHlwZUBfdHlwZV9pZCk7 Ci0rICAgICAgZ19vbmNlX2luaXRfbGVhdmUgKCZhbXA7c3RhdGljX2dfQHR5cGVAX3R5cGVfaWQs IGdfQHR5cGVAX3R5cGVfaWQpOwotICAgICB9Ci0tICByZXR1cm4gZ19AdHlwZUBfdHlwZV9pZF9f dm9sYXRpbGU7Ci0rICByZXR1cm4gc3RhdGljX2dfQHR5cGVAX3R5cGVfaWQ7Ci0gfQotIAotIC8q KiogRU5EIHZhbHVlLXRhaWwgKioqLwotZGlmZiAtLWdpdCBhL2RvY3MvcmVmZXJlbmNlL2dvYmpl Y3QvdHV0X2d0eXBlLnhtbCBiL2RvY3MvcmVmZXJlbmNlL2dvYmplY3QvdHV0X2d0eXBlLnhtbAot aW5kZXggMjVlMzdkYzQ4Li5lZTA0Mjg4OWQgMTAwNjQ0Ci0tLS0gYS9kb2NzL3JlZmVyZW5jZS9n b2JqZWN0L3R1dF9ndHlwZS54bWwKLSsrKyBiL2RvY3MvcmVmZXJlbmNlL2dvYmplY3QvdHV0X2d0 eXBlLnhtbAotQEAgLTg1Miw3ICs4NTIsNyBAQCB2aWV3ZXJfZWRpdGFibGVfZGVmYXVsdF9pbml0 IChWaWV3ZXJFZGl0YWJsZUludGVyZmFjZSAqaWZhY2UpCi0gR1R5cGUKLSB2aWV3ZXJfZWRpdGFi bGVfZ2V0X3R5cGUgKHZvaWQpCi0gewotLSAgc3RhdGljIHZvbGF0aWxlIGdzaXplIHR5cGVfaWQg PSAwOwotKyAgc3RhdGljIGdzaXplIHR5cGVfaWQgPSAwOwotICAgaWYgKGdfb25jZV9pbml0X2Vu dGVyICgmYW1wO3R5cGVfaWQpKSB7Ci0gICAgIGNvbnN0IEdUeXBlSW5mbyBpbmZvID0gewotICAg ICAgIHNpemVvZiAoVmlld2VyRWRpdGFibGVJbnRlcmZhY2UpLAotZGlmZiAtLWdpdCBhL2dpby9n aW9lbnVtdHlwZXMuYy50ZW1wbGF0ZSBiL2dpby9naW9lbnVtdHlwZXMuYy50ZW1wbGF0ZQotaW5k ZXggZTlhZGM0YTM4Li45NDhhMDEyMDEgMTAwNjQ0Ci0tLS0gYS9naW8vZ2lvZW51bXR5cGVzLmMu dGVtcGxhdGUKLSsrKyBiL2dpby9naW9lbnVtdHlwZXMuYy50ZW1wbGF0ZQotQEAgLTEzLDkgKzEz LDkgQEAKLSBHVHlwZQotIEBlbnVtX25hbWVAX2dldF90eXBlICh2b2lkKQotIHsKLS0gIHN0YXRp YyB2b2xhdGlsZSBnc2l6ZSBnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSA9IDA7Ci0rICBzdGF0 aWMgZ3NpemUgc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQgPSAwOwotIAotLSAgaWYgKGdfb25jZV9p bml0X2VudGVyICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUpKQotKyAgaWYgKGdfb25jZV9p bml0X2VudGVyICgmc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQpKQotICAgICB7Ci0gICAgICAgc3Rh dGljIGNvbnN0IEdAVHlwZUBWYWx1ZSB2YWx1ZXNbXSA9IHsKLSAvKioqIEVORCB2YWx1ZS1oZWFk ZXIgKioqLwotQEAgLTI5LDEwICsyOSwxMCBAQCBHVHlwZQotICAgICAgIH07Ci0gICAgICAgR1R5 cGUgZ19kZWZpbmVfdHlwZV9pZCA9Ci0gICAgICAgICBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMg KGdfaW50ZXJuX3N0YXRpY19zdHJpbmcgKCJARW51bU5hbWVAIiksIHZhbHVlcyk7Ci0tICAgICAg Z19vbmNlX2luaXRfbGVhdmUgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSwgZ19kZWZpbmVf dHlwZV9pZCk7Ci0rICAgICAgZ19vbmNlX2luaXRfbGVhdmUgKCZzdGF0aWNfZ19kZWZpbmVfdHlw ZV9pZCwgZ19kZWZpbmVfdHlwZV9pZCk7Ci0gICAgIH0KLSAKLS0gIHJldHVybiBnX2RlZmluZV90 eXBlX2lkX192b2xhdGlsZTsKLSsgIHJldHVybiBzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZDsKLSB9 Ci0gCi0gLyoqKiBFTkQgdmFsdWUtdGFpbCAqKiovCi1kaWZmIC0tZ2l0IGEvZ2lvL3Rlc3RzL2dz ZXR0aW5ncy5jIGIvZ2lvL3Rlc3RzL2dzZXR0aW5ncy5jCi1pbmRleCAyZjgxYWU2YzMuLjE3OWQw ZmQyZiAxMDA2NDQKLS0tLSBhL2dpby90ZXN0cy9nc2V0dGluZ3MuYwotKysrIGIvZ2lvL3Rlc3Rz L2dzZXR0aW5ncy5jCi1AQCAtMTA2MCw3ICsxMDYwLDcgQEAgdGVzdF9vYmplY3Rfc2V0X3Byb3Bl cnR5IChHT2JqZWN0ICAgICAgKm9iamVjdCwKLSBzdGF0aWMgR1R5cGUKLSB0ZXN0X2VudW1fZ2V0 X3R5cGUgKHZvaWQpCi0gewotLSAgc3RhdGljIHZvbGF0aWxlIGdzaXplIGRlZmluZV90eXBlX2lk ID0gMDsKLSsgIHN0YXRpYyBnc2l6ZSBkZWZpbmVfdHlwZV9pZCA9IDA7Ci0gCi0gICBpZiAoZ19v bmNlX2luaXRfZW50ZXIgKCZkZWZpbmVfdHlwZV9pZCkpCi0gICAgIHsKLUBAIC0xMDgyLDcgKzEw ODIsNyBAQCB0ZXN0X2VudW1fZ2V0X3R5cGUgKHZvaWQpCi0gc3RhdGljIEdUeXBlCi0gdGVzdF9m bGFnc19nZXRfdHlwZSAodm9pZCkKLSB7Ci0tICBzdGF0aWMgdm9sYXRpbGUgZ3NpemUgZGVmaW5l X3R5cGVfaWQgPSAwOwotKyAgc3RhdGljIGdzaXplIGRlZmluZV90eXBlX2lkID0gMDsKLSAKLSAg IGlmIChnX29uY2VfaW5pdF9lbnRlciAoJmRlZmluZV90eXBlX2lkKSkKLSAgICAgewotZGlmZiAt LWdpdCBhL2dvYmplY3QvZ2JpbmRpbmcuYyBiL2dvYmplY3QvZ2JpbmRpbmcuYwotaW5kZXggNzhh ODgzMDc1Li42NjJkNzZiM2MgMTAwNjQ0Ci0tLS0gYS9nb2JqZWN0L2diaW5kaW5nLmMKLSsrKyBi L2dvYmplY3QvZ2JpbmRpbmcuYwotQEAgLTEyMCw5ICsxMjAsOSBAQAotIEdUeXBlCi0gZ19iaW5k aW5nX2ZsYWdzX2dldF90eXBlICh2b2lkKQotIHsKLS0gIHN0YXRpYyB2b2xhdGlsZSBnc2l6ZSBn X2RlZmluZV90eXBlX2lkX192b2xhdGlsZSA9IDA7Ci0rICBzdGF0aWMgZ3NpemUgc3RhdGljX2df ZGVmaW5lX3R5cGVfaWQgPSAwOwotIAotLSAgaWYgKGdfb25jZV9pbml0X2VudGVyICgmZ19kZWZp bmVfdHlwZV9pZF9fdm9sYXRpbGUpKQotKyAgaWYgKGdfb25jZV9pbml0X2VudGVyICgmc3RhdGlj X2dfZGVmaW5lX3R5cGVfaWQpKQotICAgICB7Ci0gICAgICAgc3RhdGljIGNvbnN0IEdGbGFnc1Zh bHVlIHZhbHVlc1tdID0gewotICAgICAgICAgeyBHX0JJTkRJTkdfREVGQVVMVCwgIkdfQklORElO R19ERUZBVUxUIiwgImRlZmF1bHQiIH0sCi1AQCAtMTMzLDEwICsxMzMsMTAgQEAgZ19iaW5kaW5n X2ZsYWdzX2dldF90eXBlICh2b2lkKQotICAgICAgIH07Ci0gICAgICAgR1R5cGUgZ19kZWZpbmVf dHlwZV9pZCA9Ci0gICAgICAgICBnX2ZsYWdzX3JlZ2lzdGVyX3N0YXRpYyAoZ19pbnRlcm5fc3Rh dGljX3N0cmluZyAoIkdCaW5kaW5nRmxhZ3MiKSwgdmFsdWVzKTsKLS0gICAgICBnX29uY2VfaW5p dF9sZWF2ZSAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlLCBnX2RlZmluZV90eXBlX2lkKTsK LSsgICAgICBnX29uY2VfaW5pdF9sZWF2ZSAoJnN0YXRpY19nX2RlZmluZV90eXBlX2lkLCBnX2Rl ZmluZV90eXBlX2lkKTsKLSAgICAgfQotIAotLSAgcmV0dXJuIGdfZGVmaW5lX3R5cGVfaWRfX3Zv bGF0aWxlOwotKyAgcmV0dXJuIHN0YXRpY19nX2RlZmluZV90eXBlX2lkOwotIH0KLSAKLSAjZGVm aW5lIEdfQklORElOR19DTEFTUyhrbGFzcykgICAgICAgICAgKEdfVFlQRV9DSEVDS19DTEFTU19D QVNUICgoa2xhc3MpLCBHX1RZUEVfQklORElORywgR0JpbmRpbmdDbGFzcykpCi1kaWZmIC0tZ2l0 IGEvZ29iamVjdC9nYm94ZWQuYyBiL2dvYmplY3QvZ2JveGVkLmMKLWluZGV4IDMwYmE0ZTc3NS4u MTk0MjUxMzgzIDEwMDY0NAotLS0tIGEvZ29iamVjdC9nYm94ZWQuYwotKysrIGIvZ29iamVjdC9n Ym94ZWQuYwotQEAgLTE4MCwxOSArMTgwLDE5IEBAIEdfREVGSU5FX0JPWEVEX1RZUEUgKEdPcHRp b25Hcm91cCwgZ19vcHRpb25fZ3JvdXAsIGdfb3B0aW9uX2dyb3VwX3JlZiwgZ19vcHRpb25fCi0g R1R5cGUKLSBnX3N0cnZfZ2V0X3R5cGUgKHZvaWQpCi0gewotLSAgc3RhdGljIHZvbGF0aWxlIGdz aXplIGdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlID0gMDsKLSsgIHN0YXRpYyBnc2l6ZSBzdGF0 aWNfZ19kZWZpbmVfdHlwZV9pZCA9IDA7Ci0gCi0tICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZn X2RlZmluZV90eXBlX2lkX192b2xhdGlsZSkpCi0rICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZz dGF0aWNfZ19kZWZpbmVfdHlwZV9pZCkpCi0gICAgIHsKLSAgICAgICBHVHlwZSBnX2RlZmluZV90 eXBlX2lkID0KLSAgICAgICAgIGdfYm94ZWRfdHlwZV9yZWdpc3Rlcl9zdGF0aWMgKGdfaW50ZXJu X3N0YXRpY19zdHJpbmcgKCJHU3RydiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKEdCb3hlZENvcHlGdW5jKSBnX3N0cmR1cHYsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoR0JveGVkRnJlZUZ1bmMpIGdfc3RyZnJlZXYpOwotIAotLSAg ICAgIGdfb25jZV9pbml0X2xlYXZlICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUsIGdfZGVm aW5lX3R5cGVfaWQpOwotKyAgICAgIGdfb25jZV9pbml0X2xlYXZlICgmc3RhdGljX2dfZGVmaW5l X3R5cGVfaWQsIGdfZGVmaW5lX3R5cGVfaWQpOwotICAgICB9Ci0gCi0tICByZXR1cm4gZ19kZWZp bmVfdHlwZV9pZF9fdm9sYXRpbGU7Ci0rICByZXR1cm4gc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQ7 Ci0gfQotIAotIEdUeXBlCi1kaWZmIC0tZ2l0IGEvZ29iamVjdC9nbGliLWVudW10eXBlcy5jLnRl bXBsYXRlIGIvZ29iamVjdC9nbGliLWVudW10eXBlcy5jLnRlbXBsYXRlCi1pbmRleCBiN2QzNjcy OGYuLjE4MDBjYThhZiAxMDA2NDQKLS0tLSBhL2dvYmplY3QvZ2xpYi1lbnVtdHlwZXMuYy50ZW1w bGF0ZQotKysrIGIvZ29iamVjdC9nbGliLWVudW10eXBlcy5jLnRlbXBsYXRlCi1AQCAtMTMsOSAr MTMsOSBAQAotIEdUeXBlCi0gQGVudW1fbmFtZUBfZ2V0X3R5cGUgKHZvaWQpCi0gewotLSAgc3Rh dGljIHZvbGF0aWxlIGdzaXplIGdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlID0gMDsKLSsgIHN0 YXRpYyBnc2l6ZSBzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZCA9IDA7Ci0gCi0tICBpZiAoZ19vbmNl X2luaXRfZW50ZXIgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSkpCi0rICBpZiAoZ19vbmNl X2luaXRfZW50ZXIgKCZzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZCkpCi0gICAgIHsKLSAgICAgICBz dGF0aWMgY29uc3QgR0BUeXBlQFZhbHVlIHZhbHVlc1tdID0gewotIC8qKiogRU5EIHZhbHVlLWhl YWRlciAqKiovCi1AQCAtMjksMTAgKzI5LDEwIEBAIEdUeXBlCi0gICAgICAgfTsKLSAgICAgICBH VHlwZSBnX2RlZmluZV90eXBlX2lkID0KLSAgICAgICAgIGdfQHR5cGVAX3JlZ2lzdGVyX3N0YXRp YyAoZ19pbnRlcm5fc3RhdGljX3N0cmluZyAoIkBFbnVtTmFtZUAiKSwgdmFsdWVzKTsKLS0gICAg ICBnX29uY2VfaW5pdF9sZWF2ZSAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlLCBnX2RlZmlu ZV90eXBlX2lkKTsKLSsgICAgICBnX29uY2VfaW5pdF9sZWF2ZSAoJnN0YXRpY19nX2RlZmluZV90 eXBlX2lkLCBnX2RlZmluZV90eXBlX2lkKTsKLSAgICAgfQotIAotLSAgcmV0dXJuIGdfZGVmaW5l X3R5cGVfaWRfX3ZvbGF0aWxlOwotKyAgcmV0dXJuIHN0YXRpY19nX2RlZmluZV90eXBlX2lkOwot IH0KLSAKLSAvKioqIEVORCB2YWx1ZS10YWlsICoqKi8KLWRpZmYgLS1naXQgYS9nb2JqZWN0L2dz b3VyY2VjbG9zdXJlLmMgYi9nb2JqZWN0L2dzb3VyY2VjbG9zdXJlLmMKLWluZGV4IDBkMGQyZTg3 Yy4uZDFiMWVlNGIzIDEwMDY0NAotLS0tIGEvZ29iamVjdC9nc291cmNlY2xvc3VyZS5jCi0rKysg Yi9nb2JqZWN0L2dzb3VyY2VjbG9zdXJlLmMKLUBAIC0zMiw3ICszMiw3IEBAIEdfREVGSU5FX0JP WEVEX1RZUEUgKEdJT0NoYW5uZWwsIGdfaW9fY2hhbm5lbCwgZ19pb19jaGFubmVsX3JlZiwgZ19p b19jaGFubmVsX3VuCi0gR1R5cGUKLSBnX2lvX2NvbmRpdGlvbl9nZXRfdHlwZSAodm9pZCkKLSB7 Ci0tICBzdGF0aWMgdm9sYXRpbGUgR1R5cGUgZXR5cGUgPSAwOwotKyAgc3RhdGljIEdUeXBlIGV0 eXBlID0gMDsKLSAKLSAgIGlmIChnX29uY2VfaW5pdF9lbnRlciAoJmV0eXBlKSkKLSAgICAgewot ZGlmZiAtLWdpdCBhL2dvYmplY3QvZ3R5cGUuaCBiL2dvYmplY3QvZ3R5cGUuaAotaW5kZXggOWRl NDZhYzYwLi42NjZmYWRiMGMgMTAwNjQ0Ci0tLS0gYS9nb2JqZWN0L2d0eXBlLmgKLSsrKyBiL2dv YmplY3QvZ3R5cGUuaAotQEAgLTE3MjcsOCArMTcyNyw4IEBAIGd1aW50ICAgICBnX3R5cGVfZ2V0 X3R5cGVfcmVnaXN0cmF0aW9uX3NlcmlhbCAodm9pZCk7Ci0gICogR1R5cGUKLSAgKiBndGtfZ2Fk Z2V0X2dldF90eXBlICh2b2lkKQotICAqIHsKLS0gKiAgIHN0YXRpYyB2b2xhdGlsZSBnc2l6ZSBn X2RlZmluZV90eXBlX2lkX192b2xhdGlsZSA9IDA7Ci0tICogICBpZiAoZ19vbmNlX2luaXRfZW50 ZXIgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSkpCi0rICogICBzdGF0aWMgZ3NpemUgc3Rh dGljX2dfZGVmaW5lX3R5cGVfaWQgPSAwOwotKyAqICAgaWYgKGdfb25jZV9pbml0X2VudGVyICgm c3RhdGljX2dfZGVmaW5lX3R5cGVfaWQpKQotICAqICAgICB7Ci0gICogICAgICAgR1R5cGUgZ19k ZWZpbmVfdHlwZV9pZCA9Ci0gICogICAgICAgICBnX3R5cGVfcmVnaXN0ZXJfc3RhdGljX3NpbXBs ZSAoR1RLX1RZUEVfV0lER0VULAotQEAgLTE3NDgsOSArMTc0OCw5IEBAIGd1aW50ICAgICBnX3R5 cGVfZ2V0X3R5cGVfcmVnaXN0cmF0aW9uX3NlcmlhbCAodm9pZCk7Ci0gICogICAgICAgICB9Owot ICAqICAgICAgICAgZ190eXBlX2FkZF9pbnRlcmZhY2Vfc3RhdGljIChnX2RlZmluZV90eXBlX2lk LCBUWVBFX0dJWk1PLCAmZ19pbXBsZW1lbnRfaW50ZXJmYWNlX2luZm8pOwotICAqICAgICAgIH0K LS0gKiAgICAgICBnX29uY2VfaW5pdF9sZWF2ZSAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxl LCBnX2RlZmluZV90eXBlX2lkKTsKLSsgKiAgICAgICBnX29uY2VfaW5pdF9sZWF2ZSAoJnN0YXRp Y19nX2RlZmluZV90eXBlX2lkLCBnX2RlZmluZV90eXBlX2lkKTsKLSAgKiAgICAgfQotLSAqICAg cmV0dXJuIGdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlOwotKyAqICAgcmV0dXJuIHN0YXRpY19n X2RlZmluZV90eXBlX2lkOwotICAqIH0KLSAgKiBdfAotICAqIFRoZSBvbmx5IHBpZWNlcyB3aGlj aCBoYXZlIHRvIGJlIG1hbnVhbGx5IHByb3ZpZGVkIGFyZSB0aGUgZGVmaW5pdGlvbnMgb2YKLUBA IC0xOTk1LDE3ICsxOTk1LDE3IEBAIHR5cGVfbmFtZSMjX2dldF9pbnN0YW5jZV9wcml2YXRlIChU eXBlTmFtZSAqc2VsZikgXAotIEdUeXBlIFwKLSB0eXBlX25hbWUjI19nZXRfdHlwZSAodm9pZCkg XAotIHsgXAotLSAgc3RhdGljIHZvbGF0aWxlIGdzaXplIGdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0 aWxlID0gMDsKLSsgIHN0YXRpYyBnc2l6ZSBzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZCA9IDA7Ci0g ICAvKiBQcmVsdWRlIGdvZXMgaGVyZSAqLwotIAotIC8qIEFkZGVkIGZvciBfR19ERUZJTkVfVFlQ RV9FWFRFTkRFRF9XSVRIX1BSRUxVREUgKi8KLSAjZGVmaW5lIF9HX0RFRklORV9UWVBFX0VYVEVO REVEX0JFR0lOX1JFR0lTVEVSKFR5cGVOYW1lLCB0eXBlX25hbWUsIFRZUEVfUEFSRU5ULCBmbGFn cykgXAotLSAgaWYgKGdfb25jZV9pbml0X2VudGVyICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRp bGUpKSAgXAotKyAgaWYgKGdfb25jZV9pbml0X2VudGVyICgmc3RhdGljX2dfZGVmaW5lX3R5cGVf aWQpKSBcCi0gICAgIHsgXAotICAgICAgIEdUeXBlIGdfZGVmaW5lX3R5cGVfaWQgPSB0eXBlX25h bWUjI19nZXRfdHlwZV9vbmNlICgpOyBcCi0tICAgICAgZ19vbmNlX2luaXRfbGVhdmUgKCZnX2Rl ZmluZV90eXBlX2lkX192b2xhdGlsZSwgZ19kZWZpbmVfdHlwZV9pZCk7IFwKLSsgICAgICBnX29u Y2VfaW5pdF9sZWF2ZSAoJnN0YXRpY19nX2RlZmluZV90eXBlX2lkLCBnX2RlZmluZV90eXBlX2lk KTsgXAotICAgICB9CQkJCQlcCi0tICByZXR1cm4gZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGU7 CVwKLSsgIHJldHVybiBzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZDsgXAotIH0gLyogY2xvc2VzIHR5 cGVfbmFtZSMjX2dldF90eXBlKCkgKi8gXAotIFwKLSBHX0dOVUNfTk9fSU5MSU5FIFwKLUBAIC0y MDQxLDggKzIwNDEsOCBAQCBzdGF0aWMgdm9pZCAgICAgdHlwZV9uYW1lIyNfZGVmYXVsdF9pbml0 ICAgICAgICAoVHlwZU5hbWUjI0ludGVyZmFjZSAqa2xhc3MpOyBcCi0gR1R5cGUgXAotIHR5cGVf bmFtZSMjX2dldF90eXBlICh2b2lkKSBcCi0geyBcCi0tICBzdGF0aWMgdm9sYXRpbGUgZ3NpemUg Z19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUgPSAwOyBcCi0tICBpZiAoZ19vbmNlX2luaXRfZW50 ZXIgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSkpICBcCi0rICBzdGF0aWMgZ3NpemUgc3Rh dGljX2dfZGVmaW5lX3R5cGVfaWQgPSAwOyBcCi0rICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZz dGF0aWNfZ19kZWZpbmVfdHlwZV9pZCkpIFwKLSAgICAgeyBcCi0gICAgICAgR1R5cGUgZ19kZWZp bmVfdHlwZV9pZCA9IFwKLSAgICAgICAgIGdfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfc2ltcGxlIChH X1RZUEVfSU5URVJGQUNFLCBcCi1AQCAtMjA1OCw5ICsyMDU4LDkgQEAgdHlwZV9uYW1lIyNfZ2V0 X3R5cGUgKHZvaWQpIFwKLSAjZGVmaW5lIF9HX0RFRklORV9JTlRFUkZBQ0VfRVhURU5ERURfRU5E KCkJXAotICAgICAgICAgLyogZm9sbG93aW5nIGN1c3RvbSBjb2RlICovCQlcCi0gICAgICAgfQkJ CQkJCVwKLS0gICAgICBnX29uY2VfaW5pdF9sZWF2ZSAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0 aWxlLCBnX2RlZmluZV90eXBlX2lkKTsgXAotKyAgICAgIGdfb25jZV9pbml0X2xlYXZlICgmc3Rh dGljX2dfZGVmaW5lX3R5cGVfaWQsIGdfZGVmaW5lX3R5cGVfaWQpOyBcCi0gICAgIH0JCQkJCQlc Ci0tICByZXR1cm4gZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGU7CQkJXAotKyAgcmV0dXJuIHN0 YXRpY19nX2RlZmluZV90eXBlX2lkOyBcCi0gfSAvKiBjbG9zZXMgdHlwZV9uYW1lIyNfZ2V0X3R5 cGUoKSAqLwotIAotIC8qKgotQEAgLTIxMTUsMTMgKzIxMTUsMTMgQEAgc3RhdGljIEdUeXBlIHR5 cGVfbmFtZSMjX2dldF90eXBlX29uY2UgKHZvaWQpOyBcCi0gR1R5cGUgXAotIHR5cGVfbmFtZSMj X2dldF90eXBlICh2b2lkKSBcCi0geyBcCi0tICBzdGF0aWMgdm9sYXRpbGUgZ3NpemUgZ19kZWZp bmVfdHlwZV9pZF9fdm9sYXRpbGUgPSAwOyBcCi0tICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZn X2RlZmluZV90eXBlX2lkX192b2xhdGlsZSkpICBcCi0rICBzdGF0aWMgZ3NpemUgc3RhdGljX2df ZGVmaW5lX3R5cGVfaWQgPSAwOyBcCi0rICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZzdGF0aWNf Z19kZWZpbmVfdHlwZV9pZCkpIFwKLSAgICAgeyBcCi0gICAgICAgR1R5cGUgZ19kZWZpbmVfdHlw ZV9pZCA9IHR5cGVfbmFtZSMjX2dldF90eXBlX29uY2UgKCk7IFwKLS0gICAgICBnX29uY2VfaW5p dF9sZWF2ZSAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlLCBnX2RlZmluZV90eXBlX2lkKTsg XAotKyAgICAgIGdfb25jZV9pbml0X2xlYXZlICgmc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQsIGdf ZGVmaW5lX3R5cGVfaWQpOyBcCi0gICAgIH0gXAotLSAgcmV0dXJuIGdfZGVmaW5lX3R5cGVfaWRf X3ZvbGF0aWxlOyBcCi0rICByZXR1cm4gc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQ7IFwKLSB9IFwK LSBcCi0gR19HTlVDX05PX0lOTElORSBcCi1AQCAtMjE1MiwxMyArMjE1MiwxMyBAQCBzdGF0aWMg R1R5cGUgdHlwZV9uYW1lIyNfZ2V0X3R5cGVfb25jZSAodm9pZCk7IFwKLSBHVHlwZSBcCi0gdHlw ZV9uYW1lIyNfZ2V0X3R5cGUgKHZvaWQpIFwKLSB7IFwKLS0gIHN0YXRpYyB2b2xhdGlsZSBnc2l6 ZSBnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSA9IDA7IFwKLS0gIGlmIChnX29uY2VfaW5pdF9l bnRlciAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlKSkgIFwKLSsgIHN0YXRpYyBnc2l6ZSBz dGF0aWNfZ19kZWZpbmVfdHlwZV9pZCA9IDA7IFwKLSsgIGlmIChnX29uY2VfaW5pdF9lbnRlciAo JnN0YXRpY19nX2RlZmluZV90eXBlX2lkKSkgXAotICAgICB7IFwKLSAgICAgICBHVHlwZSBnX2Rl ZmluZV90eXBlX2lkID0gdHlwZV9uYW1lIyNfZ2V0X3R5cGVfb25jZSAoKTsgXAotLSAgICAgIGdf b25jZV9pbml0X2xlYXZlICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUsIGdfZGVmaW5lX3R5 cGVfaWQpOyBcCi0rICAgICAgZ19vbmNlX2luaXRfbGVhdmUgKCZzdGF0aWNfZ19kZWZpbmVfdHlw ZV9pZCwgZ19kZWZpbmVfdHlwZV9pZCk7IFwKLSAgICAgfSBcCi0tICByZXR1cm4gZ19kZWZpbmVf dHlwZV9pZF9fdm9sYXRpbGU7IFwKLSsgIHJldHVybiBzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZDsg XAotIH0gXAotIFwKLSBHX0dOVUNfTk9fSU5MSU5FIFwKLUBAIC0yMjA1LDEzICsyMjA1LDEzIEBA IHN0YXRpYyBHVHlwZSB0eXBlX25hbWUjI19nZXRfdHlwZV9vbmNlICh2b2lkKTsgXAotIEdUeXBl IFwKLSB0eXBlX25hbWUjI19nZXRfdHlwZSAodm9pZCkgXAotIHsgXAotLSAgc3RhdGljIHZvbGF0 aWxlIGdzaXplIGdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlID0gMDsgXAotLSAgaWYgKGdfb25j ZV9pbml0X2VudGVyICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUpKSAgXAotKyAgc3RhdGlj IGdzaXplIHN0YXRpY19nX2RlZmluZV90eXBlX2lkID0gMDsgXAotKyAgaWYgKGdfb25jZV9pbml0 X2VudGVyICgmc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQpKSBcCi0gICAgIHsgXAotICAgICAgIEdU eXBlIGdfZGVmaW5lX3R5cGVfaWQgPSB0eXBlX25hbWUjI19nZXRfdHlwZV9vbmNlICgpOyBcCi0t ICAgICAgZ19vbmNlX2luaXRfbGVhdmUgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSwgZ19k ZWZpbmVfdHlwZV9pZCk7IFwKLSsgICAgICBnX29uY2VfaW5pdF9sZWF2ZSAoJnN0YXRpY19nX2Rl ZmluZV90eXBlX2lkLCBnX2RlZmluZV90eXBlX2lkKTsgXAotICAgICB9IFwKLS0gIHJldHVybiBn X2RlZmluZV90eXBlX2lkX192b2xhdGlsZTsgXAotKyAgcmV0dXJuIHN0YXRpY19nX2RlZmluZV90 eXBlX2lkOyBcCi0gfSBcCi0gXAotIEdfR05VQ19OT19JTkxJTkUgXAotZGlmZiAtLWdpdCBhL2dv YmplY3QvdGVzdHMvc2lnbmFscy5jIGIvZ29iamVjdC90ZXN0cy9zaWduYWxzLmMKLWluZGV4IDEy MGY5MGI1Yy4uYWMwY2U1MTAyIDEwMDY0NAotLS0tIGEvZ29iamVjdC90ZXN0cy9zaWduYWxzLmMK LSsrKyBiL2dvYmplY3QvdGVzdHMvc2lnbmFscy5jCi1AQCAtNjYsOSArNjYsOSBAQCBjdXN0b21f bWFyc2hhbF9WT0lEX19JTlZPQ0FUSU9OSElOVCAoR0Nsb3N1cmUgICAgICpjbG9zdXJlLAotIHN0 YXRpYyBHVHlwZQotIHRlc3RfZW51bV9nZXRfdHlwZSAodm9pZCkKLSB7Ci0tICBzdGF0aWMgdm9s YXRpbGUgZ3NpemUgZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUgPSAwOwotKyAgc3RhdGljIGdz aXplIHN0YXRpY19nX2RlZmluZV90eXBlX2lkID0gMDsKLSAKLS0gIGlmIChnX29uY2VfaW5pdF9l bnRlciAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlKSkKLSsgIGlmIChnX29uY2VfaW5pdF9l bnRlciAoJnN0YXRpY19nX2RlZmluZV90eXBlX2lkKSkKLSAgICAgewotICAgICAgIHN0YXRpYyBj b25zdCBHRW51bVZhbHVlIHZhbHVlc1tdID0gewotICAgICAgICAgeyBURVNUX0VOVU1fTkVHQVRJ VkUsICJURVNUX0VOVU1fTkVHQVRJVkUiLCAibmVnYXRpdmUiIH0sCi1AQCAtNzksMTggKzc5LDE4 IEBAIHRlc3RfZW51bV9nZXRfdHlwZSAodm9pZCkKLSAgICAgICB9OwotICAgICAgIEdUeXBlIGdf ZGVmaW5lX3R5cGVfaWQgPQotICAgICAgICAgZ19lbnVtX3JlZ2lzdGVyX3N0YXRpYyAoZ19pbnRl cm5fc3RhdGljX3N0cmluZyAoIlRlc3RFbnVtIiksIHZhbHVlcyk7Ci0tICAgICAgZ19vbmNlX2lu aXRfbGVhdmUgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSwgZ19kZWZpbmVfdHlwZV9pZCk7 Ci0rICAgICAgZ19vbmNlX2luaXRfbGVhdmUgKCZzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZCwgZ19k ZWZpbmVfdHlwZV9pZCk7Ci0gICAgIH0KLSAKLS0gIHJldHVybiBnX2RlZmluZV90eXBlX2lkX192 b2xhdGlsZTsKLSsgIHJldHVybiBzdGF0aWNfZ19kZWZpbmVfdHlwZV9pZDsKLSB9Ci0gCi0gc3Rh dGljIEdUeXBlCi0gdGVzdF91bnNpZ25lZF9lbnVtX2dldF90eXBlICh2b2lkKQotIHsKLS0gIHN0 YXRpYyB2b2xhdGlsZSBnc2l6ZSBnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSA9IDA7Ci0rICBz dGF0aWMgZ3NpemUgc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQgPSAwOwotIAotLSAgaWYgKGdfb25j ZV9pbml0X2VudGVyICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUpKQotKyAgaWYgKGdfb25j ZV9pbml0X2VudGVyICgmc3RhdGljX2dfZGVmaW5lX3R5cGVfaWQpKQotICAgICB7Ci0gICAgICAg c3RhdGljIGNvbnN0IEdFbnVtVmFsdWUgdmFsdWVzW10gPSB7Ci0gICAgICAgICB7IFRFU1RfVU5T SUdORURfRU5VTV9GT08sICJURVNUX1VOU0lHTkVEX0VOVU1fRk9PIiwgImZvbyIgfSwKLUBAIC05 OSwxMCArOTksMTAgQEAgdGVzdF91bnNpZ25lZF9lbnVtX2dldF90eXBlICh2b2lkKQotICAgICAg IH07Ci0gICAgICAgR1R5cGUgZ19kZWZpbmVfdHlwZV9pZCA9Ci0gICAgICAgICBnX2VudW1fcmVn aXN0ZXJfc3RhdGljIChnX2ludGVybl9zdGF0aWNfc3RyaW5nICgiVGVzdFVuc2lnbmVkRW51bSIp LCB2YWx1ZXMpOwotLSAgICAgIGdfb25jZV9pbml0X2xlYXZlICgmZ19kZWZpbmVfdHlwZV9pZF9f dm9sYXRpbGUsIGdfZGVmaW5lX3R5cGVfaWQpOwotKyAgICAgIGdfb25jZV9pbml0X2xlYXZlICgm c3RhdGljX2dfZGVmaW5lX3R5cGVfaWQsIGdfZGVmaW5lX3R5cGVfaWQpOwotICAgICB9Ci0gCi0t ICByZXR1cm4gZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGU7Ci0rICByZXR1cm4gc3RhdGljX2df ZGVmaW5lX3R5cGVfaWQ7Ci0gfQotIAotIHR5cGVkZWYgZW51bSB7Ci0tLSAKLUdpdExhYgotCi0K LUZyb20gYTZjZTBlNzQyYTVjNzVjNTNhN2M3MDJlYmIxYWYxMDg0MDY1MTYwYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nv cy5vcmc+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDE4OjE0OjI5ICswMDAwCi1TdWJqZWN0OiBb UEFUQ0ggMDIvMjldIHRlc3RzOiBGaXggbm9uLWF0b21pYyBhY2Nlc3MgdG8gYSBzaGFyZWQgdmFy aWFibGUKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotQW5kIGRyb3AgdGhl IGB2b2xhdGlsZWAgcXVhbGlmaWVyIGZyb20gdGhlIHZhcmlhYmxlLCBhcyB0aGF0IGRvZXNu4oCZ dAotaGVscCB3aXRoIHRocmVhZCBzYWZldHkuCi0KLVNpZ25lZC1vZmYtYnk6IFBoaWxpcCBXaXRo bmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBzOiAjNjAwCi0tLS0KLSBnbGli L3Rlc3RzLzY0MjAyNi5jIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dsaWIvdGVzdHMvNjQyMDI2LmMgYi9n bGliL3Rlc3RzLzY0MjAyNi5jCi1pbmRleCBlZjU0ZjE0YmIuLjI2YWIyZWQwNiAxMDA2NDQKLS0t LSBhL2dsaWIvdGVzdHMvNjQyMDI2LmMKLSsrKyBiL2dsaWIvdGVzdHMvNjQyMDI2LmMKLUBAIC0y NSw3ICsyNSw3IEBAIHN0YXRpYyBHTXV0ZXggKm11dGV4OwotIHN0YXRpYyBHQ29uZCAqY29uZDsK LSBzdGF0aWMgZ3VpbnQgaTsKLSAKLS1zdGF0aWMgdm9sYXRpbGUgZ2ludCBmcmVlZCA9IDA7Ci0r c3RhdGljIGdpbnQgZnJlZWQgPSAwOyAgLyogKGF0b21pYykgKi8KLSAKLSBzdGF0aWMgdm9pZAot IG5vdGlmeSAoZ3BvaW50ZXIgcCkKLUBAIC02Myw3ICs2Myw3IEBAIHRlc3RjYXNlICh2b2lkKQot ICAgICAgIEdUaHJlYWQgKnQxOwotIAotICAgICAgIGdfc3RhdGljX3ByaXZhdGVfaW5pdCAoJnNw KTsKLS0gICAgICBmcmVlZCA9IDA7Ci0rICAgICAgZ19hdG9taWNfaW50X3NldCAoJmZyZWVkLCAw KTsKLSAKLSAgICAgICB0MSA9IGdfdGhyZWFkX2NyZWF0ZSAodGhyZWFkX2Z1bmMsIE5VTEwsIFRS VUUsIE5VTEwpOwotICAgICAgIGdfYXNzZXJ0ICh0MSAhPSBOVUxMKTsKLS0tIAotR2l0TGFiCi0K LQotRnJvbSBlYTc0NmM3OWZhZjU1NGQ5ODBjMjFiMGU0MzgxNzUzZTAwM2QyZGM2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVz c29zLm9yZz4KLURhdGU6IFdlZCwgMTEgTm92IDIwMjAgMTg6MTc6MjMgKzAwMDAKLVN1YmplY3Q6 IFtQQVRDSCAwMy8yOV0gdGVzdHM6IEZpeCBub24tYXRvbWljIGFjY2VzcyB0byBhIHNoYXJlZCB2 YXJpYWJsZQotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1BbmQgZHJvcCB0 aGUgYHZvbGF0aWxlYCBxdWFsaWZpZXIgZnJvbSB0aGUgdmFyaWFibGUsIGFzIHRoYXQgZG9lc27i gJl0Ci1oZWxwIHdpdGggdGhyZWFkIHNhZmV0eS4KLQotU2lnbmVkLW9mZi1ieTogUGhpbGlwIFdp dGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLQotSGVscHM6ICM2MDAKLS0tLQotIGds aWIvdGVzdHMvbWFpbmxvb3AuYyB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCi0gMSBmaWxlIGNo YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv Z2xpYi90ZXN0cy9tYWlubG9vcC5jIGIvZ2xpYi90ZXN0cy9tYWlubG9vcC5jCi1pbmRleCAxNjc2 M2EwZWEuLjU2M2E5NTFkZSAxMDA2NDQKLS0tLSBhL2dsaWIvdGVzdHMvbWFpbmxvb3AuYwotKysr IGIvZ2xpYi90ZXN0cy9tYWlubG9vcC5jCi1AQCAtOTE4LDcgKzkxOCw3IEBAIHRlc3RfbWFpbmxv b3Bfb3ZlcmZsb3cgKHZvaWQpCi0gICBnX21haW5fY29udGV4dF91bnJlZiAoY3R4KTsKLSB9Ci0g Ci0tc3RhdGljIHZvbGF0aWxlIGdpbnQgcmVhZHlfdGltZV9kaXNwYXRjaGVkOwotK3N0YXRpYyBn aW50IHJlYWR5X3RpbWVfZGlzcGF0Y2hlZDsgIC8qIChhdG9taWMpICovCi0gCi0gc3RhdGljIGdi b29sZWFuCi0gcmVhZHlfdGltZV9kaXNwYXRjaCAoR1NvdXJjZSAgICAgKnNvdXJjZSwKLUBAIC05 NjQsNyArOTY0LDcgQEAgdGVzdF9yZWFkeV90aW1lICh2b2lkKQotICAgLyogQSBzb3VyY2Ugd2l0 aCBubyByZWFkeSB0aW1lIHNldCBzaG91bGQgbm90IGZpcmUgKi8KLSAgIGdfYXNzZXJ0X2NtcGlu dCAoZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUgKHNvdXJjZSksID09LCAtMSk7Ci0gICB3aGlsZSAo Z19tYWluX2NvbnRleHRfaXRlcmF0aW9uIChOVUxMLCBGQUxTRSkpOwotLSAgZ19hc3NlcnRfZmFs c2UgKHJlYWR5X3RpbWVfZGlzcGF0Y2hlZCk7Ci0rICBnX2Fzc2VydF9mYWxzZSAoZ19hdG9taWNf aW50X2dldCAoJnJlYWR5X3RpbWVfZGlzcGF0Y2hlZCkpOwotIAotICAgLyogVGhlIHJlYWR5IHRp bWUgc2hvdWxkIG5vdCBoYXZlIGJlZW4gY2hhbmdlZCAqLwotICAgZ19hc3NlcnRfY21waW50IChn X3NvdXJjZV9nZXRfcmVhZHlfdGltZSAoc291cmNlKSwgPT0sIC0xKTsKLUBAIC05NzgsMzcgKzk3 OCwzNyBAQCB0ZXN0X3JlYWR5X3RpbWUgKHZvaWQpCi0gICAgKi8KLSAgIGdfc291cmNlX3NldF9y ZWFkeV90aW1lIChzb3VyY2UsIGdfZ2V0X21vbm90b25pY190aW1lICgpICsgR19USU1FX1NQQU5f REFZKTsKLSAgIHdoaWxlIChnX21haW5fY29udGV4dF9pdGVyYXRpb24gKE5VTEwsIEZBTFNFKSk7 Ci0tICBnX2Fzc2VydF9mYWxzZSAocmVhZHlfdGltZV9kaXNwYXRjaGVkKTsKLSsgIGdfYXNzZXJ0 X2ZhbHNlIChnX2F0b21pY19pbnRfZ2V0ICgmcmVhZHlfdGltZV9kaXNwYXRjaGVkKSk7Ci0gICAv KiBNYWtlIHN1cmUgaXQgZGlkbid0IGdldCByZXNldCAqLwotICAgZ19hc3NlcnRfY21waW50IChn X3NvdXJjZV9nZXRfcmVhZHlfdGltZSAoc291cmNlKSwgIT0sIC0xKTsKLSAKLSAgIC8qIFJlYWR5 IHRpbWUgb2YgLTEgLT4gZG9uJ3QgZmlyZSAqLwotICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUg KHNvdXJjZSwgLTEpOwotICAgd2hpbGUgKGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbiAoTlVMTCwg RkFMU0UpKTsKLS0gIGdfYXNzZXJ0X2ZhbHNlIChyZWFkeV90aW1lX2Rpc3BhdGNoZWQpOwotKyAg Z19hc3NlcnRfZmFsc2UgKGdfYXRvbWljX2ludF9nZXQgKCZyZWFkeV90aW1lX2Rpc3BhdGNoZWQp KTsKLSAgIC8qIE5vdCByZXNldCwgYnV0IHNob3VsZCBzdGlsbCBiZSAtMSBmcm9tIGFib3ZlICov Ci0gICBnX2Fzc2VydF9jbXBpbnQgKGdfc291cmNlX2dldF9yZWFkeV90aW1lIChzb3VyY2UpLCA9 PSwgLTEpOwotIAotICAgLyogQSByZWFkeSB0aW1lIG9mIHRoZSBjdXJyZW50IHRpbWUgc2hvdWxk IGZpcmUgaW1tZWRpYXRlbHkgKi8KLSAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lIChzb3VyY2Us IGdfZ2V0X21vbm90b25pY190aW1lICgpKTsKLSAgIHdoaWxlIChnX21haW5fY29udGV4dF9pdGVy YXRpb24gKE5VTEwsIEZBTFNFKSk7Ci0tICBnX2Fzc2VydF90cnVlIChyZWFkeV90aW1lX2Rpc3Bh dGNoZWQpOwotLSAgcmVhZHlfdGltZV9kaXNwYXRjaGVkID0gRkFMU0U7Ci0rICBnX2Fzc2VydF90 cnVlIChnX2F0b21pY19pbnRfZ2V0ICgmcmVhZHlfdGltZV9kaXNwYXRjaGVkKSk7Ci0rICBnX2F0 b21pY19pbnRfc2V0ICgmcmVhZHlfdGltZV9kaXNwYXRjaGVkLCBGQUxTRSk7Ci0gICAvKiBTaG91 bGQgaGF2ZSBnb3R0ZW4gcmVzZXQgYnkgdGhlIGhhbmRsZXIgZnVuY3Rpb24gKi8KLSAgIGdfYXNz ZXJ0X2NtcGludCAoZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUgKHNvdXJjZSksID09LCAtMSk7Ci0g Ci0gICAvKiBBcyB3ZWxsIGFzIG9uZSBpbiB0aGUgcmVjZW50IHBhc3QuLi4gKi8KLSAgIGdfc291 cmNlX3NldF9yZWFkeV90aW1lIChzb3VyY2UsIGdfZ2V0X21vbm90b25pY190aW1lICgpIC0gR19U SU1FX1NQQU5fU0VDT05EKTsKLSAgIHdoaWxlIChnX21haW5fY29udGV4dF9pdGVyYXRpb24gKE5V TEwsIEZBTFNFKSk7Ci0tICBnX2Fzc2VydF90cnVlIChyZWFkeV90aW1lX2Rpc3BhdGNoZWQpOwot LSAgcmVhZHlfdGltZV9kaXNwYXRjaGVkID0gRkFMU0U7Ci0rICBnX2Fzc2VydF90cnVlIChnX2F0 b21pY19pbnRfZ2V0ICgmcmVhZHlfdGltZV9kaXNwYXRjaGVkKSk7Ci0rICBnX2F0b21pY19pbnRf c2V0ICgmcmVhZHlfdGltZV9kaXNwYXRjaGVkLCBGQUxTRSk7Ci0gICBnX2Fzc2VydF9jbXBpbnQg KGdfc291cmNlX2dldF9yZWFkeV90aW1lIChzb3VyY2UpLCA9PSwgLTEpOwotIAotICAgLyogWmVy byBpcyB0aGUgJ29mZmljaWFsJyB3YXkgdG8gZ2V0IGEgc291cmNlIHRvIGZpcmUgaW1tZWRpYXRl bHkgKi8KLSAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lIChzb3VyY2UsIDApOwotICAgd2hpbGUg KGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbiAoTlVMTCwgRkFMU0UpKTsKLS0gIGdfYXNzZXJ0X3Ry dWUgKHJlYWR5X3RpbWVfZGlzcGF0Y2hlZCk7Ci0tICByZWFkeV90aW1lX2Rpc3BhdGNoZWQgPSBG QUxTRTsKLSsgIGdfYXNzZXJ0X3RydWUgKGdfYXRvbWljX2ludF9nZXQgKCZyZWFkeV90aW1lX2Rp c3BhdGNoZWQpKTsKLSsgIGdfYXRvbWljX2ludF9zZXQgKCZyZWFkeV90aW1lX2Rpc3BhdGNoZWQs IEZBTFNFKTsKLSAgIGdfYXNzZXJ0X2NtcGludCAoZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUgKHNv dXJjZSksID09LCAtMSk7Ci0gCi0gICAvKiBOb3cgZG8gc29tZSB0ZXN0cyBvZiBjcm9zcy10aHJl YWQgd2FrZXVwcy4KLS0tIAotR2l0TGFiCi0KLQotRnJvbSAzZGRhNjYyYmViYjgxNjY2ZDAwOTYz NWRmMTA1NWJhNWMxZTE3YjUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlw IFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IFdlZCwgMTEgTm92IDIw MjAgMTg6MTY6MTcgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAwNC8yOV0gdGVzdHM6IERyb3AgdW5u ZWNlc3Nhcnkgdm9sYXRpbGUgcXVhbGlmaWVycyBmcm9tIHRlc3RzCi1NSU1FLVZlcnNpb246IDEu MAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVRoZXNlIHZhcmlhYmxlcyB3ZXJlIGFscmVhZHkgKGNvcnJl Y3RseSkgYWNjZXNzZWQgYXRvbWljYWxseS4gVGhlCi1gdm9sYXRpbGVgIHF1YWxpZmllciBkb2Vz buKAmXQgaGVscCB3aXRoIHRoYXQuCi0KLVNpZ25lZC1vZmYtYnk6IFBoaWxpcCBXaXRobmFsbCA8 cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBzOiAjNjAwCi0tLS0KLSBnbGliL3Rlc3Rz L2F0b21pYy5jICAgICAgfCA0ICsrLS0KLSBnbGliL3Rlc3RzL2NvbmQuYyAgICAgICAgfCAyICst Ci0gZ2xpYi90ZXN0cy9nd2FrZXVwdGVzdC5jIHwgMiArLQotIGdsaWIvdGVzdHMvaGFzaC5jICAg ICAgICB8IDIgKy0KLSBnbGliL3Rlc3RzL3NsaWNlLmMgICAgICAgfCAyICstCi0gNSBmaWxlcyBj aGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9n bGliL3Rlc3RzL2F0b21pYy5jIGIvZ2xpYi90ZXN0cy9hdG9taWMuYwotaW5kZXggNmI2Y2M3ZjNl Li43ZDI0NTlmM2EgMTAwNjQ0Ci0tLS0gYS9nbGliL3Rlc3RzL2F0b21pYy5jCi0rKysgYi9nbGli L3Rlc3RzL2F0b21pYy5jCi1AQCAtMjQ4LDggKzI0OCw4IEBAIEdfR05VQ19FTkRfSUdOT1JFX0RF UFJFQ0FUSU9OUwotICNkZWZpbmUgVEhSRUFEUyAxMAotICNkZWZpbmUgUk9VTkRTIDEwMDAwCi0g Ci0tdm9sYXRpbGUgZ2ludCBidWNrZXRbVEhSRUFEU107Ci0tdm9sYXRpbGUgZ2ludCBhdG9taWM7 Ci0rZ2ludCBidWNrZXRbVEhSRUFEU107ICAvKiBuZXZlciBjb250ZXN0ZWQgYnkgdGhyZWFkcywg bm90IGFjY2Vzc2VkIGF0b21pY2FsbHkgKi8KLStnaW50IGF0b21pYzsgIC8qIChhdG9taWMpICov Ci0gCi0gc3RhdGljIGdwb2ludGVyCi0gdGhyZWFkX2Z1bmMgKGdwb2ludGVyIGRhdGEpCi1kaWZm IC0tZ2l0IGEvZ2xpYi90ZXN0cy9jb25kLmMgYi9nbGliL3Rlc3RzL2NvbmQuYwotaW5kZXggMGYw YjNkMjQ5Li5lZDMzOGNjZTMgMTAwNjQ0Ci0tLS0gYS9nbGliL3Rlc3RzL2NvbmQuYwotKysrIGIv Z2xpYi90ZXN0cy9jb25kLmMKLUBAIC0yOSw3ICsyOSw3IEBACi0gCi0gc3RhdGljIEdDb25kIGNv bmQ7Ci0gc3RhdGljIEdNdXRleCBtdXRleDsKLS1zdGF0aWMgdm9sYXRpbGUgZ2ludCBuZXh0Owot K3N0YXRpYyBnaW50IG5leHQ7ICAvKiBsb2NrZWQgYnkgQG11dGV4ICovCi0gCi0gc3RhdGljIHZv aWQKLSBwdXNoX3ZhbHVlIChnaW50IHZhbHVlKQotZGlmZiAtLWdpdCBhL2dsaWIvdGVzdHMvZ3dh a2V1cHRlc3QuYyBiL2dsaWIvdGVzdHMvZ3dha2V1cHRlc3QuYwotaW5kZXggNDYxYTdkM2RlLi5i MzdmYjQzZmMgMTAwNjQ0Ci0tLS0gYS9nbGliL3Rlc3RzL2d3YWtldXB0ZXN0LmMKLSsrKyBiL2ds aWIvdGVzdHMvZ3dha2V1cHRlc3QuYwotQEAgLTkyLDcgKzkyLDcgQEAgc3RydWN0IGNvbnRleHQK LSBzdGF0aWMgc3RydWN0IGNvbnRleHQgY29udGV4dHNbTlVNX1RIUkVBRFNdOwotIHN0YXRpYyBH VGhyZWFkICp0aHJlYWRzW05VTV9USFJFQURTXTsKLSBzdGF0aWMgR1dha2V1cCAqbGFzdF90b2tl bl93YWtldXA7Ci0tc3RhdGljIHZvbGF0aWxlIGdpbnQgdG9rZW5zX2FsaXZlOwotK3N0YXRpYyBn aW50IHRva2Vuc19hbGl2ZTsgIC8qIChhdG9taWMpICovCi0gCi0gc3RhdGljIHZvaWQKLSBjb250 ZXh0X2luaXQgKHN0cnVjdCBjb250ZXh0ICpjdHgpCi1kaWZmIC0tZ2l0IGEvZ2xpYi90ZXN0cy9o YXNoLmMgYi9nbGliL3Rlc3RzL2hhc2guYwotaW5kZXggNDYyM2QxOGQxLi5mNGZmNTVjZTEgMTAw NjQ0Ci0tLS0gYS9nbGliL3Rlc3RzL2hhc2guYwotKysrIGIvZ2xpYi90ZXN0cy9oYXNoLmMKLUBA IC0xMzYyLDcgKzEzNjIsNyBAQCBzdHJ1Y3QgX0dIYXNoVGFibGUKLSAKLSAgIEdIYXNoRnVuYyAg ICAgICAgaGFzaF9mdW5jOwotICAgR0VxdWFsRnVuYyAgICAgICBrZXlfZXF1YWxfZnVuYzsKLS0g IHZvbGF0aWxlIGdpbnQgICAgcmVmX2NvdW50OwotKyAgZ2ludCAgICAgICAgICAgICByZWZfY291 bnQ7ICAvKiAoYXRvbWljKSAqLwotIAotICNpZm5kZWYgR19ESVNBQkxFX0FTU0VSVAotICAgaW50 ICAgICAgICAgICAgICB2ZXJzaW9uOwotZGlmZiAtLWdpdCBhL2dsaWIvdGVzdHMvc2xpY2UuYyBi L2dsaWIvdGVzdHMvc2xpY2UuYwotaW5kZXggZjM3ODI2ZjNhLi5hNTY2MjgwZGIgMTAwNjQ0Ci0t LS0gYS9nbGliL3Rlc3RzL3NsaWNlLmMKLSsrKyBiL2dsaWIvdGVzdHMvc2xpY2UuYwotQEAgLTEw Nyw3ICsxMDcsNyBAQCB0aHJlYWRfYWxsb2NhdGUgKGdwb2ludGVyIGRhdGEpCi0gICBnaW50IGI7 Ci0gICBnaW50IHNpemU7Ci0gICBncG9pbnRlciBwOwotLSAgdm9sYXRpbGUgZ3BvaW50ZXIgKmxv YzsKLSsgIGdwb2ludGVyICpsb2M7ICAvKiAoYXRvbWljKSAqLwotIAotICAgZm9yIChpID0gMDsg aSA8IDEwMDAwOyBpKyspCi0gICAgIHsKLS0tIAotR2l0TGFiCi0KLQotRnJvbSA3ZjkwNWZmMWZh ZjBhY2JlMGQyY2U2OTkzN2UwMzFmY2FjY2U5Mjk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IFdl ZCwgMTEgTm92IDIwMjAgMTg6MjE6MDAgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAwNS8yOV0gdGVz dHM6IEZpeCBub24tYXRvbWljIGFjY2VzcyB0byBzb21lIHNoYXJlZCB2YXJpYWJsZXMKLU1JTUUt VmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotQW5kIGRyb3AgdGhlIGB2b2xhdGlsZWAg cXVhbGlmaWVyIGZyb20gdGhlIHZhcmlhYmxlcywgYXMgdGhhdCBkb2VzbuKAmXQKLWhlbHAgd2l0 aCB0aHJlYWQgc2FmZXR5LgotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRo bmFsbEBlbmRsZXNzb3Mub3JnPgotCi1IZWxwczogIzYwMAotLS0tCi0gZ2lvL3Rlc3RzL2dkYnVz LWNvbm5lY3Rpb24tZmx1c2guYyB8ICAgNiArLQotIGdpby90ZXN0cy9nZGJ1cy1jb25uZWN0aW9u LmMgICAgICAgfCAgNDAgKysrKy0tLS0KLSBnaW8vdGVzdHMvZ2RidXMtb3ZlcmZsb3cuYyAgICAg ICAgIHwgIDIwICsrLS0KLSBnaW8vdGVzdHMvc29ja2V0LXNlcnZpY2UuYyAgICAgICAgIHwgICA2 ICstCi0gZ2lvL3Rlc3RzL3Rhc2suYyAgICAgICAgICAgICAgICAgICB8IDE1MCArKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLQotIDUgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyks IDExMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dpby90ZXN0cy9nZGJ1cy1jb25uZWN0 aW9uLWZsdXNoLmMgYi9naW8vdGVzdHMvZ2RidXMtY29ubmVjdGlvbi1mbHVzaC5jCi1pbmRleCA3 M2EwMzRiODEuLjhjOTI1ODI1YSAxMDA2NDQKLS0tLSBhL2dpby90ZXN0cy9nZGJ1cy1jb25uZWN0 aW9uLWZsdXNoLmMKLSsrKyBiL2dpby90ZXN0cy9nZGJ1cy1jb25uZWN0aW9uLWZsdXNoLmMKLUBA IC00Myw5ICs0Myw5IEBAIEdfTE9DS19ERUZJTkVfU1RBVElDICh3cml0ZSk7Ci0gdHlwZWRlZiBz dHJ1Y3QgewotICAgICBHRmlsdGVyT3V0cHV0U3RyZWFtIHBhcmVudDsKLSAKLS0gICAgdm9sYXRp bGUgZ2ludCBzdGFydGVkOwotLSAgICB2b2xhdGlsZSBnaW50IGZpbmlzaGVkOwotLSAgICB2b2xh dGlsZSBnaW50IGZsdXNoZWQ7Ci0rICAgIGdpbnQgc3RhcnRlZDsgIC8qIChhdG9taWMpICovCi0r ICAgIGdpbnQgZmluaXNoZWQ7ICAvKiAoYXRvbWljKSAqLwotKyAgICBnaW50IGZsdXNoZWQ7ICAv KiAoYXRvbWljKSAqLwotIAotICAgICBHT3V0cHV0U3RyZWFtICpyZWFsX291dHB1dDsKLSB9IE15 T3V0cHV0U3RyZWFtOwotZGlmZiAtLWdpdCBhL2dpby90ZXN0cy9nZGJ1cy1jb25uZWN0aW9uLmMg Yi9naW8vdGVzdHMvZ2RidXMtY29ubmVjdGlvbi5jCi1pbmRleCAyNzg1NzA2MDkuLjUxZGQyN2Y3 ZSAxMDA2NDQKLS0tLSBhL2dpby90ZXN0cy9nZGJ1cy1jb25uZWN0aW9uLmMKLSsrKyBiL2dpby90 ZXN0cy9nZGJ1cy1jb25uZWN0aW9uLmMKLUBAIC02MSw5ICs2MSw5IEBAIF9sb2cgKGNvbnN0IGdj aGFyICpmb3JtYXQsIC4uLikKLSBzdGF0aWMgZ2Jvb2xlYW4KLSB0ZXN0X2Nvbm5lY3Rpb25fcXVp dF9tYWlubG9vcCAoZ3BvaW50ZXIgdXNlcl9kYXRhKQotIHsKLS0gIHZvbGF0aWxlIGdib29sZWFu ICpxdWl0X21haW5sb29wX2ZpcmVkID0gdXNlcl9kYXRhOwotKyAgZ2Jvb2xlYW4gKnF1aXRfbWFp bmxvb3BfZmlyZWQgPSB1c2VyX2RhdGE7ICAvKiAoYXRvbWljKSAqLwotICAgX2xvZyAoInF1aXRf bWFpbmxvb3BfZmlyZWQiKTsKLS0gICpxdWl0X21haW5sb29wX2ZpcmVkID0gVFJVRTsKLSsgIGdf YXRvbWljX2ludF9zZXQgKHF1aXRfbWFpbmxvb3BfZmlyZWQsIFRSVUUpOwotICAgZ19tYWluX2xv b3BfcXVpdCAobG9vcCk7Ci0gICByZXR1cm4gR19TT1VSQ0VfQ09OVElOVUU7Ci0gfQotQEAgLTEx Myw4ICsxMTMsOCBAQCBvbl9uYW1lX293bmVyX2NoYW5nZWQgKEdEQnVzQ29ubmVjdGlvbiAqY29u bmVjdGlvbiwKLSBzdGF0aWMgdm9pZAotIGFfZ2Rlc3Ryb3lub3RpZnlfdGhhdF9zZXRzX2FfZ2Jv b2xlYW5fdG9fdHJ1ZV9hbmRfcXVpdHNfbG9vcCAoZ3BvaW50ZXIgdXNlcl9kYXRhKQotIHsKLS0g IHZvbGF0aWxlIGdib29sZWFuICp2YWwgPSB1c2VyX2RhdGE7Ci0tICAqdmFsID0gVFJVRTsKLSsg IGdib29sZWFuICp2YWwgPSB1c2VyX2RhdGE7ICAvKiAoYXRvbWljKSAqLwotKyAgZ19hdG9taWNf aW50X3NldCAodmFsLCBUUlVFKTsKLSAgIF9sb2cgKCJkZXN0cm95bm90aWZ5IGZpcmVkIGZvciAl cCIsIHZhbCk7Ci0gICBnX21haW5fbG9vcF9xdWl0IChsb29wKTsKLSB9Ci1AQCAtMTQzLDEwICsx NDMsMTAgQEAgdGVzdF9jb25uZWN0aW9uX2xpZmVfY3ljbGUgKHZvaWQpCi0gICBHREJ1c0Nvbm5l Y3Rpb24gKmM7Ci0gICBHREJ1c0Nvbm5lY3Rpb24gKmMyOwotICAgR0Vycm9yICplcnJvcjsKLS0g IHZvbGF0aWxlIGdib29sZWFuIG9uX3NpZ25hbF9yZWdpc3RyYXRpb25fZnJlZWRfY2FsbGVkOwot LSAgdm9sYXRpbGUgZ2Jvb2xlYW4gb25fZmlsdGVyX2ZyZWVkX2NhbGxlZDsKLS0gIHZvbGF0aWxl IGdib29sZWFuIG9uX3JlZ2lzdGVyX29iamVjdF9mcmVlZF9jYWxsZWQ7Ci0tICB2b2xhdGlsZSBn Ym9vbGVhbiBxdWl0X21haW5sb29wX2ZpcmVkOwotKyAgZ2Jvb2xlYW4gb25fc2lnbmFsX3JlZ2lz dHJhdGlvbl9mcmVlZF9jYWxsZWQ7ICAvKiAoYXRvbWljKSAqLwotKyAgZ2Jvb2xlYW4gb25fZmls dGVyX2ZyZWVkX2NhbGxlZDsgIC8qIChhdG9taWMpICovCi0rICBnYm9vbGVhbiBvbl9yZWdpc3Rl cl9vYmplY3RfZnJlZWRfY2FsbGVkOyAgLyogKGF0b21pYykgKi8KLSsgIGdib29sZWFuIHF1aXRf bWFpbmxvb3BfZmlyZWQ7ICAvKiAoYXRvbWljKSAqLwotICAgZ3VpbnQgcXVpdF9tYWlubG9vcF9p ZDsKLSAgIGd1aW50IHJlZ2lzdHJhdGlvbl9pZDsKLSAKLUBAIC0yMDgsNyArMjA4LDcgQEAgdGVz dF9jb25uZWN0aW9uX2xpZmVfY3ljbGUgKHZvaWQpCi0gICBnX2Fzc2VydF9ub19lcnJvciAoZXJy b3IpOwotICAgZ19hc3NlcnRfbm9ubnVsbCAoYzIpOwotICAgLyogc2lnbmFsIHJlZ2lzdHJhdGlv biAqLwotLSAgb25fc2lnbmFsX3JlZ2lzdHJhdGlvbl9mcmVlZF9jYWxsZWQgPSBGQUxTRTsKLSsg IGdfYXRvbWljX2ludF9zZXQgKCZvbl9zaWduYWxfcmVnaXN0cmF0aW9uX2ZyZWVkX2NhbGxlZCwg RkFMU0UpOwotICAgZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFsX3N1YnNjcmliZSAoYzIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMi LCAvKiBidXMgbmFtZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Im9yZy5mcmVlZGVza3RvcC5EQnVzIiwgLyogaW50ZXJmYWNlICovCi1AQCAtMjIwLDEzICsyMjAs MTMgQEAgdGVzdF9jb25uZWN0aW9uX2xpZmVfY3ljbGUgKHZvaWQpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpICZvbl9zaWduYWxfcmVnaXN0cmF0aW9u X2ZyZWVkX2NhbGxlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFf Z2Rlc3Ryb3lub3RpZnlfdGhhdF9zZXRzX2FfZ2Jvb2xlYW5fdG9fdHJ1ZV9hbmRfcXVpdHNfbG9v cCk7Ci0gICAvKiBmaWx0ZXIgZnVuYyAqLwotLSAgb25fZmlsdGVyX2ZyZWVkX2NhbGxlZCA9IEZB TFNFOwotKyAgZ19hdG9taWNfaW50X3NldCAoJm9uX2ZpbHRlcl9mcmVlZF9jYWxsZWQsIEZBTFNF KTsKLSAgIGdfZGJ1c19jb25uZWN0aW9uX2FkZF9maWx0ZXIgKGMyLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc29tZV9maWx0ZXJfZnVuYywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChncG9pbnRlcikgJm9uX2ZpbHRlcl9mcmVlZF9jYWxsZWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhX2dkZXN0cm95bm90aWZ5X3RoYXRfc2V0c19hX2di b29sZWFuX3RvX3RydWVfYW5kX3F1aXRzX2xvb3ApOwotICAgLyogb2JqZWN0IHJlZ2lzdHJhdGlv biAqLwotLSAgb25fcmVnaXN0ZXJfb2JqZWN0X2ZyZWVkX2NhbGxlZCA9IEZBTFNFOwotKyAgZ19h dG9taWNfaW50X3NldCAoJm9uX3JlZ2lzdGVyX29iamVjdF9mcmVlZF9jYWxsZWQsIEZBTFNFKTsK LSAgIGVycm9yID0gTlVMTDsKLSAgIHJlZ2lzdHJhdGlvbl9pZCA9IGdfZGJ1c19jb25uZWN0aW9u X3JlZ2lzdGVyX29iamVjdCAoYzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIvZm9vIiwKLUBAIC0yMzksNyArMjM5LDcgQEAgdGVzdF9j b25uZWN0aW9uX2xpZmVfY3ljbGUgKHZvaWQpCi0gICBnX2Fzc2VydF9jbXB1aW50IChyZWdpc3Ry YXRpb25faWQsID4sIDApOwotICAgLyogb2ssIGZpbmFsaXplIHRoZSBjb25uZWN0aW9uIGFuZCBj aGVjayB0aGF0IGFsbCB0aGUgR0Rlc3Ryb3lOb3RpZnkgZnVuY3Rpb25zIGFyZSBpbnZva2VkIGFz IGV4cGVjdGVkICovCi0gICBnX29iamVjdF91bnJlZiAoYzIpOwotLSAgcXVpdF9tYWlubG9vcF9m aXJlZCA9IEZBTFNFOwotKyAgZ19hdG9taWNfaW50X3NldCAoJnF1aXRfbWFpbmxvb3BfZmlyZWQs IEZBTFNFKTsKLSAgIHF1aXRfbWFpbmxvb3BfaWQgPSBnX3RpbWVvdXRfYWRkICgzMDAwMCwgdGVz dF9jb25uZWN0aW9uX3F1aXRfbWFpbmxvb3AsIChncG9pbnRlcikgJnF1aXRfbWFpbmxvb3BfZmly ZWQpOwotICAgX2xvZyAoImRlc3Ryb3lub3RpZmllcyBmb3JcbiIKLSAgICAgICAgICIgcmVnaXN0 ZXJfb2JqZWN0ICVwXG4iCi1AQCAtMjUwLDIxICsyNTAsMjEgQEAgdGVzdF9jb25uZWN0aW9uX2xp ZmVfY3ljbGUgKHZvaWQpCi0gICAgICAgICAmb25fc2lnbmFsX3JlZ2lzdHJhdGlvbl9mcmVlZF9j YWxsZWQpOwotICAgd2hpbGUgKFRSVUUpCi0gICAgIHsKLS0gICAgICBpZiAob25fc2lnbmFsX3Jl Z2lzdHJhdGlvbl9mcmVlZF9jYWxsZWQgJiYKLS0gICAgICAgICAgb25fZmlsdGVyX2ZyZWVkX2Nh bGxlZCAmJgotLSAgICAgICAgICBvbl9yZWdpc3Rlcl9vYmplY3RfZnJlZWRfY2FsbGVkKQotKyAg ICAgIGlmIChnX2F0b21pY19pbnRfZ2V0ICgmb25fc2lnbmFsX3JlZ2lzdHJhdGlvbl9mcmVlZF9j YWxsZWQpICYmCi0rICAgICAgICAgIGdfYXRvbWljX2ludF9nZXQgKCZvbl9maWx0ZXJfZnJlZWRf Y2FsbGVkKSAmJgotKyAgICAgICAgICBnX2F0b21pY19pbnRfZ2V0ICgmb25fcmVnaXN0ZXJfb2Jq ZWN0X2ZyZWVkX2NhbGxlZCkpCi0gICAgICAgICBicmVhazsKLS0gICAgICBpZiAocXVpdF9tYWlu bG9vcF9maXJlZCkKLSsgICAgICBpZiAoZ19hdG9taWNfaW50X2dldCAoJnF1aXRfbWFpbmxvb3Bf ZmlyZWQpKQotICAgICAgICAgYnJlYWs7Ci0gICAgICAgX2xvZyAoImVudGVyaW5nIGxvb3AiKTsK LSAgICAgICBnX21haW5fbG9vcF9ydW4gKGxvb3ApOwotICAgICAgIF9sb2cgKCJleGl0aW5nIGxv b3AiKTsKLSAgICAgfQotICAgZ19zb3VyY2VfcmVtb3ZlIChxdWl0X21haW5sb29wX2lkKTsKLS0g IGdfYXNzZXJ0X3RydWUgKG9uX3NpZ25hbF9yZWdpc3RyYXRpb25fZnJlZWRfY2FsbGVkKTsKLS0g IGdfYXNzZXJ0X3RydWUgKG9uX2ZpbHRlcl9mcmVlZF9jYWxsZWQpOwotLSAgZ19hc3NlcnRfdHJ1 ZSAob25fcmVnaXN0ZXJfb2JqZWN0X2ZyZWVkX2NhbGxlZCk7Ci0tICBnX2Fzc2VydF9mYWxzZSAo cXVpdF9tYWlubG9vcF9maXJlZCk7Ci0rICBnX2Fzc2VydF90cnVlIChnX2F0b21pY19pbnRfZ2V0 ICgmb25fc2lnbmFsX3JlZ2lzdHJhdGlvbl9mcmVlZF9jYWxsZWQpKTsKLSsgIGdfYXNzZXJ0X3Ry dWUgKGdfYXRvbWljX2ludF9nZXQgKCZvbl9maWx0ZXJfZnJlZWRfY2FsbGVkKSk7Ci0rICBnX2Fz c2VydF90cnVlIChnX2F0b21pY19pbnRfZ2V0ICgmb25fcmVnaXN0ZXJfb2JqZWN0X2ZyZWVkX2Nh bGxlZCkpOwotKyAgZ19hc3NlcnRfZmFsc2UgKGdfYXRvbWljX2ludF9nZXQgKCZxdWl0X21haW5s b29wX2ZpcmVkKSk7Ci0gCi0gICAvKgotICAgICogIENoZWNrIGZvciBjb3JyZWN0IGJlaGF2aW9y IHdoZW4gdGhlIGJ1cyBnb2VzIGF3YXkKLWRpZmYgLS1naXQgYS9naW8vdGVzdHMvZ2RidXMtb3Zl cmZsb3cuYyBiL2dpby90ZXN0cy9nZGJ1cy1vdmVyZmxvdy5jCi1pbmRleCBjYTNkNWQwZTcuLmQz ZTFlYjI5NSAxMDA2NDQKLS0tLSBhL2dpby90ZXN0cy9nZGJ1cy1vdmVyZmxvdy5jCi0rKysgYi9n aW8vdGVzdHMvZ2RidXMtb3ZlcmZsb3cuYwotQEAgLTg2LDggKzg2LDggQEAgb3ZlcmZsb3dfZmls dGVyX2Z1bmMgKEdEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgZ2Jvb2xlYW4gICAgICAgICBpbmNvbWluZywKLSAgICAgICAgICAgICAgICAgICAgICAg Z3BvaW50ZXIgICAgICAgICB1c2VyX2RhdGEpCi0gewotLSAgdm9sYXRpbGUgZ2ludCAqY291bnRl ciA9IHVzZXJfZGF0YTsKLS0gICpjb3VudGVyICs9IDE7Ci0rICBnaW50ICpjb3VudGVyID0gdXNl cl9kYXRhOyAgLyogKGF0b21pYykgKi8KLSsgIGdfYXRvbWljX2ludF9pbmMgKGNvdW50ZXIpOwot ICAgcmV0dXJuIG1lc3NhZ2U7Ci0gfQotIAotQEAgLTEwOCw4ICsxMDgsOCBAQCB0ZXN0X292ZXJm bG93ICh2b2lkKQotICAgR0RCdXNDb25uZWN0aW9uICpwcm9kdWNlciwgKmNvbnN1bWVyOwotICAg R0Vycm9yICplcnJvcjsKLSAgIEdUaW1lciAqdGltZXI7Ci0tICB2b2xhdGlsZSBnaW50IG5fbWVz c2FnZXNfcmVjZWl2ZWQ7Ci0tICB2b2xhdGlsZSBnaW50IG5fbWVzc2FnZXNfc2VudDsKLSsgIGdp bnQgbl9tZXNzYWdlc19yZWNlaXZlZDsgIC8qIChhdG9taWMpICovCi0rICBnaW50IG5fbWVzc2Fn ZXNfc2VudDsgIC8qIChhdG9taWMpICovCi0gCi0gICBnX2Fzc2VydF9jbXBpbnQgKHNvY2tldHBh aXIgKEFGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwLCBzdiksID09LCAwKTsKLSAKLUBAIC0xMjksNyAr MTI5LDcgQEAgdGVzdF9vdmVyZmxvdyAodm9pZCkKLSAgIGdfZGJ1c19jb25uZWN0aW9uX3NldF9l eGl0X29uX2Nsb3NlIChwcm9kdWNlciwgVFJVRSk7Ci0gICBnX2Fzc2VydF9ub19lcnJvciAoZXJy b3IpOwotICAgZ19vYmplY3RfdW5yZWYgKHNvY2tldF9jb25uZWN0aW9uKTsKLS0gIG5fbWVzc2Fn ZXNfc2VudCA9IDA7Ci0rICBnX2F0b21pY19pbnRfc2V0ICgmbl9tZXNzYWdlc19zZW50LCAwKTsK LSAgIGdfZGJ1c19jb25uZWN0aW9uX2FkZF9maWx0ZXIgKHByb2R1Y2VyLCBvdmVyZmxvd19maWx0 ZXJfZnVuYywgKGdwb2ludGVyKSAmbl9tZXNzYWdlc19zZW50LCBOVUxMKTsKLSAKLSAgIC8qIHNl bmQgZW5vdWdoIGRhdGEgdGhhdCB3ZSBnZXQgYW4gRUFHQUlOICovCi1AQCAtMTU1LDcgKzE1NSw3 IEBAIHRlc3Rfb3ZlcmZsb3cgKHZvaWQpCi0gICAgKi8KLSAgIGdfdGltZW91dF9hZGQgKDUwMCwg b3ZlcmZsb3dfb25fNTAwbXNfbGF0ZXJfZnVuYywgTlVMTCk7Ci0gICBnX21haW5fbG9vcF9ydW4g KGxvb3ApOwotLSAgZ19hc3NlcnRfY21waW50IChuX21lc3NhZ2VzX3NlbnQsIDwsIE9WRVJGTE9X X05VTV9TSUdOQUxTKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19hdG9taWNfaW50X2dldCAoJm5f bWVzc2FnZXNfc2VudCksIDwsIE9WRVJGTE9XX05VTV9TSUdOQUxTKTsKLSAKLSAgIC8qIG5vdyBz dWNrIGl0IGFsbCBvdXQgYXMgYSBjbGllbnQsIGFuZCBhZGQgaXQgdXAgKi8KLSAgIHNvY2tldCA9 IGdfc29ja2V0X25ld19mcm9tX2ZkIChzdlsxXSwgJmVycm9yKTsKLUBAIC0xNzEsMTggKzE3MSwx OCBAQCB0ZXN0X292ZXJmbG93ICh2b2lkKQotIAkJCQkJICZlcnJvcik7Ci0gICBnX2Fzc2VydF9u b19lcnJvciAoZXJyb3IpOwotICAgZ19vYmplY3RfdW5yZWYgKHNvY2tldF9jb25uZWN0aW9uKTsK LS0gIG5fbWVzc2FnZXNfcmVjZWl2ZWQgPSAwOwotKyAgZ19hdG9taWNfaW50X3NldCAoJm5fbWVz c2FnZXNfcmVjZWl2ZWQsIDApOwotICAgZ19kYnVzX2Nvbm5lY3Rpb25fYWRkX2ZpbHRlciAoY29u c3VtZXIsIG92ZXJmbG93X2ZpbHRlcl9mdW5jLCAoZ3BvaW50ZXIpICZuX21lc3NhZ2VzX3JlY2Vp dmVkLCBOVUxMKTsKLSAgIGdfZGJ1c19jb25uZWN0aW9uX3N0YXJ0X21lc3NhZ2VfcHJvY2Vzc2lu ZyAoY29uc3VtZXIpOwotIAotICAgdGltZXIgPSBnX3RpbWVyX25ldyAoKTsKLSAgIGdfdGltZXJf c3RhcnQgKHRpbWVyKTsKLSAKLS0gIHdoaWxlIChuX21lc3NhZ2VzX3JlY2VpdmVkIDwgT1ZFUkZM T1dfTlVNX1NJR05BTFMgJiYgZ190aW1lcl9lbGFwc2VkICh0aW1lciwgTlVMTCkgPCBPVkVSRkxP V19USU1FT1VUX1NFQykKLSsgIHdoaWxlIChnX2F0b21pY19pbnRfZ2V0ICgmbl9tZXNzYWdlc19y ZWNlaXZlZCkgPCBPVkVSRkxPV19OVU1fU0lHTkFMUyAmJiBnX3RpbWVyX2VsYXBzZWQgKHRpbWVy LCBOVUxMKSA8IE9WRVJGTE9XX1RJTUVPVVRfU0VDKQotICAgICAgIGdfbWFpbl9jb250ZXh0X2l0 ZXJhdGlvbiAoTlVMTCwgRkFMU0UpOwotIAotLSAgZ19hc3NlcnRfY21waW50IChuX21lc3NhZ2Vz X3NlbnQsID09LCBPVkVSRkxPV19OVU1fU0lHTkFMUyk7Ci0tICBnX2Fzc2VydF9jbXBpbnQgKG5f bWVzc2FnZXNfcmVjZWl2ZWQsID09LCBPVkVSRkxPV19OVU1fU0lHTkFMUyk7Ci0rICBnX2Fzc2Vy dF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZuX21lc3NhZ2VzX3NlbnQpLCA9PSwgT1ZFUkZM T1dfTlVNX1NJR05BTFMpOwotKyAgZ19hc3NlcnRfY21waW50IChnX2F0b21pY19pbnRfZ2V0ICgm bl9tZXNzYWdlc19yZWNlaXZlZCksID09LCBPVkVSRkxPV19OVU1fU0lHTkFMUyk7Ci0gCi0gICBn X3RpbWVyX2Rlc3Ryb3kgKHRpbWVyKTsKLSAgIGdfb2JqZWN0X3VucmVmIChjb25zdW1lcik7Ci1k aWZmIC0tZ2l0IGEvZ2lvL3Rlc3RzL3NvY2tldC1zZXJ2aWNlLmMgYi9naW8vdGVzdHMvc29ja2V0 LXNlcnZpY2UuYwotaW5kZXggZjFkZDc4M2QxLi44NDg3YTcwMGUgMTAwNjQ0Ci0tLS0gYS9naW8v dGVzdHMvc29ja2V0LXNlcnZpY2UuYwotKysrIGIvZ2lvL3Rlc3RzL3NvY2tldC1zZXJ2aWNlLmMK LUBAIC05OSw3ICs5OSw3IEBAIHRlc3Rfc3RhcnRfc3RvcCAodm9pZCkKLSAKLSBHTXV0ZXggbXV0 ZXhfNzEyNTcwOwotIEdDb25kIGNvbmRfNzEyNTcwOwotLXZvbGF0aWxlIGdib29sZWFuIGZpbmFs aXplZDsKLStnYm9vbGVhbiBmaW5hbGl6ZWQ7ICAvKiAoYXRvbWljKSAqLwotIAotIEdUeXBlIHRl c3RfdGhyZWFkZWRfc29ja2V0X3NlcnZpY2VfZ2V0X3R5cGUgKHZvaWQpOwotIHR5cGVkZWYgR1Ro cmVhZGVkU29ja2V0U2VydmljZSBUZXN0VGhyZWFkZWRTb2NrZXRTZXJ2aWNlOwotQEAgLTEyMCw3 ICsxMjAsNyBAQCB0ZXN0X3RocmVhZGVkX3NvY2tldF9zZXJ2aWNlX2ZpbmFsaXplIChHT2JqZWN0 ICpvYmplY3QpCi0gICAvKiBTaWduYWwgdGhlIG1haW4gdGhyZWFkIHRoYXQgZmluYWxpemF0aW9u IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKLSAgICAqIHJhdGhlciB0aGFuIGhhbmdpbmcuCi0gICAg Ki8KLS0gIGZpbmFsaXplZCA9IFRSVUU7Ci0rICBnX2F0b21pY19pbnRfc2V0ICgmZmluYWxpemVk LCBUUlVFKTsKLSAgIGdfY29uZF9zaWduYWwgKCZjb25kXzcxMjU3MCk7Ci0gICBnX211dGV4X3Vu bG9jayAoJm11dGV4XzcxMjU3MCk7Ci0gfQotQEAgLTIzNSw3ICsyMzUsNyBAQCB0ZXN0X3RocmVh ZGVkXzcxMjU3MCAodm9pZCkKLSAgICAqLwotICAgZ19vYmplY3RfdW5yZWYgKHNlcnZpY2UpOwot IAotLSAgd2hpbGUgKCFmaW5hbGl6ZWQpCi0rICB3aGlsZSAoIWdfYXRvbWljX2ludF9nZXQgKCZm aW5hbGl6ZWQpKQotICAgICBnX2NvbmRfd2FpdCAoJmNvbmRfNzEyNTcwLCAmbXV0ZXhfNzEyNTcw KTsKLSAgIGdfbXV0ZXhfdW5sb2NrICgmbXV0ZXhfNzEyNTcwKTsKLSB9Ci1kaWZmIC0tZ2l0IGEv Z2lvL3Rlc3RzL3Rhc2suYyBiL2dpby90ZXN0cy90YXNrLmMKLWluZGV4IGNjYTA1Y2VkMS4uN2Nl ODQzOGZmIDEwMDY0NAotLS0tIGEvZ2lvL3Rlc3RzL3Rhc2suYwotKysrIGIvZ2lvL3Rlc3RzL3Rh c2suYwotQEAgLTk1Nyw3ICs5NTcsNyBAQCB0YXNrX3dlYWtfbm90aWZ5IChncG9pbnRlciAgdXNl cl9kYXRhLAotICAgZ2Jvb2xlYW4gKndlYWtfbm90aWZ5X3JhbiA9IHVzZXJfZGF0YTsKLSAKLSAg IGdfbXV0ZXhfbG9jayAoJnJ1bl9pbl90aHJlYWRfbXV0ZXgpOwotLSAgKndlYWtfbm90aWZ5X3Jh biA9IFRSVUU7Ci0rICBnX2F0b21pY19pbnRfc2V0ICh3ZWFrX25vdGlmeV9yYW4sIFRSVUUpOwot ICAgZ19jb25kX3NpZ25hbCAoJnJ1bl9pbl90aHJlYWRfY29uZCk7Ci0gICBnX211dGV4X3VubG9j ayAoJnJ1bl9pbl90aHJlYWRfbXV0ZXgpOwotIH0KLUBAIC0xMDA3LDcgKzEwMDcsNyBAQCBydW5f aW5fdGhyZWFkX3RocmVhZCAoR1Rhc2sgICAgICAgICp0YXNrLAotICAgZ19hc3NlcnQgKGdfdGhy ZWFkX3NlbGYgKCkgIT0gbWFpbl90aHJlYWQpOwotIAotICAgZ19tdXRleF9sb2NrICgmcnVuX2lu X3RocmVhZF9tdXRleCk7Ci0tICAqdGhyZWFkX3JhbiA9IFRSVUU7Ci0rICBnX2F0b21pY19pbnRf c2V0ICh0aHJlYWRfcmFuLCBUUlVFKTsKLSAgIGdfY29uZF9zaWduYWwgKCZydW5faW5fdGhyZWFk X2NvbmQpOwotICAgZ19tdXRleF91bmxvY2sgKCZydW5faW5fdGhyZWFkX211dGV4KTsKLSAKLUBA IC0xMDE4LDggKzEwMTgsOCBAQCBzdGF0aWMgdm9pZAotIHRlc3RfcnVuX2luX3RocmVhZCAodm9p ZCkKLSB7Ci0gICBHVGFzayAqdGFzazsKLS0gIHZvbGF0aWxlIGdib29sZWFuIHRocmVhZF9yYW4g PSBGQUxTRTsKLS0gIHZvbGF0aWxlIGdib29sZWFuIHdlYWtfbm90aWZ5X3JhbiA9IEZBTFNFOwot KyAgZ2Jvb2xlYW4gdGhyZWFkX3JhbiA9IEZBTFNFOyAgLyogKGF0b21pYykgKi8KLSsgIGdib29s ZWFuIHdlYWtfbm90aWZ5X3JhbiA9IEZBTFNFOyAgLyogKGF0b21pYykgKi8KLSAgIGdib29sZWFu IG5vdGlmaWNhdGlvbl9lbWl0dGVkID0gRkFMU0U7Ci0gICBnYm9vbGVhbiBkb25lID0gRkFMU0U7 Ci0gCi1AQCAtMTAzMywxMiArMTAzMywxMiBAQCB0ZXN0X3J1bl9pbl90aHJlYWQgKHZvaWQpCi0g ICBnX3Rhc2tfcnVuX2luX3RocmVhZCAodGFzaywgcnVuX2luX3RocmVhZF90aHJlYWQpOwotIAot ICAgZ19tdXRleF9sb2NrICgmcnVuX2luX3RocmVhZF9tdXRleCk7Ci0tICB3aGlsZSAoIXRocmVh ZF9yYW4pCi0rICB3aGlsZSAoIWdfYXRvbWljX2ludF9nZXQgKCZ0aHJlYWRfcmFuKSkKLSAgICAg Z19jb25kX3dhaXQgKCZydW5faW5fdGhyZWFkX2NvbmQsICZydW5faW5fdGhyZWFkX211dGV4KTsK LSAgIGdfbXV0ZXhfdW5sb2NrICgmcnVuX2luX3RocmVhZF9tdXRleCk7Ci0gCi0gICBnX2Fzc2Vy dCAoZG9uZSA9PSBGQUxTRSk7Ci0tICBnX2Fzc2VydCAod2Vha19ub3RpZnlfcmFuID09IEZBTFNF KTsKLSsgIGdfYXNzZXJ0X2ZhbHNlIChnX2F0b21pY19pbnRfZ2V0ICgmd2Vha19ub3RpZnlfcmFu KSk7Ci0gCi0gICBnX21haW5fbG9vcF9ydW4gKGxvb3ApOwotIAotQEAgLTEwNTAsNyArMTA1MCw3 IEBAIHRlc3RfcnVuX2luX3RocmVhZCAodm9pZCkKLSAgIGdfb2JqZWN0X3VucmVmICh0YXNrKTsK LSAKLSAgIGdfbXV0ZXhfbG9jayAoJnJ1bl9pbl90aHJlYWRfbXV0ZXgpOwotLSAgd2hpbGUgKCF3 ZWFrX25vdGlmeV9yYW4pCi0rICB3aGlsZSAoIWdfYXRvbWljX2ludF9nZXQgKCZ3ZWFrX25vdGlm eV9yYW4pKQotICAgICBnX2NvbmRfd2FpdCAoJnJ1bl9pbl90aHJlYWRfY29uZCwgJnJ1bl9pbl90 aHJlYWRfbXV0ZXgpOwotICAgZ19tdXRleF91bmxvY2sgKCZydW5faW5fdGhyZWFkX211dGV4KTsK LSB9Ci1AQCAtMTA4MSw3ICsxMDgxLDcgQEAgcnVuX2luX3RocmVhZF9zeW5jX3RocmVhZCAoR1Rh c2sgICAgICAgICp0YXNrLAotIAotICAgZ19hc3NlcnQgKGdfdGhyZWFkX3NlbGYgKCkgIT0gbWFp bl90aHJlYWQpOwotIAotLSAgKnRocmVhZF9yYW4gPSBUUlVFOwotKyAgZ19hdG9taWNfaW50X3Nl dCAodGhyZWFkX3JhbiwgVFJVRSk7Ci0gICBnX3Rhc2tfcmV0dXJuX2ludCAodGFzaywgbWFnaWMp OwotIH0KLSAKLUBAIC0xMTAyLDcgKzExMDIsNyBAQCB0ZXN0X3J1bl9pbl90aHJlYWRfc3luYyAo dm9pZCkKLSAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCAmdGhyZWFkX3JhbiwgTlVMTCk7 Ci0gICBnX3Rhc2tfcnVuX2luX3RocmVhZF9zeW5jICh0YXNrLCBydW5faW5fdGhyZWFkX3N5bmNf dGhyZWFkKTsKLSAKLS0gIGdfYXNzZXJ0ICh0aHJlYWRfcmFuID09IFRSVUUpOwotKyAgZ19hc3Nl cnRfdHJ1ZSAoZ19hdG9taWNfaW50X2dldCAoJnRocmVhZF9yYW4pKTsKLSAgIGdfYXNzZXJ0ICh0 YXNrICE9IE5VTEwpOwotICAgZ19hc3NlcnQgKCFnX3Rhc2tfaGFkX2Vycm9yICh0YXNrKSk7Ci0g ICBnX2Fzc2VydF90cnVlIChnX3Rhc2tfZ2V0X2NvbXBsZXRlZCAodGFzaykpOwotQEAgLTE0ODcs OCArMTQ4Nyw4IEBAIHRlc3RfcmV0dXJuX29uX2NhbmNlbCAodm9pZCkKLSB7Ci0gICBHVGFzayAq dGFzazsKLSAgIEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGU7Ci0tICB2b2xhdGlsZSBUaHJlYWRT dGF0ZSB0aHJlYWRfc3RhdGU7Ci0tICB2b2xhdGlsZSBnYm9vbGVhbiB3ZWFrX25vdGlmeV9yYW4g PSBGQUxTRTsKLSsgIFRocmVhZFN0YXRlIHRocmVhZF9zdGF0ZTsgIC8qIChhdG9taWMpICovCi0r ICBnYm9vbGVhbiB3ZWFrX25vdGlmeV9yYW4gPSBGQUxTRTsgIC8qIChhdG9taWMpICovCi0gICBn Ym9vbGVhbiBjYWxsYmFja19yYW47Ci0gICBnYm9vbGVhbiBub3RpZmljYXRpb25fZW1pdHRlZCA9 IEZBTFNFOwotIAotQEAgLTE0OTgsNyArMTQ5OCw3IEBAIHRlc3RfcmV0dXJuX29uX2NhbmNlbCAo dm9pZCkKLSAgICAqIGVhcmx5LgotICAgICovCi0gICBjYWxsYmFja19yYW4gPSBGQUxTRTsKLS0g IHRocmVhZF9zdGF0ZSA9IFRIUkVBRF9TVEFSVElORzsKLSsgIGdfYXRvbWljX2ludF9zZXQgKCZ0 aHJlYWRfc3RhdGUsIFRIUkVBRF9TVEFSVElORyk7Ci0gICB0YXNrID0gZ190YXNrX25ldyAoTlVM TCwgY2FuY2VsbGFibGUsIHJldHVybl9vbl9jYW5jZWxfY2FsbGJhY2ssICZjYWxsYmFja19yYW4p OwotICAgZ19zaWduYWxfY29ubmVjdCAodGFzaywgIm5vdGlmeTo6Y29tcGxldGVkIiwKLSAgICAg ICAgICAgICAgICAgICAgIChHQ2FsbGJhY2spIGNvbXBsZXRlZF9jYiwgJm5vdGlmaWNhdGlvbl9l bWl0dGVkKTsKLUBAIC0xNTA5LDE4ICsxNTA5LDE4IEBAIHRlc3RfcmV0dXJuX29uX2NhbmNlbCAo dm9pZCkKLSAgIGdfdGFza19ydW5faW5fdGhyZWFkICh0YXNrLCByZXR1cm5fb25fY2FuY2VsX3Ro cmVhZCk7Ci0gICBnX29iamVjdF91bnJlZiAodGFzayk7Ci0gCi0tICB3aGlsZSAodGhyZWFkX3N0 YXRlID09IFRIUkVBRF9TVEFSVElORykKLSsgIHdoaWxlIChnX2F0b21pY19pbnRfZ2V0ICgmdGhy ZWFkX3N0YXRlKSA9PSBUSFJFQURfU1RBUlRJTkcpCi0gICAgIGdfY29uZF93YWl0ICgmcm9jX2lu aXRfY29uZCwgJnJvY19pbml0X211dGV4KTsKLSAgIGdfbXV0ZXhfdW5sb2NrICgmcm9jX2luaXRf bXV0ZXgpOwotIAotLSAgZ19hc3NlcnQgKHRocmVhZF9zdGF0ZSA9PSBUSFJFQURfUlVOTklORyk7 Ci0rICBnX2Fzc2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZ0aHJlYWRfc3RhdGUpLCA9 PSwgVEhSRUFEX1JVTk5JTkcpOwotICAgZ19hc3NlcnQgKGNhbGxiYWNrX3JhbiA9PSBGQUxTRSk7 Ci0gCi0gICBnX2NhbmNlbGxhYmxlX2NhbmNlbCAoY2FuY2VsbGFibGUpOwotICAgZ19tdXRleF91 bmxvY2sgKCZyb2NfZmluaXNoX211dGV4KTsKLSAgIGdfbWFpbl9sb29wX3J1biAobG9vcCk7Ci0g Ci0tICBnX2Fzc2VydCAodGhyZWFkX3N0YXRlID09IFRIUkVBRF9DT01QTEVURUQpOwotKyAgZ19h c3NlcnRfY21waW50IChnX2F0b21pY19pbnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSwgPT0sIFRIUkVB RF9DT01QTEVURUQpOwotICAgZ19hc3NlcnQgKGNhbGxiYWNrX3JhbiA9PSBUUlVFKTsKLSAgIGdf YXNzZXJ0X3RydWUgKG5vdGlmaWNhdGlvbl9lbWl0dGVkKTsKLSAKLUBAIC0xNTI5LDcgKzE1Mjks NyBAQCB0ZXN0X3JldHVybl9vbl9jYW5jZWwgKHZvaWQpCi0gICAvKiBJZiByZXR1cm4tb24tY2Fu Y2VsIGlzIFRSVUUsIGl0IGRvZXMgcmV0dXJuIGVhcmx5ICovCi0gICBjYWxsYmFja19yYW4gPSBG QUxTRTsKLSAgIG5vdGlmaWNhdGlvbl9lbWl0dGVkID0gRkFMU0U7Ci0tICB0aHJlYWRfc3RhdGUg PSBUSFJFQURfU1RBUlRJTkc7Ci0rICBnX2F0b21pY19pbnRfc2V0ICgmdGhyZWFkX3N0YXRlLCBU SFJFQURfU1RBUlRJTkcpOwotICAgdGFzayA9IGdfdGFza19uZXcgKE5VTEwsIGNhbmNlbGxhYmxl LCByZXR1cm5fb25fY2FuY2VsX2NhbGxiYWNrLCAmY2FsbGJhY2tfcmFuKTsKLSAgIGdfb2JqZWN0 X3dlYWtfcmVmIChHX09CSkVDVCAodGFzayksIHRhc2tfd2Vha19ub3RpZnksIChncG9pbnRlcikm d2Vha19ub3RpZnlfcmFuKTsKLSAgIGdfc2lnbmFsX2Nvbm5lY3QgKHRhc2ssICJub3RpZnk6OmNv bXBsZXRlZCIsCi1AQCAtMTU0MiwyNyArMTU0MiwyNyBAQCB0ZXN0X3JldHVybl9vbl9jYW5jZWwg KHZvaWQpCi0gICBnX3Rhc2tfcnVuX2luX3RocmVhZCAodGFzaywgcmV0dXJuX29uX2NhbmNlbF90 aHJlYWQpOwotICAgZ19vYmplY3RfdW5yZWYgKHRhc2spOwotIAotLSAgd2hpbGUgKHRocmVhZF9z dGF0ZSA9PSBUSFJFQURfU1RBUlRJTkcpCi0rICB3aGlsZSAoZ19hdG9taWNfaW50X2dldCAoJnRo cmVhZF9zdGF0ZSkgPT0gVEhSRUFEX1NUQVJUSU5HKQotICAgICBnX2NvbmRfd2FpdCAoJnJvY19p bml0X2NvbmQsICZyb2NfaW5pdF9tdXRleCk7Ci0gICBnX211dGV4X3VubG9jayAoJnJvY19pbml0 X211dGV4KTsKLSAKLS0gIGdfYXNzZXJ0ICh0aHJlYWRfc3RhdGUgPT0gVEhSRUFEX1JVTk5JTkcp OwotKyAgZ19hc3NlcnRfY21waW50IChnX2F0b21pY19pbnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSwg PT0sIFRIUkVBRF9SVU5OSU5HKTsKLSAgIGdfYXNzZXJ0IChjYWxsYmFja19yYW4gPT0gRkFMU0Up OwotIAotICAgZ19jYW5jZWxsYWJsZV9jYW5jZWwgKGNhbmNlbGxhYmxlKTsKLSAgIGdfbWFpbl9s b29wX3J1biAobG9vcCk7Ci0tICBnX2Fzc2VydCAodGhyZWFkX3N0YXRlID09IFRIUkVBRF9SVU5O SU5HKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19hdG9taWNfaW50X2dldCAoJnRocmVhZF9zdGF0 ZSksID09LCBUSFJFQURfUlVOTklORyk7Ci0gICBnX2Fzc2VydCAoY2FsbGJhY2tfcmFuID09IFRS VUUpOwotIAotLSAgZ19hc3NlcnQgKHdlYWtfbm90aWZ5X3JhbiA9PSBGQUxTRSk7Ci0rICBnX2Fz c2VydF9mYWxzZSAoZ19hdG9taWNfaW50X2dldCAoJndlYWtfbm90aWZ5X3JhbikpOwotIAotLSAg d2hpbGUgKHRocmVhZF9zdGF0ZSA9PSBUSFJFQURfUlVOTklORykKLSsgIHdoaWxlIChnX2F0b21p Y19pbnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSA9PSBUSFJFQURfUlVOTklORykKLSAgICAgZ19jb25k X3dhaXQgKCZyb2NfZmluaXNoX2NvbmQsICZyb2NfZmluaXNoX211dGV4KTsKLSAgIGdfbXV0ZXhf dW5sb2NrICgmcm9jX2ZpbmlzaF9tdXRleCk7Ci0gCi0tICBnX2Fzc2VydCAodGhyZWFkX3N0YXRl ID09IFRIUkVBRF9DQU5DRUxMRUQpOwotKyAgZ19hc3NlcnRfY21waW50IChnX2F0b21pY19pbnRf Z2V0ICgmdGhyZWFkX3N0YXRlKSwgPT0sIFRIUkVBRF9DQU5DRUxMRUQpOwotICAgZ19tdXRleF9s b2NrICgmcnVuX2luX3RocmVhZF9tdXRleCk7Ci0tICB3aGlsZSAoIXdlYWtfbm90aWZ5X3JhbikK LSsgIHdoaWxlICghZ19hdG9taWNfaW50X2dldCAoJndlYWtfbm90aWZ5X3JhbikpCi0gICAgIGdf Y29uZF93YWl0ICgmcnVuX2luX3RocmVhZF9jb25kLCAmcnVuX2luX3RocmVhZF9tdXRleCk7Ci0g ICBnX211dGV4X3VubG9jayAoJnJ1bl9pbl90aHJlYWRfbXV0ZXgpOwotIAotQEAgLTE1NzQsNyAr MTU3NCw3IEBAIHRlc3RfcmV0dXJuX29uX2NhbmNlbCAodm9pZCkKLSAgICAqLwotICAgY2FsbGJh Y2tfcmFuID0gRkFMU0U7Ci0gICBub3RpZmljYXRpb25fZW1pdHRlZCA9IEZBTFNFOwotLSAgdGhy ZWFkX3N0YXRlID0gVEhSRUFEX1NUQVJUSU5HOwotKyAgZ19hdG9taWNfaW50X3NldCAoJnRocmVh ZF9zdGF0ZSwgVEhSRUFEX1NUQVJUSU5HKTsKLSAgIHRhc2sgPSBnX3Rhc2tfbmV3IChOVUxMLCBj YW5jZWxsYWJsZSwgcmV0dXJuX29uX2NhbmNlbF9jYWxsYmFjaywgJmNhbGxiYWNrX3Jhbik7Ci0g ICBnX3NpZ25hbF9jb25uZWN0ICh0YXNrLCAibm90aWZ5Ojpjb21wbGV0ZWQiLAotICAgICAgICAg ICAgICAgICAgICAgKEdDYWxsYmFjaykgY29tcGxldGVkX2NiLCAmbm90aWZpY2F0aW9uX2VtaXR0 ZWQpOwotQEAgLTE1OTEsMTcgKzE1OTEsMTcgQEAgdGVzdF9yZXR1cm5fb25fY2FuY2VsICh2b2lk KQotICAgZ19tYWluX2xvb3BfcnVuIChsb29wKTsKLSAgIGdfYXNzZXJ0IChjYWxsYmFja19yYW4g PT0gVFJVRSk7Ci0gCi0tICB3aGlsZSAodGhyZWFkX3N0YXRlID09IFRIUkVBRF9TVEFSVElORykK LSsgIHdoaWxlIChnX2F0b21pY19pbnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSA9PSBUSFJFQURfU1RB UlRJTkcpCi0gICAgIGdfY29uZF93YWl0ICgmcm9jX2luaXRfY29uZCwgJnJvY19pbml0X211dGV4 KTsKLSAgIGdfbXV0ZXhfdW5sb2NrICgmcm9jX2luaXRfbXV0ZXgpOwotIAotLSAgZ19hc3NlcnQg KHRocmVhZF9zdGF0ZSA9PSBUSFJFQURfUlVOTklORyk7Ci0rICBnX2Fzc2VydF9jbXBpbnQgKGdf YXRvbWljX2ludF9nZXQgKCZ0aHJlYWRfc3RhdGUpLCA9PSwgVEhSRUFEX1JVTk5JTkcpOwotIAot LSAgd2hpbGUgKHRocmVhZF9zdGF0ZSA9PSBUSFJFQURfUlVOTklORykKLSsgIHdoaWxlIChnX2F0 b21pY19pbnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSA9PSBUSFJFQURfUlVOTklORykKLSAgICAgZ19j b25kX3dhaXQgKCZyb2NfZmluaXNoX2NvbmQsICZyb2NfZmluaXNoX211dGV4KTsKLSAgIGdfbXV0 ZXhfdW5sb2NrICgmcm9jX2ZpbmlzaF9tdXRleCk7Ci0gCi0tICBnX2Fzc2VydCAodGhyZWFkX3N0 YXRlID09IFRIUkVBRF9DQU5DRUxMRUQpOwotKyAgZ19hc3NlcnRfY21waW50IChnX2F0b21pY19p bnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSwgPT0sIFRIUkVBRF9DQU5DRUxMRUQpOwotICAgZ19hc3Nl cnRfdHJ1ZSAobm90aWZpY2F0aW9uX2VtaXR0ZWQpOwotIAotICAgZ19vYmplY3RfdW5yZWYgKGNh bmNlbGxhYmxlKTsKLUBAIC0xNjIxLDcgKzE2MjEsNyBAQCB0ZXN0X3JldHVybl9vbl9jYW5jZWxf c3luYyAodm9pZCkKLSB7Ci0gICBHVGFzayAqdGFzazsKLSAgIEdDYW5jZWxsYWJsZSAqY2FuY2Vs bGFibGU7Ci0tICB2b2xhdGlsZSBUaHJlYWRTdGF0ZSB0aHJlYWRfc3RhdGU7Ci0rICBUaHJlYWRT dGF0ZSB0aHJlYWRfc3RhdGU7ICAvKiAoYXRvbWljKSAqLwotICAgR1RocmVhZCAqcnVubmVyX3Ro cmVhZDsKLSAgIGdzc2l6ZSByZXQ7Ci0gICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLUBAIC0xNjMw LDcgKzE2MzAsNyBAQCB0ZXN0X3JldHVybl9vbl9jYW5jZWxfc3luYyAodm9pZCkKLSAKLSAgIC8q IElmIHJldHVybi1vbi1jYW5jZWwgaXMgRkFMU0UsIHRoZSB0YXNrIGRvZXMgbm90IHJldHVybiBl YXJseS4KLSAgICAqLwotLSAgdGhyZWFkX3N0YXRlID0gVEhSRUFEX1NUQVJUSU5HOwotKyAgZ19h dG9taWNfaW50X3NldCAoJnRocmVhZF9zdGF0ZSwgVEhSRUFEX1NUQVJUSU5HKTsKLSAgIHRhc2sg PSBnX3Rhc2tfbmV3IChOVUxMLCBjYW5jZWxsYWJsZSwgcnVuX2luX3RocmVhZF9zeW5jX2NhbGxi YWNrLCBOVUxMKTsKLSAKLSAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCAoZ3BvaW50ZXIp JnRocmVhZF9zdGF0ZSwgTlVMTCk7Ci1AQCAtMTYzOSwxNiArMTYzOSwxNiBAQCB0ZXN0X3JldHVy bl9vbl9jYW5jZWxfc3luYyAodm9pZCkKLSAgIHJ1bm5lcl90aHJlYWQgPSBnX3RocmVhZF9uZXcg KCJyZXR1cm4tb24tY2FuY2VsLXN5bmMgcnVubmVyIHRocmVhZCIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYW5jZWxfc3luY19ydW5uZXJfdGhyZWFkLCB0YXNrKTsKLSAKLS0g IHdoaWxlICh0aHJlYWRfc3RhdGUgPT0gVEhSRUFEX1NUQVJUSU5HKQotKyAgd2hpbGUgKGdfYXRv bWljX2ludF9nZXQgKCZ0aHJlYWRfc3RhdGUpID09IFRIUkVBRF9TVEFSVElORykKLSAgICAgZ19j b25kX3dhaXQgKCZyb2NfaW5pdF9jb25kLCAmcm9jX2luaXRfbXV0ZXgpOwotICAgZ19tdXRleF91 bmxvY2sgKCZyb2NfaW5pdF9tdXRleCk7Ci0gCi0tICBnX2Fzc2VydCAodGhyZWFkX3N0YXRlID09 IFRIUkVBRF9SVU5OSU5HKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19hdG9taWNfaW50X2dldCAo JnRocmVhZF9zdGF0ZSksID09LCBUSFJFQURfUlVOTklORyk7Ci0gCi0gICBnX2NhbmNlbGxhYmxl X2NhbmNlbCAoY2FuY2VsbGFibGUpOwotICAgZ19tdXRleF91bmxvY2sgKCZyb2NfZmluaXNoX211 dGV4KTsKLSAgIGdfdGhyZWFkX2pvaW4gKHJ1bm5lcl90aHJlYWQpOwotLSAgZ19hc3NlcnQgKHRo cmVhZF9zdGF0ZSA9PSBUSFJFQURfQ09NUExFVEVEKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19h dG9taWNfaW50X2dldCAoJnRocmVhZF9zdGF0ZSksID09LCBUSFJFQURfQ09NUExFVEVEKTsKLSAK LSAgIHJldCA9IGdfdGFza19wcm9wYWdhdGVfaW50ICh0YXNrLCAmZXJyb3IpOwotICAgZ19hc3Nl cnRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCk7Ci1AQCAt MTY2MCw3ICsxNjYwLDcgQEAgdGVzdF9yZXR1cm5fb25fY2FuY2VsX3N5bmMgKHZvaWQpCi0gICBn X2NhbmNlbGxhYmxlX3Jlc2V0IChjYW5jZWxsYWJsZSk7Ci0gCi0gICAvKiBJZiByZXR1cm4tb24t Y2FuY2VsIGlzIFRSVUUsIGl0IGRvZXMgcmV0dXJuIGVhcmx5ICovCi0tICB0aHJlYWRfc3RhdGUg PSBUSFJFQURfU1RBUlRJTkc7Ci0rICBnX2F0b21pY19pbnRfc2V0ICgmdGhyZWFkX3N0YXRlLCBU SFJFQURfU1RBUlRJTkcpOwotICAgdGFzayA9IGdfdGFza19uZXcgKE5VTEwsIGNhbmNlbGxhYmxl LCBydW5faW5fdGhyZWFkX3N5bmNfY2FsbGJhY2ssIE5VTEwpOwotICAgZ190YXNrX3NldF9yZXR1 cm5fb25fY2FuY2VsICh0YXNrLCBUUlVFKTsKLSAKLUBAIC0xNjcwLDE1ICsxNjcwLDE1IEBAIHRl c3RfcmV0dXJuX29uX2NhbmNlbF9zeW5jICh2b2lkKQotICAgcnVubmVyX3RocmVhZCA9IGdfdGhy ZWFkX25ldyAoInJldHVybi1vbi1jYW5jZWwtc3luYyBydW5uZXIgdGhyZWFkIiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbF9zeW5jX3J1bm5lcl90aHJlYWQsIHRhc2sp OwotIAotLSAgd2hpbGUgKHRocmVhZF9zdGF0ZSA9PSBUSFJFQURfU1RBUlRJTkcpCi0rICB3aGls ZSAoZ19hdG9taWNfaW50X2dldCAoJnRocmVhZF9zdGF0ZSkgPT0gVEhSRUFEX1NUQVJUSU5HKQot ICAgICBnX2NvbmRfd2FpdCAoJnJvY19pbml0X2NvbmQsICZyb2NfaW5pdF9tdXRleCk7Ci0gICBn X211dGV4X3VubG9jayAoJnJvY19pbml0X211dGV4KTsKLSAKLS0gIGdfYXNzZXJ0ICh0aHJlYWRf c3RhdGUgPT0gVEhSRUFEX1JVTk5JTkcpOwotKyAgZ19hc3NlcnRfY21waW50IChnX2F0b21pY19p bnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSwgPT0sIFRIUkVBRF9SVU5OSU5HKTsKLSAKLSAgIGdfY2Fu Y2VsbGFibGVfY2FuY2VsIChjYW5jZWxsYWJsZSk7Ci0gICBnX3RocmVhZF9qb2luIChydW5uZXJf dGhyZWFkKTsKLS0gIGdfYXNzZXJ0ICh0aHJlYWRfc3RhdGUgPT0gVEhSRUFEX1JVTk5JTkcpOwot KyAgZ19hc3NlcnRfY21waW50IChnX2F0b21pY19pbnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSwgPT0s IFRIUkVBRF9SVU5OSU5HKTsKLSAKLSAgIHJldCA9IGdfdGFza19wcm9wYWdhdGVfaW50ICh0YXNr LCAmZXJyb3IpOwotICAgZ19hc3NlcnRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VS Uk9SX0NBTkNFTExFRCk7Ci1AQCAtMTY4NywxOCArMTY4NywxOCBAQCB0ZXN0X3JldHVybl9vbl9j YW5jZWxfc3luYyAodm9pZCkKLSAKLSAgIGdfb2JqZWN0X3VucmVmICh0YXNrKTsKLSAKLS0gIHdo aWxlICh0aHJlYWRfc3RhdGUgPT0gVEhSRUFEX1JVTk5JTkcpCi0rICB3aGlsZSAoZ19hdG9taWNf aW50X2dldCAoJnRocmVhZF9zdGF0ZSkgPT0gVEhSRUFEX1JVTk5JTkcpCi0gICAgIGdfY29uZF93 YWl0ICgmcm9jX2ZpbmlzaF9jb25kLCAmcm9jX2ZpbmlzaF9tdXRleCk7Ci0gICBnX211dGV4X3Vu bG9jayAoJnJvY19maW5pc2hfbXV0ZXgpOwotIAotLSAgZ19hc3NlcnQgKHRocmVhZF9zdGF0ZSA9 PSBUSFJFQURfQ0FOQ0VMTEVEKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19hdG9taWNfaW50X2dl dCAoJnRocmVhZF9zdGF0ZSksID09LCBUSFJFQURfQ0FOQ0VMTEVEKTsKLSAKLSAgIGdfY2FuY2Vs bGFibGVfcmVzZXQgKGNhbmNlbGxhYmxlKTsKLSAKLSAgIC8qIElmIHRoZSB0YXNrIGlzIGFscmVh ZHkgY2FuY2VsbGVkIGJlZm9yZSBpdCBzdGFydHMsIGl0IHJldHVybnMKLSAgICAqIGltbWVkaWF0 ZWx5LCBidXQgdGhlIHRocmVhZCBmdW5jIHN0aWxsIHJ1bnMuCi0gICAgKi8KLS0gIHRocmVhZF9z dGF0ZSA9IFRIUkVBRF9TVEFSVElORzsKLSsgIGdfYXRvbWljX2ludF9zZXQgKCZ0aHJlYWRfc3Rh dGUsIFRIUkVBRF9TVEFSVElORyk7Ci0gICB0YXNrID0gZ190YXNrX25ldyAoTlVMTCwgY2FuY2Vs bGFibGUsIHJ1bl9pbl90aHJlYWRfc3luY19jYWxsYmFjaywgTlVMTCk7Ci0gICBnX3Rhc2tfc2V0 X3JldHVybl9vbl9jYW5jZWwgKHRhc2ssIFRSVUUpOwotIAotQEAgLTE3MTEsNyArMTcxMSw3IEBA IHRlc3RfcmV0dXJuX29uX2NhbmNlbF9zeW5jICh2b2lkKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2FuY2VsX3N5bmNfcnVubmVyX3RocmVhZCwgdGFzayk7Ci0gCi0gICBnX3Ro cmVhZF9qb2luIChydW5uZXJfdGhyZWFkKTsKLS0gIGdfYXNzZXJ0ICh0aHJlYWRfc3RhdGUgPT0g VEhSRUFEX1NUQVJUSU5HKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19hdG9taWNfaW50X2dldCAo JnRocmVhZF9zdGF0ZSksID09LCBUSFJFQURfU1RBUlRJTkcpOwotIAotICAgcmV0ID0gZ190YXNr X3Byb3BhZ2F0ZV9pbnQgKHRhc2ssICZlcnJvcik7Ci0gICBnX2Fzc2VydF9lcnJvciAoZXJyb3Is IEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKTsKLUBAIC0xNzIwLDE3ICsxNzIwLDE3 IEBAIHRlc3RfcmV0dXJuX29uX2NhbmNlbF9zeW5jICh2b2lkKQotIAotICAgZ19vYmplY3RfdW5y ZWYgKHRhc2spOwotIAotLSAgd2hpbGUgKHRocmVhZF9zdGF0ZSA9PSBUSFJFQURfU1RBUlRJTkcp Ci0rICB3aGlsZSAoZ19hdG9taWNfaW50X2dldCAoJnRocmVhZF9zdGF0ZSkgPT0gVEhSRUFEX1NU QVJUSU5HKQotICAgICBnX2NvbmRfd2FpdCAoJnJvY19pbml0X2NvbmQsICZyb2NfaW5pdF9tdXRl eCk7Ci0gICBnX211dGV4X3VubG9jayAoJnJvY19pbml0X211dGV4KTsKLSAKLS0gIGdfYXNzZXJ0 ICh0aHJlYWRfc3RhdGUgPT0gVEhSRUFEX1JVTk5JTkcpOwotKyAgZ19hc3NlcnRfY21waW50IChn X2F0b21pY19pbnRfZ2V0ICgmdGhyZWFkX3N0YXRlKSwgPT0sIFRIUkVBRF9SVU5OSU5HKTsKLSAK LS0gIHdoaWxlICh0aHJlYWRfc3RhdGUgPT0gVEhSRUFEX1JVTk5JTkcpCi0rICB3aGlsZSAoZ19h dG9taWNfaW50X2dldCAoJnRocmVhZF9zdGF0ZSkgPT0gVEhSRUFEX1JVTk5JTkcpCi0gICAgIGdf Y29uZF93YWl0ICgmcm9jX2ZpbmlzaF9jb25kLCAmcm9jX2ZpbmlzaF9tdXRleCk7Ci0gICBnX211 dGV4X3VubG9jayAoJnJvY19maW5pc2hfbXV0ZXgpOwotIAotLSAgZ19hc3NlcnQgKHRocmVhZF9z dGF0ZSA9PSBUSFJFQURfQ0FOQ0VMTEVEKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19hdG9taWNf aW50X2dldCAoJnRocmVhZF9zdGF0ZSksID09LCBUSFJFQURfQ0FOQ0VMTEVEKTsKLSAKLSAgIGdf b2JqZWN0X3VucmVmIChjYW5jZWxsYWJsZSk7Ci0gfQotQEAgLTE3NzYsNyArMTc3Niw3IEBAIHJl dHVybl9vbl9jYW5jZWxfYXRvbWljX3RocmVhZCAoR1Rhc2sgICAgICAgICp0YXNrLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICB0YXNrX2RhdGEsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlKQot IHsKLS0gIGdpbnQgKnN0YXRlID0gdGFza19kYXRhOwotKyAgZ2ludCAqc3RhdGUgPSB0YXNrX2Rh dGE7ICAvKiAoYXRvbWljKSAqLwotIAotICAgZ19hc3NlcnQgKHNvdXJjZV9vYmplY3QgPT0gZ190 YXNrX2dldF9zb3VyY2Vfb2JqZWN0ICh0YXNrKSk7Ci0gICBnX2Fzc2VydCAodGFza19kYXRhID09 IGdfdGFza19nZXRfdGFza19kYXRhICh0YXNrKSk7Ci1AQCAtMTc4NCwzNCArMTc4NCwzNCBAQCBy ZXR1cm5fb25fY2FuY2VsX2F0b21pY190aHJlYWQgKEdUYXNrICAgICAgICAqdGFzaywKLSAgIGdf YXNzZXJ0X2ZhbHNlIChnX3Rhc2tfZ2V0X2NvbXBsZXRlZCAodGFzaykpOwotIAotICAgZ19hc3Nl cnQgKGdfdGhyZWFkX3NlbGYgKCkgIT0gbWFpbl90aHJlYWQpOwotLSAgZ19hc3NlcnRfY21waW50 ICgqc3RhdGUsID09LCAwKTsKLSsgIGdfYXNzZXJ0X2NtcGludCAoZ19hdG9taWNfaW50X2dldCAo c3RhdGUpLCA9PSwgMCk7Ci0gCi0gICBnX211dGV4X2xvY2sgKCZyb2NhX211dGV4XzEpOwotLSAg KnN0YXRlID0gMTsKLSsgIGdfYXRvbWljX2ludF9zZXQgKHN0YXRlLCAxKTsKLSAgIGdfY29uZF9z aWduYWwgKCZyb2NhX2NvbmRfMSk7Ci0gICBnX211dGV4X3VubG9jayAoJnJvY2FfbXV0ZXhfMSk7 Ci0gCi0gICBnX211dGV4X2xvY2sgKCZyb2NhX211dGV4XzIpOwotICAgaWYgKGdfdGFza19zZXRf cmV0dXJuX29uX2NhbmNlbCAodGFzaywgRkFMU0UpKQotLSAgICAqc3RhdGUgPSAyOwotKyAgICBn X2F0b21pY19pbnRfc2V0IChzdGF0ZSwgMik7Ci0gICBlbHNlCi0tICAgICpzdGF0ZSA9IDM7Ci0r ICAgIGdfYXRvbWljX2ludF9zZXQgKHN0YXRlLCAzKTsKLSAgIGdfY29uZF9zaWduYWwgKCZyb2Nh X2NvbmRfMik7Ci0gICBnX211dGV4X3VubG9jayAoJnJvY2FfbXV0ZXhfMik7Ci0gCi0gICBnX211 dGV4X2xvY2sgKCZyb2NhX211dGV4XzEpOwotICAgaWYgKGdfdGFza19zZXRfcmV0dXJuX29uX2Nh bmNlbCAodGFzaywgVFJVRSkpCi0tICAgICpzdGF0ZSA9IDQ7Ci0rICAgIGdfYXRvbWljX2ludF9z ZXQgKHN0YXRlLCA0KTsKLSAgIGVsc2UKLS0gICAgKnN0YXRlID0gNTsKLSsgICAgZ19hdG9taWNf aW50X3NldCAoc3RhdGUsIDUpOwotICAgZ19jb25kX3NpZ25hbCAoJnJvY2FfY29uZF8xKTsKLSAg IGdfbXV0ZXhfdW5sb2NrICgmcm9jYV9tdXRleF8xKTsKLSAKLSAgIGdfbXV0ZXhfbG9jayAoJnJv Y2FfbXV0ZXhfMik7Ci0gICBpZiAoZ190YXNrX3NldF9yZXR1cm5fb25fY2FuY2VsICh0YXNrLCBU UlVFKSkKLS0gICAgKnN0YXRlID0gNjsKLSsgICAgZ19hdG9taWNfaW50X3NldCAoc3RhdGUsIDYp OwotICAgZWxzZQotLSAgICAqc3RhdGUgPSA3OwotKyAgICBnX2F0b21pY19pbnRfc2V0IChzdGF0 ZSwgNyk7Ci0gICBnX2NvbmRfc2lnbmFsICgmcm9jYV9jb25kXzIpOwotICAgZ19tdXRleF91bmxv Y2sgKCZyb2NhX211dGV4XzIpOwotIAotQEAgLTE4MjMsNyArMTgyMyw3IEBAIHRlc3RfcmV0dXJu X29uX2NhbmNlbF9hdG9taWMgKHZvaWQpCi0gewotICAgR1Rhc2sgKnRhc2s7Ci0gICBHQ2FuY2Vs bGFibGUgKmNhbmNlbGxhYmxlOwotLSAgdm9sYXRpbGUgZ2ludCBzdGF0ZTsKLSsgIGdpbnQgc3Rh dGU7ICAvKiAoYXRvbWljKSAqLwotICAgZ2Jvb2xlYW4gbm90aWZpY2F0aW9uX2VtaXR0ZWQgPSBG QUxTRTsKLSAgIGdib29sZWFuIGNhbGxiYWNrX3JhbjsKLSAKLUBAIC0xODMyLDcgKzE4MzIsNyBA QCB0ZXN0X3JldHVybl9vbl9jYW5jZWxfYXRvbWljICh2b2lkKQotICAgZ19tdXRleF9sb2NrICgm cm9jYV9tdXRleF8yKTsKLSAKLSAgIC8qIElmIHdlIGRvbid0IGNhbmNlbCBpdCwgZWFjaCBzZXRf cmV0dXJuX29uX2NhbmNlbCgpIGNhbGwgd2lsbCBzdWNjZWVkICovCi0tICBzdGF0ZSA9IDA7Ci0r ICBnX2F0b21pY19pbnRfc2V0ICgmc3RhdGUsIDApOwotICAgY2FsbGJhY2tfcmFuID0gRkFMU0U7 Ci0gICB0YXNrID0gZ190YXNrX25ldyAoTlVMTCwgY2FuY2VsbGFibGUsIHJldHVybl9vbl9jYW5j ZWxfYXRvbWljX2NhbGxiYWNrLCAmY2FsbGJhY2tfcmFuKTsKLSAgIGdfdGFza19zZXRfcmV0dXJu X29uX2NhbmNlbCAodGFzaywgVFJVRSk7Ci1AQCAtMTg0MywyMyArMTg0MywyMyBAQCB0ZXN0X3Jl dHVybl9vbl9jYW5jZWxfYXRvbWljICh2b2lkKQotICAgZ190YXNrX3J1bl9pbl90aHJlYWQgKHRh c2ssIHJldHVybl9vbl9jYW5jZWxfYXRvbWljX3RocmVhZCk7Ci0gICBnX29iamVjdF91bnJlZiAo dGFzayk7Ci0gCi0tICBnX2Fzc2VydF9jbXBpbnQgKHN0YXRlLCA9PSwgMCk7Ci0rICBnX2Fzc2Vy dF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSksID09LCAwKTsKLSAKLS0gIHdoaWxl IChzdGF0ZSA9PSAwKQotKyAgd2hpbGUgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSkgPT0gMCkK LSAgICAgZ19jb25kX3dhaXQgKCZyb2NhX2NvbmRfMSwgJnJvY2FfbXV0ZXhfMSk7Ci0tICBnX2Fz c2VydCAoc3RhdGUgPT0gMSk7Ci0rICBnX2Fzc2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQg KCZzdGF0ZSksID09LCAxKTsKLSAKLS0gIHdoaWxlIChzdGF0ZSA9PSAxKQotKyAgd2hpbGUgKGdf YXRvbWljX2ludF9nZXQgKCZzdGF0ZSkgPT0gMSkKLSAgICAgZ19jb25kX3dhaXQgKCZyb2NhX2Nv bmRfMiwgJnJvY2FfbXV0ZXhfMik7Ci0tICBnX2Fzc2VydCAoc3RhdGUgPT0gMik7Ci0rICBnX2Fz c2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSksID09LCAyKTsKLSAKLS0gIHdo aWxlIChzdGF0ZSA9PSAyKQotKyAgd2hpbGUgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSkgPT0g MikKLSAgICAgZ19jb25kX3dhaXQgKCZyb2NhX2NvbmRfMSwgJnJvY2FfbXV0ZXhfMSk7Ci0tICBn X2Fzc2VydCAoc3RhdGUgPT0gNCk7Ci0rICBnX2Fzc2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9n ZXQgKCZzdGF0ZSksID09LCA0KTsKLSAKLS0gIHdoaWxlIChzdGF0ZSA9PSA0KQotKyAgd2hpbGUg KGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSkgPT0gNCkKLSAgICAgZ19jb25kX3dhaXQgKCZyb2Nh X2NvbmRfMiwgJnJvY2FfbXV0ZXhfMik7Ci0tICBnX2Fzc2VydCAoc3RhdGUgPT0gNik7Ci0rICBn X2Fzc2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSksID09LCA2KTsKLSAKLSAg IC8qIGNhbGxiYWNrIGFzc3VtZXMgdGhlcmUnbGwgYmUgYSBjYW5jZWxsZWQgZXJyb3IgKi8KLSAg IGdfY2FuY2VsbGFibGVfY2FuY2VsIChjYW5jZWxsYWJsZSk7Ci1AQCAtMTg3Niw3ICsxODc2LDcg QEAgdGVzdF9yZXR1cm5fb25fY2FuY2VsX2F0b21pYyAodm9pZCkKLSAgICAqIHRhc2sgd29uJ3Qg Y29tcGxldGUgcmlnaHQgYXdheSwgYW5kIGZ1cnRoZXIKLSAgICAqIGdfdGFza19zZXRfcmV0dXJu X29uX2NhbmNlbCgpIGNhbGxzIHdpbGwgcmV0dXJuIEZBTFNFLgotICAgICovCi0tICBzdGF0ZSA9 IDA7Ci0rICBnX2F0b21pY19pbnRfc2V0ICgmc3RhdGUsIDApOwotICAgY2FsbGJhY2tfcmFuID0g RkFMU0U7Ci0gICBub3RpZmljYXRpb25fZW1pdHRlZCA9IEZBTFNFOwotICAgdGFzayA9IGdfdGFz a19uZXcgKE5VTEwsIGNhbmNlbGxhYmxlLCByZXR1cm5fb25fY2FuY2VsX2F0b21pY19jYWxsYmFj aywgJmNhbGxiYWNrX3Jhbik7Ci1AQCAtMTg4NywxNiArMTg4NywxNiBAQCB0ZXN0X3JldHVybl9v bl9jYW5jZWxfYXRvbWljICh2b2lkKQotICAgZ190YXNrX3NldF90YXNrX2RhdGEgKHRhc2ssIChn cG9pbnRlcikmc3RhdGUsIE5VTEwpOwotICAgZ190YXNrX3J1bl9pbl90aHJlYWQgKHRhc2ssIHJl dHVybl9vbl9jYW5jZWxfYXRvbWljX3RocmVhZCk7Ci0gCi0tICBnX2Fzc2VydF9jbXBpbnQgKHN0 YXRlLCA9PSwgMCk7Ci0rICBnX2Fzc2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0 ZSksID09LCAwKTsKLSAKLS0gIHdoaWxlIChzdGF0ZSA9PSAwKQotKyAgd2hpbGUgKGdfYXRvbWlj X2ludF9nZXQgKCZzdGF0ZSkgPT0gMCkKLSAgICAgZ19jb25kX3dhaXQgKCZyb2NhX2NvbmRfMSwg JnJvY2FfbXV0ZXhfMSk7Ci0tICBnX2Fzc2VydCAoc3RhdGUgPT0gMSk7Ci0rICBnX2Fzc2VydF9j bXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSksID09LCAxKTsKLSAgIGdfYXNzZXJ0IChn X3Rhc2tfZ2V0X3JldHVybl9vbl9jYW5jZWwgKHRhc2spKTsKLSAKLS0gIHdoaWxlIChzdGF0ZSA9 PSAxKQotKyAgd2hpbGUgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSkgPT0gMSkKLSAgICAgZ19j b25kX3dhaXQgKCZyb2NhX2NvbmRfMiwgJnJvY2FfbXV0ZXhfMik7Ci0tICBnX2Fzc2VydCAoc3Rh dGUgPT0gMik7Ci0rICBnX2Fzc2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSks ID09LCAyKTsKLSAgIGdfYXNzZXJ0ICghZ190YXNrX2dldF9yZXR1cm5fb25fY2FuY2VsICh0YXNr KSk7Ci0gCi0gICBnX2NhbmNlbGxhYmxlX2NhbmNlbCAoY2FuY2VsbGFibGUpOwotQEAgLTE5MDQs MTggKzE5MDQsMTggQEAgdGVzdF9yZXR1cm5fb25fY2FuY2VsX2F0b21pYyAodm9pZCkKLSAgIGdf bWFpbl9sb29wX3J1biAobG9vcCk7Ci0gICBnX2Fzc2VydCAoY2FsbGJhY2tfcmFuID09IEZBTFNF KTsKLSAKLS0gIHdoaWxlIChzdGF0ZSA9PSAyKQotKyAgd2hpbGUgKGdfYXRvbWljX2ludF9nZXQg KCZzdGF0ZSkgPT0gMikKLSAgICAgZ19jb25kX3dhaXQgKCZyb2NhX2NvbmRfMSwgJnJvY2FfbXV0 ZXhfMSk7Ci0tICBnX2Fzc2VydCAoc3RhdGUgPT0gNSk7Ci0rICBnX2Fzc2VydF9jbXBpbnQgKGdf YXRvbWljX2ludF9nZXQgKCZzdGF0ZSksID09LCA1KTsKLSAgIGdfYXNzZXJ0ICghZ190YXNrX2dl dF9yZXR1cm5fb25fY2FuY2VsICh0YXNrKSk7Ci0gCi0gICBnX21haW5fbG9vcF9ydW4gKGxvb3Ap OwotICAgZ19hc3NlcnQgKGNhbGxiYWNrX3JhbiA9PSBUUlVFKTsKLSAgIGdfYXNzZXJ0X3RydWUg KG5vdGlmaWNhdGlvbl9lbWl0dGVkKTsKLSAKLS0gIHdoaWxlIChzdGF0ZSA9PSA1KQotKyAgd2hp bGUgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSkgPT0gNSkKLSAgICAgZ19jb25kX3dhaXQgKCZy b2NhX2NvbmRfMiwgJnJvY2FfbXV0ZXhfMik7Ci0tICBnX2Fzc2VydCAoc3RhdGUgPT0gNyk7Ci0r ICBnX2Fzc2VydF9jbXBpbnQgKGdfYXRvbWljX2ludF9nZXQgKCZzdGF0ZSksID09LCA3KTsKLSAK LSAgIGdfb2JqZWN0X3VucmVmIChjYW5jZWxsYWJsZSk7Ci0gICBnX211dGV4X3VubG9jayAoJnJv Y2FfbXV0ZXhfMSk7Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gZjQ2MDdkZWYxNjk1ZWZiNTBlYjQ5 ZTA1ODZlZWQwZjU1NTc5MzVmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxp cCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci1EYXRlOiBXZWQsIDExIE5vdiAy MDIwIDE4OjIwOjM3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMDYvMjldIHRlc3RzOiBEcm9wIHVu bmVjZXNzYXJ5IHZvbGF0aWxlIHF1YWxpZmllcnMgZnJvbSB0ZXN0cwotTUlNRS1WZXJzaW9uOiAx LjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdAotCi1UaGVzZSB2YXJpYWJsZXMgd2VyZSBhbHJlYWR5IChjb3Jy ZWN0bHkpIGFjY2Vzc2VkIGF0b21pY2FsbHkuIFRoZQotYHZvbGF0aWxlYCBxdWFsaWZpZXIgZG9l c27igJl0IGhlbHAgd2l0aCB0aGF0LgotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0aG5hbGwg PHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotCi1IZWxwczogIzYwMAotLS0tCi0gZ2lvL3Rlc3Rz L2ctZmlsZS1pbmZvLmMgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9naW8vdGVzdHMvZy1maWxlLWluZm8uYyBiL2dp by90ZXN0cy9nLWZpbGUtaW5mby5jCi1pbmRleCA4MDliMGVjNzkuLjFhMDJiNWUwZSAxMDA2NDQK LS0tLSBhL2dpby90ZXN0cy9nLWZpbGUtaW5mby5jCi0rKysgYi9naW8vdGVzdHMvZy1maWxlLWlu Zm8uYwotQEAgLTIyMSw3ICsyMjEsNyBAQCB0ZXN0X2ludGVybmFsX2VuaGFuY2VkX3N0ZGlvICh2 b2lkKQotICAgZ3VpbnQ2NCBzaXplX3AwLCBhbHNpemVfcDAsIHNpemVfcHMsIGFsc2l6ZV9wczsK LSAgIGNvbnN0IGdjaGFyICppZF9wMDsKLSAgIGNvbnN0IGdjaGFyICppZF9wMTsKLS0gIHZvbGF0 aWxlIGd1aW50NjQgdGltZV9wMDsKLSsgIGd1aW50NjQgdGltZV9wMDsKLSAgIGdjaGFyICp0bXBf ZGlyOwotICAgd2NoYXJfdCAqcHJvZ3JhbWRhdGFfZGlyX3c7Ci0gICB3Y2hhcl90ICp1c2Vyc19k aXJfdzsKLS0tIAotR2l0TGFiCi0KLQotRnJvbSAzMzYxMjQwNDM5N2Y4N2YwY2Q0NWRhOTBkM2Fh OWFiNjBkZjg5NWVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhu YWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IFdlZCwgMTEgTm92IDIwMjAgMTg6 MjQ6MjggKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAwNy8yOV0gZ2RidXNjb25uZWN0aW9uOiBEcm9w IHVubmVjZXNzYXJ5IHZvbGF0aWxlIHF1YWxpZmllcnMKLSBmcm9tIHZhcmlhYmxlcwotCi1UaGlz IHNob3VsZCBpbnRyb2R1Y2Ugbm8gQVBJIGNoYW5nZXM7IHRoZXJlIGFyZSBwdWJsaWMgZnVuY3Rp b25zCi1leHBvcnRlZCBieSBgR0RCdXNDb25uZWN0aW9uYCB3aGljaCBzdGlsbCBoYXZlIHNvbWUg KGluY29ycmVjdGx5KQotYHZvbGF0aWxlYCBhcmd1bWVudHMsIGJ1dCBkcm9wcGluZyB0aG9zZSBx dWFsaWZpZXJzIHdvdWxkIGJlIGFuIEFQSQotYnJlYWsuCi0KLVNpZ25lZC1vZmYtYnk6IFBoaWxp cCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBzOiAjNjAwCi0tLS0K LSBnaW8vZ2RidXNjb25uZWN0aW9uLmMgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCi0gMSBm aWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvZ2lvL2dkYnVzY29ubmVjdGlvbi5jIGIvZ2lvL2dkYnVzY29ubmVjdGlvbi5jCi1pbmRl eCBlZDhjZjYyMTkuLjkxYzM2NWU4MCAxMDA2NDQKLS0tLSBhL2dpby9nZGJ1c2Nvbm5lY3Rpb24u YwotKysrIGIvZ2lvL2dkYnVzY29ubmVjdGlvbi5jCi1AQCAtMzkzLDcgKzM5Myw3IEBAIHN0cnVj dCBfR0RCdXNDb25uZWN0aW9uCi0gICAgKiBGTEFHX0NMT1NFRCBpcyB0aGUgY2xvc2VkIHByb3Bl cnR5LiBJdCBtYXkgYmUgcmVhZCBhdCBhbnkgdGltZSwgYnV0Ci0gICAgKiBtYXkgb25seSBiZSB3 cml0dGVuIHdoaWxlIGhvbGRpbmcgQGxvY2suCi0gICAgKi8KLS0gIHZvbGF0aWxlIGdpbnQgYXRv bWljX2ZsYWdzOwotKyAgZ2ludCBhdG9taWNfZmxhZ3M7ICAvKiAoYXRvbWljKSAqLwotIAotICAg LyogSWYgdGhlIGNvbm5lY3Rpb24gY291bGQgbm90IGJlIGVzdGFibGlzaGVkIGR1cmluZyBpbml0 YWJsZV9pbml0KCksCi0gICAgKiB0aGlzIEdFcnJvciB3aWxsIGJlIHNldC4KLUBAIC0xNTk2LDcg KzE1OTYsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4KLSBnX2RidXNfY29ubmVjdGlvbl9zZW5kX21lc3Nh Z2VfdW5sb2NrZWQgKEdEQnVzQ29ubmVjdGlvbiAgICpjb25uZWN0aW9uLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RCdXNNZXNzYWdlICAgICAgKm1lc3NhZ2Us Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJ1c1NlbmRNZXNz YWdlRmxhZ3MgZmxhZ3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2b2xhdGlsZSBndWludDMyICAqb3V0X3NlcmlhbCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGd1aW50MzIgICAgICAgICAgICpvdXRfc2VyaWFsLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAqKmVy cm9yKQotIHsKLSAgIGd1Y2hhciAqYmxvYjsKLUBAIC0xNzQxLDcgKzE3NDEsNyBAQCBnX2RidXNf Y29ubmVjdGlvbl9zZW5kX21lc3NhZ2UgKEdEQnVzQ29ubmVjdGlvbiAgICAgICAgKmNvbm5lY3Rp b24sCi0gICBnX3JldHVybl92YWxfaWZfZmFpbCAoZXJyb3IgPT0gTlVMTCB8fCAqZXJyb3IgPT0g TlVMTCwgRkFMU0UpOwotIAotICAgQ09OTkVDVElPTl9MT0NLIChjb25uZWN0aW9uKTsKLS0gIHJl dCA9IGdfZGJ1c19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV91bmxvY2tlZCAoY29ubmVjdGlvbiwg bWVzc2FnZSwgZmxhZ3MsIG91dF9zZXJpYWwsIGVycm9yKTsKLSsgIHJldCA9IGdfZGJ1c19jb25u ZWN0aW9uX3NlbmRfbWVzc2FnZV91bmxvY2tlZCAoY29ubmVjdGlvbiwgbWVzc2FnZSwgZmxhZ3Ms IChndWludDMyICopIG91dF9zZXJpYWwsIGVycm9yKTsKLSAgIENPTk5FQ1RJT05fVU5MT0NLIChj b25uZWN0aW9uKTsKLSAgIHJldHVybiByZXQ7Ci0gfQotQEAgLTE5MDEsNyArMTkwMSw3IEBAIGdf ZGJ1c19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV93aXRoX3JlcGx5X3VubG9ja2VkIChHREJ1c0Nv bm5lY3Rpb24gICAgICpjb25uZWN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdEQnVzTWVzc2FnZSAgICAgICAgKm1lc3NhZ2UsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzU2VuZE1l c3NhZ2VGbGFncyBmbGFncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAgICAgICAgdGltZW91dF9tc2VjLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2xhdGlsZSBn dWludDMyICAgICpvdXRfc2VyaWFsLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBndWludDMyICAgICAgICAgICAgICpvdXRfc2VyaWFsLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2Vs bGFibGUgICAgICAgICpjYW5jZWxsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR0FzeW5jUmVhZHlDYWxsYmFjayAgY2FsbGJhY2ssCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2lu dGVyICAgICAgICAgICAgIHVzZXJfZGF0YSkKLUBAIC0xOTA5LDcgKzE5MDksNyBAQCBnX2RidXNf Y29ubmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0aF9yZXBseV91bmxvY2tlZCAoR0RCdXNDb25uZWN0 aW9uICAgICAqY29ubmVjdAotICAgR1Rhc2sgKnRhc2s7Ci0gICBTZW5kTWVzc2FnZURhdGEgKmRh dGE7Ci0gICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLS0gIHZvbGF0aWxlIGd1aW50MzIgc2VyaWFs OwotKyAgZ3VpbnQzMiBzZXJpYWw7Ci0gCi0gICBpZiAob3V0X3NlcmlhbCA9PSBOVUxMKQotICAg ICBvdXRfc2VyaWFsID0gJnNlcmlhbDsKLUBAIC0yMDIyLDcgKzIwMjIsNyBAQCBnX2RidXNfY29u bmVjdGlvbl9zZW5kX21lc3NhZ2Vfd2l0aF9yZXBseSAoR0RCdXNDb25uZWN0aW9uICAgICAgICpj b25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9tc2VjLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9zZXJpYWwsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGd1aW50MzIg Kikgb3V0X3NlcmlhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjYW5jZWxsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOwotQEAgLTMwODIs NyArMzA4Miw3IEBAIGdfZGJ1c19jb25uZWN0aW9uX2dldF9wZWVyX2NyZWRlbnRpYWxzIChHREJ1 c0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24pCi0gCi0gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotIAotLXN0YXRpYyB2b2xhdGlsZSBndWludCBfZ2xvYmFs X2ZpbHRlcl9pZCA9IDE7Ci0rc3RhdGljIGd1aW50IF9nbG9iYWxfZmlsdGVyX2lkID0gMTsgIC8q IChhdG9taWMpICovCi0gCi0gLyoqCi0gICogZ19kYnVzX2Nvbm5lY3Rpb25fYWRkX2ZpbHRlcjoK LUBAIC0zMzI3LDkgKzMzMjcsOSBAQCBhcmdzX3RvX3J1bGUgKGNvbnN0IGdjaGFyICAgICAgKnNl bmRlciwKLSAgIHJldHVybiBnX3N0cmluZ19mcmVlIChydWxlLCBGQUxTRSk7Ci0gfQotIAotLXN0 YXRpYyB2b2xhdGlsZSBndWludCBfZ2xvYmFsX3N1YnNjcmliZXJfaWQgPSAxOwotLXN0YXRpYyB2 b2xhdGlsZSBndWludCBfZ2xvYmFsX3JlZ2lzdHJhdGlvbl9pZCA9IDE7Ci0tc3RhdGljIHZvbGF0 aWxlIGd1aW50IF9nbG9iYWxfc3VidHJlZV9yZWdpc3RyYXRpb25faWQgPSAxOwotK3N0YXRpYyBn dWludCBfZ2xvYmFsX3N1YnNjcmliZXJfaWQgPSAxOyAgLyogKGF0b21pYykgKi8KLStzdGF0aWMg Z3VpbnQgX2dsb2JhbF9yZWdpc3RyYXRpb25faWQgPSAxOyAgLyogKGF0b21pYykgKi8KLStzdGF0 aWMgZ3VpbnQgX2dsb2JhbF9zdWJ0cmVlX3JlZ2lzdHJhdGlvbl9pZCA9IDE7ICAvKiAoYXRvbWlj KSAqLwotIAotIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g Ki8KLSAKLUBAIC01OTkyLDcgKzU5OTIsNyBAQCBnX2RidXNfY29ubmVjdGlvbl9jYWxsX3N5bmNf aW50ZXJuYWwgKEdEQnVzQ29ubmVjdGlvbiAgICAgICAgICpjb25uZWN0aW9uLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZW5kX2ZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X21zZWMsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIC8qIHZvbGF0aWxlIGd1 aW50MzIgKm91dF9zZXJpYWwgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyogZ3VpbnQzMiAqb3V0X3NlcmlhbCAqLwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjYW5jZWxsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmxvY2FsX2Vycm9yKTsKLSAKLS0tIAotR2l0TGFiCi0KLQotRnJv bSA3Yzc2MjNjNGEzMWZiMGYyYTcxNzZjNDNhY2M3MjgwOTM4MThiNThjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9y Zz4KLURhdGU6IFdlZCwgMTEgTm92IDIwMjAgMTg6MjY6MTkgKzAwMDAKLVN1YmplY3Q6IFtQQVRD SCAwOC8yOV0gZ2RidXNlcnJvcjogRHJvcCB1bm5lY2Vzc2FyeSB2b2xhdGlsZSBxdWFsaWZpZXJz IGZyb20KLSB2YXJpYWJsZXMKLQotVGhpcyBzaG91bGQgaW50cm9kdWNlIG5vIEFQSSBjaGFuZ2Vz LiBUaGUKLWBnX2RidXNfZXJyb3JfcmVnaXN0ZXJfZXJyb3JfZG9tYWluKClgIGZ1bmN0aW9uIHN0 aWxsIChpbmNvcnJlY3RseSkgaGFzCi1hIGB2b2xhdGlsZWAgYXJndW1lbnQsIGJ1dCBkcm9wcGlu ZyB0aGF0IHF1YWxpZmllciB3b3VsZCBiZSBhbiBBUEkKLWJyZWFrLgotCi1TaWduZWQtb2ZmLWJ5 OiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotCi1IZWxwczogIzYw MAotLS0tCi0gZ2lvL2dkYnVzZXJyb3IuYyB8IDI4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9naW8vZ2RidXNlcnJvci5jIGIvZ2lvL2dkYnVzZXJyb3IuYwotaW5kZXgg NjgyNjc3MzU0Li5iMDNhMzNmMjcgMTAwNjQ0Ci0tLS0gYS9naW8vZ2RidXNlcnJvci5jCi0rKysg Yi9naW8vZ2RidXNlcnJvci5jCi1AQCAtODQsMTIgKzg0LDEyIEBACi0gICogR1F1YXJrCi0gICog Zm9vX2Jhcl9lcnJvcl9xdWFyayAodm9pZCkKLSAgKiB7Ci0tICogICBzdGF0aWMgdm9sYXRpbGUg Z3NpemUgcXVhcmtfdm9sYXRpbGUgPSAwOwotKyAqICAgc3RhdGljIGdzaXplIHF1YXJrID0gMDsK LSAgKiAgIGdfZGJ1c19lcnJvcl9yZWdpc3Rlcl9lcnJvcl9kb21haW4gKCJmb28tYmFyLWVycm9y LXF1YXJrIiwKLS0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZxdWFy a192b2xhdGlsZSwKLSsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZx dWFyaywKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb19iYXJf ZXJyb3JfZW50cmllcywKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdfTl9FTEVNRU5UUyAoZm9vX2Jhcl9lcnJvcl9lbnRyaWVzKSk7Ci0tICogICByZXR1cm4gKEdR dWFyaykgcXVhcmtfdm9sYXRpbGU7Ci0rICogICByZXR1cm4gKEdRdWFyaykgcXVhcms7Ci0gICog fQotICAqIF18Ci0gICogV2l0aCB0aGlzIHNldHVwLCBhIEQtQnVzIHBlZXIgY2FuIHRyYW5zcGFy ZW50bHkgcGFzcyBlLmcuICVGT09fQkFSX0VSUk9SX0FOT1RIRVJfRVJST1IgYW5kCi1AQCAtMTYw LDEyICsxNjAsMTIgQEAgR1F1YXJrCi0gZ19kYnVzX2Vycm9yX3F1YXJrICh2b2lkKQotIHsKLSAg IEdfU1RBVElDX0FTU0VSVCAoR19OX0VMRU1FTlRTIChnX2RidXNfZXJyb3JfZW50cmllcykgLSAx ID09IEdfREJVU19FUlJPUl9QUk9QRVJUWV9SRUFEX09OTFkpOwotLSAgc3RhdGljIHZvbGF0aWxl IGdzaXplIHF1YXJrX3ZvbGF0aWxlID0gMDsKLSsgIHN0YXRpYyBnc2l6ZSBxdWFyayA9IDA7Ci0g ICBnX2RidXNfZXJyb3JfcmVnaXN0ZXJfZXJyb3JfZG9tYWluICgiZy1kYnVzLWVycm9yLXF1YXJr IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZxdWFya192b2xhdGls ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZxdWFyaywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1c19lcnJvcl9lbnRyaWVzLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19OX0VMRU1FTlRTIChnX2Ri dXNfZXJyb3JfZW50cmllcykpOwotLSAgcmV0dXJuIChHUXVhcmspIHF1YXJrX3ZvbGF0aWxlOwot KyAgcmV0dXJuIChHUXVhcmspIHF1YXJrOwotIH0KLSAKLSAvKioKLUBAIC0xODUsMjUgKzE4NSwz MSBAQCBnX2RidXNfZXJyb3JfcmVnaXN0ZXJfZXJyb3JfZG9tYWluIChjb25zdCBnY2hhciAgICAg ICAgICAgKmVycm9yX2RvbWFpbl9xdWFya19uYQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IEdEQnVzRXJyb3JFbnRyeSAqZW50cmllcywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgIG51bV9lbnRyaWVz KQotIHsKLSsgIGdzaXplICpxdWFyazsKLSsKLSAgIGdfcmV0dXJuX2lmX2ZhaWwgKGVycm9yX2Rv bWFpbl9xdWFya19uYW1lICE9IE5VTEwpOwotICAgZ19yZXR1cm5faWZfZmFpbCAocXVhcmtfdm9s YXRpbGUgIT0gTlVMTCk7Ci0gICBnX3JldHVybl9pZl9mYWlsIChlbnRyaWVzICE9IE5VTEwpOwot ICAgZ19yZXR1cm5faWZfZmFpbCAobnVtX2VudHJpZXMgPiAwKTsKLSAKLS0gIGlmIChnX29uY2Vf aW5pdF9lbnRlciAocXVhcmtfdm9sYXRpbGUpKQotKyAgLyogRHJvcCB0aGUgdm9sYXRpbGUgcXVh bGlmaWVyLCB3aGljaCBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVuIG9uIHRoZSBhcmd1bWVudAotKyAg ICogaW4gdGhlIGZpcnN0IHBsYWNlLiAqLwotKyAgcXVhcmsgPSAoZ3NpemUgKikgcXVhcmtfdm9s YXRpbGU7Ci0rCi0rICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKHF1YXJrKSkKLSAgICAgewotICAg ICAgIGd1aW50IG47Ci0tICAgICAgR1F1YXJrIHF1YXJrOwotKyAgICAgIEdRdWFyayBuZXdfcXVh cms7Ci0gCi0tICAgICAgcXVhcmsgPSBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoZXJyb3Jf ZG9tYWluX3F1YXJrX25hbWUpOwotKyAgICAgIG5ld19xdWFyayA9IGdfcXVhcmtfZnJvbV9zdGF0 aWNfc3RyaW5nIChlcnJvcl9kb21haW5fcXVhcmtfbmFtZSk7Ci0gCi0gICAgICAgZm9yIChuID0g MDsgbiA8IG51bV9lbnRyaWVzOyBuKyspCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2Fybl9p Zl9mYWlsIChnX2RidXNfZXJyb3JfcmVnaXN0ZXJfZXJyb3IgKHF1YXJrLAotKyAgICAgICAgICBn X3dhcm5faWZfZmFpbCAoZ19kYnVzX2Vycm9yX3JlZ2lzdGVyX2Vycm9yIChuZXdfcXVhcmssCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu dHJpZXNbbl0uZXJyb3JfY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW50cmllc1tuXS5kYnVzX2Vycm9yX25hbWUpKTsKLSAgICAg ICAgIH0KLS0gICAgICBnX29uY2VfaW5pdF9sZWF2ZSAocXVhcmtfdm9sYXRpbGUsIHF1YXJrKTsK LSsgICAgICBnX29uY2VfaW5pdF9sZWF2ZSAocXVhcmssIG5ld19xdWFyayk7Ci0gICAgIH0KLSB9 Ci0gCi0tLSAKLUdpdExhYgotCi0KLUZyb20gNzQyNTBjZDljOWRmZDNhZDQyOGU0NDVjMDk1Y2Vh Yzg4YmExODY5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxpcCBXaXRobmFs bCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDE4OjI4 OjIzICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMDkvMjldIGdpbzogRHJvcCB1bm5lY2Vzc2FyeSB2 b2xhdGlsZSBxdWFsaWZpZXJzIGZyb20gaW50ZXJuYWwKLSB2YXJpYWJsZXMKLU1JTUUtVmVyc2lv bjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotVGhlc2UgdmFyaWFibGVzIHdlcmUgYWxyZWFkeSAo Y29ycmVjdGx5KSBhY2Nlc3NlZCBhdG9taWNhbGx5LiBUaGUKLWB2b2xhdGlsZWAgcXVhbGlmaWVy IGRvZXNu4oCZdCBoZWxwIHdpdGggdGhhdC4KLQotU2lnbmVkLW9mZi1ieTogUGhpbGlwIFdpdGhu YWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLQotSGVscHM6ICM2MDAKLS0tLQotIGdpby9n ZGJ1c2ludGVyZmFjZXNrZWxldG9uLmMgfCAgMiArLQotIGdpby9nZGJ1c2ludHJvc3BlY3Rpb24u aCAgICAgfCAxNCArKysrKysrLS0tLS0tLQotIGdpby9nZGJ1c25hbWVvd25pbmcuYyAgICAgICAg fCAgNCArKy0tCi0gZ2lvL2dkYnVzbmFtZXdhdGNoaW5nLmMgICAgICB8ICA0ICsrLS0KLSBnaW8v Z2RidXNwcml2YXRlLmMgICAgICAgICAgIHwgMTAgKysrKystLS0tLQotIGdpby9nbmV0d29ya2lu Zy5jICAgICAgICAgICAgfCAgMiArLQotIDYgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygr KSwgMTggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9naW8vZ2RidXNpbnRlcmZhY2Vza2Vs ZXRvbi5jIGIvZ2lvL2dkYnVzaW50ZXJmYWNlc2tlbGV0b24uYwotaW5kZXggMjQzYjRhMGE0Li43 NjM5OGRmMzYgMTAwNjQ0Ci0tLS0gYS9naW8vZ2RidXNpbnRlcmZhY2Vza2VsZXRvbi5jCi0rKysg Yi9naW8vZ2RidXNpbnRlcmZhY2Vza2VsZXRvbi5jCi1AQCAtNDU4LDcgKzQ1OCw3IEBAIGRidXNf aW50ZXJmYWNlX2ludGVyZmFjZV9pbml0IChHREJ1c0ludGVyZmFjZUlmYWNlICppZmFjZSkKLSAK LSB0eXBlZGVmIHN0cnVjdAotIHsKLS0gIHZvbGF0aWxlIGdpbnQgcmVmX2NvdW50OwotKyAgZ2lu dCByZWZfY291bnQ7ICAvKiAoYXRvbWljKSAqLwotICAgR0RCdXNJbnRlcmZhY2VTa2VsZXRvbiAg ICAgICAqaW50ZXJmYWNlOwotICAgR0RCdXNJbnRlcmZhY2VNZXRob2RDYWxsRnVuYyAgbWV0aG9k X2NhbGxfZnVuYzsKLSAgIEdEQnVzTWV0aG9kSW52b2NhdGlvbiAgICAgICAgKmludm9jYXRpb247 Ci1kaWZmIC0tZ2l0IGEvZ2lvL2dkYnVzaW50cm9zcGVjdGlvbi5oIGIvZ2lvL2dkYnVzaW50cm9z cGVjdGlvbi5oCi1pbmRleCAxNGIxNzEwNTUuLmYyZTI5MTc4NyAxMDA2NDQKLS0tLSBhL2dpby9n ZGJ1c2ludHJvc3BlY3Rpb24uaAotKysrIGIvZ2lvL2dkYnVzaW50cm9zcGVjdGlvbi5oCi1AQCAt NDMsNyArNDMsNyBAQCBHX0JFR0lOX0RFQ0xTCi0gc3RydWN0IF9HREJ1c0Fubm90YXRpb25JbmZv Ci0gewotICAgLyo8IHB1YmxpYyA+Ki8KLS0gIHZvbGF0aWxlIGdpbnQgICAgICAgICByZWZfY291 bnQ7Ci0rICBnaW50ICAgICAgICAgICAgICAgICAgcmVmX2NvdW50OyAgLyogKGF0b21pYykgKi8K LSAgIGdjaGFyICAgICAgICAgICAgICAgICprZXk7Ci0gICBnY2hhciAgICAgICAgICAgICAgICAq dmFsdWU7Ci0gICBHREJ1c0Fubm90YXRpb25JbmZvICoqYW5ub3RhdGlvbnM7Ci1AQCAtNjMsNyAr NjMsNyBAQCBzdHJ1Y3QgX0dEQnVzQW5ub3RhdGlvbkluZm8KLSBzdHJ1Y3QgX0dEQnVzQXJnSW5m bwotIHsKLSAgIC8qPCBwdWJsaWMgPiovCi0tICB2b2xhdGlsZSBnaW50ICAgICAgICAgcmVmX2Nv dW50OwotKyAgZ2ludCAgICAgICAgICAgICAgICAgIHJlZl9jb3VudDsgIC8qIChhdG9taWMpICov Ci0gICBnY2hhciAgICAgICAgICAgICAgICAqbmFtZTsKLSAgIGdjaGFyICAgICAgICAgICAgICAg ICpzaWduYXR1cmU7Ci0gICBHREJ1c0Fubm90YXRpb25JbmZvICoqYW5ub3RhdGlvbnM7Ci1AQCAt ODQsNyArODQsNyBAQCBzdHJ1Y3QgX0dEQnVzQXJnSW5mbwotIHN0cnVjdCBfR0RCdXNNZXRob2RJ bmZvCi0gewotICAgLyo8IHB1YmxpYyA+Ki8KLS0gIHZvbGF0aWxlIGdpbnQgICAgICAgICByZWZf Y291bnQ7Ci0rICBnaW50ICAgICAgICAgICAgICAgICAgcmVmX2NvdW50OyAgLyogKGF0b21pYykg Ki8KLSAgIGdjaGFyICAgICAgICAgICAgICAgICpuYW1lOwotICAgR0RCdXNBcmdJbmZvICAgICAg ICAqKmluX2FyZ3M7Ci0gICBHREJ1c0FyZ0luZm8gICAgICAgICoqb3V0X2FyZ3M7Ci1AQCAtMTA1 LDcgKzEwNSw3IEBAIHN0cnVjdCBfR0RCdXNNZXRob2RJbmZvCi0gc3RydWN0IF9HREJ1c1NpZ25h bEluZm8KLSB7Ci0gICAvKjwgcHVibGljID4qLwotLSAgdm9sYXRpbGUgZ2ludCAgICAgICAgIHJl Zl9jb3VudDsKLSsgIGdpbnQgICAgICAgICAgICAgICAgICByZWZfY291bnQ7ICAvKiAoYXRvbWlj KSAqLwotICAgZ2NoYXIgICAgICAgICAgICAgICAgKm5hbWU7Ci0gICBHREJ1c0FyZ0luZm8gICAg ICAgICoqYXJnczsKLSAgIEdEQnVzQW5ub3RhdGlvbkluZm8gKiphbm5vdGF0aW9uczsKLUBAIC0x MjYsNyArMTI2LDcgQEAgc3RydWN0IF9HREJ1c1NpZ25hbEluZm8KLSBzdHJ1Y3QgX0dEQnVzUHJv cGVydHlJbmZvCi0gewotICAgLyo8IHB1YmxpYyA+Ki8KLS0gIHZvbGF0aWxlIGdpbnQgICAgICAg ICAgICAgcmVmX2NvdW50OwotKyAgZ2ludCAgICAgICAgICAgICAgICAgICAgICByZWZfY291bnQ7 ICAvKiAoYXRvbWljKSAqLwotICAgZ2NoYXIgICAgICAgICAgICAgICAgICAgICpuYW1lOwotICAg Z2NoYXIgICAgICAgICAgICAgICAgICAgICpzaWduYXR1cmU7Ci0gICBHREJ1c1Byb3BlcnR5SW5m b0ZsYWdzICAgIGZsYWdzOwotQEAgLTE0OSw3ICsxNDksNyBAQCBzdHJ1Y3QgX0dEQnVzUHJvcGVy dHlJbmZvCi0gc3RydWN0IF9HREJ1c0ludGVyZmFjZUluZm8KLSB7Ci0gICAvKjwgcHVibGljID4q LwotLSAgdm9sYXRpbGUgZ2ludCAgICAgICAgIHJlZl9jb3VudDsKLSsgIGdpbnQgICAgICAgICAg ICAgICAgICByZWZfY291bnQ7ICAvKiAoYXRvbWljKSAqLwotICAgZ2NoYXIgICAgICAgICAgICAg ICAgKm5hbWU7Ci0gICBHREJ1c01ldGhvZEluZm8gICAgICoqbWV0aG9kczsKLSAgIEdEQnVzU2ln bmFsSW5mbyAgICAgKipzaWduYWxzOwotQEAgLTE3Miw3ICsxNzIsNyBAQCBzdHJ1Y3QgX0dEQnVz SW50ZXJmYWNlSW5mbwotIHN0cnVjdCBfR0RCdXNOb2RlSW5mbwotIHsKLSAgIC8qPCBwdWJsaWMg PiovCi0tICB2b2xhdGlsZSBnaW50ICAgICAgICAgcmVmX2NvdW50OwotKyAgZ2ludCAgICAgICAg ICAgICAgICAgIHJlZl9jb3VudDsgIC8qIChhdG9taWMpICovCi0gICBnY2hhciAgICAgICAgICAg ICAgICAqcGF0aDsKLSAgIEdEQnVzSW50ZXJmYWNlSW5mbyAgKippbnRlcmZhY2VzOwotICAgR0RC dXNOb2RlSW5mbyAgICAgICAqKm5vZGVzOwotZGlmZiAtLWdpdCBhL2dpby9nZGJ1c25hbWVvd25p bmcuYyBiL2dpby9nZGJ1c25hbWVvd25pbmcuYwotaW5kZXggZDIwZTZmZmVkLi4xMTMwZDY3ODkg MTAwNjQ0Ci0tLS0gYS9naW8vZ2RidXNuYW1lb3duaW5nLmMKLSsrKyBiL2dpby9nZGJ1c25hbWVv d25pbmcuYwotQEAgLTU1LDcgKzU1LDcgQEAgdHlwZWRlZiBlbnVtCi0gCi0gdHlwZWRlZiBzdHJ1 Y3QKLSB7Ci0tICB2b2xhdGlsZSBnaW50ICAgICAgICAgICAgIHJlZl9jb3VudDsKLSsgIGdpbnQg ICAgICAgICAgICAgICAgICAgICAgcmVmX2NvdW50OyAgLyogKGF0b21pYykgKi8KLSAgIGd1aW50 ICAgICAgICAgICAgICAgICAgICAgaWQ7Ci0gICBHQnVzTmFtZU93bmVyRmxhZ3MgICAgICAgIGZs YWdzOwotICAgZ2NoYXIgICAgICAgICAgICAgICAgICAgICpuYW1lOwotQEAgLTczLDcgKzczLDcg QEAgdHlwZWRlZiBzdHJ1Y3QKLSAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgbmFtZV9hY3F1 aXJlZF9zdWJzY3JpcHRpb25faWQ7Ci0gICBndWludCAgICAgICAgICAgICAgICAgICAgIG5hbWVf bG9zdF9zdWJzY3JpcHRpb25faWQ7Ci0gCi0tICB2b2xhdGlsZSBnYm9vbGVhbiAgICAgICAgIGNh bmNlbGxlZDsgLyogbXVzdCBob2xkIGxvY2sgd2hlbiByZWFkaW5nIG9yIG1vZGlmeWluZyAqLwot KyAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICBjYW5jZWxsZWQ7IC8qIG11c3QgaG9sZCBsb2Nr IHdoZW4gcmVhZGluZyBvciBtb2RpZnlpbmcgKi8KLSAKLSAgIGdib29sZWFuICAgICAgICAgICAg ICAgICAgbmVlZHNfcmVsZWFzZTsKLSB9IENsaWVudDsKLWRpZmYgLS1naXQgYS9naW8vZ2RidXNu YW1ld2F0Y2hpbmcuYyBiL2dpby9nZGJ1c25hbWV3YXRjaGluZy5jCi1pbmRleCBiYzJhOTExOWUu LjhkMjQ3MDBjNSAxMDA2NDQKLS0tLSBhL2dpby9nZGJ1c25hbWV3YXRjaGluZy5jCi0rKysgYi9n aW8vZ2RidXNuYW1ld2F0Y2hpbmcuYwotQEAgLTU2LDcgKzU2LDcgQEAgdHlwZWRlZiBlbnVtCi0g Ci0gdHlwZWRlZiBzdHJ1Y3QKLSB7Ci0tICB2b2xhdGlsZSBnaW50ICAgICAgICAgICAgIHJlZl9j b3VudDsKLSsgIGdpbnQgICAgICAgICAgICAgICAgICAgICAgcmVmX2NvdW50OyAgLyogKGF0b21p YykgKi8KLSAgIGd1aW50ICAgICAgICAgICAgICAgICAgICAgaWQ7Ci0gICBnY2hhciAgICAgICAg ICAgICAgICAgICAgKm5hbWU7Ci0gICBHQnVzTmFtZVdhdGNoZXJGbGFncyAgICAgIGZsYWdzOwot QEAgLTc4LDcgKzc4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKLSB9IENsaWVudDsKLSAKLSAvKiBNdXN0 IGJlIGFjY2Vzc2VkIGF0b21pY2FsbHkuICovCi0tc3RhdGljIHZvbGF0aWxlIGd1aW50IG5leHRf Z2xvYmFsX2lkID0gMTsKLStzdGF0aWMgZ3VpbnQgbmV4dF9nbG9iYWxfaWQgPSAxOyAgLyogKGF0 b21pYykgKi8KLSAKLSAvKiBNdXN0IGJlIGFjY2Vzc2VkIHdpdGggQGxvY2sgaGVsZC4gKi8KLSBz dGF0aWMgR0hhc2hUYWJsZSAqbWFwX2lkX3RvX2NsaWVudCA9IE5VTEw7Ci1kaWZmIC0tZ2l0IGEv Z2lvL2dkYnVzcHJpdmF0ZS5jIGIvZ2lvL2dkYnVzcHJpdmF0ZS5jCi1pbmRleCAyNTUxZTQ3OTEu Ljk5YjM3ZjNlYiAxMDA2NDQKLS0tLSBhL2dpby9nZGJ1c3ByaXZhdGUuYwotKysrIGIvZ2lvL2dk YnVzcHJpdmF0ZS5jCi1AQCAtMjY1LDcgKzI2NSw3IEBAIGVuc3VyZV9yZXF1aXJlZF90eXBlcyAo dm9pZCkKLSAKLSB0eXBlZGVmIHN0cnVjdAotIHsKLS0gIHZvbGF0aWxlIGdpbnQgcmVmY291bnQ7 Ci0rICBnaW50IHJlZmNvdW50OyAgLyogKGF0b21pYykgKi8KLSAgIEdUaHJlYWQgKnRocmVhZDsK LSAgIEdNYWluQ29udGV4dCAqY29udGV4dDsKLSAgIEdNYWluTG9vcCAqbG9vcDsKLUBAIC0zNDEs MTIgKzM0MSwxMiBAQCB0eXBlZGVmIGVudW0gewotIAotIHN0cnVjdCBHREJ1c1dvcmtlcgotIHsK LS0gIHZvbGF0aWxlIGdpbnQgICAgICAgICAgICAgICAgICAgICAgIHJlZl9jb3VudDsKLSsgIGdp bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9jb3VudDsgIC8qIChhdG9taWMp ICovCi0gCi0gICBTaGFyZWRUaHJlYWREYXRhICAgICAgICAgICAgICAgICAgICpzaGFyZWRfdGhy ZWFkX2RhdGE7Ci0gCi0gICAvKiByZWFsbHkgYSBib29sZWFuLCBidXQgR0xpYiAyLjI4IGxhY2tz IGF0b21pYyBib29sZWFuIG9wcyAqLwotLSAgdm9sYXRpbGUgZ2ludCAgICAgICAgICAgICAgICAg ICAgICAgc3RvcHBlZDsKLSsgIGdpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 b3BwZWQ7ICAvKiAoYXRvbWljKSAqLwotIAotICAgLyogVE9ETzogZnJvemVuIChlLmcuIEdfREJV U19DT05ORUNUSU9OX0ZMQUdTX0RFTEFZX01FU1NBR0VfUFJPQ0VTU0lORykgY3VycmVudGx5Ci0g ICAgKiBvbmx5IGFmZmVjdHMgbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSB0aGUgb3RoZXIgcGVlciAo c2luY2UgR0RCdXNTZXJ2ZXIgaXMgdGhlCi1AQCAtMTk0MSwxMSArMTk0MSwxMSBAQCBfZ19kYnVz X2RlYnVnX3ByaW50X3VubG9jayAodm9pZCkKLSB2b2lkCi0gX2dfZGJ1c19pbml0aWFsaXplICh2 b2lkKQotIHsKLS0gIHN0YXRpYyB2b2xhdGlsZSBnc2l6ZSBpbml0aWFsaXplZCA9IDA7Ci0rICBz dGF0aWMgZ3NpemUgaW5pdGlhbGl6ZWQgPSAwOwotIAotICAgaWYgKGdfb25jZV9pbml0X2VudGVy ICgmaW5pdGlhbGl6ZWQpKQotICAgICB7Ci0tICAgICAgdm9sYXRpbGUgR1F1YXJrIGdfZGJ1c19l cnJvcl9kb21haW47Ci0rICAgICAgR1F1YXJrIGdfZGJ1c19lcnJvcl9kb21haW47Ci0gICAgICAg Y29uc3QgZ2NoYXIgKmRlYnVnOwotIAotICAgICAgIGdfZGJ1c19lcnJvcl9kb21haW4gPSBHX0RC VVNfRVJST1I7Ci1kaWZmIC0tZ2l0IGEvZ2lvL2duZXR3b3JraW5nLmMgYi9naW8vZ25ldHdvcmtp bmcuYwotaW5kZXggMDU1MDdmZTcwLi43YmM2ZDczYzQgMTAwNjQ0Ci0tLS0gYS9naW8vZ25ldHdv cmtpbmcuYwotKysrIGIvZ2lvL2duZXR3b3JraW5nLmMKLUBAIC02MSw3ICs2MSw3IEBAIHZvaWQK LSBnX25ldHdvcmtpbmdfaW5pdCAodm9pZCkKLSB7Ci0gI2lmZGVmIEdfT1NfV0lOMzIKLS0gIHN0 YXRpYyB2b2xhdGlsZSBnc2l6ZSBpbml0ZWQgPSAwOwotKyAgc3RhdGljIGdzaXplIGluaXRlZCA9 IDA7Ci0gCi0gICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZpbml0ZWQpKQotICAgICB7Ci0tLSAK LUdpdExhYgotCi0KLUZyb20gZTRlODg2ODhhMDcyMjIzN2VmZmM1NmNjMjE0MzhkMGM4ZTgyZGU4 OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhu YWxsQGVuZGxlc3Nvcy5vcmc+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDE4OjI5OjI2ICswMDAw Ci1TdWJqZWN0OiBbUEFUQ0ggMTAvMjldIGtxdWV1ZTogRml4IHVubG9ja2VkIGFjY2VzcyB0byBz aGFyZWQgdmFyaWFibGUKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotQW5k IGRyb3AgdGhlIGB2b2xhdGlsZWAgcXVhbGlmaWVyIGJlY2F1c2UgaXQgZG9lc27igJl0IGhlbHAu Ci0KLVNpZ25lZC1vZmYtYnk6IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5v cmc+Ci0KLUhlbHBzOiAjNjAwCi0tLS0KLSBnaW8va3F1ZXVlL2txdWV1ZS1taXNzaW5nLmMgfCA1 ICsrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL2dpby9rcXVldWUva3F1ZXVlLW1pc3NpbmcuYyBiL2dpby9rcXVldWUv a3F1ZXVlLW1pc3NpbmcuYwotaW5kZXggMzdhZjgyZTViLi5kMWZmZGY0YmQgMTAwNjQ0Ci0tLS0g YS9naW8va3F1ZXVlL2txdWV1ZS1taXNzaW5nLmMKLSsrKyBiL2dpby9rcXVldWUva3F1ZXVlLW1p c3NpbmcuYwotQEAgLTM0LDcgKzM0LDcgQEAgc3RhdGljIGdib29sZWFuIGttX2RlYnVnX2VuYWJs ZWQgPSBGQUxTRTsKLSBzdGF0aWMgR1NMaXN0ICptaXNzaW5nX3N1YnNfbGlzdCA9IE5VTEw7Ci0g R19MT0NLX0RFRklORV9TVEFUSUMgKG1pc3NpbmdfbG9jayk7Ci0gCi0tc3RhdGljIHZvbGF0aWxl IGdib29sZWFuIHNjYW5fbWlzc2luZ19ydW5uaW5nID0gRkFMU0U7Ci0rc3RhdGljIGdib29sZWFu IHNjYW5fbWlzc2luZ19ydW5uaW5nID0gRkFMU0U7ICAvKiBtdXN0IGJlIGFjY2Vzc2VkIHVuZGVy IEBtaXNzaW5nX2xvY2sgKi8KLSAKLSAKLSBzdGF0aWMgZ2Jvb2xlYW4KLUBAIC02Miw3ICs2Miw2 IEBAIF9rbV9hZGRfbWlzc2luZyAoa3F1ZXVlX3N1YiAqc3ViKQotIAotICAgS01fVyAoImFkZGlu ZyAlcyB0byBtaXNzaW5nIGxpc3RcbiIsIHN1Yi0+ZmlsZW5hbWUpOwotICAgbWlzc2luZ19zdWJz X2xpc3QgPSBnX3NsaXN0X3ByZXBlbmQgKG1pc3Npbmdfc3Vic19saXN0LCBzdWIpOwotLSAgR19V TkxPQ0sgKG1pc3NpbmdfbG9jayk7Ci0gCi0gICBpZiAoIXNjYW5fbWlzc2luZ19ydW5uaW5nKQot ICAgICB7Ci1AQCAtNzMsNiArNzIsOCBAQCBfa21fYWRkX21pc3NpbmcgKGtxdWV1ZV9zdWIgKnN1 YikKLSAgICAgICBnX3NvdXJjZV9hdHRhY2ggKHNvdXJjZSwgR0xJQl9QUklWQVRFX0NBTEwgKGdf Z2V0X3dvcmtlcl9jb250ZXh0KSAoKSk7Ci0gICAgICAgZ19zb3VyY2VfdW5yZWYgKHNvdXJjZSk7 Ci0gICAgIH0KLSsKLSsgIEdfVU5MT0NLIChtaXNzaW5nX2xvY2spOwotIH0KLSAKLSAvKioKLS0t IAotR2l0TGFiCi0KLQotRnJvbSA3Y2RiNjg3MTNjMTg2M2EyN2FkODJkODAxNzU2ZWM3NDA5N2U4 ZTg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0 aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IFdlZCwgMTEgTm92IDIwMjAgMTg6MzA6MzYgKzAw MDAKLVN1YmplY3Q6IFtQQVRDSCAxMS8yOV0gdGVzdHM6IERyb3AgdW5uZWNlc3Nhcnkgdm9sYXRp bGUgcXVhbGlmaWVycyBmcm9tIHRlc3RzCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4 Yml0Ci0KLVRoZXNlIHZhcmlhYmxlcyB3ZXJlIGFscmVhZHkgKGNvcnJlY3RseSkgYWNjZXNzZWQg YXRvbWljYWxseS4gVGhlCi1gdm9sYXRpbGVgIHF1YWxpZmllciBkb2VzbuKAmXQgaGVscCB3aXRo IHRoYXQuCi0KLVNpZ25lZC1vZmYtYnk6IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxl c3Nvcy5vcmc+Ci0KLUhlbHBzOiAjNjAwCi0tLS0KLSB0ZXN0cy9nb2JqZWN0L3BlcmZvcm1hbmNl LXRocmVhZGVkLmMgfCAgMiArLQotIHRlc3RzL2dvYmplY3QvcGVyZm9ybWFuY2UuYyAgICAgICAg ICB8ICA0ICsrLS0KLSB0ZXN0cy9vbmNlaW5pdC5jICAgICAgICAgICAgICAgICAgICAgfCAxNiAr KysrKysrKy0tLS0tLS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Rlc3RzL2dvYmplY3QvcGVyZm9ybWFuY2UtdGhy ZWFkZWQuYyBiL3Rlc3RzL2dvYmplY3QvcGVyZm9ybWFuY2UtdGhyZWFkZWQuYwotaW5kZXggMzBl YTViZDgwLi5jOTg1NDFkNjYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9nb2JqZWN0L3BlcmZvcm1hbmNl LXRocmVhZGVkLmMKLSsrKyBiL3Rlc3RzL2dvYmplY3QvcGVyZm9ybWFuY2UtdGhyZWFkZWQuYwot QEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIEdUeXBlIGxpc3RzdG9yZV9pbnRlcmZhY2VzWzZdOwot IHN0YXRpYyBncG9pbnRlciAKLSByZWdpc3Rlcl90eXBlcyAodm9pZCkKLSB7Ci0tICBzdGF0aWMg dm9sYXRpbGUgZ3NpemUgaW5pdGVkID0gMDsKLSsgIHN0YXRpYyBnc2l6ZSBpbml0ZWQgPSAwOwot ICAgaWYgKGdfb25jZV9pbml0X2VudGVyICgmaW5pdGVkKSkKLSAgICAgewotICAgICAgIGxpc3Rz dG9yZV9pbnRlcmZhY2VzWzBdID0gc2ltcGxlX3JlZ2lzdGVyX2NsYXNzICgiR3RrQnVpbGRhYmxl IiwgR19UWVBFX0lOVEVSRkFDRSwgMCk7Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvZ29iamVjdC9wZXJm b3JtYW5jZS5jIGIvdGVzdHMvZ29iamVjdC9wZXJmb3JtYW5jZS5jCi1pbmRleCAyMzZmZmFlZDAu LjE2M2JlNThiNCAxMDA2NDQKLS0tLSBhL3Rlc3RzL2dvYmplY3QvcGVyZm9ybWFuY2UuYwotKysr IGIvdGVzdHMvZ29iamVjdC9wZXJmb3JtYW5jZS5jCi1AQCAtNTc1LDggKzU3NSw4IEBAIHRlc3Rf dHlwZV9jaGVja19ydW4gKFBlcmZvcm1hbmNlVGVzdCAqdGVzdCwKLSAJCSAgICAgZ3BvaW50ZXIg X2RhdGEpCi0gewotICAgc3RydWN0IFR5cGVDaGVja1Rlc3QgKmRhdGEgPSBfZGF0YTsKLS0gIHZv bGF0aWxlIEdPYmplY3QgKm9iamVjdCA9IGRhdGEtPm9iamVjdDsKLS0gIHZvbGF0aWxlIEdUeXBl IHR5cGUsIHR5cGVzWzVdOwotKyAgR09iamVjdCAqb2JqZWN0ID0gZGF0YS0+b2JqZWN0OwotKyAg R1R5cGUgdHlwZSwgdHlwZXNbNV07Ci0gICBpbnQgaSwgajsKLSAKLSAgIHR5cGVzWzBdID0gdGVz dF9pZmFjZTFfZ2V0X3R5cGUgKCk7Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvb25jZWluaXQuYyBiL3Rl c3RzL29uY2Vpbml0LmMKLWluZGV4IDg5YmE2YTEzNi4uOTc4OGVmY2JkIDEwMDY0NAotLS0tIGEv dGVzdHMvb25jZWluaXQuYwotKysrIGIvdGVzdHMvb25jZWluaXQuYwotQEAgLTI1LDEzICsyNSwx MyBAQAotIAotIHN0YXRpYyBHTXV0ZXggICAgICAgdG11dGV4OwotIHN0YXRpYyBHQ29uZCAgICAg ICAgdGNvbmQ7Ci0tc3RhdGljIHZvbGF0aWxlIGludCB0aHJlYWRfY2FsbF9jb3VudCA9IDA7Ci0r c3RhdGljIGludCB0aHJlYWRfY2FsbF9jb3VudCA9IDA7ICAvKiAoYXRvbWljKSAqLwotIHN0YXRp YyBjaGFyICAgICAgICAgZHVtbXlfdmFsdWUgPSAneCc7Ci0gCi0gc3RhdGljIHZvaWQKLSBhc3Nl cnRfc2luZ2xldG9uX2V4ZWN1dGlvbjEgKHZvaWQpCi0gewotLSAgc3RhdGljIHZvbGF0aWxlIGlu dCBzZWVuX2V4ZWN1dGlvbiA9IDA7Ci0rICBzdGF0aWMgaW50IHNlZW5fZXhlY3V0aW9uID0gMDsg IC8qIChhdG9taWMpICovCi0gICBpbnQgb2xkX3NlZW5fZXhlY3V0aW9uID0gZ19hdG9taWNfaW50 X2FkZCAoJnNlZW5fZXhlY3V0aW9uLCAxKTsKLSAgIGlmIChvbGRfc2Vlbl9leGVjdXRpb24gIT0g MCkKLSAgICAgZ19lcnJvciAoIiVzOiBmdW5jdGlvbiBleGVjdXRlZCBtb3JlIHRoYW4gb25jZSIs IEdfU1RSRlVOQyk7Ci1AQCAtNDAsNyArNDAsNyBAQCBhc3NlcnRfc2luZ2xldG9uX2V4ZWN1dGlv bjEgKHZvaWQpCi0gc3RhdGljIHZvaWQKLSBhc3NlcnRfc2luZ2xldG9uX2V4ZWN1dGlvbjIgKHZv aWQpCi0gewotLSAgc3RhdGljIHZvbGF0aWxlIGludCBzZWVuX2V4ZWN1dGlvbiA9IDA7Ci0rICBz dGF0aWMgaW50IHNlZW5fZXhlY3V0aW9uID0gMDsgIC8qIChhdG9taWMpICovCi0gICBpbnQgb2xk X3NlZW5fZXhlY3V0aW9uID0gZ19hdG9taWNfaW50X2FkZCAoJnNlZW5fZXhlY3V0aW9uLCAxKTsK LSAgIGlmIChvbGRfc2Vlbl9leGVjdXRpb24gIT0gMCkKLSAgICAgZ19lcnJvciAoIiVzOiBmdW5j dGlvbiBleGVjdXRlZCBtb3JlIHRoYW4gb25jZSIsIEdfU1RSRlVOQyk7Ci1AQCAtNDksNyArNDks NyBAQCBhc3NlcnRfc2luZ2xldG9uX2V4ZWN1dGlvbjIgKHZvaWQpCi0gc3RhdGljIHZvaWQKLSBh c3NlcnRfc2luZ2xldG9uX2V4ZWN1dGlvbjMgKHZvaWQpCi0gewotLSAgc3RhdGljIHZvbGF0aWxl IGludCBzZWVuX2V4ZWN1dGlvbiA9IDA7Ci0rICBzdGF0aWMgaW50IHNlZW5fZXhlY3V0aW9uID0g MDsgIC8qIChhdG9taWMpICovCi0gICBpbnQgb2xkX3NlZW5fZXhlY3V0aW9uID0gZ19hdG9taWNf aW50X2FkZCAoJnNlZW5fZXhlY3V0aW9uLCAxKTsKLSAgIGlmIChvbGRfc2Vlbl9leGVjdXRpb24g IT0gMCkKLSAgICAgZ19lcnJvciAoIiVzOiBmdW5jdGlvbiBleGVjdXRlZCBtb3JlIHRoYW4gb25j ZSIsIEdfU1RSRlVOQyk7Ci1AQCAtNTgsNyArNTgsNyBAQCBhc3NlcnRfc2luZ2xldG9uX2V4ZWN1 dGlvbjMgKHZvaWQpCi0gc3RhdGljIHZvaWQKLSBpbml0aWFsaXplcjEgKHZvaWQpCi0gewotLSAg c3RhdGljIHZvbGF0aWxlIGdzaXplIGluaXRpYWxpemVkID0gMDsKLSsgIHN0YXRpYyBnc2l6ZSBp bml0aWFsaXplZCA9IDA7Ci0gICBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZpbml0aWFsaXplZCkp Ci0gICAgIHsKLSAgICAgICBnc2l6ZSBpbml0dmFsID0gNDI7Ci1AQCAtNzAsNyArNzAsNyBAQCBp bml0aWFsaXplcjEgKHZvaWQpCi0gc3RhdGljIGdwb2ludGVyCi0gaW5pdGlhbGl6ZXIyICh2b2lk KQotIHsKLS0gIHN0YXRpYyB2b2xhdGlsZSBnc2l6ZSBpbml0aWFsaXplZCA9IDA7Ci0rICBzdGF0 aWMgZ3NpemUgaW5pdGlhbGl6ZWQgPSAwOwotICAgaWYgKGdfb25jZV9pbml0X2VudGVyICgmaW5p dGlhbGl6ZWQpKQotICAgICB7Ci0gICAgICAgdm9pZCAqcG9pbnRlcl92YWx1ZSA9ICZkdW1teV92 YWx1ZTsKLUBAIC04Myw3ICs4Myw3IEBAIGluaXRpYWxpemVyMiAodm9pZCkKLSBzdGF0aWMgdm9p ZAotIGluaXRpYWxpemVyMyAodm9pZCkKLSB7Ci0tICBzdGF0aWMgdm9sYXRpbGUgZ3NpemUgaW5p dGlhbGl6ZWQgPSAwOwotKyAgc3RhdGljIGdzaXplIGluaXRpYWxpemVkID0gMDsKLSAgIGlmIChn X29uY2VfaW5pdF9lbnRlciAoJmluaXRpYWxpemVkKSkKLSAgICAgewotICAgICAgIGdzaXplIGlu aXR2YWwgPSA0MjsKLUBAIC0xNjMsNyArMTYzLDcgQEAgbWFpbiAoaW50ICAgYXJnYywKLSAgICAg ICBzdGF0aWMgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgICB0ZXN0X2luaXRpYWxpemVyXyMjTiAodm9pZCkgICAgICAgICAgICAgICAgICAgICAgIFwK LSAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLS0gICAgICAgIHN0YXRpYyB2b2xhdGlsZSBnc2l6ZSBpbml0aWFsaXplZCA9IDA7ICAgICAg ICAgIFwKLSsgICAgICAgIHN0YXRpYyBnc2l6ZSBpbml0aWFsaXplZCA9IDA7ICAgICAgICAgICAg ICAgICAgIFwKLSAgICAgICAgIGlmIChnX29uY2VfaW5pdF9lbnRlciAoJmluaXRpYWxpemVkKSkg ICAgICAgICAgIFwKLSAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICBnX2ZyZWUgKGdfc3RyZHVwX3ByaW50ZiAoImNw dWhvZyU1ZCIsIDEpKTsgIFwKLS0tIAotR2l0TGFiCi0KLQotRnJvbSAxYTdmMDAwMmEwNTI3MjVm YjY0NmUxMzZmYWRkNWRhZDY2MjIyZDdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog UGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IFdlZCwgMTEg Tm92IDIwMjAgMTg6MzE6MDEgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAxMi8yOV0gdGVzdHM6IEZp eCBub24tYXRvbWljIGFjY2VzcyB0byBzb21lIHNoYXJlZCB2YXJpYWJsZXMKLU1JTUUtVmVyc2lv bjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotQW5kIGRyb3AgdGhlIGB2b2xhdGlsZWAgcXVhbGlm aWVyIGZyb20gdGhlIHZhcmlhYmxlcywgYXMgdGhhdCBkb2VzbuKAmXQKLWhlbHAgd2l0aCB0aHJl YWQgc2FmZXR5LgotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBl bmRsZXNzb3Mub3JnPgotCi1IZWxwczogIzYwMAotLS0tCi0gdGVzdHMvcmVmY291bnQvb2JqZWN0 cy5jICAgICB8IDggKysrKy0tLS0KLSB0ZXN0cy9yZWZjb3VudC9wcm9wZXJ0aWVzMy5jIHwgOCAr KysrLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQotCi1kaWZmIC0tZ2l0IGEvdGVzdHMvcmVmY291bnQvb2JqZWN0cy5jIGIvdGVzdHMvcmVmY291 bnQvb2JqZWN0cy5jCi1pbmRleCA5NjM3NjZkMDAuLjBjNDcxYTQyYiAxMDA2NDQKLS0tLSBhL3Rl c3RzL3JlZmNvdW50L29iamVjdHMuYwotKysrIGIvdGVzdHMvcmVmY291bnQvb2JqZWN0cy5jCi1A QCAtMjYsNyArMjYsNyBAQCBzdHJ1Y3QgX0dUZXN0Q2xhc3MKLSB9OwotIAotIHN0YXRpYyBHVHlw ZSBteV90ZXN0X2dldF90eXBlICh2b2lkKTsKLS1zdGF0aWMgdm9sYXRpbGUgZ2Jvb2xlYW4gc3Rv cHBpbmc7Ci0rc3RhdGljIGdpbnQgc3RvcHBpbmc7ICAvKiAoYXRvbWljKSAqLwotIAotIHN0YXRp YyB2b2lkIG15X3Rlc3RfY2xhc3NfaW5pdCAoR1Rlc3RDbGFzcyAqIGtsYXNzKTsKLSBzdGF0aWMg dm9pZCBteV90ZXN0X2luaXQgKEdUZXN0ICogdGVzdCk7Ci1AQCAtMTAxLDcgKzEwMSw3IEBAIHJ1 bl90aHJlYWQgKEdUZXN0ICogdGVzdCkKLSB7Ci0gICBnaW50IGkgPSAxOwotIAotLSAgd2hpbGUg KCFzdG9wcGluZykgewotKyAgd2hpbGUgKCFnX2F0b21pY19pbnRfZ2V0ICgmc3RvcHBpbmcpKSB7 Ci0gICAgIG15X3Rlc3RfZG9fcmVmY291bnQgKHRlc3QpOwotICAgICBpZiAoKGkrKyAlIDEwMDAw KSA9PSAwKSB7Ci0gICAgICAgZ19wcmludCAoIi4iKTsKLUBAIC0xMjgsNyArMTI4LDcgQEAgbWFp biAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAotICAgdGVzdF90aHJlYWRzID0gZ19hcnJheV9u ZXcgKEZBTFNFLCBGQUxTRSwgc2l6ZW9mIChHVGhyZWFkICopKTsKLSAKLS0gIHN0b3BwaW5nID0g RkFMU0U7Ci0rICBnX2F0b21pY19pbnRfc2V0ICgmc3RvcHBpbmcsIDApOwotIAotICAgZm9yIChp ID0gMDsgaSA8IG5fdGhyZWFkczsgaSsrKSB7Ci0gICAgIEdUaHJlYWQgKnRocmVhZDsKLUBAIC0x NDEsNyArMTQxLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotICAgfQotICAgZ191 c2xlZXAgKDUwMDAwMDApOwotIAotLSAgc3RvcHBpbmcgPSBUUlVFOwotKyAgZ19hdG9taWNfaW50 X3NldCAoJnN0b3BwaW5nLCAxKTsKLSAKLSAgIGdfcHJpbnQgKCJcbnN0b3BwaW5nXG4iKTsKLSAK LWRpZmYgLS1naXQgYS90ZXN0cy9yZWZjb3VudC9wcm9wZXJ0aWVzMy5jIGIvdGVzdHMvcmVmY291 bnQvcHJvcGVydGllczMuYwotaW5kZXggYmM4ODIwNjYxLi4zMWYyNmE0NmUgMTAwNjQ0Ci0tLS0g YS90ZXN0cy9yZWZjb3VudC9wcm9wZXJ0aWVzMy5jCi0rKysgYi90ZXN0cy9yZWZjb3VudC9wcm9w ZXJ0aWVzMy5jCi1AQCAtMzQsNyArMzQsNyBAQCBzdHJ1Y3QgX0dUZXN0Q2xhc3MKLSBzdGF0aWMg R1R5cGUgbXlfdGVzdF9nZXRfdHlwZSAodm9pZCk7Ci0gR19ERUZJTkVfVFlQRSAoR1Rlc3QsIG15 X3Rlc3QsIEdfVFlQRV9PQkpFQ1QpCi0gCi0tc3RhdGljIHZvbGF0aWxlIGdib29sZWFuIHN0b3Bw aW5nOwotK3N0YXRpYyBnaW50IHN0b3BwaW5nOyAgLyogKGF0b21pYykgKi8KLSAKLSBzdGF0aWMg dm9pZCBteV90ZXN0X2dldF9wcm9wZXJ0eSAoR09iamVjdCAgICAqb2JqZWN0LAotIAkJCQkgIGd1 aW50ICAgICAgIHByb3BfaWQsCi1AQCAtMTQwLDcgKzE0MCw3IEBAIHJ1bl90aHJlYWQgKEdUZXN0 ICogdGVzdCkKLSB7Ci0gICBnaW50IGkgPSAxOwotIAotLSAgd2hpbGUgKCFzdG9wcGluZykgewot KyAgd2hpbGUgKCFnX2F0b21pY19pbnRfZ2V0ICgmc3RvcHBpbmcpKSB7Ci0gICAgIG15X3Rlc3Rf ZG9fcHJvcGVydHkgKHRlc3QpOwotICAgICBpZiAoKGkrKyAlIDEwMDAwKSA9PSAwKQotICAgICAg IHsKLUBAIC0xNzAsNyArMTcwLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAot ICAgdGVzdF90aHJlYWRzID0gZ19hcnJheV9uZXcgKEZBTFNFLCBGQUxTRSwgc2l6ZW9mIChHVGhy ZWFkICopKTsKLSAKLS0gIHN0b3BwaW5nID0gRkFMU0U7Ci0rICBnX2F0b21pY19pbnRfc2V0ICgm c3RvcHBpbmcsIDApOwotIAotICAgZm9yIChpID0gMDsgaSA8IG5fdGhyZWFkczsgaSsrKSB7Ci0g ICAgIEdUaHJlYWQgKnRocmVhZDsKLUBAIC0xODAsNyArMTgwLDcgQEAgbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQotICAgfQotICAgZ191c2xlZXAgKDMwMDAwMDAwKTsKLSAKLS0gIHN0b3Bw aW5nID0gVFJVRTsKLSsgIGdfYXRvbWljX2ludF9zZXQgKCZzdG9wcGluZywgMSk7Ci0gICBnX3By aW50ICgiXG5zdG9wcGluZ1xuIik7Ci0gCi0gICAvKiBqb2luIGFsbCB0aHJlYWRzICovCi0tLSAK LUdpdExhYgotCi0KLUZyb20gM2M2NDg0NTdjMjg0YjRiYTMxM2I4NTkxMDA4ZDJlMThhZTQzMzVl YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhu YWxsQGVuZGxlc3Nvcy5vcmc+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDE4OjM2OjM3ICswMDAw Ci1TdWJqZWN0OiBbUEFUQ0ggMTMvMjldIGdhdG9taWM6IERyb3AgdW5uZWNlc3Nhcnkgdm9sYXRp bGUgcXVhbGlmaWVycyBmcm9tCi0gaW50ZXJuYWwgdmFyaWFibGVzCi1NSU1FLVZlcnNpb246IDEu MAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0Ci0KLUl04oCZcyBub3QgbmVjZXNzYXJ5IGFuZCBwcm92aWRlcyBu byB0aHJlYWQgc2FmZXR5IGd1YXJhbnRlZXMuCi0KLVRoZSBgdm9sYXRpbGVgIHF1YWxpZmllcnMg b24gdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cyBoYXZlIHRvIGJlIGtlcHQsIGFzCi10aGV5IGFyZSAo dW5mb3J0dW5hdGVseSkgcGFydCBvZiB0aGUgQVBJLgotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAg V2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotCi1IZWxwczogIzYwMAotLS0tCi0g Z2xpYi9nYXRvbWljLmMgfCAzNCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0g MSBmaWxlIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvZ2xpYi9nYXRvbWljLmMgYi9nbGliL2dhdG9taWMuYwotaW5kZXggOGI4YzY0NTNk Li42N2Y1YmE2YjQgMTAwNjQ0Ci0tLS0gYS9nbGliL2dhdG9taWMuYwotKysrIGIvZ2xpYi9nYXRv bWljLmMKLUBAIC0zMTYsNyArMzE2LDcgQEAgZ3VpbnQKLSBncG9pbnRlcgotIChnX2F0b21pY19w b2ludGVyX2dldCkgKGNvbnN0IHZvbGF0aWxlIHZvaWQgKmF0b21pYykKLSB7Ci0tICByZXR1cm4g Z19hdG9taWNfcG9pbnRlcl9nZXQgKChjb25zdCB2b2xhdGlsZSBncG9pbnRlciAqKSBhdG9taWMp OwotKyAgcmV0dXJuIGdfYXRvbWljX3BvaW50ZXJfZ2V0ICgoZ3BvaW50ZXIgKikgYXRvbWljKTsK LSB9Ci0gCi0gLyoqCi1AQCAtMzM1LDcgKzMzNSw3IEBAIHZvaWQKLSAoZ19hdG9taWNfcG9pbnRl cl9zZXQpICh2b2xhdGlsZSB2b2lkICphdG9taWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg Z3BvaW50ZXIgICAgICAgbmV3dmFsKQotIHsKLS0gIGdfYXRvbWljX3BvaW50ZXJfc2V0ICgodm9s YXRpbGUgZ3BvaW50ZXIgKikgYXRvbWljLCBuZXd2YWwpOwotKyAgZ19hdG9taWNfcG9pbnRlcl9z ZXQgKChncG9pbnRlciAqKSBhdG9taWMsIG5ld3ZhbCk7Ci0gfQotIAotIC8qKgotQEAgLTM2Myw3 ICszNjMsNyBAQCBnYm9vbGVhbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3BvaW50ZXIgICAgICAgb2xkdmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgbmV3dmFsKQotIHsKLS0gIHJldHVybiBnX2F0 b21pY19wb2ludGVyX2NvbXBhcmVfYW5kX2V4Y2hhbmdlICgodm9sYXRpbGUgZ3BvaW50ZXIgKikg YXRvbWljLAotKyAgcmV0dXJuIGdfYXRvbWljX3BvaW50ZXJfY29tcGFyZV9hbmRfZXhjaGFuZ2Ug KChncG9pbnRlciAqKSBhdG9taWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2xkdmFsLCBuZXd2YWwpOwotIH0KLSAKLUBAIC0zODcsNyArMzg3LDcg QEAgZ3NzaXplCi0gKGdfYXRvbWljX3BvaW50ZXJfYWRkKSAodm9sYXRpbGUgdm9pZCAqYXRvbWlj LAotICAgICAgICAgICAgICAgICAgICAgICAgIGdzc2l6ZSAgICAgICAgIHZhbCkKLSB7Ci0tICBy ZXR1cm4gZ19hdG9taWNfcG9pbnRlcl9hZGQgKCh2b2xhdGlsZSBncG9pbnRlciAqKSBhdG9taWMs IHZhbCk7Ci0rICByZXR1cm4gZ19hdG9taWNfcG9pbnRlcl9hZGQgKChncG9pbnRlciAqKSBhdG9t aWMsIHZhbCk7Ci0gfQotIAotIC8qKgotQEAgLTQxMSw3ICs0MTEsNyBAQCBnc2l6ZQotIChnX2F0 b21pY19wb2ludGVyX2FuZCkgKHZvbGF0aWxlIHZvaWQgKmF0b21pYywKLSAgICAgICAgICAgICAg ICAgICAgICAgICBnc2l6ZSAgICAgICAgICB2YWwpCi0gewotLSAgcmV0dXJuIGdfYXRvbWljX3Bv aW50ZXJfYW5kICgodm9sYXRpbGUgZ3BvaW50ZXIgKikgYXRvbWljLCB2YWwpOwotKyAgcmV0dXJu IGdfYXRvbWljX3BvaW50ZXJfYW5kICgoZ3BvaW50ZXIgKikgYXRvbWljLCB2YWwpOwotIH0KLSAK LSAvKioKLUBAIC00MzUsNyArNDM1LDcgQEAgZ3NpemUKLSAoZ19hdG9taWNfcG9pbnRlcl9vcikg KHZvbGF0aWxlIHZvaWQgKmF0b21pYywKLSAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAg ICAgICAgIHZhbCkKLSB7Ci0tICByZXR1cm4gZ19hdG9taWNfcG9pbnRlcl9vciAoKHZvbGF0aWxl IGdwb2ludGVyICopIGF0b21pYywgdmFsKTsKLSsgIHJldHVybiBnX2F0b21pY19wb2ludGVyX29y ICgoZ3BvaW50ZXIgKikgYXRvbWljLCB2YWwpOwotIH0KLSAKLSAvKioKLUBAIC00NTksNyArNDU5 LDcgQEAgZ3NpemUKLSAoZ19hdG9taWNfcG9pbnRlcl94b3IpICh2b2xhdGlsZSB2b2lkICphdG9t aWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgICAgICAgdmFsKQotIHsKLS0g IHJldHVybiBnX2F0b21pY19wb2ludGVyX3hvciAoKHZvbGF0aWxlIGdwb2ludGVyICopIGF0b21p YywgdmFsKTsKLSsgIHJldHVybiBnX2F0b21pY19wb2ludGVyX3hvciAoKGdwb2ludGVyICopIGF0 b21pYywgdmFsKTsKLSB9Ci0gCi0gI2VsaWYgZGVmaW5lZCAoR19QTEFURk9STV9XSU4zMikKLUBA IC01OTEsNyArNTkxLDcgQEAgZ3VpbnQKLSBncG9pbnRlcgotIChnX2F0b21pY19wb2ludGVyX2dl dCkgKGNvbnN0IHZvbGF0aWxlIHZvaWQgKmF0b21pYykKLSB7Ci0tICBjb25zdCB2b2xhdGlsZSBn cG9pbnRlciAqcHRyID0gYXRvbWljOwotKyAgY29uc3QgZ3BvaW50ZXIgKnB0ciA9IGF0b21pYzsK LSAKLSAgIE1lbW9yeUJhcnJpZXIgKCk7Ci0gICByZXR1cm4gKnB0cjsKLUBAIC02MDEsNyArNjAx LDcgQEAgdm9pZAotIChnX2F0b21pY19wb2ludGVyX3NldCkgKHZvbGF0aWxlIHZvaWQgKmF0b21p YywKLSAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICBuZXd2YWwpCi0gewot LSAgdm9sYXRpbGUgZ3BvaW50ZXIgKnB0ciA9IGF0b21pYzsKLSsgIGdwb2ludGVyICpwdHIgPSBh dG9taWM7Ci0gCi0gICAqcHRyID0gbmV3dmFsOwotICAgTWVtb3J5QmFycmllciAoKTsKLUBAIC03 OTcsNyArNzk3LDcgQEAgZ3VpbnQKLSBncG9pbnRlcgotIChnX2F0b21pY19wb2ludGVyX2dldCkg KGNvbnN0IHZvbGF0aWxlIHZvaWQgKmF0b21pYykKLSB7Ci0tICBjb25zdCB2b2xhdGlsZSBncG9p bnRlciAqcHRyID0gYXRvbWljOwotKyAgY29uc3QgZ3BvaW50ZXIgKnB0ciA9IGF0b21pYzsKLSAg IGdwb2ludGVyIHZhbHVlOwotIAotICAgcHRocmVhZF9tdXRleF9sb2NrICgmZ19hdG9taWNfbG9j ayk7Ci1AQCAtODExLDcgKzgxMSw3IEBAIHZvaWQKLSAoZ19hdG9taWNfcG9pbnRlcl9zZXQpICh2 b2xhdGlsZSB2b2lkICphdG9taWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg ICAgICAgbmV3dmFsKQotIHsKLS0gIHZvbGF0aWxlIGdwb2ludGVyICpwdHIgPSBhdG9taWM7Ci0r ICBncG9pbnRlciAqcHRyID0gYXRvbWljOwotIAotICAgcHRocmVhZF9tdXRleF9sb2NrICgmZ19h dG9taWNfbG9jayk7Ci0gICAqcHRyID0gbmV3dmFsOwotQEAgLTgyMyw3ICs4MjMsNyBAQCBnYm9v bGVhbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg ICAgICAgb2xkdmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3BvaW50ZXIgICAgICAgbmV3dmFsKQotIHsKLS0gIHZvbGF0aWxlIGdwb2ludGVyICpwdHIgPSBh dG9taWM7Ci0rICBncG9pbnRlciAqcHRyID0gYXRvbWljOwotICAgZ2Jvb2xlYW4gc3VjY2VzczsK LSAKLSAgIHB0aHJlYWRfbXV0ZXhfbG9jayAoJmdfYXRvbWljX2xvY2spOwotQEAgLTg0MCw3ICs4 NDAsNyBAQCBnc3NpemUKLSAoZ19hdG9taWNfcG9pbnRlcl9hZGQpICh2b2xhdGlsZSB2b2lkICph dG9taWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ3NzaXplICAgICAgICAgdmFsKQotIHsK LS0gIHZvbGF0aWxlIGdzc2l6ZSAqcHRyID0gYXRvbWljOwotKyAgZ3NzaXplICpwdHIgPSBhdG9t aWM7Ci0gICBnc3NpemUgb2xkdmFsOwotIAotICAgcHRocmVhZF9tdXRleF9sb2NrICgmZ19hdG9t aWNfbG9jayk7Ci1AQCAtODU1LDcgKzg1NSw3IEBAIGdzaXplCi0gKGdfYXRvbWljX3BvaW50ZXJf YW5kKSAodm9sYXRpbGUgdm9pZCAqYXRvbWljLAotICAgICAgICAgICAgICAgICAgICAgICAgIGdz aXplICAgICAgICAgIHZhbCkKLSB7Ci0tICB2b2xhdGlsZSBnc2l6ZSAqcHRyID0gYXRvbWljOwot KyAgZ3NpemUgKnB0ciA9IGF0b21pYzsKLSAgIGdzaXplIG9sZHZhbDsKLSAKLSAgIHB0aHJlYWRf bXV0ZXhfbG9jayAoJmdfYXRvbWljX2xvY2spOwotQEAgLTg3MCw3ICs4NzAsNyBAQCBnc2l6ZQot IChnX2F0b21pY19wb2ludGVyX29yKSAodm9sYXRpbGUgdm9pZCAqYXRvbWljLAotICAgICAgICAg ICAgICAgICAgICAgICAgZ3NpemUgICAgICAgICAgdmFsKQotIHsKLS0gIHZvbGF0aWxlIGdzaXpl ICpwdHIgPSBhdG9taWM7Ci0rICBnc2l6ZSAqcHRyID0gYXRvbWljOwotICAgZ3NpemUgb2xkdmFs OwotIAotICAgcHRocmVhZF9tdXRleF9sb2NrICgmZ19hdG9taWNfbG9jayk7Ci1AQCAtODg1LDcg Kzg4NSw3IEBAIGdzaXplCi0gKGdfYXRvbWljX3BvaW50ZXJfeG9yKSAodm9sYXRpbGUgdm9pZCAq YXRvbWljLAotICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICAgICAgIHZhbCkKLSB7 Ci0tICB2b2xhdGlsZSBnc2l6ZSAqcHRyID0gYXRvbWljOwotKyAgZ3NpemUgKnB0ciA9IGF0b21p YzsKLSAgIGdzaXplIG9sZHZhbDsKLSAKLSAgIHB0aHJlYWRfbXV0ZXhfbG9jayAoJmdfYXRvbWlj X2xvY2spOwotQEAgLTkxNSw1ICs5MTUsNSBAQCBnaW50Ci0gZ19hdG9taWNfaW50X2V4Y2hhbmdl X2FuZF9hZGQgKHZvbGF0aWxlIGdpbnQgKmF0b21pYywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2ludCAgICAgICAgICAgdmFsKQotIHsKLS0gIHJldHVybiAoZ19hdG9taWNfaW50 X2FkZCkgKGF0b21pYywgdmFsKTsKLSsgIHJldHVybiAoZ19hdG9taWNfaW50X2FkZCkgKChnaW50 ICopIGF0b21pYywgdmFsKTsKLSB9Ci0tLSAKLUdpdExhYgotCi0KLUZyb20gOTQ3NDY1NWViMjFk NjQ1MTliMjkzZTc4MGJiNjg2OTc2Y2JkYjc5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci1EYXRlOiBXZWQs IDExIE5vdiAyMDIwIDE4OjM4OjM2ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTQvMjldIGdhdG9t aWM6IERyb3AgdW5uZWNlc3Nhcnkgdm9sYXRpbGUgcXVhbGlmaWVycyBmcm9tCi0gbWFjcm8gdmFy aWFibGVzCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLUl04oCZcyBub3Qg bmVjZXNzYXJ5IGFuZCBwcm92aWRlcyBubyB0aHJlYWQgc2FmZXR5IGd1YXJhbnRlZXMuCi0KLVRo ZSBgdm9sYXRpbGVgIHF1YWxpZmllcnMgb24gdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cyBoYXZlIHRv IGJlIGtlcHQsIGFzCi10aGV5IGFyZSAodW5mb3J0dW5hdGVseSkgcGFydCBvZiB0aGUgQVBJLgot Ci1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3Jn PgotCi1IZWxwczogIzYwMAotLS0tCi0gZ2xpYi9nYXRvbWljLmggfCA2ICsrKy0tLQotIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9nbGliL2dhdG9taWMuaCBiL2dsaWIvZ2F0b21pYy5oCi1pbmRleCBiYjE0MzVjNzAuLmU2ZWNj ZmFkYSAxMDA2NDQKLS0tLSBhL2dsaWIvZ2F0b21pYy5oCi0rKysgYi9nbGliL2dhdG9taWMuaAot QEAgLTIxMSw3ICsyMTEsNyBAQCBHX0VORF9ERUNMUwotICAgfSkpCi0gI2RlZmluZSBnX2F0b21p Y19wb2ludGVyX2FuZChhdG9taWMsIHZhbCkgXAotICAgKEdfR05VQ19FWFRFTlNJT04gKHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotLSAg ICB2b2xhdGlsZSBnc2l6ZSAqZ2FwYV9hdG9taWMgPSAodm9sYXRpbGUgZ3NpemUgKikgKGF0b21p Yyk7ICAgICAgICAgICAgICAgXAotKyAgICBnc2l6ZSAqZ2FwYV9hdG9taWMgPSAoZ3NpemUgKikg KGF0b21pYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICBHX1NUQVRJ Q19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChncG9pbnRlcikpOyAgICAgICAg ICAgICAgICAgXAotICAgICBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6 ZW9mIChnc2l6ZSkpOyAgICAgICAgICAgICAgICAgICAgXAotICAgICAodm9pZCkgKDAgPyAoZ3Bv aW50ZXIpICooYXRvbWljKSA6IE5VTEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotQEAgLTIyMCw3ICsyMjAsNyBAQCBHX0VORF9ERUNMUwotICAgfSkpCi0gI2RlZmluZSBnX2F0 b21pY19wb2ludGVyX29yKGF0b21pYywgdmFsKSBcCi0gICAoR19HTlVDX0VYVEVOU0lPTiAoeyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0t ICAgIHZvbGF0aWxlIGdzaXplICpnYXBvX2F0b21pYyA9ICh2b2xhdGlsZSBnc2l6ZSAqKSAoYXRv bWljKTsgICAgICAgICAgICAgICBcCi0rICAgIGdzaXplICpnYXBvX2F0b21pYyA9IChnc2l6ZSAq KSAoYXRvbWljKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIEdfU1RB VElDX0FTU0VSVCAoc2l6ZW9mICooYXRvbWljKSA9PSBzaXplb2YgKGdwb2ludGVyKSk7ICAgICAg ICAgICAgICAgICBcCi0gICAgIEdfU1RBVElDX0FTU0VSVCAoc2l6ZW9mICooYXRvbWljKSA9PSBz aXplb2YgKGdzaXplKSk7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICh2b2lkKSAoMCA/IChn cG9pbnRlcikgKihhdG9taWMpIDogTlVMTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCi1AQCAtMjI5LDcgKzIyOSw3IEBAIEdfRU5EX0RFQ0xTCi0gICB9KSkKLSAjZGVmaW5lIGdf YXRvbWljX3BvaW50ZXJfeG9yKGF0b21pYywgdmFsKSBcCi0gICAoR19HTlVDX0VYVEVOU0lPTiAo eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0tICAgIHZvbGF0aWxlIGdzaXplICpnYXB4X2F0b21pYyA9ICh2b2xhdGlsZSBnc2l6ZSAqKSAo YXRvbWljKTsgICAgICAgICAgICAgICBcCi0rICAgIGdzaXplICpnYXB4X2F0b21pYyA9IChnc2l6 ZSAqKSAoYXRvbWljKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIEdf U1RBVElDX0FTU0VSVCAoc2l6ZW9mICooYXRvbWljKSA9PSBzaXplb2YgKGdwb2ludGVyKSk7ICAg ICAgICAgICAgICAgICBcCi0gICAgIEdfU1RBVElDX0FTU0VSVCAoc2l6ZW9mICooYXRvbWljKSA9 PSBzaXplb2YgKGdzaXplKSk7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICh2b2lkKSAoMCA/ IChncG9pbnRlcikgKihhdG9taWMpIDogTlVMTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0tLSAKLUdpdExhYgotCi0KLUZyb20gMTMxNGZmOTNmYzRkMzM3OTQ4M2MzM2RhNmE3 ZGVmZjI3ZjcxZWQ5NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBoaWxpcCBXaXRo bmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDE4 OjQwOjU2ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMTUvMjldIGdsaWI6IERyb3AgdW5uZWNlc3Nh cnkgdm9sYXRpbGUgcXVhbGlmaWVycyBmcm9tCi0gaW50ZXJuYWwgdmFyaWFibGVzCi1NSU1FLVZl cnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVRoZXNlIHZhcmlhYmxlcyB3ZXJlIGFscmVh ZHkgKGNvcnJlY3RseSkgYWNjZXNzZWQgYXRvbWljYWxseS4gVGhlCi1gdm9sYXRpbGVgIHF1YWxp ZmllciBkb2VzbuKAmXQgaGVscCB3aXRoIHRoYXQuCi0KLVNpZ25lZC1vZmYtYnk6IFBoaWxpcCBX aXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBzOiAjNjAwCi0tLS0KLSBn bGliL2dkYXRldGltZS5jIHwgMiArLQotIGdsaWIvZ2tleWZpbGUuYyAgfCAyICstCi0gZ2xpYi9n bWFpbi5jICAgICB8IDggKysrKy0tLS0KLSBnbGliL2dtYXJrdXAuYyAgIHwgMiArLQotIGdsaWIv Z3JlZ2V4LmMgICAgfCA2ICsrKy0tLQotIGdsaWIvZ3RocmVhZC5jICAgfCA2ICsrKy0tLQotIDYg ZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9nbGliL2dkYXRldGltZS5jIGIvZ2xpYi9nZGF0ZXRpbWUuYwotaW5kZXggMTc1NTI1 N2JlLi40NTMwNzdmNmQgMTAwNjQ0Ci0tLS0gYS9nbGliL2dkYXRldGltZS5jCi0rKysgYi9nbGli L2dkYXRldGltZS5jCi1AQCAtMTI2LDcgKzEyNiw3IEBAIHN0cnVjdCBfR0RhdGVUaW1lCi0gICAv KiAxIGlzIDAwMDEtMDEtMDEgaW4gUHJvbGVwdGljIEdyZWdvcmlhbiAqLwotICAgZ2ludDMyIGRh eXM7Ci0gCi0tICB2b2xhdGlsZSBnaW50IHJlZl9jb3VudDsKLSsgIGdpbnQgcmVmX2NvdW50OyAg LyogKGF0b21pYykgKi8KLSB9OwotIAotIC8qIFRpbWUgY29udmVyc2lvbiB7e3sxICovCi1kaWZm IC0tZ2l0IGEvZ2xpYi9na2V5ZmlsZS5jIGIvZ2xpYi9na2V5ZmlsZS5jCi1pbmRleCA5ZDAyMTUz MzEuLmJiZTYzOGI3NCAxMDA2NDQKLS0tLSBhL2dsaWIvZ2tleWZpbGUuYwotKysrIGIvZ2xpYi9n a2V5ZmlsZS5jCi1AQCAtNTEyLDcgKzUxMiw3IEBAIHN0cnVjdCBfR0tleUZpbGUKLSAKLSAgIGdj aGFyICoqbG9jYWxlczsKLSAKLS0gIHZvbGF0aWxlIGdpbnQgcmVmX2NvdW50OwotKyAgZ2ludCBy ZWZfY291bnQ7ICAvKiAoYXRvbWljKSAqLwotIH07Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgX0dLZXlG aWxlS2V5VmFsdWVQYWlyIEdLZXlGaWxlS2V5VmFsdWVQYWlyOwotZGlmZiAtLWdpdCBhL2dsaWIv Z21haW4uYyBiL2dsaWIvZ21haW4uYwotaW5kZXggNzcyYjhlY2ZjLi45YzVmMGVmMWUgMTAwNjQ0 Ci0tLS0gYS9nbGliL2dtYWluLmMKLSsrKyBiL2dsaWIvZ21haW4uYwotQEAgLTI3Miw3ICsyNzIs NyBAQCBzdHJ1Y3QgX0dNYWluQ29udGV4dAotICAgZ3VpbnQgb3duZXJfY291bnQ7Ci0gICBHU0xp c3QgKndhaXRlcnM7Ci0gCi0tICB2b2xhdGlsZSBnaW50IHJlZl9jb3VudDsKLSsgIGdpbnQgcmVm X2NvdW50OyAgLyogKGF0b21pYykgKi8KLSAKLSAgIEdIYXNoVGFibGUgKnNvdXJjZXM7ICAgICAg ICAgICAgICAvKiBndWludCAtPiBHU291cmNlICovCi0gCi1AQCAtMzAzLDcgKzMwMyw3IEBAIHN0 cnVjdCBfR01haW5Db250ZXh0Ci0gCi0gc3RydWN0IF9HU291cmNlQ2FsbGJhY2sKLSB7Ci0tICB2 b2xhdGlsZSBnaW50IHJlZl9jb3VudDsKLSsgIGdpbnQgcmVmX2NvdW50OyAgLyogKGF0b21pYykg Ki8KLSAgIEdTb3VyY2VGdW5jIGZ1bmM7Ci0gICBncG9pbnRlciAgICBkYXRhOwotICAgR0Rlc3Ry b3lOb3RpZnkgbm90aWZ5OwotQEAgLTMxMyw3ICszMTMsNyBAQCBzdHJ1Y3QgX0dNYWluTG9vcAot IHsKLSAgIEdNYWluQ29udGV4dCAqY29udGV4dDsKLSAgIGdib29sZWFuIGlzX3J1bm5pbmc7IC8q IChhdG9taWMpICovCi0tICB2b2xhdGlsZSBnaW50IHJlZl9jb3VudDsKLSsgIGdpbnQgcmVmX2Nv dW50OyAgLyogKGF0b21pYykgKi8KLSB9OwotIAotIHN0cnVjdCBfR1RpbWVvdXRTb3VyY2UKLUBA IC00NzQ5LDcgKzQ3NDksNyBAQCBnX21haW5fY29udGV4dF9nZXRfcG9sbF9mdW5jIChHTWFpbkNv bnRleHQgKmNvbnRleHQpCi0gICoKLSAgKiB8WzwhLS0gbGFuZ3VhZ2U9IkMiIC0tPiAKLSAgKiAg ICNkZWZpbmUgTlVNX1RBU0tTIDEwCi0tICogICBzdGF0aWMgdm9sYXRpbGUgZ2ludCB0YXNrc19y ZW1haW5pbmcgPSBOVU1fVEFTS1M7Ci0rICogICBzdGF0aWMgZ2ludCB0YXNrc19yZW1haW5pbmcg PSBOVU1fVEFTS1M7ICAvLyAoYXRvbWljKQotICAqICAgLi4uCi0gICogIAotICAqICAgd2hpbGUg KGdfYXRvbWljX2ludF9nZXQgKCZ0YXNrc19yZW1haW5pbmcpICE9IDApCi1kaWZmIC0tZ2l0IGEv Z2xpYi9nbWFya3VwLmMgYi9nbGliL2dtYXJrdXAuYwotaW5kZXggYmE0ZGZkMmU0Li5iODMyN2Zi NmQgMTAwNjQ0Ci0tLS0gYS9nbGliL2dtYXJrdXAuYwotKysrIGIvZ2xpYi9nbWFya3VwLmMKLUBA IC0xMTksNyArMTE5LDcgQEAgc3RydWN0IF9HTWFya3VwUGFyc2VDb250ZXh0Ci0gewotICAgY29u c3QgR01hcmt1cFBhcnNlciAqcGFyc2VyOwotIAotLSAgdm9sYXRpbGUgZ2ludCByZWZfY291bnQ7 Ci0rICBnaW50IHJlZl9jb3VudDsgIC8qIChhdG9taWMpICovCi0gCi0gICBHTWFya3VwUGFyc2VG bGFncyBmbGFnczsKLSAKLWRpZmYgLS1naXQgYS9nbGliL2dyZWdleC5jIGIvZ2xpYi9ncmVnZXgu YwotaW5kZXggNTI0MTZiYmI5Li41ZTZkZGZiNDYgMTAwNjQ0Ci0tLS0gYS9nbGliL2dyZWdleC5j Ci0rKysgYi9nbGliL2dyZWdleC5jCi1AQCAtMjAzLDcgKzIwMyw3IEBAIEdfU1RBVElDX0FTU0VS VCAoR19SRUdFWF9SQVcgICAgICAgICAgICAgICA9PSBQQ1JFX1VURjgpOwotIAotIHN0cnVjdCBf R01hdGNoSW5mbwotIHsKLS0gIHZvbGF0aWxlIGdpbnQgcmVmX2NvdW50OyAgICAgIC8qIHRoZSBy ZWYgY291bnQgKi8KLSsgIGdpbnQgcmVmX2NvdW50OyAgICAgICAgICAgICAgIC8qIHRoZSByZWYg Y291bnQgKGF0b21pYykgKi8KLSAgIEdSZWdleCAqcmVnZXg7ICAgICAgICAgICAgICAgIC8qIHRo ZSByZWdleCAqLwotICAgR1JlZ2V4TWF0Y2hGbGFncyBtYXRjaF9vcHRzOyAgLyogb3B0aW9ucyB1 c2VkIGF0IG1hdGNoIHRpbWUgb24gdGhlIHJlZ2V4ICovCi0gICBnaW50IG1hdGNoZXM7ICAgICAg ICAgICAgICAgICAvKiBudW1iZXIgb2YgbWF0Y2hpbmcgc3ViIHBhdHRlcm5zICovCi1AQCAtMjE4 LDcgKzIxOCw3IEBAIHN0cnVjdCBfR01hdGNoSW5mbwotIAotIHN0cnVjdCBfR1JlZ2V4Ci0gewot LSAgdm9sYXRpbGUgZ2ludCByZWZfY291bnQ7ICAgICAgLyogdGhlIHJlZiBjb3VudCBmb3IgdGhl IGltbXV0YWJsZSBwYXJ0ICovCi0rICBnaW50IHJlZl9jb3VudDsgICAgICAgICAgICAgICAvKiB0 aGUgcmVmIGNvdW50IGZvciB0aGUgaW1tdXRhYmxlIHBhcnQgKGF0b21pYykgKi8KLSAgIGdjaGFy ICpwYXR0ZXJuOyAgICAgICAgICAgICAgIC8qIHRoZSBwYXR0ZXJuICovCi0gICBwY3JlICpwY3Jl X3JlOyAgICAgICAgICAgICAgICAvKiBjb21waWxlZCBmb3JtIG9mIHRoZSBwYXR0ZXJuICovCi0g ICBHUmVnZXhDb21waWxlRmxhZ3MgY29tcGlsZV9vcHRzOyAgICAgIC8qIG9wdGlvbnMgdXNlZCBh dCBjb21waWxlIHRpbWUgb24gdGhlIHBhdHRlcm4gKi8KLUBAIC0xMzAwLDcgKzEzMDAsNyBAQCBn X3JlZ2V4X25ldyAoY29uc3QgZ2NoYXIgICAgICAgICAqcGF0dGVybiwKLSAgIHBjcmUgKnJlOwot ICAgY29uc3QgZ2NoYXIgKmVycm1zZzsKLSAgIGdib29sZWFuIG9wdGltaXplID0gRkFMU0U7Ci0t ICBzdGF0aWMgdm9sYXRpbGUgZ3NpemUgaW5pdGlhbGlzZWQgPSAwOwotKyAgc3RhdGljIGdzaXpl IGluaXRpYWxpc2VkID0gMDsKLSAKLSAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChwYXR0ZXJuICE9 IE5VTEwsIE5VTEwpOwotICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGVycm9yID09IE5VTEwgfHwg KmVycm9yID09IE5VTEwsIE5VTEwpOwotZGlmZiAtLWdpdCBhL2dsaWIvZ3RocmVhZC5jIGIvZ2xp Yi9ndGhyZWFkLmMKLWluZGV4IDUzZjNhMDg0OC4uNjEyYTk3MzlmIDEwMDY0NAotLS0tIGEvZ2xp Yi9ndGhyZWFkLmMKLSsrKyBiL2dsaWIvZ3RocmVhZC5jCi1AQCAtNTEzLDcgKzUxMyw3IEBAIHN0 YXRpYyBHTXV0ZXggICAgZ19vbmNlX211dGV4OwotIHN0YXRpYyBHQ29uZCAgICAgZ19vbmNlX2Nv bmQ7Ci0gc3RhdGljIEdTTGlzdCAgICpnX29uY2VfaW5pdF9saXN0ID0gTlVMTDsKLSAKLS1zdGF0 aWMgdm9sYXRpbGUgZ3VpbnQgZ190aHJlYWRfbl9jcmVhdGVkX2NvdW50ZXIgPSAwOwotK3N0YXRp YyBndWludCBnX3RocmVhZF9uX2NyZWF0ZWRfY291bnRlciA9IDA7ICAvKiAoYXRvbWljKSAqLwot IAotIHN0YXRpYyB2b2lkIGdfdGhyZWFkX2NsZWFudXAgKGdwb2ludGVyIGRhdGEpOwotIHN0YXRp YyBHUHJpdmF0ZSAgICAgZ190aHJlYWRfc3BlY2lmaWNfcHJpdmF0ZSA9IEdfUFJJVkFURV9JTklU IChnX3RocmVhZF9jbGVhbnVwKTsKLUBAIC02OTQsNyArNjk0LDcgQEAgZ19vbmNlX2ltcGwgKEdP bmNlICAgICAgICpvbmNlLAotIGdib29sZWFuCi0gKGdfb25jZV9pbml0X2VudGVyKSAodm9sYXRp bGUgdm9pZCAqbG9jYXRpb24pCi0gewotLSAgdm9sYXRpbGUgZ3NpemUgKnZhbHVlX2xvY2F0aW9u ID0gbG9jYXRpb247Ci0rICBnc2l6ZSAqdmFsdWVfbG9jYXRpb24gPSAoZ3NpemUgKikgbG9jYXRp b247Ci0gICBnYm9vbGVhbiBuZWVkX2luaXQgPSBGQUxTRTsKLSAgIGdfbXV0ZXhfbG9jayAoJmdf b25jZV9tdXRleCk7Ci0gICBpZiAoZ19hdG9taWNfcG9pbnRlcl9nZXQgKHZhbHVlX2xvY2F0aW9u KSA9PSAwKQotQEAgLTczMSw3ICs3MzEsNyBAQCB2b2lkCi0gKGdfb25jZV9pbml0X2xlYXZlKSAo dm9sYXRpbGUgdm9pZCAqbG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAg ICAgICAgcmVzdWx0KQotIHsKLS0gIHZvbGF0aWxlIGdzaXplICp2YWx1ZV9sb2NhdGlvbiA9IGxv Y2F0aW9uOwotKyAgZ3NpemUgKnZhbHVlX2xvY2F0aW9uID0gKGdzaXplICopIGxvY2F0aW9uOwot IAotICAgZ19yZXR1cm5faWZfZmFpbCAoZ19hdG9taWNfcG9pbnRlcl9nZXQgKHZhbHVlX2xvY2F0 aW9uKSA9PSAwKTsKLSAgIGdfcmV0dXJuX2lmX2ZhaWwgKHJlc3VsdCAhPSAwKTsKLS0tIAotR2l0 TGFiCi0KLQotRnJvbSAwOGQwNGQwNDI4Y2MyNjkzNWEyZDQyMDgzZjE3MTA0MzI0NjVjOThhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxA ZW5kbGVzc29zLm9yZz4KLURhdGU6IFdlZCwgMTEgTm92IDIwMjAgMTg6NDI6NDMgKzAwMDAKLVN1 YmplY3Q6IFtQQVRDSCAxNi8yOV0gZ29iamVjdDogRHJvcCB1bm5lY2Vzc2FyeSB2b2xhdGlsZSBx dWFsaWZpZXJzIGZyb20KLSBpbnRlcm5hbCB2YXJpYWJsZXMKLU1JTUUtVmVyc2lvbjogMS4wCi1D b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKLQotVGhlc2UgdmFyaWFibGVzIHdlcmUgYWxyZWFkeSAoY29ycmVjdGx5 KSBhY2Nlc3NlZCBhdG9taWNhbGx5LiBUaGUKLWB2b2xhdGlsZWAgcXVhbGlmaWVyIGRvZXNu4oCZ dCBoZWxwIHdpdGggdGhhdC4KLQotU2lnbmVkLW9mZi1ieTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0 aG5hbGxAZW5kbGVzc29zLm9yZz4KLQotSGVscHM6ICM2MDAKLS0tLQotIGdvYmplY3QvZ2Nsb3N1 cmUuYyB8ICAyICstCi0gZ29iamVjdC9nY2xvc3VyZS5oIHwgMjAgKysrKysrKysrKy0tLS0tLS0t LS0KLSBnb2JqZWN0L2dvYmplY3QuYyAgfCAgNCArKy0tCi0gZ29iamVjdC9ndHlwZS5jICAgIHwg MTAgKysrKystLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTggZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nb2JqZWN0L2djbG9zdXJlLmMgYi9nb2JqZWN0L2dj bG9zdXJlLmMKLWluZGV4IDFkMWYyZjQ4YS4uNmQ0MWU2ZDhhIDEwMDY0NAotLS0tIGEvZ29iamVj dC9nY2xvc3VyZS5jCi0rKysgYi9nb2JqZWN0L2djbG9zdXJlLmMKLUBAIC05OCw3ICs5OCw3IEBA Ci0gCi0gdHlwZWRlZiB1bmlvbiB7Ci0gICBHQ2xvc3VyZSBjbG9zdXJlOwotLSAgdm9sYXRpbGUg Z2ludCB2aW50OwotKyAgZ2ludCB2aW50OwotIH0gQ2xvc3VyZUludDsKLSAKLSAjZGVmaW5lIENI QU5HRV9GSUVMRChfY2xvc3VyZSwgX2ZpZWxkLCBfT1AsIF92YWx1ZSwgX211c3Rfc2V0LCBfU0VU X09MRCwgX1NFVF9ORVcpICAgICAgXAotZGlmZiAtLWdpdCBhL2dvYmplY3QvZ2Nsb3N1cmUuaCBi L2dvYmplY3QvZ2Nsb3N1cmUuaAotaW5kZXggYTBmOTFmNTM4Li44ODRlNDAzYTggMTAwNjQ0Ci0t LS0gYS9nb2JqZWN0L2djbG9zdXJlLmgKLSsrKyBiL2dvYmplY3QvZ2Nsb3N1cmUuaAotQEAgLTE3 NSwyMCArMTc1LDIwIEBAIHN0cnVjdCBfR0Nsb3N1cmVOb3RpZnlEYXRhCi0gc3RydWN0IF9HQ2xv c3VyZQotIHsKLSAgIC8qPCBwcml2YXRlID4qLwotLSAgdm9sYXRpbGUgICAgICAJZ3VpbnQJIHJl Zl9jb3VudCA6IDE1OwotKyAgZ3VpbnQgcmVmX2NvdW50IDogMTU7ICAvKiAoYXRvbWljKSAqLwot ICAgLyogbWV0YV9tYXJzaGFsIGlzIG5vdCB1c2VkIGFueW1vcmUgYnV0IG11c3QgYmUgemVybyBm b3IgaGlzdG9yaWNhbCByZWFzb25zCi0gICAgICBhcyBpdCB3YXMgZXhwb3NlZCBpbiB0aGUgR19D TE9TVVJFX05fTk9USUZJRVJTIG1hY3JvICovCi0tICB2b2xhdGlsZSAgICAgICAJZ3VpbnQJIG1l dGFfbWFyc2hhbF9ub3VzZSA6IDE7Ci0tICB2b2xhdGlsZSAgICAgICAJZ3VpbnQJIG5fZ3VhcmRz IDogMTsKLS0gIHZvbGF0aWxlICAgICAgIAlndWludAkgbl9mbm90aWZpZXJzIDogMjsJLyogZmlu YWxpemF0aW9uIG5vdGlmaWVycyAqLwotLSAgdm9sYXRpbGUgICAgICAgCWd1aW50CSBuX2lub3Rp ZmllcnMgOiA4OwkvKiBpbnZhbGlkYXRpb24gbm90aWZpZXJzICovCi0tICB2b2xhdGlsZSAgICAg ICAJZ3VpbnQJIGluX2lub3RpZnkgOiAxOwotLSAgdm9sYXRpbGUgICAgICAgCWd1aW50CSBmbG9h dGluZyA6IDE7Ci0rICBndWludCBtZXRhX21hcnNoYWxfbm91c2UgOiAxOyAgLyogKGF0b21pYykg Ki8KLSsgIGd1aW50IG5fZ3VhcmRzIDogMTsgIC8qIChhdG9taWMpICovCi0rICBndWludCBuX2Zu b3RpZmllcnMgOiAyOyAgLyogZmluYWxpemF0aW9uIG5vdGlmaWVycyAoYXRvbWljKSAqLwotKyAg Z3VpbnQgbl9pbm90aWZpZXJzIDogODsgIC8qIGludmFsaWRhdGlvbiBub3RpZmllcnMgKGF0b21p YykgKi8KLSsgIGd1aW50IGluX2lub3RpZnkgOiAxOyAgLyogKGF0b21pYykgKi8KLSsgIGd1aW50 IGZsb2F0aW5nIDogMTsgIC8qIChhdG9taWMpICovCi0gICAvKjwgcHJvdGVjdGVkID4qLwotLSAg dm9sYXRpbGUgICAgICAgICAJZ3VpbnQJIGRlcml2YXRpdmVfZmxhZyA6IDE7Ci0rICBndWludCBk ZXJpdmF0aXZlX2ZsYWcgOiAxOyAgLyogKGF0b21pYykgKi8KLSAgIC8qPCBwdWJsaWMgPiovCi0t ICB2b2xhdGlsZSAgICAgICAJZ3VpbnQJIGluX21hcnNoYWwgOiAxOwotLSAgdm9sYXRpbGUgICAg ICAgCWd1aW50CSBpc19pbnZhbGlkIDogMTsKLSsgIGd1aW50IGluX21hcnNoYWwgOiAxOyAgLyog KGF0b21pYykgKi8KLSsgIGd1aW50IGlzX2ludmFsaWQgOiAxOyAgLyogKGF0b21pYykgKi8KLSAK LSAgIC8qPCBwcml2YXRlID4qLwl2b2lkICAgKCptYXJzaGFsKSAgKEdDbG9zdXJlICAgICAgICpj bG9zdXJlLAotIAkJCQkJICAgIEdWYWx1ZSAvKm91dCovICpyZXR1cm5fdmFsdWUsCi1kaWZmIC0t Z2l0IGEvZ29iamVjdC9nb2JqZWN0LmMgYi9nb2JqZWN0L2dvYmplY3QuYwotaW5kZXggNmU5YzQ0 YTFlLi5hM2EzMmJlOWYgMTAwNjQ0Ci0tLS0gYS9nb2JqZWN0L2dvYmplY3QuYwotKysrIGIvZ29i amVjdC9nb2JqZWN0LmMKLUBAIC0xNzQsOSArMTc0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QKLSAgIEdU eXBlSW5zdGFuY2UgIGdfdHlwZV9pbnN0YW5jZTsKLSAKLSAgIC8qPCBwcml2YXRlID4qLwotLSAg dm9sYXRpbGUgZ3VpbnQgcmVmX2NvdW50OwotKyAgZ3VpbnQgICAgICAgICAgcmVmX2NvdW50OyAg LyogKGF0b21pYykgKi8KLSAjaWZkZWYgSEFWRV9PUFRJT05BTF9GTEFHUwotLSAgdm9sYXRpbGUg Z3VpbnQgb3B0aW9uYWxfZmxhZ3M7Ci0rICBndWludCAgICAgICAgICBvcHRpb25hbF9mbGFnczsg IC8qIChhdG9taWMpICovCi0gI2VuZGlmCi0gICBHRGF0YSAgICAgICAgICpxZGF0YTsKLSB9IEdP YmplY3RSZWFsOwotZGlmZiAtLWdpdCBhL2dvYmplY3QvZ3R5cGUuYyBiL2dvYmplY3QvZ3R5cGUu YwotaW5kZXggNTFkYWQ3NjkwLi5iZTU5ODlhM2UgMTAwNjQ0Ci0tLS0gYS9nb2JqZWN0L2d0eXBl LmMKLSsrKyBiL2dvYmplY3QvZ3R5cGUuYwotQEAgLTIyMSw5ICsyMjEsOSBAQCB0eXBlZGVmIGVu dW0KLSAvKiAtLS0gc3RydWN0dXJlcyAtLS0gKi8KLSBzdHJ1Y3QgX1R5cGVOb2RlCi0gewotLSAg Z3VpbnQgdm9sYXRpbGUgcmVmX2NvdW50OwotKyAgZ3VpbnQgICAgICAgIHJlZl9jb3VudDsgIC8q IChhdG9taWMpICovCi0gI2lmZGVmIEdfRU5BQkxFX0RFQlVHCi0tICBndWludCB2b2xhdGlsZSBp bnN0YW5jZV9jb3VudDsKLSsgIGd1aW50ICAgICAgICBpbnN0YW5jZV9jb3VudDsgIC8qIChhdG9t aWMpICovCi0gI2VuZGlmCi0gICBHVHlwZVBsdWdpbiAqcGx1Z2luOwotICAgZ3VpbnQgICAgICAg IG5fY2hpbGRyZW47IC8qIHdyaXRhYmxlIHdpdGggbG9jayAqLwotQEAgLTIzMyw3ICsyMzMsNyBA QCBzdHJ1Y3QgX1R5cGVOb2RlCi0gICBndWludCAgICAgICAgaXNfaW5zdGFudGlhdGFibGUgOiAx OwotICAgZ3VpbnQgICAgICAgIG11dGF0YWJsZV9jaGVja19jYWNoZSA6IDE7CS8qIGNvbWJpbmVz IHNvbWUgY29tbW9uIHBhdGggY2hlY2tzICovCi0gICBHVHlwZSAgICAgICAqY2hpbGRyZW47IC8q IHdyaXRhYmxlIHdpdGggbG9jayAqLwotLSAgVHlwZURhdGEgKiB2b2xhdGlsZSBkYXRhOwotKyAg VHlwZURhdGEgICAgKmRhdGE7Ci0gICBHUXVhcmsgICAgICAgcW5hbWU7Ci0gICBHRGF0YSAgICAg ICAqZ2xvYmFsX2dkYXRhOwotICAgdW5pb24gewotQEAgLTU2OSw4ICs1NjksOCBAQCB0eXBlX25v ZGVfbmV3X1cgKFR5cGVOb2RlICAgICpwbm9kZSwKLSB9Ci0gCi0gc3RhdGljIGlubGluZSBJRmFj ZUVudHJ5KgotLWxvb2t1cF9pZmFjZV9lbnRyeV9JICh2b2xhdGlsZSBJRmFjZUVudHJpZXMgKmVu dHJpZXMsCi0tCQkgICAgICBUeXBlTm9kZSAqaWZhY2Vfbm9kZSkKLStsb29rdXBfaWZhY2VfZW50 cnlfSSAoSUZhY2VFbnRyaWVzICplbnRyaWVzLAotKyAgICAgICAgICAgICAgICAgICAgICBUeXBl Tm9kZSAgICAgKmlmYWNlX25vZGUpCi0gewotICAgZ3VpbnQ4ICpvZmZzZXRzOwotICAgZ3VpbnQg b2Zmc2V0X2luZGV4OwotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIGVlZTdlM2M2Njg4ZjJmMWVlOWJl ZWQ1ZDZkMjA5OTczYzFkZjM4N2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQaGls aXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotRGF0ZTogV2VkLCAxMSBOb3Yg MjAyMCAxOToxNDoyNSArMDAwMAotU3ViamVjdDogW1BBVENIIDE3LzI5XSBnbWVzc2FnZXM6IERy b3AgdW5uZWNlc3Nhcnkgdm9sYXRpbGUgcXVhbGlmaWVycyBmcm9tCi0gbWFjcm8gdmFyaWFibGVz Ci1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVU Ri04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLUl04oCZcyBub3QgbmVjZXNz YXJ5IGFuZCBwcm92aWRlcyBubyB0aHJlYWQgc2FmZXR5IGd1YXJhbnRlZXMuCi0KLVNpZ25lZC1v ZmYtYnk6IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBz OiAjNjAwCi0tLS0KLSBnbGliL2dtZXNzYWdlcy5oIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dsaWIvZ21l c3NhZ2VzLmggYi9nbGliL2dtZXNzYWdlcy5oCi1pbmRleCA2YTI4NDQzYjQuLjJlMzY1MGJhZiAx MDA2NDQKLS0tLSBhL2dsaWIvZ21lc3NhZ2VzLmgKLSsrKyBiL2dsaWIvZ21lc3NhZ2VzLmgKLUBA IC00NzgsNyArNDc4LDcgQEAgZ19kZWJ1ZyAoY29uc3QgZ2NoYXIgKmZvcm1hdCwKLSAjaWYgZGVm aW5lZChHX0hBVkVfSVNPX1ZBUkFSR1MpICYmICFHX0FOQUxZWkVSX0FOQUxZWklORwotICNkZWZp bmUgZ193YXJuaW5nX29uY2UoLi4uKSBcCi0gICBHX1NUTVRfU1RBUlQgeyBcCi0tICAgIHN0YXRp YyB2b2xhdGlsZSBpbnQgR19QQVNURSAoX0dXYXJuaW5nT25jZUJvb2xlYW4sIF9fTElORV9fKSA9 IDA7IFwKLSsgICAgc3RhdGljIGludCBHX1BBU1RFIChfR1dhcm5pbmdPbmNlQm9vbGVhbiwgX19M SU5FX18pID0gMDsgIC8qIChhdG9taWMpICovIFwKLSAgICAgaWYgKGdfYXRvbWljX2ludF9jb21w YXJlX2FuZF9leGNoYW5nZSAoJkdfUEFTVEUgKF9HV2FybmluZ09uY2VCb29sZWFuLCBfX0xJTkVf XyksIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSkp IFwKLSAgICAgICBnX3dhcm5pbmcgKF9fVkFfQVJHU19fKTsgXAotQEAgLTQ4Nyw3ICs0ODcsNyBA QCBnX2RlYnVnIChjb25zdCBnY2hhciAqZm9ybWF0LAotICNlbGlmIGRlZmluZWQoR19IQVZFX0dO VUNfVkFSQVJHUykgICYmICFHX0FOQUxZWkVSX0FOQUxZWklORwotICNkZWZpbmUgZ193YXJuaW5n X29uY2UoZm9ybWF0Li4uKSBcCi0gICBHX1NUTVRfU1RBUlQgeyBcCi0tICAgIHN0YXRpYyB2b2xh dGlsZSBpbnQgR19QQVNURSAoX0dXYXJuaW5nT25jZUJvb2xlYW4sIF9fTElORV9fKSA9IDA7IFwK LSsgICAgc3RhdGljIGludCBHX1BBU1RFIChfR1dhcm5pbmdPbmNlQm9vbGVhbiwgX19MSU5FX18p ID0gMDsgIC8qIChhdG9taWMpICovIFwKLSAgICAgaWYgKGdfYXRvbWljX2ludF9jb21wYXJlX2Fu ZF9leGNoYW5nZSAoJkdfUEFTVEUgKF9HV2FybmluZ09uY2VCb29sZWFuLCBfX0xJTkVfXyksIFwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSkpIFwKLSAg ICAgICBnX3dhcm5pbmcgKGZvcm1hdCk7IFwKLS0tIAotR2l0TGFiCi0KLQotRnJvbSA4YTg3MDY5 ZmY0MmEwNjMxZGNlMTUzNzAxY2IyZWM1ZTM0M2E5NThjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6 IFdlZCwgMTEgTm92IDIwMjAgMTk6MTY6MzAgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAxOC8yOV0g Z3R5cGVzOiBEcm9wIHZvbGF0aWxlIHF1YWxpZmllciBmcm9tIGdhdG9taWNyZWZjb3VudAotCi1U aGlzIGlzIHRlY2huaWNhbGx5IGFuIEFQSSBicmVhaywgYnV0IHNpbmNlIHRoZSB0eXBlIGlzIG1l YW50IHRvIGJlCi1vcGFxdWUgKHRoaXJkIHBhcnR5IGNvZGUgaXMgbm90IG1lYW50IHRvIHRyZWF0 IGl0IGxpa2UgYW4gaW50ZWdlcikgaXQKLXNob3VsZCBub3QgY2F1c2UgcHJvYmxlbXMuCi0KLVNp Z25lZC1vZmYtYnk6IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0K LUhlbHBzOiAjNjAwCi0tLS0KLSBnbGliL2d0eXBlcy5oIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dsaWIv Z3R5cGVzLmggYi9nbGliL2d0eXBlcy5oCi1pbmRleCAyM2M1YTEyOTUuLjJjNDgyNTU4MiAxMDA2 NDQKLS0tLSBhL2dsaWIvZ3R5cGVzLmgKLSsrKyBiL2dsaWIvZ3R5cGVzLmgKLUBAIC01NTAsOCAr NTUwLDggQEAgc3RydWN0IF9HVGltZVZhbAotICAgZ2xvbmcgdHZfdXNlYzsKLSB9IEdMSUJfREVQ UkVDQVRFRF9UWVBFX0lOXzJfNjJfRk9SKEdEYXRlVGltZSk7Ci0gCi0tdHlwZWRlZiBnaW50ICAg ICAgICAgICAgZ3JlZmNvdW50OwotLXR5cGVkZWYgdm9sYXRpbGUgZ2ludCAgIGdhdG9taWNyZWZj b3VudDsKLSt0eXBlZGVmIGdpbnQgZ3JlZmNvdW50OwotK3R5cGVkZWYgZ2ludCBnYXRvbWljcmVm Y291bnQ7ICAvKiBzaG91bGQgYmUgYWNjZXNzZWQgb25seSB1c2luZyBhdG9taWNzICovCi0gCi0g R19FTkRfREVDTFMKLSAKLS0tIAotR2l0TGFiCi0KLQotRnJvbSA0NmJhZTRmMThkZmVjOGZlZGRh ODI2NDgwOTE3NTJkMjcwYjJkZmY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhp bGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IFdlZCwgMTEgTm92 IDIwMjAgMTk6MTk6MjAgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAxOS8yOV0gZ2F0b21pY2FycmF5 OiBEcm9wIHZvbGF0aWxlIHF1YWxpZmllciBmcm9tIEdBdG9taWNBcnJheQotIEFQSQotCi1UaGlz IGlzIGFuIEFQSSBicmVhaywgYnV0IGl0IHNob3VsZCBub3QgYWZmZWN0IHRoaXJkIHBhcnR5IGNv ZGUgc2luY2UKLXRoYXQgY29kZSBzaG91bGQgbm90IGJlIGludGVyYWN0aW5nIHdpdGggdGhlIGBk YXRhYCBtZW1iZXIgaW4gYSB3YXkgdGhhdAotaW52b2tlcyBpdHMgYHZvbGF0aWxlYCBxdWFsaWZp ZXIgKHN1Y2ggYXMgY29weWluZyB0byBhbiBpbnRlcm1lZGlhdGUKLXZhcmlhYmxlKS4KLQotU2ln bmVkLW9mZi1ieTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLQot SGVscHM6ICM2MDAKLS0tLQotIGdvYmplY3QvZ2F0b21pY2FycmF5LmggfCA0ICsrLS0KLSAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvZ29iamVjdC9nYXRvbWljYXJyYXkuaCBiL2dvYmplY3QvZ2F0b21pY2FycmF5LmgKLWluZGV4 IDk1NTBmYTM5Ni4uODkwNDNjNWU0IDEwMDY0NAotLS0tIGEvZ29iamVjdC9nYXRvbWljYXJyYXku aAotKysrIGIvZ29iamVjdC9nYXRvbWljYXJyYXkuaAotQEAgLTI5LDcgKzI5LDcgQEAgR19CRUdJ Tl9ERUNMUwotIAotIHR5cGVkZWYgc3RydWN0IF9HQXRvbWljQXJyYXkgR0F0b21pY0FycmF5Owot IHN0cnVjdCBfR0F0b21pY0FycmF5IHsKLS0gIHZvbGF0aWxlIGdwb2ludGVyIGRhdGE7ICAgICAg ICAgICAgICAgLyogZWxlbWVudHMgLSBhdG9taWMgKi8KLSsgIGdwb2ludGVyIGRhdGE7ICAvKiBl bGVtZW50cyAtIGF0b21pYyAqLwotIH07Ci0gCi0gdm9pZCAgICAgX2dfYXRvbWljX2FycmF5X2lu aXQgICAoR0F0b21pY0FycmF5ICphcnJheSk7Ci1AQCAtNDIsNyArNDIsNyBAQCB2b2lkICAgICBf Z19hdG9taWNfYXJyYXlfdXBkYXRlIChHQXRvbWljQXJyYXkgKmFycmF5LAotICNkZWZpbmUgIEdf QVRPTUlDX0FSUkFZX0dFVF9MT0NLRUQoX2FycmF5LCBfdHlwZSkgKChfdHlwZSAqKSgoX2FycmF5 KS0+ZGF0YSkpCi0gCi0gI2RlZmluZSBHX0FUT01JQ19BUlJBWV9ET19UUkFOU0FDVElPTihfYXJy YXksIF90eXBlLCBfQ18pIEdfU1RNVF9TVEFSVCB7CVwKLS0gICAgdm9sYXRpbGUgZ3BvaW50ZXIg Kl9kYXRhcCAgPSAmKF9hcnJheSktPmRhdGE7CQkJCVwKLSsgICAgZ3BvaW50ZXIgKl9kYXRhcCAg PSAmKF9hcnJheSktPmRhdGE7CQkJCVwKLSAgICAgX3R5cGUgKnRyYW5zYWN0aW9uX2RhdGEsICpf X2NoZWNrOwkJCQkJCVwKLSAJCQkJCQkJCQkJXAotICAgICBfX2NoZWNrID0gZ19hdG9taWNfcG9p bnRlcl9nZXQgKF9kYXRhcCk7CQkJCQlcCi0tLSAKLUdpdExhYgotCi0KLUZyb20gMzM0ZjY5NTMz NjQ2ODBkZGM2YzBkM2RhMTNmZGExZDkyYmY1Mzc5ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci1EYXRlOiBX ZWQsIDExIE5vdiAyMDIwIDE5OjIxOjA3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjAvMjldIGdv YmplY3Q6IERyb3Agdm9sYXRpbGUgcXVhbGlmaWVyIGZyb20gR09iamVjdC5yZWZfY291bnQKLQot VGhpcyBpcyBhbiBBUEkgYnJlYWssIGJ1dCBubyB0aGlyZCBwYXJ0eSBjb2RlIHNob3VsZCBiZSB0 b3VjaGluZwotYEdPYmplY3QucmVmX2NvdW50YCwgbGV0IGFsb25lIGluIGEgd2F5IHdoaWNoIHdv dWxkIGJlIGNoYW5nZWQgYnkgdGhlCi1yZW1vdmFsIG9mIHRoZSBgdm9sYXRpbGVgIHF1YWxpZmll ci4KLQotU2lnbmVkLW9mZi1ieTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29z Lm9yZz4KLQotSGVscHM6ICM2MDAKLS0tLQotIGdvYmplY3QvZ29iamVjdC5oIHwgMiArLQotIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0 IGEvZ29iamVjdC9nb2JqZWN0LmggYi9nb2JqZWN0L2dvYmplY3QuaAotaW5kZXggN2Y1NWUxOTc2 Li5hODRjMTgzZjggMTAwNjQ0Ci0tLS0gYS9nb2JqZWN0L2dvYmplY3QuaAotKysrIGIvZ29iamVj dC9nb2JqZWN0LmgKLUBAIC0yNDcsNyArMjQ3LDcgQEAgc3RydWN0ICBfR09iamVjdAotICAgR1R5 cGVJbnN0YW5jZSAgZ190eXBlX2luc3RhbmNlOwotICAgCi0gICAvKjwgcHJpdmF0ZSA+Ki8KLS0g IHZvbGF0aWxlIGd1aW50IHJlZl9jb3VudDsKLSsgIGd1aW50ICAgICAgICAgIHJlZl9jb3VudDsg IC8qIChhdG9taWMpICovCi0gICBHRGF0YSAgICAgICAgICpxZGF0YTsKLSB9OwotIC8qKgotLS0g Ci1HaXRMYWIKLQotCi1Gcm9tIDhhMTEyYzNjNmU1ZmU2ODM4ZWUyOWVlYzdjYWE2MmJhMzJkOWJj NDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRo bmFsbEBlbmRsZXNzb3Mub3JnPgotRGF0ZTogV2VkLCAxMSBOb3YgMjAyMCAxOToyMjo0OSArMDAw MAotU3ViamVjdDogW1BBVENIIDIxLzI5XSB0ZXN0czogRHJvcCB1bm5lY2Vzc2FyeSB2b2xhdGls ZSBxdWFsaWZpZXJzIGZyb20gdGVzdHMKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi aXQKLQotVGhlc2UgdmFyaWFibGVzIHdlcmUgYWxyZWFkeSAoY29ycmVjdGx5KSBhY2Nlc3NlZCBh dG9taWNhbGx5LiBUaGUKLWB2b2xhdGlsZWAgcXVhbGlmaWVyIGRvZXNu4oCZdCBoZWxwIHdpdGgg dGhhdC4KLQotU2lnbmVkLW9mZi1ieTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVz c29zLm9yZz4KLQotSGVscHM6ICM2MDAKLS0tLQotIGdvYmplY3QvdGVzdHMvcWRhdGEuYyAgICAg ICB8IDIgKy0KLSBnb2JqZWN0L3Rlc3RzL3RocmVhZHRlc3RzLmMgfCA0ICsrLS0KLSAyIGZpbGVz IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L2dvYmplY3QvdGVzdHMvcWRhdGEuYyBiL2dvYmplY3QvdGVzdHMvcWRhdGEuYwotaW5kZXggNTI4 YmRjNjhlLi43ZDQ2ZWZiMTUgMTAwNjQ0Ci0tLS0gYS9nb2JqZWN0L3Rlc3RzL3FkYXRhLmMKLSsr KyBiL2dvYmplY3QvdGVzdHMvcWRhdGEuYwotQEAgLTE3LDcgKzE3LDcgQEAgZ2Jvb2xlYW4gZmFp bDsKLSAjZGVmaW5lIFJPVU5EUyAxMDAwMAotIAotIEdPYmplY3QgKm9iamVjdDsKLS12b2xhdGls ZSBnaW50IGJ1Y2tldFtUSFJFQURTXTsKLStnaW50IGJ1Y2tldFtUSFJFQURTXTsgIC8qIGFjY2Vz c2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcywgYnV0IHNob3VsZCBuZXZlciBiZSBjb250ZXN0ZWQg ZHVlIHRvIHRoZSBzZXF1ZW5jZSBvZiB0aHJlYWQgb3BlcmF0aW9ucyAqLwotIAotIHN0YXRpYyBn cG9pbnRlcgotIHRocmVhZF9mdW5jIChncG9pbnRlciBkYXRhKQotZGlmZiAtLWdpdCBhL2dvYmpl Y3QvdGVzdHMvdGhyZWFkdGVzdHMuYyBiL2dvYmplY3QvdGVzdHMvdGhyZWFkdGVzdHMuYwotaW5k ZXggZTM0MWE5ZDY3Li5iNmY5ZTE3ZmEgMTAwNjQ0Ci0tLS0gYS9nb2JqZWN0L3Rlc3RzL3RocmVh ZHRlc3RzLmMKLSsrKyBiL2dvYmplY3QvdGVzdHMvdGhyZWFkdGVzdHMuYwotQEAgLTI3LDggKzI3 LDggQEAKLSAjaW5jbHVkZSA8Z2xpYi5oPgotICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotIAot LXN0YXRpYyB2b2xhdGlsZSBpbnQgbXRzYWZlX2NhbGxfY291bnRlciA9IDA7IC8qIG11bHRpIHRo cmVhZCBzYWZlIGNhbGwgY291bnRlciAqLwotLXN0YXRpYyBpbnQgICAgICAgICAgdW5zYWZlX2Nh bGxfY291bnRlciA9IDA7IC8qIHNpbmdsZS10aHJlYWRlZCBjYWxsIGNvdW50ZXIgKi8KLStzdGF0 aWMgaW50IG10c2FmZV9jYWxsX2NvdW50ZXIgPSAwOyAvKiBtdWx0aSB0aHJlYWQgc2FmZSBjYWxs IGNvdW50ZXIsIG11c3QgYmUgYWNjZXNzZWQgYXRvbWljYWxseSAqLwotK3N0YXRpYyBpbnQgdW5z YWZlX2NhbGxfY291bnRlciA9IDA7IC8qIHNpbmdsZS10aHJlYWRlZCBjYWxsIGNvdW50ZXIgKi8K LSBzdGF0aWMgR0NvbmQgc3luY19jb25kOwotIHN0YXRpYyBHTXV0ZXggc3luY19tdXRleDsKLSAK LS0tIAotR2l0TGFiCi0KLQotRnJvbSBkYWY5MGJmYTk5ZmMwMmEyNTNkNTM4YzY1ZmJhYTEyZjJl NmMxYzQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxw d2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IFdlZCwgMTEgTm92IDIwMjAgMTk6MjM6MTgg KzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAyMi8yOV0gYnVpbGQ6IERyb3AgdW5uZWNlc3Nhcnkgdm9s YXRpbGUgcXVhbGlmaWVycyBmcm9tCi0gY29uZmlndXJlIHRlc3RzCi0KLVNpZ25lZC1vZmYtYnk6 IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBzOiAjNjAw Ci0tLS0KLSBtZXNvbi5idWlsZCB8IDMgKystCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5i dWlsZAotaW5kZXggZTBiMzA4YTI1Li5hZDdmODg3ZmIgMTAwNjQ0Ci0tLS0gYS9tZXNvbi5idWls ZAotKysrIGIvbWVzb24uYnVpbGQKLUBAIC0xNzczLDcgKzE3NzMsNyBAQCBlbmRmb3JlYWNoCi0g IyB0aGF0IHRoZW4gdG8gc2lsZW50bHkgZmFsbCBiYWNrIG9uIGVtdWxhdGVkIGF0b21pYyBvcHMg anVzdCBiZWNhdXNlCi0gIyB0aGUgdXNlciBoYWQgdGhlIHdyb25nIGJ1aWxkIGVudmlyb25tZW50 LgotIGF0b21pY3Rlc3QgPSAnJydpbnQgbWFpbigpIHsKLS0gIHZvbGF0aWxlIGludCBhdG9taWMg PSAyOwotKyAgaW50IGF0b21pYyA9IDI7Ci0gICBfX3N5bmNfYm9vbF9jb21wYXJlX2FuZF9zd2Fw ICgmYXRvbWljLCAyLCAzKTsKLSAgIHJldHVybiAwOwotIH0KLUBAIC0xODgzLDYgKzE4ODMsNyBA QCBlbmRpZgotIAotICMgRklYTUU6IHdlIHNob3VsZCBtYWtlIGl0IHByaW50IHRoZSByZXN1bHQg YW5kIGFsd2F5cyByZXR1cm4gMCwgc28gdGhhdAotICMgdGhlIG91dHB1dCBpbiBtZXNvbiBzaG93 cyB1cCBhcyBncmVlbgotKyMgdm9sYXRpbGUgaXMgbmVlZGVkIGhlcmUgdG8gYXZvaWQgb3B0aW1p c2F0aW9ucyBpbiB0aGUgdGVzdAotIHN0YWNrX2dyb3dzX2NoZWNrX3Byb2cgPSAnJycKLSAgIHZv bGF0aWxlIGludCAqYSA9IDAsICpiID0gMDsKLSAgIHZvaWQgZiAoaW50IGkpIHsKLS0tIAotR2l0 TGFiCi0KLQotRnJvbSAwNjA0ZjU4NTgyNTljMzI3NDRlNmZjOTEyZWQ0ZmViMzA4NjUxYTNhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxA ZW5kbGVzc29zLm9yZz4KLURhdGU6IE1vbiwgMTYgTm92IDIwMjAgMTQ6NDc6MjMgKzAwMDAKLVN1 YmplY3Q6IFtQQVRDSCAyMy8yOV0gZ2RidXNwcml2YXRlOiBBdm9pZCBhIHdhcm5pbmcgYWJvdXQg YSBzdGF0ZW1lbnQgd2l0aCBubwotIGVmZmVjdAotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0 aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotLS0tCi0gZ2lvL2dkYnVzcHJpdmF0ZS5j IHwgNSArKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9naW8vZ2RidXNwcml2YXRlLmMgYi9naW8vZ2RidXNwcml2YXRl LmMKLWluZGV4IDk5YjM3ZjNlYi4uNGU0MmMxYTRkIDEwMDY0NAotLS0tIGEvZ2lvL2dkYnVzcHJp dmF0ZS5jCi0rKysgYi9naW8vZ2RidXNwcml2YXRlLmMKLUBAIC0xOTQ1LDExICsxOTQ1LDEwIEBA IF9nX2RidXNfaW5pdGlhbGl6ZSAodm9pZCkKLSAKLSAgIGlmIChnX29uY2VfaW5pdF9lbnRlciAo JmluaXRpYWxpemVkKSkKLSAgICAgewotLSAgICAgIEdRdWFyayBnX2RidXNfZXJyb3JfZG9tYWlu OwotICAgICAgIGNvbnN0IGdjaGFyICpkZWJ1ZzsKLSAKLS0gICAgICBnX2RidXNfZXJyb3JfZG9t YWluID0gR19EQlVTX0VSUk9SOwotLSAgICAgIChnX2RidXNfZXJyb3JfZG9tYWluKTsgLyogVG8g YXZvaWQgLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZSAqLwotKyAgICAgIC8qIEVuc3VyZSB0aGUg ZG9tYWluIGlzIHJlZ2lzdGVyZWQuICovCi0rICAgICAgZ19kYnVzX2Vycm9yX3F1YXJrICgpOwot IAotICAgICAgIGRlYnVnID0gZ19nZXRlbnYgKCJHX0RCVVNfREVCVUciKTsKLSAgICAgICBpZiAo ZGVidWcgIT0gTlVMTCkKLS0tIAotR2l0TGFiCi0KLQotRnJvbSAyZDAzZjk5YWU0ZGUzOTRjYWMw NjkwNzE3ZDk2YzJkODg0Y2NkYWUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhp bGlwIFdpdGhuYWxsIDxwd2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IE1vbiwgMTYgTm92 IDIwMjAgMTQ6NDc6NDcgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAyNC8yOV0gdGVzdHM6IEFkZCBj b21tZW50IHRvIHZvbGF0aWxlIGF0b21pYyB0ZXN0cwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogOGJpdAotCi1gdm9sYXRpbGVgIHNob3VsZCBub3QgYmUgdXNlZCB0byBpbmRpY2F0ZSBh dG9taWMgdmFyaWFibGVzLCBhbmQgd2UKLXNob3VsZG7igJl0IGVuY291cmFnZSBpdHMgdXNlLiBL ZWVwIHRoZSB0ZXN0cywgc2luY2UgdGhleSBjaGVjayB0aGF0IHdlCi1kb27igJl0IGVtaXQgd2Fy bmluZ3Mgd2hlbiBidWlsdCBhZ2FpbnN0IGluY29ycmVjdCBvbGQgY29kZSB3aGljaCB1c2VzCi1g dm9sYXRpbGVgLiBCdXQgYWRkIGEgY29tbWVudCB0byBzdG9wIGNvcHkvcGFzdGUgdXNlIG9mIGB2 b2xhdGlsZWAKLWluIHRoZSBmdXR1cmUuCi0KLVNpZ25lZC1vZmYtYnk6IFBoaWxpcCBXaXRobmFs bCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci0KLUhlbHBzOiAjNjAwCi0tLS0KLSBnbGliL3Rl c3RzL2F0b21pYy5jIHwgNiArKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCsp Ci0KLWRpZmYgLS1naXQgYS9nbGliL3Rlc3RzL2F0b21pYy5jIGIvZ2xpYi90ZXN0cy9hdG9taWMu YwotaW5kZXggN2QyNDU5ZjNhLi4xNGU2ZTQ1NGUgMTAwNjQ0Ci0tLS0gYS9nbGliL3Rlc3RzL2F0 b21pYy5jCi0rKysgYi9nbGliL3Rlc3RzL2F0b21pYy5jCi1AQCAtOTQsNiArOTQsOSBAQCB0ZXN0 X3R5cGVzICh2b2lkKQotICAgcmVzID0gZ19hdG9taWNfcG9pbnRlcl9jb21wYXJlX2FuZF9leGNo YW5nZSAoJnZwX3N0ciwgTlVMTCwgc3RyKTsKLSAgIGdfYXNzZXJ0X3RydWUgKHJlcyk7Ci0gCi0r ICAvKiBOb3RlIHRoYXQgYXRvbWljIHZhcmlhYmxlcyBzaG91bGQgYWxtb3N0IGNlcnRhaW5seSBu b3QgYmUgbWFya2VkIGFzCi0rICAgKiBgdm9sYXRpbGVgIOKAlCBzZWUgaHR0cDovL2lzdm9sYXRp bGV1c2VmdWx3aXRodGhyZWFkcy5pbi9jLy4gVGhpcyB0ZXN0IGV4aXN0cwotKyAgICogdG8gbWFr ZSBzdXJlIHRoYXQgd2UgZG9u4oCZdCB3YXJuIHdoZW4gYnVpbHQgYWdhaW5zdCBvbGRlciB0aGly ZCBwYXJ0eSBjb2RlLiAqLwotICAgZ19hdG9taWNfcG9pbnRlcl9zZXQgKCZ2cF9zdHJfdm9sLCBO VUxMKTsKLSAgIHJlcyA9IGdfYXRvbWljX3BvaW50ZXJfY29tcGFyZV9hbmRfZXhjaGFuZ2UgKCZ2 cF9zdHJfdm9sLCBOVUxMLCBzdHIpOwotICAgZ19hc3NlcnRfdHJ1ZSAocmVzKTsKLUBAIC0yMTAs NiArMjEzLDkgQEAgR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TCi0gICByZXMgPSBnX2F0 b21pY19wb2ludGVyX2NvbXBhcmVfYW5kX2V4Y2hhbmdlICgmdnBfc3RyLCBOVUxMLCAoY2hhciAq KSBzdHIpOwotICAgZ19hc3NlcnRfdHJ1ZSAocmVzKTsKLSAKLSsgIC8qIE5vdGUgdGhhdCBhdG9t aWMgdmFyaWFibGVzIHNob3VsZCBhbG1vc3QgY2VydGFpbmx5IG5vdCBiZSBtYXJrZWQgYXMKLSsg ICAqIGB2b2xhdGlsZWAg4oCUIHNlZSBodHRwOi8vaXN2b2xhdGlsZXVzZWZ1bHdpdGh0aHJlYWRz LmluL2MvLiBUaGlzIHRlc3QgZXhpc3RzCi0rICAgKiB0byBtYWtlIHN1cmUgdGhhdCB3ZSBkb27i gJl0IHdhcm4gd2hlbiBidWlsdCBhZ2FpbnN0IG9sZGVyIHRoaXJkIHBhcnR5IGNvZGUuICovCi0g ICBnX2F0b21pY19wb2ludGVyX3NldCAoJnZwX3N0cl92b2wsIE5VTEwpOwotICAgcmVzID0gZ19h dG9taWNfcG9pbnRlcl9jb21wYXJlX2FuZF9leGNoYW5nZSAoJnZwX3N0cl92b2wsIE5VTEwsIChj aGFyICopIHN0cik7Ci0gICBnX2Fzc2VydF90cnVlIChyZXMpOwotLS0gCi1HaXRMYWIKLQotCi1G cm9tIDZiZDBhNGIyOTc1MzU3MGEyYzIwYjYxYjVhZDJjMDA2ODU2N2I3YjYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mu b3JnPgotRGF0ZTogTW9uLCAxNiBOb3YgMjAyMCAxNjo0NDoyOSArMDAwMAotU3ViamVjdDogW1BB VENIIDI1LzI5XSBndGhyZWFkOiBVc2UgZ19hdG9taWMoKSBwcmltaXRpdmVzIGNvcnJlY3RseSBp bgotIGRlc3RydWN0b3IgbGlzdAotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAot Ci1JbiB0aGUgV2luZG93cyBkZXN0cnVjdG9yIGxpc3QsIGNvbnNpc3RlbnRseSBhY2Nlc3MKLWBn X3ByaXZhdGVfZGVzdHJ1Y3RvcnNgIHVzaW5nIGF0b21pYyBwcmltaXRpdmVzLgotCi1gZ19hdG9t aWNfcG9pbnRlcl9jb21wYXJlX2FuZF9leGNoYW5nZSgpYCBzaG91bGQgYmUgZXF1aXZhbGVudCB0 bwotYEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlcigpYCwgYnV0IGlzIGEgYml0IG1v cmUgdW5kZXJzdGFuZGFibGUKLWluIGEgZ2VuZXJhbCBHTGliIGNvbnRleHQsIGFuZCBwYWlycyB3 aXRoIGBnX2F0b21pY19wb2ludGVyX2dldCgpYC4gKEkKLWNhbuKAmXQgZmluZCBhIFdpbmRvd3Mg QVBJIGVxdWl2YWxlbnQgZm9yIHRoYXQuKQotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0aG5h bGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotCi1IZWxwczogIzYwMAotLS0tCi0gZ2xpYi9n dGhyZWFkLXdpbjMyLmMgfCAxMyArKysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDcgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dsaWIvZ3RocmVhZC13 aW4zMi5jIGIvZ2xpYi9ndGhyZWFkLXdpbjMyLmMKLWluZGV4IDBjMzdkYzZjMS4uMjBhY2E2ZmEx IDEwMDY0NAotLS0tIGEvZ2xpYi9ndGhyZWFkLXdpbjMyLmMKLSsrKyBiL2dsaWIvZ3RocmVhZC13 aW4zMi5jCi1AQCAtMzAxLDcgKzMwMSw3IEBAIHN0cnVjdCBfR1ByaXZhdGVEZXN0cnVjdG9yCi0g ICBHUHJpdmF0ZURlc3RydWN0b3IgKm5leHQ7Ci0gfTsKLSAKLS1zdGF0aWMgR1ByaXZhdGVEZXN0 cnVjdG9yICogdm9sYXRpbGUgZ19wcml2YXRlX2Rlc3RydWN0b3JzOwotK3N0YXRpYyBHUHJpdmF0 ZURlc3RydWN0b3IgKmdfcHJpdmF0ZV9kZXN0cnVjdG9yczsgIC8qIChhdG9taWMpIHByZXBlbmQt b25seSAqLwotIHN0YXRpYyBDUklUSUNBTF9TRUNUSU9OIGdfcHJpdmF0ZV9sb2NrOwotIAotIHN0 YXRpYyBEV09SRAotQEAgLTMyOSw3ICszMjksNyBAQCBnX3ByaXZhdGVfZ2V0X2ltcGwgKEdQcml2 YXRlICprZXkpCi0gICAgICAgICAgICAgICAgIGdfdGhyZWFkX2Fib3J0IChlcnJubywgIm1hbGxv YyIpOwotICAgICAgICAgICAgICAgZGVzdHJ1Y3Rvci0+aW5kZXggPSBpbXBsOwotICAgICAgICAg ICAgICAgZGVzdHJ1Y3Rvci0+bm90aWZ5ID0ga2V5LT5ub3RpZnk7Ci0tICAgICAgICAgICAgICBk ZXN0cnVjdG9yLT5uZXh0ID0gZ19wcml2YXRlX2Rlc3RydWN0b3JzOwotKyAgICAgICAgICAgICAg ZGVzdHJ1Y3Rvci0+bmV4dCA9IGdfYXRvbWljX3BvaW50ZXJfZ2V0ICgmZ19wcml2YXRlX2Rlc3Ry dWN0b3JzKTsKLSAKLSAgICAgICAgICAgICAgIC8qIFdlIG5lZWQgdG8gZG8gYW4gYXRvbWljIHN0 b3JlIGR1ZSB0byB0aGUgdW5sb2NrZWQKLSAgICAgICAgICAgICAgICAqIGFjY2VzcyB0byB0aGUg ZGVzdHJ1Y3RvciBsaXN0IGZyb20gdGhlIHRocmVhZCBleGl0Ci1AQCAtMzM3LDEzICszMzcsMTQg QEAgZ19wcml2YXRlX2dldF9pbXBsIChHUHJpdmF0ZSAqa2V5KQotICAgICAgICAgICAgICAgICoK LSAgICAgICAgICAgICAgICAqIEl0IGNhbiBkb3VibGUgYXMgYSBzYW5pdHkgY2hlY2suLi4KLSAg ICAgICAgICAgICAgICAqLwotLSAgICAgICAgICAgICAgaWYgKEludGVybG9ja2VkQ29tcGFyZUV4 Y2hhbmdlUG9pbnRlciAoJmdfcHJpdmF0ZV9kZXN0cnVjdG9ycywgZGVzdHJ1Y3RvciwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RydWN0 b3ItPm5leHQpICE9IGRlc3RydWN0b3ItPm5leHQpCi0rICAgICAgICAgICAgICBpZiAoIWdfYXRv bWljX3BvaW50ZXJfY29tcGFyZV9hbmRfZXhjaGFuZ2UgKCZnX3ByaXZhdGVfZGVzdHJ1Y3RvcnMs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlc3RydWN0b3ItPm5leHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RydWN0b3IpKQotICAgICAgICAgICAgICAgICBn X3RocmVhZF9hYm9ydCAoMCwgImdfcHJpdmF0ZV9nZXRfaW1wbCgxKSIpOwotICAgICAgICAgICAg IH0KLSAKLSAgICAgICAgICAgLyogRGl0dG8sIGR1ZSB0byB0aGUgdW5sb2NrZWQgYWNjZXNzIG9u IHRoZSBmYXN0IHBhdGggKi8KLS0gICAgICAgICAgaWYgKEludGVybG9ja2VkQ29tcGFyZUV4Y2hh bmdlUG9pbnRlciAoJmtleS0+cCwgaW1wbCwgTlVMTCkgIT0gTlVMTCkKLSsgICAgICAgICAgaWYg KCFnX2F0b21pY19wb2ludGVyX2NvbXBhcmVfYW5kX2V4Y2hhbmdlICgma2V5LT5wLCBOVUxMLCBp bXBsKSkKLSAgICAgICAgICAgICBnX3RocmVhZF9hYm9ydCAoMCwgImdfcHJpdmF0ZV9nZXRfaW1w bCgyKSIpOwotICAgICAgICAgfQotICAgICAgIExlYXZlQ3JpdGljYWxTZWN0aW9uICgmZ19wcml2 YXRlX2xvY2spOwotQEAgLTYzNSw3ICs2MzYsNyBAQCBnX3RocmVhZF93aW4zMl90aHJlYWRfZGV0 YWNoICh2b2lkKQotICAgICAgICAqLwotICAgICAgIGR0b3JzX2NhbGxlZCA9IEZBTFNFOwotIAot LSAgICAgIGZvciAoZHRvciA9IGdfcHJpdmF0ZV9kZXN0cnVjdG9yczsgZHRvcjsgZHRvciA9IGR0 b3ItPm5leHQpCi0rICAgICAgZm9yIChkdG9yID0gZ19hdG9taWNfcG9pbnRlcl9nZXQgKCZnX3By aXZhdGVfZGVzdHJ1Y3RvcnMpOyBkdG9yOyBkdG9yID0gZHRvci0+bmV4dCkKLSAgICAgICAgIHsK LSAgICAgICAgICAgZ3BvaW50ZXIgdmFsdWU7Ci0gCi0tLSAKLUdpdExhYgotCi0KLUZyb20gMDQx ZGQ4YjcwYmQxNGIwNDFkNmE0OTU0OTJlYjdhNWZjNzU2OGJiNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFBoaWxpcCBXaXRobmFsbCA8cHdpdGhuYWxsQGVuZGxlc3Nvcy5vcmc+Ci1E YXRlOiBNb24sIDE2IE5vdiAyMDIwIDE2OjQ3OjU0ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjYv MjldIGd0eXBlOiBGaXggc29tZSB0eXBvcyBpbiBjb21tZW50cwotCi1TaWduZWQtb2ZmLWJ5OiBQ aGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotLS0tCi0gZ29iamVjdC9n dHlwZS5jIHwgOCArKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nb2JqZWN0L2d0eXBlLmMgYi9nb2JqZWN0L2d0 eXBlLmMKLWluZGV4IGJlNTk4OWEzZS4uYWUxYWY4YTA1IDEwMDY0NAotLS0tIGEvZ29iamVjdC9n dHlwZS5jCi0rKysgYi9nb2JqZWN0L2d0eXBlLmMKLUBAIC0yMjkwLDcgKzIyOTAsNyBAQCB0eXBl X2NsYXNzX2luaXRfV20gKFR5cGVOb2RlICAgKm5vZGUsCi0gICAgKiBpbmhlcml0ZWQgaW50ZXJm YWNlcyBhcmUgYWxyZWFkeSBpbml0X3N0YXRlID09IElOSVRJQUxJWkVELCBiZWNhdXNlCi0gICAg KiB0aGV5IGVpdGhlciBnb3Qgc2V0dXAgaW4gdGhlIGFib3ZlIGJhc2VfaW5pdCBsb29wLCBvciBk dXJpbmcKLSAgICAqIGNsYXNzX2luaXQgZnJvbSB3aXRoaW4gdHlwZV9hZGRfaW50ZXJmYWNlX1dt KCkgZm9yIHRoaXMgb3IKLS0gICAqIGFuIGFuY2hlc3RvciB0eXBlLgotKyAgICogYW4gYW5jZXN0 b3IgdHlwZS4KLSAgICAqLwotICAgaSA9IDA7Ci0gICB3aGlsZSAoKGVudHJpZXMgPSBDTEFTU0VE X05PREVfSUZBQ0VTX0VOVFJJRVNfTE9DS0VEIChub2RlKSkgIT0gTlVMTCkKLUBAIC0zNDYyLDcg KzM0NjIsNyBAQCBnX3R5cGVfZGVwdGggKEdUeXBlIHR5cGUpCi0gICogYmUgdXNlZCB0byBkZXRl cm1pbmUgdGhlIHR5cGVzIGFuZCBvcmRlciBpbiB3aGljaCB0aGUgbGVhZiB0eXBlIGlzCi0gICog ZGVzY2VuZGVkIGZyb20gdGhlIHJvb3QgdHlwZS4KLSAgKgotLSAqIFJldHVybnM6IGltbWVkaWF0 ZSBjaGlsZCBvZiBAcm9vdF90eXBlIGFuZCBhbmNoZXN0b3Igb2YgQGxlYWZfdHlwZQotKyAqIFJl dHVybnM6IGltbWVkaWF0ZSBjaGlsZCBvZiBAcm9vdF90eXBlIGFuZCBhbmNlc3RvciBvZiBAbGVh Zl90eXBlCi0gICovCi0gR1R5cGUKLSBnX3R5cGVfbmV4dF9iYXNlIChHVHlwZSB0eXBlLAotQEAg LTM1NDksOCArMzU0OSw4IEBAIHR5cGVfbm9kZV9jb25mb3Jtc190b19VIChUeXBlTm9kZSAqbm9k ZSwKLSAKLSAvKioKLSAgKiBnX3R5cGVfaXNfYToKLS0gKiBAdHlwZTogdHlwZSB0byBjaGVjayBh bmNoZXN0cnkgZm9yCi0tICogQGlzX2FfdHlwZTogcG9zc2libGUgYW5jaGVzdG9yIG9mIEB0eXBl IG9yIGludGVyZmFjZSB0aGF0IEB0eXBlCi0rICogQHR5cGU6IHR5cGUgdG8gY2hlY2sgYW5jZXN0 cnkgZm9yCi0rICogQGlzX2FfdHlwZTogcG9zc2libGUgYW5jZXN0b3Igb2YgQHR5cGUgb3IgaW50 ZXJmYWNlIHRoYXQgQHR5cGUKLSAgKiAgICAgY291bGQgY29uZm9ybSB0bwotICAqCi0gICogSWYg QGlzX2FfdHlwZSBpcyBhIGRlcml2YWJsZSB0eXBlLCBjaGVjayB3aGV0aGVyIEB0eXBlIGlzIGEK LS0tIAotR2l0TGFiCi0KLQotRnJvbSA0N2RhOGVjNWQ5YTI4NGUwN2Y3N2M3ZDU5ZmM4ZWFjZjNl YmYxODhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGhpbGlwIFdpdGhuYWxsIDxw d2l0aG5hbGxAZW5kbGVzc29zLm9yZz4KLURhdGU6IE1vbiwgMTYgTm92IDIwMjAgMTY6NTc6MjIg KzAwMDAKLVN1YmplY3Q6IFtQQVRDSCAyNy8yOV0gZ3R5cGU6IEFkZCBzb21lIG1pc3NpbmcgYXRv bWljIGFjY2Vzc2VzIHRvIGluaXRfc3RhdGUKLU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5 cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKLQotSGFsZiBvZiB0aGUgcmVmZXJlbmNlcyB0byBgaW5pdF9zdGF0ZWAgaW4gYGd0eXBl LmNgIGFscmVhZHkgY29ycmVjdGx5Ci1hY2Nlc3NlZCBpdCBhdG9taWNhbGx5LCBidXQgYSBjb3Vw bGUgZGlkbuKAmXQuIERyb3AgdGhlIGB2b2xhdGlsZWAKLXF1YWxpZmllciBmcm9tIGl0cyBkZWNs YXJhdGlvbiwgYXMgdGhhdOKAmXMgbm90IG5lY2Vzc2FyeSBmb3IgYXRvbWljCi1hY2Nlc3MuCi0K LU5vdGUgdGhhdCB0aGlzIGlzIHRoZSBgaW5pdF9zdGF0ZWAgaW4gYFR5cGVEYXRhYCwgKm5vdCog dGhlIGBpbml0X3N0YXRlYAotaW4gYElGYWNlRW50cnlgLgotCi1TaWduZWQtb2ZmLWJ5OiBQaGls aXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotCi1IZWxwczogIzYwMAotLS0t Ci0gZ29iamVjdC9ndHlwZS5jIHwgMTAgKysrKystLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nb2JqZWN0L2d0eXBl LmMgYi9nb2JqZWN0L2d0eXBlLmMKLWluZGV4IGFlMWFmOGEwNS4uOTA5ZmFmMTM4IDEwMDY0NAot LS0tIGEvZ29iamVjdC9ndHlwZS5jCi0rKysgYi9nb2JqZWN0L2d0eXBlLmMKLUBAIC0zMjIsNyAr MzIyLDcgQEAgc3RydWN0IF9DbGFzc0RhdGEKLSAgIENvbW1vbkRhdGEgICAgICAgICBjb21tb247 Ci0gICBndWludDE2ICAgICAgICAgICAgY2xhc3Nfc2l6ZTsKLSAgIGd1aW50MTYgICAgICAgICAg ICBjbGFzc19wcml2YXRlX3NpemU7Ci0tICBpbnQgdm9sYXRpbGUgICAgICAgaW5pdF9zdGF0ZTsg LyogYXRvbWljIC0gZ190eXBlX2NsYXNzX3JlZiByZWFkcyBpdCB1bmxvY2tlZCAqLwotKyAgaW50 ICAgICAgICAgICAgICAgIGluaXRfc3RhdGU7ICAvKiAoYXRvbWljKSAtIGdfdHlwZV9jbGFzc19y ZWYgcmVhZHMgaXQgdW5sb2NrZWQgKi8KLSAgIEdCYXNlSW5pdEZ1bmMgICAgICBjbGFzc19pbml0 X2Jhc2U7Ci0gICBHQmFzZUZpbmFsaXplRnVuYyAgY2xhc3NfZmluYWxpemVfYmFzZTsKLSAgIEdD bGFzc0luaXRGdW5jICAgICBjbGFzc19pbml0OwotQEAgLTMzNiw3ICszMzYsNyBAQCBzdHJ1Y3Qg X0luc3RhbmNlRGF0YQotICAgQ29tbW9uRGF0YSAgICAgICAgIGNvbW1vbjsKLSAgIGd1aW50MTYg ICAgICAgICAgICBjbGFzc19zaXplOwotICAgZ3VpbnQxNiAgICAgICAgICAgIGNsYXNzX3ByaXZh dGVfc2l6ZTsKLS0gIGludCB2b2xhdGlsZSAgICAgICBpbml0X3N0YXRlOyAvKiBhdG9taWMgLSBn X3R5cGVfY2xhc3NfcmVmIHJlYWRzIGl0IHVubG9ja2VkICovCi0rICBpbnQgICAgICAgICAgICAg ICAgaW5pdF9zdGF0ZTsgIC8qIChhdG9taWMpIC0gZ190eXBlX2NsYXNzX3JlZiByZWFkcyBpdCB1 bmxvY2tlZCAqLwotICAgR0Jhc2VJbml0RnVuYyAgICAgIGNsYXNzX2luaXRfYmFzZTsKLSAgIEdC YXNlRmluYWxpemVGdW5jICBjbGFzc19maW5hbGl6ZV9iYXNlOwotICAgR0NsYXNzSW5pdEZ1bmMg ICAgIGNsYXNzX2luaXQ7Ci1AQCAtMTQxNSw3ICsxNDE1LDcgQEAgdHlwZV9ub2RlX2FkZF9pZmFj ZV9lbnRyeV9XIChUeXBlTm9kZSAgICpub2RlLAotIAotICAgaWYgKHBhcmVudF9lbnRyeSkKLSAg ICAgewotLSAgICAgIGlmIChub2RlLT5kYXRhICYmIG5vZGUtPmRhdGEtPmNsYXNzLmluaXRfc3Rh dGUgPj0gQkFTRV9JRkFDRV9JTklUKQotKyAgICAgIGlmIChub2RlLT5kYXRhICYmIGdfYXRvbWlj X2ludF9nZXQgKCZub2RlLT5kYXRhLT5jbGFzcy5pbml0X3N0YXRlKSA+PSBCQVNFX0lGQUNFX0lO SVQpCi0gICAgICAgICB7Ci0gICAgICAgICAgIGVudHJpZXMtPmVudHJ5W2ldLmluaXRfc3RhdGUg PSBJTklUSUFMSVpFRDsKLSAgICAgICAgICAgZW50cmllcy0+ZW50cnlbaV0udnRhYmxlID0gcGFy ZW50X2VudHJ5LT52dGFibGU7Ci1AQCAtMTQ4MSw3ICsxNDgxLDcgQEAgdHlwZV9hZGRfaW50ZXJm YWNlX1dtIChUeXBlTm9kZSAgICAgICAgICAgICAqbm9kZSwKLSAgICAqLwotICAgaWYgKG5vZGUt PmRhdGEpCi0gICAgIHsKLS0gICAgICBJbml0U3RhdGUgY2xhc3Nfc3RhdGUgPSBub2RlLT5kYXRh LT5jbGFzcy5pbml0X3N0YXRlOwotKyAgICAgIEluaXRTdGF0ZSBjbGFzc19zdGF0ZSA9IGdfYXRv bWljX2ludF9nZXQgKCZub2RlLT5kYXRhLT5jbGFzcy5pbml0X3N0YXRlKTsKLSAgICAgICAKLSAg ICAgICBpZiAoY2xhc3Nfc3RhdGUgPj0gQkFTRV9JRkFDRV9JTklUKQotICAgICAgICAgdHlwZV9p ZmFjZV92dGFibGVfYmFzZV9pbml0X1dtIChpZmFjZSwgbm9kZSk7Ci1AQCAtMjE3NSw3ICsyMTc1 LDcgQEAgdHlwZV9jbGFzc19pbml0X1dtIChUeXBlTm9kZSAgICpub2RlLAotICAgZ19hc3NlcnQg KG5vZGUtPmlzX2NsYXNzZWQgJiYgbm9kZS0+ZGF0YSAmJgotIAkgICAgbm9kZS0+ZGF0YS0+Y2xh c3MuY2xhc3Nfc2l6ZSAmJgotIAkgICAgIW5vZGUtPmRhdGEtPmNsYXNzLmNsYXNzICYmCi0tCSAg ICBub2RlLT5kYXRhLT5jbGFzcy5pbml0X3N0YXRlID09IFVOSU5JVElBTElaRUQpOwotKwkgICAg Z19hdG9taWNfaW50X2dldCAoJm5vZGUtPmRhdGEtPmNsYXNzLmluaXRfc3RhdGUpID09IFVOSU5J VElBTElaRUQpOwotICAgaWYgKG5vZGUtPmRhdGEtPmNsYXNzLmNsYXNzX3ByaXZhdGVfc2l6ZSkK LSAgICAgY2xhc3MgPSBnX21hbGxvYzAgKEFMSUdOX1NUUlVDVCAobm9kZS0+ZGF0YS0+Y2xhc3Mu Y2xhc3Nfc2l6ZSkgKyBub2RlLT5kYXRhLT5jbGFzcy5jbGFzc19wcml2YXRlX3NpemUpOwotICAg ZWxzZQotLS0gCi1HaXRMYWIKLQotCi1Gcm9tIDdkNDE3Zjg0MDZiOGZhMzJhMjU2NTkxMjA3Mzhk MjJiZTZhMWI0ODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQaGlsaXAgV2l0aG5h bGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotRGF0ZTogTW9uLCAxNiBOb3YgMjAyMCAxNzox NzoyMSArMDAwMAotU3ViamVjdDogW1BBVENIIDI4LzI5XSBncmVzb3VyY2U6IEZpeCBhIHBvaW50 ZXIgbWlzbWF0Y2ggd2l0aCBhbiBhdG9taWMgbG9hZAotCi1UaGlzIHNxdWFzaGVzIGEgd2Fybmlu ZyB3aGVuIGNvbXBpbGluZyB3aXRoIENsYW5nLgotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0 aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mub3JnPgotLS0tCi0gZ2lvL2dyZXNvdXJjZS5jIHwg MiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1k aWZmIC0tZ2l0IGEvZ2lvL2dyZXNvdXJjZS5jIGIvZ2lvL2dyZXNvdXJjZS5jCi1pbmRleCA3OWE0 OWQzM2QuLmI0OTVkMTJhYyAxMDA2NDQKLS0tLSBhL2dpby9ncmVzb3VyY2UuYwotKysrIGIvZ2lv L2dyZXNvdXJjZS5jCi1AQCAtMTM5OCw3ICsxMzk4LDcgQEAgcmVnaXN0ZXJfbGF6eV9zdGF0aWNf cmVzb3VyY2VzICh2b2lkKQotIHZvaWQKLSBnX3N0YXRpY19yZXNvdXJjZV9pbml0IChHU3RhdGlj UmVzb3VyY2UgKnN0YXRpY19yZXNvdXJjZSkKLSB7Ci0tICBncG9pbnRlciBuZXh0OwotKyAgR1N0 YXRpY1Jlc291cmNlICpuZXh0OwotIAotICAgZG8KLSAgICAgewotLS0gCi1HaXRMYWIKLQotCi1G cm9tIDgzZTQ4ZDhhYzFmZWU5ODA1OWUyMzA1ZDg5MDlkY2EyNjE5MGJkZGMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mu b3JnPgotRGF0ZTogVHVlLCAxNyBOb3YgMjAyMCAxMDoxNToxNSArMDAwMAotU3ViamVjdDogW1BB VENIIDI5LzI5XSBkb2NzOiBEb2N1bWVudCBub3QgdG8gdXNlIGB2b2xhdGlsZWAgcXVhbGlmaWVy cwotCi1TaWduZWQtb2ZmLWJ5OiBQaGlsaXAgV2l0aG5hbGwgPHB3aXRobmFsbEBlbmRsZXNzb3Mu b3JnPgotCi1GaXhlczogIzYwMAotLS0tCi0gZ2lvL2dkYnVzY29ubmVjdGlvbi5jIHwgMTIgKysr KysrKystLS0KLSBnaW8vZ2RidXNlcnJvci5jICAgICAgfCAgMyArKysKLSBnbGliL2dhdG9taWMu YyAgICAgICAgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ci0gZ2xpYi9ndGhyZWFkLmMgICAgICAgIHwgIDYgKysrKysrCi0gNCBmaWxlcyBjaGFuZ2VkLCA2 NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZ2lvL2dkYnVz Y29ubmVjdGlvbi5jIGIvZ2lvL2dkYnVzY29ubmVjdGlvbi5jCi1pbmRleCA5MWMzNjVlODAuLjY1 OTM5YTRkMiAxMDA2NDQKLS0tLSBhL2dpby9nZGJ1c2Nvbm5lY3Rpb24uYwotKysrIGIvZ2lvL2dk YnVzY29ubmVjdGlvbi5jCi1AQCAtMTcwOCw3ICsxNzA4LDkgQEAgZ19kYnVzX2Nvbm5lY3Rpb25f c2VuZF9tZXNzYWdlX3VubG9ja2VkIChHREJ1c0Nvbm5lY3Rpb24gICAqY29ubmVjdGlvbiwKLSAg KiB3aWxsIGJlIGFzc2lnbmVkIGJ5IEBjb25uZWN0aW9uIGFuZCBzZXQgb24gQG1lc3NhZ2Ugdmlh Ci0gICogZ19kYnVzX21lc3NhZ2Vfc2V0X3NlcmlhbCgpLiBJZiBAb3V0X3NlcmlhbCBpcyBub3Qg JU5VTEwsIHRoZW4gdGhlCi0gICogc2VyaWFsIG51bWJlciB1c2VkIHdpbGwgYmUgd3JpdHRlbiB0 byB0aGlzIGxvY2F0aW9uIHByaW9yIHRvCi0tICogc3VibWl0dGluZyB0aGUgbWVzc2FnZSB0byB0 aGUgdW5kZXJseWluZyB0cmFuc3BvcnQuCi0rICogc3VibWl0dGluZyB0aGUgbWVzc2FnZSB0byB0 aGUgdW5kZXJseWluZyB0cmFuc3BvcnQuIFdoaWxlIGl0IGhhcyBhIGB2b2xhdGlsZWAKLSsgKiBx dWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2FsIGFydGlmYWN0IGFuZCB0aGUgYXJndW1lbnQg cGFzc2VkIHRvIGl0IHNob3VsZAotKyAqIG5vdCBiZSBgdm9sYXRpbGVgLgotICAqCi0gICogSWYg QGNvbm5lY3Rpb24gaXMgY2xvc2VkIHRoZW4gdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aAot ICAqICVHX0lPX0VSUk9SX0NMT1NFRC4gSWYgQG1lc3NhZ2UgaXMgbm90IHdlbGwtZm9ybWVkLAot QEAgLTE5NzksNyArMTk4MSw5IEBAIGdfZGJ1c19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZV93aXRo X3JlcGx5X3VubG9ja2VkIChHREJ1c0Nvbm5lY3Rpb24gICAgICpjb25uZWN0Ci0gICogd2lsbCBi ZSBhc3NpZ25lZCBieSBAY29ubmVjdGlvbiBhbmQgc2V0IG9uIEBtZXNzYWdlIHZpYQotICAqIGdf ZGJ1c19tZXNzYWdlX3NldF9zZXJpYWwoKS4gSWYgQG91dF9zZXJpYWwgaXMgbm90ICVOVUxMLCB0 aGVuIHRoZQotICAqIHNlcmlhbCBudW1iZXIgdXNlZCB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhpcyBs b2NhdGlvbiBwcmlvciB0bwotLSAqIHN1Ym1pdHRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIHVuZGVy bHlpbmcgdHJhbnNwb3J0LgotKyAqIHN1Ym1pdHRpbmcgdGhlIG1lc3NhZ2UgdG8gdGhlIHVuZGVy bHlpbmcgdHJhbnNwb3J0LiBXaGlsZSBpdCBoYXMgYSBgdm9sYXRpbGVgCi0rICogcXVhbGlmaWVy LCB0aGlzIGlzIGEgaGlzdG9yaWNhbCBhcnRpZmFjdCBhbmQgdGhlIGFyZ3VtZW50IHBhc3NlZCB0 byBpdCBzaG91bGQKLSsgKiBub3QgYmUgYHZvbGF0aWxlYC4KLSAgKgotICAqIElmIEBjb25uZWN0 aW9uIGlzIGNsb3NlZCB0aGVuIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGgKLSAgKiAlR19J T19FUlJPUl9DTE9TRUQuIElmIEBjYW5jZWxsYWJsZSBpcyBjYW5jZWxlZCwgdGhlIG9wZXJhdGlv biB3aWxsCi1AQCAtMjEwNSw3ICsyMTA5LDkgQEAgc2VuZF9tZXNzYWdlX3dpdGhfcmVwbHlfc3lu Y19jYiAoR0RCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAotICAqIHdpbGwgYmUgYXNzaWduZWQg YnkgQGNvbm5lY3Rpb24gYW5kIHNldCBvbiBAbWVzc2FnZSB2aWEKLSAgKiBnX2RidXNfbWVzc2Fn ZV9zZXRfc2VyaWFsKCkuIElmIEBvdXRfc2VyaWFsIGlzIG5vdCAlTlVMTCwgdGhlbiB0aGUKLSAg KiBzZXJpYWwgbnVtYmVyIHVzZWQgd2lsbCBiZSB3cml0dGVuIHRvIHRoaXMgbG9jYXRpb24gcHJp b3IgdG8KLS0gKiBzdWJtaXR0aW5nIHRoZSBtZXNzYWdlIHRvIHRoZSB1bmRlcmx5aW5nIHRyYW5z cG9ydC4KLSsgKiBzdWJtaXR0aW5nIHRoZSBtZXNzYWdlIHRvIHRoZSB1bmRlcmx5aW5nIHRyYW5z cG9ydC4gV2hpbGUgaXQgaGFzIGEgYHZvbGF0aWxlYAotKyAqIHF1YWxpZmllciwgdGhpcyBpcyBh IGhpc3RvcmljYWwgYXJ0aWZhY3QgYW5kIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gaXQgc2hvdWxk Ci0rICogbm90IGJlIGB2b2xhdGlsZWAuCi0gICoKLSAgKiBJZiBAY29ubmVjdGlvbiBpcyBjbG9z ZWQgdGhlbiB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoCi0gICogJUdfSU9fRVJST1JfQ0xP U0VELiBJZiBAY2FuY2VsbGFibGUgaXMgY2FuY2VsZWQsIHRoZSBvcGVyYXRpb24gd2lsbAotZGlm ZiAtLWdpdCBhL2dpby9nZGJ1c2Vycm9yLmMgYi9naW8vZ2RidXNlcnJvci5jCi1pbmRleCBiMDNh MzNmMjcuLjRhZDk3YmI2ZSAxMDA2NDQKLS0tLSBhL2dpby9nZGJ1c2Vycm9yLmMKLSsrKyBiL2dp by9nZGJ1c2Vycm9yLmMKLUBAIC0xNzcsNiArMTc3LDkgQEAgZ19kYnVzX2Vycm9yX3F1YXJrICh2 b2lkKQotICAqCi0gICogSGVscGVyIGZ1bmN0aW9uIGZvciBhc3NvY2lhdGluZyBhICNHRXJyb3Ig ZXJyb3IgZG9tYWluIHdpdGggRC1CdXMgZXJyb3IgbmFtZXMuCi0gICoKLSsgKiBXaGlsZSBAcXVh cmtfdm9sYXRpbGUgaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3Jp Y2FsCi0rICogYXJ0aWZhY3QgYW5kIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gaXQgc2hvdWxkIG5v dCBiZSBgdm9sYXRpbGVgLgotKyAqCi0gICogU2luY2U6IDIuMjYKLSAgKi8KLSB2b2lkCi1kaWZm IC0tZ2l0IGEvZ2xpYi9nYXRvbWljLmMgYi9nbGliL2dhdG9taWMuYwotaW5kZXggNjdmNWJhNmI0 Li4wYmM2N2FhMzUgMTAwNjQ0Ci0tLS0gYS9nbGliL2dhdG9taWMuYwotKysrIGIvZ2xpYi9nYXRv bWljLmMKLUBAIC0xMDUsNiArMTA1LDkgQEAKLSAgKiBUaGlzIGNhbGwgYWN0cyBhcyBhIGZ1bGwg Y29tcGlsZXIgYW5kIGhhcmR3YXJlCi0gICogbWVtb3J5IGJhcnJpZXIgKGJlZm9yZSB0aGUgZ2V0 KS4KLSAgKgotKyAqIFdoaWxlIEBhdG9taWMgaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRo aXMgaXMgYSBoaXN0b3JpY2FsIGFydGlmYWN0IGFuZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0 byBpdCBzaG91bGQgbm90IGJlIGB2b2xhdGlsZWAuCi0rICoKLSAgKiBSZXR1cm5zOiB0aGUgdmFs dWUgb2YgdGhlIGludGVnZXIKLSAgKgotICAqIFNpbmNlOiAyLjQKLUBAIC0xMjUsNiArMTI4LDkg QEAgZ2ludAotICAqIFRoaXMgY2FsbCBhY3RzIGFzIGEgZnVsbCBjb21waWxlciBhbmQgaGFyZHdh cmUKLSAgKiBtZW1vcnkgYmFycmllciAoYWZ0ZXIgdGhlIHNldCkuCi0gICoKLSsgKiBXaGlsZSBA YXRvbWljIGhhcyBhIGB2b2xhdGlsZWAgcXVhbGlmaWVyLCB0aGlzIGlzIGEgaGlzdG9yaWNhbCBh cnRpZmFjdCBhbmQKLSsgKiB0aGUgcG9pbnRlciBwYXNzZWQgdG8gaXQgc2hvdWxkIG5vdCBiZSBg dm9sYXRpbGVgLgotKyAqCi0gICogU2luY2U6IDIuNAotICAqLwotIHZvaWQKLUBAIC0xNDQsNiAr MTUwLDkgQEAgdm9pZAotICAqCi0gICogVGhpcyBjYWxsIGFjdHMgYXMgYSBmdWxsIGNvbXBpbGVy IGFuZCBoYXJkd2FyZSBtZW1vcnkgYmFycmllci4KLSAgKgotKyAqIFdoaWxlIEBhdG9taWMgaGFz IGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2FsIGFydGlmYWN0IGFu ZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90IGJlIGB2b2xhdGlsZWAu Ci0rICoKLSAgKiBTaW5jZTogMi40Ci0gICoqLwotIHZvaWQKLUBAIC0xNjMsNiArMTcyLDkgQEAg dm9pZAotICAqCi0gICogVGhpcyBjYWxsIGFjdHMgYXMgYSBmdWxsIGNvbXBpbGVyIGFuZCBoYXJk d2FyZSBtZW1vcnkgYmFycmllci4KLSAgKgotKyAqIFdoaWxlIEBhdG9taWMgaGFzIGEgYHZvbGF0 aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2FsIGFydGlmYWN0IGFuZAotKyAqIHRo ZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90IGJlIGB2b2xhdGlsZWAuCi0rICoKLSAg KiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgcmVzdWx0YW50IHZhbHVlIGlzIHplcm8KLSAgKgotICAq IFNpbmNlOiAyLjQKLUBAIC0xODksNiArMjAxLDkgQEAgZ2Jvb2xlYW4KLSAgKgotICAqIFRoaXMg Y2FsbCBhY3RzIGFzIGEgZnVsbCBjb21waWxlciBhbmQgaGFyZHdhcmUgbWVtb3J5IGJhcnJpZXIu Ci0gICoKLSsgKiBXaGlsZSBAYXRvbWljIGhhcyBhIGB2b2xhdGlsZWAgcXVhbGlmaWVyLCB0aGlz IGlzIGEgaGlzdG9yaWNhbCBhcnRpZmFjdCBhbmQKLSsgKiB0aGUgcG9pbnRlciBwYXNzZWQgdG8g aXQgc2hvdWxkIG5vdCBiZSBgdm9sYXRpbGVgLgotKyAqCi0gICogUmV0dXJuczogJVRSVUUgaWYg dGhlIGV4Y2hhbmdlIHRvb2sgcGxhY2UKLSAgKgotICAqIFNpbmNlOiAyLjQKLUBAIC0yMTYsNiAr MjMxLDkgQEAgZ2Jvb2xlYW4KLSAgKiBCZWZvcmUgdmVyc2lvbiAyLjMwLCB0aGlzIGZ1bmN0aW9u IGRpZCBub3QgcmV0dXJuIGEgdmFsdWUKLSAgKiAoYnV0IGdfYXRvbWljX2ludF9leGNoYW5nZV9h bmRfYWRkKCkgZGlkLCBhbmQgaGFkIHRoZSBzYW1lIG1lYW5pbmcpLgotICAqCi0rICogV2hpbGUg QGF0b21pYyBoYXMgYSBgdm9sYXRpbGVgIHF1YWxpZmllciwgdGhpcyBpcyBhIGhpc3RvcmljYWwg YXJ0aWZhY3QgYW5kCi0rICogdGhlIHBvaW50ZXIgcGFzc2VkIHRvIGl0IHNob3VsZCBub3QgYmUg YHZvbGF0aWxlYC4KLSsgKgotICAqIFJldHVybnM6IHRoZSB2YWx1ZSBvZiBAYXRvbWljIGJlZm9y ZSB0aGUgYWRkLCBzaWduZWQKLSAgKgotICAqIFNpbmNlOiAyLjQKLUBAIC0yNDAsNiArMjU4LDkg QEAgZ2ludAotICAqIFRoaW5rIG9mIHRoaXMgb3BlcmF0aW9uIGFzIGFuIGF0b21pYyB2ZXJzaW9u IG9mCi0gICogYHsgdG1wID0gKmF0b21pYzsgKmF0b21pYyAmPSB2YWw7IHJldHVybiB0bXA7IH1g LgotICAqCi0rICogV2hpbGUgQGF0b21pYyBoYXMgYSBgdm9sYXRpbGVgIHF1YWxpZmllciwgdGhp cyBpcyBhIGhpc3RvcmljYWwgYXJ0aWZhY3QgYW5kCi0rICogdGhlIHBvaW50ZXIgcGFzc2VkIHRv IGl0IHNob3VsZCBub3QgYmUgYHZvbGF0aWxlYC4KLSsgKgotICAqIFJldHVybnM6IHRoZSB2YWx1 ZSBvZiBAYXRvbWljIGJlZm9yZSB0aGUgb3BlcmF0aW9uLCB1bnNpZ25lZAotICAqCi0gICogU2lu Y2U6IDIuMzAKLUBAIC0yNjQsNiArMjg1LDkgQEAgZ3VpbnQKLSAgKgotICAqIFRoaXMgY2FsbCBh Y3RzIGFzIGEgZnVsbCBjb21waWxlciBhbmQgaGFyZHdhcmUgbWVtb3J5IGJhcnJpZXIuCi0gICoK LSsgKiBXaGlsZSBAYXRvbWljIGhhcyBhIGB2b2xhdGlsZWAgcXVhbGlmaWVyLCB0aGlzIGlzIGEg aGlzdG9yaWNhbCBhcnRpZmFjdCBhbmQKLSsgKiB0aGUgcG9pbnRlciBwYXNzZWQgdG8gaXQgc2hv dWxkIG5vdCBiZSBgdm9sYXRpbGVgLgotKyAqCi0gICogUmV0dXJuczogdGhlIHZhbHVlIG9mIEBh dG9taWMgYmVmb3JlIHRoZSBvcGVyYXRpb24sIHVuc2lnbmVkCi0gICoKLSAgKiBTaW5jZTogMi4z MAotQEAgLTI4OCw2ICszMTIsOSBAQCBndWludAotICAqCi0gICogVGhpcyBjYWxsIGFjdHMgYXMg YSBmdWxsIGNvbXBpbGVyIGFuZCBoYXJkd2FyZSBtZW1vcnkgYmFycmllci4KLSAgKgotKyAqIFdo aWxlIEBhdG9taWMgaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3Jp Y2FsIGFydGlmYWN0IGFuZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90 IGJlIGB2b2xhdGlsZWAuCi0rICoKLSAgKiBSZXR1cm5zOiB0aGUgdmFsdWUgb2YgQGF0b21pYyBi ZWZvcmUgdGhlIG9wZXJhdGlvbiwgdW5zaWduZWQKLSAgKgotICAqIFNpbmNlOiAyLjMwCi1AQCAt MzA5LDYgKzMzNiw5IEBAIGd1aW50Ci0gICogVGhpcyBjYWxsIGFjdHMgYXMgYSBmdWxsIGNvbXBp bGVyIGFuZCBoYXJkd2FyZQotICAqIG1lbW9yeSBiYXJyaWVyIChiZWZvcmUgdGhlIGdldCkuCi0g ICoKLSsgKiBXaGlsZSBAYXRvbWljIGhhcyBhIGB2b2xhdGlsZWAgcXVhbGlmaWVyLCB0aGlzIGlz IGEgaGlzdG9yaWNhbCBhcnRpZmFjdCBhbmQKLSsgKiB0aGUgcG9pbnRlciBwYXNzZWQgdG8gaXQg c2hvdWxkIG5vdCBiZSBgdm9sYXRpbGVgLgotKyAqCi0gICogUmV0dXJuczogdGhlIHZhbHVlIG9m IHRoZSBwb2ludGVyCi0gICoKLSAgKiBTaW5jZTogMi40Ci1AQCAtMzI5LDYgKzM1OSw5IEBAIGdw b2ludGVyCi0gICogVGhpcyBjYWxsIGFjdHMgYXMgYSBmdWxsIGNvbXBpbGVyIGFuZCBoYXJkd2Fy ZQotICAqIG1lbW9yeSBiYXJyaWVyIChhZnRlciB0aGUgc2V0KS4KLSAgKgotKyAqIFdoaWxlIEBh dG9taWMgaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2FsIGFy dGlmYWN0IGFuZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90IGJlIGB2 b2xhdGlsZWAuCi0rICoKLSAgKiBTaW5jZTogMi40Ci0gICoqLwotIHZvaWQKLUBAIC0zNTQsNiAr Mzg3LDkgQEAgdm9pZAotICAqCi0gICogVGhpcyBjYWxsIGFjdHMgYXMgYSBmdWxsIGNvbXBpbGVy IGFuZCBoYXJkd2FyZSBtZW1vcnkgYmFycmllci4KLSAgKgotKyAqIFdoaWxlIEBhdG9taWMgaGFz IGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2FsIGFydGlmYWN0IGFu ZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90IGJlIGB2b2xhdGlsZWAu Ci0rICoKLSAgKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgZXhjaGFuZ2UgdG9vayBwbGFjZQotICAq Ci0gICogU2luY2U6IDIuNAotQEAgLTM3OSw2ICs0MTUsOSBAQCBnYm9vbGVhbgotICAqCi0gICog VGhpcyBjYWxsIGFjdHMgYXMgYSBmdWxsIGNvbXBpbGVyIGFuZCBoYXJkd2FyZSBtZW1vcnkgYmFy cmllci4KLSAgKgotKyAqIFdoaWxlIEBhdG9taWMgaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIs IHRoaXMgaXMgYSBoaXN0b3JpY2FsIGFydGlmYWN0IGFuZAotKyAqIHRoZSBwb2ludGVyIHBhc3Nl ZCB0byBpdCBzaG91bGQgbm90IGJlIGB2b2xhdGlsZWAuCi0rICoKLSAgKiBSZXR1cm5zOiB0aGUg dmFsdWUgb2YgQGF0b21pYyBiZWZvcmUgdGhlIGFkZCwgc2lnbmVkCi0gICoKLSAgKiBTaW5jZTog Mi4zMAotQEAgLTQwMyw2ICs0NDIsOSBAQCBnc3NpemUKLSAgKgotICAqIFRoaXMgY2FsbCBhY3Rz IGFzIGEgZnVsbCBjb21waWxlciBhbmQgaGFyZHdhcmUgbWVtb3J5IGJhcnJpZXIuCi0gICoKLSsg KiBXaGlsZSBAYXRvbWljIGhhcyBhIGB2b2xhdGlsZWAgcXVhbGlmaWVyLCB0aGlzIGlzIGEgaGlz dG9yaWNhbCBhcnRpZmFjdCBhbmQKLSsgKiB0aGUgcG9pbnRlciBwYXNzZWQgdG8gaXQgc2hvdWxk IG5vdCBiZSBgdm9sYXRpbGVgLgotKyAqCi0gICogUmV0dXJuczogdGhlIHZhbHVlIG9mIEBhdG9t aWMgYmVmb3JlIHRoZSBvcGVyYXRpb24sIHVuc2lnbmVkCi0gICoKLSAgKiBTaW5jZTogMi4zMAot QEAgLTQyNyw2ICs0NjksOSBAQCBnc2l6ZQotICAqCi0gICogVGhpcyBjYWxsIGFjdHMgYXMgYSBm dWxsIGNvbXBpbGVyIGFuZCBoYXJkd2FyZSBtZW1vcnkgYmFycmllci4KLSAgKgotKyAqIFdoaWxl IEBhdG9taWMgaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2Fs IGFydGlmYWN0IGFuZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90IGJl IGB2b2xhdGlsZWAuCi0rICoKLSAgKiBSZXR1cm5zOiB0aGUgdmFsdWUgb2YgQGF0b21pYyBiZWZv cmUgdGhlIG9wZXJhdGlvbiwgdW5zaWduZWQKLSAgKgotICAqIFNpbmNlOiAyLjMwCi1AQCAtNDUx LDYgKzQ5Niw5IEBAIGdzaXplCi0gICoKLSAgKiBUaGlzIGNhbGwgYWN0cyBhcyBhIGZ1bGwgY29t cGlsZXIgYW5kIGhhcmR3YXJlIG1lbW9yeSBiYXJyaWVyLgotICAqCi0rICogV2hpbGUgQGF0b21p YyBoYXMgYSBgdm9sYXRpbGVgIHF1YWxpZmllciwgdGhpcyBpcyBhIGhpc3RvcmljYWwgYXJ0aWZh Y3QgYW5kCi0rICogdGhlIHBvaW50ZXIgcGFzc2VkIHRvIGl0IHNob3VsZCBub3QgYmUgYHZvbGF0 aWxlYC4KLSsgKgotICAqIFJldHVybnM6IHRoZSB2YWx1ZSBvZiBAYXRvbWljIGJlZm9yZSB0aGUg b3BlcmF0aW9uLCB1bnNpZ25lZAotICAqCi0gICogU2luY2U6IDIuMzAKLWRpZmYgLS1naXQgYS9n bGliL2d0aHJlYWQuYyBiL2dsaWIvZ3RocmVhZC5jCi1pbmRleCA2MTJhOTczOWYuLjI5MjE2ZDdm ZCAxMDA2NDQKLS0tLSBhL2dsaWIvZ3RocmVhZC5jCi0rKysgYi9nbGliL2d0aHJlYWQuYwotQEAg LTY4Niw2ICs2ODYsOSBAQCBnX29uY2VfaW1wbCAoR09uY2UgICAgICAgKm9uY2UsCi0gICogICAv LyB1c2UgaW5pdGlhbGl6YXRpb25fdmFsdWUgaGVyZQotICAqIF18Ci0gICoKLSsgKiBXaGlsZSBA bG9jYXRpb24gaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2Fs IGFydGlmYWN0IGFuZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90IGJl IGB2b2xhdGlsZWAuCi0rICoKLSAgKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgaW5pdGlhbGl6YXRp b24gc2VjdGlvbiBzaG91bGQgYmUgZW50ZXJlZCwKLSAgKiAgICAgJUZBTFNFIGFuZCBibG9ja3Mg b3RoZXJ3aXNlCi0gICoKLUBAIC03MjUsNiArNzI4LDkgQEAgZ2Jvb2xlYW4KLSAgKiByZWxlYXNl cyBjb25jdXJyZW50IHRocmVhZHMgYmxvY2tpbmcgaW4gZ19vbmNlX2luaXRfZW50ZXIoKSBvbiB0 aGlzCi0gICogaW5pdGlhbGl6YXRpb24gdmFyaWFibGUuCi0gICoKLSsgKiBXaGlsZSBAbG9jYXRp b24gaGFzIGEgYHZvbGF0aWxlYCBxdWFsaWZpZXIsIHRoaXMgaXMgYSBoaXN0b3JpY2FsIGFydGlm YWN0IGFuZAotKyAqIHRoZSBwb2ludGVyIHBhc3NlZCB0byBpdCBzaG91bGQgbm90IGJlIGB2b2xh dGlsZWAuCi0rICoKLSAgKiBTaW5jZTogMi4xNAotICAqLwotIHZvaWQKLS0tIAotR2l0TGFiCi0K CmRpZmYgLS1naXQgYS8xNzI4LnBhdGNoIGIvMTcyOC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDYxNWJhMy4uMDAwMDAwMAotLS0gYS8xNzI4LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzIgKzAsMCBAQAotRnJvbSBjMmI4ZmE4YTM0NzY1ZDQyYmU2OWU3ZWI5YTRjNDRl ZWI5NzBmNzc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWljaGFlbCBDYXRhbnph cm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgotRGF0ZTogV2VkLCAyOCBPY3QgMjAyMCAxMDo0MTox MyAtMDUwMAotU3ViamVjdDogW1BBVENIXSBnc29ja2V0Y2xpZW50OiBmaXggY3Jhc2ggd2hlbiBh c3luYyBjb25uZWN0aW9uIHN0ZXAgZmFpbHMKLQotVGhpcyBpcyBhIHJlZ3Jlc3Npb24gZnJvbSAh MTY4Ni4gVGhlIHRtcF9lcnJvciBpcyBubyBsb25nZXIgdmFsaWQgYWZ0ZXIKLWl0IGlzICJjb25z aWRlcmVkIiBhbmQgY2Fubm90IGJlIHVzZWQgYXQgdGhpcyBwb2ludC4gV2Ugc2hvdWxkIHByaW50 IHRoZQotZXJyb3IgZWFybGllciBpbnN0ZWFkLgotCi1GaXhlcyAjMjIzMwotLS0tCi0gZ2lvL2dz b2NrZXRjbGllbnQuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2dpby9nc29ja2V0Y2xpZW50LmMgYi9naW8vZ3Nv Y2tldGNsaWVudC5jCi1pbmRleCBjZTNjMTg2ZmIuLjM3Mzc3NDY4MiAxMDA2NDQKLS0tLSBhL2dp by9nc29ja2V0Y2xpZW50LmMKLSsrKyBiL2dpby9nc29ja2V0Y2xpZW50LmMKLUBAIC0xODM3LDkg KzE4MzcsOSBAQCBnX3NvY2tldF9jbGllbnRfY29ubmVjdGVkX2NhbGxiYWNrIChHT2JqZWN0ICAg ICAgKnNvdXJjZSwKLSAgICAgewotICAgICAgIGlmICghZ19jYW5jZWxsYWJsZV9pc19jYW5jZWxs ZWQgKGF0dGVtcHQtPmNhbmNlbGxhYmxlKSkKLSAgICAgICAgIHsKLSsgICAgICAgICAgZ19kZWJ1 ZyAoIkdTb2NrZXRDbGllbnQ6IENvbm5lY3Rpb24gYXR0ZW1wdCBmYWlsZWQ6ICVzIiwgZGF0YS0+ ZXJyb3JfaW5mby0+dG1wX2Vycm9yLT5tZXNzYWdlKTsKLSAgICAgICAgICAgY2xhcmlmeV9jb25u ZWN0X2Vycm9yIChkYXRhLT5lcnJvcl9pbmZvLT50bXBfZXJyb3IsIGRhdGEtPmNvbm5lY3RhYmxl LCBhdHRlbXB0LT5hZGRyZXNzKTsKLSAgICAgICAgICAgY29uc2lkZXJfdG1wX2Vycm9yIChkYXRh LT5lcnJvcl9pbmZvLCBHX1NPQ0tFVF9DTElFTlRfQ09OTkVDVElORyk7Ci0tICAgICAgICAgIGdf ZGVidWcgKCJHU29ja2V0Q2xpZW50OiBDb25uZWN0aW9uIGF0dGVtcHQgZmFpbGVkOiAlcyIsIGRh dGEtPmVycm9yX2luZm8tPnRtcF9lcnJvci0+bWVzc2FnZSk7Ci0gICAgICAgICAgIGNvbm5lY3Rp b25fYXR0ZW1wdF9yZW1vdmUgKGF0dGVtcHQpOwotICAgICAgICAgICBjb25uZWN0aW9uX2F0dGVt cHRfdW5yZWYgKGF0dGVtcHQpOwotICAgICAgICAgICB0cnlfbmV4dF9jb25uZWN0aW9uX29yX2Zp bmlzaCAoZGF0YSwgRkFMU0UpOwotLS0gCi1HaXRMYWIKLQoKZGlmZiAtLWdpdCBhL2dsaWIyLnNw ZWMgYi9nbGliMi5zcGVjCmluZGV4IDA3OTQ5ZjQuLmRhZGE1NTkgMTAwNjQ0Ci0tLSBhL2dsaWIy LnNwZWMKKysrIGIvZ2xpYjIuc3BlYwpAQCAtMSw2ICsxLDYgQEAKIE5hbWU6IGdsaWIyCi1WZXJz aW9uOiAyLjY3LjAKLVJlbGVhc2U6IDclez9kaXN0fQorVmVyc2lvbjogMi42Ny4xCitSZWxlYXNl OiAxJXs/ZGlzdH0KIFN1bW1hcnk6IEEgbGlicmFyeSBvZiBoYW5keSB1dGlsaXR5IGZ1bmN0aW9u cwogCiBMaWNlbnNlOiBMR1BMdjIrCkBAIC0xMSwxMyArMTEsNiBAQCBTb3VyY2UwOiBodHRwOi8v ZG93bmxvYWQuZ25vbWUub3JnL3NvdXJjZXMvZ2xpYi8yLjY3L2dsaWItJXt2ZXJzaW9ufS50YXIu eHoKICMgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWIvLS9tZXJnZV9yZXF1ZXN0 cy85MDMKIFBhdGNoMDogZ251dGxzLWhtYWMucGF0Y2gKIAotIyBodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvZ2xpYi8tL21lcmdlX3JlcXVlc3RzLzE3MjgKLVBhdGNoMTogMTcyOC5wYXRj aAotCi0jIGdjYyAxMSBzdXBwb3J0OiBGaXggaW52YWxpZCB1c2Ugb2Ygdm9sYXRpbGUgb2JqZWN0 cwotIyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xpYi8tL21lcmdlX3JlcXVlc3Rz LzE3MTkKLVBhdGNoMjogMTcxOS5wYXRjaAotCiAjIEZvciBnbnV0bHMtaG1hYy5wYXRjaAogQnVp bGRSZXF1aXJlczogcGtnY29uZmlnKGdudXRscykKIApAQCAtMjQzLDYgKzIzNiw5IEBAIGdsaWIt Y29tcGlsZS1zY2hlbWFzICV7X2RhdGFkaXJ9L2dsaWItMi4wL3NjaGVtYXMgJj4gL2Rldi9udWxs IHx8IDoKICV7X2RhdGFkaXJ9L2luc3RhbGxlZC10ZXN0cwogCiAlY2hhbmdlbG9nCisqIFNhdCBE ZWMgMTkgMjAyMCBLYWxldiBMZW1iZXIgPGtsZW1iZXJAcmVkaGF0LmNvbT4gLSAyLjY3LjEtMQor LSBVcGRhdGUgdG8gMi42Ny4xCisKICogRnJpIERlYyAwNCAyMDIwIE9uZHJlaiBIb2x5IDxvaG9s eUByZWRoYXQuY29tPiAtIDIuNjcuMC03CiAtIEV4cGxpY2l0bHkgY3JlYXRlIG1vZHVsZXMgZGly IHRvIGZpeCBFTE4gYnVpbGQKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4 IDI1NGU1ZGYuLjM2ZjY5OTkgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAt MSArMSBAQAotU0hBNTEyIChnbGliLTIuNjcuMC50YXIueHopID0gODJkNTYyYmM4MDg4NWM3ZTUx NmUzOGYxN2E4ODMwNTk2YjMyYjFlMWE0YjU4NDU0Y2E1ODliZTc5ZTZhYjI3ZTBhMmZlMGExMDhj YjAyZGEyMTk4MWM3NTQ3NGFiZWQwMjYzYzBhYTM4YzcxZWFkNDVhNjhkYjY3NWExZDJmODAKK1NI QTUxMiAoZ2xpYi0yLjY3LjEudGFyLnh6KSA9IGY3YTU3NmFiNDU0NjMzZTZhZDZlYTAwMTUzYTU3 ZjJmOWQ2YmIyMGVjMmMyMDBmYWQ0M2ZlNzQzMTkyZTNiOTEyYTdkNDc3NGU4Yzk5NTk0ZTNjNTNm YTMyODUzNzQxYzMyYTdkZjZjMzk2MjI2ZWExOGM4MjJlODcyYzAwNmRjCg==