From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Replace GNOME Xorg with GNOME Wayland in CI Date: Sun, 31 May 2026 02:08:37 GMT Message-ID: <178019331746.1.10463635213017488872.rpms-ibus-cb19883e9b52@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: cb19883e9b523e591ad874827b2a1cf3eb9d74ca QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiBjYjE5ODgzZTliNTIzZTU5MWFkODc0ODI3YjJhMWNmM2ViOWQ3 NGNhCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDI0LTA3LTI3VDIwOjM1OjI0KzA5OjAwClN0YXRzICA6ICszOTEzLy0xIGluIDIgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy9jYjE5 ODgzZTliNTIzZTU5MWFkODc0ODI3YjJhMWNmM2ViOWQ3NGNhP2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpSZXBsYWNlIEdOT01FIFhvcmcgd2l0aCBHTk9NRSBXYXlsYW5kIGluIENJCgotLS0KZGlmZiAt LWdpdCBhL2lidXMtSEVBRC5wYXRjaCBiL2lidXMtSEVBRC5wYXRjaAppbmRleCBkMmY1MDgyLi5i YWZlZmNkIDEwMDY0NAotLS0gYS9pYnVzLUhFQUQucGF0Y2gKKysrIGIvaWJ1cy1IRUFELnBhdGNo CkBAIC02NiwzICs2NiwzOTExIEBAIGluZGV4IDc1MzFhNGIyLi5hOGU0MWEzMyAxMDA2NDQKIC0t IAogMi40NS4wCiAKK0Zyb20gYTUyODYxMzg1YmI1ZDE1NTk4ZjZjM2MzZDg2YzdhOWVlMTlmMTQw YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdh cmExQGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMjcgSnVsIDIwMjQgMTk6MDA6NTMgKzA5MDAKK1N1 YmplY3Q6IFtQQVRDSCAxLzZdIHNyYy90ZXN0czogRW5hYmxlIENJIGluIEdOT01FIFdheWxhbmQK KworLSBJbXBsZW1lbnQgaGVhZGxlc3MgZGVza3RvcCB0byB0ZXN0IFdheWxhbmQgc2Vzc2lvbnMK Ky0gSW1wbGVtZW50IGlidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFydCB0byBiZSBleGVjdXRl ZCBpbiBYREcKKyAgYXV0b3N0YXJ0IGluIEdOT01FIFdheWxhbmQKKy0gTW92ZSBzaGFyZWQgY29k ZXMgdG8gaWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxlIGJldHdlZW4KKyAgaWJ1cy1kZXNrdG9w LXRlc3RpbmctcnVubmVyIGFuZCBpYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQKKy0gQWRk IC0tbm8tc3lzdGVtZCBvcHRpb24gdG8gZW5hYmxlIHRoZSBwcmV2aW91cyB0ZXN0aW5nIGZyYW1l IHdpdGggcnVubmluZworICBnbm9tZS1zZXNzaW9uIGRpcmVjdGx5CistIFJlbmFtZSAtLWRlc2t0 b3Agb3B0aW9uIHRvIC0tc2Vzc2lvbgorLSBNb3ZlIHNhdmVfc2NyZWVuKCkgZnJvbSBydW5uZXIg dG8gbW9kdWxlCistIENvcHkgZ25vbWUtc2hlbGwgc2VydmljZSBmaWxlIHRvIHVzZXIgaG9tZSBm b3IgaGVhZGxlc3MgJiB2aXJ0dWFsLW1vbml0b3IKKy0gQWRkIC0tZGVsZXRlLXRlc3RzIG9wdGlv biB0byBjbGVhbiB1cCB0ZXN0cworLSBBZGQgQXV0b3N0YXJ0Q29uZGl0aW9uPWlmLWV4aXN0cyBp biBYREcgYXV0b3N0YXJ0IGRlc2t0b3AgZmlsZQorLSBBZGQgNjAgc2VjcyBpbiBpYnVzLWNvbXBv c2UtbG9jYWxlcyBmb3Igc3lzdGVtZCBkZXNrdG9wIHNlc3Npb25zCistIFF1b3RlIGZpbGUgbmFt ZXMgYXMgbXVjaCBhcyBwb3NzaWJsZS4KKy0gQ2hlY2sgZmlsZSBleGlzdGFudCBhbmQgbm90IHRv IHVzZSAicm0gLWYiIGFzIG11Y2ggYXMgcG9zc2libGUKKy0gRG8gbm90IHNldCBHVEtfSU1fTU9E VUxFPWlidXMgZm9yIFdheWxhbmQKKworQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMv cHVsbC8yNjU3CistLS0KKyBzcmMvdGVzdHMvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAg ICAgIHwgIDIzICstCisgc3JjL3Rlc3RzL2lidXMtY29tcG9zZS1sb2NhbGVzLmluICAgICAgICAg ICB8ICAxNiArLQorIHNyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQgICAg fCAgNTcgLS0KKyBzcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0LmluIHwg IDgzICsrCisgc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLW1vZHVsZSAgICAgICB8IDg3 NiArKysrKysrKysrKysrKysrKysrKworIHNyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1y dW5uZXIuaW4gICAgfCA0OTUgKy0tLS0tLS0tLS0KKyBzcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRl c3RpbmcuZGVza3RvcC5pbiAgIHwgICAyICstCisgNyBmaWxlcyBjaGFuZ2VkLCAxMDM0IGluc2Vy dGlvbnMoKyksIDUxOCBkZWxldGlvbnMoLSkKKyBkZWxldGUgbW9kZSAxMDA3NTUgc3JjL3Rlc3Rz L2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFydAorIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMv dGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0LmluCisgY3JlYXRlIG1vZGUgMTAw NzU1IHNyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1tb2R1bGUKKworZGlmZiAtLWdpdCBh L3NyYy90ZXN0cy9NYWtlZmlsZS5hbSBiL3NyYy90ZXN0cy9NYWtlZmlsZS5hbQoraW5kZXggYjMw YTM5ZmIuLjZjNGM4NmNmIDEwMDY0NAorLS0tIGEvc3JjL3Rlc3RzL01ha2VmaWxlLmFtCisrKysg Yi9zcmMvdGVzdHMvTWFrZWZpbGUuYW0KK0BAIC0xMDYsNiArMTA2LDcgQEAgdGVzdF9zb3VyY2Vz ZGlyID0gJChkYXRhZGlyKS9pbnN0YWxsZWQtdGVzdHMvaWJ1cworIAorIENMRUFORklMRVMgKz0g XAorICAgICAkKHRlc3RfbWV0YXMpIFwKKysgICAgaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0 YXJ0IFwKKyAgICAgaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyIFwKKyAgICAgb3JnLmZyZWVk ZXNrdG9wLklCdXMuRGVza3RvcC5UZXN0aW5nLmRlc2t0b3AgXAorICAgICAkKE5VTEwpCitAQCAt MTE5LDcgKzEyMCwxMCBAQCBDTEVBTkZJTEVTICs9IFwKKyAgICAgJChOVUxMKQorIGVuZGlmCisg dGVzdF9leGVjc2RpciA9ICQobGliZXhlY2RpcikvaW5zdGFsbGVkLXRlc3RzL2lidXMKKy1saWJl eGVjX1NDUklQVFMgPSBpYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQKKytsaWJleGVjX1ND UklQVFMgPSBcCisrICBpYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQgXAorKyAgaWJ1cy1k ZXNrdG9wLXRlc3RpbmctbW9kdWxlIFwKKysgICQoTlVMTCkKKyAKKyB0ZXN0X2ZyYW1lX0RBVEEg PSBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5EZXNrdG9wLlRlc3RpbmcuZGVza3RvcAorIHRlc3RfZnJh bWVkaXIgPSAkKHBrZ2RhdGFkaXIpL3Rlc3RzCitAQCAtMTQyLDkgKzE0NiwyMSBAQCBpYnVzLWNv bXBvc2UtbG9jYWxlczogaWJ1cy1jb21wb3NlLWxvY2FsZXMuaW4KKyAJbXYgJEAudG1wICRAOyBc CisgCSQoTlVMTCkKKyAKKytpYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQ6IGlidXMtZGVz a3RvcC10ZXN0aW5nLWF1dG9zdGFydC5pbgorKwlJTlNUQUxMRURESVI9JChkYXRhZGlyKS9pbnN0 YWxsZWQtdGVzdHM7IFwKKysJc2VkIC1lICJzfEBEQVRBRElSW0BdfCQoZGF0YWRpcil8ZyIgXAor KwkgICAgLWUgInN8QElOU1RBTExFRERJUltAXXwkJElOU1RBTExFRERJUnxnIiBcCisrCSAgICAt ZSAic3xATElCRVhFQ0RJUltAXXwkKGxpYmV4ZWNkaXIpfGciIFwKKysJICAgICQ8ID4gJEAudG1w OyBcCisrCW12ICRALnRtcCAkQDsgXAorKwkkKE5VTEwpCisrCisgaWJ1cy1kZXNrdG9wLXRlc3Rp bmctcnVubmVyOiBpYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIuaW4KKyAJSU5TVEFMTEVERElS PSQoZGF0YWRpcikvaW5zdGFsbGVkLXRlc3RzOyBcCistCXNlZCAtZSAic3xASU5TVEFMTEVERElS W0BdfCQkSU5TVEFMTEVERElSfGciICQ8ID4gJEAudG1wOyBcCisrCXNlZCAtZSAic3xAREFUQURJ UltAXXwkKGRhdGFkaXIpfGciIFwKKysJICAgIC1lICJzfEBJTlNUQUxMRURESVJbQF18JCRJTlNU QUxMRURESVJ8ZyIgXAorKwkgICAgLWUgInN8QExJQkVYRUNESVJbQF18JChsaWJleGVjZGlyKXxn IiBcCisrCSAgICAkPCA+ICRALnRtcDsgXAorIAltdiAkQC50bXAgJEA7IFwKKyAJJChOVUxMKQor IAorQEAgLTE1Nyw3ICsxNzMsOCBAQCBFWFRSQV9ESVNUID0gXAorICAgICBpYnVzLWNvbXBvc2Uu ZW52IFwKKyAgICAgaWJ1cy1jb21wb3NlLWxvY2FsZXMuaW4gXAorICAgICBpYnVzLWRlc2t0b3At dGVzdGluZy5kZXNrdG9wLmluIFwKKy0gICAgaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0 IFwKKysgICAgaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0LmluIFwKKysgICAgaWJ1cy1k ZXNrdG9wLXRlc3RpbmctbW9kdWxlIFwKKyAgICAgaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVy LmluIFwKKyAgICAgJChOVUxMKQorIAorZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWNvbXBv c2UtbG9jYWxlcy5pbiBiL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UtbG9jYWxlcy5pbgoraW5kZXgg YjM2MTY1ZmUuLjdhMTMzY2UwIDEwMDc1NQorLS0tIGEvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS1s b2NhbGVzLmluCisrKysgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLWxvY2FsZXMuaW4KK0BAIC02 LDcgKzYsOCBAQCBCVUlMRERJUj1gZGlybmFtZSAkMGAKKyAKKyBleHBvcnQgSUJVU19DT01QT1NF X0NBQ0hFX0RJUj0kUFdECisgCistcmV0dmFsPTAKKytSRVRWQUw9MAorK0lOSVRFRD0wCisgIyBE ZWxldGVkIGZvciB2YXIgaW4gYGNhdCAqLmVudmAgYmVjYXVzZSBJRlM9JCdcbicgaXMgbm90IHN1 cHBvcnRlZCBpbiBQT1NJWCBzaAorIHdoaWxlIHJlYWQgdmFyCisgZG8KK0BAIC0xNCwxOSArMTUs MjYgQEAgZG8KKyAgICAgaWYgWyAieCRJU19DT01NRU5UIiAhPSB4IF0gOyB0aGVuCisgICAgICAg ICBjb250aW51ZQorICAgICBmaQorKyAgICB3aGlsZSBbIHgiJElCVVNfREFFTU9OX1dJVEhfU1lT VEVNRCIgIT0geCBdICYmIFsgJElOSVRFRCAtbHQgNiBdIDsgZG8KKysgICAgICAgIGVjaG8gIldh aXRpbmcgZm9yICR7SU5JVEVEfTAgc2VjcyB0aWxsIDYwIHNlY3MiCisrICAgICAgICBzbGVlcCAx MAorKyAgICAgICAgSU5JVEVEPWBleHByICRJTklURUQgKyAxYAorKyAgICBkb25lCisgICAgICMg VXNlICQqIGluc3RlYWQgb2YgJEAgbm90IHRvIG1peCBzdHJpbmdzIGFuZCBpbnRlZ2VycworICAg ICBlY2hvICIjIFN0YXJ0aW5nICR2YXIgJEJVSUxERElSL2lidXMtY29tcG9zZSAkU1JDRElSICQq IgorICAgICAjIE5lZWQgdG8gZW5jbG9zZSAkQCB3aXRoIGRvdWJsZSBxdW90ZXMgbm90IHRvIHNw bGl0IHRoZSBhcnJheS4KKyAgICAgZW52ICR2YXIgJEJVSUxERElSL2lidXMtY29tcG9zZSAkU1JD RElSICIkQCIKKy0gICAgcmV0dmFsPWBleHByICRyZXR2YWwgKyAkP2AKKy0gICAgZWNobyAiIyBG aW5pc2hlZCAkdmFyICRCVUlMRERJUi9pYnVzLWNvbXBvc2UgJFNSQ0RJUiAkKiB3aXRoICRyZXR2 YWwiCisrICAgIFJFVFZBTD1gZXhwciAkUkVUVkFMICsgJD9gCisrICAgIGVjaG8gIiMgRmluaXNo ZWQgJHZhciAkQlVJTERESVIvaWJ1cy1jb21wb3NlICRTUkNESVIgJCogd2l0aCAkUkVUVkFMIgor IAorICAgICBDQUNIRV9GSUxFUz1gbHMgKi5jYWNoZWAKKyAgICAgaWYgWyB4IiRDQUNIRV9GSUxF UyIgIT0geCBdIDsgdGhlbgorICAgICAgICAgZWNobyAiQ2xlYW4gJENBQ0hFX0ZJTEVTIgorICAg ICAgICAgcm0gJENBQ0hFX0ZJTEVTCisgICAgIGZpCisrICAgICMgTmVlZCB0byB3YWl0IGZvciAx IHNlYyBub3QgdG8gYmUgZnJlZXplZCB3aXRoIGdub21lLXNoZWxsIGluIFdheWxhbmQKKysgICAg c2xlZXAgMQorIGRvbmUgPDwgRU9GX0VOVlMKKyBgY2F0ICRTUkNESVIvaWJ1cy1jb21wb3NlLmVu dmAKKyBFT0ZfRU5WUworLWV4aXQgJHJldHZhbAorK2V4aXQgJFJFVFZBTAorZGlmZiAtLWdpdCBh L3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQgYi9zcmMvdGVzdHMvaWJ1 cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0CitkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKK2lu ZGV4IDFlMWViMTgwLi4wMDAwMDAwMAorLS0tIGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0 aW5nLWF1dG9zdGFydAorKysrIC9kZXYvbnVsbAorQEAgLTEsNTcgKzAsMCBAQAorLSMhL2Jpbi9z aAorLSMgLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBu aWw7IC0qLQorLSMgdmltOnNldCBub2V0IHRzPTQ6CistIworLSMgaWJ1cyAtIFRoZSBJbnB1dCBC dXMKKy0jCistIyBDb3B5cmlnaHQgKGMpIDIwMjEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+CistIyBDb3B5cmlnaHQgKGMpIDIwMjEgUmVkIEhhdCwgSW5jLgorLSMK Ky0jIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CistIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLSMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKy0jIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistIworLSMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCistIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLSMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorLSMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy0j CistIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhbG9uZworLSMgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKy0jIDUxIEZyYW5rbGluIFN0 cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCistCistVEVTVF9M T0c9CistQ09NTUFORFM9JworLWlkCistZWNobyAkRElTUExBWQorLXB3ZAorLXBzdHJlZSAtYXNw ICQkCistZ3NldHRpbmdzIGxpc3QtcmVjdXJzaXZlbHkgb3JnLmdub21lLnNoZWxsCistcnBtIC1x IGdub21lLXNoZWxsLWV4dGVuc2lvbi1uby1vdmVydmlldyBnbm9tZS1zaGVsbCBnbm9tZS1zZXNz aW9uCistcHMgLWVmIHwgZ3JlcCBpYnVzIHwgZ3JlcCAtdiBncmVwCistaWJ1cyBhZGRyZXNzCist JworLQorLWlmIFsgJCMgLWd0IDAgXSA7IHRoZW4KKy0gICAgVEVTVF9MT0c9JDEKKy1maQorLQor LXJ1bl90ZXN0KCkKKy17Cistd2hpbGUgcmVhZCBjbWQgOyBkbworLSAgICBpZiBbIHgiJGNtZCIg PSB4IF0gOyB0aGVuCistICAgICAgICBjb250aW51ZQorLSAgICBmaQorLSAgICBlY2hvICIjICRj bWQiCistICAgIGV2YWwgIiRjbWQiCistZG9uZSA8PCBFT0ZfQ09NTUFORFMKKy1gZWNobyAiJENP TU1BTkRTImAKKy1FT0ZfQ09NTUFORFMKKy19CistCistaWYgWyB4IiRURVNUX0xPRyIgPSB4IF0g OyB0aGVuCistICAgIHJ1bl90ZXN0CistZWxzZQorLSAgICBydW5fdGVzdCAyPj4kVEVTVF9MT0cg MT4+JFRFU1RfTE9HCistZmkKK2RpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRl c3RpbmctYXV0b3N0YXJ0LmluIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9z dGFydC5pbgorbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAwLi5kNTAzNTRkZgor LS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9z dGFydC5pbgorQEAgLTAsMCArMSw4MyBAQAorKyMhL2Jpbi9zaAorKyMgLSotIG1vZGU6IEM7IGMt YmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLQorKyMgdmltOnNldCBu b2V0IHRzPTQ6CisrIworKyMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKysjCisrIyBDb3B5cmlnaHQg KGMpIDIwMjEtMjAyNCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4K KysjIENvcHlyaWdodCAoYykgMjAyMSBSZWQgSGF0LCBJbmMuCisrIworKyMgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFs b25nCisrIyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v ciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KKysKKysKKytQUk9HTkFNRT1gYmFzZW5hbWUg JDBgCisrVEVTVF9DQVNFX0RJUj0iQElOU1RBTExFRERJUkAiCisrTU9EVUxFX1NIPSdpYnVzLWRl c2t0b3AtdGVzdGluZy1tb2R1bGUnCisrTU9EVUxFX1NIX1BBVEg9IkBMSUJFWEVDRElSQC8kTU9E VUxFX1NIIgorK1RFU1RfTE9HPSJ0ZXN0LWF1dG9zdGFydC5sb2ciCisrVEVTVElOR19SVU5ORVI9 IiIKKysKKysKKytpZiB0ZXN0IC1mICRNT0RVTEVfU0hfUEFUSCA7IHRoZW4KKysgIC4gJE1PRFVM RV9TSF9QQVRICisrZWxpZiB0ZXN0IC1mICQoZGlybmFtZSAkMCkvJE1PRFVMRV9TSCA7IHRoZW4K KysgIC4gJChkaXJuYW1lICQwKS8kTU9EVUxFX1NICisrZWxzZQorKyAgZWNobyAiTm90IGZvdW5k ICRNT0RVTEVfU0giCisrICBleGl0IDEKKytmaQorKworKworK3VzYWdlKCkKKyt7CisrICAgICRF Q0hPIC1lIFwKKysiVGhpcyB0ZXN0IHN1aXRlIGlzIGNhbGxlZCBmcm9tIC9ldGMveGRnL2F1dG9z dGFydCBmb3Igc3lzdGVtZCBzZXNzaW9uc1xuIiAgICAgXAorKyIkUFJPR05BTUUgW09QVElPTlPi gKZdXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKysiXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyJPUFRJT05TOlxuIiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrIi1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaGVscFxuIiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysiLXYsIC0tdmVyc2lvbiAgICAgICAgICAgICAg ICAgICAgU2hvdyB2ZXJzaW9uXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyIt YiwgLS1idWlsZGRpcj1CVUlMRERJUiAgICAgICAgICBTZXQgdGhlIEJVSUxERElSXG4iICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrIi1zLCAtLXNyY2Rpcj1TT1VSQ0VESVIgICAgICAgICAg IFNldCB0aGUgU09VUkNFRElSXG4iICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysiLVYsIC0t dmVyYm9zZSAgICAgICAgICAgICAgICAgICAgVmVyYm9zZSBsb2cgZm9yIGlidXMtZGFlbW9uXG4i ICAgICAgICAgICAgICAgXAorKyItdCwgLS10ZXN0cz1cIlRFU1RTLi4uXCIgICAgICAgICAgIFJ1 biBURVNUUyBwcm9ncmFtcyB3aGljaCBpcyBzZXBhcmF0ZWQgYnkgc3BhY2VcbiIgXAorKyItciwg LS1ydW5uZXI9UlVOTkVSICAgICAgICAgICAgICBSdW4gVEVTVFMgcHJvZ3JhbXMgd2l0aCBhIHRl c3QgUlVOTkVSLlxuIiAgICBcCisrIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJV Tk5ERVIgPSAnZ25vbWUnLCAnZGVmYXVsdCcgb3IgJycuXG4iICAgICAgIFwKKysiICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQnIGlzIGFuIGVtYmVkZGVkIHJ1bm5lci5c biIgICAgICAgICAgXAorKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJyBpcyBu byB0ZXN0cy5cbiIgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrIi1ULCAtLXRpbWVvdXQ9 VElNRU9VVCAgICAgICAgICAgIFNldCB0aW1lb3V0IChkZWZhdWx0IFRJTUVPVVQgaXMgMzAwIHNl YykuXG4iIFwKKysiLW8sIC0tb3V0cHV0PU9VVFBVVF9GSUxFICAgICAgICAgT3V0cHV0IHRoZSBs b2cgdG8gT1VUUFVUX0ZJTEVcbiIgICAgICAgICAgICAgXAorKyIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkZWZhdWx0IGlzICRURVNUX0xPR1xuIiAgICAgICAgICAgICAgICAgICAg ICBcCisrIi1PLCAtLXJlc3VsdD1SRVNVTFRfRklMRSAgICAgICAgIE91dHB1dCB0aGUgcmVzdWx0 IHRvIFJFU1VMVF9GSUxFXG4iICAgICAgICAgIFwKKysiICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVmYXVsdCBpcyBzdGRvdXRcbiIgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyItUywgLS1zY3JlZW5kdW1wPURVTVBfRklMRSAgICAgICBPdXRwdXQgdGhlIHNjcmVlbiB0byBE VU1QX0ZJTEUgKCdTVERPVVQnIGNhbiBiZSBzdGRvdXQpXG4iIFwKKysiLWUsIC0tZW52Y2hlY2sg ICAgICAgICAgICAgICAgICAgUmV0cmlldmUgZW52aXJvbm1lbnQgdmFyaWFibGVzXG4iICAgICAg ICAgICAgXAorKyIiCisrfQorKworKworK21haW4oKQorK3sKKysgICAgcGFyc2VfYXJncyAiJEAi CisrICAgIGluaXRfc2Vzc2lvbgorKyAgICBjaGVja19lbnYKKysgICAgc2F2ZV9zY3JlZW4KKysg ICAgcnVuX3Rlc3Rfc3VpdGUKKysgICAgZmluaXQKKyt9CisrCisrCisrIyBOZWVkIHRvIGVuY2xv c2UgJEAgd2l0aCBkb3VibGUgcXVvdGVzIG5vdCB0byBzcGxpdCB0aGUgYXJyYXkuCisrbWFpbiAi JEAiCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLW1vZHVsZSBi L3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1tb2R1bGUKK25ldyBmaWxlIG1vZGUgMTAw NzU1CitpbmRleCAwMDAwMDAwMC4uMmQ2ODY4MTMKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy90 ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1tb2R1bGUKK0BAIC0wLDAgKzEsODc2IEBACisrIyEv YmluL3NoCisrIyAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1v ZGU6IG5pbDsgLSotCisrIyB2aW06c2V0IG5vZXQgdHM9NDoKKysjCisrIyBpYnVzIC0gVGhlIElu cHV0IEJ1cworKyMKKysjIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFRha2FvIEZ1aml3YXJhIDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyMgQ29weXJpZ2h0IChjKSAyMDE4IFJlZCBIYXQs IEluYy4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisr IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKKysjIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisrIyA1MSBG cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgor KworKworKyMgUE9TSVggc2ggaGFzIG5vICdlY2hvIC1lJworKzogJHtFQ0hPOj0nL3Vzci9iaW4v ZWNobyd9CisrIyBQT1NJWCBzaCBoYXMgJFVJRAorKyMgREFTSCBzYXZlcyB0aGUgZ3JhdmVzIGlu ICdgYCcgYXMgY2hhcmFjdGVycyBub3QgdG8gYmUgZXh0cmFjdGVkCisrOiAke1VJRDo9YGlkIC11 YH0KKys6ICR7VEVTVF9DQVNFX0RJUj0nL3Vzci9zaGFyZS9pbnN0YWxsZWQtdGVzdHMnfQorKzog JHtBVVRPU1RBUlRfREVTS1RPUF9ESVI9Jy91c3Ivc2hhcmUvaWJ1cy90ZXN0cyd9CisrCisrCisr VkVSU0lPTj0wLjQKKytCVUlMRERJUj0iLiIKKytTUkNESVI9Ii4iCisrVEVTVF9MT0dfU1RET1VU PTAKKytSRVNVTFRfTE9HPSIiCisrU0NSRUVOX0xPRz0iIgorK0hBVkVfR1JBUEhJQ1M9MQorK1ZF UkJPU0U9MAorK1NFU1NJT05fQ09NTUFORD0iZGJ1cy1sYXVuY2ggLS1leGl0LXdpdGgtc2Vzc2lv biBnbm9tZS1zZXNzaW9uIgorK1NFU1NJT05fTEFORz0KKytTRVNTSU9OX0lTX0dOT01FPTEKKytH Tk9NRV9TSEVMTF9XQVlMQU5EX0NPTU1BTkQ9Imdub21lLXNoZWxsIC0td2F5bGFuZCAtLWhlYWRs ZXNzIC0tdmlydHVhbC1tb25pdG9yIDEwMjR4NzY4IgorK1NZU1RFTURfU1lTVEVNX0RJUj0iL3Vz ci9saWIvc3lzdGVtZC91c2VyIgorK1BJRF9YT1JHPTAKKytQSURfR05PTUVfU0VTU0lPTj0wCisr RU5BQkxFRF9TWVNURU1EPTEKKytURVNUX1VTRVI9aXRlc3R1c2VyCisrVEVTVF9VU0VSX0hPTUU9 L2V4cG9ydC9ob21lLyRURVNUX1VTRVIKKytHRE1fQ09ORj0vcnVuL2dkbS9jdXN0b20uY29uZgor K0FVVE9TVEFSVF9ERVNLVE9QX0ZJTEU9Im9yZy5mcmVlZGVza3RvcC5JQnVzLkRlc2t0b3AuVGVz dGluZy5kZXNrdG9wIgorK1RFU1RTPSIiCisrVElNRU9VVD0zMDAKKytHUkVFTj0nXDAzM1swOzMy bScKKytSRUQ9J1wwMzNbMDszMW0nCisrTkM9J1wwMzNbMG0nCisrRU5WX0NIRUNLPTAKKytFTlZf Q09NTUFORFM9JworK2lkCisrcHdkCisrcHN0cmVlIC1hc3AgJCQKKytnc2V0dGluZ3MgbGlzdC1y ZWN1cnNpdmVseSBvcmcuZ25vbWUuc2hlbGwKKytycG0gLXEgZ25vbWUtc2hlbGwtZXh0ZW5zaW9u LW5vLW92ZXJ2aWV3IGdub21lLXNoZWxsIGdub21lLXNlc3Npb24KKytwcyAtZWYgfCBncmVwIGli dXMgfCBncmVwIC12IGdyZXAKKytpYnVzIGFkZHJlc3MKKytlbnYKKysjZGJ1cy1zZW5kIC0tc2Vz c2lvbiAtLXByaW50LXJlcGx5IC0tZGVzdD1vcmcuZ25vbWUuU2hlbGwuSW50cm9zcGVjdCAvb3Jn L2dub21lL1NoZWxsL0ludHJvc3BlY3Qgb3JnLmdub21lLlNoZWxsLkludHJvc3BlY3QuR2V0V2lu ZG93cworKycKKysKKysKKytwcmludF9sb2coKQorK3sKKysgICAgaWYgWyB4IiRSRVNVTFRfTE9H IiAhPSB4IF0gOyB0aGVuCisrICAgICAgICAjIGF2b2lkICdlY2hvIC1lJyBiZWZvcmUgY2FsbCAn c2VkJy4KKysgICAgICAgIGlmIFsgeCIkMSIgPSB4Jy1lJyBdIDsgdGhlbgorKyAgICAgICAgICAg IHNoaWZ0CisrICAgICAgICBmaQorKyAgICAgICAgTk9fRVNDQVBFPWBlY2hvICIkQCIgfCBzZWQg LWUgJ3MvXFxcMDMzXFxbMDszLm0vL2cnIC1lICdzL1xcXDAzM1xcWzBtLy9nJ2AKKysgICAgICAg ICRFQ0hPICROT19FU0NBUEUgPj4gJFJFU1VMVF9MT0cKKysgICAgZWxzZQorKyAgICAgICAgJEVD SE8gIiRAIgorKyAgICBmaQorK30KKysKKysKKytwYXJzZV9hcmdzKCkKKyt7CisrICAgICMgVGhp cyBpcyBHTlUgZ2V0b3B0LiAic3VkbyBwb3J0IGdldG9wdCIgaW4gQlNEPworKyAgICBBUkdTPWBn ZXRvcHQgLW8gaHZiOnM6Y1ZkOnQ6cjppVDpvOk86UzplbDpEIC0tbG9uZyBcCisraGVscCx2ZXJz aW9uLGJ1aWxkZGlyOixzcmNkaXI6LG5vLWdyYXBoaWNzLHZlcmJvc2UsZGVza3RvcDosc2Vzc2lv bjosdGVzdHM6LFwKKytydW5uZXI6LG5vLXN5c3RlbWQsdGltZW91dDosb3V0cHV0OixyZXN1bHQ6 LHNjcmVlbmR1bXA6LGVudmNoZWNrLGxhbmc6LFwKKytkZWxldGUtdGVzdHNcCisrICAgICAgICAt LSAiJEAiYDsKKysgICAgZXZhbCBzZXQgLS0gIiRBUkdTIgorKyAgICB3aGlsZSBbIDEgXSA7IGRv CisrICAgICAgICBjYXNlICIkMSIgaW4KKysgICAgICAgIC1oIHwgLS1oZWxwICkgICAgICAgIHVz YWdlOyBleGl0IDA7OworKyAgICAgICAgLXYgfCAtLXZlcnNpb24gKSAgICAgJEVDSE8gLWUgIiRW RVJTSU9OIjsgZXhpdCAwOzsKKysgICAgICAgIC1iIHwgLS1idWlsZGRpciApICAgIEJVSUxERElS PSIkMiI7IHNoaWZ0IDI7OworKyAgICAgICAgLXMgfCAtLXNyY2RpciApICAgICAgU1JDRElSPSIk MiI7IHNoaWZ0IDI7OworKyAgICAgICAgLWMgfCAtLW5vLWdyYXBoaWNzICkgSEFWRV9HUkFQSElD Uz0wOyBzaGlmdDs7CisrICAgICAgICAtViB8IC0tdmVyYm9zZSApICAgICBWRVJCT1NFPTE7IHNo aWZ0OzsKKysgICAgICAgIC0tZGVza3RvcCApICAgICAgICAgIFNFU1NJT05fQ09NTUFORD0iJDIi CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludF9sb2cgLWUgIi0tZGVza3RvcCBp cyBkZXByZWNhdGVkLiBVc2UgLS1zZXNzaW9uIGluc3RlYWQiCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaGlmdCAyOzsKKysgICAgICAgIC1kIHwgLS1zZXNzaW9uICkgICAgIFNFU1NJ T05fQ09NTUFORD0iJDIiOyBzaGlmdCAyOzsKKysgICAgICAgIC10IHwgLS10ZXN0cyApICAgICAg IFRFU1RTPSIkMiI7IHNoaWZ0IDI7OworKyAgICAgICAgLXIgfCAtLXJ1bm5lciApICAgICAgVEVT VElOR19SVU5ORVI9IiQyIjsgc2hpZnQgMjs7CisrICAgICAgICAtaSB8IC0tbm8tc3lzdGVtZCAp ICBFTkFCTEVEX1NZU1RFTUQ9MDsgc2hpZnQ7OworKyAgICAgICAgLVQgfCAtLXRpbWVvdXQgKSAg ICAgVElNRU9VVD0iJDIiOyBzaGlmdCAyOzsKKysgICAgICAgIC1vIHwgLS1vdXRwdXQgKSAgICAg IFRFU1RfTE9HPSIkMiI7IHNoaWZ0IDI7OworKyAgICAgICAgLU8gfCAtLXJlc3VsdCApICAgICAg UkVTVUxUX0xPRz0iJDIiOyBzaGlmdCAyOzsKKysgICAgICAgIC1TIHwgLS1zY3JlZW5kdW1wICkg IFNDUkVFTl9MT0c9IiQyIjsgc2hpZnQgMjs7CisrICAgICAgICAtZSB8IC0tZW52Y2hlY2sgKSAg ICBFTlZfQ0hFQ0s9MTsgc2hpZnQ7OworKyAgICAgICAgLWwgfCAtLWxhbmcgKSAgICAgICAgU0VT U0lPTl9MQU5HPSIkMiI7IHNoaWZ0IDI7OworKyAgICAgICAgLUQgfCAtLWRlbGV0ZS10ZXN0cyAp IGRlbGV0ZV90ZXN0X3VzZXI7IGV4aXQgMDs7CisrICAgICAgICAtLSApICAgICAgICAgICAgICAg ICBzaGlmdDsgYnJlYWs7OworKyAgICAgICAgKiApICAgICAgICAgICAgICAgICAgdXNhZ2U7IGV4 aXQgMTs7CisrICAgICAgICBlc2FjCisrICAgIGRvbmUKKysgICAgREw9JyQnCisrICAgIGlmIGVj aG8gIiRTRVNTSU9OX0NPTU1BTkQiIHwgZ3JlcCAtcSAtRSAiLiotd2l0aC1kYnVzJERMIiA7IHRo ZW4KKysgICAgICAgIFNFU1NJT05fQ09NTUFORD1gZWNobyAiJFNFU1NJT05fQ09NTUFORCIgfCBz ZWQgLWUgJ3MvLXdpdGgtZGJ1cyQvLydgCisrICAgICAgICBTRVNTSU9OX0NPTU1BTkQ9ImRidXMt bGF1bmNoIC0tZXhpdC13aXRoLXNlc3Npb24gJFNFU1NJT05fQ09NTUFORCIKKysgICAgZmkKKyt9 CisrCisrCisrY2hlY2tfdHR5KCkKKyt7CisrICAgIFRUWT1gdHR5YAorKyAgICBpZiBlY2hvICRQ Uk9HTkFNRSB8IGdyZXAgLXEgcnVubmVyIDsgdGhlbgorKyAgICAgICAgaWYgWyAkRU5BQkxFRF9T WVNURU1EIC1lcSAxIF0gJiYgWyAgJFNFU1NJT05fSVNfR05PTUUgLWVxIDEgXSA7IHRoZW4KKysg ICAgICAgICAgICBpZiBlY2hvICIkVFRZIiB8IGdyZXAgLUUgJ3R0eXxjb25zb2xlJyA7IHRoZW4K KysgICAgICAgICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogJHtSRUR9RVJS T1Ike05DfTogQ2hhbmdpbmcgcnVubGV2ZWwgZG9lcyBub3Qgc3VwcG9ydCBjb25zb2xlLiBQbGVh c2UgbG9nIGludG8gdGhlIGhvc3Qgd2l0aCBzc2guIgorKyAgICAgICAgICAgICAgIGV4aXQgMQor KyAgICAgICAgICAgIGZpCisrICAgICAgICBmaQorKyAgICAgICAgaWYgWyAkRU5BQkxFRF9TWVNU RU1EIC1lcSAwIF0gOyB0aGVuCisrICAgICAgICAgICAgaWYgZWNobyAiJFRUWSIgfCBncmVwIC1F ICdwdHMnIDsgdGhlbgorKyAgICAgICAgICAgICAgIHByaW50X2xvZyAtZSAiUnVubmluZyBzZXNz aW9uIHdpdGggc3NoLiBJdCBtaWdodCBiZSBnb29kIHRvIHVzZSBjb25zb2xlIGluc3RlYWQuIgor KyAgICAgICAgICAgIGZpCisrICAgICAgICBmaQorKyAgICAgICAgU0VTU0lPTj1gcHMgLWVmIHwg Z3JlcCBzZXNzaW9uIHwgZ3JlcCAtdiBncmVwYAorKyAgICAgICAgaWYgWyB4IiRTRVNTSU9OIiAh PSB4IF0gOyB0aGVuCisrICAgICAgICAgICAgICAgcHJpbnRfbG9nIC1lICIke1JFRH1GQUlMJHtO Q306ICR7UkVEfUVSUk9SJHtOQ306IFNlc3Npb24gaXMgcnVubmluZzogJFNFU1NJT04iCisrICAg ICAgICAgICAgICAgZXhpdCAxCisrICAgICAgICBmaQorKyAgICBmaQorK30KKysKKysKKytjaGVj a19lbnYoKQorK3sKKysgICAgaWYgdGVzdCAkRU5WX0NIRUNLIC1lcSAwIDsgdGhlbgorKyAgICAg ICAgcmV0dXJuCisrICAgIGZpCisrICAgIHdoaWxlIHJlYWQgY21kIDsgZG8KKysgICAgICAgIGlm IHRlc3QgeCIkY21kIiA9IHggOyB0aGVuCisrICAgICAgICAgICAgY29udGludWUKKysgICAgICAg IGZpCisrICAgICAgICBpZiBlY2hvICIkY21kIiB8IGdyZXAgLXEgIl4jIjsgdGhlbgorKyAgICAg ICAgICAgIGNvbnRpbnVlCisrICAgICAgICBmaQorKyAgICAgICAgZWNobyAiIyAkY21kIiAyPj4k VEVTVF9MT0cgMT4+JFRFU1RfTE9HCisrICAgICAgICBldmFsICIkY21kIiAyPj4kVEVTVF9MT0cg MT4+JFRFU1RfTE9HCisrICAgIGRvbmUgPDwgRU9GX0VOVl9DT01NQU5EUworK2BlY2hvICIkRU5W X0NPTU1BTkRTImAKKytFT0ZfRU5WX0NPTU1BTkRTCisrfQorKworKworK3NhdmVfc2NyZWVuX3Jl YWwoKQorK3sKKysgICAgU0NSRUVOX1BORz0iYGRhdGUgJyslWSVtJWQlSCVNJVMnYC5wbmciCisr ICAgIGdub21lLXNjcmVlbnNob3QgLS1maWxlPSRTQ1JFRU5fUE5HCisrICAgIGlmIHRlc3QgeCIk U0NSRUVOX0xPRyIgPSB4U1RET1VUIDsgdGhlbgorKyAgICAgICAgYmFzZTY0ICRTQ1JFRU5fUE5H CisrICAgICAgICB0b3VjaCAvdmFyL3RtcC9TVERPVVQubG9nCisrICAgIGVsc2UKKysgICAgICAg IGJhc2U2NCAkU0NSRUVOX1BORyA+ICRTQ1JFRU5fTE9HCisrICAgIGZpCisrfQorKworKworK3Nh dmVfc2NyZWVuKCkKKyt7CisrICAgIGlmIHRlc3QgeCIkU0NSRUVOX0xPRyIgPSB4IDsgdGhlbgor KyAgICAgICAgcmV0dXJuCisrICAgIGZpCisrICAgIGlmIHRlc3QgeCIkU0NSRUVOX0xPRyIgPSB4 U1RET1VUIDsgdGhlbgorKyAgICAgICAgaWYgdGVzdCAtZiAvdmFyL3RtcC9TVERPVVQubG9nIDsg dGhlbgorKyAgICAgICAgICAgIHJtIC92YXIvdG1wL1NURE9VVC5sb2cKKysgICAgICAgIGZpCisr ICAgIGVsc2UKKysgICAgICAgIGlmIHRlc3QgLWYgIiRTQ1JFRU5fTE9HIiA7IHRoZW4KKysgICAg ICAgICAgICBybSAiJFNDUkVFTl9MT0ciCisrICAgICAgICBmaQorKyAgICBmaQorKyAgICBzYXZl X3NjcmVlbl9yZWFsICYKKysgICAgd2hpbGUgdGVzdCAxIDsgZG8KKysgICAgICAgIGlmIHRlc3Qg eCIkU0NSRUVOX0xPRyIgPSB4U1RET1VUIDsgdGhlbgorKyAgICAgICAgICAgIGlmIHRlc3QgLWYg L3Zhci90bXAvU1RET1VULmxvZyA7IHRoZW4KKysgICAgICAgICAgICAgICAgYnJlYWsKKysgICAg ICAgICAgICBmaQorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRTQ1JF RU5fTE9HIiA7IHRoZW4KKysgICAgICAgICAgICAgICAgYnJlYWsKKysgICAgICAgICAgICBmaQor KyAgICAgICAgZmkKKysgICAgICAgIHNsZWVwIDEKKysgICAgZG9uZQorK30KKysKKysKKytjcmVh dGVfdGVzdF91c2VyKCkKKyt7CisrICAgIGlmIGdyZXAgLXEgJFRFU1RfVVNFUiAvZXRjL3Bhc3N3 ZDsgdGhlbgorKyAgICAgICAgcmV0dXJuOworKyAgICBmaQorKyAgICB1c2VyYWRkIC1kICRURVNU X1VTRVJfSE9NRSAtbSAtcyAvYmluL2Jhc2ggJFRFU1RfVVNFUgorKyAgICBwd2NvbnYKKysgICAg cGFzc3dkIC1kICRURVNUX1VTRVIKKyt9CisrCisrCisrY3JlYXRlX2F1dG9sb2dpbl9nZG0oKQor K3sKKysgICAgaWYgdGVzdCAtZiAkR0RNX0NPTkYgJiYgZ3JlcCAtcSAkVEVTVF9VU0VSICRHRE1f Q09ORjsgdGhlbgorKyAgICAgICAgcmV0dXJuOworKyAgICBmaQorKyAgICBjYXQgPiAkR0RNX0NP TkYgPDwgX0VPRl9HRE1fQ09ORgorK1tkYWVtb25dCisrQXV0b21hdGljTG9naW5FbmFibGU9dHJ1 ZQorK0F1dG9tYXRpY0xvZ2luPSRURVNUX1VTRVIKKytfRU9GX0dETV9DT05GCisrfQorKworKwor K2NyZWF0ZV94ZGdfYXV0b3N0YXJ0KCkKKyt7CisrICAgIGlmIHRlc3QgLWYgIiRURVNUX1VTRVJf SE9NRS8uY29uZmlnL2F1dG9zdGFydC8kQVVUT1NUQVJUX0RFU0tUT1BfRklMRSIgOyB0aGVuCisr ICAgICAgICByZXR1cm4KKysgICAgZmkKKysgICAgaWYgdGVzdCAhIC1kICIkVEVTVF9VU0VSX0hP TUUiIDsgdGhlbgorKyAgICAgICAgcHJpbnRfbG9nIC1lICIke1JFRH1GQUlMJHtOQ306ICR7UkVE fUVSUk9SJHtOQ306IE5vICRURVNUX1VTRVJfSE9NRSIKKysgICAgICAgIGV4aXQgMQorKyAgICBm aQorKyAgICBkZXNrdG9wX2ZpbGU9IiRBVVRPU1RBUlRfREVTS1RPUF9ESVIvJEFVVE9TVEFSVF9E RVNLVE9QX0ZJTEUiCisrICAgIGlmIHRlc3QgISAtZiAkZGVza3RvcF9maWxlIDsgdGhlbgorKyAg ICAgICAgcHJpbnRfbG9nIC1lICIke1JFRH1GQUlMJHtOQ306ICR7UkVEfUVSUk9SJHtOQ306IE5v ICRkZXNrdG9wX2ZpbGUiCisrICAgICAgICBleGl0IDEKKysgICAgZmkKKysgICAgbWtkaXIgLXAg IiRURVNUX1VTRVJfSE9NRS8uY29uZmlnL2F1dG9zdGFydCIKKysgICAgY3AgIiRkZXNrdG9wX2Zp bGUiICIkVEVTVF9VU0VSX0hPTUUvLmNvbmZpZy9hdXRvc3RhcnQiCisrICAgIExJTkU9IkF1dG9z dGFydENvbmRpdGlvbj1pZi1leGlzdHMgJFRFU1RfVVNFUl9IT01FLy5jb25maWcvYXV0b3N0YXJ0 LyRBVVRPU1RBUlRfREVTS1RPUF9GSUxFIgorKyAgICBlY2hvICIkTElORSIgPj4gIiRURVNUX1VT RVJfSE9NRS8uY29uZmlnL2F1dG9zdGFydC8kQVVUT1NUQVJUX0RFU0tUT1BfRklMRSIKKysgICAg Y2hvd24gLVIgIiRURVNUX1VTRVIiICIkVEVTVF9VU0VSX0hPTUUvLmNvbmZpZyIKKyt9CisrCisr CisrZGVsZXRlX3Rlc3RfdXNlcigpCisreworKyAgICBwcmludF9sb2cgIkRlbGV0aW5nICRURVNU X1VTRVIiCisrICAgIHBraWxsIC11ICRURVNUX1VTRVIKKysgICAgaWYgZ3JlcCAtcSAkVEVTVF9V U0VSIC9ldGMvcGFzc3dkOyB0aGVuCisrICAgICAgICB1c2VyZGVsIC1yICRURVNUX1VTRVIKKysg ICAgZmkKKysgICAgaWYgdGVzdCAtZiAkR0RNX0NPTkYgJiYgZ3JlcCAtcSAkVEVTVF9VU0VSICRH RE1fQ09ORjsgdGhlbgorKyAgICAgICAgcm0gJEdETV9DT05GCisrICAgIGZpCisrCisrICAgIGlm IGVjaG8gIiRTRVNTSU9OX0NPTU1BTkQiIHwgZ3JlcCAtcSBnbm9tZS1zZXNzaW9uIDsgdGhlbgor KyAgICAgICAgU0VTU0lPTl9JU19HTk9NRT0xCisrICAgIGVsc2UKKysgICAgICAgIFNFU1NJT05f SVNfR05PTUU9MAorKyAgICBmaQorKworKyAgICBMT0dJTl9VU0VSPSRVU0VSCisrICAgIExPR0lO X0hPTUU9JEhPTUUKKysgICAgaWYgWyAkRU5BQkxFRF9TWVNURU1EIC1lcSAxIF0gJiYgWyAgJFNF U1NJT05fSVNfR05PTUUgLWVxIDEgXSA7IHRoZW4KKysgICAgICAgIExPR0lOX1VTRVI9JFRFU1Rf VVNFUgorKyAgICAgICAgTE9HSU5fSE9NRT0kVEVTVF9VU0VSX0hPTUUKKysgICAgZmkKKysKKysg ICAgcHJpbnRfbG9nICJEZWxldGluZyAkTE9HSU5fVVNFUiBlbnZpcm9ubWVudHMiCisrICAgIGlm IHRlc3QgLWYgIiRMT0dJTl9IT01FLy5jb25maWcvZ25vbWUtaW5pdGlhbC1zZXR1cC1kb25lIiA7 IHRoZW4KKysgICAgICAgIHJtICIkTE9HSU5fSE9NRS8uY29uZmlnL2dub21lLWluaXRpYWwtc2V0 dXAtZG9uZSIKKysgICAgZmkKKysgICAgaWYgdGVzdCAtZiAiJExPR0lOX0hPTUUvLmNvbmZpZy91 c2VyLWRpcnMubG9jYWxlIiA7IHRoZW4KKysgICAgICAgIHJtICIkTE9HSU5fSE9NRS8uY29uZmln L3VzZXItZGlycy5sb2NhbGUiCisrICAgIGZpCisrICAgIGlmIHRlc3QgLWYgL3Zhci9saWIvQWNj b3VudHNTZXJ2aWNlL3VzZXJzLyRMT0dJTl9VU0VSIDsgdGhlbgorKyAgICAgICAgcm0gL3Zhci9s aWIvQWNjb3VudHNTZXJ2aWNlL3VzZXJzLyRMT0dJTl9VU0VSCisrICAgIGZpCisrICAgIHN5bmMK Kyt9CisrCisrCisraW5pdF9zZXNzaW9uKCkKKyt7CisrICAgIGlmIFsgIiRSRVNVTFRfTE9HIiAh PSAiIiBdIDsgdGhlbgorKyAgICAgICAgaWYgWyAtZiAkUkVTVUxUX0xPRyBdIDsgdGhlbgorKyAg ICAgICAgICAgIHJtICRSRVNVTFRfTE9HCisrICAgICAgICBmaQorKyAgICBmaQorKyAgICBlY2hv ICIkVEVTVF9MT0ciIHwgZ3JlcCAnOnN0ZG91dCcgPiAvZGV2L251bGwKKysgICAgSEFTX1NURE9V VD0kPworKyAgICBpZiBbICRIQVNfU1RET1VUIC1lcSAwIF0gOyB0aGVuCisrICAgICAgICBURVNU X0xPRz1gZWNobyAiJFRFU1RfTE9HIiB8IHNlZCAtZSAnc3w6c3Rkb3V0fHwnYAorKyAgICAgICAg VEVTVF9MT0dfU1RET1VUPTEKKysgICAgZmkKKysgICAgaWYgWyAiJFRFU1RfTE9HIiA9ICIiIF0g OyB0aGVuCisrICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogJHtSRUR9RVJS T1Ike05DfTogYSBsb2cgZmlsZSBpcyByZXF1aXJlZCB0byBnZXQgcmV0dXJuIHZhbHVlIHdpdGgg J3JlYWQnIGNvbW1hbmQiCisrICAgICAgICBleGl0IDEKKysgICAgZWxpZiBbIC1mICRURVNUX0xP RyBdIDsgdGhlbgorKyAgICAgICAgcm0gJFRFU1RfTE9HCisrICAgIGZpCisrCisrICAgIGlmIGVj aG8gIiRTRVNTSU9OX0NPTU1BTkQiIHwgZ3JlcCAtcSBnbm9tZS1zZXNzaW9uIDsgdGhlbgorKyAg ICAgICAgU0VTU0lPTl9JU19HTk9NRT0xCisrICAgIGVsc2UKKysgICAgICAgIFNFU1NJT05fSVNf R05PTUU9MAorKyAgICBmaQorKworKyAgICBMT0dJTl9VU0VSPSRVU0VSCisrICAgIExPR0lOX0hP TUU9JEhPTUUKKysgICAgY2hlY2tfdHR5CisrICAgIGlmIFsgJEVOQUJMRURfU1lTVEVNRCAtZXEg MSBdICYmIFsgICRTRVNTSU9OX0lTX0dOT01FIC1lcSAxIF0gOyB0aGVuCisrICAgICAgICBTRVNT SU9OX0ZJTEUxPSIvdXNyL2xpYi9zeXN0ZW1kL3N5c3RlbS9nbm9tZS1oZWFkbGVzcy1zZXNzaW9u QC5zZXJ2aWNlIgorKyAgICAgICAgU0VTU0lPTl9GSUxFMj0iL3Vzci9saWIvc3lzdGVtZC9zeXN0 ZW0vZ3JhcGhpY2FsLnRhcmdldCIKKysgICAgICAgIGlmIFsgJEhBVkVfR1JBUEhJQ1MgLWVxIDAg XSAmJiBbICEgLWYgIiRTRVNTSU9OX0ZJTEUxIiBdIDsgdGhlbgorKyAgICAgICAgICAgIHByaW50 X2xvZyAtZSAiJHtSRUR9RkFJTCR7TkN9OiAke1JFRH1FUlJPUiR7TkN9OiBObyAkU0VTU0lPTl9G SUxFMTogWW91IG5lZWQgdG8gaW5zdGFsbCAnZ2RtJyBhbmQgJ3N5c3RlbWQnIHBhY2thZ2UiCisr ICAgICAgICAgICAgZXhpdCAxCisrICAgICAgICBmaQorKyAgICAgICAgaWYgWyAkSEFWRV9HUkFQ SElDUyAtZXEgMSBdIDsgdGhlbgorKyAgICAgICAgICAgIGlmIFsgISAtZiAiJFNFU1NJT05fRklM RTIiIF0gOyB0aGVuCisrICAgICAgICAgICAgICAgIHByaW50X2xvZyAtZSAiJHtSRUR9RkFJTCR7 TkN9OiAke1JFRH1FUlJPUiR7TkN9OiBObyAkU0VTU0lPTl9GSUxFMjogWW91IG5lZWQgdG8gaW5z dGFsbCAnc3lzdGVtZCcgcGFja2FnZSIKKysgICAgICAgICAgICAgICAgZXhpdCAxCisrICAgICAg ICAgICAgZmkKKysgICAgICAgICAgICBpZiBbICEgLWYgL3Vzci9zYmluL2dkbSBdIDsgdGhlbgor KyAgICAgICAgICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogJHtSRUR9RVJS T1Ike05DfTogTm8gL3Vzci9zYmluL2dkbTogQ3VycmVudGx5IG9ubHkgZ2RtIGlzIHN1cHBvcnRl ZCBmb3IgYXV0byBsb2dpbi4iCisrICAgICAgICAgICAgICAgIGV4aXQgMQorKyAgICAgICAgICAg IGZpCisrICAgICAgICBmaQorKyAgICAgICAgY3JlYXRlX3Rlc3RfdXNlcgorKyAgICAgICAgY3Jl YXRlX2F1dG9sb2dpbl9nZG0KKysgICAgICAgIGNyZWF0ZV94ZGdfYXV0b3N0YXJ0CisrICAgICAg ICBMT0dJTl9VU0VSPSRURVNUX1VTRVIKKysgICAgICAgIExPR0lOX0hPTUU9JFRFU1RfVVNFUl9I T01FCisrICAgIGVsc2UKKysgICAgICAgIHJtIC1mICRURVNUX1VTRVJfSE9NRS8uY29uZmlnL2F1 dG9zdGFydC8kQVVUT1NUQVJUX0RFU0tUT1BfRklMRQorKyAgICBmaQorKworKyAgICBpZiBbICEg LWYgJExPR0lOX0hPTUUvLmNvbmZpZy9nbm9tZS1pbml0aWFsLXNldHVwLWRvbmUgXSA7IHRoZW4K KysgICAgICAgIG1rZGlyIC1wICRMT0dJTl9IT01FLy5jb25maWcKKysgICAgICAgIHRvdWNoICRM T0dJTl9IT01FLy5jb25maWcvZ25vbWUtaW5pdGlhbC1zZXR1cC1kb25lCisrICAgICAgICBjaG93 biAtUiAkTE9HSU5fVVNFUiAkTE9HSU5fSE9NRS8uY29uZmlnCisrICAgIGZpCisrICAgIElTX1NZ U1RFTV9BQ0NPVU5UPWZhbHNlCisrICAgIGlmIFsgIiRMT0dJTl9VU0VSIiA9ICJyb290IiBdIDsg dGhlbgorKyAgICAgICAgICAgIElTX1NZU1RFTV9BQ0NPVU5UPXRydWUKKysgICAgZmkKKysgICAg aWYgdGVzdCB4IiRTRVNTSU9OX0xBTkciID0geCA7IHRoZW4KKysgICAgICAgIFNFU1NJT05fTEFO Rz0kTEFORworKyAgICBmaQorKyAgICBpZiB0ZXN0IC1mIC92YXIvbGliL0FjY291bnRzU2Vydmlj ZS91c2Vycy8kTE9HSU5fVVNFUjsgdGhlbgorKyAgICAgICAgc2VkIC1pIC1lICJzL1woTGFuZ3Vh Z2U9XCkuKi9cMSRTRVNTSU9OX0xBTkcvIiBcCisrICAgICAgICAgICAgICAgIC92YXIvbGliL0Fj Y291bnRzU2VydmljZS91c2Vycy8kTE9HSU5fVVNFUgorKyAgICBlbHNlCisrICAgICAgICBta2Rp ciAtcCAvdmFyL2xpYi9BY2NvdW50c1NlcnZpY2UvdXNlcnMKKysgICAgICAgIGNhdCA+IC92YXIv bGliL0FjY291bnRzU2VydmljZS91c2Vycy8kTE9HSU5fVVNFUiA8PCBfRU9GX0FTX0NPTkYKKytb VXNlcl0KKytMYW5ndWFnZT0kU0VTU0lPTl9MQU5HCisrWFNlc3Npb249Z25vbWUKKytTeXN0ZW1B Y2NvdW50PSRJU19TWVNURU1fQUNDT1VOVAorK19FT0ZfQVNfQ09ORgorKyAgICBmaQorKworKyAg ICAjIFByZXZlbnQgZnJvbSBsYXVuY2hpbmcgYSBYREcgZGlhbG9nCisrICAgIFhER19MT0NBTEVf RklMRT0iJExPR0lOX0hPTUUvLmNvbmZpZy91c2VyLWRpcnMubG9jYWxlIgorKyAgICBpZiBbIC1m ICRYREdfTE9DQUxFX0ZJTEUgXSA7IHRoZW4KKysgICAgICAgIFhER19MQU5HX09SSUc9YGNhdCAk WERHX0xPQ0FMRV9GSUxFYAorKyAgICAgICAgWERHX0xBTkdfTkVXPWBlY2hvICRTRVNTSU9OX0xB TkcgfCBzZWQgLWUgJ3MvXCguKlwpXC4uKi9cMS8nYAorKyAgICAgICAgaWYgWyAiJFhER19MQU5H X09SSUciICE9ICIkWERHX0xBTkdfTkVXIiBdIDsgdGhlbgorKyAgICAgICAgICAgIGVjaG8gIiMg T3ZlcnJpZGluZyBYREcgbG9jYWxlICRYREdfTEFOR19PUklHIHdpdGggJFhER19MQU5HX05FVyIK KysgICAgICAgICAgICBlY2hvICIkWERHX0xBTkdfTkVXIiA+ICRYREdfTE9DQUxFX0ZJTEUKKysg ICAgICAgIGZpCisrICAgIGZpCisrCisrICAgIGlmIFsgJEVOQUJMRURfU1lTVEVNRCAtZXEgMSBd ICYmIFsgICRTRVNTSU9OX0lTX0dOT01FIC1lcSAxIF0gOyB0aGVuCisrICAgICAgICByZXR1cm4K KysgICAgZmkKKysgICAgIyBgc3VgIGNvbW1hbmQgZG9lcyBub3QgcnVuIGxvZ2luY3RsCisrICAg IGV4cG9ydCBYREdfU0VTU0lPTl9UWVBFPSd4MTEnCisrICAgIGV4cG9ydCBYREdfU0VTU0lPTl9D TEFTUz11c2VyCisrICAgICMgYHN1YCBjb21tYW5kIGRvZXMgbm90IGdldCBmb2N1cyBpbiBldmVu dHMgd2l0aG91dCB0aGlzIHZhcmlhYmxlLgorKyAgICAjIE5lZWQgdG8gcmVzdGFydCBzc2hkIGFm dGVyIHNldCAiUGVybWl0Um9vdExvZ2luIHllcyIgaW4gc3NoZF9jb25maWcKKysgICAgaWYgWyAi eCRYREdfUlVOVElNRV9ESVIiID0geCBdIDsgdGhlbgorKyAgICAgICAgZXhwb3J0IFhER19SVU5U SU1FX0RJUj0iL3J1bi91c2VyLyRVSUQiCisrICAgICAgICBpc19yb290X2xvZ2luPWBncmVwICJe UGVybWl0Um9vdExvZ2luIiAvZXRjL3NzaC9zc2hkX2NvbmZpZyB8IGdyZXAgeWVzYAorKyAgICAg ICAgaWYgWyAieCRBTlNJQkxFIiAhPSB4IF0gJiYgWyAieCRpc19yb290X2xvZ2luIiA9IHggXSA7 IHRoZW4KKysgICAgICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogTm8gcGVy bWlzc2lvbiB0byBnZXQgZm9jdXMtaW4gZXZlbnRzIGluIEd0a1dpbmRvdyB3aXRoIGFuc2libGUi CisrICAgICAgICAgICAgZWNobyAic3UgY29tbWFuZCBkb2VzIG5vdCBjb25maWd1cmUgbmVjZXNz YXJ5IGxvZ2luIGluZm8gIiAgICAgICAgIFwKKysgICAgICAgICAgICAgICAgICJ3aXRoIHN5c3Rl bWQgYW5kIEd0a1dpbmRvdyBjYW5ub3QgcmVjZWl2ZSBmb2N1cy1ldmVudHMgIiAgICAgXAorKyAg ICAgICAgICAgICAgICAgIndoZW4gaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyIGlzIGV4ZWN1 dGVkIGJ5ICIgICAgICAgICAgICBcCisrICAgICAgICAgICAgICAgICAiYW5zaWJsZS1wbGF5Ym9v ay4iID4+ICRURVNUX0xPRworKyAgICAgICAgICAgIGVjaG8gIkVuYWJsaW5nIHJvb3QgbG9naW4g dmlhIHNzaGQsIHJlc3RhcnRpbmcgc3NoZCwgc2V0ICIgICAgICAgICBcCisrICAgICAgICAgICAg ICAgICAiWERHX1JVTlRJTUVfRElSIGNhbiByZXNvbHZlIHRoZSBwcm9ibGVtIHVuZGVyICIgICAg ICAgICAgICAgIFwKKysgICAgICAgICAgICAgICAgICJhbnNpYmxlLXBsYXlib29rLiIgPj4gJFRF U1RfTE9HCisrICAgICAgICAgICAgZXhpdCAxCisrICAgICAgICBmaQorKyAgICBmaQorKyAgICAj ICBEbyB3ZSBuZWVkIFhER19TRVNTSU9OX0lEIGFuZCBYREdfU0VBVD8KKysgICAgI2V4cG9ydCBY REdfQ09ORklHX0RJUlM9L2V0Yy94ZGcKKysgICAgI2V4cG9ydCBYREdfU0VTU0lPTl9JRD0xMAor KyAgICAjZXhwb3J0IFhER19TRVNTSU9OX0RFU0tUT1A9Z25vbWUKKysgICAgI2V4cG9ydCBYREdf U0VBVD1zZWF0MAorK30KKysKKysKKytydW5fZGJ1c19kYWVtb24oKQorK3sKKysgICAgaWYgWyAk RU5BQkxFRF9TWVNURU1EIC1lcSAxIF0gJiYgWyAgJFNFU1NJT05fSVNfR05PTUUgLWVxIDEgXSA7 IHRoZW4KKysgICAgICAgIHJldHVybgorKyAgICBmaQorKyAgICAjIFVzZSBkYnVzLWxhdW5jaCAt LWV4aXQtd2l0aC1zZXNzaW9uIGxhdGVyIGluc3RlYWQgb2YgLS1zaC1zeW50YXgKKysgICAgIyBH Tk9NRSB1c2VzIGEgdW5peDphYnN0cmFjdCBhZGRyZXNzIGFuZCBpdCBlZmZlY3RzIGdzZXR0aW5n cyBzZXQgdmFsdWVzCisrICAgICMgaW4gZWFjaCB0ZXN0IGNhc2UuCisrICAgICMgVE9ETzogU2hv dWxkIHdlIGNvbW1lbnQgb3V0IHRoaXMgbGluZT8KKysgICAgZXhwb3J0IERCVVNfU0VTU0lPTl9C VVNfQUREUkVTUz0idW5peDpwYXRoPS9ydW4vdXNlci8kVUlEL2J1cyIKKyt9CisrCisrCisraW5p dF9nbm9tZSgpCisreworKyAgICBpZiB0ZXN0ICRTRVNTSU9OX0lTX0dOT01FIC1uZSAxIDsgdGhl bgorKyAgICAgICAgcHJpbnRfbG9nIC1lICIke1JFRH1GQUlMJHtOQ306ICR7UkVEfUVSUk9SJHtO Q306IFNob3VsZCBub3QgYmUgY2FsbGVkIgorKyAgICAgICAgZXhpdCAxCisrICAgIGZpCisrICAg IExPR0lOX1VTRVI9JFVTRVIKKysgICAgaWYgdGVzdCAkRU5BQkxFRF9TWVNURU1EIC1lcSAxIDsg dGhlbgorKyAgICAgICAgTE9HSU5fVVNFUj0kVEVTVF9VU0VSCisrICAgIGZpCisrICAgICMgZ3Nl dHRpbmdzIHNldCBjb21tYW5kIG5lZWRzIGRjb25mLXNlcnZpY2Ugd2l0aCB0aGUgc2FtZSAkRElT UExBWQorKyAgICBwa2lsbCBkY29uZi1zZXJ2aWNlCisrICAgICMgR19NRVNTQUdFU19ERUJVRz1h bGwgb3IgR19NRVNTQUdFU19ERUJVRz1HTGliLUdJTy1ERUJVRyB3b3VsZCBhcHBlbmQKKysgICAg IyBkZWJ1ZyBtZXNzYWdlcyB0byBnc2V0dGluZ3Mgb3V0cHV0IGFuZCBjb3VsZCBub3QgZ2V0IHRo ZSByZXN1bHQgY29ycmVjdGx5LgorKyAgICBiYWNrdXBfR19NRVNTQUdFU19ERUJVRz0iJEdfTUVT U0FHRVNfREVCVUciCisrICAgIHVuc2V0IEdfTUVTU0FHRVNfREVCVUcKKysgICAgIyBEaXNhYmxl IFRvdXIgZGlhbG9nIHRvIGdldCBmb2N1cworKyAgICBHRVRfV0VMQ09NRV9ESUFMT0c9ImdzZXR0 aW5ncyBnZXQgb3JnLmdub21lLnNoZWxsIHdlbGNvbWUtZGlhbG9nLWxhc3Qtc2hvd24tdmVyc2lv biIKKysgICAgaWYgdGVzdCAkTE9HSU5fVVNFUiA9ICRVU0VSIDsgdGhlbgorKyAgICAgICAgVj1g ZGJ1cy1ydW4tc2Vzc2lvbiAkR0VUX1dFTENPTUVfRElBTE9HYAorKyAgICBlbHNlCisrICAgICAg ICBWPWBzdWRvIC11ICRMT0dJTl9VU0VSIGRidXMtcnVuLXNlc3Npb24gJEdFVF9XRUxDT01FX0RJ QUxPR2AKKysgICAgZmkKKysgICAgaWYgWyB4IiRWIiA9IHgiJyciIF0gOyB0aGVuCisrICAgICAg ICBTRVRfV0VMQ09NRV9ESUFMT0c9ImdzZXR0aW5ncyBzZXQgb3JnLmdub21lLnNoZWxsIHdlbGNv bWUtZGlhbG9nLWxhc3Qtc2hvd24tdmVyc2lvbiAnMTAwJyIKKysgICAgICAgIGlmIHRlc3QgJExP R0lOX1VTRVIgPSAkVVNFUiA7IHRoZW4KKysgICAgICAgICAgICBkYnVzLXJ1bi1zZXNzaW9uICRT RVRfV0VMQ09NRV9ESUFMT0cKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBzdWRvIC11ICRM T0dJTl9VU0VSIGRidXMtcnVuLXNlc3Npb24gJFNFVF9XRUxDT01FX0RJQUxPRworKyAgICAgICAg ZmkKKysgICAgZmkKKysgICAgIyBnbm9tZS1zaGVsbCBub3cgc3RhcnRzIG92ZXJ2aWV3IG1vZGUg YnkgbG9naW4uCisrICAgICMgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24v NDA5OS9uby1vdmVydmlldy8KKysgICAgTk9fU1lTX0RJUj0vdXNyL3NoYXJlL2dub21lLXNoZWxs L2V4dGVuc2lvbnMvbm8tb3ZlcnZpZXdAZnRoeAorKyAgICBpZiB0ZXN0ICRMT0dJTl9VU0VSID0g JFVTRVIgOyB0aGVuCisrICAgICAgICBOT19VU0VSX0RJUj0kSE9NRS8ubG9jYWwvc2hhcmUvZ25v bWUtc2hlbGwvZXh0ZW5zaW9ucy9uby1vdmVydmlld0BmdGh4CisrICAgIGVsc2UKKysgICAgICAg IE5PX1VTRVJfRElSPSRURVNUX1VTRVJfSE9NRS8ubG9jYWwvc2hhcmUvZ25vbWUtc2hlbGwvZXh0 ZW5zaW9ucy9uby1vdmVydmlld0BmdGh4CisrICAgIGZpCisrICAgIGlmIFsgISAtZCAkTk9fU1lT X0RJUiBdICYmIFsgISAtZCAkTk9fVVNFUl9ESVIgXSA7IHRoZW4KKysgICAgICAgIG1rZGlyIC1w ICJgZGlybmFtZSAkTk9fVVNFUl9ESVJgIgorKyAgICAgICAgY3AgLVIgIm5vLW92ZXJ2aWV3QGZ0 aHgiICJgZGlybmFtZSAkTk9fVVNFUl9ESVJgIgorKyAgICAgICAgaWYgdGVzdCAkTE9HSU5fVVNF UiA9ICRVU0VSIDsgdGhlbgorKyAgICAgICAgICAgIGNob3duIC1SICRMT0dJTl9VU0VSICRIT01F Ly5sb2NhbAorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGNob3duIC1SICRMT0dJTl9VU0VS ICRURVNUX1VTRVJfSE9NRS8ubG9jYWwKKysgICAgICAgIGZpCisrICAgIGZpCisrICAgIGlmIFsg JExPR0lOX1VTRVIgIT0gJFVTRVIgXSA7IHRoZW4KKysgICAgICAgIFNIRUxMX1NFUlZJQ0VfRklM RT0ib3JnLmdub21lLlNoZWxsQHdheWxhbmQuc2VydmljZSIKKysgICAgICAgIFNZU1RFTURfVVNF Ul9ESVI9IiRURVNUX1VTRVJfSE9NRS8uY29uZmlnL3N5c3RlbWQvdXNlciIKKysgICAgICAgIGlm IHRlc3QgJEhBVkVfR1JBUEhJQ1MgLW5lIDEgOyB0aGVuCisrICAgICAgICAgICAgaWYgdGVzdCAh IC1mICIkU1lTVEVNRF9VU0VSX0RJUi8kU0hFTExfU0VSVklDRV9GSUxFIiA7IHRoZW4KKysgICAg ICAgICAgICAgICAgbWtkaXIgLXAgIiRTWVNURU1EX1VTRVJfRElSIgorKyAgICAgICAgICAgICAg ICBwdXNoZCAiJFNZU1RFTURfVVNFUl9ESVIiCisrICAgICAgICAgICAgICAgIHNlZCAtZSAic3xe RXhlY1N0YXJ0PS4qfEV4ZWNTdGFydD0kR05PTUVfU0hFTExfV0FZTEFORF9DT01NQU5EfCIgXAor KyAgICAgICAgICAgICAgICAgICAgJFNZU1RFTURfU1lTVEVNX0RJUi8kU0hFTExfU0VSVklDRV9G SUxFIFwKKysgICAgICAgICAgICAgICAgICAgID4gJFNIRUxMX1NFUlZJQ0VfRklMRQorKyAgICAg ICAgICAgICAgICBkaWZmICRTWVNURU1EX1NZU1RFTV9ESVIvJFNIRUxMX1NFUlZJQ0VfRklMRSAk U0hFTExfU0VSVklDRV9GSUxFCisrICAgICAgICAgICAgICAgIHBvcGQKKysgICAgICAgICAgICAg ICAgY2hvd24gLVIgJExPR0lOX1VTRVIgIiRURVNUX1VTRVJfSE9NRS8uY29uZmlnIgorKyAgICAg ICAgICAgIGZpCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgaWYgdGVzdCAtZiAiJFNZU1RF TURfVVNFUl9ESVIvJFNIRUxMX1NFUlZJQ0VfRklMRSIgOyB0aGVuCisrICAgICAgICAgICAgICAg IHJtICIkU1lTVEVNRF9VU0VSX0RJUi8kU0hFTExfU0VSVklDRV9GSUxFIgorKyAgICAgICAgICAg IGZpCisrICAgICAgICBmaQorKyAgICBmaQorKyAgICBHRVRfRElTQUJMRV9VU0VSX0VYPSJnc2V0 dGluZ3MgZ2V0IG9yZy5nbm9tZS5zaGVsbCBkaXNhYmxlLXVzZXItZXh0ZW5zaW9ucyIKKysgICAg aWYgdGVzdCAkTE9HSU5fVVNFUiA9ICRVU0VSIDsgdGhlbgorKyAgICAgICAgVj1gZGJ1cy1ydW4t c2Vzc2lvbiAkR0VUX0RJU0FCTEVfVVNFUl9FWGAKKysgICAgZWxzZQorKyAgICAgICAgVj1gc3Vk byAtdSAkTE9HSU5fVVNFUiBkYnVzLXJ1bi1zZXNzaW9uICRHRVRfRElTQUJMRV9VU0VSX0VYYAor KyAgICBmaQorKyAgICBpZiBbIHgiJFYiID0geCJ0cnVlIiBdIDsgdGhlbgorKyAgICAgICAgU0VU X0RJU0FCTEVfVVNFUl9FWD0iZ3NldHRpbmdzIHNldCBvcmcuZ25vbWUuc2hlbGwgZGlzYWJsZS11 c2VyLWV4dGVuc2lvbnMgZmFsc2UiCisrICAgICAgICBpZiB0ZXN0ICRMT0dJTl9VU0VSID0gJFVT RVIgOyB0aGVuCisrICAgICAgICAgICAgZGJ1cy1ydW4tc2Vzc2lvbiAkU0VUX0RJU0FCTEVfVVNF Ul9FWAorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHN1ZG8gLXUgJExPR0lOX1VTRVIgZGJ1 cy1ydW4tc2Vzc2lvbiAkU0VUX0RJU0FCTEVfVVNFUl9FWAorKyAgICAgICAgZmkKKysgICAgZmkK KysgICAgR0VUX0VOQUJMRURfRVhTPSJnc2V0dGluZ3MgZ2V0IG9yZy5nbm9tZS5zaGVsbCBlbmFi bGVkLWV4dGVuc2lvbnMiCisrICAgIGlmIHRlc3QgJExPR0lOX1VTRVIgPSAkVVNFUiA7IHRoZW4K KysgICAgICAgIFY9YGRidXMtcnVuLXNlc3Npb24gJEdFVF9FTkFCTEVEX0VYU2AKKysgICAgZWxz ZQorKyAgICAgICAgVj1gc3VkbyAtdSAkTE9HSU5fVVNFUiBkYnVzLXJ1bi1zZXNzaW9uICRHRVRf RU5BQkxFRF9FWFNgCisrICAgIGZpCisrICAgIGVjaG8gIiRWIiB8IGdyZXAgIm5vLW92ZXJ2aWV3 IiA+IC9kZXYvbnVsbAorKyAgICBWMj0kPworKyAgICBpZiBbICRWMiAtbmUgMCBdIDsgdGhlbgor KyAgICAgICAgVjM9YGVjaG8gIiRWIiB8IHNlZCAtZSAncy9AYXMgLy8nIC1lICdzL1xbLy8nIC1l ICdzL1xdLy8nYAorKyAgICAgICAgaWYgWyB4IiRWMyIgPSB4IicnIiBdIHx8IFsgeCIkVjMiID0g eCIiIF07IHRoZW4KKysgICAgICAgICAgICBWND0iWyduby1vdmVydmlld0BmdGh4J10iCisrICAg ICAgICBlbHNlCisrICAgICAgICAgICAgVjQ9IlskVjMsJ25vLW92ZXJ2aWV3QGZ0aHgnXSIKKysg ICAgICAgIGZpCisrICAgICAgICBTRVRfRU5BQkxFRF9FWFM9ImdzZXR0aW5ncyBzZXQgb3JnLmdu b21lLnNoZWxsIGVuYWJsZWQtZXh0ZW5zaW9ucyBcIiRWNFwiIgorKyAgICAgICAgaWYgdGVzdCAk TE9HSU5fVVNFUiA9ICRVU0VSIDsgdGhlbgorKyAgICAgICAgICAgIGV2YWwgZGJ1cy1ydW4tc2Vz c2lvbiAkU0VUX0VOQUJMRURfRVhTCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgZXZhbCBz dWRvIC11ICRMT0dJTl9VU0VSIGRidXMtcnVuLXNlc3Npb24gJFNFVF9FTkFCTEVEX0VYUworKyAg ICAgICAgZmkKKysgICAgZmkKKysgICAgIyBEaXNhYmxlIG5vdGlmeSBkaWFsb2cgd2hlbiB0aGUg ZGlzayB1c2FnZSBpcyBsb3cuCisrICAgIFNFVF9OT1RJRllfRElTSz0iZ3NldHRpbmdzIHNldCBv cmcuZ25vbWUuc2V0dGluZ3MtZGFlbW9uLnBsdWdpbnMuaG91c2VrZWVwaW5nIGZyZWUtc2l6ZS1n Yi1uby1ub3RpZnkgMCIKKysgICAgaWYgdGVzdCAkTE9HSU5fVVNFUiA9ICRVU0VSIDsgdGhlbgor KyAgICAgICAgICAgIGV2YWwgZGJ1cy1ydW4tc2Vzc2lvbiAkU0VUX05PVElGWV9ESVNLCisrICAg IGVsc2UKKysgICAgICAgICAgICBldmFsIHN1ZG8gLXUgJExPR0lOX1VTRVIgZGJ1cy1ydW4tc2Vz c2lvbiAkU0VUX05PVElGWV9ESVNLCisrICAgIGZpCisrICAgIGlmIFsgeCIkYmFja3VwX0dfTUVT U0FHRVNfREVCVUciICE9IHggXSA7IHRoZW4KKysgICAgICAgIGV4cG9ydCBHX01FU1NBR0VTX0RF QlVHPSIkYmFja3VwX0dfTUVTU0FHRVNfREVCVUciCisrICAgIGZpCisrfQorKworKworK29wZXJh dGVfZGVza3RvcF93aXRoX3N5c3RlbWQoKQorK3sKKysgICAgU0VTU0lPTj1nbm9tZS1oZWFkbGVz cy1zZXNzaW9uCisrICAgIENPTU1BTkQ9IiQxIgorKworKyAgICAjaWYgdGVzdCAkSEFWRV9HUkFQ SElDUyAtZXEgMSA7IHRoZW4KKysgICAgICAgIGNhc2UgIiRDT01NQU5EIiBpbgorKyAgICAgICAg InN0YXJ0Iikgc3lzdGVtY3RsIGlzb2xhdGUgZ3JhcGhpY2FsLnRhcmdldAorKyAgICAgICAgICAg ICAgICAgZWNobyAiIgorKyAgICAgICAgICAgICAgICAgOzsKKysgICAgICAgICJzdG9wIikgIGlu aXQgMzs7CisrICAgICAgICAiIikgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTog JHtSRUR9RVJST1Ike05DfTogV3JvbmcgY29tbWFuZCAkQ09NTUFORCIKKysgICAgICAgICAgICAg ICAgIGV4aXQgMTs7CisrICAgICAgICBlc2FjCisrICAgICNlbHNlCisrICAgICMgICAgc2V0ZW5m b3JjZSAwCisrICAgICMgICAgc3lzdGVtY3RsICRDT01NQU5EICR7U0VTU0lPTn1AJHtURVNUX1VT RVJ9CisrICAgICNmaQorKyAgICBjYXNlICIkQ09NTUFORCIgaW4KKysgICAgInN0YXJ0Iikgc2xl ZXAgMzA7OworKyAgICAiIikgOzsKKysgICAgZXNhYworKyAgICAjaWYgdGVzdCAkSEFWRV9HUkFQ SElDUyAtZXEgMSA7IHRoZW4KKysgICAgICAgIHN5c3RlbWN0bCBzdGF0dXMgLS1uby1wYWdlciBn cmFwaGljYWwudGFyZ2V0CisrICAgICNlbHNlCisrICAgICMgICAgc3lzdGVtY3RsIHN0YXR1cyAt LW5vLXBhZ2VyICR7U0VTU0lPTn1AJHtURVNUX1VTRVJ9CisrICAgICNmaQorKyAgICBwcyAtZWYg fCBncmVwIFgKKysgICAgcHMgLWVmIHwgZ3JlcCBzZXNzaW9uCisrICAgIHBzIC1lZiB8IGdyZXAg aWJ1cworK30KKysKKysKKytydW5fc2Vzc2lvbigpCisreworKyAgICBpZiBbICRFTkFCTEVEX1NZ U1RFTUQgLWVxIDEgXSAmJiBbICAkU0VTU0lPTl9JU19HTk9NRSAtZXEgMSBdIDsgdGhlbgorKyAg ICAgICAgaW5pdF9nbm9tZQorKyAgICAgICAgb3BlcmF0ZV9kZXNrdG9wX3dpdGhfc3lzdGVtZCAi c3RhcnQiCisrICAgICAgICByZXR1cm4KKysgICAgZmkKKysgICAgZXhwb3J0IERJU1BMQVk9Ojk5 LjAKKysgICAgaWYgdGVzdCAkSEFWRV9HUkFQSElDUyAtZXEgMSA7IHRoZW4KKysgICAgICAgIC91 c3IvbGliZXhlYy9Yb3JnLndyYXAgLW5vcmVzZXQgK2V4dGVuc2lvbiBHTFggK2V4dGVuc2lvbiBS QU5EUiArZXh0ZW5zaW9uIFJFTkRFUiAtbG9nZmlsZSAuL3hvcmcubG9nIC1jb25maWcgLi94b3Jn LmNvbmYgLWNvbmZpZ2RpciAuICRESVNQTEFZICYKKysgICAgZWxzZQorKyAgICAgICAgL3Vzci9i aW4vWHZmYiAkRElTUExBWSAtbm9yZXNldCArZXh0ZW5zaW9uIEdMWCArZXh0ZW5zaW9uIFJBTkRS ICtleHRlbnNpb24gUkVOREVSIC1zY3JlZW4gMCAxMjgweDEwMjR4MjQgJgorKyAgICBmaQorKyAg ICBQSURfWE9SRz0kIQorKyAgICBzbGVlcCAxCisrICAgICMgaW5pdF9nbm9tZSBuZWVkIHRvIGJl IGNhbGxlZCB3aXRoICRESVNQTEFZIGJlZm9yZSBnbm9tZS1zZXNzaW9uIGlzIGNhbGxlZAorKyAg ICBpZiBbICAkU0VTU0lPTl9JU19HTk9NRSAtZXEgMSBdIDsgdGhlbgorKyAgICAgICAgaW5pdF9n bm9tZQorKyAgICBmaQorKyAgICBlY2hvICJSdW5uaW5nICRTRVNTSU9OX0NPTU1BTkQgd2l0aCAk VVNFUiBhbmQgTEFORz0kU0VTU0lPTl9MQU5HIGluIGB0dHlgIgorKyAgICBpZiB0ZXN0IHgiJFNF U1NJT05fTEFORyIgPSB4IDsgdGhlbgorKyAgICAgICAgJFNFU1NJT05fQ09NTUFORCAmCisrICAg IGVsc2UKKysgICAgICAgIGVudiBMQU5HPSRTRVNTSU9OX0xBTkcgJFNFU1NJT05fQ09NTUFORCAm CisrICAgIGZpCisrICAgIFBJRF9HTk9NRV9TRVNTSU9OPSQhCisrICAgIHNsZWVwIDMwCisrCisr ICAgIElCVVNfQVJHUz0iLS12ZXJib3NlIC0tcGFuZWwgZGlzYWJsZSIKKysgICAgIyBnbm9tZS1z aGVsbCA0MiBjaGVja3MgaWYgb3JnLmZyZWVkZXNrdG9wLklCdXMuc2Vzc2lvbi5HTk9NRS5zZXJ2 aWNlCisrICAgICMgc3lzdGVtZCBmaWxlIGlzIGF2YWlsYWJsZSB3aXRoIG9yZy5mcmVlZGVza3Rv cC5zeXN0ZW1kMS5NYW5hZ2VyLkdldFVuaXQKKysgICAgIyBELUJ1cyBtZXRob2QsIHdoaWNoIGlz IHByb3ZpZGVkIGJ5IElCdXMgMS41LjI2LCBhbmQgaWYgdGhlIGZpbGUKKysgICAgIyBpcyBhdmFp bGFibGUsIGdub21lLXNoZWxsIG5vIGxvbmdlciBsYXVuY2ggaWJ1cy1kYWVtb24KKysgICAgIyBi ZWNhdXNlIGdub21lLXNoZWxsIGFzc3VtZXMgZ25vbWUtc2Vzc2lvbiB3b3VsZCBsYXVuY2ggaWJ1 cy1kYWVtb24KKysgICAgIyB3aXRoIG9yZy5mcmVlZGVza3RvcC5zeXN0ZW1kMS5NYW5hZ2VyLlN0 YXJ0VW5pdCBELUJ1cyBtZXRob2QuCisrICAgICMgQnV0IGFjdHVhbGx5IGdub21lLXNlc3Npb24g ZmFpbGVkIHRvIGxhdW5jaCBpYnVzLWRhZW1vbgorKyAgICAjIGJlY2F1c2UgdGhlIElCdXMgc3lz dGVtZCBmaWxlIGRlcGVuZHMgb24gZ25vbWUtc2Vzc2lvbi50YXJnZXQKKysgICAgIyBidXQgdGhp cyBDSSBsYXVuY2hlcyBnbm9tZS1zZXNzaW9uIGRpcmVjdGx5LgorKyAgICAjCisrICAgICMgU28g aWJ1cy1kYW1lb24gaXMgbm93IGFsd2F5cyBjYWxsZWQgaGVyZSBhZnRlciBnbm9tZS1zaGVsbCBm YWlscyB0bworKyAgICAjIGxhdW5jaCBpYnVzLWRhZW1vbi4KKysgICAgIyBJdCBtYXkgYmUgYmV0 dGVyIHRoaXMgQ0kgbGF1bmNoZXMgR0RNIGF1dG9sb2dpbiB0byBydW4gZ25vbWUtc2Vzc2lvbgor KyAgICAjIHdpdGggZ25vbWUtc2Vzc2lvbi50YXJnZXQgc3lzdGVtZCBmaWxlLgorKyAgICAjIEJ1 dCBgc3lzdGVtY3RsIHN0YXJ0IGdkbWAgdGVybWluYXRlcyB0aGUgcGFyZW50IHNjcmlwdCBmb3Jj aWJseQorKyAgICAjIGFuZCB0aGUgc2NyaXB0IGNhbm5vdCBnZXQgdGhlIENJIHJlc3VsdC4KKysg ICAgaWYgdGVzdCAkVkVSQk9TRSAtZXEgMSA7IHRoZW4KKysgICAgICAgIGlidXMtZGFlbW9uICRJ QlVTX0FSR1MgJgorKyAgICBlbHNlCisrICAgICAgICBpYnVzLWRhZW1vbiAkSUJVU19BUkdTIC0t ZGFlbW9uaXplCisrICAgIGZpCisrICAgIHNsZWVwIDMKKysgICAgcHMgLWVmIHwgZ3JlcCBpYnVz CisrfQorKworKworK2NvdW50X2Nhc2VfcmVzdWx0KCkKKyt7CisrICAgIHJldHZhbD0kMQorKyAg ICBwYXNzPSQyCisrICAgIGZhaWw9JDMKKysKKysgICAgaWYgdGVzdCAkcmV0dmFsIC1lcSAgMCA7 IHRoZW4KKysgICAgICAgIHBhc3M9YGV4cHIgJHBhc3MgKyAxYAorKyAgICBlbHNlCisrICAgICAg ICBmYWlsPWBleHByICRmYWlsICsgMWAKKysgICAgZmkKKysgICAgZWNobyAkcGFzcyAkZmFpbAor K30KKysKKysKKytlY2hvX2Nhc2VfcmVzdWx0KCkKKyt7CisrICAgIHJldHZhbD0kMQorKyAgICB0 c3Q9JDIKKysgICAgc3VidHN0PSR7MzotJyd9CisrCisrICAgIGlmIHRlc3QgJHJldHZhbCAtZXEg IDAgOyB0aGVuCisrICAgICAgICBlY2hvICJQQVNTOiAkdHN0ICRzdWJ0c3QiID4+JFRFU1RfTE9H CisrICAgIGVsc2UKKysgICAgICAgIGVjaG8gIkZBSUw6ICR0c3QgJHN1YnRzdCIgPj4kVEVTVF9M T0cKKysgICAgZmkKKyt9CisrCisrCisrd2FpdF9mb3Jfc3lzdGVtZF9hdXRvc3RhcnQoKQorK3sK KysgICAgUFNfSUJVUz0icHMgLWVmIHwgZ3JlcCBpYnVzLWRlc2t0b3AtdGVzdGluZyB8IGdyZXAg YXV0b3N0YXJ0IHwgZ3JlcCAtdiBncmVwIgorKyAgICBpPTAKKysgICAgd2hpbGUgdGVzdCAxIDsg ZG8KKysgICAgICAgIFI9YGV2YWwgIiRQU19JQlVTImAKKysgICAgICAgIGlmIHRlc3QgeCIkUiIg IT0geCA7IHRoZW4KKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGZpCisrICAgICAgICBp ZiB0ZXN0ICRpIC1nZSAxMiA7IHRoZW4KKysgICAgICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVE fUZBSUwke05DfTogVGltZW91dCB0byBydW4gaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0 IgorKyAgICAgICAgICAgIHJldHVybgorKyAgICAgICAgZmkKKysgICAgICAgIGk9YGV4cHIgJGkg KyAxYAorKyAgICAgICAgc2xlZXAgNQorKyAgICBkb25lCisrICAgIHByaW50X2xvZyAtZSAiU3Rh cnQgaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0IgorKyAgICBpPTAKKysgICAgd2hpbGUg dGVzdCAxIDsgZG8KKysgICAgICAgIFI9YGV2YWwgIiRQU19JQlVTImAKKysgICAgICAgIGlmIHRl c3QgeCIkUiIgPSB4IDsgdGhlbgorKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgZmkKKysg ICAgICAgIGlmIHRlc3QgJGkgLWdlICRUSU1FT1VUIDsgdGhlbgorKyAgICAgICAgICAgIHByaW50 X2xvZyAtZSAiJHtSRUR9RkFJTCR7TkN9OiBUaW1lb3V0IHRvIGV4aXQgaWJ1cy1kZXNrdG9wLXRl c3RpbmctYXV0b3N0YXJ0IgorKyAgICAgICAgICAgIHJldHVybgorKyAgICAgICAgZmkKKysgICAg ICAgIGk9YGV4cHIgJGkgKyAxYAorKyAgICAgICAgc2xlZXAgNQorKyAgICBkb25lCisrICAgIHBy aW50X2xvZyAtZSAiRXhpdCBpYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQiCisrfQorKwor K3J1bl9kaXJlY3RfdGVzdF9jYXNlcygpCisreworKyAgICBwYXNzPTAKKysgICAgZmFpbD0wCisr ICAgIGZvciB0c3QgaW4gJFRFU1RTOyBkbworKyAgICAgICAgRU5WUz0KKysgICAgICAgIGlmIHRl c3QgLWYgJFNSQ0RJUi8ke3RzdH0uZW52IDsgdGhlbgorKyAgICAgICAgICAgIEVOVlM9ImBjYXQg JFNSQ0RJUi8ke3RzdH0uZW52YCIKKysgICAgICAgIGZpCisrICAgICAgICBpZiB0ZXN0IHgiJEVO VlMiID0geCA7IHRoZW4KKysgICAgICAgICAgICAkQlVJTERESVIvJHRzdCAkU1JDRElSIDI+PiRU RVNUX0xPRyAxPj4kVEVTVF9MT0cKKysgICAgICAgICAgICByZXR2YWw9JD8KKysgICAgICAgICAg ICByZWFkIHBhc3MgZmFpbCA8PCBFT0ZfQ09VTlQKKysgICAgICAgICAgICBgY291bnRfY2FzZV9y ZXN1bHQgJHJldHZhbCAkcGFzcyAkZmFpbGAKKytFT0ZfQ09VTlQKKysgICAgICAgICAgICBlY2hv X2Nhc2VfcmVzdWx0ICRyZXR2YWwgJHRzdAorKyAgICAgICAgICAgIENBQ0hFX0ZJTEVTPWBscyAq LmNhY2hlYAorKyAgICAgICAgICAgIGlmIFsgeCIkQ0FDSEVfRklMRVMiICE9IHggXSA7IHRoZW4K KysgICAgICAgICAgICAgICAgZWNobyAiIyBDbGVhbiAkQ0FDSEVfRklMRVMiID4+JFRFU1RfTE9H CisrICAgICAgICAgICAgICAgIHJtICRDQUNIRV9GSUxFUworKyAgICAgICAgICAgIGZpCisrICAg ICAgICBlbHNlCisrICAgICAgICAgICAgaT0xCisrICAgICAgICAgICAgIyBEZWxldGVkIGZvciB2 YXIgaW4gIiRFTlZTIiBiZWNhdXNlIElGUz0kJ1xuJyBpcyBub3Qgc3VwcG9ydGVkCisrICAgICAg ICAgICAgIyBpbiBQT1NJWCBzaAorKyAgICAgICAgICAgIHdoaWxlIHJlYWQgZSA7IGRvCisrICAg ICAgICAgICAgICAgIGZpcnN0PWBlY2hvICIkZSIgfCBncmVwICdeIydgCisrICAgICAgICAgICAg ICAgIGlmIHRlc3QgeCIkZmlyc3QiID0geCIjIiA7IHRoZW4KKysgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlCisrICAgICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgICAgIGVjaG8gIiMg U3RhcnRpbmcgJGUgJEJVSUxERElSLyR0c3QgJFNSQ0RJUiIgPj4kVEVTVF9MT0cKKysgICAgICAg ICAgICAgICAgZW52ICRlICRCVUlMRERJUi8kdHN0ICRTUkNESVIgMj4+JFRFU1RfTE9HIDE+PiRU RVNUX0xPRworKyAgICAgICAgICAgICAgICByZXR2YWw9JD8KKysgICAgICAgICAgICAgICAgZWNo byAiIyBGaW5pc2hlZCAkZSAkQlVJTERESVIvJHRzdCAkU1JDRElSIHdpdGggJHJldHZhbCIgPj4k VEVTVF9MT0cKKysgICAgICAgICAgICAgICAgcmVhZCBwYXNzIGZhaWwgPDwgRU9GX0NPVU5UCisr ICAgICAgICAgICAgICAgIGBjb3VudF9jYXNlX3Jlc3VsdCAkcmV0dmFsICRwYXNzICRmYWlsYAor K0VPRl9DT1VOVAorKyAgICAgICAgICAgICAgICBlY2hvX2Nhc2VfcmVzdWx0ICRyZXR2YWwgJHRz dCAkZQorKyAgICAgICAgICAgICAgICBDQUNIRV9GSUxFUz1gbHMgKi5jYWNoZWAKKysgICAgICAg ICAgICAgICAgaWYgWyB4IiRDQUNIRV9GSUxFUyIgIT0geCBdIDsgdGhlbgorKyAgICAgICAgICAg ICAgICAgICAgZWNobyAiIyBDbGVhbiAkQ0FDSEVfRklMRVMiID4+JFRFU1RfTE9HCisrICAgICAg ICAgICAgICAgICAgICBybSAkQ0FDSEVfRklMRVMKKysgICAgICAgICAgICAgICAgZmkKKysgICAg ICAgICAgICAgICAgaT1gZXhwciAkaSArIDFgCisrICAgICAgICAgICAgZG9uZSA8PCBFT0ZfRU5W UworKyAgICAgICAgICAgIGBlY2hvICIkRU5WUyJgCisrRU9GX0VOVlMKKysgICAgICAgIGZpCisr ICAgIGRvbmUKKysgICAgZWNobyAkcGFzcyAkZmFpbAorK30KKysKKysKKytydW5fZ25vbWVfZGVz a3RvcF90ZXN0aW5nX3J1bm5lcigpCisreworKyAgICBwYXNzPTAKKysgICAgZmFpbD0wCisrICAg IGlmIFsgeCIkVEVTVFMiID0geCBdIDsgdGhlbgorKyAgICAgICAgVEVTVFM9J2lidXMnCisrICAg IGZpCisrICAgIGlmIGVjaG8gJFBST0dOQU1FIHwgZ3JlcCAtcSBhdXRvc3RhcnQgOyB0aGVuCisr ICAgICAgICBleHBvcnQgSUJVU19EQUVNT05fV0lUSF9TWVNURU1EPTEKKysgICAgZmkKKysgICAg Zm9yIHRzdCBpbiAkVEVTVFM7IGRvCisrICAgICAgICB0c3RfZGlyPSIkVEVTVF9DQVNFX0RJUi8k dHN0IgorKyAgICAgICAgaWYgWyAhIC1kICIkdHN0X2RpciIgXSA7IHRoZW4KKysgICAgICAgICAg ICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogTm90IGZvdW5kICV0c3RfZGlyIgorKyAg ICAgICAgICAgIGZhaWw9MQorKyAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICBmaQorKyAg ICAgICAgZ25vbWUtZGVza3RvcC10ZXN0aW5nLXJ1bm5lciAtLXRpbWVvdXQ9JFRJTUVPVVQgJHRz dCBcCisrICAgICAgICAgICAgICAgIDI+PiRURVNUX0xPRyAxPj4kVEVTVF9MT0cKKysgICAgICAg IHJldHZhbD0kPworKyAgICAgICAgcmVhZCBwYXNzIGZhaWwgPDwgRU9GCisrICAgICAgICBgY291 bnRfY2FzZV9yZXN1bHQgJHJldHZhbCAkcGFzcyAkZmFpbGAKKytFT0YKKysgICAgZG9uZQorKyAg ICBjaGlsZF9wYXNzPWBncmVwICdeUEFTUzonICRURVNUX0xPRyB8IHdjIC1sYAorKyAgICBjaGls ZF9mYWlsPWBncmVwICdeRkFJTDonICRURVNUX0xPRyB8IHdjIC1sYAorKyAgICBpZiBbICRjaGls ZF9wYXNzIC1uZSAwIF0gfHwgWyAkY2hpbGRfZmFpbCAtbmUgMCBdIDsgdGhlbgorKyAgICAgICAg cGFzcz0kY2hpbGRfcGFzcworKyAgICAgICAgaWYgWyAkY2hpbGRfZmFpbCAtbmUgMCBdIDsgdGhl bgorKyAgICAgICAgICAgIGZhaWw9YGV4cHIgJGNoaWxkX2ZhaWwgLyAyYAorKyAgICAgICAgZWxz ZQorKyAgICAgICAgICAgIGZhaWw9MAorKyAgICAgICAgZmkKKysgICAgZmkKKysgICAgZWNobyAk cGFzcyAkZmFpbAorK30KKysKKysKKytydW5fdGVzdF9zdWl0ZSgpCisreworKyAgICBwcmludF9s b2cgLWUgIlN0YXJ0IHRlc3Qgc3VpdGUgYGRhdGUgJyslRiAlSDolTTolUzolTidgIgorKyAgICBp ZiBlY2hvICRQUk9HTkFNRSB8IGdyZXAgLXEgcnVubmVyIDsgdGhlbgorKyAgICAgICAgaWYgWyAk RU5BQkxFRF9TWVNURU1EIC1lcSAxIF0gJiYgWyAgJFNFU1NJT05fSVNfR05PTUUgLWVxIDEgXSA7 IHRoZW4KKysgICAgICAgICAgICB3YWl0X2Zvcl9zeXN0ZW1kX2F1dG9zdGFydAorKyAgICAgICAg ICAgIHJldHVybgorKyAgICAgICAgZmkKKysgICAgICAgIGlmIHBzIC1lZiB8IGdyZXAgWCB8IGdy ZXAgLXEgd2F5bGFuZCA7IHRoZW4KKysgICAgICAgICAgICAjIEV4cGVjdCBHVEtfSU1fTU9EVUxF PXdheWxhbmQgYnkgZGVmYXVsdAorKyAgICAgICAgICAgIDoKKysgICAgICAgIGVsc2UKKysgICAg ICAgICAgICBleHBvcnQgR1RLX0lNX01PRFVMRT1pYnVzCisrICAgICAgICBmaQorKyAgICBlbHNl CisrICAgICAgICBpZiB0ZXN0IHgiJFhER19TRVNTSU9OX1RZUEUiID0geHdheWxhbmQgOyB0aGVu CisrICAgICAgICAgICAgOgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGV4cG9ydCBHVEtf SU1fTU9EVUxFPWlidXMKKysgICAgICAgIGZpCisrICAgIGZpCisrICAgIHBhc3M9MAorKyAgICBm YWlsPTAKKysgICAgZXhwb3J0IElCVVNfQ09NUE9TRV9DQUNIRV9ESVI9JFBXRAorKyAgICBpZiB0 ZXN0IHgiJFRFU1RJTkdfUlVOTkVSIiA9IHggOyB0aGVuCisrICAgICAgICByZXR1cm4KKysgICAg ZmkKKysgICAgY2FzZSAkVEVTVElOR19SVU5ORVIgaW4KKysgICAgZGVmYXVsdCkKKysgICAgICAg ICMgR2V0IG9ubHkgdGhlIGxhc3QgdmFsdWUgd2l0aCBkby13aGlsZS4KKysgICAgICAgIHJlYWQg cGFzcyBmYWlsIDw8IEVPRl9SVU5ORVIKKysgICAgICAgIGBydW5fZGlyZWN0X3Rlc3RfY2FzZXNg CisrRU9GX1JVTk5FUgorKyAgICAgICAgOzsKKysgICAgZ25vbWUpCisrICAgICAgICByZWFkIHBh c3MgZmFpbCA8PCBFT0ZfUlVOTkVSCisrICAgICAgICBgcnVuX2dub21lX2Rlc2t0b3BfdGVzdGlu Z19ydW5uZXJgCisrRU9GX1JVTk5FUgorKyAgICAgICAgOzsKKysgICAgZXNhYworKyAgICBlY2hv ICIiCisrICAgIHByaW50X2xvZyAtZSAiRW5kIHRlc3Qgc3VpdGUgYGRhdGUgJyslRiAlSDolTTol UzolTidgIgorKyAgICAjIEZlZG9yYSBDSSBhc3N1bWVzIHRoZSB0ZXN0IGlzIGZhaWxlZCBldmVu IGlmICRmYWlsIGlzIDAuCisrICAgIGlmIFsgJHBhc3MgLW5lIDAgXSA7IHRoZW4KKysgICAgICAg IHByaW50X2xvZyAtZSAiJHtHUkVFTn1QQVNTJHtOQ306ICRwYXNzIgorKyAgICBmaQorKyAgICBp ZiBbICRmYWlsIC1uZSAwIF0gOyB0aGVuCisrICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZB SUwke05DfTogJGZhaWwiCisrICAgIGZpCisrfQorKworKworK2Zpbml0KCkKKyt7CisrICAgIGlm IHRlc3QgJFBJRF9YT1JHIC1uZSAwIDsgdGhlbgorKyAgICAgICAgZWNobyAiIyBLaWxsaW5nIGxl ZnQgZ25vbWUtc2Vzc2lvbiBhbmQgWG9yZyIKKysgICAgICAgIGtpbGwgJFBJRF9HTk9NRV9TRVNT SU9OICRQSURfWE9SRworKyAgICAgICAgaWJ1cyBleGl0CisrICAgICAgICBTVVNFUj1gZWNobyAi JFVTRVIiIHwgY3V0IC1jIDEtN2AKKysgICAgICAgIExFRlRfQ0FMRU5EQVI9YHBzIC1lZiB8IGdy ZXAgZ25vbWUtc2hlbGwtY2FsZW5kYXItc2VydmVyIHwgZ3JlcCAkU1VTRVIgfCBncmVwIC12IGdy ZXBgCisrICAgICAgICBpZiB0ZXN0IHgiJExFRlRfQ0FMRU5EQVIiICE9IHggOyB0aGVuCisrICAg ICAgICAgICAgZWNobyAiIyBLaWxsaW5nIGxlZnQgZ25vbWUtc2hlbGwtY2FsZW5kYXItc2VydmVy IgorKyAgICAgICAgICAgIGVjaG8gIiRMRUZUX0NBTEVOREFSIgorKyAgICAgICAgICAgIGVjaG8g IiRMRUZUX0NBTEVOREFSIiB8IGF3ayAne3ByaW50ICQyfScgfCB4YXJncyBraWxsCisrICAgICAg ICBmaQorKyAgICBmaQorKyAgICBpZiBlY2hvICRQUk9HTkFNRSB8IGdyZXAgLXEgcnVubmVyIDsg dGhlbgorKyAgICAgICAgaWYgWyAkRU5BQkxFRF9TWVNURU1EIC1lcSAxIF0gJiYgWyAgJFNFU1NJ T05fSVNfR05PTUUgLWVxIDEgXSA7IHRoZW4KKysgICAgICAgICAgICBvcGVyYXRlX2Rlc2t0b3Bf d2l0aF9zeXN0ZW1kICJzdG9wIgorKyAgICAgICAgZmkKKysgICAgZmkKKysKKysgICAgZWNobyAi IgorKyAgICBpZiB0ZXN0IC1mICRURVNUX0xPRyA7IHRoZW4KKysgICAgICAgIGlmIFsgJFRFU1Rf TE9HX1NURE9VVCAtZXEgMSBdIDsgdGhlbgorKyAgICAgICAgICAgIGNhdCAkVEVTVF9MT0cKKysg ICAgICAgIGVsc2UKKysgICAgICAgICAgICBlY2hvICIjIFNlZSAkVEVTVF9MT0ciCisrICAgICAg ICBmaQorKyAgICBmaQorKyAgICBlY2hvICIjIEZpbmlzaGVkICRQUk9HTkFNRSB0ZXN0aW5nIgor K30KK2RpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyLmlu IGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbgoraW5kZXggMWFjMmRm YzguLjFkODJiYzc2IDEwMDc1NQorLS0tIGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5n LXJ1bm5lci5pbgorKysrIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5p bgorQEAgLTQsNyArNCw3IEBACisgIworICMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAjCistIyBD b3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KKysjIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFRha2FvIEZ1aml3YXJhIDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorICMgQ29weXJpZ2h0IChjKSAyMDE4IFJlZCBIYXQsIElu Yy4KKyAjCisgIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorQEAgLTIyLDU4ICsyMiwzOSBAQAorICMgNTEgRnJhbmts aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQS4KKyAKKyAj IFRoaXMgdGVzdCBydW5zIC91c3IvYmluL2lidXMtZGFlbW9uIGFmdGVyIGluc3RhbGwgaWJ1cwor LSMKKy0jICMgaW5pdCAzCistIyBMb2dpbiBhcyByb290CistIyAjIC9yb290L2lidXMvdGVzdHMv dGVzdC1jb25zb2xlLnNoIC0tdGVzdHMgaWJ1cy1jb21wb3NlIFwKKy0jICAgLS1idWlsZGRpciAv cm9vdC9pYnVzL3NyYy90ZXN0cyAtLXNyY2RpciAvcm9vdC9pYnVzL3NyYy90ZXN0cworLQorLSMg UE9TSVggc2ggaGFzIG5vICdlY2hvIC1lJworLTogJHtFQ0hPOj0nL3Vzci9iaW4vZWNobyd9Cist IyBQT1NJWCBzaCBoYXMgJFVJRAorLSMgREFTSCBzYXZlcyB0aGUgZ3JhdmVzIGluICdgYCcgYXMg Y2hhcmFjdGVycyBub3QgdG8gYmUgZXh0cmFjdGVkCistOiAke1VJRDo9YGlkIC11YH0KKyAKKyAK KyBQUk9HTkFNRT1gYmFzZW5hbWUgJDBgCistVkVSU0lPTj0wLjMKKy1ESVNQTEFZPTo5OS4wCist QlVJTERESVI9Ii4iCistU1JDRElSPSIuIgorK1RFU1RfQ0FTRV9ESVI9IkBJTlNUQUxMRURESVJA IgorK01PRFVMRV9TSD0naWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxlJworK01PRFVMRV9TSF9Q QVRIPSJATElCRVhFQ0RJUkAvJE1PRFVMRV9TSCIKKytBVVRPU1RBUlRfREVTS1RPUF9ESVI9IkBE QVRBRElSQC9pYnVzL3Rlc3RzIgorIFRFU1RfTE9HPSJ0ZXN0LXN1aXRlLmxvZyIKKy1URVNUX0xP R19TVERPVVQ9MAorLVJFU1VMVF9MT0c9IiIKKy1TQ1JFRU5fTE9HPSIiCistSEFWRV9HUkFQSElD Uz0xCistVkVSQk9TRT0wCistREVTS1RPUF9DT01NQU5EPSJkYnVzLWxhdW5jaCAtLWV4aXQtd2l0 aC1zZXNzaW9uIGdub21lLXNlc3Npb24iCistUElEX1hPUkc9MAorLVBJRF9HTk9NRV9TRVNTSU9O PTAKKyBURVNUSU5HX1JVTk5FUj0iZGVmYXVsdCIKKy1URVNUUz0iIgorLVRJTUVPVVQ9MzAwCist R1JFRU49J1wwMzNbMDszMm0nCistUkVEPSdcMDMzWzA7MzFtJworLU5DPSdcMDMzWzBtJworIAor IAorLXByaW50X2xvZygpCisteworLSAgICBpZiBbIHgiJFJFU1VMVF9MT0ciICE9IHggXSA7IHRo ZW4KKy0gICAgICAgICMgYXZvaWQgJ2VjaG8gLWUnIGJlZm9yZSBjYWxsICdzZWQnLgorLSAgICAg ICAgaWYgWyB4IiQxIiA9IHgnLWUnIF0gOyB0aGVuCistICAgICAgICAgICAgc2hpZnQKKy0gICAg ICAgIGZpCistICAgICAgICBOT19FU0NBUEU9YGVjaG8gIiRAIiB8IHNlZCAtZSAncy9cXFwwMzNc XFswOzMubS8vZycgLWUgJ3MvXFxcMDMzXFxbMG0vL2cnYAorLSAgICAgICAgJEVDSE8gJE5PX0VT Q0FQRSA+PiAkUkVTVUxUX0xPRworLSAgICBlbHNlCistICAgICAgICAkRUNITyAiJEAiCistICAg IGZpCistfQorK2lmIHRlc3QgLWYgJE1PRFVMRV9TSF9QQVRIIDsgdGhlbgorKyAgLiAkTU9EVUxF X1NIX1BBVEgKKytlbGlmIHRlc3QgLWYgJChkaXJuYW1lICQwKS8kTU9EVUxFX1NIIDsgdGhlbgor KyAgLiAkKGRpcm5hbWUgJDApLyRNT0RVTEVfU0gKKytlbHNlCisrICBlY2hvICJOb3QgZm91bmQg JE1PRFVMRV9TSCIKKysgIGV4aXQgMQorK2ZpCisgCisgCisgdXNhZ2UoKQorIHsKKysgICAgY29t bWFuZD0iIgorKyAgICBmb3IgZWxlbWVudCBpbiAkU0VTU0lPTl9DT01NQU5EOyBkbworKyAgICAg ICAgaWYgdGVzdCB4IiRlbGVtZW50IiA9IHg7IHRoZW4KKysgICAgICAgICAgICBjb250aW51ZQor KyAgICAgICAgZmkKKysgICAgICAgIGlmIGVjaG8gIiRlbGVtZW50IiB8IGdyZXAgLXEgLUUgIl4t IiA7IHRoZW4KKysgICAgICAgICAgICBjb250aW51ZQorKyAgICAgICAgZmkKKysgICAgICAgIGNv bW1hbmQ9IiRlbGVtZW50IgorKyAgICBkb25lCisgICAgICRFQ0hPIC1lIFwKKyAiVGhpcyB0ZXN0 IHJ1bnMgL3Vzci9iaW4vaWJ1cy1kYWVtb24gYWZ0ZXIgaW5zdGFsbCBpYnVzXG4iICAgICAgICAg ICAgICAgICAgICAgXAorICIkUFJPR05BTUUgW09QVElPTlPigKZdXG4iICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK0BAIC04Myw0MjkgKzY0 LDM3IEBAIHVzYWdlKCkKKyAiLXYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgU2hvdyB2 ZXJzaW9uXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICItYiwgLS1idWlsZGRp cj1CVUlMRERJUiAgICAgICAgICBTZXQgdGhlIEJVSUxERElSXG4iICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgIi1zLCAtLXNyY2Rpcj1TT1VSQ0VESVIgICAgICAgICAgIFNldCB0aGUgU09V UkNFRElSXG4iICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0iLWMsIC0tbm8tZ3JhcGhpY3Mg ICAgICAgICAgICAgICAgVXNlIFh2ZmIgaW5zdGVhZCBvZiBYb3JnXG4iICAgICAgICAgICAgICAg ICAgXAorKyItYywgLS1uby1ncmFwaGljcyAgICAgICAgICAgICAgICBVc2UgWHZmYiBpbnN0ZWFk IG9mIFhvcmcgb3IgV2F5bGFuZFxuIiAgICAgICBcCisgIi1WLCAtLXZlcmJvc2UgICAgICAgICAg ICAgICAgICAgIFZlcmJvc2UgbG9nIGZvciBpYnVzLWRhZW1vblxuIiAgICAgICAgICAgICAgIFwK Ky0iLWQsIC0tZGVza3RvcD1ERVNLVE9QICAgICAgICAgICAgUnVuIERFU1RLVE9QLiBUaGUgZGVm YXVsdCBpcyBnbm9tZS1zZXNzaW9uLlxuIiBcCistIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN1ZmZpeCAnLXdpdGgtZGJ1cycgY2FuIHJ1biBERVNLVE9QIHdpdGggZGJ1cyBzZXNz aW9uLiIgXAorLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFLmcuIC0tZGVza3Rv cD1tdXR0ZXItd2l0aC1kYnVzIiAgICAgICAgICAgICBcCisrIi1kLCAtLXNlc3Npb249U0VTU0lP TiAgICAgICAgICAgIFJ1biBTRVNTSU9OLiBUaGUgZGVmYXVsdCBpcyAke2NvbW1hbmR9LlxuIiAg IFwKKysiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VmZml4ICctd2l0aC1kYnVz JyBjYW4gcnVuIFNFU1NJT04gd2l0aCBkYnVzIHNlc3Npb24uXG4iIFwKKysiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRS5nLiAtLXNlc3Npb249JHtjb21tYW5kfS13aXRoLWRidXNc biIgICAgICAgXAorKyItbCwgLS1sYW5nPUxBTkcgICAgICAgICAgICAgICAgICBSdW4gU0VTU0lP TiB3aXRoIExBTkdcbiIgICAgICAgICAgICAgICAgICAgICBcCisgIi10LCAtLXRlc3RzPVwiVEVT VFMuLi5cIiAgICAgICAgICAgUnVuIFRFU1RTIHByb2dyYW1zIHdoaWNoIGlzIHNlcGFyYXRlZCBi eSBzcGFjZVxuIiBcCisgIi1yLCAtLXJ1bm5lcj1SVU5ORVIgICAgICAgICAgICAgIFJ1biBURVNU UyBwcm9ncmFtcyB3aXRoIGEgdGVzdCBSVU5ORVIuXG4iICAgIFwKKy0iICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUlVOTkRFUiA9IGdub21lIG9yIGRlZmF1bHQuXG4iICAgICAgICAg ICAgICAgXAorLSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IGlzIGFu IGVtYmVkZGVkIHJ1bm5lci5cbiIgICAgICAgICAgICBcCisrIiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJVTk5ERVIgPSAnZ25vbWUnIG9yICdkZWZhdWx0Jy5cbiIgICAgICAgICAg IFwKKysiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQnIGlzIGFuIGVt YmVkZGVkIHJ1bm5lci5cbiIgICAgICAgICAgXAorKyItaSwgLS1uby1zeXN0ZW1kICAgICAgICAg ICAgICAgICBSdW4gZ25vbWUtc2Vlc2lvbiBkaXJlY3RseSB3aXRob291dCBzeXN0ZW1kXG4iIFwK KysiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxvZ2luIG1hbmFnZXIgZm9y IGxlZ2FjeSBHTk9NRSBhbmQgdGhpc1xuIiBcCisrIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBXYXlsYW5kLlxuIiBcCisgIi1ULCAtLXRpbWVv dXQ9VElNRU9VVCAgICAgICAgICAgIFNldCB0aW1lb3V0IChkZWZhdWx0IFRJTUVPVVQgaXMgMzAw IHNlYykuXG4iIFwKKy0iLW8sIC0tb3V0cHV0PU9VVFBVVF9GSUxFICAgICAgICAgT1V0cHV0IHRo ZSBsb2cgdG8gT1VUUFVUX0ZJTEVcbiIgICAgICAgICAgICAgXAorLSItTywgLS1yZXN1bHQ9UkVT VUxUX0ZJTEUgICAgICAgICBPVXRwdXQgdGhlIHJlc3VsdCB0byBSRVNVTFRfRklMRVxuIiAgICAg ICAgICBcCistIi1TLCAtLXNjcmVlbmR1bXA9RFVNUF9GSUxFICAgICAgIE9VdHB1dCB0aGUgc2Ny ZWVuIHRvIERVTVBfRklMRSAoJ1NURE9VVCcgY2FuIGJlIHN0ZG91dClcbiIgXAorKyItbywgLS1v dXRwdXQ9T1VUUFVUX0ZJTEUgICAgICAgICBPdXRwdXQgdGhlIGxvZyB0byBPVVRQVVRfRklMRVxu IiAgICAgICAgICAgICBcCisrIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1 bHQgaXMgJFRFU1RfTE9HXG4iICAgICAgICAgICAgICAgICAgICAgIFwKKysiLU8sIC0tcmVzdWx0 PVJFU1VMVF9GSUxFICAgICAgICAgT3V0cHV0IHRoZSByZXN1bHQgdG8gUkVTVUxUX0ZJTEVcbiIg ICAgICAgICAgXAorKyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IGlz IHN0ZG91dFxuIiAgICAgICAgICAgICAgICAgICAgICAgICBcCisrIi1TLCAtLXNjcmVlbmR1bXA9 RFVNUF9GSUxFICAgICAgIE91dHB1dCB0aGUgc2NyZWVuIHRvIERVTVBfRklMRSAoJ1NURE9VVCcg Y2FuIGJlIHN0ZG91dClcbiIgXAorKyItRCwgLS1kZWxldGUtdGVzdHMgICAgICAgICAgICAgICBE ZWxldGUgdGVzdCBlbnZpcm9tZW50cyBhbmQgdXNlciAkVEVTVF9VU0VSXG4iIFwKKyAiIgorIH0K KyAKKyAKKy1wYXJzZV9hcmdzKCkKKy17CistICAgICMgVGhpcyBpcyBHTlUgZ2V0b3B0LiAic3Vk byBwb3J0IGdldG9wdCIgaW4gQlNEPworLSAgICBBUkdTPWBnZXRvcHQgLW8gaHZiOnM6Y1ZkOnQ6 cjpUOm86TzpTOiAtLWxvbmcgXAorLSAgICAgICAgICBoZWxwLHZlcnNpb24sYnVpbGRkaXI6LHNy Y2Rpcjosbm8tZ3JhcGhpY3MsdmVyYm9zZSxkZXNrdG9wOix0ZXN0czoscnVubmVyOix0aW1lb3V0 OixvdXRwdXQ6LHJlc3VsdDosc2NyZWVuZHVtcDpcCistICAgICAgICAtLSAiJEAiYDsKKy0gICAg ZXZhbCBzZXQgLS0gIiRBUkdTIgorLSAgICB3aGlsZSBbIDEgXSA7IGRvCistICAgICAgICBjYXNl ICIkMSIgaW4KKy0gICAgICAgIC1oIHwgLS1oZWxwICkgICAgICAgIHVzYWdlOyBleGl0IDA7Owor LSAgICAgICAgLXYgfCAtLXZlcnNpb24gKSAgICAgJEVDSE8gLWUgIiRWRVJTSU9OIjsgZXhpdCAw OzsKKy0gICAgICAgIC1iIHwgLS1idWlsZGRpciApICAgIEJVSUxERElSPSIkMiI7IHNoaWZ0IDI7 OworLSAgICAgICAgLXMgfCAtLXNyY2RpciApICAgICAgU1JDRElSPSIkMiI7IHNoaWZ0IDI7Owor LSAgICAgICAgLWMgfCAtLW5vLWdyYXBoaWNzICkgSEFWRV9HUkFQSElDUz0wOyBzaGlmdDs7Cist ICAgICAgICAtViB8IC0tdmVyYm9zZSApICAgICBWRVJCT1NFPTE7IHNoaWZ0OzsKKy0gICAgICAg IC1kIHwgLS1kZXNrdG9wICkgICAgIERFU0tUT1BfQ09NTUFORD0iJDIiOyBzaGlmdCAyOzsKKy0g ICAgICAgIC10IHwgLS10ZXN0cyApICAgICAgIFRFU1RTPSIkMiI7IHNoaWZ0IDI7OworLSAgICAg ICAgLXIgfCAtLXJ1bm5lciApICAgICAgVEVTVElOR19SVU5ORVI9IiQyIjsgc2hpZnQgMjs7Cist ICAgICAgICAtVCB8IC0tdGltZW91dCApICAgICBUSU1FT1VUPSIkMiI7IHNoaWZ0IDI7OworLSAg ICAgICAgLW8gfCAtLW91dHB1dCApICAgICAgVEVTVF9MT0c9IiQyIjsgc2hpZnQgMjs7CistICAg ICAgICAtTyB8IC0tcmVzdWx0ICkgICAgICBSRVNVTFRfTE9HPSIkMiI7IHNoaWZ0IDI7OworLSAg ICAgICAgLVMgfCAtLXNjcmVlbmR1bXAgKSAgU0NSRUVOX0xPRz0iJDIiOyBzaGlmdCAyOzsKKy0g ICAgICAgIC0tICkgICAgICAgICAgICAgICAgIHNoaWZ0OyBicmVhazs7CistICAgICAgICAqICkg ICAgICAgICAgICAgICAgICB1c2FnZTsgZXhpdCAxOzsKKy0gICAgICAgIGVzYWMKKy0gICAgZG9u ZQorLSAgICBETD0nJCcKKy0gICAgZWNobyAiJERFU0tUT1BfQ09NTUFORCIgfCBncmVwICJcLXdp dGhcLWRidXMkREwiID4gL2Rldi9udWxsCistICAgIEhBU19EQlVTX1NVRkZJWD0kPworLSAgICBp ZiBbICRIQVNfREJVU19TVUZGSVggLWVxIDAgXSA7IHRoZW4KKy0gICAgICAgIERFU0tUT1BfQ09N TUFORD1gZWNobyAiJERFU0tUT1BfQ09NTUFORCIgfCBzZWQgLWUgJ3MvLXdpdGgtZGJ1cyQvLydg CistICAgICAgICBERVNLVE9QX0NPTU1BTkQ9ImRidXMtbGF1bmNoIC0tZXhpdC13aXRoLXNlc3Np b24gJERFU0tUT1BfQ09NTUFORCIKKy0gICAgZmkKKy19CistCistCistaW5pdF9kZXNrdG9wKCkK Ky17CistICAgIGlmIFsgIiRSRVNVTFRfTE9HIiAhPSAiIiBdIDsgdGhlbgorLSAgICAgICAgaWYg WyAtZiAkUkVTVUxUX0xPRyBdIDsgdGhlbgorLSAgICAgICAgICAgIHJtICRSRVNVTFRfTE9HCist ICAgICAgICBmaQorLSAgICBmaQorLSAgICBlY2hvICIkVEVTVF9MT0ciIHwgZ3JlcCAnOnN0ZG91 dCcgPiAvZGV2L251bGwKKy0gICAgSEFTX1NURE9VVD0kPworLSAgICBpZiBbICRIQVNfU1RET1VU IC1lcSAwIF0gOyB0aGVuCistICAgICAgICBURVNUX0xPRz1gZWNobyAiJFRFU1RfTE9HIiB8IHNl ZCAtZSAnc3w6c3Rkb3V0fHwnYAorLSAgICAgICAgVEVTVF9MT0dfU1RET1VUPTEKKy0gICAgZmkK Ky0gICAgaWYgWyAiJFRFU1RfTE9HIiA9ICIiIF0gOyB0aGVuCistICAgICAgICBwcmludF9sb2cg LWUgIiR7UkVEfUZBSUwke05DfTogJHtSRUR9RVJST1Ike05DfTogYSBsb2cgZmlsZSBpcyByZXF1 aXJlZCB0byBnZXQgcmV0dXJuIHZhbHVlIHdpdGggJ3JlYWQnIGNvbW1hbmQiCistICAgICAgICBl eGl0IDI1NQorLSAgICBlbGlmIFsgLWYgJFRFU1RfTE9HIF0gOyB0aGVuCistICAgICAgICBybSAk VEVTVF9MT0cKKy0gICAgZmkKKy0gICAgaWYgWyB4JEZPUkNFX1RFU1QgIT0geCBdIDsgdGhlbgor LSAgICAgICAgUlVOX0FSR1M9IiRSVU5fQVJHUyAtLWZvcmNlIgorLSAgICBmaQorLQorLSAgICBp ZiBbICEgLWYgJEhPTUUvLmNvbmZpZy9nbm9tZS1pbml0aWFsLXNldHVwLWRvbmUgXSA7IHRoZW4K Ky0gICAgICAgIElTX1NZU1RFTV9BQ0NPVU5UPWZhbHNlCistICAgICAgICBpZiBbICIkVVNFUiIg PSAicm9vdCIgXSA7IHRoZW4KKy0gICAgICAgICAgICBJU19TWVNURU1fQUNDT1VOVD10cnVlCist ICAgICAgICBmaQorLSAgICAgICAgaWYgdGVzdCAhIC1mIC92YXIvbGliL0FjY291bnRzU2Vydmlj ZS91c2Vycy8kVVNFUiA7IHRoZW4KKy0gICAgICAgICAgICBta2RpciAtcCAvdmFyL2xpYi9BY2Nv dW50c1NlcnZpY2UvdXNlcnMKKy0gICAgICAgICAgICBjYXQgPj4gL3Zhci9saWIvQWNjb3VudHNT ZXJ2aWNlL3VzZXJzLyRVU0VSIDw8IF9FT0YKKy1bVXNlcl0KKy1MYW5ndWFnZT1qYV9KUC5VVEYt OAorLVhTZXNzaW9uPWdub21lCistU3lzdGVtQWNjb3VudD0kSVNfU1lTVEVNX0FDQ09VTlQKKy1f RU9GCistICAgICAgICBmaQorLSAgICAgICAgbWtkaXIgLXAgJEhPTUUvLmNvbmZpZworLSAgICAg ICAgdG91Y2ggJEhPTUUvLmNvbmZpZy9nbm9tZS1pbml0aWFsLXNldHVwLWRvbmUKKy0gICAgZmkK Ky0KKy0gICAgIyBQcmV2ZW50IGZyb20gbGF1bmNoaW5nIGEgWERHIGRpYWxvZworLSAgICBYREdf TE9DQUxFX0ZJTEU9IiRIT01FLy5jb25maWcvdXNlci1kaXJzLmxvY2FsZSIKKy0gICAgaWYgWyAt ZiAkWERHX0xPQ0FMRV9GSUxFIF0gOyB0aGVuCistICAgICAgICBYREdfTEFOR19PUklHPWBjYXQg JFhER19MT0NBTEVfRklMRWAKKy0gICAgICAgIFhER19MQU5HX05FVz1gZWNobyAkTEFORyB8IHNl ZCAtZSAncy9cKC4qXClcLi4qL1wxLydgCistICAgICAgICBpZiBbICIkWERHX0xBTkdfT1JJRyIg IT0gIiRYREdfTEFOR19ORVciIF0gOyB0aGVuCistICAgICAgICAgICAgZWNobyAiIyBPdmVycmlk aW5nIFhERyBsb2NhbGUgJFhER19MQU5HX09SSUcgd2l0aCAkWERHX0xBTkdfTkVXIgorLSAgICAg ICAgICAgIGVjaG8gIiRYREdfTEFOR19ORVciID4gJFhER19MT0NBTEVfRklMRQorLSAgICAgICAg ZmkKKy0gICAgZmkKKy0gICAgIyBgc3VgIGNvbW1hbmQgZG9lcyBub3QgcnVuIGxvZ2luY3RsCist ICAgIGV4cG9ydCBYREdfU0VTU0lPTl9UWVBFPSd4MTEnCistICAgIGV4cG9ydCBYREdfU0VTU0lP Tl9DTEFTUz11c2VyCistICAgICMgYHN1YCBjb21tYW5kIGRvZXMgbm90IGdldCBmb2N1cyBpbiBl dmVudHMgd2l0aG91dCB0aGlzIHZhcmlhYmxlLgorLSAgICAjIE5lZWQgdG8gcmVzdGFydCBzc2hk IGFmdGVyIHNldCAiUGVybWl0Um9vdExvZ2luIHllcyIgaW4gc3NoZF9jb25maWcKKy0gICAgaWYg WyAieCRYREdfUlVOVElNRV9ESVIiID0geCBdIDsgdGhlbgorLSAgICAgICAgZXhwb3J0IFhER19S VU5USU1FX0RJUj0iL3J1bi91c2VyLyRVSUQiCistICAgICAgICBpc19yb290X2xvZ2luPWBncmVw ICJeUGVybWl0Um9vdExvZ2luIiAvZXRjL3NzaC9zc2hkX2NvbmZpZyB8IGdyZXAgeWVzYAorLSAg ICAgICAgaWYgWyAieCRBTlNJQkxFIiAhPSB4IF0gJiYgWyAieCRpc19yb290X2xvZ2luIiA9IHgg XSA7IHRoZW4KKy0gICAgICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogTm8g cGVybWlzc2lvbiB0byBnZXQgZm9jdXMtaW4gZXZlbnRzIGluIEd0a1dpbmRvdyB3aXRoIGFuc2li bGUiCistICAgICAgICAgICAgZWNobyAic3UgY29tbWFuZCBkb2VzIG5vdCBjb25maWd1cmUgbmVj ZXNzYXJ5IGxvZ2luIGluZm8gIiAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICJ3aXRoIHN5 c3RlbWQgYW5kIEd0a1dpbmRvdyBjYW5ub3QgcmVjZWl2ZSBmb2N1cy1ldmVudHMgIiAgICAgXAor LSAgICAgICAgICAgICAgICAgIndoZW4gaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyIGlzIGV4 ZWN1dGVkIGJ5ICIgICAgICAgICAgICBcCistICAgICAgICAgICAgICAgICAiYW5zaWJsZS1wbGF5 Ym9vay4iID4+ICRURVNUX0xPRworLSAgICAgICAgICAgIGVjaG8gIkVuYWJsaW5nIHJvb3QgbG9n aW4gdmlhIHNzaGQsIHJlc3RhcnRpbmcgc3NoZCwgc2V0ICIgICAgICAgICBcCistICAgICAgICAg ICAgICAgICAiWERHX1JVTlRJTUVfRElSIGNhbiByZXNvbHZlIHRoZSBwcm9ibGVtIHVuZGVyICIg ICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAgICAgICJhbnNpYmxlLXBsYXlib29rLiIgPj4g JFRFU1RfTE9HCistICAgICAgICAgICAgZXhpdCAyNTUKKy0gICAgICAgIGZpCistICAgIGZpCist ICAgICMgIERvIHdlIG5lZWQgWERHX1NFU1NJT05fSUQgYW5kIFhER19TRUFUPworLSAgICAjZXhw b3J0IFhER19DT05GSUdfRElSUz0vZXRjL3hkZworLSAgICAjZXhwb3J0IFhER19TRVNTSU9OX0lE PTEwCistICAgICNleHBvcnQgWERHX1NFU1NJT05fREVTS1RPUD1nbm9tZQorLSAgICAjZXhwb3J0 IFhER19TRUFUPXNlYXQwCistfQorLQorLQorLXJ1bl9kYnVzX2RhZW1vbigpCisteworLSAgICAj IFVzZSBkYnVzLWxhdW5jaCAtLWV4aXQtd2l0aC1zZXNzaW9uIGxhdGVyIGluc3RlYWQgb2YgLS1z aC1zeW50YXgKKy0gICAgIyBHTk9NRSB1c2VzIGEgdW5peDphYnN0cmFjdCBhZGRyZXNzIGFuZCBp dCBlZmZlY3RzIGdzZXR0aW5ncyBzZXQgdmFsdWVzCistICAgICMgaW4gZWFjaCB0ZXN0IGNhc2Uu CistICAgICMgVE9ETzogU2hvdWxkIHdlIGNvbW1lbnQgb3V0IHRoaXMgbGluZT8KKy0gICAgZXhw b3J0IERCVVNfU0VTU0lPTl9CVVNfQUREUkVTUz0idW5peDpwYXRoPS9ydW4vdXNlci8kVUlEL2J1 cyIKKy19CistCistCistaW5pdF9nbm9tZSgpCisteworLSAgICAjIGdzZXR0aW5ncyBzZXQgY29t bWFuZCBuZWVkcyBkY29uZi1zZXJ2aWNlIHdpdGggdGhlIHNhbWUgJERJU1BMQVkKKy0gICAgcGtp bGwgZGNvbmYtc2VydmljZQorLSAgICAjIEdfTUVTU0FHRVNfREVCVUc9YWxsIG9yIEdfTUVTU0FH RVNfREVCVUc9R0xpYi1HSU8tREVCVUcgd291bGQgYXBwZW5kCistICAgICMgZGVidWcgbWVzc2Fn ZXMgdG8gZ3NldHRpbmdzIG91dHB1dCBhbmQgY291bGQgbm90IGdldCB0aGUgcmVzdWx0IGNvcnJl Y3RseS4KKy0gICAgYmFja3VwX0dfTUVTU0FHRVNfREVCVUc9IiRHX01FU1NBR0VTX0RFQlVHIgor LSAgICB1bnNldCBHX01FU1NBR0VTX0RFQlVHCistICAgICMgRGlzYWJsZSBUb3VyIGRpYWxvZyB0 byBnZXQgZm9jdXMKKy0gICAgVj1gZ3NldHRpbmdzIGdldCBvcmcuZ25vbWUuc2hlbGwgd2VsY29t ZS1kaWFsb2ctbGFzdC1zaG93bi12ZXJzaW9uYAorLSAgICBpZiBbIHgiJFYiID0geCInJyIgXSA7 IHRoZW4KKy0gICAgICAgIGdzZXR0aW5ncyBzZXQgb3JnLmdub21lLnNoZWxsIHdlbGNvbWUtZGlh bG9nLWxhc3Qtc2hvd24tdmVyc2lvbiAnMTAwJworLSAgICBmaQorLSAgICAjIGdub21lLXNoZWxs IG5vdyBzdGFydHMgb3ZlcnZpZXcgbW9kZSBieSBsb2dpbi4KKy0gICAgIyBodHRwczovL2V4dGVu c2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MDk5L25vLW92ZXJ2aWV3LworLSAgICBOT19TWVNf RElSPS91c3Ivc2hhcmUvZ25vbWUtc2hlbGwvZXh0ZW5zaW9ucy9uby1vdmVydmlld0BmdGh4Cist ICAgIE5PX1VTRVJfRElSPSRIT01FLy5sb2NhbC9zaGFyZS9nbm9tZS1zaGVsbC9leHRlbnNpb25z L25vLW92ZXJ2aWV3QGZ0aHgKKy0gICAgaWYgWyAhIC1kICROT19TWVNfRElSIF0gJiYgWyAhIC1k ICROT19VU0VSX0RJUiBdIDsgdGhlbgorLSAgICAgICAgbWtkaXIgLXAgImBkaXJuYW1lICROT19V U0VSX0RJUmAiCistICAgICAgICBjcCAtUiAibm8tb3ZlcnZpZXdAZnRoeCIgImBkaXJuYW1lICRO T19VU0VSX0RJUmAiCistICAgIGZpCistICAgIFY9YGdzZXR0aW5ncyBnZXQgb3JnLmdub21lLnNo ZWxsIGRpc2FibGUtdXNlci1leHRlbnNpb25zYAorLSAgICBpZiBbIHgiJFYiID0geCJ0cnVlIiBd IDsgdGhlbgorLSAgICAgICAgZ3NldHRpbmdzIHNldCBvcmcuZ25vbWUuc2hlbGwgZGlzYWJsZS11 c2VyLWV4dGVuc2lvbnMgZmFsc2UKKy0gICAgZmkKKy0gICAgVj1gZ3NldHRpbmdzIGdldCBvcmcu Z25vbWUuc2hlbGwgZW5hYmxlZC1leHRlbnNpb25zYAorLSAgICBlY2hvICIkViIgfCBncmVwICJu by1vdmVydmlldyIgPiAvZGV2L251bGwKKy0gICAgVjI9JD8KKy0gICAgaWYgWyAkVjIgLW5lIDAg XSA7IHRoZW4KKy0gICAgICAgIFYzPWBlY2hvICIkViIgfCBzZWQgLWUgJ3MvQGFzIC8vJyAtZSAn cy9cWy8vJyAtZSAncy9cXS8vJ2AKKy0gICAgICAgIGlmIFsgeCIkVjMiID0geCInJyIgXSB8fCBb IHgiJFYzIiA9IHgiIiBdOyB0aGVuCistICAgICAgICAgICAgVjQ9Ilsnbm8tb3ZlcnZpZXdAZnRo eCddIgorLSAgICAgICAgZWxzZQorLSAgICAgICAgICAgIFY0PSJbJFYzLCAnbm8tb3ZlcnZpZXdA ZnRoeCddIgorLSAgICAgICAgZmkKKy0gICAgICAgIGdzZXR0aW5ncyBzZXQgb3JnLmdub21lLnNo ZWxsIGVuYWJsZWQtZXh0ZW5zaW9ucyAiJFY0IgorLSAgICBmaQorLSAgICBpZiBbIHgiJGJhY2t1 cF9HX01FU1NBR0VTX0RFQlVHIiAhPSB4IF0gOyB0aGVuCistICAgICAgICBleHBvcnQgR19NRVNT QUdFU19ERUJVRz0iJGJhY2t1cF9HX01FU1NBR0VTX0RFQlVHIgorLSAgICBmaQorLX0KKy0KKy0K Ky1ydW5fZGVza3RvcCgpCisteworLSAgICBlY2hvICIkREVTS1RPUF9DT01NQU5EIiB8IGdyZXAg Z25vbWUtc2Vzc2lvbiA+IC9kZXYvbnVsbAorLSAgICBIQVNfR05PTUU9JD8KKy0gICAgZXhwb3J0 IERJU1BMQVk9JERJU1BMQVkKKy0gICAgaWYgdGVzdCAkSEFWRV9HUkFQSElDUyAtZXEgMSA7IHRo ZW4KKy0gICAgICAgIC91c3IvbGliZXhlYy9Yb3JnLndyYXAgLW5vcmVzZXQgK2V4dGVuc2lvbiBH TFggK2V4dGVuc2lvbiBSQU5EUiArZXh0ZW5zaW9uIFJFTkRFUiAtbG9nZmlsZSAuL3hvcmcubG9n IC1jb25maWcgLi94b3JnLmNvbmYgLWNvbmZpZ2RpciAuICRESVNQTEFZICYKKy0gICAgZWxzZQor LSAgICAgICAgL3Vzci9iaW4vWHZmYiAkRElTUExBWSAtbm9yZXNldCArZXh0ZW5zaW9uIEdMWCAr ZXh0ZW5zaW9uIFJBTkRSICtleHRlbnNpb24gUkVOREVSIC1zY3JlZW4gMCAxMjgweDEwMjR4MjQg JgorLSAgICBmaQorLSAgICBQSURfWE9SRz0kIQorLSAgICBzbGVlcCAxCistICAgICMgaW5pdF9n bm9tZSBuZWVkIHRvIGJlIGNhbGxlZCB3aXRoICRESVNQTEFZIGJlZm9yZSBnbm9tZS1zZXNzaW9u IGlzIGNhbGxlZAorLSAgICBpZiBbICAkSEFTX0dOT01FIC1lcSAwIF0gOyB0aGVuCistICAgICAg ICBpbml0X2dub21lCistICAgIGZpCistICAgIGVjaG8gIlJ1bm5pbmcgJERFU0tUT1BfQ09NTUFO RCB3aXRoICRVU0VSIGluIGB0dHlgIgorLSAgICAkREVTS1RPUF9DT01NQU5EICYKKy0gICAgUElE X0dOT01FX1NFU1NJT049JCEKKy0gICAgc2xlZXAgMzAKKy0KKy0gICAgSUJVU19BUkdTPSItLXZl cmJvc2UgLS1wYW5lbCBkaXNhYmxlIgorLSAgICAjIGdub21lLXNoZWxsIDQyIGNoZWNrcyBpZiBv cmcuZnJlZWRlc2t0b3AuSUJ1cy5zZXNzaW9uLkdOT01FLnNlcnZpY2UKKy0gICAgIyBzeXN0ZW1k IGZpbGUgaXMgYXZhaWxhYmxlIHdpdGggb3JnLmZyZWVkZXNrdG9wLnN5c3RlbWQxLk1hbmFnZXIu R2V0VW5pdAorLSAgICAjIEQtQnVzIG1ldGhvZCwgd2hpY2ggaXMgcHJvdmlkZWQgYnkgSUJ1cyAx LjUuMjYsIGFuZCBpZiB0aGUgZmlsZQorLSAgICAjIGlzIGF2YWlsYWJsZSwgZ25vbWUtc2hlbGwg bm8gbG9uZ2VyIGxhdW5jaCBpYnVzLWRhZW1vbgorLSAgICAjIGJlY2F1c2UgZ25vbWUtc2hlbGwg YXNzdW1lcyBnbm9tZS1zZXNzaW9uIHdvdWxkIGxhdW5jaCBpYnVzLWRhZW1vbgorLSAgICAjIHdp dGggb3JnLmZyZWVkZXNrdG9wLnN5c3RlbWQxLk1hbmFnZXIuU3RhcnRVbml0IEQtQnVzIG1ldGhv ZC4KKy0gICAgIyBCdXQgYWN0dWFsbHkgZ25vbWUtc2Vzc2lvbiBmYWlsZWQgdG8gbGF1bmNoIGli dXMtZGFlbW9uCistICAgICMgYmVjYXVzZSB0aGUgSUJ1cyBzeXN0ZW1kIGZpbGUgZGVwZW5kcyBv biBnbm9tZS1zZXNzaW9uLnRhcmdldAorLSAgICAjIGJ1dCB0aGlzIENJIGxhdW5jaGVzIGdub21l LXNlc3Npb24gZGlyZWN0bHkuCistICAgICMKKy0gICAgIyBTbyBpYnVzLWRhbWVvbiBpcyBub3cg YWx3YXlzIGNhbGxlZCBoZXJlIGFmdGVyIGdub21lLXNoZWxsIGZhaWxzIHRvCistICAgICMgbGF1 bmNoIGlidXMtZGFlbW9uLgorLSAgICAjIEl0IG1heSBiZSBiZXR0ZXIgdGhpcyBDSSBsYXVuY2hl cyBHRE0gYXV0b2xvZ2luIHRvIHJ1biBnbm9tZS1zZXNzaW9uCistICAgICMgd2l0aCBnbm9tZS1z ZXNzaW9uLnRhcmdldCBzeXN0ZW1kIGZpbGUuCistICAgICMgQnV0IGBzeXN0ZW1jdGwgc3RhcnQg Z2RtYCB0ZXJtaW5hdGVzIHRoZSBwYXJlbnQgc2NyaXB0IGZvcmNpYmx5CistICAgICMgYW5kIHRo ZSBzY3JpcHQgY2Fubm90IGdldCB0aGUgQ0kgcmVzdWx0LgorLSAgICBpZiB0ZXN0ICRWRVJCT1NF IC1lcSAxIDsgdGhlbgorLSAgICAgICAgaWJ1cy1kYWVtb24gJElCVVNfQVJHUyAmCistICAgIGVs c2UKKy0gICAgICAgIGlidXMtZGFlbW9uICRJQlVTX0FSR1MgLS1kYWVtb25pemUKKy0gICAgZmkK Ky0gICAgc2xlZXAgMworLSAgICBpZiB0ZXN0ICRWRVJCT1NFIC1lcSAxIDsgdGhlbgorLSAgICAg ICAgcHMgLWVmIHwgZ3JlcCBpYnVzCistICAgIGZpCistfQorLQorLQorLWNvdW50X2Nhc2VfcmVz dWx0KCkKKy17CistICAgIHJldHZhbD0kMQorLSAgICBwYXNzPSQyCistICAgIGZhaWw9JDMKKy0K Ky0gICAgaWYgdGVzdCAkcmV0dmFsIC1lcSAgMCA7IHRoZW4KKy0gICAgICAgIHBhc3M9YGV4cHIg JHBhc3MgKyAxYAorLSAgICBlbHNlCistICAgICAgICBmYWlsPWBleHByICRmYWlsICsgMWAKKy0g ICAgZmkKKy0gICAgZWNobyAkcGFzcyAkZmFpbAorLX0KKy0KKy0KKy1lY2hvX2Nhc2VfcmVzdWx0 KCkKKy17CistICAgIHJldHZhbD0kMQorLSAgICB0c3Q9JDIKKy0gICAgc3VidHN0PSR7MzotJyd9 CistCistICAgIGlmIHRlc3QgJHJldHZhbCAtZXEgIDAgOyB0aGVuCistICAgICAgICBlY2hvICJQ QVNTOiAkdHN0ICRzdWJ0c3QiID4+JFRFU1RfTE9HCistICAgIGVsc2UKKy0gICAgICAgIGVjaG8g IkZBSUw6ICR0c3QgJHN1YnRzdCIgPj4kVEVTVF9MT0cKKy0gICAgZmkKKy19CistCistCistcnVu X2RpcmVjdF90ZXN0X2Nhc2VzKCkKKy17CistICAgIHBhc3M9MAorLSAgICBmYWlsPTAKKy0gICAg Zm9yIHRzdCBpbiAkVEVTVFM7IGRvCistICAgICAgICBFTlZTPQorLSAgICAgICAgaWYgdGVzdCAt ZiAkU1JDRElSLyR7dHN0fS5lbnYgOyB0aGVuCistICAgICAgICAgICAgRU5WUz0iYGNhdCAkU1JD RElSLyR7dHN0fS5lbnZgIgorLSAgICAgICAgZmkKKy0gICAgICAgIGlmIHRlc3QgeCIkRU5WUyIg PSB4IDsgdGhlbgorLSAgICAgICAgICAgICRCVUlMRERJUi8kdHN0ICRTUkNESVIgMj4+JFRFU1Rf TE9HIDE+PiRURVNUX0xPRworLSAgICAgICAgICAgIHJldHZhbD0kPworLSAgICAgICAgICAgIHJl YWQgcGFzcyBmYWlsIDw8IEVPRl9DT1VOVAorLSAgICAgICAgICAgIGBjb3VudF9jYXNlX3Jlc3Vs dCAkcmV0dmFsICRwYXNzICRmYWlsYAorLUVPRl9DT1VOVAorLSAgICAgICAgICAgIGVjaG9fY2Fz ZV9yZXN1bHQgJHJldHZhbCAkdHN0CistICAgICAgICAgICAgQ0FDSEVfRklMRVM9YGxzICouY2Fj aGVgCistICAgICAgICAgICAgaWYgWyB4IiRDQUNIRV9GSUxFUyIgIT0geCBdIDsgdGhlbgorLSAg ICAgICAgICAgICAgICBlY2hvICIjIENsZWFuICRDQUNIRV9GSUxFUyIgPj4kVEVTVF9MT0cKKy0g ICAgICAgICAgICAgICAgcm0gJENBQ0hFX0ZJTEVTCistICAgICAgICAgICAgZmkKKy0gICAgICAg IGVsc2UKKy0gICAgICAgICAgICBpPTEKKy0gICAgICAgICAgICAjIERlbGV0ZWQgZm9yIHZhciBp biAiJEVOVlMiIGJlY2F1c2UgSUZTPSQnXG4nIGlzIG5vdCBzdXBwb3J0ZWQKKy0gICAgICAgICAg ICAjIGluIFBPU0lYIHNoCistICAgICAgICAgICAgd2hpbGUgcmVhZCBlIDsgZG8KKy0gICAgICAg ICAgICAgICAgZmlyc3Q9YGVjaG8gIiRlIiB8IGdyZXAgJ14jJ2AKKy0gICAgICAgICAgICAgICAg aWYgdGVzdCB4IiRmaXJzdCIgPSB4IiMiIDsgdGhlbgorLSAgICAgICAgICAgICAgICAgICAgY29u dGludWUKKy0gICAgICAgICAgICAgICAgZmkKKy0gICAgICAgICAgICAgICAgZWNobyAiIyBTdGFy dGluZyAkZSAkQlVJTERESVIvJHRzdCAkU1JDRElSIiA+PiRURVNUX0xPRworLSAgICAgICAgICAg ICAgICBlbnYgJGUgJEJVSUxERElSLyR0c3QgJFNSQ0RJUiAyPj4kVEVTVF9MT0cgMT4+JFRFU1Rf TE9HCistICAgICAgICAgICAgICAgIHJldHZhbD0kPworLSAgICAgICAgICAgICAgICBlY2hvICIj IEZpbmlzaGVkICRlICRCVUlMRERJUi8kdHN0ICRTUkNESVIgd2l0aCAkcmV0dmFsIiA+PiRURVNU X0xPRworLSAgICAgICAgICAgICAgICByZWFkIHBhc3MgZmFpbCA8PCBFT0ZfQ09VTlQKKy0gICAg ICAgICAgICAgICAgYGNvdW50X2Nhc2VfcmVzdWx0ICRyZXR2YWwgJHBhc3MgJGZhaWxgCistRU9G X0NPVU5UCistICAgICAgICAgICAgICAgIGVjaG9fY2FzZV9yZXN1bHQgJHJldHZhbCAkdHN0ICRl CistICAgICAgICAgICAgICAgIENBQ0hFX0ZJTEVTPWBscyAqLmNhY2hlYAorLSAgICAgICAgICAg ICAgICBpZiBbIHgiJENBQ0hFX0ZJTEVTIiAhPSB4IF0gOyB0aGVuCistICAgICAgICAgICAgICAg ICAgICBlY2hvICIjIENsZWFuICRDQUNIRV9GSUxFUyIgPj4kVEVTVF9MT0cKKy0gICAgICAgICAg ICAgICAgICAgIHJtICRDQUNIRV9GSUxFUworLSAgICAgICAgICAgICAgICBmaQorLSAgICAgICAg ICAgICAgICBpPWBleHByICRpICsgMWAKKy0gICAgICAgICAgICBkb25lIDw8IEVPRl9FTlZTCist ICAgICAgICAgICAgYGVjaG8gIiRFTlZTImAKKy1FT0ZfRU5WUworLSAgICAgICAgZmkKKy0gICAg ZG9uZQorLSAgICBlY2hvICRwYXNzICRmYWlsCistfQorLQorLQorLXJ1bl9nbm9tZV9kZXNrdG9w X3Rlc3RpbmdfcnVubmVyKCkKKy17CistICAgIHBhc3M9MAorLSAgICBmYWlsPTAKKy0gICAgaWYg WyB4IiRURVNUUyIgPSB4IF0gOyB0aGVuCistICAgICAgICBURVNUUz0naWJ1cycKKy0gICAgZmkK Ky0gICAgZm9yIHRzdCBpbiAkVEVTVFM7IGRvCistICAgICAgICB0c3RfZGlyPSJASU5TVEFMTEVE RElSQC8kdHN0IgorLSAgICAgICAgaWYgWyAhIC1kICIkdHN0X2RpciIgXSA7IHRoZW4KKy0gICAg ICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogTm90IGZvdW5kICV0c3RfZGly IgorLSAgICAgICAgICAgIGZhaWw9MQorLSAgICAgICAgICAgIGNvbnRpbnVlCistICAgICAgICBm aQorLSAgICAgICAgZ25vbWUtZGVza3RvcC10ZXN0aW5nLXJ1bm5lciAtLXRpbWVvdXQ9JFRJTUVP VVQgJHRzdCBcCistICAgICAgICAgICAgICAgIDI+PiRURVNUX0xPRyAxPj4kVEVTVF9MT0cKKy0g ICAgICAgIHJldHZhbD0kPworLSAgICAgICAgcmVhZCBwYXNzIGZhaWwgPDwgRU9GCistICAgICAg ICBgY291bnRfY2FzZV9yZXN1bHQgJHJldHZhbCAkcGFzcyAkZmFpbGAKKy1FT0YKKy0gICAgZG9u ZQorLSAgICBjaGlsZF9wYXNzPWBncmVwICdeUEFTUzonICRURVNUX0xPRyB8IHdjIC1sYAorLSAg ICBjaGlsZF9mYWlsPWBncmVwICdeRkFJTDonICRURVNUX0xPRyB8IHdjIC1sYAorLSAgICBpZiBb ICRjaGlsZF9wYXNzIC1uZSAwIF0gfHwgWyAkY2hpbGRfZmFpbCAtbmUgMCBdIDsgdGhlbgorLSAg ICAgICAgcGFzcz0kY2hpbGRfcGFzcworLSAgICAgICAgaWYgWyAkY2hpbGRfZmFpbCAtbmUgMCBd IDsgdGhlbgorLSAgICAgICAgICAgIGZhaWw9YGV4cHIgJGNoaWxkX2ZhaWwgLyAyYAorLSAgICAg ICAgZWxzZQorLSAgICAgICAgICAgIGZhaWw9MAorLSAgICAgICAgZmkKKy0gICAgZmkKKy0gICAg ZWNobyAkcGFzcyAkZmFpbAorLX0KKy0KKy0KKy1ydW5fdGVzdF9zdWl0ZSgpCisteworLSAgICBw YXNzPTAKKy0gICAgZmFpbD0wCistICAgIGV4cG9ydCBHVEtfSU1fTU9EVUxFPWlidXMKKy0gICAg ZXhwb3J0IElCVVNfQ09NUE9TRV9DQUNIRV9ESVI9JFBXRAorLSAgICBpZiBbIHgiJFRFU1RJTkdf UlVOTkVSIiA9IHggXSA7IHRoZW4KKy0gICAgICAgIFRFU1RJTkdfUlVOTkVSPSJkZWZhdWx0Igor LSAgICBmaQorLSAgICBjYXNlICRURVNUSU5HX1JVTk5FUiBpbgorLSAgICBkZWZhdWx0KQorLSAg ICAgICAgIyBHZXQgb25seSB0aGUgbGFzdCB2YWx1ZSB3aXRoIGRvLXdoaWxlLgorLSAgICAgICAg cmVhZCBwYXNzIGZhaWwgPDwgRU9GX1JVTk5FUgorLSAgICAgICAgYHJ1bl9kaXJlY3RfdGVzdF9j YXNlc2AKKy1FT0ZfUlVOTkVSCistICAgICAgICA7OworLSAgICBnbm9tZSkKKy0gICAgICAgIHJl YWQgcGFzcyBmYWlsIDw8IEVPRl9SVU5ORVIKKy0gICAgICAgIGBydW5fZ25vbWVfZGVza3RvcF90 ZXN0aW5nX3J1bm5lcmAKKy1FT0ZfUlVOTkVSCistICAgICAgICA7OworLSAgICBlc2FjCistICAg IGVjaG8gIiIKKy0gICAgIyBGZWRvcmEgQ0kgYXNzdW1lcyB0aGUgdGVzdCBpcyBmYWlsZWQgZXZl biBpZiAkZmFpbCBpcyAwLgorLSAgICBpZiBbICRwYXNzIC1uZSAwIF0gOyB0aGVuCistICAgICAg ICBwcmludF9sb2cgLWUgIiR7R1JFRU59UEFTUyR7TkN9OiAkcGFzcyIKKy0gICAgZmkKKy0gICAg aWYgWyAkZmFpbCAtbmUgMCBdIDsgdGhlbgorLSAgICAgICAgcHJpbnRfbG9nIC1lICIke1JFRH1G QUlMJHtOQ306ICRmYWlsIgorLSAgICBmaQorLSAgICBlY2hvICIiCistICAgIGlmIFsgJFRFU1Rf TE9HX1NURE9VVCAtZXEgMSBdIDsgdGhlbgorLSAgICAgICAgY2F0ICRURVNUX0xPRworLSAgICBl bHNlCistICAgICAgICBlY2hvICIjIFNlZSAkVEVTVF9MT0ciCistICAgIGZpCistfQorLQorLQor LWZpbml0KCkKKy17CistICAgIGVjaG8gIiMgS2lsbGluZyBsZWZ0IGdub21lLXNlc3Npb24gYW5k IFhvcmciCistICAgIGtpbGwgJFBJRF9HTk9NRV9TRVNTSU9OICRQSURfWE9SRworLSAgICBpYnVz IGV4aXQKKy0gICAgU1VTRVI9YGVjaG8gIiRVU0VSIiB8IGN1dCAtYyAxLTdgCistICAgIExFRlRf Q0FMRU5EQVI9YHBzIC1lZiB8IGdyZXAgZ25vbWUtc2hlbGwtY2FsZW5kYXItc2VydmVyIHwgZ3Jl cCAkU1VTRVIgfCBncmVwIC12IGdyZXBgCistICAgIGlmIFsgeCIkTEVGVF9DQUxFTkRBUiIgIT0g eCBdIDsgdGhlbgorLSAgICAgICAgZWNobyAiIyBLaWxsaW5nIGxlZnQgZ25vbWUtc2hlbGwtY2Fs ZW5kYXItc2VydmVyIgorLSAgICAgICAgZWNobyAiJExFRlRfQ0FMRU5EQVIiCistICAgICAgICBl Y2hvICIkTEVGVF9DQUxFTkRBUiIgfCBhd2sgJ3twcmludCAkMn0nIHwgeGFyZ3Mga2lsbAorLSAg ICBmaQorLQorLSAgICBlY2hvICIjIEZpbmlzaGVkICRQUk9HTkFNRSB0ZXN0aW5nIgorLX0KKy0K Ky0KKyBtYWluKCkKKyB7CisgICAgIHBhcnNlX2FyZ3MgIiRAIgorLSAgICBpbml0X2Rlc2t0b3AK KysgICAgaW5pdF9zZXNzaW9uCisgICAgIHJ1bl9kYnVzX2RhZW1vbiAyPj4kVEVTVF9MT0cgMT4+ JFRFU1RfTE9HCistICAgIHJ1bl9kZXNrdG9wIDI+PiRURVNUX0xPRyAxPj4kVEVTVF9MT0cKKy0g ICAgaWYgWyB4IiRTQ1JFRU5fTE9HIiAhPSB4IF0gOyB0aGVuCistICAgICAgICBTQ1JFRU5fUE5H PSJgZGF0ZSAnKyVZJW0lZCVIJU0lUydgLnBuZyIKKy0gICAgICAgIGdub21lLXNjcmVlbnNob3Qg LS1maWxlPSRTQ1JFRU5fUE5HCistICAgICAgICBpZiBbIHgiJFNDUkVFTl9MT0ciID0geFNURE9V VCBdIDsgdGhlbgorLSAgICAgICAgICAgIGJhc2U2NCAkU0NSRUVOX1BORworLSAgICAgICAgZWxz ZQorLSAgICAgICAgICAgIGJhc2U2NCAkU0NSRUVOX1BORyA+ICRTQ1JFRU5fTE9HCistICAgICAg ICBmaQorLSAgICBmaQorKyAgICBydW5fc2Vzc2lvbiAyPj4kVEVTVF9MT0cgMT4+JFRFU1RfTE9H CisrICAgIHNhdmVfc2NyZWVuCisgICAgIHJ1bl90ZXN0X3N1aXRlCisgICAgIGZpbml0CisgfQor ZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy5kZXNrdG9wLmluIGIv c3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLmRlc2t0b3AuaW4KK2luZGV4IDFiODE1MzQ1 Li5lOTE5MDBlZCAxMDA2NDQKKy0tLSBhL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy5k ZXNrdG9wLmluCisrKysgYi9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmcuZGVza3RvcC5p bgorQEAgLTIsNyArMiw3IEBACisgTmFtZT1JQnVzIERlc2t0b3AgVGVzdGluZyBSdW5uZXIKKyBH ZW5lcmljTmFtZT1JbnB1dCBNZXRob2QgRGVza3RvcCBUZXN0aW5nIFJ1bm5lcgorIENvbW1lbnQ9 VGVzdCBwbHVnaW4gZm9yIElCdXMgRGVza3RvcCBUZXN0aW5nCistRXhlYz1AbGliZXhlY2RpckAv aWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0IC92YXIvdG1wL2lidXMtY2ktYXV0b3N0YXJ0 LmxvZworK0V4ZWM9c2ggLWMgJ2V4ZWMgQGxpYmV4ZWNkaXJAL2lidXMtZGVza3RvcC10ZXN0aW5n LWF1dG9zdGFydCAtLWVudmNoZWNrIC0tb3V0cHV0ICRIT01FL3Rlc3QtYXV0b3N0YXJ0LmxvZyAt LXJlc3VsdCAkSE9NRS90ZXN0LmxvZyAtLXJ1bm5lciBnbm9tZSAtLXNjcmVlbmR1bXAgJEhPTUUv c2NyZWVuLmxvZyAtLXRlc3RzIGlidXMnCisgVGVybWluYWw9ZmFsc2UKKyBUeXBlPUFwcGxpY2F0 aW9uCisgRW5jb2Rpbmc9VVRGLTgKKy0tIAorMi40NS4wCisKK0Zyb20gMDM5ZmNiMTZmMThkMzQx YTI0NDM2MmMzZTc5N2VlYWE1YzUxMDEwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMjcgSnVs IDIwMjQgMTk6MDI6MDkgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzZdIEZpeCB0ZXN0cyBjYXNl cyB0byBiZSBydW4gaW4gV2F5bGFuZAorCistIEZpeCBpYnVzLWJ1cyBzaW5jZSBpYnVzX2J1c19l eGl0X2FzeW5jKCkgZG9lcyBub3Qgd29yayBpYnVzLWRhZW1vbgorICB3aXRoIHN5c3RlbWQgYW5k IHJ1biBgaWJ1cyByZXN0YXJ0YCBpbnN0ZWFkLgorLSBGaXggaWJ1cy1jb21wb3NlLWxvY2FsZXMg dG8gd2FpdCBmb3IgMSBzZWMgYmV0d2VlbiBrZXkgZXZlbnQgdGVzdCBjYXNlcworICB0byByZXNl dCBnbm9tZS1zaGVsbC9tdXR0ZXIuCistIEZpeCBpYnVzLWNvbXBvc2UgdG8gd2FpdCBmb3IgY29t bWl0LXRleHQgZXZlbnQgc2luY2UgdGhlIGdub21lLXNoZWxsL211dHRlcgorICBwcm9jZXNzIGlz IGEgYml0IHNsb3cgYW5kIGNhbiByZXNldCB0aGUgcHJldmlvdXMgY29tbWl0LXRleHQgZXZlbnRz CisgIGJlZm9yZSB0aGUgcHJldmlvdXMgZXZlbnRzIGFyZSBub3QgY29tbWl0dGVkLgorLSBGaXgg Y291bnRzIGluIGlidXMtZW5naW5lLXN3aXRjaC4KKy0gVW5yZWYgSUJ1c0VuZ2luZURlc2MgaW4g aWJ1cy1lbmdpbmUtc3dpdGNoLgorLSBGaXggaWJ1c2ltcGwgbm90IHRvIGNoYW5nZSB0aGUgZW5n aW5lIG9mIHRoZSBjb250ZXh0IHdoZW4gZ2xvYmFsLWVuZ2luZQorICBpcyBlbmFibGVkLgorLSBD aGVjayBESVNQTEFZIGFuZCBzZXR4a2JtYXAgaW4geGtiLWxhdGluLWxheW91dHMgZm9yIFdheWxh bmQKKworQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvcHVsbC8yNjU3CistLS0KKyBi dXMvaWJ1c2ltcGwuYyAgICAgICAgICAgICAgICAgfCAgIDggKysKKyBidXMvaWJ1c2ltcGwuaCAg ICAgICAgICAgICAgICAgfCAgIDMgKy0KKyBidXMvaW5wdXRjb250ZXh0LmMgICAgICAgICAgICAg fCAgIDkgKysrCisgc3JjL2lidXNzaGFyZS5jICAgICAgICAgICAgICAgIHwgICAyICstCisgc3Jj L3Rlc3RzL2lidXMtYnVzLmMgICAgICAgICAgIHwgIDkyICsrKysrKysrKysrKysrKysrKystLS0K KyBzcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMgICAgICAgfCAxMzkgKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tCisgc3JjL3Rlc3RzL2lidXMtZW5naW5lLXN3aXRjaC5jIHwgIDQ1ICsr KysrKysrKystCisgc3JjL3Rlc3RzL3hrYi1sYXRpbi1sYXlvdXRzICAgIHwgICA5ICsrKworIDgg ZmlsZXMgY2hhbmdlZCwgMjU0IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvYnVzL2lidXNpbXBsLmMgYi9idXMvaWJ1c2ltcGwuYworaW5kZXggNDQ1YzA2MmIu LjRiZWQ5YmMwIDEwMDY0NAorLS0tIGEvYnVzL2lidXNpbXBsLmMKKysrKyBiL2J1cy9pYnVzaW1w bC5jCitAQCAtMjQ2Myw2ICsyNDYzLDE0IEBAIGJ1c19pYnVzX2ltcGxfaXNfZW1iZWRfcHJlZWRp dF90ZXh0IChCdXNJQnVzSW1wbCAqaWJ1cykKKyAgICAgcmV0dXJuIGlidXMtPmVtYmVkX3ByZWVk aXRfdGV4dDsKKyB9CisgCisrZ2Jvb2xlYW4KKytidXNfaWJ1c19pbXBsX2lzX3VzZV9nbG9iYWxf ZW5naW5lIChCdXNJQnVzSW1wbCAqaWJ1cykKKyt7CisrICAgIGdfYXNzZXJ0IChCVVNfSVNfSUJV U19JTVBMIChpYnVzKSk7CisrCisrICAgIHJldHVybiBpYnVzLT51c2VfZ2xvYmFsX2VuZ2luZTsK Kyt9CisrCisgQnVzSW5wdXRDb250ZXh0ICoKKyBidXNfaWJ1c19pbXBsX2dldF9mb2N1c2VkX2lu cHV0X2NvbnRleHQgKEJ1c0lCdXNJbXBsICppYnVzKQorIHsKK2RpZmYgLS1naXQgYS9idXMvaWJ1 c2ltcGwuaCBiL2J1cy9pYnVzaW1wbC5oCitpbmRleCBlM2I0M2Y4Ny4uNDI4Yjc3M2IgMTAwNjQ0 CistLS0gYS9idXMvaWJ1c2ltcGwuaAorKysrIGIvYnVzL2lidXNpbXBsLmgKK0BAIC0yLDcgKzIs NyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogYnVzIC0gVGhlIElucHV0IEJ1cwor ICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21h aWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAyMi0yMDIzIFRha2FvIEZ1aml3YXJhIDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAyMi0yMDI0IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorICAqIENvcHlyaWdodCAoQykg MjAwOC0yMDIyIFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKK0BAIC05NCw2ICs5NCw3IEBA IEJ1c0NvbXBvbmVudCAgICAqYnVzX2lidXNfaW1wbF9sb29rdXBfY29tcG9uZW50X2J5X25hbWUK KyBnYm9vbGVhbiAgICAgICAgIGJ1c19pYnVzX2ltcGxfaXNfdXNlX3N5c19sYXlvdXQgICAgKEJ1 c0lCdXNJbXBsICAgICAgICAqaWJ1cyk7CisgZ2Jvb2xlYW4gICAgICAgICBidXNfaWJ1c19pbXBs X2lzX2VtYmVkX3ByZWVkaXRfdGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoQnVzSUJ1c0ltcGwgICAgICAgICppYnVzKTsKKytnYm9vbGVh biAgICAgICAgIGJ1c19pYnVzX2ltcGxfaXNfdXNlX2dsb2JhbF9lbmdpbmUgKEJ1c0lCdXNJbXBs ICAgICAgICAqaWJ1cyk7CisgQnVzSW5wdXRDb250ZXh0ICpidXNfaWJ1c19pbXBsX2dldF9mb2N1 c2VkX2lucHV0X2NvbnRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKEJ1c0lCdXNJbXBsICAgICAgICAqaWJ1cyk7CisgR0hhc2hUYWJsZSAg ICAgICpidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZm9jdXNfaWRfdGFibGUKK2RpZmYgLS1naXQg YS9idXMvaW5wdXRjb250ZXh0LmMgYi9idXMvaW5wdXRjb250ZXh0LmMKK2luZGV4IDFlNzk1NzMz Li44NTM1ODI0MSAxMDA2NDQKKy0tLSBhL2J1cy9pbnB1dGNvbnRleHQuYworKysrIGIvYnVzL2lu cHV0Y29udGV4dC5jCitAQCAtMTI4OSw2ICsxMjg5LDE1IEBAIF9pY19zZXRfZW5naW5lIChCdXNJ bnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIEdEQnVzTWV0aG9k SW52b2NhdGlvbiAqaW52b2NhdGlvbikKKyB7CisgICAgIGdjaGFyICplbmdpbmVfbmFtZSA9IE5V TEw7CisrICAgIEJ1c0lCdXNJbXBsICppYnVzID0gYnVzX2lidXNfaW1wbF9nZXRfZGVmYXVsdCAo KTsKKysKKysgICAgaWYgKGJ1c19pYnVzX2ltcGxfaXNfdXNlX2dsb2JhbF9lbmdpbmUgKGlidXMp KSB7CisrICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX2Vycm9yIChpbnZv Y2F0aW9uLAorKyAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1IsIEdfREJVU19FUlJPUl9GQUlM RUQsCisrICAgICAgICAgICAgICAgICJDYW5ub3Qgc2V0IGVuZ2luZXMgd2hlbiB1c2UtZ2xvYmFs LWVuZ2luZSBpcyBlbmFibGVkLiIpOworKyAgICAgICAgcmV0dXJuOworKyAgICB9CisrCisgICAg IGdfdmFyaWFudF9nZXQgKHBhcmFtZXRlcnMsICIoJnMpIiwgJmVuZ2luZV9uYW1lKTsKKyAKKyAg ICAgaWYgKCFidXNfaW5wdXRfY29udGV4dF9oYXNfZm9jdXMgKGNvbnRleHQpKSB7CitkaWZmIC0t Z2l0IGEvc3JjL2lidXNzaGFyZS5jIGIvc3JjL2lidXNzaGFyZS5jCitpbmRleCA1YWI2ZTg4OS4u NTdlM2VmMTQgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3NoYXJlLmMKKysrKyBiL3NyYy9pYnVzc2hh cmUuYworQEAgLTIsNyArMiw3IEBACisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVz IC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcg PHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIzIFRh a2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAo QykgMjAxNS0yMDI0IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgor ICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMg bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK K2RpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1idXMuYyBiL3NyYy90ZXN0cy9pYnVzLWJ1cy5j CitpbmRleCBkNmIxMDVjZi4uNzYxMjAzNTQgMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMvaWJ1cy1i dXMuYworKysrIGIvc3JjL3Rlc3RzL2lidXMtYnVzLmMKK0BAIC04MDIsMjAgKzgwMiwyOSBAQCBz dGFydF9zZXRfcHJlbG9hZF9lbmdpbmVzX2FzeW5jICh2b2lkKQorICAgICAgICAgICAgIE5VTEwp OyAvKiB1c2VyX2RhdGEgKi8KKyB9CisgCisrdHlwZWRlZiBzdHJ1Y3QgX0V4aXRBc3luY0RhdGEg eworKyAgICBnYm9vbGVhbiBoYXNfc29ja2V0X3BhdGg7CisrICAgIGdib29sZWFuIGV4aXRlZDsK KysgICAgZ3VpbnQgICAgdGltZW91dF9pZDsKKyt9IEV4aXRBc3luY0RhdGE7CisrCisgc3RhdGlj IHZvaWQKKyBfc29ja2V0X2NoYW5nZWRfY2IgKEdGaWxlTW9uaXRvciAgICAgICAqbW9uaXRvciwK KyAgICAgICAgICAgICAgICAgICAgIEdGaWxlICAgICAgICAgICAgICAqZmlsZSwKKyAgICAgICAg ICAgICAgICAgICAgIEdGaWxlICAgICAgICAgICAgICAqb3RoZXJfZmlsZSwKKyAgICAgICAgICAg ICAgICAgICAgIEdGaWxlTW9uaXRvckV2ZW50ICAgZXZlbnRfdHlwZSwKKy0gICAgICAgICAgICAg ICAgICAgIElCdXNCdXMgICAgICAgICAgICAqYnVzKQorKyAgICAgICAgICAgICAgICAgICAgRXhp dEFzeW5jRGF0YSAgICAgICpkYXRhKQorIHsKKyAgICAgc3dpdGNoIChldmVudF90eXBlKSB7Cisg ICAgIGNhc2UgR19GSUxFX01PTklUT1JfRVZFTlRfQ0hBTkdFRDoKKyAgICAgICAgIGdfZGVidWcg KCJJQnVzIHNvY2tldCBmaWxlIGlzIGNoYW5nZWQiKTsKKyAgICAgICAgIGNhbGxfbmV4dF9hc3lu Y19mdW5jdGlvbiAoKTsKKysgICAgICAgIGRhdGEtPmV4aXRlZCA9IFRSVUU7CisgICAgICAgICBn X3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMgKG1vbml0b3IsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9zb2NrZXRf Y2hhbmdlZF9jYiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhKTsKKysgICAgICAgIGlmIChkYXRhLT50aW1lb3V0X2lkKQorKyAgICAgICAgICAgIGdf c291cmNlX3JlbW92ZSAoZGF0YS0+dGltZW91dF9pZCk7CisgICAgICAgICBnX29iamVjdF91bnJl ZiAobW9uaXRvcik7CisgICAgICAgICBicmVhazsKKyAgICAgY2FzZSBHX0ZJTEVfTU9OSVRPUl9F VkVOVF9DUkVBVEVEOgorQEAgLTgyOSw2ICs4MzgsMzMgQEAgX3NvY2tldF9jaGFuZ2VkX2NiIChH RmlsZU1vbml0b3IgICAgICAgKm1vbml0b3IsCisgICAgIH0KKyB9CisgCisrc3RhdGljIGdib29s ZWFuCisrX2V4aXRfdGltZW91dCAoZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3sKKysgICAgZ19lcnJv ciAoInN0YXJ0X2V4aXRfYXN5bmMoKSBpcyB0aW1lb3V0LiBZb3UgbWlnaHQgcnVuIGlidXMtZGFl bW9uICIgXAorKyAgICAgICAgICAgICAid2l0aCBzeXN0ZW1kIHVuZGVyIEdOT01FIGFuZCB0aGUg ZXhpdCBBUEkgZG9lcyBub3Qgd29yay4gIiBcCisrICAgICAgICAgICAgICJZb3UgbmVlZCB0byBl eHBvcnQgSUJVU19EQUVNT05fV0lUSF9TWVNURU1EPTEgLlxuIik7CisrICAgIHJldHVybiBHX1NP VVJDRV9SRU1PVkU7CisrfQorKworK3N0YXRpYyB2b2lkCisrZmluaXNoX2lidXNfcmVzdGFydF9h c3luYyAoR1BpZCAgICAgIHBpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAg ICAgc3RhdHVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICp1c2VyX2Rh dGEpCisreworKyAgICBFeGl0QXN5bmNEYXRhICpkYXRhID0gKEV4aXRBc3luY0RhdGEgKil1c2Vy X2RhdGE7CisrICAgIGdfc3Bhd25fY2xvc2VfcGlkIChwaWQpOworKyAgICBpZiAoZGF0YS0+aGFz X3NvY2tldF9wYXRoID09IEZBTFNFKSB7CisrICAgICAgICBnX2RlYnVnICgiaWJ1c19idXNfZXhp dF9maW5pc2g6IE9LIHNvY2tldCBmaWxlOiBub25lIik7CisrICAgICAgICBnX3VzbGVlcCAoR19V U0VDX1BFUl9TRUMpOworKyAgICAgICAgY2FsbF9uZXh0X2FzeW5jX2Z1bmN0aW9uICgpOworKyAg ICB9IGVsc2UgeworKyAgICAgICAgZ19kZWJ1ZyAoImlidXNfYnVzX2V4aXRfZmluaXNoOiBPSyBz b2NrZXQgZmlsZTogbW9uaXRvcmVkIik7CisrICAgICAgICBpZiAoIWRhdGEtPmV4aXRlZCkKKysg ICAgICAgICAgICBkYXRhLT50aW1lb3V0X2lkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzICgxMCwg X2V4aXRfdGltZW91dCwgTlVMTCk7CisrICAgIH0KKyt9CisrCisgc3RhdGljIHZvaWQKKyBmaW5p c2hfZXhpdF9hc3luYyAoR09iamVjdCAqc291cmNlX29iamVjdCwKKyAgICAgICAgICAgICAgICAg ICAgR0FzeW5jUmVzdWx0ICpyZXMsCitAQCAtODM4LDI1ICs4NzQsMzIgQEAgZmluaXNoX2V4aXRf YXN5bmMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsCisgICAgIGdib29sZWFuIHJlc3VsdCA9IGli dXNfYnVzX2V4aXRfYXN5bmNfZmluaXNoIChidXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJyb3IpOworLSAgICBnYm9vbGVhbiBoYXNfc29j a2V0X3BhdGggPSBHUE9JTlRFUl9UT19JTlQgKHVzZXJfZGF0YSk7CisrICAgIEV4aXRBc3luY0Rh dGEgKmRhdGEgPSAoRXhpdEFzeW5jRGF0YSAqKXVzZXJfZGF0YTsKKyAgICAgaWYgKGVycm9yKSB7 CisgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gaWJ1c19idXNfZXhpdCgpOiAlcyIsIGVy cm9yLT5tZXNzYWdlKTsKKyAgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworICAgICB9Cisg ICAgIGdfYXNzZXJ0IChyZXN1bHQpOworLSAgICBpZiAoaGFzX3NvY2tldF9wYXRoID09IEZBTFNF KSB7CisrICAgIGdfYXNzZXJ0IChkYXRhKTsKKysgICAgaWYgKGRhdGEtPmhhc19zb2NrZXRfcGF0 aCA9PSBGQUxTRSkgeworICAgICAgICAgZ19kZWJ1ZyAoImlidXNfYnVzX2V4aXRfZmluaXNoOiBP SyBzb2NrZXQgZmlsZTogbm9uZSIpOworICAgICAgICAgZ191c2xlZXAgKEdfVVNFQ19QRVJfU0VD KTsKKyAgICAgICAgIGNhbGxfbmV4dF9hc3luY19mdW5jdGlvbiAoKTsKKyAgICAgfSBlbHNlIHsK KyAgICAgICAgIGdfZGVidWcgKCJpYnVzX2J1c19leGl0X2ZpbmlzaDogT0sgc29ja2V0IGZpbGU6 IG1vbml0b3JlZCIpOworKyAgICAgICAgaWYgKCFkYXRhLT5leGl0ZWQpCisrICAgICAgICAgICAg ZGF0YS0+dGltZW91dF9pZCA9IGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMTAsIF9leGl0X3RpbWVv dXQsIE5VTEwpOworICAgICB9CisgfQorIAorIHN0YXRpYyB2b2lkCisgc3RhcnRfZXhpdF9hc3lu YyAodm9pZCkKKyB7CistICAgIGdib29sZWFuIGhhc19zb2NrZXRfcGF0aCA9IEZBTFNFOworKyAg ICBzdGF0aWMgRXhpdEFzeW5jRGF0YSBkYXRhID0geworKyAgICAgICAgLmhhc19zb2NrZXRfcGF0 aCA9IEZBTFNFLAorKyAgICAgICAgLmV4aXRlZCAgICAgICAgICA9IEZBTFNFLAorKyAgICAgICAg LnRpbWVvdXRfaWQgICAgICA9IDAKKysgICAgfTsKKyAgICAgLyogV2hlbiBgLi9ydW50ZXN0IGli dXMtYnVzYCBydW5zLCBpYnVzLWRhZW1vbiBzb21ldGltZXMgZmFpbGVkIHRvCisgICAgICAqIHJl c3RhcnQgYmVjYXVzZSBjbG9zaW5nIGEgZmlsZSBkZXNjcmlwdG9yIHdhcyBmYWlsZWQgaW4KKyAg ICAgICogYnVzL3NlcnZlci5jOl9yZXN0YXJ0X3NlcnZlcigpIHdpdGggYSBmb2xsb3dpbmcgZXJy b3I6CitAQCAtODc5LDcgKzkyMiw3IEBAIHN0YXJ0X2V4aXRfYXN5bmMgKHZvaWQpCisgICAgICAg ICBnX2Fzc2VydCAoYWRkcmVzc19wYXRoKTsKKyAgICAgICAgIGZpbGUgPSBnX2ZpbGVfbmV3X2Zv cl9wYXRoIChhZGRyZXNzX3BhdGgpOworICAgICAgICAgZ19hc3NlcnQgKGZpbGUpOworLSAgICAg ICAgaGFzX3NvY2tldF9wYXRoID0gVFJVRTsKKysgICAgICAgIGRhdGEuaGFzX3NvY2tldF9wYXRo ID0gVFJVRTsKKyAgICAgICAgIG1vbml0b3IgPSBnX2ZpbGVfbW9uaXRvciAoZmlsZSwgR19GSUxF X01PTklUT1JfTk9ORSwgTlVMTCwgJmVycm9yKTsKKyAgICAgICAgIGlmIChlcnJvcikgeworICAg ICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBtb25pdG9yIHNvY2tldCBmaWxlOiAlcyIs IGVycm9yLT5tZXNzYWdlKTsKK0BAIC04ODcsMTUgKzkzMCwzOCBAQCBzdGFydF9leGl0X2FzeW5j ICh2b2lkKQorICAgICAgICAgfQorICAgICAgICAgZ19hc3NlcnQgKG1vbml0b3IpOworICAgICAg ICAgZ19zaWduYWxfY29ubmVjdCAobW9uaXRvciwgImNoYW5nZWQiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgR19DQUxMQkFDSyAoX3NvY2tldF9jaGFuZ2VkX2NiKSwgTlVMTCk7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChfc29ja2V0X2NoYW5nZWRfY2IpLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEpOworICAgICAgICAgZ19vYmplY3RfdW5y ZWYgKGZpbGUpOworICAgICB9CistICAgIGlidXNfYnVzX2V4aXRfYXN5bmMgKGJ1cywKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgVFJVRSwgLyogcmVzdGFydCAqLworLSAgICAgICAgICAgICAg ICAgICAgICAgICAtMSwgLyogdGltZW91dCAqLworLSAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLCAvKiBjYW5jZWxsYWJsZSAqLworLSAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hf ZXhpdF9hc3luYywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgR0lOVF9UT19QT0lOVEVSICho YXNfc29ja2V0X3BhdGgpKTsgLyogdXNlcl9kYXRhICovCisrICAgIC8qIFdoZW4gaWJ1cy1kYWVt b24gcnVucyB3aXRoIHN5c3RlbWQsIHJlc3RhcnRpbmcgdGhlIGRhZW1vbiB3aXRoCisrICAgICAq IGlidXNfYnVzX2V4aXRfYXN5bmMoKSBkb2VzIG5vdCB3b3JrIHNvIHJ1bnMgYGlidXMgcmVzdGFy dGAgY29tbWFuZAorKyAgICAgKiB3aXRoIElCVVNfREFFTU9OX1dJVEhfU1lTVEVNRCB2YXJpYWJs ZSBpbnN0ZWFkLgorKyAgICAgKi8KKysgICAgaWYgKGdfZ2V0ZW52ICgiSUJVU19EQUVNT05fV0lU SF9TWVNURU1EIikpIHsKKysgICAgICAgIGdjaGFyICphcmd2W10gPSB7ICJpYnVzIiwgInJlc3Rh cnQiLCBOVUxMIH07CisrICAgICAgICBHU3Bhd25GbGFncyBmbGFncyA9IEdfU1BBV05fRE9fTk9U X1JFQVBfQ0hJTEQgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdfU1BBV05fU0VB UkNIX1BBVEggXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdfU1BBV05fU1RET1VU X1RPX0RFVl9OVUxMIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHX1NQQVdOX1NU REVSUl9UT19ERVZfTlVMTDsKKysgICAgICAgIEdQaWQgcGlkID0gMDsKKysgICAgICAgIEdFcnJv ciAqZXJyb3IgPSBOVUxMOworKyAgICAgICAgZ19zcGF3bl9hc3luYyAoTlVMTCwgYXJndiwgTlVM TCwgZmxhZ3MsIE5VTEwsIE5VTEwsICZwaWQsICZlcnJvcik7CisrICAgICAgICBpZiAoZXJyb3Ip IHsKKysgICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gY2FsbCBpYnVzIHJlc3RhcnQ6 ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3Ip OworKyAgICAgICAgfQorKyAgICAgICAgZ19jaGlsZF93YXRjaF9hZGQgKHBpZCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAoR0NoaWxkV2F0Y2hGdW5jKWZpbmlzaF9pYnVzX3Jlc3RhcnRf YXN5bmMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEpOworKyAgICB9IGVsc2Ug eworKyAgICAgICAgaWJ1c19idXNfZXhpdF9hc3luYyAoYnVzLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVFJVRSwgLyogcmVzdGFydCAqLworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLTEsIC8qIHRpbWVvdXQgKi8KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsIC8qIGNhbmNlbGxhYmxlICovCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5p c2hfZXhpdF9hc3luYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhKTsgLyog dXNlcl9kYXRhICovCisrICAgIH0KKyB9CisgCisgc3RhdGljIGdib29sZWFuCitkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5jIGIvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5jCitp bmRleCAyMWRlN2EyMi4uNjYwYWVlN2YgMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMvaWJ1cy1jb21w b3NlLmMKKysrKyBiL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYworQEAgLTcsMTkgKzcsMjggQEAK KyAjZGVmaW5lIFJFRCAgICJcMDMzWzA7MzFtIgorICNkZWZpbmUgTkMgICAgIlwwMzNbMG0iCisg CistSUJ1c0J1cyAqbV9idXM7CistZ2NoYXIgKm1fY29tcG9zZV9maWxlOworLUlCdXNDb21wb3Nl VGFibGVFeCAqbV9jb21wb3NlX3RhYmxlOworLUlCdXNFbmdpbmUgKm1fZW5naW5lOworLWdjaGFy ICptX3NyY2RpcjsKKy0KKy1ndWludCBpYnVzX2NvbXBvc2Vfa2V5X2ZsYWcgKGd1aW50IGtleSk7 CistCisrc3RhdGljIElCdXNCdXMgKm1fYnVzOworK3N0YXRpYyBnY2hhciAqbV9jb21wb3NlX2Zp bGU7Cisrc3RhdGljIElCdXNDb21wb3NlVGFibGVFeCAqbV9jb21wb3NlX3RhYmxlOworK3N0YXRp YyBJQnVzRW5naW5lICptX2VuZ2luZTsKKytzdGF0aWMgZ2NoYXIgKm1fc3JjZGlyOworK3N0YXRp YyBHTWFpbkxvb3AgKm1fbG9vcDsKKysKKyt0eXBlZGVmIGVudW0geworKyAgICBURVNUX0NSRUFU RV9FTkdJTkUsCisrICAgIFRFU1RfQ09NTUlUX1RFWFQKKyt9IFRlc3RJRGxlQ2F0ZWdvcnk7Cisr CisrdHlwZWRlZiBzdHJ1Y3QgX1Rlc3RJZGxlRGF0YSB7CisrICAgIFRlc3RJRGxlQ2F0ZWdvcnkg Y2F0ZWdvcnk7CisrICAgIGd1aW50ICAgICAgICAgICAgaWRsZV9pZDsKKyt9IFRlc3RJZGxlRGF0 YTsKKysKKytleHRlcm4gZ3VpbnQgaWJ1c19jb21wb3NlX2tleV9mbGFnIChndWludCBrZXkpOwor IHN0YXRpYyBnYm9vbGVhbiB3aW5kb3dfZm9jdXNfaW5fZXZlbnRfY2IgKEd0a1dpZGdldCAgICAg KmVudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2 ZW50Rm9jdXMgKmV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdwb2ludGVyICAgICAgIGRhdGEpOworIAorLQorIHN0YXRpYyBnY2hhciAqCisgZ2V0X2Nv bXBvc2VfcGF0aCAoKQorIHsKK0BAIC01MSwxNyArNjAsNTAgQEAgZ2V0X2NvbXBvc2VfcGF0aCAo KQorIH0KKyAKKyAKKytnYm9vbGVhbgorK2lkbGVfY2IgKGdwb2ludGVyIHVzZXJfZGF0YSkKKyt7 CisrICAgIFRlc3RJZGxlRGF0YSAqZGF0YSA9IChUZXN0SWRsZURhdGEgKil1c2VyX2RhdGE7Cisr ICAgIGdfYXNzZXJ0IChkYXRhKTsKKysgICAgc3dpdGNoIChkYXRhLT5jYXRlZ29yeSkgeworKyAg ICBjYXNlIFRFU1RfQ1JFQVRFX0VOR0lORToKKysgICAgICAgIGdfdGVzdF9mYWlsX3ByaW50ZiAo IlwiY3JlYXRlLWVuZ2luZVwiIHNpZ25hbCBpcyB0aW1lb3V0LiIpOworKyAgICAgICAgYnJlYWs7 CisrICAgIGNhc2UgVEVTVF9DT01NSVRfVEVYVDoKKysgICAgICAgIGlmIChkYXRhLT5pZGxlX2lk KQorKyAgICAgICAgICAgIGdfdGVzdF9mYWlsX3ByaW50ZiAoIkNvbW1pdGluZyBjb21wb3NlZCBj aGFycyBpcyB0aW1lb3V0LiIpOworKyAgICAgICAgaWYgKG1fbG9vcCkgeworKyAgICAgICAgICAg IGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nIChtX2xvb3ApKQorKyAgICAgICAgICAgICAgICBn X21haW5fbG9vcF9xdWl0IChtX2xvb3ApOworKyAgICAgICAgICAgIGdfY2xlYXJfcG9pbnRlciAo Jm1fbG9vcCwgZ19tYWluX2xvb3BfdW5yZWYpOworKyAgICAgICAgICAgIGd0a19tYWluX3F1aXQg KCk7CisrICAgICAgICB9CisrICAgICAgICBkYXRhLT5pZGxlX2lkID0gMDsKKysgICAgICAgIGJy ZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgICAgZ190ZXN0X2ZhaWxfcHJpbnRmICgiSWRsZSBm dW5jIGlzIGNhbGxlZCBieSB3cm9uZyBjYXRlZ29yeTolZC4iLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhLT5jYXRlZ29yeSk7CisrICAgICAgICBicmVhazsKKysgICAgfQorKyAg ICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOworK30KKysKKysKKyBzdGF0aWMgSUJ1c0VuZ2luZSAq CisgY3JlYXRlX2VuZ2luZV9jYiAoSUJ1c0ZhY3RvcnkgKmZhY3RvcnksCisgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2NoYXIgKm5hbWUsCistICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAg IGRhdGEpCisrICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgIHVzZXJfZGF0YSkKKyB7Cisg ICAgIHN0YXRpYyBpbnQgaSA9IDE7CisgICAgIGdjaGFyICplbmdpbmVfcGF0aCA9CisgICAgICAg ICAgICAgZ19zdHJkdXBfcHJpbnRmICgiL29yZy9mcmVlZGVza3RvcC9JQnVzL2VuZ2luZS9zaW1w bGV0ZXN0LyVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkrKyk7CisgICAgIGdj aGFyICpjb21wb3NlX3BhdGg7CisrICAgIFRlc3RJZGxlRGF0YSAqZGF0YSA9IChUZXN0SWRsZURh dGEgKil1c2VyX2RhdGE7CisgCisrICAgIGdfYXNzZXJ0IChkYXRhKTsKKysgICAgLyogRG9uJ3Qg cmVzZXQgaWRsZV9pZCB0byBhdm9pZCBkdXBsaWNhdGVkIHJlZ2lzdGVyX2lidXNfZW5naW5lKCku ICovCisrICAgIGdfc291cmNlX3JlbW92ZSAoZGF0YS0+aWRsZV9pZCk7CisgICAgIG1fZW5naW5l ID0gaWJ1c19lbmdpbmVfbmV3X3dpdGhfdHlwZSAoSUJVU19UWVBFX0VOR0lORV9TSU1QTEUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmVfcGF0aCwKK0BAIC03NSwy OCArMTE3LDMzIEBAIGNyZWF0ZV9lbmdpbmVfY2IgKElCdXNGYWN0b3J5ICpmYWN0b3J5LAorICAg ICAgICAgaWJ1c19lbmdpbmVfc2ltcGxlX2FkZF9jb21wb3NlX2ZpbGUgKElCVVNfRU5HSU5FX1NJ TVBMRSAobV9lbmdpbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbXBvc2VfcGF0aCk7CisgICAgICAgICBtX2NvbXBvc2VfdGFibGUgPSBpYnVzX2Nv bXBvc2VfdGFibGVfbG9hZF9jYWNoZSAoY29tcG9zZV9wYXRoKTsKKy0gICAgICAgIGlmIChtX2Nv bXBvc2VfdGFibGUgPT0gTlVMTCkKKy0gICAgICAgICAgICBnX3dhcm5pbmcgKCJZb3VyIGxvY2Fs ZSB1c2VzIGVuX1VTIGNvbXBvc2UgdGFibGUuIik7CisgICAgIH0KKyAgICAgZ19mcmVlIChjb21w b3NlX3BhdGgpOworICAgICByZXR1cm4gbV9lbmdpbmU7CisgfQorIAorKworIHN0YXRpYyBnYm9v bGVhbgorIHJlZ2lzdGVyX2lidXNfZW5naW5lICgpCisgeworKyAgICBzdGF0aWMgVGVzdElkbGVE YXRhIGRhdGEgPSB7IC5jYXRlZ29yeSA9IFRFU1RfQ1JFQVRFX0VOR0lORSwgLmlkbGVfaWQgPSAw IH07CisgICAgIElCdXNGYWN0b3J5ICpmYWN0b3J5OworICAgICBJQnVzQ29tcG9uZW50ICpjb21w b25lbnQ7CisgICAgIElCdXNFbmdpbmVEZXNjICpkZXNjOworIAorKyAgICBpZiAoZGF0YS5pZGxl X2lkKSB7CisrICAgICAgICBnX3Rlc3RfaW5jb21wbGV0ZSAoIlRlc3QgaXMgY2FsbGVkIHR3aWNl IGR1ZSB0byBhIHRpbWVvdXQuIik7CisrICAgICAgICByZXR1cm4gVFJVRTsKKysgICAgfQorICAg ICBtX2J1cyA9IGlidXNfYnVzX25ldyAoKTsKKyAgICAgaWYgKCFpYnVzX2J1c19pc19jb25uZWN0 ZWQgKG1fYnVzKSkgeworLSAgICAgICAgZ19jcml0aWNhbCAoImlidXMtZGFlbW9uIGlzIG5vdCBy dW5uaW5nLiIpOworKyAgICAgICAgZ190ZXN0X2ZhaWxfcHJpbnRmICgiaWJ1cy1kYWVtb24gaXMg bm90IHJ1bm5pbmcuIik7CisgICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgIH0KKyAgICAgZmFj dG9yeSA9IGlidXNfZmFjdG9yeV9uZXcgKGlidXNfYnVzX2dldF9jb25uZWN0aW9uIChtX2J1cykp OworKyAgICBkYXRhLmlkbGVfaWQgPSBnX3RpbWVvdXRfYWRkX3NlY29uZHMgKDIwLCBpZGxlX2Ni LCAmZGF0YSk7CisgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKGZhY3RvcnksICJjcmVhdGUtZW5naW5l IiwKKy0gICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoY3JlYXRlX2VuZ2luZV9jYiks IE5VTEwpOworKyAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChjcmVhdGVfZW5naW5l X2NiKSwgJmRhdGEpOworIAorICAgICBjb21wb25lbnQgPSBpYnVzX2NvbXBvbmVudF9uZXcgKAor ICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuSUJ1cy5TaW1wbGVUZXN0IiwKK0BAIC0xMjIs MzQgKzE2OSwyOSBAQCByZWdpc3Rlcl9pYnVzX2VuZ2luZSAoKQorICAgICByZXR1cm4gVFJVRTsK KyB9CisgCistc3RhdGljIGdib29sZWFuCistZmluaXQgKGdwb2ludGVyIGRhdGEpCisteworLSAg ICBnX3Rlc3RfaW5jb21wbGV0ZSAoInRpbWUgb3V0Iik7CistICAgIGd0a19tYWluX3F1aXQgKCk7 CistICAgIHJldHVybiBGQUxTRTsKKy19CisgCisgc3RhdGljIHZvaWQKKy1zZXRfZW5naW5lX2Ni IChHT2JqZWN0ICpvYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciBkYXRhKQorK3Nl dF9lbmdpbmVfY2IgKEdPYmplY3QgICAgICAqb2JqZWN0LAorKyAgICAgICAgICAgICAgIEdBc3lu Y1Jlc3VsdCAqcmVzLAorKyAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgdXNlcl9kYXRhKQor IHsKKyAgICAgSUJ1c0J1cyAqYnVzID0gSUJVU19CVVMgKG9iamVjdCk7CistICAgIEd0a1dpZGdl dCAqZW50cnkgPSBHVEtfV0lER0VUIChkYXRhKTsKKysgICAgR3RrV2lkZ2V0ICplbnRyeSA9IEdU S19XSURHRVQgKHVzZXJfZGF0YSk7CisgICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAgICBz dGF0aWMgVGVzdElkbGVEYXRhIGRhdGEgPSB7IC5jYXRlZ29yeSA9IFRFU1RfQ09NTUlUX1RFWFQs IC5pZGxlX2lkID0gMCB9OworICAgICBpbnQgaSwgajsKKyAgICAgaW50IGluZGV4X3N0cmlkZTsK KyAgICAgSUJ1c0NvbXBvc2VUYWJsZVByaXZhdGUgKnByaXY7CisgCisgICAgIGlmICghaWJ1c19i dXNfc2V0X2dsb2JhbF9lbmdpbmVfYXN5bmNfZmluaXNoIChidXMsIHJlcywgJmVycm9yKSkgewor LSAgICAgICAgZ2NoYXIgKm1zZyA9IGdfc3RyZHVwX3ByaW50ZiAoInNldCBlbmdpbmUgZmFpbGVk OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0gICAgICAgIGdfdGVzdF9pbmNvbXBsZXRlIChtc2cp OworLSAgICAgICAgZ19mcmVlIChtc2cpOworKyAgICAgICAgZ190ZXN0X2ZhaWxfcHJpbnRmICgi c2V0IGVuZ2luZSBmYWlsZWQ6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICAgZ19lcnJv cl9mcmVlIChlcnJvcik7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAKKyAgICAgaWYgKG1f Y29tcG9zZV90YWJsZSA9PSBOVUxMKSB7CistICAgICAgICBndGtfbWFpbl9xdWl0ICgpOworKyAg ICAgICAgZ190ZXN0X3NraXAgKCJZb3VyIGxvY2FsZSB1c2VzIGVuX1VTIGNvbXBvc2UgdGFibGUu Iik7CisrICAgICAgICBpZGxlX2NiICgmZGF0YSk7CisgICAgICAgICByZXR1cm47CisgICAgIH0K KyAKK0BAIC0xNTcsNiArMTk5LDcgQEAgc2V0X2VuZ2luZV9jYiAoR09iamVjdCAqb2JqZWN0LCBH QXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgZGF0YSkKKyAgICAgZm9yIChpID0gMDsKKyAgICAg ICAgICBpIDwgKG1fY29tcG9zZV90YWJsZS0+bl9zZXFzICogaW5kZXhfc3RyaWRlKTsKKyAgICAg ICAgICBpICs9IGluZGV4X3N0cmlkZSkgeworKyAgICAgICAgZGF0YS5pZGxlX2lkID0gZ190aW1l b3V0X2FkZF9zZWNvbmRzICgyMCwgaWRsZV9jYiwgJmRhdGEpOworICAgICAgICAgZm9yIChqID0g aTsgaiA8IGkgKyAoaW5kZXhfc3RyaWRlIC0gMik7IGorKykgeworICAgICAgICAgICAgIGd1aW50 IGtleXZhbCA9IG1fY29tcG9zZV90YWJsZS0+ZGF0YVtqXTsKKyAgICAgICAgICAgICBndWludCBr ZXljb2RlID0gMDsKK0BAIC0xNzIsMTIgKzIxNSwyMiBAQCBzZXRfZW5naW5lX2NiIChHT2JqZWN0 ICpvYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciBkYXRhKQorICAgICAgICAgICAg IGdfc2lnbmFsX2VtaXRfYnlfbmFtZSAobV9lbmdpbmUsICJwcm9jZXNzLWtleS1ldmVudCIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2YWwsIGtleWNvZGUsIG1vZGlm aWVycywgJnJldHZhbCk7CisgICAgICAgICB9CisrICAgICAgICAvKiBOZWVkIHRvIHdhaXQgZm9y IGNhbGxpbmcgd2luZG93X2luc2VydGVkX3RleHRfY2IoKSB3aXRoCisrICAgICAgICAgKiBnX21h aW5fbG9vcF9ydW4oKSBiZWNhdXNlIHRoZSBjb21taXQtdGV4dCBldmVudCBjb3VsZCBiZSBjYW5j ZWxsZWQKKysgICAgICAgICAqIGJ5IHRoZSBuZXh0IGNvbW1pdC10ZXh0IGV2ZW50IHdpdGggZ25v bWUtc2hlbGwgaW4gV2F5bGFuZC4KKysgICAgICAgICAqLworKyAgICAgICAgZ19tYWluX2xvb3Bf cnVuIChtX2xvb3ApOworKyAgICAgICAgaWYgKGRhdGEuaWRsZV9pZCkgeworKyAgICAgICAgICAg IGdfc291cmNlX3JlbW92ZSAoZGF0YS5pZGxlX2lkKTsKKysgICAgICAgICAgICBkYXRhLmlkbGVf aWQgPSAwOworKyAgICAgICAgfQorICAgICB9CisgICAgIHByaXYgPSBtX2NvbXBvc2VfdGFibGUt PnByaXY7CisgICAgIGlmIChwcml2KSB7CisgICAgICAgICBmb3IgKGkgPSAwOworICAgICAgICAg ICAgICBpIDwgKHByaXYtPmZpcnN0X25fc2VxcyAqIGluZGV4X3N0cmlkZSk7CisgICAgICAgICAg ICAgIGkgKz0gaW5kZXhfc3RyaWRlKSB7CisrICAgICAgICAgICAgZGF0YS5pZGxlX2lkID0gZ190 aW1lb3V0X2FkZF9zZWNvbmRzICgyMCwgaWRsZV9jYiwgJmRhdGEpOworICAgICAgICAgICAgIGZv ciAoaiA9IGk7IGogPCBpICsgKGluZGV4X3N0cmlkZSAtIDIpOyBqKyspIHsKKyAgICAgICAgICAg ICAgICAgZ3VpbnQga2V5dmFsID0gcHJpdi0+ZGF0YV9maXJzdFtqXTsKKyAgICAgICAgICAgICAg ICAgZ3VpbnQga2V5Y29kZSA9IDA7CitAQCAtMTkzLDEzICsyNDYsMTggQEAgc2V0X2VuZ2luZV9j YiAoR09iamVjdCAqb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgZGF0YSkKKyAg ICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lIChtX2VuZ2luZSwgInByb2Nlc3Mt a2V5LWV2ZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2 YWwsIGtleWNvZGUsIG1vZGlmaWVycywgJnJldHZhbCk7CisgICAgICAgICAgICAgfQorKyAgICAg ICAgICAgIGdfbWFpbl9sb29wX3J1biAobV9sb29wKTsKKysgICAgICAgICAgICBpZiAoZGF0YS5p ZGxlX2lkKSB7CisrICAgICAgICAgICAgICAgIGdfc291cmNlX3JlbW92ZSAoZGF0YS5pZGxlX2lk KTsKKysgICAgICAgICAgICAgICAgZGF0YS5pZGxlX2lkID0gMDsKKysgICAgICAgICAgICB9Cisg ICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9i eV9mdW5jIChlbnRyeSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR19DQUxMQkFDSyAod2luZG93X2ZvY3VzX2luX2V2ZW50X2NiKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKy0gICAgZ190aW1lb3V0X2FkZF9z ZWNvbmRzICgxMCwgZmluaXQsIE5VTEwpOworKyAgICBkYXRhLmlkbGVfaWQgPSBnX3RpbWVvdXRf YWRkX3NlY29uZHMgKDEwLCBpZGxlX2NiLCAmZGF0YSk7CisgfQorIAorIHN0YXRpYyBnYm9vbGVh bgorQEAgLTIxNSwxMiArMjczLDEzIEBAIHdpbmRvd19mb2N1c19pbl9ldmVudF9jYiAoR3RrV2lk Z2V0ICplbnRyeSwgR2RrRXZlbnRGb2N1cyAqZXZlbnQsIGdwb2ludGVyIGRhdGEpCisgICAgIHJl dHVybiBGQUxTRTsKKyB9CisgCisrCisgc3RhdGljIHZvaWQKKyB3aW5kb3dfaW5zZXJ0ZWRfdGV4 dF9jYiAoR3RrRW50cnlCdWZmZXIgKmJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg Z3VpbnQgICAgICAgICAgIHBvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBnY2hhciAgICAqY2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAg ICAgICBuY2hhcnMsCistICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICBk YXRhKQorKyAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgdXNlcl9kYXRh KQorIHsKKyAvKiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ3RrL2NvbW1pdC85OTgx ZjQ2ZTBiCisgICogVGhlIGxhdGVzdCBHVEsgZG9lcyBub3QgZW1pdCAiaW5zZXJ0ZWQtdGV4dCIg d2hlbiB0aGUgdGV4dCBpcyAiIi4KK0BAIC0yMzQsOCArMjkzLDkgQEAgd2luZG93X2luc2VydGVk X3RleHRfY2IgKEd0a0VudHJ5QnVmZmVyICpidWZmZXIsCisgICAgIGludCBzZXE7CisgICAgIGd1 bmljaGFyIGNvZGUgPSBnX3V0ZjhfZ2V0X2NoYXIgKGNoYXJzKTsKKyAgICAgY29uc3QgZ2NoYXIg KnRlc3Q7CistICAgIEd0a0VudHJ5ICplbnRyeSA9IEdUS19FTlRSWSAoZGF0YSk7CisrICAgIEd0 a0VudHJ5ICplbnRyeSA9IEdUS19FTlRSWSAodXNlcl9kYXRhKTsKKyAgICAgSUJ1c0NvbXBvc2VU YWJsZVByaXZhdGUgKnByaXY7CisrICAgIHN0YXRpYyBUZXN0SWRsZURhdGEgZGF0YSA9IHsgLmNh dGVnb3J5ID0gVEVTVF9DT01NSVRfVEVYVCwgLmlkbGVfaWQgPSAwIH07CisgCisgICAgIGdfYXNz ZXJ0IChtX2NvbXBvc2VfdGFibGUgIT0gTlVMTCk7CisgCitAQCAtMzAyLDIxICszNjIsMjYgQEAg d2luZG93X2luc2VydGVkX3RleHRfY2IgKEd0a0VudHJ5QnVmZmVyICpidWZmZXIsCisgICAgICAg ICAgICAgc3RyaWRlID0gMDsKKyAgICAgICAgICAgICBzZXEgPSAwOworICAgICAgICAgfSBlbHNl IHsKKy0gICAgICAgICAgICBndGtfbWFpbl9xdWl0ICgpOworKyAgICAgICAgICAgIC8qIEZpbmlz aCB0ZXN0cyAqLworKyAgICAgICAgICAgIGlkbGVfY2IgKCZkYXRhKTsKKyAgICAgICAgICAgICBy ZXR1cm47CisgICAgICAgICB9CisgICAgIH0KKyAgICAgaWYgKGVuYWJsZV8zMmJpdCAmJiBzZXEg PT0gcHJpdi0+Zmlyc3Rfbl9zZXFzKSB7CistICAgICAgICBndGtfbWFpbl9xdWl0ICgpOworKyAg ICAgICAgLyogRmluaXNoIHRlc3RzICovCisrICAgICAgICBpZGxlX2NiICgmZGF0YSk7CisgICAg ICAgICByZXR1cm47CisgICAgIH0KKyAKKyAjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCAyMiwg MTYpCisgICAgIG5fbG9vcCsrOworICNlbmRpZgorKworICAgICBndGtfZW50cnlfc2V0X3RleHQg KGVudHJ5LCAiIik7CisrICAgIGdfbWFpbl9sb29wX3F1aXQgKG1fbG9vcCk7CisgfQorIAorKwor IHN0YXRpYyB2b2lkCisgY3JlYXRlX3dpbmRvdyAoKQorIHsKK0BAIC0zMzUsMTQgKzQwMCwxMyBA QCBjcmVhdGVfd2luZG93ICgpCisgICAgIGd0a193aWRnZXRfc2hvd19hbGwgKHdpbmRvdyk7Cisg fQorIAorKworIHN0YXRpYyB2b2lkCisgdGVzdF9jb21wb3NlICh2b2lkKQorIHsKKyAgICAgR0xv Z0xldmVsRmxhZ3MgZmxhZ3M7CistICAgIGlmICghcmVnaXN0ZXJfaWJ1c19lbmdpbmUgKCkpIHsK Ky0gICAgICAgIGdfdGVzdF9mYWlsICgpOworKyAgICBpZiAoIXJlZ2lzdGVyX2lidXNfZW5naW5l ICgpKQorICAgICAgICAgcmV0dXJuOworLSAgICB9CisgCisgICAgIGNyZWF0ZV93aW5kb3cgKCk7 CisgICAgIC8qIEZJWE1FOgorQEAgLTM1Nyw2ICs0MjEsNyBAQCB0ZXN0X2NvbXBvc2UgKHZvaWQp CisgICAgIGdfbG9nX3NldF9hbHdheXNfZmF0YWwgKGZsYWdzKTsKKyB9CisgCisrCisgaW50Cisg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyB7CitAQCAtMzgwLDEwICs0NDUsMTIgQEAg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAjZWxzZQorICAgICB0ZXN0X25hbWUgPSBn X3N0cmR1cCAoZ19nZXRlbnYgKCJMQU5HIikpOworICNlbmRpZgorLSAgICBpZiAoIXRlc3RfbmFt ZSB8fCAhZ19hc2NpaV9zdHJuY2FzZWNtcCAodGVzdF9uYW1lLCAiZW5fVVMiLCA1KSkgeworKyAg ICBpZiAobV9jb21wb3NlX2ZpbGUgJiYKKysgICAgICAgICghdGVzdF9uYW1lIHx8ICFnX2FzY2lp X3N0cm5jYXNlY21wICh0ZXN0X25hbWUsICJlbl9VUyIsIDUpKSkgeworICAgICAgICAgZ19mcmVl ICh0ZXN0X25hbWUpOworICAgICAgICAgdGVzdF9uYW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZSAo bV9jb21wb3NlX2ZpbGUpOworICAgICB9CisrICAgIG1fbG9vcCA9IGdfbWFpbl9sb29wX25ldyAo TlVMTCwgVFJVRSk7CisgICAgIHRlc3RfcGF0aCA9IGdfYnVpbGRfZmlsZW5hbWUgKCIvaWJ1cy1j b21wb3NlIiwgdGVzdF9uYW1lLCBOVUxMKTsKKyAgICAgZ190ZXN0X2FkZF9mdW5jICh0ZXN0X3Bh dGgsIHRlc3RfY29tcG9zZSk7CisgICAgIGdfZnJlZSAodGVzdF9wYXRoKTsKK2RpZmYgLS1naXQg YS9zcmMvdGVzdHMvaWJ1cy1lbmdpbmUtc3dpdGNoLmMgYi9zcmMvdGVzdHMvaWJ1cy1lbmdpbmUt c3dpdGNoLmMKK2luZGV4IGExZWViYTJhLi5iNTBiYWM1OSAxMDA2NDQKKy0tLSBhL3NyYy90ZXN0 cy9pYnVzLWVuZ2luZS1zd2l0Y2guYworKysrIGIvc3JjL3Rlc3RzL2lidXMtZW5naW5lLXN3aXRj aC5jCitAQCAtMSw2ICsxLDcgQEAKKyAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7 IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCisgCisgI2luY2x1ZGUgPHN0cmluZy5oPgor KyNpbmNsdWRlIDx1bmlzdGQuaD4KKyAjaW5jbHVkZSAiaWJ1cy5oIgorIAorIHN0YXRpYyBJQnVz QnVzICpidXM7CitAQCAtNDcsNiArNDgsNyBAQCBjaGFuZ2VfY29udGV4dF9lbmdpbmUgKElCdXNJ bnB1dENvbnRleHQgKmNvbnRleHQpCisgICAgICAgICBnX2Fzc2VydF9jbXBzdHIgKGlidXNfZW5n aW5lX2Rlc2NfZ2V0X25hbWUgKGVuZ2luZV9kZXNjKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgPT0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZV9uYW1lc1tpXSk7CisrICAg ICAgICBnX29iamVjdF91bnJlZiAoZW5naW5lX2Rlc2MpOworICAgICB9CisgfQorIAorQEAgLTYx LDcgKzYzLDcgQEAgc3RhdGljIHZvaWQKKyBnbG9iYWxfZW5naW5lX2NoYW5nZWRfY2IgKElCdXNC dXMgKmJ1cywgZ2NoYXIgKm5hbWUsIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgICAgIEdsb2Jh bEVuZ2luZUNoYW5nZWREYXRhICpkYXRhID0gKEdsb2JhbEVuZ2luZUNoYW5nZWREYXRhICopIHVz ZXJfZGF0YTsKKy0gICAgaWYgKGRhdGEtPmNvdW50KysgPT0gMCkKKysgICAgaWYgKGRhdGEtPmNv dW50KysgPT0gMSkKKyAgICAgICAgIGlidXNfcXVpdCAoKTsKKyB9CisgCitAQCAtODQsNiArODYs MzUgQEAgY2hhbmdlX2dsb2JhbF9lbmdpbmVfY2IgKGdwb2ludGVyIHVzZXJfZGF0YSkKKyAgICAg cmV0dXJuIEZBTFNFOworIH0KKyAKKytnYm9vbGVhbgorK193YWl0X2Zvcl9rZXlfcmVsZWFzZV9j YiAoZ3BvaW50ZXIgdXNlcl9kYXRhKQorK3sKKysgICAgR01haW5Mb29wICpsb29wID0gKEdNYWlu TG9vcCAqKXVzZXJfZGF0YTsKKysgICAgLyogSWYgdGhpcyBwcm9ncmFtIGlzIGludm9rZWQgYnkg bWFudWFsIHdpdGggRW50ZXIga2V5IGluIEdOT01FCisrICAgICAqIFdheWxhbmQgc2Vzc2lvbiwg aWJ1c19pbnB1dF9jb250ZXh0X2ZvY3VzX2luKCkgY2FuIGJlIGNhbGxlZCBpbgorKyAgICAgKiB0 ZXN0X2NvbnRleHRfZW5naW5lX3NldF9ieV9nbG9iYWwoKSBiZWZvcmUgdGhlIGtleSByZWxlYXNl IG9mCisrICAgICAqIHRoZSBFbnRlciBrZXkgc28gaWJ1cy9idXMvaW5wdXRjb250ZXh0LmM6X2lj X3Byb2Nlc3Nfa2V5X2V2ZW50KCkKKysgICAgICogY291bGQgY2FsbCBhbm90aGVyIGJ1c19pbnB1 dF9jb250ZXh0X2ZvY3VzX2luKCkgaW4gdGhhdCB0ZXN0IGNhc2UKKysgICAgICogYW5kIGZhaWwu CisrICAgICAqLworKyAgICBnX3Rlc3RfbWVzc2FnZSAoIldhaXQgZm9yIDMgc2Vjb25kcyBmb3Ig a2V5IHJlbGVhc2UgZXZlbnQiKTsKKysgICAgZ19tYWluX2xvb3BfcXVpdCAobG9vcCk7CisrICAg IHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CisrfQorKworK3N0YXRpYyB2b2lkCisrdGVzdF9pbml0 ICh2b2lkKQorK3sKKysgICAgY2hhciAqdHR5X25hbWUgPSB0dHluYW1lIChTVERJTl9GSUxFTk8p OworKyAgICBHTWFpbkxvb3AgKmxvb3AgPSBnX21haW5fbG9vcF9uZXcgKE5VTEwsIFRSVUUpOwor KyAgICBnX3Rlc3RfbWVzc2FnZSAoIlRlc3Qgb24gJXMiLCB0dHlfbmFtZSA/IHR0eV9uYW1lIDog IihudWxsKSIpOworKyAgICBpZiAodHR5X25hbWUgJiYgZ19zdHJzdHJfbGVuICh0dHlfbmFtZSwg LTEsICJwdHMiKSkgeworKyAgICAgICAgZ190aW1lb3V0X2FkZF9zZWNvbmRzICgzLCBfd2FpdF9m b3Jfa2V5X3JlbGVhc2VfY2IsIGxvb3ApOworKyAgICAgICAgZ19tYWluX2xvb3BfcnVuIChsb29w KTsKKysgICAgfQorKyAgICBnX21haW5fbG9vcF91bnJlZiAobG9vcCk7CisrfQorKworIHN0YXRp YyB2b2lkCisgdGVzdF9nbG9iYWxfZW5naW5lICh2b2lkKQorIHsKK0BAIC0xMDUsNiArMTM2LDEw IEBAIHRlc3RfZ2xvYmFsX2VuZ2luZSAodm9pZCkKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIGRh dGEucmV2ZXJzZSA9IEZBTFNFOworICAgICB9CisrICAgIGdfdGVzdF9tZXNzYWdlICgiSW5pdGlh bCBlbmdpbmUgbmFtZTogJXMiLAorKyAgICAgICAgICAgICAgICAgICAgZGVzYyA/IGlidXNfZW5n aW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2MpIDogIihudWxsKSIpOworKyAgICBpZiAoZGVzYykKKysg ICAgICAgIGdfb2JqZWN0X3VucmVmIChkZXNjKTsKKyAKKyAgICAgZGF0YS5jb3VudCA9IDA7Cisg CitAQCAtMTEyLDcgKzE0Nyw3IEBAIHRlc3RfZ2xvYmFsX2VuZ2luZSAodm9pZCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnbG9iYWwtZW5naW5lLWNoYW5nZWQiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoZ2xvYmFsX2VuZ2lu ZV9jaGFuZ2VkX2NiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRh KTsKKy0gICAgZGF0YS50aW1lb3V0X2lkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzICgxLCB0aW1l b3V0X2NiLCAmZGF0YSk7CisrICAgIGRhdGEudGltZW91dF9pZCA9IGdfdGltZW91dF9hZGRfc2Vj b25kcyAoMywgdGltZW91dF9jYiwgJmRhdGEpOworICAgICBkYXRhLmlkbGVfaWQgPSBnX2lkbGVf YWRkICgoR1NvdXJjZUZ1bmMpIGNoYW5nZV9nbG9iYWxfZW5naW5lX2NiLCAmZGF0YSk7CisgCisg ICAgIGlidXNfbWFpbiAoKTsKK0BAIC0xNDQsNiArMTc5LDcgQEAgdGVzdF9jb250ZXh0X2VuZ2lu ZSAodm9pZCkKKyAgICAgY2hhbmdlX2NvbnRleHRfZW5naW5lIChjb250ZXh0KTsKKyAgICAgZW5n aW5lX2Rlc2MgPSBpYnVzX2lucHV0X2NvbnRleHRfZ2V0X2VuZ2luZSAoY29udGV4dCk7CisgICAg IGdfYXNzZXJ0X2NtcHN0ciAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZW5naW5lX2Rlc2Mp LCA9PSwgQUZURVJfRU5HSU5FKTsKKysgICAgZ19vYmplY3RfdW5yZWYgKGVuZ2luZV9kZXNjKTsK KyAKKyAgICAgZ19vYmplY3RfdW5yZWYgKGNvbnRleHQpOworIH0KK0BAIC0xNzEsNiArMjA3LDcg QEAgdGVzdF9jb250ZXh0X2VuZ2luZV9zZXRfYnlfZ2xvYmFsICh2b2lkKQorIAorICAgICBlbmdp bmVfZGVzYyA9IGlidXNfaW5wdXRfY29udGV4dF9nZXRfZW5naW5lIChjb250ZXh0KTsKKyAgICAg Z19hc3NlcnRfY21wc3RyIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChlbmdpbmVfZGVzYyks ID09LCBBRlRFUl9FTkdJTkUpOworKyAgICBnX29iamVjdF91bnJlZiAoZW5naW5lX2Rlc2MpOwor IAorICAgICBnX29iamVjdF91bnJlZiAoY29udGV4dCk7CisgfQorQEAgLTE5OSw5ICsyMzYsMTEg QEAgdGVzdF9jb250ZXh0X2VuZ2luZV9zZXRfYnlfZm9jdXMgKHZvaWQpCisgCisgICAgIGVuZ2lu ZV9kZXNjID0gaWJ1c19pbnB1dF9jb250ZXh0X2dldF9lbmdpbmUgKGNvbnRleHQpOworICAgICBn X2Fzc2VydF9jbXBzdHIgKGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGVuZ2luZV9kZXNjKSwg PT0sICJkdW1teSIpOworKyAgICBnX29iamVjdF91bnJlZiAoZW5naW5lX2Rlc2MpOworIAorICAg ICBlbmdpbmVfZGVzYyA9IGlidXNfaW5wdXRfY29udGV4dF9nZXRfZW5naW5lIChhbm90aGVyX2Nv bnRleHQpOworICAgICBnX2Fzc2VydF9jbXBzdHIgKGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUg KGVuZ2luZV9kZXNjKSwgPT0sIEFGVEVSX0VOR0lORSk7CisrICAgIGdfb2JqZWN0X3VucmVmIChl bmdpbmVfZGVzYyk7CisgCisgICAgIGdfb2JqZWN0X3VucmVmIChjb250ZXh0KTsKKyAgICAgZ19v YmplY3RfdW5yZWYgKGFub3RoZXJfY29udGV4dCk7CitAQCAtMjIwLDYgKzI1OSw4IEBAIG1haW4g KGdpbnQgICAgYXJnYywKKyAKKyAgICAgaWJ1c19idXNfc2V0X3dhdGNoX2lidXNfc2lnbmFsIChi dXMsIFRSVUUpOworIAorKyAgICBnX3Rlc3RfYWRkX2Z1bmMgKCIvaWJ1cy9lbmdpbmUtc3dpdGNo L3Rlc3QtaW5pdCIsCisrICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbml0KTsKKyAgICAgZ190 ZXN0X2FkZF9mdW5jICgiL2lidXMvZW5naW5lLXN3aXRjaC9nbG9iYWwtZW5naW5lIiwKKyAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X2dsb2JhbF9lbmdpbmUpOworICAgICBnX3Rlc3RfYWRkX2Z1 bmMgKCIvaWJ1cy9lbmdpbmUtc3dpdGNoL2NvbnRleHQtZW5naW5lIiwKK2RpZmYgLS1naXQgYS9z cmMvdGVzdHMveGtiLWxhdGluLWxheW91dHMgYi9zcmMvdGVzdHMveGtiLWxhdGluLWxheW91dHMK K2luZGV4IDkyNDY0MjM0Li40NWM5OTM1OCAxMDA3NTUKKy0tLSBhL3NyYy90ZXN0cy94a2ItbGF0 aW4tbGF5b3V0cworKysrIGIvc3JjL3Rlc3RzL3hrYi1sYXRpbi1sYXlvdXRzCitAQCAtMTIwLDYg KzEyMCwxNSBAQCBFT0ZfUkVBRF9YS0IKKyAKKyBtYWluKCkKKyB7CisrICAgIGlmIFsgeCIkRElT UExBWSIgPSB4IF0gOyB0aGVuCisrICAgICAgICBlY2hvICJza2lwOiBObyBkaXNwbGF5LiBNYXli ZSBoZWFkbGVzcyBtb2RlLiIKKysgICAgICAgIGV4aXQgNzcKKysgICAgZmkKKysgICAgaWYgISB3 aGljaCBzZXR4a2JtYXAgPiAvZGV2L251bGwgOyB0aGVuCisrICAgICAgICBlY2hvICJza2lwOiBO byBzZXR4a2JtYXAiCisrICAgICAgICBleGl0IDc3CisrICAgIGZpCisrCisgICAgIHBhcnNlX2Fy Z3MgIiRAIgorIAorICAgICBpZiBbIHgiJElOU1RBTExFRF9TQ0hFTUFTX0RJUiIgIT0geCBdIDsg dGhlbgorLS0gCisyLjQ1LjAKKworRnJvbSA0NGY5YTU5NTdlNGM1M2I0YTZlNmIzZjQyYjU2ZjJk MjBkNThhMjFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogU2F0LCAyNyBKdWwgMjAyNCAxOTowNDozOSAr MDkwMAorU3ViamVjdDogW1BBVENIIDMvNl0gc3JjL3Rlc3RzOiBFbmFibGUgR1RLNAorCitTZWVt cyBHVEszIGRvZXMgbm90IHdvcmsgaW4gR05PTUUgV2F5bGFuZCBoZWFkbGVzcyBzZXNzaW9uIHRv IGdldAorR2RrTW9uaXRvciBpbiBndGtfaW5pdCgpIGFuZCB0cnlpbmcgdG8gbWlncmF0ZSB0aGUg dGVzdCBjYXNlcyB0bworR1RLNC4KK0NhbGxpbmcgaWJ1c19pbml0KCkgdHdpY2Ugd2l0aCBnX3N0 YXRpY19yZXNvdXJjZV9pbml0KCkgY2F1c2VzIGEKK21lbW9yeSBlcnJvciBhbmQgZml4IGl0Lgor CitCVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI2NTcKKy0tLQorIHNyYy90 ZXN0cy9NYWtlZmlsZS5hbSAgICAgfCAgIDggKy0tCisgc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5j ICB8IDE0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQorIHNyYy90ZXN0 cy9pYnVzLWtleXByZXNzLmMgfCAxNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMjUxIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL01ha2VmaWxlLmFtIGIvc3JjL3Rlc3RzL01ha2Vm aWxlLmFtCitpbmRleCA2YzRjODZjZi4uMTBhY2QwYTcgMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMv TWFrZWZpbGUuYW0KKysrKyBiL3NyYy90ZXN0cy9NYWtlZmlsZS5hbQorQEAgLTE4Miw4ICsxODIs OCBAQCBpYnVzX2J1c19TT1VSQ0VTID0gaWJ1cy1idXMuYworIGlidXNfYnVzX0xEQUREID0gJChw cm9nX2xkYWRkKQorIAorIGlidXNfY29tcG9zZV9TT1VSQ0VTID0gaWJ1cy1jb21wb3NlLmMKKy1p YnVzX2NvbXBvc2VfQ0ZMQUdTID0gQEdUSzNfQ0ZMQUdTQAorLWlidXNfY29tcG9zZV9MREFERCA9 ICQocHJvZ19sZGFkZCkgQEdUSzNfTElCU0AKKytpYnVzX2NvbXBvc2VfQ0ZMQUdTID0gQEdUSzRf Q0ZMQUdTQAorK2lidXNfY29tcG9zZV9MREFERCA9ICQocHJvZ19sZGFkZCkgQEdUSzRfTElCU0AK KyAKKyBpYnVzX2NvbmZpZ19TT1VSQ0VTID0gaWJ1cy1jb25maWcuYworIGlidXNfY29uZmlnX0xE QUREID0gJChwcm9nX2xkYWRkKQorQEAgLTIwNyw4ICsyMDcsOCBAQCBpYnVzX2tleW5hbWVzX1NP VVJDRVMgPSBpYnVzLWtleW5hbWVzLmMKKyBpYnVzX2tleW5hbWVzX0xEQUREID0gJChwcm9nX2xk YWRkKQorIAorIGlidXNfa2V5cHJlc3NfU09VUkNFUyA9IGlidXMta2V5cHJlc3MuYworLWlidXNf a2V5cHJlc3NfQ0ZMQUdTID0gQEdUSzNfQ0ZMQUdTQCBAWFRFU1RfQ0ZMQUdTQAorLWlidXNfa2V5 cHJlc3NfTERBREQgPSAkKHByb2dfbGRhZGQpIEBHVEszX0xJQlNAIEBYVEVTVF9MSUJTQAorK2li dXNfa2V5cHJlc3NfQ0ZMQUdTID0gQEdUSzRfQ0ZMQUdTQCBAWFRFU1RfQ0ZMQUdTQAorK2lidXNf a2V5cHJlc3NfTERBREQgPSAkKHByb2dfbGRhZGQpIEBHVEs0X0xJQlNAIEBYVEVTVF9MSUJTQAor IAorIGlidXNfcmVnaXN0cnlfU09VUkNFUyA9IGlidXMtcmVnaXN0cnkuYworIGlidXNfcmVnaXN0 cnlfTERBREQgPSAkKHByb2dfbGRhZGQpCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtY29t cG9zZS5jIGIvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5jCitpbmRleCA2NjBhZWU3Zi4uNTc4NTFi MGEgMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMKKysrKyBiL3NyYy90ZXN0 cy9pYnVzLWNvbXBvc2UuYworQEAgLTEzLDYgKzEzLDkgQEAgc3RhdGljIElCdXNDb21wb3NlVGFi bGVFeCAqbV9jb21wb3NlX3RhYmxlOworIHN0YXRpYyBJQnVzRW5naW5lICptX2VuZ2luZTsKKyBz dGF0aWMgZ2NoYXIgKm1fc3JjZGlyOworIHN0YXRpYyBHTWFpbkxvb3AgKm1fbG9vcDsKKysjaWYg R1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrc3RhdGljIGdib29sZWFuIG1fbGlzdF90b3Bs ZXZlbDsKKysjZW5kaWYKKyAKKyB0eXBlZGVmIGVudW0geworICAgICBURVNUX0NSRUFURV9FTkdJ TkUsCitAQCAtMjUsOSArMjgsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgX1Rlc3RJZGxlRGF0YSB7Cisg fSBUZXN0SWRsZURhdGE7CisgCisgZXh0ZXJuIGd1aW50IGlidXNfY29tcG9zZV9rZXlfZmxhZyAo Z3VpbnQga2V5KTsKKysKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrc3RhdGlj IHZvaWQgICAgIGV2ZW50X2NvbnRyb2xsZXJfZW50ZXJfY2IgKEd0a0V2ZW50Q29udHJvbGxlciAq Y29udHJvbGxlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3BvaW50ZXIgICAgICAgICAgICB1c2VyX2RhdGEpOworKyNlbHNlCisgc3RhdGljIGdib29sZWFu IHdpbmRvd19mb2N1c19pbl9ldmVudF9jYiAoR3RrV2lkZ2V0ICAgICAqZW50cnksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrRXZlbnRGb2N1cyAqZXZlbnQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAg ICAgZGF0YSk7CisrI2VuZGlmCisrCisgCisgc3RhdGljIGdjaGFyICoKKyBnZXRfY29tcG9zZV9w YXRoICgpCitAQCAtNzYsNyArODYsMTEgQEAgaWRsZV9jYiAoZ3BvaW50ZXIgdXNlcl9kYXRhKQor ICAgICAgICAgICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nIChtX2xvb3ApKQorICAgICAg ICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0IChtX2xvb3ApOworICAgICAgICAgICAgIGdfY2xl YXJfcG9pbnRlciAoJm1fbG9vcCwgZ19tYWluX2xvb3BfdW5yZWYpOworKyNpZiBHVEtfQ0hFQ0tf VkVSU0lPTiAoNCwgMCwgMCkKKysgICAgICAgICAgICBtX2xpc3RfdG9wbGV2ZWwgPSBGQUxTRTsK KysjZWxzZQorICAgICAgICAgICAgIGd0a19tYWluX3F1aXQgKCk7CisrI2VuZGlmCisgICAgICAg ICB9CisgICAgICAgICBkYXRhLT5pZGxlX2lkID0gMDsKKyAgICAgICAgIGJyZWFrOworQEAgLTE3 MCwxMyArMTg0LDI4IEBAIHJlZ2lzdGVyX2lidXNfZW5naW5lICgpCisgfQorIAorIAorK3N0YXRp YyB2b2lkCisrd2luZG93X2Rlc3Ryb3lfY2IgKHZvaWQpCisreworKyNpZiBHVEtfQ0hFQ0tfVkVS U0lPTiAoNCwgMCwgMCkKKysgICAgbV9saXN0X3RvcGxldmVsID0gRkFMU0U7CisrI2Vsc2UKKysg ICAgZ3RrX21haW5fcXVpdCAoKTsKKysjZW5kaWYKKyt9CisrCisrCisgc3RhdGljIHZvaWQKKyBz ZXRfZW5naW5lX2NiIChHT2JqZWN0ICAgICAgKm9iamVjdCwKKyAgICAgICAgICAgICAgICBHQXN5 bmNSZXN1bHQgKnJlcywKKyAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgIHVzZXJfZGF0YSkK KyB7CisgICAgIElCdXNCdXMgKmJ1cyA9IElCVVNfQlVTIChvYmplY3QpOworKyNpZiBHVEtfQ0hF Q0tfVkVSU0lPTiAoNCwgMCwgMCkKKysgICAgR3RrRXZlbnRDb250cm9sbGVyICpjb250cm9sbGVy ID0gR1RLX0VWRU5UX0NPTlRST0xMRVIgKHVzZXJfZGF0YSk7CisrI2Vsc2UKKyAgICAgR3RrV2lk Z2V0ICplbnRyeSA9IEdUS19XSURHRVQgKHVzZXJfZGF0YSk7CisrI2VuZGlmCisgICAgIEdFcnJv ciAqZXJyb3IgPSBOVUxMOworICAgICBzdGF0aWMgVGVzdElkbGVEYXRhIGRhdGEgPSB7IC5jYXRl Z29yeSA9IFRFU1RfQ09NTUlUX1RFWFQsIC5pZGxlX2lkID0gMCB9OworICAgICBpbnQgaSwgajsK K0BAIC0yNTQsMjQgKzI4Myw1NSBAQCBzZXRfZW5naW5lX2NiIChHT2JqZWN0ICAgICAgKm9iamVj dCwKKyAgICAgICAgIH0KKyAgICAgfQorIAorKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwgMCwg MCkKKysgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jICgKKysgICAgICAg ICAgICBjb250cm9sbGVyLAorKyAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKGV2ZW50X2NvbnRyb2xs ZXJfZW50ZXJfY2IpLAorKyAgICAgICAgICAgIE5VTEwpOworKyNlbHNlCisgICAgIGdfc2lnbmFs X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyAoZW50cnksIAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHdpbmRvd19mb2N1c19pbl9ldmVu dF9jYiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7 CisrI2VuZGlmCisgICAgIGRhdGEuaWRsZV9pZCA9IGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMTAs IGlkbGVfY2IsICZkYXRhKTsKKyB9CisgCistc3RhdGljIGdib29sZWFuCistd2luZG93X2ZvY3Vz X2luX2V2ZW50X2NiIChHdGtXaWRnZXQgKmVudHJ5LCBHZGtFdmVudEZvY3VzICpldmVudCwgZ3Bv aW50ZXIgZGF0YSkKKysKKytzdGF0aWMgdm9pZAorK3NldF9lbmdpbmUgKGdwb2ludGVyIHVzZXJf ZGF0YSkKKyB7CisrICAgIGdfdGVzdF9tZXNzYWdlICgic2V0X2VuZ2luZSgpIGlzIGNhbGxpbmci KTsKKyAgICAgZ19hc3NlcnQgKG1fYnVzICE9IE5VTEwpOworICAgICBpYnVzX2J1c19zZXRfZ2xv YmFsX2VuZ2luZV9hc3luYyAobV9idXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAieGtidGVzdDp1czo6ZW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldF9lbmdpbmVfY2Is CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSk7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOworK30KKysKKysKKysj aWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrc3RhdGljIHZvaWQKKytldmVudF9jb250 cm9sbGVyX2VudGVyX2NiIChHdGtFdmVudENvbnRyb2xsZXIgKmNvbnRyb2xsZXIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICB1c2VyX2RhdGEpCisrewor KyAgICBnX3Rlc3RfbWVzc2FnZSAoIkV2ZW50Q29udHJvbGxlciBlbWl0cyBcImVudGVyXCIgc2ln bmFsIik7CisrICAgIHNldF9lbmdpbmUgKGNvbnRyb2xsZXIpOworK30KKysKKysjZWxzZQorKwor K3N0YXRpYyBnYm9vbGVhbgorK3dpbmRvd19mb2N1c19pbl9ldmVudF9jYiAoR3RrV2lkZ2V0ICAg ICAqZW50cnksCisrICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtFdmVudEZvY3VzICpldmVu dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgIGRhdGEpCisrewor KyAgICBnX3Rlc3RfbWVzc2FnZSAoIkVudHJ5IGVtaXRzIFwiZm9jdXMtaW4tZXZlbnRcIiBzaWdu YWwiKTsKKysgICAgc2V0X2VuZ2luZSAoZW50cnkpOworICAgICByZXR1cm4gRkFMU0U7CisgfQor KyNlbmRpZgorIAorIAorIHN0YXRpYyB2b2lkCitAQCAtMjkzLDcgKzM1Myw5IEBAIHdpbmRvd19p bnNlcnRlZF90ZXh0X2NiIChHdGtFbnRyeUJ1ZmZlciAqYnVmZmVyLAorICAgICBpbnQgc2VxOwor ICAgICBndW5pY2hhciBjb2RlID0gZ191dGY4X2dldF9jaGFyIChjaGFycyk7CisgICAgIGNvbnN0 IGdjaGFyICp0ZXN0OworKyNpZiAhIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorICAgICBH dGtFbnRyeSAqZW50cnkgPSBHVEtfRU5UUlkgKHVzZXJfZGF0YSk7CisrI2VuZGlmCisgICAgIElC dXNDb21wb3NlVGFibGVQcml2YXRlICpwcml2OworICAgICBzdGF0aWMgVGVzdElkbGVEYXRhIGRh dGEgPSB7IC5jYXRlZ29yeSA9IFRFU1RfQ09NTUlUX1RFWFQsIC5pZGxlX2lkID0gMCB9OworIAor QEAgLTMwNiw2ICszNjgsMTAgQEAgd2luZG93X2luc2VydGVkX3RleHRfY2IgKEd0a0VudHJ5QnVm ZmVyICpidWZmZXIsCisgICAgICAgICBuX2xvb3AgPSAwOworICAgICAgICAgcmV0dXJuOworICAg ICB9CisrI2VuZGlmCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorKyAgICBpZiAo Y29kZSA9PSAwKQorKyAgICAgICAgcmV0dXJuOworICNlbmRpZgorICAgICBpID0gc3RyaWRlICsg KG1fY29tcG9zZV90YWJsZS0+bWF4X3NlcV9sZW4gKyAyKSAtIDI7CisgICAgIHNlcSA9IChpICsg MikgLyAobV9jb21wb3NlX3RhYmxlLT5tYXhfc2VxX2xlbiArIDIpOworQEAgLTMxOCwxMiArMzg0 LDEyIEBAIHdpbmRvd19pbnNlcnRlZF90ZXh0X2NiIChHdGtFbnRyeUJ1ZmZlciAqYnVmZmVyLAor ICAgICAgICAgICAgIHRlc3QgPSBSRUQgIkZBSUwiIE5DOworICAgICAgICAgICAgIGdfdGVzdF9m YWlsICgpOworICAgICAgICAgfQorLSAgICAgICAgZ19wcmludCAoIiUwNWQvJTA1ZCAlcyBleHBl Y3RlZDogJTA0WCB0eXBlZDogJTA0WFxuIiwKKy0gICAgICAgICAgICAgICAgIHNlcSwKKy0gICAg ICAgICAgICAgICAgIG1fY29tcG9zZV90YWJsZS0+bl9zZXFzLAorLSAgICAgICAgICAgICAgICAg dGVzdCwKKy0gICAgICAgICAgICAgICAgIG1fY29tcG9zZV90YWJsZS0+ZGF0YVtpXSwKKy0gICAg ICAgICAgICAgICAgIGNvZGUpOworKyAgICAgICAgZ190ZXN0X21lc3NhZ2UgKCIlMDVkLyUwNWQg JXMgZXhwZWN0ZWQ6ICUwNFggdHlwZWQ6ICUwNFgiLAorKyAgICAgICAgICAgICAgICAgICAgICAg IHNlcSwKKysgICAgICAgICAgICAgICAgICAgICAgICBtX2NvbXBvc2VfdGFibGUtPm5fc2VxcywK KysgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LAorKyAgICAgICAgICAgICAgICAgICAgICAg IG1fY29tcG9zZV90YWJsZS0+ZGF0YVtpXSwKKysgICAgICAgICAgICAgICAgICAgICAgICBjb2Rl KTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIGNvbnN0IGdjaGFyICpwID0gY2hhcnM7CisgICAg ICAgICBndWludCBudW0gPSBwcml2LT5kYXRhX2ZpcnN0W2ldOworQEAgLTM0NCwxNCArNDEwLDE0 IEBAIHdpbmRvd19pbnNlcnRlZF90ZXh0X2NiIChHdGtFbnRyeUJ1ZmZlciAqYnVmZmVyLAorICAg ICAgICAgICAgIHRlc3QgPSBSRUQgIkZBSUwiIE5DOworICAgICAgICAgICAgIGdfdGVzdF9mYWls ICgpOworICAgICAgICAgfQorLSAgICAgICAgZ19wcmludCAoIiUwNWQvJTA1bGQgJXMgZXhwZWN0 ZWQ6ICUwNFhbJWRdIHR5cGVkOiAlMDRYXG4iLAorLSAgICAgICAgICAgICAgICAgc2VxLAorLSAg ICAgICAgICAgICAgICAgcHJpdi0+Zmlyc3Rfbl9zZXFzLAorLSAgICAgICAgICAgICAgICAgdGVz dCwKKy0gICAgICAgICAgICAgICAgIHZhbGlkX291dHB1dCA/IHByaXYtPmRhdGFfc2Vjb25kW2lu ZGV4XQorLSAgICAgICAgICAgICAgICAgICAgICAgICA6IHByaXYtPmRhdGFfc2Vjb25kW2luZGV4 ICsgal0sCistICAgICAgICAgICAgICAgICB2YWxpZF9vdXRwdXQgPyBpbmRleCArIG51bSA6IGlu ZGV4ICsgaiwKKy0gICAgICAgICAgICAgICAgIHZhbGlkX291dHB1dCA/IGdfdXRmOF9nZXRfY2hh ciAoY2hhcnMpIDogY29kZSk7CisrICAgICAgICBnX3Rlc3RfbWVzc2FnZSAoIiUwNWQvJTA1bGQg JXMgZXhwZWN0ZWQ6ICUwNFhbJWRdIHR5cGVkOiAlMDRYIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICBzZXEsCisrICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Zmlyc3Rfbl9zZXFzLAor KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAg dmFsaWRfb3V0cHV0ID8gcHJpdi0+ZGF0YV9zZWNvbmRbaW5kZXhdCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IHByaXYtPmRhdGFfc2Vjb25kW2luZGV4ICsgal0sCisrICAgICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfb3V0cHV0ID8gaW5kZXggKyBudW0gOiBpbmRleCArIGos CisrICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfb3V0cHV0ID8gZ191dGY4X2dldF9jaGFy IChjaGFycykgOiBjb2RlKTsKKyAgICAgfQorIAorICAgICBzdHJpZGUgKz0gbV9jb21wb3NlX3Rh YmxlLT5tYXhfc2VxX2xlbiArIDI7CitAQCAtMzc3LDcgKzQ0MywxMSBAQCB3aW5kb3dfaW5zZXJ0 ZWRfdGV4dF9jYiAoR3RrRW50cnlCdWZmZXIgKmJ1ZmZlciwKKyAgICAgbl9sb29wKys7CisgI2Vu ZGlmCisgCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorKyAgICBndGtfZW50cnlf YnVmZmVyX3NldF90ZXh0IChidWZmZXIsICIiLCAwKTsKKysjZWxzZQorICAgICBndGtfZW50cnlf c2V0X3RleHQgKGVudHJ5LCAiIik7CisrI2VuZGlmCisgICAgIGdfbWFpbl9sb29wX3F1aXQgKG1f bG9vcCk7CisgfQorIAorQEAgLTM4NSwxOSArNDU1LDQzIEBAIHdpbmRvd19pbnNlcnRlZF90ZXh0 X2NiIChHdGtFbnRyeUJ1ZmZlciAqYnVmZmVyLAorIHN0YXRpYyB2b2lkCisgY3JlYXRlX3dpbmRv dyAoKQorIHsKKy0gICAgR3RrV2lkZ2V0ICp3aW5kb3cgPSBndGtfd2luZG93X25ldyAoR1RLX1dJ TkRPV19UT1BMRVZFTCk7CistICAgIEd0a1dpZGdldCAqZW50cnkgPSBndGtfZW50cnlfbmV3ICgp OworKyAgICBHdGtXaWRnZXQgKndpbmRvdzsKKysgICAgR3RrV2lkZ2V0ICplbnRyeTsKKyAgICAg R3RrRW50cnlCdWZmZXIgKmJ1ZmZlcjsKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDAp CisrICAgIEd0a0V2ZW50Q29udHJvbGxlciAqY29udHJvbGxlcjsKKysgICAgR3RrRWRpdGFibGUg KnRleHQ7CisrCisrICAgIHdpbmRvdyA9IGd0a193aW5kb3dfbmV3ICgpOworKyNlbHNlCisrICAg IHdpbmRvdyA9IGd0a193aW5kb3dfbmV3IChHVEtfV0lORE9XX1RPUExFVkVMKTsKKysjZW5kaWYK KysgICAgZW50cnkgPSBndGtfZW50cnlfbmV3ICgpOworIAorICAgICBnX3NpZ25hbF9jb25uZWN0 ICh3aW5kb3csICJkZXN0cm95IiwKKy0gICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAo Z3RrX21haW5fcXVpdCksIE5VTEwpOworKyAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNL ICh3aW5kb3dfZGVzdHJveV9jYiksIE5VTEwpOworKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwg MCwgMCkKKysgICAgY29udHJvbGxlciA9IGd0a19ldmVudF9jb250cm9sbGVyX2ZvY3VzX25ldyAo KTsKKysgICAgdGV4dCA9IGd0a19lZGl0YWJsZV9nZXRfZGVsZWdhdGUgKEdUS19FRElUQUJMRSAo ZW50cnkpKTsKKysgICAgZ19zaWduYWxfY29ubmVjdCAoY29udHJvbGxlciwgImVudGVyIiwKKysg ICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoZXZlbnRfY29udHJvbGxlcl9lbnRlcl9j YiksIE5VTEwpOworKyAgICBndGtfd2lkZ2V0X2FkZF9jb250cm9sbGVyIChHVEtfV0lER0VUICh0 ZXh0KSwgY29udHJvbGxlcik7CisrI2Vsc2UKKyAgICAgZ19zaWduYWxfY29ubmVjdCAoZW50cnks ICJmb2N1cy1pbi1ldmVudCIsCisgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHdp bmRvd19mb2N1c19pbl9ldmVudF9jYiksIE5VTEwpOworKyNlbmRpZgorICAgICBidWZmZXIgPSBn dGtfZW50cnlfZ2V0X2J1ZmZlciAoR1RLX0VOVFJZIChlbnRyeSkpOworICAgICBnX3NpZ25hbF9j b25uZWN0IChidWZmZXIsICJpbnNlcnRlZC10ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg R19DQUxMQkFDSyAod2luZG93X2luc2VydGVkX3RleHRfY2IpLCBlbnRyeSk7CisrCisrI2lmIEdU S19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorKyAgICBndGtfd2luZG93X3NldF9jaGlsZCAoR1RL X1dJTkRPVyAod2luZG93KSwgZW50cnkpOworKyAgICBndGtfd2luZG93X3NldF9mb2N1cyAoR1RL X1dJTkRPVyAod2luZG93KSwgZW50cnkpOworKyAgICBndGtfd2luZG93X3ByZXNlbnQgKEdUS19X SU5ET1cgKHdpbmRvdykpOworKyNlbHNlCisgICAgIGd0a19jb250YWluZXJfYWRkIChHVEtfQ09O VEFJTkVSICh3aW5kb3cpLCBlbnRyeSk7CisgICAgIGd0a193aWRnZXRfc2hvd19hbGwgKHdpbmRv dyk7CisrI2VuZGlmCisgfQorIAorIAorQEAgLTQwOCw2ICs1MDIsOSBAQCB0ZXN0X2NvbXBvc2Ug KHZvaWQpCisgICAgIGlmICghcmVnaXN0ZXJfaWJ1c19lbmdpbmUgKCkpCisgICAgICAgICByZXR1 cm47CisgCisrI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorKyAgICBtX2xpc3RfdG9w bGV2ZWwgPSBUUlVFOworKyNlbmRpZgorICAgICBjcmVhdGVfd2luZG93ICgpOworICAgICAvKiBG SVhNRToKKyAgICAgICogSUJ1c0lNQ29udGV4dCBvcGVucyBHdGtJTUNvbnRleHRTaW1wbGUgYXMg dGhlIHNsYXZlIGFuZAorQEAgLTQxNyw3ICs1MTQsMTMgQEAgdGVzdF9jb21wb3NlICh2b2lkKQor ICAgICAgIiAiR1RLKyBzdXBwb3J0cyB0byBvdXRwdXQgb25lIGNoYXIgb25seTogIgorICAgICAg Ki8KKyAgICAgZmxhZ3MgPSBnX2xvZ19zZXRfYWx3YXlzX2ZhdGFsIChHX0xPR19MRVZFTF9DUklU SUNBTCk7CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorKyAgICBndGtfd2luZG93 X2xpc3RfdG9wbGV2ZWxzICgpOworKyAgICB3aGlsZSAobV9saXN0X3RvcGxldmVsKQorKyAgICAg ICAgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uIChOVUxMLCBUUlVFKTsKKysjZWxzZQorICAgICBn dGtfbWFpbiAoKTsKKysjZW5kaWYKKyAgICAgZ19sb2dfc2V0X2Fsd2F5c19mYXRhbCAoZmxhZ3Mp OworIH0KKyAKK0BAIC00MzUsNyArNTM4LDExIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2 W10pCisgICAgIGlmICghZ19zZXRlbnYgKCJOT19BVF9CUklER0UiLCAiMSIsIFRSVUUpKQorICAg ICAgICAgZ19tZXNzYWdlICgiRmFpbGVkIHNldGVudiBOT19BVF9CUklER0VcbiIpOworICAgICBn X3Rlc3RfaW5pdCAoJmFyZ2MsICZhcmd2LCBOVUxMKTsKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04g KDQsIDAsIDApCisrICAgIGd0a19pbml0ICgpOworKyNlbHNlCisgICAgIGd0a19pbml0ICgmYXJn YywgJmFyZ3YpOworKyNlbmRpZgorIAorICAgICBtX3NyY2RpciA9IChhcmdjID4gMSAmJiBzdHJs ZW4gKGFyZ3ZbMV0pIDwgRklMRU5BTUVfTUFYKQorICAgICAgICAgICAgID8gZ19zdHJkdXAgKGFy Z3ZbMV0pIDogZ19zdHJkdXAgKCIuIik7CitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMta2V5 cHJlc3MuYyBiL3NyYy90ZXN0cy9pYnVzLWtleXByZXNzLmMKK2luZGV4IGQ0NGYzOWIyLi5hOTI4 ODI2MCAxMDA2NDQKKy0tLSBhL3NyYy90ZXN0cy9pYnVzLWtleXByZXNzLmMKKysrKyBiL3NyYy90 ZXN0cy9pYnVzLWtleXByZXNzLmMKK0BAIC0xLDEyICsxLDE2IEBACisgI2luY2x1ZGUgPGd0ay9n dGsuaD4KKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrI2luY2x1ZGUgPGdkay94 MTEvZ2RreC5oPgorKyNlbHNlCisgI2luY2x1ZGUgPGdkay9nZGt4Lmg+CisrI2VuZGlmCisgI2lu Y2x1ZGUgImlidXMuaCIKKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPFgxMS9YbGli Lmg+CisgI2luY2x1ZGUgPFgxMS9leHRlbnNpb25zL1hUZXN0Lmg+CisgCisgI2lmZGVmIEdES19X SU5ET1dJTkdfV0FZTEFORAorLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisrI2lm IEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorICNpbmNsdWRlIDxnZGsvd2F5bGFuZC9nZGt3 YXlsYW5kLmg+CisgI2Vsc2UKKyAjaW5jbHVkZSA8Z2RrL2dka3dheWxhbmQuaD4KK0BAIC01MSwx MiArNTUsMTggQEAgc3RhdGljIGNvbnN0IGd1bmljaGFyIHRlc3RfcmVzdWx0c1tdWzYwXSA9IHsK KyB9OworIAorIAorLUlCdXNCdXMgKm1fYnVzOworLUlCdXNFbmdpbmUgKm1fZW5naW5lOworK3N0 YXRpYyBJQnVzQnVzICptX2J1czsKKytzdGF0aWMgSUJ1c0VuZ2luZSAqbV9lbmdpbmU7CisrI2lm IEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorK3N0YXRpYyBnYm9vbGVhbiBtX2xpc3RfdG9w bGV2ZWw7CisgCisrc3RhdGljIGdib29sZWFuIGV2ZW50X2NvbnRyb2xsZXJfZW50ZXJfY2IgKEd0 a0V2ZW50Q29udHJvbGxlciAqY29udHJvbGxlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICB1c2VyX2RhdGEpOworKyNlbHNl Cisgc3RhdGljIGdib29sZWFuIHdpbmRvd19mb2N1c19pbl9ldmVudF9jYiAoR3RrV2lkZ2V0ICAg ICAqZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2Rr RXZlbnRGb2N1cyAqZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3BvaW50ZXIgICAgICAgZGF0YSk7CisrI2VuZGlmCisgCisgc3RhdGljIElCdXNFbmdp bmUgKgorIGNyZWF0ZV9lbmdpbmVfY2IgKElCdXNGYWN0b3J5ICpmYWN0b3J5LCBjb25zdCBnY2hh ciAqbmFtZSwgZ3BvaW50ZXIgZGF0YSkKK0BAIC0xMTgsNyArMTI4LDExIEBAIHN0YXRpYyBnYm9v bGVhbgorIGZpbml0IChncG9pbnRlciBkYXRhKQorIHsKKyAgICAgZ19jcml0aWNhbCAoInRpbWUg b3V0Iik7CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorKyAgICBtX2xpc3RfdG9w bGV2ZWwgPSBGQUxTRTsKKysjZWxzZQorICAgICBndGtfbWFpbl9xdWl0ICgpOworKyNlbmRpZgor ICAgICByZXR1cm4gRkFMU0U7CisgfQorIAorQEAgLTE3MywyNyArMTg3LDQxIEBAIHNlbmRfa2V5 X2V2ZW50IChEaXNwbGF5ICp4ZGlzcGxheSwKKyAgICAgfQorIH0KKyAKKytzdGF0aWMgdm9pZAor K3dpbmRvd19kZXN0cm95X2NiICh2b2lkKQorK3sKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQs IDAsIDApCisrICAgIG1fbGlzdF90b3BsZXZlbCA9IEZBTFNFOworKyNlbHNlCisrICAgIGd0a19t YWluX3F1aXQgKCk7CisrI2VuZGlmCisrfQorKworIHN0YXRpYyB2b2lkCisgc2V0X2VuZ2luZV9j YiAoR09iamVjdCAgICAgICpvYmplY3QsCisgICAgICAgICAgICAgICAgR0FzeW5jUmVzdWx0ICpy ZXMsCistICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICBkYXRhKQorKyAgICAgICAgICAgICAg IGdwb2ludGVyICAgICAgdXNlcl9kYXRhKQorIHsKKyAgICAgSUJ1c0J1cyAqYnVzID0gSUJVU19C VVMgKG9iamVjdCk7CistICAgIEd0a1dpZGdldCAqZW50cnkgPSBHVEtfV0lER0VUIChkYXRhKTsK KysjaWYgISBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwgMCwgMCkKKysgICAgR3RrV2lkZ2V0ICplbnRy eSA9IEdUS19XSURHRVQgKHVzZXJfZGF0YSk7CisrI2VuZGlmCisgICAgIEdka0Rpc3BsYXkgKmRp c3BsYXk7CisgICAgIERpc3BsYXkgKnhkaXNwbGF5ID0gTlVMTDsKKyAgICAgR0Vycm9yICplcnJv ciA9IE5VTEw7CisgICAgIGludCBpLCBqOworIAorLSAgICBnX2Fzc2VydCAoR1RLX0lTX0VOVFJZ IChlbnRyeSkpOworLQorICAgICBpZiAoIWlidXNfYnVzX3NldF9nbG9iYWxfZW5naW5lX2FzeW5j X2ZpbmlzaCAoYnVzLCByZXMsICZlcnJvcikpIHsKKyAgICAgICAgIGdfY3JpdGljYWwgKCJzZXQg ZW5naW5lIGZhaWxlZDogJXMiLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgICBnX2Vycm9yX2Zy ZWUgKGVycm9yKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQorIAorKyNpZiBHVEtfQ0hFQ0tf VkVSU0lPTiAoNCwgMCwgMCkKKysgICAgZGlzcGxheSA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0 ICgpOworKyNlbHNlCisgICAgIGRpc3BsYXkgPSBndGtfd2lkZ2V0X2dldF9kaXNwbGF5IChlbnRy eSk7CisrI2VuZGlmCisgICAgIGdfYXNzZXJ0IChHREtfSVNfWDExX0RJU1BMQVkgKGRpc3BsYXkp KTsKKyAgICAgeGRpc3BsYXkgPSBnZGtfeDExX2Rpc3BsYXlfZ2V0X3hkaXNwbGF5IChkaXNwbGF5 KTsKKyAgICAgZ19yZXR1cm5faWZfZmFpbCAoeGRpc3BsYXkpOworQEAgLTIxMCw4ICsyMzgsOCBA QCBzZXRfZW5naW5lX2NiIChHT2JqZWN0ICAgICAgKm9iamVjdCwKKyAgICAgZ190aW1lb3V0X2Fk ZF9zZWNvbmRzICgxMCwgZmluaXQsIE5VTEwpOworIH0KKyAKKy1zdGF0aWMgZ2Jvb2xlYW4KKy13 aW5kb3dfZm9jdXNfaW5fZXZlbnRfY2IgKEd0a1dpZGdldCAqZW50cnksIEdka0V2ZW50Rm9jdXMg KmV2ZW50LCBncG9pbnRlciBkYXRhKQorK3N0YXRpYyB2b2lkCisrc2V0X2VuZ2luZSAoZ3BvaW50 ZXIgdXNlcl9kYXRhKQorIHsKKyAgICAgZ19hc3NlcnQgKG1fYnVzICE9IE5VTEwpOworICAgICBp YnVzX2J1c19zZXRfZ2xvYmFsX2VuZ2luZV9hc3luYyAobV9idXMsCitAQCAtMjE5LDE4ICsyNDcs NDAgQEAgd2luZG93X2ZvY3VzX2luX2V2ZW50X2NiIChHdGtXaWRnZXQgKmVudHJ5LCBHZGtFdmVu dEZvY3VzICpldmVudCwgZ3BvaW50ZXIgZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldF9lbmdpbmVf Y2IsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSk7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpOworK30KKysKKysj aWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrc3RhdGljIGdib29sZWFuCisrZXZlbnRf Y29udHJvbGxlcl9lbnRlcl9jYiAoR3RrRXZlbnRDb250cm9sbGVyICpjb250cm9sbGVyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgdXNlcl9kYXRhKQor K3sKKysgICAgc2V0X2VuZ2luZSAoY29udHJvbGxlcik7CisrICAgIHJldHVybiBGQUxTRTsKKyt9 CisrCisrI2Vsc2UKKysKKytzdGF0aWMgZ2Jvb2xlYW4KKyt3aW5kb3dfZm9jdXNfaW5fZXZlbnRf Y2IgKEd0a1dpZGdldCAgICAgKmVudHJ5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgR2Rr RXZlbnRGb2N1cyAqZXZlbnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAg ICAgICB1c2VyX2RhdGEpCisreworKyAgICBzZXRfZW5naW5lIChlbnRyeSk7CisgICAgIHJldHVy biBGQUxTRTsKKyB9CisrI2VuZGlmCisgCisgc3RhdGljIHZvaWQKKyB3aW5kb3dfaW5zZXJ0ZWRf dGV4dF9jYiAoR3RrRW50cnlCdWZmZXIgKmJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgZ3VpbnQgICAgICAgICAgIHBvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBnY2hhciAgICAqY2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAg ICAgICAgICBuY2hhcnMsCistICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAg ICBkYXRhKQorKyAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgdXNlcl9k YXRhKQorIHsKKy0gICAgR3RrV2lkZ2V0ICplbnRyeSA9IGRhdGE7CisrI2lmICEgR1RLX0NIRUNL X1ZFUlNJT04gKDQsIDAsIDApCisrICAgIEd0a1dpZGdldCAqZW50cnkgPSB1c2VyX2RhdGE7Cisr I2VuZGlmCisgICAgIHN0YXRpYyBpbnQgaSA9IDA7CisgICAgIHN0YXRpYyBpbnQgaiA9IDA7Cisg CitAQCAtMjQyLDEwICsyOTIsMTkgQEAgd2luZG93X2luc2VydGVkX3RleHRfY2IgKEd0a0VudHJ5 QnVmZmVyICpidWZmZXIsCisgICAgICAgICBnX3ByaW50ICgiXG4iKTsKKyAgICAgICAgIGkrKzsK KyAgICAgICAgIGogPSAwOworLSAgICAgICAgaWYgKHRlc3RfcmVzdWx0c1tpXVswXSA9PSAwKQor KyAgICAgICAgaWYgKHRlc3RfcmVzdWx0c1tpXVswXSA9PSAwKSB7CisrI2lmIEdUS19DSEVDS19W RVJTSU9OICg0LCAwLCAwKQorKyAgICAgICAgICAgIG1fbGlzdF90b3BsZXZlbCA9IEZBTFNFOwor KyNlbHNlCisgICAgICAgICAgICAgZ3RrX21haW5fcXVpdCAoKTsKKy0gICAgICAgIGVsc2UKKysj ZW5kaWYKKysgICAgICAgIH0gZWxzZSB7CisrI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAw KQorKyAgICAgICAgICAgIGd0a19lbnRyeV9idWZmZXJfc2V0X3RleHQgKGJ1ZmZlciwgIiIsIDEp OworKyNlbHNlCisgICAgICAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0IChHVEtfRU5UUlkgKGVu dHJ5KSwgIiIpOworKyNlbmRpZgorKyAgICAgICAgfQorICAgICAgICAgcmV0dXJuOworICAgICB9 CisgICAgIGdfYXNzZXJ0IChnX3V0ZjhfZ2V0X2NoYXIgKGNoYXJzKSA9PSB0ZXN0X3Jlc3VsdHNb aV1bal0pOworQEAgLTI1NSwxOSArMzE0LDM5IEBAIHdpbmRvd19pbnNlcnRlZF90ZXh0X2NiIChH dGtFbnRyeUJ1ZmZlciAqYnVmZmVyLAorIHN0YXRpYyB2b2lkCisgY3JlYXRlX3dpbmRvdyAoKQor IHsKKy0gICAgR3RrV2lkZ2V0ICp3aW5kb3cgPSBndGtfd2luZG93X25ldyAoR1RLX1dJTkRPV19U T1BMRVZFTCk7CisrICAgIEd0a1dpZGdldCAqd2luZG93OworICAgICBHdGtXaWRnZXQgKmVudHJ5 ID0gZ3RrX2VudHJ5X25ldyAoKTsKKyAgICAgR3RrRW50cnlCdWZmZXIgKmJ1ZmZlcjsKKysjaWYg R1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrICAgIEd0a0V2ZW50Q29udHJvbGxlciAqY29u dHJvbGxlcjsKKysKKysgICAgd2luZG93ID0gZ3RrX3dpbmRvd19uZXcgKCk7CisrI2Vsc2UKKysg ICAgd2luZG93ID0gZ3RrX3dpbmRvd19uZXcgKEdUS19XSU5ET1dfVE9QTEVWRUwpOworKyNlbmRp ZgorIAorICAgICBnX3NpZ25hbF9jb25uZWN0ICh3aW5kb3csICJkZXN0cm95IiwKKy0gICAgICAg ICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoZ3RrX21haW5fcXVpdCksIE5VTEwpOworKyAgICAg ICAgICAgICAgICAgICAgICBHX0NBTExCQUNLICh3aW5kb3dfZGVzdHJveV9jYiksIE5VTEwpOwor KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwgMCwgMCkKKysgICAgY29udHJvbGxlciA9IGd0a19l dmVudF9jb250cm9sbGVyX2ZvY3VzX25ldyAoKTsKKysgICAgZ19zaWduYWxfY29ubmVjdCAoY29u dHJvbGxlciwgImVudGVyIiwKKysgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoZXZl bnRfY29udHJvbGxlcl9lbnRlcl9jYiksIE5VTEwpOworKyAgICBndGtfd2lkZ2V0X2FkZF9jb250 cm9sbGVyICh3aW5kb3csIGNvbnRyb2xsZXIpOworKyNlbHNlCisgICAgIGdfc2lnbmFsX2Nvbm5l Y3QgKGVudHJ5LCAiZm9jdXMtaW4tZXZlbnQiLAorICAgICAgICAgICAgICAgICAgICAgICBHX0NB TExCQUNLICh3aW5kb3dfZm9jdXNfaW5fZXZlbnRfY2IpLCBOVUxMKTsKKysjZW5kaWYKKyAgICAg YnVmZmVyID0gZ3RrX2VudHJ5X2dldF9idWZmZXIgKEdUS19FTlRSWSAoZW50cnkpKTsKKyAgICAg Z19zaWduYWxfY29ubmVjdCAoYnVmZmVyLCAiaW5zZXJ0ZWQtdGV4dCIsCisgICAgICAgICAgICAg ICAgICAgICAgIEdfQ0FMTEJBQ0sgKHdpbmRvd19pbnNlcnRlZF90ZXh0X2NiKSwgZW50cnkpOwor KyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwgMCwgMCkKKysgICAgZ3RrX3dpbmRvd19zZXRfY2hp bGQgKEdUS19XSU5ET1cgKHdpbmRvdyksIGVudHJ5KTsKKysgICAgZ3RrX3dpbmRvd19zZXRfZm9j dXMgKEdUS19XSU5ET1cgKHdpbmRvdyksIGVudHJ5KTsKKysgICAgZ3RrX3dpbmRvd19wcmVzZW50 IChHVEtfV0lORE9XICh3aW5kb3cpKTsKKysjZWxzZQorICAgICBndGtfY29udGFpbmVyX2FkZCAo R1RLX0NPTlRBSU5FUiAod2luZG93KSwgZW50cnkpOworICAgICBndGtfd2lkZ2V0X3Nob3dfYWxs ICh3aW5kb3cpOworKyNlbmRpZgorIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTI3Nyw2ICszNTYs MTYgQEAgdGVzdF9rZXlwcmVzcyAodm9pZCkKKyAgICAgaW50IHN0YXR1cyA9IDA7CisgICAgIEdF cnJvciAqZXJyb3IgPSBOVUxMOworIAorKyNpZmRlZiBHREtfV0lORE9XSU5HX1dBWUxBTkQKKysg ICAgeworKyAgICAgICAgR2RrRGlzcGxheSAqZGlzcGxheSA9IGdka19kaXNwbGF5X2dldF9kZWZh dWx0ICgpOworKyAgICAgICAgaWYgKEdES19JU19XQVlMQU5EX0RJU1BMQVkgKGRpc3BsYXkpKSB7 CisrICAgICAgICAgICAgZ190ZXN0X3NraXBfcHJpbnRmICgic2V0eGtibWFwIGFuZCBYVEVTVCBk byBub3Qgd29yayBpbiBXYXlsYW5kLiIpOworKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAg IH0KKysgICAgfQorKyNlbmRpZgorKworICAgICAvKiBsb2NhbGVjdGwgZG9lcyBub3QgY2hhbmdl IHRoZSBzZXNzaW9uIGtleW1hcC4gKi8KKyAgICAgcGF0aCA9IGdfZmluZF9wcm9ncmFtX2luX3Bh dGggKCJzZXR4a2JtYXAiKTsKKyAgICAgaWYgKHBhdGgpIHsKK0BAIC0yODcsMzMgKzM3NiwzOCBA QCB0ZXN0X2tleXByZXNzICh2b2lkKQorICAgICBnX2ZyZWUgKHBhdGgpOworICAgICBnX2Fzc2Vy dCAocmVnaXN0ZXJfaWJ1c19lbmdpbmUgKCkpOworIAorKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAo NCwgMCwgMCkKKysgICAgbV9saXN0X3RvcGxldmVsID0gVFJVRTsKKysjZW5kaWYKKyAgICAgY3Jl YXRlX3dpbmRvdyAoKTsKKysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrICAgIHdo aWxlIChtX2xpc3RfdG9wbGV2ZWwpCisrICAgICAgICBnX21haW5fY29udGV4dF9pdGVyYXRpb24g KE5VTEwsIFRSVUUpOworKyNlbHNlCisgICAgIGd0a19tYWluICgpOworKyNlbmRpZgorIH0KKyAK KyBpbnQKKyBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorIHsKKy0gICAgaWJ1c19pbml0 ICgpOworKyAgICAvKiBpYnVzX2luaXQoKSBzaG91bGQgbm90IGJlIGNhbGxlZCBoZXJlIGJlY2F1 c2UKKysgICAgICogaWJ1c19pbml0KCkgaXMgY2FsbGVkIGZyb20gSUJ1cyBHdGs0IElNIG1vZHVs ZSBldmVuIGlmCisrICAgICAqIEdUS19JTV9NT0RVTEU9d2F5bGFuZCBpcyBleHBvcnRlZC4KKysg ICAgICovCisgICAgIC8qIEF2b2lkIGEgd2FybmluZyBvZiAiQVQtU1BJOiBDb3VsZCBub3Qgb2J0 YWluIGRlc2t0b3AgcGF0aCBvciBuYW1lIgorICAgICAgKiB3aXRoIGd0a19tYWluKCkuCisgICAg ICAqLworICAgICBpZiAoIWdfc2V0ZW52ICgiTk9fQVRfQlJJREdFIiwgIjEiLCBUUlVFKSkKKyAg ICAgICAgIGdfbWVzc2FnZSAoIkZhaWxlZCBzZXRlbnYgTk9fQVRfQlJJREdFXG4iKTsKKyAgICAg Z190ZXN0X2luaXQgKCZhcmdjLCAmYXJndiwgTlVMTCk7CisrI2lmIEdUS19DSEVDS19WRVJTSU9O ICg0LCAwLCAwKQorKyAgICBndGtfaW5pdCAoKTsKKysjZWxzZQorICAgICBndGtfaW5pdCAoJmFy Z2MsICZhcmd2KTsKKy0jaWZkZWYgR0RLX1dJTkRPV0lOR19XQVlMQU5ECistICAgIHsKKy0gICAg ICAgIEdka0Rpc3BsYXkgKmRpc3BsYXkgPSBnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCAoKTsKKy0g ICAgICAgIGlmIChHREtfSVNfV0FZTEFORF9ESVNQTEFZIChkaXNwbGF5KSkgeworLSAgICAgICAg ICAgIGdfcHJpbnQgKCJzZXR4a2JtYXAgYW5kIFhURVNUIGRvIG5vdCB3b3JrIGluIFdheWxhbmQu XG4iKTsKKy0gICAgICAgICAgICByZXR1cm4gMDsKKy0gICAgICAgIH0KKy0gICAgfQorICNlbmRp ZgorIAorICAgICBnX3Rlc3RfYWRkX2Z1bmMgKCIvaWJ1cy9rZXlyZXBzcyIsIHRlc3Rfa2V5cHJl c3MpOworIAorLQorICAgICByZXR1cm4gZ190ZXN0X3J1biAoKTsKKyB9CistLSAKKzIuNDUuMAor CitGcm9tIGEyNjg5YzRkNjZkMWY1YWU3M2QyZGRiYmI5NDM3NGM5ODkxNGEwMjkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+CitEYXRlOiBTYXQsIDI3IEp1bCAyMDI0IDE5OjA3OjU4ICswOTAwCitTdWJqZWN0OiBbUEFU Q0ggNC82XSBzcmMvdGVzdHM6IEZpeCB0ZXN0IGNhc2VzIGluIEdOT01FIFhvcmcgaW4gaWJ1cy1j b21wb3NlCisKKyJmb2N1cy1pbiIgc2lnbmFsIGlzIHNlbnQgdG8gSUJ1cyBHdGtJTU1vZHVsZSB3 aXRoIGEgZGVsYXkgaW4gR05PTUUKK2Rlc2t0b3Agc2Vzc2lvbiBhbmQgdGhlIHNpZ25hbCBvcmRl ciBpcyBub3QgZml4ZWQgd2l0aCBHVEtfUEhBU0VfVEFSR0VUCithbHNvICJmb2N1cy1pbiIgc2ln bmFsIGlzIGFsc28gc2VudCB3aXRoIEd0a1RleHQgInJlYWxpemUiJyBzaWduYWwuCitOb3cgdGhl IHRlc3QgY2FzZXMgd2FpdCBmb3IgR3RrVGV4dCAncmVhbGl6ZScgc2lnbmFsLgorVGhpcyBmaXhl cyB0aGUgdGVzdCBjYXNlcyBpbiBHTk9NRSBYb3JnIGJ1dCB0aGVyZSBhcmUgc3RpbGwgc29uZSBp c3N1ZXMKK2luIEdOT01FIFdheWxhbmQuCisKK0JVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9p YnVzL3B1bGwvMjY1NworLS0tCisgc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5jIHwgNzEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCA2OCBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2li dXMtY29tcG9zZS5jIGIvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5jCitpbmRleCA1Nzg1MWIwYS4u ZTlmMTAyYTEgMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMKKysrKyBiL3Ny Yy90ZXN0cy9pYnVzLWNvbXBvc2UuYworQEAgLTM5LDYgKzM5LDIzIEBAIHN0YXRpYyBnYm9vbGVh biB3aW5kb3dfZm9jdXNfaW5fZXZlbnRfY2IgKEd0a1dpZGdldCAgICAgKmVudHJ5LAorICNlbmRp ZgorIAorIAorK2dib29sZWFuCisrX3dhaXRfZm9yX2tleV9yZWxlYXNlX2NiIChncG9pbnRlciB1 c2VyX2RhdGEpCisreworKyAgICBHTWFpbkxvb3AgKmxvb3AgPSAoR01haW5Mb29wICopdXNlcl9k YXRhOworKyAgICAvKiBJZiB0aGlzIHByb2dyYW0gaXMgaW52b2tlZCBieSBtYW51YWwgd2l0aCBF bnRlciBrZXkgaW4gR05PTUUKKysgICAgICogV2F5bGFuZCBzZXNzaW9uLCBpYnVzX2lucHV0X2Nv bnRleHRfZm9jdXNfaW4oKSBjYW4gYmUgY2FsbGVkIGluCisrICAgICAqIHRlc3RfY29udGV4dF9l bmdpbmVfc2V0X2J5X2dsb2JhbCgpIGJlZm9yZSB0aGUga2V5IHJlbGVhc2Ugb2YKKysgICAgICog dGhlIEVudGVyIGtleSBzbyBpYnVzL2J1cy9pbnB1dGNvbnRleHQuYzpfaWNfcHJvY2Vzc19rZXlf ZXZlbnQoKQorKyAgICAgKiBjb3VsZCBjYWxsIGFub3RoZXIgYnVzX2lucHV0X2NvbnRleHRfZm9j dXNfaW4oKSBpbiB0aGF0IHRlc3QgY2FzZQorKyAgICAgKiBhbmQgZmFpbC4KKysgICAgICovCisr ICAgIGdfdGVzdF9tZXNzYWdlICgiV2FpdCBmb3IgMyBzZWNvbmRzIGZvciBrZXkgcmVsZWFzZSBl dmVudCIpOworKyAgICBnX21haW5fbG9vcF9xdWl0IChsb29wKTsKKysgICAgcmV0dXJuIEdfU09V UkNFX1JFTU9WRTsKKyt9CisrCisrCisgc3RhdGljIGdjaGFyICoKKyBnZXRfY29tcG9zZV9wYXRo ICgpCisgeworQEAgLTMxMiwxMiArMzI5LDQ1IEBAIHNldF9lbmdpbmUgKGdwb2ludGVyIHVzZXJf ZGF0YSkKKyAKKyAKKyAjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrc3RhdGljIGdi b29sZWFuCisrZXZlbnRfY29udHJvbGxlcl9lbnRlcl9kZWxheSAoZ3BvaW50ZXIgdXNlcl9kYXRh KQorK3sKKysgICAgR3RrRXZlbnRDb250cm9sbGVyICpjb250cm9sbGVyID0gKEd0a0V2ZW50Q29u dHJvbGxlciAqKXVzZXJfZGF0YTsKKysgICAgR3RrV2lkZ2V0ICp0ZXh0ID0gZ3RrX2V2ZW50X2Nv bnRyb2xsZXJfZ2V0X3dpZGdldCAoY29udHJvbGxlcik7CisrICAgIHN0YXRpYyBpbnQgaSA9IDA7 CisrCisrICAgIC8qIFdhaXQgZm9yIGd0a190ZXh0X3JlYWxpemUoKSB3aGljaCBjYWxscyBndGtf dGV4dF9pbV9zZXRfZm9jdXNfaW4oKQorKyAgICAgKiB3aGlsZSBndGtfdGV4dF9mb2N1c19jaGFu Z2VkKCkgYWxzbyBjYWxscyBndGtfdGV4dF9pbV9zZXRfZm9jdXNfaW4oKQorKyAgICAgKiBpbiBH Tk9NRSBYb3JnLgorKyAgICAgKi8KKysgICAgaWYgKGd0a193aWRnZXRfZ2V0X3JlYWxpemVkICh0 ZXh0KSkgeworKyAgICAgICAgc2V0X2VuZ2luZSAodXNlcl9kYXRhKTsKKysgICAgICAgIHJldHVy biBHX1NPVVJDRV9SRU1PVkU7CisrICAgIH0KKysgICAgaWYgKGkrKyA9PSAxMCkgeworKyAgICAg ICAgZ190ZXN0X2ZhaWxfcHJpbnRmICgiV2luZG93IGlzIG5vdCByZWFsaXplZCB3aXRoICVkIHRp bWVzIiwgaSk7CisrICAgICAgICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOworKyAgICB9CisrICAg IGdfdGVzdF9tZXNzYWdlICgiZXZlbnRfY29udHJvbGxlcl9lbnRlcl9kZWxheSAlZCIsIGkpOwor KyAgICByZXR1cm4gR19TT1VSQ0VfQ09OVElOVUU7CisrfQorKworKworIHN0YXRpYyB2b2lkCisg ZXZlbnRfY29udHJvbGxlcl9lbnRlcl9jYiAoR3RrRXZlbnRDb250cm9sbGVyICpjb250cm9sbGVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAgdXNlcl9k YXRhKQorIHsKKysgICAgc3RhdGljIGd1aW50IGlkID0gMDsKKysKKyAgICAgZ190ZXN0X21lc3Nh Z2UgKCJFdmVudENvbnRyb2xsZXIgZW1pdHMgXCJlbnRlclwiIHNpZ25hbCIpOworLSAgICBzZXRf ZW5naW5lIChjb250cm9sbGVyKTsKKysgICAgLyogQ2FsbCBhbiBpZGxlIGZ1bmN0aW9uIGJlY2F1 c2UgZ3RrX3dpZGdldF9hZGRfY29udHJvbGxlcigpCisrICAgICAqIGNhbGxzIGdfbGlzdF9wcmVw ZW5kKCkgZm9yIGV2ZW50X2NvbnRyb2xsZXJzIGFuZCB0aGlzIGNvbnRyb2xsZXIgaXMKKysgICAg ICogYWx3YXlzIGNhbGxlZCBiZWZvcmUgImd0ay10ZXh0LWZvY3VzLWNvbnRyb2xsZXIiCisrICAg ICAqIGlzIGNhbGVsZCBhbmQgdGhlIElNIGNvbnRleHQgZG9lcyBub3QgcmVjZWl2ZSB0aGUgZm9j dXMtaW4geWV0LgorKyAgICAgKi8KKysgICAgaWYgKGlkKQorKyAgICAgICAgcmV0dXJuOworKyAg ICBpZCA9IGdfaWRsZV9hZGQgKGV2ZW50X2NvbnRyb2xsZXJfZW50ZXJfZGVsYXksIGNvbnRyb2xs ZXIpOworIH0KKyAKKyAjZWxzZQorQEAgLTQ3Myw4ICs1MjMsOSBAQCBjcmVhdGVfd2luZG93ICgp CisgI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorICAgICBjb250cm9sbGVyID0gZ3Rr X2V2ZW50X2NvbnRyb2xsZXJfZm9jdXNfbmV3ICgpOworICAgICB0ZXh0ID0gZ3RrX2VkaXRhYmxl X2dldF9kZWxlZ2F0ZSAoR1RLX0VESVRBQkxFIChlbnRyeSkpOworLSAgICBnX3NpZ25hbF9jb25u ZWN0IChjb250cm9sbGVyLCAiZW50ZXIiLAorLSAgICAgICAgICAgICAgICAgICAgICBHX0NBTExC QUNLIChldmVudF9jb250cm9sbGVyX2VudGVyX2NiKSwgTlVMTCk7CisrICAgIGd0a19ldmVudF9j b250cm9sbGVyX3NldF9wcm9wYWdhdGlvbl9waGFzZSAoY29udHJvbGxlciwgR1RLX1BIQVNFX0JV QkJMRSk7CisrICAgIGdfc2lnbmFsX2Nvbm5lY3RfYWZ0ZXIgKGNvbnRyb2xsZXIsICJlbnRlciIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKGV2ZW50X2NvbnRyb2xs ZXJfZW50ZXJfY2IpLCBOVUxMKTsKKyAgICAgZ3RrX3dpZGdldF9hZGRfY29udHJvbGxlciAoR1RL X1dJREdFVCAodGV4dCksIGNvbnRyb2xsZXIpOworICNlbHNlCisgICAgIGdfc2lnbmFsX2Nvbm5l Y3QgKGVudHJ5LCAiZm9jdXMtaW4tZXZlbnQiLAorQEAgLTQ5NSw2ICs1NDYsMTkgQEAgY3JlYXRl X3dpbmRvdyAoKQorIH0KKyAKKyAKKytzdGF0aWMgdm9pZAorK3Rlc3RfaW5pdCAodm9pZCkKKyt7 CisrICAgIGNoYXIgKnR0eV9uYW1lID0gdHR5bmFtZSAoU1RESU5fRklMRU5PKTsKKysgICAgR01h aW5Mb29wICpsb29wID0gZ19tYWluX2xvb3BfbmV3IChOVUxMLCBUUlVFKTsKKysgICAgZ190ZXN0 X21lc3NhZ2UgKCJUZXN0IG9uICVzIiwgdHR5X25hbWUgPyB0dHlfbmFtZSA6ICIobnVsbCkiKTsK KysgICAgaWYgKHR0eV9uYW1lICYmIGdfc3Ryc3RyX2xlbiAodHR5X25hbWUsIC0xLCAicHRzIikp IHsKKysgICAgICAgIGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMywgX3dhaXRfZm9yX2tleV9yZWxl YXNlX2NiLCBsb29wKTsKKysgICAgICAgIGdfbWFpbl9sb29wX3J1biAobG9vcCk7CisrICAgIH0K KysgICAgZ19tYWluX2xvb3BfdW5yZWYgKGxvb3ApOworK30KKysKKyBzdGF0aWMgdm9pZAorIHRl c3RfY29tcG9zZSAodm9pZCkKKyB7CitAQCAtNTU3LDYgKzYyMSw3IEBAIG1haW4gKGludCBhcmdj LCBjaGFyICphcmd2W10pCisgICAgICAgICBnX2ZyZWUgKHRlc3RfbmFtZSk7CisgICAgICAgICB0 ZXN0X25hbWUgPSBnX3BhdGhfZ2V0X2Jhc2VuYW1lIChtX2NvbXBvc2VfZmlsZSk7CisgICAgIH0K KysgICAgZ190ZXN0X2FkZF9mdW5jICgiL2lidXMtY29tcG9zZS90ZXN0LWluaXQiLCB0ZXN0X2lu aXQpOworICAgICBtX2xvb3AgPSBnX21haW5fbG9vcF9uZXcgKE5VTEwsIFRSVUUpOworICAgICB0 ZXN0X3BhdGggPSBnX2J1aWxkX2ZpbGVuYW1lICgiL2lidXMtY29tcG9zZSIsIHRlc3RfbmFtZSwg TlVMTCk7CisgICAgIGdfdGVzdF9hZGRfZnVuYyAodGVzdF9wYXRoLCB0ZXN0X2NvbXBvc2UpOwor LS0gCisyLjQ1LjAKKworRnJvbSBlNjUxMTBhOWJlZDAzYzk4MTg4NGUyOGZmNDRlMmFjMWY2Mzlk ZjQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWpp d2FyYTFAZ21haWwuY29tPgorRGF0ZTogU2F0LCAyNyBKdWwgMjAyNCAxOTowOToxMCArMDkwMAor U3ViamVjdDogW1BBVENIIDUvNl0gc3JjL3Rlc3RzOiBGaXggaWJ1cy1jb21wb3NlIGZvciBHTk9N RSBXYXlsYW5kCisKK211dHRlciBjYWxscyBtZXRhX3dheWxhbmRfdGV4dF9pbnB1dF9zZXRfZm9j dXMoKSBhZnRlciBtZXRhX3dpbmRvd19zaG93KCkKK2FuZCB0aGUgZGVsYXllZCBmb2N1cy1pbi9v dXQgZXZlbnRzIGFyZSBzZW50IHRvIElCdXNFbmdpbmUuCitOb3cgc2xlZXAoKSBpcyBhZGRlZCBp biBpYnVzLWNvbXBvc2UgYmVjYXVzZSBNZXRhV2F5bGFuZElucHV0TWV0aG9kCitjYW5ub3Qga25v dyB0aGUgYXBwbGljYXRpb24gc3RhdHVzIHdoaWxlIEdUSyBhcHBsaWNhdGlvbiBpcyBhbHJlYWR5 CityZWFsaXplZC4KKworQWxzbyBHVEs0IGNvbXBvc2UgdGFibGUgc3VwcG9ydHMgMTZiaXQgY29t cG9zZSBrZXlzIG9ubHkgYW5kIGl0CitjYXVzZXMgYSB3YXJuaW5nIHdpdGggcHQtQlIgYW5kIGZp LUZJIGNvbXBvc2UgdGFibGVzIGJ1dCB0aGUgd2FybmluZworaXMgdHJlYXRlZCBhcyBhIGZhaWx1 cmUgd2l0aCBnX3Rlc3RfaW5pdCgpLgorU2V0IExBTkc9ZW5fVVMuVVRGLTggZm9yIHRodyB3b3Jr YXJvdW5kIHRvIHRlc3QgcHQtQlIgYW5kIGZpLUZJIElCdXMKK2NvbXBvc2UgdGFibGVzLgorCitC VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI2NTcKKy0tLQorIHNyYy90ZXN0 cy9pYnVzLWNvbXBvc2UuYyB8IDIyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5jIGIvc3JjL3Rlc3RzL2li dXMtY29tcG9zZS5jCitpbmRleCBlOWYxMDJhMS4uMDY3OWMyNTkgMTAwNjQ0CistLS0gYS9zcmMv dGVzdHMvaWJ1cy1jb21wb3NlLmMKKysrKyBiL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYworQEAg LTcsMTkgKzcsMjQgQEAKKyAjZGVmaW5lIFJFRCAgICJcMDMzWzA7MzFtIgorICNkZWZpbmUgTkMg ICAgIlwwMzNbMG0iCisgCisrc3RhdGljIGdjaGFyICptX3Rlc3RfbmFtZTsKKytzdGF0aWMgZ2No YXIgKm1fc2Vzc2lvbl9uYW1lOworIHN0YXRpYyBJQnVzQnVzICptX2J1czsKKyBzdGF0aWMgZ2No YXIgKm1fY29tcG9zZV9maWxlOworIHN0YXRpYyBJQnVzQ29tcG9zZVRhYmxlRXggKm1fY29tcG9z ZV90YWJsZTsKKyBzdGF0aWMgSUJ1c0VuZ2luZSAqbV9lbmdpbmU7Cisgc3RhdGljIGdjaGFyICpt X3NyY2RpcjsKKytzdGF0aWMgZ2Jvb2xlYW4gbV9pc19ndGtfMzJiaXRfY29tcG9zZV9lcnJvcjsK KyBzdGF0aWMgR01haW5Mb29wICptX2xvb3A7Cisrc3RhdGljIGNoYXIgKm1fZW5naW5lX2lzX2Zv Y3VzZWQ7CisgI2lmIEdUS19DSEVDS19WRVJTSU9OICg0LCAwLCAwKQorIHN0YXRpYyBnYm9vbGVh biBtX2xpc3RfdG9wbGV2ZWw7CisgI2VuZGlmCisgCisgdHlwZWRlZiBlbnVtIHsKKysgICAgVEVT VF9DT01NSVRfVEVYVCwKKyAgICAgVEVTVF9DUkVBVEVfRU5HSU5FLAorLSAgICBURVNUX0NPTU1J VF9URVhUCisrICAgIFRFU1RfREVMQVlFRF9GT0NVU19JTgorIH0gVGVzdElEbGVDYXRlZ29yeTsK KyAKKyB0eXBlZGVmIHN0cnVjdCBfVGVzdElkbGVEYXRhIHsKK0BAIC0zOSw2ICs0NCwxOSBAQCBz dGF0aWMgZ2Jvb2xlYW4gd2luZG93X2ZvY3VzX2luX2V2ZW50X2NiIChHdGtXaWRnZXQgICAgICpl bnRyeSwKKyAjZW5kaWYKKyAKKyAKKytnYm9vbGVhbgorK2lzX2ludGVncmF0ZWRfZGVza3RvcCAo KQorK3sKKysgICAgaWYgKCFtX3Nlc3Npb25fbmFtZSkKKysgICAgICAgIG1fc2Vzc2lvbl9uYW1l ID0gZ19zdHJkdXAgKGdfZ2V0ZW52ICgiWERHX1NFU1NJT05fREVTS1RPUCIpKTsKKysgICAgaWYg KCFtX3Nlc3Npb25fbmFtZSkKKysgICAgICAgIHJldHVybiBGQUxTRTsKKysgICAgaWYgKCFnX2Fz Y2lpX3N0cm5jYXNlY21wIChtX3Nlc3Npb25fbmFtZSwgImdub21lIiwgc3RybGVuICgiZ25vbWUi KSkpCisrICAgICAgIHJldHVybiBUUlVFOworKyAgICByZXR1cm4gRkFMU0U7CisrfQorKworKwor IGdib29sZWFuCisgX3dhaXRfZm9yX2tleV9yZWxlYXNlX2NiIChncG9pbnRlciB1c2VyX2RhdGEp CisgeworQEAgLTYzLDExICs4MSwxNSBAQCBnZXRfY29tcG9zZV9wYXRoICgpCisgICAgIGNvbnN0 IGdjaGFyICogY29uc3QgKmw7CisgICAgIGdjaGFyICpjb21wb3NlX3BhdGggPSBOVUxMOworIAor KyAgICBpZiAobV9pc19ndGtfMzJiaXRfY29tcG9zZV9lcnJvcikKKysgICAgICAgIGdfYXNzZXJ0 IChnX3NldGVudiAoIkxBTkciLCBtX3Rlc3RfbmFtZSwgVFJVRSkpOworICNpZiBHTElCX0NIRUNL X1ZFUlNJT04gKDIsIDU4LCAwKQorICAgICBsYW5ncyA9IGdfZ2V0X2xhbmd1YWdlX25hbWVzX3dp dGhfY2F0ZWdvcnkgKCJMQ19DVFlQRSIpOworICNlbHNlCisgICAgIGxhbmdzID0gZ19nZXRfbGFu Z3VhZ2VfbmFtZXMgKCk7CisgI2VuZGlmCisrICAgIGlmIChtX2lzX2d0a18zMmJpdF9jb21wb3Nl X2Vycm9yKQorKyAgICAgICAgZ19hc3NlcnQgKGdfc2V0ZW52ICgiTEFORyIsICJlbl9VUy5VVEYt OCIsIFRSVUUpKTsKKyAgICAgZm9yIChsID0gbGFuZ3M7ICpsOyBsKyspIHsKKyAgICAgICAgIGlm IChnX3N0cl9oYXNfcHJlZml4ICgqbCwgImVuX1VTIikpCisgICAgICAgICAgICAgYnJlYWs7CitA QCAtOTEsNiArMTEzLDkgQEAgZ2Jvb2xlYW4KKyBpZGxlX2NiIChncG9pbnRlciB1c2VyX2RhdGEp CisgeworICAgICBUZXN0SWRsZURhdGEgKmRhdGEgPSAoVGVzdElkbGVEYXRhICopdXNlcl9kYXRh OworKyAgICBzdGF0aWMgaW50IG4gPSAwOworKyAgICBnYm9vbGVhbiB0ZXJtaW5hdGVfcHJvZ3Jh bSA9IEZBTFNFOworKworICAgICBnX2Fzc2VydCAoZGF0YSk7CisgICAgIHN3aXRjaCAoZGF0YS0+ Y2F0ZWdvcnkpIHsKKyAgICAgY2FzZSBURVNUX0NSRUFURV9FTkdJTkU6CitAQCAtMTAzLDIzICsx MjgsNzUgQEAgaWRsZV9jYiAoZ3BvaW50ZXIgdXNlcl9kYXRhKQorICAgICAgICAgICAgIGlmIChn X21haW5fbG9vcF9pc19ydW5uaW5nIChtX2xvb3ApKQorICAgICAgICAgICAgICAgICBnX21haW5f bG9vcF9xdWl0IChtX2xvb3ApOworICAgICAgICAgICAgIGdfY2xlYXJfcG9pbnRlciAoJm1fbG9v cCwgZ19tYWluX2xvb3BfdW5yZWYpOworLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwgMCwgMCkK Ky0gICAgICAgICAgICBtX2xpc3RfdG9wbGV2ZWwgPSBGQUxTRTsKKy0jZWxzZQorLSAgICAgICAg ICAgIGd0a19tYWluX3F1aXQgKCk7CistI2VuZGlmCisrICAgICAgICAgICAgdGVybWluYXRlX3By b2dyYW0gPSBUUlVFOworICAgICAgICAgfQorICAgICAgICAgZGF0YS0+aWRsZV9pZCA9IDA7Cisg ICAgICAgICBicmVhazsKKysgICAgY2FzZSBURVNUX0RFTEFZRURfRk9DVVNfSU46CisrICAgICAg ICBpZiAobV9lbmdpbmVfaXNfZm9jdXNlZCkgeworKyAgICAgICAgICAgIGRhdGEtPmlkbGVfaWQg PSAwOworKyAgICAgICAgICAgIG4gPSAwOworKyAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQg KG1fbG9vcCk7CisrICAgICAgICAgICAgcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKKysgICAgICAg IH0KKysgICAgICAgIGlmIChuKysgPCAxMCkgeworKyAgICAgICAgICAgIGdfdGVzdF9tZXNzYWdl ICgiV2FpdGluZyBmb3IgXCJmb2N1cy1pblwiIHNpZ25hbCAlZHRoIHRpbWVzIiwgbik7CisrICAg ICAgICAgICAgcmV0dXJuIEdfU09VUkNFX0NPTlRJTlVFOworKyAgICAgICAgfQorKyAgICAgICAg Z190ZXN0X2ZhaWxfcHJpbnRmICgiXCJmb2N1cy1pblwiIHNpZ25hbCBpcyB0aW1lb3V0LiIpOwor KyAgICAgICAgZ19tYWluX2xvb3BfcXVpdCAobV9sb29wKTsKKysgICAgICAgIHRlcm1pbmF0ZV9w cm9ncmFtID0gVFJVRTsKKysgICAgICAgIG4gPSAwOworKyAgICAgICAgYnJlYWs7CisgICAgIGRl ZmF1bHQ6CisgICAgICAgICBnX3Rlc3RfZmFpbF9wcmludGYgKCJJZGxlIGZ1bmMgaXMgY2FsbGVk IGJ5IHdyb25nIGNhdGVnb3J5OiVkLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGEtPmNhdGVnb3J5KTsKKyAgICAgICAgIGJyZWFrOworICAgICB9CisrICAgIGlmICh0ZXJtaW5h dGVfcHJvZ3JhbSkgeworKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoNCwgMCwgMCkKKysgICAgICAg IG1fbGlzdF90b3BsZXZlbCA9IEZBTFNFOworKyNlbHNlCisrICAgICAgICBndGtfbWFpbl9xdWl0 ICgpOworKyNlbmRpZgorKyAgICB9CisgICAgIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CisgfQor IAorIAorK3N0YXRpYyB2b2lkCisrZW5naW5lX2ZvY3VzX2luX2NiIChJQnVzRW5naW5lICplbmdp bmUsCisrI2lmZGVmIElCVVNfRk9DVVNfSU5fSUQKKysgICAgICAgICAgICAgICAgICAgIGdjaGFy ICAgICAgKm9iamVjdF9wYXRoLAorKyAgICAgICAgICAgICAgICAgICAgZ2NoYXIgICAgICAqY2xp ZW50LAorKyNlbmRpZgorKyAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgdXNlcl9kYXRh KQorK3sKKysjaWZkZWYgSUJVU19GT0NVU19JTl9JRAorKyAgICBnX3Rlc3RfbWVzc2FnZSAoImVu Z2luZV9mb2N1c19pbl9jYiAlcyAlcyIsIG9iamVjdF9wYXRoLCBjbGllbnQpOworKyAgICBtX2Vu Z2luZV9pc19mb2N1c2VkID0gZ19zdHJkdXAgKGNsaWVudCk7CisrI2Vsc2UKKysgICAgZ190ZXN0 X21lc3NhZ2UgKCJlbmdpbmVfZm9jdXNfaW5fY2IiKTsKKysgICAgbV9lbmdpbmVfaXNfZm9jdXNl ZCA9IGdfc3RyZHVwICgiTm8gbmFtZWQiKTsKKysjZW5kaWYKKyt9CisrCisrc3RhdGljIHZvaWQK KytlbmdpbmVfZm9jdXNfb3V0X2NiIChJQnVzRW5naW5lICplbmdpbmUsCisrI2lmZGVmIElCVVNf Rk9DVVNfSU5fSUQKKysgICAgICAgICAgICAgICAgICAgICBnY2hhciAgICAgICpvYmplY3RfcGF0 aCwKKysjZW5kaWYKKysgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICB1c2VyX2RhdGEp CisreworKyNpZmRlZiBJQlVTX0ZPQ1VTX0lOX0lECisrICAgIGdfdGVzdF9tZXNzYWdlICgiZW5n aW5lX2ZvY3VzX291dF9jYiAlcyIsIG9iamVjdF9wYXRoKTsKKysjZWxzZQorKyAgICBnX3Rlc3Rf bWVzc2FnZSAoImVuZ2luZV9mb2N1c19vdXRfY2IiKTsKKysjZW5kaWYKKysgICAgZ19jbGVhcl9w b2ludGVyICgmbV9lbmdpbmVfaXNfZm9jdXNlZCwgZ19mcmVlKTsKKyt9CisrCisrCisgc3RhdGlj IElCdXNFbmdpbmUgKgorIGNyZWF0ZV9lbmdpbmVfY2IgKElCdXNGYWN0b3J5ICpmYWN0b3J5LAor ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpuYW1lLAorQEAgLTEzNSwxMSArMjEyLDMw IEBAIGNyZWF0ZV9lbmdpbmVfY2IgKElCdXNGYWN0b3J5ICpmYWN0b3J5LAorICAgICBnX2Fzc2Vy dCAoZGF0YSk7CisgICAgIC8qIERvbid0IHJlc2V0IGlkbGVfaWQgdG8gYXZvaWQgZHVwbGljYXRl ZCByZWdpc3Rlcl9pYnVzX2VuZ2luZSgpLiAqLworICAgICBnX3NvdXJjZV9yZW1vdmUgKGRhdGEt PmlkbGVfaWQpOworLSAgICBtX2VuZ2luZSA9IGlidXNfZW5naW5lX25ld193aXRoX3R5cGUgKElC VVNfVFlQRV9FTkdJTkVfU0lNUExFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5hbWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZW5naW5lX3BhdGgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWJ1c19idXNfZ2V0X2Nvbm5lY3Rpb24gKG1fYnVzKSk7CisrICAgIG1fZW5naW5lID0gKElC dXNFbmdpbmUgKilnX29iamVjdF9uZXcgKAorKyAgICAgICAgICAgIElCVVNfVFlQRV9FTkdJTkVf U0lNUExFLAorKyAgICAgICAgICAgICJlbmdpbmUtbmFtZSIsICAgICAgbmFtZSwKKysgICAgICAg ICAgICAib2JqZWN0LXBhdGgiLCAgICAgIGVuZ2luZV9wYXRoLAorKyAgICAgICAgICAgICJjb25u ZWN0aW9uIiwgICAgICAgaWJ1c19idXNfZ2V0X2Nvbm5lY3Rpb24gKG1fYnVzKSwKKysjaWZkZWYg SUJVU19GT0NVU19JTl9JRAorKyAgICAgICAgICAgICJoYXMtZm9jdXMtaWQiLCAgICAgVFJVRSwK KysjZW5kaWYKKysgICAgICAgICAgICBOVUxMKTsKKyAgICAgZ19mcmVlIChlbmdpbmVfcGF0aCk7 CisrCisrICAgIG1fZW5naW5lX2lzX2ZvY3VzZWQgPSBOVUxMOworKyNpZmRlZiBJQlVTX0ZPQ1VT X0lOX0lECisrICAgIGdfc2lnbmFsX2Nvbm5lY3QgKG1fZW5naW5lLCAiZm9jdXMtaW4taWQiLAor KyNlbHNlCisrICAgIGdfc2lnbmFsX2Nvbm5lY3QgKG1fZW5naW5lLCAiZm9jdXMtaW4iLAorKyNl bmRpZgorKyAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChlbmdpbmVfZm9jdXNfaW5f Y2IpLCBOVUxMKTsKKysjaWZkZWYgSUJVU19GT0NVU19JTl9JRAorKyAgICBnX3NpZ25hbF9jb25u ZWN0IChtX2VuZ2luZSwgImZvY3VzLW91dC1pZCIsCisrI2Vsc2UKKysgICAgZ19zaWduYWxfY29u bmVjdCAobV9lbmdpbmUsICJmb2N1cy1vdXQiLAorKyNlbmRpZgorKyAgICAgICAgICAgICAgICAg ICAgICBHX0NBTExCQUNLIChlbmdpbmVfZm9jdXNfb3V0X2NiKSwgTlVMTCk7CisgICAgIGlmICht X2NvbXBvc2VfZmlsZSkKKyAgICAgICAgIGNvbXBvc2VfcGF0aCA9IGdfYnVpbGRfZmlsZW5hbWUg KG1fc3JjZGlyLCBtX2NvbXBvc2VfZmlsZSwgTlVMTCk7CisgICAgIGVsc2UKK0BAIC0yMzUsNiAr MzMxLDEzIEBAIHNldF9lbmdpbmVfY2IgKEdPYmplY3QgICAgICAqb2JqZWN0LAorICAgICAgICAg cmV0dXJuOworICAgICB9CisgCisrICAgIC8qIGlidXNfaW1fY29udGV4dF9mb2N1c19pbigpIGlz IGNhbGxlZCBhZnRlciBHbGJvYWxFbmdpbmUgaXMgc2V0LiAqLworKyAgICBpZiAoaXNfaW50ZWdy YXRlZF9kZXNrdG9wICgpICYmICFtX2VuZ2luZV9pc19mb2N1c2VkKSB7CisrICAgICAgICBkYXRh LmNhdGVnb3J5ID0gVEVTVF9ERUxBWUVEX0ZPQ1VTX0lOOworKyAgICAgICAgZGF0YS5pZGxlX2lk ID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzICgxLCBpZGxlX2NiLCAmZGF0YSk7CisrICAgICAgICBn X21haW5fbG9vcF9ydW4gKG1fbG9vcCk7CisrICAgICAgICBpZiAoZGF0YS5pZGxlX2lkICE9IDAp CisrICAgICAgICAgICAgcmV0dXJuOworICAgICBpZiAobV9jb21wb3NlX3RhYmxlID09IE5VTEwp IHsKKyAgICAgICAgIGdfdGVzdF9za2lwICgiWW91ciBsb2NhbGUgdXNlcyBlbl9VUyBjb21wb3Nl IHRhYmxlLiIpOworICAgICAgICAgaWRsZV9jYiAoJmRhdGEpOworQEAgLTMxOSw2ICs0MjIsNyBA QCBzZXRfZW5naW5lIChncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgICBnX3Rlc3RfbWVzc2Fn ZSAoInNldF9lbmdpbmUoKSBpcyBjYWxsaW5nIik7CisgICAgIGdfYXNzZXJ0IChtX2J1cyAhPSBO VUxMKTsKKysKKyAgICAgaWJ1c19idXNfc2V0X2dsb2JhbF9lbmdpbmVfYXN5bmMgKG1fYnVzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhrYnRlc3Q6dXM6OmVuZyIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKK0BAIC0zNDYsNiAr NDUwLDExIEBAIGV2ZW50X2NvbnRyb2xsZXJfZW50ZXJfZGVsYXkgKGdwb2ludGVyIHVzZXJfZGF0 YSkKKyAgICAgfQorICAgICBpZiAoaSsrID09IDEwKSB7CisgICAgICAgICBnX3Rlc3RfZmFpbF9w cmludGYgKCJXaW5kb3cgaXMgbm90IHJlYWxpemVkIHdpdGggJWQgdGltZXMiLCBpKTsKKysjaWYg R1RLX0NIRUNLX1ZFUlNJT04gKDQsIDAsIDApCisrICAgICAgICBtX2xpc3RfdG9wbGV2ZWwgPSBG QUxTRTsKKysjZWxzZQorKyAgICAgICAgZ3RrX21haW5fcXVpdCAoKTsKKysjZW5kaWYKKyAgICAg ICAgIHJldHVybiBHX1NPVVJDRV9SRU1PVkU7CisgICAgIH0KKyAgICAgZ190ZXN0X21lc3NhZ2Ug KCJldmVudF9jb250cm9sbGVyX2VudGVyX2RlbGF5ICVkIiwgaSk7CitAQCAtMzYwLDE2ICs0Njks NDMgQEAgZXZlbnRfY29udHJvbGxlcl9lbnRlcl9jYiAoR3RrRXZlbnRDb250cm9sbGVyICpjb250 cm9sbGVyLAorICAgICBzdGF0aWMgZ3VpbnQgaWQgPSAwOworIAorICAgICBnX3Rlc3RfbWVzc2Fn ZSAoIkV2ZW50Q29udHJvbGxlciBlbWl0cyBcImVudGVyXCIgc2lnbmFsIik7CistICAgIC8qIENh bGwgYW4gaWRsZSBmdW5jdGlvbiBiZWNhdXNlIGd0a193aWRnZXRfYWRkX2NvbnRyb2xsZXIoKQor LSAgICAgKiBjYWxscyBnX2xpc3RfcHJlcGVuZCgpIGZvciBldmVudF9jb250cm9sbGVycyBhbmQg dGhpcyBjb250cm9sbGVyIGlzCistICAgICAqIGFsd2F5cyBjYWxsZWQgYmVmb3JlICJndGstdGV4 dC1mb2N1cy1jb250cm9sbGVyIgorLSAgICAgKiBpcyBjYWxlbGQgYW5kIHRoZSBJTSBjb250ZXh0 IGRvZXMgbm90IHJlY2VpdmUgdGhlIGZvY3VzLWluIHlldC4KKy0gICAgICovCisgICAgIGlmIChp ZCkKKyAgICAgICAgIHJldHVybjsKKy0gICAgaWQgPSBnX2lkbGVfYWRkIChldmVudF9jb250cm9s bGVyX2VudGVyX2RlbGF5LCBjb250cm9sbGVyKTsKKysgICAgaWYgKGlzX2ludGVncmF0ZWRfZGVz a3RvcCAoKSkgeworKyAgICAgICAgLyogV2FpdCBmb3IgMyBzZWNvbmRzIGluIEdOT01FIFdheWxh bmQgYmVjYXVzZSB0aGVyZSBpcyBhIGxvbmcgdGltZSBsYWcKKysgICAgICAgICAqIGJldHdlZW4g dGhlICJlbnRlciIgc2lnbmFsIG9uIHRoZSBldmVudCBjb250cm9sbGVyIGluIEd0a1RleHQKKysg ICAgICAgICAqIGFuZCB0aGUgIkZvY3VzSW4iIEQtQnVzIHNpZ25hbCBpbiBCdXNJbnB1dENvbnRl eHQgb2YgaWJ1cy1kYWVtb24KKysgICAgICAgICAqIGJlY2F1c2UgbXV0dGVyL2NvcmUvd2luZG93 LmM6bWV0YV93aW5kb3dfc2hvdygpIGNhbGxzCisrICAgICAgICAgKiBtdXR0ZXIvY29yZS93aW5k b3cuYzptZXRhX3dpbmRvd19mb2N1cygpIC0+CisrICAgICAgICAgKiBtdXR0ZXIvd2F5bGFuZC9t ZXRhLXdheWxhbmQtdGV4dC1pbnB1dC5jOgorKyAgICAgICAgICogICBtZXRhX3dheWxhbmRfdGV4 dF9pbnB1dF9zZXRfZm9jdXMoKSAtPgorKyAgICAgICAgICogbXV0dGVyL2NsdXR0ZXIvY2x1dHRl ci9jbHV0dGVyLWlucHV0LW1ldGhvZC5jOgorKyAgICAgICAgICogICBjbHV0dGVyX2lucHV0X21l dGhvZF9mb2N1c19vdXQoKQorKyAgICAgICAgICogSS5lLiAiRm9jdXNPdXQiIGFuZCAiRm9jdXNJ biIgRC1CdXMgbWV0aG9kcyBhcmUgYWx3YXlzIGRlbGF5ZWQKKysgICAgICAgICAqIGFnYWluc3Qg dGhlIHdpbmRvdyBwcmVzZW50IGluIEdOT01FIFdheWxhbmQuCisrICAgICAgICAgKiBJZiAiRm9j dXNPdXQiIGFuZCAiRm9jdXNJbiIgRC1CdXMgc2lnbmFscyB3b3VsZCBiZSBjYWxsZWQgYWZ0ZXIK KysgICAgICAgICAqICJTZXRHbG9iYWxFbmdpbmUiIEQtQlVzIHNpZ25hbCB3YXMgY2FsbGVkIGlu IGlidXMtZGFlbW9uLAorKyAgICAgICAgICogdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgY291bGQg YmUgY2FsbGVkOgorKyAgICAgICAgICogICBlbmdpbmVfZm9jdXNfb3V0X2NiKCkgZm9yIHRoZSAi Z25vbWUtc2hlbGwiIGNvbnRleHQKKysgICAgICAgICAqICAgZW5naW5lX2ZvY3VzX2luX2NiKCkg Zm9yIHRoZSAiZmFrZSIgY29udGV4dAorKyAgICAgICAgICogICBlbmdpbmVfZm9jdXNfb3V0X2Ni KCkgZm9yIHRoZSAiZmFrZSIgY29udGV4dAorKyAgICAgICAgICogICBlbmdpbmVfZm9jdXNfaW5f Y2IoKSBmb3IgdGhlICJnbm9tZS1zaGVsbCIgY29udGV4dAorKyAgICAgICAgICogYW5kIGlidXNf ZW5naW5lX2NvbW1pdF90ZXh0KCkgd291bGQgbm90IHdvcmsuCisrICAgICAgICAgKiBUaGlzIGFz c3VtZSB0aGUgZm9jdXMtaW4vb3V0IHNpZ25hbHMgYXJlIGNhbGxlZCB3aXRoaW4gdGhlIHRpbWVv dXQKKysgICAgICAgICAqIHNlY29uZHMuCisrICAgICAgICAgKi8KKysgICAgICAgIGlkID0gZ190 aW1lb3V0X2FkZF9zZWNvbmRzICgzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGV2ZW50X2NvbnRyb2xsZXJfZW50ZXJfZGVsYXksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udHJvbGxlcik7CisrICAgIH0gZWxzZSB7CisrICAgICAgICAvKiBD YWxsIGFuIGlkbGUgZnVuY3Rpb24gaW4gWG9yZyBiZWNhdXNlIGd0a193aWRnZXRfYWRkX2NvbnRy b2xsZXIoKQorKyAgICAgICAgICogY2FsbHMgZ19saXN0X3ByZXBlbmQoKSBmb3IgZXZlbnRfY29u dHJvbGxlcnMgYW5kIHRoaXMgY29udHJvbGxlciBpcworKyAgICAgICAgICogYWx3YXlzIGNhbGxl ZCBiZWZvcmUgImd0ay10ZXh0LWZvY3VzLWNvbnRyb2xsZXIiCisrICAgICAgICAgKiBpcyBjYWxl bGQgYW5kIHRoZSBJTSBjb250ZXh0IGRvZXMgbm90IHJlY2VpdmUgdGhlIGZvY3VzLWluIHlldC4K KysgICAgICAgICAqLworKyAgICAgICAgaWQgPSBnX2lkbGVfYWRkIChldmVudF9jb250cm9sbGVy X2VudGVyX2RlbGF5LCBjb250cm9sbGVyKTsKKysgICAgfQorIH0KKy0KKyAjZWxzZQorIAorIHN0 YXRpYyBnYm9vbGVhbgorQEAgLTU1MCwxMCArNjg2LDE4IEBAIHN0YXRpYyB2b2lkCisgdGVzdF9p bml0ICh2b2lkKQorIHsKKyAgICAgY2hhciAqdHR5X25hbWUgPSB0dHluYW1lIChTVERJTl9GSUxF Tk8pOworLSAgICBHTWFpbkxvb3AgKmxvb3AgPSBnX21haW5fbG9vcF9uZXcgKE5VTEwsIFRSVUUp OworKyAgICBHTWFpbkxvb3AgKmxvb3A7CisrICAgIHN0YXRpYyBndWludCBpZGxlX2lkID0gMDsK KysKKysgICAgaWYgKGlkbGVfaWQpIHsKKysgICAgICAgIGdfdGVzdF9pbmNvbXBsZXRlICgiVGVz dCBpcyBjYWxsZWQgdHdpY2UgZHVlIHRvIGEgdGltZW91dC4iKTsKKysgICAgICAgIHJldHVybjsK KysgICAgfQorKworKyAgICBsb29wID0gZ19tYWluX2xvb3BfbmV3IChOVUxMLCBUUlVFKTsKKyAg ICAgZ190ZXN0X21lc3NhZ2UgKCJUZXN0IG9uICVzIiwgdHR5X25hbWUgPyB0dHlfbmFtZSA6ICIo bnVsbCkiKTsKKyAgICAgaWYgKHR0eV9uYW1lICYmIGdfc3Ryc3RyX2xlbiAodHR5X25hbWUsIC0x LCAicHRzIikpIHsKKy0gICAgICAgIGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMywgX3dhaXRfZm9y X2tleV9yZWxlYXNlX2NiLCBsb29wKTsKKysgICAgICAgIGlkbGVfaWQgPSBnX3RpbWVvdXRfYWRk X3NlY29uZHMgKDMsIF93YWl0X2Zvcl9rZXlfcmVsZWFzZV9jYiwgbG9vcCk7CisgICAgICAgICBn X21haW5fbG9vcF9ydW4gKGxvb3ApOworICAgICB9CisgICAgIGdfbWFpbl9sb29wX3VucmVmIChs b29wKTsKK0BAIC01ODYsMTQgKzczMCwxNiBAQCB0ZXN0X2NvbXBvc2UgKHZvaWQpCisgICAgIGd0 a19tYWluICgpOworICNlbmRpZgorICAgICBnX2xvZ19zZXRfYWx3YXlzX2ZhdGFsIChmbGFncyk7 CisrICAgIGdfY2xlYXJfcG9pbnRlciAoJm1fZW5naW5lX2lzX2ZvY3VzZWQsIGdfZnJlZSk7Cisr ICAgIGdfY2xlYXJfcG9pbnRlciAoJm1fc2Vzc2lvbl9uYW1lLCBnX2ZyZWUpOworIH0KKyAKKyAK KyBpbnQKKyBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorIHsKKy0gICAgZ2NoYXIgKnRl c3RfbmFtZTsKKyAgICAgZ2NoYXIgKnRlc3RfcGF0aDsKKysgICAgaW50IHJldHZhbDsKKyAKKyAg ICAgaWJ1c19pbml0ICgpOworICAgICAvKiBBdm9pZCBhIHdhcm5pbmcgb2YgIkFULVNQSTogQ291 bGQgbm90IG9idGFpbiBkZXNrdG9wIHBhdGggb3IgbmFtZSIKK0BAIC02MTIsMjEgKzc1OCw0MiBA QCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorICAgICAgICAgICAgID8gZ19zdHJkdXAg KGFyZ3ZbMV0pIDogZ19zdHJkdXAgKCIuIik7CisgICAgIG1fY29tcG9zZV9maWxlID0gZ19zdHJk dXAgKGdfZ2V0ZW52ICgiQ09NUE9TRV9GSUxFIikpOworICNpZiBHTElCX0NIRUNLX1ZFUlNJT04g KDIsIDU4LCAwKQorLSAgICB0ZXN0X25hbWUgPSBnX3N0cmR1cCAoZ19nZXRfbGFuZ3VhZ2VfbmFt ZXNfd2l0aF9jYXRlZ29yeSAoIkxDX0NUWVBFIilbMF0pOworKyAgICBtX3Rlc3RfbmFtZSA9IGdf c3RyZHVwIChnX2dldF9sYW5ndWFnZV9uYW1lc193aXRoX2NhdGVnb3J5ICgiTENfQ1RZUEUiKVsw XSk7CisgI2Vsc2UKKy0gICAgdGVzdF9uYW1lID0gZ19zdHJkdXAgKGdfZ2V0ZW52ICgiTEFORyIp KTsKKysgICAgbV90ZXN0X25hbWUgPSBnX3N0cmR1cCAoZ19nZXRlbnYgKCJMQU5HIikpOworICNl bmRpZgorICAgICBpZiAobV9jb21wb3NlX2ZpbGUgJiYKKy0gICAgICAgICghdGVzdF9uYW1lIHx8 ICFnX2FzY2lpX3N0cm5jYXNlY21wICh0ZXN0X25hbWUsICJlbl9VUyIsIDUpKSkgeworLSAgICAg ICAgZ19mcmVlICh0ZXN0X25hbWUpOworLSAgICAgICAgdGVzdF9uYW1lID0gZ19wYXRoX2dldF9i YXNlbmFtZSAobV9jb21wb3NlX2ZpbGUpOworKyAgICAgICAgKCFtX3Rlc3RfbmFtZSB8fCAhZ19h c2NpaV9zdHJuY2FzZWNtcCAobV90ZXN0X25hbWUsICJlbl9VUyIsIDUpKSkgeworKyAgICAgICAg Z19mcmVlIChtX3Rlc3RfbmFtZSk7CisrICAgICAgICBtX3Rlc3RfbmFtZSA9IGdfcGF0aF9nZXRf YmFzZW5hbWUgKG1fY29tcG9zZV9maWxlKTsKKysgICAgfQorKyAgICAvKiBUaGUgcGFyZW50IG9m IEd0a0lNQ29udGV4dFdheWxhbmQgaXMgR3RrSU1Db250ZXh0U2ltcGxlIGFuZAorKyAgICAgKiBp dCBvdXRwdXRzIGEgd2FybmluZyBvZiAiQ2FuJ3QgaGFuZGxlID4xNmJpdCBrZXl2YWxzIiBpbgor KyAgICAgKiBndGsvZ3RrY29tcG9zZXRhYmxlLmM6cGFyc2VfY29tcG9zZV9zZXF1ZW5jZSgpIGlu IHB0LUJSIGxvY2FsZXMKKysgICAgICogYW5kIGFueSB3YXJuaW5ncyBhcmUgdHJlYXRlZCBhcyBl cnJvcnMgd2l0aCBnX3Rlc3RfcnVuKCkKKysgICAgICogU28gZXhwb3J0IExBTkc9ZW5fVVMuVVRG LTggZm9yIEdOT01FIFdheWxhbmQgYXMgYSB3b3JrYXJvdW5kLgorKyAgICAgKi8KKysgICAgaWYg KG1fdGVzdF9uYW1lICYmICghZ19hc2NpaV9zdHJuY2FzZWNtcCAobV90ZXN0X25hbWUsICJwdF9C UiIsIDUpIHx8CisrICAgICAgICAgICAgICAgICAgICAgICAgIWdfYXNjaWlfc3RybmNhc2VjbXAg KG1fdGVzdF9uYW1lLCAiZmlfRkkiLCA1KQorKyAgICAgICAgICAgICAgICAgICAgICAgKSkgewor KyAgICAgICAgbV9pc19ndGtfMzJiaXRfY29tcG9zZV9lcnJvciA9IFRSVUU7CisrICAgIH0KKysg ICAgaWYgKG1faXNfZ3RrXzMyYml0X2NvbXBvc2VfZXJyb3IpIHsKKysjaWYgMQorKyAgICAgICAg Z19hc3NlcnQgKGdfc2V0ZW52ICgiTEFORyIsICJlbl9VUy5VVEYtOCIsIFRSVUUpKTsKKysjZWxz ZQorKyAgICAgICAgLyogRklYTUU6IFVzZSBleHBlY3RlZF9tZXNzYWdlcyBpbiBnX2xvZ19zdHJ1 Y3R1cmVkKCkgKi8KKysgICAgICAgIGdfdGVzdF9leHBlY3RfbWVzc2FnZSAoIkd0ayIsIEdfTE9H X0xFVkVMX1dBUk5JTkcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYW4ndCBo YW5kbGUgPjE2Yml0IGtleXZhbHMiKTsKKysjZW5kaWYKKyAgICAgfQorICAgICBnX3Rlc3RfYWRk X2Z1bmMgKCIvaWJ1cy1jb21wb3NlL3Rlc3QtaW5pdCIsIHRlc3RfaW5pdCk7CisgICAgIG1fbG9v cCA9IGdfbWFpbl9sb29wX25ldyAoTlVMTCwgVFJVRSk7CistICAgIHRlc3RfcGF0aCA9IGdfYnVp bGRfZmlsZW5hbWUgKCIvaWJ1cy1jb21wb3NlIiwgdGVzdF9uYW1lLCBOVUxMKTsKKysgICAgdGVz dF9wYXRoID0gZ19idWlsZF9maWxlbmFtZSAoIi9pYnVzLWNvbXBvc2UiLCBtX3Rlc3RfbmFtZSwg TlVMTCk7CisgICAgIGdfdGVzdF9hZGRfZnVuYyAodGVzdF9wYXRoLCB0ZXN0X2NvbXBvc2UpOwor ICAgICBnX2ZyZWUgKHRlc3RfcGF0aCk7CistICAgIGdfZnJlZSAodGVzdF9uYW1lKTsKKyAKKy0g ICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7CisrICAgIHJldHZhbCA9IGdfdGVzdF9ydW4gKCk7Cisr ICAgIGdfZnJlZSAobV90ZXN0X25hbWUpOworKyAgICByZXR1cm4gcmV0dmFsOworIH0KKy0tIAor Mi40NS4wCisKK0Zyb20gYjQ4NWVmNzc3MzUyZjJlNGYwYjFlZjQ1ODgyNmEwYWZmMGM4ZDEzNiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMjcgSnVsIDIwMjQgMTk6MTk6NDMgKzA5MDAKK1N1Ympl Y3Q6IFtQQVRDSCA2LzZdIHNyYy90ZXN0czogRml4IHNvbWUgQ0kgaXNzdWVzIHdpdGggYnVzeSBU TVQgdmlydHVhbAorIHNlc3Npb24KKworLSBJbmNyZWFzZSB3YWl0aW5nIHRpbWUgaW4gaWJ1cy1j b21wb3NlLWxvY2FsZXMuCistIFdhaXQgZm9yIDMgc2VjcyBhZnRlciBzZXQtZW5naW5lIGluIGli dXMtY29tcG9zZSB0byB3YWl0IGZvciB0aGUgZGVsYXllZAorICBmb2N1cy1pbi9vdXQgZXZlbnRz LgorLSBkZWxldGUgc2NyZWVuZHVtcCBvcHRpb24gaW4gaWJ1cy1kZXNrdG9wLXRlc3RpbmcuZGVz a3RvcCBub3QgdG8KKyAgc3VwcG9ydCBubyBkaXNwbGF5LgorLSBzZXRsb2NhbGUgaW4gaWJ1cy1l bmdpbmUtc3dpdGNoIHRvIGdldCBVVEYtOCB3YXJuaW5ncy4KKy0gUXVvdGUgZmlsZSBuYW1lcyBh cyBzaGVsbCBzeW50YXggYXMgbXVjaCBhcyBwb3NzaWJsZS4KKy0gQ2hlY2sgZmlsZSBleGlzdGVu dCBhbmQgZG8gbm90IHVzZSAicm0gLWYiIGFzIG11Y2ggYXMgcG9zc2libGUuCistIERvIG5vdCBz ZXQgR1RLX0lNX01PRFVMRT1pYnVzIGZvciBXYXlsYW5kLgorCitCVUc9aHR0cHM6Ly9naXRodWIu Y29tL2lidXMvaWJ1cy9wdWxsLzI2NTcKKy0tLQorIHNyYy90ZXN0cy9pYnVzLWNvbXBvc2UtbG9j YWxlcy5pbiAgICAgICAgICAgfCAgNCArLQorIHNyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYyAgICAg ICAgICAgICAgICAgICAgfCAyMyArKysrLS0KKyBzcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3Rp bmctYXV0b3N0YXJ0LmluIHwgIDEgKworIHNyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1t b2R1bGUgICAgICAgfCA3OSArKysrKysrKysrKysrKysrLS0tLS0KKyBzcmMvdGVzdHMvaWJ1cy1k ZXNrdG9wLXRlc3RpbmcuZGVza3RvcC5pbiAgIHwgIDIgKy0KKyBzcmMvdGVzdHMvaWJ1cy1lbmdp bmUtc3dpdGNoLmMgICAgICAgICAgICAgIHwgIDMgKworIDYgZmlsZXMgY2hhbmdlZCwgODUgaW5z ZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1 cy1jb21wb3NlLWxvY2FsZXMuaW4gYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLWxvY2FsZXMuaW4K K2luZGV4IDdhMTMzY2UwLi40ODUyMDRjMCAxMDA3NTUKKy0tLSBhL3NyYy90ZXN0cy9pYnVzLWNv bXBvc2UtbG9jYWxlcy5pbgorKysrIGIvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS1sb2NhbGVzLmlu CitAQCAtMTUsOCArMTUsOCBAQCBkbworICAgICBpZiBbICJ4JElTX0NPTU1FTlQiICE9IHggXSA7 IHRoZW4KKyAgICAgICAgIGNvbnRpbnVlCisgICAgIGZpCistICAgIHdoaWxlIFsgeCIkSUJVU19E QUVNT05fV0lUSF9TWVNURU1EIiAhPSB4IF0gJiYgWyAkSU5JVEVEIC1sdCA2IF0gOyBkbworLSAg ICAgICAgZWNobyAiV2FpdGluZyBmb3IgJHtJTklURUR9MCBzZWNzIHRpbGwgNjAgc2VjcyIKKysg ICAgd2hpbGUgWyB4IiRJQlVTX0RBRU1PTl9XSVRIX1NZU1RFTUQiICE9IHggXSAmJiBbICRJTklU RUQgLWx0IDEyIF0gOyBkbworKyAgICAgICAgZWNobyAiV2FpdGluZyBmb3IgJHtJTklURUR9MCBz ZWNzIHRpbGwgMTIwIHNlY3MiCisgICAgICAgICBzbGVlcCAxMAorICAgICAgICAgSU5JVEVEPWBl eHByICRJTklURUQgKyAxYAorICAgICBkb25lCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMt Y29tcG9zZS5jIGIvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5jCitpbmRleCAwNjc5YzI1OS4uMzI2 ZDNiOTAgMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMKKysrKyBiL3NyYy90 ZXN0cy9pYnVzLWNvbXBvc2UuYworQEAgLTMzMSwxMyArMzMxLDIyIEBAIHNldF9lbmdpbmVfY2Ig KEdPYmplY3QgICAgICAqb2JqZWN0LAorICAgICAgICAgcmV0dXJuOworICAgICB9CisgCistICAg IC8qIGlidXNfaW1fY29udGV4dF9mb2N1c19pbigpIGlzIGNhbGxlZCBhZnRlciBHbGJvYWxFbmdp bmUgaXMgc2V0LiAqLworLSAgICBpZiAoaXNfaW50ZWdyYXRlZF9kZXNrdG9wICgpICYmICFtX2Vu Z2luZV9pc19mb2N1c2VkKSB7CistICAgICAgICBkYXRhLmNhdGVnb3J5ID0gVEVTVF9ERUxBWUVE X0ZPQ1VTX0lOOworLSAgICAgICAgZGF0YS5pZGxlX2lkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRz ICgxLCBpZGxlX2NiLCAmZGF0YSk7CistICAgICAgICBnX21haW5fbG9vcF9ydW4gKG1fbG9vcCk7 CistICAgICAgICBpZiAoZGF0YS5pZGxlX2lkICE9IDApCistICAgICAgICAgICAgcmV0dXJuOwor KyAgICAvKiBpYnVzX2ltX2NvbnRleHRfZm9jdXNfaW4oKSBpcyBjYWxsZWQgYWZ0ZXIgR2xib2Fs RW5naW5lIGlzIHNldC4KKysgICAgICogVGhlIGZvY3VzLWluL291dCBldmVudHMgaGFwcGVuIG1v cmUgc2xvd2x5IGluIGEgYnVzeSBzeXN0ZW0KKysgICAgICogbGlrZXMgd2l0aCBhIFRNVCB0b29s LgorKyAgICAgKi8KKysgICAgaWYgKGlzX2ludGVncmF0ZWRfZGVza3RvcCAoKSAmJiBnX2dldGVu diAoIklCVVNfREFFTU9OX1dJVEhfU1lTVEVNRCIpKSB7CisrICAgICAgICBnX3Rlc3RfbWVzc2Fn ZSAoIlN0YXJ0IHRpbnkgXCJmb2N1cy1pblwiIHNpZ25hbCB0ZXN0Iik7CisrICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgMzsgaSsrKSB7CisrICAgICAgICAgICAgZGF0YS5jYXRlZ29yeSA9IFRFU1Rf REVMQVlFRF9GT0NVU19JTjsKKysgICAgICAgICAgICBkYXRhLmlkbGVfaWQgPSBnX3RpbWVvdXRf YWRkX3NlY29uZHMgKDEsIGlkbGVfY2IsICZkYXRhKTsKKysgICAgICAgICAgICBnX21haW5fbG9v cF9ydW4gKG1fbG9vcCk7CisrICAgICAgICAgICAgaWYgKGRhdGEuaWRsZV9pZCAhPSAwKQorKyAg ICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisrICAgICAgICBnX3Rlc3RfbWVzc2Fn ZSAoIkVuZCB0aW55IFwiZm9jdXMtaW5cIiBzaWduYWwgdGVzdCIpOworKyAgICAgICAgZGF0YS5j YXRlZ29yeSA9IFRFU1RfQ09NTUlUX1RFWFQ7CisrICAgIH0KKyAgICAgaWYgKG1fY29tcG9zZV90 YWJsZSA9PSBOVUxMKSB7CisgICAgICAgICBnX3Rlc3Rfc2tpcCAoIllvdXIgbG9jYWxlIHVzZXMg ZW5fVVMgY29tcG9zZSB0YWJsZS4iKTsKKyAgICAgICAgIGlkbGVfY2IgKCZkYXRhKTsKK2RpZmYg LS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctYXV0b3N0YXJ0LmluIGIvc3Jj L3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFydC5pbgoraW5kZXggZDUwMzU0ZGYu LjllY2M4YzI3IDEwMDc1NQorLS0tIGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1 dG9zdGFydC5pbgorKysrIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFy dC5pbgorQEAgLTczLDYgKzczLDcgQEAgbWFpbigpCisgICAgIHBhcnNlX2FyZ3MgIiRAIgorICAg ICBpbml0X3Nlc3Npb24KKyAgICAgY2hlY2tfZW52CisrICAgICNydW5fbW9uaXRvcgorICAgICBz YXZlX3NjcmVlbgorICAgICBydW5fdGVzdF9zdWl0ZQorICAgICBmaW5pdAorZGlmZiAtLWdpdCBh L3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1tb2R1bGUgYi9zcmMvdGVzdHMvaWJ1cy1k ZXNrdG9wLXRlc3RpbmctbW9kdWxlCitpbmRleCAyZDY4NjgxMy4uZTU3NmRmODcgMTAwNzU1Cist LS0gYS9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxlCisrKysgYi9zcmMvdGVz dHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctbW9kdWxlCitAQCAtNjMsOCArNjMsOSBAQCBwd2QKKyBw c3RyZWUgLWFzcCAkJAorIGdzZXR0aW5ncyBsaXN0LXJlY3Vyc2l2ZWx5IG9yZy5nbm9tZS5zaGVs bAorIHJwbSAtcSBnbm9tZS1zaGVsbC1leHRlbnNpb24tbm8tb3ZlcnZpZXcgZ25vbWUtc2hlbGwg Z25vbWUtc2Vzc2lvbgorLXBzIC1lZiB8IGdyZXAgaWJ1cyB8IGdyZXAgLXYgZ3JlcAorK3BzIC1l ZiB8IGdyZXAgaWJ1cyB8IGdyZXAgLXYgVE1UIHwgZ3JlcCAtdiBncmVwCisgaWJ1cyBhZGRyZXNz CisrbG9jYWxlCisgZW52CisgI2RidXMtc2VuZCAtLXNlc3Npb24gLS1wcmludC1yZXBseSAtLWRl c3Q9b3JnLmdub21lLlNoZWxsLkludHJvc3BlY3QgL29yZy9nbm9tZS9TaGVsbC9JbnRyb3NwZWN0 IG9yZy5nbm9tZS5TaGVsbC5JbnRyb3NwZWN0LkdldFdpbmRvd3MKKyAnCitAQCAtMTMzLDcgKzEz NCw4IEBAIGNoZWNrX3R0eSgpCisgICAgIFRUWT1gdHR5YAorICAgICBpZiBlY2hvICRQUk9HTkFN RSB8IGdyZXAgLXEgcnVubmVyIDsgdGhlbgorICAgICAgICAgaWYgWyAkRU5BQkxFRF9TWVNURU1E IC1lcSAxIF0gJiYgWyAgJFNFU1NJT05fSVNfR05PTUUgLWVxIDEgXSA7IHRoZW4KKy0gICAgICAg ICAgICBpZiBlY2hvICIkVFRZIiB8IGdyZXAgLUUgJ3R0eXxjb25zb2xlJyA7IHRoZW4KKysgICAg ICAgICAgICAjICJub3QgYSB0dHkiIGlzIGNvcnJlY3Qgd2l0aCBUTVQgdG9vbAorKyAgICAgICAg ICAgIGlmIGVjaG8gIiRUVFkiIHwgZ3JlcCAtRSAndHR5fGNvbnNvbGUnIHwgZ3JlcCAtdiAibm90 IGEgdHR5IiA7IHRoZW4KKyAgICAgICAgICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwk e05DfTogJHtSRUR9RVJST1Ike05DfTogQ2hhbmdpbmcgcnVubGV2ZWwgZG9lcyBub3Qgc3VwcG9y dCBjb25zb2xlLiBQbGVhc2UgbG9nIGludG8gdGhlIGhvc3Qgd2l0aCBzc2guIgorICAgICAgICAg ICAgICAgIGV4aXQgMQorICAgICAgICAgICAgIGZpCitAQCAtMTQzLDcgKzE0NSw3IEBAIGNoZWNr X3R0eSgpCisgICAgICAgICAgICAgICAgcHJpbnRfbG9nIC1lICJSdW5uaW5nIHNlc3Npb24gd2l0 aCBzc2guIEl0IG1pZ2h0IGJlIGdvb2QgdG8gdXNlIGNvbnNvbGUgaW5zdGVhZC4iCisgICAgICAg ICAgICAgZmkKKyAgICAgICAgIGZpCistICAgICAgICBTRVNTSU9OPWBwcyAtZWYgfCBncmVwIHNl c3Npb24gfCBncmVwIC12IGdyZXBgCisrICAgICAgICBTRVNTSU9OPWBwcyAtZWYgfCBncmVwIHNl c3Npb24gfCBncmVwIC12IFRNVCB8IGdyZXAgLXYgZ3JlcGAKKyAgICAgICAgIGlmIFsgeCIkU0VT U0lPTiIgIT0geCBdIDsgdGhlbgorICAgICAgICAgICAgICAgIHByaW50X2xvZyAtZSAiJHtSRUR9 RkFJTCR7TkN9OiAke1JFRH1FUlJPUiR7TkN9OiBTZXNzaW9uIGlzIHJ1bm5pbmc6ICRTRVNTSU9O IgorICAgICAgICAgICAgICAgIGV4aXQgMQorQEAgLTI1NCw3ICsyNTYsOCBAQCBjcmVhdGVfeGRn X2F1dG9zdGFydCgpCisgICAgICAgICBleGl0IDEKKyAgICAgZmkKKyAgICAgbWtkaXIgLXAgIiRU RVNUX1VTRVJfSE9NRS8uY29uZmlnL2F1dG9zdGFydCIKKy0gICAgY3AgIiRkZXNrdG9wX2ZpbGUi ICIkVEVTVF9VU0VSX0hPTUUvLmNvbmZpZy9hdXRvc3RhcnQiCisrICAgIHNlZCAtZSAicy9cKF5F eGVjPS4qXCl0ZXN0cyBpYnVzXCguKlwpL1wxdGVzdHMgJFRFU1RTXDIvIiAiJGRlc2t0b3BfZmls ZSIgXAorKyAgICAgICAgPiAiJFRFU1RfVVNFUl9IT01FLy5jb25maWcvYXV0b3N0YXJ0LyRBVVRP U1RBUlRfREVTS1RPUF9GSUxFIgorICAgICBMSU5FPSJBdXRvc3RhcnRDb25kaXRpb249aWYtZXhp c3RzICRURVNUX1VTRVJfSE9NRS8uY29uZmlnL2F1dG9zdGFydC8kQVVUT1NUQVJUX0RFU0tUT1Bf RklMRSIKKyAgICAgZWNobyAiJExJTkUiID4+ICIkVEVTVF9VU0VSX0hPTUUvLmNvbmZpZy9hdXRv c3RhcnQvJEFVVE9TVEFSVF9ERVNLVE9QX0ZJTEUiCisgICAgIGNob3duIC1SICIkVEVTVF9VU0VS IiAiJFRFU1RfVVNFUl9IT01FLy5jb25maWciCitAQCAtMzI3LDYgKzMzMCw5IEBAIGluaXRfc2Vz c2lvbigpCisgCisgICAgIExPR0lOX1VTRVI9JFVTRVIKKyAgICAgTE9HSU5fSE9NRT0kSE9NRQor KyAgICBpZiBbIHgiJFRFU1RTIiA9IHggXSA7IHRoZW4KKysgICAgICAgIFRFU1RTPSdpYnVzJwor KyAgICBmaQorICAgICBjaGVja190dHkKKyAgICAgaWYgWyAkRU5BQkxFRF9TWVNURU1EIC1lcSAx IF0gJiYgWyAgJFNFU1NJT05fSVNfR05PTUUgLWVxIDEgXSA7IHRoZW4KKyAgICAgICAgIFNFU1NJ T05fRklMRTE9Ii91c3IvbGliL3N5c3RlbWQvc3lzdGVtL2dub21lLWhlYWRsZXNzLXNlc3Npb25A LnNlcnZpY2UiCitAQCAtNDgyLDkgKzQ4OCwyNSBAQCBpbml0X2dub21lKCkKKyAgICAgICAgICAg ICBjaG93biAtUiAkTE9HSU5fVVNFUiAkVEVTVF9VU0VSX0hPTUUvLmxvY2FsCisgICAgICAgICBm aQorICAgICBmaQorKworKyAgICAjIyBVc2UgZ25vbWUtaGVhZGxlc3Mtc2Vzc2lvbiBmb3IgdGhl IG5vLWdyYXBoaWNzIG9wdGlvbiBiZWNhdXNlIGN1cnJlbnRseQorKyAgICAjIyBHRE0gaXRzZWxm IGNhbm5vdCBydW4gdGhlIGxvZ2luIHNjcmVlbihncmVldGVyKSB3aXRob3V0IGEgZGlzcGxheSBz bworKyAgICAjIyB0aGUgbm8tZ3JhcGhpY3Mgb3B0aW9uIGRvZXMgbm90IHdvcmsgd2l0aCBHRE0g YW5kIHRoZSBUTVQgdG9vbAorKyAgICAjIyB3aGlsZSBHRE0gY2FuIGludm9rZSB0aGUgaGVhZGxl c3MgR05PTUUgV2F5bGFuZCBzZXNzaW9ucy4KKysgICAgIyMKKysgICAgIyMgVXNlIEdOT01FX1NI RUxMX1dBWUxBTkRfQ09NTUFORCBmb3IgdGhlIG5vLWdyYXBoaWNzIG9wdGlvbiB0byBhZGQgYQor KyAgICAjIyB2aXJ0dWFsIG1vbml0b3Igc2luY2UgZ25vbWUtaGVhZGxlc3Mtc2Vzc2lvbiBwcm92 aWRlcyBhIGhlYWRsZXNzIG1vZGUKKysgICAgIyMgYnV0IG5vIG1vbml0b3IgYW5kIElCdXMgZm9j dXMtaW4vb3V0IGV2ZW50cyBkb2VzIG5vdCB3b3JrIHdpdGhvdXQKKysgICAgIyMgYW55IG1vbml0 b3JzLgorKyAgICAjIworKyAgICAjIyBVc2UgdGhlIHN5c3RlbWQgbG9jYWxlIGNvbmZpZ3VyYXRp b24gZm9yIHRoZSBuby1ncmFwaGNpcyBtb2RlIHNpbmNlCisrICAgICMjIGdub21lLWhlYWRsZXNz LXNlc3Npb24gZG9lcyBub3QgcHVsbCBMQU5HIGZyb20gQWNjb3VudHNTZXJ2aWNlLgorKyAgICAj IworICAgICBpZiBbICRMT0dJTl9VU0VSICE9ICRVU0VSIF0gOyB0aGVuCisgICAgICAgICBTSEVM TF9TRVJWSUNFX0ZJTEU9Im9yZy5nbm9tZS5TaGVsbEB3YXlsYW5kLnNlcnZpY2UiCisgICAgICAg ICBTWVNURU1EX1VTRVJfRElSPSIkVEVTVF9VU0VSX0hPTUUvLmNvbmZpZy9zeXN0ZW1kL3VzZXIi CisrICAgICAgICBFTlZfVVNFUl9ESVI9IiRURVNUX1VTRVJfSE9NRS8uY29uZmlnL2Vudmlyb25t ZW50LmQiCisrICAgICAgICBMT0NBTEVfQ09ORj0iJEVOVl9VU0VSX0RJUi9pYnVzLmNvbmYiCisg ICAgICAgICBpZiB0ZXN0ICRIQVZFX0dSQVBISUNTIC1uZSAxIDsgdGhlbgorICAgICAgICAgICAg IGlmIHRlc3QgISAtZiAiJFNZU1RFTURfVVNFUl9ESVIvJFNIRUxMX1NFUlZJQ0VfRklMRSIgOyB0 aGVuCisgICAgICAgICAgICAgICAgIG1rZGlyIC1wICIkU1lTVEVNRF9VU0VSX0RJUiIKK0BAIC00 OTQsMTIgKzUxNiwxOSBAQCBpbml0X2dub21lKCkKKyAgICAgICAgICAgICAgICAgICAgID4gJFNI RUxMX1NFUlZJQ0VfRklMRQorICAgICAgICAgICAgICAgICBkaWZmICRTWVNURU1EX1NZU1RFTV9E SVIvJFNIRUxMX1NFUlZJQ0VfRklMRSAkU0hFTExfU0VSVklDRV9GSUxFCisgICAgICAgICAgICAg ICAgIHBvcGQKKy0gICAgICAgICAgICAgICAgY2hvd24gLVIgJExPR0lOX1VTRVIgIiRURVNUX1VT RVJfSE9NRS8uY29uZmlnIgorICAgICAgICAgICAgIGZpCisrICAgICAgICAgICAgbWtkaXIgLXAg IiRFTlZfVVNFUl9ESVIiCisrICAgICAgICAgICAgY2F0ID4gIiRMT0NBTEVfQ09ORiIgPDwgX0VP Rl9MT0NBTEVfQ09ORgorK0xBTkc9JFNFU1NJT05fTEFORworK19FT0ZfTE9DQUxFX0NPTkYKKysg ICAgICAgICAgICBjaG93biAtUiAkTE9HSU5fVVNFUiAiJFRFU1RfVVNFUl9IT01FLy5jb25maWci CisgICAgICAgICBlbHNlCisgICAgICAgICAgICAgaWYgdGVzdCAtZiAiJFNZU1RFTURfVVNFUl9E SVIvJFNIRUxMX1NFUlZJQ0VfRklMRSIgOyB0aGVuCisgICAgICAgICAgICAgICAgIHJtICIkU1lT VEVNRF9VU0VSX0RJUi8kU0hFTExfU0VSVklDRV9GSUxFIgorICAgICAgICAgICAgIGZpCisrICAg ICAgICAgICAgaWYgdGVzdCAtZiAiJExPQ0FMRV9DT05GIiA7IHRoZW4KKysgICAgICAgICAgICAg ICAgcm0gIiRMT0NBTEVfQ09ORiIKKysgICAgICAgICAgICBmaQorICAgICAgICAgZmkKKyAgICAg ZmkKKyAgICAgR0VUX0RJU0FCTEVfVVNFUl9FWD0iZ3NldHRpbmdzIGdldCBvcmcuZ25vbWUuc2hl bGwgZGlzYWJsZS11c2VyLWV4dGVuc2lvbnMiCitAQCAtNTU2LDcgKzU4NSw3IEBAIG9wZXJhdGVf ZGVza3RvcF93aXRoX3N5c3RlbWQoKQorICAgICBTRVNTSU9OPWdub21lLWhlYWRsZXNzLXNlc3Np b24KKyAgICAgQ09NTUFORD0iJDEiCisgCistICAgICNpZiB0ZXN0ICRIQVZFX0dSQVBISUNTIC1l cSAxIDsgdGhlbgorKyAgICBpZiB0ZXN0ICRIQVZFX0dSQVBISUNTIC1lcSAxIDsgdGhlbgorICAg ICAgICAgY2FzZSAiJENPTU1BTkQiIGluCisgICAgICAgICAic3RhcnQiKSBzeXN0ZW1jdGwgaXNv bGF0ZSBncmFwaGljYWwudGFyZ2V0CisgICAgICAgICAgICAgICAgICBlY2hvICIiCitAQCAtNTY1 LDIyICs1OTQsMjQgQEAgb3BlcmF0ZV9kZXNrdG9wX3dpdGhfc3lzdGVtZCgpCisgICAgICAgICAi IikgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogJHtSRUR9RVJST1Ike05DfTog V3JvbmcgY29tbWFuZCAkQ09NTUFORCIKKyAgICAgICAgICAgICAgICAgIGV4aXQgMTs7CisgICAg ICAgICBlc2FjCistICAgICNlbHNlCistICAgICMgICAgc2V0ZW5mb3JjZSAwCistICAgICMgICAg c3lzdGVtY3RsICRDT01NQU5EICR7U0VTU0lPTn1AJHtURVNUX1VTRVJ9CistICAgICNmaQorKyAg ICBlbHNlCisrICAgICAgICBzZXRlbmZvcmNlIDAKKysgICAgICAgIHN5c3RlbWN0bCAkQ09NTUFO RCAke1NFU1NJT059QCR7VEVTVF9VU0VSfQorKyAgICBmaQorICAgICBjYXNlICIkQ09NTUFORCIg aW4KKyAgICAgInN0YXJ0Iikgc2xlZXAgMzA7OworICAgICAiIikgOzsKKyAgICAgZXNhYworLSAg ICAjaWYgdGVzdCAkSEFWRV9HUkFQSElDUyAtZXEgMSA7IHRoZW4KKysgICAgaWYgdGVzdCAkSEFW RV9HUkFQSElDUyAtZXEgMSA7IHRoZW4KKyAgICAgICAgIHN5c3RlbWN0bCBzdGF0dXMgLS1uby1w YWdlciBncmFwaGljYWwudGFyZ2V0CistICAgICNlbHNlCistICAgICMgICAgc3lzdGVtY3RsIHN0 YXR1cyAtLW5vLXBhZ2VyICR7U0VTU0lPTn1AJHtURVNUX1VTRVJ9CistICAgICNmaQorKyAgICBl bHNlCisrICAgICAgICBzeXN0ZW1jdGwgc3RhdHVzIC0tbm8tcGFnZXIgJHtTRVNTSU9OfUAke1RF U1RfVVNFUn0KKysgICAgZmkKKyAgICAgcHMgLWVmIHwgZ3JlcCBYCisgICAgIHBzIC1lZiB8IGdy ZXAgc2Vzc2lvbgorICAgICBwcyAtZWYgfCBncmVwIGlidXMKKysgICAgU1VTRVI9YGVjaG8gIiRM T0dJTl9VU0VSIiB8IGN1dCAtYyAxLTdgCisrICAgIHBzIC1lZiB8IGdyZXAgJFNVU0VSCisgfQor IAorIAorQEAgLTYzOSw2ICs2NzAsMjMgQEAgcnVuX3Nlc3Npb24oKQorIH0KKyAKKyAKKytydW5f bW9uaXRvcigpCisreworKyAgICBpZiAhIHdoaWNoIGdub21lLW1vbml0b3ItY29uZmlnID4gL2Rl di9udWxsIDsgdGhlbgorKyAgICAgICAgcHJpbnRfbG9nIC1lICIke1JFRH1GQUlMJHtOQ306IE5v IGdub21lLW1vbml0b3ItY29uZmlnIgorKyAgICAgICAgcmV0dXJuCisrICAgIGZpCisrICAgIGlm IFsgJEVOQUJMRURfU1lTVEVNRCAtbmUgMSBdIHx8IFsgICRTRVNTSU9OX0lTX0dOT01FIC1uZSAx IF0gXAorKyAgICAgICB8fCBbICRIQVZFX0dSQVBISUNTIC1uZSAxIF0gOyB0aGVuCisrICAgICAg ICByZXR1cm4KKysgICAgZmkKKysgICAgL3Vzci9saWJleGVjL2dub21lLXNjcmVlbi1jYXN0LnB5 IC12IDEwMjQgNzY4ICYKKysgICAgc2xlZXAgMworKyAgICBnbm9tZS1tb25pdG9yLWNvbmZpZyBs aXN0CisrICAgICNnbm9tZS1tb25pdG9yLWNvbmZpZyBzZXQgLUxwTSBWaXJ0dWFsLTEgLXQgbm9y bWFsIC1tIDEwMjR4NzY4QDYwLjAwNAorK30KKysKKysKKyBjb3VudF9jYXNlX3Jlc3VsdCgpCisg eworICAgICByZXR2YWw9JDEKK0BAIC03NTgsOSArODA2LDYgQEAgcnVuX2dub21lX2Rlc2t0b3Bf dGVzdGluZ19ydW5uZXIoKQorIHsKKyAgICAgcGFzcz0wCisgICAgIGZhaWw9MAorLSAgICBpZiBb IHgiJFRFU1RTIiA9IHggXSA7IHRoZW4KKy0gICAgICAgIFRFU1RTPSdpYnVzJworLSAgICBmaQor ICAgICBpZiBlY2hvICRQUk9HTkFNRSB8IGdyZXAgLXEgYXV0b3N0YXJ0IDsgdGhlbgorICAgICAg ICAgZXhwb3J0IElCVVNfREFFTU9OX1dJVEhfU1lTVEVNRD0xCisgICAgIGZpCitkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLmRlc2t0b3AuaW4gYi9zcmMvdGVzdHMv aWJ1cy1kZXNrdG9wLXRlc3RpbmcuZGVza3RvcC5pbgoraW5kZXggZTkxOTAwZWQuLmZlOTM1NmFk IDEwMDY0NAorLS0tIGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLmRlc2t0b3AuaW4K KysrKyBiL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy5kZXNrdG9wLmluCitAQCAtMiw3 ICsyLDcgQEAKKyBOYW1lPUlCdXMgRGVza3RvcCBUZXN0aW5nIFJ1bm5lcgorIEdlbmVyaWNOYW1l PUlucHV0IE1ldGhvZCBEZXNrdG9wIFRlc3RpbmcgUnVubmVyCisgQ29tbWVudD1UZXN0IHBsdWdp biBmb3IgSUJ1cyBEZXNrdG9wIFRlc3RpbmcKKy1FeGVjPXNoIC1jICdleGVjIEBsaWJleGVjZGly QC9pYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQgLS1lbnZjaGVjayAtLW91dHB1dCAkSE9N RS90ZXN0LWF1dG9zdGFydC5sb2cgLS1yZXN1bHQgJEhPTUUvdGVzdC5sb2cgLS1ydW5uZXIgZ25v bWUgLS1zY3JlZW5kdW1wICRIT01FL3NjcmVlbi5sb2cgLS10ZXN0cyBpYnVzJworK0V4ZWM9c2gg LWMgJ2V4ZWMgQGxpYmV4ZWNkaXJAL2lidXMtZGVza3RvcC10ZXN0aW5nLWF1dG9zdGFydCAtLWVu dmNoZWNrIC0tb3V0cHV0ICRIT01FL3Rlc3QtYXV0b3N0YXJ0LmxvZyAtLXJlc3VsdCAkSE9NRS90 ZXN0LmxvZyAtLXJ1bm5lciBnbm9tZSAtLXRlc3RzIGlidXMnCisgVGVybWluYWw9ZmFsc2UKKyBU eXBlPUFwcGxpY2F0aW9uCisgRW5jb2Rpbmc9VVRGLTgKK2RpZmYgLS1naXQgYS9zcmMvdGVzdHMv aWJ1cy1lbmdpbmUtc3dpdGNoLmMgYi9zcmMvdGVzdHMvaWJ1cy1lbmdpbmUtc3dpdGNoLmMKK2lu ZGV4IGI1MGJhYzU5Li43MzU5ZTEyNSAxMDA2NDQKKy0tLSBhL3NyYy90ZXN0cy9pYnVzLWVuZ2lu ZS1zd2l0Y2guYworKysrIGIvc3JjL3Rlc3RzL2lidXMtZW5naW5lLXN3aXRjaC5jCitAQCAtMSw1 ICsxLDYgQEAKKyAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJz LW1vZGU6IG5pbDsgLSotICovCisgCisrI2luY2x1ZGUgPGxvY2FsZS5oPgorICNpbmNsdWRlIDxz dHJpbmcuaD4KKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgI2luY2x1ZGUgImlidXMuaCIKK0BAIC0y NTEsNiArMjUyLDggQEAgbWFpbiAoZ2ludCAgICBhcmdjLAorICAgICAgIGdjaGFyICoqYXJndikK KyB7CisgICAgIGdpbnQgcmVzdWx0OworKyAgICAvKiBUbyBnZXQgVVRGLTggZXJyb3IgbWVzc2Fn ZXMgd2l0aCBnbGliMiAqLworKyAgICBzZXRsb2NhbGUgKExDX0FMTCwgIiIpOworICAgICBpYnVz X2luaXQgKCk7CisgICAgIGdfdGVzdF9pbml0ICgmYXJnYywgJmFyZ3YsIE5VTEwpOworICAgICBi dXMgPSBpYnVzX2J1c19uZXcgKCk7CistLSAKKzIuNDUuMAorCgpkaWZmIC0tZ2l0IGEvaWJ1cy5z cGVjIGIvaWJ1cy5zcGVjCmluZGV4IGQyOGYzZDEuLjYzNDI1ZWEgMTAwNjQ0Ci0tLSBhL2lidXMu c3BlYworKysgYi9pYnVzLnNwZWMKQEAgLTYyLDcgKzYyLDcgQEAKIE5hbWU6ICAgICAgICAgICBp YnVzCiBWZXJzaW9uOiAgICAgICAgMS41LjMxfmJldGExCiAjIGh0dHBzOi8vZ2l0aHViLmNvbS9m ZWRvcmEtaW5mcmEvcnBtYXV0b3NwZWMvaXNzdWVzLzEwMQotUmVsZWFzZTogICAgICAgIDklez9k aXN0fQorUmVsZWFzZTogICAgICAgIDEwJXs/ZGlzdH0KIFN1bW1hcnk6ICAgICAgICBJbnRlbGxp Z2VudCBJbnB1dCBCdXMgZm9yIExpbnV4IE9TCiBMaWNlbnNlOiAgICAgICAgTEdQTC0yLjEtb3It bGF0ZXIKIFVSTDogICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy8lbmFtZS93aWtp CkBAIC02MDksNiArNjA5LDcgQEAgZGNvbmYgdXBkYXRlIHx8IDoKICV7X2JpbmRpcn0vaWJ1cy1k ZXNrdG9wLXRlc3RpbmctcnVubmVyCiAle19kYXRhZGlyfS9pYnVzL3Rlc3RzCiAle19saWJleGVj ZGlyfS9pYnVzLWRlc2t0b3AtdGVzdGluZy1hdXRvc3RhcnQKKyV7X2xpYmV4ZWNkaXJ9L2lidXMt ZGVza3RvcC10ZXN0aW5nLW1vZHVsZQogCiAlZmlsZXMgdGVzdHMKICVkaXIgJXtfbGliZXhlY2Rp cn0vaW5zdGFsbGVkLXRlc3RzCkBAIC02MTcsNiArNjE4LDkgQEAgZGNvbmYgdXBkYXRlIHx8IDoK ICV7X2RhdGFkaXJ9L2luc3RhbGxlZC10ZXN0cy9pYnVzCiAKICVjaGFuZ2Vsb2cKKyogU2F0IEp1 bCAyNyAyMDI0IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPiAtIDEuNS4zMX5i ZXRhMS0xMAorLSBSZXBsYWNlIEdOT01FIFhvcmcgd2l0aCBHTk9NRSBXYXlsYW5kIGluIENJCisK ICogU2F0IEp1bCAyNyAyMDI0IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPiAt IDEuNS4zMX5iZXRhMS05CiAtIFVwZGF0ZSBDSSBmb3IgUkhFTCBwYWNrYWdlcwogCg==