Name: series-workflowqnvjw Phase: Succeeded StartedAt: 2026-07-06 09:47:58 +0000 UTC FinishedAt: 2026-07-06 14:33:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[0] Phase: Succeeded StartedAt: 2026-07-06 09:47:58 +0000 UTC FinishedAt: 2026-07-06 10:12:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[0].run-triage Phase: Succeeded StartedAt: 2026-07-06 09:47:58 +0000 UTC FinishedAt: 2026-07-06 10:12:22 +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": "d7a8d500d7e42837bd8dce40cb52c97c6e8706a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "d7a8d500d7e42837bd8dce40cb52c97c6e8706a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP" ], "series_id": "c1e63ae1-9b01-4385-bcda-6ac89e8fbce8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ppp_release_channel", "ppp_release_channel_free", "ppp_unregister_channel", "ppp_release", "ppp_ioctl" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcF9yZWxlYXNlX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlJiMzNDssCiAgICAmIzM0O3BwcF91bnJlZ2lzdGVyX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7cHBwX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0MjJhOTljYTU1NWVjYzVmM2E5MWRiN2QyOTE2MmExZTJkZjkyYWI1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxMDoxMTozOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG5pbmRleCA1N2M2OGVmYTVmZjgxZC4uNzE3YzFkM2FhOTUzODAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbkBAIC0xODQsNiAmIzQzOzE4NCw3IEBAIHN0cnVjdCBjaGFubmVsIHtcbiBcdHN0cnVjdCBsaXN0X2hlYWQgY2xpc3Q7XHRcdC8qIGxpbmsgaW4gbGlzdCBvZiBjaGFubmVscyBwZXIgdW5pdCAqL1xuIFx0c3BpbmxvY2tfdFx0dXBsO1x0XHQvKiBwcm90ZWN0cyBgcHBwJiMzOTsgYW5kICYjMzk7YnJpZGdlJiMzOTsgKi9cbiBcdHN0cnVjdCBjaGFubmVsIF9fcmN1ICpicmlkZ2U7XHQvKiBcJiMzNDticmlkZ2VkXCYjMzQ7IHBwcCBjaGFubmVsICovXG4mIzQzO1x0c3RydWN0IHJjdV9oZWFkIHJjdTtcdFx0LyogZm9yIFJDVS1kZWZlcnJlZCBmcmVlIG9mIHRoZSBjaGFubmVsICovXG4gI2lmZGVmIENPTkZJR19QUFBfTVVMVElMSU5LXG4gXHR1OFx0XHRhdmFpbDtcdFx0LyogZmxhZyB1c2VkIGluIG11bHRpbGluayBzdHVmZiAqL1xuIFx0dThcdFx0aGFkX2ZyYWc7XHQvKiBcdTAwM2U9IDEgZnJhZ21lbnRzIGhhdmUgYmVlbiBzZW50ICovXG5AQCAtMzU2Miw2ICYjNDM7MzU2MywxOCBAQCBwcHBfZGlzY29ubmVjdF9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiYjNDM7LyogUHVyZ2UgYWZ0ZXIgdGhlIGdyYWNlIHBlcmlvZDogYSBsYXRlIHBwcF9pbnB1dCgpIG1heSBzdGlsbCBxdWV1ZSBhblxuJiM0MzsgKiBza2Igb24gcGNoLVx1MDAzZWZpbGUucnEgYmVmb3JlIHRoZSBsYXN0IFJDVSByZWFkZXIgZHJhaW5zLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcmN1KVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGNoYW5uZWwgKnBjaCA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBjaGFubmVsLCByY3UpO1xuJiM0MztcbiYjNDM7XHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2cGNoLVx1MDAzZWZpbGUueHEpO1xuJiM0MztcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS5ycSk7XG4mIzQzO1x0a2ZyZWUocGNoKTtcbiYjNDM7fVxuJiM0MztcbiAvKlxuICAqIERyb3AgYSByZWZlcmVuY2UgdG8gYSBwcHAgY2hhbm5lbCBhbmQgZnJlZSBpdHMgbWVtb3J5IGlmIHRoZSByZWZjb3VudCByZWFjaGVzXG4gICogemVyby5cbkBAIC0zNTgxLDkgJiM0MzszNTk0LDcgQEAgc3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0XHRwcl9lcnIoXCYjMzQ7cHBwOiBkZXN0cm95aW5nIHVuZGVhZCBjaGFubmVsICVwICFcXG5cJiMzNDssIHBjaCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbi1cdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS54cSk7XG4tXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2cGNoLVx1MDAzZWZpbGUucnEpO1xuLVx0a2ZyZWUocGNoKTtcbiYjNDM7XHRjYWxsX3JjdShcdTAwMjZwY2gtXHUwMDNlcmN1LCBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBfX2V4aXQgcHBwX2NsZWFudXAodm9pZClcbkBAIC0zNTk2LDYgJiM0MzszNjA3LDcgQEAgc3RhdGljIHZvaWQgX19leGl0IHBwcF9jbGVhbnVwKHZvaWQpXG4gXHRkZXZpY2VfZGVzdHJveShcdTAwMjZwcHBfY2xhc3MsIE1LREVWKFBQUF9NQUpPUiwgMCkpO1xuIFx0Y2xhc3NfdW5yZWdpc3RlcihcdTAwMjZwcHBfY2xhc3MpO1xuIFx0dW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNlKFx1MDAyNnBwcF9uZXRfb3BzKTtcbiYjNDM7XHRyY3VfYmFycmllcigpOyAvKiB3YWl0IGZvciBSQ1UgY2FsbGJhY2tzIGJlZm9yZSBtb2R1bGUgdW5sb2FkICovXG4gfVxuIFxuIC8qXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UFBQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDtwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUmIzM0OywKICAgICYjMzQ7cHBwX3VucmVnaXN0ZXJfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDtwcHBfcmVsZWFzZSYjMzQ7LAogICAgJiMzNDtwcHBfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaW4gUFBQIGNoYW5uZWwgcmVsZWFzZSBieSBkZWZlcnJpbmcgdGhlIGNoYW5uZWwgZnJlZSB1c2luZyBSQ1UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFBQUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJlbWFpbmluZyByYWNlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDIyYTk5Y2E1NTVlY2M1ZjNhOTFkYjdkMjkxNjJhMWUyZGY5MmFiNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDYgMTA6MTE6MzkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jCmluZGV4IDU3YzY4ZWZhNWZmODFkLi43MTdjMWQzYWE5NTM4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKQEAgLTE4NCw2ICYjNDM7MTg0LDcgQEAgc3RydWN0IGNoYW5uZWwgewogCXN0cnVjdCBsaXN0X2hlYWQgY2xpc3Q7CQkvKiBsaW5rIGluIGxpc3Qgb2YgY2hhbm5lbHMgcGVyIHVuaXQgKi8KIAlzcGlubG9ja190CXVwbDsJCS8qIHByb3RlY3RzIGBwcHAmIzM5OyBhbmQgJiMzOTticmlkZ2UmIzM5OyAqLwogCXN0cnVjdCBjaGFubmVsIF9fcmN1ICpicmlkZ2U7CS8qICYjMzQ7YnJpZGdlZCYjMzQ7IHBwcCBjaGFubmVsICovCiYjNDM7CXN0cnVjdCByY3VfaGVhZCByY3U7CQkvKiBmb3IgUkNVLWRlZmVycmVkIGZyZWUgb2YgdGhlIGNoYW5uZWwgKi8KICNpZmRlZiBDT05GSUdfUFBQX01VTFRJTElOSwogCXU4CQlhdmFpbDsJCS8qIGZsYWcgdXNlZCBpbiBtdWx0aWxpbmsgc3R1ZmYgKi8KIAl1OAkJaGFkX2ZyYWc7CS8qICZndDs9IDEgZnJhZ21lbnRzIGhhdmUgYmVlbiBzZW50ICovCkBAIC0zNTYyLDYgJiM0MzszNTYzLDE4IEBAIHBwcF9kaXNjb25uZWN0X2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaCkKIAlyZXR1cm4gZXJyOwogfQogCiYjNDM7LyogUHVyZ2UgYWZ0ZXIgdGhlIGdyYWNlIHBlcmlvZDogYSBsYXRlIHBwcF9pbnB1dCgpIG1heSBzdGlsbCBxdWV1ZSBhbgomIzQzOyAqIHNrYiBvbiBwY2gtJmd0O2ZpbGUucnEgYmVmb3JlIHRoZSBsYXN0IFJDVSByZWFkZXIgZHJhaW5zLgomIzQzOyAqLwomIzQzO3N0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBjaGFubmVsICpwY2ggPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgY2hhbm5lbCwgcmN1KTsKJiM0MzsKJiM0MzsJc2tiX3F1ZXVlX3B1cmdlKCZhbXA7cGNoLSZndDtmaWxlLnhxKTsKJiM0MzsJc2tiX3F1ZXVlX3B1cmdlKCZhbXA7cGNoLSZndDtmaWxlLnJxKTsKJiM0MzsJa2ZyZWUocGNoKTsKJiM0Mzt9CiYjNDM7CiAvKgogICogRHJvcCBhIHJlZmVyZW5jZSB0byBhIHBwcCBjaGFubmVsIGFuZCBmcmVlIGl0cyBtZW1vcnkgaWYgdGhlIHJlZmNvdW50IHJlYWNoZXMKICAqIHplcm8uCkBAIC0zNTgxLDkgJiM0MzszNTk0LDcgQEAgc3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKQogCQlwcl9lcnIoJiMzNDtwcHA6IGRlc3Ryb3lpbmcgdW5kZWFkIGNoYW5uZWwgJXAgIVxuJiMzNDssIHBjaCk7CiAJCXJldHVybjsKIAl9Ci0Jc2tiX3F1ZXVlX3B1cmdlKCZhbXA7cGNoLSZndDtmaWxlLnhxKTsKLQlza2JfcXVldWVfcHVyZ2UoJmFtcDtwY2gtJmd0O2ZpbGUucnEpOwotCWtmcmVlKHBjaCk7CiYjNDM7CWNhbGxfcmN1KCZhbXA7cGNoLSZndDtyY3UsIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKQpAQCAtMzU5Niw2ICYjNDM7MzYwNyw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKQogCWRldmljZV9kZXN0cm95KCZhbXA7cHBwX2NsYXNzLCBNS0RFVihQUFBfTUFKT1IsIDApKTsKIAljbGFzc191bnJlZ2lzdGVyKCZhbXA7cHBwX2NsYXNzKTsKIAl1bnJlZ2lzdGVyX3Blcm5ldF9kZXZpY2UoJmFtcDtwcHBfbmV0X29wcyk7CiYjNDM7CXJjdV9iYXJyaWVyKCk7IC8qIHdhaXQgZm9yIFJDVSBjYWxsYmFja3MgYmVmb3JlIG1vZHVsZSB1bmxvYWQgKi8KIH0KIAogLyoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwMwoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQUFAgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNgLiBGcm9tIHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIG1ha2luZyBhIHByZXR0eSBzdGFuZGFyZCBidXQgaW1wb3J0YW50IGZpeCBmb3IgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW8uIFRoZXkmIzM5O3ZlIHJlcGxhY2VkIHRoZSBkaXJlY3QgZnJlZWluZyBvZiB0aGUgUFBQIGNoYW5uZWwgaW4gYHBwcF9yZWxlYXNlX2NoYW5uZWxgIHdpdGggYGNhbGxfcmN1YCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEkmIzM5O2QgZXhwZWN0IHRvIHNlZSBpbiBhIHNpdHVhdGlvbiBsaWtlIHRoaXMuIFNtYXJ0IG1vdmUuCgpOb3csIHRoYXQgbWVhbnMgdGhlcmUmIzM5O3MgYSBuZXcgZnVuY3Rpb24sIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgLCB0byBhY3R1YWxseSBoYW5kbGUgdGhlIGRlYWxsb2NhdGlvbiAqYWZ0ZXIqIHRoZSBncmFjZSBwZXJpb2QuIEdvb2QgcHJhY3RpY2UuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaG93IHRoYXQgaW50ZXJhY3RzIHdpdGggUkNVJiMzOTtzIG1lY2hhbmlzbSwgb2YgY291cnNlLCBidXQgaXQmIzM5O3MgdGhlIHJpZ2h0IGRpcmVjdGlvbi4gSXQgbWFrZXMgc2Vuc2UgdGhhdCB0aGlzIGZ1bmN0aW9uIHB1cmdlcyBxdWV1ZXMgYW5kIHRoZW4gZnJlZXMgdGhlIGNoYW5uZWwgaXRzZWxmLiBUaGV5JiMzOTt2ZSBhbHNvIGFkZGVkIGFuIGByY3VfYmFycmllcigpYCB0byBgcHBwX2NsZWFudXAoKWAsIHdoaWNoIGlzIGNydWNpYWwgdG8gZW5zdXJlIHRoYXQgYW55IG91dHN0YW5kaW5nIFJDVSByZWFkcyBhcmUgY29tcGxldGVkIGJlZm9yZSBjbGVhbnVwLgoKVGhlIHJvb3QgY2F1c2UsIGFzIEkgc2VlIGl0LCBpcyBsaWtlbHkgaW4gdGhlIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIGNoYW5uZWwgYmVpbmcgcmVsZWFzZWQgYW5kIGBwcHBfaW5wdXQoKWAgcG90ZW50aWFsbHkgc3RpbGwgdHJ5aW5nIHRvIHF1ZXVlIGFuIGBza2JgIG9udG8gYHBjaC0mZ3Q7ZmlsZS5ycWAuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIGFuZCBwYWluZnVsIGJ1ZyB0byB0cmFjayBkb3duLCBzbyBhZGRyZXNzaW5nIGl0IHRoaXMgd2F5IGlzIHRoZSBjb3JyZWN0IGFwcHJvYWNoLgoKQmVmb3JlIEkgZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIGl0c2VsZiwgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZy4gSSYjMzk7bSBndWVzc2luZyBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHdpbGwgaGF2ZSBgQ09ORklHX1BQUGAgZGVmaW5lZC4gSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBjaGFuZ2UgY291bGQgcG90ZW50aWFsbHkgaW1wYWN0IGNvbmZpZ3VyYXRpb25zLgoKSSYjMzk7bGwgYWxzbyBncmVwIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGNvZGViYXNlIGp1c3QgdG8gc2VlIHdoZXJlIGBwcHBfcmVsZWFzZV9jaGFubmVsYCBhbmQgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAgYXJlIGNhbGxlZCBhbmQgZW5zdXJlIHRoaXMgcGF0Y2ggaXMgdGhvcm91Z2guIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBxdWljayBvdmVydmlldyBvZiBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIGFuZCBzaWRlLWVmZmVjdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTI5ND1zdGF0aWMgaW50IHBwcF9kaXNjb25uZWN0X2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaCk7XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzoyOTU6c3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTI5Ni1zdGF0aWMgaW50IHVuaXRfZ2V0KHN0cnVjdCBpZHIgKnAsIHZvaWQgKnB0ciwgaW50IG1pbik7XG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NDA0PXN0YXRpYyBpbnQgcHBwX3JlbGVhc2Uoc3RydWN0IGlub2RlICp1bnVzZWQsIHN0cnVjdCBmaWxlICpmaWxlKVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTQyMC1cdFx0Y2FzZSBDSEFOTkVMOlxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6NDIxOlx0XHRcdHBwcF9yZWxlYXNlX2NoYW5uZWwoUEZfVE9fQ0hBTk5FTChwZikpO1xuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNDIyLVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTY0Mj1zdGF0aWMgaW50IHBwcF9icmlkZ2VfY2hhbm5lbHMoc3RydWN0IGNoYW5uZWwgKnBjaCwgc3RydWN0IGNoYW5uZWwgKnBjaGIpXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNjc0LVx0aWYgKHBjaGIpXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo2NzU6XHRcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoYik7XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy02NzYtXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NjgwPXN0YXRpYyBpbnQgcHBwX3VuYnJpZGdlX2NoYW5uZWxzKHN0cnVjdCBjaGFubmVsICpwY2gpXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzA2LVx0aWYgKHBjaGJiID09IHBjaClcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjcwNzpcdFx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2gpO1xuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzA4LVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6NzA5Olx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2hiKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTcxMC1cbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYz03MTQ9c3RhdGljIGxvbmcgcHBwX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZylcbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy03ODItXHRcdFx0LyogRHJvcCBlYXJsaWVyIHJlZmNvdW50IG5vdyBicmlkZ2UgZXN0YWJsaXNobWVudCBpcyBjb21wbGV0ZSAqL1xuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6NzgzOlx0XHRcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoYik7XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy03ODQtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9Mjk4OT1wcHBfdW5yZWdpc3Rlcl9jaGFubmVsKHN0cnVjdCBwcHBfY2hhbm5lbCAqY2hhbilcbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zMDE5LVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6MzAyMDpcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTMwMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTM1NDQ9cHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1NjgtICovXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTY5OnN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSlcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1NzAte1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1ODEtICovXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTgyOnN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaClcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1ODMte1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1OTYtXHR9XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTk3Olx0Y2FsbF9yY3UoXHUwMDI2cGNoLVx1MDAzZXJjdSwgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1OTgtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NzMKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2Ygd2hhdCBJJiMzOTttIGxvb2tpbmcgYXQ6CgoqKkluaXRpYWwgRm9jdXM6IFBQUCBDaGFubmVsIE1hbmFnZW1lbnQqKgoKUmlnaHQsIGxldCYjMzk7cyB6ZXJvIGluIG9uIHRoZSBjb3JlIFBQUCBjaGFubmVsIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgdGhlIGxpZmVjeWNsZSBvZiB0aGVzZSBjaGFubmVscywgZnJvbSBhbGxvY2F0aW9uIGFuZCByZWxlYXNlIHRvIGRpc2Nvbm5lY3Rpb24gYW5kIGJyaWRnaW5nLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlc2Uga2V5IGZ1bmN0aW9uczogYHBwcF9yZWxlYXNlX2NoYW5uZWxgLCBgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYCwgYHBwcF9kaXNjb25uZWN0X2NoYW5uZWxgLCBgcHBwX2JyaWRnZV9jaGFubmVsc2AsIGBwcHBfdW5icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX2lvY3RsYCwgYW5kIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYC4gT2YgY291cnNlLCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBicm9hZGVyIGBwcHBfcmVsZWFzZWAgZnVuY3Rpb24gYXMgd2VsbCwgd2hpY2ggbGlrZWx5IHRpZXMgaW50byBvdmVyYWxsIHJlc291cmNlIG1hbmFnZW1lbnQuCgpOb3cgSSBuZWVkIHRvIGVuc3VyZSBQUFAgaXMgYWN0dWFsbHkgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSBwcm9kdWN0aXZlLiBUaW1lIHRvIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYENPTkZJR19QUFBgIGlzIHNldCBjb3JyZWN0bHkuIEkmIzM5O2xsIG5lZWQgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGdvaW5nIGZ1cnRoZXIgaWYgUFBQIGl0c2VsZiBpc24mIzM5O3QgY29tcGlsZWQgaW4hCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBQUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo2OmNvbmZpZyBQUFBcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtQUFAgKHBvaW50LXRvLXBvaW50IHByb3RvY29sKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MzU9aWYgUFBQXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0zNi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjM3OmNvbmZpZyBQUFBfQlNEQ09NUFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMzgtXHR0cmlzdGF0ZSBcJiMzNDtQUFAgQlNELUNvbXByZXNzIGNvbXByZXNzaW9uXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNTQtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo1NTpjb25maWcgUFBQX0RFRkxBVEVcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU2LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIERlZmxhdGUgY29tcHJlc3Npb25cJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy02OC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjY5OmNvbmZpZyBQUFBfRklMVEVSXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy03MC1cdGJvb2wgXCYjMzQ7UFBQIGZpbHRlcmluZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTgwLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6ODE6Y29uZmlnIFBQUF9NUFBFXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy04Mi1cdHRyaXN0YXRlIFwmIzM0O1BQUCBNUFBFIGNvbXByZXNzaW9uIChlbmNyeXB0aW9uKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkxLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6OTI6Y29uZmlnIFBQUF9NVUxUSUxJTktcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkzLVx0Ym9vbCBcJiMzNDtQUFAgbXVsdGlsaW5rIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMDMtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMDQ6Y29uZmlnIFBQUE9BVE1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTEwNS1cdHRyaXN0YXRlIFwmIzM0O1BQUCBvdmVyIEFUTVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExMi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjExMzpjb25maWcgUFBQT1hcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTUtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMTY6Y29uZmlnIFBQUE9FXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTctXHR0cmlzdGF0ZSBcJiMzNDtQUFAgb3ZlciBFdGhlcm5ldFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTEyNz1jaG9pY2Vcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMzgtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMzk6Y29uZmlnIFBQUE9FX0hBU0hfQklUU18xXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDAtXHRib29sIFwmIzM0OzEgYml0ICgyIGJ1Y2tldHMpXCYjMzQ7XG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDEtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNDI6Y29uZmlnIFBQUE9FX0hBU0hfQklUU18yXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0OzIgYml0cyAoNCBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ0LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ1OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfNFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ2LVx0Ym9vbCBcJiMzNDs0IGJpdHMgKDE2IGJ1Y2tldHMpXCYjMzQ7XG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDctXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNDg6Y29uZmlnIFBQUE9FX0hBU0hfQklUU184XG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDktXHRib29sIFwmIzM0OzggYml0cyAoMjU2IGJ1Y2tldHMpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTUxPWVuZGNob2ljZVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTUyLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTUzOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE1NC1cdGludFxuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE2MT1jb25maWcgUFBUUFxuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3Mi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE3Mzpjb25maWcgUFBQT0wyVFBcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3NC1cdHRyaXN0YXRlIFwmIzM0O1BQUCBvdmVyIEwyVFBcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xODE9aWYgVFRZXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xODItXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxODM6Y29uZmlnIFBQUF9BU1lOQ1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTg0LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIHN1cHBvcnQgZm9yIGFzeW5jIHNlcmlhbCBwb3J0c1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE5NS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE5Njpjb25maWcgUFBQX1NZTkNfVFRZXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTctXHR0cmlzdGF0ZSBcJiMzNDtQUFAgc3VwcG9ydCBmb3Igc3luYyB0dHkgcG9ydHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjg2CgkJCQkJCQlvdXRwdXQ6IDExOAoJCQkJCQkJdGhvdWdodHM6IDQyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBQUFAgQ2hhbm5lbCBSZWxlYXNlIGluIGRyaXZlcnMvbmV0L3BwcCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGNvbmZpZyBzZWVtcyB0byBiZSBgUFBQYCwgdGhhdCYjMzk7cyB0aGUgb2J2aW91cyBvbmUuIE5vdywgYXJlIHRoZXJlIGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gVGhlIHBhdGNoIGlzIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNgLCBzbyBpdCBzZWVtcyBwcmV0dHkgZm9jdXNlZC4gTGV0JiMzOTtzIHNlZS4uLgoKTXkgZm9jdXMgaXMgb24gYSBmZXcga2V5IHN5bWJvbHM6IGBwcHBfcmVsZWFzZV9jaGFubmVsYCwgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAsIGBwcHBfZGlzY29ubmVjdF9jaGFubmVsYCwgYHBwcF9icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX3VuYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF9pb2N0bGAgYW5kIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYCwgYHBwcF9yZWxlYXNlYC4KCldhaXQsIGEgc2Vjb25kIGxvb2sgcmV2ZWFscyBgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYCBpcyBzdGF0aWMgYW5kIGFkZGVkIGluIHRoaXMgcGF0Y2ghIEFsc28gYHBwcF9yZWxlYXNlX2NoYW5uZWxgLCBgcHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbGAsIGBwcHBfYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF91bmJyaWRnZV9jaGFubmVsc2AsIGBwcHBfaW9jdGxgIGFuZCBgcHBwX3JlbGVhc2VgIGFyZSBhbGwgc3RhdGljLiBCdXQgYHBwcF91bnJlZ2lzdGVyX2NoYW5uZWxgIGlzIGV4cG9ydGVkLgoKQWxyaWdodCwgc28gdGhlIGZ1enppbmcgdGFyZ2V0cyB3aWxsIGJlIGBwcHBfcmVsZWFzZV9jaGFubmVsYCwgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAsIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYCwgYHBwcF9yZWxlYXNlYCwgYW5kIGBwcHBfaW9jdGxgLgoKTGV0JiMzOTtzIGRvdWJsZS1jaGVjayBxdWlja2x5IHRoYXQgYHBwcF9yZWxlYXNlX2NoYW5uZWxgIGlzIGluZGVlZCBzdGF0aWMuIE9rYXksIGNvbmZpcm1lZC4gQ2FuIHdlIGZ1enogc3RhdGljIGZ1bmN0aW9ucz8gWWVzLCBvZiBjb3Vyc2UuIFN5emthbGxlciBjYW4gaGFuZGxlIHRoYXQgaWYgdGhleSBhcmUgcmVhY2hhYmxlLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBhIGZ1bmN0aW9uYWwgaXNzdWUg4oCTIG1vc3QgbGlrZWx5IGEgdXNlLWFmdGVyLWZyZWUgb3IgYSBzaW1pbGFyIG1lbW9yeSBzYWZldHkgcHJvYmxlbSBpbiBQUFAgY2hhbm5lbCByZWxlYXNlLgoKVGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEl0IGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlIGJ5IGRlZmVycmluZyB0aGUgY2hhbm5lbCBmcmVlIHVzaW5nIFJDVS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFBQUCBsb2dpYywgc28gd2UgbmVlZCB0byBmdXp6IGl0IHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciBhbnkgcmVtYWluaW5nIHJhY2VzLgoKQ29uZmlnczogYFBQUGAKCkZvY3VzIHN5bWJvbHM6CmBwcHBfcmVsZWFzZV9jaGFubmVsYApgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYApgcHBwX3VucmVnaXN0ZXJfY2hhbm5lbGAKYHBwcF9yZWxlYXNlYApgcHBwX2lvY3RsYAoKT2theSwgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcF9yZWxlYXNlX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlJiMzNDssCiAgICAmIzM0O3BwcF91bnJlZ2lzdGVyX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7cHBwX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcF9yZWxlYXNlX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlJiMzNDssCiAgICAmIzM0O3BwcF91bnJlZ2lzdGVyX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7cHBwX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo0MS4yODg4NTM0MzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzI3MzEzMjg5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQUFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsXCIsXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVcIixcbiAgICBcInBwcF91bnJlZ2lzdGVyX2NoYW5uZWxcIixcbiAgICBcInBwcF9yZWxlYXNlXCIsXG4gICAgXCJwcHBfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpbiBQUFAgY2hhbm5lbCByZWxlYXNlIGJ5IGRlZmVycmluZyB0aGUgY2hhbm5lbCBmcmVlIHVzaW5nIFJDVS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgUFBQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmVtYWluaW5nIHJhY2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo0MS4yODg4NjA0NTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MDA0NDkwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQyMmE5OWNhNTU1ZWNjNWYzYTkxZGI3ZDI5MTYyYTFlMmRmOTJhYjVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgNiAxMDoxMTozOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXFxuaW5kZXggNTdjNjhlZmE1ZmY4MWQuLjcxN2MxZDNhYTk1MzgwIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcXG5AQCAtMTg0LDYgKzE4NCw3IEBAIHN0cnVjdCBjaGFubmVsIHtcXG4gXFx0c3RydWN0IGxpc3RfaGVhZCBjbGlzdDtcXHRcXHQvKiBsaW5rIGluIGxpc3Qgb2YgY2hhbm5lbHMgcGVyIHVuaXQgKi9cXG4gXFx0c3BpbmxvY2tfdFxcdHVwbDtcXHRcXHQvKiBwcm90ZWN0cyBgcHBwJyBhbmQgJ2JyaWRnZScgKi9cXG4gXFx0c3RydWN0IGNoYW5uZWwgX19yY3UgKmJyaWRnZTtcXHQvKiBcXFwiYnJpZGdlZFxcXCIgcHBwIGNoYW5uZWwgKi9cXG4rXFx0c3RydWN0IHJjdV9oZWFkIHJjdTtcXHRcXHQvKiBmb3IgUkNVLWRlZmVycmVkIGZyZWUgb2YgdGhlIGNoYW5uZWwgKi9cXG4gI2lmZGVmIENPTkZJR19QUFBfTVVMVElMSU5LXFxuIFxcdHU4XFx0XFx0YXZhaWw7XFx0XFx0LyogZmxhZyB1c2VkIGluIG11bHRpbGluayBzdHVmZiAqL1xcbiBcXHR1OFxcdFxcdGhhZF9mcmFnO1xcdC8qIFxcdTAwM2U9IDEgZnJhZ21lbnRzIGhhdmUgYmVlbiBzZW50ICovXFxuQEAgLTM1NjIsNiArMzU2MywxOCBAQCBwcHBfZGlzY29ubmVjdF9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXFxuIFxcdHJldHVybiBlcnI7XFxuIH1cXG4gXFxuKy8qIFB1cmdlIGFmdGVyIHRoZSBncmFjZSBwZXJpb2Q6IGEgbGF0ZSBwcHBfaW5wdXQoKSBtYXkgc3RpbGwgcXVldWUgYW5cXG4rICogc2tiIG9uIHBjaC1cXHUwMDNlZmlsZS5ycSBiZWZvcmUgdGhlIGxhc3QgUkNVIHJlYWRlciBkcmFpbnMuXFxuKyAqL1xcbitzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpXFxuK3tcXG4rXFx0c3RydWN0IGNoYW5uZWwgKnBjaCA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBjaGFubmVsLCByY3UpO1xcbitcXG4rXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZwY2gtXFx1MDAzZWZpbGUueHEpO1xcbitcXHRza2JfcXVldWVfcHVyZ2UoXFx1MDAyNnBjaC1cXHUwMDNlZmlsZS5ycSk7XFxuK1xcdGtmcmVlKHBjaCk7XFxuK31cXG4rXFxuIC8qXFxuICAqIERyb3AgYSByZWZlcmVuY2UgdG8gYSBwcHAgY2hhbm5lbCBhbmQgZnJlZSBpdHMgbWVtb3J5IGlmIHRoZSByZWZjb3VudCByZWFjaGVzXFxuICAqIHplcm8uXFxuQEAgLTM1ODEsOSArMzU5NCw3IEBAIHN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaClcXG4gXFx0XFx0cHJfZXJyKFxcXCJwcHA6IGRlc3Ryb3lpbmcgdW5kZWFkIGNoYW5uZWwgJXAgIVxcXFxuXFxcIiwgcGNoKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuLVxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2cGNoLVxcdTAwM2VmaWxlLnhxKTtcXG4tXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZwY2gtXFx1MDAzZWZpbGUucnEpO1xcbi1cXHRrZnJlZShwY2gpO1xcbitcXHRjYWxsX3JjdShcXHUwMDI2cGNoLVxcdTAwM2VyY3UsIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZSk7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKVxcbkBAIC0zNTk2LDYgKzM2MDcsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgcHBwX2NsZWFudXAodm9pZClcXG4gXFx0ZGV2aWNlX2Rlc3Ryb3koXFx1MDAyNnBwcF9jbGFzcywgTUtERVYoUFBQX01BSk9SLCAwKSk7XFxuIFxcdGNsYXNzX3VucmVnaXN0ZXIoXFx1MDAyNnBwcF9jbGFzcyk7XFxuIFxcdHVucmVnaXN0ZXJfcGVybmV0X2RldmljZShcXHUwMDI2cHBwX25ldF9vcHMpO1xcbitcXHRyY3VfYmFycmllcigpOyAvKiB3YWl0IGZvciBSQ1UgY2FsbGJhY2tzIGJlZm9yZSBtb2R1bGUgdW5sb2FkICovXFxuIH1cXG4gXFxuIC8qXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjExOjQxLjg1OTg0NjI1MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY3MDIxMjUyMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFBQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHBwX3JlbGVhc2VfY2hhbm5lbFwiLFxuICAgIFwicHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlXCIsXG4gICAgXCJwcHBfdW5yZWdpc3Rlcl9jaGFubmVsXCIsXG4gICAgXCJwcHBfcmVsZWFzZVwiLFxuICAgIFwicHBwX2lvY3RsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaW4gUFBQIGNoYW5uZWwgcmVsZWFzZSBieSBkZWZlcnJpbmcgdGhlIGNoYW5uZWwgZnJlZSB1c2luZyBSQ1UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFBQUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJlbWFpbmluZyByYWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0MjJhOTljYTU1NWVjYzVmM2E5MWRiN2QyOTE2MmExZTJkZjkyYWI1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxMDoxMTozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbmluZGV4IDU3YzY4ZWZhNWZmODFkLi43MTdjMWQzYWE5NTM4MCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG4rKysgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuQEAgLTE4NCw2ICsxODQsNyBAQCBzdHJ1Y3QgY2hhbm5lbCB7XG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGNsaXN0O1x0XHQvKiBsaW5rIGluIGxpc3Qgb2YgY2hhbm5lbHMgcGVyIHVuaXQgKi9cbiBcdHNwaW5sb2NrX3RcdHVwbDtcdFx0LyogcHJvdGVjdHMgYHBwcCcgYW5kICdicmlkZ2UnICovXG4gXHRzdHJ1Y3QgY2hhbm5lbCBfX3JjdSAqYnJpZGdlO1x0LyogXCJicmlkZ2VkXCIgcHBwIGNoYW5uZWwgKi9cbitcdHN0cnVjdCByY3VfaGVhZCByY3U7XHRcdC8qIGZvciBSQ1UtZGVmZXJyZWQgZnJlZSBvZiB0aGUgY2hhbm5lbCAqL1xuICNpZmRlZiBDT05GSUdfUFBQX01VTFRJTElOS1xuIFx0dThcdFx0YXZhaWw7XHRcdC8qIGZsYWcgdXNlZCBpbiBtdWx0aWxpbmsgc3R1ZmYgKi9cbiBcdHU4XHRcdGhhZF9mcmFnO1x0LyogXHUwMDNlPSAxIGZyYWdtZW50cyBoYXZlIGJlZW4gc2VudCAqL1xuQEAgLTM1NjIsNiArMzU2MywxOCBAQCBwcHBfZGlzY29ubmVjdF9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbisvKiBQdXJnZSBhZnRlciB0aGUgZ3JhY2UgcGVyaW9kOiBhIGxhdGUgcHBwX2lucHV0KCkgbWF5IHN0aWxsIHF1ZXVlIGFuXG4rICogc2tiIG9uIHBjaC1cdTAwM2VmaWxlLnJxIGJlZm9yZSB0aGUgbGFzdCBSQ1UgcmVhZGVyIGRyYWlucy5cbisgKi9cbitzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpXG4re1xuK1x0c3RydWN0IGNoYW5uZWwgKnBjaCA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBjaGFubmVsLCByY3UpO1xuK1xuK1x0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNnBjaC1cdTAwM2VmaWxlLnhxKTtcbitcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS5ycSk7XG4rXHRrZnJlZShwY2gpO1xuK31cbitcbiAvKlxuICAqIERyb3AgYSByZWZlcmVuY2UgdG8gYSBwcHAgY2hhbm5lbCBhbmQgZnJlZSBpdHMgbWVtb3J5IGlmIHRoZSByZWZjb3VudCByZWFjaGVzXG4gICogemVyby5cbkBAIC0zNTgxLDkgKzM1OTQsNyBAQCBzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRcdHByX2VycihcInBwcDogZGVzdHJveWluZyB1bmRlYWQgY2hhbm5lbCAlcCAhXFxuXCIsIHBjaCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbi1cdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS54cSk7XG4tXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2cGNoLVx1MDAzZWZpbGUucnEpO1xuLVx0a2ZyZWUocGNoKTtcbitcdGNhbGxfcmN1KFx1MDAyNnBjaC1cdTAwM2VyY3UsIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZSk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKVxuQEAgLTM1OTYsNiArMzYwNyw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKVxuIFx0ZGV2aWNlX2Rlc3Ryb3koXHUwMDI2cHBwX2NsYXNzLCBNS0RFVihQUFBfTUFKT1IsIDApKTtcbiBcdGNsYXNzX3VucmVnaXN0ZXIoXHUwMDI2cHBwX2NsYXNzKTtcbiBcdHVucmVnaXN0ZXJfcGVybmV0X2RldmljZShcdTAwMjZwcHBfbmV0X29wcyk7XG4rXHRyY3VfYmFycmllcigpOyAvKiB3YWl0IGZvciBSQ1UgY2FsbGJhY2tzIGJlZm9yZSBtb2R1bGUgdW5sb2FkICovXG4gfVxuIFxuIC8qXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo0MS44NTk4NDg4MjJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzU4NTkxNzMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBQUCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNgLiBGcm9tIHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIHRoZXkncmUgbWFraW5nIGEgcHJldHR5IHN0YW5kYXJkIGJ1dCBpbXBvcnRhbnQgZml4IGZvciBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpby4gVGhleSd2ZSByZXBsYWNlZCB0aGUgZGlyZWN0IGZyZWVpbmcgb2YgdGhlIFBQUCBjaGFubmVsIGluIGBwcHBfcmVsZWFzZV9jaGFubmVsYCB3aXRoIGBjYWxsX3JjdWAsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJJ2QgZXhwZWN0IHRvIHNlZSBpbiBhIHNpdHVhdGlvbiBsaWtlIHRoaXMuIFNtYXJ0IG1vdmUuXG5cbk5vdywgdGhhdCBtZWFucyB0aGVyZSdzIGEgbmV3IGZ1bmN0aW9uLCBgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYCwgdG8gYWN0dWFsbHkgaGFuZGxlIHRoZSBkZWFsbG9jYXRpb24gKmFmdGVyKiB0aGUgZ3JhY2UgcGVyaW9kLiBHb29kIHByYWN0aWNlLiBJJ2xsIG5lZWQgdG8gY2hlY2sgaG93IHRoYXQgaW50ZXJhY3RzIHdpdGggUkNVJ3MgbWVjaGFuaXNtLCBvZiBjb3Vyc2UsIGJ1dCBpdCdzIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0IG1ha2VzIHNlbnNlIHRoYXQgdGhpcyBmdW5jdGlvbiBwdXJnZXMgcXVldWVzIGFuZCB0aGVuIGZyZWVzIHRoZSBjaGFubmVsIGl0c2VsZi4gVGhleSd2ZSBhbHNvIGFkZGVkIGFuIGByY3VfYmFycmllcigpYCB0byBgcHBwX2NsZWFudXAoKWAsIHdoaWNoIGlzIGNydWNpYWwgdG8gZW5zdXJlIHRoYXQgYW55IG91dHN0YW5kaW5nIFJDVSByZWFkcyBhcmUgY29tcGxldGVkIGJlZm9yZSBjbGVhbnVwLlxuXG5UaGUgcm9vdCBjYXVzZSwgYXMgSSBzZWUgaXQsIGlzIGxpa2VseSBpbiB0aGUgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgY2hhbm5lbCBiZWluZyByZWxlYXNlZCBhbmQgYHBwcF9pbnB1dCgpYCBwb3RlbnRpYWxseSBzdGlsbCB0cnlpbmcgdG8gcXVldWUgYW4gYHNrYmAgb250byBgcGNoLVx1MDAzZWZpbGUucnFgLiBUaGF0J3MgYSBjbGFzc2ljIGFuZCBwYWluZnVsIGJ1ZyB0byB0cmFjayBkb3duLCBzbyBhZGRyZXNzaW5nIGl0IHRoaXMgd2F5IGlzIHRoZSBjb3JyZWN0IGFwcHJvYWNoLlxuXG5CZWZvcmUgSSBkaWcgZGVlcGVyIGludG8gdGhlIGNvZGUgaXRzZWxmLCBJJ2xsIHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcuIEknbSBndWVzc2luZyBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHdpbGwgaGF2ZSBgQ09ORklHX1BQUGAgZGVmaW5lZC4gSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBjaGFuZ2UgY291bGQgcG90ZW50aWFsbHkgaW1wYWN0IGNvbmZpZ3VyYXRpb25zLlxuXG5JJ2xsIGFsc28gZ3JlcCB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBjb2RlYmFzZSBqdXN0IHRvIHNlZSB3aGVyZSBgcHBwX3JlbGVhc2VfY2hhbm5lbGAgYW5kIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgIGFyZSBjYWxsZWQgYW5kIGVuc3VyZSB0aGlzIHBhdGNoIGlzIHRob3JvdWdoLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgcXVpY2sgb3ZlcnZpZXcgb2YgcG90ZW50aWFsIGludGVyYWN0aW9ucyBhbmQgc2lkZS1lZmZlY3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzAzLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6MTE6NDcuMjE4NDQzMDA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyMDIxNjk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBwcF9yZWxlYXNlX2NoYW5uZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9Mjk0PXN0YXRpYyBpbnQgcHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzoyOTU6c3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0yOTYtc3RhdGljIGludCB1bml0X2dldChzdHJ1Y3QgaWRyICpwLCB2b2lkICpwdHIsIGludCBtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NDA0PXN0YXRpYyBpbnQgcHBwX3JlbGVhc2Uoc3RydWN0IGlub2RlICp1bnVzZWQsIHN0cnVjdCBmaWxlICpmaWxlKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNDIwLVxcdFxcdGNhc2UgQ0hBTk5FTDpcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo0MjE6XFx0XFx0XFx0cHBwX3JlbGVhc2VfY2hhbm5lbChQRl9UT19DSEFOTkVMKHBmKSk7XFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNDIyLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NjQyPXN0YXRpYyBpbnQgcHBwX2JyaWRnZV9jaGFubmVscyhzdHJ1Y3QgY2hhbm5lbCAqcGNoLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoYilcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTY3NC1cXHRpZiAocGNoYilcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo2NzU6XFx0XFx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2hiKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy02NzYtXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYz02ODA9c3RhdGljIGludCBwcHBfdW5icmlkZ2VfY2hhbm5lbHMoc3RydWN0IGNoYW5uZWwgKnBjaClcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTcwNi1cXHRpZiAocGNoYmIgPT0gcGNoKVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjcwNzpcXHRcXHRwcHBfcmVsZWFzZV9jaGFubmVsKHBjaCk7XFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzA4LVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjcwOTpcXHRwcHBfcmVsZWFzZV9jaGFubmVsKHBjaGIpO1xcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTcxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTcxND1zdGF0aWMgbG9uZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzgyLVxcdFxcdFxcdC8qIERyb3AgZWFybGllciByZWZjb3VudCBub3cgYnJpZGdlIGVzdGFibGlzaG1lbnQgaXMgY29tcGxldGUgKi9cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo3ODM6XFx0XFx0XFx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2hiKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy03ODQtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYz0yOTg5PXBwcF91bnJlZ2lzdGVyX2NoYW5uZWwoc3RydWN0IHBwcF9jaGFubmVsICpjaGFuKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtMzAxOS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozMDIwOlxcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zMDIxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTM1NDQ9cHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtMzU2OC0gKi9cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTY5OnN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSlcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zNTcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1ODEtICovXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6MzU4MjpzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtMzU4My17XFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zNTk2LVxcdH1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTk3OlxcdGNhbGxfcmN1KFxcdTAwMjZwY2gtXFx1MDAzZXJjdSwgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zNTk4LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6MTE6NDcuMzEwNDY5ODMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc0MTU2OTkxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGJyZWFrZG93biBvZiB3aGF0IEknbSBsb29raW5nIGF0OlxuXG4qKkluaXRpYWwgRm9jdXM6IFBQUCBDaGFubmVsIE1hbmFnZW1lbnQqKlxuXG5SaWdodCwgbGV0J3MgemVybyBpbiBvbiB0aGUgY29yZSBQUFAgY2hhbm5lbCBtYW5hZ2VtZW50IGZ1bmN0aW9ucy4gSSdtIHRoaW5raW5nIGFib3V0IGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgdGhlIGxpZmVjeWNsZSBvZiB0aGVzZSBjaGFubmVscywgZnJvbSBhbGxvY2F0aW9uIGFuZCByZWxlYXNlIHRvIGRpc2Nvbm5lY3Rpb24gYW5kIGJyaWRnaW5nLiBTcGVjaWZpY2FsbHksIEknbSBmb2N1c2luZyBvbiB0aGVzZSBrZXkgZnVuY3Rpb25zOiBgcHBwX3JlbGVhc2VfY2hhbm5lbGAsIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgLCBgcHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbGAsIGBwcHBfYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF91bmJyaWRnZV9jaGFubmVsc2AsIGBwcHBfaW9jdGxgLCBhbmQgYHBwcF91bnJlZ2lzdGVyX2NoYW5uZWxgLiBPZiBjb3Vyc2UsIHdlIG5lZWQgdG8gY29uc2lkZXIgdGhlIGJyb2FkZXIgYHBwcF9yZWxlYXNlYCBmdW5jdGlvbiBhcyB3ZWxsLCB3aGljaCBsaWtlbHkgdGllcyBpbnRvIG92ZXJhbGwgcmVzb3VyY2UgbWFuYWdlbWVudC5cblxuTm93IEkgbmVlZCB0byBlbnN1cmUgUFBQIGlzIGFjdHVhbGx5IGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgcHJvZHVjdGl2ZS4gVGltZSB0byBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBDT05GSUdfUFBQYCBpcyBzZXQgY29ycmVjdGx5LiBJJ2xsIG5lZWQgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGdvaW5nIGZ1cnRoZXIgaWYgUFBQIGl0c2VsZiBpc24ndCBjb21waWxlZCBpbiFcblxuXG4iLCJJbnB1dFRva2VucyI6Mzg3MywiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjExOjUxLjA1MjYwNzYyM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODg4MDc0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFBQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BwcC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6Njpjb25maWcgUFBQXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiUFBQIChwb2ludC10by1wb2ludCBwcm90b2NvbCkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTM1PWlmIFBQUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTM2LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjM3OmNvbmZpZyBQUFBfQlNEQ09NUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTM4LVxcdHRyaXN0YXRlIFxcXCJQUFAgQlNELUNvbXByZXNzIGNvbXByZXNzaW9uXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNTQtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6NTU6Y29uZmlnIFBQUF9ERUZMQVRFXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNTYtXFx0dHJpc3RhdGUgXFxcIlBQUCBEZWZsYXRlIGNvbXByZXNzaW9uXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNjgtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6Njk6Y29uZmlnIFBQUF9GSUxURVJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy03MC1cXHRib29sIFxcXCJQUFAgZmlsdGVyaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctODAtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6ODE6Y29uZmlnIFBQUF9NUFBFXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctODItXFx0dHJpc3RhdGUgXFxcIlBQUCBNUFBFIGNvbXByZXNzaW9uIChlbmNyeXB0aW9uKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkxLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjkyOmNvbmZpZyBQUFBfTVVMVElMSU5LXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctOTMtXFx0Ym9vbCBcXFwiUFBQIG11bHRpbGluayBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTAzLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjEwNDpjb25maWcgUFBQT0FUTVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTEwNS1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgQVRNXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTEyLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjExMzpjb25maWcgUFBQT1hcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExNy1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgRXRoZXJuZXRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMzgtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0MC1cXHRib29sIFxcXCIxIGJpdCAoMiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDEtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0My1cXHRib29sIFxcXCIyIGJpdHMgKDQgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDYtXFx0Ym9vbCBcXFwiNCBiaXRzICgxNiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDctXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0OS1cXHRib29sIFxcXCI4IGJpdHMgKDI1NiBidWNrZXRzKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTUzOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXFx0aW50XFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xNjE9Y29uZmlnIFBQVFBcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNzM6Y29uZmlnIFBQUE9MMlRQXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJQUFAgb3ZlciBMMlRQXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTgxPWlmIFRUWVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE4Mi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxODM6Y29uZmlnIFBQUF9BU1lOQ1xcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE4NC1cXHR0cmlzdGF0ZSBcXFwiUFBQIHN1cHBvcnQgZm9yIGFzeW5jIHNlcmlhbCBwb3J0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE5NS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxOTY6Y29uZmlnIFBQUF9TWU5DX1RUWVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE5Ny1cXHR0cmlzdGF0ZSBcXFwiUFBQIHN1cHBvcnQgZm9yIHN5bmMgdHR5IHBvcnRzXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo1MS4xMzE0OTMwODlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjQyNzA3MjY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIFBQUCBDaGFubmVsIFJlbGVhc2UgaW4gZHJpdmVycy9uZXQvcHBwKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGNvbmZpZyBzZWVtcyB0byBiZSBgUFBQYCwgdGhhdCdzIHRoZSBvYnZpb3VzIG9uZS4gTm93LCBhcmUgdGhlcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBUaGUgcGF0Y2ggaXMgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY2AsIHNvIGl0IHNlZW1zIHByZXR0eSBmb2N1c2VkLiBMZXQncyBzZWUuLi5cblxuTXkgZm9jdXMgaXMgb24gYSBmZXcga2V5IHN5bWJvbHM6IGBwcHBfcmVsZWFzZV9jaGFubmVsYCwgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAsIGBwcHBfZGlzY29ubmVjdF9jaGFubmVsYCwgYHBwcF9icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX3VuYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF9pb2N0bGAgYW5kIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYCwgYHBwcF9yZWxlYXNlYC5cblxuV2FpdCwgYSBzZWNvbmQgbG9vayByZXZlYWxzIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgIGlzIHN0YXRpYyBhbmQgYWRkZWQgaW4gdGhpcyBwYXRjaCEgQWxzbyBgcHBwX3JlbGVhc2VfY2hhbm5lbGAsIGBwcHBfZGlzY29ubmVjdF9jaGFubmVsYCwgYHBwcF9icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX3VuYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF9pb2N0bGAgYW5kIGBwcHBfcmVsZWFzZWAgYXJlIGFsbCBzdGF0aWMuIEJ1dCBgcHBwX3VucmVnaXN0ZXJfY2hhbm5lbGAgaXMgZXhwb3J0ZWQuXG5cbkFscmlnaHQsIHNvIHRoZSBmdXp6aW5nIHRhcmdldHMgd2lsbCBiZSBgcHBwX3JlbGVhc2VfY2hhbm5lbGAsIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgLCBgcHBwX3VucmVnaXN0ZXJfY2hhbm5lbGAsIGBwcHBfcmVsZWFzZWAsIGFuZCBgcHBwX2lvY3RsYC5cblxuTGV0J3MgZG91YmxlLWNoZWNrIHF1aWNrbHkgdGhhdCBgcHBwX3JlbGVhc2VfY2hhbm5lbGAgaXMgaW5kZWVkIHN0YXRpYy4gT2theSwgY29uZmlybWVkLiBDYW4gd2UgZnV6eiBzdGF0aWMgZnVuY3Rpb25zPyBZZXMsIG9mIGNvdXJzZS4gU3l6a2FsbGVyIGNhbiBoYW5kbGUgdGhhdCBpZiB0aGV5IGFyZSByZWFjaGFibGUuIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgZnVuY3Rpb25hbCBpc3N1ZSDigJMgbW9zdCBsaWtlbHkgYSB1c2UtYWZ0ZXItZnJlZSBvciBhIHNpbWlsYXIgbWVtb3J5IHNhZmV0eSBwcm9ibGVtIGluIFBQUCBjaGFubmVsIHJlbGVhc2UuXG5cblRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJdCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBieSBkZWZlcnJpbmcgdGhlIGNoYW5uZWwgZnJlZSB1c2luZyBSQ1UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBQUFAgbG9naWMsIHNvIHdlIG5lZWQgdG8gZnV6eiBpdCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgYW55IHJlbWFpbmluZyByYWNlcy5cblxuQ29uZmlnczogYFBQUGBcblxuRm9jdXMgc3ltYm9sczpcbmBwcHBfcmVsZWFzZV9jaGFubmVsYFxuYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWBcbmBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYFxuYHBwcF9yZWxlYXNlYFxuYHBwcF9pb2N0bGBcblxuT2theSwgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyODYsIk91dHB1dFRva2VucyI6MTE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjExOjU4LjM3NDIwMjYzNFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3NzYyMjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQUFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsXCIsXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVcIixcbiAgICBcInBwcF91bnJlZ2lzdGVyX2NoYW5uZWxcIixcbiAgICBcInBwcF9yZWxlYXNlXCIsXG4gICAgXCJwcHBfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpbiBQUFAgY2hhbm5lbCByZWxlYXNlIGJ5IGRlZmVycmluZyB0aGUgY2hhbm5lbCBmcmVlIHVzaW5nIFJDVS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgUFBQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmVtYWluaW5nIHJhY2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBQUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBwcF9yZWxlYXNlX2NoYW5uZWxcIixcbiAgICBcInBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZVwiLFxuICAgIFwicHBwX3VucmVnaXN0ZXJfY2hhbm5lbFwiLFxuICAgIFwicHBwX3JlbGVhc2VcIixcbiAgICBcInBwcF9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowqnvjw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-06 09:47:58 +0000 UTC FinishedAt: 2026-07-06 10:11:59 +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": "d7a8d500d7e42837bd8dce40cb52c97c6e8706a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "d7a8d500d7e42837bd8dce40cb52c97c6e8706a9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP" ], "series_id": "c1e63ae1-9b01-4385-bcda-6ac89e8fbce8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ppp_release_channel", "ppp_release_channel_free", "ppp_unregister_channel", "ppp_release", "ppp_ioctl" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcF9yZWxlYXNlX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlJiMzNDssCiAgICAmIzM0O3BwcF91bnJlZ2lzdGVyX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7cHBwX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0MjJhOTljYTU1NWVjYzVmM2E5MWRiN2QyOTE2MmExZTJkZjkyYWI1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxMDoxMTozOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG5pbmRleCA1N2M2OGVmYTVmZjgxZC4uNzE3YzFkM2FhOTUzODAgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbkBAIC0xODQsNiAmIzQzOzE4NCw3IEBAIHN0cnVjdCBjaGFubmVsIHtcbiBcdHN0cnVjdCBsaXN0X2hlYWQgY2xpc3Q7XHRcdC8qIGxpbmsgaW4gbGlzdCBvZiBjaGFubmVscyBwZXIgdW5pdCAqL1xuIFx0c3BpbmxvY2tfdFx0dXBsO1x0XHQvKiBwcm90ZWN0cyBgcHBwJiMzOTsgYW5kICYjMzk7YnJpZGdlJiMzOTsgKi9cbiBcdHN0cnVjdCBjaGFubmVsIF9fcmN1ICpicmlkZ2U7XHQvKiBcJiMzNDticmlkZ2VkXCYjMzQ7IHBwcCBjaGFubmVsICovXG4mIzQzO1x0c3RydWN0IHJjdV9oZWFkIHJjdTtcdFx0LyogZm9yIFJDVS1kZWZlcnJlZCBmcmVlIG9mIHRoZSBjaGFubmVsICovXG4gI2lmZGVmIENPTkZJR19QUFBfTVVMVElMSU5LXG4gXHR1OFx0XHRhdmFpbDtcdFx0LyogZmxhZyB1c2VkIGluIG11bHRpbGluayBzdHVmZiAqL1xuIFx0dThcdFx0aGFkX2ZyYWc7XHQvKiBcdTAwM2U9IDEgZnJhZ21lbnRzIGhhdmUgYmVlbiBzZW50ICovXG5AQCAtMzU2Miw2ICYjNDM7MzU2MywxOCBAQCBwcHBfZGlzY29ubmVjdF9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiYjNDM7LyogUHVyZ2UgYWZ0ZXIgdGhlIGdyYWNlIHBlcmlvZDogYSBsYXRlIHBwcF9pbnB1dCgpIG1heSBzdGlsbCBxdWV1ZSBhblxuJiM0MzsgKiBza2Igb24gcGNoLVx1MDAzZWZpbGUucnEgYmVmb3JlIHRoZSBsYXN0IFJDVSByZWFkZXIgZHJhaW5zLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcmN1KVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGNoYW5uZWwgKnBjaCA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBjaGFubmVsLCByY3UpO1xuJiM0MztcbiYjNDM7XHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2cGNoLVx1MDAzZWZpbGUueHEpO1xuJiM0MztcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS5ycSk7XG4mIzQzO1x0a2ZyZWUocGNoKTtcbiYjNDM7fVxuJiM0MztcbiAvKlxuICAqIERyb3AgYSByZWZlcmVuY2UgdG8gYSBwcHAgY2hhbm5lbCBhbmQgZnJlZSBpdHMgbWVtb3J5IGlmIHRoZSByZWZjb3VudCByZWFjaGVzXG4gICogemVyby5cbkBAIC0zNTgxLDkgJiM0MzszNTk0LDcgQEAgc3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuIFx0XHRwcl9lcnIoXCYjMzQ7cHBwOiBkZXN0cm95aW5nIHVuZGVhZCBjaGFubmVsICVwICFcXG5cJiMzNDssIHBjaCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbi1cdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS54cSk7XG4tXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2cGNoLVx1MDAzZWZpbGUucnEpO1xuLVx0a2ZyZWUocGNoKTtcbiYjNDM7XHRjYWxsX3JjdShcdTAwMjZwY2gtXHUwMDNlcmN1LCBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBfX2V4aXQgcHBwX2NsZWFudXAodm9pZClcbkBAIC0zNTk2LDYgJiM0MzszNjA3LDcgQEAgc3RhdGljIHZvaWQgX19leGl0IHBwcF9jbGVhbnVwKHZvaWQpXG4gXHRkZXZpY2VfZGVzdHJveShcdTAwMjZwcHBfY2xhc3MsIE1LREVWKFBQUF9NQUpPUiwgMCkpO1xuIFx0Y2xhc3NfdW5yZWdpc3RlcihcdTAwMjZwcHBfY2xhc3MpO1xuIFx0dW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNlKFx1MDAyNnBwcF9uZXRfb3BzKTtcbiYjNDM7XHRyY3VfYmFycmllcigpOyAvKiB3YWl0IGZvciBSQ1UgY2FsbGJhY2tzIGJlZm9yZSBtb2R1bGUgdW5sb2FkICovXG4gfVxuIFxuIC8qXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UFBQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDtwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUmIzM0OywKICAgICYjMzQ7cHBwX3VucmVnaXN0ZXJfY2hhbm5lbCYjMzQ7LAogICAgJiMzNDtwcHBfcmVsZWFzZSYjMzQ7LAogICAgJiMzNDtwcHBfaW9jdGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaW4gUFBQIGNoYW5uZWwgcmVsZWFzZSBieSBkZWZlcnJpbmcgdGhlIGNoYW5uZWwgZnJlZSB1c2luZyBSQ1UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFBQUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJlbWFpbmluZyByYWNlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDIyYTk5Y2E1NTVlY2M1ZjNhOTFkYjdkMjkxNjJhMWUyZGY5MmFiNQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDYgMTA6MTE6MzkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jCmluZGV4IDU3YzY4ZWZhNWZmODFkLi43MTdjMWQzYWE5NTM4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKQEAgLTE4NCw2ICYjNDM7MTg0LDcgQEAgc3RydWN0IGNoYW5uZWwgewogCXN0cnVjdCBsaXN0X2hlYWQgY2xpc3Q7CQkvKiBsaW5rIGluIGxpc3Qgb2YgY2hhbm5lbHMgcGVyIHVuaXQgKi8KIAlzcGlubG9ja190CXVwbDsJCS8qIHByb3RlY3RzIGBwcHAmIzM5OyBhbmQgJiMzOTticmlkZ2UmIzM5OyAqLwogCXN0cnVjdCBjaGFubmVsIF9fcmN1ICpicmlkZ2U7CS8qICYjMzQ7YnJpZGdlZCYjMzQ7IHBwcCBjaGFubmVsICovCiYjNDM7CXN0cnVjdCByY3VfaGVhZCByY3U7CQkvKiBmb3IgUkNVLWRlZmVycmVkIGZyZWUgb2YgdGhlIGNoYW5uZWwgKi8KICNpZmRlZiBDT05GSUdfUFBQX01VTFRJTElOSwogCXU4CQlhdmFpbDsJCS8qIGZsYWcgdXNlZCBpbiBtdWx0aWxpbmsgc3R1ZmYgKi8KIAl1OAkJaGFkX2ZyYWc7CS8qICZndDs9IDEgZnJhZ21lbnRzIGhhdmUgYmVlbiBzZW50ICovCkBAIC0zNTYyLDYgJiM0MzszNTYzLDE4IEBAIHBwcF9kaXNjb25uZWN0X2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaCkKIAlyZXR1cm4gZXJyOwogfQogCiYjNDM7LyogUHVyZ2UgYWZ0ZXIgdGhlIGdyYWNlIHBlcmlvZDogYSBsYXRlIHBwcF9pbnB1dCgpIG1heSBzdGlsbCBxdWV1ZSBhbgomIzQzOyAqIHNrYiBvbiBwY2gtJmd0O2ZpbGUucnEgYmVmb3JlIHRoZSBsYXN0IFJDVSByZWFkZXIgZHJhaW5zLgomIzQzOyAqLwomIzQzO3N0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBjaGFubmVsICpwY2ggPSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgY2hhbm5lbCwgcmN1KTsKJiM0MzsKJiM0MzsJc2tiX3F1ZXVlX3B1cmdlKCZhbXA7cGNoLSZndDtmaWxlLnhxKTsKJiM0MzsJc2tiX3F1ZXVlX3B1cmdlKCZhbXA7cGNoLSZndDtmaWxlLnJxKTsKJiM0MzsJa2ZyZWUocGNoKTsKJiM0Mzt9CiYjNDM7CiAvKgogICogRHJvcCBhIHJlZmVyZW5jZSB0byBhIHBwcCBjaGFubmVsIGFuZCBmcmVlIGl0cyBtZW1vcnkgaWYgdGhlIHJlZmNvdW50IHJlYWNoZXMKICAqIHplcm8uCkBAIC0zNTgxLDkgJiM0MzszNTk0LDcgQEAgc3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKQogCQlwcl9lcnIoJiMzNDtwcHA6IGRlc3Ryb3lpbmcgdW5kZWFkIGNoYW5uZWwgJXAgIVxuJiMzNDssIHBjaCk7CiAJCXJldHVybjsKIAl9Ci0Jc2tiX3F1ZXVlX3B1cmdlKCZhbXA7cGNoLSZndDtmaWxlLnhxKTsKLQlza2JfcXVldWVfcHVyZ2UoJmFtcDtwY2gtJmd0O2ZpbGUucnEpOwotCWtmcmVlKHBjaCk7CiYjNDM7CWNhbGxfcmN1KCZhbXA7cGNoLSZndDtyY3UsIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKQpAQCAtMzU5Niw2ICYjNDM7MzYwNyw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKQogCWRldmljZV9kZXN0cm95KCZhbXA7cHBwX2NsYXNzLCBNS0RFVihQUFBfTUFKT1IsIDApKTsKIAljbGFzc191bnJlZ2lzdGVyKCZhbXA7cHBwX2NsYXNzKTsKIAl1bnJlZ2lzdGVyX3Blcm5ldF9kZXZpY2UoJmFtcDtwcHBfbmV0X29wcyk7CiYjNDM7CXJjdV9iYXJyaWVyKCk7IC8qIHdhaXQgZm9yIFJDVSBjYWxsYmFja3MgYmVmb3JlIG1vZHVsZSB1bmxvYWQgKi8KIH0KIAogLyoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwMwoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQUFAgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNgLiBGcm9tIHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIG1ha2luZyBhIHByZXR0eSBzdGFuZGFyZCBidXQgaW1wb3J0YW50IGZpeCBmb3IgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW8uIFRoZXkmIzM5O3ZlIHJlcGxhY2VkIHRoZSBkaXJlY3QgZnJlZWluZyBvZiB0aGUgUFBQIGNoYW5uZWwgaW4gYHBwcF9yZWxlYXNlX2NoYW5uZWxgIHdpdGggYGNhbGxfcmN1YCwgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEkmIzM5O2QgZXhwZWN0IHRvIHNlZSBpbiBhIHNpdHVhdGlvbiBsaWtlIHRoaXMuIFNtYXJ0IG1vdmUuCgpOb3csIHRoYXQgbWVhbnMgdGhlcmUmIzM5O3MgYSBuZXcgZnVuY3Rpb24sIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgLCB0byBhY3R1YWxseSBoYW5kbGUgdGhlIGRlYWxsb2NhdGlvbiAqYWZ0ZXIqIHRoZSBncmFjZSBwZXJpb2QuIEdvb2QgcHJhY3RpY2UuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgaG93IHRoYXQgaW50ZXJhY3RzIHdpdGggUkNVJiMzOTtzIG1lY2hhbmlzbSwgb2YgY291cnNlLCBidXQgaXQmIzM5O3MgdGhlIHJpZ2h0IGRpcmVjdGlvbi4gSXQgbWFrZXMgc2Vuc2UgdGhhdCB0aGlzIGZ1bmN0aW9uIHB1cmdlcyBxdWV1ZXMgYW5kIHRoZW4gZnJlZXMgdGhlIGNoYW5uZWwgaXRzZWxmLiBUaGV5JiMzOTt2ZSBhbHNvIGFkZGVkIGFuIGByY3VfYmFycmllcigpYCB0byBgcHBwX2NsZWFudXAoKWAsIHdoaWNoIGlzIGNydWNpYWwgdG8gZW5zdXJlIHRoYXQgYW55IG91dHN0YW5kaW5nIFJDVSByZWFkcyBhcmUgY29tcGxldGVkIGJlZm9yZSBjbGVhbnVwLgoKVGhlIHJvb3QgY2F1c2UsIGFzIEkgc2VlIGl0LCBpcyBsaWtlbHkgaW4gdGhlIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlIGNoYW5uZWwgYmVpbmcgcmVsZWFzZWQgYW5kIGBwcHBfaW5wdXQoKWAgcG90ZW50aWFsbHkgc3RpbGwgdHJ5aW5nIHRvIHF1ZXVlIGFuIGBza2JgIG9udG8gYHBjaC0mZ3Q7ZmlsZS5ycWAuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIGFuZCBwYWluZnVsIGJ1ZyB0byB0cmFjayBkb3duLCBzbyBhZGRyZXNzaW5nIGl0IHRoaXMgd2F5IGlzIHRoZSBjb3JyZWN0IGFwcHJvYWNoLgoKQmVmb3JlIEkgZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIGl0c2VsZiwgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZy4gSSYjMzk7bSBndWVzc2luZyBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHdpbGwgaGF2ZSBgQ09ORklHX1BQUGAgZGVmaW5lZC4gSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBjaGFuZ2UgY291bGQgcG90ZW50aWFsbHkgaW1wYWN0IGNvbmZpZ3VyYXRpb25zLgoKSSYjMzk7bGwgYWxzbyBncmVwIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGNvZGViYXNlIGp1c3QgdG8gc2VlIHdoZXJlIGBwcHBfcmVsZWFzZV9jaGFubmVsYCBhbmQgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAgYXJlIGNhbGxlZCBhbmQgZW5zdXJlIHRoaXMgcGF0Y2ggaXMgdGhvcm91Z2guIFRoaXMgc2hvdWxkIGdpdmUgbWUgYSBxdWljayBvdmVydmlldyBvZiBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIGFuZCBzaWRlLWVmZmVjdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTI5ND1zdGF0aWMgaW50IHBwcF9kaXNjb25uZWN0X2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaCk7XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzoyOTU6c3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTI5Ni1zdGF0aWMgaW50IHVuaXRfZ2V0KHN0cnVjdCBpZHIgKnAsIHZvaWQgKnB0ciwgaW50IG1pbik7XG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NDA0PXN0YXRpYyBpbnQgcHBwX3JlbGVhc2Uoc3RydWN0IGlub2RlICp1bnVzZWQsIHN0cnVjdCBmaWxlICpmaWxlKVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTQyMC1cdFx0Y2FzZSBDSEFOTkVMOlxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6NDIxOlx0XHRcdHBwcF9yZWxlYXNlX2NoYW5uZWwoUEZfVE9fQ0hBTk5FTChwZikpO1xuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNDIyLVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTY0Mj1zdGF0aWMgaW50IHBwcF9icmlkZ2VfY2hhbm5lbHMoc3RydWN0IGNoYW5uZWwgKnBjaCwgc3RydWN0IGNoYW5uZWwgKnBjaGIpXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNjc0LVx0aWYgKHBjaGIpXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo2NzU6XHRcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoYik7XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy02NzYtXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NjgwPXN0YXRpYyBpbnQgcHBwX3VuYnJpZGdlX2NoYW5uZWxzKHN0cnVjdCBjaGFubmVsICpwY2gpXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzA2LVx0aWYgKHBjaGJiID09IHBjaClcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjcwNzpcdFx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2gpO1xuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzA4LVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6NzA5Olx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2hiKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTcxMC1cbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYz03MTQ9c3RhdGljIGxvbmcgcHBwX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZylcbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy03ODItXHRcdFx0LyogRHJvcCBlYXJsaWVyIHJlZmNvdW50IG5vdyBicmlkZ2UgZXN0YWJsaXNobWVudCBpcyBjb21wbGV0ZSAqL1xuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6NzgzOlx0XHRcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoYik7XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy03ODQtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9Mjk4OT1wcHBfdW5yZWdpc3Rlcl9jaGFubmVsKHN0cnVjdCBwcHBfY2hhbm5lbCAqY2hhbilcbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zMDE5LVxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6MzAyMDpcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTMwMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTM1NDQ9cHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1NjgtICovXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTY5OnN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSlcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1NzAte1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1ODEtICovXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTgyOnN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaClcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1ODMte1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1OTYtXHR9XG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTk3Olx0Y2FsbF9yY3UoXHUwMDI2cGNoLVx1MDAzZXJjdSwgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlKTtcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1OTgtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDEwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NzMKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2Ygd2hhdCBJJiMzOTttIGxvb2tpbmcgYXQ6CgoqKkluaXRpYWwgRm9jdXM6IFBQUCBDaGFubmVsIE1hbmFnZW1lbnQqKgoKUmlnaHQsIGxldCYjMzk7cyB6ZXJvIGluIG9uIHRoZSBjb3JlIFBQUCBjaGFubmVsIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgdGhlIGxpZmVjeWNsZSBvZiB0aGVzZSBjaGFubmVscywgZnJvbSBhbGxvY2F0aW9uIGFuZCByZWxlYXNlIHRvIGRpc2Nvbm5lY3Rpb24gYW5kIGJyaWRnaW5nLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlc2Uga2V5IGZ1bmN0aW9uczogYHBwcF9yZWxlYXNlX2NoYW5uZWxgLCBgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYCwgYHBwcF9kaXNjb25uZWN0X2NoYW5uZWxgLCBgcHBwX2JyaWRnZV9jaGFubmVsc2AsIGBwcHBfdW5icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX2lvY3RsYCwgYW5kIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYC4gT2YgY291cnNlLCB3ZSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBicm9hZGVyIGBwcHBfcmVsZWFzZWAgZnVuY3Rpb24gYXMgd2VsbCwgd2hpY2ggbGlrZWx5IHRpZXMgaW50byBvdmVyYWxsIHJlc291cmNlIG1hbmFnZW1lbnQuCgpOb3cgSSBuZWVkIHRvIGVuc3VyZSBQUFAgaXMgYWN0dWFsbHkgZW5hYmxlZCBmb3IgdGhpcyB0byBiZSBwcm9kdWN0aXZlLiBUaW1lIHRvIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYENPTkZJR19QUFBgIGlzIHNldCBjb3JyZWN0bHkuIEkmIzM5O2xsIG5lZWQgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGdvaW5nIGZ1cnRoZXIgaWYgUFBQIGl0c2VsZiBpc24mIzM5O3QgY29tcGlsZWQgaW4hCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBQUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo2OmNvbmZpZyBQUFBcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtQUFAgKHBvaW50LXRvLXBvaW50IHByb3RvY29sKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MzU9aWYgUFBQXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0zNi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjM3OmNvbmZpZyBQUFBfQlNEQ09NUFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMzgtXHR0cmlzdGF0ZSBcJiMzNDtQUFAgQlNELUNvbXByZXNzIGNvbXByZXNzaW9uXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNTQtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo1NTpjb25maWcgUFBQX0RFRkxBVEVcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU2LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIERlZmxhdGUgY29tcHJlc3Npb25cJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy02OC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjY5OmNvbmZpZyBQUFBfRklMVEVSXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy03MC1cdGJvb2wgXCYjMzQ7UFBQIGZpbHRlcmluZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTgwLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6ODE6Y29uZmlnIFBQUF9NUFBFXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy04Mi1cdHRyaXN0YXRlIFwmIzM0O1BQUCBNUFBFIGNvbXByZXNzaW9uIChlbmNyeXB0aW9uKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkxLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6OTI6Y29uZmlnIFBQUF9NVUxUSUxJTktcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkzLVx0Ym9vbCBcJiMzNDtQUFAgbXVsdGlsaW5rIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMDMtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMDQ6Y29uZmlnIFBQUE9BVE1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTEwNS1cdHRyaXN0YXRlIFwmIzM0O1BQUCBvdmVyIEFUTVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExMi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjExMzpjb25maWcgUFBQT1hcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTUtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMTY6Y29uZmlnIFBQUE9FXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTctXHR0cmlzdGF0ZSBcJiMzNDtQUFAgb3ZlciBFdGhlcm5ldFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTEyNz1jaG9pY2Vcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMzgtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMzk6Y29uZmlnIFBQUE9FX0hBU0hfQklUU18xXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDAtXHRib29sIFwmIzM0OzEgYml0ICgyIGJ1Y2tldHMpXCYjMzQ7XG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDEtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNDI6Y29uZmlnIFBQUE9FX0hBU0hfQklUU18yXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0OzIgYml0cyAoNCBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ0LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ1OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfNFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ2LVx0Ym9vbCBcJiMzNDs0IGJpdHMgKDE2IGJ1Y2tldHMpXCYjMzQ7XG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDctXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNDg6Y29uZmlnIFBQUE9FX0hBU0hfQklUU184XG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDktXHRib29sIFwmIzM0OzggYml0cyAoMjU2IGJ1Y2tldHMpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTUxPWVuZGNob2ljZVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTUyLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTUzOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE1NC1cdGludFxuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE2MT1jb25maWcgUFBUUFxuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3Mi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE3Mzpjb25maWcgUFBQT0wyVFBcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3NC1cdHRyaXN0YXRlIFwmIzM0O1BQUCBvdmVyIEwyVFBcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xODE9aWYgVFRZXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xODItXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxODM6Y29uZmlnIFBQUF9BU1lOQ1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTg0LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIHN1cHBvcnQgZm9yIGFzeW5jIHNlcmlhbCBwb3J0c1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE5NS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE5Njpjb25maWcgUFBQX1NZTkNfVFRZXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTctXHR0cmlzdGF0ZSBcJiMzNDtQUFAgc3VwcG9ydCBmb3Igc3luYyB0dHkgcG9ydHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjg2CgkJCQkJCQlvdXRwdXQ6IDExOAoJCQkJCQkJdGhvdWdodHM6IDQyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBQUFAgQ2hhbm5lbCBSZWxlYXNlIGluIGRyaXZlcnMvbmV0L3BwcCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGNvbmZpZyBzZWVtcyB0byBiZSBgUFBQYCwgdGhhdCYjMzk7cyB0aGUgb2J2aW91cyBvbmUuIE5vdywgYXJlIHRoZXJlIGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gVGhlIHBhdGNoIGlzIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNgLCBzbyBpdCBzZWVtcyBwcmV0dHkgZm9jdXNlZC4gTGV0JiMzOTtzIHNlZS4uLgoKTXkgZm9jdXMgaXMgb24gYSBmZXcga2V5IHN5bWJvbHM6IGBwcHBfcmVsZWFzZV9jaGFubmVsYCwgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAsIGBwcHBfZGlzY29ubmVjdF9jaGFubmVsYCwgYHBwcF9icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX3VuYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF9pb2N0bGAgYW5kIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYCwgYHBwcF9yZWxlYXNlYC4KCldhaXQsIGEgc2Vjb25kIGxvb2sgcmV2ZWFscyBgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYCBpcyBzdGF0aWMgYW5kIGFkZGVkIGluIHRoaXMgcGF0Y2ghIEFsc28gYHBwcF9yZWxlYXNlX2NoYW5uZWxgLCBgcHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbGAsIGBwcHBfYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF91bmJyaWRnZV9jaGFubmVsc2AsIGBwcHBfaW9jdGxgIGFuZCBgcHBwX3JlbGVhc2VgIGFyZSBhbGwgc3RhdGljLiBCdXQgYHBwcF91bnJlZ2lzdGVyX2NoYW5uZWxgIGlzIGV4cG9ydGVkLgoKQWxyaWdodCwgc28gdGhlIGZ1enppbmcgdGFyZ2V0cyB3aWxsIGJlIGBwcHBfcmVsZWFzZV9jaGFubmVsYCwgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAsIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYCwgYHBwcF9yZWxlYXNlYCwgYW5kIGBwcHBfaW9jdGxgLgoKTGV0JiMzOTtzIGRvdWJsZS1jaGVjayBxdWlja2x5IHRoYXQgYHBwcF9yZWxlYXNlX2NoYW5uZWxgIGlzIGluZGVlZCBzdGF0aWMuIE9rYXksIGNvbmZpcm1lZC4gQ2FuIHdlIGZ1enogc3RhdGljIGZ1bmN0aW9ucz8gWWVzLCBvZiBjb3Vyc2UuIFN5emthbGxlciBjYW4gaGFuZGxlIHRoYXQgaWYgdGhleSBhcmUgcmVhY2hhYmxlLiBUaGlzIHBhdGNoIGFkZHJlc3NlcyBhIGZ1bmN0aW9uYWwgaXNzdWUg4oCTIG1vc3QgbGlrZWx5IGEgdXNlLWFmdGVyLWZyZWUgb3IgYSBzaW1pbGFyIG1lbW9yeSBzYWZldHkgcHJvYmxlbSBpbiBQUFAgY2hhbm5lbCByZWxlYXNlLgoKVGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEl0IGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGlzc3VlIGJ5IGRlZmVycmluZyB0aGUgY2hhbm5lbCBmcmVlIHVzaW5nIFJDVS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFBQUCBsb2dpYywgc28gd2UgbmVlZCB0byBmdXp6IGl0IHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciBhbnkgcmVtYWluaW5nIHJhY2VzLgoKQ29uZmlnczogYFBQUGAKCkZvY3VzIHN5bWJvbHM6CmBwcHBfcmVsZWFzZV9jaGFubmVsYApgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYApgcHBwX3VucmVnaXN0ZXJfY2hhbm5lbGAKYHBwcF9yZWxlYXNlYApgcHBwX2lvY3RsYAoKT2theSwgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcF9yZWxlYXNlX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlJiMzNDssCiAgICAmIzM0O3BwcF91bnJlZ2lzdGVyX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7cHBwX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcF9yZWxlYXNlX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlJiMzNDssCiAgICAmIzM0O3BwcF91bnJlZ2lzdGVyX2NoYW5uZWwmIzM0OywKICAgICYjMzQ7cHBwX3JlbGVhc2UmIzM0OywKICAgICYjMzQ7cHBwX2lvY3RsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo0MS4yODg4NTM0MzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzI3MzEzMjg5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQUFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsXCIsXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVcIixcbiAgICBcInBwcF91bnJlZ2lzdGVyX2NoYW5uZWxcIixcbiAgICBcInBwcF9yZWxlYXNlXCIsXG4gICAgXCJwcHBfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpbiBQUFAgY2hhbm5lbCByZWxlYXNlIGJ5IGRlZmVycmluZyB0aGUgY2hhbm5lbCBmcmVlIHVzaW5nIFJDVS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgUFBQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmVtYWluaW5nIHJhY2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo0MS4yODg4NjA0NTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MDA0NDkwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQyMmE5OWNhNTU1ZWNjNWYzYTkxZGI3ZDI5MTYyYTFlMmRmOTJhYjVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgNiAxMDoxMTozOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXFxuaW5kZXggNTdjNjhlZmE1ZmY4MWQuLjcxN2MxZDNhYTk1MzgwIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcXG5AQCAtMTg0LDYgKzE4NCw3IEBAIHN0cnVjdCBjaGFubmVsIHtcXG4gXFx0c3RydWN0IGxpc3RfaGVhZCBjbGlzdDtcXHRcXHQvKiBsaW5rIGluIGxpc3Qgb2YgY2hhbm5lbHMgcGVyIHVuaXQgKi9cXG4gXFx0c3BpbmxvY2tfdFxcdHVwbDtcXHRcXHQvKiBwcm90ZWN0cyBgcHBwJyBhbmQgJ2JyaWRnZScgKi9cXG4gXFx0c3RydWN0IGNoYW5uZWwgX19yY3UgKmJyaWRnZTtcXHQvKiBcXFwiYnJpZGdlZFxcXCIgcHBwIGNoYW5uZWwgKi9cXG4rXFx0c3RydWN0IHJjdV9oZWFkIHJjdTtcXHRcXHQvKiBmb3IgUkNVLWRlZmVycmVkIGZyZWUgb2YgdGhlIGNoYW5uZWwgKi9cXG4gI2lmZGVmIENPTkZJR19QUFBfTVVMVElMSU5LXFxuIFxcdHU4XFx0XFx0YXZhaWw7XFx0XFx0LyogZmxhZyB1c2VkIGluIG11bHRpbGluayBzdHVmZiAqL1xcbiBcXHR1OFxcdFxcdGhhZF9mcmFnO1xcdC8qIFxcdTAwM2U9IDEgZnJhZ21lbnRzIGhhdmUgYmVlbiBzZW50ICovXFxuQEAgLTM1NjIsNiArMzU2MywxOCBAQCBwcHBfZGlzY29ubmVjdF9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXFxuIFxcdHJldHVybiBlcnI7XFxuIH1cXG4gXFxuKy8qIFB1cmdlIGFmdGVyIHRoZSBncmFjZSBwZXJpb2Q6IGEgbGF0ZSBwcHBfaW5wdXQoKSBtYXkgc3RpbGwgcXVldWUgYW5cXG4rICogc2tiIG9uIHBjaC1cXHUwMDNlZmlsZS5ycSBiZWZvcmUgdGhlIGxhc3QgUkNVIHJlYWRlciBkcmFpbnMuXFxuKyAqL1xcbitzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpXFxuK3tcXG4rXFx0c3RydWN0IGNoYW5uZWwgKnBjaCA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBjaGFubmVsLCByY3UpO1xcbitcXG4rXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZwY2gtXFx1MDAzZWZpbGUueHEpO1xcbitcXHRza2JfcXVldWVfcHVyZ2UoXFx1MDAyNnBjaC1cXHUwMDNlZmlsZS5ycSk7XFxuK1xcdGtmcmVlKHBjaCk7XFxuK31cXG4rXFxuIC8qXFxuICAqIERyb3AgYSByZWZlcmVuY2UgdG8gYSBwcHAgY2hhbm5lbCBhbmQgZnJlZSBpdHMgbWVtb3J5IGlmIHRoZSByZWZjb3VudCByZWFjaGVzXFxuICAqIHplcm8uXFxuQEAgLTM1ODEsOSArMzU5NCw3IEBAIHN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWwoc3RydWN0IGNoYW5uZWwgKnBjaClcXG4gXFx0XFx0cHJfZXJyKFxcXCJwcHA6IGRlc3Ryb3lpbmcgdW5kZWFkIGNoYW5uZWwgJXAgIVxcXFxuXFxcIiwgcGNoKTtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuLVxcdHNrYl9xdWV1ZV9wdXJnZShcXHUwMDI2cGNoLVxcdTAwM2VmaWxlLnhxKTtcXG4tXFx0c2tiX3F1ZXVlX3B1cmdlKFxcdTAwMjZwY2gtXFx1MDAzZWZpbGUucnEpO1xcbi1cXHRrZnJlZShwY2gpO1xcbitcXHRjYWxsX3JjdShcXHUwMDI2cGNoLVxcdTAwM2VyY3UsIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZSk7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKVxcbkBAIC0zNTk2LDYgKzM2MDcsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgcHBwX2NsZWFudXAodm9pZClcXG4gXFx0ZGV2aWNlX2Rlc3Ryb3koXFx1MDAyNnBwcF9jbGFzcywgTUtERVYoUFBQX01BSk9SLCAwKSk7XFxuIFxcdGNsYXNzX3VucmVnaXN0ZXIoXFx1MDAyNnBwcF9jbGFzcyk7XFxuIFxcdHVucmVnaXN0ZXJfcGVybmV0X2RldmljZShcXHUwMDI2cHBwX25ldF9vcHMpO1xcbitcXHRyY3VfYmFycmllcigpOyAvKiB3YWl0IGZvciBSQ1UgY2FsbGJhY2tzIGJlZm9yZSBtb2R1bGUgdW5sb2FkICovXFxuIH1cXG4gXFxuIC8qXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjExOjQxLjg1OTg0NjI1MVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY3MDIxMjUyMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFBQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHBwX3JlbGVhc2VfY2hhbm5lbFwiLFxuICAgIFwicHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlXCIsXG4gICAgXCJwcHBfdW5yZWdpc3Rlcl9jaGFubmVsXCIsXG4gICAgXCJwcHBfcmVsZWFzZVwiLFxuICAgIFwicHBwX2lvY3RsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgaW4gUFBQIGNoYW5uZWwgcmVsZWFzZSBieSBkZWZlcnJpbmcgdGhlIGNoYW5uZWwgZnJlZSB1c2luZyBSQ1UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFBQUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIHJlbWFpbmluZyByYWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0MjJhOTljYTU1NWVjYzVmM2E5MWRiN2QyOTE2MmExZTJkZjkyYWI1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxMDoxMTozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcbmluZGV4IDU3YzY4ZWZhNWZmODFkLi43MTdjMWQzYWE5NTM4MCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jXG4rKysgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY1xuQEAgLTE4NCw2ICsxODQsNyBAQCBzdHJ1Y3QgY2hhbm5lbCB7XG4gXHRzdHJ1Y3QgbGlzdF9oZWFkIGNsaXN0O1x0XHQvKiBsaW5rIGluIGxpc3Qgb2YgY2hhbm5lbHMgcGVyIHVuaXQgKi9cbiBcdHNwaW5sb2NrX3RcdHVwbDtcdFx0LyogcHJvdGVjdHMgYHBwcCcgYW5kICdicmlkZ2UnICovXG4gXHRzdHJ1Y3QgY2hhbm5lbCBfX3JjdSAqYnJpZGdlO1x0LyogXCJicmlkZ2VkXCIgcHBwIGNoYW5uZWwgKi9cbitcdHN0cnVjdCByY3VfaGVhZCByY3U7XHRcdC8qIGZvciBSQ1UtZGVmZXJyZWQgZnJlZSBvZiB0aGUgY2hhbm5lbCAqL1xuICNpZmRlZiBDT05GSUdfUFBQX01VTFRJTElOS1xuIFx0dThcdFx0YXZhaWw7XHRcdC8qIGZsYWcgdXNlZCBpbiBtdWx0aWxpbmsgc3R1ZmYgKi9cbiBcdHU4XHRcdGhhZF9mcmFnO1x0LyogXHUwMDNlPSAxIGZyYWdtZW50cyBoYXZlIGJlZW4gc2VudCAqL1xuQEAgLTM1NjIsNiArMzU2MywxOCBAQCBwcHBfZGlzY29ubmVjdF9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbisvKiBQdXJnZSBhZnRlciB0aGUgZ3JhY2UgcGVyaW9kOiBhIGxhdGUgcHBwX2lucHV0KCkgbWF5IHN0aWxsIHF1ZXVlIGFuXG4rICogc2tiIG9uIHBjaC1cdTAwM2VmaWxlLnJxIGJlZm9yZSB0aGUgbGFzdCBSQ1UgcmVhZGVyIGRyYWlucy5cbisgKi9cbitzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3UpXG4re1xuK1x0c3RydWN0IGNoYW5uZWwgKnBjaCA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCBjaGFubmVsLCByY3UpO1xuK1xuK1x0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNnBjaC1cdTAwM2VmaWxlLnhxKTtcbitcdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS5ycSk7XG4rXHRrZnJlZShwY2gpO1xuK31cbitcbiAvKlxuICAqIERyb3AgYSByZWZlcmVuY2UgdG8gYSBwcHAgY2hhbm5lbCBhbmQgZnJlZSBpdHMgbWVtb3J5IGlmIHRoZSByZWZjb3VudCByZWFjaGVzXG4gICogemVyby5cbkBAIC0zNTgxLDkgKzM1OTQsNyBAQCBzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXG4gXHRcdHByX2VycihcInBwcDogZGVzdHJveWluZyB1bmRlYWQgY2hhbm5lbCAlcCAhXFxuXCIsIHBjaCk7XG4gXHRcdHJldHVybjtcbiBcdH1cbi1cdHNrYl9xdWV1ZV9wdXJnZShcdTAwMjZwY2gtXHUwMDNlZmlsZS54cSk7XG4tXHRza2JfcXVldWVfcHVyZ2UoXHUwMDI2cGNoLVx1MDAzZWZpbGUucnEpO1xuLVx0a2ZyZWUocGNoKTtcbitcdGNhbGxfcmN1KFx1MDAyNnBjaC1cdTAwM2VyY3UsIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZSk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKVxuQEAgLTM1OTYsNiArMzYwNyw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBwcHBfY2xlYW51cCh2b2lkKVxuIFx0ZGV2aWNlX2Rlc3Ryb3koXHUwMDI2cHBwX2NsYXNzLCBNS0RFVihQUFBfTUFKT1IsIDApKTtcbiBcdGNsYXNzX3VucmVnaXN0ZXIoXHUwMDI2cHBwX2NsYXNzKTtcbiBcdHVucmVnaXN0ZXJfcGVybmV0X2RldmljZShcdTAwMjZwcHBfbmV0X29wcyk7XG4rXHRyY3VfYmFycmllcigpOyAvKiB3YWl0IGZvciBSQ1UgY2FsbGJhY2tzIGJlZm9yZSBtb2R1bGUgdW5sb2FkICovXG4gfVxuIFxuIC8qXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo0MS44NTk4NDg4MjJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzU4NTkxNzMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBQUCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNgLiBGcm9tIHRoZSBkaWZmLCBpdCBsb29rcyBsaWtlIHRoZXkncmUgbWFraW5nIGEgcHJldHR5IHN0YW5kYXJkIGJ1dCBpbXBvcnRhbnQgZml4IGZvciBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpby4gVGhleSd2ZSByZXBsYWNlZCB0aGUgZGlyZWN0IGZyZWVpbmcgb2YgdGhlIFBQUCBjaGFubmVsIGluIGBwcHBfcmVsZWFzZV9jaGFubmVsYCB3aXRoIGBjYWxsX3JjdWAsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJJ2QgZXhwZWN0IHRvIHNlZSBpbiBhIHNpdHVhdGlvbiBsaWtlIHRoaXMuIFNtYXJ0IG1vdmUuXG5cbk5vdywgdGhhdCBtZWFucyB0aGVyZSdzIGEgbmV3IGZ1bmN0aW9uLCBgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlYCwgdG8gYWN0dWFsbHkgaGFuZGxlIHRoZSBkZWFsbG9jYXRpb24gKmFmdGVyKiB0aGUgZ3JhY2UgcGVyaW9kLiBHb29kIHByYWN0aWNlLiBJJ2xsIG5lZWQgdG8gY2hlY2sgaG93IHRoYXQgaW50ZXJhY3RzIHdpdGggUkNVJ3MgbWVjaGFuaXNtLCBvZiBjb3Vyc2UsIGJ1dCBpdCdzIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0IG1ha2VzIHNlbnNlIHRoYXQgdGhpcyBmdW5jdGlvbiBwdXJnZXMgcXVldWVzIGFuZCB0aGVuIGZyZWVzIHRoZSBjaGFubmVsIGl0c2VsZi4gVGhleSd2ZSBhbHNvIGFkZGVkIGFuIGByY3VfYmFycmllcigpYCB0byBgcHBwX2NsZWFudXAoKWAsIHdoaWNoIGlzIGNydWNpYWwgdG8gZW5zdXJlIHRoYXQgYW55IG91dHN0YW5kaW5nIFJDVSByZWFkcyBhcmUgY29tcGxldGVkIGJlZm9yZSBjbGVhbnVwLlxuXG5UaGUgcm9vdCBjYXVzZSwgYXMgSSBzZWUgaXQsIGlzIGxpa2VseSBpbiB0aGUgcmFjZSBjb25kaXRpb24gYmV0d2VlbiB0aGUgY2hhbm5lbCBiZWluZyByZWxlYXNlZCBhbmQgYHBwcF9pbnB1dCgpYCBwb3RlbnRpYWxseSBzdGlsbCB0cnlpbmcgdG8gcXVldWUgYW4gYHNrYmAgb250byBgcGNoLVx1MDAzZWZpbGUucnFgLiBUaGF0J3MgYSBjbGFzc2ljIGFuZCBwYWluZnVsIGJ1ZyB0byB0cmFjayBkb3duLCBzbyBhZGRyZXNzaW5nIGl0IHRoaXMgd2F5IGlzIHRoZSBjb3JyZWN0IGFwcHJvYWNoLlxuXG5CZWZvcmUgSSBkaWcgZGVlcGVyIGludG8gdGhlIGNvZGUgaXRzZWxmLCBJJ2xsIHF1aWNrbHkgY2hlY2sgdGhlIEtjb25maWcuIEknbSBndWVzc2luZyBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHdpbGwgaGF2ZSBgQ09ORklHX1BQUGAgZGVmaW5lZC4gSSBuZWVkIHRvIGtub3cgaWYgdGhpcyBjaGFuZ2UgY291bGQgcG90ZW50aWFsbHkgaW1wYWN0IGNvbmZpZ3VyYXRpb25zLlxuXG5JJ2xsIGFsc28gZ3JlcCB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBjb2RlYmFzZSBqdXN0IHRvIHNlZSB3aGVyZSBgcHBwX3JlbGVhc2VfY2hhbm5lbGAgYW5kIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgIGFyZSBjYWxsZWQgYW5kIGVuc3VyZSB0aGlzIHBhdGNoIGlzIHRob3JvdWdoLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgcXVpY2sgb3ZlcnZpZXcgb2YgcG90ZW50aWFsIGludGVyYWN0aW9ucyBhbmQgc2lkZS1lZmZlY3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzAzLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6MTE6NDcuMjE4NDQzMDA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyMDIxNjk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBwcF9yZWxlYXNlX2NoYW5uZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9Mjk0PXN0YXRpYyBpbnQgcHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzoyOTU6c3RhdGljIHZvaWQgcHBwX3JlbGVhc2VfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0yOTYtc3RhdGljIGludCB1bml0X2dldChzdHJ1Y3QgaWRyICpwLCB2b2lkICpwdHIsIGludCBtaW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NDA0PXN0YXRpYyBpbnQgcHBwX3JlbGVhc2Uoc3RydWN0IGlub2RlICp1bnVzZWQsIHN0cnVjdCBmaWxlICpmaWxlKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNDIwLVxcdFxcdGNhc2UgQ0hBTk5FTDpcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo0MjE6XFx0XFx0XFx0cHBwX3JlbGVhc2VfY2hhbm5lbChQRl9UT19DSEFOTkVMKHBmKSk7XFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNDIyLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM9NjQyPXN0YXRpYyBpbnQgcHBwX2JyaWRnZV9jaGFubmVscyhzdHJ1Y3QgY2hhbm5lbCAqcGNoLCBzdHJ1Y3QgY2hhbm5lbCAqcGNoYilcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTY3NC1cXHRpZiAocGNoYilcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo2NzU6XFx0XFx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2hiKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy02NzYtXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYz02ODA9c3RhdGljIGludCBwcHBfdW5icmlkZ2VfY2hhbm5lbHMoc3RydWN0IGNoYW5uZWwgKnBjaClcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTcwNi1cXHRpZiAocGNoYmIgPT0gcGNoKVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjcwNzpcXHRcXHRwcHBfcmVsZWFzZV9jaGFubmVsKHBjaCk7XFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzA4LVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjcwOTpcXHRwcHBfcmVsZWFzZV9jaGFubmVsKHBjaGIpO1xcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTcxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTcxND1zdGF0aWMgbG9uZyBwcHBfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtNzgyLVxcdFxcdFxcdC8qIERyb3AgZWFybGllciByZWZjb3VudCBub3cgYnJpZGdlIGVzdGFibGlzaG1lbnQgaXMgY29tcGxldGUgKi9cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzo3ODM6XFx0XFx0XFx0cHBwX3JlbGVhc2VfY2hhbm5lbChwY2hiKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy03ODQtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYz0yOTg5PXBwcF91bnJlZ2lzdGVyX2NoYW5uZWwoc3RydWN0IHBwcF9jaGFubmVsICpjaGFuKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtMzAxOS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozMDIwOlxcdHBwcF9yZWxlYXNlX2NoYW5uZWwocGNoKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zMDIxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jPTM1NDQ9cHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbChzdHJ1Y3QgY2hhbm5lbCAqcGNoKVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtMzU2OC0gKi9cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTY5OnN0YXRpYyB2b2lkIHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJjdSlcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zNTcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jLTM1ODEtICovXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6MzU4MjpzdGF0aWMgdm9pZCBwcHBfcmVsZWFzZV9jaGFubmVsKHN0cnVjdCBjaGFubmVsICpwY2gpXFxuZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMtMzU4My17XFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zNTk2LVxcdH1cXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzozNTk3OlxcdGNhbGxfcmN1KFxcdTAwMjZwY2gtXFx1MDAzZXJjdSwgcHBwX3JlbGVhc2VfY2hhbm5lbF9mcmVlKTtcXG5kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYy0zNTk4LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTA6MTE6NDcuMzEwNDY5ODMyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc0MTU2OTkxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGJyZWFrZG93biBvZiB3aGF0IEknbSBsb29raW5nIGF0OlxuXG4qKkluaXRpYWwgRm9jdXM6IFBQUCBDaGFubmVsIE1hbmFnZW1lbnQqKlxuXG5SaWdodCwgbGV0J3MgemVybyBpbiBvbiB0aGUgY29yZSBQUFAgY2hhbm5lbCBtYW5hZ2VtZW50IGZ1bmN0aW9ucy4gSSdtIHRoaW5raW5nIGFib3V0IGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgdGhlIGxpZmVjeWNsZSBvZiB0aGVzZSBjaGFubmVscywgZnJvbSBhbGxvY2F0aW9uIGFuZCByZWxlYXNlIHRvIGRpc2Nvbm5lY3Rpb24gYW5kIGJyaWRnaW5nLiBTcGVjaWZpY2FsbHksIEknbSBmb2N1c2luZyBvbiB0aGVzZSBrZXkgZnVuY3Rpb25zOiBgcHBwX3JlbGVhc2VfY2hhbm5lbGAsIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgLCBgcHBwX2Rpc2Nvbm5lY3RfY2hhbm5lbGAsIGBwcHBfYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF91bmJyaWRnZV9jaGFubmVsc2AsIGBwcHBfaW9jdGxgLCBhbmQgYHBwcF91bnJlZ2lzdGVyX2NoYW5uZWxgLiBPZiBjb3Vyc2UsIHdlIG5lZWQgdG8gY29uc2lkZXIgdGhlIGJyb2FkZXIgYHBwcF9yZWxlYXNlYCBmdW5jdGlvbiBhcyB3ZWxsLCB3aGljaCBsaWtlbHkgdGllcyBpbnRvIG92ZXJhbGwgcmVzb3VyY2UgbWFuYWdlbWVudC5cblxuTm93IEkgbmVlZCB0byBlbnN1cmUgUFBQIGlzIGFjdHVhbGx5IGVuYWJsZWQgZm9yIHRoaXMgdG8gYmUgcHJvZHVjdGl2ZS4gVGltZSB0byBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBDT05GSUdfUFBQYCBpcyBzZXQgY29ycmVjdGx5LiBJJ2xsIG5lZWQgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvcHBwL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGdvaW5nIGZ1cnRoZXIgaWYgUFBQIGl0c2VsZiBpc24ndCBjb21waWxlZCBpbiFcblxuXG4iLCJJbnB1dFRva2VucyI6Mzg3MywiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjExOjUxLjA1MjYwNzYyM1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODg4MDc0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFBQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BwcC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6Njpjb25maWcgUFBQXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiUFBQIChwb2ludC10by1wb2ludCBwcm90b2NvbCkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTM1PWlmIFBQUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTM2LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjM3OmNvbmZpZyBQUFBfQlNEQ09NUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTM4LVxcdHRyaXN0YXRlIFxcXCJQUFAgQlNELUNvbXByZXNzIGNvbXByZXNzaW9uXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNTQtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6NTU6Y29uZmlnIFBQUF9ERUZMQVRFXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNTYtXFx0dHJpc3RhdGUgXFxcIlBQUCBEZWZsYXRlIGNvbXByZXNzaW9uXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNjgtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6Njk6Y29uZmlnIFBQUF9GSUxURVJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy03MC1cXHRib29sIFxcXCJQUFAgZmlsdGVyaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctODAtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6ODE6Y29uZmlnIFBQUF9NUFBFXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctODItXFx0dHJpc3RhdGUgXFxcIlBQUCBNUFBFIGNvbXByZXNzaW9uIChlbmNyeXB0aW9uKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkxLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjkyOmNvbmZpZyBQUFBfTVVMVElMSU5LXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctOTMtXFx0Ym9vbCBcXFwiUFBQIG11bHRpbGluayBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTAzLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjEwNDpjb25maWcgUFBQT0FUTVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTEwNS1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgQVRNXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTEyLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjExMzpjb25maWcgUFBQT1hcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExNy1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgRXRoZXJuZXRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMzgtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0MC1cXHRib29sIFxcXCIxIGJpdCAoMiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDEtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0My1cXHRib29sIFxcXCIyIGJpdHMgKDQgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDYtXFx0Ym9vbCBcXFwiNCBiaXRzICgxNiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDctXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0OS1cXHRib29sIFxcXCI4IGJpdHMgKDI1NiBidWNrZXRzKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTUzOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXFx0aW50XFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xNjE9Y29uZmlnIFBQVFBcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNzM6Y29uZmlnIFBQUE9MMlRQXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJQUFAgb3ZlciBMMlRQXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTgxPWlmIFRUWVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE4Mi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxODM6Y29uZmlnIFBQUF9BU1lOQ1xcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE4NC1cXHR0cmlzdGF0ZSBcXFwiUFBQIHN1cHBvcnQgZm9yIGFzeW5jIHNlcmlhbCBwb3J0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE5NS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxOTY6Y29uZmlnIFBQUF9TWU5DX1RUWVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE5Ny1cXHR0cmlzdGF0ZSBcXFwiUFBQIHN1cHBvcnQgZm9yIHN5bmMgdHR5IHBvcnRzXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxMDoxMTo1MS4xMzE0OTMwODlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjQyNzA3MjY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIFBQUCBDaGFubmVsIFJlbGVhc2UgaW4gZHJpdmVycy9uZXQvcHBwKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGNvbmZpZyBzZWVtcyB0byBiZSBgUFBQYCwgdGhhdCdzIHRoZSBvYnZpb3VzIG9uZS4gTm93LCBhcmUgdGhlcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBUaGUgcGF0Y2ggaXMgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuY2AsIHNvIGl0IHNlZW1zIHByZXR0eSBmb2N1c2VkLiBMZXQncyBzZWUuLi5cblxuTXkgZm9jdXMgaXMgb24gYSBmZXcga2V5IHN5bWJvbHM6IGBwcHBfcmVsZWFzZV9jaGFubmVsYCwgYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWAsIGBwcHBfZGlzY29ubmVjdF9jaGFubmVsYCwgYHBwcF9icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX3VuYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF9pb2N0bGAgYW5kIGBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYCwgYHBwcF9yZWxlYXNlYC5cblxuV2FpdCwgYSBzZWNvbmQgbG9vayByZXZlYWxzIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgIGlzIHN0YXRpYyBhbmQgYWRkZWQgaW4gdGhpcyBwYXRjaCEgQWxzbyBgcHBwX3JlbGVhc2VfY2hhbm5lbGAsIGBwcHBfZGlzY29ubmVjdF9jaGFubmVsYCwgYHBwcF9icmlkZ2VfY2hhbm5lbHNgLCBgcHBwX3VuYnJpZGdlX2NoYW5uZWxzYCwgYHBwcF9pb2N0bGAgYW5kIGBwcHBfcmVsZWFzZWAgYXJlIGFsbCBzdGF0aWMuIEJ1dCBgcHBwX3VucmVnaXN0ZXJfY2hhbm5lbGAgaXMgZXhwb3J0ZWQuXG5cbkFscmlnaHQsIHNvIHRoZSBmdXp6aW5nIHRhcmdldHMgd2lsbCBiZSBgcHBwX3JlbGVhc2VfY2hhbm5lbGAsIGBwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVgLCBgcHBwX3VucmVnaXN0ZXJfY2hhbm5lbGAsIGBwcHBfcmVsZWFzZWAsIGFuZCBgcHBwX2lvY3RsYC5cblxuTGV0J3MgZG91YmxlLWNoZWNrIHF1aWNrbHkgdGhhdCBgcHBwX3JlbGVhc2VfY2hhbm5lbGAgaXMgaW5kZWVkIHN0YXRpYy4gT2theSwgY29uZmlybWVkLiBDYW4gd2UgZnV6eiBzdGF0aWMgZnVuY3Rpb25zPyBZZXMsIG9mIGNvdXJzZS4gU3l6a2FsbGVyIGNhbiBoYW5kbGUgdGhhdCBpZiB0aGV5IGFyZSByZWFjaGFibGUuIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgZnVuY3Rpb25hbCBpc3N1ZSDigJMgbW9zdCBsaWtlbHkgYSB1c2UtYWZ0ZXItZnJlZSBvciBhIHNpbWlsYXIgbWVtb3J5IHNhZmV0eSBwcm9ibGVtIGluIFBQUCBjaGFubmVsIHJlbGVhc2UuXG5cblRoaXMgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLiBJdCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpc3N1ZSBieSBkZWZlcnJpbmcgdGhlIGNoYW5uZWwgZnJlZSB1c2luZyBSQ1UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBQUFAgbG9naWMsIHNvIHdlIG5lZWQgdG8gZnV6eiBpdCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgYW55IHJlbWFpbmluZyByYWNlcy5cblxuQ29uZmlnczogYFBQUGBcblxuRm9jdXMgc3ltYm9sczpcbmBwcHBfcmVsZWFzZV9jaGFubmVsYFxuYHBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZWBcbmBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsYFxuYHBwcF9yZWxlYXNlYFxuYHBwcF9pb2N0bGBcblxuT2theSwgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyODYsIk91dHB1dFRva2VucyI6MTE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDEwOjExOjU4LjM3NDIwMjYzNFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg3NzYyMjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQUFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsXCIsXG4gICAgXCJwcHBfcmVsZWFzZV9jaGFubmVsX2ZyZWVcIixcbiAgICBcInBwcF91bnJlZ2lzdGVyX2NoYW5uZWxcIixcbiAgICBcInBwcF9yZWxlYXNlXCIsXG4gICAgXCJwcHBfaW9jdGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBpbiBQUFAgY2hhbm5lbCByZWxlYXNlIGJ5IGRlZmVycmluZyB0aGUgY2hhbm5lbCBmcmVlIHVzaW5nIFJDVS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgUFBQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgcmVtYWluaW5nIHJhY2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBQUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBwcF9yZWxlYXNlX2NoYW5uZWxcIixcbiAgICBcInBwcF9yZWxlYXNlX2NoYW5uZWxfZnJlZVwiLFxuICAgIFwicHBwX3VucmVnaXN0ZXJfY2hhbm5lbFwiLFxuICAgIFwicHBwX3JlbGVhc2VcIixcbiAgICBcInBwcF9pb2N0bFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIGluIFBQUCBjaGFubmVsIHJlbGVhc2UgYnkgZGVmZXJyaW5nIHRoZSBjaGFubmVsIGZyZWUgdXNpbmcgUkNVLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBQUFAgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciByZW1haW5pbmcgcmFjZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowqnvjw[1] Phase: Succeeded StartedAt: 2026-07-06 10:12:22 +0000 UTC FinishedAt: 2026-07-06 10:12:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-06 10:12:22 +0000 UTC FinishedAt: 2026-07-06 10:12:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2] Phase: Succeeded StartedAt: 2026-07-06 10:12:22 +0000 UTC FinishedAt: 2026-07-06 14:33:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:12:22 +0000 UTC FinishedAt: 2026-07-06 14:33:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:12:22 +0000 UTC FinishedAt: 2026-07-06 10:12:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:12:22 +0000 UTC FinishedAt: 2026-07-06 10:12:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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-workflowqnvjw/series-workflowqnvjw-convert-artifact-1411916804/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:12:32 +0000 UTC FinishedAt: 2026-07-06 10:53:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:12:32 +0000 UTC FinishedAt: 2026-07-06 10:53:51 +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:*fa15fe94-7714-43b1-9fe7-185eaa87aacb,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-workflowqnvjw/series-workflowqnvjw-convert-artifact-1411916804/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": "f4cf586c-cf5e-48fb-8a41-fd83628bf3f0", "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-workflowqnvjw/series-workflowqnvjw-build-action-1596713282/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:12:32 +0000 UTC FinishedAt: 2026-07-06 10:53:41 +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:*fa15fe94-7714-43b1-9fe7-185eaa87aacb,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-workflowqnvjw/series-workflowqnvjw-convert-artifact-1411916804/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": "f4cf586c-cf5e-48fb-8a41-fd83628bf3f0", "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-workflowqnvjw/series-workflowqnvjw-build-action-1596713282/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:53:51 +0000 UTC FinishedAt: 2026-07-06 10:53:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:53:51 +0000 UTC FinishedAt: 2026-07-06 10:53:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:53:51 +0000 UTC FinishedAt: 2026-07-06 10:54:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:53:51 +0000 UTC FinishedAt: 2026-07-06 10:54:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-workflowqnvjw/series-workflowqnvjw-convert-artifact-3054601603/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:54:12 +0000 UTC FinishedAt: 2026-07-06 10:56:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:54:12 +0000 UTC FinishedAt: 2026-07-06 10:56:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f4cf586c-cf5e-48fb-8a41-fd83628bf3f0,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-workflowqnvjw/series-workflowqnvjw-build-action-1596713282/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-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:56:17 +0000 UTC FinishedAt: 2026-07-06 10:56:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:56:17 +0000 UTC FinishedAt: 2026-07-06 10:56:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:56:17 +0000 UTC FinishedAt: 2026-07-06 11:29:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:56:17 +0000 UTC FinishedAt: 2026-07-06 11:29:09 +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:*fa15fe94-7714-43b1-9fe7-185eaa87aacb,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-workflowqnvjw/series-workflowqnvjw-convert-artifact-3054601603/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": "94e5b78b-b4c8-424c-b50a-aaf7fff7c998", "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-workflowqnvjw/series-workflowqnvjw-build-action-3254924343/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 10:56:17 +0000 UTC FinishedAt: 2026-07-06 11:28:59 +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:*fa15fe94-7714-43b1-9fe7-185eaa87aacb,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-workflowqnvjw/series-workflowqnvjw-convert-artifact-3054601603/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": "94e5b78b-b4c8-424c-b50a-aaf7fff7c998", "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-workflowqnvjw/series-workflowqnvjw-build-action-3254924343/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:29:09 +0000 UTC FinishedAt: 2026-07-06 11:29:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:29:09 +0000 UTC FinishedAt: 2026-07-06 11:29:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:29:09 +0000 UTC FinishedAt: 2026-07-06 11:31:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:29:09 +0000 UTC FinishedAt: 2026-07-06 11:31:00 +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:*94e5b78b-b4c8-424c-b50a-aaf7fff7c998,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-workflowqnvjw/series-workflowqnvjw-build-action-3254924343/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-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:10 +0000 UTC FinishedAt: 2026-07-06 14:33:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:10 +0000 UTC FinishedAt: 2026-07-06 14:33:28 +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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"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:*f4cf586c-cf5e-48fb-8a41-fd83628bf3f0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*94e5b78b-b4c8-424c-b50a-aaf7fff7c998,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-workflowqnvjw/series-workflowqnvjw-build-action-1596713282/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-workflowqnvjw/series-workflowqnvjw-build-action-3254924343/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:10 +0000 UTC FinishedAt: 2026-07-06 11:31:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:10 +0000 UTC FinishedAt: 2026-07-06 11:31:21 +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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"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-workflowqnvjw/series-workflowqnvjw-convert-artifact-3480751516/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:10 +0000 UTC FinishedAt: 2026-07-06 11:31:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:10 +0000 UTC FinishedAt: 2026-07-06 11:31:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:10 +0000 UTC FinishedAt: 2026-07-06 11:31:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:31 +0000 UTC FinishedAt: 2026-07-06 14:33:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqnvjw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"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":["ppp_release_channel","ppp_release_channel_free","ppp_unregister_channel","ppp_release","ppp_ioctl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d7a8d500d7e42837bd8dce40cb52c97c6e8706a9","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP"],"series_id":"c1e63ae1-9b01-4385-bcda-6ac89e8fbce8","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-06 11:31:31 +0000 UTC FinishedAt: 2026-07-06 14:33:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f4cf586c-cf5e-48fb-8a41-fd83628bf3f0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*94e5b78b-b4c8-424c-b50a-aaf7fff7c998,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-workflowqnvjw/series-workflowqnvjw-build-action-1596713282/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-workflowqnvjw/series-workflowqnvjw-build-action-3254924343/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-workflowqnvjw/series-workflowqnvjw-convert-artifact-3480751516/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,}