From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 219701B971 for ; Thu, 10 May 2018 10:10:59 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2018 01:10:59 -0700 Message-Id: <0590c7$1k5bc9@orsmga001.jf.intel.com> Date: 10 May 2018 01:10:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,384,1520924400"; d="scan'208";a="54701456" Received: from unknown (HELO [127.0.1.1]) ([10.240.176.154]) by orsmga001.jf.intel.com with ESMTP; 10 May 2018 01:10:57 -0700 Content-Type: multipart/alternative; boundary="===============8396481941870618257==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org Cc: xinfengx.zhao@intel.com, zhaoyan.chen@intel.com, peipeix.lu@intel.com Subject: [dpdk-test-report] |FAILURE| pw37399[dpdk-dev, v2, 09/15] ethdev: add encap level to RSS flow API action X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 May 2018 08:11:00 -0000 --===============8396481941870618257== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKaHR0cDov L2RwZGsub3JnL3BhdGNoLzM3Mzk5CgpfYXBwbHkgaXNzdWVzXwoKU3VibWl0dGVyOiBBZHJpZW4g TWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT4KRGF0ZTogMjAxOC0wNC0wNiAx MzoyNTo0NQpEUERLIGdpdCBiYXNlbGluZToKCVJlcG86ZHBkay1tYXN0ZXIsIENvbW1pdElEOiA4 ZWE0MTQzODgzMmEzNjBhZWQyYjdiYTQ5ZmI3NWUzMTBhMmZmMWRjCglSZXBvOmRwZGstbmV4dC1l dmVudGRldiwgQ29tbWl0SUQ6IDY0MGIwZDFlNTEwZTExMTY5NGMyNTE0NTQ2NmYzNzg2NzQ1Mzgz N2YKCVJlcG86ZHBkay1uZXh0LW5ldCwgQ29tbWl0SUQ6IDc3NGMxODkyYzQzNGRiYTA5OTk4Y2Nj NzZiOTU2ZmViNzIyMjQ1NzEKCVJlcG86ZHBkay1uZXh0LWNyeXB0bywgQ29tbWl0SUQ6IDcyOGNh OWIwZDVhYmVhODJjZDAxZGVlNjY0NTQ1NmE5ZDU2MjE1ZjcKCVJlcG86ZHBkay1uZXh0LXZpcnRp bywgQ29tbWl0SUQ6IDAzN2MwOTk2YmM5MjczNDJmMTU3NDI2NzM5ZTBjYjYzZjJkYjg2ODkKCipS ZXBvOiBkcGRrLW1hc3RlcgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglBQ1RJT05fQ09VTlQsCglBQ1RJT05f UlNTLAoJQUNUSU9OX1JTU19GVU5DLAoJQUNUSU9OX1JTU19GVU5DX0RFRkFVTFQsCglBQ1RJT05f UlNTX0ZVTkNfVE9FUExJVFosCglBQ1RJT05fUlNTX0ZVTkNfU0lNUExFX1hPUiwKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzoxNjcKZXJyb3I6IGFwcC90 ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ CWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7 CgkJCQkuZnVuYyA9IHNyYy5yc3MtPmZ1bmMsCgkJCQkudHlwZXMgPSBzcmMucnNzLT50eXBlcywK CQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0gPSBzcmMucnNz LT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6 MTA4NQplcnJvcjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpvdmVybGFwcyBgYGhhc2guZmRpci5sb2BgLiBTaW5jZSBg QWN0aW9uOiBNQVJLYF8gc2V0cyB0aGUgYGBoYXNoLmZkaXIuaGlgYApmaWVsZCBvbmx5LCBib3Ro IGNhbiBiZSByZXF1ZXN0ZWQgc2ltdWx0YW5lb3VzbHkuCgouLiBfdGFibGVfcnRlX2Zsb3dfYWN0 aW9uX3JzczoKCi4uIHRhYmxlOjogUlNTCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVz L3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OjEzMDUKZXJyb3I6IGRvYy9ndWlkZXMvcHJvZ19ndWlk ZS9ydGVfZmxvdy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9n dWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CiAgLSBgYGZ1bmMge2hhc2ggZnVuY3Rpb259YGA6IFJTUyBoYXNoIGZ1bmN0 aW9uIHRvIGFwcGx5LCBhbGxvd2VkIHRva2VucyBhcmUKICAgIHRoZSBzYW1lIGFzIGBzZXRfaGFz aF9nbG9iYWxfY29uZmlnYF8uCgogIC0gYGB0eXBlcyBbe1JTUyBoYXNoIHR5cGV9IFsuLi5dXSBl bmRgYDogUlNTIGhhc2ggdHlwZXMsIGFsbG93ZWQgdG9rZW5zCiAgICBhcmUgdGhlIHNhbWUgYXMg YHNldF9oYXNoX2lucHV0X3NldGBfLCBhbiBlbXB0eSBsaXN0IG1lYW5zIG5vbmUgKDApLgoKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5j cy5yc3Q6MzQwMQplcnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNz LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEw MDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRl X2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9B Q1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBz dXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9ESU0o cnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVO T1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOjEzMTQKZXJyb3I6IGRyaXZlcnMvbmV0 L2UxMDAwL2lnYl9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9y c3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVu ID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjI5MDYKZXJyb3I6IGRyaXZl cnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX3Jzcyl7CgkJLmZ1bmMgPSBpbi0+ZnVuYywKCQkudHlwZXMgPSBpbi0+dHlwZXMsCgkJ LmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4tPnF1ZXVlX251bSwKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTk3NQpl cnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9y LCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoJCQkgIm5vbi1kZWZh dWx0IFJTUyBoYXNoIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIpOwoJaWYgKHJzcy0+a2V5 X2xlbiAmJiByc3MtPmtleV9sZW4gPiBSVEVfRElNKHJzc19jb25maWctPmtleSkpCgkJcmV0dXJu IHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZ UEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0 MGVfZmxvdy5jOjQzMzAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zs b3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJy b3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFj dCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQi KTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9ESU0ocnNzX2NvbmYt PmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJU RV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6Mjc4MwplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJ cmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3Mp ewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0g aW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTY4MwplcnJvcjogZHJpdmVy cy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJCQkJCSIgaXMgVG9lcGxpdHoiOwoJCQkJZ290byBleGl0X2FjdGlvbl9ub3Rfc3Vw cG9ydGVkOwoJCQl9CgkJCXJ0ZV9lcnJubyA9IDA7CgkJCWZpZWxkcyA9IG1seDRfY29udl9yc3Nf dHlwZXMocHJpdiwgcnNzLT50eXBlcyk7CgkJCWlmIChmaWVsZHMgPT0gKHVpbnQ2NF90KS0xICYm IHJ0ZV9lcnJubykgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0 X2Zsb3cuYzo3OTYKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJCSAgICIgZnVuY3Rpb24gaXMgVG9l cGxpdHoiKTsKCQkJCXJldHVybiAtcnRlX2Vycm5vOwoJCQl9CgkJCWlmIChyc3MtPnR5cGVzICYg TUxYNV9SU1NfSEZfTUFTSykgewoJCQkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUws CgkJCQkJCSAgIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzo2NDQKZXJyb3I6IGRyaXZlcnMvbmV0L21s eDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYg KHJzcy0+ZnVuYykKCQlyZXR1cm4gLUVJTlZBTDsKCglpZiAoKHJzcy0+dHlwZXMgJiB+U0ZDX1JT U19PRkZMT0FEUykgIT0gMCkKCQlyZXR1cm4gLUVJTlZBTDsKCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzoxMjY0CmVycm9yOiBkcml2ZXJzL25ldC9zZmMv c2ZjX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvdGFwL3RhcF9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3Qg cnNzX2tleSByc3NfZW50cnkgPSB7IC5oYXNoX2ZpZWxkcyA9IDAsCgkJCQkgICAgIC5rZXlfc2l6 ZSA9IDAgfTsKCgkvKiBDaGVjayBzdXBwb3J0ZWQgaGFzaCBmdW5jdGlvbnMgKi8KCWlmIChyc3Mt PmZ1bmMpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJU RV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsIE5VTEwsCgkJCSAibm9uLWRlZmF1bHQgUlNT IGhhc2ggZnVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIik7CgoJLyogR2V0IGEgbmV3IG1hcCBr ZXkgZm9yIGEgbmV3IFJTUyBydWxlICovCgllcnIgPSBicGZfcnNzX2tleShLRVlfQ01EX0dFVCwg JmZsb3ctPmtleV9pZHgpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdGFwL3Rh cF9mbG93LmM6MjA1NQplcnJvcjogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYy4u LgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgplcnJv cjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CipSZXBvOiBkcGRrLW5leHQtZXZlbnRkZXYKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2Nt ZGxpbmVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJQUNUSU9OX0NPVU5U LAoJQUNUSU9OX1JTUywKCUFDVElPTl9SU1NfRlVOQywKCUFDVElPTl9SU1NfRlVOQ19ERUZBVUxU LAoJQUNUSU9OX1JTU19GVU5DX1RPRVBMSVRaLAoJQUNUSU9OX1JTU19GVU5DX1NJTVBMRV9YT1Is CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6MTY3CmVy cm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQlpZiAoZHN0LnJzcykKCQkJKmRzdC5yc3MgPSAoc3RydWN0IHJ0ZV9mbG93X2Fj dGlvbl9yc3MpewoJCQkJLmZ1bmMgPSBzcmMucnNzLT5mdW5jLAoJCQkJLnR5cGVzID0gc3JjLnJz cy0+dHlwZXMsCgkJCQkua2V5X2xlbiA9IHNyYy5yc3MtPmtleV9sZW4sCgkJCQkucXVldWVfbnVt ID0gc3JjLnJzcy0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1k L2NvbmZpZy5jOjEwODUKZXJyb3I6IGFwcC90ZXN0LXBtZC9jb25maWcuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJz dC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKb3ZlcmxhcHMgYGBoYXNoLmZkaXIubG9g YC4gU2luY2UgYEFjdGlvbjogTUFSS2BfIHNldHMgdGhlIGBgaGFzaC5mZGlyLmhpYGAKZmllbGQg b25seSwgYm90aCBjYW4gYmUgcmVxdWVzdGVkIHNpbXVsdGFuZW91c2x5LgoKLi4gX3RhYmxlX3J0 ZV9mbG93X2FjdGlvbl9yc3M6CgouLiB0YWJsZTo6IFJTUwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDoxMzA1CmVycm9yOiBkb2MvZ3VpZGVz L3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0Li4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogIC0gYGBmdW5jIHtoYXNoIGZ1bmN0aW9ufWBgOiBSU1Mg aGFzaCBmdW5jdGlvbiB0byBhcHBseSwgYWxsb3dlZCB0b2tlbnMgYXJlCiAgICB0aGUgc2FtZSBh cyBgc2V0X2hhc2hfZ2xvYmFsX2NvbmZpZ2BfLgoKICAtIGBgdHlwZXMgW3tSU1MgaGFzaCB0eXBl fSBbLi4uXV0gZW5kYGA6IFJTUyBoYXNoIHR5cGVzLCBhbGxvd2VkIHRva2VucwogICAgYXJlIHRo ZSBzYW1lIGFzIGBzZXRfaGFzaF9pbnB1dF9zZXRgXywgYW4gZW1wdHkgbGlzdCBtZWFucyBub25l ICgwKS4KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rl c3RwbWRfZnVuY3MucnN0OjM0MDEKZXJyb3I6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVz dHBtZF9mdW5jcy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2UxMDAwL2lnYl9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJ cmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VS Uk9SX1RZUEVfQUNUSU9OLCBhY3QsCgkJCSAibm9uLWRlZmF1bHQgUlNTIGhhc2ggZnVuY3Rpb25z IGFyZSBub3Qgc3VwcG9ydGVkIik7CglpZiAocnNzLT5rZXlfbGVuICYmIHJzcy0+a2V5X2xlbiAh PSBSVEVfRElNKHJzc19jb25mLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJ KGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzoxMzE0CmVycm9yOiBk cml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5jb25mID0gKHN0cnVjdCBydGVfZmxv d19hY3Rpb25fcnNzKXsKCQkuZnVuYyA9IGluLT5mdW5jLAoJCS50eXBlcyA9IGluLT50eXBlcywK CQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0gPSBpbi0+cXVldWVfbnVtLAoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYzoyOTA2CmVy cm9yOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0 IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4t PnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1 ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTE5NzUKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0 CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCQkJ ICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCWlm IChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuID4gUlRFX0RJTShyc3NfY29uZmlnLT5rZXkp KQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxP V19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2Zsb3cuYzo0MzMwCmVycm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxv dy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVf QUNUSU9OLCBhY3QsCgkJCSAibm9uLWRlZmF1bHQgUlNTIGhhc2ggZnVuY3Rpb25zIGFyZSBub3Qg c3VwcG9ydGVkIik7CglpZiAocnNzLT5rZXlfbGVuICYmIHJzcy0+a2V5X2xlbiAhPSBSVEVfRElN KHJzc19jb25mLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBF Tk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jOjI3ODMKZXJyb3I6IGRyaXZlcnMv bmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5jb25mID0gKHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fcnNzKXsKCQkuZnVuYyA9IGluLT5mdW5jLAoJCS50eXBlcyA9IGluLT50eXBlcywKCQku a2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0gPSBpbi0+cXVldWVfbnVtLAoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOjU2ODMKZXJy b3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkiIGlzIFRvZXBsaXR6IjsKCQkJCWdvdG8gZXhpdF9hY3Rp b25fbm90X3N1cHBvcnRlZDsKCQkJfQoJCQlydGVfZXJybm8gPSAwOwoJCQlmaWVsZHMgPSBtbHg0 X2NvbnZfcnNzX3R5cGVzKHByaXYsIHJzcy0+dHlwZXMpOwoJCQlpZiAoZmllbGRzID09ICh1aW50 NjRfdCktMSAmJiBydGVfZXJybm8pIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0 L21seDQvbWx4NF9mbG93LmM6Nzk2CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5j OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21s eDVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCQkgICAiIGZ1bmN0 aW9uIGlzIFRvZXBsaXR6Iik7CgkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsKCQkJfQoJCQlpZiAocnNz LT50eXBlcyAmIE1MWDVfUlNTX0hGX01BU0spIHsKCQkJCXJ0ZV9mbG93X2Vycm9yX3NldChlcnJv ciwgRUlOVkFMLAoJCQkJCQkgICBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6NjQ0CmVycm9yOiBkcml2 ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCWlmIChyc3MtPmZ1bmMpCgkJcmV0dXJuIC1FSU5WQUw7CgoJaWYgKChyc3MtPnR5cGVz ICYgflNGQ19SU1NfT0ZGTE9BRFMpICE9IDApCgkJcmV0dXJuIC1FSU5WQUw7CgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmM6MTI2NAplcnJvcjogZHJpdmVy cy9uZXQvc2ZjL3NmY19mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJc3RydWN0IHJzc19rZXkgcnNzX2VudHJ5ID0geyAuaGFzaF9maWVsZHMgPSAwLAoJCQkJICAg ICAua2V5X3NpemUgPSAwIH07CgoJLyogQ2hlY2sgc3VwcG9ydGVkIGhhc2ggZnVuY3Rpb25zICov CglpZiAocnNzLT5mdW5jKQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBF Tk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELCBOVUxMLAoJCQkgIm5vbi1k ZWZhdWx0IFJTUyBoYXNoIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIpOwoKCS8qIEdldCBh IG5ldyBtYXAga2V5IGZvciBhIG5ldyBSU1MgcnVsZSAqLwoJZXJyID0gYnBmX3Jzc19rZXkoS0VZ X0NNRF9HRVQsICZmbG93LT5rZXlfaWR4KTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L3RhcC90YXBfZmxvdy5jOjIwNTUKZXJyb3I6IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5j OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0 ZV9mbG93LmMuLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYzogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93 LmguLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQoqUmVwbzogZHBkay1uZXh0LW5ldApDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1w bWQvY21kbGluZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglBQ1RJT05f Q09VTlQsCglBQ1RJT05fUlNTLAoJQUNUSU9OX1JTU19GVU5DLAoJQUNUSU9OX1JTU19GVU5DX0RF RkFVTFQsCglBQ1RJT05fUlNTX0ZVTkNfVE9FUExJVFosCglBQ1RJT05fUlNTX0ZVTkNfU0lNUExF X1hPUiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzox NjcKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zs b3dfYWN0aW9uX3Jzcyl7CgkJCQkuZnVuYyA9IHNyYy5yc3MtPmZ1bmMsCgkJCQkudHlwZXMgPSBz cmMucnNzLT50eXBlcywKCQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1 ZV9udW0gPSBzcmMucnNzLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVz dC1wbWQvY29uZmlnLmM6MTA4NQplcnJvcjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBk b2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zs b3cucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpvdmVybGFwcyBgYGhhc2guZmRp ci5sb2BgLiBTaW5jZSBgQWN0aW9uOiBNQVJLYF8gc2V0cyB0aGUgYGBoYXNoLmZkaXIuaGlgYApm aWVsZCBvbmx5LCBib3RoIGNhbiBiZSByZXF1ZXN0ZWQgc2ltdWx0YW5lb3VzbHkuCgouLiBfdGFi bGVfcnRlX2Zsb3dfYWN0aW9uX3JzczoKCi4uIHRhYmxlOjogUlNTCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OjEzMDUKZXJyb3I6IGRvYy9n dWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAgLSBgYGZ1bmMge2hhc2ggZnVuY3Rpb259YGA6 IFJTUyBoYXNoIGZ1bmN0aW9uIHRvIGFwcGx5LCBhbGxvd2VkIHRva2VucyBhcmUKICAgIHRoZSBz YW1lIGFzIGBzZXRfaGFzaF9nbG9iYWxfY29uZmlnYF8uCgogIC0gYGB0eXBlcyBbe1JTUyBoYXNo IHR5cGV9IFsuLi5dXSBlbmRgYDogUlNTIGhhc2ggdHlwZXMsIGFsbG93ZWQgdG9rZW5zCiAgICBh cmUgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2lucHV0X3NldGBfLCBhbiBlbXB0eSBsaXN0IG1lYW5z IG5vbmUgKDApLgoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBf dWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzQwMQplcnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91 Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZM T1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5j dGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlf bGVuICE9IFJURV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3Nl dAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOjEzMTQKZXJy b3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5 cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9u dW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjI5 MDYKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFw cGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLmZ1bmMgPSBpbi0+ZnVuYywKCQkudHlwZXMg PSBpbi0+dHlwZXMsCgkJLmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4t PnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTk3NQplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxv dy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiBydGVfZmxvd19lcnJv cl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0 LAoJCQkgIm5vbi1kZWZhdWx0IFJTUyBoYXNoIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIp OwoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gPiBSVEVfRElNKHJzc19jb25maWct PmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJU RV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOjQzMzAKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQw ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1 cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1Jf VFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJU RV9ESU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJy b3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6Mjc4MwplcnJvcjogZHJp dmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9m bG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4tPmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVz LAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0s CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTY4 MwplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCSIgaXMgVG9lcGxpdHoiOwoJCQkJZ290byBleGl0 X2FjdGlvbl9ub3Rfc3VwcG9ydGVkOwoJCQl9CgkJCXJ0ZV9lcnJubyA9IDA7CgkJCWZpZWxkcyA9 IG1seDRfY29udl9yc3NfdHlwZXMocHJpdiwgcnNzLT50eXBlcyk7CgkJCWlmIChmaWVsZHMgPT0g KHVpbnQ2NF90KS0xICYmIHJ0ZV9lcnJubykgewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3OTYKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9m bG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21s eDUvbWx4NV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJCSAgICIg ZnVuY3Rpb24gaXMgVG9lcGxpdHoiKTsKCQkJCXJldHVybiAtcnRlX2Vycm5vOwoJCQl9CgkJCWlm IChyc3MtPnR5cGVzICYgTUxYNV9SU1NfSEZfTUFTSykgewoJCQkJcnRlX2Zsb3dfZXJyb3Jfc2V0 KGVycm9yLCBFSU5WQUwsCgkJCQkJCSAgIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzo2NDQKZXJyb3I6 IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJaWYgKHJzcy0+ZnVuYykKCQlyZXR1cm4gLUVJTlZBTDsKCglpZiAoKHJzcy0+ dHlwZXMgJiB+U0ZDX1JTU19PRkZMT0FEUykgIT0gMCkKCQlyZXR1cm4gLUVJTlZBTDsKCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzoxMjY0CmVycm9yOiBk cml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CglzdHJ1Y3QgcnNzX2tleSByc3NfZW50cnkgPSB7IC5oYXNoX2ZpZWxkcyA9IDAsCgkJ CQkgICAgIC5rZXlfc2l6ZSA9IDAgfTsKCgkvKiBDaGVjayBzdXBwb3J0ZWQgaGFzaCBmdW5jdGlv bnMgKi8KCWlmIChyc3MtPmZ1bmMpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJy b3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsIE5VTEwsCgkJCSAi bm9uLWRlZmF1bHQgUlNTIGhhc2ggZnVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIik7CgoJLyog R2V0IGEgbmV3IG1hcCBrZXkgZm9yIGEgbmV3IFJTUyBydWxlICovCgllcnIgPSBicGZfcnNzX2tl eShLRVlfQ01EX0dFVCwgJmZsb3ctPmtleV9pZHgpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvdGFwL3RhcF9mbG93LmM6MjA1NQplcnJvcjogZHJpdmVycy9uZXQvdGFwL3RhcF9m bG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRo ZXIvcnRlX2Zsb3cuYy4uLgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jOiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRl X2Zsb3cuaC4uLgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBObyBzdWNoIGZp bGUgb3IgZGlyZWN0b3J5CipSZXBvOiBkcGRrLW5leHQtY3J5cHRvCkNoZWNraW5nIHBhdGNoIGFw cC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CUFDVElPTl9DT1VOVCwKCUFDVElPTl9SU1MsCglBQ1RJT05fUlNTX0ZVTkMsCglBQ1RJT05fUlNT X0ZVTkNfREVGQVVMVCwKCUFDVElPTl9SU1NfRlVOQ19UT0VQTElUWiwKCUFDVElPTl9SU1NfRlVO Q19TSU1QTEVfWE9SLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NtZGxpbmVf Zmxvdy5jOjE2NwplcnJvcjogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY29uZmlnLmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNzID0gKHN0cnVj dCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJCS5mdW5jID0gc3JjLnJzcy0+ZnVuYywKCQkJCS50 eXBlcyA9IHNyYy5yc3MtPnR5cGVzLAoJCQkJLmtleV9sZW4gPSBzcmMucnNzLT5rZXlfbGVuLAoJ CQkJLnF1ZXVlX251bSA9IHNyYy5yc3MtPnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGFwcC90ZXN0LXBtZC9jb25maWcuYzoxMDg1CmVycm9yOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlk ZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cm92ZXJsYXBzIGBg aGFzaC5mZGlyLmxvYGAuIFNpbmNlIGBBY3Rpb246IE1BUktgXyBzZXRzIHRoZSBgYGhhc2guZmRp ci5oaWBgCmZpZWxkIG9ubHksIGJvdGggY2FuIGJlIHJlcXVlc3RlZCBzaW11bHRhbmVvdXNseS4K Ci4uIF90YWJsZV9ydGVfZmxvd19hY3Rpb25fcnNzOgoKLi4gdGFibGU6OiBSU1MKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMwNQplcnJv cjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNz LnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICAtIGBgZnVuYyB7aGFzaCBmdW5j dGlvbn1gYDogUlNTIGhhc2ggZnVuY3Rpb24gdG8gYXBwbHksIGFsbG93ZWQgdG9rZW5zIGFyZQog ICAgdGhlIHNhbWUgYXMgYHNldF9oYXNoX2dsb2JhbF9jb25maWdgXy4KCiAgLSBgYHR5cGVzIFt7 UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBgOiBSU1MgaGFzaCB0eXBlcywgYWxsb3dlZCB0b2tl bnMKICAgIGFyZSB0aGUgc2FtZSBhcyBgc2V0X2hhc2hfaW5wdXRfc2V0YF8sIGFuIGVtcHR5IGxp c3QgbWVhbnMgbm9uZSAoMCkuCgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy90ZXN0 cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDozNDAxCmVycm9yOiBkb2MvZ3VpZGVzL3Rlc3Rw bWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQ LCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoJCQkgIm5vbi1kZWZhdWx0IFJTUyBo YXNoIGZ1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIpOwoJaWYgKHJzcy0+a2V5X2xlbiAmJiBy c3MtPmtleV9sZW4gIT0gUlRFX0RJTShyc3NfY29uZi0+a2V5KSkKCQlyZXR1cm4gcnRlX2Zsb3df ZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04s IGFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6 MTMxNAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3Qg YXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLmZ1bmMgPSBpbi0+ZnVuYywKCQkudHlwZXMg PSBpbi0+dHlwZXMsCgkJLmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4t PnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9y eHR4LmM6MjkwNgplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5j b25mID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkuZnVuYyA9IGluLT5mdW5jLAoJ CS50eXBlcyA9IGluLT50eXBlcywKCQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9u dW0gPSBpbi0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExOTc1CmVycm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUv aTQwZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIHJ0ZV9m bG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNU SU9OLCBhY3QsCgkJCSAibm9uLWRlZmF1bHQgUlNTIGhhc2ggZnVuY3Rpb25zIGFyZSBub3Qgc3Vw cG9ydGVkIik7CglpZiAocnNzLT5rZXlfbGVuICYmIHJzcy0+a2V5X2xlbiA+IFJURV9ESU0ocnNz X2NvbmZpZy0+a2V5KSkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5P VFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6NDMzMAplcnJvcjogZHJpdmVycy9uZXQv aTQwZS9pNDBlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxP V19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoJCQkgIm5vbi1kZWZhdWx0IFJTUyBoYXNoIGZ1bmN0 aW9ucyBhcmUgbm90IHN1cHBvcnRlZCIpOwoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9s ZW4gIT0gUlRFX0RJTShyc3NfY29uZi0+a2V5KSkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0 CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzoyNzgzCmVy cm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLmZ1bmMgPSBpbi0+ZnVuYywKCQkudHlwZXMgPSBp bi0+dHlwZXMsCgkJLmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4tPnF1 ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4 dHguYzo1NjgzCmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkJIiBpcyBUb2VwbGl0eiI7CgkJCQln b3RvIGV4aXRfYWN0aW9uX25vdF9zdXBwb3J0ZWQ7CgkJCX0KCQkJcnRlX2Vycm5vID0gMDsKCQkJ ZmllbGRzID0gbWx4NF9jb252X3Jzc190eXBlcyhwcml2LCByc3MtPnR5cGVzKTsKCQkJaWYgKGZp ZWxkcyA9PSAodWludDY0X3QpLTEgJiYgcnRlX2Vycm5vKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jOjc5NgplcnJvcjogZHJpdmVycy9uZXQvbWx4 NC9tbHg0X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJ CQkJICAgIiBmdW5jdGlvbiBpcyBUb2VwbGl0eiIpOwoJCQkJcmV0dXJuIC1ydGVfZXJybm87CgkJ CX0KCQkJaWYgKHJzcy0+dHlwZXMgJiBNTFg1X1JTU19IRl9NQVNLKSB7CgkJCQlydGVfZmxvd19l cnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwKCQkJCQkJICAgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJ T04sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOjY0 NAplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CglpZiAocnNzLT5mdW5jKQoJCXJldHVybiAtRUlOVkFMOwoKCWlm ICgocnNzLT50eXBlcyAmIH5TRkNfUlNTX09GRkxPQURTKSAhPSAwKQoJCXJldHVybiAtRUlOVkFM OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOjEyNjQK ZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCXN0cnVjdCByc3Nfa2V5IHJzc19lbnRyeSA9IHsgLmhhc2hfZmllbGRz ID0gMCwKCQkJCSAgICAgLmtleV9zaXplID0gMCB9OwoKCS8qIENoZWNrIHN1cHBvcnRlZCBoYXNo IGZ1bmN0aW9ucyAqLwoJaWYgKHJzcy0+ZnVuYykKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0 CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwgTlVM TCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQi KTsKCgkvKiBHZXQgYSBuZXcgbWFwIGtleSBmb3IgYSBuZXcgUlNTIHJ1bGUgKi8KCWVyciA9IGJw Zl9yc3Nfa2V5KEtFWV9DTURfR0VULCAmZmxvdy0+a2V5X2lkeCk7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYzoyMDU1CmVycm9yOiBkcml2ZXJzL25ldC90 YXAvdGFwX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xp YnJ0ZV9ldGhlci9ydGVfZmxvdy5jLi4uCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93 LmM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0ZV9l dGhlci9ydGVfZmxvdy5oLi4uCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKKlJlcG86IGRwZGstbmV4dC12aXJ0aW8KQ2hlY2tpbmcg cGF0Y2ggYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJQUNUSU9OX0NPVU5ULAoJQUNUSU9OX1JTUywKCUFDVElPTl9SU1NfRlVOQywKCUFD VElPTl9SU1NfRlVOQ19ERUZBVUxULAoJQUNUSU9OX1JTU19GVU5DX1RPRVBMSVRaLAoJQUNUSU9O X1JTU19GVU5DX1NJTVBMRV9YT1IsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQv Y21kbGluZV9mbG93LmM6MTY3CmVycm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlpZiAoZHN0LnJzcykKCQkJKmRzdC5yc3Mg PSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCQkJLmZ1bmMgPSBzcmMucnNzLT5mdW5j LAoJCQkJLnR5cGVzID0gc3JjLnJzcy0+dHlwZXMsCgkJCQkua2V5X2xlbiA9IHNyYy5yc3MtPmtl eV9sZW4sCgkJCQkucXVldWVfbnVtID0gc3JjLnJzcy0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjEwODUKZXJyb3I6IGFwcC90ZXN0LXBtZC9j b25maWcuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9w cm9nX2d1aWRlL3J0ZV9mbG93LnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKb3Zl cmxhcHMgYGBoYXNoLmZkaXIubG9gYC4gU2luY2UgYEFjdGlvbjogTUFSS2BfIHNldHMgdGhlIGBg aGFzaC5mZGlyLmhpYGAKZmllbGQgb25seSwgYm90aCBjYW4gYmUgcmVxdWVzdGVkIHNpbXVsdGFu ZW91c2x5LgoKLi4gX3RhYmxlX3J0ZV9mbG93X2FjdGlvbl9yc3M6CgouLiB0YWJsZTo6IFJTUwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDox MzA1CmVycm9yOiBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3Rw bWRfZnVuY3MucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogIC0gYGBmdW5jIHto YXNoIGZ1bmN0aW9ufWBgOiBSU1MgaGFzaCBmdW5jdGlvbiB0byBhcHBseSwgYWxsb3dlZCB0b2tl bnMgYXJlCiAgICB0aGUgc2FtZSBhcyBgc2V0X2hhc2hfZ2xvYmFsX2NvbmZpZ2BfLgoKICAtIGBg dHlwZXMgW3tSU1MgaGFzaCB0eXBlfSBbLi4uXV0gZW5kYGA6IFJTUyBoYXNoIHR5cGVzLCBhbGxv d2VkIHRva2VucwogICAgYXJlIHRoZSBzYW1lIGFzIGBzZXRfaGFzaF9pbnB1dF9zZXRgXywgYW4g ZW1wdHkgbGlzdCBtZWFucyBub25lICgwKS4KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3Vp ZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OjM0MDEKZXJyb3I6IGRvYy9ndWlk ZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmMuLi4KZXJyb3I6IHdo aWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3Is IEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgkJCSAibm9uLWRlZmF1 bHQgUlNTIGhhc2ggZnVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIik7CglpZiAocnNzLT5rZXlf bGVuICYmIHJzcy0+a2V5X2xlbiAhPSBSVEVfRElNKHJzc19jb25mLT5rZXkpKQoJCXJldHVybiBy dGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBF X0FDVElPTiwgYWN0LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdi X2Zsb3cuYzoxMzE0CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOiBwYXRjaCBk b2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5j b25mID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkuZnVuYyA9IGluLT5mdW5jLAoJ CS50eXBlcyA9IGluLT50eXBlcywKCQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9u dW0gPSBpbi0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEw MDAvaWdiX3J4dHguYzoyOTA2CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIC1FSU5WQUw7 CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS5mdW5jID0gaW4t PmZ1bmMsCgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJ LnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTE5NzUKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlyZXR1 cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1Jf VFlQRV9BQ1RJT04sIGFjdCwKCQkJICJub24tZGVmYXVsdCBSU1MgaGFzaCBmdW5jdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQiKTsKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuID4gUlRF X0RJTShyc3NfY29uZmlnLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVy cm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzo0MzMwCmVycm9yOiBkcml2 ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAs IFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgkJCSAibm9uLWRlZmF1bHQgUlNTIGhh c2ggZnVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIik7CglpZiAocnNzLT5rZXlfbGVuICYmIHJz cy0+a2V5X2xlbiAhPSBSVEVfRElNKHJzc19jb25mLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19l cnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwg YWN0LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5j OjI3ODMKZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5jb25m ID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkuZnVuYyA9IGluLT5mdW5jLAoJCS50 eXBlcyA9IGluLT50eXBlcywKCQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0g PSBpbi0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcnh0eC5jOjU2ODMKZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0 X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkiIGlzIFRvZXBsaXR6 IjsKCQkJCWdvdG8gZXhpdF9hY3Rpb25fbm90X3N1cHBvcnRlZDsKCQkJfQoJCQlydGVfZXJybm8g PSAwOwoJCQlmaWVsZHMgPSBtbHg0X2NvbnZfcnNzX3R5cGVzKHByaXYsIHJzcy0+dHlwZXMpOwoJ CQlpZiAoZmllbGRzID09ICh1aW50NjRfdCktMSAmJiBydGVfZXJybm8pIHsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6Nzk2CmVycm9yOiBkcml2ZXJz L25ldC9tbHg0L21seDRfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJCQkJCQkgICAiIGZ1bmN0aW9uIGlzIFRvZXBsaXR6Iik7CgkJCQlyZXR1cm4gLXJ0ZV9l cnJubzsKCQkJfQoJCQlpZiAocnNzLT50eXBlcyAmIE1MWDVfUlNTX0hGX01BU0spIHsKCQkJCXJ0 ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlOVkFMLAoJCQkJCQkgICBSVEVfRkxPV19FUlJPUl9U WVBFX0FDVElPTiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9m bG93LmM6NjQ0CmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCWlmIChyc3MtPmZ1bmMpCgkJcmV0dXJuIC1FSU5W QUw7CgoJaWYgKChyc3MtPnR5cGVzICYgflNGQ19SU1NfT0ZGTE9BRFMpICE9IDApCgkJcmV0dXJu IC1FSU5WQUw7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93 LmM6MTI2NAplcnJvcjogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc3RydWN0IHJzc19rZXkgcnNzX2VudHJ5ID0geyAuaGFz aF9maWVsZHMgPSAwLAoJCQkJICAgICAua2V5X3NpemUgPSAwIH07CgoJLyogQ2hlY2sgc3VwcG9y dGVkIGhhc2ggZnVuY3Rpb25zICovCglpZiAocnNzLT5mdW5jKQoJCXJldHVybiBydGVfZmxvd19l cnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lG SUVELCBOVUxMLAoJCQkgIm5vbi1kZWZhdWx0IFJTUyBoYXNoIGZ1bmN0aW9ucyBhcmUgbm90IHN1 cHBvcnRlZCIpOwoKCS8qIEdldCBhIG5ldyBtYXAga2V5IGZvciBhIG5ldyBSU1MgcnVsZSAqLwoJ ZXJyID0gYnBmX3Jzc19rZXkoS0VZX0NNRF9HRVQsICZmbG93LT5rZXlfaWR4KTsKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jOjIwNTUKZXJyb3I6IGRyaXZl cnMvbmV0L3RhcC90YXBfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmMuLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIv cnRlX2Zsb3cuYzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpDaGVja2luZyBwYXRjaCBsaWIv bGlicnRlX2V0aGVyL3J0ZV9mbG93LmguLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zs b3cuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQoKRFBESyBTVFYgdGVhbQ== --===============8396481941870618257==--