From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id C19C14F45B for ; Wed, 25 Feb 2026 14:45:20 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'/mvYqwOY50g3VvAfrvg8A2lgvZY69pLIjbGTeGMnsdk=', expected b'Dp/ScQcjM/9KOpKseWQbx6C0cb6HO4RUYSesIp82ywE=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1772030689; h=content-type : mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-transfer-encoding : from; bh=/mvYqwOY50g3VvAfrvg8A2lgvZY69pLIjbGTeGMnsdk=; b=Ic+lME8/sls5n9cqzLKkVjTbMv7/hVYBtNceMZGqI6ZA50X/TxGab1WGdxzDzK2icwknx ySMGSfQWILBNMn/0zoXBYXyZDAt7Le8Z0E3vf6JWyizZLApPRobIkMyjouj+DBsQ9Qh7N1C twQdSoDttgUPOK27nevMeQQjKAu4LuaxaVKId7n4hCKI8YxOzlXFrhIoZD1eBQSaZlJ36Su JD6QaKl/2+g07GDLJgt0Thkug6JOQJbJ1vpgKB6h5+XBr0WMRbMYxxW74eCKVRAAfaWYjxE eNAYZnPZE1TVnb7Q4VHlxLsaoL5TlCKAtWHWg/zsXxnErpF/OeP2ffhZjQdA== Received: from [172.18.0.3] (unknown [172.18.0.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 88163691C0A; Wed, 25 Feb 2026 16:44:49 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1772030678; b=i5BFjmo/aHZ/liPXSkxILDrRAqO7zF4Qk0i6hQZl53Zeb43JPgPPqe0D6SAxK83choRiH jWoNoOv6Y8NNRAIqYJsA95XenzbIA7iPPdfnM55K/iGYapp+2xPYManJEmDQJyr3Mumv6TC MzQJGwkpED0vLWVa6OfW/ZCXxcHZ+UmO4U1RRZp8EDWkGdmRYXhXbpQokiKow22EjeAIGYE zqceoLj8Bjcdugr4+uva2uot8PMM3ROYYje20F44orClqs01lqsa/fZCk+mn6ym95XEaRTZ g62hs5Jpejkx/QfCxHmRY8nXhY25mb9Oh/7fTH/mJjol5UC0uLiUz3bK9UgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1772030678; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=/mvYqwOY50g3VvAfrvg8A2lgvZY69pLIjbGTeGMnsdk=; b=gK/Nk48P6Emw5Bp/0+WT8A+F3Pv3ePsBgCKA6898xQeSyK3KV3gJtbA2RM+mFwwF3wp1i 2tbUNR8OMrzTdSG2Fm7J9Btc5FLG26ORlzwRwskWs/w1wGVDhh33PHJSOo0rn1zR2FBnJ2g qJG8qLlhBWWuBvCIghz8jzN3008C5cAr3Z6LTe4dTOcIsokIlMFVAIsJpPtvXRhdn6orB7b raYtykn0ZFMDJB+flLT6NaU7pJLsnHsld7K9NAj0Ne3yzeqLNObAnVNDpM62RfnpPS0qdKa xY7lNmgYwQYIWJ0wWBDpDE9+tuOlbUhGMBvyNZf4KgIMlrxLukPdJ3vZAy7g== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1772030669; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=Dp/ScQcjM/9KOpKseWQbx6C0cb6HO4RUYSesIp82ywE=; b=poN9kws2WzXzC0ETOlo90+3F+NK1Kni0UbZmpNcPNzAyYJDsJrXqVn9zwXizD9nY1I0/f JTOcGz5I2KJP3deGKZ0mELPYygRqvpEnAzz7nJZsAXBAwL1NLbLW4HFlVQXKEl+DmZaT8SW EeHMIfQhxJh4iDdiQiPqbUZw4Bsr/6bARXZNp/Ev3SxnyhyBqiNvXj8ABYTtjqHRhpJMxdc ZNrnzuF8TcgurMY+3N220nH2/odgH7x04LiIOsxzFuBLtUJtfl2agIwvDPf5MS0+Jm7vxq4 vYuE/R4xHffPbUlDX6YzC0onxFakcqG6sLF7x41L+r5eIFz65LMzmoOjxMTw== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Wed, 25 Feb 2026 14:44:29 -0000 Message-ID: <177203066956.25.4466026026922548274@29965ddac10e> Message-ID-Hash: XUIORPSTVXJGQBNLENCWVZFGBLRPE44R X-Message-ID-Hash: XUIORPSTVXJGQBNLENCWVZFGBLRPE44R X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] fate: add tests for hlsenc, cbs_sei, and timecode to improve coverage (PR #22282) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: sanks011 via ffmpeg-devel Cc: sanks011 Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: UFIgIzIyMjgyIG9wZW5lZCBieSBzYW5rczAxMQpVUkw6IGh0dHBzOi8vY29kZS5mZm1wZWcub3Jn L0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjIyODIKUGF0Y2ggVVJMOiBodHRwczovL2NvZGUuZmZtcGVn Lm9yZy9GRm1wZWcvRkZtcGVnL3B1bGxzLzIyMjgyLnBhdGNoCgpUaGlzIHBhdGNoIHNlcmllcyBh ZGRzIEZBVEUgdGVzdCBjb3ZlcmFnZSBmb3IgdGhyZWUgdW5kZXItdGVzdGVkIGZpbGVzDQpmcm9t IHRocmVlIGRpZmZlcmVudCBsaWJyYXJpZXMsIGFzIHBhcnQgb2YgdGFzayBvZiBicmluZ2luZyBs b3ctY292ZXJhZ2UgZmlsZXMgYWJvdmUgOTAlIGxpbmUgY292ZXJhZ2UuDQoNCiMjIGxpYmF2Zm9y bWF0L2hsc2VuYy5jDQpCYXNlbGluZSBjb3ZlcmFnZTogPDUwJSBsaW5lcw0KDQpBZGRlZCAxMSBu ZXcgRkFURSBpbnRlZ3JhdGlvbiB0ZXN0cyBpbiBgdGVzdHMvZmF0ZS9obHNlbmMubWFrYCBjb3Zl cmluZw0KcHJldmlvdXNseSB1bnRlc3RlZCBITFMgbXV4ZXIgY29kZSBwYXRoczoNCg0KLSBgaGxz X2ZsYWdzYDogYHJvdW5kX2R1cmF0aW9uc2AsIGBzcGxpdF9ieV90aW1lYCwgYGRpc2NvbnRfc3Rh cnRgLA0KICBgaW5kZXBlbmRlbnRfc2VnbWVudHNgLCBgZGVsZXRlX3NlZ21lbnRzYCwgYHRlbXBf ZmlsZWANCi0gT3B0aW9uczogYHN0YXJ0X251bWJlcmAsIGBobHNfYmFzZV91cmxgLCBgYWxsb3df Y2FjaGVgDQotIFBsYXlsaXN0IHR5cGVzOiBgZXZlbnRgLCBgdm9kYA0KDQojIyBsaWJhdmNvZGVj L2Nic19zZWkuYw0KQmFzZWxpbmUgY292ZXJhZ2U6ICoqMzYuOCUgbGluZXMsIDI5LjIlIGJyYW5j aGVzKiogKDIwMjYtMDItMjUpDQoNCkFkZGVkIGBsaWJhdmNvZGVjL3Rlc3RzL2Nic19zZWkuY2Ag 4oCUIHRoZSBmaXJzdCBkZWRpY2F0ZWQgdW5pdCB0ZXN0IGZvcg0KdGhpcyBmaWxlLCBjb3Zlcmlu ZyB0aGUgY29tcGxldGUgcHVibGljIEFQSToNCg0KLSBgZmZfY2JzX3NlaV9maW5kX3R5cGVgIOKA lCBjb21tb24gKyBjb2RlYy1zcGVjaWZpYyB0eXBlcywgdW5rbm93biB0eXBlDQotIGBmZl9jYnNf c2VpX2FsbG9jX21lc3NhZ2VfcGF5bG9hZGAg4oCUIHBsYWluLCB1c2VyX2RhdGFfcmVnaXN0ZXJl ZCwgdXNlcl9kYXRhX3VucmVnaXN0ZXJlZA0KLSBgZmZfY2JzX3NlaV9saXN0X2FkZGAgKyBgZmZf Y2JzX3NlaV9mcmVlX21lc3NhZ2VfbGlzdGANCi0gYGZmX2Nic19zZWlfYWRkX21lc3NhZ2VgLCBg ZmZfY2JzX3NlaV9maW5kX21lc3NhZ2VgLCBgZmZfY2JzX3NlaV9kZWxldGVfbWVzc2FnZV90eXBl YA0KDQpUZXN0cyBydW4gd2l0aCBILjI2NCwgSC4yNjUsIGFuZCBILjI2NiBDQlMgY29udGV4dHMg dG8gY292ZXIgYWxsDQpicmFuY2hlcyBpbiBgY2JzX3NlaV9nZXRfdW5pdGAgYW5kIGBjYnNfc2Vp X2dldF9tZXNzYWdlX2xpc3RgIChpbmNsdWRpbmcNCnRoZSBILjI2NSBzdWZmaXggU0VJIHBhdGgp LiBILjI2NS9ILjI2NiBjb250ZXh0cyBhcmUgaW5pdGlhbGlzZWQNCm9wdGlvbmFsbHkgYW5kIHNr aXBwZWQgZ3JhY2VmdWxseSBpZiBub3QgY29tcGlsZWQgaW4uDQoNClJlZ2lzdGVyZWQgaW4gYGxp YmF2Y29kZWMvTWFrZWZpbGVgIChnYXRlZCBvbiBgQ09ORklHX0NCU19IMjY0YCkgYW5kDQpgdGVz dHMvZmF0ZS9saWJhdmNvZGVjLm1ha2AuDQoNCiMjIGxpYmF2dXRpbC90aW1lY29kZS5jDQpCYXNl bGluZSBjb3ZlcmFnZTogKio4Ni4yJSBsaW5lcywgNzEuNCUgYnJhbmNoZXMqKiDigJQgbm8gZGVk aWNhdGVkIHRlc3QgZXhpc3RlZA0KDQpBZGRlZCBgbGliYXZ1dGlsL3Rlc3RzL3RpbWVjb2RlLmNg IOKAlCB0aGUgZmlyc3QgZGlyZWN0IHVuaXQgdGVzdCBmb3INCmB0aW1lY29kZS5jYCwgY292ZXJp bmcgYWxsIHB1YmxpYyBBUEkgZnVuY3Rpb25zOg0KDQotIGBhdl90aW1lY29kZV9pbml0YCwgYGF2 X3RpbWVjb2RlX2luaXRfZnJvbV9jb21wb25lbnRzYCwgYGF2X3RpbWVjb2RlX2luaXRfZnJvbV9z dHJpbmdgDQotIGBhdl90aW1lY29kZV9tYWtlX3N0cmluZ2AsIGBhdl90aW1lY29kZV9tYWtlX3Nt cHRlX3RjX3N0cmluZ3ssMn1gLCBgYXZfdGltZWNvZGVfbWFrZV9tcGVnX3RjX3N0cmluZ2ANCi0g YGF2X3RpbWVjb2RlX2dldF9zbXB0ZV9mcm9tX2ZyYW1lbnVtYCwgYGF2X3RpbWVjb2RlX2dldF9z bXB0ZWANCi0gYGF2X3RpbWVjb2RlX2FkanVzdF9udHNjX2ZyYW1lbnVtMmAsIGBhdl90aW1lY29k ZV9jaGVja19mcmFtZV9yYXRlYA0KDQpJbmNsdWRlcyBkcm9wLWZyYW1lIGFuZCBub24tZHJvcC1m cmFtZSBwYXRocywgMjRoIHdyYXAsIE5UU0MgYWRqdXN0bWVudA0KZm9yIDMwLzYwZnBzLCBhbmQg ZXJyb3IgcGF0aCB2YWxpZGF0aW9uLg0KDQpSZWdpc3RlcmVkIGluIGBsaWJhdnV0aWwvTWFrZWZp bGVgIGFuZCBgdGVzdHMvZmF0ZS9saWJhdnV0aWwubWFrYC4KCgpGcm9tIDY0NTFjMjJkMzhjOWM0 OGFlMGNmYmIyYWNmY2Q1NDlmNTgwZGJkNGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFNhbmthbHBhIFNhcmthciA8c2Fua2FscGFzYXJrYXI2OEBnbWFpbC5jb20+CkRhdGU6IFdlZCwg MjUgRmViIDIwMjYgMjA6MDE6MTcgKzA1MzAKU3ViamVjdDogW1BBVENIXSBBZGQgdW5pdCB0ZXN0 cyBmb3IgQ0JTIFNFSSBoYW5kbGluZyBhbmQgdGltZWNvZGUgdXRpbGl0aWVzCgotIEludHJvZHVj ZWQgYSBuZXcgdGVzdCBmaWxlIGZvciBDQlMgU0VJIGZ1bmN0aW9ucyBpbiBsaWJhdmNvZGVjLCBj b3ZlcmluZwogIGZ1bmN0aW9uYWxpdGllcyBzdWNoIGFzIGZpbmRpbmcgU0VJIHR5cGVzLCBhZGRp bmcgbWVzc2FnZXMsIGFuZCBtYW5hZ2luZwogIG1lc3NhZ2UgbGlzdHMuCgotIEFkZGVkIGEgbmV3 IHRlc3QgZmlsZSBmb3IgdGltZWNvZGUgdXRpbGl0aWVzIGluIGxpYmF2dXRpbCwgdGVzdGluZwog IGluaXRpYWxpemF0aW9uLCBzdHJpbmcgY29udmVyc2lvbiwgYW5kIFNNUFRFIGZvcm1hdHRpbmcu CgotIFVwZGF0ZWQgZmF0ZSB0ZXN0IGNvbmZpZ3VyYXRpb25zIHRvIGluY2x1ZGUgdGhlIG5ldyB0 ZXN0cyBmb3IgQ0JTIFNFSSBhbmQKICB0aW1lY29kZSBmdW5jdGlvbmFsaXRpZXMuCi0tLQogbGli YXZjb2RlYy9NYWtlZmlsZSAgICAgICAgfCAgIDEgKwogbGliYXZjb2RlYy90ZXN0cy9jYnNfc2Vp LmMgfCA2NjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliYXZ1dGls L01ha2VmaWxlICAgICAgICAgfCAgIDEgKwogbGliYXZ1dGlsL3Rlc3RzL3RpbWVjb2RlLmMgfCAz ODUgKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9mYXRlL2hsc2VuYy5tYWsgICAgICB8IDE4 NCArKysrKysrKysrCiB0ZXN0cy9mYXRlL2xpYmF2Y29kZWMubWFrICB8ICAgNSArCiB0ZXN0cy9m YXRlL2xpYmF2dXRpbC5tYWsgICB8ICAgNSArCiA3IGZpbGVzIGNoYW5nZWQsIDEyNDcgaW5zZXJ0 aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvdGVzdHMvY2JzX3NlaS5jCiBj cmVhdGUgbW9kZSAxMDA2NDQgbGliYXZ1dGlsL3Rlc3RzL3RpbWVjb2RlLmMKCmRpZmYgLS1naXQg YS9saWJhdmNvZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQppbmRleCA3ZDNlNGFh MWI0Li43NGE5OTViMjU2IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL01ha2VmaWxlCisrKyBiL2xp YmF2Y29kZWMvTWFrZWZpbGUKQEAgLTEzNzgsNiArMTM3OCw3IEBAIFRFU1RQUk9HUy0kKENPTkZJ R19EWFZfRU5DT0RFUikgICAgICAgICAgICs9IGhhc2h0YWJsZQogVEVTVFBST0dTLSQoQ09ORklH X01KUEVHX0VOQ09ERVIpICAgICAgICAgKz0gbWpwZWdlbmNfaHVmZm1hbgogVEVTVFBST0dTLSQo SEFWRV9NTVgpICAgICAgICAgICAgICAgICAgICAgKz0gbW90aW9uCiBURVNUUFJPR1MtJChDT05G SUdfTVBFR1ZJREVPKSAgICAgICAgICAgICArPSBtcGVnMTJmcmFtZXJhdGUKK1RFU1RQUk9HUy0k KENPTkZJR19DQlNfSDI2NCkgICAgICAgICAgICAgICs9IGNic19zZWkKIFRFU1RQUk9HUy0kKENP TkZJR19IMjY0X01FVEFEQVRBX0JTRikgICAgICs9IGgyNjRfbGV2ZWxzCiBURVNUUFJPR1MtJChD T05GSUdfSEVWQ19NRVRBREFUQV9CU0YpICAgICArPSBoMjY1X2xldmVscwogVEVTVFBST0dTLSQo Q09ORklHX1JBTkdFQ09ERVIpICAgICAgICAgICAgKz0gcmFuZ2Vjb2RlcgpkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy90ZXN0cy9jYnNfc2VpLmMgYi9saWJhdmNvZGVjL3Rlc3RzL2Nic19zZWkuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jOGI0YWZlOThiCi0tLSAvZGV2 L251bGwKKysrIGIvbGliYXZjb2RlYy90ZXN0cy9jYnNfc2VpLmMKQEAgLTAsMCArMSw2NjYgQEAK Ky8qCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl IFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo IEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworLyoqCisgKiBVbml0IHRl c3RzIGZvciBjYnNfc2VpLmMgZnVuY3Rpb25zOgorICogICBmZl9jYnNfc2VpX2ZpbmRfdHlwZSwg ZmZfY2JzX3NlaV9hbGxvY19tZXNzYWdlX3BheWxvYWQsCisgKiAgIGZmX2Nic19zZWlfbGlzdF9h ZGQsIGZmX2Nic19zZWlfZnJlZV9tZXNzYWdlX2xpc3QsCisgKiAgIGZmX2Nic19zZWlfYWRkX21l c3NhZ2UsIGZmX2Nic19zZWlfZmluZF9tZXNzYWdlLAorICogICBmZl9jYnNfc2VpX2RlbGV0ZV9t ZXNzYWdlX3R5cGUKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcu aD4KKworI2luY2x1ZGUgImxpYmF2dXRpbC9sb2cuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvbWFj cm9zLmgiCisjaW5jbHVkZSAibGliYXZjb2RlYy9jYnMuaCIKKyNpbmNsdWRlICJsaWJhdmNvZGVj L2Nic19oMjY0LmgiCisjaW5jbHVkZSAibGliYXZjb2RlYy9jYnNfc2VpLmgiCisjaW5jbHVkZSAi bGliYXZjb2RlYy9zZWkuaCIKKworI2RlZmluZSBDSEVDS19SRVQobGFiZWwsIGV4cHIpIGRvIHsg ICAgICAgICAgICAgXAorICAgIGludCBlcnJfXyA9IChleHByKTsgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgIGlmIChlcnJfXyA8IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLCAgICAgICAgICAgICAgXAorICAg ICAgICAgICAgICAgIiVzIGZhaWxlZDogZXJyPSVkXG4iLCAgICAgICAgICBcCisgICAgICAgICAg ICAgICBsYWJlbCwgZXJyX18pOyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldCA9IDE7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGdvdG8gZW5kOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQorCisvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8q IFRlc3QgZmZfY2JzX3NlaV9maW5kX3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIGludCB0ZXN0X2ZpbmRfdHlw ZShDb2RlZEJpdHN0cmVhbUNvbnRleHQgKmN0eCkKK3sKKyAgICBjb25zdCBTRUlNZXNzYWdlVHlw ZURlc2NyaXB0b3IgKmRlc2M7CisKKyAgICAvKiBLbm93biBjb21tb24gdHlwZSAtIGZpbGxlciBw YXlsb2FkICovCisgICAgZGVzYyA9IGZmX2Nic19zZWlfZmluZF90eXBlKGN0eCwgU0VJX1RZUEVf RklMTEVSX1BBWUxPQUQpOworICAgIGlmICghZGVzYykgeworICAgICAgICBhdl9sb2coTlVMTCwg QVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImZpbmRfdHlwZTogZXhwZWN0ZWQgZGVzY3Jp cHRvciBmb3IgU0VJX1RZUEVfRklMTEVSX1BBWUxPQURcbiIpOworICAgICAgICByZXR1cm4gMTsK KyAgICB9CisgICAgaWYgKGRlc2MtPnR5cGUgIT0gU0VJX1RZUEVfRklMTEVSX1BBWUxPQUQpIHsK KyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICJmaW5k X3R5cGU6IHdyb25nIHR5cGUgcmV0dXJuZWQ6ICVkXG4iLCBkZXNjLT50eXBlKTsKKyAgICAgICAg cmV0dXJuIDE7CisgICAgfQorCisgICAgLyogVXNlci1kYXRhIHJlZ2lzdGVyZWQgKi8KKyAgICBk ZXNjID0gZmZfY2JzX3NlaV9maW5kX3R5cGUoY3R4LCBTRUlfVFlQRV9VU0VSX0RBVEFfUkVHSVNU RVJFRF9JVFVfVF9UMzUpOworICAgIGlmICghZGVzYykgeworICAgICAgICBhdl9sb2coTlVMTCwg QVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImZpbmRfdHlwZTogZXhwZWN0ZWQgZGVzY3Jp cHRvciBmb3IgdXNlcl9kYXRhX3JlZ2lzdGVyZWRcbiIpOworICAgICAgICByZXR1cm4gMTsKKyAg ICB9CisKKyAgICAvKiBVc2VyLWRhdGEgdW5yZWdpc3RlcmVkICovCisgICAgZGVzYyA9IGZmX2Ni c19zZWlfZmluZF90eXBlKGN0eCwgU0VJX1RZUEVfVVNFUl9EQVRBX1VOUkVHSVNURVJFRCk7Cisg ICAgaWYgKCFkZXNjKSB7CisgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsCisgICAg ICAgICAgICAgICAiZmluZF90eXBlOiBleHBlY3RlZCBkZXNjcmlwdG9yIGZvciB1c2VyX2RhdGFf dW5yZWdpc3RlcmVkXG4iKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgLyogTWFz dGVyaW5nIGRpc3BsYXkgY29sb3VyIHZvbHVtZSAqLworICAgIGRlc2MgPSBmZl9jYnNfc2VpX2Zp bmRfdHlwZShjdHgsIFNFSV9UWVBFX01BU1RFUklOR19ESVNQTEFZX0NPTE9VUl9WT0xVTUUpOwor ICAgIGlmICghZGVzYykgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAg ICAgICAgICAgICAgImZpbmRfdHlwZTogZXhwZWN0ZWQgZGVzY3JpcHRvciBmb3IgbWFzdGVyaW5n X2Rpc3BsYXlfY29sb3VyX3ZvbHVtZVxuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor ICAgIC8qIENvbnRlbnQgbGlnaHQgbGV2ZWwgKi8KKyAgICBkZXNjID0gZmZfY2JzX3NlaV9maW5k X3R5cGUoY3R4LCBTRUlfVFlQRV9DT05URU5UX0xJR0hUX0xFVkVMX0lORk8pOworICAgIGlmICgh ZGVzYykgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAg ICAgImZpbmRfdHlwZTogZXhwZWN0ZWQgZGVzY3JpcHRvciBmb3IgY29udGVudF9saWdodF9sZXZl bFxuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIC8qIFVua25vd24gdHlwZSAt IHNob3VsZCByZXR1cm4gTlVMTCAqLworICAgIGRlc2MgPSBmZl9jYnNfc2VpX2ZpbmRfdHlwZShj dHgsIDB4N2ZmZik7CisgICAgaWYgKGRlc2MpIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xP R19FUlJPUiwKKyAgICAgICAgICAgICAgICJmaW5kX3R5cGU6IGdvdCB1bmV4cGVjdGVkIGRlc2Ny aXB0b3IgZm9yIHVua25vd24gdHlwZVxuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor ICAgIHJldHVybiAwOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIFRlc3QgZmZfY2JzX3NlaV9s aXN0X2FkZCBhbmQgZmZfY2JzX3NlaV9mcmVlX21lc3NhZ2VfbGlzdCAgICAgICAgICAgKi8KKy8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAqLworc3RhdGljIGludCB0ZXN0X2xpc3RfYWRkX2FuZF9mcmVlKHZvaWQpCit7 CisgICAgU0VJUmF3TWVzc2FnZUxpc3QgbGlzdCA9IHsgMCB9OworICAgIGludCByZXQgPSAwOwor CisgICAgLyogQWRkIHNldmVyYWwgbWVzc2FnZXMgYW5kIHZlcmlmeSBjb3VudGVyIGdyb3dzICov CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyBpKyspIHsKKyAgICAgICAgcmV0ID0gZmZfY2Jz X3NlaV9saXN0X2FkZCgmbGlzdCk7CisgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAg ICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICJsaXN0X2Fk ZDogaXRlcmF0aW9uICVkIGZhaWxlZFxuIiwgaSk7CisgICAgICAgICAgICBnb3RvIGRvbmU7Cisg ICAgICAgIH0KKyAgICAgICAgaWYgKGxpc3QubmJfbWVzc2FnZXMgIT0gaSArIDEpIHsKKyAgICAg ICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgImxp c3RfYWRkOiBleHBlY3RlZCAlZCBtZXNzYWdlcywgZ290ICVkXG4iLAorICAgICAgICAgICAgICAg ICAgIGkgKyAxLCBsaXN0Lm5iX21lc3NhZ2VzKTsKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAg ICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBDYXBhY2l0eSBt dXN0IGJlID49IG5iX21lc3NhZ2VzICovCisgICAgaWYgKGxpc3QubmJfbWVzc2FnZXNfYWxsb2Nh dGVkIDwgbGlzdC5uYl9tZXNzYWdlcykgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VS Uk9SLAorICAgICAgICAgICAgICAgImxpc3RfYWRkOiBuYl9tZXNzYWdlc19hbGxvY2F0ZWQgJWQg PCBuYl9tZXNzYWdlcyAlZFxuIiwKKyAgICAgICAgICAgICAgIGxpc3QubmJfbWVzc2FnZXNfYWxs b2NhdGVkLCBsaXN0Lm5iX21lc3NhZ2VzKTsKKyAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgZ290 byBkb25lOworICAgIH0KKworZG9uZToKKyAgICBmZl9jYnNfc2VpX2ZyZWVfbWVzc2FnZV9saXN0 KCZsaXN0KTsKKyAgICBpZiAobGlzdC5tZXNzYWdlcykgeworICAgICAgICBhdl9sb2coTlVMTCwg QVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImZyZWVfbWVzc2FnZV9saXN0OiBtZXNzYWdl cyBwb2ludGVyIG5vdCBOVUxMZWRcbiIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAg cmV0dXJuIHJldDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBUZXN0IGZmX2Nic19zZWlfYWxs b2NfbWVzc2FnZV9wYXlsb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gKi8KK3N0YXRpYyBpbnQgdGVzdF9hbGxvY19tZXNzYWdlX3BheWxvYWQoQ29kZWRC aXRzdHJlYW1Db250ZXh0ICpjdHgpCit7CisgICAgY29uc3QgU0VJTWVzc2FnZVR5cGVEZXNjcmlw dG9yICpkZXNjOworICAgIFNFSVJhd01lc3NhZ2UgbXNnID0geyAwIH07CisgICAgaW50IHJldDsK KworICAgIGRlc2MgPSBmZl9jYnNfc2VpX2ZpbmRfdHlwZShjdHgsIFNFSV9UWVBFX0NPTlRFTlRf TElHSFRfTEVWRUxfSU5GTyk7CisgICAgaWYgKCFkZXNjKSB7CisgICAgICAgIGF2X2xvZyhOVUxM LCBBVl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAiYWxsb2NfcGF5bG9hZDogZGVzY3JpcHRv ciBub3QgZm91bmRcbiIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICByZXQgPSBm Zl9jYnNfc2VpX2FsbG9jX21lc3NhZ2VfcGF5bG9hZCgmbXNnLCBkZXNjKTsKKyAgICBpZiAocmV0 IDwgMCkgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAg ICAgImFsbG9jX3BheWxvYWQ6IGFsbG9jYXRpb24gZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJu IDE7CisgICAgfQorICAgIGlmICghbXNnLnBheWxvYWQgfHwgIW1zZy5wYXlsb2FkX3JlZikgewor ICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImFsbG9j X3BheWxvYWQ6IHBheWxvYWQgb3IgcGF5bG9hZF9yZWYgaXMgTlVMTFxuIik7CisgICAgICAgIGF2 X3JlZnN0cnVjdF91bnJlZigmbXNnLnBheWxvYWRfcmVmKTsKKyAgICAgICAgcmV0dXJuIDE7Cisg ICAgfQorICAgIGlmIChtc2cucGF5bG9hZF90eXBlICE9IFNFSV9UWVBFX0NPTlRFTlRfTElHSFRf TEVWRUxfSU5GTykgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAg ICAgICAgICAgImFsbG9jX3BheWxvYWQ6IHdyb25nIHBheWxvYWRfdHlwZSAldVxuIiwgbXNnLnBh eWxvYWRfdHlwZSk7CisgICAgICAgIGF2X3JlZnN0cnVjdF91bnJlZigmbXNnLnBheWxvYWRfcmVm KTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgYXZfcmVmc3RydWN0X3VucmVmKCZt c2cucGF5bG9hZF9yZWYpOworCisgICAgLyogVGVzdCB3aXRoIHVzZXJfZGF0YV9yZWdpc3RlcmVk IChoYXMgYSBzcGVjaWFsIGZyZWUgZnVuY3Rpb24pICovCisgICAgZGVzYyA9IGZmX2Nic19zZWlf ZmluZF90eXBlKGN0eCwgU0VJX1RZUEVfVVNFUl9EQVRBX1JFR0lTVEVSRURfSVRVX1RfVDM1KTsK KyAgICBpZiAoIWRlc2MpCisgICAgICAgIHJldHVybiAxOworICAgIG1lbXNldCgmbXNnLCAwLCBz aXplb2YobXNnKSk7CisgICAgcmV0ID0gZmZfY2JzX3NlaV9hbGxvY19tZXNzYWdlX3BheWxvYWQo Jm1zZywgZGVzYyk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFW X0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICJhbGxvY19wYXlsb2FkOiB1c2VyX2RhdGFfcmVn aXN0ZXJlZCBhbGxvY2F0aW9uIGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0K KyAgICBhdl9yZWZzdHJ1Y3RfdW5yZWYoJm1zZy5wYXlsb2FkX3JlZik7CisKKyAgICAvKiBUZXN0 IHdpdGggdXNlcl9kYXRhX3VucmVnaXN0ZXJlZCAoaGFzIGFub3RoZXIgc3BlY2lhbCBmcmVlIGZ1 bmN0aW9uKSAqLworICAgIGRlc2MgPSBmZl9jYnNfc2VpX2ZpbmRfdHlwZShjdHgsIFNFSV9UWVBF X1VTRVJfREFUQV9VTlJFR0lTVEVSRUQpOworICAgIGlmICghZGVzYykKKyAgICAgICAgcmV0dXJu IDE7CisgICAgbWVtc2V0KCZtc2csIDAsIHNpemVvZihtc2cpKTsKKyAgICByZXQgPSBmZl9jYnNf c2VpX2FsbG9jX21lc3NhZ2VfcGF5bG9hZCgmbXNnLCBkZXNjKTsKKyAgICBpZiAocmV0IDwgMCkg eworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImFs bG9jX3BheWxvYWQ6IHVzZXJfZGF0YV91bnJlZ2lzdGVyZWQgYWxsb2NhdGlvbiBmYWlsZWRcbiIp OworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgYXZfcmVmc3RydWN0X3VucmVmKCZtc2cu cGF5bG9hZF9yZWYpOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyog VGVzdCBmZl9jYnNfc2VpX2FkZF9tZXNzYWdlIC8gZmluZF9tZXNzYWdlIC8gZGVsZXRlX21lc3Nh Z2VfdHlwZSAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KK3N0YXRpYyBpbnQgdGVzdF9hZGRfZmluZF9k ZWxldGUoQ29kZWRCaXRzdHJlYW1Db250ZXh0ICpjdHgpCit7CisgICAgQ29kZWRCaXRzdHJlYW1G cmFnbWVudCBhdSA9IHsgMCB9OworICAgIFNFSVJhd01lc3NhZ2UgKml0ZXIgPSBOVUxMOworICAg IFNFSVJhd0NvbnRlbnRMaWdodExldmVsSW5mbyAqY2xsOworICAgIGNvbnN0IFNFSU1lc3NhZ2VU eXBlRGVzY3JpcHRvciAqZGVzYzsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGRlc2MgPSBmZl9j YnNfc2VpX2ZpbmRfdHlwZShjdHgsIFNFSV9UWVBFX0NPTlRFTlRfTElHSFRfTEVWRUxfSU5GTyk7 CisgICAgaWYgKCFkZXNjKSB7CisgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsICJh ZGRfZmluZF9kZWxldGU6IGRlc2NyaXB0b3Igbm90IGZvdW5kXG4iKTsKKyAgICAgICAgcmV0dXJu IDE7CisgICAgfQorCisgICAgLyogQWRkIGZpcnN0IG1lc3NhZ2UgKi8KKyAgICB7CisgICAgICAg IFNFSVJhd01lc3NhZ2UgbXNnID0geyAwIH07CisgICAgICAgIENIRUNLX1JFVCgiYWxsb2NfcGF5 bG9hZCIsIGZmX2Nic19zZWlfYWxsb2NfbWVzc2FnZV9wYXlsb2FkKCZtc2csIGRlc2MpKTsKKwor ICAgICAgICBjbGwgPSBtc2cucGF5bG9hZDsKKyAgICAgICAgY2xsLT5tYXhfY29udGVudF9saWdo dF9sZXZlbCAgID0gMTAwMDsKKyAgICAgICAgY2xsLT5tYXhfcGljX2F2ZXJhZ2VfbGlnaHRfbGV2 ZWwgPSA0MDA7CisKKyAgICAgICAgcmV0ID0gZmZfY2JzX3NlaV9hZGRfbWVzc2FnZShjdHgsICZh dSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUlfVFlQRV9DT05U RU5UX0xJR0hUX0xFVkVMX0lORk8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbXNnLnBheWxvYWQsIG1zZy5wYXlsb2FkX3JlZik7CisgICAgICAgIGF2X3JlZnN0cnVjdF91 bnJlZigmbXNnLnBheWxvYWRfcmVmKTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAg ICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgImFkZF9m aW5kX2RlbGV0ZTogZmlyc3QgYWRkX21lc3NhZ2UgZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIHJl dCA9IDE7CisgICAgICAgICAgICBnb3RvIGVuZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8q IEFkZCBzZWNvbmQgbWVzc2FnZSBvZiB0aGUgc2FtZSB0eXBlICovCisgICAgeworICAgICAgICBT RUlSYXdNZXNzYWdlIG1zZyA9IHsgMCB9OworICAgICAgICBDSEVDS19SRVQoImFsbG9jX3BheWxv YWQgMiIsIGZmX2Nic19zZWlfYWxsb2NfbWVzc2FnZV9wYXlsb2FkKCZtc2csIGRlc2MpKTsKKwor ICAgICAgICBjbGwgPSBtc2cucGF5bG9hZDsKKyAgICAgICAgY2xsLT5tYXhfY29udGVudF9saWdo dF9sZXZlbCAgID0gMjAwMDsKKyAgICAgICAgY2xsLT5tYXhfcGljX2F2ZXJhZ2VfbGlnaHRfbGV2 ZWwgPSA2MDA7CisKKyAgICAgICAgcmV0ID0gZmZfY2JzX3NlaV9hZGRfbWVzc2FnZShjdHgsICZh dSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUlfVFlQRV9DT05U RU5UX0xJR0hUX0xFVkVMX0lORk8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbXNnLnBheWxvYWQsIG1zZy5wYXlsb2FkX3JlZik7CisgICAgICAgIGF2X3JlZnN0cnVjdF91 bnJlZigmbXNnLnBheWxvYWRfcmVmKTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAg ICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgImFkZF9m aW5kX2RlbGV0ZTogc2Vjb25kIGFkZF9tZXNzYWdlIGZhaWxlZFxuIik7CisgICAgICAgICAgICBy ZXQgPSAxOworICAgICAgICAgICAgZ290byBlbmQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAv KiBGaW5kIGZpcnN0IG1lc3NhZ2UgKi8KKyAgICBpdGVyID0gTlVMTDsKKyAgICByZXQgPSBmZl9j YnNfc2VpX2ZpbmRfbWVzc2FnZShjdHgsICZhdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTRUlfVFlQRV9DT05URU5UX0xJR0hUX0xFVkVMX0lORk8sICZpdGVyKTsKKyAgICBp ZiAocmV0IDwgMCB8fCAhaXRlcikgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9S LAorICAgICAgICAgICAgICAgImFkZF9maW5kX2RlbGV0ZTogZmlyc3QgZmluZF9tZXNzYWdlIGZh aWxlZFxuIik7CisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKyAg ICBjbGwgPSBpdGVyLT5wYXlsb2FkOworICAgIGlmIChjbGwtPm1heF9jb250ZW50X2xpZ2h0X2xl dmVsICE9IDEwMDApIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAg ICAgICAgICAgICJhZGRfZmluZF9kZWxldGU6IHdyb25nIENMTCB2YWx1ZSAldSAoZXhwZWN0ZWQg MTAwMClcbiIsCisgICAgICAgICAgICAgICBjbGwtPm1heF9jb250ZW50X2xpZ2h0X2xldmVsKTsK KyAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgZ290byBlbmQ7CisgICAgfQorCisgICAgLyogRmlu ZCBzZWNvbmQgbWVzc2FnZSB1c2luZyB0aGUgaXRlcmF0b3IgKi8KKyAgICByZXQgPSBmZl9jYnNf c2VpX2ZpbmRfbWVzc2FnZShjdHgsICZhdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTRUlfVFlQRV9DT05URU5UX0xJR0hUX0xFVkVMX0lORk8sICZpdGVyKTsKKyAgICBpZiAo cmV0IDwgMCB8fCAhaXRlcikgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAor ICAgICAgICAgICAgICAgImFkZF9maW5kX2RlbGV0ZTogc2Vjb25kIGZpbmRfbWVzc2FnZSBmYWls ZWRcbiIpOworICAgICAgICByZXQgPSAxOworICAgICAgICBnb3RvIGVuZDsKKyAgICB9CisgICAg Y2xsID0gaXRlci0+cGF5bG9hZDsKKyAgICBpZiAoY2xsLT5tYXhfY29udGVudF9saWdodF9sZXZl bCAhPSAyMDAwKSB7CisgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsCisgICAgICAg ICAgICAgICAiYWRkX2ZpbmRfZGVsZXRlOiB3cm9uZyBDTEwgdmFsdWUgJXUgKGV4cGVjdGVkIDIw MDApXG4iLAorICAgICAgICAgICAgICAgY2xsLT5tYXhfY29udGVudF9saWdodF9sZXZlbCk7Cisg ICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKworICAgIC8qIE5vIG1v cmUgbWVzc2FnZXMgKi8KKyAgICByZXQgPSBmZl9jYnNfc2VpX2ZpbmRfbWVzc2FnZShjdHgsICZh dSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUlfVFlQRV9DT05URU5UX0xJ R0hUX0xFVkVMX0lORk8sICZpdGVyKTsKKyAgICBpZiAocmV0ICE9IEFWRVJST1IoRU5PRU5UKSkg eworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImFk ZF9maW5kX2RlbGV0ZTogZXhwZWN0ZWQgRU5PRU5UIGZvciBleGhhdXN0ZWQgaXRlcmF0b3JcbiIp OworICAgICAgICByZXQgPSAxOworICAgICAgICBnb3RvIGVuZDsKKyAgICB9CisKKyAgICAvKiBE ZWxldGUgYWxsIG1lc3NhZ2VzIG9mIHRoaXMgdHlwZSAqLworICAgIGZmX2Nic19zZWlfZGVsZXRl X21lc3NhZ2VfdHlwZShjdHgsICZhdSwgU0VJX1RZUEVfQ09OVEVOVF9MSUdIVF9MRVZFTF9JTkZP KTsKKworICAgIC8qIFZlcmlmeSB0aGV5IGFyZSBhbGwgZ29uZSAqLworICAgIGl0ZXIgPSBOVUxM OworICAgIHJldCA9IGZmX2Nic19zZWlfZmluZF9tZXNzYWdlKGN0eCwgJmF1LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNFSV9UWVBFX0NPTlRFTlRfTElHSFRfTEVWRUxfSU5G TywgJml0ZXIpOworICAgIGlmIChyZXQgIT0gQVZFUlJPUihFTk9FTlQpKSB7CisgICAgICAgIGF2 X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAiYWRkX2ZpbmRfZGVsZXRl OiBtZXNzYWdlcyByZW1haW4gYWZ0ZXIgZGVsZXRlX21lc3NhZ2VfdHlwZVxuIik7CisgICAgICAg IHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKworICAgIHJldCA9IDA7CisKK2Vu ZDoKKyAgICBmZl9jYnNfZnJhZ21lbnRfZnJlZSgmYXUpOworICAgIHJldHVybiByZXQ7Cit9CisK Ky8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSAqLworLyogVGVzdCBhZGRfbWVzc2FnZSB3aXRob3V0IGEgcmVmY291bnQg KHBheWxvYWRfcmVmID09IE5VTEwpICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCitzdGF0 aWMgaW50IHRlc3RfYWRkX21lc3NhZ2Vfbm9fcmVmKENvZGVkQml0c3RyZWFtQ29udGV4dCAqY3R4 KQoreworICAgIENvZGVkQml0c3RyZWFtRnJhZ21lbnQgYXUgPSB7IDAgfTsKKyAgICBTRUlSYXdD b250ZW50TGlnaHRMZXZlbEluZm8gY2xsID0geworICAgICAgICAubWF4X2NvbnRlbnRfbGlnaHRf bGV2ZWwgICAgID0gNTAwLAorICAgICAgICAubWF4X3BpY19hdmVyYWdlX2xpZ2h0X2xldmVsID0g MjAwLAorICAgIH07CisgICAgU0VJUmF3TWVzc2FnZSAqaXRlciA9IE5VTEw7CisgICAgaW50IHJl dCA9IDA7CisKKyAgICByZXQgPSBmZl9jYnNfc2VpX2FkZF9tZXNzYWdlKGN0eCwgJmF1LCAxLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VJX1RZUEVfQ09OVEVOVF9MSUdIVF9M RVZFTF9JTkZPLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNsbCwgTlVMTCk7 CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwK KyAgICAgICAgICAgICAgICJhZGRfbm9fcmVmOiBhZGRfbWVzc2FnZSBmYWlsZWQ6ICVkXG4iLCBy ZXQpOworICAgICAgICByZXQgPSAxOworICAgICAgICBnb3RvIGVuZDsKKyAgICB9CisKKyAgICBy ZXQgPSBmZl9jYnNfc2VpX2ZpbmRfbWVzc2FnZShjdHgsICZhdSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTRUlfVFlQRV9DT05URU5UX0xJR0hUX0xFVkVMX0lORk8sICZpdGVy KTsKKyAgICBpZiAocmV0ICE9IDAgfHwgIWl0ZXIpIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFW X0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICJhZGRfbm9fcmVmOiBmaW5kX21lc3NhZ2UgZmFp bGVkXG4iKTsKKyAgICAgICAgcmV0ID0gMTsKKyAgICAgICAgZ290byBlbmQ7CisgICAgfQorCisg ICAgcmV0ID0gMDsKK2VuZDoKKyAgICBmZl9jYnNfZnJhZ21lbnRfZnJlZSgmYXUpOworICAgIHJl dHVybiByZXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogVGVzdCB0aGF0IGZpbmRfbWVzc2Fn ZSBjb3JyZWN0bHkgaXRlcmF0ZXMgb3ZlciBtdWx0aXBsZSBTRUkgdW5pdHMgICovCisvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gKi8KK3N0YXRpYyBpbnQgdGVzdF9maW5kX21lc3NhZ2VfYWNyb3NzX3VuaXRzKENvZGVk Qml0c3RyZWFtQ29udGV4dCAqY3R4KQoreworICAgIENvZGVkQml0c3RyZWFtRnJhZ21lbnQgYXUg PSB7IDAgfTsKKyAgICBTRUlSYXdNYXN0ZXJpbmdEaXNwbGF5Q29sb3VyVm9sdW1lIG1kY3YgPSB7 CisgICAgICAgIC5kaXNwbGF5X3ByaW1hcmllc194ICAgICAgICAgPSB7IDEzMjUwLCA3NTAwLCAz NDAwMCB9LAorICAgICAgICAuZGlzcGxheV9wcmltYXJpZXNfeSAgICAgICAgID0geyAzNDUwMCwg MzAwMCwgMTYwMDAgfSwKKyAgICAgICAgLndoaXRlX3BvaW50X3ggICAgICAgICAgICAgICA9IDE1 NjM1LAorICAgICAgICAud2hpdGVfcG9pbnRfeSAgICAgICAgICAgICAgID0gMTY0NTAsCisgICAg ICAgIC5tYXhfZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlID0gMTAwMDAwMDAsCisgICAgICAg IC5taW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlID0gNTAsCisgICAgfTsKKyAgICBTRUlS YXdDb250ZW50TGlnaHRMZXZlbEluZm8gY2xsID0geworICAgICAgICAubWF4X2NvbnRlbnRfbGln aHRfbGV2ZWwgICAgID0gMTAwMCwKKyAgICAgICAgLm1heF9waWNfYXZlcmFnZV9saWdodF9sZXZl bCA9IDQwMCwKKyAgICB9OworICAgIFNFSVJhd01lc3NhZ2UgKml0ZXIgPSBOVUxMOworICAgIGlu dCByZXQgPSAwOworCisgICAgLyogQWRkIHR3byBkaWZmZXJlbnQgU0VJIHR5cGVzICovCisgICAg cmV0ID0gZmZfY2JzX3NlaV9hZGRfbWVzc2FnZShjdHgsICZhdSwgMSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNFSV9UWVBFX01BU1RFUklOR19ESVNQTEFZX0NPTE9VUl9WT0xV TUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWRjdiwgTlVMTCk7CisgICAg aWYgKHJldCA8IDApIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAg ICAgICAgICAgICJtdWx0aV91bml0OiBhZGQgbWRjdiBmYWlsZWRcbiIpOworICAgICAgICByZXQg PSAxOworICAgICAgICBnb3RvIGVuZDsKKyAgICB9CisKKyAgICByZXQgPSBmZl9jYnNfc2VpX2Fk ZF9tZXNzYWdlKGN0eCwgJmF1LCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U0VJX1RZUEVfQ09OVEVOVF9MSUdIVF9MRVZFTF9JTkZPLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmNsbCwgTlVMTCk7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgYXZf bG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICJtdWx0aV91bml0OiBhZGQg Y2xsIGZhaWxlZFxuIik7CisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAg IH0KKworICAgIC8qIEZpbmQgbWFzdGVyaW5nIGRpc3BsYXkgKi8KKyAgICByZXQgPSBmZl9jYnNf c2VpX2ZpbmRfbWVzc2FnZShjdHgsICZhdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTRUlfVFlQRV9NQVNURVJJTkdfRElTUExBWV9DT0xPVVJfVk9MVU1FLCAmaXRlcik7Cisg ICAgaWYgKHJldCAhPSAwIHx8ICFpdGVyKSB7CisgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0df RVJST1IsCisgICAgICAgICAgICAgICAibXVsdGlfdW5pdDogZmluZCBtZGN2IGZhaWxlZFxuIik7 CisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKworICAgIC8qIEZp bmQgY29udGVudCBsaWdodCBsZXZlbCAqLworICAgIGl0ZXIgPSBOVUxMOworICAgIHJldCA9IGZm X2Nic19zZWlfZmluZF9tZXNzYWdlKGN0eCwgJmF1LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNFSV9UWVBFX0NPTlRFTlRfTElHSFRfTEVWRUxfSU5GTywgJml0ZXIpOworICAg IGlmIChyZXQgIT0gMCB8fCAhaXRlcikgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VS Uk9SLAorICAgICAgICAgICAgICAgIm11bHRpX3VuaXQ6IGZpbmQgY2xsIGZhaWxlZFxuIik7Cisg ICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKworICAgIC8qIFRyeSBh IHR5cGUgbm90IHByZXNlbnQgKi8KKyAgICBpdGVyID0gTlVMTDsKKyAgICByZXQgPSBmZl9jYnNf c2VpX2ZpbmRfbWVzc2FnZShjdHgsICZhdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTRUlfVFlQRV9GSUxMRVJfUEFZTE9BRCwgJml0ZXIpOworICAgIGlmIChyZXQgIT0gQVZF UlJPUihFTk9FTlQpKSB7CisgICAgICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsCisgICAg ICAgICAgICAgICAibXVsdGlfdW5pdDogZXhwZWN0ZWQgRU5PRU5UIGZvciBhYnNlbnQgdHlwZVxu Iik7CisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKworICAgIC8q IERlbGV0ZSBvbmUgdHlwZSBhbmQgZW5zdXJlIHRoZSBvdGhlciByZW1haW5zICovCisgICAgZmZf Y2JzX3NlaV9kZWxldGVfbWVzc2FnZV90eXBlKGN0eCwgJmF1LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTRUlfVFlQRV9NQVNURVJJTkdfRElTUExBWV9DT0xPVVJfVk9MVU1F KTsKKyAgICBpdGVyID0gTlVMTDsKKyAgICByZXQgPSBmZl9jYnNfc2VpX2ZpbmRfbWVzc2FnZShj dHgsICZhdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUlfVFlQRV9DT05U RU5UX0xJR0hUX0xFVkVMX0lORk8sICZpdGVyKTsKKyAgICBpZiAocmV0ICE9IDAgfHwgIWl0ZXIp IHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAgICAgICAgICAgICJt dWx0aV91bml0OiBjbGwgZ29uZSBhZnRlciBkZWxldGluZyB1bnJlbGF0ZWQgdHlwZVxuIik7Cisg ICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKworICAgIHJldCA9IDA7 CitlbmQ6CisgICAgZmZfY2JzX2ZyYWdtZW50X2ZyZWUoJmF1KTsKKyAgICByZXR1cm4gcmV0Owor fQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIFRlc3QgZmluZF90eXBlIGZvciBILjI2NC1zcGVjaWZp YyB0eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor c3RhdGljIGludCB0ZXN0X2ZpbmRfdHlwZV9oMjY0KENvZGVkQml0c3RyZWFtQ29udGV4dCAqY3R4 KQoreworICAgIGNvbnN0IFNFSU1lc3NhZ2VUeXBlRGVzY3JpcHRvciAqZGVzYzsKKworICAgIC8q IEJ1ZmZlcmluZyBwZXJpb2QgaXMgSC4yNjQtc3BlY2lmaWMgKi8KKyAgICBkZXNjID0gZmZfY2Jz X3NlaV9maW5kX3R5cGUoY3R4LCBTRUlfVFlQRV9CVUZGRVJJTkdfUEVSSU9EKTsKKyAgICBpZiAo IWRlc2MpIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAgICAgICAg ICAgICJmaW5kX3R5cGVfaDI2NDogZXhwZWN0ZWQgZGVzY3JpcHRvciBmb3IgYnVmZmVyaW5nX3Bl cmlvZFxuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIC8qIERlY29kZWQgcGlj dHVyZSBoYXNoIGlzIGEgY29tbW9uIHN1ZmZpeCB0eXBlICovCisgICAgZGVzYyA9IGZmX2Nic19z ZWlfZmluZF90eXBlKGN0eCwgU0VJX1RZUEVfREVDT0RFRF9QSUNUVVJFX0hBU0gpOworICAgIGlm ICghZGVzYykgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAg ICAgICAgImZpbmRfdHlwZV9oMjY0OiBleHBlY3RlZCBkZXNjcmlwdG9yIGZvciBkZWNvZGVkX3Bp Y3R1cmVfaGFzaFxuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHJldHVybiAw OworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIFRlc3QgYWRkL2ZpbmQvZGVsZXRlIHVzaW5nIGEg Z2l2ZW4gQ0JTIGNvbnRleHQgKGNvZGVjLWFnbm9zdGljKS4gICAqLworLyogVXNlZCBmb3IgSC4y NjUgYW5kIEguMjY2IHRvIGNvdmVyIHRob3NlIGJyYW5jaGVzIGluICAgICAgICAgICAgICAgICov CisvKiBjYnNfc2VpX2dldF91bml0IC8gY2JzX3NlaV9nZXRfbWVzc2FnZV9saXN0LiAgICAgICAg ICAgICAgICAgICAgICAgKi8KKy8qIHByZWZpeD0xIGZvciBILjI2NC9ILjI2NTsgSC4yNjYgdXNl cyBwcmVmaXggU0VJIGFzIHdlbGwuICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KK3N0YXRp YyBpbnQgdGVzdF9hZGRfZmluZF9kZWxldGVfY29kZWMoQ29kZWRCaXRzdHJlYW1Db250ZXh0ICpj dHgsIGludCBwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKmNvZGVjX25hbWUpCit7CisgICAgQ29kZWRCaXRzdHJlYW1GcmFnbWVudCBhdSA9 IHsgMCB9OworICAgIFNFSVJhd0NvbnRlbnRMaWdodExldmVsSW5mbyBjbGwgPSB7CisgICAgICAg IC5tYXhfY29udGVudF9saWdodF9sZXZlbCAgICAgPSAxMDAwLAorICAgICAgICAubWF4X3BpY19h dmVyYWdlX2xpZ2h0X2xldmVsID0gNDAwLAorICAgIH07CisgICAgU0VJUmF3TWVzc2FnZSAqaXRl ciA9IE5VTEw7CisgICAgaW50IHJldCA9IDA7CisKKyAgICAvKiBBZGQgYSBtZXNzYWdlICovCisg ICAgcmV0ID0gZmZfY2JzX3NlaV9hZGRfbWVzc2FnZShjdHgsICZhdSwgcHJlZml4LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VJX1RZUEVfQ09OVEVOVF9MSUdIVF9MRVZFTF9J TkZPLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNsbCwgTlVMTCk7CisgICAg aWYgKHJldCA8IDApIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAg ICAgICAgICAgICJhZGRfZmluZF9kZWxldGVfJXM6IGFkZF9tZXNzYWdlIGZhaWxlZDogJWRcbiIs IGNvZGVjX25hbWUsIHJldCk7CisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOwor ICAgIH0KKworICAgIC8qIEZpbmQgaXQgKi8KKyAgICByZXQgPSBmZl9jYnNfc2VpX2ZpbmRfbWVz c2FnZShjdHgsICZhdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUlfVFlQ RV9DT05URU5UX0xJR0hUX0xFVkVMX0lORk8sICZpdGVyKTsKKyAgICBpZiAocmV0IDwgMCB8fCAh aXRlcikgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAg ICAgImFkZF9maW5kX2RlbGV0ZV8lczogZmluZF9tZXNzYWdlIGZhaWxlZFxuIiwgY29kZWNfbmFt ZSk7CisgICAgICAgIHJldCA9IDE7CisgICAgICAgIGdvdG8gZW5kOworICAgIH0KKworICAgIC8q IERlbGV0ZSBpdCAqLworICAgIGZmX2Nic19zZWlfZGVsZXRlX21lc3NhZ2VfdHlwZShjdHgsICZh dSwgU0VJX1RZUEVfQ09OVEVOVF9MSUdIVF9MRVZFTF9JTkZPKTsKKworICAgIC8qIFZlcmlmeSBn b25lICovCisgICAgaXRlciA9IE5VTEw7CisgICAgcmV0ID0gZmZfY2JzX3NlaV9maW5kX21lc3Nh Z2UoY3R4LCAmYXUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VJX1RZUEVf Q09OVEVOVF9MSUdIVF9MRVZFTF9JTkZPLCAmaXRlcik7CisgICAgaWYgKHJldCAhPSBBVkVSUk9S KEVOT0VOVCkpIHsKKyAgICAgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19FUlJPUiwKKyAgICAgICAg ICAgICAgICJhZGRfZmluZF9kZWxldGVfJXM6IGV4cGVjdGVkIEVOT0VOVCBhZnRlciBkZWxldGVc biIsIGNvZGVjX25hbWUpOworICAgICAgICByZXQgPSAxOworICAgICAgICBnb3RvIGVuZDsKKyAg ICB9CisKKyAgICByZXQgPSAwOworZW5kOgorICAgIGZmX2Nic19mcmFnbWVudF9mcmVlKCZhdSk7 CisgICAgcmV0dXJuIHJldDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBUZXN0IEguMjY1IHN1 ZmZpeCBTRUkgdW5pdCAocHJlZml4PTAgcGF0aCBpbiBjYnNfc2VpX2dldF91bml0KSAgICAqLwor LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCitzdGF0aWMgaW50IHRlc3RfaDI2NV9zdWZmaXhfc2VpKENvZGVkQml0 c3RyZWFtQ29udGV4dCAqY3R4KQoreworICAgIENvZGVkQml0c3RyZWFtRnJhZ21lbnQgYXUgPSB7 IDAgfTsKKyAgICBTRUlSYXdDb250ZW50TGlnaHRMZXZlbEluZm8gY2xsID0geworICAgICAgICAu bWF4X2NvbnRlbnRfbGlnaHRfbGV2ZWwgICAgID0gNTAwLAorICAgICAgICAubWF4X3BpY19hdmVy YWdlX2xpZ2h0X2xldmVsID0gMjAwLAorICAgIH07CisgICAgU0VJUmF3TWVzc2FnZSAqaXRlciA9 IE5VTEw7CisgICAgaW50IHJldCA9IDA7CisKKyAgICAvKiBwcmVmaXg9MCDihpIgc3VmZml4IFNF SSAoSEVWQ19OQUxfU0VJX1NVRkZJWCBwYXRoKSAqLworICAgIHJldCA9IGZmX2Nic19zZWlfYWRk X21lc3NhZ2UoY3R4LCAmYXUsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT RUlfVFlQRV9DT05URU5UX0xJR0hUX0xFVkVMX0lORk8sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmY2xsLCBOVUxMKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICBhdl9s b2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImgyNjVfc3VmZml4OiBhZGRf bWVzc2FnZSBmYWlsZWQ6ICVkXG4iLCByZXQpOworICAgICAgICByZXQgPSAxOworICAgICAgICBn b3RvIGVuZDsKKyAgICB9CisKKyAgICByZXQgPSBmZl9jYnNfc2VpX2ZpbmRfbWVzc2FnZShjdHgs ICZhdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUlfVFlQRV9DT05URU5U X0xJR0hUX0xFVkVMX0lORk8sICZpdGVyKTsKKyAgICBpZiAocmV0IDwgMCB8fCAhaXRlcikgewor ICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgImgyNjVf c3VmZml4OiBmaW5kX21lc3NhZ2UgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0ID0gMTsKKyAgICAg ICAgZ290byBlbmQ7CisgICAgfQorCisgICAgcmV0ID0gMDsKK2VuZDoKKyAgICBmZl9jYnNfZnJh Z21lbnRfZnJlZSgmYXUpOworICAgIHJldHVybiByZXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor LyogbWFpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCitpbnQgbWFpbih2b2lkKQoreworICAg IENvZGVkQml0c3RyZWFtQ29udGV4dCAqY3R4MjY0ICA9IE5VTEw7CisgICAgQ29kZWRCaXRzdHJl YW1Db250ZXh0ICpjdHgyNjUgID0gTlVMTDsKKyAgICBDb2RlZEJpdHN0cmVhbUNvbnRleHQgKmN0 eDI2NiAgPSBOVUxMOworICAgIGludCByZXQgPSAwOworICAgIGludCBmYWlsZWQgPSAwOworCisj ZGVmaW5lIFJVTl9URVNUKG5hbWUsIC4uLikgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgaW50IHIgPSBuYW1lKF9fVkFfQVJHU19fKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKHIpIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsICJGQUlMOiAlc1xuIiwgI25hbWUpOyAgICAg ICAgICAgICAgIFwKKyAgICAgICAgZmFpbGVkKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxl ICgwKQorCisgICAgLyogSC4yNjQgY29udGV4dCDigJQgcmVxdWlyZWQgKi8KKyAgICByZXQgPSBm Zl9jYnNfaW5pdCgmY3R4MjY0LCBBVl9DT0RFQ19JRF9IMjY0LCBOVUxMKTsKKyAgICBpZiAocmV0 IDwgMCkgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGlu aXQgSDI2NCBDQlMgY29udGV4dDogJWRcbiIsIHJldCk7CisgICAgICAgIHJldHVybiAxOworICAg IH0KKworICAgIC8qIEguMjY1IGNvbnRleHQg4oCUIG9wdGlvbmFsIChza2lwIGdyYWNlZnVsbHkg aWYgbm90IGNvbXBpbGVkIGluKSAqLworICAgIGlmIChmZl9jYnNfaW5pdCgmY3R4MjY1LCBBVl9D T0RFQ19JRF9IMjY1LCBOVUxMKSA8IDApCisgICAgICAgIGN0eDI2NSA9IE5VTEw7CisKKyAgICAv KiBILjI2NiBjb250ZXh0IOKAlCBvcHRpb25hbCAqLworICAgIGlmIChmZl9jYnNfaW5pdCgmY3R4 MjY2LCBBVl9DT0RFQ19JRF9IMjY2LCBOVUxMKSA8IDApCisgICAgICAgIGN0eDI2NiA9IE5VTEw7 CisKKyAgICAvKiAtLSBILjI2NCB0ZXN0cyAtLSAqLworICAgIFJVTl9URVNUKHRlc3RfZmluZF90 eXBlLCAgICAgICAgICBjdHgyNjQpOworICAgIFJVTl9URVNUKHRlc3RfZmluZF90eXBlX2gyNjQs ICAgICBjdHgyNjQpOworICAgIFJVTl9URVNUKHRlc3RfbGlzdF9hZGRfYW5kX2ZyZWUpOworICAg IFJVTl9URVNUKHRlc3RfYWxsb2NfbWVzc2FnZV9wYXlsb2FkLCBjdHgyNjQpOworICAgIFJVTl9U RVNUKHRlc3RfYWRkX2ZpbmRfZGVsZXRlLCAgICBjdHgyNjQpOworICAgIFJVTl9URVNUKHRlc3Rf YWRkX21lc3NhZ2Vfbm9fcmVmLCBjdHgyNjQpOworICAgIFJVTl9URVNUKHRlc3RfZmluZF9tZXNz YWdlX2Fjcm9zc191bml0cywgY3R4MjY0KTsKKworICAgIC8qIC0tIEguMjY1IHRlc3RzOiBjb3Zl ciBIMjY1IGJyYW5jaGVzIGluIGNic19zZWlfZ2V0X3VuaXQgLworICAgICAgICAgIGNic19zZWlf Z2V0X21lc3NhZ2VfbGlzdCAoc2tpcHBlZCBpZiBILjI2NSBDQlMgbm90IGNvbXBpbGVkIGluKSAt LSAqLworICAgIGlmIChjdHgyNjUpIHsKKyAgICAgICAgUlVOX1RFU1QodGVzdF9hZGRfZmluZF9k ZWxldGVfY29kZWMsIGN0eDI2NSwgMSwgImgyNjVfcHJlZml4Iik7CisgICAgICAgIFJVTl9URVNU KHRlc3RfaDI2NV9zdWZmaXhfc2VpLCBjdHgyNjUpOworICAgIH0KKworICAgIC8qIC0tIEguMjY2 IHRlc3RzOiBjb3ZlciBIMjY2IGJyYW5jaGVzIChza2lwcGVkIGlmIG5vdCBjb21waWxlZCBpbikg LS0gKi8KKyAgICBpZiAoY3R4MjY2KQorICAgICAgICBSVU5fVEVTVCh0ZXN0X2FkZF9maW5kX2Rl bGV0ZV9jb2RlYywgY3R4MjY2LCAxLCAiaDI2Nl9wcmVmaXgiKTsKKworICAgIGZmX2Nic19jbG9z ZSgmY3R4MjY0KTsKKyAgICBmZl9jYnNfY2xvc2UoJmN0eDI2NSk7CisgICAgZmZfY2JzX2Nsb3Nl KCZjdHgyNjYpOworCisgICAgaWYgKGZhaWxlZCkgeworICAgICAgICBhdl9sb2coTlVMTCwgQVZf TE9HX0VSUk9SLCAiJWQgdGVzdChzKSBGQUlMRURcbiIsIGZhaWxlZCk7CisgICAgICAgIHJldHVy biAxOworICAgIH0KKworICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL01h a2VmaWxlIGIvbGliYXZ1dGlsL01ha2VmaWxlCmluZGV4IGM1MjQxODk1ZmYuLjJjMGRmYTRlNGEg MTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9NYWtlZmlsZQorKysgYi9saWJhdnV0aWwvTWFrZWZpbGUK QEAgLTMwMSw2ICszMDEsNyBAQCBURVNUUFJPR1MgPSBhZGxlcjMyICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBzaWRlX2Rh dGFfYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg ICAgICAgICAgICBzb2Z0ZmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB0cmVlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB0aW1lY29kZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg ICAgICAgICB0d29maXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgICAgICAgICB1dGY4ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB1dWlkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1n aXQgYS9saWJhdnV0aWwvdGVzdHMvdGltZWNvZGUuYyBiL2xpYmF2dXRpbC90ZXN0cy90aW1lY29k ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmNlZmE4MTFiZDIKLS0t IC9kZXYvbnVsbAorKysgYi9saWJhdnV0aWwvdGVzdHMvdGltZWNvZGUuYwpAQCAtMCwwICsxLDM4 NSBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KKyAqCisgKiBGRm1wZWcg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisvKioKKyAqIFVu aXQgdGVzdHMgZm9yIGxpYmF2dXRpbC90aW1lY29kZS5jOgorICogICBhdl90aW1lY29kZV9pbml0 LCBhdl90aW1lY29kZV9pbml0X2Zyb21fY29tcG9uZW50cywKKyAqICAgYXZfdGltZWNvZGVfaW5p dF9mcm9tX3N0cmluZywgYXZfdGltZWNvZGVfbWFrZV9zdHJpbmcsCisgKiAgIGF2X3RpbWVjb2Rl X2dldF9zbXB0ZV9mcm9tX2ZyYW1lbnVtLCBhdl90aW1lY29kZV9nZXRfc21wdGUsCisgKiAgIGF2 X3RpbWVjb2RlX21ha2Vfc21wdGVfdGNfc3RyaW5nLCBhdl90aW1lY29kZV9tYWtlX3NtcHRlX3Rj X3N0cmluZzIsCisgKiAgIGF2X3RpbWVjb2RlX21ha2VfbXBlZ190Y19zdHJpbmcsIGF2X3RpbWVj b2RlX2FkanVzdF9udHNjX2ZyYW1lbnVtMiwKKyAqICAgYXZfdGltZWNvZGVfY2hlY2tfZnJhbWVf cmF0ZQorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisj aW5jbHVkZSAibGliYXZ1dGlsL2Vycm9yLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL21hY3Jvcy5o IgorI2luY2x1ZGUgImxpYmF2dXRpbC9yYXRpb25hbC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC90 aW1lY29kZS5oIgorCitzdGF0aWMgaW50IGZhaWxlZDsKKworI2RlZmluZSBBU1NFUlRfRVEoZ290 LCBleHAsIGxhYmVsKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICBpZiAoKGdvdCkgIT0gKGV4cCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTCAlczog Z290ICVkLCBleHBlY3RlZCAlZFxuIiwgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAg ICAgbGFiZWwsIChpbnQpKGdvdCksIChpbnQpKGV4cCkpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICBmYWlsZWQrKzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdo aWxlICgwKQorCisjZGVmaW5lIEFTU0VSVF9TVFIoZ290LCBleHAsIGxhYmVsKSBkbyB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChzdHJjbXAoZ290LCBleHAp KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTCAlczogZ290ICclcycsIGV4cGVjdGVkICclcydc biIsICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgbGFiZWwsIGdvdCwgZXhwKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZmFpbGVk Kys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQorCisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAqLworLyogYXZfdGltZWNvZGVfY2hlY2tfZnJhbWVfcmF0ZSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor c3RhdGljIHZvaWQgdGVzdF9jaGVja19mcmFtZV9yYXRlKHZvaWQpCit7CisgICAgLyogU3RhbmRh cmQgcmF0ZXMgbXVzdCByZXR1cm4gMCAqLworICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeyBBVlJh dGlvbmFsIHJhdGU7IGludCBleHBlY3Q7IH0gY2FzZXNbXSA9IHsKKyAgICAgICAgeyB7MjQsICAg IDF9LCAwIH0sCisgICAgICAgIHsgezI1LCAgICAxfSwgMCB9LAorICAgICAgICB7IHszMCwgICAg MX0sIDAgfSwKKyAgICAgICAgeyB7NDgsICAgIDF9LCAwIH0sCisgICAgICAgIHsgezUwLCAgICAx fSwgMCB9LAorICAgICAgICB7IHs2MCwgICAgMX0sIDAgfSwKKyAgICAgICAgeyB7MTAwLCAgIDF9 LCAwIH0sCisgICAgICAgIHsgezEyMCwgICAxfSwgMCB9LAorICAgICAgICAvKiBOb24tc3RhbmRh cmQg4oaSIHNob3VsZCByZXR1cm4gbm9uLXplcm8gd2FybmluZyAqLworICAgICAgICB7IHsyMzk3 NiwgMTAwMH0sIC0xIH0sCisgICAgICAgIHsgezI5OTcwLCAxMDAwfSwgLTEgfSwKKyAgICAgICAg LyogWmVybyAvIGludmFsaWQgZGVub21pbmF0b3IgKi8KKyAgICAgICAgeyB7MCwgMH0sIC0xIH0s CisgICAgICAgIHsgezMwLCAwfSwgLTEgfSwKKyAgICB9OworICAgIGZvciAoaW50IGkgPSAwOyBp IDwgRkZfQVJSQVlfRUxFTVMoY2FzZXMpOyBpKyspIHsKKyAgICAgICAgaW50IHIgPSBhdl90aW1l Y29kZV9jaGVja19mcmFtZV9yYXRlKGNhc2VzW2ldLnJhdGUpOworICAgICAgICBpZiAoY2FzZXNb aV0uZXhwZWN0ID09IDApIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShyLCAwLCAiY2hlY2tfZnJh bWVfcmF0ZSBzdGFuZGFyZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHIg PT0gMCkgeworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAg ICAgICAgICAgIkZBSUwgY2hlY2tfZnJhbWVfcmF0ZTogbm9uLXN0YW5kYXJkICVkLyVkIHJldHVy bmVkIDBcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlc1tpXS5yYXRlLm51bSwgY2Fz ZXNbaV0ucmF0ZS5kZW4pOworICAgICAgICAgICAgICAgIGZhaWxlZCsrOworICAgICAgICAgICAg fQorICAgICAgICB9CisgICAgfQorfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogYXZfdGlt ZWNvZGVfaW5pdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIHZvaWQgdGVzdF9pbml0 KHZvaWQpCit7CisgICAgQVZUaW1lY29kZSB0YzsKKyAgICBpbnQgcmV0OworCisgICAgLyogTm9y bWFsIDI1IGZwcyAqLworICAgIHJldCA9IGF2X3RpbWVjb2RlX2luaXQoJnRjLCAoQVZSYXRpb25h bCl7MjUsIDF9LCAwLCAwLCBOVUxMKTsKKyAgICBBU1NFUlRfRVEocmV0LCAwLCAiaW5pdCAyNWZw cyIpOworICAgIEFTU0VSVF9FUSh0Yy5mcHMsIDI1LCAiaW5pdCBmcHMiKTsKKyAgICBBU1NFUlRf RVEodGMuc3RhcnQsIDAsICJpbml0IHN0YXJ0Iik7CisgICAgQVNTRVJUX0VRKHRjLnJhdGUubnVt LCAyNSwgImluaXQgcmF0ZS5udW0iKTsKKyAgICBBU1NFUlRfRVEodGMucmF0ZS5kZW4sICAxLCAi aW5pdCByYXRlLmRlbiIpOworCisgICAgLyogMzAgZnBzIHdpdGggRFJPUEZSQU1FIGlzIGludmFs aWQgZm9yIG5vbi1tdWx0aXBsZS1vZi0zMDAwMC8xMDAxIHJhdGVzICovCisgICAgcmV0ID0gYXZf dGltZWNvZGVfaW5pdCgmdGMsIChBVlJhdGlvbmFsKXszMCwgMX0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBBVl9USU1FQ09ERV9GTEFHX0RST1BGUkFNRSwgMCwgTlVMTCk7CisgICAgLyog MzAgZnBzIElTIGEgbXVsdGlwbGUgb2YgMzAg4oaSIGRyb3BmcmFtZSBpcyBhbGxvd2VkICovCisg ICAgQVNTRVJUX0VRKHJldCwgMCwgImluaXQgMzBmcHMgZHJvcGZyYW1lIik7CisKKyAgICAvKiBm cmFtZV9zdGFydCBwcm9wYWdhdGVkICovCisgICAgcmV0ID0gYXZfdGltZWNvZGVfaW5pdCgmdGMs IChBVlJhdGlvbmFsKXsyNCwgMX0sIDAsIDEwMCwgTlVMTCk7CisgICAgQVNTRVJUX0VRKHJldCwg MCwgImluaXQgd2l0aCBzdGFydCIpOworICAgIEFTU0VSVF9FUSh0Yy5zdGFydCwgMTAwLCAiaW5p dCBzdGFydCBwcm9wYWdhdGVkIik7CisKKyAgICAvKiBJbnZhbGlkOiB6ZXJvIHJhdGUgKi8KKyAg ICByZXQgPSBhdl90aW1lY29kZV9pbml0KCZ0YywgKEFWUmF0aW9uYWwpezAsIDF9LCAwLCAwLCBO VUxMKTsKKyAgICBpZiAocmV0ID49IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJGQUlM IGluaXQ6IHplcm8gZnBzIHNob3VsZCBmYWlsLCBnb3QgcmV0PSVkXG4iLCByZXQpOworICAgICAg ICBmYWlsZWQrKzsKKyAgICB9CisKKyAgICAvKiBJbnZhbGlkOiBkcm9wIGZyYW1lIHdpdGggbm9u LW11bHRpcGxlLW9mLTMwIGZwcyAqLworICAgIHJldCA9IGF2X3RpbWVjb2RlX2luaXQoJnRjLCAo QVZSYXRpb25hbCl7MjUsIDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfVElNRUNP REVfRkxBR19EUk9QRlJBTUUsIDAsIE5VTEwpOworICAgIGlmIChyZXQgPj0gMCkgeworICAgICAg ICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAiRkFJTCBpbml0OiBkcm9wKzI1ZnBz IHNob3VsZCBmYWlsLCBnb3QgcmV0PSVkXG4iLCByZXQpOworICAgICAgICBmYWlsZWQrKzsKKyAg ICB9Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBhdl90aW1lY29kZV9pbml0X2Zyb21f Y29tcG9uZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICovCitzdGF0aWMgdm9pZCB0ZXN0X2luaXRfZnJvbV9jb21wb25lbnRz KHZvaWQpCit7CisgICAgQVZUaW1lY29kZSB0YzsKKyAgICBpbnQgcmV0OworCisgICAgLyogMDA6 MDA6MDA6MDAgYXQgMjVmcHMg4oaSIHN0YXJ0ID0gMCAqLworICAgIHJldCA9IGF2X3RpbWVjb2Rl X2luaXRfZnJvbV9jb21wb25lbnRzKCZ0YywgKEFWUmF0aW9uYWwpezI1LCAxfSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCBOVUxMKTsK KyAgICBBU1NFUlRfRVEocmV0LCAwLCAiaW5pdF9mcm9tX2NvbXBvbmVudHMgMDA6MDA6MDA6MDAi KTsKKyAgICBBU1NFUlRfRVEodGMuc3RhcnQsIDAsICJjb21wb25lbnRzIHN0YXJ0IDAiKTsKKwor ICAgIC8qIDAxOjAwOjAwOjAwIGF0IDI1ZnBzIOKGkiBzdGFydCA9IDM2MDAgKiAyNSA9IDkwMDAw ICovCisgICAgcmV0ID0gYXZfdGltZWNvZGVfaW5pdF9mcm9tX2NvbXBvbmVudHMoJnRjLCAoQVZS YXRpb25hbCl7MjUsIDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDEsIDAsIDAsIDAsIE5VTEwpOworICAgIEFTU0VSVF9FUShyZXQsIDAsICJpbml0X2Zy b21fY29tcG9uZW50cyAwMTowMDowMDowMCIpOworICAgIEFTU0VSVF9FUSh0Yy5zdGFydCwgOTAw MDAsICJjb21wb25lbnRzIHN0YXJ0IDAxOjAwOjAwOjAwIik7CisKKyAgICAvKiAwMTowMjowMzow NCBhdCAzMGZwcyDihpIgMSozNjAwKjMwICsgMio2MCozMCArIDMqMzAgKyA0ID0gMTExNjk0ICov CisgICAgcmV0ID0gYXZfdGltZWNvZGVfaW5pdF9mcm9tX2NvbXBvbmVudHMoJnRjLCAoQVZSYXRp b25hbCl7MzAsIDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDAsIDEsIDIsIDMsIDQsIE5VTEwpOworICAgIEFTU0VSVF9FUShyZXQsIDAsICJpbml0X2Zyb21f Y29tcG9uZW50cyAwMTowMjowMzowNCIpOworICAgIEFTU0VSVF9FUSh0Yy5zdGFydCwgMTExNjk0 LCAiY29tcG9uZW50cyBzdGFydCAwMTowMjowMzowNCIpOworCisgICAgLyogRHJvcCBmcmFtZSAy OS45Nzogc3RhcnQgc2hvdWxkIGJlIGFkanVzdGVkIGZvciBkcm9wcGVkIGZyYW1lcyAqLworICAg IHJldCA9IGF2X3RpbWVjb2RlX2luaXRfZnJvbV9jb21wb25lbnRzKCZ0YywgKEFWUmF0aW9uYWwp ezMwMDAwLCAxMDAxfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBVl9USU1FQ09ERV9GTEFHX0RST1BGUkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxLCAwLCAwLCAwLCBOVUxMKTsKKyAgICBBU1NFUlRfRVEocmV0LCAw LCAiaW5pdF9mcm9tX2NvbXBvbmVudHMgZHJvcCAwMTowMDowMDswMCIpOworICAgIC8qIDFoIGF0 IDI5Ljk3IGRyb3AgPSAxMDc4OTIgZnJhbWVzIChzdGFuZGFyZCBkcm9wLWZyYW1lIGNvdW50KSAq LworICAgIEFTU0VSVF9FUSh0Yy5zdGFydCwgMTA3ODkyLCAiY29tcG9uZW50cyBkcm9wIHN0YXJ0 IDAxaCIpOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogYXZfdGltZWNvZGVfaW5pdF9m cm9tX3N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIHZvaWQgdGVzdF9pbml0X2Zyb21fc3RyaW5n KHZvaWQpCit7CisgICAgQVZUaW1lY29kZSB0YzsKKyAgICBpbnQgcmV0OworCisgICAgLyogTm9u LWRyb3AgIjoiIHNlcGFyYXRvciAqLworICAgIHJldCA9IGF2X3RpbWVjb2RlX2luaXRfZnJvbV9z dHJpbmcoJnRjLCAoQVZSYXRpb25hbCl7MzAsIDF9LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIjAwOjAxOjAyOjAzIiwgTlVMTCk7CisgICAgQVNTRVJUX0VRKHJldCwg MCwgImluaXRfZnJvbV9zdHJpbmcgbm9uLWRyb3AiKTsKKyAgICBBU1NFUlRfRVEoISEodGMuZmxh Z3MgJiBBVl9USU1FQ09ERV9GTEFHX0RST1BGUkFNRSksIDAsICJzdHJpbmcgbm9uLWRyb3AgZmxh ZyIpOworICAgIC8qIDAqMzYwMCozMCArIDEqNjAqMzAgKyAyKjMwICsgMyA9IDE4NjMgKi8KKyAg ICBBU1NFUlRfRVEodGMuc3RhcnQsIDE4NjMsICJzdHJpbmcgbm9uLWRyb3Agc3RhcnQiKTsKKwor ICAgIC8qIERyb3AgIjsiIHNlcGFyYXRvciAqLworICAgIHJldCA9IGF2X3RpbWVjb2RlX2luaXRf ZnJvbV9zdHJpbmcoJnRjLCAoQVZSYXRpb25hbCl7MzAwMDAsIDEwMDF9LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAwOjAxOjAwOzAyIiwgTlVMTCk7CisgICAgQVNT RVJUX0VRKHJldCwgMCwgImluaXRfZnJvbV9zdHJpbmcgZHJvcCIpOworICAgIEFTU0VSVF9FUSgh ISh0Yy5mbGFncyAmIEFWX1RJTUVDT0RFX0ZMQUdfRFJPUEZSQU1FKSwgMSwgInN0cmluZyBkcm9w IGZsYWciKTsKKworICAgIC8qIERvdCAnLicgc2VwYXJhdG9yIGFsc28gbWVhbnMgZHJvcCAqLwor ICAgIHJldCA9IGF2X3RpbWVjb2RlX2luaXRfZnJvbV9zdHJpbmcoJnRjLCAoQVZSYXRpb25hbCl7 MzAwMDAsIDEwMDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAx OjAwOjAwLjAwIiwgTlVMTCk7CisgICAgQVNTRVJUX0VRKHJldCwgMCwgImluaXRfZnJvbV9zdHJp bmcgZG90LWRyb3AiKTsKKyAgICBBU1NFUlRfRVEoISEodGMuZmxhZ3MgJiBBVl9USU1FQ09ERV9G TEFHX0RST1BGUkFNRSksIDEsICJzdHJpbmcgZG90LWRyb3AgZmxhZyIpOworCisgICAgLyogSW52 YWxpZCBzdHJpbmcgKi8KKyAgICByZXQgPSBhdl90aW1lY29kZV9pbml0X2Zyb21fc3RyaW5nKCZ0 YywgKEFWUmF0aW9uYWwpezI1LCAxfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJub3R2YWxpZCIsIE5VTEwpOworICAgIGlmIChyZXQgPj0gMCkgeworICAgICAgICBm cHJpbnRmKHN0ZGVyciwgIkZBSUwgaW5pdF9mcm9tX3N0cmluZzogaW52YWxpZCBzdHIgc2hvdWxk IGZhaWxcbiIpOworICAgICAgICBmYWlsZWQrKzsKKyAgICB9Cit9CisKKy8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICovCisvKiBhdl90aW1lY29kZV9tYWtlX3N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCitzdGF0 aWMgdm9pZCB0ZXN0X21ha2Vfc3RyaW5nKHZvaWQpCit7CisgICAgQVZUaW1lY29kZSB0YzsKKyAg ICBjaGFyIGJ1ZltBVl9USU1FQ09ERV9TVFJfU0laRV07CisKKyAgICAvKiAyNWZwcywgbm8gZmxh Z3M6ICIwMDowMDowMToxMCIgZm9yIGZyYW1lIDM1ICg9IDFzKjI1ICsgMTApICovCisgICAgYXZf dGltZWNvZGVfaW5pdCgmdGMsIChBVlJhdGlvbmFsKXsyNSwgMX0sIDAsIDAsIE5VTEwpOworICAg IGF2X3RpbWVjb2RlX21ha2Vfc3RyaW5nKCZ0YywgYnVmLCAzNSk7CisgICAgQVNTRVJUX1NUUihi dWYsICIwMDowMDowMToxMCIsICJtYWtlX3N0cmluZyAyNWZwcyBmcmFtZSAzNSIpOworCisgICAg LyogZnJhbWUgMCDihpIgIjAwOjAwOjAwOjAwIiAqLworICAgIGF2X3RpbWVjb2RlX21ha2Vfc3Ry aW5nKCZ0YywgYnVmLCAwKTsKKyAgICBBU1NFUlRfU1RSKGJ1ZiwgIjAwOjAwOjAwOjAwIiwgIm1h a2Vfc3RyaW5nIGZyYW1lIDAiKTsKKworICAgIC8qIDMwZnBzIG5vbi1kcm9wLCBmcmFtZSAzMCDi hpIgIjAwOjAwOjAxOjAwIiAqLworICAgIGF2X3RpbWVjb2RlX2luaXQoJnRjLCAoQVZSYXRpb25h bCl7MzAsIDF9LCAwLCAwLCBOVUxMKTsKKyAgICBhdl90aW1lY29kZV9tYWtlX3N0cmluZygmdGMs IGJ1ZiwgMzApOworICAgIEFTU0VSVF9TVFIoYnVmLCAiMDA6MDA6MDE6MDAiLCAibWFrZV9zdHJp bmcgMzBmcHMgZnJhbWUgMzAiKTsKKworICAgIC8qIEFWX1RJTUVDT0RFX0ZMQUdfMjRIT1VSU01B WDogaG91ciB3cmFwcyBhdCAyNCAqLworICAgIGF2X3RpbWVjb2RlX2luaXQoJnRjLCAoQVZSYXRp b25hbCl7MjUsIDF9LAorICAgICAgICAgICAgICAgICAgICAgQVZfVElNRUNPREVfRkxBR18yNEhP VVJTTUFYLCAwLCBOVUxMKTsKKyAgICAvKiBmcmFtZSBhdCAyNWggPSAyNSozNjAwKjI1ID0gMjI1 MDAwMCBmcmFtZXMsIHNob3VsZCB3cmFwIHRvIDAxOjAwOjAwOjAwICovCisgICAgYXZfdGltZWNv ZGVfbWFrZV9zdHJpbmcoJnRjLCBidWYsIDI1ICogMzYwMCAqIDI1KTsKKyAgICBBU1NFUlRfU1RS KGJ1ZiwgIjAxOjAwOjAwOjAwIiwgIm1ha2Vfc3RyaW5nIDI0aCB3cmFwIik7CisKKyAgICAvKiBE cm9wLWZyYW1lIDI5Ljk3OiBzZXBhcmF0b3Igc2hvdWxkIGJlICc7JyAqLworICAgIGF2X3RpbWVj b2RlX2luaXQoJnRjLCAoQVZSYXRpb25hbCl7MzAwMDAsIDEwMDF9LAorICAgICAgICAgICAgICAg ICAgICAgQVZfVElNRUNPREVfRkxBR19EUk9QRlJBTUUsIDAsIE5VTEwpOworICAgIGF2X3RpbWVj b2RlX21ha2Vfc3RyaW5nKCZ0YywgYnVmLCAwKTsKKyAgICBpZiAoc3RyY2hyKGJ1ZiwgJzsnKSA9 PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTCBtYWtlX3N0cmluZzogZHJv cCBmcmFtZSBzaG91bGQgdXNlICc7JywgZ290ICclcydcbiIsIGJ1Zik7CisgICAgICAgIGZhaWxl ZCsrOworICAgIH0KK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIGF2X3RpbWVjb2RlX21h a2Vfc21wdGVfdGNfc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KK3N0YXRpYyB2b2lkIHRlc3RfbWFrZV9zbXB0ZV90 Y19zdHJpbmcodm9pZCkKK3sKKyAgICBjaGFyIGJ1ZltBVl9USU1FQ09ERV9TVFJfU0laRV07Cisg ICAgQVZUaW1lY29kZSB0YzsKKyAgICB1aW50MzJfdCBzbXB0ZTsKKworICAgIC8qIEJ1aWxkIFNN UFRFIGNvZGUgZm9yIDAxOjAyOjAzOjA0IGF0IDMwZnBzIG5vbi1kcm9wICovCisgICAgc21wdGUg PSBhdl90aW1lY29kZV9nZXRfc21wdGUoKEFWUmF0aW9uYWwpezMwLCAxfSwgMCwgMSwgMiwgMywg NCk7CisgICAgYXZfdGltZWNvZGVfbWFrZV9zbXB0ZV90Y19zdHJpbmcoYnVmLCBzbXB0ZSwgMSk7 CisgICAgQVNTRVJUX1NUUihidWYsICIwMTowMjowMzowNCIsICJzbXB0ZV90Y19zdHJpbmcgMDE6 MDI6MDM6MDQiKTsKKworICAgIC8qIFVzaW5nIGF2X3RpbWVjb2RlX2dldF9zbXB0ZV9mcm9tX2Zy YW1lbnVtICovCisgICAgYXZfdGltZWNvZGVfaW5pdCgmdGMsIChBVlJhdGlvbmFsKXsyNSwgMX0s IDAsIDAsIE5VTEwpOworICAgIC8qIGZyYW1lIDI1KjM2MDAgKyAyNSo2MCArIDI1KjEgKyA1ID0g OTE1MzAg4oaSIDAxOjAxOjAxOjA1IGF0IDI1ZnBzICovCisgICAgc21wdGUgPSBhdl90aW1lY29k ZV9nZXRfc21wdGVfZnJvbV9mcmFtZW51bSgmdGMsIDI1ICogMzYwMCArIDI1ICogNjAgKyAyNSAr IDUpOworICAgIGF2X3RpbWVjb2RlX21ha2Vfc21wdGVfdGNfc3RyaW5nKGJ1Ziwgc21wdGUsIDEp OworICAgIEFTU0VSVF9TVFIoYnVmLCAiMDE6MDE6MDE6MDUiLCAic21wdGVfZnJvbV9mcmFtZW51 bSAwMTowMTowMTowNSIpOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogYXZfdGltZWNv ZGVfbWFrZV9zbXB0ZV90Y19zdHJpbmcyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIHZvaWQgdGVzdF9tYWtlX3Nt cHRlX3RjX3N0cmluZzIodm9pZCkKK3sKKyAgICBjaGFyIGJ1ZltBVl9USU1FQ09ERV9TVFJfU0la RV07CisgICAgdWludDMyX3Qgc21wdGU7CisKKyAgICAvKiA1MGZwczogZnJhbWUgMCBzaG91bGQg cGFyc2UgdG8gIjAwOjAwOjAwOjAwIiAqLworICAgIHNtcHRlID0gYXZfdGltZWNvZGVfZ2V0X3Nt cHRlKChBVlJhdGlvbmFsKXs1MCwgMX0sIDAsIDAsIDAsIDAsIDApOworICAgIGF2X3RpbWVjb2Rl X21ha2Vfc21wdGVfdGNfc3RyaW5nMihidWYsIChBVlJhdGlvbmFsKXs1MCwgMX0sIHNtcHRlLCAx LCAwKTsKKyAgICBBU1NFUlRfU1RSKGJ1ZiwgIjAwOjAwOjAwOjAwIiwgInNtcHRlX3RjX3N0cmlu ZzIgNTBmcHMgMDA6MDA6MDA6MDAiKTsKKworICAgIC8qIDYwZnBzIGF0IDAxOjAwOjAwOjAwICov CisgICAgc21wdGUgPSBhdl90aW1lY29kZV9nZXRfc21wdGUoKEFWUmF0aW9uYWwpezYwLCAxfSwg MCwgMSwgMCwgMCwgMCk7CisgICAgYXZfdGltZWNvZGVfbWFrZV9zbXB0ZV90Y19zdHJpbmcyKGJ1 ZiwgKEFWUmF0aW9uYWwpezYwLCAxfSwgc21wdGUsIDEsIDApOworICAgIEFTU0VSVF9TVFIoYnVm LCAiMDE6MDA6MDA6MDAiLCAic21wdGVfdGNfc3RyaW5nMiA2MGZwcyAwMTowMDowMDowMCIpOwor fQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogYXZfdGltZWNvZGVfbWFrZV9tcGVnX3RjX3N0 cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAqLworc3RhdGljIHZvaWQgdGVzdF9tYWtlX21wZWdfdGNfc3RyaW5nKHZvaWQp Cit7CisgICAgY2hhciBidWZbQVZfVElNRUNPREVfU1RSX1NJWkVdOworCisgICAgLyogQnVpbGQg MjUtYml0IE1QRUcgdGltZWNvZGUgbWFudWFsbHkgZm9yIDAxOjAyOjAzOjA0IG5vbi1kcm9wOgor ICAgICAqIGhoPTEsIG1tPTIsIHNzPTMsIGZmPTQKKyAgICAgKiB0YzI1Yml0ID0gKGhoPDwxOSl8 KG1tPDwxMyl8KHNzPDw2KXxmZiAqLworICAgIHVpbnQzMl90IHRjMjUgPSAoMXUgPDwgMTkpIHwg KDJ1IDw8IDEzKSB8ICgzdSA8PCA2KSB8IDR1OworICAgIGF2X3RpbWVjb2RlX21ha2VfbXBlZ190 Y19zdHJpbmcoYnVmLCB0YzI1KTsKKyAgICBBU1NFUlRfU1RSKGJ1ZiwgIjAxOjAyOjAzOjA0Iiwg Im1wZWdfdGNfc3RyaW5nIDAxOjAyOjAzOjA0Iik7CisKKyAgICAvKiBEcm9wIGZsYWcgYml0IDI0 PTEg4oaSIHNlcGFyYXRvciAnOycgKi8KKyAgICB1aW50MzJfdCB0YzI1X2Ryb3AgPSB0YzI1IHwg KDF1IDw8IDI0KTsKKyAgICBhdl90aW1lY29kZV9tYWtlX21wZWdfdGNfc3RyaW5nKGJ1ZiwgdGMy NV9kcm9wKTsKKyAgICBpZiAoc3RyY2hyKGJ1ZiwgJzsnKSA9PSBOVUxMKSB7CisgICAgICAgIGZw cmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICJGQUlMIG1wZWdfdGNfc3RyaW5nOiBkcm9w IGZsYWcgc2hvdWxkIHByb2R1Y2UgJzsnLCBnb3QgJyVzJ1xuIiwgYnVmKTsKKyAgICAgICAgZmFp bGVkKys7CisgICAgfQorfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogYXZfdGltZWNvZGVf YWRqdXN0X250c2NfZnJhbWVudW0yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIHZvaWQgdGVzdF9hZGp1c3RfbnRz Yyh2b2lkKQoreworICAgIC8qIDI5Ljk3IGRyb3A6IGZyYW1lIDAg4oaSIDAgKi8KKyAgICBBU1NF UlRfRVEoYXZfdGltZWNvZGVfYWRqdXN0X250c2NfZnJhbWVudW0yKDAsIDMwKSwgMCwgIm50c2Nf YWRqdXN0IGZyYW1lIDAiKTsKKworICAgIC8qIEZyYW1lIDE4MDAgKDEgbWluIGF0IDMwZnBzKSDi hpIgc3VidHJhY3QgMiAoZmlyc3QgbWludXRlIHNraXApICovCisgICAgQVNTRVJUX0VRKGF2X3Rp bWVjb2RlX2FkanVzdF9udHNjX2ZyYW1lbnVtMigxODAwLCAzMCksIDE4MDAgKyAyLAorICAgICAg ICAgICAgICAibnRzY19hZGp1c3QgMTgwMCAoMW1pbiBhdCAzMCkiKTsKKworICAgIC8qIE5vbi1t dWx0aXBsZSBvZiAzMCDihpIgdW5jaGFuZ2VkICovCisgICAgQVNTRVJUX0VRKGF2X3RpbWVjb2Rl X2FkanVzdF9udHNjX2ZyYW1lbnVtMigxMDAwLCAyNSksIDEwMDAsCisgICAgICAgICAgICAgICJu dHNjX2FkanVzdCBub24tMzAgZnBzIik7CisgICAgQVNTRVJUX0VRKGF2X3RpbWVjb2RlX2FkanVz dF9udHNjX2ZyYW1lbnVtMigxMDAwLCAwKSwgMTAwMCwKKyAgICAgICAgICAgICAgIm50c2NfYWRq dXN0IGZwcz0wIik7CisKKyAgICAvKiA2MGZwcyAoMngzMCk6IGRyb3BfZnJhbWVzPTQsIGZyYW1l c19wZXJfMTBtaW5zPTM1OTY0ICovCisgICAgaW50IGFkaiA9IGF2X3RpbWVjb2RlX2FkanVzdF9u dHNjX2ZyYW1lbnVtMigzNjAwLCA2MCk7CisgICAgLyogMzYwMCBmcmFtZXMgaW50byAxIG1pbiBh dCA2MGZwcyDihpIgKzQgc2tpcHBlZCAqLworICAgIEFTU0VSVF9FUShhZGosIDM2MDAgKyA0LCAi bnRzY19hZGp1c3QgNjBmcHMgMW1pbiIpOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyog YXZfdGltZWNvZGVfZ2V0X3NtcHRlIHJvdW5kdHJpcCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIHZvaWQgdGVz dF9nZXRfc21wdGVfcm91bmR0cmlwKHZvaWQpCit7CisgICAgLyogRW5jb2RlIGFuZCBkZWNvZGUg MTI6MzQ6NTY6MDcgYXQgMzBmcHMsIGNoZWNrIHRoZSBzdHJpbmcgbWF0Y2hlcyAqLworICAgIGNo YXIgYnVmW0FWX1RJTUVDT0RFX1NUUl9TSVpFXTsKKyAgICB1aW50MzJfdCBzbXB0ZSA9IGF2X3Rp bWVjb2RlX2dldF9zbXB0ZSgoQVZSYXRpb25hbCl7MzAsIDF9LCAwLCAxMiwgMzQsIDU2LCA3KTsK KyAgICBhdl90aW1lY29kZV9tYWtlX3NtcHRlX3RjX3N0cmluZyhidWYsIHNtcHRlLCAxKTsKKyAg ICBBU1NFUlRfU1RSKGJ1ZiwgIjEyOjM0OjU2OjA3IiwgInNtcHRlIHJvdW5kdHJpcCAxMjozNDo1 NjowNyIpOworCisgICAgLyogMDA6MDA6MDA6MDAgKi8KKyAgICBzbXB0ZSA9IGF2X3RpbWVjb2Rl X2dldF9zbXB0ZSgoQVZSYXRpb25hbCl7MzAsIDF9LCAwLCAwLCAwLCAwLCAwKTsKKyAgICBhdl90 aW1lY29kZV9tYWtlX3NtcHRlX3RjX3N0cmluZyhidWYsIHNtcHRlLCAxKTsKKyAgICBBU1NFUlRf U1RSKGJ1ZiwgIjAwOjAwOjAwOjAwIiwgInNtcHRlIHJvdW5kdHJpcCAwMDowMDowMDowMCIpOwor CisgICAgLyogRHJvcC1mcmFtZSBiaXQgKi8KKyAgICBzbXB0ZSA9IGF2X3RpbWVjb2RlX2dldF9z bXB0ZSgoQVZSYXRpb25hbCl7MzAwMDAsIDEwMDF9LCAxLCAwLCAxLCAwLCAyKTsKKyAgICBpZiAo IShzbXB0ZSAmICgxdSA8PCAzMCkpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRkFJTCBn ZXRfc21wdGU6IGRyb3AgYml0IG5vdCBzZXRcbiIpOworICAgICAgICBmYWlsZWQrKzsKKyAgICB9 CisgICAgYXZfdGltZWNvZGVfbWFrZV9zbXB0ZV90Y19zdHJpbmcoYnVmLCBzbXB0ZSwgMCAvKiBh bGxvdyBkcm9wICovKTsKKyAgICAvKiBzZXBhcmF0b3Igc2hvdWxkIGJlICc7JyBmb3IgZHJvcCAq LworICAgIGlmIChzdHJjaHIoYnVmLCAnOycpID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50Zihz dGRlcnIsCisgICAgICAgICAgICAgICAgIkZBSUwgZ2V0X3NtcHRlOiBkcm9wIHJvdW5kdHJpcCBt aXNzaW5nICc7JywgZ290ICclcydcbiIsIGJ1Zik7CisgICAgICAgIGZhaWxlZCsrOworICAgIH0K K30KKworaW50IG1haW4odm9pZCkKK3sKKyAgICB0ZXN0X2NoZWNrX2ZyYW1lX3JhdGUoKTsKKyAg ICB0ZXN0X2luaXQoKTsKKyAgICB0ZXN0X2luaXRfZnJvbV9jb21wb25lbnRzKCk7CisgICAgdGVz dF9pbml0X2Zyb21fc3RyaW5nKCk7CisgICAgdGVzdF9tYWtlX3N0cmluZygpOworICAgIHRlc3Rf bWFrZV9zbXB0ZV90Y19zdHJpbmcoKTsKKyAgICB0ZXN0X21ha2Vfc21wdGVfdGNfc3RyaW5nMigp OworICAgIHRlc3RfbWFrZV9tcGVnX3RjX3N0cmluZygpOworICAgIHRlc3RfYWRqdXN0X250c2Mo KTsKKyAgICB0ZXN0X2dldF9zbXB0ZV9yb3VuZHRyaXAoKTsKKworICAgIGlmIChmYWlsZWQpIHsK KyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlZCB0ZXN0KHMpIEZBSUxFRFxuIiwgZmFpbGVkKTsK KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEv dGVzdHMvZmF0ZS9obHNlbmMubWFrIGIvdGVzdHMvZmF0ZS9obHNlbmMubWFrCmluZGV4IDJjNDA5 N2QwZDkuLmIwZjQyODE3ZTcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ZhdGUvaGxzZW5jLm1haworKysg Yi90ZXN0cy9mYXRlL2hsc2VuYy5tYWsKQEAgLTEyOSwzICsxMjksMTg3IEBAIGZhdGUtaGxzLWNt ZmE6IENNRCA9IGZyYW1lY3JjIC1pICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX2NtZmEu bTN1OCAtYyBjb3B5CiBGQVRFX1NBTVBMRVNfRkZNUEVHICs9ICQoRkFURV9ITFNFTkMteWVzKQog RkFURV9TQU1QTEVTX0ZGTVBFR19GRlBST0JFICs9ICQoRkFURV9ITFNFTkNfUFJPQkUteWVzKQog ZmF0ZS1obHNlbmM6ICQoRkFURV9ITFNFTkMteWVzKSAkKEZBVEVfSExTRU5DX1BST0JFLXllcykK KworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQWRkaXRpb25hbCB0ZXN0cyBmb3IgaW1wcm92ZWQg Y29kZSBjb3ZlcmFnZQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyByb3VuZF9kdXJhdGlvbnMg ZmxhZzogZXhlcmNpc2VzIGhsc193aW5kb3coKSBITFMgdmVyc2lvbiAyIHBhdGggYW5kCisjIHJv dW5kZWQgRVhUSU5GIHdyaXRpbmcgdmlhIGZmX2hsc193cml0ZV9maWxlX2VudHJ5KHJvdW5kX2R1 cmF0aW9ucz0xKS4KK3Rlc3RzL2RhdGEvaGxzX3JvdW5kX2R1cmF0aW9ucy5tM3U4OiBUQUcgPSBH RU4KK3Rlc3RzL2RhdGEvaGxzX3JvdW5kX2R1cmF0aW9ucy5tM3U4OiBmZm1wZWckKFBST0dTU1VG KSQoRVhFU1VGKSB8IHRlc3RzL2RhdGEKKwkkKE0pJChUQVJHRVRfRVhFQykgJChUQVJHRVRfUEFU SCkvJDwgLW5vc3RkaW4gXAorCS1mIGxhdmZpIC1pICJhZXZhbHNyYz1jb3MoMipQSSp0KSpzaW4o MipQSSooNDQwKzQqdCkqdCk6ZD0xMCIgLWYgaGxzIFwKKwktaGxzX3RpbWUgMyAtaGxzX2xpc3Rf c2l6ZSAwIC1obHNfZmxhZ3Mgcm91bmRfZHVyYXRpb25zIFwKKwktY29kZWM6YSBtcDJmaXhlZCBc CisJLWhsc19zZWdtZW50X2ZpbGVuYW1lICIkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19y b3VuZF9kdXJhdGlvbnNfJWQudHMiIFwKKwkkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19y b3VuZF9kdXJhdGlvbnMubTN1OCAyPi9kZXYvbnVsbAorCitGQVRFX0hMU0VOQ19FWFRSQS0kKGNh bGwgRklMVEVSREVNREVDRU5DTVVYLCBBRVZBTFNSQyBBUkVTQU1QTEUsIEhMUyBNUEVHVFMsIE1Q MiBQQ01fRjY0TEUsIE1QMkZJWEVELCBITFMgTVBFR1RTLCBMQVZGSV9JTkRFVikgKz0gZmF0ZS1o bHMtcm91bmQtZHVyYXRpb25zCitmYXRlLWhscy1yb3VuZC1kdXJhdGlvbnM6IHRlc3RzL2RhdGEv aGxzX3JvdW5kX2R1cmF0aW9ucy5tM3U4CitmYXRlLWhscy1yb3VuZC1kdXJhdGlvbnM6IENNRCA9 IGZyYW1lY3JjIC1hdXRvX2NvbnZlcnNpb25fZmlsdGVycyAtZmxhZ3MgK2JpdGV4YWN0IFwKKwkt aSAkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19yb3VuZF9kdXJhdGlvbnMubTN1OCAtdmYg c2V0cHRzPU4qMjMKKworIyBzcGxpdF9ieV90aW1lIGZsYWc6IGV4ZXJjaXNlcyBjYW5fc3BsaXQg cGF0aCB0cmlnZ2VyZWQgYnkgd2FsbC1jbG9jayB0aW1lCisjIHJhdGhlciB0aGFuIGtleWZyYW1l IGJvdW5kYXJ5IGluIGhsc193cml0ZV9wYWNrZXQoKS4KK3Rlc3RzL2RhdGEvaGxzX3NwbGl0X2J5 X3RpbWUubTN1ODogVEFHID0gR0VOCit0ZXN0cy9kYXRhL2hsc19zcGxpdF9ieV90aW1lLm0zdTg6 IGZmbXBlZyQoUFJPR1NTVUYpJChFWEVTVUYpIHwgdGVzdHMvZGF0YQorCSQoTSkkKFRBUkdFVF9F WEVDKSAkKFRBUkdFVF9QQVRIKS8kPCAtbm9zdGRpbiBcCisJLWYgbGF2ZmkgLWkgImFldmFsc3Jj PWNvcygyKlBJKnQpKnNpbigyKlBJKig0NDArNCp0KSp0KTpkPTEwIiAtZiBobHMgXAorCS1obHNf dGltZSAzIC1obHNfbGlzdF9zaXplIDAgLWhsc19mbGFncyBzcGxpdF9ieV90aW1lIFwKKwktY29k ZWM6YSBtcDJmaXhlZCBcCisJLWhsc19zZWdtZW50X2ZpbGVuYW1lICIkKFRBUkdFVF9QQVRIKS90 ZXN0cy9kYXRhL2hsc19zcGxpdF9ieV90aW1lXyVkLnRzIiBcCisJJChUQVJHRVRfUEFUSCkvdGVz dHMvZGF0YS9obHNfc3BsaXRfYnlfdGltZS5tM3U4IDI+L2Rldi9udWxsCisKK0ZBVEVfSExTRU5D X0VYVFJBLSQoY2FsbCBGSUxURVJERU1ERUNFTkNNVVgsIEFFVkFMU1JDIEFSRVNBTVBMRSwgSExT IE1QRUdUUywgTVAyIFBDTV9GNjRMRSwgTVAyRklYRUQsIEhMUyBNUEVHVFMsIExBVkZJX0lOREVW KSArPSBmYXRlLWhscy1zcGxpdC1ieS10aW1lCitmYXRlLWhscy1zcGxpdC1ieS10aW1lOiB0ZXN0 cy9kYXRhL2hsc19zcGxpdF9ieV90aW1lLm0zdTgKK2ZhdGUtaGxzLXNwbGl0LWJ5LXRpbWU6IENN RCA9IGZyYW1lY3JjIC1hdXRvX2NvbnZlcnNpb25fZmlsdGVycyAtZmxhZ3MgK2JpdGV4YWN0IFwK KwktaSAkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19zcGxpdF9ieV90aW1lLm0zdTggLXZm IHNldHB0cz1OKjIzCisKKyMgZGlzY29udF9zdGFydCBmbGFnOiBleGVyY2lzZXMgdGhlIG9wZW5p bmcgI0VYVC1YLURJU0NPTlRJTlVJVFkgdGFnIGluCisjIGhsc193aW5kb3coKSBhbmQgdGhlIEhM U19ESVNDT05UX1NUQVJUIGJyYW5jaC4KK3Rlc3RzL2RhdGEvaGxzX2Rpc2NvbnRfc3RhcnQubTN1 ODogVEFHID0gR0VOCit0ZXN0cy9kYXRhL2hsc19kaXNjb250X3N0YXJ0Lm0zdTg6IGZmbXBlZyQo UFJPR1NTVUYpJChFWEVTVUYpIHwgdGVzdHMvZGF0YQorCSQoTSkkKFRBUkdFVF9FWEVDKSAkKFRB UkdFVF9QQVRIKS8kPCAtbm9zdGRpbiBcCisJLWYgbGF2ZmkgLWkgImFldmFsc3JjPWNvcygyKlBJ KnQpKnNpbigyKlBJKig0NDArNCp0KSp0KTpkPTEwIiAtZiBobHMgXAorCS1obHNfdGltZSA0IC1o bHNfbGlzdF9zaXplIDAgLWhsc19mbGFncyBkaXNjb250X3N0YXJ0IFwKKwktY29kZWM6YSBtcDJm aXhlZCBcCisJLWhsc19zZWdtZW50X2ZpbGVuYW1lICIkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRh L2hsc19kaXNjb250X3N0YXJ0XyVkLnRzIiBcCisJJChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9o bHNfZGlzY29udF9zdGFydC5tM3U4IDI+L2Rldi9udWxsCisKK0ZBVEVfSExTRU5DX0VYVFJBLSQo Y2FsbCBGSUxURVJERU1ERUNFTkNNVVgsIEFFVkFMU1JDIEFSRVNBTVBMRSwgSExTIE1QRUdUUywg TVAyIFBDTV9GNjRMRSwgTVAyRklYRUQsIEhMUyBNUEVHVFMsIExBVkZJX0lOREVWKSArPSBmYXRl LWhscy1kaXNjb250LXN0YXJ0CitmYXRlLWhscy1kaXNjb250LXN0YXJ0OiB0ZXN0cy9kYXRhL2hs c19kaXNjb250X3N0YXJ0Lm0zdTgKK2ZhdGUtaGxzLWRpc2NvbnQtc3RhcnQ6IENNRCA9IGZyYW1l Y3JjIC1hdXRvX2NvbnZlcnNpb25fZmlsdGVycyAtZmxhZ3MgK2JpdGV4YWN0IFwKKwktaSAkKFRB UkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19kaXNjb250X3N0YXJ0Lm0zdTggLXZmIHNldHB0cz1O KjIzCisKKyMgaW5kZXBlbmRlbnRfc2VnbWVudHMgZmxhZzogZXhlcmNpc2VzIHRoZSAjRVhULVgt SU5ERVBFTkRFTlQtU0VHTUVOVFMgbGluZSBpbgorIyBobHNfd2luZG93KCksIHB1c2hlcyBwbGF5 bGlzdCB0byB2ZXJzaW9uIDYuCit0ZXN0cy9kYXRhL2hsc19pbmRlcGVuZGVudF9zZWdzLm0zdTg6 IFRBRyA9IEdFTgordGVzdHMvZGF0YS9obHNfaW5kZXBlbmRlbnRfc2Vncy5tM3U4OiBmZm1wZWck KFBST0dTU1VGKSQoRVhFU1VGKSB8IHRlc3RzL2RhdGEKKwkkKE0pJChUQVJHRVRfRVhFQykgJChU QVJHRVRfUEFUSCkvJDwgLW5vc3RkaW4gXAorCS1mIGxhdmZpIC1pICJhZXZhbHNyYz1jb3MoMipQ SSp0KSpzaW4oMipQSSooNDQwKzQqdCkqdCk6ZD0xMCIgLWYgaGxzIFwKKwktaGxzX3RpbWUgMyAt aGxzX2xpc3Rfc2l6ZSAwIC1obHNfZmxhZ3MgaW5kZXBlbmRlbnRfc2VnbWVudHMgXAorCS1jb2Rl YzphIG1wMmZpeGVkIFwKKwktaGxzX3NlZ21lbnRfZmlsZW5hbWUgIiQoVEFSR0VUX1BBVEgpL3Rl c3RzL2RhdGEvaGxzX2luZGVwZW5kZW50X3NlZ3NfJWQudHMiIFwKKwkkKFRBUkdFVF9QQVRIKS90 ZXN0cy9kYXRhL2hsc19pbmRlcGVuZGVudF9zZWdzLm0zdTggMj4vZGV2L251bGwKKworRkFURV9I TFNFTkNfRVhUUkEtJChjYWxsIEZJTFRFUkRFTURFQ0VOQ01VWCwgQUVWQUxTUkMgQVJFU0FNUExF LCBITFMgTVBFR1RTLCBNUDIgUENNX0Y2NExFLCBNUDJGSVhFRCwgSExTIE1QRUdUUywgTEFWRklf SU5ERVYpICs9IGZhdGUtaGxzLWluZGVwZW5kZW50LXNlZ3MKK2ZhdGUtaGxzLWluZGVwZW5kZW50 LXNlZ3M6IHRlc3RzL2RhdGEvaGxzX2luZGVwZW5kZW50X3NlZ3MubTN1OAorZmF0ZS1obHMtaW5k ZXBlbmRlbnQtc2VnczogQ01EID0gZnJhbWVjcmMgLWF1dG9fY29udmVyc2lvbl9maWx0ZXJzIC1m bGFncyArYml0ZXhhY3QgXAorCS1pICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX2luZGVw ZW5kZW50X3NlZ3MubTN1OCAtdmYgc2V0cHRzPU4qMjMKKworIyBFVkVOVCBwbGF5bGlzdCB0eXBl OiBleGVyY2lzZXMgaGxzLT5wbF90eXBlID09IFBMQVlMSVNUX1RZUEVfRVZFTlQgYnJhbmNoLAor IyBkaXNhYmxlcyBzbGlkaW5nIHdpbmRvdyAobWF4X25iX3NlZ21lbnRzPTApIGluc2lkZSBobHNf YXBwZW5kX3NlZ21lbnQoKS4KK3Rlc3RzL2RhdGEvaGxzX2V2ZW50X3BsYXlsaXN0Lm0zdTg6IFRB RyA9IEdFTgordGVzdHMvZGF0YS9obHNfZXZlbnRfcGxheWxpc3QubTN1ODogZmZtcGVnJChQUk9H U1NVRikkKEVYRVNVRikgfCB0ZXN0cy9kYXRhCisJJChNKSQoVEFSR0VUX0VYRUMpICQoVEFSR0VU X1BBVEgpLyQ8IC1ub3N0ZGluIFwKKwktZiBsYXZmaSAtaSAiYWV2YWxzcmM9Y29zKDIqUEkqdCkq c2luKDIqUEkqKDQ0MCs0KnQpKnQpOmQ9MTAiIC1mIGhscyBcCisJLWhsc190aW1lIDMgLWhsc19s aXN0X3NpemUgNSAtaGxzX3BsYXlsaXN0X3R5cGUgZXZlbnQgXAorCS1jb2RlYzphIG1wMmZpeGVk IFwKKwktaGxzX3NlZ21lbnRfZmlsZW5hbWUgIiQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxz X2V2ZW50X3BsYXlsaXN0XyVkLnRzIiBcCisJJChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9obHNf ZXZlbnRfcGxheWxpc3QubTN1OCAyPi9kZXYvbnVsbAorCitGQVRFX0hMU0VOQ19FWFRSQS0kKGNh bGwgRklMVEVSREVNREVDRU5DTVVYLCBBRVZBTFNSQyBBUkVTQU1QTEUsIEhMUyBNUEVHVFMsIE1Q MiBQQ01fRjY0TEUsIE1QMkZJWEVELCBITFMgTVBFR1RTLCBMQVZGSV9JTkRFVikgKz0gZmF0ZS1o bHMtZXZlbnQtcGxheWxpc3QKK2ZhdGUtaGxzLWV2ZW50LXBsYXlsaXN0OiB0ZXN0cy9kYXRhL2hs c19ldmVudF9wbGF5bGlzdC5tM3U4CitmYXRlLWhscy1ldmVudC1wbGF5bGlzdDogQ01EID0gZnJh bWVjcmMgLWF1dG9fY29udmVyc2lvbl9maWx0ZXJzIC1mbGFncyArYml0ZXhhY3QgXAorCS1pICQo VEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX2V2ZW50X3BsYXlsaXN0Lm0zdTggLXZmIHNldHB0 cz1OKjIzCisKKyMgVk9EIHBsYXlsaXN0IHR5cGU6IGV4ZXJjaXNlcyBobHMtPnBsX3R5cGUgPT0g UExBWUxJU1RfVFlQRV9WT0QsIHdyaXRlcworIyAjRVhULVgtUExBWUxJU1QtVFlQRTpWT0Qgb25j ZSBvbmx5IGF0IHRoZSB2ZXJ5IGVuZC4KK3Rlc3RzL2RhdGEvaGxzX3ZvZC5tM3U4OiBUQUcgPSBH RU4KK3Rlc3RzL2RhdGEvaGxzX3ZvZC5tM3U4OiBmZm1wZWckKFBST0dTU1VGKSQoRVhFU1VGKSB8 IHRlc3RzL2RhdGEKKwkkKE0pJChUQVJHRVRfRVhFQykgJChUQVJHRVRfUEFUSCkvJDwgLW5vc3Rk aW4gXAorCS1mIGxhdmZpIC1pICJhZXZhbHNyYz1jb3MoMipQSSp0KSpzaW4oMipQSSooNDQwKzQq dCkqdCk6ZD0xMCIgLWYgaGxzIFwKKwktaGxzX3RpbWUgMyAtaGxzX2xpc3Rfc2l6ZSAwIC1obHNf cGxheWxpc3RfdHlwZSB2b2QgXAorCS1jb2RlYzphIG1wMmZpeGVkIFwKKwktaGxzX3NlZ21lbnRf ZmlsZW5hbWUgIiQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX3ZvZF8lZC50cyIgXAorCSQo VEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX3ZvZC5tM3U4IDI+L2Rldi9udWxsCisKK0ZBVEVf SExTRU5DX0VYVFJBLSQoY2FsbCBGSUxURVJERU1ERUNFTkNNVVgsIEFFVkFMU1JDIEFSRVNBTVBM RSwgSExTIE1QRUdUUywgTVAyIFBDTV9GNjRMRSwgTVAyRklYRUQsIEhMUyBNUEVHVFMsIExBVkZJ X0lOREVWKSArPSBmYXRlLWhscy12b2QKK2ZhdGUtaGxzLXZvZDogdGVzdHMvZGF0YS9obHNfdm9k Lm0zdTgKK2ZhdGUtaGxzLXZvZDogQ01EID0gZnJhbWVjcmMgLWF1dG9fY29udmVyc2lvbl9maWx0 ZXJzIC1mbGFncyArYml0ZXhhY3QgXAorCS1pICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxz X3ZvZC5tM3U4IC12ZiBzZXRwdHM9TioyMworCisjIGRlbGV0ZV9zZWdtZW50cyBmbGFnOiBleGVy Y2lzZXMgaGxzX2RlbGV0ZV9vbGRfc2VnbWVudHMoKSB3aGljaCBpcyBjYWxsZWQKKyMgZnJvbSBo bHNfYXBwZW5kX3NlZ21lbnQoKSBldmVyeSB0aW1lIGhsc19saXN0X3NpemUgaXMgZXhjZWVkZWQu Cit0ZXN0cy9kYXRhL2hsc19kZWxldGVfc2Vncy5tM3U4OiBUQUcgPSBHRU4KK3Rlc3RzL2RhdGEv aGxzX2RlbGV0ZV9zZWdzLm0zdTg6IGZmbXBlZyQoUFJPR1NTVUYpJChFWEVTVUYpIHwgdGVzdHMv ZGF0YQorCSQoTSkkKFRBUkdFVF9FWEVDKSAkKFRBUkdFVF9QQVRIKS8kPCAtbm9zdGRpbiBcCisJ LWYgbGF2ZmkgLWkgImFldmFsc3JjPWNvcygyKlBJKnQpKnNpbigyKlBJKig0NDArNCp0KSp0KTpk PTIwIiAtZiBobHMgXAorCS1obHNfdGltZSAzIC1obHNfbGlzdF9zaXplIDMgLWhsc19mbGFncyBk ZWxldGVfc2VnbWVudHMgXAorCS1jb2RlYzphIG1wMmZpeGVkIFwKKwktaGxzX3NlZ21lbnRfZmls ZW5hbWUgIiQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX2RlbGV0ZV9zZWdzXyVkLnRzIiBc CisJJChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9obHNfZGVsZXRlX3NlZ3MubTN1OCAyPi9kZXYv bnVsbAorCitGQVRFX0hMU0VOQ19FWFRSQS0kKGNhbGwgRklMVEVSREVNREVDRU5DTVVYLCBBRVZB TFNSQyBBUkVTQU1QTEUsIEhMUyBNUEVHVFMsIE1QMiBQQ01fRjY0TEUsIE1QMkZJWEVELCBITFMg TVBFR1RTLCBMQVZGSV9JTkRFVikgKz0gZmF0ZS1obHMtZGVsZXRlLXNlZ3MKK2ZhdGUtaGxzLWRl bGV0ZS1zZWdzOiB0ZXN0cy9kYXRhL2hsc19kZWxldGVfc2Vncy5tM3U4CitmYXRlLWhscy1kZWxl dGUtc2VnczogQ01EID0gZnJhbWVjcmMgLWF1dG9fY29udmVyc2lvbl9maWx0ZXJzIC1mbGFncyAr Yml0ZXhhY3QgXAorCS1pICQoVEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX2RlbGV0ZV9zZWdz Lm0zdTggLXZmIHNldHB0cz1OKjIzCisKKyMgc3RhcnRfbnVtYmVyIG9wdGlvbjogZXhlcmNpc2Vz IHRoZSBobHMtPnN0YXJ0X3NlcXVlbmNlIHBhdGggaW4gaGxzX2luaXQoKQorIyBhbmQgdGhlIHNl cXVlbmNlIGluaXRpYWxpc2F0aW9uIGluIGVhY2ggVmFyaWFudFN0cmVhbS4KK3Rlc3RzL2RhdGEv aGxzX3N0YXJ0X251bWJlci5tM3U4OiBUQUcgPSBHRU4KK3Rlc3RzL2RhdGEvaGxzX3N0YXJ0X251 bWJlci5tM3U4OiBmZm1wZWckKFBST0dTU1VGKSQoRVhFU1VGKSB8IHRlc3RzL2RhdGEKKwkkKE0p JChUQVJHRVRfRVhFQykgJChUQVJHRVRfUEFUSCkvJDwgLW5vc3RkaW4gXAorCS1mIGxhdmZpIC1p ICJhZXZhbHNyYz1jb3MoMipQSSp0KSpzaW4oMipQSSooNDQwKzQqdCkqdCk6ZD0xMCIgLWYgaGxz IFwKKwktaGxzX3RpbWUgMyAtaGxzX2xpc3Rfc2l6ZSAwIC1zdGFydF9udW1iZXIgNSBcCisJLWNv ZGVjOmEgbXAyZml4ZWQgXAorCS1obHNfc2VnbWVudF9maWxlbmFtZSAiJChUQVJHRVRfUEFUSCkv dGVzdHMvZGF0YS9obHNfc3RhcnRfbnVtYmVyXyVkLnRzIiBcCisJJChUQVJHRVRfUEFUSCkvdGVz dHMvZGF0YS9obHNfc3RhcnRfbnVtYmVyLm0zdTggMj4vZGV2L251bGwKKworRkFURV9ITFNFTkNf RVhUUkEtJChjYWxsIEZJTFRFUkRFTURFQ0VOQ01VWCwgQUVWQUxTUkMgQVJFU0FNUExFLCBITFMg TVBFR1RTLCBNUDIgUENNX0Y2NExFLCBNUDJGSVhFRCwgSExTIE1QRUdUUywgTEFWRklfSU5ERVYp ICs9IGZhdGUtaGxzLXN0YXJ0LW51bWJlcgorZmF0ZS1obHMtc3RhcnQtbnVtYmVyOiB0ZXN0cy9k YXRhL2hsc19zdGFydF9udW1iZXIubTN1OAorZmF0ZS1obHMtc3RhcnQtbnVtYmVyOiBDTUQgPSBm cmFtZWNyYyAtYXV0b19jb252ZXJzaW9uX2ZpbHRlcnMgLWZsYWdzICtiaXRleGFjdCBcCisJLWkg JChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9obHNfc3RhcnRfbnVtYmVyLm0zdTggLXZmIHNldHB0 cz1OKjIzCisKKyMgdGVtcF9maWxlIGZsYWc6IGV4ZXJjaXNlcyB1c2VfdGVtcF9maWxlIHBhdGgg aW4gaGxzX3N0YXJ0KCkgLyBobHNfd3JpdGVfdHJhaWxlcigpLAorIyB3cml0aW5nIHRvIGEgLnRt cCBmaWxlIGZpcnN0IGFuZCB0aGVuIHJlbmFtaW5nIHZpYSBobHNfcmVuYW1lX3RlbXBfZmlsZSgp LgordGVzdHMvZGF0YS9obHNfdGVtcF9maWxlLm0zdTg6IFRBRyA9IEdFTgordGVzdHMvZGF0YS9o bHNfdGVtcF9maWxlLm0zdTg6IGZmbXBlZyQoUFJPR1NTVUYpJChFWEVTVUYpIHwgdGVzdHMvZGF0 YQorCSQoTSkkKFRBUkdFVF9FWEVDKSAkKFRBUkdFVF9QQVRIKS8kPCAtbm9zdGRpbiBcCisJLWYg bGF2ZmkgLWkgImFldmFsc3JjPWNvcygyKlBJKnQpKnNpbigyKlBJKig0NDArNCp0KSp0KTpkPTEw IiAtZiBobHMgXAorCS1obHNfdGltZSA0IC1obHNfbGlzdF9zaXplIDAgLWhsc19mbGFncyB0ZW1w X2ZpbGUgXAorCS1jb2RlYzphIG1wMmZpeGVkIFwKKwktaGxzX3NlZ21lbnRfZmlsZW5hbWUgIiQo VEFSR0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX3RlbXBfZmlsZV8lZC50cyIgXAorCSQoVEFSR0VU X1BBVEgpL3Rlc3RzL2RhdGEvaGxzX3RlbXBfZmlsZS5tM3U4IDI+L2Rldi9udWxsCisKK0ZBVEVf SExTRU5DX0VYVFJBLSQoY2FsbCBGSUxURVJERU1ERUNFTkNNVVgsIEFFVkFMU1JDIEFSRVNBTVBM RSwgSExTIE1QRUdUUywgTVAyIFBDTV9GNjRMRSwgTVAyRklYRUQsIEhMUyBNUEVHVFMsIExBVkZJ X0lOREVWKSArPSBmYXRlLWhscy10ZW1wLWZpbGUKK2ZhdGUtaGxzLXRlbXAtZmlsZTogdGVzdHMv ZGF0YS9obHNfdGVtcF9maWxlLm0zdTgKK2ZhdGUtaGxzLXRlbXAtZmlsZTogQ01EID0gZnJhbWVj cmMgLWF1dG9fY29udmVyc2lvbl9maWx0ZXJzIC1mbGFncyArYml0ZXhhY3QgXAorCS1pICQoVEFS R0VUX1BBVEgpL3Rlc3RzL2RhdGEvaGxzX3RlbXBfZmlsZS5tM3U4IC12ZiBzZXRwdHM9TioyMwor CisjIGJhc2V1cmwgb3B0aW9uOiBleGVyY2lzZXMgaGxzLT5iYXNldXJsIHByZXBlbmRpbmcgaW4g aGxzX3dpbmRvdygpIHZpYQorIyBmZl9obHNfd3JpdGVfZmlsZV9lbnRyeShobHMtPmJhc2V1cmws IC4uLikuCit0ZXN0cy9kYXRhL2hsc19iYXNldXJsLm0zdTg6IFRBRyA9IEdFTgordGVzdHMvZGF0 YS9obHNfYmFzZXVybC5tM3U4OiBmZm1wZWckKFBST0dTU1VGKSQoRVhFU1VGKSB8IHRlc3RzL2Rh dGEKKwkkKE0pJChUQVJHRVRfRVhFQykgJChUQVJHRVRfUEFUSCkvJDwgLW5vc3RkaW4gXAorCS1m IGxhdmZpIC1pICJhZXZhbHNyYz1jb3MoMipQSSp0KSpzaW4oMipQSSooNDQwKzQqdCkqdCk6ZD05 IiAtZiBobHMgXAorCS1obHNfdGltZSAzIC1obHNfbGlzdF9zaXplIDAgXAorCS1obHNfYmFzZV91 cmwgImh0dHA6Ly9leGFtcGxlLmNvbS9zZWdtZW50cy8iIFwKKwktY29kZWM6YSBtcDJmaXhlZCBc CisJLWhsc19zZWdtZW50X2ZpbGVuYW1lICIkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19i YXNldXJsXyVkLnRzIiBcCisJJChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9obHNfYmFzZXVybC5t M3U4IDI+L2Rldi9udWxsCisKK0ZBVEVfSExTRU5DX0VYVFJBLSQoY2FsbCBGSUxURVJERU1ERUNF TkNNVVgsIEFFVkFMU1JDIEFSRVNBTVBMRSwgSExTIE1QRUdUUywgTVAyIFBDTV9GNjRMRSwgTVAy RklYRUQsIEhMUyBNUEVHVFMsIExBVkZJX0lOREVWKSArPSBmYXRlLWhscy1iYXNldXJsCitmYXRl LWhscy1iYXNldXJsOiB0ZXN0cy9kYXRhL2hsc19iYXNldXJsLm0zdTgKK2ZhdGUtaGxzLWJhc2V1 cmw6IENNRCA9IGZyYW1lY3JjIC1hdXRvX2NvbnZlcnNpb25fZmlsdGVycyAtZmxhZ3MgK2JpdGV4 YWN0IFwKKwktaSAkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19iYXNldXJsLm0zdTggLXZm IHNldHB0cz1OKjIzCisKKyMgYWxsb3djYWNoZT0wOiBleGVyY2lzZXMgaGxzLT5hbGxvd2NhY2hl ID09IDAgYnJhbmNoIHdoZXJlCisjIGZmX2hsc193cml0ZV9wbGF5bGlzdF9oZWFkZXIgd3JpdGVz ICNFWFQtWC1BTExPVy1DQUNIRTpOTy4KK3Rlc3RzL2RhdGEvaGxzX2FsbG93X2NhY2hlLm0zdTg6 IFRBRyA9IEdFTgordGVzdHMvZGF0YS9obHNfYWxsb3dfY2FjaGUubTN1ODogZmZtcGVnJChQUk9H U1NVRikkKEVYRVNVRikgfCB0ZXN0cy9kYXRhCisJJChNKSQoVEFSR0VUX0VYRUMpICQoVEFSR0VU X1BBVEgpLyQ8IC1ub3N0ZGluIFwKKwktZiBsYXZmaSAtaSAiYWV2YWxzcmM9Y29zKDIqUEkqdCkq c2luKDIqUEkqKDQ0MCs0KnQpKnQpOmQ9OSIgLWYgaGxzIFwKKwktaGxzX3RpbWUgMyAtaGxzX2xp c3Rfc2l6ZSAwIC1obHNfYWxsb3dfY2FjaGUgMCBcCisJLWNvZGVjOmEgbXAyZml4ZWQgXAorCS1o bHNfc2VnbWVudF9maWxlbmFtZSAiJChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9obHNfYWxsb3df Y2FjaGVfJWQudHMiIFwKKwkkKFRBUkdFVF9QQVRIKS90ZXN0cy9kYXRhL2hsc19hbGxvd19jYWNo ZS5tM3U4IDI+L2Rldi9udWxsCisKK0ZBVEVfSExTRU5DX0VYVFJBLSQoY2FsbCBGSUxURVJERU1E RUNFTkNNVVgsIEFFVkFMU1JDIEFSRVNBTVBMRSwgSExTIE1QRUdUUywgTVAyIFBDTV9GNjRMRSwg TVAyRklYRUQsIEhMUyBNUEVHVFMsIExBVkZJX0lOREVWKSArPSBmYXRlLWhscy1hbGxvdy1jYWNo ZQorZmF0ZS1obHMtYWxsb3ctY2FjaGU6IHRlc3RzL2RhdGEvaGxzX2FsbG93X2NhY2hlLm0zdTgK K2ZhdGUtaGxzLWFsbG93LWNhY2hlOiBDTUQgPSBmcmFtZWNyYyAtYXV0b19jb252ZXJzaW9uX2Zp bHRlcnMgLWZsYWdzICtiaXRleGFjdCBcCisJLWkgJChUQVJHRVRfUEFUSCkvdGVzdHMvZGF0YS9o bHNfYWxsb3dfY2FjaGUubTN1OCAtdmYgc2V0cHRzPU4qMjMKKworRkFURV9TQU1QTEVTX0ZGTVBF RyArPSAkKEZBVEVfSExTRU5DX0VYVFJBLXllcykKK2ZhdGUtaGxzZW5jOiAkKEZBVEVfSExTRU5D X0VYVFJBLXllcykKZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvbGliYXZjb2RlYy5tYWsgYi90ZXN0 cy9mYXRlL2xpYmF2Y29kZWMubWFrCmluZGV4IGUyZDYxNmUzMDcuLjNkOWIyZTQ0YjggMTAwNjQ0 Ci0tLSBhL3Rlc3RzL2ZhdGUvbGliYXZjb2RlYy5tYWsKKysrIGIvdGVzdHMvZmF0ZS9saWJhdmNv ZGVjLm1hawpAQCAtMTE0LDUgKzExNCwxMCBAQCBGQVRFX0xJQkFWQ09ERUMteWVzICs9IGZhdGUt bGliYXZjb2RlYy1odG1sc3VidGl0bGVzCiBmYXRlLWxpYmF2Y29kZWMtaHRtbHN1YnRpdGxlczog bGliYXZjb2RlYy90ZXN0cy9odG1sc3VidGl0bGVzJChFWEVTVUYpCiBmYXRlLWxpYmF2Y29kZWMt aHRtbHN1YnRpdGxlczogQ01EID0gcnVuIGxpYmF2Y29kZWMvdGVzdHMvaHRtbHN1YnRpdGxlcyQo RVhFU1VGKQogCitGQVRFX0xJQkFWQ09ERUMtJChDT05GSUdfQ0JTX0gyNjQpICs9IGZhdGUtbGli YXZjb2RlYy1jYnMtc2VpCitmYXRlLWxpYmF2Y29kZWMtY2JzLXNlaTogbGliYXZjb2RlYy90ZXN0 cy9jYnNfc2VpJChFWEVTVUYpCitmYXRlLWxpYmF2Y29kZWMtY2JzLXNlaTogQ01EID0gcnVuIGxp YmF2Y29kZWMvdGVzdHMvY2JzX3NlaSQoRVhFU1VGKQorZmF0ZS1saWJhdmNvZGVjLWNicy1zZWk6 IENNUCA9IG51bGwKKwogRkFURS0kKENPTkZJR19BVkNPREVDKSArPSAkKEZBVEVfTElCQVZDT0RF Qy15ZXMpCiBmYXRlLWxpYmF2Y29kZWM6ICQoRkFURV9MSUJBVkNPREVDLXllcykKZGlmZiAtLWdp dCBhL3Rlc3RzL2ZhdGUvbGliYXZ1dGlsLm1hayBiL3Rlc3RzL2ZhdGUvbGliYXZ1dGlsLm1hawpp bmRleCA2YmYwM2IyNDM4Li4xYWM4ZjAwOGM2IDEwMDY0NAotLS0gYS90ZXN0cy9mYXRlL2xpYmF2 dXRpbC5tYWsKKysrIGIvdGVzdHMvZmF0ZS9saWJhdnV0aWwubWFrCkBAIC0xNzksNiArMTc5LDEx IEBAIGZhdGUtdXVpZDogbGliYXZ1dGlsL3Rlc3RzL3V1aWQkKEVYRVNVRikKIGZhdGUtdXVpZDog Q01EID0gcnVuIGxpYmF2dXRpbC90ZXN0cy91dWlkJChFWEVTVUYpCiBmYXRlLXV1aWQ6IENNUCA9 IG51bGwKIAorRkFURV9MSUJBVlVUSUwgKz0gZmF0ZS10aW1lY29kZQorZmF0ZS10aW1lY29kZTog bGliYXZ1dGlsL3Rlc3RzL3RpbWVjb2RlJChFWEVTVUYpCitmYXRlLXRpbWVjb2RlOiBDTUQgPSBy dW4gbGliYXZ1dGlsL3Rlc3RzL3RpbWVjb2RlJChFWEVTVUYpCitmYXRlLXRpbWVjb2RlOiBDTVAg PSBudWxsCisKIEZBVEVfTElCQVZVVElMICs9ICQoRkFURV9MSUJBVlVUSUwteWVzKQogRkFURS0k KENPTkZJR19BVlVUSUwpICs9ICQoRkFURV9MSUJBVlVUSUwpCiBmYXRlLWxpYmF2dXRpbDogJChG QVRFX0xJQkFWVVRJTCkKLS0gCjIuNTIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAtLSBmZm1wZWctZGV2 ZWxAZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGZmbXBlZy1kZXZl bC1sZWF2ZUBmZm1wZWcub3JnCg==