Name: series-workflow8msvz Phase: Succeeded StartedAt: 2026-07-30 07:11:37 +0000 UTC FinishedAt: 2026-07-30 11:24:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[0] Phase: Succeeded StartedAt: 2026-07-30 07:11:37 +0000 UTC FinishedAt: 2026-07-30 07:33:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[0].run-triage Phase: Succeeded StartedAt: 2026-07-30 07:11:37 +0000 UTC FinishedAt: 2026-07-30 07:33:10 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFRM_USER", "INET_ESP", "INET_AH", "INET6_ESP", "INET6_AH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFRM_USER", "INET_ESP", "INET_AH", "INET6_ESP", "INET6_AH" ], "series_id": "d0d1df09-bb04-4399-aa68-9ba2e4115416" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "xfrm_input" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1hGUk1fVVNFUiYjMzQ7LAogICAgJiMzNDtJTkVUX0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUX0FIJiMzNDssCiAgICAmIzM0O0lORVQ2X0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmcm1faW5wdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVBzZWMgaW5wdXQgcHJvY2Vzc2luZyBmdW5jdGlvbiBgeGZybV9pbnB1dGAgdG8gY29ycmVjdGx5IHRyYWNrIHRoZSBwcm90b2NvbCB1c2luZyBhIGxvY2FsIHZhcmlhYmxlIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gc3RhdGUgdGhhdCBtaWdodCBiZSBhbHRlcmVkIG9yIHVuYXZhaWxhYmxlIGxhdGVyIGluIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDlhM2RiYjM3OTI5ZGQyZWVlZDY2NDg2MDc2MjM2ZTUzMmUxZmUxYWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwNzozMjoyNCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQveGZybS94ZnJtX2lucHV0LmMgYi9uZXQveGZybS94ZnJtX2lucHV0LmNcbmluZGV4IGVlY2FiMzM3YmQwYTcuLjMxNzdmYTMzOTYxY2IgMTAwNjQ0XG4tLS0gYS9uZXQveGZybS94ZnJtX2lucHV0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC94ZnJtL3hmcm1faW5wdXQuY1xuQEAgLTQ3NCw2ICYjNDM7NDc0LDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIFx0c3RydWN0IHhmcm1fc3RhdGUgKnggPSBOVUxMO1xuIFx0eGZybV9hZGRyZXNzX3QgKmRhZGRyO1xuIFx0dTMyIG1hcmsgPSBza2ItXHUwMDNlbWFyaztcbiYjNDM7XHR1OCB4ZnJtX3Byb3RvID0gbmV4dGhkcjtcbiBcdHVuc2lnbmVkIGludCBmYW1pbHkgPSBBRl9VTlNQRUM7XG4gXHRpbnQgZGVjYXBzID0gMDtcbiBcdGludCBhc3luYyA9IDA7XG5AQCAtNDg1LDYgJiM0Mzs0ODYsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXHRpZiAoZW5jYXBfdHlwZSBcdTAwM2MgMCB8fCAoeG8gXHUwMDI2XHUwMDI2ICh4by1cdTAwM2VmbGFncyBcdTAwMjYgWEZSTV9HUk8gfHwgZW5jYXBfdHlwZSA9PSAwIHx8XG4gXHRcdFx0XHQgICAgICBlbmNhcF90eXBlID09IFVEUF9FTkNBUF9FU1BJTlVEUCkpKSB7XG4gXHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlKHNrYik7XG4mIzQzO1x0XHR4ZnJtX3Byb3RvID0geC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvO1xuIFxuIFx0XHRpZiAodW5saWtlbHkoeC1cdTAwM2VrbS5zdGF0ZSAhPSBYRlJNX1NUQVRFX1ZBTElEKSkge1xuIFx0XHRcdGlmICh4LVx1MDAzZWttLnN0YXRlID09IFhGUk1fU1RBVEVfQUNRKVxuQEAgLTU5MiwxMSAmIzQzOzU5NCwxMyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXG4gXHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cChuZXQsIG1hcmssIGRhZGRyLCBzcGksIG5leHRoZHIsIGZhbWlseSk7XG4gXHRcdGlmICh4ID09IE5VTEwpIHtcbiYjNDM7XHRcdFx0eGZybV9wcm90byA9IG5leHRoZHI7XG4gXHRcdFx0c2VjcGF0aF9yZXNldChza2IpO1xuIFx0XHRcdFhGUk1fSU5DX1NUQVRTKG5ldCwgTElOVVhfTUlCX1hGUk1JTk5PU1RBVEVTKTtcbiBcdFx0XHR4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7XG4gXHRcdFx0Z290byBkcm9wO1xuIFx0XHR9XG4mIzQzO1x0XHR4ZnJtX3Byb3RvID0geC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvO1xuIFxuIFx0XHRpZiAodW5saWtlbHkoeC1cdTAwM2VkaXIgXHUwMDI2XHUwMDI2IHgtXHUwMDNlZGlyICE9IFhGUk1fU0FfRElSX0lOKSkge1xuIFx0XHRcdHNlY3BhdGhfcmVzZXQoc2tiKTtcbkBAIC02MDQsNiAmIzQzOzYwOCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdFx0XHR4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7XG4gXHRcdFx0eGZybV9zdGF0ZV9wdXQoeCk7XG4gXHRcdFx0eCA9IE5VTEw7XG4mIzQzO1x0XHRcdHhmcm1fcHJvdG8gPSBuZXh0aGRyO1xuIFx0XHRcdGdvdG8gZHJvcDtcbiBcdFx0fVxuIFxuQEAgLTcyOCw3ICYjNDM7NzMzLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIFx0fSB3aGlsZSAoIWVycik7XG4gXG4gXHRyY3VfcmVhZF9sb2NrKCk7XG4tXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvLCAwKTtcbiYjNDM7XHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgMCk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdHJjdV9yZWFkX3VubG9jaygpO1xuIFx0XHRnb3RvIGRyb3A7XG5AQCAtNzUzLDcgJiM0Mzs3NTgsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXHRcdFx0eGZybV9ncm8gPSB4by1cdTAwM2VmbGFncyBcdTAwMjYgWEZSTV9HUk87XG4gXG4gXHRcdGVyciA9IC1FQUZOT1NVUFBPUlQ7XG4tXHRcdGFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoeC1cdTAwM2Vwcm9wcy5mYW1pbHkpO1xuJiM0MztcdFx0YWZpbmZvID0geGZybV9zdGF0ZV9hZmluZm9fZ2V0X3JjdShmYW1pbHkpO1xuIFx0XHRpZiAobGlrZWx5KGFmaW5mbykpXG4gXHRcdFx0ZXJyID0gYWZpbmZvLVx1MDAzZXRyYW5zcG9ydF9maW5pc2goc2tiLCB4ZnJtX2dybyB8fCBhc3luYyk7XG4gXHRcdGlmICh4ZnJtX2dybykge1xuQEAgLTc3Niw3ICYjNDM7NzgxLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIGRyb3A6XG4gXHRpZiAoYXN5bmMpXG4gXHRcdGRldl9wdXQoZGV2KTtcbi1cdHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4IFx1MDAyNlx1MDAyNiB4LVx1MDAzZXR5cGUgPyB4LVx1MDAzZXR5cGUtXHUwMDNlcHJvdG8gOiBuZXh0aGRyLCAtMSk7XG4mIzQzO1x0eGZybV9yY3ZfY2Ioc2tiLCBmYW1pbHksIHhmcm1fcHJvdG8sIC0xKTtcbiBcdGtmcmVlX3NrYihza2IpO1xuIFx0cmV0dXJuIDA7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYRlJNX1VTRVImIzM0OywKICAgICYjMzQ7SU5FVF9FU1AmIzM0OywKICAgICYjMzQ7SU5FVF9BSCYjMzQ7LAogICAgJiMzNDtJTkVUNl9FU1AmIzM0OywKICAgICYjMzQ7SU5FVDZfQUgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnJtX2lucHV0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5YTNkYmIzNzkyOWRkMmVlZWQ2NjQ4NjA3NjIzNmU1MzJlMWZlMWFlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMzAgMDc6MzI6MjQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQveGZybS94ZnJtX2lucHV0LmMgYi9uZXQveGZybS94ZnJtX2lucHV0LmMKaW5kZXggZWVjYWIzMzdiZDBhNy4uMzE3N2ZhMzM5NjFjYiAxMDA2NDQKLS0tIGEvbmV0L3hmcm0veGZybV9pbnB1dC5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC94ZnJtL3hmcm1faW5wdXQuYwpAQCAtNDc0LDYgJiM0Mzs0NzQsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpCiAJc3RydWN0IHhmcm1fc3RhdGUgKnggPSBOVUxMOwogCXhmcm1fYWRkcmVzc190ICpkYWRkcjsKIAl1MzIgbWFyayA9IHNrYi0mZ3Q7bWFyazsKJiM0MzsJdTggeGZybV9wcm90byA9IG5leHRoZHI7CiAJdW5zaWduZWQgaW50IGZhbWlseSA9IEFGX1VOU1BFQzsKIAlpbnQgZGVjYXBzID0gMDsKIAlpbnQgYXN5bmMgPSAwOwpAQCAtNDg1LDYgJiM0Mzs0ODYsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpCiAJaWYgKGVuY2FwX3R5cGUgJmx0OyAwIHx8ICh4byAmYW1wOyZhbXA7ICh4by0mZ3Q7ZmxhZ3MgJmFtcDsgWEZSTV9HUk8gfHwgZW5jYXBfdHlwZSA9PSAwIHx8CiAJCQkJICAgICAgZW5jYXBfdHlwZSA9PSBVRFBfRU5DQVBfRVNQSU5VRFApKSkgewogCQl4ID0geGZybV9pbnB1dF9zdGF0ZShza2IpOwomIzQzOwkJeGZybV9wcm90byA9IHgtJmd0O3R5cGUtJmd0O3Byb3RvOwogCiAJCWlmICh1bmxpa2VseSh4LSZndDtrbS5zdGF0ZSAhPSBYRlJNX1NUQVRFX1ZBTElEKSkgewogCQkJaWYgKHgtJmd0O2ttLnN0YXRlID09IFhGUk1fU1RBVEVfQUNRKQpAQCAtNTkyLDExICYjNDM7NTk0LDEzIEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSkKIAogCQl4ID0geGZybV9pbnB1dF9zdGF0ZV9sb29rdXAobmV0LCBtYXJrLCBkYWRkciwgc3BpLCBuZXh0aGRyLCBmYW1pbHkpOwogCQlpZiAoeCA9PSBOVUxMKSB7CiYjNDM7CQkJeGZybV9wcm90byA9IG5leHRoZHI7CiAJCQlzZWNwYXRoX3Jlc2V0KHNrYik7CiAJCQlYRlJNX0lOQ19TVEFUUyhuZXQsIExJTlVYX01JQl9YRlJNSU5OT1NUQVRFUyk7CiAJCQl4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7CiAJCQlnb3RvIGRyb3A7CiAJCX0KJiM0MzsJCXhmcm1fcHJvdG8gPSB4LSZndDt0eXBlLSZndDtwcm90bzsKIAogCQlpZiAodW5saWtlbHkoeC0mZ3Q7ZGlyICZhbXA7JmFtcDsgeC0mZ3Q7ZGlyICE9IFhGUk1fU0FfRElSX0lOKSkgewogCQkJc2VjcGF0aF9yZXNldChza2IpOwpAQCAtNjA0LDYgJiM0Mzs2MDgsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpCiAJCQl4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7CiAJCQl4ZnJtX3N0YXRlX3B1dCh4KTsKIAkJCXggPSBOVUxMOwomIzQzOwkJCXhmcm1fcHJvdG8gPSBuZXh0aGRyOwogCQkJZ290byBkcm9wOwogCQl9CiAKQEAgLTcyOCw3ICYjNDM7NzMzLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKQogCX0gd2hpbGUgKCFlcnIpOwogCiAJcmN1X3JlYWRfbG9jaygpOwotCWVyciA9IHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4LSZndDt0eXBlLSZndDtwcm90bywgMCk7CiYjNDM7CWVyciA9IHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4ZnJtX3Byb3RvLCAwKTsKIAlpZiAoZXJyKSB7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCQlnb3RvIGRyb3A7CkBAIC03NTMsNyAmIzQzOzc1OCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSkKIAkJCXhmcm1fZ3JvID0geG8tJmd0O2ZsYWdzICZhbXA7IFhGUk1fR1JPOwogCiAJCWVyciA9IC1FQUZOT1NVUFBPUlQ7Ci0JCWFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoeC0mZ3Q7cHJvcHMuZmFtaWx5KTsKJiM0MzsJCWFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoZmFtaWx5KTsKIAkJaWYgKGxpa2VseShhZmluZm8pKQogCQkJZXJyID0gYWZpbmZvLSZndDt0cmFuc3BvcnRfZmluaXNoKHNrYiwgeGZybV9ncm8gfHwgYXN5bmMpOwogCQlpZiAoeGZybV9ncm8pIHsKQEAgLTc3Niw3ICYjNDM7NzgxLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKQogZHJvcDoKIAlpZiAoYXN5bmMpCiAJCWRldl9wdXQoZGV2KTsKLQl4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeCAmYW1wOyZhbXA7IHgtJmd0O3R5cGUgPyB4LSZndDt0eXBlLSZndDtwcm90byA6IG5leHRoZHIsIC0xKTsKJiM0MzsJeGZybV9yY3ZfY2Ioc2tiLCBmYW1pbHksIHhmcm1fcHJvdG8sIC0xKTsKIAlrZnJlZV9za2Ioc2tiKTsKIAlyZXR1cm4gMDsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDc6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAzMwoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBYRlJNIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgaW4gYG5ldC94ZnJtL3hmcm1faW5wdXQuY2AuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgbWFraW5nIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBgeGZybV9pbnB1dGAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgYHhmcm1fcHJvdG9gIHRvIG1hbmFnZSB0aGUgcHJvdG9jb2wgZXhwbGljaXRseSwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBgeC0mZ3Q7dHlwZS0mZ3Q7cHJvdG9gIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nOyBpdCBtZWFucyB0aGV5JiMzOTtyZSBjaGFuZ2luZyBob3cgdGhlIHN1YnN5c3RlbSBoYW5kbGVzIHByb3RvY29sIGlkZW50aWZpY2F0aW9uLCBhbmQgc2luY2UgYHhmcm1faW5wdXRgIGlzICp0aGUqIGVudHJ5IHBvaW50IGZvciBpbmNvbWluZyBJUHNlYyBwYWNrZXRzLCB0aGlzIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBJdOKAmXMgY2VydGFpbmx5IHJlYWNoYWJsZSwgYW5kIGFueSBtb2RpZmljYXRpb24gdG8gdGhpcyBjb3JlIGZ1bmN0aW9uYWxpdHkgd2FycmFudHMgYSB0aG9yb3VnaCBsb29rLgoKRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgWEZSTSBzdWJzeXN0ZW0gaXMgZXZlbiBjb25maWd1cmVkIGluIHRoZSBrZXJuZWwgYnVpbGQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcsIHByb2JhYmx5IGBuZXQveGZybS9LY29uZmlnYCB0byBjb25maXJtIGBDT05GSUdfWEZSTWAgaXMgZW5hYmxlZC4gVGhlbiwgSSBzaG91bGQgZG8gYSBxdWljayBzZWFyY2ggdGhyb3VnaCB0aGUga2VybmVsIHNvdXJjZSB0byBzZWUgd2hlcmUgZWxzZSBgeGZybV9pbnB1dGAgaXMgYmVpbmcgY2FsbGVkIGFuZCBnZXQgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgd2lkZXIgY29udGV4dCBvZiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt4ZnJtX2lucHV0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3hmcm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC94ZnJtL01ha2VmaWxlPTE0PW9iai0kKENPTkZJR19YRlJNKSA6PSB4ZnJtX3BvbGljeS5vIHhmcm1fc3RhdGUubyB4ZnJtX2hhc2gubyBcXFxubmV0L3hmcm0vTWFrZWZpbGU6MTU6XHRcdCAgICAgIHhmcm1faW5wdXQubyB4ZnJtX291dHB1dC5vIFxcXG5uZXQveGZybS9NYWtlZmlsZS0xNi1cdFx0ICAgICAgeGZybV9zeXNjdGwubyB4ZnJtX3JlcGxheS5vIHhmcm1fZGV2aWNlLm8gXFxcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMi0vKlxubmV0L3hmcm0veGZybV9pbnB1dC5jOjM6ICogeGZybV9pbnB1dC5jXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNC0gKlxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz0zND1zdHJ1Y3QgeGZybV90cmFuc19jYiB7XG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ2LVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ3OnN0YXRpYyBERUZJTkVfU1BJTkxPQ0soeGZybV9pbnB1dF9hZmluZm9fbG9jayk7XG5uZXQveGZybS94ZnJtX2lucHV0LmM6NDg6c3RhdGljIHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyBjb25zdCBfX3JjdSAqeGZybV9pbnB1dF9hZmluZm9bMl1bQUZfSU5FVDYgJiM0MzsgMV07XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDktXG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jPTUzPXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgeGZybV90cmFuc190YXNrbGV0LCB4ZnJtX3RyYW5zX3Rhc2tsZXQpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTU0LVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjU1OmludCB4ZnJtX2lucHV0X3JlZ2lzdGVyX2FmaW5mbyhjb25zdCBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gKmFmaW5mbylcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01Ni17XG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTYxLVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjYyOlx0c3Bpbl9sb2NrX2JoKFx1MDAyNnhmcm1faW5wdXRfYWZpbmZvX2xvY2spO1xubmV0L3hmcm0veGZybV9pbnB1dC5jOjYzOlx0aWYgKHVubGlrZWx5KHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cdTAwM2Vpc19pcGlwXVthZmluZm8tXHUwMDNlZmFtaWx5XSkpXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjQtXHRcdGVyciA9IC1FRVhJU1Q7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjUtXHRlbHNlXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NjY6XHRcdHJjdV9hc3NpZ25fcG9pbnRlcih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVx1MDAzZWZhbWlseV0sIGFmaW5mbyk7XG5uZXQveGZybS94ZnJtX2lucHV0LmM6Njc6XHRzcGluX3VubG9ja19iaChcdTAwMjZ4ZnJtX2lucHV0X2FmaW5mb19sb2NrKTtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy02OC1cdHJldHVybiBlcnI7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjktfVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjcwOkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dF9yZWdpc3Rlcl9hZmluZm8pO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTcxLVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjcyOmludCB4ZnJtX2lucHV0X3VucmVnaXN0ZXJfYWZpbmZvKGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTczLXtcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzUtXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzY6XHRzcGluX2xvY2tfYmgoXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XG5uZXQveGZybS94ZnJtX2lucHV0LmM6Nzc6XHRpZiAobGlrZWx5KHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cdTAwM2Vpc19pcGlwXVthZmluZm8tXHUwMDNlZmFtaWx5XSkpIHtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3ODpcdFx0Y29uc3Qgc3RydWN0IHhmcm1faW5wdXRfYWZpbmZvICpjdXI7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzktXG5uZXQveGZybS94ZnJtX2lucHV0LmM6ODA6XHRcdGN1ciA9IHJjdV9hY2Nlc3NfcG9pbnRlcih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVx1MDAzZWZhbWlseV0pO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTgxLVx0XHRpZiAodW5saWtlbHkoY3VyICE9IGFmaW5mbykpXG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTgzLVx0XHRlbHNlXG5uZXQveGZybS94ZnJtX2lucHV0LmM6ODQ6XHRcdFx0UkNVX0lOSVRfUE9JTlRFUih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVx1MDAzZWZhbWlseV0sIE5VTEwpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTg1LVx0fVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjg2Olx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtODctXHRzeW5jaHJvbml6ZV9yY3UoKTtcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODktfVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjkwOkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dF91bnJlZ2lzdGVyX2FmaW5mbyk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtOTEtXG5uZXQveGZybS94ZnJtX2lucHV0LmM6OTI6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqeGZybV9pbnB1dF9nZXRfYWZpbmZvKHU4IGZhbWlseSwgYm9vbCBpc19pcGlwKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTkzLXtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo5NDpcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTk1LVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05OS1cdHJjdV9yZWFkX2xvY2soKTtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzoxMDA6XHRhZmluZm8gPSByY3VfZGVyZWZlcmVuY2UoeGZybV9pbnB1dF9hZmluZm9baXNfaXBpcF1bZmFtaWx5XSk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTAxLVx0aWYgKHVubGlrZWx5KCFhZmluZm8pKVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz0xMDY9c3RhdGljIGludCB4ZnJtX3Jjdl9jYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgZmFtaWx5LCB1OCBwcm90b2NvbCxcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTA5LVx0Ym9vbCBpc19pcGlwID0gKHByb3RvY29sID09IElQUFJPVE9fSVBJUCB8fCBwcm90b2NvbCA9PSBJUFBST1RPX0lQVjYpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jOjExMDpcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTExMS1cdGludCByZXQ7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTEyLVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjExMzpcdGFmaW5mbyA9IHhmcm1faW5wdXRfZ2V0X2FmaW5mbyhmYW1pbHksIGlzX2lwaXApO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTExNC1cdGlmICghYWZpbmZvKVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz00MzU9c3RhdGljIGludCB4ZnJtX2lubmVyX21vZGVfaW5wdXQoc3RydWN0IHhmcm1fc3RhdGUgKngsXG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ2NS0gKi9cbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo0NjY6aW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ2Ny17XG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ4Ny1cdFx0XHRcdCAgICAgIGVuY2FwX3R5cGUgPT0gVURQX0VOQ0FQX0VTUElOVURQKSkpIHtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo0ODg6XHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlKHNrYik7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDg5LVx0XHR4ZnJtX3Byb3RvID0geC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvO1xuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01OTQtXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NTk1Olx0XHR4ID0geGZybV9pbnB1dF9zdGF0ZV9sb29rdXAobmV0LCBtYXJrLCBkYWRkciwgc3BpLCBuZXh0aGRyLCBmYW1pbHkpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTU5Ni1cdFx0aWYgKHggPT0gTlVMTCkge1xuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYy03ODctfVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjc4ODpFWFBPUlRfU1lNQk9MKHhmcm1faW5wdXQpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTc4OS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3OTA6aW50IHhmcm1faW5wdXRfcmVzdW1lKHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc5MS17XG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzkyOlx0cmV0dXJuIHhmcm1faW5wdXQoc2tiLCBuZXh0aGRyLCAwLCAtMSk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzkzLX1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3OTQ6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3Jlc3VtZSk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzk1LVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz04NTE9RVhQT1JUX1NZTUJPTCh4ZnJtX3RyYW5zX3F1ZXVlKTtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy04NTItXG5uZXQveGZybS94ZnJtX2lucHV0LmM6ODUzOnZvaWQgX19pbml0IHhmcm1faW5wdXRfaW5pdCh2b2lkKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTg1NC17XG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTE3Mj1zdGF0aWMgYm9vbCB4ZnJtaV9kZWNvZGVfc2Vzc2lvbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0xOTItXHRpZiAoaWZpbmRleCkge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjE5MzpcdFx0c3RydWN0IG5ldCAqbmV0ID0geHNfbmV0KHhmcm1faW5wdXRfc3RhdGUoc2tiKSk7XG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTk0LVxuLS1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0yMDgtXHRpZiAoeGktXHUwMDNlcC5jb2xsZWN0X21kKVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjIwOTpcdFx0cmVzLVx1MDAzZWlmX2lkID0geGZybV9pbnB1dF9zdGF0ZShza2IpLVx1MDAzZWlmX2lkO1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTIxMC1cdGVsc2Vcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MzEyPXN0YXRpYyBpbnQgeGZybWlfaW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksXG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTMzMC1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzozMzE6XHRyZXR1cm4geGZybV9pbnB1dChza2IsIG5leHRoZHIsIHNwaSwgZW5jYXBfdHlwZSk7XG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzMyLWRpc2NhcmQ6XG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTM1OD1zdGF0aWMgaW50IHhmcm1pX3Jjdl9jYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgZXJyKVxuLS1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0zNjktXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6MzcwOlx0eCA9IHhmcm1faW5wdXRfc3RhdGUoc2tiKTtcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0zNzEtXG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTk4Nz1zdGF0aWMgc3RydWN0IHhmcm02X3Byb3RvY29sIHhmcm1pX2FoNl9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTk4OC1cdC5oYW5kbGVyXHQ9XHR4ZnJtNl9yY3YsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6OTg5Olx0LmlucHV0X2hhbmRsZXJcdD1cdHhmcm1faW5wdXQsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtOTkwLVx0LmNiX2hhbmRsZXJcdD1cdHhmcm1pX3Jjdl9jYixcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9OTk1PXN0YXRpYyBzdHJ1Y3QgeGZybTZfcHJvdG9jb2wgeGZybWlfaXBjb21wNl9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTk5Ni1cdC5oYW5kbGVyXHQ9XHR4ZnJtNl9yY3YsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6OTk3Olx0LmlucHV0X2hhbmRsZXJcdD1cdHhmcm1faW5wdXQsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtOTk4LVx0LmNiX2hhbmRsZXJcdD1cdHhmcm1pX3Jjdl9jYixcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTAzOD1zdGF0aWMgc3RydWN0IHhmcm00X3Byb3RvY29sIHhmcm1pX2FoNF9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTEwMzktXHQuaGFuZGxlclx0PVx0eGZybTRfcmN2LFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjEwNDA6XHQuaW5wdXRfaGFuZGxlclx0PVx0eGZybV9pbnB1dCxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0xMDQxLVx0LmNiX2hhbmRsZXJcdD1cdHhmcm1pX3Jjdl9jYixcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTA0Nj1zdGF0aWMgc3RydWN0IHhmcm00X3Byb3RvY29sIHhmcm1pX2lwY29tcDRfcHJvdG9jb2wgX19yZWFkX21vc3RseSA9IHtcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0xMDQ3LVx0LmhhbmRsZXJcdD1cdHhmcm00X3Jjdixcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzoxMDQ4Olx0LmlucHV0X2hhbmRsZXJcdD1cdHhmcm1faW5wdXQsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0OS1cdC5jYl9oYW5kbGVyXHQ9XHR4ZnJtaV9yY3ZfY2IsXG4tLVxubmV0L3hmcm0veGZybV9pcGNvbXAuYz0xMTE9c3RhdGljIHZvaWQgaXBjb21wX2lucHV0X2RvbmUodm9pZCAqZGF0YSwgaW50IGVycilcbi0tXG5uZXQveGZybS94ZnJtX2lwY29tcC5jLTExNC1cbm5ldC94ZnJtL3hmcm1faXBjb21wLmM6MTE1Olx0eGZybV9pbnB1dF9yZXN1bWUoc2tiLCBpcGNvbXBfaW5wdXRfZG9uZTIoc2tiLCBlcnIpKTtcbm5ldC94ZnJtL3hmcm1faXBjb21wLmMtMTE2LX1cbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9MjU5PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaXB0ZnNfYWxsb2Nfc2tiKHN0cnVjdCBza19idWZmICp0cGwsIHUzMiBsZW4sIGJvb2wgbDNyZXN2KVxuLS1cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0yODAtXHRpZiAoIWwzcmVzdikge1xubmV0L3hmcm0veGZybV9pcHRmcy5jOjI4MTpcdFx0LyogeGZybV9pbnB1dCByZXN1bWUgbmVlZHMgZGV2IGFuZCB4ZnJtIGV4dCBmcm9tIHR1bm5lbCBwa3QgKi9cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0yODItXHRcdHNrYi1cdTAwM2VkZXYgPSB0cGwtXHUwMDNlZGV2O1xuLS1cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0yODUtXG5uZXQveGZybS94ZnJtX2lwdGZzLmM6Mjg2Olx0LyogZHJvcHBlZCBieSB4ZnJtX2lucHV0LCB1c2VkIGJ5IHhmcm1fb3V0cHV0ICovXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMjg3LVx0c2tiX2RzdF9jb3B5KHNrYiwgdHBsKTtcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9NjM5PXN0YXRpYyB1MzIgX19pcHRmc19pcGxlbih1OCAqZGF0YSlcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtNjU2LSAqIG9mIHBhY2tldHMgaW4gdGhlIGhvcGVzIHRoYXQgb25lIGRheSBhIGxpc3Qgd2lsbCBiZSB0YWtlbiBieVxubmV0L3hmcm0veGZybV9pcHRmcy5jOjY1NzogKiB4ZnJtX2lucHV0LlxubmV0L3hmcm0veGZybV9pcHRmcy5jLTY1OC0gKi9cbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9OTQzPXN0YXRpYyBib29sIF9faW5wdXRfcHJvY2Vzc19wYXlsb2FkKHN0cnVjdCB4ZnJtX3N0YXRlICp4LCB1MzIgZGF0YSxcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTE5MC1cdFx0c2tiX2xpc3RfZGVsX2luaXQoc2tiKTtcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoxMTkxOlx0XHRpZiAoeGZybV9pbnB1dChza2IsIDAsIDAsIC0yKSlcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0xMTkyLVx0XHRcdGtmcmVlX3NrYihza2IpO1xuLS1cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYz0xNjY4PXN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBpcHRmc19kcm9wX3RpbWVyKHN0cnVjdCBocnRpbWVyICptZSlcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTcxNC0gKlxubmV0L3hmcm0veGZybV9pcHRmcy5jOjE3MTU6ICogUmV0dXJuOiAtRUlOUFJPR1JFU1MgdG8gaW5mb3JtIHhmcm1faW5wdXQgdG8gc3RvcCBwcm9jZXNzaW5nIHRoZSBza2IuXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTcxNi0gKi9cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYz0xNzE3PXN0YXRpYyBpbnQgaXB0ZnNfaW5wdXQoc3RydWN0IHhmcm1fc3RhdGUgKngsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L3hmcm0veGZybV9pcHRmcy5jLTE3NDktXHQvKiBXZSBhbHdheXMgaGF2ZSBkZWFsdCB3aXRoIHRoZSBpbnB1dCBTS0IsIGVpdGhlciB3ZSBhcmUgcmUtdXNpbmcgaXQsXG5uZXQveGZybS94ZnJtX2lwdGZzLmM6MTc1MDpcdCAqIG9yIHdlIGhhdmUgZnJlZWQgaXQuIFJldHVybiBFSU5QUk9HUkVTUyBzbyB0aGF0IHhmcm1faW5wdXQgc3RvcHNcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0xNzUxLVx0ICogcHJvY2Vzc2luZyBpdC5cbi0tXG5uZXQveGZybS94ZnJtX3BvbGljeS5jPTM2NzA9aW50IF9feGZybV9wb2xpY3lfY2hlY2soc3RydWN0IHNvY2sgKnNrLCBpbnQgZGlyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtMzc1My1cdFx0Y29uc3QgYm9vbCBpc19jcnlwdG9fb2ZmbG9hZCA9IHNwIFx1MDAyNlx1MDAyNlxubmV0L3hmcm0veGZybV9wb2xpY3kuYzozNzU0Olx0XHRcdCh4ZnJtX2lucHV0X3N0YXRlKHNrYiktXHUwMDNleHNvLnR5cGUgPT0gWEZSTV9ERVZfT0ZGTE9BRF9DUllQVE8pO1xubmV0L3hmcm0veGZybV9wb2xpY3kuYy0zNzU1LVxuLS1cbm5ldC94ZnJtL3hmcm1fcG9saWN5LmM9NDQwND12b2lkIF9faW5pdCB4ZnJtX2luaXQodm9pZClcbi0tXG5uZXQveGZybS94ZnJtX3BvbGljeS5jLTQ0MTEtXHR4ZnJtX2Rldl9pbml0KCk7XG5uZXQveGZybS94ZnJtX3BvbGljeS5jOjQ0MTI6XHR4ZnJtX2lucHV0X2luaXQoKTtcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtNDQxMy1cbi0tXG5uZXQveGZybS94ZnJtX3N0YXRlLmM9MTE3NT1zdGF0aWMgc3RydWN0IHhmcm1fc3RhdGUgKl9feGZybV9zdGF0ZV9sb29rdXAoY29uc3Qgc3RydWN0IHhmcm1faGFzaF9zdGF0ZV9wdHJzICpzdGF0ZV9wdHJzLFxuLS1cbm5ldC94ZnJtL3hmcm1fc3RhdGUuYy0xMjAwLVxubmV0L3hmcm0veGZybV9zdGF0ZS5jOjEyMDE6c3RydWN0IHhmcm1fc3RhdGUgKnhmcm1faW5wdXRfc3RhdGVfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIG1hcmssXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTIwMi1cdFx0XHRcdFx0ICAgY29uc3QgeGZybV9hZGRyZXNzX3QgKmRhZGRyLFxuLS1cbm5ldC94ZnJtL3hmcm1fc3RhdGUuYy0xMjUyLX1cbm5ldC94ZnJtL3hmcm1fc3RhdGUuYzoxMjUzOkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dF9zdGF0ZV9sb29rdXApO1xubmV0L3hmcm0veGZybV9zdGF0ZS5jLTEyNTQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDc6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODA3NgoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFhGUk0gSW5wdXQgUGF0Y2gqKgoKT2theSwgc28gdGhlIHBhdGNoIEkmIzM5O20gbG9va2luZyBhdCBtb2RpZmllcyBgeGZybV9pbnB1dGAgaW4gYG5ldC94ZnJtL3hmcm1faW5wdXQuY2AuIEl0IHNlZW1zIHRoZXkmIzM5O3ZlIHN3aXRjaGVkIHRvIHVzaW5nIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHRoZSBvbGRlciBgeC0mZ3Q7dHlwZS0mZ3Q7cHJvdG9gIG9yIGBuZXh0aGRyYCB2YXJpYWJsZXMgd2l0aGluIGB4ZnJtX3Jjdl9jYmAgYW5kIGB4ZnJtX3N0YXRlX2FmaW5mb19nZXRfcmN1YC4gVGhpcyBmZWVscyBsaWtlIGEgZnVuY3Rpb25hbGx5IGltcG9ydGFudCBjaGFuZ2Ug4oCTIGRlZmluaXRlbHkgd29ydGggYSBkZWVwZXIgbG9vayBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHNvbWUgZm9jdXNlZCBmdXp6aW5nLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHhmcm1faW5wdXRgIHNob3VsZCBiZSB0aGUgcHJpbWFyeSBmb2N1cyBzeW1ib2wgZm9yIGZ1enppbmcgdGhpcy4gTWFrZXMgc2Vuc2UuIEFuZCBmcm9tIHRoZSBkZXNjcmlwdGlvbiwgaXQgbG9va3MgbGlrZSB0aGlzIGNvZGUgcmVxdWlyZXMgYFhGUk1gIHRvIGJlIGVuYWJsZWQgaW4gdGhlIGtlcm5lbCBjb25maWcuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzIGluIGBuZXQveGZybS9LY29uZmlnYCB0aGF0IG1pZ2h0IGluZmx1ZW5jZSBvciBpbnRlcmFjdCB3aXRoIHRoaXMgY29kZSBwYXRoLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBYRlJNYCBkZXBlbmRlbmNpZXMgYXMgd2VsbC4gRW5zdXJpbmcgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYSBjb25kaXRpb25hbCBidWlsZCBjb25maWd1cmF0aW9uIHdpbGwgYmUgY3JpdGljYWwgdG8gdGhlIHN1Y2Nlc3Mgb2YgbXkgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDc6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFhGUk0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQveGZybS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC94ZnJtL0tjb25maWctNC0jXG5uZXQveGZybS9LY29uZmlnOjU6Y29uZmlnIFhGUk1cbm5ldC94ZnJtL0tjb25maWctNi1cdGJvb2xcbi0tXG5uZXQveGZybS9LY29uZmlnLTEwLVxubmV0L3hmcm0vS2NvbmZpZzoxMTpjb25maWcgWEZSTV9PRkZMT0FEXG5uZXQveGZybS9LY29uZmlnLTEyLVx0Ym9vbFxubmV0L3hmcm0vS2NvbmZpZy0xMy1cbm5ldC94ZnJtL0tjb25maWc6MTQ6Y29uZmlnIFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0xNS1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0yMj1pZiBJTkVUXG5uZXQveGZybS9LY29uZmlnOjIzOmNvbmZpZyBYRlJNX1VTRVJcbm5ldC94ZnJtL0tjb25maWctMjQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB1c2VyIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy0zMS1cbm5ldC94ZnJtL0tjb25maWc6MzI6Y29uZmlnIFhGUk1fVVNFUl9DT01QQVRcbm5ldC94ZnJtL0tjb25maWctMzMtXHR0cmlzdGF0ZSBcJiMzNDtDb21wYXRpYmxlIEFCSSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy00Mi1cbm5ldC94ZnJtL0tjb25maWc6NDM6Y29uZmlnIFhGUk1fSU5URVJGQUNFXG5uZXQveGZybS9LY29uZmlnLTQ0LVx0dHJpc3RhdGUgXCYjMzQ7VHJhbnNmb3JtYXRpb24gdmlydHVhbCBpbnRlcmZhY2VcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTUwLVxubmV0L3hmcm0vS2NvbmZpZzo1MTpjb25maWcgWEZSTV9TVUJfUE9MSUNZXG5uZXQveGZybS9LY29uZmlnLTUyLVx0Ym9vbCBcJiMzNDtUcmFuc2Zvcm1hdGlvbiBzdWIgcG9saWN5IHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTYwLVxubmV0L3hmcm0vS2NvbmZpZzo2MTpjb25maWcgWEZSTV9NSUdSQVRFXG5uZXQveGZybS9LY29uZmlnLTYyLVx0Ym9vbCBcJiMzNDtUcmFuc2Zvcm1hdGlvbiBtaWdyYXRlIGRhdGFiYXNlXCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy03MS1cbm5ldC94ZnJtL0tjb25maWc6NzI6Y29uZmlnIFhGUk1fU1RBVElTVElDU1xubmV0L3hmcm0vS2NvbmZpZy03My1cdGJvb2wgXCYjMzQ7VHJhbnNmb3JtYXRpb24gc3RhdGlzdGljc1wmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctODMtIyBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxubmV0L3hmcm0vS2NvbmZpZzo4NDpjb25maWcgWEZSTV9BSFxubmV0L3hmcm0vS2NvbmZpZy04NS1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZy05Mi0jIGFsZ29yaXRobXMgdGhhdCBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxubmV0L3hmcm0vS2NvbmZpZzo5Mzpjb25maWcgWEZSTV9FU1Bcbm5ldC94ZnJtL0tjb25maWctOTQtXHR0cmlzdGF0ZVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTA1LVxubmV0L3hmcm0vS2NvbmZpZzoxMDY6Y29uZmlnIFhGUk1fSVBDT01QXG5uZXQveGZybS9LY29uZmlnLTEwNy1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTQwLVxubmV0L3hmcm0vS2NvbmZpZzoxNDE6Y29uZmlnIFhGUk1fSVBURlNcbm5ldC94ZnJtL0tjb25maWctMTQyLVx0dHJpc3RhdGUgXCYjMzQ7SVBzZWMgSVAtVEZTL0FHR0ZSQUcgKFJGQyA5MzQ3KSBlbmNhcHN1bGF0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTE1Ni1cbm5ldC94ZnJtL0tjb25maWc6MTU3OmNvbmZpZyBYRlJNX0VTUElOVENQXG5uZXQveGZybS9LY29uZmlnLTE1OC1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MzExCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZyBhcyBhbiBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIFhGUk0gQ29uZmlndXJhdGlvbiBEZXBlbmRlbmN5KioKCkFscmlnaHQsIHNvIGBYRlJNYCBpcyBhIGJvb2xlYW4gY29uZmlnIG9wdGlvbiwgd2hpY2ggbWVhbnMgaXQmIzM5O3MgYSBzaW1wbGUgeWVzL25vIGZsYWcuIEFuZCB0aGUgaW1wb3J0YW50IHRoaW5nIGhlcmUgaXMgdGhhdCBpdCYjMzk7cyAqc2VsZWN0ZWQqIGJ5IG90aGVyIGNvbmZpZ3VyYXRpb25zLiBTbywgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyBJJiMzOTtkIHR5cGljYWxseSBlbmFibGUgZGlyZWN0bHksIGJ1dCByYXRoZXIgc29tZXRoaW5nIHRoYXQgZ2V0cyBwdWxsZWQgaW4gYXMgYSBkZXBlbmRlbmN5IGJhc2VkIG9uIG90aGVyIHNlbGVjdGlvbnMuIEkgbmVlZCB0byBmaWd1cmUgb3V0ICp3aGF0KiBleGFjdGx5IGlzIHRyaWdnZXJpbmcgaXRzIHNlbGVjdGlvbi4gS25vd2luZyBpdHMgZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgc3lzdGVtIGNvbmZpZ3VyYXRpb24gYW5kIGFueSBpbXBsaWNhdGlvbnMgZG93biB0aGUgbGluZS4gU28sIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgc2VlIHdoZXJlIGBYRlJNYCBpcyBiZWluZyBwdWxsZWQgaW4uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2ssIHdoaWNoIGlzIGdvaW5nIHRvIGluZm9ybSBtZSBhYm91dCB3aGF0IGZlYXR1cmVzIGFyZSB1c2luZyBYRlJNLCBhbmQgc28sIGluZm9ybSBtZSBhYm91dCB0aGUgZmVhdHVyZXMgdGhhdCBJIGFtIGVuYWJsaW5nIHdoZW4gZW5hYmxpbmcgWEZSTS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgWEZSTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjQvS2NvbmZpZz0zMDQ9Y29uZmlnIE5FVF9JUFZUSVxuLS1cbm5ldC9pcHY0L0tjb25maWctMzA3LVx0c2VsZWN0IE5FVF9JUF9UVU5ORUxcbm5ldC9pcHY0L0tjb25maWc6MzA4Olx0c2VsZWN0IFhGUk1cbm5ldC9pcHY0L0tjb25maWctMzA5LVx0aGVscFxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzM5PWNvbmZpZyBJTkVUX0FIXG5uZXQvaXB2NC9LY29uZmlnLTM0MC1cdHRyaXN0YXRlIFwmIzM0O0lQOiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjQvS2NvbmZpZzozNDE6XHRzZWxlY3QgWEZSTV9BSFxubmV0L2lwdjQvS2NvbmZpZy0zNDItXHRoZWxwXG4tLVxubmV0L2lwdjQvS2NvbmZpZz0zNTQ9Y29uZmlnIElORVRfRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1NS1cdHRyaXN0YXRlIFwmIzM0O0lQOiBFU1AgdHJhbnNmb3JtYXRpb25cJiMzNDtcbm5ldC9pcHY0L0tjb25maWc6MzU2Olx0c2VsZWN0IFhGUk1fRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1Ny1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM2OT1jb25maWcgSU5FVF9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY0L0tjb25maWctMzcxLVx0ZGVwZW5kcyBvbiBJTkVUX0VTUFxubmV0L2lwdjQvS2NvbmZpZzozNzI6XHRzZWxlY3QgWEZSTV9PRkZMT0FEXG5uZXQvaXB2NC9LY29uZmlnLTM3My1cdGRlZmF1bHQgblxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzgyPWNvbmZpZyBJTkVUX0VTUElOVENQXG4tLVxubmV0L2lwdjQvS2NvbmZpZy0zODYtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2NC9LY29uZmlnOjM4NzpcdHNlbGVjdCBYRlJNX0VTUElOVENQXG5uZXQvaXB2NC9LY29uZmlnLTM4OC1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM5ND1jb25maWcgSU5FVF9JUENPTVBcbi0tXG5uZXQvaXB2NC9LY29uZmlnLTM5Ni1cdHNlbGVjdCBJTkVUX1hGUk1fVFVOTkVMXG5uZXQvaXB2NC9LY29uZmlnOjM5NzpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjQvS2NvbmZpZy0zOTgtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz00Nz1jb25maWcgSU5FVDZfQUhcbm5ldC9pcHY2L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo0OTpcdHNlbGVjdCBYRlJNX0FIXG5uZXQvaXB2Ni9LY29uZmlnLTUwLVx0aGVscFxuLS1cbm5ldC9pcHY2L0tjb25maWc9NjI9Y29uZmlnIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZy02My1cdHRyaXN0YXRlIFwmIzM0O0lQdjY6IEVTUCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo2NDpcdHNlbGVjdCBYRlJNX0VTUFxubmV0L2lwdjYvS2NvbmZpZy02NS1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTc3PWNvbmZpZyBJTkVUNl9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY2L0tjb25maWctNzktXHRkZXBlbmRzIG9uIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZzo4MDpcdHNlbGVjdCBYRlJNX09GRkxPQURcbm5ldC9pcHY2L0tjb25maWctODEtXHRkZWZhdWx0IG5cbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTkwPWNvbmZpZyBJTkVUNl9FU1BJTlRDUFxuLS1cbm5ldC9pcHY2L0tjb25maWctOTQtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2Ni9LY29uZmlnOjk1Olx0c2VsZWN0IFhGUk1fRVNQSU5UQ1Bcbm5ldC9pcHY2L0tjb25maWctOTYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMDI9Y29uZmlnIElORVQ2X0lQQ09NUFxuLS1cbm5ldC9pcHY2L0tjb25maWctMTA0LVx0c2VsZWN0IElORVQ2X1hGUk1fVFVOTkVMXG5uZXQvaXB2Ni9LY29uZmlnOjEwNTpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjYvS2NvbmZpZy0xMDYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMTI9Y29uZmlnIElQVjZfTUlQNlxubmV0L2lwdjYvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBNb2JpbGl0eVwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzoxMTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xNTA9Y29uZmlnIElQVjZfVlRJXG4tLVxubmV0L2lwdjYvS2NvbmZpZy0xNTMtXHRzZWxlY3QgTkVUX0lQX1RVTk5FTFxubmV0L2lwdjYvS2NvbmZpZzoxNTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xNTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xND1jb25maWcgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTE1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6MTY6XHRzZWxlY3QgWEZSTVxubmV0L3hmcm0vS2NvbmZpZy0xNy1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTIzPWNvbmZpZyBYRlJNX1VTRVJcbm5ldC94ZnJtL0tjb25maWctMjQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB1c2VyIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXCYjMzQ7XG5uZXQveGZybS9LY29uZmlnOjI1Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0yNi1cdGhlbHBcbi0tXG5uZXQveGZybS9LY29uZmlnPTg0PWNvbmZpZyBYRlJNX0FIXG5uZXQveGZybS9LY29uZmlnLTg1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6ODY6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTg3LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9OTM9Y29uZmlnIFhGUk1fRVNQXG5uZXQveGZybS9LY29uZmlnLTk0LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6OTU6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTk2LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9MTA2PWNvbmZpZyBYRlJNX0lQQ09NUFxubmV0L3hmcm0vS2NvbmZpZy0xMDctXHR0cmlzdGF0ZVxubmV0L3hmcm0vS2NvbmZpZzoxMDg6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTEwOS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTExMj1jb25maWcgTkVUX0tFWVxubmV0L3hmcm0vS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtQRl9LRVkgc29ja2V0cyAoZGVwcmVjYXRlZClcJiMzNDtcbm5ldC94ZnJtL0tjb25maWc6MTE0Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTI3LVx0ZGVwZW5kcyBvbiBORVRfS0VZXG5uZXQveGZybS9LY29uZmlnOjEyODpcdHNlbGVjdCBYRlJNX01JR1JBVEVcbm5ldC94ZnJtL0tjb25maWctMTI5LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExMTQ2CgkJCQkJCQlvdXRwdXQ6IDEyOAoJCQkJCQkJdGhvdWdodHM6IDM3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGFjdCBvZiBhbiBJUHNlYyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUbyBlbmFibGUgSVBzZWMgcHJvcGVybHksIGBYRlJNX1VTRVJgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludDsgaXQgcHVsbHMgaW4gYFhGUk1fQUxHT2AsIHdoaWNoIGluIHR1cm4sIGluY2x1ZGVzIGBYRlJNYC4gQmV5b25kIHRoYXQsIGZvciBJUHNlYyBmdW5jdGlvbmFsaXR5IGl0c2VsZiwgYElORVRfRVNQYCwgYElORVRfQUhgLCBgSU5FVDZfRVNQYCwgYW5kIGBJTkVUNl9BSGAgYXJlIGNsZWFybHkgbmVjZXNzYXJ5LiBTbywgZm9yIHRoZSBjb25maWd1cmF0aW9uLCBJJiMzOTtsbCBkZWZpbml0ZWx5IHNwZWNpZnkgdGhvc2U6IGBYRlJNX1VTRVJgLCBgSU5FVF9FU1BgLCBgSU5FVF9BSGAsIGBJTkVUNl9FU1BgLCBhbmQgYElORVQ2X0FIYC4KCk5vdywgdGhlIGNvcmUgb2YgdGhlIG1hdHRlcjogdGhlIHBhdGNoIGZvY3VzZXMgb24gYHhmcm1faW5wdXRgLiBJIGtub3cgYHhmcm1faW5wdXRgIGlzIGEgaG90LXBhdGggZnVuY3Rpb247IGl0JiMzOTtzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciBJUHNlYyBpbnB1dCwgbWVhbmluZyBpdCBoYW5kbGVzIGV2ZXJ5IElQc2VjIHBhY2tldC4gVGhhdCByYWlzZXMgYSBmbGFnIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbnMsIHdoaWNoIHNheSB0byBhdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KCkJ1dCwgaGFuZyBvbi4uLiBUaGlzICpzcGVjaWZpYyogcGF0Y2ggb25seSBtb2RpZmllcyBgeGZybV9pbnB1dGAuIEl0JiMzOTtzIHRoZSBwb2ludCBvZiBtb2RpZmljYXRpb24uIEkmIzM5O3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIGZ1bmN0aW9ucyBhZmZlY3RlZC4gVGhpbmtpbmcgdGhyb3VnaCBpdCwgd2hpbGUgYHhmcm1faW5wdXRgICppcyogYSBob3QgcGF0aCwgaXQmIzM5O3MgYWxzbyBoaWdobHkgc3BlY2lmaWMgdG8gdGhlIFhGUk0gc3Vic3lzdGVtLiBJIHRoaW5rIGl0JiMzOTtzIGp1c3RpZmlhYmxlIHRvIGluY2x1ZGUgaXQgYmVjYXVzZSBvZiBpdHMgZGlyZWN0IHJlbGV2YW5jZSB0byB0aGUgcGF0Y2gmIzM5O3MgY2hhbmdlcy4gU28sIEkgd2lsbCBsaXN0IGB4ZnJtX2lucHV0YCBhcyB0aGUgZm9jdXMuCgpUbyByZWl0ZXJhdGUsIHRoZSBjb25maWd1cmF0aW9ucyB3aWxsIGJlOgoqICAgYFhGUk1fVVNFUmAKKiAgIGBJTkVUX0VTUGAKKiAgIGBJTkVUX0FIYAoqICAgYElORVQ2X0VTUGAKKiAgIGBJTkVUNl9BSGAKCkkmIzM5O20gcmVhZHkgdG8gdXNlIGBzZXQtcmVzdWx0c2Agd2l0aCB0aGVzZSBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYRlJNX1VTRVImIzM0OywKICAgICYjMzQ7SU5FVF9FU1AmIzM0OywKICAgICYjMzQ7SU5FVF9BSCYjMzQ7LAogICAgJiMzNDtJTkVUNl9FU1AmIzM0OywKICAgICYjMzQ7SU5FVDZfQUgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnJtX2lucHV0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1hGUk1fVVNFUiYjMzQ7LAogICAgJiMzNDtJTkVUX0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUX0FIJiMzNDssCiAgICAmIzM0O0lORVQ2X0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmcm1faW5wdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVBzZWMgaW5wdXQgcHJvY2Vzc2luZyBmdW5jdGlvbiBgeGZybV9pbnB1dGAgdG8gY29ycmVjdGx5IHRyYWNrIHRoZSBwcm90b2NvbCB1c2luZyBhIGxvY2FsIHZhcmlhYmxlIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gc3RhdGUgdGhhdCBtaWdodCBiZSBhbHRlcmVkIG9yIHVuYXZhaWxhYmxlIGxhdGVyIGluIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjI0Ljg2MzU3MDgxOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDQzNzEwNDA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlhGUk1fVVNFUlwiLFxuICAgIFwiSU5FVF9FU1BcIixcbiAgICBcIklORVRfQUhcIixcbiAgICBcIklORVQ2X0VTUFwiLFxuICAgIFwiSU5FVDZfQUhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4ZnJtX2lucHV0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVBzZWMgaW5wdXQgcHJvY2Vzc2luZyBmdW5jdGlvbiBgeGZybV9pbnB1dGAgdG8gY29ycmVjdGx5IHRyYWNrIHRoZSBwcm90b2NvbCB1c2luZyBhIGxvY2FsIHZhcmlhYmxlIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gc3RhdGUgdGhhdCBtaWdodCBiZSBhbHRlcmVkIG9yIHVuYXZhaWxhYmxlIGxhdGVyIGluIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDc6MzI6MjQuODYzNTc3OTg5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjU4NDgyNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5YTNkYmIzNzkyOWRkMmVlZWQ2NjQ4NjA3NjIzNmU1MzJlMWZlMWFlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDMwIDA3OjMyOjI0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC94ZnJtL3hmcm1faW5wdXQuYyBiL25ldC94ZnJtL3hmcm1faW5wdXQuY1xcbmluZGV4IGVlY2FiMzM3YmQwYTcuLjMxNzdmYTMzOTYxY2IgMTAwNjQ0XFxuLS0tIGEvbmV0L3hmcm0veGZybV9pbnB1dC5jXFxuKysrIGIvbmV0L3hmcm0veGZybV9pbnB1dC5jXFxuQEAgLTQ3NCw2ICs0NzQsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIFxcdHN0cnVjdCB4ZnJtX3N0YXRlICp4ID0gTlVMTDtcXG4gXFx0eGZybV9hZGRyZXNzX3QgKmRhZGRyO1xcbiBcXHR1MzIgbWFyayA9IHNrYi1cXHUwMDNlbWFyaztcXG4rXFx0dTggeGZybV9wcm90byA9IG5leHRoZHI7XFxuIFxcdHVuc2lnbmVkIGludCBmYW1pbHkgPSBBRl9VTlNQRUM7XFxuIFxcdGludCBkZWNhcHMgPSAwO1xcbiBcXHRpbnQgYXN5bmMgPSAwO1xcbkBAIC00ODUsNiArNDg2LDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxcbiBcXHRpZiAoZW5jYXBfdHlwZSBcXHUwMDNjIDAgfHwgKHhvIFxcdTAwMjZcXHUwMDI2ICh4by1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBYRlJNX0dSTyB8fCBlbmNhcF90eXBlID09IDAgfHxcXG4gXFx0XFx0XFx0XFx0ICAgICAgZW5jYXBfdHlwZSA9PSBVRFBfRU5DQVBfRVNQSU5VRFApKSkge1xcbiBcXHRcXHR4ID0geGZybV9pbnB1dF9zdGF0ZShza2IpO1xcbitcXHRcXHR4ZnJtX3Byb3RvID0geC1cXHUwMDNldHlwZS1cXHUwMDNlcHJvdG87XFxuIFxcbiBcXHRcXHRpZiAodW5saWtlbHkoeC1cXHUwMDNla20uc3RhdGUgIT0gWEZSTV9TVEFURV9WQUxJRCkpIHtcXG4gXFx0XFx0XFx0aWYgKHgtXFx1MDAzZWttLnN0YXRlID09IFhGUk1fU1RBVEVfQUNRKVxcbkBAIC01OTIsMTEgKzU5NCwxMyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIFxcbiBcXHRcXHR4ID0geGZybV9pbnB1dF9zdGF0ZV9sb29rdXAobmV0LCBtYXJrLCBkYWRkciwgc3BpLCBuZXh0aGRyLCBmYW1pbHkpO1xcbiBcXHRcXHRpZiAoeCA9PSBOVUxMKSB7XFxuK1xcdFxcdFxcdHhmcm1fcHJvdG8gPSBuZXh0aGRyO1xcbiBcXHRcXHRcXHRzZWNwYXRoX3Jlc2V0KHNrYik7XFxuIFxcdFxcdFxcdFhGUk1fSU5DX1NUQVRTKG5ldCwgTElOVVhfTUlCX1hGUk1JTk5PU1RBVEVTKTtcXG4gXFx0XFx0XFx0eGZybV9hdWRpdF9zdGF0ZV9ub3Rmb3VuZChza2IsIGZhbWlseSwgc3BpLCBzZXEpO1xcbiBcXHRcXHRcXHRnb3RvIGRyb3A7XFxuIFxcdFxcdH1cXG4rXFx0XFx0eGZybV9wcm90byA9IHgtXFx1MDAzZXR5cGUtXFx1MDAzZXByb3RvO1xcbiBcXG4gXFx0XFx0aWYgKHVubGlrZWx5KHgtXFx1MDAzZWRpciBcXHUwMDI2XFx1MDAyNiB4LVxcdTAwM2VkaXIgIT0gWEZSTV9TQV9ESVJfSU4pKSB7XFxuIFxcdFxcdFxcdHNlY3BhdGhfcmVzZXQoc2tiKTtcXG5AQCAtNjA0LDYgKzYwOCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcXG4gXFx0XFx0XFx0eGZybV9hdWRpdF9zdGF0ZV9ub3Rmb3VuZChza2IsIGZhbWlseSwgc3BpLCBzZXEpO1xcbiBcXHRcXHRcXHR4ZnJtX3N0YXRlX3B1dCh4KTtcXG4gXFx0XFx0XFx0eCA9IE5VTEw7XFxuK1xcdFxcdFxcdHhmcm1fcHJvdG8gPSBuZXh0aGRyO1xcbiBcXHRcXHRcXHRnb3RvIGRyb3A7XFxuIFxcdFxcdH1cXG4gXFxuQEAgLTcyOCw3ICs3MzMsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIFxcdH0gd2hpbGUgKCFlcnIpO1xcbiBcXG4gXFx0cmN1X3JlYWRfbG9jaygpO1xcbi1cXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeC1cXHUwMDNldHlwZS1cXHUwMDNlcHJvdG8sIDApO1xcbitcXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgMCk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuIFxcdFxcdGdvdG8gZHJvcDtcXG5AQCAtNzUzLDcgKzc1OCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcXG4gXFx0XFx0XFx0eGZybV9ncm8gPSB4by1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBYRlJNX0dSTztcXG4gXFxuIFxcdFxcdGVyciA9IC1FQUZOT1NVUFBPUlQ7XFxuLVxcdFxcdGFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoeC1cXHUwMDNlcHJvcHMuZmFtaWx5KTtcXG4rXFx0XFx0YWZpbmZvID0geGZybV9zdGF0ZV9hZmluZm9fZ2V0X3JjdShmYW1pbHkpO1xcbiBcXHRcXHRpZiAobGlrZWx5KGFmaW5mbykpXFxuIFxcdFxcdFxcdGVyciA9IGFmaW5mby1cXHUwMDNldHJhbnNwb3J0X2ZpbmlzaChza2IsIHhmcm1fZ3JvIHx8IGFzeW5jKTtcXG4gXFx0XFx0aWYgKHhmcm1fZ3JvKSB7XFxuQEAgLTc3Niw3ICs3ODEsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIGRyb3A6XFxuIFxcdGlmIChhc3luYylcXG4gXFx0XFx0ZGV2X3B1dChkZXYpO1xcbi1cXHR4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeCBcXHUwMDI2XFx1MDAyNiB4LVxcdTAwM2V0eXBlID8geC1cXHUwMDNldHlwZS1cXHUwMDNlcHJvdG8gOiBuZXh0aGRyLCAtMSk7XFxuK1xcdHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4ZnJtX3Byb3RvLCAtMSk7XFxuIFxcdGtmcmVlX3NrYihza2IpO1xcbiBcXHRyZXR1cm4gMDtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwNzozMjoyNS4xOTAyNTU1MDhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMzcxNzAxNzY0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJYRlJNX1VTRVJcIixcbiAgICBcIklORVRfRVNQXCIsXG4gICAgXCJJTkVUX0FIXCIsXG4gICAgXCJJTkVUNl9FU1BcIixcbiAgICBcIklORVQ2X0FIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybV9pbnB1dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDlhM2RiYjM3OTI5ZGQyZWVlZDY2NDg2MDc2MjM2ZTUzMmUxZmUxYWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwNzozMjoyNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC94ZnJtL3hmcm1faW5wdXQuYyBiL25ldC94ZnJtL3hmcm1faW5wdXQuY1xuaW5kZXggZWVjYWIzMzdiZDBhNy4uMzE3N2ZhMzM5NjFjYiAxMDA2NDRcbi0tLSBhL25ldC94ZnJtL3hmcm1faW5wdXQuY1xuKysrIGIvbmV0L3hmcm0veGZybV9pbnB1dC5jXG5AQCAtNDc0LDYgKzQ3NCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdHN0cnVjdCB4ZnJtX3N0YXRlICp4ID0gTlVMTDtcbiBcdHhmcm1fYWRkcmVzc190ICpkYWRkcjtcbiBcdHUzMiBtYXJrID0gc2tiLVx1MDAzZW1hcms7XG4rXHR1OCB4ZnJtX3Byb3RvID0gbmV4dGhkcjtcbiBcdHVuc2lnbmVkIGludCBmYW1pbHkgPSBBRl9VTlNQRUM7XG4gXHRpbnQgZGVjYXBzID0gMDtcbiBcdGludCBhc3luYyA9IDA7XG5AQCAtNDg1LDYgKzQ4Niw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdGlmIChlbmNhcF90eXBlIFx1MDAzYyAwIHx8ICh4byBcdTAwMjZcdTAwMjYgKHhvLVx1MDAzZWZsYWdzIFx1MDAyNiBYRlJNX0dSTyB8fCBlbmNhcF90eXBlID09IDAgfHxcbiBcdFx0XHRcdCAgICAgIGVuY2FwX3R5cGUgPT0gVURQX0VOQ0FQX0VTUElOVURQKSkpIHtcbiBcdFx0eCA9IHhmcm1faW5wdXRfc3RhdGUoc2tiKTtcbitcdFx0eGZybV9wcm90byA9IHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90bztcbiBcbiBcdFx0aWYgKHVubGlrZWx5KHgtXHUwMDNla20uc3RhdGUgIT0gWEZSTV9TVEFURV9WQUxJRCkpIHtcbiBcdFx0XHRpZiAoeC1cdTAwM2VrbS5zdGF0ZSA9PSBYRlJNX1NUQVRFX0FDUSlcbkBAIC01OTIsMTEgKzU5NCwxMyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXG4gXHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cChuZXQsIG1hcmssIGRhZGRyLCBzcGksIG5leHRoZHIsIGZhbWlseSk7XG4gXHRcdGlmICh4ID09IE5VTEwpIHtcbitcdFx0XHR4ZnJtX3Byb3RvID0gbmV4dGhkcjtcbiBcdFx0XHRzZWNwYXRoX3Jlc2V0KHNrYik7XG4gXHRcdFx0WEZSTV9JTkNfU1RBVFMobmV0LCBMSU5VWF9NSUJfWEZSTUlOTk9TVEFURVMpO1xuIFx0XHRcdHhmcm1fYXVkaXRfc3RhdGVfbm90Zm91bmQoc2tiLCBmYW1pbHksIHNwaSwgc2VxKTtcbiBcdFx0XHRnb3RvIGRyb3A7XG4gXHRcdH1cbitcdFx0eGZybV9wcm90byA9IHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90bztcbiBcbiBcdFx0aWYgKHVubGlrZWx5KHgtXHUwMDNlZGlyIFx1MDAyNlx1MDAyNiB4LVx1MDAzZWRpciAhPSBYRlJNX1NBX0RJUl9JTikpIHtcbiBcdFx0XHRzZWNwYXRoX3Jlc2V0KHNrYik7XG5AQCAtNjA0LDYgKzYwOCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdFx0XHR4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7XG4gXHRcdFx0eGZybV9zdGF0ZV9wdXQoeCk7XG4gXHRcdFx0eCA9IE5VTEw7XG4rXHRcdFx0eGZybV9wcm90byA9IG5leHRoZHI7XG4gXHRcdFx0Z290byBkcm9wO1xuIFx0XHR9XG4gXG5AQCAtNzI4LDcgKzczMyw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdH0gd2hpbGUgKCFlcnIpO1xuIFxuIFx0cmN1X3JlYWRfbG9jaygpO1xuLVx0ZXJyID0geGZybV9yY3ZfY2Ioc2tiLCBmYW1pbHksIHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90bywgMCk7XG4rXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgMCk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdHJjdV9yZWFkX3VubG9jaygpO1xuIFx0XHRnb3RvIGRyb3A7XG5AQCAtNzUzLDcgKzc1OCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdFx0XHR4ZnJtX2dybyA9IHhvLVx1MDAzZWZsYWdzIFx1MDAyNiBYRlJNX0dSTztcbiBcbiBcdFx0ZXJyID0gLUVBRk5PU1VQUE9SVDtcbi1cdFx0YWZpbmZvID0geGZybV9zdGF0ZV9hZmluZm9fZ2V0X3JjdSh4LVx1MDAzZXByb3BzLmZhbWlseSk7XG4rXHRcdGFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoZmFtaWx5KTtcbiBcdFx0aWYgKGxpa2VseShhZmluZm8pKVxuIFx0XHRcdGVyciA9IGFmaW5mby1cdTAwM2V0cmFuc3BvcnRfZmluaXNoKHNrYiwgeGZybV9ncm8gfHwgYXN5bmMpO1xuIFx0XHRpZiAoeGZybV9ncm8pIHtcbkBAIC03NzYsNyArNzgxLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIGRyb3A6XG4gXHRpZiAoYXN5bmMpXG4gXHRcdGRldl9wdXQoZGV2KTtcbi1cdHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4IFx1MDAyNlx1MDAyNiB4LVx1MDAzZXR5cGUgPyB4LVx1MDAzZXR5cGUtXHUwMDNlcHJvdG8gOiBuZXh0aGRyLCAtMSk7XG4rXHR4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgLTEpO1xuIFx0a2ZyZWVfc2tiKHNrYik7XG4gXHRyZXR1cm4gMDtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwNzozMjoyNS4xOTAyNTcwMDhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTQxODEzNDY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFhGUk0gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIGhlcmUgaW4gYG5ldC94ZnJtL3hmcm1faW5wdXQuY2AuIEl0IGxvb2tzIGxpa2UgaXQncyBtYWtpbmcgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGB4ZnJtX2lucHV0YCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGludHJvZHVjaW5nIGB4ZnJtX3Byb3RvYCB0byBtYW5hZ2UgdGhlIHByb3RvY29sIGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gYHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90b2AgYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgaW50ZXJlc3Rpbmc7IGl0IG1lYW5zIHRoZXkncmUgY2hhbmdpbmcgaG93IHRoZSBzdWJzeXN0ZW0gaGFuZGxlcyBwcm90b2NvbCBpZGVudGlmaWNhdGlvbiwgYW5kIHNpbmNlIGB4ZnJtX2lucHV0YCBpcyAqdGhlKiBlbnRyeSBwb2ludCBmb3IgaW5jb21pbmcgSVBzZWMgcGFja2V0cywgdGhpcyBpcyBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXTigJlzIGNlcnRhaW5seSByZWFjaGFibGUsIGFuZCBhbnkgbW9kaWZpY2F0aW9uIHRvIHRoaXMgY29yZSBmdW5jdGlvbmFsaXR5IHdhcnJhbnRzIGEgdGhvcm91Z2ggbG9vay5cblxuRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgWEZSTSBzdWJzeXN0ZW0gaXMgZXZlbiBjb25maWd1cmVkIGluIHRoZSBrZXJuZWwgYnVpbGQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZywgcHJvYmFibHkgYG5ldC94ZnJtL0tjb25maWdgIHRvIGNvbmZpcm0gYENPTkZJR19YRlJNYCBpcyBlbmFibGVkLiBUaGVuLCBJIHNob3VsZCBkbyBhIHF1aWNrIHNlYXJjaCB0aHJvdWdoIHRoZSBrZXJuZWwgc291cmNlIHRvIHNlZSB3aGVyZSBlbHNlIGB4ZnJtX2lucHV0YCBpcyBiZWluZyBjYWxsZWQgYW5kIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSB3aWRlciBjb250ZXh0IG9mIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDMzLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDc6MzI6MjkuNzMyMDczNTQyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMTA2NTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInhmcm1faW5wdXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3hmcm0vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC94ZnJtL01ha2VmaWxlPTE0PW9iai0kKENPTkZJR19YRlJNKSA6PSB4ZnJtX3BvbGljeS5vIHhmcm1fc3RhdGUubyB4ZnJtX2hhc2gubyBcXFxcXFxubmV0L3hmcm0vTWFrZWZpbGU6MTU6XFx0XFx0ICAgICAgeGZybV9pbnB1dC5vIHhmcm1fb3V0cHV0Lm8gXFxcXFxcbm5ldC94ZnJtL01ha2VmaWxlLTE2LVxcdFxcdCAgICAgIHhmcm1fc3lzY3RsLm8geGZybV9yZXBsYXkubyB4ZnJtX2RldmljZS5vIFxcXFxcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy0yLS8qXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjM6ICogeGZybV9pbnB1dC5jXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQtICpcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYz0zND1zdHJ1Y3QgeGZybV90cmFuc19jYiB7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDYtXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ3OnN0YXRpYyBERUZJTkVfU1BJTkxPQ0soeGZybV9pbnB1dF9hZmluZm9fbG9jayk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ4OnN0YXRpYyBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gY29uc3QgX19yY3UgKnhmcm1faW5wdXRfYWZpbmZvWzJdW0FGX0lORVQ2ICsgMV07XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ5LVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jPTUzPXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgeGZybV90cmFuc190YXNrbGV0LCB4ZnJtX3RyYW5zX3Rhc2tsZXQpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01NC1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NTU6aW50IHhmcm1faW5wdXRfcmVnaXN0ZXJfYWZpbmZvKGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvKVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01Ni17XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjEtXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjYyOlxcdHNwaW5fbG9ja19iaChcXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjYzOlxcdGlmICh1bmxpa2VseSh4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXFx1MDAzZWlzX2lwaXBdW2FmaW5mby1cXHUwMDNlZmFtaWx5XSkpXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY0LVxcdFxcdGVyciA9IC1FRVhJU1Q7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY1LVxcdGVsc2VcXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NjY6XFx0XFx0cmN1X2Fzc2lnbl9wb2ludGVyKHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVxcdTAwM2VmYW1pbHldLCBhZmluZm8pO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo2NzpcXHRzcGluX3VubG9ja19iaChcXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY4LVxcdHJldHVybiBlcnI7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY5LX1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzA6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3JlZ2lzdGVyX2FmaW5mbyk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTcxLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3MjppbnQgeGZybV9pbnB1dF91bnJlZ2lzdGVyX2FmaW5mbyhjb25zdCBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gKmFmaW5mbylcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzMte1xcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc1LVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3NjpcXHRzcGluX2xvY2tfYmgoXFx1MDAyNnhmcm1faW5wdXRfYWZpbmZvX2xvY2spO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3NzpcXHRpZiAobGlrZWx5KHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVxcdTAwM2VmYW1pbHldKSkge1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3ODpcXHRcXHRjb25zdCBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gKmN1cjtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzktXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjgwOlxcdFxcdGN1ciA9IHJjdV9hY2Nlc3NfcG9pbnRlcih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXFx1MDAzZWlzX2lwaXBdW2FmaW5mby1cXHUwMDNlZmFtaWx5XSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTgxLVxcdFxcdGlmICh1bmxpa2VseShjdXIgIT0gYWZpbmZvKSlcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy04My1cXHRcXHRlbHNlXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjg0OlxcdFxcdFxcdFJDVV9JTklUX1BPSU5URVIoeGZybV9pbnB1dF9hZmluZm9bYWZpbmZvLVxcdTAwM2Vpc19pcGlwXVthZmluZm8tXFx1MDAzZWZhbWlseV0sIE5VTEwpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy04NS1cXHR9XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjg2OlxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZ4ZnJtX2lucHV0X2FmaW5mb19sb2NrKTtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODctXFx0c3luY2hyb25pemVfcmN1KCk7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODktfVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo5MDpFWFBPUlRfU1lNQk9MKHhmcm1faW5wdXRfdW5yZWdpc3Rlcl9hZmluZm8pO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05MS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6OTI6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqeGZybV9pbnB1dF9nZXRfYWZpbmZvKHU4IGZhbWlseSwgYm9vbCBpc19pcGlwKVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05My17XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjk0OlxcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05NS1cXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05OS1cXHRyY3VfcmVhZF9sb2NrKCk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjEwMDpcXHRhZmluZm8gPSByY3VfZGVyZWZlcmVuY2UoeGZybV9pbnB1dF9hZmluZm9baXNfaXBpcF1bZmFtaWx5XSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTEwMS1cXHRpZiAodW5saWtlbHkoIWFmaW5mbykpXFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM9MTA2PXN0YXRpYyBpbnQgeGZybV9yY3ZfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGZhbWlseSwgdTggcHJvdG9jb2wsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTA5LVxcdGJvb2wgaXNfaXBpcCA9IChwcm90b2NvbCA9PSBJUFBST1RPX0lQSVAgfHwgcHJvdG9jb2wgPT0gSVBQUk9UT19JUFY2KTtcXG5uZXQveGZybS94ZnJtX2lucHV0LmM6MTEwOlxcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy0xMTEtXFx0aW50IHJldDtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTEyLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzoxMTM6XFx0YWZpbmZvID0geGZybV9pbnB1dF9nZXRfYWZpbmZvKGZhbWlseSwgaXNfaXBpcCk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTExNC1cXHRpZiAoIWFmaW5mbylcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYz00MzU9c3RhdGljIGludCB4ZnJtX2lubmVyX21vZGVfaW5wdXQoc3RydWN0IHhmcm1fc3RhdGUgKngsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDY1LSAqL1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo0NjY6aW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy00Njcte1xcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ4Ny1cXHRcXHRcXHRcXHQgICAgICBlbmNhcF90eXBlID09IFVEUF9FTkNBUF9FU1BJTlVEUCkpKSB7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ4ODpcXHRcXHR4ID0geGZybV9pbnB1dF9zdGF0ZShza2IpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy00ODktXFx0XFx0eGZybV9wcm90byA9IHgtXFx1MDAzZXR5cGUtXFx1MDAzZXByb3RvO1xcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTU5NC1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NTk1OlxcdFxcdHggPSB4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cChuZXQsIG1hcmssIGRhZGRyLCBzcGksIG5leHRoZHIsIGZhbWlseSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTU5Ni1cXHRcXHRpZiAoeCA9PSBOVUxMKSB7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzg3LX1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6Nzg4OkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dCk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc4OS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzkwOmludCB4ZnJtX2lucHV0X3Jlc3VtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkcilcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzkxLXtcXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzkyOlxcdHJldHVybiB4ZnJtX2lucHV0KHNrYiwgbmV4dGhkciwgMCwgLTEpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy03OTMtfVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3OTQ6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3Jlc3VtZSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc5NS1cXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYz04NTE9RVhQT1JUX1NZTUJPTCh4ZnJtX3RyYW5zX3F1ZXVlKTtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODUyLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo4NTM6dm9pZCBfX2luaXQgeGZybV9pbnB1dF9pbml0KHZvaWQpXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTg1NC17XFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTcyPXN0YXRpYyBib29sIHhmcm1pX2RlY29kZV9zZXNzaW9uKHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTkyLVxcdGlmIChpZmluZGV4KSB7XFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjE5MzpcXHRcXHRzdHJ1Y3QgbmV0ICpuZXQgPSB4c19uZXQoeGZybV9pbnB1dF9zdGF0ZShza2IpKTtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTk0LVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTIwOC1cXHRpZiAoeGktXFx1MDAzZXAuY29sbGVjdF9tZClcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6MjA5OlxcdFxcdHJlcy1cXHUwMDNlaWZfaWQgPSB4ZnJtX2lucHV0X3N0YXRlKHNrYiktXFx1MDAzZWlmX2lkO1xcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0yMTAtXFx0ZWxzZVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTMxMj1zdGF0aWMgaW50IHhmcm1pX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLFxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTMzMC1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6MzMxOlxcdHJldHVybiB4ZnJtX2lucHV0KHNrYiwgbmV4dGhkciwgc3BpLCBlbmNhcF90eXBlKTtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzMyLWRpc2NhcmQ6XFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MzU4PXN0YXRpYyBpbnQgeGZybWlfcmN2X2NiKHN0cnVjdCBza19idWZmICpza2IsIGludCBlcnIpXFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzY5LVxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzozNzA6XFx0eCA9IHhmcm1faW5wdXRfc3RhdGUoc2tiKTtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzcxLVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTk4Nz1zdGF0aWMgc3RydWN0IHhmcm02X3Byb3RvY29sIHhmcm1pX2FoNl9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy05ODgtXFx0LmhhbmRsZXJcXHQ9XFx0eGZybTZfcmN2LFxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzo5ODk6XFx0LmlucHV0X2hhbmRsZXJcXHQ9XFx0eGZybV9pbnB1dCxcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtOTkwLVxcdC5jYl9oYW5kbGVyXFx0PVxcdHhmcm1pX3Jjdl9jYixcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYz05OTU9c3RhdGljIHN0cnVjdCB4ZnJtNl9wcm90b2NvbCB4ZnJtaV9pcGNvbXA2X3Byb3RvY29sIF9fcmVhZF9tb3N0bHkgPSB7XFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTk5Ni1cXHQuaGFuZGxlclxcdD1cXHR4ZnJtNl9yY3YsXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjk5NzpcXHQuaW5wdXRfaGFuZGxlclxcdD1cXHR4ZnJtX2lucHV0LFxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy05OTgtXFx0LmNiX2hhbmRsZXJcXHQ9XFx0eGZybWlfcmN2X2NiLFxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTEwMzg9c3RhdGljIHN0cnVjdCB4ZnJtNF9wcm90b2NvbCB4ZnJtaV9haDRfcHJvdG9jb2wgX19yZWFkX21vc3RseSA9IHtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTAzOS1cXHQuaGFuZGxlclxcdD1cXHR4ZnJtNF9yY3YsXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjEwNDA6XFx0LmlucHV0X2hhbmRsZXJcXHQ9XFx0eGZybV9pbnB1dCxcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0MS1cXHQuY2JfaGFuZGxlclxcdD1cXHR4ZnJtaV9yY3ZfY2IsXFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTA0Nj1zdGF0aWMgc3RydWN0IHhmcm00X3Byb3RvY29sIHhmcm1pX2lwY29tcDRfcHJvdG9jb2wgX19yZWFkX21vc3RseSA9IHtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0Ny1cXHQuaGFuZGxlclxcdD1cXHR4ZnJtNF9yY3YsXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjEwNDg6XFx0LmlucHV0X2hhbmRsZXJcXHQ9XFx0eGZybV9pbnB1dCxcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0OS1cXHQuY2JfaGFuZGxlclxcdD1cXHR4ZnJtaV9yY3ZfY2IsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lwY29tcC5jPTExMT1zdGF0aWMgdm9pZCBpcGNvbXBfaW5wdXRfZG9uZSh2b2lkICpkYXRhLCBpbnQgZXJyKVxcbi0tXFxubmV0L3hmcm0veGZybV9pcGNvbXAuYy0xMTQtXFxubmV0L3hmcm0veGZybV9pcGNvbXAuYzoxMTU6XFx0eGZybV9pbnB1dF9yZXN1bWUoc2tiLCBpcGNvbXBfaW5wdXRfZG9uZTIoc2tiLCBlcnIpKTtcXG5uZXQveGZybS94ZnJtX2lwY29tcC5jLTExNi19XFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9MjU5PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaXB0ZnNfYWxsb2Nfc2tiKHN0cnVjdCBza19idWZmICp0cGwsIHUzMiBsZW4sIGJvb2wgbDNyZXN2KVxcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTI4MC1cXHRpZiAoIWwzcmVzdikge1xcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoyODE6XFx0XFx0LyogeGZybV9pbnB1dCByZXN1bWUgbmVlZHMgZGV2IGFuZCB4ZnJtIGV4dCBmcm9tIHR1bm5lbCBwa3QgKi9cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMjgyLVxcdFxcdHNrYi1cXHUwMDNlZGV2ID0gdHBsLVxcdTAwM2VkZXY7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMjg1LVxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoyODY6XFx0LyogZHJvcHBlZCBieSB4ZnJtX2lucHV0LCB1c2VkIGJ5IHhmcm1fb3V0cHV0ICovXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTI4Ny1cXHRza2JfZHN0X2NvcHkoc2tiLCB0cGwpO1xcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jPTYzOT1zdGF0aWMgdTMyIF9faXB0ZnNfaXBsZW4odTggKmRhdGEpXFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtNjU2LSAqIG9mIHBhY2tldHMgaW4gdGhlIGhvcGVzIHRoYXQgb25lIGRheSBhIGxpc3Qgd2lsbCBiZSB0YWtlbiBieVxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzo2NTc6ICogeGZybV9pbnB1dC5cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtNjU4LSAqL1xcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jPTk0Mz1zdGF0aWMgYm9vbCBfX2lucHV0X3Byb2Nlc3NfcGF5bG9hZChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgdTMyIGRhdGEsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTE5MC1cXHRcXHRza2JfbGlzdF9kZWxfaW5pdChza2IpO1xcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoxMTkxOlxcdFxcdGlmICh4ZnJtX2lucHV0KHNrYiwgMCwgMCwgLTIpKVxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0xMTkyLVxcdFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jPTE2Njg9c3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGlwdGZzX2Ryb3BfdGltZXIoc3RydWN0IGhydGltZXIgKm1lKVxcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTE3MTQtICpcXG5uZXQveGZybS94ZnJtX2lwdGZzLmM6MTcxNTogKiBSZXR1cm46IC1FSU5QUk9HUkVTUyB0byBpbmZvcm0geGZybV9pbnB1dCB0byBzdG9wIHByb2Nlc3NpbmcgdGhlIHNrYi5cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTcxNi0gKi9cXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9MTcxNz1zdGF0aWMgaW50IGlwdGZzX2lucHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTE3NDktXFx0LyogV2UgYWx3YXlzIGhhdmUgZGVhbHQgd2l0aCB0aGUgaW5wdXQgU0tCLCBlaXRoZXIgd2UgYXJlIHJlLXVzaW5nIGl0LFxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoxNzUwOlxcdCAqIG9yIHdlIGhhdmUgZnJlZWQgaXQuIFJldHVybiBFSU5QUk9HUkVTUyBzbyB0aGF0IHhmcm1faW5wdXQgc3RvcHNcXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTc1MS1cXHQgKiBwcm9jZXNzaW5nIGl0Llxcbi0tXFxubmV0L3hmcm0veGZybV9wb2xpY3kuYz0zNjcwPWludCBfX3hmcm1fcG9saWN5X2NoZWNrKHN0cnVjdCBzb2NrICpzaywgaW50IGRpciwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtMzc1My1cXHRcXHRjb25zdCBib29sIGlzX2NyeXB0b19vZmZsb2FkID0gc3AgXFx1MDAyNlxcdTAwMjZcXG5uZXQveGZybS94ZnJtX3BvbGljeS5jOjM3NTQ6XFx0XFx0XFx0KHhmcm1faW5wdXRfc3RhdGUoc2tiKS1cXHUwMDNleHNvLnR5cGUgPT0gWEZSTV9ERVZfT0ZGTE9BRF9DUllQVE8pO1xcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtMzc1NS1cXG4tLVxcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmM9NDQwND12b2lkIF9faW5pdCB4ZnJtX2luaXQodm9pZClcXG4tLVxcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtNDQxMS1cXHR4ZnJtX2Rldl9pbml0KCk7XFxubmV0L3hmcm0veGZybV9wb2xpY3kuYzo0NDEyOlxcdHhmcm1faW5wdXRfaW5pdCgpO1xcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtNDQxMy1cXG4tLVxcbm5ldC94ZnJtL3hmcm1fc3RhdGUuYz0xMTc1PXN0YXRpYyBzdHJ1Y3QgeGZybV9zdGF0ZSAqX194ZnJtX3N0YXRlX2xvb2t1cChjb25zdCBzdHJ1Y3QgeGZybV9oYXNoX3N0YXRlX3B0cnMgKnN0YXRlX3B0cnMsXFxuLS1cXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTIwMC1cXG5uZXQveGZybS94ZnJtX3N0YXRlLmM6MTIwMTpzdHJ1Y3QgeGZybV9zdGF0ZSAqeGZybV9pbnB1dF9zdGF0ZV9sb29rdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgbWFyayxcXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTIwMi1cXHRcXHRcXHRcXHRcXHQgICBjb25zdCB4ZnJtX2FkZHJlc3NfdCAqZGFkZHIsXFxuLS1cXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTI1Mi19XFxubmV0L3hmcm0veGZybV9zdGF0ZS5jOjEyNTM6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cCk7XFxubmV0L3hmcm0veGZybV9zdGF0ZS5jLTEyNTQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjI5Ljc3NDE4MzIwM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NDA3NTE5NjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBYRlJNIElucHV0IFBhdGNoKipcblxuT2theSwgc28gdGhlIHBhdGNoIEknbSBsb29raW5nIGF0IG1vZGlmaWVzIGB4ZnJtX2lucHV0YCBpbiBgbmV0L3hmcm0veGZybV9pbnB1dC5jYC4gSXQgc2VlbXMgdGhleSd2ZSBzd2l0Y2hlZCB0byB1c2luZyBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiB0aGUgb2xkZXIgYHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90b2Agb3IgYG5leHRoZHJgIHZhcmlhYmxlcyB3aXRoaW4gYHhmcm1fcmN2X2NiYCBhbmQgYHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3VgLiBUaGlzIGZlZWxzIGxpa2UgYSBmdW5jdGlvbmFsbHkgaW1wb3J0YW50IGNoYW5nZSDigJMgZGVmaW5pdGVseSB3b3J0aCBhIGRlZXBlciBsb29rIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgc29tZSBmb2N1c2VkIGZ1enppbmcuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGB4ZnJtX2lucHV0YCBzaG91bGQgYmUgdGhlIHByaW1hcnkgZm9jdXMgc3ltYm9sIGZvciBmdXp6aW5nIHRoaXMuIE1ha2VzIHNlbnNlLiBBbmQgZnJvbSB0aGUgZGVzY3JpcHRpb24sIGl0IGxvb2tzIGxpa2UgdGhpcyBjb2RlIHJlcXVpcmVzIGBYRlJNYCB0byBiZSBlbmFibGVkIGluIHRoZSBrZXJuZWwgY29uZmlnLlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gdGhhdCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBpbiBgbmV0L3hmcm0vS2NvbmZpZ2AgdGhhdCBtaWdodCBpbmZsdWVuY2Ugb3IgaW50ZXJhY3Qgd2l0aCB0aGlzIGNvZGUgcGF0aC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBYRlJNYCBkZXBlbmRlbmNpZXMgYXMgd2VsbC4gRW5zdXJpbmcgSSBoYXZlbid0IG1pc3NlZCBhIGNvbmRpdGlvbmFsIGJ1aWxkIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBjcml0aWNhbCB0byB0aGUgc3VjY2VzcyBvZiBteSBhbmFseXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODA3NiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwNzozMjozNC41MTQ5MzcwOTVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDEwMTg4NTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFhGUk1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3hmcm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQveGZybS9LY29uZmlnLTQtI1xcbm5ldC94ZnJtL0tjb25maWc6NTpjb25maWcgWEZSTVxcbm5ldC94ZnJtL0tjb25maWctNi1cXHRib29sXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTEwLVxcbm5ldC94ZnJtL0tjb25maWc6MTE6Y29uZmlnIFhGUk1fT0ZGTE9BRFxcbm5ldC94ZnJtL0tjb25maWctMTItXFx0Ym9vbFxcbm5ldC94ZnJtL0tjb25maWctMTMtXFxubmV0L3hmcm0vS2NvbmZpZzoxNDpjb25maWcgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0yMj1pZiBJTkVUXFxubmV0L3hmcm0vS2NvbmZpZzoyMzpjb25maWcgWEZSTV9VU0VSXFxubmV0L3hmcm0vS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZSBcXFwiVHJhbnNmb3JtYXRpb24gdXNlciBjb25maWd1cmF0aW9uIGludGVyZmFjZVxcXCJcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctMzEtXFxubmV0L3hmcm0vS2NvbmZpZzozMjpjb25maWcgWEZSTV9VU0VSX0NPTVBBVFxcbm5ldC94ZnJtL0tjb25maWctMzMtXFx0dHJpc3RhdGUgXFxcIkNvbXBhdGlibGUgQUJJIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTQyLVxcbm5ldC94ZnJtL0tjb25maWc6NDM6Y29uZmlnIFhGUk1fSU5URVJGQUNFXFxubmV0L3hmcm0vS2NvbmZpZy00NC1cXHR0cmlzdGF0ZSBcXFwiVHJhbnNmb3JtYXRpb24gdmlydHVhbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTUwLVxcbm5ldC94ZnJtL0tjb25maWc6NTE6Y29uZmlnIFhGUk1fU1VCX1BPTElDWVxcbm5ldC94ZnJtL0tjb25maWctNTItXFx0Ym9vbCBcXFwiVHJhbnNmb3JtYXRpb24gc3ViIHBvbGljeSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy02MC1cXG5uZXQveGZybS9LY29uZmlnOjYxOmNvbmZpZyBYRlJNX01JR1JBVEVcXG5uZXQveGZybS9LY29uZmlnLTYyLVxcdGJvb2wgXFxcIlRyYW5zZm9ybWF0aW9uIG1pZ3JhdGUgZGF0YWJhc2VcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTcxLVxcbm5ldC94ZnJtL0tjb25maWc6NzI6Y29uZmlnIFhGUk1fU1RBVElTVElDU1xcbm5ldC94ZnJtL0tjb25maWctNzMtXFx0Ym9vbCBcXFwiVHJhbnNmb3JtYXRpb24gc3RhdGlzdGljc1xcXCJcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctODMtIyBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxcbm5ldC94ZnJtL0tjb25maWc6ODQ6Y29uZmlnIFhGUk1fQUhcXG5uZXQveGZybS9LY29uZmlnLTg1LVxcdHRyaXN0YXRlXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTkyLSMgYWxnb3JpdGhtcyB0aGF0IFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmUgaW1wbGVtZW50ZWQuXFxubmV0L3hmcm0vS2NvbmZpZzo5Mzpjb25maWcgWEZSTV9FU1BcXG5uZXQveGZybS9LY29uZmlnLTk0LVxcdHRyaXN0YXRlXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTEwNS1cXG5uZXQveGZybS9LY29uZmlnOjEwNjpjb25maWcgWEZSTV9JUENPTVBcXG5uZXQveGZybS9LY29uZmlnLTEwNy1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xNDAtXFxubmV0L3hmcm0vS2NvbmZpZzoxNDE6Y29uZmlnIFhGUk1fSVBURlNcXG5uZXQveGZybS9LY29uZmlnLTE0Mi1cXHR0cmlzdGF0ZSBcXFwiSVBzZWMgSVAtVEZTL0FHR0ZSQUcgKFJGQyA5MzQ3KSBlbmNhcHN1bGF0aW9uIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTE1Ni1cXG5uZXQveGZybS9LY29uZmlnOjE1Nzpjb25maWcgWEZSTV9FU1BJTlRDUFxcbm5ldC94ZnJtL0tjb25maWctMTU4LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDc6MzI6MzQuNTU1OTU4NTc2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg5MTY0Nzc0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3NpbmcgYXMgYW4gZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFhGUk0gQ29uZmlndXJhdGlvbiBEZXBlbmRlbmN5KipcblxuQWxyaWdodCwgc28gYFhGUk1gIGlzIGEgYm9vbGVhbiBjb25maWcgb3B0aW9uLCB3aGljaCBtZWFucyBpdCdzIGEgc2ltcGxlIHllcy9ubyBmbGFnLiBBbmQgdGhlIGltcG9ydGFudCB0aGluZyBoZXJlIGlzIHRoYXQgaXQncyAqc2VsZWN0ZWQqIGJ5IG90aGVyIGNvbmZpZ3VyYXRpb25zLiBTbywgaXQncyBub3Qgc29tZXRoaW5nIEknZCB0eXBpY2FsbHkgZW5hYmxlIGRpcmVjdGx5LCBidXQgcmF0aGVyIHNvbWV0aGluZyB0aGF0IGdldHMgcHVsbGVkIGluIGFzIGEgZGVwZW5kZW5jeSBiYXNlZCBvbiBvdGhlciBzZWxlY3Rpb25zLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqd2hhdCogZXhhY3RseSBpcyB0cmlnZ2VyaW5nIGl0cyBzZWxlY3Rpb24uIEtub3dpbmcgaXRzIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHN5c3RlbSBjb25maWd1cmF0aW9uIGFuZCBhbnkgaW1wbGljYXRpb25zIGRvd24gdGhlIGxpbmUuIFNvLCBsZXQncyBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgc2VlIHdoZXJlIGBYRlJNYCBpcyBiZWluZyBwdWxsZWQgaW4uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2ssIHdoaWNoIGlzIGdvaW5nIHRvIGluZm9ybSBtZSBhYm91dCB3aGF0IGZlYXR1cmVzIGFyZSB1c2luZyBYRlJNLCBhbmQgc28sIGluZm9ybSBtZSBhYm91dCB0aGUgZmVhdHVyZXMgdGhhdCBJIGFtIGVuYWJsaW5nIHdoZW4gZW5hYmxpbmcgWEZSTS5cblxuXG4iLCJJbnB1dFRva2VucyI6OTMxMSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjM4LjQ0NzYwNzgwMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTQyNjkwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgWEZSTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L0tjb25maWc9MzA0PWNvbmZpZyBORVRfSVBWVElcXG4tLVxcbm5ldC9pcHY0L0tjb25maWctMzA3LVxcdHNlbGVjdCBORVRfSVBfVFVOTkVMXFxubmV0L2lwdjQvS2NvbmZpZzozMDg6XFx0c2VsZWN0IFhGUk1cXG5uZXQvaXB2NC9LY29uZmlnLTMwOS1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTMzOT1jb25maWcgSU5FVF9BSFxcbm5ldC9pcHY0L0tjb25maWctMzQwLVxcdHRyaXN0YXRlIFxcXCJJUDogQUggdHJhbnNmb3JtYXRpb25cXFwiXFxubmV0L2lwdjQvS2NvbmZpZzozNDE6XFx0c2VsZWN0IFhGUk1fQUhcXG5uZXQvaXB2NC9LY29uZmlnLTM0Mi1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTM1ND1jb25maWcgSU5FVF9FU1BcXG5uZXQvaXB2NC9LY29uZmlnLTM1NS1cXHR0cmlzdGF0ZSBcXFwiSVA6IEVTUCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2NC9LY29uZmlnOjM1NjpcXHRzZWxlY3QgWEZSTV9FU1BcXG5uZXQvaXB2NC9LY29uZmlnLTM1Ny1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTM2OT1jb25maWcgSU5FVF9FU1BfT0ZGTE9BRFxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZy0zNzEtXFx0ZGVwZW5kcyBvbiBJTkVUX0VTUFxcbm5ldC9pcHY0L0tjb25maWc6MzcyOlxcdHNlbGVjdCBYRlJNX09GRkxPQURcXG5uZXQvaXB2NC9LY29uZmlnLTM3My1cXHRkZWZhdWx0IG5cXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzgyPWNvbmZpZyBJTkVUX0VTUElOVENQXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnLTM4Ni1cXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXFxubmV0L2lwdjQvS2NvbmZpZzozODc6XFx0c2VsZWN0IFhGUk1fRVNQSU5UQ1BcXG5uZXQvaXB2NC9LY29uZmlnLTM4OC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTM5ND1jb25maWcgSU5FVF9JUENPTVBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWctMzk2LVxcdHNlbGVjdCBJTkVUX1hGUk1fVFVOTkVMXFxubmV0L2lwdjQvS2NvbmZpZzozOTc6XFx0c2VsZWN0IFhGUk1fSVBDT01QXFxubmV0L2lwdjQvS2NvbmZpZy0zOTgtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz00Nz1jb25maWcgSU5FVDZfQUhcXG5uZXQvaXB2Ni9LY29uZmlnLTQ4LVxcdHRyaXN0YXRlIFxcXCJJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2Ni9LY29uZmlnOjQ5OlxcdHNlbGVjdCBYRlJNX0FIXFxubmV0L2lwdjYvS2NvbmZpZy01MC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTYyPWNvbmZpZyBJTkVUNl9FU1BcXG5uZXQvaXB2Ni9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJJUHY2OiBFU1AgdHJhbnNmb3JtYXRpb25cXFwiXFxubmV0L2lwdjYvS2NvbmZpZzo2NDpcXHRzZWxlY3QgWEZSTV9FU1BcXG5uZXQvaXB2Ni9LY29uZmlnLTY1LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9Nzc9Y29uZmlnIElORVQ2X0VTUF9PRkZMT0FEXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gSU5FVDZfRVNQXFxubmV0L2lwdjYvS2NvbmZpZzo4MDpcXHRzZWxlY3QgWEZSTV9PRkZMT0FEXFxubmV0L2lwdjYvS2NvbmZpZy04MS1cXHRkZWZhdWx0IG5cXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9OTA9Y29uZmlnIElORVQ2X0VTUElOVENQXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTk0LVxcdHNlbGVjdCBORVRfU09DS19NU0dcXG5uZXQvaXB2Ni9LY29uZmlnOjk1OlxcdHNlbGVjdCBYRlJNX0VTUElOVENQXFxubmV0L2lwdjYvS2NvbmZpZy05Ni1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTEwMj1jb25maWcgSU5FVDZfSVBDT01QXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTEwNC1cXHRzZWxlY3QgSU5FVDZfWEZSTV9UVU5ORUxcXG5uZXQvaXB2Ni9LY29uZmlnOjEwNTpcXHRzZWxlY3QgWEZSTV9JUENPTVBcXG5uZXQvaXB2Ni9LY29uZmlnLTEwNi1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTExMj1jb25maWcgSVBWNl9NSVA2XFxubmV0L2lwdjYvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIklQdjY6IE1vYmlsaXR5XFxcIlxcbm5ldC9pcHY2L0tjb25maWc6MTE0OlxcdHNlbGVjdCBYRlJNXFxubmV0L2lwdjYvS2NvbmZpZy0xMTUtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz0xNTA9Y29uZmlnIElQVjZfVlRJXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTE1My1cXHRzZWxlY3QgTkVUX0lQX1RVTk5FTFxcbm5ldC9pcHY2L0tjb25maWc6MTU0OlxcdHNlbGVjdCBYRlJNXFxubmV0L2lwdjYvS2NvbmZpZy0xNTUtXFx0aGVscFxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0xND1jb25maWcgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZVxcbm5ldC94ZnJtL0tjb25maWc6MTY6XFx0c2VsZWN0IFhGUk1cXG5uZXQveGZybS9LY29uZmlnLTE3LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MjM9Y29uZmlnIFhGUk1fVVNFUlxcbm5ldC94ZnJtL0tjb25maWctMjQtXFx0dHJpc3RhdGUgXFxcIlRyYW5zZm9ybWF0aW9uIHVzZXIgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VcXFwiXFxubmV0L3hmcm0vS2NvbmZpZzoyNTpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0yNi1cXHRoZWxwXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTg0PWNvbmZpZyBYRlJNX0FIXFxubmV0L3hmcm0vS2NvbmZpZy04NS1cXHR0cmlzdGF0ZVxcbm5ldC94ZnJtL0tjb25maWc6ODY6XFx0c2VsZWN0IFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctODctXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz05Mz1jb25maWcgWEZSTV9FU1BcXG5uZXQveGZybS9LY29uZmlnLTk0LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzo5NTpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy05Ni1cXHRzZWxlY3QgQ1JZUFRPXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTEwNj1jb25maWcgWEZSTV9JUENPTVBcXG5uZXQveGZybS9LY29uZmlnLTEwNy1cXHR0cmlzdGF0ZVxcbm5ldC94ZnJtL0tjb25maWc6MTA4OlxcdHNlbGVjdCBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTEwOS1cXHRzZWxlY3QgQ1JZUFRPXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTExMj1jb25maWcgTkVUX0tFWVxcbm5ldC94ZnJtL0tjb25maWctMTEzLVxcdHRyaXN0YXRlIFxcXCJQRl9LRVkgc29ja2V0cyAoZGVwcmVjYXRlZClcXFwiXFxubmV0L3hmcm0vS2NvbmZpZzoxMTQ6XFx0c2VsZWN0IFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctMTE1LVxcdGhlbHBcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTI1PWNvbmZpZyBORVRfS0VZX01JR1JBVEVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctMTI3LVxcdGRlcGVuZHMgb24gTkVUX0tFWVxcbm5ldC94ZnJtL0tjb25maWc6MTI4OlxcdHNlbGVjdCBYRlJNX01JR1JBVEVcXG5uZXQveGZybS9LY29uZmlnLTEyOS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjM4LjUxMzAzODQyOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMzE3ODQ3NzMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIGFuIElQc2VjIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUbyBlbmFibGUgSVBzZWMgcHJvcGVybHksIGBYRlJNX1VTRVJgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludDsgaXQgcHVsbHMgaW4gYFhGUk1fQUxHT2AsIHdoaWNoIGluIHR1cm4sIGluY2x1ZGVzIGBYRlJNYC4gQmV5b25kIHRoYXQsIGZvciBJUHNlYyBmdW5jdGlvbmFsaXR5IGl0c2VsZiwgYElORVRfRVNQYCwgYElORVRfQUhgLCBgSU5FVDZfRVNQYCwgYW5kIGBJTkVUNl9BSGAgYXJlIGNsZWFybHkgbmVjZXNzYXJ5LiBTbywgZm9yIHRoZSBjb25maWd1cmF0aW9uLCBJJ2xsIGRlZmluaXRlbHkgc3BlY2lmeSB0aG9zZTogYFhGUk1fVVNFUmAsIGBJTkVUX0VTUGAsIGBJTkVUX0FIYCwgYElORVQ2X0VTUGAsIGFuZCBgSU5FVDZfQUhgLlxuXG5Ob3csIHRoZSBjb3JlIG9mIHRoZSBtYXR0ZXI6IHRoZSBwYXRjaCBmb2N1c2VzIG9uIGB4ZnJtX2lucHV0YC4gSSBrbm93IGB4ZnJtX2lucHV0YCBpcyBhIGhvdC1wYXRoIGZ1bmN0aW9uOyBpdCdzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciBJUHNlYyBpbnB1dCwgbWVhbmluZyBpdCBoYW5kbGVzIGV2ZXJ5IElQc2VjIHBhY2tldC4gVGhhdCByYWlzZXMgYSBmbGFnIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbnMsIHdoaWNoIHNheSB0byBhdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cblxuQnV0LCBoYW5nIG9uLi4uIFRoaXMgKnNwZWNpZmljKiBwYXRjaCBvbmx5IG1vZGlmaWVzIGB4ZnJtX2lucHV0YC4gSXQncyB0aGUgcG9pbnQgb2YgbW9kaWZpY2F0aW9uLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIGZ1bmN0aW9ucyBhZmZlY3RlZC4gVGhpbmtpbmcgdGhyb3VnaCBpdCwgd2hpbGUgYHhmcm1faW5wdXRgICppcyogYSBob3QgcGF0aCwgaXQncyBhbHNvIGhpZ2hseSBzcGVjaWZpYyB0byB0aGUgWEZSTSBzdWJzeXN0ZW0uIEkgdGhpbmsgaXQncyBqdXN0aWZpYWJsZSB0byBpbmNsdWRlIGl0IGJlY2F1c2Ugb2YgaXRzIGRpcmVjdCByZWxldmFuY2UgdG8gdGhlIHBhdGNoJ3MgY2hhbmdlcy4gU28sIEkgd2lsbCBsaXN0IGB4ZnJtX2lucHV0YCBhcyB0aGUgZm9jdXMuXG5cblRvIHJlaXRlcmF0ZSwgdGhlIGNvbmZpZ3VyYXRpb25zIHdpbGwgYmU6XG4qICAgYFhGUk1fVVNFUmBcbiogICBgSU5FVF9FU1BgXG4qICAgYElORVRfQUhgXG4qICAgYElORVQ2X0VTUGBcbiogICBgSU5FVDZfQUhgXG5cbkknbSByZWFkeSB0byB1c2UgYHNldC1yZXN1bHRzYCB3aXRoIHRoZXNlIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTExNDYsIk91dHB1dFRva2VucyI6MTI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjQ4LjgzMDg4ODY1OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MzgxMjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJYRlJNX1VTRVJcIixcbiAgICBcIklORVRfRVNQXCIsXG4gICAgXCJJTkVUX0FIXCIsXG4gICAgXCJJTkVUNl9FU1BcIixcbiAgICBcIklORVQ2X0FIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybV9pbnB1dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWEZSTV9VU0VSXCIsXG4gICAgXCJJTkVUX0VTUFwiLFxuICAgIFwiSU5FVF9BSFwiLFxuICAgIFwiSU5FVDZfRVNQXCIsXG4gICAgXCJJTkVUNl9BSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInhmcm1faW5wdXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUHNlYyBpbnB1dCBwcm9jZXNzaW5nIGZ1bmN0aW9uIGB4ZnJtX2lucHV0YCB0byBjb3JyZWN0bHkgdHJhY2sgdGhlIHByb3RvY29sIHVzaW5nIGEgbG9jYWwgdmFyaWFibGUgYHhmcm1fcHJvdG9gIGluc3RlYWQgb2YgcmVseWluZyBvbiBzdGF0ZSB0aGF0IG1pZ2h0IGJlIGFsdGVyZWQgb3IgdW5hdmFpbGFibGUgbGF0ZXIgaW4gdGhlIGZ1bmN0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflow8msvz[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-30 07:11:37 +0000 UTC FinishedAt: 2026-07-30 07:32:50 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFRM_USER", "INET_ESP", "INET_AH", "INET6_ESP", "INET6_AH" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "51b093a7ba27476e1f639455f005e8d2e75390e4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFRM_USER", "INET_ESP", "INET_AH", "INET6_ESP", "INET6_AH" ], "series_id": "d0d1df09-bb04-4399-aa68-9ba2e4115416" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "xfrm_input" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1hGUk1fVVNFUiYjMzQ7LAogICAgJiMzNDtJTkVUX0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUX0FIJiMzNDssCiAgICAmIzM0O0lORVQ2X0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmcm1faW5wdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVBzZWMgaW5wdXQgcHJvY2Vzc2luZyBmdW5jdGlvbiBgeGZybV9pbnB1dGAgdG8gY29ycmVjdGx5IHRyYWNrIHRoZSBwcm90b2NvbCB1c2luZyBhIGxvY2FsIHZhcmlhYmxlIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gc3RhdGUgdGhhdCBtaWdodCBiZSBhbHRlcmVkIG9yIHVuYXZhaWxhYmxlIGxhdGVyIGluIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDlhM2RiYjM3OTI5ZGQyZWVlZDY2NDg2MDc2MjM2ZTUzMmUxZmUxYWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwNzozMjoyNCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQveGZybS94ZnJtX2lucHV0LmMgYi9uZXQveGZybS94ZnJtX2lucHV0LmNcbmluZGV4IGVlY2FiMzM3YmQwYTcuLjMxNzdmYTMzOTYxY2IgMTAwNjQ0XG4tLS0gYS9uZXQveGZybS94ZnJtX2lucHV0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC94ZnJtL3hmcm1faW5wdXQuY1xuQEAgLTQ3NCw2ICYjNDM7NDc0LDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIFx0c3RydWN0IHhmcm1fc3RhdGUgKnggPSBOVUxMO1xuIFx0eGZybV9hZGRyZXNzX3QgKmRhZGRyO1xuIFx0dTMyIG1hcmsgPSBza2ItXHUwMDNlbWFyaztcbiYjNDM7XHR1OCB4ZnJtX3Byb3RvID0gbmV4dGhkcjtcbiBcdHVuc2lnbmVkIGludCBmYW1pbHkgPSBBRl9VTlNQRUM7XG4gXHRpbnQgZGVjYXBzID0gMDtcbiBcdGludCBhc3luYyA9IDA7XG5AQCAtNDg1LDYgJiM0Mzs0ODYsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXHRpZiAoZW5jYXBfdHlwZSBcdTAwM2MgMCB8fCAoeG8gXHUwMDI2XHUwMDI2ICh4by1cdTAwM2VmbGFncyBcdTAwMjYgWEZSTV9HUk8gfHwgZW5jYXBfdHlwZSA9PSAwIHx8XG4gXHRcdFx0XHQgICAgICBlbmNhcF90eXBlID09IFVEUF9FTkNBUF9FU1BJTlVEUCkpKSB7XG4gXHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlKHNrYik7XG4mIzQzO1x0XHR4ZnJtX3Byb3RvID0geC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvO1xuIFxuIFx0XHRpZiAodW5saWtlbHkoeC1cdTAwM2VrbS5zdGF0ZSAhPSBYRlJNX1NUQVRFX1ZBTElEKSkge1xuIFx0XHRcdGlmICh4LVx1MDAzZWttLnN0YXRlID09IFhGUk1fU1RBVEVfQUNRKVxuQEAgLTU5MiwxMSAmIzQzOzU5NCwxMyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXG4gXHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cChuZXQsIG1hcmssIGRhZGRyLCBzcGksIG5leHRoZHIsIGZhbWlseSk7XG4gXHRcdGlmICh4ID09IE5VTEwpIHtcbiYjNDM7XHRcdFx0eGZybV9wcm90byA9IG5leHRoZHI7XG4gXHRcdFx0c2VjcGF0aF9yZXNldChza2IpO1xuIFx0XHRcdFhGUk1fSU5DX1NUQVRTKG5ldCwgTElOVVhfTUlCX1hGUk1JTk5PU1RBVEVTKTtcbiBcdFx0XHR4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7XG4gXHRcdFx0Z290byBkcm9wO1xuIFx0XHR9XG4mIzQzO1x0XHR4ZnJtX3Byb3RvID0geC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvO1xuIFxuIFx0XHRpZiAodW5saWtlbHkoeC1cdTAwM2VkaXIgXHUwMDI2XHUwMDI2IHgtXHUwMDNlZGlyICE9IFhGUk1fU0FfRElSX0lOKSkge1xuIFx0XHRcdHNlY3BhdGhfcmVzZXQoc2tiKTtcbkBAIC02MDQsNiAmIzQzOzYwOCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdFx0XHR4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7XG4gXHRcdFx0eGZybV9zdGF0ZV9wdXQoeCk7XG4gXHRcdFx0eCA9IE5VTEw7XG4mIzQzO1x0XHRcdHhmcm1fcHJvdG8gPSBuZXh0aGRyO1xuIFx0XHRcdGdvdG8gZHJvcDtcbiBcdFx0fVxuIFxuQEAgLTcyOCw3ICYjNDM7NzMzLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIFx0fSB3aGlsZSAoIWVycik7XG4gXG4gXHRyY3VfcmVhZF9sb2NrKCk7XG4tXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvLCAwKTtcbiYjNDM7XHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgMCk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdHJjdV9yZWFkX3VubG9jaygpO1xuIFx0XHRnb3RvIGRyb3A7XG5AQCAtNzUzLDcgJiM0Mzs3NTgsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXHRcdFx0eGZybV9ncm8gPSB4by1cdTAwM2VmbGFncyBcdTAwMjYgWEZSTV9HUk87XG4gXG4gXHRcdGVyciA9IC1FQUZOT1NVUFBPUlQ7XG4tXHRcdGFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoeC1cdTAwM2Vwcm9wcy5mYW1pbHkpO1xuJiM0MztcdFx0YWZpbmZvID0geGZybV9zdGF0ZV9hZmluZm9fZ2V0X3JjdShmYW1pbHkpO1xuIFx0XHRpZiAobGlrZWx5KGFmaW5mbykpXG4gXHRcdFx0ZXJyID0gYWZpbmZvLVx1MDAzZXRyYW5zcG9ydF9maW5pc2goc2tiLCB4ZnJtX2dybyB8fCBhc3luYyk7XG4gXHRcdGlmICh4ZnJtX2dybykge1xuQEAgLTc3Niw3ICYjNDM7NzgxLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIGRyb3A6XG4gXHRpZiAoYXN5bmMpXG4gXHRcdGRldl9wdXQoZGV2KTtcbi1cdHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4IFx1MDAyNlx1MDAyNiB4LVx1MDAzZXR5cGUgPyB4LVx1MDAzZXR5cGUtXHUwMDNlcHJvdG8gOiBuZXh0aGRyLCAtMSk7XG4mIzQzO1x0eGZybV9yY3ZfY2Ioc2tiLCBmYW1pbHksIHhmcm1fcHJvdG8sIC0xKTtcbiBcdGtmcmVlX3NrYihza2IpO1xuIFx0cmV0dXJuIDA7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYRlJNX1VTRVImIzM0OywKICAgICYjMzQ7SU5FVF9FU1AmIzM0OywKICAgICYjMzQ7SU5FVF9BSCYjMzQ7LAogICAgJiMzNDtJTkVUNl9FU1AmIzM0OywKICAgICYjMzQ7SU5FVDZfQUgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnJtX2lucHV0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5YTNkYmIzNzkyOWRkMmVlZWQ2NjQ4NjA3NjIzNmU1MzJlMWZlMWFlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMzAgMDc6MzI6MjQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQveGZybS94ZnJtX2lucHV0LmMgYi9uZXQveGZybS94ZnJtX2lucHV0LmMKaW5kZXggZWVjYWIzMzdiZDBhNy4uMzE3N2ZhMzM5NjFjYiAxMDA2NDQKLS0tIGEvbmV0L3hmcm0veGZybV9pbnB1dC5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC94ZnJtL3hmcm1faW5wdXQuYwpAQCAtNDc0LDYgJiM0Mzs0NzQsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpCiAJc3RydWN0IHhmcm1fc3RhdGUgKnggPSBOVUxMOwogCXhmcm1fYWRkcmVzc190ICpkYWRkcjsKIAl1MzIgbWFyayA9IHNrYi0mZ3Q7bWFyazsKJiM0MzsJdTggeGZybV9wcm90byA9IG5leHRoZHI7CiAJdW5zaWduZWQgaW50IGZhbWlseSA9IEFGX1VOU1BFQzsKIAlpbnQgZGVjYXBzID0gMDsKIAlpbnQgYXN5bmMgPSAwOwpAQCAtNDg1LDYgJiM0Mzs0ODYsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpCiAJaWYgKGVuY2FwX3R5cGUgJmx0OyAwIHx8ICh4byAmYW1wOyZhbXA7ICh4by0mZ3Q7ZmxhZ3MgJmFtcDsgWEZSTV9HUk8gfHwgZW5jYXBfdHlwZSA9PSAwIHx8CiAJCQkJICAgICAgZW5jYXBfdHlwZSA9PSBVRFBfRU5DQVBfRVNQSU5VRFApKSkgewogCQl4ID0geGZybV9pbnB1dF9zdGF0ZShza2IpOwomIzQzOwkJeGZybV9wcm90byA9IHgtJmd0O3R5cGUtJmd0O3Byb3RvOwogCiAJCWlmICh1bmxpa2VseSh4LSZndDtrbS5zdGF0ZSAhPSBYRlJNX1NUQVRFX1ZBTElEKSkgewogCQkJaWYgKHgtJmd0O2ttLnN0YXRlID09IFhGUk1fU1RBVEVfQUNRKQpAQCAtNTkyLDExICYjNDM7NTk0LDEzIEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSkKIAogCQl4ID0geGZybV9pbnB1dF9zdGF0ZV9sb29rdXAobmV0LCBtYXJrLCBkYWRkciwgc3BpLCBuZXh0aGRyLCBmYW1pbHkpOwogCQlpZiAoeCA9PSBOVUxMKSB7CiYjNDM7CQkJeGZybV9wcm90byA9IG5leHRoZHI7CiAJCQlzZWNwYXRoX3Jlc2V0KHNrYik7CiAJCQlYRlJNX0lOQ19TVEFUUyhuZXQsIExJTlVYX01JQl9YRlJNSU5OT1NUQVRFUyk7CiAJCQl4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7CiAJCQlnb3RvIGRyb3A7CiAJCX0KJiM0MzsJCXhmcm1fcHJvdG8gPSB4LSZndDt0eXBlLSZndDtwcm90bzsKIAogCQlpZiAodW5saWtlbHkoeC0mZ3Q7ZGlyICZhbXA7JmFtcDsgeC0mZ3Q7ZGlyICE9IFhGUk1fU0FfRElSX0lOKSkgewogCQkJc2VjcGF0aF9yZXNldChza2IpOwpAQCAtNjA0LDYgJiM0Mzs2MDgsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpCiAJCQl4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7CiAJCQl4ZnJtX3N0YXRlX3B1dCh4KTsKIAkJCXggPSBOVUxMOwomIzQzOwkJCXhmcm1fcHJvdG8gPSBuZXh0aGRyOwogCQkJZ290byBkcm9wOwogCQl9CiAKQEAgLTcyOCw3ICYjNDM7NzMzLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKQogCX0gd2hpbGUgKCFlcnIpOwogCiAJcmN1X3JlYWRfbG9jaygpOwotCWVyciA9IHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4LSZndDt0eXBlLSZndDtwcm90bywgMCk7CiYjNDM7CWVyciA9IHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4ZnJtX3Byb3RvLCAwKTsKIAlpZiAoZXJyKSB7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCQlnb3RvIGRyb3A7CkBAIC03NTMsNyAmIzQzOzc1OCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSkKIAkJCXhmcm1fZ3JvID0geG8tJmd0O2ZsYWdzICZhbXA7IFhGUk1fR1JPOwogCiAJCWVyciA9IC1FQUZOT1NVUFBPUlQ7Ci0JCWFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoeC0mZ3Q7cHJvcHMuZmFtaWx5KTsKJiM0MzsJCWFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoZmFtaWx5KTsKIAkJaWYgKGxpa2VseShhZmluZm8pKQogCQkJZXJyID0gYWZpbmZvLSZndDt0cmFuc3BvcnRfZmluaXNoKHNrYiwgeGZybV9ncm8gfHwgYXN5bmMpOwogCQlpZiAoeGZybV9ncm8pIHsKQEAgLTc3Niw3ICYjNDM7NzgxLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKQogZHJvcDoKIAlpZiAoYXN5bmMpCiAJCWRldl9wdXQoZGV2KTsKLQl4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeCAmYW1wOyZhbXA7IHgtJmd0O3R5cGUgPyB4LSZndDt0eXBlLSZndDtwcm90byA6IG5leHRoZHIsIC0xKTsKJiM0MzsJeGZybV9yY3ZfY2Ioc2tiLCBmYW1pbHksIHhmcm1fcHJvdG8sIC0xKTsKIAlrZnJlZV9za2Ioc2tiKTsKIAlyZXR1cm4gMDsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDc6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAzMwoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBYRlJNIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgaW4gYG5ldC94ZnJtL3hmcm1faW5wdXQuY2AuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgbWFraW5nIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBgeGZybV9pbnB1dGAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgYHhmcm1fcHJvdG9gIHRvIG1hbmFnZSB0aGUgcHJvdG9jb2wgZXhwbGljaXRseSwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBgeC0mZ3Q7dHlwZS0mZ3Q7cHJvdG9gIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nOyBpdCBtZWFucyB0aGV5JiMzOTtyZSBjaGFuZ2luZyBob3cgdGhlIHN1YnN5c3RlbSBoYW5kbGVzIHByb3RvY29sIGlkZW50aWZpY2F0aW9uLCBhbmQgc2luY2UgYHhmcm1faW5wdXRgIGlzICp0aGUqIGVudHJ5IHBvaW50IGZvciBpbmNvbWluZyBJUHNlYyBwYWNrZXRzLCB0aGlzIGlzIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBJdOKAmXMgY2VydGFpbmx5IHJlYWNoYWJsZSwgYW5kIGFueSBtb2RpZmljYXRpb24gdG8gdGhpcyBjb3JlIGZ1bmN0aW9uYWxpdHkgd2FycmFudHMgYSB0aG9yb3VnaCBsb29rLgoKRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgWEZSTSBzdWJzeXN0ZW0gaXMgZXZlbiBjb25maWd1cmVkIGluIHRoZSBrZXJuZWwgYnVpbGQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcsIHByb2JhYmx5IGBuZXQveGZybS9LY29uZmlnYCB0byBjb25maXJtIGBDT05GSUdfWEZSTWAgaXMgZW5hYmxlZC4gVGhlbiwgSSBzaG91bGQgZG8gYSBxdWljayBzZWFyY2ggdGhyb3VnaCB0aGUga2VybmVsIHNvdXJjZSB0byBzZWUgd2hlcmUgZWxzZSBgeGZybV9pbnB1dGAgaXMgYmVpbmcgY2FsbGVkIGFuZCBnZXQgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgd2lkZXIgY29udGV4dCBvZiB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt4ZnJtX2lucHV0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3hmcm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC94ZnJtL01ha2VmaWxlPTE0PW9iai0kKENPTkZJR19YRlJNKSA6PSB4ZnJtX3BvbGljeS5vIHhmcm1fc3RhdGUubyB4ZnJtX2hhc2gubyBcXFxubmV0L3hmcm0vTWFrZWZpbGU6MTU6XHRcdCAgICAgIHhmcm1faW5wdXQubyB4ZnJtX291dHB1dC5vIFxcXG5uZXQveGZybS9NYWtlZmlsZS0xNi1cdFx0ICAgICAgeGZybV9zeXNjdGwubyB4ZnJtX3JlcGxheS5vIHhmcm1fZGV2aWNlLm8gXFxcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMi0vKlxubmV0L3hmcm0veGZybV9pbnB1dC5jOjM6ICogeGZybV9pbnB1dC5jXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNC0gKlxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz0zND1zdHJ1Y3QgeGZybV90cmFuc19jYiB7XG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ2LVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ3OnN0YXRpYyBERUZJTkVfU1BJTkxPQ0soeGZybV9pbnB1dF9hZmluZm9fbG9jayk7XG5uZXQveGZybS94ZnJtX2lucHV0LmM6NDg6c3RhdGljIHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyBjb25zdCBfX3JjdSAqeGZybV9pbnB1dF9hZmluZm9bMl1bQUZfSU5FVDYgJiM0MzsgMV07XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDktXG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jPTUzPXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgeGZybV90cmFuc190YXNrbGV0LCB4ZnJtX3RyYW5zX3Rhc2tsZXQpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTU0LVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjU1OmludCB4ZnJtX2lucHV0X3JlZ2lzdGVyX2FmaW5mbyhjb25zdCBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gKmFmaW5mbylcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01Ni17XG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTYxLVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjYyOlx0c3Bpbl9sb2NrX2JoKFx1MDAyNnhmcm1faW5wdXRfYWZpbmZvX2xvY2spO1xubmV0L3hmcm0veGZybV9pbnB1dC5jOjYzOlx0aWYgKHVubGlrZWx5KHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cdTAwM2Vpc19pcGlwXVthZmluZm8tXHUwMDNlZmFtaWx5XSkpXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjQtXHRcdGVyciA9IC1FRVhJU1Q7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjUtXHRlbHNlXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NjY6XHRcdHJjdV9hc3NpZ25fcG9pbnRlcih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVx1MDAzZWZhbWlseV0sIGFmaW5mbyk7XG5uZXQveGZybS94ZnJtX2lucHV0LmM6Njc6XHRzcGluX3VubG9ja19iaChcdTAwMjZ4ZnJtX2lucHV0X2FmaW5mb19sb2NrKTtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy02OC1cdHJldHVybiBlcnI7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjktfVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjcwOkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dF9yZWdpc3Rlcl9hZmluZm8pO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTcxLVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjcyOmludCB4ZnJtX2lucHV0X3VucmVnaXN0ZXJfYWZpbmZvKGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTczLXtcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzUtXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzY6XHRzcGluX2xvY2tfYmgoXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XG5uZXQveGZybS94ZnJtX2lucHV0LmM6Nzc6XHRpZiAobGlrZWx5KHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cdTAwM2Vpc19pcGlwXVthZmluZm8tXHUwMDNlZmFtaWx5XSkpIHtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3ODpcdFx0Y29uc3Qgc3RydWN0IHhmcm1faW5wdXRfYWZpbmZvICpjdXI7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzktXG5uZXQveGZybS94ZnJtX2lucHV0LmM6ODA6XHRcdGN1ciA9IHJjdV9hY2Nlc3NfcG9pbnRlcih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVx1MDAzZWZhbWlseV0pO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTgxLVx0XHRpZiAodW5saWtlbHkoY3VyICE9IGFmaW5mbykpXG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTgzLVx0XHRlbHNlXG5uZXQveGZybS94ZnJtX2lucHV0LmM6ODQ6XHRcdFx0UkNVX0lOSVRfUE9JTlRFUih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVx1MDAzZWZhbWlseV0sIE5VTEwpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTg1LVx0fVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjg2Olx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtODctXHRzeW5jaHJvbml6ZV9yY3UoKTtcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODktfVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjkwOkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dF91bnJlZ2lzdGVyX2FmaW5mbyk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtOTEtXG5uZXQveGZybS94ZnJtX2lucHV0LmM6OTI6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqeGZybV9pbnB1dF9nZXRfYWZpbmZvKHU4IGZhbWlseSwgYm9vbCBpc19pcGlwKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTkzLXtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo5NDpcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTk1LVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05OS1cdHJjdV9yZWFkX2xvY2soKTtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzoxMDA6XHRhZmluZm8gPSByY3VfZGVyZWZlcmVuY2UoeGZybV9pbnB1dF9hZmluZm9baXNfaXBpcF1bZmFtaWx5XSk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTAxLVx0aWYgKHVubGlrZWx5KCFhZmluZm8pKVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz0xMDY9c3RhdGljIGludCB4ZnJtX3Jjdl9jYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgZmFtaWx5LCB1OCBwcm90b2NvbCxcbi0tXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTA5LVx0Ym9vbCBpc19pcGlwID0gKHByb3RvY29sID09IElQUFJPVE9fSVBJUCB8fCBwcm90b2NvbCA9PSBJUFBST1RPX0lQVjYpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jOjExMDpcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTExMS1cdGludCByZXQ7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTEyLVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjExMzpcdGFmaW5mbyA9IHhmcm1faW5wdXRfZ2V0X2FmaW5mbyhmYW1pbHksIGlzX2lwaXApO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTExNC1cdGlmICghYWZpbmZvKVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz00MzU9c3RhdGljIGludCB4ZnJtX2lubmVyX21vZGVfaW5wdXQoc3RydWN0IHhmcm1fc3RhdGUgKngsXG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ2NS0gKi9cbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo0NjY6aW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ2Ny17XG4tLVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ4Ny1cdFx0XHRcdCAgICAgIGVuY2FwX3R5cGUgPT0gVURQX0VOQ0FQX0VTUElOVURQKSkpIHtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo0ODg6XHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlKHNrYik7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDg5LVx0XHR4ZnJtX3Byb3RvID0geC1cdTAwM2V0eXBlLVx1MDAzZXByb3RvO1xuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01OTQtXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NTk1Olx0XHR4ID0geGZybV9pbnB1dF9zdGF0ZV9sb29rdXAobmV0LCBtYXJrLCBkYWRkciwgc3BpLCBuZXh0aGRyLCBmYW1pbHkpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTU5Ni1cdFx0aWYgKHggPT0gTlVMTCkge1xuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYy03ODctfVxubmV0L3hmcm0veGZybV9pbnB1dC5jOjc4ODpFWFBPUlRfU1lNQk9MKHhmcm1faW5wdXQpO1xubmV0L3hmcm0veGZybV9pbnB1dC5jLTc4OS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3OTA6aW50IHhmcm1faW5wdXRfcmVzdW1lKHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc5MS17XG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzkyOlx0cmV0dXJuIHhmcm1faW5wdXQoc2tiLCBuZXh0aGRyLCAwLCAtMSk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzkzLX1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3OTQ6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3Jlc3VtZSk7XG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzk1LVxuLS1cbm5ldC94ZnJtL3hmcm1faW5wdXQuYz04NTE9RVhQT1JUX1NZTUJPTCh4ZnJtX3RyYW5zX3F1ZXVlKTtcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy04NTItXG5uZXQveGZybS94ZnJtX2lucHV0LmM6ODUzOnZvaWQgX19pbml0IHhmcm1faW5wdXRfaW5pdCh2b2lkKVxubmV0L3hmcm0veGZybV9pbnB1dC5jLTg1NC17XG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTE3Mj1zdGF0aWMgYm9vbCB4ZnJtaV9kZWNvZGVfc2Vzc2lvbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0xOTItXHRpZiAoaWZpbmRleCkge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjE5MzpcdFx0c3RydWN0IG5ldCAqbmV0ID0geHNfbmV0KHhmcm1faW5wdXRfc3RhdGUoc2tiKSk7XG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTk0LVxuLS1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0yMDgtXHRpZiAoeGktXHUwMDNlcC5jb2xsZWN0X21kKVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjIwOTpcdFx0cmVzLVx1MDAzZWlmX2lkID0geGZybV9pbnB1dF9zdGF0ZShza2IpLVx1MDAzZWlmX2lkO1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTIxMC1cdGVsc2Vcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MzEyPXN0YXRpYyBpbnQgeGZybWlfaW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksXG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTMzMC1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzozMzE6XHRyZXR1cm4geGZybV9pbnB1dChza2IsIG5leHRoZHIsIHNwaSwgZW5jYXBfdHlwZSk7XG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzMyLWRpc2NhcmQ6XG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTM1OD1zdGF0aWMgaW50IHhmcm1pX3Jjdl9jYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgZXJyKVxuLS1cbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0zNjktXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6MzcwOlx0eCA9IHhmcm1faW5wdXRfc3RhdGUoc2tiKTtcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0zNzEtXG4tLVxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTk4Nz1zdGF0aWMgc3RydWN0IHhmcm02X3Byb3RvY29sIHhmcm1pX2FoNl9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTk4OC1cdC5oYW5kbGVyXHQ9XHR4ZnJtNl9yY3YsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6OTg5Olx0LmlucHV0X2hhbmRsZXJcdD1cdHhmcm1faW5wdXQsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtOTkwLVx0LmNiX2hhbmRsZXJcdD1cdHhmcm1pX3Jjdl9jYixcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9OTk1PXN0YXRpYyBzdHJ1Y3QgeGZybTZfcHJvdG9jb2wgeGZybWlfaXBjb21wNl9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTk5Ni1cdC5oYW5kbGVyXHQ9XHR4ZnJtNl9yY3YsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6OTk3Olx0LmlucHV0X2hhbmRsZXJcdD1cdHhmcm1faW5wdXQsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtOTk4LVx0LmNiX2hhbmRsZXJcdD1cdHhmcm1pX3Jjdl9jYixcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTAzOD1zdGF0aWMgc3RydWN0IHhmcm00X3Byb3RvY29sIHhmcm1pX2FoNF9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTEwMzktXHQuaGFuZGxlclx0PVx0eGZybTRfcmN2LFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjEwNDA6XHQuaW5wdXRfaGFuZGxlclx0PVx0eGZybV9pbnB1dCxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0xMDQxLVx0LmNiX2hhbmRsZXJcdD1cdHhmcm1pX3Jjdl9jYixcbi0tXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTA0Nj1zdGF0aWMgc3RydWN0IHhmcm00X3Byb3RvY29sIHhmcm1pX2lwY29tcDRfcHJvdG9jb2wgX19yZWFkX21vc3RseSA9IHtcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0xMDQ3LVx0LmhhbmRsZXJcdD1cdHhmcm00X3Jjdixcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzoxMDQ4Olx0LmlucHV0X2hhbmRsZXJcdD1cdHhmcm1faW5wdXQsXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0OS1cdC5jYl9oYW5kbGVyXHQ9XHR4ZnJtaV9yY3ZfY2IsXG4tLVxubmV0L3hmcm0veGZybV9pcGNvbXAuYz0xMTE9c3RhdGljIHZvaWQgaXBjb21wX2lucHV0X2RvbmUodm9pZCAqZGF0YSwgaW50IGVycilcbi0tXG5uZXQveGZybS94ZnJtX2lwY29tcC5jLTExNC1cbm5ldC94ZnJtL3hmcm1faXBjb21wLmM6MTE1Olx0eGZybV9pbnB1dF9yZXN1bWUoc2tiLCBpcGNvbXBfaW5wdXRfZG9uZTIoc2tiLCBlcnIpKTtcbm5ldC94ZnJtL3hmcm1faXBjb21wLmMtMTE2LX1cbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9MjU5PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaXB0ZnNfYWxsb2Nfc2tiKHN0cnVjdCBza19idWZmICp0cGwsIHUzMiBsZW4sIGJvb2wgbDNyZXN2KVxuLS1cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0yODAtXHRpZiAoIWwzcmVzdikge1xubmV0L3hmcm0veGZybV9pcHRmcy5jOjI4MTpcdFx0LyogeGZybV9pbnB1dCByZXN1bWUgbmVlZHMgZGV2IGFuZCB4ZnJtIGV4dCBmcm9tIHR1bm5lbCBwa3QgKi9cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0yODItXHRcdHNrYi1cdTAwM2VkZXYgPSB0cGwtXHUwMDNlZGV2O1xuLS1cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0yODUtXG5uZXQveGZybS94ZnJtX2lwdGZzLmM6Mjg2Olx0LyogZHJvcHBlZCBieSB4ZnJtX2lucHV0LCB1c2VkIGJ5IHhmcm1fb3V0cHV0ICovXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMjg3LVx0c2tiX2RzdF9jb3B5KHNrYiwgdHBsKTtcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9NjM5PXN0YXRpYyB1MzIgX19pcHRmc19pcGxlbih1OCAqZGF0YSlcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtNjU2LSAqIG9mIHBhY2tldHMgaW4gdGhlIGhvcGVzIHRoYXQgb25lIGRheSBhIGxpc3Qgd2lsbCBiZSB0YWtlbiBieVxubmV0L3hmcm0veGZybV9pcHRmcy5jOjY1NzogKiB4ZnJtX2lucHV0LlxubmV0L3hmcm0veGZybV9pcHRmcy5jLTY1OC0gKi9cbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9OTQzPXN0YXRpYyBib29sIF9faW5wdXRfcHJvY2Vzc19wYXlsb2FkKHN0cnVjdCB4ZnJtX3N0YXRlICp4LCB1MzIgZGF0YSxcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTE5MC1cdFx0c2tiX2xpc3RfZGVsX2luaXQoc2tiKTtcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoxMTkxOlx0XHRpZiAoeGZybV9pbnB1dChza2IsIDAsIDAsIC0yKSlcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0xMTkyLVx0XHRcdGtmcmVlX3NrYihza2IpO1xuLS1cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYz0xNjY4PXN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBpcHRmc19kcm9wX3RpbWVyKHN0cnVjdCBocnRpbWVyICptZSlcbi0tXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTcxNC0gKlxubmV0L3hmcm0veGZybV9pcHRmcy5jOjE3MTU6ICogUmV0dXJuOiAtRUlOUFJPR1JFU1MgdG8gaW5mb3JtIHhmcm1faW5wdXQgdG8gc3RvcCBwcm9jZXNzaW5nIHRoZSBza2IuXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTcxNi0gKi9cbm5ldC94ZnJtL3hmcm1faXB0ZnMuYz0xNzE3PXN0YXRpYyBpbnQgaXB0ZnNfaW5wdXQoc3RydWN0IHhmcm1fc3RhdGUgKngsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L3hmcm0veGZybV9pcHRmcy5jLTE3NDktXHQvKiBXZSBhbHdheXMgaGF2ZSBkZWFsdCB3aXRoIHRoZSBpbnB1dCBTS0IsIGVpdGhlciB3ZSBhcmUgcmUtdXNpbmcgaXQsXG5uZXQveGZybS94ZnJtX2lwdGZzLmM6MTc1MDpcdCAqIG9yIHdlIGhhdmUgZnJlZWQgaXQuIFJldHVybiBFSU5QUk9HUkVTUyBzbyB0aGF0IHhmcm1faW5wdXQgc3RvcHNcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0xNzUxLVx0ICogcHJvY2Vzc2luZyBpdC5cbi0tXG5uZXQveGZybS94ZnJtX3BvbGljeS5jPTM2NzA9aW50IF9feGZybV9wb2xpY3lfY2hlY2soc3RydWN0IHNvY2sgKnNrLCBpbnQgZGlyLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtMzc1My1cdFx0Y29uc3QgYm9vbCBpc19jcnlwdG9fb2ZmbG9hZCA9IHNwIFx1MDAyNlx1MDAyNlxubmV0L3hmcm0veGZybV9wb2xpY3kuYzozNzU0Olx0XHRcdCh4ZnJtX2lucHV0X3N0YXRlKHNrYiktXHUwMDNleHNvLnR5cGUgPT0gWEZSTV9ERVZfT0ZGTE9BRF9DUllQVE8pO1xubmV0L3hmcm0veGZybV9wb2xpY3kuYy0zNzU1LVxuLS1cbm5ldC94ZnJtL3hmcm1fcG9saWN5LmM9NDQwND12b2lkIF9faW5pdCB4ZnJtX2luaXQodm9pZClcbi0tXG5uZXQveGZybS94ZnJtX3BvbGljeS5jLTQ0MTEtXHR4ZnJtX2Rldl9pbml0KCk7XG5uZXQveGZybS94ZnJtX3BvbGljeS5jOjQ0MTI6XHR4ZnJtX2lucHV0X2luaXQoKTtcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtNDQxMy1cbi0tXG5uZXQveGZybS94ZnJtX3N0YXRlLmM9MTE3NT1zdGF0aWMgc3RydWN0IHhmcm1fc3RhdGUgKl9feGZybV9zdGF0ZV9sb29rdXAoY29uc3Qgc3RydWN0IHhmcm1faGFzaF9zdGF0ZV9wdHJzICpzdGF0ZV9wdHJzLFxuLS1cbm5ldC94ZnJtL3hmcm1fc3RhdGUuYy0xMjAwLVxubmV0L3hmcm0veGZybV9zdGF0ZS5jOjEyMDE6c3RydWN0IHhmcm1fc3RhdGUgKnhmcm1faW5wdXRfc3RhdGVfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIG1hcmssXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTIwMi1cdFx0XHRcdFx0ICAgY29uc3QgeGZybV9hZGRyZXNzX3QgKmRhZGRyLFxuLS1cbm5ldC94ZnJtL3hmcm1fc3RhdGUuYy0xMjUyLX1cbm5ldC94ZnJtL3hmcm1fc3RhdGUuYzoxMjUzOkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dF9zdGF0ZV9sb29rdXApO1xubmV0L3hmcm0veGZybV9zdGF0ZS5jLTEyNTQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDc6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODA3NgoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFhGUk0gSW5wdXQgUGF0Y2gqKgoKT2theSwgc28gdGhlIHBhdGNoIEkmIzM5O20gbG9va2luZyBhdCBtb2RpZmllcyBgeGZybV9pbnB1dGAgaW4gYG5ldC94ZnJtL3hmcm1faW5wdXQuY2AuIEl0IHNlZW1zIHRoZXkmIzM5O3ZlIHN3aXRjaGVkIHRvIHVzaW5nIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHRoZSBvbGRlciBgeC0mZ3Q7dHlwZS0mZ3Q7cHJvdG9gIG9yIGBuZXh0aGRyYCB2YXJpYWJsZXMgd2l0aGluIGB4ZnJtX3Jjdl9jYmAgYW5kIGB4ZnJtX3N0YXRlX2FmaW5mb19nZXRfcmN1YC4gVGhpcyBmZWVscyBsaWtlIGEgZnVuY3Rpb25hbGx5IGltcG9ydGFudCBjaGFuZ2Ug4oCTIGRlZmluaXRlbHkgd29ydGggYSBkZWVwZXIgbG9vayBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHNvbWUgZm9jdXNlZCBmdXp6aW5nLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYHhmcm1faW5wdXRgIHNob3VsZCBiZSB0aGUgcHJpbWFyeSBmb2N1cyBzeW1ib2wgZm9yIGZ1enppbmcgdGhpcy4gTWFrZXMgc2Vuc2UuIEFuZCBmcm9tIHRoZSBkZXNjcmlwdGlvbiwgaXQgbG9va3MgbGlrZSB0aGlzIGNvZGUgcmVxdWlyZXMgYFhGUk1gIHRvIGJlIGVuYWJsZWQgaW4gdGhlIGtlcm5lbCBjb25maWcuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzIGluIGBuZXQveGZybS9LY29uZmlnYCB0aGF0IG1pZ2h0IGluZmx1ZW5jZSBvciBpbnRlcmFjdCB3aXRoIHRoaXMgY29kZSBwYXRoLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBYRlJNYCBkZXBlbmRlbmNpZXMgYXMgd2VsbC4gRW5zdXJpbmcgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYSBjb25kaXRpb25hbCBidWlsZCBjb25maWd1cmF0aW9uIHdpbGwgYmUgY3JpdGljYWwgdG8gdGhlIHN1Y2Nlc3Mgb2YgbXkgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzAgMDc6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFhGUk0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQveGZybS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC94ZnJtL0tjb25maWctNC0jXG5uZXQveGZybS9LY29uZmlnOjU6Y29uZmlnIFhGUk1cbm5ldC94ZnJtL0tjb25maWctNi1cdGJvb2xcbi0tXG5uZXQveGZybS9LY29uZmlnLTEwLVxubmV0L3hmcm0vS2NvbmZpZzoxMTpjb25maWcgWEZSTV9PRkZMT0FEXG5uZXQveGZybS9LY29uZmlnLTEyLVx0Ym9vbFxubmV0L3hmcm0vS2NvbmZpZy0xMy1cbm5ldC94ZnJtL0tjb25maWc6MTQ6Y29uZmlnIFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0xNS1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0yMj1pZiBJTkVUXG5uZXQveGZybS9LY29uZmlnOjIzOmNvbmZpZyBYRlJNX1VTRVJcbm5ldC94ZnJtL0tjb25maWctMjQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB1c2VyIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy0zMS1cbm5ldC94ZnJtL0tjb25maWc6MzI6Y29uZmlnIFhGUk1fVVNFUl9DT01QQVRcbm5ldC94ZnJtL0tjb25maWctMzMtXHR0cmlzdGF0ZSBcJiMzNDtDb21wYXRpYmxlIEFCSSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy00Mi1cbm5ldC94ZnJtL0tjb25maWc6NDM6Y29uZmlnIFhGUk1fSU5URVJGQUNFXG5uZXQveGZybS9LY29uZmlnLTQ0LVx0dHJpc3RhdGUgXCYjMzQ7VHJhbnNmb3JtYXRpb24gdmlydHVhbCBpbnRlcmZhY2VcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTUwLVxubmV0L3hmcm0vS2NvbmZpZzo1MTpjb25maWcgWEZSTV9TVUJfUE9MSUNZXG5uZXQveGZybS9LY29uZmlnLTUyLVx0Ym9vbCBcJiMzNDtUcmFuc2Zvcm1hdGlvbiBzdWIgcG9saWN5IHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTYwLVxubmV0L3hmcm0vS2NvbmZpZzo2MTpjb25maWcgWEZSTV9NSUdSQVRFXG5uZXQveGZybS9LY29uZmlnLTYyLVx0Ym9vbCBcJiMzNDtUcmFuc2Zvcm1hdGlvbiBtaWdyYXRlIGRhdGFiYXNlXCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy03MS1cbm5ldC94ZnJtL0tjb25maWc6NzI6Y29uZmlnIFhGUk1fU1RBVElTVElDU1xubmV0L3hmcm0vS2NvbmZpZy03My1cdGJvb2wgXCYjMzQ7VHJhbnNmb3JtYXRpb24gc3RhdGlzdGljc1wmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctODMtIyBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxubmV0L3hmcm0vS2NvbmZpZzo4NDpjb25maWcgWEZSTV9BSFxubmV0L3hmcm0vS2NvbmZpZy04NS1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZy05Mi0jIGFsZ29yaXRobXMgdGhhdCBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxubmV0L3hmcm0vS2NvbmZpZzo5Mzpjb25maWcgWEZSTV9FU1Bcbm5ldC94ZnJtL0tjb25maWctOTQtXHR0cmlzdGF0ZVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTA1LVxubmV0L3hmcm0vS2NvbmZpZzoxMDY6Y29uZmlnIFhGUk1fSVBDT01QXG5uZXQveGZybS9LY29uZmlnLTEwNy1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTQwLVxubmV0L3hmcm0vS2NvbmZpZzoxNDE6Y29uZmlnIFhGUk1fSVBURlNcbm5ldC94ZnJtL0tjb25maWctMTQyLVx0dHJpc3RhdGUgXCYjMzQ7SVBzZWMgSVAtVEZTL0FHR0ZSQUcgKFJGQyA5MzQ3KSBlbmNhcHN1bGF0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTE1Ni1cbm5ldC94ZnJtL0tjb25maWc6MTU3OmNvbmZpZyBYRlJNX0VTUElOVENQXG5uZXQveGZybS9LY29uZmlnLTE1OC1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MzExCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2Vzc2luZyBhcyBhbiBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIFhGUk0gQ29uZmlndXJhdGlvbiBEZXBlbmRlbmN5KioKCkFscmlnaHQsIHNvIGBYRlJNYCBpcyBhIGJvb2xlYW4gY29uZmlnIG9wdGlvbiwgd2hpY2ggbWVhbnMgaXQmIzM5O3MgYSBzaW1wbGUgeWVzL25vIGZsYWcuIEFuZCB0aGUgaW1wb3J0YW50IHRoaW5nIGhlcmUgaXMgdGhhdCBpdCYjMzk7cyAqc2VsZWN0ZWQqIGJ5IG90aGVyIGNvbmZpZ3VyYXRpb25zLiBTbywgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyBJJiMzOTtkIHR5cGljYWxseSBlbmFibGUgZGlyZWN0bHksIGJ1dCByYXRoZXIgc29tZXRoaW5nIHRoYXQgZ2V0cyBwdWxsZWQgaW4gYXMgYSBkZXBlbmRlbmN5IGJhc2VkIG9uIG90aGVyIHNlbGVjdGlvbnMuIEkgbmVlZCB0byBmaWd1cmUgb3V0ICp3aGF0KiBleGFjdGx5IGlzIHRyaWdnZXJpbmcgaXRzIHNlbGVjdGlvbi4gS25vd2luZyBpdHMgZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgc3lzdGVtIGNvbmZpZ3VyYXRpb24gYW5kIGFueSBpbXBsaWNhdGlvbnMgZG93biB0aGUgbGluZS4gU28sIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgc2VlIHdoZXJlIGBYRlJNYCBpcyBiZWluZyBwdWxsZWQgaW4uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2ssIHdoaWNoIGlzIGdvaW5nIHRvIGluZm9ybSBtZSBhYm91dCB3aGF0IGZlYXR1cmVzIGFyZSB1c2luZyBYRlJNLCBhbmQgc28sIGluZm9ybSBtZSBhYm91dCB0aGUgZmVhdHVyZXMgdGhhdCBJIGFtIGVuYWJsaW5nIHdoZW4gZW5hYmxpbmcgWEZSTS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNzozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgWEZSTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjQvS2NvbmZpZz0zMDQ9Y29uZmlnIE5FVF9JUFZUSVxuLS1cbm5ldC9pcHY0L0tjb25maWctMzA3LVx0c2VsZWN0IE5FVF9JUF9UVU5ORUxcbm5ldC9pcHY0L0tjb25maWc6MzA4Olx0c2VsZWN0IFhGUk1cbm5ldC9pcHY0L0tjb25maWctMzA5LVx0aGVscFxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzM5PWNvbmZpZyBJTkVUX0FIXG5uZXQvaXB2NC9LY29uZmlnLTM0MC1cdHRyaXN0YXRlIFwmIzM0O0lQOiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjQvS2NvbmZpZzozNDE6XHRzZWxlY3QgWEZSTV9BSFxubmV0L2lwdjQvS2NvbmZpZy0zNDItXHRoZWxwXG4tLVxubmV0L2lwdjQvS2NvbmZpZz0zNTQ9Y29uZmlnIElORVRfRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1NS1cdHRyaXN0YXRlIFwmIzM0O0lQOiBFU1AgdHJhbnNmb3JtYXRpb25cJiMzNDtcbm5ldC9pcHY0L0tjb25maWc6MzU2Olx0c2VsZWN0IFhGUk1fRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1Ny1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM2OT1jb25maWcgSU5FVF9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY0L0tjb25maWctMzcxLVx0ZGVwZW5kcyBvbiBJTkVUX0VTUFxubmV0L2lwdjQvS2NvbmZpZzozNzI6XHRzZWxlY3QgWEZSTV9PRkZMT0FEXG5uZXQvaXB2NC9LY29uZmlnLTM3My1cdGRlZmF1bHQgblxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzgyPWNvbmZpZyBJTkVUX0VTUElOVENQXG4tLVxubmV0L2lwdjQvS2NvbmZpZy0zODYtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2NC9LY29uZmlnOjM4NzpcdHNlbGVjdCBYRlJNX0VTUElOVENQXG5uZXQvaXB2NC9LY29uZmlnLTM4OC1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM5ND1jb25maWcgSU5FVF9JUENPTVBcbi0tXG5uZXQvaXB2NC9LY29uZmlnLTM5Ni1cdHNlbGVjdCBJTkVUX1hGUk1fVFVOTkVMXG5uZXQvaXB2NC9LY29uZmlnOjM5NzpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjQvS2NvbmZpZy0zOTgtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz00Nz1jb25maWcgSU5FVDZfQUhcbm5ldC9pcHY2L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo0OTpcdHNlbGVjdCBYRlJNX0FIXG5uZXQvaXB2Ni9LY29uZmlnLTUwLVx0aGVscFxuLS1cbm5ldC9pcHY2L0tjb25maWc9NjI9Y29uZmlnIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZy02My1cdHRyaXN0YXRlIFwmIzM0O0lQdjY6IEVTUCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo2NDpcdHNlbGVjdCBYRlJNX0VTUFxubmV0L2lwdjYvS2NvbmZpZy02NS1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTc3PWNvbmZpZyBJTkVUNl9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY2L0tjb25maWctNzktXHRkZXBlbmRzIG9uIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZzo4MDpcdHNlbGVjdCBYRlJNX09GRkxPQURcbm5ldC9pcHY2L0tjb25maWctODEtXHRkZWZhdWx0IG5cbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTkwPWNvbmZpZyBJTkVUNl9FU1BJTlRDUFxuLS1cbm5ldC9pcHY2L0tjb25maWctOTQtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2Ni9LY29uZmlnOjk1Olx0c2VsZWN0IFhGUk1fRVNQSU5UQ1Bcbm5ldC9pcHY2L0tjb25maWctOTYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMDI9Y29uZmlnIElORVQ2X0lQQ09NUFxuLS1cbm5ldC9pcHY2L0tjb25maWctMTA0LVx0c2VsZWN0IElORVQ2X1hGUk1fVFVOTkVMXG5uZXQvaXB2Ni9LY29uZmlnOjEwNTpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjYvS2NvbmZpZy0xMDYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMTI9Y29uZmlnIElQVjZfTUlQNlxubmV0L2lwdjYvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBNb2JpbGl0eVwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzoxMTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xNTA9Y29uZmlnIElQVjZfVlRJXG4tLVxubmV0L2lwdjYvS2NvbmZpZy0xNTMtXHRzZWxlY3QgTkVUX0lQX1RVTk5FTFxubmV0L2lwdjYvS2NvbmZpZzoxNTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xNTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xND1jb25maWcgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTE1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6MTY6XHRzZWxlY3QgWEZSTVxubmV0L3hmcm0vS2NvbmZpZy0xNy1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTIzPWNvbmZpZyBYRlJNX1VTRVJcbm5ldC94ZnJtL0tjb25maWctMjQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB1c2VyIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXCYjMzQ7XG5uZXQveGZybS9LY29uZmlnOjI1Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0yNi1cdGhlbHBcbi0tXG5uZXQveGZybS9LY29uZmlnPTg0PWNvbmZpZyBYRlJNX0FIXG5uZXQveGZybS9LY29uZmlnLTg1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6ODY6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTg3LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9OTM9Y29uZmlnIFhGUk1fRVNQXG5uZXQveGZybS9LY29uZmlnLTk0LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6OTU6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTk2LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9MTA2PWNvbmZpZyBYRlJNX0lQQ09NUFxubmV0L3hmcm0vS2NvbmZpZy0xMDctXHR0cmlzdGF0ZVxubmV0L3hmcm0vS2NvbmZpZzoxMDg6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTEwOS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTExMj1jb25maWcgTkVUX0tFWVxubmV0L3hmcm0vS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtQRl9LRVkgc29ja2V0cyAoZGVwcmVjYXRlZClcJiMzNDtcbm5ldC94ZnJtL0tjb25maWc6MTE0Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTI3LVx0ZGVwZW5kcyBvbiBORVRfS0VZXG5uZXQveGZybS9LY29uZmlnOjEyODpcdHNlbGVjdCBYRlJNX01JR1JBVEVcbm5ldC94ZnJtL0tjb25maWctMTI5LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExMTQ2CgkJCQkJCQlvdXRwdXQ6IDEyOAoJCQkJCQkJdGhvdWdodHM6IDM3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGFjdCBvZiBhbiBJUHNlYyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUbyBlbmFibGUgSVBzZWMgcHJvcGVybHksIGBYRlJNX1VTRVJgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludDsgaXQgcHVsbHMgaW4gYFhGUk1fQUxHT2AsIHdoaWNoIGluIHR1cm4sIGluY2x1ZGVzIGBYRlJNYC4gQmV5b25kIHRoYXQsIGZvciBJUHNlYyBmdW5jdGlvbmFsaXR5IGl0c2VsZiwgYElORVRfRVNQYCwgYElORVRfQUhgLCBgSU5FVDZfRVNQYCwgYW5kIGBJTkVUNl9BSGAgYXJlIGNsZWFybHkgbmVjZXNzYXJ5LiBTbywgZm9yIHRoZSBjb25maWd1cmF0aW9uLCBJJiMzOTtsbCBkZWZpbml0ZWx5IHNwZWNpZnkgdGhvc2U6IGBYRlJNX1VTRVJgLCBgSU5FVF9FU1BgLCBgSU5FVF9BSGAsIGBJTkVUNl9FU1BgLCBhbmQgYElORVQ2X0FIYC4KCk5vdywgdGhlIGNvcmUgb2YgdGhlIG1hdHRlcjogdGhlIHBhdGNoIGZvY3VzZXMgb24gYHhmcm1faW5wdXRgLiBJIGtub3cgYHhmcm1faW5wdXRgIGlzIGEgaG90LXBhdGggZnVuY3Rpb247IGl0JiMzOTtzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciBJUHNlYyBpbnB1dCwgbWVhbmluZyBpdCBoYW5kbGVzIGV2ZXJ5IElQc2VjIHBhY2tldC4gVGhhdCByYWlzZXMgYSBmbGFnIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbnMsIHdoaWNoIHNheSB0byBhdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KCkJ1dCwgaGFuZyBvbi4uLiBUaGlzICpzcGVjaWZpYyogcGF0Y2ggb25seSBtb2RpZmllcyBgeGZybV9pbnB1dGAuIEl0JiMzOTtzIHRoZSBwb2ludCBvZiBtb2RpZmljYXRpb24uIEkmIzM5O3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIGZ1bmN0aW9ucyBhZmZlY3RlZC4gVGhpbmtpbmcgdGhyb3VnaCBpdCwgd2hpbGUgYHhmcm1faW5wdXRgICppcyogYSBob3QgcGF0aCwgaXQmIzM5O3MgYWxzbyBoaWdobHkgc3BlY2lmaWMgdG8gdGhlIFhGUk0gc3Vic3lzdGVtLiBJIHRoaW5rIGl0JiMzOTtzIGp1c3RpZmlhYmxlIHRvIGluY2x1ZGUgaXQgYmVjYXVzZSBvZiBpdHMgZGlyZWN0IHJlbGV2YW5jZSB0byB0aGUgcGF0Y2gmIzM5O3MgY2hhbmdlcy4gU28sIEkgd2lsbCBsaXN0IGB4ZnJtX2lucHV0YCBhcyB0aGUgZm9jdXMuCgpUbyByZWl0ZXJhdGUsIHRoZSBjb25maWd1cmF0aW9ucyB3aWxsIGJlOgoqICAgYFhGUk1fVVNFUmAKKiAgIGBJTkVUX0VTUGAKKiAgIGBJTkVUX0FIYAoqICAgYElORVQ2X0VTUGAKKiAgIGBJTkVUNl9BSGAKCkkmIzM5O20gcmVhZHkgdG8gdXNlIGBzZXQtcmVzdWx0c2Agd2l0aCB0aGVzZSBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA3OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYRlJNX1VTRVImIzM0OywKICAgICYjMzQ7SU5FVF9FU1AmIzM0OywKICAgICYjMzQ7SU5FVF9BSCYjMzQ7LAogICAgJiMzNDtJTkVUNl9FU1AmIzM0OywKICAgICYjMzQ7SU5FVDZfQUgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnJtX2lucHV0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1hGUk1fVVNFUiYjMzQ7LAogICAgJiMzNDtJTkVUX0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUX0FIJiMzNDssCiAgICAmIzM0O0lORVQ2X0VTUCYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmcm1faW5wdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVBzZWMgaW5wdXQgcHJvY2Vzc2luZyBmdW5jdGlvbiBgeGZybV9pbnB1dGAgdG8gY29ycmVjdGx5IHRyYWNrIHRoZSBwcm90b2NvbCB1c2luZyBhIGxvY2FsIHZhcmlhYmxlIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gc3RhdGUgdGhhdCBtaWdodCBiZSBhbHRlcmVkIG9yIHVuYXZhaWxhYmxlIGxhdGVyIGluIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjI0Ljg2MzU3MDgxOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MDQzNzEwNDA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlhGUk1fVVNFUlwiLFxuICAgIFwiSU5FVF9FU1BcIixcbiAgICBcIklORVRfQUhcIixcbiAgICBcIklORVQ2X0VTUFwiLFxuICAgIFwiSU5FVDZfQUhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4ZnJtX2lucHV0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgSVBzZWMgaW5wdXQgcHJvY2Vzc2luZyBmdW5jdGlvbiBgeGZybV9pbnB1dGAgdG8gY29ycmVjdGx5IHRyYWNrIHRoZSBwcm90b2NvbCB1c2luZyBhIGxvY2FsIHZhcmlhYmxlIGB4ZnJtX3Byb3RvYCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gc3RhdGUgdGhhdCBtaWdodCBiZSBhbHRlcmVkIG9yIHVuYXZhaWxhYmxlIGxhdGVyIGluIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDc6MzI6MjQuODYzNTc3OTg5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjU4NDgyNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5YTNkYmIzNzkyOWRkMmVlZWQ2NjQ4NjA3NjIzNmU1MzJlMWZlMWFlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDMwIDA3OjMyOjI0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC94ZnJtL3hmcm1faW5wdXQuYyBiL25ldC94ZnJtL3hmcm1faW5wdXQuY1xcbmluZGV4IGVlY2FiMzM3YmQwYTcuLjMxNzdmYTMzOTYxY2IgMTAwNjQ0XFxuLS0tIGEvbmV0L3hmcm0veGZybV9pbnB1dC5jXFxuKysrIGIvbmV0L3hmcm0veGZybV9pbnB1dC5jXFxuQEAgLTQ3NCw2ICs0NzQsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIFxcdHN0cnVjdCB4ZnJtX3N0YXRlICp4ID0gTlVMTDtcXG4gXFx0eGZybV9hZGRyZXNzX3QgKmRhZGRyO1xcbiBcXHR1MzIgbWFyayA9IHNrYi1cXHUwMDNlbWFyaztcXG4rXFx0dTggeGZybV9wcm90byA9IG5leHRoZHI7XFxuIFxcdHVuc2lnbmVkIGludCBmYW1pbHkgPSBBRl9VTlNQRUM7XFxuIFxcdGludCBkZWNhcHMgPSAwO1xcbiBcXHRpbnQgYXN5bmMgPSAwO1xcbkBAIC00ODUsNiArNDg2LDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxcbiBcXHRpZiAoZW5jYXBfdHlwZSBcXHUwMDNjIDAgfHwgKHhvIFxcdTAwMjZcXHUwMDI2ICh4by1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBYRlJNX0dSTyB8fCBlbmNhcF90eXBlID09IDAgfHxcXG4gXFx0XFx0XFx0XFx0ICAgICAgZW5jYXBfdHlwZSA9PSBVRFBfRU5DQVBfRVNQSU5VRFApKSkge1xcbiBcXHRcXHR4ID0geGZybV9pbnB1dF9zdGF0ZShza2IpO1xcbitcXHRcXHR4ZnJtX3Byb3RvID0geC1cXHUwMDNldHlwZS1cXHUwMDNlcHJvdG87XFxuIFxcbiBcXHRcXHRpZiAodW5saWtlbHkoeC1cXHUwMDNla20uc3RhdGUgIT0gWEZSTV9TVEFURV9WQUxJRCkpIHtcXG4gXFx0XFx0XFx0aWYgKHgtXFx1MDAzZWttLnN0YXRlID09IFhGUk1fU1RBVEVfQUNRKVxcbkBAIC01OTIsMTEgKzU5NCwxMyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIFxcbiBcXHRcXHR4ID0geGZybV9pbnB1dF9zdGF0ZV9sb29rdXAobmV0LCBtYXJrLCBkYWRkciwgc3BpLCBuZXh0aGRyLCBmYW1pbHkpO1xcbiBcXHRcXHRpZiAoeCA9PSBOVUxMKSB7XFxuK1xcdFxcdFxcdHhmcm1fcHJvdG8gPSBuZXh0aGRyO1xcbiBcXHRcXHRcXHRzZWNwYXRoX3Jlc2V0KHNrYik7XFxuIFxcdFxcdFxcdFhGUk1fSU5DX1NUQVRTKG5ldCwgTElOVVhfTUlCX1hGUk1JTk5PU1RBVEVTKTtcXG4gXFx0XFx0XFx0eGZybV9hdWRpdF9zdGF0ZV9ub3Rmb3VuZChza2IsIGZhbWlseSwgc3BpLCBzZXEpO1xcbiBcXHRcXHRcXHRnb3RvIGRyb3A7XFxuIFxcdFxcdH1cXG4rXFx0XFx0eGZybV9wcm90byA9IHgtXFx1MDAzZXR5cGUtXFx1MDAzZXByb3RvO1xcbiBcXG4gXFx0XFx0aWYgKHVubGlrZWx5KHgtXFx1MDAzZWRpciBcXHUwMDI2XFx1MDAyNiB4LVxcdTAwM2VkaXIgIT0gWEZSTV9TQV9ESVJfSU4pKSB7XFxuIFxcdFxcdFxcdHNlY3BhdGhfcmVzZXQoc2tiKTtcXG5AQCAtNjA0LDYgKzYwOCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcXG4gXFx0XFx0XFx0eGZybV9hdWRpdF9zdGF0ZV9ub3Rmb3VuZChza2IsIGZhbWlseSwgc3BpLCBzZXEpO1xcbiBcXHRcXHRcXHR4ZnJtX3N0YXRlX3B1dCh4KTtcXG4gXFx0XFx0XFx0eCA9IE5VTEw7XFxuK1xcdFxcdFxcdHhmcm1fcHJvdG8gPSBuZXh0aGRyO1xcbiBcXHRcXHRcXHRnb3RvIGRyb3A7XFxuIFxcdFxcdH1cXG4gXFxuQEAgLTcyOCw3ICs3MzMsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIFxcdH0gd2hpbGUgKCFlcnIpO1xcbiBcXG4gXFx0cmN1X3JlYWRfbG9jaygpO1xcbi1cXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeC1cXHUwMDNldHlwZS1cXHUwMDNlcHJvdG8sIDApO1xcbitcXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgMCk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuIFxcdFxcdGdvdG8gZHJvcDtcXG5AQCAtNzUzLDcgKzc1OCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcXG4gXFx0XFx0XFx0eGZybV9ncm8gPSB4by1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBYRlJNX0dSTztcXG4gXFxuIFxcdFxcdGVyciA9IC1FQUZOT1NVUFBPUlQ7XFxuLVxcdFxcdGFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoeC1cXHUwMDNlcHJvcHMuZmFtaWx5KTtcXG4rXFx0XFx0YWZpbmZvID0geGZybV9zdGF0ZV9hZmluZm9fZ2V0X3JjdShmYW1pbHkpO1xcbiBcXHRcXHRpZiAobGlrZWx5KGFmaW5mbykpXFxuIFxcdFxcdFxcdGVyciA9IGFmaW5mby1cXHUwMDNldHJhbnNwb3J0X2ZpbmlzaChza2IsIHhmcm1fZ3JvIHx8IGFzeW5jKTtcXG4gXFx0XFx0aWYgKHhmcm1fZ3JvKSB7XFxuQEAgLTc3Niw3ICs3ODEsNyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXFxuIGRyb3A6XFxuIFxcdGlmIChhc3luYylcXG4gXFx0XFx0ZGV2X3B1dChkZXYpO1xcbi1cXHR4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeCBcXHUwMDI2XFx1MDAyNiB4LVxcdTAwM2V0eXBlID8geC1cXHUwMDNldHlwZS1cXHUwMDNlcHJvdG8gOiBuZXh0aGRyLCAtMSk7XFxuK1xcdHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4ZnJtX3Byb3RvLCAtMSk7XFxuIFxcdGtmcmVlX3NrYihza2IpO1xcbiBcXHRyZXR1cm4gMDtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwNzozMjoyNS4xOTAyNTU1MDhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyMzcxNzAxNzY0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJYRlJNX1VTRVJcIixcbiAgICBcIklORVRfRVNQXCIsXG4gICAgXCJJTkVUX0FIXCIsXG4gICAgXCJJTkVUNl9FU1BcIixcbiAgICBcIklORVQ2X0FIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybV9pbnB1dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDlhM2RiYjM3OTI5ZGQyZWVlZDY2NDg2MDc2MjM2ZTUzMmUxZmUxYWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAzMCAwNzozMjoyNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC94ZnJtL3hmcm1faW5wdXQuYyBiL25ldC94ZnJtL3hmcm1faW5wdXQuY1xuaW5kZXggZWVjYWIzMzdiZDBhNy4uMzE3N2ZhMzM5NjFjYiAxMDA2NDRcbi0tLSBhL25ldC94ZnJtL3hmcm1faW5wdXQuY1xuKysrIGIvbmV0L3hmcm0veGZybV9pbnB1dC5jXG5AQCAtNDc0LDYgKzQ3NCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdHN0cnVjdCB4ZnJtX3N0YXRlICp4ID0gTlVMTDtcbiBcdHhmcm1fYWRkcmVzc190ICpkYWRkcjtcbiBcdHUzMiBtYXJrID0gc2tiLVx1MDAzZW1hcms7XG4rXHR1OCB4ZnJtX3Byb3RvID0gbmV4dGhkcjtcbiBcdHVuc2lnbmVkIGludCBmYW1pbHkgPSBBRl9VTlNQRUM7XG4gXHRpbnQgZGVjYXBzID0gMDtcbiBcdGludCBhc3luYyA9IDA7XG5AQCAtNDg1LDYgKzQ4Niw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdGlmIChlbmNhcF90eXBlIFx1MDAzYyAwIHx8ICh4byBcdTAwMjZcdTAwMjYgKHhvLVx1MDAzZWZsYWdzIFx1MDAyNiBYRlJNX0dSTyB8fCBlbmNhcF90eXBlID09IDAgfHxcbiBcdFx0XHRcdCAgICAgIGVuY2FwX3R5cGUgPT0gVURQX0VOQ0FQX0VTUElOVURQKSkpIHtcbiBcdFx0eCA9IHhmcm1faW5wdXRfc3RhdGUoc2tiKTtcbitcdFx0eGZybV9wcm90byA9IHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90bztcbiBcbiBcdFx0aWYgKHVubGlrZWx5KHgtXHUwMDNla20uc3RhdGUgIT0gWEZSTV9TVEFURV9WQUxJRCkpIHtcbiBcdFx0XHRpZiAoeC1cdTAwM2VrbS5zdGF0ZSA9PSBYRlJNX1NUQVRFX0FDUSlcbkBAIC01OTIsMTEgKzU5NCwxMyBAQCBpbnQgeGZybV9pbnB1dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkciwgX19iZTMyIHNwaSwgaW50IGVuY2FwX3R5cGUpXG4gXG4gXHRcdHggPSB4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cChuZXQsIG1hcmssIGRhZGRyLCBzcGksIG5leHRoZHIsIGZhbWlseSk7XG4gXHRcdGlmICh4ID09IE5VTEwpIHtcbitcdFx0XHR4ZnJtX3Byb3RvID0gbmV4dGhkcjtcbiBcdFx0XHRzZWNwYXRoX3Jlc2V0KHNrYik7XG4gXHRcdFx0WEZSTV9JTkNfU1RBVFMobmV0LCBMSU5VWF9NSUJfWEZSTUlOTk9TVEFURVMpO1xuIFx0XHRcdHhmcm1fYXVkaXRfc3RhdGVfbm90Zm91bmQoc2tiLCBmYW1pbHksIHNwaSwgc2VxKTtcbiBcdFx0XHRnb3RvIGRyb3A7XG4gXHRcdH1cbitcdFx0eGZybV9wcm90byA9IHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90bztcbiBcbiBcdFx0aWYgKHVubGlrZWx5KHgtXHUwMDNlZGlyIFx1MDAyNlx1MDAyNiB4LVx1MDAzZWRpciAhPSBYRlJNX1NBX0RJUl9JTikpIHtcbiBcdFx0XHRzZWNwYXRoX3Jlc2V0KHNrYik7XG5AQCAtNjA0LDYgKzYwOCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdFx0XHR4ZnJtX2F1ZGl0X3N0YXRlX25vdGZvdW5kKHNrYiwgZmFtaWx5LCBzcGksIHNlcSk7XG4gXHRcdFx0eGZybV9zdGF0ZV9wdXQoeCk7XG4gXHRcdFx0eCA9IE5VTEw7XG4rXHRcdFx0eGZybV9wcm90byA9IG5leHRoZHI7XG4gXHRcdFx0Z290byBkcm9wO1xuIFx0XHR9XG4gXG5AQCAtNzI4LDcgKzczMyw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdH0gd2hpbGUgKCFlcnIpO1xuIFxuIFx0cmN1X3JlYWRfbG9jaygpO1xuLVx0ZXJyID0geGZybV9yY3ZfY2Ioc2tiLCBmYW1pbHksIHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90bywgMCk7XG4rXHRlcnIgPSB4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgMCk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdHJjdV9yZWFkX3VubG9jaygpO1xuIFx0XHRnb3RvIGRyb3A7XG5AQCAtNzUzLDcgKzc1OCw3IEBAIGludCB4ZnJtX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLCBpbnQgZW5jYXBfdHlwZSlcbiBcdFx0XHR4ZnJtX2dybyA9IHhvLVx1MDAzZWZsYWdzIFx1MDAyNiBYRlJNX0dSTztcbiBcbiBcdFx0ZXJyID0gLUVBRk5PU1VQUE9SVDtcbi1cdFx0YWZpbmZvID0geGZybV9zdGF0ZV9hZmluZm9fZ2V0X3JjdSh4LVx1MDAzZXByb3BzLmZhbWlseSk7XG4rXHRcdGFmaW5mbyA9IHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3UoZmFtaWx5KTtcbiBcdFx0aWYgKGxpa2VseShhZmluZm8pKVxuIFx0XHRcdGVyciA9IGFmaW5mby1cdTAwM2V0cmFuc3BvcnRfZmluaXNoKHNrYiwgeGZybV9ncm8gfHwgYXN5bmMpO1xuIFx0XHRpZiAoeGZybV9ncm8pIHtcbkBAIC03NzYsNyArNzgxLDcgQEAgaW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxuIGRyb3A6XG4gXHRpZiAoYXN5bmMpXG4gXHRcdGRldl9wdXQoZGV2KTtcbi1cdHhmcm1fcmN2X2NiKHNrYiwgZmFtaWx5LCB4IFx1MDAyNlx1MDAyNiB4LVx1MDAzZXR5cGUgPyB4LVx1MDAzZXR5cGUtXHUwMDNlcHJvdG8gOiBuZXh0aGRyLCAtMSk7XG4rXHR4ZnJtX3Jjdl9jYihza2IsIGZhbWlseSwgeGZybV9wcm90bywgLTEpO1xuIFx0a2ZyZWVfc2tiKHNrYik7XG4gXHRyZXR1cm4gMDtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwNzozMjoyNS4xOTAyNTcwMDhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTQxODEzNDY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFhGUk0gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIGhlcmUgaW4gYG5ldC94ZnJtL3hmcm1faW5wdXQuY2AuIEl0IGxvb2tzIGxpa2UgaXQncyBtYWtpbmcgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGB4ZnJtX2lucHV0YCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGludHJvZHVjaW5nIGB4ZnJtX3Byb3RvYCB0byBtYW5hZ2UgdGhlIHByb3RvY29sIGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gYHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90b2AgYXQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgaW50ZXJlc3Rpbmc7IGl0IG1lYW5zIHRoZXkncmUgY2hhbmdpbmcgaG93IHRoZSBzdWJzeXN0ZW0gaGFuZGxlcyBwcm90b2NvbCBpZGVudGlmaWNhdGlvbiwgYW5kIHNpbmNlIGB4ZnJtX2lucHV0YCBpcyAqdGhlKiBlbnRyeSBwb2ludCBmb3IgaW5jb21pbmcgSVBzZWMgcGFja2V0cywgdGhpcyBpcyBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gSXTigJlzIGNlcnRhaW5seSByZWFjaGFibGUsIGFuZCBhbnkgbW9kaWZpY2F0aW9uIHRvIHRoaXMgY29yZSBmdW5jdGlvbmFsaXR5IHdhcnJhbnRzIGEgdGhvcm91Z2ggbG9vay5cblxuRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgWEZSTSBzdWJzeXN0ZW0gaXMgZXZlbiBjb25maWd1cmVkIGluIHRoZSBrZXJuZWwgYnVpbGQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZywgcHJvYmFibHkgYG5ldC94ZnJtL0tjb25maWdgIHRvIGNvbmZpcm0gYENPTkZJR19YRlJNYCBpcyBlbmFibGVkLiBUaGVuLCBJIHNob3VsZCBkbyBhIHF1aWNrIHNlYXJjaCB0aHJvdWdoIHRoZSBrZXJuZWwgc291cmNlIHRvIHNlZSB3aGVyZSBlbHNlIGB4ZnJtX2lucHV0YCBpcyBiZWluZyBjYWxsZWQgYW5kIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSB3aWRlciBjb250ZXh0IG9mIHRoaXMgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDMzLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDc6MzI6MjkuNzMyMDczNTQyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMTA2NTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInhmcm1faW5wdXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3hmcm0vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC94ZnJtL01ha2VmaWxlPTE0PW9iai0kKENPTkZJR19YRlJNKSA6PSB4ZnJtX3BvbGljeS5vIHhmcm1fc3RhdGUubyB4ZnJtX2hhc2gubyBcXFxcXFxubmV0L3hmcm0vTWFrZWZpbGU6MTU6XFx0XFx0ICAgICAgeGZybV9pbnB1dC5vIHhmcm1fb3V0cHV0Lm8gXFxcXFxcbm5ldC94ZnJtL01ha2VmaWxlLTE2LVxcdFxcdCAgICAgIHhmcm1fc3lzY3RsLm8geGZybV9yZXBsYXkubyB4ZnJtX2RldmljZS5vIFxcXFxcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy0yLS8qXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjM6ICogeGZybV9pbnB1dC5jXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQtICpcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYz0zND1zdHJ1Y3QgeGZybV90cmFuc19jYiB7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDYtXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ3OnN0YXRpYyBERUZJTkVfU1BJTkxPQ0soeGZybV9pbnB1dF9hZmluZm9fbG9jayk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ4OnN0YXRpYyBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gY29uc3QgX19yY3UgKnhmcm1faW5wdXRfYWZpbmZvWzJdW0FGX0lORVQ2ICsgMV07XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ5LVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jPTUzPXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgeGZybV90cmFuc190YXNrbGV0LCB4ZnJtX3RyYW5zX3Rhc2tsZXQpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01NC1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NTU6aW50IHhmcm1faW5wdXRfcmVnaXN0ZXJfYWZpbmZvKGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvKVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy01Ni17XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNjEtXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjYyOlxcdHNwaW5fbG9ja19iaChcXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjYzOlxcdGlmICh1bmxpa2VseSh4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXFx1MDAzZWlzX2lwaXBdW2FmaW5mby1cXHUwMDNlZmFtaWx5XSkpXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY0LVxcdFxcdGVyciA9IC1FRVhJU1Q7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY1LVxcdGVsc2VcXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NjY6XFx0XFx0cmN1X2Fzc2lnbl9wb2ludGVyKHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVxcdTAwM2VmYW1pbHldLCBhZmluZm8pO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo2NzpcXHRzcGluX3VubG9ja19iaChcXHUwMDI2eGZybV9pbnB1dF9hZmluZm9fbG9jayk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY4LVxcdHJldHVybiBlcnI7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTY5LX1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzA6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3JlZ2lzdGVyX2FmaW5mbyk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTcxLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3MjppbnQgeGZybV9pbnB1dF91bnJlZ2lzdGVyX2FmaW5mbyhjb25zdCBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gKmFmaW5mbylcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzMte1xcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc1LVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3NjpcXHRzcGluX2xvY2tfYmgoXFx1MDAyNnhmcm1faW5wdXRfYWZpbmZvX2xvY2spO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3NzpcXHRpZiAobGlrZWx5KHhmcm1faW5wdXRfYWZpbmZvW2FmaW5mby1cXHUwMDNlaXNfaXBpcF1bYWZpbmZvLVxcdTAwM2VmYW1pbHldKSkge1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3ODpcXHRcXHRjb25zdCBzdHJ1Y3QgeGZybV9pbnB1dF9hZmluZm8gKmN1cjtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzktXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjgwOlxcdFxcdGN1ciA9IHJjdV9hY2Nlc3NfcG9pbnRlcih4ZnJtX2lucHV0X2FmaW5mb1thZmluZm8tXFx1MDAzZWlzX2lwaXBdW2FmaW5mby1cXHUwMDNlZmFtaWx5XSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTgxLVxcdFxcdGlmICh1bmxpa2VseShjdXIgIT0gYWZpbmZvKSlcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy04My1cXHRcXHRlbHNlXFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjg0OlxcdFxcdFxcdFJDVV9JTklUX1BPSU5URVIoeGZybV9pbnB1dF9hZmluZm9bYWZpbmZvLVxcdTAwM2Vpc19pcGlwXVthZmluZm8tXFx1MDAzZWZhbWlseV0sIE5VTEwpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy04NS1cXHR9XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjg2OlxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZ4ZnJtX2lucHV0X2FmaW5mb19sb2NrKTtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODctXFx0c3luY2hyb25pemVfcmN1KCk7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODktfVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo5MDpFWFBPUlRfU1lNQk9MKHhmcm1faW5wdXRfdW5yZWdpc3Rlcl9hZmluZm8pO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05MS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6OTI6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqeGZybV9pbnB1dF9nZXRfYWZpbmZvKHU4IGZhbWlseSwgYm9vbCBpc19pcGlwKVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05My17XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjk0OlxcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05NS1cXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy05OS1cXHRyY3VfcmVhZF9sb2NrKCk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjEwMDpcXHRhZmluZm8gPSByY3VfZGVyZWZlcmVuY2UoeGZybV9pbnB1dF9hZmluZm9baXNfaXBpcF1bZmFtaWx5XSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTEwMS1cXHRpZiAodW5saWtlbHkoIWFmaW5mbykpXFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM9MTA2PXN0YXRpYyBpbnQgeGZybV9yY3ZfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdW5zaWduZWQgaW50IGZhbWlseSwgdTggcHJvdG9jb2wsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTA5LVxcdGJvb2wgaXNfaXBpcCA9IChwcm90b2NvbCA9PSBJUFBST1RPX0lQSVAgfHwgcHJvdG9jb2wgPT0gSVBQUk9UT19JUFY2KTtcXG5uZXQveGZybS94ZnJtX2lucHV0LmM6MTEwOlxcdGNvbnN0IHN0cnVjdCB4ZnJtX2lucHV0X2FmaW5mbyAqYWZpbmZvO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy0xMTEtXFx0aW50IHJldDtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtMTEyLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzoxMTM6XFx0YWZpbmZvID0geGZybV9pbnB1dF9nZXRfYWZpbmZvKGZhbWlseSwgaXNfaXBpcCk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTExNC1cXHRpZiAoIWFmaW5mbylcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYz00MzU9c3RhdGljIGludCB4ZnJtX2lubmVyX21vZGVfaW5wdXQoc3RydWN0IHhmcm1fc3RhdGUgKngsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNDY1LSAqL1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo0NjY6aW50IHhmcm1faW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IG5leHRoZHIsIF9fYmUzMiBzcGksIGludCBlbmNhcF90eXBlKVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy00Njcte1xcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTQ4Ny1cXHRcXHRcXHRcXHQgICAgICBlbmNhcF90eXBlID09IFVEUF9FTkNBUF9FU1BJTlVEUCkpKSB7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jOjQ4ODpcXHRcXHR4ID0geGZybV9pbnB1dF9zdGF0ZShza2IpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy00ODktXFx0XFx0eGZybV9wcm90byA9IHgtXFx1MDAzZXR5cGUtXFx1MDAzZXByb3RvO1xcbi0tXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTU5NC1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NTk1OlxcdFxcdHggPSB4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cChuZXQsIG1hcmssIGRhZGRyLCBzcGksIG5leHRoZHIsIGZhbWlseSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTU5Ni1cXHRcXHRpZiAoeCA9PSBOVUxMKSB7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzg3LX1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6Nzg4OkVYUE9SVF9TWU1CT0woeGZybV9pbnB1dCk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc4OS1cXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzkwOmludCB4ZnJtX2lucHV0X3Jlc3VtZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbmV4dGhkcilcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtNzkxLXtcXG5uZXQveGZybS94ZnJtX2lucHV0LmM6NzkyOlxcdHJldHVybiB4ZnJtX2lucHV0KHNrYiwgbmV4dGhkciwgMCwgLTEpO1xcbm5ldC94ZnJtL3hmcm1faW5wdXQuYy03OTMtfVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo3OTQ6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3Jlc3VtZSk7XFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTc5NS1cXG4tLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYz04NTE9RVhQT1JUX1NZTUJPTCh4ZnJtX3RyYW5zX3F1ZXVlKTtcXG5uZXQveGZybS94ZnJtX2lucHV0LmMtODUyLVxcbm5ldC94ZnJtL3hmcm1faW5wdXQuYzo4NTM6dm9pZCBfX2luaXQgeGZybV9pbnB1dF9pbml0KHZvaWQpXFxubmV0L3hmcm0veGZybV9pbnB1dC5jLTg1NC17XFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTcyPXN0YXRpYyBib29sIHhmcm1pX2RlY29kZV9zZXNzaW9uKHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTkyLVxcdGlmIChpZmluZGV4KSB7XFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjE5MzpcXHRcXHRzdHJ1Y3QgbmV0ICpuZXQgPSB4c19uZXQoeGZybV9pbnB1dF9zdGF0ZShza2IpKTtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTk0LVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTIwOC1cXHRpZiAoeGktXFx1MDAzZXAuY29sbGVjdF9tZClcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6MjA5OlxcdFxcdHJlcy1cXHUwMDNlaWZfaWQgPSB4ZnJtX2lucHV0X3N0YXRlKHNrYiktXFx1MDAzZWlmX2lkO1xcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy0yMTAtXFx0ZWxzZVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTMxMj1zdGF0aWMgaW50IHhmcm1pX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBuZXh0aGRyLCBfX2JlMzIgc3BpLFxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTMzMC1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM6MzMxOlxcdHJldHVybiB4ZnJtX2lucHV0KHNrYiwgbmV4dGhkciwgc3BpLCBlbmNhcF90eXBlKTtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzMyLWRpc2NhcmQ6XFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MzU4PXN0YXRpYyBpbnQgeGZybWlfcmN2X2NiKHN0cnVjdCBza19idWZmICpza2IsIGludCBlcnIpXFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzY5LVxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzozNzA6XFx0eCA9IHhmcm1faW5wdXRfc3RhdGUoc2tiKTtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMzcxLVxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTk4Nz1zdGF0aWMgc3RydWN0IHhmcm02X3Byb3RvY29sIHhmcm1pX2FoNl9wcm90b2NvbCBfX3JlYWRfbW9zdGx5ID0ge1xcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy05ODgtXFx0LmhhbmRsZXJcXHQ9XFx0eGZybTZfcmN2LFxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYzo5ODk6XFx0LmlucHV0X2hhbmRsZXJcXHQ9XFx0eGZybV9pbnB1dCxcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtOTkwLVxcdC5jYl9oYW5kbGVyXFx0PVxcdHhmcm1pX3Jjdl9jYixcXG4tLVxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYz05OTU9c3RhdGljIHN0cnVjdCB4ZnJtNl9wcm90b2NvbCB4ZnJtaV9pcGNvbXA2X3Byb3RvY29sIF9fcmVhZF9tb3N0bHkgPSB7XFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jLTk5Ni1cXHQuaGFuZGxlclxcdD1cXHR4ZnJtNl9yY3YsXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjk5NzpcXHQuaW5wdXRfaGFuZGxlclxcdD1cXHR4ZnJtX2lucHV0LFxcbm5ldC94ZnJtL3hmcm1faW50ZXJmYWNlX2NvcmUuYy05OTgtXFx0LmNiX2hhbmRsZXJcXHQ9XFx0eGZybWlfcmN2X2NiLFxcbi0tXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jPTEwMzg9c3RhdGljIHN0cnVjdCB4ZnJtNF9wcm90b2NvbCB4ZnJtaV9haDRfcHJvdG9jb2wgX19yZWFkX21vc3RseSA9IHtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTAzOS1cXHQuaGFuZGxlclxcdD1cXHR4ZnJtNF9yY3YsXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjEwNDA6XFx0LmlucHV0X2hhbmRsZXJcXHQ9XFx0eGZybV9pbnB1dCxcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0MS1cXHQuY2JfaGFuZGxlclxcdD1cXHR4ZnJtaV9yY3ZfY2IsXFxuLS1cXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmM9MTA0Nj1zdGF0aWMgc3RydWN0IHhmcm00X3Byb3RvY29sIHhmcm1pX2lwY29tcDRfcHJvdG9jb2wgX19yZWFkX21vc3RseSA9IHtcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0Ny1cXHQuaGFuZGxlclxcdD1cXHR4ZnJtNF9yY3YsXFxubmV0L3hmcm0veGZybV9pbnRlcmZhY2VfY29yZS5jOjEwNDg6XFx0LmlucHV0X2hhbmRsZXJcXHQ9XFx0eGZybV9pbnB1dCxcXG5uZXQveGZybS94ZnJtX2ludGVyZmFjZV9jb3JlLmMtMTA0OS1cXHQuY2JfaGFuZGxlclxcdD1cXHR4ZnJtaV9yY3ZfY2IsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lwY29tcC5jPTExMT1zdGF0aWMgdm9pZCBpcGNvbXBfaW5wdXRfZG9uZSh2b2lkICpkYXRhLCBpbnQgZXJyKVxcbi0tXFxubmV0L3hmcm0veGZybV9pcGNvbXAuYy0xMTQtXFxubmV0L3hmcm0veGZybV9pcGNvbXAuYzoxMTU6XFx0eGZybV9pbnB1dF9yZXN1bWUoc2tiLCBpcGNvbXBfaW5wdXRfZG9uZTIoc2tiLCBlcnIpKTtcXG5uZXQveGZybS94ZnJtX2lwY29tcC5jLTExNi19XFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9MjU5PXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaXB0ZnNfYWxsb2Nfc2tiKHN0cnVjdCBza19idWZmICp0cGwsIHUzMiBsZW4sIGJvb2wgbDNyZXN2KVxcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTI4MC1cXHRpZiAoIWwzcmVzdikge1xcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoyODE6XFx0XFx0LyogeGZybV9pbnB1dCByZXN1bWUgbmVlZHMgZGV2IGFuZCB4ZnJtIGV4dCBmcm9tIHR1bm5lbCBwa3QgKi9cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMjgyLVxcdFxcdHNrYi1cXHUwMDNlZGV2ID0gdHBsLVxcdTAwM2VkZXY7XFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMjg1LVxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoyODY6XFx0LyogZHJvcHBlZCBieSB4ZnJtX2lucHV0LCB1c2VkIGJ5IHhmcm1fb3V0cHV0ICovXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTI4Ny1cXHRza2JfZHN0X2NvcHkoc2tiLCB0cGwpO1xcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jPTYzOT1zdGF0aWMgdTMyIF9faXB0ZnNfaXBsZW4odTggKmRhdGEpXFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtNjU2LSAqIG9mIHBhY2tldHMgaW4gdGhlIGhvcGVzIHRoYXQgb25lIGRheSBhIGxpc3Qgd2lsbCBiZSB0YWtlbiBieVxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzo2NTc6ICogeGZybV9pbnB1dC5cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtNjU4LSAqL1xcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jPTk0Mz1zdGF0aWMgYm9vbCBfX2lucHV0X3Byb2Nlc3NfcGF5bG9hZChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgdTMyIGRhdGEsXFxuLS1cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTE5MC1cXHRcXHRza2JfbGlzdF9kZWxfaW5pdChza2IpO1xcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoxMTkxOlxcdFxcdGlmICh4ZnJtX2lucHV0KHNrYiwgMCwgMCwgLTIpKVxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYy0xMTkyLVxcdFxcdFxcdGtmcmVlX3NrYihza2IpO1xcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jPTE2Njg9c3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGlwdGZzX2Ryb3BfdGltZXIoc3RydWN0IGhydGltZXIgKm1lKVxcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTE3MTQtICpcXG5uZXQveGZybS94ZnJtX2lwdGZzLmM6MTcxNTogKiBSZXR1cm46IC1FSU5QUk9HUkVTUyB0byBpbmZvcm0geGZybV9pbnB1dCB0byBzdG9wIHByb2Nlc3NpbmcgdGhlIHNrYi5cXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTcxNi0gKi9cXG5uZXQveGZybS94ZnJtX2lwdGZzLmM9MTcxNz1zdGF0aWMgaW50IGlwdGZzX2lucHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L3hmcm0veGZybV9pcHRmcy5jLTE3NDktXFx0LyogV2UgYWx3YXlzIGhhdmUgZGVhbHQgd2l0aCB0aGUgaW5wdXQgU0tCLCBlaXRoZXIgd2UgYXJlIHJlLXVzaW5nIGl0LFxcbm5ldC94ZnJtL3hmcm1faXB0ZnMuYzoxNzUwOlxcdCAqIG9yIHdlIGhhdmUgZnJlZWQgaXQuIFJldHVybiBFSU5QUk9HUkVTUyBzbyB0aGF0IHhmcm1faW5wdXQgc3RvcHNcXG5uZXQveGZybS94ZnJtX2lwdGZzLmMtMTc1MS1cXHQgKiBwcm9jZXNzaW5nIGl0Llxcbi0tXFxubmV0L3hmcm0veGZybV9wb2xpY3kuYz0zNjcwPWludCBfX3hmcm1fcG9saWN5X2NoZWNrKHN0cnVjdCBzb2NrICpzaywgaW50IGRpciwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtMzc1My1cXHRcXHRjb25zdCBib29sIGlzX2NyeXB0b19vZmZsb2FkID0gc3AgXFx1MDAyNlxcdTAwMjZcXG5uZXQveGZybS94ZnJtX3BvbGljeS5jOjM3NTQ6XFx0XFx0XFx0KHhmcm1faW5wdXRfc3RhdGUoc2tiKS1cXHUwMDNleHNvLnR5cGUgPT0gWEZSTV9ERVZfT0ZGTE9BRF9DUllQVE8pO1xcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtMzc1NS1cXG4tLVxcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmM9NDQwND12b2lkIF9faW5pdCB4ZnJtX2luaXQodm9pZClcXG4tLVxcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtNDQxMS1cXHR4ZnJtX2Rldl9pbml0KCk7XFxubmV0L3hmcm0veGZybV9wb2xpY3kuYzo0NDEyOlxcdHhmcm1faW5wdXRfaW5pdCgpO1xcbm5ldC94ZnJtL3hmcm1fcG9saWN5LmMtNDQxMy1cXG4tLVxcbm5ldC94ZnJtL3hmcm1fc3RhdGUuYz0xMTc1PXN0YXRpYyBzdHJ1Y3QgeGZybV9zdGF0ZSAqX194ZnJtX3N0YXRlX2xvb2t1cChjb25zdCBzdHJ1Y3QgeGZybV9oYXNoX3N0YXRlX3B0cnMgKnN0YXRlX3B0cnMsXFxuLS1cXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTIwMC1cXG5uZXQveGZybS94ZnJtX3N0YXRlLmM6MTIwMTpzdHJ1Y3QgeGZybV9zdGF0ZSAqeGZybV9pbnB1dF9zdGF0ZV9sb29rdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgbWFyayxcXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTIwMi1cXHRcXHRcXHRcXHRcXHQgICBjb25zdCB4ZnJtX2FkZHJlc3NfdCAqZGFkZHIsXFxuLS1cXG5uZXQveGZybS94ZnJtX3N0YXRlLmMtMTI1Mi19XFxubmV0L3hmcm0veGZybV9zdGF0ZS5jOjEyNTM6RVhQT1JUX1NZTUJPTCh4ZnJtX2lucHV0X3N0YXRlX2xvb2t1cCk7XFxubmV0L3hmcm0veGZybV9zdGF0ZS5jLTEyNTQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjI5Ljc3NDE4MzIwM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NDA3NTE5NjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBYRlJNIElucHV0IFBhdGNoKipcblxuT2theSwgc28gdGhlIHBhdGNoIEknbSBsb29raW5nIGF0IG1vZGlmaWVzIGB4ZnJtX2lucHV0YCBpbiBgbmV0L3hmcm0veGZybV9pbnB1dC5jYC4gSXQgc2VlbXMgdGhleSd2ZSBzd2l0Y2hlZCB0byB1c2luZyBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiB0aGUgb2xkZXIgYHgtXHUwMDNldHlwZS1cdTAwM2Vwcm90b2Agb3IgYG5leHRoZHJgIHZhcmlhYmxlcyB3aXRoaW4gYHhmcm1fcmN2X2NiYCBhbmQgYHhmcm1fc3RhdGVfYWZpbmZvX2dldF9yY3VgLiBUaGlzIGZlZWxzIGxpa2UgYSBmdW5jdGlvbmFsbHkgaW1wb3J0YW50IGNoYW5nZSDigJMgZGVmaW5pdGVseSB3b3J0aCBhIGRlZXBlciBsb29rIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgc29tZSBmb2N1c2VkIGZ1enppbmcuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGB4ZnJtX2lucHV0YCBzaG91bGQgYmUgdGhlIHByaW1hcnkgZm9jdXMgc3ltYm9sIGZvciBmdXp6aW5nIHRoaXMuIE1ha2VzIHNlbnNlLiBBbmQgZnJvbSB0aGUgZGVzY3JpcHRpb24sIGl0IGxvb2tzIGxpa2UgdGhpcyBjb2RlIHJlcXVpcmVzIGBYRlJNYCB0byBiZSBlbmFibGVkIGluIHRoZSBrZXJuZWwgY29uZmlnLlxuXG5MZXQncyBxdWlja2x5IGNvbmZpcm0gdGhhdCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncyBpbiBgbmV0L3hmcm0vS2NvbmZpZ2AgdGhhdCBtaWdodCBpbmZsdWVuY2Ugb3IgaW50ZXJhY3Qgd2l0aCB0aGlzIGNvZGUgcGF0aC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBYRlJNYCBkZXBlbmRlbmNpZXMgYXMgd2VsbC4gRW5zdXJpbmcgSSBoYXZlbid0IG1pc3NlZCBhIGNvbmRpdGlvbmFsIGJ1aWxkIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBjcml0aWNhbCB0byB0aGUgc3VjY2VzcyBvZiBteSBhbmFseXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODA3NiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMFQwNzozMjozNC41MTQ5MzcwOTVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDEwMTg4NTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFhGUk1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3hmcm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQveGZybS9LY29uZmlnLTQtI1xcbm5ldC94ZnJtL0tjb25maWc6NTpjb25maWcgWEZSTVxcbm5ldC94ZnJtL0tjb25maWctNi1cXHRib29sXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTEwLVxcbm5ldC94ZnJtL0tjb25maWc6MTE6Y29uZmlnIFhGUk1fT0ZGTE9BRFxcbm5ldC94ZnJtL0tjb25maWctMTItXFx0Ym9vbFxcbm5ldC94ZnJtL0tjb25maWctMTMtXFxubmV0L3hmcm0vS2NvbmZpZzoxNDpjb25maWcgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0yMj1pZiBJTkVUXFxubmV0L3hmcm0vS2NvbmZpZzoyMzpjb25maWcgWEZSTV9VU0VSXFxubmV0L3hmcm0vS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZSBcXFwiVHJhbnNmb3JtYXRpb24gdXNlciBjb25maWd1cmF0aW9uIGludGVyZmFjZVxcXCJcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctMzEtXFxubmV0L3hmcm0vS2NvbmZpZzozMjpjb25maWcgWEZSTV9VU0VSX0NPTVBBVFxcbm5ldC94ZnJtL0tjb25maWctMzMtXFx0dHJpc3RhdGUgXFxcIkNvbXBhdGlibGUgQUJJIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTQyLVxcbm5ldC94ZnJtL0tjb25maWc6NDM6Y29uZmlnIFhGUk1fSU5URVJGQUNFXFxubmV0L3hmcm0vS2NvbmZpZy00NC1cXHR0cmlzdGF0ZSBcXFwiVHJhbnNmb3JtYXRpb24gdmlydHVhbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTUwLVxcbm5ldC94ZnJtL0tjb25maWc6NTE6Y29uZmlnIFhGUk1fU1VCX1BPTElDWVxcbm5ldC94ZnJtL0tjb25maWctNTItXFx0Ym9vbCBcXFwiVHJhbnNmb3JtYXRpb24gc3ViIHBvbGljeSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy02MC1cXG5uZXQveGZybS9LY29uZmlnOjYxOmNvbmZpZyBYRlJNX01JR1JBVEVcXG5uZXQveGZybS9LY29uZmlnLTYyLVxcdGJvb2wgXFxcIlRyYW5zZm9ybWF0aW9uIG1pZ3JhdGUgZGF0YWJhc2VcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTcxLVxcbm5ldC94ZnJtL0tjb25maWc6NzI6Y29uZmlnIFhGUk1fU1RBVElTVElDU1xcbm5ldC94ZnJtL0tjb25maWctNzMtXFx0Ym9vbCBcXFwiVHJhbnNmb3JtYXRpb24gc3RhdGlzdGljc1xcXCJcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctODMtIyBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxcbm5ldC94ZnJtL0tjb25maWc6ODQ6Y29uZmlnIFhGUk1fQUhcXG5uZXQveGZybS9LY29uZmlnLTg1LVxcdHRyaXN0YXRlXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTkyLSMgYWxnb3JpdGhtcyB0aGF0IFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmUgaW1wbGVtZW50ZWQuXFxubmV0L3hmcm0vS2NvbmZpZzo5Mzpjb25maWcgWEZSTV9FU1BcXG5uZXQveGZybS9LY29uZmlnLTk0LVxcdHRyaXN0YXRlXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTEwNS1cXG5uZXQveGZybS9LY29uZmlnOjEwNjpjb25maWcgWEZSTV9JUENPTVBcXG5uZXQveGZybS9LY29uZmlnLTEwNy1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xNDAtXFxubmV0L3hmcm0vS2NvbmZpZzoxNDE6Y29uZmlnIFhGUk1fSVBURlNcXG5uZXQveGZybS9LY29uZmlnLTE0Mi1cXHR0cmlzdGF0ZSBcXFwiSVBzZWMgSVAtVEZTL0FHR0ZSQUcgKFJGQyA5MzQ3KSBlbmNhcHN1bGF0aW9uIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTE1Ni1cXG5uZXQveGZybS9LY29uZmlnOjE1Nzpjb25maWcgWEZSTV9FU1BJTlRDUFxcbm5ldC94ZnJtL0tjb25maWctMTU4LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzBUMDc6MzI6MzQuNTU1OTU4NTc2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg5MTY0Nzc0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3NpbmcgYXMgYW4gZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFhGUk0gQ29uZmlndXJhdGlvbiBEZXBlbmRlbmN5KipcblxuQWxyaWdodCwgc28gYFhGUk1gIGlzIGEgYm9vbGVhbiBjb25maWcgb3B0aW9uLCB3aGljaCBtZWFucyBpdCdzIGEgc2ltcGxlIHllcy9ubyBmbGFnLiBBbmQgdGhlIGltcG9ydGFudCB0aGluZyBoZXJlIGlzIHRoYXQgaXQncyAqc2VsZWN0ZWQqIGJ5IG90aGVyIGNvbmZpZ3VyYXRpb25zLiBTbywgaXQncyBub3Qgc29tZXRoaW5nIEknZCB0eXBpY2FsbHkgZW5hYmxlIGRpcmVjdGx5LCBidXQgcmF0aGVyIHNvbWV0aGluZyB0aGF0IGdldHMgcHVsbGVkIGluIGFzIGEgZGVwZW5kZW5jeSBiYXNlZCBvbiBvdGhlciBzZWxlY3Rpb25zLiBJIG5lZWQgdG8gZmlndXJlIG91dCAqd2hhdCogZXhhY3RseSBpcyB0cmlnZ2VyaW5nIGl0cyBzZWxlY3Rpb24uIEtub3dpbmcgaXRzIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHN5c3RlbSBjb25maWd1cmF0aW9uIGFuZCBhbnkgaW1wbGljYXRpb25zIGRvd24gdGhlIGxpbmUuIFNvLCBsZXQncyBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgc2VlIHdoZXJlIGBYRlJNYCBpcyBiZWluZyBwdWxsZWQgaW4uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2ssIHdoaWNoIGlzIGdvaW5nIHRvIGluZm9ybSBtZSBhYm91dCB3aGF0IGZlYXR1cmVzIGFyZSB1c2luZyBYRlJNLCBhbmQgc28sIGluZm9ybSBtZSBhYm91dCB0aGUgZmVhdHVyZXMgdGhhdCBJIGFtIGVuYWJsaW5nIHdoZW4gZW5hYmxpbmcgWEZSTS5cblxuXG4iLCJJbnB1dFRva2VucyI6OTMxMSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjM4LjQ0NzYwNzgwMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTQyNjkwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgWEZSTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L0tjb25maWc9MzA0PWNvbmZpZyBORVRfSVBWVElcXG4tLVxcbm5ldC9pcHY0L0tjb25maWctMzA3LVxcdHNlbGVjdCBORVRfSVBfVFVOTkVMXFxubmV0L2lwdjQvS2NvbmZpZzozMDg6XFx0c2VsZWN0IFhGUk1cXG5uZXQvaXB2NC9LY29uZmlnLTMwOS1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTMzOT1jb25maWcgSU5FVF9BSFxcbm5ldC9pcHY0L0tjb25maWctMzQwLVxcdHRyaXN0YXRlIFxcXCJJUDogQUggdHJhbnNmb3JtYXRpb25cXFwiXFxubmV0L2lwdjQvS2NvbmZpZzozNDE6XFx0c2VsZWN0IFhGUk1fQUhcXG5uZXQvaXB2NC9LY29uZmlnLTM0Mi1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTM1ND1jb25maWcgSU5FVF9FU1BcXG5uZXQvaXB2NC9LY29uZmlnLTM1NS1cXHR0cmlzdGF0ZSBcXFwiSVA6IEVTUCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2NC9LY29uZmlnOjM1NjpcXHRzZWxlY3QgWEZSTV9FU1BcXG5uZXQvaXB2NC9LY29uZmlnLTM1Ny1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTM2OT1jb25maWcgSU5FVF9FU1BfT0ZGTE9BRFxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZy0zNzEtXFx0ZGVwZW5kcyBvbiBJTkVUX0VTUFxcbm5ldC9pcHY0L0tjb25maWc6MzcyOlxcdHNlbGVjdCBYRlJNX09GRkxPQURcXG5uZXQvaXB2NC9LY29uZmlnLTM3My1cXHRkZWZhdWx0IG5cXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzgyPWNvbmZpZyBJTkVUX0VTUElOVENQXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnLTM4Ni1cXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXFxubmV0L2lwdjQvS2NvbmZpZzozODc6XFx0c2VsZWN0IFhGUk1fRVNQSU5UQ1BcXG5uZXQvaXB2NC9LY29uZmlnLTM4OC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnPTM5ND1jb25maWcgSU5FVF9JUENPTVBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWctMzk2LVxcdHNlbGVjdCBJTkVUX1hGUk1fVFVOTkVMXFxubmV0L2lwdjQvS2NvbmZpZzozOTc6XFx0c2VsZWN0IFhGUk1fSVBDT01QXFxubmV0L2lwdjQvS2NvbmZpZy0zOTgtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz00Nz1jb25maWcgSU5FVDZfQUhcXG5uZXQvaXB2Ni9LY29uZmlnLTQ4LVxcdHRyaXN0YXRlIFxcXCJJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2Ni9LY29uZmlnOjQ5OlxcdHNlbGVjdCBYRlJNX0FIXFxubmV0L2lwdjYvS2NvbmZpZy01MC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTYyPWNvbmZpZyBJTkVUNl9FU1BcXG5uZXQvaXB2Ni9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJJUHY2OiBFU1AgdHJhbnNmb3JtYXRpb25cXFwiXFxubmV0L2lwdjYvS2NvbmZpZzo2NDpcXHRzZWxlY3QgWEZSTV9FU1BcXG5uZXQvaXB2Ni9LY29uZmlnLTY1LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9Nzc9Y29uZmlnIElORVQ2X0VTUF9PRkZMT0FEXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gSU5FVDZfRVNQXFxubmV0L2lwdjYvS2NvbmZpZzo4MDpcXHRzZWxlY3QgWEZSTV9PRkZMT0FEXFxubmV0L2lwdjYvS2NvbmZpZy04MS1cXHRkZWZhdWx0IG5cXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9OTA9Y29uZmlnIElORVQ2X0VTUElOVENQXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTk0LVxcdHNlbGVjdCBORVRfU09DS19NU0dcXG5uZXQvaXB2Ni9LY29uZmlnOjk1OlxcdHNlbGVjdCBYRlJNX0VTUElOVENQXFxubmV0L2lwdjYvS2NvbmZpZy05Ni1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTEwMj1jb25maWcgSU5FVDZfSVBDT01QXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTEwNC1cXHRzZWxlY3QgSU5FVDZfWEZSTV9UVU5ORUxcXG5uZXQvaXB2Ni9LY29uZmlnOjEwNTpcXHRzZWxlY3QgWEZSTV9JUENPTVBcXG5uZXQvaXB2Ni9LY29uZmlnLTEwNi1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTExMj1jb25maWcgSVBWNl9NSVA2XFxubmV0L2lwdjYvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIklQdjY6IE1vYmlsaXR5XFxcIlxcbm5ldC9pcHY2L0tjb25maWc6MTE0OlxcdHNlbGVjdCBYRlJNXFxubmV0L2lwdjYvS2NvbmZpZy0xMTUtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz0xNTA9Y29uZmlnIElQVjZfVlRJXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnLTE1My1cXHRzZWxlY3QgTkVUX0lQX1RVTk5FTFxcbm5ldC9pcHY2L0tjb25maWc6MTU0OlxcdHNlbGVjdCBYRlJNXFxubmV0L2lwdjYvS2NvbmZpZy0xNTUtXFx0aGVscFxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0xND1jb25maWcgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZVxcbm5ldC94ZnJtL0tjb25maWc6MTY6XFx0c2VsZWN0IFhGUk1cXG5uZXQveGZybS9LY29uZmlnLTE3LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MjM9Y29uZmlnIFhGUk1fVVNFUlxcbm5ldC94ZnJtL0tjb25maWctMjQtXFx0dHJpc3RhdGUgXFxcIlRyYW5zZm9ybWF0aW9uIHVzZXIgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VcXFwiXFxubmV0L3hmcm0vS2NvbmZpZzoyNTpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0yNi1cXHRoZWxwXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTg0PWNvbmZpZyBYRlJNX0FIXFxubmV0L3hmcm0vS2NvbmZpZy04NS1cXHR0cmlzdGF0ZVxcbm5ldC94ZnJtL0tjb25maWc6ODY6XFx0c2VsZWN0IFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctODctXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz05Mz1jb25maWcgWEZSTV9FU1BcXG5uZXQveGZybS9LY29uZmlnLTk0LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzo5NTpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy05Ni1cXHRzZWxlY3QgQ1JZUFRPXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTEwNj1jb25maWcgWEZSTV9JUENPTVBcXG5uZXQveGZybS9LY29uZmlnLTEwNy1cXHR0cmlzdGF0ZVxcbm5ldC94ZnJtL0tjb25maWc6MTA4OlxcdHNlbGVjdCBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTEwOS1cXHRzZWxlY3QgQ1JZUFRPXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTExMj1jb25maWcgTkVUX0tFWVxcbm5ldC94ZnJtL0tjb25maWctMTEzLVxcdHRyaXN0YXRlIFxcXCJQRl9LRVkgc29ja2V0cyAoZGVwcmVjYXRlZClcXFwiXFxubmV0L3hmcm0vS2NvbmZpZzoxMTQ6XFx0c2VsZWN0IFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctMTE1LVxcdGhlbHBcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTI1PWNvbmZpZyBORVRfS0VZX01JR1JBVEVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctMTI3LVxcdGRlcGVuZHMgb24gTkVUX0tFWVxcbm5ldC94ZnJtL0tjb25maWc6MTI4OlxcdHNlbGVjdCBYRlJNX01JR1JBVEVcXG5uZXQveGZybS9LY29uZmlnLTEyOS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjM4LjUxMzAzODQyOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMzE3ODQ3NzMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIGFuIElQc2VjIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUbyBlbmFibGUgSVBzZWMgcHJvcGVybHksIGBYRlJNX1VTRVJgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludDsgaXQgcHVsbHMgaW4gYFhGUk1fQUxHT2AsIHdoaWNoIGluIHR1cm4sIGluY2x1ZGVzIGBYRlJNYC4gQmV5b25kIHRoYXQsIGZvciBJUHNlYyBmdW5jdGlvbmFsaXR5IGl0c2VsZiwgYElORVRfRVNQYCwgYElORVRfQUhgLCBgSU5FVDZfRVNQYCwgYW5kIGBJTkVUNl9BSGAgYXJlIGNsZWFybHkgbmVjZXNzYXJ5LiBTbywgZm9yIHRoZSBjb25maWd1cmF0aW9uLCBJJ2xsIGRlZmluaXRlbHkgc3BlY2lmeSB0aG9zZTogYFhGUk1fVVNFUmAsIGBJTkVUX0VTUGAsIGBJTkVUX0FIYCwgYElORVQ2X0VTUGAsIGFuZCBgSU5FVDZfQUhgLlxuXG5Ob3csIHRoZSBjb3JlIG9mIHRoZSBtYXR0ZXI6IHRoZSBwYXRjaCBmb2N1c2VzIG9uIGB4ZnJtX2lucHV0YC4gSSBrbm93IGB4ZnJtX2lucHV0YCBpcyBhIGhvdC1wYXRoIGZ1bmN0aW9uOyBpdCdzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciBJUHNlYyBpbnB1dCwgbWVhbmluZyBpdCBoYW5kbGVzIGV2ZXJ5IElQc2VjIHBhY2tldC4gVGhhdCByYWlzZXMgYSBmbGFnIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbnMsIHdoaWNoIHNheSB0byBhdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cblxuQnV0LCBoYW5nIG9uLi4uIFRoaXMgKnNwZWNpZmljKiBwYXRjaCBvbmx5IG1vZGlmaWVzIGB4ZnJtX2lucHV0YC4gSXQncyB0aGUgcG9pbnQgb2YgbW9kaWZpY2F0aW9uLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCBhbmQgdGhlcmUgYXJlIG5vIG90aGVyIGZ1bmN0aW9ucyBhZmZlY3RlZC4gVGhpbmtpbmcgdGhyb3VnaCBpdCwgd2hpbGUgYHhmcm1faW5wdXRgICppcyogYSBob3QgcGF0aCwgaXQncyBhbHNvIGhpZ2hseSBzcGVjaWZpYyB0byB0aGUgWEZSTSBzdWJzeXN0ZW0uIEkgdGhpbmsgaXQncyBqdXN0aWZpYWJsZSB0byBpbmNsdWRlIGl0IGJlY2F1c2Ugb2YgaXRzIGRpcmVjdCByZWxldmFuY2UgdG8gdGhlIHBhdGNoJ3MgY2hhbmdlcy4gU28sIEkgd2lsbCBsaXN0IGB4ZnJtX2lucHV0YCBhcyB0aGUgZm9jdXMuXG5cblRvIHJlaXRlcmF0ZSwgdGhlIGNvbmZpZ3VyYXRpb25zIHdpbGwgYmU6XG4qICAgYFhGUk1fVVNFUmBcbiogICBgSU5FVF9FU1BgXG4qICAgYElORVRfQUhgXG4qICAgYElORVQ2X0VTUGBcbiogICBgSU5FVDZfQUhgXG5cbkknbSByZWFkeSB0byB1c2UgYHNldC1yZXN1bHRzYCB3aXRoIHRoZXNlIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTExNDYsIk91dHB1dFRva2VucyI6MTI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA3OjMyOjQ4LjgzMDg4ODY1OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MzgxMjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJYRlJNX1VTRVJcIixcbiAgICBcIklORVRfRVNQXCIsXG4gICAgXCJJTkVUX0FIXCIsXG4gICAgXCJJTkVUNl9FU1BcIixcbiAgICBcIklORVQ2X0FIXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybV9pbnB1dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIElQc2VjIGlucHV0IHByb2Nlc3NpbmcgZnVuY3Rpb24gYHhmcm1faW5wdXRgIHRvIGNvcnJlY3RseSB0cmFjayB0aGUgcHJvdG9jb2wgdXNpbmcgYSBsb2NhbCB2YXJpYWJsZSBgeGZybV9wcm90b2AgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHN0YXRlIHRoYXQgbWlnaHQgYmUgYWx0ZXJlZCBvciB1bmF2YWlsYWJsZSBsYXRlciBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWEZSTV9VU0VSXCIsXG4gICAgXCJJTkVUX0VTUFwiLFxuICAgIFwiSU5FVF9BSFwiLFxuICAgIFwiSU5FVDZfRVNQXCIsXG4gICAgXCJJTkVUNl9BSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInhmcm1faW5wdXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBJUHNlYyBpbnB1dCBwcm9jZXNzaW5nIGZ1bmN0aW9uIGB4ZnJtX2lucHV0YCB0byBjb3JyZWN0bHkgdHJhY2sgdGhlIHByb3RvY29sIHVzaW5nIGEgbG9jYWwgdmFyaWFibGUgYHhmcm1fcHJvdG9gIGluc3RlYWQgb2YgcmVseWluZyBvbiBzdGF0ZSB0aGF0IG1pZ2h0IGJlIGFsdGVyZWQgb3IgdW5hdmFpbGFibGUgbGF0ZXIgaW4gdGhlIGZ1bmN0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflow8msvz[1] Phase: Succeeded StartedAt: 2026-07-30 07:33:10 +0000 UTC FinishedAt: 2026-07-30 07:33:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-30 07:33:10 +0000 UTC FinishedAt: 2026-07-30 07:33:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2] Phase: Succeeded StartedAt: 2026-07-30 07:33:10 +0000 UTC FinishedAt: 2026-07-30 11:24:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-30 07:33:10 +0000 UTC FinishedAt: 2026-07-30 11:24:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-30 07:33:10 +0000 UTC FinishedAt: 2026-07-30 07:33:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-30 07:33:10 +0000 UTC FinishedAt: 2026-07-30 07:33:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-1232003937/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-30 07:33:34 +0000 UTC FinishedAt: 2026-07-30 07:55:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-30 07:33:34 +0000 UTC FinishedAt: 2026-07-30 07:55:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d912c890-4ad6-48da-b626-3aa48d3e7650,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-1232003937/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "ca243429-49ef-4a7b-ae25-6a88aeedb656", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-2318315663/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-30 07:33:34 +0000 UTC FinishedAt: 2026-07-30 07:55:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d912c890-4ad6-48da-b626-3aa48d3e7650,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-1232003937/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "ca243429-49ef-4a7b-ae25-6a88aeedb656", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-2318315663/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-30 07:55:37 +0000 UTC FinishedAt: 2026-07-30 07:55:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-30 07:55:37 +0000 UTC FinishedAt: 2026-07-30 07:55:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-30 07:55:37 +0000 UTC FinishedAt: 2026-07-30 07:55:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-30 07:55:37 +0000 UTC FinishedAt: 2026-07-30 07:55:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-1645921460/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-30 07:55:52 +0000 UTC FinishedAt: 2026-07-30 07:58:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-30 07:55:53 +0000 UTC FinishedAt: 2026-07-30 07:58:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ca243429-49ef-4a7b-ae25-6a88aeedb656,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-2318315663/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-30 07:58:11 +0000 UTC FinishedAt: 2026-07-30 07:58:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-30 07:58:11 +0000 UTC FinishedAt: 2026-07-30 07:58:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-30 07:58:11 +0000 UTC FinishedAt: 2026-07-30 08:20:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-30 07:58:11 +0000 UTC FinishedAt: 2026-07-30 08:20:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d912c890-4ad6-48da-b626-3aa48d3e7650,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-1645921460/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "f171c145-c052-4021-a6f9-fb7828f19e33", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-3529844352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-30 07:58:11 +0000 UTC FinishedAt: 2026-07-30 08:20:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d912c890-4ad6-48da-b626-3aa48d3e7650,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-1645921460/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "f171c145-c052-4021-a6f9-fb7828f19e33", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-3529844352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-30 08:20:37 +0000 UTC FinishedAt: 2026-07-30 08:20:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-30 08:20:37 +0000 UTC FinishedAt: 2026-07-30 08:20:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-30 08:20:37 +0000 UTC FinishedAt: 2026-07-30 08:22:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-30 08:20:37 +0000 UTC FinishedAt: 2026-07-30 08:22:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f171c145-c052-4021-a6f9-fb7828f19e33,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-3529844352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-30 08:22:41 +0000 UTC FinishedAt: 2026-07-30 11:24:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-30 08:22:41 +0000 UTC FinishedAt: 2026-07-30 11:24:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*ca243429-49ef-4a7b-ae25-6a88aeedb656,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f171c145-c052-4021-a6f9-fb7828f19e33,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-2318315663/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-3529844352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-30 08:22:41 +0000 UTC FinishedAt: 2026-07-30 08:22:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-30 08:22:41 +0000 UTC FinishedAt: 2026-07-30 08:22:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-3205619165/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-30 08:22:41 +0000 UTC FinishedAt: 2026-07-30 08:22:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-30 08:22:41 +0000 UTC FinishedAt: 2026-07-30 08:22:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-30 08:22:41 +0000 UTC FinishedAt: 2026-07-30 08:22:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-30 08:22:51 +0000 UTC FinishedAt: 2026-07-30 11:24:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["xfrm_input"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"51b093a7ba27476e1f639455f005e8d2e75390e4","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFRM_USER","INET_ESP","INET_AH","INET6_ESP","INET6_AH"],"series_id":"d0d1df09-bb04-4399-aa68-9ba2e4115416","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-30 08:22:51 +0000 UTC FinishedAt: 2026-07-30 11:23:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ca243429-49ef-4a7b-ae25-6a88aeedb656,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f171c145-c052-4021-a6f9-fb7828f19e33,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-2318315663/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-build-action-3529844352/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvz/series-workflow8msvz-convert-artifact-3205619165/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}