Name: series-workflowwkq2n Phase: Running StartedAt: 2026-08-03 10:07:16 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[0] Phase: Succeeded StartedAt: 2026-08-03 10:07:16 +0000 UTC FinishedAt: 2026-08-03 10:11:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 10:07:16 +0000 UTC FinishedAt: 2026-08-03 10:11:55 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "4a0bd262df757b25fc4e2a53c947317c119ced4e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_SDIO", "MMC_VUB300", "CFG80211", "MMC", "USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "4a0bd262df757b25fc4e2a53c947317c119ced4e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_SDIO", "MMC_VUB300", "CFG80211", "MMC", "USB" ], "series_id": "dc98cd1b-0763-41eb-8f8d-e885cb4714f9" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "brcmf_sdio_probe", "brcmf_sdio_isr", "brcmf_sdio_trigger_dpc" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1NESU8mIzM0OywKICAgICYjMzQ7TU1DX1ZVQjMwMCYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNTUMmIzM0OywKICAgICYjMzQ7VVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnJjbWZfc2Rpb19wcm9iZSYjMzQ7LAogICAgJiMzNDticmNtZl9zZGlvX2lzciYjMzQ7LAogICAgJiMzNDticmNtZl9zZGlvX3RyaWdnZXJfZHBjJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXImIzM5O3MgU0RJTyBpbnRlcmZhY2UuIFRoZSBkcml2ZXIgY2FuIGJlIHByb2JlZCBhbmQgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBieSBlbXVsYXRpbmcgdGhlIFZVQjMwMCBTRElPLXRvLVVTQiBicmlkZ2UgY29udHJvbGxlci4gVGhlIHBhdGNoIG1vZGlmaWVzIGZ1bmN0aW9uYWwgY29kZSBpbiB0aGUgU0RJTyBjb250cm9sIGZyYW1lIHJlYWQgcGF0aC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDBjZWNjOWNmODRkOTRkNjRlMDgzMjE2MGVjMDJmMzM2N2QwNjYwODZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDEwOjA4OjU4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXG5pbmRleCA5ZjdlZDFkMjkzYTA2Li4zODE4MDFhZjNhYzk4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuQEAgLTE4MjcsMTcgJiM0MzsxODI3LDE4IEBAIGJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXG4gXHRpZiAoYnVzLVx1MDAzZXJ4Y3RsKSB7XG4gXHRcdGJyY21mX2VycihcJiMzNDtsYXN0IGNvbnRyb2wgZnJhbWUgaXMgYmVpbmcgcHJvY2Vzc2VkLlxcblwmIzM0Oyk7XG4gXHRcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmJ1cy1cdTAwM2VyeGN0bF9sb2NrKTtcbi1cdFx0dmZyZWUoYnVmKTtcbiBcdFx0Z290byBkb25lO1xuIFx0fVxuIFx0YnVzLVx1MDAzZXJ4Y3RsID0gYnVmICYjNDM7IGRvZmY7XG4gXHRidXMtXHUwMDNlcnhjdGxfb3JpZyA9IGJ1ZjtcbiBcdGJ1cy1cdTAwM2VyeGxlbiA9IGxlbiAtIGRvZmY7XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZidXMtXHUwMDNlcnhjdGxfbG9jayk7XG4mIzQzO1x0YnVmID0gTlVMTDtcbiBcbiBkb25lOlxuIFx0LyogQXdha2UgYW55IHdhaXRlcnMgKi9cbiBcdGJyY21mX3NkaW9fZGNtZF9yZXNwX3dha2UoYnVzKTtcbiYjNDM7XHR2ZnJlZShidWYpO1xuIH1cbiBcbiAvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJDTUZNQUMmIzM0OywKICAgICYjMzQ7QlJDTUZNQUNfU0RJTyYjMzQ7LAogICAgJiMzNDtNTUNfVlVCMzAwJiMzNDssCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01NQyYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9zZGlvX3Byb2JlJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9faXNyJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9fdHJpZ2dlcl9kcGMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciYjMzk7cyBTRElPIGludGVyZmFjZS4gVGhlIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGJ5IGVtdWxhdGluZyB0aGUgVlVCMzAwIFNESU8tdG8tVVNCIGJyaWRnZSBjb250cm9sbGVyLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZnVuY3Rpb25hbCBjb2RlIGluIHRoZSBTRElPIGNvbnRyb2wgZnJhbWUgcmVhZCBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMGNlY2M5Y2Y4NGQ5NGQ2NGUwODMyMTYwZWMwMmYzMzY3ZDA2NjA4NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMgMTA6MDg6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYwppbmRleCA5ZjdlZDFkMjkzYTA2Li4zODE4MDFhZjNhYzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMKQEAgLTE4MjcsMTcgJiM0MzsxODI3LDE4IEBAIGJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpCiAJaWYgKGJ1cy0mZ3Q7cnhjdGwpIHsKIAkJYnJjbWZfZXJyKCYjMzQ7bGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cbiYjMzQ7KTsKIAkJc3Bpbl91bmxvY2tfYmgoJmFtcDtidXMtJmd0O3J4Y3RsX2xvY2spOwotCQl2ZnJlZShidWYpOwogCQlnb3RvIGRvbmU7CiAJfQogCWJ1cy0mZ3Q7cnhjdGwgPSBidWYgJiM0MzsgZG9mZjsKIAlidXMtJmd0O3J4Y3RsX29yaWcgPSBidWY7CiAJYnVzLSZndDtyeGxlbiA9IGxlbiAtIGRvZmY7CiAJc3Bpbl91bmxvY2tfYmgoJmFtcDtidXMtJmd0O3J4Y3RsX2xvY2spOwomIzQzOwlidWYgPSBOVUxMOwogCiBkb25lOgogCS8qIEF3YWtlIGFueSB3YWl0ZXJzICovCiAJYnJjbWZfc2Rpb19kY21kX3Jlc3Bfd2FrZShidXMpOwomIzQzOwl2ZnJlZShidWYpOwogfQogCiAvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyOQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDU4NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoJiMzOTtzIFJlYWNoYWJpbGl0eSBhbmQgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCBtb2RpZmllcyBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jYC4gSXQmIzM5O3MgYSBtZW1vcnkgbWFuYWdlbWVudCBmaXgsIG1vdmluZyBgdmZyZWUoYnVmKWAgYW5kIHNldHRpbmcgYGJ1ZiA9IE5VTExgIHRvIGF2b2lkIGEgcG90ZW50aWFsIGRvdWJsZSBmcmVlIG9yIGxlYWsuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYW5kIGlzIGl0IGV2ZW4gd29ydGggZnV6emluZz8KClRoaXMgaXMgYSBCcm9hZGNvbSA4MDIuMTEgU0RJTyBkcml2ZXIgKGBicmNtZm1hYy9zZGlvLmNgKS4gU0RJTyBpcyB0aGUga2V5IGhlcmUuIENhbiB3ZSBlbXVsYXRlIG9yIGZ1enogU0RJTyBkZXZpY2VzIHdpdGhpbiBRRU1VPyBHZW5lcmFsbHksIFNESU8gaXMgdHJpY2t5LiBJdCYjMzk7cyBub3QgYXMgZWFzaWx5IGZ1enphYmxlIGFzIHNvbWV0aGluZyB3aXRoIGJyb2FkZXIgc3l6a2FsbGVyIHN1cHBvcnQuIEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgYHN5el9zZGlvXypgIHBzZXVkby1zeXNjYWxscy4uLk5vcGUuIE1heWJlIGl0IGNhbiBiZSBmdXp6ZWQgdmlhIHNvbWUgb3RoZXIgbWVhbnM/CgpMZXQmIzM5O3Mgc2VlIGlmIGBicmNtZm1hY2AgZXZlbiBmaXRzIHRoZSBjcml0ZXJpYSBmb3IgYmVpbmcgd29ydGggZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBpdCYjMzk7cyBub3QgYSBkcml2ZXIgdGhhdCAqcmVxdWlyZXMqIHNwZWNpYWxpemVkIGhhcmR3YXJlLiBMZXQmIzM5O3Mgc2VlLi4uIHRoZSBwcm9tcHQgc3RhdGVzIHRvIGF2b2lkIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIFNtYXJ0TklDcywgb3IgR1BVcy4gSXMgdGhpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZT8gSXQgaXMgYSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuLi4KCkFoLCB0aGlzIGlzIGEgRnVsbE1BQyBkcml2ZXIsIG1lYW5pbmcgdGhlIE1BQyBpcyBpbXBsZW1lbnRlZCBvbiB0aGUgZGV2aWNlIGl0c2VsZi4gSXQgY29tbXVuaWNhdGVzIHdpdGggZmlybXdhcmUgb24gdGhlIEJyb2FkY29tIGNoaXAuIFRoYXQmIzM5O3MgYSBodXJkbGUsIGlmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkuIFdpdGhvdXQgdGhlIEJyb2FkY29tIGNoaXAgaXRzZWxmLCBvciBhIGdvb2QgUUVNVSBlbXVsYXRpb24gb2YgaXQsIHRoZSBkcml2ZXIgbGlrZWx5IHdvbiYjMzk7dCBldmVuIHByb2JlIHN1Y2Nlc3NmdWxseSwgYW5kIGRlZmluaXRlbHkgd29uJiMzOTt0IHJlYWNoIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuCgpXYWl0LCBTeXprYWxsZXIgZG9lcyBoYXZlIFVTQiBmdXp6aW5nIChlLmcuLCBkdW1teV9oY2QpLCBidXQgdGhpcyBpcyBTRElPLiBEb2VzIFN5emthbGxlciBoYXZlIGFueSBTRElPLXNwZWNpZmljIHN1cHBvcnQ/IEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIGlmIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciBTRElPIGV4aXN0LiBMZXQgbWUgbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N5el8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzI2CgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aG9zZSB0aG91Z2h0cyBmcm9tIGEgZmlyc3QtcGVyc29uLCBleHBlcnQgcGVyc3BlY3RpdmUsIGFpbWluZyBmb3IgYSBmdWxzb21lIHJlbmRlcmluZzoKCioqU0RJTyBGdXp6aW5nIENvZGUgQXVkaXQqKgoKUmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIGN1cnJlbnQgc3RhdGUgb2YgU0RJTyBmdXp6aW5nIHdpdGhpbiB0aGUga2VybmVsLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIGFueSBleGlzdGluZyBmdXp6aW5nIGluZnJhc3RydWN0dXJlIGlzIGluIHBsYWNlIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIFNESU8gZHJpdmVyIG9yIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhhdOKAmXMgc3RlcCBvbmUsIGEgYmFzaWMgcmVjb25uYWlzc2FuY2UgbWlzc2lvbi4gQXJlIHRoZXJlIGFueSBrbm93biBmdXp6aW5nIGhhcm5lc3NlcywgY3VzdG9tIG11dGF0aW9ucywgb3IgZG9jdW1lbnRlZCBmdXp6aW5nIGNvbmZpZ3VyYXRpb25zIGFscmVhZHkgcHJlc2VudD8gVGhpcyBzYXZlcyBtZSB2YWx1YWJsZSB0aW1lIGlmIHRoZXkgZXhpc3QuCgpJZiBmdXp6aW5nICppcyogcHJlc2VudCwgSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBzY29wZSBhbmQgZWZmaWNhY3kuIEFyZSB0aGVyZSBhbnkgZ2FwcyBvciBwb3RlbnRpYWwgYXJlYXMgb2YgaW1wcm92ZW1lbnQgdGhhdCBqdW1wIG91dCBpbW1lZGlhdGVseT8gQXJlIHRoZSBleGlzdGluZyBmdXp6aW5nIGNvbmZpZ3VyYXRpb25zIGNvdmVyaW5nIHRoZSBtb3N0IGNyaXRpY2FsIGF0dGFjayBzdXJmYWNlcz8gQXJlIHRoZXkgaGl0dGluZyB0aGUgcmlnaHQgY29kZSBwYXRocywgdGFyZ2V0aW5nIHRoZSB2dWxuZXJhYmxlIGFyZWFzIEkmIzM5O2QgZXhwZWN0IHRvIHNlZT8KCklmIG5vIGRlZGljYXRlZCBTRElPIGZ1enppbmcgaXMgY3VycmVudGx5IGltcGxlbWVudGVkLCB0aGUgc2Vjb25kIHBhcnQgaXMgdG8gZGV0ZXJtaW5lIGlmIGV4aXN0aW5nIGNvZGUgaXMgcmVhY2hhYmxlIGJ5IGZ1enppbmcuIElmIHNvLCB3aGljaCBtb2R1bGVzIGNhbGwgb3IgcmVmZXJlbmNlIFNESU8/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBTRElPIGRyaXZlciBhcmUgZGlyZWN0bHkgZXhwb3NlZCB0byBpbnB1dCBmcm9tIGFueSBmdXp6YWJsZSBzb3VyY2VzLiBJIGhhdmUgdG8gbWFwIG91dCBhbnkgcG90ZW50aWFsIGF0dGFjayBzdXJmYWNlcy4gQ2FuIEkgbGV2ZXJhZ2UgZXhpc3RpbmcgZnV6emluZyBzZXR1cHMgbGlrZSBLQVNBTiwgS0ZFTkNFLCBvciBzeXprYWxsZXI/IENvdWxkIEkgaW50ZWdyYXRlIFNESU8tc3BlY2lmaWMgaW5wdXRzIGludG8gdGhlIGV4aXN0aW5nIGZyYW1ld29ya3Mgb3IgZG8gSSBuZWVkIHRvIGNyZWF0ZSBzb21ldGhpbmcgYmVzcG9rZT8gV2hhdCBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHMgaW50byB0aGUgU0RJTyBjb2RlIGZyb20gdXNlcmxhbmQgb3Igb3RoZXIga2VybmVsIG1vZHVsZXM/IEZpbmRpbmcgdGhlc2UgZW50cnkgcG9pbnRzIGlzIGtleSB0byBkZXZpc2luZyBlZmZlY3RpdmUgZnV6emluZyBzdHJhdGVnaWVzLiBJJiMzOTtsbCBuZWVkIHRvIGNvbnNpZGVyIGhvdyB0aGUgU0RJTyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggb3RoZXIgY29tcG9uZW50cywgcG90ZW50aWFsbHkgY3JlYXRpbmcgZGVwZW5kZW5jaWVzIHRoYXQgbmVlZCB0byBiZSBhZGRyZXNzZWQgaW4gdGhlIGZ1enppbmcgY29uZmlndXJhdGlvbi4gRXNzZW50aWFsbHksIEkmIzM5O20gdGhpbmtpbmcgb2YgJiMzNDtyZWFjaGFiaWxpdHkmIzM0OyBpbiB0ZXJtcyBvZiBob3cgZWFzaWx5IEkgY2FuIHNlbmQgZGF0YSB0byB0aGUgU0RJTyBpbnRlcmZhY2UgdGhhdCB0cmlnZ2VycyBpdHMgZXhlY3V0aW9uLiBBIGhpZ2gtbGV2ZWwgb3ZlcnZpZXcgbXVzdCBjb21lIGZpcnN0IHRvIHJlZHVjZSBlZmZvcnQgYW5kIHRpbWUgd2FzdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVhZF9jb250cm9sJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE3NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NTc9c3RhdGljIHVpbnQgYnJjbWZfc2Rpb19yZWFkZnJhbWVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHVpbnQgbWF4ZnJhbWVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxNy1cdFx0XHRpZiAocmQtXHUwMDNlY2hhbm5lbCA9PSBTRFBDTV9DT05UUk9MX0NIQU5ORUwpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTkxODpcdFx0XHRcdGJyY21mX3NkaW9fcmVhZF9jb250cm9sKGJ1cywgYnVzLVx1MDAzZXJ4aGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE5LVx0XHRcdFx0XHRcdFx0cmQtXHUwMDNlbGVuLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxNTkKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AgRnVuY3Rpb24gYW5kIGl0cyBUZXN0YWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyYWNpbmcgdGhyb3VnaCB0aGlzIGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGZ1bmN0aW9uLi4uIGl0IGNhbGxzIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHNlZSB0aGF0IGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGlzIGludm9rZWQgZnJvbSBgYnJjbWZfc2Rpb19kcGNgLCB3aGljaCBJIHJlY2FsbCBpcyB0aGUgU0RJTyBkYXRhIHByb2Nlc3NpbmcgdGFza2xldCBvciB3b3JrcXVldWUuIEJhc2ljYWxseSwgdGhlIHRoaW5nIHRoYXQgcmVhZHMgZGF0YSBvZmYgdGhlIFNESU8gYnVzLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIHN0YW5kYXJkIHN0dWZmLgoKTm93LCB0aGUgY29yZSBpc3N1ZSBpcyBnb2luZyB0byBiZSB0ZXN0aW5nIHRoaXMuIEkmIzM5O20gdGhpbmtpbmcsIHdpdGhvdXQgYSAqcmVhbCogQnJvYWRjb20gU0RJTyBkZXZpY2UgcHJlc2VudCwgdGhpcyBjb2RlIHBhdGggaXNuJiMzOTt0IGV2ZW4gZ29pbmcgdG8gYmUgaGl0IGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgcmlnaHQ/IEhvbGQgb24sIGRvZXMgUUVNVSBldmVuICplbXVsYXRlKiBCcm9hZGNvbSBTRElPIFdpLUZpPyBObywgZGVmaW5pdGVseSBub3QuIEl0IGRvZXNuJiMzOTt0LgoKQWxyaWdodCwgd2hhdCBhYm91dCBzeXprYWxsZXI/IERvZXMgaXQgaGF2ZSBhbiBTRElPIGZ1enplcj8gTGV0IG1lIHRoaW5rLi4uIHN5emthbGxlciBpcyBzdHJvbmcgb24gVVNCICh1c2luZyBkdW1teV9oY2QpIGFuZCBQQ0kgKHRvIGEgbGltaXRlZCBleHRlbnQsIGJ1dCBub3Qgc3BlY2lmaWMgV2ktRmkgY2FyZHMgdW5sZXNzIHRoZXkgYXJlIHNvZnRtYWMgbGlrZSBhdGg5ay9hdGgxMGssIGJ1dCB0aG9zZSBhcmVuJiMzOTt0IGVtdWxhdGVkIGFueXdheSwgd2FpdCwgaHdzaW0gaXMgZm9yIG1hYzgwMjExLCBub3QgZm9yIGZ1bGxtYWMpLiBTbywgdGhlIGFuc3dlciBpcyBuby4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBzcGVjaWZpYyBTRElPIGZ1enplci4gSXQmIzM5O3MgbWlzc2luZyB0aGF0IHBpZWNlLCBjcml0aWNhbCBmb3IgYGJyY21mbWFjYC4KClNvLCB0byBzdW1tYXJpemUsIHRoZXJlIGlzIG5vIFNESU8gZW11bGF0aW9uIGluIHRoZSBRRU1VIGNvbmZpZ3VyYXRpb24gc3l6a2FsbGVyIHVzZXMgZm9yIGZ1enppbmcgYGJyY21mbWFjYC4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoaXMgZm9yIGFic29sdXRlIGNlcnRhaW50eSwgYnV0IHRoZSBsYWNrIG9mIGFuIGVtdWxhdGVkIFNESU8gYnVzIGlzIGxpa2VseSB0aGUgbGltaXRpbmcgZmFjdG9yIGhlcmUuIFdlIG5lZWQgdG8gZmluZCBhIHdheSB0byB0ZXN0IHRoaXMgcHJvcGVybHksIG1heWJlIGxvb2sgYXQgb3RoZXIgZW11bGF0b3JzIGFuZCBzZWUgaWYgdGhleSBoYXZlIFNESU8gb3IgYnVpbGQgYSBjdXN0b20gc2V0dXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2RpbyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxODQ5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc9NjU5PWNvbmZpZyBNTUNfTVZTRElPXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTY2OC1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6NjY5Olx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgbXZzZGlvLlxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTY3MC1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlPTM0PW9iai0kKENPTkZJR19NTUNfVElGTV9TRClcdCYjNDM7PSB0aWZtX3NkLm9cbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX01NQ19NVlNESU8pXHQmIzQzOz0gbXZzZGlvLm9cbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGUtMzYtb2JqLSQoQ09ORklHX01NQ19EQVZJTkNJKSAgICAgICAmIzQzOz0gZGF2aW5jaV9tbWMub1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU9Njg9b2JqLSQoQ09ORklHX01NQ19NRVNPTl9NWF9TREhDKVx0JiM0Mzs9IG1lc29uLW14LXNkaGMub1xuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfTU1DX01FU09OX01YX1NESU8pXHQmIzQzOz0gbWVzb24tbXgtc2Rpby5vXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlLTcwLW9iai0kKENPTkZJR19NTUNfTU9YQVJUKVx0JiM0Mzs9IG1veGFydC1tbWMub1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjktI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL2hvc3QuaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzozMDojaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvc2Rpby5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTMxLVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM9MzMyPXN0cnVjdCBhdG1lbF9tY2kge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMzg3LSAqIEBzZGNfcmVnOiBWYWx1ZSBvZiBTRENSIHRvIGJlIHdyaXR0ZW4gYmVmb3JlIHVzaW5nIHRoaXMgc2xvdC5cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6Mzg4OiAqIEBzZGlvX2lycTogU0RJTyBpcnEgbWFzayBmb3IgdGhpcyBzbG90LlxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0zODktICogQG1ycTogbW1jX3JlcXVlc3QgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBvciB3YWl0aW5nIHRvIGJlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz00MDE9c3RydWN0IGF0bWVsX21jaV9zbG90IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTQwNS1cdHUzMlx0XHRcdHNkY19yZWc7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjQwNjpcdHUzMlx0XHRcdHNkaW9faXJxO1xuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy00MDctXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0xNTQ1PXN0YXRpYyBpbnQgYXRtY2lfZ2V0X2NkKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU1OC1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MTU1OTpzdGF0aWMgdm9pZCBhdG1jaV9lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NjAte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2NC1cdGlmIChlbmFibGUpXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjE1NjU6XHRcdGF0bWNpX3dyaXRlbChob3N0LCBBVE1DSV9JRVIsIHNsb3QtXHUwMDNlc2Rpb19pcnEpO1xuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0xNTY2LVx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTY3Olx0XHRhdG1jaV93cml0ZWwoaG9zdCwgQVRNQ0lfSURSLCBzbG90LVx1MDAzZXNkaW9faXJxKTtcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2OC19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0xNTcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGF0bWNpX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NzQtXHQuZ2V0X2NkXHRcdD0gYXRtY2lfZ2V0X2NkLFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTc1Olx0LmVuYWJsZV9zZGlvX2lycSA9IGF0bWNpX2VuYWJsZV9zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU3Ni19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM9MjAxMT1zdGF0aWMgdm9pZCBhdG1jaV93cml0ZV9kYXRhX3BpbyhzdHJ1Y3QgYXRtZWxfbWNpICpob3N0KVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjA3OC1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjA3OTpzdGF0aWMgdm9pZCBhdG1jaV9zZGlvX2ludGVycnVwdChzdHJ1Y3QgYXRtZWxfbWNpICpob3N0LCB1MzIgc3RhdHVzKVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMDgwLXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIwODQtXHRcdHN0cnVjdCBhdG1lbF9tY2lfc2xvdCAqc2xvdCA9IGhvc3QtXHUwMDNlc2xvdFtpXTtcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjA4NTpcdFx0aWYgKHNsb3QgXHUwMDI2XHUwMDI2IChzdGF0dXMgXHUwMDI2IHNsb3QtXHUwMDNlc2Rpb19pcnEpKSB7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIwODY6XHRcdFx0bW1jX3NpZ25hbF9zZGlvX2lycShzbG90LVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIwODctXHRcdH1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTIwOTI9c3RhdGljIGlycXJldHVybl90IGF0bWNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjEzLVx0XHRpZiAocGVuZGluZyBcdTAwMjYgKEFUTUNJX1NESU9JUlFBIHwgQVRNQ0lfU0RJT0lSUUIpKVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMjE0Olx0XHRcdGF0bWNpX3NkaW9faW50ZXJydXB0KGhvc3QsIHN0YXR1cyk7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMTUtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0yMjM2PXN0YXRpYyBpbnQgYXRtY2lfaW5pdF9zbG90KHN0cnVjdCBhdG1lbF9tY2kgKmhvc3QsXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMzctXHRcdHN0cnVjdCBtY2lfc2xvdF9wZGF0YSAqc2xvdF9kYXRhLCB1bnNpZ25lZCBpbnQgaWQsXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIyMzg6XHRcdHUzMiBzZGNfcmVnLCB1MzIgc2Rpb19pcnEpXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMzkte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjI1NC1cdHNsb3QtXHUwMDNlc2RjX3JlZyA9IHNkY19yZWc7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIyNTU6XHRzbG90LVx1MDAzZXNkaW9faXJxID0gc2Rpb19pcnE7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyNTYtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjY3LVx0bW1jLVx1MDAzZW9jcl9hdmFpbFx0PSBNTUNfVkREXzMyXzMzIHwgTU1DX1ZERF8zM18zNDtcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjI2ODpcdGlmIChzZGlvX2lycSlcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjI2OS1cdFx0bW1jLVx1MDAzZWNhcHMgfD0gTU1DX0NBUF9TRElPX0lSUTtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYz03Nzg9c3RhdGljIGlycXJldHVybl90IGF1MXhtbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy03ODgtXHRpZiAoc3RhdHVzIFx1MDAyNiBTRF9TVEFUVVNfU0kpXHQvKiBTRElPICovXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYzo3ODk6XHRcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtNzkwLVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jPTkwNj1zdGF0aWMgdm9pZCBhdTF4bW1jX2RiZG1hX3NodXRkb3duKHN0cnVjdCBhdTF4bW1jX2hvc3QgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTE0LVxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM6OTE1OnN0YXRpYyB2b2lkIGF1MXhtbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW4pXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy05MTYte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jPTkyNT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyBhdTF4bW1jX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy05MjktXHQuZ2V0X2NkXHRcdD0gYXUxeG1tY19jYXJkX2luc2VydGVkLFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM6OTMwOlx0LmVuYWJsZV9zZGlvX2lycSA9IGF1MXhtbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTMxLX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmMtOC0gKlxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmM6OTogKiBUaGUgc2RoY2kgY29udHJvbGxlciBzdXBwb3J0cyBib3RoIHNkY2FyZCBhbmQgc2Rpby4gIFRoZSBzZGhvc3RcbmRyaXZlcnMvbW1jL2hvc3QvYmNtMjgzNS5jLTEwLSAqIGNvbnRyb2xsZXIgc3VwcG9ydHMgdGhlIHNkY2FyZCBvbmx5LCBidXQgaGFzIGJldHRlciBwZXJmb3JtYW5jZS5cbmRyaXZlcnMvbW1jL2hvc3QvYmNtMjgzNS5jOjExOiAqIEFsc28gbm90ZSB0aGF0IHRoZSBycGkzIGhhcyBzZGlvIHdpZmksIHNvIGRyaXZpbmcgdGhlIHNkY2FyZCB3aXRoXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy0xMi0gKiB0aGUgc2Rob3N0IGNvbnRyb2xsZXIgYWxsb3dzIHRvIHVzZSB0aGUgc2RoY2kgY29udHJvbGxlciBmb3Igd2lmaVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYz0xNjY9c3RydWN0IG1tY19kYXZpbmNpX2hvc3Qge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xNzMtXHRzdHJ1Y3QgcmVzb3VyY2UgKm1lbV9yZXM7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTc0Olx0aW50IG1tY19pcnEsIHNkaW9faXJxO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTE3NS1cdHVuc2lnbmVkIGNoYXIgYnVzX21vZGU7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTE4Ny1cdGJvb2wgZG9fZG1hO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjE4ODpcdGJvb2wgc2Rpb19pbnQ7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTg5LVx0Ym9vbCBhY3RpdmVfcmVxdWVzdDtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM9NzU2PW1tY19kYXZpbmNpX3hmZXJfZG9uZShzdHJ1Y3QgbW1jX2RhdmluY2lfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy03NjUtXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjc2NjpcdFx0aWYgKGhvc3QtXHUwMDNlc2Rpb19pbnQgXHUwMDI2XHUwMDI2ICEocmVhZGwoaG9zdC1cdTAwM2ViYXNlICYjNDM7IERBVklOQ0lfU0RJT1NUMCkgXHUwMDI2XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY3LVx0XHRcdFx0XHRTRElPU1QwX0RBVDFfSEkpKSB7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY4LVx0XHRcdHdyaXRlbChTRElPSVNUX0lPSU5ULCBob3N0LVx1MDAzZWJhc2UgJiM0MzsgREFWSU5DSV9TRElPSVNUKTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzo3Njk6XHRcdFx0bW1jX3NpZ25hbF9zZGlvX2lycShob3N0LVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzcwLVx0XHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTgzMz1kYXZpbmNpX2Fib3J0X2RhdGEoc3RydWN0IG1tY19kYXZpbmNpX2hvc3QgKmhvc3QsIHN0cnVjdCBtbWNfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODQwLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjg0MTpzdGF0aWMgaXJxcmV0dXJuX3QgbW1jX2RhdmluY2lfc2Rpb19pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTg0Mi17XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTg1MC1cdFx0d3JpdGVsKHN0YXR1cyB8IFNESU9JU1RfSU9JTlQsIGhvc3QtXHUwMDNlYmFzZSAmIzQzOyBEQVZJTkNJX1NESU9JU1QpO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjg1MTpcdFx0bW1jX3NpZ25hbF9zZGlvX2lycShob3N0LVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODUyLVx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYz0xMDE0PXN0YXRpYyBpbnQgbW1jX2RhdmluY2lfZ2V0X3JvKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDI0LVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEwMjU6c3RhdGljIHZvaWQgbW1jX2RhdmluY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMjYte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDMxLVx0XHRcdHdyaXRlbChTRElPSVNUX0lPSU5ULCBob3N0LVx1MDAzZWJhc2UgJiM0MzsgREFWSU5DSV9TRElPSVNUKTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDMyOlx0XHRcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzMtXHRcdH0gZWxzZSB7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTAzNDpcdFx0XHRob3N0LVx1MDAzZXNkaW9faW50ID0gdHJ1ZTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDM1LVx0XHRcdHdyaXRlbChyZWFkbChob3N0LVx1MDAzZWJhc2UgJiM0MzsgREFWSU5DSV9TRElPSUVOKSB8XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzgtXHR9IGVsc2Uge1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEwMzk6XHRcdGhvc3QtXHUwMDNlc2Rpb19pbnQgPSBmYWxzZTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDQwLVx0XHR3cml0ZWwocmVhZGwoaG9zdC1cdTAwM2ViYXNlICYjNDM7IERBVklOQ0lfU0RJT0lFTikgXHUwMDI2IH5TRElPSUVOX0lPSU5URU4sXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTEwNDU9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgbW1jX2RhdmluY2lfb3BzID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDQ5LVx0LmdldF9yb1x0XHQ9IG1tY19kYXZpbmNpX2dldF9ybyxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDUwOlx0LmVuYWJsZV9zZGlvX2lycSA9IG1tY19kYXZpbmNpX2VuYWJsZV9zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDUxLX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTExODQ9c3RhdGljIGludCBkYXZpbmNpX21tY3NkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEyNTAtXHRob3N0LVx1MDAzZW1tY19pcnEgPSBpcnE7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTI1MTpcdGhvc3QtXHUwMDNlc2Rpb19pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX29wdGlvbmFsKHBkZXYsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEyNTItXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEzMDEtXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTMwMjpcdGlmIChob3N0LVx1MDAzZXNkaW9faXJxIFx1MDAzZT0gMCkge1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEzMDM6XHRcdHJldCA9IGRldm1fcmVxdWVzdF9pcnEoXHUwMDI2cGRldi1cdTAwM2VkZXYsIGhvc3QtXHUwMDNlc2Rpb19pcnEsXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTMwNDpcdFx0XHRcdCAgICAgICBtbWNfZGF2aW5jaV9zZGlvX2lycSwgMCxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMzA1LVx0XHRcdFx0ICAgICAgIG1tY19ob3N0bmFtZShtbWMpLCBob3N0KTtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1yb2NrY2hpcC5jPTQ5OD1zdGF0aWMgaW50IGR3X21jaV9yb2NrY2hpcF9pbml0KHN0cnVjdCBkd19tY2kgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMtcm9ja2NoaXAuYy01MDMtXHQvKiBTRElPIGlycSBpcyB0aGUgOHRoIG9uIFJvY2tjaGlwIFNvQ3MgKi9cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmM6NTA0Olx0aG9zdC1cdTAwM2VzZGlvX2lycSA9IDg7XG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1yb2NrY2hpcC5jLTUwNS1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI0LSNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zZC5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjI1OiNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zZGlvLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjYtI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXHUwMDNlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0xNDgwPXN0YXRpYyB2b2lkIGR3X21jaV9od19yZXNldChzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1MTItXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1MTM6c3RhdGljIHZvaWQgZHdfbWNpX3ByZXBhcmVfc2Rpb19pcnEoc3RydWN0IGR3X21jaSAqaG9zdCwgYm9vbCBwcmVwYXJlKVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTE0LXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NDAtXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NDE6c3RhdGljIHZvaWQgX19kd19tY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBkd19tY2kgKmhvc3QsIGludCBlbmIpXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NDIte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1MC1cdGlmIChlbmIpXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NTE6XHRcdGludF9tYXNrIHw9IFNETU1DX0lOVF9TRElPKGhvc3QtXHUwMDNlc2Rpb19pcnEpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTUyLVx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTUzOlx0XHRpbnRfbWFzayBcdTAwMjY9IH5TRE1NQ19JTlRfU0RJTyhob3N0LVx1MDAzZXNkaW9faXJxKTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1NC1cdG1jaV93cml0ZWwoaG9zdCwgSU5UTUFTSywgaW50X21hc2spO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1OC1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU1OTpzdGF0aWMgdm9pZCBkd19tY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5iKVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTYwLXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NjItXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NjM6XHRkd19tY2lfcHJlcGFyZV9zZGlvX2lycShob3N0LCBlbmIpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTY0Olx0X19kd19tY2lfZW5hYmxlX3NkaW9faXJxKGhvc3QsIGVuYik7XG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NjUtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTcyLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTczOnN0YXRpYyB2b2lkIGR3X21jaV9hY2tfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMpXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NzQte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU3Ni1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU3NzpcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCAxKTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU3OC19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0xNjcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGR3X21jaV9vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNjc3LVx0LmNhcmRfaHdfcmVzZXQgICAgICAgICAgPSBkd19tY2lfaHdfcmVzZXQsXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE2Nzg6XHQuZW5hYmxlX3NkaW9faXJxXHQ9IGR3X21jaV9lbmFibGVfc2Rpb19pcnEsXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE2Nzk6XHQuYWNrX3NkaW9faXJxXHRcdD0gZHdfbWNpX2Fja19zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTY4MC1cdC5leGVjdXRlX3R1bmluZ1x0XHQ9IGR3X21jaV9leGVjdXRlX3R1bmluZyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jPTI2NTQ9c3RhdGljIGlycXJldHVybl90IGR3X21jaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjc1Ny1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6Mjc1ODpcdFx0aWYgKHBlbmRpbmcgXHUwMDI2IFNETU1DX0lOVF9TRElPKGhvc3QtXHUwMDNlc2Rpb19pcnEpKSB7XG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI3NTktXHRcdFx0bWNpX3dyaXRlbChob3N0LCBSSU5UU1RTLFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyNzYwOlx0XHRcdFx0ICAgU0RNTUNfSU5UX1NESU8oaG9zdC1cdTAwM2VzZGlvX2lycSkpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyNzYxOlx0XHRcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6Mjc2MjpcdFx0XHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yNzYzLVx0XHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0yNzk0PXN0YXRpYyBpbnQgZHdfbWNpX2luaXRfaG9zdF9jYXBzKHN0cnVjdCBkd19tY2kgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yODI1LVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyODI2Olx0LyogUHJvY2VzcyBTRElPIElSUXMgdGhyb3VnaCB0aGUgc2Rpb19pcnFfd29yay4gKi9cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjgyNy1cdGlmIChtbWMtXHUwMDNlY2FwcyBcdTAwMjYgTU1DX0NBUF9TRElPX0lSUSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jPTM0NDM9aW50IGR3X21jaV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0zNDk0LVx0LyogUmUtZW5hYmxlIFNESU8gaW50ZXJydXB0cy4gKi9cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MzQ5NTpcdGlmIChzZGlvX2lycV9jbGFpbWVkKGhvc3QtXHUwMDNlbW1jKSlcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MzQ5NjpcdFx0X19kd19tY2lfZW5hYmxlX3NkaW9faXJxKGhvc3QsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0zNDk3LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg9NTI9c3RydWN0IGR3X21jaV9kbWFfc2xhdmUge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMTIxLSAqIEBpcnE6IFRoZSBpcnEgdmFsdWUgdG8gYmUgcGFzc2VkIHRvIHJlcXVlc3RfaXJxLlxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuaDoxMjI6ICogQHNkaW9faXJxOiBTRElPIGludGVycnVwdCBiaXQgaW4gaW50ZXJydXB0IHJlZ2lzdGVycy5cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMTIzLSAqIEBjbWQxMV90aW1lcjogVGltZXIgZm9yIFNEMy4wIHZvbHRhZ2Ugc3dpdGNoIG92ZXIgc2NoZW1lLlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg9MTYxPXN0cnVjdCBkd19tY2kge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjMzLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuaDoyMzQ6XHRpbnRcdFx0XHRzZGlvX2lycTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjM1LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jPTg0MD1zdGF0aWMgaXJxcmV0dXJuX3QganpfbW1jX2lycShpbnQgaXJxLCB2b2lkICpkZXZpZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy04NTktXHRcdGp6NDc0MF9tbWNfd3JpdGVfaXJxX3JlZyhob3N0LCBKWl9NTUNfSVJRX1NESU8pO1xuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM6ODYwOlx0XHRtbWNfc2lnbmFsX3NkaW9faXJxKGhvc3QtXHUwMDNlbW1jKTtcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jLTg2MS1cdFx0aXJxX3JlZyBcdTAwMjY9IH5KWl9NTUNfSVJRX1NESU87XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM9OTQwPXN0YXRpYyB2b2lkIGp6NDc0MF9tbWNfc2V0X2lvcyhzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgc3RydWN0IG1tY19pb3MgKmlvcylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy05OTQtXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYzo5OTU6c3RhdGljIHZvaWQgano0NzQwX21tY19lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy05OTYte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jPTEwMTg9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgano0NzQwX21tY19vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNC1cdC5nZXRfY2RcdFx0PSBtbWNfZ3Bpb19nZXRfY2QsXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYzoxMDI1Olx0LmVuYWJsZV9zZGlvX2lycSA9IGp6NDc0MF9tbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNi1cdC5zdGFydF9zaWduYWxfdm9sdGFnZV9zd2l0Y2ggPSBqejQ3NDBfdm9sdGFnZV9zd2l0Y2gsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtMjAtI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3NkLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjIxOiNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zZGlvLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTIyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zbG90LWdwaW8uaFx1MDAzZVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTQxMz1zdGF0aWMgaXJxcmV0dXJuX3QgbG9vbmdzb24yX21tY19pcnEoaW50IGlycSwgdm9pZCAqZGV2aWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNDI4LVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NDI5Olx0XHRzZGlvX3NpZ25hbF9pcnEobW1jKTtcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTQzMC1cdFx0cmV0dXJuIElSUV9IQU5ETEVEO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTU3ND1zdGF0aWMgdm9pZCBsb29uZ3NvbjJfbW1jX3JlcXVlc3Qoc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfcmVxdWVzdCAqbXJxKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU4OC1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjU4OTpzdGF0aWMgdm9pZCBsb29uZ3NvbjJfbW1jX2VuYWJsZV9zZGlvX2lycShzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgaW50IGVuYWJsZSlcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU5MC17XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNTk1LVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTk2OnN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfYWNrX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNTk3LXtcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjU5ODpcdGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxKG1tYywgMSk7XG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy01OTktfVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTYwMT1zdGF0aWMgc3RydWN0IG1tY19ob3N0X29wcyBsb29uZ3NvbjJfbW1jX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy02MDUtXHQuZ2V0X2NkXHRcdD0gbW1jX2dwaW9fZ2V0X2NkLFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NjA2Olx0LmVuYWJsZV9zZGlvX2lycSA9IGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NjA3Olx0LmFja19zZGlvX2lycVx0PSBsb29uZ3NvbjJfbW1jX2Fja19zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTYwOC19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTYxNz1zdGF0aWMgaW50IGxvb25nc29uMl9yZW9yZGVyX2NtZF9saXN0W10gPSB7IFNEX0FQUF9TRU5EX1NDUiwgU0RfQVBQX1NFTkRfTlVNX1dSX0JMS1MsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNjIyLSAqIHJlc3BvbnNlIGRhdGFzIGhhcyBkaWZmZXJlbnQgYnl0ZSBvcmRlciB3aXRoIHVzdWFsIGRhdGEgcGFja2V0cy5cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjYyMzogKiBIb3dldmVyIHNkaW8gY29udHJvbGxlciB3aWxsIHNlbmQgdGhlc2UgZGF0YXMgaW4gdXN1YWwgZGF0YSBmb3JtYXQsXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy02MjQtICogc28gd2UgbmVlZCB0byBhZGp1c3QgdGhlc2UgZGF0YXMgdG8gYSBwcm90b2NvbCBjb25zaXN0ZW50IGJ5dGUgb3JkZXIuXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM9OTQwPXN0YXRpYyBpbnQgbG9vbmdzb24yX21tY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTk3My1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjk3NDpcdC8qIFByb2Nlc3MgU0RJTyBJUlFzIHRocm91Z2ggdGhlIHNkaW9faXJxX3dvcmsuICovXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy05NzUtXHRpZiAobW1jLVx1MDAzZWNhcHMgXHUwMDI2IE1NQ19DQVBfU0RJT19JUlEpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xOS0jaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvbW1jLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MjA6I2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3NkaW8uaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0yMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTUzLSNkZWZpbmUgICBDTEtfQUxXQVlTX09OKGgpXHRcdChoLVx1MDAzZWRhdGEtXHUwMDNlYWx3YXlzX29uKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzo1NDojZGVmaW5lICAgQ0xLX0lSUV9TRElPX1NMRUVQKGgpXHRcdChoLVx1MDAzZWRhdGEtXHUwMDNlaXJxX3NkaW9fc2xlZXApXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTU1LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9MTM2PXN0cnVjdCBtZXNvbl9tbWNfZGF0YSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xNDAtXHR1bnNpZ25lZCBpbnQgYWRqdXN0O1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxNDE6XHR1bnNpZ25lZCBpbnQgaXJxX3NkaW9fc2xlZXA7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE0Mi19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9OTA3PXN0YXRpYyB2b2lkIG1lc29uX21tY19yZWFkX3Jlc3Aoc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfY29tbWFuZCAqY21kKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtOTIwLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzo5MjE6c3RhdGljIHZvaWQgX19tZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05MjIte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9OTMxPXN0YXRpYyBpcnFyZXR1cm5fdCBtZXNvbl9tbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTk1Ni1cdFx0c3Bpbl9sb2NrKFx1MDAyNmhvc3QtXHUwMDNlbG9jayk7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjk1NzpcdFx0X19tZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxKGhvc3QtXHUwMDNlbW1jLCAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6OTU4Olx0XHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05NTktXHRcdHNwaW5fdW5sb2NrKFx1MDAyNmhvc3QtXHUwMDNlbG9jayk7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMDg2PXN0YXRpYyBpbnQgbWVzb25fbW1jX3ZvbHRhZ2Vfc3dpdGNoKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBzdHJ1Y3QgbW1jX2lvcyAqaW9zKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEwOS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTExMDpzdGF0aWMgdm9pZCBtZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTExLXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMTUtXHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZob3N0LVx1MDAzZWxvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTExNjpcdF9fbWVzb25fbW1jX2VuYWJsZV9zZGlvX2lycShtbWMsIGVuYWJsZSk7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMTctXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmhvc3QtXHUwMDNlbG9jaywgZmxhZ3MpO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTExOS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEyMDpzdGF0aWMgdm9pZCBtZXNvbl9tbWNfYWNrX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTIxLXtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEyMjpcdG1lc29uX21tY19lbmFibGVfc2Rpb19pcnEobW1jLCAxKTtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEyMy19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMTI1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIG1lc29uX21tY19vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTMzLVx0LnN0YXJ0X3NpZ25hbF92b2x0YWdlX3N3aXRjaCA9IG1lc29uX21tY192b2x0YWdlX3N3aXRjaCxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEzNDpcdC5lbmFibGVfc2Rpb19pcnEgPSBtZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMTM1Olx0LmFja19zZGlvX2lycVx0PSBtZXNvbl9tbWNfYWNrX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTM2LX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMzA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVzb25fbW1jX2RhdGEgbWVzb25fZ3hfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTEzMTMtXHQuYWRqdXN0XHRcdD0gU0RfRU1NQ19BREpVU1QsXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjEzMTQ6XHQuaXJxX3NkaW9fc2xlZXBcdD0gQ0xLX1YyX0lSUV9TRElPX1NMRUVQLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMzE1LX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVzb25fbW1jX2RhdGEgbWVzb25fYXhnX2RhdGEgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMzIxLVx0LmFkanVzdFx0XHQ9IFNEX0VNTUNfVjNfQURKVVNULFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMzIyOlx0LmlycV9zZGlvX3NsZWVwXHQ9IENMS19WM19JUlFfU0RJT19TTEVFUCxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTMyMy19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYy0yMi0jaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvbW1jLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYzoyMzojaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvc2Rpby5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaGMtbW1jLmMtMjQtI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXHUwMDNlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jPTEzMj1zdGF0aWMgdm9pZCBtZXNvbl9teF9zZGhjX3N0YXJ0X2NtZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaGMtbW1jLmMtMTc5LVx0XHQgKiBkb3dubG9hZCBpbiB0aGUgYnJjbWZtYWMgZHJpdmVyIGZvciBhIEJDTTQzMzYyLzEgY2FyZC5cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYzoxODA6XHRcdCAqIFdpdGhvdXQgdGhpcyBzZGlvX21lbWNweV90b2lvKCkgKHdpdGggYSBzaXplIG9mIDIxOTU1N1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jLTE4MS1cdFx0ICogYnl0ZXMpIHRpbWVzIG91dCBpZiBNRVNPTl9TREhDX01JU0NfTUFOVUFMX1NUT1AgaXMgbm90IHNldC5cbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy0yLS8qXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYzozOiAqIG1lc29uLW14LXNkaW8uYyAtIE1lc29uNiwgTWVzb244IGFuZCBNZXNvbjhiIFNESU8vTU1DIEhvc3QgQ29udHJvbGxlclxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNC0gKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTI3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9tbWMuaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6Mjg6I2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3NkaW8uaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtMjktI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXHUwMDNlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM9NjI5PXN0YXRpYyBpbnQgbWVzb25fbXhfbW1jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02MzAte1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NjMxOlx0Y29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbWVzb25fbXhfc2Rpb19yZWdtYXBfY29uZmlnID0ge1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNjMyLVx0XHQucmVnX2JpdHMgPSA4LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTY2OC1cdGhvc3QtXHUwMDNlcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9tbWlvKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBiYXNlLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NjY5Olx0XHRcdFx0XHQgICAgIFx1MDAyNm1lc29uX214X3NkaW9fcmVnbWFwX2NvbmZpZyk7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02NzAtXHRpZiAoSVNfRVJSKGhvc3QtXHUwMDNlcmVnbWFwKSkge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jPTc0OD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZXNvbl9teF9tbWNfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjc0OTpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbWxvZ2ljLG1lc29uOC1zZGlvXCYjMzQ7LCB9LFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NzUwOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FtbG9naWMsbWVzb244Yi1zZGlvXCYjMzQ7LCB9LFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNzUxLVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM9NzU1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1lc29uX214X21tY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNzU4LVx0LmRyaXZlciAgPSB7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYzo3NTk6XHRcdC5uYW1lID0gXCYjMzQ7bWVzb24tbXgtc2Rpb1wmIzM0OyxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTc2MC1cdFx0LnByb2JlX3R5cGUgPSBQUk9CRV9QUkVGRVJfQVNZTkNIUk9OT1VTLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jX3NwaS5jLTMzLSAqXG5kcml2ZXJzL21tYy9ob3N0L21tY19zcGkuYzozNDogKiAtIEZvciBub3csIHdlIHdvbiYjMzk7dCB0cnkgdG8gaW50ZXJvcGVyYXRlIHdpdGggYSByZWFsIG1tYy9zZC9zZGlvXG5kcml2ZXJzL21tYy9ob3N0L21tY19zcGkuYy0zNS0gKiAgIGNvbnRyb2xsZXIsIGFsdGhvdWdoIHNvbWUgb2YgdGhlbSBkbyBoYXZlIGhhcmR3YXJlIHN1cHBvcnQgZm9yXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTExPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdTMwMCA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjEtXHQuZGF0YWN0cmxfYmxvY2tzelx0PSAxMSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjEyMjpcdC5kYXRhY3RybF9tYXNrX3NkaW9cdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTIzOlx0LnN0X3NkaW9cdFx0XHQ9IHRydWUsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjQtXHQucHdycmVnX3Bvd2VydXBcdFx0PSBNQ0lfUFdSX09OLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTEzNj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X25vbWFkaWsgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMTQ2LVx0LmRhdGFjdHJsX2Jsb2Nrc3pcdD0gMTEsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxNDc6XHQuZGF0YWN0cmxfbWFza19zZGlvXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE0ODpcdC5zdF9zZGlvXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE0OS1cdC5zdF9jbGtkaXZcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTE2Mj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X3V4NTAwID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3Ni1cdC5kbWFfcG93ZXJfb2ZfMlx0XHQ9IHRydWUsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxNzc6XHQuZGF0YWN0cmxfbWFza19zZGlvXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE3ODpcdC5zdF9zZGlvXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3OS1cdC5zdF9jbGtkaXZcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTE5Nj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X3V4NTAwdjIgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjExLVx0LmRtYV9wb3dlcl9vZl8yXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjIxMjpcdC5kYXRhY3RybF9tYXNrX3NkaW9cdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjEzOlx0LnN0X3NkaW9cdFx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjE0LVx0LnN0X2Nsa2Rpdlx0XHQ9IHRydWUsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MjMxPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfc3RtMzIgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjQ0LVx0LmRhdGFjdHJsX2Jsb2Nrc3pcdD0gMTEsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoyNDU6XHQuZGF0YWN0cmxfbWFza19zZGlvXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjI0NjpcdC5zdF9zZGlvXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI0Ny1cdC5zdF9jbGtkaXZcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTI1Nj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X3N0bTMyX3NkbW1jID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI3Mi1cdC5kYXRhY3RybF9hbnlfYmxvY2tzelx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjczOlx0LmRhdGFjdHJsX21hc2tfc2Rpb1x0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzQtXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcdD0gR0VOTUFTSygxMiwgNSksXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzUtXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXHQ9IEJJVCg1KSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjI3NjpcdC5zdXBwb3J0c19zZGlvX2lycVx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjc3LVx0LmJ1c3lfdGltZW91dFx0XHQ9IHRydWUsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9Mjg0PXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfc3RtMzJfc2RtbWN2MiA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMDAtXHQuZGF0YWN0cmxfYW55X2Jsb2Nrc3pcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjMwMTpcdC5kYXRhY3RybF9tYXNrX3NkaW9cdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzAyLVx0LnN0bTMyX2lkbWFic2l6ZV9tYXNrXHQ9IEdFTk1BU0soMTYsIDUpLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzAzLVx0LnN0bTMyX2lkbWFic2l6ZV9hbGlnblx0PSBCSVQoNSksXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzozMDQ6XHQuc3VwcG9ydHNfc2Rpb19pcnFcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMwNS1cdC5kbWFfbGxpXHRcdD0gdHJ1ZSxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0zMTM9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tY3YzID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMyOS1cdC5kYXRhY3RybF9hbnlfYmxvY2tzelx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MzMwOlx0LmRhdGFjdHJsX21hc2tfc2Rpb1x0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMzEtXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcdD0gR0VOTUFTSygxNiwgNiksXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMzItXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXHQ9IEJJVCg2KSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjMzMzpcdC5zdXBwb3J0c19zZGlvX2lycVx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzM0LVx0LmRtYV9sbGlcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTQyNT1zdGF0aWMgdm9pZCBtbWNpX3dyaXRlX2RhdGFjdHJscmVnKHN0cnVjdCBtbWNpX2hvc3QgKmhvc3QsIHUzMiBkYXRhY3RybClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy00MjgtXHRkYXRhY3RybCB8PSBob3N0LVx1MDAzZWRhdGFjdHJsX3JlZyBcdTAwMjYgKGhvc3QtXHUwMDNldmFyaWFudC1cdTAwM2VidXN5X2Rwc21fZmxhZyB8XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzo0Mjk6XHRcdFx0XHRcdCAgaG9zdC1cdTAwM2V2YXJpYW50LVx1MDAzZWRhdGFjdHJsX21hc2tfc2Rpbyk7XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy00MzAtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTIzNj1zdGF0aWMgdm9pZCBtbWNpX3N0YXJ0X2RhdGEoc3RydWN0IG1tY2lfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjEtXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxMjYyOlx0aWYgKGhvc3QtXHUwMDNlbW1jLVx1MDAzZWNhcmQgXHUwMDI2XHUwMDI2IG1tY19jYXJkX3NkaW8oaG9zdC1cdTAwM2VtbWMtXHUwMDNlY2FyZCkpIHtcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjMtXHRcdHUzMiBjbGs7XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjY0LVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTI2NTpcdFx0ZGF0YWN0cmwgfD0gdmFyaWFudC1cdTAwM2VkYXRhY3RybF9tYXNrX3NkaW87XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjY2LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNzItXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTI3MzpcdFx0aWYgKHZhcmlhbnQtXHUwMDNlc3Rfc2RpbyBcdTAwMjZcdTAwMjYgZGF0YS1cdTAwM2VmbGFncyBcdTAwMjYgTU1DX0RBVEFfV1JJVEUgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjc0LVx0XHQgICAgKGhvc3QtXHUwMDNlc2l6ZSBcdTAwM2MgOCB8fFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTE2OTc9c3RhdGljIGlycXJldHVybl90IG1tY2lfcGlvX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMTc2OC1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE3Njk6c3RhdGljIHZvaWQgbW1jaV93cml0ZV9zZGlvX2lycV9iaXQoc3RydWN0IG1tY2lfaG9zdCAqaG9zdCwgaW50IGVuYWJsZSlcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3NzAte1xuLS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MzIxCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMjYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBgYnJjbWZtYWNgIERyaXZlciBhbmQgRnV6emluZyBQb3NzaWJpbGl0aWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBicmNtZm1hY2AgZHJpdmVyIGFuZCB0aGlua2luZyBhYm91dCBob3cgdG8gZnV6eiBpdCBlZmZlY3RpdmVseSB3aXRoIHN5emthbGxlci4gRmlyc3QsIGl0JiMzOTtzIGNsZWFyIHRoYXQgU0RJTyBpcyBhIGJ1cywgYW5kIHRoZSBrZXJuZWwgaGFzIGEgbnVtYmVyIG9mIFNESU8gaG9zdCBjb250cm9sbGVycyB0byBtYW5hZ2UgdGhlc2UgaW50ZXJmYWNlcy4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IHNlZW0gdG8gaGF2ZSBhIHRydWx5IGdlbmVyaWMgU0RJTyBwYWNrZXQgaW5qZWN0b3IuIEhtbSwgdGhvdWdoIHRoZXJlJiMzOTtzIHRoZSBXaS1GaSBmdXp6aW5nLCB3aGljaCBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYC4gQnV0IHRoYXQmIzM5O3Mgc3BlY2lmaWMgdG8gbWFjODAyMTEgZHJpdmVycy4gVGhpcyBgYnJjbWZtYWNgIGRyaXZlciBpcyBkaWZmZXJlbnQ7IGl0JiMzOTtzIGEgRnVsbE1BQyBkcml2ZXIgYW5kIGNhbiB0YWxrIHRvIGZpcm13YXJlIHRocm91Z2ggU0RJTywgVVNCLCAqb3IqIFBDSWUuIAoKV2FpdCBhIG1pbnV0ZSwgSSByZW1lbWJlciB0aGVyZSYjMzk7cyBhIFVTQiBpbnRlcmZhY2UgZm9yIGBicmNtZm1hY2AgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmNgKS4gSWYgc3l6a2FsbGVyIGlzIGFscmVhZHkgc2V0IHVwIHRvIGZ1enogVVNCLCBJIHNob3VsZCBiZSBhYmxlIHRvIHByb2JlIGBicmNtZm1hY2AgdXNpbmcgdGhlIFVTQiBpbnRlcmZhY2UuIEJ1dCwgaG9sZCBvbi4gVGhpcyBwYXRjaCBpcyBsb2NhdGVkIHNwZWNpZmljYWxseSBpbiBgc2Rpby5jYCwgbG9va2luZyBhdCBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBEb2VzIHRoaXMgbWVhbiB0aGUgY29kZSBpbiBgc2Rpby5jYCBpcyBldmVyIHJlYWNoYWJsZSBmcm9tIHRoZSBVU0IgaW50ZXJmYWNlPyBObywgdGhleSBhcmUgZGlmZmVyZW50IGJ1cyBpbnRlcmZhY2VzIGZvciB0aGUgc2FtZSBkcml2ZXIuIEkgbmVlZCB0byBiZSBzdXJlLiBJdCYjMzk7cyB0aW1lIHRvIGNoZWNrIGlmIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgaXMgb25seSBjb21waWxlZCwgb3IgcmVhY2hhYmxlLCB3aGVuIFNESU8gaXMgc2VsZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVhZF9jb250cm9sJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE3NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NTc9c3RhdGljIHVpbnQgYnJjbWZfc2Rpb19yZWFkZnJhbWVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHVpbnQgbWF4ZnJhbWVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxNy1cdFx0XHRpZiAocmQtXHUwMDNlY2hhbm5lbCA9PSBTRFBDTV9DT05UUk9MX0NIQU5ORUwpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTkxODpcdFx0XHRcdGJyY21mX3NkaW9fcmVhZF9jb250cm9sKGJ1cywgYnVzLVx1MDAzZXJ4aGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE5LVx0XHRcdFx0XHRcdFx0cmQtXHUwMDNlbGVuLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODMyOAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipTeXprYWxsZXImIzM5O3MgRGlzY292ZXJ5KioKCk9rYXksIHNvIEkgc2VlIHRoaXMgdnVsbmVyYWJpbGl0eSBpcyBpc29sYXRlZCB0byBgc2Rpby5jYC4gVGhlIGZpcnN0IHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgd2hldGhlciBgc2Rpby5jYCBpcyBldmVuIGFjY2Vzc2libGUgd2l0aGluIHRoZSBTeXprYWxsZXIgdGVzdGluZyBlbnZpcm9ubWVudC4gVGhlbiBJIHF1aWNrbHkgcmVtZW1iZXJlZCB0aGUgY29tbWl0IG1lc3NhZ2Ugc2F5aW5nICYjMzQ7QXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsuIEhvbGQgb24gYSBzZWNvbmQuLi5TeXprYWxsZXIgKmZvdW5kKiB0aGlzIGJ1Zz8gV293ISBUaGF0JiMzOTtzIGltcHJlc3NpdmUuIE5vdyBJJiMzOTttIHJlYWxseSBjdXJpb3VzOiBob3cgZGlkIFN5emthbGxlciBtYW5hZ2UgdG8gdHJpZ2dlciBhIGJ1ZyB3aXRoaW4gYGJyY21mbWFjL3NkaW8uY2A/IFRoYXQmIzM5O3Mgbm90IGEgY29tbW9uIHRhcmdldC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayB2ZWN0b3IuCgpNeSBuZXh0IHN0ZXAgaXMgZGVmaW5pdGVseSB0byBpbnZlc3RpZ2F0ZSBpZiB0aGVyZSYjMzk7cyBkZWRpY2F0ZWQgU0RJTyBmdXp6aW5nIGhhcHBlbmluZywgb3IgaWYgdGhlIGNvZGUgaXMgYmVpbmcgcmVhY2hlZCBpbmRpcmVjdGx5LiBQZXJoYXBzIHRoZXJlJiMzOTtzIGEgc2ltdWxhdGVkIFNESU8gaG9zdCBjb250cm9sbGVyIHNldCB1cCBmb3IgdGVzdGluZyBwdXJwb3Nlcz8gSSBzaG91bGQgc3RhcnQgYnkgc2VhcmNoaW5nIHdpdGhpbiB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvYCBkaXJlY3RvcnkgZm9yIGFueXRoaW5nIHJlbGF0ZWQgdG8gJiMzNDtkdW1teSYjMzQ7LiBUaGF0IHNob3VsZCBnaXZlIG1lIHNvbWUgY2x1ZXMgYWJvdXQgdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R1bW15JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9jYXZpdW0tdGh1bmRlcnguYz01Nz1zdGF0aWMgaW50IHRodW5kZXJfbW1jX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvY2F2aXVtLXRodW5kZXJ4LmMtMTM0LVx0XHQgKiBtbWNfb2ZfcGFyc2UgYW5kIGRldm0qIHJlcXVpcmUgb25lIGRldmljZSBwZXIgc2xvdC5cbmRyaXZlcnMvbW1jL2hvc3QvY2F2aXVtLXRodW5kZXJ4LmM6MTM1Olx0XHQgKiBDcmVhdGUgYSBkdW1teSBkZXZpY2UgcGVyIHNsb3QgYW5kIHNldCB0aGUgbm9kZSBwb2ludGVyIHRvXG5kcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jLTEzNi1cdFx0ICogdGhlIHNsb3QuIFRoZSBlYXNpZXN0IHdheSB0byBnZXQgdGhpcyBpcyB1c2luZ1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbGl0ZXhfbW1jLmM9NDUwPXN0YXRpYyB2b2lkIGxpdGV4X21tY19zZXRfaW9zKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBzdHJ1Y3QgbW1jX2lvcyAqaW9zKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbGl0ZXhfbW1jLmMtNDU1LVx0ICogVGhlIFNEIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgYXQgbGVhc3QgNzQgaWRsZSBjbG9ja3MgYmVmb3JlIENNRDAuXG5kcml2ZXJzL21tYy9ob3N0L2xpdGV4X21tYy5jOjQ1NjpcdCAqIFRoZXNlIGR1bW15IGN5Y2xlcyBpcyBnZW5lcmF0ZWQgYnkgd3JpdGluZyBMSVRFWF9QSFlfSU5JVElBTElaRS5cbmRyaXZlcnMvbW1jL2hvc3QvbGl0ZXhfbW1jLmMtNDU3LVx0ICovXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9vbWFwLmM9MjAxPXN0YXRpYyB2b2lkIG1tY19vbWFwX3NlbGVjdF9zbG90KHN0cnVjdCBtbWNfb21hcF9zbG90ICpzbG90LCBpbnQgY2xhaW1lZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L29tYXAuYy0yMzUtXG5kcml2ZXJzL21tYy9ob3N0L29tYXAuYzoyMzY6XHRcdC8qIERvaW5nIHRoZSBkdW1teSByZWFkIGhlcmUgc2VlbXMgdG8gd29yayBhcm91bmQgc29tZSBidWdcbmRyaXZlcnMvbW1jL2hvc3Qvb21hcC5jLTIzNy1cdFx0ICogYXQgbGVhc3QgaW4gT01BUDI0eHggc2lsaWNvbiB3aGVyZSB0aGUgY29tbWFuZCB3b3VsZCBub3Rcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfcGNpX3NkbW1jLmM9MjA4PXN0YXRpYyB2b2lkIHNkX3NlbmRfY21kX2dldF9yc3Aoc3RydWN0IHJlYWx0ZWtfcGNpX3NkbW1jICpob3N0LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF9wY2lfc2RtbWMuYy0zMDEtXHRcdCAqIFRoZSBjb250cm9sbGVyIG9mZmxvYWRzIHRoZSBsYXN0IGJ5dGUge0NSQy03LCBlbmQgYml0IDEmIzM5O2IxfVxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3BjaV9zZG1tYy5jOjMwMjpcdFx0ICogb2YgcmVzcG9uc2UgdHlwZSBSMi4gQXNzaWduIGR1bW15IENSQywgMCwgYW5kIGVuZCBiaXQgdG8gdGhlXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfcGNpX3NkbW1jLmMtMzAzLVx0XHQgKiBieXRlKHB0clsxNl0sIGdvZXMgaW50byB0aGUgTFNCIG9mIHJlc3BbM10gbGF0ZXIpLlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYz0yODU9c3RhdGljIHZvaWQgc2Rfc2VuZF9jbWRfZ2V0X3JzcChzdHJ1Y3QgcnRzeF91c2Jfc2RtbWMgKmhvc3QsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3VzYl9zZG1tYy5jLTQyNS1cdFx0ICogVGhlIGNvbnRyb2xsZXIgb2ZmbG9hZHMgdGhlIGxhc3QgYnl0ZSB7Q1JDLTcsIGVuZCBiaXQgMSYjMzk7YjF9XG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfdXNiX3NkbW1jLmM6NDI2Olx0XHQgKiBvZiByZXNwb25zZSB0eXBlIFIyLiBBc3NpZ24gZHVtbXkgQ1JDLCAwLCBhbmQgZW5kIGJpdCB0byB0aGVcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYy00MjctXHRcdCAqIGJ5dGUocHRyWzE2XSwgZ29lcyBpbnRvIHRoZSBMU0Igb2YgcmVzcFszXSBsYXRlcikuXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYy0yMTQtXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWVzZGhjLWlteC5jOjIxNTovKiB0aGUgY29udHJvbGxlciBoYXMgZHVtbXkgcGFkIGZvciBjbG9jayBsb29wYmFjayAqL1xuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYy0yMTYtI2RlZmluZSBFU0RIQ19GTEFHX0RVTU1ZX1BBRFx0XHRCSVQoMTkpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jPTEwMT1zdGF0aWMgdTMyIHB4YXYxX2lycShzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCwgdTMyIGludG1hc2spXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEwNi1cdGlmIChweGF2Ml9ob3N0LVx1MDAzZXNkaW9fbXJxIFx1MDAyNlx1MDAyNiAoaW50bWFzayBcdTAwMjYgU0RIQ0lfSU5UX0NNRF9NQVNLKSkge1xuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjEwNzpcdFx0LyogVGhlIGR1bW15IENNRDAgZm9yIHRoZSBTRElPIHdvcmthcm91bmQganVzdCBjb21wbGV0ZWQgKi9cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xMDgtXHRcdHNkaGNpX3dyaXRlbChob3N0LCBpbnRtYXNrIFx1MDAyNiBTREhDSV9JTlRfQ01EX01BU0ssIFNESENJX0lOVF9TVEFUVVMpO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYz0xMjM9c3RhdGljIHZvaWQgcHhhdjFfcmVxdWVzdF9kb25lKHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0LCBzdHJ1Y3QgbW1jX3JlcXVlc3QgKm1ycSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmMtMTM2LVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjEzNzpcdFx0LyogQ2xvY2sgaXMgbm93IHN0b3BwZWQsIHNvIHJlc3RhcnQgaXQgYnkgc2VuZGluZyBhIGR1bW15IENNRDAgKi9cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xMzgtXHRcdHB4YXYyX2hvc3QgPSBzZGhjaV9wbHRmbV9wcml2KHNkaGNpX3ByaXYoaG9zdCkpO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xNDktXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmM6MTUwOlx0XHQvKiBEb24mIzM5O3QgZmluaXNoIHRoaXMgcmVxdWVzdCB1bnRpbCB0aGUgZHVtbXkgQ01EMCBmaW5pc2hlcyAqL1xuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTE1MS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYz02NTM9c3RhdGljIGludCBzZGhjaV9wcmVfZG1hX3RyYW5zZmVyKHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02ODktXHRcdFx0XHRcdCAgIG1tY19nZXRfZG1hX2RpcihkYXRhKSk7XG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmM6NjkwOlx0XHQvKiBKdXN0IGEgZHVtbXkgdmFsdWUgKi9cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02OTEtXHRcdHNnX2NvdW50ID0gMTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAxNzkKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBUcmlnZ2VyKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuLi4gaXMgdGhlcmUgc29tZSBraW5kIG9mIGBzeXpfbWFjODAyMTFfaHdzaW1gIHRoaW5neSBpbiBzeXprYWxsZXIgSSYjMzk7bSBtaXNzaW5nPyBOb3BlLCB0aGF0JiMzOTtzIGRlZmluaXRlbHkgbWFjODAyMTEtc3BlY2lmaWMuIEhtbSwgdGhhdCYjMzk7cyBub3QgaXQuIFJpZ2h0LCBzbyBob3cgaW4gdGhlIHdvcmxkIGlzIHN5emthbGxlciBoaXR0aW5nIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGA/IEl0IGRvZXNuJiMzOTt0IHF1aXRlIGFkZCB1cC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLgoKQWxyaWdodCwgbGV0JiMzOTtzIHRha2UgYSBsb29rLiBJJiMzOTtsbCBiZXQgdGhlcmUmIzM5O3MgYW4gU0RJTyBmdXp6ZXIgc29tZXdoZXJlIGluIHRoZSBrZXJuZWwuIFdoZXJlIHdvdWxkIHRoZXkgcHV0IHRoYXQsIHRob3VnaD8gUHJvYmFibHkgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIG1tYyBzdWJzeXN0ZW0sIHJpZ2h0PyBJJiMzOTtsbCBjaGVjayBgZHJpdmVycy9tbWMvY29yZS9gIGFuZCBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IG9idmlvdXMgY2FuZGlkYXRlcyB0aGVyZS4gTGV0IG1lIHN0YXJ0IHdpdGggYSBxdWljayBzZWFyY2ggb2YgdGhlIGBkcml2ZXJzL21tYy9gIGRpcmVjdG9yeSBmb3IgJiMzNDtmdXp6JiMzNDsgb3IgJiMzNDtzeXomIzM0Oy4gSG9wZWZ1bGx5LCB0aGlzIG5hcnJvd3MgdGhpbmdzIGRvd24sIGFuZCBnaXZlcyBtZSBhIHN0YXJ0aW5nIHBvaW50LiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZnV6eiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTg1CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMjQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIEJyY21mbWFjIFNESU8gQnVnKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgSSBuZWVkIHRvIHBpbnBvaW50IGhvdyB0aGlzIGBicmNtZm1hY2AgU0RJTyBidWcgaXMgYmVpbmcgdHJpZ2dlcmVkLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gc2VlIGlmIGFueSBgc2Rpb2AgbWVudGlvbnMgcG9wIHVwIHdpdGhpbiB0aGUgYG5ldC9tYWM4MDIxMS9gIG9yIGBuZXQvd2lyZWxlc3MvYCBkaXJlY3Rvcmllcy4gSG93ZXZlciwgbXkgdW5kZXJzdGFuZGluZyBvZiBzeXprYWxsZXIgc3VnZ2VzdHMgdGhlIHVuZGVybHlpbmcgZGV2aWNlIGNvdWxkIGJlIGB2aGNpYCBvdmVyIFVTQi4gTWF5YmUgdGhlIHRyaWdnZXIgaXMgaW5kaXJlY3QsIGFuZCB0aGUgcm9vdCBjYXVzZSBsaWVzIGluIGBicmNtZm1hY2AsIGJ1dCBub3Qgc3RyaWN0bHkgd2l0aCBTRElPLiBMZXQgbWUganVzdCBjb25maXJtIHRoYXQgdGhlIHBhdGNoIGlzIGluZGVlZCBpbiBgYnJjbWZtYWMvc2Rpby5jYC4gQWgsIHllcywgaXQgaXMuCgpOb3csIG15IG5leHQgbGluZSBvZiB0aGlua2luZyBpcywgY2FuIGBicmNtZm1hY2AgYmUgY29tcGlsZWQgaW50byBzb21ldGhpbmcgZWxzZSwgb3IgcmVhY2hhYmxlIHZpYSBhbm90aGVyIHJvdXRlPyBTeXprYWxsZXIgaGFzIGEgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIHBzZXVkby1zeXNjYWxsLCBzbywgcGVyaGFwcyB0aGVyZSYjMzk7cyBhIGNvbm5lY3Rpb24gdGhlcmU/IE5vLCBoYW5nIG9uLiBTeXprYWxsZXIgYWxzbyBoYXMgYHN5el91c2JfY29ubmVjdGAsIHdoaWNoIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzLiBCdXQgdGhpcyBpcyBhbiBTRElPIGlzc3VlLiBEb2VzIHN5emthbGxlciBvZmZlciBTRElPIGVtdWxhdGlvbiBhcyB3ZWxsPwoKQWxyaWdodCwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgaG93IFNESU8gaW50ZXJhY3Rpb25zIG1pZ2h0IGJlIHNpbXVsYXRlZC4gSSYjMzk7bGwgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGluIGBkcml2ZXJzL21tYy9jb3JlL3NkaW8uY2AgYW5kIGBkcml2ZXJzL21tYy9jb3JlL2NvcmUuY2AgZm9yIGFueSBzaWduIG9mIGEgZHVtbXkgaG9zdCwgYSB2aXJ0dWFsIFNESU8gaW50ZXJmYWNlLiBXaGF0IGFib3V0IGB2aXJ0aW9fbW1jYD8gTGV0IG1lIGxvb2sgaW5zaWRlIGBkcml2ZXJzL21tYy9ob3N0L2AgZm9yIGB2aXJ0aW9gLiBJJiMzOTtsbCB0cnkgdG8gZmluZCBhbnkgcG90ZW50aWFsIGF2ZW51ZXMgZm9yIHRyaWdnZXJpbmcgdGhpcyBTRElPIHZ1bG5lcmFiaWxpdHkgd2l0aGluIHRoZSBzeXprYWxsZXIgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmlydGlvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC91c2RoaTZyb2wwLmMtMjYtI2luY2x1ZGUgXHUwMDNjbGludXgvdGltZS5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L3VzZGhpNnJvbDAuYzoyNzojaW5jbHVkZSBcdTAwM2NsaW51eC92aXJ0aW8uaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC91c2RoaTZyb2wwLmMtMjgtI2luY2x1ZGUgXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcdTAwM2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEzMjMKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYGJyY21mbWFjYCBEcml2ZXIgZm9yIFNpbXVsYXRpb24gQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIG5vIGB2aXJ0aW9fbW1jYCBkcml2ZXIsIHRoYXQgbXVjaCBpcyBjbGVhci4gSG1tLCB3YWl0IGEgc2Vjb25kLi4uIGRpZG4mIzM5O3Qgc3l6a2FsbGVyIGZpbmQgYSBidWcgaW4gc29tZXRoaW5nIHJlbGF0ZWQgdG8gU0RJTyBhbmQgYGJyY21mbWFjYD8gSSBuZWVkIHRvIGpvZyBteSBtZW1vcnkuIExldCBtZSBzZWUuLi4gSSB3b25kZXIgaWYgdGhlcmUmIzM5O3MgYSBzeXprYWxsZXIgcHJpbWl0aXZlIGxpa2UgYHN5el9zZGlvYD8gV2hlcmUgd291bGQgSSBleHBlY3QgdG8gZmluZCBtb2NrIG9yIHNpbXVsYXRpb24gY29kZSBmb3IgTU1DIG9yIFNESU8gaW50ZXJmYWNlcz8gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gY2hlY2sgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Agb3IgZGl2ZSBpbnRvIHRoZSBgZHJpdmVycy9tbWMvYCBkaXJlY3RvcnkuCgpObyBkaWNlIHRoZXJlLiBPa2F5LCBzbyBtYXliZSBpdCBpc24mIzM5O3QgYSBkaXJlY3QgbW9jay4gUGVyaGFwcyB0aGUgYGJyY21mbWFjYCBkcml2ZXIgaXMgdGVzdGVkIHZpYSBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB0aGUgc3RhbmRhcmQgZHJpdmVyIGZvciBzaW11bGF0aW5nIHdpcmVsZXNzIGRldmljZXM/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodDsgYGJyY21mbWFjYCBpcyBhIHJlYWwgZHJpdmVyLCBub3QgYSBzaW11bGF0aW9uLiBPa2F5LCBzbyB0aGVuLCBob3cgZGlkIHN5emthbGxlciBmaW5kIGEgYnVnIGluIGBicmNtZm1hYy9zZGlvLmNgPyBUaGF0JiMzOTtzIHRoZSByZWFsIHB1enpsZS4KCkFoYSEgTWF5YmUsIGp1c3QgbWF5YmUsIGBicmNtZm1hY2AgaGFzIGl0cyBvd24gaW50ZXJuYWwgc2ltdWxhdGlvbiBpbnRlcmZhY2UuIFBlcmhhcHMgaXQmIzM5O3MgYSBkZWRpY2F0ZWQgYHNpbWAgZmVhdHVyZSBvciwgSSBkb24mIzM5O3Qga25vdywgYSB3YXkgdG8gZnV6eiB0aGUgY29kZSBpbnRlcm5hbGx5LiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2AgZGlyZWN0b3J5IGFuZCBzZWUgaWYgSSBjYW4gZmluZCBhbnkgdHJhY2Ugb2YgYSBgc2ltYCBpbnRlcmZhY2Ugb3IgYW55dGhpbmcgcmVsYXRlZCB0byBmdXp6aW5nLiBUaGF0JiMzOTtzIG15IG5leHQgYXZlbnVlIG9mIGludmVzdGlnYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NpbSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MjAzMT1icmNtZl9zZXRfd3NlY19tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTIwODYtXHRicmNtZl9kYmcoQ09OTiwgXCYjMzQ7cHZhbCAoJWQpIGd2YWwgKCVkKVxcblwmIzM0OywgcHZhbCwgZ3ZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoyMDg3Olx0LyogSW4gY2FzZSBvZiBwcml2YWN5LCBidXQgbm8gc2VjdXJpdHkgYW5kIFdQUyB0aGVuIHNpbXVsYXRlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0yMDg4LVx0Lyogc2V0dGluZyBBRVMuIFdQUy0yLjAgYWxsb3dzIG5vIHNlY3VyaXR5ICAgICAgICAgICAgICAgICAgICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz05Nj12b2lkIGJyY21mX2NvbmZpZ3VyZV9hcnBfbmRfb2ZmbG9hZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwgYm9vbCBlbmFibGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTEtXHQvKiBUcnkgdG8gc2V0IGFuZCBlbmFibGUgQVJQIG9mZmxvYWQgZmVhdHVyZSwgdGhpcyBtYXkgZmFpbCwgdGhlbiBpdCAgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTEyOlx0LyogaXMgc2ltcGx5IG5vdCBzdXBwb3J0ZWQgYW5kIGVyciAwIHdpbGwgYmUgcmV0dXJuZWQgICAgICAgICAgICAgICAgICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTExMy1cdGVyciA9IGJyY21mX2ZpbF9pb3Zhcl9pbnRfc2V0KGlmcCwgXCYjMzQ7YXJwX29sXCYjMzQ7LCBtb2RlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTEyMjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYnVzX3Jlc2V0X2ZvcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEyMjU6XHQub3Blblx0PSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTIyNi1cdC53cml0ZVx0PSBidXNfcmVzZXRfd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuaC0yOS0gKiBET1QxMUg6IGZpcm13YXJlIHN1cHBvcnRzIDgwMi4xMWhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmg6MzA6ICogU0FFOiBzaW11bHRhbmVvdXMgYXV0aGVudGljYXRpb24gb2YgZXF1YWxzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5oLTMxLSAqIEZXQVVUSDogRmlybXdhcmUgYXV0aGVudGljYXRvclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jPTI1OT11MzIgYnJjbWZfZmxvd3JpbmdfZW5xdWV1ZShzdHJ1Y3QgYnJjbWZfZmxvd3JpbmcgKmZsb3csIHUxNiBmbG93aWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Zsb3dyaW5nLmMtMjc0LVx0XHQgKiBwcm90ZWN0LCBidXQgdGhhdCBpcyB1bmRlc2lyYWJsZSBmb3IgZXZlcnkgZW5xdWV1ZSBhbmRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jOjI3NTpcdFx0ICogZGVxdWV1ZS4gVGhpcyBzaW1wbGUgY2hlY2sgd2lsbCBzb2x2ZSBhIHBvc3NpYmxlIHJhY2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jLTI3Ni1cdFx0ICogY29uZGl0aW9uIGlmIGl0IG9jY3Vycy5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9NDg5PXN0YXRpYyB2b2lkIGJyY21mX3AycF9nZW5lcmF0ZV9ic3NfbWFjKHN0cnVjdCBicmNtZl9wMnBfaW5mbyAqcDJwLCB1OCAqZGV2X2FkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTUxOC1cdC8qIEdlbmVyYXRlIHRoZSBQMlAgSW50ZXJmYWNlIEFkZHJlc3MuICBJZiB0aGUgZGlzY292ZXJ5IGFuZCBjb25uZWN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6NTE5Olx0ICogQlNTQ0ZHcyBuZWVkIHRvIHNpbXVsdGFuZW91c2x5IGNvLWV4aXN0LCB0aGVuIHRoaXMgYWRkcmVzcyBtdXN0IGJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtNTIwLVx0ICogZGlmZmVyZW50IGZyb20gdGhlIFAyUCBEZXZpY2UgQWRkcmVzcywgYnV0IGFsc28gbG9jYWxseSBhZG1pbmlzdGVyZWQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTg5MT1icmNtZl91c2JfZGxfd3JpdGVpbWFnZShzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8sIHU4ICpmdywgaW50IGZ3bGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy05MzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6OTMyOlx0XHRcdC8qIHNpbXBseSBhdm9pZCBoYXZpbmcgdG8gc2VuZCBhIFpMUCBieSBlbnN1cmluZyB3ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTkzMy1cdFx0XHQgKiBuZXZlciBoYXZlIGFuIGV2ZW5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMxOTUKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAzMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGVidWdnaW5nIHRoZSBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIFRyaWdnZXIqKgoKT2theSwgc28gdGhlcmUmIzM5O3Mgbm8gb2J2aW91cyBzaW11bGF0b3IgdGhhdCYjMzk7cyBjYXVzaW5nIHRoaXMuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzLCBob3cgZGlkIHN5emthbGxlciBldmVuICpoaXQqIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGA/IFRoYXQmIzM5O3MgdGhlIHJlYWwgcHV6emxlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIGJhc2ljIGFwcHJvYWNoIGFuZCBzZWFyY2ggdGhlIHN5emthbGxlciBidWcgdHJhY2tlcjsgbWF5YmUgaXQmIzM5O3MgYSBrbm93biBpc3N1ZS4gT3RoZXJ3aXNlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcGF0aC4KCkNvdWxkIHRoZXJlIGJlIGFuIFNESU8gZnV6emVyIGJha2VkIGludG8gdGhlIGtlcm5lbCBzb21ld2hlcmU/IFRpbWUgdG8gY2hlY2sgdGhlIHN0YW5kYXJkIGxvY2F0aW9ucywgc3BlY2lmaWNhbGx5IHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeS4gSSYjMzk7bGwgc2NhbiBmb3IgYW55dGhpbmcgbmFtZWQgYGZ1enpgLCBgZHVtbXlgLCBgdmhjaWAsIGB2aXJ0aW9gLCBvciBgbWFjODAyMTFfaHdzaW1gIHdoaWNoIHdvdWxkIHByb3ZpZGUgYSBsaWtlbHkgdGVzdCBoYXJuZXNzLgoKSG1tLCB3YWl0LiBJcyBpdCBwb3NzaWJsZSB0aGF0IGBicmNtZm1hY2AgZ2V0cyBwcm9iZWQgdmlhIGEgKmRpZmZlcmVudCogYnVzLCBhbmQgKnRoZW4qIHRoZSBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGluZGlyZWN0bHk/IEJ1dCBubywgYSBxdWljayBjaGVjaywgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBpcyByaWdodCB0aGVyZSBpbiBgc2Rpby5jYCwgd2hpY2ggaXMgdGhlIFNESU8gYnVzIGludGVyZmFjZS4gU28gaXQmIzM5O3MgY2xlYXJseSByZWxhdGVkIHRvIFNESU8uCgpSaWdodCEgYHNkaW8uY2AgKnJlZ2lzdGVycyogYW4gU0RJTyBkcml2ZXI6IGBzZGlvX3JlZ2lzdGVyX2RyaXZlcigmYW1wO2JyY21mX3NkaW9kX2RyaXZlcik7YC4gVGhhdCYjMzk7cyB0aGUga2V5LiBOb3csIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBob3cgaXMgdGhhdCBTRElPIGRyaXZlciBnZXR0aW5nIHByb2JlZCBieSBzeXprYWxsZXI/IEl0IGNvdWxkIGJlIHRoYXQgc3l6a2FsbGVyIGlzIHVzaW5nIGEgZHVtbXkgU0RJTyBob3N0IGNvbnRyb2xsZXIsIGEgdmlydHVhbCBvbmUgcGVyaGFwcy4gTGV0JiMzOTtzIGdvIGJhY2sgYW5kIGNoZWNrIHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeSBmb3IgYW55IHNpZ25zIG9mIGEgJiMzNDtkdW1teSYjMzQ7IG9yICYjMzQ7dmlydHVhbCYjMzQ7IGNvbnRyb2xsZXIuCgpEYW1uLCBJIGRpZG4mIzM5O3Qgc2VlIGFueXRoaW5nIG9idmlvdXMgd2hlbiBJIGxvb2tlZCBmb3IgJiMzNDtkdW1teS4mIzM0OyBPa2F5LCB0aW1lIHRvIGJyb2FkZW4gdGhlIHNlYXJjaC4gSSYjMzk7bSBnb2luZyB0byBzZWFyY2ggZm9yICYjMzQ7c3l6JiMzNDsgaW4gdGhlIGVudGlyZSBgZHJpdmVycy9tbWMvYCBkaXJlY3RvcnkgdG8gc2VlIGlmIHRoZXJlIGlzIGFueSBzeXprYWxsZXIgc3BlY2lmaWMgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXomIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzk5NQoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIGJyY21mbWFjIERyaXZlcioqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSYjMzk7bSB0aGlua2luZywgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIEJyb2FkY29tIFdpLUZpIGRyaXZlciBjb2RlIEkmIzM5O20gbW9zdCBpbnRlcmVzdGVkIGluIHJlc2lkZXMsIHNwZWNpZmljYWxseSB0aGUgYGJyY21mbWFjYCBtb2R1bGUuIE15IGdvYWwgaXMgY2xlYXI6IEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhhdCBjb2RlIGJhc2UgZm9yIGFueSBoaW50cyBvZiBleGlzdGluZyBmdXp6aW5nIGluZnJhc3RydWN0dXJlIChgZnV6emApIG9yIGluc3RydW1lbnRhdGlvbiBidWlsdCBmb3IgU3l6a2FsbGVyIChgc3l6YCkuIEkgd2FudCB0byBzZWUgaWYgYW55IHByZS1leGlzdGluZyBlZmZvcnRzIG1pZ2h0IGJlIHRoZXJlIHRoYXQgd291bGQgZ2l2ZSBtZSBhIGxlZyB1cCBpbiBteSBjdXJyZW50IGludmVzdGlnYXRpb24uIEtub3dpbmcgdGhlIGxhbmRzY2FwZSBvZiB0aGUgdGFyZ2V0IG1vZHVsZSBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAuIEkgd2lsbCBiZSBsb29raW5nIGZvciB2YXJpYWJsZXMsIGZ1bmN0aW9uIG5hbWVzLCBtYWNybyBkZWZpbml0aW9ucyDigJMgYW55dGhpbmcgdGhhdCBzY3JlYW1zICYjMzQ7ZnV6emluZyYjMzQ7IG9yICYjMzQ7U3l6a2FsbGVyLiYjMzQ7IEZpbmRpbmcgYSBwcmV2aW91cyBzdGFydCBtZWFucyB0aGF0IEkgZG9uJiMzOTt0IGhhdmUgdG8gc3RhcnQgZnJvbSBzY3JhdGNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N5eiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDMyMgoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDEyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBgYnJjbWZtYWNgIERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgd2FzIGNlcnRhaW4gdGhlcmUgd2FzbiYjMzk7dCBhIGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbCBpbiBzeXprYWxsZXIgcmVsYXRlZCB0byB0aGlzLiBJJiMzOTt2ZSBkb3VibGUtY2hlY2tlZCwgcmlnaHQ/IEJ1dCwgd2FpdC4uLiBpc24mIzM5O3QgdGhlcmUgYSBVU0IgZnV6emVyIGluIHN5emthbGxlcj8gVGhlIGBkdW1teV9oY2RgIGNvbXBvbmVudCwgaXNuJiMzOTt0IGl0PyBJZiBgYnJjbWZtYWNgICpkb2VzKiBoYXZlIGEgVVNCIGludGVyZmFjZSwgdGhlbiBtYXliZSBpdCBjb3VsZCBiZSByZWFjaGVkIHZpYSBhIFVTQiBwcm9iZS4gVGhlIHNvdXJjZSBvZiB0aGUgaXNzdWUgSSBhbSB0YXJnZXRpbmcgaXMgbG9jYXRlZCBpbiBgc2Rpby5jYCwgdGhvdWdoLiBIb3cgY291bGQgYHNkaW8uY2AgcG9zc2libHkgYmUgZXhlY3V0ZWQgaWYgdGhlIGRldmljZSBpcyBiZWluZyBpbnRlcmFjdGVkIHdpdGggb3ZlciBVU0I/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjYWxsaW5nIGhpZXJhcmNoeS4gTXkgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBmdW5jdGlvbiwgdGhlIHRhcmdldCBpbiBgc2Rpby5jYCwgaXMgY2FsbGVkIGZyb20gYW55d2hlcmUgaW4gdGhlIGB1c2IuY2AgZmlsZS4gSSBuZWVkIHRvIHRyYWNlIHRoYXQgcG90ZW50aWFsIGNvbm5lY3Rpb24gdG8gY29uZmlybSBpZiB0aGlzIHBhdGggaXMgYWN0dWFsbHkgdmlhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9zZGlvX3JlYWRfY29udHJvbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xODU3PXN0YXRpYyB1aW50IGJyY21mX3NkaW9fcmVhZGZyYW1lcyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1aW50IG1heGZyYW1lcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE5MTctXHRcdFx0aWYgKHJkLVx1MDAzZWNoYW5uZWwgPT0gU0RQQ01fQ09OVFJPTF9DSEFOTkVMKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE5MTg6XHRcdFx0XHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChidXMsIGJ1cy1cdTAwM2VyeGhkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxOS1cdFx0XHRcdFx0XHRcdHJkLVx1MDAzZWxlbixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUwNzAKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCB0YWtpbmcgb24gdGhlIHBlcnNvbmEgeW91IHJlcXVlc3RlZDoKCioqSW52ZXN0aWdhdGluZyBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBDYWxsZXJzKioKCkFscmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhpcyBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXRzIGRpcmVjdCBjYWxsIHNpdGUgaXMgbGltaXRlZCB0byB3aXRoaW4gYHNkaW8uY2AuIFRoZSBxdWVzdGlvbiBub3cgYmVjb21lczogaXMgdGhpcyB0aGUgKm9ubHkqIGVudHJ5IHBvaW50IGZvciBpdHMgZXhlY3V0aW9uPyBUaGUgaW1wbGljYXRpb24gaGVyZSBpcyB0aGUgcG90ZW50aWFsIGZvciB1bmV4cGVjdGVkIGJlaGF2aW9yIHNob3VsZCBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBiZSBjYWxsZWQgZWxzZXdoZXJlLiBBIHRob3JvdWdoIHN0YXRpYyBhbmFseXNpcyBpcyB3YXJyYW50ZWQuIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gb2YgdGhlIHNjb3BlIG9mIHRoaXMgZnVuY3Rpb24mIzM5O3MgZXhlY3V0aW9uIHRvIHVuZGVyc3RhbmQgaG93IGl0IGltcGFjdHMgdGhlIGxhcmdlciBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVhZGZyYW1lcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xODQ1PXN0YXRpYyB2b2lkIGJyY21mX3NkaW9fcGFkKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHUxNiAqcGFkLCB1MTYgKnJkbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTg1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTg1NzpzdGF0aWMgdWludCBicmNtZl9zZGlvX3JlYWRmcmFtZXMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdWludCBtYXhmcmFtZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE4NTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjU4NT1zdGF0aWMgdm9pZCBicmNtZl9zZGlvX2RwYyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjY4OS1cdGlmICgoaW50c3RhdHVzIFx1MDAyNiBJX0hNQl9GUkFNRV9JTkQpIFx1MDAyNlx1MDAyNiAoYnVzLVx1MDAzZWNsa3N0YXRlID09IENMS19BVkFJTCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjY5MDpcdFx0YnJjbWZfc2Rpb19yZWFkZnJhbWVzKGJ1cywgYnVzLVx1MDAzZXJ4Ym91bmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yNjkxLVx0XHRpZiAoIWJ1cy1cdTAwM2VyeHBlbmRpbmcpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NzMyCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkludmVzdGlnYXRpbmcgdGhlIENhbGwgQ29udGV4dCBvZiBgYnJjbWZfc2Rpb19kcGNgKioKClJpZ2h0LCBsZXQgbWUgc2VlLi4uIEkmIzM5O20gY3VycmVudGx5IGxvb2tpbmcgYXQgdGhlIGNvZGUgZm9yIHRoZSBCcm9hZGNvbSBTRElPIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBgc2Rpby5jYCBmaWxlLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB0aGUgZnVuY3Rpb24gYGJyY21mX3NkaW9fZHBjYC4gVGhlIGNvZGUgaW5kaWNhdGVzIHRoYXQgaXQmIzM5O3Mgb25seSBjYWxsZWQgZnJvbSBgYnJjbWZfc2Rpb19kcGNgIGl0c2VsZiwgd2hpY2ggc2VlbXMgYSBsaXR0bGUgc3RyYW5nZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgY2FsbCBncmFwaCwgdGhvdWdoLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIG9ubHkgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGlzIHdpdGhpbiB0aGUgc2FtZSBmdW5jdGlvbi4gSSBuZWVkIHRvIGtub3cgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGlmIGl0IGlzIGNhbGxlZCBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGJyb2FkZXIgZHJpdmVyLiBJZiBpdCBpc24mIzM5O3QsIHRoaXMgc2VlbXMgcGVjdWxpYXIsIGFuZCBtaWdodCBpbmRpY2F0ZSBlaXRoZXIgYW4gaXNzdWUgb3IgYSBtb3JlIHN1YnRsZSwgcGVyaGFwcyBpbnRlcnJ1cHQtZHJpdmVuLCBpbnRlcmFjdGlvbiB0aGF0IEkgbmVlZCB0byBkaXNzZWN0LiBJJiMzOTtsbCBnZXQgdG8gdGhlIGJvdHRvbSBvZiB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9zZGlvX2RwYyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yNTU4PXN0YXRpYyBpbnQgYnJjbWZfc2Rpb19pbnRyX3JzdGF0dXMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI1ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI1ODU6c3RhdGljIHZvaWQgYnJjbWZfc2Rpb19kcGMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjU4Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzU3PXN0YXRpYyB2b2lkIGJyY21mX3NkaW9fZGF0YXdvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNzY1LVx0XHRidXMtXHUwMDNlZHBjX3RyaWdnZXJlZCA9IGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozNzY2Olx0XHRicmNtZl9zZGlvX2RwYyhidXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNzY3LVx0XHRidXMtXHUwMDNlaWRsZWNvdW50ID0gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0MTgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAyODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yYXZlbGluZyB0aGUgU3l6a2FsbGVyIFRyaWdnZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAgZnVuY3Rpb24sIGFuZCB0aGUgY29kZSBzYXlzIGl0JiMzOTtzIG9ubHkgY2FsbGVkIGZyb20gd2l0aGluIGBzZGlvLmNgLiBSaWdodCwgc28gaXQmIzM5O3MgYSB3b3JrcXVldWUgZnVuY3Rpb24uIFRoZSBiaWcgcXVlc3Rpb24gaXMsIGhvdyBkaWQgc3l6a2FsbGVyIGV2ZW4gKnJlYWNoKiB0aGlzIHRoaW5nPyBJdCBoYXMgdG8gYmUgcmVhY2hhYmxlIHRvIGhhdmUgZm91bmQgdGhlIGJ1ZyBpbiB0aGUgZmlyc3QgcGxhY2UsIHJpZ2h0PwoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIG1heWJlIGl0JiMzOTtzIHBhY2tldCBpbmplY3Rpb24sIHNwZWNpZmljIFNESU8gcGFja2V0cy4gQnV0IGhhbmcgb24sIHN5emthbGxlciAqZm91bmQqIGl0LiBTbywgaG93PyBJcyB0aGVyZSBhbiBlcXVpdmFsZW50IG9mIGBtYWM4MDIxMV9od3NpbWAgdGhhdCBlbXVsYXRlcyBTRElPPyBJIG5lZWQgdG8gZXhwbG9yZS4gTGV0JiMzOTtzIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgc29ydCBvZiBTRElPIGVtdWxhdGlvbiBnb2luZyBvbiBpbiB0aGUga2VybmVsLgoKSG1tLCBtYXliZSBpbiBgZHJpdmVycy9tbWMvY29yZS9zZGlvX2lvLmNgPyBObywgdGhhdCBsb29rcyBsaWtlIHRoZSBjb3JlIFNESU8gZnVuY3Rpb25hbGl0eSwgbm90IGFuIGVtdWxhdG9yLiBPa2F5LCBob3cgYWJvdXQgYGRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNgPyBCaW5nbyEgVGhhdCYjMzk7cyBhIFVTQi10by1TRElPIGhvc3QgY29udHJvbGxlci4KCkFoYSEgYHZ1YjMwMGAgaXMgYSBVU0ItdG8tU0RJTyBicmlkZ2UhIFRoYXQmIzM5O3MgaXQhIElmIHN5emthbGxlciBpcyBmdXp6aW5nIFVTQiwgcGVyaGFwcyB2aWEgYSBkdW1teSBIQ0QsIHRoZW4gaXQgY291bGQgYmUgZW11bGF0aW5nIGEgYHZ1YjMwMGAgZGV2aWNlLiBUaGUgYHZ1YjMwMGAgZHJpdmVyIHdvdWxkIHRoZW4gcmVnaXN0ZXIgYW4gU0RJTyBob3N0IGNvbnRyb2xsZXIuIEFuZCB0aGVuLCBzeXprYWxsZXIgY2FuIGVtdWxhdGUgYW4gU0RJTyBkZXZpY2UsIGxpa2UgYGJyY21mbWFjYCwgYnkgc2VuZGluZyBhcHByb3ByaWF0ZSBVU0IgcmVzcG9uc2VzIHRvIHRoZSBgdnViMzAwYCBkcml2ZXIhIFRoYXQmIzM5O3MgaG93IGl0JiMzOTtzIGRvbmUhIEkganVzdCBuZWVkIHRvIHZlcmlmeSB0aGF0IGB2dWIzMDBgIGFjdHVhbGx5IGV4aXN0cyBpbiB0aGUga2VybmVsIGFuZCBpZiBzeXprYWxsZXIgaXMgYWJsZSB0byBpbnRlcmFjdCB3aXRoIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2dWIzMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTY0MCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkyMD1jb25maWcgTU1DX1ZVQjMwMFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05NDQtXHQgIFRvIGNvbXBpbGUgdGhpcyBtbWMgaG9zdCBjb250cm9sbGVyIGRyaXZlciBhcyBhIG1vZHVsZSxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5NDU6XHQgIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdnViMzAwLlxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0Ni1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlPTYyPW9iai0kKENPTkZJR19NTUNfSlo0NzQwKVx0JiM0Mzs9IGp6NDc0MF9tbWMub1xuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2MzpvYmotJChDT05GSUdfTU1DX1ZVQjMwMClcdCYjNDM7PSB2dWIzMDAub1xuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZS02NC1vYmotJChDT05GSUdfTU1DX1VTSEMpXHRcdCYjNDM7PSB1c2hjLm9cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTI2MD1NT0RVTEVfUEFSTV9ERVNDKGZpcm13YXJlX3JvbV93YWl0X3N0YXRlcyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI2NS0jZGVmaW5lIFZVQjMwMF9QUk9EVUNUX0lEXHQweDAxMkNcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjY2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCB2dWIzMDBfdGFibGVbXSA9IHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjY3LVx0e1VTQl9ERVZJQ0UoRUxBTl9WRU5ET1JfSUQsIFZVQjMwMF9QUk9EVUNUX0lEKX0sXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNzAtfTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCB2dWIzMDBfdGFibGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNzItXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0yODY9c3RydWN0IHNkaW9fcmVnaXN0ZXIge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjk1LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyOTY6c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI5Ny1cdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzU0LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNTU6I2RlZmluZSBrcmVmX3RvX3Z1YjMwMF9tbWNfaG9zdChkKSBjb250YWluZXJfb2YoZCwgc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCwga3JlZilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzU2LSNkZWZpbmUgU0VUX1RSQU5TRkVSX1BTRVVET0NPREVcdFx0MjFcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM2OC1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzY5OnN0YXRpYyB2b2lkIHZ1YjMwMF9kZWxldGUoc3RydWN0IGtyZWYgKmtyZWYpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM3MC17XHRcdFx0XHQvKiBrcmVmIGNhbGxiYWNrIC0gc29mdGlycSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNzE6XHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSBrcmVmX3RvX3Z1YjMwMF9tbWNfaG9zdChrcmVmKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzcyOlx0c3RydWN0IG1tY19ob3N0ICptbWMgPSB2dWIzMDAtXHUwMDNlbW1jO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zNzMtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NDpcdHVzYl9mcmVlX3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9vdXRfdXJiKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc1Olx0dnViMzAwLVx1MDAzZWNvbW1hbmRfb3V0X3VyYiA9IE5VTEw7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NjpcdHVzYl9mcmVlX3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9yZXNfdXJiKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc3Olx0dnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYiA9IE5VTEw7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3ODpcdHVzYl9wdXRfZGV2KHZ1YjMwMC1cdTAwM2V1ZGV2KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzc5LVx0bW1jX2ZyZWVfaG9zdChtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zODAtXHQvKlxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozODE6XHQgKiBhbmQgaGVuY2UgYWxzbyBmcmVlcyB2dWIzMDBcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzgyLVx0ICogd2hpY2ggaXMgY29udGFpbmVkIGF0IHRoZSBlbmQgb2Ygc3RydWN0IG1tY1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzg1LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozODY6c3RhdGljIHZvaWQgdnViMzAwX3F1ZXVlX2NtbmRfd29yayhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM4Ny17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM4ODpcdGtyZWZfZ2V0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzg5Olx0aWYgKHF1ZXVlX3dvcmsoY21uZHdvcmtxdWV1ZSwgXHUwMDI2dnViMzAwLVx1MDAzZWNtbmR3b3JrKSkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zOTAtXHRcdC8qXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDEtXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDI6XHRcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDAzLVx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDA1LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDY6c3RhdGljIHZvaWQgdnViMzAwX3F1ZXVlX3BvbGxfd29yayhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsIGludCBkZWxheSlcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDA3LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDA4Olx0a3JlZl9nZXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDk6XHRpZiAocXVldWVfZGVsYXllZF93b3JrKHBvbGx3b3JrcXVldWUsIFx1MDAyNnZ1YjMwMC1cdTAwM2Vwb2xsd29yaywgZGVsYXkpKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQxMC1cdFx0Lypcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQyMS1cdFx0ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyMjpcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MjMtXHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MjUtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyNjpzdGF0aWMgdm9pZCB2dWIzMDBfcXVldWVfZGVhZF93b3JrKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDI3LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDI4Olx0a3JlZl9nZXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Mjk6XHRpZiAocXVldWVfd29yayhkZWFkd29ya3F1ZXVlLCBcdTAwMjZ2dWIzMDAtXHUwMDNlZGVhZHdvcmspKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQzMC1cdFx0Lypcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0MS1cdFx0ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ0MjpcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NDMtXHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz00NDY9c3RhdGljIHZvaWQgaXJxcG9sbF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDQ3LXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ0ODpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0OS1cdGlmICh1cmItXHUwMDNlc3RhdHVzKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTA6XHRcdHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSB1cmItXHUwMDNlc3RhdHVzO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTE6XHRjb21wbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxcG9sbF9jb21wbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ1Mi19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz00NTQ9c3RhdGljIHZvaWQgaXJxcG9sbF9vdXRfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDU1LXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1NjpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ1Ny1cdGlmICh1cmItXHUwMDNlc3RhdHVzKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1ODpcdFx0dnViMzAwLVx1MDAzZXVzYl90cmFuc3BvcnRfZmFpbCA9IHVyYi1cdTAwM2VzdGF0dXM7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1OTpcdFx0Y29tcGxldGUoXHUwMDI2dnViMzAwLVx1MDAzZWlycXBvbGxfY29tcGxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NjAtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ2My1cdFx0dW5zaWduZWQgaW50IHBpcGUgPVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjQ6XHRcdFx0dXNiX3JjdmJ1bGtwaXBlKHZ1YjMwMC1cdTAwM2V1ZGV2LCB2dWIzMDAtXHUwMDNlY21uZF9yZXNfZXApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjU6XHRcdHVzYl9maWxsX2J1bGtfdXJiKHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmIsIHZ1YjMwMC1cdTAwM2V1ZGV2LCBwaXBlLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjY6XHRcdFx0XHQgIFx1MDAyNnZ1YjMwMC1cdTAwM2VyZXNwLCBzaXplb2YodnViMzAwLVx1MDAzZXJlc3ApLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Njc6XHRcdFx0XHQgIGlycXBvbGxfcmVzX2NvbXBsZXRlZCwgdnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDY4Olx0XHR2dWIzMDAtXHUwMDNlY29tbWFuZF9yZXNfdXJiLVx1MDAzZWFjdHVhbF9sZW5ndGggPSAwO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Njk6XHRcdHJldCA9IHVzYl9zdWJtaXRfdXJiKHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmIsIEdGUF9BVE9NSUMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NzAtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDcxOlx0XHRcdHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSByZXQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3MjpcdFx0XHRjb21wbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxcG9sbF9jb21wbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ3My1cdFx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDc3LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Nzg6c3RhdGljIHZvaWQgc2VuZF9pcnFwb2xsKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDc5LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDgwOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX3BvbGx3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00ODEtXHRpbnQgcmV0dmFsO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00ODItXHRpbnQgdGltZW91dCA9IDB4RkZGRiBcdTAwMjYgKDB4MDAwMUZGRkYgLSBmaXJtd2FyZV9pcnFwb2xsX3RpbWVvdXQpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODM6XHR2dWIzMDAtXHUwMDNlY21uZC5wb2xsLmhlYWRlcl9zaXplID0gMjI7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4NDpcdHZ1YjMwMC1cdTAwM2VjbW5kLnBvbGwuaGVhZGVyX3R5cGUgPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODU6XHR2dWIzMDAtXHUwMDNlY21uZC5wb2xsLnBvcnRfbnVtYmVyID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg2Olx0dnViMzAwLVx1MDAzZWNtbmQucG9sbC5jb21tYW5kX3R5cGUgPSAyO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODc6XHR2dWIzMDAtXHUwMDNlY21uZC5wb2xsLnBvbGxfdGltZW91dF9sc2IgPSAweEZGIFx1MDAyNiAodW5zaWduZWQpdGltZW91dDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg4Olx0dnViMzAwLVx1MDAzZWNtbmQucG9sbC5wb2xsX3RpbWVvdXRfbXNiID0gMHhGRiBcdTAwMjYgKHVuc2lnbmVkKSh0aW1lb3V0IFx1MDAzZVx1MDAzZSA4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg5Olx0dXNiX2ZpbGxfYnVsa191cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfb3V0X3VyYiwgdnViMzAwLVx1MDAzZXVkZXYsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ5MDpcdFx0XHQgIHVzYl9zbmRidWxrcGlwZSh2dWIzMDAtXHUwMDNldWRldiwgdnViMzAwLVx1MDAzZWNtbmRfb3V0X2VwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTE6XHRcdFx0ICAsIFx1MDAyNnZ1YjMwMC1cdTAwM2VjbW5kLCBzaXplb2YodnViMzAwLVx1MDAzZWNtbmQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ5MjpcdFx0XHQgICwgaXJxcG9sbF9vdXRfY29tcGxldGVkLCB2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTM6XHRyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9vdXRfdXJiLCBHRlBfS0VSTkVMKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk0LVx0aWYgKDAgXHUwMDNlIHJldHZhbCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTU6XHRcdHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSByZXR2YWw7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ5NjpcdFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTc6XHRcdGNvbXBsZXRlKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk4LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MDMtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwNDpzdGF0aWMgdm9pZCBuZXdfc3lzdGVtX3BvcnRfc3RhdHVzKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTA1LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTA2Olx0aW50IG9sZF9jYXJkX3ByZXNlbnQgPSB2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MDctXHRpbnQgbmV3X2NhcmRfcHJlc2VudCA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwODpcdFx0KDB4MDAwMSBcdTAwMjYgdnViMzAwLVx1MDAzZXN5c3RlbV9wb3J0X3N0YXR1cy5wb3J0X2ZsYWdzKSA/IDEgOiAwO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MDk6XHR2dWIzMDAtXHUwMDNlcmVhZF9vbmx5ID1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTEwOlx0XHQoMHgwMDEwIFx1MDAyNiB2dWIzMDAtXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzLnBvcnRfZmxhZ3MpID8gMSA6IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUxMS1cdGlmIChuZXdfY2FyZF9wcmVzZW50IFx1MDAyNlx1MDAyNiAhb2xkX2NhcmRfcHJlc2VudCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MTI6XHRcdGRldl9pbmZvKFx1MDAyNnZ1YjMwMC1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7Y2FyZCBqdXN0IGluc2VydGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTEzOlx0XHR2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50ID0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE0Olx0XHR2dWIzMDAtXHUwMDNlYnVzX3dpZHRoID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTE1LVx0XHRpZiAoZGlzYWJsZV9vZmZsb2FkX3Byb2Nlc3NpbmcpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUxNjpcdFx0XHRzdHJzY3B5KHZ1YjMwMC1cdTAwM2V2dWJfbmFtZSwgXCYjMzQ7RU1QVFkgUHJvY2Vzc2luZyBEaXNhYmxlZFwmIzM0OyxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE3Olx0XHRcdFx0c2l6ZW9mKHZ1YjMwMC1cdTAwM2V2dWJfbmFtZSkpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTgtXHRcdGVsc2VcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE5Olx0XHRcdHZ1YjMwMC1cdTAwM2V2dWJfbmFtZVswXSA9IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUyMDpcdFx0bW1jX2RldGVjdF9jaGFuZ2UodnViMzAwLVx1MDAzZW1tYywgMSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyMS1cdH0gZWxzZSBpZiAoIW5ld19jYXJkX3ByZXNlbnQgXHUwMDI2XHUwMDI2IG9sZF9jYXJkX3ByZXNlbnQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTIyOlx0XHRkZXZfaW5mbyhcdTAwMjZ2dWIzMDAtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0O2NhcmQganVzdCBlamVjdGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTIzOlx0XHR2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50ID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTI0Olx0XHRtbWNfZGV0ZWN0X2NoYW5nZSh2dWIzMDAtXHUwMDNlbW1jLCAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTI1LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyOS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTMwOnN0YXRpYyB2b2lkIF9fYWRkX29mZmxvYWRlZF9yZWdfdG9fZmlmbyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUzMS1cdFx0XHRcdFx0c3RydWN0IG9mZmxvYWRfcmVnaXN0ZXJzX2FjY2Vzc1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTMzLXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM0Olx0dTggciA9IHZ1YjMwMC1cdTAwM2VmbltmdW5jXS5vZmZsb2FkX3BvaW50ICYjNDM7IHZ1YjMwMC1cdTAwM2VmbltmdW5jXS5vZmZsb2FkX2NvdW50O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MzU6XHRtZW1jcHkoXHUwMDI2dnViMzAwLVx1MDAzZWZuW2Z1bmNdLnJlZ1tNQVhSRUdNQVNLIFx1MDAyNiByXSwgcmVnaXN0ZXJfYWNjZXNzLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MzYtXHQgICAgICAgc2l6ZW9mKHN0cnVjdCBvZmZsb2FkX3JlZ2lzdGVyc19hY2Nlc3MpKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM3Olx0dnViMzAwLVx1MDAzZWZuW2Z1bmNdLm9mZmxvYWRfY291bnQgJiM0Mzs9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUzODpcdHZ1YjMwMC1cdTAwM2V0b3RhbF9vZmZsb2FkX2NvdW50ICYjNDM7PSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MzktfVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDAtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0MTpzdGF0aWMgdm9pZCBhZGRfb2ZmbG9hZGVkX3JlZyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU0Mi1cdFx0XHQgICAgICBzdHJ1Y3Qgb2ZmbG9hZF9yZWdpc3RlcnNfYWNjZXNzICpyZWdpc3Rlcl9hY2Nlc3MpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDctXHR1OCBmdW5jID0gKCgweDcwIFx1MDAyNiByZWdpc3Rlcl9hY2Nlc3MtXHUwMDNlY29tbWFuZF9ieXRlWzBdKSBcdTAwM2VcdTAwM2UgNCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0ODpcdHU4IHJlZ3MgPSB2dWIzMDAtXHUwMDNlZHluYW1pY19yZWdpc3Rlcl9jb3VudDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTQ5LVx0dTggaSA9IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1MDpcdHdoaWxlICgwIFx1MDAzYyByZWdzLS0gXHUwMDI2XHUwMDI2IDEgPT0gdnViMzAwLVx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0uYWN0aXZhdGUpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUxOlx0XHRpZiAodnViMzAwLVx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0uZnVuY19udW0gPT0gZnVuYyBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUyOlx0XHQgICAgdnViMzAwLVx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0uc2Rpb19yZWcgPT0gUmVnaXN0ZXIpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUzOlx0XHRcdGlmICh2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5wcmVwYXJlZCA9PSAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTQ6XHRcdFx0XHR2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5wcmVwYXJlZCA9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1NTpcdFx0XHR2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5yZXNwb25zZSA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU1Ni1cdFx0XHRcdHJlZ2lzdGVyX2FjY2Vzcy1cdTAwM2VSZXNwb25kX0J5dGVbMl07XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1NzpcdFx0XHR2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5yZWd2YWx1ZSA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU1OC1cdFx0XHRcdHJlZ2lzdGVyX2FjY2Vzcy1cdTAwM2VSZXNwb25kX0J5dGVbM107XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NjQtXHR9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU2NTpcdF9fYWRkX29mZmxvYWRlZF9yZWdfdG9fZmlmbyh2dWIzMDAsIHJlZ2lzdGVyX2FjY2VzcywgZnVuYyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2Ni19XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2Ny1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTY4OnN0YXRpYyB2b2lkIGNoZWNrX3Z1YjMwMF9wb3J0X3N0YXR1cyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2OS17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3MC1cdC8qXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MTpcdCAqIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MjpcdCAqIHZ1YjMwMF9kZWFkd29ya190aHJlYWQgb3IgdnViMzAwX2NtbmR3b3JrX3RocmVhZFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzMtXHQgKi9cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3NS1cdHJldHZhbCA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3NjpcdFx0dXNiX2NvbnRyb2xfbXNnKHZ1YjMwMC1cdTAwM2V1ZGV2LCB1c2JfcmN2Y3RybHBpcGUodnViMzAwLVx1MDAzZXVkZXYsIDApLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzctXHRcdFx0XHRHRVRfU1lTVEVNX1BPUlRfU1RBVFVTLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzgtXHRcdFx0XHRVU0JfRElSX0lOIHwgVVNCX1RZUEVfVkVORE9SIHwgVVNCX1JFQ0lQX0RFVklDRSxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTc5Olx0XHRcdFx0MHgwMDAwLCAweDAwMDAsIFx1MDAyNnZ1YjMwMC1cdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MDpcdFx0XHRcdHNpemVvZih2dWIzMDAtXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzKSwgMTAwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MTpcdGlmIChzaXplb2YodnViMzAwLVx1MDAzZXN5c3RlbV9wb3J0X3N0YXR1cykgPT0gcmV0dmFsKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODI6XHRcdG5ld19zeXN0ZW1fcG9ydF9zdGF0dXModnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTgzLX1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTg0LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODU6c3RhdGljIHZvaWQgX192dWIzMDBfaXJxcG9sbF9yZXNwb25zZShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU4Ni17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4NzpcdC8qIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTg4Olx0aWYgKHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmItXHUwMDNlYWN0dWFsX2xlbmd0aCA9PSAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01ODktXHRcdHJldHVybjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTkwLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTE6XHRzd2l0Y2ggKHZ1YjMwMC1cdTAwM2VyZXNwLmNvbW1vbi5oZWFkZXJfdHlwZSkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01OTItXHRjYXNlIFJFU1BPTlNFX0lOVEVSUlVQVDpcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTkzOlx0XHRtdXRleF9sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTQ6XHRcdGlmICh2dWIzMDAtXHUwMDNlaXJxX2VuYWJsZWQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5NTpcdFx0XHRtbWNfc2lnbmFsX3NkaW9faXJxKHZ1YjMwMC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01OTYtXHRcdGVsc2VcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk3Olx0XHRcdHZ1YjMwMC1cdTAwM2VpcnFzX3F1ZXVlZCAmIzQzOz0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk4Olx0XHR2dWIzMDAtXHUwMDNlaXJxX2Rpc2FibGVkID0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk5Olx0XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWlycV9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwMC1cdFx0YnJlYWs7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwMS1cdGNhc2UgUkVTUE9OU0VfRVJST1I6XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwMjpcdFx0aWYgKHZ1YjMwMC1cdTAwM2VyZXNwLmVycm9yLmVycm9yX2NvZGUgPT0gU0RfRVJST1JfTk9fREVWSUNFKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDM6XHRcdFx0Y2hlY2tfdnViMzAwX3BvcnRfc3RhdHVzKHZ1YjMwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwNC1cdFx0YnJlYWs7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwNS1cdGNhc2UgUkVTUE9OU0VfU1RBVFVTOlxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDY6XHRcdHZ1YjMwMC1cdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMgPSB2dWIzMDAtXHUwMDNlcmVzcC5zdGF0dXM7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwNzpcdFx0bmV3X3N5c3RlbV9wb3J0X3N0YXR1cyh2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDg6XHRcdGlmICghdnViMzAwLVx1MDAzZWNhcmRfcHJlc2VudClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjA5Olx0XHRcdHZ1YjMwMF9xdWV1ZV9wb2xsX3dvcmsodnViMzAwLCBIWiAvIDUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjEyLVx0e1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MTM6XHRcdGludCBvZmZsb2FkZWRfZGF0YV9sZW5ndGggPSB2dWIzMDAtXHUwMDNlcmVzcC5jb21tb24uaGVhZGVyX3NpemUgLSAzO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTQtXHRcdGludCByZWdpc3Rlcl9jb3VudCA9IG9mZmxvYWRlZF9kYXRhX2xlbmd0aCBcdTAwM2VcdTAwM2UgMztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxNi1cdFx0d2hpbGUgKHJlZ2lzdGVyX2NvdW50LS0pIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjE3Olx0XHRcdGFkZF9vZmZsb2FkZWRfcmVnKHZ1YjMwMCwgXHUwMDI2dnViMzAwLVx1MDAzZXJlc3AuaXJxLnJlZ1tyaV0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTgtXHRcdFx0cmkgJiM0Mzs9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxOS1cdFx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjA6XHRcdG11dGV4X2xvY2soXHUwMDI2dnViMzAwLVx1MDAzZWlycV9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYyMTpcdFx0aWYgKHZ1YjMwMC1cdTAwM2VpcnFfZW5hYmxlZClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjIyOlx0XHRcdG1tY19zaWduYWxfc2Rpb19pcnEodnViMzAwLVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYyMy1cdFx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjQ6XHRcdFx0dnViMzAwLVx1MDAzZWlycXNfcXVldWVkICYjNDM7PSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjU6XHRcdHZ1YjMwMC1cdTAwM2VpcnFfZGlzYWJsZWQgPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjY6XHRcdG11dGV4X3VubG9jayhcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxX211dGV4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjI3LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYzMC1cdHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjMxOlx0XHRpbnQgb2ZmbG9hZGVkX2RhdGFfbGVuZ3RoID0gdnViMzAwLVx1MDAzZXJlc3AuY29tbW9uLmhlYWRlcl9zaXplIC0gMztcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjMyLVx0XHRpbnQgcmVnaXN0ZXJfY291bnQgPSBvZmZsb2FkZWRfZGF0YV9sZW5ndGggXHUwMDNlXHUwMDNlIDM7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MzQtXHRcdHdoaWxlIChyZWdpc3Rlcl9jb3VudC0tKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYzNTpcdFx0XHRhZGRfb2ZmbG9hZGVkX3JlZyh2dWIzMDAsIFx1MDAyNnZ1YjMwMC1cdTAwM2VyZXNwLmlycS5yZWdbcmldKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjM2LVx0XHRcdHJpICYjNDM7PSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MzctXHRcdH1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjM4Olx0XHRtdXRleF9sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Mzk6XHRcdGlmICh2dWIzMDAtXHUwMDNlaXJxX2VuYWJsZWQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY0MDpcdFx0XHRtbWNfc2lnbmFsX3NkaW9faXJxKHZ1YjMwMC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDEtXHRcdGVsc2VcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQyOlx0XHRcdHZ1YjMwMC1cdTAwM2VpcnFzX3F1ZXVlZCAmIzQzOz0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQzOlx0XHR2dWIzMDAtXHUwMDNlaXJxX2Rpc2FibGVkID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQ0Olx0XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWlycV9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY0NS1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDctXHRjYXNlIFJFU1BPTlNFX05PX0lOVEVSUlVQVDpcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQ4Olx0XHR2dWIzMDBfcXVldWVfcG9sbF93b3JrKHZ1YjMwMCwgMSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY0OS1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NTQtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY1NTpzdGF0aWMgdm9pZCBfX2RvX3BvbGwoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NTYte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NTc6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfcG9sbHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY1OC1cdHVuc2lnbmVkIGxvbmcgY29tbXJldHZhbDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjU5Olx0bW9kX3RpbWVyKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICYjNDM7IEhaKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjYwOlx0aW5pdF9jb21wbGV0aW9uKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjYxOlx0c2VuZF9pcnFwb2xsKHZ1YjMwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2MjpcdGNvbW1yZXR2YWwgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2dnViMzAwLVx1MDAzZWlycXBvbGxfY29tcGxldGUsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY2My1cdFx0XHRcdFx0XHQgbXNlY3NfdG9famlmZmllcyg1MDApKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjY0Olx0aWYgKHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjY1LVx0XHQvKiBubyBuZWVkIHRvIGRvIGFueXRoaW5nICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY2Ni1cdH0gZWxzZSBpZiAoY29tbXJldHZhbCA9PSAwKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2NzpcdFx0dnViMzAwLVx1MDAzZXVzYl90aW1lZF9vdXQgPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Njg6XHRcdHVzYl9raWxsX3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9vdXRfdXJiKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjY5Olx0XHR1c2Jfa2lsbF91cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY3MC1cdH0gZWxzZSB7IC8qIGNvbW1yZXR2YWwgXHUwMDNlIDAgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjcxOlx0XHRfX3Z1YjMwMF9pcnFwb2xsX3Jlc3BvbnNlKHZ1YjMwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY3Mi1cdH1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY3Ny0gKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njc4OnN0YXRpYyB2b2lkIHZ1YjMwMF9wb2xsd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02Nzkte1x0XHRcdFx0LyogTk9UIGlycSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODA6XHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSBjb250YWluZXJfb2Yod29yayxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjgxOlx0XHRcdCAgICAgIHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QsIHBvbGx3b3JrLndvcmspO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODI6XHRpZiAoIXZ1YjMwMC1cdTAwM2VpbnRlcmZhY2UpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjgzOlx0XHRrcmVmX3B1dChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY4NC1cdFx0cmV0dXJuO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02ODUtXHR9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4NjpcdG11dGV4X2xvY2soXHUwMDI2dnViMzAwLVx1MDAzZWNtZF9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4NzpcdGlmICh2dWIzMDAtXHUwMDNlY21kKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4ODpcdFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODk6XHR9IGVsc2UgaWYgKCF2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50KSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY5MC1cdFx0Lyogbm8gbmVlZCB0byBkbyBhbnl0aGluZyAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTE6XHR9IGVsc2UgeyAvKiB2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5MjpcdFx0bXV0ZXhfbG9jayhcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxX211dGV4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjkzOlx0XHRpZiAoIXZ1YjMwMC1cdTAwM2VpcnFfZW5hYmxlZCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTQ6XHRcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTU6XHRcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWlycXNfcXVldWVkKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5NjpcdFx0XHR2dWIzMDAtXHUwMDNlaXJxc19xdWV1ZWQgLT0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk3Olx0XHRcdG1tY19zaWduYWxfc2Rpb19pcnEodnViMzAwLVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5ODpcdFx0XHRtb2RfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTk6XHRcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDA6XHRcdH0gZWxzZSB7IC8qIE5PVCB2dWIzMDAtXHUwMDNlaXJxc19xdWV1ZWQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAxOlx0XHRcdG11dGV4X3VubG9jayhcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxX211dGV4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAyOlx0XHRcdF9fZG9fcG9sbCh2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MDMtXHRcdH1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA0LVx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDU6XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWNtZF9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcwNjpcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA3LX1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA4LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDk6c3RhdGljIHZvaWQgdnViMzAwX2RlYWR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcxMC17XHRcdFx0XHQvKiBOT1QgaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxMTpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxMjpcdFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QsIGRlYWR3b3JrKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzEzOlx0aWYgKCF2dWIzMDAtXHUwMDNlaW50ZXJmYWNlKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxNDpcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MTUtXHRcdHJldHVybjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzE2LVx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MTc6XHRtdXRleF9sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VjbWRfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MTg6XHRpZiAodnViMzAwLVx1MDAzZWNtZCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MTktXHRcdC8qXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MjQtXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MjU6XHR9IGVsc2UgaWYgKHZ1YjMwMC1cdTAwM2VjYXJkX3ByZXNlbnQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI2Olx0XHRjaGVja192dWIzMDBfcG9ydF9zdGF0dXModnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI3Olx0fSBlbHNlIGlmICh2dWIzMDAtXHUwMDNlbW1jIFx1MDAyNlx1MDAyNiB2dWIzMDAtXHUwMDNlbW1jLVx1MDAzZWNhcmQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzI4LVx0XHQvKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzM0LVx0fSBlbHNlIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzM1Olx0XHRjaGVja192dWIzMDBfcG9ydF9zdGF0dXModnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzM2LVx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzc6XHRtb2RfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzg6XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWNtZF9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjczOTpcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQwLX1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQxLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDI6c3RhdGljIHZvaWQgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZChzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQzLXtcdFx0XHRcdC8qIHNvZnRpcnEgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQ0Olx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0gdGltZXJfY29udGFpbmVyX29mKHZ1YjMwMCwgdCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQ1LVx0XHRcdFx0XHRcdFx0ICAgIGluYWN0aXZpdHlfdGltZXIpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDY6XHRpZiAoIXZ1YjMwMC1cdTAwM2VpbnRlcmZhY2UpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQ3Olx0XHRrcmVmX3B1dChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0ODpcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWNtZCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDk6XHRcdG1vZF90aW1lcihcdTAwMjZ2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lciwgamlmZmllcyAmIzQzOyBIWik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1MC1cdH0gZWxzZSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc1MTpcdFx0dnViMzAwX3F1ZXVlX2RlYWRfd29yayh2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NTI6XHRcdG1vZF90aW1lcihcdTAwMjZ2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lciwgamlmZmllcyAmIzQzOyBIWik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1My1cdH1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1NS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzU2OnN0YXRpYyBpbnQgdnViMzAwX3Jlc3BvbnNlX2Vycm9yKHU4IGVycm9yX2NvZGUpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1Ny17XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03OTI9c3RhdGljIHZvaWQgY29tbWFuZF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzkzLXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NDpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5NS1cdGlmICh1cmItXHUwMDNlc3RhdHVzKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5Ni1cdFx0Lyogd2UgaGF2ZSB0byBsZXQgdGhlIGluaXRpYXRvciBoYW5kbGUgdGhlIGVycm9yICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NzpcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYi1cdTAwM2VhY3R1YWxfbGVuZ3RoID09IDApIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzk4LVx0XHQvKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODAxLVx0XHQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODAyOlx0fSBlbHNlIGlmICghdnViMzAwLVx1MDAzZWRhdGEpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODAzLVx0XHQvKiB0aGlzIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgKHR5cGljYWxseSBDTUQ1Mikgc3VjY2VlZGVkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgwNDpcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZXJlc3AuY29tbW9uLmhlYWRlcl90eXBlICE9IDB4MDIpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODA1LVx0XHQvKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODA4LVx0XHQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODA5Olx0fSBlbHNlIGlmICh2dWIzMDAtXHUwMDNldXJiKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMDpcdFx0dnViMzAwLVx1MDAzZWNtZC1cdTAwM2VlcnJvciA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMTpcdFx0XHR2dWIzMDBfcmVzcG9uc2VfZXJyb3IodnViMzAwLVx1MDAzZXJlc3AuZXJyb3IuZXJyb3JfY29kZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMjpcdFx0dXNiX3VubGlua191cmIodnViMzAwLVx1MDAzZXVyYik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgxMy1cdH0gZWxzZSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNDpcdFx0dnViMzAwLVx1MDAzZWNtZC1cdTAwM2VlcnJvciA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNTpcdFx0XHR2dWIzMDBfcmVzcG9uc2VfZXJyb3IodnViMzAwLVx1MDAzZXJlc3AuZXJyb3IuZXJyb3JfY29kZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNjpcdFx0dXNiX3NnX2NhbmNlbChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgxNy1cdH1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODE4Olx0Y29tcGxldGUoXHUwMDI2dnViMzAwLVx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1x0LyogZ290X3Jlc3BvbnNlX2luICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgxOS19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz04MjE9c3RhdGljIHZvaWQgY29tbWFuZF9vdXRfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODIyLXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyMzpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgyNC1cdGlmICh1cmItXHUwMDNlc3RhdHVzKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyNTpcdFx0Y29tcGxldGUoXHUwMDI2dnViMzAwLVx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjYtXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODI4LVx0XHR1bnNpZ25lZCBpbnQgcGlwZSA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyOTpcdFx0XHR1c2JfcmN2YnVsa3BpcGUodnViMzAwLVx1MDAzZXVkZXYsIHZ1YjMwMC1cdTAwM2VjbW5kX3Jlc19lcCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMDpcdFx0dXNiX2ZpbGxfYnVsa191cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYiwgdnViMzAwLVx1MDAzZXVkZXYsIHBpcGUsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMTpcdFx0XHRcdCAgXHUwMDI2dnViMzAwLVx1MDAzZXJlc3AsIHNpemVvZih2dWIzMDAtXHUwMDNlcmVzcCksXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMjpcdFx0XHRcdCAgY29tbWFuZF9yZXNfY29tcGxldGVkLCB2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MzM6XHRcdHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmItXHUwMDNlYWN0dWFsX2xlbmd0aCA9IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzNDpcdFx0cmV0ID0gdXNiX3N1Ym1pdF91cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYiwgR0ZQX0FUT01JQyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgzNS1cdFx0aWYgKHJldCA9PSAwKSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NDQtXHRcdFx0ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg0NTpcdFx0XHRjb21wbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlY29tbWFuZF9jb21wbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg0Ni1cdFx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODUyLSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NTM6c3RhdGljIHZvaWQgc25vb3BfYmxvY2tfc2l6ZV9hbmRfYnVzX3dpZHRoKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODU0LVx0XHRcdFx0XHQgICB1MzIgY21kX2FyZylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg1Ni1cdGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDAyMjIwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODU3Olx0XHR2dWIzMDAtXHUwMDNlZmJzWzFdID0gKGNtZF9hcmcgXHUwMDNjXHUwMDNjIDgpIHwgKDB4MDBGRiBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1sxXSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg1OC1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDIyMDAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NTk6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbMV0gPSAoMHhGRiBcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzFdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODYwLVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNDIyMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg2MTpcdFx0dnViMzAwLVx1MDAzZWZic1syXSA9IChjbWRfYXJnIFx1MDAzY1x1MDAzYyA4KSB8ICgweDAwRkYgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbMl0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjItXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA0MjAwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODYzOlx0XHR2dWIzMDAtXHUwMDNlZmJzWzJdID0gKDB4RkYgXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1syXSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg2NC1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDYyMjAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NjU6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbM10gPSAoY21kX2FyZyBcdTAwM2NcdTAwM2MgOCkgfCAoMHgwMEZGIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzNdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODY2LVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNjIwMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg2NzpcdFx0dnViMzAwLVx1MDAzZWZic1szXSA9ICgweEZGIFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbM10pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjgtXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA4MjIwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODY5Olx0XHR2dWIzMDAtXHUwMDNlZmJzWzRdID0gKGNtZF9hcmcgXHUwMDNjXHUwMDNjIDgpIHwgKDB4MDBGRiBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1s0XSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3MC1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDgyMDAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NzE6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbNF0gPSAoMHhGRiBcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzRdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODcyLVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQTIyMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3MzpcdFx0dnViMzAwLVx1MDAzZWZic1s1XSA9IChjbWRfYXJnIFx1MDAzY1x1MDAzYyA4KSB8ICgweDAwRkYgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbNV0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NzQtXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBBMjAwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODc1Olx0XHR2dWIzMDAtXHUwMDNlZmJzWzVdID0gKDB4RkYgXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1s1XSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3Ni1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEMyMjAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4Nzc6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbNl0gPSAoY21kX2FyZyBcdTAwM2NcdTAwM2MgOCkgfCAoMHgwMEZGIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzZdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODc4LVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQzIwMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3OTpcdFx0dnViMzAwLVx1MDAzZWZic1s2XSA9ICgweEZGIFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbNl0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODAtXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBFMjIwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODgxOlx0XHR2dWIzMDAtXHUwMDNlZmJzWzddID0gKGNtZF9hcmcgXHUwMDNjXHUwMDNjIDgpIHwgKDB4MDBGRiBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1s3XSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg4Mi1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEUyMDAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4ODM6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbN10gPSAoMHhGRiBcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzddKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODg0LVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDMgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwMDBFMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg4NTpcdFx0dnViMzAwLVx1MDAzZWJ1c193aWR0aCA9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg4Ni1cdGVsc2UgaWYgKCgweEZCRkZGRTAzIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDAwRTAyKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4ODc6XHRcdHZ1YjMwMC1cdTAwM2VidXNfd2lkdGggPSA0O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODgtfVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODktXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg5MDpzdGF0aWMgdm9pZCBzZW5kX2NvbW1hbmQoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTEte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTI6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg5MzpcdHN0cnVjdCBtbWNfY29tbWFuZCAqY21kID0gdnViMzAwLVx1MDAzZWNtZDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODk0Olx0c3RydWN0IG1tY19kYXRhICpkYXRhID0gdnViMzAwLVx1MDAzZWRhdGE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5NS1cdGludCByZXR2YWw7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTctXHR1OCByZXNwb25zZV90eXBlO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTg6XHRpZiAodnViMzAwLVx1MDAzZWFwcF9zcGVjKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5OS1cdFx0c3dpdGNoIChjbWQtXHUwMDNlb3Bjb2RlKSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDEtXHRcdFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTAyOlx0XHRcdHZ1YjMwMC1cdTAwM2VyZXNwX2xlbiA9IDY7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkwMy1cdFx0XHRpZiAoMHgwMDAwMDAwMCA9PSAoMHgwMDAwMDAwMyBcdTAwMjYgY21kLVx1MDAzZWFyZykpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNDpcdFx0XHRcdHZ1YjMwMC1cdTAwM2VidXNfd2lkdGggPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDUtXHRcdFx0ZWxzZSBpZiAoMHgwMDAwMDAwMiA9PSAoMHgwMDAwMDAwMyBcdTAwMjYgY21kLVx1MDAzZWFyZykpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNjpcdFx0XHRcdHZ1YjMwMC1cdTAwM2VidXNfd2lkdGggPSA0O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDctXHRcdFx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MDg6XHRcdFx0XHRkZXZfZXJyKFx1MDAyNnZ1YjMwMC1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTA5LVx0XHRcdFx0XHRcJiMzNDt1bmV4cGVjdGVkIEFDTUQ2IGJ1c193aWR0aD0lZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkxMy1cdFx0XHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MTQ6XHRcdFx0dnViMzAwLVx1MDAzZXJlc3BfbGVuID0gNjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTE1LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTE3LVx0XHRcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkxODpcdFx0XHR2dWIzMDAtXHUwMDNlcmVzcF9sZW4gPSA2O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MTktXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MjEtXHRcdFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTIyOlx0XHRcdHZ1YjMwMC1cdTAwM2VyZXNwX2xlbiA9IDY7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyMy1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyNS1cdFx0XHRyZXNwb25zZV90eXBlID0gU0RSVF8zO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MjY6XHRcdFx0dnViMzAwLVx1MDAzZXJlc3BfbGVuID0gNjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTI3LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTI5LVx0XHRcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkzMDpcdFx0XHR2dWIzMDAtXHUwMDNlcmVzcF9sZW4gPSA2O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzEtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzMtXHRcdFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTM0Olx0XHRcdHZ1YjMwMC1cdTAwM2VyZXNwX2xlbiA9IDY7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkzNS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkzNy1cdFx0XHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5Mzg6XHRcdFx0dnViMzAwLVx1MDAzZXJlc3BfbGVuID0gNjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTM5LVx0XHRcdGJyZWFrO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05NDAtXHRcdGRlZmF1bHQ6XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjk0MTpcdFx0XHR2dWIzMDAtXHUwMDNlcmVzcF9sZW4gPSAwO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05NDItXHRcdFx0Y21kLVx1MDAzZWVycm9yID0gLUVJTlZBTDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTQzOlx0XHRcdGNvbXBsZXRlKFx1MDAyNnZ1YjMwMC1cdTAwM2Vjb21tYW5kX2NvbXBsZXRlKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mjg2OQoJCQkJCQkJb3V0cHV0OiA1NgoJCQkJCQkJdGhvdWdodHM6IDk2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtZZXMsIGB2dWIzMDBgIGlzIGluZGVlZCBhbiBTRElPLXRvLVVTQiBicmlkZ2UgZHJpdmVyLiYjMzQ7IFRoYXQmIzM5O3MgdGhlIGZvdW5kYXRpb24uIFRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IFN5emthbGxlciBjYW4gZW11bGF0ZSB0aGlzIGRldmljZSB1c2luZyBgZHVtbXlfaGNkYCAoVVNCKSwgd2hpY2ggaXMgY3J1Y2lhbC4gV2hlbiBTeXprYWxsZXIgZW11bGF0ZXMgYHZ1YjMwMGAsIHRoZSBkcml2ZXIgcmVnaXN0ZXJzIGFuIE1NQyBob3N0LCBhbmQgdGhlbiB3ZSBjYW4gc2ltdWxhdGUgYW4gU0RJTyBjYXJkLCBsaWtlIGBicmNtZm1hY2AsIGJ5IHNlbmRpbmcgYXBwcm9wcmlhdGUgcmVzcG9uc2VzIHRvIHRoZSBgdnViMzAwYCBkcml2ZXIuIEZhbnRhc3RpYyEgVGhpcyBjb25maXJtcyB0aGF0IHRoZSBgYnJjbWZtYWNgIFNESU8gaW50ZXJmYWNlICppcyogYWNjZXNzaWJsZSB3aXRoaW4gU3l6a2FsbGVyJiMzOTtzIGVtdWxhdGVkIGVudmlyb25tZW50IQoKVGhlIHBhdGNoIGl0c2VsZiBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgaXNzdWUgd2l0aGluIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIE5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBhcmlzZXM6IElzIGBicmNtZm1hY2AgZXZlbiBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nPyBMZXQmIzM5O3MgY2hlY2sgdGhlIGNyaXRlcmlhLiBUaGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZnkgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBjb25jZXJucyAmIzM0O3ZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7CgpgYnJjbWZtYWNgIGlzIGEgdmVuZG9yLXNwZWNpZmljIFdpLUZpIGRyaXZlciwgeWVzLCBidXQgaXQgaW50ZXJmYWNlcyB2aWEgU0RJTy9VU0IvUENJZS4gQnV0IGdpdmVuIHRoYXQgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSBVU0IgKGVpdGhlciBkaXJlY3RseSBvciB0aHJvdWdoIHRoZSBgdnViMzAwYCBicmlkZ2UsIGFzIHByb3ZlbiBieSBTeXprYWxsZXImIzM5O3MgY2FwYWJpbGl0aWVzKSwgaXQgaXNuJiMzOTt0IGEgZHJpdmVyIHRoYXQgbWFuZGF0ZXMgc3BlY2lhbGl6ZWQgaGFyZHdhcmUuIEl0JiMzOTtzIGFjY2Vzc2libGUgaW4gdGhlIHZpcnR1YWxpemVkIGVudmlyb25tZW50ISBTbywgYFdvcnRoRnV6emluZz10cnVlYC4KCk5vdywgbGV0JiMzOTtzIGV4YW1pbmUgdGhlIHBhdGNoIG1vcmUgY2xvc2VseS4gSXQgaW52b2x2ZXMgYSBjb2RlIGNoYW5nZSBpbiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB3YXMgc3RydWN0dXJlZCB0byBjaGVjayBpZiBhIGNvbnRyb2wgZnJhbWUgd2FzIGJlaW5nIHByb2Nlc3NlZCwgYW5kIGJhc2VkIG9uIHRoaXMgY29uZGl0aW9uLCB3b3VsZCBlaXRoZXIgZnJlZSB0aGUgYGJ1ZmAgYW5kIGBnb3RvIGRvbmVgLCBvciBjb250aW51ZSBwcm9jZXNzaW5nLiBDcml0aWNhbGx5LCB0aGUgb3JpZ2luYWwgY29kZSBoYWQgdGhlIHBvdGVudGlhbCBtZW1vcnkgbGVhaywgd2hlcmUgdGhlIGBidWZgIHBvaW50ZXIgY291bGQgYmUgdXNlZCBhbmQgKm5vdCogZnJlZWQuIFRoZSBwYXRjaCBlc3NlbnRpYWxseSByZWZhY3RvcnMgdGhpcyBsb2dpYywgc2V0dGluZyBgYnVmID0gTlVMTGAgYW5kIHRoZW4gY2FsbGluZyBgdmZyZWUoYnVmKWAuIElmIGl0IHRvb2sgdGhlIGBpZiAoYnVzLSZndDtyeGN0bClgIGJyYW5jaCwgaXQgc3RpbGwgZW5kcyB1cCBhdCB0aGUgc2FtZSBsaW5lIHRoYXQgY2FsbHMgYHZmcmVlKGJ1ZilgLgoKSG93ZXZlciwgdGhlIGludGVudGlvbiBvZiB0aGUgcGF0Y2ggaXMgbm90IGNsZWFyLiBJcyBpdCBhZGRyZXNzaW5nIGEgZG91YmxlIGZyZWU/IE5vLiBJZiBgYnVzLSZndDtyeGN0bGAgaXMgdHJ1ZSwgaXQgdXNlZCB0byBmcmVlIGBidWZgLCBhbmQgbm93IGl0IGRvZXMsIHNvIGl0IGlzIGxvZ2ljYWxseSB0aGUgc2FtZS4gVGhlIGBidWYgPSBOVUxMYCBhbmQgdGhlbiBgdmZyZWUoYnVmKWAgbWVhbnMgdGhlIHNhbWUgdGhpbmcuIFRoZSBvcmlnaW5hbCBjb2RlIGNvdWxkICpwb3RlbnRpYWxseSogaGF2ZSBhIG1lbW9yeSBsZWFrIGJlY2F1c2UgaWYgdGhlIGNvbnRyb2wgZnJhbWUgd2FzbiYjMzk7dCBhY3RpdmUsIHRoZW4gaXQgd291bGQgbm90IGZyZWUgdGhlIGJ1ZmZlci4gVGhlIHBhdGNoZWQgY29kZSBpcyBsb2dpY2FsbHkgZXF1aXZhbGVudDsgbm8gZG91YmxlLWZyZWUuCgpJJiMzOTttIHByZXR0eSBjZXJ0YWluIHRoZXJlIGlzIG5vIGxvZ2ljIGVycm9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNzU2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxNzU2Olx0c3RhdGljIHZvaWRcbjE3NTc6XHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxuMTc1ODpcdHtcbjE3NTk6XHRcdHVpbnQgcmRsZW4sIHBhZDtcbjE3NjA6XHRcdHU4ICpidWYgPSBOVUxMLCAqcmJ1ZjtcbjE3NjE6XHRcdGludCBzZHJldDtcbjE3NjI6XHRcbjE3NjM6XHRcdGJyY21mX2RiZyhTRElPLCBcJiMzNDtFbnRlclxcblwmIzM0Oyk7XG4xNzY0Olx0XHRpZiAoYnVzLVx1MDAzZXJ4YmxlbilcbjE3NjU6XHRcdFx0YnVmID0gdnphbGxvYyhidXMtXHUwMDNlcnhibGVuKTtcbjE3NjY6XHRcdGlmICghYnVmKVxuMTc2NzpcdFx0XHRnb3RvIGRvbmU7XG4xNzY4Olx0XG4xNzY5Olx0XHRyYnVmID0gYnVzLVx1MDAzZXJ4YnVmO1xuMTc3MDpcdFx0cGFkID0gKCh1bnNpZ25lZCBsb25nKXJidWYgJSBidXMtXHUwMDNlaGVhZF9hbGlnbik7XG4xNzcxOlx0XHRpZiAocGFkKVxuMTc3MjpcdFx0XHRyYnVmICYjNDM7PSAoYnVzLVx1MDAzZWhlYWRfYWxpZ24gLSBwYWQpO1xuMTc3MzpcdFxuMTc3NDpcdFx0LyogQ29weSB0aGUgYWxyZWFkeS1yZWFkIHBvcnRpb24gb3ZlciAqL1xuMTc3NTpcdFx0bWVtY3B5KGJ1ZiwgaGRyLCBCUkNNRl9GSVJTVFJFQUQpO1xuMTc3NjpcdFx0aWYgKGxlbiBcdTAwM2M9IEJSQ01GX0ZJUlNUUkVBRClcbjE3Nzc6XHRcdFx0Z290byBnb3Rwa3Q7XG4xNzc4Olx0XG4xNzc5Olx0XHQvKiBSYWlzZSByZGxlbiB0byBuZXh0IFNESU8gYmxvY2sgdG8gYXZvaWQgdGFpbCBjb21tYW5kICovXG4xNzgwOlx0XHRyZGxlbiA9IGxlbiAtIEJSQ01GX0ZJUlNUUkVBRDtcbjE3ODE6XHRcdGlmIChidXMtXHUwMDNlcm91bmR1cCBcdTAwMjZcdTAwMjYgYnVzLVx1MDAzZWJsb2Nrc2l6ZSBcdTAwMjZcdTAwMjYgKHJkbGVuIFx1MDAzZSBidXMtXHUwMDNlYmxvY2tzaXplKSkge1xuMTc4MjpcdFx0XHRwYWQgPSBidXMtXHUwMDNlYmxvY2tzaXplIC0gKHJkbGVuICUgYnVzLVx1MDAzZWJsb2Nrc2l6ZSk7XG4xNzgzOlx0XHRcdGlmICgocGFkIFx1MDAzYz0gYnVzLVx1MDAzZXJvdW5kdXApIFx1MDAyNlx1MDAyNiAocGFkIFx1MDAzYyBidXMtXHUwMDNlYmxvY2tzaXplKSBcdTAwMjZcdTAwMjZcbjE3ODQ6XHRcdFx0ICAgICgobGVuICYjNDM7IHBhZCkgXHUwMDNjIGJ1cy1cdTAwM2VzZGlvZGV2LVx1MDAzZWJ1c19pZi1cdTAwM2VtYXhjdGwpKVxuMTc4NTpcdFx0XHRcdHJkbGVuICYjNDM7PSBwYWQ7XG4xNzg2Olx0XHR9IGVsc2UgaWYgKHJkbGVuICUgYnVzLVx1MDAzZWhlYWRfYWxpZ24pIHtcbjE3ODc6XHRcdFx0cmRsZW4gJiM0Mzs9IGJ1cy1cdTAwM2VoZWFkX2FsaWduIC0gKHJkbGVuICUgYnVzLVx1MDAzZWhlYWRfYWxpZ24pO1xuMTc4ODpcdFx0fVxuMTc4OTpcdFxuMTc5MDpcdFx0LyogRHJvcCBpZiB0aGUgcmVhZCBpcyB0b28gYmlnIG9yIGl0IGV4Y2VlZHMgb3VyIG1heGltdW0gKi9cbjE3OTE6XHRcdGlmICgocmRsZW4gJiM0MzsgQlJDTUZfRklSU1RSRUFEKSBcdTAwM2UgYnVzLVx1MDAzZXNkaW9kZXYtXHUwMDNlYnVzX2lmLVx1MDAzZW1heGN0bCkge1xuMTc5MjpcdFx0XHRicmNtZl9lcnIoXCYjMzQ7JWQtYnl0ZSBjb250cm9sIHJlYWQgZXhjZWVkcyAlZC1ieXRlIGJ1ZmZlclxcblwmIzM0OyxcbjE3OTM6XHRcdFx0XHQgIHJkbGVuLCBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKTtcbjE3OTQ6XHRcdFx0YnJjbWZfc2Rpb19yeGZhaWwoYnVzLCBmYWxzZSwgZmFsc2UpO1xuMTc5NTpcdFx0XHRnb3RvIGRvbmU7XG4xNzk2Olx0XHR9XG4xNzk3Olx0XG4xNzk4Olx0XHRpZiAoKGxlbiAtIGRvZmYpIFx1MDAzZSBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKSB7XG4xNzk5Olx0XHRcdGJyY21mX2VycihcJiMzNDslZC1ieXRlIGN0bCBmcmFtZSAoJWQtYnl0ZSBjdGwgZGF0YSkgZXhjZWVkcyAlZC1ieXRlIGxpbWl0XFxuXCYjMzQ7LFxuMTgwMDpcdFx0XHRcdCAgbGVuLCBsZW4gLSBkb2ZmLCBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKTtcbjE4MDE6XHRcdFx0YnVzLVx1MDAzZXNkY250LnJ4X3Rvb2xvbmcmIzQzOyYjNDM7O1xuMTgwMjpcdFx0XHRicmNtZl9zZGlvX3J4ZmFpbChidXMsIGZhbHNlLCBmYWxzZSk7XG4xODAzOlx0XHRcdGdvdG8gZG9uZTtcbjE4MDQ6XHRcdH1cbjE4MDU6XHRcbjE4MDY6XHRcdC8qIFJlYWQgcmVtYWluIG9mIGZyYW1lIGJvZHkgKi9cbjE4MDc6XHRcdHNkcmV0ID0gYnJjbWZfc2Rpb2RfcmVjdl9idWYoYnVzLVx1MDAzZXNkaW9kZXYsIHJidWYsIHJkbGVuKTtcbjE4MDg6XHRcdGJ1cy1cdTAwM2VzZGNudC5mMnJ4ZGF0YSYjNDM7JiM0Mzs7XG4xODA5Olx0XG4xODEwOlx0XHQvKiBDb250cm9sIGZyYW1lIGZhaWx1cmVzIG5lZWQgcmV0cmFuc21pc3Npb24gKi9cbjE4MTE6XHRcdGlmIChzZHJldCBcdTAwM2MgMCkge1xuMTgxMjpcdFx0XHRicmNtZl9lcnIoXCYjMzQ7cmVhZCAlZCBjb250cm9sIGJ5dGVzIGZhaWxlZDogJWRcXG5cJiMzNDssXG4xODEzOlx0XHRcdFx0ICByZGxlbiwgc2RyZXQpO1xuMTgxNDpcdFx0XHRidXMtXHUwMDNlc2RjbnQucnhjX2Vycm9ycyYjNDM7JiM0Mzs7XG4xODE1Olx0XHRcdGJyY21mX3NkaW9fcnhmYWlsKGJ1cywgdHJ1ZSwgdHJ1ZSk7XG4xODE2Olx0XHRcdGdvdG8gZG9uZTtcbjE4MTc6XHRcdH0gZWxzZVxuMTgxODpcdFx0XHRtZW1jcHkoYnVmICYjNDM7IEJSQ01GX0ZJUlNUUkVBRCwgcmJ1ZiwgcmRsZW4pO1xuMTgxOTpcdFxuMTgyMDpcdGdvdHBrdDpcbjE4MjE6XHRcbjE4MjI6XHRcdGJyY21mX2RiZ19oZXhfZHVtcChCUkNNRl9CWVRFU19PTigpIFx1MDAyNlx1MDAyNiBCUkNNRl9DVExfT04oKSxcbjE4MjM6XHRcdFx0XHQgICBidWYsIGxlbiwgXCYjMzQ7UnhDdHJsOlxcblwmIzM0Oyk7XG4xODI0Olx0XG4xODI1Olx0XHQvKiBQb2ludCB0byB2YWxpZCBkYXRhIGFuZCBpbmRpY2F0ZSBpdHMgbGVuZ3RoICovXG4xODI2Olx0XHRzcGluX2xvY2tfYmgoXHUwMDI2YnVzLVx1MDAzZXJ4Y3RsX2xvY2spO1xuMTgyNzpcdFx0aWYgKGJ1cy1cdTAwM2VyeGN0bCkge1xuMTgyODpcdFx0XHRicmNtZl9lcnIoXCYjMzQ7bGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cXG5cJiMzNDspO1xuMTgyOTpcdFx0XHRzcGluX3VubG9ja19iaChcdTAwMjZidXMtXHUwMDNlcnhjdGxfbG9jayk7XG4xODMwOlx0XHRcdGdvdG8gZG9uZTtcbjE4MzE6XHRcdH1cbjE4MzI6XHRcdGJ1cy1cdTAwM2VyeGN0bCA9IGJ1ZiAmIzQzOyBkb2ZmO1xuMTgzMzpcdFx0YnVzLVx1MDAzZXJ4Y3RsX29yaWcgPSBidWY7XG4xODM0Olx0XHRidXMtXHUwMDNlcnhsZW4gPSBsZW4gLSBkb2ZmO1xuMTgzNTpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2YnVzLVx1MDAzZXJ4Y3RsX2xvY2spO1xuMTgzNjpcdFx0YnVmID0gTlVMTDtcbjE4Mzc6XHRcbjE4Mzg6XHRkb25lOlxuMTgzOTpcdFx0LyogQXdha2UgYW55IHdhaXRlcnMgKi9cbjE4NDA6XHRcdGJyY21mX3NkaW9fZGNtZF9yZXNwX3dha2UoYnVzKTtcbjE4NDE6XHRcdHZmcmVlKGJ1Zik7XG4xODQyOlx0fVxuMTg0MzpcdFxuMTg0NDpcdC8qIFBhZCByZWFkIHRvIGJsb2Nrc2l6ZSBmb3IgZWZmaWNpZW5jeSAqL1xuMTg0NTpcdHN0YXRpYyB2b2lkIGJyY21mX3NkaW9fcGFkKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHUxNiAqcGFkLCB1MTYgKnJkbGVuKVxuMTg0NjpcdHtcbjE4NDc6XHRcdGlmIChidXMtXHUwMDNlcm91bmR1cCBcdTAwMjZcdTAwMjYgYnVzLVx1MDAzZWJsb2Nrc2l6ZSBcdTAwMjZcdTAwMjYgKnJkbGVuIFx1MDAzZSBidXMtXHUwMDNlYmxvY2tzaXplKSB7XG4xODQ4Olx0XHRcdCpwYWQgPSBidXMtXHUwMDNlYmxvY2tzaXplIC0gKCpyZGxlbiAlIGJ1cy1cdTAwM2VibG9ja3NpemUpO1xuMTg0OTpcdFx0XHRpZiAoKnBhZCBcdTAwM2M9IGJ1cy1cdTAwM2Vyb3VuZHVwIFx1MDAyNlx1MDAyNiAqcGFkIFx1MDAzYyBidXMtXHUwMDNlYmxvY2tzaXplIFx1MDAyNlx1MDAyNlxuMTg1MDpcdFx0XHQgICAgKnJkbGVuICYjNDM7ICpwYWQgJiM0MzsgQlJDTUZfRklSU1RSRUFEIFx1MDAzYyBNQVhfUlhfREFUQVNaKVxuMTg1MTpcdFx0XHRcdCpyZGxlbiAmIzQzOz0gKnBhZDtcbjE4NTI6XHRcdH0gZWxzZSBpZiAoKnJkbGVuICUgYnVzLVx1MDAzZWhlYWRfYWxpZ24pIHtcbjE4NTM6XHRcdFx0KnJkbGVuICYjNDM7PSBidXMtXHUwMDNlaGVhZF9hbGlnbiAtICgqcmRsZW4gJSBidXMtXHUwMDNlaGVhZF9hbGlnbik7XG4xODU0Olx0XHR9XG4xODU1Olx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjIzNAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDQwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNZW1vcnkgTGVhayBGaXggaW4gYnJjbWZtYWMgRHJpdmVyKioKCk9rYXksIHNvIGJlZm9yZSB0aGlzIHBhdGNoLCBJIHNlZSB0aGVyZSB3ZXJlIHNldmVyYWwgaW5zdGFuY2VzIG9mIGBnb3RvIGRvbmU7YCBzdGF0ZW1lbnRzIHNjYXR0ZXJlZCBhcm91bmQsIGFuZCB0aGV5IHdlcmUgbGVha2luZyBgYnVmYCEgRm9yIGV4YW1wbGUsIHRha2UgdGhpcyBzbmlwcGV0OgoKYGBgYwoJaWYgKChyZGxlbiAmIzQzOyBCUkNNRl9GSVJTVFJFQUQpICZndDsgYnVzLSZndDtzZGlvZGV2LSZndDtidXNfaWYtJmd0O21heGN0bCkgewoJCWJyY21mX2VycigmIzM0OyVkLWJ5dGUgY29udHJvbCByZWFkIGV4Y2VlZHMgJWQtYnl0ZSBidWZmZXJcbiYjMzQ7LAoJCQkgIHJkbGVuLCBidXMtJmd0O3NkaW9kZXYtJmd0O2J1c19pZi0mZ3Q7bWF4Y3RsKTsKCQlicmNtZl9zZGlvX3J4ZmFpbChidXMsIGZhbHNlLCBmYWxzZSk7CgkJZ290byBkb25lOwoJfQpgYGAKCklmIHRoYXQgYGlmYCBjb25kaXRpb24gd2FzIHRydWUsIGBidWZgIHdhcyBhbGxvY2F0ZWQsIGJ1dCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBkb25lOmAgKndpdGhvdXQqIGZyZWVpbmcgaXQuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIG1lbW9yeSBsZWFrLgoKVGhpcyBwYXRjaCwgdGhhbmtmdWxseSwgYWRkcmVzc2VzIHRoZSBpc3N1ZSBieSBhZGRpbmcgYHZmcmVlKGJ1ZilgIGF0IGBkb25lOmAgYW5kIHNldHRpbmcgYGJ1ZiA9IE5VTExgIG9uIHRoZSBzdWNjZXNzZnVsIHBhdGguIFRoaXMgaXMgYSBzb2xpZCBmaXggZm9yIHRoZXNlIGVycm9yIHBhdGhzLgoKTm93LCBzaG91bGQgSSBjb25zaWRlciBmdXp6aW5nIHRoaXM/IEFic29sdXRlbHkhIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBmaXhpbmcgYSBtZW1vcnkgbGVhay4gQW5kIHRoZSBgYnJjbWZtYWNgIGRyaXZlciBpcyByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24uIFRoZSBkcml2ZXIgbmFtZSBpcyBgYnJjbWZtYWNgLgoKV2hhdCBjb25maWdzIGRvIEkgbmVlZCB0byB0cmlnZ2VyIHRoaXM/IEkmIzM5O2xsIG5lZWQgYENPTkZJR19CUkNNRk1BQ2AsIG9idmlvdXNseS4gU2luY2UgdGhlIGNvZGUgaW4gcXVlc3Rpb24sIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGlzIHJlbGF0ZWQgdG8gU0RJTywgSSYjMzk7bGwgYWxzbyBuZWVkIGBDT05GSUdfQlJDTUZNQUNfU0RJT2AuIEFuZCwgc2luY2UgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSBVU0IgZW11bGF0aW9uLCBJJiMzOTtsbCBuZWVkIGBDT05GSUdfQlJDTUZNQUNfVVNCYC4gVGhlbiwgdGhlIGNydWNpYWwgYml0IGZvciBzeXprYWxsZXIsIEkmIzM5O2xsIG5lZWQgYENPTkZJR19NTUNfVlVCMzAwYCB0byBlbXVsYXRlIHRoZSBTRElPIGhvc3QgY29udHJvbGxlciB2aWEgVVNCLgoKV2FpdCwgaXNuJiMzOTt0IGBicmNtZm1hY2AgYWxzbyBkaXJlY3RseSBwcm9iZWQgdGhyb3VnaCBVU0IgKGBDT05GSUdfQlJDTUZNQUNfVVNCYCk/IEJ1dCwgdGhlIHZ1bG5lcmFibGUgY29kZSBsaXZlcyBpbiBgc2Rpby5jYCwgd2hpY2ggaXMgb25seSBjb21waWxlZCBpZiBgQ09ORklHX0JSQ01GTUFDX1NESU9gIGlzIGVuYWJsZWQuIEFuZCwgSSBuZWVkIGFuIFNESU8gaG9zdCBjb250cm9sbGVyIHRvIHJlYWNoIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGFuZCB0aGF0JiMzOTtzIGV4YWN0bHkgd2hhdCBgQ09ORklHX01NQ19WVUIzMDBgIHByb3ZpZGVzIGFzIHRoZSBVU0ItdG8tU0RJTyBicmlkZ2UgdGhhdCBzeXprYWxsZXIgdXNlcy4gUmlnaHQsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZm9yIGBicmNtZm1hY2AgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSQ01GTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxOmNvbmZpZyBCUkNNRk1BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTUtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE3OmNvbmZpZyBCUkNNRk1BQ19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7U0RJTyBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7VVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy00MS1cdGJvb2wgXCYjMzQ7UENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3ODQxCgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkNoZWNraW5nIEJSQ01GTUFDX1NESU8gRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYEJSQ01GTUFDX1NESU9gIHNpdHVhdGlvbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IHRyYWNlIGFsbCB0aGUgZGVwZW5kZW5jaWVzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb2J2aW91cyBjb25mbGljdHMuIEFyZSB0aGVyZSBhbnkgb3RoZXIgbW9kdWxlcywgZHJpdmVycywgb3Igc3lzdGVtIHNlcnZpY2VzIHRoYXQgcmVseSBvbiwgb3IgYXJlIGRlcGVuZGVkIHVwb24gYnksIGBCUkNNRk1BQ19TRElPYD8gSSYjMzk7bSB0aGlua2luZyBhYm91dCBjbG9jayBjb250cm9sLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIFNESU8gYnVzIHNwZWNpZmljcywgYW5kIHBvdGVudGlhbGx5IHBvd2VyIG1hbmFnZW1lbnQg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cy4gSeKAmWxsIG1ha2UgYSBub3RlIG9mIGFueXRoaW5nIHVuZXhwZWN0ZWQgb3IgdW5jbGVhciBpbW1lZGlhdGVseS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgaXRzIGRlcGVuZGVuY2llcyBhcmUgY29ycmVjdGx5IGNvbmZpZ3VyZWQgYW5kIGlmIHRoZXJlJiMzOTtzIGFueSBjaXJjdWxhciBkZXBlbmRlbmN5IGlzc3Vlcy4gVGltZSB0byBkaWcgaW50byB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgc291cmNlIGNvZGUgdG8gdmVyaWZ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJDTUZNQUNfU0RJTyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MTQ9Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVx0Ym9vbCBcJiMzNDtTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgyNTcKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBicmNtZm1hYyBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gaG93IHRoaXMgYGJyY21mbWFjYCBkcml2ZXIgaXMgY29uZmlndXJlZCB3aXRoaW4gdGhlIGJyb2FkZXIga2VybmVsLiBNeSBpbnN0aW5jdHMgdGVsbCBtZSB0aGUgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIGZpbmQgdGhlIGdvb2Qgc3R1ZmYgYXJvdW5kIGxpbmUgMTcgb2YgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnYC4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIG92ZXJ2aWV3IG9mIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gdGhlIEJyb2FkY29tIHdpcmVsZXNzIGRyaXZlci4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0IGdvb2RpZXMgSSBjYW4gdW5lYXJ0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBCUkNNRk1BQ1xuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuICAgMzpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNDpcdFx0c2VsZWN0IEJSQ01VVElMXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gQnJvYWRjb21cbiAgIDc6XHRcdCAgRnVsbE1BQyBjaGlwc2V0cy4gSXQgaGFzIHRvIHdvcmsgd2l0aCBhdCBsZWFzdCBvbmUgb2YgdGhlIGJ1c1xuICAgODpcdFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZFxuICAgOTpcdFx0ICBicmNtZm1hYy5rby5cbiAgMTA6XHRcbiAgMTE6XHRjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuICAxMjpcdFx0Ym9vbFxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcbiAgMTU6XHRcdGJvb2xcbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgQlJDTUZNQUNfU0RJT1xuICAxODpcdFx0Ym9vbCBcJiMzNDtTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbiAgMTk6XHRcdGRlcGVuZHMgb24gKE1NQyA9IHkgfHwgTU1DID0gQlJDTUZNQUMpXG4gIDIwOlx0XHRkZXBlbmRzIG9uIEJSQ01GTUFDXG4gIDIxOlx0XHRzZWxlY3QgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuICAyMjpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAyMzpcdFx0ZGVmYXVsdCB5XG4gIDI0Olx0XHRoZWxwXG4gIDI1Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBCcm9hZGNvbVxuICAyNjpcdFx0ICBJRUVFODAyLjExbiBlbWJlZGRlZCBGdWxsTUFDIFdMQU4gZHJpdmVyLiBTYXkgWSBpZiB5b3Ugd2FudCB0b1xuICAyNzpcdFx0ICB1c2UgdGhlIGRyaXZlciBmb3IgYSBTRElPIHdpcmVsZXNzIGNhcmQuXG4gIDI4Olx0XG4gIDI5Olx0Y29uZmlnIEJSQ01GTUFDX1VTQlxuICAzMDpcdFx0Ym9vbCBcJiMzNDtVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuICAzMTpcdFx0ZGVwZW5kcyBvbiAoVVNCID0geSB8fCBVU0IgPSBCUkNNRk1BQylcbiAgMzI6XHRcdGRlcGVuZHMgb24gQlJDTUZNQUNcbiAgMzM6XHRcdHNlbGVjdCBCUkNNRk1BQ19QUk9UT19CQ0RDXG4gIDM0Olx0XHRzZWxlY3QgRldfTE9BREVSXG4gIDM1Olx0XHRoZWxwXG4gIDM2Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEJyb2FkY29tXG4gIDM3Olx0XHQgIElFRUU4MDIuMTFuIGVtYmVkZGVkIEZ1bGxNQUMgV0xBTiBkcml2ZXIuIFNheSBZIGlmIHlvdSB3YW50IHRvXG4gIDM4Olx0XHQgIHVzZSB0aGUgZHJpdmVyIGZvciBhbiBVU0Igd2lyZWxlc3MgY2FyZC5cbiAgMzk6XHRcbiAgNDA6XHRjb25maWcgQlJDTUZNQUNfUENJRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTA1NQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEN1cnJlbnQgRm9jdXM6IERlZmluaW5nIHRoZSBOZWNlc3NhcnkgRHJpdmVycyoqCgpPa2F5LCBzbyBJJiMzOTttIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGRyaXZlciBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcHJvamVjdCwgYW5kIGl0JiMzOTtzIGJlY29taW5nIGNsZWFyIHdoYXQgSSBuZWVkLiBJdCBsb29rcyBsaWtlIEkmIzM5O20gZGVmaW5pdGVseSBnb2luZyB0byByZXF1aXJlIGJvdGggYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1NESU9gLiBGdXJ0aGVybW9yZSwgdGhlIGBNTUNgIGRyaXZlciBpcyBhIGdpdmVuLCBvYnZpb3VzbHkuIE5vdywgdGhlIGN1cnZlYmFsbCBoZXJlIGlzIHRoaXMgYE1NQ19WVUIzMDBgIGRyaXZlci4gTXkgdW5kZXJzdGFuZGluZyBpcyBpdCYjMzk7cyBoYW5kbGluZyBTRElPIGVtdWxhdGlvbiB0aHJvdWdoIFVTQi4gVGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscyBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBpbmRpcmVjdCBkZXBlbmRlbmNpZXMuIEkmIzM5O2xsIGNoZWNrIGl0cyBvd24gZGVwZW5kZW5jaWVzIGFuZCBtYWtlIGNlcnRhaW4gZXZlcnl0aGluZyBsaW5rcyB1cCBjb3JyZWN0bHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTUNfVlVCMzAwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkxMD1jb25maWcgTU1DX0paNDc0MFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05MTktXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6OTIwOmNvbmZpZyBNTUNfVlVCMzAwXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTIxLVx0dHJpc3RhdGUgXCYjMzQ7VlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTQwOAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIE1NQyBIb3N0IENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGBkcml2ZXJzL21tYy9ob3N0L0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA5MjAuIEkmIzM5O20gbGlrZWx5IGludGVyZXN0ZWQgaW4gaG93IHNvbWUgcGFydGljdWxhciBmZWF0dXJlIG9yIG9wdGlvbiByZWxhdGVkIHRvIE1NQyBob3N0IGNvbnRyb2xsZXJzIGlzIGJlaW5nIGNvbmZpZ3VyZWQuIEdpdmVuIHRoZSBsb2NhdGlvbiB3aXRoaW4gS2NvbmZpZywgSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIG9yIGRlcGVuZGVuY2llcyBiZWluZyBkZWZpbmVkLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgc3BlY2lmaWMgYXNwZWN0IGlzIGNvbnRyb2xsZWQsIHdoYXQgb3RoZXIgZmVhdHVyZXMgaXQgbWlnaHQgZGVwZW5kIG9uLCBhbmQgcG90ZW50aWFsbHksIHdoYXQgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGtlcm5lbCBjb25maWd1cmF0aW9ucyBlbmFibGUgb3IgZGlzYWJsZSBpdC4gUGVyaGFwcyBJJiMzOTttIHRyeWluZyB0byBkZWJ1ZyBhbiBpc3N1ZSwgb3Igc2ltcGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCBhIG5ldyBNTUMgaG9zdCBkcml2ZXIgSSYjMzk7bSBsb29raW5nIGF0LiBNYXliZSBJJiMzOTttIHRyeWluZyB0byBidWlsZCBhIGN1c3RvbSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYW5kIG5lZWQgdG8ga25vdyB0aGUgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIGEgcGFydGljdWxhciBNTUMtcmVsYXRlZCBvcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogOTE1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA5MTU6XHRcdCAgSlo0NzQwLCBKWjQ3NTAsIEpaNDc3MCBhbmQgSlo0NzgwIFNvQ3MuXG4gOTE2Olx0XG4gOTE3Olx0XHQgIElmIHlvdSBoYXZlIGEgYm9hcmQgYmFzZWQgb24gc3VjaCBhIFNvQyBhbmQgd2l0aCBhIFNEL01NQyBzbG90LFxuIDkxODpcdFx0ICBzYXkgWSBvciBNIGhlcmUuXG4gOTE5Olx0XG4gOTIwOlx0Y29uZmlnIE1NQ19WVUIzMDBcbiA5MjE6XHRcdHRyaXN0YXRlIFwmIzM0O1ZVQjMwMCBVU0IgdG8gU0RJTy9TRC9NTUMgSG9zdCBDb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbiA5MjI6XHRcdGRlcGVuZHMgb24gVVNCXG4gOTIzOlx0XHRoZWxwXG4gOTI0Olx0XHQgIFRoaXMgc2VsZWN0cyBzdXBwb3J0IGZvciBFbGFuIERpZ2l0YWwgU3lzdGVtcyYjMzk7IFZVQjMwMCBjaGlwLlxuIDkyNTpcdFxuIDkyNjpcdFx0ICBUaGUgVlVCMzAwIGlzIGEgVVNCLVNESU8gSG9zdCBDb250cm9sbGVyIEludGVyZmFjZSBjaGlwXG4gOTI3Olx0XHQgIHRoYXQgZW5hYmxlcyB0aGUgaG9zdCBjb21wdXRlciB0byB1c2UgU0RJTy9TRC9NTUMgY2FyZHNcbiA5Mjg6XHRcdCAgdmlhIGEgVVNCIDIuMCBvciBVU0IgMS4xIGhvc3QuXG4gOTI5Olx0XG4gOTMwOlx0XHQgIFRoZSBWVUIzMDAgY2hpcCB3aWxsIGJlIGZvdW5kIGluIGJvdGggcGh5c2ljYWxseSBzZXBhcmF0ZVxuIDkzMTpcdFx0ICBVU0IgdG8gU0RJTy9TRC9NTUMgYWRhcHRlcnMgYW5kIGVtYmVkZGVkIG9uIHNvbWUgbW90aGVyYm9hcmRzLlxuIDkzMjpcdFxuIDkzMzpcdFx0ICBUaGUgVlVCMzAwIGNoaXAgc3VwcG9ydHMgU0QgYW5kIE1NQyBtZW1vcnkgY2FyZHMgaW4gYWRkaXRpb25cbiA5MzQ6XHRcdCAgdG8gc2luZ2xlIGFuZCBtdWx0aWZ1bmN0aW9uIFNESU8gY2FyZHMuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwMDIwCgkJCQkJCQlvdXRwdXQ6IDU0CgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU0RJTyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSB0aGF0IGVuYWJsaW5nIGBNTUNfVlVCMzAwYCBoaW5nZXMgb24gYFVTQmAuIFRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDsgSSYjMzk7bGwgbmVlZCB0byBtYWtlIHN1cmUgYFVTQmAgaXMgY29uZmlndXJlZCBhcHByb3ByaWF0ZWx5LiBUaGUgcGF0Y2ggYWxzbyBzdWdnZXN0cyB0aGVzZSBjb25maWdzIG5lZWQgdG8gYmUgZW5hYmxlZDogYEJSQ01GTUFDYCwgYEJSQ01GTUFDX1NESU9gLCBhbmQsIG9mIGNvdXJzZSwgYE1NQ19WVUIzMDBgLgoKTm93LCBiZWZvcmUgSSBjb21taXQgdG8gZW5hYmxpbmcgYEJSQ01GTUFDYCwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBpdHMgZGVwZW5kZW5jaWVzLiBBaCwgaXQgbG9va3MgbGlrZSBpdCByZWxpZXMgb24gYENGRzgwMjExYC4gU28sIGBDRkc4MDIxMWAgaGFzIHRvIGJlIGVuYWJsZWQgdG9vLiBObyBzdXJwcmlzZXMgdGhlcmUsIGJ1dCBhbHdheXMgZ29vZCB0byBjb25maXJtLgoKTGV0JiMzOTtzIGRyaWxsIGRvd24gaW50byB0aGUgY29yZSBvZiB0aGUgcGF0Y2ggaXRzZWxmLiBUaGUgZGlmZiBtb2RpZmllcyBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBUaGlzIGZ1bmN0aW9uIGNhbGxzIGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgLCB3aGljaCBpcyBjYWxsZWQgYnkgYGJyY21mX3NkaW9fZHBjYC4gVGhlIGxhdHRlciBpbiB0dXJuIGlzIGNhbGxlZCBieSBgYnJjbWZfc2Rpb19kYXRhd29ya2VyYC4gU28gdGhlIGVudHJ5IHBvaW50IHRvIHRoZSBTRElPIGJ1cyBpcyBwcm9iYWJseSBgYnJjbWZfc2Rpb19kcGNgIG9yIGBicmNtZl9zZGlvX2RhdGF3b3JrZXJgLgoKV2FpdCwgaXNuJiMzOTt0IGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgYSAqc3RhdGljKiBmdW5jdGlvbj8gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgcmVxdWVzdHMgd2UgdXNlIG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnRzLiBUaGUgY29tcGlsZXIgd2lsbCBpbmxpbmUgc3RhdGljIGZ1bmN0aW9ucywgc28gdGhleSBkb24mIzM5O3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzLiBPa2F5LCB0aW1lIHRvIGdvIGludG8gYHNkaW8uY2AgYW5kIGh1bnQgZm9yIHRoZSBub24tc3RhdGljIGVudHJ5IHBvaW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XmJyY21mX3NkaW9fJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTY5Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTk2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMDc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMTkwLVx0XHQgICAgICB1aW50IGNoYW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyOTM2OmJyY21mX3NkaW9fYnVzX3R4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjQ1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjk4LVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMzNDI6YnJjbWZfc2Rpb192ZXJpZnltZW1vcnkoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LCB1MzIgcmFtX2FkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXHRcdFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM3Nzc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cdFx0XHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zOTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MDk5OmJyY21mX3NkaW9fd2F0Y2hkb2dfdGhyZWFkKHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDEyNT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0MjYte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjczMgoJCQkJCQkJb3V0cHV0OiA1OAoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggc3VtbWFyaXppbmcgdGhlIHByb21wdDoKCioqQW5hbHl6aW5nIGBzZGlvLmNgIGZvciBOb24tU3RhdGljIEZ1bmN0aW9ucyoqCgpSaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgYHNkaW8uY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB0aGUgbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZS4gVGhlIGZvY3VzIGhlcmUgaXMgb24gdmlzaWJpbGl0eSBhbmQgcG90ZW50aWFsIGV4dGVybmFsIGludGVyYWN0aW9uLiBTdGF0aWMgZnVuY3Rpb25zLCBieSBkZWZpbml0aW9uLCBhcmUgbGltaXRlZCBpbiBzY29wZSB0byB0aGUgZmlsZSB0aGV5JiMzOTtyZSBkZWNsYXJlZCBpbi4gSSYjMzk7bSBhc3N1bWluZyB0aGVyZSYjMzk7cyBhIHNwZWNpZmljIHJlYXNvbiBmb3IgdGhpcyBub24tc3RhdGljIGFuYWx5c2lzLiBQZXJoYXBzIEkmIzM5O20gdHJ5aW5nIHRvIGlkZW50aWZ5IHBvdGVudGlhbCBlbnRyeSBwb2ludHMsIEFQSSBmdW5jdGlvbnMsIGZ1bmN0aW9ucyB0aGF0IGNvdWxkIGJlIGNhbGxlZCBmcm9tIG90aGVyIG1vZHVsZXMgb3IgZXZlbiB0aGUga2VybmVsIGl0c2VsZi4gT3IsIG1heWJlIEkgbmVlZCB0byBjb25maXJtIHRoZSBBUEkgY29udHJhY3QgYW5kIHdoZXRoZXIgb3Igbm90IGZ1bmN0aW9ucyBoYXZlIGJlZW4gaW5hcHByb3ByaWF0ZWx5IG1hZGUgbm9uLXN0YXRpYy4gVGhlIGtleSBoZXJlIGlzIHRvIGRldGVybWluZSB3aGF0JiMzOTtzIGF2YWlsYWJsZSBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIGV4cG9zZWQuIFRoaXMgaW5pdGlhbCBzY2FuIHdpbGwgZ3VpZGUgdGhlIHJlc3Qgb2YgbXkgYW5hbHlzaXMuIEZyb20gaGVyZSBJIGNhbiBtYWtlIGEgZGVjaXNpb24gb24gbXkgbmV4dCBhY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15bYS16QS1aMC05X10mIzQzO1xcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz01OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBzZGlvZF9kcml2ZV9zdHIgc2Rpb2RfZHJ2c3RyX3RhYjJfM3YzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNDpCUkNNRl9GV19ERUYoNDMxNDMsIFwmIzM0O2JyY21mbWFjNDMxNDMtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNTpCUkNNRl9GV19ERUYoNDMyNDFCMCwgXCYjMzQ7YnJjbWZtYWM0MzI0MWIwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDY6QlJDTUZfRldfREVGKDQzMjQxQjQsIFwmIzM0O2JyY21mbWFjNDMyNDFiNC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA3OkJSQ01GX0ZXX0RFRig0MzI0MUI1LCBcJiMzNDticmNtZm1hYzQzMjQxYjUtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwODpCUkNNRl9GV19ERUYoNDMyOSwgXCYjMzQ7YnJjbWZtYWM0MzI5LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDk6QlJDTUZfRldfREVGKDQzMzAsIFwmIzM0O2JyY21mbWFjNDMzMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEwOkJSQ01GX0ZXX0RFRig0MzM0LCBcJiMzNDticmNtZm1hYzQzMzQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMTpCUkNNRl9GV19ERUYoNDMzNDAsIFwmIzM0O2JyY21mbWFjNDMzNDAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMjpCUkNNRl9GV19ERUYoNDMzNSwgXCYjMzQ7YnJjbWZtYWM0MzM1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTM6QlJDTUZfRldfREVGKDQzMzYyLCBcJiMzNDticmNtZm1hYzQzMzYyLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTQ6QlJDTUZfRldfREVGKDQzMzksIFwmIzM0O2JyY21mbWFjNDMzOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE1OkJSQ01GX0ZXX0RFRig0MzQzMEEwLCBcJiMzNDticmNtZm1hYzQzNDMwYTAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYxNi0vKiBOb3RlIHRoZSBuYW1lcyBhcmUgbm90IHBvc3RmaXhlZCB3aXRoIGExIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNzpCUkNNRl9GV19DTE1fREVGKDQzNDMwQTEsIFwmIzM0O2JyY21mbWFjNDM0MzAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxODpCUkNNRl9GV19ERUYoNDM0MzBCMCwgXCYjMzQ7YnJjbWZtYWM0MzQzMGIwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTk6QlJDTUZfRldfQ0xNX0RFRig0MzQzOSwgXCYjMzQ7YnJjbWZtYWM0MzQzOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIwOkJSQ01GX0ZXX0NMTV9ERUYoNDM0NTUsIFwmIzM0O2JyY21mbWFjNDM0NTUtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMTpCUkNNRl9GV19ERUYoNDM0NTYsIFwmIzM0O2JyY21mbWFjNDM0NTYtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMjpCUkNNRl9GV19DTE1fREVGKDQzNTQsIFwmIzM0O2JyY21mbWFjNDM1NC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIzOkJSQ01GX0ZXX0NMTV9ERUYoNDM1NiwgXCYjMzQ7YnJjbWZtYWM0MzU2LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjQ6QlJDTUZfRldfREVGKDQzNTksIFwmIzM0O2JyY21mbWFjNDM1OS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI1OkJSQ01GX0ZXX0NMTV9ERUYoNDM3MywgXCYjMzQ7YnJjbWZtYWM0MzczLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjY6QlJDTUZfRldfQ0xNX0RFRig0MzAxMiwgXCYjMzQ7YnJjbWZtYWM0MzAxMi1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI3OkJSQ01GX0ZXX0NMTV9ERUYoNDM3NTIsIFwmIzM0O2JyY21mbWFjNDM3NTItc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjI5LS8qIGZpcm13YXJlIGNvbmZpZyBmaWxlcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzA6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcJiMzNDticmNtZm1hYyotc2Rpby4qLnR4dFwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjMyLS8qIHBlci1ib2FyZCBmaXJtd2FyZSBiaW5hcmllcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzM6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcJiMzNDticmNtZm1hYyotc2Rpby4qLmJpblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTY5Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTk2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMDc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMTkwLVx0XHQgICAgICB1aW50IGNoYW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyOTM2OmJyY21mX3NkaW9fYnVzX3R4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjQ1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjk4LVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMzNDI6YnJjbWZfc2Rpb192ZXJpZnltZW1vcnkoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LCB1MzIgcmFtX2FkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXHRcdFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM3Nzc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cdFx0XHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zOTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MDk5OmJyY21mX3NkaW9fd2F0Y2hkb2dfdGhyZWFkKHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDEyNT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0MjYte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njg1NgoJCQkJCQkJb3V0cHV0OiA1OAoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipGaW5kaW5nIE5vbi1TdGF0aWMgRnVuY3Rpb25zIGluIHNkaW8uYyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gemVybyBpbiBvbiB0aGUgKm5vbi1zdGF0aWMqIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGBzZGlvLmNgIGZpbGUuIFRoaXMgbWVhbnMgSSYjMzk7bSBsb29raW5nIGZvciB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGRlY2xhcmVkIHdpdGhvdXQgdGhlIGBzdGF0aWNgIGtleXdvcmQuIE15IGdvYWwgaGVyZSwgSSBhc3N1bWUsIGlzIHRvIGlkZW50aWZ5IGZ1bmN0aW9ucyB0aGF0IGFyZSAqZXh0ZXJuYWxseSB2aXNpYmxlKiBvciBwb3RlbnRpYWxseSBjYWxsZWQgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLCBtYXliZSBldmVuIGJ5IG90aGVyIG1vZHVsZXMgb3IgdGhlIGtlcm5lbCBpdHNlbGYuIEkgbmVlZCB0byBxdWlja2x5IGFuZCBlZmZpY2llbnRseSBsb2NhdGUgdGhlc2UgZW50cnkgcG9pbnRzLiBJJiMzOTtsbCBsaWtlbHkgdXNlIHNvbWUgZm9ybSBvZiB0ZXh0IHNlYXJjaCwgcHJvYmFibHkgd2l0aGluIG15IElERSBvciBhIGNvbW1hbmQtbGluZSB1dGlsaXR5IGxpa2UgYGdyZXBgIG9yIGBmaW5kYC4gSeKAmWxsIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyB0aGF0IG1pZ2h0IGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvciBpbmNsdWRlIGZ1bmN0aW9ucy4gSSBtaWdodCBldmVuIGNoZWNrIGZvciBleHRlcm4gZGVjbGFyYXRpb25zIHRvIG1ha2UgY2VydGFpbiBJIGNhcHR1cmUgYWxsIHBvc3NpYmxlIGV4dGVybmFsIHJlZmVyZW5jZXMuIFRoaXMgaXMgYSBjb21tb24gZmlyc3Qgc3RlcCB3aGVuIHJldmVyc2UgZW5naW5lZXJpbmcgb3IgYW5hbHl6aW5nIGEgbW9kdWxlJiMzOTtzIHB1YmxpYyBpbnRlcmZhY2UsIG9yIHByZXBhcmluZyBpdCBmb3IgcmVmYWN0b3JpbmcuIEkga25vdyBob3cgdG8gZG8gdGhpcywgc28gbGV0JiMzOTtzIGdldCBpdCBkb25lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteW2EtekEtWjAtOV9dJiM0MztcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NTk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb2RfZHJpdmVfc3RyIHNkaW9kX2RydnN0cl90YWIyXzN2M1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDQ6QlJDTUZfRldfREVGKDQzMTQzLCBcJiMzNDticmNtZm1hYzQzMTQzLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDU6QlJDTUZfRldfREVGKDQzMjQxQjAsIFwmIzM0O2JyY21mbWFjNDMyNDFiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA2OkJSQ01GX0ZXX0RFRig0MzI0MUI0LCBcJiMzNDticmNtZm1hYzQzMjQxYjQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNzpCUkNNRl9GV19ERUYoNDMyNDFCNSwgXCYjMzQ7YnJjbWZtYWM0MzI0MWI1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDg6QlJDTUZfRldfREVGKDQzMjksIFwmIzM0O2JyY21mbWFjNDMyOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA5OkJSQ01GX0ZXX0RFRig0MzMwLCBcJiMzNDticmNtZm1hYzQzMzAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMDpCUkNNRl9GV19ERUYoNDMzNCwgXCYjMzQ7YnJjbWZtYWM0MzM0LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTE6QlJDTUZfRldfREVGKDQzMzQwLCBcJiMzNDticmNtZm1hYzQzMzQwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTI6QlJDTUZfRldfREVGKDQzMzUsIFwmIzM0O2JyY21mbWFjNDMzNS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEzOkJSQ01GX0ZXX0RFRig0MzM2MiwgXCYjMzQ7YnJjbWZtYWM0MzM2Mi1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE0OkJSQ01GX0ZXX0RFRig0MzM5LCBcJiMzNDticmNtZm1hYzQzMzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNTpCUkNNRl9GV19ERUYoNDM0MzBBMCwgXCYjMzQ7YnJjbWZtYWM0MzQzMGEwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MTYtLyogTm90ZSB0aGUgbmFtZXMgYXJlIG5vdCBwb3N0Zml4ZWQgd2l0aCBhMSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcJiMzNDticmNtZm1hYzQzNDMwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFwmIzM0O2JyY21mbWFjNDM0MzBiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFwmIzM0O2JyY21mbWFjNDM0Mzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcJiMzNDticmNtZm1hYzQzNDU1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcJiMzNDticmNtZm1hYzQzNDU2LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcJiMzNDticmNtZm1hYzQzNTQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFwmIzM0O2JyY21mbWFjNDM1Ni1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcJiMzNDticmNtZm1hYzQzNTktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFwmIzM0O2JyY21mbWFjNDM3My1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFwmIzM0O2JyY21mbWFjNDMwMTItc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcJiMzNDticmNtZm1hYzQzNzUyLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYyOS0vKiBmaXJtd2FyZSBjb25maWcgZmlsZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMwOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi50eHRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMzOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi5iaW5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2OTg6YnJjbWZfc2Rpb19rc29fY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBib29sIG9uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9OTY0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE3NTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMDc4OmJyY21mX3NkaW9fd2FpdF9ldmVudF93YWtldXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMTg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cdFx0ICAgICAgdWludCBjaGFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjI2ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI5Mzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMyNDY6YnJjbWZfc2Rpb19idXNfcnhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyOTY9c3RhdGljIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cdFx0XHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMzQzLVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM3Nzg6YnJjbWZfc2Rpb19kcml2ZXN0cmVuZ3RoaW5pdChzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXHRcdFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDEyNjpicmNtZl9zZGlvX3dhdGNoZG9nKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ0MjQ9c3RhdGljIHN0cnVjdCBicmNtZl9md19yZXF1ZXN0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA5OTYKCQkJCQkJCW91dHB1dDogNTgKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqRGVsdmluZyBpbnRvIFN5bWJvbCBWaXNpYmlsaXR5KioKCk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHNvbWV0aGluZyBzcGVjaWZpYywgbGlrZWx5IHJlbGF0ZWQgdG8gaG93IHN5bWJvbHMgYXJlIGV4cG9zZWQgaW4gdGhlIGtlcm5lbCBvciBhIHNwZWNpZmljIG1vZHVsZS4gVGhlIHRlcm0gYEVYUE9SVF9TWU1CT0xgIGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhcyBhIHN0cm9uZyBjYW5kaWRhdGUuIEl0IHNjcmVhbXMgJiMzNDtwdWJsaWMgaW50ZXJmYWNlJiMzNDsgaW4gdGhlIGtlcm5lbCBzcGFjZS4gSSYjMzk7bSB0aGlua2luZyBJJiMzOTtsbCBzdGFydCB3aXRoIGEgc2VhcmNoIGZvciB0aGF0IG1hY3JvLCBiZWNhdXNlIGl0JiMzOTtzIGEgZGlyZWN0IGluZGljYXRvciBvZiBmdW5jdGlvbnMgaW50ZW5kZWQgZm9yIHVzZSBieSBvdGhlciBtb2R1bGVzLiBJdCYjMzk7cyB0aGUgbW9zdCBleHBsaWNpdCB3YXkgdG8gbWFrZSBhIGZ1bmN0aW9uIHZpc2libGUgZXh0ZXJuYWxseS4KCkhvd2V2ZXIsIG1heWJlIEkgc2hvdWxkIGJyb2FkZW4gdGhlIHNlYXJjaCBhIGxpdHRsZSwganVzdCBpbiBjYXNlIGBFWFBPUlRfU1lNQk9MYCBpc24mIzM5O3QgdXNlZCBldmVyeXdoZXJlIG9yIHRoZXJlIGFyZSBhbHRlcm5hdGl2ZSBtZWNoYW5pc21zLiBJIHNob3VsZCBhbHNvIGNvbnNpZGVyIGEgc2VhcmNoIGZvciBhbGwgbm9uLXN0YXRpYyBmdW5jdGlvbnMsIEkgbmVlZCB0byBpZGVudGlmeSB3aGljaCBmdW5jdGlvbnMgYXJlIHZpc2libGUgb3V0c2lkZSB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0LiBUaGF0IHdheSwgSSBjYW4gcG90ZW50aWFsbHkgY2F0Y2ggaW5zdGFuY2VzIHdoZXJlIGEgZnVuY3Rpb24gaXMgaW1wbGljaXRseSBwdWJsaWMsIGV2ZW4gd2l0aG91dCBhbiBleHBsaWNpdCBgRVhQT1JUX1NZTUJPTGAgZGVjbGFyYXRpb24uIFRoaW5raW5nIGxpa2UgYSBnb29kIGNvZGUgYXJjaGVvbG9naXN0LCBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIGFuZ2xlcy4gTGV0JiMzOTtzIHNlZSB3aGF0IHR1cm5zIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteW2EtekEtWjAtOV9dJiM0MztcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NTk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb2RfZHJpdmVfc3RyIHNkaW9kX2RydnN0cl90YWIyXzN2M1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDQ6QlJDTUZfRldfREVGKDQzMTQzLCBcJiMzNDticmNtZm1hYzQzMTQzLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDU6QlJDTUZfRldfREVGKDQzMjQxQjAsIFwmIzM0O2JyY21mbWFjNDMyNDFiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA2OkJSQ01GX0ZXX0RFRig0MzI0MUI0LCBcJiMzNDticmNtZm1hYzQzMjQxYjQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNzpCUkNNRl9GV19ERUYoNDMyNDFCNSwgXCYjMzQ7YnJjbWZtYWM0MzI0MWI1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDg6QlJDTUZfRldfREVGKDQzMjksIFwmIzM0O2JyY21mbWFjNDMyOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA5OkJSQ01GX0ZXX0RFRig0MzMwLCBcJiMzNDticmNtZm1hYzQzMzAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMDpCUkNNRl9GV19ERUYoNDMzNCwgXCYjMzQ7YnJjbWZtYWM0MzM0LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTE6QlJDTUZfRldfREVGKDQzMzQwLCBcJiMzNDticmNtZm1hYzQzMzQwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTI6QlJDTUZfRldfREVGKDQzMzUsIFwmIzM0O2JyY21mbWFjNDMzNS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEzOkJSQ01GX0ZXX0RFRig0MzM2MiwgXCYjMzQ7YnJjbWZtYWM0MzM2Mi1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE0OkJSQ01GX0ZXX0RFRig0MzM5LCBcJiMzNDticmNtZm1hYzQzMzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNTpCUkNNRl9GV19ERUYoNDM0MzBBMCwgXCYjMzQ7YnJjbWZtYWM0MzQzMGEwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MTYtLyogTm90ZSB0aGUgbmFtZXMgYXJlIG5vdCBwb3N0Zml4ZWQgd2l0aCBhMSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcJiMzNDticmNtZm1hYzQzNDMwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFwmIzM0O2JyY21mbWFjNDM0MzBiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFwmIzM0O2JyY21mbWFjNDM0Mzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcJiMzNDticmNtZm1hYzQzNDU1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcJiMzNDticmNtZm1hYzQzNDU2LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcJiMzNDticmNtZm1hYzQzNTQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFwmIzM0O2JyY21mbWFjNDM1Ni1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcJiMzNDticmNtZm1hYzQzNTktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFwmIzM0O2JyY21mbWFjNDM3My1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFwmIzM0O2JyY21mbWFjNDMwMTItc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcJiMzNDticmNtZm1hYzQzNzUyLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYyOS0vKiBmaXJtd2FyZSBjb25maWcgZmlsZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMwOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi50eHRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMzOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi5iaW5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2OTg6YnJjbWZfc2Rpb19rc29fY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBib29sIG9uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9OTY0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE3NTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMDc4OmJyY21mX3NkaW9fd2FpdF9ldmVudF93YWtldXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMTg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cdFx0ICAgICAgdWludCBjaGFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjI2ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI5Mzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMyNDY6YnJjbWZfc2Rpb19idXNfcnhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyOTY9c3RhdGljIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cdFx0XHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMzQzLVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM3Nzg6YnJjbWZfc2Rpb19kcml2ZXN0cmVuZ3RoaW5pdChzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXHRcdFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDEyNjpicmNtZl9zZGlvX3dhdGNoZG9nKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ0MjQ9c3RhdGljIHN0cnVjdCBicmNtZl9md19yZXF1ZXN0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjUxMzUKCQkJCQkJCW91dHB1dDogNTQKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgQlJDTUYgU0RJTyBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgY3JpdGljYWwgZW50cnkgcG9pbnRzIGZvciB0aGUgQnJvYWRjb20gU0RJTyBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIGVpdGhlciBgYnJjbWZfc2Rpb19wcm9iZWAgb3IgYGJyY21mX3NkaW9fcmVnaXN0ZXJgLiBJJiMzOTttIGxlYW5pbmcgdGhhdCB3YXkgYmVjYXVzZSBgYnJjbWZfc2Rpb19wcm9iZWAgaXMgb2Z0ZW4gdGhlIGZpcnN0IGZ1bmN0aW9uIHRoYXQmIzM5O3MgY2FsbGVkIHdoZW4gdGhlIFNESU8gZGV2aWNlIGlzIHJlY29nbml6ZWQgYnkgdGhlIHN5c3RlbSBhbmQgdGhlbiBJIHRoaW5rIHRoYXQgYGJyY21mX3NkaW9fcmVnaXN0ZXJgIGlzIHJlc3BvbnNpYmxlIGZvciByZWdpc3RlcmluZyB0aGUgZHJpdmVyIHdpdGggdGhlIFNESU8gYnVzLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IGNvbmZpcm1pbmcgd2hpY2ggb2YgdGhlc2UgaXMgdGhlIHRydWUgc3RhcnRpbmcgcG9pbnQsIGFuZCB0aGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZHJpdmVyIGlzIGhvb2tlZCBpbnRvIHRoZSBTRElPIHN1YnN5c3RlbS4gVGhlIGdvYWwgaXMgdG8gcmFwaWRseSBkZXRlcm1pbmUgdGhlIGNvbnRyb2wgcGF0aCBmb3IgYnJpbmctdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00NDI1PWJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDUwOmludCBicmNtZl9zZGlvX3Byb2JlKHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQ1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDg2LVx0LyogYXR0ZW1wdCB0byBhdHRhY2ggdG8gdGhlIGRvbmdsZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDg3Olx0cmV0ID0gYnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goYnVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQ4OC1cdGlmIChyZXQgXHUwMDNjIDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQ4OTpcdFx0YnJjbWZfZXJyKFwmIzM0O2JyY21mX3NkaW9fcHJvYmVfYXR0YWNoIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0OTAtXHRcdGdvdG8gZmFpbDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU5NzAKCQkJCQkJCW91dHB1dDogNTQKCQkJCQkJCXRob3VnaHRzOiAzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipDb25zaWRlcmluZyBFbnRyeSBhbmQgRXhpdCBQb2ludHMgZm9yIHRoZSBCUkNNRiBTRElPIERyaXZlcioqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLCB3aGVuIGl0IGNvbWVzIHRvIHRoZSBCUkNNRiBTRElPIGRyaXZlciwgdGhlIGBicmNtZl9zZGlvX3Byb2JlYCBmdW5jdGlvbiBpcyBkZWZpbml0ZWx5IGEgZ29vZCBjYW5kaWRhdGUgZm9yIHRoZSBub24tc3RhdGljIGVudHJ5IHBvaW50LiBJdCYjMzk7cyB0aGUgbmF0dXJhbCBwbGFjZSB3aGVyZSB0aGUgZHJpdmVyIGlzIGluaXRpYWxpemVkIHdoZW4gYSBkZXZpY2UgaXMgZGV0ZWN0ZWQsIHJpZ2h0PyBUaGF0IG1ha2VzIHRoZSBtb3N0IHNlbnNlLgoKQW5kLCBpZiB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIGNvbXBsZW1lbnRhcnkgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBvcHBvc2l0ZSBzY2VuYXJpbywgdGhlIHVuLWluaXRpYWxpemF0aW9uIHByb2Nlc3MsIHRoZSBgYnJjbWZfc2Rpb19yZW1vdmVgIGZ1bmN0aW9uIHNlZW1zIGxpa2UgdGhlIGxvZ2ljYWwgY2hvaWNlIGZvciB0aGUgZXhpdCBwb2ludC4gSXQgd291bGQgbWFrZSBzZW5zZSBmb3IgdGhhdCB0byBjbGVhbiB1cCByZXNvdXJjZXMsIHVucmVnaXN0ZXIgdGhpbmdzLCBhbmQgaGFuZGxlIHRoZSBkZXZpY2UgcmVtb3ZhbCBzbW9vdGhseS4gVGhpcyB3aG9sZSBkcml2ZXIgc2V0dXAgbG9va3Mgd2VsbC1vcmdhbml6ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ0NTA9aW50IGJyY21mX3NkaW9fcHJvYmUoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU1OC1mYWlsOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NTU5Olx0YnJjbWZfc2Rpb19yZW1vdmUoYnVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU2MC1cdHNkaW9kZXYtXHUwMDNlYnVzID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ1NjQ9dm9pZCBicmNtZl9zZGlvX2NhbmNlbF9kYXRhd29yayhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU3MC0vKiBEZXRhY2ggYW5kIGZyZWUgZXZlcnl0aGluZyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NTcxOnZvaWQgYnJjbWZfc2Rpb19yZW1vdmUoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU3Mi17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2NjE4CgkJCQkJCQlvdXRwdXQ6IDU0CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgSW5xdWlyeTogQlJDTUZfU0RJT19JU1IgQ29uc2lkZXJhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgaW1tZWRpYXRlIHRob3VnaHQsIGFuZCBsZXQmIzM5O3MgZmFjZSBpdCwgdGhlICpvbmx5KiB0aG91Z2h0IHJpZ2h0IG5vdywgaXM6ICoqYGJyY21mX3NkaW9faXNyYCoqLiBUaGF0JiMzOTtzIHdoZXJlIG15IGZvY3VzIGhhcyB0byBiZS4gU29tZXRoaW5nIHRyaWdnZXJlZCB0aGlzIGxpbmUgb2YgdGhpbmtpbmcuIEl0JiMzOTtzIHVzdWFsbHkgdGhlIHNpZ24gb2YgYSBzcGVjaWZpYyBpbnRlcnJ1cHQgY29udGV4dCB3aXRoaW4gQnJvYWRjb20gU0RJTyBXaS1GaSBkcml2ZXJzLiBJJiMzOTttIGltbWVkaWF0ZWx5IHRyeWluZyB0byByZWNhbGwgKndoeSogdGhpcyBmdW5jdGlvbiBoYXMgY29tZSB0byBtaW5kLiBJcyBpdCBhbiBpc3N1ZSBJJiMzOTt2ZSBzZWVuIHJlY2VudGx5PyBBIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBib3R0bGVuZWNrPyBBIGRlYnVnZ2luZyBzY2VuYXJpbyBJIHdhcyBpbj8gT3IgYW0gSSBqdXN0IHJldmlld2luZyBjb2RlIGFuZCBsb29raW5nIGZvciBhcmVhcyBvZiBwb3NzaWJsZSBpbXByb3ZlbWVudD8gUmVnYXJkbGVzcywgdGhlIGZ1bmN0aW9uIGl0c2VsZiBpcyB0aGUgZm9jYWwgcG9pbnQuIEl04oCZcyB0aGUgZW50cnkgcG9pbnQgdGhhdCBoYW5kbGVzIFNESU8gaW50ZXJydXB0cyB3aXRoaW4gdGhlIEJyb2FkY29tIFdpLUZpIGRyaXZlciwgc28gYW55dGhpbmcgcmVsYXRlZCB0byBsYXRlbmN5LCBkYXRhIGNvcnJ1cHRpb24sIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3VyIHJlbGF0ZWQgdG8gdGhlIFNESU8gaW50ZXJmYWNlIGlzIGdvaW5nIHRvIGludm9sdmUgdW5kZXJzdGFuZGluZyB0aGF0IGZ1bmN0aW9uLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dCBvZiB3aHkgSeKAmW0gdGhpbmtpbmcgb2YgaXQgcmlnaHQgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9zZGlvX2lzciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNjM4PXZvaWQgYnJjbWZfc2Rpb190cmlnZ2VyX2RwYyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzY0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzY0Njp2b2lkIGJyY21mX3NkaW9faXNyKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgaW5faXNyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNjQ3LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjcxMjIKCQkJCQkJCW91dHB1dDogMTc4CgkJCQkJCQl0aG91Z2h0czogNjQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBCUkNNRk1BQyBTRElPIERyaXZlciBDb2RlKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgYnJjbWZfc2Rpb19pc3JgIGxvb2tzIGxpa2UgYSBrZXkgZW50cnkgcG9pbnQsIHdoaWNoIEkgY29uZmlybWVkLiBUaGVuIEkgdHJhY2VkIGl0cyBleGVjdXRpb24gcGF0aCB0byBgYnJjbWZfc2Rpb19kcGNgLiBGcm9tIHRoZXJlLCBJIHNhdyBgYnJjbWZfc2Rpb19kcGNgIGlzIGludm9rZWQgYnkgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAsIGFuZCBJIHZlcmlmaWVkIGl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLiBOb3csIEkgbmVlZGVkIHRvIGNoZWNrIHdoYXQgbm9uLXN0YXRpYyBmdW5jdGlvbnMgY291bGQgdHJpZ2dlciB0aGF0IHN0YXRpYyB3b3JrZXIuIFRoYXQgbGVkIG1lIHRvIGBicmNtZl9zZGlvX3RyaWdnZXJfZHBjYCwgYW5kIHllcywgdGhhdCYjMzk7cyBhIGRpcmVjdCB0cmlnZ2VyLiBDb25zaWRlcmluZyBhbGwgb2YgdGhpcywgYGJyY21mX3NkaW9fcHJvYmVgLCBgYnJjbWZfc2Rpb19pc3JgIGFuZCBgYnJjbWZfc2Rpb190cmlnZ2VyX2RwY2AgYXJlIHRoZSBjcml0aWNhbCBzeW1ib2xzIHRvIGZvY3VzIG9uIGhlcmUuCgpTbywgdG8gc3VtbWFyaXplIHRob3NlIGtleSBlbnRyeSBwb2ludHM6IGBicmNtZl9zZGlvX3Byb2JlYCwgYGJyY21mX3NkaW9faXNyYCwgYW5kIGBicmNtZl9zZGlvX3RyaWdnZXJfZHBjYCBhcmUgbXkgbWFpbiB0YXJnZXRzLiBOb3cgbGV0JiMzOTtzIGRldGVybWluZSB0aGUgbmVjZXNzYXJ5IGVuYWJsZSBjb25maWd1cmF0aW9ucy4gSSYjMzk7bSB0aGlua2luZywgYmFzZWQgb24gdGhpcyBxdWljayBvdmVydmlldzogYEJSQ01GTUFDYCwgYEJSQ01GTUFDX1NESU9gLCBhbmQgYENGRzgwMjExYCBsb29rIHJlbGV2YW50IGZvciB0aGUgbW9kdWxlLCBhbmQgcG9zc2libHkgYE1NQ19WVUIzMDBgIGJhc2VkIG9uIFNESU8gaW50ZXJhY3Rpb25zLgoKSG9sZCBvbiBhIG1vbWVudCwgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24mIzM5O3QgbWlzcyBzb21ldGhpbmcuIEkga25vdyBgQlJDTUZNQUNfU0RJT2AgZGVwZW5kcyBvbiBgTU1DYCwgc28gYE1NQ2AgbmVlZHMgdG8gYmUgZW5hYmxlZC4gTGV0JiMzOTtzIGFkZCB0aGF0IHRvIGBFbmFibGVDb25maWdzYCBqdXN0IHRvIGJlIHNhZmUuIEFjdHVhbGx5LCBgTU1DX1ZVQjMwMGAgZGVwZW5kcyBvbiBVU0IuIFRoZW4sIEkgbmVlZCB0byBhZGQgYFVTQmAgYXMgd2VsbC4gVGhhdCBpcyBhbGwuCgpPa2F5LCBsZXQmIzM5O3MgZG8gYSBxdWljayBkb3VibGUtY2hlY2sgb24gYEJSQ01GTUFDX1NESU9gJiMzOTtzIGRlcGVuZGVuY2llcy4gWXVwLCBpdCBleHBsaWNpdGx5IGRlcGVuZHMgb24gYE1NQ2AuCgpOb3csIGxldCYjMzk7cyBnZXQgYmFjayB0byB0aGlzIHBhdGNoLiBBaCwgdGhpcyBpcyBhIG1lbW9yeSBsZWFrIGZpeCBpbiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBMb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIFRoZSBgZ290byBkb25lYCB3YXMgYnlwYXNzaW5nIHRoZSBgdmZyZWUoYnVmKWAgY2FsbCwgbGVhZGluZyB0byB0aGUgbGVhay4gVGhlIGZpeCBleHBsaWNpdGx5IG51bGxzIGBidWZgIGJlZm9yZSB0aGF0IGB2ZnJlZWAgY2FsbCwgYWRkcmVzc2luZyB0aGUgaXNzdWUuIExvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gbWUuCgpPa2F5LCBhbGwgdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGhhcyBiZWVuIGNvbGxlY3RlZC4gSSBhbSByZWFkeSB0byBgc2V0LXJlc3VsdHNgIHdpdGggdGhlIGZpbmRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJDTUZNQUMmIzM0OywKICAgICYjMzQ7QlJDTUZNQUNfU0RJTyYjMzQ7LAogICAgJiMzNDtNTUNfVlVCMzAwJiMzNDssCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01NQyYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9zZGlvX3Byb2JlJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9faXNyJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9fdHJpZ2dlcl9kcGMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciYjMzk7cyBTRElPIGludGVyZmFjZS4gVGhlIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGJ5IGVtdWxhdGluZyB0aGUgVlVCMzAwIFNESU8tdG8tVVNCIGJyaWRnZSBjb250cm9sbGVyLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZnVuY3Rpb25hbCBjb2RlIGluIHRoZSBTRElPIGNvbnRyb2wgZnJhbWUgcmVhZCBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19TRElPJiMzNDssCiAgICAmIzM0O01NQ19WVUIzMDAmIzM0OywKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TU1DJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3NkaW9fcHJvYmUmIzM0OywKICAgICYjMzQ7YnJjbWZfc2Rpb19pc3ImIzM0OywKICAgICYjMzQ7YnJjbWZfc2Rpb190cmlnZ2VyX2RwYyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyJiMzOTtzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowODo1OS43NzAzMTgzMDdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjQzMDMzNjczNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1NESU9cIixcbiAgICBcIk1NQ19WVUIzMDBcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNTUNcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3NkaW9fcHJvYmVcIixcbiAgICBcImJyY21mX3NkaW9faXNyXCIsXG4gICAgXCJicmNtZl9zZGlvX3RyaWdnZXJfZHBjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlcidzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA4OjU5Ljc3MDMyNDAwN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAwMzgyMjgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMGNlY2M5Y2Y4NGQ5NGQ2NGUwODMyMTYwZWMwMmYzMzY3ZDA2NjA4NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDEwOjA4OjU4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXFxuaW5kZXggOWY3ZWQxZDI5M2EwNi4uMzgxODAxYWYzYWM5OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xcbkBAIC0xODI3LDE3ICsxODI3LDE4IEBAIGJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuIFxcdGlmIChidXMtXFx1MDAzZXJ4Y3RsKSB7XFxuIFxcdFxcdGJyY21mX2VycihcXFwibGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cXFxcblxcXCIpO1xcbiBcXHRcXHRzcGluX3VubG9ja19iaChcXHUwMDI2YnVzLVxcdTAwM2VyeGN0bF9sb2NrKTtcXG4tXFx0XFx0dmZyZWUoYnVmKTtcXG4gXFx0XFx0Z290byBkb25lO1xcbiBcXHR9XFxuIFxcdGJ1cy1cXHUwMDNlcnhjdGwgPSBidWYgKyBkb2ZmO1xcbiBcXHRidXMtXFx1MDAzZXJ4Y3RsX29yaWcgPSBidWY7XFxuIFxcdGJ1cy1cXHUwMDNlcnhsZW4gPSBsZW4gLSBkb2ZmO1xcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2YnVzLVxcdTAwM2VyeGN0bF9sb2NrKTtcXG4rXFx0YnVmID0gTlVMTDtcXG4gXFxuIGRvbmU6XFxuIFxcdC8qIEF3YWtlIGFueSB3YWl0ZXJzICovXFxuIFxcdGJyY21mX3NkaW9fZGNtZF9yZXNwX3dha2UoYnVzKTtcXG4rXFx0dmZyZWUoYnVmKTtcXG4gfVxcbiBcXG4gLyogUGFkIHJlYWQgdG8gYmxvY2tzaXplIGZvciBlZmZpY2llbmN5ICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjAwLjE3MTYzMTk5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTYzOTAyMDQzODkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJSQ01GTUFDXCIsXG4gICAgXCJCUkNNRk1BQ19TRElPXCIsXG4gICAgXCJNTUNfVlVCMzAwXCIsXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTU1DXCIsXG4gICAgXCJVU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicmNtZl9zZGlvX3Byb2JlXCIsXG4gICAgXCJicmNtZl9zZGlvX2lzclwiLFxuICAgIFwiYnJjbWZfc2Rpb190cmlnZ2VyX2RwY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIncyBTRElPIGludGVyZmFjZS4gVGhlIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGJ5IGVtdWxhdGluZyB0aGUgVlVCMzAwIFNESU8tdG8tVVNCIGJyaWRnZSBjb250cm9sbGVyLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZnVuY3Rpb25hbCBjb2RlIGluIHRoZSBTRElPIGNvbnRyb2wgZnJhbWUgcmVhZCBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwY2VjYzljZjg0ZDk0ZDY0ZTA4MzIxNjBlYzAyZjMzNjdkMDY2MDg2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxMDowODo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXG5pbmRleCA5ZjdlZDFkMjkzYTA2Li4zODE4MDFhZjNhYzk4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuQEAgLTE4MjcsMTcgKzE4MjcsMTggQEAgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbiBcdGlmIChidXMtXHUwMDNlcnhjdGwpIHtcbiBcdFx0YnJjbWZfZXJyKFwibGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cXG5cIik7XG4gXHRcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmJ1cy1cdTAwM2VyeGN0bF9sb2NrKTtcbi1cdFx0dmZyZWUoYnVmKTtcbiBcdFx0Z290byBkb25lO1xuIFx0fVxuIFx0YnVzLVx1MDAzZXJ4Y3RsID0gYnVmICsgZG9mZjtcbiBcdGJ1cy1cdTAwM2VyeGN0bF9vcmlnID0gYnVmO1xuIFx0YnVzLVx1MDAzZXJ4bGVuID0gbGVuIC0gZG9mZjtcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmJ1cy1cdTAwM2VyeGN0bF9sb2NrKTtcbitcdGJ1ZiA9IE5VTEw7XG4gXG4gZG9uZTpcbiBcdC8qIEF3YWtlIGFueSB3YWl0ZXJzICovXG4gXHRicmNtZl9zZGlvX2RjbWRfcmVzcF93YWtlKGJ1cyk7XG4rXHR2ZnJlZShidWYpO1xuIH1cbiBcbiAvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjAwLjE3MTYzMzU1OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0MDU4Njg5ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCdzIFJlYWNoYWJpbGl0eSBhbmQgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY2AuIEl0J3MgYSBtZW1vcnkgbWFuYWdlbWVudCBmaXgsIG1vdmluZyBgdmZyZWUoYnVmKWAgYW5kIHNldHRpbmcgYGJ1ZiA9IE5VTExgIHRvIGF2b2lkIGEgcG90ZW50aWFsIGRvdWJsZSBmcmVlIG9yIGxlYWsuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYW5kIGlzIGl0IGV2ZW4gd29ydGggZnV6emluZz9cblxuVGhpcyBpcyBhIEJyb2FkY29tIDgwMi4xMSBTRElPIGRyaXZlciAoYGJyY21mbWFjL3NkaW8uY2ApLiBTRElPIGlzIHRoZSBrZXkgaGVyZS4gQ2FuIHdlIGVtdWxhdGUgb3IgZnV6eiBTRElPIGRldmljZXMgd2l0aGluIFFFTVU/IEdlbmVyYWxseSwgU0RJTyBpcyB0cmlja3kuIEl0J3Mgbm90IGFzIGVhc2lseSBmdXp6YWJsZSBhcyBzb21ldGhpbmcgd2l0aCBicm9hZGVyIHN5emthbGxlciBzdXBwb3J0LiBJIHdvbmRlciBpZiB0aGVyZSBhcmUgYW55IGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbHMuLi5Ob3BlLiBNYXliZSBpdCBjYW4gYmUgZnV6emVkIHZpYSBzb21lIG90aGVyIG1lYW5zP1xuXG5MZXQncyBzZWUgaWYgYGJyY21mbWFjYCBldmVuIGZpdHMgdGhlIGNyaXRlcmlhIGZvciBiZWluZyB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIGl0J3Mgbm90IGEgZHJpdmVyIHRoYXQgKnJlcXVpcmVzKiBzcGVjaWFsaXplZCBoYXJkd2FyZS4gTGV0J3Mgc2VlLi4uIHRoZSBwcm9tcHQgc3RhdGVzIHRvIGF2b2lkIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIFNtYXJ0TklDcywgb3IgR1BVcy4gSXMgdGhpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZT8gSXQgaXMgYSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuLi5cblxuQWgsIHRoaXMgaXMgYSBGdWxsTUFDIGRyaXZlciwgbWVhbmluZyB0aGUgTUFDIGlzIGltcGxlbWVudGVkIG9uIHRoZSBkZXZpY2UgaXRzZWxmLiBJdCBjb21tdW5pY2F0ZXMgd2l0aCBmaXJtd2FyZSBvbiB0aGUgQnJvYWRjb20gY2hpcC4gVGhhdCdzIGEgaHVyZGxlLCBpZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LiBXaXRob3V0IHRoZSBCcm9hZGNvbSBjaGlwIGl0c2VsZiwgb3IgYSBnb29kIFFFTVUgZW11bGF0aW9uIG9mIGl0LCB0aGUgZHJpdmVyIGxpa2VseSB3b24ndCBldmVuIHByb2JlIHN1Y2Nlc3NmdWxseSwgYW5kIGRlZmluaXRlbHkgd29uJ3QgcmVhY2ggYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYC5cblxuV2FpdCwgU3l6a2FsbGVyIGRvZXMgaGF2ZSBVU0IgZnV6emluZyAoZS5nLiwgZHVtbXlfaGNkKSwgYnV0IHRoaXMgaXMgU0RJTy4gRG9lcyBTeXprYWxsZXIgaGF2ZSBhbnkgU0RJTy1zcGVjaWZpYyBzdXBwb3J0PyBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBpZiBhbnkgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgU0RJTyBleGlzdC4gTGV0IG1lIGxvb2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMjksIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1ODQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOTowOC41Nzc1MDUxOThaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MTgwMjE4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzeXpfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjA4LjY4MTY5NDQ2NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NzM3MTM1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRob3NlIHRob3VnaHRzIGZyb20gYSBmaXJzdC1wZXJzb24sIGV4cGVydCBwZXJzcGVjdGl2ZSwgYWltaW5nIGZvciBhIGZ1bHNvbWUgcmVuZGVyaW5nOlxuXG4qKlNESU8gRnV6emluZyBDb2RlIEF1ZGl0KipcblxuUmlnaHQsIGxldCdzIGRpdmUgaW4uIEkgbmVlZCB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgY3VycmVudCBzdGF0ZSBvZiBTRElPIGZ1enppbmcgd2l0aGluIHRoZSBrZXJuZWwuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgYW55IGV4aXN0aW5nIGZ1enppbmcgaW5mcmFzdHJ1Y3R1cmUgaXMgaW4gcGxhY2Ugc3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aGUgU0RJTyBkcml2ZXIgb3IgcmVsYXRlZCBjb21wb25lbnRzLiBUaGF04oCZcyBzdGVwIG9uZSwgYSBiYXNpYyByZWNvbm5haXNzYW5jZSBtaXNzaW9uLiBBcmUgdGhlcmUgYW55IGtub3duIGZ1enppbmcgaGFybmVzc2VzLCBjdXN0b20gbXV0YXRpb25zLCBvciBkb2N1bWVudGVkIGZ1enppbmcgY29uZmlndXJhdGlvbnMgYWxyZWFkeSBwcmVzZW50PyBUaGlzIHNhdmVzIG1lIHZhbHVhYmxlIHRpbWUgaWYgdGhleSBleGlzdC5cblxuSWYgZnV6emluZyAqaXMqIHByZXNlbnQsIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBzY29wZSBhbmQgZWZmaWNhY3kuIEFyZSB0aGVyZSBhbnkgZ2FwcyBvciBwb3RlbnRpYWwgYXJlYXMgb2YgaW1wcm92ZW1lbnQgdGhhdCBqdW1wIG91dCBpbW1lZGlhdGVseT8gQXJlIHRoZSBleGlzdGluZyBmdXp6aW5nIGNvbmZpZ3VyYXRpb25zIGNvdmVyaW5nIHRoZSBtb3N0IGNyaXRpY2FsIGF0dGFjayBzdXJmYWNlcz8gQXJlIHRoZXkgaGl0dGluZyB0aGUgcmlnaHQgY29kZSBwYXRocywgdGFyZ2V0aW5nIHRoZSB2dWxuZXJhYmxlIGFyZWFzIEknZCBleHBlY3QgdG8gc2VlP1xuXG5JZiBubyBkZWRpY2F0ZWQgU0RJTyBmdXp6aW5nIGlzIGN1cnJlbnRseSBpbXBsZW1lbnRlZCwgdGhlIHNlY29uZCBwYXJ0IGlzIHRvIGRldGVybWluZSBpZiBleGlzdGluZyBjb2RlIGlzIHJlYWNoYWJsZSBieSBmdXp6aW5nLiBJZiBzbywgd2hpY2ggbW9kdWxlcyBjYWxsIG9yIHJlZmVyZW5jZSBTRElPPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGUgZnVuY3Rpb25zIHdpdGhpbiB0aGUgU0RJTyBkcml2ZXIgYXJlIGRpcmVjdGx5IGV4cG9zZWQgdG8gaW5wdXQgZnJvbSBhbnkgZnV6emFibGUgc291cmNlcy4gSSBoYXZlIHRvIG1hcCBvdXQgYW55IHBvdGVudGlhbCBhdHRhY2sgc3VyZmFjZXMuIENhbiBJIGxldmVyYWdlIGV4aXN0aW5nIGZ1enppbmcgc2V0dXBzIGxpa2UgS0FTQU4sIEtGRU5DRSwgb3Igc3l6a2FsbGVyPyBDb3VsZCBJIGludGVncmF0ZSBTRElPLXNwZWNpZmljIGlucHV0cyBpbnRvIHRoZSBleGlzdGluZyBmcmFtZXdvcmtzIG9yIGRvIEkgbmVlZCB0byBjcmVhdGUgc29tZXRoaW5nIGJlc3Bva2U/IFdoYXQgYXJlIHRoZSBrZXkgZW50cnkgcG9pbnRzIGludG8gdGhlIFNESU8gY29kZSBmcm9tIHVzZXJsYW5kIG9yIG90aGVyIGtlcm5lbCBtb2R1bGVzPyBGaW5kaW5nIHRoZXNlIGVudHJ5IHBvaW50cyBpcyBrZXkgdG8gZGV2aXNpbmcgZWZmZWN0aXZlIGZ1enppbmcgc3RyYXRlZ2llcy4gSSdsbCBuZWVkIHRvIGNvbnNpZGVyIGhvdyB0aGUgU0RJTyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggb3RoZXIgY29tcG9uZW50cywgcG90ZW50aWFsbHkgY3JlYXRpbmcgZGVwZW5kZW5jaWVzIHRoYXQgbmVlZCB0byBiZSBhZGRyZXNzZWQgaW4gdGhlIGZ1enppbmcgY29uZmlndXJhdGlvbi4gRXNzZW50aWFsbHksIEknbSB0aGlua2luZyBvZiBcInJlYWNoYWJpbGl0eVwiIGluIHRlcm1zIG9mIGhvdyBlYXNpbHkgSSBjYW4gc2VuZCBkYXRhIHRvIHRoZSBTRElPIGludGVyZmFjZSB0aGF0IHRyaWdnZXJzIGl0cyBleGVjdXRpb24uIEEgaGlnaC1sZXZlbCBvdmVydmlldyBtdXN0IGNvbWUgZmlyc3QgdG8gcmVkdWNlIGVmZm9ydCBhbmQgdGltZSB3YXN0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMjYsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOToxMy4zNTU0MTE2MDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODIwNzk0NTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE3NTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE3NTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xODU3PXN0YXRpYyB1aW50IGJyY21mX3NkaW9fcmVhZGZyYW1lcyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1aW50IG1heGZyYW1lcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxNy1cXHRcXHRcXHRpZiAocmQtXFx1MDAzZWNoYW5uZWwgPT0gU0RQQ01fQ09OVFJPTF9DSEFOTkVMKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxOTE4OlxcdFxcdFxcdFxcdGJyY21mX3NkaW9fcmVhZF9jb250cm9sKGJ1cywgYnVzLVxcdTAwM2VyeGhkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE5MTktXFx0XFx0XFx0XFx0XFx0XFx0XFx0cmQtXFx1MDAzZWxlbixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MTMuNDM3NTAwNjg5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg1ODcyMDM4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBGdW5jdGlvbiBhbmQgaXRzIFRlc3RhYmlsaXR5KipcblxuT2theSwgc28gSSdtIHRyYWNpbmcgdGhyb3VnaCB0aGlzIGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGZ1bmN0aW9uLi4uIGl0IGNhbGxzIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHNlZSB0aGF0IGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGlzIGludm9rZWQgZnJvbSBgYnJjbWZfc2Rpb19kcGNgLCB3aGljaCBJIHJlY2FsbCBpcyB0aGUgU0RJTyBkYXRhIHByb2Nlc3NpbmcgdGFza2xldCBvciB3b3JrcXVldWUuIEJhc2ljYWxseSwgdGhlIHRoaW5nIHRoYXQgcmVhZHMgZGF0YSBvZmYgdGhlIFNESU8gYnVzLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIHN0YW5kYXJkIHN0dWZmLlxuXG5Ob3csIHRoZSBjb3JlIGlzc3VlIGlzIGdvaW5nIHRvIGJlIHRlc3RpbmcgdGhpcy4gSSdtIHRoaW5raW5nLCB3aXRob3V0IGEgKnJlYWwqIEJyb2FkY29tIFNESU8gZGV2aWNlIHByZXNlbnQsIHRoaXMgY29kZSBwYXRoIGlzbid0IGV2ZW4gZ29pbmcgdG8gYmUgaGl0IGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgcmlnaHQ/IEhvbGQgb24sIGRvZXMgUUVNVSBldmVuICplbXVsYXRlKiBCcm9hZGNvbSBTRElPIFdpLUZpPyBObywgZGVmaW5pdGVseSBub3QuIEl0IGRvZXNuJ3QuXG5cbkFscmlnaHQsIHdoYXQgYWJvdXQgc3l6a2FsbGVyPyBEb2VzIGl0IGhhdmUgYW4gU0RJTyBmdXp6ZXI/IExldCBtZSB0aGluay4uLiBzeXprYWxsZXIgaXMgc3Ryb25nIG9uIFVTQiAodXNpbmcgZHVtbXlfaGNkKSBhbmQgUENJICh0byBhIGxpbWl0ZWQgZXh0ZW50LCBidXQgbm90IHNwZWNpZmljIFdpLUZpIGNhcmRzIHVubGVzcyB0aGV5IGFyZSBzb2Z0bWFjIGxpa2UgYXRoOWsvYXRoMTBrLCBidXQgdGhvc2UgYXJlbid0IGVtdWxhdGVkIGFueXdheSwgd2FpdCwgaHdzaW0gaXMgZm9yIG1hYzgwMjExLCBub3QgZm9yIGZ1bGxtYWMpLiBTbywgdGhlIGFuc3dlciBpcyBuby4gU3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIHNwZWNpZmljIFNESU8gZnV6emVyLiBJdCdzIG1pc3NpbmcgdGhhdCBwaWVjZSwgY3JpdGljYWwgZm9yIGBicmNtZm1hY2AuXG5cblNvLCB0byBzdW1tYXJpemUsIHRoZXJlIGlzIG5vIFNESU8gZW11bGF0aW9uIGluIHRoZSBRRU1VIGNvbmZpZ3VyYXRpb24gc3l6a2FsbGVyIHVzZXMgZm9yIGZ1enppbmcgYGJyY21mbWFjYC4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoaXMgZm9yIGFic29sdXRlIGNlcnRhaW50eSwgYnV0IHRoZSBsYWNrIG9mIGFuIGVtdWxhdGVkIFNESU8gYnVzIGlzIGxpa2VseSB0aGUgbGltaXRpbmcgZmFjdG9yIGhlcmUuIFdlIG5lZWQgdG8gZmluZCBhIHdheSB0byB0ZXN0IHRoaXMgcHJvcGVybHksIG1heWJlIGxvb2sgYXQgb3RoZXIgZW11bGF0b3JzIGFuZCBzZWUgaWYgdGhleSBoYXZlIFNESU8gb3IgYnVpbGQgYSBjdXN0b20gc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNTksIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MTkuMjk2MjIzNTY0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTUwMDE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNkaW9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxODQ5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc9NjU5PWNvbmZpZyBNTUNfTVZTRElPXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctNjY4LVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnOjY2OTpcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBtdnNkaW8uXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTY3MC1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU9MzQ9b2JqLSQoQ09ORklHX01NQ19USUZNX1NEKVxcdCs9IHRpZm1fc2Qub1xcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX01NQ19NVlNESU8pXFx0Kz0gbXZzZGlvLm9cXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlLTM2LW9iai0kKENPTkZJR19NTUNfREFWSU5DSSkgICAgICAgKz0gZGF2aW5jaV9tbWMub1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZT02OD1vYmotJChDT05GSUdfTU1DX01FU09OX01YX1NESEMpXFx0Kz0gbWVzb24tbXgtc2RoYy5vXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfTU1DX01FU09OX01YX1NESU8pXFx0Kz0gbWVzb24tbXgtc2Rpby5vXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZS03MC1vYmotJChDT05GSUdfTU1DX01PWEFSVClcXHQrPSBtb3hhcnQtbW1jLm9cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9ob3N0LmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzozMDojaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3NkaW8uaFxcdTAwM2VcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTMxLVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0zMzI9c3RydWN0IGF0bWVsX21jaSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTM4Ny0gKiBAc2RjX3JlZzogVmFsdWUgb2YgU0RDUiB0byBiZSB3cml0dGVuIGJlZm9yZSB1c2luZyB0aGlzIHNsb3QuXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzozODg6ICogQHNkaW9faXJxOiBTRElPIGlycSBtYXNrIGZvciB0aGlzIHNsb3QuXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0zODktICogQG1ycTogbW1jX3JlcXVlc3QgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBvciB3YWl0aW5nIHRvIGJlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTQwMT1zdHJ1Y3QgYXRtZWxfbWNpX3Nsb3Qge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy00MDUtXFx0dTMyXFx0XFx0XFx0c2RjX3JlZztcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjQwNjpcXHR1MzJcXHRcXHRcXHRzZGlvX2lycTtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTQwNy1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM9MTU0NT1zdGF0aWMgaW50IGF0bWNpX2dldF9jZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU1OC1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjE1NTk6c3RhdGljIHZvaWQgYXRtY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2MC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NjQtXFx0aWYgKGVuYWJsZSlcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjE1NjU6XFx0XFx0YXRtY2lfd3JpdGVsKGhvc3QsIEFUTUNJX0lFUiwgc2xvdC1cXHUwMDNlc2Rpb19pcnEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2Ni1cXHRlbHNlXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTY3OlxcdFxcdGF0bWNpX3dyaXRlbChob3N0LCBBVE1DSV9JRFIsIHNsb3QtXFx1MDAzZXNkaW9faXJxKTtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NjgtfVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0xNTcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGF0bWNpX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU3NC1cXHQuZ2V0X2NkXFx0XFx0PSBhdG1jaV9nZXRfY2QsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTc1OlxcdC5lbmFibGVfc2Rpb19pcnEgPSBhdG1jaV9lbmFibGVfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0xNTc2LX07XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTIwMTE9c3RhdGljIHZvaWQgYXRtY2lfd3JpdGVfZGF0YV9waW8oc3RydWN0IGF0bWVsX21jaSAqaG9zdClcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjA3OC1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIwNzk6c3RhdGljIHZvaWQgYXRtY2lfc2Rpb19pbnRlcnJ1cHQoc3RydWN0IGF0bWVsX21jaSAqaG9zdCwgdTMyIHN0YXR1cylcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIwODAte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMDg0LVxcdFxcdHN0cnVjdCBhdG1lbF9tY2lfc2xvdCAqc2xvdCA9IGhvc3QtXFx1MDAzZXNsb3RbaV07XFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMDg1OlxcdFxcdGlmIChzbG90IFxcdTAwMjZcXHUwMDI2IChzdGF0dXMgXFx1MDAyNiBzbG90LVxcdTAwM2VzZGlvX2lycSkpIHtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIwODY6XFx0XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycShzbG90LVxcdTAwM2VtbWMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjA4Ny1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTIwOTI9c3RhdGljIGlycXJldHVybl90IGF0bWNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMTMtXFx0XFx0aWYgKHBlbmRpbmcgXFx1MDAyNiAoQVRNQ0lfU0RJT0lSUUEgfCBBVE1DSV9TRElPSVJRQikpXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMjE0OlxcdFxcdFxcdGF0bWNpX3NkaW9faW50ZXJydXB0KGhvc3QsIHN0YXR1cyk7XFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjE1LVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0yMjM2PXN0YXRpYyBpbnQgYXRtY2lfaW5pdF9zbG90KHN0cnVjdCBhdG1lbF9tY2kgKmhvc3QsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjM3LVxcdFxcdHN0cnVjdCBtY2lfc2xvdF9wZGF0YSAqc2xvdF9kYXRhLCB1bnNpZ25lZCBpbnQgaWQsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMjM4OlxcdFxcdHUzMiBzZGNfcmVnLCB1MzIgc2Rpb19pcnEpXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjM5LXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjI1NC1cXHRzbG90LVxcdTAwM2VzZGNfcmVnID0gc2RjX3JlZztcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIyNTU6XFx0c2xvdC1cXHUwMDNlc2Rpb19pcnEgPSBzZGlvX2lycTtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyNTYtXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyNjctXFx0bW1jLVxcdTAwM2VvY3JfYXZhaWxcXHQ9IE1NQ19WRERfMzJfMzMgfCBNTUNfVkREXzMzXzM0O1xcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjI2ODpcXHRpZiAoc2Rpb19pcnEpXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjY5LVxcdFxcdG1tYy1cXHUwMDNlY2FwcyB8PSBNTUNfQ0FQX1NESU9fSVJRO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM9Nzc4PXN0YXRpYyBpcnFyZXR1cm5fdCBhdTF4bW1jX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy03ODgtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IFNEX1NUQVRVU19TSSlcXHQvKiBTRElPICovXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM6Nzg5OlxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy03OTAtXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYz05MDY9c3RhdGljIHZvaWQgYXUxeG1tY19kYmRtYV9zaHV0ZG93bihzdHJ1Y3QgYXUxeG1tY19ob3N0ICpob3N0KVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTE0LVxcbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jOjkxNTpzdGF0aWMgdm9pZCBhdTF4bW1jX2VuYWJsZV9zZGlvX2lycShzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgaW50IGVuKVxcbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jLTkxNi17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYz05MjU9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgYXUxeG1tY19vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy05MjktXFx0LmdldF9jZFxcdFxcdD0gYXUxeG1tY19jYXJkX2luc2VydGVkLFxcbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jOjkzMDpcXHQuZW5hYmxlX3NkaW9faXJxID0gYXUxeG1tY19lbmFibGVfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTMxLX07XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy04LSAqXFxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmM6OTogKiBUaGUgc2RoY2kgY29udHJvbGxlciBzdXBwb3J0cyBib3RoIHNkY2FyZCBhbmQgc2Rpby4gIFRoZSBzZGhvc3RcXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy0xMC0gKiBjb250cm9sbGVyIHN1cHBvcnRzIHRoZSBzZGNhcmQgb25seSwgYnV0IGhhcyBiZXR0ZXIgcGVyZm9ybWFuY2UuXFxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmM6MTE6ICogQWxzbyBub3RlIHRoYXQgdGhlIHJwaTMgaGFzIHNkaW8gd2lmaSwgc28gZHJpdmluZyB0aGUgc2RjYXJkIHdpdGhcXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy0xMi0gKiB0aGUgc2Rob3N0IGNvbnRyb2xsZXIgYWxsb3dzIHRvIHVzZSB0aGUgc2RoY2kgY29udHJvbGxlciBmb3Igd2lmaVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTE2Nj1zdHJ1Y3QgbW1jX2RhdmluY2lfaG9zdCB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTczLVxcdHN0cnVjdCByZXNvdXJjZSAqbWVtX3JlcztcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTc0OlxcdGludCBtbWNfaXJxLCBzZGlvX2lycTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTc1LVxcdHVuc2lnbmVkIGNoYXIgYnVzX21vZGU7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTg3LVxcdGJvb2wgZG9fZG1hO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxODg6XFx0Ym9vbCBzZGlvX2ludDtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTg5LVxcdGJvb2wgYWN0aXZlX3JlcXVlc3Q7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM9NzU2PW1tY19kYXZpbmNpX3hmZXJfZG9uZShzdHJ1Y3QgbW1jX2RhdmluY2lfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTc2NS1cXHRcXHQgKi9cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6NzY2OlxcdFxcdGlmIChob3N0LVxcdTAwM2VzZGlvX2ludCBcXHUwMDI2XFx1MDAyNiAhKHJlYWRsKGhvc3QtXFx1MDAzZWJhc2UgKyBEQVZJTkNJX1NESU9TVDApIFxcdTAwMjZcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY3LVxcdFxcdFxcdFxcdFxcdFNESU9TVDBfREFUMV9ISSkpIHtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY4LVxcdFxcdFxcdHdyaXRlbChTRElPSVNUX0lPSU5ULCBob3N0LVxcdTAwM2ViYXNlICsgREFWSU5DSV9TRElPSVNUKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6NzY5OlxcdFxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzcwLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYz04MzM9ZGF2aW5jaV9hYm9ydF9kYXRhKHN0cnVjdCBtbWNfZGF2aW5jaV9ob3N0ICpob3N0LCBzdHJ1Y3QgbW1jX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODQwLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzo4NDE6c3RhdGljIGlycXJldHVybl90IG1tY19kYXZpbmNpX3NkaW9faXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODQyLXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy04NTAtXFx0XFx0d3JpdGVsKHN0YXR1cyB8IFNESU9JU1RfSU9JTlQsIGhvc3QtXFx1MDAzZWJhc2UgKyBEQVZJTkNJX1NESU9JU1QpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzo4NTE6XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycShob3N0LVxcdTAwM2VtbWMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy04NTItXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTEwMTQ9c3RhdGljIGludCBtbWNfZGF2aW5jaV9nZXRfcm8oc3RydWN0IG1tY19ob3N0ICptbWMpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTAyNC1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTAyNTpzdGF0aWMgdm9pZCBtbWNfZGF2aW5jaV9lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMjYte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzEtXFx0XFx0XFx0d3JpdGVsKFNESU9JU1RfSU9JTlQsIGhvc3QtXFx1MDAzZWJhc2UgKyBEQVZJTkNJX1NESU9JU1QpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDMyOlxcdFxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTAzMy1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDM0OlxcdFxcdFxcdGhvc3QtXFx1MDAzZXNkaW9faW50ID0gdHJ1ZTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTAzNS1cXHRcXHRcXHR3cml0ZWwocmVhZGwoaG9zdC1cXHUwMDNlYmFzZSArIERBVklOQ0lfU0RJT0lFTikgfFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzgtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTAzOTpcXHRcXHRob3N0LVxcdTAwM2VzZGlvX2ludCA9IGZhbHNlO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDQwLVxcdFxcdHdyaXRlbChyZWFkbChob3N0LVxcdTAwM2ViYXNlICsgREFWSU5DSV9TRElPSUVOKSBcXHUwMDI2IH5TRElPSUVOX0lPSU5URU4sXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM9MTA0NT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyBtbWNfZGF2aW5jaV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTA0OS1cXHQuZ2V0X3JvXFx0XFx0PSBtbWNfZGF2aW5jaV9nZXRfcm8sXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEwNTA6XFx0LmVuYWJsZV9zZGlvX2lycSA9IG1tY19kYXZpbmNpX2VuYWJsZV9zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTA1MS19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTExODQ9c3RhdGljIGludCBkYXZpbmNpX21tY3NkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTI1MC1cXHRob3N0LVxcdTAwM2VtbWNfaXJxID0gaXJxO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMjUxOlxcdGhvc3QtXFx1MDAzZXNkaW9faXJxID0gcGxhdGZvcm1fZ2V0X2lycV9vcHRpb25hbChwZGV2LCAxKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTI1Mi1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMzAxLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMzAyOlxcdGlmIChob3N0LVxcdTAwM2VzZGlvX2lycSBcXHUwMDNlPSAwKSB7XFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEzMDM6XFx0XFx0cmV0ID0gZGV2bV9yZXF1ZXN0X2lycShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBob3N0LVxcdTAwM2VzZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTMwNDpcXHRcXHRcXHRcXHQgICAgICAgbW1jX2RhdmluY2lfc2Rpb19pcnEsIDAsXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEzMDUtXFx0XFx0XFx0XFx0ICAgICAgIG1tY19ob3N0bmFtZShtbWMpLCBob3N0KTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmM9NDk4PXN0YXRpYyBpbnQgZHdfbWNpX3JvY2tjaGlwX2luaXQoc3RydWN0IGR3X21jaSAqaG9zdClcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmMtNTAzLVxcdC8qIFNESU8gaXJxIGlzIHRoZSA4dGggb24gUm9ja2NoaXAgU29DcyAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmM6NTA0OlxcdGhvc3QtXFx1MDAzZXNkaW9faXJxID0gODtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1yb2NrY2hpcC5jLTUwNS1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9zZC5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MjU6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9zZGlvLmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0xNDgwPXN0YXRpYyB2b2lkIGR3X21jaV9od19yZXNldChzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTUxMi1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1MTM6c3RhdGljIHZvaWQgZHdfbWNpX3ByZXBhcmVfc2Rpb19pcnEoc3RydWN0IGR3X21jaSAqaG9zdCwgYm9vbCBwcmVwYXJlKVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTUxNC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NDAtXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTQxOnN0YXRpYyB2b2lkIF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShzdHJ1Y3QgZHdfbWNpICpob3N0LCBpbnQgZW5iKVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU0Mi17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NTAtXFx0aWYgKGVuYilcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NTE6XFx0XFx0aW50X21hc2sgfD0gU0RNTUNfSU5UX1NESU8oaG9zdC1cXHUwMDNlc2Rpb19pcnEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1Mi1cXHRlbHNlXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTUzOlxcdFxcdGludF9tYXNrIFxcdTAwMjY9IH5TRE1NQ19JTlRfU0RJTyhob3N0LVxcdTAwM2VzZGlvX2lycSk7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTU0LVxcdG1jaV93cml0ZWwoaG9zdCwgSU5UTUFTSywgaW50X21hc2spO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTU4LVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU1OTpzdGF0aWMgdm9pZCBkd19tY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5iKVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU2MC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NjItXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTYzOlxcdGR3X21jaV9wcmVwYXJlX3NkaW9faXJxKGhvc3QsIGVuYik7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTY0OlxcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCBlbmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU2NS1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU3Mi1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NzM6c3RhdGljIHZvaWQgZHdfbWNpX2Fja19zZGlvX2lycShzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NzQte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTc2LVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU3NzpcXHRfX2R3X21jaV9lbmFibGVfc2Rpb19pcnEoaG9zdCwgMSk7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTc4LX1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM9MTY3MD1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyBkd19tY2lfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNjc3LVxcdC5jYXJkX2h3X3Jlc2V0ICAgICAgICAgID0gZHdfbWNpX2h3X3Jlc2V0LFxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTY3ODpcXHQuZW5hYmxlX3NkaW9faXJxXFx0PSBkd19tY2lfZW5hYmxlX3NkaW9faXJxLFxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTY3OTpcXHQuYWNrX3NkaW9faXJxXFx0XFx0PSBkd19tY2lfYWNrX3NkaW9faXJxLFxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTY4MC1cXHQuZXhlY3V0ZV90dW5pbmdcXHRcXHQ9IGR3X21jaV9leGVjdXRlX3R1bmluZyxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM9MjY1ND1zdGF0aWMgaXJxcmV0dXJuX3QgZHdfbWNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI3NTctXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyNzU4OlxcdFxcdGlmIChwZW5kaW5nIFxcdTAwMjYgU0RNTUNfSU5UX1NESU8oaG9zdC1cXHUwMDNlc2Rpb19pcnEpKSB7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yNzU5LVxcdFxcdFxcdG1jaV93cml0ZWwoaG9zdCwgUklOVFNUUyxcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjI3NjA6XFx0XFx0XFx0XFx0ICAgU0RNTUNfSU5UX1NESU8oaG9zdC1cXHUwMDNlc2Rpb19pcnEpKTtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjI3NjE6XFx0XFx0XFx0X19kd19tY2lfZW5hYmxlX3NkaW9faXJxKGhvc3QsIDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6Mjc2MjpcXHRcXHRcXHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI3NjMtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0yNzk0PXN0YXRpYyBpbnQgZHdfbWNpX2luaXRfaG9zdF9jYXBzKHN0cnVjdCBkd19tY2kgKmhvc3QpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI4MjUtXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyODI2OlxcdC8qIFByb2Nlc3MgU0RJTyBJUlFzIHRocm91Z2ggdGhlIHNkaW9faXJxX3dvcmsuICovXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yODI3LVxcdGlmIChtbWMtXFx1MDAzZWNhcHMgXFx1MDAyNiBNTUNfQ0FQX1NESU9fSVJRKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0zNDQzPWludCBkd19tY2lfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0zNDk0LVxcdC8qIFJlLWVuYWJsZSBTRElPIGludGVycnVwdHMuICovXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzozNDk1OlxcdGlmIChzZGlvX2lycV9jbGFpbWVkKGhvc3QtXFx1MDAzZW1tYykpXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzozNDk2OlxcdFxcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCAxKTtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTM0OTctXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5oPTUyPXN0cnVjdCBkd19tY2lfZG1hX3NsYXZlIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMTIxLSAqIEBpcnE6IFRoZSBpcnEgdmFsdWUgdG8gYmUgcGFzc2VkIHRvIHJlcXVlc3RfaXJxLlxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg6MTIyOiAqIEBzZGlvX2lycTogU0RJTyBpbnRlcnJ1cHQgYml0IGluIGludGVycnVwdCByZWdpc3RlcnMuXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuaC0xMjMtICogQGNtZDExX3RpbWVyOiBUaW1lciBmb3IgU0QzLjAgdm9sdGFnZSBzd2l0Y2ggb3ZlciBzY2hlbWUuXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5oPTE2MT1zdHJ1Y3QgZHdfbWNpIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjMzLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg6MjM0OlxcdGludFxcdFxcdFxcdHNkaW9faXJxO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjM1LVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM9ODQwPXN0YXRpYyBpcnFyZXR1cm5fdCBqel9tbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldmlkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtODU5LVxcdFxcdGp6NDc0MF9tbWNfd3JpdGVfaXJxX3JlZyhob3N0LCBKWl9NTUNfSVJRX1NESU8pO1xcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jOjg2MDpcXHRcXHRtbWNfc2lnbmFsX3NkaW9faXJxKGhvc3QtXFx1MDAzZW1tYyk7XFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtODYxLVxcdFxcdGlycV9yZWcgXFx1MDAyNj0gfkpaX01NQ19JUlFfU0RJTztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jPTk0MD1zdGF0aWMgdm9pZCBqejQ3NDBfbW1jX3NldF9pb3Moc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfaW9zICppb3MpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy05OTQtXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM6OTk1OnN0YXRpYyB2b2lkIGp6NDc0MF9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jLTk5Ni17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYz0xMDE4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGp6NDc0MF9tbWNfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNC1cXHQuZ2V0X2NkXFx0XFx0PSBtbWNfZ3Bpb19nZXRfY2QsXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM6MTAyNTpcXHQuZW5hYmxlX3NkaW9faXJxID0gano0NzQwX21tY19lbmFibGVfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNi1cXHQuc3RhcnRfc2lnbmFsX3ZvbHRhZ2Vfc3dpdGNoID0gano0NzQwX3ZvbHRhZ2Vfc3dpdGNoLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtMjAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9zZC5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjIxOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2Rpby5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTIyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYz00MTM9c3RhdGljIGlycXJldHVybl90IGxvb25nc29uMl9tbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldmlkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNDI4LVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjQyOTpcXHRcXHRzZGlvX3NpZ25hbF9pcnEobW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy00MzAtXFx0XFx0cmV0dXJuIElSUV9IQU5ETEVEO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM9NTc0PXN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfcmVxdWVzdChzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgc3RydWN0IG1tY19yZXF1ZXN0ICptcnEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy01ODgtXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTg5OnN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU5MC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy01OTUtXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTk2OnN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfYWNrX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU5Ny17XFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTk4OlxcdGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxKG1tYywgMSk7XFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNTk5LX1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTYwMT1zdGF0aWMgc3RydWN0IG1tY19ob3N0X29wcyBsb29uZ3NvbjJfbW1jX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTYwNS1cXHQuZ2V0X2NkXFx0XFx0PSBtbWNfZ3Bpb19nZXRfY2QsXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NjA2OlxcdC5lbmFibGVfc2Rpb19pcnEgPSBsb29uZ3NvbjJfbW1jX2VuYWJsZV9zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYzo2MDc6XFx0LmFja19zZGlvX2lycVxcdD0gbG9vbmdzb24yX21tY19hY2tfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNjA4LX07XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYz02MTc9c3RhdGljIGludCBsb29uZ3NvbjJfcmVvcmRlcl9jbWRfbGlzdFtdID0geyBTRF9BUFBfU0VORF9TQ1IsIFNEX0FQUF9TRU5EX05VTV9XUl9CTEtTLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNjIyLSAqIHJlc3BvbnNlIGRhdGFzIGhhcyBkaWZmZXJlbnQgYnl0ZSBvcmRlciB3aXRoIHVzdWFsIGRhdGEgcGFja2V0cy5cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYzo2MjM6ICogSG93ZXZlciBzZGlvIGNvbnRyb2xsZXIgd2lsbCBzZW5kIHRoZXNlIGRhdGFzIGluIHVzdWFsIGRhdGEgZm9ybWF0LFxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTYyNC0gKiBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGVzZSBkYXRhcyB0byBhIHByb3RvY29sIGNvbnNpc3RlbnQgYnl0ZSBvcmRlci5cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTk0MD1zdGF0aWMgaW50IGxvb25nc29uMl9tbWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTk3My1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYzo5NzQ6XFx0LyogUHJvY2VzcyBTRElPIElSUXMgdGhyb3VnaCB0aGUgc2Rpb19pcnFfd29yay4gKi9cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy05NzUtXFx0aWYgKG1tYy1cXHUwMDNlY2FwcyBcXHUwMDI2IE1NQ19DQVBfU0RJT19JUlEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE5LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvbW1jLmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoyMDojaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3NkaW8uaFxcdTAwM2VcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTIxLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTUzLSNkZWZpbmUgICBDTEtfQUxXQVlTX09OKGgpXFx0XFx0KGgtXFx1MDAzZWRhdGEtXFx1MDAzZWFsd2F5c19vbilcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjU0OiNkZWZpbmUgICBDTEtfSVJRX1NESU9fU0xFRVAoaClcXHRcXHQoaC1cXHUwMDNlZGF0YS1cXHUwMDNlaXJxX3NkaW9fc2xlZXApXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy01NS1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9MTM2PXN0cnVjdCBtZXNvbl9tbWNfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE0MC1cXHR1bnNpZ25lZCBpbnQgYWRqdXN0O1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTQxOlxcdHVuc2lnbmVkIGludCBpcnFfc2Rpb19zbGVlcDtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE0Mi19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz05MDc9c3RhdGljIHZvaWQgbWVzb25fbW1jX3JlYWRfcmVzcChzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgc3RydWN0IG1tY19jb21tYW5kICpjbWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTkyMC1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjkyMTpzdGF0aWMgdm9pZCBfX21lc29uX21tY19lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05MjIte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz05MzE9c3RhdGljIGlycXJldHVybl90IG1lc29uX21tY19pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05NTYtXFx0XFx0c3Bpbl9sb2NrKFxcdTAwMjZob3N0LVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjk1NzpcXHRcXHRfX21lc29uX21tY19lbmFibGVfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jLCAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjk1ODpcXHRcXHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTk1OS1cXHRcXHRzcGluX3VubG9jayhcXHUwMDI2aG9zdC1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jPTEwODY9c3RhdGljIGludCBtZXNvbl9tbWNfdm9sdGFnZV9zd2l0Y2goc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfaW9zICppb3MpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMDktXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMTEwOnN0YXRpYyB2b2lkIG1lc29uX21tY19lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTExLXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTExNS1cXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2aG9zdC1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTExNjpcXHRfX21lc29uX21tY19lbmFibGVfc2Rpb19pcnEobW1jLCBlbmFibGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTExNy1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZob3N0LVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMTktXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMTIwOnN0YXRpYyB2b2lkIG1lc29uX21tY19hY2tfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMpXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTIxLXtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjExMjI6XFx0bWVzb25fbW1jX2VuYWJsZV9zZGlvX2lycShtbWMsIDEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEyMy19XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jPTExMjU9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgbWVzb25fbW1jX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEzMy1cXHQuc3RhcnRfc2lnbmFsX3ZvbHRhZ2Vfc3dpdGNoID0gbWVzb25fbW1jX3ZvbHRhZ2Vfc3dpdGNoLFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEzNDpcXHQuZW5hYmxlX3NkaW9faXJxID0gbWVzb25fbW1jX2VuYWJsZV9zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjExMzU6XFx0LmFja19zZGlvX2lycVxcdD0gbWVzb25fbW1jX2Fja19zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMzYtfTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9MTMwOT1zdGF0aWMgY29uc3Qgc3RydWN0IG1lc29uX21tY19kYXRhIG1lc29uX2d4X2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTEzMTMtXFx0LmFkanVzdFxcdFxcdD0gU0RfRU1NQ19BREpVU1QsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMzE0OlxcdC5pcnFfc2Rpb19zbGVlcFxcdD0gQ0xLX1YyX0lSUV9TRElPX1NMRUVQLFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTMxNS19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVzb25fbW1jX2RhdGEgbWVzb25fYXhnX2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTEzMjEtXFx0LmFkanVzdFxcdFxcdD0gU0RfRU1NQ19WM19BREpVU1QsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMzIyOlxcdC5pcnFfc2Rpb19zbGVlcFxcdD0gQ0xLX1YzX0lSUV9TRElPX1NMRUVQLFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTMyMy19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jLTIyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvbW1jLmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jOjIzOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2Rpby5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYy0yNC0jaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jPTEzMj1zdGF0aWMgdm9pZCBtZXNvbl9teF9zZGhjX3N0YXJ0X2NtZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYyxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYy0xNzktXFx0XFx0ICogZG93bmxvYWQgaW4gdGhlIGJyY21mbWFjIGRyaXZlciBmb3IgYSBCQ000MzM2Mi8xIGNhcmQuXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jOjE4MDpcXHRcXHQgKiBXaXRob3V0IHRoaXMgc2Rpb19tZW1jcHlfdG9pbygpICh3aXRoIGEgc2l6ZSBvZiAyMTk1NTdcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaGMtbW1jLmMtMTgxLVxcdFxcdCAqIGJ5dGVzKSB0aW1lcyBvdXQgaWYgTUVTT05fU0RIQ19NSVNDX01BTlVBTF9TVE9QIGlzIG5vdCBzZXQuXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy0yLS8qXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6MzogKiBtZXNvbi1teC1zZGlvLmMgLSBNZXNvbjYsIE1lc29uOCBhbmQgTWVzb244YiBTRElPL01NQyBIb3N0IENvbnRyb2xsZXJcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy00LSAqXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy0yNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL21tYy5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjI4OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2Rpby5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTI5LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYz02Mjk9c3RhdGljIGludCBtZXNvbl9teF9tbWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02MzAte1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjYzMTpcXHRjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBtZXNvbl9teF9zZGlvX3JlZ21hcF9jb25maWcgPSB7XFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNjMyLVxcdFxcdC5yZWdfYml0cyA9IDgsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02NjgtXFx0aG9zdC1cXHUwMDNlcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9tbWlvKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIGJhc2UsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NjY5OlxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNm1lc29uX214X3NkaW9fcmVnbWFwX2NvbmZpZyk7XFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNjcwLVxcdGlmIChJU19FUlIoaG9zdC1cXHUwMDNlcmVnbWFwKSkge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM9NzQ4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uX214X21tY19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjc0OTpcXHR7IC5jb21wYXRpYmxlID0gXFxcImFtbG9naWMsbWVzb244LXNkaW9cXFwiLCB9LFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjc1MDpcXHR7IC5jb21wYXRpYmxlID0gXFxcImFtbG9naWMsbWVzb244Yi1zZGlvXFxcIiwgfSxcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy03NTEtXFx0eyAvKiBzZW50aW5lbCAqLyB9XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYz03NTU9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbWVzb25fbXhfbW1jX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTc1OC1cXHQuZHJpdmVyICA9IHtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYzo3NTk6XFx0XFx0Lm5hbWUgPSBcXFwibWVzb24tbXgtc2Rpb1xcXCIsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNzYwLVxcdFxcdC5wcm9iZV90eXBlID0gUFJPQkVfUFJFRkVSX0FTWU5DSFJPTk9VUyxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jX3NwaS5jLTMzLSAqXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNfc3BpLmM6MzQ6ICogLSBGb3Igbm93LCB3ZSB3b24ndCB0cnkgdG8gaW50ZXJvcGVyYXRlIHdpdGggYSByZWFsIG1tYy9zZC9zZGlvXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNfc3BpLmMtMzUtICogICBjb250cm9sbGVyLCBhbHRob3VnaCBzb21lIG9mIHRoZW0gZG8gaGF2ZSBoYXJkd2FyZSBzdXBwb3J0IGZvclxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTExPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdTMwMCA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyMS1cXHQuZGF0YWN0cmxfYmxvY2tzelxcdD0gMTEsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTIyOlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxMjM6XFx0LnN0X3NkaW9cXHRcXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMTI0LVxcdC5wd3JyZWdfcG93ZXJ1cFxcdFxcdD0gTUNJX1BXUl9PTixcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTEzNj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X25vbWFkaWsgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xNDYtXFx0LmRhdGFjdHJsX2Jsb2Nrc3pcXHQ9IDExLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE0NzpcXHQuZGF0YWN0cmxfbWFza19zZGlvXFx0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTQ4OlxcdC5zdF9zZGlvXFx0XFx0PSB0cnVlLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE0OS1cXHQuc3RfY2xrZGl2XFx0XFx0PSB0cnVlLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTYyPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdXg1MDAgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xNzYtXFx0LmRtYV9wb3dlcl9vZl8yXFx0XFx0PSB0cnVlLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE3NzpcXHQuZGF0YWN0cmxfbWFza19zZGlvXFx0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTc4OlxcdC5zdF9zZGlvXFx0XFx0PSB0cnVlLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3OS1cXHQuc3RfY2xrZGl2XFx0XFx0PSB0cnVlLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTk2PXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdXg1MDB2MiA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTIxMS1cXHQuZG1hX3Bvd2VyX29mXzJcXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjEyOlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoyMTM6XFx0LnN0X3NkaW9cXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjE0LVxcdC5zdF9jbGtkaXZcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0yMzE9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMiA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI0NC1cXHQuZGF0YWN0cmxfYmxvY2tzelxcdD0gMTEsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjQ1OlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoyNDY6XFx0LnN0X3NkaW9cXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjQ3LVxcdC5zdF9jbGtkaXZcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0yNTY9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tYyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI3Mi1cXHQuZGF0YWN0cmxfYW55X2Jsb2Nrc3pcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjczOlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzQtXFx0LnN0bTMyX2lkbWFic2l6ZV9tYXNrXFx0PSBHRU5NQVNLKDEyLCA1KSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzUtXFx0LnN0bTMyX2lkbWFic2l6ZV9hbGlnblxcdD0gQklUKDUpLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjI3NjpcXHQuc3VwcG9ydHNfc2Rpb19pcnFcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjc3LVxcdC5idXN5X3RpbWVvdXRcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0yODQ9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tY3YyID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzAwLVxcdC5kYXRhY3RybF9hbnlfYmxvY2tzelxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzozMDE6XFx0LmRhdGFjdHJsX21hc2tfc2Rpb1xcdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMwMi1cXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcXHQ9IEdFTk1BU0soMTYsIDUpLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMwMy1cXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXFx0PSBCSVQoNSksXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MzA0OlxcdC5zdXBwb3J0c19zZGlvX2lycVxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMDUtXFx0LmRtYV9sbGlcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0zMTM9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tY3YzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzI5LVxcdC5kYXRhY3RybF9hbnlfYmxvY2tzelxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzozMzA6XFx0LmRhdGFjdHJsX21hc2tfc2Rpb1xcdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMzMS1cXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcXHQ9IEdFTk1BU0soMTYsIDYpLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMzMi1cXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXFx0PSBCSVQoNiksXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MzMzOlxcdC5zdXBwb3J0c19zZGlvX2lycVxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMzQtXFx0LmRtYV9sbGlcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz00MjU9c3RhdGljIHZvaWQgbW1jaV93cml0ZV9kYXRhY3RybHJlZyhzdHJ1Y3QgbW1jaV9ob3N0ICpob3N0LCB1MzIgZGF0YWN0cmwpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy00MjgtXFx0ZGF0YWN0cmwgfD0gaG9zdC1cXHUwMDNlZGF0YWN0cmxfcmVnIFxcdTAwMjYgKGhvc3QtXFx1MDAzZXZhcmlhbnQtXFx1MDAzZWJ1c3lfZHBzbV9mbGFnIHxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzo0Mjk6XFx0XFx0XFx0XFx0XFx0ICBob3N0LVxcdTAwM2V2YXJpYW50LVxcdTAwM2VkYXRhY3RybF9tYXNrX3NkaW8pO1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTQzMC1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTEyMzY9c3RhdGljIHZvaWQgbW1jaV9zdGFydF9kYXRhKHN0cnVjdCBtbWNpX2hvc3QgKmhvc3QsIHN0cnVjdCBtbWNfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjEtXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTI2MjpcXHRpZiAoaG9zdC1cXHUwMDNlbW1jLVxcdTAwM2VjYXJkIFxcdTAwMjZcXHUwMDI2IG1tY19jYXJkX3NkaW8oaG9zdC1cXHUwMDNlbW1jLVxcdTAwM2VjYXJkKSkge1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjMtXFx0XFx0dTMyIGNsaztcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjY0LVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjEyNjU6XFx0XFx0ZGF0YWN0cmwgfD0gdmFyaWFudC1cXHUwMDNlZGF0YWN0cmxfbWFza19zZGlvO1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjYtXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjcyLVxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjEyNzM6XFx0XFx0aWYgKHZhcmlhbnQtXFx1MDAzZXN0X3NkaW8gXFx1MDAyNlxcdTAwMjYgZGF0YS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNTUNfREFUQV9XUklURSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNzQtXFx0XFx0ICAgIChob3N0LVxcdTAwM2VzaXplIFxcdTAwM2MgOCB8fFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTY5Nz1zdGF0aWMgaXJxcmV0dXJuX3QgbW1jaV9waW9faXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3NjgtXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTc2OTpzdGF0aWMgdm9pZCBtbWNpX3dyaXRlX3NkaW9faXJxX2JpdChzdHJ1Y3QgbW1jaV9ob3N0ICpob3N0LCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3NzAte1xcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjE5LjM3NzM3ODYyMloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5MzAyNzA3MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIGBicmNtZm1hY2AgRHJpdmVyIGFuZCBGdXp6aW5nIFBvc3NpYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBicmNtZm1hY2AgZHJpdmVyIGFuZCB0aGlua2luZyBhYm91dCBob3cgdG8gZnV6eiBpdCBlZmZlY3RpdmVseSB3aXRoIHN5emthbGxlci4gRmlyc3QsIGl0J3MgY2xlYXIgdGhhdCBTRElPIGlzIGEgYnVzLCBhbmQgdGhlIGtlcm5lbCBoYXMgYSBudW1iZXIgb2YgU0RJTyBob3N0IGNvbnRyb2xsZXJzIHRvIG1hbmFnZSB0aGVzZSBpbnRlcmZhY2VzLiBTeXprYWxsZXIgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB0cnVseSBnZW5lcmljIFNESU8gcGFja2V0IGluamVjdG9yLiBIbW0sIHRob3VnaCB0aGVyZSdzIHRoZSBXaS1GaSBmdXp6aW5nLCB3aGljaCBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYC4gQnV0IHRoYXQncyBzcGVjaWZpYyB0byBtYWM4MDIxMSBkcml2ZXJzLiBUaGlzIGBicmNtZm1hY2AgZHJpdmVyIGlzIGRpZmZlcmVudDsgaXQncyBhIEZ1bGxNQUMgZHJpdmVyIGFuZCBjYW4gdGFsayB0byBmaXJtd2FyZSB0aHJvdWdoIFNESU8sIFVTQiwgKm9yKiBQQ0llLiBcblxuV2FpdCBhIG1pbnV0ZSwgSSByZW1lbWJlciB0aGVyZSdzIGEgVVNCIGludGVyZmFjZSBmb3IgYGJyY21mbWFjYCAoYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuY2ApLiBJZiBzeXprYWxsZXIgaXMgYWxyZWFkeSBzZXQgdXAgdG8gZnV6eiBVU0IsIEkgc2hvdWxkIGJlIGFibGUgdG8gcHJvYmUgYGJyY21mbWFjYCB1c2luZyB0aGUgVVNCIGludGVyZmFjZS4gQnV0LCBob2xkIG9uLiBUaGlzIHBhdGNoIGlzIGxvY2F0ZWQgc3BlY2lmaWNhbGx5IGluIGBzZGlvLmNgLCBsb29raW5nIGF0IGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIERvZXMgdGhpcyBtZWFuIHRoZSBjb2RlIGluIGBzZGlvLmNgIGlzIGV2ZXIgcmVhY2hhYmxlIGZyb20gdGhlIFVTQiBpbnRlcmZhY2U/IE5vLCB0aGV5IGFyZSBkaWZmZXJlbnQgYnVzIGludGVyZmFjZXMgZm9yIHRoZSBzYW1lIGRyaXZlci4gSSBuZWVkIHRvIGJlIHN1cmUuIEl0J3MgdGltZSB0byBjaGVjayBpZiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIGlzIG9ubHkgY29tcGlsZWQsIG9yIHJlYWNoYWJsZSwgd2hlbiBTRElPIGlzIHNlbGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzMyMSwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOToyNS4zMDc2NzU2OTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDgzMjAwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX3JlYWRfY29udHJvbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NTc9c3RhdGljIHVpbnQgYnJjbWZfc2Rpb19yZWFkZnJhbWVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHVpbnQgbWF4ZnJhbWVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE3LVxcdFxcdFxcdGlmIChyZC1cXHUwMDNlY2hhbm5lbCA9PSBTRFBDTV9DT05UUk9MX0NIQU5ORUwpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE5MTg6XFx0XFx0XFx0XFx0YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woYnVzLCBidXMtXFx1MDAzZXJ4aGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxOS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRyZC1cXHUwMDNlbGVuLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOToyNS41OTg1MTM5MjlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDUwOTM3MjU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipTeXprYWxsZXIncyBEaXNjb3ZlcnkqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGlzIHZ1bG5lcmFiaWxpdHkgaXMgaXNvbGF0ZWQgdG8gYHNkaW8uY2AuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgYHNkaW8uY2AgaXMgZXZlbiBhY2Nlc3NpYmxlIHdpdGhpbiB0aGUgU3l6a2FsbGVyIHRlc3RpbmcgZW52aXJvbm1lbnQuIFRoZW4gSSBxdWlja2x5IHJlbWVtYmVyZWQgdGhlIGNvbW1pdCBtZXNzYWdlIHNheWluZyBcIkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gSG9sZCBvbiBhIHNlY29uZC4uLlN5emthbGxlciAqZm91bmQqIHRoaXMgYnVnPyBXb3chIFRoYXQncyBpbXByZXNzaXZlLiBOb3cgSSdtIHJlYWxseSBjdXJpb3VzOiBob3cgZGlkIFN5emthbGxlciBtYW5hZ2UgdG8gdHJpZ2dlciBhIGJ1ZyB3aXRoaW4gYGJyY21mbWFjL3NkaW8uY2A/IFRoYXQncyBub3QgYSBjb21tb24gdGFyZ2V0LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgYXR0YWNrIHZlY3Rvci5cblxuTXkgbmV4dCBzdGVwIGlzIGRlZmluaXRlbHkgdG8gaW52ZXN0aWdhdGUgaWYgdGhlcmUncyBkZWRpY2F0ZWQgU0RJTyBmdXp6aW5nIGhhcHBlbmluZywgb3IgaWYgdGhlIGNvZGUgaXMgYmVpbmcgcmVhY2hlZCBpbmRpcmVjdGx5LiBQZXJoYXBzIHRoZXJlJ3MgYSBzaW11bGF0ZWQgU0RJTyBob3N0IGNvbnRyb2xsZXIgc2V0IHVwIGZvciB0ZXN0aW5nIHB1cnBvc2VzPyBJIHNob3VsZCBzdGFydCBieSBzZWFyY2hpbmcgd2l0aGluIHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeSBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBcImR1bW15XCIuIFRoYXQgc2hvdWxkIGdpdmUgbWUgc29tZSBjbHVlcyBhYm91dCB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTgzMjgsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MzAuMTA3ODg5ODQ4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTQyNDg5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkdW1teVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9ob3N0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jPTU3PXN0YXRpYyBpbnQgdGh1bmRlcl9tbWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jLTEzNC1cXHRcXHQgKiBtbWNfb2ZfcGFyc2UgYW5kIGRldm0qIHJlcXVpcmUgb25lIGRldmljZSBwZXIgc2xvdC5cXG5kcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jOjEzNTpcXHRcXHQgKiBDcmVhdGUgYSBkdW1teSBkZXZpY2UgcGVyIHNsb3QgYW5kIHNldCB0aGUgbm9kZSBwb2ludGVyIHRvXFxuZHJpdmVycy9tbWMvaG9zdC9jYXZpdW0tdGh1bmRlcnguYy0xMzYtXFx0XFx0ICogdGhlIHNsb3QuIFRoZSBlYXNpZXN0IHdheSB0byBnZXQgdGhpcyBpcyB1c2luZ1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9saXRleF9tbWMuYz00NTA9c3RhdGljIHZvaWQgbGl0ZXhfbW1jX3NldF9pb3Moc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfaW9zICppb3MpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xpdGV4X21tYy5jLTQ1NS1cXHQgKiBUaGUgU0Qgc3BlY2lmaWNhdGlvbiByZXF1aXJlcyBhdCBsZWFzdCA3NCBpZGxlIGNsb2NrcyBiZWZvcmUgQ01EMC5cXG5kcml2ZXJzL21tYy9ob3N0L2xpdGV4X21tYy5jOjQ1NjpcXHQgKiBUaGVzZSBkdW1teSBjeWNsZXMgaXMgZ2VuZXJhdGVkIGJ5IHdyaXRpbmcgTElURVhfUEhZX0lOSVRJQUxJWkUuXFxuZHJpdmVycy9tbWMvaG9zdC9saXRleF9tbWMuYy00NTctXFx0ICovXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L29tYXAuYz0yMDE9c3RhdGljIHZvaWQgbW1jX29tYXBfc2VsZWN0X3Nsb3Qoc3RydWN0IG1tY19vbWFwX3Nsb3QgKnNsb3QsIGludCBjbGFpbWVkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9vbWFwLmMtMjM1LVxcbmRyaXZlcnMvbW1jL2hvc3Qvb21hcC5jOjIzNjpcXHRcXHQvKiBEb2luZyB0aGUgZHVtbXkgcmVhZCBoZXJlIHNlZW1zIHRvIHdvcmsgYXJvdW5kIHNvbWUgYnVnXFxuZHJpdmVycy9tbWMvaG9zdC9vbWFwLmMtMjM3LVxcdFxcdCAqIGF0IGxlYXN0IGluIE9NQVAyNHh4IHNpbGljb24gd2hlcmUgdGhlIGNvbW1hbmQgd291bGQgbm90XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfcGNpX3NkbW1jLmM9MjA4PXN0YXRpYyB2b2lkIHNkX3NlbmRfY21kX2dldF9yc3Aoc3RydWN0IHJlYWx0ZWtfcGNpX3NkbW1jICpob3N0LFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3BjaV9zZG1tYy5jLTMwMS1cXHRcXHQgKiBUaGUgY29udHJvbGxlciBvZmZsb2FkcyB0aGUgbGFzdCBieXRlIHtDUkMtNywgZW5kIGJpdCAxJ2IxfVxcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF9wY2lfc2RtbWMuYzozMDI6XFx0XFx0ICogb2YgcmVzcG9uc2UgdHlwZSBSMi4gQXNzaWduIGR1bW15IENSQywgMCwgYW5kIGVuZCBiaXQgdG8gdGhlXFxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3BjaV9zZG1tYy5jLTMwMy1cXHRcXHQgKiBieXRlKHB0clsxNl0sIGdvZXMgaW50byB0aGUgTFNCIG9mIHJlc3BbM10gbGF0ZXIpLlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3VzYl9zZG1tYy5jPTI4NT1zdGF0aWMgdm9pZCBzZF9zZW5kX2NtZF9nZXRfcnNwKHN0cnVjdCBydHN4X3VzYl9zZG1tYyAqaG9zdCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYy00MjUtXFx0XFx0ICogVGhlIGNvbnRyb2xsZXIgb2ZmbG9hZHMgdGhlIGxhc3QgYnl0ZSB7Q1JDLTcsIGVuZCBiaXQgMSdiMX1cXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfdXNiX3NkbW1jLmM6NDI2OlxcdFxcdCAqIG9mIHJlc3BvbnNlIHR5cGUgUjIuIEFzc2lnbiBkdW1teSBDUkMsIDAsIGFuZCBlbmQgYml0IHRvIHRoZVxcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYy00MjctXFx0XFx0ICogYnl0ZShwdHJbMTZdLCBnb2VzIGludG8gdGhlIExTQiBvZiByZXNwWzNdIGxhdGVyKS5cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14LmMtMjE0LVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14LmM6MjE1Oi8qIHRoZSBjb250cm9sbGVyIGhhcyBkdW1teSBwYWQgZm9yIGNsb2NrIGxvb3BiYWNrICovXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYy0yMTYtI2RlZmluZSBFU0RIQ19GTEFHX0RVTU1ZX1BBRFxcdFxcdEJJVCgxOSlcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYz0xMDE9c3RhdGljIHUzMiBweGF2MV9pcnEoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHUzMiBpbnRtYXNrKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEwNi1cXHRpZiAocHhhdjJfaG9zdC1cXHUwMDNlc2Rpb19tcnEgXFx1MDAyNlxcdTAwMjYgKGludG1hc2sgXFx1MDAyNiBTREhDSV9JTlRfQ01EX01BU0spKSB7XFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjEwNzpcXHRcXHQvKiBUaGUgZHVtbXkgQ01EMCBmb3IgdGhlIFNESU8gd29ya2Fyb3VuZCBqdXN0IGNvbXBsZXRlZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xMDgtXFx0XFx0c2RoY2lfd3JpdGVsKGhvc3QsIGludG1hc2sgXFx1MDAyNiBTREhDSV9JTlRfQ01EX01BU0ssIFNESENJX0lOVF9TVEFUVVMpO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jPTEyMz1zdGF0aWMgdm9pZCBweGF2MV9yZXF1ZXN0X2RvbmUoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHN0cnVjdCBtbWNfcmVxdWVzdCAqbXJxKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEzNi1cXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmM6MTM3OlxcdFxcdC8qIENsb2NrIGlzIG5vdyBzdG9wcGVkLCBzbyByZXN0YXJ0IGl0IGJ5IHNlbmRpbmcgYSBkdW1teSBDTUQwICovXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEzOC1cXHRcXHRweGF2Ml9ob3N0ID0gc2RoY2lfcGx0Zm1fcHJpdihzZGhjaV9wcml2KGhvc3QpKTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xNDktXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjE1MDpcXHRcXHQvKiBEb24ndCBmaW5pc2ggdGhpcyByZXF1ZXN0IHVudGlsIHRoZSBkdW1teSBDTUQwIGZpbmlzaGVzICovXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTE1MS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmM9NjUzPXN0YXRpYyBpbnQgc2RoY2lfcHJlX2RtYV90cmFuc2ZlcihzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02ODktXFx0XFx0XFx0XFx0XFx0ICAgbW1jX2dldF9kbWFfZGlyKGRhdGEpKTtcXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmM6NjkwOlxcdFxcdC8qIEp1c3QgYSBkdW1teSB2YWx1ZSAqL1xcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02OTEtXFx0XFx0c2dfY291bnQgPSAxO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOTozMC4xNzczMjMxNDdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM4MzYyOTAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIFRyaWdnZXIqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLi4uIGlzIHRoZXJlIHNvbWUga2luZCBvZiBgc3l6X21hYzgwMjExX2h3c2ltYCB0aGluZ3kgaW4gc3l6a2FsbGVyIEknbSBtaXNzaW5nPyBOb3BlLCB0aGF0J3MgZGVmaW5pdGVseSBtYWM4MDIxMS1zcGVjaWZpYy4gSG1tLCB0aGF0J3Mgbm90IGl0LiBSaWdodCwgc28gaG93IGluIHRoZSB3b3JsZCBpcyBzeXprYWxsZXIgaGl0dGluZyBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgPyBJdCBkb2Vzbid0IHF1aXRlIGFkZCB1cC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLlxuXG5BbHJpZ2h0LCBsZXQncyB0YWtlIGEgbG9vay4gSSdsbCBiZXQgdGhlcmUncyBhbiBTRElPIGZ1enplciBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbC4gV2hlcmUgd291bGQgdGhleSBwdXQgdGhhdCwgdGhvdWdoPyBQcm9iYWJseSBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgbW1jIHN1YnN5c3RlbSwgcmlnaHQ/IEknbGwgY2hlY2sgYGRyaXZlcnMvbW1jL2NvcmUvYCBhbmQgc2VlIGlmIHRoZXJlJ3MgYW55IG9idmlvdXMgY2FuZGlkYXRlcyB0aGVyZS4gTGV0IG1lIHN0YXJ0IHdpdGggYSBxdWljayBzZWFyY2ggb2YgdGhlIGBkcml2ZXJzL21tYy9gIGRpcmVjdG9yeSBmb3IgXCJmdXp6XCIgb3IgXCJzeXpcIi4gSG9wZWZ1bGx5LCB0aGlzIG5hcnJvd3MgdGhpbmdzIGRvd24sIGFuZCBnaXZlcyBtZSBhIHN0YXJ0aW5nIHBvaW50LiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZmluZCFcblxuXG4iLCJJbnB1dFRva2VucyI6MjAxNzksIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MzQuNTYwOTU1Nzk4WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDU2NTU3OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZnV6elwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjM0LjY0NTUyOTMyN1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODc4NDYxNzE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIEJyY21mbWFjIFNESU8gQnVnKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gcGlucG9pbnQgaG93IHRoaXMgYGJyY21mbWFjYCBTRElPIGJ1ZyBpcyBiZWluZyB0cmlnZ2VyZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBzZWUgaWYgYW55IGBzZGlvYCBtZW50aW9ucyBwb3AgdXAgd2l0aGluIHRoZSBgbmV0L21hYzgwMjExL2Agb3IgYG5ldC93aXJlbGVzcy9gIGRpcmVjdG9yaWVzLiBIb3dldmVyLCBteSB1bmRlcnN0YW5kaW5nIG9mIHN5emthbGxlciBzdWdnZXN0cyB0aGUgdW5kZXJseWluZyBkZXZpY2UgY291bGQgYmUgYHZoY2lgIG92ZXIgVVNCLiBNYXliZSB0aGUgdHJpZ2dlciBpcyBpbmRpcmVjdCwgYW5kIHRoZSByb290IGNhdXNlIGxpZXMgaW4gYGJyY21mbWFjYCwgYnV0IG5vdCBzdHJpY3RseSB3aXRoIFNESU8uIExldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCB0aGUgcGF0Y2ggaXMgaW5kZWVkIGluIGBicmNtZm1hYy9zZGlvLmNgLiBBaCwgeWVzLCBpdCBpcy5cblxuTm93LCBteSBuZXh0IGxpbmUgb2YgdGhpbmtpbmcgaXMsIGNhbiBgYnJjbWZtYWNgIGJlIGNvbXBpbGVkIGludG8gc29tZXRoaW5nIGVsc2UsIG9yIHJlYWNoYWJsZSB2aWEgYW5vdGhlciByb3V0ZT8gU3l6a2FsbGVyIGhhcyBhIGBzeXpfODAyMTFfaW5qZWN0X2ZyYW1lYCBwc2V1ZG8tc3lzY2FsbCwgc28sIHBlcmhhcHMgdGhlcmUncyBhIGNvbm5lY3Rpb24gdGhlcmU/IE5vLCBoYW5nIG9uLiBTeXprYWxsZXIgYWxzbyBoYXMgYHN5el91c2JfY29ubmVjdGAsIHdoaWNoIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzLiBCdXQgdGhpcyBpcyBhbiBTRElPIGlzc3VlLiBEb2VzIHN5emthbGxlciBvZmZlciBTRElPIGVtdWxhdGlvbiBhcyB3ZWxsP1xuXG5BbHJpZ2h0LCBsZXQncyBzdGVwIGJhY2sgYW5kIGNvbnNpZGVyIGhvdyBTRElPIGludGVyYWN0aW9ucyBtaWdodCBiZSBzaW11bGF0ZWQuIEknbGwgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGluIGBkcml2ZXJzL21tYy9jb3JlL3NkaW8uY2AgYW5kIGBkcml2ZXJzL21tYy9jb3JlL2NvcmUuY2AgZm9yIGFueSBzaWduIG9mIGEgZHVtbXkgaG9zdCwgYSB2aXJ0dWFsIFNESU8gaW50ZXJmYWNlLiBXaGF0IGFib3V0IGB2aXJ0aW9fbW1jYD8gTGV0IG1lIGxvb2sgaW5zaWRlIGBkcml2ZXJzL21tYy9ob3N0L2AgZm9yIGB2aXJ0aW9gLiBJJ2xsIHRyeSB0byBmaW5kIGFueSBwb3RlbnRpYWwgYXZlbnVlcyBmb3IgdHJpZ2dlcmluZyB0aGlzIFNESU8gdnVsbmVyYWJpbGl0eSB3aXRoaW4gdGhlIHN5emthbGxlciBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDU4NSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOTo0MC41MjM5OTM4NjJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0ODYwMDM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZpcnRpb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9ob3N0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L3VzZGhpNnJvbDAuYy0yNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZS5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdXNkaGk2cm9sMC5jOjI3OiNpbmNsdWRlIFxcdTAwM2NsaW51eC92aXJ0aW8uaFxcdTAwM2VcXG5kcml2ZXJzL21tYy9ob3N0L3VzZGhpNnJvbDAuYy0yOC0jaW5jbHVkZSBcXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcXHUwMDNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjQwLjU4ODg2MDg0WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgzMzcwNjI2MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgYGJyY21mbWFjYCBEcml2ZXIgZm9yIFNpbXVsYXRpb24gQ2FwYWJpbGl0aWVzKipcblxuT2theSwgc28gdGhlcmUncyBubyBgdmlydGlvX21tY2AgZHJpdmVyLCB0aGF0IG11Y2ggaXMgY2xlYXIuIEhtbSwgd2FpdCBhIHNlY29uZC4uLiBkaWRuJ3Qgc3l6a2FsbGVyIGZpbmQgYSBidWcgaW4gc29tZXRoaW5nIHJlbGF0ZWQgdG8gU0RJTyBhbmQgYGJyY21mbWFjYD8gSSBuZWVkIHRvIGpvZyBteSBtZW1vcnkuIExldCBtZSBzZWUuLi4gSSB3b25kZXIgaWYgdGhlcmUncyBhIHN5emthbGxlciBwcmltaXRpdmUgbGlrZSBgc3l6X3NkaW9gPyBXaGVyZSB3b3VsZCBJIGV4cGVjdCB0byBmaW5kIG1vY2sgb3Igc2ltdWxhdGlvbiBjb2RlIGZvciBNTUMgb3IgU0RJTyBpbnRlcmZhY2VzPyBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCBvciBkaXZlIGludG8gdGhlIGBkcml2ZXJzL21tYy9gIGRpcmVjdG9yeS5cblxuTm8gZGljZSB0aGVyZS4gT2theSwgc28gbWF5YmUgaXQgaXNuJ3QgYSBkaXJlY3QgbW9jay4gUGVyaGFwcyB0aGUgYGJyY21mbWFjYCBkcml2ZXIgaXMgdGVzdGVkIHZpYSBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB0aGUgc3RhbmRhcmQgZHJpdmVyIGZvciBzaW11bGF0aW5nIHdpcmVsZXNzIGRldmljZXM/IE5vLCB0aGF0J3Mgbm90IHJpZ2h0OyBgYnJjbWZtYWNgIGlzIGEgcmVhbCBkcml2ZXIsIG5vdCBhIHNpbXVsYXRpb24uIE9rYXksIHNvIHRoZW4sIGhvdyBkaWQgc3l6a2FsbGVyIGZpbmQgYSBidWcgaW4gYGJyY21mbWFjL3NkaW8uY2A/IFRoYXQncyB0aGUgcmVhbCBwdXp6bGUuXG5cbkFoYSEgTWF5YmUsIGp1c3QgbWF5YmUsIGBicmNtZm1hY2AgaGFzIGl0cyBvd24gaW50ZXJuYWwgc2ltdWxhdGlvbiBpbnRlcmZhY2UuIFBlcmhhcHMgaXQncyBhIGRlZGljYXRlZCBgc2ltYCBmZWF0dXJlIG9yLCBJIGRvbid0IGtub3csIGEgd2F5IHRvIGZ1enogdGhlIGNvZGUgaW50ZXJuYWxseS4gVGltZSB0byBkaWcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9gIGRpcmVjdG9yeSBhbmQgc2VlIGlmIEkgY2FuIGZpbmQgYW55IHRyYWNlIG9mIGEgYHNpbWAgaW50ZXJmYWNlIG9yIGFueXRoaW5nIHJlbGF0ZWQgdG8gZnV6emluZy4gVGhhdCdzIG15IG5leHQgYXZlbnVlIG9mIGludmVzdGlnYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzIzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjQ4LjkyNTkyNzQ2WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTMxODU4NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ltXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MjAzMT1icmNtZl9zZXRfd3NlY19tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMjA4Ni1cXHRicmNtZl9kYmcoQ09OTiwgXFxcInB2YWwgKCVkKSBndmFsICglZClcXFxcblxcXCIsIHB2YWwsIGd2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjIwODc6XFx0LyogSW4gY2FzZSBvZiBwcml2YWN5LCBidXQgbm8gc2VjdXJpdHkgYW5kIFdQUyB0aGVuIHNpbXVsYXRlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMjA4OC1cXHQvKiBzZXR0aW5nIEFFUy4gV1BTLTIuMCBhbGxvd3Mgbm8gc2VjdXJpdHkgICAgICAgICAgICAgICAgICAgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9OTY9dm9pZCBicmNtZl9jb25maWd1cmVfYXJwX25kX29mZmxvYWQoc3RydWN0IGJyY21mX2lmICppZnAsIGJvb2wgZW5hYmxlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTEtXFx0LyogVHJ5IHRvIHNldCBhbmQgZW5hYmxlIEFSUCBvZmZsb2FkIGZlYXR1cmUsIHRoaXMgbWF5IGZhaWwsIHRoZW4gaXQgICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxMTI6XFx0LyogaXMgc2ltcGx5IG5vdCBzdXBwb3J0ZWQgYW5kIGVyciAwIHdpbGwgYmUgcmV0dXJuZWQgICAgICAgICAgICAgICAgICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTMtXFx0ZXJyID0gYnJjbWZfZmlsX2lvdmFyX2ludF9zZXQoaWZwLCBcXFwiYXJwX29sXFxcIiwgbW9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTEyMjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYnVzX3Jlc2V0X2ZvcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxMjI1OlxcdC5vcGVuXFx0PSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEyMjYtXFx0LndyaXRlXFx0PSBidXNfcmVzZXRfd3JpdGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5oLTI5LSAqIERPVDExSDogZmlybXdhcmUgc3VwcG9ydHMgODAyLjExaFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmg6MzA6ICogU0FFOiBzaW11bHRhbmVvdXMgYXV0aGVudGljYXRpb24gb2YgZXF1YWxzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuaC0zMS0gKiBGV0FVVEg6IEZpcm13YXJlIGF1dGhlbnRpY2F0b3JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jPTI1OT11MzIgYnJjbWZfZmxvd3JpbmdfZW5xdWV1ZShzdHJ1Y3QgYnJjbWZfZmxvd3JpbmcgKmZsb3csIHUxNiBmbG93aWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmxvd3JpbmcuYy0yNzQtXFx0XFx0ICogcHJvdGVjdCwgYnV0IHRoYXQgaXMgdW5kZXNpcmFibGUgZm9yIGV2ZXJ5IGVucXVldWUgYW5kXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Zsb3dyaW5nLmM6Mjc1OlxcdFxcdCAqIGRlcXVldWUuIFRoaXMgc2ltcGxlIGNoZWNrIHdpbGwgc29sdmUgYSBwb3NzaWJsZSByYWNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Zsb3dyaW5nLmMtMjc2LVxcdFxcdCAqIGNvbmRpdGlvbiBpZiBpdCBvY2N1cnMuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9NDg5PXN0YXRpYyB2b2lkIGJyY21mX3AycF9nZW5lcmF0ZV9ic3NfbWFjKHN0cnVjdCBicmNtZl9wMnBfaW5mbyAqcDJwLCB1OCAqZGV2X2FkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtNTE4LVxcdC8qIEdlbmVyYXRlIHRoZSBQMlAgSW50ZXJmYWNlIEFkZHJlc3MuICBJZiB0aGUgZGlzY292ZXJ5IGFuZCBjb25uZWN0aW9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjUxOTpcXHQgKiBCU1NDRkdzIG5lZWQgdG8gc2ltdWx0YW5lb3VzbHkgY28tZXhpc3QsIHRoZW4gdGhpcyBhZGRyZXNzIG11c3QgYmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtNTIwLVxcdCAqIGRpZmZlcmVudCBmcm9tIHRoZSBQMlAgRGV2aWNlIEFkZHJlc3MsIGJ1dCBhbHNvIGxvY2FsbHkgYWRtaW5pc3RlcmVkLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTg5MT1icmNtZl91c2JfZGxfd3JpdGVpbWFnZShzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8sIHU4ICpmdywgaW50IGZ3bGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTkzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6OTMyOlxcdFxcdFxcdC8qIHNpbXBseSBhdm9pZCBoYXZpbmcgdG8gc2VuZCBhIFpMUCBieSBlbnN1cmluZyB3ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy05MzMtXFx0XFx0XFx0ICogbmV2ZXIgaGF2ZSBhbiBldmVuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjQ5LjA3OTEyMDU4N1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTYyNTYxODkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlYnVnZ2luZyB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBUcmlnZ2VyKipcblxuT2theSwgc28gdGhlcmUncyBubyBvYnZpb3VzIHNpbXVsYXRvciB0aGF0J3MgY2F1c2luZyB0aGlzLiBUaGUgaW50ZXJlc3RpbmcgcGFydCBpcywgaG93IGRpZCBzeXprYWxsZXIgZXZlbiAqaGl0KiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgPyBUaGF0J3MgdGhlIHJlYWwgcHV6emxlLiBMZXQncyBzdGFydCB3aXRoIGEgYmFzaWMgYXBwcm9hY2ggYW5kIHNlYXJjaCB0aGUgc3l6a2FsbGVyIGJ1ZyB0cmFja2VyOyBtYXliZSBpdCdzIGEga25vd24gaXNzdWUuIE90aGVyd2lzZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHBhdGguXG5cbkNvdWxkIHRoZXJlIGJlIGFuIFNESU8gZnV6emVyIGJha2VkIGludG8gdGhlIGtlcm5lbCBzb21ld2hlcmU/IFRpbWUgdG8gY2hlY2sgdGhlIHN0YW5kYXJkIGxvY2F0aW9ucywgc3BlY2lmaWNhbGx5IHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeS4gSSdsbCBzY2FuIGZvciBhbnl0aGluZyBuYW1lZCBgZnV6emAsIGBkdW1teWAsIGB2aGNpYCwgYHZpcnRpb2AsIG9yIGBtYWM4MDIxMV9od3NpbWAgd2hpY2ggd291bGQgcHJvdmlkZSBhIGxpa2VseSB0ZXN0IGhhcm5lc3MuXG5cbkhtbSwgd2FpdC4gSXMgaXQgcG9zc2libGUgdGhhdCBgYnJjbWZtYWNgIGdldHMgcHJvYmVkIHZpYSBhICpkaWZmZXJlbnQqIGJ1cywgYW5kICp0aGVuKiB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBmdW5jdGlvbiBnZXRzIGNhbGxlZCBpbmRpcmVjdGx5PyBCdXQgbm8sIGEgcXVpY2sgY2hlY2ssIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgaXMgcmlnaHQgdGhlcmUgaW4gYHNkaW8uY2AsIHdoaWNoIGlzIHRoZSBTRElPIGJ1cyBpbnRlcmZhY2UuIFNvIGl0J3MgY2xlYXJseSByZWxhdGVkIHRvIFNESU8uXG5cblJpZ2h0ISBgc2Rpby5jYCAqcmVnaXN0ZXJzKiBhbiBTRElPIGRyaXZlcjogYHNkaW9fcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmJyY21mX3NkaW9kX2RyaXZlcik7YC4gVGhhdCdzIHRoZSBrZXkuIE5vdywgdGhlIHF1ZXN0aW9uIGJlY29tZXMsIGhvdyBpcyB0aGF0IFNESU8gZHJpdmVyIGdldHRpbmcgcHJvYmVkIGJ5IHN5emthbGxlcj8gSXQgY291bGQgYmUgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcgYSBkdW1teSBTRElPIGhvc3QgY29udHJvbGxlciwgYSB2aXJ0dWFsIG9uZSBwZXJoYXBzLiBMZXQncyBnbyBiYWNrIGFuZCBjaGVjayB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvYCBkaXJlY3RvcnkgZm9yIGFueSBzaWducyBvZiBhIFwiZHVtbXlcIiBvciBcInZpcnR1YWxcIiBjb250cm9sbGVyLlxuXG5EYW1uLCBJIGRpZG4ndCBzZWUgYW55dGhpbmcgb2J2aW91cyB3aGVuIEkgbG9va2VkIGZvciBcImR1bW15LlwiIE9rYXksIHRpbWUgdG8gYnJvYWRlbiB0aGUgc2VhcmNoLiBJJ20gZ29pbmcgdG8gc2VhcmNoIGZvciBcInN5elwiIGluIHRoZSBlbnRpcmUgYGRyaXZlcnMvbW1jL2AgZGlyZWN0b3J5IHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgc3l6a2FsbGVyIHNwZWNpZmljIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTk1LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjU2LjY0MTY4NTAzWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzkxMTM4OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6NTYuNzI1NjA0MjY5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MDA2Mjc2NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgZnJvbSBhbiBleHBlcnQncyBwZXJzcGVjdGl2ZTpcblxuKipEaXZpbmcgaW50byB0aGUgYnJjbWZtYWMgRHJpdmVyKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEknbSB0aGlua2luZywgbGV0J3MgemVybyBpbiBvbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9gIGRpcmVjdG9yeS4gVGhhdCdzIHdoZXJlIHRoZSBCcm9hZGNvbSBXaS1GaSBkcml2ZXIgY29kZSBJJ20gbW9zdCBpbnRlcmVzdGVkIGluIHJlc2lkZXMsIHNwZWNpZmljYWxseSB0aGUgYGJyY21mbWFjYCBtb2R1bGUuIE15IGdvYWwgaXMgY2xlYXI6IEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhhdCBjb2RlIGJhc2UgZm9yIGFueSBoaW50cyBvZiBleGlzdGluZyBmdXp6aW5nIGluZnJhc3RydWN0dXJlIChgZnV6emApIG9yIGluc3RydW1lbnRhdGlvbiBidWlsdCBmb3IgU3l6a2FsbGVyIChgc3l6YCkuIEkgd2FudCB0byBzZWUgaWYgYW55IHByZS1leGlzdGluZyBlZmZvcnRzIG1pZ2h0IGJlIHRoZXJlIHRoYXQgd291bGQgZ2l2ZSBtZSBhIGxlZyB1cCBpbiBteSBjdXJyZW50IGludmVzdGlnYXRpb24uIEtub3dpbmcgdGhlIGxhbmRzY2FwZSBvZiB0aGUgdGFyZ2V0IG1vZHVsZSBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAuIEkgd2lsbCBiZSBsb29raW5nIGZvciB2YXJpYWJsZXMsIGZ1bmN0aW9uIG5hbWVzLCBtYWNybyBkZWZpbml0aW9ucyDigJMgYW55dGhpbmcgdGhhdCBzY3JlYW1zIFwiZnV6emluZ1wiIG9yIFwiU3l6a2FsbGVyLlwiIEZpbmRpbmcgYSBwcmV2aW91cyBzdGFydCBtZWFucyB0aGF0IEkgZG9uJ3QgaGF2ZSB0byBzdGFydCBmcm9tIHNjcmF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzOTk1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MDAuNDI2MjM1MDEyWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzYyMzA5OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjAwLjQ4Mzg2NDYwMVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MjA2OTMzMjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIGBicmNtZm1hY2AgRHJpdmVyIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJIHdhcyBjZXJ0YWluIHRoZXJlIHdhc24ndCBhIGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbCBpbiBzeXprYWxsZXIgcmVsYXRlZCB0byB0aGlzLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCByaWdodD8gQnV0LCB3YWl0Li4uIGlzbid0IHRoZXJlIGEgVVNCIGZ1enplciBpbiBzeXprYWxsZXI/IFRoZSBgZHVtbXlfaGNkYCBjb21wb25lbnQsIGlzbid0IGl0PyBJZiBgYnJjbWZtYWNgICpkb2VzKiBoYXZlIGEgVVNCIGludGVyZmFjZSwgdGhlbiBtYXliZSBpdCBjb3VsZCBiZSByZWFjaGVkIHZpYSBhIFVTQiBwcm9iZS4gVGhlIHNvdXJjZSBvZiB0aGUgaXNzdWUgSSBhbSB0YXJnZXRpbmcgaXMgbG9jYXRlZCBpbiBgc2Rpby5jYCwgdGhvdWdoLiBIb3cgY291bGQgYHNkaW8uY2AgcG9zc2libHkgYmUgZXhlY3V0ZWQgaWYgdGhlIGRldmljZSBpcyBiZWluZyBpbnRlcmFjdGVkIHdpdGggb3ZlciBVU0I/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjYWxsaW5nIGhpZXJhcmNoeS4gTXkgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBmdW5jdGlvbiwgdGhlIHRhcmdldCBpbiBgc2Rpby5jYCwgaXMgY2FsbGVkIGZyb20gYW55d2hlcmUgaW4gdGhlIGB1c2IuY2AgZmlsZS4gSSBuZWVkIHRvIHRyYWNlIHRoYXQgcG90ZW50aWFsIGNvbm5lY3Rpb24gdG8gY29uZmlybSBpZiB0aGlzIHBhdGggaXMgYWN0dWFsbHkgdmlhYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDMyMiwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDowNi42OTA4MDE0MzlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MDU5Mjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJyY21mX3NkaW9fcmVhZF9jb250cm9sXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTg1Nz1zdGF0aWMgdWludCBicmNtZl9zZGlvX3JlYWRmcmFtZXMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdWludCBtYXhmcmFtZXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE5MTctXFx0XFx0XFx0aWYgKHJkLVxcdTAwM2VjaGFubmVsID09IFNEUENNX0NPTlRST0xfQ0hBTk5FTCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTkxODpcXHRcXHRcXHRcXHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChidXMsIGJ1cy1cXHUwMDNlcnhoZHIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdHJkLVxcdTAwM2VsZW4sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjA2Ljc2Njg2NjQ5N1oiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTY5MDM2MTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSByZXF1ZXN0ZWQ6XG5cbioqSW52ZXN0aWdhdGluZyBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBDYWxsZXJzKipcblxuQWxyaWdodCwgbGV0J3MgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoaXMgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AgZnVuY3Rpb24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0cyBkaXJlY3QgY2FsbCBzaXRlIGlzIGxpbWl0ZWQgdG8gd2l0aGluIGBzZGlvLmNgLiBUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoaXMgdGhlICpvbmx5KiBlbnRyeSBwb2ludCBmb3IgaXRzIGV4ZWN1dGlvbj8gVGhlIGltcGxpY2F0aW9uIGhlcmUgaXMgdGhlIHBvdGVudGlhbCBmb3IgdW5leHBlY3RlZCBiZWhhdmlvciBzaG91bGQgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AgYmUgY2FsbGVkIGVsc2V3aGVyZS4gQSB0aG9yb3VnaCBzdGF0aWMgYW5hbHlzaXMgaXMgd2FycmFudGVkLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluIG9mIHRoZSBzY29wZSBvZiB0aGlzIGZ1bmN0aW9uJ3MgZXhlY3V0aW9uIHRvIHVuZGVyc3RhbmQgaG93IGl0IGltcGFjdHMgdGhlIGxhcmdlciBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MDcwLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MTAuMzM1OTA2ODczWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjIzMTA5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX3JlYWRmcmFtZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NDU9c3RhdGljIHZvaWQgYnJjbWZfc2Rpb19wYWQoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTE2ICpwYWQsIHUxNiAqcmRsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE4NTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxODU3OnN0YXRpYyB1aW50IGJyY21mX3NkaW9fcmVhZGZyYW1lcyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1aW50IG1heGZyYW1lcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE4NTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yNTg1PXN0YXRpYyB2b2lkIGJyY21mX3NkaW9fZHBjKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI2ODktXFx0aWYgKChpbnRzdGF0dXMgXFx1MDAyNiBJX0hNQl9GUkFNRV9JTkQpIFxcdTAwMjZcXHUwMDI2IChidXMtXFx1MDAzZWNsa3N0YXRlID09IENMS19BVkFJTCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI2OTA6XFx0XFx0YnJjbWZfc2Rpb19yZWFkZnJhbWVzKGJ1cywgYnVzLVxcdTAwM2VyeGJvdW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI2OTEtXFx0XFx0aWYgKCFidXMtXFx1MDAzZXJ4cGVuZGluZylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MTAuMzg4MTQyODgyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MjY3NDUxMTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDYWxsIENvbnRleHQgb2YgYGJyY21mX3NkaW9fZHBjYCoqXG5cblJpZ2h0LCBsZXQgbWUgc2VlLi4uIEknbSBjdXJyZW50bHkgbG9va2luZyBhdCB0aGUgY29kZSBmb3IgdGhlIEJyb2FkY29tIFNESU8gZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBzZGlvLmNgIGZpbGUuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHRoZSBmdW5jdGlvbiBgYnJjbWZfc2Rpb19kcGNgLiBUaGUgY29kZSBpbmRpY2F0ZXMgdGhhdCBpdCdzIG9ubHkgY2FsbGVkIGZyb20gYGJyY21mX3NkaW9fZHBjYCBpdHNlbGYsIHdoaWNoIHNlZW1zIGEgbGl0dGxlIHN0cmFuZ2UuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBmdWxsIGNhbGwgZ3JhcGgsIHRob3VnaC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIG9ubHkgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGlzIHdpdGhpbiB0aGUgc2FtZSBmdW5jdGlvbi4gSSBuZWVkIHRvIGtub3cgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGlmIGl0IGlzIGNhbGxlZCBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGJyb2FkZXIgZHJpdmVyLiBJZiBpdCBpc24ndCwgdGhpcyBzZWVtcyBwZWN1bGlhciwgYW5kIG1pZ2h0IGluZGljYXRlIGVpdGhlciBhbiBpc3N1ZSBvciBhIG1vcmUgc3VidGxlLCBwZXJoYXBzIGludGVycnVwdC1kcml2ZW4sIGludGVyYWN0aW9uIHRoYXQgSSBuZWVkIHRvIGRpc3NlY3QuIEknbGwgZ2V0IHRvIHRoZSBib3R0b20gb2YgdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU3MzIsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDoxNC4yMTQ4OTE2NjNaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NDgyNDk3NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX2RwY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjU1OD1zdGF0aWMgaW50IGJyY21mX3NkaW9faW50cl9yc3RhdHVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI1ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyNTg1OnN0YXRpYyB2b2lkIGJyY21mX3NkaW9fZHBjKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yNTg2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzc1Nz1zdGF0aWMgdm9pZCBicmNtZl9zZGlvX2RhdGF3b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNzY1LVxcdFxcdGJ1cy1cXHUwMDNlZHBjX3RyaWdnZXJlZCA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc2NjpcXHRcXHRicmNtZl9zZGlvX2RwYyhidXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc2Ny1cXHRcXHRidXMtXFx1MDAzZWlkbGVjb3VudCA9IDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjE0LjQ3OTcyMjI1OFoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTcyMzkzMTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmF2ZWxpbmcgdGhlIFN5emthbGxlciBUcmlnZ2VyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgYnJjbWZfc2Rpb19kYXRhd29ya2VyYCBmdW5jdGlvbiwgYW5kIHRoZSBjb2RlIHNheXMgaXQncyBvbmx5IGNhbGxlZCBmcm9tIHdpdGhpbiBgc2Rpby5jYC4gUmlnaHQsIHNvIGl0J3MgYSB3b3JrcXVldWUgZnVuY3Rpb24uIFRoZSBiaWcgcXVlc3Rpb24gaXMsIGhvdyBkaWQgc3l6a2FsbGVyIGV2ZW4gKnJlYWNoKiB0aGlzIHRoaW5nPyBJdCBoYXMgdG8gYmUgcmVhY2hhYmxlIHRvIGhhdmUgZm91bmQgdGhlIGJ1ZyBpbiB0aGUgZmlyc3QgcGxhY2UsIHJpZ2h0P1xuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgbWF5YmUgaXQncyBwYWNrZXQgaW5qZWN0aW9uLCBzcGVjaWZpYyBTRElPIHBhY2tldHMuIEJ1dCBoYW5nIG9uLCBzeXprYWxsZXIgKmZvdW5kKiBpdC4gU28sIGhvdz8gSXMgdGhlcmUgYW4gZXF1aXZhbGVudCBvZiBgbWFjODAyMTFfaHdzaW1gIHRoYXQgZW11bGF0ZXMgU0RJTz8gSSBuZWVkIHRvIGV4cGxvcmUuIExldCdzIHNlZSBpZiB0aGVyZSdzIGFueSBzb3J0IG9mIFNESU8gZW11bGF0aW9uIGdvaW5nIG9uIGluIHRoZSBrZXJuZWwuXG5cbkhtbSwgbWF5YmUgaW4gYGRyaXZlcnMvbW1jL2NvcmUvc2Rpb19pby5jYD8gTm8sIHRoYXQgbG9va3MgbGlrZSB0aGUgY29yZSBTRElPIGZ1bmN0aW9uYWxpdHksIG5vdCBhbiBlbXVsYXRvci4gT2theSwgaG93IGFib3V0IGBkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jYD8gQmluZ28hIFRoYXQncyBhIFVTQi10by1TRElPIGhvc3QgY29udHJvbGxlci5cblxuQWhhISBgdnViMzAwYCBpcyBhIFVTQi10by1TRElPIGJyaWRnZSEgVGhhdCdzIGl0ISBJZiBzeXprYWxsZXIgaXMgZnV6emluZyBVU0IsIHBlcmhhcHMgdmlhIGEgZHVtbXkgSENELCB0aGVuIGl0IGNvdWxkIGJlIGVtdWxhdGluZyBhIGB2dWIzMDBgIGRldmljZS4gVGhlIGB2dWIzMDBgIGRyaXZlciB3b3VsZCB0aGVuIHJlZ2lzdGVyIGFuIFNESU8gaG9zdCBjb250cm9sbGVyLiBBbmQgdGhlbiwgc3l6a2FsbGVyIGNhbiBlbXVsYXRlIGFuIFNESU8gZGV2aWNlLCBsaWtlIGBicmNtZm1hY2AsIGJ5IHNlbmRpbmcgYXBwcm9wcmlhdGUgVVNCIHJlc3BvbnNlcyB0byB0aGUgYHZ1YjMwMGAgZHJpdmVyISBUaGF0J3MgaG93IGl0J3MgZG9uZSEgSSBqdXN0IG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHZ1YjMwMGAgYWN0dWFsbHkgZXhpc3RzIGluIHRoZSBrZXJuZWwgYW5kIGlmIHN5emthbGxlciBpcyBhYmxlIHRvIGludGVyYWN0IHdpdGggaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NDE4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjIwLjY1MjExODQ1N1oiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY2NjQwNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnViMzAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTY0MCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkyMD1jb25maWcgTU1DX1ZVQjMwMFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0NC1cXHQgIFRvIGNvbXBpbGUgdGhpcyBtbWMgaG9zdCBjb250cm9sbGVyIGRyaXZlciBhcyBhIG1vZHVsZSxcXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6OTQ1OlxcdCAgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB2dWIzMDAuXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0Ni1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU9NjI9b2JqLSQoQ09ORklHX01NQ19KWjQ3NDApXFx0Kz0gano0NzQwX21tYy5vXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2MzpvYmotJChDT05GSUdfTU1DX1ZVQjMwMClcXHQrPSB2dWIzMDAub1xcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGUtNjQtb2JqLSQoQ09ORklHX01NQ19VU0hDKVxcdFxcdCs9IHVzaGMub1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0yNjA9TU9EVUxFX1BBUk1fREVTQyhmaXJtd2FyZV9yb21fd2FpdF9zdGF0ZXMsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI2NS0jZGVmaW5lIFZVQjMwMF9QUk9EVUNUX0lEXFx0MHgwMTJDXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNjY6c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHZ1YjMwMF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjY3LVxcdHtVU0JfREVWSUNFKEVMQU5fVkVORE9SX0lELCBWVUIzMDBfUFJPRFVDVF9JRCl9LFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNzAtfTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjI3MTpNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgdnViMzAwX3RhYmxlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI3Mi1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9Mjg2PXN0cnVjdCBzZGlvX3JlZ2lzdGVyIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjk1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mjk2OnN0cnVjdCB2dWIzMDBfbW1jX2hvc3Qge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjk3LVxcdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zNTQtXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNTU6I2RlZmluZSBrcmVmX3RvX3Z1YjMwMF9tbWNfaG9zdChkKSBjb250YWluZXJfb2YoZCwgc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCwga3JlZilcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM1Ni0jZGVmaW5lIFNFVF9UUkFOU0ZFUl9QU0VVRE9DT0RFXFx0XFx0MjFcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzY4LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzY5OnN0YXRpYyB2b2lkIHZ1YjMwMF9kZWxldGUoc3RydWN0IGtyZWYgKmtyZWYpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zNzAte1xcdFxcdFxcdFxcdC8qIGtyZWYgY2FsbGJhY2sgLSBzb2Z0aXJxICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNzE6XFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0ga3JlZl90b192dWIzMDBfbW1jX2hvc3Qoa3JlZik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNzI6XFx0c3RydWN0IG1tY19ob3N0ICptbWMgPSB2dWIzMDAtXFx1MDAzZW1tYztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM3My1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NDpcXHR1c2JfZnJlZV91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX291dF91cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc1OlxcdHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9vdXRfdXJiID0gTlVMTDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NjpcXHR1c2JfZnJlZV91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX3Jlc191cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc3OlxcdHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiID0gTlVMTDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3ODpcXHR1c2JfcHV0X2Rldih2dWIzMDAtXFx1MDAzZXVkZXYpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzc5LVxcdG1tY19mcmVlX2hvc3QobW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM4MC1cXHQvKlxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzgxOlxcdCAqIGFuZCBoZW5jZSBhbHNvIGZyZWVzIHZ1YjMwMFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzgyLVxcdCAqIHdoaWNoIGlzIGNvbnRhaW5lZCBhdCB0aGUgZW5kIG9mIHN0cnVjdCBtbWNcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzg1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzg2OnN0YXRpYyB2b2lkIHZ1YjMwMF9xdWV1ZV9jbW5kX3dvcmsoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzg3LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM4ODpcXHRrcmVmX2dldChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM4OTpcXHRpZiAocXVldWVfd29yayhjbW5kd29ya3F1ZXVlLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VjbW5kd29yaykpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM5MC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDEtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDI6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDMtXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDUtXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDY6c3RhdGljIHZvaWQgdnViMzAwX3F1ZXVlX3BvbGxfd29yayhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsIGludCBkZWxheSlcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQwNy17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDg6XFx0a3JlZl9nZXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDk6XFx0aWYgKHF1ZXVlX2RlbGF5ZWRfd29yayhwb2xsd29ya3F1ZXVlLCBcXHUwMDI2dnViMzAwLVxcdTAwM2Vwb2xsd29yaywgZGVsYXkpKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MTAtXFx0XFx0LypcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDIxLVxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDIyOlxcdFxcdGtyZWZfcHV0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDIzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDI1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDI2OnN0YXRpYyB2b2lkIHZ1YjMwMF9xdWV1ZV9kZWFkX3dvcmsoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDI3LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyODpcXHRrcmVmX2dldChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyOTpcXHRpZiAocXVldWVfd29yayhkZWFkd29ya3F1ZXVlLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VkZWFkd29yaykpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQzMC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NDEtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NDI6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NDMtXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz00NDY9c3RhdGljIHZvaWQgaXJxcG9sbF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0Ny17XFx0XFx0XFx0XFx0LyogdXJiIGNvbXBsZXRpb24gaGFuZGxlciAtIGhhcmRpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ0ODpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSAoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqKXVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0OS1cXHRpZiAodXJiLVxcdTAwM2VzdGF0dXMpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTA6XFx0XFx0dnViMzAwLVxcdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSB1cmItXFx1MDAzZXN0YXR1cztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1MTpcXHRjb21wbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ1Mi19XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTQ1ND1zdGF0aWMgdm9pZCBpcnFwb2xsX291dF9jb21wbGV0ZWQoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDU1LXtcXHRcXHRcXHRcXHQvKiB1cmIgY29tcGxldGlvbiBoYW5kbGVyIC0gaGFyZGlycSAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDU2OlxcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVxcdTAwM2Vjb250ZXh0O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDU3LVxcdGlmICh1cmItXFx1MDAzZXN0YXR1cykge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDU4OlxcdFxcdHZ1YjMwMC1cXHUwMDNldXNiX3RyYW5zcG9ydF9mYWlsID0gdXJiLVxcdTAwM2VzdGF0dXM7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTk6XFx0XFx0Y29tcGxldGUoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaXJxcG9sbF9jb21wbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NjAtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NjMtXFx0XFx0dW5zaWduZWQgaW50IHBpcGUgPVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDY0OlxcdFxcdFxcdHVzYl9yY3ZidWxrcGlwZSh2dWIzMDAtXFx1MDAzZXVkZXYsIHZ1YjMwMC1cXHUwMDNlY21uZF9yZXNfZXApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDY1OlxcdFxcdHVzYl9maWxsX2J1bGtfdXJiKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiLCB2dWIzMDAtXFx1MDAzZXVkZXYsIHBpcGUsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjY6XFx0XFx0XFx0XFx0ICBcXHUwMDI2dnViMzAwLVxcdTAwM2VyZXNwLCBzaXplb2YodnViMzAwLVxcdTAwM2VyZXNwKSxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ2NzpcXHRcXHRcXHRcXHQgIGlycXBvbGxfcmVzX2NvbXBsZXRlZCwgdnViMzAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ2ODpcXHRcXHR2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYi1cXHUwMDNlYWN0dWFsX2xlbmd0aCA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Njk6XFx0XFx0cmV0ID0gdXNiX3N1Ym1pdF91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX3Jlc191cmIsIEdGUF9BVE9NSUMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDcwLVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3MTpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXVzYl90cmFuc3BvcnRfZmFpbCA9IHJldDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3MjpcXHRcXHRcXHRjb21wbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ3My1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ3Ny1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3ODpzdGF0aWMgdm9pZCBzZW5kX2lycXBvbGwoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDc5LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4MDpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfcG9sbHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00ODEtXFx0aW50IHJldHZhbDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ4Mi1cXHRpbnQgdGltZW91dCA9IDB4RkZGRiBcXHUwMDI2ICgweDAwMDFGRkZGIC0gZmlybXdhcmVfaXJxcG9sbF90aW1lb3V0KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4MzpcXHR2dWIzMDAtXFx1MDAzZWNtbmQucG9sbC5oZWFkZXJfc2l6ZSA9IDIyO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg0OlxcdHZ1YjMwMC1cXHUwMDNlY21uZC5wb2xsLmhlYWRlcl90eXBlID0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4NTpcXHR2dWIzMDAtXFx1MDAzZWNtbmQucG9sbC5wb3J0X251bWJlciA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODY6XFx0dnViMzAwLVxcdTAwM2VjbW5kLnBvbGwuY29tbWFuZF90eXBlID0gMjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4NzpcXHR2dWIzMDAtXFx1MDAzZWNtbmQucG9sbC5wb2xsX3RpbWVvdXRfbHNiID0gMHhGRiBcXHUwMDI2ICh1bnNpZ25lZCl0aW1lb3V0O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg4OlxcdHZ1YjMwMC1cXHUwMDNlY21uZC5wb2xsLnBvbGxfdGltZW91dF9tc2IgPSAweEZGIFxcdTAwMjYgKHVuc2lnbmVkKSh0aW1lb3V0IFxcdTAwM2VcXHUwMDNlIDgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg5OlxcdHVzYl9maWxsX2J1bGtfdXJiKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9vdXRfdXJiLCB2dWIzMDAtXFx1MDAzZXVkZXYsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTA6XFx0XFx0XFx0ICB1c2Jfc25kYnVsa3BpcGUodnViMzAwLVxcdTAwM2V1ZGV2LCB2dWIzMDAtXFx1MDAzZWNtbmRfb3V0X2VwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDkxOlxcdFxcdFxcdCAgLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VjbW5kLCBzaXplb2YodnViMzAwLVxcdTAwM2VjbW5kKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDkyOlxcdFxcdFxcdCAgLCBpcnFwb2xsX291dF9jb21wbGV0ZWQsIHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTM6XFx0cmV0dmFsID0gdXNiX3N1Ym1pdF91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX291dF91cmIsIEdGUF9LRVJORUwpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk0LVxcdGlmICgwIFxcdTAwM2UgcmV0dmFsKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTU6XFx0XFx0dnViMzAwLVxcdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSByZXR2YWw7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTY6XFx0XFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDk3OlxcdFxcdGNvbXBsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycXBvbGxfY29tcGxldGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk4LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTAzLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTA0OnN0YXRpYyB2b2lkIG5ld19zeXN0ZW1fcG9ydF9zdGF0dXMoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTA1LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwNjpcXHRpbnQgb2xkX2NhcmRfcHJlc2VudCA9IHZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTA3LVxcdGludCBuZXdfY2FyZF9wcmVzZW50ID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwODpcXHRcXHQoMHgwMDAxIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMucG9ydF9mbGFncykgPyAxIDogMDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwOTpcXHR2dWIzMDAtXFx1MDAzZXJlYWRfb25seSA9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MTA6XFx0XFx0KDB4MDAxMCBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzLnBvcnRfZmxhZ3MpID8gMSA6IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTEtXFx0aWYgKG5ld19jYXJkX3ByZXNlbnQgXFx1MDAyNlxcdTAwMjYgIW9sZF9jYXJkX3ByZXNlbnQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUxMjpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2dnViMzAwLVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCJjYXJkIGp1c3QgaW5zZXJ0ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTEzOlxcdFxcdHZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50ID0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUxNDpcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTUtXFx0XFx0aWYgKGRpc2FibGVfb2ZmbG9hZF9wcm9jZXNzaW5nKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE2OlxcdFxcdFxcdHN0cnNjcHkodnViMzAwLVxcdTAwM2V2dWJfbmFtZSwgXFxcIkVNUFRZIFByb2Nlc3NpbmcgRGlzYWJsZWRcXFwiLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE3OlxcdFxcdFxcdFxcdHNpemVvZih2dWIzMDAtXFx1MDAzZXZ1Yl9uYW1lKSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTgtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE5OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNldnViX25hbWVbMF0gPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTIwOlxcdFxcdG1tY19kZXRlY3RfY2hhbmdlKHZ1YjMwMC1cXHUwMDNlbW1jLCAxKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyMS1cXHR9IGVsc2UgaWYgKCFuZXdfY2FyZF9wcmVzZW50IFxcdTAwMjZcXHUwMDI2IG9sZF9jYXJkX3ByZXNlbnQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUyMjpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2dnViMzAwLVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCJjYXJkIGp1c3QgZWplY3RlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MjM6XFx0XFx0dnViMzAwLVxcdTAwM2VjYXJkX3ByZXNlbnQgPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTI0OlxcdFxcdG1tY19kZXRlY3RfY2hhbmdlKHZ1YjMwMC1cXHUwMDNlbW1jLCAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyNS1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MjktXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MzA6c3RhdGljIHZvaWQgX19hZGRfb2ZmbG9hZGVkX3JlZ190b19maWZvKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUzMS1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgb2ZmbG9hZF9yZWdpc3RlcnNfYWNjZXNzXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUzMy17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MzQ6XFx0dTggciA9IHZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ub2ZmbG9hZF9wb2ludCArIHZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ub2ZmbG9hZF9jb3VudDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUzNTpcXHRtZW1jcHkoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ucmVnW01BWFJFR01BU0sgXFx1MDAyNiByXSwgcmVnaXN0ZXJfYWNjZXNzLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTM2LVxcdCAgICAgICBzaXplb2Yoc3RydWN0IG9mZmxvYWRfcmVnaXN0ZXJzX2FjY2VzcykpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM3OlxcdHZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ub2ZmbG9hZF9jb3VudCArPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM4OlxcdHZ1YjMwMC1cXHUwMDNldG90YWxfb2ZmbG9hZF9jb3VudCArPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTM5LX1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU0MC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0MTpzdGF0aWMgdm9pZCBhZGRfb2ZmbG9hZGVkX3JlZyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDItXFx0XFx0XFx0ICAgICAgc3RydWN0IG9mZmxvYWRfcmVnaXN0ZXJzX2FjY2VzcyAqcmVnaXN0ZXJfYWNjZXNzKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDctXFx0dTggZnVuYyA9ICgoMHg3MCBcXHUwMDI2IHJlZ2lzdGVyX2FjY2Vzcy1cXHUwMDNlY29tbWFuZF9ieXRlWzBdKSBcXHUwMDNlXFx1MDAzZSA0KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0ODpcXHR1OCByZWdzID0gdnViMzAwLVxcdTAwM2VkeW5hbWljX3JlZ2lzdGVyX2NvdW50O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTQ5LVxcdHU4IGkgPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUwOlxcdHdoaWxlICgwIFxcdTAwM2MgcmVncy0tIFxcdTAwMjZcXHUwMDI2IDEgPT0gdnViMzAwLVxcdTAwM2VzZGlvX3JlZ2lzdGVyW2ldLmFjdGl2YXRlKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTE6XFx0XFx0aWYgKHZ1YjMwMC1cXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5mdW5jX251bSA9PSBmdW5jIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTI6XFx0XFx0ICAgIHZ1YjMwMC1cXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5zZGlvX3JlZyA9PSBSZWdpc3Rlcikge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUzOlxcdFxcdFxcdGlmICh2dWIzMDAtXFx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0ucHJlcGFyZWQgPT0gMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1NDpcXHRcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0ucHJlcGFyZWQgPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTU1OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5yZXNwb25zZSA9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NTYtXFx0XFx0XFx0XFx0cmVnaXN0ZXJfYWNjZXNzLVxcdTAwM2VSZXNwb25kX0J5dGVbMl07XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTc6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VzZGlvX3JlZ2lzdGVyW2ldLnJlZ3ZhbHVlID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU1OC1cXHRcXHRcXHRcXHRyZWdpc3Rlcl9hY2Nlc3MtXFx1MDAzZVJlc3BvbmRfQnl0ZVszXTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTY0LVxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU2NTpcXHRfX2FkZF9vZmZsb2FkZWRfcmVnX3RvX2ZpZm8odnViMzAwLCByZWdpc3Rlcl9hY2Nlc3MsIGZ1bmMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTY2LX1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2Ny1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU2ODpzdGF0aWMgdm9pZCBjaGVja192dWIzMDBfcG9ydF9zdGF0dXMoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTY5LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3MC1cXHQvKlxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTcxOlxcdCAqIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NzI6XFx0ICogdnViMzAwX2RlYWR3b3JrX3RocmVhZCBvciB2dWIzMDBfY21uZHdvcmtfdGhyZWFkXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzMtXFx0ICovXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3NS1cXHRyZXR2YWwgPVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTc2OlxcdFxcdHVzYl9jb250cm9sX21zZyh2dWIzMDAtXFx1MDAzZXVkZXYsIHVzYl9yY3ZjdHJscGlwZSh2dWIzMDAtXFx1MDAzZXVkZXYsIDApLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTc3LVxcdFxcdFxcdFxcdEdFVF9TWVNURU1fUE9SVF9TVEFUVVMsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzgtXFx0XFx0XFx0XFx0VVNCX0RJUl9JTiB8IFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9ERVZJQ0UsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1Nzk6XFx0XFx0XFx0XFx0MHgwMDAwLCAweDAwMDAsIFxcdTAwMjZ2dWIzMDAtXFx1MDAzZXN5c3RlbV9wb3J0X3N0YXR1cyxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MDpcXHRcXHRcXHRcXHRzaXplb2YodnViMzAwLVxcdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMpLCAxMDAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MTpcXHRpZiAoc2l6ZW9mKHZ1YjMwMC1cXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzKSA9PSByZXR2YWwpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODI6XFx0XFx0bmV3X3N5c3RlbV9wb3J0X3N0YXR1cyh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTgzLX1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU4NC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4NTpzdGF0aWMgdm9pZCBfX3Z1YjMwMF9pcnFwb2xsX3Jlc3BvbnNlKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU4Ni17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODc6XFx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX3BvbGx3b3JrX3RocmVhZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTg4OlxcdGlmICh2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYi1cXHUwMDNlYWN0dWFsX2xlbmd0aCA9PSAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTg5LVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU5MC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5MTpcXHRzd2l0Y2ggKHZ1YjMwMC1cXHUwMDNlcmVzcC5jb21tb24uaGVhZGVyX3R5cGUpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU5Mi1cXHRjYXNlIFJFU1BPTlNFX0lOVEVSUlVQVDpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5MzpcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTQ6XFx0XFx0aWYgKHZ1YjMwMC1cXHUwMDNlaXJxX2VuYWJsZWQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTU6XFx0XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycSh2dWIzMDAtXFx1MDAzZW1tYyk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01OTYtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk3OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaXJxc19xdWV1ZWQgKz0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5ODpcXHRcXHR2dWIzMDAtXFx1MDAzZWlycV9kaXNhYmxlZCA9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTk6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MDAtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MDEtXFx0Y2FzZSBSRVNQT05TRV9FUlJPUjpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwMjpcXHRcXHRpZiAodnViMzAwLVxcdTAwM2VyZXNwLmVycm9yLmVycm9yX2NvZGUgPT0gU0RfRVJST1JfTk9fREVWSUNFKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjAzOlxcdFxcdFxcdGNoZWNrX3Z1YjMwMF9wb3J0X3N0YXR1cyh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjA0LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjA1LVxcdGNhc2UgUkVTUE9OU0VfU1RBVFVTOlxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjA2OlxcdFxcdHZ1YjMwMC1cXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzID0gdnViMzAwLVxcdTAwM2VyZXNwLnN0YXR1cztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwNzpcXHRcXHRuZXdfc3lzdGVtX3BvcnRfc3RhdHVzKHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDg6XFx0XFx0aWYgKCF2dWIzMDAtXFx1MDAzZWNhcmRfcHJlc2VudClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwOTpcXHRcXHRcXHR2dWIzMDBfcXVldWVfcG9sbF93b3JrKHZ1YjMwMCwgSFogLyA1KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxMC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjEyLVxcdHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYxMzpcXHRcXHRpbnQgb2ZmbG9hZGVkX2RhdGFfbGVuZ3RoID0gdnViMzAwLVxcdTAwM2VyZXNwLmNvbW1vbi5oZWFkZXJfc2l6ZSAtIDM7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTQtXFx0XFx0aW50IHJlZ2lzdGVyX2NvdW50ID0gb2ZmbG9hZGVkX2RhdGFfbGVuZ3RoIFxcdTAwM2VcXHUwMDNlIDM7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxNi1cXHRcXHR3aGlsZSAocmVnaXN0ZXJfY291bnQtLSkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjE3OlxcdFxcdFxcdGFkZF9vZmZsb2FkZWRfcmVnKHZ1YjMwMCwgXFx1MDAyNnZ1YjMwMC1cXHUwMDNlcmVzcC5pcnEucmVnW3JpXSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTgtXFx0XFx0XFx0cmkgKz0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxOS1cXHRcXHR9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjA6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjIxOlxcdFxcdGlmICh2dWIzMDAtXFx1MDAzZWlycV9lbmFibGVkKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjIyOlxcdFxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEodnViMzAwLVxcdTAwM2VtbWMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjIzLVxcdFxcdGVsc2VcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYyNDpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZWlycXNfcXVldWVkICs9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjU6XFx0XFx0dnViMzAwLVxcdTAwM2VpcnFfZGlzYWJsZWQgPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjI2OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjI3LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MzAtXFx0e1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjMxOlxcdFxcdGludCBvZmZsb2FkZWRfZGF0YV9sZW5ndGggPSB2dWIzMDAtXFx1MDAzZXJlc3AuY29tbW9uLmhlYWRlcl9zaXplIC0gMztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYzMi1cXHRcXHRpbnQgcmVnaXN0ZXJfY291bnQgPSBvZmZsb2FkZWRfZGF0YV9sZW5ndGggXFx1MDAzZVxcdTAwM2UgMztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjM0LVxcdFxcdHdoaWxlIChyZWdpc3Rlcl9jb3VudC0tKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MzU6XFx0XFx0XFx0YWRkX29mZmxvYWRlZF9yZWcodnViMzAwLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VyZXNwLmlycS5yZWdbcmldKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYzNi1cXHRcXHRcXHRyaSArPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjM3LVxcdFxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYzODpcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Mzk6XFx0XFx0aWYgKHZ1YjMwMC1cXHUwMDNlaXJxX2VuYWJsZWQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NDA6XFx0XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycSh2dWIzMDAtXFx1MDAzZW1tYyk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDEtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQyOlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaXJxc19xdWV1ZWQgKz0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY0MzpcXHRcXHR2dWIzMDAtXFx1MDAzZWlycV9kaXNhYmxlZCA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NDQ6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDUtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY0Ny1cXHRjYXNlIFJFU1BPTlNFX05PX0lOVEVSUlVQVDpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY0ODpcXHRcXHR2dWIzMDBfcXVldWVfcG9sbF93b3JrKHZ1YjMwMCwgMSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY1NC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY1NTpzdGF0aWMgdm9pZCBfX2RvX3BvbGwoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjU2LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY1NzpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfcG9sbHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NTgtXFx0dW5zaWduZWQgbG9uZyBjb21tcmV0dmFsO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjU5OlxcdG1vZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjYwOlxcdGluaXRfY29tcGxldGlvbihcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2MTpcXHRzZW5kX2lycXBvbGwodnViMzAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2MjpcXHRjb21tcmV0dmFsID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycXBvbGxfY29tcGxldGUsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NjMtXFx0XFx0XFx0XFx0XFx0XFx0IG1zZWNzX3RvX2ppZmZpZXMoNTAwKSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NjQ6XFx0aWYgKHZ1YjMwMC1cXHUwMDNldXNiX3RyYW5zcG9ydF9mYWlsKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NjUtXFx0XFx0Lyogbm8gbmVlZCB0byBkbyBhbnl0aGluZyAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjY2LVxcdH0gZWxzZSBpZiAoY29tbXJldHZhbCA9PSAwKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Njc6XFx0XFx0dnViMzAwLVxcdTAwM2V1c2JfdGltZWRfb3V0ID0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2ODpcXHRcXHR1c2Jfa2lsbF91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX291dF91cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjY5OlxcdFxcdHVzYl9raWxsX3VyYih2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NzAtXFx0fSBlbHNlIHsgLyogY29tbXJldHZhbCBcXHUwMDNlIDAgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY3MTpcXHRcXHRfX3Z1YjMwMF9pcnFwb2xsX3Jlc3BvbnNlKHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NzItXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NzctICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Nzg6c3RhdGljIHZvaWQgdnViMzAwX3BvbGx3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02Nzkte1xcdFxcdFxcdFxcdC8qIE5PVCBpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4MDpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSBjb250YWluZXJfb2Yod29yayxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4MTpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgdnViMzAwX21tY19ob3N0LCBwb2xsd29yay53b3JrKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4MjpcXHRpZiAoIXZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODM6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02ODQtXFx0XFx0cmV0dXJuO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjg1LVxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4NjpcXHRtdXRleF9sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNtZF9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODc6XFx0aWYgKHZ1YjMwMC1cXHUwMDNlY21kKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODg6XFx0XFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njg5OlxcdH0gZWxzZSBpZiAoIXZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50KSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02OTAtXFx0XFx0Lyogbm8gbmVlZCB0byBkbyBhbnl0aGluZyAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjkxOlxcdH0gZWxzZSB7IC8qIHZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTI6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjkzOlxcdFxcdGlmICghdnViMzAwLVxcdTAwM2VpcnFfZW5hYmxlZCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk0OlxcdFxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk1OlxcdFxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VpcnFzX3F1ZXVlZCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk2OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaXJxc19xdWV1ZWQgLT0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5NzpcXHRcXHRcXHRtbWNfc2lnbmFsX3NkaW9faXJxKHZ1YjMwMC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5ODpcXHRcXHRcXHRtb2RfdGltZXIoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lciwgamlmZmllcyArIEhaKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5OTpcXHRcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaXJxX211dGV4KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcwMDpcXHRcXHR9IGVsc2UgeyAvKiBOT1QgdnViMzAwLVxcdTAwM2VpcnFzX3F1ZXVlZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAxOlxcdFxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAyOlxcdFxcdFxcdF9fZG9fcG9sbCh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzAzLVxcdFxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcwNC1cXHR9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDU6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNtZF9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDY6XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MDctfVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA4LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzA5OnN0YXRpYyB2b2lkIHZ1YjMwMF9kZWFkd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzEwLXtcXHRcXHRcXHRcXHQvKiBOT1QgaXJxICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MTE6XFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxMjpcXHRcXHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCwgZGVhZHdvcmspO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzEzOlxcdGlmICghdnViMzAwLVxcdTAwM2VpbnRlcmZhY2UpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxNDpcXHRcXHRrcmVmX3B1dChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcxNS1cXHRcXHRyZXR1cm47XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MTYtXFx0fVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzE3OlxcdG11dGV4X2xvY2soXFx1MDAyNnZ1YjMwMC1cXHUwMDNlY21kX211dGV4KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxODpcXHRpZiAodnViMzAwLVxcdTAwM2VjbWQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcxOS1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MjQtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MjU6XFx0fSBlbHNlIGlmICh2dWIzMDAtXFx1MDAzZWNhcmRfcHJlc2VudCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI2OlxcdFxcdGNoZWNrX3Z1YjMwMF9wb3J0X3N0YXR1cyh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI3OlxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VtbWMgXFx1MDAyNlxcdTAwMjYgdnViMzAwLVxcdTAwM2VtbWMtXFx1MDAzZWNhcmQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcyOC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MzQtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjczNTpcXHRcXHRjaGVja192dWIzMDBfcG9ydF9zdGF0dXModnViMzAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTczNi1cXHR9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzc6XFx0bW9kX3RpbWVyKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgKyBIWik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzg6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNtZF9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzk6XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDAtfVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQxLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQyOnN0YXRpYyB2b2lkIHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDMte1xcdFxcdFxcdFxcdC8qIHNvZnRpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0NDpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSB0aW1lcl9jb250YWluZXJfb2YodnViMzAwLCB0LFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQ1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBpbmFjdGl2aXR5X3RpbWVyKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0NjpcXHRpZiAoIXZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDc6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDg6XFx0fSBlbHNlIGlmICh2dWIzMDAtXFx1MDAzZWNtZCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQ5OlxcdFxcdG1vZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzUwLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NTE6XFx0XFx0dnViMzAwX3F1ZXVlX2RlYWRfd29yayh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzUyOlxcdFxcdG1vZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzUzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzU1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzU2OnN0YXRpYyBpbnQgdnViMzAwX3Jlc3BvbnNlX2Vycm9yKHU4IGVycm9yX2NvZGUpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NTcte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03OTI9c3RhdGljIHZvaWQgY29tbWFuZF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5My17XFx0XFx0XFx0XFx0LyogdXJiIGNvbXBsZXRpb24gaGFuZGxlciAtIGhhcmRpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NDpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSAoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqKXVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5NS1cXHRpZiAodXJiLVxcdTAwM2VzdGF0dXMpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5Ni1cXHRcXHQvKiB3ZSBoYXZlIHRvIGxldCB0aGUgaW5pdGlhdG9yIGhhbmRsZSB0aGUgZXJyb3IgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NzpcXHR9IGVsc2UgaWYgKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiLVxcdTAwM2VhY3R1YWxfbGVuZ3RoID09IDApIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5OC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MDEtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MDI6XFx0fSBlbHNlIGlmICghdnViMzAwLVxcdTAwM2VkYXRhKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MDMtXFx0XFx0LyogdGhpcyBtZWFucyB0aGF0IHRoZSBjb21tYW5kICh0eXBpY2FsbHkgQ01ENTIpIHN1Y2NlZWRlZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODA0OlxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VyZXNwLmNvbW1vbi5oZWFkZXJfdHlwZSAhPSAweDAyKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MDUtXFx0XFx0LypcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODA4LVxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODA5OlxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2V1cmIpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMDpcXHRcXHR2dWIzMDAtXFx1MDAzZWNtZC1cXHUwMDNlZXJyb3IgPVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODExOlxcdFxcdFxcdHZ1YjMwMF9yZXNwb25zZV9lcnJvcih2dWIzMDAtXFx1MDAzZXJlc3AuZXJyb3IuZXJyb3JfY29kZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MTI6XFx0XFx0dXNiX3VubGlua191cmIodnViMzAwLVxcdTAwM2V1cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODEzLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MTQ6XFx0XFx0dnViMzAwLVxcdTAwM2VjbWQtXFx1MDAzZWVycm9yID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNTpcXHRcXHRcXHR2dWIzMDBfcmVzcG9uc2VfZXJyb3IodnViMzAwLVxcdTAwM2VyZXNwLmVycm9yLmVycm9yX2NvZGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODE2OlxcdFxcdHVzYl9zZ19jYW5jZWwoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfcmVxdWVzdCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MTctXFx0fVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODE4OlxcdGNvbXBsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1xcdC8qIGdvdF9yZXNwb25zZV9pbiAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODE5LX1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODIxPXN0YXRpYyB2b2lkIGNvbW1hbmRfb3V0X2NvbXBsZXRlZChzdHJ1Y3QgdXJiICp1cmIpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjIte1xcdFxcdFxcdFxcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MjM6XFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0gKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKil1cmItXFx1MDAzZWNvbnRleHQ7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjQtXFx0aWYgKHVyYi1cXHUwMDNlc3RhdHVzKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MjU6XFx0XFx0Y29tcGxldGUoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlY29tbWFuZF9jb21wbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjYtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODI4LVxcdFxcdHVuc2lnbmVkIGludCBwaXBlID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyOTpcXHRcXHRcXHR1c2JfcmN2YnVsa3BpcGUodnViMzAwLVxcdTAwM2V1ZGV2LCB2dWIzMDAtXFx1MDAzZWNtbmRfcmVzX2VwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMDpcXHRcXHR1c2JfZmlsbF9idWxrX3VyYih2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYiwgdnViMzAwLVxcdTAwM2V1ZGV2LCBwaXBlLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODMxOlxcdFxcdFxcdFxcdCAgXFx1MDAyNnZ1YjMwMC1cXHUwMDNlcmVzcCwgc2l6ZW9mKHZ1YjMwMC1cXHUwMDNlcmVzcCksXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MzI6XFx0XFx0XFx0XFx0ICBjb21tYW5kX3Jlc19jb21wbGV0ZWQsIHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MzM6XFx0XFx0dnViMzAwLVxcdTAwM2Vjb21tYW5kX3Jlc191cmItXFx1MDAzZWFjdHVhbF9sZW5ndGggPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODM0OlxcdFxcdHJldCA9IHVzYl9zdWJtaXRfdXJiKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiLCBHRlBfQVRPTUlDKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgzNS1cXHRcXHRpZiAocmV0ID09IDApIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODQ0LVxcdFxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODQ1OlxcdFxcdFxcdGNvbXBsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODQ2LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODUyLSAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODUzOnN0YXRpYyB2b2lkIHNub29wX2Jsb2NrX3NpemVfYW5kX2J1c193aWR0aChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NTQtXFx0XFx0XFx0XFx0XFx0ICAgdTMyIGNtZF9hcmcpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg1Ni1cXHRpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDIyMjAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODU3OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzFdID0gKGNtZF9hcmcgXFx1MDAzY1xcdTAwM2MgOCkgfCAoMHgwMEZGIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbMV0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODU4LVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDAyMjAwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg1OTpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1sxXSA9ICgweEZGIFxcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbMV0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODYwLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA0MjIwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg2MTpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1syXSA9IChjbWRfYXJnIFxcdTAwM2NcXHUwMDNjIDgpIHwgKDB4MDBGRiBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzJdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg2Mi1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNDIwMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NjM6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbMl0gPSAoMHhGRiBcXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzJdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg2NC1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNjIyMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NjU6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbM10gPSAoY21kX2FyZyBcXHUwMDNjXFx1MDAzYyA4KSB8ICgweDAwRkYgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1szXSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjYtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDYyMDAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODY3OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzNdID0gKDB4RkYgXFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1szXSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjgtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDgyMjAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODY5OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzRdID0gKGNtZF9hcmcgXFx1MDAzY1xcdTAwM2MgOCkgfCAoMHgwMEZGIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbNF0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODcwLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA4MjAwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3MTpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1s0XSA9ICgweEZGIFxcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbNF0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODcyLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBBMjIwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3MzpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1s1XSA9IChjbWRfYXJnIFxcdTAwM2NcXHUwMDNjIDgpIHwgKDB4MDBGRiBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzVdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3NC1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQTIwMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NzU6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbNV0gPSAoMHhGRiBcXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzVdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3Ni1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQzIyMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4Nzc6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbNl0gPSAoY21kX2FyZyBcXHUwMDNjXFx1MDAzYyA4KSB8ICgweDAwRkYgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1s2XSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NzgtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEMyMDAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODc5OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzZdID0gKDB4RkYgXFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1s2XSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODAtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEUyMjAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODgxOlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzddID0gKGNtZF9hcmcgXFx1MDAzY1xcdTAwM2MgOCkgfCAoMHgwMEZGIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbN10pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODgyLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBFMjAwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg4MzpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1s3XSA9ICgweEZGIFxcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbN10pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODg0LVxcdGVsc2UgaWYgKCgweEZCRkZGRTAzIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDAwMEUwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg4NTpcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODYtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDMgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDAwRTAyKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODg3OlxcdFxcdHZ1YjMwMC1cXHUwMDNlYnVzX3dpZHRoID0gNDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg4OC19XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODktXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTA6c3RhdGljIHZvaWQgc2VuZF9jb21tYW5kKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5MS17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTI6XFx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODkzOlxcdHN0cnVjdCBtbWNfY29tbWFuZCAqY21kID0gdnViMzAwLVxcdTAwM2VjbWQ7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTQ6XFx0c3RydWN0IG1tY19kYXRhICpkYXRhID0gdnViMzAwLVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODk1LVxcdGludCByZXR2YWw7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5Ny1cXHR1OCByZXNwb25zZV90eXBlO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODk4OlxcdGlmICh2dWIzMDAtXFx1MDAzZWFwcF9zcGVjKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTktXFx0XFx0c3dpdGNoIChjbWQtXFx1MDAzZW9wY29kZSkge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDEtXFx0XFx0XFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwMjpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gNjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkwMy1cXHRcXHRcXHRpZiAoMHgwMDAwMDAwMCA9PSAoMHgwMDAwMDAwMyBcXHUwMDI2IGNtZC1cXHUwMDNlYXJnKSlcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNDpcXHRcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDUtXFx0XFx0XFx0ZWxzZSBpZiAoMHgwMDAwMDAwMiA9PSAoMHgwMDAwMDAwMyBcXHUwMDI2IGNtZC1cXHUwMDNlYXJnKSlcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNjpcXHRcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDQ7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDctXFx0XFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTA4OlxcdFxcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnZ1YjMwMC1cXHUwMDNldWRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTA5LVxcdFxcdFxcdFxcdFxcdFxcXCJ1bmV4cGVjdGVkIEFDTUQ2IGJ1c193aWR0aD0lZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTEzLVxcdFxcdFxcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MTQ6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VyZXNwX2xlbiA9IDY7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MTUtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkxNy1cXHRcXHRcXHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTE4OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlcmVzcF9sZW4gPSA2O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTE5LVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MjEtXFx0XFx0XFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkyMjpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gNjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyMy1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTI1LVxcdFxcdFxcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzM7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MjY6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VyZXNwX2xlbiA9IDY7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MjctXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyOS1cXHRcXHRcXHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTMwOlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlcmVzcF9sZW4gPSA2O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTMxLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzMtXFx0XFx0XFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkzNDpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gNjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkzNS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTM3LVxcdFxcdFxcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5Mzg6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VyZXNwX2xlbiA9IDY7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzktXFx0XFx0XFx0YnJlYWs7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05NDAtXFx0XFx0ZGVmYXVsdDpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjk0MTpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gMDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTk0Mi1cXHRcXHRcXHRjbWQtXFx1MDAzZWVycm9yID0gLUVJTlZBTDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjk0MzpcXHRcXHRcXHRjb21wbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2Vjb21tYW5kX2NvbXBsZXRlKTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MjAuNzM4Nzg4NTk2WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMzAwNTM3ODA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgXCJZZXMsIGB2dWIzMDBgIGlzIGluZGVlZCBhbiBTRElPLXRvLVVTQiBicmlkZ2UgZHJpdmVyLlwiIFRoYXQncyB0aGUgZm91bmRhdGlvbi4gVGhlIGJlYXV0eSBvZiB0aGlzIGlzIHRoYXQgU3l6a2FsbGVyIGNhbiBlbXVsYXRlIHRoaXMgZGV2aWNlIHVzaW5nIGBkdW1teV9oY2RgIChVU0IpLCB3aGljaCBpcyBjcnVjaWFsLiBXaGVuIFN5emthbGxlciBlbXVsYXRlcyBgdnViMzAwYCwgdGhlIGRyaXZlciByZWdpc3RlcnMgYW4gTU1DIGhvc3QsIGFuZCB0aGVuIHdlIGNhbiBzaW11bGF0ZSBhbiBTRElPIGNhcmQsIGxpa2UgYGJyY21mbWFjYCwgYnkgc2VuZGluZyBhcHByb3ByaWF0ZSByZXNwb25zZXMgdG8gdGhlIGB2dWIzMDBgIGRyaXZlci4gRmFudGFzdGljISBUaGlzIGNvbmZpcm1zIHRoYXQgdGhlIGBicmNtZm1hY2AgU0RJTyBpbnRlcmZhY2UgKmlzKiBhY2Nlc3NpYmxlIHdpdGhpbiBTeXprYWxsZXIncyBlbXVsYXRlZCBlbnZpcm9ubWVudCFcblxuVGhlIHBhdGNoIGl0c2VsZiBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgaXNzdWUgd2l0aGluIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIE5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBhcmlzZXM6IElzIGBicmNtZm1hY2AgZXZlbiBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nPyBMZXQncyBjaGVjayB0aGUgY3JpdGVyaWEuIFRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmeSByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGNvbmNlcm5zIFwidmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuYGJyY21mbWFjYCBpcyBhIHZlbmRvci1zcGVjaWZpYyBXaS1GaSBkcml2ZXIsIHllcywgYnV0IGl0IGludGVyZmFjZXMgdmlhIFNESU8vVVNCL1BDSWUuIEJ1dCBnaXZlbiB0aGF0IGl0J3MgcmVhY2hhYmxlIHZpYSBVU0IgKGVpdGhlciBkaXJlY3RseSBvciB0aHJvdWdoIHRoZSBgdnViMzAwYCBicmlkZ2UsIGFzIHByb3ZlbiBieSBTeXprYWxsZXIncyBjYXBhYmlsaXRpZXMpLCBpdCBpc24ndCBhIGRyaXZlciB0aGF0IG1hbmRhdGVzIHNwZWNpYWxpemVkIGhhcmR3YXJlLiBJdCdzIGFjY2Vzc2libGUgaW4gdGhlIHZpcnR1YWxpemVkIGVudmlyb25tZW50ISBTbywgYFdvcnRoRnV6emluZz10cnVlYC5cblxuTm93LCBsZXQncyBleGFtaW5lIHRoZSBwYXRjaCBtb3JlIGNsb3NlbHkuIEl0IGludm9sdmVzIGEgY29kZSBjaGFuZ2UgaW4gYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYC4gQmVmb3JlIHRoZSBwYXRjaCwgdGhlIGNvZGUgd2FzIHN0cnVjdHVyZWQgdG8gY2hlY2sgaWYgYSBjb250cm9sIGZyYW1lIHdhcyBiZWluZyBwcm9jZXNzZWQsIGFuZCBiYXNlZCBvbiB0aGlzIGNvbmRpdGlvbiwgd291bGQgZWl0aGVyIGZyZWUgdGhlIGBidWZgIGFuZCBgZ290byBkb25lYCwgb3IgY29udGludWUgcHJvY2Vzc2luZy4gQ3JpdGljYWxseSwgdGhlIG9yaWdpbmFsIGNvZGUgaGFkIHRoZSBwb3RlbnRpYWwgbWVtb3J5IGxlYWssIHdoZXJlIHRoZSBgYnVmYCBwb2ludGVyIGNvdWxkIGJlIHVzZWQgYW5kICpub3QqIGZyZWVkLiBUaGUgcGF0Y2ggZXNzZW50aWFsbHkgcmVmYWN0b3JzIHRoaXMgbG9naWMsIHNldHRpbmcgYGJ1ZiA9IE5VTExgIGFuZCB0aGVuIGNhbGxpbmcgYHZmcmVlKGJ1ZilgLiBJZiBpdCB0b29rIHRoZSBgaWYgKGJ1cy1cdTAwM2VyeGN0bClgIGJyYW5jaCwgaXQgc3RpbGwgZW5kcyB1cCBhdCB0aGUgc2FtZSBsaW5lIHRoYXQgY2FsbHMgYHZmcmVlKGJ1ZilgLlxuXG5Ib3dldmVyLCB0aGUgaW50ZW50aW9uIG9mIHRoZSBwYXRjaCBpcyBub3QgY2xlYXIuIElzIGl0IGFkZHJlc3NpbmcgYSBkb3VibGUgZnJlZT8gTm8uIElmIGBidXMtXHUwMDNlcnhjdGxgIGlzIHRydWUsIGl0IHVzZWQgdG8gZnJlZSBgYnVmYCwgYW5kIG5vdyBpdCBkb2VzLCBzbyBpdCBpcyBsb2dpY2FsbHkgdGhlIHNhbWUuIFRoZSBgYnVmID0gTlVMTGAgYW5kIHRoZW4gYHZmcmVlKGJ1ZilgIG1lYW5zIHRoZSBzYW1lIHRoaW5nLiBUaGUgb3JpZ2luYWwgY29kZSBjb3VsZCAqcG90ZW50aWFsbHkqIGhhdmUgYSBtZW1vcnkgbGVhayBiZWNhdXNlIGlmIHRoZSBjb250cm9sIGZyYW1lIHdhc24ndCBhY3RpdmUsIHRoZW4gaXQgd291bGQgbm90IGZyZWUgdGhlIGJ1ZmZlci4gVGhlIHBhdGNoZWQgY29kZSBpcyBsb2dpY2FsbHkgZXF1aXZhbGVudDsgbm8gZG91YmxlLWZyZWUuXG5cbkknbSBwcmV0dHkgY2VydGFpbiB0aGVyZSBpcyBubyBsb2dpYyBlcnJvci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI4NjksIk91dHB1dFRva2VucyI6NTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MzMuMDM5MzI5MzQzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxNDE4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE3NTYsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNzU2OlxcdHN0YXRpYyB2b2lkXFxuMTc1NzpcXHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbjE3NTg6XFx0e1xcbjE3NTk6XFx0XFx0dWludCByZGxlbiwgcGFkO1xcbjE3NjA6XFx0XFx0dTggKmJ1ZiA9IE5VTEwsICpyYnVmO1xcbjE3NjE6XFx0XFx0aW50IHNkcmV0O1xcbjE3NjI6XFx0XFxuMTc2MzpcXHRcXHRicmNtZl9kYmcoU0RJTywgXFxcIkVudGVyXFxcXG5cXFwiKTtcXG4xNzY0OlxcdFxcdGlmIChidXMtXFx1MDAzZXJ4YmxlbilcXG4xNzY1OlxcdFxcdFxcdGJ1ZiA9IHZ6YWxsb2MoYnVzLVxcdTAwM2VyeGJsZW4pO1xcbjE3NjY6XFx0XFx0aWYgKCFidWYpXFxuMTc2NzpcXHRcXHRcXHRnb3RvIGRvbmU7XFxuMTc2ODpcXHRcXG4xNzY5OlxcdFxcdHJidWYgPSBidXMtXFx1MDAzZXJ4YnVmO1xcbjE3NzA6XFx0XFx0cGFkID0gKCh1bnNpZ25lZCBsb25nKXJidWYgJSBidXMtXFx1MDAzZWhlYWRfYWxpZ24pO1xcbjE3NzE6XFx0XFx0aWYgKHBhZClcXG4xNzcyOlxcdFxcdFxcdHJidWYgKz0gKGJ1cy1cXHUwMDNlaGVhZF9hbGlnbiAtIHBhZCk7XFxuMTc3MzpcXHRcXG4xNzc0OlxcdFxcdC8qIENvcHkgdGhlIGFscmVhZHktcmVhZCBwb3J0aW9uIG92ZXIgKi9cXG4xNzc1OlxcdFxcdG1lbWNweShidWYsIGhkciwgQlJDTUZfRklSU1RSRUFEKTtcXG4xNzc2OlxcdFxcdGlmIChsZW4gXFx1MDAzYz0gQlJDTUZfRklSU1RSRUFEKVxcbjE3Nzc6XFx0XFx0XFx0Z290byBnb3Rwa3Q7XFxuMTc3ODpcXHRcXG4xNzc5OlxcdFxcdC8qIFJhaXNlIHJkbGVuIHRvIG5leHQgU0RJTyBibG9jayB0byBhdm9pZCB0YWlsIGNvbW1hbmQgKi9cXG4xNzgwOlxcdFxcdHJkbGVuID0gbGVuIC0gQlJDTUZfRklSU1RSRUFEO1xcbjE3ODE6XFx0XFx0aWYgKGJ1cy1cXHUwMDNlcm91bmR1cCBcXHUwMDI2XFx1MDAyNiBidXMtXFx1MDAzZWJsb2Nrc2l6ZSBcXHUwMDI2XFx1MDAyNiAocmRsZW4gXFx1MDAzZSBidXMtXFx1MDAzZWJsb2Nrc2l6ZSkpIHtcXG4xNzgyOlxcdFxcdFxcdHBhZCA9IGJ1cy1cXHUwMDNlYmxvY2tzaXplIC0gKHJkbGVuICUgYnVzLVxcdTAwM2VibG9ja3NpemUpO1xcbjE3ODM6XFx0XFx0XFx0aWYgKChwYWQgXFx1MDAzYz0gYnVzLVxcdTAwM2Vyb3VuZHVwKSBcXHUwMDI2XFx1MDAyNiAocGFkIFxcdTAwM2MgYnVzLVxcdTAwM2VibG9ja3NpemUpIFxcdTAwMjZcXHUwMDI2XFxuMTc4NDpcXHRcXHRcXHQgICAgKChsZW4gKyBwYWQpIFxcdTAwM2MgYnVzLVxcdTAwM2VzZGlvZGV2LVxcdTAwM2VidXNfaWYtXFx1MDAzZW1heGN0bCkpXFxuMTc4NTpcXHRcXHRcXHRcXHRyZGxlbiArPSBwYWQ7XFxuMTc4NjpcXHRcXHR9IGVsc2UgaWYgKHJkbGVuICUgYnVzLVxcdTAwM2VoZWFkX2FsaWduKSB7XFxuMTc4NzpcXHRcXHRcXHRyZGxlbiArPSBidXMtXFx1MDAzZWhlYWRfYWxpZ24gLSAocmRsZW4gJSBidXMtXFx1MDAzZWhlYWRfYWxpZ24pO1xcbjE3ODg6XFx0XFx0fVxcbjE3ODk6XFx0XFxuMTc5MDpcXHRcXHQvKiBEcm9wIGlmIHRoZSByZWFkIGlzIHRvbyBiaWcgb3IgaXQgZXhjZWVkcyBvdXIgbWF4aW11bSAqL1xcbjE3OTE6XFx0XFx0aWYgKChyZGxlbiArIEJSQ01GX0ZJUlNUUkVBRCkgXFx1MDAzZSBidXMtXFx1MDAzZXNkaW9kZXYtXFx1MDAzZWJ1c19pZi1cXHUwMDNlbWF4Y3RsKSB7XFxuMTc5MjpcXHRcXHRcXHRicmNtZl9lcnIoXFxcIiVkLWJ5dGUgY29udHJvbCByZWFkIGV4Y2VlZHMgJWQtYnl0ZSBidWZmZXJcXFxcblxcXCIsXFxuMTc5MzpcXHRcXHRcXHRcXHQgIHJkbGVuLCBidXMtXFx1MDAzZXNkaW9kZXYtXFx1MDAzZWJ1c19pZi1cXHUwMDNlbWF4Y3RsKTtcXG4xNzk0OlxcdFxcdFxcdGJyY21mX3NkaW9fcnhmYWlsKGJ1cywgZmFsc2UsIGZhbHNlKTtcXG4xNzk1OlxcdFxcdFxcdGdvdG8gZG9uZTtcXG4xNzk2OlxcdFxcdH1cXG4xNzk3OlxcdFxcbjE3OTg6XFx0XFx0aWYgKChsZW4gLSBkb2ZmKSBcXHUwMDNlIGJ1cy1cXHUwMDNlc2Rpb2Rldi1cXHUwMDNlYnVzX2lmLVxcdTAwM2VtYXhjdGwpIHtcXG4xNzk5OlxcdFxcdFxcdGJyY21mX2VycihcXFwiJWQtYnl0ZSBjdGwgZnJhbWUgKCVkLWJ5dGUgY3RsIGRhdGEpIGV4Y2VlZHMgJWQtYnl0ZSBsaW1pdFxcXFxuXFxcIixcXG4xODAwOlxcdFxcdFxcdFxcdCAgbGVuLCBsZW4gLSBkb2ZmLCBidXMtXFx1MDAzZXNkaW9kZXYtXFx1MDAzZWJ1c19pZi1cXHUwMDNlbWF4Y3RsKTtcXG4xODAxOlxcdFxcdFxcdGJ1cy1cXHUwMDNlc2RjbnQucnhfdG9vbG9uZysrO1xcbjE4MDI6XFx0XFx0XFx0YnJjbWZfc2Rpb19yeGZhaWwoYnVzLCBmYWxzZSwgZmFsc2UpO1xcbjE4MDM6XFx0XFx0XFx0Z290byBkb25lO1xcbjE4MDQ6XFx0XFx0fVxcbjE4MDU6XFx0XFxuMTgwNjpcXHRcXHQvKiBSZWFkIHJlbWFpbiBvZiBmcmFtZSBib2R5ICovXFxuMTgwNzpcXHRcXHRzZHJldCA9IGJyY21mX3NkaW9kX3JlY3ZfYnVmKGJ1cy1cXHUwMDNlc2Rpb2RldiwgcmJ1ZiwgcmRsZW4pO1xcbjE4MDg6XFx0XFx0YnVzLVxcdTAwM2VzZGNudC5mMnJ4ZGF0YSsrO1xcbjE4MDk6XFx0XFxuMTgxMDpcXHRcXHQvKiBDb250cm9sIGZyYW1lIGZhaWx1cmVzIG5lZWQgcmV0cmFuc21pc3Npb24gKi9cXG4xODExOlxcdFxcdGlmIChzZHJldCBcXHUwMDNjIDApIHtcXG4xODEyOlxcdFxcdFxcdGJyY21mX2VycihcXFwicmVhZCAlZCBjb250cm9sIGJ5dGVzIGZhaWxlZDogJWRcXFxcblxcXCIsXFxuMTgxMzpcXHRcXHRcXHRcXHQgIHJkbGVuLCBzZHJldCk7XFxuMTgxNDpcXHRcXHRcXHRidXMtXFx1MDAzZXNkY250LnJ4Y19lcnJvcnMrKztcXG4xODE1OlxcdFxcdFxcdGJyY21mX3NkaW9fcnhmYWlsKGJ1cywgdHJ1ZSwgdHJ1ZSk7XFxuMTgxNjpcXHRcXHRcXHRnb3RvIGRvbmU7XFxuMTgxNzpcXHRcXHR9IGVsc2VcXG4xODE4OlxcdFxcdFxcdG1lbWNweShidWYgKyBCUkNNRl9GSVJTVFJFQUQsIHJidWYsIHJkbGVuKTtcXG4xODE5OlxcdFxcbjE4MjA6XFx0Z290cGt0OlxcbjE4MjE6XFx0XFxuMTgyMjpcXHRcXHRicmNtZl9kYmdfaGV4X2R1bXAoQlJDTUZfQllURVNfT04oKSBcXHUwMDI2XFx1MDAyNiBCUkNNRl9DVExfT04oKSxcXG4xODIzOlxcdFxcdFxcdFxcdCAgIGJ1ZiwgbGVuLCBcXFwiUnhDdHJsOlxcXFxuXFxcIik7XFxuMTgyNDpcXHRcXG4xODI1OlxcdFxcdC8qIFBvaW50IHRvIHZhbGlkIGRhdGEgYW5kIGluZGljYXRlIGl0cyBsZW5ndGggKi9cXG4xODI2OlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2YnVzLVxcdTAwM2VyeGN0bF9sb2NrKTtcXG4xODI3OlxcdFxcdGlmIChidXMtXFx1MDAzZXJ4Y3RsKSB7XFxuMTgyODpcXHRcXHRcXHRicmNtZl9lcnIoXFxcImxhc3QgY29udHJvbCBmcmFtZSBpcyBiZWluZyBwcm9jZXNzZWQuXFxcXG5cXFwiKTtcXG4xODI5OlxcdFxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZidXMtXFx1MDAzZXJ4Y3RsX2xvY2spO1xcbjE4MzA6XFx0XFx0XFx0Z290byBkb25lO1xcbjE4MzE6XFx0XFx0fVxcbjE4MzI6XFx0XFx0YnVzLVxcdTAwM2VyeGN0bCA9IGJ1ZiArIGRvZmY7XFxuMTgzMzpcXHRcXHRidXMtXFx1MDAzZXJ4Y3RsX29yaWcgPSBidWY7XFxuMTgzNDpcXHRcXHRidXMtXFx1MDAzZXJ4bGVuID0gbGVuIC0gZG9mZjtcXG4xODM1OlxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZidXMtXFx1MDAzZXJ4Y3RsX2xvY2spO1xcbjE4MzY6XFx0XFx0YnVmID0gTlVMTDtcXG4xODM3OlxcdFxcbjE4Mzg6XFx0ZG9uZTpcXG4xODM5OlxcdFxcdC8qIEF3YWtlIGFueSB3YWl0ZXJzICovXFxuMTg0MDpcXHRcXHRicmNtZl9zZGlvX2RjbWRfcmVzcF93YWtlKGJ1cyk7XFxuMTg0MTpcXHRcXHR2ZnJlZShidWYpO1xcbjE4NDI6XFx0fVxcbjE4NDM6XFx0XFxuMTg0NDpcXHQvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi9cXG4xODQ1OlxcdHN0YXRpYyB2b2lkIGJyY21mX3NkaW9fcGFkKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHUxNiAqcGFkLCB1MTYgKnJkbGVuKVxcbjE4NDY6XFx0e1xcbjE4NDc6XFx0XFx0aWYgKGJ1cy1cXHUwMDNlcm91bmR1cCBcXHUwMDI2XFx1MDAyNiBidXMtXFx1MDAzZWJsb2Nrc2l6ZSBcXHUwMDI2XFx1MDAyNiAqcmRsZW4gXFx1MDAzZSBidXMtXFx1MDAzZWJsb2Nrc2l6ZSkge1xcbjE4NDg6XFx0XFx0XFx0KnBhZCA9IGJ1cy1cXHUwMDNlYmxvY2tzaXplIC0gKCpyZGxlbiAlIGJ1cy1cXHUwMDNlYmxvY2tzaXplKTtcXG4xODQ5OlxcdFxcdFxcdGlmICgqcGFkIFxcdTAwM2M9IGJ1cy1cXHUwMDNlcm91bmR1cCBcXHUwMDI2XFx1MDAyNiAqcGFkIFxcdTAwM2MgYnVzLVxcdTAwM2VibG9ja3NpemUgXFx1MDAyNlxcdTAwMjZcXG4xODUwOlxcdFxcdFxcdCAgICAqcmRsZW4gKyAqcGFkICsgQlJDTUZfRklSU1RSRUFEIFxcdTAwM2MgTUFYX1JYX0RBVEFTWilcXG4xODUxOlxcdFxcdFxcdFxcdCpyZGxlbiArPSAqcGFkO1xcbjE4NTI6XFx0XFx0fSBlbHNlIGlmICgqcmRsZW4gJSBidXMtXFx1MDAzZWhlYWRfYWxpZ24pIHtcXG4xODUzOlxcdFxcdFxcdCpyZGxlbiArPSBidXMtXFx1MDAzZWhlYWRfYWxpZ24gLSAoKnJkbGVuICUgYnVzLVxcdTAwM2VoZWFkX2FsaWduKTtcXG4xODU0OlxcdFxcdH1cXG4xODU1OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MzMuMDM5OTQ2NDU0WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5NDE3MjQ2MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTWVtb3J5IExlYWsgRml4IGluIGJyY21mbWFjIERyaXZlcioqXG5cbk9rYXksIHNvIGJlZm9yZSB0aGlzIHBhdGNoLCBJIHNlZSB0aGVyZSB3ZXJlIHNldmVyYWwgaW5zdGFuY2VzIG9mIGBnb3RvIGRvbmU7YCBzdGF0ZW1lbnRzIHNjYXR0ZXJlZCBhcm91bmQsIGFuZCB0aGV5IHdlcmUgbGVha2luZyBgYnVmYCEgRm9yIGV4YW1wbGUsIHRha2UgdGhpcyBzbmlwcGV0OlxuXG5gYGBjXG5cdGlmICgocmRsZW4gKyBCUkNNRl9GSVJTVFJFQUQpIFx1MDAzZSBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKSB7XG5cdFx0YnJjbWZfZXJyKFwiJWQtYnl0ZSBjb250cm9sIHJlYWQgZXhjZWVkcyAlZC1ieXRlIGJ1ZmZlclxcblwiLFxuXHRcdFx0ICByZGxlbiwgYnVzLVx1MDAzZXNkaW9kZXYtXHUwMDNlYnVzX2lmLVx1MDAzZW1heGN0bCk7XG5cdFx0YnJjbWZfc2Rpb19yeGZhaWwoYnVzLCBmYWxzZSwgZmFsc2UpO1xuXHRcdGdvdG8gZG9uZTtcblx0fVxuYGBgXG5cbklmIHRoYXQgYGlmYCBjb25kaXRpb24gd2FzIHRydWUsIGBidWZgIHdhcyBhbGxvY2F0ZWQsIGJ1dCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBkb25lOmAgKndpdGhvdXQqIGZyZWVpbmcgaXQuIFRoYXQncyBhIGNsYXNzaWMgbWVtb3J5IGxlYWsuXG5cblRoaXMgcGF0Y2gsIHRoYW5rZnVsbHksIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgYWRkaW5nIGB2ZnJlZShidWYpYCBhdCBgZG9uZTpgIGFuZCBzZXR0aW5nIGBidWYgPSBOVUxMYCBvbiB0aGUgc3VjY2Vzc2Z1bCBwYXRoLiBUaGlzIGlzIGEgc29saWQgZml4IGZvciB0aGVzZSBlcnJvciBwYXRocy5cblxuTm93LCBzaG91bGQgSSBjb25zaWRlciBmdXp6aW5nIHRoaXM/IEFic29sdXRlbHkhIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc3BlY2lmaWNhbGx5IGZpeGluZyBhIG1lbW9yeSBsZWFrLiBBbmQgdGhlIGBicmNtZm1hY2AgZHJpdmVyIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGVtdWxhdGlvbi4gVGhlIGRyaXZlciBuYW1lIGlzIGBicmNtZm1hY2AuXG5cbldoYXQgY29uZmlncyBkbyBJIG5lZWQgdG8gdHJpZ2dlciB0aGlzPyBJJ2xsIG5lZWQgYENPTkZJR19CUkNNRk1BQ2AsIG9idmlvdXNseS4gU2luY2UgdGhlIGNvZGUgaW4gcXVlc3Rpb24sIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGlzIHJlbGF0ZWQgdG8gU0RJTywgSSdsbCBhbHNvIG5lZWQgYENPTkZJR19CUkNNRk1BQ19TRElPYC4gQW5kLCBzaW5jZSBpdCdzIHJlYWNoYWJsZSB2aWEgVVNCIGVtdWxhdGlvbiwgSSdsbCBuZWVkIGBDT05GSUdfQlJDTUZNQUNfVVNCYC4gVGhlbiwgdGhlIGNydWNpYWwgYml0IGZvciBzeXprYWxsZXIsIEknbGwgbmVlZCBgQ09ORklHX01NQ19WVUIzMDBgIHRvIGVtdWxhdGUgdGhlIFNESU8gaG9zdCBjb250cm9sbGVyIHZpYSBVU0IuXG5cbldhaXQsIGlzbid0IGBicmNtZm1hY2AgYWxzbyBkaXJlY3RseSBwcm9iZWQgdGhyb3VnaCBVU0IgKGBDT05GSUdfQlJDTUZNQUNfVVNCYCk/IEJ1dCwgdGhlIHZ1bG5lcmFibGUgY29kZSBsaXZlcyBpbiBgc2Rpby5jYCwgd2hpY2ggaXMgb25seSBjb21waWxlZCBpZiBgQ09ORklHX0JSQ01GTUFDX1NESU9gIGlzIGVuYWJsZWQuIEFuZCwgSSBuZWVkIGFuIFNESU8gaG9zdCBjb250cm9sbGVyIHRvIHJlYWNoIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGFuZCB0aGF0J3MgZXhhY3RseSB3aGF0IGBDT05GSUdfTU1DX1ZVQjMwMGAgcHJvdmlkZXMgYXMgdGhlIFVTQi10by1TRElPIGJyaWRnZSB0aGF0IHN5emthbGxlciB1c2VzLiBSaWdodCwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmb3IgYGJyY21mbWFjYCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjIzNCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwNywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjQwLjk4MTY3Mzc5MVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODkxNjQyNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJSQ01GTUFDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDo0MS4wNzA4NDQzMDlaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njk3MDMwODE1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkNoZWNraW5nIEJSQ01GTUFDX1NESU8gRGVwZW5kZW5jaWVzKipcblxuUmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzIGBCUkNNRk1BQ19TRElPYCBzaXR1YXRpb24uIEZpcnN0IHRoaW5ncyBmaXJzdCwgSSBuZWVkIHRvIG1ldGhvZGljYWxseSB0cmFjZSBhbGwgdGhlIGRlcGVuZGVuY2llcy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb2J2aW91cyBjb25mbGljdHMuIEFyZSB0aGVyZSBhbnkgb3RoZXIgbW9kdWxlcywgZHJpdmVycywgb3Igc3lzdGVtIHNlcnZpY2VzIHRoYXQgcmVseSBvbiwgb3IgYXJlIGRlcGVuZGVkIHVwb24gYnksIGBCUkNNRk1BQ19TRElPYD8gSSdtIHRoaW5raW5nIGFib3V0IGNsb2NrIGNvbnRyb2wsIGludGVycnVwdCBoYW5kbGluZywgU0RJTyBidXMgc3BlY2lmaWNzLCBhbmQgcG90ZW50aWFsbHkgcG93ZXIgbWFuYWdlbWVudCDigJMgdGhlIHVzdWFsIHN1c3BlY3RzLiBJ4oCZbGwgbWFrZSBhIG5vdGUgb2YgYW55dGhpbmcgdW5leHBlY3RlZCBvciB1bmNsZWFyIGltbWVkaWF0ZWx5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBpdHMgZGVwZW5kZW5jaWVzIGFyZSBjb3JyZWN0bHkgY29uZmlndXJlZCBhbmQgaWYgdGhlcmUncyBhbnkgY2lyY3VsYXIgZGVwZW5kZW5jeSBpc3N1ZXMuIFRpbWUgdG8gZGlnIGludG8gdGhlIGRvY3VtZW50YXRpb24gYW5kIHNvdXJjZSBjb2RlIHRvIHZlcmlmeS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc4NDEsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDo0OC4wNDExNTUyMjNaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0MzA2NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUkNNRk1BQ19TRElPXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MTQ9Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjQ4LjEwNTQ2NzUyMloiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTEwOTA4MjY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBicmNtZm1hYyBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIGhvdyB0aGlzIGBicmNtZm1hY2AgZHJpdmVyIGlzIGNvbmZpZ3VyZWQgd2l0aGluIHRoZSBicm9hZGVyIGtlcm5lbC4gTXkgaW5zdGluY3RzIHRlbGwgbWUgdGhlIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIEknbGwgZmluZCB0aGUgZ29vZCBzdHVmZiBhcm91bmQgbGluZSAxNyBvZiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdgLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgc29saWQgb3ZlcnZpZXcgb2YgdGhlIGNvbmZpZ3VyYWJsZSBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byB0aGUgQnJvYWRjb20gd2lyZWxlc3MgZHJpdmVyLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgZ29vZGllcyBJIGNhbiB1bmVhcnRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODI1NywiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjUyLjIxNjM3OTg4OFoiLCJTZXEiOjM4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5Mzc5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdGNvbmZpZyBCUkNNRk1BQ1xcbiAgIDI6XFx0XFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcXFwiXFxuICAgMzpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNDpcXHRcXHRzZWxlY3QgQlJDTVVUSUxcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBCcm9hZGNvbVxcbiAgIDc6XFx0XFx0ICBGdWxsTUFDIGNoaXBzZXRzLiBJdCBoYXMgdG8gd29yayB3aXRoIGF0IGxlYXN0IG9uZSBvZiB0aGUgYnVzXFxuICAgODpcXHRcXHQgIGludGVyZmFjZSBzdXBwb3J0LiBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWRcXG4gICA5OlxcdFxcdCAgYnJjbWZtYWMua28uXFxuICAxMDpcXHRcXG4gIDExOlxcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXFxuICAxMjpcXHRcXHRib29sXFxuICAxMzpcXHRcXG4gIDE0OlxcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcXG4gIDE1OlxcdFxcdGJvb2xcXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIEJSQ01GTUFDX1NESU9cXG4gIDE4OlxcdFxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4gIDE5OlxcdFxcdGRlcGVuZHMgb24gKE1NQyA9IHkgfHwgTU1DID0gQlJDTUZNQUMpXFxuICAyMDpcXHRcXHRkZXBlbmRzIG9uIEJSQ01GTUFDXFxuICAyMTpcXHRcXHRzZWxlY3QgQlJDTUZNQUNfUFJPVE9fQkNEQ1xcbiAgMjI6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMjM6XFx0XFx0ZGVmYXVsdCB5XFxuICAyNDpcXHRcXHRoZWxwXFxuICAyNTpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBCcm9hZGNvbVxcbiAgMjY6XFx0XFx0ICBJRUVFODAyLjExbiBlbWJlZGRlZCBGdWxsTUFDIFdMQU4gZHJpdmVyLiBTYXkgWSBpZiB5b3Ugd2FudCB0b1xcbiAgMjc6XFx0XFx0ICB1c2UgdGhlIGRyaXZlciBmb3IgYSBTRElPIHdpcmVsZXNzIGNhcmQuXFxuICAyODpcXHRcXG4gIDI5OlxcdGNvbmZpZyBCUkNNRk1BQ19VU0JcXG4gIDMwOlxcdFxcdGJvb2wgXFxcIlVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcbiAgMzE6XFx0XFx0ZGVwZW5kcyBvbiAoVVNCID0geSB8fCBVU0IgPSBCUkNNRk1BQylcXG4gIDMyOlxcdFxcdGRlcGVuZHMgb24gQlJDTUZNQUNcXG4gIDMzOlxcdFxcdHNlbGVjdCBCUkNNRk1BQ19QUk9UT19CQ0RDXFxuICAzNDpcXHRcXHRzZWxlY3QgRldfTE9BREVSXFxuICAzNTpcXHRcXHRoZWxwXFxuICAzNjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEJyb2FkY29tXFxuICAzNzpcXHRcXHQgIElFRUU4MDIuMTFuIGVtYmVkZGVkIEZ1bGxNQUMgV0xBTiBkcml2ZXIuIFNheSBZIGlmIHlvdSB3YW50IHRvXFxuICAzODpcXHRcXHQgIHVzZSB0aGUgZHJpdmVyIGZvciBhbiBVU0Igd2lyZWxlc3MgY2FyZC5cXG4gIDM5OlxcdFxcbiAgNDA6XFx0Y29uZmlnIEJSQ01GTUFDX1BDSUVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6NTIuMjE2NDc2MTQ4WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MDQ1NTAyOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQ3VycmVudCBGb2N1czogRGVmaW5pbmcgdGhlIE5lY2Vzc2FyeSBEcml2ZXJzKipcblxuT2theSwgc28gSSdtIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGRyaXZlciBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcHJvamVjdCwgYW5kIGl0J3MgYmVjb21pbmcgY2xlYXIgd2hhdCBJIG5lZWQuIEl0IGxvb2tzIGxpa2UgSSdtIGRlZmluaXRlbHkgZ29pbmcgdG8gcmVxdWlyZSBib3RoIGBCUkNNRk1BQ2AgYW5kIGBCUkNNRk1BQ19TRElPYC4gRnVydGhlcm1vcmUsIHRoZSBgTU1DYCBkcml2ZXIgaXMgYSBnaXZlbiwgb2J2aW91c2x5LiBOb3csIHRoZSBjdXJ2ZWJhbGwgaGVyZSBpcyB0aGlzIGBNTUNfVlVCMzAwYCBkcml2ZXIuIE15IHVuZGVyc3RhbmRpbmcgaXMgaXQncyBoYW5kbGluZyBTRElPIGVtdWxhdGlvbiB0aHJvdWdoIFVTQi4gVGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscyBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55IGluZGlyZWN0IGRlcGVuZGVuY2llcy4gSSdsbCBjaGVjayBpdHMgb3duIGRlcGVuZGVuY2llcyBhbmQgbWFrZSBjZXJ0YWluIGV2ZXJ5dGhpbmcgbGlua3MgdXAgY29ycmVjdGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTA1NSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6NTYuMTIxMDI5NTQ3WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTY3NDMyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1NQ19WVUIzMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkxMD1jb25maWcgTU1DX0paNDc0MFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTkxOS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6OTIwOmNvbmZpZyBNTUNfVlVCMzAwXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTkyMS1cXHR0cmlzdGF0ZSBcXFwiVlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6NTYuMjc3Nzc5OTg0WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNDUwNDc2NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIE1NQyBIb3N0IENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIHRoZSBgZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnYCBmaWxlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgOTIwLiBJJ20gbGlrZWx5IGludGVyZXN0ZWQgaW4gaG93IHNvbWUgcGFydGljdWxhciBmZWF0dXJlIG9yIG9wdGlvbiByZWxhdGVkIHRvIE1NQyBob3N0IGNvbnRyb2xsZXJzIGlzIGJlaW5nIGNvbmZpZ3VyZWQuIEdpdmVuIHRoZSBsb2NhdGlvbiB3aXRoaW4gS2NvbmZpZywgSSdtIGV4cGVjdGluZyB0byBmaW5kIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9wdGlvbnMgb3IgZGVwZW5kZW5jaWVzIGJlaW5nIGRlZmluZWQuIE15IGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBzcGVjaWZpYyBhc3BlY3QgaXMgY29udHJvbGxlZCwgd2hhdCBvdGhlciBmZWF0dXJlcyBpdCBtaWdodCBkZXBlbmQgb24sIGFuZCBwb3RlbnRpYWxseSwgd2hhdCBoYXJkd2FyZSBwbGF0Zm9ybXMgb3Iga2VybmVsIGNvbmZpZ3VyYXRpb25zIGVuYWJsZSBvciBkaXNhYmxlIGl0LiBQZXJoYXBzIEknbSB0cnlpbmcgdG8gZGVidWcgYW4gaXNzdWUsIG9yIHNpbXBseSB1bmRlcnN0YW5kIHRoZSBsb2dpYyBiZWhpbmQgYSBuZXcgTU1DIGhvc3QgZHJpdmVyIEknbSBsb29raW5nIGF0LiBNYXliZSBJJ20gdHJ5aW5nIHRvIGJ1aWxkIGEgY3VzdG9tIGtlcm5lbCBjb25maWd1cmF0aW9uLCBhbmQgbmVlZCB0byBrbm93IHRoZSBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgYSBwYXJ0aWN1bGFyIE1NQy1yZWxhdGVkIG9wdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk0MDgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMTowMC41MjI4MzE0MTdaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIwMzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA5MTUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA5MTU6XFx0XFx0ICBKWjQ3NDAsIEpaNDc1MCwgSlo0NzcwIGFuZCBKWjQ3ODAgU29Dcy5cXG4gOTE2OlxcdFxcbiA5MTc6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIGJvYXJkIGJhc2VkIG9uIHN1Y2ggYSBTb0MgYW5kIHdpdGggYSBTRC9NTUMgc2xvdCxcXG4gOTE4OlxcdFxcdCAgc2F5IFkgb3IgTSBoZXJlLlxcbiA5MTk6XFx0XFxuIDkyMDpcXHRjb25maWcgTU1DX1ZVQjMwMFxcbiA5MjE6XFx0XFx0dHJpc3RhdGUgXFxcIlZVQjMwMCBVU0IgdG8gU0RJTy9TRC9NTUMgSG9zdCBDb250cm9sbGVyIHN1cHBvcnRcXFwiXFxuIDkyMjpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiA5MjM6XFx0XFx0aGVscFxcbiA5MjQ6XFx0XFx0ICBUaGlzIHNlbGVjdHMgc3VwcG9ydCBmb3IgRWxhbiBEaWdpdGFsIFN5c3RlbXMnIFZVQjMwMCBjaGlwLlxcbiA5MjU6XFx0XFxuIDkyNjpcXHRcXHQgIFRoZSBWVUIzMDAgaXMgYSBVU0ItU0RJTyBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlIGNoaXBcXG4gOTI3OlxcdFxcdCAgdGhhdCBlbmFibGVzIHRoZSBob3N0IGNvbXB1dGVyIHRvIHVzZSBTRElPL1NEL01NQyBjYXJkc1xcbiA5Mjg6XFx0XFx0ICB2aWEgYSBVU0IgMi4wIG9yIFVTQiAxLjEgaG9zdC5cXG4gOTI5OlxcdFxcbiA5MzA6XFx0XFx0ICBUaGUgVlVCMzAwIGNoaXAgd2lsbCBiZSBmb3VuZCBpbiBib3RoIHBoeXNpY2FsbHkgc2VwYXJhdGVcXG4gOTMxOlxcdFxcdCAgVVNCIHRvIFNESU8vU0QvTU1DIGFkYXB0ZXJzIGFuZCBlbWJlZGRlZCBvbiBzb21lIG1vdGhlcmJvYXJkcy5cXG4gOTMyOlxcdFxcbiA5MzM6XFx0XFx0ICBUaGUgVlVCMzAwIGNoaXAgc3VwcG9ydHMgU0QgYW5kIE1NQyBtZW1vcnkgY2FyZHMgaW4gYWRkaXRpb25cXG4gOTM0OlxcdFxcdCAgdG8gc2luZ2xlIGFuZCBtdWx0aWZ1bmN0aW9uIFNESU8gY2FyZHMuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjAwLjUyMjk1MzczN1oiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzQyMTA5ODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU0RJTyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSBzZWUgdGhhdCBlbmFibGluZyBgTU1DX1ZVQjMwMGAgaGluZ2VzIG9uIGBVU0JgLiBUaGF0J3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDsgSSdsbCBuZWVkIHRvIG1ha2Ugc3VyZSBgVVNCYCBpcyBjb25maWd1cmVkIGFwcHJvcHJpYXRlbHkuIFRoZSBwYXRjaCBhbHNvIHN1Z2dlc3RzIHRoZXNlIGNvbmZpZ3MgbmVlZCB0byBiZSBlbmFibGVkOiBgQlJDTUZNQUNgLCBgQlJDTUZNQUNfU0RJT2AsIGFuZCwgb2YgY291cnNlLCBgTU1DX1ZVQjMwMGAuXG5cbk5vdywgYmVmb3JlIEkgY29tbWl0IHRvIGVuYWJsaW5nIGBCUkNNRk1BQ2AsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaXRzIGRlcGVuZGVuY2llcy4gQWgsIGl0IGxvb2tzIGxpa2UgaXQgcmVsaWVzIG9uIGBDRkc4MDIxMWAuIFNvLCBgQ0ZHODAyMTFgIGhhcyB0byBiZSBlbmFibGVkIHRvby4gTm8gc3VycHJpc2VzIHRoZXJlLCBidXQgYWx3YXlzIGdvb2QgdG8gY29uZmlybS5cblxuTGV0J3MgZHJpbGwgZG93biBpbnRvIHRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpdHNlbGYuIFRoZSBkaWZmIG1vZGlmaWVzIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIFRoaXMgZnVuY3Rpb24gY2FsbHMgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AsIHdoaWNoIGlzIGNhbGxlZCBieSBgYnJjbWZfc2Rpb19kcGNgLiBUaGUgbGF0dGVyIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBicmNtZl9zZGlvX2RhdGF3b3JrZXJgLiBTbyB0aGUgZW50cnkgcG9pbnQgdG8gdGhlIFNESU8gYnVzIGlzIHByb2JhYmx5IGBicmNtZl9zZGlvX2RwY2Agb3IgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAuXG5cbldhaXQsIGlzbid0IGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgYSAqc3RhdGljKiBmdW5jdGlvbj8gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgcmVxdWVzdHMgd2UgdXNlIG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnRzLiBUaGUgY29tcGlsZXIgd2lsbCBpbmxpbmUgc3RhdGljIGZ1bmN0aW9ucywgc28gdGhleSBkb24ndCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMuIE9rYXksIHRpbWUgdG8gZ28gaW50byBgc2Rpby5jYCBhbmQgaHVudCBmb3IgdGhlIG5vbi1zdGF0aWMgZW50cnkgcG9pbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDAyMCwiT3V0cHV0VG9rZW5zIjo1NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjA2Ljg2NTA2NTc0NFoiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MTI3MDM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5icmNtZl9zZGlvX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Njk3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtOTY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIwNzc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIxOTAtXFx0XFx0ICAgICAgdWludCBjaGFuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIyNjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI5MzY6YnJjbWZfc2Rpb19idXNfdHhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyNDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyOTgtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzM0MjpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzc3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM5NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQwOTk6YnJjbWZfc2Rpb193YXRjaGRvZ190aHJlYWQodm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MTI1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQyNi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjA2Ljk2OTE5NzE0MloiLCJTZXEiOjQ1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzkxODUzNTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggc3VtbWFyaXppbmcgdGhlIHByb21wdDpcblxuKipBbmFseXppbmcgYHNkaW8uY2AgZm9yIE5vbi1TdGF0aWMgRnVuY3Rpb25zKipcblxuUmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgYHNkaW8uY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB0aGUgbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZS4gVGhlIGZvY3VzIGhlcmUgaXMgb24gdmlzaWJpbGl0eSBhbmQgcG90ZW50aWFsIGV4dGVybmFsIGludGVyYWN0aW9uLiBTdGF0aWMgZnVuY3Rpb25zLCBieSBkZWZpbml0aW9uLCBhcmUgbGltaXRlZCBpbiBzY29wZSB0byB0aGUgZmlsZSB0aGV5J3JlIGRlY2xhcmVkIGluLiBJJ20gYXNzdW1pbmcgdGhlcmUncyBhIHNwZWNpZmljIHJlYXNvbiBmb3IgdGhpcyBub24tc3RhdGljIGFuYWx5c2lzLiBQZXJoYXBzIEknbSB0cnlpbmcgdG8gaWRlbnRpZnkgcG90ZW50aWFsIGVudHJ5IHBvaW50cywgQVBJIGZ1bmN0aW9ucywgZnVuY3Rpb25zIHRoYXQgY291bGQgYmUgY2FsbGVkIGZyb20gb3RoZXIgbW9kdWxlcyBvciBldmVuIHRoZSBrZXJuZWwgaXRzZWxmLiBPciwgbWF5YmUgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIEFQSSBjb250cmFjdCBhbmQgd2hldGhlciBvciBub3QgZnVuY3Rpb25zIGhhdmUgYmVlbiBpbmFwcHJvcHJpYXRlbHkgbWFkZSBub24tc3RhdGljLiBUaGUga2V5IGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHdoYXQncyBhdmFpbGFibGUgYW5kIGhvdyBpdCdzIGJlaW5nIGV4cG9zZWQuIFRoaXMgaW5pdGlhbCBzY2FuIHdpbGwgZ3VpZGUgdGhlIHJlc3Qgb2YgbXkgYW5hbHlzaXMuIEZyb20gaGVyZSBJIGNhbiBtYWtlIGEgZGVjaXNpb24gb24gbXkgbmV4dCBhY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNzMyLCJPdXRwdXRUb2tlbnMiOjU4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MTEuMzYxMDUzNTAzWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjcwODE5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz01OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBzZGlvZF9kcml2ZV9zdHIgc2Rpb2RfZHJ2c3RyX3RhYjJfM3YzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNDpCUkNNRl9GV19ERUYoNDMxNDMsIFxcXCJicmNtZm1hYzQzMTQzLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNTpCUkNNRl9GV19ERUYoNDMyNDFCMCwgXFxcImJyY21mbWFjNDMyNDFiMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDY6QlJDTUZfRldfREVGKDQzMjQxQjQsIFxcXCJicmNtZm1hYzQzMjQxYjQtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA3OkJSQ01GX0ZXX0RFRig0MzI0MUI1LCBcXFwiYnJjbWZtYWM0MzI0MWI1LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwODpCUkNNRl9GV19ERUYoNDMyOSwgXFxcImJyY21mbWFjNDMyOS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDk6QlJDTUZfRldfREVGKDQzMzAsIFxcXCJicmNtZm1hYzQzMzAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEwOkJSQ01GX0ZXX0RFRig0MzM0LCBcXFwiYnJjbWZtYWM0MzM0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMTpCUkNNRl9GV19ERUYoNDMzNDAsIFxcXCJicmNtZm1hYzQzMzQwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMjpCUkNNRl9GV19ERUYoNDMzNSwgXFxcImJyY21mbWFjNDMzNS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTM6QlJDTUZfRldfREVGKDQzMzYyLCBcXFwiYnJjbWZtYWM0MzM2Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTQ6QlJDTUZfRldfREVGKDQzMzksIFxcXCJicmNtZm1hYzQzMzktc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE1OkJSQ01GX0ZXX0RFRig0MzQzMEEwLCBcXFwiYnJjbWZtYWM0MzQzMGEwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYxNi0vKiBOb3RlIHRoZSBuYW1lcyBhcmUgbm90IHBvc3RmaXhlZCB3aXRoIGExIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcXFwiYnJjbWZtYWM0MzQzMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFxcXCJicmNtZm1hYzQzNDMwYjAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFxcXCJicmNtZm1hYzQzNDM5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcXFwiYnJjbWZtYWM0MzQ1NS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcXFwiYnJjbWZtYWM0MzQ1Ni1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcXFwiYnJjbWZtYWM0MzU0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFxcXCJicmNtZm1hYzQzNTYtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcXFwiYnJjbWZtYWM0MzU5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFxcXCJicmNtZm1hYzQzNzMtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFxcXCJicmNtZm1hYzQzMDEyLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcXFwiYnJjbWZtYWM0Mzc1Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjktLyogZmlybXdhcmUgY29uZmlnIGZpbGVzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzA6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcXFwiYnJjbWZtYWMqLXNkaW8uKi50eHRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYzMzpNT0RVTEVfRklSTVdBUkUoQlJDTUZfRldfREVGQVVMVF9QQVRIIFxcXCJicmNtZm1hYyotc2Rpby4qLmJpblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Njk4OmJyY21mX3NkaW9fa3NvX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBvbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTk2ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjA3ODpicmNtZl9zZGlvX3dhaXRfZXZlbnRfd2FrZXVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjE4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cXHRcXHQgICAgICB1aW50IGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIyNjQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yOTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjQ2OmJyY21mX3NkaW9fYnVzX3J4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjk2PXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzM0My1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozNzc4OmJyY21mX3NkaW9fZHJpdmVzdHJlbmd0aGluaXQoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM5NTA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDEwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQxMjY6YnJjbWZfc2Rpb193YXRjaGRvZyhzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00NDI0PXN0YXRpYyBzdHJ1Y3QgYnJjbWZfZndfcmVxdWVzdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MTEuNDE3NzY3NTcxWiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNDEwOTgyNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipGaW5kaW5nIE5vbi1TdGF0aWMgRnVuY3Rpb25zIGluIHNkaW8uYyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZSAqbm9uLXN0YXRpYyogZnVuY3Rpb25zIHdpdGhpbiB0aGUgYHNkaW8uY2AgZmlsZS4gVGhpcyBtZWFucyBJJ20gbG9va2luZyBmb3IgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBkZWNsYXJlZCB3aXRob3V0IHRoZSBgc3RhdGljYCBrZXl3b3JkLiBNeSBnb2FsIGhlcmUsIEkgYXNzdW1lLCBpcyB0byBpZGVudGlmeSBmdW5jdGlvbnMgdGhhdCBhcmUgKmV4dGVybmFsbHkgdmlzaWJsZSogb3IgcG90ZW50aWFsbHkgY2FsbGVkIGZyb20gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSwgbWF5YmUgZXZlbiBieSBvdGhlciBtb2R1bGVzIG9yIHRoZSBrZXJuZWwgaXRzZWxmLiBJIG5lZWQgdG8gcXVpY2tseSBhbmQgZWZmaWNpZW50bHkgbG9jYXRlIHRoZXNlIGVudHJ5IHBvaW50cy4gSSdsbCBsaWtlbHkgdXNlIHNvbWUgZm9ybSBvZiB0ZXh0IHNlYXJjaCwgcHJvYmFibHkgd2l0aGluIG15IElERSBvciBhIGNvbW1hbmQtbGluZSB1dGlsaXR5IGxpa2UgYGdyZXBgIG9yIGBmaW5kYC4gSeKAmWxsIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyB0aGF0IG1pZ2h0IGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvciBpbmNsdWRlIGZ1bmN0aW9ucy4gSSBtaWdodCBldmVuIGNoZWNrIGZvciBleHRlcm4gZGVjbGFyYXRpb25zIHRvIG1ha2UgY2VydGFpbiBJIGNhcHR1cmUgYWxsIHBvc3NpYmxlIGV4dGVybmFsIHJlZmVyZW5jZXMuIFRoaXMgaXMgYSBjb21tb24gZmlyc3Qgc3RlcCB3aGVuIHJldmVyc2UgZW5naW5lZXJpbmcgb3IgYW5hbHl6aW5nIGEgbW9kdWxlJ3MgcHVibGljIGludGVyZmFjZSwgb3IgcHJlcGFyaW5nIGl0IGZvciByZWZhY3RvcmluZy4gSSBrbm93IGhvdyB0byBkbyB0aGlzLCBzbyBsZXQncyBnZXQgaXQgZG9uZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTY4NTYsIk91dHB1dFRva2VucyI6NTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMToxNS43NTg4NjkxNzNaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMTgyNzUwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz01OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBzZGlvZF9kcml2ZV9zdHIgc2Rpb2RfZHJ2c3RyX3RhYjJfM3YzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNDpCUkNNRl9GV19ERUYoNDMxNDMsIFxcXCJicmNtZm1hYzQzMTQzLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNTpCUkNNRl9GV19ERUYoNDMyNDFCMCwgXFxcImJyY21mbWFjNDMyNDFiMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDY6QlJDTUZfRldfREVGKDQzMjQxQjQsIFxcXCJicmNtZm1hYzQzMjQxYjQtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA3OkJSQ01GX0ZXX0RFRig0MzI0MUI1LCBcXFwiYnJjbWZtYWM0MzI0MWI1LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwODpCUkNNRl9GV19ERUYoNDMyOSwgXFxcImJyY21mbWFjNDMyOS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDk6QlJDTUZfRldfREVGKDQzMzAsIFxcXCJicmNtZm1hYzQzMzAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEwOkJSQ01GX0ZXX0RFRig0MzM0LCBcXFwiYnJjbWZtYWM0MzM0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMTpCUkNNRl9GV19ERUYoNDMzNDAsIFxcXCJicmNtZm1hYzQzMzQwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMjpCUkNNRl9GV19ERUYoNDMzNSwgXFxcImJyY21mbWFjNDMzNS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTM6QlJDTUZfRldfREVGKDQzMzYyLCBcXFwiYnJjbWZtYWM0MzM2Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTQ6QlJDTUZfRldfREVGKDQzMzksIFxcXCJicmNtZm1hYzQzMzktc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE1OkJSQ01GX0ZXX0RFRig0MzQzMEEwLCBcXFwiYnJjbWZtYWM0MzQzMGEwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYxNi0vKiBOb3RlIHRoZSBuYW1lcyBhcmUgbm90IHBvc3RmaXhlZCB3aXRoIGExIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcXFwiYnJjbWZtYWM0MzQzMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFxcXCJicmNtZm1hYzQzNDMwYjAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFxcXCJicmNtZm1hYzQzNDM5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcXFwiYnJjbWZtYWM0MzQ1NS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcXFwiYnJjbWZtYWM0MzQ1Ni1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcXFwiYnJjbWZtYWM0MzU0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFxcXCJicmNtZm1hYzQzNTYtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcXFwiYnJjbWZtYWM0MzU5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFxcXCJicmNtZm1hYzQzNzMtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFxcXCJicmNtZm1hYzQzMDEyLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcXFwiYnJjbWZtYWM0Mzc1Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjktLyogZmlybXdhcmUgY29uZmlnIGZpbGVzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzA6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcXFwiYnJjbWZtYWMqLXNkaW8uKi50eHRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYzMzpNT0RVTEVfRklSTVdBUkUoQlJDTUZfRldfREVGQVVMVF9QQVRIIFxcXCJicmNtZm1hYyotc2Rpby4qLmJpblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Njk4OmJyY21mX3NkaW9fa3NvX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBvbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTk2ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjA3ODpicmNtZl9zZGlvX3dhaXRfZXZlbnRfd2FrZXVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjE4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cXHRcXHQgICAgICB1aW50IGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIyNjQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yOTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjQ2OmJyY21mX3NkaW9fYnVzX3J4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjk2PXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzM0My1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozNzc4OmJyY21mX3NkaW9fZHJpdmVzdHJlbmd0aGluaXQoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM5NTA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDEwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQxMjY6YnJjbWZfc2Rpb193YXRjaGRvZyhzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00NDI0PXN0YXRpYyBzdHJ1Y3QgYnJjbWZfZndfcmVxdWVzdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MTYuMDgwNzAwOTc3WiIsIlNlcSI6NDksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1OTEwMDU4OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjpcblxuKipEZWx2aW5nIGludG8gU3ltYm9sIFZpc2liaWxpdHkqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmluZCBzb21ldGhpbmcgc3BlY2lmaWMsIGxpa2VseSByZWxhdGVkIHRvIGhvdyBzeW1ib2xzIGFyZSBleHBvc2VkIGluIHRoZSBrZXJuZWwgb3IgYSBzcGVjaWZpYyBtb2R1bGUuIFRoZSB0ZXJtIGBFWFBPUlRfU1lNQk9MYCBpbW1lZGlhdGVseSBqdW1wcyBvdXQgYXMgYSBzdHJvbmcgY2FuZGlkYXRlLiBJdCBzY3JlYW1zIFwicHVibGljIGludGVyZmFjZVwiIGluIHRoZSBrZXJuZWwgc3BhY2UuIEknbSB0aGlua2luZyBJJ2xsIHN0YXJ0IHdpdGggYSBzZWFyY2ggZm9yIHRoYXQgbWFjcm8sIGJlY2F1c2UgaXQncyBhIGRpcmVjdCBpbmRpY2F0b3Igb2YgZnVuY3Rpb25zIGludGVuZGVkIGZvciB1c2UgYnkgb3RoZXIgbW9kdWxlcy4gSXQncyB0aGUgbW9zdCBleHBsaWNpdCB3YXkgdG8gbWFrZSBhIGZ1bmN0aW9uIHZpc2libGUgZXh0ZXJuYWxseS5cblxuSG93ZXZlciwgbWF5YmUgSSBzaG91bGQgYnJvYWRlbiB0aGUgc2VhcmNoIGEgbGl0dGxlLCBqdXN0IGluIGNhc2UgYEVYUE9SVF9TWU1CT0xgIGlzbid0IHVzZWQgZXZlcnl3aGVyZSBvciB0aGVyZSBhcmUgYWx0ZXJuYXRpdmUgbWVjaGFuaXNtcy4gSSBzaG91bGQgYWxzbyBjb25zaWRlciBhIHNlYXJjaCBmb3IgYWxsIG5vbi1zdGF0aWMgZnVuY3Rpb25zLCBJIG5lZWQgdG8gaWRlbnRpZnkgd2hpY2ggZnVuY3Rpb25zIGFyZSB2aXNpYmxlIG91dHNpZGUgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24gdW5pdC4gVGhhdCB3YXksIEkgY2FuIHBvdGVudGlhbGx5IGNhdGNoIGluc3RhbmNlcyB3aGVyZSBhIGZ1bmN0aW9uIGlzIGltcGxpY2l0bHkgcHVibGljLCBldmVuIHdpdGhvdXQgYW4gZXhwbGljaXQgYEVYUE9SVF9TWU1CT0xgIGRlY2xhcmF0aW9uLiBUaGlua2luZyBsaWtlIGEgZ29vZCBjb2RlIGFyY2hlb2xvZ2lzdCwgSSBuZWVkIHRvIGNvbnNpZGVyIGFsbCBhbmdsZXMuIExldCdzIHNlZSB3aGF0IHR1cm5zIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MDk5NiwiT3V0cHV0VG9rZW5zIjo1OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjIxLjY3MTcxMDYzNloiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODQ3NzQ3ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXlthLXpBLVowLTlfXStcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NTk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb2RfZHJpdmVfc3RyIHNkaW9kX2RydnN0cl90YWIyXzN2M1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDQ6QlJDTUZfRldfREVGKDQzMTQzLCBcXFwiYnJjbWZtYWM0MzE0My1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDU6QlJDTUZfRldfREVGKDQzMjQxQjAsIFxcXCJicmNtZm1hYzQzMjQxYjAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA2OkJSQ01GX0ZXX0RFRig0MzI0MUI0LCBcXFwiYnJjbWZtYWM0MzI0MWI0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNzpCUkNNRl9GV19ERUYoNDMyNDFCNSwgXFxcImJyY21mbWFjNDMyNDFiNS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDg6QlJDTUZfRldfREVGKDQzMjksIFxcXCJicmNtZm1hYzQzMjktc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA5OkJSQ01GX0ZXX0RFRig0MzMwLCBcXFwiYnJjbWZtYWM0MzMwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMDpCUkNNRl9GV19ERUYoNDMzNCwgXFxcImJyY21mbWFjNDMzNC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTE6QlJDTUZfRldfREVGKDQzMzQwLCBcXFwiYnJjbWZtYWM0MzM0MC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTI6QlJDTUZfRldfREVGKDQzMzUsIFxcXCJicmNtZm1hYzQzMzUtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEzOkJSQ01GX0ZXX0RFRig0MzM2MiwgXFxcImJyY21mbWFjNDMzNjItc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE0OkJSQ01GX0ZXX0RFRig0MzM5LCBcXFwiYnJjbWZtYWM0MzM5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNTpCUkNNRl9GV19ERUYoNDM0MzBBMCwgXFxcImJyY21mbWFjNDM0MzBhMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MTYtLyogTm90ZSB0aGUgbmFtZXMgYXJlIG5vdCBwb3N0Zml4ZWQgd2l0aCBhMSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE3OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzBBMSwgXFxcImJyY21mbWFjNDM0MzAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE4OkJSQ01GX0ZXX0RFRig0MzQzMEIwLCBcXFwiYnJjbWZtYWM0MzQzMGIwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxOTpCUkNNRl9GV19DTE1fREVGKDQzNDM5LCBcXFwiYnJjbWZtYWM0MzQzOS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjA6QlJDTUZfRldfQ0xNX0RFRig0MzQ1NSwgXFxcImJyY21mbWFjNDM0NTUtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIxOkJSQ01GX0ZXX0RFRig0MzQ1NiwgXFxcImJyY21mbWFjNDM0NTYtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIyOkJSQ01GX0ZXX0NMTV9ERUYoNDM1NCwgXFxcImJyY21mbWFjNDM1NC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjM6QlJDTUZfRldfQ0xNX0RFRig0MzU2LCBcXFwiYnJjbWZtYWM0MzU2LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNDpCUkNNRl9GV19ERUYoNDM1OSwgXFxcImJyY21mbWFjNDM1OS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjU6QlJDTUZfRldfQ0xNX0RFRig0MzczLCBcXFwiYnJjbWZtYWM0MzczLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNjpCUkNNRl9GV19DTE1fREVGKDQzMDEyLCBcXFwiYnJjbWZtYWM0MzAxMi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2Mjc6QlJDTUZfRldfQ0xNX0RFRig0Mzc1MiwgXFxcImJyY21mbWFjNDM3NTItc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjI5LS8qIGZpcm13YXJlIGNvbmZpZyBmaWxlcyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMwOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXFxcImJyY21mbWFjKi1zZGlvLioudHh0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzItLyogcGVyLWJvYXJkIGZpcm13YXJlIGJpbmFyaWVzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzM6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcXFwiYnJjbWZtYWMqLXNkaW8uKi5iaW5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Njk3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtOTY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIwNzc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIxOTAtXFx0XFx0ICAgICAgdWludCBjaGFuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIyNjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI5MzY6YnJjbWZfc2Rpb19idXNfdHhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyNDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyOTgtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzM0MjpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzc3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM5NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQwOTk6YnJjbWZfc2Rpb193YXRjaGRvZ190aHJlYWQodm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MTI1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQyNi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjIxLjc1NjQ5MTA4NFoiLCJTZXEiOjUxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTE0NjY3MzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgQlJDTUYgU0RJTyBJbml0aWFsaXphdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGNyaXRpY2FsIGVudHJ5IHBvaW50cyBmb3IgdGhlIEJyb2FkY29tIFNESU8gZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIGVpdGhlciBgYnJjbWZfc2Rpb19wcm9iZWAgb3IgYGJyY21mX3NkaW9fcmVnaXN0ZXJgLiBJJ20gbGVhbmluZyB0aGF0IHdheSBiZWNhdXNlIGBicmNtZl9zZGlvX3Byb2JlYCBpcyBvZnRlbiB0aGUgZmlyc3QgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBTRElPIGRldmljZSBpcyByZWNvZ25pemVkIGJ5IHRoZSBzeXN0ZW0gYW5kIHRoZW4gSSB0aGluayB0aGF0IGBicmNtZl9zZGlvX3JlZ2lzdGVyYCBpcyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIGRyaXZlciB3aXRoIHRoZSBTRElPIGJ1cy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGNvbmZpcm1pbmcgd2hpY2ggb2YgdGhlc2UgaXMgdGhlIHRydWUgc3RhcnRpbmcgcG9pbnQsIGFuZCB0aGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZHJpdmVyIGlzIGhvb2tlZCBpbnRvIHRoZSBTRElPIHN1YnN5c3RlbS4gVGhlIGdvYWwgaXMgdG8gcmFwaWRseSBkZXRlcm1pbmUgdGhlIGNvbnRyb2wgcGF0aCBmb3IgYnJpbmctdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1MTM1LCJPdXRwdXRUb2tlbnMiOjU0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MjUuNjcxMTYwODg0WiIsIlNlcSI6NTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDcwNzAxODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfc2Rpb19wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozOTUxOmJyY21mX3NkaW9fcHJvYmVfYXR0YWNoKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zOTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyNT1icmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQ1MDppbnQgYnJjbWZfc2Rpb19wcm9iZShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQ4Ni1cXHQvKiBhdHRlbXB0IHRvIGF0dGFjaCB0byB0aGUgZG9uZ2xlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDg3OlxcdHJldCA9IGJyY21mX3NkaW9fcHJvYmVfYXR0YWNoKGJ1cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDg4LVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDg5OlxcdFxcdGJyY21mX2VycihcXFwiYnJjbWZfc2Rpb19wcm9iZV9hdHRhY2ggZmFpbGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0OTAtXFx0XFx0Z290byBmYWlsO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMToyNS43NzgyMzgwOTJaIiwiU2VxIjo1MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5NDMwNzczMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQ29uc2lkZXJpbmcgRW50cnkgYW5kIEV4aXQgUG9pbnRzIGZvciB0aGUgQlJDTUYgU0RJTyBEcml2ZXIqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIHdoZW4gaXQgY29tZXMgdG8gdGhlIEJSQ01GIFNESU8gZHJpdmVyLCB0aGUgYGJyY21mX3NkaW9fcHJvYmVgIGZ1bmN0aW9uIGlzIGRlZmluaXRlbHkgYSBnb29kIGNhbmRpZGF0ZSBmb3IgdGhlIG5vbi1zdGF0aWMgZW50cnkgcG9pbnQuIEl0J3MgdGhlIG5hdHVyYWwgcGxhY2Ugd2hlcmUgdGhlIGRyaXZlciBpcyBpbml0aWFsaXplZCB3aGVuIGEgZGV2aWNlIGlzIGRldGVjdGVkLCByaWdodD8gVGhhdCBtYWtlcyB0aGUgbW9zdCBzZW5zZS5cblxuQW5kLCBpZiB3ZSdyZSBsb29raW5nIGF0IGEgY29tcGxlbWVudGFyeSBmdW5jdGlvbiB0byBoYW5kbGUgdGhlIG9wcG9zaXRlIHNjZW5hcmlvLCB0aGUgdW4taW5pdGlhbGl6YXRpb24gcHJvY2VzcywgdGhlIGBicmNtZl9zZGlvX3JlbW92ZWAgZnVuY3Rpb24gc2VlbXMgbGlrZSB0aGUgbG9naWNhbCBjaG9pY2UgZm9yIHRoZSBleGl0IHBvaW50LiBJdCB3b3VsZCBtYWtlIHNlbnNlIGZvciB0aGF0IHRvIGNsZWFuIHVwIHJlc291cmNlcywgdW5yZWdpc3RlciB0aGluZ3MsIGFuZCBoYW5kbGUgdGhlIGRldmljZSByZW1vdmFsIHNtb290aGx5LiBUaGlzIHdob2xlIGRyaXZlciBzZXR1cCBsb29rcyB3ZWxsLW9yZ2FuaXplZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjU5NzAsIk91dHB1dFRva2VucyI6NTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMToyOS40NzI1NDgzOTVaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzMwNTU3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX3JlbW92ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQ1MD1pbnQgYnJjbWZfc2Rpb19wcm9iZShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ1NTgtZmFpbDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQ1NTk6XFx0YnJjbWZfc2Rpb19yZW1vdmUoYnVzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ1NjAtXFx0c2Rpb2Rldi1cXHUwMDNlYnVzID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDU2ND12b2lkIGJyY21mX3NkaW9fY2FuY2VsX2RhdGF3b3JrKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ1NzAtLyogRGV0YWNoIGFuZCBmcmVlIGV2ZXJ5dGhpbmcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQ1NzE6dm9pZCBicmNtZl9zZGlvX3JlbW92ZShzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU3Mi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjI5LjU3NTg1ODE5M1oiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzQyNDM3NDkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBJbnF1aXJ5OiBCUkNNRl9TRElPX0lTUiBDb25zaWRlcmF0aW9uKipcblxuQWxyaWdodCwgc28gdGhlIGltbWVkaWF0ZSB0aG91Z2h0LCBhbmQgbGV0J3MgZmFjZSBpdCwgdGhlICpvbmx5KiB0aG91Z2h0IHJpZ2h0IG5vdywgaXM6ICoqYGJyY21mX3NkaW9faXNyYCoqLiBUaGF0J3Mgd2hlcmUgbXkgZm9jdXMgaGFzIHRvIGJlLiBTb21ldGhpbmcgdHJpZ2dlcmVkIHRoaXMgbGluZSBvZiB0aGlua2luZy4gSXQncyB1c3VhbGx5IHRoZSBzaWduIG9mIGEgc3BlY2lmaWMgaW50ZXJydXB0IGNvbnRleHQgd2l0aGluIEJyb2FkY29tIFNESU8gV2ktRmkgZHJpdmVycy4gSSdtIGltbWVkaWF0ZWx5IHRyeWluZyB0byByZWNhbGwgKndoeSogdGhpcyBmdW5jdGlvbiBoYXMgY29tZSB0byBtaW5kLiBJcyBpdCBhbiBpc3N1ZSBJJ3ZlIHNlZW4gcmVjZW50bHk/IEEgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2s/IEEgZGVidWdnaW5nIHNjZW5hcmlvIEkgd2FzIGluPyBPciBhbSBJIGp1c3QgcmV2aWV3aW5nIGNvZGUgYW5kIGxvb2tpbmcgZm9yIGFyZWFzIG9mIHBvc3NpYmxlIGltcHJvdmVtZW50PyBSZWdhcmRsZXNzLCB0aGUgZnVuY3Rpb24gaXRzZWxmIGlzIHRoZSBmb2NhbCBwb2ludC4gSXTigJlzIHRoZSBlbnRyeSBwb2ludCB0aGF0IGhhbmRsZXMgU0RJTyBpbnRlcnJ1cHRzIHdpdGhpbiB0aGUgQnJvYWRjb20gV2ktRmkgZHJpdmVyLCBzbyBhbnl0aGluZyByZWxhdGVkIHRvIGxhdGVuY3ksIGRhdGEgY29ycnVwdGlvbiwgb3IgdW5leHBlY3RlZCBiZWhhdmlvdXIgcmVsYXRlZCB0byB0aGUgU0RJTyBpbnRlcmZhY2UgaXMgZ29pbmcgdG8gaW52b2x2ZSB1bmRlcnN0YW5kaW5nIHRoYXQgZnVuY3Rpb24uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjb250ZXh0IG9mIHdoeSBJ4oCZbSB0aGlua2luZyBvZiBpdCByaWdodCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY2NjE4LCJPdXRwdXRUb2tlbnMiOjU0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MzMuMzE4Mjk5ODE1WiIsIlNlcSI6NTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDMwMTQwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX2lzclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzYzOD12b2lkIGJyY21mX3NkaW9fdHJpZ2dlcl9kcGMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzY0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM2NDY6dm9pZCBicmNtZl9zZGlvX2lzcihzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBib29sIGluX2lzcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM2NDcte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMTozMy4zNzg2MDU0NzRaIiwiU2VxIjo1NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA1NTYwMzMyMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEJSQ01GTUFDIFNESU8gRHJpdmVyIENvZGUqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgYnJjbWZfc2Rpb19pc3JgIGxvb2tzIGxpa2UgYSBrZXkgZW50cnkgcG9pbnQsIHdoaWNoIEkgY29uZmlybWVkLiBUaGVuIEkgdHJhY2VkIGl0cyBleGVjdXRpb24gcGF0aCB0byBgYnJjbWZfc2Rpb19kcGNgLiBGcm9tIHRoZXJlLCBJIHNhdyBgYnJjbWZfc2Rpb19kcGNgIGlzIGludm9rZWQgYnkgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAsIGFuZCBJIHZlcmlmaWVkIGl0J3MgYSBzdGF0aWMgZnVuY3Rpb24uIE5vdywgSSBuZWVkZWQgdG8gY2hlY2sgd2hhdCBub24tc3RhdGljIGZ1bmN0aW9ucyBjb3VsZCB0cmlnZ2VyIHRoYXQgc3RhdGljIHdvcmtlci4gVGhhdCBsZWQgbWUgdG8gYGJyY21mX3NkaW9fdHJpZ2dlcl9kcGNgLCBhbmQgeWVzLCB0aGF0J3MgYSBkaXJlY3QgdHJpZ2dlci4gQ29uc2lkZXJpbmcgYWxsIG9mIHRoaXMsIGBicmNtZl9zZGlvX3Byb2JlYCwgYGJyY21mX3NkaW9faXNyYCBhbmQgYGJyY21mX3NkaW9fdHJpZ2dlcl9kcGNgIGFyZSB0aGUgY3JpdGljYWwgc3ltYm9scyB0byBmb2N1cyBvbiBoZXJlLlxuXG5TbywgdG8gc3VtbWFyaXplIHRob3NlIGtleSBlbnRyeSBwb2ludHM6IGBicmNtZl9zZGlvX3Byb2JlYCwgYGJyY21mX3NkaW9faXNyYCwgYW5kIGBicmNtZl9zZGlvX3RyaWdnZXJfZHBjYCBhcmUgbXkgbWFpbiB0YXJnZXRzLiBOb3cgbGV0J3MgZGV0ZXJtaW5lIHRoZSBuZWNlc3NhcnkgZW5hYmxlIGNvbmZpZ3VyYXRpb25zLiBJJ20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoaXMgcXVpY2sgb3ZlcnZpZXc6IGBCUkNNRk1BQ2AsIGBCUkNNRk1BQ19TRElPYCwgYW5kIGBDRkc4MDIxMWAgbG9vayByZWxldmFudCBmb3IgdGhlIG1vZHVsZSwgYW5kIHBvc3NpYmx5IGBNTUNfVlVCMzAwYCBiYXNlZCBvbiBTRElPIGludGVyYWN0aW9ucy5cblxuSG9sZCBvbiBhIG1vbWVudCwgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIHNvbWV0aGluZy4gSSBrbm93IGBCUkNNRk1BQ19TRElPYCBkZXBlbmRzIG9uIGBNTUNgLCBzbyBgTU1DYCBuZWVkcyB0byBiZSBlbmFibGVkLiBMZXQncyBhZGQgdGhhdCB0byBgRW5hYmxlQ29uZmlnc2AganVzdCB0byBiZSBzYWZlLiBBY3R1YWxseSwgYE1NQ19WVUIzMDBgIGRlcGVuZHMgb24gVVNCLiBUaGVuLCBJIG5lZWQgdG8gYWRkIGBVU0JgIGFzIHdlbGwuIFRoYXQgaXMgYWxsLlxuXG5Pa2F5LCBsZXQncyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayBvbiBgQlJDTUZNQUNfU0RJT2AncyBkZXBlbmRlbmNpZXMuIFl1cCwgaXQgZXhwbGljaXRseSBkZXBlbmRzIG9uIGBNTUNgLlxuXG5Ob3csIGxldCdzIGdldCBiYWNrIHRvIHRoaXMgcGF0Y2guIEFoLCB0aGlzIGlzIGEgbWVtb3J5IGxlYWsgZml4IGluIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIExvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZS4gVGhlIGBnb3RvIGRvbmVgIHdhcyBieXBhc3NpbmcgdGhlIGB2ZnJlZShidWYpYCBjYWxsLCBsZWFkaW5nIHRvIHRoZSBsZWFrLiBUaGUgZml4IGV4cGxpY2l0bHkgbnVsbHMgYGJ1ZmAgYmVmb3JlIHRoYXQgYHZmcmVlYCBjYWxsLCBhZGRyZXNzaW5nIHRoZSBpc3N1ZS4gTG9va3MgbGlrZSBhIHNvbGlkIGZpeCB0byBtZS5cblxuT2theSwgYWxsIHRoZSByZWxldmFudCBpbmZvcm1hdGlvbiBoYXMgYmVlbiBjb2xsZWN0ZWQuIEkgYW0gcmVhZHkgdG8gYHNldC1yZXN1bHRzYCB3aXRoIHRoZSBmaW5kaW5ncy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjcxMjIsIk91dHB1dFRva2VucyI6MTc4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjQzLjkzNDY0MjgyNFoiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTAyOTkwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1NESU9cIixcbiAgICBcIk1NQ19WVUIzMDBcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNTUNcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3NkaW9fcHJvYmVcIixcbiAgICBcImJyY21mX3NkaW9faXNyXCIsXG4gICAgXCJicmNtZl9zZGlvX3RyaWdnZXJfZHBjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlcidzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1NESU9cIixcbiAgICBcIk1NQ19WVUIzMDBcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNTUNcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3NkaW9fcHJvYmVcIixcbiAgICBcImJyY21mX3NkaW9faXNyXCIsXG4gICAgXCJicmNtZl9zZGlvX3RyaWdnZXJfZHBjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlcidzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 10:07:16 +0000 UTC FinishedAt: 2026-08-03 10:11:45 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "4a0bd262df757b25fc4e2a53c947317c119ced4e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_SDIO", "MMC_VUB300", "CFG80211", "MMC", "USB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "4a0bd262df757b25fc4e2a53c947317c119ced4e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_SDIO", "MMC_VUB300", "CFG80211", "MMC", "USB" ], "series_id": "dc98cd1b-0763-41eb-8f8d-e885cb4714f9" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "brcmf_sdio_probe", "brcmf_sdio_isr", "brcmf_sdio_trigger_dpc" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1NESU8mIzM0OywKICAgICYjMzQ7TU1DX1ZVQjMwMCYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNTUMmIzM0OywKICAgICYjMzQ7VVNCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnJjbWZfc2Rpb19wcm9iZSYjMzQ7LAogICAgJiMzNDticmNtZl9zZGlvX2lzciYjMzQ7LAogICAgJiMzNDticmNtZl9zZGlvX3RyaWdnZXJfZHBjJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXImIzM5O3MgU0RJTyBpbnRlcmZhY2UuIFRoZSBkcml2ZXIgY2FuIGJlIHByb2JlZCBhbmQgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBieSBlbXVsYXRpbmcgdGhlIFZVQjMwMCBTRElPLXRvLVVTQiBicmlkZ2UgY29udHJvbGxlci4gVGhlIHBhdGNoIG1vZGlmaWVzIGZ1bmN0aW9uYWwgY29kZSBpbiB0aGUgU0RJTyBjb250cm9sIGZyYW1lIHJlYWQgcGF0aC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDBjZWNjOWNmODRkOTRkNjRlMDgzMjE2MGVjMDJmMzM2N2QwNjYwODZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDEwOjA4OjU4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXG5pbmRleCA5ZjdlZDFkMjkzYTA2Li4zODE4MDFhZjNhYzk4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuQEAgLTE4MjcsMTcgJiM0MzsxODI3LDE4IEBAIGJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXG4gXHRpZiAoYnVzLVx1MDAzZXJ4Y3RsKSB7XG4gXHRcdGJyY21mX2VycihcJiMzNDtsYXN0IGNvbnRyb2wgZnJhbWUgaXMgYmVpbmcgcHJvY2Vzc2VkLlxcblwmIzM0Oyk7XG4gXHRcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmJ1cy1cdTAwM2VyeGN0bF9sb2NrKTtcbi1cdFx0dmZyZWUoYnVmKTtcbiBcdFx0Z290byBkb25lO1xuIFx0fVxuIFx0YnVzLVx1MDAzZXJ4Y3RsID0gYnVmICYjNDM7IGRvZmY7XG4gXHRidXMtXHUwMDNlcnhjdGxfb3JpZyA9IGJ1ZjtcbiBcdGJ1cy1cdTAwM2VyeGxlbiA9IGxlbiAtIGRvZmY7XG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZidXMtXHUwMDNlcnhjdGxfbG9jayk7XG4mIzQzO1x0YnVmID0gTlVMTDtcbiBcbiBkb25lOlxuIFx0LyogQXdha2UgYW55IHdhaXRlcnMgKi9cbiBcdGJyY21mX3NkaW9fZGNtZF9yZXNwX3dha2UoYnVzKTtcbiYjNDM7XHR2ZnJlZShidWYpO1xuIH1cbiBcbiAvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJDTUZNQUMmIzM0OywKICAgICYjMzQ7QlJDTUZNQUNfU0RJTyYjMzQ7LAogICAgJiMzNDtNTUNfVlVCMzAwJiMzNDssCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01NQyYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9zZGlvX3Byb2JlJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9faXNyJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9fdHJpZ2dlcl9kcGMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciYjMzk7cyBTRElPIGludGVyZmFjZS4gVGhlIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGJ5IGVtdWxhdGluZyB0aGUgVlVCMzAwIFNESU8tdG8tVVNCIGJyaWRnZSBjb250cm9sbGVyLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZnVuY3Rpb25hbCBjb2RlIGluIHRoZSBTRElPIGNvbnRyb2wgZnJhbWUgcmVhZCBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMGNlY2M5Y2Y4NGQ5NGQ2NGUwODMyMTYwZWMwMmYzMzY3ZDA2NjA4NgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMgMTA6MDg6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYwppbmRleCA5ZjdlZDFkMjkzYTA2Li4zODE4MDFhZjNhYzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMKQEAgLTE4MjcsMTcgJiM0MzsxODI3LDE4IEBAIGJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpCiAJaWYgKGJ1cy0mZ3Q7cnhjdGwpIHsKIAkJYnJjbWZfZXJyKCYjMzQ7bGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cbiYjMzQ7KTsKIAkJc3Bpbl91bmxvY2tfYmgoJmFtcDtidXMtJmd0O3J4Y3RsX2xvY2spOwotCQl2ZnJlZShidWYpOwogCQlnb3RvIGRvbmU7CiAJfQogCWJ1cy0mZ3Q7cnhjdGwgPSBidWYgJiM0MzsgZG9mZjsKIAlidXMtJmd0O3J4Y3RsX29yaWcgPSBidWY7CiAJYnVzLSZndDtyeGxlbiA9IGxlbiAtIGRvZmY7CiAJc3Bpbl91bmxvY2tfYmgoJmFtcDtidXMtJmd0O3J4Y3RsX2xvY2spOwomIzQzOwlidWYgPSBOVUxMOwogCiBkb25lOgogCS8qIEF3YWtlIGFueSB3YWl0ZXJzICovCiAJYnJjbWZfc2Rpb19kY21kX3Jlc3Bfd2FrZShidXMpOwomIzQzOwl2ZnJlZShidWYpOwogfQogCiAvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjIyOQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDU4NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoJiMzOTtzIFJlYWNoYWJpbGl0eSBhbmQgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCBtb2RpZmllcyBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jYC4gSXQmIzM5O3MgYSBtZW1vcnkgbWFuYWdlbWVudCBmaXgsIG1vdmluZyBgdmZyZWUoYnVmKWAgYW5kIHNldHRpbmcgYGJ1ZiA9IE5VTExgIHRvIGF2b2lkIGEgcG90ZW50aWFsIGRvdWJsZSBmcmVlIG9yIGxlYWsuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYW5kIGlzIGl0IGV2ZW4gd29ydGggZnV6emluZz8KClRoaXMgaXMgYSBCcm9hZGNvbSA4MDIuMTEgU0RJTyBkcml2ZXIgKGBicmNtZm1hYy9zZGlvLmNgKS4gU0RJTyBpcyB0aGUga2V5IGhlcmUuIENhbiB3ZSBlbXVsYXRlIG9yIGZ1enogU0RJTyBkZXZpY2VzIHdpdGhpbiBRRU1VPyBHZW5lcmFsbHksIFNESU8gaXMgdHJpY2t5LiBJdCYjMzk7cyBub3QgYXMgZWFzaWx5IGZ1enphYmxlIGFzIHNvbWV0aGluZyB3aXRoIGJyb2FkZXIgc3l6a2FsbGVyIHN1cHBvcnQuIEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgYHN5el9zZGlvXypgIHBzZXVkby1zeXNjYWxscy4uLk5vcGUuIE1heWJlIGl0IGNhbiBiZSBmdXp6ZWQgdmlhIHNvbWUgb3RoZXIgbWVhbnM/CgpMZXQmIzM5O3Mgc2VlIGlmIGBicmNtZm1hY2AgZXZlbiBmaXRzIHRoZSBjcml0ZXJpYSBmb3IgYmVpbmcgd29ydGggZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBpdCYjMzk7cyBub3QgYSBkcml2ZXIgdGhhdCAqcmVxdWlyZXMqIHNwZWNpYWxpemVkIGhhcmR3YXJlLiBMZXQmIzM5O3Mgc2VlLi4uIHRoZSBwcm9tcHQgc3RhdGVzIHRvIGF2b2lkIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIFNtYXJ0TklDcywgb3IgR1BVcy4gSXMgdGhpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZT8gSXQgaXMgYSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuLi4KCkFoLCB0aGlzIGlzIGEgRnVsbE1BQyBkcml2ZXIsIG1lYW5pbmcgdGhlIE1BQyBpcyBpbXBsZW1lbnRlZCBvbiB0aGUgZGV2aWNlIGl0c2VsZi4gSXQgY29tbXVuaWNhdGVzIHdpdGggZmlybXdhcmUgb24gdGhlIEJyb2FkY29tIGNoaXAuIFRoYXQmIzM5O3MgYSBodXJkbGUsIGlmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkuIFdpdGhvdXQgdGhlIEJyb2FkY29tIGNoaXAgaXRzZWxmLCBvciBhIGdvb2QgUUVNVSBlbXVsYXRpb24gb2YgaXQsIHRoZSBkcml2ZXIgbGlrZWx5IHdvbiYjMzk7dCBldmVuIHByb2JlIHN1Y2Nlc3NmdWxseSwgYW5kIGRlZmluaXRlbHkgd29uJiMzOTt0IHJlYWNoIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuCgpXYWl0LCBTeXprYWxsZXIgZG9lcyBoYXZlIFVTQiBmdXp6aW5nIChlLmcuLCBkdW1teV9oY2QpLCBidXQgdGhpcyBpcyBTRElPLiBEb2VzIFN5emthbGxlciBoYXZlIGFueSBTRElPLXNwZWNpZmljIHN1cHBvcnQ/IEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIGlmIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciBTRElPIGV4aXN0LiBMZXQgbWUgbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N5el8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzI2CgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aG9zZSB0aG91Z2h0cyBmcm9tIGEgZmlyc3QtcGVyc29uLCBleHBlcnQgcGVyc3BlY3RpdmUsIGFpbWluZyBmb3IgYSBmdWxzb21lIHJlbmRlcmluZzoKCioqU0RJTyBGdXp6aW5nIENvZGUgQXVkaXQqKgoKUmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIGN1cnJlbnQgc3RhdGUgb2YgU0RJTyBmdXp6aW5nIHdpdGhpbiB0aGUga2VybmVsLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIGFueSBleGlzdGluZyBmdXp6aW5nIGluZnJhc3RydWN0dXJlIGlzIGluIHBsYWNlIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIFNESU8gZHJpdmVyIG9yIHJlbGF0ZWQgY29tcG9uZW50cy4gVGhhdOKAmXMgc3RlcCBvbmUsIGEgYmFzaWMgcmVjb25uYWlzc2FuY2UgbWlzc2lvbi4gQXJlIHRoZXJlIGFueSBrbm93biBmdXp6aW5nIGhhcm5lc3NlcywgY3VzdG9tIG11dGF0aW9ucywgb3IgZG9jdW1lbnRlZCBmdXp6aW5nIGNvbmZpZ3VyYXRpb25zIGFscmVhZHkgcHJlc2VudD8gVGhpcyBzYXZlcyBtZSB2YWx1YWJsZSB0aW1lIGlmIHRoZXkgZXhpc3QuCgpJZiBmdXp6aW5nICppcyogcHJlc2VudCwgSSYjMzk7bGwgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBzY29wZSBhbmQgZWZmaWNhY3kuIEFyZSB0aGVyZSBhbnkgZ2FwcyBvciBwb3RlbnRpYWwgYXJlYXMgb2YgaW1wcm92ZW1lbnQgdGhhdCBqdW1wIG91dCBpbW1lZGlhdGVseT8gQXJlIHRoZSBleGlzdGluZyBmdXp6aW5nIGNvbmZpZ3VyYXRpb25zIGNvdmVyaW5nIHRoZSBtb3N0IGNyaXRpY2FsIGF0dGFjayBzdXJmYWNlcz8gQXJlIHRoZXkgaGl0dGluZyB0aGUgcmlnaHQgY29kZSBwYXRocywgdGFyZ2V0aW5nIHRoZSB2dWxuZXJhYmxlIGFyZWFzIEkmIzM5O2QgZXhwZWN0IHRvIHNlZT8KCklmIG5vIGRlZGljYXRlZCBTRElPIGZ1enppbmcgaXMgY3VycmVudGx5IGltcGxlbWVudGVkLCB0aGUgc2Vjb25kIHBhcnQgaXMgdG8gZGV0ZXJtaW5lIGlmIGV4aXN0aW5nIGNvZGUgaXMgcmVhY2hhYmxlIGJ5IGZ1enppbmcuIElmIHNvLCB3aGljaCBtb2R1bGVzIGNhbGwgb3IgcmVmZXJlbmNlIFNESU8/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBTRElPIGRyaXZlciBhcmUgZGlyZWN0bHkgZXhwb3NlZCB0byBpbnB1dCBmcm9tIGFueSBmdXp6YWJsZSBzb3VyY2VzLiBJIGhhdmUgdG8gbWFwIG91dCBhbnkgcG90ZW50aWFsIGF0dGFjayBzdXJmYWNlcy4gQ2FuIEkgbGV2ZXJhZ2UgZXhpc3RpbmcgZnV6emluZyBzZXR1cHMgbGlrZSBLQVNBTiwgS0ZFTkNFLCBvciBzeXprYWxsZXI/IENvdWxkIEkgaW50ZWdyYXRlIFNESU8tc3BlY2lmaWMgaW5wdXRzIGludG8gdGhlIGV4aXN0aW5nIGZyYW1ld29ya3Mgb3IgZG8gSSBuZWVkIHRvIGNyZWF0ZSBzb21ldGhpbmcgYmVzcG9rZT8gV2hhdCBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHMgaW50byB0aGUgU0RJTyBjb2RlIGZyb20gdXNlcmxhbmQgb3Igb3RoZXIga2VybmVsIG1vZHVsZXM/IEZpbmRpbmcgdGhlc2UgZW50cnkgcG9pbnRzIGlzIGtleSB0byBkZXZpc2luZyBlZmZlY3RpdmUgZnV6emluZyBzdHJhdGVnaWVzLiBJJiMzOTtsbCBuZWVkIHRvIGNvbnNpZGVyIGhvdyB0aGUgU0RJTyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggb3RoZXIgY29tcG9uZW50cywgcG90ZW50aWFsbHkgY3JlYXRpbmcgZGVwZW5kZW5jaWVzIHRoYXQgbmVlZCB0byBiZSBhZGRyZXNzZWQgaW4gdGhlIGZ1enppbmcgY29uZmlndXJhdGlvbi4gRXNzZW50aWFsbHksIEkmIzM5O20gdGhpbmtpbmcgb2YgJiMzNDtyZWFjaGFiaWxpdHkmIzM0OyBpbiB0ZXJtcyBvZiBob3cgZWFzaWx5IEkgY2FuIHNlbmQgZGF0YSB0byB0aGUgU0RJTyBpbnRlcmZhY2UgdGhhdCB0cmlnZ2VycyBpdHMgZXhlY3V0aW9uLiBBIGhpZ2gtbGV2ZWwgb3ZlcnZpZXcgbXVzdCBjb21lIGZpcnN0IHRvIHJlZHVjZSBlZmZvcnQgYW5kIHRpbWUgd2FzdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVhZF9jb250cm9sJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE3NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NTc9c3RhdGljIHVpbnQgYnJjbWZfc2Rpb19yZWFkZnJhbWVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHVpbnQgbWF4ZnJhbWVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxNy1cdFx0XHRpZiAocmQtXHUwMDNlY2hhbm5lbCA9PSBTRFBDTV9DT05UUk9MX0NIQU5ORUwpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTkxODpcdFx0XHRcdGJyY21mX3NkaW9fcmVhZF9jb250cm9sKGJ1cywgYnVzLVx1MDAzZXJ4aGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE5LVx0XHRcdFx0XHRcdFx0cmQtXHUwMDNlbGVuLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxNTkKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AgRnVuY3Rpb24gYW5kIGl0cyBUZXN0YWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyYWNpbmcgdGhyb3VnaCB0aGlzIGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGZ1bmN0aW9uLi4uIGl0IGNhbGxzIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHNlZSB0aGF0IGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGlzIGludm9rZWQgZnJvbSBgYnJjbWZfc2Rpb19kcGNgLCB3aGljaCBJIHJlY2FsbCBpcyB0aGUgU0RJTyBkYXRhIHByb2Nlc3NpbmcgdGFza2xldCBvciB3b3JrcXVldWUuIEJhc2ljYWxseSwgdGhlIHRoaW5nIHRoYXQgcmVhZHMgZGF0YSBvZmYgdGhlIFNESU8gYnVzLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIHN0YW5kYXJkIHN0dWZmLgoKTm93LCB0aGUgY29yZSBpc3N1ZSBpcyBnb2luZyB0byBiZSB0ZXN0aW5nIHRoaXMuIEkmIzM5O20gdGhpbmtpbmcsIHdpdGhvdXQgYSAqcmVhbCogQnJvYWRjb20gU0RJTyBkZXZpY2UgcHJlc2VudCwgdGhpcyBjb2RlIHBhdGggaXNuJiMzOTt0IGV2ZW4gZ29pbmcgdG8gYmUgaGl0IGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgcmlnaHQ/IEhvbGQgb24sIGRvZXMgUUVNVSBldmVuICplbXVsYXRlKiBCcm9hZGNvbSBTRElPIFdpLUZpPyBObywgZGVmaW5pdGVseSBub3QuIEl0IGRvZXNuJiMzOTt0LgoKQWxyaWdodCwgd2hhdCBhYm91dCBzeXprYWxsZXI/IERvZXMgaXQgaGF2ZSBhbiBTRElPIGZ1enplcj8gTGV0IG1lIHRoaW5rLi4uIHN5emthbGxlciBpcyBzdHJvbmcgb24gVVNCICh1c2luZyBkdW1teV9oY2QpIGFuZCBQQ0kgKHRvIGEgbGltaXRlZCBleHRlbnQsIGJ1dCBub3Qgc3BlY2lmaWMgV2ktRmkgY2FyZHMgdW5sZXNzIHRoZXkgYXJlIHNvZnRtYWMgbGlrZSBhdGg5ay9hdGgxMGssIGJ1dCB0aG9zZSBhcmVuJiMzOTt0IGVtdWxhdGVkIGFueXdheSwgd2FpdCwgaHdzaW0gaXMgZm9yIG1hYzgwMjExLCBub3QgZm9yIGZ1bGxtYWMpLiBTbywgdGhlIGFuc3dlciBpcyBuby4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYSBzcGVjaWZpYyBTRElPIGZ1enplci4gSXQmIzM5O3MgbWlzc2luZyB0aGF0IHBpZWNlLCBjcml0aWNhbCBmb3IgYGJyY21mbWFjYC4KClNvLCB0byBzdW1tYXJpemUsIHRoZXJlIGlzIG5vIFNESU8gZW11bGF0aW9uIGluIHRoZSBRRU1VIGNvbmZpZ3VyYXRpb24gc3l6a2FsbGVyIHVzZXMgZm9yIGZ1enppbmcgYGJyY21mbWFjYC4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoaXMgZm9yIGFic29sdXRlIGNlcnRhaW50eSwgYnV0IHRoZSBsYWNrIG9mIGFuIGVtdWxhdGVkIFNESU8gYnVzIGlzIGxpa2VseSB0aGUgbGltaXRpbmcgZmFjdG9yIGhlcmUuIFdlIG5lZWQgdG8gZmluZCBhIHdheSB0byB0ZXN0IHRoaXMgcHJvcGVybHksIG1heWJlIGxvb2sgYXQgb3RoZXIgZW11bGF0b3JzIGFuZCBzZWUgaWYgdGhleSBoYXZlIFNESU8gb3IgYnVpbGQgYSBjdXN0b20gc2V0dXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2RpbyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxODQ5IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc9NjU5PWNvbmZpZyBNTUNfTVZTRElPXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTY2OC1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6NjY5Olx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgbXZzZGlvLlxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTY3MC1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlPTM0PW9iai0kKENPTkZJR19NTUNfVElGTV9TRClcdCYjNDM7PSB0aWZtX3NkLm9cbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX01NQ19NVlNESU8pXHQmIzQzOz0gbXZzZGlvLm9cbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGUtMzYtb2JqLSQoQ09ORklHX01NQ19EQVZJTkNJKSAgICAgICAmIzQzOz0gZGF2aW5jaV9tbWMub1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU9Njg9b2JqLSQoQ09ORklHX01NQ19NRVNPTl9NWF9TREhDKVx0JiM0Mzs9IG1lc29uLW14LXNkaGMub1xuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfTU1DX01FU09OX01YX1NESU8pXHQmIzQzOz0gbWVzb24tbXgtc2Rpby5vXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlLTcwLW9iai0kKENPTkZJR19NTUNfTU9YQVJUKVx0JiM0Mzs9IG1veGFydC1tbWMub1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjktI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL2hvc3QuaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzozMDojaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvc2Rpby5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTMxLVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM9MzMyPXN0cnVjdCBhdG1lbF9tY2kge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMzg3LSAqIEBzZGNfcmVnOiBWYWx1ZSBvZiBTRENSIHRvIGJlIHdyaXR0ZW4gYmVmb3JlIHVzaW5nIHRoaXMgc2xvdC5cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6Mzg4OiAqIEBzZGlvX2lycTogU0RJTyBpcnEgbWFzayBmb3IgdGhpcyBzbG90LlxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0zODktICogQG1ycTogbW1jX3JlcXVlc3QgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBvciB3YWl0aW5nIHRvIGJlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz00MDE9c3RydWN0IGF0bWVsX21jaV9zbG90IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTQwNS1cdHUzMlx0XHRcdHNkY19yZWc7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjQwNjpcdHUzMlx0XHRcdHNkaW9faXJxO1xuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy00MDctXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0xNTQ1PXN0YXRpYyBpbnQgYXRtY2lfZ2V0X2NkKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU1OC1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MTU1OTpzdGF0aWMgdm9pZCBhdG1jaV9lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NjAte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2NC1cdGlmIChlbmFibGUpXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjE1NjU6XHRcdGF0bWNpX3dyaXRlbChob3N0LCBBVE1DSV9JRVIsIHNsb3QtXHUwMDNlc2Rpb19pcnEpO1xuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0xNTY2LVx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTY3Olx0XHRhdG1jaV93cml0ZWwoaG9zdCwgQVRNQ0lfSURSLCBzbG90LVx1MDAzZXNkaW9faXJxKTtcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2OC19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0xNTcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGF0bWNpX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NzQtXHQuZ2V0X2NkXHRcdD0gYXRtY2lfZ2V0X2NkLFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTc1Olx0LmVuYWJsZV9zZGlvX2lycSA9IGF0bWNpX2VuYWJsZV9zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU3Ni19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM9MjAxMT1zdGF0aWMgdm9pZCBhdG1jaV93cml0ZV9kYXRhX3BpbyhzdHJ1Y3QgYXRtZWxfbWNpICpob3N0KVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjA3OC1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjA3OTpzdGF0aWMgdm9pZCBhdG1jaV9zZGlvX2ludGVycnVwdChzdHJ1Y3QgYXRtZWxfbWNpICpob3N0LCB1MzIgc3RhdHVzKVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMDgwLXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIwODQtXHRcdHN0cnVjdCBhdG1lbF9tY2lfc2xvdCAqc2xvdCA9IGhvc3QtXHUwMDNlc2xvdFtpXTtcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjA4NTpcdFx0aWYgKHNsb3QgXHUwMDI2XHUwMDI2IChzdGF0dXMgXHUwMDI2IHNsb3QtXHUwMDNlc2Rpb19pcnEpKSB7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIwODY6XHRcdFx0bW1jX3NpZ25hbF9zZGlvX2lycShzbG90LVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIwODctXHRcdH1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTIwOTI9c3RhdGljIGlycXJldHVybl90IGF0bWNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjEzLVx0XHRpZiAocGVuZGluZyBcdTAwMjYgKEFUTUNJX1NESU9JUlFBIHwgQVRNQ0lfU0RJT0lSUUIpKVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMjE0Olx0XHRcdGF0bWNpX3NkaW9faW50ZXJydXB0KGhvc3QsIHN0YXR1cyk7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMTUtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0yMjM2PXN0YXRpYyBpbnQgYXRtY2lfaW5pdF9zbG90KHN0cnVjdCBhdG1lbF9tY2kgKmhvc3QsXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMzctXHRcdHN0cnVjdCBtY2lfc2xvdF9wZGF0YSAqc2xvdF9kYXRhLCB1bnNpZ25lZCBpbnQgaWQsXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIyMzg6XHRcdHUzMiBzZGNfcmVnLCB1MzIgc2Rpb19pcnEpXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMzkte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjI1NC1cdHNsb3QtXHUwMDNlc2RjX3JlZyA9IHNkY19yZWc7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIyNTU6XHRzbG90LVx1MDAzZXNkaW9faXJxID0gc2Rpb19pcnE7XG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyNTYtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjY3LVx0bW1jLVx1MDAzZW9jcl9hdmFpbFx0PSBNTUNfVkREXzMyXzMzIHwgTU1DX1ZERF8zM18zNDtcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjI2ODpcdGlmIChzZGlvX2lycSlcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjI2OS1cdFx0bW1jLVx1MDAzZWNhcHMgfD0gTU1DX0NBUF9TRElPX0lSUTtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYz03Nzg9c3RhdGljIGlycXJldHVybl90IGF1MXhtbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy03ODgtXHRpZiAoc3RhdHVzIFx1MDAyNiBTRF9TVEFUVVNfU0kpXHQvKiBTRElPICovXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYzo3ODk6XHRcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtNzkwLVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jPTkwNj1zdGF0aWMgdm9pZCBhdTF4bW1jX2RiZG1hX3NodXRkb3duKHN0cnVjdCBhdTF4bW1jX2hvc3QgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTE0LVxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM6OTE1OnN0YXRpYyB2b2lkIGF1MXhtbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW4pXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy05MTYte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jPTkyNT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyBhdTF4bW1jX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy05MjktXHQuZ2V0X2NkXHRcdD0gYXUxeG1tY19jYXJkX2luc2VydGVkLFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM6OTMwOlx0LmVuYWJsZV9zZGlvX2lycSA9IGF1MXhtbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTMxLX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmMtOC0gKlxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmM6OTogKiBUaGUgc2RoY2kgY29udHJvbGxlciBzdXBwb3J0cyBib3RoIHNkY2FyZCBhbmQgc2Rpby4gIFRoZSBzZGhvc3RcbmRyaXZlcnMvbW1jL2hvc3QvYmNtMjgzNS5jLTEwLSAqIGNvbnRyb2xsZXIgc3VwcG9ydHMgdGhlIHNkY2FyZCBvbmx5LCBidXQgaGFzIGJldHRlciBwZXJmb3JtYW5jZS5cbmRyaXZlcnMvbW1jL2hvc3QvYmNtMjgzNS5jOjExOiAqIEFsc28gbm90ZSB0aGF0IHRoZSBycGkzIGhhcyBzZGlvIHdpZmksIHNvIGRyaXZpbmcgdGhlIHNkY2FyZCB3aXRoXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy0xMi0gKiB0aGUgc2Rob3N0IGNvbnRyb2xsZXIgYWxsb3dzIHRvIHVzZSB0aGUgc2RoY2kgY29udHJvbGxlciBmb3Igd2lmaVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYz0xNjY9c3RydWN0IG1tY19kYXZpbmNpX2hvc3Qge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xNzMtXHRzdHJ1Y3QgcmVzb3VyY2UgKm1lbV9yZXM7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTc0Olx0aW50IG1tY19pcnEsIHNkaW9faXJxO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTE3NS1cdHVuc2lnbmVkIGNoYXIgYnVzX21vZGU7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTE4Ny1cdGJvb2wgZG9fZG1hO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjE4ODpcdGJvb2wgc2Rpb19pbnQ7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTg5LVx0Ym9vbCBhY3RpdmVfcmVxdWVzdDtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM9NzU2PW1tY19kYXZpbmNpX3hmZXJfZG9uZShzdHJ1Y3QgbW1jX2RhdmluY2lfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy03NjUtXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjc2NjpcdFx0aWYgKGhvc3QtXHUwMDNlc2Rpb19pbnQgXHUwMDI2XHUwMDI2ICEocmVhZGwoaG9zdC1cdTAwM2ViYXNlICYjNDM7IERBVklOQ0lfU0RJT1NUMCkgXHUwMDI2XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY3LVx0XHRcdFx0XHRTRElPU1QwX0RBVDFfSEkpKSB7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY4LVx0XHRcdHdyaXRlbChTRElPSVNUX0lPSU5ULCBob3N0LVx1MDAzZWJhc2UgJiM0MzsgREFWSU5DSV9TRElPSVNUKTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzo3Njk6XHRcdFx0bW1jX3NpZ25hbF9zZGlvX2lycShob3N0LVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzcwLVx0XHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTgzMz1kYXZpbmNpX2Fib3J0X2RhdGEoc3RydWN0IG1tY19kYXZpbmNpX2hvc3QgKmhvc3QsIHN0cnVjdCBtbWNfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODQwLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjg0MTpzdGF0aWMgaXJxcmV0dXJuX3QgbW1jX2RhdmluY2lfc2Rpb19pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTg0Mi17XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTg1MC1cdFx0d3JpdGVsKHN0YXR1cyB8IFNESU9JU1RfSU9JTlQsIGhvc3QtXHUwMDNlYmFzZSAmIzQzOyBEQVZJTkNJX1NESU9JU1QpO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjg1MTpcdFx0bW1jX3NpZ25hbF9zZGlvX2lycShob3N0LVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODUyLVx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYz0xMDE0PXN0YXRpYyBpbnQgbW1jX2RhdmluY2lfZ2V0X3JvKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDI0LVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEwMjU6c3RhdGljIHZvaWQgbW1jX2RhdmluY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMjYte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDMxLVx0XHRcdHdyaXRlbChTRElPSVNUX0lPSU5ULCBob3N0LVx1MDAzZWJhc2UgJiM0MzsgREFWSU5DSV9TRElPSVNUKTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDMyOlx0XHRcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzMtXHRcdH0gZWxzZSB7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTAzNDpcdFx0XHRob3N0LVx1MDAzZXNkaW9faW50ID0gdHJ1ZTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDM1LVx0XHRcdHdyaXRlbChyZWFkbChob3N0LVx1MDAzZWJhc2UgJiM0MzsgREFWSU5DSV9TRElPSUVOKSB8XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzgtXHR9IGVsc2Uge1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEwMzk6XHRcdGhvc3QtXHUwMDNlc2Rpb19pbnQgPSBmYWxzZTtcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDQwLVx0XHR3cml0ZWwocmVhZGwoaG9zdC1cdTAwM2ViYXNlICYjNDM7IERBVklOQ0lfU0RJT0lFTikgXHUwMDI2IH5TRElPSUVOX0lPSU5URU4sXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTEwNDU9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgbW1jX2RhdmluY2lfb3BzID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDQ5LVx0LmdldF9yb1x0XHQ9IG1tY19kYXZpbmNpX2dldF9ybyxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDUwOlx0LmVuYWJsZV9zZGlvX2lycSA9IG1tY19kYXZpbmNpX2VuYWJsZV9zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDUxLX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTExODQ9c3RhdGljIGludCBkYXZpbmNpX21tY3NkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEyNTAtXHRob3N0LVx1MDAzZW1tY19pcnEgPSBpcnE7XG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTI1MTpcdGhvc3QtXHUwMDNlc2Rpb19pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX29wdGlvbmFsKHBkZXYsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEyNTItXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEzMDEtXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTMwMjpcdGlmIChob3N0LVx1MDAzZXNkaW9faXJxIFx1MDAzZT0gMCkge1xuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEzMDM6XHRcdHJldCA9IGRldm1fcmVxdWVzdF9pcnEoXHUwMDI2cGRldi1cdTAwM2VkZXYsIGhvc3QtXHUwMDNlc2Rpb19pcnEsXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTMwNDpcdFx0XHRcdCAgICAgICBtbWNfZGF2aW5jaV9zZGlvX2lycSwgMCxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMzA1LVx0XHRcdFx0ICAgICAgIG1tY19ob3N0bmFtZShtbWMpLCBob3N0KTtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1yb2NrY2hpcC5jPTQ5OD1zdGF0aWMgaW50IGR3X21jaV9yb2NrY2hpcF9pbml0KHN0cnVjdCBkd19tY2kgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMtcm9ja2NoaXAuYy01MDMtXHQvKiBTRElPIGlycSBpcyB0aGUgOHRoIG9uIFJvY2tjaGlwIFNvQ3MgKi9cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmM6NTA0Olx0aG9zdC1cdTAwM2VzZGlvX2lycSA9IDg7XG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1yb2NrY2hpcC5jLTUwNS1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI0LSNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zZC5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjI1OiNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zZGlvLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjYtI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXHUwMDNlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0xNDgwPXN0YXRpYyB2b2lkIGR3X21jaV9od19yZXNldChzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1MTItXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1MTM6c3RhdGljIHZvaWQgZHdfbWNpX3ByZXBhcmVfc2Rpb19pcnEoc3RydWN0IGR3X21jaSAqaG9zdCwgYm9vbCBwcmVwYXJlKVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTE0LXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NDAtXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NDE6c3RhdGljIHZvaWQgX19kd19tY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBkd19tY2kgKmhvc3QsIGludCBlbmIpXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NDIte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1MC1cdGlmIChlbmIpXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NTE6XHRcdGludF9tYXNrIHw9IFNETU1DX0lOVF9TRElPKGhvc3QtXHUwMDNlc2Rpb19pcnEpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTUyLVx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTUzOlx0XHRpbnRfbWFzayBcdTAwMjY9IH5TRE1NQ19JTlRfU0RJTyhob3N0LVx1MDAzZXNkaW9faXJxKTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1NC1cdG1jaV93cml0ZWwoaG9zdCwgSU5UTUFTSywgaW50X21hc2spO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1OC1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU1OTpzdGF0aWMgdm9pZCBkd19tY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5iKVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTYwLXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NjItXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NjM6XHRkd19tY2lfcHJlcGFyZV9zZGlvX2lycShob3N0LCBlbmIpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTY0Olx0X19kd19tY2lfZW5hYmxlX3NkaW9faXJxKGhvc3QsIGVuYik7XG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NjUtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTcyLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTczOnN0YXRpYyB2b2lkIGR3X21jaV9hY2tfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMpXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NzQte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU3Ni1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU3NzpcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCAxKTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU3OC19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0xNjcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGR3X21jaV9vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNjc3LVx0LmNhcmRfaHdfcmVzZXQgICAgICAgICAgPSBkd19tY2lfaHdfcmVzZXQsXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE2Nzg6XHQuZW5hYmxlX3NkaW9faXJxXHQ9IGR3X21jaV9lbmFibGVfc2Rpb19pcnEsXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE2Nzk6XHQuYWNrX3NkaW9faXJxXHRcdD0gZHdfbWNpX2Fja19zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTY4MC1cdC5leGVjdXRlX3R1bmluZ1x0XHQ9IGR3X21jaV9leGVjdXRlX3R1bmluZyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jPTI2NTQ9c3RhdGljIGlycXJldHVybl90IGR3X21jaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjc1Ny1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6Mjc1ODpcdFx0aWYgKHBlbmRpbmcgXHUwMDI2IFNETU1DX0lOVF9TRElPKGhvc3QtXHUwMDNlc2Rpb19pcnEpKSB7XG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI3NTktXHRcdFx0bWNpX3dyaXRlbChob3N0LCBSSU5UU1RTLFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyNzYwOlx0XHRcdFx0ICAgU0RNTUNfSU5UX1NESU8oaG9zdC1cdTAwM2VzZGlvX2lycSkpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyNzYxOlx0XHRcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6Mjc2MjpcdFx0XHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yNzYzLVx0XHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0yNzk0PXN0YXRpYyBpbnQgZHdfbWNpX2luaXRfaG9zdF9jYXBzKHN0cnVjdCBkd19tY2kgKmhvc3QpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yODI1LVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyODI2Olx0LyogUHJvY2VzcyBTRElPIElSUXMgdGhyb3VnaCB0aGUgc2Rpb19pcnFfd29yay4gKi9cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjgyNy1cdGlmIChtbWMtXHUwMDNlY2FwcyBcdTAwMjYgTU1DX0NBUF9TRElPX0lSUSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jPTM0NDM9aW50IGR3X21jaV9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0zNDk0LVx0LyogUmUtZW5hYmxlIFNESU8gaW50ZXJydXB0cy4gKi9cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MzQ5NTpcdGlmIChzZGlvX2lycV9jbGFpbWVkKGhvc3QtXHUwMDNlbW1jKSlcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MzQ5NjpcdFx0X19kd19tY2lfZW5hYmxlX3NkaW9faXJxKGhvc3QsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0zNDk3LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg9NTI9c3RydWN0IGR3X21jaV9kbWFfc2xhdmUge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMTIxLSAqIEBpcnE6IFRoZSBpcnEgdmFsdWUgdG8gYmUgcGFzc2VkIHRvIHJlcXVlc3RfaXJxLlxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuaDoxMjI6ICogQHNkaW9faXJxOiBTRElPIGludGVycnVwdCBiaXQgaW4gaW50ZXJydXB0IHJlZ2lzdGVycy5cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMTIzLSAqIEBjbWQxMV90aW1lcjogVGltZXIgZm9yIFNEMy4wIHZvbHRhZ2Ugc3dpdGNoIG92ZXIgc2NoZW1lLlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg9MTYxPXN0cnVjdCBkd19tY2kge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjMzLVxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuaDoyMzQ6XHRpbnRcdFx0XHRzZGlvX2lycTtcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjM1LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jPTg0MD1zdGF0aWMgaXJxcmV0dXJuX3QganpfbW1jX2lycShpbnQgaXJxLCB2b2lkICpkZXZpZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy04NTktXHRcdGp6NDc0MF9tbWNfd3JpdGVfaXJxX3JlZyhob3N0LCBKWl9NTUNfSVJRX1NESU8pO1xuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM6ODYwOlx0XHRtbWNfc2lnbmFsX3NkaW9faXJxKGhvc3QtXHUwMDNlbW1jKTtcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jLTg2MS1cdFx0aXJxX3JlZyBcdTAwMjY9IH5KWl9NTUNfSVJRX1NESU87XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM9OTQwPXN0YXRpYyB2b2lkIGp6NDc0MF9tbWNfc2V0X2lvcyhzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgc3RydWN0IG1tY19pb3MgKmlvcylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy05OTQtXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYzo5OTU6c3RhdGljIHZvaWQgano0NzQwX21tY19lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy05OTYte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jPTEwMTg9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgano0NzQwX21tY19vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNC1cdC5nZXRfY2RcdFx0PSBtbWNfZ3Bpb19nZXRfY2QsXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYzoxMDI1Olx0LmVuYWJsZV9zZGlvX2lycSA9IGp6NDc0MF9tbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNi1cdC5zdGFydF9zaWduYWxfdm9sdGFnZV9zd2l0Y2ggPSBqejQ3NDBfdm9sdGFnZV9zd2l0Y2gsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtMjAtI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3NkLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjIxOiNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zZGlvLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTIyLSNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9zbG90LWdwaW8uaFx1MDAzZVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTQxMz1zdGF0aWMgaXJxcmV0dXJuX3QgbG9vbmdzb24yX21tY19pcnEoaW50IGlycSwgdm9pZCAqZGV2aWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNDI4LVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NDI5Olx0XHRzZGlvX3NpZ25hbF9pcnEobW1jKTtcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTQzMC1cdFx0cmV0dXJuIElSUV9IQU5ETEVEO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTU3ND1zdGF0aWMgdm9pZCBsb29uZ3NvbjJfbW1jX3JlcXVlc3Qoc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfcmVxdWVzdCAqbXJxKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU4OC1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjU4OTpzdGF0aWMgdm9pZCBsb29uZ3NvbjJfbW1jX2VuYWJsZV9zZGlvX2lycShzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgaW50IGVuYWJsZSlcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU5MC17XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNTk1LVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTk2OnN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfYWNrX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNTk3LXtcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjU5ODpcdGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxKG1tYywgMSk7XG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy01OTktfVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTYwMT1zdGF0aWMgc3RydWN0IG1tY19ob3N0X29wcyBsb29uZ3NvbjJfbW1jX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy02MDUtXHQuZ2V0X2NkXHRcdD0gbW1jX2dwaW9fZ2V0X2NkLFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NjA2Olx0LmVuYWJsZV9zZGlvX2lycSA9IGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NjA3Olx0LmFja19zZGlvX2lycVx0PSBsb29uZ3NvbjJfbW1jX2Fja19zZGlvX2lycSxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTYwOC19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTYxNz1zdGF0aWMgaW50IGxvb25nc29uMl9yZW9yZGVyX2NtZF9saXN0W10gPSB7IFNEX0FQUF9TRU5EX1NDUiwgU0RfQVBQX1NFTkRfTlVNX1dSX0JMS1MsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNjIyLSAqIHJlc3BvbnNlIGRhdGFzIGhhcyBkaWZmZXJlbnQgYnl0ZSBvcmRlciB3aXRoIHVzdWFsIGRhdGEgcGFja2V0cy5cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjYyMzogKiBIb3dldmVyIHNkaW8gY29udHJvbGxlciB3aWxsIHNlbmQgdGhlc2UgZGF0YXMgaW4gdXN1YWwgZGF0YSBmb3JtYXQsXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy02MjQtICogc28gd2UgbmVlZCB0byBhZGp1c3QgdGhlc2UgZGF0YXMgdG8gYSBwcm90b2NvbCBjb25zaXN0ZW50IGJ5dGUgb3JkZXIuXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM9OTQwPXN0YXRpYyBpbnQgbG9vbmdzb24yX21tY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTk3My1cbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjk3NDpcdC8qIFByb2Nlc3MgU0RJTyBJUlFzIHRocm91Z2ggdGhlIHNkaW9faXJxX3dvcmsuICovXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy05NzUtXHRpZiAobW1jLVx1MDAzZWNhcHMgXHUwMDI2IE1NQ19DQVBfU0RJT19JUlEpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xOS0jaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvbW1jLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MjA6I2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3NkaW8uaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0yMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTUzLSNkZWZpbmUgICBDTEtfQUxXQVlTX09OKGgpXHRcdChoLVx1MDAzZWRhdGEtXHUwMDNlYWx3YXlzX29uKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzo1NDojZGVmaW5lICAgQ0xLX0lSUV9TRElPX1NMRUVQKGgpXHRcdChoLVx1MDAzZWRhdGEtXHUwMDNlaXJxX3NkaW9fc2xlZXApXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTU1LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9MTM2PXN0cnVjdCBtZXNvbl9tbWNfZGF0YSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xNDAtXHR1bnNpZ25lZCBpbnQgYWRqdXN0O1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxNDE6XHR1bnNpZ25lZCBpbnQgaXJxX3NkaW9fc2xlZXA7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE0Mi19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9OTA3PXN0YXRpYyB2b2lkIG1lc29uX21tY19yZWFkX3Jlc3Aoc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfY29tbWFuZCAqY21kKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtOTIwLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzo5MjE6c3RhdGljIHZvaWQgX19tZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05MjIte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9OTMxPXN0YXRpYyBpcnFyZXR1cm5fdCBtZXNvbl9tbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTk1Ni1cdFx0c3Bpbl9sb2NrKFx1MDAyNmhvc3QtXHUwMDNlbG9jayk7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjk1NzpcdFx0X19tZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxKGhvc3QtXHUwMDNlbW1jLCAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6OTU4Olx0XHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05NTktXHRcdHNwaW5fdW5sb2NrKFx1MDAyNmhvc3QtXHUwMDNlbG9jayk7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMDg2PXN0YXRpYyBpbnQgbWVzb25fbW1jX3ZvbHRhZ2Vfc3dpdGNoKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBzdHJ1Y3QgbW1jX2lvcyAqaW9zKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEwOS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTExMDpzdGF0aWMgdm9pZCBtZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTExLXtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMTUtXHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZob3N0LVx1MDAzZWxvY2ssIGZsYWdzKTtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTExNjpcdF9fbWVzb25fbW1jX2VuYWJsZV9zZGlvX2lycShtbWMsIGVuYWJsZSk7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMTctXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmhvc3QtXHUwMDNlbG9jaywgZmxhZ3MpO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTExOS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEyMDpzdGF0aWMgdm9pZCBtZXNvbl9tbWNfYWNrX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTIxLXtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEyMjpcdG1lc29uX21tY19lbmFibGVfc2Rpb19pcnEobW1jLCAxKTtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEyMy19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMTI1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIG1lc29uX21tY19vcHMgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTMzLVx0LnN0YXJ0X3NpZ25hbF92b2x0YWdlX3N3aXRjaCA9IG1lc29uX21tY192b2x0YWdlX3N3aXRjaCxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEzNDpcdC5lbmFibGVfc2Rpb19pcnEgPSBtZXNvbl9tbWNfZW5hYmxlX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMTM1Olx0LmFja19zZGlvX2lycVx0PSBtZXNvbl9tbWNfYWNrX3NkaW9faXJxLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTM2LX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMzA5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVzb25fbW1jX2RhdGEgbWVzb25fZ3hfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTEzMTMtXHQuYWRqdXN0XHRcdD0gU0RfRU1NQ19BREpVU1QsXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjEzMTQ6XHQuaXJxX3NkaW9fc2xlZXBcdD0gQ0xLX1YyX0lSUV9TRElPX1NMRUVQLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMzE1LX07XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVzb25fbW1jX2RhdGEgbWVzb25fYXhnX2RhdGEgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMzIxLVx0LmFkanVzdFx0XHQ9IFNEX0VNTUNfVjNfQURKVVNULFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMzIyOlx0LmlycV9zZGlvX3NsZWVwXHQ9IENMS19WM19JUlFfU0RJT19TTEVFUCxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTMyMy19O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYy0yMi0jaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvbW1jLmhcdTAwM2VcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYzoyMzojaW5jbHVkZSBcdTAwM2NsaW51eC9tbWMvc2Rpby5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaGMtbW1jLmMtMjQtI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXHUwMDNlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jPTEzMj1zdGF0aWMgdm9pZCBtZXNvbl9teF9zZGhjX3N0YXJ0X2NtZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaGMtbW1jLmMtMTc5LVx0XHQgKiBkb3dubG9hZCBpbiB0aGUgYnJjbWZtYWMgZHJpdmVyIGZvciBhIEJDTTQzMzYyLzEgY2FyZC5cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYzoxODA6XHRcdCAqIFdpdGhvdXQgdGhpcyBzZGlvX21lbWNweV90b2lvKCkgKHdpdGggYSBzaXplIG9mIDIxOTU1N1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jLTE4MS1cdFx0ICogYnl0ZXMpIHRpbWVzIG91dCBpZiBNRVNPTl9TREhDX01JU0NfTUFOVUFMX1NUT1AgaXMgbm90IHNldC5cbi0tXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy0yLS8qXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYzozOiAqIG1lc29uLW14LXNkaW8uYyAtIE1lc29uNiwgTWVzb244IGFuZCBNZXNvbjhiIFNESU8vTU1DIEhvc3QgQ29udHJvbGxlclxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNC0gKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTI3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L21tYy9tbWMuaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6Mjg6I2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3NkaW8uaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtMjktI2luY2x1ZGUgXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXHUwMDNlXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM9NjI5PXN0YXRpYyBpbnQgbWVzb25fbXhfbW1jX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02MzAte1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NjMxOlx0Y29uc3Qgc3RydWN0IHJlZ21hcF9jb25maWcgbWVzb25fbXhfc2Rpb19yZWdtYXBfY29uZmlnID0ge1xuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNjMyLVx0XHQucmVnX2JpdHMgPSA4LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTY2OC1cdGhvc3QtXHUwMDNlcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9tbWlvKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBiYXNlLFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NjY5Olx0XHRcdFx0XHQgICAgIFx1MDAyNm1lc29uX214X3NkaW9fcmVnbWFwX2NvbmZpZyk7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02NzAtXHRpZiAoSVNfRVJSKGhvc3QtXHUwMDNlcmVnbWFwKSkge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jPTc0OD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZXNvbl9teF9tbWNfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjc0OTpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDthbWxvZ2ljLG1lc29uOC1zZGlvXCYjMzQ7LCB9LFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NzUwOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2FtbG9naWMsbWVzb244Yi1zZGlvXCYjMzQ7LCB9LFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNzUxLVx0eyAvKiBzZW50aW5lbCAqLyB9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM9NzU1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1lc29uX214X21tY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNzU4LVx0LmRyaXZlciAgPSB7XG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYzo3NTk6XHRcdC5uYW1lID0gXCYjMzQ7bWVzb24tbXgtc2Rpb1wmIzM0OyxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTc2MC1cdFx0LnByb2JlX3R5cGUgPSBQUk9CRV9QUkVGRVJfQVNZTkNIUk9OT1VTLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jX3NwaS5jLTMzLSAqXG5kcml2ZXJzL21tYy9ob3N0L21tY19zcGkuYzozNDogKiAtIEZvciBub3csIHdlIHdvbiYjMzk7dCB0cnkgdG8gaW50ZXJvcGVyYXRlIHdpdGggYSByZWFsIG1tYy9zZC9zZGlvXG5kcml2ZXJzL21tYy9ob3N0L21tY19zcGkuYy0zNS0gKiAgIGNvbnRyb2xsZXIsIGFsdGhvdWdoIHNvbWUgb2YgdGhlbSBkbyBoYXZlIGhhcmR3YXJlIHN1cHBvcnQgZm9yXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTExPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdTMwMCA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjEtXHQuZGF0YWN0cmxfYmxvY2tzelx0PSAxMSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjEyMjpcdC5kYXRhY3RybF9tYXNrX3NkaW9cdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTIzOlx0LnN0X3NkaW9cdFx0XHQ9IHRydWUsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjQtXHQucHdycmVnX3Bvd2VydXBcdFx0PSBNQ0lfUFdSX09OLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTEzNj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X25vbWFkaWsgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMTQ2LVx0LmRhdGFjdHJsX2Jsb2Nrc3pcdD0gMTEsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxNDc6XHQuZGF0YWN0cmxfbWFza19zZGlvXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE0ODpcdC5zdF9zZGlvXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE0OS1cdC5zdF9jbGtkaXZcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTE2Mj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X3V4NTAwID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3Ni1cdC5kbWFfcG93ZXJfb2ZfMlx0XHQ9IHRydWUsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxNzc6XHQuZGF0YWN0cmxfbWFza19zZGlvXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE3ODpcdC5zdF9zZGlvXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3OS1cdC5zdF9jbGtkaXZcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTE5Nj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X3V4NTAwdjIgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjExLVx0LmRtYV9wb3dlcl9vZl8yXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjIxMjpcdC5kYXRhY3RybF9tYXNrX3NkaW9cdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjEzOlx0LnN0X3NkaW9cdFx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjE0LVx0LnN0X2Nsa2Rpdlx0XHQ9IHRydWUsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MjMxPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfc3RtMzIgPSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjQ0LVx0LmRhdGFjdHJsX2Jsb2Nrc3pcdD0gMTEsXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoyNDU6XHQuZGF0YWN0cmxfbWFza19zZGlvXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjI0NjpcdC5zdF9zZGlvXHRcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI0Ny1cdC5zdF9jbGtkaXZcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTI1Nj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X3N0bTMyX3NkbW1jID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI3Mi1cdC5kYXRhY3RybF9hbnlfYmxvY2tzelx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjczOlx0LmRhdGFjdHJsX21hc2tfc2Rpb1x0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzQtXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcdD0gR0VOTUFTSygxMiwgNSksXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzUtXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXHQ9IEJJVCg1KSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjI3NjpcdC5zdXBwb3J0c19zZGlvX2lycVx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjc3LVx0LmJ1c3lfdGltZW91dFx0XHQ9IHRydWUsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9Mjg0PXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfc3RtMzJfc2RtbWN2MiA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMDAtXHQuZGF0YWN0cmxfYW55X2Jsb2Nrc3pcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjMwMTpcdC5kYXRhY3RybF9tYXNrX3NkaW9cdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzAyLVx0LnN0bTMyX2lkbWFic2l6ZV9tYXNrXHQ9IEdFTk1BU0soMTYsIDUpLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzAzLVx0LnN0bTMyX2lkbWFic2l6ZV9hbGlnblx0PSBCSVQoNSksXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzozMDQ6XHQuc3VwcG9ydHNfc2Rpb19pcnFcdD0gdHJ1ZSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMwNS1cdC5kbWFfbGxpXHRcdD0gdHJ1ZSxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0zMTM9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tY3YzID0ge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMyOS1cdC5kYXRhY3RybF9hbnlfYmxvY2tzelx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MzMwOlx0LmRhdGFjdHJsX21hc2tfc2Rpb1x0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMzEtXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcdD0gR0VOTUFTSygxNiwgNiksXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMzItXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXHQ9IEJJVCg2KSxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjMzMzpcdC5zdXBwb3J0c19zZGlvX2lycVx0PSB0cnVlLFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzM0LVx0LmRtYV9sbGlcdFx0PSB0cnVlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTQyNT1zdGF0aWMgdm9pZCBtbWNpX3dyaXRlX2RhdGFjdHJscmVnKHN0cnVjdCBtbWNpX2hvc3QgKmhvc3QsIHUzMiBkYXRhY3RybClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy00MjgtXHRkYXRhY3RybCB8PSBob3N0LVx1MDAzZWRhdGFjdHJsX3JlZyBcdTAwMjYgKGhvc3QtXHUwMDNldmFyaWFudC1cdTAwM2VidXN5X2Rwc21fZmxhZyB8XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzo0Mjk6XHRcdFx0XHRcdCAgaG9zdC1cdTAwM2V2YXJpYW50LVx1MDAzZWRhdGFjdHJsX21hc2tfc2Rpbyk7XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy00MzAtXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTIzNj1zdGF0aWMgdm9pZCBtbWNpX3N0YXJ0X2RhdGEoc3RydWN0IG1tY2lfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjEtXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxMjYyOlx0aWYgKGhvc3QtXHUwMDNlbW1jLVx1MDAzZWNhcmQgXHUwMDI2XHUwMDI2IG1tY19jYXJkX3NkaW8oaG9zdC1cdTAwM2VtbWMtXHUwMDNlY2FyZCkpIHtcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjMtXHRcdHUzMiBjbGs7XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjY0LVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTI2NTpcdFx0ZGF0YWN0cmwgfD0gdmFyaWFudC1cdTAwM2VkYXRhY3RybF9tYXNrX3NkaW87XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjY2LVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNzItXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTI3MzpcdFx0aWYgKHZhcmlhbnQtXHUwMDNlc3Rfc2RpbyBcdTAwMjZcdTAwMjYgZGF0YS1cdTAwM2VmbGFncyBcdTAwMjYgTU1DX0RBVEFfV1JJVEUgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjc0LVx0XHQgICAgKGhvc3QtXHUwMDNlc2l6ZSBcdTAwM2MgOCB8fFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTE2OTc9c3RhdGljIGlycXJldHVybl90IG1tY2lfcGlvX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMTc2OC1cbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE3Njk6c3RhdGljIHZvaWQgbW1jaV93cml0ZV9zZGlvX2lycV9iaXQoc3RydWN0IG1tY2lfaG9zdCAqaG9zdCwgaW50IGVuYWJsZSlcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3NzAte1xuLS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MzIxCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogMjYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBgYnJjbWZtYWNgIERyaXZlciBhbmQgRnV6emluZyBQb3NzaWJpbGl0aWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBicmNtZm1hY2AgZHJpdmVyIGFuZCB0aGlua2luZyBhYm91dCBob3cgdG8gZnV6eiBpdCBlZmZlY3RpdmVseSB3aXRoIHN5emthbGxlci4gRmlyc3QsIGl0JiMzOTtzIGNsZWFyIHRoYXQgU0RJTyBpcyBhIGJ1cywgYW5kIHRoZSBrZXJuZWwgaGFzIGEgbnVtYmVyIG9mIFNESU8gaG9zdCBjb250cm9sbGVycyB0byBtYW5hZ2UgdGhlc2UgaW50ZXJmYWNlcy4gU3l6a2FsbGVyIGRvZXNuJiMzOTt0IHNlZW0gdG8gaGF2ZSBhIHRydWx5IGdlbmVyaWMgU0RJTyBwYWNrZXQgaW5qZWN0b3IuIEhtbSwgdGhvdWdoIHRoZXJlJiMzOTtzIHRoZSBXaS1GaSBmdXp6aW5nLCB3aGljaCBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYC4gQnV0IHRoYXQmIzM5O3Mgc3BlY2lmaWMgdG8gbWFjODAyMTEgZHJpdmVycy4gVGhpcyBgYnJjbWZtYWNgIGRyaXZlciBpcyBkaWZmZXJlbnQ7IGl0JiMzOTtzIGEgRnVsbE1BQyBkcml2ZXIgYW5kIGNhbiB0YWxrIHRvIGZpcm13YXJlIHRocm91Z2ggU0RJTywgVVNCLCAqb3IqIFBDSWUuIAoKV2FpdCBhIG1pbnV0ZSwgSSByZW1lbWJlciB0aGVyZSYjMzk7cyBhIFVTQiBpbnRlcmZhY2UgZm9yIGBicmNtZm1hY2AgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmNgKS4gSWYgc3l6a2FsbGVyIGlzIGFscmVhZHkgc2V0IHVwIHRvIGZ1enogVVNCLCBJIHNob3VsZCBiZSBhYmxlIHRvIHByb2JlIGBicmNtZm1hY2AgdXNpbmcgdGhlIFVTQiBpbnRlcmZhY2UuIEJ1dCwgaG9sZCBvbi4gVGhpcyBwYXRjaCBpcyBsb2NhdGVkIHNwZWNpZmljYWxseSBpbiBgc2Rpby5jYCwgbG9va2luZyBhdCBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBEb2VzIHRoaXMgbWVhbiB0aGUgY29kZSBpbiBgc2Rpby5jYCBpcyBldmVyIHJlYWNoYWJsZSBmcm9tIHRoZSBVU0IgaW50ZXJmYWNlPyBObywgdGhleSBhcmUgZGlmZmVyZW50IGJ1cyBpbnRlcmZhY2VzIGZvciB0aGUgc2FtZSBkcml2ZXIuIEkgbmVlZCB0byBiZSBzdXJlLiBJdCYjMzk7cyB0aW1lIHRvIGNoZWNrIGlmIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgaXMgb25seSBjb21waWxlZCwgb3IgcmVhY2hhYmxlLCB3aGVuIFNESU8gaXMgc2VsZWN0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVhZF9jb250cm9sJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE3NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NTc9c3RhdGljIHVpbnQgYnJjbWZfc2Rpb19yZWFkZnJhbWVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHVpbnQgbWF4ZnJhbWVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxNy1cdFx0XHRpZiAocmQtXHUwMDNlY2hhbm5lbCA9PSBTRFBDTV9DT05UUk9MX0NIQU5ORUwpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTkxODpcdFx0XHRcdGJyY21mX3NkaW9fcmVhZF9jb250cm9sKGJ1cywgYnVzLVx1MDAzZXJ4aGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE5LVx0XHRcdFx0XHRcdFx0cmQtXHUwMDNlbGVuLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODMyOAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipTeXprYWxsZXImIzM5O3MgRGlzY292ZXJ5KioKCk9rYXksIHNvIEkgc2VlIHRoaXMgdnVsbmVyYWJpbGl0eSBpcyBpc29sYXRlZCB0byBgc2Rpby5jYC4gVGhlIGZpcnN0IHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgd2hldGhlciBgc2Rpby5jYCBpcyBldmVuIGFjY2Vzc2libGUgd2l0aGluIHRoZSBTeXprYWxsZXIgdGVzdGluZyBlbnZpcm9ubWVudC4gVGhlbiBJIHF1aWNrbHkgcmVtZW1iZXJlZCB0aGUgY29tbWl0IG1lc3NhZ2Ugc2F5aW5nICYjMzQ7QXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsuIEhvbGQgb24gYSBzZWNvbmQuLi5TeXprYWxsZXIgKmZvdW5kKiB0aGlzIGJ1Zz8gV293ISBUaGF0JiMzOTtzIGltcHJlc3NpdmUuIE5vdyBJJiMzOTttIHJlYWxseSBjdXJpb3VzOiBob3cgZGlkIFN5emthbGxlciBtYW5hZ2UgdG8gdHJpZ2dlciBhIGJ1ZyB3aXRoaW4gYGJyY21mbWFjL3NkaW8uY2A/IFRoYXQmIzM5O3Mgbm90IGEgY29tbW9uIHRhcmdldC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayB2ZWN0b3IuCgpNeSBuZXh0IHN0ZXAgaXMgZGVmaW5pdGVseSB0byBpbnZlc3RpZ2F0ZSBpZiB0aGVyZSYjMzk7cyBkZWRpY2F0ZWQgU0RJTyBmdXp6aW5nIGhhcHBlbmluZywgb3IgaWYgdGhlIGNvZGUgaXMgYmVpbmcgcmVhY2hlZCBpbmRpcmVjdGx5LiBQZXJoYXBzIHRoZXJlJiMzOTtzIGEgc2ltdWxhdGVkIFNESU8gaG9zdCBjb250cm9sbGVyIHNldCB1cCBmb3IgdGVzdGluZyBwdXJwb3Nlcz8gSSBzaG91bGQgc3RhcnQgYnkgc2VhcmNoaW5nIHdpdGhpbiB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvYCBkaXJlY3RvcnkgZm9yIGFueXRoaW5nIHJlbGF0ZWQgdG8gJiMzNDtkdW1teSYjMzQ7LiBUaGF0IHNob3VsZCBnaXZlIG1lIHNvbWUgY2x1ZXMgYWJvdXQgdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R1bW15JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9jYXZpdW0tdGh1bmRlcnguYz01Nz1zdGF0aWMgaW50IHRodW5kZXJfbW1jX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvY2F2aXVtLXRodW5kZXJ4LmMtMTM0LVx0XHQgKiBtbWNfb2ZfcGFyc2UgYW5kIGRldm0qIHJlcXVpcmUgb25lIGRldmljZSBwZXIgc2xvdC5cbmRyaXZlcnMvbW1jL2hvc3QvY2F2aXVtLXRodW5kZXJ4LmM6MTM1Olx0XHQgKiBDcmVhdGUgYSBkdW1teSBkZXZpY2UgcGVyIHNsb3QgYW5kIHNldCB0aGUgbm9kZSBwb2ludGVyIHRvXG5kcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jLTEzNi1cdFx0ICogdGhlIHNsb3QuIFRoZSBlYXNpZXN0IHdheSB0byBnZXQgdGhpcyBpcyB1c2luZ1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbGl0ZXhfbW1jLmM9NDUwPXN0YXRpYyB2b2lkIGxpdGV4X21tY19zZXRfaW9zKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBzdHJ1Y3QgbW1jX2lvcyAqaW9zKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvbGl0ZXhfbW1jLmMtNDU1LVx0ICogVGhlIFNEIHNwZWNpZmljYXRpb24gcmVxdWlyZXMgYXQgbGVhc3QgNzQgaWRsZSBjbG9ja3MgYmVmb3JlIENNRDAuXG5kcml2ZXJzL21tYy9ob3N0L2xpdGV4X21tYy5jOjQ1NjpcdCAqIFRoZXNlIGR1bW15IGN5Y2xlcyBpcyBnZW5lcmF0ZWQgYnkgd3JpdGluZyBMSVRFWF9QSFlfSU5JVElBTElaRS5cbmRyaXZlcnMvbW1jL2hvc3QvbGl0ZXhfbW1jLmMtNDU3LVx0ICovXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9vbWFwLmM9MjAxPXN0YXRpYyB2b2lkIG1tY19vbWFwX3NlbGVjdF9zbG90KHN0cnVjdCBtbWNfb21hcF9zbG90ICpzbG90LCBpbnQgY2xhaW1lZClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L29tYXAuYy0yMzUtXG5kcml2ZXJzL21tYy9ob3N0L29tYXAuYzoyMzY6XHRcdC8qIERvaW5nIHRoZSBkdW1teSByZWFkIGhlcmUgc2VlbXMgdG8gd29yayBhcm91bmQgc29tZSBidWdcbmRyaXZlcnMvbW1jL2hvc3Qvb21hcC5jLTIzNy1cdFx0ICogYXQgbGVhc3QgaW4gT01BUDI0eHggc2lsaWNvbiB3aGVyZSB0aGUgY29tbWFuZCB3b3VsZCBub3Rcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfcGNpX3NkbW1jLmM9MjA4PXN0YXRpYyB2b2lkIHNkX3NlbmRfY21kX2dldF9yc3Aoc3RydWN0IHJlYWx0ZWtfcGNpX3NkbW1jICpob3N0LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF9wY2lfc2RtbWMuYy0zMDEtXHRcdCAqIFRoZSBjb250cm9sbGVyIG9mZmxvYWRzIHRoZSBsYXN0IGJ5dGUge0NSQy03LCBlbmQgYml0IDEmIzM5O2IxfVxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3BjaV9zZG1tYy5jOjMwMjpcdFx0ICogb2YgcmVzcG9uc2UgdHlwZSBSMi4gQXNzaWduIGR1bW15IENSQywgMCwgYW5kIGVuZCBiaXQgdG8gdGhlXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfcGNpX3NkbW1jLmMtMzAzLVx0XHQgKiBieXRlKHB0clsxNl0sIGdvZXMgaW50byB0aGUgTFNCIG9mIHJlc3BbM10gbGF0ZXIpLlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYz0yODU9c3RhdGljIHZvaWQgc2Rfc2VuZF9jbWRfZ2V0X3JzcChzdHJ1Y3QgcnRzeF91c2Jfc2RtbWMgKmhvc3QsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3VzYl9zZG1tYy5jLTQyNS1cdFx0ICogVGhlIGNvbnRyb2xsZXIgb2ZmbG9hZHMgdGhlIGxhc3QgYnl0ZSB7Q1JDLTcsIGVuZCBiaXQgMSYjMzk7YjF9XG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfdXNiX3NkbW1jLmM6NDI2Olx0XHQgKiBvZiByZXNwb25zZSB0eXBlIFIyLiBBc3NpZ24gZHVtbXkgQ1JDLCAwLCBhbmQgZW5kIGJpdCB0byB0aGVcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYy00MjctXHRcdCAqIGJ5dGUocHRyWzE2XSwgZ29lcyBpbnRvIHRoZSBMU0Igb2YgcmVzcFszXSBsYXRlcikuXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYy0yMTQtXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLWVzZGhjLWlteC5jOjIxNTovKiB0aGUgY29udHJvbGxlciBoYXMgZHVtbXkgcGFkIGZvciBjbG9jayBsb29wYmFjayAqL1xuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYy0yMTYtI2RlZmluZSBFU0RIQ19GTEFHX0RVTU1ZX1BBRFx0XHRCSVQoMTkpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jPTEwMT1zdGF0aWMgdTMyIHB4YXYxX2lycShzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCwgdTMyIGludG1hc2spXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEwNi1cdGlmIChweGF2Ml9ob3N0LVx1MDAzZXNkaW9fbXJxIFx1MDAyNlx1MDAyNiAoaW50bWFzayBcdTAwMjYgU0RIQ0lfSU5UX0NNRF9NQVNLKSkge1xuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjEwNzpcdFx0LyogVGhlIGR1bW15IENNRDAgZm9yIHRoZSBTRElPIHdvcmthcm91bmQganVzdCBjb21wbGV0ZWQgKi9cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xMDgtXHRcdHNkaGNpX3dyaXRlbChob3N0LCBpbnRtYXNrIFx1MDAyNiBTREhDSV9JTlRfQ01EX01BU0ssIFNESENJX0lOVF9TVEFUVVMpO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYz0xMjM9c3RhdGljIHZvaWQgcHhhdjFfcmVxdWVzdF9kb25lKHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0LCBzdHJ1Y3QgbW1jX3JlcXVlc3QgKm1ycSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmMtMTM2LVxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjEzNzpcdFx0LyogQ2xvY2sgaXMgbm93IHN0b3BwZWQsIHNvIHJlc3RhcnQgaXQgYnkgc2VuZGluZyBhIGR1bW15IENNRDAgKi9cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xMzgtXHRcdHB4YXYyX2hvc3QgPSBzZGhjaV9wbHRmbV9wcml2KHNkaGNpX3ByaXYoaG9zdCkpO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xNDktXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmM6MTUwOlx0XHQvKiBEb24mIzM5O3QgZmluaXNoIHRoaXMgcmVxdWVzdCB1bnRpbCB0aGUgZHVtbXkgQ01EMCBmaW5pc2hlcyAqL1xuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTE1MS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYz02NTM9c3RhdGljIGludCBzZGhjaV9wcmVfZG1hX3RyYW5zZmVyKHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0LFxuLS1cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02ODktXHRcdFx0XHRcdCAgIG1tY19nZXRfZG1hX2RpcihkYXRhKSk7XG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmM6NjkwOlx0XHQvKiBKdXN0IGEgZHVtbXkgdmFsdWUgKi9cbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02OTEtXHRcdHNnX2NvdW50ID0gMTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAxNzkKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBUcmlnZ2VyKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuLi4gaXMgdGhlcmUgc29tZSBraW5kIG9mIGBzeXpfbWFjODAyMTFfaHdzaW1gIHRoaW5neSBpbiBzeXprYWxsZXIgSSYjMzk7bSBtaXNzaW5nPyBOb3BlLCB0aGF0JiMzOTtzIGRlZmluaXRlbHkgbWFjODAyMTEtc3BlY2lmaWMuIEhtbSwgdGhhdCYjMzk7cyBub3QgaXQuIFJpZ2h0LCBzbyBob3cgaW4gdGhlIHdvcmxkIGlzIHN5emthbGxlciBoaXR0aW5nIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGA/IEl0IGRvZXNuJiMzOTt0IHF1aXRlIGFkZCB1cC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLgoKQWxyaWdodCwgbGV0JiMzOTtzIHRha2UgYSBsb29rLiBJJiMzOTtsbCBiZXQgdGhlcmUmIzM5O3MgYW4gU0RJTyBmdXp6ZXIgc29tZXdoZXJlIGluIHRoZSBrZXJuZWwuIFdoZXJlIHdvdWxkIHRoZXkgcHV0IHRoYXQsIHRob3VnaD8gUHJvYmFibHkgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIG1tYyBzdWJzeXN0ZW0sIHJpZ2h0PyBJJiMzOTtsbCBjaGVjayBgZHJpdmVycy9tbWMvY29yZS9gIGFuZCBzZWUgaWYgdGhlcmUmIzM5O3MgYW55IG9idmlvdXMgY2FuZGlkYXRlcyB0aGVyZS4gTGV0IG1lIHN0YXJ0IHdpdGggYSBxdWljayBzZWFyY2ggb2YgdGhlIGBkcml2ZXJzL21tYy9gIGRpcmVjdG9yeSBmb3IgJiMzNDtmdXp6JiMzNDsgb3IgJiMzNDtzeXomIzM0Oy4gSG9wZWZ1bGx5LCB0aGlzIG5hcnJvd3MgdGhpbmdzIGRvd24sIGFuZCBnaXZlcyBtZSBhIHN0YXJ0aW5nIHBvaW50LiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZnV6eiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTg1CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMjQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIEJyY21mbWFjIFNESU8gQnVnKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgSSBuZWVkIHRvIHBpbnBvaW50IGhvdyB0aGlzIGBicmNtZm1hY2AgU0RJTyBidWcgaXMgYmVpbmcgdHJpZ2dlcmVkLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gc2VlIGlmIGFueSBgc2Rpb2AgbWVudGlvbnMgcG9wIHVwIHdpdGhpbiB0aGUgYG5ldC9tYWM4MDIxMS9gIG9yIGBuZXQvd2lyZWxlc3MvYCBkaXJlY3Rvcmllcy4gSG93ZXZlciwgbXkgdW5kZXJzdGFuZGluZyBvZiBzeXprYWxsZXIgc3VnZ2VzdHMgdGhlIHVuZGVybHlpbmcgZGV2aWNlIGNvdWxkIGJlIGB2aGNpYCBvdmVyIFVTQi4gTWF5YmUgdGhlIHRyaWdnZXIgaXMgaW5kaXJlY3QsIGFuZCB0aGUgcm9vdCBjYXVzZSBsaWVzIGluIGBicmNtZm1hY2AsIGJ1dCBub3Qgc3RyaWN0bHkgd2l0aCBTRElPLiBMZXQgbWUganVzdCBjb25maXJtIHRoYXQgdGhlIHBhdGNoIGlzIGluZGVlZCBpbiBgYnJjbWZtYWMvc2Rpby5jYC4gQWgsIHllcywgaXQgaXMuCgpOb3csIG15IG5leHQgbGluZSBvZiB0aGlua2luZyBpcywgY2FuIGBicmNtZm1hY2AgYmUgY29tcGlsZWQgaW50byBzb21ldGhpbmcgZWxzZSwgb3IgcmVhY2hhYmxlIHZpYSBhbm90aGVyIHJvdXRlPyBTeXprYWxsZXIgaGFzIGEgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIHBzZXVkby1zeXNjYWxsLCBzbywgcGVyaGFwcyB0aGVyZSYjMzk7cyBhIGNvbm5lY3Rpb24gdGhlcmU/IE5vLCBoYW5nIG9uLiBTeXprYWxsZXIgYWxzbyBoYXMgYHN5el91c2JfY29ubmVjdGAsIHdoaWNoIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzLiBCdXQgdGhpcyBpcyBhbiBTRElPIGlzc3VlLiBEb2VzIHN5emthbGxlciBvZmZlciBTRElPIGVtdWxhdGlvbiBhcyB3ZWxsPwoKQWxyaWdodCwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgaG93IFNESU8gaW50ZXJhY3Rpb25zIG1pZ2h0IGJlIHNpbXVsYXRlZC4gSSYjMzk7bGwgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGluIGBkcml2ZXJzL21tYy9jb3JlL3NkaW8uY2AgYW5kIGBkcml2ZXJzL21tYy9jb3JlL2NvcmUuY2AgZm9yIGFueSBzaWduIG9mIGEgZHVtbXkgaG9zdCwgYSB2aXJ0dWFsIFNESU8gaW50ZXJmYWNlLiBXaGF0IGFib3V0IGB2aXJ0aW9fbW1jYD8gTGV0IG1lIGxvb2sgaW5zaWRlIGBkcml2ZXJzL21tYy9ob3N0L2AgZm9yIGB2aXJ0aW9gLiBJJiMzOTtsbCB0cnkgdG8gZmluZCBhbnkgcG90ZW50aWFsIGF2ZW51ZXMgZm9yIHRyaWdnZXJpbmcgdGhpcyBTRElPIHZ1bG5lcmFiaWxpdHkgd2l0aGluIHRoZSBzeXprYWxsZXIgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmlydGlvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC91c2RoaTZyb2wwLmMtMjYtI2luY2x1ZGUgXHUwMDNjbGludXgvdGltZS5oXHUwMDNlXG5kcml2ZXJzL21tYy9ob3N0L3VzZGhpNnJvbDAuYzoyNzojaW5jbHVkZSBcdTAwM2NsaW51eC92aXJ0aW8uaFx1MDAzZVxuZHJpdmVycy9tbWMvaG9zdC91c2RoaTZyb2wwLmMtMjgtI2luY2x1ZGUgXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcdTAwM2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEzMjMKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYGJyY21mbWFjYCBEcml2ZXIgZm9yIFNpbXVsYXRpb24gQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIG5vIGB2aXJ0aW9fbW1jYCBkcml2ZXIsIHRoYXQgbXVjaCBpcyBjbGVhci4gSG1tLCB3YWl0IGEgc2Vjb25kLi4uIGRpZG4mIzM5O3Qgc3l6a2FsbGVyIGZpbmQgYSBidWcgaW4gc29tZXRoaW5nIHJlbGF0ZWQgdG8gU0RJTyBhbmQgYGJyY21mbWFjYD8gSSBuZWVkIHRvIGpvZyBteSBtZW1vcnkuIExldCBtZSBzZWUuLi4gSSB3b25kZXIgaWYgdGhlcmUmIzM5O3MgYSBzeXprYWxsZXIgcHJpbWl0aXZlIGxpa2UgYHN5el9zZGlvYD8gV2hlcmUgd291bGQgSSBleHBlY3QgdG8gZmluZCBtb2NrIG9yIHNpbXVsYXRpb24gY29kZSBmb3IgTU1DIG9yIFNESU8gaW50ZXJmYWNlcz8gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gY2hlY2sgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Agb3IgZGl2ZSBpbnRvIHRoZSBgZHJpdmVycy9tbWMvYCBkaXJlY3RvcnkuCgpObyBkaWNlIHRoZXJlLiBPa2F5LCBzbyBtYXliZSBpdCBpc24mIzM5O3QgYSBkaXJlY3QgbW9jay4gUGVyaGFwcyB0aGUgYGJyY21mbWFjYCBkcml2ZXIgaXMgdGVzdGVkIHZpYSBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB0aGUgc3RhbmRhcmQgZHJpdmVyIGZvciBzaW11bGF0aW5nIHdpcmVsZXNzIGRldmljZXM/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodDsgYGJyY21mbWFjYCBpcyBhIHJlYWwgZHJpdmVyLCBub3QgYSBzaW11bGF0aW9uLiBPa2F5LCBzbyB0aGVuLCBob3cgZGlkIHN5emthbGxlciBmaW5kIGEgYnVnIGluIGBicmNtZm1hYy9zZGlvLmNgPyBUaGF0JiMzOTtzIHRoZSByZWFsIHB1enpsZS4KCkFoYSEgTWF5YmUsIGp1c3QgbWF5YmUsIGBicmNtZm1hY2AgaGFzIGl0cyBvd24gaW50ZXJuYWwgc2ltdWxhdGlvbiBpbnRlcmZhY2UuIFBlcmhhcHMgaXQmIzM5O3MgYSBkZWRpY2F0ZWQgYHNpbWAgZmVhdHVyZSBvciwgSSBkb24mIzM5O3Qga25vdywgYSB3YXkgdG8gZnV6eiB0aGUgY29kZSBpbnRlcm5hbGx5LiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2AgZGlyZWN0b3J5IGFuZCBzZWUgaWYgSSBjYW4gZmluZCBhbnkgdHJhY2Ugb2YgYSBgc2ltYCBpbnRlcmZhY2Ugb3IgYW55dGhpbmcgcmVsYXRlZCB0byBmdXp6aW5nLiBUaGF0JiMzOTtzIG15IG5leHQgYXZlbnVlIG9mIGludmVzdGlnYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NpbSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MjAzMT1icmNtZl9zZXRfd3NlY19tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTIwODYtXHRicmNtZl9kYmcoQ09OTiwgXCYjMzQ7cHZhbCAoJWQpIGd2YWwgKCVkKVxcblwmIzM0OywgcHZhbCwgZ3ZhbCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoyMDg3Olx0LyogSW4gY2FzZSBvZiBwcml2YWN5LCBidXQgbm8gc2VjdXJpdHkgYW5kIFdQUyB0aGVuIHNpbXVsYXRlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0yMDg4LVx0Lyogc2V0dGluZyBBRVMuIFdQUy0yLjAgYWxsb3dzIG5vIHNlY3VyaXR5ICAgICAgICAgICAgICAgICAgICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz05Nj12b2lkIGJyY21mX2NvbmZpZ3VyZV9hcnBfbmRfb2ZmbG9hZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwgYm9vbCBlbmFibGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTEtXHQvKiBUcnkgdG8gc2V0IGFuZCBlbmFibGUgQVJQIG9mZmxvYWQgZmVhdHVyZSwgdGhpcyBtYXkgZmFpbCwgdGhlbiBpdCAgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTEyOlx0LyogaXMgc2ltcGx5IG5vdCBzdXBwb3J0ZWQgYW5kIGVyciAwIHdpbGwgYmUgcmV0dXJuZWQgICAgICAgICAgICAgICAgICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTExMy1cdGVyciA9IGJyY21mX2ZpbF9pb3Zhcl9pbnRfc2V0KGlmcCwgXCYjMzQ7YXJwX29sXCYjMzQ7LCBtb2RlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTEyMjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYnVzX3Jlc2V0X2ZvcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEyMjU6XHQub3Blblx0PSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTIyNi1cdC53cml0ZVx0PSBidXNfcmVzZXRfd3JpdGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuaC0yOS0gKiBET1QxMUg6IGZpcm13YXJlIHN1cHBvcnRzIDgwMi4xMWhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmg6MzA6ICogU0FFOiBzaW11bHRhbmVvdXMgYXV0aGVudGljYXRpb24gb2YgZXF1YWxzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5oLTMxLSAqIEZXQVVUSDogRmlybXdhcmUgYXV0aGVudGljYXRvclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jPTI1OT11MzIgYnJjbWZfZmxvd3JpbmdfZW5xdWV1ZShzdHJ1Y3QgYnJjbWZfZmxvd3JpbmcgKmZsb3csIHUxNiBmbG93aWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Zsb3dyaW5nLmMtMjc0LVx0XHQgKiBwcm90ZWN0LCBidXQgdGhhdCBpcyB1bmRlc2lyYWJsZSBmb3IgZXZlcnkgZW5xdWV1ZSBhbmRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jOjI3NTpcdFx0ICogZGVxdWV1ZS4gVGhpcyBzaW1wbGUgY2hlY2sgd2lsbCBzb2x2ZSBhIHBvc3NpYmxlIHJhY2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jLTI3Ni1cdFx0ICogY29uZGl0aW9uIGlmIGl0IG9jY3Vycy5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9NDg5PXN0YXRpYyB2b2lkIGJyY21mX3AycF9nZW5lcmF0ZV9ic3NfbWFjKHN0cnVjdCBicmNtZl9wMnBfaW5mbyAqcDJwLCB1OCAqZGV2X2FkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTUxOC1cdC8qIEdlbmVyYXRlIHRoZSBQMlAgSW50ZXJmYWNlIEFkZHJlc3MuICBJZiB0aGUgZGlzY292ZXJ5IGFuZCBjb25uZWN0aW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6NTE5Olx0ICogQlNTQ0ZHcyBuZWVkIHRvIHNpbXVsdGFuZW91c2x5IGNvLWV4aXN0LCB0aGVuIHRoaXMgYWRkcmVzcyBtdXN0IGJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtNTIwLVx0ICogZGlmZmVyZW50IGZyb20gdGhlIFAyUCBEZXZpY2UgQWRkcmVzcywgYnV0IGFsc28gbG9jYWxseSBhZG1pbmlzdGVyZWQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTg5MT1icmNtZl91c2JfZGxfd3JpdGVpbWFnZShzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8sIHU4ICpmdywgaW50IGZ3bGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy05MzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6OTMyOlx0XHRcdC8qIHNpbXBseSBhdm9pZCBoYXZpbmcgdG8gc2VuZCBhIFpMUCBieSBlbnN1cmluZyB3ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTkzMy1cdFx0XHQgKiBuZXZlciBoYXZlIGFuIGV2ZW5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMxOTUKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAzMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGVidWdnaW5nIHRoZSBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIFRyaWdnZXIqKgoKT2theSwgc28gdGhlcmUmIzM5O3Mgbm8gb2J2aW91cyBzaW11bGF0b3IgdGhhdCYjMzk7cyBjYXVzaW5nIHRoaXMuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzLCBob3cgZGlkIHN5emthbGxlciBldmVuICpoaXQqIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGA/IFRoYXQmIzM5O3MgdGhlIHJlYWwgcHV6emxlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIGJhc2ljIGFwcHJvYWNoIGFuZCBzZWFyY2ggdGhlIHN5emthbGxlciBidWcgdHJhY2tlcjsgbWF5YmUgaXQmIzM5O3MgYSBrbm93biBpc3N1ZS4gT3RoZXJ3aXNlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcGF0aC4KCkNvdWxkIHRoZXJlIGJlIGFuIFNESU8gZnV6emVyIGJha2VkIGludG8gdGhlIGtlcm5lbCBzb21ld2hlcmU/IFRpbWUgdG8gY2hlY2sgdGhlIHN0YW5kYXJkIGxvY2F0aW9ucywgc3BlY2lmaWNhbGx5IHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeS4gSSYjMzk7bGwgc2NhbiBmb3IgYW55dGhpbmcgbmFtZWQgYGZ1enpgLCBgZHVtbXlgLCBgdmhjaWAsIGB2aXJ0aW9gLCBvciBgbWFjODAyMTFfaHdzaW1gIHdoaWNoIHdvdWxkIHByb3ZpZGUgYSBsaWtlbHkgdGVzdCBoYXJuZXNzLgoKSG1tLCB3YWl0LiBJcyBpdCBwb3NzaWJsZSB0aGF0IGBicmNtZm1hY2AgZ2V0cyBwcm9iZWQgdmlhIGEgKmRpZmZlcmVudCogYnVzLCBhbmQgKnRoZW4qIHRoZSBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGluZGlyZWN0bHk/IEJ1dCBubywgYSBxdWljayBjaGVjaywgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBpcyByaWdodCB0aGVyZSBpbiBgc2Rpby5jYCwgd2hpY2ggaXMgdGhlIFNESU8gYnVzIGludGVyZmFjZS4gU28gaXQmIzM5O3MgY2xlYXJseSByZWxhdGVkIHRvIFNESU8uCgpSaWdodCEgYHNkaW8uY2AgKnJlZ2lzdGVycyogYW4gU0RJTyBkcml2ZXI6IGBzZGlvX3JlZ2lzdGVyX2RyaXZlcigmYW1wO2JyY21mX3NkaW9kX2RyaXZlcik7YC4gVGhhdCYjMzk7cyB0aGUga2V5LiBOb3csIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBob3cgaXMgdGhhdCBTRElPIGRyaXZlciBnZXR0aW5nIHByb2JlZCBieSBzeXprYWxsZXI/IEl0IGNvdWxkIGJlIHRoYXQgc3l6a2FsbGVyIGlzIHVzaW5nIGEgZHVtbXkgU0RJTyBob3N0IGNvbnRyb2xsZXIsIGEgdmlydHVhbCBvbmUgcGVyaGFwcy4gTGV0JiMzOTtzIGdvIGJhY2sgYW5kIGNoZWNrIHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeSBmb3IgYW55IHNpZ25zIG9mIGEgJiMzNDtkdW1teSYjMzQ7IG9yICYjMzQ7dmlydHVhbCYjMzQ7IGNvbnRyb2xsZXIuCgpEYW1uLCBJIGRpZG4mIzM5O3Qgc2VlIGFueXRoaW5nIG9idmlvdXMgd2hlbiBJIGxvb2tlZCBmb3IgJiMzNDtkdW1teS4mIzM0OyBPa2F5LCB0aW1lIHRvIGJyb2FkZW4gdGhlIHNlYXJjaC4gSSYjMzk7bSBnb2luZyB0byBzZWFyY2ggZm9yICYjMzQ7c3l6JiMzNDsgaW4gdGhlIGVudGlyZSBgZHJpdmVycy9tbWMvYCBkaXJlY3RvcnkgdG8gc2VlIGlmIHRoZXJlIGlzIGFueSBzeXprYWxsZXIgc3BlY2lmaWMgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXomIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzk5NQoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIGJyY21mbWFjIERyaXZlcioqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSYjMzk7bSB0aGlua2luZywgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIEJyb2FkY29tIFdpLUZpIGRyaXZlciBjb2RlIEkmIzM5O20gbW9zdCBpbnRlcmVzdGVkIGluIHJlc2lkZXMsIHNwZWNpZmljYWxseSB0aGUgYGJyY21mbWFjYCBtb2R1bGUuIE15IGdvYWwgaXMgY2xlYXI6IEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhhdCBjb2RlIGJhc2UgZm9yIGFueSBoaW50cyBvZiBleGlzdGluZyBmdXp6aW5nIGluZnJhc3RydWN0dXJlIChgZnV6emApIG9yIGluc3RydW1lbnRhdGlvbiBidWlsdCBmb3IgU3l6a2FsbGVyIChgc3l6YCkuIEkgd2FudCB0byBzZWUgaWYgYW55IHByZS1leGlzdGluZyBlZmZvcnRzIG1pZ2h0IGJlIHRoZXJlIHRoYXQgd291bGQgZ2l2ZSBtZSBhIGxlZyB1cCBpbiBteSBjdXJyZW50IGludmVzdGlnYXRpb24uIEtub3dpbmcgdGhlIGxhbmRzY2FwZSBvZiB0aGUgdGFyZ2V0IG1vZHVsZSBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAuIEkgd2lsbCBiZSBsb29raW5nIGZvciB2YXJpYWJsZXMsIGZ1bmN0aW9uIG5hbWVzLCBtYWNybyBkZWZpbml0aW9ucyDigJMgYW55dGhpbmcgdGhhdCBzY3JlYW1zICYjMzQ7ZnV6emluZyYjMzQ7IG9yICYjMzQ7U3l6a2FsbGVyLiYjMzQ7IEZpbmRpbmcgYSBwcmV2aW91cyBzdGFydCBtZWFucyB0aGF0IEkgZG9uJiMzOTt0IGhhdmUgdG8gc3RhcnQgZnJvbSBzY3JhdGNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N5eiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDMyMgoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDEyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBgYnJjbWZtYWNgIERyaXZlciBWdWxuZXJhYmlsaXR5KioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgd2FzIGNlcnRhaW4gdGhlcmUgd2FzbiYjMzk7dCBhIGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbCBpbiBzeXprYWxsZXIgcmVsYXRlZCB0byB0aGlzLiBJJiMzOTt2ZSBkb3VibGUtY2hlY2tlZCwgcmlnaHQ/IEJ1dCwgd2FpdC4uLiBpc24mIzM5O3QgdGhlcmUgYSBVU0IgZnV6emVyIGluIHN5emthbGxlcj8gVGhlIGBkdW1teV9oY2RgIGNvbXBvbmVudCwgaXNuJiMzOTt0IGl0PyBJZiBgYnJjbWZtYWNgICpkb2VzKiBoYXZlIGEgVVNCIGludGVyZmFjZSwgdGhlbiBtYXliZSBpdCBjb3VsZCBiZSByZWFjaGVkIHZpYSBhIFVTQiBwcm9iZS4gVGhlIHNvdXJjZSBvZiB0aGUgaXNzdWUgSSBhbSB0YXJnZXRpbmcgaXMgbG9jYXRlZCBpbiBgc2Rpby5jYCwgdGhvdWdoLiBIb3cgY291bGQgYHNkaW8uY2AgcG9zc2libHkgYmUgZXhlY3V0ZWQgaWYgdGhlIGRldmljZSBpcyBiZWluZyBpbnRlcmFjdGVkIHdpdGggb3ZlciBVU0I/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjYWxsaW5nIGhpZXJhcmNoeS4gTXkgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBmdW5jdGlvbiwgdGhlIHRhcmdldCBpbiBgc2Rpby5jYCwgaXMgY2FsbGVkIGZyb20gYW55d2hlcmUgaW4gdGhlIGB1c2IuY2AgZmlsZS4gSSBuZWVkIHRvIHRyYWNlIHRoYXQgcG90ZW50aWFsIGNvbm5lY3Rpb24gdG8gY29uZmlybSBpZiB0aGlzIHBhdGggaXMgYWN0dWFsbHkgdmlhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9zZGlvX3JlYWRfY29udHJvbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xODU3PXN0YXRpYyB1aW50IGJyY21mX3NkaW9fcmVhZGZyYW1lcyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1aW50IG1heGZyYW1lcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE5MTctXHRcdFx0aWYgKHJkLVx1MDAzZWNoYW5uZWwgPT0gU0RQQ01fQ09OVFJPTF9DSEFOTkVMKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE5MTg6XHRcdFx0XHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChidXMsIGJ1cy1cdTAwM2VyeGhkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxOS1cdFx0XHRcdFx0XHRcdHJkLVx1MDAzZWxlbixcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUwNzAKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCB0YWtpbmcgb24gdGhlIHBlcnNvbmEgeW91IHJlcXVlc3RlZDoKCioqSW52ZXN0aWdhdGluZyBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBDYWxsZXJzKioKCkFscmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhpcyBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXRzIGRpcmVjdCBjYWxsIHNpdGUgaXMgbGltaXRlZCB0byB3aXRoaW4gYHNkaW8uY2AuIFRoZSBxdWVzdGlvbiBub3cgYmVjb21lczogaXMgdGhpcyB0aGUgKm9ubHkqIGVudHJ5IHBvaW50IGZvciBpdHMgZXhlY3V0aW9uPyBUaGUgaW1wbGljYXRpb24gaGVyZSBpcyB0aGUgcG90ZW50aWFsIGZvciB1bmV4cGVjdGVkIGJlaGF2aW9yIHNob3VsZCBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBiZSBjYWxsZWQgZWxzZXdoZXJlLiBBIHRob3JvdWdoIHN0YXRpYyBhbmFseXNpcyBpcyB3YXJyYW50ZWQuIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gb2YgdGhlIHNjb3BlIG9mIHRoaXMgZnVuY3Rpb24mIzM5O3MgZXhlY3V0aW9uIHRvIHVuZGVyc3RhbmQgaG93IGl0IGltcGFjdHMgdGhlIGxhcmdlciBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVhZGZyYW1lcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xODQ1PXN0YXRpYyB2b2lkIGJyY21mX3NkaW9fcGFkKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHUxNiAqcGFkLCB1MTYgKnJkbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTg1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTg1NzpzdGF0aWMgdWludCBicmNtZl9zZGlvX3JlYWRmcmFtZXMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdWludCBtYXhmcmFtZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE4NTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjU4NT1zdGF0aWMgdm9pZCBicmNtZl9zZGlvX2RwYyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjY4OS1cdGlmICgoaW50c3RhdHVzIFx1MDAyNiBJX0hNQl9GUkFNRV9JTkQpIFx1MDAyNlx1MDAyNiAoYnVzLVx1MDAzZWNsa3N0YXRlID09IENMS19BVkFJTCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjY5MDpcdFx0YnJjbWZfc2Rpb19yZWFkZnJhbWVzKGJ1cywgYnVzLVx1MDAzZXJ4Ym91bmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yNjkxLVx0XHRpZiAoIWJ1cy1cdTAwM2VyeHBlbmRpbmcpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NzMyCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkludmVzdGlnYXRpbmcgdGhlIENhbGwgQ29udGV4dCBvZiBgYnJjbWZfc2Rpb19kcGNgKioKClJpZ2h0LCBsZXQgbWUgc2VlLi4uIEkmIzM5O20gY3VycmVudGx5IGxvb2tpbmcgYXQgdGhlIGNvZGUgZm9yIHRoZSBCcm9hZGNvbSBTRElPIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBgc2Rpby5jYCBmaWxlLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB0aGUgZnVuY3Rpb24gYGJyY21mX3NkaW9fZHBjYC4gVGhlIGNvZGUgaW5kaWNhdGVzIHRoYXQgaXQmIzM5O3Mgb25seSBjYWxsZWQgZnJvbSBgYnJjbWZfc2Rpb19kcGNgIGl0c2VsZiwgd2hpY2ggc2VlbXMgYSBsaXR0bGUgc3RyYW5nZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgY2FsbCBncmFwaCwgdGhvdWdoLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIG9ubHkgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGlzIHdpdGhpbiB0aGUgc2FtZSBmdW5jdGlvbi4gSSBuZWVkIHRvIGtub3cgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGlmIGl0IGlzIGNhbGxlZCBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGJyb2FkZXIgZHJpdmVyLiBJZiBpdCBpc24mIzM5O3QsIHRoaXMgc2VlbXMgcGVjdWxpYXIsIGFuZCBtaWdodCBpbmRpY2F0ZSBlaXRoZXIgYW4gaXNzdWUgb3IgYSBtb3JlIHN1YnRsZSwgcGVyaGFwcyBpbnRlcnJ1cHQtZHJpdmVuLCBpbnRlcmFjdGlvbiB0aGF0IEkgbmVlZCB0byBkaXNzZWN0LiBJJiMzOTtsbCBnZXQgdG8gdGhlIGJvdHRvbSBvZiB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9zZGlvX2RwYyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yNTU4PXN0YXRpYyBpbnQgYnJjbWZfc2Rpb19pbnRyX3JzdGF0dXMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI1ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI1ODU6c3RhdGljIHZvaWQgYnJjbWZfc2Rpb19kcGMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjU4Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzU3PXN0YXRpYyB2b2lkIGJyY21mX3NkaW9fZGF0YXdvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNzY1LVx0XHRidXMtXHUwMDNlZHBjX3RyaWdnZXJlZCA9IGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozNzY2Olx0XHRicmNtZl9zZGlvX2RwYyhidXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNzY3LVx0XHRidXMtXHUwMDNlaWRsZWNvdW50ID0gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0MTgKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAyODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yYXZlbGluZyB0aGUgU3l6a2FsbGVyIFRyaWdnZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAgZnVuY3Rpb24sIGFuZCB0aGUgY29kZSBzYXlzIGl0JiMzOTtzIG9ubHkgY2FsbGVkIGZyb20gd2l0aGluIGBzZGlvLmNgLiBSaWdodCwgc28gaXQmIzM5O3MgYSB3b3JrcXVldWUgZnVuY3Rpb24uIFRoZSBiaWcgcXVlc3Rpb24gaXMsIGhvdyBkaWQgc3l6a2FsbGVyIGV2ZW4gKnJlYWNoKiB0aGlzIHRoaW5nPyBJdCBoYXMgdG8gYmUgcmVhY2hhYmxlIHRvIGhhdmUgZm91bmQgdGhlIGJ1ZyBpbiB0aGUgZmlyc3QgcGxhY2UsIHJpZ2h0PwoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIG1heWJlIGl0JiMzOTtzIHBhY2tldCBpbmplY3Rpb24sIHNwZWNpZmljIFNESU8gcGFja2V0cy4gQnV0IGhhbmcgb24sIHN5emthbGxlciAqZm91bmQqIGl0LiBTbywgaG93PyBJcyB0aGVyZSBhbiBlcXVpdmFsZW50IG9mIGBtYWM4MDIxMV9od3NpbWAgdGhhdCBlbXVsYXRlcyBTRElPPyBJIG5lZWQgdG8gZXhwbG9yZS4gTGV0JiMzOTtzIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgc29ydCBvZiBTRElPIGVtdWxhdGlvbiBnb2luZyBvbiBpbiB0aGUga2VybmVsLgoKSG1tLCBtYXliZSBpbiBgZHJpdmVycy9tbWMvY29yZS9zZGlvX2lvLmNgPyBObywgdGhhdCBsb29rcyBsaWtlIHRoZSBjb3JlIFNESU8gZnVuY3Rpb25hbGl0eSwgbm90IGFuIGVtdWxhdG9yLiBPa2F5LCBob3cgYWJvdXQgYGRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNgPyBCaW5nbyEgVGhhdCYjMzk7cyBhIFVTQi10by1TRElPIGhvc3QgY29udHJvbGxlci4KCkFoYSEgYHZ1YjMwMGAgaXMgYSBVU0ItdG8tU0RJTyBicmlkZ2UhIFRoYXQmIzM5O3MgaXQhIElmIHN5emthbGxlciBpcyBmdXp6aW5nIFVTQiwgcGVyaGFwcyB2aWEgYSBkdW1teSBIQ0QsIHRoZW4gaXQgY291bGQgYmUgZW11bGF0aW5nIGEgYHZ1YjMwMGAgZGV2aWNlLiBUaGUgYHZ1YjMwMGAgZHJpdmVyIHdvdWxkIHRoZW4gcmVnaXN0ZXIgYW4gU0RJTyBob3N0IGNvbnRyb2xsZXIuIEFuZCB0aGVuLCBzeXprYWxsZXIgY2FuIGVtdWxhdGUgYW4gU0RJTyBkZXZpY2UsIGxpa2UgYGJyY21mbWFjYCwgYnkgc2VuZGluZyBhcHByb3ByaWF0ZSBVU0IgcmVzcG9uc2VzIHRvIHRoZSBgdnViMzAwYCBkcml2ZXIhIFRoYXQmIzM5O3MgaG93IGl0JiMzOTtzIGRvbmUhIEkganVzdCBuZWVkIHRvIHZlcmlmeSB0aGF0IGB2dWIzMDBgIGFjdHVhbGx5IGV4aXN0cyBpbiB0aGUga2VybmVsIGFuZCBpZiBzeXprYWxsZXIgaXMgYWJsZSB0byBpbnRlcmFjdCB3aXRoIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2dWIzMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTY0MCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkyMD1jb25maWcgTU1DX1ZVQjMwMFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05NDQtXHQgIFRvIGNvbXBpbGUgdGhpcyBtbWMgaG9zdCBjb250cm9sbGVyIGRyaXZlciBhcyBhIG1vZHVsZSxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5NDU6XHQgIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdnViMzAwLlxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0Ni1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlPTYyPW9iai0kKENPTkZJR19NTUNfSlo0NzQwKVx0JiM0Mzs9IGp6NDc0MF9tbWMub1xuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2MzpvYmotJChDT05GSUdfTU1DX1ZVQjMwMClcdCYjNDM7PSB2dWIzMDAub1xuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZS02NC1vYmotJChDT05GSUdfTU1DX1VTSEMpXHRcdCYjNDM7PSB1c2hjLm9cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTI2MD1NT0RVTEVfUEFSTV9ERVNDKGZpcm13YXJlX3JvbV93YWl0X3N0YXRlcyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI2NS0jZGVmaW5lIFZVQjMwMF9QUk9EVUNUX0lEXHQweDAxMkNcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjY2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCB2dWIzMDBfdGFibGVbXSA9IHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjY3LVx0e1VTQl9ERVZJQ0UoRUxBTl9WRU5ET1JfSUQsIFZVQjMwMF9QUk9EVUNUX0lEKX0sXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNzAtfTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCB2dWIzMDBfdGFibGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNzItXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0yODY9c3RydWN0IHNkaW9fcmVnaXN0ZXIge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjk1LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyOTY6c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI5Ny1cdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2O1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzU0LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNTU6I2RlZmluZSBrcmVmX3RvX3Z1YjMwMF9tbWNfaG9zdChkKSBjb250YWluZXJfb2YoZCwgc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCwga3JlZilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzU2LSNkZWZpbmUgU0VUX1RSQU5TRkVSX1BTRVVET0NPREVcdFx0MjFcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM2OC1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzY5OnN0YXRpYyB2b2lkIHZ1YjMwMF9kZWxldGUoc3RydWN0IGtyZWYgKmtyZWYpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM3MC17XHRcdFx0XHQvKiBrcmVmIGNhbGxiYWNrIC0gc29mdGlycSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNzE6XHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSBrcmVmX3RvX3Z1YjMwMF9tbWNfaG9zdChrcmVmKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzcyOlx0c3RydWN0IG1tY19ob3N0ICptbWMgPSB2dWIzMDAtXHUwMDNlbW1jO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zNzMtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NDpcdHVzYl9mcmVlX3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9vdXRfdXJiKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc1Olx0dnViMzAwLVx1MDAzZWNvbW1hbmRfb3V0X3VyYiA9IE5VTEw7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NjpcdHVzYl9mcmVlX3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9yZXNfdXJiKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc3Olx0dnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYiA9IE5VTEw7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3ODpcdHVzYl9wdXRfZGV2KHZ1YjMwMC1cdTAwM2V1ZGV2KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzc5LVx0bW1jX2ZyZWVfaG9zdChtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zODAtXHQvKlxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozODE6XHQgKiBhbmQgaGVuY2UgYWxzbyBmcmVlcyB2dWIzMDBcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzgyLVx0ICogd2hpY2ggaXMgY29udGFpbmVkIGF0IHRoZSBlbmQgb2Ygc3RydWN0IG1tY1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzg1LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozODY6c3RhdGljIHZvaWQgdnViMzAwX3F1ZXVlX2NtbmRfd29yayhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM4Ny17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM4ODpcdGtyZWZfZ2V0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzg5Olx0aWYgKHF1ZXVlX3dvcmsoY21uZHdvcmtxdWV1ZSwgXHUwMDI2dnViMzAwLVx1MDAzZWNtbmR3b3JrKSkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zOTAtXHRcdC8qXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDEtXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDI6XHRcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDAzLVx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDA1LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDY6c3RhdGljIHZvaWQgdnViMzAwX3F1ZXVlX3BvbGxfd29yayhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsIGludCBkZWxheSlcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDA3LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDA4Olx0a3JlZl9nZXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDk6XHRpZiAocXVldWVfZGVsYXllZF93b3JrKHBvbGx3b3JrcXVldWUsIFx1MDAyNnZ1YjMwMC1cdTAwM2Vwb2xsd29yaywgZGVsYXkpKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQxMC1cdFx0Lypcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQyMS1cdFx0ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyMjpcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MjMtXHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MjUtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyNjpzdGF0aWMgdm9pZCB2dWIzMDBfcXVldWVfZGVhZF93b3JrKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDI3LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDI4Olx0a3JlZl9nZXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Mjk6XHRpZiAocXVldWVfd29yayhkZWFkd29ya3F1ZXVlLCBcdTAwMjZ2dWIzMDAtXHUwMDNlZGVhZHdvcmspKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQzMC1cdFx0Lypcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0MS1cdFx0ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ0MjpcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NDMtXHR9XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz00NDY9c3RhdGljIHZvaWQgaXJxcG9sbF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDQ3LXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ0ODpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0OS1cdGlmICh1cmItXHUwMDNlc3RhdHVzKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTA6XHRcdHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSB1cmItXHUwMDNlc3RhdHVzO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTE6XHRjb21wbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxcG9sbF9jb21wbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ1Mi19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz00NTQ9c3RhdGljIHZvaWQgaXJxcG9sbF9vdXRfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDU1LXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1NjpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ1Ny1cdGlmICh1cmItXHUwMDNlc3RhdHVzKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1ODpcdFx0dnViMzAwLVx1MDAzZXVzYl90cmFuc3BvcnRfZmFpbCA9IHVyYi1cdTAwM2VzdGF0dXM7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1OTpcdFx0Y29tcGxldGUoXHUwMDI2dnViMzAwLVx1MDAzZWlycXBvbGxfY29tcGxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NjAtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ2My1cdFx0dW5zaWduZWQgaW50IHBpcGUgPVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjQ6XHRcdFx0dXNiX3JjdmJ1bGtwaXBlKHZ1YjMwMC1cdTAwM2V1ZGV2LCB2dWIzMDAtXHUwMDNlY21uZF9yZXNfZXApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjU6XHRcdHVzYl9maWxsX2J1bGtfdXJiKHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmIsIHZ1YjMwMC1cdTAwM2V1ZGV2LCBwaXBlLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjY6XHRcdFx0XHQgIFx1MDAyNnZ1YjMwMC1cdTAwM2VyZXNwLCBzaXplb2YodnViMzAwLVx1MDAzZXJlc3ApLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Njc6XHRcdFx0XHQgIGlycXBvbGxfcmVzX2NvbXBsZXRlZCwgdnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDY4Olx0XHR2dWIzMDAtXHUwMDNlY29tbWFuZF9yZXNfdXJiLVx1MDAzZWFjdHVhbF9sZW5ndGggPSAwO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Njk6XHRcdHJldCA9IHVzYl9zdWJtaXRfdXJiKHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmIsIEdGUF9BVE9NSUMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NzAtXHRcdGlmIChyZXQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDcxOlx0XHRcdHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSByZXQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3MjpcdFx0XHRjb21wbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxcG9sbF9jb21wbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ3My1cdFx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDc3LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Nzg6c3RhdGljIHZvaWQgc2VuZF9pcnFwb2xsKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDc5LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDgwOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX3BvbGx3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00ODEtXHRpbnQgcmV0dmFsO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00ODItXHRpbnQgdGltZW91dCA9IDB4RkZGRiBcdTAwMjYgKDB4MDAwMUZGRkYgLSBmaXJtd2FyZV9pcnFwb2xsX3RpbWVvdXQpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODM6XHR2dWIzMDAtXHUwMDNlY21uZC5wb2xsLmhlYWRlcl9zaXplID0gMjI7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4NDpcdHZ1YjMwMC1cdTAwM2VjbW5kLnBvbGwuaGVhZGVyX3R5cGUgPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODU6XHR2dWIzMDAtXHUwMDNlY21uZC5wb2xsLnBvcnRfbnVtYmVyID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg2Olx0dnViMzAwLVx1MDAzZWNtbmQucG9sbC5jb21tYW5kX3R5cGUgPSAyO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODc6XHR2dWIzMDAtXHUwMDNlY21uZC5wb2xsLnBvbGxfdGltZW91dF9sc2IgPSAweEZGIFx1MDAyNiAodW5zaWduZWQpdGltZW91dDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg4Olx0dnViMzAwLVx1MDAzZWNtbmQucG9sbC5wb2xsX3RpbWVvdXRfbXNiID0gMHhGRiBcdTAwMjYgKHVuc2lnbmVkKSh0aW1lb3V0IFx1MDAzZVx1MDAzZSA4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg5Olx0dXNiX2ZpbGxfYnVsa191cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfb3V0X3VyYiwgdnViMzAwLVx1MDAzZXVkZXYsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ5MDpcdFx0XHQgIHVzYl9zbmRidWxrcGlwZSh2dWIzMDAtXHUwMDNldWRldiwgdnViMzAwLVx1MDAzZWNtbmRfb3V0X2VwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTE6XHRcdFx0ICAsIFx1MDAyNnZ1YjMwMC1cdTAwM2VjbW5kLCBzaXplb2YodnViMzAwLVx1MDAzZWNtbmQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ5MjpcdFx0XHQgICwgaXJxcG9sbF9vdXRfY29tcGxldGVkLCB2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTM6XHRyZXR2YWwgPSB1c2Jfc3VibWl0X3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9vdXRfdXJiLCBHRlBfS0VSTkVMKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk0LVx0aWYgKDAgXHUwMDNlIHJldHZhbCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTU6XHRcdHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSByZXR2YWw7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ5NjpcdFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTc6XHRcdGNvbXBsZXRlKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk4LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MDMtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwNDpzdGF0aWMgdm9pZCBuZXdfc3lzdGVtX3BvcnRfc3RhdHVzKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTA1LXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTA2Olx0aW50IG9sZF9jYXJkX3ByZXNlbnQgPSB2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MDctXHRpbnQgbmV3X2NhcmRfcHJlc2VudCA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwODpcdFx0KDB4MDAwMSBcdTAwMjYgdnViMzAwLVx1MDAzZXN5c3RlbV9wb3J0X3N0YXR1cy5wb3J0X2ZsYWdzKSA/IDEgOiAwO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MDk6XHR2dWIzMDAtXHUwMDNlcmVhZF9vbmx5ID1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTEwOlx0XHQoMHgwMDEwIFx1MDAyNiB2dWIzMDAtXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzLnBvcnRfZmxhZ3MpID8gMSA6IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUxMS1cdGlmIChuZXdfY2FyZF9wcmVzZW50IFx1MDAyNlx1MDAyNiAhb2xkX2NhcmRfcHJlc2VudCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MTI6XHRcdGRldl9pbmZvKFx1MDAyNnZ1YjMwMC1cdTAwM2V1ZGV2LVx1MDAzZWRldiwgXCYjMzQ7Y2FyZCBqdXN0IGluc2VydGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTEzOlx0XHR2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50ID0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE0Olx0XHR2dWIzMDAtXHUwMDNlYnVzX3dpZHRoID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTE1LVx0XHRpZiAoZGlzYWJsZV9vZmZsb2FkX3Byb2Nlc3NpbmcpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUxNjpcdFx0XHRzdHJzY3B5KHZ1YjMwMC1cdTAwM2V2dWJfbmFtZSwgXCYjMzQ7RU1QVFkgUHJvY2Vzc2luZyBEaXNhYmxlZFwmIzM0OyxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE3Olx0XHRcdFx0c2l6ZW9mKHZ1YjMwMC1cdTAwM2V2dWJfbmFtZSkpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTgtXHRcdGVsc2VcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE5Olx0XHRcdHZ1YjMwMC1cdTAwM2V2dWJfbmFtZVswXSA9IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUyMDpcdFx0bW1jX2RldGVjdF9jaGFuZ2UodnViMzAwLVx1MDAzZW1tYywgMSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyMS1cdH0gZWxzZSBpZiAoIW5ld19jYXJkX3ByZXNlbnQgXHUwMDI2XHUwMDI2IG9sZF9jYXJkX3ByZXNlbnQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTIyOlx0XHRkZXZfaW5mbyhcdTAwMjZ2dWIzMDAtXHUwMDNldWRldi1cdTAwM2VkZXYsIFwmIzM0O2NhcmQganVzdCBlamVjdGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTIzOlx0XHR2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50ID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTI0Olx0XHRtbWNfZGV0ZWN0X2NoYW5nZSh2dWIzMDAtXHUwMDNlbW1jLCAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTI1LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyOS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTMwOnN0YXRpYyB2b2lkIF9fYWRkX29mZmxvYWRlZF9yZWdfdG9fZmlmbyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUzMS1cdFx0XHRcdFx0c3RydWN0IG9mZmxvYWRfcmVnaXN0ZXJzX2FjY2Vzc1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTMzLXtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM0Olx0dTggciA9IHZ1YjMwMC1cdTAwM2VmbltmdW5jXS5vZmZsb2FkX3BvaW50ICYjNDM7IHZ1YjMwMC1cdTAwM2VmbltmdW5jXS5vZmZsb2FkX2NvdW50O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MzU6XHRtZW1jcHkoXHUwMDI2dnViMzAwLVx1MDAzZWZuW2Z1bmNdLnJlZ1tNQVhSRUdNQVNLIFx1MDAyNiByXSwgcmVnaXN0ZXJfYWNjZXNzLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MzYtXHQgICAgICAgc2l6ZW9mKHN0cnVjdCBvZmZsb2FkX3JlZ2lzdGVyc19hY2Nlc3MpKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM3Olx0dnViMzAwLVx1MDAzZWZuW2Z1bmNdLm9mZmxvYWRfY291bnQgJiM0Mzs9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUzODpcdHZ1YjMwMC1cdTAwM2V0b3RhbF9vZmZsb2FkX2NvdW50ICYjNDM7PSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MzktfVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDAtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0MTpzdGF0aWMgdm9pZCBhZGRfb2ZmbG9hZGVkX3JlZyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU0Mi1cdFx0XHQgICAgICBzdHJ1Y3Qgb2ZmbG9hZF9yZWdpc3RlcnNfYWNjZXNzICpyZWdpc3Rlcl9hY2Nlc3MpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDctXHR1OCBmdW5jID0gKCgweDcwIFx1MDAyNiByZWdpc3Rlcl9hY2Nlc3MtXHUwMDNlY29tbWFuZF9ieXRlWzBdKSBcdTAwM2VcdTAwM2UgNCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0ODpcdHU4IHJlZ3MgPSB2dWIzMDAtXHUwMDNlZHluYW1pY19yZWdpc3Rlcl9jb3VudDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTQ5LVx0dTggaSA9IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1MDpcdHdoaWxlICgwIFx1MDAzYyByZWdzLS0gXHUwMDI2XHUwMDI2IDEgPT0gdnViMzAwLVx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0uYWN0aXZhdGUpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUxOlx0XHRpZiAodnViMzAwLVx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0uZnVuY19udW0gPT0gZnVuYyBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUyOlx0XHQgICAgdnViMzAwLVx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0uc2Rpb19yZWcgPT0gUmVnaXN0ZXIpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUzOlx0XHRcdGlmICh2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5wcmVwYXJlZCA9PSAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTQ6XHRcdFx0XHR2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5wcmVwYXJlZCA9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1NTpcdFx0XHR2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5yZXNwb25zZSA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU1Ni1cdFx0XHRcdHJlZ2lzdGVyX2FjY2Vzcy1cdTAwM2VSZXNwb25kX0J5dGVbMl07XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1NzpcdFx0XHR2dWIzMDAtXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5yZWd2YWx1ZSA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU1OC1cdFx0XHRcdHJlZ2lzdGVyX2FjY2Vzcy1cdTAwM2VSZXNwb25kX0J5dGVbM107XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NjQtXHR9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU2NTpcdF9fYWRkX29mZmxvYWRlZF9yZWdfdG9fZmlmbyh2dWIzMDAsIHJlZ2lzdGVyX2FjY2VzcywgZnVuYyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2Ni19XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2Ny1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTY4OnN0YXRpYyB2b2lkIGNoZWNrX3Z1YjMwMF9wb3J0X3N0YXR1cyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2OS17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3MC1cdC8qXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MTpcdCAqIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MjpcdCAqIHZ1YjMwMF9kZWFkd29ya190aHJlYWQgb3IgdnViMzAwX2NtbmR3b3JrX3RocmVhZFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzMtXHQgKi9cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3NS1cdHJldHZhbCA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3NjpcdFx0dXNiX2NvbnRyb2xfbXNnKHZ1YjMwMC1cdTAwM2V1ZGV2LCB1c2JfcmN2Y3RybHBpcGUodnViMzAwLVx1MDAzZXVkZXYsIDApLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzctXHRcdFx0XHRHRVRfU1lTVEVNX1BPUlRfU1RBVFVTLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzgtXHRcdFx0XHRVU0JfRElSX0lOIHwgVVNCX1RZUEVfVkVORE9SIHwgVVNCX1JFQ0lQX0RFVklDRSxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTc5Olx0XHRcdFx0MHgwMDAwLCAweDAwMDAsIFx1MDAyNnZ1YjMwMC1cdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MDpcdFx0XHRcdHNpemVvZih2dWIzMDAtXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzKSwgMTAwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MTpcdGlmIChzaXplb2YodnViMzAwLVx1MDAzZXN5c3RlbV9wb3J0X3N0YXR1cykgPT0gcmV0dmFsKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODI6XHRcdG5ld19zeXN0ZW1fcG9ydF9zdGF0dXModnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTgzLX1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTg0LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODU6c3RhdGljIHZvaWQgX192dWIzMDBfaXJxcG9sbF9yZXNwb25zZShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU4Ni17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4NzpcdC8qIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTg4Olx0aWYgKHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmItXHUwMDNlYWN0dWFsX2xlbmd0aCA9PSAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01ODktXHRcdHJldHVybjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTkwLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTE6XHRzd2l0Y2ggKHZ1YjMwMC1cdTAwM2VyZXNwLmNvbW1vbi5oZWFkZXJfdHlwZSkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01OTItXHRjYXNlIFJFU1BPTlNFX0lOVEVSUlVQVDpcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTkzOlx0XHRtdXRleF9sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTQ6XHRcdGlmICh2dWIzMDAtXHUwMDNlaXJxX2VuYWJsZWQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5NTpcdFx0XHRtbWNfc2lnbmFsX3NkaW9faXJxKHZ1YjMwMC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01OTYtXHRcdGVsc2VcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk3Olx0XHRcdHZ1YjMwMC1cdTAwM2VpcnFzX3F1ZXVlZCAmIzQzOz0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk4Olx0XHR2dWIzMDAtXHUwMDNlaXJxX2Rpc2FibGVkID0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk5Olx0XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWlycV9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwMC1cdFx0YnJlYWs7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwMS1cdGNhc2UgUkVTUE9OU0VfRVJST1I6XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwMjpcdFx0aWYgKHZ1YjMwMC1cdTAwM2VyZXNwLmVycm9yLmVycm9yX2NvZGUgPT0gU0RfRVJST1JfTk9fREVWSUNFKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDM6XHRcdFx0Y2hlY2tfdnViMzAwX3BvcnRfc3RhdHVzKHZ1YjMwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwNC1cdFx0YnJlYWs7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYwNS1cdGNhc2UgUkVTUE9OU0VfU1RBVFVTOlxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDY6XHRcdHZ1YjMwMC1cdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMgPSB2dWIzMDAtXHUwMDNlcmVzcC5zdGF0dXM7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwNzpcdFx0bmV3X3N5c3RlbV9wb3J0X3N0YXR1cyh2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDg6XHRcdGlmICghdnViMzAwLVx1MDAzZWNhcmRfcHJlc2VudClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjA5Olx0XHRcdHZ1YjMwMF9xdWV1ZV9wb2xsX3dvcmsodnViMzAwLCBIWiAvIDUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTAtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjEyLVx0e1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MTM6XHRcdGludCBvZmZsb2FkZWRfZGF0YV9sZW5ndGggPSB2dWIzMDAtXHUwMDNlcmVzcC5jb21tb24uaGVhZGVyX3NpemUgLSAzO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTQtXHRcdGludCByZWdpc3Rlcl9jb3VudCA9IG9mZmxvYWRlZF9kYXRhX2xlbmd0aCBcdTAwM2VcdTAwM2UgMztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxNi1cdFx0d2hpbGUgKHJlZ2lzdGVyX2NvdW50LS0pIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjE3Olx0XHRcdGFkZF9vZmZsb2FkZWRfcmVnKHZ1YjMwMCwgXHUwMDI2dnViMzAwLVx1MDAzZXJlc3AuaXJxLnJlZ1tyaV0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTgtXHRcdFx0cmkgJiM0Mzs9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxOS1cdFx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjA6XHRcdG11dGV4X2xvY2soXHUwMDI2dnViMzAwLVx1MDAzZWlycV9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYyMTpcdFx0aWYgKHZ1YjMwMC1cdTAwM2VpcnFfZW5hYmxlZClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjIyOlx0XHRcdG1tY19zaWduYWxfc2Rpb19pcnEodnViMzAwLVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYyMy1cdFx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjQ6XHRcdFx0dnViMzAwLVx1MDAzZWlycXNfcXVldWVkICYjNDM7PSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjU6XHRcdHZ1YjMwMC1cdTAwM2VpcnFfZGlzYWJsZWQgPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjY6XHRcdG11dGV4X3VubG9jayhcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxX211dGV4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjI3LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYzMC1cdHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjMxOlx0XHRpbnQgb2ZmbG9hZGVkX2RhdGFfbGVuZ3RoID0gdnViMzAwLVx1MDAzZXJlc3AuY29tbW9uLmhlYWRlcl9zaXplIC0gMztcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjMyLVx0XHRpbnQgcmVnaXN0ZXJfY291bnQgPSBvZmZsb2FkZWRfZGF0YV9sZW5ndGggXHUwMDNlXHUwMDNlIDM7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MzQtXHRcdHdoaWxlIChyZWdpc3Rlcl9jb3VudC0tKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYzNTpcdFx0XHRhZGRfb2ZmbG9hZGVkX3JlZyh2dWIzMDAsIFx1MDAyNnZ1YjMwMC1cdTAwM2VyZXNwLmlycS5yZWdbcmldKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjM2LVx0XHRcdHJpICYjNDM7PSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MzctXHRcdH1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjM4Olx0XHRtdXRleF9sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Mzk6XHRcdGlmICh2dWIzMDAtXHUwMDNlaXJxX2VuYWJsZWQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY0MDpcdFx0XHRtbWNfc2lnbmFsX3NkaW9faXJxKHZ1YjMwMC1cdTAwM2VtbWMpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDEtXHRcdGVsc2VcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQyOlx0XHRcdHZ1YjMwMC1cdTAwM2VpcnFzX3F1ZXVlZCAmIzQzOz0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQzOlx0XHR2dWIzMDAtXHUwMDNlaXJxX2Rpc2FibGVkID0gMDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQ0Olx0XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWlycV9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY0NS1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDctXHRjYXNlIFJFU1BPTlNFX05PX0lOVEVSUlVQVDpcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQ4Olx0XHR2dWIzMDBfcXVldWVfcG9sbF93b3JrKHZ1YjMwMCwgMSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY0OS1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NTQtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY1NTpzdGF0aWMgdm9pZCBfX2RvX3BvbGwoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NTYte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NTc6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfcG9sbHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY1OC1cdHVuc2lnbmVkIGxvbmcgY29tbXJldHZhbDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjU5Olx0bW9kX3RpbWVyKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICYjNDM7IEhaKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjYwOlx0aW5pdF9jb21wbGV0aW9uKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjYxOlx0c2VuZF9pcnFwb2xsKHZ1YjMwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2MjpcdGNvbW1yZXR2YWwgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2dnViMzAwLVx1MDAzZWlycXBvbGxfY29tcGxldGUsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY2My1cdFx0XHRcdFx0XHQgbXNlY3NfdG9famlmZmllcyg1MDApKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjY0Olx0aWYgKHZ1YjMwMC1cdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjY1LVx0XHQvKiBubyBuZWVkIHRvIGRvIGFueXRoaW5nICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY2Ni1cdH0gZWxzZSBpZiAoY29tbXJldHZhbCA9PSAwKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2NzpcdFx0dnViMzAwLVx1MDAzZXVzYl90aW1lZF9vdXQgPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Njg6XHRcdHVzYl9raWxsX3VyYih2dWIzMDAtXHUwMDNlY29tbWFuZF9vdXRfdXJiKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjY5Olx0XHR1c2Jfa2lsbF91cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY3MC1cdH0gZWxzZSB7IC8qIGNvbW1yZXR2YWwgXHUwMDNlIDAgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjcxOlx0XHRfX3Z1YjMwMF9pcnFwb2xsX3Jlc3BvbnNlKHZ1YjMwMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY3Mi1cdH1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY3Ny0gKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njc4OnN0YXRpYyB2b2lkIHZ1YjMwMF9wb2xsd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02Nzkte1x0XHRcdFx0LyogTk9UIGlycSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODA6XHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSBjb250YWluZXJfb2Yod29yayxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjgxOlx0XHRcdCAgICAgIHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QsIHBvbGx3b3JrLndvcmspO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODI6XHRpZiAoIXZ1YjMwMC1cdTAwM2VpbnRlcmZhY2UpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjgzOlx0XHRrcmVmX3B1dChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY4NC1cdFx0cmV0dXJuO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02ODUtXHR9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4NjpcdG11dGV4X2xvY2soXHUwMDI2dnViMzAwLVx1MDAzZWNtZF9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4NzpcdGlmICh2dWIzMDAtXHUwMDNlY21kKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4ODpcdFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODk6XHR9IGVsc2UgaWYgKCF2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50KSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY5MC1cdFx0Lyogbm8gbmVlZCB0byBkbyBhbnl0aGluZyAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTE6XHR9IGVsc2UgeyAvKiB2dWIzMDAtXHUwMDNlY2FyZF9wcmVzZW50ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5MjpcdFx0bXV0ZXhfbG9jayhcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxX211dGV4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjkzOlx0XHRpZiAoIXZ1YjMwMC1cdTAwM2VpcnFfZW5hYmxlZCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTQ6XHRcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTU6XHRcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWlycXNfcXVldWVkKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5NjpcdFx0XHR2dWIzMDAtXHUwMDNlaXJxc19xdWV1ZWQgLT0gMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk3Olx0XHRcdG1tY19zaWduYWxfc2Rpb19pcnEodnViMzAwLVx1MDAzZW1tYyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5ODpcdFx0XHRtb2RfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTk6XHRcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VpcnFfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDA6XHRcdH0gZWxzZSB7IC8qIE5PVCB2dWIzMDAtXHUwMDNlaXJxc19xdWV1ZWQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAxOlx0XHRcdG11dGV4X3VubG9jayhcdTAwMjZ2dWIzMDAtXHUwMDNlaXJxX211dGV4KTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAyOlx0XHRcdF9fZG9fcG9sbCh2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MDMtXHRcdH1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA0LVx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDU6XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWNtZF9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcwNjpcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA3LX1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA4LVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDk6c3RhdGljIHZvaWQgdnViMzAwX2RlYWR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcxMC17XHRcdFx0XHQvKiBOT1QgaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxMTpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxMjpcdFx0Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QsIGRlYWR3b3JrKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzEzOlx0aWYgKCF2dWIzMDAtXHUwMDNlaW50ZXJmYWNlKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxNDpcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MTUtXHRcdHJldHVybjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzE2LVx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MTc6XHRtdXRleF9sb2NrKFx1MDAyNnZ1YjMwMC1cdTAwM2VjbWRfbXV0ZXgpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MTg6XHRpZiAodnViMzAwLVx1MDAzZWNtZCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MTktXHRcdC8qXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MjQtXHRcdCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MjU6XHR9IGVsc2UgaWYgKHZ1YjMwMC1cdTAwM2VjYXJkX3ByZXNlbnQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI2Olx0XHRjaGVja192dWIzMDBfcG9ydF9zdGF0dXModnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI3Olx0fSBlbHNlIGlmICh2dWIzMDAtXHUwMDNlbW1jIFx1MDAyNlx1MDAyNiB2dWIzMDAtXHUwMDNlbW1jLVx1MDAzZWNhcmQpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzI4LVx0XHQvKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzM0LVx0fSBlbHNlIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzM1Olx0XHRjaGVja192dWIzMDBfcG9ydF9zdGF0dXModnViMzAwKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzM2LVx0fVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzc6XHRtb2RfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzg6XHRtdXRleF91bmxvY2soXHUwMDI2dnViMzAwLVx1MDAzZWNtZF9tdXRleCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjczOTpcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQwLX1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQxLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDI6c3RhdGljIHZvaWQgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZChzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQzLXtcdFx0XHRcdC8qIHNvZnRpcnEgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQ0Olx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0gdGltZXJfY29udGFpbmVyX29mKHZ1YjMwMCwgdCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQ1LVx0XHRcdFx0XHRcdFx0ICAgIGluYWN0aXZpdHlfdGltZXIpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDY6XHRpZiAoIXZ1YjMwMC1cdTAwM2VpbnRlcmZhY2UpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQ3Olx0XHRrcmVmX3B1dChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0ODpcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWNtZCkge1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDk6XHRcdG1vZF90aW1lcihcdTAwMjZ2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lciwgamlmZmllcyAmIzQzOyBIWik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1MC1cdH0gZWxzZSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc1MTpcdFx0dnViMzAwX3F1ZXVlX2RlYWRfd29yayh2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NTI6XHRcdG1vZF90aW1lcihcdTAwMjZ2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lciwgamlmZmllcyAmIzQzOyBIWik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1My1cdH1cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1NS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzU2OnN0YXRpYyBpbnQgdnViMzAwX3Jlc3BvbnNlX2Vycm9yKHU4IGVycm9yX2NvZGUpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc1Ny17XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03OTI9c3RhdGljIHZvaWQgY29tbWFuZF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzkzLXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NDpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5NS1cdGlmICh1cmItXHUwMDNlc3RhdHVzKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5Ni1cdFx0Lyogd2UgaGF2ZSB0byBsZXQgdGhlIGluaXRpYXRvciBoYW5kbGUgdGhlIGVycm9yICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NzpcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYi1cdTAwM2VhY3R1YWxfbGVuZ3RoID09IDApIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzk4LVx0XHQvKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODAxLVx0XHQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODAyOlx0fSBlbHNlIGlmICghdnViMzAwLVx1MDAzZWRhdGEpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODAzLVx0XHQvKiB0aGlzIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgKHR5cGljYWxseSBDTUQ1Mikgc3VjY2VlZGVkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgwNDpcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZXJlc3AuY29tbW9uLmhlYWRlcl90eXBlICE9IDB4MDIpIHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODA1LVx0XHQvKlxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODA4LVx0XHQgKi9cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODA5Olx0fSBlbHNlIGlmICh2dWIzMDAtXHUwMDNldXJiKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMDpcdFx0dnViMzAwLVx1MDAzZWNtZC1cdTAwM2VlcnJvciA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMTpcdFx0XHR2dWIzMDBfcmVzcG9uc2VfZXJyb3IodnViMzAwLVx1MDAzZXJlc3AuZXJyb3IuZXJyb3JfY29kZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMjpcdFx0dXNiX3VubGlua191cmIodnViMzAwLVx1MDAzZXVyYik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgxMy1cdH0gZWxzZSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNDpcdFx0dnViMzAwLVx1MDAzZWNtZC1cdTAwM2VlcnJvciA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNTpcdFx0XHR2dWIzMDBfcmVzcG9uc2VfZXJyb3IodnViMzAwLVx1MDAzZXJlc3AuZXJyb3IuZXJyb3JfY29kZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNjpcdFx0dXNiX3NnX2NhbmNlbChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgxNy1cdH1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODE4Olx0Y29tcGxldGUoXHUwMDI2dnViMzAwLVx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1x0LyogZ290X3Jlc3BvbnNlX2luICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgxOS19XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz04MjE9c3RhdGljIHZvaWQgY29tbWFuZF9vdXRfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODIyLXtcdFx0XHRcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyMzpcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVx1MDAzZWNvbnRleHQ7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgyNC1cdGlmICh1cmItXHUwMDNlc3RhdHVzKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyNTpcdFx0Y29tcGxldGUoXHUwMDI2dnViMzAwLVx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjYtXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODI4LVx0XHR1bnNpZ25lZCBpbnQgcGlwZSA9XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyOTpcdFx0XHR1c2JfcmN2YnVsa3BpcGUodnViMzAwLVx1MDAzZXVkZXYsIHZ1YjMwMC1cdTAwM2VjbW5kX3Jlc19lcCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMDpcdFx0dXNiX2ZpbGxfYnVsa191cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYiwgdnViMzAwLVx1MDAzZXVkZXYsIHBpcGUsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMTpcdFx0XHRcdCAgXHUwMDI2dnViMzAwLVx1MDAzZXJlc3AsIHNpemVvZih2dWIzMDAtXHUwMDNlcmVzcCksXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMjpcdFx0XHRcdCAgY29tbWFuZF9yZXNfY29tcGxldGVkLCB2dWIzMDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MzM6XHRcdHZ1YjMwMC1cdTAwM2Vjb21tYW5kX3Jlc191cmItXHUwMDNlYWN0dWFsX2xlbmd0aCA9IDA7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzNDpcdFx0cmV0ID0gdXNiX3N1Ym1pdF91cmIodnViMzAwLVx1MDAzZWNvbW1hbmRfcmVzX3VyYiwgR0ZQX0FUT01JQyk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgzNS1cdFx0aWYgKHJldCA9PSAwKSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NDQtXHRcdFx0ICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg0NTpcdFx0XHRjb21wbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlY29tbWFuZF9jb21wbGV0ZSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg0Ni1cdFx0fVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODUyLSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NTM6c3RhdGljIHZvaWQgc25vb3BfYmxvY2tfc2l6ZV9hbmRfYnVzX3dpZHRoKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODU0LVx0XHRcdFx0XHQgICB1MzIgY21kX2FyZylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg1Ni1cdGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDAyMjIwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODU3Olx0XHR2dWIzMDAtXHUwMDNlZmJzWzFdID0gKGNtZF9hcmcgXHUwMDNjXHUwMDNjIDgpIHwgKDB4MDBGRiBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1sxXSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg1OC1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDIyMDAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NTk6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbMV0gPSAoMHhGRiBcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzFdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODYwLVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNDIyMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg2MTpcdFx0dnViMzAwLVx1MDAzZWZic1syXSA9IChjbWRfYXJnIFx1MDAzY1x1MDAzYyA4KSB8ICgweDAwRkYgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbMl0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjItXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA0MjAwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODYzOlx0XHR2dWIzMDAtXHUwMDNlZmJzWzJdID0gKDB4RkYgXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1syXSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg2NC1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDYyMjAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NjU6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbM10gPSAoY21kX2FyZyBcdTAwM2NcdTAwM2MgOCkgfCAoMHgwMEZGIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzNdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODY2LVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNjIwMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg2NzpcdFx0dnViMzAwLVx1MDAzZWZic1szXSA9ICgweEZGIFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbM10pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjgtXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA4MjIwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODY5Olx0XHR2dWIzMDAtXHUwMDNlZmJzWzRdID0gKGNtZF9hcmcgXHUwMDNjXHUwMDNjIDgpIHwgKDB4MDBGRiBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1s0XSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3MC1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDgyMDAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NzE6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbNF0gPSAoMHhGRiBcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzRdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODcyLVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQTIyMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3MzpcdFx0dnViMzAwLVx1MDAzZWZic1s1XSA9IChjbWRfYXJnIFx1MDAzY1x1MDAzYyA4KSB8ICgweDAwRkYgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbNV0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NzQtXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBBMjAwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODc1Olx0XHR2dWIzMDAtXHUwMDNlZmJzWzVdID0gKDB4RkYgXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1s1XSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3Ni1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEMyMjAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4Nzc6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbNl0gPSAoY21kX2FyZyBcdTAwM2NcdTAwM2MgOCkgfCAoMHgwMEZGIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzZdKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODc4LVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQzIwMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3OTpcdFx0dnViMzAwLVx1MDAzZWZic1s2XSA9ICgweEZGIFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXHUwMDI2IHZ1YjMwMC1cdTAwM2VmYnNbNl0pO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODAtXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBFMjIwMClcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODgxOlx0XHR2dWIzMDAtXHUwMDNlZmJzWzddID0gKGNtZF9hcmcgXHUwMDNjXHUwMDNjIDgpIHwgKDB4MDBGRiBcdTAwMjYgdnViMzAwLVx1MDAzZWZic1s3XSk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg4Mi1cdGVsc2UgaWYgKCgweEZCRkZGRTAwIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEUyMDAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4ODM6XHRcdHZ1YjMwMC1cdTAwM2VmYnNbN10gPSAoMHhGRiBcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFx1MDAyNiB2dWIzMDAtXHUwMDNlZmJzWzddKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODg0LVx0ZWxzZSBpZiAoKDB4RkJGRkZFMDMgXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwMDBFMDApXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg4NTpcdFx0dnViMzAwLVx1MDAzZWJ1c193aWR0aCA9IDE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg4Ni1cdGVsc2UgaWYgKCgweEZCRkZGRTAzIFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDAwRTAyKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4ODc6XHRcdHZ1YjMwMC1cdTAwM2VidXNfd2lkdGggPSA0O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODgtfVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODktXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg5MDpzdGF0aWMgdm9pZCBzZW5kX2NvbW1hbmQoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTEte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTI6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg5MzpcdHN0cnVjdCBtbWNfY29tbWFuZCAqY21kID0gdnViMzAwLVx1MDAzZWNtZDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODk0Olx0c3RydWN0IG1tY19kYXRhICpkYXRhID0gdnViMzAwLVx1MDAzZWRhdGE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5NS1cdGludCByZXR2YWw7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTctXHR1OCByZXNwb25zZV90eXBlO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTg6XHRpZiAodnViMzAwLVx1MDAzZWFwcF9zcGVjKSB7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5OS1cdFx0c3dpdGNoIChjbWQtXHUwMDNlb3Bjb2RlKSB7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDEtXHRcdFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTAyOlx0XHRcdHZ1YjMwMC1cdTAwM2VyZXNwX2xlbiA9IDY7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkwMy1cdFx0XHRpZiAoMHgwMDAwMDAwMCA9PSAoMHgwMDAwMDAwMyBcdTAwMjYgY21kLVx1MDAzZWFyZykpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNDpcdFx0XHRcdHZ1YjMwMC1cdTAwM2VidXNfd2lkdGggPSAxO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDUtXHRcdFx0ZWxzZSBpZiAoMHgwMDAwMDAwMiA9PSAoMHgwMDAwMDAwMyBcdTAwMjYgY21kLVx1MDAzZWFyZykpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNjpcdFx0XHRcdHZ1YjMwMC1cdTAwM2VidXNfd2lkdGggPSA0O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDctXHRcdFx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MDg6XHRcdFx0XHRkZXZfZXJyKFx1MDAyNnZ1YjMwMC1cdTAwM2V1ZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTA5LVx0XHRcdFx0XHRcJiMzNDt1bmV4cGVjdGVkIEFDTUQ2IGJ1c193aWR0aD0lZFxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkxMy1cdFx0XHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MTQ6XHRcdFx0dnViMzAwLVx1MDAzZXJlc3BfbGVuID0gNjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTE1LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTE3LVx0XHRcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkxODpcdFx0XHR2dWIzMDAtXHUwMDNlcmVzcF9sZW4gPSA2O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MTktXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MjEtXHRcdFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTIyOlx0XHRcdHZ1YjMwMC1cdTAwM2VyZXNwX2xlbiA9IDY7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyMy1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyNS1cdFx0XHRyZXNwb25zZV90eXBlID0gU0RSVF8zO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MjY6XHRcdFx0dnViMzAwLVx1MDAzZXJlc3BfbGVuID0gNjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTI3LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTI5LVx0XHRcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkzMDpcdFx0XHR2dWIzMDAtXHUwMDNlcmVzcF9sZW4gPSA2O1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzEtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzMtXHRcdFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTM0Olx0XHRcdHZ1YjMwMC1cdTAwM2VyZXNwX2xlbiA9IDY7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkzNS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkzNy1cdFx0XHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5Mzg6XHRcdFx0dnViMzAwLVx1MDAzZXJlc3BfbGVuID0gNjtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTM5LVx0XHRcdGJyZWFrO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05NDAtXHRcdGRlZmF1bHQ6XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjk0MTpcdFx0XHR2dWIzMDAtXHUwMDNlcmVzcF9sZW4gPSAwO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05NDItXHRcdFx0Y21kLVx1MDAzZWVycm9yID0gLUVJTlZBTDtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTQzOlx0XHRcdGNvbXBsZXRlKFx1MDAyNnZ1YjMwMC1cdTAwM2Vjb21tYW5kX2NvbXBsZXRlKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mjg2OQoJCQkJCQkJb3V0cHV0OiA1NgoJCQkJCQkJdGhvdWdodHM6IDk2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtZZXMsIGB2dWIzMDBgIGlzIGluZGVlZCBhbiBTRElPLXRvLVVTQiBicmlkZ2UgZHJpdmVyLiYjMzQ7IFRoYXQmIzM5O3MgdGhlIGZvdW5kYXRpb24uIFRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IFN5emthbGxlciBjYW4gZW11bGF0ZSB0aGlzIGRldmljZSB1c2luZyBgZHVtbXlfaGNkYCAoVVNCKSwgd2hpY2ggaXMgY3J1Y2lhbC4gV2hlbiBTeXprYWxsZXIgZW11bGF0ZXMgYHZ1YjMwMGAsIHRoZSBkcml2ZXIgcmVnaXN0ZXJzIGFuIE1NQyBob3N0LCBhbmQgdGhlbiB3ZSBjYW4gc2ltdWxhdGUgYW4gU0RJTyBjYXJkLCBsaWtlIGBicmNtZm1hY2AsIGJ5IHNlbmRpbmcgYXBwcm9wcmlhdGUgcmVzcG9uc2VzIHRvIHRoZSBgdnViMzAwYCBkcml2ZXIuIEZhbnRhc3RpYyEgVGhpcyBjb25maXJtcyB0aGF0IHRoZSBgYnJjbWZtYWNgIFNESU8gaW50ZXJmYWNlICppcyogYWNjZXNzaWJsZSB3aXRoaW4gU3l6a2FsbGVyJiMzOTtzIGVtdWxhdGVkIGVudmlyb25tZW50IQoKVGhlIHBhdGNoIGl0c2VsZiBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgaXNzdWUgd2l0aGluIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIE5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBhcmlzZXM6IElzIGBicmNtZm1hY2AgZXZlbiBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nPyBMZXQmIzM5O3MgY2hlY2sgdGhlIGNyaXRlcmlhLiBUaGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZnkgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBjb25jZXJucyAmIzM0O3ZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiYjMzQ7CgpgYnJjbWZtYWNgIGlzIGEgdmVuZG9yLXNwZWNpZmljIFdpLUZpIGRyaXZlciwgeWVzLCBidXQgaXQgaW50ZXJmYWNlcyB2aWEgU0RJTy9VU0IvUENJZS4gQnV0IGdpdmVuIHRoYXQgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSBVU0IgKGVpdGhlciBkaXJlY3RseSBvciB0aHJvdWdoIHRoZSBgdnViMzAwYCBicmlkZ2UsIGFzIHByb3ZlbiBieSBTeXprYWxsZXImIzM5O3MgY2FwYWJpbGl0aWVzKSwgaXQgaXNuJiMzOTt0IGEgZHJpdmVyIHRoYXQgbWFuZGF0ZXMgc3BlY2lhbGl6ZWQgaGFyZHdhcmUuIEl0JiMzOTtzIGFjY2Vzc2libGUgaW4gdGhlIHZpcnR1YWxpemVkIGVudmlyb25tZW50ISBTbywgYFdvcnRoRnV6emluZz10cnVlYC4KCk5vdywgbGV0JiMzOTtzIGV4YW1pbmUgdGhlIHBhdGNoIG1vcmUgY2xvc2VseS4gSXQgaW52b2x2ZXMgYSBjb2RlIGNoYW5nZSBpbiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB3YXMgc3RydWN0dXJlZCB0byBjaGVjayBpZiBhIGNvbnRyb2wgZnJhbWUgd2FzIGJlaW5nIHByb2Nlc3NlZCwgYW5kIGJhc2VkIG9uIHRoaXMgY29uZGl0aW9uLCB3b3VsZCBlaXRoZXIgZnJlZSB0aGUgYGJ1ZmAgYW5kIGBnb3RvIGRvbmVgLCBvciBjb250aW51ZSBwcm9jZXNzaW5nLiBDcml0aWNhbGx5LCB0aGUgb3JpZ2luYWwgY29kZSBoYWQgdGhlIHBvdGVudGlhbCBtZW1vcnkgbGVhaywgd2hlcmUgdGhlIGBidWZgIHBvaW50ZXIgY291bGQgYmUgdXNlZCBhbmQgKm5vdCogZnJlZWQuIFRoZSBwYXRjaCBlc3NlbnRpYWxseSByZWZhY3RvcnMgdGhpcyBsb2dpYywgc2V0dGluZyBgYnVmID0gTlVMTGAgYW5kIHRoZW4gY2FsbGluZyBgdmZyZWUoYnVmKWAuIElmIGl0IHRvb2sgdGhlIGBpZiAoYnVzLSZndDtyeGN0bClgIGJyYW5jaCwgaXQgc3RpbGwgZW5kcyB1cCBhdCB0aGUgc2FtZSBsaW5lIHRoYXQgY2FsbHMgYHZmcmVlKGJ1ZilgLgoKSG93ZXZlciwgdGhlIGludGVudGlvbiBvZiB0aGUgcGF0Y2ggaXMgbm90IGNsZWFyLiBJcyBpdCBhZGRyZXNzaW5nIGEgZG91YmxlIGZyZWU/IE5vLiBJZiBgYnVzLSZndDtyeGN0bGAgaXMgdHJ1ZSwgaXQgdXNlZCB0byBmcmVlIGBidWZgLCBhbmQgbm93IGl0IGRvZXMsIHNvIGl0IGlzIGxvZ2ljYWxseSB0aGUgc2FtZS4gVGhlIGBidWYgPSBOVUxMYCBhbmQgdGhlbiBgdmZyZWUoYnVmKWAgbWVhbnMgdGhlIHNhbWUgdGhpbmcuIFRoZSBvcmlnaW5hbCBjb2RlIGNvdWxkICpwb3RlbnRpYWxseSogaGF2ZSBhIG1lbW9yeSBsZWFrIGJlY2F1c2UgaWYgdGhlIGNvbnRyb2wgZnJhbWUgd2FzbiYjMzk7dCBhY3RpdmUsIHRoZW4gaXQgd291bGQgbm90IGZyZWUgdGhlIGJ1ZmZlci4gVGhlIHBhdGNoZWQgY29kZSBpcyBsb2dpY2FsbHkgZXF1aXZhbGVudDsgbm8gZG91YmxlLWZyZWUuCgpJJiMzOTttIHByZXR0eSBjZXJ0YWluIHRoZXJlIGlzIG5vIGxvZ2ljIGVycm9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNzU2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxNzU2Olx0c3RhdGljIHZvaWRcbjE3NTc6XHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxuMTc1ODpcdHtcbjE3NTk6XHRcdHVpbnQgcmRsZW4sIHBhZDtcbjE3NjA6XHRcdHU4ICpidWYgPSBOVUxMLCAqcmJ1ZjtcbjE3NjE6XHRcdGludCBzZHJldDtcbjE3NjI6XHRcbjE3NjM6XHRcdGJyY21mX2RiZyhTRElPLCBcJiMzNDtFbnRlclxcblwmIzM0Oyk7XG4xNzY0Olx0XHRpZiAoYnVzLVx1MDAzZXJ4YmxlbilcbjE3NjU6XHRcdFx0YnVmID0gdnphbGxvYyhidXMtXHUwMDNlcnhibGVuKTtcbjE3NjY6XHRcdGlmICghYnVmKVxuMTc2NzpcdFx0XHRnb3RvIGRvbmU7XG4xNzY4Olx0XG4xNzY5Olx0XHRyYnVmID0gYnVzLVx1MDAzZXJ4YnVmO1xuMTc3MDpcdFx0cGFkID0gKCh1bnNpZ25lZCBsb25nKXJidWYgJSBidXMtXHUwMDNlaGVhZF9hbGlnbik7XG4xNzcxOlx0XHRpZiAocGFkKVxuMTc3MjpcdFx0XHRyYnVmICYjNDM7PSAoYnVzLVx1MDAzZWhlYWRfYWxpZ24gLSBwYWQpO1xuMTc3MzpcdFxuMTc3NDpcdFx0LyogQ29weSB0aGUgYWxyZWFkeS1yZWFkIHBvcnRpb24gb3ZlciAqL1xuMTc3NTpcdFx0bWVtY3B5KGJ1ZiwgaGRyLCBCUkNNRl9GSVJTVFJFQUQpO1xuMTc3NjpcdFx0aWYgKGxlbiBcdTAwM2M9IEJSQ01GX0ZJUlNUUkVBRClcbjE3Nzc6XHRcdFx0Z290byBnb3Rwa3Q7XG4xNzc4Olx0XG4xNzc5Olx0XHQvKiBSYWlzZSByZGxlbiB0byBuZXh0IFNESU8gYmxvY2sgdG8gYXZvaWQgdGFpbCBjb21tYW5kICovXG4xNzgwOlx0XHRyZGxlbiA9IGxlbiAtIEJSQ01GX0ZJUlNUUkVBRDtcbjE3ODE6XHRcdGlmIChidXMtXHUwMDNlcm91bmR1cCBcdTAwMjZcdTAwMjYgYnVzLVx1MDAzZWJsb2Nrc2l6ZSBcdTAwMjZcdTAwMjYgKHJkbGVuIFx1MDAzZSBidXMtXHUwMDNlYmxvY2tzaXplKSkge1xuMTc4MjpcdFx0XHRwYWQgPSBidXMtXHUwMDNlYmxvY2tzaXplIC0gKHJkbGVuICUgYnVzLVx1MDAzZWJsb2Nrc2l6ZSk7XG4xNzgzOlx0XHRcdGlmICgocGFkIFx1MDAzYz0gYnVzLVx1MDAzZXJvdW5kdXApIFx1MDAyNlx1MDAyNiAocGFkIFx1MDAzYyBidXMtXHUwMDNlYmxvY2tzaXplKSBcdTAwMjZcdTAwMjZcbjE3ODQ6XHRcdFx0ICAgICgobGVuICYjNDM7IHBhZCkgXHUwMDNjIGJ1cy1cdTAwM2VzZGlvZGV2LVx1MDAzZWJ1c19pZi1cdTAwM2VtYXhjdGwpKVxuMTc4NTpcdFx0XHRcdHJkbGVuICYjNDM7PSBwYWQ7XG4xNzg2Olx0XHR9IGVsc2UgaWYgKHJkbGVuICUgYnVzLVx1MDAzZWhlYWRfYWxpZ24pIHtcbjE3ODc6XHRcdFx0cmRsZW4gJiM0Mzs9IGJ1cy1cdTAwM2VoZWFkX2FsaWduIC0gKHJkbGVuICUgYnVzLVx1MDAzZWhlYWRfYWxpZ24pO1xuMTc4ODpcdFx0fVxuMTc4OTpcdFxuMTc5MDpcdFx0LyogRHJvcCBpZiB0aGUgcmVhZCBpcyB0b28gYmlnIG9yIGl0IGV4Y2VlZHMgb3VyIG1heGltdW0gKi9cbjE3OTE6XHRcdGlmICgocmRsZW4gJiM0MzsgQlJDTUZfRklSU1RSRUFEKSBcdTAwM2UgYnVzLVx1MDAzZXNkaW9kZXYtXHUwMDNlYnVzX2lmLVx1MDAzZW1heGN0bCkge1xuMTc5MjpcdFx0XHRicmNtZl9lcnIoXCYjMzQ7JWQtYnl0ZSBjb250cm9sIHJlYWQgZXhjZWVkcyAlZC1ieXRlIGJ1ZmZlclxcblwmIzM0OyxcbjE3OTM6XHRcdFx0XHQgIHJkbGVuLCBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKTtcbjE3OTQ6XHRcdFx0YnJjbWZfc2Rpb19yeGZhaWwoYnVzLCBmYWxzZSwgZmFsc2UpO1xuMTc5NTpcdFx0XHRnb3RvIGRvbmU7XG4xNzk2Olx0XHR9XG4xNzk3Olx0XG4xNzk4Olx0XHRpZiAoKGxlbiAtIGRvZmYpIFx1MDAzZSBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKSB7XG4xNzk5Olx0XHRcdGJyY21mX2VycihcJiMzNDslZC1ieXRlIGN0bCBmcmFtZSAoJWQtYnl0ZSBjdGwgZGF0YSkgZXhjZWVkcyAlZC1ieXRlIGxpbWl0XFxuXCYjMzQ7LFxuMTgwMDpcdFx0XHRcdCAgbGVuLCBsZW4gLSBkb2ZmLCBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKTtcbjE4MDE6XHRcdFx0YnVzLVx1MDAzZXNkY250LnJ4X3Rvb2xvbmcmIzQzOyYjNDM7O1xuMTgwMjpcdFx0XHRicmNtZl9zZGlvX3J4ZmFpbChidXMsIGZhbHNlLCBmYWxzZSk7XG4xODAzOlx0XHRcdGdvdG8gZG9uZTtcbjE4MDQ6XHRcdH1cbjE4MDU6XHRcbjE4MDY6XHRcdC8qIFJlYWQgcmVtYWluIG9mIGZyYW1lIGJvZHkgKi9cbjE4MDc6XHRcdHNkcmV0ID0gYnJjbWZfc2Rpb2RfcmVjdl9idWYoYnVzLVx1MDAzZXNkaW9kZXYsIHJidWYsIHJkbGVuKTtcbjE4MDg6XHRcdGJ1cy1cdTAwM2VzZGNudC5mMnJ4ZGF0YSYjNDM7JiM0Mzs7XG4xODA5Olx0XG4xODEwOlx0XHQvKiBDb250cm9sIGZyYW1lIGZhaWx1cmVzIG5lZWQgcmV0cmFuc21pc3Npb24gKi9cbjE4MTE6XHRcdGlmIChzZHJldCBcdTAwM2MgMCkge1xuMTgxMjpcdFx0XHRicmNtZl9lcnIoXCYjMzQ7cmVhZCAlZCBjb250cm9sIGJ5dGVzIGZhaWxlZDogJWRcXG5cJiMzNDssXG4xODEzOlx0XHRcdFx0ICByZGxlbiwgc2RyZXQpO1xuMTgxNDpcdFx0XHRidXMtXHUwMDNlc2RjbnQucnhjX2Vycm9ycyYjNDM7JiM0Mzs7XG4xODE1Olx0XHRcdGJyY21mX3NkaW9fcnhmYWlsKGJ1cywgdHJ1ZSwgdHJ1ZSk7XG4xODE2Olx0XHRcdGdvdG8gZG9uZTtcbjE4MTc6XHRcdH0gZWxzZVxuMTgxODpcdFx0XHRtZW1jcHkoYnVmICYjNDM7IEJSQ01GX0ZJUlNUUkVBRCwgcmJ1ZiwgcmRsZW4pO1xuMTgxOTpcdFxuMTgyMDpcdGdvdHBrdDpcbjE4MjE6XHRcbjE4MjI6XHRcdGJyY21mX2RiZ19oZXhfZHVtcChCUkNNRl9CWVRFU19PTigpIFx1MDAyNlx1MDAyNiBCUkNNRl9DVExfT04oKSxcbjE4MjM6XHRcdFx0XHQgICBidWYsIGxlbiwgXCYjMzQ7UnhDdHJsOlxcblwmIzM0Oyk7XG4xODI0Olx0XG4xODI1Olx0XHQvKiBQb2ludCB0byB2YWxpZCBkYXRhIGFuZCBpbmRpY2F0ZSBpdHMgbGVuZ3RoICovXG4xODI2Olx0XHRzcGluX2xvY2tfYmgoXHUwMDI2YnVzLVx1MDAzZXJ4Y3RsX2xvY2spO1xuMTgyNzpcdFx0aWYgKGJ1cy1cdTAwM2VyeGN0bCkge1xuMTgyODpcdFx0XHRicmNtZl9lcnIoXCYjMzQ7bGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cXG5cJiMzNDspO1xuMTgyOTpcdFx0XHRzcGluX3VubG9ja19iaChcdTAwMjZidXMtXHUwMDNlcnhjdGxfbG9jayk7XG4xODMwOlx0XHRcdGdvdG8gZG9uZTtcbjE4MzE6XHRcdH1cbjE4MzI6XHRcdGJ1cy1cdTAwM2VyeGN0bCA9IGJ1ZiAmIzQzOyBkb2ZmO1xuMTgzMzpcdFx0YnVzLVx1MDAzZXJ4Y3RsX29yaWcgPSBidWY7XG4xODM0Olx0XHRidXMtXHUwMDNlcnhsZW4gPSBsZW4gLSBkb2ZmO1xuMTgzNTpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2YnVzLVx1MDAzZXJ4Y3RsX2xvY2spO1xuMTgzNjpcdFx0YnVmID0gTlVMTDtcbjE4Mzc6XHRcbjE4Mzg6XHRkb25lOlxuMTgzOTpcdFx0LyogQXdha2UgYW55IHdhaXRlcnMgKi9cbjE4NDA6XHRcdGJyY21mX3NkaW9fZGNtZF9yZXNwX3dha2UoYnVzKTtcbjE4NDE6XHRcdHZmcmVlKGJ1Zik7XG4xODQyOlx0fVxuMTg0MzpcdFxuMTg0NDpcdC8qIFBhZCByZWFkIHRvIGJsb2Nrc2l6ZSBmb3IgZWZmaWNpZW5jeSAqL1xuMTg0NTpcdHN0YXRpYyB2b2lkIGJyY21mX3NkaW9fcGFkKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHUxNiAqcGFkLCB1MTYgKnJkbGVuKVxuMTg0NjpcdHtcbjE4NDc6XHRcdGlmIChidXMtXHUwMDNlcm91bmR1cCBcdTAwMjZcdTAwMjYgYnVzLVx1MDAzZWJsb2Nrc2l6ZSBcdTAwMjZcdTAwMjYgKnJkbGVuIFx1MDAzZSBidXMtXHUwMDNlYmxvY2tzaXplKSB7XG4xODQ4Olx0XHRcdCpwYWQgPSBidXMtXHUwMDNlYmxvY2tzaXplIC0gKCpyZGxlbiAlIGJ1cy1cdTAwM2VibG9ja3NpemUpO1xuMTg0OTpcdFx0XHRpZiAoKnBhZCBcdTAwM2M9IGJ1cy1cdTAwM2Vyb3VuZHVwIFx1MDAyNlx1MDAyNiAqcGFkIFx1MDAzYyBidXMtXHUwMDNlYmxvY2tzaXplIFx1MDAyNlx1MDAyNlxuMTg1MDpcdFx0XHQgICAgKnJkbGVuICYjNDM7ICpwYWQgJiM0MzsgQlJDTUZfRklSU1RSRUFEIFx1MDAzYyBNQVhfUlhfREFUQVNaKVxuMTg1MTpcdFx0XHRcdCpyZGxlbiAmIzQzOz0gKnBhZDtcbjE4NTI6XHRcdH0gZWxzZSBpZiAoKnJkbGVuICUgYnVzLVx1MDAzZWhlYWRfYWxpZ24pIHtcbjE4NTM6XHRcdFx0KnJkbGVuICYjNDM7PSBidXMtXHUwMDNlaGVhZF9hbGlnbiAtICgqcmRsZW4gJSBidXMtXHUwMDNlaGVhZF9hbGlnbik7XG4xODU0Olx0XHR9XG4xODU1Olx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjIzNAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDQwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNZW1vcnkgTGVhayBGaXggaW4gYnJjbWZtYWMgRHJpdmVyKioKCk9rYXksIHNvIGJlZm9yZSB0aGlzIHBhdGNoLCBJIHNlZSB0aGVyZSB3ZXJlIHNldmVyYWwgaW5zdGFuY2VzIG9mIGBnb3RvIGRvbmU7YCBzdGF0ZW1lbnRzIHNjYXR0ZXJlZCBhcm91bmQsIGFuZCB0aGV5IHdlcmUgbGVha2luZyBgYnVmYCEgRm9yIGV4YW1wbGUsIHRha2UgdGhpcyBzbmlwcGV0OgoKYGBgYwoJaWYgKChyZGxlbiAmIzQzOyBCUkNNRl9GSVJTVFJFQUQpICZndDsgYnVzLSZndDtzZGlvZGV2LSZndDtidXNfaWYtJmd0O21heGN0bCkgewoJCWJyY21mX2VycigmIzM0OyVkLWJ5dGUgY29udHJvbCByZWFkIGV4Y2VlZHMgJWQtYnl0ZSBidWZmZXJcbiYjMzQ7LAoJCQkgIHJkbGVuLCBidXMtJmd0O3NkaW9kZXYtJmd0O2J1c19pZi0mZ3Q7bWF4Y3RsKTsKCQlicmNtZl9zZGlvX3J4ZmFpbChidXMsIGZhbHNlLCBmYWxzZSk7CgkJZ290byBkb25lOwoJfQpgYGAKCklmIHRoYXQgYGlmYCBjb25kaXRpb24gd2FzIHRydWUsIGBidWZgIHdhcyBhbGxvY2F0ZWQsIGJ1dCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBkb25lOmAgKndpdGhvdXQqIGZyZWVpbmcgaXQuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIG1lbW9yeSBsZWFrLgoKVGhpcyBwYXRjaCwgdGhhbmtmdWxseSwgYWRkcmVzc2VzIHRoZSBpc3N1ZSBieSBhZGRpbmcgYHZmcmVlKGJ1ZilgIGF0IGBkb25lOmAgYW5kIHNldHRpbmcgYGJ1ZiA9IE5VTExgIG9uIHRoZSBzdWNjZXNzZnVsIHBhdGguIFRoaXMgaXMgYSBzb2xpZCBmaXggZm9yIHRoZXNlIGVycm9yIHBhdGhzLgoKTm93LCBzaG91bGQgSSBjb25zaWRlciBmdXp6aW5nIHRoaXM/IEFic29sdXRlbHkhIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBmaXhpbmcgYSBtZW1vcnkgbGVhay4gQW5kIHRoZSBgYnJjbWZtYWNgIGRyaXZlciBpcyByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24uIFRoZSBkcml2ZXIgbmFtZSBpcyBgYnJjbWZtYWNgLgoKV2hhdCBjb25maWdzIGRvIEkgbmVlZCB0byB0cmlnZ2VyIHRoaXM/IEkmIzM5O2xsIG5lZWQgYENPTkZJR19CUkNNRk1BQ2AsIG9idmlvdXNseS4gU2luY2UgdGhlIGNvZGUgaW4gcXVlc3Rpb24sIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGlzIHJlbGF0ZWQgdG8gU0RJTywgSSYjMzk7bGwgYWxzbyBuZWVkIGBDT05GSUdfQlJDTUZNQUNfU0RJT2AuIEFuZCwgc2luY2UgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSBVU0IgZW11bGF0aW9uLCBJJiMzOTtsbCBuZWVkIGBDT05GSUdfQlJDTUZNQUNfVVNCYC4gVGhlbiwgdGhlIGNydWNpYWwgYml0IGZvciBzeXprYWxsZXIsIEkmIzM5O2xsIG5lZWQgYENPTkZJR19NTUNfVlVCMzAwYCB0byBlbXVsYXRlIHRoZSBTRElPIGhvc3QgY29udHJvbGxlciB2aWEgVVNCLgoKV2FpdCwgaXNuJiMzOTt0IGBicmNtZm1hY2AgYWxzbyBkaXJlY3RseSBwcm9iZWQgdGhyb3VnaCBVU0IgKGBDT05GSUdfQlJDTUZNQUNfVVNCYCk/IEJ1dCwgdGhlIHZ1bG5lcmFibGUgY29kZSBsaXZlcyBpbiBgc2Rpby5jYCwgd2hpY2ggaXMgb25seSBjb21waWxlZCBpZiBgQ09ORklHX0JSQ01GTUFDX1NESU9gIGlzIGVuYWJsZWQuIEFuZCwgSSBuZWVkIGFuIFNESU8gaG9zdCBjb250cm9sbGVyIHRvIHJlYWNoIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGFuZCB0aGF0JiMzOTtzIGV4YWN0bHkgd2hhdCBgQ09ORklHX01NQ19WVUIzMDBgIHByb3ZpZGVzIGFzIHRoZSBVU0ItdG8tU0RJTyBicmlkZ2UgdGhhdCBzeXprYWxsZXIgdXNlcy4gUmlnaHQsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZm9yIGBicmNtZm1hY2AgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSQ01GTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxOmNvbmZpZyBCUkNNRk1BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTUtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE3OmNvbmZpZyBCUkNNRk1BQ19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7U0RJTyBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7VVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy00MS1cdGJvb2wgXCYjMzQ7UENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3ODQxCgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkNoZWNraW5nIEJSQ01GTUFDX1NESU8gRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYEJSQ01GTUFDX1NESU9gIHNpdHVhdGlvbi4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IHRyYWNlIGFsbCB0aGUgZGVwZW5kZW5jaWVzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb2J2aW91cyBjb25mbGljdHMuIEFyZSB0aGVyZSBhbnkgb3RoZXIgbW9kdWxlcywgZHJpdmVycywgb3Igc3lzdGVtIHNlcnZpY2VzIHRoYXQgcmVseSBvbiwgb3IgYXJlIGRlcGVuZGVkIHVwb24gYnksIGBCUkNNRk1BQ19TRElPYD8gSSYjMzk7bSB0aGlua2luZyBhYm91dCBjbG9jayBjb250cm9sLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIFNESU8gYnVzIHNwZWNpZmljcywgYW5kIHBvdGVudGlhbGx5IHBvd2VyIG1hbmFnZW1lbnQg4oCTIHRoZSB1c3VhbCBzdXNwZWN0cy4gSeKAmWxsIG1ha2UgYSBub3RlIG9mIGFueXRoaW5nIHVuZXhwZWN0ZWQgb3IgdW5jbGVhciBpbW1lZGlhdGVseS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgaXRzIGRlcGVuZGVuY2llcyBhcmUgY29ycmVjdGx5IGNvbmZpZ3VyZWQgYW5kIGlmIHRoZXJlJiMzOTtzIGFueSBjaXJjdWxhciBkZXBlbmRlbmN5IGlzc3Vlcy4gVGltZSB0byBkaWcgaW50byB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgc291cmNlIGNvZGUgdG8gdmVyaWZ5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJDTUZNQUNfU0RJTyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MTQ9Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVx0Ym9vbCBcJiMzNDtTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgyNTcKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBicmNtZm1hYyBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gaG93IHRoaXMgYGJyY21mbWFjYCBkcml2ZXIgaXMgY29uZmlndXJlZCB3aXRoaW4gdGhlIGJyb2FkZXIga2VybmVsLiBNeSBpbnN0aW5jdHMgdGVsbCBtZSB0aGUgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIGZpbmQgdGhlIGdvb2Qgc3R1ZmYgYXJvdW5kIGxpbmUgMTcgb2YgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnYC4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIG92ZXJ2aWV3IG9mIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gdGhlIEJyb2FkY29tIHdpcmVsZXNzIGRyaXZlci4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0IGdvb2RpZXMgSSBjYW4gdW5lYXJ0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBCUkNNRk1BQ1xuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuICAgMzpcdFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuICAgNDpcdFx0c2VsZWN0IEJSQ01VVElMXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3Igd2lyZWxlc3MgYWRhcHRlcnMgYmFzZWQgb24gQnJvYWRjb21cbiAgIDc6XHRcdCAgRnVsbE1BQyBjaGlwc2V0cy4gSXQgaGFzIHRvIHdvcmsgd2l0aCBhdCBsZWFzdCBvbmUgb2YgdGhlIGJ1c1xuICAgODpcdFx0ICBpbnRlcmZhY2Ugc3VwcG9ydC4gSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZFxuICAgOTpcdFx0ICBicmNtZm1hYy5rby5cbiAgMTA6XHRcbiAgMTE6XHRjb25maWcgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuICAxMjpcdFx0Ym9vbFxuICAxMzpcdFxuICAxNDpcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcbiAgMTU6XHRcdGJvb2xcbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgQlJDTUZNQUNfU0RJT1xuICAxODpcdFx0Ym9vbCBcJiMzNDtTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbiAgMTk6XHRcdGRlcGVuZHMgb24gKE1NQyA9IHkgfHwgTU1DID0gQlJDTUZNQUMpXG4gIDIwOlx0XHRkZXBlbmRzIG9uIEJSQ01GTUFDXG4gIDIxOlx0XHRzZWxlY3QgQlJDTUZNQUNfUFJPVE9fQkNEQ1xuICAyMjpcdFx0c2VsZWN0IEZXX0xPQURFUlxuICAyMzpcdFx0ZGVmYXVsdCB5XG4gIDI0Olx0XHRoZWxwXG4gIDI1Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBCcm9hZGNvbVxuICAyNjpcdFx0ICBJRUVFODAyLjExbiBlbWJlZGRlZCBGdWxsTUFDIFdMQU4gZHJpdmVyLiBTYXkgWSBpZiB5b3Ugd2FudCB0b1xuICAyNzpcdFx0ICB1c2UgdGhlIGRyaXZlciBmb3IgYSBTRElPIHdpcmVsZXNzIGNhcmQuXG4gIDI4Olx0XG4gIDI5Olx0Y29uZmlnIEJSQ01GTUFDX1VTQlxuICAzMDpcdFx0Ym9vbCBcJiMzNDtVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuICAzMTpcdFx0ZGVwZW5kcyBvbiAoVVNCID0geSB8fCBVU0IgPSBCUkNNRk1BQylcbiAgMzI6XHRcdGRlcGVuZHMgb24gQlJDTUZNQUNcbiAgMzM6XHRcdHNlbGVjdCBCUkNNRk1BQ19QUk9UT19CQ0RDXG4gIDM0Olx0XHRzZWxlY3QgRldfTE9BREVSXG4gIDM1Olx0XHRoZWxwXG4gIDM2Olx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEJyb2FkY29tXG4gIDM3Olx0XHQgIElFRUU4MDIuMTFuIGVtYmVkZGVkIEZ1bGxNQUMgV0xBTiBkcml2ZXIuIFNheSBZIGlmIHlvdSB3YW50IHRvXG4gIDM4Olx0XHQgIHVzZSB0aGUgZHJpdmVyIGZvciBhbiBVU0Igd2lyZWxlc3MgY2FyZC5cbiAgMzk6XHRcbiAgNDA6XHRjb25maWcgQlJDTUZNQUNfUENJRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTA1NQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEN1cnJlbnQgRm9jdXM6IERlZmluaW5nIHRoZSBOZWNlc3NhcnkgRHJpdmVycyoqCgpPa2F5LCBzbyBJJiMzOTttIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGRyaXZlciBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcHJvamVjdCwgYW5kIGl0JiMzOTtzIGJlY29taW5nIGNsZWFyIHdoYXQgSSBuZWVkLiBJdCBsb29rcyBsaWtlIEkmIzM5O20gZGVmaW5pdGVseSBnb2luZyB0byByZXF1aXJlIGJvdGggYEJSQ01GTUFDYCBhbmQgYEJSQ01GTUFDX1NESU9gLiBGdXJ0aGVybW9yZSwgdGhlIGBNTUNgIGRyaXZlciBpcyBhIGdpdmVuLCBvYnZpb3VzbHkuIE5vdywgdGhlIGN1cnZlYmFsbCBoZXJlIGlzIHRoaXMgYE1NQ19WVUIzMDBgIGRyaXZlci4gTXkgdW5kZXJzdGFuZGluZyBpcyBpdCYjMzk7cyBoYW5kbGluZyBTRElPIGVtdWxhdGlvbiB0aHJvdWdoIFVTQi4gVGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscyBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4mIzM5O3QgbWlzc2VkIGFueSBpbmRpcmVjdCBkZXBlbmRlbmNpZXMuIEkmIzM5O2xsIGNoZWNrIGl0cyBvd24gZGVwZW5kZW5jaWVzIGFuZCBtYWtlIGNlcnRhaW4gZXZlcnl0aGluZyBsaW5rcyB1cCBjb3JyZWN0bHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTUNfVlVCMzAwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkxMD1jb25maWcgTU1DX0paNDc0MFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05MTktXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6OTIwOmNvbmZpZyBNTUNfVlVCMzAwXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTIxLVx0dHJpc3RhdGUgXCYjMzQ7VlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTQwOAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIE1NQyBIb3N0IENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGBkcml2ZXJzL21tYy9ob3N0L0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA5MjAuIEkmIzM5O20gbGlrZWx5IGludGVyZXN0ZWQgaW4gaG93IHNvbWUgcGFydGljdWxhciBmZWF0dXJlIG9yIG9wdGlvbiByZWxhdGVkIHRvIE1NQyBob3N0IGNvbnRyb2xsZXJzIGlzIGJlaW5nIGNvbmZpZ3VyZWQuIEdpdmVuIHRoZSBsb2NhdGlvbiB3aXRoaW4gS2NvbmZpZywgSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIG9yIGRlcGVuZGVuY2llcyBiZWluZyBkZWZpbmVkLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgc3BlY2lmaWMgYXNwZWN0IGlzIGNvbnRyb2xsZWQsIHdoYXQgb3RoZXIgZmVhdHVyZXMgaXQgbWlnaHQgZGVwZW5kIG9uLCBhbmQgcG90ZW50aWFsbHksIHdoYXQgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGtlcm5lbCBjb25maWd1cmF0aW9ucyBlbmFibGUgb3IgZGlzYWJsZSBpdC4gUGVyaGFwcyBJJiMzOTttIHRyeWluZyB0byBkZWJ1ZyBhbiBpc3N1ZSwgb3Igc2ltcGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCBhIG5ldyBNTUMgaG9zdCBkcml2ZXIgSSYjMzk7bSBsb29raW5nIGF0LiBNYXliZSBJJiMzOTttIHRyeWluZyB0byBidWlsZCBhIGN1c3RvbSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYW5kIG5lZWQgdG8ga25vdyB0aGUgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIGEgcGFydGljdWxhciBNTUMtcmVsYXRlZCBvcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogOTE1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA5MTU6XHRcdCAgSlo0NzQwLCBKWjQ3NTAsIEpaNDc3MCBhbmQgSlo0NzgwIFNvQ3MuXG4gOTE2Olx0XG4gOTE3Olx0XHQgIElmIHlvdSBoYXZlIGEgYm9hcmQgYmFzZWQgb24gc3VjaCBhIFNvQyBhbmQgd2l0aCBhIFNEL01NQyBzbG90LFxuIDkxODpcdFx0ICBzYXkgWSBvciBNIGhlcmUuXG4gOTE5Olx0XG4gOTIwOlx0Y29uZmlnIE1NQ19WVUIzMDBcbiA5MjE6XHRcdHRyaXN0YXRlIFwmIzM0O1ZVQjMwMCBVU0IgdG8gU0RJTy9TRC9NTUMgSG9zdCBDb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbiA5MjI6XHRcdGRlcGVuZHMgb24gVVNCXG4gOTIzOlx0XHRoZWxwXG4gOTI0Olx0XHQgIFRoaXMgc2VsZWN0cyBzdXBwb3J0IGZvciBFbGFuIERpZ2l0YWwgU3lzdGVtcyYjMzk7IFZVQjMwMCBjaGlwLlxuIDkyNTpcdFxuIDkyNjpcdFx0ICBUaGUgVlVCMzAwIGlzIGEgVVNCLVNESU8gSG9zdCBDb250cm9sbGVyIEludGVyZmFjZSBjaGlwXG4gOTI3Olx0XHQgIHRoYXQgZW5hYmxlcyB0aGUgaG9zdCBjb21wdXRlciB0byB1c2UgU0RJTy9TRC9NTUMgY2FyZHNcbiA5Mjg6XHRcdCAgdmlhIGEgVVNCIDIuMCBvciBVU0IgMS4xIGhvc3QuXG4gOTI5Olx0XG4gOTMwOlx0XHQgIFRoZSBWVUIzMDAgY2hpcCB3aWxsIGJlIGZvdW5kIGluIGJvdGggcGh5c2ljYWxseSBzZXBhcmF0ZVxuIDkzMTpcdFx0ICBVU0IgdG8gU0RJTy9TRC9NTUMgYWRhcHRlcnMgYW5kIGVtYmVkZGVkIG9uIHNvbWUgbW90aGVyYm9hcmRzLlxuIDkzMjpcdFxuIDkzMzpcdFx0ICBUaGUgVlVCMzAwIGNoaXAgc3VwcG9ydHMgU0QgYW5kIE1NQyBtZW1vcnkgY2FyZHMgaW4gYWRkaXRpb25cbiA5MzQ6XHRcdCAgdG8gc2luZ2xlIGFuZCBtdWx0aWZ1bmN0aW9uIFNESU8gY2FyZHMuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwMDIwCgkJCQkJCQlvdXRwdXQ6IDU0CgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgU0RJTyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSB0aGF0IGVuYWJsaW5nIGBNTUNfVlVCMzAwYCBoaW5nZXMgb24gYFVTQmAuIFRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDsgSSYjMzk7bGwgbmVlZCB0byBtYWtlIHN1cmUgYFVTQmAgaXMgY29uZmlndXJlZCBhcHByb3ByaWF0ZWx5LiBUaGUgcGF0Y2ggYWxzbyBzdWdnZXN0cyB0aGVzZSBjb25maWdzIG5lZWQgdG8gYmUgZW5hYmxlZDogYEJSQ01GTUFDYCwgYEJSQ01GTUFDX1NESU9gLCBhbmQsIG9mIGNvdXJzZSwgYE1NQ19WVUIzMDBgLgoKTm93LCBiZWZvcmUgSSBjb21taXQgdG8gZW5hYmxpbmcgYEJSQ01GTUFDYCwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBpdHMgZGVwZW5kZW5jaWVzLiBBaCwgaXQgbG9va3MgbGlrZSBpdCByZWxpZXMgb24gYENGRzgwMjExYC4gU28sIGBDRkc4MDIxMWAgaGFzIHRvIGJlIGVuYWJsZWQgdG9vLiBObyBzdXJwcmlzZXMgdGhlcmUsIGJ1dCBhbHdheXMgZ29vZCB0byBjb25maXJtLgoKTGV0JiMzOTtzIGRyaWxsIGRvd24gaW50byB0aGUgY29yZSBvZiB0aGUgcGF0Y2ggaXRzZWxmLiBUaGUgZGlmZiBtb2RpZmllcyBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBUaGlzIGZ1bmN0aW9uIGNhbGxzIGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgLCB3aGljaCBpcyBjYWxsZWQgYnkgYGJyY21mX3NkaW9fZHBjYC4gVGhlIGxhdHRlciBpbiB0dXJuIGlzIGNhbGxlZCBieSBgYnJjbWZfc2Rpb19kYXRhd29ya2VyYC4gU28gdGhlIGVudHJ5IHBvaW50IHRvIHRoZSBTRElPIGJ1cyBpcyBwcm9iYWJseSBgYnJjbWZfc2Rpb19kcGNgIG9yIGBicmNtZl9zZGlvX2RhdGF3b3JrZXJgLgoKV2FpdCwgaXNuJiMzOTt0IGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgYSAqc3RhdGljKiBmdW5jdGlvbj8gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgcmVxdWVzdHMgd2UgdXNlIG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnRzLiBUaGUgY29tcGlsZXIgd2lsbCBpbmxpbmUgc3RhdGljIGZ1bmN0aW9ucywgc28gdGhleSBkb24mIzM5O3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzLiBPa2F5LCB0aW1lIHRvIGdvIGludG8gYHNkaW8uY2AgYW5kIGh1bnQgZm9yIHRoZSBub24tc3RhdGljIGVudHJ5IHBvaW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XmJyY21mX3NkaW9fJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTY5Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTk2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMDc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMTkwLVx0XHQgICAgICB1aW50IGNoYW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyOTM2OmJyY21mX3NkaW9fYnVzX3R4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjQ1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjk4LVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMzNDI6YnJjbWZfc2Rpb192ZXJpZnltZW1vcnkoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LCB1MzIgcmFtX2FkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXHRcdFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM3Nzc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cdFx0XHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zOTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MDk5OmJyY21mX3NkaW9fd2F0Y2hkb2dfdGhyZWFkKHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDEyNT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0MjYte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjczMgoJCQkJCQkJb3V0cHV0OiA1OAoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggc3VtbWFyaXppbmcgdGhlIHByb21wdDoKCioqQW5hbHl6aW5nIGBzZGlvLmNgIGZvciBOb24tU3RhdGljIEZ1bmN0aW9ucyoqCgpSaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgYHNkaW8uY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB0aGUgbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZS4gVGhlIGZvY3VzIGhlcmUgaXMgb24gdmlzaWJpbGl0eSBhbmQgcG90ZW50aWFsIGV4dGVybmFsIGludGVyYWN0aW9uLiBTdGF0aWMgZnVuY3Rpb25zLCBieSBkZWZpbml0aW9uLCBhcmUgbGltaXRlZCBpbiBzY29wZSB0byB0aGUgZmlsZSB0aGV5JiMzOTtyZSBkZWNsYXJlZCBpbi4gSSYjMzk7bSBhc3N1bWluZyB0aGVyZSYjMzk7cyBhIHNwZWNpZmljIHJlYXNvbiBmb3IgdGhpcyBub24tc3RhdGljIGFuYWx5c2lzLiBQZXJoYXBzIEkmIzM5O20gdHJ5aW5nIHRvIGlkZW50aWZ5IHBvdGVudGlhbCBlbnRyeSBwb2ludHMsIEFQSSBmdW5jdGlvbnMsIGZ1bmN0aW9ucyB0aGF0IGNvdWxkIGJlIGNhbGxlZCBmcm9tIG90aGVyIG1vZHVsZXMgb3IgZXZlbiB0aGUga2VybmVsIGl0c2VsZi4gT3IsIG1heWJlIEkgbmVlZCB0byBjb25maXJtIHRoZSBBUEkgY29udHJhY3QgYW5kIHdoZXRoZXIgb3Igbm90IGZ1bmN0aW9ucyBoYXZlIGJlZW4gaW5hcHByb3ByaWF0ZWx5IG1hZGUgbm9uLXN0YXRpYy4gVGhlIGtleSBoZXJlIGlzIHRvIGRldGVybWluZSB3aGF0JiMzOTtzIGF2YWlsYWJsZSBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIGV4cG9zZWQuIFRoaXMgaW5pdGlhbCBzY2FuIHdpbGwgZ3VpZGUgdGhlIHJlc3Qgb2YgbXkgYW5hbHlzaXMuIEZyb20gaGVyZSBJIGNhbiBtYWtlIGEgZGVjaXNpb24gb24gbXkgbmV4dCBhY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15bYS16QS1aMC05X10mIzQzO1xcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz01OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBzZGlvZF9kcml2ZV9zdHIgc2Rpb2RfZHJ2c3RyX3RhYjJfM3YzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNDpCUkNNRl9GV19ERUYoNDMxNDMsIFwmIzM0O2JyY21mbWFjNDMxNDMtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNTpCUkNNRl9GV19ERUYoNDMyNDFCMCwgXCYjMzQ7YnJjbWZtYWM0MzI0MWIwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDY6QlJDTUZfRldfREVGKDQzMjQxQjQsIFwmIzM0O2JyY21mbWFjNDMyNDFiNC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA3OkJSQ01GX0ZXX0RFRig0MzI0MUI1LCBcJiMzNDticmNtZm1hYzQzMjQxYjUtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwODpCUkNNRl9GV19ERUYoNDMyOSwgXCYjMzQ7YnJjbWZtYWM0MzI5LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDk6QlJDTUZfRldfREVGKDQzMzAsIFwmIzM0O2JyY21mbWFjNDMzMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEwOkJSQ01GX0ZXX0RFRig0MzM0LCBcJiMzNDticmNtZm1hYzQzMzQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMTpCUkNNRl9GV19ERUYoNDMzNDAsIFwmIzM0O2JyY21mbWFjNDMzNDAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMjpCUkNNRl9GV19ERUYoNDMzNSwgXCYjMzQ7YnJjbWZtYWM0MzM1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTM6QlJDTUZfRldfREVGKDQzMzYyLCBcJiMzNDticmNtZm1hYzQzMzYyLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTQ6QlJDTUZfRldfREVGKDQzMzksIFwmIzM0O2JyY21mbWFjNDMzOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE1OkJSQ01GX0ZXX0RFRig0MzQzMEEwLCBcJiMzNDticmNtZm1hYzQzNDMwYTAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYxNi0vKiBOb3RlIHRoZSBuYW1lcyBhcmUgbm90IHBvc3RmaXhlZCB3aXRoIGExIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNzpCUkNNRl9GV19DTE1fREVGKDQzNDMwQTEsIFwmIzM0O2JyY21mbWFjNDM0MzAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxODpCUkNNRl9GV19ERUYoNDM0MzBCMCwgXCYjMzQ7YnJjbWZtYWM0MzQzMGIwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTk6QlJDTUZfRldfQ0xNX0RFRig0MzQzOSwgXCYjMzQ7YnJjbWZtYWM0MzQzOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIwOkJSQ01GX0ZXX0NMTV9ERUYoNDM0NTUsIFwmIzM0O2JyY21mbWFjNDM0NTUtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMTpCUkNNRl9GV19ERUYoNDM0NTYsIFwmIzM0O2JyY21mbWFjNDM0NTYtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMjpCUkNNRl9GV19DTE1fREVGKDQzNTQsIFwmIzM0O2JyY21mbWFjNDM1NC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIzOkJSQ01GX0ZXX0NMTV9ERUYoNDM1NiwgXCYjMzQ7YnJjbWZtYWM0MzU2LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjQ6QlJDTUZfRldfREVGKDQzNTksIFwmIzM0O2JyY21mbWFjNDM1OS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI1OkJSQ01GX0ZXX0NMTV9ERUYoNDM3MywgXCYjMzQ7YnJjbWZtYWM0MzczLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjY6QlJDTUZfRldfQ0xNX0RFRig0MzAxMiwgXCYjMzQ7YnJjbWZtYWM0MzAxMi1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI3OkJSQ01GX0ZXX0NMTV9ERUYoNDM3NTIsIFwmIzM0O2JyY21mbWFjNDM3NTItc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjI5LS8qIGZpcm13YXJlIGNvbmZpZyBmaWxlcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzA6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcJiMzNDticmNtZm1hYyotc2Rpby4qLnR4dFwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjMyLS8qIHBlci1ib2FyZCBmaXJtd2FyZSBiaW5hcmllcyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzM6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcJiMzNDticmNtZm1hYyotc2Rpby4qLmJpblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTY5Nz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTk2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMDc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMTkwLVx0XHQgICAgICB1aW50IGNoYW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMjY2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyOTM2OmJyY21mX3NkaW9fYnVzX3R4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjQ1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjk4LVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMzNDI6YnJjbWZfc2Rpb192ZXJpZnltZW1vcnkoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LCB1MzIgcmFtX2FkZHIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXHRcdFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM3Nzc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cdFx0XHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zOTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MDk5OmJyY21mX3NkaW9fd2F0Y2hkb2dfdGhyZWFkKHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDEyNT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0MjYte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njg1NgoJCQkJCQkJb3V0cHV0OiA1OAoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipGaW5kaW5nIE5vbi1TdGF0aWMgRnVuY3Rpb25zIGluIHNkaW8uYyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gemVybyBpbiBvbiB0aGUgKm5vbi1zdGF0aWMqIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGBzZGlvLmNgIGZpbGUuIFRoaXMgbWVhbnMgSSYjMzk7bSBsb29raW5nIGZvciB0aGUgZnVuY3Rpb25zIHRoYXQgYXJlIGRlY2xhcmVkIHdpdGhvdXQgdGhlIGBzdGF0aWNgIGtleXdvcmQuIE15IGdvYWwgaGVyZSwgSSBhc3N1bWUsIGlzIHRvIGlkZW50aWZ5IGZ1bmN0aW9ucyB0aGF0IGFyZSAqZXh0ZXJuYWxseSB2aXNpYmxlKiBvciBwb3RlbnRpYWxseSBjYWxsZWQgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLCBtYXliZSBldmVuIGJ5IG90aGVyIG1vZHVsZXMgb3IgdGhlIGtlcm5lbCBpdHNlbGYuIEkgbmVlZCB0byBxdWlja2x5IGFuZCBlZmZpY2llbnRseSBsb2NhdGUgdGhlc2UgZW50cnkgcG9pbnRzLiBJJiMzOTtsbCBsaWtlbHkgdXNlIHNvbWUgZm9ybSBvZiB0ZXh0IHNlYXJjaCwgcHJvYmFibHkgd2l0aGluIG15IElERSBvciBhIGNvbW1hbmQtbGluZSB1dGlsaXR5IGxpa2UgYGdyZXBgIG9yIGBmaW5kYC4gSeKAmWxsIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyB0aGF0IG1pZ2h0IGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvciBpbmNsdWRlIGZ1bmN0aW9ucy4gSSBtaWdodCBldmVuIGNoZWNrIGZvciBleHRlcm4gZGVjbGFyYXRpb25zIHRvIG1ha2UgY2VydGFpbiBJIGNhcHR1cmUgYWxsIHBvc3NpYmxlIGV4dGVybmFsIHJlZmVyZW5jZXMuIFRoaXMgaXMgYSBjb21tb24gZmlyc3Qgc3RlcCB3aGVuIHJldmVyc2UgZW5naW5lZXJpbmcgb3IgYW5hbHl6aW5nIGEgbW9kdWxlJiMzOTtzIHB1YmxpYyBpbnRlcmZhY2UsIG9yIHByZXBhcmluZyBpdCBmb3IgcmVmYWN0b3JpbmcuIEkga25vdyBob3cgdG8gZG8gdGhpcywgc28gbGV0JiMzOTtzIGdldCBpdCBkb25lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteW2EtekEtWjAtOV9dJiM0MztcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NTk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb2RfZHJpdmVfc3RyIHNkaW9kX2RydnN0cl90YWIyXzN2M1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDQ6QlJDTUZfRldfREVGKDQzMTQzLCBcJiMzNDticmNtZm1hYzQzMTQzLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDU6QlJDTUZfRldfREVGKDQzMjQxQjAsIFwmIzM0O2JyY21mbWFjNDMyNDFiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA2OkJSQ01GX0ZXX0RFRig0MzI0MUI0LCBcJiMzNDticmNtZm1hYzQzMjQxYjQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNzpCUkNNRl9GV19ERUYoNDMyNDFCNSwgXCYjMzQ7YnJjbWZtYWM0MzI0MWI1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDg6QlJDTUZfRldfREVGKDQzMjksIFwmIzM0O2JyY21mbWFjNDMyOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA5OkJSQ01GX0ZXX0RFRig0MzMwLCBcJiMzNDticmNtZm1hYzQzMzAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMDpCUkNNRl9GV19ERUYoNDMzNCwgXCYjMzQ7YnJjbWZtYWM0MzM0LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTE6QlJDTUZfRldfREVGKDQzMzQwLCBcJiMzNDticmNtZm1hYzQzMzQwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTI6QlJDTUZfRldfREVGKDQzMzUsIFwmIzM0O2JyY21mbWFjNDMzNS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEzOkJSQ01GX0ZXX0RFRig0MzM2MiwgXCYjMzQ7YnJjbWZtYWM0MzM2Mi1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE0OkJSQ01GX0ZXX0RFRig0MzM5LCBcJiMzNDticmNtZm1hYzQzMzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNTpCUkNNRl9GV19ERUYoNDM0MzBBMCwgXCYjMzQ7YnJjbWZtYWM0MzQzMGEwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MTYtLyogTm90ZSB0aGUgbmFtZXMgYXJlIG5vdCBwb3N0Zml4ZWQgd2l0aCBhMSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcJiMzNDticmNtZm1hYzQzNDMwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFwmIzM0O2JyY21mbWFjNDM0MzBiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFwmIzM0O2JyY21mbWFjNDM0Mzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcJiMzNDticmNtZm1hYzQzNDU1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcJiMzNDticmNtZm1hYzQzNDU2LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcJiMzNDticmNtZm1hYzQzNTQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFwmIzM0O2JyY21mbWFjNDM1Ni1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcJiMzNDticmNtZm1hYzQzNTktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFwmIzM0O2JyY21mbWFjNDM3My1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFwmIzM0O2JyY21mbWFjNDMwMTItc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcJiMzNDticmNtZm1hYzQzNzUyLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYyOS0vKiBmaXJtd2FyZSBjb25maWcgZmlsZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMwOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi50eHRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMzOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi5iaW5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2OTg6YnJjbWZfc2Rpb19rc29fY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBib29sIG9uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9OTY0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE3NTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMDc4OmJyY21mX3NkaW9fd2FpdF9ldmVudF93YWtldXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMTg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cdFx0ICAgICAgdWludCBjaGFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjI2ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI5Mzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMyNDY6YnJjbWZfc2Rpb19idXNfcnhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyOTY9c3RhdGljIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cdFx0XHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMzQzLVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM3Nzg6YnJjbWZfc2Rpb19kcml2ZXN0cmVuZ3RoaW5pdChzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXHRcdFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDEyNjpicmNtZl9zZGlvX3dhdGNoZG9nKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ0MjQ9c3RhdGljIHN0cnVjdCBicmNtZl9md19yZXF1ZXN0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA5OTYKCQkJCQkJCW91dHB1dDogNTgKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqRGVsdmluZyBpbnRvIFN5bWJvbCBWaXNpYmlsaXR5KioKCk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHNvbWV0aGluZyBzcGVjaWZpYywgbGlrZWx5IHJlbGF0ZWQgdG8gaG93IHN5bWJvbHMgYXJlIGV4cG9zZWQgaW4gdGhlIGtlcm5lbCBvciBhIHNwZWNpZmljIG1vZHVsZS4gVGhlIHRlcm0gYEVYUE9SVF9TWU1CT0xgIGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhcyBhIHN0cm9uZyBjYW5kaWRhdGUuIEl0IHNjcmVhbXMgJiMzNDtwdWJsaWMgaW50ZXJmYWNlJiMzNDsgaW4gdGhlIGtlcm5lbCBzcGFjZS4gSSYjMzk7bSB0aGlua2luZyBJJiMzOTtsbCBzdGFydCB3aXRoIGEgc2VhcmNoIGZvciB0aGF0IG1hY3JvLCBiZWNhdXNlIGl0JiMzOTtzIGEgZGlyZWN0IGluZGljYXRvciBvZiBmdW5jdGlvbnMgaW50ZW5kZWQgZm9yIHVzZSBieSBvdGhlciBtb2R1bGVzLiBJdCYjMzk7cyB0aGUgbW9zdCBleHBsaWNpdCB3YXkgdG8gbWFrZSBhIGZ1bmN0aW9uIHZpc2libGUgZXh0ZXJuYWxseS4KCkhvd2V2ZXIsIG1heWJlIEkgc2hvdWxkIGJyb2FkZW4gdGhlIHNlYXJjaCBhIGxpdHRsZSwganVzdCBpbiBjYXNlIGBFWFBPUlRfU1lNQk9MYCBpc24mIzM5O3QgdXNlZCBldmVyeXdoZXJlIG9yIHRoZXJlIGFyZSBhbHRlcm5hdGl2ZSBtZWNoYW5pc21zLiBJIHNob3VsZCBhbHNvIGNvbnNpZGVyIGEgc2VhcmNoIGZvciBhbGwgbm9uLXN0YXRpYyBmdW5jdGlvbnMsIEkgbmVlZCB0byBpZGVudGlmeSB3aGljaCBmdW5jdGlvbnMgYXJlIHZpc2libGUgb3V0c2lkZSB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0LiBUaGF0IHdheSwgSSBjYW4gcG90ZW50aWFsbHkgY2F0Y2ggaW5zdGFuY2VzIHdoZXJlIGEgZnVuY3Rpb24gaXMgaW1wbGljaXRseSBwdWJsaWMsIGV2ZW4gd2l0aG91dCBhbiBleHBsaWNpdCBgRVhQT1JUX1NZTUJPTGAgZGVjbGFyYXRpb24uIFRoaW5raW5nIGxpa2UgYSBnb29kIGNvZGUgYXJjaGVvbG9naXN0LCBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIGFuZ2xlcy4gTGV0JiMzOTtzIHNlZSB3aGF0IHR1cm5zIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteW2EtekEtWjAtOV9dJiM0MztcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NTk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb2RfZHJpdmVfc3RyIHNkaW9kX2RydnN0cl90YWIyXzN2M1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDQ6QlJDTUZfRldfREVGKDQzMTQzLCBcJiMzNDticmNtZm1hYzQzMTQzLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDU6QlJDTUZfRldfREVGKDQzMjQxQjAsIFwmIzM0O2JyY21mbWFjNDMyNDFiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA2OkJSQ01GX0ZXX0RFRig0MzI0MUI0LCBcJiMzNDticmNtZm1hYzQzMjQxYjQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNzpCUkNNRl9GV19ERUYoNDMyNDFCNSwgXCYjMzQ7YnJjbWZtYWM0MzI0MWI1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDg6QlJDTUZfRldfREVGKDQzMjksIFwmIzM0O2JyY21mbWFjNDMyOS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA5OkJSQ01GX0ZXX0RFRig0MzMwLCBcJiMzNDticmNtZm1hYzQzMzAtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMDpCUkNNRl9GV19ERUYoNDMzNCwgXCYjMzQ7YnJjbWZtYWM0MzM0LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTE6QlJDTUZfRldfREVGKDQzMzQwLCBcJiMzNDticmNtZm1hYzQzMzQwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTI6QlJDTUZfRldfREVGKDQzMzUsIFwmIzM0O2JyY21mbWFjNDMzNS1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEzOkJSQ01GX0ZXX0RFRig0MzM2MiwgXCYjMzQ7YnJjbWZtYWM0MzM2Mi1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE0OkJSQ01GX0ZXX0RFRig0MzM5LCBcJiMzNDticmNtZm1hYzQzMzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNTpCUkNNRl9GV19ERUYoNDM0MzBBMCwgXCYjMzQ7YnJjbWZtYWM0MzQzMGEwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MTYtLyogTm90ZSB0aGUgbmFtZXMgYXJlIG5vdCBwb3N0Zml4ZWQgd2l0aCBhMSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcJiMzNDticmNtZm1hYzQzNDMwLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFwmIzM0O2JyY21mbWFjNDM0MzBiMC1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFwmIzM0O2JyY21mbWFjNDM0Mzktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcJiMzNDticmNtZm1hYzQzNDU1LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcJiMzNDticmNtZm1hYzQzNDU2LXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcJiMzNDticmNtZm1hYzQzNTQtc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFwmIzM0O2JyY21mbWFjNDM1Ni1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcJiMzNDticmNtZm1hYzQzNTktc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFwmIzM0O2JyY21mbWFjNDM3My1zZGlvXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFwmIzM0O2JyY21mbWFjNDMwMTItc2Rpb1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcJiMzNDticmNtZm1hYzQzNzUyLXNkaW9cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYyOS0vKiBmaXJtd2FyZSBjb25maWcgZmlsZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMwOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi50eHRcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMzOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXCYjMzQ7YnJjbWZtYWMqLXNkaW8uKi5iaW5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2OTg6YnJjbWZfc2Rpb19rc29fY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBib29sIG9uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9OTY0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE3NTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMDc4OmJyY21mX3NkaW9fd2FpdF9ldmVudF93YWtldXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMTg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cdFx0ICAgICAgdWludCBjaGFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjI2ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI5Mzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjMyNDY6YnJjbWZfc2Rpb19idXNfcnhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyOTY9c3RhdGljIGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cdFx0XHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMzQzLVx0XHRcdHU4ICpyYW1fZGF0YSwgdWludCByYW1fc3opXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM3Nzg6YnJjbWZfc2Rpb19kcml2ZXN0cmVuZ3RoaW5pdChzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXHRcdFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDEyNjpicmNtZl9zZGlvX3dhdGNoZG9nKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ0MjQ9c3RhdGljIHN0cnVjdCBicmNtZl9md19yZXF1ZXN0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjUxMzUKCQkJCQkJCW91dHB1dDogNTQKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgQlJDTUYgU0RJTyBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgY3JpdGljYWwgZW50cnkgcG9pbnRzIGZvciB0aGUgQnJvYWRjb20gU0RJTyBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIGVpdGhlciBgYnJjbWZfc2Rpb19wcm9iZWAgb3IgYGJyY21mX3NkaW9fcmVnaXN0ZXJgLiBJJiMzOTttIGxlYW5pbmcgdGhhdCB3YXkgYmVjYXVzZSBgYnJjbWZfc2Rpb19wcm9iZWAgaXMgb2Z0ZW4gdGhlIGZpcnN0IGZ1bmN0aW9uIHRoYXQmIzM5O3MgY2FsbGVkIHdoZW4gdGhlIFNESU8gZGV2aWNlIGlzIHJlY29nbml6ZWQgYnkgdGhlIHN5c3RlbSBhbmQgdGhlbiBJIHRoaW5rIHRoYXQgYGJyY21mX3NkaW9fcmVnaXN0ZXJgIGlzIHJlc3BvbnNpYmxlIGZvciByZWdpc3RlcmluZyB0aGUgZHJpdmVyIHdpdGggdGhlIFNESU8gYnVzLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IGNvbmZpcm1pbmcgd2hpY2ggb2YgdGhlc2UgaXMgdGhlIHRydWUgc3RhcnRpbmcgcG9pbnQsIGFuZCB0aGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZHJpdmVyIGlzIGhvb2tlZCBpbnRvIHRoZSBTRElPIHN1YnN5c3RlbS4gVGhlIGdvYWwgaXMgdG8gcmFwaWRseSBkZXRlcm1pbmUgdGhlIGNvbnRyb2wgcGF0aCBmb3IgYnJpbmctdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00NDI1PWJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDUwOmludCBicmNtZl9zZGlvX3Byb2JlKHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQ1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDg2LVx0LyogYXR0ZW1wdCB0byBhdHRhY2ggdG8gdGhlIGRvbmdsZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDg3Olx0cmV0ID0gYnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goYnVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQ4OC1cdGlmIChyZXQgXHUwMDNjIDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQ4OTpcdFx0YnJjbWZfZXJyKFwmIzM0O2JyY21mX3NkaW9fcHJvYmVfYXR0YWNoIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0OTAtXHRcdGdvdG8gZmFpbDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU5NzAKCQkJCQkJCW91dHB1dDogNTQKCQkJCQkJCXRob3VnaHRzOiAzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipDb25zaWRlcmluZyBFbnRyeSBhbmQgRXhpdCBQb2ludHMgZm9yIHRoZSBCUkNNRiBTRElPIERyaXZlcioqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLCB3aGVuIGl0IGNvbWVzIHRvIHRoZSBCUkNNRiBTRElPIGRyaXZlciwgdGhlIGBicmNtZl9zZGlvX3Byb2JlYCBmdW5jdGlvbiBpcyBkZWZpbml0ZWx5IGEgZ29vZCBjYW5kaWRhdGUgZm9yIHRoZSBub24tc3RhdGljIGVudHJ5IHBvaW50LiBJdCYjMzk7cyB0aGUgbmF0dXJhbCBwbGFjZSB3aGVyZSB0aGUgZHJpdmVyIGlzIGluaXRpYWxpemVkIHdoZW4gYSBkZXZpY2UgaXMgZGV0ZWN0ZWQsIHJpZ2h0PyBUaGF0IG1ha2VzIHRoZSBtb3N0IHNlbnNlLgoKQW5kLCBpZiB3ZSYjMzk7cmUgbG9va2luZyBhdCBhIGNvbXBsZW1lbnRhcnkgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBvcHBvc2l0ZSBzY2VuYXJpbywgdGhlIHVuLWluaXRpYWxpemF0aW9uIHByb2Nlc3MsIHRoZSBgYnJjbWZfc2Rpb19yZW1vdmVgIGZ1bmN0aW9uIHNlZW1zIGxpa2UgdGhlIGxvZ2ljYWwgY2hvaWNlIGZvciB0aGUgZXhpdCBwb2ludC4gSXQgd291bGQgbWFrZSBzZW5zZSBmb3IgdGhhdCB0byBjbGVhbiB1cCByZXNvdXJjZXMsIHVucmVnaXN0ZXIgdGhpbmdzLCBhbmQgaGFuZGxlIHRoZSBkZXZpY2UgcmVtb3ZhbCBzbW9vdGhseS4gVGhpcyB3aG9sZSBkcml2ZXIgc2V0dXAgbG9va3Mgd2VsbC1vcmdhbml6ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3NkaW9fcmVtb3ZlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ0NTA9aW50IGJyY21mX3NkaW9fcHJvYmUoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU1OC1mYWlsOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NTU5Olx0YnJjbWZfc2Rpb19yZW1vdmUoYnVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU2MC1cdHNkaW9kZXYtXHUwMDNlYnVzID0gTlVMTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQ1NjQ9dm9pZCBicmNtZl9zZGlvX2NhbmNlbF9kYXRhd29yayhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU3MC0vKiBEZXRhY2ggYW5kIGZyZWUgZXZlcnl0aGluZyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NTcxOnZvaWQgYnJjbWZfc2Rpb19yZW1vdmUoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU3Mi17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDEwOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2NjE4CgkJCQkJCQlvdXRwdXQ6IDU0CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkluaXRpYWwgSW5xdWlyeTogQlJDTUZfU0RJT19JU1IgQ29uc2lkZXJhdGlvbioqCgpBbHJpZ2h0LCBzbyB0aGUgaW1tZWRpYXRlIHRob3VnaHQsIGFuZCBsZXQmIzM5O3MgZmFjZSBpdCwgdGhlICpvbmx5KiB0aG91Z2h0IHJpZ2h0IG5vdywgaXM6ICoqYGJyY21mX3NkaW9faXNyYCoqLiBUaGF0JiMzOTtzIHdoZXJlIG15IGZvY3VzIGhhcyB0byBiZS4gU29tZXRoaW5nIHRyaWdnZXJlZCB0aGlzIGxpbmUgb2YgdGhpbmtpbmcuIEl0JiMzOTtzIHVzdWFsbHkgdGhlIHNpZ24gb2YgYSBzcGVjaWZpYyBpbnRlcnJ1cHQgY29udGV4dCB3aXRoaW4gQnJvYWRjb20gU0RJTyBXaS1GaSBkcml2ZXJzLiBJJiMzOTttIGltbWVkaWF0ZWx5IHRyeWluZyB0byByZWNhbGwgKndoeSogdGhpcyBmdW5jdGlvbiBoYXMgY29tZSB0byBtaW5kLiBJcyBpdCBhbiBpc3N1ZSBJJiMzOTt2ZSBzZWVuIHJlY2VudGx5PyBBIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBib3R0bGVuZWNrPyBBIGRlYnVnZ2luZyBzY2VuYXJpbyBJIHdhcyBpbj8gT3IgYW0gSSBqdXN0IHJldmlld2luZyBjb2RlIGFuZCBsb29raW5nIGZvciBhcmVhcyBvZiBwb3NzaWJsZSBpbXByb3ZlbWVudD8gUmVnYXJkbGVzcywgdGhlIGZ1bmN0aW9uIGl0c2VsZiBpcyB0aGUgZm9jYWwgcG9pbnQuIEl04oCZcyB0aGUgZW50cnkgcG9pbnQgdGhhdCBoYW5kbGVzIFNESU8gaW50ZXJydXB0cyB3aXRoaW4gdGhlIEJyb2FkY29tIFdpLUZpIGRyaXZlciwgc28gYW55dGhpbmcgcmVsYXRlZCB0byBsYXRlbmN5LCBkYXRhIGNvcnJ1cHRpb24sIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3VyIHJlbGF0ZWQgdG8gdGhlIFNESU8gaW50ZXJmYWNlIGlzIGdvaW5nIHRvIGludm9sdmUgdW5kZXJzdGFuZGluZyB0aGF0IGZ1bmN0aW9uLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dCBvZiB3aHkgSeKAmW0gdGhpbmtpbmcgb2YgaXQgcmlnaHQgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9zZGlvX2lzciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNjM4PXZvaWQgYnJjbWZfc2Rpb190cmlnZ2VyX2RwYyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzY0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzY0Njp2b2lkIGJyY21mX3NkaW9faXNyKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgaW5faXNyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNjQ3LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTA6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjcxMjIKCQkJCQkJCW91dHB1dDogMTc4CgkJCQkJCQl0aG91Z2h0czogNjQwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBCUkNNRk1BQyBTRElPIERyaXZlciBDb2RlKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgYnJjbWZfc2Rpb19pc3JgIGxvb2tzIGxpa2UgYSBrZXkgZW50cnkgcG9pbnQsIHdoaWNoIEkgY29uZmlybWVkLiBUaGVuIEkgdHJhY2VkIGl0cyBleGVjdXRpb24gcGF0aCB0byBgYnJjbWZfc2Rpb19kcGNgLiBGcm9tIHRoZXJlLCBJIHNhdyBgYnJjbWZfc2Rpb19kcGNgIGlzIGludm9rZWQgYnkgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAsIGFuZCBJIHZlcmlmaWVkIGl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLiBOb3csIEkgbmVlZGVkIHRvIGNoZWNrIHdoYXQgbm9uLXN0YXRpYyBmdW5jdGlvbnMgY291bGQgdHJpZ2dlciB0aGF0IHN0YXRpYyB3b3JrZXIuIFRoYXQgbGVkIG1lIHRvIGBicmNtZl9zZGlvX3RyaWdnZXJfZHBjYCwgYW5kIHllcywgdGhhdCYjMzk7cyBhIGRpcmVjdCB0cmlnZ2VyLiBDb25zaWRlcmluZyBhbGwgb2YgdGhpcywgYGJyY21mX3NkaW9fcHJvYmVgLCBgYnJjbWZfc2Rpb19pc3JgIGFuZCBgYnJjbWZfc2Rpb190cmlnZ2VyX2RwY2AgYXJlIHRoZSBjcml0aWNhbCBzeW1ib2xzIHRvIGZvY3VzIG9uIGhlcmUuCgpTbywgdG8gc3VtbWFyaXplIHRob3NlIGtleSBlbnRyeSBwb2ludHM6IGBicmNtZl9zZGlvX3Byb2JlYCwgYGJyY21mX3NkaW9faXNyYCwgYW5kIGBicmNtZl9zZGlvX3RyaWdnZXJfZHBjYCBhcmUgbXkgbWFpbiB0YXJnZXRzLiBOb3cgbGV0JiMzOTtzIGRldGVybWluZSB0aGUgbmVjZXNzYXJ5IGVuYWJsZSBjb25maWd1cmF0aW9ucy4gSSYjMzk7bSB0aGlua2luZywgYmFzZWQgb24gdGhpcyBxdWljayBvdmVydmlldzogYEJSQ01GTUFDYCwgYEJSQ01GTUFDX1NESU9gLCBhbmQgYENGRzgwMjExYCBsb29rIHJlbGV2YW50IGZvciB0aGUgbW9kdWxlLCBhbmQgcG9zc2libHkgYE1NQ19WVUIzMDBgIGJhc2VkIG9uIFNESU8gaW50ZXJhY3Rpb25zLgoKSG9sZCBvbiBhIG1vbWVudCwgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24mIzM5O3QgbWlzcyBzb21ldGhpbmcuIEkga25vdyBgQlJDTUZNQUNfU0RJT2AgZGVwZW5kcyBvbiBgTU1DYCwgc28gYE1NQ2AgbmVlZHMgdG8gYmUgZW5hYmxlZC4gTGV0JiMzOTtzIGFkZCB0aGF0IHRvIGBFbmFibGVDb25maWdzYCBqdXN0IHRvIGJlIHNhZmUuIEFjdHVhbGx5LCBgTU1DX1ZVQjMwMGAgZGVwZW5kcyBvbiBVU0IuIFRoZW4sIEkgbmVlZCB0byBhZGQgYFVTQmAgYXMgd2VsbC4gVGhhdCBpcyBhbGwuCgpPa2F5LCBsZXQmIzM5O3MgZG8gYSBxdWljayBkb3VibGUtY2hlY2sgb24gYEJSQ01GTUFDX1NESU9gJiMzOTtzIGRlcGVuZGVuY2llcy4gWXVwLCBpdCBleHBsaWNpdGx5IGRlcGVuZHMgb24gYE1NQ2AuCgpOb3csIGxldCYjMzk7cyBnZXQgYmFjayB0byB0aGlzIHBhdGNoLiBBaCwgdGhpcyBpcyBhIG1lbW9yeSBsZWFrIGZpeCBpbiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgLiBMb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIFRoZSBgZ290byBkb25lYCB3YXMgYnlwYXNzaW5nIHRoZSBgdmZyZWUoYnVmKWAgY2FsbCwgbGVhZGluZyB0byB0aGUgbGVhay4gVGhlIGZpeCBleHBsaWNpdGx5IG51bGxzIGBidWZgIGJlZm9yZSB0aGF0IGB2ZnJlZWAgY2FsbCwgYWRkcmVzc2luZyB0aGUgaXNzdWUuIExvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gbWUuCgpPa2F5LCBhbGwgdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGhhcyBiZWVuIGNvbGxlY3RlZC4gSSBhbSByZWFkeSB0byBgc2V0LXJlc3VsdHNgIHdpdGggdGhlIGZpbmRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxMDoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJDTUZNQUMmIzM0OywKICAgICYjMzQ7QlJDTUZNQUNfU0RJTyYjMzQ7LAogICAgJiMzNDtNTUNfVlVCMzAwJiMzNDssCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01NQyYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9zZGlvX3Byb2JlJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9faXNyJiMzNDssCiAgICAmIzM0O2JyY21mX3NkaW9fdHJpZ2dlcl9kcGMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciYjMzk7cyBTRElPIGludGVyZmFjZS4gVGhlIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGJ5IGVtdWxhdGluZyB0aGUgVlVCMzAwIFNESU8tdG8tVVNCIGJyaWRnZSBjb250cm9sbGVyLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZnVuY3Rpb25hbCBjb2RlIGluIHRoZSBTRElPIGNvbnRyb2wgZnJhbWUgcmVhZCBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19TRElPJiMzNDssCiAgICAmIzM0O01NQ19WVUIzMDAmIzM0OywKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TU1DJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3NkaW9fcHJvYmUmIzM0OywKICAgICYjMzQ7YnJjbWZfc2Rpb19pc3ImIzM0OywKICAgICYjMzQ7YnJjbWZfc2Rpb190cmlnZ2VyX2RwYyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyJiMzOTtzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowODo1OS43NzAzMTgzMDdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjQzMDMzNjczNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1NESU9cIixcbiAgICBcIk1NQ19WVUIzMDBcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNTUNcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3NkaW9fcHJvYmVcIixcbiAgICBcImJyY21mX3NkaW9faXNyXCIsXG4gICAgXCJicmNtZl9zZGlvX3RyaWdnZXJfZHBjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlcidzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA4OjU5Ljc3MDMyNDAwN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAwMzgyMjgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMGNlY2M5Y2Y4NGQ5NGQ2NGUwODMyMTYwZWMwMmYzMzY3ZDA2NjA4NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDEwOjA4OjU4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXFxuaW5kZXggOWY3ZWQxZDI5M2EwNi4uMzgxODAxYWYzYWM5OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xcbkBAIC0xODI3LDE3ICsxODI3LDE4IEBAIGJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuIFxcdGlmIChidXMtXFx1MDAzZXJ4Y3RsKSB7XFxuIFxcdFxcdGJyY21mX2VycihcXFwibGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cXFxcblxcXCIpO1xcbiBcXHRcXHRzcGluX3VubG9ja19iaChcXHUwMDI2YnVzLVxcdTAwM2VyeGN0bF9sb2NrKTtcXG4tXFx0XFx0dmZyZWUoYnVmKTtcXG4gXFx0XFx0Z290byBkb25lO1xcbiBcXHR9XFxuIFxcdGJ1cy1cXHUwMDNlcnhjdGwgPSBidWYgKyBkb2ZmO1xcbiBcXHRidXMtXFx1MDAzZXJ4Y3RsX29yaWcgPSBidWY7XFxuIFxcdGJ1cy1cXHUwMDNlcnhsZW4gPSBsZW4gLSBkb2ZmO1xcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2YnVzLVxcdTAwM2VyeGN0bF9sb2NrKTtcXG4rXFx0YnVmID0gTlVMTDtcXG4gXFxuIGRvbmU6XFxuIFxcdC8qIEF3YWtlIGFueSB3YWl0ZXJzICovXFxuIFxcdGJyY21mX3NkaW9fZGNtZF9yZXNwX3dha2UoYnVzKTtcXG4rXFx0dmZyZWUoYnVmKTtcXG4gfVxcbiBcXG4gLyogUGFkIHJlYWQgdG8gYmxvY2tzaXplIGZvciBlZmZpY2llbmN5ICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjAwLjE3MTYzMTk5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTYzOTAyMDQzODkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJSQ01GTUFDXCIsXG4gICAgXCJCUkNNRk1BQ19TRElPXCIsXG4gICAgXCJNTUNfVlVCMzAwXCIsXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTU1DXCIsXG4gICAgXCJVU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicmNtZl9zZGlvX3Byb2JlXCIsXG4gICAgXCJicmNtZl9zZGlvX2lzclwiLFxuICAgIFwiYnJjbWZfc2Rpb190cmlnZ2VyX2RwY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIncyBTRElPIGludGVyZmFjZS4gVGhlIGRyaXZlciBjYW4gYmUgcHJvYmVkIGFuZCBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGJ5IGVtdWxhdGluZyB0aGUgVlVCMzAwIFNESU8tdG8tVVNCIGJyaWRnZSBjb250cm9sbGVyLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZnVuY3Rpb25hbCBjb2RlIGluIHRoZSBTRElPIGNvbnRyb2wgZnJhbWUgcmVhZCBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwY2VjYzljZjg0ZDk0ZDY0ZTA4MzIxNjBlYzAyZjMzNjdkMDY2MDg2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxMDowODo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXG5pbmRleCA5ZjdlZDFkMjkzYTA2Li4zODE4MDFhZjNhYzk4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY1xuQEAgLTE4MjcsMTcgKzE4MjcsMTggQEAgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcbiBcdGlmIChidXMtXHUwMDNlcnhjdGwpIHtcbiBcdFx0YnJjbWZfZXJyKFwibGFzdCBjb250cm9sIGZyYW1lIGlzIGJlaW5nIHByb2Nlc3NlZC5cXG5cIik7XG4gXHRcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmJ1cy1cdTAwM2VyeGN0bF9sb2NrKTtcbi1cdFx0dmZyZWUoYnVmKTtcbiBcdFx0Z290byBkb25lO1xuIFx0fVxuIFx0YnVzLVx1MDAzZXJ4Y3RsID0gYnVmICsgZG9mZjtcbiBcdGJ1cy1cdTAwM2VyeGN0bF9vcmlnID0gYnVmO1xuIFx0YnVzLVx1MDAzZXJ4bGVuID0gbGVuIC0gZG9mZjtcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNmJ1cy1cdTAwM2VyeGN0bF9sb2NrKTtcbitcdGJ1ZiA9IE5VTEw7XG4gXG4gZG9uZTpcbiBcdC8qIEF3YWtlIGFueSB3YWl0ZXJzICovXG4gXHRicmNtZl9zZGlvX2RjbWRfcmVzcF93YWtlKGJ1cyk7XG4rXHR2ZnJlZShidWYpO1xuIH1cbiBcbiAvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjAwLjE3MTYzMzU1OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0MDU4Njg5ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCdzIFJlYWNoYWJpbGl0eSBhbmQgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uY2AuIEl0J3MgYSBtZW1vcnkgbWFuYWdlbWVudCBmaXgsIG1vdmluZyBgdmZyZWUoYnVmKWAgYW5kIHNldHRpbmcgYGJ1ZiA9IE5VTExgIHRvIGF2b2lkIGEgcG90ZW50aWFsIGRvdWJsZSBmcmVlIG9yIGxlYWsuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSB0cmlnZ2VyZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYW5kIGlzIGl0IGV2ZW4gd29ydGggZnV6emluZz9cblxuVGhpcyBpcyBhIEJyb2FkY29tIDgwMi4xMSBTRElPIGRyaXZlciAoYGJyY21mbWFjL3NkaW8uY2ApLiBTRElPIGlzIHRoZSBrZXkgaGVyZS4gQ2FuIHdlIGVtdWxhdGUgb3IgZnV6eiBTRElPIGRldmljZXMgd2l0aGluIFFFTVU/IEdlbmVyYWxseSwgU0RJTyBpcyB0cmlja3kuIEl0J3Mgbm90IGFzIGVhc2lseSBmdXp6YWJsZSBhcyBzb21ldGhpbmcgd2l0aCBicm9hZGVyIHN5emthbGxlciBzdXBwb3J0LiBJIHdvbmRlciBpZiB0aGVyZSBhcmUgYW55IGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbHMuLi5Ob3BlLiBNYXliZSBpdCBjYW4gYmUgZnV6emVkIHZpYSBzb21lIG90aGVyIG1lYW5zP1xuXG5MZXQncyBzZWUgaWYgYGJyY21mbWFjYCBldmVuIGZpdHMgdGhlIGNyaXRlcmlhIGZvciBiZWluZyB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIGl0J3Mgbm90IGEgZHJpdmVyIHRoYXQgKnJlcXVpcmVzKiBzcGVjaWFsaXplZCBoYXJkd2FyZS4gTGV0J3Mgc2VlLi4uIHRoZSBwcm9tcHQgc3RhdGVzIHRvIGF2b2lkIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIFNtYXJ0TklDcywgb3IgR1BVcy4gSXMgdGhpcyBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIgdGhhdCByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZT8gSXQgaXMgYSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuLi5cblxuQWgsIHRoaXMgaXMgYSBGdWxsTUFDIGRyaXZlciwgbWVhbmluZyB0aGUgTUFDIGlzIGltcGxlbWVudGVkIG9uIHRoZSBkZXZpY2UgaXRzZWxmLiBJdCBjb21tdW5pY2F0ZXMgd2l0aCBmaXJtd2FyZSBvbiB0aGUgQnJvYWRjb20gY2hpcC4gVGhhdCdzIGEgaHVyZGxlLCBpZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LiBXaXRob3V0IHRoZSBCcm9hZGNvbSBjaGlwIGl0c2VsZiwgb3IgYSBnb29kIFFFTVUgZW11bGF0aW9uIG9mIGl0LCB0aGUgZHJpdmVyIGxpa2VseSB3b24ndCBldmVuIHByb2JlIHN1Y2Nlc3NmdWxseSwgYW5kIGRlZmluaXRlbHkgd29uJ3QgcmVhY2ggYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYC5cblxuV2FpdCwgU3l6a2FsbGVyIGRvZXMgaGF2ZSBVU0IgZnV6emluZyAoZS5nLiwgZHVtbXlfaGNkKSwgYnV0IHRoaXMgaXMgU0RJTy4gRG9lcyBTeXprYWxsZXIgaGF2ZSBhbnkgU0RJTy1zcGVjaWZpYyBzdXBwb3J0PyBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBpZiBhbnkgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgU0RJTyBleGlzdC4gTGV0IG1lIGxvb2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMjksIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1ODQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOTowOC41Nzc1MDUxOThaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MTgwMjE4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzeXpfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjA4LjY4MTY5NDQ2NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NzM3MTM1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRob3NlIHRob3VnaHRzIGZyb20gYSBmaXJzdC1wZXJzb24sIGV4cGVydCBwZXJzcGVjdGl2ZSwgYWltaW5nIGZvciBhIGZ1bHNvbWUgcmVuZGVyaW5nOlxuXG4qKlNESU8gRnV6emluZyBDb2RlIEF1ZGl0KipcblxuUmlnaHQsIGxldCdzIGRpdmUgaW4uIEkgbmVlZCB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgY3VycmVudCBzdGF0ZSBvZiBTRElPIGZ1enppbmcgd2l0aGluIHRoZSBrZXJuZWwuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgYW55IGV4aXN0aW5nIGZ1enppbmcgaW5mcmFzdHJ1Y3R1cmUgaXMgaW4gcGxhY2Ugc3BlY2lmaWNhbGx5IHRhcmdldGluZyB0aGUgU0RJTyBkcml2ZXIgb3IgcmVsYXRlZCBjb21wb25lbnRzLiBUaGF04oCZcyBzdGVwIG9uZSwgYSBiYXNpYyByZWNvbm5haXNzYW5jZSBtaXNzaW9uLiBBcmUgdGhlcmUgYW55IGtub3duIGZ1enppbmcgaGFybmVzc2VzLCBjdXN0b20gbXV0YXRpb25zLCBvciBkb2N1bWVudGVkIGZ1enppbmcgY29uZmlndXJhdGlvbnMgYWxyZWFkeSBwcmVzZW50PyBUaGlzIHNhdmVzIG1lIHZhbHVhYmxlIHRpbWUgaWYgdGhleSBleGlzdC5cblxuSWYgZnV6emluZyAqaXMqIHByZXNlbnQsIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBzY29wZSBhbmQgZWZmaWNhY3kuIEFyZSB0aGVyZSBhbnkgZ2FwcyBvciBwb3RlbnRpYWwgYXJlYXMgb2YgaW1wcm92ZW1lbnQgdGhhdCBqdW1wIG91dCBpbW1lZGlhdGVseT8gQXJlIHRoZSBleGlzdGluZyBmdXp6aW5nIGNvbmZpZ3VyYXRpb25zIGNvdmVyaW5nIHRoZSBtb3N0IGNyaXRpY2FsIGF0dGFjayBzdXJmYWNlcz8gQXJlIHRoZXkgaGl0dGluZyB0aGUgcmlnaHQgY29kZSBwYXRocywgdGFyZ2V0aW5nIHRoZSB2dWxuZXJhYmxlIGFyZWFzIEknZCBleHBlY3QgdG8gc2VlP1xuXG5JZiBubyBkZWRpY2F0ZWQgU0RJTyBmdXp6aW5nIGlzIGN1cnJlbnRseSBpbXBsZW1lbnRlZCwgdGhlIHNlY29uZCBwYXJ0IGlzIHRvIGRldGVybWluZSBpZiBleGlzdGluZyBjb2RlIGlzIHJlYWNoYWJsZSBieSBmdXp6aW5nLiBJZiBzbywgd2hpY2ggbW9kdWxlcyBjYWxsIG9yIHJlZmVyZW5jZSBTRElPPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGUgZnVuY3Rpb25zIHdpdGhpbiB0aGUgU0RJTyBkcml2ZXIgYXJlIGRpcmVjdGx5IGV4cG9zZWQgdG8gaW5wdXQgZnJvbSBhbnkgZnV6emFibGUgc291cmNlcy4gSSBoYXZlIHRvIG1hcCBvdXQgYW55IHBvdGVudGlhbCBhdHRhY2sgc3VyZmFjZXMuIENhbiBJIGxldmVyYWdlIGV4aXN0aW5nIGZ1enppbmcgc2V0dXBzIGxpa2UgS0FTQU4sIEtGRU5DRSwgb3Igc3l6a2FsbGVyPyBDb3VsZCBJIGludGVncmF0ZSBTRElPLXNwZWNpZmljIGlucHV0cyBpbnRvIHRoZSBleGlzdGluZyBmcmFtZXdvcmtzIG9yIGRvIEkgbmVlZCB0byBjcmVhdGUgc29tZXRoaW5nIGJlc3Bva2U/IFdoYXQgYXJlIHRoZSBrZXkgZW50cnkgcG9pbnRzIGludG8gdGhlIFNESU8gY29kZSBmcm9tIHVzZXJsYW5kIG9yIG90aGVyIGtlcm5lbCBtb2R1bGVzPyBGaW5kaW5nIHRoZXNlIGVudHJ5IHBvaW50cyBpcyBrZXkgdG8gZGV2aXNpbmcgZWZmZWN0aXZlIGZ1enppbmcgc3RyYXRlZ2llcy4gSSdsbCBuZWVkIHRvIGNvbnNpZGVyIGhvdyB0aGUgU0RJTyBkcml2ZXIgaW50ZXJhY3RzIHdpdGggb3RoZXIgY29tcG9uZW50cywgcG90ZW50aWFsbHkgY3JlYXRpbmcgZGVwZW5kZW5jaWVzIHRoYXQgbmVlZCB0byBiZSBhZGRyZXNzZWQgaW4gdGhlIGZ1enppbmcgY29uZmlndXJhdGlvbi4gRXNzZW50aWFsbHksIEknbSB0aGlua2luZyBvZiBcInJlYWNoYWJpbGl0eVwiIGluIHRlcm1zIG9mIGhvdyBlYXNpbHkgSSBjYW4gc2VuZCBkYXRhIHRvIHRoZSBTRElPIGludGVyZmFjZSB0aGF0IHRyaWdnZXJzIGl0cyBleGVjdXRpb24uIEEgaGlnaC1sZXZlbCBvdmVydmlldyBtdXN0IGNvbWUgZmlyc3QgdG8gcmVkdWNlIGVmZm9ydCBhbmQgdGltZSB3YXN0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMjYsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOToxMy4zNTU0MTE2MDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODIwNzk0NTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE3NTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE3NTc6YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTggKmhkciwgdWludCBsZW4sIHVpbnQgZG9mZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE3NTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xODU3PXN0YXRpYyB1aW50IGJyY21mX3NkaW9fcmVhZGZyYW1lcyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1aW50IG1heGZyYW1lcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxNy1cXHRcXHRcXHRpZiAocmQtXFx1MDAzZWNoYW5uZWwgPT0gU0RQQ01fQ09OVFJPTF9DSEFOTkVMKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxOTE4OlxcdFxcdFxcdFxcdGJyY21mX3NkaW9fcmVhZF9jb250cm9sKGJ1cywgYnVzLVxcdTAwM2VyeGhkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE5MTktXFx0XFx0XFx0XFx0XFx0XFx0XFx0cmQtXFx1MDAzZWxlbixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MTMuNDM3NTAwNjg5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg1ODcyMDM4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBGdW5jdGlvbiBhbmQgaXRzIFRlc3RhYmlsaXR5KipcblxuT2theSwgc28gSSdtIHRyYWNpbmcgdGhyb3VnaCB0aGlzIGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGZ1bmN0aW9uLi4uIGl0IGNhbGxzIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHNlZSB0aGF0IGBicmNtZl9zZGlvX3JlYWRmcmFtZXNgIGlzIGludm9rZWQgZnJvbSBgYnJjbWZfc2Rpb19kcGNgLCB3aGljaCBJIHJlY2FsbCBpcyB0aGUgU0RJTyBkYXRhIHByb2Nlc3NpbmcgdGFza2xldCBvciB3b3JrcXVldWUuIEJhc2ljYWxseSwgdGhlIHRoaW5nIHRoYXQgcmVhZHMgZGF0YSBvZmYgdGhlIFNESU8gYnVzLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIHN0YW5kYXJkIHN0dWZmLlxuXG5Ob3csIHRoZSBjb3JlIGlzc3VlIGlzIGdvaW5nIHRvIGJlIHRlc3RpbmcgdGhpcy4gSSdtIHRoaW5raW5nLCB3aXRob3V0IGEgKnJlYWwqIEJyb2FkY29tIFNESU8gZGV2aWNlIHByZXNlbnQsIHRoaXMgY29kZSBwYXRoIGlzbid0IGV2ZW4gZ29pbmcgdG8gYmUgaGl0IGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgcmlnaHQ/IEhvbGQgb24sIGRvZXMgUUVNVSBldmVuICplbXVsYXRlKiBCcm9hZGNvbSBTRElPIFdpLUZpPyBObywgZGVmaW5pdGVseSBub3QuIEl0IGRvZXNuJ3QuXG5cbkFscmlnaHQsIHdoYXQgYWJvdXQgc3l6a2FsbGVyPyBEb2VzIGl0IGhhdmUgYW4gU0RJTyBmdXp6ZXI/IExldCBtZSB0aGluay4uLiBzeXprYWxsZXIgaXMgc3Ryb25nIG9uIFVTQiAodXNpbmcgZHVtbXlfaGNkKSBhbmQgUENJICh0byBhIGxpbWl0ZWQgZXh0ZW50LCBidXQgbm90IHNwZWNpZmljIFdpLUZpIGNhcmRzIHVubGVzcyB0aGV5IGFyZSBzb2Z0bWFjIGxpa2UgYXRoOWsvYXRoMTBrLCBidXQgdGhvc2UgYXJlbid0IGVtdWxhdGVkIGFueXdheSwgd2FpdCwgaHdzaW0gaXMgZm9yIG1hYzgwMjExLCBub3QgZm9yIGZ1bGxtYWMpLiBTbywgdGhlIGFuc3dlciBpcyBuby4gU3l6a2FsbGVyIGRvZXNuJ3QgaGF2ZSBhIHNwZWNpZmljIFNESU8gZnV6emVyLiBJdCdzIG1pc3NpbmcgdGhhdCBwaWVjZSwgY3JpdGljYWwgZm9yIGBicmNtZm1hY2AuXG5cblNvLCB0byBzdW1tYXJpemUsIHRoZXJlIGlzIG5vIFNESU8gZW11bGF0aW9uIGluIHRoZSBRRU1VIGNvbmZpZ3VyYXRpb24gc3l6a2FsbGVyIHVzZXMgZm9yIGZ1enppbmcgYGJyY21mbWFjYC4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoaXMgZm9yIGFic29sdXRlIGNlcnRhaW50eSwgYnV0IHRoZSBsYWNrIG9mIGFuIGVtdWxhdGVkIFNESU8gYnVzIGlzIGxpa2VseSB0aGUgbGltaXRpbmcgZmFjdG9yIGhlcmUuIFdlIG5lZWQgdG8gZmluZCBhIHdheSB0byB0ZXN0IHRoaXMgcHJvcGVybHksIG1heWJlIGxvb2sgYXQgb3RoZXIgZW11bGF0b3JzIGFuZCBzZWUgaWYgdGhleSBoYXZlIFNESU8gb3IgYnVpbGQgYSBjdXN0b20gc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNTksIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MTkuMjk2MjIzNTY0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTUwMDE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNkaW9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxODQ5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc9NjU5PWNvbmZpZyBNTUNfTVZTRElPXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctNjY4LVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnOjY2OTpcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBtdnNkaW8uXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTY3MC1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU9MzQ9b2JqLSQoQ09ORklHX01NQ19USUZNX1NEKVxcdCs9IHRpZm1fc2Qub1xcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX01NQ19NVlNESU8pXFx0Kz0gbXZzZGlvLm9cXG5kcml2ZXJzL21tYy9ob3N0L01ha2VmaWxlLTM2LW9iai0kKENPTkZJR19NTUNfREFWSU5DSSkgICAgICAgKz0gZGF2aW5jaV9tbWMub1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZT02OD1vYmotJChDT05GSUdfTU1DX01FU09OX01YX1NESEMpXFx0Kz0gbWVzb24tbXgtc2RoYy5vXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2OTpvYmotJChDT05GSUdfTU1DX01FU09OX01YX1NESU8pXFx0Kz0gbWVzb24tbXgtc2Rpby5vXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZS03MC1vYmotJChDT05GSUdfTU1DX01PWEFSVClcXHQrPSBtb3hhcnQtbW1jLm9cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9ob3N0LmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzozMDojaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3NkaW8uaFxcdTAwM2VcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTMxLVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0zMzI9c3RydWN0IGF0bWVsX21jaSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTM4Ny0gKiBAc2RjX3JlZzogVmFsdWUgb2YgU0RDUiB0byBiZSB3cml0dGVuIGJlZm9yZSB1c2luZyB0aGlzIHNsb3QuXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzozODg6ICogQHNkaW9faXJxOiBTRElPIGlycSBtYXNrIGZvciB0aGlzIHNsb3QuXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0zODktICogQG1ycTogbW1jX3JlcXVlc3QgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCBvciB3YWl0aW5nIHRvIGJlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTQwMT1zdHJ1Y3QgYXRtZWxfbWNpX3Nsb3Qge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy00MDUtXFx0dTMyXFx0XFx0XFx0c2RjX3JlZztcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjQwNjpcXHR1MzJcXHRcXHRcXHRzZGlvX2lycTtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTQwNy1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM9MTU0NT1zdGF0aWMgaW50IGF0bWNpX2dldF9jZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU1OC1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjE1NTk6c3RhdGljIHZvaWQgYXRtY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2MC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NjQtXFx0aWYgKGVuYWJsZSlcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjE1NjU6XFx0XFx0YXRtY2lfd3JpdGVsKGhvc3QsIEFUTUNJX0lFUiwgc2xvdC1cXHUwMDNlc2Rpb19pcnEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU2Ni1cXHRlbHNlXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTY3OlxcdFxcdGF0bWNpX3dyaXRlbChob3N0LCBBVE1DSV9JRFIsIHNsb3QtXFx1MDAzZXNkaW9faXJxKTtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTE1NjgtfVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0xNTcwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGF0bWNpX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMTU3NC1cXHQuZ2V0X2NkXFx0XFx0PSBhdG1jaV9nZXRfY2QsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoxNTc1OlxcdC5lbmFibGVfc2Rpb19pcnEgPSBhdG1jaV9lbmFibGVfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0xNTc2LX07XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTIwMTE9c3RhdGljIHZvaWQgYXRtY2lfd3JpdGVfZGF0YV9waW8oc3RydWN0IGF0bWVsX21jaSAqaG9zdClcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjA3OC1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIwNzk6c3RhdGljIHZvaWQgYXRtY2lfc2Rpb19pbnRlcnJ1cHQoc3RydWN0IGF0bWVsX21jaSAqaG9zdCwgdTMyIHN0YXR1cylcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIwODAte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMDg0LVxcdFxcdHN0cnVjdCBhdG1lbF9tY2lfc2xvdCAqc2xvdCA9IGhvc3QtXFx1MDAzZXNsb3RbaV07XFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMDg1OlxcdFxcdGlmIChzbG90IFxcdTAwMjZcXHUwMDI2IChzdGF0dXMgXFx1MDAyNiBzbG90LVxcdTAwM2VzZGlvX2lycSkpIHtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIwODY6XFx0XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycShzbG90LVxcdTAwM2VtbWMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjA4Ny1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jPTIwOTI9c3RhdGljIGlycXJldHVybl90IGF0bWNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyMTMtXFx0XFx0aWYgKHBlbmRpbmcgXFx1MDAyNiAoQVRNQ0lfU0RJT0lSUUEgfCBBVE1DSV9TRElPSVJRQikpXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMjE0OlxcdFxcdFxcdGF0bWNpX3NkaW9faW50ZXJydXB0KGhvc3QsIHN0YXR1cyk7XFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjE1LVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYz0yMjM2PXN0YXRpYyBpbnQgYXRtY2lfaW5pdF9zbG90KHN0cnVjdCBhdG1lbF9tY2kgKmhvc3QsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjM3LVxcdFxcdHN0cnVjdCBtY2lfc2xvdF9wZGF0YSAqc2xvdF9kYXRhLCB1bnNpZ25lZCBpbnQgaWQsXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYzoyMjM4OlxcdFxcdHUzMiBzZGNfcmVnLCB1MzIgc2Rpb19pcnEpXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjM5LXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmMtMjI1NC1cXHRzbG90LVxcdTAwM2VzZGNfcmVnID0gc2RjX3JlZztcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jOjIyNTU6XFx0c2xvdC1cXHUwMDNlc2Rpb19pcnEgPSBzZGlvX2lycTtcXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyNTYtXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jLTIyNjctXFx0bW1jLVxcdTAwM2VvY3JfYXZhaWxcXHQ9IE1NQ19WRERfMzJfMzMgfCBNTUNfVkREXzMzXzM0O1xcbmRyaXZlcnMvbW1jL2hvc3QvYXRtZWwtbWNpLmM6MjI2ODpcXHRpZiAoc2Rpb19pcnEpXFxuZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYy0yMjY5LVxcdFxcdG1tYy1cXHUwMDNlY2FwcyB8PSBNTUNfQ0FQX1NESU9fSVJRO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM9Nzc4PXN0YXRpYyBpcnFyZXR1cm5fdCBhdTF4bW1jX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy03ODgtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IFNEX1NUQVRVU19TSSlcXHQvKiBTRElPICovXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmM6Nzg5OlxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy03OTAtXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYz05MDY9c3RhdGljIHZvaWQgYXUxeG1tY19kYmRtYV9zaHV0ZG93bihzdHJ1Y3QgYXUxeG1tY19ob3N0ICpob3N0KVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTE0LVxcbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jOjkxNTpzdGF0aWMgdm9pZCBhdTF4bW1jX2VuYWJsZV9zZGlvX2lycShzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgaW50IGVuKVxcbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jLTkxNi17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYz05MjU9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgYXUxeG1tY19vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2F1MXhtbWMuYy05MjktXFx0LmdldF9jZFxcdFxcdD0gYXUxeG1tY19jYXJkX2luc2VydGVkLFxcbmRyaXZlcnMvbW1jL2hvc3QvYXUxeG1tYy5jOjkzMDpcXHQuZW5hYmxlX3NkaW9faXJxID0gYXUxeG1tY19lbmFibGVfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9hdTF4bW1jLmMtOTMxLX07XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy04LSAqXFxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmM6OTogKiBUaGUgc2RoY2kgY29udHJvbGxlciBzdXBwb3J0cyBib3RoIHNkY2FyZCBhbmQgc2Rpby4gIFRoZSBzZGhvc3RcXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy0xMC0gKiBjb250cm9sbGVyIHN1cHBvcnRzIHRoZSBzZGNhcmQgb25seSwgYnV0IGhhcyBiZXR0ZXIgcGVyZm9ybWFuY2UuXFxuZHJpdmVycy9tbWMvaG9zdC9iY20yODM1LmM6MTE6ICogQWxzbyBub3RlIHRoYXQgdGhlIHJwaTMgaGFzIHNkaW8gd2lmaSwgc28gZHJpdmluZyB0aGUgc2RjYXJkIHdpdGhcXG5kcml2ZXJzL21tYy9ob3N0L2JjbTI4MzUuYy0xMi0gKiB0aGUgc2Rob3N0IGNvbnRyb2xsZXIgYWxsb3dzIHRvIHVzZSB0aGUgc2RoY2kgY29udHJvbGxlciBmb3Igd2lmaVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTE2Nj1zdHJ1Y3QgbW1jX2RhdmluY2lfaG9zdCB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTczLVxcdHN0cnVjdCByZXNvdXJjZSAqbWVtX3JlcztcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTc0OlxcdGludCBtbWNfaXJxLCBzZGlvX2lycTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTc1LVxcdHVuc2lnbmVkIGNoYXIgYnVzX21vZGU7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTg3LVxcdGJvb2wgZG9fZG1hO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxODg6XFx0Ym9vbCBzZGlvX2ludDtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTg5LVxcdGJvb2wgYWN0aXZlX3JlcXVlc3Q7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM9NzU2PW1tY19kYXZpbmNpX3hmZXJfZG9uZShzdHJ1Y3QgbW1jX2RhdmluY2lfaG9zdCAqaG9zdCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTc2NS1cXHRcXHQgKi9cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6NzY2OlxcdFxcdGlmIChob3N0LVxcdTAwM2VzZGlvX2ludCBcXHUwMDI2XFx1MDAyNiAhKHJlYWRsKGhvc3QtXFx1MDAzZWJhc2UgKyBEQVZJTkNJX1NESU9TVDApIFxcdTAwMjZcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY3LVxcdFxcdFxcdFxcdFxcdFNESU9TVDBfREFUMV9ISSkpIHtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzY4LVxcdFxcdFxcdHdyaXRlbChTRElPSVNUX0lPSU5ULCBob3N0LVxcdTAwM2ViYXNlICsgREFWSU5DSV9TRElPSVNUKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6NzY5OlxcdFxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtNzcwLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYz04MzM9ZGF2aW5jaV9hYm9ydF9kYXRhKHN0cnVjdCBtbWNfZGF2aW5jaV9ob3N0ICpob3N0LCBzdHJ1Y3QgbW1jX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODQwLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzo4NDE6c3RhdGljIGlycXJldHVybl90IG1tY19kYXZpbmNpX3NkaW9faXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtODQyLXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy04NTAtXFx0XFx0d3JpdGVsKHN0YXR1cyB8IFNESU9JU1RfSU9JTlQsIGhvc3QtXFx1MDAzZWJhc2UgKyBEQVZJTkNJX1NESU9JU1QpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzo4NTE6XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycShob3N0LVxcdTAwM2VtbWMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy04NTItXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTEwMTQ9c3RhdGljIGludCBtbWNfZGF2aW5jaV9nZXRfcm8oc3RydWN0IG1tY19ob3N0ICptbWMpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTAyNC1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTAyNTpzdGF0aWMgdm9pZCBtbWNfZGF2aW5jaV9lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMjYte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzEtXFx0XFx0XFx0d3JpdGVsKFNESU9JU1RfSU9JTlQsIGhvc3QtXFx1MDAzZWJhc2UgKyBEQVZJTkNJX1NESU9JU1QpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDMyOlxcdFxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTAzMy1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMDM0OlxcdFxcdFxcdGhvc3QtXFx1MDAzZXNkaW9faW50ID0gdHJ1ZTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTAzNS1cXHRcXHRcXHR3cml0ZWwocmVhZGwoaG9zdC1cXHUwMDNlYmFzZSArIERBVklOQ0lfU0RJT0lFTikgfFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEwMzgtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTAzOTpcXHRcXHRob3N0LVxcdTAwM2VzZGlvX2ludCA9IGZhbHNlO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMDQwLVxcdFxcdHdyaXRlbChyZWFkbChob3N0LVxcdTAwM2ViYXNlICsgREFWSU5DSV9TRElPSUVOKSBcXHUwMDI2IH5TRElPSUVOX0lPSU5URU4sXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM9MTA0NT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyBtbWNfZGF2aW5jaV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTA0OS1cXHQuZ2V0X3JvXFx0XFx0PSBtbWNfZGF2aW5jaV9nZXRfcm8sXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEwNTA6XFx0LmVuYWJsZV9zZGlvX2lycSA9IG1tY19kYXZpbmNpX2VuYWJsZV9zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTA1MS19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jPTExODQ9c3RhdGljIGludCBkYXZpbmNpX21tY3NkX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTI1MC1cXHRob3N0LVxcdTAwM2VtbWNfaXJxID0gaXJxO1xcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMjUxOlxcdGhvc3QtXFx1MDAzZXNkaW9faXJxID0gcGxhdGZvcm1fZ2V0X2lycV9vcHRpb25hbChwZGV2LCAxKTtcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmMtMTI1Mi1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYy0xMzAxLVxcbmRyaXZlcnMvbW1jL2hvc3QvZGF2aW5jaV9tbWMuYzoxMzAyOlxcdGlmIChob3N0LVxcdTAwM2VzZGlvX2lycSBcXHUwMDNlPSAwKSB7XFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jOjEzMDM6XFx0XFx0cmV0ID0gZGV2bV9yZXF1ZXN0X2lycShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBob3N0LVxcdTAwM2VzZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L2RhdmluY2lfbW1jLmM6MTMwNDpcXHRcXHRcXHRcXHQgICAgICAgbW1jX2RhdmluY2lfc2Rpb19pcnEsIDAsXFxuZHJpdmVycy9tbWMvaG9zdC9kYXZpbmNpX21tYy5jLTEzMDUtXFx0XFx0XFx0XFx0ICAgICAgIG1tY19ob3N0bmFtZShtbWMpLCBob3N0KTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmM9NDk4PXN0YXRpYyBpbnQgZHdfbWNpX3JvY2tjaGlwX2luaXQoc3RydWN0IGR3X21jaSAqaG9zdClcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmMtNTAzLVxcdC8qIFNESU8gaXJxIGlzIHRoZSA4dGggb24gUm9ja2NoaXAgU29DcyAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLXJvY2tjaGlwLmM6NTA0OlxcdGhvc3QtXFx1MDAzZXNkaW9faXJxID0gODtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy1yb2NrY2hpcC5jLTUwNS1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMjQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9zZC5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MjU6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9zZGlvLmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0xNDgwPXN0YXRpYyB2b2lkIGR3X21jaV9od19yZXNldChzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTUxMi1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1MTM6c3RhdGljIHZvaWQgZHdfbWNpX3ByZXBhcmVfc2Rpb19pcnEoc3RydWN0IGR3X21jaSAqaG9zdCwgYm9vbCBwcmVwYXJlKVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTUxNC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NDAtXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTQxOnN0YXRpYyB2b2lkIF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShzdHJ1Y3QgZHdfbWNpICpob3N0LCBpbnQgZW5iKVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU0Mi17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NTAtXFx0aWYgKGVuYilcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NTE6XFx0XFx0aW50X21hc2sgfD0gU0RNTUNfSU5UX1NESU8oaG9zdC1cXHUwMDNlc2Rpb19pcnEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU1Mi1cXHRlbHNlXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTUzOlxcdFxcdGludF9tYXNrIFxcdTAwMjY9IH5TRE1NQ19JTlRfU0RJTyhob3N0LVxcdTAwM2VzZGlvX2lycSk7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTU0LVxcdG1jaV93cml0ZWwoaG9zdCwgSU5UTUFTSywgaW50X21hc2spO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTU4LVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU1OTpzdGF0aWMgdm9pZCBkd19tY2lfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5iKVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU2MC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NjItXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTYzOlxcdGR3X21jaV9wcmVwYXJlX3NkaW9faXJxKGhvc3QsIGVuYik7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoxNTY0OlxcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCBlbmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU2NS1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTU3Mi1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjE1NzM6c3RhdGljIHZvaWQgZHdfbWNpX2Fja19zZGlvX2lycShzdHJ1Y3QgbW1jX2hvc3QgKm1tYylcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTE1NzQte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTc2LVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTU3NzpcXHRfX2R3X21jaV9lbmFibGVfc2Rpb19pcnEoaG9zdCwgMSk7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNTc4LX1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM9MTY3MD1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyBkd19tY2lfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0xNjc3LVxcdC5jYXJkX2h3X3Jlc2V0ICAgICAgICAgID0gZHdfbWNpX2h3X3Jlc2V0LFxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTY3ODpcXHQuZW5hYmxlX3NkaW9faXJxXFx0PSBkd19tY2lfZW5hYmxlX3NkaW9faXJxLFxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6MTY3OTpcXHQuYWNrX3NkaW9faXJxXFx0XFx0PSBkd19tY2lfYWNrX3NkaW9faXJxLFxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMtMTY4MC1cXHQuZXhlY3V0ZV90dW5pbmdcXHRcXHQ9IGR3X21jaV9leGVjdXRlX3R1bmluZyxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM9MjY1ND1zdGF0aWMgaXJxcmV0dXJuX3QgZHdfbWNpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI3NTctXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyNzU4OlxcdFxcdGlmIChwZW5kaW5nIFxcdTAwMjYgU0RNTUNfSU5UX1NESU8oaG9zdC1cXHUwMDNlc2Rpb19pcnEpKSB7XFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yNzU5LVxcdFxcdFxcdG1jaV93cml0ZWwoaG9zdCwgUklOVFNUUyxcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjI3NjA6XFx0XFx0XFx0XFx0ICAgU0RNTUNfSU5UX1NESU8oaG9zdC1cXHUwMDNlc2Rpb19pcnEpKTtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jOjI3NjE6XFx0XFx0XFx0X19kd19tY2lfZW5hYmxlX3NkaW9faXJxKGhvc3QsIDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmM6Mjc2MjpcXHRcXHRcXHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI3NjMtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0yNzk0PXN0YXRpYyBpbnQgZHdfbWNpX2luaXRfaG9zdF9jYXBzKHN0cnVjdCBkd19tY2kgKmhvc3QpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTI4MjUtXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzoyODI2OlxcdC8qIFByb2Nlc3MgU0RJTyBJUlFzIHRocm91Z2ggdGhlIHNkaW9faXJxX3dvcmsuICovXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0yODI3LVxcdGlmIChtbWMtXFx1MDAzZWNhcHMgXFx1MDAyNiBNTUNfQ0FQX1NESU9fSVJRKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYz0zNDQzPWludCBkd19tY2lfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYy0zNDk0LVxcdC8qIFJlLWVuYWJsZSBTRElPIGludGVycnVwdHMuICovXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzozNDk1OlxcdGlmIChzZGlvX2lycV9jbGFpbWVkKGhvc3QtXFx1MDAzZW1tYykpXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuYzozNDk2OlxcdFxcdF9fZHdfbWNpX2VuYWJsZV9zZGlvX2lycShob3N0LCAxKTtcXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5jLTM0OTctXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5oPTUyPXN0cnVjdCBkd19tY2lfZG1hX3NsYXZlIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMTIxLSAqIEBpcnE6IFRoZSBpcnEgdmFsdWUgdG8gYmUgcGFzc2VkIHRvIHJlcXVlc3RfaXJxLlxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg6MTIyOiAqIEBzZGlvX2lycTogU0RJTyBpbnRlcnJ1cHQgYml0IGluIGludGVycnVwdCByZWdpc3RlcnMuXFxuZHJpdmVycy9tbWMvaG9zdC9kd19tbWMuaC0xMjMtICogQGNtZDExX3RpbWVyOiBUaW1lciBmb3IgU0QzLjAgdm9sdGFnZSBzd2l0Y2ggb3ZlciBzY2hlbWUuXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2R3X21tYy5oPTE2MT1zdHJ1Y3QgZHdfbWNpIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjMzLVxcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmg6MjM0OlxcdGludFxcdFxcdFxcdHNkaW9faXJxO1xcbmRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmgtMjM1LVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM9ODQwPXN0YXRpYyBpcnFyZXR1cm5fdCBqel9tbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldmlkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtODU5LVxcdFxcdGp6NDc0MF9tbWNfd3JpdGVfaXJxX3JlZyhob3N0LCBKWl9NTUNfSVJRX1NESU8pO1xcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jOjg2MDpcXHRcXHRtbWNfc2lnbmFsX3NkaW9faXJxKGhvc3QtXFx1MDAzZW1tYyk7XFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtODYxLVxcdFxcdGlycV9yZWcgXFx1MDAyNj0gfkpaX01NQ19JUlFfU0RJTztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jPTk0MD1zdGF0aWMgdm9pZCBqejQ3NDBfbW1jX3NldF9pb3Moc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfaW9zICppb3MpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYy05OTQtXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM6OTk1OnN0YXRpYyB2b2lkIGp6NDc0MF9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3Qvano0NzQwX21tYy5jLTk5Ni17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2p6NDc0MF9tbWMuYz0xMDE4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1jX2hvc3Rfb3BzIGp6NDc0MF9tbWNfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNC1cXHQuZ2V0X2NkXFx0XFx0PSBtbWNfZ3Bpb19nZXRfY2QsXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmM6MTAyNTpcXHQuZW5hYmxlX3NkaW9faXJxID0gano0NzQwX21tY19lbmFibGVfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9qejQ3NDBfbW1jLmMtMTAyNi1cXHQuc3RhcnRfc2lnbmFsX3ZvbHRhZ2Vfc3dpdGNoID0gano0NzQwX3ZvbHRhZ2Vfc3dpdGNoLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtMjAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tYy9zZC5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjIxOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2Rpby5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTIyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYz00MTM9c3RhdGljIGlycXJldHVybl90IGxvb25nc29uMl9tbWNfaXJxKGludCBpcnEsIHZvaWQgKmRldmlkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNDI4LVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jOjQyOTpcXHRcXHRzZGlvX3NpZ25hbF9pcnEobW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy00MzAtXFx0XFx0cmV0dXJuIElSUV9IQU5ETEVEO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM9NTc0PXN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfcmVxdWVzdChzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgc3RydWN0IG1tY19yZXF1ZXN0ICptcnEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy01ODgtXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTg5OnN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU5MC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy01OTUtXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTk2OnN0YXRpYyB2b2lkIGxvb25nc29uMl9tbWNfYWNrX3NkaW9faXJxKHN0cnVjdCBtbWNfaG9zdCAqbW1jKVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTU5Ny17XFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NTk4OlxcdGxvb25nc29uMl9tbWNfZW5hYmxlX3NkaW9faXJxKG1tYywgMSk7XFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNTk5LX1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTYwMT1zdGF0aWMgc3RydWN0IG1tY19ob3N0X29wcyBsb29uZ3NvbjJfbW1jX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTYwNS1cXHQuZ2V0X2NkXFx0XFx0PSBtbWNfZ3Bpb19nZXRfY2QsXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmM6NjA2OlxcdC5lbmFibGVfc2Rpb19pcnEgPSBsb29uZ3NvbjJfbW1jX2VuYWJsZV9zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYzo2MDc6XFx0LmFja19zZGlvX2lycVxcdD0gbG9vbmdzb24yX21tY19hY2tfc2Rpb19pcnEsXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNjA4LX07XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYz02MTc9c3RhdGljIGludCBsb29uZ3NvbjJfcmVvcmRlcl9jbWRfbGlzdFtdID0geyBTRF9BUFBfU0VORF9TQ1IsIFNEX0FQUF9TRU5EX05VTV9XUl9CTEtTLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9sb29uZ3NvbjItbW1jLmMtNjIyLSAqIHJlc3BvbnNlIGRhdGFzIGhhcyBkaWZmZXJlbnQgYnl0ZSBvcmRlciB3aXRoIHVzdWFsIGRhdGEgcGFja2V0cy5cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYzo2MjM6ICogSG93ZXZlciBzZGlvIGNvbnRyb2xsZXIgd2lsbCBzZW5kIHRoZXNlIGRhdGFzIGluIHVzdWFsIGRhdGEgZm9ybWF0LFxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTYyNC0gKiBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGVzZSBkYXRhcyB0byBhIHByb3RvY29sIGNvbnNpc3RlbnQgYnl0ZSBvcmRlci5cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jPTk0MD1zdGF0aWMgaW50IGxvb25nc29uMl9tbWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbG9vbmdzb24yLW1tYy5jLTk3My1cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYzo5NzQ6XFx0LyogUHJvY2VzcyBTRElPIElSUXMgdGhyb3VnaCB0aGUgc2Rpb19pcnFfd29yay4gKi9cXG5kcml2ZXJzL21tYy9ob3N0L2xvb25nc29uMi1tbWMuYy05NzUtXFx0aWYgKG1tYy1cXHUwMDNlY2FwcyBcXHUwMDI2IE1NQ19DQVBfU0RJT19JUlEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE5LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvbW1jLmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoyMDojaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3NkaW8uaFxcdTAwM2VcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTIxLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTUzLSNkZWZpbmUgICBDTEtfQUxXQVlTX09OKGgpXFx0XFx0KGgtXFx1MDAzZWRhdGEtXFx1MDAzZWFsd2F5c19vbilcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjU0OiNkZWZpbmUgICBDTEtfSVJRX1NESU9fU0xFRVAoaClcXHRcXHQoaC1cXHUwMDNlZGF0YS1cXHUwMDNlaXJxX3NkaW9fc2xlZXApXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy01NS1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9MTM2PXN0cnVjdCBtZXNvbl9tbWNfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE0MC1cXHR1bnNpZ25lZCBpbnQgYWRqdXN0O1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTQxOlxcdHVuc2lnbmVkIGludCBpcnFfc2Rpb19zbGVlcDtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTE0Mi19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz05MDc9c3RhdGljIHZvaWQgbWVzb25fbW1jX3JlYWRfcmVzcChzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgc3RydWN0IG1tY19jb21tYW5kICpjbWQpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTkyMC1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjkyMTpzdGF0aWMgdm9pZCBfX21lc29uX21tY19lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05MjIte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz05MzE9c3RhdGljIGlycXJldHVybl90IG1lc29uX21tY19pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy05NTYtXFx0XFx0c3Bpbl9sb2NrKFxcdTAwMjZob3N0LVxcdTAwM2Vsb2NrKTtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjk1NzpcXHRcXHRfX21lc29uX21tY19lbmFibGVfc2Rpb19pcnEoaG9zdC1cXHUwMDNlbW1jLCAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjk1ODpcXHRcXHRzZGlvX3NpZ25hbF9pcnEoaG9zdC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTk1OS1cXHRcXHRzcGluX3VubG9jayhcXHUwMDI2aG9zdC1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jPTEwODY9c3RhdGljIGludCBtZXNvbl9tbWNfdm9sdGFnZV9zd2l0Y2goc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfaW9zICppb3MpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMDktXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMTEwOnN0YXRpYyB2b2lkIG1lc29uX21tY19lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMsIGludCBlbmFibGUpXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTExLXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTExNS1cXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2aG9zdC1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTExNjpcXHRfX21lc29uX21tY19lbmFibGVfc2Rpb19pcnEobW1jLCBlbmFibGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTExNy1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZob3N0LVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMTktXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMTIwOnN0YXRpYyB2b2lkIG1lc29uX21tY19hY2tfc2Rpb19pcnEoc3RydWN0IG1tY19ob3N0ICptbWMpXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYy0xMTIxLXtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjExMjI6XFx0bWVzb25fbW1jX2VuYWJsZV9zZGlvX2lycShtbWMsIDEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEyMy19XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jPTExMjU9c3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMgbWVzb25fbW1jX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTEzMy1cXHQuc3RhcnRfc2lnbmFsX3ZvbHRhZ2Vfc3dpdGNoID0gbWVzb25fbW1jX3ZvbHRhZ2Vfc3dpdGNoLFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM6MTEzNDpcXHQuZW5hYmxlX3NkaW9faXJxID0gbWVzb25fbW1jX2VuYWJsZV9zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jOjExMzU6XFx0LmFja19zZGlvX2lycVxcdD0gbWVzb25fbW1jX2Fja19zZGlvX2lycSxcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTExMzYtfTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmM9MTMwOT1zdGF0aWMgY29uc3Qgc3RydWN0IG1lc29uX21tY19kYXRhIG1lc29uX2d4X2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTEzMTMtXFx0LmFkanVzdFxcdFxcdD0gU0RfRU1NQ19BREpVU1QsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMzE0OlxcdC5pcnFfc2Rpb19zbGVlcFxcdD0gQ0xLX1YyX0lSUV9TRElPX1NMRUVQLFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTMxNS19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYz0xMzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVzb25fbW1jX2RhdGEgbWVzb25fYXhnX2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLWd4LW1tYy5jLTEzMjEtXFx0LmFkanVzdFxcdFxcdD0gU0RfRU1NQ19WM19BREpVU1QsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1neC1tbWMuYzoxMzIyOlxcdC5pcnFfc2Rpb19zbGVlcFxcdD0gQ0xLX1YzX0lSUV9TRElPX1NMRUVQLFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tZ3gtbW1jLmMtMTMyMy19O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jLTIyLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvbW1jLmhcXHUwMDNlXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jOjIzOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2Rpby5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYy0yNC0jaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL3Nsb3QtZ3Bpby5oXFx1MDAzZVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jPTEzMj1zdGF0aWMgdm9pZCBtZXNvbl9teF9zZGhjX3N0YXJ0X2NtZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYyxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2RoYy1tbWMuYy0xNzktXFx0XFx0ICogZG93bmxvYWQgaW4gdGhlIGJyY21mbWFjIGRyaXZlciBmb3IgYSBCQ000MzM2Mi8xIGNhcmQuXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGhjLW1tYy5jOjE4MDpcXHRcXHQgKiBXaXRob3V0IHRoaXMgc2Rpb19tZW1jcHlfdG9pbygpICh3aXRoIGEgc2l6ZSBvZiAyMTk1NTdcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaGMtbW1jLmMtMTgxLVxcdFxcdCAqIGJ5dGVzKSB0aW1lcyBvdXQgaWYgTUVTT05fU0RIQ19NSVNDX01BTlVBTF9TVE9QIGlzIG5vdCBzZXQuXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy0yLS8qXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6MzogKiBtZXNvbi1teC1zZGlvLmMgLSBNZXNvbjYsIE1lc29uOCBhbmQgTWVzb244YiBTRElPL01NQyBIb3N0IENvbnRyb2xsZXJcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy00LSAqXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy0yNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvbW1jL21tYy5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjI4OiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2Rpby5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTI5LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbWMvc2xvdC1ncGlvLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYz02Mjk9c3RhdGljIGludCBtZXNvbl9teF9tbWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02MzAte1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjYzMTpcXHRjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyBtZXNvbl9teF9zZGlvX3JlZ21hcF9jb25maWcgPSB7XFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNjMyLVxcdFxcdC5yZWdfYml0cyA9IDgsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy02NjgtXFx0aG9zdC1cXHUwMDNlcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9tbWlvKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIGJhc2UsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM6NjY5OlxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNm1lc29uX214X3NkaW9fcmVnbWFwX2NvbmZpZyk7XFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNjcwLVxcdGlmIChJU19FUlIoaG9zdC1cXHUwMDNlcmVnbWFwKSkge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmM9NzQ4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uX214X21tY19vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjc0OTpcXHR7IC5jb21wYXRpYmxlID0gXFxcImFtbG9naWMsbWVzb244LXNkaW9cXFwiLCB9LFxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jOjc1MDpcXHR7IC5jb21wYXRpYmxlID0gXFxcImFtbG9naWMsbWVzb244Yi1zZGlvXFxcIiwgfSxcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYy03NTEtXFx0eyAvKiBzZW50aW5lbCAqLyB9XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYz03NTU9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbWVzb25fbXhfbW1jX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbWVzb24tbXgtc2Rpby5jLTc1OC1cXHQuZHJpdmVyICA9IHtcXG5kcml2ZXJzL21tYy9ob3N0L21lc29uLW14LXNkaW8uYzo3NTk6XFx0XFx0Lm5hbWUgPSBcXFwibWVzb24tbXgtc2Rpb1xcXCIsXFxuZHJpdmVycy9tbWMvaG9zdC9tZXNvbi1teC1zZGlvLmMtNzYwLVxcdFxcdC5wcm9iZV90eXBlID0gUFJPQkVfUFJFRkVSX0FTWU5DSFJPTk9VUyxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jX3NwaS5jLTMzLSAqXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNfc3BpLmM6MzQ6ICogLSBGb3Igbm93LCB3ZSB3b24ndCB0cnkgdG8gaW50ZXJvcGVyYXRlIHdpdGggYSByZWFsIG1tYy9zZC9zZGlvXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNfc3BpLmMtMzUtICogICBjb250cm9sbGVyLCBhbHRob3VnaCBzb21lIG9mIHRoZW0gZG8gaGF2ZSBoYXJkd2FyZSBzdXBwb3J0IGZvclxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTExPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdTMwMCA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyMS1cXHQuZGF0YWN0cmxfYmxvY2tzelxcdD0gMTEsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTIyOlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoxMjM6XFx0LnN0X3NkaW9cXHRcXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMTI0LVxcdC5wd3JyZWdfcG93ZXJ1cFxcdFxcdD0gTUNJX1BXUl9PTixcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTEzNj1zdGF0aWMgc3RydWN0IHZhcmlhbnRfZGF0YSB2YXJpYW50X25vbWFkaWsgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xNDYtXFx0LmRhdGFjdHJsX2Jsb2Nrc3pcXHQ9IDExLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE0NzpcXHQuZGF0YWN0cmxfbWFza19zZGlvXFx0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTQ4OlxcdC5zdF9zZGlvXFx0XFx0PSB0cnVlLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE0OS1cXHQuc3RfY2xrZGl2XFx0XFx0PSB0cnVlLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTYyPXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdXg1MDAgPSB7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xNzYtXFx0LmRtYV9wb3dlcl9vZl8yXFx0XFx0PSB0cnVlLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjE3NzpcXHQuZGF0YWN0cmxfbWFza19zZGlvXFx0PSBNQ0lfRFBTTV9TVF9TRElPRU4sXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTc4OlxcdC5zdF9zZGlvXFx0XFx0PSB0cnVlLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3OS1cXHQuc3RfY2xrZGl2XFx0XFx0PSB0cnVlLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTk2PXN0YXRpYyBzdHJ1Y3QgdmFyaWFudF9kYXRhIHZhcmlhbnRfdXg1MDB2MiA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTIxMS1cXHQuZG1hX3Bvd2VyX29mXzJcXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjEyOlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoyMTM6XFx0LnN0X3NkaW9cXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjE0LVxcdC5zdF9jbGtkaXZcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0yMzE9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMiA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI0NC1cXHQuZGF0YWN0cmxfYmxvY2tzelxcdD0gMTEsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjQ1OlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzoyNDY6XFx0LnN0X3NkaW9cXHRcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjQ3LVxcdC5zdF9jbGtkaXZcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0yNTY9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tYyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTI3Mi1cXHQuZGF0YWN0cmxfYW55X2Jsb2Nrc3pcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MjczOlxcdC5kYXRhY3RybF9tYXNrX3NkaW9cXHQ9IE1DSV9EUFNNX1NUX1NESU9FTixcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzQtXFx0LnN0bTMyX2lkbWFic2l6ZV9tYXNrXFx0PSBHRU5NQVNLKDEyLCA1KSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0yNzUtXFx0LnN0bTMyX2lkbWFic2l6ZV9hbGlnblxcdD0gQklUKDUpLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjI3NjpcXHQuc3VwcG9ydHNfc2Rpb19pcnFcXHQ9IHRydWUsXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMjc3LVxcdC5idXN5X3RpbWVvdXRcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0yODQ9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tY3YyID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzAwLVxcdC5kYXRhY3RybF9hbnlfYmxvY2tzelxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzozMDE6XFx0LmRhdGFjdHJsX21hc2tfc2Rpb1xcdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMwMi1cXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcXHQ9IEdFTk1BU0soMTYsIDUpLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMwMy1cXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXFx0PSBCSVQoNSksXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MzA0OlxcdC5zdXBwb3J0c19zZGlvX2lycVxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMDUtXFx0LmRtYV9sbGlcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz0zMTM9c3RhdGljIHN0cnVjdCB2YXJpYW50X2RhdGEgdmFyaWFudF9zdG0zMl9zZG1tY3YzID0ge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmMtMzI5LVxcdC5kYXRhY3RybF9hbnlfYmxvY2tzelxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzozMzA6XFx0LmRhdGFjdHJsX21hc2tfc2Rpb1xcdD0gTUNJX0RQU01fU1RfU0RJT0VOLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMzMS1cXHQuc3RtMzJfaWRtYWJzaXplX21hc2tcXHQ9IEdFTk1BU0soMTYsIDYpLFxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTMzMi1cXHQuc3RtMzJfaWRtYWJzaXplX2FsaWduXFx0PSBCSVQoNiksXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MzMzOlxcdC5zdXBwb3J0c19zZGlvX2lycVxcdD0gdHJ1ZSxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0zMzQtXFx0LmRtYV9sbGlcXHRcXHQ9IHRydWUsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYz00MjU9c3RhdGljIHZvaWQgbW1jaV93cml0ZV9kYXRhY3RybHJlZyhzdHJ1Y3QgbW1jaV9ob3N0ICpob3N0LCB1MzIgZGF0YWN0cmwpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy00MjgtXFx0ZGF0YWN0cmwgfD0gaG9zdC1cXHUwMDNlZGF0YWN0cmxfcmVnIFxcdTAwMjYgKGhvc3QtXFx1MDAzZXZhcmlhbnQtXFx1MDAzZWJ1c3lfZHBzbV9mbGFnIHxcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYzo0Mjk6XFx0XFx0XFx0XFx0XFx0ICBob3N0LVxcdTAwM2V2YXJpYW50LVxcdTAwM2VkYXRhY3RybF9tYXNrX3NkaW8pO1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTQzMC1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jPTEyMzY9c3RhdGljIHZvaWQgbW1jaV9zdGFydF9kYXRhKHN0cnVjdCBtbWNpX2hvc3QgKmhvc3QsIHN0cnVjdCBtbWNfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjEtXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTI2MjpcXHRpZiAoaG9zdC1cXHUwMDNlbW1jLVxcdTAwM2VjYXJkIFxcdTAwMjZcXHUwMDI2IG1tY19jYXJkX3NkaW8oaG9zdC1cXHUwMDNlbW1jLVxcdTAwM2VjYXJkKSkge1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjMtXFx0XFx0dTMyIGNsaztcXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjY0LVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjEyNjU6XFx0XFx0ZGF0YWN0cmwgfD0gdmFyaWFudC1cXHUwMDNlZGF0YWN0cmxfbWFza19zZGlvO1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNjYtXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L21tY2kuYy0xMjcyLVxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jOjEyNzM6XFx0XFx0aWYgKHZhcmlhbnQtXFx1MDAzZXN0X3NkaW8gXFx1MDAyNlxcdTAwMjYgZGF0YS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNTUNfREFUQV9XUklURSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTEyNzQtXFx0XFx0ICAgIChob3N0LVxcdTAwM2VzaXplIFxcdTAwM2MgOCB8fFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM9MTY5Nz1zdGF0aWMgaXJxcmV0dXJuX3QgbW1jaV9waW9faXJxKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3NjgtXFxuZHJpdmVycy9tbWMvaG9zdC9tbWNpLmM6MTc2OTpzdGF0aWMgdm9pZCBtbWNpX3dyaXRlX3NkaW9faXJxX2JpdChzdHJ1Y3QgbW1jaV9ob3N0ICpob3N0LCBpbnQgZW5hYmxlKVxcbmRyaXZlcnMvbW1jL2hvc3QvbW1jaS5jLTE3NzAte1xcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjE5LjM3NzM3ODYyMloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5MzAyNzA3MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIGBicmNtZm1hY2AgRHJpdmVyIGFuZCBGdXp6aW5nIFBvc3NpYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBicmNtZm1hY2AgZHJpdmVyIGFuZCB0aGlua2luZyBhYm91dCBob3cgdG8gZnV6eiBpdCBlZmZlY3RpdmVseSB3aXRoIHN5emthbGxlci4gRmlyc3QsIGl0J3MgY2xlYXIgdGhhdCBTRElPIGlzIGEgYnVzLCBhbmQgdGhlIGtlcm5lbCBoYXMgYSBudW1iZXIgb2YgU0RJTyBob3N0IGNvbnRyb2xsZXJzIHRvIG1hbmFnZSB0aGVzZSBpbnRlcmZhY2VzLiBTeXprYWxsZXIgZG9lc24ndCBzZWVtIHRvIGhhdmUgYSB0cnVseSBnZW5lcmljIFNESU8gcGFja2V0IGluamVjdG9yLiBIbW0sIHRob3VnaCB0aGVyZSdzIHRoZSBXaS1GaSBmdXp6aW5nLCB3aGljaCBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYC4gQnV0IHRoYXQncyBzcGVjaWZpYyB0byBtYWM4MDIxMSBkcml2ZXJzLiBUaGlzIGBicmNtZm1hY2AgZHJpdmVyIGlzIGRpZmZlcmVudDsgaXQncyBhIEZ1bGxNQUMgZHJpdmVyIGFuZCBjYW4gdGFsayB0byBmaXJtd2FyZSB0aHJvdWdoIFNESU8sIFVTQiwgKm9yKiBQQ0llLiBcblxuV2FpdCBhIG1pbnV0ZSwgSSByZW1lbWJlciB0aGVyZSdzIGEgVVNCIGludGVyZmFjZSBmb3IgYGJyY21mbWFjYCAoYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuY2ApLiBJZiBzeXprYWxsZXIgaXMgYWxyZWFkeSBzZXQgdXAgdG8gZnV6eiBVU0IsIEkgc2hvdWxkIGJlIGFibGUgdG8gcHJvYmUgYGJyY21mbWFjYCB1c2luZyB0aGUgVVNCIGludGVyZmFjZS4gQnV0LCBob2xkIG9uLiBUaGlzIHBhdGNoIGlzIGxvY2F0ZWQgc3BlY2lmaWNhbGx5IGluIGBzZGlvLmNgLCBsb29raW5nIGF0IGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIERvZXMgdGhpcyBtZWFuIHRoZSBjb2RlIGluIGBzZGlvLmNgIGlzIGV2ZXIgcmVhY2hhYmxlIGZyb20gdGhlIFVTQiBpbnRlcmZhY2U/IE5vLCB0aGV5IGFyZSBkaWZmZXJlbnQgYnVzIGludGVyZmFjZXMgZm9yIHRoZSBzYW1lIGRyaXZlci4gSSBuZWVkIHRvIGJlIHN1cmUuIEl0J3MgdGltZSB0byBjaGVjayBpZiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIGlzIG9ubHkgY29tcGlsZWQsIG9yIHJlYWNoYWJsZSwgd2hlbiBTRElPIGlzIHNlbGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzMyMSwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOToyNS4zMDc2NzU2OTRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDgzMjAwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX3JlYWRfY29udHJvbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NTc9c3RhdGljIHVpbnQgYnJjbWZfc2Rpb19yZWFkZnJhbWVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHVpbnQgbWF4ZnJhbWVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE3LVxcdFxcdFxcdGlmIChyZC1cXHUwMDNlY2hhbm5lbCA9PSBTRFBDTV9DT05UUk9MX0NIQU5ORUwpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjE5MTg6XFx0XFx0XFx0XFx0YnJjbWZfc2Rpb19yZWFkX2NvbnRyb2woYnVzLCBidXMtXFx1MDAzZXJ4aGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTkxOS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRyZC1cXHUwMDNlbGVuLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOToyNS41OTg1MTM5MjlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDUwOTM3MjU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipTeXprYWxsZXIncyBEaXNjb3ZlcnkqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGlzIHZ1bG5lcmFiaWxpdHkgaXMgaXNvbGF0ZWQgdG8gYHNkaW8uY2AuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgYHNkaW8uY2AgaXMgZXZlbiBhY2Nlc3NpYmxlIHdpdGhpbiB0aGUgU3l6a2FsbGVyIHRlc3RpbmcgZW52aXJvbm1lbnQuIFRoZW4gSSBxdWlja2x5IHJlbWVtYmVyZWQgdGhlIGNvbW1pdCBtZXNzYWdlIHNheWluZyBcIkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gSG9sZCBvbiBhIHNlY29uZC4uLlN5emthbGxlciAqZm91bmQqIHRoaXMgYnVnPyBXb3chIFRoYXQncyBpbXByZXNzaXZlLiBOb3cgSSdtIHJlYWxseSBjdXJpb3VzOiBob3cgZGlkIFN5emthbGxlciBtYW5hZ2UgdG8gdHJpZ2dlciBhIGJ1ZyB3aXRoaW4gYGJyY21mbWFjL3NkaW8uY2A/IFRoYXQncyBub3QgYSBjb21tb24gdGFyZ2V0LiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgYXR0YWNrIHZlY3Rvci5cblxuTXkgbmV4dCBzdGVwIGlzIGRlZmluaXRlbHkgdG8gaW52ZXN0aWdhdGUgaWYgdGhlcmUncyBkZWRpY2F0ZWQgU0RJTyBmdXp6aW5nIGhhcHBlbmluZywgb3IgaWYgdGhlIGNvZGUgaXMgYmVpbmcgcmVhY2hlZCBpbmRpcmVjdGx5LiBQZXJoYXBzIHRoZXJlJ3MgYSBzaW11bGF0ZWQgU0RJTyBob3N0IGNvbnRyb2xsZXIgc2V0IHVwIGZvciB0ZXN0aW5nIHB1cnBvc2VzPyBJIHNob3VsZCBzdGFydCBieSBzZWFyY2hpbmcgd2l0aGluIHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeSBmb3IgYW55dGhpbmcgcmVsYXRlZCB0byBcImR1bW15XCIuIFRoYXQgc2hvdWxkIGdpdmUgbWUgc29tZSBjbHVlcyBhYm91dCB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTgzMjgsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MzAuMTA3ODg5ODQ4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTQyNDg5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkdW1teVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9ob3N0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jPTU3PXN0YXRpYyBpbnQgdGh1bmRlcl9tbWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jLTEzNC1cXHRcXHQgKiBtbWNfb2ZfcGFyc2UgYW5kIGRldm0qIHJlcXVpcmUgb25lIGRldmljZSBwZXIgc2xvdC5cXG5kcml2ZXJzL21tYy9ob3N0L2Nhdml1bS10aHVuZGVyeC5jOjEzNTpcXHRcXHQgKiBDcmVhdGUgYSBkdW1teSBkZXZpY2UgcGVyIHNsb3QgYW5kIHNldCB0aGUgbm9kZSBwb2ludGVyIHRvXFxuZHJpdmVycy9tbWMvaG9zdC9jYXZpdW0tdGh1bmRlcnguYy0xMzYtXFx0XFx0ICogdGhlIHNsb3QuIFRoZSBlYXNpZXN0IHdheSB0byBnZXQgdGhpcyBpcyB1c2luZ1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9saXRleF9tbWMuYz00NTA9c3RhdGljIHZvaWQgbGl0ZXhfbW1jX3NldF9pb3Moc3RydWN0IG1tY19ob3N0ICptbWMsIHN0cnVjdCBtbWNfaW9zICppb3MpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L2xpdGV4X21tYy5jLTQ1NS1cXHQgKiBUaGUgU0Qgc3BlY2lmaWNhdGlvbiByZXF1aXJlcyBhdCBsZWFzdCA3NCBpZGxlIGNsb2NrcyBiZWZvcmUgQ01EMC5cXG5kcml2ZXJzL21tYy9ob3N0L2xpdGV4X21tYy5jOjQ1NjpcXHQgKiBUaGVzZSBkdW1teSBjeWNsZXMgaXMgZ2VuZXJhdGVkIGJ5IHdyaXRpbmcgTElURVhfUEhZX0lOSVRJQUxJWkUuXFxuZHJpdmVycy9tbWMvaG9zdC9saXRleF9tbWMuYy00NTctXFx0ICovXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L29tYXAuYz0yMDE9c3RhdGljIHZvaWQgbW1jX29tYXBfc2VsZWN0X3Nsb3Qoc3RydWN0IG1tY19vbWFwX3Nsb3QgKnNsb3QsIGludCBjbGFpbWVkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9vbWFwLmMtMjM1LVxcbmRyaXZlcnMvbW1jL2hvc3Qvb21hcC5jOjIzNjpcXHRcXHQvKiBEb2luZyB0aGUgZHVtbXkgcmVhZCBoZXJlIHNlZW1zIHRvIHdvcmsgYXJvdW5kIHNvbWUgYnVnXFxuZHJpdmVycy9tbWMvaG9zdC9vbWFwLmMtMjM3LVxcdFxcdCAqIGF0IGxlYXN0IGluIE9NQVAyNHh4IHNpbGljb24gd2hlcmUgdGhlIGNvbW1hbmQgd291bGQgbm90XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfcGNpX3NkbW1jLmM9MjA4PXN0YXRpYyB2b2lkIHNkX3NlbmRfY21kX2dldF9yc3Aoc3RydWN0IHJlYWx0ZWtfcGNpX3NkbW1jICpob3N0LFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3BjaV9zZG1tYy5jLTMwMS1cXHRcXHQgKiBUaGUgY29udHJvbGxlciBvZmZsb2FkcyB0aGUgbGFzdCBieXRlIHtDUkMtNywgZW5kIGJpdCAxJ2IxfVxcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF9wY2lfc2RtbWMuYzozMDI6XFx0XFx0ICogb2YgcmVzcG9uc2UgdHlwZSBSMi4gQXNzaWduIGR1bW15IENSQywgMCwgYW5kIGVuZCBiaXQgdG8gdGhlXFxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3BjaV9zZG1tYy5jLTMwMy1cXHRcXHQgKiBieXRlKHB0clsxNl0sIGdvZXMgaW50byB0aGUgTFNCIG9mIHJlc3BbM10gbGF0ZXIpLlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9ydHN4X3VzYl9zZG1tYy5jPTI4NT1zdGF0aWMgdm9pZCBzZF9zZW5kX2NtZF9nZXRfcnNwKHN0cnVjdCBydHN4X3VzYl9zZG1tYyAqaG9zdCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYy00MjUtXFx0XFx0ICogVGhlIGNvbnRyb2xsZXIgb2ZmbG9hZHMgdGhlIGxhc3QgYnl0ZSB7Q1JDLTcsIGVuZCBiaXQgMSdiMX1cXG5kcml2ZXJzL21tYy9ob3N0L3J0c3hfdXNiX3NkbW1jLmM6NDI2OlxcdFxcdCAqIG9mIHJlc3BvbnNlIHR5cGUgUjIuIEFzc2lnbiBkdW1teSBDUkMsIDAsIGFuZCBlbmQgYml0IHRvIHRoZVxcbmRyaXZlcnMvbW1jL2hvc3QvcnRzeF91c2Jfc2RtbWMuYy00MjctXFx0XFx0ICogYnl0ZShwdHJbMTZdLCBnb2VzIGludG8gdGhlIExTQiBvZiByZXNwWzNdIGxhdGVyKS5cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14LmMtMjE0LVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktZXNkaGMtaW14LmM6MjE1Oi8qIHRoZSBjb250cm9sbGVyIGhhcyBkdW1teSBwYWQgZm9yIGNsb2NrIGxvb3BiYWNrICovXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1lc2RoYy1pbXguYy0yMTYtI2RlZmluZSBFU0RIQ19GTEFHX0RVTU1ZX1BBRFxcdFxcdEJJVCgxOSlcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYz0xMDE9c3RhdGljIHUzMiBweGF2MV9pcnEoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHUzMiBpbnRtYXNrKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEwNi1cXHRpZiAocHhhdjJfaG9zdC1cXHUwMDNlc2Rpb19tcnEgXFx1MDAyNlxcdTAwMjYgKGludG1hc2sgXFx1MDAyNiBTREhDSV9JTlRfQ01EX01BU0spKSB7XFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjEwNzpcXHRcXHQvKiBUaGUgZHVtbXkgQ01EMCBmb3IgdGhlIFNESU8gd29ya2Fyb3VuZCBqdXN0IGNvbXBsZXRlZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xMDgtXFx0XFx0c2RoY2lfd3JpdGVsKGhvc3QsIGludG1hc2sgXFx1MDAyNiBTREhDSV9JTlRfQ01EX01BU0ssIFNESENJX0lOVF9TVEFUVVMpO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jPTEyMz1zdGF0aWMgdm9pZCBweGF2MV9yZXF1ZXN0X2RvbmUoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHN0cnVjdCBtbWNfcmVxdWVzdCAqbXJxKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEzNi1cXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLXB4YXYyLmM6MTM3OlxcdFxcdC8qIENsb2NrIGlzIG5vdyBzdG9wcGVkLCBzbyByZXN0YXJ0IGl0IGJ5IHNlbmRpbmcgYSBkdW1teSBDTUQwICovXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTEzOC1cXHRcXHRweGF2Ml9ob3N0ID0gc2RoY2lfcGx0Zm1fcHJpdihzZGhjaV9wcml2KGhvc3QpKTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2ktcHhhdjIuYy0xNDktXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jOjE1MDpcXHRcXHQvKiBEb24ndCBmaW5pc2ggdGhpcyByZXF1ZXN0IHVudGlsIHRoZSBkdW1teSBDTUQwIGZpbmlzaGVzICovXFxuZHJpdmVycy9tbWMvaG9zdC9zZGhjaS1weGF2Mi5jLTE1MS1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmM9NjUzPXN0YXRpYyBpbnQgc2RoY2lfcHJlX2RtYV90cmFuc2ZlcihzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02ODktXFx0XFx0XFx0XFx0XFx0ICAgbW1jX2dldF9kbWFfZGlyKGRhdGEpKTtcXG5kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmM6NjkwOlxcdFxcdC8qIEp1c3QgYSBkdW1teSB2YWx1ZSAqL1xcbmRyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYy02OTEtXFx0XFx0c2dfY291bnQgPSAxO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOTozMC4xNzczMjMxNDdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM4MzYyOTAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgIFRyaWdnZXIqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLi4uIGlzIHRoZXJlIHNvbWUga2luZCBvZiBgc3l6X21hYzgwMjExX2h3c2ltYCB0aGluZ3kgaW4gc3l6a2FsbGVyIEknbSBtaXNzaW5nPyBOb3BlLCB0aGF0J3MgZGVmaW5pdGVseSBtYWM4MDIxMS1zcGVjaWZpYy4gSG1tLCB0aGF0J3Mgbm90IGl0LiBSaWdodCwgc28gaG93IGluIHRoZSB3b3JsZCBpcyBzeXprYWxsZXIgaGl0dGluZyBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgPyBJdCBkb2Vzbid0IHF1aXRlIGFkZCB1cC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGF0dGFjayBzdXJmYWNlLlxuXG5BbHJpZ2h0LCBsZXQncyB0YWtlIGEgbG9vay4gSSdsbCBiZXQgdGhlcmUncyBhbiBTRElPIGZ1enplciBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbC4gV2hlcmUgd291bGQgdGhleSBwdXQgdGhhdCwgdGhvdWdoPyBQcm9iYWJseSBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgbW1jIHN1YnN5c3RlbSwgcmlnaHQ/IEknbGwgY2hlY2sgYGRyaXZlcnMvbW1jL2NvcmUvYCBhbmQgc2VlIGlmIHRoZXJlJ3MgYW55IG9idmlvdXMgY2FuZGlkYXRlcyB0aGVyZS4gTGV0IG1lIHN0YXJ0IHdpdGggYSBxdWljayBzZWFyY2ggb2YgdGhlIGBkcml2ZXJzL21tYy9gIGRpcmVjdG9yeSBmb3IgXCJmdXp6XCIgb3IgXCJzeXpcIi4gSG9wZWZ1bGx5LCB0aGlzIG5hcnJvd3MgdGhpbmdzIGRvd24sIGFuZCBnaXZlcyBtZSBhIHN0YXJ0aW5nIHBvaW50LiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZmluZCFcblxuXG4iLCJJbnB1dFRva2VucyI6MjAxNzksIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6MzQuNTYwOTU1Nzk4WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDU2NTU3OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZnV6elwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjM0LjY0NTUyOTMyN1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODc4NDYxNzE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIEJyY21mbWFjIFNESU8gQnVnKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBJIG5lZWQgdG8gcGlucG9pbnQgaG93IHRoaXMgYGJyY21mbWFjYCBTRElPIGJ1ZyBpcyBiZWluZyB0cmlnZ2VyZWQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBzZWUgaWYgYW55IGBzZGlvYCBtZW50aW9ucyBwb3AgdXAgd2l0aGluIHRoZSBgbmV0L21hYzgwMjExL2Agb3IgYG5ldC93aXJlbGVzcy9gIGRpcmVjdG9yaWVzLiBIb3dldmVyLCBteSB1bmRlcnN0YW5kaW5nIG9mIHN5emthbGxlciBzdWdnZXN0cyB0aGUgdW5kZXJseWluZyBkZXZpY2UgY291bGQgYmUgYHZoY2lgIG92ZXIgVVNCLiBNYXliZSB0aGUgdHJpZ2dlciBpcyBpbmRpcmVjdCwgYW5kIHRoZSByb290IGNhdXNlIGxpZXMgaW4gYGJyY21mbWFjYCwgYnV0IG5vdCBzdHJpY3RseSB3aXRoIFNESU8uIExldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCB0aGUgcGF0Y2ggaXMgaW5kZWVkIGluIGBicmNtZm1hYy9zZGlvLmNgLiBBaCwgeWVzLCBpdCBpcy5cblxuTm93LCBteSBuZXh0IGxpbmUgb2YgdGhpbmtpbmcgaXMsIGNhbiBgYnJjbWZtYWNgIGJlIGNvbXBpbGVkIGludG8gc29tZXRoaW5nIGVsc2UsIG9yIHJlYWNoYWJsZSB2aWEgYW5vdGhlciByb3V0ZT8gU3l6a2FsbGVyIGhhcyBhIGBzeXpfODAyMTFfaW5qZWN0X2ZyYW1lYCBwc2V1ZG8tc3lzY2FsbCwgc28sIHBlcmhhcHMgdGhlcmUncyBhIGNvbm5lY3Rpb24gdGhlcmU/IE5vLCBoYW5nIG9uLiBTeXprYWxsZXIgYWxzbyBoYXMgYHN5el91c2JfY29ubmVjdGAsIHdoaWNoIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzLiBCdXQgdGhpcyBpcyBhbiBTRElPIGlzc3VlLiBEb2VzIHN5emthbGxlciBvZmZlciBTRElPIGVtdWxhdGlvbiBhcyB3ZWxsP1xuXG5BbHJpZ2h0LCBsZXQncyBzdGVwIGJhY2sgYW5kIGNvbnNpZGVyIGhvdyBTRElPIGludGVyYWN0aW9ucyBtaWdodCBiZSBzaW11bGF0ZWQuIEknbGwgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGluIGBkcml2ZXJzL21tYy9jb3JlL3NkaW8uY2AgYW5kIGBkcml2ZXJzL21tYy9jb3JlL2NvcmUuY2AgZm9yIGFueSBzaWduIG9mIGEgZHVtbXkgaG9zdCwgYSB2aXJ0dWFsIFNESU8gaW50ZXJmYWNlLiBXaGF0IGFib3V0IGB2aXJ0aW9fbW1jYD8gTGV0IG1lIGxvb2sgaW5zaWRlIGBkcml2ZXJzL21tYy9ob3N0L2AgZm9yIGB2aXJ0aW9gLiBJJ2xsIHRyeSB0byBmaW5kIGFueSBwb3RlbnRpYWwgYXZlbnVlcyBmb3IgdHJpZ2dlcmluZyB0aGlzIFNESU8gdnVsbmVyYWJpbGl0eSB3aXRoaW4gdGhlIHN5emthbGxlciBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDU4NSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDowOTo0MC41MjM5OTM4NjJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0ODYwMDM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZpcnRpb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9ob3N0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L3VzZGhpNnJvbDAuYy0yNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZS5oXFx1MDAzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdXNkaGk2cm9sMC5jOjI3OiNpbmNsdWRlIFxcdTAwM2NsaW51eC92aXJ0aW8uaFxcdTAwM2VcXG5kcml2ZXJzL21tYy9ob3N0L3VzZGhpNnJvbDAuYy0yOC0jaW5jbHVkZSBcXHUwMDNjbGludXgvd29ya3F1ZXVlLmhcXHUwMDNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjQwLjU4ODg2MDg0WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgzMzcwNjI2MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgYGJyY21mbWFjYCBEcml2ZXIgZm9yIFNpbXVsYXRpb24gQ2FwYWJpbGl0aWVzKipcblxuT2theSwgc28gdGhlcmUncyBubyBgdmlydGlvX21tY2AgZHJpdmVyLCB0aGF0IG11Y2ggaXMgY2xlYXIuIEhtbSwgd2FpdCBhIHNlY29uZC4uLiBkaWRuJ3Qgc3l6a2FsbGVyIGZpbmQgYSBidWcgaW4gc29tZXRoaW5nIHJlbGF0ZWQgdG8gU0RJTyBhbmQgYGJyY21mbWFjYD8gSSBuZWVkIHRvIGpvZyBteSBtZW1vcnkuIExldCBtZSBzZWUuLi4gSSB3b25kZXIgaWYgdGhlcmUncyBhIHN5emthbGxlciBwcmltaXRpdmUgbGlrZSBgc3l6X3NkaW9gPyBXaGVyZSB3b3VsZCBJIGV4cGVjdCB0byBmaW5kIG1vY2sgb3Igc2ltdWxhdGlvbiBjb2RlIGZvciBNTUMgb3IgU0RJTyBpbnRlcmZhY2VzPyBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBjaGVjayBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYCBvciBkaXZlIGludG8gdGhlIGBkcml2ZXJzL21tYy9gIGRpcmVjdG9yeS5cblxuTm8gZGljZSB0aGVyZS4gT2theSwgc28gbWF5YmUgaXQgaXNuJ3QgYSBkaXJlY3QgbW9jay4gUGVyaGFwcyB0aGUgYGJyY21mbWFjYCBkcml2ZXIgaXMgdGVzdGVkIHZpYSBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB0aGUgc3RhbmRhcmQgZHJpdmVyIGZvciBzaW11bGF0aW5nIHdpcmVsZXNzIGRldmljZXM/IE5vLCB0aGF0J3Mgbm90IHJpZ2h0OyBgYnJjbWZtYWNgIGlzIGEgcmVhbCBkcml2ZXIsIG5vdCBhIHNpbXVsYXRpb24uIE9rYXksIHNvIHRoZW4sIGhvdyBkaWQgc3l6a2FsbGVyIGZpbmQgYSBidWcgaW4gYGJyY21mbWFjL3NkaW8uY2A/IFRoYXQncyB0aGUgcmVhbCBwdXp6bGUuXG5cbkFoYSEgTWF5YmUsIGp1c3QgbWF5YmUsIGBicmNtZm1hY2AgaGFzIGl0cyBvd24gaW50ZXJuYWwgc2ltdWxhdGlvbiBpbnRlcmZhY2UuIFBlcmhhcHMgaXQncyBhIGRlZGljYXRlZCBgc2ltYCBmZWF0dXJlIG9yLCBJIGRvbid0IGtub3csIGEgd2F5IHRvIGZ1enogdGhlIGNvZGUgaW50ZXJuYWxseS4gVGltZSB0byBkaWcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9gIGRpcmVjdG9yeSBhbmQgc2VlIGlmIEkgY2FuIGZpbmQgYW55IHRyYWNlIG9mIGEgYHNpbWAgaW50ZXJmYWNlIG9yIGFueXRoaW5nIHJlbGF0ZWQgdG8gZnV6emluZy4gVGhhdCdzIG15IG5leHQgYXZlbnVlIG9mIGludmVzdGlnYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMzIzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjQ4LjkyNTkyNzQ2WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTMxODU4NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2ltXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MjAzMT1icmNtZl9zZXRfd3NlY19tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMjA4Ni1cXHRicmNtZl9kYmcoQ09OTiwgXFxcInB2YWwgKCVkKSBndmFsICglZClcXFxcblxcXCIsIHB2YWwsIGd2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjIwODc6XFx0LyogSW4gY2FzZSBvZiBwcml2YWN5LCBidXQgbm8gc2VjdXJpdHkgYW5kIFdQUyB0aGVuIHNpbXVsYXRlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMjA4OC1cXHQvKiBzZXR0aW5nIEFFUy4gV1BTLTIuMCBhbGxvd3Mgbm8gc2VjdXJpdHkgICAgICAgICAgICAgICAgICAgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9OTY9dm9pZCBicmNtZl9jb25maWd1cmVfYXJwX25kX29mZmxvYWQoc3RydWN0IGJyY21mX2lmICppZnAsIGJvb2wgZW5hYmxlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTEtXFx0LyogVHJ5IHRvIHNldCBhbmQgZW5hYmxlIEFSUCBvZmZsb2FkIGZlYXR1cmUsIHRoaXMgbWF5IGZhaWwsIHRoZW4gaXQgICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxMTI6XFx0LyogaXMgc2ltcGx5IG5vdCBzdXBwb3J0ZWQgYW5kIGVyciAwIHdpbGwgYmUgcmV0dXJuZWQgICAgICAgICAgICAgICAgICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTMtXFx0ZXJyID0gYnJjbWZfZmlsX2lvdmFyX2ludF9zZXQoaWZwLCBcXFwiYXJwX29sXFxcIiwgbW9kZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTEyMjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYnVzX3Jlc2V0X2ZvcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxMjI1OlxcdC5vcGVuXFx0PSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEyMjYtXFx0LndyaXRlXFx0PSBidXNfcmVzZXRfd3JpdGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5oLTI5LSAqIERPVDExSDogZmlybXdhcmUgc3VwcG9ydHMgODAyLjExaFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmg6MzA6ICogU0FFOiBzaW11bHRhbmVvdXMgYXV0aGVudGljYXRpb24gb2YgZXF1YWxzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuaC0zMS0gKiBGV0FVVEg6IEZpcm13YXJlIGF1dGhlbnRpY2F0b3JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mbG93cmluZy5jPTI1OT11MzIgYnJjbWZfZmxvd3JpbmdfZW5xdWV1ZShzdHJ1Y3QgYnJjbWZfZmxvd3JpbmcgKmZsb3csIHUxNiBmbG93aWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmxvd3JpbmcuYy0yNzQtXFx0XFx0ICogcHJvdGVjdCwgYnV0IHRoYXQgaXMgdW5kZXNpcmFibGUgZm9yIGV2ZXJ5IGVucXVldWUgYW5kXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Zsb3dyaW5nLmM6Mjc1OlxcdFxcdCAqIGRlcXVldWUuIFRoaXMgc2ltcGxlIGNoZWNrIHdpbGwgc29sdmUgYSBwb3NzaWJsZSByYWNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Zsb3dyaW5nLmMtMjc2LVxcdFxcdCAqIGNvbmRpdGlvbiBpZiBpdCBvY2N1cnMuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9NDg5PXN0YXRpYyB2b2lkIGJyY21mX3AycF9nZW5lcmF0ZV9ic3NfbWFjKHN0cnVjdCBicmNtZl9wMnBfaW5mbyAqcDJwLCB1OCAqZGV2X2FkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtNTE4LVxcdC8qIEdlbmVyYXRlIHRoZSBQMlAgSW50ZXJmYWNlIEFkZHJlc3MuICBJZiB0aGUgZGlzY292ZXJ5IGFuZCBjb25uZWN0aW9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjUxOTpcXHQgKiBCU1NDRkdzIG5lZWQgdG8gc2ltdWx0YW5lb3VzbHkgY28tZXhpc3QsIHRoZW4gdGhpcyBhZGRyZXNzIG11c3QgYmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtNTIwLVxcdCAqIGRpZmZlcmVudCBmcm9tIHRoZSBQMlAgRGV2aWNlIEFkZHJlc3MsIGJ1dCBhbHNvIGxvY2FsbHkgYWRtaW5pc3RlcmVkLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTg5MT1icmNtZl91c2JfZGxfd3JpdGVpbWFnZShzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8sIHU4ICpmdywgaW50IGZ3bGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTkzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6OTMyOlxcdFxcdFxcdC8qIHNpbXBseSBhdm9pZCBoYXZpbmcgdG8gc2VuZCBhIFpMUCBieSBlbnN1cmluZyB3ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy05MzMtXFx0XFx0XFx0ICogbmV2ZXIgaGF2ZSBhbiBldmVuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjQ5LjA3OTEyMDU4N1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTYyNTYxODkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlYnVnZ2luZyB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBUcmlnZ2VyKipcblxuT2theSwgc28gdGhlcmUncyBubyBvYnZpb3VzIHNpbXVsYXRvciB0aGF0J3MgY2F1c2luZyB0aGlzLiBUaGUgaW50ZXJlc3RpbmcgcGFydCBpcywgaG93IGRpZCBzeXprYWxsZXIgZXZlbiAqaGl0KiBgYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2xgPyBUaGF0J3MgdGhlIHJlYWwgcHV6emxlLiBMZXQncyBzdGFydCB3aXRoIGEgYmFzaWMgYXBwcm9hY2ggYW5kIHNlYXJjaCB0aGUgc3l6a2FsbGVyIGJ1ZyB0cmFja2VyOyBtYXliZSBpdCdzIGEga25vd24gaXNzdWUuIE90aGVyd2lzZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHBhdGguXG5cbkNvdWxkIHRoZXJlIGJlIGFuIFNESU8gZnV6emVyIGJha2VkIGludG8gdGhlIGtlcm5lbCBzb21ld2hlcmU/IFRpbWUgdG8gY2hlY2sgdGhlIHN0YW5kYXJkIGxvY2F0aW9ucywgc3BlY2lmaWNhbGx5IHRoZSBgZHJpdmVycy9tbWMvaG9zdC9gIGRpcmVjdG9yeS4gSSdsbCBzY2FuIGZvciBhbnl0aGluZyBuYW1lZCBgZnV6emAsIGBkdW1teWAsIGB2aGNpYCwgYHZpcnRpb2AsIG9yIGBtYWM4MDIxMV9od3NpbWAgd2hpY2ggd291bGQgcHJvdmlkZSBhIGxpa2VseSB0ZXN0IGhhcm5lc3MuXG5cbkhtbSwgd2FpdC4gSXMgaXQgcG9zc2libGUgdGhhdCBgYnJjbWZtYWNgIGdldHMgcHJvYmVkIHZpYSBhICpkaWZmZXJlbnQqIGJ1cywgYW5kICp0aGVuKiB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBmdW5jdGlvbiBnZXRzIGNhbGxlZCBpbmRpcmVjdGx5PyBCdXQgbm8sIGEgcXVpY2sgY2hlY2ssIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgaXMgcmlnaHQgdGhlcmUgaW4gYHNkaW8uY2AsIHdoaWNoIGlzIHRoZSBTRElPIGJ1cyBpbnRlcmZhY2UuIFNvIGl0J3MgY2xlYXJseSByZWxhdGVkIHRvIFNESU8uXG5cblJpZ2h0ISBgc2Rpby5jYCAqcmVnaXN0ZXJzKiBhbiBTRElPIGRyaXZlcjogYHNkaW9fcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNmJyY21mX3NkaW9kX2RyaXZlcik7YC4gVGhhdCdzIHRoZSBrZXkuIE5vdywgdGhlIHF1ZXN0aW9uIGJlY29tZXMsIGhvdyBpcyB0aGF0IFNESU8gZHJpdmVyIGdldHRpbmcgcHJvYmVkIGJ5IHN5emthbGxlcj8gSXQgY291bGQgYmUgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcgYSBkdW1teSBTRElPIGhvc3QgY29udHJvbGxlciwgYSB2aXJ0dWFsIG9uZSBwZXJoYXBzLiBMZXQncyBnbyBiYWNrIGFuZCBjaGVjayB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvYCBkaXJlY3RvcnkgZm9yIGFueSBzaWducyBvZiBhIFwiZHVtbXlcIiBvciBcInZpcnR1YWxcIiBjb250cm9sbGVyLlxuXG5EYW1uLCBJIGRpZG4ndCBzZWUgYW55dGhpbmcgb2J2aW91cyB3aGVuIEkgbG9va2VkIGZvciBcImR1bW15LlwiIE9rYXksIHRpbWUgdG8gYnJvYWRlbiB0aGUgc2VhcmNoLiBJJ20gZ29pbmcgdG8gc2VhcmNoIGZvciBcInN5elwiIGluIHRoZSBlbnRpcmUgYGRyaXZlcnMvbW1jL2AgZGlyZWN0b3J5IHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgc3l6a2FsbGVyIHNwZWNpZmljIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTk1LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjA5OjU2LjY0MTY4NTAzWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzkxMTM4OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MDk6NTYuNzI1NjA0MjY5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MDA2Mjc2NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgZnJvbSBhbiBleHBlcnQncyBwZXJzcGVjdGl2ZTpcblxuKipEaXZpbmcgaW50byB0aGUgYnJjbWZtYWMgRHJpdmVyKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEknbSB0aGlua2luZywgbGV0J3MgemVybyBpbiBvbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9gIGRpcmVjdG9yeS4gVGhhdCdzIHdoZXJlIHRoZSBCcm9hZGNvbSBXaS1GaSBkcml2ZXIgY29kZSBJJ20gbW9zdCBpbnRlcmVzdGVkIGluIHJlc2lkZXMsIHNwZWNpZmljYWxseSB0aGUgYGJyY21mbWFjYCBtb2R1bGUuIE15IGdvYWwgaXMgY2xlYXI6IEkgbmVlZCB0byBxdWlja2x5IHNjYW4gdGhhdCBjb2RlIGJhc2UgZm9yIGFueSBoaW50cyBvZiBleGlzdGluZyBmdXp6aW5nIGluZnJhc3RydWN0dXJlIChgZnV6emApIG9yIGluc3RydW1lbnRhdGlvbiBidWlsdCBmb3IgU3l6a2FsbGVyIChgc3l6YCkuIEkgd2FudCB0byBzZWUgaWYgYW55IHByZS1leGlzdGluZyBlZmZvcnRzIG1pZ2h0IGJlIHRoZXJlIHRoYXQgd291bGQgZ2l2ZSBtZSBhIGxlZyB1cCBpbiBteSBjdXJyZW50IGludmVzdGlnYXRpb24uIEtub3dpbmcgdGhlIGxhbmRzY2FwZSBvZiB0aGUgdGFyZ2V0IG1vZHVsZSBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAuIEkgd2lsbCBiZSBsb29raW5nIGZvciB2YXJpYWJsZXMsIGZ1bmN0aW9uIG5hbWVzLCBtYWNybyBkZWZpbml0aW9ucyDigJMgYW55dGhpbmcgdGhhdCBzY3JlYW1zIFwiZnV6emluZ1wiIG9yIFwiU3l6a2FsbGVyLlwiIEZpbmRpbmcgYSBwcmV2aW91cyBzdGFydCBtZWFucyB0aGF0IEkgZG9uJ3QgaGF2ZSB0byBzdGFydCBmcm9tIHNjcmF0Y2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzOTk1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MDAuNDI2MjM1MDEyWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzYyMzA5OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjAwLjQ4Mzg2NDYwMVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MjA2OTMzMjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIGBicmNtZm1hY2AgRHJpdmVyIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJIHdhcyBjZXJ0YWluIHRoZXJlIHdhc24ndCBhIGBzeXpfc2Rpb18qYCBwc2V1ZG8tc3lzY2FsbCBpbiBzeXprYWxsZXIgcmVsYXRlZCB0byB0aGlzLiBJJ3ZlIGRvdWJsZS1jaGVja2VkLCByaWdodD8gQnV0LCB3YWl0Li4uIGlzbid0IHRoZXJlIGEgVVNCIGZ1enplciBpbiBzeXprYWxsZXI/IFRoZSBgZHVtbXlfaGNkYCBjb21wb25lbnQsIGlzbid0IGl0PyBJZiBgYnJjbWZtYWNgICpkb2VzKiBoYXZlIGEgVVNCIGludGVyZmFjZSwgdGhlbiBtYXliZSBpdCBjb3VsZCBiZSByZWFjaGVkIHZpYSBhIFVTQiBwcm9iZS4gVGhlIHNvdXJjZSBvZiB0aGUgaXNzdWUgSSBhbSB0YXJnZXRpbmcgaXMgbG9jYXRlZCBpbiBgc2Rpby5jYCwgdGhvdWdoLiBIb3cgY291bGQgYHNkaW8uY2AgcG9zc2libHkgYmUgZXhlY3V0ZWQgaWYgdGhlIGRldmljZSBpcyBiZWluZyBpbnRlcmFjdGVkIHdpdGggb3ZlciBVU0I/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjYWxsaW5nIGhpZXJhcmNoeS4gTXkgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiB0aGUgYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYCBmdW5jdGlvbiwgdGhlIHRhcmdldCBpbiBgc2Rpby5jYCwgaXMgY2FsbGVkIGZyb20gYW55d2hlcmUgaW4gdGhlIGB1c2IuY2AgZmlsZS4gSSBuZWVkIHRvIHRyYWNlIHRoYXQgcG90ZW50aWFsIGNvbm5lY3Rpb24gdG8gY29uZmlybSBpZiB0aGlzIHBhdGggaXMgYWN0dWFsbHkgdmlhYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDMyMiwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDowNi42OTA4MDE0MzlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MDU5Mjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJyY21mX3NkaW9fcmVhZF9jb250cm9sXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTg1Nz1zdGF0aWMgdWludCBicmNtZl9zZGlvX3JlYWRmcmFtZXMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdWludCBtYXhmcmFtZXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE5MTctXFx0XFx0XFx0aWYgKHJkLVxcdTAwM2VjaGFubmVsID09IFNEUENNX0NPTlRST0xfQ0hBTk5FTCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTkxODpcXHRcXHRcXHRcXHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChidXMsIGJ1cy1cXHUwMDNlcnhoZHIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xOTE5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdHJkLVxcdTAwM2VsZW4sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjA2Ljc2Njg2NjQ5N1oiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTY5MDM2MTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSByZXF1ZXN0ZWQ6XG5cbioqSW52ZXN0aWdhdGluZyBgYnJjbWZfc2Rpb19yZWFkZnJhbWVzYCBDYWxsZXJzKipcblxuQWxyaWdodCwgbGV0J3MgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoaXMgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AgZnVuY3Rpb24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0cyBkaXJlY3QgY2FsbCBzaXRlIGlzIGxpbWl0ZWQgdG8gd2l0aGluIGBzZGlvLmNgLiBUaGUgcXVlc3Rpb24gbm93IGJlY29tZXM6IGlzIHRoaXMgdGhlICpvbmx5KiBlbnRyeSBwb2ludCBmb3IgaXRzIGV4ZWN1dGlvbj8gVGhlIGltcGxpY2F0aW9uIGhlcmUgaXMgdGhlIHBvdGVudGlhbCBmb3IgdW5leHBlY3RlZCBiZWhhdmlvciBzaG91bGQgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AgYmUgY2FsbGVkIGVsc2V3aGVyZS4gQSB0aG9yb3VnaCBzdGF0aWMgYW5hbHlzaXMgaXMgd2FycmFudGVkLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluIG9mIHRoZSBzY29wZSBvZiB0aGlzIGZ1bmN0aW9uJ3MgZXhlY3V0aW9uIHRvIHVuZGVyc3RhbmQgaG93IGl0IGltcGFjdHMgdGhlIGxhcmdlciBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MDcwLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MTAuMzM1OTA2ODczWiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjIzMTA5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX3JlYWRmcmFtZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTE4NDU9c3RhdGljIHZvaWQgYnJjbWZfc2Rpb19wYWQoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgdTE2ICpwYWQsIHUxNiAqcmRsZW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE4NTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxODU3OnN0YXRpYyB1aW50IGJyY21mX3NkaW9fcmVhZGZyYW1lcyhzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1aW50IG1heGZyYW1lcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTE4NTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yNTg1PXN0YXRpYyB2b2lkIGJyY21mX3NkaW9fZHBjKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI2ODktXFx0aWYgKChpbnRzdGF0dXMgXFx1MDAyNiBJX0hNQl9GUkFNRV9JTkQpIFxcdTAwMjZcXHUwMDI2IChidXMtXFx1MDAzZWNsa3N0YXRlID09IENMS19BVkFJTCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI2OTA6XFx0XFx0YnJjbWZfc2Rpb19yZWFkZnJhbWVzKGJ1cywgYnVzLVxcdTAwM2VyeGJvdW5kKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI2OTEtXFx0XFx0aWYgKCFidXMtXFx1MDAzZXJ4cGVuZGluZylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MTAuMzg4MTQyODgyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MjY3NDUxMTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDYWxsIENvbnRleHQgb2YgYGJyY21mX3NkaW9fZHBjYCoqXG5cblJpZ2h0LCBsZXQgbWUgc2VlLi4uIEknbSBjdXJyZW50bHkgbG9va2luZyBhdCB0aGUgY29kZSBmb3IgdGhlIEJyb2FkY29tIFNESU8gZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBzZGlvLmNgIGZpbGUuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHRoZSBmdW5jdGlvbiBgYnJjbWZfc2Rpb19kcGNgLiBUaGUgY29kZSBpbmRpY2F0ZXMgdGhhdCBpdCdzIG9ubHkgY2FsbGVkIGZyb20gYGJyY21mX3NkaW9fZHBjYCBpdHNlbGYsIHdoaWNoIHNlZW1zIGEgbGl0dGxlIHN0cmFuZ2UuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBmdWxsIGNhbGwgZ3JhcGgsIHRob3VnaC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIG9ubHkgY2FsbCB0byB0aGlzIGZ1bmN0aW9uIGlzIHdpdGhpbiB0aGUgc2FtZSBmdW5jdGlvbi4gSSBuZWVkIHRvIGtub3cgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGlmIGl0IGlzIGNhbGxlZCBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGJyb2FkZXIgZHJpdmVyLiBJZiBpdCBpc24ndCwgdGhpcyBzZWVtcyBwZWN1bGlhciwgYW5kIG1pZ2h0IGluZGljYXRlIGVpdGhlciBhbiBpc3N1ZSBvciBhIG1vcmUgc3VidGxlLCBwZXJoYXBzIGludGVycnVwdC1kcml2ZW4sIGludGVyYWN0aW9uIHRoYXQgSSBuZWVkIHRvIGRpc3NlY3QuIEknbGwgZ2V0IHRvIHRoZSBib3R0b20gb2YgdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU3MzIsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDoxNC4yMTQ4OTE2NjNaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NDgyNDk3NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX2RwY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjU1OD1zdGF0aWMgaW50IGJyY21mX3NkaW9faW50cl9yc3RhdHVzKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTI1ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyNTg1OnN0YXRpYyB2b2lkIGJyY21mX3NkaW9fZHBjKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yNTg2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzc1Nz1zdGF0aWMgdm9pZCBicmNtZl9zZGlvX2RhdGF3b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zNzY1LVxcdFxcdGJ1cy1cXHUwMDNlZHBjX3RyaWdnZXJlZCA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc2NjpcXHRcXHRicmNtZl9zZGlvX2RwYyhidXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc2Ny1cXHRcXHRidXMtXFx1MDAzZWlkbGVjb3VudCA9IDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjE0LjQ3OTcyMjI1OFoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTcyMzkzMTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmF2ZWxpbmcgdGhlIFN5emthbGxlciBUcmlnZ2VyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgYnJjbWZfc2Rpb19kYXRhd29ya2VyYCBmdW5jdGlvbiwgYW5kIHRoZSBjb2RlIHNheXMgaXQncyBvbmx5IGNhbGxlZCBmcm9tIHdpdGhpbiBgc2Rpby5jYC4gUmlnaHQsIHNvIGl0J3MgYSB3b3JrcXVldWUgZnVuY3Rpb24uIFRoZSBiaWcgcXVlc3Rpb24gaXMsIGhvdyBkaWQgc3l6a2FsbGVyIGV2ZW4gKnJlYWNoKiB0aGlzIHRoaW5nPyBJdCBoYXMgdG8gYmUgcmVhY2hhYmxlIHRvIGhhdmUgZm91bmQgdGhlIGJ1ZyBpbiB0aGUgZmlyc3QgcGxhY2UsIHJpZ2h0P1xuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgbWF5YmUgaXQncyBwYWNrZXQgaW5qZWN0aW9uLCBzcGVjaWZpYyBTRElPIHBhY2tldHMuIEJ1dCBoYW5nIG9uLCBzeXprYWxsZXIgKmZvdW5kKiBpdC4gU28sIGhvdz8gSXMgdGhlcmUgYW4gZXF1aXZhbGVudCBvZiBgbWFjODAyMTFfaHdzaW1gIHRoYXQgZW11bGF0ZXMgU0RJTz8gSSBuZWVkIHRvIGV4cGxvcmUuIExldCdzIHNlZSBpZiB0aGVyZSdzIGFueSBzb3J0IG9mIFNESU8gZW11bGF0aW9uIGdvaW5nIG9uIGluIHRoZSBrZXJuZWwuXG5cbkhtbSwgbWF5YmUgaW4gYGRyaXZlcnMvbW1jL2NvcmUvc2Rpb19pby5jYD8gTm8sIHRoYXQgbG9va3MgbGlrZSB0aGUgY29yZSBTRElPIGZ1bmN0aW9uYWxpdHksIG5vdCBhbiBlbXVsYXRvci4gT2theSwgaG93IGFib3V0IGBkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jYD8gQmluZ28hIFRoYXQncyBhIFVTQi10by1TRElPIGhvc3QgY29udHJvbGxlci5cblxuQWhhISBgdnViMzAwYCBpcyBhIFVTQi10by1TRElPIGJyaWRnZSEgVGhhdCdzIGl0ISBJZiBzeXprYWxsZXIgaXMgZnV6emluZyBVU0IsIHBlcmhhcHMgdmlhIGEgZHVtbXkgSENELCB0aGVuIGl0IGNvdWxkIGJlIGVtdWxhdGluZyBhIGB2dWIzMDBgIGRldmljZS4gVGhlIGB2dWIzMDBgIGRyaXZlciB3b3VsZCB0aGVuIHJlZ2lzdGVyIGFuIFNESU8gaG9zdCBjb250cm9sbGVyLiBBbmQgdGhlbiwgc3l6a2FsbGVyIGNhbiBlbXVsYXRlIGFuIFNESU8gZGV2aWNlLCBsaWtlIGBicmNtZm1hY2AsIGJ5IHNlbmRpbmcgYXBwcm9wcmlhdGUgVVNCIHJlc3BvbnNlcyB0byB0aGUgYHZ1YjMwMGAgZHJpdmVyISBUaGF0J3MgaG93IGl0J3MgZG9uZSEgSSBqdXN0IG5lZWQgdG8gdmVyaWZ5IHRoYXQgYHZ1YjMwMGAgYWN0dWFsbHkgZXhpc3RzIGluIHRoZSBrZXJuZWwgYW5kIGlmIHN5emthbGxlciBpcyBhYmxlIHRvIGludGVyYWN0IHdpdGggaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NDE4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjIwLjY1MjExODQ1N1oiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODY2NjQwNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnViMzAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTY0MCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkyMD1jb25maWcgTU1DX1ZVQjMwMFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0NC1cXHQgIFRvIGNvbXBpbGUgdGhpcyBtbWMgaG9zdCBjb250cm9sbGVyIGRyaXZlciBhcyBhIG1vZHVsZSxcXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6OTQ1OlxcdCAgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB2dWIzMDAuXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0Ni1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGU9NjI9b2JqLSQoQ09ORklHX01NQ19KWjQ3NDApXFx0Kz0gano0NzQwX21tYy5vXFxuZHJpdmVycy9tbWMvaG9zdC9NYWtlZmlsZTo2MzpvYmotJChDT05GSUdfTU1DX1ZVQjMwMClcXHQrPSB2dWIzMDAub1xcbmRyaXZlcnMvbW1jL2hvc3QvTWFrZWZpbGUtNjQtb2JqLSQoQ09ORklHX01NQ19VU0hDKVxcdFxcdCs9IHVzaGMub1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0yNjA9TU9EVUxFX1BBUk1fREVTQyhmaXJtd2FyZV9yb21fd2FpdF9zdGF0ZXMsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI2NS0jZGVmaW5lIFZVQjMwMF9QUk9EVUNUX0lEXFx0MHgwMTJDXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNjY6c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHZ1YjMwMF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjY3LVxcdHtVU0JfREVWSUNFKEVMQU5fVkVORE9SX0lELCBWVUIzMDBfUFJPRFVDVF9JRCl9LFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNzAtfTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjI3MTpNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgdnViMzAwX3RhYmxlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTI3Mi1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9Mjg2PXN0cnVjdCBzZGlvX3JlZ2lzdGVyIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjk1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mjk2OnN0cnVjdCB2dWIzMDBfbW1jX2hvc3Qge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjk3LVxcdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zNTQtXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNTU6I2RlZmluZSBrcmVmX3RvX3Z1YjMwMF9tbWNfaG9zdChkKSBjb250YWluZXJfb2YoZCwgc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCwga3JlZilcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM1Ni0jZGVmaW5lIFNFVF9UUkFOU0ZFUl9QU0VVRE9DT0RFXFx0XFx0MjFcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzY4LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzY5OnN0YXRpYyB2b2lkIHZ1YjMwMF9kZWxldGUoc3RydWN0IGtyZWYgKmtyZWYpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0zNzAte1xcdFxcdFxcdFxcdC8qIGtyZWYgY2FsbGJhY2sgLSBzb2Z0aXJxICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNzE6XFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0ga3JlZl90b192dWIzMDBfbW1jX2hvc3Qoa3JlZik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzozNzI6XFx0c3RydWN0IG1tY19ob3N0ICptbWMgPSB2dWIzMDAtXFx1MDAzZW1tYztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM3My1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NDpcXHR1c2JfZnJlZV91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX291dF91cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc1OlxcdHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9vdXRfdXJiID0gTlVMTDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3NjpcXHR1c2JfZnJlZV91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX3Jlc191cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzc3OlxcdHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiID0gTlVMTDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM3ODpcXHR1c2JfcHV0X2Rldih2dWIzMDAtXFx1MDAzZXVkZXYpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzc5LVxcdG1tY19mcmVlX2hvc3QobW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM4MC1cXHQvKlxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MzgxOlxcdCAqIGFuZCBoZW5jZSBhbHNvIGZyZWVzIHZ1YjMwMFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzgyLVxcdCAqIHdoaWNoIGlzIGNvbnRhaW5lZCBhdCB0aGUgZW5kIG9mIHN0cnVjdCBtbWNcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzg1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Mzg2OnN0YXRpYyB2b2lkIHZ1YjMwMF9xdWV1ZV9jbW5kX3dvcmsoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMzg3LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM4ODpcXHRrcmVmX2dldChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjM4OTpcXHRpZiAocXVldWVfd29yayhjbW5kd29ya3F1ZXVlLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VjbW5kd29yaykpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTM5MC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDEtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDI6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDMtXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MDUtXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDY6c3RhdGljIHZvaWQgdnViMzAwX3F1ZXVlX3BvbGxfd29yayhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsIGludCBkZWxheSlcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQwNy17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDg6XFx0a3JlZl9nZXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0MDk6XFx0aWYgKHF1ZXVlX2RlbGF5ZWRfd29yayhwb2xsd29ya3F1ZXVlLCBcXHUwMDI2dnViMzAwLVxcdTAwM2Vwb2xsd29yaywgZGVsYXkpKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00MTAtXFx0XFx0LypcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDIxLVxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDIyOlxcdFxcdGtyZWZfcHV0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDIzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDI1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDI2OnN0YXRpYyB2b2lkIHZ1YjMwMF9xdWV1ZV9kZWFkX3dvcmsoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDI3LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyODpcXHRrcmVmX2dldChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQyOTpcXHRpZiAocXVldWVfd29yayhkZWFkd29ya3F1ZXVlLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VkZWFkd29yaykpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQzMC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NDEtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NDI6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NDMtXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz00NDY9c3RhdGljIHZvaWQgaXJxcG9sbF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0Ny17XFx0XFx0XFx0XFx0LyogdXJiIGNvbXBsZXRpb24gaGFuZGxlciAtIGhhcmRpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ0ODpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSAoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqKXVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ0OS1cXHRpZiAodXJiLVxcdTAwM2VzdGF0dXMpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTA6XFx0XFx0dnViMzAwLVxcdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSB1cmItXFx1MDAzZXN0YXR1cztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ1MTpcXHRjb21wbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ1Mi19XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTQ1ND1zdGF0aWMgdm9pZCBpcnFwb2xsX291dF9jb21wbGV0ZWQoc3RydWN0IHVyYiAqdXJiKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDU1LXtcXHRcXHRcXHRcXHQvKiB1cmIgY29tcGxldGlvbiBoYW5kbGVyIC0gaGFyZGlycSAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDU2OlxcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICopdXJiLVxcdTAwM2Vjb250ZXh0O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDU3LVxcdGlmICh1cmItXFx1MDAzZXN0YXR1cykge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDU4OlxcdFxcdHZ1YjMwMC1cXHUwMDNldXNiX3RyYW5zcG9ydF9mYWlsID0gdXJiLVxcdTAwM2VzdGF0dXM7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NTk6XFx0XFx0Y29tcGxldGUoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaXJxcG9sbF9jb21wbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NjAtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00NjMtXFx0XFx0dW5zaWduZWQgaW50IHBpcGUgPVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDY0OlxcdFxcdFxcdHVzYl9yY3ZidWxrcGlwZSh2dWIzMDAtXFx1MDAzZXVkZXYsIHZ1YjMwMC1cXHUwMDNlY21uZF9yZXNfZXApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDY1OlxcdFxcdHVzYl9maWxsX2J1bGtfdXJiKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiLCB2dWIzMDAtXFx1MDAzZXVkZXYsIHBpcGUsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0NjY6XFx0XFx0XFx0XFx0ICBcXHUwMDI2dnViMzAwLVxcdTAwM2VyZXNwLCBzaXplb2YodnViMzAwLVxcdTAwM2VyZXNwKSxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ2NzpcXHRcXHRcXHRcXHQgIGlycXBvbGxfcmVzX2NvbXBsZXRlZCwgdnViMzAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ2ODpcXHRcXHR2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYi1cXHUwMDNlYWN0dWFsX2xlbmd0aCA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0Njk6XFx0XFx0cmV0ID0gdXNiX3N1Ym1pdF91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX3Jlc191cmIsIEdGUF9BVE9NSUMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDcwLVxcdFxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3MTpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXVzYl90cmFuc3BvcnRfZmFpbCA9IHJldDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3MjpcXHRcXHRcXHRjb21wbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ3My1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ3Ny1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ3ODpzdGF0aWMgdm9pZCBzZW5kX2lycXBvbGwoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDc5LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4MDpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfcG9sbHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy00ODEtXFx0aW50IHJldHZhbDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTQ4Mi1cXHRpbnQgdGltZW91dCA9IDB4RkZGRiBcXHUwMDI2ICgweDAwMDFGRkZGIC0gZmlybXdhcmVfaXJxcG9sbF90aW1lb3V0KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4MzpcXHR2dWIzMDAtXFx1MDAzZWNtbmQucG9sbC5oZWFkZXJfc2l6ZSA9IDIyO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg0OlxcdHZ1YjMwMC1cXHUwMDNlY21uZC5wb2xsLmhlYWRlcl90eXBlID0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4NTpcXHR2dWIzMDAtXFx1MDAzZWNtbmQucG9sbC5wb3J0X251bWJlciA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0ODY6XFx0dnViMzAwLVxcdTAwM2VjbW5kLnBvbGwuY29tbWFuZF90eXBlID0gMjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjQ4NzpcXHR2dWIzMDAtXFx1MDAzZWNtbmQucG9sbC5wb2xsX3RpbWVvdXRfbHNiID0gMHhGRiBcXHUwMDI2ICh1bnNpZ25lZCl0aW1lb3V0O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg4OlxcdHZ1YjMwMC1cXHUwMDNlY21uZC5wb2xsLnBvbGxfdGltZW91dF9tc2IgPSAweEZGIFxcdTAwMjYgKHVuc2lnbmVkKSh0aW1lb3V0IFxcdTAwM2VcXHUwMDNlIDgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDg5OlxcdHVzYl9maWxsX2J1bGtfdXJiKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9vdXRfdXJiLCB2dWIzMDAtXFx1MDAzZXVkZXYsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTA6XFx0XFx0XFx0ICB1c2Jfc25kYnVsa3BpcGUodnViMzAwLVxcdTAwM2V1ZGV2LCB2dWIzMDAtXFx1MDAzZWNtbmRfb3V0X2VwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDkxOlxcdFxcdFxcdCAgLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VjbW5kLCBzaXplb2YodnViMzAwLVxcdTAwM2VjbW5kKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDkyOlxcdFxcdFxcdCAgLCBpcnFwb2xsX291dF9jb21wbGV0ZWQsIHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTM6XFx0cmV0dmFsID0gdXNiX3N1Ym1pdF91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX291dF91cmIsIEdGUF9LRVJORUwpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk0LVxcdGlmICgwIFxcdTAwM2UgcmV0dmFsKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTU6XFx0XFx0dnViMzAwLVxcdTAwM2V1c2JfdHJhbnNwb3J0X2ZhaWwgPSByZXR2YWw7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo0OTY6XFx0XFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NDk3OlxcdFxcdGNvbXBsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycXBvbGxfY29tcGxldGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNDk4LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTAzLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTA0OnN0YXRpYyB2b2lkIG5ld19zeXN0ZW1fcG9ydF9zdGF0dXMoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTA1LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwNjpcXHRpbnQgb2xkX2NhcmRfcHJlc2VudCA9IHZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTA3LVxcdGludCBuZXdfY2FyZF9wcmVzZW50ID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwODpcXHRcXHQoMHgwMDAxIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMucG9ydF9mbGFncykgPyAxIDogMDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUwOTpcXHR2dWIzMDAtXFx1MDAzZXJlYWRfb25seSA9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MTA6XFx0XFx0KDB4MDAxMCBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzLnBvcnRfZmxhZ3MpID8gMSA6IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTEtXFx0aWYgKG5ld19jYXJkX3ByZXNlbnQgXFx1MDAyNlxcdTAwMjYgIW9sZF9jYXJkX3ByZXNlbnQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUxMjpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2dnViMzAwLVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCJjYXJkIGp1c3QgaW5zZXJ0ZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTEzOlxcdFxcdHZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50ID0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUxNDpcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTUtXFx0XFx0aWYgKGRpc2FibGVfb2ZmbG9hZF9wcm9jZXNzaW5nKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE2OlxcdFxcdFxcdHN0cnNjcHkodnViMzAwLVxcdTAwM2V2dWJfbmFtZSwgXFxcIkVNUFRZIFByb2Nlc3NpbmcgRGlzYWJsZWRcXFwiLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE3OlxcdFxcdFxcdFxcdHNpemVvZih2dWIzMDAtXFx1MDAzZXZ1Yl9uYW1lKSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MTgtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTE5OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNldnViX25hbWVbMF0gPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTIwOlxcdFxcdG1tY19kZXRlY3RfY2hhbmdlKHZ1YjMwMC1cXHUwMDNlbW1jLCAxKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyMS1cXHR9IGVsc2UgaWYgKCFuZXdfY2FyZF9wcmVzZW50IFxcdTAwMjZcXHUwMDI2IG9sZF9jYXJkX3ByZXNlbnQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUyMjpcXHRcXHRkZXZfaW5mbyhcXHUwMDI2dnViMzAwLVxcdTAwM2V1ZGV2LVxcdTAwM2VkZXYsIFxcXCJjYXJkIGp1c3QgZWplY3RlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MjM6XFx0XFx0dnViMzAwLVxcdTAwM2VjYXJkX3ByZXNlbnQgPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTI0OlxcdFxcdG1tY19kZXRlY3RfY2hhbmdlKHZ1YjMwMC1cXHUwMDNlbW1jLCAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUyNS1cXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01MjktXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MzA6c3RhdGljIHZvaWQgX19hZGRfb2ZmbG9hZGVkX3JlZ190b19maWZvKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUzMS1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgb2ZmbG9hZF9yZWdpc3RlcnNfYWNjZXNzXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTUzMy17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1MzQ6XFx0dTggciA9IHZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ub2ZmbG9hZF9wb2ludCArIHZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ub2ZmbG9hZF9jb3VudDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjUzNTpcXHRtZW1jcHkoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ucmVnW01BWFJFR01BU0sgXFx1MDAyNiByXSwgcmVnaXN0ZXJfYWNjZXNzLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTM2LVxcdCAgICAgICBzaXplb2Yoc3RydWN0IG9mZmxvYWRfcmVnaXN0ZXJzX2FjY2VzcykpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM3OlxcdHZ1YjMwMC1cXHUwMDNlZm5bZnVuY10ub2ZmbG9hZF9jb3VudCArPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTM4OlxcdHZ1YjMwMC1cXHUwMDNldG90YWxfb2ZmbG9hZF9jb3VudCArPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTM5LX1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU0MC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0MTpzdGF0aWMgdm9pZCBhZGRfb2ZmbG9hZGVkX3JlZyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDItXFx0XFx0XFx0ICAgICAgc3RydWN0IG9mZmxvYWRfcmVnaXN0ZXJzX2FjY2VzcyAqcmVnaXN0ZXJfYWNjZXNzKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NDctXFx0dTggZnVuYyA9ICgoMHg3MCBcXHUwMDI2IHJlZ2lzdGVyX2FjY2Vzcy1cXHUwMDNlY29tbWFuZF9ieXRlWzBdKSBcXHUwMDNlXFx1MDAzZSA0KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU0ODpcXHR1OCByZWdzID0gdnViMzAwLVxcdTAwM2VkeW5hbWljX3JlZ2lzdGVyX2NvdW50O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTQ5LVxcdHU4IGkgPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUwOlxcdHdoaWxlICgwIFxcdTAwM2MgcmVncy0tIFxcdTAwMjZcXHUwMDI2IDEgPT0gdnViMzAwLVxcdTAwM2VzZGlvX3JlZ2lzdGVyW2ldLmFjdGl2YXRlKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTE6XFx0XFx0aWYgKHZ1YjMwMC1cXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5mdW5jX251bSA9PSBmdW5jIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTI6XFx0XFx0ICAgIHZ1YjMwMC1cXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5zZGlvX3JlZyA9PSBSZWdpc3Rlcikge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTUzOlxcdFxcdFxcdGlmICh2dWIzMDAtXFx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0ucHJlcGFyZWQgPT0gMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU1NDpcXHRcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXNkaW9fcmVnaXN0ZXJbaV0ucHJlcGFyZWQgPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTU1OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlc2Rpb19yZWdpc3RlcltpXS5yZXNwb25zZSA9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NTYtXFx0XFx0XFx0XFx0cmVnaXN0ZXJfYWNjZXNzLVxcdTAwM2VSZXNwb25kX0J5dGVbMl07XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NTc6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VzZGlvX3JlZ2lzdGVyW2ldLnJlZ3ZhbHVlID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU1OC1cXHRcXHRcXHRcXHRyZWdpc3Rlcl9hY2Nlc3MtXFx1MDAzZVJlc3BvbmRfQnl0ZVszXTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTY0LVxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU2NTpcXHRfX2FkZF9vZmZsb2FkZWRfcmVnX3RvX2ZpZm8odnViMzAwLCByZWdpc3Rlcl9hY2Nlc3MsIGZ1bmMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTY2LX1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU2Ny1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU2ODpzdGF0aWMgdm9pZCBjaGVja192dWIzMDBfcG9ydF9zdGF0dXMoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTY5LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3MC1cXHQvKlxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTcxOlxcdCAqIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1NzI6XFx0ICogdnViMzAwX2RlYWR3b3JrX3RocmVhZCBvciB2dWIzMDBfY21uZHdvcmtfdGhyZWFkXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzMtXFx0ICovXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3NS1cXHRyZXR2YWwgPVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTc2OlxcdFxcdHVzYl9jb250cm9sX21zZyh2dWIzMDAtXFx1MDAzZXVkZXYsIHVzYl9yY3ZjdHJscGlwZSh2dWIzMDAtXFx1MDAzZXVkZXYsIDApLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTc3LVxcdFxcdFxcdFxcdEdFVF9TWVNURU1fUE9SVF9TVEFUVVMsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzgtXFx0XFx0XFx0XFx0VVNCX0RJUl9JTiB8IFVTQl9UWVBFX1ZFTkRPUiB8IFVTQl9SRUNJUF9ERVZJQ0UsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1Nzk6XFx0XFx0XFx0XFx0MHgwMDAwLCAweDAwMDAsIFxcdTAwMjZ2dWIzMDAtXFx1MDAzZXN5c3RlbV9wb3J0X3N0YXR1cyxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MDpcXHRcXHRcXHRcXHRzaXplb2YodnViMzAwLVxcdTAwM2VzeXN0ZW1fcG9ydF9zdGF0dXMpLCAxMDAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4MTpcXHRpZiAoc2l6ZW9mKHZ1YjMwMC1cXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzKSA9PSByZXR2YWwpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODI6XFx0XFx0bmV3X3N5c3RlbV9wb3J0X3N0YXR1cyh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTgzLX1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU4NC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU4NTpzdGF0aWMgdm9pZCBfX3Z1YjMwMF9pcnFwb2xsX3Jlc3BvbnNlKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU4Ni17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1ODc6XFx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX3BvbGx3b3JrX3RocmVhZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTg4OlxcdGlmICh2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYi1cXHUwMDNlYWN0dWFsX2xlbmd0aCA9PSAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNTg5LVxcdFxcdHJldHVybjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU5MC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5MTpcXHRzd2l0Y2ggKHZ1YjMwMC1cXHUwMDNlcmVzcC5jb21tb24uaGVhZGVyX3R5cGUpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU5Mi1cXHRjYXNlIFJFU1BPTlNFX0lOVEVSUlVQVDpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5MzpcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTQ6XFx0XFx0aWYgKHZ1YjMwMC1cXHUwMDNlaXJxX2VuYWJsZWQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTU6XFx0XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycSh2dWIzMDAtXFx1MDAzZW1tYyk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01OTYtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NTk3OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaXJxc19xdWV1ZWQgKz0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU5ODpcXHRcXHR2dWIzMDAtXFx1MDAzZWlycV9kaXNhYmxlZCA9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo1OTk6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MDAtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MDEtXFx0Y2FzZSBSRVNQT05TRV9FUlJPUjpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwMjpcXHRcXHRpZiAodnViMzAwLVxcdTAwM2VyZXNwLmVycm9yLmVycm9yX2NvZGUgPT0gU0RfRVJST1JfTk9fREVWSUNFKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjAzOlxcdFxcdFxcdGNoZWNrX3Z1YjMwMF9wb3J0X3N0YXR1cyh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjA0LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjA1LVxcdGNhc2UgUkVTUE9OU0VfU1RBVFVTOlxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjA2OlxcdFxcdHZ1YjMwMC1cXHUwMDNlc3lzdGVtX3BvcnRfc3RhdHVzID0gdnViMzAwLVxcdTAwM2VyZXNwLnN0YXR1cztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwNzpcXHRcXHRuZXdfc3lzdGVtX3BvcnRfc3RhdHVzKHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MDg6XFx0XFx0aWYgKCF2dWIzMDAtXFx1MDAzZWNhcmRfcHJlc2VudClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYwOTpcXHRcXHRcXHR2dWIzMDBfcXVldWVfcG9sbF93b3JrKHZ1YjMwMCwgSFogLyA1KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxMC1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjEyLVxcdHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYxMzpcXHRcXHRpbnQgb2ZmbG9hZGVkX2RhdGFfbGVuZ3RoID0gdnViMzAwLVxcdTAwM2VyZXNwLmNvbW1vbi5oZWFkZXJfc2l6ZSAtIDM7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTQtXFx0XFx0aW50IHJlZ2lzdGVyX2NvdW50ID0gb2ZmbG9hZGVkX2RhdGFfbGVuZ3RoIFxcdTAwM2VcXHUwMDNlIDM7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxNi1cXHRcXHR3aGlsZSAocmVnaXN0ZXJfY291bnQtLSkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjE3OlxcdFxcdFxcdGFkZF9vZmZsb2FkZWRfcmVnKHZ1YjMwMCwgXFx1MDAyNnZ1YjMwMC1cXHUwMDNlcmVzcC5pcnEucmVnW3JpXSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MTgtXFx0XFx0XFx0cmkgKz0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYxOS1cXHRcXHR9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjA6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjIxOlxcdFxcdGlmICh2dWIzMDAtXFx1MDAzZWlycV9lbmFibGVkKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjIyOlxcdFxcdFxcdG1tY19zaWduYWxfc2Rpb19pcnEodnViMzAwLVxcdTAwM2VtbWMpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjIzLVxcdFxcdGVsc2VcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYyNDpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZWlycXNfcXVldWVkICs9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MjU6XFx0XFx0dnViMzAwLVxcdTAwM2VpcnFfZGlzYWJsZWQgPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjI2OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjI3LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02MzAtXFx0e1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjMxOlxcdFxcdGludCBvZmZsb2FkZWRfZGF0YV9sZW5ndGggPSB2dWIzMDAtXFx1MDAzZXJlc3AuY29tbW9uLmhlYWRlcl9zaXplIC0gMztcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYzMi1cXHRcXHRpbnQgcmVnaXN0ZXJfY291bnQgPSBvZmZsb2FkZWRfZGF0YV9sZW5ndGggXFx1MDAzZVxcdTAwM2UgMztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjM0LVxcdFxcdHdoaWxlIChyZWdpc3Rlcl9jb3VudC0tKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2MzU6XFx0XFx0XFx0YWRkX29mZmxvYWRlZF9yZWcodnViMzAwLCBcXHUwMDI2dnViMzAwLVxcdTAwM2VyZXNwLmlycS5yZWdbcmldKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTYzNi1cXHRcXHRcXHRyaSArPSAxO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjM3LVxcdFxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjYzODpcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Mzk6XFx0XFx0aWYgKHZ1YjMwMC1cXHUwMDNlaXJxX2VuYWJsZWQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NDA6XFx0XFx0XFx0bW1jX3NpZ25hbF9zZGlvX2lycSh2dWIzMDAtXFx1MDAzZW1tYyk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDEtXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjQyOlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaXJxc19xdWV1ZWQgKz0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY0MzpcXHRcXHR2dWIzMDAtXFx1MDAzZWlycV9kaXNhYmxlZCA9IDA7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NDQ6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycV9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDUtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY0Ny1cXHRjYXNlIFJFU1BPTlNFX05PX0lOVEVSUlVQVDpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY0ODpcXHRcXHR2dWIzMDBfcXVldWVfcG9sbF93b3JrKHZ1YjMwMCwgMSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTY1NC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY1NTpzdGF0aWMgdm9pZCBfX2RvX3BvbGwoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjU2LXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY1NzpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfcG9sbHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NTgtXFx0dW5zaWduZWQgbG9uZyBjb21tcmV0dmFsO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjU5OlxcdG1vZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjYwOlxcdGluaXRfY29tcGxldGlvbihcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFwb2xsX2NvbXBsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2MTpcXHRzZW5kX2lycXBvbGwodnViMzAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2MjpcXHRjb21tcmV0dmFsID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWlycXBvbGxfY29tcGxldGUsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NjMtXFx0XFx0XFx0XFx0XFx0XFx0IG1zZWNzX3RvX2ppZmZpZXMoNTAwKSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2NjQ6XFx0aWYgKHZ1YjMwMC1cXHUwMDNldXNiX3RyYW5zcG9ydF9mYWlsKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NjUtXFx0XFx0Lyogbm8gbmVlZCB0byBkbyBhbnl0aGluZyAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjY2LVxcdH0gZWxzZSBpZiAoY29tbXJldHZhbCA9PSAwKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Njc6XFx0XFx0dnViMzAwLVxcdTAwM2V1c2JfdGltZWRfb3V0ID0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY2ODpcXHRcXHR1c2Jfa2lsbF91cmIodnViMzAwLVxcdTAwM2Vjb21tYW5kX291dF91cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjY5OlxcdFxcdHVzYl9raWxsX3VyYih2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NzAtXFx0fSBlbHNlIHsgLyogY29tbXJldHZhbCBcXHUwMDNlIDAgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY3MTpcXHRcXHRfX3Z1YjMwMF9pcnFwb2xsX3Jlc3BvbnNlKHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NzItXFx0fVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02NzctICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2Nzg6c3RhdGljIHZvaWQgdnViMzAwX3BvbGx3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02Nzkte1xcdFxcdFxcdFxcdC8qIE5PVCBpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4MDpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSBjb250YWluZXJfb2Yod29yayxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4MTpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgdnViMzAwX21tY19ob3N0LCBwb2xsd29yay53b3JrKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4MjpcXHRpZiAoIXZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODM6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02ODQtXFx0XFx0cmV0dXJuO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNjg1LVxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY4NjpcXHRtdXRleF9sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNtZF9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODc6XFx0aWYgKHZ1YjMwMC1cXHUwMDNlY21kKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2ODg6XFx0XFx0dnViMzAwX3F1ZXVlX3BvbGxfd29yayh2dWIzMDAsIDEpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njg5OlxcdH0gZWxzZSBpZiAoIXZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50KSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy02OTAtXFx0XFx0Lyogbm8gbmVlZCB0byBkbyBhbnl0aGluZyAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjkxOlxcdH0gZWxzZSB7IC8qIHZ1YjMwMC1cXHUwMDNlY2FyZF9wcmVzZW50ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo2OTI6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NjkzOlxcdFxcdGlmICghdnViMzAwLVxcdTAwM2VpcnFfZW5hYmxlZCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk0OlxcdFxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk1OlxcdFxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VpcnFzX3F1ZXVlZCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6Njk2OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaXJxc19xdWV1ZWQgLT0gMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5NzpcXHRcXHRcXHRtbWNfc2lnbmFsX3NkaW9faXJxKHZ1YjMwMC1cXHUwMDNlbW1jKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5ODpcXHRcXHRcXHRtb2RfdGltZXIoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lciwgamlmZmllcyArIEhaKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjY5OTpcXHRcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaXJxX211dGV4KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcwMDpcXHRcXHR9IGVsc2UgeyAvKiBOT1QgdnViMzAwLVxcdTAwM2VpcnFzX3F1ZXVlZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAxOlxcdFxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dnViMzAwLVxcdTAwM2VpcnFfbXV0ZXgpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzAyOlxcdFxcdFxcdF9fZG9fcG9sbCh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzAzLVxcdFxcdH1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcwNC1cXHR9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDU6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNtZF9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MDY6XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MDctfVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzA4LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzA5OnN0YXRpYyB2b2lkIHZ1YjMwMF9kZWFkd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzEwLXtcXHRcXHRcXHRcXHQvKiBOT1QgaXJxICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MTE6XFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxMjpcXHRcXHRjb250YWluZXJfb2Yod29yaywgc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCwgZGVhZHdvcmspO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzEzOlxcdGlmICghdnViMzAwLVxcdTAwM2VpbnRlcmZhY2UpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxNDpcXHRcXHRrcmVmX3B1dChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcxNS1cXHRcXHRyZXR1cm47XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MTYtXFx0fVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzE3OlxcdG11dGV4X2xvY2soXFx1MDAyNnZ1YjMwMC1cXHUwMDNlY21kX211dGV4KTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjcxODpcXHRpZiAodnViMzAwLVxcdTAwM2VjbWQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcxOS1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MjQtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3MjU6XFx0fSBlbHNlIGlmICh2dWIzMDAtXFx1MDAzZWNhcmRfcHJlc2VudCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI2OlxcdFxcdGNoZWNrX3Z1YjMwMF9wb3J0X3N0YXR1cyh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzI3OlxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VtbWMgXFx1MDAyNlxcdTAwMjYgdnViMzAwLVxcdTAwM2VtbWMtXFx1MDAzZWNhcmQpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTcyOC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03MzQtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjczNTpcXHRcXHRjaGVja192dWIzMDBfcG9ydF9zdGF0dXModnViMzAwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTczNi1cXHR9XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzc6XFx0bW9kX3RpbWVyKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgKyBIWik7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzg6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNtZF9tdXRleCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3Mzk6XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDAtfVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQxLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQyOnN0YXRpYyB2b2lkIHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDMte1xcdFxcdFxcdFxcdC8qIHNvZnRpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0NDpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSB0aW1lcl9jb250YWluZXJfb2YodnViMzAwLCB0LFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQ1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBpbmFjdGl2aXR5X3RpbWVyKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0NjpcXHRpZiAoIXZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDc6XFx0XFx0a3JlZl9wdXQoXFx1MDAyNnZ1YjMwMC1cXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NDg6XFx0fSBlbHNlIGlmICh2dWIzMDAtXFx1MDAzZWNtZCkge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzQ5OlxcdFxcdG1vZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzUwLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo3NTE6XFx0XFx0dnViMzAwX3F1ZXVlX2RlYWRfd29yayh2dWIzMDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzUyOlxcdFxcdG1vZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzUzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzU1LVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6NzU2OnN0YXRpYyBpbnQgdnViMzAwX3Jlc3BvbnNlX2Vycm9yKHU4IGVycm9yX2NvZGUpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NTcte1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03OTI9c3RhdGljIHZvaWQgY29tbWFuZF9yZXNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYilcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5My17XFx0XFx0XFx0XFx0LyogdXJiIGNvbXBsZXRpb24gaGFuZGxlciAtIGhhcmRpcnEgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NDpcXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSAoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqKXVyYi1cXHUwMDNlY29udGV4dDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5NS1cXHRpZiAodXJiLVxcdTAwM2VzdGF0dXMpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5Ni1cXHRcXHQvKiB3ZSBoYXZlIHRvIGxldCB0aGUgaW5pdGlhdG9yIGhhbmRsZSB0aGUgZXJyb3IgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc5NzpcXHR9IGVsc2UgaWYgKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiLVxcdTAwM2VhY3R1YWxfbGVuZ3RoID09IDApIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc5OC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MDEtXFx0XFx0ICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MDI6XFx0fSBlbHNlIGlmICghdnViMzAwLVxcdTAwM2VkYXRhKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MDMtXFx0XFx0LyogdGhpcyBtZWFucyB0aGF0IHRoZSBjb21tYW5kICh0eXBpY2FsbHkgQ01ENTIpIHN1Y2NlZWRlZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODA0OlxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VyZXNwLmNvbW1vbi5oZWFkZXJfdHlwZSAhPSAweDAyKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MDUtXFx0XFx0LypcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODA4LVxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODA5OlxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2V1cmIpIHtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxMDpcXHRcXHR2dWIzMDAtXFx1MDAzZWNtZC1cXHUwMDNlZXJyb3IgPVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODExOlxcdFxcdFxcdHZ1YjMwMF9yZXNwb25zZV9lcnJvcih2dWIzMDAtXFx1MDAzZXJlc3AuZXJyb3IuZXJyb3JfY29kZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MTI6XFx0XFx0dXNiX3VubGlua191cmIodnViMzAwLVxcdTAwM2V1cmIpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODEzLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MTQ6XFx0XFx0dnViMzAwLVxcdTAwM2VjbWQtXFx1MDAzZWVycm9yID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgxNTpcXHRcXHRcXHR2dWIzMDBfcmVzcG9uc2VfZXJyb3IodnViMzAwLVxcdTAwM2VyZXNwLmVycm9yLmVycm9yX2NvZGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODE2OlxcdFxcdHVzYl9zZ19jYW5jZWwoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfcmVxdWVzdCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MTctXFx0fVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODE4OlxcdGNvbXBsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1xcdC8qIGdvdF9yZXNwb25zZV9pbiAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODE5LX1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODIxPXN0YXRpYyB2b2lkIGNvbW1hbmRfb3V0X2NvbXBsZXRlZChzdHJ1Y3QgdXJiICp1cmIpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjIte1xcdFxcdFxcdFxcdC8qIHVyYiBjb21wbGV0aW9uIGhhbmRsZXIgLSBoYXJkaXJxICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MjM6XFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0gKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKil1cmItXFx1MDAzZWNvbnRleHQ7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjQtXFx0aWYgKHVyYi1cXHUwMDNlc3RhdHVzKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MjU6XFx0XFx0Y29tcGxldGUoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlY29tbWFuZF9jb21wbGV0ZSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04MjYtXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODI4LVxcdFxcdHVuc2lnbmVkIGludCBwaXBlID1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgyOTpcXHRcXHRcXHR1c2JfcmN2YnVsa3BpcGUodnViMzAwLVxcdTAwM2V1ZGV2LCB2dWIzMDAtXFx1MDAzZWNtbmRfcmVzX2VwKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjgzMDpcXHRcXHR1c2JfZmlsbF9idWxrX3VyYih2dWIzMDAtXFx1MDAzZWNvbW1hbmRfcmVzX3VyYiwgdnViMzAwLVxcdTAwM2V1ZGV2LCBwaXBlLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODMxOlxcdFxcdFxcdFxcdCAgXFx1MDAyNnZ1YjMwMC1cXHUwMDNlcmVzcCwgc2l6ZW9mKHZ1YjMwMC1cXHUwMDNlcmVzcCksXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MzI6XFx0XFx0XFx0XFx0ICBjb21tYW5kX3Jlc19jb21wbGV0ZWQsIHZ1YjMwMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4MzM6XFx0XFx0dnViMzAwLVxcdTAwM2Vjb21tYW5kX3Jlc191cmItXFx1MDAzZWFjdHVhbF9sZW5ndGggPSAwO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODM0OlxcdFxcdHJldCA9IHVzYl9zdWJtaXRfdXJiKHZ1YjMwMC1cXHUwMDNlY29tbWFuZF9yZXNfdXJiLCBHRlBfQVRPTUlDKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTgzNS1cXHRcXHRpZiAocmV0ID09IDApIHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODQ0LVxcdFxcdFxcdCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODQ1OlxcdFxcdFxcdGNvbXBsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWNvbW1hbmRfY29tcGxldGUpO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODQ2LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODUyLSAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODUzOnN0YXRpYyB2b2lkIHNub29wX2Jsb2NrX3NpemVfYW5kX2J1c193aWR0aChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NTQtXFx0XFx0XFx0XFx0XFx0ICAgdTMyIGNtZF9hcmcpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg1Ni1cXHRpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDIyMjAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODU3OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzFdID0gKGNtZF9hcmcgXFx1MDAzY1xcdTAwM2MgOCkgfCAoMHgwMEZGIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbMV0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODU4LVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDAyMjAwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg1OTpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1sxXSA9ICgweEZGIFxcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbMV0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODYwLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA0MjIwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg2MTpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1syXSA9IChjbWRfYXJnIFxcdTAwM2NcXHUwMDNjIDgpIHwgKDB4MDBGRiBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzJdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg2Mi1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNDIwMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NjM6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbMl0gPSAoMHhGRiBcXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzJdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg2NC1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwNjIyMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NjU6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbM10gPSAoY21kX2FyZyBcXHUwMDNjXFx1MDAzYyA4KSB8ICgweDAwRkYgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1szXSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjYtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDYyMDAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODY3OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzNdID0gKDB4RkYgXFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1szXSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NjgtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDgyMjAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODY5OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzRdID0gKGNtZF9hcmcgXFx1MDAzY1xcdTAwM2MgOCkgfCAoMHgwMEZGIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbNF0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODcwLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDA4MjAwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3MTpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1s0XSA9ICgweEZGIFxcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbNF0pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODcyLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBBMjIwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg3MzpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1s1XSA9IChjbWRfYXJnIFxcdTAwM2NcXHUwMDNjIDgpIHwgKDB4MDBGRiBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzVdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3NC1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQTIwMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4NzU6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbNV0gPSAoMHhGRiBcXHUwMDI2IGNtZF9hcmcpIHwgKDB4RkYwMCBcXHUwMDI2IHZ1YjMwMC1cXHUwMDNlZmJzWzVdKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg3Ni1cXHRlbHNlIGlmICgoMHhGQkZGRkUwMCBcXHUwMDI2IGNtZF9hcmcpID09IDB4ODAwQzIyMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4Nzc6XFx0XFx0dnViMzAwLVxcdTAwM2VmYnNbNl0gPSAoY21kX2FyZyBcXHUwMDNjXFx1MDAzYyA4KSB8ICgweDAwRkYgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1s2XSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04NzgtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEMyMDAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODc5OlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzZdID0gKDB4RkYgXFx1MDAyNiBjbWRfYXJnKSB8ICgweEZGMDAgXFx1MDAyNiB2dWIzMDAtXFx1MDAzZWZic1s2XSk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODAtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDAgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMEUyMjAwKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODgxOlxcdFxcdHZ1YjMwMC1cXHUwMDNlZmJzWzddID0gKGNtZF9hcmcgXFx1MDAzY1xcdTAwM2MgOCkgfCAoMHgwMEZGIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbN10pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODgyLVxcdGVsc2UgaWYgKCgweEZCRkZGRTAwIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDBFMjAwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg4MzpcXHRcXHR2dWIzMDAtXFx1MDAzZWZic1s3XSA9ICgweEZGIFxcdTAwMjYgY21kX2FyZykgfCAoMHhGRjAwIFxcdTAwMjYgdnViMzAwLVxcdTAwM2VmYnNbN10pO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODg0LVxcdGVsc2UgaWYgKCgweEZCRkZGRTAzIFxcdTAwMjYgY21kX2FyZykgPT0gMHg4MDAwMEUwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjg4NTpcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODYtXFx0ZWxzZSBpZiAoKDB4RkJGRkZFMDMgXFx1MDAyNiBjbWRfYXJnKSA9PSAweDgwMDAwRTAyKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODg3OlxcdFxcdHZ1YjMwMC1cXHUwMDNlYnVzX3dpZHRoID0gNDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg4OC19XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04ODktXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTA6c3RhdGljIHZvaWQgc2VuZF9jb21tYW5kKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5MS17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTI6XFx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODkzOlxcdHN0cnVjdCBtbWNfY29tbWFuZCAqY21kID0gdnViMzAwLVxcdTAwM2VjbWQ7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTQ6XFx0c3RydWN0IG1tY19kYXRhICpkYXRhID0gdnViMzAwLVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtODk1LVxcdGludCByZXR2YWw7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5Ny1cXHR1OCByZXNwb25zZV90eXBlO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODk4OlxcdGlmICh2dWIzMDAtXFx1MDAzZWFwcF9zcGVjKSB7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTktXFx0XFx0c3dpdGNoIChjbWQtXFx1MDAzZW9wY29kZSkge1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDEtXFx0XFx0XFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwMjpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gNjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkwMy1cXHRcXHRcXHRpZiAoMHgwMDAwMDAwMCA9PSAoMHgwMDAwMDAwMyBcXHUwMDI2IGNtZC1cXHUwMDNlYXJnKSlcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNDpcXHRcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDUtXFx0XFx0XFx0ZWxzZSBpZiAoMHgwMDAwMDAwMiA9PSAoMHgwMDAwMDAwMyBcXHUwMDI2IGNtZC1cXHUwMDNlYXJnKSlcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkwNjpcXHRcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZWJ1c193aWR0aCA9IDQ7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MDctXFx0XFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTA4OlxcdFxcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnZ1YjMwMC1cXHUwMDNldWRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTA5LVxcdFxcdFxcdFxcdFxcdFxcXCJ1bmV4cGVjdGVkIEFDTUQ2IGJ1c193aWR0aD0lZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTEzLVxcdFxcdFxcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MTQ6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VyZXNwX2xlbiA9IDY7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MTUtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkxNy1cXHRcXHRcXHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTE4OlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlcmVzcF9sZW4gPSA2O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTE5LVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MjEtXFx0XFx0XFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkyMjpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gNjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyMy1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTI1LVxcdFxcdFxcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzM7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5MjY6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VyZXNwX2xlbiA9IDY7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MjctXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkyOS1cXHRcXHRcXHRyZXNwb25zZV90eXBlID0gU0RSVF8xO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6OTMwOlxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlcmVzcF9sZW4gPSA2O1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTMxLVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzMtXFx0XFx0XFx0cmVzcG9uc2VfdHlwZSA9IFNEUlRfMTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjkzNDpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gNjtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTkzNS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtOTM3LVxcdFxcdFxcdHJlc3BvbnNlX3R5cGUgPSBTRFJUXzE7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo5Mzg6XFx0XFx0XFx0dnViMzAwLVxcdTAwM2VyZXNwX2xlbiA9IDY7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05MzktXFx0XFx0XFx0YnJlYWs7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy05NDAtXFx0XFx0ZGVmYXVsdDpcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjk0MTpcXHRcXHRcXHR2dWIzMDAtXFx1MDAzZXJlc3BfbGVuID0gMDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTk0Mi1cXHRcXHRcXHRjbWQtXFx1MDAzZWVycm9yID0gLUVJTlZBTDtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjk0MzpcXHRcXHRcXHRjb21wbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2Vjb21tYW5kX2NvbXBsZXRlKTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MjAuNzM4Nzg4NTk2WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEyMzAwNTM3ODA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgXCJZZXMsIGB2dWIzMDBgIGlzIGluZGVlZCBhbiBTRElPLXRvLVVTQiBicmlkZ2UgZHJpdmVyLlwiIFRoYXQncyB0aGUgZm91bmRhdGlvbi4gVGhlIGJlYXV0eSBvZiB0aGlzIGlzIHRoYXQgU3l6a2FsbGVyIGNhbiBlbXVsYXRlIHRoaXMgZGV2aWNlIHVzaW5nIGBkdW1teV9oY2RgIChVU0IpLCB3aGljaCBpcyBjcnVjaWFsLiBXaGVuIFN5emthbGxlciBlbXVsYXRlcyBgdnViMzAwYCwgdGhlIGRyaXZlciByZWdpc3RlcnMgYW4gTU1DIGhvc3QsIGFuZCB0aGVuIHdlIGNhbiBzaW11bGF0ZSBhbiBTRElPIGNhcmQsIGxpa2UgYGJyY21mbWFjYCwgYnkgc2VuZGluZyBhcHByb3ByaWF0ZSByZXNwb25zZXMgdG8gdGhlIGB2dWIzMDBgIGRyaXZlci4gRmFudGFzdGljISBUaGlzIGNvbmZpcm1zIHRoYXQgdGhlIGBicmNtZm1hY2AgU0RJTyBpbnRlcmZhY2UgKmlzKiBhY2Nlc3NpYmxlIHdpdGhpbiBTeXprYWxsZXIncyBlbXVsYXRlZCBlbnZpcm9ubWVudCFcblxuVGhlIHBhdGNoIGl0c2VsZiBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgZG91YmxlLWZyZWUgaXNzdWUgd2l0aGluIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIE5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBhcmlzZXM6IElzIGBicmNtZm1hY2AgZXZlbiBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nPyBMZXQncyBjaGVjayB0aGUgY3JpdGVyaWEuIFRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmeSByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGNvbmNlcm5zIFwidmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuYGJyY21mbWFjYCBpcyBhIHZlbmRvci1zcGVjaWZpYyBXaS1GaSBkcml2ZXIsIHllcywgYnV0IGl0IGludGVyZmFjZXMgdmlhIFNESU8vVVNCL1BDSWUuIEJ1dCBnaXZlbiB0aGF0IGl0J3MgcmVhY2hhYmxlIHZpYSBVU0IgKGVpdGhlciBkaXJlY3RseSBvciB0aHJvdWdoIHRoZSBgdnViMzAwYCBicmlkZ2UsIGFzIHByb3ZlbiBieSBTeXprYWxsZXIncyBjYXBhYmlsaXRpZXMpLCBpdCBpc24ndCBhIGRyaXZlciB0aGF0IG1hbmRhdGVzIHNwZWNpYWxpemVkIGhhcmR3YXJlLiBJdCdzIGFjY2Vzc2libGUgaW4gdGhlIHZpcnR1YWxpemVkIGVudmlyb25tZW50ISBTbywgYFdvcnRoRnV6emluZz10cnVlYC5cblxuTm93LCBsZXQncyBleGFtaW5lIHRoZSBwYXRjaCBtb3JlIGNsb3NlbHkuIEl0IGludm9sdmVzIGEgY29kZSBjaGFuZ2UgaW4gYGJyY21mX3NkaW9fcmVhZF9jb250cm9sYC4gQmVmb3JlIHRoZSBwYXRjaCwgdGhlIGNvZGUgd2FzIHN0cnVjdHVyZWQgdG8gY2hlY2sgaWYgYSBjb250cm9sIGZyYW1lIHdhcyBiZWluZyBwcm9jZXNzZWQsIGFuZCBiYXNlZCBvbiB0aGlzIGNvbmRpdGlvbiwgd291bGQgZWl0aGVyIGZyZWUgdGhlIGBidWZgIGFuZCBgZ290byBkb25lYCwgb3IgY29udGludWUgcHJvY2Vzc2luZy4gQ3JpdGljYWxseSwgdGhlIG9yaWdpbmFsIGNvZGUgaGFkIHRoZSBwb3RlbnRpYWwgbWVtb3J5IGxlYWssIHdoZXJlIHRoZSBgYnVmYCBwb2ludGVyIGNvdWxkIGJlIHVzZWQgYW5kICpub3QqIGZyZWVkLiBUaGUgcGF0Y2ggZXNzZW50aWFsbHkgcmVmYWN0b3JzIHRoaXMgbG9naWMsIHNldHRpbmcgYGJ1ZiA9IE5VTExgIGFuZCB0aGVuIGNhbGxpbmcgYHZmcmVlKGJ1ZilgLiBJZiBpdCB0b29rIHRoZSBgaWYgKGJ1cy1cdTAwM2VyeGN0bClgIGJyYW5jaCwgaXQgc3RpbGwgZW5kcyB1cCBhdCB0aGUgc2FtZSBsaW5lIHRoYXQgY2FsbHMgYHZmcmVlKGJ1ZilgLlxuXG5Ib3dldmVyLCB0aGUgaW50ZW50aW9uIG9mIHRoZSBwYXRjaCBpcyBub3QgY2xlYXIuIElzIGl0IGFkZHJlc3NpbmcgYSBkb3VibGUgZnJlZT8gTm8uIElmIGBidXMtXHUwMDNlcnhjdGxgIGlzIHRydWUsIGl0IHVzZWQgdG8gZnJlZSBgYnVmYCwgYW5kIG5vdyBpdCBkb2VzLCBzbyBpdCBpcyBsb2dpY2FsbHkgdGhlIHNhbWUuIFRoZSBgYnVmID0gTlVMTGAgYW5kIHRoZW4gYHZmcmVlKGJ1ZilgIG1lYW5zIHRoZSBzYW1lIHRoaW5nLiBUaGUgb3JpZ2luYWwgY29kZSBjb3VsZCAqcG90ZW50aWFsbHkqIGhhdmUgYSBtZW1vcnkgbGVhayBiZWNhdXNlIGlmIHRoZSBjb250cm9sIGZyYW1lIHdhc24ndCBhY3RpdmUsIHRoZW4gaXQgd291bGQgbm90IGZyZWUgdGhlIGJ1ZmZlci4gVGhlIHBhdGNoZWQgY29kZSBpcyBsb2dpY2FsbHkgZXF1aXZhbGVudDsgbm8gZG91YmxlLWZyZWUuXG5cbkknbSBwcmV0dHkgY2VydGFpbiB0aGVyZSBpcyBubyBsb2dpYyBlcnJvci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI4NjksIk91dHB1dFRva2VucyI6NTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MzMuMDM5MzI5MzQzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxNDE4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE3NTYsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNzU2OlxcdHN0YXRpYyB2b2lkXFxuMTc1NzpcXHRicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbjE3NTg6XFx0e1xcbjE3NTk6XFx0XFx0dWludCByZGxlbiwgcGFkO1xcbjE3NjA6XFx0XFx0dTggKmJ1ZiA9IE5VTEwsICpyYnVmO1xcbjE3NjE6XFx0XFx0aW50IHNkcmV0O1xcbjE3NjI6XFx0XFxuMTc2MzpcXHRcXHRicmNtZl9kYmcoU0RJTywgXFxcIkVudGVyXFxcXG5cXFwiKTtcXG4xNzY0OlxcdFxcdGlmIChidXMtXFx1MDAzZXJ4YmxlbilcXG4xNzY1OlxcdFxcdFxcdGJ1ZiA9IHZ6YWxsb2MoYnVzLVxcdTAwM2VyeGJsZW4pO1xcbjE3NjY6XFx0XFx0aWYgKCFidWYpXFxuMTc2NzpcXHRcXHRcXHRnb3RvIGRvbmU7XFxuMTc2ODpcXHRcXG4xNzY5OlxcdFxcdHJidWYgPSBidXMtXFx1MDAzZXJ4YnVmO1xcbjE3NzA6XFx0XFx0cGFkID0gKCh1bnNpZ25lZCBsb25nKXJidWYgJSBidXMtXFx1MDAzZWhlYWRfYWxpZ24pO1xcbjE3NzE6XFx0XFx0aWYgKHBhZClcXG4xNzcyOlxcdFxcdFxcdHJidWYgKz0gKGJ1cy1cXHUwMDNlaGVhZF9hbGlnbiAtIHBhZCk7XFxuMTc3MzpcXHRcXG4xNzc0OlxcdFxcdC8qIENvcHkgdGhlIGFscmVhZHktcmVhZCBwb3J0aW9uIG92ZXIgKi9cXG4xNzc1OlxcdFxcdG1lbWNweShidWYsIGhkciwgQlJDTUZfRklSU1RSRUFEKTtcXG4xNzc2OlxcdFxcdGlmIChsZW4gXFx1MDAzYz0gQlJDTUZfRklSU1RSRUFEKVxcbjE3Nzc6XFx0XFx0XFx0Z290byBnb3Rwa3Q7XFxuMTc3ODpcXHRcXG4xNzc5OlxcdFxcdC8qIFJhaXNlIHJkbGVuIHRvIG5leHQgU0RJTyBibG9jayB0byBhdm9pZCB0YWlsIGNvbW1hbmQgKi9cXG4xNzgwOlxcdFxcdHJkbGVuID0gbGVuIC0gQlJDTUZfRklSU1RSRUFEO1xcbjE3ODE6XFx0XFx0aWYgKGJ1cy1cXHUwMDNlcm91bmR1cCBcXHUwMDI2XFx1MDAyNiBidXMtXFx1MDAzZWJsb2Nrc2l6ZSBcXHUwMDI2XFx1MDAyNiAocmRsZW4gXFx1MDAzZSBidXMtXFx1MDAzZWJsb2Nrc2l6ZSkpIHtcXG4xNzgyOlxcdFxcdFxcdHBhZCA9IGJ1cy1cXHUwMDNlYmxvY2tzaXplIC0gKHJkbGVuICUgYnVzLVxcdTAwM2VibG9ja3NpemUpO1xcbjE3ODM6XFx0XFx0XFx0aWYgKChwYWQgXFx1MDAzYz0gYnVzLVxcdTAwM2Vyb3VuZHVwKSBcXHUwMDI2XFx1MDAyNiAocGFkIFxcdTAwM2MgYnVzLVxcdTAwM2VibG9ja3NpemUpIFxcdTAwMjZcXHUwMDI2XFxuMTc4NDpcXHRcXHRcXHQgICAgKChsZW4gKyBwYWQpIFxcdTAwM2MgYnVzLVxcdTAwM2VzZGlvZGV2LVxcdTAwM2VidXNfaWYtXFx1MDAzZW1heGN0bCkpXFxuMTc4NTpcXHRcXHRcXHRcXHRyZGxlbiArPSBwYWQ7XFxuMTc4NjpcXHRcXHR9IGVsc2UgaWYgKHJkbGVuICUgYnVzLVxcdTAwM2VoZWFkX2FsaWduKSB7XFxuMTc4NzpcXHRcXHRcXHRyZGxlbiArPSBidXMtXFx1MDAzZWhlYWRfYWxpZ24gLSAocmRsZW4gJSBidXMtXFx1MDAzZWhlYWRfYWxpZ24pO1xcbjE3ODg6XFx0XFx0fVxcbjE3ODk6XFx0XFxuMTc5MDpcXHRcXHQvKiBEcm9wIGlmIHRoZSByZWFkIGlzIHRvbyBiaWcgb3IgaXQgZXhjZWVkcyBvdXIgbWF4aW11bSAqL1xcbjE3OTE6XFx0XFx0aWYgKChyZGxlbiArIEJSQ01GX0ZJUlNUUkVBRCkgXFx1MDAzZSBidXMtXFx1MDAzZXNkaW9kZXYtXFx1MDAzZWJ1c19pZi1cXHUwMDNlbWF4Y3RsKSB7XFxuMTc5MjpcXHRcXHRcXHRicmNtZl9lcnIoXFxcIiVkLWJ5dGUgY29udHJvbCByZWFkIGV4Y2VlZHMgJWQtYnl0ZSBidWZmZXJcXFxcblxcXCIsXFxuMTc5MzpcXHRcXHRcXHRcXHQgIHJkbGVuLCBidXMtXFx1MDAzZXNkaW9kZXYtXFx1MDAzZWJ1c19pZi1cXHUwMDNlbWF4Y3RsKTtcXG4xNzk0OlxcdFxcdFxcdGJyY21mX3NkaW9fcnhmYWlsKGJ1cywgZmFsc2UsIGZhbHNlKTtcXG4xNzk1OlxcdFxcdFxcdGdvdG8gZG9uZTtcXG4xNzk2OlxcdFxcdH1cXG4xNzk3OlxcdFxcbjE3OTg6XFx0XFx0aWYgKChsZW4gLSBkb2ZmKSBcXHUwMDNlIGJ1cy1cXHUwMDNlc2Rpb2Rldi1cXHUwMDNlYnVzX2lmLVxcdTAwM2VtYXhjdGwpIHtcXG4xNzk5OlxcdFxcdFxcdGJyY21mX2VycihcXFwiJWQtYnl0ZSBjdGwgZnJhbWUgKCVkLWJ5dGUgY3RsIGRhdGEpIGV4Y2VlZHMgJWQtYnl0ZSBsaW1pdFxcXFxuXFxcIixcXG4xODAwOlxcdFxcdFxcdFxcdCAgbGVuLCBsZW4gLSBkb2ZmLCBidXMtXFx1MDAzZXNkaW9kZXYtXFx1MDAzZWJ1c19pZi1cXHUwMDNlbWF4Y3RsKTtcXG4xODAxOlxcdFxcdFxcdGJ1cy1cXHUwMDNlc2RjbnQucnhfdG9vbG9uZysrO1xcbjE4MDI6XFx0XFx0XFx0YnJjbWZfc2Rpb19yeGZhaWwoYnVzLCBmYWxzZSwgZmFsc2UpO1xcbjE4MDM6XFx0XFx0XFx0Z290byBkb25lO1xcbjE4MDQ6XFx0XFx0fVxcbjE4MDU6XFx0XFxuMTgwNjpcXHRcXHQvKiBSZWFkIHJlbWFpbiBvZiBmcmFtZSBib2R5ICovXFxuMTgwNzpcXHRcXHRzZHJldCA9IGJyY21mX3NkaW9kX3JlY3ZfYnVmKGJ1cy1cXHUwMDNlc2Rpb2RldiwgcmJ1ZiwgcmRsZW4pO1xcbjE4MDg6XFx0XFx0YnVzLVxcdTAwM2VzZGNudC5mMnJ4ZGF0YSsrO1xcbjE4MDk6XFx0XFxuMTgxMDpcXHRcXHQvKiBDb250cm9sIGZyYW1lIGZhaWx1cmVzIG5lZWQgcmV0cmFuc21pc3Npb24gKi9cXG4xODExOlxcdFxcdGlmIChzZHJldCBcXHUwMDNjIDApIHtcXG4xODEyOlxcdFxcdFxcdGJyY21mX2VycihcXFwicmVhZCAlZCBjb250cm9sIGJ5dGVzIGZhaWxlZDogJWRcXFxcblxcXCIsXFxuMTgxMzpcXHRcXHRcXHRcXHQgIHJkbGVuLCBzZHJldCk7XFxuMTgxNDpcXHRcXHRcXHRidXMtXFx1MDAzZXNkY250LnJ4Y19lcnJvcnMrKztcXG4xODE1OlxcdFxcdFxcdGJyY21mX3NkaW9fcnhmYWlsKGJ1cywgdHJ1ZSwgdHJ1ZSk7XFxuMTgxNjpcXHRcXHRcXHRnb3RvIGRvbmU7XFxuMTgxNzpcXHRcXHR9IGVsc2VcXG4xODE4OlxcdFxcdFxcdG1lbWNweShidWYgKyBCUkNNRl9GSVJTVFJFQUQsIHJidWYsIHJkbGVuKTtcXG4xODE5OlxcdFxcbjE4MjA6XFx0Z290cGt0OlxcbjE4MjE6XFx0XFxuMTgyMjpcXHRcXHRicmNtZl9kYmdfaGV4X2R1bXAoQlJDTUZfQllURVNfT04oKSBcXHUwMDI2XFx1MDAyNiBCUkNNRl9DVExfT04oKSxcXG4xODIzOlxcdFxcdFxcdFxcdCAgIGJ1ZiwgbGVuLCBcXFwiUnhDdHJsOlxcXFxuXFxcIik7XFxuMTgyNDpcXHRcXG4xODI1OlxcdFxcdC8qIFBvaW50IHRvIHZhbGlkIGRhdGEgYW5kIGluZGljYXRlIGl0cyBsZW5ndGggKi9cXG4xODI2OlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2YnVzLVxcdTAwM2VyeGN0bF9sb2NrKTtcXG4xODI3OlxcdFxcdGlmIChidXMtXFx1MDAzZXJ4Y3RsKSB7XFxuMTgyODpcXHRcXHRcXHRicmNtZl9lcnIoXFxcImxhc3QgY29udHJvbCBmcmFtZSBpcyBiZWluZyBwcm9jZXNzZWQuXFxcXG5cXFwiKTtcXG4xODI5OlxcdFxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZidXMtXFx1MDAzZXJ4Y3RsX2xvY2spO1xcbjE4MzA6XFx0XFx0XFx0Z290byBkb25lO1xcbjE4MzE6XFx0XFx0fVxcbjE4MzI6XFx0XFx0YnVzLVxcdTAwM2VyeGN0bCA9IGJ1ZiArIGRvZmY7XFxuMTgzMzpcXHRcXHRidXMtXFx1MDAzZXJ4Y3RsX29yaWcgPSBidWY7XFxuMTgzNDpcXHRcXHRidXMtXFx1MDAzZXJ4bGVuID0gbGVuIC0gZG9mZjtcXG4xODM1OlxcdFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZidXMtXFx1MDAzZXJ4Y3RsX2xvY2spO1xcbjE4MzY6XFx0XFx0YnVmID0gTlVMTDtcXG4xODM3OlxcdFxcbjE4Mzg6XFx0ZG9uZTpcXG4xODM5OlxcdFxcdC8qIEF3YWtlIGFueSB3YWl0ZXJzICovXFxuMTg0MDpcXHRcXHRicmNtZl9zZGlvX2RjbWRfcmVzcF93YWtlKGJ1cyk7XFxuMTg0MTpcXHRcXHR2ZnJlZShidWYpO1xcbjE4NDI6XFx0fVxcbjE4NDM6XFx0XFxuMTg0NDpcXHQvKiBQYWQgcmVhZCB0byBibG9ja3NpemUgZm9yIGVmZmljaWVuY3kgKi9cXG4xODQ1OlxcdHN0YXRpYyB2b2lkIGJyY21mX3NkaW9fcGFkKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHUxNiAqcGFkLCB1MTYgKnJkbGVuKVxcbjE4NDY6XFx0e1xcbjE4NDc6XFx0XFx0aWYgKGJ1cy1cXHUwMDNlcm91bmR1cCBcXHUwMDI2XFx1MDAyNiBidXMtXFx1MDAzZWJsb2Nrc2l6ZSBcXHUwMDI2XFx1MDAyNiAqcmRsZW4gXFx1MDAzZSBidXMtXFx1MDAzZWJsb2Nrc2l6ZSkge1xcbjE4NDg6XFx0XFx0XFx0KnBhZCA9IGJ1cy1cXHUwMDNlYmxvY2tzaXplIC0gKCpyZGxlbiAlIGJ1cy1cXHUwMDNlYmxvY2tzaXplKTtcXG4xODQ5OlxcdFxcdFxcdGlmICgqcGFkIFxcdTAwM2M9IGJ1cy1cXHUwMDNlcm91bmR1cCBcXHUwMDI2XFx1MDAyNiAqcGFkIFxcdTAwM2MgYnVzLVxcdTAwM2VibG9ja3NpemUgXFx1MDAyNlxcdTAwMjZcXG4xODUwOlxcdFxcdFxcdCAgICAqcmRsZW4gKyAqcGFkICsgQlJDTUZfRklSU1RSRUFEIFxcdTAwM2MgTUFYX1JYX0RBVEFTWilcXG4xODUxOlxcdFxcdFxcdFxcdCpyZGxlbiArPSAqcGFkO1xcbjE4NTI6XFx0XFx0fSBlbHNlIGlmICgqcmRsZW4gJSBidXMtXFx1MDAzZWhlYWRfYWxpZ24pIHtcXG4xODUzOlxcdFxcdFxcdCpyZGxlbiArPSBidXMtXFx1MDAzZWhlYWRfYWxpZ24gLSAoKnJkbGVuICUgYnVzLVxcdTAwM2VoZWFkX2FsaWduKTtcXG4xODU0OlxcdFxcdH1cXG4xODU1OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6MzMuMDM5OTQ2NDU0WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5NDE3MjQ2MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTWVtb3J5IExlYWsgRml4IGluIGJyY21mbWFjIERyaXZlcioqXG5cbk9rYXksIHNvIGJlZm9yZSB0aGlzIHBhdGNoLCBJIHNlZSB0aGVyZSB3ZXJlIHNldmVyYWwgaW5zdGFuY2VzIG9mIGBnb3RvIGRvbmU7YCBzdGF0ZW1lbnRzIHNjYXR0ZXJlZCBhcm91bmQsIGFuZCB0aGV5IHdlcmUgbGVha2luZyBgYnVmYCEgRm9yIGV4YW1wbGUsIHRha2UgdGhpcyBzbmlwcGV0OlxuXG5gYGBjXG5cdGlmICgocmRsZW4gKyBCUkNNRl9GSVJTVFJFQUQpIFx1MDAzZSBidXMtXHUwMDNlc2Rpb2Rldi1cdTAwM2VidXNfaWYtXHUwMDNlbWF4Y3RsKSB7XG5cdFx0YnJjbWZfZXJyKFwiJWQtYnl0ZSBjb250cm9sIHJlYWQgZXhjZWVkcyAlZC1ieXRlIGJ1ZmZlclxcblwiLFxuXHRcdFx0ICByZGxlbiwgYnVzLVx1MDAzZXNkaW9kZXYtXHUwMDNlYnVzX2lmLVx1MDAzZW1heGN0bCk7XG5cdFx0YnJjbWZfc2Rpb19yeGZhaWwoYnVzLCBmYWxzZSwgZmFsc2UpO1xuXHRcdGdvdG8gZG9uZTtcblx0fVxuYGBgXG5cbklmIHRoYXQgYGlmYCBjb25kaXRpb24gd2FzIHRydWUsIGBidWZgIHdhcyBhbGxvY2F0ZWQsIGJ1dCB0aGUgY29kZSB3b3VsZCBqdW1wIHRvIGBkb25lOmAgKndpdGhvdXQqIGZyZWVpbmcgaXQuIFRoYXQncyBhIGNsYXNzaWMgbWVtb3J5IGxlYWsuXG5cblRoaXMgcGF0Y2gsIHRoYW5rZnVsbHksIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgYWRkaW5nIGB2ZnJlZShidWYpYCBhdCBgZG9uZTpgIGFuZCBzZXR0aW5nIGBidWYgPSBOVUxMYCBvbiB0aGUgc3VjY2Vzc2Z1bCBwYXRoLiBUaGlzIGlzIGEgc29saWQgZml4IGZvciB0aGVzZSBlcnJvciBwYXRocy5cblxuTm93LCBzaG91bGQgSSBjb25zaWRlciBmdXp6aW5nIHRoaXM/IEFic29sdXRlbHkhIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc3BlY2lmaWNhbGx5IGZpeGluZyBhIG1lbW9yeSBsZWFrLiBBbmQgdGhlIGBicmNtZm1hY2AgZHJpdmVyIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGVtdWxhdGlvbi4gVGhlIGRyaXZlciBuYW1lIGlzIGBicmNtZm1hY2AuXG5cbldoYXQgY29uZmlncyBkbyBJIG5lZWQgdG8gdHJpZ2dlciB0aGlzPyBJJ2xsIG5lZWQgYENPTkZJR19CUkNNRk1BQ2AsIG9idmlvdXNseS4gU2luY2UgdGhlIGNvZGUgaW4gcXVlc3Rpb24sIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGlzIHJlbGF0ZWQgdG8gU0RJTywgSSdsbCBhbHNvIG5lZWQgYENPTkZJR19CUkNNRk1BQ19TRElPYC4gQW5kLCBzaW5jZSBpdCdzIHJlYWNoYWJsZSB2aWEgVVNCIGVtdWxhdGlvbiwgSSdsbCBuZWVkIGBDT05GSUdfQlJDTUZNQUNfVVNCYC4gVGhlbiwgdGhlIGNydWNpYWwgYml0IGZvciBzeXprYWxsZXIsIEknbGwgbmVlZCBgQ09ORklHX01NQ19WVUIzMDBgIHRvIGVtdWxhdGUgdGhlIFNESU8gaG9zdCBjb250cm9sbGVyIHZpYSBVU0IuXG5cbldhaXQsIGlzbid0IGBicmNtZm1hY2AgYWxzbyBkaXJlY3RseSBwcm9iZWQgdGhyb3VnaCBVU0IgKGBDT05GSUdfQlJDTUZNQUNfVVNCYCk/IEJ1dCwgdGhlIHZ1bG5lcmFibGUgY29kZSBsaXZlcyBpbiBgc2Rpby5jYCwgd2hpY2ggaXMgb25seSBjb21waWxlZCBpZiBgQ09ORklHX0JSQ01GTUFDX1NESU9gIGlzIGVuYWJsZWQuIEFuZCwgSSBuZWVkIGFuIFNESU8gaG9zdCBjb250cm9sbGVyIHRvIHJlYWNoIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAsIGFuZCB0aGF0J3MgZXhhY3RseSB3aGF0IGBDT05GSUdfTU1DX1ZVQjMwMGAgcHJvdmlkZXMgYXMgdGhlIFVTQi10by1TRElPIGJyaWRnZSB0aGF0IHN5emthbGxlciB1c2VzLiBSaWdodCwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmb3IgYGJyY21mbWFjYCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjIzNCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwNywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjQwLjk4MTY3Mzc5MVoiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODkxNjQyNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJSQ01GTUFDXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDo0MS4wNzA4NDQzMDlaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njk3MDMwODE1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkNoZWNraW5nIEJSQ01GTUFDX1NESU8gRGVwZW5kZW5jaWVzKipcblxuUmlnaHQsIGxldCdzIGRpdmUgaW50byB0aGlzIGBCUkNNRk1BQ19TRElPYCBzaXR1YXRpb24uIEZpcnN0IHRoaW5ncyBmaXJzdCwgSSBuZWVkIHRvIG1ldGhvZGljYWxseSB0cmFjZSBhbGwgdGhlIGRlcGVuZGVuY2llcy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb2J2aW91cyBjb25mbGljdHMuIEFyZSB0aGVyZSBhbnkgb3RoZXIgbW9kdWxlcywgZHJpdmVycywgb3Igc3lzdGVtIHNlcnZpY2VzIHRoYXQgcmVseSBvbiwgb3IgYXJlIGRlcGVuZGVkIHVwb24gYnksIGBCUkNNRk1BQ19TRElPYD8gSSdtIHRoaW5raW5nIGFib3V0IGNsb2NrIGNvbnRyb2wsIGludGVycnVwdCBoYW5kbGluZywgU0RJTyBidXMgc3BlY2lmaWNzLCBhbmQgcG90ZW50aWFsbHkgcG93ZXIgbWFuYWdlbWVudCDigJMgdGhlIHVzdWFsIHN1c3BlY3RzLiBJ4oCZbGwgbWFrZSBhIG5vdGUgb2YgYW55dGhpbmcgdW5leHBlY3RlZCBvciB1bmNsZWFyIGltbWVkaWF0ZWx5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBpdHMgZGVwZW5kZW5jaWVzIGFyZSBjb3JyZWN0bHkgY29uZmlndXJlZCBhbmQgaWYgdGhlcmUncyBhbnkgY2lyY3VsYXIgZGVwZW5kZW5jeSBpc3N1ZXMuIFRpbWUgdG8gZGlnIGludG8gdGhlIGRvY3VtZW50YXRpb24gYW5kIHNvdXJjZSBjb2RlIHRvIHZlcmlmeS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc4NDEsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMDo0OC4wNDExNTUyMjNaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0MzA2NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUkNNRk1BQ19TRElPXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc9MTQ9Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjQ4LjEwNTQ2NzUyMloiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTEwOTA4MjY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBicmNtZm1hYyBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIGhvdyB0aGlzIGBicmNtZm1hY2AgZHJpdmVyIGlzIGNvbmZpZ3VyZWQgd2l0aGluIHRoZSBicm9hZGVyIGtlcm5lbC4gTXkgaW5zdGluY3RzIHRlbGwgbWUgdGhlIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIEknbGwgZmluZCB0aGUgZ29vZCBzdHVmZiBhcm91bmQgbGluZSAxNyBvZiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdgLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgc29saWQgb3ZlcnZpZXcgb2YgdGhlIGNvbmZpZ3VyYWJsZSBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byB0aGUgQnJvYWRjb20gd2lyZWxlc3MgZHJpdmVyLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgZ29vZGllcyBJIGNhbiB1bmVhcnRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODI1NywiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjEwOjUyLjIxNjM3OTg4OFoiLCJTZXEiOjM4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5Mzc5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdGNvbmZpZyBCUkNNRk1BQ1xcbiAgIDI6XFx0XFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcXFwiXFxuICAgMzpcXHRcXHRkZXBlbmRzIG9uIENGRzgwMjExXFxuICAgNDpcXHRcXHRzZWxlY3QgQlJDTVVUSUxcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciB3aXJlbGVzcyBhZGFwdGVycyBiYXNlZCBvbiBCcm9hZGNvbVxcbiAgIDc6XFx0XFx0ICBGdWxsTUFDIGNoaXBzZXRzLiBJdCBoYXMgdG8gd29yayB3aXRoIGF0IGxlYXN0IG9uZSBvZiB0aGUgYnVzXFxuICAgODpcXHRcXHQgIGludGVyZmFjZSBzdXBwb3J0LiBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWRcXG4gICA5OlxcdFxcdCAgYnJjbWZtYWMua28uXFxuICAxMDpcXHRcXG4gIDExOlxcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXFxuICAxMjpcXHRcXHRib29sXFxuICAxMzpcXHRcXG4gIDE0OlxcdGNvbmZpZyBCUkNNRk1BQ19QUk9UT19NU0dCVUZcXG4gIDE1OlxcdFxcdGJvb2xcXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIEJSQ01GTUFDX1NESU9cXG4gIDE4OlxcdFxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4gIDE5OlxcdFxcdGRlcGVuZHMgb24gKE1NQyA9IHkgfHwgTU1DID0gQlJDTUZNQUMpXFxuICAyMDpcXHRcXHRkZXBlbmRzIG9uIEJSQ01GTUFDXFxuICAyMTpcXHRcXHRzZWxlY3QgQlJDTUZNQUNfUFJPVE9fQkNEQ1xcbiAgMjI6XFx0XFx0c2VsZWN0IEZXX0xPQURFUlxcbiAgMjM6XFx0XFx0ZGVmYXVsdCB5XFxuICAyNDpcXHRcXHRoZWxwXFxuICAyNTpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBCcm9hZGNvbVxcbiAgMjY6XFx0XFx0ICBJRUVFODAyLjExbiBlbWJlZGRlZCBGdWxsTUFDIFdMQU4gZHJpdmVyLiBTYXkgWSBpZiB5b3Ugd2FudCB0b1xcbiAgMjc6XFx0XFx0ICB1c2UgdGhlIGRyaXZlciBmb3IgYSBTRElPIHdpcmVsZXNzIGNhcmQuXFxuICAyODpcXHRcXG4gIDI5OlxcdGNvbmZpZyBCUkNNRk1BQ19VU0JcXG4gIDMwOlxcdFxcdGJvb2wgXFxcIlVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcbiAgMzE6XFx0XFx0ZGVwZW5kcyBvbiAoVVNCID0geSB8fCBVU0IgPSBCUkNNRk1BQylcXG4gIDMyOlxcdFxcdGRlcGVuZHMgb24gQlJDTUZNQUNcXG4gIDMzOlxcdFxcdHNlbGVjdCBCUkNNRk1BQ19QUk9UT19CQ0RDXFxuICAzNDpcXHRcXHRzZWxlY3QgRldfTE9BREVSXFxuICAzNTpcXHRcXHRoZWxwXFxuICAzNjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFVTQiBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEJyb2FkY29tXFxuICAzNzpcXHRcXHQgIElFRUU4MDIuMTFuIGVtYmVkZGVkIEZ1bGxNQUMgV0xBTiBkcml2ZXIuIFNheSBZIGlmIHlvdSB3YW50IHRvXFxuICAzODpcXHRcXHQgIHVzZSB0aGUgZHJpdmVyIGZvciBhbiBVU0Igd2lyZWxlc3MgY2FyZC5cXG4gIDM5OlxcdFxcbiAgNDA6XFx0Y29uZmlnIEJSQ01GTUFDX1BDSUVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6NTIuMjE2NDc2MTQ4WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MDQ1NTAyOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQ3VycmVudCBGb2N1czogRGVmaW5pbmcgdGhlIE5lY2Vzc2FyeSBEcml2ZXJzKipcblxuT2theSwgc28gSSdtIHB1dHRpbmcgdG9nZXRoZXIgdGhlIGRyaXZlciBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgcHJvamVjdCwgYW5kIGl0J3MgYmVjb21pbmcgY2xlYXIgd2hhdCBJIG5lZWQuIEl0IGxvb2tzIGxpa2UgSSdtIGRlZmluaXRlbHkgZ29pbmcgdG8gcmVxdWlyZSBib3RoIGBCUkNNRk1BQ2AgYW5kIGBCUkNNRk1BQ19TRElPYC4gRnVydGhlcm1vcmUsIHRoZSBgTU1DYCBkcml2ZXIgaXMgYSBnaXZlbiwgb2J2aW91c2x5LiBOb3csIHRoZSBjdXJ2ZWJhbGwgaGVyZSBpcyB0aGlzIGBNTUNfVlVCMzAwYCBkcml2ZXIuIE15IHVuZGVyc3RhbmRpbmcgaXMgaXQncyBoYW5kbGluZyBTRElPIGVtdWxhdGlvbiB0aHJvdWdoIFVTQi4gVGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscyBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55IGluZGlyZWN0IGRlcGVuZGVuY2llcy4gSSdsbCBjaGVjayBpdHMgb3duIGRlcGVuZGVuY2llcyBhbmQgbWFrZSBjZXJ0YWluIGV2ZXJ5dGhpbmcgbGlua3MgdXAgY29ycmVjdGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTA1NSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6NTYuMTIxMDI5NTQ3WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTY3NDMyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1NQ19WVUIzMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkxMD1jb25maWcgTU1DX0paNDc0MFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTkxOS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWc6OTIwOmNvbmZpZyBNTUNfVlVCMzAwXFxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTkyMS1cXHR0cmlzdGF0ZSBcXFwiVlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTA6NTYuMjc3Nzc5OTg0WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNDUwNDc2NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIE1NQyBIb3N0IENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIHRoZSBgZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnYCBmaWxlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgOTIwLiBJJ20gbGlrZWx5IGludGVyZXN0ZWQgaW4gaG93IHNvbWUgcGFydGljdWxhciBmZWF0dXJlIG9yIG9wdGlvbiByZWxhdGVkIHRvIE1NQyBob3N0IGNvbnRyb2xsZXJzIGlzIGJlaW5nIGNvbmZpZ3VyZWQuIEdpdmVuIHRoZSBsb2NhdGlvbiB3aXRoaW4gS2NvbmZpZywgSSdtIGV4cGVjdGluZyB0byBmaW5kIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9wdGlvbnMgb3IgZGVwZW5kZW5jaWVzIGJlaW5nIGRlZmluZWQuIE15IGdvYWwgaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBzcGVjaWZpYyBhc3BlY3QgaXMgY29udHJvbGxlZCwgd2hhdCBvdGhlciBmZWF0dXJlcyBpdCBtaWdodCBkZXBlbmQgb24sIGFuZCBwb3RlbnRpYWxseSwgd2hhdCBoYXJkd2FyZSBwbGF0Zm9ybXMgb3Iga2VybmVsIGNvbmZpZ3VyYXRpb25zIGVuYWJsZSBvciBkaXNhYmxlIGl0LiBQZXJoYXBzIEknbSB0cnlpbmcgdG8gZGVidWcgYW4gaXNzdWUsIG9yIHNpbXBseSB1bmRlcnN0YW5kIHRoZSBsb2dpYyBiZWhpbmQgYSBuZXcgTU1DIGhvc3QgZHJpdmVyIEknbSBsb29raW5nIGF0LiBNYXliZSBJJ20gdHJ5aW5nIHRvIGJ1aWxkIGEgY3VzdG9tIGtlcm5lbCBjb25maWd1cmF0aW9uLCBhbmQgbmVlZCB0byBrbm93IHRoZSBpbXBsaWNhdGlvbnMgb2YgZW5hYmxpbmcgYSBwYXJ0aWN1bGFyIE1NQy1yZWxhdGVkIG9wdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDk0MDgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMTowMC41MjI4MzE0MTdaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIwMzEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA5MTUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA5MTU6XFx0XFx0ICBKWjQ3NDAsIEpaNDc1MCwgSlo0NzcwIGFuZCBKWjQ3ODAgU29Dcy5cXG4gOTE2OlxcdFxcbiA5MTc6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIGJvYXJkIGJhc2VkIG9uIHN1Y2ggYSBTb0MgYW5kIHdpdGggYSBTRC9NTUMgc2xvdCxcXG4gOTE4OlxcdFxcdCAgc2F5IFkgb3IgTSBoZXJlLlxcbiA5MTk6XFx0XFxuIDkyMDpcXHRjb25maWcgTU1DX1ZVQjMwMFxcbiA5MjE6XFx0XFx0dHJpc3RhdGUgXFxcIlZVQjMwMCBVU0IgdG8gU0RJTy9TRC9NTUMgSG9zdCBDb250cm9sbGVyIHN1cHBvcnRcXFwiXFxuIDkyMjpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiA5MjM6XFx0XFx0aGVscFxcbiA5MjQ6XFx0XFx0ICBUaGlzIHNlbGVjdHMgc3VwcG9ydCBmb3IgRWxhbiBEaWdpdGFsIFN5c3RlbXMnIFZVQjMwMCBjaGlwLlxcbiA5MjU6XFx0XFxuIDkyNjpcXHRcXHQgIFRoZSBWVUIzMDAgaXMgYSBVU0ItU0RJTyBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlIGNoaXBcXG4gOTI3OlxcdFxcdCAgdGhhdCBlbmFibGVzIHRoZSBob3N0IGNvbXB1dGVyIHRvIHVzZSBTRElPL1NEL01NQyBjYXJkc1xcbiA5Mjg6XFx0XFx0ICB2aWEgYSBVU0IgMi4wIG9yIFVTQiAxLjEgaG9zdC5cXG4gOTI5OlxcdFxcbiA5MzA6XFx0XFx0ICBUaGUgVlVCMzAwIGNoaXAgd2lsbCBiZSBmb3VuZCBpbiBib3RoIHBoeXNpY2FsbHkgc2VwYXJhdGVcXG4gOTMxOlxcdFxcdCAgVVNCIHRvIFNESU8vU0QvTU1DIGFkYXB0ZXJzIGFuZCBlbWJlZGRlZCBvbiBzb21lIG1vdGhlcmJvYXJkcy5cXG4gOTMyOlxcdFxcbiA5MzM6XFx0XFx0ICBUaGUgVlVCMzAwIGNoaXAgc3VwcG9ydHMgU0QgYW5kIE1NQyBtZW1vcnkgY2FyZHMgaW4gYWRkaXRpb25cXG4gOTM0OlxcdFxcdCAgdG8gc2luZ2xlIGFuZCBtdWx0aWZ1bmN0aW9uIFNESU8gY2FyZHMuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjAwLjUyMjk1MzczN1oiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzQyMTA5ODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU0RJTyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSBzZWUgdGhhdCBlbmFibGluZyBgTU1DX1ZVQjMwMGAgaGluZ2VzIG9uIGBVU0JgLiBUaGF0J3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaDsgSSdsbCBuZWVkIHRvIG1ha2Ugc3VyZSBgVVNCYCBpcyBjb25maWd1cmVkIGFwcHJvcHJpYXRlbHkuIFRoZSBwYXRjaCBhbHNvIHN1Z2dlc3RzIHRoZXNlIGNvbmZpZ3MgbmVlZCB0byBiZSBlbmFibGVkOiBgQlJDTUZNQUNgLCBgQlJDTUZNQUNfU0RJT2AsIGFuZCwgb2YgY291cnNlLCBgTU1DX1ZVQjMwMGAuXG5cbk5vdywgYmVmb3JlIEkgY29tbWl0IHRvIGVuYWJsaW5nIGBCUkNNRk1BQ2AsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaXRzIGRlcGVuZGVuY2llcy4gQWgsIGl0IGxvb2tzIGxpa2UgaXQgcmVsaWVzIG9uIGBDRkc4MDIxMWAuIFNvLCBgQ0ZHODAyMTFgIGhhcyB0byBiZSBlbmFibGVkIHRvby4gTm8gc3VycHJpc2VzIHRoZXJlLCBidXQgYWx3YXlzIGdvb2QgdG8gY29uZmlybS5cblxuTGV0J3MgZHJpbGwgZG93biBpbnRvIHRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpdHNlbGYuIFRoZSBkaWZmIG1vZGlmaWVzIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIFRoaXMgZnVuY3Rpb24gY2FsbHMgYGJyY21mX3NkaW9fcmVhZGZyYW1lc2AsIHdoaWNoIGlzIGNhbGxlZCBieSBgYnJjbWZfc2Rpb19kcGNgLiBUaGUgbGF0dGVyIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBicmNtZl9zZGlvX2RhdGF3b3JrZXJgLiBTbyB0aGUgZW50cnkgcG9pbnQgdG8gdGhlIFNESU8gYnVzIGlzIHByb2JhYmx5IGBicmNtZl9zZGlvX2RwY2Agb3IgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAuXG5cbldhaXQsIGlzbid0IGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAgYSAqc3RhdGljKiBmdW5jdGlvbj8gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgcmVxdWVzdHMgd2UgdXNlIG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnRzLiBUaGUgY29tcGlsZXIgd2lsbCBpbmxpbmUgc3RhdGljIGZ1bmN0aW9ucywgc28gdGhleSBkb24ndCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMuIE9rYXksIHRpbWUgdG8gZ28gaW50byBgc2Rpby5jYCBhbmQgaHVudCBmb3IgdGhlIG5vbi1zdGF0aWMgZW50cnkgcG9pbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDAyMCwiT3V0cHV0VG9rZW5zIjo1NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjA2Ljg2NTA2NTc0NFoiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MTI3MDM4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5icmNtZl9zZGlvX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Njk3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtOTY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIwNzc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIxOTAtXFx0XFx0ICAgICAgdWludCBjaGFuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIyNjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI5MzY6YnJjbWZfc2Rpb19idXNfdHhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyNDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyOTgtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzM0MjpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzc3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM5NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQwOTk6YnJjbWZfc2Rpb193YXRjaGRvZ190aHJlYWQodm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MTI1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQyNi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjA2Ljk2OTE5NzE0MloiLCJTZXEiOjQ1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzkxODUzNTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggc3VtbWFyaXppbmcgdGhlIHByb21wdDpcblxuKipBbmFseXppbmcgYHNkaW8uY2AgZm9yIE5vbi1TdGF0aWMgRnVuY3Rpb25zKipcblxuUmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgYHNkaW8uY2AgYW5kIHNwZWNpZmljYWxseSBwaW5wb2ludCB0aGUgbm9uLXN0YXRpYyBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZS4gVGhlIGZvY3VzIGhlcmUgaXMgb24gdmlzaWJpbGl0eSBhbmQgcG90ZW50aWFsIGV4dGVybmFsIGludGVyYWN0aW9uLiBTdGF0aWMgZnVuY3Rpb25zLCBieSBkZWZpbml0aW9uLCBhcmUgbGltaXRlZCBpbiBzY29wZSB0byB0aGUgZmlsZSB0aGV5J3JlIGRlY2xhcmVkIGluLiBJJ20gYXNzdW1pbmcgdGhlcmUncyBhIHNwZWNpZmljIHJlYXNvbiBmb3IgdGhpcyBub24tc3RhdGljIGFuYWx5c2lzLiBQZXJoYXBzIEknbSB0cnlpbmcgdG8gaWRlbnRpZnkgcG90ZW50aWFsIGVudHJ5IHBvaW50cywgQVBJIGZ1bmN0aW9ucywgZnVuY3Rpb25zIHRoYXQgY291bGQgYmUgY2FsbGVkIGZyb20gb3RoZXIgbW9kdWxlcyBvciBldmVuIHRoZSBrZXJuZWwgaXRzZWxmLiBPciwgbWF5YmUgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIEFQSSBjb250cmFjdCBhbmQgd2hldGhlciBvciBub3QgZnVuY3Rpb25zIGhhdmUgYmVlbiBpbmFwcHJvcHJpYXRlbHkgbWFkZSBub24tc3RhdGljLiBUaGUga2V5IGhlcmUgaXMgdG8gZGV0ZXJtaW5lIHdoYXQncyBhdmFpbGFibGUgYW5kIGhvdyBpdCdzIGJlaW5nIGV4cG9zZWQuIFRoaXMgaW5pdGlhbCBzY2FuIHdpbGwgZ3VpZGUgdGhlIHJlc3Qgb2YgbXkgYW5hbHlzaXMuIEZyb20gaGVyZSBJIGNhbiBtYWtlIGEgZGVjaXNpb24gb24gbXkgbmV4dCBhY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNzMyLCJPdXRwdXRUb2tlbnMiOjU4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MTEuMzYxMDUzNTAzWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjcwODE5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz01OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBzZGlvZF9kcml2ZV9zdHIgc2Rpb2RfZHJ2c3RyX3RhYjJfM3YzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNDpCUkNNRl9GV19ERUYoNDMxNDMsIFxcXCJicmNtZm1hYzQzMTQzLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNTpCUkNNRl9GV19ERUYoNDMyNDFCMCwgXFxcImJyY21mbWFjNDMyNDFiMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDY6QlJDTUZfRldfREVGKDQzMjQxQjQsIFxcXCJicmNtZm1hYzQzMjQxYjQtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA3OkJSQ01GX0ZXX0RFRig0MzI0MUI1LCBcXFwiYnJjbWZtYWM0MzI0MWI1LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwODpCUkNNRl9GV19ERUYoNDMyOSwgXFxcImJyY21mbWFjNDMyOS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDk6QlJDTUZfRldfREVGKDQzMzAsIFxcXCJicmNtZm1hYzQzMzAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEwOkJSQ01GX0ZXX0RFRig0MzM0LCBcXFwiYnJjbWZtYWM0MzM0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMTpCUkNNRl9GV19ERUYoNDMzNDAsIFxcXCJicmNtZm1hYzQzMzQwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMjpCUkNNRl9GV19ERUYoNDMzNSwgXFxcImJyY21mbWFjNDMzNS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTM6QlJDTUZfRldfREVGKDQzMzYyLCBcXFwiYnJjbWZtYWM0MzM2Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTQ6QlJDTUZfRldfREVGKDQzMzksIFxcXCJicmNtZm1hYzQzMzktc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE1OkJSQ01GX0ZXX0RFRig0MzQzMEEwLCBcXFwiYnJjbWZtYWM0MzQzMGEwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYxNi0vKiBOb3RlIHRoZSBuYW1lcyBhcmUgbm90IHBvc3RmaXhlZCB3aXRoIGExIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcXFwiYnJjbWZtYWM0MzQzMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFxcXCJicmNtZm1hYzQzNDMwYjAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFxcXCJicmNtZm1hYzQzNDM5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcXFwiYnJjbWZtYWM0MzQ1NS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcXFwiYnJjbWZtYWM0MzQ1Ni1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcXFwiYnJjbWZtYWM0MzU0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFxcXCJicmNtZm1hYzQzNTYtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcXFwiYnJjbWZtYWM0MzU5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFxcXCJicmNtZm1hYzQzNzMtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFxcXCJicmNtZm1hYzQzMDEyLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcXFwiYnJjbWZtYWM0Mzc1Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjktLyogZmlybXdhcmUgY29uZmlnIGZpbGVzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzA6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcXFwiYnJjbWZtYWMqLXNkaW8uKi50eHRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYzMzpNT0RVTEVfRklSTVdBUkUoQlJDTUZfRldfREVGQVVMVF9QQVRIIFxcXCJicmNtZm1hYyotc2Rpby4qLmJpblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Njk4OmJyY21mX3NkaW9fa3NvX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBvbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTk2ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjA3ODpicmNtZl9zZGlvX3dhaXRfZXZlbnRfd2FrZXVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjE4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cXHRcXHQgICAgICB1aW50IGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIyNjQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yOTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjQ2OmJyY21mX3NkaW9fYnVzX3J4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjk2PXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzM0My1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozNzc4OmJyY21mX3NkaW9fZHJpdmVzdHJlbmd0aGluaXQoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM5NTA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDEwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQxMjY6YnJjbWZfc2Rpb193YXRjaGRvZyhzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00NDI0PXN0YXRpYyBzdHJ1Y3QgYnJjbWZfZndfcmVxdWVzdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MTEuNDE3NzY3NTcxWiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNDEwOTgyNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipGaW5kaW5nIE5vbi1TdGF0aWMgRnVuY3Rpb25zIGluIHNkaW8uYyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZSAqbm9uLXN0YXRpYyogZnVuY3Rpb25zIHdpdGhpbiB0aGUgYHNkaW8uY2AgZmlsZS4gVGhpcyBtZWFucyBJJ20gbG9va2luZyBmb3IgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBkZWNsYXJlZCB3aXRob3V0IHRoZSBgc3RhdGljYCBrZXl3b3JkLiBNeSBnb2FsIGhlcmUsIEkgYXNzdW1lLCBpcyB0byBpZGVudGlmeSBmdW5jdGlvbnMgdGhhdCBhcmUgKmV4dGVybmFsbHkgdmlzaWJsZSogb3IgcG90ZW50aWFsbHkgY2FsbGVkIGZyb20gb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSwgbWF5YmUgZXZlbiBieSBvdGhlciBtb2R1bGVzIG9yIHRoZSBrZXJuZWwgaXRzZWxmLiBJIG5lZWQgdG8gcXVpY2tseSBhbmQgZWZmaWNpZW50bHkgbG9jYXRlIHRoZXNlIGVudHJ5IHBvaW50cy4gSSdsbCBsaWtlbHkgdXNlIHNvbWUgZm9ybSBvZiB0ZXh0IHNlYXJjaCwgcHJvYmFibHkgd2l0aGluIG15IElERSBvciBhIGNvbW1hbmQtbGluZSB1dGlsaXR5IGxpa2UgYGdyZXBgIG9yIGBmaW5kYC4gSeKAmWxsIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBwcmVwcm9jZXNzb3IgZGlyZWN0aXZlcyB0aGF0IG1pZ2h0IGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvciBpbmNsdWRlIGZ1bmN0aW9ucy4gSSBtaWdodCBldmVuIGNoZWNrIGZvciBleHRlcm4gZGVjbGFyYXRpb25zIHRvIG1ha2UgY2VydGFpbiBJIGNhcHR1cmUgYWxsIHBvc3NpYmxlIGV4dGVybmFsIHJlZmVyZW5jZXMuIFRoaXMgaXMgYSBjb21tb24gZmlyc3Qgc3RlcCB3aGVuIHJldmVyc2UgZW5naW5lZXJpbmcgb3IgYW5hbHl6aW5nIGEgbW9kdWxlJ3MgcHVibGljIGludGVyZmFjZSwgb3IgcHJlcGFyaW5nIGl0IGZvciByZWZhY3RvcmluZy4gSSBrbm93IGhvdyB0byBkbyB0aGlzLCBzbyBsZXQncyBnZXQgaXQgZG9uZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTY4NTYsIk91dHB1dFRva2VucyI6NTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMToxNS43NTg4NjkxNzNaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMTgyNzUwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeW2EtekEtWjAtOV9dK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz01OTc9c3RhdGljIGNvbnN0IHN0cnVjdCBzZGlvZF9kcml2ZV9zdHIgc2Rpb2RfZHJ2c3RyX3RhYjJfM3YzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNDpCUkNNRl9GV19ERUYoNDMxNDMsIFxcXCJicmNtZm1hYzQzMTQzLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNTpCUkNNRl9GV19ERUYoNDMyNDFCMCwgXFxcImJyY21mbWFjNDMyNDFiMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDY6QlJDTUZfRldfREVGKDQzMjQxQjQsIFxcXCJicmNtZm1hYzQzMjQxYjQtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA3OkJSQ01GX0ZXX0RFRig0MzI0MUI1LCBcXFwiYnJjbWZtYWM0MzI0MWI1LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwODpCUkNNRl9GV19ERUYoNDMyOSwgXFxcImJyY21mbWFjNDMyOS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDk6QlJDTUZfRldfREVGKDQzMzAsIFxcXCJicmNtZm1hYzQzMzAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEwOkJSQ01GX0ZXX0RFRig0MzM0LCBcXFwiYnJjbWZtYWM0MzM0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMTpCUkNNRl9GV19ERUYoNDMzNDAsIFxcXCJicmNtZm1hYzQzMzQwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMjpCUkNNRl9GV19ERUYoNDMzNSwgXFxcImJyY21mbWFjNDMzNS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTM6QlJDTUZfRldfREVGKDQzMzYyLCBcXFwiYnJjbWZtYWM0MzM2Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTQ6QlJDTUZfRldfREVGKDQzMzksIFxcXCJicmNtZm1hYzQzMzktc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE1OkJSQ01GX0ZXX0RFRig0MzQzMEEwLCBcXFwiYnJjbWZtYWM0MzQzMGEwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYxNi0vKiBOb3RlIHRoZSBuYW1lcyBhcmUgbm90IHBvc3RmaXhlZCB3aXRoIGExIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTc6QlJDTUZfRldfQ0xNX0RFRig0MzQzMEExLCBcXFwiYnJjbWZtYWM0MzQzMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTg6QlJDTUZfRldfREVGKDQzNDMwQjAsIFxcXCJicmNtZm1hYzQzNDMwYjAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE5OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzksIFxcXCJicmNtZm1hYzQzNDM5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMDpCUkNNRl9GV19DTE1fREVGKDQzNDU1LCBcXFwiYnJjbWZtYWM0MzQ1NS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjE6QlJDTUZfRldfREVGKDQzNDU2LCBcXFwiYnJjbWZtYWM0MzQ1Ni1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjI6QlJDTUZfRldfQ0xNX0RFRig0MzU0LCBcXFwiYnJjbWZtYWM0MzU0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyMzpCUkNNRl9GV19DTE1fREVGKDQzNTYsIFxcXCJicmNtZm1hYzQzNTYtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI0OkJSQ01GX0ZXX0RFRig0MzU5LCBcXFwiYnJjbWZtYWM0MzU5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNTpCUkNNRl9GV19DTE1fREVGKDQzNzMsIFxcXCJicmNtZm1hYzQzNzMtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjI2OkJSQ01GX0ZXX0NMTV9ERUYoNDMwMTIsIFxcXCJicmNtZm1hYzQzMDEyLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNzpCUkNNRl9GV19DTE1fREVGKDQzNzUyLCBcXFwiYnJjbWZtYWM0Mzc1Mi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MjktLyogZmlybXdhcmUgY29uZmlnIGZpbGVzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzA6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcXFwiYnJjbWZtYWMqLXNkaW8uKi50eHRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzMi0vKiBwZXItYm9hcmQgZmlybXdhcmUgYmluYXJpZXMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYzMzpNT0RVTEVfRklSTVdBUkUoQlJDTUZfRldfREVGQVVMVF9QQVRIIFxcXCJicmNtZm1hYyotc2Rpby4qLmJpblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjM0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz02OTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Njk4OmJyY21mX3NkaW9fa3NvX2NvbnRyb2woc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBvbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTY5OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTk2ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo5NjU6YnJjbWZfc2Rpb19idXNfc2xlZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgYm9vbCBzbGVlcCwgYm9vbCBwZW5kb2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy05NjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0xNzU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoxNzU3OmJyY21mX3NkaW9fcmVhZF9jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIHU4ICpoZHIsIHVpbnQgbGVuLCB1aW50IGRvZmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0xNzU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjA3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjA3ODpicmNtZl9zZGlvX3dhaXRfZXZlbnRfd2FrZXVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yMDc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MjE4OD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMTg5OmJyY21mX3NkaW9fdHhwa3RfcHJlcChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjE5MC1cXHRcXHQgICAgICB1aW50IGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIyNjQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIyNjU6YnJjbWZfc2Rpb190eHBrdF9wb3N0cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpwa3RxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjI2Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTI5MzU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjkzNjpicmNtZl9zZGlvX2J1c190eGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0yOTM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI0NT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjQ2OmJyY21mX3NkaW9fYnVzX3J4Y3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciAqbXNnLCB1aW50IG1zZ2xlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMjk2PXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMjk3OmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzI5OC1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zMzQxPXN0YXRpYyBib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozMzQyOmJyY21mX3NkaW9fdmVyaWZ5bWVtb3J5KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldiwgdTMyIHJhbV9hZGRyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzM0My1cXHRcXHRcXHR1OCAqcmFtX2RhdGEsIHVpbnQgcmFtX3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zNzc3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozNzc4OmJyY21mX3NkaW9fZHJpdmVzdHJlbmd0aGluaXQoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzc3OS1cXHRcXHRcXHQgICAgIHN0cnVjdCBicmNtZl9jaGlwICpjaSwgdTMyIGRyaXZlc3RyZW5ndGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTM5NTA9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzk1MTpicmNtZl9zZGlvX3Byb2JlX2F0dGFjaChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzk1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQwOTg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDA5OTpicmNtZl9zZGlvX3dhdGNoZG9nX3RocmVhZCh2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDEwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTQxMjU9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQxMjY6YnJjbWZfc2Rpb193YXRjaGRvZyhzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00NDI0PXN0YXRpYyBzdHJ1Y3QgYnJjbWZfZndfcmVxdWVzdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDI1OmJyY21mX3NkaW9fcHJlcGFyZV9md19yZXF1ZXN0KHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDI2LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MTYuMDgwNzAwOTc3WiIsIlNlcSI6NDksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1OTEwMDU4OTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjpcblxuKipEZWx2aW5nIGludG8gU3ltYm9sIFZpc2liaWxpdHkqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmluZCBzb21ldGhpbmcgc3BlY2lmaWMsIGxpa2VseSByZWxhdGVkIHRvIGhvdyBzeW1ib2xzIGFyZSBleHBvc2VkIGluIHRoZSBrZXJuZWwgb3IgYSBzcGVjaWZpYyBtb2R1bGUuIFRoZSB0ZXJtIGBFWFBPUlRfU1lNQk9MYCBpbW1lZGlhdGVseSBqdW1wcyBvdXQgYXMgYSBzdHJvbmcgY2FuZGlkYXRlLiBJdCBzY3JlYW1zIFwicHVibGljIGludGVyZmFjZVwiIGluIHRoZSBrZXJuZWwgc3BhY2UuIEknbSB0aGlua2luZyBJJ2xsIHN0YXJ0IHdpdGggYSBzZWFyY2ggZm9yIHRoYXQgbWFjcm8sIGJlY2F1c2UgaXQncyBhIGRpcmVjdCBpbmRpY2F0b3Igb2YgZnVuY3Rpb25zIGludGVuZGVkIGZvciB1c2UgYnkgb3RoZXIgbW9kdWxlcy4gSXQncyB0aGUgbW9zdCBleHBsaWNpdCB3YXkgdG8gbWFrZSBhIGZ1bmN0aW9uIHZpc2libGUgZXh0ZXJuYWxseS5cblxuSG93ZXZlciwgbWF5YmUgSSBzaG91bGQgYnJvYWRlbiB0aGUgc2VhcmNoIGEgbGl0dGxlLCBqdXN0IGluIGNhc2UgYEVYUE9SVF9TWU1CT0xgIGlzbid0IHVzZWQgZXZlcnl3aGVyZSBvciB0aGVyZSBhcmUgYWx0ZXJuYXRpdmUgbWVjaGFuaXNtcy4gSSBzaG91bGQgYWxzbyBjb25zaWRlciBhIHNlYXJjaCBmb3IgYWxsIG5vbi1zdGF0aWMgZnVuY3Rpb25zLCBJIG5lZWQgdG8gaWRlbnRpZnkgd2hpY2ggZnVuY3Rpb25zIGFyZSB2aXNpYmxlIG91dHNpZGUgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24gdW5pdC4gVGhhdCB3YXksIEkgY2FuIHBvdGVudGlhbGx5IGNhdGNoIGluc3RhbmNlcyB3aGVyZSBhIGZ1bmN0aW9uIGlzIGltcGxpY2l0bHkgcHVibGljLCBldmVuIHdpdGhvdXQgYW4gZXhwbGljaXQgYEVYUE9SVF9TWU1CT0xgIGRlY2xhcmF0aW9uLiBUaGlua2luZyBsaWtlIGEgZ29vZCBjb2RlIGFyY2hlb2xvZ2lzdCwgSSBuZWVkIHRvIGNvbnNpZGVyIGFsbCBhbmdsZXMuIExldCdzIHNlZSB3aGF0IHR1cm5zIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MDk5NiwiT3V0cHV0VG9rZW5zIjo1OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjIxLjY3MTcxMDYzNloiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODQ3NzQ3ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXlthLXpBLVowLTlfXStcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NTk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb2RfZHJpdmVfc3RyIHNkaW9kX2RydnN0cl90YWIyXzN2M1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDQ6QlJDTUZfRldfREVGKDQzMTQzLCBcXFwiYnJjbWZtYWM0MzE0My1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDU6QlJDTUZfRldfREVGKDQzMjQxQjAsIFxcXCJicmNtZm1hYzQzMjQxYjAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA2OkJSQ01GX0ZXX0RFRig0MzI0MUI0LCBcXFwiYnJjbWZtYWM0MzI0MWI0LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYwNzpCUkNNRl9GV19ERUYoNDMyNDFCNSwgXFxcImJyY21mbWFjNDMyNDFiNS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MDg6QlJDTUZfRldfREVGKDQzMjksIFxcXCJicmNtZm1hYzQzMjktc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjA5OkJSQ01GX0ZXX0RFRig0MzMwLCBcXFwiYnJjbWZtYWM0MzMwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxMDpCUkNNRl9GV19ERUYoNDMzNCwgXFxcImJyY21mbWFjNDMzNC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTE6QlJDTUZfRldfREVGKDQzMzQwLCBcXFwiYnJjbWZtYWM0MzM0MC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MTI6QlJDTUZfRldfREVGKDQzMzUsIFxcXCJicmNtZm1hYzQzMzUtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjEzOkJSQ01GX0ZXX0RFRig0MzM2MiwgXFxcImJyY21mbWFjNDMzNjItc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE0OkJSQ01GX0ZXX0RFRig0MzM5LCBcXFwiYnJjbWZtYWM0MzM5LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxNTpCUkNNRl9GV19ERUYoNDM0MzBBMCwgXFxcImJyY21mbWFjNDM0MzBhMC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MTYtLyogTm90ZSB0aGUgbmFtZXMgYXJlIG5vdCBwb3N0Zml4ZWQgd2l0aCBhMSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE3OkJSQ01GX0ZXX0NMTV9ERUYoNDM0MzBBMSwgXFxcImJyY21mbWFjNDM0MzAtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjE4OkJSQ01GX0ZXX0RFRig0MzQzMEIwLCBcXFwiYnJjbWZtYWM0MzQzMGIwLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYxOTpCUkNNRl9GV19DTE1fREVGKDQzNDM5LCBcXFwiYnJjbWZtYWM0MzQzOS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjA6QlJDTUZfRldfQ0xNX0RFRig0MzQ1NSwgXFxcImJyY21mbWFjNDM0NTUtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIxOkJSQ01GX0ZXX0RFRig0MzQ1NiwgXFxcImJyY21mbWFjNDM0NTYtc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjIyOkJSQ01GX0ZXX0NMTV9ERUYoNDM1NCwgXFxcImJyY21mbWFjNDM1NC1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjM6QlJDTUZfRldfQ0xNX0RFRig0MzU2LCBcXFwiYnJjbWZtYWM0MzU2LXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNDpCUkNNRl9GV19ERUYoNDM1OSwgXFxcImJyY21mbWFjNDM1OS1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MjU6QlJDTUZfRldfQ0xNX0RFRig0MzczLCBcXFwiYnJjbWZtYWM0MzczLXNkaW9cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjYyNjpCUkNNRl9GV19DTE1fREVGKDQzMDEyLCBcXFwiYnJjbWZtYWM0MzAxMi1zZGlvXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2Mjc6QlJDTUZfRldfQ0xNX0RFRig0Mzc1MiwgXFxcImJyY21mbWFjNDM3NTItc2Rpb1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNjI5LS8qIGZpcm13YXJlIGNvbmZpZyBmaWxlcyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NjMwOk1PRFVMRV9GSVJNV0FSRShCUkNNRl9GV19ERUZBVUxUX1BBVEggXFxcImJyY21mbWFjKi1zZGlvLioudHh0XFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02MzItLyogcGVyLWJvYXJkIGZpcm13YXJlIGJpbmFyaWVzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo2MzM6TU9EVUxFX0ZJUk1XQVJFKEJSQ01GX0ZXX0RFRkFVTFRfUEFUSCBcXFwiYnJjbWZtYWMqLXNkaW8uKi5iaW5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTYzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Njk3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjY5ODpicmNtZl9zZGlvX2tzb19jb250cm9sKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgb24pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy02OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz05NjQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6OTY1OmJyY21mX3NkaW9fYnVzX3NsZWVwKHN0cnVjdCBicmNtZl9zZGlvICpidXMsIGJvb2wgc2xlZXAsIGJvb2wgcGVuZG9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtOTY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MTc1Nj1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MTc1NzpicmNtZl9zZGlvX3JlYWRfY29udHJvbChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCB1OCAqaGRyLCB1aW50IGxlbiwgdWludCBkb2ZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMTc1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIwNzc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjIwNzg6YnJjbWZfc2Rpb193YWl0X2V2ZW50X3dha2V1cChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjA3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTIxODg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MjE4OTpicmNtZl9zZGlvX3R4cGt0X3ByZXAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIxOTAtXFx0XFx0ICAgICAgdWludCBjaGFuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yMjY0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzoyMjY1OmJyY21mX3NkaW9fdHhwa3RfcG9zdHAoc3RydWN0IGJyY21mX3NkaW8gKmJ1cywgc3RydWN0IHNrX2J1ZmZfaGVhZCAqcGt0cSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTIyNjYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0yOTM1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjI5MzY6YnJjbWZfc2Rpb19idXNfdHhjdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICptc2csIHVpbnQgbXNnbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMjkzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jPTMyNDU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI0NjpicmNtZl9zZGlvX2J1c19yeGN0bChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGNoYXIgKm1zZywgdWludCBtc2dsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zMjQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzI5Nj1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzI5NzpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMyOTgtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzM0MT1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6MzM0MjpicmNtZl9zZGlvX3ZlcmlmeW1lbW9yeShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYsIHUzMiByYW1fYWRkcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTMzNDMtXFx0XFx0XFx0dTggKnJhbV9kYXRhLCB1aW50IHJhbV9zeilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzc3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6Mzc3ODpicmNtZl9zZGlvX2RyaXZlc3RyZW5ndGhpbml0KHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM3NzktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYnJjbWZfY2hpcCAqY2ksIHUzMiBkcml2ZXN0cmVuZ3RoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz0zOTUwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM5NTE6YnJjbWZfc2Rpb19wcm9iZV9hdHRhY2goc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM5NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MDk4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQwOTk6YnJjbWZfc2Rpb193YXRjaGRvZ190aHJlYWQodm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQxMDAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYz00MTI1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0MTI2OmJyY21mX3NkaW9fd2F0Y2hkb2coc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00MTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyND1zdGF0aWMgc3RydWN0IGJyY21mX2Z3X3JlcXVlc3QgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQyNTpicmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQyNi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjIxLjc1NjQ5MTA4NFoiLCJTZXEiOjUxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTE0NjY3MzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgQlJDTUYgU0RJTyBJbml0aWFsaXphdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGNyaXRpY2FsIGVudHJ5IHBvaW50cyBmb3IgdGhlIEJyb2FkY29tIFNESU8gZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIGVpdGhlciBgYnJjbWZfc2Rpb19wcm9iZWAgb3IgYGJyY21mX3NkaW9fcmVnaXN0ZXJgLiBJJ20gbGVhbmluZyB0aGF0IHdheSBiZWNhdXNlIGBicmNtZl9zZGlvX3Byb2JlYCBpcyBvZnRlbiB0aGUgZmlyc3QgZnVuY3Rpb24gdGhhdCdzIGNhbGxlZCB3aGVuIHRoZSBTRElPIGRldmljZSBpcyByZWNvZ25pemVkIGJ5IHRoZSBzeXN0ZW0gYW5kIHRoZW4gSSB0aGluayB0aGF0IGBicmNtZl9zZGlvX3JlZ2lzdGVyYCBpcyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgdGhlIGRyaXZlciB3aXRoIHRoZSBTRElPIGJ1cy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGNvbmZpcm1pbmcgd2hpY2ggb2YgdGhlc2UgaXMgdGhlIHRydWUgc3RhcnRpbmcgcG9pbnQsIGFuZCB0aGF0IHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZHJpdmVyIGlzIGhvb2tlZCBpbnRvIHRoZSBTRElPIHN1YnN5c3RlbS4gVGhlIGdvYWwgaXMgdG8gcmFwaWRseSBkZXRlcm1pbmUgdGhlIGNvbnRyb2wgcGF0aCBmb3IgYnJpbmctdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY1MTM1LCJPdXRwdXRUb2tlbnMiOjU0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MjUuNjcxMTYwODg0WiIsIlNlcSI6NTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDcwNzAxODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfc2Rpb19wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9Mzk1MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzozOTUxOmJyY21mX3NkaW9fcHJvYmVfYXR0YWNoKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy0zOTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQyNT1icmNtZl9zZGlvX3ByZXBhcmVfZndfcmVxdWVzdChzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM6NDQ1MDppbnQgYnJjbWZfc2Rpb19wcm9iZShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDQ4Ni1cXHQvKiBhdHRlbXB0IHRvIGF0dGFjaCB0byB0aGUgZG9uZ2xlICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDg3OlxcdHJldCA9IGJyY21mX3NkaW9fcHJvYmVfYXR0YWNoKGJ1cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYy00NDg4LVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3NkaW8uYzo0NDg5OlxcdFxcdGJyY21mX2VycihcXFwiYnJjbWZfc2Rpb19wcm9iZV9hdHRhY2ggZmFpbGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ0OTAtXFx0XFx0Z290byBmYWlsO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMToyNS43NzgyMzgwOTJaIiwiU2VxIjo1MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5NDMwNzczMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQ29uc2lkZXJpbmcgRW50cnkgYW5kIEV4aXQgUG9pbnRzIGZvciB0aGUgQlJDTUYgU0RJTyBEcml2ZXIqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIHdoZW4gaXQgY29tZXMgdG8gdGhlIEJSQ01GIFNESU8gZHJpdmVyLCB0aGUgYGJyY21mX3NkaW9fcHJvYmVgIGZ1bmN0aW9uIGlzIGRlZmluaXRlbHkgYSBnb29kIGNhbmRpZGF0ZSBmb3IgdGhlIG5vbi1zdGF0aWMgZW50cnkgcG9pbnQuIEl0J3MgdGhlIG5hdHVyYWwgcGxhY2Ugd2hlcmUgdGhlIGRyaXZlciBpcyBpbml0aWFsaXplZCB3aGVuIGEgZGV2aWNlIGlzIGRldGVjdGVkLCByaWdodD8gVGhhdCBtYWtlcyB0aGUgbW9zdCBzZW5zZS5cblxuQW5kLCBpZiB3ZSdyZSBsb29raW5nIGF0IGEgY29tcGxlbWVudGFyeSBmdW5jdGlvbiB0byBoYW5kbGUgdGhlIG9wcG9zaXRlIHNjZW5hcmlvLCB0aGUgdW4taW5pdGlhbGl6YXRpb24gcHJvY2VzcywgdGhlIGBicmNtZl9zZGlvX3JlbW92ZWAgZnVuY3Rpb24gc2VlbXMgbGlrZSB0aGUgbG9naWNhbCBjaG9pY2UgZm9yIHRoZSBleGl0IHBvaW50LiBJdCB3b3VsZCBtYWtlIHNlbnNlIGZvciB0aGF0IHRvIGNsZWFuIHVwIHJlc291cmNlcywgdW5yZWdpc3RlciB0aGluZ3MsIGFuZCBoYW5kbGUgdGhlIGRldmljZSByZW1vdmFsIHNtb290aGx5LiBUaGlzIHdob2xlIGRyaXZlciBzZXR1cCBsb29rcyB3ZWxsLW9yZ2FuaXplZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjU5NzAsIk91dHB1dFRva2VucyI6NTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMToyOS40NzI1NDgzOTVaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzMwNTU3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX3JlbW92ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDQ1MD1pbnQgYnJjbWZfc2Rpb19wcm9iZShzdHJ1Y3QgYnJjbWZfc2Rpb19kZXYgKnNkaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ1NTgtZmFpbDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQ1NTk6XFx0YnJjbWZfc2Rpb19yZW1vdmUoYnVzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ1NjAtXFx0c2Rpb2Rldi1cXHUwMDNlYnVzID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9NDU2ND12b2lkIGJyY21mX3NkaW9fY2FuY2VsX2RhdGF3b3JrKHN0cnVjdCBicmNtZl9zZGlvICpidXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTQ1NzAtLyogRGV0YWNoIGFuZCBmcmVlIGV2ZXJ5dGhpbmcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjQ1NzE6dm9pZCBicmNtZl9zZGlvX3JlbW92ZShzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtNDU3Mi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjI5LjU3NTg1ODE5M1oiLCJTZXEiOjU1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzQyNDM3NDkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW5pdGlhbCBJbnF1aXJ5OiBCUkNNRl9TRElPX0lTUiBDb25zaWRlcmF0aW9uKipcblxuQWxyaWdodCwgc28gdGhlIGltbWVkaWF0ZSB0aG91Z2h0LCBhbmQgbGV0J3MgZmFjZSBpdCwgdGhlICpvbmx5KiB0aG91Z2h0IHJpZ2h0IG5vdywgaXM6ICoqYGJyY21mX3NkaW9faXNyYCoqLiBUaGF0J3Mgd2hlcmUgbXkgZm9jdXMgaGFzIHRvIGJlLiBTb21ldGhpbmcgdHJpZ2dlcmVkIHRoaXMgbGluZSBvZiB0aGlua2luZy4gSXQncyB1c3VhbGx5IHRoZSBzaWduIG9mIGEgc3BlY2lmaWMgaW50ZXJydXB0IGNvbnRleHQgd2l0aGluIEJyb2FkY29tIFNESU8gV2ktRmkgZHJpdmVycy4gSSdtIGltbWVkaWF0ZWx5IHRyeWluZyB0byByZWNhbGwgKndoeSogdGhpcyBmdW5jdGlvbiBoYXMgY29tZSB0byBtaW5kLiBJcyBpdCBhbiBpc3N1ZSBJJ3ZlIHNlZW4gcmVjZW50bHk/IEEgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2s/IEEgZGVidWdnaW5nIHNjZW5hcmlvIEkgd2FzIGluPyBPciBhbSBJIGp1c3QgcmV2aWV3aW5nIGNvZGUgYW5kIGxvb2tpbmcgZm9yIGFyZWFzIG9mIHBvc3NpYmxlIGltcHJvdmVtZW50PyBSZWdhcmRsZXNzLCB0aGUgZnVuY3Rpb24gaXRzZWxmIGlzIHRoZSBmb2NhbCBwb2ludC4gSXTigJlzIHRoZSBlbnRyeSBwb2ludCB0aGF0IGhhbmRsZXMgU0RJTyBpbnRlcnJ1cHRzIHdpdGhpbiB0aGUgQnJvYWRjb20gV2ktRmkgZHJpdmVyLCBzbyBhbnl0aGluZyByZWxhdGVkIHRvIGxhdGVuY3ksIGRhdGEgY29ycnVwdGlvbiwgb3IgdW5leHBlY3RlZCBiZWhhdmlvdXIgcmVsYXRlZCB0byB0aGUgU0RJTyBpbnRlcmZhY2UgaXMgZ29pbmcgdG8gaW52b2x2ZSB1bmRlcnN0YW5kaW5nIHRoYXQgZnVuY3Rpb24uIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBjb250ZXh0IG9mIHdoeSBJ4oCZbSB0aGlua2luZyBvZiBpdCByaWdodCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY2NjE4LCJPdXRwdXRUb2tlbnMiOjU0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTA6MTE6MzMuMzE4Mjk5ODE1WiIsIlNlcSI6NTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDMwMTQwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9zZGlvX2lzclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmM9MzYzOD12b2lkIGJyY21mX3NkaW9fdHJpZ2dlcl9kcGMoc3RydWN0IGJyY21mX3NkaW8gKmJ1cylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9zZGlvLmMtMzY0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jOjM2NDY6dm9pZCBicmNtZl9zZGlvX2lzcihzdHJ1Y3QgYnJjbWZfc2RpbyAqYnVzLCBib29sIGluX2lzcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvc2Rpby5jLTM2NDcte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxMDoxMTozMy4zNzg2MDU0NzRaIiwiU2VxIjo1NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA1NTYwMzMyMzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEJSQ01GTUFDIFNESU8gRHJpdmVyIENvZGUqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdGhhdCBgYnJjbWZfc2Rpb19pc3JgIGxvb2tzIGxpa2UgYSBrZXkgZW50cnkgcG9pbnQsIHdoaWNoIEkgY29uZmlybWVkLiBUaGVuIEkgdHJhY2VkIGl0cyBleGVjdXRpb24gcGF0aCB0byBgYnJjbWZfc2Rpb19kcGNgLiBGcm9tIHRoZXJlLCBJIHNhdyBgYnJjbWZfc2Rpb19kcGNgIGlzIGludm9rZWQgYnkgYGJyY21mX3NkaW9fZGF0YXdvcmtlcmAsIGFuZCBJIHZlcmlmaWVkIGl0J3MgYSBzdGF0aWMgZnVuY3Rpb24uIE5vdywgSSBuZWVkZWQgdG8gY2hlY2sgd2hhdCBub24tc3RhdGljIGZ1bmN0aW9ucyBjb3VsZCB0cmlnZ2VyIHRoYXQgc3RhdGljIHdvcmtlci4gVGhhdCBsZWQgbWUgdG8gYGJyY21mX3NkaW9fdHJpZ2dlcl9kcGNgLCBhbmQgeWVzLCB0aGF0J3MgYSBkaXJlY3QgdHJpZ2dlci4gQ29uc2lkZXJpbmcgYWxsIG9mIHRoaXMsIGBicmNtZl9zZGlvX3Byb2JlYCwgYGJyY21mX3NkaW9faXNyYCBhbmQgYGJyY21mX3NkaW9fdHJpZ2dlcl9kcGNgIGFyZSB0aGUgY3JpdGljYWwgc3ltYm9scyB0byBmb2N1cyBvbiBoZXJlLlxuXG5TbywgdG8gc3VtbWFyaXplIHRob3NlIGtleSBlbnRyeSBwb2ludHM6IGBicmNtZl9zZGlvX3Byb2JlYCwgYGJyY21mX3NkaW9faXNyYCwgYW5kIGBicmNtZl9zZGlvX3RyaWdnZXJfZHBjYCBhcmUgbXkgbWFpbiB0YXJnZXRzLiBOb3cgbGV0J3MgZGV0ZXJtaW5lIHRoZSBuZWNlc3NhcnkgZW5hYmxlIGNvbmZpZ3VyYXRpb25zLiBJJ20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoaXMgcXVpY2sgb3ZlcnZpZXc6IGBCUkNNRk1BQ2AsIGBCUkNNRk1BQ19TRElPYCwgYW5kIGBDRkc4MDIxMWAgbG9vayByZWxldmFudCBmb3IgdGhlIG1vZHVsZSwgYW5kIHBvc3NpYmx5IGBNTUNfVlVCMzAwYCBiYXNlZCBvbiBTRElPIGludGVyYWN0aW9ucy5cblxuSG9sZCBvbiBhIG1vbWVudCwgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIHNvbWV0aGluZy4gSSBrbm93IGBCUkNNRk1BQ19TRElPYCBkZXBlbmRzIG9uIGBNTUNgLCBzbyBgTU1DYCBuZWVkcyB0byBiZSBlbmFibGVkLiBMZXQncyBhZGQgdGhhdCB0byBgRW5hYmxlQ29uZmlnc2AganVzdCB0byBiZSBzYWZlLiBBY3R1YWxseSwgYE1NQ19WVUIzMDBgIGRlcGVuZHMgb24gVVNCLiBUaGVuLCBJIG5lZWQgdG8gYWRkIGBVU0JgIGFzIHdlbGwuIFRoYXQgaXMgYWxsLlxuXG5Pa2F5LCBsZXQncyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayBvbiBgQlJDTUZNQUNfU0RJT2AncyBkZXBlbmRlbmNpZXMuIFl1cCwgaXQgZXhwbGljaXRseSBkZXBlbmRzIG9uIGBNTUNgLlxuXG5Ob3csIGxldCdzIGdldCBiYWNrIHRvIHRoaXMgcGF0Y2guIEFoLCB0aGlzIGlzIGEgbWVtb3J5IGxlYWsgZml4IGluIGBicmNtZl9zZGlvX3JlYWRfY29udHJvbGAuIExvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZS4gVGhlIGBnb3RvIGRvbmVgIHdhcyBieXBhc3NpbmcgdGhlIGB2ZnJlZShidWYpYCBjYWxsLCBsZWFkaW5nIHRvIHRoZSBsZWFrLiBUaGUgZml4IGV4cGxpY2l0bHkgbnVsbHMgYGJ1ZmAgYmVmb3JlIHRoYXQgYHZmcmVlYCBjYWxsLCBhZGRyZXNzaW5nIHRoZSBpc3N1ZS4gTG9va3MgbGlrZSBhIHNvbGlkIGZpeCB0byBtZS5cblxuT2theSwgYWxsIHRoZSByZWxldmFudCBpbmZvcm1hdGlvbiBoYXMgYmVlbiBjb2xsZWN0ZWQuIEkgYW0gcmVhZHkgdG8gYHNldC1yZXN1bHRzYCB3aXRoIHRoZSBmaW5kaW5ncy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjcxMjIsIk91dHB1dFRva2VucyI6MTc4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDEwOjExOjQzLjkzNDY0MjgyNFoiLCJTZXEiOjU4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTAyOTkwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1NESU9cIixcbiAgICBcIk1NQ19WVUIzMDBcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNTUNcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3NkaW9fcHJvYmVcIixcbiAgICBcImJyY21mX3NkaW9faXNyXCIsXG4gICAgXCJicmNtZl9zZGlvX3RyaWdnZXJfZHBjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlcidzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1NESU9cIixcbiAgICBcIk1NQ19WVUIzMDBcIixcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNTUNcIixcbiAgICBcIlVTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3NkaW9fcHJvYmVcIixcbiAgICBcImJyY21mX3NkaW9faXNyXCIsXG4gICAgXCJicmNtZl9zZGlvX3RyaWdnZXJfZHBjXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlcidzIFNESU8gaW50ZXJmYWNlLiBUaGUgZHJpdmVyIGNhbiBiZSBwcm9iZWQgYW5kIGZ1enplZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgYnkgZW11bGF0aW5nIHRoZSBWVUIzMDAgU0RJTy10by1VU0IgYnJpZGdlIGNvbnRyb2xsZXIuIFRoZSBwYXRjaCBtb2RpZmllcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIFNESU8gY29udHJvbCBmcmFtZSByZWFkIHBhdGguXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[1] Phase: Succeeded StartedAt: 2026-08-03 10:11:55 +0000 UTC FinishedAt: 2026-08-03 10:11:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-03 10:11:55 +0000 UTC FinishedAt: 2026-08-03 10:11:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2] Phase: Running StartedAt: 2026-08-03 10:11:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Running StartedAt: 2026-08-03 10:11:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-03 10:11:55 +0000 UTC FinishedAt: 2026-08-03 10:12:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-03 10:11:55 +0000 UTC FinishedAt: 2026-08-03 10:12:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowwkq2n/series-workflowwkq2n-convert-artifact-3672724325/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-03 10:12:06 +0000 UTC FinishedAt: 2026-08-03 10:36:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-03 10:12:06 +0000 UTC FinishedAt: 2026-08-03 10:36:20 +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:*fd690118-eb30-4914-8b4f-f0c168d94421,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-workflowwkq2n/series-workflowwkq2n-convert-artifact-3672724325/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": "fa406ed2-eab4-4383-a51d-df0129648087", "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-workflowwkq2n/series-workflowwkq2n-build-action-158093195/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-03 10:12:06 +0000 UTC FinishedAt: 2026-08-03 10:35:50 +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:*fd690118-eb30-4914-8b4f-f0c168d94421,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-workflowwkq2n/series-workflowwkq2n-convert-artifact-3672724325/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": "fa406ed2-eab4-4383-a51d-df0129648087", "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-workflowwkq2n/series-workflowwkq2n-build-action-158093195/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-03 10:36:20 +0000 UTC FinishedAt: 2026-08-03 10:36:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-03 10:36:20 +0000 UTC FinishedAt: 2026-08-03 10:36:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-03 10:36:20 +0000 UTC FinishedAt: 2026-08-03 10:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-03 10:36:20 +0000 UTC FinishedAt: 2026-08-03 10:36:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowwkq2n/series-workflowwkq2n-convert-artifact-2636400192/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-03 10:36:30 +0000 UTC FinishedAt: 2026-08-03 10:38:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-03 10:36:30 +0000 UTC FinishedAt: 2026-08-03 10:38:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fa406ed2-eab4-4383-a51d-df0129648087,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-workflowwkq2n/series-workflowwkq2n-build-action-158093195/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-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-03 10:38:35 +0000 UTC FinishedAt: 2026-08-03 10:38:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-03 10:38:35 +0000 UTC FinishedAt: 2026-08-03 10:38:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-03 10:38:35 +0000 UTC FinishedAt: 2026-08-03 11:14:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-03 10:38:35 +0000 UTC FinishedAt: 2026-08-03 11:14:51 +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:*fd690118-eb30-4914-8b4f-f0c168d94421,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-workflowwkq2n/series-workflowwkq2n-convert-artifact-2636400192/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": "504b5a5b-211a-4170-be27-eae8f7880c64", "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-workflowwkq2n/series-workflowwkq2n-build-action-3955209212/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-03 10:38:35 +0000 UTC FinishedAt: 2026-08-03 11:14:41 +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:*fd690118-eb30-4914-8b4f-f0c168d94421,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-workflowwkq2n/series-workflowwkq2n-convert-artifact-2636400192/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": "504b5a5b-211a-4170-be27-eae8f7880c64", "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-workflowwkq2n/series-workflowwkq2n-build-action-3955209212/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-03 11:14:51 +0000 UTC FinishedAt: 2026-08-03 11:14:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-03 11:14:51 +0000 UTC FinishedAt: 2026-08-03 11:14:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Running StartedAt: 2026-08-03 11:14:51 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkq2n[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["brcmf_sdio_probe","brcmf_sdio_isr","brcmf_sdio_trigger_dpc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a0bd262df757b25fc4e2a53c947317c119ced4e","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_SDIO","MMC_VUB300","CFG80211","MMC","USB"],"series_id":"dc98cd1b-0763-41eb-8f8d-e885cb4714f9","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Running StartedAt: 2026-08-03 11:14:51 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*504b5a5b-211a-4170-be27-eae8f7880c64,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-workflowwkq2n/series-workflowwkq2n-build-action-3955209212/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil