From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.4.0-0.26 Date: Mon, 29 Jun 2026 12:24:15 GMT Message-ID: <178273585506.1.10320706131053018527.rpms-gcc-706509ff5224@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 706509ff5224730a6327b2dc97d4135a1bbbf056 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogNzA2NTA5ZmY1MjI0NzMwYTYzMjdiMmRjOTdkNDEzNWEx YmJiZjA1NgpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wMy0xNFQwODo0ODo0NiswMDowMApTdGF0cyAgOiArMTM3Ni8tMSBpbiAy IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2Mv Yy83MDY1MDlmZjUyMjQ3MzBhNjMyN2IyZGM5N2Q0MTM1YTFiYmJmMDU2P2JyYW5jaD1yaGVsLWY0 MS1iYXNlCgpMb2c6CjQuNC4wLTAuMjYKCi0tLQpkaWZmIC0tZ2l0IGEvZ2NjLnNwZWMgYi9nY2Mu c3BlYwppbmRleCBjNWNkOTY4Li4yMDcxNDk4IDEwMDY0NAotLS0gYS9nY2Muc3BlYworKysgYi9n Y2Muc3BlYwpAQCAtMyw3ICszLDcgQEAKICVkZWZpbmUgZ2NjX3ZlcnNpb24gNC40LjAKICMgTm90 ZSwgZ2NjX3JlbGVhc2UgbXVzdCBiZSBpbnRlZ2VyLCBpZiB5b3Ugd2FudCB0byBhZGQgc3VmZml4 ZXMgdG8KICMgJXtyZWxlYXNlfSwgYXBwZW5kIHRoZW0gYWZ0ZXIgJXtnY2NfcmVsZWFzZX0gb24g UmVsZWFzZTogbGluZS4KLSVkZWZpbmUgZ2NjX3JlbGVhc2UgMC4yNQorJWRlZmluZSBnY2NfcmVs ZWFzZSAwLjI2CiAlZGVmaW5lIF91bnBhY2thZ2VkX2ZpbGVzX3Rlcm1pbmF0ZV9idWlsZCAwCiAl ZGVmaW5lIG11bHRpbGliXzY0X2FyY2hzIHNwYXJjNjQgcHBjNjQgczM5MHggeDg2XzY0CiAlZGVm aW5lIGluY2x1ZGVfZ2FwcGxldHZpZXdlciAxCkBAIC0xNTUsNiArMTU1LDcgQEAgUGF0Y2gyNjog Z2NjNDQtcG93ZXI3LnBhdGNoCiBQYXRjaDI3OiBnY2M0NC1wcjM5NDEyLnBhdGNoCiBQYXRjaDI4 OiBnY2M0NC1wcjM5NDQzLnBhdGNoCiBQYXRjaDI5OiBnY2M0NC1wcjM5NDU0LnBhdGNoCitQYXRj aDMwOiBnY2M0NC1wb3dlcjctMi5wYXRjaAogCiBQYXRjaDEwMDA6IGZhc3RqYXItMC45Ny1zZWdm YXVsdC5wYXRjaAogCkBAIC00NDcsNiArNDQ4LDcgQEAgd2hpY2ggYXJlIHJlcXVpcmVkIHRvIGNv bXBpbGUgd2l0aCB0aGUgR05BVC4KICVwYXRjaDI3IC1wMCAtYiAucHIzOTQxMn4KICVwYXRjaDI4 IC1wMCAtYiAucHIzOTQ0M34KICVwYXRjaDI5IC1wMCAtYiAucHIzOTQ1NH4KKyVwYXRjaDMwIC1w MCAtYiAucG93ZXI3LTJ+CiAKICMgVGhpcyB0ZXN0Y2FzZSBkb2Vzbid0IGNvbXBpbGUuCiBybSBs aWJqYXZhL3Rlc3RzdWl0ZS9saWJqYXZhLmxhbmcvUFIzNTAyMCoKQEAgLTE3NTcsNiArMTc1OSwx MCBAQCBmaQogJWRvYyBycG0uZG9jL2NoYW5nZWxvZ3MvbGlibXVkZmxhcC9DaGFuZ2VMb2cqCiAK ICVjaGFuZ2Vsb2cKKyogU2F0IE1hciAxNCAyMDA5IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhh dC5jb20+IDQuNC4wLTAuMjYKKy0gZml4IHBwYzY0IHJlZ3Jlc3Npb24gY2F1c2VkIGJ5IHRoZSBw b3dlcjcgYmFja3BvcnQgKCM0OTAxNDksCisgIFBSIHRhcmdldC8zOTQ1NykKKwogKiBGcmkgTWFy IDEzIDIwMDkgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC40LjAtMC4yNQogLSB1 cGRhdGUgZnJvbSB0cnVuawogICAtIFBScyBkZWJ1Zy8zOTA4NiwgZGVidWcvMzk0MzIsIGxpYm9i amMvMjc0NjYsIG1pZGRsZS1lbmQvMzc4NTAsCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtcG93ZXI3LTIu cGF0Y2ggYi9nY2M0NC1wb3dlcjctMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41MTlmOGI5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDQtcG93ZXI3LTIucGF0Y2gK QEAgLTAsMCArMSwxMzY5IEBACisyMDA5LTAzLTEzICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3Nu ZXJAbGludXgudm5ldC5pYm0uY29tPgorCisJUFIgdGFyZ2V0LzM5NDU3CisJKiBjb25maWcvcnM2 MDAwL3JzNjAwMC5vcHQgKC1tZGlzYWxsb3ctZmxvYXQtaW4tbHItY3RyKTogQWRkCisJdGVtcG9y YXJ5IGRlYnVnIHN3aXRjaC4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2hh cmRfcmVnbm9fbW9kZV9vayk6IFJldmVydAorCWJlaGF2aW9yIG9mIGRpc2FsbG93aW5nIAorCisy MDA5LTAzLTEzICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29t PgorCisJKiBjb25maWcvcnM2MDAwL3ZlY3Rvci5tZCAodmVjX2V4dHJhY3RfZXZlbnYyZGYpOiBE ZWxldGUsIGluc24KKwljYXVzZXMgcHJvYmxlbXMgaW4gYnVpbGRpbmcgc3BlYyAyMDA2LgorCSh2 ZWNfZXh0cmFjdF9vZGR2MmRmKTogRGl0dG8uCisJKHZlY19wYWNrX3RydW5jX3YyZGYpOiBOZXcg ZXhwYW5kZXJzIGZvciBWU1ggdmVjdG9yaXplZAorCWNvbnZlcnNpb25zLgorCSh2ZWNfcGFja19z Zml4X3RydW5jX3YyZGYpOiBEaXR0by4KKwkodmVjX3BhY2tfdWZpeF90cnVuY192MmRmKTogRGl0 dG8uCisJKHZlY191bnBhY2tzX2hpX3Y0c2YpOiBEaXR0by4KKwkodmVjX3VucGFja3NfbG9fdjRz Zik6IERpdHRvLgorCSh2ZWNfdW5wYWNrc19mbG9hdF9oaV92NHNpKTogRGl0dG8uCisJKHZlY191 bnBhY2tzX2Zsb2F0X2xvX3Y0c2kpOiBEaXR0by4KKwkodmVjX3VucGFja3VfZmxvYXRfaGlfdjRz aSk6IERpdHRvLgorCSh2ZWNfdW5wYWNrdV9mbG9hdF9sb192NHNpKTogRGl0dG8uCisKKwkqIGNv bmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oIChyczYwMDBfdmVjdG9yX3NlY29uZGFyeV9yZWxv YWQpOgorCURlY2xhcmF0aW9uIGZvciBuZXcgdGFyZ2V0IGhvb2suCisKKwkqIGNvbmZpZy9yczYw MDAvcnM2MDAwLmMgKFRBUkdFVF9TRUNPTkRBUllfUkVMT0FEKTogQWRkIG5ldyB0YXJnZXQKKwlo b29rIGZvciBldmVudHVhbGx5IGZpeGluZyB1cCB0aGUgbWVtb3J5IHJlZmVyZW5jZXMgZm9yIEFs dGl2ZWMKKwlhbmQgVlNYIHJlbG9hZHMgdG8gYmUgcmVnK3JlZyBpbnN0ZWFkIG9mIHJlZytvZmZz ZXQuICBSaWdodCBub3csCisJdGhpcyBpcyBhIHN0dWIgZnVuY3Rpb24gdGhhdCBwcmludHMgZGVi dWcgaW5mb3JtYXRpb24gaWYKKwktbWRlYnVnPWFkZHIgYW5kIHRoZW4gY2FsbHMgZGVmYXVsdF9z ZWNvbmRhcnlfcmVsb2FkLgorCShyczYwMDBfc2Vjb25kYXJ5X3JlbG9hZCk6IERpdHRvLgorCShy czYwMDBfdmVjdG9yX3NlY29uZGFyeV9yZWxvYWQpOiBEaXR0by4KKwkocnM2MDAwX2J1aWx0aW5f Y29udmVyc2lvbik6IEFkZCBzdXBwb3J0IGZvciBWMkRJL1YyREYKKwljb252ZXJzaW9ucy4KKwko cnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCk6IFRlc3QgZm9yIHRoZSB2ZWN0b3Ig dW5pdAorCWRvaW5nIHRoZSBtZW1vcnkgcmVmZXJlbmNlcy4KKwkocnM2MDAwX2xlZ2ltaXplX3Jl bG9hZF9hZGRyZXNzKTogRGl0dG8uCisJKHJzNjAwMF9sZWdpdGltaXplX2FkZHJlc3MpOiBQcmlu dCBleHRyYSBcbiBpZiAtbWRlYnVnPWFkZHIuCisJKHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9h ZGRyZXNzKTogRGl0dG8uCisJKHJzNjAwMF9sZWdpdGltYXRlX2FkZHJlc3MpOiBEaXR0by4KKwko cnM2MDAwX21vZGVfZGVwZW5kZW50X2FkZHJlc3MpOiBEaXR0by4KKwkoYmRlc2NfMmFyZyk6IEFk ZCBWU1ggYnVpbHRpbnMuCisJKGJkZXNjX2Ficyk6IERpdHRvLgorCShiZGVzY18xYXJnKTogRGl0 dG8uCisJKGFsdGl2ZWNfaW5pdF9idWlsdGlucyk6IERpdHRvLgorCShyczYwMDBfc2Vjb25kYXJ5 X21lbW9yeV9uZWVkZWRfcnR4KTogQWRkIGRlYnVnIHN1cHBvcnQgaWYKKwktbWRlYnVnPWFkZHIu CisJKHJzNjAwMF9wcmVmZXJyZWRfcmVsb2FkX2NsYXNzKTogRGl0dG8uCisJKHJzNjAwMF9zZWNv bmRhcnlfbWVtb3J5X25lZWRlZCk6IERpdHRvLgorCShyczYwMDBfc2Vjb25kYXJ5X3JlbG9hZF9j bGFzcyk6IERpdHRvLgorCShyczYwMDBfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzKTogRGl0dG8u CisKKwkqIGNvbmZpZy9yczYwMDAvdnN4Lm1kIChVTlNQRUNfVlNYXyopOiBBZGQgdW5zcGVjcyBm b3IgVlNYCisJY29udmVyc2lvbnMuCisJKHZzeF9uYWJzPG1vZGU+KTogQWRkIGdlbmVyYXRvciBm dW5jdGlvbi4KKwkodnN4X2Zsb2F0PFZTaT48bW9kZT4yKTogRGl0dG8uCisJKHZzeF9mbG9hdHVu czxWU2k+PG1vZGU+Mik6IERpdHRvLgorCSh2c3hfeHhtcmdodyk6IERpdHRvLgorCSh2c3hfeHht cmdsdyk6IERpdHRvLgorCSh2c3hfeHZjdmRwc3ApOiBOZXcgVlNYIHZlY3RvciBjb252ZXJzaW9u IGluc24uCisJKHZzeF94dmN2ZHBzeHdzKTogRGl0dG8uCisJKHZzeF94dmN2ZHB1eHdzKTogRGl0 dG8uCisJKHZzeF94dmN2c3BkcCk6IERpdHRvLgorCSh2c3hfeHZjdnN4d2RwKTogRGl0dG8uCisJ KHZzeF94dmN2dXh3ZHApOiBEaXR0by4KKwkodnN4X3JlbG9hZF8qKTogTmV3IGluc25zIGZvciBy ZWxvYWQgc3VwcG9ydC4KKworCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaDogRml4IGEgY29tbWVu dC4KKworCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChhbHRpdmVjX3JlbG9hZF8qKTogTmV3 IGluc25zIGZvcgorCXJlbG9hZCBzdXBwb3J0LgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5t ZCAocHRyc2l6ZSk6IE5ldyBtb2RlIGF0dHJpYnV0ZSBmb3IgdGhlCisJcG9pbnRlciBzaXplLgor CisyMDA5LTAzLTEwICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0u Y29tPgorCisJKiBjb25maWcvcnM2MDAwL3ZzeC5tZCAodnN4X2NvbmNhdF92MmRmKTogQWRkIGV4 cGxpY2l0ICdmJworCXJlZ2lzdGVyIGNsYXNzIGZvciBzY2FsYXIgZGF0YSwgY29ycmVjdCB1c2Vz IG9mIHRoZSB4eHBlcm1kaQorCWluc3RydWN0aW9uLgorCSh2c3hfc2V0X3YyZGYpOiBEaXR0by4K KwkodnN4X2V4dHJhY3RfdjJkZik6IERpdHRvLgorCSh2c3hfeHhwZXJtZGkpOiBEaXR0by4KKwko dnN4X3NwbGF0djJkZik6IERpdHRvLgorCSh2c3hfeHhtcmdodyk6IFVzZSB3ZiBpbnN0ZWFkIG9m IHYgY29uc3RyYWludHMuCisJKHZzeF94eG1yZ2x3KTogRGl0dG8uCit0ZXN0c3VpdGUvCisyMDA5 LTAzLTEzICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAbGludXgudm5ldC5pYm0uY29tPgor CisJUFIgdGFyZ2V0LzM5NDU3CisJKiBnY2MudGFyZ2V0L3Bvd2VycGMvcHIzOTQ1Ny5jOiBOZXcg dGVzdCBmb3IgUFIzOTQ1Ny4KKworMjAwOS0wMy0xMyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNz bmVyQGxpbnV4LnZuZXQuaWJtLmNvbT4KKworCSogZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC1idWls dGluLTEuYzogTmV3IHRlc3QgZm9yIGJ1aWx0aW5zLgorCSogZ2NjLnRhcmdldC9wb3dlcnBjL3Zz eC1idWlsdGluLTIuYzogRGl0dG8uCisKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC92ZWN0b3IubWQJ KHJldmlzaW9uIDE0NDc1OCkKKysrKyBnY2MvY29uZmlnL3JzNjAwMC92ZWN0b3IubWQJKHJldmlz aW9uIDE0NDg0MykKK0BAIC00OTYsMjMgKzQ5NiwxMjIgQEAgKGRlZmluZV9leHBhbmQgInZlY19p bnRlcmxlYXZlX2xvd3YyZGYiCisgICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSIKKyAg ICIiKQorIAorLTs7IEZvciAyIGVsZW1lbnQgdmVjdG9ycywgZXZlbi9vZGQgaXMgdGhlIHNhbWUg YXMgaGlnaC9sb3cKKy0oZGVmaW5lX2V4cGFuZCAidmVjX2V4dHJhY3RfZXZlbnYyZGYiCistICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZmbG9hdF9vcGVyYW5kIiAiIikKKy0JKHZlY19j b25jYXQ6VjJERgorLQkgKHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2Zmxv YXRfb3BlcmFuZCIgIiIpCistCQkJKHBhcmFsbGVsIFsoY29uc3RfaW50IDApXSkpCistCSAodmVj X3NlbGVjdDpERiAobWF0Y2hfb3BlcmFuZDpWMkRGIDIgInZmbG9hdF9vcGVyYW5kIiAiIikKKy0J CQkocGFyYWxsZWwgWyhjb25zdF9pbnQgMCldKSkpKV0KKy0gICJWRUNUT1JfVU5JVF9WU1hfUCAo VjJERm1vZGUpIgorLSAgIiIpCisrDAorKzs7IENvbnZlcnQgZG91YmxlIHdvcmQgdHlwZXMgdG8g c2luZ2xlIHdvcmQgdHlwZXMKKysoZGVmaW5lX2V4cGFuZCAidmVjX3BhY2tfdHJ1bmNfdjJkZiIK KysgIFsobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysg ICAobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAo bWF0Y2hfb3BlcmFuZDpWMkRGIDIgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIildCisrICAiVkVD VE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBUQVJHRVRfQUxUSVZFQyIKKyt7CisrICBydHgg cjEgPSBnZW5fcmVnX3J0eCAoVjRTRm1vZGUpOworKyAgcnR4IHIyID0gZ2VuX3JlZ19ydHggKFY0 U0Ztb2RlKTsKKyAKKy0oZGVmaW5lX2V4cGFuZCAidmVjX2V4dHJhY3Rfb2RkdjJkZiIKKy0gIFso c2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidmZsb2F0X29wZXJhbmQiICIiKQorLQkodmVjX2Nv bmNhdDpWMkRGCistCSAodmVjX3NlbGVjdDpERiAobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZmbG9h dF9vcGVyYW5kIiAiIikKKy0JCQkocGFyYWxsZWwgWyhjb25zdF9pbnQgMSldKSkKKy0JICh2ZWNf c2VsZWN0OkRGIChtYXRjaF9vcGVyYW5kOlYyREYgMiAidmZsb2F0X29wZXJhbmQiICIiKQorLQkJ CShwYXJhbGxlbCBbKGNvbnN0X2ludCAxKV0pKSkpXQorLSAgIlZFQ1RPUl9VTklUX1ZTWF9QIChW MkRGbW9kZSkiCistICAiIikKKysgIGVtaXRfaW5zbiAoZ2VuX3ZzeF94dmN2ZHBzcCAocjEsIG9w ZXJhbmRzWzFdKSk7CisrICBlbWl0X2luc24gKGdlbl92c3hfeHZjdmRwc3AgKHIyLCBvcGVyYW5k c1syXSkpOworKyAgZW1pdF9pbnNuIChnZW5fdmVjX2V4dHJhY3RfZXZlbnY0c2YgKG9wZXJhbmRz WzBdLCByMSwgcjIpKTsKKysgIERPTkU7CisrfSkKKysKKysoZGVmaW5lX2V4cGFuZCAidmVjX3Bh Y2tfc2ZpeF90cnVuY192MmRmIgorKyAgWyhtYXRjaF9vcGVyYW5kOlY0U0kgMCAidnN4X3JlZ2lz dGVyX29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOlYyREYgMSAidnN4X3JlZ2lzdGVy X29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOlYyREYgMiAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICIiKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpICYmIFRBUkdFVF9B TFRJVkVDIgorK3sKKysgIHJ0eCByMSA9IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7CisrICBydHgg cjIgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOworKworKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2 Y3ZkcHN4d3MgKHIxLCBvcGVyYW5kc1sxXSkpOworKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3Zk cHN4d3MgKHIyLCBvcGVyYW5kc1syXSkpOworKyAgZW1pdF9pbnNuIChnZW5fdmVjX2V4dHJhY3Rf ZXZlbnY0c2kgKG9wZXJhbmRzWzBdLCByMSwgcjIpKTsKKysgIERPTkU7CisrfSkKKysKKysoZGVm aW5lX2V4cGFuZCAidmVjX3BhY2tfdWZpeF90cnVuY192MmRmIgorKyAgWyhtYXRjaF9vcGVyYW5k OlY0U0kgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOlYy REYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKQorKyAgIChtYXRjaF9vcGVyYW5kOlYyREYg MiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICIiKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJE Rm1vZGUpICYmIFRBUkdFVF9BTFRJVkVDIgorK3sKKysgIHJ0eCByMSA9IGdlbl9yZWdfcnR4IChW NFNJbW9kZSk7CisrICBydHggcjIgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOworKworKyAgZW1p dF9pbnNuIChnZW5fdnN4X3h2Y3ZkcHV4d3MgKHIxLCBvcGVyYW5kc1sxXSkpOworKyAgZW1pdF9p bnNuIChnZW5fdnN4X3h2Y3ZkcHV4d3MgKHIyLCBvcGVyYW5kc1syXSkpOworKyAgZW1pdF9pbnNu IChnZW5fdmVjX2V4dHJhY3RfZXZlbnY0c2kgKG9wZXJhbmRzWzBdLCByMSwgcjIpKTsKKysgIERP TkU7CisrfSkKKysKKys7OyBDb252ZXJ0IHNpbmdsZSB3b3JkIHR5cGVzIHRvIGRvdWJsZSB3b3Jk CisrKGRlZmluZV9leHBhbmQgInZlY191bnBhY2tzX2hpX3Y0c2YiCisrICBbKG1hdGNoX29wZXJh bmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6 VjRTRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9Q IChWMkRGbW9kZSkgJiYgVkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAoVjRTRm1vZGUpIgor K3sKKysgIHJ0eCByZWcgPSBnZW5fcmVnX3J0eCAoVjRTRm1vZGUpOworKworKyAgZW1pdF9pbnNu IChnZW5fdmVjX2ludGVybGVhdmVfaGlnaHY0c2YgKHJlZywgb3BlcmFuZHNbMV0sIG9wZXJhbmRz WzFdKSk7CisrICBlbWl0X2luc24gKGdlbl92c3hfeHZjdnNwZHAgKG9wZXJhbmRzWzBdLCByZWcp KTsKKysgIERPTkU7CisrfSkKKysKKysoZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3NfbG9fdjRz ZiIKKysgIFsobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikK KysgICAobWF0Y2hfb3BlcmFuZDpWNFNGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIildCisr ICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBWRUNUT1JfVU5JVF9BTFRJVkVDX09S X1ZTWF9QIChWNFNGbW9kZSkiCisreworKyAgcnR4IHJlZyA9IGdlbl9yZWdfcnR4IChWNFNGbW9k ZSk7CisrCisrICBlbWl0X2luc24gKGdlbl92ZWNfaW50ZXJsZWF2ZV9sb3d2NHNmIChyZWcsIG9w ZXJhbmRzWzFdLCBvcGVyYW5kc1sxXSkpOworKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3ZzcGRw IChvcGVyYW5kc1swXSwgcmVnKSk7CisrICBET05FOworK30pCisrCisrKGRlZmluZV9leHBhbmQg InZlY191bnBhY2tzX2Zsb2F0X2hpX3Y0c2kiCisrICBbKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisrICAgKG1hdGNoX29wZXJhbmQ6VjRTSSAxICJ2c3hf cmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkg JiYgVkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hfUCAoVjRTSW1vZGUpIgorK3sKKysgIHJ0eCBy ZWcgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOworKworKyAgZW1pdF9pbnNuIChnZW5fdmVjX2lu dGVybGVhdmVfaGlnaHY0c2kgKHJlZywgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzFdKSk7CisrICBl bWl0X2luc24gKGdlbl92c3hfeHZjdnN4d2RwIChvcGVyYW5kc1swXSwgcmVnKSk7CisrICBET05F OworK30pCisrCisrKGRlZmluZV9leHBhbmQgInZlY191bnBhY2tzX2Zsb2F0X2xvX3Y0c2kiCisr ICBbKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisrICAg KG1hdGNoX29wZXJhbmQ6VjRTSSAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIiIpXQorKyAgIlZF Q1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkgJiYgVkVDVE9SX1VOSVRfQUxUSVZFQ19PUl9WU1hf UCAoVjRTSW1vZGUpIgorK3sKKysgIHJ0eCByZWcgPSBnZW5fcmVnX3J0eCAoVjRTSW1vZGUpOwor KworKyAgZW1pdF9pbnNuIChnZW5fdmVjX2ludGVybGVhdmVfbG93djRzaSAocmVnLCBvcGVyYW5k c1sxXSwgb3BlcmFuZHNbMV0pKTsKKysgIGVtaXRfaW5zbiAoZ2VuX3ZzeF94dmN2c3h3ZHAgKG9w ZXJhbmRzWzBdLCByZWcpKTsKKysgIERPTkU7CisrfSkKKysKKysoZGVmaW5lX2V4cGFuZCAidmVj X3VucGFja3VfZmxvYXRfaGlfdjRzaSIKKysgIFsobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0Y2hfb3BlcmFuZDpWNFNJIDEgInZzeF9yZWdp c3Rlcl9vcGVyYW5kIiAiIildCisrICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBW RUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChWNFNJbW9kZSkiCisreworKyAgcnR4IHJlZyA9 IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7CisrCisrICBlbWl0X2luc24gKGdlbl92ZWNfaW50ZXJs ZWF2ZV9oaWdodjRzaSAocmVnLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMV0pKTsKKysgIGVtaXRf aW5zbiAoZ2VuX3ZzeF94dmN2dXh3ZHAgKG9wZXJhbmRzWzBdLCByZWcpKTsKKysgIERPTkU7Cisr fSkKKysKKysoZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3VfZmxvYXRfbG9fdjRzaSIKKysgIFso bWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKysgICAobWF0 Y2hfb3BlcmFuZDpWNFNJIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiIildCisrICAiVkVDVE9S X1VOSVRfVlNYX1AgKFYyREZtb2RlKSAmJiBWRUNUT1JfVU5JVF9BTFRJVkVDX09SX1ZTWF9QIChW NFNJbW9kZSkiCisreworKyAgcnR4IHJlZyA9IGdlbl9yZWdfcnR4IChWNFNJbW9kZSk7CisrCisr ICBlbWl0X2luc24gKGdlbl92ZWNfaW50ZXJsZWF2ZV9sb3d2NHNpIChyZWcsIG9wZXJhbmRzWzFd LCBvcGVyYW5kc1sxXSkpOworKyAgZW1pdF9pbnNuIChnZW5fdnN4X3h2Y3Z1eHdkcCAob3BlcmFu ZHNbMF0sIHJlZykpOworKyAgRE9ORTsKKyt9KQorLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAw MC1wcm90b3MuaAkocmV2aXNpb24gMTQ0NzU4KQorKysrIGdjYy9jb25maWcvcnM2MDAwL3JzNjAw MC1wcm90b3MuaAkocmV2aXNpb24gMTQ0ODQzKQorQEAgLTcyLDYgKzcyLDcgQEAgZXh0ZXJuIGJv b2wgcnM2MDAwX3NlY29uZGFyeV9tZW1vcnlfbmVlZAorIGV4dGVybiBib29sIHJzNjAwMF9jYW5u b3RfY2hhbmdlX21vZGVfY2xhc3MgKGVudW0gbWFjaGluZV9tb2RlLAorIAkJCQkJICAgICBlbnVt IG1hY2hpbmVfbW9kZSwKKyAJCQkJCSAgICAgZW51bSByZWdfY2xhc3MpOworK2V4dGVybiB2b2lk IHJzNjAwMF92ZWN0b3Jfc2Vjb25kYXJ5X3JlbG9hZCAocnR4LCBydHgsIHJ0eCwgYm9vbCk7Cisg ZXh0ZXJuIGludCBwYWlyZWRfZW1pdF92ZWN0b3JfY29uZF9leHByIChydHgsIHJ0eCwgcnR4LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnR4LCBydHgsIHJ0eCk7 CisgZXh0ZXJuIHZvaWQgcGFpcmVkX2V4cGFuZF92ZWN0b3JfbW92ZSAocnR4IG9wZXJhbmRzW10p OworLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5vcHQJKHJldmlzaW9uIDE0NDg0NSkKKysr KyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAub3B0CShyZXZpc2lvbiAxNDQ4NTcpCitAQCAtMTM5 LDYgKzEzOSw5IEBAIG12c3gtc2NhbGFyLW1lbW9yeQorIFRhcmdldCBSZXBvcnQgVmFyKFRBUkdF VF9WU1hfU0NBTEFSX01FTU9SWSkKKyBJZiAtbXZzeCwgdXNlIFZTWCBzY2FsYXIgbWVtb3J5IHJl ZmVyZW5jZSBpbnN0cnVjdGlvbnMgZm9yIHNjYWxhciBkb3VibGUgKG9mZiBieSBkZWZhdWx0KQor IAorK21kaXNhbGxvdy1mbG9hdC1pbi1sci1jdHIKKytUYXJnZXQgVW5kb2N1bWVudGVkIFZhcihU QVJHRVRfRElTQUxMT1dfRkxPQVRfSU5fTFJfQ1RSKSBJbml0KC0xKQorKworIG11cGRhdGUKKyBU YXJnZXQgUmVwb3J0IFZhcihUQVJHRVRfVVBEQVRFKSBJbml0KDEpCisgR2VuZXJhdGUgbG9hZC9z dG9yZSB3aXRoIHVwZGF0ZSBpbnN0cnVjdGlvbnMKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYw MDAuYwkocmV2aXNpb24gMTQ0NzU4KQorKysrIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jCShy ZXZpc2lvbiAxNDQ4NDMpCitAQCAtMTAwNCw2ICsxMDA0LDEwIEBAIHN0YXRpYyBydHggcnM2MDAw X2VtaXRfdmVjdG9yX2NvbXBhcmUgKGUKKyAJCQkJICAgICAgIGVudW0gbWFjaGluZV9tb2RlKTsK KyBzdGF0aWMgdHJlZSByczYwMDBfc3RhY2tfcHJvdGVjdF9mYWlsICh2b2lkKTsKKyAKKytzdGF0 aWMgZW51bSByZWdfY2xhc3MgcnM2MDAwX3NlY29uZGFyeV9yZWxvYWQgKGJvb2wsIHJ0eCwgZW51 bSByZWdfY2xhc3MsCisrCQkJCQkgICAgICAgZW51bSBtYWNoaW5lX21vZGUsCisrCQkJCQkgICAg ICAgc3RydWN0IHNlY29uZGFyeV9yZWxvYWRfaW5mbyAqKTsKKysKKyBjb25zdCBpbnQgSU5TTl9O T1RfQVZBSUxBQkxFID0gLTE7Cisgc3RhdGljIGVudW0gbWFjaGluZV9tb2RlIHJzNjAwMF9laF9y ZXR1cm5fZmlsdGVyX21vZGUgKHZvaWQpOworIAorQEAgLTEzMzMsNiArMTMzNyw5IEBAIHN0YXRp YyBjb25zdCBjaGFyIGFsdF9yZWdfbmFtZXNbXVs4XSA9CisgI3VuZGVmIFRBUkdFVF9JTlNUQU5U SUFURV9ERUNMUworICNkZWZpbmUgVEFSR0VUX0lOU1RBTlRJQVRFX0RFQ0xTIHJzNjAwMF9pbnN0 YW50aWF0ZV9kZWNscworIAorKyN1bmRlZiBUQVJHRVRfU0VDT05EQVJZX1JFTE9BRAorKyNkZWZp bmUgVEFSR0VUX1NFQ09OREFSWV9SRUxPQUQgcnM2MDAwX3NlY29uZGFyeV9yZWxvYWQKKysKKyBz dHJ1Y3QgZ2NjX3RhcmdldCB0YXJnZXRtID0gVEFSR0VUX0lOSVRJQUxJWkVSOworIAwKKyAvKiBS ZXR1cm4gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIGhhcmQgcmVncyBuZWVkZWQgc3RhcnRpbmcgYXQg cmVnIFJFR05PCitAQCAtMTQ0OCwxMCArMTQ0OCwxNiBAQCByczYwMDBfaGFyZF9yZWdub19tb2Rl X29rIChpbnQgcmVnbm8sIGVuCisgICBpZiAoU1BFX1NJTURfUkVHTk9fUCAocmVnbm8pICYmIFRB UkdFVF9TUEUgJiYgU1BFX1ZFQ1RPUl9NT0RFIChtb2RlKSkKKyAgICAgcmV0dXJuIDE7CisgCist ICAvKiBEb24ndCBhbGxvdyBhbnl0aGluZyBidXQgd29yZCBzaXplZCBpbnRlZ2VycyAoYWthIHBv aW50ZXJzKSBpbiBDVFIvTFIuICBZb3UKKy0gICAgIHJlYWxseSBkb24ndCB3YW50IHRvIHNwaWxs IHlvdXIgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIHRvIHRob3NlCistICAgICByZWdpc3RlcnMuICBB bHNvIGRvIGl0IGZvciB0aGUgb2xkIE1RIHJlZ2lzdGVyIGluIHRoZSBwb3dlci4gICovCistICBp ZiAocmVnbm8gPT0gQ1RSX1JFR05PIHx8IHJlZ25vID09IExSX1JFR05PIHx8IHJlZ25vID09IE1R X1JFR05PKQorKyAgLyogRG9uJ3QgYWxsb3cgYW55dGhpbmcgYnV0IHdvcmQgc2l6ZWQgaW50ZWdl cnMgKGFrYSBwb2ludGVycykgaW4gQ1RSL0xSLgorKyAgICAgWW91IHJlYWxseSBkb24ndCB3YW50 IHRvIHNwaWxsIHlvdXIgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIHRvIHRob3NlCisrICAgICByZWdp c3RlcnMuICBBbHNvIGRvIGl0IGZvciB0aGUgb2xkIE1RIHJlZ2lzdGVyIGluIHRoZSBwb3dlci4K KysKKysgICAgIFdoaWxlIHRoaXMgaXMgZGVzaXJhYmxlIGluIHRoZW9yeSwgZGlzYWJsaW5nIGZs b2F0IHRvIGdvIGluIExSL0NUUiBkb2VzCisrICAgICBjYXVzZSBzb21lIHJlZ3Jlc3Npb25zLCBz byB1bnRpbCB0aGV5IGFyZSB0YWtlbiBjYXJlIG9mLCByZXZlcnQgdG8gdGhlIG9sZAorKyAgICAg YmVoYXZpb3IgYnkgZGVmYXVsdCBmb3IgbW9zdCBwb3dlciBzeXN0ZW1zLCBidXQgZW5hYmxlIGl0 IGZvciBwb3dlcjcuICAqLworKyAgaWYgKChUQVJHRVRfRElTQUxMT1dfRkxPQVRfSU5fTFJfQ1RS ID4gMAorKyAgICAgICB8fCAoVEFSR0VUX0RJU0FMTE9XX0ZMT0FUX0lOX0xSX0NUUiA8IDAgJiYg VEFSR0VUX1ZTWCkpCisrICAgICAgJiYgKHJlZ25vID09IENUUl9SRUdOTyB8fCByZWdubyA9PSBM Ul9SRUdOTyB8fCByZWdubyA9PSBNUV9SRUdOTykpCisgICAgIHJldHVybiAoR0VUX01PREVfQ0xB U1MgKG1vZGUpID09IE1PREVfSU5UCisgCSAgICAmJiBHRVRfTU9ERV9TSVpFIChtb2RlKSA8PSBV TklUU19QRVJfV09SRCk7CisgCitAQCAtMjQ0Nyw2ICsyNDU0LDE0IEBAIHJzNjAwMF9idWlsdGlu X2NvbnZlcnNpb24gKGVudW0gdHJlZV9jb2QKKyAgICAgY2FzZSBGSVhfVFJVTkNfRVhQUjoKKyAg ICAgICBzd2l0Y2ggKFRZUEVfTU9ERSAodHlwZSkpCisgCXsKKysJY2FzZSBWMkRJbW9kZToKKysJ ICBpZiAoIVZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkpCisrCSAgICByZXR1cm4gTlVMTF9U UkVFOworKworKwkgIHJldHVybiBUWVBFX1VOU0lHTkVEICh0eXBlKQorKwkgICAgPyByczYwMDBf YnVpbHRpbl9kZWNsc1tWU1hfQlVJTFRJTl9YVkNWRFBVWERTXQorKwkgICAgOiByczYwMDBfYnVp bHRpbl9kZWNsc1tWU1hfQlVJTFRJTl9YVkNWRFBTWERTXTsKKysKKyAJY2FzZSBWNFNJbW9kZToK KyAJICBpZiAoVkVDVE9SX1VOSVRfTk9ORV9QIChWNFNJbW9kZSkgfHwgVkVDVE9SX1VOSVRfTk9O RV9QIChWNFNGbW9kZSkpCisgCSAgICByZXR1cm4gTlVMTF9UUkVFOworQEAgLTI0NjIsNiArMjQ3 NywxNCBAQCByczYwMDBfYnVpbHRpbl9jb252ZXJzaW9uIChlbnVtIHRyZWVfY29kCisgICAgIGNh c2UgRkxPQVRfRVhQUjoKKyAgICAgICBzd2l0Y2ggKFRZUEVfTU9ERSAodHlwZSkpCisgCXsKKysJ Y2FzZSBWMkRJbW9kZToKKysJICBpZiAoIVZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkpCisr CSAgICByZXR1cm4gTlVMTF9UUkVFOworKworKwkgIHJldHVybiBUWVBFX1VOU0lHTkVEICh0eXBl KQorKwkgICAgPyByczYwMDBfYnVpbHRpbl9kZWNsc1tWU1hfQlVJTFRJTl9YVkNWVVhEU1BdCisr CSAgICA6IHJzNjAwMF9idWlsdGluX2RlY2xzW1ZTWF9CVUlMVElOX1hWQ1ZTWERTUF07CisrCisg CWNhc2UgVjRTSW1vZGU6CisgCSAgaWYgKFZFQ1RPUl9VTklUX05PTkVfUCAoVjRTSW1vZGUpIHx8 IFZFQ1RPUl9VTklUX05PTkVfUCAoVjRTRm1vZGUpKQorIAkgICAgcmV0dXJuIE5VTExfVFJFRTsK K0BAIC0yNDY5LDYgKzI0OTIsNyBAQCByczYwMDBfYnVpbHRpbl9jb252ZXJzaW9uIChlbnVtIHRy ZWVfY29kCisgCSAgcmV0dXJuIFRZUEVfVU5TSUdORUQgKHR5cGUpCisgCSAgICA/IHJzNjAwMF9i dWlsdGluX2RlY2xzW1ZFQ1RPUl9CVUlMVElOX1VOU0ZMT0FUX1Y0U0lfVjRTRl0KKyAJICAgIDog cnM2MDAwX2J1aWx0aW5fZGVjbHNbVkVDVE9SX0JVSUxUSU5fRkxPQVRfVjRTSV9WNFNGXTsKKysK KyAJZGVmYXVsdDoKKyAJICByZXR1cm4gTlVMTF9UUkVFOworIAl9CitAQCAtNDEwMSw3ICs0MTI1 LDcgQEAgcnM2MDAwX2xlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCAoZW51bQorICAgICBjYXNl IFYyREltb2RlOgorICAgICAgIC8qIEFsdGlWZWMvVlNYIHZlY3RvciBtb2Rlcy4gIE9ubHkgcmVn K3JlZyBhZGRyZXNzaW5nIGlzIHZhbGlkIGFuZAorIAkgY29uc3RhbnQgb2Zmc2V0IHplcm8gc2hv dWxkIG5vdCBvY2N1ciBkdWUgdG8gY2Fub25pY2FsaXphdGlvbi4gICovCistICAgICAgaWYgKFZF Q1RPUl9VTklUX0FMVElWRUNfT1JfVlNYX1AgKG1vZGUpKQorKyAgICAgIGlmIChWRUNUT1JfTUVN X0FMVElWRUNfT1JfVlNYX1AgKG1vZGUpKQorIAlyZXR1cm4gZmFsc2U7CisgICAgICAgYnJlYWs7 CisgCitAQCAtNDQ0MSw2ICs0NDY1LDcgQEAgcnM2MDAwX2xlZ2l0aW1pemVfYWRkcmVzcyAocnR4 IHgsIHJ0eCBvbAorIAl9CisgICAgICAgZWxzZQorIAlmcHJpbnRmIChzdGRlcnIsICJOVUxMIHJl dHVybmVkXG4iKTsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbiIpOworICAgICB9CisgCisg ICByZXR1cm4gcmV0OworQEAgLTQ3NzYsOCArNDgwMSw3IEBAIHJzNjAwMF9sZWdpdGltaXplX3Jl bG9hZF9hZGRyZXNzIChydHggeCwKKyAJICAgJiYgUkVHX01PREVfT0tfRk9SX0JBU0VfUCAoWEVY UCAoeCwgMCksIG1vZGUpCisgCSAgICYmIEdFVF9DT0RFIChYRVhQICh4LCAxKSkgPT0gQ09OU1Rf SU5UCisgCSAgICYmIChJTlRWQUwgKFhFWFAgKHgsIDEpKSAmIDMpICE9IDAKKy0JICAgJiYgIUFM VElWRUNfVkVDVE9SX01PREUgKG1vZGUpCistCSAgICYmICFWU1hfVkVDVE9SX01PREUgKG1vZGUp CisrCSAgICYmIFZFQ1RPUl9NRU1fTk9ORV9QIChtb2RlKQorIAkgICAmJiBHRVRfTU9ERV9TSVpF IChtb2RlKSA+PSBVTklUU19QRVJfV09SRAorIAkgICAmJiBUQVJHRVRfUE9XRVJQQzY0KQorICAg ICB7CitAQCAtNDc5OCw4ICs0ODIyLDcgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJl c3MgKHJ0eCB4LAorIAkgICAmJiAhKFRBUkdFVF9FNTAwX0RPVUJMRSAmJiAobW9kZSA9PSBERm1v ZGUgfHwgbW9kZSA9PSBURm1vZGUKKyAJCQkJICAgICAgIHx8IG1vZGUgPT0gRERtb2RlIHx8IG1v ZGUgPT0gVERtb2RlCisgCQkJCSAgICAgICB8fCBtb2RlID09IERJbW9kZSkpCistCSAgICYmICFB TFRJVkVDX1ZFQ1RPUl9NT0RFIChtb2RlKQorLQkgICAmJiAhVlNYX1ZFQ1RPUl9NT0RFIChtb2Rl KSkKKysJICAgJiYgVkVDVE9SX01FTV9OT05FX1AgKG1vZGUpKQorICAgICB7CisgICAgICAgSE9T VF9XSURFX0lOVCB2YWwgPSBJTlRWQUwgKFhFWFAgKHgsIDEpKTsKKyAgICAgICBIT1NUX1dJREVf SU5UIGxvdyA9ICgodmFsICYgMHhmZmZmKSBeIDB4ODAwMCkgLSAweDgwMDA7CitAQCAtNDg0Myw2 ICs0ODY2LDcgQEAgcnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MgKHJ0eCB4LAorIAkg ICAvKiBEb24ndCBkbyB0aGlzIGZvciBURm1vZGUgb3IgVERtb2RlLCBzaW5jZSB0aGUgcmVzdWx0 IGlzbid0CisgCSAgICAgIG9mZnNldHRhYmxlLiAgVGhlIHNhbWUgZ29lcyBmb3IgREltb2RlIHdp dGhvdXQgNjQtYml0IGdwcnMgYW5kCisgCSAgICAgIERGbW9kZSBhbmQgRERtb2RlIHdpdGhvdXQg ZnBycy4gICovCisrCSAgICYmIFZFQ1RPUl9NRU1fTk9ORV9QIChtb2RlKQorIAkgICAmJiBtb2Rl ICE9IFRGbW9kZQorIAkgICAmJiBtb2RlICE9IFREbW9kZQorIAkgICAmJiAobW9kZSAhPSBESW1v ZGUgfHwgVEFSR0VUX1BPV0VSUEM2NCkKK0BAIC00OTE4LDYgKzQ5NDIsOCBAQCByczYwMDBfbGVn aXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyAocnR4IHgsCisgCSAgZnByaW50ZiAoc3RkZXJyLCAiTmV3 IGFkZHJlc3M6XG4iKTsKKyAJICBkZWJ1Z19ydHggKHJldCk7CisgCX0KKysKKysgICAgICBmcHJp bnRmIChzdGRlcnIsICJcbiIpOworICAgICB9CisgCisgICByZXR1cm4gcmV0OworQEAgLTUwMzUs NiArNTA2MSw3IEBAIHJzNjAwMF9sZWdpdGltYXRlX2FkZHJlc3MgKGVudW0gbWFjaGluZV8KKyAJ ICAgICAgIEdFVF9NT0RFX05BTUUgKG1vZGUpLAorIAkgICAgICAgcmVnX29rX3N0cmljdCk7Cisg ICAgICAgZGVidWdfcnR4IChvcmlnX3gpOworKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIlxuIik7 CisgICAgIH0KKyAKKyAgIHJldHVybiByZXQ7CitAQCAtNTA4Miw5ICs1MTA5LDEwIEBAIHJzNjAw MF9tb2RlX2RlcGVuZGVudF9hZGRyZXNzIChydHggYWRkcikKKyAgIGlmIChUQVJHRVRfREVCVUdf QUREUikKKyAgICAgeworICAgICAgIGZwcmludGYgKHN0ZGVyciwKKy0JICAgICAgICJcbnJzNjAw MF9tb2RlX2RlcGVuZGVudF9hZGRyZXNzOiByZXQgPSAlZFxuIiwKKy0JICAgICAgIChpbnQpcmV0 KTsKKysJICAgICAgICJcbnJzNjAwMF9tb2RlX2RlcGVuZGVudF9hZGRyZXNzOiByZXQgPSAlc1xu IiwKKysJICAgICAgIHJldCA/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgIGRlYnVnX3J0eCAo YWRkcik7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKKyAgICAgfQorIAorICAgcmV0 dXJuIHJldDsKK0BAIC03OTE3LDYgKzc5NDUsMjAgQEAgc3RhdGljIHN0cnVjdCBidWlsdGluX2Rl c2NyaXB0aW9uIGJkZXNjXworICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX2FsdGl2ZWNfdnN1 bXN3cywgIl9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MiLCBBTFRJVkVDX0JVSUxUSU5fVlNVTVNX UyB9LAorICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX3hvcnY0c2kzLCAiX19idWlsdGluX2Fs dGl2ZWNfdnhvciIsIEFMVElWRUNfQlVJTFRJTl9WWE9SIH0sCisgCisrICB7IE1BU0tfVlNYLCBD T0RFX0ZPUl9hZGR2MmRmMywgIl9fYnVpbHRpbl92c3hfeHZhZGRkcCIsIFZTWF9CVUlMVElOX1hW QURERFAgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX3N1YnYyZGYzLCAiX19idWlsdGluX3Zz eF94dnN1YmRwIiwgVlNYX0JVSUxUSU5fWFZTVUJEUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9G T1JfbXVsdjJkZjMsICJfX2J1aWx0aW5fdnN4X3h2bXVsZHAiLCBWU1hfQlVJTFRJTl9YVk1VTERQ IH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9kaXZ2MmRmMywgIl9fYnVpbHRpbl92c3hfeHZk aXZkcCIsIFZTWF9CVUlMVElOX1hWRElWRFAgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX3Nt aW52MmRmMywgIl9fYnVpbHRpbl92c3hfeHZtaW5kcCIsIFZTWF9CVUlMVElOX1hWTUlORFAgfSwK KysgIHsgTUFTS19WU1gsIENPREVfRk9SX3NtYXh2MmRmMywgIl9fYnVpbHRpbl92c3hfeHZtYXhk cCIsIFZTWF9CVUlMVElOX1hWTUFYRFAgfSwKKysKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX2Fk ZHY0c2YzLCAiX19idWlsdGluX3ZzeF94dmFkZHNwIiwgVlNYX0JVSUxUSU5fWFZBRERTUCB9LAor KyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jfc3VidjRzZjMsICJfX2J1aWx0aW5fdnN4X3h2c3Vic3Ai LCBWU1hfQlVJTFRJTl9YVlNVQlNQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9tdWx2NHNm MywgIl9fYnVpbHRpbl92c3hfeHZtdWxzcCIsIFZTWF9CVUlMVElOX1hWTVVMU1AgfSwKKysgIHsg TUFTS19WU1gsIENPREVfRk9SX2RpdnY0c2YzLCAiX19idWlsdGluX3ZzeF94dmRpdnNwIiwgVlNY X0JVSUxUSU5fWFZESVZTUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jfc21pbnY0c2YzLCAi X19idWlsdGluX3ZzeF94dm1pbnNwIiwgVlNYX0JVSUxUSU5fWFZNSU5TUCB9LAorKyAgeyBNQVNL X1ZTWCwgQ09ERV9GT1Jfc21heHY0c2YzLCAiX19idWlsdGluX3ZzeF94dm1heHNwIiwgVlNYX0JV SUxUSU5fWFZNQVhTUCB9LAorKworICAgeyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcs ICJfX2J1aWx0aW5fdmVjX2FkZCIsIEFMVElWRUNfQlVJTFRJTl9WRUNfQUREIH0sCisgICB7IE1B U0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGluZywgIl9fYnVpbHRpbl92ZWNfdmFkZGZwIiwgQUxU SVZFQ19CVUlMVElOX1ZFQ19WQURERlAgfSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9u b3RoaW5nLCAiX19idWlsdGluX3ZlY192YWRkdXdtIiwgQUxUSVZFQ19CVUlMVElOX1ZFQ19WQURE VVdNIH0sCitAQCAtODI4OCw3ICs4MzMwLDExIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRp bl9kZXNjcmlwdGlvbiAKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hYnN2MTZxaTIsICJf X2J1aWx0aW5fYWx0aXZlY19hYnNfdjE2cWkiLCBBTFRJVkVDX0JVSUxUSU5fQUJTX1YxNlFJIH0s CisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY19hYnNzX3Y0c2ksICJfX2J1aWx0 aW5fYWx0aXZlY19hYnNzX3Y0c2kiLCBBTFRJVkVDX0JVSUxUSU5fQUJTU19WNFNJIH0sCisgICB7 IE1BU0tfQUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY19hYnNzX3Y4aGksICJfX2J1aWx0aW5fYWx0 aXZlY19hYnNzX3Y4aGkiLCBBTFRJVkVDX0JVSUxUSU5fQUJTU19WOEhJIH0sCistICB7IE1BU0tf QUxUSVZFQywgQ09ERV9GT1JfYWx0aXZlY19hYnNzX3YxNnFpLCAiX19idWlsdGluX2FsdGl2ZWNf YWJzc192MTZxaSIsIEFMVElWRUNfQlVJTFRJTl9BQlNTX1YxNlFJIH0KKysgIHsgTUFTS19BTFRJ VkVDLCBDT0RFX0ZPUl9hbHRpdmVjX2Fic3NfdjE2cWksICJfX2J1aWx0aW5fYWx0aXZlY19hYnNz X3YxNnFpIiwgQUxUSVZFQ19CVUlMVElOX0FCU1NfVjE2UUkgfSwKKysgIHsgTUFTS19WU1gsIENP REVfRk9SX2Fic3YyZGYyLCAiX19idWlsdGluX3ZzeF94dmFic2RwIiwgVlNYX0JVSUxUSU5fWFZB QlNEUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfdnN4X25hYnN2MmRmMiwgIl9fYnVpbHRp bl92c3hfeHZuYWJzZHAiLCBWU1hfQlVJTFRJTl9YVk5BQlNEUCB9LAorKyAgeyBNQVNLX1ZTWCwg Q09ERV9GT1JfYWJzdjRzZjIsICJfX2J1aWx0aW5fdnN4X3h2YWJzc3AiLCBWU1hfQlVJTFRJTl9Y VkFCU1NQIH0sCisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl92c3hfbmFic3Y0c2YyLCAiX19idWls dGluX3ZzeF94dm5hYnNzcCIsIFZTWF9CVUlMVElOX1hWTkFCU1NQIH0sCisgfTsKKyAKKyAvKiBT aW1wbGUgdW5hcnkgb3BlcmF0aW9uczogVkVDYiA9IGZvbyAodW5zaWduZWQgbGl0ZXJhbCkgb3Ig VkVDYiA9CitAQCAtODMxNCw2ICs4MzYwLDExIEBAIHN0YXRpYyBzdHJ1Y3QgYnVpbHRpbl9kZXNj cmlwdGlvbiBiZGVzY18KKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3Z1cGts cHgsICJfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4IiwgQUxUSVZFQ19CVUlMVElOX1ZVUEtMUFgg fSwKKyAgIHsgTUFTS19BTFRJVkVDLCBDT0RFX0ZPUl9hbHRpdmVjX3Z1cGtsc2gsICJfX2J1aWx0 aW5fYWx0aXZlY192dXBrbHNoIiwgQUxUSVZFQ19CVUlMVElOX1ZVUEtMU0ggfSwKKyAKKysgIHsg TUFTS19WU1gsIENPREVfRk9SX25lZ3YyZGYyLCAiX19idWlsdGluX3ZzeF94dm5lZ2RwIiwgVlNY X0JVSUxUSU5fWFZORUdEUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1Jfc3FydHYyZGYyLCAi X19idWlsdGluX3ZzeF94dnNxcnRkcCIsIFZTWF9CVUlMVElOX1hWU1FSVERQIH0sCisrICB7IE1B U0tfVlNYLCBDT0RFX0ZPUl9uZWd2NHNmMiwgIl9fYnVpbHRpbl92c3hfeHZuZWdzcCIsIFZTWF9C VUlMVElOX1hWTkVHU1AgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX3NxcnR2NHNmMiwgIl9f YnVpbHRpbl92c3hfeHZzcXJ0c3AiLCBWU1hfQlVJTFRJTl9YVlNRUlRTUCB9LAorKworICAgeyBN QVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX2FicyIsIEFMVElW RUNfQlVJTFRJTl9WRUNfQUJTIH0sCisgICB7IE1BU0tfQUxUSVZFQywgQ09ERV9GT1Jfbm90aGlu ZywgIl9fYnVpbHRpbl92ZWNfYWJzcyIsIEFMVElWRUNfQlVJTFRJTl9WRUNfQUJTUyB9LAorICAg eyBNQVNLX0FMVElWRUMsIENPREVfRk9SX25vdGhpbmcsICJfX2J1aWx0aW5fdmVjX2NlaWwiLCBB TFRJVkVDX0JVSUxUSU5fVkVDX0NFSUwgfSwKK0BAIC04MzM5LDYgKzgzOTAsMTUgQEAgc3RhdGlj IHN0cnVjdCBidWlsdGluX2Rlc2NyaXB0aW9uIGJkZXNjXworICAgeyBNQVNLX0FMVElWRUN8TUFT S19WU1gsIENPREVfRk9SX2ZpeF90cnVuY3Y0c2Z2NHNpMiwgIl9fYnVpbHRpbl92ZWNfZml4X3Nm c2kiLCBWRUNUT1JfQlVJTFRJTl9GSVhfVjRTRl9WNFNJIH0sCisgICB7IE1BU0tfQUxUSVZFQ3xN QVNLX1ZTWCwgQ09ERV9GT1JfZml4dW5zX3RydW5jdjRzZnY0c2kyLCAiX19idWlsdGluX3ZlY19m aXh1bnNfc2ZzaSIsIFZFQ1RPUl9CVUlMVElOX0ZJWFVOU19WNFNGX1Y0U0kgfSwKKyAKKysgIHsg TUFTS19WU1gsIENPREVfRk9SX2Zsb2F0djJkaXYyZGYyLCAiX19idWlsdGluX3ZzeF94dmN2c3hk ZHAiLCBWU1hfQlVJTFRJTl9YVkNWU1hERFAgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX3Vu c2lnbmVkX2Zsb2F0djJkaXYyZGYyLCAiX19idWlsdGluX3ZzeF94dmN2dXhkZHAiLCBWU1hfQlVJ TFRJTl9YVkNWVVhERFAgfSwKKysgIHsgTUFTS19WU1gsIENPREVfRk9SX2ZpeF90cnVuY3YyZGZ2 MmRpMiwgIl9fYnVpbHRpbl92c3hfeHZkcHN4ZHMiLCBWU1hfQlVJTFRJTl9YVkNWRFBTWERTIH0s CisrICB7IE1BU0tfVlNYLCBDT0RFX0ZPUl9maXh1bnNfdHJ1bmN2MmRmdjJkaTIsICJfX2J1aWx0 aW5fdnN4X3h2ZHB1eGRzIiwgVlNYX0JVSUxUSU5fWFZDVkRQVVhEUyB9LAorKyAgeyBNQVNLX1ZT WCwgQ09ERV9GT1JfZmxvYXR2NHNpdjRzZjIsICJfX2J1aWx0aW5fdnN4X3h2Y3ZzeHdzcCIsIFZT WF9CVUlMVElOX1hWQ1ZTWERTUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfdW5zaWduZWRf ZmxvYXR2NHNpdjRzZjIsICJfX2J1aWx0aW5fdnN4X3h2Y3Z1eHdzcCIsIFZTWF9CVUlMVElOX1hW Q1ZVWFdTUCB9LAorKyAgeyBNQVNLX1ZTWCwgQ09ERV9GT1JfZml4X3RydW5jdjRzZnY0c2kyLCAi X19idWlsdGluX3ZzeF94dnNwc3h3cyIsIFZTWF9CVUlMVElOX1hWQ1ZTUFNYV1MgfSwKKysgIHsg TUFTS19WU1gsIENPREVfRk9SX2ZpeHVuc190cnVuY3Y0c2Z2NHNpMiwgIl9fYnVpbHRpbl92c3hf eHZzcHV4d3MiLCBWU1hfQlVJTFRJTl9YVkNWU1BVWFdTIH0sCisrCisgICAvKiBUaGUgU1BFIHVu YXJ5IGJ1aWx0aW5zIG11c3Qgc3RhcnQgd2l0aCBTUEVfQlVJTFRJTl9FVkFCUyBhbmQKKyAgICAg IGVuZCB3aXRoIFNQRV9CVUlMVElOX0VWU1VCRlVTSUFBVy4gICovCisgICB7IDAsIENPREVfRk9S X3NwZV9ldmFicywgIl9fYnVpbHRpbl9zcGVfZXZhYnMiLCBTUEVfQlVJTFRJTl9FVkFCUyB9LAor QEAgLTEwNDg0LDYgKzEwNTQ0LDggQEAgYWx0aXZlY19pbml0X2J1aWx0aW5zICh2b2lkKQorICAg ICA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjE2UUlfdHlwZV9ub2RlLCBWMTZRSV90eXBl X25vZGUsIE5VTExfVFJFRSk7CisgICB0cmVlIHY0c2ZfZnR5cGVfdjRzZgorICAgICA9IGJ1aWxk X2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjRTRl90eXBlX25vZGUsIFY0U0ZfdHlwZV9ub2RlLCBOVUxM X1RSRUUpOworKyAgdHJlZSB2MmRmX2Z0eXBlX3YyZGYKKysgICAgPSBidWlsZF9mdW5jdGlvbl90 eXBlX2xpc3QgKFYyREZfdHlwZV9ub2RlLCBWMkRGX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKKyAg IHRyZWUgdm9pZF9mdHlwZV9wY3ZvaWRfaW50X2ludAorICAgICA9IGJ1aWxkX2Z1bmN0aW9uX3R5 cGVfbGlzdCAodm9pZF90eXBlX25vZGUsCisgCQkJCXBjdm9pZF90eXBlX25vZGUsIGludGVnZXJf dHlwZV9ub2RlLAorQEAgLTEwNjQxLDYgKzEwNzAzLDkgQEAgYWx0aXZlY19pbml0X2J1aWx0aW5z ICh2b2lkKQorIAljYXNlIFY0U0Ztb2RlOgorIAkgIHR5cGUgPSB2NHNmX2Z0eXBlX3Y0c2Y7Cisg CSAgYnJlYWs7CisrCWNhc2UgVjJERm1vZGU6CisrCSAgdHlwZSA9IHYyZGZfZnR5cGVfdjJkZjsK KysJICBicmVhazsKKyAJZGVmYXVsdDoKKyAJICBnY2NfdW5yZWFjaGFibGUgKCk7CisgCX0KK0BA IC0xMDk2MCw2ICsxMTAyNSwxOCBAQCByczYwMDBfY29tbW9uX2luaXRfYnVpbHRpbnMgKHZvaWQp CisgICB0cmVlIGludF9mdHlwZV92OGhpX3Y4aGkKKyAgICAgPSBidWlsZF9mdW5jdGlvbl90eXBl X2xpc3QgKGludGVnZXJfdHlwZV9ub2RlLAorIAkJCQlWOEhJX3R5cGVfbm9kZSwgVjhISV90eXBl X25vZGUsIE5VTExfVFJFRSk7CisrICB0cmVlIHYyZGlfZnR5cGVfdjJkZgorKyAgICA9IGJ1aWxk X2Z1bmN0aW9uX3R5cGVfbGlzdCAoVjJESV90eXBlX25vZGUsCisrCQkJCVYyREZfdHlwZV9ub2Rl LCBOVUxMX1RSRUUpOworKyAgdHJlZSB2MmRmX2Z0eXBlX3YyZGYKKysgICAgPSBidWlsZF9mdW5j dGlvbl90eXBlX2xpc3QgKFYyREZfdHlwZV9ub2RlLAorKwkJCQlWMkRGX3R5cGVfbm9kZSwgTlVM TF9UUkVFKTsKKysgIHRyZWUgdjJkZl9mdHlwZV92MmRpCisrICAgID0gYnVpbGRfZnVuY3Rpb25f dHlwZV9saXN0IChWMkRGX3R5cGVfbm9kZSwKKysJCQkJVjJESV90eXBlX25vZGUsIE5VTExfVFJF RSk7CisrICB0cmVlIHYyZGZfZnR5cGVfdjJkZl92MmRmCisrICAgID0gYnVpbGRfZnVuY3Rpb25f dHlwZV9saXN0IChWMkRGX3R5cGVfbm9kZSwKKysJCQkJVjJERl90eXBlX25vZGUsIFYyREZfdHlw ZV9ub2RlLCBOVUxMX1RSRUUpOworICAgdHJlZSB2MmRmX2Z0eXBlX3YyZGZfdjJkZl92MmRmCisg ICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChWMkRGX3R5cGVfbm9kZSwKKyAJCQkJVjJE Rl90eXBlX25vZGUsIFYyREZfdHlwZV9ub2RlLAorQEAgLTExMTM2LDYgKzExMjEzLDkgQEAgcnM2 MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zICh2b2lkKQorIAkgICAgY2FzZSBWT0lEbW9kZToKKyAJ ICAgICAgdHlwZSA9IG9wYXF1ZV9mdHlwZV9vcGFxdWVfb3BhcXVlOworIAkgICAgICBicmVhazsK KysJICAgIGNhc2UgVjJERm1vZGU6CisrCSAgICAgIHR5cGUgPSB2MmRmX2Z0eXBlX3YyZGZfdjJk ZjsKKysJICAgICAgYnJlYWs7CisgCSAgICBjYXNlIFY0U0Ztb2RlOgorIAkgICAgICB0eXBlID0g djRzZl9mdHlwZV92NHNmX3Y0c2Y7CisgCSAgICAgIGJyZWFrOworQEAgLTExMjg1LDYgKzExMzY1 LDggQEAgcnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zICh2b2lkKQorIAl0eXBlID0gdjE2cWlf ZnR5cGVfaW50OworICAgICAgIGVsc2UgaWYgKG1vZGUwID09IFZPSURtb2RlICYmIG1vZGUxID09 IFZPSURtb2RlKQorIAl0eXBlID0gb3BhcXVlX2Z0eXBlX29wYXF1ZTsKKysgICAgICBlbHNlIGlm IChtb2RlMCA9PSBWMkRGbW9kZSAmJiBtb2RlMSA9PSBWMkRGbW9kZSkKKysJdHlwZSA9IHYyZGZf ZnR5cGVfdjJkZjsKKyAgICAgICBlbHNlIGlmIChtb2RlMCA9PSBWNFNGbW9kZSAmJiBtb2RlMSA9 PSBWNFNGbW9kZSkKKyAJdHlwZSA9IHY0c2ZfZnR5cGVfdjRzZjsKKyAgICAgICBlbHNlIGlmICht b2RlMCA9PSBWOEhJbW9kZSAmJiBtb2RlMSA9PSBWMTZRSW1vZGUpCitAQCAtMTEzMTAsNiArMTEz OTIsMTAgQEAgcnM2MDAwX2NvbW1vbl9pbml0X2J1aWx0aW5zICh2b2lkKQorIAl0eXBlID0gdjRz aV9mdHlwZV92NHNmOworICAgICAgIGVsc2UgaWYgKG1vZGUwID09IFY0U0Ztb2RlICYmIG1vZGUx ID09IFY0U0ltb2RlKQorIAl0eXBlID0gdjRzZl9mdHlwZV92NHNpOworKyAgICAgIGVsc2UgaWYg KG1vZGUwID09IFYyREltb2RlICYmIG1vZGUxID09IFYyREZtb2RlKQorKwl0eXBlID0gdjJkaV9m dHlwZV92MmRmOworKyAgICAgIGVsc2UgaWYgKG1vZGUwID09IFYyREZtb2RlICYmIG1vZGUxID09 IFYyREltb2RlKQorKwl0eXBlID0gdjJkZl9mdHlwZV92MmRpOworICAgICAgIGVsc2UKKyAJZ2Nj X3VucmVhY2hhYmxlICgpOworIAorQEAgLTEyMDkyLDggKzEyMTc4LDEwIEBAIHJ0eAorIHJzNjAw MF9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZF9ydHggKGVudW0gbWFjaGluZV9tb2RlIG1vZGUpCisg eworICAgc3RhdGljIGJvb2wgZWxpbWluYXRlZCA9IGZhbHNlOworKyAgcnR4IHJldDsKKysKKyAg IGlmIChtb2RlICE9IFNEbW9kZSkKKy0gICAgcmV0dXJuIGFzc2lnbl9zdGFja19sb2NhbCAobW9k ZSwgR0VUX01PREVfU0laRSAobW9kZSksIDApOworKyAgICByZXQgPSBhc3NpZ25fc3RhY2tfbG9j YWwgKG1vZGUsIEdFVF9NT0RFX1NJWkUgKG1vZGUpLCAwKTsKKyAgIGVsc2UKKyAgICAgeworICAg ICAgIHJ0eCBtZW0gPSBjZnVuLT5tYWNoaW5lLT5zZG1vZGVfc3RhY2tfc2xvdDsKK0BAIC0xMjEw NSw4ICsxMjE5MywyMSBAQCByczYwMDBfc2Vjb25kYXJ5X21lbW9yeV9uZWVkZWRfcnR4IChlbnVt CisgCSAgY2Z1bi0+bWFjaGluZS0+c2Rtb2RlX3N0YWNrX3Nsb3QgPSBtZW07CisgCSAgZWxpbWlu YXRlZCA9IHRydWU7CisgCX0KKy0gICAgICByZXR1cm4gbWVtOworKyAgICAgIHJldCA9IG1lbTsK KysgICAgfQorKworKyAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQorKyAgICB7CisrICAgICAgZnBy aW50ZiAoc3RkZXJyLCAicnM2MDAwX3NlY29uZGFyeV9tZW1vcnlfbmVlZGVkX3J0eCwgbW9kZSAl cywgcnR4OlxuIiwKKysJICAgICAgIEdFVF9NT0RFX05BTUUgKG1vZGUpKTsKKysgICAgICBpZiAo IXJldCkKKysJZnByaW50ZiAoc3RkZXJyLCAiXHROVUxMX1JUWFxuIik7CisrICAgICAgZWxzZQor KwlkZWJ1Z19ydHggKHJldCk7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKKyAgICAg fQorKworKyAgcmV0dXJuIHJldDsKKyB9CisgCisgc3RhdGljIHRyZWUKK0BAIC0xMjE0MCw2ICsx MjI0MSw1NCBAQCByczYwMDBfY2hlY2tfc2Rtb2RlICh0cmVlICp0cCwgaW50ICp3YWxrCisgICBy ZXR1cm4gTlVMTF9UUkVFOworIH0KKyAKKysvKiBJbmZvcm0gcmVsb2FkIGFib3V0IGNhc2VzIHdo ZXJlIG1vdmluZyBYIHdpdGggYSBtb2RlIE1PREUgdG8gYSByZWdpc3RlciBpbgorKyAgIFJDTEFT UyByZXF1aXJlcyBhbiBleHRyYSBzY3JhdGNoIG9yIGltbWVkaWF0ZSByZWdpc3Rlci4gIFJldHVy biB0aGUgY2xhc3MKKysgICBuZWVkZWQgZm9yIHRoZSBpbW1lZGlhdGUgcmVnaXN0ZXIuICAqLwor KworK3N0YXRpYyBlbnVtIHJlZ19jbGFzcworK3JzNjAwMF9zZWNvbmRhcnlfcmVsb2FkIChib29s IGluX3AsCisrCQkJIHJ0eCB4LAorKwkJCSBlbnVtIHJlZ19jbGFzcyByY2xhc3MsCisrCQkJIGVu dW0gbWFjaGluZV9tb2RlIG1vZGUsCisrCQkJIHNlY29uZGFyeV9yZWxvYWRfaW5mbyAqc3JpKQor K3sKKysgIGlmIChUQVJHRVRfREVCVUdfQUREUikKKysgICAgeworKyAgICAgIGZwcmludGYgKHN0 ZGVyciwKKysJICAgICAgICJyczYwMDBfc2Vjb25kYXJ5X3JlbG9hZCwgaW5fcCA9ICVzLCByY2xh c3MgPSAlcywgbW9kZSA9ICVzXG4iLAorKwkgICAgICAgaW5fcCA/ICJ0cnVlIiA6ICJmYWxzZSIs IHJlZ19jbGFzc19uYW1lc1tyY2xhc3NdLAorKwkgICAgICAgR0VUX01PREVfTkFNRSAobW9kZSkp OworKyAgICAgIGRlYnVnX3J0eCAoeCk7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsK KysgICAgfQorKworKyAgcmV0dXJuIGRlZmF1bHRfc2Vjb25kYXJ5X3JlbG9hZCAoaW5fcCwgeCwg cmNsYXNzLCBtb2RlLCBzcmkpOworK30KKysKKysvKiBGaXh1cCByZWxvYWQgYWRkcmVzc2VzIGZv ciBBbHRpdmVjIG9yIFZTWCBsb2Fkcy9zdG9yZXMgdG8gY2hhbmdlIFNQK29mZnNldAorKyAgIHRv IFNQK3JlZyBhZGRyZXNzaW5nLiAgKi8KKysKKyt2b2lkCisrcnM2MDAwX3ZlY3Rvcl9zZWNvbmRh cnlfcmVsb2FkIChydHggb3AwLCBydHggb3AxLCBydHggb3AyLCBib29sIHRvX21lbV9wKQorK3sK KysgIHJ0eCBtZW1yZWYgPSB0b19tZW1fcCA/IG9wMCA6IG9wMTsKKysgIGdjY19hc3NlcnQgKE1F TV9QIChtZW1yZWYpKTsKKysKKysgIGlmIChUQVJHRVRfREVCVUdfQUREUikKKysgICAgeworKyAg ICAgIGZwcmludGYgKHN0ZGVyciwgInJzNjAwMF92ZWN0b3Jfc2Vjb25kYXJ5X3JlbG9hZCwgdG9f bWVtX3AgPSAlc1xuIiwKKysJICAgICAgIHRvX21lbV9wID8gInRydWUiIDogImZhbHNlIik7Cisr ICAgICAgZnByaW50ZiAoc3RkZXJyLCAib3AwOlxuIik7CisrICAgICAgZGVidWdfcnR4IChvcDAp OworKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIm9wMTpcbiIpOworKyAgICAgIGRlYnVnX3J0eCAo b3AxKTsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICJvcDI6XG4iKTsKKysgICAgICBkZWJ1Z19y dHggKG9wMik7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKKysgICAgfQorKworKyAg Z2NjX3VucmVhY2hhYmxlICgpOworK30KKyAKKyAvKiBBbGxvY2F0ZSBhIDY0LWJpdCBzdGFjayBz bG90IHRvIGJlIHVzZWQgZm9yIGNvcHlpbmcgU0Rtb2RlCisgICAgdmFsdWVzIHRocm91Z2ggaWYg dGhpcyBmdW5jdGlvbiBoYXMgYW55IFNEbW9kZSByZWZlcmVuY2VzLiAgKi8KK0BAIC0xMjIxMiwz MiArMTIzNjEsNDQgQEAgZW51bSByZWdfY2xhc3MKKyByczYwMDBfcHJlZmVycmVkX3JlbG9hZF9j bGFzcyAocnR4IHgsIGVudW0gcmVnX2NsYXNzIHJjbGFzcykKKyB7CisgICBlbnVtIG1hY2hpbmVf bW9kZSBtb2RlID0gR0VUX01PREUgKHgpOworKyAgZW51bSByZWdfY2xhc3MgcmV0OworIAorICAg aWYgKFRBUkdFVF9WU1ggJiYgVlNYX1ZFQ1RPUl9NT0RFIChtb2RlKSAmJiB4ID09IENPTlNUMF9S VFggKG1vZGUpCisgICAgICAgJiYgVlNYX1JFR19DTEFTU19QIChyY2xhc3MpKQorLSAgICByZXR1 cm4gcmNsYXNzOworKyAgICByZXQgPSByY2xhc3M7CisgCistICBpZiAoVEFSR0VUX0FMVElWRUMg JiYgQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9kZSkgJiYgcmNsYXNzID09IEFMVElWRUNfUkVHUwor LSAgICAgICYmIGVhc3lfdmVjdG9yX2NvbnN0YW50ICh4LCBtb2RlKSkKKy0gICAgcmV0dXJuIHJj bGFzczsKKysgIGVsc2UgaWYgKFRBUkdFVF9BTFRJVkVDICYmIEFMVElWRUNfVkVDVE9SX01PREUg KG1vZGUpCisrCSAgICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JFR1MgJiYgZWFzeV92ZWN0b3JfY29u c3RhbnQgKHgsIG1vZGUpKQorKyAgICByZXQgPSByY2xhc3M7CisgCistICBpZiAoQ09OU1RBTlRf UCAoeCkgJiYgcmVnX2NsYXNzZXNfaW50ZXJzZWN0X3AgKHJjbGFzcywgRkxPQVRfUkVHUykpCist ICAgIHJldHVybiBOT19SRUdTOworKyAgZWxzZSBpZiAoQ09OU1RBTlRfUCAoeCkgJiYgcmVnX2Ns YXNzZXNfaW50ZXJzZWN0X3AgKHJjbGFzcywgRkxPQVRfUkVHUykpCisrICAgIHJldCA9IE5PX1JF R1M7CisgCistICBpZiAoR0VUX01PREVfQ0xBU1MgKG1vZGUpID09IE1PREVfSU5UICYmIHJjbGFz cyA9PSBOT05fU1BFQ0lBTF9SRUdTKQorLSAgICByZXR1cm4gR0VORVJBTF9SRUdTOworKyAgZWxz ZSBpZiAoR0VUX01PREVfQ0xBU1MgKG1vZGUpID09IE1PREVfSU5UICYmIHJjbGFzcyA9PSBOT05f U1BFQ0lBTF9SRUdTKQorKyAgICByZXQgPSBHRU5FUkFMX1JFR1M7CisgCisgICAvKiBGb3IgVlNY LCBwcmVmZXIgdGhlIHRyYWRpdGlvbmFsIHJlZ2lzdGVycy4gICovCistICBpZiAocmNsYXNzID09 IFZTWF9SRUdTKQorKyAgZWxzZSBpZiAocmNsYXNzID09IFZTWF9SRUdTKQorICAgICB7CisgICAg ICAgaWYgKG1vZGUgPT0gREZtb2RlKQorLQlyZXR1cm4gRkxPQVRfUkVHUzsKKysJcmV0ID0gRkxP QVRfUkVHUzsKKyAKKyAgICAgICBpZiAoQUxUSVZFQ19WRUNUT1JfTU9ERSAobW9kZSkpCistCXJl dHVybiBBTFRJVkVDX1JFR1M7CisrCXJldCA9IEFMVElWRUNfUkVHUzsKKysgICAgfQorKyAgZWxz ZQorKyAgICByZXQgPSByY2xhc3M7CisrCisrICBpZiAoVEFSR0VUX0RFQlVHX0FERFIpCisrICAg IHsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsCisrCSAgICAgICAicnM2MDAwX3ByZWZlcnJlZF9y ZWxvYWRfY2xhc3MsIHJldHVybiAlcywgcmNsYXNzID0gJXMsIHg6XG4iLAorKwkgICAgICAgcmVn X2NsYXNzX25hbWVzW3JldF0sIHJlZ19jbGFzc19uYW1lc1tyY2xhc3NdKTsKKysgICAgICBkZWJ1 Z19ydHggKHgpOworKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIlxuIik7CisgICAgIH0KKyAKKy0g IHJldHVybiByY2xhc3M7CisrICByZXR1cm4gcmV0OworIH0KKyAKKyAvKiBJZiB3ZSBhcmUgY29w eWluZyBiZXR3ZWVuIEZQIG9yIEFsdGlWZWMgcmVnaXN0ZXJzIGFuZCBhbnl0aGluZyBlbHNlLCB3 ZSBuZWVkCitAQCAtMTIyNTEsMzEgKzEyNDEyLDQ2IEBAIHJzNjAwMF9zZWNvbmRhcnlfbWVtb3J5 X25lZWRlZCAoZW51bSByZWcKKyAJCQkJZW51bSByZWdfY2xhc3MgY2xhc3MyLAorIAkJCQllbnVt IG1hY2hpbmVfbW9kZSBtb2RlKQorIHsKKysgIGJvb2wgcmV0OworKyAgYm9vbCB2c3gxOworKyAg Ym9vbCB2c3gyOworKworICAgaWYgKGNsYXNzMSA9PSBjbGFzczIpCistICAgIHJldHVybiBmYWxz ZTsKKysgICAgcmV0ID0gZmFsc2U7CisgCistICBpZiAoVEFSR0VUX1ZTWCAmJiBWU1hfTU9WRV9N T0RFIChtb2RlKSAmJiBWU1hfUkVHX0NMQVNTX1AgKGNsYXNzMSkKKy0gICAgICAmJiBWU1hfUkVH X0NMQVNTX1AgKGNsYXNzMikpCistICAgIHJldHVybiBmYWxzZTsKKysgIGVsc2UgaWYgKFRBUkdF VF9WU1ggJiYgVkVDVE9SX01FTV9WU1hfUCAobW9kZSkKKysJICAgJiYgKCh2c3gxID0gVlNYX1JF R19DTEFTU19QIChjbGFzczEpKQorKwkgICAgICAgfHwgKHZzeDIgPSBWU1hfUkVHX0NMQVNTX1Ag KGNsYXNzMikpKSkKKysgICAgcmV0ID0gKHZzeDEgIT0gdnN4Mik7CisrCisrICBlbHNlIGlmIChj bGFzczEgPT0gRkxPQVRfUkVHUworKwkgICAmJiAoIVRBUkdFVF9NRlBHUFIgfHwgIVRBUkdFVF9Q T1dFUlBDNjQKKysJICAgICAgIHx8ICgobW9kZSAhPSBERm1vZGUpCisrCQkgICAmJiAobW9kZSAh PSBERG1vZGUpCisrCQkgICAmJiAobW9kZSAhPSBESW1vZGUpKSkpCisrICAgIHJldCA9IHRydWU7 CisrCisrICBlbHNlIGlmIChjbGFzczIgPT0gRkxPQVRfUkVHUworKwkgICAmJiAoIVRBUkdFVF9N RlBHUFIgfHwgIVRBUkdFVF9QT1dFUlBDNjQKKysJICAgICAgIHx8ICgobW9kZSAhPSBERm1vZGUp CisrCQkgICAmJiAobW9kZSAhPSBERG1vZGUpCisrCQkgICAmJiAobW9kZSAhPSBESW1vZGUpKSkp CisrICAgIHJldCA9IHRydWU7CisgCistICBpZiAoY2xhc3MxID09IEZMT0FUX1JFR1MKKy0gICAg ICAgJiYgKCFUQVJHRVRfTUZQR1BSIHx8ICFUQVJHRVRfUE9XRVJQQzY0CistCSAgIHx8ICgobW9k ZSAhPSBERm1vZGUpCistCSAgICAgICAmJiAobW9kZSAhPSBERG1vZGUpCistCSAgICAgICAmJiAo bW9kZSAhPSBESW1vZGUpKSkpCistICAgIHJldHVybiB0cnVlOworKyAgZWxzZSBpZiAoY2xhc3Mx ID09IEFMVElWRUNfUkVHUyB8fCBjbGFzczIgPT0gQUxUSVZFQ19SRUdTKQorKyAgICByZXQgPSB0 cnVlOworIAorLSAgaWYgKGNsYXNzMiA9PSBGTE9BVF9SRUdTCistICAgICAgJiYgKCFUQVJHRVRf TUZQR1BSIHx8ICFUQVJHRVRfUE9XRVJQQzY0CistCSAgfHwgKChtb2RlICE9IERGbW9kZSkKKy0J ICAgICAgJiYgKG1vZGUgIT0gRERtb2RlKQorLQkgICAgICAmJiAobW9kZSAhPSBESW1vZGUpKSkp CistICAgIHJldHVybiB0cnVlOworKyAgZWxzZQorKyAgICByZXQgPSBmYWxzZTsKKyAKKy0gIGlm IChjbGFzczEgPT0gQUxUSVZFQ19SRUdTIHx8IGNsYXNzMiA9PSBBTFRJVkVDX1JFR1MpCistICAg IHJldHVybiB0cnVlOworKyAgaWYgKFRBUkdFVF9ERUJVR19BRERSKQorKyAgICBmcHJpbnRmIChz dGRlcnIsCisrCSAgICAgInJzNjAwMF9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZCwgcmV0dXJuOiAl cywgY2xhc3MxID0gJXMsICIKKysJICAgICAiY2xhc3MyID0gJXMsIG1vZGUgPSAlc1xuIiwKKysJ ICAgICByZXQgPyAidHJ1ZSIgOiAiZmFsc2UiLCByZWdfY2xhc3NfbmFtZXNbY2xhc3MxXSwKKysJ ICAgICByZWdfY2xhc3NfbmFtZXNbY2xhc3MyXSwgR0VUX01PREVfTkFNRSAobW9kZSkpOworIAor LSAgcmV0dXJuIGZhbHNlOworKyAgcmV0dXJuIHJldDsKKyB9CisgCisgLyogUmV0dXJuIHRoZSBy ZWdpc3RlciBjbGFzcyBvZiBhIHNjcmF0Y2ggcmVnaXN0ZXIgbmVlZGVkIHRvIGNvcHkgSU4gaW50 bworQEAgLTEyMjg3LDYgKzEyNDYzLDcgQEAgcnM2MDAwX3NlY29uZGFyeV9yZWxvYWRfY2xhc3Mg KGVudW0gcmVnXworIAkJCSAgICAgICBlbnVtIG1hY2hpbmVfbW9kZSBtb2RlLAorIAkJCSAgICAg ICBydHggaW4pCisgeworKyAgZW51bSByZWdfY2xhc3MgcmV0ID0gTk9fUkVHUzsKKyAgIGludCBy ZWdubzsKKyAKKyAgIGlmIChUQVJHRVRfRUxGIHx8IChERUZBVUxUX0FCSSA9PSBBQklfREFSV0lO CitAQCAtMTIzMDcsNTggKzEyNDg0LDc1IEBAIHJzNjAwMF9zZWNvbmRhcnlfcmVsb2FkX2NsYXNz IChlbnVtIHJlZ18KKyAJICAgICAgfHwgR0VUX0NPREUgKGluKSA9PSBISUdICisgCSAgICAgIHx8 IEdFVF9DT0RFIChpbikgPT0gTEFCRUxfUkVGCisgCSAgICAgIHx8IEdFVF9DT0RFIChpbikgPT0g Q09OU1QpKQorLQlyZXR1cm4gQkFTRV9SRUdTOworKwlyZXQgPSBCQVNFX1JFR1M7CisgICAgIH0K KyAKKy0gIGlmIChHRVRfQ09ERSAoaW4pID09IFJFRykKKysgIGlmIChyZXQgPT0gTk9fUkVHUykK KyAgICAgeworLSAgICAgIHJlZ25vID0gUkVHTk8gKGluKTsKKy0gICAgICBpZiAocmVnbm8gPj0g RklSU1RfUFNFVURPX1JFR0lTVEVSKQorKyAgICAgIGlmIChHRVRfQ09ERSAoaW4pID09IFJFRykK KysJeworKwkgIHJlZ25vID0gUkVHTk8gKGluKTsKKysJICBpZiAocmVnbm8gPj0gRklSU1RfUFNF VURPX1JFR0lTVEVSKQorKwkgICAgeworKwkgICAgICByZWdubyA9IHRydWVfcmVnbnVtIChpbik7 CisrCSAgICAgIGlmIChyZWdubyA+PSBGSVJTVF9QU0VVRE9fUkVHSVNURVIpCisrCQlyZWdubyA9 IC0xOworKwkgICAgfQorKwl9CisrICAgICAgZWxzZSBpZiAoR0VUX0NPREUgKGluKSA9PSBTVUJS RUcpCisgCXsKKyAJICByZWdubyA9IHRydWVfcmVnbnVtIChpbik7CisgCSAgaWYgKHJlZ25vID49 IEZJUlNUX1BTRVVET19SRUdJU1RFUikKKyAJICAgIHJlZ25vID0gLTE7CisgCX0KKy0gICAgfQor LSAgZWxzZSBpZiAoR0VUX0NPREUgKGluKSA9PSBTVUJSRUcpCistICAgIHsKKy0gICAgICByZWdu byA9IHRydWVfcmVnbnVtIChpbik7CistICAgICAgaWYgKHJlZ25vID49IEZJUlNUX1BTRVVET19S RUdJU1RFUikKKysgICAgICBlbHNlCisgCXJlZ25vID0gLTE7CistICAgIH0KKy0gIGVsc2UKKy0g ICAgcmVnbm8gPSAtMTsKKyAKKy0gIC8qIFdlIGNhbiBwbGFjZSBhbnl0aGluZyBpbnRvIEdFTkVS QUxfUkVHUyBhbmQgY2FuIHB1dCBHRU5FUkFMX1JFR1MKKy0gICAgIGludG8gYW55dGhpbmcuICAq LworLSAgaWYgKHJjbGFzcyA9PSBHRU5FUkFMX1JFR1MgfHwgcmNsYXNzID09IEJBU0VfUkVHUwor LSAgICAgIHx8IChyZWdubyA+PSAwICYmIElOVF9SRUdOT19QIChyZWdubykpKQorLSAgICByZXR1 cm4gTk9fUkVHUzsKKy0KKy0gIC8qIENvbnN0YW50cywgbWVtb3J5LCBhbmQgRlAgcmVnaXN0ZXJz IGNhbiBnbyBpbnRvIEZQIHJlZ2lzdGVycy4gICovCistICBpZiAoKHJlZ25vID09IC0xIHx8IEZQ X1JFR05PX1AgKHJlZ25vKSkKKy0gICAgICAmJiAocmNsYXNzID09IEZMT0FUX1JFR1MgfHwgcmNs YXNzID09IE5PTl9TUEVDSUFMX1JFR1MpKQorLSAgICByZXR1cm4gKG1vZGUgIT0gU0Rtb2RlKSA/ IE5PX1JFR1MgOiBHRU5FUkFMX1JFR1M7CistCistICAvKiBNZW1vcnksIGFuZCBGUC9hbHRpdmVj IHJlZ2lzdGVycyBjYW4gZ28gaW50byBmcC9hbHRpdmVjIHJlZ2lzdGVycyB1bmRlcgorLSAgICAg VlNYLiAgKi8KKy0gIGlmIChUQVJHRVRfVlNYCistICAgICAgJiYgKHJlZ25vID09IC0xIHx8IFZT WF9SRUdOT19QIChyZWdubykpCistICAgICAgJiYgVlNYX1JFR19DTEFTU19QIChyY2xhc3MpKQor LSAgICByZXR1cm4gTk9fUkVHUzsKKysgICAgICAvKiBXZSBjYW4gcGxhY2UgYW55dGhpbmcgaW50 byBHRU5FUkFMX1JFR1MgYW5kIGNhbiBwdXQgR0VORVJBTF9SRUdTCisrCSBpbnRvIGFueXRoaW5n LiAgKi8KKysgICAgICBpZiAocmNsYXNzID09IEdFTkVSQUxfUkVHUyB8fCByY2xhc3MgPT0gQkFT RV9SRUdTCisrCSAgfHwgKHJlZ25vID49IDAgJiYgSU5UX1JFR05PX1AgKHJlZ25vKSkpCisrCXJl dCA9IE5PX1JFR1M7CisrCisrICAgICAgLyogQ29uc3RhbnRzLCBtZW1vcnksIGFuZCBGUCByZWdp c3RlcnMgY2FuIGdvIGludG8gRlAgcmVnaXN0ZXJzLiAgKi8KKysgICAgICBlbHNlIGlmICgocmVn bm8gPT0gLTEgfHwgRlBfUkVHTk9fUCAocmVnbm8pKQorKwkgICAgICAgJiYgKHJjbGFzcyA9PSBG TE9BVF9SRUdTIHx8IHJjbGFzcyA9PSBOT05fU1BFQ0lBTF9SRUdTKSkKKysJcmV0ID0gKG1vZGUg IT0gU0Rtb2RlKSA/IE5PX1JFR1MgOiBHRU5FUkFMX1JFR1M7CisrCisrICAgICAgLyogTWVtb3J5 LCBhbmQgRlAvYWx0aXZlYyByZWdpc3RlcnMgY2FuIGdvIGludG8gZnAvYWx0aXZlYyByZWdpc3Rl cnMgdW5kZXIKKysJIFZTWC4gICovCisrICAgICAgZWxzZSBpZiAoVEFSR0VUX1ZTWAorKwkgICAg ICAgJiYgKHJlZ25vID09IC0xIHx8IFZTWF9SRUdOT19QIChyZWdubykpCisrCSAgICAgICAmJiBW U1hfUkVHX0NMQVNTX1AgKHJjbGFzcykpCisrCXJldCA9IE5PX1JFR1M7CisrCisrICAgICAgLyog TWVtb3J5LCBhbmQgQWx0aVZlYyByZWdpc3RlcnMgY2FuIGdvIGludG8gQWx0aVZlYyByZWdpc3Rl cnMuICAqLworKyAgICAgIGVsc2UgaWYgKChyZWdubyA9PSAtMSB8fCBBTFRJVkVDX1JFR05PX1Ag KHJlZ25vKSkKKysJICAgICAgICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JFR1MpCisrCXJldCA9IE5P X1JFR1M7CisrCisrICAgICAgLyogV2UgY2FuIGNvcHkgYW1vbmcgdGhlIENSIHJlZ2lzdGVycy4g ICovCisrICAgICAgZWxzZSBpZiAoKHJjbGFzcyA9PSBDUl9SRUdTIHx8IHJjbGFzcyA9PSBDUjBf UkVHUykKKysJICAgICAgICYmIHJlZ25vID49IDAgJiYgQ1JfUkVHTk9fUCAocmVnbm8pKQorKwly ZXQgPSBOT19SRUdTOworKworKyAgICAgIC8qIE90aGVyd2lzZSwgd2UgbmVlZCBHRU5FUkFMX1JF R1MuICAqLworKyAgICAgIGVsc2UKKysJcmV0ID0gR0VORVJBTF9SRUdTOworKyAgICB9CisgCist ICAvKiBNZW1vcnksIGFuZCBBbHRpVmVjIHJlZ2lzdGVycyBjYW4gZ28gaW50byBBbHRpVmVjIHJl Z2lzdGVycy4gICovCistICBpZiAoKHJlZ25vID09IC0xIHx8IEFMVElWRUNfUkVHTk9fUCAocmVn bm8pKQorLSAgICAgICYmIHJjbGFzcyA9PSBBTFRJVkVDX1JFR1MpCistICAgIHJldHVybiBOT19S RUdTOworLQorLSAgLyogV2UgY2FuIGNvcHkgYW1vbmcgdGhlIENSIHJlZ2lzdGVycy4gICovCist ICBpZiAoKHJjbGFzcyA9PSBDUl9SRUdTIHx8IHJjbGFzcyA9PSBDUjBfUkVHUykKKy0gICAgICAm JiByZWdubyA+PSAwICYmIENSX1JFR05PX1AgKHJlZ25vKSkKKy0gICAgcmV0dXJuIE5PX1JFR1M7 CisrICBpZiAoVEFSR0VUX0RFQlVHX0FERFIpCisrICAgIHsKKysgICAgICBmcHJpbnRmIChzdGRl cnIsCisrCSAgICAgICAicnM2MDAwX3NlY29uZGFyeV9yZWxvYWRfY2xhc3MsIHJldHVybiAlcywg cmNsYXNzID0gJXMsICIKKysJICAgICAgICJtb2RlID0gJXMsIGlucHV0IHJ0eDpcbiIsCisrCSAg ICAgICByZWdfY2xhc3NfbmFtZXNbcmV0XSwgcmVnX2NsYXNzX25hbWVzW3JjbGFzc10sCisrCSAg ICAgICBHRVRfTU9ERV9OQU1FIChtb2RlKSk7CisrICAgICAgZGVidWdfcnR4IChpbik7CisrICAg ICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKKysgICAgfQorIAorLSAgLyogT3RoZXJ3aXNlLCB3 ZSBuZWVkIEdFTkVSQUxfUkVHUy4gICovCistICByZXR1cm4gR0VORVJBTF9SRUdTOworKyAgcmV0 dXJuIHJldDsKKyB9CisgCisgLyogUmV0dXJuIG5vbnplcm8gaWYgZm9yIENMQVNTIGEgbW9kZSBj aGFuZ2UgZnJvbSBGUk9NIHRvIFRPIGlzIGludmFsaWQuICAqLworQEAgLTEyMzY4LDE5ICsxMjU2 MiwyOSBAQCByczYwMDBfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzIChlbnVtIG1hCisgCQkJCSBl bnVtIG1hY2hpbmVfbW9kZSB0bywKKyAJCQkJIGVudW0gcmVnX2NsYXNzIHJjbGFzcykKKyB7Cist ICByZXR1cm4gKEdFVF9NT0RFX1NJWkUgKGZyb20pICE9IEdFVF9NT0RFX1NJWkUgKHRvKQorLQkg ID8gKChHRVRfTU9ERV9TSVpFIChmcm9tKSA8IDggfHwgR0VUX01PREVfU0laRSAodG8pIDwgOAor LQkgICAgICB8fCBUQVJHRVRfSUVFRVFVQUQpCistCSAgICAgJiYgcmVnX2NsYXNzZXNfaW50ZXJz ZWN0X3AgKEZMT0FUX1JFR1MsIHJjbGFzcykpCistCSAgOiAoKChUQVJHRVRfRTUwMF9ET1VCTEUK Ky0JICAgICAgICYmICgoKCh0bykgPT0gREZtb2RlKSArICgoZnJvbSkgPT0gREZtb2RlKSkgPT0g MQorLQkJICAgfHwgKCgodG8pID09IFRGbW9kZSkgKyAoKGZyb20pID09IFRGbW9kZSkpID09IDEK Ky0JCSAgIHx8ICgoKHRvKSA9PSBERG1vZGUpICsgKChmcm9tKSA9PSBERG1vZGUpKSA9PSAxCist CQkgICB8fCAoKCh0bykgPT0gVERtb2RlKSArICgoZnJvbSkgPT0gVERtb2RlKSkgPT0gMQorLQkJ ICAgfHwgKCgodG8pID09IERJbW9kZSkgKyAoKGZyb20pID09IERJbW9kZSkpID09IDEpKQorLQkg ICAgICB8fCAoVEFSR0VUX1NQRQorLQkJICAmJiAoU1BFX1ZFQ1RPUl9NT0RFIChmcm9tKSArIFNQ RV9WRUNUT1JfTU9ERSAodG8pKSA9PSAxKSkKKy0JICAgICAmJiByZWdfY2xhc3Nlc19pbnRlcnNl Y3RfcCAoR0VORVJBTF9SRUdTLCByY2xhc3MpKSk7CisrICBib29sIHJldCA9IChHRVRfTU9ERV9T SVpFIChmcm9tKSAhPSBHRVRfTU9ERV9TSVpFICh0bykKKysJICAgICAgPyAoKEdFVF9NT0RFX1NJ WkUgKGZyb20pIDwgOCB8fCBHRVRfTU9ERV9TSVpFICh0bykgPCA4CisrCQkgIHx8IFRBUkdFVF9J RUVFUVVBRCkKKysJCSAmJiByZWdfY2xhc3Nlc19pbnRlcnNlY3RfcCAoRkxPQVRfUkVHUywgcmNs YXNzKSkKKysJICAgICAgOiAoKChUQVJHRVRfRTUwMF9ET1VCTEUKKysJCSAgICYmICgoKCh0bykg PT0gREZtb2RlKSArICgoZnJvbSkgPT0gREZtb2RlKSkgPT0gMQorKwkJICAgICAgIHx8ICgoKHRv KSA9PSBURm1vZGUpICsgKChmcm9tKSA9PSBURm1vZGUpKSA9PSAxCisrCQkgICAgICAgfHwgKCgo dG8pID09IEREbW9kZSkgKyAoKGZyb20pID09IEREbW9kZSkpID09IDEKKysJCSAgICAgICB8fCAo KCh0bykgPT0gVERtb2RlKSArICgoZnJvbSkgPT0gVERtb2RlKSkgPT0gMQorKwkJICAgICAgIHx8 ICgoKHRvKSA9PSBESW1vZGUpICsgKChmcm9tKSA9PSBESW1vZGUpKSA9PSAxKSkKKysJCSAgfHwg KFRBUkdFVF9TUEUKKysJCSAgICAgICYmIChTUEVfVkVDVE9SX01PREUgKGZyb20pICsgU1BFX1ZF Q1RPUl9NT0RFICh0bykpID09IDEpKQorKwkJICYmIHJlZ19jbGFzc2VzX2ludGVyc2VjdF9wIChH RU5FUkFMX1JFR1MsIHJjbGFzcykpKTsKKysKKysgIGlmIChUQVJHRVRfREVCVUdfQUREUikKKysg ICAgZnByaW50ZiAoc3RkZXJyLAorKwkgICAgICJyczYwMDBfY2Fubm90X2NoYW5nZV9tb2RlX2Ns YXNzLCByZXR1cm4gJXMsIGZyb20gPSAlcywgIgorKwkgICAgICJ0byA9ICVzLCByY2xhc3MgPSAl c1xuIiwKKysJICAgICByZXQgPyAidHJ1ZSIgOiAiZmFsc2UiLAorKwkgICAgIEdFVF9NT0RFX05B TUUgKGZyb20pLCBHRVRfTU9ERV9OQU1FICh0byksCisrCSAgICAgcmVnX2NsYXNzX25hbWVzW3Jj bGFzc10pOworKworKyAgcmV0dXJuIHJldDsKKyB9CisgDAorIC8qIEdpdmVuIGEgY29tcGFyaXNv biBvcGVyYXRpb24sIHJldHVybiB0aGUgYml0IG51bWJlciBpbiBDQ1IgdG8gdGVzdC4gIFdlCist LS0gZ2NjL2NvbmZpZy9yczYwMDAvdnN4Lm1kCShyZXZpc2lvbiAxNDQ3NTgpCisrKysgZ2NjL2Nv bmZpZy9yczYwMDAvdnN4Lm1kCShyZXZpc2lvbiAxNDQ4NDMpCitAQCAtNjgsNyArNjgsMTMgQEAg KGRlZmluZV9tb2RlX2F0dHIgVlNiaXQgWyhTSSAiMzIiKQorIAkJCSAoREkgIjY0IildKQorIAor IChkZWZpbmVfY29uc3RhbnRzCistICBbKFVOU1BFQ19WU1hfQ09OQ0FUX1YyREYJNTAwKV0pCisr ICBbKFVOU1BFQ19WU1hfQ09OQ0FUX1YyREYJNTAwKQorKyAgIChVTlNQRUNfVlNYX1hWQ1ZEUFNQ CQk1MDEpCisrICAgKFVOU1BFQ19WU1hfWFZDVkRQU1hXUwk1MDIpCisrICAgKFVOU1BFQ19WU1hf WFZDVkRQVVhXUwk1MDMpCisrICAgKFVOU1BFQ19WU1hfWFZDVlNQRFAJCTUwNCkKKysgICAoVU5T UEVDX1ZTWF9YVkNWU1hXRFAJNTA1KQorKyAgIChVTlNQRUNfVlNYX1hWQ1ZVWFdEUAk1MDYpXSkK KyAKKyA7OyBWU1ggbW92ZXMKKyAoZGVmaW5lX2luc24gIip2c3hfbW92PG1vZGU+IgorQEAgLTI0 NSw3ICsyNTEsNyBAQCAoZGVmaW5lX2luc24gIip2c3hfYWJzPG1vZGU+MiIKKyAgICJ4dmFiczxW U3M+ICV4MCwleDEiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisgCistKGRl ZmluZV9pbnNuICIqdnN4X25hYnM8bW9kZT4yIgorKyhkZWZpbmVfaW5zbiAidnN4X25hYnM8bW9k ZT4yIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VlNYX0YgMCAidnN4X3JlZ2lzdGVyX29wZXJh bmQiICI9PFZTcj4iKQorICAgICAgICAgKG5lZzpWU1hfRgorIAkgKGFiczpWU1hfRgorQEAgLTQx NywxNCArNDIzLDE0IEBAIChkZWZpbmVfaW5zbiAiKnZzeF9mdHJ1bmM8bW9kZT4yIgorICAgInh2 cjxWU3M+cGl6ICV4MCwleDEiCisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkKKyAK Ky0oZGVmaW5lX2luc24gIip2c3hfZmxvYXQ8VlNpPjxtb2RlPjIiCisrKGRlZmluZV9pbnNuICJ2 c3hfZmxvYXQ8VlNpPjxtb2RlPjIiCisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWU1hfRiAwICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj08VlNyPiIpCisgCShmbG9hdDpWU1hfRiAobWF0Y2hfb3Bl cmFuZDo8VlNJPiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIjxWU3I+IikpKV0KKyAgICJWRUNU T1JfVU5JVF9WU1hfUCAoPE1PREU+bW9kZSkiCisgICAieHZjdnN4PFZTYz48VlNzPiAleDAsJXgx IgorICAgWyhzZXRfYXR0ciAidHlwZSIgInZlY2Zsb2F0IildKQorIAorLShkZWZpbmVfaW5zbiAi KnZzeF9mbG9hdHVuczxWU2k+PG1vZGU+MiIKKysoZGVmaW5lX2luc24gInZzeF9mbG9hdHVuczxW U2k+PG1vZGU+MiIKKyAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZTWF9GIDAgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiPTxWU3I+IikKKyAJKHVuc2lnbmVkX2Zsb2F0OlZTWF9GIChtYXRjaF9vcGVy YW5kOjxWU0k+IDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPFZTcj4iKSkpXQorICAgIlZFQ1RP Ul9VTklUX1ZTWF9QICg8TU9ERT5tb2RlKSIKK0BAIC00NDYsNiArNDUyLDYyIEBAIChkZWZpbmVf aW5zbiAiKnZzeF9maXh1bnNfdHJ1bmM8bW9kZT48VlMKKyAgIFsoc2V0X2F0dHIgInR5cGUiICJ2 ZWNmbG9hdCIpXSkKKyAKKyAMCisrOzsgVlNYIGNvbnZlcnQgdG8vZnJvbSBkb3VibGUgdmVjdG9y CisrCisrOzsgQ29udmVydCBmcm9tIDY0LWJpdCB0byAzMi1iaXQgdHlwZXMKKys7OyBOb3RlLCBm YXZvciB0aGUgQWx0aXZlYyByZWdpc3RlcnMgc2luY2UgdGhlIHVzdWFsIHVzZSBvZiB0aGVzZSBp bnN0cnVjdGlvbnMKKys7OyBpcyBpbiB2ZWN0b3IgY29udmVydHMgYW5kIHdlIG5lZWQgdG8gdXNl IHRoZSBBbHRpdmVjIHZwZXJtIGluc3RydWN0aW9uLgorKworKyhkZWZpbmVfaW5zbiAidnN4X3h2 Y3ZkcHNwIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIj12LD93YSIpCisrCSh1bnNwZWM6VjRTRiBbKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2 c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkLHdhIildCisrCQkgICAgIFVOU1BFQ19WU1hfWFZDVkRQ U1ApKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgorKyAgInh2Y3ZkcHNwICV4 MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrCisrKGRlZmluZV9p bnNuICJ2c3hfeHZjdmRwc3h3cyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0kgMCAidnN4 X3JlZ2lzdGVyX29wZXJhbmQiICI9diw/d2EiKQorKwkodW5zcGVjOlY0U0kgWyhtYXRjaF9vcGVy YW5kOlYyREYgMSAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3ZCx3YSIpXQorKwkJICAgICBVTlNQ RUNfVlNYX1hWQ1ZEUFNYV1MpKV0KKysgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgor KyAgInh2Y3ZkcHN4d3MgJXgwLCV4MSIKKysgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNmbG9hdCIp XSkKKysKKysoZGVmaW5lX2luc24gInZzeF94dmN2ZHB1eHdzIgorKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6VjRTSSAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj12LD93YSIpCisrCSh1bnNwZWM6 VjRTSSBbKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkLHdh IildCisrCQkgICAgIFVOU1BFQ19WU1hfWFZDVkRQVVhXUykpXQorKyAgIlZFQ1RPUl9VTklUX1ZT WF9QIChWMkRGbW9kZSkiCisrICAieHZjdmRwdXh3cyAleDAsJXgxIgorKyAgWyhzZXRfYXR0ciAi dHlwZSIgInZlY2Zsb2F0IildKQorKworKzs7IENvbnZlcnQgZnJvbSAzMi1iaXQgdG8gNjQtYml0 IHR5cGVzCisrKGRlZmluZV9pbnNuICJ2c3hfeHZjdnNwZHAiCisrICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdkLD93YSIpCisrCSh1bnNwZWM6 VjJERiBbKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndmLHdh IildCisrCQkgICAgIFVOU1BFQ19WU1hfWFZDVlNQRFApKV0KKysgICJWRUNUT1JfVU5JVF9WU1hf UCAoVjJERm1vZGUpIgorKyAgInh2Y3ZzcGRwICV4MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBl IiAidmVjZmxvYXQiKV0pCisrCisrKGRlZmluZV9pbnNuICJ2c3hfeHZjdnN4d2RwIgorKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIj13ZCw/d2Ei KQorKwkodW5zcGVjOlYyREYgWyhtYXRjaF9vcGVyYW5kOlY0U0kgMSAidnN4X3JlZ2lzdGVyX29w ZXJhbmQiICJ3Zix3YSIpXQorKwkJICAgICBVTlNQRUNfVlNYX1hWQ1ZTWFdEUCkpXQorKyAgIlZF Q1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCisrICAieHZjdnN4d2RwICV4MCwleDEiCisrICBb KHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrCisrKGRlZmluZV9pbnNuICJ2c3hfeHZj dnV4d2RwIgorKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0ZXJfb3Bl cmFuZCIgIj13ZCw/d2EiKQorKwkodW5zcGVjOlYyREYgWyhtYXRjaF9vcGVyYW5kOlY0U0kgMSAi dnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3Zix3YSIpXQorKwkJICAgICBVTlNQRUNfVlNYX1hWQ1ZV WFdEUCkpXQorKyAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCisrICAieHZjdnV4d2Rw ICV4MCwleDEiCisrICBbKHNldF9hdHRyICJ0eXBlIiAidmVjZmxvYXQiKV0pCisrCisrDAorIDs7 IFZTWCBzY2FsYXIgZG91YmxlIHByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zCisg KGRlZmluZV9pbnNuIip2c3hfYWRkZGYzIgorICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REYgMCAi dnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d3MiKQorQEAgLTc1Myw4ICs4MTUsOCBAQCAoZGVmaW5l X2luc24gIip2c3hfYW5kYzxtb2RlPjMiCisgKGRlZmluZV9pbnNuICJ2c3hfY29uY2F0X3YyZGYi CisgICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAi PXdkLD93YSIpCisgCSh1bnNwZWM6VjJERgorLQkgWyhtYXRjaF9vcGVyYW5kOkRGIDEgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiZix3YSIpCistCSAgKG1hdGNoX29wZXJhbmQ6REYgMiAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICJmLHdhIildCisrCSBbKG1hdGNoX29wZXJhbmQ6REYgMSAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICJ3cyx3YSIpCisrCSAgKG1hdGNoX29wZXJhbmQ6REYgMiAidnN4X3Jl Z2lzdGVyX29wZXJhbmQiICJ3cyx3YSIpXQorIAkgVU5TUEVDX1ZTWF9DT05DQVRfVjJERikpXQor ICAgIlZFQ1RPUl9VTklUX1ZTWF9QIChWMkRGbW9kZSkiCisgICAieHhwZXJtZGkgJXgwLCV4MSwl eDIsMCIKK0BAIC03NjIsMzIgKzgyNCwzNyBAQCAoZGVmaW5lX2luc24gInZzeF9jb25jYXRfdjJk ZiIKKyAKKyA7OyBTZXQgYSBkb3VibGUgaW50byBvbmUgZWxlbWVudAorIChkZWZpbmVfaW5zbiAi dnN4X3NldF92MmRmIgorLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIj13ZCIpCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMkRGIDAgInZzeF9y ZWdpc3Rlcl9vcGVyYW5kIiAiPXdkLD93YSIpCisgCSh2ZWNfbWVyZ2U6VjJERgorLQkgKG1hdGNo X29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkIikKKy0JICh2ZWNfZHVw bGljYXRlOlYyREYgKG1hdGNoX29wZXJhbmQ6REYgMiAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICJ3 cyIpKQorLQkgKG1hdGNoX29wZXJhbmQ6UUkgMyAidTViaXRfY2ludF9vcGVyYW5kIiAiaSIpKSld CisrCSAobWF0Y2hfb3BlcmFuZDpWMkRGIDEgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAid2Qsd2Ei KQorKwkgKHZlY19kdXBsaWNhdGU6VjJERiAobWF0Y2hfb3BlcmFuZDpERiAyICJ2c3hfcmVnaXN0 ZXJfb3BlcmFuZCIgIndzLGYiKSkKKysJIChtYXRjaF9vcGVyYW5kOlFJIDMgInU1Yml0X2NpbnRf b3BlcmFuZCIgImksaSIpKSldCisgICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSIKKyB7 CistICBvcGVyYW5kc1szXSA9IEdFTl9JTlQgKElOVFZBTCAob3BlcmFuZHNbM10pICYgMSk7Cist ICByZXR1cm4gXCJ4eHBlcm1kaSAleDAsJXgxLCV4MiwlM1wiOworKyAgaWYgKElOVFZBTCAob3Bl cmFuZHNbM10pID09IDApCisrICAgIHJldHVybiBcInh4cGVybWRpICV4MCwleDEsJXgyLDFcIjsK KysgIGVsc2UgaWYgKElOVFZBTCAob3BlcmFuZHNbM10pID09IDEpCisrICAgIHJldHVybiBcInh4 cGVybWRpICV4MCwleDIsJXgxLDBcIjsKKysgIGVsc2UKKysgICAgZ2NjX3VucmVhY2hhYmxlICgp OworIH0KKyAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtIildKQorIAorIDs7IEV4dHJhY3Qg YSBERiBlbGVtZW50IGZyb20gVjJERgorIChkZWZpbmVfaW5zbiAidnN4X2V4dHJhY3RfdjJkZiIK Ky0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdz IikKKy0JKHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6VjJERiAxICJ2c3hfcmVnaXN0ZXJf b3BlcmFuZCIgIndkIikKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgInZzeF9yZWdpc3Rl cl9vcGVyYW5kIiAiPXdzLGYsP3dhIikKKysJKHZlY19zZWxlY3Q6REYgKG1hdGNoX29wZXJhbmQ6 VjJERiAxICJ2c3hfcmVnaXN0ZXJfb3BlcmFuZCIgIndkLHdkLHdhIikKKyAJCSAgICAgICAocGFy YWxsZWwKKy0JCQlbKG1hdGNoX29wZXJhbmQ6UUkgMiAidTViaXRfY2ludF9vcGVyYW5kIiAiaSIp XSkpKV0KKysJCQlbKG1hdGNoX29wZXJhbmQ6UUkgMiAidTViaXRfY2ludF9vcGVyYW5kIiAiaSxp LGkiKV0pKSldCisgICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSIKKyB7CistICBvcGVy YW5kc1szXSA9IEdFTl9JTlQgKElOVFZBTCAob3BlcmFuZHNbMl0pICYgMSk7CisrICBnY2NfYXNz ZXJ0IChVSU5UVkFMIChvcGVyYW5kc1syXSkgPD0gMSk7CisrICBvcGVyYW5kc1szXSA9IEdFTl9J TlQgKElOVFZBTCAob3BlcmFuZHNbMl0pIDw8IDEpOworICAgcmV0dXJuIFwieHhwZXJtZGkgJXgw LCV4MSwleDEsJTNcIjsKKyB9CisgICBbKHNldF9hdHRyICJ0eXBlIiAidmVjcGVybSIpXSkKKyAK Ky07OyBHZW5lcmFsIFYyREYgcGVybXV0ZQorKzs7IEdlbmVyYWwgVjJERiBwZXJtdXRlLCBleHRy YWN0X3toaWdoLGxvdyxldmVuLG9kZH0KKyAoZGVmaW5lX2luc24gInZzeF94eHBlcm1kaSIKKyAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d2Qi KQorIAkodmVjX2NvbmNhdDpWMkRGCitAQCAtNzk5LDYgKzg2Niw3IEBAIChkZWZpbmVfaW5zbiAi dnN4X3h4cGVybWRpIgorIAkJCSBbKG1hdGNoX29wZXJhbmQ6UUkgNCAidTViaXRfY2ludF9vcGVy YW5kIiAiaSIpXSkpKSldCisgICAiVkVDVE9SX1VOSVRfVlNYX1AgKFYyREZtb2RlKSIKKyB7Cisr ICBnY2NfYXNzZXJ0ICgoVUlOVFZBTCAob3BlcmFuZHNbMl0pIDw9IDEpICYmIChVSU5UVkFMIChv cGVyYW5kc1s0XSkgPD0gMSkpOworICAgb3BlcmFuZHNbNV0gPSBHRU5fSU5UICgoKElOVFZBTCAo b3BlcmFuZHNbMl0pICYgMSkgPDwgMSkKKyAJCQkgfCAoSU5UVkFMIChvcGVyYW5kc1s0XSkgJiAx KSk7CisgICByZXR1cm4gXCJ4eHBlcm1kaSAleDAsJXgxLCV4MywlNVwiOworQEAgLTgwNywxNCAr ODc1LDE1IEBAIChkZWZpbmVfaW5zbiAidnN4X3h4cGVybWRpIgorIAorIDs7IFYyREYgc3BsYXQK KyAoZGVmaW5lX2luc24gInZzeF9zcGxhdHYyZGYiCistICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW MkRGIDAgInZzeF9yZWdpc3Rlcl9vcGVyYW5kIiAiPXdkLHdkIikKKysgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlYyREYgMCAidnN4X3JlZ2lzdGVyX29wZXJhbmQiICI9d2Qsd2Qsd2QiKQorIAkodmVj X2R1cGxpY2F0ZTpWMkRGCistCSAobWF0Y2hfb3BlcmFuZDpERiAxICJpbnB1dF9vcGVyYW5kIiAi d3MsWiIpKSldCisrCSAobWF0Y2hfb3BlcmFuZDpERiAxICJpbnB1dF9vcGVyYW5kIiAid3MsZixa IikpKV0KKyAgICJWRUNUT1JfVU5JVF9WU1hfUCAoVjJERm1vZGUpIgorICAgIkAKKyAgICB4eHBl cm1kaSAleDAsJXgxLCV4MSwwCisrICAgeHhwZXJtZGkgJXgwLCV4MSwleDEsMAorICAgIGx4dmRz eCAleDAsJXkxIgorLSAgWyhzZXRfYXR0ciAidHlwZSIgInZlY3Blcm0sdmVjbG9hZCIpXSkKKysg IFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtLHZlY3Blcm0sdmVjbG9hZCIpXSkKKyAKKyA7OyBW NFNGIHNwbGF0CisgKGRlZmluZV9pbnNuICIqdnN4X3h4c3BsdHciCitAQCAtODI4LDE0ICs4OTcs MTQgQEAgKGRlZmluZV9pbnNuICIqdnN4X3h4c3BsdHciCisgICBbKHNldF9hdHRyICJ0eXBlIiAi dmVjcGVybSIpXSkKKyAKKyA7OyBWNFNGIGludGVybGVhdmUKKy0oZGVmaW5lX2luc24gIip2c3hf eHhtcmdodyIKKy0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj12IikKKy0gICAgICAgICh2ZWNfbWVyZ2U6VjRTRiAodmVjX3NlbGVjdDpWNFNGIChtYXRj aF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorKyhkZWZpbmVfaW5zbiAi dnN4X3h4bXJnaHciCisrICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9d2YiKQorKyAgICAgICAgKHZlY19tZXJnZTpWNFNGICh2ZWNfc2VsZWN0OlY0U0Yg KG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAid2YiKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmFsbGVsIFsoY29uc3RfaW50IDAp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDMpXSkpCistICAgICAgICAgICAgICAgICAg ICAgICAgKHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDIgInJlZ2lzdGVyX29w ZXJhbmQiICJ2IikKKysgICAgICAgICAgICAgICAgICAgICAgICAodmVjX3NlbGVjdDpWNFNGICht YXRjaF9vcGVyYW5kOlY0U0YgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIndmIikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAyKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u c3RfaW50IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgMykKK0BAIC04NDUsMTUgKzkxNCwxNSBAQCAoZGVmaW5lX2luc24g Iip2c3hfeHhtcmdodyIKKyAgICJ4eG1yZ2h3ICV4MCwleDEsJXgyIgorICAgWyhzZXRfYXR0ciAi dHlwZSIgInZlY3Blcm0iKV0pCisgCistKGRlZmluZV9pbnNuICIqdnN4X3h4bXJnbHciCistICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCisrKGRl ZmluZV9pbnNuICJ2c3hfeHhtcmdsdyIKKysgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlY0U0YgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj13ZiIpCisgICAgICAgICAodmVjX21lcmdlOlY0U0YKKy0JICh2 ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6VjRTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi diIpCisrCSAodmVjX3NlbGVjdDpWNFNGIChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIndmIikKKyAJCQkgIChwYXJhbGxlbCBbKGNvbnN0X2ludCAyKQorIAkJCQkgICAg IChjb25zdF9pbnQgMCkKKyAJCQkJICAgICAoY29uc3RfaW50IDMpCisgCQkJCSAgICAgKGNvbnN0 X2ludCAxKV0pKQorLQkgKHZlY19zZWxlY3Q6VjRTRiAobWF0Y2hfb3BlcmFuZDpWNFNGIDIgInJl Z2lzdGVyX29wZXJhbmQiICJ2IikKKysJICh2ZWNfc2VsZWN0OlY0U0YgKG1hdGNoX29wZXJhbmQ6 VjRTRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAid2YiKQorIAkJCSAgKHBhcmFsbGVsIFsoY29uc3Rf aW50IDApCisgCQkJCSAgICAgKGNvbnN0X2ludCAyKQorIAkJCQkgICAgIChjb25zdF9pbnQgMSkK K0BAIC04NjIsMyArOTMxLDI2IEBAIChkZWZpbmVfaW5zbiAiKnZzeF94eG1yZ2x3IgorICAgIlZF Q1RPUl9VTklUX1ZTWF9QIChWNFNGbW9kZSkiCisgICAieHhtcmdsdyAleDAsJXgxLCV4MiIKKyAg IFsoc2V0X2F0dHIgInR5cGUiICJ2ZWNwZXJtIildKQorKworKwwKKys7OyBSZWxvYWQgcGF0dGVy bnMgZm9yIFZTWCBsb2Fkcy9zdG9yZXMuICBXZSBuZWVkIGEgc2NyYXRjaCByZWdpc3RlciB0byBj b252ZXJ0CisrOzsgdGhlIHN0YWNrIHRlbXBvcmFyeSBhZGRyZXNzIGZyb20gcmVnK29mZnNldCB0 byByZWcrcmVnIGFkZHJlc3NpbmcuCisrKGRlZmluZV9leHBhbmQgInZzeF9yZWxvYWRfPFZTWF9M Om1vZGU+XzxQOnB0cnNpemU+X3RvX21lbSIKKysgIFsocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5k OlZTWF9MIDAgIm1lbW9yeV9vcGVyYW5kIiAiIikKKysgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlZTWF9MIDEgInJlZ2lzdGVyX29wZXJhbmQiICI9d2EiKQorKyAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6UCAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZiIildKV0KKysgICJWRUNUT1Jf TUVNX1ZTWF9QICg8TU9ERT5tb2RlKSIKKyt7CisrICByczYwMDBfdmVjdG9yX3NlY29uZGFyeV9y ZWxvYWQgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0sIHRydWUpOworKyAg RE9ORTsKKyt9KQorKworKyhkZWZpbmVfZXhwYW5kICJ2c3hfcmVsb2FkXzxWU1hfTDptb2RlPl88 UDpwdHJzaXplPl90b19yZWciCisrICBbKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpWU1hfTCAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXdhIikKKysgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlZTWF9MIDEgIm1lbW9yeV9vcGVyYW5kIiAiIikKKysgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlAgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mYiIpXSldCisrICAiVkVDVE9SX01FTV9WU1hf UCAoPE1PREU+bW9kZSkiCisreworKyAgcnM2MDAwX3ZlY3Rvcl9zZWNvbmRhcnlfcmVsb2FkIChv cGVyYW5kc1swXSwgb3BlcmFuZHNbMV0sIG9wZXJhbmRzWzJdLCBmYWxzZSk7CisrICBET05FOwor K30pCistLS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmgJKHJldmlzaW9uIDE0NDc1OCkKKysr KyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuaAkocmV2aXNpb24gMTQ0ODQzKQorQEAgLTMzODgs NyArMzM4OCw3IEBAIGVudW0gcnM2MDAwX2J1aWx0aW5zCisgICBWU1hfQlVJTFRJTl9YWFNQTFRX LAorICAgVlNYX0JVSUxUSU5fWFhTV0FQRCwKKyAKKy0gIC8qIENvbWJpbmUgVlNYL0FsdGl2ZWMg YnVpbHRpbnMuICAqLworKyAgLyogQ29tYmluZWQgVlNYL0FsdGl2ZWMgYnVpbHRpbnMuICAqLwor ICAgVkVDVE9SX0JVSUxUSU5fRkxPQVRfVjRTSV9WNFNGLAorICAgVkVDVE9SX0JVSUxUSU5fVU5T RkxPQVRfVjRTSV9WNFNGLAorICAgVkVDVE9SX0JVSUxUSU5fRklYX1Y0U0ZfVjRTSSwKKy0tLSBn Y2MvY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kCShyZXZpc2lvbiAxNDQ3NTgpCisrKysgZ2NjL2Nv bmZpZy9yczYwMDAvYWx0aXZlYy5tZAkocmV2aXNpb24gMTQ0ODQzKQorQEAgLTI2ODUsMyArMjY4 NSwyNyBAQCAoZGVmaW5lX2V4cGFuZCAidmVjX3VucGFja3VfZmxvYXRfbG9fdjhoCisgICBlbWl0 X2luc24gKGdlbl9hbHRpdmVjX3ZjZnV4IChvcGVyYW5kc1swXSwgdG1wLCBjb25zdDBfcnR4KSk7 CisgICBET05FOworIH0iKQorKworKwwKKys7OyBSZWxvYWQgcGF0dGVybnMgZm9yIEFsdGl2ZWMg bG9hZHMvc3RvcmVzLiAgV2UgbmVlZCBhIHNjcmF0Y2ggcmVnaXN0ZXIgdG8KKys7OyBjb252ZXJ0 IHRoZSBzdGFjayB0ZW1wb3JhcnkgYWRkcmVzcyBmcm9tIHJlZytvZmZzZXQgdG8gcmVnK3JlZyBh ZGRyZXNzaW5nLgorKworKyhkZWZpbmVfZXhwYW5kICJhbHRpdmVjX3JlbG9hZF88Vjptb2RlPl88 UDpwdHJzaXplPl90b19tZW0iCisrICBbKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpWIDAgIm1l bW9yeV9vcGVyYW5kIiAiIikKKysgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlYgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIj12IikKKysgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlAgMiAi cmVnaXN0ZXJfb3BlcmFuZCIgIj0mYiIpXSldCisrICAiVkVDVE9SX01FTV9BTFRJVkVDX1AgKDxN T0RFPm1vZGUpIgorK3sKKysgIHJzNjAwMF92ZWN0b3Jfc2Vjb25kYXJ5X3JlbG9hZCAob3BlcmFu ZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwgdHJ1ZSk7CisrICBET05FOworK30pCisr CisrKGRlZmluZV9leHBhbmQgImFsdGl2ZWNfcmVsb2FkXzxWOm1vZGU+XzxQOnB0cnNpemU+X3Rv X3JlZyIKKysgIFsocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOlYgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj12IikKKysgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlYgMSAibWVtb3J5X29wZXJh bmQiICIiKQorKyAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UCAyICJyZWdpc3Rlcl9vcGVy YW5kIiAiPSZiIildKV0KKysgICJWRUNUT1JfTUVNX0FMVElWRUNfUCAoPE1PREU+bW9kZSkiCisr eworKyAgcnM2MDAwX3ZlY3Rvcl9zZWNvbmRhcnlfcmVsb2FkIChvcGVyYW5kc1swXSwgb3BlcmFu ZHNbMV0sIG9wZXJhbmRzWzJdLCBmYWxzZSk7CisrICBET05FOworK30pCistLS0gZ2NjL2NvbmZp Zy9yczYwMDAvcnM2MDAwLm1kCShyZXZpc2lvbiAxNDQ3NTgpCisrKysgZ2NjL2NvbmZpZy9yczYw MDAvcnM2MDAwLm1kCShyZXZpc2lvbiAxNDQ4NDMpCitAQCAtMjIyLDYgKzIyMiwxMCBAQCAoZGVm aW5lX21vZGVfYXR0ciBkYml0cyBbKFFJICI1NiIpIChISSAiCisgOzsgSVNFTC9JU0VMNjQgdGFy Z2V0IHNlbGVjdGlvbgorIChkZWZpbmVfbW9kZV9hdHRyIHNlbCBbKFNJICIiKSAoREkgIjY0Iild KQorIAorKzs7IFN1ZmZpeCBmb3IgcmVsb2FkIHBhdHRlcm5zCisrKGRlZmluZV9tb2RlX2F0dHIg cHRyc2l6ZSBbKFNJICIzMmJpdCIpCisrCQkJICAgKERJICI2NGJpdCIpXSkKKysKKyAMCisgOzsg U3RhcnQgd2l0aCBmaXhlZC1wb2ludCBsb2FkIGFuZCBzdG9yZSBpbnNucy4gIEhlcmUgd2UgcHV0 IG9ubHkgdGhlIG1vcmUKKyA7OyBjb21wbGV4IGZvcm1zLiAgQmFzaWMgZGF0YSB0cmFuc2ZlciBp cyBkb25lIGxhdGVyLgorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3ZzeC1i dWlsdGluLTIuYwkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93 ZXJwYy92c3gtYnVpbHRpbi0yLmMJKHJldmlzaW9uIDE0NDg0MykKK0BAIC0wLDAgKzEsMjkgQEAK KysvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyBwb3dlcnBjKi0qLSogfSB9IH0gKi8KKysv KiB7IGRnLXNraXAtaWYgIiIgeyBwb3dlcnBjKi0qLWRhcndpbiogfSB7ICIqIiB9IHsgIiIgfSB9 ICovCisrLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgcG93ZXJwY192c3hfb2sgfSAq LworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tY3B1PXBvd2VyNyIgfSAqLworKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAieHZhZGRzcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ4dnN1YnNwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXIgInh2bXVsc3AiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi eHZkaXZzcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dm1heHNw IiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bWluc3AiIH0gfSAq LworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZzcXJ0c3AiIH0gfSAqLworKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZhYnNzcCIgfSB9ICovCisrLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dm5hYnNzcCIgfSB9ICovCisrCisrdm9pZCB1c2VfYnVp bHRpbnMgKF9fdmVjdG9yIGZsb2F0ICpwLCBfX3ZlY3RvciBmbG9hdCAqcSwgX192ZWN0b3IgZmxv YXQgKnIpCisreworKyAgX192ZWN0b3IgZmxvYXQgdG1wMSA9ICpxOworKyAgX192ZWN0b3IgZmxv YXQgdG1wMiA9ICpyOworKworKyAgKnArKyA9IF9fYnVpbHRpbl92c3hfeHZhZGRzcCAodG1wMSwg dG1wMik7CisrICAqcCsrID0gX19idWlsdGluX3ZzeF94dnN1YnNwICh0bXAxLCB0bXAyKTsKKysg ICpwKysgPSBfX2J1aWx0aW5fdnN4X3h2bXVsc3AgKHRtcDEsIHRtcDIpOworKyAgKnArKyA9IF9f YnVpbHRpbl92c3hfeHZkaXZzcCAodG1wMSwgdG1wMik7CisrICAqcCsrID0gX19idWlsdGluX3Zz eF94dm1heHNwICh0bXAxLCB0bXAyKTsKKysgICpwKysgPSBfX2J1aWx0aW5fdnN4X3h2bWluc3Ag KHRtcDEsIHRtcDIpOworKyAgKnArKyA9IF9fYnVpbHRpbl92c3hfeHZhYnNzcCAodG1wMSk7Cisr ICAqcCsrID0gX19idWlsdGluX3ZzeF94dm5hYnNzcCAodG1wMSk7CisrICAqcCAgID0gX19idWls dGluX3ZzeF94dnNxcnRzcCAodG1wMSk7CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9wb3dlcnBjL3ZzeC1idWlsdGluLTEuYwkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcG93ZXJwYy92c3gtYnVpbHRpbi0xLmMJKHJldmlzaW9uIDE0NDg0MykKK0BA IC0wLDAgKzEsMjkgQEAKKysvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeyBwb3dlcnBjKi0q LSogfSB9IH0gKi8KKysvKiB7IGRnLXNraXAtaWYgIiIgeyBwb3dlcnBjKi0qLWRhcndpbiogfSB7 ICIqIiB9IHsgIiIgfSB9ICovCisrLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgcG93 ZXJwY192c3hfb2sgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tY3B1PXBvd2VyNyIgfSAq LworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZhZGRkcCIgfSB9ICovCisrLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dnN1YmRwIiB9IH0gKi8KKysvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInh2bXVsZHAiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAieHZkaXZkcCIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyICJ4dm1heGRwIiB9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg Inh2bWluZHAiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZzcXJ0 ZHAiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAieHZhYnNkcCIgfSB9 ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ4dm5hYnNkcCIgfSB9ICovCisr Cisrdm9pZCB1c2VfYnVpbHRpbnMgKF9fdmVjdG9yIGRvdWJsZSAqcCwgX192ZWN0b3IgZG91Ymxl ICpxLCBfX3ZlY3RvciBkb3VibGUgKnIpCisreworKyAgX192ZWN0b3IgZG91YmxlIHRtcDEgPSAq cTsKKysgIF9fdmVjdG9yIGRvdWJsZSB0bXAyID0gKnI7CisrCisrICAqcCsrID0gX19idWlsdGlu X3ZzeF94dmFkZGRwICh0bXAxLCB0bXAyKTsKKysgICpwKysgPSBfX2J1aWx0aW5fdnN4X3h2c3Vi ZHAgKHRtcDEsIHRtcDIpOworKyAgKnArKyA9IF9fYnVpbHRpbl92c3hfeHZtdWxkcCAodG1wMSwg dG1wMik7CisrICAqcCsrID0gX19idWlsdGluX3ZzeF94dmRpdmRwICh0bXAxLCB0bXAyKTsKKysg ICpwKysgPSBfX2J1aWx0aW5fdnN4X3h2bWF4ZHAgKHRtcDEsIHRtcDIpOworKyAgKnArKyA9IF9f YnVpbHRpbl92c3hfeHZtaW5kcCAodG1wMSwgdG1wMik7CisrICAqcCsrID0gX19idWlsdGluX3Zz eF94dmFic2RwICh0bXAxKTsKKysgICpwKysgPSBfX2J1aWx0aW5fdnN4X3h2bmFic2RwICh0bXAx KTsKKysgICpwICAgPSBfX2J1aWx0aW5fdnN4X3h2c3FydGRwICh0bXAxKTsKKyt9CistLS0gZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Bvd2VycGMvcHIzOTQ1Ny5jCShyZXZpc2lvbiAwKQorKysr IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9wb3dlcnBjL3ByMzk0NTcuYwkocmV2aXNpb24gMTQ0 ODU3KQorQEAgLTAsMCArMSw1NiBAQAorKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7IHBv d2VycGMqLSotKiAmJiBscDY0IH0gfSB9ICovCisrLyogeyBkZy1vcHRpb25zICItbTY0IC1PMiAt bW1pbmltYWwtdG9jIiB9ICovCisrCisrLyogUFIgMzk0NTcgLS0gZml4IGJyZWFrYWdlIGJlY2F1 c2UgdGhlIGNvbXBpbGVyIHJhbiBvdXQgb2YgcmVnaXN0ZXJzIGFuZAorKyAgIHdhbnRlZCB0byBz dGFzaCBhIGZsb2F0aW5nIHBvaW50IHZhbHVlIHRvIHRoZSBMUi9DVFIgcmVnaXN0ZXIuICAqLwor KworKy8qIC1PMiAtbTY0IC1tbWluaW1hbC10b2MgKi8KKyt0eXBlZGVmIHN0cnVjdCB7IHZvaWQg KnM7IH0gUzsKKyt0eXBlZGVmIHZvaWQgKCpUMSkgKHZvaWQpOworK3R5cGVkZWYgdm9pZCAoKlQy KSAodm9pZCAqLCB2b2lkICosIGludCwgdm9pZCAqKTsKKytjaGFyICpmbjEgKGNvbnN0IGNoYXIg KiwgLi4uKTsKKyt2b2lkICpmbjIgKHZvaWQpOworK2ludCBmbjMgKGNoYXIgKiwgaW50KTsKKytp bnQgZm40IChjb25zdCB2b2lkICopOworK2ludCBmbjUgKGNvbnN0IHZvaWQgKik7CisrbG9uZyBm bjYgKHZvaWQpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKKytpbnQgZm43ICh2b2lkICos IHZvaWQgKiwgdm9pZCAqKTsKKyt2b2lkICpmbjggKHZvaWQgKiwgbG9uZyk7Cisrdm9pZCAqZm45 ICh2b2lkICosIGxvbmcsIGNvbnN0IGNoYXIgKiwgLi4uKTsKKyt2b2lkICpmbjEwICh2b2lkICop OworK2xvbmcgZm4xMSAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOworK2xvbmcg Zm4xMiAodm9pZCAqLCBjb25zdCBjaGFyICosIFQxLCBUMiwgdm9pZCAqKTsKKyt2b2lkICpmbjEz ICh2b2lkICopOworK2xvbmcgZm4xNCAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykp OworK2V4dGVybiB2b2lkICp2MTsKKytleHRlcm4gY2hhciAqdjI7CisrZXh0ZXJuIGludCB2MzsK KysKKyt2b2lkCisrZm9vICh2b2lkICp4LCBjaGFyICp6KQorK3sKKysgIHZvaWQgKmkxLCAqaTI7 CisrICBpbnQgeTsKKysgIGlmICh2MSkKKysgICAgcmV0dXJuOworKyAgdjEgPSBmbjkgKGZuMTAg KGZuMiAoKSksIGZuNiAoKSwgIngiLCAwLiwgInkiLCAwLiwgMCk7CisrICB5ID0gNTIwIC0gKDUy MCAtIGZuNCAoeCkpIC8gMjsKKysgIGZuOSAoZm44ICh2MSwgZm42ICgpKSwgZm42ICgpLCAid2ln IiwgZm44ICh2MSwgZm4xNCAoKSksICJ4IiwgMTguMCwKKysgICAgICAgInkiLCAxNi4wLCAid2lk IiwgODAuMCwgImhpIiwgNTAwLjAsIDApOworKyAgZm45IChmbjEwICh2MSksIGZuNiAoKSwgIngx IiwgMC4sICJ5MSIsIDAuLCAieDIiLCA4MC4wLCAieTIiLAorKyAgICAgICA1MDAuMCwgImYiLCBm bjMgKCJmZmYiLCAweDBEMERGQTAwKSwgMCk7CisrICBmbjEzICgoKFMgKikgZm44ICh2MSwgZm42 ICgpKSktPnMpOworKyAgZm4xMiAoZm44ICh2MSwgZm4xMSAoKSksICJldiIsIChUMSkgZm43LCAw LCBmbjggKHYxLCBmbjYgKCkpKTsKKysgIGZuOSAoZm44ICh2MSwgZm42ICgpKSwgZm42ICgpLCAi d2lnIiwKKysgICAgICAgZm44ICh2MSwgZm4xNCAoKSksICJ4IiwgMTExLjAsICJ5IiwgMTQuMCwg IndpZCIsIDc3NC4wLCAiaGkiLAorKyAgICAgICA1MDAuMCwgMCk7CisrICB2MSA9IGZuOSAoZm4x MCAodjEpLCBmbjYgKCksICJ4MSIsIDAuLCAieTEiLCAwLiwgIngyIiwgNzc0LjAsICJ5MiIsCisr ICAgICAgICAgICAgNTAwLjAsICJmIiwgZm4zICgiZ2MiLCAweDBEMERGQTAwKSwgMCk7CisrICBm bjEgKHosIDApOworKyAgaTEgPSBmbjkgKGZuOCAodjEsIGZuNiAoKSksIGZuNiAoKSwgInBpeGJ1 ZiIsIHgsICJ4IiwKKysgICAgICAgICAgICA4MDAgLSBmbjUgKHgpIC8gMiwgInkiLCB5IC0gZm40 ICh4KSwgMCk7CisrICBmbjEyIChmbjggKGkxLCBmbjExICgpKSwgImV2IiwgKFQxKSBmbjcsIDAs ICIvb2svIik7CisrICBmbjEyIChmbjggKGkxLCBmbjExICgpKSwgImV2IiwgKFQxKSBmbjcsIDAs IDApOworKyAgaTIgPSBmbjkgKGZuOCAodjEsIGZuNiAoKSksIGZuNiAoKSwgInR4dCIsICJPSyIs ICJmbnQiLCB2MiwgIngiLAorKyAgICAgICAgICAgIDgwMCwgInkiLCB5IC0gZm40ICh4KSArIDE1 LCAiYXIiLCAwLCAiZiIsIHYzLCAwKTsKKyt9Cg==