Name: series-workflowbj7qx Phase: Succeeded StartedAt: 2026-07-02 10:27:24 +0000 UTC FinishedAt: 2026-07-02 14:44:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[0] Phase: Succeeded StartedAt: 2026-07-02 10:27:24 +0000 UTC FinishedAt: 2026-07-02 10:37:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[0].run-triage Phase: Succeeded StartedAt: 2026-07-02 10:27:24 +0000 UTC FinishedAt: 2026-07-02 10:37:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d6e81529749190123aa0040626c7e5dbc20fdc9a", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d6e81529749190123aa0040626c7e5dbc20fdc9a", "config_name": "upstream-apparmor-kasan.config", "series_id": "1b4ecd17-b820-4915-8f34-6d6869d2e80a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "skb_gro_receive_list" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2tiX2dyb19yZWNlaXZlX2xpc3QmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBpbiBgbmV0L2NvcmUvZ3JvLmNgLCB3aGljaCBpcyBjb3JlIG5ldHdvcmtpbmcgY29kZSBmb3IgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykuIEl0IGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgbWFya2VkIHdpdGggYGZsdXNoYCBmcm9tIGJlaW5nIGFnZ3JlZ2F0ZWQgYWdhaW4uIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6MzY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0OWU3M2M3MzUyMmJkZjgxNTZlZjJiODlmYjQzNWNmNTM1MjAwZjViXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxMDozNjo1MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvY29yZS9ncm8uYyBiL25ldC9jb3JlL2dyby5jXG5pbmRleCAzNWYyZjcwOGYwMTA1Mi4uZGQ2M2NmZTNiZmZmNDEgMTAwNjQ0XG4tLS0gYS9uZXQvY29yZS9ncm8uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2NvcmUvZ3JvLmNcbkBAIC0yMjksNyAmIzQzOzIyOSwxNCBAQCBpbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFxuIGludCBza2JfZ3JvX3JlY2VpdmVfbGlzdChzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRpZiAodW5saWtlbHkocC1cdTAwM2VsZW4gJiM0Mzsgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IDY1NTM2KSlcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFBhY2tldHMgbWFya2VkIHdpdGggTkFQSV9HUk9fQ0Ioc2tiKS1cdTAwM2VmbHVzaCBoYXZlIGFscmVhZHkgZ29uZVxuJiM0MztcdCAqIHRocm91Z2ggR1JPL0xSTyBwcm9jZXNzaW5nIGFuZCBtdXN0IG5vdCBiZSBhZ2dyZWdhdGVkIGFnYWluLlxuJiM0MztcdCAqIFJlLWVudGVyaW5nIGZyYWdfbGlzdCBHUk8gbWF5IGNvcnJ1cHQgdGhlIGZyYWdfbGlzdCBjaGFpbiBhbmRcbiYjNDM7XHQgKiBsYXRlciBjcmFzaCBkdXJpbmcgR1NPIHNlZ21lbnRhaW9udC5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAodW5saWtlbHkocC1cdTAwM2VsZW4gJiM0Mzsgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IDY1NTM2IHx8XG4mIzQzO1x0XHQgICAgIE5BUElfR1JPX0NCKHNrYiktXHUwMDNlZmx1c2gpKVxuIFx0XHRyZXR1cm4gLUUyQklHO1xuIFxuIFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2tiX2dyb19vZmZzZXQoc2tiKSkpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NrYl9ncm9fcmVjZWl2ZV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgaW4gYG5ldC9jb3JlL2dyby5jYCwgd2hpY2ggaXMgY29yZSBuZXR3b3JraW5nIGNvZGUgZm9yIEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkIChHUk8pLiBJdCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBwYWNrZXRzIG1hcmtlZCB3aXRoIGBmbHVzaGAgZnJvbSBiZWluZyBhZ2dyZWdhdGVkIGFnYWluLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OWU3M2M3MzUyMmJkZjgxNTZlZjJiODlmYjQzNWNmNTM1MjAwZjViCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMiAxMDozNjo1MSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dyby5jIGIvbmV0L2NvcmUvZ3JvLmMKaW5kZXggMzVmMmY3MDhmMDEwNTIuLmRkNjNjZmUzYmZmZjQxIDEwMDY0NAotLS0gYS9uZXQvY29yZS9ncm8uYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvY29yZS9ncm8uYwpAQCAtMjI5LDcgJiM0MzsyMjksMTQgQEAgaW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogaW50IHNrYl9ncm9fcmVjZWl2ZV9saXN0KHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCWlmICh1bmxpa2VseShwLSZndDtsZW4gJiM0Mzsgc2tiLSZndDtsZW4gJmd0Oz0gNjU1MzYpKQomIzQzOwkvKgomIzQzOwkgKiBQYWNrZXRzIG1hcmtlZCB3aXRoIE5BUElfR1JPX0NCKHNrYiktJmd0O2ZsdXNoIGhhdmUgYWxyZWFkeSBnb25lCiYjNDM7CSAqIHRocm91Z2ggR1JPL0xSTyBwcm9jZXNzaW5nIGFuZCBtdXN0IG5vdCBiZSBhZ2dyZWdhdGVkIGFnYWluLgomIzQzOwkgKiBSZS1lbnRlcmluZyBmcmFnX2xpc3QgR1JPIG1heSBjb3JydXB0IHRoZSBmcmFnX2xpc3QgY2hhaW4gYW5kCiYjNDM7CSAqIGxhdGVyIGNyYXNoIGR1cmluZyBHU08gc2VnbWVudGFpb250LgomIzQzOwkgKi8KJiM0MzsJaWYgKHVubGlrZWx5KHAtJmd0O2xlbiAmIzQzOyBza2ItJmd0O2xlbiAmZ3Q7PSA2NTUzNiB8fAomIzQzOwkJICAgICBOQVBJX0dST19DQihza2IpLSZndDtmbHVzaCkpCiAJCXJldHVybiAtRTJCSUc7CiAKIAlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBza2JfZ3JvX29mZnNldChza2IpKSkgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTUxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBHUk8gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9jb3JlL2dyby5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGZ1bmN0aW9uLiBGcm9tIHdoYXQgSSYjMzk7bSBzZWVpbmcsIGEgbmV3IGNoZWNrIGhhcyBiZWVuIGFkZGVkIHdpdGhpbiBgc2tiX2dyb19yZWNlaXZlX2xpc3RgOiBgTkFQSV9HUk9fQ0Ioc2tiKS0mZ3Q7Zmx1c2hgLiBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIHRydWUsIHRoZSBmdW5jdGlvbiBub3cgcmV0dXJucyBgLUUyQklHYC4KCk15IGZpcnN0IHRob3VnaHQgaXMsIHdoeSBgLUUyQklHYD8gVGhhdCB1c3VhbGx5IHNpZ25pZmllcyBhICYjMzQ7TWVzc2FnZSB0b28gbG9uZyYjMzQ7IGVycm9yLCB3aGljaCwgaW4gdGhlIGNvbnRleHQgb2YgR1JPLCBpbXBsaWVzIHRoYXQgdGhlIGFnZ3JlZ2F0ZWQgcGFja2V0IGlzIGV4Y2VlZGluZyBzb21lIGtpbmQgb2Ygc2l6ZSBsaW1pdC4gSXMgdGhpcyByZWxhdGVkIHRvIHNvbWUgc29ydCBvZiBoYXJkd2FyZSBvZmZsb2FkIGxpbWl0YXRpb25zPyBPciBpcyBpdCBhIHNvZnR3YXJlLWVuZm9yY2VkIHJlc3RyaWN0aW9uIHRvIHByZXZlbnQgc29tZSBwYXRob2xvZ2ljYWwgR1JPIGJlaGF2aW9yPyBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgdGhlIHN1cnJvdW5kaW5nIGNvbnRleHQgYW5kIHdoeSB0aGUgYGZsdXNoYCBmbGFnIHdvdWxkIGJlIHVzZWQgaW4gdGhpcyB3YXkuCgpJJiMzOTtsbCBuZWVkIHRvIGludmVzdGlnYXRlIGhvdyBgTkFQSV9HUk9fQ0Ioc2tiKS0mZ3Q7Zmx1c2hgIGlzIHNldCBhbmQgd2hhdCB0cmlnZ2VycyBpdC4gVW5kZXJzdGFuZGluZyB0aGUgY2lyY3Vtc3RhbmNlcyB0aGF0IGxlYWQgdG8gdGhpcyBlcnJvciB3aWxsIGJlIGNydWNpYWwgZm9yIGV2YWx1YXRpbmcgdGhlIHBhdGNoJiMzOTtzIGltcGFjdCBvbiBwZXJmb3JtYW5jZSBhbmQgcG90ZW50aWFsbHkgdW5jb3ZlcmluZyBhbnkgc3VidGxlIHNpZGUgZWZmZWN0cy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBjYXNlIGZvciB0aGlzIG5ldyBlcnJvci4gV2hhdCBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgc2V0dGluZyB0aGlzIGZsYWc/IERvZXMgaXQgaW5kaWNhdGUgYW4gZWFybHkgdGVybWluYXRpb24gb2YgYSBHUk8gYWdncmVnYXRpb24gcHJvY2Vzcz8gT3IgZG9lcyBpdCBtZWFuIHRoYXQgcGFja2V0cyBzaG91bGQgbm90IGJlIGFkZGVkIHRvIHRoZSBHUk8gbGlzdD8gSSYjMzk7bGwgaGVhZCBiYWNrIGludG8gYG5ldC9jb3JlL2dyby5jYCB0byB1bmRlcnN0YW5kIHRoZSBjb2RlIGxvZ2ljIGJldHRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtza2JfZ3JvX3JlY2VpdmVfbGlzdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9jb3JlL2dyby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL2dyby5jPTkyPWludCBza2JfZ3JvX3JlY2VpdmUoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L2NvcmUvZ3JvLmMtMjI5LVxubmV0L2NvcmUvZ3JvLmM6MjMwOmludCBza2JfZ3JvX3JlY2VpdmVfbGlzdChzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbm5ldC9jb3JlL2dyby5jLTIzMS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUyMAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgQ2FsbHMqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHVzYWdlIG9mIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAuIFRoZSBiZXN0IHN0YXJ0aW5nIHBvaW50LCBuYXR1cmFsbHksIGlzIHRvIHRyYWNlIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgYWN0dWFsbHkgKmNhbGxlZCogd2l0aGluIHRoZSBrZXJuZWwuIFRoYXQmIzM5O3MgdGhlIGZ1bmRhbWVudGFsIGZpcnN0IHN0ZXAuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHRoZSBjb250ZXh0IGluIHdoaWNoIGl0IG9wZXJhdGVzLiBXaGF0IG90aGVyIGZ1bmN0aW9ucyBkb2VzIGl0IGludGVyYWN0IHdpdGg/IFdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBwYXNzZWQgaW4/IEVzc2VudGlhbGx5LCBJIHdhbnQgYSBjb21wbGV0ZSBjYWxsIGdyYXBoIGxlYWRpbmcgdG8gYHNrYl9ncm9fcmVjZWl2ZV9saXN0YC4gS25vd2luZyB0aGUgY2FsbCBzaXRlcyB3aWxsIGJlIGNyaXRpY2FsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyByb2xlIGluIHRoZSBHUk8gKEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkKSBpbXBsZW1lbnRhdGlvbi4gRnJvbSB0aGVyZSBJIGNhbiBkZXRlcm1pbmUgaXRzIHJvbGUsIHVuZGVyc3RhbmQgaWYgaXQgaXMgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrLCBhbmQgc2VlIHdoZXJlIGltcHJvdmVtZW50cyBtaWdodCBiZSBwb3NzaWJsZS4gVGhpcyBzaG91bGQgYmUgYSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIHByb2Nlc3MsIHVzaW5nIHRoZSBzdGFuZGFyZCBrZXJuZWwgc2VhcmNoIHRvb2xzLiBMZXQmIzM5O3MgZGlnIGluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NrYl9ncm9fcmVjZWl2ZV9saXN0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbmV0L2dyby5oPTUwMT1pbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbmluY2x1ZGUvbmV0L2dyby5oOjUwMjppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpO1xuaW5jbHVkZS9uZXQvZ3JvLmgtNTAzLXZvaWQgX19ncm9fZmx1c2goc3RydWN0IGdyb19ub2RlICpncm8sIGJvb2wgZmx1c2hfb2xkKTtcbi0tXG5uZXQvY29yZS9ncm8uYz05Mj1pbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9jb3JlL2dyby5jLTIyOS1cbm5ldC9jb3JlL2dyby5jOjIzMDppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXG5uZXQvY29yZS9ncm8uYy0yMzEte1xuLS1cbm5ldC9jb3JlL3NrYnVmZi5jPTQ2Njg9c3RydWN0IHNrX2J1ZmYgKnNrYl9zZWdtZW50X2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvY29yZS9za2J1ZmYuYy00Njc4LVxubmV0L2NvcmUvc2tidWZmLmM6NDY3OTpcdC8qIE9ubHkgc2tiX2dyb19yZWNlaXZlX2xpc3QgZ2VuZXJhdGVkIHNrYnMgYXJyaXZlIGhlcmUgKi9cbm5ldC9jb3JlL3NrYnVmZi5jLTQ2ODAtXHRERUJVR19ORVRfV0FSTl9PTl9PTkNFKCEoc2tiX3NoaW5mbyhza2IpLVx1MDAzZWdzb190eXBlIFx1MDAyNiBTS0JfR1NPX0ZSQUdMSVNUKSk7XG4tLVxubmV0L2lwdjQvdGNwX29mZmxvYWQuYz0yODY9c3RydWN0IHNrX2J1ZmYgKnRjcF9ncm9fcmVjZWl2ZShzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmMtMzM2LVxubmV0L2lwdjQvdGNwX29mZmxvYWQuYzozMzc6XHRcdGlmIChmbHVzaCB8fCBza2JfZ3JvX3JlY2VpdmVfbGlzdChwLCBza2IpKVxubmV0L2lwdjQvdGNwX29mZmxvYWQuYy0zMzgtXHRcdFx0bXNzID0gMTtcbi0tXG5uZXQvaXB2NC91ZHBfb2ZmbG9hZC5jPTY5ND1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnVkcF9ncm9fcmVjZWl2ZV9zZWdtZW50KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsXG4tLVxubmV0L2lwdjQvdWRwX29mZmxvYWQuYy03NTgtXHRcdFx0XHRza2Jfc2V0X25ldHdvcmtfaGVhZGVyKHNrYiwgc2tiX2dyb19yZWNlaXZlX25ldHdvcmtfb2Zmc2V0KHNrYikpO1xubmV0L2lwdjQvdWRwX29mZmxvYWQuYzo3NTk6XHRcdFx0XHRyZXQgPSBza2JfZ3JvX3JlY2VpdmVfbGlzdChwLCBza2IpO1xubmV0L2lwdjQvdWRwX29mZmxvYWQuYy03NjAtXHRcdFx0fSBlbHNlIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzc4CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipHUk8gRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKUmlnaHQsIHRoaXMgbG9va3MgcHJvbWlzaW5nLiBXZSYjMzk7dmUgZ290IG91ciBob29rcyBpbnRvIHRoZSBjb3JlIG5ldHdvcmtpbmcgY29kZSBoZXJlIOKAkyBgdGNwX2dyb19yZWNlaXZlYCBhbmQgYHVkcF9ncm9fcmVjZWl2ZV9zZWdtZW50YCwgc3BlY2lmaWNhbGx5LiBUaGlzIGlzIHRoZSBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKSBhcmVhLCBhbmQgdGhhdCYjMzk7cyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZywgYWJzb2x1dGVseS4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBoYW5kbGluZyBwYWNrZXQgcmVhc3NlbWJseSBtYWtlcyBpdCBhIGxpa2VseSBjYW5kaWRhdGUgZm9yIGV4cGxvaXRhYmxlIHZ1bG5lcmFiaWxpdGllcy4gR2l2ZW4gdGhlIG5hbWVzIG9mIHRoZSBmdW5jdGlvbnMsIEkga25vdyBpdCYjMzk7cyAqcmVhY2hhYmxlKiwgbWVhbmluZyBmdXp6aW5nIHNob3VsZCBoaXQgdGhpcyBjb2RlLiBUaGUga2V5IHN5bWJvbCB0byBmb2N1cyBvbiBzZWVtcyB0byBiZSBgc2tiX2dyb19yZWNlaXZlX2xpc3RgLgoKTm93LCBiZWZvcmUgd2UgZGl2ZSB0b28gZGVlcCBpbnRvIGNyYWZ0aW5nIGZ1enogY2FzZXMsIGxldCYjMzk7cyBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrLiBJJiMzOTttIGdvaW5nIHRvIGxvb2sgZm9yIGFueSBHUk8tc3BlY2lmaWMgYENPTkZJR2Agb3B0aW9ucy4gV2hpbGUgR1JPIGlzIG9mdGVuIGVuYWJsZWQgYnkgZGVmYXVsdCwgb3IgYmFrZWQgaW50byBjb3JlIG5ldHdvcmtpbmcgZmVhdHVyZXMsIHRoZXJlJiMzOTtzIGFsd2F5cyBhIGNoYW5jZSB0aGVyZSBhcmUgY29uZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBhZmZlY3Qgb3VyIGNvdmVyYWdlIG9yIHRyaWdnZXIgZGlmZmVyZW50IGNvZGUgcGF0aHMuIEl0JiMzOTtzIGEgcXVpY2sgY2hlY2sgdGhhdCBjYW4gc2F2ZSBhIGxvdCBvZiB0aW1lIGRvd24gdGhlIHJvYWQsIGFuZCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gc2VlaW5nIHRoZSBzYW1lIHNldHVwIGFzIG15IHVzZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2tiX2dyb19yZWNlaXZlX2xpc3QmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvY29yZS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc3NQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIGRpcmVjdCwgaW50ZXJuYWwgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgR1JPIEltcGxlbWVudGF0aW9uKioKClJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKSBpcyBhY3R1YWxseSBpbXBsZW1lbnRlZCBpbiB0aGUga2VybmVsLiBNeSBzdGFydGluZyBwb2ludCBpcyB1c3VhbGx5IHRoZSBgbmV0L2NvcmVgIGRpcmVjdG9yeSDigJMgaXQmIzM5O3MgdGhlIGhlYXJ0IG9mIHRoZSBuZXR3b3JraW5nIHN0YWNrLiBTbywgdGhlIGZpcnN0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayBvdXQgdGhlIGBNYWtlZmlsZWAgdGhlcmUuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGEgZmlsZSByZWxhdGVkIHRvIEdSTywgcHJvYmFibHkgc29tZXRoaW5nIGxpa2UgYGdyby5jYC4uLiBvciBhIGZpbGUgdGhhdCBtZW50aW9ucyBpdCBpbiB0aGUgZGVwZW5kZW5jaWVzLiBJIGV4cGVjdCB0aGUgYE1ha2VmaWxlYCB3aWxsIHBvaW50IG1lIHRvIHRoZSBtYWluIHNvdXJjZSBmaWxlIG9yIGZpbGVzIGludm9sdmVkIGluIEdSTyBmdW5jdGlvbmFsaXR5LiBGcm9tIHRoZXJlLCBJIGNhbiBzdGFydCB0cmFjaW5nIHRoZSBjb2RlLCB1bmRlcnN0YW5kaW5nIHRoZSBkYXRhIHN0cnVjdHVyZXMgaW52b2x2ZWQsIGFuZCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSB0aGUgcGFja2V0IGNvYWxlc2NpbmcgcHJvY2Vzcy4gSSBuZWVkIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB3aGVyZSB0aGUgcGFja2V0IGlzIHJlY2VpdmVkLCBhbmQgaG93IHRoZSBHUk8gaGFwcGVucyBzbyBJIGNhbiBwcm9wZXJseSBkZWJ1ZyBhbnkgaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtncm9cXC5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGU9MTI9b2JqLXlcdFx0ICAgICAmIzQzOz0gZGV2Lm8gZGV2X2FwaS5vIGRldl9hZGRyX2xpc3RzLm8gZHN0Lm8gbmV0ZXZlbnQubyBcXFxuLS1cbm5ldC9jb3JlL01ha2VmaWxlLTE0LVx0XHRcdHNvY2tfZGlhZy5vIGRldl9pb2N0bC5vIHRzby5vIHNvY2tfcmV1c2Vwb3J0Lm8gXFxcbm5ldC9jb3JlL01ha2VmaWxlOjE1Olx0XHRcdGZpYl9ub3RpZmllci5vIHhkcC5vIGZsb3dfb2ZmbG9hZC5vIGdyby5vIFxcXG5uZXQvY29yZS9NYWtlZmlsZS0xNi1cdFx0XHRuZXRkZXYtZ2VubC5vIG5ldGRldi1nZW5sLWdlbi5vIG5ldGRldl93b3JrLm8gZ3NvLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE3NQoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiAxMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgR1JPIENvZGUgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgYGdyby5jYCBpcyBhbHdheXMgY29tcGlsZWQ7IGl0JiMzOTtzIHBhcnQgb2YgdGhlIGJhc2UgYnVpbGQgKGBvYmoteWApLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIOKAkyBJIGRvbiYjMzk7dCBuZWVkIHRvIHdvcnJ5IGFib3V0IGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZsYWdzIHRvIGVuYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkuIFRoYXQmIzM5O3MgZ29vZCwgbGVzcyB0byB0cmFjay4KCk5vdywgbGV0JiMzOTtzIG5haWwgZG93biB3aGF0IHRoaXMgbWVhbnMgZm9yIGZ1enppbmcuIEkmIzM5O20gc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAsIG9idmlvdXNseS4gVGhlIGNvcmUgb2YgdGhpcyBjaGFuZ2UgY2VudGVycyBhcm91bmQgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCwgcmlnaHQ/IFNvIHRoYXQmIzM5O3MgZ29pbmcgaW50byB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdDsgd2UmIzM5O2xsIHplcm8gaW4gb24gdGhhdCBmdW5jdGlvbi4KClRoZSBgRW5hYmxlQ29uZmlnc2AgbGlzdCBpcyBlbXB0eSBiZWNhdXNlLCBhcyBJJiMzOTt2ZSBhbHJlYWR5IGVzdGFibGlzaGVkLCB0aGlzIGNvZGUgaXMgYWx3YXlzIGJ1aWx0LiBUaGVyZSYjMzk7cyBubyBjb25kaXRpb25hbCBjb21waWxhdGlvbiBoZXJlIHRvIHdvcnJ5IGFib3V0LCBubyBzcGVjaWZpYyBmZWF0dXJlIGZsYWdzIG5lZWRlZC4KClRoZSAqcmVhc29uKiBmb3IgdGhpcyBzZXR1cCBpcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCB0b3VjaGVzIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgd2l0aGluIGBuZXQvY29yZS9ncm8uY2AuIFRoaXMgaXMgZm91bmRhdGlvbmFsIG5ldHdvcmtpbmcgY29kZSDigJMgaXQmIzM5O3MgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQsIGFuZCBpdCYjMzk7cyBlc3NlbnRpYWwuIFRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBwYWNrZXRzIGZsYWdnZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgcmUtYWdncmVnYXRlZC4gSXQmIzM5O3MgZnVuY3Rpb25hbCBjb2RlLCBhbmQgaXQmIzM5O3MgZGVmaW5pdGVseSByZWFjaGFibGUuIFRoaXMgaXMgKmV4YWN0bHkqIHRoZSBraW5kIG9mIGNoYW5nZSB3ZSB3YW50IHRvIHRhcmdldCB3aXRoIGZ1enppbmcuIEl0JiMzOTtzIGEga2V5IGZ1bmN0aW9uIGluIGEgY3JpdGljYWwgYXJlYSwgbWFraW5nIGl0IGEgaGlnaC12YWx1ZSB0YXJnZXQgZm9yIGlkZW50aWZ5aW5nIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtza2JfZ3JvX3JlY2VpdmVfbGlzdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGluIGBuZXQvY29yZS9ncm8uY2AsIHdoaWNoIGlzIGNvcmUgbmV0d29ya2luZyBjb2RlIGZvciBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKS4gSXQgYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgcGFja2V0cyBtYXJrZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgYWdncmVnYXRlZCBhZ2Fpbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtza2JfZ3JvX3JlY2VpdmVfbGlzdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGluIGBuZXQvY29yZS9ncm8uY2AsIHdoaWNoIGlzIGNvcmUgbmV0d29ya2luZyBjb2RlIGZvciBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKS4gSXQgYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgcGFja2V0cyBtYXJrZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgYWdncmVnYXRlZCBhZ2Fpbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUyLjgzODE1Mjc2OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNDEyOTk0MzI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNrYl9ncm9fcmVjZWl2ZV9saXN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBpbiBgbmV0L2NvcmUvZ3JvLmNgLCB3aGljaCBpcyBjb3JlIG5ldHdvcmtpbmcgY29kZSBmb3IgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykuIEl0IGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgbWFya2VkIHdpdGggYGZsdXNoYCBmcm9tIGJlaW5nIGFnZ3JlZ2F0ZWQgYWdhaW4uIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUyLjgzODE1ODE3OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE5MjcxMzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDllNzNjNzM1MjJiZGY4MTU2ZWYyYjg5ZmI0MzVjZjUzNTIwMGY1YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyIDEwOjM2OjUxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dyby5jIGIvbmV0L2NvcmUvZ3JvLmNcXG5pbmRleCAzNWYyZjcwOGYwMTA1Mi4uZGQ2M2NmZTNiZmZmNDEgMTAwNjQ0XFxuLS0tIGEvbmV0L2NvcmUvZ3JvLmNcXG4rKysgYi9uZXQvY29yZS9ncm8uY1xcbkBAIC0yMjksNyArMjI5LDE0IEBAIGludCBza2JfZ3JvX3JlY2VpdmUoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXFxuIFxcbiBpbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4tXFx0aWYgKHVubGlrZWx5KHAtXFx1MDAzZWxlbiArIHNrYi1cXHUwMDNlbGVuIFxcdTAwM2U9IDY1NTM2KSlcXG4rXFx0LypcXG4rXFx0ICogUGFja2V0cyBtYXJrZWQgd2l0aCBOQVBJX0dST19DQihza2IpLVxcdTAwM2VmbHVzaCBoYXZlIGFscmVhZHkgZ29uZVxcbitcXHQgKiB0aHJvdWdoIEdSTy9MUk8gcHJvY2Vzc2luZyBhbmQgbXVzdCBub3QgYmUgYWdncmVnYXRlZCBhZ2Fpbi5cXG4rXFx0ICogUmUtZW50ZXJpbmcgZnJhZ19saXN0IEdSTyBtYXkgY29ycnVwdCB0aGUgZnJhZ19saXN0IGNoYWluIGFuZFxcbitcXHQgKiBsYXRlciBjcmFzaCBkdXJpbmcgR1NPIHNlZ21lbnRhaW9udC5cXG4rXFx0ICovXFxuK1xcdGlmICh1bmxpa2VseShwLVxcdTAwM2VsZW4gKyBza2ItXFx1MDAzZWxlbiBcXHUwMDNlPSA2NTUzNiB8fFxcbitcXHRcXHQgICAgIE5BUElfR1JPX0NCKHNrYiktXFx1MDAzZWZsdXNoKSlcXG4gXFx0XFx0cmV0dXJuIC1FMkJJRztcXG4gXFxuIFxcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNrYl9ncm9fb2Zmc2V0KHNrYikpKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUzLjE1ODE4OTc3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjEwOTI5NTIzNDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2tiX2dyb19yZWNlaXZlX2xpc3RcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGluIGBuZXQvY29yZS9ncm8uY2AsIHdoaWNoIGlzIGNvcmUgbmV0d29ya2luZyBjb2RlIGZvciBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKS4gSXQgYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgcGFja2V0cyBtYXJrZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgYWdncmVnYXRlZCBhZ2Fpbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0OWU3M2M3MzUyMmJkZjgxNTZlZjJiODlmYjQzNWNmNTM1MjAwZjViXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxMDozNjo1MSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dyby5jIGIvbmV0L2NvcmUvZ3JvLmNcbmluZGV4IDM1ZjJmNzA4ZjAxMDUyLi5kZDYzY2ZlM2JmZmY0MSAxMDA2NDRcbi0tLSBhL25ldC9jb3JlL2dyby5jXG4rKysgYi9uZXQvY29yZS9ncm8uY1xuQEAgLTIyOSw3ICsyMjksMTQgQEAgaW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBpbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0aWYgKHVubGlrZWx5KHAtXHUwMDNlbGVuICsgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IDY1NTM2KSlcbitcdC8qXG4rXHQgKiBQYWNrZXRzIG1hcmtlZCB3aXRoIE5BUElfR1JPX0NCKHNrYiktXHUwMDNlZmx1c2ggaGF2ZSBhbHJlYWR5IGdvbmVcbitcdCAqIHRocm91Z2ggR1JPL0xSTyBwcm9jZXNzaW5nIGFuZCBtdXN0IG5vdCBiZSBhZ2dyZWdhdGVkIGFnYWluLlxuK1x0ICogUmUtZW50ZXJpbmcgZnJhZ19saXN0IEdSTyBtYXkgY29ycnVwdCB0aGUgZnJhZ19saXN0IGNoYWluIGFuZFxuK1x0ICogbGF0ZXIgY3Jhc2ggZHVyaW5nIEdTTyBzZWdtZW50YWlvbnQuXG4rXHQgKi9cbitcdGlmICh1bmxpa2VseShwLVx1MDAzZWxlbiArIHNrYi1cdTAwM2VsZW4gXHUwMDNlPSA2NTUzNiB8fFxuK1x0XHQgICAgIE5BUElfR1JPX0NCKHNrYiktXHUwMDNlZmx1c2gpKVxuIFx0XHRyZXR1cm4gLUUyQklHO1xuIFxuIFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2tiX2dyb19vZmZzZXQoc2tiKSkpIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUzLjE1ODE5MTMyN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5OTM1MzU0NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBHUk8gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvY29yZS9ncm8uY2AsIHNwZWNpZmljYWxseSB0aGUgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBmdW5jdGlvbi4gRnJvbSB3aGF0IEknbSBzZWVpbmcsIGEgbmV3IGNoZWNrIGhhcyBiZWVuIGFkZGVkIHdpdGhpbiBgc2tiX2dyb19yZWNlaXZlX2xpc3RgOiBgTkFQSV9HUk9fQ0Ioc2tiKS1cdTAwM2VmbHVzaGAuIElmIHRoaXMgZmxhZyBpcyBzZXQgdG8gdHJ1ZSwgdGhlIGZ1bmN0aW9uIG5vdyByZXR1cm5zIGAtRTJCSUdgLlxuXG5NeSBmaXJzdCB0aG91Z2h0IGlzLCB3aHkgYC1FMkJJR2A/IFRoYXQgdXN1YWxseSBzaWduaWZpZXMgYSBcIk1lc3NhZ2UgdG9vIGxvbmdcIiBlcnJvciwgd2hpY2gsIGluIHRoZSBjb250ZXh0IG9mIEdSTywgaW1wbGllcyB0aGF0IHRoZSBhZ2dyZWdhdGVkIHBhY2tldCBpcyBleGNlZWRpbmcgc29tZSBraW5kIG9mIHNpemUgbGltaXQuIElzIHRoaXMgcmVsYXRlZCB0byBzb21lIHNvcnQgb2YgaGFyZHdhcmUgb2ZmbG9hZCBsaW1pdGF0aW9ucz8gT3IgaXMgaXQgYSBzb2Z0d2FyZS1lbmZvcmNlZCByZXN0cmljdGlvbiB0byBwcmV2ZW50IHNvbWUgcGF0aG9sb2dpY2FsIEdSTyBiZWhhdmlvcj8gSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSB0byB1bmRlcnN0YW5kIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0IGFuZCB3aHkgdGhlIGBmbHVzaGAgZmxhZyB3b3VsZCBiZSB1c2VkIGluIHRoaXMgd2F5LlxuXG5JJ2xsIG5lZWQgdG8gaW52ZXN0aWdhdGUgaG93IGBOQVBJX0dST19DQihza2IpLVx1MDAzZWZsdXNoYCBpcyBzZXQgYW5kIHdoYXQgdHJpZ2dlcnMgaXQuIFVuZGVyc3RhbmRpbmcgdGhlIGNpcmN1bXN0YW5jZXMgdGhhdCBsZWFkIHRvIHRoaXMgZXJyb3Igd2lsbCBiZSBjcnVjaWFsIGZvciBldmFsdWF0aW5nIHRoZSBwYXRjaCdzIGltcGFjdCBvbiBwZXJmb3JtYW5jZSBhbmQgcG90ZW50aWFsbHkgdW5jb3ZlcmluZyBhbnkgc3VidGxlIHNpZGUgZWZmZWN0cy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBjYXNlIGZvciB0aGlzIG5ldyBlcnJvci4gV2hhdCBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgc2V0dGluZyB0aGlzIGZsYWc/IERvZXMgaXQgaW5kaWNhdGUgYW4gZWFybHkgdGVybWluYXRpb24gb2YgYSBHUk8gYWdncmVnYXRpb24gcHJvY2Vzcz8gT3IgZG9lcyBpdCBtZWFuIHRoYXQgcGFja2V0cyBzaG91bGQgbm90IGJlIGFkZGVkIHRvIHRoZSBHUk8gbGlzdD8gSSdsbCBoZWFkIGJhY2sgaW50byBgbmV0L2NvcmUvZ3JvLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGNvZGUgbG9naWMgYmV0dGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTUxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNjo1Ny4xNTE3MzA3MDFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAxMzQ4MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2tiX2dyb19yZWNlaXZlX2xpc3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvZ3JvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvZ3JvLmM9OTI9aW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9jb3JlL2dyby5jLTIyOS1cXG5uZXQvY29yZS9ncm8uYzoyMzA6aW50IHNrYl9ncm9fcmVjZWl2ZV9saXN0KHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbm5ldC9jb3JlL2dyby5jLTIzMS17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjU3LjIxMTg3ODYxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MjU5OTYyMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgQ2FsbHMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgdXNhZ2Ugb2YgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YC4gVGhlIGJlc3Qgc3RhcnRpbmcgcG9pbnQsIG5hdHVyYWxseSwgaXMgdG8gdHJhY2Ugd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSAqY2FsbGVkKiB3aXRoaW4gdGhlIGtlcm5lbC4gVGhhdCdzIHRoZSBmdW5kYW1lbnRhbCBmaXJzdCBzdGVwLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgY29udGV4dCBpbiB3aGljaCBpdCBvcGVyYXRlcy4gV2hhdCBvdGhlciBmdW5jdGlvbnMgZG9lcyBpdCBpbnRlcmFjdCB3aXRoPyBXaGF0IGRhdGEgc3RydWN0dXJlcyBhcmUgcGFzc2VkIGluPyBFc3NlbnRpYWxseSwgSSB3YW50IGEgY29tcGxldGUgY2FsbCBncmFwaCBsZWFkaW5nIHRvIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAuIEtub3dpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCBiZSBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcm9sZSBpbiB0aGUgR1JPIChHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCkgaW1wbGVtZW50YXRpb24uIEZyb20gdGhlcmUgSSBjYW4gZGV0ZXJtaW5lIGl0cyByb2xlLCB1bmRlcnN0YW5kIGlmIGl0IGlzIGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjaywgYW5kIHNlZSB3aGVyZSBpbXByb3ZlbWVudHMgbWlnaHQgYmUgcG9zc2libGUuIFRoaXMgc2hvdWxkIGJlIGEgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZCBwcm9jZXNzLCB1c2luZyB0aGUgc3RhbmRhcmQga2VybmVsIHNlYXJjaCB0b29scy4gTGV0J3MgZGlnIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTIwLCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MDAuMTM3ODc3NTUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDYzODEzNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2tiX2dyb19yZWNlaXZlX2xpc3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvZ3JvLmg9NTAxPWludCBza2JfZ3JvX3JlY2VpdmUoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpO1xcbmluY2x1ZGUvbmV0L2dyby5oOjUwMjppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpO1xcbmluY2x1ZGUvbmV0L2dyby5oLTUwMy12b2lkIF9fZ3JvX2ZsdXNoKHN0cnVjdCBncm9fbm9kZSAqZ3JvLCBib29sIGZsdXNoX29sZCk7XFxuLS1cXG5uZXQvY29yZS9ncm8uYz05Mj1pbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L2NvcmUvZ3JvLmMtMjI5LVxcbm5ldC9jb3JlL2dyby5jOjIzMDppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXFxubmV0L2NvcmUvZ3JvLmMtMjMxLXtcXG4tLVxcbm5ldC9jb3JlL3NrYnVmZi5jPTQ2Njg9c3RydWN0IHNrX2J1ZmYgKnNrYl9zZWdtZW50X2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9jb3JlL3NrYnVmZi5jLTQ2NzgtXFxubmV0L2NvcmUvc2tidWZmLmM6NDY3OTpcXHQvKiBPbmx5IHNrYl9ncm9fcmVjZWl2ZV9saXN0IGdlbmVyYXRlZCBza2JzIGFycml2ZSBoZXJlICovXFxubmV0L2NvcmUvc2tidWZmLmMtNDY4MC1cXHRERUJVR19ORVRfV0FSTl9PTl9PTkNFKCEoc2tiX3NoaW5mbyhza2IpLVxcdTAwM2Vnc29fdHlwZSBcXHUwMDI2IFNLQl9HU09fRlJBR0xJU1QpKTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmM9Mjg2PXN0cnVjdCBza19idWZmICp0Y3BfZ3JvX3JlY2VpdmUoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmMtMzM2LVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmM6MzM3OlxcdFxcdGlmIChmbHVzaCB8fCBza2JfZ3JvX3JlY2VpdmVfbGlzdChwLCBza2IpKVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmMtMzM4LVxcdFxcdFxcdG1zcyA9IDE7XFxuLS1cXG5uZXQvaXB2NC91ZHBfb2ZmbG9hZC5jPTY5ND1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnVkcF9ncm9fcmVjZWl2ZV9zZWdtZW50KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsXFxuLS1cXG5uZXQvaXB2NC91ZHBfb2ZmbG9hZC5jLTc1OC1cXHRcXHRcXHRcXHRza2Jfc2V0X25ldHdvcmtfaGVhZGVyKHNrYiwgc2tiX2dyb19yZWNlaXZlX25ldHdvcmtfb2Zmc2V0KHNrYikpO1xcbm5ldC9pcHY0L3VkcF9vZmZsb2FkLmM6NzU5OlxcdFxcdFxcdFxcdHJldCA9IHNrYl9ncm9fcmVjZWl2ZV9saXN0KHAsIHNrYik7XFxubmV0L2lwdjQvdWRwX29mZmxvYWQuYy03NjAtXFx0XFx0XFx0fSBlbHNlIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MDIuODQ0MjY1NzYyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc2OTY0NzcwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZTpcblxuKipHUk8gRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5SaWdodCwgdGhpcyBsb29rcyBwcm9taXNpbmcuIFdlJ3ZlIGdvdCBvdXIgaG9va3MgaW50byB0aGUgY29yZSBuZXR3b3JraW5nIGNvZGUgaGVyZSDigJMgYHRjcF9ncm9fcmVjZWl2ZWAgYW5kIGB1ZHBfZ3JvX3JlY2VpdmVfc2VnbWVudGAsIHNwZWNpZmljYWxseS4gVGhpcyBpcyB0aGUgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykgYXJlYSwgYW5kIHRoYXQncyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZywgYWJzb2x1dGVseS4gVGhlIGZhY3QgdGhhdCBpdCdzIGhhbmRsaW5nIHBhY2tldCByZWFzc2VtYmx5IG1ha2VzIGl0IGEgbGlrZWx5IGNhbmRpZGF0ZSBmb3IgZXhwbG9pdGFibGUgdnVsbmVyYWJpbGl0aWVzLiBHaXZlbiB0aGUgbmFtZXMgb2YgdGhlIGZ1bmN0aW9ucywgSSBrbm93IGl0J3MgKnJlYWNoYWJsZSosIG1lYW5pbmcgZnV6emluZyBzaG91bGQgaGl0IHRoaXMgY29kZS4gVGhlIGtleSBzeW1ib2wgdG8gZm9jdXMgb24gc2VlbXMgdG8gYmUgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YC5cblxuTm93LCBiZWZvcmUgd2UgZGl2ZSB0b28gZGVlcCBpbnRvIGNyYWZ0aW5nIGZ1enogY2FzZXMsIGxldCdzIGp1c3QgZG8gYSBxdWljayBzYW5pdHkgY2hlY2suIEknbSBnb2luZyB0byBsb29rIGZvciBhbnkgR1JPLXNwZWNpZmljIGBDT05GSUdgIG9wdGlvbnMuIFdoaWxlIEdSTyBpcyBvZnRlbiBlbmFibGVkIGJ5IGRlZmF1bHQsIG9yIGJha2VkIGludG8gY29yZSBuZXR3b3JraW5nIGZlYXR1cmVzLCB0aGVyZSdzIGFsd2F5cyBhIGNoYW5jZSB0aGVyZSBhcmUgY29uZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBhZmZlY3Qgb3VyIGNvdmVyYWdlIG9yIHRyaWdnZXIgZGlmZmVyZW50IGNvZGUgcGF0aHMuIEl0J3MgYSBxdWljayBjaGVjayB0aGF0IGNhbiBzYXZlIGEgbG90IG9mIHRpbWUgZG93biB0aGUgcm9hZCwgYW5kIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBzZWVpbmcgdGhlIHNhbWUgc2V0dXAgYXMgbXkgdXNlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNzgsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNzowNi42MTM5MTcxMzNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc4NDA1NDcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNrYl9ncm9fcmVjZWl2ZV9saXN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9jb3JlL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNzowNi42NzE3Njc5MDFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTIzNzA4NTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgZGlyZWN0LCBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIEdSTyBJbXBsZW1lbnRhdGlvbioqXG5cblJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkIChHUk8pIGlzIGFjdHVhbGx5IGltcGxlbWVudGVkIGluIHRoZSBrZXJuZWwuIE15IHN0YXJ0aW5nIHBvaW50IGlzIHVzdWFsbHkgdGhlIGBuZXQvY29yZWAgZGlyZWN0b3J5IOKAkyBpdCdzIHRoZSBoZWFydCBvZiB0aGUgbmV0d29ya2luZyBzdGFjay4gU28sIHRoZSBmaXJzdCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2hlY2sgb3V0IHRoZSBgTWFrZWZpbGVgIHRoZXJlLiBJJ20gc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGEgZmlsZSByZWxhdGVkIHRvIEdSTywgcHJvYmFibHkgc29tZXRoaW5nIGxpa2UgYGdyby5jYC4uLiBvciBhIGZpbGUgdGhhdCBtZW50aW9ucyBpdCBpbiB0aGUgZGVwZW5kZW5jaWVzLiBJIGV4cGVjdCB0aGUgYE1ha2VmaWxlYCB3aWxsIHBvaW50IG1lIHRvIHRoZSBtYWluIHNvdXJjZSBmaWxlIG9yIGZpbGVzIGludm9sdmVkIGluIEdSTyBmdW5jdGlvbmFsaXR5LiBGcm9tIHRoZXJlLCBJIGNhbiBzdGFydCB0cmFjaW5nIHRoZSBjb2RlLCB1bmRlcnN0YW5kaW5nIHRoZSBkYXRhIHN0cnVjdHVyZXMgaW52b2x2ZWQsIGFuZCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSB0aGUgcGFja2V0IGNvYWxlc2NpbmcgcHJvY2Vzcy4gSSBuZWVkIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB3aGVyZSB0aGUgcGFja2V0IGlzIHJlY2VpdmVkLCBhbmQgaG93IHRoZSBHUk8gaGFwcGVucyBzbyBJIGNhbiBwcm9wZXJseSBkZWJ1ZyBhbnkgaXNzdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzc1LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MDkuNTk1NDc5MjY0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzM5MTgxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJncm9cXFxcLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9MTI9b2JqLXlcXHRcXHQgICAgICs9IGRldi5vIGRldl9hcGkubyBkZXZfYWRkcl9saXN0cy5vIGRzdC5vIG5ldGV2ZW50Lm8gXFxcXFxcbi0tXFxubmV0L2NvcmUvTWFrZWZpbGUtMTQtXFx0XFx0XFx0c29ja19kaWFnLm8gZGV2X2lvY3RsLm8gdHNvLm8gc29ja19yZXVzZXBvcnQubyBcXFxcXFxubmV0L2NvcmUvTWFrZWZpbGU6MTU6XFx0XFx0XFx0ZmliX25vdGlmaWVyLm8geGRwLm8gZmxvd19vZmZsb2FkLm8gZ3JvLm8gXFxcXFxcbm5ldC9jb3JlL01ha2VmaWxlLTE2LVxcdFxcdFxcdG5ldGRldi1nZW5sLm8gbmV0ZGV2LWdlbmwtZ2VuLm8gbmV0ZGV2X3dvcmsubyBnc28ub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNzowOS42ODg4NzY5MzFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU2MjIzNzk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBHUk8gQ29kZSBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMsIGBncm8uY2AgaXMgYWx3YXlzIGNvbXBpbGVkOyBpdCdzIHBhcnQgb2YgdGhlIGJhc2UgYnVpbGQgKGBvYmoteWApLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIOKAkyBJIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgYW55IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmxhZ3MgdG8gZW5hYmxlIHRoaXMgZnVuY3Rpb25hbGl0eS4gVGhhdCdzIGdvb2QsIGxlc3MgdG8gdHJhY2suXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHdoYXQgdGhpcyBtZWFucyBmb3IgZnV6emluZy4gSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLCBvYnZpb3VzbHkuIFRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGNlbnRlcnMgYXJvdW5kIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAsIHJpZ2h0PyBTbyB0aGF0J3MgZ29pbmcgaW50byB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdDsgd2UnbGwgemVybyBpbiBvbiB0aGF0IGZ1bmN0aW9uLlxuXG5UaGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3QgaXMgZW1wdHkgYmVjYXVzZSwgYXMgSSd2ZSBhbHJlYWR5IGVzdGFibGlzaGVkLCB0aGlzIGNvZGUgaXMgYWx3YXlzIGJ1aWx0LiBUaGVyZSdzIG5vIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGhlcmUgdG8gd29ycnkgYWJvdXQsIG5vIHNwZWNpZmljIGZlYXR1cmUgZmxhZ3MgbmVlZGVkLlxuXG5UaGUgKnJlYXNvbiogZm9yIHRoaXMgc2V0dXAgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGUgcGF0Y2ggdG91Y2hlcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIHdpdGhpbiBgbmV0L2NvcmUvZ3JvLmNgLiBUaGlzIGlzIGZvdW5kYXRpb25hbCBuZXR3b3JraW5nIGNvZGUg4oCTIGl0J3MgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQsIGFuZCBpdCdzIGVzc2VudGlhbC4gVGhlIHBhdGNoIGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgZmxhZ2dlZCB3aXRoIGBmbHVzaGAgZnJvbSBiZWluZyByZS1hZ2dyZWdhdGVkLiBJdCdzIGZ1bmN0aW9uYWwgY29kZSwgYW5kIGl0J3MgZGVmaW5pdGVseSByZWFjaGFibGUuIFRoaXMgaXMgKmV4YWN0bHkqIHRoZSBraW5kIG9mIGNoYW5nZSB3ZSB3YW50IHRvIHRhcmdldCB3aXRoIGZ1enppbmcuIEl0J3MgYSBrZXkgZnVuY3Rpb24gaW4gYSBjcml0aWNhbCBhcmVhLCBtYWtpbmcgaXQgYSBoaWdoLXZhbHVlIHRhcmdldCBmb3IgaWRlbnRpZnlpbmcgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE3NSwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MTQuMjUxMTE3MTUzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM3NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJza2JfZ3JvX3JlY2VpdmVfbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgaW4gYG5ldC9jb3JlL2dyby5jYCwgd2hpY2ggaXMgY29yZSBuZXR3b3JraW5nIGNvZGUgZm9yIEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkIChHUk8pLiBJdCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBwYWNrZXRzIG1hcmtlZCB3aXRoIGBmbHVzaGAgZnJvbSBiZWluZyBhZ2dyZWdhdGVkIGFnYWluLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNrYl9ncm9fcmVjZWl2ZV9saXN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBpbiBgbmV0L2NvcmUvZ3JvLmNgLCB3aGljaCBpcyBjb3JlIG5ldHdvcmtpbmcgY29kZSBmb3IgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykuIEl0IGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgbWFya2VkIHdpdGggYGZsdXNoYCBmcm9tIGJlaW5nIGFnZ3JlZ2F0ZWQgYWdhaW4uIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowbj7qx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-02 10:27:24 +0000 UTC FinishedAt: 2026-07-02 10:37:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d6e81529749190123aa0040626c7e5dbc20fdc9a", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "d6e81529749190123aa0040626c7e5dbc20fdc9a", "config_name": "upstream-apparmor-kasan.config", "series_id": "1b4ecd17-b820-4915-8f34-6d6869d2e80a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "skb_gro_receive_list" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2tiX2dyb19yZWNlaXZlX2xpc3QmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBpbiBgbmV0L2NvcmUvZ3JvLmNgLCB3aGljaCBpcyBjb3JlIG5ldHdvcmtpbmcgY29kZSBmb3IgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykuIEl0IGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgbWFya2VkIHdpdGggYGZsdXNoYCBmcm9tIGJlaW5nIGFnZ3JlZ2F0ZWQgYWdhaW4uIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6MzY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0OWU3M2M3MzUyMmJkZjgxNTZlZjJiODlmYjQzNWNmNTM1MjAwZjViXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxMDozNjo1MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvY29yZS9ncm8uYyBiL25ldC9jb3JlL2dyby5jXG5pbmRleCAzNWYyZjcwOGYwMTA1Mi4uZGQ2M2NmZTNiZmZmNDEgMTAwNjQ0XG4tLS0gYS9uZXQvY29yZS9ncm8uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2NvcmUvZ3JvLmNcbkBAIC0yMjksNyAmIzQzOzIyOSwxNCBAQCBpbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFxuIGludCBza2JfZ3JvX3JlY2VpdmVfbGlzdChzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRpZiAodW5saWtlbHkocC1cdTAwM2VsZW4gJiM0Mzsgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IDY1NTM2KSlcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFBhY2tldHMgbWFya2VkIHdpdGggTkFQSV9HUk9fQ0Ioc2tiKS1cdTAwM2VmbHVzaCBoYXZlIGFscmVhZHkgZ29uZVxuJiM0MztcdCAqIHRocm91Z2ggR1JPL0xSTyBwcm9jZXNzaW5nIGFuZCBtdXN0IG5vdCBiZSBhZ2dyZWdhdGVkIGFnYWluLlxuJiM0MztcdCAqIFJlLWVudGVyaW5nIGZyYWdfbGlzdCBHUk8gbWF5IGNvcnJ1cHQgdGhlIGZyYWdfbGlzdCBjaGFpbiBhbmRcbiYjNDM7XHQgKiBsYXRlciBjcmFzaCBkdXJpbmcgR1NPIHNlZ21lbnRhaW9udC5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAodW5saWtlbHkocC1cdTAwM2VsZW4gJiM0Mzsgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IDY1NTM2IHx8XG4mIzQzO1x0XHQgICAgIE5BUElfR1JPX0NCKHNrYiktXHUwMDNlZmx1c2gpKVxuIFx0XHRyZXR1cm4gLUUyQklHO1xuIFxuIFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2tiX2dyb19vZmZzZXQoc2tiKSkpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NrYl9ncm9fcmVjZWl2ZV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgaW4gYG5ldC9jb3JlL2dyby5jYCwgd2hpY2ggaXMgY29yZSBuZXR3b3JraW5nIGNvZGUgZm9yIEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkIChHUk8pLiBJdCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBwYWNrZXRzIG1hcmtlZCB3aXRoIGBmbHVzaGAgZnJvbSBiZWluZyBhZ2dyZWdhdGVkIGFnYWluLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0OWU3M2M3MzUyMmJkZjgxNTZlZjJiODlmYjQzNWNmNTM1MjAwZjViCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMiAxMDozNjo1MSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dyby5jIGIvbmV0L2NvcmUvZ3JvLmMKaW5kZXggMzVmMmY3MDhmMDEwNTIuLmRkNjNjZmUzYmZmZjQxIDEwMDY0NAotLS0gYS9uZXQvY29yZS9ncm8uYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvY29yZS9ncm8uYwpAQCAtMjI5LDcgJiM0MzsyMjksMTQgQEAgaW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogaW50IHNrYl9ncm9fcmVjZWl2ZV9saXN0KHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotCWlmICh1bmxpa2VseShwLSZndDtsZW4gJiM0Mzsgc2tiLSZndDtsZW4gJmd0Oz0gNjU1MzYpKQomIzQzOwkvKgomIzQzOwkgKiBQYWNrZXRzIG1hcmtlZCB3aXRoIE5BUElfR1JPX0NCKHNrYiktJmd0O2ZsdXNoIGhhdmUgYWxyZWFkeSBnb25lCiYjNDM7CSAqIHRocm91Z2ggR1JPL0xSTyBwcm9jZXNzaW5nIGFuZCBtdXN0IG5vdCBiZSBhZ2dyZWdhdGVkIGFnYWluLgomIzQzOwkgKiBSZS1lbnRlcmluZyBmcmFnX2xpc3QgR1JPIG1heSBjb3JydXB0IHRoZSBmcmFnX2xpc3QgY2hhaW4gYW5kCiYjNDM7CSAqIGxhdGVyIGNyYXNoIGR1cmluZyBHU08gc2VnbWVudGFpb250LgomIzQzOwkgKi8KJiM0MzsJaWYgKHVubGlrZWx5KHAtJmd0O2xlbiAmIzQzOyBza2ItJmd0O2xlbiAmZ3Q7PSA2NTUzNiB8fAomIzQzOwkJICAgICBOQVBJX0dST19DQihza2IpLSZndDtmbHVzaCkpCiAJCXJldHVybiAtRTJCSUc7CiAKIAlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBza2JfZ3JvX29mZnNldChza2IpKSkgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTUxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBHUk8gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9jb3JlL2dyby5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGZ1bmN0aW9uLiBGcm9tIHdoYXQgSSYjMzk7bSBzZWVpbmcsIGEgbmV3IGNoZWNrIGhhcyBiZWVuIGFkZGVkIHdpdGhpbiBgc2tiX2dyb19yZWNlaXZlX2xpc3RgOiBgTkFQSV9HUk9fQ0Ioc2tiKS0mZ3Q7Zmx1c2hgLiBJZiB0aGlzIGZsYWcgaXMgc2V0IHRvIHRydWUsIHRoZSBmdW5jdGlvbiBub3cgcmV0dXJucyBgLUUyQklHYC4KCk15IGZpcnN0IHRob3VnaHQgaXMsIHdoeSBgLUUyQklHYD8gVGhhdCB1c3VhbGx5IHNpZ25pZmllcyBhICYjMzQ7TWVzc2FnZSB0b28gbG9uZyYjMzQ7IGVycm9yLCB3aGljaCwgaW4gdGhlIGNvbnRleHQgb2YgR1JPLCBpbXBsaWVzIHRoYXQgdGhlIGFnZ3JlZ2F0ZWQgcGFja2V0IGlzIGV4Y2VlZGluZyBzb21lIGtpbmQgb2Ygc2l6ZSBsaW1pdC4gSXMgdGhpcyByZWxhdGVkIHRvIHNvbWUgc29ydCBvZiBoYXJkd2FyZSBvZmZsb2FkIGxpbWl0YXRpb25zPyBPciBpcyBpdCBhIHNvZnR3YXJlLWVuZm9yY2VkIHJlc3RyaWN0aW9uIHRvIHByZXZlbnQgc29tZSBwYXRob2xvZ2ljYWwgR1JPIGJlaGF2aW9yPyBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgdGhlIHN1cnJvdW5kaW5nIGNvbnRleHQgYW5kIHdoeSB0aGUgYGZsdXNoYCBmbGFnIHdvdWxkIGJlIHVzZWQgaW4gdGhpcyB3YXkuCgpJJiMzOTtsbCBuZWVkIHRvIGludmVzdGlnYXRlIGhvdyBgTkFQSV9HUk9fQ0Ioc2tiKS0mZ3Q7Zmx1c2hgIGlzIHNldCBhbmQgd2hhdCB0cmlnZ2VycyBpdC4gVW5kZXJzdGFuZGluZyB0aGUgY2lyY3Vtc3RhbmNlcyB0aGF0IGxlYWQgdG8gdGhpcyBlcnJvciB3aWxsIGJlIGNydWNpYWwgZm9yIGV2YWx1YXRpbmcgdGhlIHBhdGNoJiMzOTtzIGltcGFjdCBvbiBwZXJmb3JtYW5jZSBhbmQgcG90ZW50aWFsbHkgdW5jb3ZlcmluZyBhbnkgc3VidGxlIHNpZGUgZWZmZWN0cy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBjYXNlIGZvciB0aGlzIG5ldyBlcnJvci4gV2hhdCBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgc2V0dGluZyB0aGlzIGZsYWc/IERvZXMgaXQgaW5kaWNhdGUgYW4gZWFybHkgdGVybWluYXRpb24gb2YgYSBHUk8gYWdncmVnYXRpb24gcHJvY2Vzcz8gT3IgZG9lcyBpdCBtZWFuIHRoYXQgcGFja2V0cyBzaG91bGQgbm90IGJlIGFkZGVkIHRvIHRoZSBHUk8gbGlzdD8gSSYjMzk7bGwgaGVhZCBiYWNrIGludG8gYG5ldC9jb3JlL2dyby5jYCB0byB1bmRlcnN0YW5kIHRoZSBjb2RlIGxvZ2ljIGJldHRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtza2JfZ3JvX3JlY2VpdmVfbGlzdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9jb3JlL2dyby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL2dyby5jPTkyPWludCBza2JfZ3JvX3JlY2VpdmUoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L2NvcmUvZ3JvLmMtMjI5LVxubmV0L2NvcmUvZ3JvLmM6MjMwOmludCBza2JfZ3JvX3JlY2VpdmVfbGlzdChzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbm5ldC9jb3JlL2dyby5jLTIzMS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUyMAoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgQ2FsbHMqKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHVzYWdlIG9mIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAuIFRoZSBiZXN0IHN0YXJ0aW5nIHBvaW50LCBuYXR1cmFsbHksIGlzIHRvIHRyYWNlIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgYWN0dWFsbHkgKmNhbGxlZCogd2l0aGluIHRoZSBrZXJuZWwuIFRoYXQmIzM5O3MgdGhlIGZ1bmRhbWVudGFsIGZpcnN0IHN0ZXAuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHRoZSBjb250ZXh0IGluIHdoaWNoIGl0IG9wZXJhdGVzLiBXaGF0IG90aGVyIGZ1bmN0aW9ucyBkb2VzIGl0IGludGVyYWN0IHdpdGg/IFdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBwYXNzZWQgaW4/IEVzc2VudGlhbGx5LCBJIHdhbnQgYSBjb21wbGV0ZSBjYWxsIGdyYXBoIGxlYWRpbmcgdG8gYHNrYl9ncm9fcmVjZWl2ZV9saXN0YC4gS25vd2luZyB0aGUgY2FsbCBzaXRlcyB3aWxsIGJlIGNyaXRpY2FsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyByb2xlIGluIHRoZSBHUk8gKEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkKSBpbXBsZW1lbnRhdGlvbi4gRnJvbSB0aGVyZSBJIGNhbiBkZXRlcm1pbmUgaXRzIHJvbGUsIHVuZGVyc3RhbmQgaWYgaXQgaXMgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrLCBhbmQgc2VlIHdoZXJlIGltcHJvdmVtZW50cyBtaWdodCBiZSBwb3NzaWJsZS4gVGhpcyBzaG91bGQgYmUgYSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIHByb2Nlc3MsIHVzaW5nIHRoZSBzdGFuZGFyZCBrZXJuZWwgc2VhcmNoIHRvb2xzLiBMZXQmIzM5O3MgZGlnIGluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NrYl9ncm9fcmVjZWl2ZV9saXN0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbmV0L2dyby5oPTUwMT1pbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbmluY2x1ZGUvbmV0L2dyby5oOjUwMjppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpO1xuaW5jbHVkZS9uZXQvZ3JvLmgtNTAzLXZvaWQgX19ncm9fZmx1c2goc3RydWN0IGdyb19ub2RlICpncm8sIGJvb2wgZmx1c2hfb2xkKTtcbi0tXG5uZXQvY29yZS9ncm8uYz05Mj1pbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9jb3JlL2dyby5jLTIyOS1cbm5ldC9jb3JlL2dyby5jOjIzMDppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXG5uZXQvY29yZS9ncm8uYy0yMzEte1xuLS1cbm5ldC9jb3JlL3NrYnVmZi5jPTQ2Njg9c3RydWN0IHNrX2J1ZmYgKnNrYl9zZWdtZW50X2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5uZXQvY29yZS9za2J1ZmYuYy00Njc4LVxubmV0L2NvcmUvc2tidWZmLmM6NDY3OTpcdC8qIE9ubHkgc2tiX2dyb19yZWNlaXZlX2xpc3QgZ2VuZXJhdGVkIHNrYnMgYXJyaXZlIGhlcmUgKi9cbm5ldC9jb3JlL3NrYnVmZi5jLTQ2ODAtXHRERUJVR19ORVRfV0FSTl9PTl9PTkNFKCEoc2tiX3NoaW5mbyhza2IpLVx1MDAzZWdzb190eXBlIFx1MDAyNiBTS0JfR1NPX0ZSQUdMSVNUKSk7XG4tLVxubmV0L2lwdjQvdGNwX29mZmxvYWQuYz0yODY9c3RydWN0IHNrX2J1ZmYgKnRjcF9ncm9fcmVjZWl2ZShzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmMtMzM2LVxubmV0L2lwdjQvdGNwX29mZmxvYWQuYzozMzc6XHRcdGlmIChmbHVzaCB8fCBza2JfZ3JvX3JlY2VpdmVfbGlzdChwLCBza2IpKVxubmV0L2lwdjQvdGNwX29mZmxvYWQuYy0zMzgtXHRcdFx0bXNzID0gMTtcbi0tXG5uZXQvaXB2NC91ZHBfb2ZmbG9hZC5jPTY5ND1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnVkcF9ncm9fcmVjZWl2ZV9zZWdtZW50KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsXG4tLVxubmV0L2lwdjQvdWRwX29mZmxvYWQuYy03NTgtXHRcdFx0XHRza2Jfc2V0X25ldHdvcmtfaGVhZGVyKHNrYiwgc2tiX2dyb19yZWNlaXZlX25ldHdvcmtfb2Zmc2V0KHNrYikpO1xubmV0L2lwdjQvdWRwX29mZmxvYWQuYzo3NTk6XHRcdFx0XHRyZXQgPSBza2JfZ3JvX3JlY2VpdmVfbGlzdChwLCBza2IpO1xubmV0L2lwdjQvdWRwX29mZmxvYWQuYy03NjAtXHRcdFx0fSBlbHNlIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzc4CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipHUk8gRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKUmlnaHQsIHRoaXMgbG9va3MgcHJvbWlzaW5nLiBXZSYjMzk7dmUgZ290IG91ciBob29rcyBpbnRvIHRoZSBjb3JlIG5ldHdvcmtpbmcgY29kZSBoZXJlIOKAkyBgdGNwX2dyb19yZWNlaXZlYCBhbmQgYHVkcF9ncm9fcmVjZWl2ZV9zZWdtZW50YCwgc3BlY2lmaWNhbGx5LiBUaGlzIGlzIHRoZSBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKSBhcmVhLCBhbmQgdGhhdCYjMzk7cyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZywgYWJzb2x1dGVseS4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBoYW5kbGluZyBwYWNrZXQgcmVhc3NlbWJseSBtYWtlcyBpdCBhIGxpa2VseSBjYW5kaWRhdGUgZm9yIGV4cGxvaXRhYmxlIHZ1bG5lcmFiaWxpdGllcy4gR2l2ZW4gdGhlIG5hbWVzIG9mIHRoZSBmdW5jdGlvbnMsIEkga25vdyBpdCYjMzk7cyAqcmVhY2hhYmxlKiwgbWVhbmluZyBmdXp6aW5nIHNob3VsZCBoaXQgdGhpcyBjb2RlLiBUaGUga2V5IHN5bWJvbCB0byBmb2N1cyBvbiBzZWVtcyB0byBiZSBgc2tiX2dyb19yZWNlaXZlX2xpc3RgLgoKTm93LCBiZWZvcmUgd2UgZGl2ZSB0b28gZGVlcCBpbnRvIGNyYWZ0aW5nIGZ1enogY2FzZXMsIGxldCYjMzk7cyBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrLiBJJiMzOTttIGdvaW5nIHRvIGxvb2sgZm9yIGFueSBHUk8tc3BlY2lmaWMgYENPTkZJR2Agb3B0aW9ucy4gV2hpbGUgR1JPIGlzIG9mdGVuIGVuYWJsZWQgYnkgZGVmYXVsdCwgb3IgYmFrZWQgaW50byBjb3JlIG5ldHdvcmtpbmcgZmVhdHVyZXMsIHRoZXJlJiMzOTtzIGFsd2F5cyBhIGNoYW5jZSB0aGVyZSBhcmUgY29uZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBhZmZlY3Qgb3VyIGNvdmVyYWdlIG9yIHRyaWdnZXIgZGlmZmVyZW50IGNvZGUgcGF0aHMuIEl0JiMzOTtzIGEgcXVpY2sgY2hlY2sgdGhhdCBjYW4gc2F2ZSBhIGxvdCBvZiB0aW1lIGRvd24gdGhlIHJvYWQsIGFuZCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gc2VlaW5nIHRoZSBzYW1lIHNldHVwIGFzIG15IHVzZXJzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2tiX2dyb19yZWNlaXZlX2xpc3QmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvY29yZS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc3NQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIGRpcmVjdCwgaW50ZXJuYWwgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgR1JPIEltcGxlbWVudGF0aW9uKioKClJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKSBpcyBhY3R1YWxseSBpbXBsZW1lbnRlZCBpbiB0aGUga2VybmVsLiBNeSBzdGFydGluZyBwb2ludCBpcyB1c3VhbGx5IHRoZSBgbmV0L2NvcmVgIGRpcmVjdG9yeSDigJMgaXQmIzM5O3MgdGhlIGhlYXJ0IG9mIHRoZSBuZXR3b3JraW5nIHN0YWNrLiBTbywgdGhlIGZpcnN0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayBvdXQgdGhlIGBNYWtlZmlsZWAgdGhlcmUuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGEgZmlsZSByZWxhdGVkIHRvIEdSTywgcHJvYmFibHkgc29tZXRoaW5nIGxpa2UgYGdyby5jYC4uLiBvciBhIGZpbGUgdGhhdCBtZW50aW9ucyBpdCBpbiB0aGUgZGVwZW5kZW5jaWVzLiBJIGV4cGVjdCB0aGUgYE1ha2VmaWxlYCB3aWxsIHBvaW50IG1lIHRvIHRoZSBtYWluIHNvdXJjZSBmaWxlIG9yIGZpbGVzIGludm9sdmVkIGluIEdSTyBmdW5jdGlvbmFsaXR5LiBGcm9tIHRoZXJlLCBJIGNhbiBzdGFydCB0cmFjaW5nIHRoZSBjb2RlLCB1bmRlcnN0YW5kaW5nIHRoZSBkYXRhIHN0cnVjdHVyZXMgaW52b2x2ZWQsIGFuZCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSB0aGUgcGFja2V0IGNvYWxlc2NpbmcgcHJvY2Vzcy4gSSBuZWVkIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB3aGVyZSB0aGUgcGFja2V0IGlzIHJlY2VpdmVkLCBhbmQgaG93IHRoZSBHUk8gaGFwcGVucyBzbyBJIGNhbiBwcm9wZXJseSBkZWJ1ZyBhbnkgaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMDozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtncm9cXC5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGU9MTI9b2JqLXlcdFx0ICAgICAmIzQzOz0gZGV2Lm8gZGV2X2FwaS5vIGRldl9hZGRyX2xpc3RzLm8gZHN0Lm8gbmV0ZXZlbnQubyBcXFxuLS1cbm5ldC9jb3JlL01ha2VmaWxlLTE0LVx0XHRcdHNvY2tfZGlhZy5vIGRldl9pb2N0bC5vIHRzby5vIHNvY2tfcmV1c2Vwb3J0Lm8gXFxcbm5ldC9jb3JlL01ha2VmaWxlOjE1Olx0XHRcdGZpYl9ub3RpZmllci5vIHhkcC5vIGZsb3dfb2ZmbG9hZC5vIGdyby5vIFxcXG5uZXQvY29yZS9NYWtlZmlsZS0xNi1cdFx0XHRuZXRkZXYtZ2VubC5vIG5ldGRldi1nZW5sLWdlbi5vIG5ldGRldl93b3JrLm8gZ3NvLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTA6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE3NQoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiAxMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgR1JPIENvZGUgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgYGdyby5jYCBpcyBhbHdheXMgY29tcGlsZWQ7IGl0JiMzOTtzIHBhcnQgb2YgdGhlIGJhc2UgYnVpbGQgKGBvYmoteWApLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIOKAkyBJIGRvbiYjMzk7dCBuZWVkIHRvIHdvcnJ5IGFib3V0IGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZsYWdzIHRvIGVuYWJsZSB0aGlzIGZ1bmN0aW9uYWxpdHkuIFRoYXQmIzM5O3MgZ29vZCwgbGVzcyB0byB0cmFjay4KCk5vdywgbGV0JiMzOTtzIG5haWwgZG93biB3aGF0IHRoaXMgbWVhbnMgZm9yIGZ1enppbmcuIEkmIzM5O20gc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAsIG9idmlvdXNseS4gVGhlIGNvcmUgb2YgdGhpcyBjaGFuZ2UgY2VudGVycyBhcm91bmQgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCwgcmlnaHQ/IFNvIHRoYXQmIzM5O3MgZ29pbmcgaW50byB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdDsgd2UmIzM5O2xsIHplcm8gaW4gb24gdGhhdCBmdW5jdGlvbi4KClRoZSBgRW5hYmxlQ29uZmlnc2AgbGlzdCBpcyBlbXB0eSBiZWNhdXNlLCBhcyBJJiMzOTt2ZSBhbHJlYWR5IGVzdGFibGlzaGVkLCB0aGlzIGNvZGUgaXMgYWx3YXlzIGJ1aWx0LiBUaGVyZSYjMzk7cyBubyBjb25kaXRpb25hbCBjb21waWxhdGlvbiBoZXJlIHRvIHdvcnJ5IGFib3V0LCBubyBzcGVjaWZpYyBmZWF0dXJlIGZsYWdzIG5lZWRlZC4KClRoZSAqcmVhc29uKiBmb3IgdGhpcyBzZXR1cCBpcyBzdHJhaWdodGZvcndhcmQ6IHRoZSBwYXRjaCB0b3VjaGVzIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgd2l0aGluIGBuZXQvY29yZS9ncm8uY2AuIFRoaXMgaXMgZm91bmRhdGlvbmFsIG5ldHdvcmtpbmcgY29kZSDigJMgaXQmIzM5O3MgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQsIGFuZCBpdCYjMzk7cyBlc3NlbnRpYWwuIFRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBwYWNrZXRzIGZsYWdnZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgcmUtYWdncmVnYXRlZC4gSXQmIzM5O3MgZnVuY3Rpb25hbCBjb2RlLCBhbmQgaXQmIzM5O3MgZGVmaW5pdGVseSByZWFjaGFibGUuIFRoaXMgaXMgKmV4YWN0bHkqIHRoZSBraW5kIG9mIGNoYW5nZSB3ZSB3YW50IHRvIHRhcmdldCB3aXRoIGZ1enppbmcuIEl0JiMzOTtzIGEga2V5IGZ1bmN0aW9uIGluIGEgY3JpdGljYWwgYXJlYSwgbWFraW5nIGl0IGEgaGlnaC12YWx1ZSB0YXJnZXQgZm9yIGlkZW50aWZ5aW5nIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEwOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtza2JfZ3JvX3JlY2VpdmVfbGlzdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGluIGBuZXQvY29yZS9ncm8uY2AsIHdoaWNoIGlzIGNvcmUgbmV0d29ya2luZyBjb2RlIGZvciBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKS4gSXQgYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgcGFja2V0cyBtYXJrZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgYWdncmVnYXRlZCBhZ2Fpbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtza2JfZ3JvX3JlY2VpdmVfbGlzdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGluIGBuZXQvY29yZS9ncm8uY2AsIHdoaWNoIGlzIGNvcmUgbmV0d29ya2luZyBjb2RlIGZvciBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKS4gSXQgYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgcGFja2V0cyBtYXJrZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgYWdncmVnYXRlZCBhZ2Fpbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUyLjgzODE1Mjc2OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNDEyOTk0MzI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNrYl9ncm9fcmVjZWl2ZV9saXN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBpbiBgbmV0L2NvcmUvZ3JvLmNgLCB3aGljaCBpcyBjb3JlIG5ldHdvcmtpbmcgY29kZSBmb3IgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykuIEl0IGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgbWFya2VkIHdpdGggYGZsdXNoYCBmcm9tIGJlaW5nIGFnZ3JlZ2F0ZWQgYWdhaW4uIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUyLjgzODE1ODE3OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE5MjcxMzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDllNzNjNzM1MjJiZGY4MTU2ZWYyYjg5ZmI0MzVjZjUzNTIwMGY1YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyIDEwOjM2OjUxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dyby5jIGIvbmV0L2NvcmUvZ3JvLmNcXG5pbmRleCAzNWYyZjcwOGYwMTA1Mi4uZGQ2M2NmZTNiZmZmNDEgMTAwNjQ0XFxuLS0tIGEvbmV0L2NvcmUvZ3JvLmNcXG4rKysgYi9uZXQvY29yZS9ncm8uY1xcbkBAIC0yMjksNyArMjI5LDE0IEBAIGludCBza2JfZ3JvX3JlY2VpdmUoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXFxuIFxcbiBpbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4tXFx0aWYgKHVubGlrZWx5KHAtXFx1MDAzZWxlbiArIHNrYi1cXHUwMDNlbGVuIFxcdTAwM2U9IDY1NTM2KSlcXG4rXFx0LypcXG4rXFx0ICogUGFja2V0cyBtYXJrZWQgd2l0aCBOQVBJX0dST19DQihza2IpLVxcdTAwM2VmbHVzaCBoYXZlIGFscmVhZHkgZ29uZVxcbitcXHQgKiB0aHJvdWdoIEdSTy9MUk8gcHJvY2Vzc2luZyBhbmQgbXVzdCBub3QgYmUgYWdncmVnYXRlZCBhZ2Fpbi5cXG4rXFx0ICogUmUtZW50ZXJpbmcgZnJhZ19saXN0IEdSTyBtYXkgY29ycnVwdCB0aGUgZnJhZ19saXN0IGNoYWluIGFuZFxcbitcXHQgKiBsYXRlciBjcmFzaCBkdXJpbmcgR1NPIHNlZ21lbnRhaW9udC5cXG4rXFx0ICovXFxuK1xcdGlmICh1bmxpa2VseShwLVxcdTAwM2VsZW4gKyBza2ItXFx1MDAzZWxlbiBcXHUwMDNlPSA2NTUzNiB8fFxcbitcXHRcXHQgICAgIE5BUElfR1JPX0NCKHNrYiktXFx1MDAzZWZsdXNoKSlcXG4gXFx0XFx0cmV0dXJuIC1FMkJJRztcXG4gXFxuIFxcdGlmICghcHNrYl9tYXlfcHVsbChza2IsIHNrYl9ncm9fb2Zmc2V0KHNrYikpKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUzLjE1ODE4OTc3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjEwOTI5NTIzNDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2tiX2dyb19yZWNlaXZlX2xpc3RcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIGluIGBuZXQvY29yZS9ncm8uY2AsIHdoaWNoIGlzIGNvcmUgbmV0d29ya2luZyBjb2RlIGZvciBHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCAoR1JPKS4gSXQgYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgcGFja2V0cyBtYXJrZWQgd2l0aCBgZmx1c2hgIGZyb20gYmVpbmcgYWdncmVnYXRlZCBhZ2Fpbi4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0OWU3M2M3MzUyMmJkZjgxNTZlZjJiODlmYjQzNWNmNTM1MjAwZjViXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMiAxMDozNjo1MSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dyby5jIGIvbmV0L2NvcmUvZ3JvLmNcbmluZGV4IDM1ZjJmNzA4ZjAxMDUyLi5kZDYzY2ZlM2JmZmY0MSAxMDA2NDRcbi0tLSBhL25ldC9jb3JlL2dyby5jXG4rKysgYi9uZXQvY29yZS9ncm8uY1xuQEAgLTIyOSw3ICsyMjksMTQgQEAgaW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiBpbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuLVx0aWYgKHVubGlrZWx5KHAtXHUwMDNlbGVuICsgc2tiLVx1MDAzZWxlbiBcdTAwM2U9IDY1NTM2KSlcbitcdC8qXG4rXHQgKiBQYWNrZXRzIG1hcmtlZCB3aXRoIE5BUElfR1JPX0NCKHNrYiktXHUwMDNlZmx1c2ggaGF2ZSBhbHJlYWR5IGdvbmVcbitcdCAqIHRocm91Z2ggR1JPL0xSTyBwcm9jZXNzaW5nIGFuZCBtdXN0IG5vdCBiZSBhZ2dyZWdhdGVkIGFnYWluLlxuK1x0ICogUmUtZW50ZXJpbmcgZnJhZ19saXN0IEdSTyBtYXkgY29ycnVwdCB0aGUgZnJhZ19saXN0IGNoYWluIGFuZFxuK1x0ICogbGF0ZXIgY3Jhc2ggZHVyaW5nIEdTTyBzZWdtZW50YWlvbnQuXG4rXHQgKi9cbitcdGlmICh1bmxpa2VseShwLVx1MDAzZWxlbiArIHNrYi1cdTAwM2VsZW4gXHUwMDNlPSA2NTUzNiB8fFxuK1x0XHQgICAgIE5BUElfR1JPX0NCKHNrYiktXHUwMDNlZmx1c2gpKVxuIFx0XHRyZXR1cm4gLUUyQklHO1xuIFxuIFx0aWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2tiX2dyb19vZmZzZXQoc2tiKSkpIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjUzLjE1ODE5MTMyN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5OTM1MzU0NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBHUk8gUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvY29yZS9ncm8uY2AsIHNwZWNpZmljYWxseSB0aGUgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBmdW5jdGlvbi4gRnJvbSB3aGF0IEknbSBzZWVpbmcsIGEgbmV3IGNoZWNrIGhhcyBiZWVuIGFkZGVkIHdpdGhpbiBgc2tiX2dyb19yZWNlaXZlX2xpc3RgOiBgTkFQSV9HUk9fQ0Ioc2tiKS1cdTAwM2VmbHVzaGAuIElmIHRoaXMgZmxhZyBpcyBzZXQgdG8gdHJ1ZSwgdGhlIGZ1bmN0aW9uIG5vdyByZXR1cm5zIGAtRTJCSUdgLlxuXG5NeSBmaXJzdCB0aG91Z2h0IGlzLCB3aHkgYC1FMkJJR2A/IFRoYXQgdXN1YWxseSBzaWduaWZpZXMgYSBcIk1lc3NhZ2UgdG9vIGxvbmdcIiBlcnJvciwgd2hpY2gsIGluIHRoZSBjb250ZXh0IG9mIEdSTywgaW1wbGllcyB0aGF0IHRoZSBhZ2dyZWdhdGVkIHBhY2tldCBpcyBleGNlZWRpbmcgc29tZSBraW5kIG9mIHNpemUgbGltaXQuIElzIHRoaXMgcmVsYXRlZCB0byBzb21lIHNvcnQgb2YgaGFyZHdhcmUgb2ZmbG9hZCBsaW1pdGF0aW9ucz8gT3IgaXMgaXQgYSBzb2Z0d2FyZS1lbmZvcmNlZCByZXN0cmljdGlvbiB0byBwcmV2ZW50IHNvbWUgcGF0aG9sb2dpY2FsIEdSTyBiZWhhdmlvcj8gSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSB0byB1bmRlcnN0YW5kIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0IGFuZCB3aHkgdGhlIGBmbHVzaGAgZmxhZyB3b3VsZCBiZSB1c2VkIGluIHRoaXMgd2F5LlxuXG5JJ2xsIG5lZWQgdG8gaW52ZXN0aWdhdGUgaG93IGBOQVBJX0dST19DQihza2IpLVx1MDAzZWZsdXNoYCBpcyBzZXQgYW5kIHdoYXQgdHJpZ2dlcnMgaXQuIFVuZGVyc3RhbmRpbmcgdGhlIGNpcmN1bXN0YW5jZXMgdGhhdCBsZWFkIHRvIHRoaXMgZXJyb3Igd2lsbCBiZSBjcnVjaWFsIGZvciBldmFsdWF0aW5nIHRoZSBwYXRjaCdzIGltcGFjdCBvbiBwZXJmb3JtYW5jZSBhbmQgcG90ZW50aWFsbHkgdW5jb3ZlcmluZyBhbnkgc3VidGxlIHNpZGUgZWZmZWN0cy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBjYXNlIGZvciB0aGlzIG5ldyBlcnJvci4gV2hhdCBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgc2V0dGluZyB0aGlzIGZsYWc/IERvZXMgaXQgaW5kaWNhdGUgYW4gZWFybHkgdGVybWluYXRpb24gb2YgYSBHUk8gYWdncmVnYXRpb24gcHJvY2Vzcz8gT3IgZG9lcyBpdCBtZWFuIHRoYXQgcGFja2V0cyBzaG91bGQgbm90IGJlIGFkZGVkIHRvIHRoZSBHUk8gbGlzdD8gSSdsbCBoZWFkIGJhY2sgaW50byBgbmV0L2NvcmUvZ3JvLmNgIHRvIHVuZGVyc3RhbmQgdGhlIGNvZGUgbG9naWMgYmV0dGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTUxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNjo1Ny4xNTE3MzA3MDFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjAxMzQ4MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2tiX2dyb19yZWNlaXZlX2xpc3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvZ3JvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvZ3JvLmM9OTI9aW50IHNrYl9ncm9fcmVjZWl2ZShzdHJ1Y3Qgc2tfYnVmZiAqcCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9jb3JlL2dyby5jLTIyOS1cXG5uZXQvY29yZS9ncm8uYzoyMzA6aW50IHNrYl9ncm9fcmVjZWl2ZV9saXN0KHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbm5ldC9jb3JlL2dyby5jLTIzMS17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEwOjM2OjU3LjIxMTg3ODYxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MjU5OTYyMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgQ2FsbHMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgdXNhZ2Ugb2YgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YC4gVGhlIGJlc3Qgc3RhcnRpbmcgcG9pbnQsIG5hdHVyYWxseSwgaXMgdG8gdHJhY2Ugd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSAqY2FsbGVkKiB3aXRoaW4gdGhlIGtlcm5lbC4gVGhhdCdzIHRoZSBmdW5kYW1lbnRhbCBmaXJzdCBzdGVwLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgY29udGV4dCBpbiB3aGljaCBpdCBvcGVyYXRlcy4gV2hhdCBvdGhlciBmdW5jdGlvbnMgZG9lcyBpdCBpbnRlcmFjdCB3aXRoPyBXaGF0IGRhdGEgc3RydWN0dXJlcyBhcmUgcGFzc2VkIGluPyBFc3NlbnRpYWxseSwgSSB3YW50IGEgY29tcGxldGUgY2FsbCBncmFwaCBsZWFkaW5nIHRvIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAuIEtub3dpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCBiZSBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcm9sZSBpbiB0aGUgR1JPIChHZW5lcmljIFJlY2VpdmUgT2ZmbG9hZCkgaW1wbGVtZW50YXRpb24uIEZyb20gdGhlcmUgSSBjYW4gZGV0ZXJtaW5lIGl0cyByb2xlLCB1bmRlcnN0YW5kIGlmIGl0IGlzIGEgcGVyZm9ybWFuY2UgYm90dGxlbmVjaywgYW5kIHNlZSB3aGVyZSBpbXByb3ZlbWVudHMgbWlnaHQgYmUgcG9zc2libGUuIFRoaXMgc2hvdWxkIGJlIGEgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZCBwcm9jZXNzLCB1c2luZyB0aGUgc3RhbmRhcmQga2VybmVsIHNlYXJjaCB0b29scy4gTGV0J3MgZGlnIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTIwLCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MDAuMTM3ODc3NTUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDYzODEzNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2tiX2dyb19yZWNlaXZlX2xpc3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvZ3JvLmg9NTAxPWludCBza2JfZ3JvX3JlY2VpdmUoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpO1xcbmluY2x1ZGUvbmV0L2dyby5oOjUwMjppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpO1xcbmluY2x1ZGUvbmV0L2dyby5oLTUwMy12b2lkIF9fZ3JvX2ZsdXNoKHN0cnVjdCBncm9fbm9kZSAqZ3JvLCBib29sIGZsdXNoX29sZCk7XFxuLS1cXG5uZXQvY29yZS9ncm8uYz05Mj1pbnQgc2tiX2dyb19yZWNlaXZlKHN0cnVjdCBza19idWZmICpwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L2NvcmUvZ3JvLmMtMjI5LVxcbm5ldC9jb3JlL2dyby5jOjIzMDppbnQgc2tiX2dyb19yZWNlaXZlX2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnAsIHN0cnVjdCBza19idWZmICpza2IpXFxubmV0L2NvcmUvZ3JvLmMtMjMxLXtcXG4tLVxcbm5ldC9jb3JlL3NrYnVmZi5jPTQ2Njg9c3RydWN0IHNrX2J1ZmYgKnNrYl9zZWdtZW50X2xpc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9jb3JlL3NrYnVmZi5jLTQ2NzgtXFxubmV0L2NvcmUvc2tidWZmLmM6NDY3OTpcXHQvKiBPbmx5IHNrYl9ncm9fcmVjZWl2ZV9saXN0IGdlbmVyYXRlZCBza2JzIGFycml2ZSBoZXJlICovXFxubmV0L2NvcmUvc2tidWZmLmMtNDY4MC1cXHRERUJVR19ORVRfV0FSTl9PTl9PTkNFKCEoc2tiX3NoaW5mbyhza2IpLVxcdTAwM2Vnc29fdHlwZSBcXHUwMDI2IFNLQl9HU09fRlJBR0xJU1QpKTtcXG4tLVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmM9Mjg2PXN0cnVjdCBza19idWZmICp0Y3BfZ3JvX3JlY2VpdmUoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmMtMzM2LVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmM6MzM3OlxcdFxcdGlmIChmbHVzaCB8fCBza2JfZ3JvX3JlY2VpdmVfbGlzdChwLCBza2IpKVxcbm5ldC9pcHY0L3RjcF9vZmZsb2FkLmMtMzM4LVxcdFxcdFxcdG1zcyA9IDE7XFxuLS1cXG5uZXQvaXB2NC91ZHBfb2ZmbG9hZC5jPTY5ND1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnVkcF9ncm9fcmVjZWl2ZV9zZWdtZW50KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsXFxuLS1cXG5uZXQvaXB2NC91ZHBfb2ZmbG9hZC5jLTc1OC1cXHRcXHRcXHRcXHRza2Jfc2V0X25ldHdvcmtfaGVhZGVyKHNrYiwgc2tiX2dyb19yZWNlaXZlX25ldHdvcmtfb2Zmc2V0KHNrYikpO1xcbm5ldC9pcHY0L3VkcF9vZmZsb2FkLmM6NzU5OlxcdFxcdFxcdFxcdHJldCA9IHNrYl9ncm9fcmVjZWl2ZV9saXN0KHAsIHNrYik7XFxubmV0L2lwdjQvdWRwX29mZmxvYWQuYy03NjAtXFx0XFx0XFx0fSBlbHNlIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MDIuODQ0MjY1NzYyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc2OTY0NzcwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZTpcblxuKipHUk8gRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5SaWdodCwgdGhpcyBsb29rcyBwcm9taXNpbmcuIFdlJ3ZlIGdvdCBvdXIgaG9va3MgaW50byB0aGUgY29yZSBuZXR3b3JraW5nIGNvZGUgaGVyZSDigJMgYHRjcF9ncm9fcmVjZWl2ZWAgYW5kIGB1ZHBfZ3JvX3JlY2VpdmVfc2VnbWVudGAsIHNwZWNpZmljYWxseS4gVGhpcyBpcyB0aGUgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykgYXJlYSwgYW5kIHRoYXQncyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZywgYWJzb2x1dGVseS4gVGhlIGZhY3QgdGhhdCBpdCdzIGhhbmRsaW5nIHBhY2tldCByZWFzc2VtYmx5IG1ha2VzIGl0IGEgbGlrZWx5IGNhbmRpZGF0ZSBmb3IgZXhwbG9pdGFibGUgdnVsbmVyYWJpbGl0aWVzLiBHaXZlbiB0aGUgbmFtZXMgb2YgdGhlIGZ1bmN0aW9ucywgSSBrbm93IGl0J3MgKnJlYWNoYWJsZSosIG1lYW5pbmcgZnV6emluZyBzaG91bGQgaGl0IHRoaXMgY29kZS4gVGhlIGtleSBzeW1ib2wgdG8gZm9jdXMgb24gc2VlbXMgdG8gYmUgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YC5cblxuTm93LCBiZWZvcmUgd2UgZGl2ZSB0b28gZGVlcCBpbnRvIGNyYWZ0aW5nIGZ1enogY2FzZXMsIGxldCdzIGp1c3QgZG8gYSBxdWljayBzYW5pdHkgY2hlY2suIEknbSBnb2luZyB0byBsb29rIGZvciBhbnkgR1JPLXNwZWNpZmljIGBDT05GSUdgIG9wdGlvbnMuIFdoaWxlIEdSTyBpcyBvZnRlbiBlbmFibGVkIGJ5IGRlZmF1bHQsIG9yIGJha2VkIGludG8gY29yZSBuZXR3b3JraW5nIGZlYXR1cmVzLCB0aGVyZSdzIGFsd2F5cyBhIGNoYW5jZSB0aGVyZSBhcmUgY29uZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCBhZmZlY3Qgb3VyIGNvdmVyYWdlIG9yIHRyaWdnZXIgZGlmZmVyZW50IGNvZGUgcGF0aHMuIEl0J3MgYSBxdWljayBjaGVjayB0aGF0IGNhbiBzYXZlIGEgbG90IG9mIHRpbWUgZG93biB0aGUgcm9hZCwgYW5kIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBzZWVpbmcgdGhlIHNhbWUgc2V0dXAgYXMgbXkgdXNlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNzgsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNzowNi42MTM5MTcxMzNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc4NDA1NDcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNrYl9ncm9fcmVjZWl2ZV9saXN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9jb3JlL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNzowNi42NzE3Njc5MDFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTIzNzA4NTkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgZGlyZWN0LCBpbnRlcm5hbCB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIEdSTyBJbXBsZW1lbnRhdGlvbioqXG5cblJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkIChHUk8pIGlzIGFjdHVhbGx5IGltcGxlbWVudGVkIGluIHRoZSBrZXJuZWwuIE15IHN0YXJ0aW5nIHBvaW50IGlzIHVzdWFsbHkgdGhlIGBuZXQvY29yZWAgZGlyZWN0b3J5IOKAkyBpdCdzIHRoZSBoZWFydCBvZiB0aGUgbmV0d29ya2luZyBzdGFjay4gU28sIHRoZSBmaXJzdCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2hlY2sgb3V0IHRoZSBgTWFrZWZpbGVgIHRoZXJlLiBJJ20gc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIGEgZmlsZSByZWxhdGVkIHRvIEdSTywgcHJvYmFibHkgc29tZXRoaW5nIGxpa2UgYGdyby5jYC4uLiBvciBhIGZpbGUgdGhhdCBtZW50aW9ucyBpdCBpbiB0aGUgZGVwZW5kZW5jaWVzLiBJIGV4cGVjdCB0aGUgYE1ha2VmaWxlYCB3aWxsIHBvaW50IG1lIHRvIHRoZSBtYWluIHNvdXJjZSBmaWxlIG9yIGZpbGVzIGludm9sdmVkIGluIEdSTyBmdW5jdGlvbmFsaXR5LiBGcm9tIHRoZXJlLCBJIGNhbiBzdGFydCB0cmFjaW5nIHRoZSBjb2RlLCB1bmRlcnN0YW5kaW5nIHRoZSBkYXRhIHN0cnVjdHVyZXMgaW52b2x2ZWQsIGFuZCB0aGUga2V5IGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSB0aGUgcGFja2V0IGNvYWxlc2NpbmcgcHJvY2Vzcy4gSSBuZWVkIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB3aGVyZSB0aGUgcGFja2V0IGlzIHJlY2VpdmVkLCBhbmQgaG93IHRoZSBHUk8gaGFwcGVucyBzbyBJIGNhbiBwcm9wZXJseSBkZWJ1ZyBhbnkgaXNzdWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzc1LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MDkuNTk1NDc5MjY0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzM5MTgxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJncm9cXFxcLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9MTI9b2JqLXlcXHRcXHQgICAgICs9IGRldi5vIGRldl9hcGkubyBkZXZfYWRkcl9saXN0cy5vIGRzdC5vIG5ldGV2ZW50Lm8gXFxcXFxcbi0tXFxubmV0L2NvcmUvTWFrZWZpbGUtMTQtXFx0XFx0XFx0c29ja19kaWFnLm8gZGV2X2lvY3RsLm8gdHNvLm8gc29ja19yZXVzZXBvcnQubyBcXFxcXFxubmV0L2NvcmUvTWFrZWZpbGU6MTU6XFx0XFx0XFx0ZmliX25vdGlmaWVyLm8geGRwLm8gZmxvd19vZmZsb2FkLm8gZ3JvLm8gXFxcXFxcbm5ldC9jb3JlL01ha2VmaWxlLTE2LVxcdFxcdFxcdG5ldGRldi1nZW5sLm8gbmV0ZGV2LWdlbmwtZ2VuLm8gbmV0ZGV2X3dvcmsubyBnc28ub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMDozNzowOS42ODg4NzY5MzFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU2MjIzNzk2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBHUk8gQ29kZSBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMsIGBncm8uY2AgaXMgYWx3YXlzIGNvbXBpbGVkOyBpdCdzIHBhcnQgb2YgdGhlIGJhc2UgYnVpbGQgKGBvYmoteWApLiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzIOKAkyBJIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgYW55IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmxhZ3MgdG8gZW5hYmxlIHRoaXMgZnVuY3Rpb25hbGl0eS4gVGhhdCdzIGdvb2QsIGxlc3MgdG8gdHJhY2suXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIHdoYXQgdGhpcyBtZWFucyBmb3IgZnV6emluZy4gSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLCBvYnZpb3VzbHkuIFRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGNlbnRlcnMgYXJvdW5kIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAsIHJpZ2h0PyBTbyB0aGF0J3MgZ29pbmcgaW50byB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdDsgd2UnbGwgemVybyBpbiBvbiB0aGF0IGZ1bmN0aW9uLlxuXG5UaGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3QgaXMgZW1wdHkgYmVjYXVzZSwgYXMgSSd2ZSBhbHJlYWR5IGVzdGFibGlzaGVkLCB0aGlzIGNvZGUgaXMgYWx3YXlzIGJ1aWx0LiBUaGVyZSdzIG5vIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGhlcmUgdG8gd29ycnkgYWJvdXQsIG5vIHNwZWNpZmljIGZlYXR1cmUgZmxhZ3MgbmVlZGVkLlxuXG5UaGUgKnJlYXNvbiogZm9yIHRoaXMgc2V0dXAgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGUgcGF0Y2ggdG91Y2hlcyBgc2tiX2dyb19yZWNlaXZlX2xpc3RgIHdpdGhpbiBgbmV0L2NvcmUvZ3JvLmNgLiBUaGlzIGlzIGZvdW5kYXRpb25hbCBuZXR3b3JraW5nIGNvZGUg4oCTIGl0J3MgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQsIGFuZCBpdCdzIGVzc2VudGlhbC4gVGhlIHBhdGNoIGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgZmxhZ2dlZCB3aXRoIGBmbHVzaGAgZnJvbSBiZWluZyByZS1hZ2dyZWdhdGVkLiBJdCdzIGZ1bmN0aW9uYWwgY29kZSwgYW5kIGl0J3MgZGVmaW5pdGVseSByZWFjaGFibGUuIFRoaXMgaXMgKmV4YWN0bHkqIHRoZSBraW5kIG9mIGNoYW5nZSB3ZSB3YW50IHRvIHRhcmdldCB3aXRoIGZ1enppbmcuIEl0J3MgYSBrZXkgZnVuY3Rpb24gaW4gYSBjcml0aWNhbCBhcmVhLCBtYWtpbmcgaXQgYSBoaWdoLXZhbHVlIHRhcmdldCBmb3IgaWRlbnRpZnlpbmcgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE3NSwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTA6Mzc6MTQuMjUxMTE3MTUzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM3NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJza2JfZ3JvX3JlY2VpdmVfbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBza2JfZ3JvX3JlY2VpdmVfbGlzdGAgaW4gYG5ldC9jb3JlL2dyby5jYCwgd2hpY2ggaXMgY29yZSBuZXR3b3JraW5nIGNvZGUgZm9yIEdlbmVyaWMgUmVjZWl2ZSBPZmZsb2FkIChHUk8pLiBJdCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBwYWNrZXRzIG1hcmtlZCB3aXRoIGBmbHVzaGAgZnJvbSBiZWluZyBhZ2dyZWdhdGVkIGFnYWluLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNrYl9ncm9fcmVjZWl2ZV9saXN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHNrYl9ncm9fcmVjZWl2ZV9saXN0YCBpbiBgbmV0L2NvcmUvZ3JvLmNgLCB3aGljaCBpcyBjb3JlIG5ldHdvcmtpbmcgY29kZSBmb3IgR2VuZXJpYyBSZWNlaXZlIE9mZmxvYWQgKEdSTykuIEl0IGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IHBhY2tldHMgbWFya2VkIHdpdGggYGZsdXNoYCBmcm9tIGJlaW5nIGFnZ3JlZ2F0ZWQgYWdhaW4uIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowbj7qx[1] Phase: Succeeded StartedAt: 2026-07-02 10:37:25 +0000 UTC FinishedAt: 2026-07-02 10:37:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-02 10:37:25 +0000 UTC FinishedAt: 2026-07-02 10:37:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2] Phase: Succeeded StartedAt: 2026-07-02 10:37:25 +0000 UTC FinishedAt: 2026-07-02 14:44:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-02 10:37:25 +0000 UTC FinishedAt: 2026-07-02 14:44:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-02 10:37:25 +0000 UTC FinishedAt: 2026-07-02 10:37:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-02 10:37:25 +0000 UTC FinishedAt: 2026-07-02 10:37:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowbj7qx/series-workflowbj7qx-convert-artifact-3592370475/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-02 10:37:35 +0000 UTC FinishedAt: 2026-07-02 11:06:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-02 10:37:35 +0000 UTC FinishedAt: 2026-07-02 11:06:57 +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:*86f025fd-5944-42bc-b7b2-b67657952842,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-workflowbj7qx/series-workflowbj7qx-convert-artifact-3592370475/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": "37a69bc1-23fd-46b0-9b05-211d0fd16a81", "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-workflowbj7qx/series-workflowbj7qx-build-action-376621609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-02 10:37:35 +0000 UTC FinishedAt: 2026-07-02 11:05:21 +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:*86f025fd-5944-42bc-b7b2-b67657952842,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-workflowbj7qx/series-workflowbj7qx-convert-artifact-3592370475/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": "37a69bc1-23fd-46b0-9b05-211d0fd16a81", "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-workflowbj7qx/series-workflowbj7qx-build-action-376621609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-02 11:06:57 +0000 UTC FinishedAt: 2026-07-02 11:06:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-02 11:06:57 +0000 UTC FinishedAt: 2026-07-02 11:06:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-02 11:06:57 +0000 UTC FinishedAt: 2026-07-02 11:07:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-02 11:06:57 +0000 UTC FinishedAt: 2026-07-02 11:07:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowbj7qx/series-workflowbj7qx-convert-artifact-3601779458/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-02 11:07:11 +0000 UTC FinishedAt: 2026-07-02 11:09:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-02 11:07:11 +0000 UTC FinishedAt: 2026-07-02 11:09:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*37a69bc1-23fd-46b0-9b05-211d0fd16a81,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-workflowbj7qx/series-workflowbj7qx-build-action-376621609/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-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-02 11:09:40 +0000 UTC FinishedAt: 2026-07-02 11:09:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-02 11:09:40 +0000 UTC FinishedAt: 2026-07-02 11:09:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-02 11:09:40 +0000 UTC FinishedAt: 2026-07-02 11:38:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-02 11:09:40 +0000 UTC FinishedAt: 2026-07-02 11:38:44 +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:*86f025fd-5944-42bc-b7b2-b67657952842,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-workflowbj7qx/series-workflowbj7qx-convert-artifact-3601779458/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": "d2f67771-aed3-4416-8b2f-025992c36e20", "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-workflowbj7qx/series-workflowbj7qx-build-action-467842390/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-02 11:09:40 +0000 UTC FinishedAt: 2026-07-02 11:38:34 +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:*86f025fd-5944-42bc-b7b2-b67657952842,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-workflowbj7qx/series-workflowbj7qx-convert-artifact-3601779458/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": "d2f67771-aed3-4416-8b2f-025992c36e20", "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-workflowbj7qx/series-workflowbj7qx-build-action-467842390/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-02 11:38:44 +0000 UTC FinishedAt: 2026-07-02 11:38:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-02 11:38:44 +0000 UTC FinishedAt: 2026-07-02 11:38:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-02 11:38:44 +0000 UTC FinishedAt: 2026-07-02 11:40:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-02 11:38:44 +0000 UTC FinishedAt: 2026-07-02 11:40:49 +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:*d2f67771-aed3-4416-8b2f-025992c36e20,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-workflowbj7qx/series-workflowbj7qx-build-action-467842390/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-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-02 11:40:59 +0000 UTC FinishedAt: 2026-07-02 14:44:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-02 11:40:59 +0000 UTC FinishedAt: 2026-07-02 14:44:33 +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":["skb_gro_receive_list"],"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:*37a69bc1-23fd-46b0-9b05-211d0fd16a81,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d2f67771-aed3-4416-8b2f-025992c36e20,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-workflowbj7qx/series-workflowbj7qx-build-action-376621609/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-workflowbj7qx/series-workflowbj7qx-build-action-467842390/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-02 11:40:59 +0000 UTC FinishedAt: 2026-07-02 11:41:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-02 11:40:59 +0000 UTC FinishedAt: 2026-07-02 11:41: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":["skb_gro_receive_list"],"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-workflowbj7qx/series-workflowbj7qx-convert-artifact-2323778871/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-02 11:40:59 +0000 UTC FinishedAt: 2026-07-02 11:40:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-02 11:40:59 +0000 UTC FinishedAt: 2026-07-02 11:40:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-02 11:40:59 +0000 UTC FinishedAt: 2026-07-02 11:40:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-02 11:41:34 +0000 UTC FinishedAt: 2026-07-02 14:44:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbj7qx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["skb_gro_receive_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6e81529749190123aa0040626c7e5dbc20fdc9a","config_name":"upstream-apparmor-kasan.config","series_id":"1b4ecd17-b820-4915-8f34-6d6869d2e80a","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-02 11:41:34 +0000 UTC FinishedAt: 2026-07-02 14:44:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*37a69bc1-23fd-46b0-9b05-211d0fd16a81,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d2f67771-aed3-4416-8b2f-025992c36e20,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-workflowbj7qx/series-workflowbj7qx-build-action-376621609/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-workflowbj7qx/series-workflowbj7qx-build-action-467842390/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-workflowbj7qx/series-workflowbj7qx-convert-artifact-2323778871/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,}