Name: series-workflowl7zjz Phase: Succeeded StartedAt: 2026-07-03 14:14:01 +0000 UTC FinishedAt: 2026-07-03 16:09:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[0] Phase: Succeeded StartedAt: 2026-07-03 14:14:01 +0000 UTC FinishedAt: 2026-07-03 14:39:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[0].run-triage Phase: Succeeded StartedAt: 2026-07-03 14:14:01 +0000 UTC FinishedAt: 2026-07-03 14:39:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "5ba54393dcd7adf75a9f39f5a933b1538349cad5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN_VENDOR_RALINK", "RT2X00", "RT2400PCI", "RT2500PCI", "RT61PCI", "RT2800PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "5ba54393dcd7adf75a9f39f5a933b1538349cad5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN_VENDOR_RALINK", "RT2X00", "RT2400PCI", "RT2500PCI", "RT61PCI", "RT2800PCI" ], "series_id": "58737a93-e73d-48df-997a-e3cbb299a871" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rt2400pci_validate_eeprom", "rt2500pci_validate_eeprom", "rt2800pci_read_eeprom_pci", "rt61pci_validate_eeprom" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dMQU5fVkVORE9SX1JBTElOSyYjMzQ7LAogICAgJiMzNDtSVDJYMDAmIzM0OywKICAgICYjMzQ7UlQyNDAwUENJJiMzNDssCiAgICAmIzM0O1JUMjUwMFBDSSYjMzQ7LAogICAgJiMzNDtSVDYxUENJJiMzNDssCiAgICAmIzM0O1JUMjgwMFBDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20mIzM0OywKICAgICYjMzQ7cnQyNTAwcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7LAogICAgJiMzNDtydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpJiMzNDssCiAgICAmIzM0O3J0NjFwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ3NTMxZTRlMDk3N2MzZTM2YWU2YTljZDg4ZTBhMTI1NDA1OWU5NTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDE0OjM2OjA3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5pbmRleCA0MmUyMWU5ZjMwM2IyNC4uMTUwNzNiODU2YWRmOWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5AQCAtMTQyOSw3ICYjNDM7MTQyOSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBydDI0MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbiAgKi9cbiBzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcbiB7XG4tXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcbiYjNDM7XHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9O1xuIFx0dTMyIHJlZztcbiBcdHUxNiB3b3JkO1xuIFx0dTggKm1hYztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuY1xuaW5kZXggMzZkZGM1YTY5ZmE0MGEuLjM1MzZhMGYzMTExNzE0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuY1xuQEAgLTE1NTUsNyAmIzQzOzE1NTUsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQyNTAwcGNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4gICovXG4gc3RhdGljIGludCBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4mIzQzO1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXHR1MTYgd29yZDtcbiBcdHU4ICptYWM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcbmluZGV4IDE0YzQ1YWJhODM2ZjJkLi44NTNmZDMxZDEzNjI5ZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcbkBAIC0xMDgsNyAmIzQzOzEwOCw3IEBAIHN0YXRpYyB2b2lkIHJ0MjgwMHBjaV9lZXByb21yZWdpc3Rlcl93cml0ZShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pXG4gXG4gc3RhdGljIGludCBydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4mIzQzO1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXG4gXHRyZWcgPSBydDJ4MDBtbWlvX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBFMlBST01fQ1NSKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXG5pbmRleCBkMWNkNTY5NGUzYzczMi4uNWRjYTJhZmI0Yjk2YzIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmNcbkBAIC0yMjk4LDcgJiM0MzsyMjk4LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0NjFwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbiAgKi9cbiBzdGF0aWMgaW50IHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4mIzQzO1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXHR1MTYgd29yZDtcbiBcdHU4ICptYWM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkFMSU5LJiMzNDssCiAgICAmIzM0O1JUMlgwMCYjMzQ7LAogICAgJiMzNDtSVDI0MDBQQ0kmIzM0OywKICAgICYjMzQ7UlQyNTAwUENJJiMzNDssCiAgICAmIzM0O1JUNjFQQ0kmIzM0OywKICAgICYjMzQ7UlQyODAwUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7LAogICAgJiMzNDtydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgICAmIzM0O3J0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2kmIzM0OywKICAgICYjMzQ7cnQ2MXBjaV92YWxpZGF0ZV9lZXByb20mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycyBieSB6ZXJvLWluaXRpYWxpemluZyBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBGdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIHdpdGggdGhlc2UgZHJpdmVycyBlbmFibGVkIGNhbiB0cmlnZ2VyIHRoZXNlIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNzUzMWU0ZTA5NzdjM2UzNmFlNmE5Y2Q4OGUwYTEyNTQwNTllOTUzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMyAxNDozNjowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jCmluZGV4IDQyZTIxZTlmMzAzYjI0Li4xNTA3M2I4NTZhZGY5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jCkBAIC0xNDI5LDcgJiM0MzsxNDI5LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0MjQwMHBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKQogICovCiBzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldikKIHsKLQlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTsKJiM0MzsJc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTsKIAl1MzIgcmVnOwogCXUxNiB3b3JkOwogCXU4ICptYWM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYwppbmRleCAzNmRkYzVhNjlmYTQwYS4uMzUzNmEwZjMxMTE3MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYwpAQCAtMTU1NSw3ICYjNDM7MTU1NSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBydDI1MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSkKICAqLwogc3RhdGljIGludCBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpCiB7Ci0Jc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207CiYjNDM7CXN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge307CiAJdTMyIHJlZzsKIAl1MTYgd29yZDsKIAl1OCAqbWFjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMKaW5kZXggMTRjNDVhYmE4MzZmMmQuLjg1M2ZkMzFkMTM2MjlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMKQEAgLTEwOCw3ICYjNDM7MTA4LDcgQEAgc3RhdGljIHZvaWQgcnQyODAwcGNpX2VlcHJvbXJlZ2lzdGVyX3dyaXRlKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSkKIAogc3RhdGljIGludCBydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpCiB7Ci0Jc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207CiYjNDM7CXN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge307CiAJdTMyIHJlZzsKIAogCXJlZyA9IHJ0MngwMG1taW9fcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIEUyUFJPTV9DU1IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYwppbmRleCBkMWNkNTY5NGUzYzczMi4uNWRjYTJhZmI0Yjk2YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jCkBAIC0yMjk4LDcgJiM0MzsyMjk4LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0NjFwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSkKICAqLwogc3RhdGljIGludCBydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KQogewotCXN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tOwomIzQzOwlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9OwogCXUzMiByZWc7CiAJdTE2IHdvcmQ7CiAJdTggKm1hYzsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3MgoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDM2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIFRob3VnaHRzIG9uIGEgUENJIERyaXZlciBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCBpbml0aWFsaXplcyBhbiBgZWVwcm9tXzkzY3g2YCBzdHJ1Y3QgYWNyb3NzIHNldmVyYWwgYHJ0MngwMGAgUENJIHdpcmVsZXNzIGRyaXZlcnM6IGBydDI0MDBwY2kuY2AsIGBydDI1MDBwY2kuY2AsIGBydDI4MDBwY2kuY2AsIGFuZCBgcnQ2MXBjaS5jYC4gR29vZCBjYXRjaCBvbiB0aGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZTsgdGhhdCYjMzk7cyBhIGNsYXNzaWMgc291cmNlIG9mIHByb2JsZW1zLiBOb3csIHRoZSB3aGVlbHMgYXJlIHR1cm5pbmcuLi4gdGhlc2UgYXJlIFBDSSB3aXJlbGVzcyBkcml2ZXJzLCByaWdodD8gQ291bGQgdGhlc2UgYmUgcG90ZW50aWFsIHRhcmdldHMgZm9yIGZ1enppbmc/CgpQQ0kgZGV2aWNlcywgZ2VuZXJhbGx5LCBhcmUgYSBiaXQgdHJpY2tpZXIgdG8gZnV6eiBkaXJlY3RseSB1bmxlc3MgeW91JiMzOTtyZSBkZWFsaW5nIHdpdGggZW11bGF0aW9uIG9yLCBpZGVhbGx5LCBpZiBzeXprYWxsZXIgaGFzIHNvbWUgUENJLXNwZWNpZmljIGNhcGFiaWxpdGllcy4gQW5kLCB3YWl0Li4uIHdhc24mIzM5O3QgdGhlcmUgc29tZSByZWNlbnQgd29yayBvbiBQQ0kgZnV6emluZyBpbiBzeXprYWxsZXI/IFllYWgsIHZoY2kgb3IgcGNpLWZ1enplciByaW5ncyBhIGJlbGwuIEl0JiMzOTtzIG9mdGVuIGhhcmRlciBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycywgbGlrZSB0aGVzZSBSYWxpbmsgb25lcywgdG8gYmUgZWFzaWx5IHJlYWNoZWQgYnkgc3l6a2FsbGVyJiMzOTtzIGZ1enppbmcgdW5sZXNzIHRoZSBQQ0kgZGV2aWNlIGlzIGVtdWxhdGVkLCBidXQgc3l6a2FsbGVyIGRvZXMgdXNlIHZpcnR1YWwgUENJIGRldmljZXMgb3IgaW5qZWN0IFBDSSBjb25maWcgc3BhY2UvTU1JTy4KClNvLCB0aGUgbmV4dCBxdWVzdGlvbiBpcy4uLiBhcmUgdGhlcmUgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IHdvdWxkIGJlIHJlbGV2YW50IGhlcmU/IExldCYjMzk7cyBxdWlja2x5IHNjYW4gdGhlIGNvbmZpZyBvcHRpb25zOiBgQ09ORklHX1JUMlgwMGAsIGBDT05GSUdfUlQyNDAwUENJYCwgYENPTkZJR19SVDI1MDBQQ0lgLCBgQ09ORklHX1JUMjgwMFBDSWAsIGBDT05GSUdfUlQ2MVBDSWAuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoZSBgcnQyeDAwYCBkaXJlY3RvcnkgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIGFueSBkZXBlbmRlbmNpZXMgb3IgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSVDI0MDBQQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTE5PWlmIFJUMlgwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjIxOmNvbmZpZyBSVDI0MDBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMi1cdHRyaXN0YXRlIFwmIzM0O1JhbGluayBydDI0MDAgKFBDSS9QQ01DSUEpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjc5CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgRGVlcGVyIGludG8gQ29uZmlndXJhdGlvbiBWZXJpZmljYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7dmUgZ290IHRoZSBpbml0aWFsIHNldHVwIGRvd24sIGJ1dCBsZXQmIzM5O3MgYmUgdGhvcm91Z2guIEJlZm9yZSBJIHNpZ24gb2ZmIG9uIHRoaXMsIGl0JiMzOTtzIGFic29sdXRlbHkgY3J1Y2lhbCB0byBlbnN1cmUgZXZlcnl0aGluZyBkb3duc3RyZWFtIGlzIGFsaWduZWQgYW5kIGZ1bmN0aW9uaW5nIGFzIGludGVuZGVkLiBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IGdvIHRocm91Z2ggKmV2ZXJ5KiByZWxhdGVkIGNvbmZpZ3VyYXRpb24uIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgcG9zc2libGUgZWRnZSBjYXNlcywgaW50ZXJhY3Rpb25zIHdpdGggb3RoZXIgbW9kdWxlcywgYW5kIHBvdGVudGlhbCBmb3IgdW5leHBlY3RlZCBiZWhhdmlvci4gVGhpcyBpc24mIzM5O3QganVzdCBhYm91dCB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9uOyBpdCYjMzk7cyBhYm91dCB2YWxpZGF0aW5nIHRoZSBlbnRpcmUgKnN5c3RlbSYjMzk7cyogc3RhdGUgYmFzZWQgb24gdGhhdCBjb25maWd1cmF0aW9uLiBJJiMzOTttIGxvb2tpbmcgZm9yIGluY29uc2lzdGVuY2llcywgcmVkdW5kYW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IGNvdWxkIGNyZWF0ZSBhIGZ1dHVyZSBoZWFkYWNoZS4gVGhlIGRldmlsIGlzIGFsd2F5cyBpbiB0aGUgZGV0YWlscywgc28gSSYjMzk7bSBnb2luZyB0byBjYXJlZnVsbHkgc2NydXRpbml6ZSB0aGUgcmVsYXRlZCBjb25maWd1cmF0aW9uIGl0ZW1zLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlQuKlBDSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTk9aWYgUlQyWDAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjE6Y29uZmlnIFJUMjQwMFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0MjQwMCAoUENJL1BDTUNJQSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0zMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzozMzpjb25maWcgUlQyNTAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjQ1OmNvbmZpZyBSVDYxUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAxL3J0NjEgKFBDSS9QQ01DSUEpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NjA6Y29uZmlnIFJUMjgwMFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0Mjd4eC9ydDI4eHgvcnQzMHh4IChQQ0kvUENJZS9QQ01DSUEpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9Nzc9aWYgUlQyODAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6Nzk6Y29uZmlnIFJUMjgwMFBDSV9SVDMzWFhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7cnQyODAwcGNpIC0gSW5jbHVkZSBzdXBwb3J0IGZvciBydDMzeHggZGV2aWNlc1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy04Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo4Nzpjb25maWcgUlQyODAwUENJX1JUMzVYWFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTg4LVx0Ym9vbCBcJiMzNDtydDI4MDBwY2kgLSBJbmNsdWRlIHN1cHBvcnQgZm9yIHJ0MzV4eCBkZXZpY2VzIChFWFBFUklNRU5UQUwpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjk2OmNvbmZpZyBSVDI4MDBQQ0lfUlQ1M1hYXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctOTctXHRib29sIFwmIzM0O3J0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQ1M3h4IGRldmljZXMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjEwNDpjb25maWcgUlQyODAwUENJX1JUMzI5MFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTEwNS1cdGJvb2wgXCYjMzQ7cnQyODAwcGNpIC0gSW5jbHVkZSBzdXBwb3J0IGZvciBydDMyOTAgZGV2aWNlcyAoRVhQRVJJTUVOVEFMKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMjU9Y29uZmlnIFJUMlgwMF9MSUJfTU1JT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjI5OmNvbmZpZyBSVDJYMDBfTElCX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIzMC1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkxNQoJCQkJCQkJb3V0cHV0OiA1NgoJCQkJCQkJdGhvdWdodHM6IDEyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERyaXZlciBDb25maWd1cmF0aW9uIGFuZCBFRVBST00gVmFsaWRhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgY29uZmlndXJhdGlvbnM6IFJUMlgwMCwgUlQyNDAwUENJLCBSVDI1MDBQQ0ksIFJUNjFQQ0ksIGFuZCBSVDI4MDBQQ0kuIFJpZ2h0LCBnb3QgaXQuIE15IGZvY3VzIGlzIG9uIHRoZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgRUVQUk9NIHZhbGlkYXRpb24sIHNwZWNpZmljYWxseSB0aGVzZSBvbmVzOiBgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lgLCBhbmQgYHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tYC4gSSBrbm93IHRoZXNlIGFyZSBhbGwgY2FsbGVkIGR1cmluZyB0aGUgcHJvYmUgcHJvY2Vzcywgd2hpY2ggaXMgdGhlIGNydWNpYWwgcG9pbnQgZm9yIGluaXRpYWxpemF0aW9uLiBOb3csIGxldCYjMzk7cyBkcmlsbCBkb3duIGludG8gYHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb21gIGFuZCBzZWUgaG93IGl0JiMzOTtzIGFjdHVhbGx5IHVzZWQgYW5kIGltcGxlbWVudGVkLiBUaGF0JiMzOTtzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgdmFsaWRhdGlvbiBsb2dpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jPTEzNjk9c3RhdGljIGlycXJldHVybl90IHJ0MjQwMHBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTQyOS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM6MTQzMDpzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTQzMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYz0xNjA3PXN0YXRpYyBpbnQgcnQyNDAwcGNpX3Byb2JlX2h3KHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNjE0LVx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jOjE2MTU6XHRyZXR2YWwgPSBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHJ0MngwMGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jLTE2MTYtXHRpZiAocmV0dmFsKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2NzgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBQQ0kgRGV2aWNlIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMgUENJIGRldmljZS4gSSByZW1lbWJlciBub3cgdGhhdCB0aGUgcmVsZXZhbnQgY29kZSBnZXRzIGNhbGxlZCBkdXJpbmcgYHByb2JlX2h3YCwgdGhhdCBtYWtlcyBzZW5zZS4KCkNhbiBzeXprYWxsZXIgaGFuZGxlIFBDSSBkZXZpY2VzPyBZZXMsIGFic29sdXRlbHkuIEkgcmVjYWxsIGl0IGhhdmluZyBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgLCBhbHRob3VnaCBpdCBpc24mIzM5O3Qgb2Z0ZW4gdGhhdCBzeXprYWxsZXIgcmVhbGx5IGRpZ3MgZGVlcCBpbnRvIHNwZWNpZmljIGRyaXZlci1sZXZlbCBkZXRhaWxzIHVubGVzcyBpdCYjMzk7cyBzcGVjaWZpY2FsbHkgYWltZWQgYXQgYSBkcml2ZXIgb3IgdGhlIFBDSSBzdWJzeXN0ZW0gaXRzZWxmIGlzIHRoZSB0YXJnZXQgb2YgdGhlIGZ1enouIEJ1dCB0aGUgc3VwcG9ydCBpcyB0aGVyZSwgZm9yIHN1cmUuCgpBY3R1YWxseSwgc2NyYXRjaCB0aGF0LCBzeXprYWxsZXIgKmNhbiogZGVmaW5pdGVseSBmdXp6IFBDSSBkZXZpY2VzLgoKSXMgdGhpcyBmdXp6aW5nIGVmZm9ydCB3b3J0aHdoaWxlPyBZZXMsIGl0IGlzIGEgZnVuY3Rpb25hbGx5IGltcG9ydGFudCBjaGFuZ2Ug4oCTIGl0IGlzIGluaXRpYWxpemluZyBhIHN0cnVjdCB0byBhdm9pZCBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnksIHNvIGRlZmluaXRlbHkuCgpOb3csIGxldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIHJlbGV2YW50IGNvZGUuIExvb2tpbmcgYXQgdGhlIGNvbmZpZ3MsIEkgc2VlOiBgUlQyWDAwYCwgYFJUMjQwMFBDSWAsIGBSVDI1MDBQQ0lgLCBgUlQ2MVBDSWAsIGFuZCBgUlQyODAwUENJYC4gVGhvc2UgYXJlIHRoZSBvbmVzIEkgc2hvdWxkIGNoZWNrIGFnYWluc3QuCgpNeSBmb2N1cyBpcyBvbiB0aGVzZSBzeW1ib2xzOiBgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lgLCBhbmQgYHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tYC4gVGhlc2Ugc2VlbSByZWxldmFudC4KCkFuZCB0byBkb3VibGUtY2hlY2sgbXkgYXNzdW1wdGlvbnMsIGBSVDJYMDBfTElCX1BDSWAgaXMgc2VsZWN0ZWQgYnkgdGhvc2UgY29uZmlncyBJIGNoZWNrZWQsIHdoaWNoIGlzIGdvb2QuIEZ1cnRoZXJtb3JlLCBgV0xBTmAgYW5kIGBXTEFOX1ZFTkRPUl9SQUxJTktgIGFyZSBuZWVkZWQuIEdvdCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFdMQU5fVkVORE9SX1JBTElOSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvS2NvbmZpZzoyOmNvbmZpZyBXTEFOX1ZFTkRPUl9SQUxJTktcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnLTMtXHRib29sIFwmIzM0O1JhbGluayBkZXZpY2VzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NDMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOgoKKipJbml0aWFsIEFzc2Vzc21lbnQgYW5kIERlcGVuZGVuY3kgQ2hlY2sqKgoKUmlnaHQsIHNvIHdlIG5lZWQgYFdMQU5fVkVORE9SX1JBTElOS2AuIFRoYXQmIzM5O3MgYSBnaXZlbi4gTm93LCBiZWZvcmUgSSBqdW1wIGluIGFuZCBzdGFydCBjb25maWd1cmluZywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnl0aGluZy4gRXhwZXJpZW5jZSBoYXMgdGF1Z2h0IG1lIGl0JiMzOTtzIGFsd2F5cyB3b3J0aCBhIHF1aWNrIHN3ZWVwIHRvIHNlZSBpZiBgV0xBTl9WRU5ET1JfUkFMSU5LYCBpbmRpcmVjdGx5IGJyaW5ncyBpbiBvdGhlciwgcG90ZW50aWFsbHkgY29uZmxpY3RpbmcsIGRlcGVuZGVuY2llcy4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgYW55IGludGVyZGVwZW5kZW5jaWVzLiBMZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcHJlcmVxdWlzaXRlcywgbGlrZSBzcGVjaWZpYyBrZXJuZWwgbW9kdWxlcyBvciBvdGhlciBjb21wb25lbnQgcGFja2FnZXMsIHRoYXQgbWlnaHQgYmUgaW52b2x2ZWQuIEdvdHRhIGRvdCBhbGwgdGhlICYjMzQ7aSYjMzQ7cyBhbmQgY3Jvc3MgYWxsIHRoZSAmIzM0O3QmIzM0O3MgYmVmb3JlIG1ha2luZyBhbnkgZmlybSBkZWNpc2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI9bWVudWNvbmZpZyBSVDJYMDBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NDpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IEhBU19ETUFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy01LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMT1jb25maWcgUlQyNDAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjItXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTI0LVx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0zMz1jb25maWcgUlQyNTAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MzU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTM2LVx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz00NT1jb25maWcgUlQ2MVBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ2LVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0MjUwMS9ydDYxIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NDc6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ4LVx0c2VsZWN0IFJUMlgwMF9MSUJfUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTYwPWNvbmZpZyBSVDI4MDBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O1JhbGluayBydDI3eHgvcnQyOHh4L3J0MzB4eCAoUENJL1BDSWUvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTYzLVx0c2VsZWN0IFJUMjgwMF9MSUJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTEzPWNvbmZpZyBSVDI1MDBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xMTQtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAwIChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMTU6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTExNi1cdHNlbGVjdCBSVDJYMDBfTElCX1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0xMjQ9Y29uZmlnIFJUNzNVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xMjUtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAxL3J0NzMgKFVTQikgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjEyNjpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTI3LVx0c2VsZWN0IFJUMlgwMF9MSUJfVVNCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTEzNz1jb25maWcgUlQyODAwVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTM4LVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0Mjd4eC9ydDI4eHgvcnQzMHh4IChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMzk6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTE0MC1cdHNlbGVjdCBSVDI4MDBfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTIwMT1jb25maWcgUlQyODAwU09DXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjAyLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIFdpU29DIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMDM6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoU09DX1JUMjg4WCB8fCBTT0NfUlQzMDVYIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwNC1cdHNlbGVjdCBSVDJYMDBfTElCX01NSU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MjUxPWNvbmZpZyBSVDJYMDBfTElCX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNTItXHRib29sIFwmIzM0O1JhbGluayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyNTM6XHRkZXBlbmRzIG9uIFJUMlgwMF9MSUIgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNTQtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI1OT1jb25maWcgUlQyWDAwX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtSYWxpbmsgZGVidWcgb3V0cHV0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjYxOlx0ZGVwZW5kcyBvbiBSVDJYMDBfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjYyLVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTc1CgkJCQkJCQlvdXRwdXQ6IDE5NwoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSYWxpbmsgUENJIFdpcmVsZXNzIERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSByZWFsbHkgaW50ZXJlc3RpbmcgdnVsbmVyYWJpbGl0eSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaXMgZml4aW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UsIHdoaWNoIGlzIGFsd2F5cyBhIGp1aWN5IHRhcmdldC4gVGhlIGlzc3VlIGNlbnRlcnMgYXJvdW5kIHRoZSBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gIHZhcmlhYmxlIGFuZCBob3cgaXQmIzM5O3MgYmVpbmcgaGFuZGxlZC4gSXQmIzM5O3Mgbm90IGJlaW5nIGluaXRpYWxpemVkIHByb3Blcmx5IGluIGEgZmV3IGNydWNpYWwgZnVuY3Rpb25zOiBgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lgLCBhbmQgYHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSBkaXJlY3RseSBpbnZvbHZlZCBpbiB0aGUgZGV2aWNlIHByb2JlIHByb2Nlc3MsIHdoaWNoIG1ha2VzIHRoZW0gdmVyeSByZWxldmFudCBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUuCgpFc3NlbnRpYWxseSwgaWYgd2UgZW5hYmxlIHRoZXNlIGRyaXZlcnMgYW5kIHRoZW4gc3RhcnQgZnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSwgd2UgY291bGQgcG90ZW50aWFsbHkgdHJpZ2dlciB0aGVzZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHJlYWRzLCB3aGljaCwgYXMgd2Uga25vdywgY2FuIGxlYWQgdG8gYWxsIHNvcnRzIG9mIHVucHJlZGljdGFibGUgYW5kIHBvdGVudGlhbGx5IGV4cGxvaXRhYmxlIGJlaGF2aW9yLgoKTXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyBhbHdheXMgdG8gdmVyaWZ5IHRoZSBzY29wZSBvZiB0aGUgZml4LiBJIGp1c3QgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlc2UgYXJlIHRoZSBvbmx5IGZ1bmN0aW9ucyBhZmZlY3RlZC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBqdXN0IHRoZXNlIGZvdXIgZnVuY3Rpb25zLiBUaGF0JiMzOTtzIGEgZ29vZCB0aGluZywgYSBtYW5hZ2VhYmxlIHNjb3BlLiBXaXRoIHRoYXQgYW5hbHlzaXMgaW4gaGFuZCwgSSB0aGluayBpdCYjMzk7cyB0aW1lIHRvIHNldC1yZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkFMSU5LJiMzNDssCiAgICAmIzM0O1JUMlgwMCYjMzQ7LAogICAgJiMzNDtSVDI0MDBQQ0kmIzM0OywKICAgICYjMzQ7UlQyNTAwUENJJiMzNDssCiAgICAmIzM0O1JUNjFQQ0kmIzM0OywKICAgICYjMzQ7UlQyODAwUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7LAogICAgJiMzNDtydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgICAmIzM0O3J0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2kmIzM0OywKICAgICYjMzQ7cnQ2MXBjaV92YWxpZGF0ZV9lZXByb20mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycyBieSB6ZXJvLWluaXRpYWxpemluZyBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBGdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIHdpdGggdGhlc2UgZHJpdmVycyBlbmFibGVkIGNhbiB0cmlnZ2VyIHRoZXNlIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtXTEFOX1ZFTkRPUl9SQUxJTksmIzM0OywKICAgICYjMzQ7UlQyWDAwJiMzNDssCiAgICAmIzM0O1JUMjQwMFBDSSYjMzQ7LAogICAgJiMzNDtSVDI1MDBQQ0kmIzM0OywKICAgICYjMzQ7UlQ2MVBDSSYjMzQ7LAogICAgJiMzNDtSVDI4MDBQQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgICAmIzM0O3J0MjUwMHBjaV92YWxpZGF0ZV9lZXByb20mIzM0OywKICAgICYjMzQ7cnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaSYjMzQ7LAogICAgJiMzNDtydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHVzYWdlIGluIHNldmVyYWwgUmFsaW5rIFBDSSB3aXJlbGVzcyBkcml2ZXJzIGJ5IHplcm8taW5pdGlhbGl6aW5nIGBzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbWAuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIGR1cmluZyBkZXZpY2UgcHJvYmUuIEZ1enppbmcgdGhlIFBDSSBzdWJzeXN0ZW0gd2l0aCB0aGVzZSBkcml2ZXJzIGVuYWJsZWQgY2FuIHRyaWdnZXIgdGhlc2UgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjowOC44MjE0MzgyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU5NzIxMTM5NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gICAgXCJSVDJYMDBcIixcbiAgICBcIlJUMjQwMFBDSVwiLFxuICAgIFwiUlQyNTAwUENJXCIsXG4gICAgXCJSVDYxUENJXCIsXG4gICAgXCJSVDI4MDBQQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpXCIsXG4gICAgXCJydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6MDguODIxNDQ0NDJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzOTM1NDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQ3NTMxZTRlMDk3N2MzZTM2YWU2YTljZDg4ZTBhMTI1NDA1OWU5NTNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMyAxNDozNjowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuY1xcbmluZGV4IDQyZTIxZTlmMzAzYjI0Li4xNTA3M2I4NTZhZGY5ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuY1xcbkBAIC0xNDI5LDcgKzE0MjksNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQyNDAwcGNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXFxuICAqL1xcbiBzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4ge1xcbi1cXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcXG4rXFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcXG4gXFx0dTMyIHJlZztcXG4gXFx0dTE2IHdvcmQ7XFxuIFxcdHU4ICptYWM7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jXFxuaW5kZXggMzZkZGM1YTY5ZmE0MGEuLjM1MzZhMGYzMTExNzE0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jXFxuQEAgLTE1NTUsNyArMTU1NSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBydDI1MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4gICovXFxuIHN0YXRpYyBpbnQgcnQyNTAwcGNpX3ZhbGlkYXRlX2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxcbiB7XFxuLVxcdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO1xcbitcXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9O1xcbiBcXHR1MzIgcmVnO1xcbiBcXHR1MTYgd29yZDtcXG4gXFx0dTggKm1hYztcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcXG5pbmRleCAxNGM0NWFiYTgzNmYyZC4uODUzZmQzMWQxMzYyOWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcXG5AQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIHJ0MjgwMHBjaV9lZXByb21yZWdpc3Rlcl93cml0ZShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pXFxuIFxcbiBzdGF0aWMgaW50IHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2koc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4ge1xcbi1cXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcXG4rXFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcXG4gXFx0dTMyIHJlZztcXG4gXFxuIFxcdHJlZyA9IHJ0MngwMG1taW9fcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIEUyUFJPTV9DU1IpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXFxuaW5kZXggZDFjZDU2OTRlM2M3MzIuLjVkY2EyYWZiNGI5NmMyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmNcXG5AQCAtMjI5OCw3ICsyMjk4LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0NjFwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4gICovXFxuIHN0YXRpYyBpbnQgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4ge1xcbi1cXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcXG4rXFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcXG4gXFx0dTMyIHJlZztcXG4gXFx0dTE2IHdvcmQ7XFxuIFxcdHU4ICptYWM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjA5LjM2MTQ3MDI4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU0MzIwNjcwMjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gICAgXCJSVDJYMDBcIixcbiAgICBcIlJUMjQwMFBDSVwiLFxuICAgIFwiUlQyNTAwUENJXCIsXG4gICAgXCJSVDYxUENJXCIsXG4gICAgXCJSVDI4MDBQQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpXCIsXG4gICAgXCJydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkNzUzMWU0ZTA5NzdjM2UzNmFlNmE5Y2Q4OGUwYTEyNTQwNTllOTUzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMyAxNDozNjowNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5pbmRleCA0MmUyMWU5ZjMwM2IyNC4uMTUwNzNiODU2YWRmOWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5AQCAtMTQyOSw3ICsxNDI5LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0MjQwMHBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuICAqL1xuIHN0YXRpYyBpbnQgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxuIHtcbi1cdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO1xuK1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXHR1MTYgd29yZDtcbiBcdHU4ICptYWM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcbmluZGV4IDM2ZGRjNWE2OWZhNDBhLi4zNTM2YTBmMzExMTcxNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcbkBAIC0xNTU1LDcgKzE1NTUsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQyNTAwcGNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4gICovXG4gc3RhdGljIGludCBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4rXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9O1xuIFx0dTMyIHJlZztcbiBcdHUxNiB3b3JkO1xuIFx0dTggKm1hYztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xuaW5kZXggMTRjNDVhYmE4MzZmMmQuLjg1M2ZkMzFkMTM2MjlmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xuQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgdm9pZCBydDI4MDBwY2lfZWVwcm9tcmVnaXN0ZXJfd3JpdGUoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tKVxuIFxuIHN0YXRpYyBpbnQgcnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxuIHtcbi1cdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO1xuK1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXG4gXHRyZWcgPSBydDJ4MDBtbWlvX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBFMlBST01fQ1NSKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXG5pbmRleCBkMWNkNTY5NGUzYzczMi4uNWRjYTJhZmI0Yjk2YzIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmNcbkBAIC0yMjk4LDcgKzIyOTgsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQ2MXBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuICAqL1xuIHN0YXRpYyBpbnQgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcbiB7XG4tXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcbitcdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge307XG4gXHR1MzIgcmVnO1xuIFx0dTE2IHdvcmQ7XG4gXHR1OCAqbWFjO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6MDkuMzYxNDcxODE2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYxMjgxMjc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbml0aWFsIFRob3VnaHRzIG9uIGEgUENJIERyaXZlciBGaXgqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgaW5pdGlhbGl6ZXMgYW4gYGVlcHJvbV85M2N4NmAgc3RydWN0IGFjcm9zcyBzZXZlcmFsIGBydDJ4MDBgIFBDSSB3aXJlbGVzcyBkcml2ZXJzOiBgcnQyNDAwcGNpLmNgLCBgcnQyNTAwcGNpLmNgLCBgcnQyODAwcGNpLmNgLCBhbmQgYHJ0NjFwY2kuY2AuIEdvb2QgY2F0Y2ggb24gdGhlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGU7IHRoYXQncyBhIGNsYXNzaWMgc291cmNlIG9mIHByb2JsZW1zLiBOb3csIHRoZSB3aGVlbHMgYXJlIHR1cm5pbmcuLi4gdGhlc2UgYXJlIFBDSSB3aXJlbGVzcyBkcml2ZXJzLCByaWdodD8gQ291bGQgdGhlc2UgYmUgcG90ZW50aWFsIHRhcmdldHMgZm9yIGZ1enppbmc/XG5cblBDSSBkZXZpY2VzLCBnZW5lcmFsbHksIGFyZSBhIGJpdCB0cmlja2llciB0byBmdXp6IGRpcmVjdGx5IHVubGVzcyB5b3UncmUgZGVhbGluZyB3aXRoIGVtdWxhdGlvbiBvciwgaWRlYWxseSwgaWYgc3l6a2FsbGVyIGhhcyBzb21lIFBDSS1zcGVjaWZpYyBjYXBhYmlsaXRpZXMuIEFuZCwgd2FpdC4uLiB3YXNuJ3QgdGhlcmUgc29tZSByZWNlbnQgd29yayBvbiBQQ0kgZnV6emluZyBpbiBzeXprYWxsZXI/IFllYWgsIHZoY2kgb3IgcGNpLWZ1enplciByaW5ncyBhIGJlbGwuIEl0J3Mgb2Z0ZW4gaGFyZGVyIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXJzLCBsaWtlIHRoZXNlIFJhbGluayBvbmVzLCB0byBiZSBlYXNpbHkgcmVhY2hlZCBieSBzeXprYWxsZXIncyBmdXp6aW5nIHVubGVzcyB0aGUgUENJIGRldmljZSBpcyBlbXVsYXRlZCwgYnV0IHN5emthbGxlciBkb2VzIHVzZSB2aXJ0dWFsIFBDSSBkZXZpY2VzIG9yIGluamVjdCBQQ0kgY29uZmlnIHNwYWNlL01NSU8uXG5cblNvLCB0aGUgbmV4dCBxdWVzdGlvbiBpcy4uLiBhcmUgdGhlcmUgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IHdvdWxkIGJlIHJlbGV2YW50IGhlcmU/IExldCdzIHF1aWNrbHkgc2NhbiB0aGUgY29uZmlnIG9wdGlvbnM6IGBDT05GSUdfUlQyWDAwYCwgYENPTkZJR19SVDI0MDBQQ0lgLCBgQ09ORklHX1JUMjUwMFBDSWAsIGBDT05GSUdfUlQyODAwUENJYCwgYENPTkZJR19SVDYxUENJYC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgYHJ0MngwMGAgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiBhbnkgZGVwZW5kZW5jaWVzIG9yIGltcGxpY2F0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3MiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjE1Ljk3NDI4NzM0MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mjk4MzY4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlQyNDAwUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTk9aWYgUlQyWDAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMTpjb25maWcgUlQyNDAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjoxNi4wMzcyODEzMjdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTM1MDc5MjY5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEaXZpbmcgRGVlcGVyIGludG8gQ29uZmlndXJhdGlvbiBWZXJpZmljYXRpb24qKlxuXG5BbHJpZ2h0LCBJJ3ZlIGdvdCB0aGUgaW5pdGlhbCBzZXR1cCBkb3duLCBidXQgbGV0J3MgYmUgdGhvcm91Z2guIEJlZm9yZSBJIHNpZ24gb2ZmIG9uIHRoaXMsIGl0J3MgYWJzb2x1dGVseSBjcnVjaWFsIHRvIGVuc3VyZSBldmVyeXRoaW5nIGRvd25zdHJlYW0gaXMgYWxpZ25lZCBhbmQgZnVuY3Rpb25pbmcgYXMgaW50ZW5kZWQuIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgZ28gdGhyb3VnaCAqZXZlcnkqIHJlbGF0ZWQgY29uZmlndXJhdGlvbi4gSSdtIHRoaW5raW5nIGFib3V0IHBvc3NpYmxlIGVkZ2UgY2FzZXMsIGludGVyYWN0aW9ucyB3aXRoIG90aGVyIG1vZHVsZXMsIGFuZCBwb3RlbnRpYWwgZm9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIFRoaXMgaXNuJ3QganVzdCBhYm91dCB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9uOyBpdCdzIGFib3V0IHZhbGlkYXRpbmcgdGhlIGVudGlyZSAqc3lzdGVtJ3MqIHN0YXRlIGJhc2VkIG9uIHRoYXQgY29uZmlndXJhdGlvbi4gSSdtIGxvb2tpbmcgZm9yIGluY29uc2lzdGVuY2llcywgcmVkdW5kYW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IGNvdWxkIGNyZWF0ZSBhIGZ1dHVyZSBoZWFkYWNoZS4gVGhlIGRldmlsIGlzIGFsd2F5cyBpbiB0aGUgZGV0YWlscywgc28gSSdtIGdvaW5nIHRvIGNhcmVmdWxseSBzY3J1dGluaXplIHRoZSByZWxhdGVkIGNvbmZpZ3VyYXRpb24gaXRlbXMuIEl0J3MgdGltZSB0byBkaWcgaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NzksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjozNS4zODgwNzU3ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ5NTczNTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVC4qUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTk9aWYgUlQyWDAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMTpjb25maWcgUlQyNDAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzozMzpjb25maWcgUlQyNTAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTM0LVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNTAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo0NTpjb25maWcgUlQ2MVBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0MjUwMS9ydDYxIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo2MDpjb25maWcgUlQyODAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyN3h4L3J0Mjh4eC9ydDMweHggKFBDSS9QQ0llL1BDTUNJQSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz03Nz1pZiBSVDI4MDBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjc5OmNvbmZpZyBSVDI4MDBQQ0lfUlQzM1hYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTgwLVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQzM3h4IGRldmljZXNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjg3OmNvbmZpZyBSVDI4MDBQQ0lfUlQzNVhYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTg4LVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQzNXh4IGRldmljZXMgKEVYUEVSSU1FTlRBTClcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjk2OmNvbmZpZyBSVDI4MDBQQ0lfUlQ1M1hYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTk3LVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQ1M3h4IGRldmljZXMgKEVYUEVSSU1FTlRBTClcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMDQ6Y29uZmlnIFJUMjgwMFBDSV9SVDMyOTBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTA1LVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQzMjkwIGRldmljZXMgKEVYUEVSSU1FTlRBTClcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MjI1PWNvbmZpZyBSVDJYMDBfTElCX01NSU9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjIyOTpjb25maWcgUlQyWDAwX0xJQl9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjMwLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjM1LjczNzY2MTM1N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3ODY1NjEyMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEcml2ZXIgQ29uZmlndXJhdGlvbiBhbmQgRUVQUk9NIFZhbGlkYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBjb25maWd1cmF0aW9uczogUlQyWDAwLCBSVDI0MDBQQ0ksIFJUMjUwMFBDSSwgUlQ2MVBDSSwgYW5kIFJUMjgwMFBDSS4gUmlnaHQsIGdvdCBpdC4gTXkgZm9jdXMgaXMgb24gdGhlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBFRVBST00gdmFsaWRhdGlvbiwgc3BlY2lmaWNhbGx5IHRoZXNlIG9uZXM6IGBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjUwMHBjaV92YWxpZGF0ZV9lZXByb21gLCBgcnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaWAsIGFuZCBgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb21gLiBJIGtub3cgdGhlc2UgYXJlIGFsbCBjYWxsZWQgZHVyaW5nIHRoZSBwcm9iZSBwcm9jZXNzLCB3aGljaCBpcyB0aGUgY3J1Y2lhbCBwb2ludCBmb3IgaW5pdGlhbGl6YXRpb24uIE5vdywgbGV0J3MgZHJpbGwgZG93biBpbnRvIGBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCBhbmQgc2VlIGhvdyBpdCdzIGFjdHVhbGx5IHVzZWQgYW5kIGltcGxlbWVudGVkLiBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSB2YWxpZGF0aW9uIGxvZ2ljLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTE1LCJPdXRwdXRUb2tlbnMiOjU2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjM5LjUyNDIyNDg3MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTUyMjE0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYz0xMzY5PXN0YXRpYyBpcnFyZXR1cm5fdCBydDI0MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTQyOS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jOjE0MzA6c3RhdGljIGludCBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNDMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM9MTYwNz1zdGF0aWMgaW50IHJ0MjQwMHBjaV9wcm9iZV9odyhzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNjE0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM6MTYxNTpcXHRyZXR2YWwgPSBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHJ0MngwMGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNjE2LVxcdGlmIChyZXR2YWwpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjM5LjU5NTc1ODc2NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3MjEyNjA0NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBQQ0kgRGV2aWNlIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIFBDSSBkZXZpY2UuIEkgcmVtZW1iZXIgbm93IHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgZ2V0cyBjYWxsZWQgZHVyaW5nIGBwcm9iZV9od2AsIHRoYXQgbWFrZXMgc2Vuc2UuXG5cbkNhbiBzeXprYWxsZXIgaGFuZGxlIFBDSSBkZXZpY2VzPyBZZXMsIGFic29sdXRlbHkuIEkgcmVjYWxsIGl0IGhhdmluZyBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgLCBhbHRob3VnaCBpdCBpc24ndCBvZnRlbiB0aGF0IHN5emthbGxlciByZWFsbHkgZGlncyBkZWVwIGludG8gc3BlY2lmaWMgZHJpdmVyLWxldmVsIGRldGFpbHMgdW5sZXNzIGl0J3Mgc3BlY2lmaWNhbGx5IGFpbWVkIGF0IGEgZHJpdmVyIG9yIHRoZSBQQ0kgc3Vic3lzdGVtIGl0c2VsZiBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBmdXp6LiBCdXQgdGhlIHN1cHBvcnQgaXMgdGhlcmUsIGZvciBzdXJlLlxuXG5BY3R1YWxseSwgc2NyYXRjaCB0aGF0LCBzeXprYWxsZXIgKmNhbiogZGVmaW5pdGVseSBmdXp6IFBDSSBkZXZpY2VzLlxuXG5JcyB0aGlzIGZ1enppbmcgZWZmb3J0IHdvcnRod2hpbGU/IFllcywgaXQgaXMgYSBmdW5jdGlvbmFsbHkgaW1wb3J0YW50IGNoYW5nZSDigJMgaXQgaXMgaW5pdGlhbGl6aW5nIGEgc3RydWN0IHRvIGF2b2lkIHBvdGVudGlhbCBpc3N1ZXMgd2l0aCB1bmluaXRpYWxpemVkIG1lbW9yeSwgc28gZGVmaW5pdGVseS5cblxuTm93LCBsZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIHJlbGV2YW50IGNvZGUuIExvb2tpbmcgYXQgdGhlIGNvbmZpZ3MsIEkgc2VlOiBgUlQyWDAwYCwgYFJUMjQwMFBDSWAsIGBSVDI1MDBQQ0lgLCBgUlQ2MVBDSWAsIGFuZCBgUlQyODAwUENJYC4gVGhvc2UgYXJlIHRoZSBvbmVzIEkgc2hvdWxkIGNoZWNrIGFnYWluc3QuXG5cbk15IGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHM6IGBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjUwMHBjaV92YWxpZGF0ZV9lZXByb21gLCBgcnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaWAsIGFuZCBgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb21gLiBUaGVzZSBzZWVtIHJlbGV2YW50LlxuXG5BbmQgdG8gZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb25zLCBgUlQyWDAwX0xJQl9QQ0lgIGlzIHNlbGVjdGVkIGJ5IHRob3NlIGNvbmZpZ3MgSSBjaGVja2VkLCB3aGljaCBpcyBnb29kLiBGdXJ0aGVybW9yZSwgYFdMQU5gIGFuZCBgV0xBTl9WRU5ET1JfUkFMSU5LYCBhcmUgbmVlZGVkLiBHb3QgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2NzgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6NDUuMzE3MDIxOTk0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjIwNDE4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL0tjb25maWc6Mjpjb25maWcgV0xBTl9WRU5ET1JfUkFMSU5LXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL0tjb25maWctMy1cXHRib29sIFxcXCJSYWxpbmsgZGV2aWNlc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6NDUuMzgzMjM1MDI4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyODY0OTM3NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudCBhbmQgRGVwZW5kZW5jeSBDaGVjayoqXG5cblJpZ2h0LCBzbyB3ZSBuZWVkIGBXTEFOX1ZFTkRPUl9SQUxJTktgLiBUaGF0J3MgYSBnaXZlbi4gTm93LCBiZWZvcmUgSSBqdW1wIGluIGFuZCBzdGFydCBjb25maWd1cmluZywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueXRoaW5nLiBFeHBlcmllbmNlIGhhcyB0YXVnaHQgbWUgaXQncyBhbHdheXMgd29ydGggYSBxdWljayBzd2VlcCB0byBzZWUgaWYgYFdMQU5fVkVORE9SX1JBTElOS2AgaW5kaXJlY3RseSBicmluZ3MgaW4gb3RoZXIsIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nLCBkZXBlbmRlbmNpZXMuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgYW55IGludGVyZGVwZW5kZW5jaWVzLiBMZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBwcmVyZXF1aXNpdGVzLCBsaWtlIHNwZWNpZmljIGtlcm5lbCBtb2R1bGVzIG9yIG90aGVyIGNvbXBvbmVudCBwYWNrYWdlcywgdGhhdCBtaWdodCBiZSBpbnZvbHZlZC4gR290dGEgZG90IGFsbCB0aGUgXCJpXCJzIGFuZCBjcm9zcyBhbGwgdGhlIFwidFwicyBiZWZvcmUgbWFraW5nIGFueSBmaXJtIGRlY2lzaW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQ0MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjQ4LjY2OTczMTM4M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUwNjE2MDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI9bWVudWNvbmZpZyBSVDJYMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIGRyaXZlciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy01LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMT1jb25maWcgUlQyNDAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNC1cXHRzZWxlY3QgUlQyWDAwX0xJQl9NTUlPXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MzM9Y29uZmlnIFJUMjUwMFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0zNC1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0MjUwMCAoUENJL1BDTUNJQSkgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MzU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMzYtXFx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTQ1PWNvbmZpZyBSVDYxUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNTAxL3J0NjEgKFBDSS9QQ01DSUEpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjQ3OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ4LVxcdHNlbGVjdCBSVDJYMDBfTElCX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTYwPWNvbmZpZyBSVDI4MDBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJhbGluayBydDI3eHgvcnQyOHh4L3J0MzB4eCAoUENJL1BDSWUvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo2MjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy02My1cXHRzZWxlY3QgUlQyODAwX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTExMz1jb25maWcgUlQyNTAwVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTExNC1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0MjUwMCAoVVNCKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMTU6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTE2LVxcdHNlbGVjdCBSVDJYMDBfTElCX1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTEyND1jb25maWcgUlQ3M1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xMjUtXFx0dHJpc3RhdGUgXFxcIlJhbGluayBydDI1MDEvcnQ3MyAoVVNCKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMjY6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTI3LVxcdHNlbGVjdCBSVDJYMDBfTElCX1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTEzNz1jb25maWcgUlQyODAwVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0Mjd4eC9ydDI4eHgvcnQzMHh4IChVU0IpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjEzOTpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xNDAtXFx0c2VsZWN0IFJUMjgwMF9MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMDE9Y29uZmlnIFJUMjgwMFNPQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMDItXFx0dHJpc3RhdGUgXFxcIlJhbGluayBXaVNvQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMDM6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoU09DX1JUMjg4WCB8fCBTT0NfUlQzMDVYIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMDQtXFx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI1MT1jb25maWcgUlQyWDAwX0xJQl9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTI1Mi1cXHRib29sIFxcXCJSYWxpbmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyNTM6XFx0ZGVwZW5kcyBvbiBSVDJYMDBfTElCIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjU0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yNTk9Y29uZmlnIFJUMlgwMF9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiUmFsaW5rIGRlYnVnIG91dHB1dFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjYxOlxcdGRlcGVuZHMgb24gUlQyWDAwX0xJQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNjItXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjo0OC43MzQ3OTkxNzhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc1NTIxNDc1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSYWxpbmsgUENJIFdpcmVsZXNzIERyaXZlciBWdWxuZXJhYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgbGlrZSBpdCdzIGFkZHJlc3NpbmcgYSByZWFsbHkgaW50ZXJlc3RpbmcgdnVsbmVyYWJpbGl0eSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaXMgZml4aW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UsIHdoaWNoIGlzIGFsd2F5cyBhIGp1aWN5IHRhcmdldC4gVGhlIGlzc3VlIGNlbnRlcnMgYXJvdW5kIHRoZSBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gIHZhcmlhYmxlIGFuZCBob3cgaXQncyBiZWluZyBoYW5kbGVkLiBJdCdzIG5vdCBiZWluZyBpbml0aWFsaXplZCBwcm9wZXJseSBpbiBhIGZldyBjcnVjaWFsIGZ1bmN0aW9uczogYHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb21gLCBgcnQyNTAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpYCwgYW5kIGBydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbWAuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgZGlyZWN0bHkgaW52b2x2ZWQgaW4gdGhlIGRldmljZSBwcm9iZSBwcm9jZXNzLCB3aGljaCBtYWtlcyB0aGVtIHZlcnkgcmVsZXZhbnQgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLlxuXG5Fc3NlbnRpYWxseSwgaWYgd2UgZW5hYmxlIHRoZXNlIGRyaXZlcnMgYW5kIHRoZW4gc3RhcnQgZnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSwgd2UgY291bGQgcG90ZW50aWFsbHkgdHJpZ2dlciB0aGVzZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHJlYWRzLCB3aGljaCwgYXMgd2Uga25vdywgY2FuIGxlYWQgdG8gYWxsIHNvcnRzIG9mIHVucHJlZGljdGFibGUgYW5kIHBvdGVudGlhbGx5IGV4cGxvaXRhYmxlIGJlaGF2aW9yLlxuXG5NeSBpbW1lZGlhdGUgbmV4dCBzdGVwIGlzIGFsd2F5cyB0byB2ZXJpZnkgdGhlIHNjb3BlIG9mIHRoZSBmaXguIEkganVzdCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGVzZSBhcmUgdGhlIG9ubHkgZnVuY3Rpb25zIGFmZmVjdGVkLiBJdCBsb29rcyBsaWtlIGl0J3MganVzdCB0aGVzZSBmb3VyIGZ1bmN0aW9ucy4gVGhhdCdzIGEgZ29vZCB0aGluZywgYSBtYW5hZ2VhYmxlIHNjb3BlLiBXaXRoIHRoYXQgYW5hbHlzaXMgaW4gaGFuZCwgSSB0aGluayBpdCdzIHRpbWUgdG8gc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgxNzUsIk91dHB1dFRva2VucyI6MTk3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjU0LjQ5MDAxNzI4M1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMzUxMDg5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gICAgXCJSVDJYMDBcIixcbiAgICBcIlJUMjQwMFBDSVwiLFxuICAgIFwiUlQyNTAwUENJXCIsXG4gICAgXCJSVDYxUENJXCIsXG4gICAgXCJSVDI4MDBQQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpXCIsXG4gICAgXCJydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOX1ZFTkRPUl9SQUxJTktcIixcbiAgICBcIlJUMlgwMFwiLFxuICAgIFwiUlQyNDAwUENJXCIsXG4gICAgXCJSVDI1MDBQQ0lcIixcbiAgICBcIlJUNjFQQ0lcIixcbiAgICBcIlJUMjgwMFBDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb21cIixcbiAgICBcInJ0MjUwMHBjaV92YWxpZGF0ZV9lZXByb21cIixcbiAgICBcInJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lcIixcbiAgICBcInJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycyBieSB6ZXJvLWluaXRpYWxpemluZyBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBGdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIHdpdGggdGhlc2UgZHJpdmVycyBlbmFibGVkIGNhbiB0cmlnZ2VyIHRoZXNlIHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-03 14:14:01 +0000 UTC FinishedAt: 2026-07-03 14:36:55 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "5ba54393dcd7adf75a9f39f5a933b1538349cad5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN_VENDOR_RALINK", "RT2X00", "RT2400PCI", "RT2500PCI", "RT61PCI", "RT2800PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "5ba54393dcd7adf75a9f39f5a933b1538349cad5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN_VENDOR_RALINK", "RT2X00", "RT2400PCI", "RT2500PCI", "RT61PCI", "RT2800PCI" ], "series_id": "58737a93-e73d-48df-997a-e3cbb299a871" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rt2400pci_validate_eeprom", "rt2500pci_validate_eeprom", "rt2800pci_read_eeprom_pci", "rt61pci_validate_eeprom" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dMQU5fVkVORE9SX1JBTElOSyYjMzQ7LAogICAgJiMzNDtSVDJYMDAmIzM0OywKICAgICYjMzQ7UlQyNDAwUENJJiMzNDssCiAgICAmIzM0O1JUMjUwMFBDSSYjMzQ7LAogICAgJiMzNDtSVDYxUENJJiMzNDssCiAgICAmIzM0O1JUMjgwMFBDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20mIzM0OywKICAgICYjMzQ7cnQyNTAwcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7LAogICAgJiMzNDtydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpJiMzNDssCiAgICAmIzM0O3J0NjFwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ3NTMxZTRlMDk3N2MzZTM2YWU2YTljZDg4ZTBhMTI1NDA1OWU5NTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDE0OjM2OjA3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5pbmRleCA0MmUyMWU5ZjMwM2IyNC4uMTUwNzNiODU2YWRmOWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5AQCAtMTQyOSw3ICYjNDM7MTQyOSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBydDI0MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbiAgKi9cbiBzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcbiB7XG4tXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcbiYjNDM7XHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9O1xuIFx0dTMyIHJlZztcbiBcdHUxNiB3b3JkO1xuIFx0dTggKm1hYztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuY1xuaW5kZXggMzZkZGM1YTY5ZmE0MGEuLjM1MzZhMGYzMTExNzE0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuY1xuQEAgLTE1NTUsNyAmIzQzOzE1NTUsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQyNTAwcGNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4gICovXG4gc3RhdGljIGludCBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4mIzQzO1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXHR1MTYgd29yZDtcbiBcdHU4ICptYWM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcbmluZGV4IDE0YzQ1YWJhODM2ZjJkLi44NTNmZDMxZDEzNjI5ZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcbkBAIC0xMDgsNyAmIzQzOzEwOCw3IEBAIHN0YXRpYyB2b2lkIHJ0MjgwMHBjaV9lZXByb21yZWdpc3Rlcl93cml0ZShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pXG4gXG4gc3RhdGljIGludCBydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4mIzQzO1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXG4gXHRyZWcgPSBydDJ4MDBtbWlvX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBFMlBST01fQ1NSKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXG5pbmRleCBkMWNkNTY5NGUzYzczMi4uNWRjYTJhZmI0Yjk2YzIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmNcbkBAIC0yMjk4LDcgJiM0MzsyMjk4LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0NjFwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbiAgKi9cbiBzdGF0aWMgaW50IHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4mIzQzO1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXHR1MTYgd29yZDtcbiBcdHU4ICptYWM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkFMSU5LJiMzNDssCiAgICAmIzM0O1JUMlgwMCYjMzQ7LAogICAgJiMzNDtSVDI0MDBQQ0kmIzM0OywKICAgICYjMzQ7UlQyNTAwUENJJiMzNDssCiAgICAmIzM0O1JUNjFQQ0kmIzM0OywKICAgICYjMzQ7UlQyODAwUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7LAogICAgJiMzNDtydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgICAmIzM0O3J0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2kmIzM0OywKICAgICYjMzQ7cnQ2MXBjaV92YWxpZGF0ZV9lZXByb20mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycyBieSB6ZXJvLWluaXRpYWxpemluZyBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBGdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIHdpdGggdGhlc2UgZHJpdmVycyBlbmFibGVkIGNhbiB0cmlnZ2VyIHRoZXNlIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNzUzMWU0ZTA5NzdjM2UzNmFlNmE5Y2Q4OGUwYTEyNTQwNTllOTUzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMyAxNDozNjowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jCmluZGV4IDQyZTIxZTlmMzAzYjI0Li4xNTA3M2I4NTZhZGY5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jCkBAIC0xNDI5LDcgJiM0MzsxNDI5LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0MjQwMHBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKQogICovCiBzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldikKIHsKLQlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTsKJiM0MzsJc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTsKIAl1MzIgcmVnOwogCXUxNiB3b3JkOwogCXU4ICptYWM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYwppbmRleCAzNmRkYzVhNjlmYTQwYS4uMzUzNmEwZjMxMTE3MTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYwpAQCAtMTU1NSw3ICYjNDM7MTU1NSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBydDI1MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSkKICAqLwogc3RhdGljIGludCBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpCiB7Ci0Jc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207CiYjNDM7CXN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge307CiAJdTMyIHJlZzsKIAl1MTYgd29yZDsKIAl1OCAqbWFjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMKaW5kZXggMTRjNDVhYmE4MzZmMmQuLjg1M2ZkMzFkMTM2MjlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmMKQEAgLTEwOCw3ICYjNDM7MTA4LDcgQEAgc3RhdGljIHZvaWQgcnQyODAwcGNpX2VlcHJvbXJlZ2lzdGVyX3dyaXRlKHN0cnVjdCBlZXByb21fOTNjeDYgKmVlcHJvbSkKIAogc3RhdGljIGludCBydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpCiB7Ci0Jc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207CiYjNDM7CXN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge307CiAJdTMyIHJlZzsKIAogCXJlZyA9IHJ0MngwMG1taW9fcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIEUyUFJPTV9DU1IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYwppbmRleCBkMWNkNTY5NGUzYzczMi4uNWRjYTJhZmI0Yjk2YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jCkBAIC0yMjk4LDcgJiM0MzsyMjk4LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0NjFwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSkKICAqLwogc3RhdGljIGludCBydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KQogewotCXN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tOwomIzQzOwlzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9OwogCXUzMiByZWc7CiAJdTE2IHdvcmQ7CiAJdTggKm1hYzsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3MgoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDM2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbml0aWFsIFRob3VnaHRzIG9uIGEgUENJIERyaXZlciBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCBpbml0aWFsaXplcyBhbiBgZWVwcm9tXzkzY3g2YCBzdHJ1Y3QgYWNyb3NzIHNldmVyYWwgYHJ0MngwMGAgUENJIHdpcmVsZXNzIGRyaXZlcnM6IGBydDI0MDBwY2kuY2AsIGBydDI1MDBwY2kuY2AsIGBydDI4MDBwY2kuY2AsIGFuZCBgcnQ2MXBjaS5jYC4gR29vZCBjYXRjaCBvbiB0aGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZTsgdGhhdCYjMzk7cyBhIGNsYXNzaWMgc291cmNlIG9mIHByb2JsZW1zLiBOb3csIHRoZSB3aGVlbHMgYXJlIHR1cm5pbmcuLi4gdGhlc2UgYXJlIFBDSSB3aXJlbGVzcyBkcml2ZXJzLCByaWdodD8gQ291bGQgdGhlc2UgYmUgcG90ZW50aWFsIHRhcmdldHMgZm9yIGZ1enppbmc/CgpQQ0kgZGV2aWNlcywgZ2VuZXJhbGx5LCBhcmUgYSBiaXQgdHJpY2tpZXIgdG8gZnV6eiBkaXJlY3RseSB1bmxlc3MgeW91JiMzOTtyZSBkZWFsaW5nIHdpdGggZW11bGF0aW9uIG9yLCBpZGVhbGx5LCBpZiBzeXprYWxsZXIgaGFzIHNvbWUgUENJLXNwZWNpZmljIGNhcGFiaWxpdGllcy4gQW5kLCB3YWl0Li4uIHdhc24mIzM5O3QgdGhlcmUgc29tZSByZWNlbnQgd29yayBvbiBQQ0kgZnV6emluZyBpbiBzeXprYWxsZXI/IFllYWgsIHZoY2kgb3IgcGNpLWZ1enplciByaW5ncyBhIGJlbGwuIEl0JiMzOTtzIG9mdGVuIGhhcmRlciBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycywgbGlrZSB0aGVzZSBSYWxpbmsgb25lcywgdG8gYmUgZWFzaWx5IHJlYWNoZWQgYnkgc3l6a2FsbGVyJiMzOTtzIGZ1enppbmcgdW5sZXNzIHRoZSBQQ0kgZGV2aWNlIGlzIGVtdWxhdGVkLCBidXQgc3l6a2FsbGVyIGRvZXMgdXNlIHZpcnR1YWwgUENJIGRldmljZXMgb3IgaW5qZWN0IFBDSSBjb25maWcgc3BhY2UvTU1JTy4KClNvLCB0aGUgbmV4dCBxdWVzdGlvbiBpcy4uLiBhcmUgdGhlcmUgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IHdvdWxkIGJlIHJlbGV2YW50IGhlcmU/IExldCYjMzk7cyBxdWlja2x5IHNjYW4gdGhlIGNvbmZpZyBvcHRpb25zOiBgQ09ORklHX1JUMlgwMGAsIGBDT05GSUdfUlQyNDAwUENJYCwgYENPTkZJR19SVDI1MDBQQ0lgLCBgQ09ORklHX1JUMjgwMFBDSWAsIGBDT05GSUdfUlQ2MVBDSWAuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlIGluIHRoZSBgcnQyeDAwYCBkaXJlY3RvcnkgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIGFueSBkZXBlbmRlbmNpZXMgb3IgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSVDI0MDBQQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTE5PWlmIFJUMlgwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjIxOmNvbmZpZyBSVDI0MDBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMi1cdHRyaXN0YXRlIFwmIzM0O1JhbGluayBydDI0MDAgKFBDSS9QQ01DSUEpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjc5CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgRGVlcGVyIGludG8gQ29uZmlndXJhdGlvbiBWZXJpZmljYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7dmUgZ290IHRoZSBpbml0aWFsIHNldHVwIGRvd24sIGJ1dCBsZXQmIzM5O3MgYmUgdGhvcm91Z2guIEJlZm9yZSBJIHNpZ24gb2ZmIG9uIHRoaXMsIGl0JiMzOTtzIGFic29sdXRlbHkgY3J1Y2lhbCB0byBlbnN1cmUgZXZlcnl0aGluZyBkb3duc3RyZWFtIGlzIGFsaWduZWQgYW5kIGZ1bmN0aW9uaW5nIGFzIGludGVuZGVkLiBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IGdvIHRocm91Z2ggKmV2ZXJ5KiByZWxhdGVkIGNvbmZpZ3VyYXRpb24uIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgcG9zc2libGUgZWRnZSBjYXNlcywgaW50ZXJhY3Rpb25zIHdpdGggb3RoZXIgbW9kdWxlcywgYW5kIHBvdGVudGlhbCBmb3IgdW5leHBlY3RlZCBiZWhhdmlvci4gVGhpcyBpc24mIzM5O3QganVzdCBhYm91dCB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9uOyBpdCYjMzk7cyBhYm91dCB2YWxpZGF0aW5nIHRoZSBlbnRpcmUgKnN5c3RlbSYjMzk7cyogc3RhdGUgYmFzZWQgb24gdGhhdCBjb25maWd1cmF0aW9uLiBJJiMzOTttIGxvb2tpbmcgZm9yIGluY29uc2lzdGVuY2llcywgcmVkdW5kYW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IGNvdWxkIGNyZWF0ZSBhIGZ1dHVyZSBoZWFkYWNoZS4gVGhlIGRldmlsIGlzIGFsd2F5cyBpbiB0aGUgZGV0YWlscywgc28gSSYjMzk7bSBnb2luZyB0byBjYXJlZnVsbHkgc2NydXRpbml6ZSB0aGUgcmVsYXRlZCBjb25maWd1cmF0aW9uIGl0ZW1zLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlQuKlBDSSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTk9aWYgUlQyWDAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjE6Y29uZmlnIFJUMjQwMFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0MjQwMCAoUENJL1BDTUNJQSkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0zMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzozMzpjb25maWcgUlQyNTAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjQ1OmNvbmZpZyBSVDYxUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAxL3J0NjEgKFBDSS9QQ01DSUEpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NjA6Y29uZmlnIFJUMjgwMFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0Mjd4eC9ydDI4eHgvcnQzMHh4IChQQ0kvUENJZS9QQ01DSUEpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9Nzc9aWYgUlQyODAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6Nzk6Y29uZmlnIFJUMjgwMFBDSV9SVDMzWFhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7cnQyODAwcGNpIC0gSW5jbHVkZSBzdXBwb3J0IGZvciBydDMzeHggZGV2aWNlc1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy04Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo4Nzpjb25maWcgUlQyODAwUENJX1JUMzVYWFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTg4LVx0Ym9vbCBcJiMzNDtydDI4MDBwY2kgLSBJbmNsdWRlIHN1cHBvcnQgZm9yIHJ0MzV4eCBkZXZpY2VzIChFWFBFUklNRU5UQUwpXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjk2OmNvbmZpZyBSVDI4MDBQQ0lfUlQ1M1hYXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctOTctXHRib29sIFwmIzM0O3J0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQ1M3h4IGRldmljZXMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjEwNDpjb25maWcgUlQyODAwUENJX1JUMzI5MFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTEwNS1cdGJvb2wgXCYjMzQ7cnQyODAwcGNpIC0gSW5jbHVkZSBzdXBwb3J0IGZvciBydDMyOTAgZGV2aWNlcyAoRVhQRVJJTUVOVEFMKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMjU9Y29uZmlnIFJUMlgwMF9MSUJfTU1JT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjI5OmNvbmZpZyBSVDJYMDBfTElCX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIzMC1cdHRyaXN0YXRlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkxNQoJCQkJCQkJb3V0cHV0OiA1NgoJCQkJCQkJdGhvdWdodHM6IDEyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERyaXZlciBDb25maWd1cmF0aW9uIGFuZCBFRVBST00gVmFsaWRhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgY29uZmlndXJhdGlvbnM6IFJUMlgwMCwgUlQyNDAwUENJLCBSVDI1MDBQQ0ksIFJUNjFQQ0ksIGFuZCBSVDI4MDBQQ0kuIFJpZ2h0LCBnb3QgaXQuIE15IGZvY3VzIGlzIG9uIHRoZSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgRUVQUk9NIHZhbGlkYXRpb24sIHNwZWNpZmljYWxseSB0aGVzZSBvbmVzOiBgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lgLCBhbmQgYHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tYC4gSSBrbm93IHRoZXNlIGFyZSBhbGwgY2FsbGVkIGR1cmluZyB0aGUgcHJvYmUgcHJvY2Vzcywgd2hpY2ggaXMgdGhlIGNydWNpYWwgcG9pbnQgZm9yIGluaXRpYWxpemF0aW9uLiBOb3csIGxldCYjMzk7cyBkcmlsbCBkb3duIGludG8gYHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb21gIGFuZCBzZWUgaG93IGl0JiMzOTtzIGFjdHVhbGx5IHVzZWQgYW5kIGltcGxlbWVudGVkLiBUaGF0JiMzOTtzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgdmFsaWRhdGlvbiBsb2dpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jPTEzNjk9c3RhdGljIGlycXJldHVybl90IHJ0MjQwMHBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTQyOS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM6MTQzMDpzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTQzMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYz0xNjA3PXN0YXRpYyBpbnQgcnQyNDAwcGNpX3Byb2JlX2h3KHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNjE0LVx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jOjE2MTU6XHRyZXR2YWwgPSBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHJ0MngwMGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jLTE2MTYtXHRpZiAocmV0dmFsKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2NzgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBQQ0kgRGV2aWNlIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMgUENJIGRldmljZS4gSSByZW1lbWJlciBub3cgdGhhdCB0aGUgcmVsZXZhbnQgY29kZSBnZXRzIGNhbGxlZCBkdXJpbmcgYHByb2JlX2h3YCwgdGhhdCBtYWtlcyBzZW5zZS4KCkNhbiBzeXprYWxsZXIgaGFuZGxlIFBDSSBkZXZpY2VzPyBZZXMsIGFic29sdXRlbHkuIEkgcmVjYWxsIGl0IGhhdmluZyBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgLCBhbHRob3VnaCBpdCBpc24mIzM5O3Qgb2Z0ZW4gdGhhdCBzeXprYWxsZXIgcmVhbGx5IGRpZ3MgZGVlcCBpbnRvIHNwZWNpZmljIGRyaXZlci1sZXZlbCBkZXRhaWxzIHVubGVzcyBpdCYjMzk7cyBzcGVjaWZpY2FsbHkgYWltZWQgYXQgYSBkcml2ZXIgb3IgdGhlIFBDSSBzdWJzeXN0ZW0gaXRzZWxmIGlzIHRoZSB0YXJnZXQgb2YgdGhlIGZ1enouIEJ1dCB0aGUgc3VwcG9ydCBpcyB0aGVyZSwgZm9yIHN1cmUuCgpBY3R1YWxseSwgc2NyYXRjaCB0aGF0LCBzeXprYWxsZXIgKmNhbiogZGVmaW5pdGVseSBmdXp6IFBDSSBkZXZpY2VzLgoKSXMgdGhpcyBmdXp6aW5nIGVmZm9ydCB3b3J0aHdoaWxlPyBZZXMsIGl0IGlzIGEgZnVuY3Rpb25hbGx5IGltcG9ydGFudCBjaGFuZ2Ug4oCTIGl0IGlzIGluaXRpYWxpemluZyBhIHN0cnVjdCB0byBhdm9pZCBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnksIHNvIGRlZmluaXRlbHkuCgpOb3csIGxldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIHJlbGV2YW50IGNvZGUuIExvb2tpbmcgYXQgdGhlIGNvbmZpZ3MsIEkgc2VlOiBgUlQyWDAwYCwgYFJUMjQwMFBDSWAsIGBSVDI1MDBQQ0lgLCBgUlQ2MVBDSWAsIGFuZCBgUlQyODAwUENJYC4gVGhvc2UgYXJlIHRoZSBvbmVzIEkgc2hvdWxkIGNoZWNrIGFnYWluc3QuCgpNeSBmb2N1cyBpcyBvbiB0aGVzZSBzeW1ib2xzOiBgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lgLCBhbmQgYHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tYC4gVGhlc2Ugc2VlbSByZWxldmFudC4KCkFuZCB0byBkb3VibGUtY2hlY2sgbXkgYXNzdW1wdGlvbnMsIGBSVDJYMDBfTElCX1BDSWAgaXMgc2VsZWN0ZWQgYnkgdGhvc2UgY29uZmlncyBJIGNoZWNrZWQsIHdoaWNoIGlzIGdvb2QuIEZ1cnRoZXJtb3JlLCBgV0xBTmAgYW5kIGBXTEFOX1ZFTkRPUl9SQUxJTktgIGFyZSBuZWVkZWQuIEdvdCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMTQ6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFdMQU5fVkVORE9SX1JBTElOSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvS2NvbmZpZzoyOmNvbmZpZyBXTEFOX1ZFTkRPUl9SQUxJTktcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnLTMtXHRib29sIFwmIzM0O1JhbGluayBkZXZpY2VzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NDMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOgoKKipJbml0aWFsIEFzc2Vzc21lbnQgYW5kIERlcGVuZGVuY3kgQ2hlY2sqKgoKUmlnaHQsIHNvIHdlIG5lZWQgYFdMQU5fVkVORE9SX1JBTElOS2AuIFRoYXQmIzM5O3MgYSBnaXZlbi4gTm93LCBiZWZvcmUgSSBqdW1wIGluIGFuZCBzdGFydCBjb25maWd1cmluZywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnl0aGluZy4gRXhwZXJpZW5jZSBoYXMgdGF1Z2h0IG1lIGl0JiMzOTtzIGFsd2F5cyB3b3J0aCBhIHF1aWNrIHN3ZWVwIHRvIHNlZSBpZiBgV0xBTl9WRU5ET1JfUkFMSU5LYCBpbmRpcmVjdGx5IGJyaW5ncyBpbiBvdGhlciwgcG90ZW50aWFsbHkgY29uZmxpY3RpbmcsIGRlcGVuZGVuY2llcy4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgYW55IGludGVyZGVwZW5kZW5jaWVzLiBMZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcHJlcmVxdWlzaXRlcywgbGlrZSBzcGVjaWZpYyBrZXJuZWwgbW9kdWxlcyBvciBvdGhlciBjb21wb25lbnQgcGFja2FnZXMsIHRoYXQgbWlnaHQgYmUgaW52b2x2ZWQuIEdvdHRhIGRvdCBhbGwgdGhlICYjMzQ7aSYjMzQ7cyBhbmQgY3Jvc3MgYWxsIHRoZSAmIzM0O3QmIzM0O3MgYmVmb3JlIG1ha2luZyBhbnkgZmlybSBkZWNpc2lvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDE0OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI9bWVudWNvbmZpZyBSVDJYMDBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NDpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IEhBU19ETUFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy01LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMT1jb25maWcgUlQyNDAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjItXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTI0LVx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0zMz1jb25maWcgUlQyNTAwUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MzU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTM2LVx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz00NT1jb25maWcgUlQ2MVBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ2LVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0MjUwMS9ydDYxIChQQ0kvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NDc6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ4LVx0c2VsZWN0IFJUMlgwMF9MSUJfUENJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTYwPWNvbmZpZyBSVDI4MDBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O1JhbGluayBydDI3eHgvcnQyOHh4L3J0MzB4eCAoUENJL1BDSWUvUENNQ0lBKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTYzLVx0c2VsZWN0IFJUMjgwMF9MSUJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTEzPWNvbmZpZyBSVDI1MDBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xMTQtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAwIChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMTU6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTExNi1cdHNlbGVjdCBSVDJYMDBfTElCX1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0xMjQ9Y29uZmlnIFJUNzNVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xMjUtXHR0cmlzdGF0ZSBcJiMzNDtSYWxpbmsgcnQyNTAxL3J0NzMgKFVTQikgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjEyNjpcdGRlcGVuZHMgb24gVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTI3LVx0c2VsZWN0IFJUMlgwMF9MSUJfVVNCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTEzNz1jb25maWcgUlQyODAwVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTM4LVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIHJ0Mjd4eC9ydDI4eHgvcnQzMHh4IChVU0IpIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMzk6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTE0MC1cdHNlbGVjdCBSVDI4MDBfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTIwMT1jb25maWcgUlQyODAwU09DXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjAyLVx0dHJpc3RhdGUgXCYjMzQ7UmFsaW5rIFdpU29DIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMDM6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoU09DX1JUMjg4WCB8fCBTT0NfUlQzMDVYIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwNC1cdHNlbGVjdCBSVDJYMDBfTElCX01NSU9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MjUxPWNvbmZpZyBSVDJYMDBfTElCX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNTItXHRib29sIFwmIzM0O1JhbGluayBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyNTM6XHRkZXBlbmRzIG9uIFJUMlgwMF9MSUIgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNTQtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI1OT1jb25maWcgUlQyWDAwX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtSYWxpbmsgZGVidWcgb3V0cHV0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjYxOlx0ZGVwZW5kcyBvbiBSVDJYMDBfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjYyLVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTc1CgkJCQkJCQlvdXRwdXQ6IDE5NwoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSYWxpbmsgUENJIFdpcmVsZXNzIERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyBsaWtlIGl0JiMzOTtzIGFkZHJlc3NpbmcgYSByZWFsbHkgaW50ZXJlc3RpbmcgdnVsbmVyYWJpbGl0eSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaXMgZml4aW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UsIHdoaWNoIGlzIGFsd2F5cyBhIGp1aWN5IHRhcmdldC4gVGhlIGlzc3VlIGNlbnRlcnMgYXJvdW5kIHRoZSBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gIHZhcmlhYmxlIGFuZCBob3cgaXQmIzM5O3MgYmVpbmcgaGFuZGxlZC4gSXQmIzM5O3Mgbm90IGJlaW5nIGluaXRpYWxpemVkIHByb3Blcmx5IGluIGEgZmV3IGNydWNpYWwgZnVuY3Rpb25zOiBgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lgLCBhbmQgYHJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSBkaXJlY3RseSBpbnZvbHZlZCBpbiB0aGUgZGV2aWNlIHByb2JlIHByb2Nlc3MsIHdoaWNoIG1ha2VzIHRoZW0gdmVyeSByZWxldmFudCBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUuCgpFc3NlbnRpYWxseSwgaWYgd2UgZW5hYmxlIHRoZXNlIGRyaXZlcnMgYW5kIHRoZW4gc3RhcnQgZnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSwgd2UgY291bGQgcG90ZW50aWFsbHkgdHJpZ2dlciB0aGVzZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHJlYWRzLCB3aGljaCwgYXMgd2Uga25vdywgY2FuIGxlYWQgdG8gYWxsIHNvcnRzIG9mIHVucHJlZGljdGFibGUgYW5kIHBvdGVudGlhbGx5IGV4cGxvaXRhYmxlIGJlaGF2aW9yLgoKTXkgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyBhbHdheXMgdG8gdmVyaWZ5IHRoZSBzY29wZSBvZiB0aGUgZml4LiBJIGp1c3QgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlc2UgYXJlIHRoZSBvbmx5IGZ1bmN0aW9ucyBhZmZlY3RlZC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBqdXN0IHRoZXNlIGZvdXIgZnVuY3Rpb25zLiBUaGF0JiMzOTtzIGEgZ29vZCB0aGluZywgYSBtYW5hZ2VhYmxlIHNjb3BlLiBXaXRoIHRoYXQgYW5hbHlzaXMgaW4gaGFuZCwgSSB0aGluayBpdCYjMzk7cyB0aW1lIHRvIHNldC1yZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkFMSU5LJiMzNDssCiAgICAmIzM0O1JUMlgwMCYjMzQ7LAogICAgJiMzNDtSVDI0MDBQQ0kmIzM0OywKICAgICYjMzQ7UlQyNTAwUENJJiMzNDssCiAgICAmIzM0O1JUNjFQQ0kmIzM0OywKICAgICYjMzQ7UlQyODAwUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7LAogICAgJiMzNDtydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgICAmIzM0O3J0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2kmIzM0OywKICAgICYjMzQ7cnQ2MXBjaV92YWxpZGF0ZV9lZXByb20mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycyBieSB6ZXJvLWluaXRpYWxpemluZyBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBGdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIHdpdGggdGhlc2UgZHJpdmVycyBlbmFibGVkIGNhbiB0cmlnZ2VyIHRoZXNlIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtXTEFOX1ZFTkRPUl9SQUxJTksmIzM0OywKICAgICYjMzQ7UlQyWDAwJiMzNDssCiAgICAmIzM0O1JUMjQwMFBDSSYjMzQ7LAogICAgJiMzNDtSVDI1MDBQQ0kmIzM0OywKICAgICYjMzQ7UlQ2MVBDSSYjMzQ7LAogICAgJiMzNDtSVDI4MDBQQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tJiMzNDssCiAgICAmIzM0O3J0MjUwMHBjaV92YWxpZGF0ZV9lZXByb20mIzM0OywKICAgICYjMzQ7cnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaSYjMzQ7LAogICAgJiMzNDtydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHVzYWdlIGluIHNldmVyYWwgUmFsaW5rIFBDSSB3aXJlbGVzcyBkcml2ZXJzIGJ5IHplcm8taW5pdGlhbGl6aW5nIGBzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbWAuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcmVhY2hhYmxlIGR1cmluZyBkZXZpY2UgcHJvYmUuIEZ1enppbmcgdGhlIFBDSSBzdWJzeXN0ZW0gd2l0aCB0aGVzZSBkcml2ZXJzIGVuYWJsZWQgY2FuIHRyaWdnZXIgdGhlc2UgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjowOC44MjE0MzgyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU5NzIxMTM5NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gICAgXCJSVDJYMDBcIixcbiAgICBcIlJUMjQwMFBDSVwiLFxuICAgIFwiUlQyNTAwUENJXCIsXG4gICAgXCJSVDYxUENJXCIsXG4gICAgXCJSVDI4MDBQQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpXCIsXG4gICAgXCJydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6MDguODIxNDQ0NDJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzOTM1NDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQ3NTMxZTRlMDk3N2MzZTM2YWU2YTljZDg4ZTBhMTI1NDA1OWU5NTNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMyAxNDozNjowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuY1xcbmluZGV4IDQyZTIxZTlmMzAzYjI0Li4xNTA3M2I4NTZhZGY5ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuY1xcbkBAIC0xNDI5LDcgKzE0MjksNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQyNDAwcGNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXFxuICAqL1xcbiBzdGF0aWMgaW50IHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4ge1xcbi1cXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcXG4rXFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcXG4gXFx0dTMyIHJlZztcXG4gXFx0dTE2IHdvcmQ7XFxuIFxcdHU4ICptYWM7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jXFxuaW5kZXggMzZkZGM1YTY5ZmE0MGEuLjM1MzZhMGYzMTExNzE0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjUwMHBjaS5jXFxuQEAgLTE1NTUsNyArMTU1NSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBydDI1MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4gICovXFxuIHN0YXRpYyBpbnQgcnQyNTAwcGNpX3ZhbGlkYXRlX2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxcbiB7XFxuLVxcdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO1xcbitcXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9O1xcbiBcXHR1MzIgcmVnO1xcbiBcXHR1MTYgd29yZDtcXG4gXFx0dTggKm1hYztcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcXG5pbmRleCAxNGM0NWFiYTgzNmYyZC4uODUzZmQzMWQxMzYyOWYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyODAwcGNpLmNcXG5AQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIHJ0MjgwMHBjaV9lZXByb21yZWdpc3Rlcl93cml0ZShzdHJ1Y3QgZWVwcm9tXzkzY3g2ICplZXByb20pXFxuIFxcbiBzdGF0aWMgaW50IHJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2koc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4ge1xcbi1cXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcXG4rXFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcXG4gXFx0dTMyIHJlZztcXG4gXFxuIFxcdHJlZyA9IHJ0MngwMG1taW9fcmVnaXN0ZXJfcmVhZChydDJ4MDBkZXYsIEUyUFJPTV9DU1IpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXFxuaW5kZXggZDFjZDU2OTRlM2M3MzIuLjVkY2EyYWZiNGI5NmMyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmNcXG5AQCAtMjI5OCw3ICsyMjk4LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0NjFwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4gICovXFxuIHN0YXRpYyBpbnQgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcXG4ge1xcbi1cXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcXG4rXFx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcXG4gXFx0dTMyIHJlZztcXG4gXFx0dTE2IHdvcmQ7XFxuIFxcdHU4ICptYWM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjA5LjM2MTQ3MDI4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU0MzIwNjcwMjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gICAgXCJSVDJYMDBcIixcbiAgICBcIlJUMjQwMFBDSVwiLFxuICAgIFwiUlQyNTAwUENJXCIsXG4gICAgXCJSVDYxUENJXCIsXG4gICAgXCJSVDI4MDBQQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpXCIsXG4gICAgXCJydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBkNzUzMWU0ZTA5NzdjM2UzNmFlNmE5Y2Q4OGUwYTEyNTQwNTllOTUzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMyAxNDozNjowNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5pbmRleCA0MmUyMWU5ZjMwM2IyNC4uMTUwNzNiODU2YWRmOWUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jXG5AQCAtMTQyOSw3ICsxNDI5LDcgQEAgc3RhdGljIGlycXJldHVybl90IHJ0MjQwMHBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuICAqL1xuIHN0YXRpYyBpbnQgcnQyNDAwcGNpX3ZhbGlkYXRlX2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxuIHtcbi1cdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO1xuK1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXHR1MTYgd29yZDtcbiBcdHU4ICptYWM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI1MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcbmluZGV4IDM2ZGRjNWE2OWZhNDBhLi4zNTM2YTBmMzExMTcxNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNTAwcGNpLmNcbkBAIC0xNTU1LDcgKzE1NTUsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQyNTAwcGNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpXG4gICovXG4gc3RhdGljIGludCBydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXG4ge1xuLVx0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb207XG4rXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbSA9IHt9O1xuIFx0dTMyIHJlZztcbiBcdHUxNiB3b3JkO1xuIFx0dTggKm1hYztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjgwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xuaW5kZXggMTRjNDVhYmE4MzZmMmQuLjg1M2ZkMzFkMTM2MjlmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI4MDBwY2kuY1xuQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgdm9pZCBydDI4MDBwY2lfZWVwcm9tcmVnaXN0ZXJfd3JpdGUoc3RydWN0IGVlcHJvbV85M2N4NiAqZWVwcm9tKVxuIFxuIHN0YXRpYyBpbnQgcnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxuIHtcbi1cdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tO1xuK1x0c3RydWN0IGVlcHJvbV85M2N4NiBlZXByb20gPSB7fTtcbiBcdHUzMiByZWc7XG4gXG4gXHRyZWcgPSBydDJ4MDBtbWlvX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBFMlBST01fQ1NSKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQ2MXBjaS5jXG5pbmRleCBkMWNkNTY5NGUzYzczMi4uNWRjYTJhZmI0Yjk2YzIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0NjFwY2kuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDYxcGNpLmNcbkBAIC0yMjk4LDcgKzIyOTgsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcnQ2MXBjaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuICAqL1xuIHN0YXRpYyBpbnQgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldilcbiB7XG4tXHRzdHJ1Y3QgZWVwcm9tXzkzY3g2IGVlcHJvbTtcbitcdHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tID0ge307XG4gXHR1MzIgcmVnO1xuIFx0dTE2IHdvcmQ7XG4gXHR1OCAqbWFjO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6MDkuMzYxNDcxODE2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYxMjgxMjc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbml0aWFsIFRob3VnaHRzIG9uIGEgUENJIERyaXZlciBGaXgqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgaW5pdGlhbGl6ZXMgYW4gYGVlcHJvbV85M2N4NmAgc3RydWN0IGFjcm9zcyBzZXZlcmFsIGBydDJ4MDBgIFBDSSB3aXJlbGVzcyBkcml2ZXJzOiBgcnQyNDAwcGNpLmNgLCBgcnQyNTAwcGNpLmNgLCBgcnQyODAwcGNpLmNgLCBhbmQgYHJ0NjFwY2kuY2AuIEdvb2QgY2F0Y2ggb24gdGhlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGU7IHRoYXQncyBhIGNsYXNzaWMgc291cmNlIG9mIHByb2JsZW1zLiBOb3csIHRoZSB3aGVlbHMgYXJlIHR1cm5pbmcuLi4gdGhlc2UgYXJlIFBDSSB3aXJlbGVzcyBkcml2ZXJzLCByaWdodD8gQ291bGQgdGhlc2UgYmUgcG90ZW50aWFsIHRhcmdldHMgZm9yIGZ1enppbmc/XG5cblBDSSBkZXZpY2VzLCBnZW5lcmFsbHksIGFyZSBhIGJpdCB0cmlja2llciB0byBmdXp6IGRpcmVjdGx5IHVubGVzcyB5b3UncmUgZGVhbGluZyB3aXRoIGVtdWxhdGlvbiBvciwgaWRlYWxseSwgaWYgc3l6a2FsbGVyIGhhcyBzb21lIFBDSS1zcGVjaWZpYyBjYXBhYmlsaXRpZXMuIEFuZCwgd2FpdC4uLiB3YXNuJ3QgdGhlcmUgc29tZSByZWNlbnQgd29yayBvbiBQQ0kgZnV6emluZyBpbiBzeXprYWxsZXI/IFllYWgsIHZoY2kgb3IgcGNpLWZ1enplciByaW5ncyBhIGJlbGwuIEl0J3Mgb2Z0ZW4gaGFyZGVyIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXJzLCBsaWtlIHRoZXNlIFJhbGluayBvbmVzLCB0byBiZSBlYXNpbHkgcmVhY2hlZCBieSBzeXprYWxsZXIncyBmdXp6aW5nIHVubGVzcyB0aGUgUENJIGRldmljZSBpcyBlbXVsYXRlZCwgYnV0IHN5emthbGxlciBkb2VzIHVzZSB2aXJ0dWFsIFBDSSBkZXZpY2VzIG9yIGluamVjdCBQQ0kgY29uZmlnIHNwYWNlL01NSU8uXG5cblNvLCB0aGUgbmV4dCBxdWVzdGlvbiBpcy4uLiBhcmUgdGhlcmUgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IHdvdWxkIGJlIHJlbGV2YW50IGhlcmU/IExldCdzIHF1aWNrbHkgc2NhbiB0aGUgY29uZmlnIG9wdGlvbnM6IGBDT05GSUdfUlQyWDAwYCwgYENPTkZJR19SVDI0MDBQQ0lgLCBgQ09ORklHX1JUMjUwMFBDSWAsIGBDT05GSUdfUlQyODAwUENJYCwgYENPTkZJR19SVDYxUENJYC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBgS2NvbmZpZ2AgZmlsZSBpbiB0aGUgYHJ0MngwMGAgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiBhbnkgZGVwZW5kZW5jaWVzIG9yIGltcGxpY2F0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3MiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjE1Ljk3NDI4NzM0MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mjk4MzY4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlQyNDAwUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTk9aWYgUlQyWDAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMTpjb25maWcgUlQyNDAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjoxNi4wMzcyODEzMjdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTM1MDc5MjY5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEaXZpbmcgRGVlcGVyIGludG8gQ29uZmlndXJhdGlvbiBWZXJpZmljYXRpb24qKlxuXG5BbHJpZ2h0LCBJJ3ZlIGdvdCB0aGUgaW5pdGlhbCBzZXR1cCBkb3duLCBidXQgbGV0J3MgYmUgdGhvcm91Z2guIEJlZm9yZSBJIHNpZ24gb2ZmIG9uIHRoaXMsIGl0J3MgYWJzb2x1dGVseSBjcnVjaWFsIHRvIGVuc3VyZSBldmVyeXRoaW5nIGRvd25zdHJlYW0gaXMgYWxpZ25lZCBhbmQgZnVuY3Rpb25pbmcgYXMgaW50ZW5kZWQuIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgZ28gdGhyb3VnaCAqZXZlcnkqIHJlbGF0ZWQgY29uZmlndXJhdGlvbi4gSSdtIHRoaW5raW5nIGFib3V0IHBvc3NpYmxlIGVkZ2UgY2FzZXMsIGludGVyYWN0aW9ucyB3aXRoIG90aGVyIG1vZHVsZXMsIGFuZCBwb3RlbnRpYWwgZm9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIFRoaXMgaXNuJ3QganVzdCBhYm91dCB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9uOyBpdCdzIGFib3V0IHZhbGlkYXRpbmcgdGhlIGVudGlyZSAqc3lzdGVtJ3MqIHN0YXRlIGJhc2VkIG9uIHRoYXQgY29uZmlndXJhdGlvbi4gSSdtIGxvb2tpbmcgZm9yIGluY29uc2lzdGVuY2llcywgcmVkdW5kYW5jaWVzLCBvciBhbnl0aGluZyB0aGF0IGNvdWxkIGNyZWF0ZSBhIGZ1dHVyZSBoZWFkYWNoZS4gVGhlIGRldmlsIGlzIGFsd2F5cyBpbiB0aGUgZGV0YWlscywgc28gSSdtIGdvaW5nIHRvIGNhcmVmdWxseSBzY3J1dGluaXplIHRoZSByZWxhdGVkIGNvbmZpZ3VyYXRpb24gaXRlbXMuIEl0J3MgdGltZSB0byBkaWcgaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NzksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjozNS4zODgwNzU3ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ5NTczNTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVC4qUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MTk9aWYgUlQyWDAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMTpjb25maWcgUlQyNDAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzozMzpjb25maWcgUlQyNTAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTM0LVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNTAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo0NTpjb25maWcgUlQ2MVBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0MjUwMS9ydDYxIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo2MDpjb25maWcgUlQyODAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyN3h4L3J0Mjh4eC9ydDMweHggKFBDSS9QQ0llL1BDTUNJQSkgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz03Nz1pZiBSVDI4MDBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjc5OmNvbmZpZyBSVDI4MDBQQ0lfUlQzM1hYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTgwLVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQzM3h4IGRldmljZXNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjg3OmNvbmZpZyBSVDI4MDBQQ0lfUlQzNVhYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTg4LVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQzNXh4IGRldmljZXMgKEVYUEVSSU1FTlRBTClcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjk2OmNvbmZpZyBSVDI4MDBQQ0lfUlQ1M1hYXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTk3LVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQ1M3h4IGRldmljZXMgKEVYUEVSSU1FTlRBTClcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMDQ6Y29uZmlnIFJUMjgwMFBDSV9SVDMyOTBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTA1LVxcdGJvb2wgXFxcInJ0MjgwMHBjaSAtIEluY2x1ZGUgc3VwcG9ydCBmb3IgcnQzMjkwIGRldmljZXMgKEVYUEVSSU1FTlRBTClcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MjI1PWNvbmZpZyBSVDJYMDBfTElCX01NSU9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjIyOTpjb25maWcgUlQyWDAwX0xJQl9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjMwLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjM1LjczNzY2MTM1N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3ODY1NjEyMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEcml2ZXIgQ29uZmlndXJhdGlvbiBhbmQgRUVQUk9NIFZhbGlkYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBjb25maWd1cmF0aW9uczogUlQyWDAwLCBSVDI0MDBQQ0ksIFJUMjUwMFBDSSwgUlQ2MVBDSSwgYW5kIFJUMjgwMFBDSS4gUmlnaHQsIGdvdCBpdC4gTXkgZm9jdXMgaXMgb24gdGhlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBFRVBST00gdmFsaWRhdGlvbiwgc3BlY2lmaWNhbGx5IHRoZXNlIG9uZXM6IGBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjUwMHBjaV92YWxpZGF0ZV9lZXByb21gLCBgcnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaWAsIGFuZCBgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb21gLiBJIGtub3cgdGhlc2UgYXJlIGFsbCBjYWxsZWQgZHVyaW5nIHRoZSBwcm9iZSBwcm9jZXNzLCB3aGljaCBpcyB0aGUgY3J1Y2lhbCBwb2ludCBmb3IgaW5pdGlhbGl6YXRpb24uIE5vdywgbGV0J3MgZHJpbGwgZG93biBpbnRvIGBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCBhbmQgc2VlIGhvdyBpdCdzIGFjdHVhbGx5IHVzZWQgYW5kIGltcGxlbWVudGVkLiBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSB2YWxpZGF0aW9uIGxvZ2ljLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTE1LCJPdXRwdXRUb2tlbnMiOjU2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjM5LjUyNDIyNDg3MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTUyMjE0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYz0xMzY5PXN0YXRpYyBpcnFyZXR1cm5fdCBydDI0MDBwY2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmMtMTQyOS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL3J0MjQwMHBjaS5jOjE0MzA6c3RhdGljIGludCBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNDMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM9MTYwNz1zdGF0aWMgaW50IHJ0MjQwMHBjaV9wcm9iZV9odyhzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNjE0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvcnQyNDAwcGNpLmM6MTYxNTpcXHRyZXR2YWwgPSBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tKHJ0MngwMGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9ydDI0MDBwY2kuYy0xNjE2LVxcdGlmIChyZXR2YWwpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjM5LjU5NTc1ODc2NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3MjEyNjA0NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBQQ0kgRGV2aWNlIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIFBDSSBkZXZpY2UuIEkgcmVtZW1iZXIgbm93IHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgZ2V0cyBjYWxsZWQgZHVyaW5nIGBwcm9iZV9od2AsIHRoYXQgbWFrZXMgc2Vuc2UuXG5cbkNhbiBzeXprYWxsZXIgaGFuZGxlIFBDSSBkZXZpY2VzPyBZZXMsIGFic29sdXRlbHkuIEkgcmVjYWxsIGl0IGhhdmluZyBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgLCBhbHRob3VnaCBpdCBpc24ndCBvZnRlbiB0aGF0IHN5emthbGxlciByZWFsbHkgZGlncyBkZWVwIGludG8gc3BlY2lmaWMgZHJpdmVyLWxldmVsIGRldGFpbHMgdW5sZXNzIGl0J3Mgc3BlY2lmaWNhbGx5IGFpbWVkIGF0IGEgZHJpdmVyIG9yIHRoZSBQQ0kgc3Vic3lzdGVtIGl0c2VsZiBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBmdXp6LiBCdXQgdGhlIHN1cHBvcnQgaXMgdGhlcmUsIGZvciBzdXJlLlxuXG5BY3R1YWxseSwgc2NyYXRjaCB0aGF0LCBzeXprYWxsZXIgKmNhbiogZGVmaW5pdGVseSBmdXp6IFBDSSBkZXZpY2VzLlxuXG5JcyB0aGlzIGZ1enppbmcgZWZmb3J0IHdvcnRod2hpbGU/IFllcywgaXQgaXMgYSBmdW5jdGlvbmFsbHkgaW1wb3J0YW50IGNoYW5nZSDigJMgaXQgaXMgaW5pdGlhbGl6aW5nIGEgc3RydWN0IHRvIGF2b2lkIHBvdGVudGlhbCBpc3N1ZXMgd2l0aCB1bmluaXRpYWxpemVkIG1lbW9yeSwgc28gZGVmaW5pdGVseS5cblxuTm93LCBsZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgY29uZmlndXJhdGlvbnMgcmVxdWlyZWQgdG8gYnVpbGQgdGhlIHJlbGV2YW50IGNvZGUuIExvb2tpbmcgYXQgdGhlIGNvbmZpZ3MsIEkgc2VlOiBgUlQyWDAwYCwgYFJUMjQwMFBDSWAsIGBSVDI1MDBQQ0lgLCBgUlQ2MVBDSWAsIGFuZCBgUlQyODAwUENJYC4gVGhvc2UgYXJlIHRoZSBvbmVzIEkgc2hvdWxkIGNoZWNrIGFnYWluc3QuXG5cbk15IGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHM6IGBydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tYCwgYHJ0MjUwMHBjaV92YWxpZGF0ZV9lZXByb21gLCBgcnQyODAwcGNpX3JlYWRfZWVwcm9tX3BjaWAsIGFuZCBgcnQ2MXBjaV92YWxpZGF0ZV9lZXByb21gLiBUaGVzZSBzZWVtIHJlbGV2YW50LlxuXG5BbmQgdG8gZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb25zLCBgUlQyWDAwX0xJQl9QQ0lgIGlzIHNlbGVjdGVkIGJ5IHRob3NlIGNvbmZpZ3MgSSBjaGVja2VkLCB3aGljaCBpcyBnb29kLiBGdXJ0aGVybW9yZSwgYFdMQU5gIGFuZCBgV0xBTl9WRU5ET1JfUkFMSU5LYCBhcmUgbmVlZGVkLiBHb3QgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2NzgsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6NDUuMzE3MDIxOTk0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjIwNDE4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL0tjb25maWc6Mjpjb25maWcgV0xBTl9WRU5ET1JfUkFMSU5LXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL0tjb25maWctMy1cXHRib29sIFxcXCJSYWxpbmsgZGV2aWNlc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMTQ6MzY6NDUuMzgzMjM1MDI4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyODY0OTM3NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudCBhbmQgRGVwZW5kZW5jeSBDaGVjayoqXG5cblJpZ2h0LCBzbyB3ZSBuZWVkIGBXTEFOX1ZFTkRPUl9SQUxJTktgLiBUaGF0J3MgYSBnaXZlbi4gTm93LCBiZWZvcmUgSSBqdW1wIGluIGFuZCBzdGFydCBjb25maWd1cmluZywgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueXRoaW5nLiBFeHBlcmllbmNlIGhhcyB0YXVnaHQgbWUgaXQncyBhbHdheXMgd29ydGggYSBxdWljayBzd2VlcCB0byBzZWUgaWYgYFdMQU5fVkVORE9SX1JBTElOS2AgaW5kaXJlY3RseSBicmluZ3MgaW4gb3RoZXIsIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nLCBkZXBlbmRlbmNpZXMuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgYW55IGludGVyZGVwZW5kZW5jaWVzLiBMZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBwcmVyZXF1aXNpdGVzLCBsaWtlIHNwZWNpZmljIGtlcm5lbCBtb2R1bGVzIG9yIG90aGVyIGNvbXBvbmVudCBwYWNrYWdlcywgdGhhdCBtaWdodCBiZSBpbnZvbHZlZC4gR290dGEgZG90IGFsbCB0aGUgXCJpXCJzIGFuZCBjcm9zcyBhbGwgdGhlIFwidFwicyBiZWZvcmUgbWFraW5nIGFueSBmaXJtIGRlY2lzaW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQ0MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjQ4LjY2OTczMTM4M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUwNjE2MDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI9bWVudWNvbmZpZyBSVDJYMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIGRyaXZlciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy01LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMT1jb25maWcgUlQyNDAwUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNDAwIChQQ0kvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNC1cXHRzZWxlY3QgUlQyWDAwX0xJQl9NTUlPXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc9MzM9Y29uZmlnIFJUMjUwMFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0zNC1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0MjUwMCAoUENJL1BDTUNJQSkgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MzU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMzYtXFx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTQ1PWNvbmZpZyBSVDYxUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJSYWxpbmsgcnQyNTAxL3J0NjEgKFBDSS9QQ01DSUEpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjQ3OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTQ4LVxcdHNlbGVjdCBSVDJYMDBfTElCX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTYwPWNvbmZpZyBSVDI4MDBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJhbGluayBydDI3eHgvcnQyOHh4L3J0MzB4eCAoUENJL1BDSWUvUENNQ0lBKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzo2MjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy02My1cXHRzZWxlY3QgUlQyODAwX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTExMz1jb25maWcgUlQyNTAwVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTExNC1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0MjUwMCAoVVNCKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMTU6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTE2LVxcdHNlbGVjdCBSVDJYMDBfTElCX1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTEyND1jb25maWcgUlQ3M1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xMjUtXFx0dHJpc3RhdGUgXFxcIlJhbGluayBydDI1MDEvcnQ3MyAoVVNCKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoxMjY6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMTI3LVxcdHNlbGVjdCBSVDJYMDBfTElCX1VTQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTEzNz1jb25maWcgUlQyODAwVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmFsaW5rIHJ0Mjd4eC9ydDI4eHgvcnQzMHh4IChVU0IpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnOjEzOTpcXHRkZXBlbmRzIG9uIFVTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0xNDAtXFx0c2VsZWN0IFJUMjgwMF9MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yMDE9Y29uZmlnIFJUMjgwMFNPQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMDItXFx0dHJpc3RhdGUgXFxcIlJhbGluayBXaVNvQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyMDM6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoU09DX1JUMjg4WCB8fCBTT0NfUlQzMDVYIHx8IFNPQ19NVDc2MjAgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yMDQtXFx0c2VsZWN0IFJUMlgwMF9MSUJfTU1JT1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnPTI1MT1jb25maWcgUlQyWDAwX0xJQl9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmFsaW5rL3J0MngwMC9LY29uZmlnLTI1Mi1cXHRib29sIFxcXCJSYWxpbmsgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZzoyNTM6XFx0ZGVwZW5kcyBvbiBSVDJYMDBfTElCIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWctMjU0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZz0yNTk9Y29uZmlnIFJUMlgwMF9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiUmFsaW5rIGRlYnVnIG91dHB1dFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yYWxpbmsvcnQyeDAwL0tjb25maWc6MjYxOlxcdGRlcGVuZHMgb24gUlQyWDAwX0xJQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JhbGluay9ydDJ4MDAvS2NvbmZpZy0yNjItXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QxNDozNjo0OC43MzQ3OTkxNzhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTc1NTIxNDc1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSYWxpbmsgUENJIFdpcmVsZXNzIERyaXZlciBWdWxuZXJhYmlsaXR5KipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgbGlrZSBpdCdzIGFkZHJlc3NpbmcgYSByZWFsbHkgaW50ZXJlc3RpbmcgdnVsbmVyYWJpbGl0eSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggaXMgZml4aW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UsIHdoaWNoIGlzIGFsd2F5cyBhIGp1aWN5IHRhcmdldC4gVGhlIGlzc3VlIGNlbnRlcnMgYXJvdW5kIHRoZSBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gIHZhcmlhYmxlIGFuZCBob3cgaXQncyBiZWluZyBoYW5kbGVkLiBJdCdzIG5vdCBiZWluZyBpbml0aWFsaXplZCBwcm9wZXJseSBpbiBhIGZldyBjcnVjaWFsIGZ1bmN0aW9uczogYHJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb21gLCBgcnQyNTAwcGNpX3ZhbGlkYXRlX2VlcHJvbWAsIGBydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpYCwgYW5kIGBydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbWAuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgZGlyZWN0bHkgaW52b2x2ZWQgaW4gdGhlIGRldmljZSBwcm9iZSBwcm9jZXNzLCB3aGljaCBtYWtlcyB0aGVtIHZlcnkgcmVsZXZhbnQgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLlxuXG5Fc3NlbnRpYWxseSwgaWYgd2UgZW5hYmxlIHRoZXNlIGRyaXZlcnMgYW5kIHRoZW4gc3RhcnQgZnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSwgd2UgY291bGQgcG90ZW50aWFsbHkgdHJpZ2dlciB0aGVzZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHJlYWRzLCB3aGljaCwgYXMgd2Uga25vdywgY2FuIGxlYWQgdG8gYWxsIHNvcnRzIG9mIHVucHJlZGljdGFibGUgYW5kIHBvdGVudGlhbGx5IGV4cGxvaXRhYmxlIGJlaGF2aW9yLlxuXG5NeSBpbW1lZGlhdGUgbmV4dCBzdGVwIGlzIGFsd2F5cyB0byB2ZXJpZnkgdGhlIHNjb3BlIG9mIHRoZSBmaXguIEkganVzdCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGVzZSBhcmUgdGhlIG9ubHkgZnVuY3Rpb25zIGFmZmVjdGVkLiBJdCBsb29rcyBsaWtlIGl0J3MganVzdCB0aGVzZSBmb3VyIGZ1bmN0aW9ucy4gVGhhdCdzIGEgZ29vZCB0aGluZywgYSBtYW5hZ2VhYmxlIHNjb3BlLiBXaXRoIHRoYXQgYW5hbHlzaXMgaW4gaGFuZCwgSSB0aGluayBpdCdzIHRpbWUgdG8gc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgxNzUsIk91dHB1dFRva2VucyI6MTk3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDE0OjM2OjU0LjQ5MDAxNzI4M1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMzUxMDg5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiV0xBTl9WRU5ET1JfUkFMSU5LXCIsXG4gICAgXCJSVDJYMDBcIixcbiAgICBcIlJUMjQwMFBDSVwiLFxuICAgIFwiUlQyNTAwUENJXCIsXG4gICAgXCJSVDYxUENJXCIsXG4gICAgXCJSVDI4MDBQQ0lcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydDI0MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI1MDBwY2lfdmFsaWRhdGVfZWVwcm9tXCIsXG4gICAgXCJydDI4MDBwY2lfcmVhZF9lZXByb21fcGNpXCIsXG4gICAgXCJydDYxcGNpX3ZhbGlkYXRlX2VlcHJvbVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNhZ2UgaW4gc2V2ZXJhbCBSYWxpbmsgUENJIHdpcmVsZXNzIGRyaXZlcnMgYnkgemVyby1pbml0aWFsaXppbmcgYHN0cnVjdCBlZXByb21fOTNjeDYgZWVwcm9tYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSByZWFjaGFibGUgZHVyaW5nIGRldmljZSBwcm9iZS4gRnV6emluZyB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIHRoZXNlIGRyaXZlcnMgZW5hYmxlZCBjYW4gdHJpZ2dlciB0aGVzZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOX1ZFTkRPUl9SQUxJTktcIixcbiAgICBcIlJUMlgwMFwiLFxuICAgIFwiUlQyNDAwUENJXCIsXG4gICAgXCJSVDI1MDBQQ0lcIixcbiAgICBcIlJUNjFQQ0lcIixcbiAgICBcIlJUMjgwMFBDSVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0MjQwMHBjaV92YWxpZGF0ZV9lZXByb21cIixcbiAgICBcInJ0MjUwMHBjaV92YWxpZGF0ZV9lZXByb21cIixcbiAgICBcInJ0MjgwMHBjaV9yZWFkX2VlcHJvbV9wY2lcIixcbiAgICBcInJ0NjFwY2lfdmFsaWRhdGVfZWVwcm9tXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2FnZSBpbiBzZXZlcmFsIFJhbGluayBQQ0kgd2lyZWxlc3MgZHJpdmVycyBieSB6ZXJvLWluaXRpYWxpemluZyBgc3RydWN0IGVlcHJvbV85M2N4NiBlZXByb21gLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSBkdXJpbmcgZGV2aWNlIHByb2JlLiBGdXp6aW5nIHRoZSBQQ0kgc3Vic3lzdGVtIHdpdGggdGhlc2UgZHJpdmVycyBlbmFibGVkIGNhbiB0cmlnZ2VyIHRoZXNlIHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[1] Phase: Succeeded StartedAt: 2026-07-03 14:39:40 +0000 UTC FinishedAt: 2026-07-03 14:39:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-03 14:39:40 +0000 UTC FinishedAt: 2026-07-03 14:39:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2] Phase: Succeeded StartedAt: 2026-07-03 14:39:40 +0000 UTC FinishedAt: 2026-07-03 16:09:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-03 14:39:40 +0000 UTC FinishedAt: 2026-07-03 16:09:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-03 14:39:40 +0000 UTC FinishedAt: 2026-07-03 14:40:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-03 14:39:40 +0000 UTC FinishedAt: 2026-07-03 14:39:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowl7zjz/series-workflowl7zjz-convert-artifact-121969695/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-03 14:40:01 +0000 UTC FinishedAt: 2026-07-03 15:32:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-03 14:40:01 +0000 UTC FinishedAt: 2026-07-03 15:32:34 +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:*d43061e2-c59f-49a2-bb42-521d71f96bd3,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-workflowl7zjz/series-workflowl7zjz-convert-artifact-121969695/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": "c7ec601e-9ba1-430f-917f-c3e2c83ac941", "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-workflowl7zjz/series-workflowl7zjz-build-action-3364720165/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-03 14:40:01 +0000 UTC FinishedAt: 2026-07-03 15:30:47 +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:*d43061e2-c59f-49a2-bb42-521d71f96bd3,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-workflowl7zjz/series-workflowl7zjz-convert-artifact-121969695/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": "c7ec601e-9ba1-430f-917f-c3e2c83ac941", "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-workflowl7zjz/series-workflowl7zjz-build-action-3364720165/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-03 15:32:34 +0000 UTC FinishedAt: 2026-07-03 15:32:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-03 15:32:34 +0000 UTC FinishedAt: 2026-07-03 15:32:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-03 15:32:34 +0000 UTC FinishedAt: 2026-07-03 15:32:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-03 15:32:34 +0000 UTC FinishedAt: 2026-07-03 15:32:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowl7zjz/series-workflowl7zjz-convert-artifact-790864046/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-03 15:32:44 +0000 UTC FinishedAt: 2026-07-03 15:34:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-03 15:32:44 +0000 UTC FinishedAt: 2026-07-03 15:34:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c7ec601e-9ba1-430f-917f-c3e2c83ac941,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-workflowl7zjz/series-workflowl7zjz-build-action-3364720165/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-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-03 15:34:43 +0000 UTC FinishedAt: 2026-07-03 15:34:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-03 15:34:43 +0000 UTC FinishedAt: 2026-07-03 15:34:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-03 15:34:43 +0000 UTC FinishedAt: 2026-07-03 16:03:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-03 15:34:43 +0000 UTC FinishedAt: 2026-07-03 16:03:55 +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:*d43061e2-c59f-49a2-bb42-521d71f96bd3,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-workflowl7zjz/series-workflowl7zjz-convert-artifact-790864046/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": "c2cf3e6a-05be-4913-8fb1-1ca5bc3373c0", "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-workflowl7zjz/series-workflowl7zjz-build-action-1331451842/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-03 15:34:43 +0000 UTC FinishedAt: 2026-07-03 16:03:45 +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:*d43061e2-c59f-49a2-bb42-521d71f96bd3,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-workflowl7zjz/series-workflowl7zjz-convert-artifact-790864046/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": "c2cf3e6a-05be-4913-8fb1-1ca5bc3373c0", "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-workflowl7zjz/series-workflowl7zjz-build-action-1331451842/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-03 16:03:55 +0000 UTC FinishedAt: 2026-07-03 16:03:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-03 16:03:55 +0000 UTC FinishedAt: 2026-07-03 16:03:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-03 16:03:55 +0000 UTC FinishedAt: 2026-07-03 16:05:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-03 16:03:55 +0000 UTC FinishedAt: 2026-07-03 16:05:47 +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:*c2cf3e6a-05be-4913-8fb1-1ca5bc3373c0,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-workflowl7zjz/series-workflowl7zjz-build-action-1331451842/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-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-03 16:05:56 +0000 UTC FinishedAt: 2026-07-03 16:09:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-03 16:05:56 +0000 UTC FinishedAt: 2026-07-03 16:09:16 +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":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"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:*c7ec601e-9ba1-430f-917f-c3e2c83ac941,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c2cf3e6a-05be-4913-8fb1-1ca5bc3373c0,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-workflowl7zjz/series-workflowl7zjz-build-action-3364720165/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-workflowl7zjz/series-workflowl7zjz-build-action-1331451842/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-03 16:05:56 +0000 UTC FinishedAt: 2026-07-03 16:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-03 16:05:56 +0000 UTC FinishedAt: 2026-07-03 16:06:03 +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":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"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-workflowl7zjz/series-workflowl7zjz-convert-artifact-3655285587/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-03 16:05:56 +0000 UTC FinishedAt: 2026-07-03 16:05:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-03 16:05:56 +0000 UTC FinishedAt: 2026-07-03 16:05:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-03 16:05:56 +0000 UTC FinishedAt: 2026-07-03 16:05:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-03 16:06:06 +0000 UTC FinishedAt: 2026-07-03 16:09:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowl7zjz[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rt2400pci_validate_eeprom","rt2500pci_validate_eeprom","rt2800pci_read_eeprom_pci","rt61pci_validate_eeprom"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5ba54393dcd7adf75a9f39f5a933b1538349cad5","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN_VENDOR_RALINK","RT2X00","RT2400PCI","RT2500PCI","RT61PCI","RT2800PCI"],"series_id":"58737a93-e73d-48df-997a-e3cbb299a871","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-03 16:06:06 +0000 UTC FinishedAt: 2026-07-03 16:08:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c7ec601e-9ba1-430f-917f-c3e2c83ac941,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c2cf3e6a-05be-4913-8fb1-1ca5bc3373c0,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-workflowl7zjz/series-workflowl7zjz-build-action-3364720165/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-workflowl7zjz/series-workflowl7zjz-build-action-1331451842/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-workflowl7zjz/series-workflowl7zjz-convert-artifact-3655285587/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,}