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 1oUnCV-00047y-HD for pgsql-hackers@arkaria.postgresql.org; Sun, 04 Sep 2022 10:50:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oUnCT-0005G4-H3 for pgsql-hackers@arkaria.postgresql.org; Sun, 04 Sep 2022 10:50:01 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oUnCT-0005Fu-0p for pgsql-hackers@lists.postgresql.org; Sun, 04 Sep 2022 10:50:01 +0000 Received: from forward102p.mail.yandex.net ([77.88.28.102]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oUnCO-0007kW-4n for pgsql-hackers@lists.postgresql.org; Sun, 04 Sep 2022 10:50:00 +0000 Received: from myt5-cfd7b5ab166e.qloud-c.yandex.net (myt5-cfd7b5ab166e.qloud-c.yandex.net [IPv6:2a02:6b8:c12:2a15:0:640:cfd7:b5ab]) by forward102p.mail.yandex.net (Yandex) with ESMTP id 31242393D481 for ; Sun, 4 Sep 2022 13:49:54 +0300 (MSK) Received: from 2a02:6b8:c12:3ea4:0:640:a551:2e99 (2a02:6b8:c12:3ea4:0:640:a551:2e99 [2a02:6b8:c12:3ea4:0:640:a551:2e99]) by myt5-cfd7b5ab166e.qloud-c.yandex.net (mxback/Yandex) with HTTP id TnORcp1fSa61-nrfqKx41; Sun, 04 Sep 2022 13:49:53 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arenadata.io; s=mail; t=1662288593; bh=KJnd1pDLg2DYdP1l9+1CTkzRd/BYfkn8yVwcOXedx3g=; h=Message-Id:Date:Subject:To:From; b=CZiDY5AIiCYF5HrjS83ygLK8uYESFKtEIjEIAXYfq+lAQJB6I3TBJXCCEyBdBITHY bCxH/2EThK9YwGp9anQRE95Z4lUnWFJEfO/r/xqVhoupeoJytirEwLvVal7oaX5uXj hSxm0z4AixzJCETcS7sWsZz2mA+EXxJX1eDPMSCw= Authentication-Results: myt5-cfd7b5ab166e.qloud-c.yandex.net; dkim=pass header.i=@arenadata.io Received: by myt5-a5512e99e394.qloud-c.yandex.net with HTTP; Sun, 04 Sep 2022 13:49:53 +0300 From: Andrey Sokolov To: "pgsql-hackers@lists.postgresql.org" Subject: [BUG] Storage declaration in ECPG MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Sun, 04 Sep 2022 13:49:53 +0300 Message-Id: <942241662288242@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.774455.myt5-a5512e99e394.qloud-c.yandex.net" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------==--bound.774455.myt5-a5512e99e394.qloud-c.yandex.net Content-Transfer-Encoding: 8bit Content-Type: text/html; charset=utf-8
Hi,
 
The ECPG preprocessor converts the code
"static VARCHAR str1[10], str2[20], str3[30];"
into
"static  struct varchar_1  { int len; char arr[ 10 ]; }  str1 ;
         struct varchar_2  { int len; char arr[ 20 ]; }  str2 ;
         struct varchar_3  { int len; char arr[ 30 ]; }  str3 ;".
Storage declaration applies only to the first structure.
 
The patch in the attachment fixes the bug. Storage declaration will be repeated before each structure.
The patch is on github too: https://github.com/andr-sokolov/postgresql/commit/c8f8fc7a211938569e7d46c91a428d8cb25b6f9c
 
--
Andrey Sokolov
Arenadata            https://arenadata.tech/
------==--bound.774455.myt5-a5512e99e394.qloud-c.yandex.net Content-Disposition: attachment; filename="0001-Fix-storage-declaration-in-ECPG.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0001-Fix-storage-declaration-in-ECPG.patch" RnJvbSBjOGY4ZmM3YTIxMTkzODU2OWU3ZDQ2YzkxYTQyOGQ4Y2IyNWI2ZjljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgU29rb2xvdiA8YS5zb2tvbG92QGFyZW5hZGF0YS5p bz4KRGF0ZTogU3VuLCA0IFNlcCAyMDIyIDEyOjQ4OjIyICswMzAwClN1YmplY3Q6IFtQQVRDSF0g Rml4IHN0b3JhZ2UgZGVjbGFyYXRpb24gaW4gRUNQRwoKVGhlIEVDUEcgcHJlcHJvY2Vzc29yIGNv bnZlcnRlZCB0aGUgY29kZQoic3RhdGljIFZBUkNIQVIgc3RyMVsxMF0sIHN0cjJbMjBdLCBzdHIz WzMwXTsiCmludG8KInN0YXRpYyAgc3RydWN0IHZhcmNoYXJfMSAgeyBpbnQgbGVuOyBjaGFyIGFy clsgMTAgXTsgfSAgc3RyMSA7CiAgICAgICAgIHN0cnVjdCB2YXJjaGFyXzIgIHsgaW50IGxlbjsg Y2hhciBhcnJbIDIwIF07IH0gIHN0cjIgOwogICAgICAgICBzdHJ1Y3QgdmFyY2hhcl8zICB7IGlu dCBsZW47IGNoYXIgYXJyWyAzMCBdOyB9ICBzdHIzIDsiLgpTdG9yYWdlIGRlY2xhcmF0aW9uIGFw cGxpZWQgb25seSB0byB0aGUgZmlyc3Qgc3RydWN0dXJlLgpOb3cgc3RvcmFnZSBkZWNsYXJhdGlv biBpcyByZXBlYXRlZCBiZWZvcmUgZWFjaCBzdHJ1Y3R1cmUuCi0tLQogc3JjL2ludGVyZmFjZXMv ZWNwZy9wcmVwcm9jL2VjcGcudHJhaWxlciAgICAgIHwgICA0ICstCiBzcmMvaW50ZXJmYWNlcy9l Y3BnL3ByZXByb2MvdHlwZS5oICAgICAgICAgICAgfCAgIDEgKwogc3JjL2ludGVyZmFjZXMvZWNw Zy90ZXN0L2VjcGdfc2NoZWR1bGUgICAgICAgIHwgICAxICsKIC4uLi90ZXN0L2V4cGVjdGVkL3By ZXByb2Mtc3RhdGljX3ZhcmlhYmxlcy5jICB8IDE0NSArKysrKysrKysrKysrKysrKysKIC4uLi9l eHBlY3RlZC9wcmVwcm9jLXN0YXRpY192YXJpYWJsZXMuc3RkZXJyICB8ICA5NiArKysrKysrKysr KysKIC4uLi9leHBlY3RlZC9wcmVwcm9jLXN0YXRpY192YXJpYWJsZXMuc3Rkb3V0ICB8ICAgMyAr CiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvcHJlcHJvYy8uZ2l0aWdub3JlICAgfCAgIDIgKwog c3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3ByZXByb2MvTWFrZWZpbGUgICAgIHwgICAxICsKIC4u Li9lY3BnL3Rlc3QvcHJlcHJvYy9zdGF0aWNfdmFyaWFibGVzLnBnYyAgICB8ICA1NSArKysrKysr CiA5IGZpbGVzIGNoYW5nZWQsIDMwNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3ByZXByb2Mt c3RhdGljX3ZhcmlhYmxlcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvZWNw Zy90ZXN0L2V4cGVjdGVkL3ByZXByb2Mtc3RhdGljX3ZhcmlhYmxlcy5zdGRlcnIKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvcHJlcHJvYy1zdGF0 aWNfdmFyaWFibGVzLnN0ZG91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbnRlcmZhY2VzL2Vj cGcvdGVzdC9wcmVwcm9jL3N0YXRpY192YXJpYWJsZXMucGdjCgpkaWZmIC0tZ2l0IGEvc3JjL2lu dGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcudHJhaWxlciBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv cHJlcHJvYy9lY3BnLnRyYWlsZXIKaW5kZXggMGIxMDBiOWIwNC4uNTQyNTRlMmY5NyAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL2VjcGcudHJhaWxlcgorKysgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvZWNwZy50cmFpbGVyCkBAIC00NzksNiArNDc5LDcgQEAg dHlwZV9kZWNsYXJhdGlvbjogU19UWVBFREVGCiB2YXJfZGVjbGFyYXRpb246IHN0b3JhZ2VfZGVj bGFyYXRpb24KIAkJdmFyX3R5cGUKIAkJeworCQkJYWN0dWFsX3R5cGVbc3RydWN0X2xldmVsXS50 eXBlX3N0b3JhZ2UgPSAkMTsKIAkJCWFjdHVhbF90eXBlW3N0cnVjdF9sZXZlbF0udHlwZV9lbnVt ID0gJDIudHlwZV9lbnVtOwogCQkJYWN0dWFsX3R5cGVbc3RydWN0X2xldmVsXS50eXBlX3N0ciA9 ICQyLnR5cGVfc3RyOwogCQkJYWN0dWFsX3R5cGVbc3RydWN0X2xldmVsXS50eXBlX2RpbWVuc2lv biA9ICQyLnR5cGVfZGltZW5zaW9uOwpAQCAtNDkzLDYgKzQ5NCw3IEBAIHZhcl9kZWNsYXJhdGlv bjogc3RvcmFnZV9kZWNsYXJhdGlvbgogCQl9CiAJCXwgdmFyX3R5cGUKIAkJeworCQkJYWN0dWFs X3R5cGVbc3RydWN0X2xldmVsXS50eXBlX3N0b3JhZ2UgPSBFTVBUWTsKIAkJCWFjdHVhbF90eXBl W3N0cnVjdF9sZXZlbF0udHlwZV9lbnVtID0gJDEudHlwZV9lbnVtOwogCQkJYWN0dWFsX3R5cGVb c3RydWN0X2xldmVsXS50eXBlX3N0ciA9ICQxLnR5cGVfc3RyOwogCQkJYWN0dWFsX3R5cGVbc3Ry dWN0X2xldmVsXS50eXBlX2RpbWVuc2lvbiA9ICQxLnR5cGVfZGltZW5zaW9uOwpAQCAtOTQ5LDcg Kzk1MSw3IEBAIHZhcmlhYmxlX2xpc3Q6IHZhcmlhYmxlCiAJCXwgdmFyaWFibGVfbGlzdCAnLCcg dmFyaWFibGUKIAkJewogCQkJaWYgKGFjdHVhbF90eXBlW3N0cnVjdF9sZXZlbF0udHlwZV9lbnVt ID09IEVDUEd0X3ZhcmNoYXIgfHwgYWN0dWFsX3R5cGVbc3RydWN0X2xldmVsXS50eXBlX2VudW0g PT0gRUNQR3RfYnl0ZWEpCi0JCQkJJCQgPSBjYXRfc3RyKDMsICQxLCBtbV9zdHJkdXAoIjsiKSwg JDMpOworCQkJCSQkID0gY2F0X3N0cig0LCAkMSwgbW1fc3RyZHVwKCI7IiksIG1tX3N0cmR1cChh Y3R1YWxfdHlwZVtzdHJ1Y3RfbGV2ZWxdLnR5cGVfc3RvcmFnZSksICQzKTsKIAkJCWVsc2UKIAkJ CQkkJCA9IGNhdF9zdHIoMywgJDEsIG1tX3N0cmR1cCgiLCIpLCAkMyk7CiAJCX0KZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy90eXBlLmggYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL3ByZXByb2MvdHlwZS5oCmluZGV4IGZiMjBiZTUzZTAuLjA4YjczOWU1ZjMgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy90eXBlLmgKKysrIGIvc3JjL2ludGVyZmFj ZXMvZWNwZy9wcmVwcm9jL3R5cGUuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0cnVjdCBleGVjCiAK IHN0cnVjdCB0aGlzX3R5cGUKIHsKKwljaGFyCSAgICp0eXBlX3N0b3JhZ2U7CiAJZW51bSBFQ1BH dHR5cGUgdHlwZV9lbnVtOwogCWNoYXIJICAgKnR5cGVfc3RyOwogCWNoYXIJICAgKnR5cGVfZGlt ZW5zaW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2VjcGdfc2NoZWR1 bGUgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZWNwZ19zY2hlZHVsZQppbmRleCBlMDM0YzVh NDIwLi5kNTk0YzRkOWIwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZWNw Z19zY2hlZHVsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZWNwZ19zY2hlZHVsZQpA QCAtMjQsNiArMjQsNyBAQCB0ZXN0OiBwcmVwcm9jL2NvbW1lbnQKIHRlc3Q6IHByZXByb2MvY3Vy c29yCiB0ZXN0OiBwcmVwcm9jL2RlZmluZQogdGVzdDogcHJlcHJvYy9pbml0Cit0ZXN0OiBwcmVw cm9jL3N0YXRpY192YXJpYWJsZXMKIHRlc3Q6IHByZXByb2Mvc3RyaW5ncwogdGVzdDogcHJlcHJv Yy90eXBlCiB0ZXN0OiBwcmVwcm9jL3ZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvcHJlcHJvYy1zdGF0aWNfdmFyaWFibGVzLmMgYi9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvcHJlcHJvYy1zdGF0aWNfdmFyaWFibGVzLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYjBmNjJhOGIxNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9wcmVwcm9jLXN0YXRp Y192YXJpYWJsZXMuYwpAQCAtMCwwICsxLDE0NSBAQAorLyogUHJvY2Vzc2VkIGJ5IGVjcGcgKHJl Z3Jlc3Npb24gbW9kZSkgKi8KKy8qIFRoZXNlIGluY2x1ZGUgZmlsZXMgYXJlIGFkZGVkIGJ5IHRo ZSBwcmVwcm9jZXNzb3IgKi8KKyNpbmNsdWRlIDxlY3BnbGliLmg+CisjaW5jbHVkZSA8ZWNwZ2Vy cm5vLmg+CisjaW5jbHVkZSA8c3FsY2EuaD4KKy8qIEVuZCBvZiBhdXRvbWF0aWMgaW5jbHVkZSBz ZWN0aW9uICovCisjZGVmaW5lIEVDUEdkZWJ1ZyhYLFkpIEVDUEdkZWJ1ZygoWCkrMTAwLChZKSkK KworI2xpbmUgMSAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisjaW5jbHVkZSA8c3RkbGliLmg+CisK KworI2xpbmUgMSAicmVncmVzc2lvbi5oIgorCisKKworCisKKworI2xpbmUgMyAic3RhdGljX3Zh cmlhYmxlcy5wZ2MiCisKKworLyogZXhlYyBzcWwgd2hlbmV2ZXIgc3FsZXJyb3IgIHN0b3AgOyAq LworI2xpbmUgNSAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKKworLyogZGVjbGFyZSBjdXIgY3Vy c29yIGZvciBzZWxlY3QgZmlyc3RuYW1lICwgbGFzdG5hbWUgLCBhZGRyZXNzIGZyb20gcGVyc29u cyAqLworI2xpbmUgOCAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKKworLyogZXhlYyBzcWwgYmVn aW4gZGVjbGFyZSBzZWN0aW9uICovCisJICAgIAorCisjbGluZSAxMSAic3RhdGljX3ZhcmlhYmxl cy5wZ2MiCisgc3RhdGljICBzdHJ1Y3QgdmFyY2hhcl8xICB7IGludCBsZW47IGNoYXIgYXJyWyA1 MCBdOyB9ICBmaXJzdG5hbWUgOyBzdGF0aWMgIHN0cnVjdCB2YXJjaGFyXzIgIHsgaW50IGxlbjsg Y2hhciBhcnJbIDUwIF07IH0gIGxhc3RuYW1lIDsgc3RhdGljICBzdHJ1Y3QgdmFyY2hhcl8zICB7 IGludCBsZW47IGNoYXIgYXJyWyAyNTUgXTsgfSAgYWRkcmVzcyA7CisvKiBleGVjIHNxbCBlbmQg ZGVjbGFyZSBzZWN0aW9uICovCisjbGluZSAxMiAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKKwor aW50CittYWluICh2b2lkKQoreworCWludCBsb29wY291bnQ7CisKKwlFQ1BHZGVidWcoMSwgc3Rk ZXJyKTsKKworCXsgRUNQR2Nvbm5lY3QoX19MSU5FX18sIDAsICJlY3BnMV9yZWdyZXNzaW9uIiAs IE5VTEwsIE5VTEwgLCBOVUxMLCAwKTsgCisjbGluZSAyMSAic3RhdGljX3ZhcmlhYmxlcy5wZ2Mi CisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgZXhpdCAoMSk7fQorI2xpbmUgMjEgInN0YXRpY192 YXJpYWJsZXMucGdjIgorCisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQ R3N0X25vcm1hbCwgImNyZWF0ZSB0YWJsZSBwZXJzb25zICggZmlyc3RuYW1lIHZhcmNoYXIgKCA1 MCApIG5vdCBudWxsICwgbGFzdG5hbWUgdmFyY2hhciAoIDUwICkgbm90IG51bGwgLCBhZGRyZXNz IHZhcmNoYXIgKCAyNTUgKSBub3QgbnVsbCApIiwgRUNQR3RfRU9JVCwgRUNQR3RfRU9SVCk7Cisj bGluZSAyNyAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkg ZXhpdCAoMSk7fQorI2xpbmUgMjcgInN0YXRpY192YXJpYWJsZXMucGdjIgorCisKKwl7IEVDUEdk byhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgImluc2VydCBpbnRvIHBl cnNvbnMgKCBmaXJzdG5hbWUgLCBsYXN0bmFtZSAsIGFkZHJlc3MgKSB2YWx1ZXMgKCAnZmlyc3Ru YW1lMScgLCAnbGFzdG5hbWUxJyAsICdhZGRyZXNzMScgKSIsIEVDUEd0X0VPSVQsIEVDUEd0X0VP UlQpOworI2xpbmUgMzAgInN0YXRpY192YXJpYWJsZXMucGdjIgorCitpZiAoc3FsY2Euc3FsY29k ZSA8IDApIGV4aXQgKDEpO30KKyNsaW5lIDMwICJzdGF0aWNfdmFyaWFibGVzLnBnYyIKKworCXsg RUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAiaW5zZXJ0IGlu dG8gcGVyc29ucyAoIGZpcnN0bmFtZSAsIGxhc3RuYW1lICwgYWRkcmVzcyApIHZhbHVlcyAoICdm aXJzdG5hbWUyJyAsICdsYXN0bmFtZTInICwgJ2FkZHJlc3MyJyApIiwgRUNQR3RfRU9JVCwgRUNQ R3RfRU9SVCk7CisjbGluZSAzMiAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKK2lmIChzcWxjYS5z cWxjb2RlIDwgMCkgZXhpdCAoMSk7fQorI2xpbmUgMzIgInN0YXRpY192YXJpYWJsZXMucGdjIgor CisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJpbnNl cnQgaW50byBwZXJzb25zICggZmlyc3RuYW1lICwgbGFzdG5hbWUgLCBhZGRyZXNzICkgdmFsdWVz ICggJ2ZpcnN0bmFtZTMnICwgJ2xhc3RuYW1lMycgLCAnYWRkcmVzczMnICkiLCBFQ1BHdF9FT0lU LCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDM0ICJzdGF0aWNfdmFyaWFibGVzLnBnYyIKKworaWYgKHNx bGNhLnNxbGNvZGUgPCAwKSBleGl0ICgxKTt9CisjbGluZSAzNCAic3RhdGljX3ZhcmlhYmxlcy5w Z2MiCisKKworCXsgRUNQR3RyYW5zKF9fTElORV9fLCBOVUxMLCAiY29tbWl0Iik7CisjbGluZSAz NiAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgZXhpdCAo MSk7fQorI2xpbmUgMzYgInN0YXRpY192YXJpYWJsZXMucGdjIgorCisKKwl7IEVDUEdkbyhfX0xJ TkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgImRlY2xhcmUgY3VyIGN1cnNvciBm b3Igc2VsZWN0IGZpcnN0bmFtZSAsIGxhc3RuYW1lICwgYWRkcmVzcyBmcm9tIHBlcnNvbnMiLCBF Q1BHdF9FT0lULCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDM4ICJzdGF0aWNfdmFyaWFibGVzLnBnYyIK KworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBleGl0ICgxKTt9CisjbGluZSAzOCAic3RhdGljX3Zh cmlhYmxlcy5wZ2MiCisKKworCS8qIGV4ZWMgc3FsIHdoZW5ldmVyIG5vdCBmb3VuZCAgYnJlYWsg OyAqLworI2xpbmUgNDAgInN0YXRpY192YXJpYWJsZXMucGdjIgorCisKKwlmb3IgKGxvb3Bjb3Vu dCA9IDA7IGxvb3Bjb3VudCA8IDEwMDsgbG9vcGNvdW50KyspCisJeworCQl7IEVDUEdkbyhfX0xJ TkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgImZldGNoIGN1ciIsIEVDUEd0X0VP SVQsIAorCUVDUEd0X3ZhcmNoYXIsJihmaXJzdG5hbWUpLChsb25nKTUwLChsb25nKTEsc2l6ZW9m KHN0cnVjdCB2YXJjaGFyXzEpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEws IDBMLCAKKwlFQ1BHdF92YXJjaGFyLCYobGFzdG5hbWUpLChsb25nKTUwLChsb25nKTEsc2l6ZW9m KHN0cnVjdCB2YXJjaGFyXzIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEws IDBMLCAKKwlFQ1BHdF92YXJjaGFyLCYoYWRkcmVzcyksKGxvbmcpMjU1LChsb25nKTEsc2l6ZW9m KHN0cnVjdCB2YXJjaGFyXzMpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEws IDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDQ0ICJzdGF0aWNfdmFyaWFibGVzLnBnYyIKKworaWYg KHNxbGNhLnNxbGNvZGUgPT0gRUNQR19OT1RfRk9VTkQpIGJyZWFrOworI2xpbmUgNDQgInN0YXRp Y192YXJpYWJsZXMucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIGV4aXQgKDEpO30KKyNs aW5lIDQ0ICJzdGF0aWNfdmFyaWFibGVzLnBnYyIKKworCQlwcmludGYoIiUuKnNcdCUuKnNcdCUu KnNcbiIsIGZpcnN0bmFtZS5sZW4sIGZpcnN0bmFtZS5hcnIsCisJCQkJCQkJCQkgbGFzdG5hbWUu bGVuLCBsYXN0bmFtZS5hcnIsCisJCQkJCQkJCQkgYWRkcmVzcy5sZW4sIGFkZHJlc3MuYXJyKTsK Kwl9CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwg ImNsb3NlIGN1ciIsIEVDUEd0X0VPSVQsIEVDUEd0X0VPUlQpOworI2xpbmUgNTAgInN0YXRpY192 YXJpYWJsZXMucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIGV4aXQgKDEpO30KKyNsaW5l IDUwICJzdGF0aWNfdmFyaWFibGVzLnBnYyIKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBO VUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAiZHJvcCB0YWJsZSBwZXJzb25zIiwgRUNQR3RfRU9JVCwg RUNQR3RfRU9SVCk7CisjbGluZSA1MSAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKK2lmIChzcWxj YS5zcWxjb2RlIDwgMCkgZXhpdCAoMSk7fQorI2xpbmUgNTEgInN0YXRpY192YXJpYWJsZXMucGdj IgorCisJeyBFQ1BHdHJhbnMoX19MSU5FX18sIE5VTEwsICJjb21taXQiKTsKKyNsaW5lIDUyICJz dGF0aWNfdmFyaWFibGVzLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBleGl0ICgxKTt9 CisjbGluZSA1MiAic3RhdGljX3ZhcmlhYmxlcy5wZ2MiCisKKwl7IEVDUEdkaXNjb25uZWN0KF9f TElORV9fLCAiQ1VSUkVOVCIpOworI2xpbmUgNTMgInN0YXRpY192YXJpYWJsZXMucGdjIgorCitp ZiAoc3FsY2Euc3FsY29kZSA8IDApIGV4aXQgKDEpO30KKyNsaW5lIDUzICJzdGF0aWNfdmFyaWFi bGVzLnBnYyIKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNw Zy90ZXN0L2V4cGVjdGVkL3ByZXByb2Mtc3RhdGljX3ZhcmlhYmxlcy5zdGRlcnIgYi9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvcHJlcHJvYy1zdGF0aWNfdmFyaWFibGVzLnN0ZGVy cgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wY2NmNzQwMjM4Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3ByZXByb2Mt c3RhdGljX3ZhcmlhYmxlcy5zdGRlcnIKQEAgLTAsMCArMSw5NiBAQAorW05PX1BJRF06IEVDUEdk ZWJ1Zzogc2V0IHRvIDEKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogRUNQR2Nvbm5lY3Q6IG9wZW5pbmcgZGF0YWJhc2UgZWNwZzFfcmVncmVzc2lvbiBv biA8REVGQVVMVD4gcG9ydCA8REVGQVVMVD4gIAorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBz dGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAyMzogcXVlcnk6IGNy ZWF0ZSB0YWJsZSBwZXJzb25zICggZmlyc3RuYW1lIHZhcmNoYXIgKCA1MCApIG5vdCBudWxsICwg bGFzdG5hbWUgdmFyY2hhciAoIDUwICkgbm90IG51bGwgLCBhZGRyZXNzIHZhcmNoYXIgKCAyNTUg KSBub3QgbnVsbCApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVn cmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURd OiBlY3BnX2V4ZWN1dGUgb24gbGluZSAyMzogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6 IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24g bGluZSAyMzogT0s6IENSRUFURSBUQUJMRQorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAyOTogcXVlcnk6IGluc2Vy dCBpbnRvIHBlcnNvbnMgKCBmaXJzdG5hbWUgLCBsYXN0bmFtZSAsIGFkZHJlc3MgKSB2YWx1ZXMg KCAnZmlyc3RuYW1lMScgLCAnbGFzdG5hbWUxJyAsICdhZGRyZXNzMScgKTsgd2l0aCAwIHBhcmFt ZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMjk6 IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMjk6IE9LOiBJTlNFUlQgMCAxCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhl Y3V0ZSBvbiBsaW5lIDMxOiBxdWVyeTogaW5zZXJ0IGludG8gcGVyc29ucyAoIGZpcnN0bmFtZSAs IGxhc3RuYW1lICwgYWRkcmVzcyApIHZhbHVlcyAoICdmaXJzdG5hbWUyJyAsICdsYXN0bmFtZTIn ICwgJ2FkZHJlc3MyJyApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFf cmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19Q SURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAzMTogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQg b24gbGluZSAzMTogT0s6IElOU0VSVCAwIDEKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMzM6IHF1ZXJ5OiBpbnNl cnQgaW50byBwZXJzb25zICggZmlyc3RuYW1lICwgbGFzdG5hbWUgLCBhZGRyZXNzICkgdmFsdWVz ICggJ2ZpcnN0bmFtZTMnICwgJ2xhc3RuYW1lMycgLCAnYWRkcmVzczMnICk7IHdpdGggMCBwYXJh bWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6 IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDMz OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDMzOiBPSzogSU5TRVJUIDAgMQor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBFQ1BHdHJh bnMgb24gbGluZSAzNjogYWN0aW9uICJjb21taXQiOyBjb25uZWN0aW9uICJlY3BnMV9yZWdyZXNz aW9uIgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBl Y3BnX2V4ZWN1dGUgb24gbGluZSAzODogcXVlcnk6IGRlY2xhcmUgY3VyIGN1cnNvciBmb3Igc2Vs ZWN0IGZpcnN0bmFtZSAsIGxhc3RuYW1lICwgYWRkcmVzcyBmcm9tIHBlcnNvbnM7IHdpdGggMCBw YXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5l IDM4OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAw CitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDM4OiBPSzogREVDTEFSRSBD VVJTT1IKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgNDQ6IHF1ZXJ5OiBmZXRjaCBjdXI7IHdpdGggMCBwYXJhbWV0 ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDQ0OiB1 c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDQ0OiBjb3JyZWN0bHkgZ290IDEgdHVw bGVzIHdpdGggMyBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAw CitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDQ0OiBSRVNVTFQ6IGZpcnN0bmFtZTEg b2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAw MDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSA0NDogUkVTVUxUOiBsYXN0bmFt ZTEgb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSA0NDogUkVTVUxUOiBhZGRy ZXNzMSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgNDQ6IHF1ZXJ5OiBmZXRj aCBjdXI7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9u CitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdf ZXhlY3V0ZSBvbiBsaW5lIDQ0OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTog MCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDQ0 OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMyBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDQ0 OiBSRVNVTFQ6IGZpcnN0bmFtZTIgb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGlu ZSA0NDogUkVTVUxUOiBsYXN0bmFtZTIgb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTog c3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24g bGluZSA0NDogUkVTVUxUOiBhZGRyZXNzMiBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURd OiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9u IGxpbmUgNDQ6IHF1ZXJ5OiBmZXRjaCBjdXI7IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVj dGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAw MDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDQ0OiB1c2luZyBQUWV4ZWMKK1tO T19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9j ZXNzX291dHB1dCBvbiBsaW5lIDQ0OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMyBmaWVs ZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNw Z19nZXRfZGF0YSBvbiBsaW5lIDQ0OiBSRVNVTFQ6IGZpcnN0bmFtZTMgb2Zmc2V0OiAtMTsgYXJy YXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06 IGVjcGdfZ2V0X2RhdGEgb24gbGluZSA0NDogUkVTVUxUOiBsYXN0bmFtZTMgb2Zmc2V0OiAtMTsg YXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSA0NDogUkVTVUxUOiBhZGRyZXNzMyBvZmZzZXQ6IC0x OyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgNDQ6IHF1ZXJ5OiBmZXRjaCBjdXI7IHdpdGggMCBw YXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3Fs Y2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5l IDQ0OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAw CitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDQ0OiBjb3JyZWN0bHkgZ290 IDAgdHVwbGVzIHdpdGggMyBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCitbTk9fUElEXTogcmFpc2luZyBzcWxjb2RlIDEwMCBvbiBsaW5lIDQ0OiBubyBkYXRh IGZvdW5kIG9uIGxpbmUgNDQKK1tOT19QSURdOiBzcWxjYTogY29kZTogMTAwLCBzdGF0ZTogMDIw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSA1MDogcXVlcnk6IGNsb3NlIGN1cjsg d2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19Q SURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRl IG9uIGxpbmUgNTA6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgNTA6IE9LOiBD TE9TRSBDVVJTT1IKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgNTE6IHF1ZXJ5OiBkcm9wIHRhYmxlIHBlcnNvbnM7 IHdpdGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0 ZSBvbiBsaW5lIDUxOiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDUxOiBPSzog RFJPUCBUQUJMRQorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19Q SURdOiBFQ1BHdHJhbnMgb24gbGluZSA1MjogYWN0aW9uICJjb21taXQiOyBjb25uZWN0aW9uICJl Y3BnMV9yZWdyZXNzaW9uIgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAK K1tOT19QSURdOiBlY3BnX2ZpbmlzaDogY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uIGNsb3Nl ZAorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9wcmVwcm9jLXN0YXRpY192YXJpYWJsZXMu c3Rkb3V0IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3ByZXByb2Mtc3RhdGlj X3ZhcmlhYmxlcy5zdGRvdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u MWMxNzY5NmQ0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9l eHBlY3RlZC9wcmVwcm9jLXN0YXRpY192YXJpYWJsZXMuc3Rkb3V0CkBAIC0wLDAgKzEsMyBAQAor Zmlyc3RuYW1lMQlsYXN0bmFtZTEJYWRkcmVzczEKK2ZpcnN0bmFtZTIJbGFzdG5hbWUyCWFkZHJl c3MyCitmaXJzdG5hbWUzCWxhc3RuYW1lMwlhZGRyZXNzMwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy90ZXN0L3ByZXByb2MvLmdpdGlnbm9yZSBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9wcmVwcm9jLy5naXRpZ25vcmUKaW5kZXggZmQ2M2U2NDVhMy4uODMxYWNjYzUyNiAxMDA2 NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3ByZXByb2MvLmdpdGlnbm9yZQorKysg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvcHJlcHJvYy8uZ2l0aWdub3JlCkBAIC0xNCw2ICsx NCw4IEBACiAvb3V0b2ZzY29wZS5jCiAvcG9pbnRlcl90b19zdHJ1Y3QKIC9wb2ludGVyX3RvX3N0 cnVjdC5jCisvc3RhdGljX3ZhcmlhYmxlcworL3N0YXRpY192YXJpYWJsZXMuYwogL3N0cmluZ3MK IC9zdHJpbmdzLmMKIC90eXBlCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qv cHJlcHJvYy9NYWtlZmlsZSBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9wcmVwcm9jL01ha2Vm aWxlCmluZGV4IDM5YjE5NzRmNWYuLmEzY2ZlNjUzM2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9wcmVwcm9jL01ha2VmaWxlCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9wcmVwcm9jL01ha2VmaWxlCkBAIC0xMCw2ICsxMCw3IEBAIFRFU1RTID0gYXJyYXlfb2Zf c3RydWN0IGFycmF5X29mX3N0cnVjdC5jIFwKIAljdXJzb3IgY3Vyc29yLmMgXAogCWRlZmluZSBk ZWZpbmUuYyBcCiAJaW5pdCBpbml0LmMgXAorCXN0YXRpY192YXJpYWJsZXMgc3RhdGljX3Zhcmlh Ymxlcy5jIFwKIAlzdHJpbmdzIHN0cmluZ3MuYyBcCiAJb3V0b2ZzY29wZSBvdXRvZnNjb3BlLmMg XAogCXR5cGUgdHlwZS5jIFwKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9w cmVwcm9jL3N0YXRpY192YXJpYWJsZXMucGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3By ZXByb2Mvc3RhdGljX3ZhcmlhYmxlcy5wZ2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uNWMxZjczOGY0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvdGVzdC9wcmVwcm9jL3N0YXRpY192YXJpYWJsZXMucGdjCkBAIC0wLDAgKzEsNTUgQEAKKyNp bmNsdWRlIDxzdGRsaWIuaD4KKworZXhlYyBzcWwgaW5jbHVkZSAuLi9yZWdyZXNzaW9uOworCitl eGVjIHNxbCB3aGVuZXZlciBzcWxlcnJvciBzdG9wOworCitleGVjIHNxbCBkZWNsYXJlIGN1ciBj dXJzb3IgZm9yCisJc2VsZWN0IGZpcnN0bmFtZSwgbGFzdG5hbWUsIGFkZHJlc3MgZnJvbSBwZXJz b25zOworCitleGVjIHNxbCBiZWdpbiBkZWNsYXJlIHNlY3Rpb247CisJc3RhdGljIHZhcmNoYXIg Zmlyc3RuYW1lWzUwXSwgbGFzdG5hbWVbNTBdLCBhZGRyZXNzWzI1NV07CitleGVjIHNxbCBlbmQg ZGVjbGFyZSBzZWN0aW9uOworCitpbnQKK21haW4gKHZvaWQpCit7CisJaW50IGxvb3Bjb3VudDsK KworCUVDUEdkZWJ1ZygxLCBzdGRlcnIpOworCisJZXhlYyBzcWwgY29ubmVjdCB0byBSRUdSRVNT REIxOworCisJZXhlYyBzcWwgY3JlYXRlIHRhYmxlIHBlcnNvbnMgKAorCQlmaXJzdG5hbWUgdmFy Y2hhcig1MCkgbm90IG51bGwsCisJCWxhc3RuYW1lIHZhcmNoYXIoNTApIG5vdCBudWxsLAorCQlh ZGRyZXNzIHZhcmNoYXIoMjU1KSBub3QgbnVsbAorCSk7CisKKwlleGVjIHNxbCBpbnNlcnQgaW50 byBwZXJzb25zIChmaXJzdG5hbWUsIGxhc3RuYW1lLCBhZGRyZXNzKQorCQkJIHZhbHVlcyAoJ2Zp cnN0bmFtZTEnLCAnbGFzdG5hbWUxJywgJ2FkZHJlc3MxJyk7CisJZXhlYyBzcWwgaW5zZXJ0IGlu dG8gcGVyc29ucyAoZmlyc3RuYW1lLCBsYXN0bmFtZSwgYWRkcmVzcykKKwkJCSB2YWx1ZXMgKCdm aXJzdG5hbWUyJywgJ2xhc3RuYW1lMicsICdhZGRyZXNzMicpOworCWV4ZWMgc3FsIGluc2VydCBp bnRvIHBlcnNvbnMgKGZpcnN0bmFtZSwgbGFzdG5hbWUsIGFkZHJlc3MpCisJCQkgdmFsdWVzICgn Zmlyc3RuYW1lMycsICdsYXN0bmFtZTMnLCAnYWRkcmVzczMnKTsKKworCWV4ZWMgc3FsIGNvbW1p dDsKKworCWV4ZWMgc3FsIG9wZW4gY3VyOworCisJZXhlYyBzcWwgd2hlbmV2ZXIgbm90IGZvdW5k IGRvIGJyZWFrOworCisJZm9yIChsb29wY291bnQgPSAwOyBsb29wY291bnQgPCAxMDA7IGxvb3Bj b3VudCsrKQorCXsKKwkJZXhlYyBzcWwgZmV0Y2ggY3VyIGludG8gOmZpcnN0bmFtZSwgOmxhc3Ru YW1lLCA6YWRkcmVzczsKKwkJcHJpbnRmKCIlLipzXHQlLipzXHQlLipzXG4iLCBmaXJzdG5hbWUu bGVuLCBmaXJzdG5hbWUuYXJyLAorCQkJCQkJCQkJIGxhc3RuYW1lLmxlbiwgbGFzdG5hbWUuYXJy LAorCQkJCQkJCQkJIGFkZHJlc3MubGVuLCBhZGRyZXNzLmFycik7CisJfQorCisJZXhlYyBzcWwg Y2xvc2UgY3VyOworCWV4ZWMgc3FsIGRyb3AgdGFibGUgcGVyc29uczsKKwlleGVjIHNxbCBjb21t aXQ7CisJZXhlYyBzcWwgZGlzY29ubmVjdDsKKwlyZXR1cm4gMDsKK30KLS0gCjIuMzMuMwoK ------==--bound.774455.myt5-a5512e99e394.qloud-c.yandex.net--