From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f712.i.mail.ru (f712.i.mail.ru [128.140.172.127]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id DD421445320 for ; Tue, 4 Aug 2020 13:04:05 +0300 (MSK) From: =?UTF-8?B?SWx5YSBLb3NhcmV2?= MIME-Version: 1.0 Date: Tue, 04 Aug 2020 13:04:04 +0300 Reply-To: =?UTF-8?B?SWx5YSBLb3NhcmV2?= Message-ID: <1596535444.410127167@f712.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--aEcAb9Da899181759e0B9484428B87e81596535444" In-Reply-To: <1596534955.779570951@f731.i.mail.ru> References: <1594649887-15890-1-git-send-email-alyapunov@tarantool.org> <1594649887-15890-2-git-send-email-alyapunov@tarantool.org> <1596534955.779570951@f731.i.mail.ru> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v2_1/3=5D_alter=3A_use_goo?= =?utf-8?q?d_c++_style?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QWxla3NhbmRyIEx5YXB1bm92?= Cc: tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org ----ALT--aEcAb9Da899181759e0B9484428B87e81596535444 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkFsc28gdGhlcmUgYXJlIDQgcGxhY2VzIHdoZXJlIHRhYnMgd2VyZSByZXBsYWNlZCBieSBzcGFj ZXMsCm1hcmtlZCB0aGVtIGJlbG93LiAKPtCS0YLQvtGA0L3QuNC6LCA0INCw0LLQs9GD0YHRgtCw IDIwMjAsIDEyOjU1ICswMzowMCDQvtGCIElseWEgS29zYXJldiA8aS5rb3NhcmV2QHRhcmFudG9v bC5vcmc+Ogo+wqAKPkhpIQo+Cj5ZZXMsIHRoaXPCoHBhdGNoIHNlZW1zIHRvIGJlIG5pY2UuCj7C oAo+U2VlIDEgY29tbWVudCBiZWxvdy4gCj4+0J/QvtC90LXQtNC10LvRjNC90LjQuiwgMTMg0LjR jtC70Y8gMjAyMCwgMTc6MTggKzAzOjAwINC+0YIgQWxla3NhbmRyIEx5YXB1bm92IDwgYWx5YXB1 bm92QHRhcmFudG9vbC5vcmcgPjoKPj7CoAo+PldlIHNob3VsZCB1c2Ugbm9leGNlcHQgd2hlcmUg aXQncyBhcHByb3ByaWF0ZS4KPj4xLkl0IGluZm9ybXMgYSBkZXZlbG9wZXIgaGUgY291bGQgbm90 IGNhcmUgYWJvdXQgZXhjZXB0aW9uIHNhZmV0eQo+PjIuSXQgaW5zdHJ1Y3RzIGEgY29tcGlsZXIg dG8gY2hlY2sgdGhyb3dzIGlmIHBvc3NpYmxlCj4+Cj4+V2Ugc2hvdWxkIG92ZXJyaWRlIGZvciBj b21waWxlLXRpbWUgY2hlY2sgb2YgbWlzcHJpbnRzIGluIG5hbWVzCj4+b2YgbWV0aG9kcyBhbmQg dHlwZXMgb2YgYXJndW1lbnRzLgo+Pgo+PlBhcnQgb2YgIzUxNTMKPj4tLS0KPj7CoHNyYy9ib3gv YWx0ZXIuY2MgfCAxODAgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PsKgMSBmaWxlIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDkwIGRl bGV0aW9ucygtKQo+Pgo+PmRpZmYgLS1naXQgYS9zcmMvYm94L2FsdGVyLmNjIGIvc3JjL2JveC9h bHRlci5jYwo+PmluZGV4IDI0OWNlZTIuLjE1YTUxZDAgMTAwNjQ0Cj4+LS0tIGEvc3JjL2JveC9h bHRlci5jYwo+PisrKyBiL3NyYy9ib3gvYWx0ZXIuY2MKPj5AQCAtNzY1LDcgKzc2NSw3IEBAIHN0 cnVjdCBhbHRlcl9zcGFjZTsKPj7CoAo+PsKgY2xhc3MgQWx0ZXJTcGFjZU9wIHsKPj7CoHB1Ymxp YzoKPj4tIEFsdGVyU3BhY2VPcChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4rIGV4cGxp Y2l0IEFsdGVyU3BhY2VPcChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj7CoAo+PsKgIC8q KiBMaW5rIGluIGFsdGVyX3NwYWNlOjpvcHMuICovCj4+wqAgc3RydWN0IHJsaXN0IGxpbms7Cj4+ QEAgLTc3NCw3ICs3NzQsNyBAQCBwdWJsaWM6Cj4+wqAgKiB0aGUgc3BhY2UgZGVmaW5pdGlvbiBh bmQvb3Iga2V5IGxpc3QgdGhhdCB3aWxsIGJlIHVzZWQKPj7CoCAqIGZvciBjcmVhdGluZyB0aGUg bmV3IHNwYWNlLiBNdXN0IG5vdCB5aWVsZCBvciBmYWlsLgo+PsKgICovCj4+LSB2aXJ0dWFsIHZv aWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8qIGFsdGVyICovKSB7fQo+Pisgdmly dHVhbCB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9l eGNlcHQge30KPj7CoCAvKioKPj7CoCAqIENhbGxlZCBhZnRlciBjcmVhdGluZyBhIG5ldyBzcGFj ZS4gVXNlZCBmb3IgcGVyZm9ybWluZwo+PsKgICogbG9uZy1sYXN0aW5nIG9wZXJhdGlvbnMsIHN1 Y2ggYXMgaW5kZXggcmVidWlsZCBvciBmb3JtYXQKPj5AQCAtNzg4LDIxICs3ODgsMjEgQEAgcHVi bGljOgo+PsKgICogc3RhdGUgdG8gdGhlIG5ldyBzcGFjZSAoZS5nLiBtb3ZlIHVuY2hhbmdlZCBp bmRleGVzKS4KPj7CoCAqIE11c3Qgbm90IHlpZWxkIG9yIGZhaWwuCj4+wqAgKi8KPj4tIHZpcnR1 YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykge30KPj4rIHZp cnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9leGNl cHQge30KPj7CoCAvKioKPj7CoCAqIENhbGxlZCBhZnRlciB0aGUgY2hhbmdlIGhhcyBiZWVuIHN1 Y2Nlc3NmdWxseSB3cml0dGVuCj4+wqAgKiB0byBXQUwuIE11c3Qgbm90IGZhaWwuCj4+wqAgKi8K Pj7CoCB2aXJ0dWFsIHZvaWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8qIGFsdGVyICov LAo+Pi0gaW50NjRfdCAvKiBzaWduYXR1cmUgKi8pIHt9Cj4+KyBpbnQ2NF90IC8qIHNpZ25hdHVy ZSAqLykgbm9leGNlcHQge30KPj7CoCAvKioKPj7CoCAqIENhbGxlZCBpbiBjYXNlIGEgV0FMIGVy cm9yIG9jY3VycmVkLiBJdCBpcyBzdXBwb3NlZCB0byB1bmRvCj4+wqAgKiB0aGUgZWZmZWN0IG9m IEFsdGVyU3BhY2VPcDo6cHJlcGFyZSBhbmQgQWx0ZXJTcGFjZU9wOjphbHRlci4KPj7CoCAqIE11 c3Qgbm90IGZhaWwuCj4+wqAgKi8KPj4tIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0 ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykge30KPj4rIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9leGNlcHQge30KPj7CoAo+Pi0gdmlydHVh bCB+QWx0ZXJTcGFjZU9wKCkge30KPj4rIHZpcnR1YWwgfkFsdGVyU3BhY2VPcCgpIG5vZXhjZXB0 IHt9Cj4+wqAKPj7CoCB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpCj4+wqAgewo+PkBA IC05ODQsNyArOTg0LDcgQEAgc3RydWN0IG1oX2kzMl90ICpBbHRlclNwYWNlTG9jazo6cmVnaXN0 cnk7Cj4+wqDCoCogUmVwbGFjZSB0aGUgb2xkIHNwYWNlIHdpdGggYSBuZXcgb25lIGluIHRoZSBz cGFjZSBjYWNoZS4KPj7CoMKgKi8KPj7CoHN0YXRpYyBpbnQKPj4tYWx0ZXJfc3BhY2VfY29tbWl0 KHN0cnVjdCB0cmlnZ2VyICp0cmlnZ2VyLCB2b2lkICpldmVudCkKPj4rYWx0ZXJfc3BhY2VfY29t bWl0KHN0cnVjdCB0cmlnZ2VyICp0cmlnZ2VyLCB2b2lkICpldmVudCkgbm9leGNlcHQKPj7CoHsK Pj7CoCBzdHJ1Y3QgdHhuICp0eG4gPSAoc3RydWN0IHR4biAqKSBldmVudDsKPj7CoCBzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyID0gKHN0cnVjdCBhbHRlcl9zcGFjZSAqKSB0cmlnZ2VyLT5kYXRh Owo+PkBAIC0xMDAyLDEyICsxMDAyLDggQEAgYWx0ZXJfc3BhY2VfY29tbWl0KHN0cnVjdCB0cmln Z2VyICp0cmlnZ2VyLCB2b2lkICpldmVudCkKPj7CoCAqIGluZGV4ZXMgaW50byB0aGVpciBuZXcg cGxhY2VzLgo+PsKgICovCj4+wqAgY2xhc3MgQWx0ZXJTcGFjZU9wICpvcDsKPj4tIHRyeSB7Cj4+ LSBybGlzdF9mb3JlYWNoX2VudHJ5KG9wLCAmYWx0ZXItPm9wcywgbGluaykKPj4tIG9wLT5jb21t aXQoYWx0ZXIsIHNpZ25hdHVyZSk7Cj4+LSB9IGNhdGNoIChFeGNlcHRpb24gKmUpIHsKPj4tIHJl dHVybiAtMTsKPj4tIH0KPj4rIHJsaXN0X2ZvcmVhY2hfZW50cnkob3AsICZhbHRlci0+b3BzLCBs aW5rKQo+Pisgb3AtPmNvbW1pdChhbHRlciwgc2lnbmF0dXJlKTsKPkkgZ3Vlc3MgdGhpcyBjaGFu Z2Ugc2hvdWxkIGJlIGluCj7Cq2FsdGVyOiBkbyBub3QgY2F0Y2ggZXhjZXB0aW9ucyB3aGVuIGl0 J3Mgbm90IG5lY2Vzc2FyecK7IGNvbW1pdC4KPj7CoAo+PsKgIGFsdGVyLT5uZXdfc3BhY2UgPSBO VUxMOyAvKiBmb3IgYWx0ZXJfc3BhY2VfZGVsZXRlKCkuICovCj4+wqAgLyoKPj5AQCAtMTAyOSw3 ICsxMDI1LDcgQEAgYWx0ZXJfc3BhY2VfY29tbWl0KHN0cnVjdCB0cmlnZ2VyICp0cmlnZ2VyLCB2 b2lkICpldmVudCkKPj7CoMKgKiBhbHRlcl9zcGFjZV9jb21taXQoKSBmYWlsdXJlICh1bmxpa2Vs eSkKPj7CoMKgKi8KPj7CoHN0YXRpYyBpbnQKPj4tYWx0ZXJfc3BhY2Vfcm9sbGJhY2soc3RydWN0 IHRyaWdnZXIgKnRyaWdnZXIsIHZvaWQgKiAvKiBldmVudCAqLykKPj4rYWx0ZXJfc3BhY2Vfcm9s bGJhY2soc3RydWN0IHRyaWdnZXIgKnRyaWdnZXIsIHZvaWQgKiAvKiBldmVudCAqLykgbm9leGNl cHQKPj7CoHsKPj7CoCBzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyID0gKHN0cnVjdCBhbHRlcl9z cGFjZSAqKSB0cmlnZ2VyLT5kYXRhOwo+PsKgIC8qIFJvbGxiYWNrIGFsdGVyIG9wcyAqLwo+PkBA IC0xMTg4LDkgKzExODQsOSBAQCBhbHRlcl9zcGFjZV9kbyhzdHJ1Y3QgdHhuX3N0bXQgKnN0bXQs IHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+wqBjbGFzcyBDaGVja1NwYWNlRm9ybWF0OiBw dWJsaWMgQWx0ZXJTcGFjZU9wCj4+wqB7Cj4+wqBwdWJsaWM6Cj4+LSBDaGVja1NwYWNlRm9ybWF0 KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+KyBleHBsaWNpdCBDaGVja1NwYWNlRm9ybWF0 KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+wqAgOkFsdGVyU3BhY2VPcChhbHRlcikge30K Pj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+Pisg dm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJyaWRlOwo+PsKgfTsK Pj7CoAo+PsKgdm9pZAo+PkBAIC0xMjIyLDE1ICsxMjE4LDE1IEBAIHB1YmxpYzoKPj7CoCAqIG5h bWVzIGludG8gYW4gb2xkIGRpY3Rpb25hcnkgYW5kIGRlbGV0ZXMgbmV3IG9uZS4KPj7CoCAqLwo+ PsKgIHN0cnVjdCB0dXBsZV9kaWN0aW9uYXJ5ICpuZXdfZGljdDsKPj4tIHZpcnR1YWwgdm9pZCBh bHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIHZvaWQgYWx0 ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIHZvaWQgcm9sbGJhY2so c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIH5Nb2RpZnlTcGFjZSgpOwo+ Pisgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3Zl cnJpZGU7Cj4+KyB2b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0 IG92ZXJyaWRlOwo+Pisgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBu b2V4Y2VwdCBvdmVycmlkZTsKPj4rIH5Nb2RpZnlTcGFjZSgpIG5vZXhjZXB0IG92ZXJyaWRlOwo+ PsKgfTsKPj7CoAo+PsKgLyoqIEFtZW5kIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBuZXcgc3BhY2Uu ICovCj4+wqB2b2lkCj4+LU1vZGlmeVNwYWNlOjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNl ICphbHRlcikKPj4rTW9kaWZ5U3BhY2U6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyKSBub2V4Y2VwdAo+PsKgewo+PsKgIC8qCj4+wqAgKiBVc2UgdGhlIG9sZCBkaWN0aW9uYXJ5 IGZvciB0aGUgbmV3IHNwYWNlLCBiZWNhdXNlCj4+QEAgLTEyNDksNyArMTI0NSw3IEBAIE1vZGlm eVNwYWNlOjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPj7CoH0KPj7CoAo+ PsKgdm9pZAo+Pi1Nb2RpZnlTcGFjZTo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikK Pj4rTW9kaWZ5U3BhY2U6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0 Cj4+wqB7Cj4+wqAgLyoKPj7CoCAqIE1vdmUgbmV3IG5hbWVzIGludG8gYW4gb2xkIGRpY3Rpb25h cnksIHdoaWNoIGFscmVhZHkgaXMKPj5AQCAtMTI2MCwxMiArMTI1NiwxMiBAQCBNb2RpZnlTcGFj ZTo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPj7CoH0KPj7CoAo+PsKgdm9pZAo+ Pi1Nb2RpZnlTcGFjZTo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPj4rTW9k aWZ5U3BhY2U6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj4+ wqB7Cj4+wqAgdHVwbGVfZGljdGlvbmFyeV9zd2FwKGFsdGVyLT5uZXdfc3BhY2UtPmRlZi0+ZGlj dCwgbmV3X2RpY3QpOwo+PsKgfQo+PsKgCj4+LU1vZGlmeVNwYWNlOjp+TW9kaWZ5U3BhY2UoKQo+ PitNb2RpZnlTcGFjZTo6fk1vZGlmeVNwYWNlKCkgbm9leGNlcHQKPj7CoHsKPj7CoCBpZiAobmV3 X2RpY3QgIT0gTlVMTCkKPj7CoCB0dXBsZV9kaWN0aW9uYXJ5X3VucmVmKG5ld19kaWN0KTsKPj5A QCAtMTI4MSw5ICsxMjc3LDkgQEAgcHVibGljOgo+PsKgIERyb3BJbmRleChzdHJ1Y3QgYWx0ZXJf c3BhY2UgKmFsdGVyLCBzdHJ1Y3QgaW5kZXggKmluZGV4KQo+PsKgIDpBbHRlclNwYWNlT3AoYWx0 ZXIpLCBvbGRfaW5kZXgoaW5kZXgpIHt9Cj4+wqAgc3RydWN0IGluZGV4ICpvbGRfaW5kZXg7Cj4+ LSB2aXJ0dWFsIHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+Pi0g dmlydHVhbCB2b2lkIHByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0 dWFsIHZvaWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKTsK Pj4rIHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92 ZXJyaWRlOwo+Pisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJy aWRlOwo+Pisgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBs c24pIG5vZXhjZXB0IG92ZXJyaWRlOwo+PsKgfTsKPj7CoAo+PsKgLyoKPj5AQCAtMTI5MSw3ICsx Mjg3LDcgQEAgcHVibGljOgo+PsKgwqAqIHRoZSBuZXcgaW5kZXggZnJvbSBpdC4KPj7CoMKgKi8K Pj7CoHZvaWQKPj4tRHJvcEluZGV4OjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICogLyog YWx0ZXIgKi8pCj4+K0Ryb3BJbmRleDo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8q IGFsdGVyICovKSBub2V4Y2VwdAo+PsKgewo+PsKgIHJsaXN0X2RlbF9lbnRyeShvbGRfaW5kZXgt PmRlZiwgbGluayk7Cj4+wqB9Cj4+QEAgLTEzMDUsNyArMTMwMSw3IEBAIERyb3BJbmRleDo6cHJl cGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+PsKgfQo+PsKgCj4+wqB2b2lkCj4+LURy b3BJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0 dXJlKQo+PitEcm9wSW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2 NF90IHNpZ25hdHVyZSkgbm9leGNlcHQKPj7CoHsKPj7CoCAodm9pZClhbHRlcjsKPj7CoCBpbmRl eF9jb21taXRfZHJvcChvbGRfaW5kZXgsIHNpZ25hdHVyZSk7Cj4+QEAgLTEzMjMsMTggKzEzMTks MTggQEAgcHVibGljOgo+PsKgIDpBbHRlclNwYWNlT3AoYWx0ZXIpLCBpaWQoaWlkX2FyZykge30K Pj7CoCAvKiogaWQgb2YgdGhlIGluZGV4IG9uIHRoZSBtb3ZlLiAqLwo+PsKgIHVpbnQzMl90IGlp ZDsKPj4tIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4t IHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4rIHZv aWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7Cj4+ KyB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJy aWRlOwo+PsKgfTsKPj7CoAo+PsKgdm9pZAo+Pi1Nb3ZlSW5kZXg6OmFsdGVyKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpCj4+K01vdmVJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcikgbm9leGNlcHQKPj7CoHsKPj7CoCBzcGFjZV9zd2FwX2luZGV4KGFsdGVyLT5vbGRfc3Bh Y2UsIGFsdGVyLT5uZXdfc3BhY2UsIGlpZCwgaWlkKTsKPj7CoH0KPj7CoAo+PsKgdm9pZAo+Pi1N b3ZlSW5kZXg6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+K01vdmVJbmRl eDo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQKPj7CoHsKPj7C oCBzcGFjZV9zd2FwX2luZGV4KGFsdGVyLT5vbGRfc3BhY2UsIGFsdGVyLT5uZXdfc3BhY2UsIGlp ZCwgaWlkKTsKPj7CoH0KPj5AQCAtMTM2NSwyMyArMTM2MSwyMyBAQCBwdWJsaWM6Cj4+wqAgc3Ry dWN0IGluZGV4ICpvbGRfaW5kZXg7Cj4+wqAgc3RydWN0IGluZGV4ICpuZXdfaW5kZXg7Cj4+wqAg c3RydWN0IGluZGV4X2RlZiAqbmV3X2luZGV4X2RlZjsKPj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9k ZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIHZvaWQgYWx0ZXIoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIHZvaWQgY29tbWl0KHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKTsKPj4tIHZpcnR1YWwgdm9pZCByb2xsYmFj ayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4tIHZpcnR1YWwgfk1vZGlmeUluZGV4KCk7 Cj4+KyB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBv dmVycmlkZTsKPj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNl cHQgb3ZlcnJpZGU7Cj4+KyB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBp bnQ2NF90IGxzbikgbm9leGNlcHQgb3ZlcnJpZGU7Cj4+KyB2b2lkIHJvbGxiYWNrKHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOwo+Pisgfk1vZGlmeUluZGV4KCkg bm9leGNlcHQgb3ZlcnJpZGU7Cj4+wqB9Owo+PsKgCj4+wqAvKiogVXBkYXRlIHRoZSBkZWZpbml0 aW9uIG9mIHRoZSBuZXcgc3BhY2UgKi8KPj7CoHZvaWQKPj4tTW9kaWZ5SW5kZXg6OmFsdGVyX2Rl ZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+PitNb2RpZnlJbmRleDo6YWx0ZXJfZGVmKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj4+wqB7Cj4+wqAgcmxpc3RfZGVsX2Vu dHJ5KG9sZF9pbmRleC0+ZGVmLCBsaW5rKTsKPj7CoCBpbmRleF9kZWZfbGlzdF9hZGQoJmFsdGVy LT5rZXlfbGlzdCwgbmV3X2luZGV4X2RlZik7Cj4+wqB9Cj4+wqAKPj7CoHZvaWQKPj4tTW9kaWZ5 SW5kZXg6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+K01vZGlmeUluZGV4Ojph bHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+PsKgewo+PsKgIG5ld19p bmRleCA9IHNwYWNlX2luZGV4KGFsdGVyLT5uZXdfc3BhY2UsIG5ld19pbmRleF9kZWYtPmlpZCk7 Cj4+wqAgYXNzZXJ0KG9sZF9pbmRleC0+ZGVmLT5paWQgPT0gbmV3X2luZGV4LT5kZWYtPmlpZCk7 Cj4+QEAgLTEzOTcsMTQgKzEzOTMsMTQgQEAgTW9kaWZ5SW5kZXg6OmFsdGVyKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpCj4+wqB9Cj4+wqAKPj7CoHZvaWQKPj4tTW9kaWZ5SW5kZXg6OmNvbW1p dChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkKPj4rTW9kaWZ5 SW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVy ZSkgbm9leGNlcHQKPj7CoHsKPj7CoCAodm9pZClhbHRlcjsKPj7CoCBpbmRleF9jb21taXRfbW9k aWZ5KG5ld19pbmRleCwgc2lnbmF0dXJlKTsKPj7CoH0KPj7CoAo+PsKgdm9pZAo+Pi1Nb2RpZnlJ bmRleDo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPj4rTW9kaWZ5SW5kZXg6 OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj4+wqB7Cj4+wqAg LyoKPj7CoCAqIFJlc3RvcmUgaW5kZXhlcy4KPj5AQCAtMTQxNiw3ICsxNDEyLDcgQEAgTW9kaWZ5 SW5kZXg6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+wqAgaW5kZXhfdXBk YXRlX2RlZihvbGRfaW5kZXgpOwo+PsKgfQo+PsKgCj4+LU1vZGlmeUluZGV4Ojp+TW9kaWZ5SW5k ZXgoKQo+PitNb2RpZnlJbmRleDo6fk1vZGlmeUluZGV4KCkgbm9leGNlcHQKPj7CoHsKPj7CoCBp bmRleF9kZWZfZGVsZXRlKG5ld19pbmRleF9kZWYpOwo+PsKgfQo+PkBAIC0xNDMyLDE1ICsxNDI4 LDE1IEBAIHB1YmxpYzoKPj7CoCBDcmVhdGVJbmRleChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy LCBzdHJ1Y3QgaW5kZXhfZGVmICpkZWYpCj4+wqAgOkFsdGVyU3BhY2VPcChhbHRlciksIG5ld19p bmRleChOVUxMKSwgbmV3X2luZGV4X2RlZihkZWYpCj4+wqAge30KPj4tIHZpcnR1YWwgdm9pZCBh bHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIHZvaWQgcHJl cGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4tIHZpcnR1YWwgdm9pZCBjb21taXQo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBsc24pOwo+Pi0gdmlydHVhbCB+Q3Jl YXRlSW5kZXgoKTsKPj4rIHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp IG5vZXhjZXB0IG92ZXJyaWRlOwo+Pisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIpIG92ZXJyaWRlOwo+Pisgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRl ciwgaW50NjRfdCBsc24pIG5vZXhjZXB0IG92ZXJyaWRlOwo+PisgfkNyZWF0ZUluZGV4KCkgbm9l eGNlcHQgb3ZlcnJpZGU7Cj4+wqB9Owo+PsKgCj4+wqAvKiogQWRkIGRlZmluaXRpb24gb2YgdGhl IG5ldyBrZXkgdG8gdGhlIG5ldyBzcGFjZSBkZWYuICovCj4+wqB2b2lkCj4+LUNyZWF0ZUluZGV4 OjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPj4rQ3JlYXRlSW5kZXg6OmFs dGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+PsKgewo+PsKgIGlu ZGV4X2RlZl9saXN0X2FkZCgmYWx0ZXItPmtleV9saXN0LCBuZXdfaW5kZXhfZGVmKTsKPj7CoH0K Pj5AQCAtMTQ4MCw3ICsxNDc2LDcgQEAgQ3JlYXRlSW5kZXg6OnByZXBhcmUoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcikKPj7CoH0KPj7CoAo+PsKgdm9pZAo+Pi1DcmVhdGVJbmRleDo6Y29tbWl0 KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+PitDcmVhdGVJ bmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJl KSBub2V4Y2VwdAo+PsKgewo+PsKgICh2b2lkKSBhbHRlcjsKPj7CoCBhc3NlcnQobmV3X2luZGV4 ICE9IE5VTEwpOwo+PkBAIC0xNDg4LDcgKzE0ODQsNyBAQCBDcmVhdGVJbmRleDo6Y29tbWl0KHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+PsKgIG5ld19pbmRl eCA9IE5VTEw7Cj4+wqB9Cj4+wqAKPj4tQ3JlYXRlSW5kZXg6On5DcmVhdGVJbmRleCgpCj4+K0Ny ZWF0ZUluZGV4Ojp+Q3JlYXRlSW5kZXgoKSBub2V4Y2VwdAo+PsKgewo+PsKgIGlmIChuZXdfaW5k ZXggIT0gTlVMTCkKPj7CoCBpbmRleF9hYm9ydF9jcmVhdGUobmV3X2luZGV4KTsKPj5AQCAtMTUy MSwxNSArMTUxNywxNSBAQCBwdWJsaWM6Cj4+wqAgc3RydWN0IGluZGV4X2RlZiAqbmV3X2luZGV4 X2RlZjsKPj7CoCAvKiogT2xkIGluZGV4IGluZGV4X2RlZi4gKi8KPj7CoCBzdHJ1Y3QgaW5kZXhf ZGVmICpvbGRfaW5kZXhfZGVmOwo+Pi0gdmlydHVhbCB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0 ZXJfc3BhY2UgKmFsdGVyKTsKPj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpOwo+Pi0gdmlydHVhbCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk7Cj4+LSB2aXJ0dWFsIH5SZWJ1aWxkSW5kZXgoKTsK Pj4rIHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92 ZXJyaWRlOwo+Pisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJy aWRlOwo+Pisgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBz aWduYXR1cmUpIG5vZXhjZXB0IG92ZXJyaWRlOwo+PisgflJlYnVpbGRJbmRleCgpIG5vZXhjZXB0 IG92ZXJyaWRlOwo+PsKgfTsKPj7CoAo+PsKgLyoqIEFkZCBkZWZpbml0aW9uIG9mIHRoZSBuZXcg a2V5IHRvIHRoZSBuZXcgc3BhY2UgZGVmLiAqLwo+PsKgdm9pZAo+Pi1SZWJ1aWxkSW5kZXg6OmFs dGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+PitSZWJ1aWxkSW5kZXg6OmFsdGVy X2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+PsKgewo+PsKgIHJsaXN0 X2RlbF9lbnRyeShvbGRfaW5kZXhfZGVmLCBsaW5rKTsKPj7CoCBpbmRleF9kZWZfbGlzdF9hZGQo JmFsdGVyLT5rZXlfbGlzdCwgbmV3X2luZGV4X2RlZik7Cj4+QEAgLTE1NDUsNyArMTU0MSw3IEBA IFJlYnVpbGRJbmRleDo6cHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+PsKgfQo+ PsKgCj4+wqB2b2lkCj4+LVJlYnVpbGRJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+PitSZWJ1aWxkSW5kZXg6OmNvbW1pdChzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNlcHQKPj7CoHsKPj7C oCBzdHJ1Y3QgaW5kZXggKm9sZF9pbmRleCA9IHNwYWNlX2luZGV4KGFsdGVyLT5vbGRfc3BhY2Us Cj4+wqAgb2xkX2luZGV4X2RlZi0+aWlkKTsKPj5AQCAtMTU1Niw3ICsxNTUyLDcgQEAgUmVidWls ZEluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1 cmUpCj4+wqAgbmV3X2luZGV4ID0gTlVMTDsKPj7CoH0KPj7CoAo+Pi1SZWJ1aWxkSW5kZXg6On5S ZWJ1aWxkSW5kZXgoKQo+PitSZWJ1aWxkSW5kZXg6On5SZWJ1aWxkSW5kZXgoKSBub2V4Y2VwdAo+ PsKgewo+PsKgIGlmIChuZXdfaW5kZXggIT0gTlVMTCkKPj7CoCBpbmRleF9hYm9ydF9jcmVhdGUo bmV3X2luZGV4KTsKPj5AQCAtMTYwMCw5ICsxNTk2LDEwIEBAIHB1YmxpYzoKPj7CoCBUcnVuY2F0 ZUluZGV4KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIHVpbnQzMl90IGlpZCkKPj7CoCA6IEFs dGVyU3BhY2VPcChhbHRlciksIGlpZChpaWQpLAo+PsKgIG9sZF9pbmRleChOVUxMKSwgbmV3X2lu ZGV4KE5VTEwpIHt9Cj4+LSB2aXJ0dWFsIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyKTsKPj4tIHZpcnR1YWwgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRl ciwgaW50NjRfdCBzaWduYXR1cmUpOwo+Pi0gdmlydHVhbCB+VHJ1bmNhdGVJbmRleCgpOwo+Pisg dm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJyaWRlOwo+Pisgdm9p ZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwKPj4rIGludDY0X3Qgc2lnbmF0dXJl KSBub2V4Y2VwdCBvdmVycmlkZTsKKiAgCkhlcmUgb24gYSBuZXcgbGluZS4KPj4rIH5UcnVuY2F0 ZUluZGV4KCkgbm9leGNlcHQgb3ZlcnJpZGU7Cj4+wqB9Owo+PsKgCj4+wqB2b2lkCj4+QEAgLTE2 MzIsNyArMTYyOSw3IEBAIFRydW5jYXRlSW5kZXg6OnByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNl ICphbHRlcikKPj7CoH0KPj7CoAo+PsKgdm9pZAo+Pi1UcnVuY2F0ZUluZGV4Ojpjb21taXQoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpCj4+K1RydW5jYXRlSW5k ZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkg bm9leGNlcHQKPj7CoHsKPj7CoCAodm9pZClhbHRlcjsKPj7CoCBpbmRleF9jb21taXRfZHJvcChv bGRfaW5kZXgsIHNpZ25hdHVyZSk7Cj4+QEAgLTE2NDAsNyArMTYzNyw3IEBAIFRydW5jYXRlSW5k ZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkK Pj7CoCBuZXdfaW5kZXggPSBOVUxMOwo+PsKgfQo+PsKgCj4+LVRydW5jYXRlSW5kZXg6On5UcnVu Y2F0ZUluZGV4KCkKPj4rVHJ1bmNhdGVJbmRleDo6flRydW5jYXRlSW5kZXgoKSBub2V4Y2VwdAo+ PsKgewo+PsKgIGlmIChuZXdfaW5kZXggPT0gTlVMTCkKPj7CoCByZXR1cm47Cj4+QEAgLTE2NTcs MTEgKzE2NTQsMTEgQEAgY2xhc3MgVXBkYXRlU2NoZW1hVmVyc2lvbjogcHVibGljIEFsdGVyU3Bh Y2VPcAo+PsKgcHVibGljOgo+PsKgIFVwZGF0ZVNjaGVtYVZlcnNpb24oc3RydWN0IGFsdGVyX3Nw YWNlICogYWx0ZXIpCj4+wqAgOkFsdGVyU3BhY2VPcChhbHRlcikge30KPj4tIHZpcnR1YWwgdm9p ZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4rIHZvaWQgYWx0ZXIoc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7Cj4+wqB9Owo+PsKgCj4+wqB2 b2lkCj4+LVVwZGF0ZVNjaGVtYVZlcnNpb246OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpCj4+K1VwZGF0ZVNjaGVtYVZlcnNpb246OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpIG5vZXhjZXB0Cj4+wqB7Cj4+wqDCoMKgwqDCoCh2b2lkKWFsdGVyOwo+PsKgwqDCoMKgwqAr K3NjaGVtYV92ZXJzaW9uOwo+PkBAIC0xNjg0LDEwICsxNjgxLDEwIEBAIHB1YmxpYzoKPj7CoCBS ZWJ1aWxkQ2tDb25zdHJhaW50cyhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSA6IEFsdGVyU3Bh Y2VPcChhbHRlciksCj4+wqAgY2tfY29uc3RyYWludChSTElTVF9IRUFEX0lOSVRJQUxJWkVSKGNr X2NvbnN0cmFpbnQpKSB7fQo+PsKgIHN0cnVjdCBybGlzdCBja19jb25zdHJhaW50Owo+Pi0gdmly dHVhbCB2b2lkIHByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFs IHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIHZvaWQg cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7Cj4+LSB2aXJ0dWFsIH5SZWJ1aWxk Q2tDb25zdHJhaW50cygpOwo+Pisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpIG92ZXJyaWRlOwo+Pisgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBu b2V4Y2VwdCBvdmVycmlkZTsKPj4rIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7Cj4+KyB+UmVidWlsZENrQ29uc3RyYWludHMoKSBub2V4 Y2VwdCBvdmVycmlkZTsKPj7CoH07Cj4+wqAKPj7CoHZvaWQKPj5AQCAtMTcxNiwxOCArMTcxMywx OCBAQCBSZWJ1aWxkQ2tDb25zdHJhaW50czo6c3BhY2Vfc3dhcF9ja19jb25zdHJhaW50KHN0cnVj dCBzcGFjZSAqb2xkX3NwYWNlLAo+PsKgfQo+PsKgCj4+wqB2b2lkCj4+LVJlYnVpbGRDa0NvbnN0 cmFpbnRzOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+PitSZWJ1aWxkQ2tDb25z dHJhaW50czo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQKPj7CoHsK Pj7CoCBzcGFjZV9zd2FwX2NrX2NvbnN0cmFpbnQoYWx0ZXItPm9sZF9zcGFjZSwgYWx0ZXItPm5l d19zcGFjZSk7Cj4+wqB9Cj4+wqAKPj7CoHZvaWQKPj4tUmVidWlsZENrQ29uc3RyYWludHM6OnJv bGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+K1JlYnVpbGRDa0NvbnN0cmFpbnRz Ojpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdAo+PsKgewo+PsKg IHNwYWNlX3N3YXBfY2tfY29uc3RyYWludChhbHRlci0+bmV3X3NwYWNlLCBhbHRlci0+b2xkX3Nw YWNlKTsKPj7CoH0KPj7CoAo+Pi1SZWJ1aWxkQ2tDb25zdHJhaW50czo6flJlYnVpbGRDa0NvbnN0 cmFpbnRzKCkKPj4rUmVidWlsZENrQ29uc3RyYWludHM6On5SZWJ1aWxkQ2tDb25zdHJhaW50cygp IG5vZXhjZXB0Cj4+wqB7Cj4+wqAgc3RydWN0IGNrX2NvbnN0cmFpbnQgKm9sZF9ja19jb25zdHJh aW50LCAqdG1wOwo+PsKgIHJsaXN0X2ZvcmVhY2hfZW50cnlfc2FmZShvbGRfY2tfY29uc3RyYWlu dCwgJmNrX2NvbnN0cmFpbnQsIGxpbmssIHRtcCkgewo+PkBAIC0xNzU0LDggKzE3NTEsOCBAQCBj bGFzcyBNb3ZlQ2tDb25zdHJhaW50czogcHVibGljIEFsdGVyU3BhY2VPcAo+PsKgIHN0cnVjdCBz cGFjZSAqbmV3X3NwYWNlKTsKPj7CoHB1YmxpYzoKPj7CoCBNb3ZlQ2tDb25zdHJhaW50cyhzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSA6IEFsdGVyU3BhY2VPcChhbHRlcikge30KPj4tIHZpcnR1 YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4tIHZpcnR1YWwgdm9p ZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsKPj4rIHZvaWQgYWx0ZXIoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7Cj4+KyB2b2lkIHJvbGxi YWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOwo+PsKgfTsK Pj7CoAo+PsKgdm9pZAo+PkBAIC0xNzY5LDEzICsxNzY2LDEzIEBAIE1vdmVDa0NvbnN0cmFpbnRz OjpzcGFjZV9zd2FwX2NrX2NvbnN0cmFpbnQoc3RydWN0IHNwYWNlICpvbGRfc3BhY2UsCj4+wqB9 Cj4+wqAKPj7CoHZvaWQKPj4tTW92ZUNrQ29uc3RyYWludHM6OmFsdGVyKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpCj4+K01vdmVDa0NvbnN0cmFpbnRzOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyKSBub2V4Y2VwdAo+PsKgewo+PsKgIHNwYWNlX3N3YXBfY2tfY29uc3RyYWludChh bHRlci0+b2xkX3NwYWNlLCBhbHRlci0+bmV3X3NwYWNlKTsKPj7CoH0KPj7CoAo+PsKgdm9pZAo+ Pi1Nb3ZlQ2tDb25zdHJhaW50czo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikK Pj4rTW92ZUNrQ29uc3RyYWludHM6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp IG5vZXhjZXB0Cj4+wqB7Cj4+wqAgc3BhY2Vfc3dhcF9ja19jb25zdHJhaW50KGFsdGVyLT5uZXdf c3BhY2UsIGFsdGVyLT5vbGRfc3BhY2UpOwo+PsKgfQo+PkBAIC0xODM0LDExICsxODMxLDEyIEBA IHB1YmxpYzoKPj7CoCBpZiAobmV3X2lkID09IE5VTEwpCj4+wqAgZGlhZ19yYWlzZSgpOwo+PsKg IH0KPj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+ Pi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+Pi0gdmly dHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOwo+Pi0gdmlydHVh bCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVy ZSk7Cj4+LSB2aXJ0dWFsIH5DcmVhdGVDb25zdHJhaW50SUQoKTsKPj4rIHZvaWQgcHJlcGFyZShz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBvdmVycmlkZTsKPj4rIHZvaWQgYWx0ZXIoc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7Cj4+KyB2b2lkIHJvbGxiYWNr KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOwo+Pisgdm9pZCBj b21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwKPj4rIGludDY0X3Qgc2lnbmF0dXJlKSBu b2V4Y2VwdCBvdmVycmlkZTsKKiAgCkhlcmUgb24gYSBuZXcgbGluZS4KPj4rIH5DcmVhdGVDb25z dHJhaW50SUQoKSBub2V4Y2VwdCBvdmVycmlkZTsKPj7CoH07Cj4+wqAKPj7CoHZvaWQKPj5AQCAt MTg1MCw3ICsxODQ4LDcgQEAgQ3JlYXRlQ29uc3RyYWludElEOjpwcmVwYXJlKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpCj4+wqB9Cj4+wqAKPj7CoHZvaWQKPj4tQ3JlYXRlQ29uc3RyYWludElE OjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+PitDcmVhdGVDb25zdHJhaW50SUQ6 OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0Cj4+wqB7Cj4+wqAgLyog QWx0ZXIoKSBjYW4ndCBmYWlsLCBzbyBjYW4ndCBqdXN0IHRocm93IGFuIGVycm9yLiAqLwo+PsKg IGlmIChzcGFjZV9hZGRfY29uc3RyYWludF9pZChhbHRlci0+b2xkX3NwYWNlLCBuZXdfaWQpICE9 IDApCj4+QEAgLTE4NTgsMTQgKzE4NTYsMTUgQEAgQ3JlYXRlQ29uc3RyYWludElEOjphbHRlcihz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKQo+PsKgfQo+PsKgCj4+wqB2b2lkCj4+LUNyZWF0ZUNv bnN0cmFpbnRJRDo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPj4rQ3JlYXRl Q29uc3RyYWludElEOjpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2Vw dAo+PsKgewo+PsKgIHNwYWNlX2RlbGV0ZV9jb25zdHJhaW50X2lkKGFsdGVyLT5uZXdfc3BhY2Us IG5ld19pZC0+bmFtZSk7Cj4+wqAgbmV3X2lkID0gTlVMTDsKPj7CoH0KPj7CoAo+PsKgdm9pZAo+ Pi1DcmVhdGVDb25zdHJhaW50SUQ6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBp bnQ2NF90IHNpZ25hdHVyZSkKPj4rQ3JlYXRlQ29uc3RyYWludElEOjpjb21taXQoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlciwKPj4rIGludDY0X3Qgc2lnbmF0dXJlKSBub2V4Y2VwdAoqICAKSGVy ZSBvbiBhIG5ldyBsaW5lLgo+PsKgewo+PsKgICh2b2lkKSBhbHRlcjsKPj7CoCAodm9pZCkgc2ln bmF0dXJlOwo+PkBAIC0xODc2LDcgKzE4NzUsNyBAQCBDcmVhdGVDb25zdHJhaW50SUQ6OmNvbW1p dChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkKPj7CoCBuZXdf aWQgPSBOVUxMOwo+PsKgfQo+PsKgCj4+LUNyZWF0ZUNvbnN0cmFpbnRJRDo6fkNyZWF0ZUNvbnN0 cmFpbnRJRCgpCj4+K0NyZWF0ZUNvbnN0cmFpbnRJRDo6fkNyZWF0ZUNvbnN0cmFpbnRJRCgpIG5v ZXhjZXB0Cj4+wqB7Cj4+wqAgaWYgKG5ld19pZCAhPSBOVUxMKQo+PsKgIGNvbnN0cmFpbnRfaWRf ZGVsZXRlKG5ld19pZCk7Cj4+QEAgLTE4OTEsMTkgKzE4OTAsMjAgQEAgcHVibGljOgo+PsKgIERy b3BDb25zdHJhaW50SUQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgY29uc3QgY2hhciAqbmFt ZSkKPj7CoCA6QWx0ZXJTcGFjZU9wKGFsdGVyKSwgb2xkX2lkKE5VTEwpLCBuYW1lKG5hbWUpCj4+ wqAge30KPj4tIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTsK Pj4tIHZpcnR1YWwgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciAsIGludDY0 X3Qgc2lnbmF0dXJlKTsKPj4tIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyKTsKPj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9l eGNlcHQgb3ZlcnJpZGU7Cj4+KyB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy LAo+PisgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0IG92ZXJyaWRlOwoqICAKSGVyZSBvbiBh IG5ldyBsaW5lLgo+Pisgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBu b2V4Y2VwdCBvdmVycmlkZTsKPj7CoH07Cj4+wqAKPj7CoHZvaWQKPj4tRHJvcENvbnN0cmFpbnRJ RDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikKPj4rRHJvcENvbnN0cmFpbnRJRDo6 YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQKPj7CoHsKPj7CoCBvbGRf aWQgPSBzcGFjZV9wb3BfY29uc3RyYWludF9pZChhbHRlci0+b2xkX3NwYWNlLCBuYW1lKTsKPj7C oH0KPj7CoAo+PsKgdm9pZAo+Pi1Ecm9wQ29uc3RyYWludElEOjpjb21taXQoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpCj4+K0Ryb3BDb25zdHJhaW50SUQ6OmNv bW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSkgbm9leGNl cHQKPj7CoHsKPj7CoCAodm9pZCkgYWx0ZXI7Cj4+wqAgKHZvaWQpIHNpZ25hdHVyZTsKPj5AQCAt MTkxMSw3ICsxOTExLDcgQEAgRHJvcENvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKQo+PsKgfQo+PsKgCj4+wqB2b2lkCj4+LURy b3BDb25zdHJhaW50SUQ6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpCj4+K0Ry b3BDb25zdHJhaW50SUQ6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhj ZXB0Cj4+wqB7Cj4+wqAgaWYgKHNwYWNlX2FkZF9jb25zdHJhaW50X2lkKGFsdGVyLT5uZXdfc3Bh Y2UsIG9sZF9pZCkgIT0gMCkgewo+PsKgIHBhbmljKCJDYW4ndCByZWNvdmVyIGFmdGVyIGNvbnN0 cmFpbnQgZHJvcCByb2xsYmFjayAob3V0IG9mICIKPj4tLQo+PjIuNy40Cj4+wqAgCj7CoAo+wqAK Pi0tCj5JbHlhIEtvc2FyZXYKPsKgIArCoArCoAotLQpJbHlhIEtvc2FyZXYKwqA= ----ALT--aEcAb9Da899181759e0B9484428B87e81596535444 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+PGRpdj5BbHNvIHRoZXJlIGFyZSA0IHBsYWNlcyB3aGVyZSB0YWJz IHdlcmUgcmVwbGFjZWQgYnkgc3BhY2VzLDwvZGl2PjxkaXY+bWFya2VkIHRoZW0gYmVsb3cuPC9k aXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJn aW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+0JLRgtC+0YDQvdC40LosIDQg0LDQstCz0YPR gdGC0LAgMjAyMCwgMTI6NTUgKzAzOjAwINC+0YIgSWx5YSBLb3NhcmV2ICZsdDtpLmtvc2FyZXZA dGFyYW50b29sLm9yZyZndDs6PGJyPiZuYnNwOzxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVs cGVyIGpzLXJlYWRtc2ctbXNnIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PGRpdj48 ZGl2IGlkPSJzdHlsZV8xNTk2NTM0OTU2MDAzOTE1NDA4MF9CT0RZIj48ZGl2IGNsYXNzPSJjbF81 NDI3OTgiPjxkaXY+PGRpdj5IaSE8YnI+PGJyPlllcywgdGhpcyZuYnNwO3BhdGNoIHNlZW1zIHRv IGJlIG5pY2UuPC9kaXY+PGRpdj4mbmJzcDs8L2Rpdj48ZGl2PlNlZSAxIGNvbW1lbnQgYmVsb3cu PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21h cmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPtCf0L7QvdC10LTQtdC70YzQvdC40LosIDEz INC40Y7Qu9GPIDIwMjAsIDE3OjE4ICswMzowMCDQvtGCIEFsZWtzYW5kciBMeWFwdW5vdiAmbHQ7 PGEgaHJlZj0iL2NvbXBvc2U/VG89YWx5YXB1bm92QHRhcmFudG9vbC5vcmciPmFseWFwdW5vdkB0 YXJhbnRvb2wub3JnPC9hPiZndDs6PGJyPiZuYnNwOzxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMt aGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48c3R5bGUgdHlw ZT0idGV4dC9jc3MiPjwvc3R5bGU+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTk0NjQ5OTIyMTk4MDEw Mzg2M19CT0RZX21yX2Nzc19hdHRyIj5XZSBzaG91bGQgdXNlIG5vZXhjZXB0IHdoZXJlIGl0J3Mg YXBwcm9wcmlhdGUuPGJyPjEuSXQgaW5mb3JtcyBhIGRldmVsb3BlciBoZSBjb3VsZCBub3QgY2Fy ZSBhYm91dCBleGNlcHRpb24gc2FmZXR5PGJyPjIuSXQgaW5zdHJ1Y3RzIGEgY29tcGlsZXIgdG8g Y2hlY2sgdGhyb3dzIGlmIHBvc3NpYmxlPGJyPjxicj5XZSBzaG91bGQgb3ZlcnJpZGUgZm9yIGNv bXBpbGUtdGltZSBjaGVjayBvZiBtaXNwcmludHMgaW4gbmFtZXM8YnI+b2YgbWV0aG9kcyBhbmQg dHlwZXMgb2YgYXJndW1lbnRzLjxicj48YnI+UGFydCBvZiAjNTE1Mzxicj4tLS08YnI+Jm5ic3A7 c3JjL2JveC9hbHRlci5jYyB8IDE4MCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPiZuYnNwOzEgZmlsZSBjaGFuZ2VkLCA5MCBpbnNlcnRp b25zKCspLCA5MCBkZWxldGlvbnMoLSk8YnI+PGJyPmRpZmYgLS1naXQgYS9zcmMvYm94L2FsdGVy LmNjIGIvc3JjL2JveC9hbHRlci5jYzxicj5pbmRleCAyNDljZWUyLi4xNWE1MWQwIDEwMDY0NDxi cj4tLS0gYS9zcmMvYm94L2FsdGVyLmNjPGJyPisrKyBiL3NyYy9ib3gvYWx0ZXIuY2M8YnI+QEAg LTc2NSw3ICs3NjUsNyBAQCBzdHJ1Y3QgYWx0ZXJfc3BhY2U7PGJyPiZuYnNwOzxicj4mbmJzcDtj bGFzcyBBbHRlclNwYWNlT3Agezxicj4mbmJzcDtwdWJsaWM6PGJyPi0gQWx0ZXJTcGFjZU9wKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4rIGV4cGxpY2l0IEFsdGVyU3BhY2VPcChzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAvKiogTGluayBpbiBh bHRlcl9zcGFjZTo6b3BzLiAqLzxicj4mbmJzcDsgc3RydWN0IHJsaXN0IGxpbms7PGJyPkBAIC03 NzQsNyArNzc0LDcgQEAgcHVibGljOjxicj4mbmJzcDsgKiB0aGUgc3BhY2UgZGVmaW5pdGlvbiBh bmQvb3Iga2V5IGxpc3QgdGhhdCB3aWxsIGJlIHVzZWQ8YnI+Jm5ic3A7ICogZm9yIGNyZWF0aW5n IHRoZSBuZXcgc3BhY2UuIE11c3Qgbm90IHlpZWxkIG9yIGZhaWwuPGJyPiZuYnNwOyAqLzxicj4t IHZpcnR1YWwgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICogLyogYWx0ZXIgKi8p IHt9PGJyPisgdmlydHVhbCB2b2lkIGFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBh bHRlciAqLykgbm9leGNlcHQge308YnI+Jm5ic3A7IC8qKjxicj4mbmJzcDsgKiBDYWxsZWQgYWZ0 ZXIgY3JlYXRpbmcgYSBuZXcgc3BhY2UuIFVzZWQgZm9yIHBlcmZvcm1pbmc8YnI+Jm5ic3A7ICog bG9uZy1sYXN0aW5nIG9wZXJhdGlvbnMsIHN1Y2ggYXMgaW5kZXggcmVidWlsZCBvciBmb3JtYXQ8 YnI+QEAgLTc4OCwyMSArNzg4LDIxIEBAIHB1YmxpYzo8YnI+Jm5ic3A7ICogc3RhdGUgdG8gdGhl IG5ldyBzcGFjZSAoZS5nLiBtb3ZlIHVuY2hhbmdlZCBpbmRleGVzKS48YnI+Jm5ic3A7ICogTXVz dCBub3QgeWllbGQgb3IgZmFpbC48YnI+Jm5ic3A7ICovPGJyPi0gdmlydHVhbCB2b2lkIGFsdGVy KHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8qIGFsdGVyICovKSB7fTxicj4rIHZpcnR1YWwgdm9pZCBh bHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKiAvKiBhbHRlciAqLykgbm9leGNlcHQge308YnI+Jm5i c3A7IC8qKjxicj4mbmJzcDsgKiBDYWxsZWQgYWZ0ZXIgdGhlIGNoYW5nZSBoYXMgYmVlbiBzdWNj ZXNzZnVsbHkgd3JpdHRlbjxicj4mbmJzcDsgKiB0byBXQUwuIE11c3Qgbm90IGZhaWwuPGJyPiZu YnNwOyAqLzxicj4mbmJzcDsgdmlydHVhbCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KiAvKiBhbHRlciAqLyw8YnI+LSBpbnQ2NF90IC8qIHNpZ25hdHVyZSAqLykge308YnI+KyBpbnQ2 NF90IC8qIHNpZ25hdHVyZSAqLykgbm9leGNlcHQge308YnI+Jm5ic3A7IC8qKjxicj4mbmJzcDsg KiBDYWxsZWQgaW4gY2FzZSBhIFdBTCBlcnJvciBvY2N1cnJlZC4gSXQgaXMgc3VwcG9zZWQgdG8g dW5kbzxicj4mbmJzcDsgKiB0aGUgZWZmZWN0IG9mIEFsdGVyU3BhY2VPcDo6cHJlcGFyZSBhbmQg QWx0ZXJTcGFjZU9wOjphbHRlci48YnI+Jm5ic3A7ICogTXVzdCBub3QgZmFpbC48YnI+Jm5ic3A7 ICovPGJyPi0gdmlydHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqIC8qIGFs dGVyICovKSB7fTxicj4rIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KiAvKiBhbHRlciAqLykgbm9leGNlcHQge308YnI+Jm5ic3A7PGJyPi0gdmlydHVhbCB+QWx0ZXJT cGFjZU9wKCkge308YnI+KyB2aXJ0dWFsIH5BbHRlclNwYWNlT3AoKSBub2V4Y2VwdCB7fTxicj4m bmJzcDs8YnI+Jm5ic3A7IHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSk8YnI+Jm5ic3A7 IHs8YnI+QEAgLTk4NCw3ICs5ODQsNyBAQCBzdHJ1Y3QgbWhfaTMyX3QgKkFsdGVyU3BhY2VMb2Nr OjpyZWdpc3RyeTs8YnI+Jm5ic3A7Jm5ic3A7KiBSZXBsYWNlIHRoZSBvbGQgc3BhY2Ugd2l0aCBh IG5ldyBvbmUgaW4gdGhlIHNwYWNlIGNhY2hlLjxicj4mbmJzcDsmbmJzcDsqLzxicj4mbmJzcDtz dGF0aWMgaW50PGJyPi1hbHRlcl9zcGFjZV9jb21taXQoc3RydWN0IHRyaWdnZXIgKnRyaWdnZXIs IHZvaWQgKmV2ZW50KTxicj4rYWx0ZXJfc3BhY2VfY29tbWl0KHN0cnVjdCB0cmlnZ2VyICp0cmln Z2VyLCB2b2lkICpldmVudCkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3RydWN0IHR4 biAqdHhuID0gKHN0cnVjdCB0eG4gKikgZXZlbnQ7PGJyPiZuYnNwOyBzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyID0gKHN0cnVjdCBhbHRlcl9zcGFjZSAqKSB0cmlnZ2VyLSZndDtkYXRhOzxicj5A QCAtMTAwMiwxMiArMTAwMiw4IEBAIGFsdGVyX3NwYWNlX2NvbW1pdChzdHJ1Y3QgdHJpZ2dlciAq dHJpZ2dlciwgdm9pZCAqZXZlbnQpPGJyPiZuYnNwOyAqIGluZGV4ZXMgaW50byB0aGVpciBuZXcg cGxhY2VzLjxicj4mbmJzcDsgKi88YnI+Jm5ic3A7IGNsYXNzIEFsdGVyU3BhY2VPcCAqb3A7PGJy Pi0gdHJ5IHs8YnI+LSBybGlzdF9mb3JlYWNoX2VudHJ5KG9wLCAmYW1wO2FsdGVyLSZndDtvcHMs IGxpbmspPGJyPi0gb3AtJmd0O2NvbW1pdChhbHRlciwgc2lnbmF0dXJlKTs8YnI+LSB9IGNhdGNo IChFeGNlcHRpb24gKmUpIHs8YnI+LSByZXR1cm4gLTE7PGJyPi0gfTxicj4rIHJsaXN0X2ZvcmVh Y2hfZW50cnkob3AsICZhbXA7YWx0ZXItJmd0O29wcywgbGluayk8YnI+KyBvcC0mZ3Q7Y29tbWl0 KGFsdGVyLCBzaWduYXR1cmUpOzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48 L2Rpdj48ZGl2PkkgZ3Vlc3MgdGhpcyBjaGFuZ2Ugc2hvdWxkIGJlIGluPC9kaXY+PGRpdj7Cq2Fs dGVyOiBkbyBub3QgY2F0Y2ggZXhjZXB0aW9ucyB3aGVuIGl0J3Mgbm90IG5lY2Vzc2FyecK7IGNv bW1pdC48L2Rpdj48ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQg IzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9 ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48 ZGl2PiZuYnNwOzxicj4mbmJzcDsgYWx0ZXItJmd0O25ld19zcGFjZSA9IE5VTEw7IC8qIGZvciBh bHRlcl9zcGFjZV9kZWxldGUoKS4gKi88YnI+Jm5ic3A7IC8qPGJyPkBAIC0xMDI5LDcgKzEwMjUs NyBAQCBhbHRlcl9zcGFjZV9jb21taXQoc3RydWN0IHRyaWdnZXIgKnRyaWdnZXIsIHZvaWQgKmV2 ZW50KTxicj4mbmJzcDsmbmJzcDsqIGFsdGVyX3NwYWNlX2NvbW1pdCgpIGZhaWx1cmUgKHVubGlr ZWx5KTxicj4mbmJzcDsmbmJzcDsqLzxicj4mbmJzcDtzdGF0aWMgaW50PGJyPi1hbHRlcl9zcGFj ZV9yb2xsYmFjayhzdHJ1Y3QgdHJpZ2dlciAqdHJpZ2dlciwgdm9pZCAqIC8qIGV2ZW50ICovKTxi cj4rYWx0ZXJfc3BhY2Vfcm9sbGJhY2soc3RydWN0IHRyaWdnZXIgKnRyaWdnZXIsIHZvaWQgKiAv KiBldmVudCAqLykgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlciA9IChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKikgdHJpZ2dlci0mZ3Q7ZGF0YTs8YnI+ Jm5ic3A7IC8qIFJvbGxiYWNrIGFsdGVyIG9wcyAqLzxicj5AQCAtMTE4OCw5ICsxMTg0LDkgQEAg YWx0ZXJfc3BhY2VfZG8oc3RydWN0IHR4bl9zdG10ICpzdG10LCBzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyKTxicj4mbmJzcDtjbGFzcyBDaGVja1NwYWNlRm9ybWF0OiBwdWJsaWMgQWx0ZXJTcGFj ZU9wPGJyPiZuYnNwO3s8YnI+Jm5ic3A7cHVibGljOjxicj4tIENoZWNrU3BhY2VGb3JtYXQoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+KyBleHBsaWNpdCBDaGVja1NwYWNlRm9ybWF0KHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJyPiZuYnNwOyA6QWx0ZXJTcGFjZU9wKGFsdGVyKSB7 fTxicj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxi cj4rIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBvdmVycmlkZTs8YnI+ Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+QEAgLTEyMjIsMTUgKzEyMTgsMTUg QEAgcHVibGljOjxicj4mbmJzcDsgKiBuYW1lcyBpbnRvIGFuIG9sZCBkaWN0aW9uYXJ5IGFuZCBk ZWxldGVzIG5ldyBvbmUuPGJyPiZuYnNwOyAqLzxicj4mbmJzcDsgc3RydWN0IHR1cGxlX2RpY3Rp b25hcnkgKm5ld19kaWN0Ozxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2Ug KmFsdGVyKTs8YnI+LSB2aXJ0dWFsIH5Nb2RpZnlTcGFjZSgpOzxicj4rIHZvaWQgYWx0ZXJfZGVm KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4rIHZvaWQg YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisg dm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlk ZTs8YnI+KyB+TW9kaWZ5U3BhY2UoKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+Jm5ic3A7fTs8YnI+ Jm5ic3A7PGJyPiZuYnNwOy8qKiBBbWVuZCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgbmV3IHNwYWNl LiAqLzxicj4mbmJzcDt2b2lkPGJyPi1Nb2RpZnlTcGFjZTo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpPGJyPitNb2RpZnlTcGFjZTo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IC8qPGJyPiZuYnNwOyAq IFVzZSB0aGUgb2xkIGRpY3Rpb25hcnkgZm9yIHRoZSBuZXcgc3BhY2UsIGJlY2F1c2U8YnI+QEAg LTEyNDksNyArMTI0NSw3IEBAIE1vZGlmeVNwYWNlOjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tTW9kaWZ5 U3BhY2U6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJyPitNb2RpZnlTcGFjZTo6 YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4m bmJzcDsgLyo8YnI+Jm5ic3A7ICogTW92ZSBuZXcgbmFtZXMgaW50byBhbiBvbGQgZGljdGlvbmFy eSwgd2hpY2ggYWxyZWFkeSBpczxicj5AQCAtMTI2MCwxMiArMTI1NiwxMiBAQCBNb2RpZnlTcGFj ZTo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8 YnI+Jm5ic3A7dm9pZDxicj4tTW9kaWZ5U3BhY2U6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIpPGJyPitNb2RpZnlTcGFjZTo6cm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcikgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgdHVwbGVfZGljdGlvbmFyeV9zd2Fw KGFsdGVyLSZndDtuZXdfc3BhY2UtJmd0O2RlZi0mZ3Q7ZGljdCwgbmV3X2RpY3QpOzxicj4mbmJz cDt9PGJyPiZuYnNwOzxicj4tTW9kaWZ5U3BhY2U6On5Nb2RpZnlTcGFjZSgpPGJyPitNb2RpZnlT cGFjZTo6fk1vZGlmeVNwYWNlKCkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaWYgKG5l d19kaWN0ICE9IE5VTEwpPGJyPiZuYnNwOyB0dXBsZV9kaWN0aW9uYXJ5X3VucmVmKG5ld19kaWN0 KTs8YnI+QEAgLTEyODEsOSArMTI3Nyw5IEBAIHB1YmxpYzo8YnI+Jm5ic3A7IERyb3BJbmRleChz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBzdHJ1Y3QgaW5kZXggKmluZGV4KTxicj4mbmJzcDsg OkFsdGVyU3BhY2VPcChhbHRlciksIG9sZF9pbmRleChpbmRleCkge308YnI+Jm5ic3A7IHN0cnVj dCBpbmRleCAqb2xkX2luZGV4Ozxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIHByZXBhcmUoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyLCBpbnQ2NF90IGxzbik7PGJyPisgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVy X3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCBwcmVwYXJlKHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJyaWRlOzxicj4rIHZvaWQgY29tbWl0KHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+Jm5i c3A7fTs8YnI+Jm5ic3A7PGJyPiZuYnNwOy8qPGJyPkBAIC0xMjkxLDcgKzEyODcsNyBAQCBwdWJs aWM6PGJyPiZuYnNwOyZuYnNwOyogdGhlIG5ldyBpbmRleCBmcm9tIGl0Ljxicj4mbmJzcDsmbmJz cDsqLzxicj4mbmJzcDt2b2lkPGJyPi1Ecm9wSW5kZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJf c3BhY2UgKiAvKiBhbHRlciAqLyk8YnI+K0Ryb3BJbmRleDo6YWx0ZXJfZGVmKHN0cnVjdCBhbHRl cl9zcGFjZSAqIC8qIGFsdGVyICovKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBybGlz dF9kZWxfZW50cnkob2xkX2luZGV4LSZndDtkZWYsIGxpbmspOzxicj4mbmJzcDt9PGJyPkBAIC0x MzA1LDcgKzEzMDEsNyBAQCBEcm9wSW5kZXg6OnByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tRHJvcEluZGV4Ojpj b21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpPGJyPitE cm9wSW5kZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25h dHVyZSkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgKHZvaWQpYWx0ZXI7PGJyPiZuYnNw OyBpbmRleF9jb21taXRfZHJvcChvbGRfaW5kZXgsIHNpZ25hdHVyZSk7PGJyPkBAIC0xMzIzLDE4 ICsxMzE5LDE4IEBAIHB1YmxpYzo8YnI+Jm5ic3A7IDpBbHRlclNwYWNlT3AoYWx0ZXIpLCBpaWQo aWlkX2FyZykge308YnI+Jm5ic3A7IC8qKiBpZCBvZiB0aGUgaW5kZXggb24gdGhlIG1vdmUuICov PGJyPiZuYnNwOyB1aW50MzJfdCBpaWQ7PGJyPi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgdm9pZCByb2xsYmFjayhzdHJ1Y3QgYWx0 ZXJfc3BhY2UgKmFsdGVyKTs8YnI+KyB2b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0 ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4rIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3Nw YWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPiZuYnNwO307PGJyPiZuYnNwOzxicj4m bmJzcDt2b2lkPGJyPi1Nb3ZlSW5kZXg6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp PGJyPitNb3ZlSW5kZXg6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0 PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IHNwYWNlX3N3YXBfaW5kZXgoYWx0ZXItJmd0O29sZF9zcGFj ZSwgYWx0ZXItJmd0O25ld19zcGFjZSwgaWlkLCBpaWQpOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxi cj4mbmJzcDt2b2lkPGJyPi1Nb3ZlSW5kZXg6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIpPGJyPitNb3ZlSW5kZXg6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp IG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IHNwYWNlX3N3YXBfaW5kZXgoYWx0ZXItJmd0 O29sZF9zcGFjZSwgYWx0ZXItJmd0O25ld19zcGFjZSwgaWlkLCBpaWQpOzxicj4mbmJzcDt9PGJy PkBAIC0xMzY1LDIzICsxMzYxLDIzIEBAIHB1YmxpYzo8YnI+Jm5ic3A7IHN0cnVjdCBpbmRleCAq b2xkX2luZGV4Ozxicj4mbmJzcDsgc3RydWN0IGluZGV4ICpuZXdfaW5kZXg7PGJyPiZuYnNwOyBz dHJ1Y3QgaW5kZXhfZGVmICpuZXdfaW5kZXhfZGVmOzxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9k ZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIGFsdGVyKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgdm9pZCBjb21taXQoc3RydWN0 IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBsc24pOzxicj4tIHZpcnR1YWwgdm9pZCByb2xs YmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIH5Nb2RpZnlJbmRl eCgpOzxicj4rIHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhj ZXB0IG92ZXJyaWRlOzxicj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikg bm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlciwgaW50NjRfdCBsc24pIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4rIHZvaWQgcm9sbGJhY2so c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgfk1vZGlm eUluZGV4KCkgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPiZuYnNwO307PGJyPiZuYnNwOzxicj4mbmJz cDsvKiogVXBkYXRlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBuZXcgc3BhY2UgKi88YnI+Jm5ic3A7 dm9pZDxicj4tTW9kaWZ5SW5kZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy KTxicj4rTW9kaWZ5SW5kZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBu b2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBybGlzdF9kZWxfZW50cnkob2xkX2luZGV4LSZn dDtkZWYsIGxpbmspOzxicj4mbmJzcDsgaW5kZXhfZGVmX2xpc3RfYWRkKCZhbXA7YWx0ZXItJmd0 O2tleV9saXN0LCBuZXdfaW5kZXhfZGVmKTs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7 dm9pZDxicj4tTW9kaWZ5SW5kZXg6OmFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJy PitNb2RpZnlJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQ8 YnI+Jm5ic3A7ezxicj4mbmJzcDsgbmV3X2luZGV4ID0gc3BhY2VfaW5kZXgoYWx0ZXItJmd0O25l d19zcGFjZSwgbmV3X2luZGV4X2RlZi0mZ3Q7aWlkKTs8YnI+Jm5ic3A7IGFzc2VydChvbGRfaW5k ZXgtJmd0O2RlZi0mZ3Q7aWlkID09IG5ld19pbmRleC0mZ3Q7ZGVmLSZndDtpaWQpOzxicj5AQCAt MTM5NywxNCArMTM5MywxNCBAQCBNb2RpZnlJbmRleDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNl ICphbHRlcik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tTW9kaWZ5SW5k ZXg6OmNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk8 YnI+K01vZGlmeUluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRf dCBzaWduYXR1cmUpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICh2b2lkKWFsdGVyOzxi cj4mbmJzcDsgaW5kZXhfY29tbWl0X21vZGlmeShuZXdfaW5kZXgsIHNpZ25hdHVyZSk7PGJyPiZu YnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LU1vZGlmeUluZGV4Ojpyb2xsYmFjayhz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4rTW9kaWZ5SW5kZXg6OnJvbGxiYWNrKHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IC8qPGJy PiZuYnNwOyAqIFJlc3RvcmUgaW5kZXhlcy48YnI+QEAgLTE0MTYsNyArMTQxMiw3IEBAIE1vZGlm eUluZGV4Ojpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4mbmJzcDsgaW5k ZXhfdXBkYXRlX2RlZihvbGRfaW5kZXgpOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4tTW9kaWZ5 SW5kZXg6On5Nb2RpZnlJbmRleCgpPGJyPitNb2RpZnlJbmRleDo6fk1vZGlmeUluZGV4KCkgbm9l eGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaW5kZXhfZGVmX2RlbGV0ZShuZXdfaW5kZXhfZGVm KTs8YnI+Jm5ic3A7fTxicj5AQCAtMTQzMiwxNSArMTQyOCwxNSBAQCBwdWJsaWM6PGJyPiZuYnNw OyBDcmVhdGVJbmRleChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBzdHJ1Y3QgaW5kZXhfZGVm ICpkZWYpPGJyPiZuYnNwOyA6QWx0ZXJTcGFjZU9wKGFsdGVyKSwgbmV3X2luZGV4KE5VTEwpLCBu ZXdfaW5kZXhfZGVmKGRlZik8YnI+Jm5ic3A7IHt9PGJyPi0gdmlydHVhbCB2b2lkIGFsdGVyX2Rl ZihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgcHJlcGFyZShz dHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgY29tbWl0KHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3QgbHNuKTs8YnI+LSB2aXJ0dWFsIH5DcmVhdGVJ bmRleCgpOzxicj4rIHZvaWQgYWx0ZXJfZGVmKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5v ZXhjZXB0IG92ZXJyaWRlOzxicj4rIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyKSBvdmVycmlkZTs8YnI+KyB2b2lkIGNvbW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy LCBpbnQ2NF90IGxzbikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgfkNyZWF0ZUluZGV4KCkgbm9l eGNlcHQgb3ZlcnJpZGU7PGJyPiZuYnNwO307PGJyPiZuYnNwOzxicj4mbmJzcDsvKiogQWRkIGRl ZmluaXRpb24gb2YgdGhlIG5ldyBrZXkgdG8gdGhlIG5ldyBzcGFjZSBkZWYuICovPGJyPiZuYnNw O3ZvaWQ8YnI+LUNyZWF0ZUluZGV4OjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRl cik8YnI+K0NyZWF0ZUluZGV4OjphbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikg bm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaW5kZXhfZGVmX2xpc3RfYWRkKCZhbXA7YWx0 ZXItJmd0O2tleV9saXN0LCBuZXdfaW5kZXhfZGVmKTs8YnI+Jm5ic3A7fTxicj5AQCAtMTQ4MCw3 ICsxNDc2LDcgQEAgQ3JlYXRlSW5kZXg6OnByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRl cik8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tQ3JlYXRlSW5kZXg6OmNv bW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk8YnI+K0Ny ZWF0ZUluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWdu YXR1cmUpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICh2b2lkKSBhbHRlcjs8YnI+Jm5i c3A7IGFzc2VydChuZXdfaW5kZXggIT0gTlVMTCk7PGJyPkBAIC0xNDg4LDcgKzE0ODQsNyBAQCBD cmVhdGVJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2ln bmF0dXJlKTxicj4mbmJzcDsgbmV3X2luZGV4ID0gTlVMTDs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8 YnI+LUNyZWF0ZUluZGV4Ojp+Q3JlYXRlSW5kZXgoKTxicj4rQ3JlYXRlSW5kZXg6On5DcmVhdGVJ bmRleCgpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IGlmIChuZXdfaW5kZXggIT0gTlVM TCk8YnI+Jm5ic3A7IGluZGV4X2Fib3J0X2NyZWF0ZShuZXdfaW5kZXgpOzxicj5AQCAtMTUyMSwx NSArMTUxNywxNSBAQCBwdWJsaWM6PGJyPiZuYnNwOyBzdHJ1Y3QgaW5kZXhfZGVmICpuZXdfaW5k ZXhfZGVmOzxicj4mbmJzcDsgLyoqIE9sZCBpbmRleCBpbmRleF9kZWYuICovPGJyPiZuYnNwOyBz dHJ1Y3QgaW5kZXhfZGVmICpvbGRfaW5kZXhfZGVmOzxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcl9k ZWYoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIHByZXBhcmUo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2b2lkIGNvbW1pdChzdHJ1 Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk7PGJyPi0gdmlydHVhbCB+ UmVidWlsZEluZGV4KCk7PGJyPisgdm9pZCBhbHRlcl9kZWYoc3RydWN0IGFsdGVyX3NwYWNlICph bHRlcikgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPisgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpIG92ZXJyaWRlOzxicj4rIHZvaWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB+UmVi dWlsZEluZGV4KCkgbm9leGNlcHQgb3ZlcnJpZGU7PGJyPiZuYnNwO307PGJyPiZuYnNwOzxicj4m bmJzcDsvKiogQWRkIGRlZmluaXRpb24gb2YgdGhlIG5ldyBrZXkgdG8gdGhlIG5ldyBzcGFjZSBk ZWYuICovPGJyPiZuYnNwO3ZvaWQ8YnI+LVJlYnVpbGRJbmRleDo6YWx0ZXJfZGVmKHN0cnVjdCBh bHRlcl9zcGFjZSAqYWx0ZXIpPGJyPitSZWJ1aWxkSW5kZXg6OmFsdGVyX2RlZihzdHJ1Y3QgYWx0 ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBybGlzdF9kZWxf ZW50cnkob2xkX2luZGV4X2RlZiwgbGluayk7PGJyPiZuYnNwOyBpbmRleF9kZWZfbGlzdF9hZGQo JmFtcDthbHRlci0mZ3Q7a2V5X2xpc3QsIG5ld19pbmRleF9kZWYpOzxicj5AQCAtMTU0NSw3ICsx NTQxLDcgQEAgUmVidWlsZEluZGV4OjpwcmVwYXJlKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIp PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LVJlYnVpbGRJbmRleDo6Y29t bWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTxicj4rUmVi dWlsZEluZGV4Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWdu YXR1cmUpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IHN0cnVjdCBpbmRleCAqb2xkX2lu ZGV4ID0gc3BhY2VfaW5kZXgoYWx0ZXItJmd0O29sZF9zcGFjZSw8YnI+Jm5ic3A7IG9sZF9pbmRl eF9kZWYtJmd0O2lpZCk7PGJyPkBAIC0xNTU2LDcgKzE1NTIsNyBAQCBSZWJ1aWxkSW5kZXg6OmNv bW1pdChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk8YnI+Jm5i c3A7IG5ld19pbmRleCA9IE5VTEw7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1SZWJ1aWxkSW5k ZXg6On5SZWJ1aWxkSW5kZXgoKTxicj4rUmVidWlsZEluZGV4Ojp+UmVidWlsZEluZGV4KCkgbm9l eGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaWYgKG5ld19pbmRleCAhPSBOVUxMKTxicj4mbmJz cDsgaW5kZXhfYWJvcnRfY3JlYXRlKG5ld19pbmRleCk7PGJyPkBAIC0xNjAwLDkgKzE1OTYsMTAg QEAgcHVibGljOjxicj4mbmJzcDsgVHJ1bmNhdGVJbmRleChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyLCB1aW50MzJfdCBpaWQpPGJyPiZuYnNwOyA6IEFsdGVyU3BhY2VPcChhbHRlciksIGlpZChp aWQpLDxicj4mbmJzcDsgb2xkX2luZGV4KE5VTEwpLCBuZXdfaW5kZXgoTlVMTCkge308YnI+LSB2 aXJ0dWFsIHZvaWQgcHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0 dWFsIHZvaWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0 dXJlKTs8YnI+LSB2aXJ0dWFsIH5UcnVuY2F0ZUluZGV4KCk7PGJyPisgdm9pZCBwcmVwYXJlKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG92ZXJyaWRlOzxicj4rIHZvaWQgY29tbWl0KHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIsPGJyPisgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0IG92 ZXJyaWRlOzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PG9sPjxsaT5IZXJlIG9u IGEgbmV3IGxpbmUuPC9saT48L29sPjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0 OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRp dj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48ZGl2IGNs YXNzPSJjbF81NDI3OTgiPjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBz b2xpZCAjMDg1N0E2O21hcmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBj bGFzcz0ianMtaGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48 ZGl2PjxkaXY+KyB+VHJ1bmNhdGVJbmRleCgpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4mbmJzcDt9 Ozxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj5AQCAtMTYzMiw3ICsxNjI5LDcgQEAgVHJ1bmNh dGVJbmRleDo6cHJlcGFyZShzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4mbmJzcDt9PGJy PiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1UcnVuY2F0ZUluZGV4Ojpjb21taXQoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpPGJyPitUcnVuY2F0ZUluZGV4Ojpj b21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhj ZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICh2b2lkKWFsdGVyOzxicj4mbmJzcDsgaW5kZXhfY29t bWl0X2Ryb3Aob2xkX2luZGV4LCBzaWduYXR1cmUpOzxicj5AQCAtMTY0MCw3ICsxNjM3LDcgQEAg VHJ1bmNhdGVJbmRleDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qg c2lnbmF0dXJlKTxicj4mbmJzcDsgbmV3X2luZGV4ID0gTlVMTDs8YnI+Jm5ic3A7fTxicj4mbmJz cDs8YnI+LVRydW5jYXRlSW5kZXg6On5UcnVuY2F0ZUluZGV4KCk8YnI+K1RydW5jYXRlSW5kZXg6 On5UcnVuY2F0ZUluZGV4KCkgbm9leGNlcHQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgaWYgKG5ld19p bmRleCA9PSBOVUxMKTxicj4mbmJzcDsgcmV0dXJuOzxicj5AQCAtMTY1NywxMSArMTY1NCwxMSBA QCBjbGFzcyBVcGRhdGVTY2hlbWFWZXJzaW9uOiBwdWJsaWMgQWx0ZXJTcGFjZU9wPGJyPiZuYnNw O3B1YmxpYzo8YnI+Jm5ic3A7IFVwZGF0ZVNjaGVtYVZlcnNpb24oc3RydWN0IGFsdGVyX3NwYWNl ICogYWx0ZXIpPGJyPiZuYnNwOyA6QWx0ZXJTcGFjZU9wKGFsdGVyKSB7fTxicj4tIHZpcnR1YWwg dm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+KyB2b2lkIGFsdGVyKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4mbmJzcDt9Ozxi cj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tVXBkYXRlU2NoZW1hVmVyc2lvbjo6YWx0ZXIoc3Ry dWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K1VwZGF0ZVNjaGVtYVZlcnNpb246OmFsdGVyKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KHZvaWQpYWx0ZXI7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOysrc2NoZW1hX3ZlcnNpb247PGJyPkBAIC0xNjg0LDEwICsxNjgxLDEwIEBAIHB1 YmxpYzo8YnI+Jm5ic3A7IFJlYnVpbGRDa0NvbnN0cmFpbnRzKHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIpIDogQWx0ZXJTcGFjZU9wKGFsdGVyKSw8YnI+Jm5ic3A7IGNrX2NvbnN0cmFpbnQoUkxJ U1RfSEVBRF9JTklUSUFMSVpFUihja19jb25zdHJhaW50KSkge308YnI+Jm5ic3A7IHN0cnVjdCBy bGlzdCBja19jb25zdHJhaW50Ozxicj4tIHZpcnR1YWwgdm9pZCBwcmVwYXJlKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3Bh Y2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgcm9sbGJhY2soc3RydWN0IGFsdGVyX3NwYWNl ICphbHRlcik7PGJyPi0gdmlydHVhbCB+UmVidWlsZENrQ29uc3RyYWludHMoKTs8YnI+KyB2b2lk IHByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgb3ZlcnJpZGU7PGJyPisgdm9pZCBh bHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB2 b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRl Ozxicj4rIH5SZWJ1aWxkQ2tDb25zdHJhaW50cygpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4mbmJz cDt9Ozxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj5AQCAtMTcxNiwxOCArMTcxMywxOCBAQCBS ZWJ1aWxkQ2tDb25zdHJhaW50czo6c3BhY2Vfc3dhcF9ja19jb25zdHJhaW50KHN0cnVjdCBzcGFj ZSAqb2xkX3NwYWNlLDxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1SZWJ1 aWxkQ2tDb25zdHJhaW50czo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K1Jl YnVpbGRDa0NvbnN0cmFpbnRzOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4 Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBzcGFjZV9zd2FwX2NrX2NvbnN0cmFpbnQoYWx0ZXIt Jmd0O29sZF9zcGFjZSwgYWx0ZXItJmd0O25ld19zcGFjZSk7PGJyPiZuYnNwO308YnI+Jm5ic3A7 PGJyPiZuYnNwO3ZvaWQ8YnI+LVJlYnVpbGRDa0NvbnN0cmFpbnRzOjpyb2xsYmFjayhzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKTxicj4rUmVidWlsZENrQ29uc3RyYWludHM6OnJvbGxiYWNrKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IHNw YWNlX3N3YXBfY2tfY29uc3RyYWludChhbHRlci0mZ3Q7bmV3X3NwYWNlLCBhbHRlci0mZ3Q7b2xk X3NwYWNlKTs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+LVJlYnVpbGRDa0NvbnN0cmFpbnRzOjp+ UmVidWlsZENrQ29uc3RyYWludHMoKTxicj4rUmVidWlsZENrQ29uc3RyYWludHM6On5SZWJ1aWxk Q2tDb25zdHJhaW50cygpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IHN0cnVjdCBja19j b25zdHJhaW50ICpvbGRfY2tfY29uc3RyYWludCwgKnRtcDs8YnI+Jm5ic3A7IHJsaXN0X2ZvcmVh Y2hfZW50cnlfc2FmZShvbGRfY2tfY29uc3RyYWludCwgJmFtcDtja19jb25zdHJhaW50LCBsaW5r LCB0bXApIHs8YnI+QEAgLTE3NTQsOCArMTc1MSw4IEBAIGNsYXNzIE1vdmVDa0NvbnN0cmFpbnRz OiBwdWJsaWMgQWx0ZXJTcGFjZU9wPGJyPiZuYnNwOyBzdHJ1Y3Qgc3BhY2UgKm5ld19zcGFjZSk7 PGJyPiZuYnNwO3B1YmxpYzo8YnI+Jm5ic3A7IE1vdmVDa0NvbnN0cmFpbnRzKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIpIDogQWx0ZXJTcGFjZU9wKGFsdGVyKSB7fTxicj4tIHZpcnR1YWwgdm9p ZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgcm9s bGJhY2soc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPisgdm9pZCBhbHRlcihzdHJ1Y3Qg YWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB2b2lkIHJvbGxiYWNr KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4mbmJzcDt9 Ozxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj5AQCAtMTc2OSwxMyArMTc2NiwxMyBAQCBNb3Zl Q2tDb25zdHJhaW50czo6c3BhY2Vfc3dhcF9ja19jb25zdHJhaW50KHN0cnVjdCBzcGFjZSAqb2xk X3NwYWNlLDxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1Nb3ZlQ2tDb25z dHJhaW50czo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K01vdmVDa0NvbnN0 cmFpbnRzOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2VwdDxicj4mbmJz cDt7PGJyPiZuYnNwOyBzcGFjZV9zd2FwX2NrX2NvbnN0cmFpbnQoYWx0ZXItJmd0O29sZF9zcGFj ZSwgYWx0ZXItJmd0O25ld19zcGFjZSk7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3Zv aWQ8YnI+LU1vdmVDa0NvbnN0cmFpbnRzOjpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFs dGVyKTxicj4rTW92ZUNrQ29uc3RyYWludHM6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAq YWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IHNwYWNlX3N3YXBfY2tfY29uc3Ry YWludChhbHRlci0mZ3Q7bmV3X3NwYWNlLCBhbHRlci0mZ3Q7b2xkX3NwYWNlKTs8YnI+Jm5ic3A7 fTxicj5AQCAtMTgzNCwxMSArMTgzMSwxMiBAQCBwdWJsaWM6PGJyPiZuYnNwOyBpZiAobmV3X2lk ID09IE5VTEwpPGJyPiZuYnNwOyBkaWFnX3JhaXNlKCk7PGJyPiZuYnNwOyB9PGJyPi0gdmlydHVh bCB2b2lkIHByZXBhcmUoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik7PGJyPi0gdmlydHVhbCB2 b2lkIGFsdGVyKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxicj4tIHZpcnR1YWwgdm9pZCBy b2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZvaWQgY29t bWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTs8YnI+LSB2 aXJ0dWFsIH5DcmVhdGVDb25zdHJhaW50SUQoKTs8YnI+KyB2b2lkIHByZXBhcmUoc3RydWN0IGFs dGVyX3NwYWNlICphbHRlcikgb3ZlcnJpZGU7PGJyPisgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJf c3BhY2UgKmFsdGVyKSBub2V4Y2VwdCBvdmVycmlkZTs8YnI+KyB2b2lkIHJvbGxiYWNrKHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4rIHZvaWQgY29tbWl0 KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsPGJyPisgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhj ZXB0IG92ZXJyaWRlOzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PG9sIHN0YXJ0 PSIyIj48bGk+SGVyZSBvbiBhIG5ldyBsaW5lLjwvbGk+PC9vbD48ZGl2PjxibG9ja3F1b3RlIHN0 eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6 MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48 ZGl2PjxkaXY+PGRpdiBjbGFzcz0iY2xfNTQyNzk4Ij48ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJi b3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEw cHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1z Z19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2PisgfkNyZWF0ZUNvbnN0cmFpbnRJRCgpIG5vZXhjZXB0 IG92ZXJyaWRlOzxicj4mbmJzcDt9Ozxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj5AQCAtMTg1 MCw3ICsxODQ4LDcgQEAgQ3JlYXRlQ29uc3RyYWludElEOjpwcmVwYXJlKHN0cnVjdCBhbHRlcl9z cGFjZSAqYWx0ZXIpPGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LUNyZWF0 ZUNvbnN0cmFpbnRJRDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K0NyZWF0 ZUNvbnN0cmFpbnRJRDo6YWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQ8 YnI+Jm5ic3A7ezxicj4mbmJzcDsgLyogQWx0ZXIoKSBjYW4ndCBmYWlsLCBzbyBjYW4ndCBqdXN0 IHRocm93IGFuIGVycm9yLiAqLzxicj4mbmJzcDsgaWYgKHNwYWNlX2FkZF9jb25zdHJhaW50X2lk KGFsdGVyLSZndDtvbGRfc3BhY2UsIG5ld19pZCkgIT0gMCk8YnI+QEAgLTE4NTgsMTQgKzE4NTYs MTUgQEAgQ3JlYXRlQ29uc3RyYWludElEOjphbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVy KTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1DcmVhdGVDb25zdHJhaW50 SUQ6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJyPitDcmVhdGVDb25zdHJh aW50SUQ6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZu YnNwO3s8YnI+Jm5ic3A7IHNwYWNlX2RlbGV0ZV9jb25zdHJhaW50X2lkKGFsdGVyLSZndDtuZXdf c3BhY2UsIG5ld19pZC0mZ3Q7bmFtZSk7PGJyPiZuYnNwOyBuZXdfaWQgPSBOVUxMOzxicj4mbmJz cDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1DcmVhdGVDb25zdHJhaW50SUQ6OmNvbW1p dChzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyLCBpbnQ2NF90IHNpZ25hdHVyZSk8YnI+K0NyZWF0 ZUNvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIsPC9kaXY+PC9k aXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2 PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXIt bGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsi PjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXY+PGRp diBjbGFzcz0iY2xfNTQyNzk4Ij48ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDox cHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2Pjxk aXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0 ciI+PGRpdj48ZGl2PisgaW50NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0PC9kaXY+PC9kaXY+PC9k aXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2 PjwvYmxvY2txdW90ZT48L2Rpdj48b2wgc3RhcnQ9IjQiPjxsaT5IZXJlIG9uIGEgbmV3IGxpbmUu PC9saT48L29sPjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAj MDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNz PSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48ZGl2IGNsYXNzPSJjbF81NDI3 OTgiPjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2 O21hcmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVs cGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+Jm5i c3A7ezxicj4mbmJzcDsgKHZvaWQpIGFsdGVyOzxicj4mbmJzcDsgKHZvaWQpIHNpZ25hdHVyZTs8 YnI+QEAgLTE4NzYsNyArMTg3NSw3IEBAIENyZWF0ZUNvbnN0cmFpbnRJRDo6Y29tbWl0KHN0cnVj dCBhbHRlcl9zcGFjZSAqYWx0ZXIsIGludDY0X3Qgc2lnbmF0dXJlKTxicj4mbmJzcDsgbmV3X2lk ID0gTlVMTDs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+LUNyZWF0ZUNvbnN0cmFpbnRJRDo6fkNy ZWF0ZUNvbnN0cmFpbnRJRCgpPGJyPitDcmVhdGVDb25zdHJhaW50SUQ6On5DcmVhdGVDb25zdHJh aW50SUQoKSBub2V4Y2VwdDxicj4mbmJzcDt7PGJyPiZuYnNwOyBpZiAobmV3X2lkICE9IE5VTEwp PGJyPiZuYnNwOyBjb25zdHJhaW50X2lkX2RlbGV0ZShuZXdfaWQpOzxicj5AQCAtMTg5MSwxOSAr MTg5MCwyMCBAQCBwdWJsaWM6PGJyPiZuYnNwOyBEcm9wQ29uc3RyYWludElEKHN0cnVjdCBhbHRl cl9zcGFjZSAqYWx0ZXIsIGNvbnN0IGNoYXIgKm5hbWUpPGJyPiZuYnNwOyA6QWx0ZXJTcGFjZU9w KGFsdGVyKSwgb2xkX2lkKE5VTEwpLCBuYW1lKG5hbWUpPGJyPiZuYnNwOyB7fTxicj4tIHZpcnR1 YWwgdm9pZCBhbHRlcihzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKTs8YnI+LSB2aXJ0dWFsIHZv aWQgY29tbWl0KHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIgLCBpbnQ2NF90IHNpZ25hdHVyZSk7 PGJyPi0gdmlydHVhbCB2b2lkIHJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpOzxi cj4rIHZvaWQgYWx0ZXIoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlcikgbm9leGNlcHQgb3ZlcnJp ZGU7PGJyPisgdm9pZCBjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciw8YnI+KyBpbnQ2 NF90IHNpZ25hdHVyZSkgbm9leGNlcHQgb3ZlcnJpZGU7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+ PC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2tx dW90ZT48L2Rpdj48b2wgc3RhcnQ9IjQiPjxsaT5IZXJlIG9uIGEgbmV3IGxpbmUuPC9saT48L29s PjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBt YXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxw ZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48ZGl2IGNsYXNzPSJjbF81NDI3OTgiPjxkaXY+ PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21hcmdpbjox MHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyX21yX2Nz c19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+KyB2b2lkIHJvbGxi YWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0IG92ZXJyaWRlOzxicj4mbmJz cDt9Ozxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tRHJvcENvbnN0cmFpbnRJRDo6YWx0ZXIo c3RydWN0IGFsdGVyX3NwYWNlICphbHRlcik8YnI+K0Ryb3BDb25zdHJhaW50SUQ6OmFsdGVyKHN0 cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7IG9s ZF9pZCA9IHNwYWNlX3BvcF9jb25zdHJhaW50X2lkKGFsdGVyLSZndDtvbGRfc3BhY2UsIG5hbWUp Ozxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1Ecm9wQ29uc3RyYWludElE Ojpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRfdCBzaWduYXR1cmUpPGJy PitEcm9wQ29uc3RyYWludElEOjpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50 NjRfdCBzaWduYXR1cmUpIG5vZXhjZXB0PGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICh2b2lkKSBhbHRl cjs8YnI+Jm5ic3A7ICh2b2lkKSBzaWduYXR1cmU7PGJyPkBAIC0xOTExLDcgKzE5MTEsNyBAQCBE cm9wQ29uc3RyYWludElEOjpjb21taXQoc3RydWN0IGFsdGVyX3NwYWNlICphbHRlciwgaW50NjRf dCBzaWduYXR1cmUpPGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LURyb3BD b25zdHJhaW50SUQ6OnJvbGxiYWNrKHN0cnVjdCBhbHRlcl9zcGFjZSAqYWx0ZXIpPGJyPitEcm9w Q29uc3RyYWludElEOjpyb2xsYmFjayhzdHJ1Y3QgYWx0ZXJfc3BhY2UgKmFsdGVyKSBub2V4Y2Vw dDxicj4mbmJzcDt7PGJyPiZuYnNwOyBpZiAoc3BhY2VfYWRkX2NvbnN0cmFpbnRfaWQoYWx0ZXIt Jmd0O25ld19zcGFjZSwgb2xkX2lkKSAhPSAwKSB7PGJyPiZuYnNwOyBwYW5pYygiQ2FuJ3QgcmVj b3ZlciBhZnRlciBjb25zdHJhaW50IGRyb3Agcm9sbGJhY2sgKG91dCBvZiAiPGJyPi0tPGJyPjIu Ny40PGJyPiZuYnNwOzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT4mbmJzcDs8 ZGl2PiZuYnNwOzwvZGl2PjxkaXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250YWluZXIiPjxk aXYgZGF0YS1zaWduYXR1cmUtd2lkZ2V0PSJjb250ZW50Ij48ZGl2Pi0tPGJyPklseWEgS29zYXJl djwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9k aXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPiZuYnNwOzxkaXY+Jm5ic3A7PC9kaXY+PGRpdiBk YXRhLXNpZ25hdHVyZS13aWRnZXQ9ImNvbnRhaW5lciI+PGRpdiBkYXRhLXNpZ25hdHVyZS13aWRn ZXQ9ImNvbnRlbnQiPjxkaXY+LS08YnI+SWx5YSBLb3NhcmV2PC9kaXY+PC9kaXY+PC9kaXY+PGRp dj4mbmJzcDs8L2Rpdj48L2Rpdj48L0JPRFk+PC9IVE1MPgo= ----ALT--aEcAb9Da899181759e0B9484428B87e81596535444--