Name: series-workflowrljtx Phase: Failed StartedAt: 2026-08-21 20:26:38 +0000 UTC FinishedAt: 2026-08-21 20:30:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrljtx[0] Phase: Succeeded StartedAt: 2026-08-21 20:26:38 +0000 UTC FinishedAt: 2026-08-21 20:30:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrljtx[0].run-triage Phase: Succeeded StartedAt: 2026-08-21 20:26:38 +0000 UTC FinishedAt: 2026-08-21 20:30:26 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDIwOjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZiwgYWRkaW5nIGEgX19za2lwIG1hY3JvIHRvIHNraXAgdW5zdXBwb3J0ZWQgdGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nIGR1bW15IHRlc3RzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAyMDozMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRjNThjNTM3MDE3MmFlNTg3NzkxOTk4M2NmNzM3YTlhZDM3OWQwOTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAyMDozMDowMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5pbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5AQCAtMjMzLDggJiM0MzsyMzMsOSBAQCBTRUMoXCYjMzQ7c3lzY2FsbFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX2FybTY0XG4gX19kZXNjcmlwdGlvbihcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWRcJiMzNDspXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4mIzQzO2ludCBkdW1teV90ZXN0KHZvaWQgKmN0eClcbiB7XG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuaW5kZXggNWVhY2YxYjQzMjUyMS4uZWI4OGQ5Y2U2YzM0OCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuQEAgLTEwNiw2ICYjNDM7MTA2LDExIEBAXG4gICogX19kZXNjcmlwdGlvbiAgICAgVGV4dCB0byBiZSB1c2VkIGZvciBkaXNwbGF5IGFuZCBhcyBhbiBhZGRpdGlvbmFsIGZpbHRlclxuICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS5cbiAgKlxuJiM0MzsgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYVxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBmZWF0dXJlIHRoZSB0b29sY2hhaW4gb3IgSklUIGNhbm5vdCBwcm92aWRlLCBzbyBhIHJ1biBkb2VzXG4mIzQzOyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuJiM0MzsgKlxuICAqIF9fbG9nX2xldmVsICAgICAgIExvZyBsZXZlbCB0byB1c2UgZm9yIHRoZSBwcm9ncmFtLCBudW1lcmljIHZhbHVlIGV4cGVjdGVkLlxuICAqXG4gICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6XG5AQCAtMTM5LDYgJiM0MzsxNDQsNyBAQFxuICNkZWZpbmUgX19mYWlsdXJlXHRcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfZmFpbHVyZVwmIzM0OylcbiAjZGVmaW5lIF9fc3VjY2Vzc1x0XHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X3N1Y2Nlc3NcJiMzNDspXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZGVzY3JpcHRpb249XCYjMzQ7IGRlc2MpXG4mIzQzOyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X3NraXA9XCYjMzQ7IHJlYXNvbilcbiAjZGVmaW5lIF9fbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X21zZ191bnByaXY9XCYjMzQ7IG1zZylcbiAjZGVmaW5lIF9fbm90X21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X2V4cGVjdF9ub3RfbXNnX3VucHJpdj1cJiMzNDsgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfeGxhdGVkX3VucHJpdj1cJiMzNDsgbXNnKVxuQEAgLTI1NSwxMSAmIzQzOzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfR09UT0wpKVxuICNkZWZpbmUgQ0FOX1VTRV9HT1RPTFxuICNlbmRpZlxuIFxuLSNpZiBfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MzsjaWYgX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NUKVxuICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1RcbiAjZW5kaWZcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xuaW5kZXggZDA1NWZjN2IzYjk1ZC4uOTA0YjZmMTJkNzU0OCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbkBAIC0yOTksNyAmIzQzOzI5OSwxNCBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCYjMzQ7cjMgPSAyNDtcJiMzNDtcbiBcdFx0XCYjMzQ7aWYgcjEgXHUwMDNlIDB4NyBnb3RvICYjNDM7MjtcJiMzNDtcbiBcdFx0XCYjMzQ7cjAgPSByMjtcJiMzNDtcbiYjNDM7I2lmZGVmIF9fY2xhbmdfX1xuIFx0XHRcJiMzNDtnb3RvbCAmIzQzOzE7XCYjMzQ7XG4mIzQzOyNlbHNlXG4mIzQzO1x0XHQvKiBnYXMgbWlzLXBhcnNlcyAmIzM5O2dvdG9sICYjNDM7MSYjMzk7IGFzICYjMzk7Z290byBsJiM0MzsxJiMzOTssIHNhbWUgZW5jb2RpbmdcbiYjNDM7XHRcdCAqIHdpdGhvdXQgdGhlIHNpZ24gKGJpbnV0aWxzIFBSIGdhcy8zNDU1OCkuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdFwmIzM0O2dvdG9sIDE7XCYjMzQ7XG4mIzQzOyNlbmRpZlxuIFx0XHRcJiMzNDtyMCA9IHIzO1wmIzM0O1xuIFx0XHRcJiMzNDtleGl0O1wmIzM0O1xuIFx0XHQ6XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuaW5kZXggYWQ5ZDRiZmUxNWRjYy4uZWVkOTdkNTgyNTE1NyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuQEAgLTEwMyw4ICYjNDM7MTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxuIFxuIFNFQyhcJiMzNDt0Y1wmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7c3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcJiMzNDspXG4gX19zdWNjZXNzXG4taW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpXG4mIzQzO2ludCBkdW1teV90ZXN0KHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbiB7XG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmNcbmluZGV4IGJlZTJlZWVjMDIxZDcuLmNlMDMwMWE0MWZhOTQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5AQCAtMTI0LDYgJiM0MzsxMjQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3ByZWNpc2lvbl9icGYyYnBmKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3N0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbmluZGV4IGNmZmFmMzYxOTJiYzUuLjQ4ZmZiNWIyNDJkMjQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbkBAIC04LDcgJiM0Mzs4LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4mIzQzO1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9CU1dBUCkpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0JTV0FQLCAxNlwmIzM0OylcbkBAIC0xMTcsNiAmIzQzOzExNyw3IEBAIGwwXyU9Olx0XHRcdFx0XHRcdFx0XFxcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5pbmRleCBkNWQ4ZjI0ZGYzOTQ5Li5jMGZkMzBhM2E0YzEzIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5AQCAtNTIsNiAmIzQzOzUyLDcgQEAgX19uYWtlZCB2b2lkIGdvdG9sX2xhcmdlX2ltbSh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXG5pbmRleCA0MTM0MDg3N2RjOWQ5Li43NTc2MmUxMWI0NDNmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuQEAgLTksMTMgJiM0Mzs5LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4tXG4tc3RydWN0IHtcbi1cdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuLVx0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuLVx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbi19IGFyZW5hIFNFQyhcJiMzNDsubWFwc1wmIzM0Oyk7XG4mIzQzO1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9MRFNYKSlcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7TERTWCwgUzhcJiMzNDspXG5AQCAtMjYzLDYgJiM0MzsyNTcsMTQgQEAgX19uYWtlZCB2b2lkIGxkc3hfY3R4Xzgodm9pZClcbiBcdDogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuJiM0MzsjaWZkZWYgX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1RcbiYjNDM7XG4mIzQzO3N0cnVjdCB7XG4mIzQzO1x0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7XG4mIzQzO1x0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuJiM0MztcdF9fdWludChtYXhfZW50cmllcywgMSk7XG4mIzQzO30gYXJlbmEgU0VDKFwmIzM0Oy5tYXBzXCYjMzQ7KTtcbiYjNDM7XG4gU0VDKFwmIzM0O3N5c2NhbGxcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtBcmVuYSBMRFNYIERpc2FzbVwmIzM0OylcbiBfX3N1Y2Nlc3NcbkBAIC00MzIsMTAgJiM0Mzs0MzQsMTMgQEAgdm9pZCBrZnVuY19yb290KHZvaWQpXG4gXHRicGZfYXJlbmFfYWxsb2NfcGFnZXMoMCwgMCwgMCwgMCwgMCk7XG4gfVxuIFxuJiM0MzsjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi9cbiYjNDM7XG4gI2Vsc2VcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbmluZGV4IGQxNzAyNmQ3NDgwZDguLmJjYzM0ZTc5OGM2MzQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xuQEAgLTI2Nyw2ICYjNDM7MjY3LDcgQEAgX19uYWtlZCB2b2lkIGxvYWRfYWNxdWlyZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0NsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZSwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O0NsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZVwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5pbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5AQCAtOCw3ICYjNDM7OCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtNT1YzMlNYLCBTOFwmIzM0OylcbkBAIC0zNDMsNiAmIzQzOzM0Myw3IEBAIGxhYmVsXyU9OiBcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG5pbmRleCBlYTBhN2U3MzMzMWRhLi4zZDk5OTRhNTI0NjRlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuQEAgLTM3Nyw2ICYjNDM7Mzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXG4gXG4gU0VDKFwmIzM0O2twcm9iZVwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuaW5kZXggOTVmMzIzOWNlMjI4Yi4uZDZjYmUxZTI3ZmQ2YiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcbkBAIC05LDcgJiM0Mzs5LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4mIzQzO1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxXCYjMzQ7KVxuQEAgLTEyNzEsNiAmIzQzOzEyNzEsNyBAQCBfX25ha2VkIHZvaWQgc21vZDMyX2ludF9taW5fbW9kX25lZzJfaW1tKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG5pbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbkBAIC00MzYsNiAmIzQzOzQzNiw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfc2VxdWVudGlhbF9jYWxscyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG5pbmRleCBjOWZlNDg1N2RhM2Y1Li44ZTQzMjUyNzNiM2Q4IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcbkBAIC0xNzQsNiAmIzQzOzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZClcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5pbmRleCA3MmYxZWIwMDYwNzQ4Li4wYWJiZWU1Y2UxMDkyIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuY1xuQEAgLTI5MCw2ICYjNDM7MjkwLDcgQEAgX19uYWtlZCB2b2lkIHN0b3JlX3JlbGVhc2Vfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Q2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgc3RvcmUtcmVsZWFzZVwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG5pbmRleCAwNzgwNzc1N2I1MThkLi43OTRhN2RmYjA1Nzk2IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG5AQCAtNzAsNiAmIzQzOzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XG4gXHRpbnQgYXJjaF9tYXNrO1xuIFx0aW50IGxvYWRfbWFzaztcbiBcdGludCBsaW5lYXJfc3o7XG4mIzQzO1x0Y29uc3QgY2hhciAqc2tpcF9yZWFzb247XG4gXHRib29sIGF1eGlsaWFyeTtcbiBcdGJvb2wgdmFsaWQ7XG4gfTtcbkBAIC00NTYsNiAmIzQzOzQ1Nyw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfdGVzdF9zcGVjKHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLFxuIFx0XHRcdGNvbnRpbnVlO1xuIFx0XHRpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsIFwmIzM0O3Rlc3RfZGVzY3JpcHRpb249XCYjMzQ7KSkpIHtcbiBcdFx0XHRkZXNjcmlwdGlvbiA9IHZhbDtcbiYjNDM7XHRcdH0gZWxzZSBpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsIFwmIzM0O3Rlc3Rfc2tpcD1cJiMzNDspKSkge1xuJiM0MztcdFx0XHRzcGVjLVx1MDAzZXNraXBfcmVhc29uID0gdmFsO1xuIFx0XHR9IGVsc2UgaWYgKHN0cmNtcChzLCBcJiMzNDt0ZXN0X2V4cGVjdF9mYWlsdXJlXCYjMzQ7KSA9PSAwKSB7XG4gXHRcdFx0c3BlYy1cdTAwM2Vwcml2LmV4cGVjdF9mYWlsdXJlID0gdHJ1ZTtcbiBcdFx0XHRzcGVjLVx1MDAzZW1vZGVfbWFzayB8PSBQUklWO1xuQEAgLTEzMjcsNiAmIzQzOzEzMzAsMTIgQEAgdm9pZCBydW5fc3VidGVzdChzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcbiBcdGlmICghdGVzdF9fc3RhcnRfc3VidGVzdF93aXRoX2Rlc2Moc3Vic3BlYy1cdTAwM2VuYW1lLCBzdWJzcGVjLVx1MDAzZWRlc2NyaXB0aW9uKSlcbiBcdFx0cmV0dXJuO1xuIFxuJiM0MztcdGlmIChzcGVjLVx1MDAzZXNraXBfcmVhc29uKSB7XG4mIzQzO1x0XHRwcmludGYoXCYjMzQ7JXM6U0tJUDogJXNcXG5cJiMzNDssIF9fZnVuY19fLCBzcGVjLVx1MDAzZXNraXBfcmVhc29uKTtcbiYjNDM7XHRcdHRlc3RfX3NraXAoKTtcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKChnZXRfY3VycmVudF9hcmNoKCkgXHUwMDI2IHNwZWMtXHUwMDNlYXJjaF9tYXNrKSA9PSAwKSB7XG4gXHRcdHRlc3RfX3NraXAoKTtcbiBcdFx0cmV0dXJuO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDIwOjMwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgaW4gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLCBhZGRpbmcgYSBfX3NraXAgbWFjcm8gdG8gc2tpcCB1bnN1cHBvcnRlZCB0ZXN0cyBpbnN0ZWFkIG9mIHJ1bm5pbmcgZHVtbXkgdGVzdHMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGM1OGM1MzcwMTcyYWU1ODc3OTE5OTgzY2Y3MzdhOWFkMzc5ZDA5MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDIxIDIwOjMwOjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYwppbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYwpAQCAtMjMzLDggJiM0MzsyMzMsOSBAQCBTRUMoJiMzNDtzeXNjYWxsJiMzNDspCiBfX2FyY2hfeDg2XzY0CiBfX2FyY2hfYXJtNjQKIF9fZGVzY3JpcHRpb24oJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwotaW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpCiYjNDM7aW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaAppbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaApAQCAtMTA2LDYgJiM0MzsxMDYsMTEgQEAKICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXIKICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS4KICAqCiYjNDM7ICogX19za2lwICAgICAgICAgICAgUmVwb3J0IHRoZSB0ZXN0IGFzIFNLSVAgd2l0aCB0aGUgZ2l2ZW4gcmVhc29uIGluc3RlYWQgb2YKJiM0MzsgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYQomIzQzOyAqICAgICAgICAgICAgICAgICAgIGZlYXR1cmUgdGhlIHRvb2xjaGFpbiBvciBKSVQgY2Fubm90IHByb3ZpZGUsIHNvIGEgcnVuIGRvZXMKJiM0MzsgKiAgICAgICAgICAgICAgICAgICBub3QgcmVwb3J0IE9LIGZvciBjb3ZlcmFnZSBpdCBuZXZlciBleGVjdXRlZC4KJiM0MzsgKgogICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuCiAgKgogICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6CkBAIC0xMzksNiAmIzQzOzE0NCw3IEBACiAjZGVmaW5lIF9fZmFpbHVyZQkJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X2ZhaWx1cmUmIzM0OykKICNkZWZpbmUgX19zdWNjZXNzCQlfX3Rlc3RfdGFnKCYjMzQ7dGVzdF9leHBlY3Rfc3VjY2VzcyYjMzQ7KQogI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2Rlc2NyaXB0aW9uPSYjMzQ7IGRlc2MpCiYjNDM7I2RlZmluZSBfX3NraXAocmVhc29uKQkJX190ZXN0X3RhZygmIzM0O3Rlc3Rfc2tpcD0mIzM0OyByZWFzb24pCiAjZGVmaW5lIF9fbXNnX3VucHJpdihtc2cpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF9tc2dfdW5wcml2PSYjMzQ7IG1zZykKICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF9ub3RfbXNnX3VucHJpdj0mIzM0OyBtc2cpCiAjZGVmaW5lIF9feGxhdGVkX3VucHJpdihtc2cpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PSYjMzQ7IG1zZykKQEAgLTI1NSwxMSAmIzQzOzI2MSwxMSBAQAogICAgICAoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSAmYW1wOyZhbXA7IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwJCVwKICAgICAgZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8CVwKICAgICAgZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpICZhbXA7JmFtcDsJCQkJXAotCV9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOAomIzQzOwkoX19jbGFuZ19tYWpvcl9fICZndDs9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpCiAjZGVmaW5lIENBTl9VU0VfR09UT0wKICNlbmRpZgogCi0jaWYgX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7I2lmIF9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfU1QpCiAjZGVmaW5lIENBTl9VU0VfQlBGX1NUCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmMKaW5kZXggZDA1NWZjN2IzYjk1ZC4uOTA0YjZmMTJkNzU0OCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jCkBAIC0yOTksNyAmIzQzOzI5OSwxNCBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZCkKIAkJJiMzNDtyMyA9IDI0OyYjMzQ7CiAJCSYjMzQ7aWYgcjEgJmd0OyAweDcgZ290byAmIzQzOzI7JiMzNDsKIAkJJiMzNDtyMCA9IHIyOyYjMzQ7CiYjNDM7I2lmZGVmIF9fY2xhbmdfXwogCQkmIzM0O2dvdG9sICYjNDM7MTsmIzM0OwomIzQzOyNlbHNlCiYjNDM7CQkvKiBnYXMgbWlzLXBhcnNlcyAmIzM5O2dvdG9sICYjNDM7MSYjMzk7IGFzICYjMzk7Z290byBsJiM0MzsxJiMzOTssIHNhbWUgZW5jb2RpbmcKJiM0MzsJCSAqIHdpdGhvdXQgdGhlIHNpZ24gKGJpbnV0aWxzIFBSIGdhcy8zNDU1OCkuCiYjNDM7CQkgKi8KJiM0MzsJCSYjMzQ7Z290b2wgMTsmIzM0OwomIzQzOyNlbmRpZgogCQkmIzM0O3IwID0gcjM7JiMzNDsKIAkJJiMzNDtleGl0OyYjMzQ7CiAJCToKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKaW5kZXggYWQ5ZDRiZmUxNWRjYy4uZWVkOTdkNTgyNTE1NyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKQEAgLTEwMyw4ICYjNDM7MTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKQogCiBTRUMoJiMzNDt0YyYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwotaW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpCiYjNDM7aW50IGR1bW15X3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMKaW5kZXggYmVlMmVlZWMwMjFkNy4uY2UwMzAxYTQxZmE5NCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jCkBAIC0xMjQsNiAmIzQzOzEyNCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcHJlY2lzaW9uX2JwZjJicGYodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3N0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKQEAgLTgsNyAmIzQzOzgsNyBAQAogCShkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOyBcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0JTV0FQKSkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7QlNXQVAsIDE2JiMzNDspCkBAIC0xMTcsNiAmIzQzOzExNyw3IEBAIGwwXyU9OgkJCQkJCQlcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKQEAgLTUyLDYgJiM0Mzs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmMKaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jCkBAIC05LDEzICYjNDM7OSw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKLQotc3RydWN0IHsKLQlfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTsKLQlfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7Ci0JX191aW50KG1heF9lbnRyaWVzLCAxKTsKLX0gYXJlbmEgU0VDKCYjMzQ7Lm1hcHMmIzM0Oyk7CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0xEU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtMRFNYLCBTOCYjMzQ7KQpAQCAtMjYzLDYgJiM0MzsyNTcsMTQgQEAgX19uYWtlZCB2b2lkIGxkc3hfY3R4Xzgodm9pZCkKIAk6IF9fY2xvYmJlcl9hbGwpOwogfQogCiYjNDM7I2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUCiYjNDM7CiYjNDM7c3RydWN0IHsKJiM0MzsJX191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7CiYjNDM7CV9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTsKJiM0MzsJX191aW50KG1heF9lbnRyaWVzLCAxKTsKJiM0Mzt9IGFyZW5hIFNFQygmIzM0Oy5tYXBzJiMzNDspOwomIzQzOwogU0VDKCYjMzQ7c3lzY2FsbCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O0FyZW5hIExEU1ggRGlzYXNtJiMzNDspCiBfX3N1Y2Nlc3MKQEAgLTQzMiwxMCAmIzQzOzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZCkKIAlicGZfYXJlbmFfYWxsb2NfcGFnZXMoMCwgMCwgMCwgMCwgMCk7CiB9CiAKJiM0MzsjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi8KJiM0MzsKICNlbHNlCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYwppbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jCkBAIC0yNjcsNiAmIzQzOzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Q2xhbmcgdmVyc2lvbiAmbHQ7IDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZSYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwppbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwpAQCAtOCw3ICYjNDM7OCw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKJiM0MzsJKF9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtNT1YzMlNYLCBTOCYjMzQ7KQpAQCAtMzQzLDYgJiM0MzszNDMsNyBAQCBsYWJlbF8lPTogCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jCmluZGV4IGVhMGE3ZTczMzMxZGEuLjNkOTk5NGE1MjQ2NGUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYwpAQCAtMzc3LDYgJiM0MzszNzcsNyBAQCBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZCkKIAogU0VDKCYjMzQ7a3Byb2JlJiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkLCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkJiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYwppbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMKQEAgLTksNyAmIzQzOzksNyBAQAogCShkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOyBcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NESVZfU01PRCkpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O1NESVYzMiwgbm9uLXplcm8gaW1tIGRpdmlzb3IsIGNoZWNrIDEmIzM0OykKQEAgLTEyNzEsNiAmIzQzOzEyNzEsNyBAQCBfX25ha2VkIHZvaWQgc21vZDMyX2ludF9taW5fbW9kX25lZzJfaW1tKHZvaWQpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYwppbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jCkBAIC00MzYsNiAmIzQzOzQzNiw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfc2VxdWVudGlhbF9jYWxscyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYwppbmRleCBjOWZlNDg1N2RhM2Y1Li44ZTQzMjUyNzNiM2Q4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jCkBAIC0xNzQsNiAmIzQzOzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYwppbmRleCA3MmYxZWIwMDYwNzQ4Li4wYWJiZWU1Y2UxMDkyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMKQEAgLTI5MCw2ICYjNDM7MjkwLDcgQEAgX19uYWtlZCB2b2lkIHN0b3JlX3JlbGVhc2Vfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgc3RvcmUtcmVsZWFzZSwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O0NsYW5nIHZlcnNpb24gJmx0OyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlJiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jCmluZGV4IDA3ODA3NzU3YjUxOGQuLjc5NGE3ZGZiMDU3OTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jCkBAIC03MCw2ICYjNDM7NzAsNyBAQCBzdHJ1Y3QgdGVzdF9zcGVjIHsKIAlpbnQgYXJjaF9tYXNrOwogCWludCBsb2FkX21hc2s7CiAJaW50IGxpbmVhcl9zejsKJiM0MzsJY29uc3QgY2hhciAqc2tpcF9yZWFzb247CiAJYm9vbCBhdXhpbGlhcnk7CiAJYm9vbCB2YWxpZDsKIH07CkBAIC00NTYsNiAmIzQzOzQ1Nyw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfdGVzdF9zcGVjKHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLAogCQkJY29udGludWU7CiAJCWlmICgodmFsID0gc3RyX2hhc19wZngocywgJiMzNDt0ZXN0X2Rlc2NyaXB0aW9uPSYjMzQ7KSkpIHsKIAkJCWRlc2NyaXB0aW9uID0gdmFsOwomIzQzOwkJfSBlbHNlIGlmICgodmFsID0gc3RyX2hhc19wZngocywgJiMzNDt0ZXN0X3NraXA9JiMzNDspKSkgewomIzQzOwkJCXNwZWMtJmd0O3NraXBfcmVhc29uID0gdmFsOwogCQl9IGVsc2UgaWYgKHN0cmNtcChzLCAmIzM0O3Rlc3RfZXhwZWN0X2ZhaWx1cmUmIzM0OykgPT0gMCkgewogCQkJc3BlYy0mZ3Q7cHJpdi5leHBlY3RfZmFpbHVyZSA9IHRydWU7CiAJCQlzcGVjLSZndDttb2RlX21hc2sgfD0gUFJJVjsKQEAgLTEzMjcsNiAmIzQzOzEzMzAsMTIgQEAgdm9pZCBydW5fc3VidGVzdChzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlciwKIAlpZiAoIXRlc3RfX3N0YXJ0X3N1YnRlc3Rfd2l0aF9kZXNjKHN1YnNwZWMtJmd0O25hbWUsIHN1YnNwZWMtJmd0O2Rlc2NyaXB0aW9uKSkKIAkJcmV0dXJuOwogCiYjNDM7CWlmIChzcGVjLSZndDtza2lwX3JlYXNvbikgewomIzQzOwkJcHJpbnRmKCYjMzQ7JXM6U0tJUDogJXNcbiYjMzQ7LCBfX2Z1bmNfXywgc3BlYy0mZ3Q7c2tpcF9yZWFzb24pOwomIzQzOwkJdGVzdF9fc2tpcCgpOwomIzQzOwkJcmV0dXJuOwomIzQzOwl9CiYjNDM7CiAJaWYgKChnZXRfY3VycmVudF9hcmNoKCkgJmFtcDsgc3BlYy0mZ3Q7YXJjaF9tYXNrKSA9PSAwKSB7CiAJCXRlc3RfX3NraXAoKTsKIAkJcmV0dXJuOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAyMDozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTMwCgkJCQkJCQlvdXRwdXQ6IDg0CgkJCQkJCQl0aG91Z2h0czogNTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogQW5hbHl6aW5nIHRoZSBCUEYgU2VsZnRlc3QgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBmb2N1c2VkIHNvbGVseSBvbiBtb2RpZmljYXRpb25zIHdpdGhpbiBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AuIEl0JiMzOTtzIGludHJvZHVjaW5nIGEgYF9fc2tpcGAgbWFjcm8sIHdoaWNoIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGNvbmRpdGlvbmFsbHkgZGlzYWJsaW5nIHRlc3RzIHdoZW4gdGhlIHJlcXVpcmVkIGZlYXR1cmVzIGFyZW4mIzM5O3QgcHJlc2VudC4gQW5kIGl0JiMzOTtzIGFsc28gbW9kaWZ5aW5nIGB0ZXN0X2xvYWRlci5jYCB0byBoYW5kbGUgcGFyc2luZyBhIGB0ZXN0X3NraXA9YCBkaXJlY3RpdmUsIGFnYWluLCBkZXNpZ25lZCB0byBieXBhc3MgdGVzdCBleGVjdXRpb24uCgpDcnVjaWFsbHksIHRoZXJlJiMzOTtzIG5vdGhpbmcgaGVyZSB0aGF0IHRvdWNoZXMgdGhlIGNvcmUga2VybmVsLCBhbnkgZHJpdmVycywgb3IgYW55IHNwZWNpZmljIGFyY2hpdGVjdHVyZSBjb2RlLiBBbGwgY2hhbmdlcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQlBGIHNlbGZ0ZXN0IGluZnJhc3RydWN0dXJlIGl0c2VsZi4gVGhhdCBtZWFucyBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4KCkJlZm9yZSBJIGdpdmUgdGhlICYjMzQ7YWxsIGNsZWFyLCYjMzQ7IGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgZGlmZi4gVGhlIG1vZGlmaWVkIGZpbGVzIGluY2x1ZGU6CgoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNgCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNgCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNgCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jYAoKWWVzLCBhbGwgdGhvc2UgZmlsZXMgYXJlIGV4YWN0bHkgd2hlcmUgSSBleHBlY3RlZCB0aGVtIHRvIGJlLCBjb25maXJtaW5nIHRoZSBzY29wZSBvZiB0aGUgY2hhbmdlLiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdGhlc2UgbW9kaWZpY2F0aW9ucyBhcmUgcHVyZWx5IGNvbmZpbmVkIHRvIHRoZSBCUEYgdGVzdGluZyBlbnZpcm9ubWVudC4gSSYjMzk7bSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAyMDozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYsIGFkZGluZyBhIF9fc2tpcCBtYWNybyB0byBza2lwIHVuc3VwcG9ydGVkIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyBkdW1teSB0ZXN0cy4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYsIGFkZGluZyBhIF9fc2tpcCBtYWNybyB0byBza2lwIHVuc3VwcG9ydGVkIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyBkdW1teSB0ZXN0cy4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMjA6MzA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDIwOjMwOjA0LjkwODAwOTk3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NTc5Mjc1MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgaW4gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLCBhZGRpbmcgYSBfX3NraXAgbWFjcm8gdG8gc2tpcCB1bnN1cHBvcnRlZCB0ZXN0cyBpbnN0ZWFkIG9mIHJ1bm5pbmcgZHVtbXkgdGVzdHMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQyMDozMDowNC45MDgwMTQ3OTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MTU5NTYwMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0YzU4YzUzNzAxNzJhZTU4Nzc5MTk5ODNjZjczN2E5YWQzNzlkMDkyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDIxIDIwOjMwOjAzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcXG5pbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcXG5AQCAtMjMzLDggKzIzMyw5IEBAIFNFQyhcXFwic3lzY2FsbFxcXCIpXFxuIF9fYXJjaF94ODZfNjRcXG4gX19hcmNoX2FybTY0XFxuIF9fZGVzY3JpcHRpb24oXFxcImFyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkXFxcIilcXG4gX19zdWNjZXNzXFxuLWludCBhcmVuYV9hcmdfc3RhY2sodm9pZCAqY3R4KVxcbitpbnQgZHVtbXlfdGVzdCh2b2lkICpjdHgpXFxuIHtcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxcbmluZGV4IDVlYWNmMWI0MzI1MjEuLmViODhkOWNlNmMzNDggMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxcbkBAIC0xMDYsNiArMTA2LDExIEBAXFxuICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXJcXG4gICogICAgICAgICAgICAgICAgICAgYWxpYXMsIHdoaWxlIHRoZSBvcmlnaW5hbCBwcm9ncmFtIG5hbWUgc3RheXMgbWF0Y2hhYmxlLlxcbiAgKlxcbisgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxcbisgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYVxcbisgKiAgICAgICAgICAgICAgICAgICBmZWF0dXJlIHRoZSB0b29sY2hhaW4gb3IgSklUIGNhbm5vdCBwcm92aWRlLCBzbyBhIHJ1biBkb2VzXFxuKyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxcbisgKlxcbiAgKiBfX2xvZ19sZXZlbCAgICAgICBMb2cgbGV2ZWwgdG8gdXNlIGZvciB0aGUgcHJvZ3JhbSwgbnVtZXJpYyB2YWx1ZSBleHBlY3RlZC5cXG4gICpcXG4gICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6XFxuQEAgLTEzOSw2ICsxNDQsNyBAQFxcbiAjZGVmaW5lIF9fZmFpbHVyZVxcdFxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X2ZhaWx1cmVcXFwiKVxcbiAjZGVmaW5lIF9fc3VjY2Vzc1xcdFxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X3N1Y2Nlc3NcXFwiKVxcbiAjZGVmaW5lIF9fZGVzY3JpcHRpb24oZGVzYylcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2Rlc2NyaXB0aW9uPVxcXCIgZGVzYylcXG4rI2RlZmluZSBfX3NraXAocmVhc29uKVxcdFxcdF9fdGVzdF90YWcoXFxcInRlc3Rfc2tpcD1cXFwiIHJlYXNvbilcXG4gI2RlZmluZSBfX21zZ191bnByaXYobXNnKVxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X21zZ191bnByaXY9XFxcIiBtc2cpXFxuICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpXFx0X190ZXN0X3RhZyhcXFwidGVzdF9leHBlY3Rfbm90X21zZ191bnByaXY9XFxcIiBtc2cpXFxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PVxcXCIgbXNnKVxcbkBAIC0yNTUsMTEgKzI2MSwxMSBAQFxcbiAgICAgIChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcXHRcXHRcXFxcXFxuICAgICAgZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8XFx0XFxcXFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcXHUwMDI2XFx1MDAyNlxcdFxcdFxcdFxcdFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0dPVE9MKSlcXG4gI2RlZmluZSBDQU5fVVNFX0dPVE9MXFxuICNlbmRpZlxcbiBcXG4tI2lmIF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOFxcbisjaWYgX19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVClcXG4gI2RlZmluZSBDQU5fVVNFX0JQRl9TVFxcbiAjZW5kaWZcXG4gXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXFxuaW5kZXggZDA1NWZjN2IzYjk1ZC4uOTA0YjZmMTJkNzU0OCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xcbkBAIC0yOTksNyArMjk5LDE0IEBAIF9fbmFrZWQgdm9pZCBnb3RvbCh2b2lkKVxcbiBcXHRcXHRcXFwicjMgPSAyNDtcXFwiXFxuIFxcdFxcdFxcXCJpZiByMSBcXHUwMDNlIDB4NyBnb3RvICsyO1xcXCJcXG4gXFx0XFx0XFxcInIwID0gcjI7XFxcIlxcbisjaWZkZWYgX19jbGFuZ19fXFxuIFxcdFxcdFxcXCJnb3RvbCArMTtcXFwiXFxuKyNlbHNlXFxuK1xcdFxcdC8qIGdhcyBtaXMtcGFyc2VzICdnb3RvbCArMScgYXMgJ2dvdG8gbCsxJywgc2FtZSBlbmNvZGluZ1xcbitcXHRcXHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0XFxcImdvdG9sIDE7XFxcIlxcbisjZW5kaWZcXG4gXFx0XFx0XFxcInIwID0gcjM7XFxcIlxcbiBcXHRcXHRcXFwiZXhpdDtcXFwiXFxuIFxcdFxcdDpcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xcbkBAIC0xMDMsOCArMTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxcbiBcXG4gU0VDKFxcXCJ0Y1xcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInN0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJzdGFja19hcmdfZmFpbDogbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbi1pbnQgdGVzdF9zdGFja19hcmdfYmlnKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4raW50IGR1bW15X3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxcbiB7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXFxuaW5kZXggYmVlMmVlZWMwMjFkNy4uY2UwMzAxYTQxZmE5NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xcbkBAIC0xMjQsNiArMTI0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19wcmVjaXNpb25fYnBmMmJwZih2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xcbmluZGV4IGNmZmFmMzYxOTJiYzUuLjQ4ZmZiNWIyNDJkMjQgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xcbkBAIC04LDcgKzgsNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0JTV0FQKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiQlNXQVAsIDE2XFxcIilcXG5AQCAtMTE3LDYgKzExNyw3IEBAIGwwXyU9OlxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xcbmluZGV4IGQ1ZDhmMjRkZjM5NDkuLmMwZmQzMGEzYTRjMTMgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xcbkBAIC01Miw2ICs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcXG5pbmRleCA0MTM0MDg3N2RjOWQ5Li43NTc2MmUxMWI0NDNmIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXFxuQEAgLTksMTMgKzksNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuLVxcbi1zdHJ1Y3Qge1xcbi1cXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTtcXG4tXFx0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xcbi1cXHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xcbi19IGFyZW5hIFNFQyhcXFwiLm1hcHNcXFwiKTtcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTERTWCkpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIkxEU1gsIFM4XFxcIilcXG5AQCAtMjYzLDYgKzI1NywxNCBAQCBfX25ha2VkIHZvaWQgbGRzeF9jdHhfOCh2b2lkKVxcbiBcXHQ6IF9fY2xvYmJlcl9hbGwpO1xcbiB9XFxuIFxcbisjaWZkZWYgX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1RcXG4rXFxuK3N0cnVjdCB7XFxuK1xcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xcbitcXHRfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7XFxuK1xcdF9fdWludChtYXhfZW50cmllcywgMSk7XFxuK30gYXJlbmEgU0VDKFxcXCIubWFwc1xcXCIpO1xcbitcXG4gU0VDKFxcXCJzeXNjYWxsXFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiQXJlbmEgTERTWCBEaXNhc21cXFwiKVxcbiBfX3N1Y2Nlc3NcXG5AQCAtNDMyLDEwICs0MzQsMTMgQEAgdm9pZCBrZnVuY19yb290KHZvaWQpXFxuIFxcdGJwZl9hcmVuYV9hbGxvY19wYWdlcygwLCAwLCAwLCAwLCAwKTtcXG4gfVxcbiBcXG4rI2VuZGlmIC8qIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUICovXFxuK1xcbiAjZWxzZVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcXG5pbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xcbkBAIC0yNjcsNiArMjY3LDcgQEAgX19uYWtlZCB2b2lkIGxvYWRfYWNxdWlyZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIkNsYW5nIHZlcnNpb24gXFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IGxvYWQtYWNxdWlyZSwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiQ2xhbmcgdmVyc2lvbiBcXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xcbmluZGV4IGE0ZDg4MTRlYjVlZGMuLjE5NWIyN2E1MTIyNGYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xcbkBAIC04LDcgKzgsNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX01PVlNYKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiTU9WMzJTWCwgUzhcXFwiKVxcbkBAIC0zNDMsNiArMzQzLDcgQEAgbGFiZWxfJT06IFxcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXFxuaW5kZXggZWEwYTdlNzMzMzFkYS4uM2Q5OTk0YTUyNDY0ZSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xcbkBAIC0zNzcsNiArMzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXFxuIFxcbiBTRUMoXFxcImtwcm9iZVxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwicHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXFxuQEAgLTksNyArOSw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfU0RJVl9TTU9EKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiU0RJVjMyLCBub24temVybyBpbW0gZGl2aXNvciwgY2hlY2sgMVxcXCIpXFxuQEAgLTEyNzEsNiArMTI3MSw3IEBAIF9fbmFrZWQgdm9pZCBzbW9kMzJfaW50X21pbl9tb2RfbmVnMl9pbW0odm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXFxuaW5kZXggN2UwY2U1ZGIyOGEwZC4uNTFkMjJmYWY0NTU5ZiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcXG5AQCAtNDM2LDYgKzQzNiw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfc2VxdWVudGlhbF9jYWxscyh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xcbmluZGV4IGM5ZmU0ODU3ZGEzZjUuLjhlNDMyNTI3M2IzZDggMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXFxuQEAgLTE3NCw2ICsxNzQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3JlYWRfd2l0aG91dF93cml0ZV8yKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInN0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcXG5pbmRleCA3MmYxZWIwMDYwNzQ4Li4wYWJiZWU1Y2UxMDkyIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXFxuQEAgLTI5MCw2ICsyOTAsNyBAQCBfX25ha2VkIHZvaWQgc3RvcmVfcmVsZWFzZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIkNsYW5nIHZlcnNpb24gXFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IHN0b3JlLXJlbGVhc2UsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcIkNsYW5nIHZlcnNpb24gXFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IHN0b3JlLXJlbGVhc2VcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXFxuaW5kZXggMDc4MDc3NTdiNTE4ZC4uNzk0YTdkZmIwNTc5NiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXFxuQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XFxuIFxcdGludCBhcmNoX21hc2s7XFxuIFxcdGludCBsb2FkX21hc2s7XFxuIFxcdGludCBsaW5lYXJfc3o7XFxuK1xcdGNvbnN0IGNoYXIgKnNraXBfcmVhc29uO1xcbiBcXHRib29sIGF1eGlsaWFyeTtcXG4gXFx0Ym9vbCB2YWxpZDtcXG4gfTtcXG5AQCAtNDU2LDYgKzQ1Nyw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfdGVzdF9zcGVjKHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLFxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFx0XFx0aWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcXFwidGVzdF9kZXNjcmlwdGlvbj1cXFwiKSkpIHtcXG4gXFx0XFx0XFx0ZGVzY3JpcHRpb24gPSB2YWw7XFxuK1xcdFxcdH0gZWxzZSBpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsIFxcXCJ0ZXN0X3NraXA9XFxcIikpKSB7XFxuK1xcdFxcdFxcdHNwZWMtXFx1MDAzZXNraXBfcmVhc29uID0gdmFsO1xcbiBcXHRcXHR9IGVsc2UgaWYgKHN0cmNtcChzLCBcXFwidGVzdF9leHBlY3RfZmFpbHVyZVxcXCIpID09IDApIHtcXG4gXFx0XFx0XFx0c3BlYy1cXHUwMDNlcHJpdi5leHBlY3RfZmFpbHVyZSA9IHRydWU7XFxuIFxcdFxcdFxcdHNwZWMtXFx1MDAzZW1vZGVfbWFzayB8PSBQUklWO1xcbkBAIC0xMzI3LDYgKzEzMzAsMTIgQEAgdm9pZCBydW5fc3VidGVzdChzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcXG4gXFx0aWYgKCF0ZXN0X19zdGFydF9zdWJ0ZXN0X3dpdGhfZGVzYyhzdWJzcGVjLVxcdTAwM2VuYW1lLCBzdWJzcGVjLVxcdTAwM2VkZXNjcmlwdGlvbikpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuK1xcdGlmIChzcGVjLVxcdTAwM2Vza2lwX3JlYXNvbikge1xcbitcXHRcXHRwcmludGYoXFxcIiVzOlNLSVA6ICVzXFxcXG5cXFwiLCBfX2Z1bmNfXywgc3BlYy1cXHUwMDNlc2tpcF9yZWFzb24pO1xcbitcXHRcXHR0ZXN0X19za2lwKCk7XFxuK1xcdFxcdHJldHVybjtcXG4rXFx0fVxcbitcXG4gXFx0aWYgKChnZXRfY3VycmVudF9hcmNoKCkgXFx1MDAyNiBzcGVjLVxcdTAwM2VhcmNoX21hc2spID09IDApIHtcXG4gXFx0XFx0dGVzdF9fc2tpcCgpO1xcbiBcXHRcXHRyZXR1cm47XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDIwOjMwOjA2LjUyNDYzOTk5NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjgzNDEyODc1NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYsIGFkZGluZyBhIF9fc2tpcCBtYWNybyB0byBza2lwIHVuc3VwcG9ydGVkIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyBkdW1teSB0ZXN0cy4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRjNThjNTM3MDE3MmFlNTg3NzkxOTk4M2NmNzM3YTlhZDM3OWQwOTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAyMDozMDowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbmluZGV4IGJmMGQzMDRlMGU1OWMuLjUwNjA5ZjNiMDU2NGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbkBAIC0yMzMsOCArMjMzLDkgQEAgU0VDKFwic3lzY2FsbFwiKVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfYXJtNjRcbiBfX2Rlc2NyaXB0aW9uKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4raW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KVxuIHtcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5pbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5AQCAtMTA2LDYgKzEwNiwxMSBAQFxuICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXJcbiAgKiAgICAgICAgICAgICAgICAgICBhbGlhcywgd2hpbGUgdGhlIG9yaWdpbmFsIHByb2dyYW0gbmFtZSBzdGF5cyBtYXRjaGFibGUuXG4gICpcbisgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuKyAqICAgICAgICAgICAgICAgICAgIHJ1bm5pbmcgaXQuIEZvciBwbGFjZWhvbGRlciBwcm9ncmFtcyB0aGF0IHN0YW5kIGluIGZvciBhXG4rICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lc1xuKyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuKyAqXG4gICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuXG4gICpcbiAgKiBfX2ZsYWcgICAgICAgICAgICBBZGRzIG9uZSBmbGFnIHVzZSBmb3IgdGhlIHByb2dyYW0sIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSB2YWxpZDpcbkBAIC0xMzksNiArMTQ0LDcgQEBcbiAjZGVmaW5lIF9fZmFpbHVyZVx0XHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3RfZmFpbHVyZVwiKVxuICNkZWZpbmUgX19zdWNjZXNzXHRcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF9zdWNjZXNzXCIpXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwidGVzdF9kZXNjcmlwdGlvbj1cIiBkZXNjKVxuKyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcInRlc3Rfc2tpcD1cIiByZWFzb24pXG4gI2RlZmluZSBfX21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcInRlc3RfZXhwZWN0X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3Rfbm90X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PVwiIG1zZylcbkBAIC0yNTUsMTEgKzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpXG4gI2RlZmluZSBDQU5fVVNFX0dPVE9MXG4gI2VuZGlmXG4gXG4tI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4rI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVClcbiAjZGVmaW5lIENBTl9VU0VfQlBGX1NUXG4gI2VuZGlmXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbmluZGV4IGQwNTVmYzdiM2I5NWQuLjkwNGI2ZjEyZDc1NDggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG5AQCAtMjk5LDcgKzI5OSwxNCBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCJyMyA9IDI0O1wiXG4gXHRcdFwiaWYgcjEgXHUwMDNlIDB4NyBnb3RvICsyO1wiXG4gXHRcdFwicjAgPSByMjtcIlxuKyNpZmRlZiBfX2NsYW5nX19cbiBcdFx0XCJnb3RvbCArMTtcIlxuKyNlbHNlXG4rXHRcdC8qIGdhcyBtaXMtcGFyc2VzICdnb3RvbCArMScgYXMgJ2dvdG8gbCsxJywgc2FtZSBlbmNvZGluZ1xuK1x0XHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxuK1x0XHQgKi9cbitcdFx0XCJnb3RvbCAxO1wiXG4rI2VuZGlmXG4gXHRcdFwicjAgPSByMztcIlxuIFx0XHRcImV4aXQ7XCJcbiBcdFx0OlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbkBAIC0xMDMsOCArMTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxuIFxuIFNFQyhcInRjXCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcIilcbiBfX3N1Y2Nlc3Ncbi1pbnQgdGVzdF9zdGFja19hcmdfYmlnKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbitpbnQgZHVtbXlfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXG4ge1xuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5pbmRleCBiZWUyZWVlYzAyMWQ3Li5jZTAzMDFhNDFmYTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuQEAgLTEyNCw2ICsxMjQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3ByZWNpc2lvbl9icGYyYnBmKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcIilcbitfX3NraXAoXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuQEAgLTgsNyArOCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9CU1dBUCkpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIkJTV0FQLCAxNlwiKVxuQEAgLTExNyw2ICsxMTcsNyBAQCBsMF8lPTpcdFx0XHRcdFx0XHRcdFxcXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5pbmRleCBkNWQ4ZjI0ZGYzOTQ5Li5jMGZkMzBhM2E0YzEzIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5AQCAtNTIsNiArNTIsNyBAQCBfX25ha2VkIHZvaWQgZ290b2xfbGFyZ2VfaW1tKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbkBAIC05LDEzICs5LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4tXG4tc3RydWN0IHtcbi1cdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuLVx0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuLVx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbi19IGFyZW5hIFNFQyhcIi5tYXBzXCIpO1xuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9MRFNYKSlcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiTERTWCwgUzhcIilcbkBAIC0yNjMsNiArMjU3LDE0IEBAIF9fbmFrZWQgdm9pZCBsZHN4X2N0eF84KHZvaWQpXG4gXHQ6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbisjaWZkZWYgX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1RcbitcbitzdHJ1Y3Qge1xuK1x0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7XG4rXHRfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7XG4rXHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xuK30gYXJlbmEgU0VDKFwiLm1hcHNcIik7XG4rXG4gU0VDKFwic3lzY2FsbFwiKVxuIF9fZGVzY3JpcHRpb24oXCJBcmVuYSBMRFNYIERpc2FzbVwiKVxuIF9fc3VjY2Vzc1xuQEAgLTQzMiwxMCArNDM0LDEzIEBAIHZvaWQga2Z1bmNfcm9vdCh2b2lkKVxuIFx0YnBmX2FyZW5hX2FsbG9jX3BhZ2VzKDAsIDAsIDAsIDAsIDApO1xuIH1cbiBcbisjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi9cbitcbiAjZWxzZVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG5pbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbkBAIC0yNjcsNiArMjY3LDcgQEAgX19uYWtlZCB2b2lkIGxvYWRfYWNxdWlyZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIkNsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmVcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5pbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5AQCAtOCw3ICs4LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4rXHQoX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX01PVlNYKSlcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiTU9WMzJTWCwgUzhcIilcbkBAIC0zNDMsNiArMzQzLDcgQEAgbGFiZWxfJT06IFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuaW5kZXggZWEwYTdlNzMzMzFkYS4uM2Q5OTk0YTUyNDY0ZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbkBAIC0zNzcsNiArMzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXG4gXG4gU0VDKFwia3Byb2JlXCIpXG4gX19kZXNjcmlwdGlvbihcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuQEAgLTksNyArOSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxXCIpXG5AQCAtMTI3MSw2ICsxMjcxLDcgQEAgX19uYWtlZCB2b2lkIHNtb2QzMl9pbnRfbWluX21vZF9uZWcyX2ltbSh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG5pbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbkBAIC00MzYsNiArNDM2LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19zZXF1ZW50aWFsX2NhbGxzKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuaW5kZXggYzlmZTQ4NTdkYTNmNS4uOGU0MzI1MjczYjNkOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG5AQCAtMTc0LDYgKzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcbmluZGV4IDcyZjFlYjAwNjA3NDguLjBhYmJlZTVjZTEwOTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5AQCAtMjkwLDYgKzI5MCw3IEBAIF9fbmFrZWQgdm9pZCBzdG9yZV9yZWxlYXNlX3dpdGhfaW52YWxpZF9yZWcodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuaW5kZXggMDc4MDc3NTdiNTE4ZC4uNzk0YTdkZmIwNTc5NiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XG4gXHRpbnQgYXJjaF9tYXNrO1xuIFx0aW50IGxvYWRfbWFzaztcbiBcdGludCBsaW5lYXJfc3o7XG4rXHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcbiBcdGJvb2wgYXV4aWxpYXJ5O1xuIFx0Ym9vbCB2YWxpZDtcbiB9O1xuQEAgLTQ1Niw2ICs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcbiBcdFx0XHRjb250aW51ZTtcbiBcdFx0aWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3RfZGVzY3JpcHRpb249XCIpKSkge1xuIFx0XHRcdGRlc2NyaXB0aW9uID0gdmFsO1xuK1x0XHR9IGVsc2UgaWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3Rfc2tpcD1cIikpKSB7XG4rXHRcdFx0c3BlYy1cdTAwM2Vza2lwX3JlYXNvbiA9IHZhbDtcbiBcdFx0fSBlbHNlIGlmIChzdHJjbXAocywgXCJ0ZXN0X2V4cGVjdF9mYWlsdXJlXCIpID09IDApIHtcbiBcdFx0XHRzcGVjLVx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xuIFx0XHRcdHNwZWMtXHUwMDNlbW9kZV9tYXNrIHw9IFBSSVY7XG5AQCAtMTMyNyw2ICsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXG4gXHRpZiAoIXRlc3RfX3N0YXJ0X3N1YnRlc3Rfd2l0aF9kZXNjKHN1YnNwZWMtXHUwMDNlbmFtZSwgc3Vic3BlYy1cdTAwM2VkZXNjcmlwdGlvbikpXG4gXHRcdHJldHVybjtcbiBcbitcdGlmIChzcGVjLVx1MDAzZXNraXBfcmVhc29uKSB7XG4rXHRcdHByaW50ZihcIiVzOlNLSVA6ICVzXFxuXCIsIF9fZnVuY19fLCBzcGVjLVx1MDAzZXNraXBfcmVhc29uKTtcbitcdFx0dGVzdF9fc2tpcCgpO1xuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4gXHRpZiAoKGdldF9jdXJyZW50X2FyY2goKSBcdTAwMjYgc3BlYy1cdTAwM2VhcmNoX21hc2spID09IDApIHtcbiBcdFx0dGVzdF9fc2tpcCgpO1xuIFx0XHRyZXR1cm47XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQyMDozMDowNi41MjQ2NDIzMDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzQxMjYxNTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogQW5hbHl6aW5nIHRoZSBCUEYgU2VsZnRlc3QgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZm9jdXNlZCBzb2xlbHkgb24gbW9kaWZpY2F0aW9ucyB3aXRoaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gLiBJdCdzIGludHJvZHVjaW5nIGEgYF9fc2tpcGAgbWFjcm8sIHdoaWNoIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGNvbmRpdGlvbmFsbHkgZGlzYWJsaW5nIHRlc3RzIHdoZW4gdGhlIHJlcXVpcmVkIGZlYXR1cmVzIGFyZW4ndCBwcmVzZW50LiBBbmQgaXQncyBhbHNvIG1vZGlmeWluZyBgdGVzdF9sb2FkZXIuY2AgdG8gaGFuZGxlIHBhcnNpbmcgYSBgdGVzdF9za2lwPWAgZGlyZWN0aXZlLCBhZ2FpbiwgZGVzaWduZWQgdG8gYnlwYXNzIHRlc3QgZXhlY3V0aW9uLlxuXG5DcnVjaWFsbHksIHRoZXJlJ3Mgbm90aGluZyBoZXJlIHRoYXQgdG91Y2hlcyB0aGUgY29yZSBrZXJuZWwsIGFueSBkcml2ZXJzLCBvciBhbnkgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlIGNvZGUuIEFsbCBjaGFuZ2VzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBCUEYgc2VsZnRlc3QgaW5mcmFzdHJ1Y3R1cmUgaXRzZWxmLiBUaGF0IG1lYW5zIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgd291bGQgd2FycmFudCBmdXp6aW5nLlxuXG5CZWZvcmUgSSBnaXZlIHRoZSBcImFsbCBjbGVhcixcIiBsZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGRpZmYuIFRoZSBtb2RpZmllZCBmaWxlcyBpbmNsdWRlOlxuXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaGBcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jYFxuXG5ZZXMsIGFsbCB0aG9zZSBmaWxlcyBhcmUgZXhhY3RseSB3aGVyZSBJIGV4cGVjdGVkIHRoZW0gdG8gYmUsIGNvbmZpcm1pbmcgdGhlIHNjb3BlIG9mIHRoZSBjaGFuZ2UuIFRoZXJlZm9yZSwgSSdtIGNvbmZpZGVudCB0aGF0IHRoZXNlIG1vZGlmaWNhdGlvbnMgYXJlIHB1cmVseSBjb25maW5lZCB0byB0aGUgQlBGIHRlc3RpbmcgZW52aXJvbm1lbnQuIEknbSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjkzMCwiT3V0cHV0VG9rZW5zIjo4NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDIwOjMwOjE0Ljg2NTkwNjc2M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZiwgYWRkaW5nIGEgX19za2lwIG1hY3JvIHRvIHNraXAgdW5zdXBwb3J0ZWQgdGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nIGR1bW15IHRlc3RzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZiwgYWRkaW5nIGEgX19za2lwIG1hY3JvIHRvIHNraXAgdW5zdXBwb3J0ZWQgdGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nIGR1bW15IHRlc3RzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMjA6MzA6MTQuODY1OTI5MzM0WiIsIlNlcSI6NSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowrljtx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-21 20:26:38 +0000 UTC FinishedAt: 2026-08-21 20:30:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDIwOjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZiwgYWRkaW5nIGEgX19za2lwIG1hY3JvIHRvIHNraXAgdW5zdXBwb3J0ZWQgdGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nIGR1bW15IHRlc3RzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAyMDozMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRjNThjNTM3MDE3MmFlNTg3NzkxOTk4M2NmNzM3YTlhZDM3OWQwOTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAyMDozMDowMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5pbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5AQCAtMjMzLDggJiM0MzsyMzMsOSBAQCBTRUMoXCYjMzQ7c3lzY2FsbFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX2FybTY0XG4gX19kZXNjcmlwdGlvbihcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWRcJiMzNDspXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4mIzQzO2ludCBkdW1teV90ZXN0KHZvaWQgKmN0eClcbiB7XG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuaW5kZXggNWVhY2YxYjQzMjUyMS4uZWI4OGQ5Y2U2YzM0OCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuQEAgLTEwNiw2ICYjNDM7MTA2LDExIEBAXG4gICogX19kZXNjcmlwdGlvbiAgICAgVGV4dCB0byBiZSB1c2VkIGZvciBkaXNwbGF5IGFuZCBhcyBhbiBhZGRpdGlvbmFsIGZpbHRlclxuICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS5cbiAgKlxuJiM0MzsgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYVxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBmZWF0dXJlIHRoZSB0b29sY2hhaW4gb3IgSklUIGNhbm5vdCBwcm92aWRlLCBzbyBhIHJ1biBkb2VzXG4mIzQzOyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuJiM0MzsgKlxuICAqIF9fbG9nX2xldmVsICAgICAgIExvZyBsZXZlbCB0byB1c2UgZm9yIHRoZSBwcm9ncmFtLCBudW1lcmljIHZhbHVlIGV4cGVjdGVkLlxuICAqXG4gICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6XG5AQCAtMTM5LDYgJiM0MzsxNDQsNyBAQFxuICNkZWZpbmUgX19mYWlsdXJlXHRcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfZmFpbHVyZVwmIzM0OylcbiAjZGVmaW5lIF9fc3VjY2Vzc1x0XHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X3N1Y2Nlc3NcJiMzNDspXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZGVzY3JpcHRpb249XCYjMzQ7IGRlc2MpXG4mIzQzOyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X3NraXA9XCYjMzQ7IHJlYXNvbilcbiAjZGVmaW5lIF9fbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X21zZ191bnByaXY9XCYjMzQ7IG1zZylcbiAjZGVmaW5lIF9fbm90X21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X2V4cGVjdF9ub3RfbXNnX3VucHJpdj1cJiMzNDsgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfeGxhdGVkX3VucHJpdj1cJiMzNDsgbXNnKVxuQEAgLTI1NSwxMSAmIzQzOzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfR09UT0wpKVxuICNkZWZpbmUgQ0FOX1VTRV9HT1RPTFxuICNlbmRpZlxuIFxuLSNpZiBfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MzsjaWYgX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NUKVxuICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1RcbiAjZW5kaWZcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xuaW5kZXggZDA1NWZjN2IzYjk1ZC4uOTA0YjZmMTJkNzU0OCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbkBAIC0yOTksNyAmIzQzOzI5OSwxNCBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCYjMzQ7cjMgPSAyNDtcJiMzNDtcbiBcdFx0XCYjMzQ7aWYgcjEgXHUwMDNlIDB4NyBnb3RvICYjNDM7MjtcJiMzNDtcbiBcdFx0XCYjMzQ7cjAgPSByMjtcJiMzNDtcbiYjNDM7I2lmZGVmIF9fY2xhbmdfX1xuIFx0XHRcJiMzNDtnb3RvbCAmIzQzOzE7XCYjMzQ7XG4mIzQzOyNlbHNlXG4mIzQzO1x0XHQvKiBnYXMgbWlzLXBhcnNlcyAmIzM5O2dvdG9sICYjNDM7MSYjMzk7IGFzICYjMzk7Z290byBsJiM0MzsxJiMzOTssIHNhbWUgZW5jb2RpbmdcbiYjNDM7XHRcdCAqIHdpdGhvdXQgdGhlIHNpZ24gKGJpbnV0aWxzIFBSIGdhcy8zNDU1OCkuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdFwmIzM0O2dvdG9sIDE7XCYjMzQ7XG4mIzQzOyNlbmRpZlxuIFx0XHRcJiMzNDtyMCA9IHIzO1wmIzM0O1xuIFx0XHRcJiMzNDtleGl0O1wmIzM0O1xuIFx0XHQ6XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuaW5kZXggYWQ5ZDRiZmUxNWRjYy4uZWVkOTdkNTgyNTE1NyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuQEAgLTEwMyw4ICYjNDM7MTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxuIFxuIFNFQyhcJiMzNDt0Y1wmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7c3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcJiMzNDspXG4gX19zdWNjZXNzXG4taW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpXG4mIzQzO2ludCBkdW1teV90ZXN0KHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbiB7XG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmNcbmluZGV4IGJlZTJlZWVjMDIxZDcuLmNlMDMwMWE0MWZhOTQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5AQCAtMTI0LDYgJiM0MzsxMjQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3ByZWNpc2lvbl9icGYyYnBmKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3N0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbmluZGV4IGNmZmFmMzYxOTJiYzUuLjQ4ZmZiNWIyNDJkMjQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbkBAIC04LDcgJiM0Mzs4LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4mIzQzO1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9CU1dBUCkpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0JTV0FQLCAxNlwmIzM0OylcbkBAIC0xMTcsNiAmIzQzOzExNyw3IEBAIGwwXyU9Olx0XHRcdFx0XHRcdFx0XFxcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5pbmRleCBkNWQ4ZjI0ZGYzOTQ5Li5jMGZkMzBhM2E0YzEzIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5AQCAtNTIsNiAmIzQzOzUyLDcgQEAgX19uYWtlZCB2b2lkIGdvdG9sX2xhcmdlX2ltbSh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXG5pbmRleCA0MTM0MDg3N2RjOWQ5Li43NTc2MmUxMWI0NDNmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuQEAgLTksMTMgJiM0Mzs5LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4tXG4tc3RydWN0IHtcbi1cdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuLVx0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuLVx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbi19IGFyZW5hIFNFQyhcJiMzNDsubWFwc1wmIzM0Oyk7XG4mIzQzO1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9MRFNYKSlcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7TERTWCwgUzhcJiMzNDspXG5AQCAtMjYzLDYgJiM0MzsyNTcsMTQgQEAgX19uYWtlZCB2b2lkIGxkc3hfY3R4Xzgodm9pZClcbiBcdDogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuJiM0MzsjaWZkZWYgX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1RcbiYjNDM7XG4mIzQzO3N0cnVjdCB7XG4mIzQzO1x0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7XG4mIzQzO1x0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuJiM0MztcdF9fdWludChtYXhfZW50cmllcywgMSk7XG4mIzQzO30gYXJlbmEgU0VDKFwmIzM0Oy5tYXBzXCYjMzQ7KTtcbiYjNDM7XG4gU0VDKFwmIzM0O3N5c2NhbGxcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtBcmVuYSBMRFNYIERpc2FzbVwmIzM0OylcbiBfX3N1Y2Nlc3NcbkBAIC00MzIsMTAgJiM0Mzs0MzQsMTMgQEAgdm9pZCBrZnVuY19yb290KHZvaWQpXG4gXHRicGZfYXJlbmFfYWxsb2NfcGFnZXMoMCwgMCwgMCwgMCwgMCk7XG4gfVxuIFxuJiM0MzsjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi9cbiYjNDM7XG4gI2Vsc2VcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbmluZGV4IGQxNzAyNmQ3NDgwZDguLmJjYzM0ZTc5OGM2MzQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xuQEAgLTI2Nyw2ICYjNDM7MjY3LDcgQEAgX19uYWtlZCB2b2lkIGxvYWRfYWNxdWlyZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0NsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZSwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O0NsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZVwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5pbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5AQCAtOCw3ICYjNDM7OCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtNT1YzMlNYLCBTOFwmIzM0OylcbkBAIC0zNDMsNiAmIzQzOzM0Myw3IEBAIGxhYmVsXyU9OiBcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG5pbmRleCBlYTBhN2U3MzMzMWRhLi4zZDk5OTRhNTI0NjRlIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuQEAgLTM3Nyw2ICYjNDM7Mzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXG4gXG4gU0VDKFwmIzM0O2twcm9iZVwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuaW5kZXggOTVmMzIzOWNlMjI4Yi4uZDZjYmUxZTI3ZmQ2YiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcbkBAIC05LDcgJiM0Mzs5LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4mIzQzO1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxXCYjMzQ7KVxuQEAgLTEyNzEsNiAmIzQzOzEyNzEsNyBAQCBfX25ha2VkIHZvaWQgc21vZDMyX2ludF9taW5fbW9kX25lZzJfaW1tKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG5pbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbkBAIC00MzYsNiAmIzQzOzQzNiw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfc2VxdWVudGlhbF9jYWxscyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG5pbmRleCBjOWZlNDg1N2RhM2Y1Li44ZTQzMjUyNzNiM2Q4IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcbkBAIC0xNzQsNiAmIzQzOzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZClcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5pbmRleCA3MmYxZWIwMDYwNzQ4Li4wYWJiZWU1Y2UxMDkyIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuY1xuQEAgLTI5MCw2ICYjNDM7MjkwLDcgQEAgX19uYWtlZCB2b2lkIHN0b3JlX3JlbGVhc2Vfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Q2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgc3RvcmUtcmVsZWFzZVwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG5pbmRleCAwNzgwNzc1N2I1MThkLi43OTRhN2RmYjA1Nzk2IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG5AQCAtNzAsNiAmIzQzOzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XG4gXHRpbnQgYXJjaF9tYXNrO1xuIFx0aW50IGxvYWRfbWFzaztcbiBcdGludCBsaW5lYXJfc3o7XG4mIzQzO1x0Y29uc3QgY2hhciAqc2tpcF9yZWFzb247XG4gXHRib29sIGF1eGlsaWFyeTtcbiBcdGJvb2wgdmFsaWQ7XG4gfTtcbkBAIC00NTYsNiAmIzQzOzQ1Nyw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfdGVzdF9zcGVjKHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLFxuIFx0XHRcdGNvbnRpbnVlO1xuIFx0XHRpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsIFwmIzM0O3Rlc3RfZGVzY3JpcHRpb249XCYjMzQ7KSkpIHtcbiBcdFx0XHRkZXNjcmlwdGlvbiA9IHZhbDtcbiYjNDM7XHRcdH0gZWxzZSBpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsIFwmIzM0O3Rlc3Rfc2tpcD1cJiMzNDspKSkge1xuJiM0MztcdFx0XHRzcGVjLVx1MDAzZXNraXBfcmVhc29uID0gdmFsO1xuIFx0XHR9IGVsc2UgaWYgKHN0cmNtcChzLCBcJiMzNDt0ZXN0X2V4cGVjdF9mYWlsdXJlXCYjMzQ7KSA9PSAwKSB7XG4gXHRcdFx0c3BlYy1cdTAwM2Vwcml2LmV4cGVjdF9mYWlsdXJlID0gdHJ1ZTtcbiBcdFx0XHRzcGVjLVx1MDAzZW1vZGVfbWFzayB8PSBQUklWO1xuQEAgLTEzMjcsNiAmIzQzOzEzMzAsMTIgQEAgdm9pZCBydW5fc3VidGVzdChzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcbiBcdGlmICghdGVzdF9fc3RhcnRfc3VidGVzdF93aXRoX2Rlc2Moc3Vic3BlYy1cdTAwM2VuYW1lLCBzdWJzcGVjLVx1MDAzZWRlc2NyaXB0aW9uKSlcbiBcdFx0cmV0dXJuO1xuIFxuJiM0MztcdGlmIChzcGVjLVx1MDAzZXNraXBfcmVhc29uKSB7XG4mIzQzO1x0XHRwcmludGYoXCYjMzQ7JXM6U0tJUDogJXNcXG5cJiMzNDssIF9fZnVuY19fLCBzcGVjLVx1MDAzZXNraXBfcmVhc29uKTtcbiYjNDM7XHRcdHRlc3RfX3NraXAoKTtcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0aWYgKChnZXRfY3VycmVudF9hcmNoKCkgXHUwMDI2IHNwZWMtXHUwMDNlYXJjaF9tYXNrKSA9PSAwKSB7XG4gXHRcdHRlc3RfX3NraXAoKTtcbiBcdFx0cmV0dXJuO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDIwOjMwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgaW4gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLCBhZGRpbmcgYSBfX3NraXAgbWFjcm8gdG8gc2tpcCB1bnN1cHBvcnRlZCB0ZXN0cyBpbnN0ZWFkIG9mIHJ1bm5pbmcgZHVtbXkgdGVzdHMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGM1OGM1MzcwMTcyYWU1ODc3OTE5OTgzY2Y3MzdhOWFkMzc5ZDA5MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDIxIDIwOjMwOjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYwppbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYwpAQCAtMjMzLDggJiM0MzsyMzMsOSBAQCBTRUMoJiMzNDtzeXNjYWxsJiMzNDspCiBfX2FyY2hfeDg2XzY0CiBfX2FyY2hfYXJtNjQKIF9fZGVzY3JpcHRpb24oJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwotaW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpCiYjNDM7aW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaAppbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaAomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaApAQCAtMTA2LDYgJiM0MzsxMDYsMTEgQEAKICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXIKICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS4KICAqCiYjNDM7ICogX19za2lwICAgICAgICAgICAgUmVwb3J0IHRoZSB0ZXN0IGFzIFNLSVAgd2l0aCB0aGUgZ2l2ZW4gcmVhc29uIGluc3RlYWQgb2YKJiM0MzsgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYQomIzQzOyAqICAgICAgICAgICAgICAgICAgIGZlYXR1cmUgdGhlIHRvb2xjaGFpbiBvciBKSVQgY2Fubm90IHByb3ZpZGUsIHNvIGEgcnVuIGRvZXMKJiM0MzsgKiAgICAgICAgICAgICAgICAgICBub3QgcmVwb3J0IE9LIGZvciBjb3ZlcmFnZSBpdCBuZXZlciBleGVjdXRlZC4KJiM0MzsgKgogICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuCiAgKgogICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6CkBAIC0xMzksNiAmIzQzOzE0NCw3IEBACiAjZGVmaW5lIF9fZmFpbHVyZQkJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X2ZhaWx1cmUmIzM0OykKICNkZWZpbmUgX19zdWNjZXNzCQlfX3Rlc3RfdGFnKCYjMzQ7dGVzdF9leHBlY3Rfc3VjY2VzcyYjMzQ7KQogI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2Rlc2NyaXB0aW9uPSYjMzQ7IGRlc2MpCiYjNDM7I2RlZmluZSBfX3NraXAocmVhc29uKQkJX190ZXN0X3RhZygmIzM0O3Rlc3Rfc2tpcD0mIzM0OyByZWFzb24pCiAjZGVmaW5lIF9fbXNnX3VucHJpdihtc2cpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF9tc2dfdW5wcml2PSYjMzQ7IG1zZykKICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF9ub3RfbXNnX3VucHJpdj0mIzM0OyBtc2cpCiAjZGVmaW5lIF9feGxhdGVkX3VucHJpdihtc2cpCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PSYjMzQ7IG1zZykKQEAgLTI1NSwxMSAmIzQzOzI2MSwxMSBAQAogICAgICAoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSAmYW1wOyZhbXA7IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwJCVwKICAgICAgZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8CVwKICAgICAgZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpICZhbXA7JmFtcDsJCQkJXAotCV9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOAomIzQzOwkoX19jbGFuZ19tYWpvcl9fICZndDs9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpCiAjZGVmaW5lIENBTl9VU0VfR09UT0wKICNlbmRpZgogCi0jaWYgX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7I2lmIF9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfU1QpCiAjZGVmaW5lIENBTl9VU0VfQlBGX1NUCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmMKaW5kZXggZDA1NWZjN2IzYjk1ZC4uOTA0YjZmMTJkNzU0OCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jCkBAIC0yOTksNyAmIzQzOzI5OSwxNCBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZCkKIAkJJiMzNDtyMyA9IDI0OyYjMzQ7CiAJCSYjMzQ7aWYgcjEgJmd0OyAweDcgZ290byAmIzQzOzI7JiMzNDsKIAkJJiMzNDtyMCA9IHIyOyYjMzQ7CiYjNDM7I2lmZGVmIF9fY2xhbmdfXwogCQkmIzM0O2dvdG9sICYjNDM7MTsmIzM0OwomIzQzOyNlbHNlCiYjNDM7CQkvKiBnYXMgbWlzLXBhcnNlcyAmIzM5O2dvdG9sICYjNDM7MSYjMzk7IGFzICYjMzk7Z290byBsJiM0MzsxJiMzOTssIHNhbWUgZW5jb2RpbmcKJiM0MzsJCSAqIHdpdGhvdXQgdGhlIHNpZ24gKGJpbnV0aWxzIFBSIGdhcy8zNDU1OCkuCiYjNDM7CQkgKi8KJiM0MzsJCSYjMzQ7Z290b2wgMTsmIzM0OwomIzQzOyNlbmRpZgogCQkmIzM0O3IwID0gcjM7JiMzNDsKIAkJJiMzNDtleGl0OyYjMzQ7CiAJCToKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKaW5kZXggYWQ5ZDRiZmUxNWRjYy4uZWVkOTdkNTgyNTE1NyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKQEAgLTEwMyw4ICYjNDM7MTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKQogCiBTRUMoJiMzNDt0YyYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwotaW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpCiYjNDM7aW50IGR1bW15X3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMKaW5kZXggYmVlMmVlZWMwMjFkNy4uY2UwMzAxYTQxZmE5NCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jCkBAIC0xMjQsNiAmIzQzOzEyNCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcHJlY2lzaW9uX2JwZjJicGYodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3N0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKQEAgLTgsNyAmIzQzOzgsNyBAQAogCShkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOyBcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0JTV0FQKSkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7QlNXQVAsIDE2JiMzNDspCkBAIC0xMTcsNiAmIzQzOzExNyw3IEBAIGwwXyU9OgkJCQkJCQlcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKQEAgLTUyLDYgJiM0Mzs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmMKaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jCkBAIC05LDEzICYjNDM7OSw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKLQotc3RydWN0IHsKLQlfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTsKLQlfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7Ci0JX191aW50KG1heF9lbnRyaWVzLCAxKTsKLX0gYXJlbmEgU0VDKCYjMzQ7Lm1hcHMmIzM0Oyk7CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0xEU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtMRFNYLCBTOCYjMzQ7KQpAQCAtMjYzLDYgJiM0MzsyNTcsMTQgQEAgX19uYWtlZCB2b2lkIGxkc3hfY3R4Xzgodm9pZCkKIAk6IF9fY2xvYmJlcl9hbGwpOwogfQogCiYjNDM7I2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUCiYjNDM7CiYjNDM7c3RydWN0IHsKJiM0MzsJX191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7CiYjNDM7CV9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTsKJiM0MzsJX191aW50KG1heF9lbnRyaWVzLCAxKTsKJiM0Mzt9IGFyZW5hIFNFQygmIzM0Oy5tYXBzJiMzNDspOwomIzQzOwogU0VDKCYjMzQ7c3lzY2FsbCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O0FyZW5hIExEU1ggRGlzYXNtJiMzNDspCiBfX3N1Y2Nlc3MKQEAgLTQzMiwxMCAmIzQzOzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZCkKIAlicGZfYXJlbmFfYWxsb2NfcGFnZXMoMCwgMCwgMCwgMCwgMCk7CiB9CiAKJiM0MzsjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi8KJiM0MzsKICNlbHNlCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYwppbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jCkBAIC0yNjcsNiAmIzQzOzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Q2xhbmcgdmVyc2lvbiAmbHQ7IDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZSYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwppbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwpAQCAtOCw3ICYjNDM7OCw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKJiM0MzsJKF9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtNT1YzMlNYLCBTOCYjMzQ7KQpAQCAtMzQzLDYgJiM0MzszNDMsNyBAQCBsYWJlbF8lPTogCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jCmluZGV4IGVhMGE3ZTczMzMxZGEuLjNkOTk5NGE1MjQ2NGUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYwpAQCAtMzc3LDYgJiM0MzszNzcsNyBAQCBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZCkKIAogU0VDKCYjMzQ7a3Byb2JlJiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkLCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkJiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYwppbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMKQEAgLTksNyAmIzQzOzksNyBAQAogCShkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOyBcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NESVZfU01PRCkpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O1NESVYzMiwgbm9uLXplcm8gaW1tIGRpdmlzb3IsIGNoZWNrIDEmIzM0OykKQEAgLTEyNzEsNiAmIzQzOzEyNzEsNyBAQCBfX25ha2VkIHZvaWQgc21vZDMyX2ludF9taW5fbW9kX25lZzJfaW1tKHZvaWQpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYwppbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jCkBAIC00MzYsNiAmIzQzOzQzNiw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfc2VxdWVudGlhbF9jYWxscyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYwppbmRleCBjOWZlNDg1N2RhM2Y1Li44ZTQzMjUyNzNiM2Q4IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jCkBAIC0xNzQsNiAmIzQzOzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYwppbmRleCA3MmYxZWIwMDYwNzQ4Li4wYWJiZWU1Y2UxMDkyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMKQEAgLTI5MCw2ICYjNDM7MjkwLDcgQEAgX19uYWtlZCB2b2lkIHN0b3JlX3JlbGVhc2Vfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgc3RvcmUtcmVsZWFzZSwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O0NsYW5nIHZlcnNpb24gJmx0OyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlJiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jCmluZGV4IDA3ODA3NzU3YjUxOGQuLjc5NGE3ZGZiMDU3OTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jCkBAIC03MCw2ICYjNDM7NzAsNyBAQCBzdHJ1Y3QgdGVzdF9zcGVjIHsKIAlpbnQgYXJjaF9tYXNrOwogCWludCBsb2FkX21hc2s7CiAJaW50IGxpbmVhcl9zejsKJiM0MzsJY29uc3QgY2hhciAqc2tpcF9yZWFzb247CiAJYm9vbCBhdXhpbGlhcnk7CiAJYm9vbCB2YWxpZDsKIH07CkBAIC00NTYsNiAmIzQzOzQ1Nyw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfdGVzdF9zcGVjKHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLAogCQkJY29udGludWU7CiAJCWlmICgodmFsID0gc3RyX2hhc19wZngocywgJiMzNDt0ZXN0X2Rlc2NyaXB0aW9uPSYjMzQ7KSkpIHsKIAkJCWRlc2NyaXB0aW9uID0gdmFsOwomIzQzOwkJfSBlbHNlIGlmICgodmFsID0gc3RyX2hhc19wZngocywgJiMzNDt0ZXN0X3NraXA9JiMzNDspKSkgewomIzQzOwkJCXNwZWMtJmd0O3NraXBfcmVhc29uID0gdmFsOwogCQl9IGVsc2UgaWYgKHN0cmNtcChzLCAmIzM0O3Rlc3RfZXhwZWN0X2ZhaWx1cmUmIzM0OykgPT0gMCkgewogCQkJc3BlYy0mZ3Q7cHJpdi5leHBlY3RfZmFpbHVyZSA9IHRydWU7CiAJCQlzcGVjLSZndDttb2RlX21hc2sgfD0gUFJJVjsKQEAgLTEzMjcsNiAmIzQzOzEzMzAsMTIgQEAgdm9pZCBydW5fc3VidGVzdChzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlciwKIAlpZiAoIXRlc3RfX3N0YXJ0X3N1YnRlc3Rfd2l0aF9kZXNjKHN1YnNwZWMtJmd0O25hbWUsIHN1YnNwZWMtJmd0O2Rlc2NyaXB0aW9uKSkKIAkJcmV0dXJuOwogCiYjNDM7CWlmIChzcGVjLSZndDtza2lwX3JlYXNvbikgewomIzQzOwkJcHJpbnRmKCYjMzQ7JXM6U0tJUDogJXNcbiYjMzQ7LCBfX2Z1bmNfXywgc3BlYy0mZ3Q7c2tpcF9yZWFzb24pOwomIzQzOwkJdGVzdF9fc2tpcCgpOwomIzQzOwkJcmV0dXJuOwomIzQzOwl9CiYjNDM7CiAJaWYgKChnZXRfY3VycmVudF9hcmNoKCkgJmFtcDsgc3BlYy0mZ3Q7YXJjaF9tYXNrKSA9PSAwKSB7CiAJCXRlc3RfX3NraXAoKTsKIAkJcmV0dXJuOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAyMDozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTMwCgkJCQkJCQlvdXRwdXQ6IDg0CgkJCQkJCQl0aG91Z2h0czogNTczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogQW5hbHl6aW5nIHRoZSBCUEYgU2VsZnRlc3QgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBmb2N1c2VkIHNvbGVseSBvbiBtb2RpZmljYXRpb25zIHdpdGhpbiBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AuIEl0JiMzOTtzIGludHJvZHVjaW5nIGEgYF9fc2tpcGAgbWFjcm8sIHdoaWNoIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGNvbmRpdGlvbmFsbHkgZGlzYWJsaW5nIHRlc3RzIHdoZW4gdGhlIHJlcXVpcmVkIGZlYXR1cmVzIGFyZW4mIzM5O3QgcHJlc2VudC4gQW5kIGl0JiMzOTtzIGFsc28gbW9kaWZ5aW5nIGB0ZXN0X2xvYWRlci5jYCB0byBoYW5kbGUgcGFyc2luZyBhIGB0ZXN0X3NraXA9YCBkaXJlY3RpdmUsIGFnYWluLCBkZXNpZ25lZCB0byBieXBhc3MgdGVzdCBleGVjdXRpb24uCgpDcnVjaWFsbHksIHRoZXJlJiMzOTtzIG5vdGhpbmcgaGVyZSB0aGF0IHRvdWNoZXMgdGhlIGNvcmUga2VybmVsLCBhbnkgZHJpdmVycywgb3IgYW55IHNwZWNpZmljIGFyY2hpdGVjdHVyZSBjb2RlLiBBbGwgY2hhbmdlcyBhcmUgY29udGFpbmVkIHdpdGhpbiB0aGUgQlBGIHNlbGZ0ZXN0IGluZnJhc3RydWN0dXJlIGl0c2VsZi4gVGhhdCBtZWFucyBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4KCkJlZm9yZSBJIGdpdmUgdGhlICYjMzQ7YWxsIGNsZWFyLCYjMzQ7IGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgZGlmZi4gVGhlIG1vZGlmaWVkIGZpbGVzIGluY2x1ZGU6CgoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNgCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNgCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNgCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY2AKKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jYAoKWWVzLCBhbGwgdGhvc2UgZmlsZXMgYXJlIGV4YWN0bHkgd2hlcmUgSSBleHBlY3RlZCB0aGVtIHRvIGJlLCBjb25maXJtaW5nIHRoZSBzY29wZSBvZiB0aGUgY2hhbmdlLiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdGhlc2UgbW9kaWZpY2F0aW9ucyBhcmUgcHVyZWx5IGNvbmZpbmVkIHRvIHRoZSBCUEYgdGVzdGluZyBlbnZpcm9ubWVudC4gSSYjMzk7bSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAyMDozMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYsIGFkZGluZyBhIF9fc2tpcCBtYWNybyB0byBza2lwIHVuc3VwcG9ydGVkIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyBkdW1teSB0ZXN0cy4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYsIGFkZGluZyBhIF9fc2tpcCBtYWNybyB0byBza2lwIHVuc3VwcG9ydGVkIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyBkdW1teSB0ZXN0cy4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMjA6MzA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDIwOjMwOjA0LjkwODAwOTk3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NTc5Mjc1MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgaW4gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLCBhZGRpbmcgYSBfX3NraXAgbWFjcm8gdG8gc2tpcCB1bnN1cHBvcnRlZCB0ZXN0cyBpbnN0ZWFkIG9mIHJ1bm5pbmcgZHVtbXkgdGVzdHMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQyMDozMDowNC45MDgwMTQ3OTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2MTU5NTYwMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0YzU4YzUzNzAxNzJhZTU4Nzc5MTk5ODNjZjczN2E5YWQzNzlkMDkyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDIxIDIwOjMwOjAzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcXG5pbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcXG5AQCAtMjMzLDggKzIzMyw5IEBAIFNFQyhcXFwic3lzY2FsbFxcXCIpXFxuIF9fYXJjaF94ODZfNjRcXG4gX19hcmNoX2FybTY0XFxuIF9fZGVzY3JpcHRpb24oXFxcImFyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkXFxcIilcXG4gX19zdWNjZXNzXFxuLWludCBhcmVuYV9hcmdfc3RhY2sodm9pZCAqY3R4KVxcbitpbnQgZHVtbXlfdGVzdCh2b2lkICpjdHgpXFxuIHtcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxcbmluZGV4IDVlYWNmMWI0MzI1MjEuLmViODhkOWNlNmMzNDggMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxcbkBAIC0xMDYsNiArMTA2LDExIEBAXFxuICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXJcXG4gICogICAgICAgICAgICAgICAgICAgYWxpYXMsIHdoaWxlIHRoZSBvcmlnaW5hbCBwcm9ncmFtIG5hbWUgc3RheXMgbWF0Y2hhYmxlLlxcbiAgKlxcbisgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxcbisgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYVxcbisgKiAgICAgICAgICAgICAgICAgICBmZWF0dXJlIHRoZSB0b29sY2hhaW4gb3IgSklUIGNhbm5vdCBwcm92aWRlLCBzbyBhIHJ1biBkb2VzXFxuKyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxcbisgKlxcbiAgKiBfX2xvZ19sZXZlbCAgICAgICBMb2cgbGV2ZWwgdG8gdXNlIGZvciB0aGUgcHJvZ3JhbSwgbnVtZXJpYyB2YWx1ZSBleHBlY3RlZC5cXG4gICpcXG4gICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6XFxuQEAgLTEzOSw2ICsxNDQsNyBAQFxcbiAjZGVmaW5lIF9fZmFpbHVyZVxcdFxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X2ZhaWx1cmVcXFwiKVxcbiAjZGVmaW5lIF9fc3VjY2Vzc1xcdFxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X3N1Y2Nlc3NcXFwiKVxcbiAjZGVmaW5lIF9fZGVzY3JpcHRpb24oZGVzYylcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2Rlc2NyaXB0aW9uPVxcXCIgZGVzYylcXG4rI2RlZmluZSBfX3NraXAocmVhc29uKVxcdFxcdF9fdGVzdF90YWcoXFxcInRlc3Rfc2tpcD1cXFwiIHJlYXNvbilcXG4gI2RlZmluZSBfX21zZ191bnByaXYobXNnKVxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X21zZ191bnByaXY9XFxcIiBtc2cpXFxuICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpXFx0X190ZXN0X3RhZyhcXFwidGVzdF9leHBlY3Rfbm90X21zZ191bnByaXY9XFxcIiBtc2cpXFxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PVxcXCIgbXNnKVxcbkBAIC0yNTUsMTEgKzI2MSwxMSBAQFxcbiAgICAgIChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcXHRcXHRcXFxcXFxuICAgICAgZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8XFx0XFxcXFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcXHUwMDI2XFx1MDAyNlxcdFxcdFxcdFxcdFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0dPVE9MKSlcXG4gI2RlZmluZSBDQU5fVVNFX0dPVE9MXFxuICNlbmRpZlxcbiBcXG4tI2lmIF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOFxcbisjaWYgX19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVClcXG4gI2RlZmluZSBDQU5fVVNFX0JQRl9TVFxcbiAjZW5kaWZcXG4gXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXFxuaW5kZXggZDA1NWZjN2IzYjk1ZC4uOTA0YjZmMTJkNzU0OCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xcbkBAIC0yOTksNyArMjk5LDE0IEBAIF9fbmFrZWQgdm9pZCBnb3RvbCh2b2lkKVxcbiBcXHRcXHRcXFwicjMgPSAyNDtcXFwiXFxuIFxcdFxcdFxcXCJpZiByMSBcXHUwMDNlIDB4NyBnb3RvICsyO1xcXCJcXG4gXFx0XFx0XFxcInIwID0gcjI7XFxcIlxcbisjaWZkZWYgX19jbGFuZ19fXFxuIFxcdFxcdFxcXCJnb3RvbCArMTtcXFwiXFxuKyNlbHNlXFxuK1xcdFxcdC8qIGdhcyBtaXMtcGFyc2VzICdnb3RvbCArMScgYXMgJ2dvdG8gbCsxJywgc2FtZSBlbmNvZGluZ1xcbitcXHRcXHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0XFxcImdvdG9sIDE7XFxcIlxcbisjZW5kaWZcXG4gXFx0XFx0XFxcInIwID0gcjM7XFxcIlxcbiBcXHRcXHRcXFwiZXhpdDtcXFwiXFxuIFxcdFxcdDpcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xcbkBAIC0xMDMsOCArMTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxcbiBcXG4gU0VDKFxcXCJ0Y1xcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInN0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJzdGFja19hcmdfZmFpbDogbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbi1pbnQgdGVzdF9zdGFja19hcmdfYmlnKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4raW50IGR1bW15X3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxcbiB7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXFxuaW5kZXggYmVlMmVlZWMwMjFkNy4uY2UwMzAxYTQxZmE5NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xcbkBAIC0xMjQsNiArMTI0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19wcmVjaXNpb25fYnBmMmJwZih2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xcbmluZGV4IGNmZmFmMzYxOTJiYzUuLjQ4ZmZiNWIyNDJkMjQgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xcbkBAIC04LDcgKzgsNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0JTV0FQKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiQlNXQVAsIDE2XFxcIilcXG5AQCAtMTE3LDYgKzExNyw3IEBAIGwwXyU9OlxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xcbmluZGV4IGQ1ZDhmMjRkZjM5NDkuLmMwZmQzMGEzYTRjMTMgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xcbkBAIC01Miw2ICs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcXG5pbmRleCA0MTM0MDg3N2RjOWQ5Li43NTc2MmUxMWI0NDNmIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXFxuQEAgLTksMTMgKzksNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuLVxcbi1zdHJ1Y3Qge1xcbi1cXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTtcXG4tXFx0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xcbi1cXHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xcbi19IGFyZW5hIFNFQyhcXFwiLm1hcHNcXFwiKTtcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTERTWCkpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIkxEU1gsIFM4XFxcIilcXG5AQCAtMjYzLDYgKzI1NywxNCBAQCBfX25ha2VkIHZvaWQgbGRzeF9jdHhfOCh2b2lkKVxcbiBcXHQ6IF9fY2xvYmJlcl9hbGwpO1xcbiB9XFxuIFxcbisjaWZkZWYgX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1RcXG4rXFxuK3N0cnVjdCB7XFxuK1xcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xcbitcXHRfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7XFxuK1xcdF9fdWludChtYXhfZW50cmllcywgMSk7XFxuK30gYXJlbmEgU0VDKFxcXCIubWFwc1xcXCIpO1xcbitcXG4gU0VDKFxcXCJzeXNjYWxsXFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiQXJlbmEgTERTWCBEaXNhc21cXFwiKVxcbiBfX3N1Y2Nlc3NcXG5AQCAtNDMyLDEwICs0MzQsMTMgQEAgdm9pZCBrZnVuY19yb290KHZvaWQpXFxuIFxcdGJwZl9hcmVuYV9hbGxvY19wYWdlcygwLCAwLCAwLCAwLCAwKTtcXG4gfVxcbiBcXG4rI2VuZGlmIC8qIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUICovXFxuK1xcbiAjZWxzZVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcXG5pbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xcbkBAIC0yNjcsNiArMjY3LDcgQEAgX19uYWtlZCB2b2lkIGxvYWRfYWNxdWlyZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIkNsYW5nIHZlcnNpb24gXFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IGxvYWQtYWNxdWlyZSwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiQ2xhbmcgdmVyc2lvbiBcXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xcbmluZGV4IGE0ZDg4MTRlYjVlZGMuLjE5NWIyN2E1MTIyNGYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xcbkBAIC04LDcgKzgsNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX01PVlNYKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiTU9WMzJTWCwgUzhcXFwiKVxcbkBAIC0zNDMsNiArMzQzLDcgQEAgbGFiZWxfJT06IFxcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXFxuaW5kZXggZWEwYTdlNzMzMzFkYS4uM2Q5OTk0YTUyNDY0ZSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xcbkBAIC0zNzcsNiArMzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXFxuIFxcbiBTRUMoXFxcImtwcm9iZVxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwicHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXFxuQEAgLTksNyArOSw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfU0RJVl9TTU9EKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiU0RJVjMyLCBub24temVybyBpbW0gZGl2aXNvciwgY2hlY2sgMVxcXCIpXFxuQEAgLTEyNzEsNiArMTI3MSw3IEBAIF9fbmFrZWQgdm9pZCBzbW9kMzJfaW50X21pbl9tb2RfbmVnMl9pbW0odm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXFxuaW5kZXggN2UwY2U1ZGIyOGEwZC4uNTFkMjJmYWY0NTU5ZiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcXG5AQCAtNDM2LDYgKzQzNiw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfc2VxdWVudGlhbF9jYWxscyh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xcbmluZGV4IGM5ZmU0ODU3ZGEzZjUuLjhlNDMyNTI3M2IzZDggMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXFxuQEAgLTE3NCw2ICsxNzQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3JlYWRfd2l0aG91dF93cml0ZV8yKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInN0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcXG5pbmRleCA3MmYxZWIwMDYwNzQ4Li4wYWJiZWU1Y2UxMDkyIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXFxuQEAgLTI5MCw2ICsyOTAsNyBAQCBfX25ha2VkIHZvaWQgc3RvcmVfcmVsZWFzZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIkNsYW5nIHZlcnNpb24gXFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IHN0b3JlLXJlbGVhc2UsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcIkNsYW5nIHZlcnNpb24gXFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IHN0b3JlLXJlbGVhc2VcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXFxuaW5kZXggMDc4MDc3NTdiNTE4ZC4uNzk0YTdkZmIwNTc5NiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXFxuQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XFxuIFxcdGludCBhcmNoX21hc2s7XFxuIFxcdGludCBsb2FkX21hc2s7XFxuIFxcdGludCBsaW5lYXJfc3o7XFxuK1xcdGNvbnN0IGNoYXIgKnNraXBfcmVhc29uO1xcbiBcXHRib29sIGF1eGlsaWFyeTtcXG4gXFx0Ym9vbCB2YWxpZDtcXG4gfTtcXG5AQCAtNDU2LDYgKzQ1Nyw4IEBAIHN0YXRpYyBpbnQgcGFyc2VfdGVzdF9zcGVjKHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLFxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFx0XFx0aWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcXFwidGVzdF9kZXNjcmlwdGlvbj1cXFwiKSkpIHtcXG4gXFx0XFx0XFx0ZGVzY3JpcHRpb24gPSB2YWw7XFxuK1xcdFxcdH0gZWxzZSBpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsIFxcXCJ0ZXN0X3NraXA9XFxcIikpKSB7XFxuK1xcdFxcdFxcdHNwZWMtXFx1MDAzZXNraXBfcmVhc29uID0gdmFsO1xcbiBcXHRcXHR9IGVsc2UgaWYgKHN0cmNtcChzLCBcXFwidGVzdF9leHBlY3RfZmFpbHVyZVxcXCIpID09IDApIHtcXG4gXFx0XFx0XFx0c3BlYy1cXHUwMDNlcHJpdi5leHBlY3RfZmFpbHVyZSA9IHRydWU7XFxuIFxcdFxcdFxcdHNwZWMtXFx1MDAzZW1vZGVfbWFzayB8PSBQUklWO1xcbkBAIC0xMzI3LDYgKzEzMzAsMTIgQEAgdm9pZCBydW5fc3VidGVzdChzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcXG4gXFx0aWYgKCF0ZXN0X19zdGFydF9zdWJ0ZXN0X3dpdGhfZGVzYyhzdWJzcGVjLVxcdTAwM2VuYW1lLCBzdWJzcGVjLVxcdTAwM2VkZXNjcmlwdGlvbikpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuK1xcdGlmIChzcGVjLVxcdTAwM2Vza2lwX3JlYXNvbikge1xcbitcXHRcXHRwcmludGYoXFxcIiVzOlNLSVA6ICVzXFxcXG5cXFwiLCBfX2Z1bmNfXywgc3BlYy1cXHUwMDNlc2tpcF9yZWFzb24pO1xcbitcXHRcXHR0ZXN0X19za2lwKCk7XFxuK1xcdFxcdHJldHVybjtcXG4rXFx0fVxcbitcXG4gXFx0aWYgKChnZXRfY3VycmVudF9hcmNoKCkgXFx1MDAyNiBzcGVjLVxcdTAwM2VhcmNoX21hc2spID09IDApIHtcXG4gXFx0XFx0dGVzdF9fc2tpcCgpO1xcbiBcXHRcXHRyZXR1cm47XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDIwOjMwOjA2LjUyNDYzOTk5NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjgzNDEyODc1NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYsIGFkZGluZyBhIF9fc2tpcCBtYWNybyB0byBza2lwIHVuc3VwcG9ydGVkIHRlc3RzIGluc3RlYWQgb2YgcnVubmluZyBkdW1teSB0ZXN0cy4gSXQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRjNThjNTM3MDE3MmFlNTg3NzkxOTk4M2NmNzM3YTlhZDM3OWQwOTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAyMDozMDowMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbmluZGV4IGJmMGQzMDRlMGU1OWMuLjUwNjA5ZjNiMDU2NGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbkBAIC0yMzMsOCArMjMzLDkgQEAgU0VDKFwic3lzY2FsbFwiKVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfYXJtNjRcbiBfX2Rlc2NyaXB0aW9uKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4raW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KVxuIHtcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5pbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5AQCAtMTA2LDYgKzEwNiwxMSBAQFxuICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXJcbiAgKiAgICAgICAgICAgICAgICAgICBhbGlhcywgd2hpbGUgdGhlIG9yaWdpbmFsIHByb2dyYW0gbmFtZSBzdGF5cyBtYXRjaGFibGUuXG4gICpcbisgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuKyAqICAgICAgICAgICAgICAgICAgIHJ1bm5pbmcgaXQuIEZvciBwbGFjZWhvbGRlciBwcm9ncmFtcyB0aGF0IHN0YW5kIGluIGZvciBhXG4rICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lc1xuKyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuKyAqXG4gICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuXG4gICpcbiAgKiBfX2ZsYWcgICAgICAgICAgICBBZGRzIG9uZSBmbGFnIHVzZSBmb3IgdGhlIHByb2dyYW0sIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSB2YWxpZDpcbkBAIC0xMzksNiArMTQ0LDcgQEBcbiAjZGVmaW5lIF9fZmFpbHVyZVx0XHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3RfZmFpbHVyZVwiKVxuICNkZWZpbmUgX19zdWNjZXNzXHRcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF9zdWNjZXNzXCIpXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwidGVzdF9kZXNjcmlwdGlvbj1cIiBkZXNjKVxuKyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcInRlc3Rfc2tpcD1cIiByZWFzb24pXG4gI2RlZmluZSBfX21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcInRlc3RfZXhwZWN0X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3Rfbm90X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PVwiIG1zZylcbkBAIC0yNTUsMTEgKzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpXG4gI2RlZmluZSBDQU5fVVNFX0dPVE9MXG4gI2VuZGlmXG4gXG4tI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4rI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVClcbiAjZGVmaW5lIENBTl9VU0VfQlBGX1NUXG4gI2VuZGlmXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbmluZGV4IGQwNTVmYzdiM2I5NWQuLjkwNGI2ZjEyZDc1NDggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG5AQCAtMjk5LDcgKzI5OSwxNCBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCJyMyA9IDI0O1wiXG4gXHRcdFwiaWYgcjEgXHUwMDNlIDB4NyBnb3RvICsyO1wiXG4gXHRcdFwicjAgPSByMjtcIlxuKyNpZmRlZiBfX2NsYW5nX19cbiBcdFx0XCJnb3RvbCArMTtcIlxuKyNlbHNlXG4rXHRcdC8qIGdhcyBtaXMtcGFyc2VzICdnb3RvbCArMScgYXMgJ2dvdG8gbCsxJywgc2FtZSBlbmNvZGluZ1xuK1x0XHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxuK1x0XHQgKi9cbitcdFx0XCJnb3RvbCAxO1wiXG4rI2VuZGlmXG4gXHRcdFwicjAgPSByMztcIlxuIFx0XHRcImV4aXQ7XCJcbiBcdFx0OlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbkBAIC0xMDMsOCArMTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxuIFxuIFNFQyhcInRjXCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcIilcbiBfX3N1Y2Nlc3Ncbi1pbnQgdGVzdF9zdGFja19hcmdfYmlnKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbitpbnQgZHVtbXlfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXG4ge1xuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5pbmRleCBiZWUyZWVlYzAyMWQ3Li5jZTAzMDFhNDFmYTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuQEAgLTEyNCw2ICsxMjQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3ByZWNpc2lvbl9icGYyYnBmKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcIilcbitfX3NraXAoXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuQEAgLTgsNyArOCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9CU1dBUCkpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIkJTV0FQLCAxNlwiKVxuQEAgLTExNyw2ICsxMTcsNyBAQCBsMF8lPTpcdFx0XHRcdFx0XHRcdFxcXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5pbmRleCBkNWQ4ZjI0ZGYzOTQ5Li5jMGZkMzBhM2E0YzEzIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG5AQCAtNTIsNiArNTIsNyBAQCBfX25ha2VkIHZvaWQgZ290b2xfbGFyZ2VfaW1tKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbkBAIC05LDEzICs5LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4tXG4tc3RydWN0IHtcbi1cdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuLVx0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuLVx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbi19IGFyZW5hIFNFQyhcIi5tYXBzXCIpO1xuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9MRFNYKSlcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiTERTWCwgUzhcIilcbkBAIC0yNjMsNiArMjU3LDE0IEBAIF9fbmFrZWQgdm9pZCBsZHN4X2N0eF84KHZvaWQpXG4gXHQ6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbisjaWZkZWYgX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1RcbitcbitzdHJ1Y3Qge1xuK1x0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7XG4rXHRfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7XG4rXHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xuK30gYXJlbmEgU0VDKFwiLm1hcHNcIik7XG4rXG4gU0VDKFwic3lzY2FsbFwiKVxuIF9fZGVzY3JpcHRpb24oXCJBcmVuYSBMRFNYIERpc2FzbVwiKVxuIF9fc3VjY2Vzc1xuQEAgLTQzMiwxMCArNDM0LDEzIEBAIHZvaWQga2Z1bmNfcm9vdCh2b2lkKVxuIFx0YnBmX2FyZW5hX2FsbG9jX3BhZ2VzKDAsIDAsIDAsIDAsIDApO1xuIH1cbiBcbisjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi9cbitcbiAjZWxzZVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG5pbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbkBAIC0yNjcsNiArMjY3LDcgQEAgX19uYWtlZCB2b2lkIGxvYWRfYWNxdWlyZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIkNsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmVcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5pbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG5AQCAtOCw3ICs4LDcgQEBcbiBcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFx1MDAyNlx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjYgXFxcbi1cdF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4rXHQoX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX01PVlNYKSlcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiTU9WMzJTWCwgUzhcIilcbkBAIC0zNDMsNiArMzQzLDcgQEAgbGFiZWxfJT06IFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuaW5kZXggZWEwYTdlNzMzMzFkYS4uM2Q5OTk0YTUyNDY0ZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbkBAIC0zNzcsNiArMzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXG4gXG4gU0VDKFwia3Byb2JlXCIpXG4gX19kZXNjcmlwdGlvbihcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuQEAgLTksNyArOSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxXCIpXG5AQCAtMTI3MSw2ICsxMjcxLDcgQEAgX19uYWtlZCB2b2lkIHNtb2QzMl9pbnRfbWluX21vZF9uZWcyX2ltbSh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG5pbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbkBAIC00MzYsNiArNDM2LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19zZXF1ZW50aWFsX2NhbGxzKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuaW5kZXggYzlmZTQ4NTdkYTNmNS4uOGU0MzI1MjczYjNkOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG5AQCAtMTc0LDYgKzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcbmluZGV4IDcyZjFlYjAwNjA3NDguLjBhYmJlZTVjZTEwOTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5AQCAtMjkwLDYgKzI5MCw3IEBAIF9fbmFrZWQgdm9pZCBzdG9yZV9yZWxlYXNlX3dpdGhfaW52YWxpZF9yZWcodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuaW5kZXggMDc4MDc3NTdiNTE4ZC4uNzk0YTdkZmIwNTc5NiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XG4gXHRpbnQgYXJjaF9tYXNrO1xuIFx0aW50IGxvYWRfbWFzaztcbiBcdGludCBsaW5lYXJfc3o7XG4rXHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcbiBcdGJvb2wgYXV4aWxpYXJ5O1xuIFx0Ym9vbCB2YWxpZDtcbiB9O1xuQEAgLTQ1Niw2ICs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcbiBcdFx0XHRjb250aW51ZTtcbiBcdFx0aWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3RfZGVzY3JpcHRpb249XCIpKSkge1xuIFx0XHRcdGRlc2NyaXB0aW9uID0gdmFsO1xuK1x0XHR9IGVsc2UgaWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3Rfc2tpcD1cIikpKSB7XG4rXHRcdFx0c3BlYy1cdTAwM2Vza2lwX3JlYXNvbiA9IHZhbDtcbiBcdFx0fSBlbHNlIGlmIChzdHJjbXAocywgXCJ0ZXN0X2V4cGVjdF9mYWlsdXJlXCIpID09IDApIHtcbiBcdFx0XHRzcGVjLVx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xuIFx0XHRcdHNwZWMtXHUwMDNlbW9kZV9tYXNrIHw9IFBSSVY7XG5AQCAtMTMyNyw2ICsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXG4gXHRpZiAoIXRlc3RfX3N0YXJ0X3N1YnRlc3Rfd2l0aF9kZXNjKHN1YnNwZWMtXHUwMDNlbmFtZSwgc3Vic3BlYy1cdTAwM2VkZXNjcmlwdGlvbikpXG4gXHRcdHJldHVybjtcbiBcbitcdGlmIChzcGVjLVx1MDAzZXNraXBfcmVhc29uKSB7XG4rXHRcdHByaW50ZihcIiVzOlNLSVA6ICVzXFxuXCIsIF9fZnVuY19fLCBzcGVjLVx1MDAzZXNraXBfcmVhc29uKTtcbitcdFx0dGVzdF9fc2tpcCgpO1xuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4gXHRpZiAoKGdldF9jdXJyZW50X2FyY2goKSBcdTAwMjYgc3BlYy1cdTAwM2VhcmNoX21hc2spID09IDApIHtcbiBcdFx0dGVzdF9fc2tpcCgpO1xuIFx0XHRyZXR1cm47XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQyMDozMDowNi41MjQ2NDIzMDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzQxMjYxNTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogQW5hbHl6aW5nIHRoZSBCUEYgU2VsZnRlc3QgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgZm9jdXNlZCBzb2xlbHkgb24gbW9kaWZpY2F0aW9ucyB3aXRoaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gLiBJdCdzIGludHJvZHVjaW5nIGEgYF9fc2tpcGAgbWFjcm8sIHdoaWNoIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGNvbmRpdGlvbmFsbHkgZGlzYWJsaW5nIHRlc3RzIHdoZW4gdGhlIHJlcXVpcmVkIGZlYXR1cmVzIGFyZW4ndCBwcmVzZW50LiBBbmQgaXQncyBhbHNvIG1vZGlmeWluZyBgdGVzdF9sb2FkZXIuY2AgdG8gaGFuZGxlIHBhcnNpbmcgYSBgdGVzdF9za2lwPWAgZGlyZWN0aXZlLCBhZ2FpbiwgZGVzaWduZWQgdG8gYnlwYXNzIHRlc3QgZXhlY3V0aW9uLlxuXG5DcnVjaWFsbHksIHRoZXJlJ3Mgbm90aGluZyBoZXJlIHRoYXQgdG91Y2hlcyB0aGUgY29yZSBrZXJuZWwsIGFueSBkcml2ZXJzLCBvciBhbnkgc3BlY2lmaWMgYXJjaGl0ZWN0dXJlIGNvZGUuIEFsbCBjaGFuZ2VzIGFyZSBjb250YWluZWQgd2l0aGluIHRoZSBCUEYgc2VsZnRlc3QgaW5mcmFzdHJ1Y3R1cmUgaXRzZWxmLiBUaGF0IG1lYW5zIG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgd291bGQgd2FycmFudCBmdXp6aW5nLlxuXG5CZWZvcmUgSSBnaXZlIHRoZSBcImFsbCBjbGVhcixcIiBsZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIGRpZmYuIFRoZSBtb2RpZmllZCBmaWxlcyBpbmNsdWRlOlxuXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaGBcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY2BcbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNgXG4qICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jYFxuXG5ZZXMsIGFsbCB0aG9zZSBmaWxlcyBhcmUgZXhhY3RseSB3aGVyZSBJIGV4cGVjdGVkIHRoZW0gdG8gYmUsIGNvbmZpcm1pbmcgdGhlIHNjb3BlIG9mIHRoZSBjaGFuZ2UuIFRoZXJlZm9yZSwgSSdtIGNvbmZpZGVudCB0aGF0IHRoZXNlIG1vZGlmaWNhdGlvbnMgYXJlIHB1cmVseSBjb25maW5lZCB0byB0aGUgQlBGIHRlc3RpbmcgZW52aXJvbm1lbnQuIEknbSBnb2luZyB0byBjYWxsIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjkzMCwiT3V0cHV0VG9rZW5zIjo4NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDIwOjMwOjE0Ljg2NTkwNjc2M1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZiwgYWRkaW5nIGEgX19za2lwIG1hY3JvIHRvIHNraXAgdW5zdXBwb3J0ZWQgdGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nIGR1bW15IHRlc3RzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZiwgYWRkaW5nIGEgX19za2lwIG1hY3JvIHRvIHNraXAgdW5zdXBwb3J0ZWQgdGVzdHMgaW5zdGVhZCBvZiBydW5uaW5nIGR1bW15IHRlc3RzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMjA6MzA6MTQuODY1OTI5MzM0WiIsIlNlcSI6NSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowrljtx[1] Phase: Running StartedAt: 2026-08-21 20:30:26 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrljtx[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-21 20:30:26 +0000 UTC FinishedAt: 2026-08-21 20:30:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}