Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o9PPk-0004dL-0k for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Jul 2022 11:11:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o9PPi-0004nW-Di for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Jul 2022 11:11:18 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o9PPh-0004nN-DP for pgsql-hackers@lists.postgresql.org; Thu, 07 Jul 2022 11:11:18 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o9PPZ-0003kN-RC for pgsql-hackers@postgresql.org; Thu, 07 Jul 2022 11:11:16 +0000 Received: from [192.168.8.203] (unknown [93.174.131.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 13DE221C04C5; Thu, 7 Jul 2022 14:11:07 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1657192267; bh=9C9Jrnf7Wwc3Sof1XFO8gigpngoWU6cWUMHZwsQ6Gvs=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=EKyZSikjOsvrhmw/uG8Bzs1i1blAkY/g2OqxKGWu0oawMd253//1dPf2BZUEra1YF a8kn+HOY+1p2v4eCH04Q/s1aUdwyIGnVCP2pgowFWa9F1yQ0O0+Wh1x5M38c33Oy+Z GheYM0B1hfF497+YPSdrOH6GBLyVkVha/kiF+oco= Content-Type: multipart/mixed; boundary="------------SfwqipnKg6tF19DxN0lrjohf" Message-ID: <3bef9ec2-1d10-22ad-c0de-e5cec7f7aeae@postgrespro.ru> Date: Thu, 7 Jul 2022 14:11:06 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: Condition pushdown: why (=) is pushed down into join, but BETWEEN or >= is not? Content-Language: en-US To: Andy Fan , Thomas Munro Cc: Andres Freund , Robert Haas , Tom Lane , David Rowley , Dmitry Astapov , PostgreSQL-development References: <2889422.1646175214@sss.pgh.pa.us> <2908648.1646186702@sss.pgh.pa.us> <3001201.1646237367@sss.pgh.pa.us> <20220322014133.ktc2ffeb2m3jamgh@alap3.anarazel.de> From: Andrey Lepikhov Organization: Postgres Professional In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------SfwqipnKg6tF19DxN0lrjohf Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 17/5/2022 05:00, Andy Fan wrote: > Thanks.  But I will wait to see if anyone will show interest with this. > Or else > Moving alone is not a great experience. To move forward I've rebased your patchset onto new master, removed annoying tailing backspaces and applied two regression test changes, caused by second patch: first of changes are legal, second looks normal but should be checked on optimality. As I see, a consensus should be found for the questions: 1. Case of redundant clauses (x < 100 and x < 1000) 2. Planning time degradation for trivial OLTP queries -- regards, Andrey Lepikhov Postgres Professional --------------SfwqipnKg6tF19DxN0lrjohf Content-Type: text/plain; charset=UTF-8; name="v5-0001-Expand-the-duties-of-check_mergejoinable-to-check-no.patch" Content-Disposition: attachment; filename*0="v5-0001-Expand-the-duties-of-check_mergejoinable-to-check-no"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSA5YmM4Y2UwMDIxODY5Y2VmMGNlNjAyOWQ4YWFmMmEzNjM0MzRlMjY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogV2VkLCA2IEp1bCAyMDIyIDE0OjQ0OjU2ICswMzAw ClN1YmplY3Q6IFtQQVRDSCAxLzZdIEV4cGFuZCB0aGUgZHV0aWVzIG9mIGNoZWNrX21lcmdl am9pbmFibGUgdG8gY2hlY2sKIG5vbi1lcXVhbCBidHJlZSBvcGVyYXRvciBhcyB3ZWxsIHRv IHN1cHBvcnQgdGhlIEVDIEZpbHRlciBmdW5jdGlvbi4gIEEgbmV3CiBmaWVsZCBuYW1lZCBi dHJlZWluZXFvcGZhbWlsaWVzIGlzIGFkZGVkIGludG8gUmVzdGljdEluZm8gYW5kIGl0IGlz IHNldCB3aXRoCiB0aGUgc2FtZSByb3VuZCBzeXNjYWNoZSBzZWFyY2ggZm9yIGNoZWNrX21l cmdlam9pbmFibGUuIGJlY2F1c2Ugb2YgdGhpcywKIGNoZWNrX21lcmdlam9pbmFibGUgaXMg cmVuYW1lZCB0byBjaGVja19idHJlZWFibGUuCgpUaGUgYmFkIHBhcnQgb2YgdGhpcyBpcyBp dCBvbmx5IHdvcmtzIGZvciBvcGNsYXVzZSBzbyBmYXIuCi0tLQogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMgICAgfCAzNSArKysrKysrKysrKy0tLS0tLS0tLS0t LQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVzdHJpY3RpbmZvLmMgfCAgMSArCiBz cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICB8IDM1ICsrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAg ICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAg IHwgIDEgKwogNSBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3Bs YW4uYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2luaXRzcGxhbi5jCmluZGV4IDAy M2VmYmFmMDkuLmZhMmJmYmZiNzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL2luaXRzcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2lu aXRzcGxhbi5jCkBAIC03Niw3ICs3Niw3IEBAIHN0YXRpYyBib29sIGNoZWNrX291dGVyam9p bl9kZWxheShQbGFubmVySW5mbyAqcm9vdCwgUmVsaWRzICpyZWxpZHNfcCwKIHN0YXRpYyBi b29sIGNoZWNrX2VxdWl2YWxlbmNlX2RlbGF5KFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJ CQkJUmVzdHJpY3RJbmZvICpyZXN0cmljdGluZm8pOwogc3RhdGljIGJvb2wgY2hlY2tfcmVk dW5kYW50X251bGxhYmlsaXR5X3F1YWwoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmNsYXVz ZSk7Ci1zdGF0aWMgdm9pZCBjaGVja19tZXJnZWpvaW5hYmxlKFJlc3RyaWN0SW5mbyAqcmVz dHJpY3RpbmZvKTsKK3N0YXRpYyB2b2lkIGNoZWNrX2J0cmVlYWJsZShSZXN0cmljdEluZm8g KnJlc3RyaWN0aW5mbyk7CiBzdGF0aWMgdm9pZCBjaGVja19oYXNoam9pbmFibGUoUmVzdHJp Y3RJbmZvICpyZXN0cmljdGluZm8pOwogc3RhdGljIHZvaWQgY2hlY2tfbWVtb2l6YWJsZShS ZXN0cmljdEluZm8gKnJlc3RyaWN0aW5mbyk7CiAKQEAgLTE4NzQsOCArMTg3NCwxMSBAQCBk aXN0cmlidXRlX3F1YWxfdG9fcmVscyhQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqY2xhdXNl LAogCSAqIFdlIGNoZWNrICJtZXJnZWpvaW5hYmlsaXR5IiBvZiBldmVyeSBjbGF1c2UsIG5v dCBvbmx5IGpvaW4gY2xhdXNlcywKIAkgKiBiZWNhdXNlIHdlIHdhbnQgdG8ga25vdyBhYm91 dCBlcXVpdmFsZW5jZXMgYmV0d2VlbiB2YXJzIG9mIHRoZSBzYW1lCiAJICogcmVsYXRpb24s IG9yIGJldHdlZW4gdmFycyBhbmQgY29uc3RzLgorCSAqCisJICogV2UgYWxzbyBjaGVja2Vk IHRoZSBidHJlZS1hYmxlIHByb3Blcml0eSBhdCB0aGUgc2FtZSByb3VuZCBvZiBjaGVja2lu ZworCSAqIG1lcmdlam9pbmFiaWxpdHkgdG8gc3VwcG9ydCBlYyBmaWx0ZXIgZnVuY3Rpb24u CiAJICovCi0JY2hlY2tfbWVyZ2Vqb2luYWJsZShyZXN0cmljdGluZm8pOworCWNoZWNrX2J0 cmVlYWJsZShyZXN0cmljdGluZm8pOwogCiAJLyoKIAkgKiBJZiBpdCBpcyBhIHRydWUgZXF1 aXZhbGVuY2UgY2xhdXNlLCBzZW5kIGl0IHRvIHRoZSBFcXVpdmFsZW5jZUNsYXNzCkBAIC0y Mzg5LDcgKzIzOTIsNyBAQCBwcm9jZXNzX2ltcGxpZWRfZXF1YWxpdHkoUGxhbm5lckluZm8g KnJvb3QsCiAJICogZnJvbSBhbiBFcXVpdmFsZW5jZUNsYXNzOyBidXQgd2UgY291bGQgaGF2 ZSByZWR1Y2VkIHRoZSBvcmlnaW5hbCBjbGF1c2UKIAkgKiB0byBhIGNvbnN0YW50LgogCSAq LwotCWNoZWNrX21lcmdlam9pbmFibGUocmVzdHJpY3RpbmZvKTsKKwljaGVja19idHJlZWFi bGUocmVzdHJpY3RpbmZvKTsKIAogCS8qCiAJICogTm90ZSB3ZSBkb24ndCBkbyBpbml0aWFs aXplX21lcmdlY2xhdXNlX2VjbGFzc2VzKCk7IHRoZSBjYWxsZXIgY2FuCkBAIC0yNDU2LDgg KzI0NTksOCBAQCBidWlsZF9pbXBsaWVkX2pvaW5fZXF1YWxpdHkoUGxhbm5lckluZm8gKnJv b3QsCiAJCQkJCQkJCQkgTlVMTCwJLyogb3V0ZXJfcmVsaWRzICovCiAJCQkJCQkJCQkgbnVs bGFibGVfcmVsaWRzKTsJLyogbnVsbGFibGVfcmVsaWRzICovCiAKLQkvKiBTZXQgbWVyZ2Vq b2luYWJpbGl0eS9oYXNoam9pbmFiaWxpdHkgZmxhZ3MgKi8KLQljaGVja19tZXJnZWpvaW5h YmxlKHJlc3RyaWN0aW5mbyk7CisJLyogU2V0IGJ0cmVlYWJpbGl0eS9oYXNoam9pbmFiaWxp dHkgZmxhZ3MgKi8KKwljaGVja19idHJlZWFibGUocmVzdHJpY3RpbmZvKTsKIAljaGVja19o YXNoam9pbmFibGUocmVzdHJpY3RpbmZvKTsKIAljaGVja19tZW1vaXphYmxlKHJlc3RyaWN0 aW5mbyk7CiAKQEAgLTI2NDEsMjAgKzI2NDQsMTYgQEAgbWF0Y2hfZm9yZWlnbl9rZXlzX3Rv X3F1YWxzKFBsYW5uZXJJbmZvICpyb290KQogICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog CiAvKgotICogY2hlY2tfbWVyZ2Vqb2luYWJsZQotICoJICBJZiB0aGUgcmVzdHJpY3RpbmZv J3MgY2xhdXNlIGlzIG1lcmdlam9pbmFibGUsIHNldCB0aGUgbWVyZ2Vqb2luCi0gKgkgIGlu Zm8gZmllbGRzIGluIHRoZSByZXN0cmljdGluZm8uCi0gKgotICoJICBDdXJyZW50bHksIHdl IHN1cHBvcnQgbWVyZ2Vqb2luIGZvciBiaW5hcnkgb3BjbGF1c2VzIHdoZXJlCi0gKgkgIHRo ZSBvcGVyYXRvciBpcyBhIG1lcmdlam9pbmFibGUgb3BlcmF0b3IuICBUaGUgYXJndW1lbnRz IGNhbiBiZQotICoJICBhbnl0aGluZyAtLS0gYXMgbG9uZyBhcyB0aGVyZSBhcmUgbm8gdm9s YXRpbGUgZnVuY3Rpb25zIGluIHRoZW0uCisgKiBjaGVja19idHJlZWFibGUKKyAqCSAgSWYg dGhlIHJlc3RyaWN0aW5mbydzIGNsYXVzZSBpcyBidHJlZWFibGUsIHNldCB0aGUgbWVyZ2Vq b2luCisgKgkgIGluZm8gZmllbGQgYW5kIGJ0cmVlaW5lcSBpbmZvIGZpZWxkIGluIHRoZSBy ZXN0cmljdGluZm8uIGJ0cmVlYWJsZQorICoJICBub3cgaXMgYSBzdXBlcnNldCBvZiBtZXJn ZWFibGUuCiAgKi8KIHN0YXRpYyB2b2lkCi1jaGVja19tZXJnZWpvaW5hYmxlKFJlc3RyaWN0 SW5mbyAqcmVzdHJpY3RpbmZvKQorY2hlY2tfYnRyZWVhYmxlKFJlc3RyaWN0SW5mbyAqcmVz dHJpY3RpbmZvKQogewogCUV4cHIJICAgKmNsYXVzZSA9IHJlc3RyaWN0aW5mby0+Y2xhdXNl OwogCU9pZAkJCW9wbm87Ci0JTm9kZQkgICAqbGVmdGFyZzsKIAogCWlmIChyZXN0cmljdGlu Zm8tPnBzZXVkb2NvbnN0YW50KQogCQlyZXR1cm47CkBAIC0yNjY0LDExICsyNjYzLDExIEBA IGNoZWNrX21lcmdlam9pbmFibGUoUmVzdHJpY3RJbmZvICpyZXN0cmljdGluZm8pCiAJCXJl dHVybjsKIAogCW9wbm8gPSAoKE9wRXhwciAqKSBjbGF1c2UpLT5vcG5vOwotCWxlZnRhcmcg PSBsaW5pdGlhbCgoKE9wRXhwciAqKSBjbGF1c2UpLT5hcmdzKTsKIAotCWlmIChvcF9tZXJn ZWpvaW5hYmxlKG9wbm8sIGV4cHJUeXBlKGxlZnRhcmcpKSAmJgotCQkhY29udGFpbl92b2xh dGlsZV9mdW5jdGlvbnMoKE5vZGUgKikgcmVzdHJpY3RpbmZvKSkKLQkJcmVzdHJpY3RpbmZv LT5tZXJnZW9wZmFtaWxpZXMgPSBnZXRfbWVyZ2Vqb2luX29wZmFtaWxpZXMob3Bubyk7CisJ aWYgKCFjb250YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucygoTm9kZSAqKSByZXN0cmljdGluZm8p KQorCQlnZXRfYnRyZWVfb3BmYW1pbGllcyhvcG5vLAorCQkJCQkJCSAmcmVzdHJpY3RpbmZv LT5tZXJnZW9wZmFtaWxpZXMsCisJCQkJCQkJICZyZXN0cmljdGluZm8tPmJ0cmVlaW5lcW9w ZmFtaWxpZXMpOwogCiAJLyoKIAkgKiBOb3RlOiBvcF9tZXJnZWpvaW5hYmxlIGlzIGp1c3Qg YSBoaW50OyBpZiB3ZSBmYWlsIHRvIGZpbmQgdGhlIG9wZXJhdG9yCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZXN0cmljdGluZm8uYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL3Jlc3RyaWN0aW5mby5jCmluZGV4IGVmOGRmM2QwOTguLmUwOTE5 NmQyNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3Jlc3RyaWN0 aW5mby5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3Jlc3RyaWN0aW5mby5j CkBAIC0yMDEsNiArMjAxLDcgQEAgbWFrZV9yZXN0cmljdGluZm9faW50ZXJuYWwoUGxhbm5l ckluZm8gKnJvb3QsCiAJcmVzdHJpY3RpbmZvLT5vdXRlcl9zZWxlYyA9IC0xOwogCiAJcmVz dHJpY3RpbmZvLT5tZXJnZW9wZmFtaWxpZXMgPSBOSUw7CisJcmVzdHJpY3RpbmZvLT5idHJl ZWluZXFvcGZhbWlsaWVzID0gTklMOwogCiAJcmVzdHJpY3RpbmZvLT5sZWZ0X2VjID0gTlVM TDsKIAlyZXN0cmljdGluZm8tPnJpZ2h0X2VjID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvbHN5c2NhY2hlLmMKaW5kZXggMWI3ZTExYjkzZS4uOTFjZDgxM2NlOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTM4OSw2ICszODksNDEgQEAgZ2V0X21l cmdlam9pbl9vcGZhbWlsaWVzKE9pZCBvcG5vKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8q CisgKiBUT0RPOiAgZ2V0X21lcmdlam9pbl9vcGZhbWlsaWVzIHNob3VkIGJlIHJlcGxhY2Vk IHdpdGggdGhpcyBmdW5jdGlvbi4KKyAqLwordm9pZAorZ2V0X2J0cmVlX29wZmFtaWxpZXMo T2lkIG9wbm8sCisJCQkJCSBMaXN0ICoqbWVyZ2VhYmxlX29wZmFtaWxpZXMsCisJCQkJCSBM aXN0ICoqdW5tZXJnZWFibGVfYnRyZWVfb3BmYW1pbGllcykKK3sKKwlDYXRDTGlzdCAgICpj YXRsaXN0OworCWludAkJCWk7CisKKwkvKgorCSAqIFNlYXJjaCBwZ19hbW9wIHRvIHNlZSBm aW5kIG91dCBhbGwgdGhlIGJ0cmVlIG9wZmFtaWxpZXMuCisJICovCisJY2F0bGlzdCA9IFNl YXJjaFN5c0NhY2hlTGlzdDEoQU1PUE9QSUQsIE9iamVjdElkR2V0RGF0dW0ob3BubykpOwor CisJZm9yIChpID0gMDsgaSA8IGNhdGxpc3QtPm5fbWVtYmVyczsgaSsrKQorCXsKKwkJSGVh cFR1cGxlCXR1cGxlID0gJmNhdGxpc3QtPm1lbWJlcnNbaV0tPnR1cGxlOworCQlGb3JtX3Bn X2Ftb3AgYWZvcm0gPSAoRm9ybV9wZ19hbW9wKSBHRVRTVFJVQ1QodHVwbGUpOworCisJCWlm IChhZm9ybS0+YW1vcG1ldGhvZCA9PSBCVFJFRV9BTV9PSUQpCisJCXsKKwkJCWlmIChhZm9y bS0+YW1vcHN0cmF0ZWd5ID09IEJURXF1YWxTdHJhdGVneU51bWJlcikKKwkJCQkqbWVyZ2Vh YmxlX29wZmFtaWxpZXMgPSBsYXBwZW5kX29pZCgqbWVyZ2VhYmxlX29wZmFtaWxpZXMsCisJ CQkJCQkJCQkJCQkJYWZvcm0tPmFtb3BmYW1pbHkpOworCQkJZWxzZQorCQkJCSp1bm1lcmdl YWJsZV9idHJlZV9vcGZhbWlsaWVzID0gbGFwcGVuZF9vaWQoKnVubWVyZ2VhYmxlX2J0cmVl X29wZmFtaWxpZXMsCisJCQkJCQkJCQkJCQkJCQlhZm9ybS0+YW1vcGZhbWlseSk7CisJCX0K Kwl9CisKKwlSZWxlYXNlU3lzQ2FjaGVMaXN0KGNhdGxpc3QpOworfQorCiAvKgogICogZ2V0 X2NvbXBhdGlibGVfaGFzaF9vcGVyYXRvcnMKICAqCQlHZXQgdGhlIE9JRChzKSBvZiBoYXNo IGVxdWFsaXR5IG9wZXJhdG9yKHMpIGNvbXBhdGlibGUgd2l0aCB0aGUgZ2l2ZW4KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmgKaW5kZXggYjg4Y2ZiOGRjMC4uZjQwN2YxODUyZCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmgKQEAgLTIzMDUsNiArMjMwNSw3IEBAIHR5cGVkZWYgc3RydWN0IFJl c3RyaWN0SW5mbwogCSAqIG1lcmdlam9pbmFibGUsIGVsc2UgTklMCiAJICovCiAJTGlzdAkg ICAqbWVyZ2VvcGZhbWlsaWVzOworCUxpc3QJCSpidHJlZWluZXFvcGZhbWlsaWVzOyAvKiBi dHJlZSBmYW1pbGllcyBleGNlcHQgdGhlIG1lcmdlYWJsZSBvbmVzICovCiAKIAkvKgogCSAq IGNhY2hlIHNwYWNlIGZvciBtZXJnZWNsYXVzZSBwcm9jZXNzaW5nOyBOVUxMIGlmIG5vdCB5 ZXQgc2V0CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IGI4ZGQyN2Q0YTkuLjViNWZhYzAz OTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC03OSw2ICs3OSw3IEBAIGV4dGVybiBi b29sIGdldF9vcmRlcmluZ19vcF9wcm9wZXJ0aWVzKE9pZCBvcG5vLAogZXh0ZXJuIE9pZAln ZXRfZXF1YWxpdHlfb3BfZm9yX29yZGVyaW5nX29wKE9pZCBvcG5vLCBib29sICpyZXZlcnNl KTsKIGV4dGVybiBPaWQJZ2V0X29yZGVyaW5nX29wX2Zvcl9lcXVhbGl0eV9vcChPaWQgb3Bu bywgYm9vbCB1c2VfbGhzX3R5cGUpOwogZXh0ZXJuIExpc3QgKmdldF9tZXJnZWpvaW5fb3Bm YW1pbGllcyhPaWQgb3Bubyk7CitleHRlcm4gdm9pZCBnZXRfYnRyZWVfb3BmYW1pbGllcyhP aWQgb3BubywgTGlzdCAqKm1lcmdlYWJsZV9vcGZhbWlsaWVzLCBMaXN0ICoqdW5tZXJnZWFi bGVfYnRyZWVfb3BmYW1pbGllcyk7CiBleHRlcm4gYm9vbCBnZXRfY29tcGF0aWJsZV9oYXNo X29wZXJhdG9ycyhPaWQgb3BubywKIAkJCQkJCQkJCQkgIE9pZCAqbGhzX29wbm8sIE9pZCAq cmhzX29wbm8pOwogZXh0ZXJuIGJvb2wgZ2V0X29wX2hhc2hfZnVuY3Rpb25zKE9pZCBvcG5v LAotLSAKMi4zNy4wCgo= --------------SfwqipnKg6tF19DxN0lrjohf Content-Type: text/plain; charset=UTF-8; name="v5-0002-Introudce-ec_filters-in-EquivalenceClass-struct-the-.patch" Content-Disposition: attachment; filename*0="v5-0002-Introudce-ec_filters-in-EquivalenceClass-struct-the-"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSBlNjdkNTc2N2FlODU2MDZmOTlkNjk2ODc0ZDUzMzg4YmFjNjU0M2I3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogV2VkLCA2IEp1bCAyMDIyIDE1OjM2OjE5ICswMzAw ClN1YmplY3Q6IFtQQVRDSCAyLzZdIEludHJvdWRjZSBlY19maWx0ZXJzIGluIEVxdWl2YWxl bmNlQ2xhc3Mgc3RydWN0LCB0aGUKIHNlbWFudGljcyBpcyB0aGUgcXVhbHMgY2FuIGJlIGFw cGxpZWQgdG8gYW55IEVxdWl2YWxlbmNlTWVtYmVyIGluIHRoaXMgRUMuCiBMYXRlciB0aGlz IGluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZ2VuZXJhdGUgbmV3IFJlc3RyaWN0SW5mbyBhbmQg d2FzCiBkaXN0cmlidXRlZCB0byByZWxhdGVkIFJlbE9wdEluZm8gdmVyeSBzb29uLgoKVGhl cmUgYXJlIDMgbWFqb3Igc3RlcHMgaGVyZToKYSkuIEluIGRpc3RyaWJ1dGVfcXVhbF90b19y ZWxzIHRvIGdhdGhlciB0aGUgaW5lcSBxdWFsbGlzdC4KYikuIEFmdGVyIGRlY29uc3RydWN0 X2pvaW50cmVlLCBkaXN0cmlidXRlX2ZpbHRlcl9xdWFsc190b19lY2xhc3MgZGlzdHJpYnV0 ZQp0aGVzZSBpbmVxLXF1YWxsaXN0IHRvIHRoZSByZWxhdGVkIEVDJ3MgZWZfZmlsdGVycy4K YykuIGdlbmVyYXRlX2Jhc2VfaW1wbGllZF9lcXVhbGl0aWVzX25vX2NvbnN0IHNjYW4gdGhl IGVjX2ZpbHRlcnMgYW5kIGRpc3RyaXVidGUKdGhlIHJlc3RyaWN0aW5mbyB0byByZWxhdGVk IFJlbE9wdEluZm8uCgpBdXRob3I6IERhdmlkIFJvd2xleSBhdCAyMDE1LTEyIFsxXQpBbmR5 IEZhbiByZWJhc2VzIHRoaXMgcGF0Y2ggdG8gY3VycmVudCBsYXRlc3QgY29kZS4KLS0tCiAu Li4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCAgMzYgKyst LQogc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyAgICAgICAgICAgICAgICAgIHwgIDE0 ICsrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMgICAgICAgfCAx ODIgKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0 c3BsYW4uYyAgICAgICAgfCAgOTYgKysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAgMjggKysrCiBzcmMvaW5jbHVkZS9ub2Rlcy9u b2Rlcy5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGF0aG5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDM3ICsrKysKIHNyYy9pbmNsdWRlL29w dGltaXplci9wYXRocy5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dCAgICAgIHwgIDQ1ICsrKystCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0ICAgICAgICAgICAgfCAgMjIgKy0tCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL21lcmdlLm91dCAgICAgICAgICAgfCAgMTYgKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4ub3V0ICB8ICA0MyArKyst LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwgICAgICAgICAgIHwgIDEy ICsrCiAxNCBmaWxlcyBjaGFuZ2VkLCA0NjAgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdy ZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zk dy5vdXQKaW5kZXggNDQ0NTdmOTMwYy4uMjc1ODA0OWY1YiAxMDA2NDQKLS0tIGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmli L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0xNTQ1LDEyICsx NTQ1LDEyIEBAIFNFTEVDVCB0MS5jMSwgc3MuYSwgc3MuYiBGUk9NIChTRUxFQ1QgYzEgRlJP TSAiUyAxIi4iVCAzIiBXSEVSRSBjMSA9IDUwKSB0MSBJTk5FCiAtLSBmdWxsIG91dGVyIGpv aW4gKyBpbm5lciBqb2luCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBTRUxFQ1Qg dDEuYzEsIHQyLmMxLCB0My5jMSBGUk9NIGZ0NCB0MSBJTk5FUiBKT0lOIGZ0NSB0MiBPTiAo dDEuYzEgPSB0Mi5jMSArIDEgYW5kIHQxLmMxIGJldHdlZW4gNTAgYW5kIDYwKSBGVUxMIEpP SU4gZnQ0IHQzIE9OICh0Mi5jMSA9IHQzLmMxKSBPUkRFUiBCWSB0MS5jMSwgdDIuYzEsIHQz LmMxIExJTUlUIDEwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBGb3JlaWduIFNjYW4KICAgIE91dHB1 dDogdDEuYzEsIHQyLmMxLCB0My5jMQogICAgUmVsYXRpb25zOiAoKHB1YmxpYy5mdDQgdDEp IElOTkVSIEpPSU4gKHB1YmxpYy5mdDUgdDIpKSBGVUxMIEpPSU4gKHB1YmxpYy5mdDQgdDMp Ci0gICBSZW1vdGUgU1FMOiBTRUxFQ1QgcjEuYzEsIHIyLmMxLCByNC5jMSBGUk9NICgoIlMg MSIuIlQgMyIgcjEgSU5ORVIgSk9JTiAiUyAxIi4iVCA0IiByMiBPTiAoKChyMS5jMSA9IChy Mi5jMSArIDEpKSkgQU5EICgocjEuYzEgPj0gNTApKSBBTkQgKChyMS5jMSA8PSA2MCkpKSkg RlVMTCBKT0lOICJTIDEiLiJUIDMiIHI0IE9OICgoKHIyLmMxID0gcjQuYzEpKSkpIE9SREVS IEJZIHIxLmMxIEFTQyBOVUxMUyBMQVNULCByMi5jMSBBU0MgTlVMTFMgTEFTVCwgcjQuYzEg QVNDIE5VTExTIExBU1QgTElNSVQgMTA6OmJpZ2ludAorICAgUmVtb3RlIFNRTDogU0VMRUNU IHIxLmMxLCByMi5jMSwgcjQuYzEgRlJPTSAoKCJTIDEiLiJUIDMiIHIxIElOTkVSIEpPSU4g IlMgMSIuIlQgNCIgcjIgT04gKCgocjEuYzEgPSAocjIuYzEgKyAxKSkpIEFORCAoKChyMi5j MSArIDEpID49IDUwKSkgQU5EICgoKHIyLmMxICsgMSkgPD0gNjApKSBBTkQgKChyMS5jMSA+ PSA1MCkpIEFORCAoKHIxLmMxIDw9IDYwKSkpKSBGVUxMIEpPSU4gIlMgMSIuIlQgMyIgcjQg T04gKCgocjIuYzEgPSByNC5jMSkpKSkgT1JERVIgQlkgcjEuYzEgQVNDIE5VTExTIExBU1Qs IHIyLmMxIEFTQyBOVUxMUyBMQVNULCByNC5jMSBBU0MgTlVMTFMgTEFTVCBMSU1JVCAxMDo6 YmlnaW50CiAoNCByb3dzKQogCiBTRUxFQ1QgdDEuYzEsIHQyLmMxLCB0My5jMSBGUk9NIGZ0 NCB0MSBJTk5FUiBKT0lOIGZ0NSB0MiBPTiAodDEuYzEgPSB0Mi5jMSArIDEgYW5kIHQxLmMx IGJldHdlZW4gNTAgYW5kIDYwKSBGVUxMIEpPSU4gZnQ0IHQzIE9OICh0Mi5jMSA9IHQzLmMx KSBPUkRFUiBCWSB0MS5jMSwgdDIuYzEsIHQzLmMxIExJTUlUIDEwOwpAQCAtMjMzNSwxMiAr MjMzNSwxMiBAQCBTRUxFQ1QgZnQ0LmMxLCBxLiogRlJPTSBmdDQgTEVGVCBKT0lOIChTRUxF Q1QgMTMsIGZ0MS5jMSwgZnQyLmMxIEZST00gZnQxIFJJR0hUCiBVUERBVEUgZnQ1IFNFVCBj MyA9IG51bGwgd2hlcmUgYzEgJSA5ID0gMDsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9G RikKIFNFTEVDVCBmdDUsIGZ0NS5jMSwgZnQ1LmMyLCBmdDUuYzMsIGZ0NC5jMSwgZnQ0LmMy IEZST00gZnQ1IGxlZnQgam9pbiBmdDQgb24gZnQ1LmMxID0gZnQ0LmMxIFdIRVJFIGZ0NC5j MSBCRVRXRUVOIDEwIGFuZCAzMCBPUkRFUiBCWSBmdDUuYzEsIGZ0NC5jMTsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgRm9yZWlnbiBTY2FuCiAgICBPdXRwdXQ6IGZ0NS4qLCBmdDUuYzEs IGZ0NS5jMiwgZnQ1LmMzLCBmdDQuYzEsIGZ0NC5jMgogICAgUmVsYXRpb25zOiAocHVibGlj LmZ0NSkgSU5ORVIgSk9JTiAocHVibGljLmZ0NCkKLSAgIFJlbW90ZSBTUUw6IFNFTEVDVCBD QVNFIFdIRU4gKHIxLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIxLmMxLCByMS5j MiwgcjEuYzMpIEVORCwgcjEuYzEsIHIxLmMyLCByMS5jMywgcjIuYzEsIHIyLmMyIEZST00g KCJTIDEiLiJUIDQiIHIxIElOTkVSIEpPSU4gIlMgMSIuIlQgMyIgcjIgT04gKCgocjEuYzEg PSByMi5jMSkpIEFORCAoKHIyLmMxID49IDEwKSkgQU5EICgocjIuYzEgPD0gMzApKSkpIE9S REVSIEJZIHIxLmMxIEFTQyBOVUxMUyBMQVNUCisgICBSZW1vdGUgU1FMOiBTRUxFQ1QgQ0FT RSBXSEVOIChyMS4qKTo6dGV4dCBJUyBOT1QgTlVMTCBUSEVOIFJPVyhyMS5jMSwgcjEuYzIs IHIxLmMzKSBFTkQsIHIxLmMxLCByMS5jMiwgcjEuYzMsIHIyLmMxLCByMi5jMiBGUk9NICgi UyAxIi4iVCA0IiByMSBJTk5FUiBKT0lOICJTIDEiLiJUIDMiIHIyIE9OICgoKHIxLmMxID0g cjIuYzEpKSBBTkQgKChyMi5jMSA+PSAxMCkpIEFORCAoKHIyLmMxIDw9IDMwKSkgQU5EICgo cjEuYzEgPj0gMTApKSBBTkQgKChyMS5jMSA8PSAzMCkpKSkgT1JERVIgQlkgcjEuYzEgQVND IE5VTExTIExBU1QKICg0IHJvd3MpCiAKIFNFTEVDVCBmdDUsIGZ0NS5jMSwgZnQ1LmMyLCBm dDUuYzMsIGZ0NC5jMSwgZnQ0LmMyIEZST00gZnQ1IGxlZnQgam9pbiBmdDQgb24gZnQ1LmMx ID0gZnQ0LmMxIFdIRVJFIGZ0NC5jMSBCRVRXRUVOIDEwIGFuZCAzMCBPUkRFUiBCWSBmdDUu YzEsIGZ0NC5jMTsKQEAgLTIzNjIsOCArMjM2Miw4IEBAIFNFVCBlbmFibGVfaGFzaGpvaW4g VE8gZmFsc2U7CiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBTRUxFQ1QgKiBGUk9N IGZ0MSwgZnQyLCBmdDQsIGZ0NSwgbG9jYWxfdGJsIFdIRVJFIGZ0MS5jMSA9IGZ0Mi5jMSBB TkQgZnQxLmMyID0gZnQ0LmMxCiAgICAgQU5EIGZ0MS5jMiA9IGZ0NS5jMSBBTkQgZnQxLmMy ID0gbG9jYWxfdGJsLmMxIEFORCBmdDEuYzEgPCAxMDAgQU5EIGZ0Mi5jMSA8IDEwMCBGT1Ig VVBEQVRFOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIExvY2tSb3dzCiAgICBPdXRwdXQ6 IGZ0MS5jMSwgZnQxLmMyLCBmdDEuYzMsIGZ0MS5jNCwgZnQxLmM1LCBmdDEuYzYsIGZ0MS5j NywgZnQxLmM4LCBmdDIuYzEsIGZ0Mi5jMiwgZnQyLmMzLCBmdDIuYzQsIGZ0Mi5jNSwgZnQy LmM2LCBmdDIuYzcsIGZ0Mi5jOCwgZnQ0LmMxLCBmdDQuYzIsIGZ0NC5jMywgZnQ1LmMxLCBm dDUuYzIsIGZ0NS5jMywgbG9jYWxfdGJsLmMxLCBsb2NhbF90YmwuYzIsIGxvY2FsX3RibC5j MywgZnQxLiosIGZ0Mi4qLCBmdDQuKiwgZnQ1LiosIGxvY2FsX3RibC5jdGlkCiAgICAtPiAg TWVyZ2UgSm9pbgpAQCAtMjM3Myw3ICsyMzczLDcgQEAgU0VMRUNUICogRlJPTSBmdDEsIGZ0 MiwgZnQ0LCBmdDUsIGxvY2FsX3RibCBXSEVSRSBmdDEuYzEgPSBmdDIuYzEgQU5EIGZ0MS5j MiA9IGYKICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KICAgICAgICAgICAgICAgIE91dHB1 dDogZnQxLmMxLCBmdDEuYzIsIGZ0MS5jMywgZnQxLmM0LCBmdDEuYzUsIGZ0MS5jNiwgZnQx LmM3LCBmdDEuYzgsIGZ0MS4qLCBmdDIuYzEsIGZ0Mi5jMiwgZnQyLmMzLCBmdDIuYzQsIGZ0 Mi5jNSwgZnQyLmM2LCBmdDIuYzcsIGZ0Mi5jOCwgZnQyLiosIGZ0NC5jMSwgZnQ0LmMyLCBm dDQuYzMsIGZ0NC4qLCBmdDUuYzEsIGZ0NS5jMiwgZnQ1LmMzLCBmdDUuKgogICAgICAgICAg ICAgICAgUmVsYXRpb25zOiAoKChwdWJsaWMuZnQxKSBJTk5FUiBKT0lOIChwdWJsaWMuZnQy KSkgSU5ORVIgSk9JTiAocHVibGljLmZ0NCkpIElOTkVSIEpPSU4gKHB1YmxpYy5mdDUpCi0g ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgcjEuIkMgMSIsIHIxLmMyLCByMS5j MywgcjEuYzQsIHIxLmM1LCByMS5jNiwgcjEuYzcsIHIxLmM4LCBDQVNFIFdIRU4gKHIxLiop Ojp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIxLiJDIDEiLCByMS5jMiwgcjEuYzMsIHIx LmM0LCByMS5jNSwgcjEuYzYsIHIxLmM3LCByMS5jOCkgRU5ELCByMi4iQyAxIiwgcjIuYzIs IHIyLmMzLCByMi5jNCwgcjIuYzUsIHIyLmM2LCByMi5jNywgcjIuYzgsIENBU0UgV0hFTiAo cjIuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjIuIkMgMSIsIHIyLmMyLCByMi5j MywgcjIuYzQsIHIyLmM1LCByMi5jNiwgcjIuYzcsIHIyLmM4KSBFTkQsIHIzLmMxLCByMy5j MiwgcjMuYzMsIENBU0UgV0hFTiAocjMuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1co cjMuYzEsIHIzLmMyLCByMy5jMykgRU5ELCByNC5jMSwgcjQuYzIsIHI0LmMzLCBDQVNFIFdI RU4gKHI0LiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHI0LmMxLCByNC5jMiwgcjQu YzMpIEVORCBGUk9NICgoKCJTIDEiLiJUIDEiIHIxIElOTkVSIEpPSU4gIlMgMSIuIlQgMSIg cjIgT04gKCgocjEuIkMgMSIgPSByMi4iQyAxIikpIEFORCAoKHIyLiJDIDEiIDwgMTAwKSkg QU5EICgocjEuIkMgMSIgPCAxMDApKSkpIElOTkVSIEpPSU4gIlMgMSIuIlQgMyIgcjMgT04g KCgocjEuYzIgPSByMy5jMSkpKSkgSU5ORVIgSk9JTiAiUyAxIi4iVCA0IiByNCBPTiAoKChy MS5jMiA9IHI0LmMxKSkpKSBPUkRFUiBCWSByMS5jMiBBU0MgTlVMTFMgTEFTVCBGT1IgVVBE QVRFIE9GIHIxIEZPUiBVUERBVEUgT0YgcjIgRk9SIFVQREFURSBPRiByMyBGT1IgVVBEQVRF IE9GIHI0CisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgcjEuIkMgMSIsIHIx LmMyLCByMS5jMywgcjEuYzQsIHIxLmM1LCByMS5jNiwgcjEuYzcsIHIxLmM4LCBDQVNFIFdI RU4gKHIxLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIxLiJDIDEiLCByMS5jMiwg cjEuYzMsIHIxLmM0LCByMS5jNSwgcjEuYzYsIHIxLmM3LCByMS5jOCkgRU5ELCByMi4iQyAx IiwgcjIuYzIsIHIyLmMzLCByMi5jNCwgcjIuYzUsIHIyLmM2LCByMi5jNywgcjIuYzgsIENB U0UgV0hFTiAocjIuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjIuIkMgMSIsIHIy LmMyLCByMi5jMywgcjIuYzQsIHIyLmM1LCByMi5jNiwgcjIuYzcsIHIyLmM4KSBFTkQsIHIz LmMxLCByMy5jMiwgcjMuYzMsIENBU0UgV0hFTiAocjMuKik6OnRleHQgSVMgTk9UIE5VTEwg VEhFTiBST1cocjMuYzEsIHIzLmMyLCByMy5jMykgRU5ELCByNC5jMSwgcjQuYzIsIHI0LmMz LCBDQVNFIFdIRU4gKHI0LiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHI0LmMxLCBy NC5jMiwgcjQuYzMpIEVORCBGUk9NICgoKCJTIDEiLiJUIDEiIHIxIElOTkVSIEpPSU4gIlMg MSIuIlQgMSIgcjIgT04gKCgocjEuIkMgMSIgPSByMi4iQyAxIikpIEFORCAoKHIyLiJDIDEi IDwgMTAwKSkgQU5EICgocjIuIkMgMSIgPCAxMDApKSBBTkQgKChyMS4iQyAxIiA8IDEwMCkp IEFORCAoKHIxLiJDIDEiIDwgMTAwKSkpKSBJTk5FUiBKT0lOICJTIDEiLiJUIDMiIHIzIE9O ICgoKHIxLmMyID0gcjMuYzEpKSkpIElOTkVSIEpPSU4gIlMgMSIuIlQgNCIgcjQgT04gKCgo cjEuYzIgPSByNC5jMSkpKSkgT1JERVIgQlkgcjEuYzIgQVNDIE5VTExTIExBU1QgRk9SIFVQ REFURSBPRiByMSBGT1IgVVBEQVRFIE9GIHIyIEZPUiBVUERBVEUgT0YgcjMgRk9SIFVQREFU RSBPRiByNAogICAgICAgICAgICAgICAgLT4gIE1lcmdlIEpvaW4KICAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogZnQxLmMxLCBmdDEuYzIsIGZ0MS5jMywgZnQxLmM0LCBmdDEuYzUs IGZ0MS5jNiwgZnQxLmM3LCBmdDEuYzgsIGZ0MS4qLCBmdDIuYzEsIGZ0Mi5jMiwgZnQyLmMz LCBmdDIuYzQsIGZ0Mi5jNSwgZnQyLmM2LCBmdDIuYzcsIGZ0Mi5jOCwgZnQyLiosIGZ0NC5j MSwgZnQ0LmMyLCBmdDQuYzMsIGZ0NC4qLCBmdDUuYzEsIGZ0NS5jMiwgZnQ1LmMzLCBmdDUu KgogICAgICAgICAgICAgICAgICAgICAgTWVyZ2UgQ29uZDogKGZ0MS5jMiA9IGZ0NS5jMSkK QEAgLTIzOTEsMTIgKzIzOTEsMTIgQEAgU0VMRUNUICogRlJPTSBmdDEsIGZ0MiwgZnQ0LCBm dDUsIGxvY2FsX3RibCBXSEVSRSBmdDEuYzEgPSBmdDIuYzEgQU5EIGZ0MS5jMiA9IGYKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBm dDEuYzEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDEuYzEsIGZ0MS5jMiwgZnQx LmMzLCBmdDEuYzQsIGZ0MS5jNSwgZnQxLmM2LCBmdDEuYzcsIGZ0MS5jOCwgZnQxLioKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90 ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzggRlJPTSAi UyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiIDwgMTAwKSkgRk9SIFVQREFURQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDog U0VMRUNUICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCBGUk9NICJTIDEiLiJU IDEiIFdIRVJFICgoIkMgMSIgPCAxMDApKSBBTkQgKCgiQyAxIiA8IDEwMCkpIEZPUiBVUERB VEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBNYXRlcmlh bGl6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiBmdDIuYzEsIGZ0Mi5jMiwgZnQyLmMzLCBmdDIuYzQsIGZ0Mi5jNSwgZnQyLmM2LCBm dDIuYzcsIGZ0Mi5jOCwgZnQyLioKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDIu YzEsIGZ0Mi5jMiwgZnQyLmMzLCBmdDIuYzQsIGZ0Mi5jNSwgZnQyLmM2LCBmdDIuYzcsIGZ0 Mi5jOCwgZnQyLioKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2 LCBjNywgYzggRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiIDwgMTAwKSkgT1JERVIg QlkgIkMgMSIgQVNDIE5VTExTIExBU1QgRk9SIFVQREFURQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUICJD IDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCBGUk9NICJTIDEiLiJUIDEiIFdIRVJF ICgoIkMgMSIgPCAxMDApKSBBTkQgKCgiQyAxIiA8IDEwMCkpIE9SREVSIEJZICJDIDEiIEFT QyBOVUxMUyBMQVNUIEZPUiBVUERBVEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ ICBTb3J0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZ0NC5j MSwgZnQ0LmMyLCBmdDQuYzMsIGZ0NC4qCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTb3J0IEtleTogZnQ0LmMxCkBAIC01NzA1LDI1ICs1NzA1LDI1IEBAIFVQREFURSBm dDIgQVMgdGFyZ2V0IFNFVCAoYzIpID0gKAogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KQogVVBEQVRFIGZ0MiBkIFNFVCBjMiA9IENBU0UgV0hFTiByYW5kb20oKSA+PSAwIFRIRU4g ZC5jMiBFTFNFIDAgRU5ECiAgIEZST00gZnQyIEFTIHQgV0hFUkUgZC5jMSA9IHQuYzEgQU5E IGQuYzEgPiAxMDAwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLmZ0MiBkCiAgICBSZW1vdGUgU1FMOiBV UERBVEUgIlMgMSIuIlQgMSIgU0VUIGMyID0gJDIgV0hFUkUgY3RpZCA9ICQxCiAgICAtPiAg Rm9yZWlnbiBTY2FuCiAgICAgICAgICBPdXRwdXQ6IENBU0UgV0hFTiAocmFuZG9tKCkgPj0g JzAnOjpkb3VibGUgcHJlY2lzaW9uKSBUSEVOIGQuYzIgRUxTRSAwIEVORCwgZC5jdGlkLCBk LiosIHQuKgogICAgICAgICAgUmVsYXRpb25zOiAocHVibGljLmZ0MiBkKSBJTk5FUiBKT0lO IChwdWJsaWMuZnQyIHQpCi0gICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgcjEuYzIsIHIx LmN0aWQsIENBU0UgV0hFTiAocjEuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjEu IkMgMSIsIHIxLmMyLCByMS5jMywgcjEuYzQsIHIxLmM1LCByMS5jNiwgcjEuYzcsIHIxLmM4 KSBFTkQsIENBU0UgV0hFTiAocjIuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjIu IkMgMSIsIHIyLmMyLCByMi5jMywgcjIuYzQsIHIyLmM1LCByMi5jNiwgcjIuYzcsIHIyLmM4 KSBFTkQgRlJPTSAoIlMgMSIuIlQgMSIgcjEgSU5ORVIgSk9JTiAiUyAxIi4iVCAxIiByMiBP TiAoKChyMS4iQyAxIiA9IHIyLiJDIDEiKSkgQU5EICgocjEuIkMgMSIgPiAxMDAwKSkpKSBG T1IgVVBEQVRFIE9GIHIxCi0gICAgICAgICAtPiAgSGFzaCBKb2luCisgICAgICAgICBSZW1v dGUgU1FMOiBTRUxFQ1QgcjEuYzIsIHIxLmN0aWQsIENBU0UgV0hFTiAocjEuKik6OnRleHQg SVMgTk9UIE5VTEwgVEhFTiBST1cocjEuIkMgMSIsIHIxLmMyLCByMS5jMywgcjEuYzQsIHIx LmM1LCByMS5jNiwgcjEuYzcsIHIxLmM4KSBFTkQsIENBU0UgV0hFTiAocjIuKik6OnRleHQg SVMgTk9UIE5VTEwgVEhFTiBST1cocjIuIkMgMSIsIHIyLmMyLCByMi5jMywgcjIuYzQsIHIy LmM1LCByMi5jNiwgcjIuYzcsIHIyLmM4KSBFTkQgRlJPTSAoIlMgMSIuIlQgMSIgcjEgSU5O RVIgSk9JTiAiUyAxIi4iVCAxIiByMiBPTiAoKChyMS4iQyAxIiA9IHIyLiJDIDEiKSkgQU5E ICgocjIuIkMgMSIgPiAxMDAwKSkgQU5EICgocjEuIkMgMSIgPiAxMDAwKSkpKSBGT1IgVVBE QVRFIE9GIHIxCisgICAgICAgICAtPiAgTWVyZ2UgSm9pbgogICAgICAgICAgICAgICAgT3V0 cHV0OiBkLmMyLCBkLmN0aWQsIGQuKiwgdC4qCi0gICAgICAgICAgICAgICBIYXNoIENvbmQ6 IChkLmMxID0gdC5jMSkKKyAgICAgICAgICAgICAgIE1lcmdlIENvbmQ6IChkLmMxID0gdC5j MSkKICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MiBkCiAg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGQuYzIsIGQuY3RpZCwgZC4qLCBkLmMxCiAg ICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywg YzQsIGM1LCBjNiwgYzcsIGM4LCBjdGlkIEZST00gIlMgMSIuIlQgMSIgV0hFUkUgKCgiQyAx IiA+IDEwMDApKSBPUkRFUiBCWSAiQyAxIiBBU0MgTlVMTFMgTEFTVCBGT1IgVVBEQVRFCi0g ICAgICAgICAgICAgICAtPiAgSGFzaAorICAgICAgICAgICAgICAgLT4gIE1hdGVyaWFsaXpl CiAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQuKiwgdC5jMQogICAgICAgICAgICAg ICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnQyIHQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogdC4qLCB0LmMxCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBjNiwg YzcsIGM4IEZST00gIlMgMSIuIlQgMSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzggRlJP TSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiID4gMTAwMCkpIE9SREVSIEJZICJDIDEiIEFT QyBOVUxMUyBMQVNUCiAoMTcgcm93cykKIAogVVBEQVRFIGZ0MiBkIFNFVCBjMiA9IENBU0Ug V0hFTiByYW5kb20oKSA+PSAwIFRIRU4gZC5jMiBFTFNFIDAgRU5ECmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVu Y3MuYwppbmRleCAwNWYyN2YwNDRiLi5iMTk0NjJjNzU4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9ub2Rlcy9vdXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNz LmMKQEAgLTI2NjUsNiArMjY2NSwxNyBAQCBfb3V0RXF1aXZhbGVuY2VNZW1iZXIoU3RyaW5n SW5mbyBzdHIsIGNvbnN0IEVxdWl2YWxlbmNlTWVtYmVyICpub2RlKQogCVdSSVRFX09JRF9G SUVMRChlbV9kYXRhdHlwZSk7CiB9CiAKK3N0YXRpYyB2b2lkCitfb3V0RXF1aXZhbGVuY2VG aWx0ZXIoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IEVxdWl2YWxlbmNlRmlsdGVyICpub2RlKQor eworCVdSSVRFX05PREVfVFlQRSgiRVFVSVZBTEVOQ0VGSUxURVIiKTsKKworCVdSSVRFX05P REVfRklFTEQoZWZfY29uc3QpOworCVdSSVRFX09JRF9GSUVMRChlZl9vcG5vKTsKKwlXUklU RV9CT09MX0ZJRUxEKGVmX2NvbnN0X2lzX2xlZnQpOworCVdSSVRFX1VJTlRfRklFTEQoZWZf c291cmNlX3JlbCk7Cit9CisKIHN0YXRpYyB2b2lkCiBfb3V0UGF0aEtleShTdHJpbmdJbmZv IHN0ciwgY29uc3QgUGF0aEtleSAqbm9kZSkKIHsKQEAgLTQ0OTYsNiArNDUwNyw5IEBAIG91 dE5vZGUoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IHZvaWQgKm9iaikKIAkJCWNhc2UgVF9FcXVp dmFsZW5jZU1lbWJlcjoKIAkJCQlfb3V0RXF1aXZhbGVuY2VNZW1iZXIoc3RyLCBvYmopOwog CQkJCWJyZWFrOworCQkJY2FzZSBUX0VxdWl2YWxlbmNlRmlsdGVyOgorCQkJCV9vdXRFcXVp dmFsZW5jZUZpbHRlcihzdHIsIG9iaik7CisJCQkJYnJlYWs7CiAJCQljYXNlIFRfUGF0aEtl eToKIAkJCQlfb3V0UGF0aEtleShzdHIsIG9iaik7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMKaW5kZXggNjBjMGUzZjEwOC4uODljN2Yw ZGMzOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvZXF1aXZjbGFz cy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2VxdWl2Y2xhc3MuYwpAQCAt MTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAjaW5jbHVkZSAiYWNjZXNz L3N0cmF0bnVtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtMTIzMiw2ICsxMjMzLDM3IEBAIGdlbmVyYXRl X2Jhc2VfaW1wbGllZF9lcXVhbGl0aWVzX2NvbnN0KFBsYW5uZXJJbmZvICpyb290LAogCX0K IH0KIAorLyoKKyAqIGZpbmRzIHRoZSBvcGZhbWlseSBhbmQgc3RyYXRlZ3kgbnVtYmVyIGZv ciB0aGUgc3BlY2lmaWVkICdvcG5vJyBhbmQgJ21ldGhvZCcKKyAqIGFjY2VzcyBtZXRob2Qu IFJldHVybnMgVHJ1ZSBpZiBvbmUgaXMgZm91bmQgYW5kIHNldHMgJ2ZhbWlseScgYW5kCisg KiAnYW1zdHJhdGVneScsIG9yIHJldHVybnMgRmFsc2UgaWYgbm9uZSBhcmUgZm91bmQuCisg Ki8KK3N0YXRpYyBib29sCitmaW5kX2FtX2ZhbWlseV9hbmRfc3RhdGVneShPaWQgb3Bubywg T2lkIG1ldGhvZCwgT2lkICpmYW1pbHksIGludCAqYW1zdHJhdGVneSkKK3sKKwlMaXN0ICpv cGZhbWlsaWVzOworCUxpc3RDZWxsICpsOworCWludCBzdHJhdGVneTsKKworCW9wZmFtaWxp ZXMgPSBnZXRfb3BmYW1pbGllcyhvcG5vLCBtZXRob2QpOworCisJZm9yZWFjaChsLCBvcGZh bWlsaWVzKQorCXsKKwkJT2lkIG9wZmFtaWx5ID0gbGZpcnN0X29pZChsKTsKKworCQlzdHJh dGVneSA9IGdldF9vcF9vcGZhbWlseV9zdHJhdGVneShvcG5vLCBvcGZhbWlseSk7CisKKwkJ aWYgKHN0cmF0ZWd5KQorCQl7CisJCQkqYW1zdHJhdGVneSA9IHN0cmF0ZWd5OworCQkJKmZh bWlseSA9IG9wZmFtaWx5OworCQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CisKKwlyZXR1cm4g ZmFsc2U7Cit9CisKIC8qCiAgKiBnZW5lcmF0ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGllcyB3 aGVuIEVDIGNvbnRhaW5zIG5vIHBzZXVkb2NvbnN0YW50cwogICovCkBAIC0xMjQxLDYgKzEy NzMsNyBAQCBnZW5lcmF0ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGllc19ub19jb25zdChQbGFu bmVySW5mbyAqcm9vdCwKIHsKIAlFcXVpdmFsZW5jZU1lbWJlciAqKnByZXZfZW1zOwogCUxp c3RDZWxsICAgKmxjOworCUxpc3RDZWxsICAgKmxjMjsKIAogCS8qCiAJICogV2Ugc2NhbiB0 aGUgRUMgbWVtYmVycyBvbmNlIGFuZCB0cmFjayB0aGUgbGFzdC1zZWVuIG1lbWJlciBmb3Ig ZWFjaApAQCAtMTMwMiw2ICsxMzM1LDU3IEBAIGdlbmVyYXRlX2Jhc2VfaW1wbGllZF9lcXVh bGl0aWVzX25vX2NvbnN0KFBsYW5uZXJJbmZvICpyb290LAogCQkJCXJpbmZvLT5yaWdodF9l bSA9IGN1cl9lbTsKIAkJCX0KIAkJfQorCisJCS8qCisJCSAqIEFsc28gcHVzaCBhbnkgRXF1 aXZhbGVuY2VGaWx0ZXIgY2xhdXNlcyBkb3duIGludG8gYWxsIHJlbGF0aW9ucworCQkgKiBv dGhlciB0aGFuIHRoZSBvbmUgd2hpY2ggdGhlIGZpbHRlciBhY3R1YWxseSBvcmlnaW5hdGVk IGZyb20uCisJCSAqLworCQlmb3JlYWNoKGxjMiwgZWMtPmVjX2ZpbHRlcnMpCisJCXsKKwkJ CUVxdWl2YWxlbmNlRmlsdGVyICplZiA9IChFcXVpdmFsZW5jZUZpbHRlciAqKSBsZmlyc3Qo bGMyKTsKKwkJCUV4cHIgKmxlZnRleHByOworCQkJRXhwciAqcmlnaHRleHByOworCQkJaW50 IHN0cmF0ZWd5OworCQkJT2lkIG9wbm87CisJCQlPaWQgZmFtaWx5OworCisJCQlpZiAoZWYt PmVmX3NvdXJjZV9yZWwgPT0gcmVsaWQpCisJCQkJY29udGludWU7CisKKwkJCWlmICghZmlu ZF9hbV9mYW1pbHlfYW5kX3N0YXRlZ3koZWYtPmVmX29wbm8sIEJUUkVFX0FNX09JRCwKKwkJ CQkmZmFtaWx5LCAmc3RyYXRlZ3kpKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoZWYtPmVm X2NvbnN0X2lzX2xlZnQpCisJCQl7CisJCQkJbGVmdGV4cHIgPSAoRXhwciAqKSBlZi0+ZWZf Y29uc3Q7CisJCQkJcmlnaHRleHByID0gY3VyX2VtLT5lbV9leHByOworCQkJfQorCQkJZWxz ZQorCQkJeworCQkJCWxlZnRleHByID0gY3VyX2VtLT5lbV9leHByOworCQkJCXJpZ2h0ZXhw ciA9IChFeHByICopIGVmLT5lZl9jb25zdDsKKwkJCX0KKworCQkJb3BubyA9IGdldF9vcGZh bWlseV9tZW1iZXIoZmFtaWx5LAorCQkJCQkJCQkJCWV4cHJUeXBlKChOb2RlICopIGxlZnRl eHByKSwKKwkJCQkJCQkJCQlleHByVHlwZSgoTm9kZSAqKSByaWdodGV4cHIpLAorCQkJCQkJ CQkJCXN0cmF0ZWd5KTsKKworCQkJaWYgKG9wbm8gPT0gSW52YWxpZE9pZCkKKwkJCQljb250 aW51ZTsKKworCQkJcHJvY2Vzc19pbXBsaWVkX2VxdWFsaXR5KHJvb3QsIG9wbm8sCisJCQkJ CQkJCQkJZWMtPmVjX2NvbGxhdGlvbiwKKwkJCQkJCQkJCQlsZWZ0ZXhwciwKKwkJCQkJCQkJ CQlyaWdodGV4cHIsCisJCQkJCQkJCQkJYm1zX2NvcHkoZWMtPmVjX3JlbGlkcyksCisJCQkJ CQkJCQkJYm1zX2NvcHkoY3VyX2VtLT5lbV9udWxsYWJsZV9yZWxpZHMpLAorCQkJCQkJCQkJ CWVjLT5lY19taW5fc2VjdXJpdHksCisJCQkJCQkJCQkJZWMtPmVjX2JlbG93X291dGVyX2pv aW4sCisJCQkJCQkJCQkJZmFsc2UpOworCQl9CisKIAkJcHJldl9lbXNbcmVsaWRdID0gY3Vy X2VtOwogCX0KIApAQCAtMTg4Myw2ICsxOTY3LDEwNCBAQCBjcmVhdGVfam9pbl9jbGF1c2Uo UGxhbm5lckluZm8gKnJvb3QsCiAJcmV0dXJuIHJpbmZvOwogfQogCisvKgorICogZGlzdHJp YnV0ZV9maWx0ZXJfcXVhbHNfdG9fZWNsYXNzCisgKgkJRm9yIGVhY2ggT3BFeHByIGluIHF1 YWxsaXN0IGxvb2sgZm9yIGFuIGVjbGFzcyB3aGljaCBoYXMgYW4gRXhwcgorICoJCW1hdGNo aW5nIHRoZSBFeHByIGluIHRoZSBPcEV4cHIuIElmIGEgbWF0Y2ggaXMgZm91bmQgd2UgYWRk IGEgbmV3CisgKgkJRXF1aXZhbGVuY2VGaWx0ZXIgdG8gdGhlIGVjbGFzcyBjb250YWluaW5n IHRoZSBmaWx0ZXIgZGV0YWlscy4KKyAqLwordm9pZAorZGlzdHJpYnV0ZV9maWx0ZXJfcXVh bHNfdG9fZWNsYXNzKFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICpxdWFsbGlzdCkKK3sKKwlM aXN0Q2VsbCAqbDsKKworCS8qIGZhc3QgcGF0aCBmb3Igd2hlbiBubyBlY2xhc3NlcyBoYXZl IGJlZW4gZ2VuZXJhdGVkICovCisJaWYgKHJvb3QtPmVxX2NsYXNzZXMgPT0gTklMKQorCQly ZXR1cm47CisKKwkvKgorCSAqIEZvciBlYWNoIHF1YWwgaW4gcXVhbGxpc3QgdHJ5IGFuZCBm aW5kIGFuIGVjbGFzcyB3aGljaCBjb250YWlucyB0aGUKKwkgKiBub24tQ29uc3QgcGFydCBv ZiB0aGUgT3BFeHByLiBXZSdsbCB0YWcgYW55IG1hdGNoZXMgdGhhdCB3ZSBmaW5kIG9udG8K KwkgKiB0aGUgY29ycmVjdCBlY2xhc3MuCisJICovCisJZm9yZWFjaChsLCBxdWFsbGlzdCkK Kwl7CisJCU9wRXhwcgkgICAqb3BleHByID0gKE9wRXhwciAqKSBsZmlyc3QobCk7CisJCUV4 cHIJICAgKmxlZnRleHByID0gKEV4cHIgKikgbGluaXRpYWwob3BleHByLT5hcmdzKTsKKwkJ RXhwcgkgICAqcmlnaHRleHByID0gKEV4cHIgKikgbHNlY29uZChvcGV4cHItPmFyZ3MpOwor CQlDb25zdAkgICAqY29uc3RleHByOworCQlFeHByCSAgICp2YXJleHByOworCQlSZWxpZHMJ CWV4cHJyZWxzOworCQlpbnQJCQlyZWxpZDsKKwkJYm9vbAkJY29uc3RfaXNsZWZ0OworCQlM aXN0Q2VsbCAqbDI7CisKKwkJLyoKKwkJICogRGV0ZXJtaW5lIGlmIHRoZSB0aGUgT3BFeHBy IGlzIGluIHRoZSBmb3JtICJleHByIG9wIGNvbnN0IiBvcgorCQkgKiAiY29uc3Qgb3AgZXhw ciIuCisJCSAqLworCQlpZiAoSXNBKGxlZnRleHByLCBDb25zdCkpCisJCXsKKwkJCWNvbnN0 ZXhwciA9IChDb25zdCAqKSBsZWZ0ZXhwcjsKKwkJCXZhcmV4cHIgPSByaWdodGV4cHI7CisJ CQljb25zdF9pc2xlZnQgPSB0cnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJY29uc3RleHBy ID0gKENvbnN0ICopIHJpZ2h0ZXhwcjsKKwkJCXZhcmV4cHIgPSBsZWZ0ZXhwcjsKKwkJCWNv bnN0X2lzbGVmdCA9IGZhbHNlOworCQl9CisKKwkJZXhwcnJlbHMgPSBwdWxsX3Zhcm5vcyhy b290LCAoTm9kZSAqKSB2YXJleHByKTsKKworCQkvKiBzaG91bGQgYmUgZmlsdGVyZWQgb3V0 LCBidXQgd2UgbmVlZCB0byBkZXRlcm1pbmUgcmVsaWQgYW55d2F5ICovCisJCWlmICghYm1z X2dldF9zaW5nbGV0b25fbWVtYmVyKGV4cHJyZWxzLCAmcmVsaWQpKQorCQkJY29udGludWU7 CisKKwkJLyogc2VhcmNoIGZvciBhIG1hdGNoaW5nIGVjbGFzcyBtZW1iZXIgaW4gYWxsIGVj bGFzc2VzICovCisJCWZvcmVhY2gobDIsIHJvb3QtPmVxX2NsYXNzZXMpCisJCXsKKwkJCUVx dWl2YWxlbmNlQ2xhc3MgKmVjID0gKEVxdWl2YWxlbmNlQ2xhc3MgKikgbGZpcnN0KGwyKTsK KwkJCUxpc3RDZWxsICpsMzsKKworCQkJaWYgKGVjLT5lY19icm9rZW4gfHwgZWMtPmVjX2hh c192b2xhdGlsZSkKKwkJCQljb250aW51ZTsKKworCQkJLyoKKwkJCSAqIGlmIHRoZSBlY2xh c3MgaGFzIGEgY29uc3QgdGhlbiB0aGF0IGNvbnN0IHdpbGwgc2VydmUgYXMgdGhlCisJCQkg KiBmaWx0ZXIsIHdlIG5lZWRuJ3QgYWRkIGFueSBvdGhlcnMuCisJCQkgKi8KKwkJCWlmIChl Yy0+ZWNfaGFzX2NvbnN0KQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBza2lwIHRoaXMgZWNs YXNzIG5vIG1lbWJlcnMgZXhpc3Qgd2hpY2ggYmVsb25nIHRvIHRoaXMgcmVsaWQgKi8KKwkJ CWlmICghYm1zX2lzX21lbWJlcihyZWxpZCwgZWMtPmVjX3JlbGlkcykpCisJCQkJY29udGlu dWU7CisKKwkJCWZvcmVhY2gobDMsIGVjLT5lY19tZW1iZXJzKQorCQkJeworCQkJCUVxdWl2 YWxlbmNlTWVtYmVyICplbSA9IChFcXVpdmFsZW5jZU1lbWJlciAqKSBsZmlyc3QobDMpOwor CisJCQkJaWYgKCFibXNfaXNfbWVtYmVyKHJlbGlkLCBlbS0+ZW1fcmVsaWRzKSkKKwkJCQkJ Y29udGludWU7CisKKwkJCQlpZiAoZXF1YWwoZW0tPmVtX2V4cHIsIHZhcmV4cHIpKQorCQkJ CXsKKwkJCQkJRXF1aXZhbGVuY2VGaWx0ZXIgKmVmaWx0ZXI7CisJCQkJCWVmaWx0ZXIgPSBt YWtlTm9kZShFcXVpdmFsZW5jZUZpbHRlcik7CisJCQkJCWVmaWx0ZXItPmVmX2NvbnN0ID0g KENvbnN0ICopIGNvcHlPYmplY3QoY29uc3RleHByKTsKKwkJCQkJZWZpbHRlci0+ZWZfY29u c3RfaXNfbGVmdCA9IGNvbnN0X2lzbGVmdDsKKwkJCQkJZWZpbHRlci0+ZWZfb3BubyA9IG9w ZXhwci0+b3BubzsKKwkJCQkJZWZpbHRlci0+ZWZfc291cmNlX3JlbCA9IHJlbGlkOworCisJ CQkJCWVjLT5lY19maWx0ZXJzID0gbGFwcGVuZChlYy0+ZWNfZmlsdGVycywgZWZpbHRlcik7 CisJCQkJCWJyZWFrOwkJLyogT250byB0aGUgbmV4dCBlY2xhc3MgKi8KKwkJCQl9CisJCQl9 CisJCX0KKwl9Cit9CiAKIC8qCiAgKiByZWNvbnNpZGVyX291dGVyX2pvaW5fY2xhdXNlcwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYwppbmRleCBmYTJiZmJmYjcy Li5mODYyNzZiNjY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9p bml0c3BsYW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4u YwpAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0X2xhdGVyYWxfcmVmZXJl bmNlcyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqYnJlbCwKIHN0YXRpYyBMaXN0 ICpkZWNvbnN0cnVjdF9yZWN1cnNlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUs CiAJCQkJCQkJCSBib29sIGJlbG93X291dGVyX2pvaW4sCiAJCQkJCQkJCSBSZWxpZHMgKnF1 YWxzY29wZSwgUmVsaWRzICppbm5lcl9qb2luX3JlbHMsCi0JCQkJCQkJCSBMaXN0ICoqcG9z dHBvbmVkX3F1YWxfbGlzdCk7CisJCQkJCQkJCSBMaXN0ICoqcG9zdHBvbmVkX3F1YWxfbGlz dCwgTGlzdCAqKmZpbHRlcl9xdWFsX2xpc3QpOwogc3RhdGljIHZvaWQgcHJvY2Vzc19zZWN1 cml0eV9iYXJyaWVyX3F1YWxzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCSAgIGlu dCBydGksIFJlbGlkcyBxdWFsc2NvcGUsCiAJCQkJCQkJCQkJICAgYm9vbCBiZWxvd19vdXRl cl9qb2luKTsKQEAgLTcwLDcgKzcwLDggQEAgc3RhdGljIHZvaWQgZGlzdHJpYnV0ZV9xdWFs X3RvX3JlbHMoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmNsYXVzZSwKIAkJCQkJCQkJCVJl bGlkcyBxdWFsc2NvcGUsCiAJCQkJCQkJCQlSZWxpZHMgb2pzY29wZSwKIAkJCQkJCQkJCVJl bGlkcyBvdXRlcmpvaW5fbm9ubnVsbGFibGUsCi0JCQkJCQkJCQlMaXN0ICoqcG9zdHBvbmVk X3F1YWxfbGlzdCk7CisJCQkJCQkJCQlMaXN0ICoqcG9zdHBvbmVkX3F1YWxfbGlzdCwKKwkJ CQkJCQkJCUxpc3QgKipmaWx0ZXJfcXVhbF9saXN0KTsKIHN0YXRpYyBib29sIGNoZWNrX291 dGVyam9pbl9kZWxheShQbGFubmVySW5mbyAqcm9vdCwgUmVsaWRzICpyZWxpZHNfcCwKIAkJ CQkJCQkJICBSZWxpZHMgKm51bGxhYmxlX3JlbGlkc19wLCBib29sIGlzX3B1c2hlZF9kb3du KTsKIHN0YXRpYyBib29sIGNoZWNrX2VxdWl2YWxlbmNlX2RlbGF5KFBsYW5uZXJJbmZvICpy b290LApAQCAtNjUwLDYgKzY1MSw0MyBAQCBjcmVhdGVfbGF0ZXJhbF9qb2luX2luZm8oUGxh bm5lckluZm8gKnJvb3QpCiAJfQogfQogCisvKgorICogaXNfc2ltcGxlX2ZpbHRlcl9xdWFs CisgKiAgICAgICAgICAgICBBbmFseXplcyBhbiBPcEV4cHIgdG8gZGV0ZXJtaW5lIGlmIGl0 IG1heSBiZSB1c2VmdWwgYXMgYW4KKyAqICAgICAgICAgICAgIEVxdWl2YWxlbmNlRmlsdGVy LiBSZXR1cm5zIHRydWUgaWYgdGhlIE9wRXhwciBtYXkgYmUgb2Ygc29tZSB1c2UsIG9yCisg KiAgICAgICAgICAgICBmYWxzZSBpZiBpdCBzaG91bGQgbm90IGJlIHVzZWQuCisgKi8KK3N0 YXRpYyBib29sCitpc19zaW1wbGVfZmlsdGVyX3F1YWwoUGxhbm5lckluZm8gKnJvb3QsIE9w RXhwciAqZXhwcikKK3sKKwlFeHByICpsZWZ0ZXhwcjsKKwlFeHByICpyaWdodGV4cHI7CisK KwlpZiAoIUlzQShleHByLCBPcEV4cHIpKQorCQkJcmV0dXJuIGZhbHNlOworCisJaWYgKGxp c3RfbGVuZ3RoKGV4cHItPmFyZ3MpICE9IDIpCisJCQlyZXR1cm4gZmFsc2U7CisKKwlsZWZ0 ZXhwciA9IChFeHByICopIGxpbml0aWFsKGV4cHItPmFyZ3MpOworCXJpZ2h0ZXhwciA9IChF eHByICopIGxzZWNvbmQoZXhwci0+YXJncyk7CisKKwkvKiBYWFggc2hvdWxkIHdlIHJlc3Ry aWN0IHRoZXNlIHRvIHNpbXBsZSBWYXIgb3AgQ29uc3QgZXhwcmVzc2lvbnM/ICovCisJaWYg KElzQShsZWZ0ZXhwciwgQ29uc3QpKQorCXsKKwkJaWYgKGJtc19tZW1iZXJzaGlwKHB1bGxf dmFybm9zKHJvb3QsIChOb2RlICopIHJpZ2h0ZXhwcikpID09IEJNU19TSU5HTEVUT04gJiYK KwkJCSFjb250YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucygoTm9kZSAqKSByaWdodGV4cHIpKQor CQkJcmV0dXJuIHRydWU7CisJfQorCWVsc2UgaWYgKElzQShyaWdodGV4cHIsIENvbnN0KSkK Kwl7CisJCWlmIChibXNfbWVtYmVyc2hpcChwdWxsX3Zhcm5vcyhyb290LCAoTm9kZSAqKSBs ZWZ0ZXhwcikpID09IEJNU19TSU5HTEVUT04gJiYKKwkJCSFjb250YWluX3ZvbGF0aWxlX2Z1 bmN0aW9ucygoTm9kZSAqKSBsZWZ0ZXhwcikpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwly ZXR1cm4gZmFsc2U7Cit9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTY5 MCw2ICs3MjgsNyBAQCBkZWNvbnN0cnVjdF9qb2ludHJlZShQbGFubmVySW5mbyAqcm9vdCkK IAlSZWxpZHMJCXF1YWxzY29wZTsKIAlSZWxpZHMJCWlubmVyX2pvaW5fcmVsczsKIAlMaXN0 CSAgICpwb3N0cG9uZWRfcXVhbF9saXN0ID0gTklMOworCUxpc3QJICAgKmZpbHRlcl9xdWFs X2xpc3QgPSBOSUw7CiAKIAkvKiBTdGFydCByZWN1cnNpb24gYXQgdG9wIG9mIGpvaW50cmVl ICovCiAJQXNzZXJ0KHJvb3QtPnBhcnNlLT5qb2ludHJlZSAhPSBOVUxMICYmCkBAIC03MDAs MTEgKzczOSwxNCBAQCBkZWNvbnN0cnVjdF9qb2ludHJlZShQbGFubmVySW5mbyAqcm9vdCkK IAogCXJlc3VsdCA9IGRlY29uc3RydWN0X3JlY3Vyc2Uocm9vdCwgKE5vZGUgKikgcm9vdC0+ cGFyc2UtPmpvaW50cmVlLCBmYWxzZSwKIAkJCQkJCQkJICZxdWFsc2NvcGUsICZpbm5lcl9q b2luX3JlbHMsCi0JCQkJCQkJCSAmcG9zdHBvbmVkX3F1YWxfbGlzdCk7CisJCQkJCQkJCSAm cG9zdHBvbmVkX3F1YWxfbGlzdCwgJmZpbHRlcl9xdWFsX2xpc3QpOwogCiAJLyogU2hvdWxk bid0IGJlIGFueSBsZWZ0b3ZlciBxdWFscyAqLwogCUFzc2VydChwb3N0cG9uZWRfcXVhbF9s aXN0ID09IE5JTCk7CiAKKwkvKiB0cnkgYW5kIG1hdGNoIGVhY2ggZmlsdGVyX3F1YWxfbGlz dCBpdGVtIHVwIHdpdGggYW4gZWNsYXNzLiAqLworCWRpc3RyaWJ1dGVfZmlsdGVyX3F1YWxz X3RvX2VjbGFzcyhyb290LCBmaWx0ZXJfcXVhbF9saXN0KTsKKwogCXJldHVybiByZXN1bHQ7 CiB9CiAKQEAgLTcyNSw2ICs3NjcsOCBAQCBkZWNvbnN0cnVjdF9qb2ludHJlZShQbGFubmVy SW5mbyAqcm9vdCkKICAqCQlvciBmcmVlIHRoaXMsIGVpdGhlcikKICAqCSpwb3N0cG9uZWRf cXVhbF9saXN0IGlzIGEgbGlzdCBvZiBQb3N0cG9uZWRRdWFsIHN0cnVjdHMsIHdoaWNoIHdl IGNhbgogICoJCWFkZCBxdWFscyB0byBpZiB0aGV5IHR1cm4gb3V0IHRvIGJlbG9uZyB0byBh IGhpZ2hlciBqb2luIGxldmVsCisgKgkqZmlsdGVyX3F1YWxfbGlzdCBpcyBhcHBlbmRlZCB0 byB3aXRoIGEgbGlzdCBvZiBxdWFscyB3aGljaCBtYXkgYmUgdXNlZnVsCisgKgkJaW5jbHVk ZSBhcyBFcXVpdmFsZW5jZUZpbHRlcnMuCiAgKglSZXR1cm4gdmFsdWUgaXMgdGhlIGFwcHJv cHJpYXRlIGpvaW5saXN0IGZvciB0aGlzIGpvaW50cmVlIG5vZGUKICAqCiAgKiBJbiBhZGRp dGlvbiwgZW50cmllcyB3aWxsIGJlIGFkZGVkIHRvIHJvb3QtPmpvaW5faW5mb19saXN0IGZv ciBvdXRlciBqb2lucy4KQEAgLTczMiw3ICs3NzYsNyBAQCBkZWNvbnN0cnVjdF9qb2ludHJl ZShQbGFubmVySW5mbyAqcm9vdCkKIHN0YXRpYyBMaXN0ICoKIGRlY29uc3RydWN0X3JlY3Vy c2UoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgYm9vbCBiZWxvd19vdXRlcl9q b2luLAogCQkJCQlSZWxpZHMgKnF1YWxzY29wZSwgUmVsaWRzICppbm5lcl9qb2luX3JlbHMs Ci0JCQkJCUxpc3QgKipwb3N0cG9uZWRfcXVhbF9saXN0KQorCQkJCQlMaXN0ICoqcG9zdHBv bmVkX3F1YWxfbGlzdCwgTGlzdCAqKmZpbHRlcl9xdWFsX2xpc3QpCiB7CiAJTGlzdAkgICAq am9pbmxpc3Q7CiAKQEAgLTc4NSw3ICs4MjksOCBAQCBkZWNvbnN0cnVjdF9yZWN1cnNlKFBs YW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIGJvb2wgYmVsb3dfb3V0ZXJfam9pbiwK IAkJCQkJCQkJCQkJICAgYmVsb3dfb3V0ZXJfam9pbiwKIAkJCQkJCQkJCQkJICAgJnN1Yl9x dWFsc2NvcGUsCiAJCQkJCQkJCQkJCSAgIGlubmVyX2pvaW5fcmVscywKLQkJCQkJCQkJCQkJ ICAgJmNoaWxkX3Bvc3Rwb25lZF9xdWFscyk7CisJCQkJCQkJCQkJCSAgICZjaGlsZF9wb3N0 cG9uZWRfcXVhbHMsCisJCQkJCQkJCQkJCSAgIGZpbHRlcl9xdWFsX2xpc3QpOwogCQkJKnF1 YWxzY29wZSA9IGJtc19hZGRfbWVtYmVycygqcXVhbHNjb3BlLCBzdWJfcXVhbHNjb3BlKTsK IAkJCXN1Yl9tZW1iZXJzID0gbGlzdF9sZW5ndGgoc3ViX2pvaW5saXN0KTsKIAkJCXJlbWFp bmluZy0tOwpAQCAtODE5LDcgKzg2NCw4IEBAIGRlY29uc3RydWN0X3JlY3Vyc2UoUGxhbm5l ckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgYm9vbCBiZWxvd19vdXRlcl9qb2luLAogCQkJ CQkJCQkJCWJlbG93X291dGVyX2pvaW4sIEpPSU5fSU5ORVIsCiAJCQkJCQkJCQkJcm9vdC0+ cXVhbF9zZWN1cml0eV9sZXZlbCwKIAkJCQkJCQkJCQkqcXVhbHNjb3BlLCBOVUxMLCBOVUxM LAotCQkJCQkJCQkJCU5VTEwpOworCQkJCQkJCQkJCU5VTEwsCisJCQkJCQkJCQkJZmlsdGVy X3F1YWxfbGlzdCk7CiAJCQllbHNlCiAJCQkJKnBvc3Rwb25lZF9xdWFsX2xpc3QgPSBsYXBw ZW5kKCpwb3N0cG9uZWRfcXVhbF9saXN0LCBwcSk7CiAJCX0KQEAgLTgzNSw3ICs4ODEsOCBA QCBkZWNvbnN0cnVjdF9yZWN1cnNlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUs IGJvb2wgYmVsb3dfb3V0ZXJfam9pbiwKIAkJCQkJCQkJCWJlbG93X291dGVyX2pvaW4sIEpP SU5fSU5ORVIsCiAJCQkJCQkJCQlyb290LT5xdWFsX3NlY3VyaXR5X2xldmVsLAogCQkJCQkJ CQkJKnF1YWxzY29wZSwgTlVMTCwgTlVMTCwKLQkJCQkJCQkJCXBvc3Rwb25lZF9xdWFsX2xp c3QpOworCQkJCQkJCQkJcG9zdHBvbmVkX3F1YWxfbGlzdCwKKwkJCQkJCQkJCWZpbHRlcl9x dWFsX2xpc3QpOwogCQl9CiAJfQogCWVsc2UgaWYgKElzQShqdG5vZGUsIEpvaW5FeHByKSkK QEAgLTg3MywxMSArOTIwLDEzIEBAIGRlY29uc3RydWN0X3JlY3Vyc2UoUGxhbm5lckluZm8g KnJvb3QsIE5vZGUgKmp0bm9kZSwgYm9vbCBiZWxvd19vdXRlcl9qb2luLAogCQkJCWxlZnRq b2lubGlzdCA9IGRlY29uc3RydWN0X3JlY3Vyc2Uocm9vdCwgai0+bGFyZywKIAkJCQkJCQkJ CQkJCSAgIGJlbG93X291dGVyX2pvaW4sCiAJCQkJCQkJCQkJCQkgICAmbGVmdGlkcywgJmxl ZnRfaW5uZXJzLAotCQkJCQkJCQkJCQkJICAgJmNoaWxkX3Bvc3Rwb25lZF9xdWFscyk7CisJ CQkJCQkJCQkJCQkgICAmY2hpbGRfcG9zdHBvbmVkX3F1YWxzLAorCQkJCQkJCQkJCQkJICAg ZmlsdGVyX3F1YWxfbGlzdCk7CiAJCQkJcmlnaHRqb2lubGlzdCA9IGRlY29uc3RydWN0X3Jl Y3Vyc2Uocm9vdCwgai0+cmFyZywKIAkJCQkJCQkJCQkJCQliZWxvd19vdXRlcl9qb2luLAog CQkJCQkJCQkJCQkJCSZyaWdodGlkcywgJnJpZ2h0X2lubmVycywKLQkJCQkJCQkJCQkJCQkm Y2hpbGRfcG9zdHBvbmVkX3F1YWxzKTsKKwkJCQkJCQkJCQkJCQkmY2hpbGRfcG9zdHBvbmVk X3F1YWxzLAorCQkJCQkJCQkJCQkJCWZpbHRlcl9xdWFsX2xpc3QpOwogCQkJCSpxdWFsc2Nv cGUgPSBibXNfdW5pb24obGVmdGlkcywgcmlnaHRpZHMpOwogCQkJCSppbm5lcl9qb2luX3Jl bHMgPSAqcXVhbHNjb3BlOwogCQkJCS8qIElubmVyIGpvaW4gYWRkcyBubyByZXN0cmljdGlv bnMgZm9yIHF1YWxzICovCkBAIC04OTAsMTEgKzkzOSwxMyBAQCBkZWNvbnN0cnVjdF9yZWN1 cnNlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIGJvb2wgYmVsb3dfb3V0ZXJf am9pbiwKIAkJCQlsZWZ0am9pbmxpc3QgPSBkZWNvbnN0cnVjdF9yZWN1cnNlKHJvb3QsIGot PmxhcmcsCiAJCQkJCQkJCQkJCQkgICBiZWxvd19vdXRlcl9qb2luLAogCQkJCQkJCQkJCQkJ ICAgJmxlZnRpZHMsICZsZWZ0X2lubmVycywKLQkJCQkJCQkJCQkJCSAgICZjaGlsZF9wb3N0 cG9uZWRfcXVhbHMpOworCQkJCQkJCQkJCQkJICAgJmNoaWxkX3Bvc3Rwb25lZF9xdWFscywK KwkJCQkJCQkJCQkJCSAgIGZpbHRlcl9xdWFsX2xpc3QpOwogCQkJCXJpZ2h0am9pbmxpc3Qg PSBkZWNvbnN0cnVjdF9yZWN1cnNlKHJvb3QsIGotPnJhcmcsCiAJCQkJCQkJCQkJCQkJdHJ1 ZSwKIAkJCQkJCQkJCQkJCQkmcmlnaHRpZHMsICZyaWdodF9pbm5lcnMsCi0JCQkJCQkJCQkJ CQkJJmNoaWxkX3Bvc3Rwb25lZF9xdWFscyk7CisJCQkJCQkJCQkJCQkJJmNoaWxkX3Bvc3Rw b25lZF9xdWFscywKKwkJCQkJCQkJCQkJCQlmaWx0ZXJfcXVhbF9saXN0KTsKIAkJCQkqcXVh bHNjb3BlID0gYm1zX3VuaW9uKGxlZnRpZHMsIHJpZ2h0aWRzKTsKIAkJCQkqaW5uZXJfam9p bl9yZWxzID0gYm1zX3VuaW9uKGxlZnRfaW5uZXJzLCByaWdodF9pbm5lcnMpOwogCQkJCW5v bm51bGxhYmxlX3JlbHMgPSBsZWZ0aWRzOwpAQCAtOTA0LDExICs5NTUsMTMgQEAgZGVjb25z dHJ1Y3RfcmVjdXJzZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBib29sIGJl bG93X291dGVyX2pvaW4sCiAJCQkJbGVmdGpvaW5saXN0ID0gZGVjb25zdHJ1Y3RfcmVjdXJz ZShyb290LCBqLT5sYXJnLAogCQkJCQkJCQkJCQkJICAgYmVsb3dfb3V0ZXJfam9pbiwKIAkJ CQkJCQkJCQkJCSAgICZsZWZ0aWRzLCAmbGVmdF9pbm5lcnMsCi0JCQkJCQkJCQkJCQkgICAm Y2hpbGRfcG9zdHBvbmVkX3F1YWxzKTsKKwkJCQkJCQkJCQkJCSAgICZjaGlsZF9wb3N0cG9u ZWRfcXVhbHMsCisJCQkJCQkJCQkJCQkgICBmaWx0ZXJfcXVhbF9saXN0KTsKIAkJCQlyaWdo dGpvaW5saXN0ID0gZGVjb25zdHJ1Y3RfcmVjdXJzZShyb290LCBqLT5yYXJnLAogCQkJCQkJ CQkJCQkJCWJlbG93X291dGVyX2pvaW4sCiAJCQkJCQkJCQkJCQkJJnJpZ2h0aWRzLCAmcmln aHRfaW5uZXJzLAotCQkJCQkJCQkJCQkJCSZjaGlsZF9wb3N0cG9uZWRfcXVhbHMpOworCQkJ CQkJCQkJCQkJCSZjaGlsZF9wb3N0cG9uZWRfcXVhbHMsCisJCQkJCQkJCQkJCQkJZmlsdGVy X3F1YWxfbGlzdCk7CiAJCQkJKnF1YWxzY29wZSA9IGJtc191bmlvbihsZWZ0aWRzLCByaWdo dGlkcyk7CiAJCQkJKmlubmVyX2pvaW5fcmVscyA9IGJtc191bmlvbihsZWZ0X2lubmVycywg cmlnaHRfaW5uZXJzKTsKIAkJCQkvKiBTZW1pIGpvaW4gYWRkcyBubyByZXN0cmljdGlvbnMg Zm9yIHF1YWxzICovCkBAIC05MjUsMTEgKzk3OCwxMyBAQCBkZWNvbnN0cnVjdF9yZWN1cnNl KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIGJvb2wgYmVsb3dfb3V0ZXJfam9p biwKIAkJCQlsZWZ0am9pbmxpc3QgPSBkZWNvbnN0cnVjdF9yZWN1cnNlKHJvb3QsIGotPmxh cmcsCiAJCQkJCQkJCQkJCQkgICB0cnVlLAogCQkJCQkJCQkJCQkJICAgJmxlZnRpZHMsICZs ZWZ0X2lubmVycywKLQkJCQkJCQkJCQkJCSAgICZjaGlsZF9wb3N0cG9uZWRfcXVhbHMpOwor CQkJCQkJCQkJCQkJICAgJmNoaWxkX3Bvc3Rwb25lZF9xdWFscywKKwkJCQkJCQkJCQkJCSAg IGZpbHRlcl9xdWFsX2xpc3QpOwogCQkJCXJpZ2h0am9pbmxpc3QgPSBkZWNvbnN0cnVjdF9y ZWN1cnNlKHJvb3QsIGotPnJhcmcsCiAJCQkJCQkJCQkJCQkJdHJ1ZSwKIAkJCQkJCQkJCQkJ CQkmcmlnaHRpZHMsICZyaWdodF9pbm5lcnMsCi0JCQkJCQkJCQkJCQkJJmNoaWxkX3Bvc3Rw b25lZF9xdWFscyk7CisJCQkJCQkJCQkJCQkJJmNoaWxkX3Bvc3Rwb25lZF9xdWFscywKKwkJ CQkJCQkJCQkJCQlmaWx0ZXJfcXVhbF9saXN0KTsKIAkJCQkqcXVhbHNjb3BlID0gYm1zX3Vu aW9uKGxlZnRpZHMsIHJpZ2h0aWRzKTsKIAkJCQkqaW5uZXJfam9pbl9yZWxzID0gYm1zX3Vu aW9uKGxlZnRfaW5uZXJzLCByaWdodF9pbm5lcnMpOwogCQkJCS8qIGVhY2ggc2lkZSBpcyBi b3RoIG91dGVyIGFuZCBpbm5lciAqLwpAQCAtMTAxMyw3ICsxMDY4LDggQEAgZGVjb25zdHJ1 Y3RfcmVjdXJzZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBib29sIGJlbG93 X291dGVyX2pvaW4sCiAJCQkJCQkJCQlyb290LT5xdWFsX3NlY3VyaXR5X2xldmVsLAogCQkJ CQkJCQkJKnF1YWxzY29wZSwKIAkJCQkJCQkJCW9qc2NvcGUsIG5vbm51bGxhYmxlX3JlbHMs Ci0JCQkJCQkJCQlwb3N0cG9uZWRfcXVhbF9saXN0KTsKKwkJCQkJCQkJCXBvc3Rwb25lZF9x dWFsX2xpc3QsCisJCQkJCQkJCQlmaWx0ZXJfcXVhbF9saXN0KTsKIAkJfQogCiAJCS8qIE5v dyB3ZSBjYW4gYWRkIHRoZSBTcGVjaWFsSm9pbkluZm8gdG8gam9pbl9pbmZvX2xpc3QgKi8K QEAgLTExMTcsNiArMTE3Myw3IEBAIHByb2Nlc3Nfc2VjdXJpdHlfYmFycmllcl9xdWFscyhQ bGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCXF1YWxzY29wZSwKIAkJCQkJCQkJCXF1YWxz Y29wZSwKIAkJCQkJCQkJCU5VTEwsCisJCQkJCQkJCQlOVUxMLAogCQkJCQkJCQkJTlVMTCk7 CiAJCX0KIAkJc2VjdXJpdHlfbGV2ZWwrKzsKQEAgLTE2MTAsNyArMTY2Nyw4IEBAIGRpc3Ry aWJ1dGVfcXVhbF90b19yZWxzKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpjbGF1c2UsCiAJ CQkJCQlSZWxpZHMgcXVhbHNjb3BlLAogCQkJCQkJUmVsaWRzIG9qc2NvcGUsCiAJCQkJCQlS ZWxpZHMgb3V0ZXJqb2luX25vbm51bGxhYmxlLAotCQkJCQkJTGlzdCAqKnBvc3Rwb25lZF9x dWFsX2xpc3QpCisJCQkJCQlMaXN0ICoqcG9zdHBvbmVkX3F1YWxfbGlzdCwKKwkJCQkJCUxp c3QgKipmaWx0ZXJfcXVhbF9saXN0KQogewogCVJlbGlkcwkJcmVsaWRzOwogCWJvb2wJCWlz X3B1c2hlZF9kb3duOwpAQCAtMTk2Nyw2ICsyMDI1LDEwIEBAIGRpc3RyaWJ1dGVfcXVhbF90 b19yZWxzKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpjbGF1c2UsCiAKIAkvKiBObyBFQyBz cGVjaWFsIGNhc2UgYXBwbGllcywgc28gcHVzaCBpdCBpbnRvIHRoZSBjbGF1c2UgbGlzdHMg Ki8KIAlkaXN0cmlidXRlX3Jlc3RyaWN0aW5mb190b19yZWxzKHJvb3QsIHJlc3RyaWN0aW5m byk7CisKKwkvKiBDaGVjayBpZiB0aGUgcXVhbCBsb29rcyB1c2VmdWwgdG8gaGFydmVzdCBh cyBhbiBFcXVpdmFsZW5jZUZpbHRlciAqLworCWlmIChmaWx0ZXJfcXVhbF9saXN0ICE9IE5V TEwgJiYgaXNfc2ltcGxlX2ZpbHRlcl9xdWFsKHJvb3QsIChPcEV4cHIgKikgY2xhdXNlKSkK KwkJKmZpbHRlcl9xdWFsX2xpc3QgPSBsYXBwZW5kKCpmaWx0ZXJfcXVhbF9saXN0LCBjbGF1 c2UpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCA5 MWNkODEzY2U4Li5iMDI0MzkyNWU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2Fj aGUuYwpAQCAtMzQxLDYgKzM0MSwzNCBAQCBnZXRfb3JkZXJpbmdfb3BfZm9yX2VxdWFsaXR5 X29wKE9pZCBvcG5vLCBib29sIHVzZV9saHNfdHlwZSkKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKgorICogZ2V0X29wZmFtaWxpZXMKKyAqCQlSZXR1cm5zIGEgbGlzdCBvZiBPaWRzIG9m IGVhY2ggb3BmYW1pbHkgd2hpY2ggJ29wbm8nIGJlbG9uZ2luZyB0bworICoJCSdtZXRob2Qn IGFjY2VzcyBtZXRob2QuCisgKi8KK0xpc3QgKgorZ2V0X29wZmFtaWxpZXMoT2lkIG9wbm8s IE9pZCBtZXRob2QpCit7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCUNhdENMaXN0ICAg KmNhdGxpc3Q7CisJaW50CQkJaTsKKworCWNhdGxpc3QgPSBTZWFyY2hTeXNDYWNoZUxpc3Qx KEFNT1BPUElELCBPYmplY3RJZEdldERhdHVtKG9wbm8pKTsKKworCWZvciAoaSA9IDA7IGkg PCBjYXRsaXN0LT5uX21lbWJlcnM7IGkrKykKKwl7CisJCUhlYXBUdXBsZQl0dXBsZSA9ICZj YXRsaXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKKwkJRm9ybV9wZ19hbW9wIGFmb3JtID0gKEZv cm1fcGdfYW1vcCkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQlpZiAoYWZvcm0tPmFtb3BtZXRo b2QgPT0gbWV0aG9kKQorCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBhZm9ybS0+ YW1vcGZhbWlseSk7CisJfQorCisJUmVsZWFzZVN5c0NhY2hlTGlzdChjYXRsaXN0KTsKKwor CXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBnZXRfbWVyZ2Vqb2luX29wZmFtaWxpZXMK ICAqCQlHaXZlbiBhIHB1dGF0aXZlbHkgbWVyZ2Vqb2luYWJsZSBvcGVyYXRvciwgcmV0dXJu IGEgbGlzdCBvZiB0aGUgT0lEcwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgKaW5kZXggN2NlMWZjNGRlYi4uYmE4 NzlhYjNlOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCkBAIC0yNzcsNiArMjc3LDcgQEAgdHlwZWRlZiBl bnVtIE5vZGVUYWcKIAlUX0xpbWl0UGF0aCwKIAkvKiB0aGVzZSBhcmVuJ3Qgc3ViY2xhc3Nl cyBvZiBQYXRoOiAqLwogCVRfRXF1aXZhbGVuY2VDbGFzcywKKwlUX0VxdWl2YWxlbmNlRmls dGVyLAogCVRfRXF1aXZhbGVuY2VNZW1iZXIsCiAJVF9QYXRoS2V5LAogCVRfUGF0aEtleUlu Zm8sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IGY0MDdmMTg1MmQuLmY4MGI0N2FlMmMg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0xMTMyLDYgKzExMzIsNyBAQCB0eXBlZGVm IHN0cnVjdCBFcXVpdmFsZW5jZUNsYXNzCiAJTGlzdAkgICAqZWNfbWVtYmVyczsJCS8qIGxp c3Qgb2YgRXF1aXZhbGVuY2VNZW1iZXJzICovCiAJTGlzdAkgICAqZWNfc291cmNlczsJCS8q IGxpc3Qgb2YgZ2VuZXJhdGluZyBSZXN0cmljdEluZm9zICovCiAJTGlzdAkgICAqZWNfZGVy aXZlczsJCS8qIGxpc3Qgb2YgZGVyaXZlZCBSZXN0cmljdEluZm9zICovCisJTGlzdAkgICAq ZWNfZmlsdGVyczsKIAlSZWxpZHMJCWVjX3JlbGlkczsJCS8qIGFsbCByZWxpZHMgYXBwZWFy aW5nIGluIGVjX21lbWJlcnMsIGV4Y2VwdAogCQkJCQkJCQkgKiBmb3IgY2hpbGQgbWVtYmVy cyAoc2VlIGJlbG93KSAqLwogCWJvb2wJCWVjX2hhc19jb25zdDsJLyogYW55IHBzZXVkb2Nv bnN0YW50cyBpbiBlY19tZW1iZXJzPyAqLwpAQCAtMTE0NCw2ICsxMTQ1LDQyIEBAIHR5cGVk ZWYgc3RydWN0IEVxdWl2YWxlbmNlQ2xhc3MKIAlzdHJ1Y3QgRXF1aXZhbGVuY2VDbGFzcyAq ZWNfbWVyZ2VkOyAvKiBzZXQgaWYgbWVyZ2VkIGludG8gYW5vdGhlciBFQyAqLwogfSBFcXVp dmFsZW5jZUNsYXNzOwogCisvKgorICogRXF1aXZhbGVuY2VGaWx0ZXIgLSBMaXN0IG9mIGZp bHRlcnMgb24gQ29uc3RzIHdoaWNoIGJlbG9uZyB0byB0aGUKKyAqIEVxdWl2YWxlbmNlQ2xh c3MuCisgKgorICogV2hlbiBidWlsZGluZyB0aGUgZXF1aXZhbGVuY2UgY2xhc3NlcyB3ZSBh bHNvIGNvbGxlY3RlZCBhIGxpc3Qgb2YgcXVhbHMgaW4KKyAqIHRoZSBmb3JtIG9mOyAiRXhw ciBvcCBDb25zdCIgYW5kICJDb25zdCBvcCBFeHByIi4gVGhlc2UgYXJlIGNvbGxlY3RlZCBp biB0aGUKKyAqIGhvcGUgdGhhdCB3ZSdsbCBsYXRlciBnZW5lcmF0ZSBhbiBlcXVpdmFsZW5j ZSBjbGFzcyB3aGljaCBjb250YWlucyB0aGUKKyAqICJFeHByIiBwYXJ0LiBGb3IgZXhhbXBs ZSwgaWYgd2UgcGFyc2UgYSBxdWVyeSBzdWNoIGFzOworICoKKyAqCQlTRUxFQ1QgKiBGUk9N IHQxIElOTkVSIEpPSU4gdDIgT04gdDEuaWQgPSB0Mi5pZCBXSEVSRSB0MS5pZCA8IDEwOwor ICoKKyAqIHRoZW4gc2luY2Ugd2UnbGwgZW5kIHVwIHdpdGggYW4gZXF1aXZhbGVuY2UgY2xh c3MgY29udGFpbmluZyB7dDEuaWQsdDIuaWR9LAorICogd2UnbGwgdGFnIHRoZSAiPCAxMCIg ZmlsdGVyIG9udG8gdGhlIGVjbGFzcy4gV2UgYXJlIGFibGUgdG8gZG8gdGhpcyBiZWNhdXNl CisgKiB0aGUgZWNsYXNzIHByb3ZlcyBlcXVhbGl0eSBiZXR3ZWVuIGVhY2ggY2xhc3MgbWVt YmVyLCB0aGVyZWZvcmUgYWxsIG1lbWJlcnMKKyAqIG11c3QgYmUgYmVsb3cgMTAuCisgKgor ICogRXF1aXZhbGVuY2VGaWx0ZXJzIHN0b3JlIHRoZSBkZXRhaWxzIHJlcXVpcmVkIHRvIGFs bG93IHVzIHRvIHB1c2ggdGhlc2UKKyAqIGZpbHRlciBjbGF1c2VzIGRvd24gaW50byBvdGhl ciByZWxhdGlvbnMgd2hpY2ggc2hhcmUgYW4gZXF1aXZhbGVuY2UgY2xhc3MKKyAqIGNvbnRh aW5pbmcgYSBtZW1iZXIgd2hpY2ggbWF0Y2hlcyB0aGUgZXhwcmVzc2lvbiBvZiB0aGlzIEVx dWl2YWxlbmNlRmlsdGVyLgorICoKKyAqIGVmX2NvbnN0IGlzIHRoZSBDb25zdCB2YWx1ZSB3 aGljaCB0aGlzIGZpbHRlciBzaG91bGQgZmlsdGVyIGFnYWluc3QuCisgKiBlZl9vcG5vIGlz IHRoZSBvcGVyYXRvciB0byBmaWx0ZXIgb24uCisgKiBlZl9jb25zdF9pc19sZWZ0IG1hcmtz IGlmIHRoZSBPcEV4cHIgd2FzIGluIHRoZSBmb3JtICJDb25zdCBvcCBFeHByIiBvcgorICog IkV4cHIgb3AgQ29uc3QiLgorICogZWZfc291cmNlX3JlbCBpcyB0aGUgcmVsYXRpb24gaWQg b2Ygd2hlcmUgdGhpcyBxdWFsIG9yaWdpbmF0ZWQgZnJvbS4KKyAqLwordHlwZWRlZiBzdHJ1 Y3QgRXF1aXZhbGVuY2VGaWx0ZXIKK3sKKwlOb2RlVGFnCQl0eXBlOworCisJQ29uc3QJICAg KmVmX2NvbnN0OwkJLyogdGhlIGNvbnN0YW50IGV4cHJlc3Npb24gdG8gZmlsdGVyIG9uICov CisJT2lkCQkJZWZfb3BubzsJCS8qIE9wZXJhdG9yIE9pZCBvZiBmaWx0ZXIgb3BlcmF0b3Ig Ki8KKwlib29sCQllZl9jb25zdF9pc19sZWZ0OyAvKiBJcyB0aGUgQ29uc3Qgb24gdGhlIGxl ZnQgb2YgdGhlIE9wRXhycD8gKi8KKwlJbmRleAkJZWZfc291cmNlX3JlbDsJLyogcmVsaWQg b2Ygb3JpZ2luYXRpbmcgcmVsYXRpb24uICovCit9IEVxdWl2YWxlbmNlRmlsdGVyOworCiAv KgogICogSWYgYW4gRUMgY29udGFpbnMgYSBjb25zdCBhbmQgaXNuJ3QgYmVsb3ctb3V0ZXIt am9pbiwgYW55IFBhdGhLZXkgZGVwZW5kaW5nCiAgKiBvbiBpdCBtdXN0IGJlIHJlZHVuZGFu dCwgc2luY2UgdGhlcmUncyBvbmx5IG9uZSBwb3NzaWJsZSB2YWx1ZSBvZiB0aGUga2V5Lgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhzLmggYi9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGF0aHMuaAppbmRleCBiNmUxMzdjZjgzLi43OTU1Mzc3OGNkIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aHMuaAorKysgYi9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGF0aHMuaApAQCAtMTI3LDYgKzEyNyw3IEBAIGV4dGVybiBib29sIHBy b2Nlc3NfZXF1aXZhbGVuY2UoUGxhbm5lckluZm8gKnJvb3QsCiBleHRlcm4gRXhwciAqY2Fu b25pY2FsaXplX2VjX2V4cHJlc3Npb24oRXhwciAqZXhwciwKIAkJCQkJCQkJCQlPaWQgcmVx X3R5cGUsIE9pZCByZXFfY29sbGF0aW9uKTsKIGV4dGVybiB2b2lkIHJlY29uc2lkZXJfb3V0 ZXJfam9pbl9jbGF1c2VzKFBsYW5uZXJJbmZvICpyb290KTsKK2V4dGVybiB2b2lkIGRpc3Ry aWJ1dGVfZmlsdGVyX3F1YWxzX3RvX2VjbGFzcyhQbGFubmVySW5mbyAqcm9vdCwgTGlzdCAq cXVhbGxpc3QpOwogZXh0ZXJuIEVxdWl2YWxlbmNlQ2xhc3MgKmdldF9lY2xhc3NfZm9yX3Nv cnRfZXhwcihQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCSAgRXhwciAqZXhwciwK IAkJCQkJCQkJCQkJCSAgUmVsaWRzIG51bGxhYmxlX3JlbGlkcywKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKaW5kZXggNWI1ZmFjMDM5Ny4uZTBlZDI4ZjMzMCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKQEAgLTc4LDYgKzc4LDcgQEAgZXh0ZXJuIGJvb2wgZ2V0X29yZGVyaW5nX29wX3By b3BlcnRpZXMoT2lkIG9wbm8sCiAJCQkJCQkJCQkgICBPaWQgKm9wZmFtaWx5LCBPaWQgKm9w Y2ludHlwZSwgaW50MTYgKnN0cmF0ZWd5KTsKIGV4dGVybiBPaWQJZ2V0X2VxdWFsaXR5X29w X2Zvcl9vcmRlcmluZ19vcChPaWQgb3BubywgYm9vbCAqcmV2ZXJzZSk7CiBleHRlcm4gT2lk CWdldF9vcmRlcmluZ19vcF9mb3JfZXF1YWxpdHlfb3AoT2lkIG9wbm8sIGJvb2wgdXNlX2xo c190eXBlKTsKK2V4dGVybiBMaXN0ICpnZXRfb3BmYW1pbGllcyhPaWQgb3BubywgT2lkIG1l dGhvZCk7CiBleHRlcm4gTGlzdCAqZ2V0X21lcmdlam9pbl9vcGZhbWlsaWVzKE9pZCBvcG5v KTsKIGV4dGVybiB2b2lkIGdldF9idHJlZV9vcGZhbWlsaWVzKE9pZCBvcG5vLCBMaXN0ICoq bWVyZ2VhYmxlX29wZmFtaWxpZXMsIExpc3QgKip1bm1lcmdlYWJsZV9idHJlZV9vcGZhbWls aWVzKTsKIGV4dGVybiBib29sIGdldF9jb21wYXRpYmxlX2hhc2hfb3BlcmF0b3JzKE9pZCBv cG5vLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQKaW5kZXgg MTI2ZjcwNDdmZS4uOTJmY2VjMTE1OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9lcXVpdmNsYXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2VxdWl2Y2xhc3Mub3V0CkBAIC00MDcsMTQgKzQwNywxNCBAQCBzZXQgc2Vzc2lvbiBhdXRo b3JpemF0aW9uIHJlZ3Jlc3NfdXNlcl9lY3Rlc3Q7CiBleHBsYWluIChjb3N0cyBvZmYpCiAg IHNlbGVjdCAqIGZyb20gZWMwIGEsIGVjMSBiCiAgIHdoZXJlIGEuZmYgPSBiLmZmIGFuZCBh LmZmID0gNDM6OmJpZ2ludDo6aW50OGFsaWFzMTsKLSAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg TmVzdGVkIExvb3AKICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGVjMF9wa2V5IG9uIGVjMCBh CiAgICAgICAgICBJbmRleCBDb25kOiAoZmYgPSAnNDMnOjppbnQ4YWxpYXMxKQogICAgLT4g IEluZGV4IFNjYW4gdXNpbmcgZWMxX3BrZXkgb24gZWMxIGIKICAgICAgICAgIEluZGV4IENv bmQ6IChmZiA9IGEuZmYpCi0gICAgICAgICBGaWx0ZXI6IChmMSA8ICc1Jzo6aW50OGFsaWFz MSkKKyAgICAgICAgIEZpbHRlcjogKChmMSA8ICc1Jzo6aW50OGFsaWFzMSkgQU5EIChmZiA9 ICc0Myc6OmludDhhbGlhczEpKQogKDYgcm93cykKIAogcmVzZXQgc2Vzc2lvbiBhdXRob3Jp emF0aW9uOwpAQCAtNDUxLDMgKzQ1MSw0MiBAQCBleHBsYWluIChjb3N0cyBvZmYpICAtLSB0 aGlzIHNob3VsZCBub3QgcmVxdWlyZSBhIHNvcnQKICAgIEZpbHRlcjogKGYxID0gJ2Zvbyc6 Om5hbWUpCiAoMiByb3dzKQogCistLSB0ZXN0IGVxdWl2YWxlbmNlIGZpbHRlcnMKK2V4cGxh aW4gKGNvc3RzIG9mZikKKyAgc2VsZWN0ICogZnJvbSBlYzAKKyAgaW5uZXIgam9pbiBlYzEg b24gZWMwLmZmID0gZWMxLmZmCisgIHdoZXJlIGVjMC5mZiBiZXR3ZWVuIDEgYW5kIDEwOwor ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQgTG9vcAorICAgSm9pbiBGaWx0ZXI6IChlYzAuZmYg PSBlYzEuZmYpCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBlYzAKKyAgICAgICAgIFJl Y2hlY2sgQ29uZDogKChmZiA+PSAxKSBBTkQgKGZmIDw9IDEwKSkKKyAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiBlYzBfcGtleQorICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKChmZiA+PSAxKSBBTkQgKGZmIDw9IDEwKSkKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAg ICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gZWMxCisgICAgICAgICAgICAgICBSZWNo ZWNrIENvbmQ6ICgoZmYgPj0gMSkgQU5EIChmZiA8PSAxMCkpCisgICAgICAgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gZWMxX3BrZXkKKyAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICgoZmYgPj0gMSkgQU5EIChmZiA8PSAxMCkpCisoMTEgcm93cykKKwor ZXhwbGFpbiAoY29zdHMgb2ZmKQorICBzZWxlY3QgKiBmcm9tIGVjMAorICBpbm5lciBqb2lu IGVjMSBvbiBlYzAuZmYgPSBlYzEuZmYKKyAgd2hlcmUgZWMxLmZmIGJldHdlZW4gMSBhbmQg MTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wCisgICBKb2luIEZpbHRlcjogKGVj MC5mZiA9IGVjMS5mZikKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGVjMAorICAgICAg ICAgUmVjaGVjayBDb25kOiAoKGZmID49IDEpIEFORCAoZmYgPD0gMTApKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGVjMF9wa2V5CisgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoKGZmID49IDEpIEFORCAoZmYgPD0gMTApKQorICAgLT4gIE1hdGVyaWFsaXpl CisgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBlYzEKKyAgICAgICAgICAgICAg IFJlY2hlY2sgQ29uZDogKChmZiA+PSAxKSBBTkQgKGZmIDw9IDEwKSkKKyAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBlYzFfcGtleQorICAgICAgICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKChmZiA+PSAxKSBBTkQgKGZmIDw9IDEwKSkKKygxMSByb3dz KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAppbmRleCAyNTM4YmQ2YTc5Li5m MTczMDc0NjIxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4u b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKQEAgLTMzMzcs NyArMzMzNyw3IEBAIHdoZXJlIHQxLnVuaXF1ZTIgPCA0MiBhbmQgdDEuc3RyaW5ndTEgPiB0 Mi5zdHJpbmd1MjsKICAgIEpvaW4gRmlsdGVyOiAodDEuc3RyaW5ndTEgPiB0Mi5zdHJpbmd1 MikKICAgIC0+ICBOZXN0ZWQgTG9vcAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGludDRf dGJsIGkxCi0gICAgICAgICAgICAgICBGaWx0ZXI6IChmMSA9IDApCisgICAgICAgICAgICAg ICBGaWx0ZXI6ICgoZjEgPSAwKSBBTkQgKDExIDwgNDIpKQogICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMiBvbiB0ZW5rMSB0MQogICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKCh1bmlxdWUyID0gKDExKSkgQU5EICh1bmlxdWUyIDwgNDIpKQogICAg LT4gIEluZGV4IFNjYW4gdXNpbmcgdGVuazFfdW5pcXVlMSBvbiB0ZW5rMSB0MgpAQCAtNjU0 NCwyMyArNjU0NCwyMiBAQCB3aGVyZSBleGlzdHMgKHNlbGVjdCAxIGZyb20gdGVuazEgdDMK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wCiAgICBPdXRwdXQ6 IHQxLnVuaXF1ZTEsIHQyLmh1bmRyZWQKLSAgIC0+ICBIYXNoIEpvaW4KKyAgIC0+ICBOZXN0 ZWQgTG9vcAogICAgICAgICAgT3V0cHV0OiB0MS51bmlxdWUxLCB0My50ZW50aG91cwotICAg ICAgICAgSGFzaCBDb25kOiAodDMudGhvdXNhbmQgPSB0MS51bmlxdWUxKQorICAgICAgICAg Sm9pbiBGaWx0ZXI6ICh0MS51bmlxdWUxID0gdDMudGhvdXNhbmQpCisgICAgICAgICAtPiAg SW5kZXggT25seSBTY2FuIHVzaW5nIG9uZWtfdW5pcXVlMSBvbiBwdWJsaWMub25layB0MQor ICAgICAgICAgICAgICAgT3V0cHV0OiB0MS51bmlxdWUxCisgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAodDEudW5pcXVlMSA8IDEpCiAgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZQog ICAgICAgICAgICAgICAgT3V0cHV0OiB0My50aG91c2FuZCwgdDMudGVudGhvdXMKICAgICAg ICAgICAgICAgIEdyb3VwIEtleTogdDMudGhvdXNhbmQsIHQzLnRlbnRob3VzCiAgICAgICAg ICAgICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3Rob3VzX3RlbnRob3Vz IG9uIHB1YmxpYy50ZW5rMSB0MwogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0My50 aG91c2FuZCwgdDMudGVudGhvdXMKLSAgICAgICAgIC0+ICBIYXNoCi0gICAgICAgICAgICAg ICBPdXRwdXQ6IHQxLnVuaXF1ZTEKLSAgICAgICAgICAgICAgIC0+ICBJbmRleCBPbmx5IFNj YW4gdXNpbmcgb25la191bmlxdWUxIG9uIHB1YmxpYy5vbmVrIHQxCi0gICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6IHQxLnVuaXF1ZTEKLSAgICAgICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6ICh0MS51bmlxdWUxIDwgMSkKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENv bmQ6ICh0My50aG91c2FuZCA8IDEpCiAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRl bmsxX2h1bmRyZWQgb24gcHVibGljLnRlbmsxIHQyCiAgICAgICAgICBPdXRwdXQ6IHQyLmh1 bmRyZWQKICAgICAgICAgIEluZGV4IENvbmQ6ICh0Mi5odW5kcmVkID0gdDMudGVudGhvdXMp Ci0oMTggcm93cykKKygxNyByb3dzKQogCiAtLSAuLi4gdW5sZXNzIGl0IGFjdHVhbGx5IGlz IHVuaXF1ZQogY3JlYXRlIHRhYmxlIGozIGFzIHNlbGVjdCB1bmlxdWUxLCB0ZW50aG91cyBm cm9tIG9uZWs7CkBAIC02NTc4LDE1ICs2NTc3LDE2IEBAIHdoZXJlIGV4aXN0cyAoc2VsZWN0 IDEgZnJvbSBqMwogICAgT3V0cHV0OiB0MS51bmlxdWUxLCB0Mi5odW5kcmVkCiAgICAtPiAg TmVzdGVkIExvb3AKICAgICAgICAgIE91dHB1dDogdDEudW5pcXVlMSwgajMudGVudGhvdXMK KyAgICAgICAgIEpvaW4gRmlsdGVyOiAodDEudW5pcXVlMSA9IGozLnVuaXF1ZTEpCiAgICAg ICAgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIG9uZWtfdW5pcXVlMSBvbiBwdWJsaWMu b25layB0MQogICAgICAgICAgICAgICAgT3V0cHV0OiB0MS51bmlxdWUxCiAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAodDEudW5pcXVlMSA8IDEpCiAgICAgICAgICAtPiAgSW5kZXgg T25seSBTY2FuIHVzaW5nIGozX3VuaXF1ZTFfdGVudGhvdXNfaWR4IG9uIHB1YmxpYy5qMwog ICAgICAgICAgICAgICAgT3V0cHV0OiBqMy51bmlxdWUxLCBqMy50ZW50aG91cwotICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGozLnVuaXF1ZTEgPSB0MS51bmlxdWUxKQorICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGozLnVuaXF1ZTEgPCAxKQogICAgLT4gIEluZGV4IE9u bHkgU2NhbiB1c2luZyB0ZW5rMV9odW5kcmVkIG9uIHB1YmxpYy50ZW5rMSB0MgogICAgICAg ICAgT3V0cHV0OiB0Mi5odW5kcmVkCiAgICAgICAgICBJbmRleCBDb25kOiAodDIuaHVuZHJl ZCA9IGozLnRlbnRob3VzKQotKDEzIHJvd3MpCisoMTQgcm93cykKIAogZHJvcCB0YWJsZSBq MzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWVyZ2Uub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZXJnZS5vdXQKaW5kZXggYWY2NzBlMjhlNy4u YWIzYTcxMWQ2MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZXJn ZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tZXJnZS5vdXQKQEAgLTE0 MzcsMTcgKzE0MzcsMTcgQEAgU0VMRUNUIGV4cGxhaW5fbWVyZ2UoJwogTUVSR0UgSU5UTyBl eF9tdGFyZ2V0IHQgVVNJTkcgZXhfbXNvdXJjZSBzIE9OIHQuYSA9IHMuYSBBTkQgdC5hIDwg LTEwMDAKIFdIRU4gTUFUQ0hFRCBBTkQgdC5hIDwgMTAgVEhFTgogCURPIE5PVEhJTkcnKTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGxhaW5fbWVyZ2UgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAgZXhwbGFpbl9tZXJnZSAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg TWVyZ2Ugb24gZXhfbXRhcmdldCB0IChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCiAgICAtPiAg SGFzaCBKb2luIChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCi0gICAgICAgICBIYXNoIENvbmQ6 IChzLmEgPSB0LmEpCi0gICAgICAgICAtPiAgU2VxIFNjYW4gb24gZXhfbXNvdXJjZSBzIChh Y3R1YWwgcm93cz0xIGxvb3BzPTEpCi0gICAgICAgICAtPiAgSGFzaCAoYWN0dWFsIHJvd3M9 MCBsb29wcz0xKQotICAgICAgICAgICAgICAgQnVja2V0czogeHh4ICBCYXRjaGVzOiB4eHgg IE1lbW9yeSBVc2FnZTogeHh4Ci0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZXhf bXRhcmdldCB0IChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCisgICAgICAgICBIYXNoIENvbmQ6 ICh0LmEgPSBzLmEpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gZXhfbXRhcmdldCB0IChh Y3R1YWwgcm93cz0wIGxvb3BzPTEpCisgICAgICAgICAgICAgICBGaWx0ZXI6IChhIDwgJy0x MDAwJzo6aW50ZWdlcikKKyAgICAgICAgICAgICAgIFJvd3MgUmVtb3ZlZCBieSBGaWx0ZXI6 IDU0CisgICAgICAgICAtPiAgSGFzaCAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gZXhfbXNvdXJjZSBzIChuZXZlciBleGVjdXRlZCkKICAgICAg ICAgICAgICAgICAgICAgIEZpbHRlcjogKGEgPCAnLTEwMDAnOjppbnRlZ2VyKQotICAgICAg ICAgICAgICAgICAgICAgUm93cyBSZW1vdmVkIGJ5IEZpbHRlcjogNTQKICg5IHJvd3MpCiAK IERST1AgVEFCTEUgZXhfbXNvdXJjZSwgZXhfbXRhcmdldDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX2pvaW4ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fam9pbi5vdXQKaW5kZXggMDM5MjZhODQxMy4uM2Jl OWEyYmVkNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRp b25fam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25f am9pbi5vdXQKQEAgLTE4NiwxNyArMTg2LDE3IEBAIFNFTEVDVCB0MS5hLCB0MS5jLCB0Mi5i LCB0Mi5jIEZST00gKFNFTEVDVCA1MCBwaHYsICogRlJPTSBwcnQxIFdIRVJFIHBydDEuYiA9 IDApCiAtLSBKb2luIHdpdGggcHJ1bmVkIHBhcnRpdGlvbnMgZnJvbSBqb2luaW5nIHJlbGF0 aW9ucwogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIHQxLmEsIHQxLmMsIHQyLmIsIHQy LmMgRlJPTSBwcnQxIHQxLCBwcnQyIHQyIFdIRVJFIHQxLmEgPSB0Mi5iIEFORCB0MS5hIDwg NDUwIEFORCB0Mi5iID4gMjUwIEFORCB0MS5iID0gMCBPUkRFUiBCWSB0MS5hLCB0Mi5iOwot ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgU29ydAogICAgU29ydCBLZXk6IHQx LmEKICAgIC0+ICBIYXNoIEpvaW4KICAgICAgICAgIEhhc2ggQ29uZDogKHQyLmIgPSB0MS5h KQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBydDJfcDIgdDIKLSAgICAgICAgICAgICAg IEZpbHRlcjogKGIgPiAyNTApCisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA+IDI1MCkg QU5EIChiIDwgNDUwKSkKICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcHJ0MV9wMiB0MQotICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAo KGEgPCA0NTApIEFORCAoYiA9IDApKQorICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAo KGEgPCA0NTApIEFORCAoYSA+IDI1MCkgQU5EIChiID0gMCkpCiAoOSByb3dzKQogCiBTRUxF Q1QgdDEuYSwgdDEuYywgdDIuYiwgdDIuYyBGUk9NIHBydDEgdDEsIHBydDIgdDIgV0hFUkUg dDEuYSA9IHQyLmIgQU5EIHQxLmEgPCA0NTAgQU5EIHQyLmIgPiAyNTAgQU5EIHQxLmIgPSAw IE9SREVSIEJZIHQxLmEsIHQyLmI7CkBAIC0zMDg5LDE2ICszMDg5LDE4IEBAIFNFTEVDVCB0 MS5hLCB0MS5jLCB0Mi5iLCB0Mi5jIEZST00gcHJ0MV9hZHYgdDEgSU5ORVIgSk9JTiBwcnQy X2FkdiB0MiBPTiAodDEuYSA9CiAgICAgICAgICAtPiAgSGFzaCBKb2luCiAgICAgICAgICAg ICAgICBIYXNoIENvbmQ6ICh0Ml8xLmIgPSB0MV8xLmEpCiAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcHJ0Ml9hZHZfcDEgdDJfMQorICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoYiA8IDMwMCkKICAgICAgICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0MV9hZHZfcDEgdDFfMQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmlsdGVyOiAoKGEgPCAzMDApIEFORCAoYiA9IDApKQogICAgICAg ICAgLT4gIEhhc2ggSm9pbgogICAgICAgICAgICAgICAgSGFzaCBDb25kOiAodDJfMi5iID0g dDFfMi5hKQogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBydDJfYWR2X3AyIHQy XzIKKyAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKGIgPCAzMDApCiAgICAgICAgICAg ICAgICAtPiAgSGFzaAogICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHBy dDFfYWR2X3AyIHQxXzIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChh IDwgMzAwKSBBTkQgKGIgPSAwKSkKLSgxNSByb3dzKQorKDE3IHJvd3MpCiAKIFNFTEVDVCB0 MS5hLCB0MS5jLCB0Mi5iLCB0Mi5jIEZST00gcHJ0MV9hZHYgdDEgSU5ORVIgSk9JTiBwcnQy X2FkdiB0MiBPTiAodDEuYSA9IHQyLmIpIFdIRVJFIHQxLmEgPCAzMDAgQU5EIHQxLmIgPSAw IE9SREVSIEJZIHQxLmEsIHQyLmI7CiAgIGEgIHwgIGMgICB8ICBiICB8ICBjICAgCkBAIC0z MTI4LDE2ICszMTMwLDE4IEBAIFNFTEVDVCB0MS5hLCB0MS5jLCB0Mi5iLCB0Mi5jIEZST00g cHJ0MV9hZHYgdDEgSU5ORVIgSk9JTiBwcnQyX2FkdiB0MiBPTiAodDEuYSA9CiAgICAgICAg ICAtPiAgSGFzaCBKb2luCiAgICAgICAgICAgICAgICBIYXNoIENvbmQ6ICh0Ml8xLmIgPSB0 MV8xLmEpCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0Ml9hZHZfcDEgdDJf MQorICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGIgPj0gMTAwKSBBTkQgKGIgPCAz MDApKQogICAgICAgICAgICAgICAgLT4gIEhhc2gKICAgICAgICAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwcnQxX2Fkdl9wMSB0MV8xCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6ICgoYSA+PSAxMDApIEFORCAoYSA8IDMwMCkgQU5EIChiID0gMCkpCiAg ICAgICAgICAtPiAgSGFzaCBKb2luCiAgICAgICAgICAgICAgICBIYXNoIENvbmQ6ICh0Ml8y LmIgPSB0MV8yLmEpCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHJ0Ml9hZHZf cDIgdDJfMgorICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGIgPj0gMTAwKSBBTkQg KGIgPCAzMDApKQogICAgICAgICAgICAgICAgLT4gIEhhc2gKICAgICAgICAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBwcnQxX2Fkdl9wMiB0MV8yCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXI6ICgoYSA+PSAxMDApIEFORCAoYSA8IDMwMCkgQU5EIChiID0g MCkpCi0oMTUgcm93cykKKygxNyByb3dzKQogCiBTRUxFQ1QgdDEuYSwgdDEuYywgdDIuYiwg dDIuYyBGUk9NIHBydDFfYWR2IHQxIElOTkVSIEpPSU4gcHJ0Ml9hZHYgdDIgT04gKHQxLmEg PSB0Mi5iKSBXSEVSRSB0MS5hID49IDEwMCBBTkQgdDEuYSA8IDMwMCBBTkQgdDEuYiA9IDAg T1JERVIgQlkgdDEuYSwgdDIuYjsKICAgYSAgfCAgYyAgIHwgIGIgIHwgIGMgICAKQEAgLTQ2 ODEsMjcgKzQ2ODUsMzIgQEAgU0VMRUNUIHQxLiosIHQyLiogRlJPTSBhbHBoYSB0MSBJTk5F UiBKT0lOIGJldGEgdDIgT04gKHQxLmEgPSB0Mi5hIEFORCB0MS5iID0gdDIKICAgICAgICAg ICAgICAgICAgICAgIEZpbHRlcjogKChiID49IDEyNSkgQU5EIChiIDwgMjI1KSkKICAgICAg ICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gYmV0YV9uZWdfcDEgdDJfMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVy OiAoKGIgPj0gMTI1KSBBTkQgKGIgPCAyMjUpKQogICAgICAgICAgLT4gIEhhc2ggSm9pbgot ICAgICAgICAgICAgICAgSGFzaCBDb25kOiAoKHQyXzIuYSA9IHQxXzIuYSkgQU5EICh0Ml8y LmIgPSB0MV8yLmIpKQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGJldGFfbmVn X3AyIHQyXzIKKyAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKCh0MV8yLmEgPSB0Ml8yLmEp IEFORCAodDFfMi5iID0gdDJfMi5iKSkKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBhbHBoYV9uZWdfcDIgdDFfMgorICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGIg Pj0gMTI1KSBBTkQgKGIgPCAyMjUpKQogICAgICAgICAgICAgICAgLT4gIEhhc2gKLSAgICAg ICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBhbHBoYV9uZWdfcDIgdDFfMgorICAg ICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGJldGFfbmVnX3AyIHQyXzIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChiID49IDEyNSkgQU5EIChiIDwg MjI1KSkKICAgICAgICAgIC0+ICBIYXNoIEpvaW4KLSAgICAgICAgICAgICAgIEhhc2ggQ29u ZDogKCh0Ml80LmEgPSB0MV80LmEpIEFORCAodDJfNC5iID0gdDFfNC5iKSkKKyAgICAgICAg ICAgICAgIEhhc2ggQ29uZDogKCh0MV80LmEgPSB0Ml80LmEpIEFORCAodDFfNC5iID0gdDJf NC5iKSkKICAgICAgICAgICAgICAgIC0+ICBBcHBlbmQKLSAgICAgICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBiZXRhX3Bvc19wMSB0Ml80Ci0gICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gYmV0YV9wb3NfcDIgdDJfNQotICAgICAgICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIGJldGFfcG9zX3AzIHQyXzYKKyAgICAgICAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBhbHBoYV9wb3NfcDEgdDFfNAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgRmlsdGVyOiAoKGIgPj0gMTI1KSBBTkQgKGIgPCAyMjUpKQorICAgICAg ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGFscGhhX3Bvc19wMiB0MV81CisgICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA+PSAxMjUpIEFORCAoYiA8IDIy NSkpCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gYWxwaGFfcG9zX3Az IHQxXzYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChiID49IDEyNSkg QU5EIChiIDwgMjI1KSkKICAgICAgICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAg ICAgICAgICAtPiAgQXBwZW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gYWxwaGFfcG9zX3AxIHQxXzQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBiZXRhX3Bvc19wMSB0Ml80CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA+PSAxMjUpIEFORCAoYiA8IDIyNSkpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gYWxwaGFfcG9zX3AyIHQx XzUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBiZXRhX3Bv c19wMiB0Ml81CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgo YiA+PSAxMjUpIEFORCAoYiA8IDIyNSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gYWxwaGFfcG9zX3AzIHQxXzYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBiZXRhX3Bvc19wMyB0Ml82CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYiA+PSAxMjUpIEFORCAoYiA8IDIyNSkp Ci0oMjkgcm93cykKKygzNCByb3dzKQogCiBTRUxFQ1QgdDEuKiwgdDIuKiBGUk9NIGFscGhh IHQxIElOTkVSIEpPSU4gYmV0YSB0MiBPTiAodDEuYSA9IHQyLmEgQU5EIHQxLmIgPSB0Mi5i KSBXSEVSRSB0MS5iID49IDEyNSBBTkQgdDEuYiA8IDIyNSBPUkRFUiBCWSB0MS5hLCB0MS5i OwogIGEgIHwgIGIgIHwgIGMgICB8IGEgIHwgIGIgIHwgIGMgICAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZXF1aXZjbGFzcy5zcWwKaW5kZXggMjQ3YjBhMzEwNS4uZGFlODNjNDE5NiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwKQEAgLTI2OSwzICsyNjksMTUgQEAgY3Jl YXRlIHRlbXAgdmlldyBvdmVydmlldyBhcwogICBzZWxlY3QgZjE6OmluZm9ybWF0aW9uX3Nj aGVtYS5zcWxfaWRlbnRpZmllciBhcyBzcWxpLCBmMiBmcm9tIHVuZGVybmFtZTsKIGV4cGxh aW4gKGNvc3RzIG9mZikgIC0tIHRoaXMgc2hvdWxkIG5vdCByZXF1aXJlIGEgc29ydAogICBz ZWxlY3QgKiBmcm9tIG92ZXJ2aWV3IHdoZXJlIHNxbGkgPSAnZm9vJyBvcmRlciBieSBzcWxp OworCisKKy0tIHRlc3QgZXF1aXZhbGVuY2UgZmlsdGVycworZXhwbGFpbiAoY29zdHMgb2Zm KQorICBzZWxlY3QgKiBmcm9tIGVjMAorICBpbm5lciBqb2luIGVjMSBvbiBlYzAuZmYgPSBl YzEuZmYKKyAgd2hlcmUgZWMwLmZmIGJldHdlZW4gMSBhbmQgMTA7CisKK2V4cGxhaW4gKGNv c3RzIG9mZikKKyAgc2VsZWN0ICogZnJvbSBlYzAKKyAgaW5uZXIgam9pbiBlYzEgb24gZWMw LmZmID0gZWMxLmZmCisgIHdoZXJlIGVjMS5mZiBiZXR3ZWVuIDEgYW5kIDEwOwotLSAKMi4z Ny4wCgo= --------------SfwqipnKg6tF19DxN0lrjohf Content-Type: text/plain; charset=UTF-8; name="v5-0003-Reduce-some-planning-cost-for-deriving-qual-for-EC-f.patch" Content-Disposition: attachment; filename*0="v5-0003-Reduce-some-planning-cost-for-deriving-qual-for-EC-f"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSBiMTllYzkwMzk0ZDVkOTMzMDI4MzU1NzI1NzU0YjRiYjdhOGM5MDk0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogV2VkLCA2IEp1bCAyMDIyIDE1OjQ3OjMwICswMzAw ClN1YmplY3Q6IFtQQVRDSCAzLzZdIFJlZHVjZSBzb21lIHBsYW5uaW5nIGNvc3QgZm9yIGRl cml2aW5nIHF1YWwgZm9yIEVDIGZpbHRlcgogZmVhdHVyZS4KCk1haW5seSBjaGFuZ2VzIGlu Y2x1ZGVzOgoxLiBDaGVjayBpZiB0aGUgcXVhbCBpcyBzaW1wbGUgZW5vdWdoIGJ5IGNoZWNr aW5nIHJpbmZvLT5yaWdodF9yZWxpZHMgYW5kCmluZm8tPnJpZ2h0X3JlbGlkcywgc2F2ZSB0 aGUgcHVsbF92YXJub3Mgb2YgcmluZm8tPmNsYXVzZSBjYWxscy4KMi4gY2hlY2sgY29udGFp bl92b2xhdGlsZV9mdW5jdGlvbnMgYWdhaW5zdCBSZXN0cmljdEluZm8sIHNvIHRoYXQKdGhl IHJlc3VsdCBjYW4gYmUgc2hhcmVkIHdpdGggZm9sbG93aW5nIGNhbGxzLgozLiBCeSBlbXBs b3lpbmcgdGhlIFJlc3RpY3RJbmZvLT5idHJlZWluZXFmYW1pbGl0eSB3aGljaCBpcyBjYWxj dWxhdGluZy4Kd2l0aCBzYW1lIHJvdW5kIG9mIGNhbGN1bGF0aW5nICBSZXN0cmljdEluZm8t Pm1lcmdlb3BmYW1pbGllcy4gSW4gdGhpcwp3YXkgd2Ugc2F2ZSB0aGUgc29tZSBjYWxscyBm b3Igc3lzY2FjaGUuCjQuIENhbGN1bGF0aW5nIHRoZSBvcGZhbWlsaXR5IGFuZCBhbXN0cmF0 ZWd5IGF0CmRpc3RyaWJ1dGVfZmlsdGVyX3F1YWxzX3RvX2VjbGFzcyBhbmQgY2FjaGUgdGhl IHJlc3VsdHMgaW4gRXF1aXZhbGVuY2VGaWx0ZXIuCmlmIG5vIHN1aXRhYmxlIG9wZmFtaWxp dHkgYW5kIGFtc3RyYXRlZ3kgYXJlIGZvdW5kLCBieXBhc3MgdGhlIHF1YWwgaW1tZWRpYXRl bHkKYW5kIGF0IGxhc3QgdXNpbmcgdGhlIGNhY2hlZCB2YWx1ZSBnZW5lcmF0ZV9iYXNlX2lt cGxpZWRfZXF1YWxpdGllc19ub19jb25zdC4KCkFmdGVyIHRoaXMgY2hhbmdlLCB0aGVyZSBp cyBhbiB0ZXN0Y2FzZSBjaGFuZ2VkIHVuZXhwZWN0ZWRseSBpbiBlcXVpdmNsYXNzLm91dAoo Y29tcGFyZWQgd2l0aCBEYXZpZCdzIGV4cGVjdGF0aW9uIGZpbGUuKQoKY3JlYXRlIHVzZXIg cmVncmVzc191c2VyX2VjdGVzdDsKZ3JhbnQgc2VsZWN0IG9uIGVjMCB0byByZWdyZXNzX3Vz ZXJfZWN0ZXN0OwpncmFudCBzZWxlY3Qgb24gZWMxIHRvIHJlZ3Jlc3NfdXNlcl9lY3Rlc3Q7 CgpzZXQgc2Vzc2lvbiBhdXRob3JpemF0aW9uIHJlZ3Jlc3NfdXNlcl9lY3Rlc3Q7CgotLSB3 aXRoIFJMUyBhY3RpdmUsIHRoZSBub24tbGVha3Byb29mIGEuZmYgPSA0MyBjbGF1c2UgaXMg bm90IHRyZWF0ZWQKLS0gYXMgYSBzdWl0YWJsZSBzb3VyY2UgZm9yIGFuIEVxdWl2YWxlbmNl Q2xhc3M7IGN1cnJlbnRseSwgdGhpcyBpcyB0cnVlCi0tIGV2ZW4gdGhvdWdoIHRoZSBSTFMg Y2xhdXNlIGhhcyBub3RoaW5nIHRvIGRvIGRpcmVjdGx5IHdpdGggdGhlIEVDCmV4cGxhaW4g KGNvc3RzIG9mZikKcmVncmVzc2lvbi0+ICAgc2VsZWN0ICogZnJvbSBlYzAgYSwgZWMxIGIK cmVncmVzc2lvbi0+ICAgd2hlcmUgYS5mZiA9IGIuZmYgYW5kIGEuZmYgPSA0Mzo6YmlnaW50 OjppbnQ4YWxpYXMxOwoKVGhlIGIuZmYgPSA0MyBpcyBkaXNhcHBlYXJlZCBmcm9tIGVjMSBi LiBCdXQgc2luY2UgaXQgZXZlbiBkaWRuJ3Qgc2hvd24KYmVmb3JlIHRoZSBFQyBmaWx0ZXIs IHNvIEknbSBub3Qgc3VyZSBteSBjaGFuZ2VzIGhlcmUgbWFrZSBzb21ldGhpbmcgd3Jvbmcs Cm1heWJlIGZpeCBhIGlzc3VlIGJ5IGFjY2lkZW50YWw/Ci0tLQogc3JjL2JhY2tlbmQvbm9k ZXMvb3V0ZnVuY3MuYyAgICAgICAgICAgICB8ICAyICsKIHNyYy9iYWNrZW5kL29wdGltaXpl ci9wYXRoL2VxdWl2Y2xhc3MuYyAgfCA1NyArKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL2luaXRzcGxhbi5jICAgfCA1MCArKysrKy0tLS0t LS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAg fCAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0IHwgIDYg Ky0tCiA1IGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMgYi9zcmMvYmFj a2VuZC9ub2Rlcy9vdXRmdW5jcy5jCmluZGV4IGIxOTQ2MmM3NTguLmYzMWYxZGU5ODMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvbm9kZXMvb3V0ZnVuY3MuYwpAQCAtMjY3NCw2ICsyNjc0LDggQEAgX291dEVxdWl2YWxl bmNlRmlsdGVyKFN0cmluZ0luZm8gc3RyLCBjb25zdCBFcXVpdmFsZW5jZUZpbHRlciAqbm9k ZSkKIAlXUklURV9PSURfRklFTEQoZWZfb3Bubyk7CiAJV1JJVEVfQk9PTF9GSUVMRChlZl9j b25zdF9pc19sZWZ0KTsKIAlXUklURV9VSU5UX0ZJRUxEKGVmX3NvdXJjZV9yZWwpOworCVdS SVRFX09JRF9GSUVMRChvcGZhbWlseSk7CisJV1JJVEVfSU5UX0ZJRUxEKGFtc3RyYXRlZ3kp OwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvZXF1aXZjbGFzcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvZXF1aXZj bGFzcy5jCmluZGV4IDg5YzdmMGRjMzkuLjM4YmJjMzI1YjAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wYXRoL2VxdWl2Y2xhc3MuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMKQEAgLTEyMzQsMTkgKzEyMzQsMTcgQEAgZ2Vu ZXJhdGVfYmFzZV9pbXBsaWVkX2VxdWFsaXRpZXNfY29uc3QoUGxhbm5lckluZm8gKnJvb3Qs CiB9CiAKIC8qCi0gKiBmaW5kcyB0aGUgb3BmYW1pbHkgYW5kIHN0cmF0ZWd5IG51bWJlciBm b3IgdGhlIHNwZWNpZmllZCAnb3BubycgYW5kICdtZXRob2QnCi0gKiBhY2Nlc3MgbWV0aG9k LiBSZXR1cm5zIFRydWUgaWYgb25lIGlzIGZvdW5kIGFuZCBzZXRzICdmYW1pbHknIGFuZAot ICogJ2Ftc3RyYXRlZ3knLCBvciByZXR1cm5zIEZhbHNlIGlmIG5vbmUgYXJlIGZvdW5kLgor ICogZmluZHMgdGhlIG9wZXJhdG9yIGlkIGZvciB0aGUgc3BlY2lmaWVkICdvcG5vJyBhbmQg J21ldGhvZCcgYW5kICdvcGZhbWlsaWVzJworICogUmV0dXJucyBUcnVlIGlmIG9uZSBpcyBm b3VuZCBhbmQgc2V0cyAnb3BmYW1pbHlfcCcgYW5kICdhbXN0cmF0ZWd5X3AnIG9yIHJldHVy bnMKKyAqIEZhbHNlIGlmIG5vbmUgYXJlIGZvdW5kLgogICovCiBzdGF0aWMgYm9vbAotZmlu ZF9hbV9mYW1pbHlfYW5kX3N0YXRlZ3koT2lkIG9wbm8sIE9pZCBtZXRob2QsIE9pZCAqZmFt aWx5LCBpbnQgKmFtc3RyYXRlZ3kpCitmaW5kX2FtX2ZhbWlseV9hbmRfc3RhdGVneShPaWQg b3BubywgT2lkIG1ldGhvZCwgTGlzdCAqb3BmYW1pbGllcywKKwkJCQkJCSAgIE9pZCAqb3Bm YW1pbHlfcCwgaW50ICphbXN0cmF0ZWd5X3ApCiB7Ci0JTGlzdCAqb3BmYW1pbGllczsKIAlM aXN0Q2VsbCAqbDsKIAlpbnQgc3RyYXRlZ3k7CiAKLQlvcGZhbWlsaWVzID0gZ2V0X29wZmFt aWxpZXMob3BubywgbWV0aG9kKTsKLQogCWZvcmVhY2gobCwgb3BmYW1pbGllcykKIAl7CiAJ CU9pZCBvcGZhbWlseSA9IGxmaXJzdF9vaWQobCk7CkBAIC0xMjU1LDggKzEyNTMsOCBAQCBm aW5kX2FtX2ZhbWlseV9hbmRfc3RhdGVneShPaWQgb3BubywgT2lkIG1ldGhvZCwgT2lkICpm YW1pbHksIGludCAqYW1zdHJhdGVneSkKIAogCQlpZiAoc3RyYXRlZ3kpCiAJCXsKLQkJCSph bXN0cmF0ZWd5ID0gc3RyYXRlZ3k7Ci0JCQkqZmFtaWx5ID0gb3BmYW1pbHk7CisJCQkqb3Bm YW1pbHlfcCA9IG9wZmFtaWx5OworCQkJKmFtc3RyYXRlZ3lfcCA9IHN0cmF0ZWd5OwogCQkJ cmV0dXJuIHRydWU7CiAJCX0KIAl9CkBAIC0xMzQ1LDE3ICsxMzQzLDExIEBAIGdlbmVyYXRl X2Jhc2VfaW1wbGllZF9lcXVhbGl0aWVzX25vX2NvbnN0KFBsYW5uZXJJbmZvICpyb290LAog CQkJRXF1aXZhbGVuY2VGaWx0ZXIgKmVmID0gKEVxdWl2YWxlbmNlRmlsdGVyICopIGxmaXJz dChsYzIpOwogCQkJRXhwciAqbGVmdGV4cHI7CiAJCQlFeHByICpyaWdodGV4cHI7Ci0JCQlp bnQgc3RyYXRlZ3k7CiAJCQlPaWQgb3BubzsKLQkJCU9pZCBmYW1pbHk7CiAKIAkJCWlmIChl Zi0+ZWZfc291cmNlX3JlbCA9PSByZWxpZCkKIAkJCQljb250aW51ZTsKIAotCQkJaWYgKCFm aW5kX2FtX2ZhbWlseV9hbmRfc3RhdGVneShlZi0+ZWZfb3BubywgQlRSRUVfQU1fT0lELAot CQkJCSZmYW1pbHksICZzdHJhdGVneSkpCi0JCQkJY29udGludWU7Ci0KIAkJCWlmIChlZi0+ ZWZfY29uc3RfaXNfbGVmdCkKIAkJCXsKIAkJCQlsZWZ0ZXhwciA9IChFeHByICopIGVmLT5l Zl9jb25zdDsKQEAgLTEzNjcsMTAgKzEzNTksMTAgQEAgZ2VuZXJhdGVfYmFzZV9pbXBsaWVk X2VxdWFsaXRpZXNfbm9fY29uc3QoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJcmlnaHRleHBy ID0gKEV4cHIgKikgZWYtPmVmX2NvbnN0OwogCQkJfQogCi0JCQlvcG5vID0gZ2V0X29wZmFt aWx5X21lbWJlcihmYW1pbHksCisJCQlvcG5vID0gZ2V0X29wZmFtaWx5X21lbWJlcihlZi0+ b3BmYW1pbHksCiAJCQkJCQkJCQkJZXhwclR5cGUoKE5vZGUgKikgbGVmdGV4cHIpLAogCQkJ CQkJCQkJCWV4cHJUeXBlKChOb2RlICopIHJpZ2h0ZXhwciksCi0JCQkJCQkJCQkJc3RyYXRl Z3kpOworCQkJCQkJCQkJCWVmLT5hbXN0cmF0ZWd5KTsKIAogCQkJaWYgKG9wbm8gPT0gSW52 YWxpZE9pZCkKIAkJCQljb250aW51ZTsKQEAgLTE5ODksOSArMTk4MSwxMiBAQCBkaXN0cmli dXRlX2ZpbHRlcl9xdWFsc190b19lY2xhc3MoUGxhbm5lckluZm8gKnJvb3QsIExpc3QgKnF1 YWxsaXN0KQogCSAqLwogCWZvcmVhY2gobCwgcXVhbGxpc3QpCiAJewotCQlPcEV4cHIJICAg Km9wZXhwciA9IChPcEV4cHIgKikgbGZpcnN0KGwpOwotCQlFeHByCSAgICpsZWZ0ZXhwciA9 IChFeHByICopIGxpbml0aWFsKG9wZXhwci0+YXJncyk7Ci0JCUV4cHIJICAgKnJpZ2h0ZXhw ciA9IChFeHByICopIGxzZWNvbmQob3BleHByLT5hcmdzKTsKKwkJUmVzdHJpY3RJbmZvICpy aW5mbyA9IGxmaXJzdF9ub2RlKFJlc3RyaWN0SW5mbywgbCk7CisJCU9wRXhwciAqb3BleHBy ID0gKE9wRXhwciAqKShyaW5mby0+Y2xhdXNlKTsKKworCQlPaWQgb3BmYW1pbHk7CisJCWlu dCBhbXN0cmF0ZWd5OworCiAJCUNvbnN0CSAgICpjb25zdGV4cHI7CiAJCUV4cHIJICAgKnZh cmV4cHI7CiAJCVJlbGlkcwkJZXhwcnJlbHM7CkBAIC0yMDAzLDI1ICsxOTk4LDMxIEBAIGRp c3RyaWJ1dGVfZmlsdGVyX3F1YWxzX3RvX2VjbGFzcyhQbGFubmVySW5mbyAqcm9vdCwgTGlz dCAqcXVhbGxpc3QpCiAJCSAqIERldGVybWluZSBpZiB0aGUgdGhlIE9wRXhwciBpcyBpbiB0 aGUgZm9ybSAiZXhwciBvcCBjb25zdCIgb3IKIAkJICogImNvbnN0IG9wIGV4cHIiLgogCQkg Ki8KLQkJaWYgKElzQShsZWZ0ZXhwciwgQ29uc3QpKQorCQlpZiAoYm1zX2lzX2VtcHR5KHJp bmZvLT5sZWZ0X3JlbGlkcykpCiAJCXsKLQkJCWNvbnN0ZXhwciA9IChDb25zdCAqKSBsZWZ0 ZXhwcjsKLQkJCXZhcmV4cHIgPSByaWdodGV4cHI7CisJCQljb25zdGV4cHIgPSAoQ29uc3Qg KikgZ2V0X2xlZnRvcChyaW5mby0+Y2xhdXNlKTsKKwkJCXZhcmV4cHIgPSAoRXhwciAqKSBn ZXRfcmlnaHRvcChyaW5mby0+Y2xhdXNlKTsKIAkJCWNvbnN0X2lzbGVmdCA9IHRydWU7CisJ CQlleHBycmVscyA9IHJpbmZvLT5yaWdodF9yZWxpZHM7CiAJCX0KIAkJZWxzZQogCQl7Ci0J CQljb25zdGV4cHIgPSAoQ29uc3QgKikgcmlnaHRleHByOwotCQkJdmFyZXhwciA9IGxlZnRl eHByOworCQkJY29uc3RleHByID0gKENvbnN0ICopIGdldF9yaWdodG9wKHJpbmZvLT5jbGF1 c2UpOworCQkJdmFyZXhwciA9IChFeHByICopIGdldF9sZWZ0b3AocmluZm8tPmNsYXVzZSk7 CiAJCQljb25zdF9pc2xlZnQgPSBmYWxzZTsKKwkJCWV4cHJyZWxzID0gcmluZm8tPmxlZnRf cmVsaWRzOwogCQl9CiAKLQkJZXhwcnJlbHMgPSBwdWxsX3Zhcm5vcyhyb290LCAoTm9kZSAq KSB2YXJleHByKTsKLQogCQkvKiBzaG91bGQgYmUgZmlsdGVyZWQgb3V0LCBidXQgd2UgbmVl ZCB0byBkZXRlcm1pbmUgcmVsaWQgYW55d2F5ICovCiAJCWlmICghYm1zX2dldF9zaW5nbGV0 b25fbWVtYmVyKGV4cHJyZWxzLCAmcmVsaWQpKQogCQkJY29udGludWU7CiAKKwkJaWYgKCFm aW5kX2FtX2ZhbWlseV9hbmRfc3RhdGVneShvcGV4cHItPm9wbm8sIEJUUkVFX0FNX09JRCwK KwkJCQkJCQkJCQlyaW5mby0+YnRyZWVpbmVxb3BmYW1pbGllcywKKwkJCQkJCQkJCQkmb3Bm YW1pbHksCisJCQkJCQkJCQkJJmFtc3RyYXRlZ3kpKQorCQkJY29udGludWU7CisKIAkJLyog c2VhcmNoIGZvciBhIG1hdGNoaW5nIGVjbGFzcyBtZW1iZXIgaW4gYWxsIGVjbGFzc2VzICov CiAJCWZvcmVhY2gobDIsIHJvb3QtPmVxX2NsYXNzZXMpCiAJCXsKQEAgLTIwNTcsNiArMjA1 OCw4IEBAIGRpc3RyaWJ1dGVfZmlsdGVyX3F1YWxzX3RvX2VjbGFzcyhQbGFubmVySW5mbyAq cm9vdCwgTGlzdCAqcXVhbGxpc3QpCiAJCQkJCWVmaWx0ZXItPmVmX2NvbnN0X2lzX2xlZnQg PSBjb25zdF9pc2xlZnQ7CiAJCQkJCWVmaWx0ZXItPmVmX29wbm8gPSBvcGV4cHItPm9wbm87 CiAJCQkJCWVmaWx0ZXItPmVmX3NvdXJjZV9yZWwgPSByZWxpZDsKKwkJCQkJZWZpbHRlci0+ b3BmYW1pbHkgPSBvcGZhbWlseTsKKwkJCQkJZWZpbHRlci0+YW1zdHJhdGVneSA9IGFtc3Ry YXRlZ3k7CiAKIAkJCQkJZWMtPmVjX2ZpbHRlcnMgPSBsYXBwZW5kKGVjLT5lY19maWx0ZXJz LCBlZmlsdGVyKTsKIAkJCQkJYnJlYWs7CQkvKiBPbnRvIHRoZSBuZXh0IGVjbGFzcyAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYwppbmRleCBmODYyNzZiNjY3 Li5kN2ExNzNiMzI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9p bml0c3BsYW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4u YwpAQCAtNjUxLDQ0ICs2NTEsNiBAQCBjcmVhdGVfbGF0ZXJhbF9qb2luX2luZm8oUGxhbm5l ckluZm8gKnJvb3QpCiAJfQogfQogCi0vKgotICogaXNfc2ltcGxlX2ZpbHRlcl9xdWFsCi0g KiAgICAgICAgICAgICBBbmFseXplcyBhbiBPcEV4cHIgdG8gZGV0ZXJtaW5lIGlmIGl0IG1h eSBiZSB1c2VmdWwgYXMgYW4KLSAqICAgICAgICAgICAgIEVxdWl2YWxlbmNlRmlsdGVyLiBS ZXR1cm5zIHRydWUgaWYgdGhlIE9wRXhwciBtYXkgYmUgb2Ygc29tZSB1c2UsIG9yCi0gKiAg ICAgICAgICAgICBmYWxzZSBpZiBpdCBzaG91bGQgbm90IGJlIHVzZWQuCi0gKi8KLXN0YXRp YyBib29sCi1pc19zaW1wbGVfZmlsdGVyX3F1YWwoUGxhbm5lckluZm8gKnJvb3QsIE9wRXhw ciAqZXhwcikKLXsKLQlFeHByICpsZWZ0ZXhwcjsKLQlFeHByICpyaWdodGV4cHI7Ci0KLQlp ZiAoIUlzQShleHByLCBPcEV4cHIpKQotCQkJcmV0dXJuIGZhbHNlOwotCi0JaWYgKGxpc3Rf bGVuZ3RoKGV4cHItPmFyZ3MpICE9IDIpCi0JCQlyZXR1cm4gZmFsc2U7Ci0KLQlsZWZ0ZXhw ciA9IChFeHByICopIGxpbml0aWFsKGV4cHItPmFyZ3MpOwotCXJpZ2h0ZXhwciA9IChFeHBy ICopIGxzZWNvbmQoZXhwci0+YXJncyk7Ci0KLQkvKiBYWFggc2hvdWxkIHdlIHJlc3RyaWN0 IHRoZXNlIHRvIHNpbXBsZSBWYXIgb3AgQ29uc3QgZXhwcmVzc2lvbnM/ICovCi0JaWYgKElz QShsZWZ0ZXhwciwgQ29uc3QpKQotCXsKLQkJaWYgKGJtc19tZW1iZXJzaGlwKHB1bGxfdmFy bm9zKHJvb3QsIChOb2RlICopIHJpZ2h0ZXhwcikpID09IEJNU19TSU5HTEVUT04gJiYKLQkJ CSFjb250YWluX3ZvbGF0aWxlX2Z1bmN0aW9ucygoTm9kZSAqKSByaWdodGV4cHIpKQotCQkJ cmV0dXJuIHRydWU7Ci0JfQotCWVsc2UgaWYgKElzQShyaWdodGV4cHIsIENvbnN0KSkKLQl7 Ci0JCWlmIChibXNfbWVtYmVyc2hpcChwdWxsX3Zhcm5vcyhyb290LCAoTm9kZSAqKSBsZWZ0 ZXhwcikpID09IEJNU19TSU5HTEVUT04gJiYKLQkJCSFjb250YWluX3ZvbGF0aWxlX2Z1bmN0 aW9ucygoTm9kZSAqKSBsZWZ0ZXhwcikpCi0JCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQlyZXR1 cm4gZmFsc2U7Ci19Ci0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCSAgSk9J TiBUUkVFIFBST0NFU1NJTkcKQEAgLTE2NzgsNiArMTY0MCw3IEBAIGRpc3RyaWJ1dGVfcXVh bF90b19yZWxzKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpjbGF1c2UsCiAJYm9vbAkJbWF5 YmVfb3V0ZXJfam9pbjsKIAlSZWxpZHMJCW51bGxhYmxlX3JlbGlkczsKIAlSZXN0cmljdElu Zm8gKnJlc3RyaWN0aW5mbzsKKwlpbnQJcmVsaWQ7CiAKIAkvKgogCSAqIFJldHJpZXZlIGFs bCByZWxpZHMgbWVudGlvbmVkIHdpdGhpbiB0aGUgY2xhdXNlLgpAQCAtMjAyNyw4ICsxOTkw LDE1IEBAIGRpc3RyaWJ1dGVfcXVhbF90b19yZWxzKFBsYW5uZXJJbmZvICpyb290LCBOb2Rl ICpjbGF1c2UsCiAJZGlzdHJpYnV0ZV9yZXN0cmljdGluZm9fdG9fcmVscyhyb290LCByZXN0 cmljdGluZm8pOwogCiAJLyogQ2hlY2sgaWYgdGhlIHF1YWwgbG9va3MgdXNlZnVsIHRvIGhh cnZlc3QgYXMgYW4gRXF1aXZhbGVuY2VGaWx0ZXIgKi8KLQlpZiAoZmlsdGVyX3F1YWxfbGlz dCAhPSBOVUxMICYmIGlzX3NpbXBsZV9maWx0ZXJfcXVhbChyb290LCAoT3BFeHByICopIGNs YXVzZSkpCi0JCSpmaWx0ZXJfcXVhbF9saXN0ID0gbGFwcGVuZCgqZmlsdGVyX3F1YWxfbGlz dCwgY2xhdXNlKTsKKwlpZiAoZmlsdGVyX3F1YWxfbGlzdCAhPSBOVUxMICYmCisJCWlzX29w Y2xhdXNlKHJlc3RyaWN0aW5mby0+Y2xhdXNlKSAmJgorCQkhY29udGFpbl92b2xhdGlsZV9m dW5jdGlvbnMoKE5vZGUgKilyZXN0cmljdGluZm8pICYmIC8vIENhY2hhYmxlCisJCXJlc3Ry aWN0aW5mby0+YnRyZWVpbmVxb3BmYW1pbGllcyAhPSBOSUwgJiYgIC8qIGluZXEgZXhwcmVz c2lvbiAqLworCQkvKiBzaW1wbGUgJiBjb21tb24gZW5vdWdoIGZpbHRlciwgb25lIHNpZGUg cmVmZXJlbmNlcyBvbmUgcmVsYXRpb24gYW5kIHRoZSBvdGhlciBvbmUgaXMgYSBjb25zdGFu dCAqLworCQkoKGJtc19pc19lbXB0eShyZXN0cmljdGluZm8tPmxlZnRfcmVsaWRzKSAmJiBi bXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIocmVzdHJpY3RpbmZvLT5yaWdodF9yZWxpZHMsICZy ZWxpZCkpIHx8CisJCSAoYm1zX2lzX2VtcHR5KHJlc3RyaWN0aW5mby0+cmlnaHRfcmVsaWRz KSAmJiBibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIocmVzdHJpY3RpbmZvLT5sZWZ0X3JlbGlk cywgJnJlbGlkKSkpCisJCSkKKwkJKmZpbHRlcl9xdWFsX2xpc3QgPSBsYXBwZW5kKCpmaWx0 ZXJfcXVhbF9saXN0LCByZXN0cmljdGluZm8pOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaAppbmRleCBmODBiNDdhZTJjLi45NDJhNTJmY2FjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaApAQCAtMTE3OSw2ICsxMTc5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgRXF1aXZhbGVuY2VG aWx0ZXIKIAlPaWQJCQllZl9vcG5vOwkJLyogT3BlcmF0b3IgT2lkIG9mIGZpbHRlciBvcGVy YXRvciAqLwogCWJvb2wJCWVmX2NvbnN0X2lzX2xlZnQ7IC8qIElzIHRoZSBDb25zdCBvbiB0 aGUgbGVmdCBvZiB0aGUgT3BFeHJwPyAqLwogCUluZGV4CQllZl9zb3VyY2VfcmVsOwkvKiBy ZWxpZCBvZiBvcmlnaW5hdGluZyByZWxhdGlvbi4gKi8KKwlPaWQJCQlvcGZhbWlseTsKKwlp bnQJCQlhbXN0cmF0ZWd5OwogfSBFcXVpdmFsZW5jZUZpbHRlcjsKIAogLyoKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0CmluZGV4IDkyZmNlYzExNTguLjk4 MGJkMzgxN2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZj bGFzcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91 dApAQCAtNDA3LDE0ICs0MDcsMTQgQEAgc2V0IHNlc3Npb24gYXV0aG9yaXphdGlvbiByZWdy ZXNzX3VzZXJfZWN0ZXN0OwogZXhwbGFpbiAoY29zdHMgb2ZmKQogICBzZWxlY3QgKiBmcm9t IGVjMCBhLCBlYzEgYgogICB3aGVyZSBhLmZmID0gYi5mZiBhbmQgYS5mZiA9IDQzOjpiaWdp bnQ6OmludDhhbGlhczE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29wCiAg ICAtPiAgSW5kZXggU2NhbiB1c2luZyBlYzBfcGtleSBvbiBlYzAgYQogICAgICAgICAgSW5k ZXggQ29uZDogKGZmID0gJzQzJzo6aW50OGFsaWFzMSkKICAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIGVjMV9wa2V5IG9uIGVjMSBiCiAgICAgICAgICBJbmRleCBDb25kOiAoZmYgPSBhLmZm KQotICAgICAgICAgRmlsdGVyOiAoKGYxIDwgJzUnOjppbnQ4YWxpYXMxKSBBTkQgKGZmID0g JzQzJzo6aW50OGFsaWFzMSkpCisgICAgICAgICBGaWx0ZXI6IChmMSA8ICc1Jzo6aW50OGFs aWFzMSkKICg2IHJvd3MpCiAKIHJlc2V0IHNlc3Npb24gYXV0aG9yaXphdGlvbjsKLS0gCjIu MzcuMAoK --------------SfwqipnKg6tF19DxN0lrjohf Content-Type: text/plain; charset=UTF-8; name="v5-0004-Prepare-the-code-for-CorrectiveQual-structure.patch" Content-Disposition: attachment; filename*0="v5-0004-Prepare-the-code-for-CorrectiveQual-structure.patch" Content-Transfer-Encoding: base64 RnJvbSBlODRmYTQxNmM1ZTU1ZmNkYjI1MGJmYmIwMTI1ZmEyZmM3NTAxM2RmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogV2VkLCA2IEp1bCAyMDIyIDE1OjQ4OjAwICswMzAw ClN1YmplY3Q6IFtQQVRDSCA0LzZdIFByZXBhcmUgdGhlIGNvZGUgZm9yIENvcnJlY3RpdmVR dWFsIHN0cnVjdHVyZS4gSnVzdAogcmVmYWN0b3IgdGhlIG1ldGhvZCBmb3IgMi1sZXZlbCBs b29wIGluCiBnZW5lcmF0ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGllc19ub19jb25zdCwgbm8g b3RoZXIgdGhpbmdzIGlzIGNoYW5nZWQuCgotLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9w YXRoL2VxdWl2Y2xhc3MuYyB8IDYxICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMKaW5kZXggMzhiYmMzMjViMC4uYjNl NWViZmJiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvZXF1aXZj bGFzcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2VxdWl2Y2xhc3MuYwpA QCAtMTMzMywxNyArMTMzMywzMyBAQCBnZW5lcmF0ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGll c19ub19jb25zdChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQlyaW5mby0+cmlnaHRfZW0gPSBj dXJfZW07CiAJCQl9CiAJCX0KKwkJcHJldl9lbXNbcmVsaWRdID0gY3VyX2VtOworCX0KIAot CQkvKgotCQkgKiBBbHNvIHB1c2ggYW55IEVxdWl2YWxlbmNlRmlsdGVyIGNsYXVzZXMgZG93 biBpbnRvIGFsbCByZWxhdGlvbnMKLQkJICogb3RoZXIgdGhhbiB0aGUgb25lIHdoaWNoIHRo ZSBmaWx0ZXIgYWN0dWFsbHkgb3JpZ2luYXRlZCBmcm9tLgotCQkgKi8KLQkJZm9yZWFjaChs YzIsIGVjLT5lY19maWx0ZXJzKQorCXBmcmVlKHByZXZfZW1zKTsKKworCisJLyoKKwkgKiBB bHNvIHB1c2ggYW55IEVxdWl2YWxlbmNlRmlsdGVyIGNsYXVzZXMgZG93biBpbnRvIGFsbCBy ZWxhdGlvbnMKKwkgKiBvdGhlciB0aGFuIHRoZSBvbmUgd2hpY2ggdGhlIGZpbHRlciBhY3R1 YWxseSBvcmlnaW5hdGVkIGZyb20uCisJICovCisJZm9yZWFjaChsYzIsIGVjLT5lY19maWx0 ZXJzKQorCXsKKwkJRXF1aXZhbGVuY2VGaWx0ZXIgKmVmID0gKEVxdWl2YWxlbmNlRmlsdGVy ICopIGxmaXJzdChsYzIpOworCQlFeHByICpsZWZ0ZXhwcjsKKwkJRXhwciAqcmlnaHRleHBy OworCQlPaWQgb3BubzsKKwkJaW50IHJlbGlkOworCisJCWlmIChlYy0+ZWNfYnJva2VuKQor CQkJYnJlYWs7CisKKwkJZm9yZWFjaChsYywgZWMtPmVjX21lbWJlcnMpCiAJCXsKLQkJCUVx dWl2YWxlbmNlRmlsdGVyICplZiA9IChFcXVpdmFsZW5jZUZpbHRlciAqKSBsZmlyc3QobGMy KTsKLQkJCUV4cHIgKmxlZnRleHByOwotCQkJRXhwciAqcmlnaHRleHByOwotCQkJT2lkIG9w bm87CisJCQlFcXVpdmFsZW5jZU1lbWJlciAqY3VyX2VtID0gKEVxdWl2YWxlbmNlTWVtYmVy ICopIGxmaXJzdChsYyk7CisKKwkJCWlmICghYm1zX2dldF9zaW5nbGV0b25fbWVtYmVyKGN1 cl9lbS0+ZW1fcmVsaWRzLCAmcmVsaWQpKQorCQkJCWNvbnRpbnVlOwogCiAJCQlpZiAoZWYt PmVmX3NvdXJjZV9yZWwgPT0gcmVsaWQpCiAJCQkJY29udGludWU7CkBAIC0xMzYwLDI5ICsx Mzc2LDI2IEBAIGdlbmVyYXRlX2Jhc2VfaW1wbGllZF9lcXVhbGl0aWVzX25vX2NvbnN0KFBs YW5uZXJJbmZvICpyb290LAogCQkJfQogCiAJCQlvcG5vID0gZ2V0X29wZmFtaWx5X21lbWJl cihlZi0+b3BmYW1pbHksCi0JCQkJCQkJCQkJZXhwclR5cGUoKE5vZGUgKikgbGVmdGV4cHIp LAotCQkJCQkJCQkJCWV4cHJUeXBlKChOb2RlICopIHJpZ2h0ZXhwciksCi0JCQkJCQkJCQkJ ZWYtPmFtc3RyYXRlZ3kpOworCQkJCQkJCQkJICAgZXhwclR5cGUoKE5vZGUgKikgbGVmdGV4 cHIpLAorCQkJCQkJCQkJICAgZXhwclR5cGUoKE5vZGUgKikgcmlnaHRleHByKSwKKwkJCQkJ CQkJCSAgIGVmLT5hbXN0cmF0ZWd5KTsKIAogCQkJaWYgKG9wbm8gPT0gSW52YWxpZE9pZCkK IAkJCQljb250aW51ZTsKIAorCiAJCQlwcm9jZXNzX2ltcGxpZWRfZXF1YWxpdHkocm9vdCwg b3BubywKLQkJCQkJCQkJCQllYy0+ZWNfY29sbGF0aW9uLAotCQkJCQkJCQkJCWxlZnRleHBy LAotCQkJCQkJCQkJCXJpZ2h0ZXhwciwKLQkJCQkJCQkJCQlibXNfY29weShlYy0+ZWNfcmVs aWRzKSwKLQkJCQkJCQkJCQlibXNfY29weShjdXJfZW0tPmVtX251bGxhYmxlX3JlbGlkcyks Ci0JCQkJCQkJCQkJZWMtPmVjX21pbl9zZWN1cml0eSwKLQkJCQkJCQkJCQllYy0+ZWNfYmVs b3dfb3V0ZXJfam9pbiwKLQkJCQkJCQkJCQlmYWxzZSk7CisJCQkJCQkJCQkgZWMtPmVjX2Nv bGxhdGlvbiwKKwkJCQkJCQkJCSBsZWZ0ZXhwciwKKwkJCQkJCQkJCSByaWdodGV4cHIsCisJ CQkJCQkJCQkgYm1zX2NvcHkoZWMtPmVjX3JlbGlkcyksCisJCQkJCQkJCQkgYm1zX2NvcHko Y3VyX2VtLT5lbV9udWxsYWJsZV9yZWxpZHMpLAorCQkJCQkJCQkJIGVjLT5lY19taW5fc2Vj dXJpdHksCisJCQkJCQkJCQkgZWMtPmVjX2JlbG93X291dGVyX2pvaW4sCisJCQkJCQkJCQkg ZmFsc2UpOwogCQl9Ci0KLQkJcHJldl9lbXNbcmVsaWRdID0gY3VyX2VtOwogCX0KIAotCXBm cmVlKHByZXZfZW1zKTsKLQogCS8qCiAJICogV2UgYWxzbyBoYXZlIHRvIG1ha2Ugc3VyZSB0 aGF0IGFsbCB0aGUgVmFycyB1c2VkIGluIHRoZSBtZW1iZXIgY2xhdXNlcwogCSAqIHdpbGwg YmUgYXZhaWxhYmxlIGF0IGFueSBqb2luIG5vZGUgd2UgbWlnaHQgdHJ5IHRvIHJlZmVyZW5j ZSB0aGVtIGF0LgotLSAKMi4zNy4wCgo= --------------SfwqipnKg6tF19DxN0lrjohf Content-Type: text/plain; charset=UTF-8; name="v5-0005-CorrectiveQuals-is-as-simple-as-a-List-of-RestrictIn.patch" Content-Disposition: attachment; filename*0="v5-0005-CorrectiveQuals-is-as-simple-as-a-List-of-RestrictIn"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSAwM2U3NWNmNWRiNmI2MDdjZDYyZDJmZGNkMWI0NGU1NmZjY2FmM2NmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogV2VkLCA2IEp1bCAyMDIyIDE1OjUyOjM2ICswMzAw ClN1YmplY3Q6IFtQQVRDSCA1LzZdIENvcnJlY3RpdmVRdWFscyBpcyBhcyBzaW1wbGUgYXMg YSBMaXN0IG9mIFJlc3RyaWN0SW5mbywKIGEpLiBvbmx5IG9uZSByZXN0cmljdGluZm8gb24g dGhpcyBncm91cCBzaG91bGQgYmUgY291bnRlZCBmb3IgYW55IGpvaW5yZWwKIGVzdGltYXRp b24uIGIpLiBhdCBsZWFzdCAxIHJlc3RyaWN0aW5mbyBpbiB0aGlzIGdyb3VwIHNob3VsZCBi ZSBleGVjdXRlZAogZHVyaW5nIGV4ZWN1dGlvbi4gSW4gdGhpcyBjb21taXQsIG9ubHkgcm93 cyBlc3RpbWF0aW9uIGlzc3VlIGlzIGFkZHJlc3NlZC4KClBsYW5uZXJJbmZvLmNvcnJlbGF0 aXZlX3F1YWxzIGlzIGFkZGVkIHRvIG1hbmFnZSBhbGwgdGhlIENvcnJlY3RpdmVRdWFscyBh dApzdWJxdWVyeSBsZXZlbC4gUmVsT3B0SW5mby5jcXVhbF9pbmRleGVzIGlzIGEgTGlzdCAq IHRvIGluZGljYXRlIGEgd2hpY2gKQ29ycmVjdGl2ZVF1YWxzIHRoaXMgcmVsYXRpb24gcmVs YXRlZCB0by4gVGhpcyBpcyBkZXNpZ25lZCBmb3IgZWFzeSB0byBjaGVjayBpZgp0aGUgYm90 aCBzaWRlcyBvZiBqb2lucmVsIGNvcnJlbGF0ZWQgdG8gdGhlIHNhbWUgQ29ycmVjdGl2ZVF1 YWxzLiBXaHkgaXNuJ3QgdGhlCnR5cGUgYSBCaXRtYXBzZXQgKiB3aWxsIGJlIGV4cGxhaW5l ZCBsYXRlci4KClRoZSBvdmVyYWxsIGRlc2lnbiBvZiBoYW5kaW5nIHRoZSBqb2lucmVsIHNp emUgZXN0aW1hdGlvbiBpczoKYSkuIEF0IHRoZSBiYXNlIHJlbGF0aW9uIGxldmVsLCB3ZSBq dXN0IGNvdW50IGV2ZXJ5dGhpbmcgd2l0aCB0aGUgY29ycmVsYXRpdmUKcXVhbHMuIGIpLiBE dXJpbmcgdGhlIGFueSBsZXZlbCBqb2lucmVsIHNpemUgZXN0aW1hdGlvbiwgd2UganVzdCBr ZWVwIDEgc2lkZSdzCmNxdWFsIChzaG9ydCBmb3IgY29ycmVjdGl2ZSBxdWFsKSBzZWxlY3Rp dml0eSBieSBlbGltaW5hdGVkIHRoZSBvdGhlciBvbmUuIHNvCnRoZSBzaXplIGVzdGltYXRp b24gZm9yIGEgbWVyZ2VhYmxlIGpvaW4gc2VsZWN0aXZpdHkgYmVjb21lcyB0bzoKCnJvd3Mg PSBSMS5yb3dzIFggcjIucm93cyBYIDEgLyBNYXggKG5kaXN0dmFsX29mX2NvbEEsICBuZGlz dGludmFsX29mX2NvbEIpIFggMSAvClNlbGVjdGl2aXR5KFIxJ3MgQ29ycmVjdGl2ZVF1YWwp LgoKcjEucm93cyBYIDEgLyBTZWxlY3Rpdml0eShSMSdzIENvcnJlY3RpdmVRdWFsKSBlbGlt aW5hdGVkIHRoZSBpbXBhY3Qgb2YKQ29ycmVjdGl2ZVF1YWwgb24gUjEuIEFmdGVyIHRoaXMs ICB0aGUgSm9pblJlbCBvZiAoUjEsIFIyKSBzdGlsbCBiZSBpbXBhY3RlZCBieQp0aGlzIENv cnJlY3RpdmVRdWFsIGJ1dCBqdXN0IG9uZSBpbiB0aGlzIGxldmVsLiAgTGF0ZXIgaWYgSm9p blJlbChSMSwgUjIpIG5lZWRzCnRvIGpvaW4gd2l0aCBSMywgIGFuZCBSMyBpcyBpbXBhY3Rl ZCBieSB0aGlzIENvcmVjdGl2ZVF1YWxzIGFzIHdlbGwuIFRoaXMgd2UKbmVlZCB0byBrZWVw IG9uZSBhbmQgZWxpbWluYXRpbmcgdGhlIG90aGVyIG9uZSBhcyBhYm92ZSBhZ2Fpbi4KClRo ZSBhbGdvcml0aG0gZm9yIHdoaWNoIFNlbGVjdGl2aXR5IHNob3VsZCBiZSBlbGltaW5hdGVk IGFuZCB3aGljaCBvbmUgc2hvdWxkIGJlCmtlcHQgaXM6CgpXaGVuIHdlIGpvaW4gMiBpbm5l cl9yZWwgYW5kIG91dGVyX3JlbCB3aXRoIGEgbWVyZ2VhYmxlIGpvaW4gcmVzdHJpY3RpbmZv LCBpZgpib3RoIHNpZGVzIGlzIGltcGFjdGVkIHdpdGggdGhlIHNhbWUgQ29ycmVjdGl2ZVF1 YWwsIHdlIGZpcnN0IGNob29zZSB3aGljaCAic2lkZSIKdG8gZWxpbWluYXRpbmcgYmFzZWQg b24gd2hpY2ggc2lkZSBvZiB0aGUgcmVzdHJpY3RpbmZvIGhhcyBhIGhpZ2hlciBkaXN0aW5j dAp2YWx1ZS4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyBtb3JlIG9yIGxlc3MgYmVjYXVzZSB3 ZSB1c2VkICJNYXgiKG5kaXN0aW5jdFZhbFQxLApuZGlzdGluY3RWYWxUMikuIEFmdGVyIGRl Y2lkZSB3aGljaCAic2lkZSIgdG8gZWxpbWluYXRpbmcsIHRoZSByZWFsIGVsaW1pbmF0aW5n CnNlbGVjaXRpdHkgaXMgdGhlIHNpZGUgb2YgUmVsT3B0SW5mby0+Y3F1YWxfc2VsZWN0aXZp dHlbbl0KClNlbGVjdGl2aXR5ICpSZWxPcHRJbmZvLT5jcXVhbF9zZWxlY3Rpdml0eToKCiBU aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGNxdWFsX3NlbGVjaXRpdHkgZXF1YWxzCiB0aGUg bGVuZ3RoIG9mIGNxdWFsX2luZGV4ZXMuIFRoZSBzZW1hbnRpY3MgaXMgd2hpY2gKIHNlbGVj dGl2aXR5IGluIHRoZSBjb3JyZXNwb25kaW5nIENvcmVjdGl2ZVF1YWxzJ3MgcXVhbAogbGlz dCBpcyB0YWtpbmcgZWZmZWN0LiBBdCBvbmx5IHRpbWUsIG9ubHkgMSBRdWFsCiBTZWxlY3Rp dml0eSBpcyBjb3VudGVkIGZvciBhbnktbGV2ZWwgb2Ygam9pbnJlbC4KCmFuZCB0aGUgb3Ro ZXIgc2lkZSdzIFJlbE9wdEluZm8tPmNxdWFsX3NlbGVjdGl2dHkgaXMgdXNlZCB0byBzZXQg dGhlIHVwcGVyCmpvaW5yZWwtPmNxdWFsX3NlbGVjaXZpdHkuCgpJbiByZWFsaXR5LCBpdCBp cyBwb3NzaWJsZSBmb3IgdG8gaGF2ZSBtYW55IENvcnJlY3RpdmVRdWFscywgYnV0IGZvciBk ZXNpZ24KZGlzY3Vzc2lvbiwgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seSB0YWtl IGNhcmUgb2YgdGhlIDEgQ29ycmVjdGl2ZVF1YWxzLgp0aGlzIHdvdWxkIGJlIGhlbHBmdWwg Zm9yIFBvQy9yZXZpZXcvZGlzY3Vzc2lvbi4KClNvbWUgZmxvdyBmb3IgdGhlIGtleSBkYXRh OgoKMS4gcm9vdC0+Y29ycmVjdGl2ZV9xdWFscyBpcyBpbml0aWFsaXplZCBhdApnZW5lcmF0 ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGllc19ub19jb25zdCBzdGFnZS4gd2UgY3JlYXRlIGEg Q29ycmVjdGl2ZVF1YWwgaW4KdGhpcyBsaXN0IGZvciBlYWNoIGVjX2ZpbHRlciBhbmQgZmls bCB0aGUgUmVzdHJpY3RJbmZvIHBhcnQgZm9yIHRoaXMgY3F1YWwuIEF0CnRoZSBzYW1lIHRp bWUsIHdlIG5vdGUgd2hpY2ggUmVsT3B0SW5mbyAoY3F1YWxfaW5kZXhlcykgaGFzIHJlbGF0 ZWQgdG8gdGhpcyBjcXVhbC4KCjIuIFJlbE9wdEluZm8tPmNxdWFsX3NlbGVjaXRpdHkgZm9y IGJhc2VyZWwgaXMgc2V0IGF0IHRoZSBlbmQgb2Ygc2V0X3JlbF9zaXplLAphdCB0aGlzIHRp bWUsIHRoZSBzZWxlY3Rpdml0eSBmb3IgZXZlcnkgUmVzdHJpY3RJbmZvIGlzIGNhbGN1YXRl ZCwgd2UgY2FuIGp1c3QKZmV0Y2ggdGhlIGNhY2hlZCB2YWx1ZS4gIEFzIGZvciBqb2lucmVs LCBpdCBpcyBtYWludGFpbmVkIGluCmNhbGNfam9pbl9jcXVhbF9zZWxlY3Rpdml0eSwgdGhp cyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gdGhlIFNlbGVjdGl2aXR5IHRvCmVsaW1pbmF0ZSBh bmQgc2V0IHRoZSBhYm92ZSB2YWx1ZS4KCkxpbWl0YXRpb24gaW4gdGhpcyBQb0M6CjEuIE9u bHkgc3VwcG9ydCAxIENvcnJlY3RpdmVRdWFsIGluIHJvb3QtPmNvcnJlbGF0aXZlX3F1YWxz CjIuIE9ubHkgdGVzdGVkIHdpdGggSU5ORVJfSk9JTi4KMy4gSW5oZXJpdGVkIHRhYmxlIGlz IG5vdCBzdXBwb3J0ZWQuCi0tLQogc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMu YyAgICAgfCAgMjcgKysrKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNpemUu YyAgICAgfCAxODIgKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BhdGgvZXF1aXZjbGFzcy5jICAgfCAgNDggKysrKy0tCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaCAgICAgICAgICAgICB8ICAzNiArKysrLQogOCBmaWxlcyBjaGFuZ2VkLCAyODAgaW5z ZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv bm9kZXMvb3V0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKaW5kZXgg ZjMxZjFkZTk4My4uNWUwNDM0ZGYxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv b3V0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCkBAIC0yNjc2 LDYgKzI2NzYsNyBAQCBfb3V0RXF1aXZhbGVuY2VGaWx0ZXIoU3RyaW5nSW5mbyBzdHIsIGNv bnN0IEVxdWl2YWxlbmNlRmlsdGVyICpub2RlKQogCVdSSVRFX1VJTlRfRklFTEQoZWZfc291 cmNlX3JlbCk7CiAJV1JJVEVfT0lEX0ZJRUxEKG9wZmFtaWx5KTsKIAlXUklURV9JTlRfRklF TEQoYW1zdHJhdGVneSk7CisJV1JJVEVfTk9ERV9GSUVMRChyaW5mbyk7CiB9CiAKIHN0YXRp YyB2b2lkCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRo cy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwppbmRleCBlOTM0 MjA5N2U1Li4yZWUyOGE5NGZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBh dGhzLmMKQEAgLTQ2Myw2ICs0NjMsMzMgQEAgc2V0X3JlbF9zaXplKFBsYW5uZXJJbmZvICpy b290LCBSZWxPcHRJbmZvICpyZWwsCiAJICogV2UgaW5zaXN0IHRoYXQgYWxsIG5vbi1kdW1t eSByZWxzIGhhdmUgYSBub256ZXJvIHJvd2NvdW50IGVzdGltYXRlLgogCSAqLwogCUFzc2Vy dChyZWwtPnJvd3MgPiAwIHx8IElTX0RVTU1ZX1JFTChyZWwpKTsKKworCS8qIE5vdyBjYWxj dWxhdGluZyB0aGUgc2VsZWN0aXZpdHkgaW1wYWN0ZWQgYnkgQ29ycmVjdGl2ZSBRdWFsICov CisJaWYgKCFydGUtPmluaCkgIC8qIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBQb0MgKi8KKwl7 CisJCUxpc3RDZWxsICpsOworCQlpbnQgaSA9IDA7CisJCXJlbC0+Y3F1YWxfc2VsZWN0aXZp dHkgPSBwYWxsb2Moc2l6ZW9mKFNlbGVjdGl2aXR5KSAqIGxpc3RfbGVuZ3RoKHJlbC0+Y3F1 YWxfaW5kZXhlcykpOworCisJCWZvcmVhY2gobCwgcmVsLT5jcXVhbF9pbmRleGVzKQorCQl7 CisJCQlpbnQgY3FfaW5kZXggPSBsZmlyc3RfaW50KGwpOworCQkJQ29ycmVsYXRpdmVRdWFs cyAqY3F1YWxzID0gbGlzdF9udGhfbm9kZShDb3JyZWxhdGl2ZVF1YWxzLCByb290LT5jb3Jy ZWxhdGl2ZV9xdWFscywgY3FfaW5kZXgpOworCQkJTGlzdENlbGwgKmwyOworCQkJYm9vbCBm b3VuZCA9IGZhbHNlOworCQkJZm9yZWFjaChsMiwgY3F1YWxzLT5jb3JyX3Jlc3RyaWN0aW5m bykKKwkJCXsKKwkJCQlSZXN0cmljdEluZm8gKnJpbmZvID0gbGZpcnN0X25vZGUoUmVzdHJp Y3RJbmZvLCBsMik7CisJCQkJaWYgKGJtc19lcXVhbChyaW5mby0+Y2xhdXNlX3JlbGlkcywg cmVsLT5yZWxpZHMpKQorCQkJCXsKKwkJCQkJZm91bmQgPSB0cnVlOworCQkJCQlyZWwtPmNx dWFsX3NlbGVjdGl2aXR5W2ldID0gcmluZm8tPm5vcm1fc2VsZWMgPiAwID8gcmluZm8tPm5v cm1fc2VsZWMgOiByaW5mby0+b3V0ZXJfc2VsZWM7CisJCQkJCUFzc2VydChyZWwtPmNxdWFs X3NlbGVjdGl2aXR5W2ldID4gMCk7CisJCQkJfQorCQkJfQorCQkJQXNzZXJ0KGZvdW5kKTsK KwkJfQorCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w YXRoL2Nvc3RzaXplLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5j CmluZGV4IGZjYzI2YjAxYTQuLjAzYjkyYTJhODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wYXRoL2Nvc3RzaXplLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BhdGgvY29zdHNpemUuYwpAQCAtNTQyOCw2ICs1NDI4LDEzOCBAQCBnZXRfcGFyYW1ldGVy aXplZF9qb2lucmVsX3NpemUoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwK IAlyZXR1cm4gbnJvd3M7CiB9CiAKKworLyoKKyAqIEdpdmVuIGEgbWVyZ2VhYmxlIFJlc3Ry aWN0SW5mbywgZmluZCBvdXQgd2hpY2ggcmVsaWQgc2hvdWxkIGJlIHVzZWQgZm9yCisgKiBl bGltaW5hdGluZyBDb3JyZWN0aXZlIFF1YWwgU2VsZWN0aXZpdHkuCisgKi8KK3N0YXRpYyBp bnQKK2ZpbmRfcmVsaWRfdG9fZWxpbWluYXRlKFBsYW5uZXJJbmZvICpyb290LCBSZXN0cmlj dEluZm8gKnJpbmZvKQoreworCWludCBsZWZ0X3JlbGlkLCAgcmlnaHRfcmVsaWQ7CisJUmVs T3B0SW5mbyAqbHJlbCwgKnJyZWw7CisJYm9vbCByZXM7CisKKwlyZXMgPSBibXNfZ2V0X3Np bmdsZXRvbl9tZW1iZXIocmluZm8tPmxlZnRfcmVsaWRzLCAmbGVmdF9yZWxpZCk7CisJQXNz ZXJ0KHJlcyk7CisJcmVzID0gYm1zX2dldF9zaW5nbGV0b25fbWVtYmVyKHJpbmZvLT5sZWZ0 X3JlbGlkcywgJnJpZ2h0X3JlbGlkKTsKKwlBc3NlcnQocmVzKTsKKworCWxyZWwgPSByb290 LT5zaW1wbGVfcmVsX2FycmF5W2xlZnRfcmVsaWRdOworCXJyZWwgPSByb290LT5zaW1wbGVf cmVsX2FycmF5W3JpZ2h0X3JlbGlkXTsKKworCS8qIFhYWDogQXNzdW1lZCBvbmx5IG9uZSBD b3JyZWN0aXZlUXVhbCBleGlzdHMgKi8KKworCWlmIChscmVsLT5jcXVhbF9zZWxlY3Rpdml0 eVswXSA+IHJyZWwtPmNxdWFsX3NlbGVjdGl2aXR5WzBdKQorCQlyZXR1cm4gbGVmdF9yZWxp ZDsKKworCXJldHVybiByaWdodF9yZWxpZDsKK30KKworLyoKKyAqIGNhbGNfam9pbl9jcXVh bF9zZWxlY3Rpdml0eQorICoKKyAqCVdoZW4gam9pbiB0d28gcmVsYXRpb25zLCBpZiBib3Ro IHNpZGVzIGFyZSBpbXBhY3RlZCBieSB0aGUgc2FtZSBDb3JyZWN0aXZlUXVhbHMsCisgKiB3 ZSBuZWVkIHRvIGVsaW1pbmF0ZSBvbmUgb2YgdGhlbSBhbmQgbm90ZSB0aGUgb3RoZXIgb25l IGZvciBmdXR1cmUgZWxpbWluYXRpbmcgd2hlbiBqb2luCisgKiBhbm90aGVyIGNvcnJlY3Rp dmUgcmVsYXRpb24uIG9yIGVsc2UganVzdCBub3RlIHRoZSBqb2lucmVsIHN0aWxsIGJlaW5n IGltcGFjdGVkIGJ5IHRoZQorICogc2luZ2xlIHNpZGVzJ3MgQ29ycmVjdGl2ZVF1YWxzLgor ICoKKyAqIFJldHVybiB2YWx1ZSBpcyB0aGUgU2VsZWN0aXZpdHkgd2UgbmVlZCB0byBlbGlt aW5hdGUgZm9yIGVzdGltYXRpbmcgdGhlIGN1cnJlbnQKKyAqIGpvaW5yZWwuCisgKi8KK3N0 YXRpYyBkb3VibGUKK2NhbGNfam9pbl9jcXVhbF9zZWxlY3Rpdml0eShQbGFubmVySW5mbyAq cm9vdCwKKwkJCQkJCQlSZWxPcHRJbmZvICpqb2lucmVsLAorCQkJCQkJCVJlbE9wdEluZm8g Km91dGVyX3JlbCwKKwkJCQkJCQlSZWxPcHRJbmZvICppbm5lcl9yZWwsCisJCQkJCQkJUmVz dHJpY3RJbmZvICpyaW5mbykKK3sKKwlkb3VibGUgcmVzID0gMTsKKwlMaXN0Q2VsbCAqbGMx LCAqbGMyOworCVNlbGVjdGl2aXR5IGxlZnRfc2VsOyAgLyogVGhlIGNxdWFsIHNlbGVjdGl2 aXR5IHN0aWxsIGltcGFjdGVkIG9uIHRoaXMgam9pbnJlbC4gKi8KKworCS8qCisJICogRmlu ZCBob3cgbWFueSBDb3JyZWN0aXZlUXVhbCBmb3IgdGhpcyBqb2lucmVsIGFuZCBhbGxvY2F0 ZSBzcGFjZSBmb3IgZWFjaCBsZWZ0IFNlbGVjdGl2aXR5CisJICogZm9yIGVhY2ggQ29ycmVj dGl2ZVF1YWwgaGVyZS4KKwkgKi8KKwlMaXN0CSpmaW5hbF9jcV9saXN0ID0gbGlzdF91bmlv bl9pbnQob3V0ZXJfcmVsLT5jcXVhbF9pbmRleGVzLCBpbm5lcl9yZWwtPmNxdWFsX2luZGV4 ZXMpOworCisJam9pbnJlbC0+Y3F1YWxfc2VsZWN0aXZpdHkgPSBwYWxsb2Moc2l6ZW9mKFNl bGVjdGl2aXR5KSAqIGxpc3RfbGVuZ3RoKGZpbmFsX2NxX2xpc3QpKTsKKworCWZvcmVhY2go bGMxLCBvdXRlcl9yZWwtPmNxdWFsX2luZGV4ZXMpCisJeworCQlpbnQgb3V0ZXJfY3FfaW5k ZXggPSBsZmlyc3RfaW50KGxjMSk7CisJCWludCBpbm5lcl9jcV9wb3MgPSAtMTsKKwkJaW50 IG91dGVyX2lkeCA9IGZvcmVhY2hfY3VycmVudF9pbmRleChsYzEpOworCQlpbnQgY3Vycl9z ZWxfbGVuOworCisJCS8qCisJCSAqIENoZWNrIGlmIHRoZSBzYW1lIGNvcnJlY3RpdmUgcXVh bHMgYXBwbGllZCBpbiBib3RoIHNpZGVzLAorCQkgKiBpZiB5ZXMsIHdlIG5lZWQgdG8gZGVj aWRlIHdoaWNoIG9uZSB0byBlbGltaW5hdGUgYW5kIHdoaWNoIG9uZQorCQkgKiB0byBrZWVw LiBvciBlbHNlLCB3ZSBqdXN0IGtlZXAgdGhlIHNlbGVjdGl2aXR5IGZvciBmZWF0dXJlIHVz ZS4KKwkJICovCisJCWZvcmVhY2gobGMyLCBpbm5lcl9yZWwtPmNxdWFsX2luZGV4ZXMpCisJ CXsKKwkJCWlmIChvdXRlcl9jcV9pbmRleCA9PSBsZmlyc3RfaW50KGxjMikpCisJCQkJaW5u ZXJfY3FfcG9zID0gZm9yZWFjaF9jdXJyZW50X2luZGV4KGxjMik7CisJCX0KKworCQlpZiAo aW5uZXJfY3FfcG9zID49IDApCisJCXsKKwkJCS8qIEZpbmQgdGhlIENvcnJlY3RpdmVRdWFs IHdoaWNoIGltcGFjdHMgYm90aCBzaWRlLiAqLworCQkJaW50IHJlbGlkID0gZmluZF9yZWxp ZF90b19lbGltaW5hdGUocm9vdCwgcmluZm8pOworCQkJaWYgKGJtc19pc19tZW1iZXIocmVs aWQsIG91dGVyX3JlbC0+cmVsaWRzKSkKKwkJCXsKKwkJCQkvKiBYWFhYOiB3ZSBhc3N1bWUg b25seSAxIENvcnJlY3RpdmVRdWFsIGV4aXN0LCBzbyBbMF0gZGlyZWN0bHkuICovCisJCQkJ cmVzICo9IG91dGVyX3JlbC0+Y3F1YWxfc2VsZWN0aXZpdHlbMF07CisJCQkJbGVmdF9zZWwg PSBpbm5lcl9yZWwtPmNxdWFsX3NlbGVjdGl2aXR5WzBdOworCQkJfQorCQkJZWxzZQorCQkJ eworCQkJCS8qIFhYWFg6IHdlIGFzc3VtZSBvbmx5IDEgQ29ycmVjdGl2ZVF1YWwgZXhpc3Qg Ki8KKwkJCQlyZXMgKj0gaW5uZXJfcmVsLT5jcXVhbF9zZWxlY3Rpdml0eVswXTsKKwkJCQls ZWZ0X3NlbCA9IG91dGVyX3JlbC0+Y3F1YWxfc2VsZWN0aXZpdHlbMF07CisJCQl9CisJCX0K KwkJZWxzZQorCQl7CisJCQkvKiBPbmx5IHNob3duIGluIG91dGVyIHNpZGUuICovCisJCQls ZWZ0X3NlbCA9IG91dGVyX3JlbC0+Y3F1YWxfc2VsZWN0aXZpdHlbb3V0ZXJfaWR4XTsKKwkJ fQorCisJCS8qCisJCSAqIElmIGFueSBzaWRlIG9mIGpvaW4gcmVsYXRpb24gaXMgaW1wYWN0 ZWQgYnkgYSBjcXVhbCwgaXQgaXMgaW1wYWN0ZWQgZm9yIHRoZSBqb2lucmVsCisJCSAqIGZv ciBzdXJlLgorCQkgKi8KKwkJY3Vycl9zZWxfbGVuID0gbGlzdF9sZW5ndGgoam9pbnJlbC0+ Y3F1YWxfaW5kZXhlcyk7CisJCWpvaW5yZWwtPmNxdWFsX2luZGV4ZXMgPSBsYXBwZW5kX2lu dChqb2lucmVsLT5jcXVhbF9pbmRleGVzLCBvdXRlcl9pZHgpOworCisJCWpvaW5yZWwtPmNx dWFsX3NlbGVjdGl2aXR5W2N1cnJfc2VsX2xlbl0gPSBsZWZ0X3NlbDsKKwkJLy8gZWxvZyhJ TkZPLCAibGVmdF9zZWwgJWYiLCBsZWZ0X3NlbCk7CisJfQorCisJLyogUHVzaCBhbnkgY3F1 YWwgaW5mb3JtYXRpb24gd2hpY2ggZXhpc3RzIGluIGlubmVyX3JlbCBvbmx5IHRvIGpvaW4g cmVsLiAqLworCWZvcmVhY2gobGMxLCBpbm5lcl9yZWwtPmNxdWFsX2luZGV4ZXMpCisJewor CQlpbnQgaW5uZXJfY3FfaW5kZXggPSBsZmlyc3RfaW50KGxjMSk7CisJCWludCBjdXJyX3Nl bF9sZW47CisKKwkJaWYgKGxpc3RfbWVtYmVyX2ludChvdXRlcl9yZWwtPmNxdWFsX2luZGV4 ZXMsIGlubmVyX2NxX2luZGV4KSkKKwkJCS8qIGhhdmUgYmVlbiBoYW5kbGVkIGluIHRoZSBw cmV2aW91cyBsb29wICovCisJCQljb250aW51ZTsKKworCQljdXJyX3NlbF9sZW4gPSBsaXN0 X2xlbmd0aChqb2lucmVsLT5jcXVhbF9pbmRleGVzKTsKKwkJam9pbnJlbC0+Y3F1YWxfc2Vs ZWN0aXZpdHlbY3Vycl9zZWxfbGVuXSA9IGlubmVyX3JlbC0+Y3F1YWxfc2VsZWN0aXZpdHlb Zm9yZWFjaF9jdXJyZW50X2luZGV4KGxjMSldOworCX0KKworCXBmcmVlKGZpbmFsX2NxX2xp c3QpOworCisJLy8gZWxvZyhJTkZPLCAiRmluYWwgYWRqdXN0IHNlbCAoJXMpOiAlZiIsIGJt c1RvU3RyaW5nKGpvaW5yZWwtPnJlbGlkcyksIHJlcyk7CisKKwlyZXR1cm4gcmVzOworfQor CisKIC8qCiAgKiBjYWxjX2pvaW5yZWxfc2l6ZV9lc3RpbWF0ZQogICoJCVdvcmtob3JzZSBm b3Igc2V0X2pvaW5yZWxfc2l6ZV9lc3RpbWF0ZXMgYW5kCkBAIC01NTcxLDYgKzU3MDMsNTYg QEAgY2FsY19qb2lucmVsX3NpemVfZXN0aW1hdGUoUGxhbm5lckluZm8gKnJvb3QsCiAJCQli cmVhazsKIAl9CiAKKwl7CisJCVNlbGVjdGl2aXR5IG0xID0gMTsKKwkJYm9vbCBzaG91bGRf ZWxpbWluYXRlID0gZmFsc2U7CisJCVJlc3RyaWN0SW5mbyAqcmluZm87CisKKwkJLy8gWFhY OiBGb3IgaGFjayBvbmx5LCB0aGUgYWltIGlzIHRoZSAib25seSBvbmUiIHJlc3RyaWN0aW5m byBpcyB0aGUgb25lIGltcGFjdGVkIGJ5ICJ0aGUgb25seSBvbmUiCisJCS8vIENvcnJlY3Rp dmVRdWFscy4gZm9yIGV4YW1wbGU6CisJCS8vIFNFTEVDVCAqIEZST00gdDEsIHQyLCB0MyBX SEVSRSB0MS5hID0gdDIuYSBhbmQgdDIuYSA9IHQzLmEgYW5kIHQzLmEgPiAyOworCisJCWlm IChsaXN0X2xlbmd0aChyb290LT5jb3JyZWxhdGl2ZV9xdWFscykgPT0gMSAmJgorCQkJbGlz dF9sZW5ndGgocmVzdHJpY3RsaXN0KSA9PSAxICYmCisJCQlqb2ludHlwZSA9PSBKT0lOX0lO TkVSKQorCQl7CisJCQlpbnQgbGVmdF9yZWxpZCwgcmlnaHRfcmVsaWQ7CisJCQlyaW5mbyA9 IGxpbml0aWFsX25vZGUoUmVzdHJpY3RJbmZvLCByZXN0cmljdGxpc3QpOworCQkJaWYgKHJp bmZvLT5tZXJnZW9wZmFtaWxpZXMgIT0gTklMICYmCisJCQkJYm1zX2dldF9zaW5nbGV0b25f bWVtYmVyKHJpbmZvLT5sZWZ0X3JlbGlkcywgJmxlZnRfcmVsaWQpICYmCisJCQkJYm1zX2dl dF9zaW5nbGV0b25fbWVtYmVyKHJpbmZvLT5yaWdodF9yZWxpZHMsICZyaWdodF9yZWxpZCkp CisJCQl7CisJCQkJTGlzdCAqaW50ZXJzZXRfY3FfaW5kZXhlcyA9IGxpc3RfaW50ZXJzZWN0 aW9uX2ludCgKKwkJCQkJcm9vdC0+c2ltcGxlX3JlbF9hcnJheVtsZWZ0X3JlbGlkXS0+Y3F1 YWxfaW5kZXhlcywKKwkJCQkJcm9vdC0+c2ltcGxlX3JlbF9hcnJheVtyaWdodF9yZWxpZF0t PmNxdWFsX2luZGV4ZXMpOworCisJCQkJaWYgKGludGVyc2V0X2NxX2luZGV4ZXMgIT0gTklM ICYmCisJCQkJCSFyb290LT5zaW1wbGVfcnRlX2FycmF5W2xlZnRfcmVsaWRdLT5pbmggJiYK KwkJCQkJIXJvb3QtPnNpbXBsZV9ydGVfYXJyYXlbcmlnaHRfcmVsaWRdLT5pbmgpCisJCQkJ CXNob3VsZF9lbGltaW5hdGUgPSB0cnVlOworCQkJfQorCQl9CisKKwkJLy8gZWxvZyhJTkZP LCAiam9pbnJlbDogJXMsICVkIiwgYm1zVG9TdHJpbmcoam9pbnJlbC0+cmVsaWRzKSwgc2hv dWxkX2VsaW1pbmF0ZSk7CisKKwkJaWYgKHNob3VsZF9lbGltaW5hdGUpCisJCQltMSA9IGNh bGNfam9pbl9jcXVhbF9zZWxlY3Rpdml0eShyb290LCBqb2lucmVsLCBvdXRlcl9yZWwsIGlu bmVyX3JlbCwgcmluZm8pOworCisJCS8qIGVsb2coSU5GTywgKi8KKwkJLyoJICJqb2lucmVs aWRzOiAlcywgb3V0ZXJfcmVsOiAlcywgaW5uZXJfcmVsOiAlcywgam9pbl9jbGF1c2VsaXN0 OiAlcyBvdXRlciByb3dzOiAlZiwgaW5uZXJfcm93czogJWYsIGpvaW4gcm93czogJWYsIGpz ZWxlYzogJWYsIG0xID0gJWYsIG0yID0gJWYiLCAqLworCQkvKgkgYm1zVG9TdHJpbmcoam9p bnJlbC0+cmVsaWRzKSwgKi8KKwkJLyoJIGJtc1RvU3RyaW5nKG91dGVyX3JlbC0+cmVsaWRz KSwgKi8KKwkJLyoJIGJtc1RvU3RyaW5nKGlubmVyX3JlbC0+cmVsaWRzKSwgKi8KKwkJLyoJ IGJtc1RvU3RyaW5nKGpvaW5fbGlzdF9yZWxpZHMpLCAqLworCQkvKgkgb3V0ZXJfcmVsLT5y b3dzLCAqLworCQkvKgkgaW5uZXJfcmVsLT5yb3dzLCAqLworCQkvKgkgbnJvd3MsICovCisJ CS8qCSBqc2VsZWMsICovCisJCS8qCSBtMSwgKi8KKwkJLyoJIG0yKTsgKi8KKwkJbnJvd3Mg Lz0gbTE7CisJfQorCiAJcmV0dXJuIGNsYW1wX3Jvd19lc3QobnJvd3MpOwogfQogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNsYXNzLmMKaW5kZXggYjNlNWViZmJiMS4u M2VmZWIxZjMzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvZXF1 aXZjbGFzcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2VxdWl2Y2xhc3Mu YwpAQCAtMTI3Miw2ICsxMjcyLDggQEAgZ2VuZXJhdGVfYmFzZV9pbXBsaWVkX2VxdWFsaXRp ZXNfbm9fY29uc3QoUGxhbm5lckluZm8gKnJvb3QsCiAJRXF1aXZhbGVuY2VNZW1iZXIgKipw cmV2X2VtczsKIAlMaXN0Q2VsbCAgICpsYzsKIAlMaXN0Q2VsbCAgICpsYzI7CisJaW50CXN0 YXJ0X2NxX2luZGV4ID0gbGlzdF9sZW5ndGgocm9vdC0+Y29ycmVsYXRpdmVfcXVhbHMpOwor CWludAllZl9pbmRleCA9IDA7CiAKIAkvKgogCSAqIFdlIHNjYW4gdGhlIEVDIG1lbWJlcnMg b25jZSBhbmQgdHJhY2sgdGhlIGxhc3Qtc2VlbiBtZW1iZXIgZm9yIGVhY2gKQEAgLTEzMzgs OSArMTM0MCwxMSBAQCBnZW5lcmF0ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGllc19ub19jb25z dChQbGFubmVySW5mbyAqcm9vdCwKIAogCXBmcmVlKHByZXZfZW1zKTsKIAorCWlmIChlYy0+ ZWNfYnJva2VuKQorCQlnb3RvIGVjX2ZpbHRlcl9kb25lOwogCiAJLyoKLQkgKiBBbHNvIHB1 c2ggYW55IEVxdWl2YWxlbmNlRmlsdGVyIGNsYXVzZXMgZG93biBpbnRvIGFsbCByZWxhdGlv bnMKKwkgKiBQdXNoIGFueSBFcXVpdmFsZW5jZUZpbHRlciBjbGF1c2VzIGRvd24gaW50byBh bGwgcmVsYXRpb25zCiAJICogb3RoZXIgdGhhbiB0aGUgb25lIHdoaWNoIHRoZSBmaWx0ZXIg YWN0dWFsbHkgb3JpZ2luYXRlZCBmcm9tLgogCSAqLwogCWZvcmVhY2gobGMyLCBlYy0+ZWNf ZmlsdGVycykKQEAgLTEzNTAsMTkgKzEzNTQsMjUgQEAgZ2VuZXJhdGVfYmFzZV9pbXBsaWVk X2VxdWFsaXRpZXNfbm9fY29uc3QoUGxhbm5lckluZm8gKnJvb3QsCiAJCUV4cHIgKnJpZ2h0 ZXhwcjsKIAkJT2lkIG9wbm87CiAJCWludCByZWxpZDsKLQotCQlpZiAoZWMtPmVjX2Jyb2tl bikKLQkJCWJyZWFrOworCQlDb3JyZWxhdGl2ZVF1YWxzICpjcXVhbHMgPSBtYWtlTm9kZShD b3JyZWxhdGl2ZVF1YWxzKTsKIAogCQlmb3JlYWNoKGxjLCBlYy0+ZWNfbWVtYmVycykKIAkJ ewogCQkJRXF1aXZhbGVuY2VNZW1iZXIgKmN1cl9lbSA9IChFcXVpdmFsZW5jZU1lbWJlciAq KSBsZmlyc3QobGMpOworCQkJUmVsT3B0SW5mbyAqcmVsOworCQkJUmVzdHJpY3RJbmZvICpy aW5mbzsKIAogCQkJaWYgKCFibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIoY3VyX2VtLT5lbV9y ZWxpZHMsICZyZWxpZCkpCiAJCQkJY29udGludWU7CiAKKwkJCXJlbCA9IHJvb3QtPnNpbXBs ZV9yZWxfYXJyYXlbcmVsaWRdOworCiAJCQlpZiAoZWYtPmVmX3NvdXJjZV9yZWwgPT0gcmVs aWQpCisJCQl7CisJCQkJcmVsLT5jcXVhbF9pbmRleGVzID0gbGFwcGVuZF9pbnQocmVsLT5j cXVhbF9pbmRleGVzLCBzdGFydF9jcV9pbmRleCArIGVmX2luZGV4KTsKKwkJCQljcXVhbHMt PmNvcnJfcmVzdHJpY3RpbmZvID0gbGFwcGVuZChjcXVhbHMtPmNvcnJfcmVzdHJpY3RpbmZv LCBlZi0+cmluZm8pOwogCQkJCWNvbnRpbnVlOworCQkJfQogCiAJCQlpZiAoZWYtPmVmX2Nv bnN0X2lzX2xlZnQpCiAJCQl7CkBAIC0xMzgzLDE5ICsxMzkzLDI4IEBAIGdlbmVyYXRlX2Jh c2VfaW1wbGllZF9lcXVhbGl0aWVzX25vX2NvbnN0KFBsYW5uZXJJbmZvICpyb290LAogCQkJ aWYgKG9wbm8gPT0gSW52YWxpZE9pZCkKIAkJCQljb250aW51ZTsKIAotCi0JCQlwcm9jZXNz X2ltcGxpZWRfZXF1YWxpdHkocm9vdCwgb3BubywKLQkJCQkJCQkJCSBlYy0+ZWNfY29sbGF0 aW9uLAotCQkJCQkJCQkJIGxlZnRleHByLAotCQkJCQkJCQkJIHJpZ2h0ZXhwciwKLQkJCQkJ CQkJCSBibXNfY29weShlYy0+ZWNfcmVsaWRzKSwKLQkJCQkJCQkJCSBibXNfY29weShjdXJf ZW0tPmVtX251bGxhYmxlX3JlbGlkcyksCi0JCQkJCQkJCQkgZWMtPmVjX21pbl9zZWN1cml0 eSwKLQkJCQkJCQkJCSBlYy0+ZWNfYmVsb3dfb3V0ZXJfam9pbiwKLQkJCQkJCQkJCSBmYWxz ZSk7CisJCQlyaW5mbyA9IHByb2Nlc3NfaW1wbGllZF9lcXVhbGl0eShyb290LCBvcG5vLAor CQkJCQkJCQkJCQkgZWMtPmVjX2NvbGxhdGlvbiwKKwkJCQkJCQkJCQkJIGxlZnRleHByLAor CQkJCQkJCQkJCQkgcmlnaHRleHByLAorCQkJCQkJCQkJCQkgYm1zX2NvcHkoZWMtPmVjX3Jl bGlkcyksCisJCQkJCQkJCQkJCSBibXNfY29weShjdXJfZW0tPmVtX251bGxhYmxlX3JlbGlk cyksCisJCQkJCQkJCQkJCSBlYy0+ZWNfbWluX3NlY3VyaXR5LAorCQkJCQkJCQkJCQkgZWMt PmVjX2JlbG93X291dGVyX2pvaW4sCisJCQkJCQkJCQkJCSBmYWxzZSk7CisJCQljcXVhbHMt PmNvcnJfcmVzdHJpY3RpbmZvID0gbGFwcGVuZChjcXVhbHMtPmNvcnJfcmVzdHJpY3RpbmZv LCByaW5mbyk7CisJCQlyZWwtPmNxdWFsX2luZGV4ZXMgPSBsYXBwZW5kX2ludChyZWwtPmNx dWFsX2luZGV4ZXMsIHN0YXJ0X2NxX2luZGV4ICsgZWZfaW5kZXgpOwogCQl9CisKKwkJZWZf aW5kZXggKz0gMTsKKworCQlyb290LT5jb3JyZWxhdGl2ZV9xdWFscyA9IGxhcHBlbmQocm9v dC0+Y29ycmVsYXRpdmVfcXVhbHMsIGNxdWFscyk7CiAJfQogCitlY19maWx0ZXJfZG9uZToK KwkvKgorCSAqIFhYWCB0aGlzIGxhYmVsIGNhbiBiZSByZW1vdmVkIGFmdGVyIG1vdmluZyBl Y19maWx0ZXIgdG8gdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uLgorCSAqLwogCS8qCiAJICog V2UgYWxzbyBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IGFsbCB0aGUgVmFycyB1c2VkIGluIHRo ZSBtZW1iZXIgY2xhdXNlcwogCSAqIHdpbGwgYmUgYXZhaWxhYmxlIGF0IGFueSBqb2luIG5v ZGUgd2UgbWlnaHQgdHJ5IHRvIHJlZmVyZW5jZSB0aGVtIGF0LgpAQCAtMjA3Myw2ICsyMDky LDcgQEAgZGlzdHJpYnV0ZV9maWx0ZXJfcXVhbHNfdG9fZWNsYXNzKFBsYW5uZXJJbmZvICpy b290LCBMaXN0ICpxdWFsbGlzdCkKIAkJCQkJZWZpbHRlci0+ZWZfc291cmNlX3JlbCA9IHJl bGlkOwogCQkJCQllZmlsdGVyLT5vcGZhbWlseSA9IG9wZmFtaWx5OwogCQkJCQllZmlsdGVy LT5hbXN0cmF0ZWd5ID0gYW1zdHJhdGVneTsKKwkJCQkJZWZpbHRlci0+cmluZm8gPSByaW5m bzsKIAogCQkJCQllYy0+ZWNfZmlsdGVycyA9IGxhcHBlbmQoZWMtPmVjX2ZpbHRlcnMsIGVm aWx0ZXIpOwogCQkJCQlicmVhazsJCS8qIE9udG8gdGhlIG5leHQgZWNsYXNzICovCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggMDZhZDg1NmVhYy4uMmJlMjQy OTQ1NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtNjE5LDYg KzYxOSw3IEBAIHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUXVlcnkg KnBhcnNlLAogCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgPSBOSUw7CiAJcm9vdC0+ZXFfY2xh c3NlcyA9IE5JTDsKIAlyb290LT5lY19tZXJnaW5nX2RvbmUgPSBmYWxzZTsKKwlyb290LT5j b3JyZWxhdGl2ZV9xdWFscyA9IE5JTDsKIAlyb290LT5hbGxfcmVzdWx0X3JlbGlkcyA9CiAJ CXBhcnNlLT5yZXN1bHRSZWxhdGlvbiA/IGJtc19tYWtlX3NpbmdsZXRvbihwYXJzZS0+cmVz dWx0UmVsYXRpb24pIDogTlVMTDsKIAlyb290LT5sZWFmX3Jlc3VsdF9yZWxpZHMgPSBOVUxM OwkvKiB3ZSdsbCBmaW5kIG91dCBsZWFmLW5lc3MgbGF0ZXIgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKaW5kZXggMGJkOTlhY2Y4My4uZDQyN2Rl NmY4NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50 cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMK QEAgLTk5OSw2ICs5OTksNyBAQCBwdWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQbGFubmVySW5m byAqcm9vdCwgTm9kZSAqanRub2RlLCBSYW5nZVRibEVudHJ5ICpydGUsCiAJc3Vicm9vdC0+ bXVsdGlleHByX3BhcmFtcyA9IE5JTDsKIAlzdWJyb290LT5lcV9jbGFzc2VzID0gTklMOwog CXN1YnJvb3QtPmVjX21lcmdpbmdfZG9uZSA9IGZhbHNlOworCXN1YnJvb3QtPmNvcnJlbGF0 aXZlX3F1YWxzID0gTklMOwogCXN1YnJvb3QtPmFsbF9yZXN1bHRfcmVsaWRzID0gTlVMTDsK IAlzdWJyb290LT5sZWFmX3Jlc3VsdF9yZWxpZHMgPSBOVUxMOwogCXN1YnJvb3QtPmFwcGVu ZF9yZWxfbGlzdCA9IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL25vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCmluZGV4IGJhODc5YWIzZTkuLjg4MDBh MDUyNTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvbm9kZXMuaApAQCAtMjc4LDYgKzI3OCw3IEBAIHR5cGVkZWYgZW51 bSBOb2RlVGFnCiAJLyogdGhlc2UgYXJlbid0IHN1YmNsYXNzZXMgb2YgUGF0aDogKi8KIAlU X0VxdWl2YWxlbmNlQ2xhc3MsCiAJVF9FcXVpdmFsZW5jZUZpbHRlciwKKwlUX0NvcnJlbGF0 aXZlUXVhbHMsCiAJVF9FcXVpdmFsZW5jZU1lbWJlciwKIAlUX1BhdGhLZXksCiAJVF9QYXRo S2V5SW5mbywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggOTQyYTUyZmNhYy4uMWU5YmIz OTI3NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTI1MSw2ICsyNTEsOCBAQCBzdHJ1 Y3QgUGxhbm5lckluZm8KIAogCWJvb2wJCWVjX21lcmdpbmdfZG9uZTsJLyogc2V0IHRydWUg b25jZSBFQ3MgYXJlIGNhbm9uaWNhbCAqLwogCisJTGlzdAkJKmNvcnJlbGF0aXZlX3F1YWxz OyAgLyogbGlzdCBvZiBDb3JyZWxhdGl2ZVF1YWxzIGZvciB0aGlzIHN1YnF1ZXJ5ICovCisK IAlMaXN0CSAgICpjYW5vbl9wYXRoa2V5czsgLyogbGlzdCBvZiAiY2Fub25pY2FsIiBQYXRo S2V5cyAqLwogCiAJTGlzdAkgICAqbGVmdF9qb2luX2NsYXVzZXM7CS8qIGxpc3Qgb2YgUmVz dHJpY3RJbmZvcyBmb3IgbWVyZ2Vqb2luYWJsZQpAQCAtNzY3LDYgKzc2OSwxOCBAQCB0eXBl ZGVmIHN0cnVjdCBSZWxPcHRJbmZvCiAJICogSW5kZXhlcyBpbiBQbGFubmVySW5mbydzIGVx X2NsYXNzZXMgbGlzdCBvZiBFQ3MgdGhhdCBtZW50aW9uIHRoaXMgcmVsCiAJICovCiAJQml0 bWFwc2V0ICAqZWNsYXNzX2luZGV4ZXM7CisJTGlzdAkJKmNxdWFsX2luZGV4ZXM7IC8qIElu ZGV4ZXMgaW4gUGxhbm5lckluZm8ncyBjb3JyZWxhdGl2ZV9xdWFscyBsaXN0IG9mCisJCQkJ CQkJCSAqIENvcnJlbGF0aXZlUXVhbHMgdGhhdCB0aGlzIHJlbCBoYXMgYXBwbGllZC4gSXQg aXMgdmFsaWQKKwkJCQkJCQkJICogb24gYm90aCBiYXNlcmVsIGFuZCBqb2lucmVsLiBVc2Vk IHRvIHF1aWNrIGNoZWNrIGlzIHRoZQorCQkJCQkJCQkgKiBib3RoIHNpZGVzIGNvbnRhaW5z IHRoZSBzYW1lIENvcnJlY3RpdmVRdWFscyBvYmplY3QuCisJCQkJCQkJCSAqLworCVNlbGVj dGl2aXR5CSpjcXVhbF9zZWxlY3Rpdml0eTsgLyoKKwkJCQkJCQkJICAgKiBUaGUgbnVtYmVy IG9mIGVsZW1lbnRzIGluIGNxdWFsX3NlbGVjdGl2aXR5IGVxdWFscworCQkJCQkJCQkgICAq IHRoZSBsZW5ndGggb2YgY3F1YWxfaW5kZXhlcy4gVGhlIHNlbWFudGljcyBpcyB3aGljaAor CQkJCQkJCQkgICAqIHNlbGVjdGl2aXR5IGluIHRoZSBjb3JyZXNwb25kaW5nIENvcmVjdGl2 ZVF1YWxzJ3MgcXVhbAorCQkJCQkJCQkgICAqIGxpc3QgaXMgdGFraW5nIGVmZmVjdC4gQXQg b25seSB0aW1lLCBvbmx5IDEgUXVhbAorCQkJCQkJCQkgICAqIFNlbGVjdGl2aXR5IGlzIGNv dW50ZWQgZm9yIGFueS1sZXZlbCBvZiBqb2lucmVsLgorCQkJCQkJCQkgICAqLwogCVBsYW5u ZXJJbmZvICpzdWJyb290OwkJLyogaWYgc3VicXVlcnkgKi8KIAlMaXN0CSAgICpzdWJwbGFu X3BhcmFtczsgLyogaWYgc3VicXVlcnkgKi8KIAkvKiB3YW50ZWQgbnVtYmVyIG9mIHBhcmFs bGVsIHdvcmtlcnMgKi8KQEAgLTExODEsOCArMTE5NSwyNCBAQCB0eXBlZGVmIHN0cnVjdCBF cXVpdmFsZW5jZUZpbHRlcgogCUluZGV4CQllZl9zb3VyY2VfcmVsOwkvKiByZWxpZCBvZiBv cmlnaW5hdGluZyByZWxhdGlvbi4gKi8KIAlPaWQJCQlvcGZhbWlseTsKIAlpbnQJCQlhbXN0 cmF0ZWd5OworCXN0cnVjdCBSZXN0cmljdEluZm8JKnJpbmZvOwkJLyogc291cmNlIHJlc3Ry aWN0SW5mbyBmb3IgdGhpcyBFcXVpdmFsZW5jZUZpbHRlciAqLwogfSBFcXVpdmFsZW5jZUZp bHRlcjsKIAorCisvKgorICogQ3VycmVudGx5IGl0IGlzIGFzIHNpbXBsZSBhcyBhIExpc3Qg b2YgUmVzdHJpY3RJbmZvLCBpdCBtZWFucyBhKS4gRm9yIGFueSBqb2lucmVsIHNpemUKKyAq IGVzdGltYXRpb24sIG9ubHkgb25lIHJlc3RyaWN0aW5mbyBvbiB0aGlzIGdyb3VwIHNob3Vs ZCBiZSBjb3VudGVkLiBiKS4gRHVyaW5nIGV4ZWN1dGlvbiwKKyAqIGF0IGxlYXN0IDEgcmVz dHJpY3RpbmZvIGluIHRoaXMgZ3JvdXAgc2hvdWxkIGJlIGV4ZWN1dGVkLgorICoKKyAqIERl ZmluZSBpdCBhcyBhIE5vZGUganVzdCBmb3IgYmV0dGVyIGV4dGVuZGFiaWxpdHksIHdlIGNh biBzdHJpcGUgaXQgdG8gYSBMaXN0ICoKKyAqIGlmIHdlIGFyZSBzdXJlIG5vdGhpbmcgZWxz ZSBpcyBuZWVkZWQuCisgKi8KK3R5cGVkZWYgc3RydWN0IENvcnJlbGF0aXZlUXVhbHMKK3sK KwlOb2RlVGFnCXR5cGU7CisJTGlzdAkqY29ycl9yZXN0cmljdGluZm87Cit9IENvcnJlbGF0 aXZlUXVhbHM7CisKIC8qCiAgKiBJZiBhbiBFQyBjb250YWlucyBhIGNvbnN0IGFuZCBpc24n dCBiZWxvdy1vdXRlci1qb2luLCBhbnkgUGF0aEtleSBkZXBlbmRpbmcKICAqIG9uIGl0IG11 c3QgYmUgcmVkdW5kYW50LCBzaW5jZSB0aGVyZSdzIG9ubHkgb25lIHBvc3NpYmxlIHZhbHVl IG9mIHRoZSBrZXkuCkBAIC0yODcyLDcgKzI5MDIsNyBAQCB0eXBlZGVmIGVudW0KICAqCiAg KiBmbGFncyBpbmRpY2F0aW5nIHdoYXQga2luZHMgb2YgZ3JvdXBpbmcgYXJlIHBvc3NpYmxl LgogICogcGFydGlhbF9jb3N0c19zZXQgaXMgdHJ1ZSBpZiB0aGUgYWdnX3BhcnRpYWxfY29z dHMgYW5kIGFnZ19maW5hbF9jb3N0cwotICogCQloYXZlIGJlZW4gaW5pdGlhbGl6ZWQuCisg KgkJaGF2ZSBiZWVuIGluaXRpYWxpemVkLgogICogYWdnX3BhcnRpYWxfY29zdHMgZ2l2ZXMg cGFydGlhbCBhZ2dyZWdhdGlvbiBjb3N0cy4KICAqIGFnZ19maW5hbF9jb3N0cyBnaXZlcyBm aW5hbGl6YXRpb24gY29zdHMuCiAgKiB0YXJnZXRfcGFyYWxsZWxfc2FmZSBpcyB0cnVlIGlm IHRhcmdldCBpcyBwYXJhbGxlbCBzYWZlLgpAQCAtMjkwMiw4ICsyOTMyLDggQEAgdHlwZWRl ZiBzdHJ1Y3QKICAqIGxpbWl0X3R1cGxlcyBpcyBhbiBlc3RpbWF0ZWQgYm91bmQgb24gdGhl IG51bWJlciBvZiBvdXRwdXQgdHVwbGVzLAogICoJCW9yIC0xIGlmIG5vIExJTUlUIG9yIGNv dWxkbid0IGVzdGltYXRlLgogICogY291bnRfZXN0IGFuZCBvZmZzZXRfZXN0IGFyZSB0aGUg ZXN0aW1hdGVkIHZhbHVlcyBvZiB0aGUgTElNSVQgYW5kIE9GRlNFVAotICogCQlleHByZXNz aW9ucyBjb21wdXRlZCBieSBwcmVwcm9jZXNzX2xpbWl0KCkgKHNlZSBjb21tZW50cyBmb3IK LSAqIAkJcHJlcHJvY2Vzc19saW1pdCgpIGZvciBtb3JlIGluZm9ybWF0aW9uKS4KKyAqCQll eHByZXNzaW9ucyBjb21wdXRlZCBieSBwcmVwcm9jZXNzX2xpbWl0KCkgKHNlZSBjb21tZW50 cyBmb3IKKyAqCQlwcmVwcm9jZXNzX2xpbWl0KCkgZm9yIG1vcmUgaW5mb3JtYXRpb24pLgog ICovCiB0eXBlZGVmIHN0cnVjdAogewotLSAKMi4zNy4wCgo= --------------SfwqipnKg6tF19DxN0lrjohf Content-Type: text/plain; charset=UTF-8; name="v5-0006-Disable-ec-filter-for-foregin-table-for-now.-We-do-n.patch" Content-Disposition: attachment; filename*0="v5-0006-Disable-ec-filter-for-foregin-table-for-now.-We-do-n"; filename*1=".patch" Content-Transfer-Encoding: base64 RnJvbSBiMDVmMzM4MWE1Y2ZkZTFkM2U2MjhiODI5ZmUyZTdjZmYzNjQ5ODA0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV5IFYuIExlcGlraG92IiA8YS5sZXBpa2hv dkBwb3N0Z3Jlc3Byby5ydT4KRGF0ZTogV2VkLCA2IEp1bCAyMDIyIDE1OjU0OjI0ICswMzAw ClN1YmplY3Q6IFtQQVRDSCA2LzZdIERpc2FibGUgZWMgZmlsdGVyIGZvciBmb3JlZ2luIHRh YmxlIGZvciBub3cuIFdlIGRvIG5lZWQKIHN1cHBvcnQgRUMgZmlsdGVyIGFnYWluc3QgZm9y IGZvcmVpZ24gdGFibGUsIGJ1dCB3aGVuIGZpeGluZyB0aGUgY29zdCBtb2RlbAogaXNzdWUs IHdlIG5lZWQgdG8ga25vdyB0aGUgc2VsZWN2aXRpeSBvZiB0aGUgcXVhbCBvbiBmb3JlZ2lu IHRhYmxlLiBIb3dldmVyCiBpdCBpcyBpbXBvc3NpYmxlIGZvciBub3cgdG8ga25vdyB0aGF0 IHdoZW4gdXNlX3JlbW90ZV9lc3RpbWF0ZSA9IHRydWUuIHNlZQogZm9yIHBvc3RncmVzR2V0 Rm9yZWlnblJlbFNpemUuIFNpbmNlIHdlIGN1cnJlbnRseSBvbmx5IGRvaW5nIFBvQyBmb3Ig dGhpcwogY29zdC1tb2RlbC1maXggYWxnb3JpdGhtLCBJIGp1c3QgZGlzYWJsZSB0aGF0IGZv ciBmb3JlZ2luIHRhYmxlLiBBdCBsYXN0LCB3ZQogbmVlZCBpbXByb3ZlIHRoZSB1c2VfcmVt b3RlX2VzdGltYXRlIHNvbWVob3cgdG8gZ2V0IHRoZSBzZWxlY3Rpdml0eS4KCi0tLQogLi4u L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgMzYgKysrKysr KysrLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyAg ICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2VxdWl2Y2xhc3Mu YyAgICAgICB8IDE0ICsrKysrKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0 c3BsYW4uYyAgICAgICAgfCAgOSArKystLQogNCBmaWxlcyBjaGFuZ2VkLCA0MCBpbnNlcnRp b25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcv ZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRleCAyNzU4MDQ5ZjViLi40NDQ1N2Y5MzBj IDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19m ZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zk dy5vdXQKQEAgLTE1NDUsMTIgKzE1NDUsMTIgQEAgU0VMRUNUIHQxLmMxLCBzcy5hLCBzcy5i IEZST00gKFNFTEVDVCBjMSBGUk9NICJTIDEiLiJUIDMiIFdIRVJFIGMxID0gNTApIHQxIElO TkUKIC0tIGZ1bGwgb3V0ZXIgam9pbiArIGlubmVyIGpvaW4KIEVYUExBSU4gKFZFUkJPU0Us IENPU1RTIE9GRikKIFNFTEVDVCB0MS5jMSwgdDIuYzEsIHQzLmMxIEZST00gZnQ0IHQxIElO TkVSIEpPSU4gZnQ1IHQyIE9OICh0MS5jMSA9IHQyLmMxICsgMSBhbmQgdDEuYzEgYmV0d2Vl biA1MCBhbmQgNjApIEZVTEwgSk9JTiBmdDQgdDMgT04gKHQyLmMxID0gdDMuYzEpIE9SREVS IEJZIHQxLmMxLCB0Mi5jMSwgdDMuYzEgTElNSVQgMTA7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEZv cmVpZ24gU2NhbgogICAgT3V0cHV0OiB0MS5jMSwgdDIuYzEsIHQzLmMxCiAgICBSZWxhdGlv bnM6ICgocHVibGljLmZ0NCB0MSkgSU5ORVIgSk9JTiAocHVibGljLmZ0NSB0MikpIEZVTEwg Sk9JTiAocHVibGljLmZ0NCB0MykKLSAgIFJlbW90ZSBTUUw6IFNFTEVDVCByMS5jMSwgcjIu YzEsIHI0LmMxIEZST00gKCgiUyAxIi4iVCAzIiByMSBJTk5FUiBKT0lOICJTIDEiLiJUIDQi IHIyIE9OICgoKHIxLmMxID0gKHIyLmMxICsgMSkpKSBBTkQgKCgocjIuYzEgKyAxKSA+PSA1 MCkpIEFORCAoKChyMi5jMSArIDEpIDw9IDYwKSkgQU5EICgocjEuYzEgPj0gNTApKSBBTkQg KChyMS5jMSA8PSA2MCkpKSkgRlVMTCBKT0lOICJTIDEiLiJUIDMiIHI0IE9OICgoKHIyLmMx ID0gcjQuYzEpKSkpIE9SREVSIEJZIHIxLmMxIEFTQyBOVUxMUyBMQVNULCByMi5jMSBBU0Mg TlVMTFMgTEFTVCwgcjQuYzEgQVNDIE5VTExTIExBU1QgTElNSVQgMTA6OmJpZ2ludAorICAg UmVtb3RlIFNRTDogU0VMRUNUIHIxLmMxLCByMi5jMSwgcjQuYzEgRlJPTSAoKCJTIDEiLiJU IDMiIHIxIElOTkVSIEpPSU4gIlMgMSIuIlQgNCIgcjIgT04gKCgocjEuYzEgPSAocjIuYzEg KyAxKSkpIEFORCAoKHIxLmMxID49IDUwKSkgQU5EICgocjEuYzEgPD0gNjApKSkpIEZVTEwg Sk9JTiAiUyAxIi4iVCAzIiByNCBPTiAoKChyMi5jMSA9IHI0LmMxKSkpKSBPUkRFUiBCWSBy MS5jMSBBU0MgTlVMTFMgTEFTVCwgcjIuYzEgQVNDIE5VTExTIExBU1QsIHI0LmMxIEFTQyBO VUxMUyBMQVNUIExJTUlUIDEwOjpiaWdpbnQKICg0IHJvd3MpCiAKIFNFTEVDVCB0MS5jMSwg dDIuYzEsIHQzLmMxIEZST00gZnQ0IHQxIElOTkVSIEpPSU4gZnQ1IHQyIE9OICh0MS5jMSA9 IHQyLmMxICsgMSBhbmQgdDEuYzEgYmV0d2VlbiA1MCBhbmQgNjApIEZVTEwgSk9JTiBmdDQg dDMgT04gKHQyLmMxID0gdDMuYzEpIE9SREVSIEJZIHQxLmMxLCB0Mi5jMSwgdDMuYzEgTElN SVQgMTA7CkBAIC0yMzM1LDEyICsyMzM1LDEyIEBAIFNFTEVDVCBmdDQuYzEsIHEuKiBGUk9N IGZ0NCBMRUZUIEpPSU4gKFNFTEVDVCAxMywgZnQxLmMxLCBmdDIuYzEgRlJPTSBmdDEgUklH SFQKIFVQREFURSBmdDUgU0VUIGMzID0gbnVsbCB3aGVyZSBjMSAlIDkgPSAwOwogRVhQTEFJ TiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogU0VMRUNUIGZ0NSwgZnQ1LmMxLCBmdDUuYzIsIGZ0 NS5jMywgZnQ0LmMxLCBmdDQuYzIgRlJPTSBmdDUgbGVmdCBqb2luIGZ0NCBvbiBmdDUuYzEg PSBmdDQuYzEgV0hFUkUgZnQ0LmMxIEJFVFdFRU4gMTAgYW5kIDMwIE9SREVSIEJZIGZ0NS5j MSwgZnQ0LmMxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBGb3JlaWduIFNjYW4KICAgIE91 dHB1dDogZnQ1LiosIGZ0NS5jMSwgZnQ1LmMyLCBmdDUuYzMsIGZ0NC5jMSwgZnQ0LmMyCiAg ICBSZWxhdGlvbnM6IChwdWJsaWMuZnQ1KSBJTk5FUiBKT0lOIChwdWJsaWMuZnQ0KQotICAg UmVtb3RlIFNRTDogU0VMRUNUIENBU0UgV0hFTiAocjEuKik6OnRleHQgSVMgTk9UIE5VTEwg VEhFTiBST1cocjEuYzEsIHIxLmMyLCByMS5jMykgRU5ELCByMS5jMSwgcjEuYzIsIHIxLmMz LCByMi5jMSwgcjIuYzIgRlJPTSAoIlMgMSIuIlQgNCIgcjEgSU5ORVIgSk9JTiAiUyAxIi4i VCAzIiByMiBPTiAoKChyMS5jMSA9IHIyLmMxKSkgQU5EICgocjIuYzEgPj0gMTApKSBBTkQg KChyMi5jMSA8PSAzMCkpIEFORCAoKHIxLmMxID49IDEwKSkgQU5EICgocjEuYzEgPD0gMzAp KSkpIE9SREVSIEJZIHIxLmMxIEFTQyBOVUxMUyBMQVNUCisgICBSZW1vdGUgU1FMOiBTRUxF Q1QgQ0FTRSBXSEVOIChyMS4qKTo6dGV4dCBJUyBOT1QgTlVMTCBUSEVOIFJPVyhyMS5jMSwg cjEuYzIsIHIxLmMzKSBFTkQsIHIxLmMxLCByMS5jMiwgcjEuYzMsIHIyLmMxLCByMi5jMiBG Uk9NICgiUyAxIi4iVCA0IiByMSBJTk5FUiBKT0lOICJTIDEiLiJUIDMiIHIyIE9OICgoKHIx LmMxID0gcjIuYzEpKSBBTkQgKChyMi5jMSA+PSAxMCkpIEFORCAoKHIyLmMxIDw9IDMwKSkp KSBPUkRFUiBCWSByMS5jMSBBU0MgTlVMTFMgTEFTVAogKDQgcm93cykKIAogU0VMRUNUIGZ0 NSwgZnQ1LmMxLCBmdDUuYzIsIGZ0NS5jMywgZnQ0LmMxLCBmdDQuYzIgRlJPTSBmdDUgbGVm dCBqb2luIGZ0NCBvbiBmdDUuYzEgPSBmdDQuYzEgV0hFUkUgZnQ0LmMxIEJFVFdFRU4gMTAg YW5kIDMwIE9SREVSIEJZIGZ0NS5jMSwgZnQ0LmMxOwpAQCAtMjM2Miw4ICsyMzYyLDggQEAg U0VUIGVuYWJsZV9oYXNoam9pbiBUTyBmYWxzZTsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikKIFNFTEVDVCAqIEZST00gZnQxLCBmdDIsIGZ0NCwgZnQ1LCBsb2NhbF90YmwgV0hF UkUgZnQxLmMxID0gZnQyLmMxIEFORCBmdDEuYzIgPSBmdDQuYzEKICAgICBBTkQgZnQxLmMy ID0gZnQ1LmMxIEFORCBmdDEuYzIgPSBsb2NhbF90YmwuYzEgQU5EIGZ0MS5jMSA8IDEwMCBB TkQgZnQyLmMxIDwgMTAwIEZPUiBVUERBVEU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg TG9ja1Jvd3MKICAgIE91dHB1dDogZnQxLmMxLCBmdDEuYzIsIGZ0MS5jMywgZnQxLmM0LCBm dDEuYzUsIGZ0MS5jNiwgZnQxLmM3LCBmdDEuYzgsIGZ0Mi5jMSwgZnQyLmMyLCBmdDIuYzMs IGZ0Mi5jNCwgZnQyLmM1LCBmdDIuYzYsIGZ0Mi5jNywgZnQyLmM4LCBmdDQuYzEsIGZ0NC5j MiwgZnQ0LmMzLCBmdDUuYzEsIGZ0NS5jMiwgZnQ1LmMzLCBsb2NhbF90YmwuYzEsIGxvY2Fs X3RibC5jMiwgbG9jYWxfdGJsLmMzLCBmdDEuKiwgZnQyLiosIGZ0NC4qLCBmdDUuKiwgbG9j YWxfdGJsLmN0aWQKICAgIC0+ICBNZXJnZSBKb2luCkBAIC0yMzczLDcgKzIzNzMsNyBAQCBT RUxFQ1QgKiBGUk9NIGZ0MSwgZnQyLCBmdDQsIGZ0NSwgbG9jYWxfdGJsIFdIRVJFIGZ0MS5j MSA9IGZ0Mi5jMSBBTkQgZnQxLmMyID0gZgogICAgICAgICAgLT4gIEZvcmVpZ24gU2Nhbgog ICAgICAgICAgICAgICAgT3V0cHV0OiBmdDEuYzEsIGZ0MS5jMiwgZnQxLmMzLCBmdDEuYzQs IGZ0MS5jNSwgZnQxLmM2LCBmdDEuYzcsIGZ0MS5jOCwgZnQxLiosIGZ0Mi5jMSwgZnQyLmMy LCBmdDIuYzMsIGZ0Mi5jNCwgZnQyLmM1LCBmdDIuYzYsIGZ0Mi5jNywgZnQyLmM4LCBmdDIu KiwgZnQ0LmMxLCBmdDQuYzIsIGZ0NC5jMywgZnQ0LiosIGZ0NS5jMSwgZnQ1LmMyLCBmdDUu YzMsIGZ0NS4qCiAgICAgICAgICAgICAgICBSZWxhdGlvbnM6ICgoKHB1YmxpYy5mdDEpIElO TkVSIEpPSU4gKHB1YmxpYy5mdDIpKSBJTk5FUiBKT0lOIChwdWJsaWMuZnQ0KSkgSU5ORVIg Sk9JTiAocHVibGljLmZ0NSkKLSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBy MS4iQyAxIiwgcjEuYzIsIHIxLmMzLCByMS5jNCwgcjEuYzUsIHIxLmM2LCByMS5jNywgcjEu YzgsIENBU0UgV0hFTiAocjEuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjEuIkMg MSIsIHIxLmMyLCByMS5jMywgcjEuYzQsIHIxLmM1LCByMS5jNiwgcjEuYzcsIHIxLmM4KSBF TkQsIHIyLiJDIDEiLCByMi5jMiwgcjIuYzMsIHIyLmM0LCByMi5jNSwgcjIuYzYsIHIyLmM3 LCByMi5jOCwgQ0FTRSBXSEVOIChyMi4qKTo6dGV4dCBJUyBOT1QgTlVMTCBUSEVOIFJPVyhy Mi4iQyAxIiwgcjIuYzIsIHIyLmMzLCByMi5jNCwgcjIuYzUsIHIyLmM2LCByMi5jNywgcjIu YzgpIEVORCwgcjMuYzEsIHIzLmMyLCByMy5jMywgQ0FTRSBXSEVOIChyMy4qKTo6dGV4dCBJ UyBOT1QgTlVMTCBUSEVOIFJPVyhyMy5jMSwgcjMuYzIsIHIzLmMzKSBFTkQsIHI0LmMxLCBy NC5jMiwgcjQuYzMsIENBU0UgV0hFTiAocjQuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBS T1cocjQuYzEsIHI0LmMyLCByNC5jMykgRU5EIEZST00gKCgoIlMgMSIuIlQgMSIgcjEgSU5O RVIgSk9JTiAiUyAxIi4iVCAxIiByMiBPTiAoKChyMS4iQyAxIiA9IHIyLiJDIDEiKSkgQU5E ICgocjIuIkMgMSIgPCAxMDApKSBBTkQgKChyMi4iQyAxIiA8IDEwMCkpIEFORCAoKHIxLiJD IDEiIDwgMTAwKSkgQU5EICgocjEuIkMgMSIgPCAxMDApKSkpIElOTkVSIEpPSU4gIlMgMSIu IlQgMyIgcjMgT04gKCgocjEuYzIgPSByMy5jMSkpKSkgSU5ORVIgSk9JTiAiUyAxIi4iVCA0 IiByNCBPTiAoKChyMS5jMiA9IHI0LmMxKSkpKSBPUkRFUiBCWSByMS5jMiBBU0MgTlVMTFMg TEFTVCBGT1IgVVBEQVRFIE9GIHIxIEZPUiBVUERBVEUgT0YgcjIgRk9SIFVQREFURSBPRiBy MyBGT1IgVVBEQVRFIE9GIHI0CisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg cjEuIkMgMSIsIHIxLmMyLCByMS5jMywgcjEuYzQsIHIxLmM1LCByMS5jNiwgcjEuYzcsIHIx LmM4LCBDQVNFIFdIRU4gKHIxLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIxLiJD IDEiLCByMS5jMiwgcjEuYzMsIHIxLmM0LCByMS5jNSwgcjEuYzYsIHIxLmM3LCByMS5jOCkg RU5ELCByMi4iQyAxIiwgcjIuYzIsIHIyLmMzLCByMi5jNCwgcjIuYzUsIHIyLmM2LCByMi5j NywgcjIuYzgsIENBU0UgV0hFTiAocjIuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1co cjIuIkMgMSIsIHIyLmMyLCByMi5jMywgcjIuYzQsIHIyLmM1LCByMi5jNiwgcjIuYzcsIHIy LmM4KSBFTkQsIHIzLmMxLCByMy5jMiwgcjMuYzMsIENBU0UgV0hFTiAocjMuKik6OnRleHQg SVMgTk9UIE5VTEwgVEhFTiBST1cocjMuYzEsIHIzLmMyLCByMy5jMykgRU5ELCByNC5jMSwg cjQuYzIsIHI0LmMzLCBDQVNFIFdIRU4gKHI0LiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4g Uk9XKHI0LmMxLCByNC5jMiwgcjQuYzMpIEVORCBGUk9NICgoKCJTIDEiLiJUIDEiIHIxIElO TkVSIEpPSU4gIlMgMSIuIlQgMSIgcjIgT04gKCgocjEuIkMgMSIgPSByMi4iQyAxIikpIEFO RCAoKHIyLiJDIDEiIDwgMTAwKSkgQU5EICgocjEuIkMgMSIgPCAxMDApKSkpIElOTkVSIEpP SU4gIlMgMSIuIlQgMyIgcjMgT04gKCgocjEuYzIgPSByMy5jMSkpKSkgSU5ORVIgSk9JTiAi UyAxIi4iVCA0IiByNCBPTiAoKChyMS5jMiA9IHI0LmMxKSkpKSBPUkRFUiBCWSByMS5jMiBB U0MgTlVMTFMgTEFTVCBGT1IgVVBEQVRFIE9GIHIxIEZPUiBVUERBVEUgT0YgcjIgRk9SIFVQ REFURSBPRiByMyBGT1IgVVBEQVRFIE9GIHI0CiAgICAgICAgICAgICAgICAtPiAgTWVyZ2Ug Sm9pbgogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDEuYzEsIGZ0MS5jMiwgZnQx LmMzLCBmdDEuYzQsIGZ0MS5jNSwgZnQxLmM2LCBmdDEuYzcsIGZ0MS5jOCwgZnQxLiosIGZ0 Mi5jMSwgZnQyLmMyLCBmdDIuYzMsIGZ0Mi5jNCwgZnQyLmM1LCBmdDIuYzYsIGZ0Mi5jNywg ZnQyLmM4LCBmdDIuKiwgZnQ0LmMxLCBmdDQuYzIsIGZ0NC5jMywgZnQ0LiosIGZ0NS5jMSwg ZnQ1LmMyLCBmdDUuYzMsIGZ0NS4qCiAgICAgICAgICAgICAgICAgICAgICBNZXJnZSBDb25k OiAoZnQxLmMyID0gZnQ1LmMxKQpAQCAtMjM5MSwxMiArMjM5MSwxMiBAQCBTRUxFQ1QgKiBG Uk9NIGZ0MSwgZnQyLCBmdDQsIGZ0NSwgbG9jYWxfdGJsIFdIRVJFIGZ0MS5jMSA9IGZ0Mi5j MSBBTkQgZnQxLmMyID0gZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU29ydCBLZXk6IGZ0MS5jMQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnQxCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IGZ0MS5jMSwgZnQxLmMyLCBmdDEuYzMsIGZ0MS5jNCwgZnQxLmM1LCBmdDEuYzYsIGZ0MS5j NywgZnQxLmM4LCBmdDEuKgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUICJDIDEiLCBjMiwgYzMsIGM0LCBj NSwgYzYsIGM3LCBjOCBGUk9NICJTIDEiLiJUIDEiIFdIRVJFICgoIkMgMSIgPCAxMDApKSBB TkQgKCgiQyAxIiA8IDEwMCkpIEZPUiBVUERBVEUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwg YzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzggRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJD IDEiIDwgMTAwKSkgRk9SIFVQREFURQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLT4gIE1hdGVyaWFsaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZ0Mi5jMSwgZnQyLmMyLCBmdDIuYzMsIGZ0Mi5j NCwgZnQyLmM1LCBmdDIuYzYsIGZ0Mi5jNywgZnQyLmM4LCBmdDIuKgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBw dWJsaWMuZnQyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6IGZ0Mi5jMSwgZnQyLmMyLCBmdDIuYzMsIGZ0Mi5jNCwgZnQyLmM1 LCBmdDIuYzYsIGZ0Mi5jNywgZnQyLmM4LCBmdDIuKgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUICJDIDEi LCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCBGUk9NICJTIDEiLiJUIDEiIFdIRVJFICgo IkMgMSIgPCAxMDApKSBBTkQgKCgiQyAxIiA8IDEwMCkpIE9SREVSIEJZICJDIDEiIEFTQyBO VUxMUyBMQVNUIEZPUiBVUERBVEUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBj NCwgYzUsIGM2LCBjNywgYzggRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiIDwgMTAw KSkgT1JERVIgQlkgIkMgMSIgQVNDIE5VTExTIExBU1QgRk9SIFVQREFURQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogZnQ0LmMxLCBmdDQuYzIsIGZ0NC5jMywgZnQ0LioKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBmdDQuYzEKQEAgLTU3MDUsMjUg KzU3MDUsMjUgQEAgVVBEQVRFIGZ0MiBBUyB0YXJnZXQgU0VUIChjMikgPSAoCiBFWFBMQUlO IChWRVJCT1NFLCBDT1NUUyBPRkYpCiBVUERBVEUgZnQyIGQgU0VUIGMyID0gQ0FTRSBXSEVO IHJhbmRvbSgpID49IDAgVEhFTiBkLmMyIEVMU0UgMCBFTkQKICAgRlJPTSBmdDIgQVMgdCBX SEVSRSBkLmMxID0gdC5jMSBBTkQgZC5jMSA+IDEwMDA7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuZnQy IGQKICAgIFJlbW90ZSBTUUw6IFVQREFURSAiUyAxIi4iVCAxIiBTRVQgYzIgPSAkMiBXSEVS RSBjdGlkID0gJDEKICAgIC0+ICBGb3JlaWduIFNjYW4KICAgICAgICAgIE91dHB1dDogQ0FT RSBXSEVOIChyYW5kb20oKSA+PSAnMCc6OmRvdWJsZSBwcmVjaXNpb24pIFRIRU4gZC5jMiBF TFNFIDAgRU5ELCBkLmN0aWQsIGQuKiwgdC4qCiAgICAgICAgICBSZWxhdGlvbnM6IChwdWJs aWMuZnQyIGQpIElOTkVSIEpPSU4gKHB1YmxpYy5mdDIgdCkKLSAgICAgICAgIFJlbW90ZSBT UUw6IFNFTEVDVCByMS5jMiwgcjEuY3RpZCwgQ0FTRSBXSEVOIChyMS4qKTo6dGV4dCBJUyBO T1QgTlVMTCBUSEVOIFJPVyhyMS4iQyAxIiwgcjEuYzIsIHIxLmMzLCByMS5jNCwgcjEuYzUs IHIxLmM2LCByMS5jNywgcjEuYzgpIEVORCwgQ0FTRSBXSEVOIChyMi4qKTo6dGV4dCBJUyBO T1QgTlVMTCBUSEVOIFJPVyhyMi4iQyAxIiwgcjIuYzIsIHIyLmMzLCByMi5jNCwgcjIuYzUs IHIyLmM2LCByMi5jNywgcjIuYzgpIEVORCBGUk9NICgiUyAxIi4iVCAxIiByMSBJTk5FUiBK T0lOICJTIDEiLiJUIDEiIHIyIE9OICgoKHIxLiJDIDEiID0gcjIuIkMgMSIpKSBBTkQgKChy Mi4iQyAxIiA+IDEwMDApKSBBTkQgKChyMS4iQyAxIiA+IDEwMDApKSkpIEZPUiBVUERBVEUg T0YgcjEKLSAgICAgICAgIC0+ICBNZXJnZSBKb2luCisgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgcjEuYzIsIHIxLmN0aWQsIENBU0UgV0hFTiAocjEuKik6OnRleHQgSVMgTk9UIE5V TEwgVEhFTiBST1cocjEuIkMgMSIsIHIxLmMyLCByMS5jMywgcjEuYzQsIHIxLmM1LCByMS5j NiwgcjEuYzcsIHIxLmM4KSBFTkQsIENBU0UgV0hFTiAocjIuKik6OnRleHQgSVMgTk9UIE5V TEwgVEhFTiBST1cocjIuIkMgMSIsIHIyLmMyLCByMi5jMywgcjIuYzQsIHIyLmM1LCByMi5j NiwgcjIuYzcsIHIyLmM4KSBFTkQgRlJPTSAoIlMgMSIuIlQgMSIgcjEgSU5ORVIgSk9JTiAi UyAxIi4iVCAxIiByMiBPTiAoKChyMS4iQyAxIiA9IHIyLiJDIDEiKSkgQU5EICgocjEuIkMg MSIgPiAxMDAwKSkpKSBGT1IgVVBEQVRFIE9GIHIxCisgICAgICAgICAtPiAgSGFzaCBKb2lu CiAgICAgICAgICAgICAgICBPdXRwdXQ6IGQuYzIsIGQuY3RpZCwgZC4qLCB0LioKLSAgICAg ICAgICAgICAgIE1lcmdlIENvbmQ6IChkLmMxID0gdC5jMSkKKyAgICAgICAgICAgICAgIEhh c2ggQ29uZDogKGQuYzEgPSB0LmMxKQogICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh biBvbiBwdWJsaWMuZnQyIGQKICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZC5jMiwg ZC5jdGlkLCBkLiosIGQuYzEKICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNF TEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzgsIGN0aWQgRlJPTSAiUyAx Ii4iVCAxIiBXSEVSRSAoKCJDIDEiID4gMTAwMCkpIE9SREVSIEJZICJDIDEiIEFTQyBOVUxM UyBMQVNUIEZPUiBVUERBVEUKLSAgICAgICAgICAgICAgIC0+ICBNYXRlcmlhbGl6ZQorICAg ICAgICAgICAgICAgLT4gIEhhc2gKICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdC4q LCB0LmMxCiAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1Ymxp Yy5mdDIgdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0LiosIHQuYzEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwg YzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzggRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJD IDEiID4gMTAwMCkpIE9SREVSIEJZICJDIDEiIEFTQyBOVUxMUyBMQVNUCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQs IGM1LCBjNiwgYzcsIGM4IEZST00gIlMgMSIuIlQgMSIKICgxNyByb3dzKQogCiBVUERBVEUg ZnQyIGQgU0VUIGMyID0gQ0FTRSBXSEVOIHJhbmRvbSgpID49IDAgVEhFTiBkLmMyIEVMU0Ug MCBFTkQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhz LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCmluZGV4IDJlZTI4 YTk0ZmMuLmViNGVjYzg0NzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w YXRoL2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0 aHMuYwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHNldF9yZWxfc2l6ZShQbGFubmVySW5mbyAqcm9v dCwgUmVsT3B0SW5mbyAqcmVsLAogCUFzc2VydChyZWwtPnJvd3MgPiAwIHx8IElTX0RVTU1Z X1JFTChyZWwpKTsKIAogCS8qIE5vdyBjYWxjdWxhdGluZyB0aGUgc2VsZWN0aXZpdHkgaW1w YWN0ZWQgYnkgQ29ycmVjdGl2ZSBRdWFsICovCi0JaWYgKCFydGUtPmluaCkgIC8qIG5vdCBz dXBwb3J0ZWQgaW4gdGhpcyBQb0MgKi8KKwlpZiAoIXJ0ZS0+aW5oKSAgLyogSW5oZXJpdGVk IHRhYmxlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBQb0MgKi8KIAl7CiAJCUxpc3RDZWxs ICpsOwogCQlpbnQgaSA9IDA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGF0aC9lcXVpdmNsYXNzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9lcXVpdmNs YXNzLmMKaW5kZXggM2VmZWIxZjMzMy4uN2I4MTI0ZTFmMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BhdGgvZXF1aXZjbGFzcy5jCisrKyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wYXRoL2VxdWl2Y2xhc3MuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUg ImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgi CiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1 bmNzLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL2FwcGVuZGluZm8uaCIKQEAgLTEzNjUsNiAr MTM2NiwxOSBAQCBnZW5lcmF0ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGllc19ub19jb25zdChQ bGFubmVySW5mbyAqcm9vdCwKIAkJCWlmICghYm1zX2dldF9zaW5nbGV0b25fbWVtYmVyKGN1 cl9lbS0+ZW1fcmVsaWRzLCAmcmVsaWQpKQogCQkJCWNvbnRpbnVlOwogCisJCQlpZiAocm9v dC0+c2ltcGxlX3J0ZV9hcnJheVtyZWxpZF0tPnJlbGtpbmQgPT0gUkVMS0lORF9GT1JFSUdO X1RBQkxFKQorCQkJeworCQkJCS8qCisJCQkJICogV2UgZG8gbmVlZCBzdXBwb3J0IEVDIGZp bHRlciBhZ2FpbnN0IGZvciBmb3JlaWduIHRhYmxlLCBidXQgd2hlbiBmaXhpbmcKKwkJCQkg KiB0aGUgY29zdCBtb2RlbCBpc3N1ZSwgd2UgbmVlZCB0byBrbm93IHRoZSBzZWxlY3ZpdGl5 IG9mIHRoZSBxdWFsIG9uIGZvcmVnaW4KKwkJCQkgKiB0YWJsZS4gSG93ZXZlciBpdCBpcyBp bXBvc3NpYmxlIGZvciBub3cgdG8ga25vdyB0aGF0IHdoZW4gdXNlX3JlbW90ZV9lc3RpbWF0 ZSA9IHRydWUuCisJCQkJICogc2VlIGZvciBwb3N0Z3Jlc0dldEZvcmVpZ25SZWxTaXplLiBT aW5jZSB3ZSBjdXJyZW50bHkgb25seSBkb2luZyBQb0MgZm9yCisJCQkJICogdGhpcyBjb3N0 LW1vZGVsLWZpeCBhbGdvcml0aG0sIEkganVzdCBkaXNhYmxlIHRoYXQgZm9yIGZvcmVnaW4g dGFibGUuIEF0IGxhc3QsCisJCQkJICogd2UgbmVlZCBpbXByb3ZlIHRoZSB1c2VfcmVtb3Rl X2VzdGltYXRlIHNvbWVob3cgdG8gZ2V0IHRoZSBzZWxlY3Rpdml0eS4KKwkJCQkgKi8KKwkJ CQljb250aW51ZTsKKwkJCX0KKwogCQkJcmVsID0gcm9vdC0+c2ltcGxlX3JlbF9hcnJheVty ZWxpZF07CiAKIAkJCWlmIChlZi0+ZWZfc291cmNlX3JlbCA9PSByZWxpZCkKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2luaXRzcGxhbi5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMKaW5kZXggZDdhMTczYjMyNy4uOTE1M2I4 ZDI5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFu LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFuLmMKQEAgLTE5 OTEsOSArMTk5MSwxNCBAQCBkaXN0cmlidXRlX3F1YWxfdG9fcmVscyhQbGFubmVySW5mbyAq cm9vdCwgTm9kZSAqY2xhdXNlLAogCiAJLyogQ2hlY2sgaWYgdGhlIHF1YWwgbG9va3MgdXNl ZnVsIHRvIGhhcnZlc3QgYXMgYW4gRXF1aXZhbGVuY2VGaWx0ZXIgKi8KIAlpZiAoZmlsdGVy X3F1YWxfbGlzdCAhPSBOVUxMICYmCisKKwkJLy8gTXVzdCBiZSBhbiBPcEV4cHIgZm9yIG5v dy4KIAkJaXNfb3BjbGF1c2UocmVzdHJpY3RpbmZvLT5jbGF1c2UpICYmCi0JCSFjb250YWlu X3ZvbGF0aWxlX2Z1bmN0aW9ucygoTm9kZSAqKXJlc3RyaWN0aW5mbykgJiYgLy8gQ2FjaGFi bGUKLQkJcmVzdHJpY3RpbmZvLT5idHJlZWluZXFvcGZhbWlsaWVzICE9IE5JTCAmJiAgLyog aW5lcSBleHByZXNzaW9uICovCisJCS8vIENoZWNraW5nIHZvbGF0aWxlIGFnYWluc3QgUmVz dHJpY3RJbmZvIHNvIHRoYXQgdGhlIHJlc3VsdCBjYW4gYmUgY2FjaGVkLgorCQkhY29udGFp bl92b2xhdGlsZV9mdW5jdGlvbnMoKE5vZGUgKilyZXN0cmljdGluZm8pICYmCisKKwkJcmVz dHJpY3RpbmZvLT5idHJlZWluZXFvcGZhbWlsaWVzICE9IE5JTCAmJiAvKiBpbmVxIGV4cHJl c3Npb24gKi8KKwogCQkvKiBzaW1wbGUgJiBjb21tb24gZW5vdWdoIGZpbHRlciwgb25lIHNp ZGUgcmVmZXJlbmNlcyBvbmUgcmVsYXRpb24gYW5kIHRoZSBvdGhlciBvbmUgaXMgYSBjb25z dGFudCAqLwogCQkoKGJtc19pc19lbXB0eShyZXN0cmljdGluZm8tPmxlZnRfcmVsaWRzKSAm JiBibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIocmVzdHJpY3RpbmZvLT5yaWdodF9yZWxpZHMs ICZyZWxpZCkpIHx8CiAJCSAoYm1zX2lzX2VtcHR5KHJlc3RyaWN0aW5mby0+cmlnaHRfcmVs aWRzKSAmJiBibXNfZ2V0X3NpbmdsZXRvbl9tZW1iZXIocmVzdHJpY3RpbmZvLT5sZWZ0X3Jl bGlkcywgJnJlbGlkKSkpCi0tIAoyLjM3LjAKCg== --------------SfwqipnKg6tF19DxN0lrjohf--