From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16246 invoked by alias); 4 Jan 2007 01:30:12 -0000 Received: (qmail 15936 invoked by uid 22791); 4 Jan 2007 01:30:11 -0000 X-Spam-Check-By: sourceware.org Received: from mail.sunnorth.com.cn (HELO mswbj01.sunnorth.com.cn) (124.42.0.200) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 04 Jan 2007 01:30:06 +0000 Received: from maillog.sunnorth.com.cn (unverified [172.20.10.250]) by mswbj01.sunnorth.com.cn (Clearswift SMTPRS 5.2.5) with ESMTP id for ; Thu, 4 Jan 2007 09:29:49 +0800 Received: from ntns1cn.sunnorth.com.cn (ntns1cn.sunnorth.com.cn [172.20.10.252]) by maillog.sunnorth.com.cn (8.12.10/8.12.10) with ESMTP id l0433g9F025518 for ; Thu, 4 Jan 2007 11:03:43 +0800 In-Reply-To: To: gcc-patches@gcc.gnu.org Subject: Re: [PATCH]: for Score backend MIME-Version: 1.0 X-Mailer: Lotus Notes Release 6.5 September 26, 2003 Message-ID: From: liqin@sunnorth.com.cn Date: Thu, 04 Jan 2007 01:30:00 -0000 Content-Type: multipart/mixed; boundary="=_mixed 000831CB48257259_=" X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2007-01/txt/msg00198.txt.bz2 --=_mixed 000831CB48257259_= Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 Content-length: 2172 Q2FuIEkgY29tbWl0IHRoaXMgcGF0Y2ggdG8gZ2NjLTQuMi4wL2djYy10cnVu ayByZXBvc2l0b3J5LA0KYmVjYXVzZSBJIGhhZCBwdXQgaXQgaGVyZSBmb3Ig b25lIHdlZWssIGFuZCBub3QgZ2V0DQphbnkgcmVzcG9uc2UuDQoNCg0KDQoN ClJnZHMNCkxpcWluDQoNCmdjYy1wYXRjaGVzLW93bmVyQGdjYy5nbnUub3Jn INC009ogMjAwNi0xMi0yOSAxNDo1MzozMjoNCg0KPiBIaaOsDQo+IHRoaXMg cGF0Y2ggZGlkIG1hbnkgY2hhbmdlcyBmb3IgU2NvcmUgYmFja2VuZC4NCj4g DQo+IENoYW5nZWxvZzoNCj4gICAgICAgICAqIGNvbmZpZy9zY29yZS9wcmVk aWNhdGVzLm1kIChjb25zdF91aW1tNSwgc3IwX29wZXJhbmQsIA0KPiBjb25z dF9zaW1tMTIsDQo+ICAgICAgICAgY29uc3Rfc2ltbTE1LCBjb25zdF9wb3cy LCBjb25zdF9ucG93Mik6IEFkZGVkLg0KPiAgICAgICAgICogY29uZmlnL3Nj b3JlL21pc2MubWQgKGluc3YsIGV4dHYsIGV4dHp2LCBtb3ZtZW1zaSwgDQo+ ICAgICAgICAgbW92ZV9sYnVfYS9iLCBtb3ZfbGh1X2EvYiBldGMpOiBBZGRl ZCBhbmQgZml4IHNvbWUgYnVnLg0KPiAgICAgICAgICogY29uZmlnL3Njb3Jl L3Njb3JlLmMgKHNjb3JlX2FkZHJlc3NfY29zdCwgDQpzY29yZV9zZWxlY3Rf Y2NfbW9kZSk6IA0KPiANCj4gICAgICAgICBBZGRlZC4NCj4gICAgICAgICBD aGFuZ2UgQ09OU1RfT0tfRk9SX0xFVFRFUl9QL0VYVFJBX0NPTlNUUkFJTlQg ZGVmaW5lLg0KPiAgICAgICAgIFVwZGF0ZSBzY29yZV9ydHhfY29zdHMgZm9y IE1BQ1JPIFRBUkdFVF9SVFhfQ09TVFMuDQo+ICAgICAgICBVcGRhdGUgc2Nv cmVfcHJpbnRfb3BlcmFuZC4NCj4gICAgICAgICAqIGNvbmZpZy9zY29yZS9z Y29yZS5oIChEQVRBX0FMSUdOTUVOVCwgU0VMRUNUX0NDX01PREUpOiBBZGRl ZC4NCj4gICAgICAgICBBZGp1c3QgcmVnaXN0ZXIgYWxsb2NhdGUgb3JkZXIg YW5kIHVwZGF0ZSBzb21lIG1hY3JvIGRlZmluZS4NCj4gICAgICAgICAqIGNv bmZpZy9zY29yZS9zY29yZS1tZGF1eC5jIChtZHhfdW5hbGlnbmVkX2xvYWQs IA0KPiBtZHhfdW5zaWduZWRfc3RvcmUsDQo+ICAgICAgICAgbWR4X2Jsb2Nr X21vdmVfc3RyYWlnaHQsIG1keF9ibG9ja19tb3ZlX2xvb3BfaGVhZCwgDQo+ IG1keF9ibG9ja19tb3ZlX2xvb3BfYm9keSwNCj4gICAgICAgICBtZHhfYmxv Y2tfbW92ZV9sb29wX2Zvb3QsIG1keF9ibG9ja19tb3ZlX2xvb3AgIG1keF9i bG9ja19tb3ZlKToNCj4gICAgICAgICBBZGRlZC4NCj4gICAgICAgICAobWR4 X21vdnNpY2MsIG1kcF9zZWxlY3RfYWRkX2ltbSwgbWRwX3NlbGVjdCwgDQo+ IG1kc196ZXJvX2V4dHJhY3RfYW5kaSwgbWRwX2xpbW0pOg0KPiAgICAgICAg IFVwZGF0ZWQgYW5kIGZpeCBzb21lIGJ1ZyBhbmQgdHlwby4NCj4gICAgICAg ICAqIGNvbmZpZy9zY29yZS9zY29yZS5tZCAobW92cWkvaGkvc2ksIGFkZC9z dWIvemVyby9leHQpOiANClVwZGF0ZWQuDQo+ICAgICAgICAgKG1vdnNmLCBt b3ZkZiwgZG9sb29wX2VuZCk6IEFkZGVkLg0KPiAgICAgICAgICogY29uZmln L3Njb3JlL3Qtc2NvcmUtZWxmIChNVUxUSUxJQl9PUFRJT05TKTogQ2hhbmdl Lg0KPiANCj4gUmdkcw0KPiBMaXFpbg0KDQo= --=_mixed 000831CB48257259_= Content-Type: application/octet-stream; name="score-20061229.patch" Content-Disposition: attachment; filename="score-20061229.patch" Content-Transfer-Encoding: base64 Content-length: 135164 SW5kZXg6IGdjYy9jb25maWcvc2NvcmUvdC1zY29yZS1lbGYKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZ2NjL2NvbmZpZy9zY29yZS90LXNjb3JlLWVs ZgkocmV2aXNpb24gMTIwMjUyKQorKysgZ2NjL2NvbmZpZy9zY29yZS90LXNj b3JlLWVsZgkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBkcC1i aXQuYzogJChzcmNkaXIpL2NvbmZpZy9mcC1iaXQuYwogIyB3aXRob3V0IHRo ZSAkZ3AgcmVnaXN0ZXIuCiBUQVJHRVRfTElCR0NDMl9DRkxBR1MgPSAtRyAw CiAKLU1VTFRJTElCX09QVElPTlMgPSBmUElDIG1lbCBtc2NvcmU3CitNVUxU SUxJQl9PUFRJT05TID0gbW1hYyBtZWwgZlBJQwogTVVMVElMSUJfTUFUQ0hF UyA9IGZQSUM9ZnBpYwogCiBFWFRSQV9NVUxUSUxJQl9QQVJUUyA9IGNydGJl Z2luLm8gY3J0ZW5kLm8gY3J0aS5vIGNydG4ubwpAQCAtNDMsNCArNDMsMyBA QCBFWFRSQV9NVUxUSUxJQl9QQVJUUyA9IGNydGJlZ2luLm8gY3J0ZW5kCiBM SUJHQ0MgPSBzdG1wLW11bHRpbGliCiBJTlNUQUxMX0xJQkdDQyA9IGluc3Rh bGwtbXVsdGlsaWIKIAotCkluZGV4OiBnY2MvY29uZmlnL3Njb3JlL2NydGku YXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9jb25maWcvc2Nv cmUvY3J0aS5hc20JKHJldmlzaW9uIDEyMDI1MikKKysrIGdjYy9jb25maWcv c2NvcmUvY3J0aS5hc20JKHdvcmtpbmcgY29weSkKQEAgLTQzLDggKzQzLDgg QEAKICAgICAgICAgLm1hc2sgICAweDAwMDAwMDAwLCAwCiBfc3RhcnQ6CiAg ICAgICAgIGxhICAgICAgcjI4LCBfZ3AKLSAgICAgICAgbGEgICAgICByOCwg X19ic3Nfc3RhcnQKLSAgICAgICAgbGEgICAgICByOSwgX19ic3NfZW5kX18K KyAgICAgICAgbGEgICAgICByOCwgX2Jzc19zdGFydAorICAgICAgICBsYSAg ICAgIHI5LCBfYnNzX2VuZF9fCiAgICAgICAgIHN1YiEgICAgcjksIHI4CiAg ICAgICAgIHNybGkhICAgcjksIDIKICAgICAgICAgYWRkaSAgICByOSwgLTEK QEAgLTkxLDggKzkxLDggQEAgX2Zpbmk6CiAgICAgICAgIC5tYXNrICAgMHgw MDAwMDAwMCwwCiBfc3RhcnQ6CiAgICAgICAgIGxhICAgICAgcjI4LCBfZ3AK LSAgICAgICAgbGEgICAgICByOCwgX19ic3Nfc3RhcnQKLSAgICAgICAgbGEg ICAgICByOSwgX19ic3NfZW5kX18KKyAgICAgICAgbGEgICAgICByOCwgX2Jz c19zdGFydAorICAgICAgICBsYSAgICAgIHI5LCBfYnNzX2VuZF9fCiAgICAg ICAgIHN1YiEgICAgcjksIHI4CiAgICAgICAgIHNybGkhICAgcjksIDIKICAg ICAgICAgYWRkaSAgICByOSwgLTEKQEAgLTEwMiwxNSArMTAyLDEwIEBAIF9z dGFydDoKICAgICAgICAgc3cgICAgICByOSwgW3I4XSssIDQKICAgICAgICAg YmNueiAgICAxYgogICAgICAgICBsYSAgICAgIHIwLCBfc3RhY2sKLSMgICAg ICAgamwgICAgICBfaW5pdAotIyAgICAgICBsYSAgICAgIHI0LCBfZW5kCi0j ICAgICAgIGpsICAgICAgX2luaXRfYXJndgogICAgICAgICBsZGl1ISAgIHI0 LCAwCiAgICAgICAgIGxkaXUhICAgcjUsIDAKLSMgICAgICAgamwgICAgICBt YWluCiAgICAgICAgIGxhICAgICAgcjI5LCBtYWluCiAgICAgICAgIGJybCAg ICAgcjI5Ci0jICAgICAgIGpsICAgICAgZXhpdAogICAgICAgICBsYSAgICAg IHIyOSwgZXhpdAogICAgICAgICBicmwgICAgIHIyOQogICAgICAgICAuZW5k ICAgIF9zdGFydApJbmRleDogZ2NjL2NvbmZpZy9zY29yZS9wcmVkaWNhdGVz Lm1kCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9jb25maWcvc2Nv cmUvcHJlZGljYXRlcy5tZAkocmV2aXNpb24gMTIwMjUyKQorKysgZ2NjL2Nv bmZpZy9zY29yZS9wcmVkaWNhdGVzLm1kCSh3b3JraW5nIGNvcHkpCkBAIC0z NSwxMyArMzUsMTEgQEAKICAgKGlvciAobWF0Y2hfb3BlcmFuZCAwICJjb25z dF9jYWxsX2luc25fb3BlcmFuZCIpCiAgICAgICAgKG1hdGNoX29wZXJhbmQg MCAicmVnaXN0ZXJfb3BlcmFuZCIpKSkKIAotKGRlZmluZV9wcmVkaWNhdGUg ImNvbnN0X2JpX29wZXJhbmQiCi0gIChhbmQgKG1hdGNoX2NvZGUgImNvbnN0 X2ludCIpCi0gICAgICAgKG1hdGNoX3Rlc3QgIkNPTlNUX09LX0ZPUl9MRVRU RVJfUCAoSU5UVkFMIChvcCksICdKJykiKSkpCi0KLShkZWZpbmVfcHJlZGlj YXRlICJwaW5kZXhfb2ZmX29wZXJhbmQiCi0gIChhbmQgKG1hdGNoX2NvZGUg ImNvbnN0X2ludCIpCi0gICAgICAgKG1hdGNoX3Rlc3QgIkNPTlNUX09LX0ZP Ul9MRVRURVJfUCAoSU5UVkFMIChvcCksICdQJykiKSkpCisoZGVmaW5lX3By ZWRpY2F0ZSAiY29uc3RfdWltbTUiCisgIChtYXRjaF9jb2RlICJjb25zdF9p bnQiKQoreworICByZXR1cm4gSU1NX0lOX1JBTkdFIChJTlRWQUwgKG9wKSwg NSwgMCk7Cit9KQogCiAoZGVmaW5lX3ByZWRpY2F0ZSAiaGlyZWdfb3BlcmFu ZCIKICAgKGFuZCAobWF0Y2hfY29kZSAicmVnIikKQEAgLTUxLDYgKzQ5LDEw IEBACiAgIChhbmQgKG1hdGNoX2NvZGUgInJlZyIpCiAgICAgICAgKG1hdGNo X3Rlc3QgIlJFR05PIChvcCkgPT0gTE9fUkVHTlVNIikpKQogCisoZGVmaW5l X3ByZWRpY2F0ZSAic3IwX29wZXJhbmQiCisgIChhbmQgKG1hdGNoX2NvZGUg InJlZyIpCisgICAgICAgKG1hdGNoX3Rlc3QgIlJFR05PIChvcCkgPT0gQ05f UkVHTlVNIikpKQorCiAoZGVmaW5lX3ByZWRpY2F0ZSAiZzMycmVnX29wZXJh bmQiCiAgIChhbmQgKG1hdGNoX2NvZGUgInJlZyIpCiAgICAgICAgKG1hdGNo X3Rlc3QgIkdQX1JFR19QIChSRUdOTyAob3ApKSIpKSkKQEAgLTYxLDMgKzYz LDI2IEBACiAoZGVmaW5lX3ByZWRpY2F0ZSAiYnJhbmNoX256X29wZXJhdG9y IgogICAobWF0Y2hfY29kZSAiZXEsbmUsbHQsZ2UiKSkKIAorKGRlZmluZV9w cmVkaWNhdGUgImNvbnN0X3NpbW0xMiIKKyAgKG1hdGNoX2NvZGUgImNvbnN0 X2ludCIpCit7CisgIHJldHVybiBJTU1fSU5fUkFOR0UgKElOVFZBTCAob3Ap LCAxMiwgMSk7Cit9KQorCisoZGVmaW5lX3ByZWRpY2F0ZSAiY29uc3Rfc2lt bTE1IgorICAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKK3sKKyAgcmV0dXJu IElNTV9JTl9SQU5HRSAoSU5UVkFMIChvcCksIDE1LCAxKTsKK30pCisKKyhk ZWZpbmVfcHJlZGljYXRlICJjb25zdF9wb3cyIgorICAobWF0Y2hfY29kZSAi Y29uc3RfaW50IikKK3sKKyAgcmV0dXJuIElNTV9JU19QT1dfT0ZfMiAoKHVu c2lnbmVkIEhPU1RfV0lERV9JTlQpIElOVFZBTCAob3ApLCAwLCAzMSk7Cit9 KQorCisoZGVmaW5lX3ByZWRpY2F0ZSAiY29uc3RfbnBvdzIiCisgIChtYXRj aF9jb2RlICJjb25zdF9pbnQiKQoreworICByZXR1cm4gSU1NX0lTX1BPV19P Rl8yICh+KHVuc2lnbmVkIEhPU1RfV0lERV9JTlQpIElOVFZBTCAob3ApLCAw LCAzMSk7Cit9KQpJbmRleDogZ2NjL2NvbmZpZy9zY29yZS9zY29yZS12ZXJz aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2NvbmZpZy9z Y29yZS9zY29yZS12ZXJzaW9uLmgJKHJldmlzaW9uIDEyMDI1MikKKysrIGdj Yy9jb25maWcvc2NvcmUvc2NvcmUtdmVyc2lvbi5oCSh3b3JraW5nIGNvcHkp CkBAIC0xOCw0ICsxOCw0IEBACiAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAogICAg Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuICAqLwogCi0jZGVmaW5lIFND T1JFX0dDQ19WRVJTSU9OICIxLjEiCisjZGVmaW5lIFNDT1JFX0dDQ19WRVJT SU9OICIxLjIiCkluZGV4OiBnY2MvY29uZmlnL3Njb3JlL2NydG4uYXNtCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9jb25maWcvc2NvcmUvY3J0 bi5hc20JKHJldmlzaW9uIDEyMDI1MikKKysrIGdjYy9jb25maWcvc2NvcmUv Y3J0bi5hc20JKHdvcmtpbmcgY29weSkKQEAgLTU5LDQgKzU5LDMgQEAKICAg ICAgICAgYnIgICAgICByMwogI2VuZGlmCiAKLQpJbmRleDogZ2NjL2NvbmZp Zy9zY29yZS9zY29yZS1wcm90b3MuaAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnY2MvY29uZmlnL3Njb3JlL3Njb3JlLXByb3Rvcy5oCShyZXZpc2lv biAxMjAyNTIpCisrKyBnY2MvY29uZmlnL3Njb3JlL3Njb3JlLXByb3Rvcy5o CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIGVudW0gcmVnX2Ns YXNzIHNjb3JlX3ByZWZlcnJlZF9yZWxvYWRfY2wKIGVudW0gcmVnX2NsYXNz IHNjb3JlX3NlY29uZGFyeV9yZWxvYWRfY2xhc3MgKGVudW0gcmVnX2NsYXNz IGNsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW51bSBtYWNoaW5lX21vZGUgbW9kZSwgcnR4IHgpOwogCi1p bnQgc2NvcmVfY29uc3Rfb2tfZm9yX2xldHRlcl9wIChpbnQgdmFsdWUsIGNo YXIgYyk7CitpbnQgc2NvcmVfY29uc3Rfb2tfZm9yX2xldHRlcl9wIChIT1NU X1dJREVfSU5UIHZhbHVlLCBjaGFyIGMpOwogCiBpbnQgc2NvcmVfZXh0cmFf Y29uc3RyYWludCAocnR4IG9wLCBjaGFyIGMpOwogCkluZGV4OiBnY2MvY29u ZmlnL3Njb3JlL21pc2MubWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Z2NjL2NvbmZpZy9zY29yZS9taXNjLm1kCShyZXZpc2lvbiAxMjAyNTIpCisr KyBnY2MvY29uZmlnL3Njb3JlL21pc2MubWQJKHdvcmtpbmcgY29weSkKQEAg LTg0LDggKzg0LDggQEAKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikKICAgICAgICAgKGlmX3RoZW5fZWxz ZTpTSSAobWF0Y2hfb3BlcmF0b3IgMSAiY29tcGFyaXNvbl9vcGVyYXRvciIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWc6Q0MgQ0NfUkVHTlVN KSAoY29uc3RfaW50IDApXSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQorICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImFyaXRoX29wZXJhbmQiICJk IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpT SSAzICJhcml0aF9vcGVyYW5kIiAiMCIpKSldCiAgICIiCiAgICJtdiVDMSAg ICUwLCAlMiIKICAgWyhzZXRfYXR0ciAidHlwZSIgImNuZG12IikKQEAgLTk1 LDcgKzk1LDcgQEAKICAgWyhzZXQgKHJlZzpDQ19OWiBDQ19SRUdOVU0pCiAg ICAgICAgIChjb21wYXJlOkNDX05aICh1bnNwZWM6U0kKICAgICAgICAgICAg ICAgICAgICAgICAgIFsobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiKmUsZCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6U0kgMSAiY29uc3RfYmlfb3BlcmFuZCIgIiIpXQorICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDEgImNv bnN0X3VpbW01IiAiIildCiAgICAgICAgICAgICAgICAgICAgICAgICBCSVRU U1QpCiAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKV0K ICAgIiIKQEAgLTEwNiwzICsxMDYsMzEyIEBACiAgICAoc2V0X2F0dHIgInVw X2MiICJ5ZXMiKQogICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCiAKKyhk ZWZpbmVfZXhwYW5kICJleHR6diIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAgICAgICh6ZXJvX2V4 dHJhY3QgKG1hdGNoX29wZXJhbmQ6U0kgMSAibWVtb3J5X29wZXJhbmQiICIi KQorICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIg ImltbWVkaWF0ZV9vcGVyYW5kIiAiIikKKyAgICAgICAgICAgICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZDpTSSAzICJpbW1lZGlhdGVfb3BlcmFuZCIgIiIp KSldCisgICIhVEFSR0VUX1NDT1JFNVUgJiYgIVRBUkdFVF9MSVRUTEVfRU5E SUFOIgoreworICBpZiAobWR4X3VuYWxpZ25lZF9sb2FkIChvcGVyYW5kcykp CisgICAgRE9ORTsKKyAgZWxzZQorICAgIEZBSUw7Cit9KQorCisoZGVmaW5l X2V4cGFuZCAiaW5zdiIKKyAgWyhzZXQgKHplcm9fZXh0cmFjdCAobWF0Y2hf b3BlcmFuZDpTSSAwICJtZW1vcnlfb3BlcmFuZCIgIiIpCisgICAgICAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAiaW1tZWRpYXRlX29w ZXJhbmQiICIiKQorICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlNJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAiIikpCisgICAgICAgICht YXRjaF9vcGVyYW5kOlNJIDMgInJlZ2lzdGVyX29wZXJhbmQiICIiKSldCisg ICIhVEFSR0VUX1NDT1JFNVUgJiYgIVRBUkdFVF9MSVRUTEVfRU5ESUFOIgor eworICBpZiAobWR4X3VuYWxpZ25lZF9zdG9yZSAob3BlcmFuZHMpKQorICAg IERPTkU7CisgIGVsc2UKKyAgICBGQUlMOworfSkKKworKGRlZmluZV9leHBh bmQgImV4dHYiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICIiKQorICAgICAgICAoc2lnbl9leHRyYWN0IChtYXRj aF9vcGVyYW5kOlNJIDEgIm1lbW9yeV9vcGVyYW5kIiAiIikKKyAgICAgICAg ICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbW1lZGlhdGVf b3BlcmFuZCIgIiIpCisgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6U0kgMyAiaW1tZWRpYXRlX29wZXJhbmQiICIiKSkpXQorICAiIVRB UkdFVF9TQ09SRTVVICYmICFUQVJHRVRfTElUVExFX0VORElBTiIKK3sKKyAg aWYgKG1keF91bmFsaWduZWRfbG9hZCAob3BlcmFuZHMpKQorICAgIERPTkU7 CisgIGVsc2UKKyAgICBGQUlMOworfSkKKworKGRlZmluZV9leHBhbmQgIm1v dm1lbXNpIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9vcGVyYW5kOkJM SyAwICJnZW5lcmFsX29wZXJhbmQiKQorICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOkJMSyAxICJnZW5lcmFsX29wZXJhbmQiKSkKKyAgICAg ICAgICAgICAgKHVzZSAobWF0Y2hfb3BlcmFuZDpTSSAyICIiKSkKKyAgICAg ICAgICAgICAgKHVzZSAobWF0Y2hfb3BlcmFuZDpTSSAzICJjb25zdF9pbnRf b3BlcmFuZCIpKV0pXQorICAiIVRBUkdFVF9TQ09SRTVVIgoreworICBpZiAo bWR4X2Jsb2NrX21vdmUgKG9wZXJhbmRzKSkKKyAgICBET05FOworICBlbHNl CisgICAgRkFJTDsKK30pCisKKyhkZWZpbmVfaW5zbiAibW92ZV9sYnVfYSIK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1kIikKKyAgICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kg MSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9zaW1tMTIiICIiKSkpCisgICAo c2V0IChtYXRjaF9vcGVyYW5kOlFJIDMgInJlZ2lzdGVyX29wZXJhbmQiICI9 ZCIpCisgICAgICAgIChtZW06UUkgKG1hdGNoX2R1cCAxKSkpXQorICAiIVRB UkdFVF9TQ09SRTVVIgorICAibGJ1ICAgICAlMywgWyUxXSssICUyIgorICBb KHNldF9hdHRyICJ0eXBlIiAibG9hZCIpCisgICAoc2V0X2F0dHIgIm1vZGUi ICJRSSIpXSkKKworKGRlZmluZV9pbnNuICJtb3ZlX2xodV9hIgorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQi KQorICAgICAgICAocGx1czpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCIpCisgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDIgImNvbnN0X3NpbW0xMiIgIiIpKSkKKyAgIChzZXQgKG1h dGNoX29wZXJhbmQ6SEkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikKKyAg ICAgICAgKG1lbTpISSAobWF0Y2hfZHVwIDEpKSldCisgICIhVEFSR0VUX1ND T1JFNVUiCisgICJsaHUgICAgICUzLCBbJTFdKywgJTIiCisgIFsoc2V0X2F0 dHIgInR5cGUiICJsb2FkIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIild KQorCisoZGVmaW5lX2luc24gIm1vdmVfbHdfYSIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikKKyAgICAg ICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpT SSAyICJjb25zdF9zaW1tMTIiICIiKSkpCisgICAoc2V0IChtYXRjaF9vcGVy YW5kOlNJIDMgInJlZ2lzdGVyX29wZXJhbmQiICI9ZCIpCisgICAgICAgICht ZW06U0kgKG1hdGNoX2R1cCAxKSkpXQorICAiIVRBUkdFVF9TQ09SRTVVIgor ICAibHcgICAgICAlMywgWyUxXSssICUyIgorICBbKHNldF9hdHRyICJ0eXBl IiAibG9hZCIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKworKGRl ZmluZV9pbnNuICJtb3ZlX3NiX2EiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ZCIpCisgICAgICAgIChwbHVz OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIw IikKKyAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29u c3Rfc2ltbTEyIiAiIikpKQorICAgKHNldCAobWVtOlFJIChtYXRjaF9kdXAg MSkpCisgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDMgInJlZ2lzdGVyX29w ZXJhbmQiICJkIikpXQorICAiIVRBUkdFVF9TQ09SRTVVIgorICAic2IgICAg ICAlMywgWyUxXSssICUyIgorICBbKHNldF9hdHRyICJ0eXBlIiAic3RvcmUi KQorICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCisKKyhkZWZpbmVfaW5z biAibW92ZV9zaF9hIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPWQiKQorICAgICAgICAocGx1czpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCisgICAg ICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0X3NpbW0x MiIgIiIpKSkKKyAgIChzZXQgKG1lbTpISSAobWF0Y2hfZHVwIDEpKQorICAg ICAgICAobWF0Y2hfb3BlcmFuZDpISSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAi ZCIpKV0KKyAgIiFUQVJHRVRfU0NPUkU1VSIKKyAgInNoICAgICAgJTMsIFsl MV0rLCAlMiIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInN0b3JlIikKKyAgIChz ZXRfYXR0ciAibW9kZSIgIkhJIildKQorCisoZGVmaW5lX2luc24gIm1vdmVf c3dfYSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1kIikKKyAgICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJh bmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAg ICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9zaW1tMTIiICIiKSkp CisgICAoc2V0IChtZW06U0kgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgKG1h dGNoX29wZXJhbmQ6U0kgMyAicmVnaXN0ZXJfb3BlcmFuZCIgImQiKSldCisg ICIhVEFSR0VUX1NDT1JFNVUiCisgICJzdyAgICAgICUzLCBbJTFdKywgJTIi CisgIFsoc2V0X2F0dHIgInR5cGUiICJzdG9yZSIpCisgICAoc2V0X2F0dHIg Im1vZGUiICJTSSIpXSkKKworKGRlZmluZV9pbnNuICJtb3ZlX2xidV9iIgor ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPWQiKQorICAgICAgICAocGx1czpTSSAobWF0Y2hfb3BlcmFuZDpTSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCisgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0X3NpbW0xMiIgIiIpKSkKKyAgIChz ZXQgKG1hdGNoX29wZXJhbmQ6UUkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgIj1k IikKKyAgICAgICAgKG1lbTpRSSAocGx1czpTSSAobWF0Y2hfZHVwIDEpCisg ICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpKV0KKyAg IiFUQVJHRVRfU0NPUkU1VSIKKyAgImxidSAgICAgJTMsIFslMSwgJTJdKyIK KyAgWyhzZXRfYXR0ciAidHlwZSIgImxvYWQiKQorICAgKHNldF9hdHRyICJt b2RlIiAiUUkiKV0pCisKKyhkZWZpbmVfaW5zbiAibW92ZV9saHVfYiIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1kIikKKyAgICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9zaW1tMTIiICIiKSkpCisgICAoc2V0 IChtYXRjaF9vcGVyYW5kOkhJIDMgInJlZ2lzdGVyX29wZXJhbmQiICI9ZCIp CisgICAgICAgIChtZW06SEkgKHBsdXM6U0kgKG1hdGNoX2R1cCAxKQorICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKSldCisgICIh VEFSR0VUX1NDT1JFNVUiCisgICJsaHUgICAgICUzLCBbJTEsICUyXSsiCisg IFsoc2V0X2F0dHIgInR5cGUiICJsb2FkIikKKyAgIChzZXRfYXR0ciAibW9k ZSIgIkhJIildKQorCisoZGVmaW5lX2luc24gIm1vdmVfbHdfYiIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1k IikKKyAgICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpTSSAyICJjb25zdF9zaW1tMTIiICIiKSkpCisgICAoc2V0ICht YXRjaF9vcGVyYW5kOlNJIDMgInJlZ2lzdGVyX29wZXJhbmQiICI9ZCIpCisg ICAgICAgIChtZW06U0kgKHBsdXM6U0kgKG1hdGNoX2R1cCAxKQorICAgICAg ICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKSldCisgICIhVEFS R0VUX1NDT1JFNVUiCisgICJsdyAgICAgICUzLCBbJTEsICUyXSsiCisgIFso c2V0X2F0dHIgInR5cGUiICJsb2FkIikKKyAgIChzZXRfYXR0ciAibW9kZSIg IlNJIildKQorCisoZGVmaW5lX2luc24gIm1vdmVfc2JfYiIKKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikK KyAgICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3Bl cmFuZDpTSSAyICJjb25zdF9zaW1tMTIiICIiKSkpCisgICAoc2V0IChtZW06 UUkgKHBsdXM6U0kgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAobWF0Y2hfb3BlcmFu ZDpRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpKV0KKyAgIiFUQVJHRVRf U0NPUkU1VSIKKyAgInNiICAgICAgJTMsIFslMSwgJTJdKyIKKyAgWyhzZXRf YXR0ciAidHlwZSIgInN0b3JlIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJ IildKQorCisoZGVmaW5lX2luc24gIm1vdmVfc2hfYiIKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikKKyAg ICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpTSSAyICJjb25zdF9zaW1tMTIiICIiKSkpCisgICAoc2V0IChtZW06SEkg KHBsdXM6U0kgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAobWF0Y2hfb3BlcmFuZDpI SSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpKV0KKyAgIiFUQVJHRVRfU0NP UkU1VSIKKyAgInNoICAgICAgJTMsIFslMSwgJTJdKyIKKyAgWyhzZXRfYXR0 ciAidHlwZSIgInN0b3JlIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIild KQorCisoZGVmaW5lX2luc24gIm1vdmVfc3dfYiIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikKKyAgICAg ICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpT SSAyICJjb25zdF9zaW1tMTIiICIiKSkpCisgICAoc2V0IChtZW06U0kgKHBs dXM6U0kgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAg IChtYXRjaF9kdXAgMikpKQorICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAz ICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpKV0KKyAgIiFUQVJHRVRfU0NPUkU1 VSIKKyAgInN3ICAgICAgJTMsIFslMSwgJTJdKyIKKyAgWyhzZXRfYXR0ciAi dHlwZSIgInN0b3JlIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQor CisoZGVmaW5lX2luc24gIm1vdmVfbGNiIgorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQiKQorICAgICAgICAo cGx1czpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCIpCisgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCkpKQorICAg KHNldCAocmVnOlNJIExDX1JFR05VTSkKKyAgICAgICAgKHVuc3BlYzpTSSBb KG1lbTpCTEsgKG1hdGNoX2R1cCAxKSldIExDQikpXQorICAiIVRBUkdFVF9T Q09SRTVVICYmICFUQVJHRVRfTElUVExFX0VORElBTiIKKyAgImxjYiAgICAg WyUxXSsiCisgIFsoc2V0X2F0dHIgInR5cGUiICJsb2FkIikKKyAgIChzZXRf YXR0ciAibW9kZSIgIlNJIildKQorCisoZGVmaW5lX2luc24gIm1vdmVfbGN3 IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPWQiKQorICAgICAgICAocGx1czpTSSAobWF0Y2hfb3BlcmFuZDpT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCisgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgNCkpKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQiKQorICAgICAgICAodW5zcGVjOlNJ IFsobWVtOkJMSyAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAg ICAocmVnOlNJIExDX1JFR05VTSldIExDVykpCisgICAoc2V0IChyZWc6U0kg TENfUkVHTlVNKQorICAgICAgICAodW5zcGVjOlNJIFsobWVtOkJMSyAobWF0 Y2hfZHVwIDEpKV0gTENCKSldCisgICIhVEFSR0VUX1NDT1JFNVUgJiYgIVRB UkdFVF9MSVRUTEVfRU5ESUFOIgorICAibGN3ICAgICAlMiwgWyUxXSsiCisg IFsoc2V0X2F0dHIgInR5cGUiICJsb2FkIikKKyAgIChzZXRfYXR0ciAibW9k ZSIgIlNJIildKQorCisoZGVmaW5lX2luc24gIm1vdmVfbGNlIgorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQi KQorICAgICAgICAocGx1czpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCIpCisgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgNCkpKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rl cl9vcGVyYW5kIiAiPWQiKQorICAgICAgICAodW5zcGVjOlNJIFsobWVtOkJM SyAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICAocmVnOlNJ IExDX1JFR05VTSldIExDRSkpXQorICAiIVRBUkdFVF9TQ09SRTVVICYmICFU QVJHRVRfTElUVExFX0VORElBTiIKKyAgImxjZSAgICAgJTIsIFslMV0rIgor ICBbKHNldF9hdHRyICJ0eXBlIiAibG9hZCIpCisgICAoc2V0X2F0dHIgIm1v ZGUiICJTSSIpXSkKKworKGRlZmluZV9pbnNuICJtb3ZlX3NjYiIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1k IikKKyAgICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDQpKSkKKyAgIChzZXQgKG1lbTpCTEsgKG1hdGNoX2R1cCAxKSkKKyAg ICAgICAgKHVuc3BlYzpCTEsgWyhtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lz dGVyX29wZXJhbmQiICJkIildIFNDQikpCisgICAoc2V0IChyZWc6U0kgU0Nf UkVHTlVNKQorICAgICAgICAodW5zcGVjOlNJIFsobWF0Y2hfZHVwIDIpXSBT Q0xDKSldCisgICIhVEFSR0VUX1NDT1JFNVUgJiYgIVRBUkdFVF9MSVRUTEVf RU5ESUFOIgorICAic2NiICAgICAlMiwgWyUxXSsiCisgIFsoc2V0X2F0dHIg InR5cGUiICJzdG9yZSIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkK KworKGRlZmluZV9pbnNuICJtb3ZlX3NjdyIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikKKyAgICAgICAg KHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAiKQorICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQpKSkKKyAg IChzZXQgKG1lbTpCTEsgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgKHVuc3Bl YzpCTEsgWyhtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lzdGVyX29wZXJhbmQi ICJkIikKKyAgICAgICAgICAgICAgICAgICAgIChyZWc6U0kgU0NfUkVHTlVN KV0gU0NXKSkKKyAgIChzZXQgKHJlZzpTSSBTQ19SRUdOVU0pCisgICAgICAg ICh1bnNwZWM6U0kgWyhtYXRjaF9kdXAgMildIFNDTEMpKV0KKyAgIiFUQVJH RVRfU0NPUkU1VSAmJiAhVEFSR0VUX0xJVFRMRV9FTkRJQU4iCisgICJzY3cg ICAgICUyLCBbJTFdKyIKKyAgWyhzZXRfYXR0ciAidHlwZSIgInN0b3JlIikK KyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorCisoZGVmaW5lX2luc24g Im1vdmVfc2NlIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPWQiKQorICAgICAgICAocGx1czpTSSAobWF0Y2hf b3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCisgICAgICAg ICAgICAgICAgIChjb25zdF9pbnQgNCkpKQorICAgKHNldCAobWVtOkJMSyAo bWF0Y2hfZHVwIDEpKQorICAgICAgICAodW5zcGVjOkJMSyBbKHJlZzpTSSBT Q19SRUdOVU0pXSBTQ0UpKV0KKyAgIiFUQVJHRVRfU0NPUkU1VSAmJiAhVEFS R0VUX0xJVFRMRV9FTkRJQU4iCisgICJzY2UgICAgIFslMV0rIgorICBbKHNl dF9hdHRyICJ0eXBlIiAic3RvcmUiKQorICAgKHNldF9hdHRyICJtb2RlIiAi U0kiKV0pCisKKyhkZWZpbmVfaW5zbiAiYW5kc2kzX2V4dHpoIgorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQi KQorICAgICAgICAoYW5kOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lz dGVyX29wZXJhbmQiICJkIikKKyAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDY1NTM1KSkpXQorICAiIgorICAiZXh0emggICAlMCwgJTEiCisgIFsoc2V0 X2F0dHIgInR5cGUiICJhcml0aCIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJT SSIpXSkKKworKGRlZmluZV9pbnNuICJiaXRjbHJfYyIKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1lLGQiKQor ICAgICAgICAoYW5kOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwLGQiKQorICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlNJIDIgImNvbnN0X25wb3cyIikpKQorICAgKGNsb2JiZXIgKHJlZzpD QyBDQ19SRUdOVU0pKV0KKyAgIiIKKyAgIkAKKyAgIGJpdGNsciEgICAgJTAs ICVGMgorICAgYml0Y2xyLmMgICAlMCwgJTEsICVGMiIKKyAgWyhzZXRfYXR0 ciAidHlwZSIgImFyaXRoIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIild KQorCisoZGVmaW5lX2luc24gImJpdHNldF9jIgorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWUsZCIpCisgICAg ICAgIChpb3I6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgIjAsZCIpCisgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 U0kgMiAiY29uc3RfcG93MiIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgQ0Nf UkVHTlVNKSldCisgICIiCisgICJACisgICBiaXRzZXQhICAgICUwLCAlRTIK KyAgIGJpdHNldC5jICAgJTAsICUxLCAlRTIiCisgIFsoc2V0X2F0dHIgInR5 cGUiICJhcml0aCIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKwor KGRlZmluZV9pbnNuICJiaXR0Z2xfYyIKKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1lLGQiKQorICAgICAgICAo eG9yOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICIwLGQiKQorICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIg ImNvbnN0X3BvdzIiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIENDX1JFR05V TSkpXQorICAiIgorICAiQAorICAgYml0dGdsISAgICAlMCwgJUUyCisgICBi aXR0Z2wuYyAgICUwLCAlMSwgJUUyIgorICBbKHNldF9hdHRyICJ0eXBlIiAi YXJpdGgiKQorICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCkluZGV4OiBn Y2MvY29uZmlnL3Njb3JlL3Njb3JlLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2NjL2NvbmZpZy9zY29yZS9zY29yZS5jCShyZXZpc2lvbiAxMjAy NTIpCisrKyBnY2MvY29uZmlnL3Njb3JlL3Njb3JlLmMJKHdvcmtpbmcgY29w eSkKQEAgLTY3LDcgKzY3LDkgQEAgc3RhdGljIGludCBzY29yZV9zeW1ib2xf aW5zbnMgKGVudW0gc2NvcgogCiBzdGF0aWMgaW50IHNjb3JlX2FkZHJlc3Nf aW5zbnMgKHJ0eCwgZW51bSBtYWNoaW5lX21vZGUpOwogCi1zdGF0aWMgYm9v bCBzY29yZV9ydHhfY29zdHMgKHJ0eCwgaW50LCBpbnQsIGludCAqKTsKK3N0 YXRpYyBib29sIHNjb3JlX3J0eF9jb3N0cyAocnR4LCBlbnVtIHJ0eF9jb2Rl LCBlbnVtIHJ0eF9jb2RlLCBpbnQgKik7CisKK3N0YXRpYyBpbnQgc2NvcmVf YWRkcmVzc19jb3N0IChydHgpOwogCiAjdW5kZWYgIFRBUkdFVF9BU01fRklM RV9TVEFSVAogI2RlZmluZSBUQVJHRVRfQVNNX0ZJTEVfU1RBUlQgICAgICAg ICAgIHRoX2FzbV9maWxlX3N0YXJ0CkBAIC0xMjYsNiArMTI4LDkgQEAgc3Rh dGljIGJvb2wgc2NvcmVfcnR4X2Nvc3RzIChydHgsIGludCwgaQogI3VuZGVm IFRBUkdFVF9SVFhfQ09TVFMKICNkZWZpbmUgVEFSR0VUX1JUWF9DT1NUUyAg ICAgICAgICAgICAgICBzY29yZV9ydHhfY29zdHMKIAorI3VuZGVmIFRBUkdF VF9BRERSRVNTX0NPU1QKKyNkZWZpbmUgVEFSR0VUX0FERFJFU1NfQ09TVCAg ICAgICAgICAgICBzY29yZV9hZGRyZXNzX2Nvc3QKKwogI3VuZGVmIFRBUkdF VF9ERUZBVUxUX1RBUkdFVF9GTEFHUwogI2RlZmluZSBUQVJHRVRfREVGQVVM VF9UQVJHRVRfRkxBR1MgICAgIFRBUkdFVF9ERUZBVUxUCiAKQEAgLTE1NCw3 ICsxNTksNyBAQCBzY29yZV9wYXNzX2J5X3JlZmVyZW5jZSAoQ1VNVUxBVElW RV9BUkdTCiBzdGF0aWMgcnR4CiBzY29yZV9hZGRfb2Zmc2V0IChydHggdGVt cCwgcnR4IHJlZywgSE9TVF9XSURFX0lOVCBvZmZzZXQpCiB7Ci0gIGlmICgh Q09OU1RfT0tfRk9SX0xFVFRFUl9QIChvZmZzZXQsICdPJykpCisgIGlmICgh SU1NX0lOX1JBTkdFIChvZmZzZXQsIDE1LCAxKSkKICAgICB7CiAgICAgICBy ZWcgPSBleHBhbmRfc2ltcGxlX2Jpbm9wIChHRVRfTU9ERSAocmVnKSwgUExV UywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbl9pbnRf bW9kZSAob2Zmc2V0ICYgMHhmZmZmYzAwMCwKQEAgLTQ5OSwxMiArNTA0LDEz IEBAIGVudW0gcmVnX2NsYXNzIHNjb3JlX2NoYXJfdG9fY2xhc3NbMjU2XTsK IHZvaWQKIHNjb3JlX292ZXJyaWRlX29wdGlvbnMgKHZvaWQpCiB7CisgIGZs YWdfcGljID0gZmFsc2U7CiAgIGlmICghZmxhZ19waWMpCiAgICAgc2RhdGFf bWF4ID0gZ19zd2l0Y2hfc2V0ID8gZ19zd2l0Y2hfdmFsdWUgOiBERUZBVUxU X1NEQVRBX01BWDsKICAgZWxzZQogICAgIHsKICAgICAgIHNkYXRhX21heCA9 IDA7Ci0gICAgICBpZiAoZ19zd2l0Y2hfc2V0KQorICAgICAgaWYgKGdfc3dp dGNoX3NldCAmJiAoZ19zd2l0Y2hfdmFsdWUgIT0gMCkpCiAgICAgICAgIHdh cm5pbmcgKDAsICItZlBJQyBhbmQgLUcgYXJlIGluY29tcGF0aWJsZSIpOwog ICAgIH0KIApAQCAtNTQwLDcgKzU0Niw3IEBAIHNjb3JlX3JlZ19jbGFzcyAo aW50IHJlZ25vKQogICAgICAgfHwgcmVnbm8gPT0gQVJHX1BPSU5URVJfUkVH TlVNKQogICAgIHJldHVybiBBTExfUkVHUzsKIAotICBmb3IgKGMgPSAwIDsg YyA8IE5fUkVHX0NMQVNTRVMgOyBjKyspCisgIGZvciAoYyA9IDA7IGMgPCBO X1JFR19DTEFTU0VTOyBjKyspCiAgICAgaWYgKFRFU1RfSEFSRF9SRUdfQklU IChyZWdfY2xhc3NfY29udGVudHNbY10sIHJlZ25vKSkKICAgICAgIHJldHVy biBjOwogCkBAIC01NTEsMTAgKzU1NywxMCBAQCBzY29yZV9yZWdfY2xhc3Mg KGludCByZWdubykKIGVudW0gcmVnX2NsYXNzCiBzY29yZV9wcmVmZXJyZWRf cmVsb2FkX2NsYXNzIChydHggeCBBVFRSSUJVVEVfVU5VU0VELCBlbnVtIHJl Z19jbGFzcyBjbGFzcykKIHsKLSAgaWYgKHJlZ19jbGFzc19zdWJzZXRfcCAo RzMyX1JFR1MsIGNsYXNzKSkKLSAgICBjbGFzcyA9IEczMl9SRUdTOwogICBp ZiAocmVnX2NsYXNzX3N1YnNldF9wIChHMTZfUkVHUywgY2xhc3MpKQotICAg IGNsYXNzID0gRzE2X1JFR1M7CisgICAgcmV0dXJuIEcxNl9SRUdTOworICBp ZiAocmVnX2NsYXNzX3N1YnNldF9wIChHMzJfUkVHUywgY2xhc3MpKQorICAg IHJldHVybiBHMzJfUkVHUzsKICAgcmV0dXJuIGNsYXNzOwogfQogCkBAIC01 NzYsNDEgKzU4MiwzNCBAQCBzY29yZV9zZWNvbmRhcnlfcmVsb2FkX2NsYXNz IChlbnVtIHJlZ19jCiAKIC8qIEltcGxlbWVudCBDT05TVF9PS19GT1JfTEVU VEVSX1AgbWFjcm8uICAqLwogLyogaW1tIGNvbnN0cmFpbnRzCi0gICBJICAg ICAgICBJTU04ICAgICAgICAoaTE1LTItZm9ybSkKLSAgIEogICAgICAgIElN TTUgICAgICAgIChpMTVfMS1mb3JtKQotICAgSyAgICAgICAgSU1NMTYgICAg ICAgKGktZm9ybSkKLSAgIEwgICAgICAgIElNTTE2cyAgICAgIChpLWZvcm0p Ci0gICBNICAgICAgICBJTU0xNCAgICAgICAocmktZm9ybSkKLSAgIE4gICAg ICAgIElNTTE0cyAgICAgIChyaS1mb3JtKQotICAgTyAgICAgICAgSU1NMTVz ICAgICAgKHJpLWZvcm0pCi0gICBQICAgICAgICBJTU0xMnMgICAgICAocml4 LWZvcm0pIC8gSU1NMTBzKGNvcC1mb3JtKSA8PCAyICAqLworICAgSSAgICAg ICAgaW1tMTYgPDwgMTYKKyAgIEogICAgICAgIHVpbW01CisgICBLICAgICAg ICB1aW1tMTYKKyAgIEwgICAgICAgIHNpbW0xNgorICAgTSAgICAgICAgdWlt bTE0CisgICBOICAgICAgICBzaW1tMTQgICovCiBpbnQKLXNjb3JlX2NvbnN0 X29rX2Zvcl9sZXR0ZXJfcCAoaW50IHZhbHVlLCBjaGFyIGMpCitzY29yZV9j b25zdF9va19mb3JfbGV0dGVyX3AgKEhPU1RfV0lERV9JTlQgdmFsdWUsIGNo YXIgYykKIHsKICAgc3dpdGNoIChjKQogICAgIHsKLSAgICBjYXNlICdJJzog cmV0dXJuIElNTV9JTl9SQU5HRSAodmFsdWUsIDgsIDApOworICAgIGNhc2Ug J0knOiByZXR1cm4gKCh2YWx1ZSAmIDB4ZmZmZikgPT0gMCk7CiAgICAgY2Fz ZSAnSic6IHJldHVybiBJTU1fSU5fUkFOR0UgKHZhbHVlLCA1LCAwKTsKICAg ICBjYXNlICdLJzogcmV0dXJuIElNTV9JTl9SQU5HRSAodmFsdWUsIDE2LCAw KTsKICAgICBjYXNlICdMJzogcmV0dXJuIElNTV9JTl9SQU5HRSAodmFsdWUs IDE2LCAxKTsKICAgICBjYXNlICdNJzogcmV0dXJuIElNTV9JTl9SQU5HRSAo dmFsdWUsIDE0LCAwKTsKICAgICBjYXNlICdOJzogcmV0dXJuIElNTV9JTl9S QU5HRSAodmFsdWUsIDE0LCAxKTsKLSAgICBjYXNlICdPJzogcmV0dXJuIElN TV9JTl9SQU5HRSAodmFsdWUsIDE1LCAxKTsKLSAgICBjYXNlICdQJzogcmV0 dXJuIElNTV9JTl9SQU5HRSAodmFsdWUsIDEyLCAxKTsKICAgICBkZWZhdWx0 IDogcmV0dXJuIDA7CiAgICAgfQogfQogCiAvKiBJbXBsZW1lbnQgRVhUUkFf Q09OU1RSQUlOVCBtYWNyby4gICovCi0vKiBRICAgICAgICBjb25zdF9oaSAg ICBpbW0KLSAgIFogICAgICAgIHN5bWJvbF9yZWYgICovCisvKiBaICAgICAg ICBzeW1ib2xfcmVmICAqLwogaW50CiBzY29yZV9leHRyYV9jb25zdHJhaW50 IChydHggb3AsIGNoYXIgYykKIHsKICAgc3dpdGNoIChjKQogICAgIHsKLSAg ICBjYXNlICdRJzoKLSAgICAgIHJldHVybiAoR0VUX0NPREUgKG9wKSA9PSBD T05TVF9JTlQgJiYgKElOVFZBTCAob3ApICYgMHhmZmZmKSA9PSAwKTsKICAg ICBjYXNlICdaJzoKICAgICAgIHJldHVybiBHRVRfQ09ERSAob3ApID09IFNZ TUJPTF9SRUY7CiAgICAgZGVmYXVsdDoKQEAgLTkxNywxMCArOTE2LDggQEAg c2NvcmVfYWRkcmVzc19pbnNucyAocnR4IHgsIGVudW0gbWFjaGluZQogICBp bnQgZmFjdG9yOwogCiAgIGlmIChtb2RlID09IEJMS21vZGUpCi0gICAgLyog QkxLbW9kZSBpcyB1c2VkIGZvciBzaW5nbGUgdW5hbGlnbmVkIGxvYWRzIGFu ZCBzdG9yZXMuICAqLwogICAgIGZhY3RvciA9IDE7CiAgIGVsc2UKLSAgICAv KiBFYWNoIHdvcmQgb2YgYSBtdWx0aS13b3JkIHZhbHVlIHdpbGwgYmUgYWNj ZXNzZWQgaW5kaXZpZHVhbGx5LiAgKi8KICAgICBmYWN0b3IgPSAoR0VUX01P REVfU0laRSAobW9kZSkgKyBVTklUU19QRVJfV09SRCAtIDEpIC8gVU5JVFNf UEVSX1dPUkQ7CiAKICAgaWYgKG1kYV9jbGFzc2lmeV9hZGRyZXNzICgmYWRk ciwgbW9kZSwgeCwgZmFsc2UpKQpAQCAtOTM4LDI0ICs5MzUsNTMgQEAgc2Nv cmVfYWRkcmVzc19pbnNucyAocnR4IHgsIGVudW0gbWFjaGluZQogCiAvKiBJ bXBsZW1lbnQgVEFSR0VUX1JUWF9DT1NUUyBtYWNyby4gICovCiBzdGF0aWMg Ym9vbAotc2NvcmVfcnR4X2Nvc3RzIChydHggeCwgaW50IGNvZGUsIGludCBv dXRlcl9jb2RlLCBpbnQgKnRvdGFsKQorc2NvcmVfcnR4X2Nvc3RzIChydHgg eCwgZW51bSBydHhfY29kZSBjb2RlLCBlbnVtIHJ0eF9jb2RlIG91dGVyX2Nv ZGUsCisgICAgICAgICAgICAgICAgIGludCAqdG90YWwpCiB7CiAgIGVudW0g bWFjaGluZV9tb2RlIG1vZGUgPSBHRVRfTU9ERSAoeCk7CiAKICAgc3dpdGNo IChjb2RlKQogICAgIHsKICAgICBjYXNlIENPTlNUX0lOVDoKLSAgICAgIC8q IFRoZXNlIGNhbiBiZSB1c2VkIGFueXdoZXJlLiAqLwotICAgICAgKnRvdGFs ID0gMDsKKyAgICAgIGlmIChvdXRlcl9jb2RlID09IFNFVCkKKyAgICAgICAg eworICAgICAgICAgIGlmIChDT05TVF9PS19GT1JfTEVUVEVSX1AgKElOVFZB TCAoeCksICdJJykKKyAgICAgICAgICAgICAgfHwgQ09OU1RfT0tfRk9SX0xF VFRFUl9QIChJTlRWQUwgKHgpLCAnTCcpKQorICAgICAgICAgICAgKnRvdGFs ID0gQ09TVFNfTl9JTlNOUyAoMSk7CisgICAgICAgICAgZWxzZQorICAgICAg ICAgICAgKnRvdGFsID0gQ09TVFNfTl9JTlNOUyAoMik7CisgICAgICAgIH0K KyAgICAgIGVsc2UgaWYgKG91dGVyX2NvZGUgPT0gUExVUyB8fCBvdXRlcl9j b2RlID09IE1JTlVTKQorICAgICAgICB7CisgICAgICAgICAgaWYgKENPTlNU X09LX0ZPUl9MRVRURVJfUCAoSU5UVkFMICh4KSwgJ04nKSkKKyAgICAgICAg ICAgICp0b3RhbCA9IDA7CisgICAgICAgICAgZWxzZSBpZiAoQ09OU1RfT0tf Rk9SX0xFVFRFUl9QIChJTlRWQUwgKHgpLCAnSScpCisgICAgICAgICAgICAg ICAgICAgfHwgQ09OU1RfT0tfRk9SX0xFVFRFUl9QIChJTlRWQUwgKHgpLCAn TCcpKQorICAgICAgICAgICAgKnRvdGFsID0gMTsKKyAgICAgICAgICBlbHNl CisgICAgICAgICAgICAqdG90YWwgPSBDT1NUU19OX0lOU05TICgyKTsKKyAg ICAgICAgfQorICAgICAgZWxzZSBpZiAob3V0ZXJfY29kZSA9PSBBTkQgfHwg b3V0ZXJfY29kZSA9PSBJT1IpCisgICAgICAgIHsKKyAgICAgICAgICBpZiAo Q09OU1RfT0tfRk9SX0xFVFRFUl9QIChJTlRWQUwgKHgpLCAnTScpKQorICAg ICAgICAgICAgKnRvdGFsID0gMDsKKyAgICAgICAgICBlbHNlIGlmIChDT05T VF9PS19GT1JfTEVUVEVSX1AgKElOVFZBTCAoeCksICdJJykKKyAgICAgICAg ICAgICAgICAgICB8fCBDT05TVF9PS19GT1JfTEVUVEVSX1AgKElOVFZBTCAo eCksICdLJykpCisgICAgICAgICAgICAqdG90YWwgPSAxOworICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICp0b3RhbCA9IENPU1RTX05fSU5TTlMgKDIp OworICAgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAg ICAqdG90YWwgPSAwOworICAgICAgICB9CiAgICAgICByZXR1cm4gdHJ1ZTsK IAotICAgICAgLyogT3RoZXJ3aXNlIGZhbGwgdGhyb3VnaCB0byB0aGUgaGFu ZGxpbmcgYmVsb3cgYmVjYXVzZQotICAgICAgICAgd2UnbGwgbmVlZCB0byBj b25zdHJ1Y3QgdGhlIGNvbnN0YW50LiAgKi8KICAgICBjYXNlIENPTlNUOgog ICAgIGNhc2UgU1lNQk9MX1JFRjoKICAgICBjYXNlIExBQkVMX1JFRjoKICAg ICBjYXNlIENPTlNUX0RPVUJMRToKLSAgICAgICp0b3RhbCA9IENPU1RTX05f SU5TTlMgKDEpOworICAgICAgKnRvdGFsID0gQ09TVFNfTl9JTlNOUyAoMik7 CiAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgTUVNOgpAQCAtMTAx MSw3ICsxMDM3LDggQEAgc2NvcmVfcnR4X2Nvc3RzIChydHggeCwgaW50IGNv ZGUsIGludCBvdQogICAgICAgICAgICp0b3RhbCA9IENPU1RTX05fSU5TTlMg KDQpOwogICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9Ci0gICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAqdG90YWwgPSBDT1NUU19OX0lOU05T ICgxKTsKKyAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBORUc6CiAg ICAgICBpZiAobW9kZSA9PSBESW1vZGUpCkBAIC0xMDIyLDIyICsxMDQ5LDM4 IEBAIHNjb3JlX3J0eF9jb3N0cyAocnR4IHgsIGludCBjb2RlLCBpbnQgb3UK ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNhc2UgTVVMVDoKLSAgICAg ICp0b3RhbCA9IENPU1RTX05fSU5TTlMgKDEyKTsKKyAgICAgICp0b3RhbCA9 IG9wdGltaXplX3NpemUgPyBDT1NUU19OX0lOU05TICgyKSA6IENPU1RTX05f SU5TTlMgKDEyKTsKICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBE SVY6CiAgICAgY2FzZSBNT0Q6CiAgICAgY2FzZSBVRElWOgogICAgIGNhc2Ug VU1PRDoKLSAgICAgICp0b3RhbCA9IENPU1RTX05fSU5TTlMgKDMzKTsKKyAg ICAgICp0b3RhbCA9IG9wdGltaXplX3NpemUgPyBDT1NUU19OX0lOU05TICgy KSA6IENPU1RTX05fSU5TTlMgKDMzKTsKICAgICAgIHJldHVybiB0cnVlOwog CiAgICAgY2FzZSBTSUdOX0VYVEVORDoKLSAgICAgICp0b3RhbCA9IENPU1RT X05fSU5TTlMgKDIpOwotICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBjYXNl IFpFUk9fRVhURU5EOgotICAgICAgKnRvdGFsID0gQ09TVFNfTl9JTlNOUyAo MSk7CisgICAgICBzd2l0Y2ggKEdFVF9NT0RFIChYRVhQICh4LCAwKSkpCisg ICAgICAgIHsKKyAgICAgICAgY2FzZSBRSW1vZGU6CisgICAgICAgIGNhc2Ug SEltb2RlOgorICAgICAgICAgIGlmIChHRVRfQ09ERSAoWEVYUCAoeCwgMCkp ID09IE1FTSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgKnRvdGFs ID0gQ09TVFNfTl9JTlNOUyAoMik7CisKKyAgICAgICAgICAgICAgaWYgKCFU QVJHRVRfTElUVExFX0VORElBTiAmJgorICAgICAgICAgICAgICAgICAgc2lk ZV9lZmZlY3RzX3AgKFhFWFAgKFhFWFAgKHgsIDApLCAwKSkpCisgICAgICAg ICAgICAgICAgKnRvdGFsID0gMTAwOworICAgICAgICAgICAgfQorICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICp0b3RhbCA9IENPU1RTX05fSU5TTlMg KDEpOworICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6Cisg ICAgICAgICAgKnRvdGFsID0gQ09TVFNfTl9JTlNOUyAoMSk7CisgICAgICAg ICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgIHJldHVybiB0cnVlOwogCiAg ICAgZGVmYXVsdDoKQEAgLTEwNDUsNiArMTA4OCwxMyBAQCBzY29yZV9ydHhf Y29zdHMgKHJ0eCB4LCBpbnQgY29kZSwgaW50IG91CiAgICAgfQogfQogCisv KiBJbXBsZW1lbnQgVEFSR0VUX0FERFJFU1NfQ09TVCBtYWNyby4gICovCitp bnQKK3Njb3JlX2FkZHJlc3NfY29zdCAocnR4IGFkZHIpCit7CisgIHJldHVy biBzY29yZV9hZGRyZXNzX2luc25zIChhZGRyLCBTSW1vZGUpOworfQorCiAv KiBJbXBsZW1lbnQgQVNNX09VVFBVVF9FWFRFUk5BTCBtYWNyby4gICovCiBp bnQKIHNjb3JlX291dHB1dF9leHRlcm5hbCAoRklMRSAqZmlsZSBBVFRSSUJV VEVfVU5VU0VELApAQCAtMTA4OSwxOCArMTEzOSwxNiBAQCBzY29yZV9yZXR1 cm5fYWRkciAoaW50IGNvdW50LCBydHggZnJhbWUgCiAvKiBJbXBsZW1lbnQg UFJJTlRfT1BFUkFORCBtYWNyby4gICovCiAvKiBTY29yZS1zcGVjaWZpYyBv cGVyYW5kIGNvZGVzOgogICAgJ1snICAgICAgICBwcmludCAuc2V0IG5vcjEg ZGlyZWN0aXZlCi0gICAnXScgICAgICAgIHByaW50IC5zZXQgcjEgICAgICAg IGRpcmVjdGl2ZQotCisgICAnXScgICAgICAgIHByaW50IC5zZXQgcjEgZGly ZWN0aXZlCiAgICAnVScgICAgICAgIHByaW50IGhpIHBhcnQgb2YgYSBDT05T VF9JTlQgcnR4Ci0gICAnRCcgICAgICAgIHByaW50IGZpcnN0IHBhcnQgb2Yg Y29uc3QgZG91YmxlCi0gICAnUycgICAgICAgIHNlbGVjdGl2ZWx5IHByaW50 ICchJyBpZiBvcGVyYW5kIGlzIDE1Yml0IGluc3RydWN0aW9uIGFjY2Vzc2li bGUKLSAgICdWJyAgICAgICAgcHJpbnQgInYhIiBpZiBvcGVyYW5kIGlzIDE1 Yml0IGluc3RydWN0aW9uIGFjY2Vzc2libGUsIG9yCi0gICAibGZoISIKLQor ICAgJ0UnICAgICAgICBwcmludCBsb2cyKHYpCisgICAnRicgICAgICAgIHBy aW50IGxvZzIofnYpCisgICAnRCcgICAgICAgIHByaW50IFNGbW9kZSBjb25z dCBkb3VibGUKKyAgICdTJyAgICAgICAgc2VsZWN0aXZlbHkgcHJpbnQgIiEi IGlmIG9wZXJhbmQgaXMgMTViaXQgaW5zdHJ1Y3Rpb24gYWNjZXNzaWJsZQor ICAgJ1YnICAgICAgICBwcmludCAidiEiIGlmIG9wZXJhbmQgaXMgMTViaXQg aW5zdHJ1Y3Rpb24gYWNjZXNzaWJsZSwgb3IgImxmaCEiCiAgICAnTCcgICAg ICAgIGxvdyAgcGFydCBvZiBESW1vZGUgcmVnIG9wZXJhbmQKICAgICdIJyAg ICAgICAgaGlnaCBwYXJ0IG9mIERJbW9kZSByZWcgb3BlcmFuZAotCi0gICAn QycgIHByaW50IHBhcnQgb2Ygb3Bjb2RlIGZvciBhIGJyYW5jaCBjb25kaXRp b24uICAqLworICAgJ0MnICAgICAgICBwcmludCBwYXJ0IG9mIG9wY29kZSBm b3IgYSBicmFuY2ggY29uZGl0aW9uLiAgKi8KIHZvaWQKIHNjb3JlX3ByaW50 X29wZXJhbmQgKEZJTEUgKmZpbGUsIHJ0eCBvcCwgaW50IGMpCiB7CkBAIC0x MTI1LDkgKzExNzMsMTEgQEAgc2NvcmVfcHJpbnRfb3BlcmFuZCAoRklMRSAq ZmlsZSwgcnR4IG9wLAogICBlbHNlIGlmIChjID09ICdEJykKICAgICB7CiAg ICAgICBpZiAoR0VUX0NPREUgKG9wKSA9PSBDT05TVF9ET1VCTEUpCi0gICAg ICAgIGZwcmludGYgKGZpbGUsIEhPU1RfV0lERV9JTlRfUFJJTlRfSEVYLAot ICAgICAgICAgICAgICAgICBUQVJHRVRfTElUVExFX0VORElBTgotICAgICAg ICAgICAgICAgICA/IENPTlNUX0RPVUJMRV9MT1cgKG9wKSA6IENPTlNUX0RP VUJMRV9ISUdIIChvcCkpOworICAgICAgICB7CisgICAgICAgICAgcnR4IHRl bXAgPSBnZW5fbG93cGFydCAoU0ltb2RlLCBvcCk7CisgICAgICAgICAgZ2Nj X2Fzc2VydCAoR0VUX01PREUgKG9wKSA9PSBTRm1vZGUpOworICAgICAgICAg IGZwcmludGYgKGZpbGUsIEhPU1RfV0lERV9JTlRfUFJJTlRfSEVYLCBJTlRW QUwgKHRlbXApKTsKKyAgICAgICAgfQogICAgICAgZWxzZQogICAgICAgICBv dXRwdXRfYWRkcl9jb25zdCAoZmlsZSwgb3ApOwogICAgIH0KQEAgLTExNDIs MjMgKzExOTIsMTcgQEAgc2NvcmVfcHJpbnRfb3BlcmFuZCAoRklMRSAqZmls ZSwgcnR4IG9wLAogICAgICAgZ2NjX2Fzc2VydCAoY29kZSA9PSBSRUcpOwog ICAgICAgZnByaW50ZiAoZmlsZSwgRzE2X1JFR19QIChSRUdOTyAob3ApKSA/ ICJ2ISIgOiAibGZoISIpOwogICAgIH0KLSAgZWxzZSBpZiAoY29kZSA9PSBS RUcpCi0gICAgewotICAgICAgaW50IHJlZ251bSA9IFJFR05PIChvcCk7Ci0g ICAgICBpZiAoKGMgPT0gJ0gnICYmICFXT1JEU19CSUdfRU5ESUFOKQotICAg ICAgICAgIHx8IChjID09ICdMJyAmJiBXT1JEU19CSUdfRU5ESUFOKSkKLSAg ICAgICAgcmVnbnVtICsrOwotICAgICAgZnByaW50ZiAoZmlsZSwgIiVzIiwg cmVnX25hbWVzW3JlZ251bV0pOwotICAgIH0KICAgZWxzZSBpZiAoYyA9PSAn QycpCiAgICAgeworICAgICAgZW51bSBtYWNoaW5lX21vZGUgbW9kZSA9IEdF VF9NT0RFIChYRVhQIChvcCwgMCkpOworCiAgICAgICBzd2l0Y2ggKGNvZGUp CiAgICAgICAgIHsKICAgICAgICAgY2FzZSBFUTogZnB1dHMgKCJlcSIsIGZp bGUpOyBicmVhazsKICAgICAgICAgY2FzZSBORTogZnB1dHMgKCJuZSIsIGZp bGUpOyBicmVhazsKICAgICAgICAgY2FzZSBHVDogZnB1dHMgKCJndCIsIGZp bGUpOyBicmVhazsKLSAgICAgICAgY2FzZSBHRTogZnB1dHMgKCJnZSIsIGZp bGUpOyBicmVhazsKLSAgICAgICAgY2FzZSBMVDogZnB1dHMgKCJsdCIsIGZp bGUpOyBicmVhazsKKyAgICAgICAgY2FzZSBHRTogZnB1dHMgKG1vZGUgIT0g Q0Ntb2RlID8gInBsIiA6ICJnZSIsIGZpbGUpOyBicmVhazsKKyAgICAgICAg Y2FzZSBMVDogZnB1dHMgKG1vZGUgIT0gQ0Ntb2RlID8gIm1pIiA6ICJsdCIs IGZpbGUpOyBicmVhazsKICAgICAgICAgY2FzZSBMRTogZnB1dHMgKCJsZSIs IGZpbGUpOyBicmVhazsKICAgICAgICAgY2FzZSBHVFU6IGZwdXRzICgiZ3R1 IiwgZmlsZSk7IGJyZWFrOwogICAgICAgICBjYXNlIEdFVTogZnB1dHMgKCJj cyIsIGZpbGUpOyBicmVhazsKQEAgLTExNjgsNiArMTIxMiw0NiBAQCBzY29y ZV9wcmludF9vcGVyYW5kIChGSUxFICpmaWxlLCBydHggb3AsCiAgICAgICAg ICAgb3V0cHV0X29wZXJhbmRfbG9zc2FnZSAoImludmFsaWQgb3BlcmFuZCBm b3IgY29kZTogJyVjJyIsIGNvZGUpOwogICAgICAgICB9CiAgICAgfQorICBl bHNlIGlmIChjID09ICdFJykKKyAgICB7CisgICAgICB1bnNpZ25lZCBIT1NU X1dJREVfSU5UIGk7CisgICAgICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHBv dzJtYXNrID0gMTsKKyAgICAgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgdmFs OworCisgICAgICB2YWwgPSBJTlRWQUwgKG9wKTsKKyAgICAgIGZvciAoaSA9 IDA7IGkgPCAzMjsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgaWYgKHZh bCA9PSBwb3cybWFzaykKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg IHBvdzJtYXNrIDw8PSAxOworICAgICAgICB9CisgICAgICBnY2NfYXNzZXJ0 IChpIDwgMzIpOworICAgICAgZnByaW50ZiAoZmlsZSwgSE9TVF9XSURFX0lO VF9QUklOVF9IRVgsIGkpOworICAgIH0KKyAgZWxzZSBpZiAoYyA9PSAnRicp CisgICAgeworICAgICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBpOworICAg ICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBwb3cybWFzayA9IDE7CisgICAg ICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHZhbDsKKworICAgICAgdmFsID0g fklOVFZBTCAob3ApOworICAgICAgZm9yIChpID0gMDsgaSA8IDMyOyBpKysp CisgICAgICAgIHsKKyAgICAgICAgICBpZiAodmFsID09IHBvdzJtYXNrKQor ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgcG93Mm1hc2sgPDw9IDE7 CisgICAgICAgIH0KKyAgICAgIGdjY19hc3NlcnQgKGkgPCAzMik7CisgICAg ICBmcHJpbnRmIChmaWxlLCBIT1NUX1dJREVfSU5UX1BSSU5UX0hFWCwgaSk7 CisgICAgfQorICBlbHNlIGlmIChjb2RlID09IFJFRykKKyAgICB7CisgICAg ICBpbnQgcmVnbnVtID0gUkVHTk8gKG9wKTsKKyAgICAgIGlmICgoYyA9PSAn SCcgJiYgIVdPUkRTX0JJR19FTkRJQU4pCisgICAgICAgICAgfHwgKGMgPT0g J0wnICYmIFdPUkRTX0JJR19FTkRJQU4pKQorICAgICAgICByZWdudW0gKys7 CisgICAgICBmcHJpbnRmIChmaWxlLCAiJXMiLCByZWdfbmFtZXNbcmVnbnVt XSk7CisgICAgfQogICBlbHNlCiAgICAgewogICAgICAgc3dpdGNoIChjb2Rl KQpAQCAtMTIzMyw0ICsxMzE3LDQ4IEBAIHNjb3JlX3ByaW50X29wZXJhbmRf YWRkcmVzcyAoRklMRSAqZmlsZSwKICAgZ2NjX3VucmVhY2hhYmxlICgpOwog fQogCisvKiBJbXBsZW1lbnQgU0VMRUNUX0NDX01PREUgbWFjcm8uICAqLwor ZW51bSBtYWNoaW5lX21vZGUKK3Njb3JlX3NlbGVjdF9jY19tb2RlIChlbnVt IHJ0eF9jb2RlIG9wLCBydHggeCwgcnR4IHkpCit7CisgIGlmICgob3AgPT0g RVEgfHwgb3AgPT0gTkUgfHwgb3AgPT0gTFQgfHwgb3AgPT0gR0UpCisgICAg ICAmJiB5ID09IGNvbnN0MF9ydHgKKyAgICAgICYmIEdFVF9NT0RFICh4KSA9 PSBTSW1vZGUpCisgICAgeworICAgICAgc3dpdGNoIChHRVRfQ09ERSAoeCkp CisgICAgICAgIHsKKyAgICAgICAgY2FzZSBQTFVTOgorICAgICAgICBjYXNl IE1JTlVTOgorICAgICAgICBjYXNlIE5FRzoKKyAgICAgICAgY2FzZSBBTkQ6 CisgICAgICAgIGNhc2UgSU9SOgorICAgICAgICBjYXNlIFhPUjoKKyAgICAg ICAgY2FzZSBOT1Q6CisgICAgICAgIGNhc2UgQVNISUZUOgorICAgICAgICBj YXNlIExTSElGVFJUOgorICAgICAgICBjYXNlIEFTSElGVFJUOgorICAgICAg ICAgIHJldHVybiBDQ19OWm1vZGU7CisKKyAgICAgICAgY2FzZSBTSUdOX0VY VEVORDoKKyAgICAgICAgY2FzZSBaRVJPX0VYVEVORDoKKyAgICAgICAgY2Fz ZSBST1RBVEU6CisgICAgICAgIGNhc2UgUk9UQVRFUlQ6CisgICAgICAgICAg cmV0dXJuIChvcCA9PSBMVCB8fCBvcCA9PSBHRSkgPyBDQ19ObW9kZSA6IEND bW9kZTsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgIHJldHVybiBD Q21vZGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgaWYgKChvcCA9PSBFUSB8 fCBvcCA9PSBORSkKKyAgICAgICYmIChHRVRfQ09ERSAoeSkgPT0gTkVHKQor ICAgICAgJiYgcmVnaXN0ZXJfb3BlcmFuZCAoWEVYUCAoeSwgMCksIFNJbW9k ZSkKKyAgICAgICYmIHJlZ2lzdGVyX29wZXJhbmQgKHgsIFNJbW9kZSkpCisg ICAgeworICAgICAgcmV0dXJuIENDX05abW9kZTsKKyAgICB9CisKKyAgcmV0 dXJuIENDbW9kZTsKK30KKwogc3RydWN0IGdjY190YXJnZXQgdGFyZ2V0bSA9 IFRBUkdFVF9JTklUSUFMSVpFUjsKSW5kZXg6IGdjYy9jb25maWcvc2NvcmUv c2NvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvY29uZmln L3Njb3JlL3Njb3JlLmgJKHJldmlzaW9uIDEyMDI1MikKKysrIGdjYy9jb25m aWcvc2NvcmUvc2NvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTkgKzI4 LDIwIEBAIGV4dGVybiBHVFkoKCkpIHJ0eCBjbXBfb3AwOwogZXh0ZXJuIEdU WSgoKSkgcnR4IGNtcF9vcDE7CiAKIC8qIENvbnRyb2xsaW5nIHRoZSBDb21w aWxhdGlvbiBEcml2ZXIuICAqLworI3VuZGVmIFNXSVRDSF9UQUtFU19BUkcK ICNkZWZpbmUgU1dJVENIX1RBS0VTX0FSRyhDSEFSKSBcCiAgIChERUZBVUxU X1NXSVRDSF9UQUtFU19BUkcgKENIQVIpIHx8IChDSEFSKSA9PSAnRycpCiAK IC8qIENDMV9TUEVDIGlzIHRoZSBzZXQgb2YgYXJndW1lbnRzIHRvIHBhc3Mg dG8gdGhlIGNvbXBpbGVyIHByb3Blci4gICovCiAjdW5kZWYgQ0MxX1NQRUMK LSNkZWZpbmUgQ0MxX1NQRUMgICAgICAgICAgICAgICAgICIleyFtZWw6LW1l Yn0iCisjZGVmaW5lIENDMV9TUEVDICAgICAgICAgICAgICAgICAiJXtHKn0g JXshbWVsOi1tZWJ9IgogCiAjdW5kZWYgQVNNX1NQRUMKICNkZWZpbmUgQVNN X1NQRUMgXAogICAiJXshbWVsOi1FQn0gJXttZWw6LUVMfSAle21zY29yZTV1 Oi1TQ09SRTVVfSAle21zY29yZTc6LVNDT1JFN30gJXtHKn0iCiAKICN1bmRl ZiBMSU5LX1NQRUMKLSNkZWZpbmUgTElOS19TUEVDICAgICAgICAgICAgICAg ICAiJXshbWVsOi1FQn0gJXttZWw6LUVMfSAle0cqfSIKKyNkZWZpbmUgTElO S19TUEVDICAgICAgICAgICAgICAgICIleyFtZWw6LUVCfSAle21lbDotRUx9 ICV7Ryp9IgogCiAvKiBSdW4tdGltZSBUYXJnZXQgU3BlY2lmaWNhdGlvbi4g ICovCiAjZGVmaW5lIFRBUkdFVF9DUFVfQ1BQX0JVSUxUSU5TKCkgICAgICAg ICAgICAgICBcCkBAIC05Niw3ICs5Nyw3IEBAIGV4dGVybiBHVFkoKCkpIHJ0 eCBjbXBfb3AxOwogCiAvKiBBbGxvY2F0aW9uIGJvdW5kYXJ5IChpbiAqYml0 cyopIGZvciBzdG9yaW5nIGFyZ3VtZW50cyBpbiBhcmd1bWVudCBsaXN0LiAg Ki8KICNkZWZpbmUgUEFSTV9CT1VOREFSWSAgICAgICAgICAgICAgICAgIEJJ VFNfUEVSX1dPUkQKLSNkZWZpbmUgU1RBQ0tfQk9VTkRBUlkgICAgICAgICAg ICAgICAgIDY0CisjZGVmaW5lIFNUQUNLX0JPVU5EQVJZICAgICAgICAgICAg ICAgICBCSVRTX1BFUl9XT1JECiAKIC8qIEFsbG9jYXRpb24gYm91bmRhcnkg KGluICpiaXRzKikgZm9yIHRoZSBjb2RlIG9mIGEgZnVuY3Rpb24uICAqLwog I2RlZmluZSBGVU5DVElPTl9CT1VOREFSWSAgICAgICAgICAgICAgQklUU19Q RVJfV09SRApAQCAtMTE1LDEyICsxMTYsNDEgQEAgZXh0ZXJuIEdUWSgoKSkg cnR4IGNtcF9vcDE7CiAgICBkYXRhIHRvIG1ha2UgaXQgYWxsIGZpdCBpbiBm ZXdlciBjYWNoZSBsaW5lcy4gIEFub3RoZXIgaXMgdG8KICAgIGNhdXNlIGNo YXJhY3RlciBhcnJheXMgdG8gYmUgd29yZC1hbGlnbmVkIHNvIHRoYXQgYHN0 cmNweScgY2FsbHMKICAgIHRoYXQgY29weSBjb25zdGFudHMgdG8gY2hhcmFj dGVyIGFycmF5cyBjYW4gYmUgZG9uZSBpbmxpbmUuICAqLwotI2RlZmluZSBE QVRBX0FMSUdOTUVOVChUWVBFLCBBTElHTikgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAoKCgoQUxJR04pIDwgQklUU19QRVJf V09SRCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotICAgICYmIChUUkVFX0NPREUgKFRZUEUpID09IEFSUkFZX1RZUEUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB8 fCBUUkVFX0NPREUgKFRZUEUpID09IFVOSU9OX1RZUEUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBEQVRBX0FMSUdOTUVOVChU WVBFLCBBTElHTikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgKCgoKEFMSUdOKSA8IEJJVFNfUEVSX1dPUkQpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgJiYg KFRSRUVfQ09ERSAoVFlQRSkgPT0gQVJSQVlfVFlQRSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB8fCBUUkVFX0NPREUg KFRZUEUpID09IFVOSU9OX1RZUEUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKICAgICAgICAgfHwgVFJFRV9DT0RFIChUWVBFKSA9PSBSRUNP UkRfVFlQRSkpID8gQklUU19QRVJfV09SRCA6IChBTElHTikpCiAKKy8qIElm IGRlZmluZWQsIGEgQyBleHByZXNzaW9uIHRvIGNvbXB1dGUgdGhlIGFsaWdu bWVudCBnaXZlbiB0byBhCisgICBjb25zdGFudCB0aGF0IGlzIGJlaW5nIHBs YWNlZCBpbiBtZW1vcnkuICBFWFAgaXMgdGhlIGNvbnN0YW50CisgICBhbmQg QUxJR04gaXMgdGhlIGFsaWdubWVudCB0aGF0IHRoZSBvYmplY3Qgd291bGQg b3JkaW5hcmlseSBoYXZlLgorICAgVGhlIHZhbHVlIG9mIHRoaXMgbWFjcm8g aXMgdXNlZCBpbnN0ZWFkIG9mIHRoYXQgYWxpZ25tZW50IHRvIGFsaWduCisg ICB0aGUgb2JqZWN0LgorCisgICBJZiB0aGlzIG1hY3JvIGlzIG5vdCBkZWZp bmVkLCB0aGVuIEFMSUdOIGlzIHVzZWQuCisKKyAgIFRoZSB0eXBpY2FsIHVz ZSBvZiB0aGlzIG1hY3JvIGlzIHRvIGluY3JlYXNlIGFsaWdubWVudCBmb3Ig c3RyaW5nCisgICBjb25zdGFudHMgdG8gYmUgd29yZCBhbGlnbmVkIHNvIHRo YXQgYHN0cmNweScgY2FsbHMgdGhhdCBjb3B5CisgICBjb25zdGFudHMgY2Fu IGJlIGRvbmUgaW5saW5lLiAgKi8KKyNkZWZpbmUgQ09OU1RBTlRfQUxJR05N RU5UKEVYUCwgQUxJR04pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgKChUUkVFX0NPREUgKEVYUCkgPT0gU1RSSU5HX0NTVCAgfHwg VFJFRV9DT0RFIChFWFApID09IENPTlNUUlVDVE9SKSAgIFwKKyAgICYmIChB TElHTikgPCBCSVRTX1BFUl9XT1JEID8gQklUU19QRVJfV09SRCA6IChBTElH TikpCisKKy8qIElmIGRlZmluZWQsIGEgQyBleHByZXNzaW9uIHRvIGNvbXB1 dGUgdGhlIGFsaWdubWVudCBmb3IgYSBsb2NhbAorICAgdmFyaWFibGUuICBU WVBFIGlzIHRoZSBkYXRhIHR5cGUsIGFuZCBBTElHTiBpcyB0aGUgYWxpZ25t ZW50IHRoYXQKKyAgIHRoZSBvYmplY3Qgd291bGQgb3JkaW5hcmlseSBoYXZl LiAgVGhlIHZhbHVlIG9mIHRoaXMgbWFjcm8gaXMgdXNlZAorICAgaW5zdGVh ZCBvZiB0aGF0IGFsaWdubWVudCB0byBhbGlnbiB0aGUgb2JqZWN0LgorCisg ICBJZiB0aGlzIG1hY3JvIGlzIG5vdCBkZWZpbmVkLCB0aGVuIEFMSUdOIGlz IHVzZWQuCisKKyAgIE9uZSB1c2Ugb2YgdGhpcyBtYWNybyBpcyB0byBpbmNy ZWFzZSBhbGlnbm1lbnQgb2YgbWVkaXVtLXNpemUKKyAgIGRhdGEgdG8gbWFr ZSBpdCBhbGwgZml0IGluIGZld2VyIGNhY2hlIGxpbmVzLiAgKi8KKyNkZWZp bmUgTE9DQUxfQUxJR05NRU5UKFRZUEUsIEFMSUdOKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgKChUUkVFX0NPREUgKFRZUEUp ID09IEFSUkFZX1RZUEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAmJiBUWVBFX01PREUgKFRSRUVfVFlQRSAoVFlQRSkp ID09IFFJbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAm JiAoQUxJR04pIDwgQklUU19QRVJfV09SRCkgPyBCSVRTX1BFUl9XT1JEIDog KEFMSUdOKSkKKwogLyogQWxpZ25tZW50IG9mIGZpZWxkIGFmdGVyIGBpbnQg OiAwJyBpbiBhIHN0cnVjdHVyZS4gICovCiAjZGVmaW5lIEVNUFRZX0ZJRUxE X0JPVU5EQVJZICAgICAgICAgICAzMgogCkBAIC0yMDksNyArMjM5LDcgQEAg ZXh0ZXJuIEdUWSgoKSkgcnR4IGNtcF9vcDE7CiB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg IC8qIEdlbmVyYWwgUHVycG9zZSBSZWdpc3RlcnMgICovICAgICAgICAgICAg ICAgICAgICAgICBcCiAgIDEsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsICAgICAgICBcCi0gIDAsIDAsIDAsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDEsIDEsICAgICAgICBcCisg IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDEs IDEsICAgICAgICBcCiAgIC8qIENvbnRyb2wgUmVnaXN0ZXJzICAqLyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIDEsIDEsIDEsIDEsIDEs IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsICAgICAgICBcCiAg IC8qIENFSC8gQ0VMLyBDTlQvIExDUi8gU0NSIC8gQVJHX1BPSU5URVJfUkVH TlVNLyBGUkFNRV9QT0lOVEVSX1JFR05VTSAqL1wKQEAgLTI0NSw4ICsyNzUs OCBAQCBleHRlcm4gR1RZKCgpKSBydHggY21wX29wMTsKIH0KIAogI2RlZmlu ZSBSRUdfQUxMT0NfT1JERVIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi17ICAgMCwgIDEsICA0LCAgNSwg IDYsICA3LCAgOCwgIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAx NywgICAgICAgIFwKLSAgIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAy NSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgIDIsICAzLCAgICAgICAgXAor eyAgIDAsICAxLCAgNiwgIDcsICA4LCAgOSwgMTAsIDExLCAgNCwgIDUsIDIy LCAyMywgMjQsIDI1LCAyNiwgMjcsICAgICAgICBcCisgICAxMiwgMTMsIDE0 LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjgsIDI5LCAzMCwgMzEs ICAyLCAgMywgICAgICAgIFwKICAgIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcs IDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCAgICAg ICAgXAogICAgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1Niwg NTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsICAgICAgICBcCiAgICA2NCwg NjUsIDY2LCA2NywgNjgsIDY5LCA3MCwgNzEsIDcyLCA3MywgNzQsIDc1LCA3 NiwgNzcsIDc4LCA3OSwgICAgICAgIFwKQEAgLTM4NiwxOCArNDE2LDE4IEBA IGVudW0gcmVnX2NsYXNzCiAgIHNjb3JlX3ByZWZlcnJlZF9yZWxvYWRfY2xh c3MgKFgsIENMQVNTKQogCiAvKiBJZiB3ZSBuZWVkIHRvIGxvYWQgc2hvcnRz IGJ5dGUtYXQtYS10aW1lLCB0aGVuIHdlIG5lZWQgYSBzY3JhdGNoLiAgKi8K LSNkZWZpbmUgU0VDT05EQVJZX0lOUFVUX1JFTE9BRF9DTEFTUyhDTEFTUywg TU9ERSwgWCkgICAgICAgIFwKKyNkZWZpbmUgU0VDT05EQVJZX0lOUFVUX1JF TE9BRF9DTEFTUyhDTEFTUywgTU9ERSwgWCkgXAogICBzY29yZV9zZWNvbmRh cnlfcmVsb2FkX2NsYXNzIChDTEFTUywgTU9ERSwgWCkKIAogLyogUmV0dXJu IHRoZSByZWdpc3RlciBjbGFzcyBvZiBhIHNjcmF0Y2ggcmVnaXN0ZXIgbmVl ZGVkIHRvIGNvcHkgSU4gaW50bwogICAgb3Igb3V0IG9mIGEgcmVnaXN0ZXIg aW4gQ0xBU1MgaW4gTU9ERS4gIElmIGl0IGNhbiBiZSBkb25lIGRpcmVjdGx5 LAogICAgTk9fUkVHUyBpcyByZXR1cm5lZC4gICovCi0jZGVmaW5lIFNFQ09O REFSWV9PVVRQVVRfUkVMT0FEX0NMQVNTKENMQVNTLCBNT0RFLCBYKSAgICAg ICBcCisjZGVmaW5lIFNFQ09OREFSWV9PVVRQVVRfUkVMT0FEX0NMQVNTKENM QVNTLCBNT0RFLCBYKSBcCiAgIHNjb3JlX3NlY29uZGFyeV9yZWxvYWRfY2xh c3MgKENMQVNTLCBNT0RFLCBYKQogCiAvKiBSZXR1cm4gdGhlIG1heGltdW0g bnVtYmVyIG9mIGNvbnNlY3V0aXZlIHJlZ2lzdGVycwogICAgbmVlZGVkIHRv IHJlcHJlc2VudCBtb2RlIE1PREUgaW4gYSByZWdpc3RlciBvZiBjbGFzcyBD TEFTUy4gICovCi0jZGVmaW5lIENMQVNTX01BWF9OUkVHUyhDTEFTUywgTU9E RSkgICAgXAorI2RlZmluZSBDTEFTU19NQVhfTlJFR1MoQ0xBU1MsIE1PREUp IFwKICAgKChHRVRfTU9ERV9TSVpFIChNT0RFKSArIFVOSVRTX1BFUl9XT1JE IC0gMSkgLyBVTklUU19QRVJfV09SRCkKIAogI2RlZmluZSBDQU5OT1RfQ0hB TkdFX01PREVfQ0xBU1MoRlJPTSwgVE8sIENMQVNTKSAgICBcCkBAIC02MDcs OCArNjM3LDggQEAgdHlwZWRlZiBzdHJ1Y3Qgc2NvcmVfYXJncwogI2RlZmlu ZSBIQVZFX1BSRV9ERUNSRU1FTlQgICAgICAgICAgICAgIDEKICNkZWZpbmUg SEFWRV9QT1NUX0lOQ1JFTUVOVCAgICAgICAgICAgICAxCiAjZGVmaW5lIEhB VkVfUE9TVF9ERUNSRU1FTlQgICAgICAgICAgICAgMQotI2RlZmluZSBIQVZF X1BSRV9NT0RJRllfRElTUCAgICAgICAgICAgIDAKLSNkZWZpbmUgSEFWRV9Q T1NUX01PRElGWV9ESVNQICAgICAgICAgICAwCisjZGVmaW5lIEhBVkVfUFJF X01PRElGWV9ESVNQICAgICAgICAgICAgMQorI2RlZmluZSBIQVZFX1BPU1Rf TU9ESUZZX0RJU1AgICAgICAgICAgIDEKICNkZWZpbmUgSEFWRV9QUkVfTU9E SUZZX1JFRyAgICAgICAgICAgICAwCiAjZGVmaW5lIEhBVkVfUE9TVF9NT0RJ RllfUkVHICAgICAgICAgICAgMAogCkBAIC02NjAsNiArNjkwLDEzIEBAIHR5 cGVkZWYgc3RydWN0IHNjb3JlX2FyZ3MKIAogI2RlZmluZSBMRUdJVElNQVRF X0NPTlNUQU5UX1AoWCkgICAgICAgIDEKIAorLyogQ29uZGl0aW9uIENvZGUg U3RhdHVzLiAgKi8KKyNkZWZpbmUgU0VMRUNUX0NDX01PREUoT1AsIFgsIFkp ICAgICAgICBzY29yZV9zZWxlY3RfY2NfbW9kZSAoT1AsIFgsIFkpCisKKy8q IFJldHVybiBub256ZXJvIGlmIFNFTEVDVF9DQ19NT0RFIHdpbGwgbmV2ZXIg cmV0dXJuIE1PREUgZm9yIGEKKyAgIGZsb2F0aW5nIHBvaW50IGluZXF1YWxp dHkgY29tcGFyaXNvbi4gICovCisjZGVmaW5lIFJFVkVSU0lCTEVfQ0NfTU9E RShNT0RFKSAgICAgICAgMQorCiAvKiBEZXNjcmliaW5nIFJlbGF0aXZlIENv c3RzIG9mIE9wZXJhdGlvbnMgICovCiAvKiBDb21wdXRlIGV4dHJhIGNvc3Qg b2YgbW92aW5nIGRhdGEgYmV0d2VlbiBvbmUgcmVnaXN0ZXIgY2xhc3MgYW5k IGFub3RoZXIuICAqLwogI2RlZmluZSBSRUdJU1RFUl9NT1ZFX0NPU1QoTU9E RSwgRlJPTSwgVE8pIFwKQEAgLTc1MywzMiArNzkwLDMyIEBAIHR5cGVkZWYg c3RydWN0IHNjb3JlX2FyZ3MKICAgc3ByaW50ZiAoKExBQkVMKSwgIiolcyVz JWxkIiwgKExPQ0FMX0xBQkVMX1BSRUZJWCksIChQUkVGSVgpLCAobG9uZykg KE5VTSkpCiAKIC8qIE91dHB1dCBvZiBBc3NlbWJsZXIgSW5zdHJ1Y3Rpb25z LiAgKi8KLSNkZWZpbmUgUkVHSVNURVJfTkFNRVMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi17ICJyMCIs ICJyMSIsICJyMiIsICJyMyIsICJyNCIsICJyNSIsICJyNiIsICJyNyIsICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAicjgiLCAicjkiLCAicjEwIiwg InIxMSIsICJyMTIiLCAicjEzIiwgInIxNCIsICJyMTUiLCAgICAgICAgICAg ICAgICAgIFwKLSAgInIxNiIsICJyMTciLCAicjE4IiwgInIxOSIsICJyMjAi LCAicjIxIiwgInIyMiIsICJyMjMiLCAgICAgICAgICAgICAgICBcCi0gICJy MjQiLCAicjI1IiwgInIyNiIsICJyMjciLCAicjI4IiwgInIyOSIsICJyMzAi LCAicjMxIiwgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKLSAgImNyMCIsICJjcjEiLCAiY3IyIiwgImNyMyIsICJj cjQiLCAiY3I1IiwgImNyNiIsICJjcjciLCAgICAgICAgICAgICAgICBcCi0g ICJjcjgiLCAiY3I5IiwgImNyMTAiLCAiY3IxMSIsICJjcjEyIiwgImNyMTMi LCAiY3IxNCIsICJjcjE1IiwgICAgICAgICAgXAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSAgImNlaCIsICJjZWwiLCAic3IwIiwgInNyMSIs ICJzcjIiLCAiX2FyZyIsICJfZnJhbWUiLCAiIiwgICAgICAgICAgICAgICBc Ci0gICJjcjI0IiwgImNyMjUiLCAiY3IyNiIsICJjcjI3IiwgImNyMjgiLCAi Y3IyOSIsICJjcjMwIiwgImNyMzEiLCAgICAgICAgXAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSAgImMxcjAiLCAiYzFyMSIsICJjMXIyIiwg ImMxcjMiLCAiYzFyNCIsICJjMXI1IiwgImMxcjYiLCAiYzFyNyIsICAgICAg ICBcCi0gICJjMXI4IiwgImMxcjkiLCAiYzFyMTAiLCAiYzFyMTEiLCAiYzFy MTIiLCAiYzFyMTMiLCAiYzFyMTQiLCAiYzFyMTUiLCAgXAotICAiYzFyMTYi LCAiYzFyMTciLCAiYzFyMTgiLCAiYzFyMTkiLCAiYzFyMjAiLCAiYzFyMjEi LCAiYzFyMjIiLCAiYzFyMjMiLFwKLSAgImMxcjI0IiwgImMxcjI1IiwgImMx cjI2IiwgImMxcjI3IiwgImMxcjI4IiwgImMxcjI5IiwgImMxcjMwIiwgImMx cjMxIixcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAiYzJy MCIsICJjMnIxIiwgImMycjIiLCAiYzJyMyIsICJjMnI0IiwgImMycjUiLCAi YzJyNiIsICJjMnI3IiwgICAgICAgIFwKLSAgImMycjgiLCAiYzJyOSIsICJj MnIxMCIsICJjMnIxMSIsICJjMnIxMiIsICJjMnIxMyIsICJjMnIxNCIsICJj MnIxNSIsICBcCi0gICJjMnIxNiIsICJjMnIxNyIsICJjMnIxOCIsICJjMnIx OSIsICJjMnIyMCIsICJjMnIyMSIsICJjMnIyMiIsICJjMnIyMyIsXAotICAi YzJyMjQiLCAiYzJyMjUiLCAiYzJyMjYiLCAiYzJyMjciLCAiYzJyMjgiLCAi YzJyMjkiLCAiYzJyMzAiLCAiYzJyMzEiLFwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICJjM3IwIiwgImMzcjEiLCAiYzNyMiIsICJjM3Iz IiwgImMzcjQiLCAiYzNyNSIsICJjM3I2IiwgImMzcjciLCAgICAgICAgXAot ICAiYzNyOCIsICJjM3I5IiwgImMzcjEwIiwgImMzcjExIiwgImMzcjEyIiwg ImMzcjEzIiwgImMzcjE0IiwgImMzcjE1IiwgIFwKLSAgImMzcjE2IiwgImMz cjE3IiwgImMzcjE4IiwgImMzcjE5IiwgImMzcjIwIiwgImMzcjIxIiwgImMz cjIyIiwgImMzcjIzIixcCi0gICJjM3IyNCIsICJjM3IyNSIsICJjM3IyNiIs ICJjM3IyNyIsICJjM3IyOCIsICJjM3IyOSIsICJjM3IzMCIsICJjM3IzMSIs XAorI2RlZmluZSBSRUdJU1RFUl9OQU1FUyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit7ICJyMCIsICJy MSIsICJyMiIsICJyMyIsICJyNCIsICJyNSIsICJyNiIsICJyNyIsICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgInI4IiwgInI5IiwgInIxMCIsICJy MTEiLCAicjEyIiwgInIxMyIsICJyMTQiLCAicjE1IiwgICAgICAgICAgICAg ICAgICAgXAorICAicjE2IiwgInIxNyIsICJyMTgiLCAicjE5IiwgInIyMCIs ICJyMjEiLCAicjIyIiwgInIyMyIsICAgICAgICAgICAgICAgICBcCisgICJy MjQiLCAicjI1IiwgInIyNiIsICJyMjciLCAicjI4IiwgInIyOSIsICJyMzAi LCAicjMxIiwgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorICAiY3IwIiwgImNyMSIsICJjcjIiLCAiY3IzIiwg ImNyNCIsICJjcjUiLCAiY3I2IiwgImNyNyIsICAgICAgICAgICAgICAgICBc CisgICJjcjgiLCAiY3I5IiwgImNyMTAiLCAiY3IxMSIsICJjcjEyIiwgImNy MTMiLCAiY3IxNCIsICJjcjE1IiwgICAgICAgICAgIFwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorICAiY2VoIiwgImNlbCIsICJzcjAiLCAi c3IxIiwgInNyMiIsICJfYXJnIiwgIl9mcmFtZSIsICIiLCAgICAgICAgICAg ICAgICBcCisgICJjcjI0IiwgImNyMjUiLCAiY3IyNiIsICJjcjI3IiwgImNy MjgiLCAiY3IyOSIsICJjcjMwIiwgImNyMzEiLCAgICAgICAgIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAiYzFyMCIsICJjMXIxIiwg ImMxcjIiLCAiYzFyMyIsICJjMXI0IiwgImMxcjUiLCAiYzFyNiIsICJjMXI3 IiwgICAgICAgICBcCisgICJjMXI4IiwgImMxcjkiLCAiYzFyMTAiLCAiYzFy MTEiLCAiYzFyMTIiLCAiYzFyMTMiLCAiYzFyMTQiLCAiYzFyMTUiLCAgIFwK KyAgImMxcjE2IiwgImMxcjE3IiwgImMxcjE4IiwgImMxcjE5IiwgImMxcjIw IiwgImMxcjIxIiwgImMxcjIyIiwgImMxcjIzIiwgXAorICAiYzFyMjQiLCAi YzFyMjUiLCAiYzFyMjYiLCAiYzFyMjciLCAiYzFyMjgiLCAiYzFyMjkiLCAi YzFyMzAiLCAiYzFyMzEiLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgImMycjAiLCAiYzJyMSIsICJjMnIyIiwgImMycjMiLCAiYzJy NCIsICJjMnI1IiwgImMycjYiLCAiYzJyNyIsICAgICAgICAgXAorICAiYzJy OCIsICJjMnI5IiwgImMycjEwIiwgImMycjExIiwgImMycjEyIiwgImMycjEz IiwgImMycjE0IiwgImMycjE1IiwgICBcCisgICJjMnIxNiIsICJjMnIxNyIs ICJjMnIxOCIsICJjMnIxOSIsICJjMnIyMCIsICJjMnIyMSIsICJjMnIyMiIs ICJjMnIyMyIsIFwKKyAgImMycjI0IiwgImMycjI1IiwgImMycjI2IiwgImMy cjI3IiwgImMycjI4IiwgImMycjI5IiwgImMycjMwIiwgImMycjMxIiwgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICJjM3IwIiwgImMz cjEiLCAiYzNyMiIsICJjM3IzIiwgImMzcjQiLCAiYzNyNSIsICJjM3I2Iiwg ImMzcjciLCAgICAgICAgIFwKKyAgImMzcjgiLCAiYzNyOSIsICJjM3IxMCIs ICJjM3IxMSIsICJjM3IxMiIsICJjM3IxMyIsICJjM3IxNCIsICJjM3IxNSIs ICAgXAorICAiYzNyMTYiLCAiYzNyMTciLCAiYzNyMTgiLCAiYzNyMTkiLCAi YzNyMjAiLCAiYzNyMjEiLCAiYzNyMjIiLCAiYzNyMjMiLCBcCisgICJjM3Iy NCIsICJjM3IyNSIsICJjM3IyNiIsICJjM3IyNyIsICJjM3IyOCIsICJjM3Iy OSIsICJjM3IzMCIsICJjM3IzMSIsIFwKIH0KIAogLyogUHJpbnQgb3BlcmFu ZCBYIChhbiBydHgpIGluIGFzc2VtYmxlciBzeW50YXggdG8gZmlsZSBGSUxF LiAgKi8KQEAgLTkwNyw0ICs5NDQsNCBAQCBzdHJ1Y3QgZXh0ZXJuX2xpc3Qg R1RZICgoY2hhaW5fbmV4dCAoIiVoCiAgIGludCBzaXplOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogc2l6ZSBpbiBieXRlcyAgKi8KIH07CiAK LWV4dGVybiBHVFkgKCgpKSBzdHJ1Y3QgZXh0ZXJuX2xpc3QgICAgICAqZXh0 ZXJuX2hlYWQgOworZXh0ZXJuIEdUWSAoKCkpIHN0cnVjdCBleHRlcm5fbGlz dCAgICAgICpleHRlcm5faGVhZDsKSW5kZXg6IGdjYy9jb25maWcvc2NvcmUv c2NvcmUtY29udi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9j b25maWcvc2NvcmUvc2NvcmUtY29udi5oCShyZXZpc2lvbiAxMjAyNTIpCisr KyBnY2MvY29uZmlnL3Njb3JlL3Njb3JlLWNvbnYuaAkod29ya2luZyBjb3B5 KQpAQCAtNDUsNyArNDUsNyBAQCBleHRlcm4gaW50IHRhcmdldF9mbGFnczsK IAogI2RlZmluZSBDRV9SRUdfUChSRUdOTykgICAgICAgIFJFR19DT05UQUlO IChSRUdOTywgQ0VfUkVHX0ZJUlNULCBDRV9SRUdfTlVNKQogCi0jZGVmaW5l IFVJTU1fSU5fUkFOR0UoViwgVykgICgoVikgPj0gMCAmJiAoVikgPCAoKEhP U1RfV0lERV9JTlQpMSA8PCAoVykpKQorI2RlZmluZSBVSU1NX0lOX1JBTkdF KFYsIFcpICAoKFYpID49IDAgJiYgKFYpIDwgKChIT1NUX1dJREVfSU5UKSAx IDw8IChXKSkpCiAKICNkZWZpbmUgU0lNTV9JTl9SQU5HRShWLCBXKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICgoVikgPj0gKC0xICogKChI T1NUX1dJREVfSU5UKSAxIDw8ICgoVykgLSAxKSkpICAgICAgXApAQCAtNTQs NiArNTQsMTEgQEAgZXh0ZXJuIGludCB0YXJnZXRfZmxhZ3M7CiAjZGVmaW5l IElNTV9JTl9SQU5HRShWLCBXLCBTKSBcCiAgICgoUykgPyBTSU1NX0lOX1JB TkdFIChWLCBXKSA6IFVJTU1fSU5fUkFOR0UgKFYsIFcpKQogCisjZGVmaW5l IElNTV9JU19QT1dfT0ZfMihWLCBFMSwgRTIpICAgICAgICAgICAgICAgIFwK KyAgKChWKSA+PSAoKHVuc2lnbmVkIEhPU1RfV0lERV9JTlQpIDEgPDwgKEUx KSkgICAgIFwKKyAgICYmIChWKSA8PSAoKHVuc2lnbmVkIEhPU1RfV0lERV9J TlQpIDEgPDwgKEUyKSkgIFwKKyAgICYmICgoVikgJiAoKFYpIC0gMSkpID09 IDApCisKICNkZWZpbmUgU0NPUkVfU1RBQ0tfQUxJR04oTE9DKSAgICAgICAg ICAoKChMT0MpICsgMykgJiB+MykKIAogI2RlZmluZSBTQ09SRV9NQVhfRklS U1RfU1RBQ0tfU1RFUCAgICAgICgweDNmZjApCkluZGV4OiBnY2MvY29uZmln L3Njb3JlL3Njb3JlLW1kYXV4LmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL2NvbmZpZy9zY29yZS9zY29yZS1tZGF1eC5jCShyZXZpc2lvbiAx MjAyNTIpCisrKyBnY2MvY29uZmlnL3Njb3JlL3Njb3JlLW1kYXV4LmMJKHdv cmtpbmcgY29weSkKQEAgLTEwOCwxMCArMTA4LDkgQEAgc2NvcmVfc3ltYm9s X3R5cGUgc2NvcmVfY2xhc3NpZnlfc3ltYm9sIAogICBpZiAoR0VUX0NPREUg KHgpID09IExBQkVMX1JFRikKICAgICByZXR1cm4gU1lNQk9MX0dFTkVSQUw7 CiAKLSAgaWYgKEdFVF9DT0RFICh4KSAhPSBTWU1CT0xfUkVGKQotICAgIGdj Y191bnJlYWNoYWJsZSAoKTsKKyAgZ2NjX2Fzc2VydCAoR0VUX0NPREUgKHgp ID09IFNZTUJPTF9SRUYpOwogCi0gIGlmIChDT05TVEFOVF9QT09MX0FERFJF U1NfUCh4KSkKKyAgaWYgKENPTlNUQU5UX1BPT0xfQUREUkVTU19QICh4KSkK ICAgICB7CiAgICAgICBpZiAoR0VUX01PREVfU0laRSAoZ2V0X3Bvb2xfbW9k ZSAoeCkpIDw9IFNDT1JFX1NEQVRBX01BWCkKICAgICAgICAgcmV0dXJuIFNZ TUJPTF9TTUFMTF9EQVRBOwpAQCAtMTg1LDE0ICsxODQsMTQgQEAgbWRhX2Nv bXB1dGVfZnJhbWVfc2l6ZSAoSE9TVF9XSURFX0lOVCBzaQogICBmLT5tYXNr ID0gMDsKICAgZi0+dmFyX3NpemUgPSBTQ09SRV9TVEFDS19BTElHTiAoc2l6 ZSk7CiAgIGYtPmFyZ3Nfc2l6ZSA9IGN1cnJlbnRfZnVuY3Rpb25fb3V0Z29p bmdfYXJnc19zaXplOwotICBmLT5jcHJlc3RvcmVfc2l6ZSA9IFNDT1JFX1NU QUNLX0FMSUdOIChTVEFSVElOR19GUkFNRV9PRkZTRVQpIC0gZi0+YXJnc19z aXplOworICBmLT5jcHJlc3RvcmVfc2l6ZSA9IGZsYWdfcGljID8gVU5JVFNf UEVSX1dPUkQgOiAwOwogICBpZiAoZi0+dmFyX3NpemUgPT0gMCAmJiBjdXJy ZW50X2Z1bmN0aW9uX2lzX2xlYWYpCiAgICAgZi0+YXJnc19zaXplID0gZi0+ Y3ByZXN0b3JlX3NpemUgPSAwOwogCiAgIGlmIChmLT5hcmdzX3NpemUgPT0g MCAmJiBjdXJyZW50X2Z1bmN0aW9uX2NhbGxzX2FsbG9jYSkKICAgICBmLT5h cmdzX3NpemUgPSBVTklUU19QRVJfV09SRDsKIAotICBmLT50b3RhbF9zaXpl ID0gZi0+dmFyX3NpemUgKyBmLT5hcmdzX3NpemU7CisgIGYtPnRvdGFsX3Np emUgPSBmLT52YXJfc2l6ZSArIGYtPmFyZ3Nfc2l6ZSArIGYtPmNwcmVzdG9y ZV9zaXplOwogICBmb3IgKHJlZ25vID0gR1BfUkVHX0ZJUlNUOyByZWdubyA8 PSBHUF9SRUdfTEFTVDsgcmVnbm8rKykKICAgICB7CiAgICAgICBpZiAoc2Nv cmVfc2F2ZV9yZWdfcCAocmVnbm8pKQpAQCAtMjA1LDcgKzIwNCw3IEBAIG1k YV9jb21wdXRlX2ZyYW1lX3NpemUgKEhPU1RfV0lERV9JTlQgc2kKICAgaWYg KGN1cnJlbnRfZnVuY3Rpb25fY2FsbHNfZWhfcmV0dXJuKQogICAgIHsKICAg ICAgIHVuc2lnbmVkIGludCBpOwotICAgICAgZm9yIChpID0gMDsgOyArK2kp CisgICAgICBmb3IgKGkgPSAwOzsgKytpKQogICAgICAgICB7CiAgICAgICAg ICAgcmVnbm8gPSBFSF9SRVRVUk5fREFUQV9SRUdOTyAoaSk7CiAgICAgICAg ICAgaWYgKHJlZ25vID09IElOVkFMSURfUkVHTlVNKQpAQCAtMjE1LDcgKzIx NCw3IEBAIG1kYV9jb21wdXRlX2ZyYW1lX3NpemUgKEhPU1RfV0lERV9JTlQg c2kKICAgICAgICAgfQogICAgIH0KIAotICBmLT50b3RhbF9zaXplICs9IFND T1JFX1NUQUNLX0FMSUdOIChmLT5ncF9yZWdfc2l6ZSk7CisgIGYtPnRvdGFs X3NpemUgKz0gZi0+Z3BfcmVnX3NpemU7CiAgIGYtPm51bV9ncCA9IGYtPmdw X3JlZ19zaXplIC8gVU5JVFNfUEVSX1dPUkQ7CiAKICAgaWYgKGYtPm1hc2sp CkBAIC0yMjYsMTIgKzIyNSw3IEBAIG1kYV9jb21wdXRlX2ZyYW1lX3NpemUg KEhPU1RfV0lERV9JTlQgc2kKICAgICAgIGYtPmdwX3NwX29mZnNldCA9IG9m ZnNldDsKICAgICB9CiAgIGVsc2UKLSAgICB7Ci0gICAgICBmLT5ncF9zcF9v ZmZzZXQgPSAwOwotICAgIH0KLQotICBpZiAoKGYtPnRvdGFsX3NpemUgPT0g Zi0+Z3BfcmVnX3NpemUpICYmIGZsYWdfcGljKQotICAgIGYtPnRvdGFsX3Np emUgKz0gODsKKyAgICBmLT5ncF9zcF9vZmZzZXQgPSAwOwogCiAgIHJldHVy biBmOwogfQpAQCAtMjk0LDggKzI4OCwxMyBAQCBtZHhfcHJvbG9ndWUgKHZv aWQpCiAgIGlmIChmcmFtZV9wb2ludGVyX25lZWRlZCkKICAgICBFTUlUX1BM IChlbWl0X21vdmVfaW5zbiAoaGFyZF9mcmFtZV9wb2ludGVyX3J0eCwgc3Rh Y2tfcG9pbnRlcl9ydHgpKTsKIAotICBpZiAoZmxhZ19waWMpCi0gICAgZW1p dF9pbnNuIChnZW5fY3ByZXN0b3JlIChHRU5fSU5UIChzaXplICsgNCkpKTsK KyAgaWYgKGZsYWdfcGljICYmIGYtPmNwcmVzdG9yZV9zaXplKQorICAgIHsK KyAgICAgIGlmIChmcmFtZV9wb2ludGVyX25lZWRlZCkKKyAgICAgICAgZW1p dF9pbnNuIChnZW5fY3ByZXN0b3JlX3VzZV9mcCAoR0VOX0lOVCAoc2l6ZSAt IGYtPmNwcmVzdG9yZV9zaXplKSkpOworICAgICAgZWxzZQorICAgICAgICBl bWl0X2luc24gKGdlbl9jcHJlc3RvcmVfdXNlX3NwIChHRU5fSU5UIChzaXpl IC0gZi0+Y3ByZXN0b3JlX3NpemUpKSk7CisgICAgfQogCiAjdW5kZWYgRU1J VF9QTAogfQpAQCAtMzkyLDcgKzM5MSw3IEBAIG1kYV9jbGFzc2lmeV9hZGRy ZXNzIChzdHJ1Y3Qgc2NvcmVfYWRkcmUKICAgICAgIGluZm8tPm9mZnNldCA9 IFhFWFAgKHgsIDEpOwogICAgICAgcmV0dXJuIChtZGFfdmFsaWRfYmFzZV9y ZWdpc3Rlcl9wIChpbmZvLT5yZWcsIHN0cmljdCkKICAgICAgICAgICAgICAg JiYgR0VUX0NPREUgKGluZm8tPm9mZnNldCkgPT0gQ09OU1RfSU5UCi0gICAg ICAgICAgICAgICYmIENPTlNUX09LX0ZPUl9MRVRURVJfUCAoSU5UVkFMIChp bmZvLT5vZmZzZXQpLCAnTycpKTsKKyAgICAgICAgICAgICAgJiYgSU1NX0lO X1JBTkdFIChJTlRWQUwgKGluZm8tPm9mZnNldCksIDE1LCAxKSk7CiAgICAg Y2FzZSBQUkVfREVDOgogICAgIGNhc2UgUE9TVF9ERUM6CiAgICAgY2FzZSBQ UkVfSU5DOgpAQCAtNDA1LDcgKzQwNCw3IEBAIG1kYV9jbGFzc2lmeV9hZGRy ZXNzIChzdHJ1Y3Qgc2NvcmVfYWRkcmUKICAgICAgIHJldHVybiBtZGFfdmFs aWRfYmFzZV9yZWdpc3Rlcl9wIChpbmZvLT5yZWcsIHN0cmljdCk7CiAgICAg Y2FzZSBDT05TVF9JTlQ6CiAgICAgICBpbmZvLT50eXBlID0gQUREX0NPTlNU X0lOVDsKLSAgICAgIHJldHVybiBDT05TVF9PS19GT1JfTEVUVEVSX1AgKElO VFZBTCAoeCksICdPJyk7CisgICAgICByZXR1cm4gSU1NX0lOX1JBTkdFIChJ TlRWQUwgKHgpLCAxNSwgMSk7CiAgICAgY2FzZSBDT05TVDoKICAgICBjYXNl IExBQkVMX1JFRjoKICAgICBjYXNlIFNZTUJPTF9SRUY6CkBAIC00NDMsNyAr NDQyLDcgQEAgbWRhX3N5bWJvbGljX2NvbnN0YW50X3AgKHJ0eCB4LCBlbnVt IHNjbwogICAgIHJldHVybiAxOwogCiAgIC8qIGlmIG9mZnNldCA+IDE1Yml0 LCBtdXN0IHJlbG9hZCAgKi8KLSAgaWYgKCFDT05TVF9PS19GT1JfTEVUVEVS X1AgKG9mZnNldCwgJ08nKSkKKyAgaWYgKCFJTU1fSU5fUkFOR0UgKG9mZnNl dCwgMTUsIDEpKQogICAgIHJldHVybiAwOwogCiAgIHN3aXRjaCAoKnN5bWJv bF90eXBlKQpAQCAtNDU5LDExICs0NTgsOSBAQCBtZGFfc3ltYm9saWNfY29u c3RhbnRfcCAocnR4IHgsIGVudW0gc2NvCiB2b2lkCiBtZHhfbW92c2ljYyAo cnR4ICpvcHMpCiB7Ci0gIGVudW0gbWFjaGluZV9tb2RlIG1vZGUgPSBDQ21v ZGU7Ci0KLSAgaWYgKEdFVF9DT0RFIChvcHNbMV0pID09IEVRIHx8IEdFVF9D T0RFIChvcHNbMV0pID09IE5FKQotICAgIG1vZGUgPSBDQ19OWm1vZGU7Cisg IGVudW0gbWFjaGluZV9tb2RlIG1vZGU7CiAKKyAgbW9kZSA9IHNjb3JlX3Nl bGVjdF9jY19tb2RlIChHRVRfQ09ERSAob3BzWzFdKSwgb3BzWzJdLCBvcHNb M10pOwogICBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgZ2Vu X3J0eF9SRUcgKG1vZGUsIENDX1JFR05VTSksCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdlbl9ydHhfQ09NUEFSRSAobW9kZSwgY21wX29wMCwgY21w X29wMSkpKTsKIH0KQEAgLTUzMywxNCArNTMwLDE1IEBAIG1kc19tb3ZkaSAo cnR4ICpvcHMpCiB2b2lkCiBtZHNfemVyb19leHRyYWN0X2FuZGkgKHJ0eCAq b3BzKQogewotICBpZiAoSU5UVkFMIChvcHNbMV0pID09IDEgJiYgY29uc3Rf Ymlfb3BlcmFuZCAob3BzWzJdLCBTSW1vZGUpKQorICBpZiAoSU5UVkFMIChv cHNbMV0pID09IDEgJiYgY29uc3RfdWltbTUgKG9wc1syXSwgU0ltb2RlKSkK ICAgICBlbWl0X2luc24gKGdlbl96ZXJvX2V4dHJhY3RfYml0dHN0IChvcHNb MF0sIG9wc1syXSkpOwogICBlbHNlCiAgICAgewogICAgICAgdW5zaWduZWQg SE9TVF9XSURFX0lOVCBtYXNrOwogICAgICAgbWFzayA9ICgweGZmZmZmZmZm VSAmICgoMVUgPDwgSU5UVkFMIChvcHNbMV0pKSAtIDFVKSk7CiAgICAgICBt YXNrID0gbWFzayA8PCBJTlRWQUwgKG9wc1syXSk7Ci0gICAgICBlbWl0X2lu c24gKGdlbl9hbmRzaTNfY21wIChvcHNbMF0sIGdlbl9pbnRfbW9kZSAobWFz aywgU0ltb2RlKSkpOworICAgICAgZW1pdF9pbnNuIChnZW5fYW5kc2kzX2Nt cCAob3BzWzNdLCBvcHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnZW5faW50X21vZGUgKG1hc2ssIFNJbW9kZSkpKTsKICAgICB9 CiB9CiAKQEAgLTYzNywxNyArNjM1LDIwIEBAIG1kcF9zaW5zbiAocnR4ICpv cHMsIGVudW0gbWRhX21lbV91bml0IHUKIGNvbnN0IGNoYXIgKgogbWRwX2xp bW0gKHJ0eCAqb3BzKQogeworICBIT1NUX1dJREVfSU5UIHY7CisKICAgZ2Nj X2Fzc2VydCAoR0VUX0NPREUgKG9wc1swXSkgPT0gUkVHKTsKKyAgZ2NjX2Fz c2VydCAoR0VUX0NPREUgKG9wc1sxXSkgPT0gQ09OU1RfSU5UKTsKIAotICBp ZiAoRzE2X1JFR19QIChSRUdOTyAob3BzWzBdKSkKLSAgICAgICYmIENPTlNU X09LX0ZPUl9MRVRURVJfUCAoSU5UVkFMIChvcHNbMV0pLCAnSScpKQorICB2 ID0gSU5UVkFMIChvcHNbMV0pOworICBpZiAoRzE2X1JFR19QIChSRUdOTyAo b3BzWzBdKSkgJiYgSU1NX0lOX1JBTkdFICh2LCA4LCAwKSkKICAgICByZXR1 cm4gImxkaXUhICAgJTAsICVjMSI7Ci0gIGVsc2UgaWYgKENPTlNUX09LX0ZP Ul9MRVRURVJfUCAoSU5UVkFMIChvcHNbMV0pLCAnTCcpKQorICBlbHNlIGlm IChJTU1fSU5fUkFOR0UgKHYsIDE2LCAxKSkKICAgICByZXR1cm4gImxkaSAg ICAgJTAsICVjMSI7Ci0gIGVsc2UgaWYgKEVYVFJBX0NPTlNUUkFJTlQgKG9w c1sxXSwgJ1EnKSkKKyAgZWxzZSBpZiAoKHYgJiAweGZmZmYpID09IDApCiAg ICAgcmV0dXJuICJsZGlzICAgICUwLCAlVTEiOwogICBlbHNlCi0gICAgcmV0 dXJuICJsaSAgICAgICUwLCAlRDEiOworICAgIHJldHVybiAibGkgICAgICAl MCwgJWMxIjsKIH0KIAogLyogT3V0cHV0IGFzbSBpbnNuIGZvciBtb3ZlLiAg Ki8KQEAgLTY3MCw2OSArNjcxLDM4OSBAQCBtZHBfbW92ZSAocnR4ICpvcHMp CiAgICAgcmV0dXJuICJtdiAgICAgICUwLCAlMSI7CiB9CiAKLS8qIFNjb3Jl IHN1cHBvcnQgYWRkL3N1YiB3aXRoIGV4cG9uZW50IGltbWVkaWF0ZSBpbnNu LAotICAgdXNlIHRvIGp1ZGdlIGltbSBjb25kaXRpb24uICAqLwotc3RhdGlj IHVuc2lnbmVkIGludAotbnVtX2JpdHMxICh1bnNpZ25lZCBIT1NUX1dJREVf SU5UIHYpCisvKiBFbWl0IGxjYi9sY2UgaW5zbnMuICAqLworYm9vbAorbWR4 X3VuYWxpZ25lZF9sb2FkIChydHggKm9wcykKK3sKKyAgcnR4IGRzdCA9IG9w c1swXTsKKyAgcnR4IHNyYyA9IG9wc1sxXTsKKyAgcnR4IGxlbiA9IG9wc1sy XTsKKyAgcnR4IG9mZiA9IG9wc1szXTsKKyAgcnR4IGFkZHJfcmVnOworCisg IGlmIChJTlRWQUwgKGxlbikgIT0gQklUU19QRVJfV09SRAorICAgICAgfHwg KElOVFZBTCAob2ZmKSAlIEJJVFNfUEVSX1VOSVQpICE9IDApCisgICAgcmV0 dXJuIGZhbHNlOworCisgIGdjY19hc3NlcnQgKEdFVF9NT0RFX1NJWkUgKEdF VF9NT0RFIChkc3QpKSA9PSBHRVRfTU9ERV9TSVpFIChTSW1vZGUpKTsKKwor ICBhZGRyX3JlZyA9IGNvcHlfYWRkcl90b19yZWcgKFhFWFAgKHNyYywgMCkp OworICBlbWl0X2luc24gKGdlbl9tb3ZlX2xjYiAoYWRkcl9yZWcsIGFkZHJf cmVnKSk7CisgIGVtaXRfaW5zbiAoZ2VuX21vdmVfbGNlIChhZGRyX3JlZywg YWRkcl9yZWcsIGRzdCkpOworCisgIHJldHVybiB0cnVlOworfQorCisvKiBF bWl0IHNjYi9zY2UgaW5zbnMuICAqLworYm9vbAorbWR4X3VuYWxpZ25lZF9z dG9yZSAocnR4ICpvcHMpCit7CisgIHJ0eCBkc3QgPSBvcHNbMF07CisgIHJ0 eCBsZW4gPSBvcHNbMV07CisgIHJ0eCBvZmYgPSBvcHNbMl07CisgIHJ0eCBz cmMgPSBvcHNbM107CisgIHJ0eCBhZGRyX3JlZzsKKworICBpZiAoSU5UVkFM KGxlbikgIT0gQklUU19QRVJfV09SRAorICAgICAgfHwgKElOVFZBTChvZmYp ICUgQklUU19QRVJfVU5JVCkgIT0gMCkKKyAgICByZXR1cm4gZmFsc2U7CisK KyAgZ2NjX2Fzc2VydCAoR0VUX01PREVfU0laRSAoR0VUX01PREUgKHNyYykp ID09IEdFVF9NT0RFX1NJWkUgKFNJbW9kZSkpOworCisgIGFkZHJfcmVnID0g Y29weV9hZGRyX3RvX3JlZyAoWEVYUCAoZHN0LCAwKSk7CisgIGVtaXRfaW5z biAoZ2VuX21vdmVfc2NiIChhZGRyX3JlZywgYWRkcl9yZWcsIHNyYykpOwor ICBlbWl0X2luc24gKGdlbl9tb3ZlX3NjZSAoYWRkcl9yZWcsIGFkZHJfcmVn KSk7CisKKyAgcmV0dXJuIHRydWU7Cit9CisKKy8qIElmIGxlbmd0aCBpcyBz aG9ydCwgZ2VuZXJhdGUgbW92ZSBpbnNucyBzdHJhaWdodC4gICovCitzdGF0 aWMgdm9pZAorbWR4X2Jsb2NrX21vdmVfc3RyYWlnaHQgKHJ0eCBkc3QsIHJ0 eCBzcmMsIEhPU1RfV0lERV9JTlQgbGVuZ3RoKQoreworICBIT1NUX1dJREVf SU5UIGxlZnRvdmVyOworICBpbnQgaSwgcmVnX2NvdW50OworICBydHggKnJl Z3M7CisKKyAgbGVmdG92ZXIgPSBsZW5ndGggJSBVTklUU19QRVJfV09SRDsK KyAgbGVuZ3RoIC09IGxlZnRvdmVyOworICByZWdfY291bnQgPSBsZW5ndGgg LyBVTklUU19QRVJfV09SRDsKKworICByZWdzID0gYWxsb2NhIChzaXplb2Yg KHJ0eCkgKiByZWdfY291bnQpOworICBmb3IgKGkgPSAwOyBpIDwgcmVnX2Nv dW50OyBpKyspCisgICAgcmVnc1tpXSA9IGdlbl9yZWdfcnR4IChTSW1vZGUp OworCisgIC8qIExvYWQgZnJvbSBzcmMgdG8gcmVncy4gICovCisgIGlmIChN RU1fQUxJR04gKHNyYykgPj0gQklUU19QRVJfV09SRCkKKyAgICB7CisgICAg ICBIT1NUX1dJREVfSU5UIG9mZnNldCA9IDA7CisgICAgICBmb3IgKGkgPSAw OyBpIDwgcmVnX2NvdW50OyBvZmZzZXQgKz0gVU5JVFNfUEVSX1dPUkQsIGkr KykKKyAgICAgICAgZW1pdF9tb3ZlX2luc24gKHJlZ3NbaV0sIGFkanVzdF9h ZGRyZXNzIChzcmMsIFNJbW9kZSwgb2Zmc2V0KSk7CisgICAgfQorICBlbHNl IGlmIChyZWdfY291bnQgPj0gMSkKKyAgICB7CisgICAgICBydHggc3JjX3Jl ZyA9IGNvcHlfYWRkcl90b19yZWcgKFhFWFAgKHNyYywgMCkpOworCisgICAg ICBlbWl0X2luc24gKGdlbl9tb3ZlX2xjYiAoc3JjX3JlZywgc3JjX3JlZykp OworICAgICAgZm9yIChpID0gMDsgaSA8IChyZWdfY291bnQgLSAxKTsgaSsr KQorICAgICAgICBlbWl0X2luc24gKGdlbl9tb3ZlX2xjdyAoc3JjX3JlZywg c3JjX3JlZywgcmVnc1tpXSkpOworICAgICAgZW1pdF9pbnNuIChnZW5fbW92 ZV9sY2UgKHNyY19yZWcsIHNyY19yZWcsIHJlZ3NbaV0pKTsKKyAgICB9CisK KyAgLyogU3RvcmUgcmVncyB0byBkZXN0LiAgKi8KKyAgaWYgKE1FTV9BTElH TiAoZHN0KSA+PSBCSVRTX1BFUl9XT1JEKQorICAgIHsKKyAgICAgIEhPU1Rf V0lERV9JTlQgb2Zmc2V0ID0gMDsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBy ZWdfY291bnQ7IG9mZnNldCArPSBVTklUU19QRVJfV09SRCwgaSsrKQorICAg ICAgICBlbWl0X21vdmVfaW5zbiAoYWRqdXN0X2FkZHJlc3MgKGRzdCwgU0lt b2RlLCBvZmZzZXQpLCByZWdzW2ldKTsKKyAgICB9CisgIGVsc2UgaWYgKHJl Z19jb3VudCA+PSAxKQorICAgIHsKKyAgICAgIHJ0eCBkc3RfcmVnID0gY29w eV9hZGRyX3RvX3JlZyAoWEVYUCAoZHN0LCAwKSk7CisKKyAgICAgIGVtaXRf aW5zbiAoZ2VuX21vdmVfc2NiIChkc3RfcmVnLCBkc3RfcmVnLCByZWdzWzBd KSk7CisgICAgICBmb3IgKGkgPSAxOyBpIDwgcmVnX2NvdW50OyBpKyspCisg ICAgICAgIGVtaXRfaW5zbiAoZ2VuX21vdmVfc2N3IChkc3RfcmVnLCBkc3Rf cmVnLCByZWdzW2ldKSk7CisgICAgICBlbWl0X2luc24gKGdlbl9tb3ZlX3Nj ZSAoZHN0X3JlZywgZHN0X3JlZykpOworICAgIH0KKworICAvKiBNb3AgdXAg YW55IGxlZnQtb3ZlciBieXRlcy4gICovCisgIGlmIChsZWZ0b3ZlciA+IDAp CisgICAgeworICAgICAgc3JjID0gYWRqdXN0X2FkZHJlc3MgKHNyYywgQkxL bW9kZSwgbGVuZ3RoKTsKKyAgICAgIGRzdCA9IGFkanVzdF9hZGRyZXNzIChk c3QsIEJMS21vZGUsIGxlbmd0aCk7CisgICAgICBtb3ZlX2J5X3BpZWNlcyAo ZHN0LCBzcmMsIGxlZnRvdmVyLAorICAgICAgICAgICAgICAgICAgICAgIE1J TiAoTUVNX0FMSUdOIChzcmMpLCBNRU1fQUxJR04gKGRzdCkpLCAwKTsKKyAg ICB9Cit9CisKKy8qIEdlbmVyYXRlIGxvb3AgaGVhZCB3aGVuIGRzdCBvciBz cmMgaXMgdW5hbGlnbmVkLiAgKi8KK3N0YXRpYyB2b2lkCittZHhfYmxvY2tf bW92ZV9sb29wX2hlYWQgKHJ0eCBkc3RfcmVnLCBIT1NUX1dJREVfSU5UIGRz dF9hbGlnbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnR4IHNyY19y ZWcsIEhPU1RfV0lERV9JTlQgc3JjX2FsaWduLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBIT1NUX1dJREVfSU5UIGxlbmd0aCkKIHsKLSAgaW50IGks IG4gPSAwOworICBib29sIHNyY191bmFsaWduZWQgPSAoc3JjX2FsaWduIDwg QklUU19QRVJfV09SRCk7CisgIGJvb2wgZHN0X3VuYWxpZ25lZCA9IChkc3Rf YWxpZ24gPCBCSVRTX1BFUl9XT1JEKTsKKworICBydHggdGVtcCA9IGdlbl9y ZWdfcnR4IChTSW1vZGUpOwogCi0gIGZvciAoaSA9IDA7IGkgPCBCSVRTX1BF Ul9XT1JEOyBpKyspCi0gICAgbiArPSBCSVRTRVRfUCAodiwgaSkgPyAxIDog MDsKLSAgcmV0dXJuIG47CisgIGdjY19hc3NlcnQgKGxlbmd0aCA9PSBVTklU U19QRVJfV09SRCk7CisKKyAgaWYgKHNyY191bmFsaWduZWQpCisgICAgewor ICAgICAgZW1pdF9pbnNuIChnZW5fbW92ZV9sY2IgKHNyY19yZWcsIHNyY19y ZWcpKTsKKyAgICAgIGVtaXRfaW5zbiAoZ2VuX21vdmVfbGN3IChzcmNfcmVn LCBzcmNfcmVnLCB0ZW1wKSk7CisgICAgfQorICBlbHNlCisgICAgZW1pdF9p bnNuIChnZW5fbW92ZV9sd19hIChzcmNfcmVnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3JjX3JlZywgZ2VuX2ludF9tb2RlICg0LCBTSW1v ZGUpLCB0ZW1wKSk7CisKKyAgaWYgKGRzdF91bmFsaWduZWQpCisgICAgZW1p dF9pbnNuIChnZW5fbW92ZV9zY2IgKGRzdF9yZWcsIGRzdF9yZWcsIHRlbXAp KTsKKyAgZWxzZQorICAgIGVtaXRfaW5zbiAoZ2VuX21vdmVfc3dfYSAoZHN0 X3JlZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF9yZWcs IGdlbl9pbnRfbW9kZSAoNCwgU0ltb2RlKSwgdGVtcCkpOwogfQogCi0vKiBH ZW5lcmF0ZSBhZGQgaW5zbiwgaW5zbiB3aWxsIGFmZmVjdCBjb25kaXRpb24g ZmxhZy4gT3B0aW1pemUgdXNlZC4gICovCisvKiBHZW5lcmF0ZSBsb29wIGJv ZHksIGNvcHkgbGVuZ3RoIGJ5dGVzIHBlciBpdGVyYXRpb24uICAqLworc3Rh dGljIHZvaWQKK21keF9ibG9ja19tb3ZlX2xvb3BfYm9keSAocnR4IGRzdF9y ZWcsIEhPU1RfV0lERV9JTlQgZHN0X2FsaWduLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBydHggc3JjX3JlZywgSE9TVF9XSURFX0lOVCBzcmNfYWxp Z24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIEhPU1RfV0lERV9JTlQg bGVuZ3RoKQoreworICBpbnQgcmVnX2NvdW50ID0gbGVuZ3RoIC8gVU5JVFNf UEVSX1dPUkQ7CisgIHJ0eCAqcmVncyA9IGFsbG9jYSAoc2l6ZW9mIChydHgp ICogcmVnX2NvdW50KTsKKyAgaW50IGk7CisgIGJvb2wgc3JjX3VuYWxpZ25l ZCA9IChzcmNfYWxpZ24gPCBCSVRTX1BFUl9XT1JEKTsKKyAgYm9vbCBkc3Rf dW5hbGlnbmVkID0gKGRzdF9hbGlnbiA8IEJJVFNfUEVSX1dPUkQpOworCisg IGZvciAoaSA9IDA7IGkgPCByZWdfY291bnQ7IGkrKykKKyAgICByZWdzW2ld ID0gZ2VuX3JlZ19ydHggKFNJbW9kZSk7CisKKyAgaWYgKHNyY191bmFsaWdu ZWQpCisgICAgeworICAgICAgZm9yIChpID0gMDsgaSA8IHJlZ19jb3VudDsg aSsrKQorICAgICAgICBlbWl0X2luc24gKGdlbl9tb3ZlX2xjdyAoc3JjX3Jl Zywgc3JjX3JlZywgcmVnc1tpXSkpOworICAgIH0KKyAgZWxzZQorICAgIHsK KyAgICAgIGZvciAoaSA9IDA7IGkgPCByZWdfY291bnQ7IGkrKykKKyAgICAg ICAgZW1pdF9pbnNuIChnZW5fbW92ZV9sd19hIChzcmNfcmVnLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19yZWcsIGdlbl9pbnRf bW9kZSAoNCwgU0ltb2RlKSwgcmVnc1tpXSkpOworICAgIH0KKworICBpZiAo ZHN0X3VuYWxpZ25lZCkKKyAgICB7CisgICAgICBmb3IgKGkgPSAwOyBpIDwg cmVnX2NvdW50OyBpKyspCisgICAgICAgIGVtaXRfaW5zbiAoZ2VuX21vdmVf c2N3IChkc3RfcmVnLCBkc3RfcmVnLCByZWdzW2ldKSk7CisgICAgfQorICBl bHNlCisgICAgeworICAgICAgZm9yIChpID0gMDsgaSA8IHJlZ19jb3VudDsg aSsrKQorICAgICAgICBlbWl0X2luc24gKGdlbl9tb3ZlX3N3X2EgKGRzdF9y ZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3Jl ZywgZ2VuX2ludF9tb2RlICg0LCBTSW1vZGUpLCByZWdzW2ldKSk7CisgICAg fQorfQorCisvKiBHZW5lcmF0ZSBsb29wIGZvb3QsIGNvcHkgdGhlIGxlZnRv dmVyIGJ5dGVzLiAgKi8KK3N0YXRpYyB2b2lkCittZHhfYmxvY2tfbW92ZV9s b29wX2Zvb3QgKHJ0eCBkc3RfcmVnLCBIT1NUX1dJREVfSU5UIGRzdF9hbGln biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnR4IHNyY19yZWcsIEhP U1RfV0lERV9JTlQgc3JjX2FsaWduLAorICAgICAgICAgICAgICAgICAgICAg ICAgICBIT1NUX1dJREVfSU5UIGxlbmd0aCkKK3sKKyAgYm9vbCBzcmNfdW5h bGlnbmVkID0gKHNyY19hbGlnbiA8IEJJVFNfUEVSX1dPUkQpOworICBib29s IGRzdF91bmFsaWduZWQgPSAoZHN0X2FsaWduIDwgQklUU19QRVJfV09SRCk7 CisKKyAgSE9TVF9XSURFX0lOVCBsZWZ0b3ZlcjsKKworICBsZWZ0b3ZlciA9 IGxlbmd0aCAlIFVOSVRTX1BFUl9XT1JEOworICBsZW5ndGggLT0gbGVmdG92 ZXI7CisKKyAgaWYgKGxlbmd0aCA+IDApCisgICAgbWR4X2Jsb2NrX21vdmVf bG9vcF9ib2R5IChkc3RfcmVnLCBkc3RfYWxpZ24sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcmNfcmVnLCBzcmNfYWxpZ24sIGxlbmd0aCk7 CisKKyAgaWYgKGRzdF91bmFsaWduZWQpCisgICAgZW1pdF9pbnNuIChnZW5f bW92ZV9zY2UgKGRzdF9yZWcsIGRzdF9yZWcpKTsKKworICBpZiAobGVmdG92 ZXIgPiAwKQorICAgIHsKKyAgICAgIEhPU1RfV0lERV9JTlQgc3JjX2FkaiA9 IHNyY191bmFsaWduZWQgPyAtNCA6IDA7CisgICAgICBIT1NUX1dJREVfSU5U IGRzdF9hZGogPSBkc3RfdW5hbGlnbmVkID8gLTQgOiAwOworICAgICAgcnR4 IHRlbXA7CisKKyAgICAgIGdjY19hc3NlcnQgKGxlZnRvdmVyIDwgVU5JVFNf UEVSX1dPUkQpOworCisgICAgICBpZiAobGVmdG92ZXIgPj0gVU5JVFNfUEVS X1dPUkQgLyAyCisgICAgICAgICAgJiYgc3JjX2FsaWduID49IEJJVFNfUEVS X1dPUkQgLyAyCisgICAgICAgICAgJiYgZHN0X2FsaWduID49IEJJVFNfUEVS X1dPUkQgLyAyKQorICAgICAgICB7CisgICAgICAgICAgdGVtcCA9IGdlbl9y ZWdfcnR4IChISW1vZGUpOworICAgICAgICAgIGVtaXRfaW5zbiAoZ2VuX21v dmVfbGh1X2IgKHNyY19yZWcsIHNyY19yZWcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2VuX2ludF9tb2RlIChzcmNfYWRqLCBT SW1vZGUpLCB0ZW1wKSk7CisgICAgICAgICAgZW1pdF9pbnNuIChnZW5fbW92 ZV9zaF9iIChkc3RfcmVnLCBkc3RfcmVnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2VuX2ludF9tb2RlIChkc3RfYWRqLCBTSW1v ZGUpLCB0ZW1wKSk7CisgICAgICAgICAgbGVmdG92ZXIgLT0gVU5JVFNfUEVS X1dPUkQgLyAyOworICAgICAgICAgIHNyY19hZGogPSBVTklUU19QRVJfV09S RCAvIDI7CisgICAgICAgICAgZHN0X2FkaiA9IFVOSVRTX1BFUl9XT1JEIC8g MjsKKyAgICAgICAgfQorCisgICAgICB3aGlsZSAobGVmdG92ZXIgPiAwKQor ICAgICAgICB7CisgICAgICAgICAgdGVtcCA9IGdlbl9yZWdfcnR4IChRSW1v ZGUpOworICAgICAgICAgIGVtaXRfaW5zbiAoZ2VuX21vdmVfbGJ1X2IgKHNy Y19yZWcsIHNyY19yZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2VuX2ludF9tb2RlIChzcmNfYWRqLCBTSW1vZGUpLCB0ZW1w KSk7CisgICAgICAgICAgZW1pdF9pbnNuIChnZW5fbW92ZV9zYl9iIChkc3Rf cmVnLCBkc3RfcmVnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2VuX2ludF9tb2RlIChkc3RfYWRqLCBTSW1vZGUpLCB0ZW1wKSk7 CisgICAgICAgICAgbGVmdG92ZXItLTsKKyAgICAgICAgICBzcmNfYWRqID0g MTsKKyAgICAgICAgICBkc3RfYWRqID0gMTsKKyAgICAgICAgfQorICAgIH0K K30KKworI2RlZmluZSBNSU5fTU9WRV9SRUdTIDMKKyNkZWZpbmUgTUlOX01P VkVfQllURVMgKE1JTl9NT1ZFX1JFR1MgKiBVTklUU19QRVJfV09SRCkKKyNk ZWZpbmUgTUFYX01PVkVfUkVHUyA0CisjZGVmaW5lIE1BWF9NT1ZFX0JZVEVT IChNQVhfTU9WRV9SRUdTICogVU5JVFNfUEVSX1dPUkQpCisKKy8qIFRoZSBs ZW5ndGggaXMgbGFyZ2UsIGdlbmVyYXRlIGEgbG9vcCBpZiBuZWNlc3Nhcnku CisgICBUaGUgbG9vcCBpcyBjb25zaXN0ZWQgYnkgbG9vcCBoZWFkL2JvZHkv Zm9vdC4gICovCitzdGF0aWMgdm9pZAorbWR4X2Jsb2NrX21vdmVfbG9vcCAo cnR4IGRzdCwgcnR4IHNyYywgSE9TVF9XSURFX0lOVCBsZW5ndGgpCit7Cisg IEhPU1RfV0lERV9JTlQgc3JjX2FsaWduID0gTUVNX0FMSUdOIChzcmMpOwor ICBIT1NUX1dJREVfSU5UIGRzdF9hbGlnbiA9IE1FTV9BTElHTiAoZHN0KTsK KyAgSE9TVF9XSURFX0lOVCBsb29wX21vdl9ieXRlczsKKyAgSE9TVF9XSURF X0lOVCBpdGVyYXRpb24gPSAwOworICBIT1NUX1dJREVfSU5UIGhlYWRfbGVu Z3RoID0gMCwgbGVmdG92ZXI7CisgIHJ0eCBsYWJlbCwgc3JjX3JlZywgZHN0 X3JlZywgZmluYWxfZHN0OworCisgIGJvb2wgZ2VuX2xvb3BfaGVhZCA9IChz cmNfYWxpZ24gPCBCSVRTX1BFUl9XT1JECisgICAgICAgICAgICAgICAgICAg ICAgICB8fCBkc3RfYWxpZ24gPCBCSVRTX1BFUl9XT1JEKTsKKworICBpZiAo Z2VuX2xvb3BfaGVhZCkKKyAgICBoZWFkX2xlbmd0aCArPSBVTklUU19QRVJf V09SRDsKKworICBmb3IgKGxvb3BfbW92X2J5dGVzID0gTUFYX01PVkVfQllU RVM7CisgICAgICAgbG9vcF9tb3ZfYnl0ZXMgPj0gTUlOX01PVkVfQllURVM7 CisgICAgICAgbG9vcF9tb3ZfYnl0ZXMgLT0gVU5JVFNfUEVSX1dPUkQpCisg ICAgeworICAgICAgaXRlcmF0aW9uID0gKGxlbmd0aCAtIGhlYWRfbGVuZ3Ro KSAvIGxvb3BfbW92X2J5dGVzOworICAgICAgaWYgKGl0ZXJhdGlvbiA+IDEp CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgaWYgKGl0ZXJhdGlvbiA8PSAx KQorICAgIHsKKyAgICAgIG1keF9ibG9ja19tb3ZlX3N0cmFpZ2h0IChkc3Qs IHNyYywgbGVuZ3RoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgbGVm dG92ZXIgPSAobGVuZ3RoIC0gaGVhZF9sZW5ndGgpICUgbG9vcF9tb3ZfYnl0 ZXM7CisgIGxlbmd0aCAtPSBsZWZ0b3ZlcjsKKworICBzcmNfcmVnID0gY29w eV9hZGRyX3RvX3JlZyAoWEVYUCAoc3JjLCAwKSk7CisgIGRzdF9yZWcgPSBj b3B5X2FkZHJfdG9fcmVnIChYRVhQIChkc3QsIDApKTsKKyAgZmluYWxfZHN0 ID0gZXhwYW5kX3NpbXBsZV9iaW5vcCAoUG1vZGUsIFBMVVMsIGRzdF9yZWcs IEdFTl9JTlQgKGxlbmd0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAsIDAsIE9QVEFCX1dJREVOKTsKKworICBpZiAoZ2VuX2xv b3BfaGVhZCkKKyAgICBtZHhfYmxvY2tfbW92ZV9sb29wX2hlYWQgKGRzdF9y ZWcsIGRzdF9hbGlnbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNyY19yZWcsIHNyY19hbGlnbiwgaGVhZF9sZW5ndGgpOworCisgIGxhYmVs ID0gZ2VuX2xhYmVsX3J0eCAoKTsKKyAgZW1pdF9sYWJlbCAobGFiZWwpOwor CisgIG1keF9ibG9ja19tb3ZlX2xvb3BfYm9keSAoZHN0X3JlZywgZHN0X2Fs aWduLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19yZWcsIHNy Y19hbGlnbiwgbG9vcF9tb3ZfYnl0ZXMpOworCisgIGVtaXRfaW5zbiAoZ2Vu X2NtcHNpIChkc3RfcmVnLCBmaW5hbF9kc3QpKTsKKyAgZW1pdF9qdW1wX2lu c24gKGdlbl9ibmUgKGxhYmVsKSk7CisKKyAgbWR4X2Jsb2NrX21vdmVfbG9v cF9mb290IChkc3RfcmVnLCBkc3RfYWxpZ24sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3JjX3JlZywgc3JjX2FsaWduLCBsZWZ0b3Zlcik7Cit9 CisKKy8qIEdlbmVyYXRlIGJsb2NrIG1vdmUsIGZvciBtaXNjLm1kOiAibW92 bWVtc2kiLiAgKi8KK2Jvb2wKK21keF9ibG9ja19tb3ZlIChydHggKm9wcykK K3sKKyAgcnR4IGRzdCA9IG9wc1swXTsKKyAgcnR4IHNyYyA9IG9wc1sxXTsK KyAgcnR4IGxlbmd0aCA9IG9wc1syXTsKKworICBpZiAoVEFSR0VUX0xJVFRM RV9FTkRJQU4KKyAgICAgICYmIChNRU1fQUxJR04gKHNyYykgPCBCSVRTX1BF Ul9XT1JEIHx8IE1FTV9BTElHTiAoZHN0KSA8IEJJVFNfUEVSX1dPUkQpCisg ICAgICAmJiBJTlRWQUwgKGxlbmd0aCkgPj0gVU5JVFNfUEVSX1dPUkQpCisg ICAgcmV0dXJuIGZhbHNlOworCisgIGlmIChHRVRfQ09ERSAobGVuZ3RoKSA9 PSBDT05TVF9JTlQpCisgICAgeworICAgICAgaWYgKElOVFZBTCAobGVuZ3Ro KSA8PSAyICogTUFYX01PVkVfQllURVMpCisgICAgICAgIHsKKyAgICAgICAg ICAgbWR4X2Jsb2NrX21vdmVfc3RyYWlnaHQgKGRzdCwgc3JjLCBJTlRWQUwg KGxlbmd0aCkpOworICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg fQorICAgICAgZWxzZSBpZiAob3B0aW1pemUgJiYKKyAgICAgICAgICAgICAg ICEoZmxhZ191bnJvbGxfbG9vcHMgfHwgZmxhZ191bnJvbGxfYWxsX2xvb3Bz KSkKKyAgICAgICAgeworICAgICAgICAgIG1keF9ibG9ja19tb3ZlX2xvb3Ag KGRzdCwgc3JjLCBJTlRWQUwgKGxlbmd0aCkpOworICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICB9CisgICAgfQorICByZXR1cm4gZmFsc2U7Cit9 CisKKy8qIEdlbmVyYXRlIGFkZCBpbnNuLiAgKi8KIGNvbnN0IGNoYXIgKgot bWRwX2FkZF9pbW1fdWNjIChydHggKm9wcykKK21kcF9zZWxlY3RfYWRkX2lt bSAocnR4ICpvcHMsIGJvb2wgc2V0X2NjKQogewogICBIT1NUX1dJREVfSU5U IHYgPSBJTlRWQUwgKG9wc1syXSk7CiAKICAgZ2NjX2Fzc2VydCAoR0VUX0NP REUgKG9wc1syXSkgPT0gQ09OU1RfSU5UKTsKICAgZ2NjX2Fzc2VydCAoUkVH Tk8gKG9wc1swXSkgPT0gUkVHTk8gKG9wc1sxXSkpOwogCi0gIGlmIChHMTZf UkVHX1AgKFJFR05PIChvcHNbMF0pKSkKKyAgaWYgKHNldF9jYyAmJiBHMTZf UkVHX1AgKFJFR05PIChvcHNbMF0pKSkKICAgICB7Ci0gICAgICBpZiAodiA+ IDAgJiYgbnVtX2JpdHMxICh2KSA9PSAxICYmIElNTV9JTl9SQU5HRSAoZmZz ICh2KSAtIDEsIDQsIDApKQorICAgICAgaWYgKHYgPiAwICYmIElNTV9JU19Q T1dfT0ZfMiAoKHVuc2lnbmVkIEhPU1RfV0lERV9JTlQpIHYsIDAsIDE1KSkK ICAgICAgICAgewogICAgICAgICAgIG9wc1syXSA9IEdFTl9JTlQgKGZmcyAo dikgLSAxKTsKICAgICAgICAgICByZXR1cm4gImFkZGVpISAgJTAsICVjMiI7 CiAgICAgICAgIH0KIAotICAgICAgaWYgKHYgPCAwICYmIG51bV9iaXRzMSAo LXYpID09IDEgJiYgSU1NX0lOX1JBTkdFIChmZnMgKC12KSAtIDEsIDQsIDAp KQorICAgICAgaWYgKHYgPCAwICYmIElNTV9JU19QT1dfT0ZfMiAoKHVuc2ln bmVkIEhPU1RfV0lERV9JTlQpICgtdiksIDAsIDE1KSkKICAgICAgICAgewog ICAgICAgICAgIG9wc1syXSA9IEdFTl9JTlQgKGZmcyAoLXYpIC0gMSk7CiAg ICAgICAgICAgcmV0dXJuICJzdWJlaSEgICUwLCAlYzIiOwogICAgICAgICB9 CiAgICAgfQorCisgIGlmIChzZXRfY2MpCiAgICAgcmV0dXJuICJhZGRpLmMg ICUwLCAlYzIiOworICBlbHNlCisgICAgcmV0dXJuICJhZGRpICAgICUwLCAl YzIiOwogfQogCi0vKiBPdXRwdXQgYXJpdGggaW5zbiwgaW5zbiB3aWxsIHVw ZGF0ZSBjb25kaXRpb24gZmxhZy4gICovCisvKiBPdXRwdXQgYXJpdGggaW5z bi4gICovCiBjb25zdCBjaGFyICoKLW1kcF9zZWxlY3QgKHJ0eCAqb3BzLCBj b25zdCBjaGFyICppbnN0X3ByZSwgYm9vbCBjb21tdSwgY29uc3QgY2hhciAq bGV0KQorbWRwX3NlbGVjdCAocnR4ICpvcHMsIGNvbnN0IGNoYXIgKmluc3Rf cHJlLAorICAgICAgICAgICAgYm9vbCBjb21tdSwgY29uc3QgY2hhciAqbGV0 dGVyLCBib29sIHNldF9jYykKIHsKICAgZ2NjX2Fzc2VydCAoR0VUX0NPREUg KG9wc1swXSkgPT0gUkVHKTsKICAgZ2NjX2Fzc2VydCAoR0VUX0NPREUgKG9w c1sxXSkgPT0gUkVHKTsKIAotICBpZiAoRzE2X1JFR19QIChSRUdOTyAob3Bz WzBdKSkKKyAgaWYgKHNldF9jYyAmJiBHMTZfUkVHX1AgKFJFR05PIChvcHNb MF0pKQogICAgICAgJiYgKEdFVF9DT0RFIChvcHNbMl0pID09IFJFRyA/IEcx Nl9SRUdfUCAoUkVHTk8gKG9wc1syXSkpIDogMSkKICAgICAgICYmIFJFR05P IChvcHNbMF0pID09IFJFR05PIChvcHNbMV0pKQogICAgIHsKLSAgICAgIHNu cHJpbnRmIChpbnMsIElOU19CVUZfU1osICIlcyEgICAgICAgICUlMCwgJSUl czIiLCBpbnN0X3ByZSwgbGV0KTsKKyAgICAgIHNucHJpbnRmIChpbnMsIElO U19CVUZfU1osICIlcyEgICUlMCwgJSUlczIiLCBpbnN0X3ByZSwgbGV0dGVy KTsKICAgICAgIHJldHVybiBpbnM7CiAgICAgfQogCi0gIGlmIChjb21tdSAm JiBHMTZfUkVHX1AgKFJFR05PIChvcHNbMF0pKQorICBpZiAoY29tbXUgJiYg c2V0X2NjICYmIEcxNl9SRUdfUCAoUkVHTk8gKG9wc1swXSkpCiAgICAgICAm JiBHMTZfUkVHX1AgKFJFR05PIChvcHNbMV0pKQogICAgICAgJiYgUkVHTk8g KG9wc1swXSkgPT0gUkVHTk8gKG9wc1syXSkpCiAgICAgewogICAgICAgZ2Nj X2Fzc2VydCAoR0VUX0NPREUgKG9wc1syXSkgPT0gUkVHKTsKLSAgICAgIHNu cHJpbnRmIChpbnMsIElOU19CVUZfU1osICIlcyEgICAgICAgICUlMCwgJSUl czEiLCBpbnN0X3ByZSwgbGV0KTsKKyAgICAgIHNucHJpbnRmIChpbnMsIElO U19CVUZfU1osICIlcyEgICUlMCwgJSUlczEiLCBpbnN0X3ByZSwgbGV0dGVy KTsKICAgICAgIHJldHVybiBpbnM7CiAgICAgfQogCi0gIHNucHJpbnRmIChp bnMsIElOU19CVUZfU1osICIlcy5jICAgICAgICAlJTAsICUlMSwgJSUlczIi LCBpbnN0X3ByZSwgbGV0KTsKKyAgaWYgKHNldF9jYykKKyAgICBzbnByaW50 ZiAoaW5zLCBJTlNfQlVGX1NaLCAiJXMuYyAgJSUwLCAlJTEsICUlJXMyIiwg aW5zdF9wcmUsIGxldHRlcik7CisgIGVsc2UKKyAgICBzbnByaW50ZiAoaW5z LCBJTlNfQlVGX1NaLCAiJXMgICAgJSUwLCAlJTEsICUlJXMyIiwgaW5zdF9w cmUsIGxldHRlcik7CiAgIHJldHVybiBpbnM7CiB9CiAKSW5kZXg6IGdjYy9j b25maWcvc2NvcmUvc2NvcmUubWQKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL2NvbmZpZy9zY29yZS9zY29yZS5tZAkocmV2aXNpb24gMTIwMjUy KQorKysgZ2NjL2NvbmZpZy9zY29yZS9zY29yZS5tZAkod29ya2luZyBjb3B5 KQpAQCAtNTksOCArNTksOCBAQAogCiAoZGVmaW5lX2NvbnN0YW50cwogICAg WyhCSVRUU1QgICAgICAgICAwKQotICAgIChMT0FEX0FERCAgICAgICAxKQot ICAgIChTVE9SRV9BREQgICAgICAyKQorICAgIChDUExPQUQgICAgICAgICAx KQorICAgIChDUFJFU1RPUkUgICAgICAyKQogCiAgICAgKFNDQiAgICAgICAg ICAgIDMpCiAgICAgKFNDVyAgICAgICAgICAgIDQpCkBAIC04OCwxMCArODgs MjIgQEAKIChpbmNsdWRlICJtaXNjLm1kIikKIChpbmNsdWRlICJtYWMubWQi KQogCi0oZGVmaW5lX2luc24gIm1vdnFpIgorKGRlZmluZV9leHBhbmQgIm1v dnFpIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJub25pbW1lZGlh dGVfb3BlcmFuZCIpCisgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDEgImdl bmVyYWxfb3BlcmFuZCIpKV0KKyAgIiIKK3sKKyAgaWYgKE1FTV9QIChvcGVy YW5kc1swXSkKKyAgICAgICYmICFyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5k c1sxXSwgUUltb2RlKSkKKyAgICB7CisgICAgICBvcGVyYW5kc1sxXSA9IGZv cmNlX3JlZyAoUUltb2RlLCBvcGVyYW5kc1sxXSk7CisgICAgfQorfSkKKwor KGRlZmluZV9pbnNuICIqbW92cWlfaW5zbnMiCiAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPWQsZCxkLG0s ZCwqeCxkLCphIikKICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMSAiZ2Vu ZXJhbF9vcGVyYW5kIiAiaSxkLG0sZCwqeCxkLCphLGQiKSldCi0gICIiCisg ICIhTUVNX1AgKG9wZXJhbmRzWzBdKSB8fCByZWdpc3Rlcl9vcGVyYW5kIChv cGVyYW5kc1sxXSwgUUltb2RlKSIKIHsKICAgc3dpdGNoICh3aGljaF9hbHRl cm5hdGl2ZSkKICAgICB7CkBAIC0xMDksMTAgKzEyMSwyMiBAQAogICBbKHNl dF9hdHRyICJ0eXBlIiAiYXJpdGgsbW92ZSxsb2FkLHN0b3JlLGZjZSx0Y2Us ZnNyLHRzciIpCiAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKIAotKGRl ZmluZV9pbnNuICJtb3ZoaSIKKyhkZWZpbmVfZXhwYW5kICJtb3ZoaSIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAibm9uaW1tZWRpYXRlX29wZXJh bmQiKQorICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAxICJnZW5lcmFsX29w ZXJhbmQiKSldCisgICIiCit7CisgIGlmIChNRU1fUCAob3BlcmFuZHNbMF0p CisgICAgICAmJiAhcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMV0sIEhJ bW9kZSkpCisgICAgeworICAgICAgb3BlcmFuZHNbMV0gPSBmb3JjZV9yZWcg KEhJbW9kZSwgb3BlcmFuZHNbMV0pOworICAgIH0KK30pCisKKyhkZWZpbmVf aW5zbiAiKm1vdmhpX2luc25zIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpI SSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1kLGQsZCxtLGQsKngsZCwq YSIpCiAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDEgImdlbmVyYWxfb3Bl cmFuZCIgImksZCxtLGQsKngsZCwqYSxkIikpXQotICAiIgorICAiIU1FTV9Q IChvcGVyYW5kc1swXSkgfHwgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNb MV0sIEhJbW9kZSkiCiB7CiAgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUp CiAgICAgewpAQCAtMTMwLDExICsxNTQsMjMgQEAKICAgWyhzZXRfYXR0ciAi dHlwZSIgImFyaXRoLG1vdmUsbG9hZCxzdG9yZSxmY2UsdGNlLGZzcix0c3Ii KQogICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCiAKLShkZWZpbmVfaW5z biAibW92c2kiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAiPWQsZCxkLG0sZCwqeCxkLCphLGQsYyIpCi0g ICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDEgImdlbmVyYWxfb3BlcmFuZCIg ImksZCxtLGQsKngsZCwqYSxkLGMsZCIpKV0KKyhkZWZpbmVfZXhwYW5kICJt b3ZzaSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAibm9uaW1tZWRp YXRlX29wZXJhbmQiKQorICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAxICJn ZW5lcmFsX29wZXJhbmQiKSldCiAgICIiCiB7CisgIGlmIChNRU1fUCAob3Bl cmFuZHNbMF0pCisgICAgICAmJiAhcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFu ZHNbMV0sIFNJbW9kZSkpCisgICAgeworICAgICAgb3BlcmFuZHNbMV0gPSBm b3JjZV9yZWcgKFNJbW9kZSwgb3BlcmFuZHNbMV0pOworICAgIH0KK30pCisK KyhkZWZpbmVfaW5zbiAiKm1vdnNpX2luc25zIgorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1kLGQsZCxt LGQsKngsZCwqYSxkLCpjIikKKyAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kg MSAiZ2VuZXJhbF9vcGVyYW5kIiAiaSxkLG0sZCwqeCxkLCphLGQsKmMsZCIp KV0KKyAgIiFNRU1fUCAob3BlcmFuZHNbMF0pIHx8IHJlZ2lzdGVyX29wZXJh bmQgKG9wZXJhbmRzWzFdLCBTSW1vZGUpIgorewogICBzd2l0Y2ggKHdoaWNo X2FsdGVybmF0aXZlKQogICAgIHsKICAgICBjYXNlIDA6CkBAIC0xNjksNDYg KzIwNSwxMDMgQEAKICAgRE9ORTsKIH0pCiAKKyhkZWZpbmVfZXhwYW5kICJt b3ZzZiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAibm9uaW1tZWRp YXRlX29wZXJhbmQiKQorICAgICAgICAobWF0Y2hfb3BlcmFuZDpTRiAxICJn ZW5lcmFsX29wZXJhbmQiKSldCisgICIiCit7CisgIGlmIChNRU1fUCAob3Bl cmFuZHNbMF0pCisgICAgICAmJiAhcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFu ZHNbMV0sIFNGbW9kZSkpCisgICAgeworICAgICAgb3BlcmFuZHNbMV0gPSBm b3JjZV9yZWcgKFNGbW9kZSwgb3BlcmFuZHNbMV0pOworICAgIH0KK30pCisK KyhkZWZpbmVfaW5zbiAiKm1vdnNmX2luc25zIgorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTRiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1kLGQsZCxt IikKKyAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0YgMSAiZ2VuZXJhbF9vcGVy YW5kIiAiaSxkLG0sZCIpKV0KKyAgIiFNRU1fUCAob3BlcmFuZHNbMF0pIHx8 IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBTRm1vZGUpIgorewor ICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZlKQorICAgIHsKKyAgICBjYXNl IDA6IHJldHVybiBcImxpICAgICAgJTAsICVEMVwiOzsKKyAgICBjYXNlIDE6 IHJldHVybiBtZHBfbW92ZSAob3BlcmFuZHMpOworICAgIGNhc2UgMjogcmV0 dXJuIG1kcF9saW5zbiAob3BlcmFuZHMsIE1EQV9XT1JELCBmYWxzZSk7Cisg ICAgY2FzZSAzOiByZXR1cm4gbWRwX3NpbnNuIChvcGVyYW5kcywgTURBX1dP UkQpOworICAgIGRlZmF1bHQ6IGdjY191bnJlYWNoYWJsZSAoKTsKKyAgICB9 Cit9CisgIFsoc2V0X2F0dHIgInR5cGUiICJhcml0aCxtb3ZlLGxvYWQsc3Rv cmUiKQorICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCisKKyhkZWZpbmVf aW5zbl9hbmRfc3BsaXQgIm1vdmRmIgorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpERiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1kLGQsZCxtIikKKyAg ICAgICAgKG1hdGNoX29wZXJhbmQ6REYgMSAiZ2VuZXJhbF9vcGVyYW5kIiAi aSxkLG0sZCIpKV0KKyAgIiIKKyAgIiMiCisgICJyZWxvYWRfY29tcGxldGVk IgorICBbKGNvbnN0X2ludCAwKV0KK3sKKyAgbWRzX21vdmRpIChvcGVyYW5k cyk7CisgIERPTkU7Cit9KQorCiAoZGVmaW5lX2luc24gImFkZHNpMyIKLSAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1kLGQsZCIpCi0gICAgICAgIChwbHVzOlNJIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIwLGQsJWQiKQotICAgICAgICAgICAg ICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJhcml0aF9vcGVyYW5kIiAiTCxO LGQiKSkpXQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPWQsZCxkLGQiKQorICAgICAgICAocGx1czpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwLGQsZCIp CisgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImFyaXRo X29wZXJhbmQiICJJLEwsTixkIikpKV0KICAgIiIKLSAgIkAKLSAgIGFkZGkg ICAgJTAsICVjMgotICAgYWRkcmkgICAlMCwgJTEsICVjMgotICAgYWRkICAg ICAlMCwgJTEsICUyIgoreworICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZl KQorICAgIHsKKyAgICBjYXNlIDA6IHJldHVybiBcImFkZGlzICUwLCAlVTJc IjsKKyAgICBjYXNlIDE6IHJldHVybiBtZHBfc2VsZWN0X2FkZF9pbW0gKG9w ZXJhbmRzLCBmYWxzZSk7CisgICAgY2FzZSAyOiByZXR1cm4gXCJhZGRyaSAl MCwgJTEsICVjMlwiOworICAgIGNhc2UgMzogcmV0dXJuIG1kcF9zZWxlY3Qg KG9wZXJhbmRzLCAiYWRkIiwgdHJ1ZSwgIiIsIGZhbHNlKTsKKyAgICBkZWZh dWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CisgICAgfQorfQogICBbKHNldF9h dHRyICJ0eXBlIiAiYXJpdGgiKQogICAgKHNldF9hdHRyICJtb2RlIiAiU0ki KV0pCiAKIChkZWZpbmVfaW5zbiAiKmFkZHNpM19jbXAiCiAgIFsoc2V0IChy ZWc6Q0NfTlogQ0NfUkVHTlVNKQotICAgICAgICAoY29tcGFyZTpDQ19OWiAo cGx1czpTSSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiZCxkLGQiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAxICJhcml0aF9vcGVyYW5kIiAiTixMLGQiKSkK LSAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpXQorICAg ICAgICAoY29tcGFyZTpDQ19OWiAocGx1czpTSQorICAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAsMCxkLGQiKQorICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6U0kgMiAiYXJpdGhfb3BlcmFuZCIgIkksTCxOLGQiKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpCisgICAoY2xv YmJlciAobWF0Y2hfc2NyYXRjaDpTSSAwICI9ZCxkLGQsZCIpKV0KICAgIiIK LSAgIkAKLSAgICVbICAgICAgIGFkZHJpLmMgcjEsICUwLCAlYzEgICAgICAg JV0KLSAgICVbICAgICAgIG0lVjAgICAgcjEsICUwXDthZGRpLmMgIHIxLCAl MiAgICAgICAgJV0KLSAgICVbICAgICAgIGFkZC5jICAgcjEsICUwLCAlMSAg ICAgICAgJV0iCit7CisgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUpCisg ICAgeworICAgIGNhc2UgMDogcmV0dXJuIFwiYWRkaXMuYyAlMCwgJVUyXCI7 CisgICAgY2FzZSAxOiByZXR1cm4gbWRwX3NlbGVjdF9hZGRfaW1tIChvcGVy YW5kcywgdHJ1ZSk7CisgICAgY2FzZSAyOiByZXR1cm4gXCJhZGRyaS5jICUw LCAlMSwgJWMyXCI7CisgICAgY2FzZSAzOiByZXR1cm4gbWRwX3NlbGVjdCAo b3BlcmFuZHMsICJhZGQiLCB0cnVlLCAiIiwgdHJ1ZSk7CisgICAgZGVmYXVs dDogZ2NjX3VucmVhY2hhYmxlICgpOworICAgIH0KK30KICAgWyhzZXRfYXR0 ciAidHlwZSIgImFyaXRoIikKICAgIChzZXRfYXR0ciAidXBfYyIgInllcyIp CiAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKIAotKGRlZmluZV9pbnNu ICJhZGRzaTNfdWNjIgorKGRlZmluZV9pbnNuICIqYWRkc2kzX3VjYyIKICAg WyhzZXQgKHJlZzpDQ19OWiBDQ19SRUdOVU0pCi0gICAgICAgIChjb21wYXJl OkNDX05aIChwbHVzOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwLGQsZCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImFyaXRoX29wZXJhbmQiICJM LE4sZCIpKQorICAgICAgICAoY29tcGFyZTpDQ19OWiAocGx1czpTSQorICAg ICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAsMCxkLGQiKQorICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiYXJpdGhfb3BlcmFuZCIgIkks TCxOLGQiKSkKICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAw KSkpCi0gICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ZCxkLGQiKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQsZCxkLGQiKQogICAgICAgICAocGx1 czpTSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKV0KICAgIiIKIHsK ICAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2ZSkKICAgICB7Ci0gICAgY2Fz ZSAwOiByZXR1cm4gbWRwX2FkZF9pbW1fdWNjIChvcGVyYW5kcyk7Ci0gICAg Y2FzZSAxOiByZXR1cm4gXCJhZGRyaS5jICUwLCAlMSwgJWMyXCI7Ci0gICAg Y2FzZSAyOiByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJhZGQiLCB0 cnVlLCAiIik7CisgICAgY2FzZSAwOiByZXR1cm4gXCJhZGRpcy5jICUwLCAl VTJcIjsKKyAgICBjYXNlIDE6IHJldHVybiBtZHBfc2VsZWN0X2FkZF9pbW0g KG9wZXJhbmRzLCB0cnVlKTsKKyAgICBjYXNlIDI6IHJldHVybiBcImFkZHJp LmMgJTAsICUxLCAlYzJcIjsKKyAgICBjYXNlIDM6IHJldHVybiBtZHBfc2Vs ZWN0IChvcGVyYW5kcywgImFkZCIsIHRydWUsICIiLCB0cnVlKTsKICAgICBk ZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CiAgICAgfQogfQpAQCAtMjE3 LDkgKzMxMCw5IEBACiAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKIAog KGRlZmluZV9pbnNuICJhZGRkaTMiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5k OkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9KmUsZCIpCi0gICAgICAgIChw bHVzOkRJIChtYXRjaF9vcGVyYW5kOkRJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICIqMCxkIikKLSAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6REkg MiAicmVnaXN0ZXJfb3BlcmFuZCIgIiplLGQiKSkpCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ZSxkIikKKyAg ICAgICAgKHBsdXM6REkgKG1hdGNoX29wZXJhbmQ6REkgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAsZCIpCisgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOkRJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJlLGQiKSkpCiAgIChjbG9i YmVyIChyZWc6Q0MgQ0NfUkVHTlVNKSldCiAgICIiCiAgICJACkBAIC0yMzMs MTcgKzMyNiwyMiBAQAogICAgICAgICAobWludXM6U0kgKG1hdGNoX29wZXJh bmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImQiKQogICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIg ImQiKSkpXQogICAiIgotICAic3ViICAgICAlMCwgJTEsICUyIgoreworICBy ZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJzdWIiLCBmYWxzZSwgIiIs IGZhbHNlKTsKK30KICAgWyhzZXRfYXR0ciAidHlwZSIgImFyaXRoIikKICAg IChzZXRfYXR0ciAibW9kZSIgIlNJIildKQogCiAoZGVmaW5lX2luc24gIipz dWJzaTNfY21wIgogICBbKHNldCAocmVnOkNDX05aIENDX1JFR05VTSkKLSAg ICAgICAgKGNvbXBhcmU6Q0NfTlogKG1pbnVzOlNJIChtYXRjaF9vcGVyYW5k OlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJkIikKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lz dGVyX29wZXJhbmQiICJkIikpCi0gICAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMCkpKV0KKyAgICAgICAgKGNvbXBhcmU6Q0NfTlogKG1pbnVz OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJk IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJkIikpCisgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKQorICAgKGNsb2JiZXIg KG1hdGNoX3NjcmF0Y2g6U0kgMCAiPWQiKSldCiAgICIiCi0gICIlWyAgICAg ICAgc3ViLmMgICByMSwgJTAsICUxICAgICAgICAlXSIKK3sKKyAgcmV0dXJu IG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAic3ViIiwgZmFsc2UsICIiLCB0cnVl KTsKK30KICAgWyhzZXRfYXR0ciAidHlwZSIgImFyaXRoIikKICAgIChzZXRf YXR0ciAidXBfYyIgInllcyIpCiAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIp XSkKQEAgLTI1NSwxMSArMzUzLDEwIEBACiAgICAoc2V0IChyZWc6Q0MgQ0Nf UkVHTlVNKQogICAgICAgICAoY29tcGFyZTpDQyAobWF0Y2hfZHVwIDEpICht YXRjaF9kdXAgMikpKV0KICAgIiIKLSAgWyhwYXJhbGxlbAotICAgICAgIFso c2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQotICAgICAgICAgICAgIChjb21wYXJl OkNDIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkpCi0gICAgICAgIChz ZXQgKG1hdGNoX2R1cCAwKQotICAgICAgICAgICAgIChtaW51czpTSSAobWF0 Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKV0pXSkKKyAgWyhzZXQgKHJlZzpD QyBDQ19SRUdOVU0pCisgICAgICAgIChjb21wYXJlOkNDIChtYXRjaF9kdXAg MSkgKG1hdGNoX2R1cCAyKSkpCisgICAoc2V0IChtYXRjaF9kdXAgMCkKKyAg ICAgICAgKG1pbnVzOlNJIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkp XSkKIAogKGRlZmluZV9pbnNuICJzdWJzaTNfdWNjX3BjbXAiCiAgIFsocGFy YWxsZWwKQEAgLTI3MCw3ICszNjcsNyBAQAogICAgICAgICAgICAgIChtaW51 czpTSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKV0pXQogICAiIgog ewotICByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJzdWIiLCBmYWxz ZSwgIiIpOworICByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJzdWIi LCBmYWxzZSwgIiIsIHRydWUpOwogfQogICBbKHNldF9hdHRyICJ0eXBlIiAi YXJpdGgiKQogICAgKHNldF9hdHRyICJ1cF9jIiAieWVzIikKQEAgLTI4NSwx NiArMzgyLDE2IEBACiAgICAgICAgIChtaW51czpTSSAobWF0Y2hfZHVwIDEp IChtYXRjaF9kdXAgMikpKV0KICAgIiIKIHsKLSAgcmV0dXJuIG1kcF9zZWxl Y3QgKG9wZXJhbmRzLCAic3ViIiwgZmFsc2UsICIiKTsKKyAgcmV0dXJuIG1k cF9zZWxlY3QgKG9wZXJhbmRzLCAic3ViIiwgZmFsc2UsICIiLCB0cnVlKTsK IH0KICAgWyhzZXRfYXR0ciAidHlwZSIgImFyaXRoIikKICAgIChzZXRfYXR0 ciAidXBfYyIgInllcyIpCiAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkK IAogKGRlZmluZV9pbnNuICJzdWJkaTMiCi0gIFsoc2V0IChtYXRjaF9vcGVy YW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9KmUsZCIpCi0gICAgICAg IChtaW51czpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiKjAsZCIpCi0gICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiKmUsZCIpKSkKKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1lLGQi KQorICAgICAgICAobWludXM6REkgKG1hdGNoX29wZXJhbmQ6REkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAsZCIpCisgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiZSxkIikpKQog ICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19SRUdOVU0pKV0KICAgIiIKICAgIkAK QEAgLTMwNiwzNiArNDAzLDQ3IEBACiAoZGVmaW5lX2luc24gImFuZHNpMyIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1kLGQsZCxkIikKICAgICAgICAgKGFuZDpTSSAobWF0Y2hfb3BlcmFu ZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwLGQsZCIpCi0gICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiYXJpdGhfb3BlcmFuZCIg IkssUSxNLGQiKSkpXQorICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlNJIDIgImFyaXRoX29wZXJhbmQiICJJLEssTSxkIikpKV0KICAgIiIKLSAg IkAKLSAgIGFuZGkgICAgJTAsICVjMgotICAgYW5kaXMgICAlMCwgJVUyCi0g ICBhbmRyaSAgICUwLCAlMSwgJWMyCi0gICBhbmQgICAgICUwLCAlMSwgJTIi Cit7CisgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUpCisgICAgeworICAg IGNhc2UgMDogcmV0dXJuIFwiYW5kaXMgJTAsICVVMlwiOworICAgIGNhc2Ug MTogcmV0dXJuIFwiYW5kaSAgJTAsICVjMiI7CisgICAgY2FzZSAyOiByZXR1 cm4gXCJhbmRyaSAlMCwgJTEsICVjMlwiOworICAgIGNhc2UgMzogcmV0dXJu IG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAiYW5kIiwgdHJ1ZSwgIiIsIGZhbHNl KTsKKyAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CisgICAgfQor fQogICBbKHNldF9hdHRyICJ0eXBlIiAiYXJpdGgiKQogICAgKHNldF9hdHRy ICJtb2RlIiAiU0kiKV0pCiAKIChkZWZpbmVfaW5zbiAiYW5kc2kzX2NtcCIK ICAgWyhzZXQgKHJlZzpDQ19OWiBDQ19SRUdOVU0pCi0gICAgICAgIChjb21w YXJlOkNDX05aIChhbmQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgImQsZCxkLGQiKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDEgImFyaXRoX29wZXJhbmQi ICJNLEssUSxkIikpCi0gICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgMCkpKV0KKyAgICAgICAgKGNvbXBhcmU6Q0NfTlogKGFuZDpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwLDAsZCIp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6U0kgMiAiYXJpdGhfb3BlcmFuZCIgIkksSyxNLGQiKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpCisgICAoY2xvYmJlciAo bWF0Y2hfc2NyYXRjaDpTSSAwICI9ZCxkLGQsZCIpKV0KICAgIiIKLSAgIkAK LSAgICVbICAgICAgICBhbmRyaS5jIHIxLCAlMCwgJWMxICAgICAgJV0KLSAg ICVbICAgICAgICBtJVYwICAgIHIxLCAlMFw7YW5kaS5jICByMSwgJWMxICAg ICAgICAlXQotICAgJVsgICAgICAgIG0lVjAgICAgcjEsICUwXDthbmRpcy5j IHIxLCAlVTEgICAgICAgICVdCi0gICAlWyAgICAgICAgYW5kLmMgICByMSwg JTAsICUxICAgICAgICVdIgoreworICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0 aXZlKQorICAgIHsKKyAgICBjYXNlIDA6IHJldHVybiBcImFuZGlzLmMgJTAs ICVVMlwiOworICAgIGNhc2UgMTogcmV0dXJuIFwiYW5kaS5jICAlMCwgJWMy IjsKKyAgICBjYXNlIDI6IHJldHVybiBcImFuZHJpLmMgJTAsICUxLCAlYzJc IjsKKyAgICBjYXNlIDM6IHJldHVybiBtZHBfc2VsZWN0IChvcGVyYW5kcywg ImFuZCIsIHRydWUsICIiLCB0cnVlKTsKKyAgICBkZWZhdWx0OiBnY2NfdW5y ZWFjaGFibGUgKCk7CisgICAgfQorfQogICBbKHNldF9hdHRyICJ0eXBlIiAi YXJpdGgiKQogICAgKHNldF9hdHRyICJ1cF9jIiAieWVzIikKICAgIChzZXRf YXR0ciAibW9kZSIgIlNJIildKQogCi0oZGVmaW5lX2luc24gImFuZHNpM191 Y2MiCisoZGVmaW5lX2luc24gIiphbmRzaTNfdWNjIgogICBbKHNldCAocmVn OkNDX05aIENDX1JFR05VTSkKICAgICAgICAgKGNvbXBhcmU6Q0NfTlogKGFu ZDpTSQogICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAsMCxkLGQiKQotICAgICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiYXJpdGhfb3Bl cmFuZCIgIkssUSxNLGQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlNJIDIgImFyaXRoX29wZXJhbmQiICJJLEssTSxkIikp CiAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKQogICAg KHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PWQsZCxkLGQiKQogICAgICAgICAoYW5kOlNJIChtYXRjaF9kdXAgMSkgKG1h dGNoX2R1cCAyKSkpXQpAQCAtMzQzLDEwICs0NTEsMTAgQEAKIHsKICAgc3dp dGNoICh3aGljaF9hbHRlcm5hdGl2ZSkKICAgICB7Ci0gICAgY2FzZSAwOiAg cmV0dXJuIFwiYW5kaS5jICAlMCwgJWMyXCI7Ci0gICAgY2FzZSAxOiAgcmV0 dXJuIFwiYW5kaXMuYyAlMCwgJVUyXCI7Ci0gICAgY2FzZSAyOiAgcmV0dXJu IFwiYW5kcmkuYyAlMCwgJTEsICVjMlwiOwotICAgIGNhc2UgMzogIHJldHVy biBtZHBfc2VsZWN0IChvcGVyYW5kcywgImFuZCIsIHRydWUsICIiKTsKKyAg ICBjYXNlIDA6IHJldHVybiBcImFuZGlzLmMgJTAsICVVMlwiOworICAgIGNh c2UgMTogcmV0dXJuIFwiYW5kaS5jICAlMCwgJWMyIjsKKyAgICBjYXNlIDI6 IHJldHVybiBcImFuZHJpLmMgJTAsICUxLCAlYzJcIjsKKyAgICBjYXNlIDM6 IHJldHVybiBtZHBfc2VsZWN0IChvcGVyYW5kcywgImFuZCIsIHRydWUsICIi LCB0cnVlKTsKICAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CiAg ICAgfQogfQpAQCAtMzU1LDEyICs0NjMsMTIgQEAKICAgIChzZXRfYXR0ciAi bW9kZSIgIlNJIildKQogCiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqemVy b19leHRyYWN0X2FuZGkiCi0gIFsoc2V0IChyZWc6Q0NfTlogQ0NfUkVHTlVN KQotICAgICAgICAoY29tcGFyZTpDQ19OWiAoemVyb19leHRyYWN0OlNJCi0g ICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiZCIpCi0gICAgICAgICAgICAgICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZDpTSSAxICJjb25zdF9iaV9vcGVyYW5kIiAiIikK LSAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIg ImNvbnN0X2JpX29wZXJhbmQiICIiKSkKLSAgICAgICAgICAgICAgICAgICAg ICAgKGNvbnN0X2ludCAwKSkpXQorICBbKHNldCAocmVnOkNDIENDX1JFR05V TSkKKyAgICAgICAgKGNvbXBhcmU6Q0MgKHplcm9fZXh0cmFjdDpTSQorICAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgImQiKQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6U0kgMSAiY29uc3RfdWltbTUiICIiKQorICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3RfdWltbTUiICIi KSkKKyAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpXQogICAi IgogICAiIyIKICAgIiIKQEAgLTM3MywyNiArNDgxLDM5IEBACiAoZGVmaW5l X2luc24gImlvcnNpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1kLGQsZCxkIikKICAgICAgICAgKGlvcjpT SSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCww LGQsZCIpCi0gICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAi YXJpdGhfb3BlcmFuZCIgIkssUSxNLGQiKSkpXQorICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlNJIDIgImFyaXRoX29wZXJhbmQiICJJLEssTSxk IikpKV0KICAgIiIKLSAgIkAKLSAgIG9yaSAgICAgJTAsICVjMgotICAgb3Jp cyAgICAlMCwgJVUyCi0gICBvcnJpICAgICUwLCAlMSwgJWMyCi0gICBvciAg ICAgICUwLCAlMSwgJTIiCit7CisgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRp dmUpCisgICAgeworICAgIGNhc2UgMDogcmV0dXJuIFwib3JpcyAlMCwgJVUy XCI7CisgICAgY2FzZSAxOiByZXR1cm4gXCJvcmkgICUwLCAlYzJcIjsKKyAg ICBjYXNlIDI6IHJldHVybiBcIm9ycmkgJTAsICUxLCAlYzJcIjsKKyAgICBj YXNlIDM6IHJldHVybiBtZHBfc2VsZWN0IChvcGVyYW5kcywgIm9yIiwgdHJ1 ZSwgIiIsIGZhbHNlKTsKKyAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUg KCk7CisgICAgfQorfQogICBbKHNldF9hdHRyICJ0eXBlIiAiYXJpdGgiKQog ICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCiAKIChkZWZpbmVfaW5zbiAi aW9yc2kzX3VjYyIKICAgWyhzZXQgKHJlZzpDQ19OWiBDQ19SRUdOVU0pCi0g ICAgICAgIChjb21wYXJlOkNDX05aIChpb3I6U0kgKG1hdGNoX29wZXJhbmQ6 U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImQiKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lzdGVy X29wZXJhbmQiICJkIikpCisgICAgICAgIChjb21wYXJlOkNDX05aIChpb3I6 U0kKKyAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIwLDAsZCxkIikKKyAgICAgICAgICAg ICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImFyaXRoX29wZXJh bmQiICJJLEssTSxkIikpCiAgICAgICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMCkpKQotICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPWQiKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpT SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQsZCxkLGQiKQogICAgICAgICAo aW9yOlNJIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkpXQogICAiIgog ewotICByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJvciIsIHRydWUs ICIiKTsKKyAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2ZSkKKyAgICB7Cisg ICAgY2FzZSAwOiByZXR1cm4gXCJvcmlzLmMgJTAsICVVMlwiOworICAgIGNh c2UgMTogcmV0dXJuIFwib3JpLmMgICUwLCAlYzJcIjsKKyAgICBjYXNlIDI6 IHJldHVybiBcIm9ycmkuYyAlMCwgJTEsICVjMlwiOworICAgIGNhc2UgMzog cmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAib3IiLCB0cnVlLCAiIiwg dHJ1ZSk7CisgICAgZGVmYXVsdDogZ2NjX3VucmVhY2hhYmxlICgpOworICAg IH0KIH0KICAgWyhzZXRfYXR0ciAidHlwZSIgImFyaXRoIikKICAgIChzZXRf YXR0ciAidXBfYyIgInllcyIpCkBAIC00MDAsMTEgKzUyMSwyMiBAQAogCiAo ZGVmaW5lX2luc24gImlvcnNpM19jbXAiCiAgIFsoc2V0IChyZWc6Q0NfTlog Q0NfUkVHTlVNKQotICAgICAgICAoY29tcGFyZTpDQ19OWiAoaW9yOlNJICht YXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJkIikKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpKQotICAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDApKSldCisgICAgICAgIChjb21wYXJlOkND X05aIChpb3I6U0kKKyAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwLDAsZCxkIikKKyAg ICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImFy aXRoX29wZXJhbmQiICJJLEssTSxkIikpCisgICAgICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgMCkpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0 Y2g6U0kgMCAiPWQsZCxkLGQiKSldCiAgICIiCi0gICIlWyAgICAgICAgb3Iu YyAgICByMSwgJTAsICUxICAgICAgICVdIgoreworICBzd2l0Y2ggKHdoaWNo X2FsdGVybmF0aXZlKQorICAgIHsKKyAgICBjYXNlIDA6IHJldHVybiBcIm9y aXMuYyAlMCwgJVUyXCI7CisgICAgY2FzZSAxOiByZXR1cm4gXCJvcmkuYyAg JTAsICVjMlwiOworICAgIGNhc2UgMjogcmV0dXJuIFwib3JyaS5jICUwLCAl MSwgJWMyXCI7CisgICAgY2FzZSAzOiByZXR1cm4gbWRwX3NlbGVjdCAob3Bl cmFuZHMsICJvciIsIHRydWUsICIiLCB0cnVlKTsKKyAgICBkZWZhdWx0OiBn Y2NfdW5yZWFjaGFibGUgKCk7CisgICAgfQorfQogICBbKHNldF9hdHRyICJ0 eXBlIiAiYXJpdGgiKQogICAgKHNldF9hdHRyICJ1cF9jIiAieWVzIikKICAg IChzZXRfYXR0ciAibW9kZSIgIlNJIildKQpAQCAtNDE0LDcgKzU0Niw5IEBA CiAgICAgICAgICh4b3I6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgImQiKQogICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJkIikpKV0KICAgIiIKLSAg InhvciAgICAgJTAsICUxLCAlMiIKK3sKKyAgcmV0dXJuIG1kcF9zZWxlY3Qg KG9wZXJhbmRzLCAieG9yIiwgdHJ1ZSwgIiIsIGZhbHNlKTsKK30KICAgWyhz ZXRfYXR0ciAidHlwZSIgImFyaXRoIikKICAgIChzZXRfYXR0ciAibW9kZSIg IlNJIildKQogCkBAIC00MjcsNyArNTYxLDcgQEAKICAgICAgICAgKHhvcjpT SSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKV0KICAgIiIKIHsKLSAg cmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAieG9yIiwgdHJ1ZSwgIiIp OworICByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJ4b3IiLCB0cnVl LCAiIiwgdHJ1ZSk7CiB9CiAgIFsoc2V0X2F0dHIgInR5cGUiICJhcml0aCIp CiAgICAoc2V0X2F0dHIgInVwX2MiICJ5ZXMiKQpAQCAtNDM1LDExICs1Njks MTQgQEAKIAogKGRlZmluZV9pbnNuICJ4b3JzaTNfY21wIgogICBbKHNldCAo cmVnOkNDX05aIENDX1JFR05VTSkKLSAgICAgICAgKGNvbXBhcmU6Q0NfTlog KHhvcjpTSSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiZCIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImQiKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpXQorICAgICAgICAo Y29tcGFyZTpDQ19OWiAoeG9yOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJkIikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5k IiAiZCIpKQorICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAp KSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDAgIj1kIikpXQog ICAiIgotICAiJVsgICAgICAgIHhvci5jICAgcjEsICUwLCAlMSAgICAgICAl XSIKK3sKKyAgcmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAieG9yIiwg dHJ1ZSwgIiIsIHRydWUpOworfQogICBbKHNldF9hdHRyICJ0eXBlIiAiYXJp dGgiKQogICAgKHNldF9hdHRyICJ1cF9jIiAieWVzIikKICAgIChzZXRfYXR0 ciAibW9kZSIgIlNJIildKQpAQCAtNDU5LDQ5ICs1OTYsMzUgQEAKICAgWyhz ZXRfYXR0ciAidHlwZSIgImFyaXRoLGxvYWQiKQogICAgKHNldF9hdHRyICJt b2RlIiAiU0kiKV0pCiAKLShkZWZpbmVfaW5zbiAiZXh0ZW5kcWlzaTJfY21w IgorKGRlZmluZV9pbnNuICIqZXh0ZW5kcWlzaTJfdWNjIgogICBbKHNldCAo cmVnOkNDX04gQ0NfUkVHTlVNKQogICAgICAgICAoY29tcGFyZTpDQ19OIChh c2hpZnRydDpTSQotICAgICAgICAgICAgICAgICAgICAgICAoYXNoaWZ0OlNJ IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJkIikK KyAgICAgICAgICAgICAgICAgICAgICAgKGFzaGlmdDpTSSAobWF0Y2hfb3Bl cmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyNCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMjQpKQotICAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKV0KKyAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDApKSkKKyAgIChzZXQgKG1hdGNoX29wZXJh bmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kIikKKyAgICAgICAgKHNp Z25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29w ZXJhbmQiICIwIikpKV0KICAgIiIKLSAgIiVbICAgICAgICBleHRzYi5jIHIx LCAlMCAgICAgICAlXSIKKyAgImV4dHNiLmMgJTAsICUxIgogICBbKHNldF9h dHRyICJ0eXBlIiAiYXJpdGgiKQogICAgKHNldF9hdHRyICJ1cF9jIiAieWVz IikKICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQogCi0oZGVmaW5lX2lu c24gImV4dGVuZHFpc2kyX3VjYyIKKyhkZWZpbmVfaW5zbiAiKmV4dGVuZHFp c2kyX2NtcCIKICAgWyhzZXQgKHJlZzpDQ19OIENDX1JFR05VTSkKICAgICAg ICAgKGNvbXBhcmU6Q0NfTiAoYXNoaWZ0cnQ6U0kKICAgICAgICAgICAgICAg ICAgICAgICAgKGFzaGlmdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiZCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAyNCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgMjQpKQogICAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMCkpKQotICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPWQiKQotICAgICAgICAoc2lnbl9leHRlbmQ6 U0kgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAi KSkpXQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6U0kgMCAiPWQiKSld CiAgICIiCiAgICJleHRzYi5jICUwLCAlMSIKICAgWyhzZXRfYXR0ciAidHlw ZSIgImFyaXRoIikKICAgIChzZXRfYXR0ciAidXBfYyIgInllcyIpCiAgICAo c2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKIAotKGRlZmluZV9pbnNuICJ6ZXJv X2V4dGVuZHFpc2kyIgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiI9ZCxkIikKLSAgICAgICAgKHplcm9fZXh0ZW5k OlNJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJk LG0iKSkpXQotICAiIgotewotICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZl KQotICAgIHsKLSAgICBjYXNlIDA6IHJldHVybiBcImV4dHpiICAgJTAsICUx XCI7Ci0gICAgY2FzZSAxOiByZXR1cm4gbWRwX2xpbnNuIChvcGVyYW5kcywg TURBX0JZVEUsIGZhbHNlKTsKLSAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFi bGUgKCk7Ci0gICAgfQotfQotICBbKHNldF9hdHRyICJ0eXBlIiAiYXJpdGgs IGxvYWQiKQotICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0KIChkZWZp bmVfaW5zbiAiZXh0ZW5kaGlzaTIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ZCxkIikKICAgICAgICAgKHNp Z25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOkhJIDEgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAiZCxtIikpKV0KQEAgLTUxNywzNCArNjQwLDc5IEBACiAg IFsoc2V0X2F0dHIgInR5cGUiICJhcml0aCwgbG9hZCIpCiAgICAoc2V0X2F0 dHIgIm1vZGUiICJTSSIpXSkKIAotKGRlZmluZV9pbnNuICJleHRlbmRoaXNp Ml9jbXAiCisoZGVmaW5lX2luc24gIipleHRlbmRoaXNpMl91Y2MiCiAgIFso c2V0IChyZWc6Q0NfTiBDQ19SRUdOVU0pCiAgICAgICAgIChjb21wYXJlOkND X04gKGFzaGlmdHJ0OlNJCi0gICAgICAgICAgICAgICAgICAgICAgIChhc2hp ZnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIg ImQiKQorICAgICAgICAgICAgICAgICAgICAgICAoYXNoaWZ0OlNJIChtYXRj aF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJkIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDE2KSkK ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxNikpCi0gICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpXQorICAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKQorICAoc2V0IChtYXRjaF9v cGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ZCIpCisgICAgICAg KHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVy X29wZXJhbmQiICIwIikpKV0KICAgIiIKLSAgIiVbICAgICAgICBleHRzaC5j IHIxLCAlMCAgICAgICAlXSIKKyAgImV4dHNoLmMgJTAsICUxIgogICBbKHNl dF9hdHRyICJ0eXBlIiAiYXJpdGgiKQogICAgKHNldF9hdHRyICJ1cF9jIiAi eWVzIikKICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQogCi0oZGVmaW5l X2luc24gImV4dGVuZGhpc2kyX3VjYyIKKyhkZWZpbmVfaW5zbiAiKmV4dGVu ZGhpc2kyX2NtcCIKICAgWyhzZXQgKHJlZzpDQ19OIENDX1JFR05VTSkKICAg ICAgICAgKGNvbXBhcmU6Q0NfTiAoYXNoaWZ0cnQ6U0kKICAgICAgICAgICAg ICAgICAgICAgICAgKGFzaGlmdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiZCIpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAxNikpCiAgICAgICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgMTYpKQogICAgICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMCkpKQotICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9ZCIpCi0gICAgICAgKHNpZ25fZXh0ZW5k OlNJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIw IikpKV0KKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDAgIj1kIikp XQogICAiIgogICAiZXh0c2guYyAlMCwgJTEiCiAgIFsoc2V0X2F0dHIgInR5 cGUiICJhcml0aCIpCiAgICAoc2V0X2F0dHIgInVwX2MiICJ5ZXMiKQogICAg KHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCiAKKyhkZWZpbmVfaW5zbiAiemVy b19leHRlbmRxaXNpMiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1kLGQiKQorICAgICAgICAoemVyb19leHRl bmQ6U0kgKG1hdGNoX29wZXJhbmQ6UUkgMSAibm9uaW1tZWRpYXRlX29wZXJh bmQiICJkLG0iKSkpXQorICAiIgoreworICBzd2l0Y2ggKHdoaWNoX2FsdGVy bmF0aXZlKQorICAgIHsKKyAgICBjYXNlIDA6IHJldHVybiBcImV4dHpiICAg JTAsICUxXCI7CisgICAgY2FzZSAxOiByZXR1cm4gbWRwX2xpbnNuIChvcGVy YW5kcywgTURBX0JZVEUsIGZhbHNlKTsKKyAgICBkZWZhdWx0OiBnY2NfdW5y ZWFjaGFibGUgKCk7CisgICAgfQorICB9CisgIFsoc2V0X2F0dHIgInR5cGUi ICJhcml0aCwgbG9hZCIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkK KworKGRlZmluZV9pbnNuICIqemVyb19leHRlbmRxaXNpMl91Y2MiCisgIFso c2V0IChyZWc6Q0NfTiBDQ19SRUdOVU0pCisgICAgICAgIChjb21wYXJlOkND X04gKGxzaGlmdHJ0OlNJCisgICAgICAgICAgICAgICAgICAgICAgIChhc2hp ZnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIg ImQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMjQpKQorICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDI0KSkKKyAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSkK KyAgIChzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1kIikKKyAgICAgICAgKHplcm9fZXh0ZW5kOlNJIChtYXRjaF9vcGVy YW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIwIikpKV0KKyAgIiIKKyAg ImV4dHpiLmMgJTAsICUxIgorICBbKHNldF9hdHRyICJ0eXBlIiAiYXJpdGgi KQorICAgKHNldF9hdHRyICJ1cF9jIiAieWVzIikKKyAgIChzZXRfYXR0ciAi bW9kZSIgIlNJIildKQorCisoZGVmaW5lX2luc24gIip6ZXJvX2V4dGVuZHFp c2kyX2NtcCIKKyAgWyhzZXQgKHJlZzpDQ19OIENDX1JFR05VTSkKKyAgICAg ICAgKGNvbXBhcmU6Q0NfTiAobHNoaWZ0cnQ6U0kKKyAgICAgICAgICAgICAg ICAgICAgICAgKGFzaGlmdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiZCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAyNCkpCisgICAgICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgMjQpKQorICAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMCkpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6U0kg MCAiPWQiKSldCisgICIiCisgICJleHR6Yi5jICUwLCAlMSIKKyAgWyhzZXRf YXR0ciAidHlwZSIgImFyaXRoIikKKyAgIChzZXRfYXR0ciAidXBfYyIgInll cyIpCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKwogKGRlZmluZV9p bnNuICJ6ZXJvX2V4dGVuZGhpc2kyIgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQsZCIpCiAgICAgICAgICh6 ZXJvX2V4dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpISSAxICJub25pbW1lZGlh dGVfb3BlcmFuZCIgImQsbSIpKSldCkBAIC01NjAsNiArNzI4LDM1IEBACiAg IFsoc2V0X2F0dHIgInR5cGUiICJhcml0aCwgbG9hZCIpCiAgICAoc2V0X2F0 dHIgIm1vZGUiICJTSSIpXSkKIAorKGRlZmluZV9pbnNuICIqemVyb19leHRl bmRoaXNpMl91Y2MiCisgIFsoc2V0IChyZWc6Q0NfTiBDQ19SRUdOVU0pCisg ICAgICAgIChjb21wYXJlOkNDX04gKGxzaGlmdHJ0OlNJCisgICAgICAgICAg ICAgICAgICAgICAgIChhc2hpZnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgImQiKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMTYpKQorICAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDE2KSkKKyAgICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDApKSkKKyAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQiKQorICAgICAgICh6ZXJvX2V4dGVu ZDpTSSAobWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi MCIpKSldCisgICIiCisgICJleHR6aC5jICUwLCAlMSIKKyAgWyhzZXRfYXR0 ciAidHlwZSIgImFyaXRoIikKKyAgIChzZXRfYXR0ciAidXBfYyIgInllcyIp CisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKKworKGRlZmluZV9pbnNu ICIqemVyb19leHRlbmRoaXNpMl9jbXAiCisgIFsoc2V0IChyZWc6Q0NfTiBD Q19SRUdOVU0pCisgICAgICAgIChjb21wYXJlOkNDX04gKGxzaGlmdHJ0OlNJ CisgICAgICAgICAgICAgICAgICAgICAgIChhc2hpZnQ6U0kgKG1hdGNoX29w ZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImQiKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTYpKQorICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDE2KSkKKyAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSkKKyAgIChjbG9iYmVyICht YXRjaF9zY3JhdGNoOlNJIDAgIj1kIikpXQorICAiIgorICAiZXh0emguYyAl MCwgJTEiCisgIFsoc2V0X2F0dHIgInR5cGUiICJhcml0aCIpCisgICAoc2V0 X2F0dHIgInVwX2MiICJ5ZXMiKQorICAgKHNldF9hdHRyICJtb2RlIiAiU0ki KV0pCisKIChkZWZpbmVfaW5zbiAibXVsc2kzIgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWwiKQogICAgICAg ICAobXVsdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiZCIpCkBAIC01NzIsNyArNzY5LDggQEAKIAogKGRlZmluZV9pbnNu ICJtdWxzaWRpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14IikKLSAgICAgICAgKG11bHQ6REkgKHNpZ25f ZXh0ZW5kOkRJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJh bmQiICJkIikpCisgICAgICAgIChtdWx0OkRJIChzaWduX2V4dGVuZDpESQor ICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgImQiKSkKICAgICAgICAgICAgICAgICAgKHNpZ25fZXh0 ZW5kOkRJCiAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpKSkpXQogICAiIVRBUkdFVF9TQ09S RTVVIgpAQCAtNTgyLDcgKzc4MCw4IEBACiAKIChkZWZpbmVfaW5zbiAidW11 bHNpZGkzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXgiKQotICAgICAgICAobXVsdDpESSAoemVyb19leHRl bmQ6REkgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIg ImQiKSkKKyAgICAgICAgKG11bHQ6REkgKHplcm9fZXh0ZW5kOkRJCisgICAg ICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiZCIpKQogICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6 REkKICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgInJl Z2lzdGVyX29wZXJhbmQiICJkIikpKSldCiAgICIhVEFSR0VUX1NDT1JFNVUi CkBAIC02MzUsOCArODM0LDggQEAKIHsKICAgc3dpdGNoICh3aGljaF9hbHRl cm5hdGl2ZSkKICAgICB7Ci0gICAgY2FzZSAwOiByZXR1cm4gbWRwX3NlbGVj dCAob3BlcmFuZHMsICJzbGxpIiwgZmFsc2UsICJjIik7Ci0gICAgY2FzZSAx OiByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJzbGwiLCBmYWxzZSwg IiIpOworICAgIGNhc2UgMDogcmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRz LCAic2xsaSIsIGZhbHNlLCAiYyIsIHRydWUpOworICAgIGNhc2UgMTogcmV0 dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAic2xsIiwgZmFsc2UsICIiLCB0 cnVlKTsKICAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CiAgICAg fQogfQpAQCAtNjQ3LDEzICs4NDYsMTkgQEAKIChkZWZpbmVfaW5zbiAiYXNo bHNpM19jbXAiCiAgIFsoc2V0IChyZWc6Q0NfTlogQ0NfUkVHTlVNKQogICAg ICAgICAoY29tcGFyZTpDQ19OWiAoYXNoaWZ0OlNJCi0gICAgICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiZCxkIikKLSAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDEgImFyaXRoX29wZXJhbmQiICJKLGQiKSkKLSAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpXQorICAgICAgICAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgImQsZCIpCisgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpTSSAyICJhcml0aF9vcGVyYW5kIiAiSixkIikpCisgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKQorICAgKGNsb2JiZXIg KG1hdGNoX3NjcmF0Y2g6U0kgMCAiPWQsZCIpKV0KICAgIiIKLSAgIkAKLSAg ICVbICAgICAgICBzbGxpLmMgIHIxLCAlMCwgJWMxICAgICAgJV0KLSAgICVb ICAgICAgICBzbGwuYyAgIHIxLCAlMCwgJTEgICAgICAgJV0iCit7CisgIHN3 aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUpCisgICAgeworICAgIGNhc2UgMDog cmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAic2xsaSIsIGZhbHNlLCAi YyIsIHRydWUpOworICAgIGNhc2UgMTogcmV0dXJuIG1kcF9zZWxlY3QgKG9w ZXJhbmRzLCAic2xsIiwgZmFsc2UsICIiLCB0cnVlKTsKKyAgICBkZWZhdWx0 OiBnY2NfdW5yZWFjaGFibGUgKCk7CisgICAgfQorfQogICBbKHNldF9hdHRy ICJ0eXBlIiAiYXJpdGgiKQogICAgKHNldF9hdHRyICJ1cF9jIiAieWVzIikK ICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQpAQCAtNjgyLDcgKzg4Nyw3 IEBACiAgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUpCiAgICAgewogICAg IGNhc2UgMDogcmV0dXJuIFwic3JhaS5jICAlMCwgJTEsICVjMlwiOwotICAg IGNhc2UgMTogcmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAic3JhIiwg ZmFsc2UsICIiKTsKKyAgICBjYXNlIDE6IHJldHVybiBtZHBfc2VsZWN0IChv cGVyYW5kcywgInNyYSIsIGZhbHNlLCAiIiwgdHJ1ZSk7CiAgICAgZGVmYXVs dDogZ2NjX3VucmVhY2hhYmxlICgpOwogICAgIH0KIH0KQEAgLTY5MywzMSAr ODk4LDE2IEBACiAoZGVmaW5lX2luc24gImFzaHJzaTNfY21wIgogICBbKHNl dCAocmVnOkNDX05aIENDX1JFR05VTSkKICAgICAgICAgKGNvbXBhcmU6Q0Nf TlogKGFzaGlmdHJ0OlNJCi0gICAgICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCxkIikKLSAg ICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDEgImFy aXRoX29wZXJhbmQiICJKLGQiKSkKLSAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCAwKSkpXQotICAiIgotICAiQAotICAgJVsgICAgICAgIHNy YWkuYyAgcjEsICUwLCAlYzEgICAgICAlXQotICAgJVsgICAgICAgIHNyYS5j ICAgcjEsICUwLCAlMSAgICAgICAlXSIKLSAgWyhzZXRfYXR0ciAidHlwZSIg ImFyaXRoIikKLSAgIChzZXRfYXR0ciAidXBfYyIgInllcyIpCi0gICAoc2V0 X2F0dHIgIm1vZGUiICJTSSIpXSkKLQotKGRlZmluZV9pbnNuICJhc2hyc2kz X3VjY19uIgotICBbKHNldCAocmVnOkNDX04gQ0NfUkVHTlVNKQotICAgICAg ICAoY29tcGFyZTpDQ19OIChhc2hpZnRydDpTSQotICAgICAgICAgICAgICAg ICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiZCxkIikKLSAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6U0kgMiAiYXJpdGhfb3BlcmFuZCIgIkosZCIpKQotICAgICAgICAgICAg ICAgICAgICAgIChjb25zdF9pbnQgMCkpKQotICAgKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQsZCIpCi0gICAgICAg IChhc2hpZnRydDpTSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKV0K KyAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDEg InJlZ2lzdGVyX29wZXJhbmQiICJkLGQiKQorICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiYXJpdGhfb3BlcmFuZCIgIkos ZCIpKQorICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSkK KyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlNJIDAgIj1kLGQiKSldCiAg ICIiCiB7CiAgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUpCiAgICAgewog ICAgIGNhc2UgMDogcmV0dXJuIFwic3JhaS5jICAlMCwgJTEsICVjMlwiOwot ICAgIGNhc2UgMTogcmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAic3Jh IiwgZmFsc2UsICIiKTsKKyAgICBjYXNlIDE6IHJldHVybiBtZHBfc2VsZWN0 IChvcGVyYW5kcywgInNyYSIsIGZhbHNlLCAiIiwgdHJ1ZSk7CiAgICAgZGVm YXVsdDogZ2NjX3VucmVhY2hhYmxlICgpOwogICAgIH0KIH0KQEAgLTcyNSwy MCArOTE1LDYgQEAKICAgIChzZXRfYXR0ciAidXBfYyIgInllcyIpCiAgICAo c2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKIAotKGRlZmluZV9pbnNuICJhc2hy c2kzX2NtcF9uIgotICBbKHNldCAocmVnOkNDX04gQ0NfUkVHTlVNKQotICAg ICAgICAoY29tcGFyZTpDQ19OIChhc2hpZnRydDpTSQotICAgICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiZCxkIikKLSAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6U0kgMSAiYXJpdGhfb3BlcmFuZCIgIkosZCIpKQotICAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKV0KLSAgIiIKLSAgIkAKLSAg ICVbICAgICAgICBzcmFpLmMgIHIxLCAlMCwgJWMxICAgICAgJV0KLSAgICVb ICAgICAgICBzcmEuYyAgIHIxLCAlMCwgJTEgICAgICAgJV0iCi0gIFsoc2V0 X2F0dHIgInR5cGUiICJhcml0aCIpCi0gICAoc2V0X2F0dHIgInVwX2MiICJ5 ZXMiKQotICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0KIChkZWZpbmVf aW5zbiAibHNocnNpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1kLGQiKQogICAgICAgICAobHNoaWZ0cnQ6 U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImQs ZCIpCkBAIC03NjIsOCArOTM4LDggQEAKIHsKICAgc3dpdGNoICh3aGljaF9h bHRlcm5hdGl2ZSkKICAgICB7Ci0gICAgY2FzZSAwOiByZXR1cm4gbWRwX3Nl bGVjdCAob3BlcmFuZHMsICJzcmxpIiwgZmFsc2UsICJjIik7Ci0gICAgY2Fz ZSAxOiByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJzcmwiLCBmYWxz ZSwgIiIpOworICAgIGNhc2UgMDogcmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJh bmRzLCAic3JsaSIsIGZhbHNlLCAiYyIsIHRydWUpOworICAgIGNhc2UgMTog cmV0dXJuIG1kcF9zZWxlY3QgKG9wZXJhbmRzLCAic3JsIiwgZmFsc2UsICIi LCB0cnVlKTsKICAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CiAg ICAgfQogfQpAQCAtNzc0LDEzICs5NTAsMTkgQEAKIChkZWZpbmVfaW5zbiAi bHNocnNpM19jbXAiCiAgIFsoc2V0IChyZWc6Q0NfTlogQ0NfUkVHTlVNKQog ICAgICAgICAoY29tcGFyZTpDQ19OWiAobHNoaWZ0cnQ6U0kKLSAgICAgICAg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVy X29wZXJhbmQiICJkLGQiKQotICAgICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6U0kgMSAiYXJpdGhfb3BlcmFuZCIgIkosZCIpKQotICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSldCisgICAgICAg ICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiZCxkIikKKyAgICAgICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlNJIDIgImFyaXRoX29wZXJhbmQiICJKLGQiKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpCisgICAoY2xv YmJlciAobWF0Y2hfc2NyYXRjaDpTSSAwICI9ZCxkIikpXQogICAiIgotICAi QAotICAgJVsgICAgICAgIHNybGkuYyAgcjEsICUwLCAlYzEgICAgICAlXQot ICAgJVsgICAgICAgIHNybC5jICAgcjEsICUwLCAlMSAgICAgICAlXSIKK3sK KyAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2ZSkKKyAgICB7CisgICAgY2Fz ZSAwOiByZXR1cm4gbWRwX3NlbGVjdCAob3BlcmFuZHMsICJzcmxpIiwgZmFs c2UsICJjIiwgdHJ1ZSk7CisgICAgY2FzZSAxOiByZXR1cm4gbWRwX3NlbGVj dCAob3BlcmFuZHMsICJzcmwiLCBmYWxzZSwgIiIsIHRydWUpOworICAgIGRl ZmF1bHQ6IGdjY191bnJlYWNoYWJsZSAoKTsKKyAgICB9Cit9CiAgIFsoc2V0 X2F0dHIgInR5cGUiICJhcml0aCIpCiAgICAoc2V0X2F0dHIgInVwX2MiICJ5 ZXMiKQogICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCkBAIC03OTMsMTEg Kzk3NSwyNCBAQAogICBbKHNldF9hdHRyICJ0eXBlIiAiYXJpdGgiKQogICAg KHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCiAKKyhkZWZpbmVfaW5zbiAiKm5l Z3NpMl9jbXAiCisgIFsoc2V0IChyZWc6Q0NfTlogQ0NfUkVHTlVNKQorICAg ICAgICAoY29tcGFyZTpDQ19OWiAobmVnOlNJIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJlLGQiKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAwKSkpCisgICAoY2xvYmJlciAobWF0Y2hf c2NyYXRjaDpTSSAwICI9ZSxkIikpXQorICAiIgorICAiQAorICAgbmVnISAg ICAlMCwgJTEKKyAgIG5lZy5jICAgJTAsICUxIgorICBbKHNldF9hdHRyICJ0 eXBlIiAiYXJpdGgiKQorICAgKHNldF9hdHRyICJ1cF9jIiAieWVzIikKKyAg IChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorCiAoZGVmaW5lX2luc24gIm5l Z3NpMl91Y2MiCi0gIFsoc2V0IChyZWc6Q0MgQ0NfUkVHTlVNKQotICAgICAg ICAoY29tcGFyZTpDQyAobmVnOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJl Z2lzdGVyX29wZXJhbmQiICIqZSxkIikpCi0gICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMCkpKQotICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSplLGQiKQorICBbKHNldCAocmVnOkND X05aIENDX1JFR05VTSkKKyAgICAgICAgKGNvbXBhcmU6Q0NfTlogKG5lZzpT SSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiZSxk IikpCisgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKQor ICAgKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPWUsZCIpCiAgICAgICAgIChuZWc6U0kgKG1hdGNoX2R1cCAxKSkpXQog ICAiIgogICAiQApAQCAtODE3LDkgKzEwMTIsOSBAQAogCiAoZGVmaW5lX2lu c24gIm9uZV9jbXBsc2kyX3VjYyIKICAgWyhzZXQgKHJlZzpDQ19OWiBDQ19S RUdOVU0pCi0gICAgICAgIChjb21wYXJlOkNDX05aIChub3Q6U0kgKG1hdGNo X29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiplLGQiKSkKKyAg ICAgICAgKGNvbXBhcmU6Q0NfTlogKG5vdDpTSSAobWF0Y2hfb3BlcmFuZDpT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiZSxkIikpCiAgICAgICAgICAgICAg ICAgICAgICAgIChjb25zdF9pbnQgMCkpKQotICAgKHNldCAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSplLGQiKQorICAgKHNl dCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWUs ZCIpCiAgICAgICAgIChub3Q6U0kgKG1hdGNoX2R1cCAxKSkpXQogICAiIgog ICAiQApAQCAtODMxLDEyICsxMDI2LDEzIEBACiAKIChkZWZpbmVfaW5zbiAi b25lX2NtcGxzaTJfY21wIgogICBbKHNldCAocmVnOkNDX05aIENDX1JFR05V TSkKLSAgICAgICAgKGNvbXBhcmU6Q0NfTlogKG5vdDpTSSAobWF0Y2hfb3Bl cmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiKmUsZCIpKQotICAgICAg ICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSldCisgICAgICAgIChj b21wYXJlOkNDX05aIChub3Q6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgImUsZCIpKQorICAgICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDApKSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNo OlNJIDAgIj1lLGQiKSldCiAgICIiCiAgICJACi0gICAlWyAgICAgICAgbm90 ISAgICByMSwgJTAgICAgICAgJV0KLSAgICVbICAgICAgICBub3QuYyAgIHIx LCAlMCAgICAgICAlXSIKKyAgIG5vdCEgICAgJTAsICUxCisgICBub3QuYyAg ICUwLCAlMSIKICAgWyhzZXRfYXR0ciAidHlwZSIgImFyaXRoIikKICAgIChz ZXRfYXR0ciAidXBfYyIgInllcyIpCiAgICAoc2V0X2F0dHIgIm1vZGUiICJT SSIpXSkKQEAgLTg3Nyw4ICsxMDczLDggQEAKIAogKGRlZmluZV9pbnNuICJj bXBzaV9ueiIKICAgWyhzZXQgKHJlZzpDQ19OWiBDQ19SRUdOVU0pCi0gICAg ICAgIChjb21wYXJlOkNDX05aIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICJkLCplLGQiKQotICAgICAgICAgICAgICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZDpTSSAxICJhcml0aF9vcGVyYW5kIiAiTCwqZSxk IikpKV0KKyAgICAgICAgKGNvbXBhcmU6Q0NfTlogKG1hdGNoX29wZXJhbmQ6 U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgImQsZSxkIikKKyAgICAgICAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAiYXJpdGhfb3BlcmFu ZCIgIkwsZSxkIikpKV0KICAgIiIKICAgIkAKICAgIGNtcGkuYyAgJTAsICVj MQpAQCAtODkwLDggKzEwODYsOCBAQAogCiAoZGVmaW5lX2luc24gImNtcHNp X24iCiAgIFsoc2V0IChyZWc6Q0NfTiBDQ19SRUdOVU0pCi0gICAgICAgIChj b21wYXJlOkNDX04gKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgImQsKmUsZCIpCi0gICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6U0kgMSAiYXJpdGhfb3BlcmFuZCIgIkwsKmUsZCIpKSldCisg ICAgICAgIChjb21wYXJlOkNDX04gKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgImQsZSxkIikKKyAgICAgICAgICAgICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZDpTSSAxICJhcml0aF9vcGVyYW5kIiAiTCxlLGQi KSkpXQogICAiIgogICAiQAogICAgY21waS5jICAlMCwgJWMxCkBAIC05MDEs MTAgKzEwOTcsMjMgQEAKICAgICAoc2V0X2F0dHIgInVwX2MiICJ5ZXMiKQog ICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQogCisoZGVmaW5lX2luc24g IipjbXBzaV90b19hZGRzaSIKKyAgWyhzZXQgKHJlZzpDQ19OWiBDQ19SRUdO VU0pCisgICAgICAgIChjb21wYXJlOkNDX05aIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIwLGQiKQorICAgICAgICAgICAgICAg ICAgICAgICAobmVnOlNJIChtYXRjaF9vcGVyYW5kOlNJIDIgInJlZ2lzdGVy X29wZXJhbmQiICJlLGQiKSkpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0 Y2g6U0kgMCAiPWUsZCIpKV0KKyAgIiIKKyAgIkAKKyAgIGFkZCEgICAgJTAs ICUyCisgICBhZGQuYyAgICUwLCAlMSwgJTIiCisgICBbKHNldF9hdHRyICJ0 eXBlIiAiY21wIikKKyAgICAoc2V0X2F0dHIgInVwX2MiICJ5ZXMiKQorICAg IChzZXRfYXR0ciAibW9kZSIgIlNJIildKQorCiAoZGVmaW5lX2luc24gImNt cHNpX2NjIgogICBbKHNldCAocmVnOkNDIENDX1JFR05VTSkKLSAgICAgICAg KGNvbXBhcmU6Q0MgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgImQsKmUsZCIpCi0gICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDEgImFyaXRoX29wZXJhbmQiICJMLCplLGQiKSkpXQorICAg ICAgICAoY29tcGFyZTpDQyAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiZCxlLGQiKQorICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpTSSAxICJhcml0aF9vcGVyYW5kIiAiTCxlLGQiKSkpXQog ICAiIgogICAiQAogICAgY21waS5jICAlMCwgJWMxCkBAIC0xMDc4LDE3ICsx Mjg3LDE3IEBACiAgICAoY2xvYmJlciAocmVnOlNJIFJUX1JFR05VTSkpXQog ICAiU0lCTElOR19DQUxMX1AgKGluc24pIgogewotICBpZiAoIWZsYWdfcGlj KSAKLSAgICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZlKSAKKyAgaWYgKCFm bGFnX3BpYykKKyAgICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZlKQogICAg ICAgewogICAgICAgY2FzZSAwOiByZXR1cm4gXCJiciVTMCAgICUwXCI7CiAg ICAgICBjYXNlIDE6IHJldHVybiBcImogICAgICAgJTBcIjsKICAgICAgIGRl ZmF1bHQ6IGdjY191bnJlYWNoYWJsZSAoKTsKICAgICAgIH0KICAgZWxzZQot ICAgIHN3aXRjaCAod2hpY2hfYWx0ZXJuYXRpdmUpIAorICAgIHN3aXRjaCAo d2hpY2hfYWx0ZXJuYXRpdmUpCiAgICAgICB7Ci0gICAgICBjYXNlIDA6IHJl dHVybiBcIm12ICAgICAgcjI5LCAlMFw7LmNwYWRkICByMjlcO2JyICAgICAg cjI5XCI7CisgICAgICBjYXNlIDA6IHJldHVybiBcIm12ICAgICAgcjI5LCAl MFw7YnIgICAgICByMjlcIjsKICAgICAgIGNhc2UgMTogcmV0dXJuIFwibGEg ICAgICByMjksICUwXDticiAgICAgIHIyOVwiOwogICAgICAgZGVmYXVsdDog Z2NjX3VucmVhY2hhYmxlICgpOwogICAgICAgfQpAQCAtMTExMiwxNyArMTMy MSwxNyBAQAogICAgKGNsb2JiZXIgKHJlZzpTSSBSVF9SRUdOVU0pKV0KICAg IlNJQkxJTkdfQ0FMTF9QIChpbnNuKSIKIHsKLSAgaWYgKCFmbGFnX3BpYykg Ci0gICAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2ZSkgCisgIGlmICghZmxh Z19waWMpCisgICAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2ZSkKICAgICAg IHsKICAgICAgIGNhc2UgMDogcmV0dXJuIFwiYnIlUzEgICAlMVwiOwogICAg ICAgY2FzZSAxOiByZXR1cm4gXCJqICAgICAgICUxXCI7CiAgICAgICBkZWZh dWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7CiAgICAgICB9CiAgIGVsc2UKLSAg ICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZlKSAKKyAgICBzd2l0Y2ggKHdo aWNoX2FsdGVybmF0aXZlKQogICAgICAgewotICAgICAgY2FzZSAwOiByZXR1 cm4gXCJtdiAgICAgIHIyOSwgJTFcOy5jcGFkZCAgcjI5XDticiAgICAgIHIy OVwiOworICAgICAgY2FzZSAwOiByZXR1cm4gXCJtdiAgICAgIHIyOSwgJTFc O2JyICAgICAgcjI5XCI7CiAgICAgICBjYXNlIDE6IHJldHVybiBcImxhICAg ICAgcjI5LCAlMVw7YnIgICAgICByMjlcIjsKICAgICAgIGRlZmF1bHQ6IGdj Y191bnJlYWNoYWJsZSAoKTsKICAgICAgIH0KQEAgLTExNTQsNyArMTM2Myw3 IEBACiAgIGVsc2UKICAgICAgc3dpdGNoICh3aGljaF9hbHRlcm5hdGl2ZSkK ICAgICAgIHsKLSAgICAgIGNhc2UgMDogcmV0dXJuIFwibXYgICAgICByMjks ICUwXDsuY3BhZGQgIHIyOVw7YnJsICAgICByMjlcIjsKKyAgICAgIGNhc2Ug MDogcmV0dXJuIFwibXYgICAgICByMjksICUwXDticmwgICAgIHIyOVwiOwog ICAgICAgY2FzZSAxOiByZXR1cm4gXCJsYSAgICAgIHIyOSwgJTBcO2JybCAg ICAgcjI5XCI7CiAgICAgICBkZWZhdWx0OiBnY2NfdW5yZWFjaGFibGUgKCk7 CiAgICAgICB9CkBAIC0xMTYzLDcgKzEzNzIsNyBAQAogCiAoZGVmaW5lX2V4 cGFuZCAiY2FsbF92YWx1ZSIKICAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hf b3BlcmFuZCAwICIiICIiKQotICAgICAgICAgICAgICAoY2FsbCAobWF0Y2hf b3BlcmFuZCAxICIiICIiKSAobWF0Y2hfb3BlcmFuZCAyICIiICIiKSkpCisg ICAgICAgICAgICAgICAgICAgKGNhbGwgKG1hdGNoX29wZXJhbmQgMSAiIiAi IikgKG1hdGNoX29wZXJhbmQgMiAiIiAiIikpKQogICAgICAgICAgICAgICAo dXNlIChtYXRjaF9vcGVyYW5kIDMgIiIgIiIpKV0pXQogICAiIgogewpAQCAt MTE4OCw3ICsxMzk3LDcgQEAKICAgZWxzZQogICAgIHN3aXRjaCAod2hpY2hf YWx0ZXJuYXRpdmUpCiAgICAgICB7Ci0gICAgICBjYXNlIDA6IHJldHVybiBc Im12ICAgICAgcjI5LCAlMVw7LmNwYWRkICByMjlcO2JybCAgICAgcjI5XCI7 CisgICAgICBjYXNlIDA6IHJldHVybiBcIm12ICAgICAgcjI5LCAlMVw7YnJs ICAgICByMjlcIjsKICAgICAgIGNhc2UgMTogcmV0dXJuIFwibGEgICAgICBy MjksICUxXDticmwgICAgIHIyOVwiOwogICAgICAgZGVmYXVsdDogZ2NjX3Vu cmVhY2hhYmxlICgpOwogICAgICAgfQpAQCAtMTI3NywxMyArMTQ4Niw1OSBA QAogKQogCiAoZGVmaW5lX2luc24gImNwbG9hZCIKLSAgWyh1bnNwZWM6U0kg Wyhjb25zdF9pbnQgMSldIDEpXQorICBbKHVuc3BlY192b2xhdGlsZTpTSSBb KGNvbnN0X2ludCAxKV0gQ1BMT0FEKV0KICAgImZsYWdfcGljIgogICAiLmNw bG9hZCByMjkiCiApCiAKLShkZWZpbmVfaW5zbiAiY3ByZXN0b3JlIgotICBb KHVuc3BlYzpTSSBbKG1hdGNoX29wZXJhbmQ6U0kgMCAiIiAiIildIDIpXQor KGRlZmluZV9pbnNuICJjcHJlc3RvcmVfdXNlX2ZwIgorICBbKHVuc3BlY192 b2xhdGlsZTpTSSBbKG1hdGNoX29wZXJhbmQ6U0kgMCAiIiAiIildIENQUkVT VE9SRSkKKyAgICh1c2UgKHJlZzpTSSBGUF9SRUdOVU0pKV0KICAgImZsYWdf cGljIgotICAiLmNwcmVzdG9yZSAlMCIKKyAgIi5jcHJlc3RvcmUgcjIsICUw IgogKQorCisoZGVmaW5lX2luc24gImNwcmVzdG9yZV91c2Vfc3AiCisgIFso dW5zcGVjX3ZvbGF0aWxlOlNJIFsobWF0Y2hfb3BlcmFuZDpTSSAwICIiICIi KV0gQ1BSRVNUT1JFKQorICAgKHVzZSAocmVnOlNJIFNQX1JFR05VTSkpXQor ICAiZmxhZ19waWMiCisgICIuY3ByZXN0b3JlIHIwLCAlMCIKKykKKworKGRl ZmluZV9leHBhbmQgImRvbG9vcF9lbmQiCisgIFsodXNlIChtYXRjaF9vcGVy YW5kIDAgIiIgIiIpKSAgICA7IGxvb3AgcHNldWRvCisgICAodXNlIChtYXRj aF9vcGVyYW5kIDEgIiIgIiIpKSAgICA7IGl0ZXJhdGlvbnM7IHplcm8gaWYg dW5rbm93bgorICAgKHVzZSAobWF0Y2hfb3BlcmFuZCAyICIiICIiKSkgICAg OyBtYXggaXRlcmF0aW9ucworICAgKHVzZSAobWF0Y2hfb3BlcmFuZCAzICIi ICIiKSkgICAgOyBsb29wIGxldmVsCisgICAodXNlIChtYXRjaF9vcGVyYW5k IDQgIiIgIiIpKV0gICA7IGxhYmVsCisgICIiCisgIHsKKyAgICBpZiAoSU5U VkFMIChvcGVyYW5kc1szXSkgPiAxKQorICAgICAgRkFJTDsKKworICAgIGlm IChHRVRfTU9ERSAob3BlcmFuZHNbMF0pID09IFNJbW9kZSkKKyAgICAgIHsK KyAgICAgICAgcnR4IHNyMCA9IGdlbl9ydHhfUkVHIChTSW1vZGUsIENOX1JF R05VTSk7CisgICAgICAgIGVtaXRfanVtcF9pbnNuIChnZW5fZG9sb29wX2Vu ZF9zaSAoc3IwLCBvcGVyYW5kc1s0XSkpOworICAgICAgfQorICAgIGVsc2UK KyAgICAgIEZBSUw7CisKKyAgICBET05FOworICB9KQorCisoZGVmaW5lX2lu c24gImRvbG9vcF9lbmRfc2kiCisgIFsoc2V0IChwYykKKyAgICAgICAgKGlm X3RoZW5fZWxzZQorICAgICAgICAgKG5lIChtYXRjaF9vcGVyYW5kOlNJIDAg InNyMF9vcGVyYW5kIiAiIikKKyAgICAgICAgICAgICAoY29uc3RfaW50IDAp KQorICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIiICIi KSkKKyAgICAgICAgIChwYykpKQorICAgKHNldCAobWF0Y2hfZHVwIDApCisg ICAgICAgIChwbHVzOlNJIChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAg ICAgKGNvbnN0X2ludCAtMSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBDQ19S RUdOVU0pKQorXQorICAiIgorICAiYmNueiAlMSIKKyAgWyhzZXRfYXR0ciAi dHlwZSIgImJyYW5jaCIpXSkKSW5kZXg6IGdjYy9jb25maWcvc2NvcmUvc2Nv cmUtbW9kZXMuZGVmCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9j b25maWcvc2NvcmUvc2NvcmUtbW9kZXMuZGVmCShyZXZpc2lvbiAxMjAyNTIp CisrKyBnY2MvY29uZmlnL3Njb3JlL3Njb3JlLW1vZGVzLmRlZgkod29ya2lu ZyBjb3B5KQpAQCAtMjEsNiArMjEsNSBAQAogLyogQ0NfTlptb2RlIHNob3Vs ZCBiZSB1c2VkIGlmIHRoZSBOIChzaWduKSBhbmQgWiAoemVybykgZmxhZyBp cyBzZXQgY29ycmVjdGx5LgogICAgQ0NfTm1vZGUgc2hvdWxkIGJlIHVzZWQg aWYgb25seSB0aGUgTiBmbGFnIGlzIHNldCBjb3JyZWN0bHkuICAqLwogCi1D Q19NT0RFIChDQ19OWik7CiBDQ19NT0RFIChDQ19OKTsKLQorQ0NfTU9ERSAo Q0NfTlopOwpJbmRleDogZ2NjL2NvbmZpZy9zY29yZS9zY29yZS1tZGF1eC5o Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9jb25maWcvc2NvcmUv c2NvcmUtbWRhdXguaAkocmV2aXNpb24gMTIwMjUyKQorKysgZ2NjL2NvbmZp Zy9zY29yZS9zY29yZS1tZGF1eC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4 ICs2OSw2IEBAIHZvaWQgbWRhX2dlbl9jbXAgKGVudW0gbWFjaGluZV9tb2Rl IG1vZGUKIAogaW50IG1kYV9zeW1ib2xpY19jb25zdGFudF9wIChydHggeCwg ZW51bSBzY29yZV9zeW1ib2xfdHlwZSAqc3ltYm9sX3R5cGUpOwogCi1ib29s IG1kYV9waW5kZXhfbWVtIChydHggYWRkcik7Ci0KIGludCBtZGFfYnAgKHZv aWQpOwogCiAvKiBNYWNoaW5lIEV4cGFuZC4gICovCkBAIC04Nyw4ICs4NSw2 IEBAIHZvaWQgbWR4X2NhbGxfdmFsdWUgKHJ0eCAqb3BzLCBib29sIHNpYmMK IC8qIE1hY2hpbmUgU3BsaXQuICAqLwogdm9pZCBtZHNfbW92ZGkgKHJ0eCAq b3BzKTsKIAotdm9pZCBtZHNfYWRkc2kgKHJ0eCAqb3BzKTsKLQogdm9pZCBt ZHNfemVyb19leHRyYWN0X2FuZGkgKHJ0eCAqb3BzKTsKIAogLyogTWFjaGlu ZSBQcmludC4gICovCkBAIC0xMDAsMTQgKzk2LDIxIEBAIGNvbnN0IGNoYXIg KiBtZHBfbGluc24gKHJ0eCAqb3BzLCBlbnVtIG0KIAogY29uc3QgY2hhciAq IG1kcF9zaW5zbiAocnR4ICpvcHMsIGVudW0gbWRhX21lbV91bml0IHVuaXQp OwogCi1jb25zdCBjaGFyICogbWRwX2FkZF9pbW1fdWNjIChydHggKm9wcyk7 Citjb25zdCBjaGFyICogbWRwX3NlbGVjdF9hZGRfaW1tIChydHggKm9wcywg Ym9vbCBzZXRfY2MpOwogCiBjb25zdCBjaGFyICogbWRwX3NlbGVjdCAocnR4 ICpvcHMsIGNvbnN0IGNoYXIgKmluc3RfcHJlLAotICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBjb211LCBjb25zdCBjaGFyICpsZXQpOworICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCBjb21tdSwgY29uc3QgY2hhciAqbGV0 dGVyLCBib29sIHNldF9jYyk7CiAKIGNvbnN0IGNoYXIgKiBtZHBfbGltbSAo cnR4ICpvcHMpOwogCiBjb25zdCBjaGFyICogbWRwX21vdmUgKHJ0eCAqb3Bz KTsKIAorLyogTWFjaGluZSB1bmFsaWduZWQgbWVtb3J5IGxvYWQvc3RvcmUu ICovCitib29sIG1keF91bmFsaWduZWRfbG9hZCAocnR4KiBvcHMpOworCiti b29sIG1keF91bmFsaWduZWRfc3RvcmUgKHJ0eCogb3BzKTsKKworYm9vbCBt ZHhfYmxvY2tfbW92ZSAocnR4KiBvcHMpOworCiAjZW5kaWYKIApJbmRleDog Z2NjL2NvbmZpZy9zY29yZS9tdWwtZGl2LlMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gZ2NjL2NvbmZpZy9zY29yZS9tdWwtZGl2LlMJKHJldmlzaW9u IDEyMDI1MikKKysrIGdjYy9jb25maWcvc2NvcmUvbXVsLWRpdi5TCSh3b3Jr aW5nIGNvcHkpCkBAIC0yNDIsNyArMjQyLDcgQEAgX2ZsdXNoX2NhY2hlOgog ICAgICAgICAjbm9wIQogICAgICAgICBhZGRpICAgIHI4LCAxNgogICAgICAg ICBiY256ICAgIDJiCi0gICAgICAgIC5jcHJlc3RvcmUgICAgICAxMiAgICAg ICAgICAgICAgIyBwaWMgdXNlZAorICAgICAgICAuY3ByZXN0b3JlIHIwLCAx MiAgICAgICAgICAgICAgICMgcGljIHVzZWQKICAgICAgICAgYWRkaSAgICBy MCwgOCAgICAgICAgICAgICAgICAgICAjIHBpYyB1c2VkCiAgICAgICAgIGJy ICAgICAgcjMKICNlbmRpZgpAQCAtMjc4LDcgKzI3OCw3IEBAIF9fbXVsc2kz X2xvb3AyOgogICAgICAgICBjbXBpLmMgIGExLCAwCiAgICAgICAgIGJuZSAg ICAgX19tdWxzaTNfbG9vcAogICAgICAgICBtdiAgICAgIHI0LCB0MQotICAg ICAgICAuY3ByZXN0b3JlIDEyICAgICAgICAgICAgICAgICAgICMgcGljIHVz ZWQKKyAgICAgICAgLmNwcmVzdG9yZSByMCwgMTIgICAgICAgICAgICAgICAj IHBpYyB1c2VkCiAgICAgICAgIGFkZGkgICAgcjAsIDggICAgICAgICAgICAg ICAgICAgIyBwaWMgdXNlZAogICAgICAgICBiciAgICAgIHJhCiAgICAgICAg IC5lbmQgICAgX19tdWxzaTMKQEAgLTMzNCw3ICszMzQsNyBAQCBfX3Vkc19s b29wMzoKIF9fdWRzX2V4aXQ6CiAgICAgICAgIG12ICAgICAgYTEsIGEwCiAg ICAgICAgIG12ICAgICAgcjQsIHQ0Ci0gICAgICAgIC5jcHJlc3RvcmUgMTIg ICAgICAgICAgICAgICAgICAgIyBwaWMgdXNlZAorICAgICAgICAuY3ByZXN0 b3JlIHIwLCAxMiAgICAgICAgICAgICAgICMgcGljIHVzZWQKICAgICAgICAg YWRkaSAgICByMCwgOCAgICAgICAgICAgICAgICAgICAjIHBpYyB1c2VkCiAg ICAgICAgIGJyICAgICAgcmEKICAgICAgICAgLmVuZCAgICBfX3VkaXZzaTMK QEAgLTM1MCw3ICszNTAsNyBAQCBfX3Vtb2RzaTM6CiAgICAgICAgIGxhICAg ICAgcjI5LCBfX3VkaXZzaTMKICAgICAgICAgYnJsICAgICByMjkKICAgICAg ICAgbXYgICAgICByNCwgYTEKLSAgICAgICAgLmNwcmVzdG9yZSAxMiAgICAg ICAgICAgICAgICAgICAjIHBpYyB1c2VkCisgICAgICAgIC5jcHJlc3RvcmUg cjAsIDEyICAgICAgICAgICAgICAgIyBwaWMgdXNlZAogICAgICAgICBhZGRp ICAgIHIwLCA4ICAgICAgICAgICAgICAgICAgICMgcGljIHVzZWQKICAgICAg ICAgYnIgICAgICB0MwogICAgICAgICAuZW5kICAgIF9fdW1vZHNpMwpAQCAt MzgzLDcgKzM4Myw3IEBAIF9fZGl2c2kzX2FkanVzdDoKICAgICAgICAgYmdl ICAgICBfX2RpdnNpM19leGl0CiAgICAgICAgIG5lZyAgICAgcjQsIHI0CiBf X2RpdnNpM19leGl0OgotICAgICAgICAuY3ByZXN0b3JlIDEyICAgICAgICAg ICAgICAgICAgICMgcGljIHVzZWQKKyAgICAgICAgLmNwcmVzdG9yZSByMCwg MTIgICAgICAgICAgICAgICAjIHBpYyB1c2VkCiAgICAgICAgIGFkZGkgICAg cjAsIDggICAgICAgICAgICAgICAgICAgIyBwaWMgdXNlZAogICAgICAgICBi ciAgICAgIHQzCiAgICAgICAgIC5lbmQgICAgX19kaXZzaTMK --=_mixed 000831CB48257259_=--