Name: series-workflowkhf8h Phase: Running StartedAt: 2026-06-30 16:14:41 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[0] Phase: Succeeded StartedAt: 2026-06-30 16:14:41 +0000 UTC FinishedAt: 2026-06-30 16:26:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 16:14:41 +0000 UTC FinishedAt: 2026-06-30 16:26:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATA_GENERIC", "IPACK_BUS", "BOARD_TPCI200", "MLXSW_CORE", "MLXSW_PCI", "SCSI_NSP32" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATA_GENERIC", "IPACK_BUS", "BOARD_TPCI200", "MLXSW_CORE", "MLXSW_PCI", "SCSI_NSP32" ], "series_id": "b51dbecc-2814-4cc3-a001-55d71d0cb75d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "new_id_store", "do_pci_add_dynid", "pci_match_device", "__pci_device_probe", "ata_generic_init_one", "tpci200_pci_probe", "mlxsw_pci_probe", "nsp32_probe" ], "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+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUQV9HRU5FUklDJiMzNDssCiAgICAmIzM0O0lQQUNLX0JVUyYjMzQ7LAogICAgJiMzNDtCT0FSRF9UUENJMjAwJiMzNDssCiAgICAmIzM0O01MWFNXX0NPUkUmIzM0OywKICAgICYjMzQ7TUxYU1dfUENJJiMzNDssCiAgICAmIzM0O1NDU0lfTlNQMzImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZXdfaWRfc3RvcmUmIzM0OywKICAgICYjMzQ7ZG9fcGNpX2FkZF9keW5pZCYjMzQ7LAogICAgJiMzNDtwY2lfbWF0Y2hfZGV2aWNlJiMzNDssCiAgICAmIzM0O19fcGNpX2RldmljZV9wcm9iZSYjMzQ7LAogICAgJiMzNDthdGFfZ2VuZXJpY19pbml0X29uZSYjMzQ7LAogICAgJiMzNDt0cGNpMjAwX3BjaV9wcm9iZSYjMzQ7LAogICAgJiMzNDttbHhzd19wY2lfcHJvYmUmIzM0OywKICAgICYjMzQ7bnNwMzJfcHJvYmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgUENJIGRldmljZSBtYXRjaGluZyBhbmQgcHJvYmluZyBsb2dpYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcyB3aXRoIGR5bmFtaWMgUENJIElEcy4gSXQgYWxsb2NhdGVzIHRoZSBtYXRjaGVkIGBwY2lfZGV2aWNlX2lkYCBvbiB0aGUgc3RhY2sgZHVyaW5nIHByb2JlIGFuZCB1cGRhdGVzIHNldmVyYWwgZHJpdmVycyB0aGF0IHByZXZpb3VzbHkgc2F2ZWQgdGhpcyBwb2ludGVyIHRvIHByZXZlbnQgc3RhY2sgdXNlLWFmdGVyLWZyZWUuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBQQ0kgZHluYW1pYyBJRCBzeXNmcyBpbnRlcmZhY2UgKGBuZXdfaWRfc3RvcmVgKSwgdGhlIFBDSSBtYXRjaGluZy9wcm9iaW5nIGxvZ2ljLCBhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBvZiB0aGUgbW9kaWZpZWQgZHJpdmVycy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA5MTJkMDM1YjEyM2Q4YjIwYjE2ZDhhYmNkMTk5MWMwMWJiYTlkNjZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAxNjoyMzoyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuaW5kZXggZTcwYjZjMDg5Y2YxNzkuLjE4ZWE3NDBjYTU4MjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuQEAgLTUxLDExICYjNDM7NTEsMTEgQEAgZW51bSB7XG4gc3RhdGljIGludCBnZW5lcmljX3NldF9tb2RlKHN0cnVjdCBhdGFfbGluayAqbGluaywgc3RydWN0IGF0YV9kZXZpY2UgKip1bnVzZWQpXG4ge1xuIFx0c3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstXHUwMDNlYXA7XG4tXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBhcC1cdTAwM2Vob3N0LVx1MDAzZXByaXZhdGVfZGF0YTtcbiYjNDM7XHR1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhID0gKHVuc2lnbmVkIGxvbmcpYXAtXHUwMDNlaG9zdC1cdTAwM2Vwcml2YXRlX2RhdGE7XG4gXHRpbnQgZG1hX2VuYWJsZWQgPSAwO1xuIFx0c3RydWN0IGF0YV9kZXZpY2UgKmRldjtcbiBcbi1cdGlmIChpZC1cdTAwM2Vkcml2ZXJfZGF0YSBcdTAwMjYgQVRBX0dFTl9GT1JDRV9ETUEpIHtcbiYjNDM7XHRpZiAoZHJpdmVyX2RhdGEgXHUwMDI2IEFUQV9HRU5fRk9SQ0VfRE1BKSB7XG4gXHRcdGRtYV9lbmFibGVkID0gMHhmZjtcbiBcdH0gZWxzZSBpZiAoYXAtXHUwMDNlaW9hZGRyLmJtZG1hX2FkZHIpIHtcbiBcdFx0LyogQml0cyA1IGFuZCA2IGluZGljYXRlIGlmIERNQSBpcyBhY3RpdmUgb24gbWFzdGVyL3NsYXZlICovXG5AQCAtMjA2LDcgJiM0MzsyMDYsNyBAQCBzdGF0aWMgaW50IGF0YV9nZW5lcmljX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkXG4gXHRcdFx0cmV0dXJuIHJjO1xuIFx0XHRwY2ltX3Bpbl9kZXZpY2UoZGV2KTtcbiBcdH1cbi1cdHJldHVybiBhdGFfcGNpX2JtZG1hX2luaXRfb25lKGRldiwgcHBpLCBcdTAwMjZnZW5lcmljX3NodCwgKHZvaWQgKilpZCwgMCk7XG4mIzQzO1x0cmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksIFx1MDAyNmdlbmVyaWNfc2h0LCAodm9pZCAqKWlkLVx1MDAzZWRyaXZlcl9kYXRhLCAwKTtcbiB9XG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGF0YV9nZW5lcmljW10gPSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xuaW5kZXggMDVkY2I2Njc1Y2Q2NjEuLjFjZjUxZjc2MzI5MzJiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jXG5AQCAtNTYyLDcgJiM0Mzs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuIFxuIFx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXG4gXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiA9IHBkZXY7XG4tXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaWRfdGFibGUgPSAoc3RydWN0IHBjaV9kZXZpY2VfaWQgKilpZDtcbiBcbiBcdC8qIHJlZ2lzdGVyIHRoZSBkZXZpY2UgYW5kIGluaXRpYWxpemUgaXQgKi9cbiBcdHJldCA9IHRwY2kyMDBfaW5zdGFsbCh0cGNpMjAwKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaCBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oXG5pbmRleCBlNzlhYzY0YWJjZmZhYy4uYTJiZjMxMjU3OTRiN2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcbkBAIC0xNDUsNyAmIzQzOzE0NSw2IEBAIHN0cnVjdCB0cGNpMjAwX3Nsb3Qge1xuICAqL1xuIHN0cnVjdCB0cGNpMjAwX2luZm9zIHtcbiBcdHN0cnVjdCBwY2lfZGV2XHRcdFx0KnBkZXY7XG4tXHRzdHJ1Y3QgcGNpX2RldmljZV9pZFx0XHQqaWRfdGFibGU7XG4gXHRzdHJ1Y3QgdHBjaTIwMF9yZWdzIF9faW9tZW1cdCppbnRlcmZhY2VfcmVncztcbiBcdHZvaWQgX19pb21lbVx0XHRcdCpjZmdfcmVncztcbiBcdHN0cnVjdCBpcGFja19idXNfZGV2aWNlXHRcdCppcGFja19idXM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuY1xuaW5kZXggMGRhODVkMzY2NDdkOTEuLmJmZTMyNjhkZmRjMTdkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXG5AQCAtMTMwLDcgJiM0MzsxMzAsNiBAQCBzdHJ1Y3QgbWx4c3dfcGNpIHtcbiBcdFx0fSBjb21wO1xuIFx0fSBjbWQ7XG4gXHRzdHJ1Y3QgbWx4c3dfYnVzX2luZm8gYnVzX2luZm87XG4tXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQ7XG4gXHRlbnVtIG1seHN3X3BjaV9jcWVfdiBtYXhfY3FlX3ZlcjsgLyogTWF4aW1hbCBzdXBwb3J0ZWQgQ1FFIHZlcnNpb24gKi9cbiBcdHU4IG51bV9jcXM7IC8qIE51bWJlciBvZiBDUXMgKi9cbiBcdHU4IG51bV9zZHFzOyAvKiBOdW1iZXIgb2YgU0RRcyAqL1xuQEAgLTE3NjgsNyAmIzQzOzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBtbHhzd19wY2lfbWJveF9mcmVlKHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSxcbiB9XG4gXG4gc3RhdGljIGludCBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLFxuLVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCxcbiBcdFx0XHRcdCAgICB1MzIgKnBfc3lzX3N0YXR1cylcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGVuZDtcbkBAIC0xODM5LDcgJiM0MzsxODM3LDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcmVzZXRfc3coc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpKVxuIH1cbiBcbiBzdGF0aWMgaW50XG4tbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuJiM0MzttbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpKVxuIHtcbiBcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gbWx4c3dfcGNpLVx1MDAzZXBkZXY7XG4gXHRib29sIHBjaV9yZXNldF9zYnJfc3VwcG9ydGVkID0gZmFsc2U7XG5AQCAtMTg0OCw3ICYjNDM7MTg0Niw3IEBAIG1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdHUzMiBzeXNfc3RhdHVzO1xuIFx0aW50IGVycjtcbiBcbi1cdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIGlkLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiYjNDM7XHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYmVmb3JlIHJlc2V0LiBTdGF0dXMgaXMgMHgleFxcblwmIzM0OyxcbiBcdFx0XHRzeXNfc3RhdHVzKTtcbkBAIC0xODgwLDcgJiM0MzsxODc4LDcgQEAgbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuIFx0aWYgKGVycilcbiBcdFx0cmV0dXJuIGVycjtcbiBcbi1cdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIGlkLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiYjNDM7XHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XFxuXCYjMzQ7LFxuIFx0XHRcdHN5c19zdGF0dXMpO1xuQEAgLTE5MzIsNyAmIzQzOzE5MzAsNyBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9pbml0KHZvaWQgKmJ1c19wcml2LCBzdHJ1Y3QgbWx4c3dfY29yZSAqbWx4c3dfY29yZSxcbiBcdGlmICghbWJveClcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRlcnIgPSBtbHhzd19wY2lfcmVzZXQobWx4c3dfcGNpLCBtbHhzd19wY2ktXHUwMDNlaWQpO1xuJiM0MztcdGVyciA9IG1seHN3X3BjaV9yZXNldChtbHhzd19wY2kpO1xuIFx0aWYgKGVycilcbiBcdFx0Z290byBlcnJfcmVzZXQ7XG4gXG5AQCAtMjQ2NCw3ICYjNDM7MjQ2Miw2IEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4gXHRtbHhzd19wY2ktXHUwMDNlYnVzX2luZm8uZGV2aWNlX25hbWUgPSBwY2lfbmFtZShtbHhzd19wY2ktXHUwMDNlcGRldik7XG4gXHRtbHhzd19wY2ktXHUwMDNlYnVzX2luZm8uZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4gXHRtbHhzd19wY2ktXHUwMDNlYnVzX2luZm8ucmVhZF9jbG9ja19jYXBhYmxlID0gdHJ1ZTtcbi1cdG1seHN3X3BjaS1cdTAwM2VpZCA9IGlkO1xuIFxuIFx0ZXJyID0gbWx4c3dfY29yZV9idXNfZGV2aWNlX3JlZ2lzdGVyKFx1MDAyNm1seHN3X3BjaS1cdTAwM2VidXNfaW5mbyxcbiBcdFx0XHRcdFx0ICAgICBcdTAwMjZtbHhzd19wY2lfYnVzLCBtbHhzd19wY2ksIGZhbHNlLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY1xuaW5kZXggZjM2Nzc4ZTYyYWMxYTUuLmZhZDAyOGI5ZGM1M2VjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcbkBAIC0yOSw2ICYjNDM7MjksNDggQEAgc3RydWN0IHBjaV9keW5pZCB7XG4gXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDtcbiB9O1xuIFxuJiM0MzsvKipcbiYjNDM7ICogZG9fcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzXG4mIzQzOyAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyXG4mIzQzOyAqIEBpZDogSUQgdG8gYmUgYWRkZWRcbiYjNDM7ICogQGNoZWNrX2R1cDogd2hldGhlciB0byBjaGVjayBpZiBtYXRjaGluZyBJRCBpcyBhbHJlYWR5IHByZXNlbnRcbiYjNDM7ICpcbiYjNDM7ICogQWRkcyBhIG5ldyBkeW5hbWljIHBjaSBkZXZpY2UgSUQgdG8gdGhpcyBkcml2ZXIgYW5kIGNhdXNlcyB0aGVcbiYjNDM7ICogZHJpdmVyIHRvIHByb2JlIGZvciBhbGwgZGV2aWNlcyBhZ2Fpbi4gIEBkcnYgbXVzdCBoYXZlIGJlZW5cbiYjNDM7ICogcmVnaXN0ZXJlZCBwcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4mIzQzOyAqXG4mIzQzOyAqIENPTlRFWFQ6XG4mIzQzOyAqIERvZXMgR0ZQX0tFUk5FTCBhbGxvY2F0aW9uLlxuJiM0MzsgKlxuJiM0MzsgKiBSRVRVUk5TOlxuJiM0MzsgKiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIGludCBkb19wY2lfYWRkX2R5bmlkKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCwgYm9vbCBjaGVja19kdXApXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZCwgKmV4aXN0aW5nX2R5bmlkO1xuJiM0MztcbiYjNDM7XHRkeW5pZCA9IGt6YWxsb2Nfb2JqKCpkeW5pZCk7XG4mIzQzO1x0aWYgKCFkeW5pZClcbiYjNDM7XHRcdHJldHVybiAtRU5PTUVNO1xuJiM0MztcbiYjNDM7XHRkeW5pZC1cdTAwM2VpZCA9ICppZDtcbiYjNDM7XG4mIzQzO1x0e1xuJiM0MztcdFx0Z3VhcmQoc3BpbmxvY2spKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4mIzQzO1x0XHRpZiAoY2hlY2tfZHVwKSB7XG4mIzQzO1x0XHRcdGxpc3RfZm9yX2VhY2hfZW50cnkoZXhpc3RpbmdfZHluaWQsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCwgbm9kZSkge1xuJiM0MztcdFx0XHRcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFx1MDAyNmV4aXN0aW5nX2R5bmlkLVx1MDAzZWlkLCBpZCkpIHtcbiYjNDM7XHRcdFx0XHRcdGtmcmVlKGR5bmlkKTtcbiYjNDM7XHRcdFx0XHRcdHJldHVybiAtRUVYSVNUO1xuJiM0MztcdFx0XHRcdH1cbiYjNDM7XHRcdFx0fVxuJiM0MztcdFx0fVxuJiM0MztcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZkeW5pZC1cdTAwM2Vub2RlLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QpO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4mIzQzO31cbiYjNDM7XG4gLyoqXG4gICogcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzXG4gICogQGRydjogdGFyZ2V0IHBjaSBkcml2ZXJcbkBAIC01NiwyNSAmIzQzOzk4LDE3IEBAIGludCBwY2lfYWRkX2R5bmlkKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4gXHRcdCAgdW5zaWduZWQgaW50IGNsYXNzLCB1bnNpZ25lZCBpbnQgY2xhc3NfbWFzayxcbiBcdFx0ICB1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhKVxuIHtcbi1cdHN0cnVjdCBwY2lfZHluaWQgKmR5bmlkO1xuLVxuLVx0ZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpO1xuLVx0aWYgKCFkeW5pZClcbi1cdFx0cmV0dXJuIC1FTk9NRU07XG4tXG4tXHRkeW5pZC1cdTAwM2VpZC52ZW5kb3IgPSB2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5kZXZpY2UgPSBkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJkZXZpY2UgPSBzdWJkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5jbGFzcyA9IGNsYXNzO1xuLVx0ZHluaWQtXHUwMDNlaWQuY2xhc3NfbWFzayA9IGNsYXNzX21hc2s7XG4tXHRkeW5pZC1cdTAwM2VpZC5kcml2ZXJfZGF0YSA9IGRyaXZlcl9kYXRhO1xuLVxuLVx0c3Bpbl9sb2NrKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4tXHRsaXN0X2FkZF90YWlsKFx1MDAyNmR5bmlkLVx1MDAzZW5vZGUsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCk7XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4mIzQzO1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XG4mIzQzO1x0XHQudmVuZG9yID0gdmVuZG9yLFxuJiM0MztcdFx0LmRldmljZSA9IGRldmljZSxcbiYjNDM7XHRcdC5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3IsXG4mIzQzO1x0XHQuc3ViZGV2aWNlID0gc3ViZGV2aWNlLFxuJiM0MztcdFx0LmNsYXNzID0gY2xhc3MsXG4mIzQzO1x0XHQuY2xhc3NfbWFzayA9IGNsYXNzX21hc2ssXG4mIzQzO1x0XHQuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YSxcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gZG9fcGNpX2FkZF9keW5pZChkcnYsIFx1MDAyNmlkLCBmYWxzZSk7XG4gfVxuIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV9hZGRfZHluaWQpO1xuIFxuQEAgLTkwLDYgJiM0MzsxMjQsMjkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXG4gXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuIH1cbiBcbiYjNDM7LyoqXG4mIzQzOyAqIGRvX3BjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBJRCBtYXRjaGVzIGEgZ2l2ZW4gcGNpX2lkIHRhYmxlXG4mIzQzOyAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cbiYjNDM7ICogQGRldl9pZDogdGhlIGFjdHVhbCBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0LlxuJiM0MzsgKlxuJiM0MzsgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvclxuJiM0MzsgKiAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbiYjNDM7ICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZG9fcGNpX21hdGNoX2lkKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMsXG4mIzQzO1x0XHRcdFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQsXG4mIzQzO1x0XHRcdFx0XHRcdCAgIGJvb2wgbWF0Y2hfb3ZlcnJpZGVfb25seSlcbiYjNDM7e1xuJiM0MztcdGlmIChpZHMpIHtcbiYjNDM7XHRcdHdoaWxlIChpZHMtXHUwMDNldmVuZG9yIHx8IGlkcy1cdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVx1MDAzZWNsYXNzX21hc2spIHtcbiYjNDM7XHRcdFx0aWYgKCghaWRzLVx1MDAzZW92ZXJyaWRlX29ubHkgfHwgbWF0Y2hfb3ZlcnJpZGVfb25seSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHRcdCAgICBwY2lfbWF0Y2hfb25lX2lkKGlkcywgZGV2X2lkKSlcbiYjNDM7XHRcdFx0XHRyZXR1cm4gaWRzO1xuJiM0MztcdFx0XHRpZHMmIzQzOyYjNDM7O1xuJiM0MztcdFx0fVxuJiM0MztcdH1cbiYjNDM7XHRyZXR1cm4gTlVMTDtcbiYjNDM7fVxuJiM0MztcbiAvKipcbiAgKiBwY2lfbWF0Y2hfaWQgLSBTZWUgaWYgYSBQQ0kgZGV2aWNlIG1hdGNoZXMgYSBnaXZlbiBwY2lfaWQgdGFibGVcbiAgKiBAaWRzOiBhcnJheSBvZiBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZXMgdG8gc2VhcmNoIGluXG5AQCAtMTA1LDE0ICYjNDM7MTYyLDkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXG4gY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzLFxuIFx0XHRcdFx0XHQgc3RydWN0IHBjaV9kZXYgKmRldilcbiB7XG4tXHRpZiAoaWRzKSB7XG4tXHRcdHdoaWxlIChpZHMtXHUwMDNldmVuZG9yIHx8IGlkcy1cdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVx1MDAzZWNsYXNzX21hc2spIHtcbi1cdFx0XHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoaWRzLCBkZXYpKVxuLVx0XHRcdFx0cmV0dXJuIGlkcztcbi1cdFx0XHRpZHMmIzQzOyYjNDM7O1xuLVx0XHR9XG4tXHR9XG4tXHRyZXR1cm4gTlVMTDtcbiYjNDM7XHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBkZXZfaWQgPSBwY2lfaWRfZnJvbV9kZXZpY2UoZGV2KTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGRvX3BjaV9tYXRjaF9pZChpZHMsIFx1MDAyNmRldl9pZCwgdHJ1ZSk7XG4gfVxuIEVYUE9SVF9TWU1CT0wocGNpX21hdGNoX2lkKTtcbiBcbkBAIC0xMjcsNjEgJiM0MzsxNzksNTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaV9kZXZpY2VfaWRfYW55ID0ge1xuICAqIHBjaV9tYXRjaF9kZXZpY2UgLSBTZWUgaWYgYSBkZXZpY2UgbWF0Y2hlcyBhIGRyaXZlciYjMzk7cyBsaXN0IG9mIElEc1xuICAqIEBkcnY6IHRoZSBQQ0kgZHJpdmVyIHRvIG1hdGNoIGFnYWluc3RcbiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxuJiM0MzsgKiBAaWQ6IE1hdGNoZWQgcGNpX2RldmljZV9pZFxuICAqXG4gICogVXNlZCBieSBhIGRyaXZlciB0byBjaGVjayB3aGV0aGVyIGEgUENJIGRldmljZSBpcyBpbiBpdHMgbGlzdCBvZlxuICAqIHN1cHBvcnRlZCBkZXZpY2VzIG9yIGluIHRoZSBkeW5pZHMgbGlzdCwgd2hpY2ggbWF5IGhhdmUgYmVlbiBhdWdtZW50ZWRcbi0gKiB2aWEgdGhlIHN5c2ZzIFwmIzM0O25ld19pZFwmIzM0OyBmaWxlLiAgUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZFxuLSAqIHN0cnVjdHVyZSBvciAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbiYjNDM7ICogdmlhIHRoZSBzeXNmcyBcJiMzNDtuZXdfaWRcJiMzNDsgZmlsZS4gIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIG1hdGNoLCB0aGUgbWF0Y2hlZFxuJiM0MzsgKiBJRCBpcyBzdG9yZWQgaW4gQGlkLlxuICAqL1xuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGNpX21hdGNoX2RldmljZShzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LFxuLVx0XHRcdFx0XHRcdCAgICBzdHJ1Y3QgcGNpX2RldiAqZGV2KVxuJiM0MztzdGF0aWMgYm9vbCBwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4mIzQzO1x0XHRcdCAgICAgc3RydWN0IHBjaV9kZXYgKmRldixcbiYjNDM7XHRcdFx0ICAgICBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4ge1xuIFx0c3RydWN0IHBjaV9keW5pZCAqZHluaWQ7XG4tXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZm91bmRfaWQgPSBOVUxMLCAqaWRzO1xuJiM0MztcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEw7XG4mIzQzO1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkO1xuIFx0aW50IHJldDtcbiBcbiBcdC8qIFdoZW4gZHJpdmVyX292ZXJyaWRlIGlzIHNldCwgb25seSBiaW5kIHRvIHRoZSBtYXRjaGluZyBkcml2ZXIgKi9cbiBcdHJldCA9IGRldmljZV9tYXRjaF9kcml2ZXJfb3ZlcnJpZGUoXHUwMDI2ZGV2LVx1MDAzZWRldiwgXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4gXHRpZiAocmV0ID09IDApXG4tXHRcdHJldHVybiBOVUxMO1xuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuIFxuJiM0MztcdGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpO1xuIFx0LyogTG9vayBhdCB0aGUgZHluYW1pYyBpZHMgZmlyc3QsIGJlZm9yZSB0aGUgc3RhdGljIG9uZXMgKi9cbi1cdHNwaW5fbG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVx0bGlzdF9mb3JfZWFjaF9lbnRyeShkeW5pZCwgXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XG4tXHRcdGlmIChwY2lfbWF0Y2hfb25lX2RldmljZShcdTAwMjZkeW5pZC1cdTAwM2VpZCwgZGV2KSkge1xuLVx0XHRcdGZvdW5kX2lkID0gXHUwMDI2ZHluaWQtXHUwMDNlaWQ7XG4tXHRcdFx0YnJlYWs7XG4mIzQzO1x0e1xuJiM0MztcdFx0Z3VhcmQoc3BpbmxvY2spKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4mIzQzO1x0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGR5bmlkLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QsIG5vZGUpIHtcbiYjNDM7XHRcdFx0aWYgKHBjaV9tYXRjaF9vbmVfaWQoXHUwMDI2ZHluaWQtXHUwMDNlaWQsIFx1MDAyNmRldl9pZCkpIHtcbiYjNDM7XHRcdFx0XHQqaWQgPSBkeW5pZC1cdTAwM2VpZDtcbiYjNDM7XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcbiYjNDM7XHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0aWYgKGZvdW5kX2lkKVxuLVx0XHRyZXR1cm4gZm91bmRfaWQ7XG4gXG4tXHRmb3IgKGlkcyA9IGRydi1cdTAwM2VpZF90YWJsZTsgKGZvdW5kX2lkID0gcGNpX21hdGNoX2lkKGlkcywgZGV2KSk7XG4tXHQgICAgIGlkcyA9IGZvdW5kX2lkICYjNDM7IDEpIHtcbi1cdFx0Lypcbi1cdFx0ICogVGhlIG1hdGNoIHRhYmxlIGlzIHNwbGl0IGJhc2VkIG9uIGRyaXZlcl9vdmVycmlkZS5cbi1cdFx0ICogSW4gY2FzZSBvdmVycmlkZV9vbmx5IHdhcyBzZXQsIGVuZm9yY2UgZHJpdmVyX292ZXJyaWRlXG4tXHRcdCAqIG1hdGNoaW5nLlxuLVx0XHQgKi9cbi1cdFx0aWYgKGZvdW5kX2lkLVx1MDAzZW92ZXJyaWRlX29ubHkpIHtcbi1cdFx0XHRpZiAocmV0IFx1MDAzZSAwKVxuLVx0XHRcdFx0cmV0dXJuIGZvdW5kX2lkO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdHJldHVybiBmb3VuZF9pZDtcbi1cdFx0fVxuJiM0MztcdGZvdW5kX2lkID0gZG9fcGNpX21hdGNoX2lkKGRydi1cdTAwM2VpZF90YWJsZSwgXHUwMDI2ZGV2X2lkLCByZXQgXHUwMDNlIDApO1xuJiM0MztcdGlmIChmb3VuZF9pZCkge1xuJiM0MztcdFx0KmlkID0gKmZvdW5kX2lkO1xuJiM0MztcdFx0cmV0dXJuIHRydWU7XG4gXHR9XG4gXG4gXHQvKiBkcml2ZXJfb3ZlcnJpZGUgd2lsbCBhbHdheXMgbWF0Y2gsIHNlbmQgYSBkdW1teSBpZCAqL1xuLVx0aWYgKHJldCBcdTAwM2UgMClcbi1cdFx0cmV0dXJuIFx1MDAyNnBjaV9kZXZpY2VfaWRfYW55O1xuLVx0cmV0dXJuIE5VTEw7XG4tfVxuJiM0MztcdGlmIChyZXQgXHUwMDNlIDApIHtcbiYjNDM7XHRcdCppZCA9IHBjaV9kZXZpY2VfaWRfYW55O1xuJiM0MztcdFx0cmV0dXJuIHRydWU7XG4mIzQzO1x0fVxuIFxuLXN0YXRpYyB2b2lkIF9wY2lfZnJlZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KVxuLXtcbi1cdGtmcmVlKHRvX3BjaV9kZXYoZGV2KSk7XG4mIzQzO1x0cmV0dXJuIGZhbHNlO1xuIH1cbiBcbiAvKipcbkBAIC0xOTcsMzggJiM0MzsyNDAsMjIgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RyaXZlciAqcGRydiA9IHRvX3BjaV9kcml2ZXIoZHJpdmVyKTtcbiBcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMgPSBwZHJ2LVx1MDAzZWlkX3RhYmxlO1xuLVx0dTMyIHZlbmRvciwgZGV2aWNlLCBzdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxuLVx0XHRzdWJkZXZpY2UgPSBQQ0lfQU5ZX0lELCBjbGFzcyA9IDAsIGNsYXNzX21hc2sgPSAwO1xuLVx0dW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSA9IDA7XG4mIzQzO1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XG4mIzQzO1x0XHQuc3VidmVuZG9yID0gUENJX0FOWV9JRCxcbiYjNDM7XHRcdC5zdWJkZXZpY2UgPSBQQ0lfQU5ZX0lEXG4mIzQzO1x0fTtcbiBcdGludCBmaWVsZHM7XG4gXHRpbnQgcmV0dmFsID0gMDtcbiBcbiBcdGZpZWxkcyA9IHNzY2FuZihidWYsIFwmIzM0OyV4ICV4ICV4ICV4ICV4ICV4ICVseFwmIzM0Oyxcbi1cdFx0XHRcdTAwMjZ2ZW5kb3IsIFx1MDAyNmRldmljZSwgXHUwMDI2c3VidmVuZG9yLCBcdTAwMjZzdWJkZXZpY2UsXG4tXHRcdFx0XHUwMDI2Y2xhc3MsIFx1MDAyNmNsYXNzX21hc2ssIFx1MDAyNmRyaXZlcl9kYXRhKTtcbiYjNDM7XHRcdFx0XHUwMDI2aWQudmVuZG9yLCBcdTAwMjZpZC5kZXZpY2UsIFx1MDAyNmlkLnN1YnZlbmRvciwgXHUwMDI2aWQuc3ViZGV2aWNlLFxuJiM0MztcdFx0XHRcdTAwMjZpZC5jbGFzcywgXHUwMDI2aWQuY2xhc3NfbWFzaywgXHUwMDI2aWQuZHJpdmVyX2RhdGEpO1xuIFx0aWYgKGZpZWxkcyBcdTAwM2MgMilcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRpZiAoZmllbGRzICE9IDcpIHtcbi1cdFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSBremFsbG9jX29iaigqcGRldik7XG4tXHRcdGlmICghcGRldilcbi1cdFx0XHRyZXR1cm4gLUVOT01FTTtcbi1cbi1cdFx0cGRldi1cdTAwM2V2ZW5kb3IgPSB2ZW5kb3I7XG4tXHRcdHBkZXYtXHUwMDNlZGV2aWNlID0gZGV2aWNlO1xuLVx0XHRwZGV2LVx1MDAzZXN1YnN5c3RlbV92ZW5kb3IgPSBzdWJ2ZW5kb3I7XG4tXHRcdHBkZXYtXHUwMDNlc3Vic3lzdGVtX2RldmljZSA9IHN1YmRldmljZTtcbi1cdFx0cGRldi1cdTAwM2VjbGFzcyA9IGNsYXNzO1xuLVx0XHRwZGV2LVx1MDAzZWRldi5yZWxlYXNlID0gX3BjaV9mcmVlX2RldmljZTtcbi1cbi1cdFx0ZGV2aWNlX2luaXRpYWxpemUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuLVx0XHRpZiAocGNpX21hdGNoX2RldmljZShwZHJ2LCBwZGV2KSlcbi1cdFx0XHRyZXR2YWwgPSAtRUVYSVNUO1xuLVxuLVx0XHRwdXRfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbi1cbi1cdFx0aWYgKHJldHZhbClcbi1cdFx0XHRyZXR1cm4gcmV0dmFsO1xuJiM0MztcdFx0aWYgKGRvX3BjaV9tYXRjaF9pZChwZHJ2LVx1MDAzZWlkX3RhYmxlLCBcdTAwMjZpZCwgZmFsc2UpKVxuJiM0MztcdFx0XHRyZXR1cm4gLUVFWElTVDtcbiBcdH1cbiBcbiBcdC8qIE9ubHkgYWNjZXB0IGRyaXZlcl9kYXRhIHZhbHVlcyB0aGF0IG1hdGNoIGFuIGV4aXN0aW5nIGlkX3RhYmxlXG5AQCAtMjM2LDcgJiM0MzsyNjMsNyBAQCBzdGF0aWMgc3NpemVfdCBuZXdfaWRfc3RvcmUoc3RydWN0IGRldmljZV9kcml2ZXIgKmRyaXZlciwgY29uc3QgY2hhciAqYnVmLFxuIFx0aWYgKGlkcykge1xuIFx0XHRyZXR2YWwgPSAtRUlOVkFMO1xuIFx0XHR3aGlsZSAoaWRzLVx1MDAzZXZlbmRvciB8fCBpZHMtXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cdTAwM2VjbGFzc19tYXNrKSB7XG4tXHRcdFx0aWYgKGRyaXZlcl9kYXRhID09IGlkcy1cdTAwM2Vkcml2ZXJfZGF0YSkge1xuJiM0MztcdFx0XHRpZiAoaWQuZHJpdmVyX2RhdGEgPT0gaWRzLVx1MDAzZWRyaXZlcl9kYXRhKSB7XG4gXHRcdFx0XHRyZXR2YWwgPSAwO1xuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0fVxuQEAgLTI0Niw4ICYjNDM7MjczLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcbiBcdFx0XHRyZXR1cm4gcmV0dmFsO1xuIFx0fVxuIFxuLVx0cmV0dmFsID0gcGNpX2FkZF9keW5pZChwZHJ2LCB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yLCBzdWJkZXZpY2UsXG4tXHRcdFx0ICAgICAgIGNsYXNzLCBjbGFzc19tYXNrLCBkcml2ZXJfZGF0YSk7XG4mIzQzO1x0cmV0dmFsID0gZG9fcGNpX2FkZF9keW5pZChwZHJ2LCBcdTAwMjZpZCwgZmllbGRzICE9IDcpO1xuIFx0aWYgKHJldHZhbClcbiBcdFx0cmV0dXJuIHJldHZhbDtcbiBcdHJldHVybiBjb3VudDtcbkBAIC00NDQsMTUgJiM0Mzs0NzAsMTQgQEAgdm9pZCBwY2lfcHJvYmVfZmx1c2hfd29ya3F1ZXVlKHZvaWQpXG4gICovXG4gc3RhdGljIGludCBfX3BjaV9kZXZpY2VfcHJvYmUoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpXG4ge1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xuIFx0aW50IGVycm9yID0gMDtcbiBcbiBcdGlmIChkcnYtXHUwMDNlcHJvYmUpIHtcbiBcdFx0ZXJyb3IgPSAtRU5PREVWO1xuIFxuLVx0XHRpZCA9IHBjaV9tYXRjaF9kZXZpY2UoZHJ2LCBwY2lfZGV2KTtcbi1cdFx0aWYgKGlkKVxuLVx0XHRcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBpZCk7XG4mIzQzO1x0XHRpZiAocGNpX21hdGNoX2RldmljZShkcnYsIHBjaV9kZXYsIFx1MDAyNmlkKSlcbiYjNDM7XHRcdFx0ZXJyb3IgPSBwY2lfY2FsbF9wcm9iZShkcnYsIHBjaV9kZXYsIFx1MDAyNmlkKTtcbiBcdH1cbiBcdHJldHVybiBlcnJvcjtcbiB9XG5AQCAtMTUzNywxNyAmIzQzOzE1NjIsMTMgQEAgc3RhdGljIGludCBwY2lfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldiA9IHRvX3BjaV9kZXYoZGV2KTtcbiBcdHN0cnVjdCBwY2lfZHJpdmVyICpwY2lfZHJ2O1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xuIFxuIFx0aWYgKHBjaV9kZXZfYmluZGluZ19kaXNhbGxvd2VkKHBjaV9kZXYpKVxuIFx0XHRyZXR1cm4gMDtcbiBcbiBcdHBjaV9kcnYgPSAoc3RydWN0IHBjaV9kcml2ZXIgKil0b19wY2lfZHJpdmVyKGRydik7XG4tXHRmb3VuZF9pZCA9IHBjaV9tYXRjaF9kZXZpY2UocGNpX2RydiwgcGNpX2Rldik7XG4tXHRpZiAoZm91bmRfaWQpXG4tXHRcdHJldHVybiAxO1xuLVxuLVx0cmV0dXJuIDA7XG4mIzQzO1x0cmV0dXJuIHBjaV9tYXRjaF9kZXZpY2UocGNpX2RydiwgcGNpX2RldiwgXHUwMDI2aWQpO1xuIH1cbiBcbiAvKipcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2kuaCBiL2RyaXZlcnMvcGNpL3BjaS5oXG5pbmRleCA0NDY5ZTFhNzdmM2MxMy4uMDU2N2E4NzYyYmFhMDggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS9wY2kuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wY2kvcGNpLmhcbkBAIC00NDIsMjEgJiM0Mzs0NDIsMzcgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3NldHVwX2NhcmRidXMoY2hhciAqc3RyKSB7IHJldHVybiAtRU5PRU5UOyB9XG4gI2VuZGlmIC8qIENPTkZJR19DQVJEQlVTICovXG4gXG4gLyoqXG4tICogcGNpX21hdGNoX29uZV9kZXZpY2UgLSBUZWxsIGlmIGEgUENJIGRldmljZSBzdHJ1Y3R1cmUgaGFzIGEgbWF0Y2hpbmdcbi0gKlx0XHRcdCAgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmVcbi0gKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaFxuLSAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0XG4mIzQzOyAqIHBjaV9pZF9mcm9tX2RldmljZSAtIE9idGFpbiBhIHBjaV9kZXZpY2VfaWQgZnJvbSBhIFBDSSBkZXZpY2VcbiYjNDM7ICogQGRldjogdGhlIFBDSSBkZXZpY2VcbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJucyBhIHBjaV9kZXZpY2VfaWQgZmlsbGVkLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfaWRfZnJvbV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldilcbiYjNDM7e1xuJiM0MztcdHJldHVybiAoc3RydWN0IHBjaV9kZXZpY2VfaWQpIHtcbiYjNDM7XHRcdC52ZW5kb3IgPSBkZXYtXHUwMDNldmVuZG9yLFxuJiM0MztcdFx0LmRldmljZSA9IGRldi1cdTAwM2VkZXZpY2UsXG4mIzQzO1x0XHQuc3VidmVuZG9yID0gZGV2LVx1MDAzZXN1YnN5c3RlbV92ZW5kb3IsXG4mIzQzO1x0XHQuc3ViZGV2aWNlID0gZGV2LVx1MDAzZXN1YnN5c3RlbV9kZXZpY2UsXG4mIzQzO1x0XHQuY2xhc3MgPSBkZXYtXHUwMDNlY2xhc3MsXG4mIzQzO1x0fTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7LyoqXG4mIzQzOyAqIHBjaV9tYXRjaF9vbmVfaWQgLSBUZWxsIGlmIGEgUENJIGRldmljZSBJRCBtYXRjaGVzIGEgbmVlZGxlIFBDSSBkZXZpY2UgaWRcbiYjNDM7ICogQGlkOiBzaW5nbGUgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdCAobmVlZGxlKVxuJiM0MzsgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIElEIGZyb20gdGhlIFBDSSBkZXZpY2UgKGNhbiBiZSBjcmVhdGVkIHZpYSBwY2lfaWRfZnJvbV9kZXZpY2UpXG4gICpcbiAgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvciAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbiAgKi9cbiBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpcbi1wY2lfbWF0Y2hfb25lX2RldmljZShjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXG4mIzQzO3BjaV9tYXRjaF9vbmVfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZGV2X2lkKVxuIHtcbi1cdGlmICgoaWQtXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNldmVuZG9yID09IGRldi1cdTAwM2V2ZW5kb3IpIFx1MDAyNlx1MDAyNlxuLVx0ICAgIChpZC1cdTAwM2VkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC1cdTAwM2VkZXZpY2UgPT0gZGV2LVx1MDAzZWRldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX3ZlbmRvcikgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YmRldmljZSA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX2RldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgISgoaWQtXHUwMDNlY2xhc3MgXiBkZXYtXHUwMDNlY2xhc3MpIFx1MDAyNiBpZC1cdTAwM2VjbGFzc19tYXNrKSlcbiYjNDM7XHRpZiAoKGlkLVx1MDAzZXZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXZlbmRvciA9PSBkZXZfaWQtXHUwMDNldmVuZG9yKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgKGlkLVx1MDAzZWRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZWRldmljZSA9PSBkZXZfaWQtXHUwMDNlZGV2aWNlKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXZfaWQtXHUwMDNlc3VidmVuZG9yKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgKGlkLVx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YmRldmljZSA9PSBkZXZfaWQtXHUwMDNlc3ViZGV2aWNlKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgISgoaWQtXHUwMDNlY2xhc3MgXiBkZXZfaWQtXHUwMDNlY2xhc3MpIFx1MDAyNiBpZC1cdTAwM2VjbGFzc19tYXNrKSlcbiBcdFx0cmV0dXJuIGlkO1xuIFx0cmV0dXJuIE5VTEw7XG4gfVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jIGIvZHJpdmVycy9wY2kvc2VhcmNoLmNcbmluZGV4IGUzZDMxNzdmY2U1NDllLi5jOGM0YmZlNzgxN2IwMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BjaS9zZWFyY2guY1xuQEAgLTI0NSw4ICYjNDM7MjQ1LDEwIEBAIHN0YXRpYyBpbnQgbWF0Y2hfcGNpX2Rldl9ieV9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEpXG4ge1xuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7XG4gXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBkYXRhO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZDtcbiBcbi1cdGlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZCwgcGRldikpXG4mIzQzO1x0ZGV2X2lkID0gcGNpX2lkX2Zyb21fZGV2aWNlKHBkZXYpO1xuJiM0MztcdGlmIChwY2lfbWF0Y2hfb25lX2lkKGlkLCBcdTAwMjZkZXZfaWQpKVxuIFx0XHRyZXR1cm4gMTtcbiBcdHJldHVybiAwO1xuIH1cbkBAIC00MTgsNyAmIzQzOzQyMCw3IEBAIEVYUE9SVF9TWU1CT0wocGNpX2dldF9jbGFzcyk7XG4gICpcbiAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBsaXN0IG9mIGtub3duIFBDSSBkZXZpY2VzLiBJZiBhIFBDSSBkZXZpY2UgaXMgZm91bmRcbiAgKiB3aXRoIGEgbWF0Y2hpbmcgYmFzZSBjbGFzcyBjb2RlLCB0aGUgcmVmZXJlbmNlIGNvdW50IHRvIHRoZSBkZXZpY2UgaXNcbi0gKiBpbmNyZW1lbnRlZC4gU2VlIHBjaV9tYXRjaF9vbmVfZGV2aWNlKCkgdG8gZmlndXJlIG91dCBob3cgZG9lcyB0aGlzIHdvcmtzLlxuJiM0MzsgKiBpbmNyZW1lbnRlZC4gU2VlIHBjaV9tYXRjaF9vbmVfaWQoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuXG4gICogQSBuZXcgc2VhcmNoIGlzIGluaXRpYXRlZCBieSBwYXNzaW5nICVOVUxMIGFzIHRoZSBAZnJvbSBhcmd1bWVudC5cbiAgKiBPdGhlcndpc2UgaWYgQGZyb20gaXMgbm90ICVOVUxMLCBzZWFyY2hlcyBjb250aW51ZSBmcm9tIG5leHQgZGV2aWNlIG9uIHRoZVxuICAqIGdsb2JhbCBsaXN0LiBUaGUgcmVmZXJlbmNlIGNvdW50IGZvciBAZnJvbSBpcyBhbHdheXMgZGVjcmVtZW50ZWQgaWYgaXQgaXNcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jXG5pbmRleCBlODkzZDU2NzcyNDE3YS4uOWM5MjgxMjIyYTBhY2YgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvbnNwMzIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmNcbkBAIC0xNDcwLDcgJiM0MzsxNDcwLDcgQEAgc3RhdGljIGludCBuc3AzMl9zaG93X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KVxuIFx0XHQgICAobnNwMzJfcmVhZDIoYmFzZSwgSU5ERVhfUkVHKSBcdTAwM2VcdTAwM2UgOCkgXHUwMDI2IDB4ZmYpO1xuIFxuIFx0bW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpO1xuLVx0bW9kZWwgICAgPSBkYXRhLVx1MDAzZXBjaV9kZXZpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbiYjNDM7XHRtb2RlbCAgICA9IGRhdGEtXHUwMDNlbW9kZWw7XG4gXG4gI2lmZGVmIENPTkZJR19QTVxuIFx0c2VxX3ByaW50ZihtLCBcJiMzNDtQb3dlciBNYW5hZ2VtZW50OiAgICAgICVzXFxuXCYjMzQ7LFxuQEAgLTI5MDcsOCAmIzQzOzI5MDcsOCBAQCBzdGF0aWMgaW50IG5zcDMyX2VoX2hvc3RfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpXG4gICovXG4gc3RhdGljIGludCBuc3AzMl9nZXRwcm9tX3BhcmFtKG5zcDMyX2h3X2RhdGEgKmRhdGEpXG4ge1xuLVx0aW50IHZlbmRvciA9IGRhdGEtXHUwMDNlcGNpX2RldmlkLVx1MDAzZXZlbmRvcjtcbi1cdGludCBkZXZpY2UgPSBkYXRhLVx1MDAzZXBjaV9kZXZpZC1cdTAwM2VkZXZpY2U7XG4mIzQzO1x0aW50IHZlbmRvciA9IGRhdGEtXHUwMDNlUGNpLVx1MDAzZXZlbmRvcjtcbiYjNDM7XHRpbnQgZGV2aWNlID0gZGF0YS1cdTAwM2VQY2ktXHUwMDNlZGV2aWNlO1xuIFx0aW50IHJldCwgaTtcbiBcdGludCBfX21heWJlX3VudXNlZCB2YWw7XG4gXG5AQCAtMzM0MCw3ICYjNDM7MzM0MCw3IEBAIHN0YXRpYyBpbnQgbnNwMzJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdH1cbiBcbiBcdGRhdGEtXHUwMDNlUGNpXHQgID0gcGRldjtcbi1cdGRhdGEtXHUwMDNlcGNpX2RldmlkICAgPSBpZDtcbiYjNDM7XHRkYXRhLVx1MDAzZW1vZGVsICAgICAgID0gaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG4gXHRkYXRhLVx1MDAzZUlycU51bWJlciAgID0gcGRldi1cdTAwM2VpcnE7XG4gXHRkYXRhLVx1MDAzZUJhc2VBZGRyZXNzID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDApO1xuIFx0ZGF0YS1cdTAwM2VOdW1BZGRyZXNzICA9IHBjaV9yZXNvdXJjZV9sZW4gIChwZGV2LCAwKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuaCBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oXG5pbmRleCA5MjQ4ODlmOGJkMzdlNy4uOWU2NTc3MWNiNTkyODYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvbnNwMzIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmhcbkBAIC01NjQsMTAgJiM0Mzs1NjQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX25zcDMyX2h3X2RhdGEge1xuIFxuIFx0c3RydWN0IHNjc2lfY21uZCAqQ3VycmVudFNDO1xuIFxuLVx0c3RydWN0IHBjaV9kZXYgICAgICAgICAgICAgKlBjaTtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2aWQ7XG4tXHRzdHJ1Y3QgU2NzaV9Ib3N0ICAgICAgICAgICAqSG9zdDtcbi1cdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBMb2NrO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2ICAgICpQY2k7XG4mIzQzO1x0aW50ICAgICAgICAgICAgICAgIG1vZGVsO1xuJiM0MztcdHN0cnVjdCBTY3NpX0hvc3QgICpIb3N0O1xuJiM0MztcdHNwaW5sb2NrX3QgICAgICAgICBMb2NrO1xuIFxuIFx0Y2hhciBpbmZvX3N0clsxMDBdO1xuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLmggYi9pbmNsdWRlL2xpbnV4L3BjaS5oXG5pbmRleCBlYmI1YjlkNzYzNjA5ZS4uZjEyOGQ4YzBjYmI2NGQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3BjaS5oXG5AQCAtOTc5LDYgJiM0Mzs5NzksNyBAQCBzdHJ1Y3QgbW9kdWxlO1xuICAqXHRcdGZ1bmN0aW9uIHJldHVybnMgemVybyB3aGVuIHRoZSBkcml2ZXIgY2hvb3NlcyB0b1xuICAqXHRcdHRha2UgXCYjMzQ7b3duZXJzaGlwXCYjMzQ7IG9mIHRoZSBkZXZpY2Ugb3IgYW4gZXJyb3IgY29kZVxuICAqXHRcdChuZWdhdGl2ZSBudW1iZXIpIG90aGVyd2lzZS5cbiYjNDM7ICpcdFx0VGhlIHBjaV9kZXZpY2VfaWQgcGFyYW1ldGVyIGlzIG9ubHkgdmFsaWQgZHVyaW5nIHByb2JlLlxuICAqXHRcdFRoZSBwcm9iZSBmdW5jdGlvbiBhbHdheXMgZ2V0cyBjYWxsZWQgZnJvbSBwcm9jZXNzXG4gICpcdFx0Y29udGV4dCwgc28gaXQgY2FuIHNsZWVwLlxuICAqIEByZW1vdmU6XHRUaGUgcmVtb3ZlKCkgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBkZXZpY2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtBVEFfR0VORVJJQyYjMzQ7LAogICAgJiMzNDtJUEFDS19CVVMmIzM0OywKICAgICYjMzQ7Qk9BUkRfVFBDSTIwMCYjMzQ7LAogICAgJiMzNDtNTFhTV19DT1JFJiMzNDssCiAgICAmIzM0O01MWFNXX1BDSSYjMzQ7LAogICAgJiMzNDtTQ1NJX05TUDMyJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV3X2lkX3N0b3JlJiMzNDssCiAgICAmIzM0O2RvX3BjaV9hZGRfZHluaWQmIzM0OywKICAgICYjMzQ7cGNpX21hdGNoX2RldmljZSYjMzQ7LAogICAgJiMzNDtfX3BjaV9kZXZpY2VfcHJvYmUmIzM0OywKICAgICYjMzQ7YXRhX2dlbmVyaWNfaW5pdF9vbmUmIzM0OywKICAgICYjMzQ7dHBjaTIwMF9wY2lfcHJvYmUmIzM0OywKICAgICYjMzQ7bWx4c3dfcGNpX3Byb2JlJiMzNDssCiAgICAmIzM0O25zcDMyX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFBDSSBkZXZpY2UgbWF0Y2hpbmcgYW5kIHByb2JpbmcgbG9naWMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMgd2l0aCBkeW5hbWljIFBDSSBJRHMuIEl0IGFsbG9jYXRlcyB0aGUgbWF0Y2hlZCBgcGNpX2RldmljZV9pZGAgb24gdGhlIHN0YWNrIGR1cmluZyBwcm9iZSBhbmQgdXBkYXRlcyBzZXZlcmFsIGRyaXZlcnMgdGhhdCBwcmV2aW91c2x5IHNhdmVkIHRoaXMgcG9pbnRlciB0byBwcmV2ZW50IHN0YWNrIHVzZS1hZnRlci1mcmVlLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgUENJIGR5bmFtaWMgSUQgc3lzZnMgaW50ZXJmYWNlIChgbmV3X2lkX3N0b3JlYCksIHRoZSBQQ0kgbWF0Y2hpbmcvcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhlIG1vZGlmaWVkIGRyaXZlcnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA5MTJkMDM1YjEyM2Q4YjIwYjE2ZDhhYmNkMTk5MWMwMWJiYTlkNjYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxNjoyMzoyOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2F0YV9nZW5lcmljLmMgYi9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jCmluZGV4IGU3MGI2YzA4OWNmMTc5Li4xOGVhNzQwY2E1ODI5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jCkBAIC01MSwxMSAmIzQzOzUxLDExIEBAIGVudW0gewogc3RhdGljIGludCBnZW5lcmljX3NldF9tb2RlKHN0cnVjdCBhdGFfbGluayAqbGluaywgc3RydWN0IGF0YV9kZXZpY2UgKip1bnVzZWQpCiB7CiAJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstJmd0O2FwOwotCWNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCA9IGFwLSZndDtob3N0LSZndDtwcml2YXRlX2RhdGE7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZHJpdmVyX2RhdGEgPSAodW5zaWduZWQgbG9uZylhcC0mZ3Q7aG9zdC0mZ3Q7cHJpdmF0ZV9kYXRhOwogCWludCBkbWFfZW5hYmxlZCA9IDA7CiAJc3RydWN0IGF0YV9kZXZpY2UgKmRldjsKIAotCWlmIChpZC0mZ3Q7ZHJpdmVyX2RhdGEgJmFtcDsgQVRBX0dFTl9GT1JDRV9ETUEpIHsKJiM0MzsJaWYgKGRyaXZlcl9kYXRhICZhbXA7IEFUQV9HRU5fRk9SQ0VfRE1BKSB7CiAJCWRtYV9lbmFibGVkID0gMHhmZjsKIAl9IGVsc2UgaWYgKGFwLSZndDtpb2FkZHIuYm1kbWFfYWRkcikgewogCQkvKiBCaXRzIDUgYW5kIDYgaW5kaWNhdGUgaWYgRE1BIGlzIGFjdGl2ZSBvbiBtYXN0ZXIvc2xhdmUgKi8KQEAgLTIwNiw3ICYjNDM7MjA2LDcgQEAgc3RhdGljIGludCBhdGFfZ2VuZXJpY19pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZAogCQkJcmV0dXJuIHJjOwogCQlwY2ltX3Bpbl9kZXZpY2UoZGV2KTsKIAl9Ci0JcmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksICZhbXA7Z2VuZXJpY19zaHQsICh2b2lkICopaWQsIDApOwomIzQzOwlyZXR1cm4gYXRhX3BjaV9ibWRtYV9pbml0X29uZShkZXYsIHBwaSwgJmFtcDtnZW5lcmljX3NodCwgKHZvaWQgKilpZC0mZ3Q7ZHJpdmVyX2RhdGEsIDApOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRhX2dlbmVyaWNbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMKaW5kZXggMDVkY2I2Njc1Y2Q2NjEuLjFjZjUxZjc2MzI5MzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYwpAQCAtNTYyLDcgJiM0Mzs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCiAJLyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovCiAJdHBjaTIwMC0mZ3Q7aW5mby0mZ3Q7cGRldiA9IHBkZXY7Ci0JdHBjaTIwMC0mZ3Q7aW5mby0mZ3Q7aWRfdGFibGUgPSAoc3RydWN0IHBjaV9kZXZpY2VfaWQgKilpZDsKIAogCS8qIHJlZ2lzdGVyIHRoZSBkZXZpY2UgYW5kIGluaXRpYWxpemUgaXQgKi8KIAlyZXQgPSB0cGNpMjAwX2luc3RhbGwodHBjaTIwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaCBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oCmluZGV4IGU3OWFjNjRhYmNmZmFjLi5hMmJmMzEyNTc5NGI3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmgKQEAgLTE0NSw3ICYjNDM7MTQ1LDYgQEAgc3RydWN0IHRwY2kyMDBfc2xvdCB7CiAgKi8KIHN0cnVjdCB0cGNpMjAwX2luZm9zIHsKIAlzdHJ1Y3QgcGNpX2RldgkJCSpwZGV2OwotCXN0cnVjdCBwY2lfZGV2aWNlX2lkCQkqaWRfdGFibGU7CiAJc3RydWN0IHRwY2kyMDBfcmVncyBfX2lvbWVtCSppbnRlcmZhY2VfcmVnczsKIAl2b2lkIF9faW9tZW0JCQkqY2ZnX3JlZ3M7CiAJc3RydWN0IGlwYWNrX2J1c19kZXZpY2UJCSppcGFja19idXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jCmluZGV4IDBkYTg1ZDM2NjQ3ZDkxLi5iZmUzMjY4ZGZkYzE3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMKQEAgLTEzMCw3ICYjNDM7MTMwLDYgQEAgc3RydWN0IG1seHN3X3BjaSB7CiAJCX0gY29tcDsKIAl9IGNtZDsKIAlzdHJ1Y3QgbWx4c3dfYnVzX2luZm8gYnVzX2luZm87Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkOwogCWVudW0gbWx4c3dfcGNpX2NxZV92IG1heF9jcWVfdmVyOyAvKiBNYXhpbWFsIHN1cHBvcnRlZCBDUUUgdmVyc2lvbiAqLwogCXU4IG51bV9jcXM7IC8qIE51bWJlciBvZiBDUXMgKi8KIAl1OCBudW1fc2RxczsgLyogTnVtYmVyIG9mIFNEUXMgKi8KQEAgLTE3NjgsNyAmIzQzOzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBtbHhzd19wY2lfbWJveF9mcmVlKHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwKIH0KIAogc3RhdGljIGludCBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLAotCQkJCSAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsCiAJCQkJICAgIHUzMiAqcF9zeXNfc3RhdHVzKQogewogCXVuc2lnbmVkIGxvbmcgZW5kOwpAQCAtMTgzOSw3ICYjNDM7MTgzNyw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX3Jlc2V0X3N3KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSkKIH0KIAogc3RhdGljIGludAotbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQomIzQzO21seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2kpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBtbHhzd19wY2ktJmd0O3BkZXY7CiAJYm9vbCBwY2lfcmVzZXRfc2JyX3N1cHBvcnRlZCA9IGZhbHNlOwpAQCAtMTg0OCw3ICYjNDM7MTg0Niw3IEBAIG1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAl1MzIgc3lzX3N0YXR1czsKIAlpbnQgZXJyOwogCi0JZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgaWQsICZhbXA7c3lzX3N0YXR1cyk7CiYjNDM7CWVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksICZhbXA7c3lzX3N0YXR1cyk7CiAJaWYgKGVycikgewogCQlkZXZfZXJyKCZhbXA7cGRldi0mZ3Q7ZGV2LCAmIzM0O0ZhaWxlZCB0byByZWFjaCBzeXN0ZW0gcmVhZHkgc3RhdHVzIGJlZm9yZSByZXNldC4gU3RhdHVzIGlzIDB4JXhcbiYjMzQ7LAogCQkJc3lzX3N0YXR1cyk7CkBAIC0xODgwLDcgJiM0MzsxODc4LDcgQEAgbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQllcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBpZCwgJmFtcDtzeXNfc3RhdHVzKTsKJiM0MzsJZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgJmFtcDtzeXNfc3RhdHVzKTsKIAlpZiAoZXJyKSB7CiAJCWRldl9lcnIoJmFtcDtwZGV2LSZndDtkZXYsICYjMzQ7RmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XG4mIzM0OywKIAkJCXN5c19zdGF0dXMpOwpAQCAtMTkzMiw3ICYjNDM7MTkzMCw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX2luaXQodm9pZCAqYnVzX3ByaXYsIHN0cnVjdCBtbHhzd19jb3JlICptbHhzd19jb3JlLAogCWlmICghbWJveCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQllcnIgPSBtbHhzd19wY2lfcmVzZXQobWx4c3dfcGNpLCBtbHhzd19wY2ktJmd0O2lkKTsKJiM0MzsJZXJyID0gbWx4c3dfcGNpX3Jlc2V0KG1seHN3X3BjaSk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfcmVzZXQ7CiAKQEAgLTI0NjQsNyAmIzQzOzI0NjIsNiBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCW1seHN3X3BjaS0mZ3Q7YnVzX2luZm8uZGV2aWNlX25hbWUgPSBwY2lfbmFtZShtbHhzd19wY2ktJmd0O3BkZXYpOwogCW1seHN3X3BjaS0mZ3Q7YnVzX2luZm8uZGV2ID0gJmFtcDtwZGV2LSZndDtkZXY7CiAJbWx4c3dfcGNpLSZndDtidXNfaW5mby5yZWFkX2Nsb2NrX2NhcGFibGUgPSB0cnVlOwotCW1seHN3X3BjaS0mZ3Q7aWQgPSBpZDsKIAogCWVyciA9IG1seHN3X2NvcmVfYnVzX2RldmljZV9yZWdpc3RlcigmYW1wO21seHN3X3BjaS0mZ3Q7YnVzX2luZm8sCiAJCQkJCSAgICAgJmFtcDttbHhzd19wY2lfYnVzLCBtbHhzd19wY2ksIGZhbHNlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jIGIvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jCmluZGV4IGYzNjc3OGU2MmFjMWE1Li5mYWQwMjhiOWRjNTNlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYwpAQCAtMjksNiAmIzQzOzI5LDQ4IEBAIHN0cnVjdCBwY2lfZHluaWQgewogCXN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkOwogfTsKIAomIzQzOy8qKgomIzQzOyAqIGRvX3BjaV9hZGRfZHluaWQgLSBhZGQgYSBuZXcgUENJIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgcmUtcHJvYmUgZGV2aWNlcwomIzQzOyAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyCiYjNDM7ICogQGlkOiBJRCB0byBiZSBhZGRlZAomIzQzOyAqIEBjaGVja19kdXA6IHdoZXRoZXIgdG8gY2hlY2sgaWYgbWF0Y2hpbmcgSUQgaXMgYWxyZWFkeSBwcmVzZW50CiYjNDM7ICoKJiM0MzsgKiBBZGRzIGEgbmV3IGR5bmFtaWMgcGNpIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgY2F1c2VzIHRoZQomIzQzOyAqIGRyaXZlciB0byBwcm9iZSBmb3IgYWxsIGRldmljZXMgYWdhaW4uICBAZHJ2IG11c3QgaGF2ZSBiZWVuCiYjNDM7ICogcmVnaXN0ZXJlZCBwcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCiYjNDM7ICoKJiM0MzsgKiBDT05URVhUOgomIzQzOyAqIERvZXMgR0ZQX0tFUk5FTCBhbGxvY2F0aW9uLgomIzQzOyAqCiYjNDM7ICogUkVUVVJOUzoKJiM0MzsgKiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLgomIzQzOyAqLwomIzQzO3N0YXRpYyBpbnQgZG9fcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGJvb2wgY2hlY2tfZHVwKQomIzQzO3sKJiM0MzsJc3RydWN0IHBjaV9keW5pZCAqZHluaWQsICpleGlzdGluZ19keW5pZDsKJiM0MzsKJiM0MzsJZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpOwomIzQzOwlpZiAoIWR5bmlkKQomIzQzOwkJcmV0dXJuIC1FTk9NRU07CiYjNDM7CiYjNDM7CWR5bmlkLSZndDtpZCA9ICppZDsKJiM0MzsKJiM0MzsJewomIzQzOwkJZ3VhcmQoc3BpbmxvY2spKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7CiYjNDM7CQlpZiAoY2hlY2tfZHVwKSB7CiYjNDM7CQkJbGlzdF9mb3JfZWFjaF9lbnRyeShleGlzdGluZ19keW5pZCwgJmFtcDtkcnYtJmd0O2R5bmlkcy5saXN0LCBub2RlKSB7CiYjNDM7CQkJCWlmIChwY2lfbWF0Y2hfb25lX2lkKCZhbXA7ZXhpc3RpbmdfZHluaWQtJmd0O2lkLCBpZCkpIHsKJiM0MzsJCQkJCWtmcmVlKGR5bmlkKTsKJiM0MzsJCQkJCXJldHVybiAtRUVYSVNUOwomIzQzOwkJCQl9CiYjNDM7CQkJfQomIzQzOwkJfQomIzQzOwkJbGlzdF9hZGRfdGFpbCgmYW1wO2R5bmlkLSZndDtub2RlLCAmYW1wO2Rydi0mZ3Q7ZHluaWRzLmxpc3QpOwomIzQzOwl9CiYjNDM7CiYjNDM7CXJldHVybiBkcml2ZXJfYXR0YWNoKCZhbXA7ZHJ2LSZndDtkcml2ZXIpOwomIzQzO30KJiM0MzsKIC8qKgogICogcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzCiAgKiBAZHJ2OiB0YXJnZXQgcGNpIGRyaXZlcgpAQCAtNTYsMjUgJiM0Mzs5OCwxNyBAQCBpbnQgcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LAogCQkgIHVuc2lnbmVkIGludCBjbGFzcywgdW5zaWduZWQgaW50IGNsYXNzX21hc2ssCiAJCSAgdW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSkKIHsKLQlzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZDsKLQotCWR5bmlkID0ga3phbGxvY19vYmooKmR5bmlkKTsKLQlpZiAoIWR5bmlkKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWR5bmlkLSZndDtpZC52ZW5kb3IgPSB2ZW5kb3I7Ci0JZHluaWQtJmd0O2lkLmRldmljZSA9IGRldmljZTsKLQlkeW5pZC0mZ3Q7aWQuc3VidmVuZG9yID0gc3VidmVuZG9yOwotCWR5bmlkLSZndDtpZC5zdWJkZXZpY2UgPSBzdWJkZXZpY2U7Ci0JZHluaWQtJmd0O2lkLmNsYXNzID0gY2xhc3M7Ci0JZHluaWQtJmd0O2lkLmNsYXNzX21hc2sgPSBjbGFzc19tYXNrOwotCWR5bmlkLSZndDtpZC5kcml2ZXJfZGF0YSA9IGRyaXZlcl9kYXRhOwotCi0Jc3Bpbl9sb2NrKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7Ci0JbGlzdF9hZGRfdGFpbCgmYW1wO2R5bmlkLSZndDtub2RlLCAmYW1wO2Rydi0mZ3Q7ZHluaWRzLmxpc3QpOwotCXNwaW5fdW5sb2NrKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7Ci0KLQlyZXR1cm4gZHJpdmVyX2F0dGFjaCgmYW1wO2Rydi0mZ3Q7ZHJpdmVyKTsKJiM0MzsJc3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7CiYjNDM7CQkudmVuZG9yID0gdmVuZG9yLAomIzQzOwkJLmRldmljZSA9IGRldmljZSwKJiM0MzsJCS5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3IsCiYjNDM7CQkuc3ViZGV2aWNlID0gc3ViZGV2aWNlLAomIzQzOwkJLmNsYXNzID0gY2xhc3MsCiYjNDM7CQkuY2xhc3NfbWFzayA9IGNsYXNzX21hc2ssCiYjNDM7CQkuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YSwKJiM0MzsJfTsKJiM0MzsKJiM0MzsJcmV0dXJuIGRvX3BjaV9hZGRfZHluaWQoZHJ2LCAmYW1wO2lkLCBmYWxzZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChwY2lfYWRkX2R5bmlkKTsKIApAQCAtOTAsNiAmIzQzOzEyNCwyOSBAQCBzdGF0aWMgdm9pZCBwY2lfZnJlZV9keW5pZHMoc3RydWN0IHBjaV9kcml2ZXIgKmRydikKIAlzcGluX3VubG9jaygmYW1wO2Rydi0mZ3Q7ZHluaWRzLmxvY2spOwogfQogCiYjNDM7LyoqCiYjNDM7ICogZG9fcGNpX21hdGNoX2lkIC0gU2VlIGlmIGEgUENJIElEIG1hdGNoZXMgYSBnaXZlbiBwY2lfaWQgdGFibGUKJiM0MzsgKiBAaWRzOiBhcnJheSBvZiBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZXMgdG8gc2VhcmNoIGluCiYjNDM7ICogQGRldl9pZDogdGhlIGFjdHVhbCBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0LgomIzQzOyAqCiYjNDM7ICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZCBzdHJ1Y3R1cmUgb3IKJiM0MzsgKiAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC4KJiM0MzsgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmRvX3BjaV9tYXRjaF9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzLAomIzQzOwkJCQkJCSAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQsCiYjNDM7CQkJCQkJICAgYm9vbCBtYXRjaF9vdmVycmlkZV9vbmx5KQomIzQzO3sKJiM0MzsJaWYgKGlkcykgewomIzQzOwkJd2hpbGUgKGlkcy0mZ3Q7dmVuZG9yIHx8IGlkcy0mZ3Q7c3VidmVuZG9yIHx8IGlkcy0mZ3Q7Y2xhc3NfbWFzaykgewomIzQzOwkJCWlmICgoIWlkcy0mZ3Q7b3ZlcnJpZGVfb25seSB8fCBtYXRjaF9vdmVycmlkZV9vbmx5KSAmYW1wOyZhbXA7CiYjNDM7CQkJICAgIHBjaV9tYXRjaF9vbmVfaWQoaWRzLCBkZXZfaWQpKQomIzQzOwkJCQlyZXR1cm4gaWRzOwomIzQzOwkJCWlkcyYjNDM7JiM0Mzs7CiYjNDM7CQl9CiYjNDM7CX0KJiM0MzsJcmV0dXJuIE5VTEw7CiYjNDM7fQomIzQzOwogLyoqCiAgKiBwY2lfbWF0Y2hfaWQgLSBTZWUgaWYgYSBQQ0kgZGV2aWNlIG1hdGNoZXMgYSBnaXZlbiBwY2lfaWQgdGFibGUKICAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW4KQEAgLTEwNSwxNCAmIzQzOzE2Miw5IEBAIHN0YXRpYyB2b2lkIHBjaV9mcmVlX2R5bmlkcyhzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2KQogY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzLAogCQkJCQkgc3RydWN0IHBjaV9kZXYgKmRldikKIHsKLQlpZiAoaWRzKSB7Ci0JCXdoaWxlIChpZHMtJmd0O3ZlbmRvciB8fCBpZHMtJmd0O3N1YnZlbmRvciB8fCBpZHMtJmd0O2NsYXNzX21hc2spIHsKLQkJCWlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZHMsIGRldikpCi0JCQkJcmV0dXJuIGlkczsKLQkJCWlkcyYjNDM7JiM0Mzs7Ci0JCX0KLQl9Ci0JcmV0dXJuIE5VTEw7CiYjNDM7CXN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpOwomIzQzOwomIzQzOwlyZXR1cm4gZG9fcGNpX21hdGNoX2lkKGlkcywgJmFtcDtkZXZfaWQsIHRydWUpOwogfQogRVhQT1JUX1NZTUJPTChwY2lfbWF0Y2hfaWQpOwogCkBAIC0xMjcsNjEgJiM0MzsxNzksNTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaV9kZXZpY2VfaWRfYW55ID0gewogICogcGNpX21hdGNoX2RldmljZSAtIFNlZSBpZiBhIGRldmljZSBtYXRjaGVzIGEgZHJpdmVyJiMzOTtzIGxpc3Qgb2YgSURzCiAgKiBAZHJ2OiB0aGUgUENJIGRyaXZlciB0byBtYXRjaCBhZ2FpbnN0CiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdAomIzQzOyAqIEBpZDogTWF0Y2hlZCBwY2lfZGV2aWNlX2lkCiAgKgogICogVXNlZCBieSBhIGRyaXZlciB0byBjaGVjayB3aGV0aGVyIGEgUENJIGRldmljZSBpcyBpbiBpdHMgbGlzdCBvZgogICogc3VwcG9ydGVkIGRldmljZXMgb3IgaW4gdGhlIGR5bmlkcyBsaXN0LCB3aGljaCBtYXkgaGF2ZSBiZWVuIGF1Z21lbnRlZAotICogdmlhIHRoZSBzeXNmcyAmIzM0O25ld19pZCYjMzQ7IGZpbGUuICBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkCi0gKiBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guCiYjNDM7ICogdmlhIHRoZSBzeXNmcyAmIzM0O25ld19pZCYjMzQ7IGZpbGUuICBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYSBtYXRjaCwgdGhlIG1hdGNoZWQKJiM0MzsgKiBJRCBpcyBzdG9yZWQgaW4gQGlkLgogICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9kZXZpY2Uoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwKLQkJCQkJCSAgICBzdHJ1Y3QgcGNpX2RldiAqZGV2KQomIzQzO3N0YXRpYyBib29sIHBjaV9tYXRjaF9kZXZpY2Uoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwKJiM0MzsJCQkgICAgIHN0cnVjdCBwY2lfZGV2ICpkZXYsCiYjNDM7CQkJICAgICBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiB7CiAJc3RydWN0IHBjaV9keW5pZCAqZHluaWQ7Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkID0gTlVMTCwgKmlkczsKJiM0MzsJY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkID0gTlVMTDsKJiM0MzsJc3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkOwogCWludCByZXQ7CiAKIAkvKiBXaGVuIGRyaXZlcl9vdmVycmlkZSBpcyBzZXQsIG9ubHkgYmluZCB0byB0aGUgbWF0Y2hpbmcgZHJpdmVyICovCiAJcmV0ID0gZGV2aWNlX21hdGNoX2RyaXZlcl9vdmVycmlkZSgmYW1wO2Rldi0mZ3Q7ZGV2LCAmYW1wO2Rydi0mZ3Q7ZHJpdmVyKTsKIAlpZiAocmV0ID09IDApCi0JCXJldHVybiBOVUxMOwomIzQzOwkJcmV0dXJuIGZhbHNlOwogCiYjNDM7CWRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpOwogCS8qIExvb2sgYXQgdGhlIGR5bmFtaWMgaWRzIGZpcnN0LCBiZWZvcmUgdGhlIHN0YXRpYyBvbmVzICovCi0Jc3Bpbl9sb2NrKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShkeW5pZCwgJmFtcDtkcnYtJmd0O2R5bmlkcy5saXN0LCBub2RlKSB7Ci0JCWlmIChwY2lfbWF0Y2hfb25lX2RldmljZSgmYW1wO2R5bmlkLSZndDtpZCwgZGV2KSkgewotCQkJZm91bmRfaWQgPSAmYW1wO2R5bmlkLSZndDtpZDsKLQkJCWJyZWFrOwomIzQzOwl7CiYjNDM7CQlndWFyZChzcGlubG9jaykoJmFtcDtkcnYtJmd0O2R5bmlkcy5sb2NrKTsKJiM0MzsJCWxpc3RfZm9yX2VhY2hfZW50cnkoZHluaWQsICZhbXA7ZHJ2LSZndDtkeW5pZHMubGlzdCwgbm9kZSkgewomIzQzOwkJCWlmIChwY2lfbWF0Y2hfb25lX2lkKCZhbXA7ZHluaWQtJmd0O2lkLCAmYW1wO2Rldl9pZCkpIHsKJiM0MzsJCQkJKmlkID0gZHluaWQtJmd0O2lkOwomIzQzOwkJCQlyZXR1cm4gdHJ1ZTsKJiM0MzsJCQl9CiAJCX0KIAl9Ci0Jc3Bpbl91bmxvY2soJmFtcDtkcnYtJmd0O2R5bmlkcy5sb2NrKTsKLQotCWlmIChmb3VuZF9pZCkKLQkJcmV0dXJuIGZvdW5kX2lkOwogCi0JZm9yIChpZHMgPSBkcnYtJmd0O2lkX3RhYmxlOyAoZm91bmRfaWQgPSBwY2lfbWF0Y2hfaWQoaWRzLCBkZXYpKTsKLQkgICAgIGlkcyA9IGZvdW5kX2lkICYjNDM7IDEpIHsKLQkJLyoKLQkJICogVGhlIG1hdGNoIHRhYmxlIGlzIHNwbGl0IGJhc2VkIG9uIGRyaXZlcl9vdmVycmlkZS4KLQkJICogSW4gY2FzZSBvdmVycmlkZV9vbmx5IHdhcyBzZXQsIGVuZm9yY2UgZHJpdmVyX292ZXJyaWRlCi0JCSAqIG1hdGNoaW5nLgotCQkgKi8KLQkJaWYgKGZvdW5kX2lkLSZndDtvdmVycmlkZV9vbmx5KSB7Ci0JCQlpZiAocmV0ICZndDsgMCkKLQkJCQlyZXR1cm4gZm91bmRfaWQ7Ci0JCX0gZWxzZSB7Ci0JCQlyZXR1cm4gZm91bmRfaWQ7Ci0JCX0KJiM0MzsJZm91bmRfaWQgPSBkb19wY2lfbWF0Y2hfaWQoZHJ2LSZndDtpZF90YWJsZSwgJmFtcDtkZXZfaWQsIHJldCAmZ3Q7IDApOwomIzQzOwlpZiAoZm91bmRfaWQpIHsKJiM0MzsJCSppZCA9ICpmb3VuZF9pZDsKJiM0MzsJCXJldHVybiB0cnVlOwogCX0KIAogCS8qIGRyaXZlcl9vdmVycmlkZSB3aWxsIGFsd2F5cyBtYXRjaCwgc2VuZCBhIGR1bW15IGlkICovCi0JaWYgKHJldCAmZ3Q7IDApCi0JCXJldHVybiAmYW1wO3BjaV9kZXZpY2VfaWRfYW55OwotCXJldHVybiBOVUxMOwotfQomIzQzOwlpZiAocmV0ICZndDsgMCkgewomIzQzOwkJKmlkID0gcGNpX2RldmljZV9pZF9hbnk7CiYjNDM7CQlyZXR1cm4gdHJ1ZTsKJiM0MzsJfQogCi1zdGF0aWMgdm9pZCBfcGNpX2ZyZWVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlrZnJlZSh0b19wY2lfZGV2KGRldikpOwomIzQzOwlyZXR1cm4gZmFsc2U7CiB9CiAKIC8qKgpAQCAtMTk3LDM4ICYjNDM7MjQwLDIyIEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsCiB7CiAJc3RydWN0IHBjaV9kcml2ZXIgKnBkcnYgPSB0b19wY2lfZHJpdmVyKGRyaXZlcik7CiAJY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkcyA9IHBkcnYtJmd0O2lkX3RhYmxlOwotCXUzMiB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yID0gUENJX0FOWV9JRCwKLQkJc3ViZGV2aWNlID0gUENJX0FOWV9JRCwgY2xhc3MgPSAwLCBjbGFzc19tYXNrID0gMDsKLQl1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhID0gMDsKJiM0MzsJc3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7CiYjNDM7CQkuc3VidmVuZG9yID0gUENJX0FOWV9JRCwKJiM0MzsJCS5zdWJkZXZpY2UgPSBQQ0lfQU5ZX0lECiYjNDM7CX07CiAJaW50IGZpZWxkczsKIAlpbnQgcmV0dmFsID0gMDsKIAogCWZpZWxkcyA9IHNzY2FuZihidWYsICYjMzQ7JXggJXggJXggJXggJXggJXggJWx4JiMzNDssCi0JCQkmYW1wO3ZlbmRvciwgJmFtcDtkZXZpY2UsICZhbXA7c3VidmVuZG9yLCAmYW1wO3N1YmRldmljZSwKLQkJCSZhbXA7Y2xhc3MsICZhbXA7Y2xhc3NfbWFzaywgJmFtcDtkcml2ZXJfZGF0YSk7CiYjNDM7CQkJJmFtcDtpZC52ZW5kb3IsICZhbXA7aWQuZGV2aWNlLCAmYW1wO2lkLnN1YnZlbmRvciwgJmFtcDtpZC5zdWJkZXZpY2UsCiYjNDM7CQkJJmFtcDtpZC5jbGFzcywgJmFtcDtpZC5jbGFzc19tYXNrLCAmYW1wO2lkLmRyaXZlcl9kYXRhKTsKIAlpZiAoZmllbGRzICZsdDsgMikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoZmllbGRzICE9IDcpIHsKLQkJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBremFsbG9jX29iaigqcGRldik7Ci0JCWlmICghcGRldikKLQkJCXJldHVybiAtRU5PTUVNOwotCi0JCXBkZXYtJmd0O3ZlbmRvciA9IHZlbmRvcjsKLQkJcGRldi0mZ3Q7ZGV2aWNlID0gZGV2aWNlOwotCQlwZGV2LSZndDtzdWJzeXN0ZW1fdmVuZG9yID0gc3VidmVuZG9yOwotCQlwZGV2LSZndDtzdWJzeXN0ZW1fZGV2aWNlID0gc3ViZGV2aWNlOwotCQlwZGV2LSZndDtjbGFzcyA9IGNsYXNzOwotCQlwZGV2LSZndDtkZXYucmVsZWFzZSA9IF9wY2lfZnJlZV9kZXZpY2U7Ci0KLQkJZGV2aWNlX2luaXRpYWxpemUoJmFtcDtwZGV2LSZndDtkZXYpOwotCQlpZiAocGNpX21hdGNoX2RldmljZShwZHJ2LCBwZGV2KSkKLQkJCXJldHZhbCA9IC1FRVhJU1Q7Ci0KLQkJcHV0X2RldmljZSgmYW1wO3BkZXYtJmd0O2Rldik7Ci0KLQkJaWYgKHJldHZhbCkKLQkJCXJldHVybiByZXR2YWw7CiYjNDM7CQlpZiAoZG9fcGNpX21hdGNoX2lkKHBkcnYtJmd0O2lkX3RhYmxlLCAmYW1wO2lkLCBmYWxzZSkpCiYjNDM7CQkJcmV0dXJuIC1FRVhJU1Q7CiAJfQogCiAJLyogT25seSBhY2NlcHQgZHJpdmVyX2RhdGEgdmFsdWVzIHRoYXQgbWF0Y2ggYW4gZXhpc3RpbmcgaWRfdGFibGUKQEAgLTIzNiw3ICYjNDM7MjYzLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZiwKIAlpZiAoaWRzKSB7CiAJCXJldHZhbCA9IC1FSU5WQUw7CiAJCXdoaWxlIChpZHMtJmd0O3ZlbmRvciB8fCBpZHMtJmd0O3N1YnZlbmRvciB8fCBpZHMtJmd0O2NsYXNzX21hc2spIHsKLQkJCWlmIChkcml2ZXJfZGF0YSA9PSBpZHMtJmd0O2RyaXZlcl9kYXRhKSB7CiYjNDM7CQkJaWYgKGlkLmRyaXZlcl9kYXRhID09IGlkcy0mZ3Q7ZHJpdmVyX2RhdGEpIHsKIAkJCQlyZXR2YWwgPSAwOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMjQ2LDggJiM0MzsyNzMsNyBAQCBzdGF0aWMgc3NpemVfdCBuZXdfaWRfc3RvcmUoc3RydWN0IGRldmljZV9kcml2ZXIgKmRyaXZlciwgY29uc3QgY2hhciAqYnVmLAogCQkJcmV0dXJuIHJldHZhbDsKIAl9CiAKLQlyZXR2YWwgPSBwY2lfYWRkX2R5bmlkKHBkcnYsIHZlbmRvciwgZGV2aWNlLCBzdWJ2ZW5kb3IsIHN1YmRldmljZSwKLQkJCSAgICAgICBjbGFzcywgY2xhc3NfbWFzaywgZHJpdmVyX2RhdGEpOwomIzQzOwlyZXR2YWwgPSBkb19wY2lfYWRkX2R5bmlkKHBkcnYsICZhbXA7aWQsIGZpZWxkcyAhPSA3KTsKIAlpZiAocmV0dmFsKQogCQlyZXR1cm4gcmV0dmFsOwogCXJldHVybiBjb3VudDsKQEAgLTQ0NCwxNSAmIzQzOzQ3MCwxNCBAQCB2b2lkIHBjaV9wcm9iZV9mbHVzaF93b3JrcXVldWUodm9pZCkKICAqLwogc3RhdGljIGludCBfX3BjaV9kZXZpY2VfcHJvYmUoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpCiB7Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkOwomIzQzOwlzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDsKIAlpbnQgZXJyb3IgPSAwOwogCiAJaWYgKGRydi0mZ3Q7cHJvYmUpIHsKIAkJZXJyb3IgPSAtRU5PREVWOwogCi0JCWlkID0gcGNpX21hdGNoX2RldmljZShkcnYsIHBjaV9kZXYpOwotCQlpZiAoaWQpCi0JCQllcnJvciA9IHBjaV9jYWxsX3Byb2JlKGRydiwgcGNpX2RldiwgaWQpOwomIzQzOwkJaWYgKHBjaV9tYXRjaF9kZXZpY2UoZHJ2LCBwY2lfZGV2LCAmYW1wO2lkKSkKJiM0MzsJCQllcnJvciA9IHBjaV9jYWxsX3Byb2JlKGRydiwgcGNpX2RldiwgJmFtcDtpZCk7CiAJfQogCXJldHVybiBlcnJvcjsKIH0KQEAgLTE1MzcsMTcgJiM0MzsxNTYyLDEzIEBAIHN0YXRpYyBpbnQgcGNpX2J1c19tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSB0b19wY2lfZGV2KGRldik7CiAJc3RydWN0IHBjaV9kcml2ZXIgKnBjaV9kcnY7Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkOwomIzQzOwlzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDsKIAogCWlmIChwY2lfZGV2X2JpbmRpbmdfZGlzYWxsb3dlZChwY2lfZGV2KSkKIAkJcmV0dXJuIDA7CiAKIAlwY2lfZHJ2ID0gKHN0cnVjdCBwY2lfZHJpdmVyICopdG9fcGNpX2RyaXZlcihkcnYpOwotCWZvdW5kX2lkID0gcGNpX21hdGNoX2RldmljZShwY2lfZHJ2LCBwY2lfZGV2KTsKLQlpZiAoZm91bmRfaWQpCi0JCXJldHVybiAxOwotCi0JcmV0dXJuIDA7CiYjNDM7CXJldHVybiBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYsICZhbXA7aWQpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS5oIGIvZHJpdmVycy9wY2kvcGNpLmgKaW5kZXggNDQ2OWUxYTc3ZjNjMTMuLjA1NjdhODc2MmJhYTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2kuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BjaS9wY2kuaApAQCAtNDQyLDIxICYjNDM7NDQyLDM3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9zZXR1cF9jYXJkYnVzKGNoYXIgKnN0cikgeyByZXR1cm4gLUVOT0VOVDsgfQogI2VuZGlmIC8qIENPTkZJR19DQVJEQlVTICovCiAKIC8qKgotICogcGNpX21hdGNoX29uZV9kZXZpY2UgLSBUZWxsIGlmIGEgUENJIGRldmljZSBzdHJ1Y3R1cmUgaGFzIGEgbWF0Y2hpbmcKLSAqCQkJICBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZQotICogQGlkOiBzaW5nbGUgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmUgdG8gbWF0Y2gKLSAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0CiYjNDM7ICogcGNpX2lkX2Zyb21fZGV2aWNlIC0gT2J0YWluIGEgcGNpX2RldmljZV9pZCBmcm9tIGEgUENJIGRldmljZQomIzQzOyAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zIGEgcGNpX2RldmljZV9pZCBmaWxsZWQuCiYjNDM7ICovCiYjNDM7c3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfaWRfZnJvbV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikKJiM0Mzt7CiYjNDM7CXJldHVybiAoc3RydWN0IHBjaV9kZXZpY2VfaWQpIHsKJiM0MzsJCS52ZW5kb3IgPSBkZXYtJmd0O3ZlbmRvciwKJiM0MzsJCS5kZXZpY2UgPSBkZXYtJmd0O2RldmljZSwKJiM0MzsJCS5zdWJ2ZW5kb3IgPSBkZXYtJmd0O3N1YnN5c3RlbV92ZW5kb3IsCiYjNDM7CQkuc3ViZGV2aWNlID0gZGV2LSZndDtzdWJzeXN0ZW1fZGV2aWNlLAomIzQzOwkJLmNsYXNzID0gZGV2LSZndDtjbGFzcywKJiM0MzsJfTsKJiM0Mzt9CiYjNDM7CiYjNDM7LyoqCiYjNDM7ICogcGNpX21hdGNoX29uZV9pZCAtIFRlbGwgaWYgYSBQQ0kgZGV2aWNlIElEIG1hdGNoZXMgYSBuZWVkbGUgUENJIGRldmljZSBpZAomIzQzOyAqIEBpZDogc2luZ2xlIFBDSSBkZXZpY2UgaWQgc3RydWN0dXJlIHRvIG1hdGNoIGFnYWluc3QgKG5lZWRsZSkKJiM0MzsgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIElEIGZyb20gdGhlIFBDSSBkZXZpY2UgKGNhbiBiZSBjcmVhdGVkIHZpYSBwY2lfaWRfZnJvbV9kZXZpY2UpCiAgKgogICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZCBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guCiAgKi8KIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKgotcGNpX21hdGNoX29uZV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQomIzQzO3BjaV9tYXRjaF9vbmVfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZGV2X2lkKQogewotCWlmICgoaWQtJmd0O3ZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLSZndDt2ZW5kb3IgPT0gZGV2LSZndDt2ZW5kb3IpICZhbXA7JmFtcDsKLQkgICAgKGlkLSZndDtkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC0mZ3Q7ZGV2aWNlID09IGRldi0mZ3Q7ZGV2aWNlKSAmYW1wOyZhbXA7Ci0JICAgIChpZC0mZ3Q7c3VidmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtJmd0O3N1YnZlbmRvciA9PSBkZXYtJmd0O3N1YnN5c3RlbV92ZW5kb3IpICZhbXA7JmFtcDsKLQkgICAgKGlkLSZndDtzdWJkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC0mZ3Q7c3ViZGV2aWNlID09IGRldi0mZ3Q7c3Vic3lzdGVtX2RldmljZSkgJmFtcDsmYW1wOwotCSAgICAhKChpZC0mZ3Q7Y2xhc3MgXiBkZXYtJmd0O2NsYXNzKSAmYW1wOyBpZC0mZ3Q7Y2xhc3NfbWFzaykpCiYjNDM7CWlmICgoaWQtJmd0O3ZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLSZndDt2ZW5kb3IgPT0gZGV2X2lkLSZndDt2ZW5kb3IpICZhbXA7JmFtcDsKJiM0MzsJICAgIChpZC0mZ3Q7ZGV2aWNlID09IFBDSV9BTllfSUQgfHwgaWQtJmd0O2RldmljZSA9PSBkZXZfaWQtJmd0O2RldmljZSkgJmFtcDsmYW1wOwomIzQzOwkgICAgKGlkLSZndDtzdWJ2ZW5kb3IgPT0gUENJX0FOWV9JRCB8fCBpZC0mZ3Q7c3VidmVuZG9yID09IGRldl9pZC0mZ3Q7c3VidmVuZG9yKSAmYW1wOyZhbXA7CiYjNDM7CSAgICAoaWQtJmd0O3N1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLSZndDtzdWJkZXZpY2UgPT0gZGV2X2lkLSZndDtzdWJkZXZpY2UpICZhbXA7JmFtcDsKJiM0MzsJICAgICEoKGlkLSZndDtjbGFzcyBeIGRldl9pZC0mZ3Q7Y2xhc3MpICZhbXA7IGlkLSZndDtjbGFzc19tYXNrKSkKIAkJcmV0dXJuIGlkOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvc2VhcmNoLmMgYi9kcml2ZXJzL3BjaS9zZWFyY2guYwppbmRleCBlM2QzMTc3ZmNlNTQ5ZS4uYzhjNGJmZTc4MTdiMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcGNpL3NlYXJjaC5jCkBAIC0yNDUsOCAmIzQzOzI0NSwxMCBAQCBzdGF0aWMgaW50IG1hdGNoX3BjaV9kZXZfYnlfaWQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwogCWNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCA9IGRhdGE7CiYjNDM7CXN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZDsKIAotCWlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZCwgcGRldikpCiYjNDM7CWRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShwZGV2KTsKJiM0MzsJaWYgKHBjaV9tYXRjaF9vbmVfaWQoaWQsICZhbXA7ZGV2X2lkKSkKIAkJcmV0dXJuIDE7CiAJcmV0dXJuIDA7CiB9CkBAIC00MTgsNyAmIzQzOzQyMCw3IEBAIEVYUE9SVF9TWU1CT0wocGNpX2dldF9jbGFzcyk7CiAgKgogICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgbGlzdCBvZiBrbm93biBQQ0kgZGV2aWNlcy4gSWYgYSBQQ0kgZGV2aWNlIGlzIGZvdW5kCiAgKiB3aXRoIGEgbWF0Y2hpbmcgYmFzZSBjbGFzcyBjb2RlLCB0aGUgcmVmZXJlbmNlIGNvdW50IHRvIHRoZSBkZXZpY2UgaXMKLSAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9kZXZpY2UoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuCiYjNDM7ICogaW5jcmVtZW50ZWQuIFNlZSBwY2lfbWF0Y2hfb25lX2lkKCkgdG8gZmlndXJlIG91dCBob3cgZG9lcyB0aGlzIHdvcmtzLgogICogQSBuZXcgc2VhcmNoIGlzIGluaXRpYXRlZCBieSBwYXNzaW5nICVOVUxMIGFzIHRoZSBAZnJvbSBhcmd1bWVudC4KICAqIE90aGVyd2lzZSBpZiBAZnJvbSBpcyBub3QgJU5VTEwsIHNlYXJjaGVzIGNvbnRpbnVlIGZyb20gbmV4dCBkZXZpY2Ugb24gdGhlCiAgKiBnbG9iYWwgbGlzdC4gVGhlIHJlZmVyZW5jZSBjb3VudCBmb3IgQGZyb20gaXMgYWx3YXlzIGRlY3JlbWVudGVkIGlmIGl0IGlzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jCmluZGV4IGU4OTNkNTY3NzI0MTdhLi45YzkyODEyMjJhMGFjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmMKQEAgLTE0NzAsNyAmIzQzOzE0NzAsNyBAQCBzdGF0aWMgaW50IG5zcDMyX3Nob3dfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QpCiAJCSAgIChuc3AzMl9yZWFkMihiYXNlLCBJTkRFWF9SRUcpICZndDsmZ3Q7IDgpICZhbXA7IDB4ZmYpOwogCiAJbW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpOwotCW1vZGVsICAgID0gZGF0YS0mZ3Q7cGNpX2RldmlkLSZndDtkcml2ZXJfZGF0YTsKJiM0MzsJbW9kZWwgICAgPSBkYXRhLSZndDttb2RlbDsKIAogI2lmZGVmIENPTkZJR19QTQogCXNlcV9wcmludGYobSwgJiMzNDtQb3dlciBNYW5hZ2VtZW50OiAgICAgICVzXG4mIzM0OywKQEAgLTI5MDcsOCAmIzQzOzI5MDcsOCBAQCBzdGF0aWMgaW50IG5zcDMyX2VoX2hvc3RfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpCiAgKi8KIHN0YXRpYyBpbnQgbnNwMzJfZ2V0cHJvbV9wYXJhbShuc3AzMl9od19kYXRhICpkYXRhKQogewotCWludCB2ZW5kb3IgPSBkYXRhLSZndDtwY2lfZGV2aWQtJmd0O3ZlbmRvcjsKLQlpbnQgZGV2aWNlID0gZGF0YS0mZ3Q7cGNpX2RldmlkLSZndDtkZXZpY2U7CiYjNDM7CWludCB2ZW5kb3IgPSBkYXRhLSZndDtQY2ktJmd0O3ZlbmRvcjsKJiM0MzsJaW50IGRldmljZSA9IGRhdGEtJmd0O1BjaS0mZ3Q7ZGV2aWNlOwogCWludCByZXQsIGk7CiAJaW50IF9fbWF5YmVfdW51c2VkIHZhbDsKIApAQCAtMzM0MCw3ICYjNDM7MzM0MCw3IEBAIHN0YXRpYyBpbnQgbnNwMzJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAl9CiAKIAlkYXRhLSZndDtQY2kJICA9IHBkZXY7Ci0JZGF0YS0mZ3Q7cGNpX2RldmlkICAgPSBpZDsKJiM0MzsJZGF0YS0mZ3Q7bW9kZWwgICAgICAgPSBpZC0mZ3Q7ZHJpdmVyX2RhdGE7CiAJZGF0YS0mZ3Q7SXJxTnVtYmVyICAgPSBwZGV2LSZndDtpcnE7CiAJZGF0YS0mZ3Q7QmFzZUFkZHJlc3MgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMCk7CiAJZGF0YS0mZ3Q7TnVtQWRkcmVzcyAgPSBwY2lfcmVzb3VyY2VfbGVuICAocGRldiwgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuaCBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oCmluZGV4IDkyNDg4OWY4YmQzN2U3Li45ZTY1NzcxY2I1OTI4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmgKQEAgLTU2NCwxMCAmIzQzOzU2NCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfbnNwMzJfaHdfZGF0YSB7CiAKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpDdXJyZW50U0M7CiAKLQlzdHJ1Y3QgcGNpX2RldiAgICAgICAgICAgICAqUGNpOwotCWNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2aWQ7Ci0Jc3RydWN0IFNjc2lfSG9zdCAgICAgICAgICAgKkhvc3Q7Ci0Jc3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgIExvY2s7CiYjNDM7CXN0cnVjdCBwY2lfZGV2ICAgICpQY2k7CiYjNDM7CWludCAgICAgICAgICAgICAgICBtb2RlbDsKJiM0MzsJc3RydWN0IFNjc2lfSG9zdCAgKkhvc3Q7CiYjNDM7CXNwaW5sb2NrX3QgICAgICAgICBMb2NrOwogCiAJY2hhciBpbmZvX3N0clsxMDBdOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BjaS5oIGIvaW5jbHVkZS9saW51eC9wY2kuaAppbmRleCBlYmI1YjlkNzYzNjA5ZS4uZjEyOGQ4YzBjYmI2NGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9wY2kuaApAQCAtOTc5LDYgJiM0Mzs5NzksNyBAQCBzdHJ1Y3QgbW9kdWxlOwogICoJCWZ1bmN0aW9uIHJldHVybnMgemVybyB3aGVuIHRoZSBkcml2ZXIgY2hvb3NlcyB0bwogICoJCXRha2UgJiMzNDtvd25lcnNoaXAmIzM0OyBvZiB0aGUgZGV2aWNlIG9yIGFuIGVycm9yIGNvZGUKICAqCQkobmVnYXRpdmUgbnVtYmVyKSBvdGhlcndpc2UuCiYjNDM7ICoJCVRoZSBwY2lfZGV2aWNlX2lkIHBhcmFtZXRlciBpcyBvbmx5IHZhbGlkIGR1cmluZyBwcm9iZS4KICAqCQlUaGUgcHJvYmUgZnVuY3Rpb24gYWx3YXlzIGdldHMgY2FsbGVkIGZyb20gcHJvY2VzcwogICoJCWNvbnRleHQsIHNvIGl0IGNhbiBzbGVlcC4KICAqIEByZW1vdmU6CVRoZSByZW1vdmUoKSBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIGRldmljZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzkwCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogODM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBDSSBEZXZpY2UgTWF0Y2hpbmcgYW5kIFByb2JlIExvZ2ljIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgZnVuZGFtZW50YWxseSBjaGFuZ2VzIGhvdyBQQ0kgZGV2aWNlcyBhcmUgbWF0Y2hlZCBhbmQgcHJvYmVkIGluIHRoZSBrZXJuZWwuIEluaXRpYWxseSwgSSBzZWUgdGhhdCBpdCYjMzk7cyBhbHRlcmluZyBgcGNpX21hdGNoX2RldmljZWAgdG8gcmV0dXJuIGEgYm9vbGVhbiBhbmQgcG9wdWxhdGUgYSBgcGNpX2RldmljZV9pZGAgc3RydWN0dXJlLCBpbnN0ZWFkIG9mIHJldHVybmluZyBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZS4gSXQgYWxzbyBtYWtlcyBjb3JyZXNwb25kaW5nIGFkanVzdG1lbnRzIHRvIGBwY2lfbWF0Y2hfb25lX2RldmljZWAgYW5kIGludHJvZHVjZXMgYHBjaV9pZF9mcm9tX2RldmljZWAuCgpNeSBmaXJzdCB0aG91Z2h0IGlzLCBoYW5nIG9uLCB0aGlzIGlzIHNpZ25pZmljYW50LiBDaGFuZ2luZyB0aGUgcmV0dXJuIHR5cGUgb2YgYHBjaV9tYXRjaF9kZXZpY2VgIGltcGxpZXMgYSBzdWJzdGFudGlhbCBzaGlmdCBpbiB0aGUgcHJvYmUgbWVjaGFuaXNtLiBUaGUgY29kZSBzbmlwcGV0IHNob3dzIHRoYXQgdGhlIGBpZGAgaXMgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayBvZiBgX19wY2lfZGV2aWNlX3Byb2JlYC4gVGhpcyBtZWFucyBhbnkgZHJpdmVyIHRoYXQgcHJldmlvdXNseSAqc2F2ZWQqIHRoZSBgaWRgIHBvaW50ZXIgdGhleSByZWNlaXZlZCBpbiB0aGVpciBgcHJvYmVgIGZ1bmN0aW9uIHdvdWxkIG5vdyBoYXZlIGEgZGFuZ2xpbmcgcG9pbnRlciwgd2hpY2ggaXMgYSBiaWcgZGVhbCEgVGhlIHBhdGNoIHNlZW1zIHRvIGJlIGFkZHJlc3NpbmcgZXhhY3RseSB0aGlzLCBmaXhpbmcgdGhlIGBhdGFfZ2VuZXJpY2AsIGB0cGNpMjAwYCwgYG1seHN3YCwgYW5kIGBuc3AzMmAgZHJpdmVycyB3aGljaCBhcHBhcmVudGx5IHdlcmUgZG9pbmcgcHJlY2lzZWx5IHRoYXQuIEl0JiMzOTtzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGFjdGluZyBjb3JlIFBDSSBtYXRjaGluZy4KCk5vdywgSSBuZWVkIHRvIGNvbnNpZGVyIHRoZSB0ZXN0aW5nIGltcGxpY2F0aW9ucy4gQ2FuIHRoaXMgYmUgZnV6emVkPyBBYnNvbHV0ZWx5LiBUb29scyBsaWtlIHN5emthbGxlciBjYW4gZWFzaWx5IGZ1enogUENJIGRldmljZXMgdmlhIHZpcnR1YWwgUENJIG1lY2hhbmlzbXMsIGluamVjdGluZyBhbGwgc29ydHMgb2Ygc2NlbmFyaW9zLiBTaW5jZSB0aGUgY29yZSBQQ0kgY2hhbmdlcyBpbXBhY3QgKmFsbCogZHJpdmVycywgdGhhdCBtYWtlcyBpdCBldmVuIG1vcmUgY3JpdGljYWwuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgcmVhY2hhYmxlOyBgcGNpX21hdGNoX2RldmljZWAsIGBwY2lfYWRkX2R5bmlkYCwgYG5ld19pZF9zdG9yZWAsIGFuZCBgcGNpX2J1c19tYXRjaGAgYXJlIGFsbCBkZWZpbml0ZWx5IGluIHRoZSBjYWxsIGdyYXBoLgoKTGV0JiMzOTtzIGRpZyBpbnRvIGBwY2lfYWRkX2R5bmlkYCBhbmQgYG5ld19pZF9zdG9yZWAgc3BlY2lmaWNhbGx5LiBUaGUgYG5ld19pZF9zdG9yZWAgZnVuY3Rpb24gaXMgdGhlIHN5c2ZzIGludGVyZmFjZSBmb3IgYWRkaW5nIGR5bmFtaWMgSURzLiBJdCBzZWVtcyB0aGUgcGF0Y2ggb3B0aW1pemVzIGl0LCByZW1vdmluZyBhIGR1bW15IGBwY2lfZGV2YCBhbGxvY2F0aW9uIHdoZW4gY2hlY2tpbmcgZm9yIGR1cGxpY2F0ZXMgYW5kIGluc3RlYWQgdXNlcyBgZG9fcGNpX21hdGNoX2lkYCBkaXJlY3RseSwgaW50cm9kdWNpbmcgYGRvX3BjaV9hZGRfZHluaWRgLgoKSSYjMzk7bGwgYWxzbyB3YW50IHRvIGtub3cgd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIG5lZWRlZCB0byBlbmFibGUgdGhlIGRyaXZlcnMgYWZmZWN0ZWQuIFRoaXMgcGF0Y2ggZml4ZXMgcHJvYmxlbXMgdGhhdCB3ZXJlIGluIHRoZSBkcml2ZXJzIGZvciBgQ09ORklHX0FUQV9HRU5FUklDYCwgYENPTkZJR19UUENJMjAwYCwgYENPTkZJR19NTFhTV19QQ0lgLCBhbmQgYENPTkZJR19TQ1NJX05TUDMyYC4KSSB3aWxsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvYXRhL0tjb25maWdgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBVEFfR0VORVJJQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvYXRhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2F0YS9LY29uZmlnPTExNjM9Y29uZmlnIFBBVEFfQUNQSVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWctMTE3Mi1cbmRyaXZlcnMvYXRhL0tjb25maWc6MTE3Mzpjb25maWcgQVRBX0dFTkVSSUNcbmRyaXZlcnMvYXRhL0tjb25maWctMTE3NC1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgQVRBIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTI3NwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIENoZWNrKioKCk9rYXksIHRpbWUgdG8gZ2V0IHRvIGl0LiBGaXJzdCwgSSBuZWVkIHRvIHZlcmlmeSBzb21ldGhpbmcgc3BlY2lmaWMgd2l0aGluIHRoZSBpLnBhY2sgY2FycmllciBjb25maWd1cmF0aW9uLiBMZXQmIzM5O3Mgc3RhcnQgYnkgbmF2aWdhdGluZyB0byB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGUsIGxvY2F0ZWQgaW4gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvYC4gSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcy4gVGhpcyBzaG91bGQgdGVsbCBtZSB3aGF0IEkgbmVlZCB0byBrbm93IGFib3V0IHRoaXMgY2Fycmllci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBUUENJMjAwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9pcGFjay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNDM0CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqTmF2aWdhdGluZyB0aGUgS2NvbmZpZyBMYWJ5cmludGgqKgoKT2theSwgc28gdGhlIGJyZWFkY3J1bWIgdHJhaWwgbGVhZHMgbWUgdG8gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZ2AuIFJpZ2h0LCBgZHJpdmVyc2AuLi4gYGlwYWNrYC4uLiBgY2FycmllcnNgLi4uIGBLY29uZmlnYC4gVGhhdCBzcGVjaWZpYyBmaWxlIHBsYWNlbWVudCBhbHdheXMgZ2l2ZXMgbWUgYSBjbHVlIGFib3V0IHRoZSBhcmNoaXRlY3R1cmUuIEkgbmVlZCB0byBnZXQgb3JpZW50ZWQuIEJlZm9yZSBJIGV2ZW4gc3RhcnQgYW5hbHl6aW5nIHRoZSBjb250ZW50LCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyAmIzM0O0xldCYjMzk7cyBjcmFjayBvcGVuIHRoYXQgZGlyZWN0b3J5IGFuZCBzZWUgd2hhdCB0aGUgd2lkZXIgc3RydWN0dXJlIGxvb2tzIGxpa2UuIENvbnRleHQgaXMga2luZywgZXNwZWNpYWxseSB3aXRoIEtjb25maWcgZmlsZXMuJiMzNDsgR290dGEgaGF2ZSBhIGdvb2QgZ3Jhc3Agb2YgdGhlIHN1cnJvdW5kaW5nIGZpbGVzIGFuZCBob3cgdGhpcyBtb2R1bGUgZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZSBiZWZvcmUgSSBkaXZlIGludG8gdGhlIGRldGFpbHMuIFVuZGVyc3RhbmRpbmcgdGhhdCBoaWdoIGxldmVsIHZpZXcgZmlyc3Qgd2lsbCBzYXZlIGEgbG90IG9mIHRpbWUgYW5kIHBvdGVudGlhbCBjb25mdXNpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9pcGFjay9jYXJyaWVycy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDt0cGNpMjAwLmMmIzM0OywKICAgICYjMzQ7dHBjaTIwMC5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTY3MwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGBpcGFja2AgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgYWx3YXlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBgS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7cyB0aGUgaGVhcnQgb2YgaG93IHRoaXMgZHJpdmVyIGlzIGNvbnRyb2xsZWQgYW5kIGJ1aWx0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSwgd2hhdCBkZXBlbmRlbmNpZXMgdGhlcmUgYXJlLCBhbmQgaG93IHRoZSB2YXJpb3VzIHNldHRpbmdzIGFmZmVjdCB0aGUgYnVpbGQgcHJvY2Vzcy4gSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIGBkcml2ZXJzL2lwYWNrL0tjb25maWdgIGFuZCBzdGFydCBkaXNzZWN0aW5nIGl0LCBsb29raW5nIGZvciB0aGUga2V5IGNvbXBvbmVudHMgdGhhdCBkZWZpbmUgdGhpcyBwYXJ0aWN1bGFyIG1vZHVsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVFBDSTIwMCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE4NTcKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBhcyByZXF1ZXN0ZWQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIGB0cGNpMjAwYCBLZXl3b3JkIHdpdGhpbiB0aGUgS2VybmVsIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBgdHBjaTIwMGAga2V5d29yZCBmaXRzIHdpdGhpbiB0aGUgYnJvYWRlciBjb250ZXh0IG9mIHRoZSBrZXJuZWwmIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zLiBNeSBndXQgZmVlbGluZyBpcyBpdCYjMzk7cyByZWxhdGVkIHRvIHNvbWUgc29ydCBvZiBkZXZpY2UgZHJpdmVyLCBsaWtlbHkgd2l0aGluIHRoZSBgaXBhY2tgIHN1YnN5c3RlbSwgZ2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLiBUaGVyZWZvcmUsIEkmIzM5O20gZ29pbmcgdG8ga2ljayB0aGluZ3Mgb2ZmIGJ5IGdyZXBwaW5nIGZvciBgdHBjaTIwMGAgaW4gdGhlIGBkcml2ZXJzL2lwYWNrL0tjb25maWdgIGZpbGUuIFRoaXMgc2hvdWxkIGdpdmUgbWUgdGhlIGluaXRpYWwgaGl0cyBJIG5lZWQgdG8gc3RhcnQgZm9ybWluZyBhIGNsZWFyZXIgcGljdHVyZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBpbml0aWFsIHN0ZXAgdG8gdW5kZXJzdGFuZGluZyBpdHMgcHVycG9zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHBjaTIwMCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1NTcgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQk9BUkRfVFBDSTIwMCkgJiM0Mzs9IHRwY2kyMDAub1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTExLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTI6I2luY2x1ZGUgXCYjMzQ7dHBjaTIwMC5oXCYjMzQ7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE0OnN0YXRpYyBjb25zdCB1MTYgdHBjaTIwMF9zdGF0dXNfdGltZW91dFtdID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTUtXHRUUENJMjAwX0FfVElNRU9VVCxcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIxOnN0YXRpYyBjb25zdCB1MTYgdHBjaTIwMF9zdGF0dXNfZXJyb3JbXSA9IHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIyLVx0VFBDSTIwMF9BX0VSUk9SLFxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjg6c3RhdGljIGNvbnN0IHNpemVfdCB0cGNpMjAwX3NwYWNlX3NpemVbSVBBQ0tfU1BBQ0VfQ09VTlRdID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjktXHRbSVBBQ0tfSU9fU1BBQ0VdICAgID0gVFBDSTIwMF9JT19TUEFDRV9TSVpFLFxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzY6c3RhdGljIGNvbnN0IHNpemVfdCB0cGNpMjAwX3NwYWNlX2ludGVydmFsW0lQQUNLX1NQQUNFX0NPVU5UXSA9IHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM3LVx0W0lQQUNLX0lPX1NQQUNFXSAgICA9IFRQQ0kyMDBfSU9fU1BBQ0VfSU5URVJWQUwsXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDMtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDpzdGF0aWMgc3RydWN0IHRwY2kyMDBfYm9hcmQgKmNoZWNrX3Nsb3Qoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDUte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ3LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTI6XHR0cGNpMjAwID0gZGV2X2dldF9kcnZkYXRhKGRldi1cdTAwM2VidXMtXHUwMDNlcGFyZW50KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQ6XHRpZiAodHBjaTIwMCA9PSBOVUxMKSB7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NS1cdFx0ZGV2X2luZm8oXHUwMDI2ZGV2LVx1MDAzZWRldiwgXCYjMzQ7Y2FycmllciBib2FyZCBub3QgZm91bmRcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwLVx0XHRkZXZfaW5mbyhcdTAwMjZkZXYtXHUwMDNlZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjE6XHRcdFx0IFwmIzM0O1Nsb3QgWyVkOiVkXSBkb2VzbiYjMzk7dCBleGlzdCEgTGFzdCB0cGNpMjAwIHNsb3QgaXMgJWQuXFxuXCYjMzQ7LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjItXHRcdFx0IGRldi1cdTAwM2VidXMtXHUwMDNlYnVzX25yLCBkZXYtXHUwMDNlc2xvdCwgVFBDSTIwMF9OQl9TTE9ULTEpO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY1LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjY6XHRyZXR1cm4gdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY3LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Njk6c3RhdGljIHZvaWQgdHBjaTIwMF9jbGVhcl9tYXNrKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzAtXHRcdFx0ICAgICAgIF9fbGUxNiBfX2lvbWVtICphZGRyLCB1MTYgbWFzaylcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy03Mi1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo3MzpcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnRwY2kyMDAtXHUwMDNlcmVnc19sb2NrLCBmbGFncyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy03NC1cdGlvd3JpdGUxNihpb3JlYWQxNihhZGRyKSBcdTAwMjYgKH5tYXNrKSwgYWRkcik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo3NTpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dHBjaTIwMC1cdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc2LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Nzg6c3RhdGljIHZvaWQgdHBjaTIwMF9zZXRfbWFzayhzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc5LVx0XHRcdCAgICAgX19sZTE2IF9faW9tZW0gKmFkZHIsIHUxNiBtYXNrKVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTgxLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjgyOlx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dHBjaTIwMC1cdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTgzLVx0aW93cml0ZTE2KGlvcmVhZDE2KGFkZHIpIHwgbWFzaywgYWRkcik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo4NDpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dHBjaTIwMC1cdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTg1LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTg2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6ODc6c3RhdGljIHZvaWQgdHBjaTIwMF91bnJlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtODgte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6ODk6XHRmcmVlX2lycSh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VpcnEsICh2b2lkICopIHRwY2kyMDApO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtOTAtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5MTpcdHBjaV9pb3VubWFwKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtOTItXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5MzpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9JUF9JTlRFUkZBQ0VfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjk0Olx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX0lPX0lEX0lOVF9TUEFDRVNfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjk1Olx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX01FTTE2X1NQQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5NjpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy05Ny1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjk4Olx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTk5LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEwMC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEwMTpzdGF0aWMgdm9pZCB0cGNpMjAwX2VuYWJsZV9pcnEoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDItXHRcdFx0ICAgICAgIGludCBpc2xvdClcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEwMy17XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMDQ6XHR0cGNpMjAwX3NldF9tYXNrKHRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMDU6XHRcdFx0XHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZWNvbnRyb2xbaXNsb3RdLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTA2LVx0XHRcdFRQQ0kyMDBfSU5UMF9FTiB8IFRQQ0kyMDBfSU5UMV9FTik7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTA4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTA5OnN0YXRpYyB2b2lkIHRwY2kyMDBfZGlzYWJsZV9pcnEoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTAtXHRcdFx0XHRpbnQgaXNsb3QpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTEte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTEyOlx0dHBjaTIwMF9jbGVhcl9tYXNrKHRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMTM6XHRcdFx0XHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZWNvbnRyb2xbaXNsb3RdLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTE0LVx0XHRcdFRQQ0kyMDBfSU5UMF9FTiB8IFRQQ0kyMDBfSU5UMV9FTik7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTE2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTE3OnN0YXRpYyBpcnFyZXR1cm5fdCB0cGNpMjAwX3Nsb3RfaXJxKHN0cnVjdCBzbG90X2lycSAqc2xvdF9pcnEpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTgte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEyNy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEyODpzdGF0aWMgaXJxcmV0dXJuX3QgdHBjaTIwMF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTI5LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEzMDpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gKHN0cnVjdCB0cGNpMjAwX2JvYXJkICopIGRldl9pZDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzMS1cdHN0cnVjdCBzbG90X2lycSAqc2xvdF9pcnE7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTM2LVx0LyogUmVhZCBzdGF0dXMgcmVnaXN0ZXIgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEzNzpcdHN0YXR1c19yZWcgPSBpb3JlYWQxNihcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXHUwMDNlc3RhdHVzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzOC1cbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNDctXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDg6XHRcdHNsb3RfaXJxID0gcmN1X2RlcmVmZXJlbmNlKHRwY2kyMDAtXHUwMDNlc2xvdHNbaV0uaXJxKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE0OTpcdFx0cmV0ID0gdHBjaTIwMF9zbG90X2lycShzbG90X2lycSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNTAtXHRcdGlmIChyZXQgPT0gLUVOT0RFVikge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTUxOlx0XHRcdGRldl9pbmZvKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE1Mi1cdFx0XHRcdCBcJiMzNDtObyByZWdpc3RlcmVkIElTUiBmb3Igc2xvdCBbJWQ6JWRdIS4gSVJRIHdpbGwgYmUgZGlzYWJsZWQuXFxuXCYjMzQ7LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTUzOlx0XHRcdFx0IHRwY2kyMDAtXHUwMDNlbnVtYmVyLCBpKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE1NDpcdFx0XHR0cGNpMjAwX2Rpc2FibGVfaXJxKHRwY2kyMDAsIGkpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTU1LVx0XHR9XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTYxLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTYyOnN0YXRpYyBpbnQgdHBjaTIwMF9mcmVlX2lycShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjMte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTY0LVx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2NTpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTY2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTY3Olx0dHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2ODpcdGlmICh0cGNpMjAwID09IE5VTEwpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjktXHRcdHJldHVybiAtRUlOVkFMO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTcwLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTcxOlx0aWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZShcdTAwMjZ0cGNpMjAwLVx1MDAzZW11dGV4KSlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3Mi1cdFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE3NDpcdGlmICh0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnEgPT0gTlVMTCkge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTc1Olx0XHRtdXRleF91bmxvY2soXHUwMDI2dHBjaTIwMC1cdTAwM2VtdXRleCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzYtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3OC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE3OTpcdHRwY2kyMDBfZGlzYWJsZV9pcnEodHBjaTIwMCwgZGV2LVx1MDAzZXNsb3QpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTgwOlx0c2xvdF9pcnEgPSB0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnE7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODEtXHQvKiB1bmluc3RhbGwgaGFuZGxlciAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTgyOlx0UkNVX0lOSVRfUE9JTlRFUih0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnEsIE5VTEwpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTgzLVx0c3luY2hyb25pemVfcmN1KCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODQtXHRrZnJlZShzbG90X2lycSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxODU6XHRtdXRleF91bmxvY2soXHUwMDI2dHBjaTIwMC1cdTAwM2VtdXRleCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODYtXHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxODk6c3RhdGljIGludCB0cGNpMjAwX3JlcXVlc3RfaXJxKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE5MC1cdFx0XHQgICAgICAgaXJxcmV0dXJuX3QgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICphcmcpXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTkzLVx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NDpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTk1LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTk2Olx0dHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NzpcdGlmICh0cGNpMjAwID09IE5VTEwpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xOTgtXHRcdHJldHVybiAtRUlOVkFMO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTk5LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjAwOlx0aWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZShcdTAwMjZ0cGNpMjAwLVx1MDAzZW11dGV4KSlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIwMS1cdFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIwMi1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIwMzpcdGlmICh0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnEgIT0gTlVMTCkge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjA0LVx0XHRkZXZfZXJyKFx1MDAyNmRldi1cdTAwM2VkZXYsXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjMwLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjMxOlx0cmN1X2Fzc2lnbl9wb2ludGVyKHRwY2kyMDAtXHUwMDNlc2xvdHNbZGV2LVx1MDAzZXNsb3RdLmlycSwgc2xvdF9pcnEpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjMyOlx0dHBjaTIwMF9lbmFibGVfaXJxKHRwY2kyMDAsIGRldi1cdTAwM2VzbG90KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzMy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzNC1vdXRfdW5sb2NrOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjM1Olx0bXV0ZXhfdW5sb2NrKFx1MDAyNnRwY2kyMDAtXHUwMDNlbXV0ZXgpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjM2LVx0cmV0dXJuIHJlcztcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMzgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyMzk6c3RhdGljIGludCB0cGNpMjAwX3JlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQwLXtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNDUtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNDY6XHRpZiAocGNpX2VuYWJsZV9kZXZpY2UodHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYpIFx1MDAzYyAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQ3LVx0XHRyZXR1cm4gLUVOT0RFVjtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNDktXHQvKiBSZXF1ZXN0IElQIGludGVyZmFjZSByZWdpc3RlciAoQmFyIDIpICovXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNTA6XHRyZXMgPSBwY2lfcmVxdWVzdF9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI1MS1cdFx0XHRcdCBcJiMzNDtDYXJyaWVyIElQIGludGVyZmFjZSByZWdpc3RlcnNcJiMzNDspO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjUyLVx0aWYgKHJlcykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjUzOlx0XHRkZXZfZXJyKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI1NC1cdFx0XHRcJiMzNDsoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDIgIVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI1NTpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjU2Olx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI1Ny1cdFx0Z290byBlcnJfZGlzYWJsZV9kZXZpY2U7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYwLVx0LyogUmVxdWVzdCBJTyBJRCBJTlQgc3BhY2UgKEJhciAzKSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjYxOlx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYyLVx0XHRcdFx0IFRQQ0kyMDBfSU9fSURfSU5UX1NQQUNFU19CQVIsXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjY0LVx0aWYgKHJlcykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjY1Olx0XHRkZXZfZXJyKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2Ni1cdFx0XHRcJiMzNDsoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDMgIVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI2NzpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjY4Olx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2OS1cdFx0Z290byBlcnJfaXBfaW50ZXJmYWNlX2Jhcjtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNzItXHQvKiBSZXF1ZXN0IE1FTTggc3BhY2UgKEJhciA1KSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjczOlx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX01FTThfU1BBQ0VfQkFSLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjc0LVx0XHRcdFx0IFwmIzM0O0NhcnJpZXIgTUVNOCBzcGFjZVwmIzM0Oyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNzUtXHRpZiAocmVzKSB7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNzY6XHRcdGRldl9lcnIoXHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYtXHUwMDNlZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjc3LVx0XHRcdFwmIzM0OyhibiAweCVYLCBzbiAweCVYKSBmYWlsZWQgdG8gYWxsb2NhdGUgUENJIHJlc291cmNlIGZvciBCQVIgNSFcJiMzNDssXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNzg6XHRcdFx0dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYtXHUwMDNlYnVzLVx1MDAzZW51bWJlcixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI3OTpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXZmbik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yODAtXHRcdGdvdG8gZXJyX2lvX2lkX2ludF9zcGFjZXNfYmFyO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4My1cdC8qIFJlcXVlc3QgTUVNMTYgc3BhY2UgKEJhciA0KSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjg0Olx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX01FTTE2X1NQQUNFX0JBUixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4NS1cdFx0XHRcdCBcJiMzNDtDYXJyaWVyIE1FTTE2IHNwYWNlXCYjMzQ7KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4Ni1cdGlmIChyZXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI4NzpcdFx0ZGV2X2VycihcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXYsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yODgtXHRcdFx0XCYjMzQ7KGJuIDB4JVgsIHNuIDB4JVgpIGZhaWxlZCB0byBhbGxvY2F0ZSBQQ0kgcmVzb3VyY2UgZm9yIEJBUiA0IVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI4OTpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjkwOlx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI5MS1cdFx0Z290byBlcnJfbWVtOF9zcGFjZV9iYXI7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjkzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjk0Olx0LyogTWFwIGludGVybmFsIHRwY2kyMDAgZHJpdmVyIHVzZXIgc3BhY2UgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI5NTpcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncyA9XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTY6XHRcdGlvcmVtYXAocGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjk3LVx0XHRcdFx0XHQgICBUUENJMjAwX0lQX0lOVEVSRkFDRV9CQVIpLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjk4LVx0XHRcdFRQQ0kyMDBfSUZBQ0VfU0laRSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTk6XHRpZiAoIXRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzAwOlx0XHRkZXZfZXJyKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMwMS1cdFx0XHRcJiMzNDsoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIG1hcCBkcml2ZXIgdXNlciBzcGFjZSFcJiMzNDssXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMDI6XHRcdFx0dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYtXHUwMDNlYnVzLVx1MDAzZW51bWJlcixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwMzpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXZmbik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zMDQtXHRcdHJlcyA9IC1FTk9NRU07XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzA4LVx0LyogSW5pdGlhbGl6ZSBsb2NrIHRoYXQgcHJvdGVjdHMgaW50ZXJmYWNlX3JlZ3MgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwOTpcdHNwaW5fbG9ja19pbml0KFx1MDAyNnRwY2kyMDAtXHUwMDNlcmVnc19sb2NrKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxMC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMxMTpcdGlvaWRpbnRfYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydCh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxMi1cdFx0XHRcdFx0ICBUUENJMjAwX0lPX0lEX0lOVF9TUEFDRVNfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMxMzpcdHRwY2kyMDAtXHUwMDNlbW9kX21lbVtJUEFDS19JT19TUEFDRV0gPSBpb2lkaW50X2Jhc2UgJiM0MzsgVFBDSTIwMF9JT19TUEFDRV9PRkY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMTQ6XHR0cGNpMjAwLVx1MDAzZW1vZF9tZW1bSVBBQ0tfSURfU1BBQ0VdID0gaW9pZGludF9iYXNlICYjNDM7IFRQQ0kyMDBfSURfU1BBQ0VfT0ZGO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE1Olx0dHBjaTIwMC1cdTAwM2Vtb2RfbWVtW0lQQUNLX0lOVF9TUEFDRV0gPVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzE2LVx0XHRpb2lkaW50X2Jhc2UgJiM0MzsgVFBDSTIwMF9JTlRfU1BBQ0VfT0ZGO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE3Olx0dHBjaTIwMC1cdTAwM2Vtb2RfbWVtW0lQQUNLX01FTThfU1BBQ0VdID1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMxODpcdFx0cGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzE5LVx0XHRcdFx0ICAgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMjA6XHR0cGNpMjAwLVx1MDAzZW1vZF9tZW1bSVBBQ0tfTUVNMTZfU1BBQ0VdID1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMyMTpcdFx0cGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzIyLVx0XHRcdFx0ICAgVFBDSTIwMF9NRU0xNl9TUEFDRV9CQVIpO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzMy1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIFRQQ0kyMDBfTkJfU0xPVDsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMzQ6XHRcdHdyaXRldyhzbG90X2N0cmwsIFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncy1cdTAwM2Vjb250cm9sW2ldKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzNS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMzNjpcdHJlcyA9IHJlcXVlc3RfaXJxKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWlycSxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMzNzpcdFx0XHQgIHRwY2kyMDBfaW50ZXJydXB0LCBJUlFGX1NIQVJFRCxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMzODpcdFx0XHQgIEtCVUlMRF9NT0ROQU1FLCAodm9pZCAqKSB0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzOS1cdGlmIChyZXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM0MDpcdFx0ZGV2X2VycihcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXYsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNDEtXHRcdFx0XCYjMzQ7KGJuIDB4JVgsIHNuIDB4JVgpIHVuYWJsZSB0byByZWdpc3RlciBJUlEgIVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM0MjpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzQzOlx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM0NC1cdFx0Z290byBlcnJfaW50ZXJmYWNlX3JlZ3M7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzQ5LWVycl9pbnRlcmZhY2VfcmVnczpcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM1MDpcdHBjaV9pb3VubWFwKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzUxLWVycl9tZW0xNl9zcGFjZV9iYXI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTI6XHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1My1lcnJfbWVtOF9zcGFjZV9iYXI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTQ6XHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNOF9TUEFDRV9CQVIpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzU1LWVycl9pb19pZF9pbnRfc3BhY2VzX2JhcjpcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM1NjpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9JT19JRF9JTlRfU1BBQ0VTX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTctZXJyX2lwX2ludGVyZmFjZV9iYXI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTg6XHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTktZXJyX2Rpc2FibGVfZGV2aWNlOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzYwOlx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2MS1cdHJldHVybiByZXM7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzYzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzY0OnN0YXRpYyBpbnQgdHBjaTIwMF9nZXRfY2xvY2tyYXRlKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2NS17XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjY6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2Ny1cdF9fbGUxNiBfX2lvbWVtICphZGRyO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzY4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzY5Olx0aWYgKCF0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzcwLVx0XHRyZXR1cm4gLUVOT0RFVjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM3MS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM3MjpcdGFkZHIgPSBcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXHUwMDNlY29udHJvbFtkZXYtXHUwMDNlc2xvdF07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzMtXHRyZXR1cm4gKGlvcmVhZDE2KGFkZHIpIFx1MDAyNiBUUENJMjAwX0NMSzMyKSA/IDMyIDogODtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzUtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNzY6c3RhdGljIGludCB0cGNpMjAwX3NldF9jbG9ja3JhdGUoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2LCBpbnQgbWhlcnopXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzcte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mzc4Olx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzktXHRfX2xlMTYgX19pb21lbSAqYWRkcjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4MC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM4MTpcdGlmICghdHBjaTIwMClcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4Mi1cdFx0cmV0dXJuIC1FTk9ERVY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zODMtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozODQ6XHRhZGRyID0gXHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZWNvbnRyb2xbZGV2LVx1MDAzZXNsb3RdO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzg1LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4Ny1cdGNhc2UgODpcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM4ODpcdFx0dHBjaTIwMF9jbGVhcl9tYXNrKHRwY2kyMDAsIGFkZHIsIFRQQ0kyMDBfQ0xLMzIpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzg5LVx0XHRicmVhaztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM5MC1cdGNhc2UgMzI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozOTE6XHRcdHRwY2kyMDBfc2V0X21hc2sodHBjaTIwMCwgYWRkciwgVFBDSTIwMF9DTEszMik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zOTItXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM5OC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM5OTpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X2Vycm9yKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwMC17XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MDE6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwMi1cdF9fbGUxNiBfX2lvbWVtICphZGRyO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwNC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwNTpcdGlmICghdHBjaTIwMClcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwNi1cdFx0cmV0dXJuIC1FTk9ERVY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDctXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MDg6XHRhZGRyID0gXHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZXN0YXR1cztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwOTpcdG1hc2sgPSB0cGNpMjAwX3N0YXR1c19lcnJvcltkZXYtXHUwMDNlc2xvdF07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTAtXHRyZXR1cm4gKGlvcmVhZDE2KGFkZHIpIFx1MDAyNiBtYXNrKSA/IDEgOiAwO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQxMi1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQxMzpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X3RpbWVvdXQoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDE0LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQxNTpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gY2hlY2tfc2xvdChkZXYpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDE2LVx0X19sZTE2IF9faW9tZW0gKmFkZHI7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDE4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDE5Olx0aWYgKCF0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDIwLVx0XHRyZXR1cm4gLUVOT0RFVjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQyMS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyMjpcdGFkZHIgPSBcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXHUwMDNlc3RhdHVzO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDIzOlx0bWFzayA9IHRwY2kyMDBfc3RhdHVzX3RpbWVvdXRbZGV2LVx1MDAzZXNsb3RdO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI0LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQyNy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyODpzdGF0aWMgaW50IHRwY2kyMDBfcmVzZXRfdGltZW91dChzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00Mjkte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDMwOlx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzEtXHRfX2xlMTYgX19pb21lbSAqYWRkcjtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzMtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MzQ6XHRpZiAoIXRwY2kyMDApXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzUtXHRcdHJldHVybiAtRU5PREVWO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDM2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDM3Olx0YWRkciA9IFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncy1cdTAwM2VzdGF0dXM7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0Mzg6XHRtYXNrID0gdHBjaTIwMF9zdGF0dXNfdGltZW91dFtkZXYtXHUwMDNlc2xvdF07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzktXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDQ0OnN0YXRpYyB2b2lkIHRwY2kyMDBfdW5pbnN0YWxsKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ1LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ0NjpcdHRwY2kyMDBfdW5yZWdpc3Rlcih0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ0NzpcdGtmcmVlKHRwY2kyMDAtXHUwMDNlc2xvdHMpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ4LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ0OS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1MDpzdGF0aWMgY29uc3Qgc3RydWN0IGlwYWNrX2J1c19vcHMgdHBjaTIwMF9idXNfb3BzID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUxOlx0LnJlcXVlc3RfaXJxID0gdHBjaTIwMF9yZXF1ZXN0X2lycSxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1MjpcdC5mcmVlX2lycSA9IHRwY2kyMDBfZnJlZV9pcnEsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NTM6XHQuZ2V0X2Nsb2NrcmF0ZSA9IHRwY2kyMDBfZ2V0X2Nsb2NrcmF0ZSxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NDpcdC5zZXRfY2xvY2tyYXRlID0gdHBjaTIwMF9zZXRfY2xvY2tyYXRlLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDU1Olx0LmdldF9lcnJvciAgICAgPSB0cGNpMjAwX2dldF9lcnJvcixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NjpcdC5nZXRfdGltZW91dCAgID0gdHBjaTIwMF9nZXRfdGltZW91dCxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NzpcdC5yZXNldF90aW1lb3V0ID0gdHBjaTIwMF9yZXNldF90aW1lb3V0LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDU4LX07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NTktXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NjA6c3RhdGljIGludCB0cGNpMjAwX2luc3RhbGwoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDApXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjEte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ2NDpcdHRwY2kyMDAtXHUwMDNlc2xvdHMgPSBremFsbG9jX29ianMoc3RydWN0IHRwY2kyMDBfc2xvdCwgVFBDSTIwMF9OQl9TTE9UKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ2NTpcdGlmICh0cGNpMjAwLVx1MDAzZXNsb3RzID09IE5VTEwpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjYtXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDY3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY4Olx0cmVzID0gdHBjaTIwMF9yZWdpc3Rlcih0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2OS1cdGlmIChyZXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ3MDpcdFx0a2ZyZWUodHBjaTIwMC1cdTAwM2VzbG90cyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NzE6XHRcdHRwY2kyMDAtXHUwMDNlc2xvdHMgPSBOVUxMO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDcyLVx0XHRyZXR1cm4gcmVzO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ3NC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ3NTpcdG11dGV4X2luaXQoXHUwMDI2dHBjaTIwMC1cdTAwM2VtdXRleCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzYtXHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0Nzk6c3RhdGljIHZvaWQgdHBjaTIwMF9yZWxlYXNlX2RldmljZShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODAte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ4My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ4NDpzdGF0aWMgaW50IHRwY2kyMDBfY3JlYXRlX2RldmljZShzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCwgaW50IGkpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODUte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5Mi1cdGRldi1cdTAwM2VzbG90ID0gaTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5MzpcdGRldi1cdTAwM2VidXMgPSB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaXBhY2tfYnVzO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDk0Olx0ZGV2LVx1MDAzZXJlbGVhc2UgPSB0cGNpMjAwX3JlbGVhc2VfZGV2aWNlO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDk1LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5Ny1cdFx0ZGV2LVx1MDAzZXJlZ2lvbltzcGFjZV0uc3RhcnQgPVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDk4Olx0XHRcdHRwY2kyMDAtXHUwMDNlbW9kX21lbVtzcGFjZV1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5OTpcdFx0XHQmIzQzOyB0cGNpMjAwX3NwYWNlX2ludGVydmFsW3NwYWNlXSAqIGk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MDA6XHRcdGRldi1cdTAwM2VyZWdpb25bc3BhY2VdLnNpemUgPSB0cGNpMjAwX3NwYWNlX3NpemVbc3BhY2VdO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTAxLVx0fVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxNS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUxNjpzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTE3LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxOS1cdGludCByZXQsIGk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MjA6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyMS1cdHUzMiByZWczMjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyMi1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyMzpcdHRwY2kyMDAgPSBremFsbG9jX29iaihzdHJ1Y3QgdHBjaTIwMF9ib2FyZCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MjQ6XHRpZiAoIXRwY2kyMDApXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01MjUtXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTI2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTI3Olx0dHBjaTIwMC1cdTAwM2VpbmZvID0ga3phbGxvY19vYmooc3RydWN0IHRwY2kyMDBfaW5mb3MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTI4Olx0aWYgKCF0cGNpMjAwLVx1MDAzZWluZm8pIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyOS1cdFx0cmV0ID0gLUVOT01FTTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUzMDpcdFx0Z290byBlcnJfdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUzMS1cdH1cbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDAtXHRcdHJldCA9IC1FQlVTWTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU0MTpcdFx0Z290byBlcnJfdHBjaTIwMF9pbmZvO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTQyLVx0fVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQzOlx0dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzID0gaW9yZW1hcChcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU0NC1cdFx0XHRwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgVFBDSTIwMF9DRkdfTUVNX0JBUiksXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDUtXHRcdFx0cGNpX3Jlc291cmNlX2xlbihwZGV2LCBUUENJMjAwX0NGR19NRU1fQkFSKSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NDY6XHRpZiAoIXRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTQ3LVx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtGYWlsZWQgdG8gbWFwIFBDSSBDb25maWd1cmF0aW9uIE1lbW9yeVwmIzM0Oyk7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTU0LVx0ICogY2Fycmllci4gKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1NTpcdHJlZzMyID0gaW9yZWFkMzIodHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzICYjNDM7IExBUzFfREVTQyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NTYtXHRyZWczMiB8PSAxIFx1MDAzY1x1MDAzYyBMQVNfQklUX0JJR0VORElBTjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1NzpcdGlvd3JpdGUzMihyZWczMiwgdHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzICYjNDM7IExBUzFfREVTQyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NTgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NTk6XHRyZWczMiA9IGlvcmVhZDMyKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncyAmIzQzOyBMQVMyX0RFU0MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYwLVx0cmVnMzIgfD0gMSBcdTAwM2NcdTAwM2MgTEFTX0JJVF9CSUdFTkRJQU47XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjE6XHRpb3dyaXRlMzIocmVnMzIsIHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncyAmIzQzOyBMQVMyX0RFU0MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYyLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYzLVx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjQ6XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiA9IHBkZXY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjUtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjYtXHQvKiByZWdpc3RlciB0aGUgZGV2aWNlIGFuZCBpbml0aWFsaXplIGl0ICovXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Njc6XHRyZXQgPSB0cGNpMjAwX2luc3RhbGwodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjgtXHRpZiAocmV0KSB7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Njk6XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O2Vycm9yIGR1cmluZyB0cGNpMjAwIGluc3RhbGxcXG5cJiMzNDspO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTcwLVx0XHRyZXQgPSAtRU5PREVWO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3NC1cdC8qIFJlZ2lzdGVyIHRoZSBjYXJyaWVyIGluIHRoZSBpbmR1c3RyeSBwYWNrIGJ1cyBkcml2ZXIgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU3NTpcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpcGFja19idXMgPSBpcGFja19idXNfcmVnaXN0ZXIoXHUwMDI2cGRldi1cdTAwM2VkZXYsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NzYtXHRcdFx0XHRcdFx0ICAgICAgVFBDSTIwMF9OQl9TTE9ULFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTc3Olx0XHRcdFx0XHRcdCAgICAgIFx1MDAyNnRwY2kyMDBfYnVzX29wcyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3OC1cdFx0XHRcdFx0XHQgICAgICBUSElTX01PRFVMRSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Nzk6XHRpZiAoIXRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpcGFja19idXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU4MC1cdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldixcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODItXHRcdHJldCA9IC1FRkFVTFQ7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1ODM6XHRcdGdvdG8gZXJyX3RwY2kyMDBfaW5zdGFsbDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU4NC1cdH1cbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODYtXHQvKiBzYXZlIHRoZSBidXMgbnVtYmVyIGdpdmVuIGJ5IGlwYWNrIHRvIGxvZ2dpbmcgcHVycG9zZSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTg3Olx0dHBjaTIwMC1cdTAwM2VudW1iZXIgPSB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaXBhY2tfYnVzLVx1MDAzZWJ1c19ucjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU4ODpcdGRldl9zZXRfZHJ2ZGF0YShcdTAwMjZwZGV2LVx1MDAzZWRldiwgdHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODktXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBUUENJMjAwX05CX1NMT1Q7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTkxOlx0XHR0cGNpMjAwX2NyZWF0ZV9kZXZpY2UodHBjaTIwMCwgaSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTItXHRyZXR1cm4gMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU5My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NDplcnJfdHBjaTIwMF9pbnN0YWxsOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTk1Olx0dHBjaTIwMF91bmluc3RhbGwodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTYtZXJyX2NmZ19yZWdzOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTk3Olx0cGNpX2lvdW5tYXAodHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTgtZXJyX3JlcXVlc3RfcmVnaW9uOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTk5LVx0cGNpX3JlbGVhc2VfcmVnaW9uKHBkZXYsIFRQQ0kyMDBfQ0ZHX01FTV9CQVIpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjAwOmVycl90cGNpMjAwX2luZm86XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDE6XHRrZnJlZSh0cGNpMjAwLVx1MDAzZWluZm8pO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjAyLVx0cGNpX2Rldl9wdXQocGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDM6ZXJyX3RwY2kyMDA6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDQ6XHRrZnJlZSh0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwNS1cdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjA3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjA4OnN0YXRpYyB2b2lkIF9fdHBjaTIwMF9wY2lfcmVtb3ZlKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjA5LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxMDpcdGlwYWNrX2J1c191bnJlZ2lzdGVyKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpcGFja19idXMpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjExOlx0dHBjaTIwMF91bmluc3RhbGwodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTItXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTM6XHRwY2lfaW91bm1hcCh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgdHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYxNC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxNTpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9DRkdfTUVNX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTYtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTc6XHRwY2lfZGV2X3B1dCh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTk6XHRrZnJlZSh0cGNpMjAwLVx1MDAzZWluZm8pO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjIwOlx0a2ZyZWUodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjEtfVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjIyLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjIzOnN0YXRpYyB2b2lkIHRwY2kyMDBfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjI0LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYyNTpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gcGNpX2dldF9kcnZkYXRhKGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjYtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2Mjc6XHRfX3RwY2kyMDBfcGNpX3JlbW92ZSh0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYyOC19XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjktXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MzA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHRwY2kyMDBfaWR0YWJsZVtdID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjMxLVx0eyBUUENJMjAwX1ZFTkRPUl9JRCwgVFBDSTIwMF9ERVZJQ0VfSUQsIFRQQ0kyMDBfU1VCVkVORE9SX0lELFxuLS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjU3OAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgdGhlIENvbmZpZ3VyYXRpb24gZm9yIFRQQ0kyMDAgQm9hcmQgU3VwcG9ydCoqCgpSaWdodCwgYENPTkZJR19CT0FSRF9UUENJMjAwYC4uLiBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIHRoZSBpLlBhY2sgY29uZmlndXJhdGlvbiBmaWxlcy4gVGhhdCB3b3VsZCBiZSB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBkaWdnaW5nIGZvciB0aGUgYm9hcmQtc3BlY2lmaWMgb3B0aW9ucy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGBkcml2ZXJzL2lwYWNrL0tjb25maWdgIGFuZCB0aGVuIGFsc28gZGl2ZSBpbnRvIGBkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWdgLiBUaG9zZSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGVpdGhlciBhIGRpcmVjdCBkZWZpbml0aW9uIHJlbGF0ZWQgdG8gdGhlIFRQQ0kyMDAgb3IsIG1vcmUgbGlrZWx5LCBzb21lIGNvbmRpdGlvbmFsIGxvZ2ljIGJhc2VkIG9uIGEgc2ltaWxhciBvciByZWxhdGVkIGkuUGFjayBjYXJyaWVyIGJvYXJkIHRoYXQmIzM5O3MgYWxyZWFkeSBzdXBwb3J0ZWQuIEZyb20gdGhlcmUsIEkmIzM5O2xsIGxpa2VseSBuZWVkIHRvIHRyYWNlIGRlcGVuZGVuY2llcyBhbmQgdW5kZXJzdGFuZCBob3cgdGhlIGkuUGFjayBmcmFtZXdvcmsgaW50ZWdyYXRlcyB0aGUgYm9hcmQmIzM5O3MgZnVuY3Rpb25hbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJPQVJEX1RQQ0kyMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZzoyOmNvbmZpZyBCT0FSRF9UUENJMjAwXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1N1cHBvcnQgZm9yIHRoZSBURVdTIFRQQ0ktMjAwIEluZHVzdHJ5UGFjayBjYXJyaWVyIGJvYXJkXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2OTI4CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBzbmlwcGV0cywgYXMgaWYgSSB3ZXJlIHByb2Nlc3NpbmcgdGhlbSBteXNlbGY6CgoqKktjb25maWcgRGl2ZSBCZWdpbnMqKgoKQWxyaWdodCwgdGhlIGZpcnN0IGNsdWUgaXMgYENPTkZJR19CT0FSRF9UUENJMjAwYC4gVGhhdCB0ZWxscyBtZSB3ZSYjMzk7cmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIGJvYXJkIGNvbmZpZ3VyYXRpb24g4oCTIHRoZSAmIzM0O1RQQ0kyMDAsJiMzNDsgYXBwYXJlbnRseS4gVGhpcyBpcyB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBlbnRyeSBrZXkgdG8gdGhpcyBwYXJ0aWN1bGFyIHN1YnN5c3RlbSBJJiMzOTttIHRyeWluZyB0byB1bmRlcnN0YW5kLiBJdCYjMzk7cyB0aGUgZ2F0ZSwgdGhlIGZpbHRlciwgdGhlIGRlZmluaW5nIHZhcmlhYmxlLgoKTm93LCB3aGVyZSBkbyB3ZSBnbyBmcm9tIGhlcmU/IFRoZSBzZWNvbmQgcGllY2Ugb2YgdGhlIHB1enpsZSBwb2ludHMgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgLiBCaW5nbyEgR2l2ZW4gdGhlIGZpbGUgcGF0aCwgSSBpbW1lZGlhdGVseSBrbm93IHdlJiMzOTtyZSBsb29raW5nIGF0IHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIE1lbGxhbm94IEV0aGVybmV0IGRyaXZlcnMsIHNwZWNpZmljYWxseSB0aGUgYG1seHN3YCBmYW1pbHksIGEgY29yZSBkcml2ZXIgc2V0IGZvciBNZWxsYW5veCBuZXR3b3JraW5nIHNpbGljb24uIFRoZSBgS2NvbmZpZ2AgZmlsZXMgYXJlIGhvdyB3ZSBvcmNoZXN0cmF0ZSB3aGF0IGJ1aWxkcyBpbnRvIHRoZSBrZXJuZWwuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIG9mIHRoZSBidWlsZCBzeXN0ZW0gZ2V0cyBjb250cm9sbGVkIGJ5IHVzLiBUaGlzIGlzIHRoZSBwbGFjZSB0byBzdGFydCB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoaXMgYm9hcmQgY29uZmlndXJhdGlvbiwgYW5kIHRoZSBNZWxsYW5veCBuZXR3b3JrIHN0YWNrLiBJIGFudGljaXBhdGUgdGhpcyBmaWxlIHdpbGwgdGVsbCBtZSBob3cgYENPTkZJR19CT0FSRF9UUENJMjAwYCBpbmZsdWVuY2VzIHRoZSBpbmNsdXNpb24sIGV4Y2x1c2lvbiwgb3IgY29uZmlndXJhdGlvbiBvZiB2YXJpb3VzIE1lbGxhbm94IGRyaXZlciBmZWF0dXJlcy4gSSYjMzk7bSBnb2luZyB0byBmaW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhpcyAmIzM0O1RQQ0kyMDAmIzM0OyBib2FyZCBhbmQgdGhlIHNwZWNpZmljcyBvZiB0aGUgTWVsbGFub3ggZHJpdmVycy4gVGhlIHBpZWNlcyBhcmUgY29taW5nIHRvZ2V0aGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYU1dfUENJJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjMzOmNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NDQxCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczoKCioqRGVsdmluZyBpbnRvIENvbmZpZ3VyYXRpb24gYW5kIERyaXZlciBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGhlIGZvY3VzIHNlZW1zIHRvIGJlIG9uIGBDT05GSUdfTUxYU1dfUENJYC4gVGhhdCYjMzk7cyB0aGUga2V5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wbGljYXRpb25zLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIHJlbGF0ZWQgZGVwZW5kZW5jaWVzLiBCYXNlZCBvbiB0aGUgbmFtZSBJJiMzOTttIHByZXN1bWluZyB0aGlzIGlzIHJlbGF0ZWQgdG8gTWVsbGFub3ggU3dpdGNoIFBDSSBkcml2ZXJzLiBTbywgd2hlcmUgd291bGQgSSBmaW5kIHJlbGF0ZWQgY29kZT8KCkkgc2hvdWxkIGxvb2sgaW50byBgZHJpdmVycy9zY3NpL0tjb25maWdgLiBJdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiB0aGUgU0NTSSBjb250ZXh0LiBJJiMzOTtsbCBuZWVkIHRvIHNlZSBpZiBpdCBwcm92aWRlcyBhbnkgY2x1ZXMgYWJvdXQgaG93IGBDT05GSUdfTUxYU1dfUENJYCBpcyBjb25maWd1cmVkIG9yIGlmIGl0IGluZmx1ZW5jZXMsIG9yIGlzIGluZmx1ZW5jZWQsIGJ5IG90aGVyIFNDU0ktcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gSSYjMzk7bSB0aGlua2luZyBhYm91dCByZWxhdGlvbnNoaXBzIHdpdGggcmVsYXRlZCBoYXJkd2FyZSBkcml2ZXJzIGxpa2Ugc3RvcmFnZSBhbmQgbmV0d29ya2luZy4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgcmVsYXRpb25zaGlwcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNDU0lfTlNQMzImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Njc2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9LY29uZmlnPTExOTE9Y29uZmlnIFNDU0lfQU01M0M5NzRcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMjA2LVxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwNzpjb25maWcgU0NTSV9OU1AzMlxuZHJpdmVycy9zY3NpL0tjb25maWctMTIwOC1cdHRyaXN0YXRlIFwmIzM0O1dvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3ODgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMzQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBDSSBEcml2ZXIgVnVsbmVyYWJpbGl0eSBGaXgqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uOiBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCByZWxhdGVkIHRvIGBDT05GSUdfU0NTSV9OU1AzMmAsIGJ1dCB0aGUgY29yZSBjaGFuZ2UgaXMgYWN0dWFsbHkgaW4gYGRyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY2AuIFRoaXMgaXMgYmlnLCBpdCB0b3VjaGVzICphbGwqIFBDSSBkcml2ZXJzLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIHRob3JvdWdobHkuCgpUaGUgZ2lzdCBpcyB0aGF0IGBwY2lfbWF0Y2hfZGV2aWNlYCB3YXMgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhIGBwY2lfZGV2aWNlX2lkYCwgYnV0IGl0IGxvb2tzIGxpa2UgdGhlcmUmIzM5O3MgYSBzZXJpb3VzIGJ1Zy4gSXQgd2FzbiYjMzk7dCByZXR1cm5pbmcgYSBwb2ludGVyIHRvIGEgKnN0YWNrKi1hbGxvY2F0ZWQgc3RydWN0dXJlLCBidXQgdG8gdGhlIGRyaXZlciYjMzk7cyBJRCB0YWJsZSBvciBhIGR5bmFtaWMgSUQgc3RydWN0dXJlLiBXYWl0LCBJIGhhdmUgdG8gZ28gdGhyb3VnaCB0aGUgY29kZSBhZ2Fpbi4KCk9rYXksIEkgc2VlIHRoZSBwcm9ibGVtLiBJdCB1c2VkIHRvIHJldHVybiBgJmFtcDtkeW5pZC0mZ3Q7aWRgLCBhbmQgYGR5bmlkYCBjb3VsZCBiZSBmcmVlZC4gQm9vbSEgVGhhdCBtZWFucyBhIGR5bmFtaWMgSUQgY291bGQgYmUgcmVtb3ZlZCwgdGhlIGBkeW5pZGAgZnJlZWQsIGFuZCBzdWRkZW5seSB3ZSBoYXZlIGEgZGFuZ2xpbmcgcG9pbnRlciByZXR1cm5lZCBmcm9tIGBwY2lfbWF0Y2hfZGV2aWNlYC4gQW5kIGV2ZW4gd29yc2UsIHRoZSBzcGluIGxvY2sgb24gYGRydi0mZ3Q7ZHluaWRzLmxvY2tgIHdhc24mIzM5O3QgaGVsZCB3aGlsZSB0aGUgcG9pbnRlciB3YXMgYmVpbmcgdXNlZC4KClRoZSByZXR1cm5lZCBwb2ludGVyIGlzIHRoZW4gcGFzc2VkIHRvIGBwcm9iZSgpYCwgd2hpY2ggY2FuIHNsZWVwIGFuZCBwb3RlbnRpYWxseSB0YWtlIGEgKmxvbmcqIHRpbWUuIFRoaXMgbWVhbnMgdGhlIGRyaXZlciBjb3VsZCBiZSB1c2luZyBhIGRhbmdsaW5nIHBvaW50ZXIgdG8gYW4gYGlkYCB0aGF0IHdhcyByZW1vdmVkIGNvbmN1cnJlbnRseSwgYSBjbGFzc2ljIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvLiBUaGlzIGlzIGEgdmVyeSBuYXN0eSByYWNlIGNvbmRpdGlvbi4KClRoZSBmaXg/IFRoZSBwYXRjaCBub3cgY29waWVzIHRoZSBgcGNpX2RldmljZV9pZGAgaW50byBhIHN0cnVjdHVyZSBwcm92aWRlZCBieSB0aGUgY2FsbGVyIChzcGVjaWZpY2FsbHksIHRoZSBzdGFjayBvZiBgX19wY2lfZGV2aWNlX3Byb2JlYCkuIEdvb2QsIGl0JiMzOTtzIHZhbGlkIGZvciB0aGUgZHVyYXRpb24gb2YgYHByb2JlKClgLiBCdXQgbm93IEkmIzM5O20gdGhpbmtpbmcsIHdoYXQgYWJvdXQgZHJpdmVycyB0aGF0IHdlcmUgKnNhdmluZyogdGhpcyBwb2ludGVyPwoKVGhhdCYjMzk7cyB0aGUgbmV4dCBpc3N1ZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIG9mIGB0cGNpMjAwYCwgYG1seHN3YCwgYW5kIHRoZSBgbnNwMzJgIGRyaXZlci4gTG9va3MgbGlrZSB0aGUgb2xkIGNvZGUgd2FzIGRpcmVjdGx5IHNhdmluZyB0aGUgbm93LXN0YWxlIHBvaW50ZXIuIGBhdGFfZ2VuZXJpY2AgaXMgYWxzbyBvbiB0aGUgbGlzdC4gQWxsIG9mIHRoZW0gc3RvcmVkIHRoZSBwb2ludGVyIGludG8gYSBwcml2YXRlIGRhdGEgc3RydWN0dXJlLiBOb3csIGFmdGVyIHRoZSBwYXRjaCwgaWYgdGhleSBhY2Nlc3MgdGhhdCBzYXZlZCBwb2ludGVyLCB0aGV5IGFyZSByZWFkaW5nIGZyb20gYW4gaW52YWxpZCBzdGFjayBsb2NhdGlvbi4gVGhpcyBtZWFucyBhIG5ldyBVQUYuCgpTbywgdGhlIHBhdGNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgdXNlLWFmdGVyLWZyZWUgaXNzdWUuIEl04oCZcyBpbXBvcnRhbnQgdG8gc2VlIGlmIGl0IGZpeGVzIHRoZSBvcmlnaW5hbCBpc3N1ZSB3aXRoIHRoZSBkeW5hbWljIElEcyBhbmQgYWxzbyB0aGUgbmV3IG9uZSBpbnRyb2R1Y2VkIGJ5IHRoZSBzdGFjayBhbGxvY2F0aW9uLgoKU28sIHRoaXMgcGF0Y2ggaXNuJiMzOTt0IGp1c3QgYSBiYW5kLWFpZDsgaXQmIzM5O3MgYSBjcml0aWNhbCBmaXguIE5vdywgdGhlIG5leHQgc3RlcCBpcyB0byBmdXp6IHRvIG1ha2Ugc3VyZSB0aGlzIGZpeCBkb2VzbiYjMzk7dCBicmVhayBhbnl0aGluZy4gV2UgbmVlZCB0byBmb2N1cyBvbiBwb3RlbnRpYWwgYXJlYXMgb2YgY29uY2Vybi4gV2Ugc2hvdWxkIGxvb2sgYXQgYHBjaV9hZGRfZHluaWRgLCBgbmV3X2lkX3N0b3JlYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgZG9fcGNpX21hdGNoX2lkYCwgYW5kIGBkb19wY2lfYWRkX2R5bmlkYC4gQW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIG1vZGlmaWVkIGRyaXZlcnM6IGBhdGFfZ2VuZXJpY19pbml0X29uZWAsIGB0cGNpMjAwX3BjaV9wcm9iZWAsIGBtbHhzd19wY2lfcHJvYmVgLCBgbnNwMzJfcHJvYmVgLgoKTGV0JiMzOTtzIHZlcmlmeS4gYHBjaV9hZGRfZHluaWRgIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBzeXNmcy4gYG5ld19pZF9zdG9yZWAsIGlzIHRoZSBzeXNmcyBzdG9yZSBmdW5jdGlvbiBmb3IgYG5ld19pZGAuIEFuZCBgcGNpX21hdGNoX2RldmljZWAgaXMgdXNlZCBkdXJpbmcgUENJIGRldmljZSBwcm9iaW5nLgoKV2UmIzM5O2xsIG5lZWQgdG8gZW5hYmxlIGEgZmV3IGNvbmZpZ3VyYXRpb25zIHRvIHJlcHJvZHVjZSB0aGlzOiBgQVRBX0dFTkVSSUNgLCBgQk9BUkRfVFBDSTIwMGAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgLiBXYWl0LCBgTUxYU1dfUENJYCBkZXBlbmRzIG9uIGBNTFhTV19DT1JFYCwgc28gSSYjMzk7bGwgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgIHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFhTV19QQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0yNT1jb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MzM6Y29uZmlnIE1MWFNXX1BDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNC1cdHRyaXN0YXRlIFwmIzM0O1BDSSBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxMjEKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRlcGVuZGVuY3kgRGVlcCBEaXZlIGZvciBNTFhTV19QQ0kqKgoKT2theSwgdGltZSB0byBnZXQgZ3JhbnVsYXIuIEJlZm9yZSBJIHByb2NlZWQsIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlc2UgZGVwZW5kZW5jaWVzIGZvciBgTUxYU1dfUENJYC4gSSBuZWVkIHRvIGVuc3VyZSBhIHN0YWJsZSBhbmQgcHJlZGljdGFibGUgZW52aXJvbm1lbnQuIEkmIzM5O20gdGhpbmtpbmcgYmV5b25kIGp1c3QgdGhlIG9idmlvdXMgaW5jbHVkZXMgYW5kIGxpYnJhcmllcy4gSSBuZWVkIHRvIGFjY291bnQgZm9yIHNwZWNpZmljIHZlcnNpb25zIG9mIGtlcm5lbCBtb2R1bGVzLCBmaXJtd2FyZSwgYW5kIGV2ZW4gcG90ZW50aWFsIGhhcmR3YXJlIHJldmlzaW9ucyB0aGF0IHRoaXMgbW9kdWxlIGludGVyYWN0cyB3aXRoLiBBcmUgdGhlcmUgYW55IGhpZGRlbiwgaW5kaXJlY3QgZGVwZW5kZW5jaWVzIGx1cmtpbmc/IEkgc2hvdWxkIGNoZWNrIG5vdCBqdXN0IHRoZSBjb2RlIGl0c2VsZiBidXQgYWxzbyBsb29rIGludG8gYnVpbGQgc2NyaXB0cyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgYW55dGhpbmcgdGhhdCYjMzk7cyBpbXBsaWNpdGx5IHJlcXVpcmVkLCBhbmQgd2hpY2ggbWlnaHQgbGVhZCB0byBidWlsZCBmYWlsdXJlcywgcnVudGltZSBjb25mbGljdHMsIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIFRoaXMgaXMgY3J1Y2lhbCBmb3Igc2VhbWxlc3MgaW50ZWdyYXRpb24sIGRlYnVnZ2luZywgYW5kIGF2b2lkaW5nIHRoZSBkcmVhZGVkICYjMzQ7aXQgd29ya3Mgb24gbXkgbWFjaGluZSYjMzQ7IHN5bmRyb21lIHdoZW4gbW92aW5nIHRoaXMgb3ZlciB0byBhIHRhcmdldCBzeXN0ZW0uIFRpbWUgdG8gc3RhcnQgZGlnZ2luZy4uLiBJIG5lZWQgdG8gY29uc2lkZXIgYm90aCBjb21waWxlLXRpbWUgYW5kIHJ1bi10aW1lIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0xNz1jb25maWcgTUxYU1dfQ09SRV9IV01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7SFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxOTpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgSFdNT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MjA6XHRkZXBlbmRzIG9uICEoTUxYU1dfQ09SRT15IFx1MDAyNlx1MDAyNiBIV01PTj1tKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yMS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cdGJvb2wgXCYjMzQ7VGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Mjc6XHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXHUwMDI2XHUwMDI2IFRIRVJNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjgtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTMzPWNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjM1Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT01FTSBcdTAwMjZcdTAwMjYgTUxYU1dfQ09SRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNi1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTQ0PWNvbmZpZyBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtJMkMgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjQ2Olx0ZGVwZW5kcyBvbiBJMkMgXHUwMDI2XHUwMDI2IE1MWFNXX0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDctXHRkZWZhdWx0IG1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTU0PWNvbmZpZyBNTFhTV19TUEVDVFJVTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBTcGVjdHJ1bSBmYW1pbHkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NjpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgTUxYU1dfUENJIFx1MDAyNlx1MDAyNiBORVRfU1dJVENIREVWIFx1MDAyNlx1MDAyNiBWTEFOXzgwMjFRXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU3Olx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1ODpcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU5Olx0ZGVwZW5kcyBvbiBORVRfSVBHUkUgfHwgTkVUX0lQR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIElQVjZfR1JFIHx8IElQVjZfR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjE6XHRkZXBlbmRzIG9uIFZYTEFOIHx8IFZYTEFOPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTYzLVx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz03NT1jb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjc3Olx0ZGVwZW5kcyBvbiBNTFhTV19TUEVDVFJVTSBcdTAwMjZcdTAwMjYgRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc4LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz04Mz1jb25maWcgTUxYU1dfTUlOSU1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04NC1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBtaW5pbWFsIEkyQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjg1Olx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFx1MDAyNlx1MDAyNiBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODYtXHRkZWZhdWx0IG1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE1MjQKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MgcmVnYXJkaW5nIHRoZXNlIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnM6CgoqKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llczogTUxYU1dfUENJIGFuZCBNTFhTV19DT1JFKioKClJpZ2h0LCBzbyBJIHNlZSB0aGF0IGBNTFhTV19QQ0lgIGhhcyBhIGRlcGVuZGVuY3kgb24gYE1MWFNXX0NPUkVgLiBNYWtlcyBzZW5zZSwgdGhlIFBDSSBkcml2ZXIgbGlrZWx5IGJ1aWxkcyBvbiB0aGUgY29yZSBNZWxsYW5veCBzd2l0Y2ggZnVuY3Rpb25hbGl0eS4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gbWFrZSBzdXJlIGJvdGggYXJlIGVuYWJsZWQgdG8gZ2V0IHRoZSBQQ0kgZHJpdmVyIHdvcmtpbmcuIFNvLCBJIHNob3VsZCBlbmFibGUgYm90aCBgTUxYU1dfQ09SRWAgYW5kIGBNTFhTV19QQ0lgLiBIb2xkIG9uIGEgc2Vjb25kLCBJIHJlY2FsbCB0aGF0IGBNTFhTV19DT1JFYCBpcyBhIHRyaXN0YXRlIOKAkyBpdCBjYW4gYmUgYnVpbHQgYXMgYSBtb2R1bGUuIFRoYXQgY2hhbmdlcyB0aGluZ3MgYSBiaXQuIExldCYjMzk7cyBtYWtlIHN1cmUgSSYjMzk7bSBjb25maWd1cmluZyBpdCBjb3JyZWN0bHksIHByb2JhYmx5IGFzICYjMzk7eSYjMzk7IGlmIGBNTFhTV19QQ0lgIGlzIGFsc28gJiMzOTt5JiMzOTsuIFRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24gZGV0YWlscywgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgIHRvIGNoZWNrLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcgY3J1Y2lhbCBhYm91dCB0aGUgZGVwZW5kZW5jaWVzIG9yIGRlZmF1bHQgYmVoYXZpb3JzIG9mIGBNTFhTV19DT1JFYCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYU1dfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2OmNvbmZpZyBNTFhTV19DT1JFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxNzpjb25maWcgTUxYU1dfQ09SRV9IV01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7SFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjI1OmNvbmZpZyBNTFhTV19DT1JFX1RIRVJNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjYtXHRib29sIFwmIzM0O1RoZXJtYWwgem9uZSBzdXBwb3J0IGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMTY5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogOTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIHJlZ2FyZGluZyB0aGVzZSBrZXJuZWwgY29uZmlndXJhdGlvbnMuCgoqKktlcm5lbCBDb25maWd1cmF0aW9uIERlZXAgRGl2ZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCB0aGVzZSBkcml2ZXJzIGVuYWJsZWQuIE15IGluaXRpYWwgcGxhbiBpbnZvbHZlcyBlbmFibGluZyBhIHNwZWNpZmljIHNldDogYEFUQV9HRU5FUklDYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgLiBUaGF0IHNob3VsZCBnZXQgdXMgd2hlcmUgd2Ugd2FudCB0byBiZS4KCldhaXQgYSBzZWNvbmQsIGEgZGVwZW5kZW5jeSBwb3BwZWQgdXAgaW4gbXkgaGVhZC4gYFNDU0lfTlNQMzJgLi4uIHJpZ2h0LCB0aGF0IG9uZSByZWxpZXMgb24gdGhlIGBTQ1NJYCBtb2R1bGUuIEdvdHRhIG1ha2Ugc3VyZSBgU0NTSWAgaXMgZW5hYmxlZCB0b28sIGJ1dCBiZWZvcmUgSSBhdXRvbWF0aWNhbGx5IGFzc3VtZSwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IGRlcGVuZGVuY3kgdG8gYmUgMTAwJSBzdXJlLiBCZXN0IHByYWN0aWNlOiBJJiMzOTtsbCBqdW1wIGludG8gdGhlIGBkcml2ZXJzL3Njc2kvS2NvbmZpZ2AgZmlsZSBhbmQgdmVyaWZ5IHRoZSBkZXBlbmRlbmN5IGZvciBgU0NTSV9OU1AzMmAgYmVmb3JlIEkgbW92ZSBvbi4gTm8gcG9pbnQgaW4gY2hhc2luZyBzcHVyaW91cyBidWlsZCBlcnJvcnMgbGF0ZXIhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTQ1NJX05TUDMyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL0tjb25maWc9MTE5MT1jb25maWcgU0NTSV9BTTUzQzk3NFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDYtXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMjA3OmNvbmZpZyBTQ1NJX05TUDMyXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMjA4LVx0dHJpc3RhdGUgXCYjMzQ7V29ya2JpdCBOaW5qYVNDU0ktMzJCaS9VREUgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjYwNQoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipTQ1NJX05TUDMyIERlcGVuZGVuY3kgRGVlcCBEaXZlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHRha2UgYSBoYXJkIGxvb2sgYXQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBgU0NTSV9OU1AzMmAgbW9kdWxlLiBJdCYjMzk7cyB0aW1lIHRvIG1hcCBvdXQgZXZlcnkgc2luZ2xlIHBpZWNlIG9mIHRoZSBwdXp6bGUuIEkmIzM5O20gZ29pbmcgdG8gY29uc2lkZXIgaXQgZnJvbSBhIGRlc2lnbiBhbmQgcGVyZm9ybWFuY2UgcG9pbnQgb2Ygdmlldy4KCkkmIzM5O20gc3RhcnRpbmcgd2l0aCBhIG1lbnRhbCBjaGVja2xpc3Q6IFdoYXQgZXh0ZXJuYWwgbGlicmFyaWVzIGRvZXMgaXQgbGluayB0bz8gQXJlIHRoZXJlIGFueSBsb3dlci1sZXZlbCBkcml2ZXJzIGl0IHJlbGllcyBvbj8gV2hhdCBhYm91dCB0aGUga2VybmVsIGludGVyZmFjZXM/IEkgbmVlZCB0byBiZSBzdXJlIEkmIzM5O3ZlIGlkZW50aWZpZWQgZXZlcnkgcG90ZW50aWFsIHBvaW50IG9mIGZhaWx1cmUgYW5kIGJvdHRsZW5lY2suIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgZnVuY3Rpb25hbGl0eTsgaXQmIzM5O3MgYWJvdXQgc3RhYmlsaXR5IGFuZCBzY2FsYWJpbGl0eS4gV2UmIzM5O3JlIHRhbGtpbmcgcGVyZm9ybWFuY2UgcHJvZmlsaW5nIHRvby4KCkkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBvZiBhbnkgY2hhbmdlcyB0byB0aG9zZSBkZXBlbmRlbmNpZXMsIHRvby4gV2hhdCBoYXBwZW5zIGlmIGEgbGlua2VkIGxpYnJhcnkgZ2V0cyB1cGRhdGVkPyBXaWxsIGl0IHJlcXVpcmUgYSByZWJ1aWxkPyBXaWxsIHRoYXQgcmVidWlsZCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgbmV3IGJ1Z3M/IEFyZSB0aGVyZSBzcGVjaWZpYyB2ZXJzaW9ucyB0aGF0IGFyZSBrbm93biB0byB3b3JrLCBhbmQgb3RoZXJzIHRoYXQgd2Ugc2hvdWxkIGF2b2lkPyBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIHNvIEkgbmVlZCB0byB0cmFjayB2ZXJzaW9uIGluZm9ybWF0aW9uIG9uIGV2ZXJ5IHNpbmdsZSBkZXBlbmRlbmN5LgoKRnVydGhlcm1vcmUsIEkgaGF2ZSB0byB0aGluayBhYm91dCBob3cgdGhpcyBtb2R1bGUgaXMgdXNlZC4gRG9lcyBpdCBoYXZlIGFueSBjaXJjdWxhciBkZXBlbmRlbmNpZXM/IERvZXMgaXQgaW50ZXJhY3Qgd2l0aCBhbnkgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBpbiBhIHdheSB0aGF0IGNvdWxkIGNhdXNlIGNvbnRlbnRpb24gb3IgZGVhZGxvY2s/IEkmIzM5O2xsIHByb2JhYmx5IG5lZWQgdG8gdmlzdWFsaXplIHRoaXMgYXQgc29tZSBwb2ludC4gVU1MIGRpYWdyYW1zPyBEZXBlbmRlbmN5IGdyYXBocz8gSXQmIzM5O3MganVzdCBhIGd1dCBmZWVsaW5nIHRoYXQgdGhpcyBtb2R1bGUgaXMgaW1wb3J0YW50LCBhbmQgSSBuZWVkIHRvIGRvY3VtZW50IHRoZSBoZWNrIG91dCBvZiBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MjkgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ9Y29uZmlnIFNDU0lfTU9EXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWctNy1cdGRlZmF1bHQgbSBpZiBTQ1NJPW1cbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg6XHRkZXBlbmRzIG9uIEJMT0NLXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05LVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA9Y29uZmlnIFJBSURfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMi1cdGRlZmF1bHQgblxuZHJpdmVycy9zY3NpL0tjb25maWc6MTM6XHRkZXBlbmRzIG9uIEJMT0NLXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNDpcdGRlcGVuZHMgb24gU0NTSV9NT0RcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE1LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTIxPWNvbmZpZyBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMi1cdHRyaXN0YXRlIFwmIzM0O1NDU0kgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIzOlx0ZGVwZW5kcyBvbiBCTE9DS1xuZHJpdmVycy9zY3NpL0tjb25maWctMjQtXHRzZWxlY3QgU0NTSV9ETUEgaWYgSEFTX0RNQVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU0PWNvbmZpZyBTQ1NJX05FVExJTktcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01Ni1cdGRlZmF1bHQgblxuZHJpdmVycy9zY3NpL0tjb25maWc6NTc6XHRkZXBlbmRzIG9uIE5FVFxuZHJpdmVycy9zY3NpL0tjb25maWctNTgtXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01OT1jb25maWcgU0NTSV9QUk9DX0ZTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MC1cdGJvb2wgXCYjMzQ7bGVnYWN5IC9wcm9jL3Njc2kvIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxOlx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQUk9DX0ZTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02Mi1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcwPWNvbmZpZyBTQ1NJX0xJQl9LVU5JVF9URVNUXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBTQ1NJIE1pZCBMYXllciYjMzk7cyBzY3NpX2xpYlwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3MjpcdGRlcGVuZHMgb24gS1VOSVRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczLVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03OT1jb21tZW50IFwmIzM0O1NDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4MDpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctODEtXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04Mj1jb25maWcgQkxLX0RFVl9TRFxuZHJpdmVycy9zY3NpL0tjb25maWctODMtXHR0cmlzdGF0ZSBcJiMzNDtTQ1NJIGRpc2sgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6ODQ6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg1LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwMz1jb25maWcgQ0hSX0RFVl9TVFxuZHJpdmVycy9zY3NpL0tjb25maWctMTA0LVx0dHJpc3RhdGUgXCYjMzQ7U0NTSSB0YXBlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwNTpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTA2LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNj1jb25maWcgQkxLX0RFVl9TUlxuZHJpdmVycy9zY3NpL0tjb25maWctMTE3LVx0dHJpc3RhdGUgXCYjMzQ7U0NTSSBDRFJPTSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTg6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IEJMS19ERVZcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExOS1cdHNlbGVjdCBDRFJPTVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEzMT1jb25maWcgQ0hSX0RFVl9TR1xuZHJpdmVycy9zY3NpL0tjb25maWctMTMyLVx0dHJpc3RhdGUgXCYjMzQ7U0NTSSBnZW5lcmljIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEzMzpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTM0LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE1Nj1jb25maWcgQkxLX0RFVl9CU0dcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE1Ny1cdGJvb2wgXCYjMzQ7L2Rldi9ic2cgc3VwcG9ydCAoU0cgdjQpXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNTg6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE1OS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE2OD1jb25maWcgQ0hSX0RFVl9TQ0hcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE2OS1cdHRyaXN0YXRlIFwmIzM0O1NDU0kgbWVkaWEgY2hhbmdlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNzA6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE3MS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xODU9Y29uZmlnIFNDU0lfRU5DTE9TVVJFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xODYtXHR0cmlzdGF0ZSBcJiMzNDtTQ1NJIEVuY2xvc3VyZSBTdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxODc6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IEVOQ0xPU1VSRV9TRVJWSUNFU1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTg4Olx0ZGVwZW5kcyBvbiBtIHx8IFNDU0lfU0FTX0FUVFJTICE9IG1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE4OS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xOTU9Y29uZmlnIFNDU0lfQ09OU1RBTlRTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xOTYtXHRib29sIFwmIzM0O1ZlcmJvc2UgU0NTSSBlcnJvciByZXBvcnRpbmcgKGtlcm5lbCBzaXplICYjNDM7PSAzNkspXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxOTc6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE5OC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yMDM9Y29uZmlnIFNDU0lfTE9HR0lOR1xuZHJpdmVycy9zY3NpL0tjb25maWctMjA0LVx0Ym9vbCBcJiMzNDtTQ1NJIGxvZ2dpbmcgZmFjaWxpdHlcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIwNTpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMjA2LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTIyOT1jb25maWcgU0NTSV9TQ0FOX0FTWU5DXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0FzeW5jaHJvbm91cyBTQ1NJIHNjYW5uaW5nXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyMzE6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTIzMi1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDM9Y29uZmlnIFNDU0lfUFJPVE9fVEVTVFxuZHJpdmVycy9zY3NpL0tjb25maWctMjQ0LVx0dHJpc3RhdGUgXCYjMzQ7c2NzaV9wcm90by5oIHVuaXQgdGVzdHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuZHJpdmVycy9zY3NpL0tjb25maWc6MjQ1Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBLVU5JVFxuZHJpdmVycy9zY3NpL0tjb25maWctMjQ2LVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDg9bWVudSBcJiMzNDtTQ1NJIFRyYW5zcG9ydHNcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI0OTpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMjUwLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MjUxPWNvbmZpZyBTQ1NJX1NQSV9BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWctMjUyLVx0dHJpc3RhdGUgXCYjMzQ7UGFyYWxsZWwgU0NTSSAoU1BJKSBUcmFuc3BvcnQgQXR0cmlidXRlc1wmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MjUzOlx0ZGVwZW5kcyBvbiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNTQtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MjU4PWNvbmZpZyBTQ1NJX0ZDX0FUVFJTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNTktXHR0cmlzdGF0ZSBcJiMzNDtGaWJlckNoYW5uZWwgVHJhbnNwb3J0IEF0dHJpYnV0ZXNcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI2MDpcdGRlcGVuZHMgb24gU0NTSSBcdTAwMjZcdTAwMjYgTkVUXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNjEtXHRzZWxlY3QgQkxLX0RFVl9CU0dMSUJcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNjg9Y29uZmlnIFNDU0lfSVNDU0lfQVRUUlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI2OS1cdHRyaXN0YXRlIFwmIzM0O2lTQ1NJIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzA6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IE5FVFxuZHJpdmVycy9zY3NpL0tjb25maWctMjcxLVx0c2VsZWN0IEJMS19ERVZfQlNHTElCXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjc3PWNvbmZpZyBTQ1NJX1NBU19BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWctMjc4LVx0dHJpc3RhdGUgXCYjMzQ7U0FTIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzk6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI4MC1cdHNlbGVjdCBCTEtfREVWX0JTR0xJQlxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTI4Nz1jb25maWcgU0NTSV9TUlBfQVRUUlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI4OC1cdHRyaXN0YXRlIFwmIzM0O1NSUCBUcmFuc3BvcnQgQXR0cmlidXRlc1wmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6Mjg5Olx0ZGVwZW5kcyBvbiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yOTAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjk2PW1lbnVjb25maWcgU0NTSV9MT1dMRVZFTFxuZHJpdmVycy9zY3NpL0tjb25maWctMjk3LVx0Ym9vbCBcJiMzNDtTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyOTg6XHRkZXBlbmRzIG9uIFNDU0khPW5cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI5OS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTMwMz1jb25maWcgSVNDU0lfVENQXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zMDQtXHR0cmlzdGF0ZSBcJiMzNDtpU0NTSSBJbml0aWF0b3Igb3ZlciBUQ1AvSVBcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjMwNTpcdGRlcGVuZHMgb24gU0NTSSBcdTAwMjZcdTAwMjYgSU5FVFxuZHJpdmVycy9zY3NpL0tjb25maWctMzA2LVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzM4PWNvbmZpZyBTR0lXRDkzX1NDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTMzOS1cdHRyaXN0YXRlIFwmIzM0O1NHSSBXRDkzQzkzIFNDU0kgRHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzozNDA6XHRkZXBlbmRzIG9uIFNHSV9IQVNfV0Q5MyBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMzQxLVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTM0NT1jb25maWcgQkxLX0RFVl8zV19YWFhYX1JBSURcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0Ni1cdHRyaXN0YXRlIFwmIzM0OzN3YXJlIDUvNi83Lzh4eHggQVRBLVJBSUQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MzQ3Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0OC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zNTg9Y29uZmlnIFNDU0lfSFBTQVxuZHJpdmVycy9zY3NpL0tjb25maWctMzU5LVx0dHJpc3RhdGUgXCYjMzQ7SFAgU21hcnQgQXJyYXkgU0NTSSBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM2MDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNjEtXHRzZWxlY3QgQ0hFQ0tfU0lHTkFUVVJFXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzcwPWNvbmZpZyBTQ1NJXzNXXzlYWFhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM3MS1cdHRyaXN0YXRlIFwmIzM0OzN3YXJlIDl4eHggU0FUQS1SQUlEIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM3MjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNzMtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzgxPWNvbmZpZyBTQ1NJXzNXX1NBU1xuZHJpdmVycy9zY3NpL0tjb25maWctMzgyLVx0dHJpc3RhdGUgXCYjMzQ7M3dhcmUgOTd4eCBTQVMvU0FUQS1SQUlEIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM4MzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zODQtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzkyPWNvbmZpZyBTQ1NJX0FDQVJEXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zOTMtXHR0cmlzdGF0ZSBcJiMzNDtBQ0FSRCBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM5NDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zOTUtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NDAxPWNvbmZpZyBTQ1NJX0FIQTE1MlhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQwMi1cdHRyaXN0YXRlIFwmIzM0O0FkYXB0ZWMgQUhBMTUyWC8yODI1IHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQwMzpcdGRlcGVuZHMgb24gSVNBIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0MDQ6XHRkZXBlbmRzIG9uICFISUdITUVNXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MDUtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00MTk9Y29uZmlnIFNDU0lfQUhBMTU0MlxuZHJpdmVycy9zY3NpL0tjb25maWctNDIwLVx0dHJpc3RhdGUgXCYjMzQ7QWRhcHRlYyBBSEExNTQyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQyMTpcdGRlcGVuZHMgb24gSVNBIFx1MDAyNlx1MDAyNiBTQ1NJIFx1MDAyNlx1MDAyNiBJU0FfRE1BX0FQSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDIyLVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQzMz1jb25maWcgU0NTSV9BSEExNzQwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MzQtXHR0cmlzdGF0ZSBcJiMzNDtBZGFwdGVjIEFIQTE3NDAgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NDM1Olx0ZGVwZW5kcyBvbiBFSVNBIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MzYtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NDQ2PWNvbmZpZyBTQ1NJX0FBQ1JBSURcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ0Ny1cdHRyaXN0YXRlIFwmIzM0O0FkYXB0ZWMgQUFDUkFJRCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NDg6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDQ5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ2ND1jb25maWcgU0NTSV9NVlVNSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDY1LVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBVTUkgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NjY6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDY3LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ3Mz1jb25maWcgU0NTSV9BRFZBTlNZU1xuZHJpdmVycy9zY3NpL0tjb25maWctNDc0LVx0dHJpc3RhdGUgXCYjMzQ7QWR2YW5TeXMgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NzU6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ3NjpcdGRlcGVuZHMgb24gKElTQSB8fCBFSVNBIHx8IFBDSSkgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ3Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00ODU9Y29uZmlnIFNDU0lfQVJDTVNSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00ODYtXHR0cmlzdGF0ZSBcJiMzNDtBUkVDQSAoQVJDMTF4eC8xMnh4LzEzeHgvMTZ4eCkgU0FUQS9TQVMgUkFJRCBIb3N0IEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ4NzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00ODgtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTA0PWNvbmZpZyBTQ1NJX0hQVElPUFxuZHJpdmVycy9zY3NpL0tjb25maWctNTA1LVx0dHJpc3RhdGUgXCYjMzQ7SGlnaFBvaW50IFJvY2tldFJBSUQgM3h4eC80eHh4IENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NTA2Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUwNy1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01MTQ9Y29uZmlnIFNDU0lfQlVTTE9HSUNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUxNS1cdHRyaXN0YXRlIFwmIzM0O0J1c0xvZ2ljIFNDU0kgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NTE2Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUxNy1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01Mjk9Y29uZmlnIFNDU0lfRkxBU0hQT0lOVFxuZHJpdmVycy9zY3NpL0tjb25maWctNTMwLVx0Ym9vbCBcJiMzNDtGbGFzaFBvaW50IHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUzMTpcdGRlcGVuZHMgb24gU0NTSV9CVVNMT0dJQyBcdTAwMjZcdTAwMjYgUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzItXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTM4PWNvbmZpZyBTQ1NJX01ZUkJcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUzOS1cdHRyaXN0YXRlIFwmIzM0O015bGV4IERBQzk2MC9EQUMxMTAwIFBDSSBSQUlEIENvbnRyb2xsZXIgKEJsb2NrIEludGVyZmFjZSlcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU0MDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NDEtXHRzZWxlY3QgUkFJRF9BVFRSU1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU1Mz1jb25maWcgU0NTSV9NWVJTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NTQtXHR0cmlzdGF0ZSBcJiMzNDtNeWxleCBEQUM5NjAvREFDMTEwMCBQQ0kgUkFJRCBDb250cm9sbGVyIChTQ1NJIEludGVyZmFjZSlcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU1NTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1NTY6XHRkZXBlbmRzIG9uICFDUFVfQklHX0VORElBTiB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU1Ny1cdHNlbGVjdCBSQUlEX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTY5PWNvbmZpZyBWTVdBUkVfUFZTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NzAtXHR0cmlzdGF0ZSBcJiMzNDtWTXdhcmUgUFZTQ1NJIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1NzE6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSSBcdTAwMjZcdTAwMjYgWDg2XG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NzItXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTc3PWNvbmZpZyBYRU5fU0NTSV9GUk9OVEVORFxuZHJpdmVycy9zY3NpL0tjb25maWctNTc4LVx0dHJpc3RhdGUgXCYjMzQ7WEVOIFNDU0kgZnJvbnRlbmQgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1Nzk6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IFhFTlxuZHJpdmVycy9zY3NpL0tjb25maWctNTgwLVx0c2VsZWN0IFhFTl9YRU5CVVNfRlJPTlRFTkRcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01ODc9Y29uZmlnIEhZUEVSVl9TVE9SQUdFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01ODgtXHR0cmlzdGF0ZSBcJiMzNDtNaWNyb3NvZnQgSHlwZXItViB2aXJ0dWFsIHN0b3JhZ2UgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1ODk6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IEhZUEVSVl9WTUJVU1xuZHJpdmVycy9zY3NpL0tjb25maWc6NTkwOlx0ZGVwZW5kcyBvbiBtIHx8IFNDU0lfRkNfQVRUUlMgIT0gbVxuZHJpdmVycy9zY3NpL0tjb25maWctNTkxLVx0ZGVmYXVsdCBIWVBFUlZcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01OTU9Y29uZmlnIExJQkZDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OTYtXHR0cmlzdGF0ZSBcJiMzNDtMaWJGQyBtb2R1bGVcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU5NzpcdGRlcGVuZHMgb24gU0NTSV9GQ19BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWctNTk4LVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NjAyPWNvbmZpZyBMSUJGQ09FXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MDMtXHR0cmlzdGF0ZSBcJiMzNDtMaWJGQ29FIG1vZHVsZVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NjA0Olx0ZGVwZW5kcyBvbiBMSUJGQ1xuZHJpdmVycy9zY3NpL0tjb25maWctNjA1LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTYwOD1jb25maWcgRkNPRVxuZHJpdmVycy9zY3NpL0tjb25maWctNjA5LVx0dHJpc3RhdGUgXCYjMzQ7RkNvRSBtb2R1bGVcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxMDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2MTE6XHRkZXBlbmRzIG9uIExJQkZDT0VcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYxMi1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MTU9Y29uZmlnIEZDT0VfRk5JQ1xuZHJpdmVycy9zY3NpL0tjb25maWctNjE2LVx0dHJpc3RhdGUgXCYjMzQ7Q2lzY28gRk5JQyBEcml2ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxNzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBYODZcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxODpcdGRlcGVuZHMgb24gTElCRkNPRVxuZHJpdmVycy9zY3NpL0tjb25maWctNjE5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTYyNj1jb25maWcgU0NTSV9TTklDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MjctXHR0cmlzdGF0ZSBcJiMzNDtDaXNjbyBTTklDIERyaXZlclwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NjI4Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYyOS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MzY9Y29uZmlnIFNDU0lfU05JQ19ERUJVR19GU1xuZHJpdmVycy9zY3NpL0tjb25maWctNjM3LVx0Ym9vbCBcJiMzNDtDaXNjbyBTTklDIERyaXZlciBEZWJ1Z2ZzIFN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYzODpcdGRlcGVuZHMgb24gU0NTSV9TTklDIFx1MDAyNlx1MDAyNiBERUJVR19GU1xuZHJpdmVycy9zY3NpL0tjb25maWctNjM5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY0Mz1jb25maWcgU0NTSV9ETVgzMTkxRFxuZHJpdmVycy9zY3NpL0tjb25maWctNjQ0LVx0dHJpc3RhdGUgXCYjMzQ7RE1YMzE5MUQgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NDU6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVCBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctNjQ2LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NjUzPWNvbmZpZyBTQ1NJX0ZET01BSU5cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY1NC1cdHRyaXN0YXRlXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NTU6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY1Ni1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY1Nz1jb25maWcgU0NTSV9GRE9NQUlOX1BDSVxuZHJpdmVycy9zY3NpL0tjb25maWctNjU4LVx0dHJpc3RhdGUgXCYjMzQ7RnV0dXJlIERvbWFpbiBUTUMtMzI2MC9BSEEtMjkyMEEgUENJIFNDU0kgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NjU5Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY2MC1cdHNlbGVjdCBTQ1NJX0ZET01BSU5cbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02NzQ9Y29uZmlnIFNDU0lfRkRPTUFJTl9JU0FcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY3NS1cdHRyaXN0YXRlIFwmIzM0O0Z1dHVyZSBEb21haW4gMTZ4eCBJU0EgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NzY6XHRkZXBlbmRzIG9uIElTQSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctNjc3LVx0c2VsZWN0IENIRUNLX1NJR05BVFVSRVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY4OD1jb25maWcgU0NTSV9JU0NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02ODktXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbChSKSBDNjAwIFNlcmllcyBDaGlwc2V0IFNBUyBDb250cm9sbGVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2OTA6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWc6NjkxOlx0ZGVwZW5kcyBvbiBYODZcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY5Mi1cdHNlbGVjdCBTQ1NJX1NBU19MSUJTQVNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02OTc9Y29uZmlnIFNDU0lfR0VORVJJQ19OQ1I1MzgwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02OTgtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIE5DUjUzODAvNTNjNDAwIFNDU0kgSVNBIGNhcmQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6Njk5Olx0ZGVwZW5kcyBvbiBJU0EgXHUwMDI2XHUwMDI2IFNDU0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRfTUFQXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MDAtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03MTA9Y29uZmlnIFNDU0lfSVBTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MTEtXHR0cmlzdGF0ZSBcJiMzNDtJQk0gU2VydmVSQUlEIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjcxMjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MTMtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NzI0PWNvbmZpZyBTQ1NJX0lCTVZTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MjUtXHR0cmlzdGF0ZSBcJiMzNDtJQk0gVmlydHVhbCBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjcyNjpcdGRlcGVuZHMgb24gUFBDX1BTRVJJRVNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTcyNy1cdHNlbGVjdCBTQ1NJX1NSUF9BVFRSU1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTczND1jb25maWcgU0NTSV9JQk1WU0NTSVNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNS1cdHRyaXN0YXRlIFwmIzM0O0lCTSBWaXJ0dWFsIFNDU0kgU2VydmVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjczNjpcdGRlcGVuZHMgb24gUFBDX1BTRVJJRVMgXHUwMDI2XHUwMDI2IFRBUkdFVF9DT1JFIFx1MDAyNlx1MDAyNiBTQ1NJIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNy1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03NTE9Y29uZmlnIFNDU0lfSUJNVkZDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NTItXHR0cmlzdGF0ZSBcJiMzNDtJQk0gVmlydHVhbCBGQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NTM6XHRkZXBlbmRzIG9uIFBQQ19QU0VSSUVTIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NTQ6XHRkZXBlbmRzIG9uIFNDU0lfRkNfQVRUUlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc1NS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03NjE9Y29uZmlnIFNDU0lfSUJNVkZDX1RSQUNFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NjItXHRib29sIFwmIzM0O2VuYWJsZSBkcml2ZXIgaW50ZXJuYWwgdHJhY2VcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc2MzpcdGRlcGVuZHMgb24gU0NTSV9JQk1WRkNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc2NC1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc3MD1jb25maWcgU0NTSV9JTklUSU9cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc3MS1cdHRyaXN0YXRlIFwmIzM0O0luaXRpbyA5MTAwVShXKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NzI6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVCBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctNzczLVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc4MT1jb25maWcgU0NTSV9JTklBMTAwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03ODItXHR0cmlzdGF0ZSBcJiMzNDtJbml0aW8gSU5JLUExMDBVMlcgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NzgzOlx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc4NC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03OTI9Y29uZmlnIFNDU0lfUFBBXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03OTMtXHR0cmlzdGF0ZSBcJiMzNDtJT01FR0EgcGFyYWxsZWwgcG9ydCAocHBhIC0gb2xkZXIgZHJpdmVzKVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6Nzk0Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQVJQT1JUX1BDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3OTU6XHRkZXBlbmRzIG9uIEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc5NjpcdGRlcGVuZHMgb24gIUhJR0hNRU1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc5Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04MjE9Y29uZmlnIFNDU0lfSU1NXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MjItXHR0cmlzdGF0ZSBcJiMzNDtJT01FR0EgcGFyYWxsZWwgcG9ydCAoaW1tIC0gbmV3ZXIgZHJpdmVzKVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6ODIzOlx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQVJQT1JUX1BDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4MjQ6XHRkZXBlbmRzIG9uICFISUdITUVNXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MjUtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9ODQ5PWNvbmZpZyBTQ1NJX0laSVBfU0xPV19DVFJcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg1MC1cdGJvb2wgXCYjMzQ7cHBhL2ltbSBvcHRpb24gLSBBc3N1bWUgc2xvdyBwYXJwb3J0IGNvbnRyb2wgcmVnaXN0ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg1MTpcdGRlcGVuZHMgb24gU0NTSV9QUEEgfHwgU0NTSV9JTU1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg1Mi1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04NjM9Y29uZmlnIFNDU0lfTEFTSTcwMFxuZHJpdmVycy9zY3NpL0tjb25maWctODY0LVx0dHJpc3RhdGUgXCYjMzQ7SFAgTGFzaSBTQ1NJIHN1cHBvcnQgZm9yIDUzYzcwMC83MTBcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg2NTpcdGRlcGVuZHMgb24gR1NDIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04NjYtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04NzI9Y29uZmlnIFNDU0lfU05JXzUzQzcxMFxuZHJpdmVycy9zY3NpL0tjb25maWctODczLVx0dHJpc3RhdGUgXCYjMzQ7U05JIFJNIFNDU0kgc3VwcG9ydCBmb3IgNTNjNzEwXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4NzQ6XHRkZXBlbmRzIG9uIFNOSV9STSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctODc1LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9ODgxPWNvbmZpZyA1M0M3MDBfTEVfT05fQkVcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4Mi1cdGJvb2xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg4MzpcdGRlcGVuZHMgb24gU0NTSV9MQVNJNzAwIHx8IFNDU0lfU05JXzUzQzcxMFxuZHJpdmVycy9zY3NpL0tjb25maWctODg0LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9ODg2PWNvbmZpZyBTQ1NJX1NURVhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4Ny1cdHRyaXN0YXRlIFwmIzM0O1Byb21pc2UgU3VwZXJUcmFrIEVYIFNlcmllcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4ODg6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctODg5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg5OD1jb25maWcgNTNDNzAwX0JFX0JVU1xuZHJpdmVycy9zY3NpL0tjb25maWctODk5LVx0Ym9vbFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTAwOlx0ZGVwZW5kcyBvbiBTQ1NJX0E0MDAwVCB8fCBTQ1NJX1pPUlJPN1hYIHx8IE1WTUUxNnhfU0NTSSB8fCBCVk1FNjAwMF9TQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MDEtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05MDM9Y29uZmlnIFNDU0lfU1lNNTNDOFhYXzJcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTkwNC1cdHRyaXN0YXRlIFwmIzM0O1NZTTUzQzhYWCBWZXJzaW9uIDIgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5MDU6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctOTA2LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9OTE3PWNvbmZpZyBTQ1NJX1NZTTUzQzhYWF9ETUFfQUREUkVTU0lOR19NT0RFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MTgtXHRpbnQgXCYjMzQ7RE1BIGFkZHJlc3NpbmcgbW9kZVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6OTE5Olx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MjAtXHRkZWZhdWx0IFwmIzM0OzFcJiMzNDtcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05NDA9Y29uZmlnIFNDU0lfU1lNNTNDOFhYX0RFRkFVTFRfVEFHU1xuZHJpdmVycy9zY3NpL0tjb25maWctOTQxLVx0aW50IFwmIzM0O0RlZmF1bHQgdGFnZ2VkIGNvbW1hbmQgcXVldWUgZGVwdGhcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk0MjpcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxuZHJpdmVycy9zY3NpL0tjb25maWctOTQzLVx0ZGVmYXVsdCBcJiMzNDsxNlwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk1MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTUFYX1RBR1NcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk1Mi1cdGludCBcJiMzNDtNYXhpbXVtIG51bWJlciBvZiBxdWV1ZWQgY29tbWFuZHNcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk1MzpcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxuZHJpdmVycy9zY3NpL0tjb25maWctOTU0LVx0ZGVmYXVsdCBcJiMzNDs2NFwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk2MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTU1JT1xuZHJpdmVycy9zY3NpL0tjb25maWctOTYyLVx0Ym9vbCBcJiMzNDtVc2UgbWVtb3J5IG1hcHBlZCBJT1wmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6OTYzOlx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NjQtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05NzA9Y29uZmlnIFNDU0lfSVBSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NzEtXHR0cmlzdGF0ZSBcJiMzNDtJQk0gUG93ZXIgTGludXggUkFJRCBhZGFwdGVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk3MjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NzMtXHRzZWxlY3QgRldfTE9BREVSXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9OTgxPWNvbmZpZyBTQ1NJX0lQUl9UUkFDRVxuZHJpdmVycy9zY3NpL0tjb25maWctOTgyLVx0Ym9vbCBcJiMzNDtlbmFibGUgZHJpdmVyIGludGVybmFsIHRyYWNlXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5ODM6XHRkZXBlbmRzIG9uIFNDU0lfSVBSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05ODQtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05OTA9Y29uZmlnIFNDU0lfSVBSX0RVTVBcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk5MS1cdGJvb2wgXCYjMzQ7ZW5hYmxlIGFkYXB0ZXIgZHVtcCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5OTI6XHRkZXBlbmRzIG9uIFNDU0lfSVBSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05OTMtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05OTk9Y29uZmlnIFNDU0lfWkFMT05cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwMDAtXHR0cmlzdGF0ZSBcJiMzNDtaYWxvbiBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwMDE6XHRkZXBlbmRzIG9uIEdTQyBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTAwMi1cdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwMTA9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX0RFRkFVTFRfVEFHU1xuZHJpdmVycy9zY3NpL0tjb25maWctMTAxMS1cdGludCBcJiMzNDtkZWZhdWx0IHRhZ2dlZCBjb21tYW5kIHF1ZXVlIGRlcHRoXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMDEyOlx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDEzLVx0ZGVmYXVsdCBcJiMzNDs4XCYjMzQ7XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTAzNj1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTUFYX1RBR1NcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwMzctXHRpbnQgXCYjMzQ7bWF4aW11bSBudW1iZXIgb2YgcXVldWVkIGNvbW1hbmRzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMDM4Olx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDM5LVx0ZGVmYXVsdCBcJiMzNDszMlwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwNTM9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX1NZTkNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwNTQtXHRpbnQgXCYjMzQ7c3luY2hyb25vdXMgdHJhbnNmZXJzIGZyZXF1ZW5jeSBpbiBNSHpcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwNTU6XHRkZXBlbmRzIG9uIFNDU0lfWkFMT05cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwNTYtXHRkZWZhdWx0IFwmIzM0OzIwXCYjMzQ7XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA4Nz1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTk9fRElTQ09OTkVDVFxuZHJpdmVycy9zY3NpL0tjb25maWctMTA4OC1cdGJvb2wgXCYjMzQ7bm90IGFsbG93IHRhcmdldHMgdG8gZGlzY29ubmVjdFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTA4OTpcdGRlcGVuZHMgb24gU0NTSV9aQUxPTiBcdTAwMjZcdTAwMjYgU0NTSV9OQ1I1M0M4WFhfREVGQVVMVF9UQUdTPTBcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwOTAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA5Nz1jb25maWcgU0NTSV9RTE9HSUNfRkFTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDk4LVx0dHJpc3RhdGUgXCYjMzQ7UWxvZ2ljIEZBUyBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwOTk6XHRkZXBlbmRzIG9uIElTQSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTEwMC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTE3PWNvbmZpZyBTQ1NJX1FMT0dJQ18xMjgwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTE4LVx0dHJpc3RhdGUgXCYjMzQ7UWxvZ2ljIFFMQSAxMjQwLzF4ODAvMXgxNjAgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTE5Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExMjAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTEyNj1jb25maWcgU0NTSV9RTE9HSUNQVElcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExMjctXHR0cmlzdGF0ZSBcJiMzNDtQVEkgUWxvZ2ljLCBJU1AgRHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTI4Olx0ZGVwZW5kcyBvbiBTQlVTIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTI5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNDM9Y29uZmlnIFNDU0lfTFBGQ1xuZHJpdmVycy9zY3NpL0tjb25maWctMTE0NC1cdHRyaXN0YXRlIFwmIzM0O0VtdWxleCBMaWdodFB1bHNlIEZpYnJlIENoYW5uZWwgU3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0NTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ2Olx0ZGVwZW5kcyBvbiBDUFVfRlJFUVxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0NzpcdGRlcGVuZHMgb24gU0NTSV9GQ19BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0ODpcdGRlcGVuZHMgb24gTlZNRV9UQVJHRVRfRkMgfHwgTlZNRV9UQVJHRVRfRkM9blxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0OTpcdGRlcGVuZHMgb24gTlZNRV9GQyB8fCBOVk1FX0ZDPW5cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNTAtXHRzZWxlY3QgQ1JDX1QxMERJRlxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNTc9Y29uZmlnIFNDU0lfTFBGQ19ERUJVR19GU1xuZHJpdmVycy9zY3NpL0tjb25maWctMTE1OC1cdGJvb2wgXCYjMzQ7RW11bGV4IExpZ2h0UHVsc2UgRmlicmUgQ2hhbm5lbCBkZWJ1Z2ZzIFN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExNTk6XHRkZXBlbmRzIG9uIFNDU0lfTFBGQyBcdTAwMjZcdTAwMjYgREVCVUdfRlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE2Nj1jb25maWcgU0NTSV9TSU03MTBcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjctXHR0cmlzdGF0ZSBcJiMzNDtTaW1wbGUgNTNjNzEwIFNDU0kgc3VwcG9ydCAoQ29tcGFxLCBOQ1IgbWFjaGluZXMpXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTY4Olx0ZGVwZW5kcyBvbiBFSVNBIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTY5LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE3NT1jb25maWcgU0NTSV9EQzM5NXhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNzYtXHR0cmlzdGF0ZSBcJiMzNDtUZWtyYW0gREMzOTUoVS9VVy9GKSBhbmQgREMzMTUoVSkgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTc3Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNzgtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTkxPWNvbmZpZyBTQ1NJX0FNNTNDOTc0XG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTkyLVx0dHJpc3RhdGUgXCYjMzQ7VGVrcmFtIERDMzkwKFQpIGFuZCBBbTUzLzc5Qzk3NCBTQ1NJIHN1cHBvcnQgKG5ldyBkcml2ZXIpXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTkzOlx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExOTQtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMjA3PWNvbmZpZyBTQ1NJX05TUDMyXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMjA4LVx0dHJpc3RhdGUgXCYjMzQ7V29ya2JpdCBOaW5qYVNDU0ktMzJCaS9VREUgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwOTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJIFx1MDAyNlx1MDAyNiAhNjRCSVQgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMTAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTIxOD1jb25maWcgU0NTSV9XRDcxOVhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMTktXHR0cmlzdGF0ZSBcJiMzNDtXZXN0ZXJuIERpZ2l0YWwgV0Q3MTkzLzcxOTcvNzI5NiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMjIwOlx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMjEtXHRzZWxlY3QgRUVQUk9NXzkzQ1g2XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTIyNj1jb25maWcgU0NTSV9ERUJVR1xuZHJpdmVycy9zY3NpL0tjb25maWctMTIyNy1cdHRyaXN0YXRlIFwmIzM0O1NDU0kgZGVidWdnaW5nIGhvc3QgYW5kIGRldmljZSBzaW11bGF0b3JcJiMzNDtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTkyNAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDI0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgU0NTSV9OU1AzMiBhbmQgU3l6a2FsbGVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFNDU0lfTlNQMzJgIGNvbmZpZyBvcHRpb24uIFRoZSBkZXBlbmRlbmNpZXMgYXJlIGBQQ0kgJmFtcDsmYW1wOyBTQ1NJICZhbXA7JmFtcDsgITY0QklUICZhbXA7JmFtcDsgSEFTX0lPUE9SVGAuIEhtbSwgdGhlIGAhNjRCSVRgIHBhcnQgaXMgaW1tZWRpYXRlbHkgdGhyb3dpbmcgYSBmbGFnLiBJZiBzeXprYWxsZXIgaXMgcnVubmluZyBvbiBhIHN0YW5kYXJkIDY0LWJpdCBrZXJuZWwsIHdoaWNoIGlzIHRoZSBub3JtIGZvciB4ODZfNjQsIGBTQ1NJX05TUDMyYCBzaW1wbHkgKndvbiYjMzk7dCogYmUgZW5hYmxlZC4KClNvLCBmaXJzdCBpbnN0aW5jdCwgY2FuIHdlIGVuYWJsZSBpdCBvbiA2NC1iaXQ/IE5vcGUsIHRob3NlIGRlcGVuZGVuY2llcyBzcGVjaWZpY2FsbHkgYmxvY2sgaXQuIEFscmlnaHQsIHNvIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBzaG91bGQgSSBldmVuIGxpc3QgYFNDU0lfTlNQMzJgIGF0IGFsbCBpZiBpdCYjMzk7cyBub3QgcG9zc2libGUgdG8gYWN0aXZhdGUgaXQgb24gNjQtYml0IHBsYXRmb3Jtcz8gU3l6a2FsbGVyICptaWdodCogYmUgdGVzdGluZyBvbiAzMi1iaXQgYXJjaGl0ZWN0dXJlcywgbGlrZSBpMzg2IG9yIGFybTMyLCBhbmQgaW4gdGhvc2UgY2FzZXMsIGl0ICp3b3VsZCogYXBwbHkuIEJ1dCB0aGVuIGFnYWluLCBpZiB0aGUgYXJjaGl0ZWN0dXJlIGlzbiYjMzk7dCBhcHByb3ByaWF0ZSwgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIGlnbm9yZSB0aGUgb3B0aW9uLCBzbyB3aGF0JiMzOTtzIHRoZSBwb2ludCBvZiBsaXN0aW5nIGl0PwoKQWgsIHJpZ2h0LCBJIG5lZWQgdG8gZm9jdXMgb24gd2hhdCYjMzk7cyAqYWN0dWFsbHkqIG5lZWRlZC4gVGhpcyBpc24mIzM5O3QganVzdCBhIGNvbXByZWhlbnNpdmUgbGlzdCwgaXQmIzM5O3MgYSBsaXN0IHRhaWxvcmVkIHRvIHdoYXQmIzM5O3MgdXNlZC4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIHRoZSBvdGhlciBvcHRpb25zLCBJIGhhdmUgYEFUQV9HRU5FUklDYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGFuZCBgTUxYU1dfUENJYC4gTm93LCBgQVRBX0dFTkVSSUNgIG5lZWRzIHRvIGJlIGludmVzdGlnYXRlZC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9hdGEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTQ2IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL2F0YS9LY29uZmlnPTE0PW1lbnVjb25maWcgQVRBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7U2VyaWFsIEFUQSBhbmQgUGFyYWxsZWwgQVRBIGRyaXZlcnMgKGxpYmF0YSlcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTY6XHRkZXBlbmRzIG9uIEhBU19JT01FTVxuZHJpdmVycy9hdGEvS2NvbmZpZzoxNzpcdGRlcGVuZHMgb24gQkxPQ0tcbmRyaXZlcnMvYXRhL0tjb25maWctMTgtXHRzZWxlY3QgU0NTSVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzA9Y29uZmlnIEFUQV9BQ1BJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtBVEEgQUNQSSBTdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjcyOlx0ZGVwZW5kcyBvbiBBQ1BJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTczLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9ODQ9Y29uZmlnIFNBVEFfWlBPRERcbmRyaXZlcnMvYXRhL0tjb25maWctODUtXHRib29sIFwmIzM0O1NBVEEgWmVybyBQb3dlciBPcHRpY2FsIERpc2MgRHJpdmUgKFpQT0REKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg2Olx0ZGVwZW5kcyBvbiBBVEFfQUNQSSBcdTAwMjZcdTAwMjYgUE1cbmRyaXZlcnMvYXRhL0tjb25maWctODctXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05Nz1jb25maWcgU0FUQV9QTVBcbmRyaXZlcnMvYXRhL0tjb25maWctOTgtXHRib29sIFwmIzM0O1NBVEEgUG9ydCBNdWx0aXBsaWVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTk6XHRkZXBlbmRzIG9uIFNBVEFfSE9TVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDAtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwOT1jb25maWcgU0FUQV9BSENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTExMC1cdHRyaXN0YXRlIFwmIzM0O0FIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjExMTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTExMi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTExOD1jb25maWcgU0FUQV9NT0JJTEVfTFBNX1BPTElDWVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWctMTIxLVx0ZGVmYXVsdCAzXG5kcml2ZXJzL2F0YS9LY29uZmlnOjEyMjpcdGRlcGVuZHMgb24gU0FUQV9BSENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEyMy1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTE2Mz1jb25maWcgQUhDSV9CUkNNXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE2NC1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjE2NTpcdGRlcGVuZHMgb24gQVJDSF9CUkNNU1RCIHx8IEJNSVBTX0dFTkVSSUMgfHwgQVJDSF9CQ01fTlNQIHx8IFxcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE2Ni1cdFx0ICAgQVJDSF9CQ01CQ0EgfHwgQ09NUElMRV9URVNUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0xNzQ9Y29uZmlnIEFIQ0lfREE4NTBcbmRyaXZlcnMvYXRhL0tjb25maWctMTc1LVx0dHJpc3RhdGUgXCYjMzQ7RGFWaW5jaSBEQTg1MCBBSENJIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxNzY6XHRkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSV9EQTg1MCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMTc3LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MTg0PWNvbmZpZyBBSENJX0RNODE2XG5kcml2ZXJzL2F0YS9LY29uZmlnLTE4NS1cdHRyaXN0YXRlIFwmIzM0O0RhVmluY2kgRE04MTYgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTg2Olx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMTg3LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjAzPWNvbmZpZyBBSENJX1NUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIwNC1cdHRyaXN0YXRlIFwmIzM0O1NUIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjIwNTpcdGRlcGVuZHMgb24gQVJDSF9TVEkgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIwNi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTIxMj1jb25maWcgQUhDSV9JTVhcbmRyaXZlcnMvYXRhL0tjb25maWctMjEzLVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIGkuTVggQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjE0Olx0ZGVwZW5kcyBvbiBNRkRfU1lTQ09OIFx1MDAyNlx1MDAyNiAoQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9hdGEvS2NvbmZpZzoyMTU6XHRkZXBlbmRzIG9uIChIV01PTiBcdTAwMjZcdTAwMjYgKFRIRVJNQUwgfHwgIVRIRVJNQUxfT0YpKSB8fCAhSFdNT05cbmRyaXZlcnMvYXRhL0tjb25maWctMjE2LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjIzPWNvbmZpZyBBSENJX0NFVkFcbmRyaXZlcnMvYXRhL0tjb25maWctMjI0LVx0dHJpc3RhdGUgXCYjMzQ7Q0VWQSBBSENJIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoyMjU6XHRkZXBlbmRzIG9uIE9GXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIyNi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTIzMz1jb25maWcgQUhDSV9NVEtcbmRyaXZlcnMvYXRhL0tjb25maWctMjM0LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjM1Olx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yMzYtXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjQ0PWNvbmZpZyBBSENJX01WRUJVXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI0NS1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgRUJVIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjI0NjpcdGRlcGVuZHMgb24gQVJDSF9NVkVCVSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMjQ3LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjU0PWNvbmZpZyBBSENJX09DVEVPTlxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNTUtXHR0cmlzdGF0ZSBcJiMzNDtDYXZpdW0gT2N0ZW9uIFNvYyBTZXJpYWwgQVRBXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjI1NjpcdGRlcGVuZHMgb24gU0FUQV9BSENJX1BMQVRGT1JNIFx1MDAyNlx1MDAyNiBDQVZJVU1fT0NURU9OX1NPQ1xuZHJpdmVycy9hdGEvS2NvbmZpZy0yNTctXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI2Mz1jb25maWcgQUhDSV9TVU5YSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNjQtXHR0cmlzdGF0ZSBcJiMzNDtBbGx3aW5uZXIgc3VueGkgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjY1Olx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNjYtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0yNzM9Y29uZmlnIEFIQ0lfVEVHUkFcbmRyaXZlcnMvYXRhL0tjb25maWctMjc0LVx0dHJpc3RhdGUgXCYjMzQ7TlZJRElBIFRlZ3JhIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjI3NTpcdGRlcGVuZHMgb24gQVJDSF9URUdSQSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMjc2LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjgzPWNvbmZpZyBBSENJX1hHRU5FXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4NC1cdHRyaXN0YXRlIFwmIzM0O0FQTSBYLUdlbmUgNi4wR2JwcyBBSENJIFNBVEEgaG9zdCBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6Mjg1Olx0ZGVwZW5kcyBvbiBQSFlfWEdFTkUgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4Ni1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI5MD1jb25maWcgQUhDSV9RT1JJUVxuZHJpdmVycy9hdGEvS2NvbmZpZy0yOTEtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgUW9ySVEgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjkyOlx0ZGVwZW5kcyBvbiBPRlxuZHJpdmVycy9hdGEvS2NvbmZpZzoyOTM6XHRkZXBlbmRzIG9uIFNPQ19MUzEwMjFBIHx8IEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMjk0LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MzAxPWNvbmZpZyBTQVRBX0ZTTFxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMDItXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgMy4wR2JwcyBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MzAzOlx0ZGVwZW5kcyBvbiBGU0xfU09DIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMDQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zMTE9Y29uZmlnIFNBVEFfR0VNSU5JXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMxMi1cdHRyaXN0YXRlIFwmIzM0O0dlbWluaSBTQVRBIGJyaWRnZSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjMxMzpcdGRlcGVuZHMgb24gQVJDSF9HRU1JTkkgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMxNC1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTMyMj1jb25maWcgU0FUQV9BSENJX1NFQVRUTEVcbmRyaXZlcnMvYXRhL0tjb25maWctMzIzLVx0dHJpc3RhdGUgXCYjMzQ7QU1EIFNlYXR0bGUgNi4wR2JwcyBBSENJIFNBVEEgaG9zdCBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MzI0Olx0ZGVwZW5kcyBvbiBBUkNIX1NFQVRUTEUgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMyNS1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTMzMT1jb25maWcgU0FUQV9JTklDMTYyWFxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMzItXHR0cmlzdGF0ZSBcJiMzNDtJbml0aW8gMTYyeCBTQVRBIHN1cHBvcnQgKFZlcnkgRXhwZXJpbWVudGFsKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzozMzM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMzQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zMzg9Y29uZmlnIFNBVEFfQUNBUkRfQUhDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMzktXHR0cmlzdGF0ZSBcJiMzNDtBQ2FyZCBBSENJIHZhcmlhbnQgKEFUUCA4NjIwKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzozNDA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zNDEtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zNDc9Y29uZmlnIFNBVEFfU0lMMjRcbmRyaXZlcnMvYXRhL0tjb25maWctMzQ4LVx0dHJpc3RhdGUgXCYjMzQ7U2lsaWNvbiBJbWFnZSAzMTI0LzMxMzIgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjM0OTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM1MC1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM4MD1jb25maWcgUERDX0FETUFcbmRyaXZlcnMvYXRhL0tjb25maWctMzgxLVx0dHJpc3RhdGUgXCYjMzQ7UGFjaWZpYyBEaWdpdGFsIEFETUEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzozODI6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zODMtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zODg9Y29uZmlnIFBBVEFfT0NURU9OX0NGXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM4OS1cdHRyaXN0YXRlIFwmIzM0O09DVEVPTiBCb290IEJ1cyBDb21wYWN0IEZsYXNoIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MzkwOlx0ZGVwZW5kcyBvbiBDQVZJVU1fT0NURU9OX1NPQ1xuZHJpdmVycy9hdGEvS2NvbmZpZy0zOTEtXHRzZWxlY3QgUEFUQV9USU1JTkdTXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zOTg9Y29uZmlnIFNBVEFfUVNUT1JcbmRyaXZlcnMvYXRhL0tjb25maWctMzk5LVx0dHJpc3RhdGUgXCYjMzQ7UGFjaWZpYyBEaWdpdGFsIFNBVEEgUVN0b3Igc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0MDA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MDEtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00MDc9Y29uZmlnIFNBVEFfU1g0XG5kcml2ZXJzL2F0YS9LY29uZmlnLTQwOC1cdHRyaXN0YXRlIFwmIzM0O1Byb21pc2UgU0FUQSBTWDQgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0MDk6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MTAtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00MTY9Y29uZmlnIEFUQV9CTURNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MTctXHRib29sIFwmIzM0O0FUQSBCTURNQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjQxODpcdGRlcGVuZHMgb24gSEFTX0RNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MTktXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQzMT1jb25maWcgQVRBX1BJSVhcbmRyaXZlcnMvYXRhL0tjb25maWctNDMyLVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgRVNCLCBJQ0gsIFBJSVgzLCBQSUlYNCBQQVRBL1NBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0MzM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MzQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00NDI9Y29uZmlnIFNBVEFfRFdDXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ0My1cdHRyaXN0YXRlIFwmIzM0O0Rlc2lnbldhcmUgQ29yZXMgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjQ0NDpcdGRlcGVuZHMgb24gRE1BREVWSUNFU1xuZHJpdmVycy9hdGEvS2NvbmZpZy00NDUtXHRzZWxlY3QgR0VORVJJQ19QSFlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ1Mz1jb25maWcgU0FUQV9EV0NfT0xEX0RNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy00NTQtXHRib29sIFwmIzM0O1N1cHBvcnQgb2xkIGRldmljZSB0cmVlc1wmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0NTU6XHRkZXBlbmRzIG9uIFNBVEFfRFdDXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ1Ni1cdHNlbGVjdCBEV19ETUFDX0NPUkVcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ2Mj1jb25maWcgU0FUQV9ISUdIQkFOS1xuZHJpdmVycy9hdGEvS2NvbmZpZy00NjMtXHR0cmlzdGF0ZSBcJiMzNDtDYWx4ZWRhIEhpZ2hiYW5rIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0NjQ6XHRkZXBlbmRzIG9uIEFSQ0hfSElHSEJBTksgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ2NS1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ3Mj1jb25maWcgU0FUQV9NVlxuZHJpdmVycy9hdGEvS2NvbmZpZy00NzMtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0NzQ6XHRkZXBlbmRzIG9uIFBDSSB8fCBBUkNIX0RPVkUgfHwgQVJDSF9NVjc4WFgwIHx8IFxcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ3NS1cdFx0ICAgQVJDSF9NVkVCVSB8fCBBUkNIX09SSU9ONVggfHwgQ09NUElMRV9URVNUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00ODU9Y29uZmlnIFNBVEFfTlZcbmRyaXZlcnMvYXRhL0tjb25maWctNDg2LVx0dHJpc3RhdGUgXCYjMzQ7TlZJRElBIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0ODc6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00ODgtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00OTQ9Y29uZmlnIFNBVEFfUFJPTUlTRVxuZHJpdmVycy9hdGEvS2NvbmZpZy00OTUtXHR0cmlzdGF0ZSBcJiMzNDtQcm9taXNlIFNBVEEgVFgyL1RYNCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjQ5NjpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ5Ny1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTUwMz1jb25maWcgU0FUQV9SQ0FSXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUwNC1cdHRyaXN0YXRlIFwmIzM0O1JlbmVzYXMgUi1DYXIgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjUwNTpcdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MDYtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01MTI9Y29uZmlnIFNBVEFfU0lMXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUxMy1cdHRyaXN0YXRlIFwmIzM0O1NpbGljb24gSW1hZ2UgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjUxNDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUxNS1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTUyMT1jb25maWcgU0FUQV9TSVNcbmRyaXZlcnMvYXRhL0tjb25maWctNTIyLVx0dHJpc3RhdGUgXCYjMzQ7U2lTIDk2NC85NjUvOTY2LzE4MCBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTIzOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNTI0LVx0c2VsZWN0IFBBVEFfU0lTXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01MzM9Y29uZmlnIFNBVEFfU1ZXXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUzNC1cdHRyaXN0YXRlIFwmIzM0O1NlcnZlcldvcmtzIEZyb2RvIC8gQXBwbGUgSzIgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjUzNTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUzNi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTU0Mz1jb25maWcgU0FUQV9VTElcbmRyaXZlcnMvYXRhL0tjb25maWctNTQ0LVx0dHJpc3RhdGUgXCYjMzQ7VUxpIEVsZWN0cm9uaWNzIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo1NDU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy01NDYtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01NTI9Y29uZmlnIFNBVEFfVklBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU1My1cdHRyaXN0YXRlIFwmIzM0O1ZJQSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTU0Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNTU1LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NTYxPWNvbmZpZyBTQVRBX1ZJVEVTU0VcbmRyaXZlcnMvYXRhL0tjb25maWctNTYyLVx0dHJpc3RhdGUgXCYjMzQ7VklURVNTRSBWU0MtNzE3NCAvIElOVEVMIDMxMjQ0IFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo1NjM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy01NjQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01NzI9Y29uZmlnIFBBVEFfQUxJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU3My1cdHRyaXN0YXRlIFwmIzM0O0FMaSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTc0Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvYXRhL0tjb25maWctNTc1LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NTgyPWNvbmZpZyBQQVRBX0FNRFxuZHJpdmVycy9hdGEvS2NvbmZpZy01ODMtXHR0cmlzdGF0ZSBcJiMzNDtBTUQvTlZpZGlhIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo1ODQ6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy01ODUtXHRzZWxlY3QgUEFUQV9USU1JTkdTXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01OTI9Y29uZmlnIFBBVEFfQVJBU0FOX0NGXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU5My1cdHRyaXN0YXRlIFwmIzM0O0FSQVNBTiBDb21wYWN0Rmxhc2ggUEFUQSBDb250cm9sbGVyIFN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTk0Olx0ZGVwZW5kcyBvbiBBUkNIX1NQRUFSMTNYWCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWc6NTk1Olx0ZGVwZW5kcyBvbiBETUFERVZJQ0VTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU5Ni1cdHNlbGVjdCBETUFfRU5HSU5FXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz02MDA9Y29uZmlnIFBBVEFfQVJUT1BcbmRyaXZlcnMvYXRhL0tjb25maWctNjAxLVx0dHJpc3RhdGUgXCYjMzQ7QVJUT1AgNjIxMC82MjYwIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo2MDI6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MDMtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz02MDg9Y29uZmlnIFBBVEFfQVRJSVhQXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYwOS1cdHRyaXN0YXRlIFwmIzM0O0FUSSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NjEwOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNjExLVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjE3PWNvbmZpZyBQQVRBX0FUUDg2N1hcbmRyaXZlcnMvYXRhL0tjb25maWctNjE4LVx0dHJpc3RhdGUgXCYjMzQ7QVJUT1AvQWNhcmQgQVRQODY3WCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NjE5Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNjIwLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjI3PWNvbmZpZyBQQVRBX0NNRDY0WFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MjgtXHR0cmlzdGF0ZSBcJiMzNDtDTUQ2NHggUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjYyOTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYzMC1cdHNlbGVjdCBQQVRBX1RJTUlOR1Ncbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTYzNz1jb25maWcgUEFUQV9DUzU1MjBcbmRyaXZlcnMvYXRhL0tjb25maWctNjM4LVx0dHJpc3RhdGUgXCYjMzQ7Q1M1NTEwLzU1MjAgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjYzOTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiAoWDg2XzMyIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvYXRhL0tjb25maWctNjQwLVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjQ2PWNvbmZpZyBQQVRBX0NTNTUzMFxuZHJpdmVycy9hdGEvS2NvbmZpZy02NDctXHR0cmlzdGF0ZSBcJiMzNDtDUzU1MzAgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjY0ODpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiAoWDg2XzMyIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvYXRhL0tjb25maWctNjQ5LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjU1PWNvbmZpZyBQQVRBX0NTNTUzNVxuZHJpdmVycy9hdGEvS2NvbmZpZy02NTYtXHR0cmlzdGF0ZSBcJiMzNDtDUzU1MzUgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjY1NzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiAoWDg2XzMyIHx8IChYODZfNjQgXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVCkpXG5kcml2ZXJzL2F0YS9LY29uZmlnOjY1ODpcdGRlcGVuZHMgb24gIVVNTFxuZHJpdmVycy9hdGEvS2NvbmZpZy02NTktXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz02NjU9Y29uZmlnIFBBVEFfQ1M1NTM2XG5kcml2ZXJzL2F0YS9LY29uZmlnLTY2Ni1cdHRyaXN0YXRlIFwmIzM0O0NTNTUzNiBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NjY3Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IChYODZfMzIgfHwgTUlQUyB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY2OC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTY3ND1jb25maWcgUEFUQV9DWVBSRVNTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY3NS1cdHRyaXN0YXRlIFwmIzM0O0N5cHJlc3MgQ1k4MkM2OTMgUEFUQSBzdXBwb3J0IChWZXJ5IEV4cGVyaW1lbnRhbClcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6Njc2Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvYXRhL0tjb25maWctNjc3LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9Njg0PWNvbmZpZyBQQVRBX0VGQVJcbmRyaXZlcnMvYXRhL0tjb25maWctNjg1LVx0dHJpc3RhdGUgXCYjMzQ7RUZBUiBTTEM5MEU2NiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjY4NjpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY4Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTY5Mz1jb25maWcgUEFUQV9FUDkzWFhcbmRyaXZlcnMvYXRhL0tjb25maWctNjk0LVx0dHJpc3RhdGUgXCYjMzQ7Q2lycnVzIExvZ2ljIEVQOTN4eCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6Njk1Olx0ZGVwZW5kcyBvbiBBUkNIX0VQOTNYWCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctNjk2LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzAzPWNvbmZpZyBQQVRBX0ZUSURFMDEwXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcwNC1cdHRyaXN0YXRlIFwmIzM0O0ZhcmFkYXkgVGVjaG5vbG9neSBGVElERTAxMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzA1Olx0ZGVwZW5kcyBvbiBBUk0gfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnOjcwNjpcdGRlcGVuZHMgb24gU0FUQV9HRU1JTklcbmRyaXZlcnMvYXRhL0tjb25maWctNzA3LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzEzPWNvbmZpZyBQQVRBX0hQVDM2NlxuZHJpdmVycy9hdGEvS2NvbmZpZy03MTQtXHR0cmlzdGF0ZSBcJiMzNDtIUFQgMzY2LzM2OCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzE1Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNzE2LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzIyPWNvbmZpZyBQQVRBX0hQVDM3WFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MjMtXHR0cmlzdGF0ZSBcJiMzNDtIUFQgMzcwLzM3MEEvMzcxLzM3Mi8zNzQvMzAyIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo3MjQ6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MjUtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz03MzE9Y29uZmlnIFBBVEFfSFBUM1gyTlxuZHJpdmVycy9hdGEvS2NvbmZpZy03MzItXHR0cmlzdGF0ZSBcJiMzNDtIUFQgMzcxTi8zNzJOLzMwMk4gUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjczMzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTczNC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc0MD1jb25maWcgUEFUQV9IUFQzWDNcbmRyaXZlcnMvYXRhL0tjb25maWctNzQxLVx0dHJpc3RhdGUgXCYjMzQ7SFBUIDM0My8zNjMgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc0MjpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc0My1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc0OT1jb25maWcgUEFUQV9IUFQzWDNfRE1BXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1MC1cdGJvb2wgXCYjMzQ7SFBUIDM0My8zNjMgRE1BIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzUxOlx0ZGVwZW5kcyBvbiBQQVRBX0hQVDNYM1xuZHJpdmVycy9hdGEvS2NvbmZpZy03NTItXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz03NTc9Y29uZmlnIFBBVEFfSUNTSURFXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1OC1cdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIElDUyBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzU5Olx0ZGVwZW5kcyBvbiBBUk0gXHUwMDI2XHUwMDI2IEFSQ0hfQUNPUk5cbmRyaXZlcnMvYXRhL0tjb25maWctNzYwLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzY2PWNvbmZpZyBQQVRBX0lNWFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NjctXHR0cmlzdGF0ZSBcJiMzNDtQQVRBIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBpTVhcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzY4Olx0ZGVwZW5kcyBvbiBBUkNIX01YQyB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctNzY5LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9Nzc2PWNvbmZpZyBQQVRBX0lUODIxM1xuZHJpdmVycy9hdGEvS2NvbmZpZy03NzctXHR0cmlzdGF0ZSBcJiMzNDtJVDgyMTMgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc3ODpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc3OS1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc4NT1jb25maWcgUEFUQV9JVDgyMVhcbmRyaXZlcnMvYXRhL0tjb25maWctNzg2LVx0dHJpc3RhdGUgXCYjMzQ7SVQ4MjExLzIgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc4NzpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc4OC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc5NT1jb25maWcgUEFUQV9KTUlDUk9OXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc5Ni1cdHRyaXN0YXRlIFwmIzM0O0pNaWNyb24gUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc5NzpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc5OC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgwND1jb25maWcgUEFUQV9NQUNJT1xuZHJpdmVycy9hdGEvS2NvbmZpZy04MDUtXHR0cmlzdGF0ZSBcJiMzNDtBcHBsZSBQb3dlck1hYy9Qb3dlckJvb2sgaW50ZXJuYWwgJiMzOTtNYWNJTyYjMzk7IElERVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4MDY6XHRkZXBlbmRzIG9uIFBQQ19QTUFDXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgwNy1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgxMz1jb25maWcgUEFUQV9NQVJWRUxMXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgxNC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgUEFUQSBzdXBwb3J0IHZpYSBsZWdhY3kgbW9kZVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4MTU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy04MTYtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04MjQ9Y29uZmlnIFBBVEFfTVBDNTJ4eFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MjUtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgTVBDNTJ4eCBTb0MgaW50ZXJuYWwgSURFXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjgyNjpcdGRlcGVuZHMgb24gUFBDX01QQzUyeHggXHUwMDI2XHUwMDI2IFBQQ19CRVNUQ09NTVxuZHJpdmVycy9hdGEvS2NvbmZpZy04MjctXHRzZWxlY3QgUFBDX0JFU1RDT01NX0FUQVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9ODM0PWNvbmZpZyBQQVRBX05FVENFTExcbmRyaXZlcnMvYXRhL0tjb25maWctODM1LVx0dHJpc3RhdGUgXCYjMzQ7TkVUQ0VMTCBSZXZvbHV0aW9uIFJBSUQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4MzY6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MzctXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04NDM9Y29uZmlnIFBBVEFfTklOSkEzMlxuZHJpdmVycy9hdGEvS2NvbmZpZy04NDQtXHR0cmlzdGF0ZSBcJiMzNDtOaW5qYTMyL0RlbGtpbiBDYXJkYnVzIEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg0NTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg0Ni1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg1Mj1jb25maWcgUEFUQV9OUzg3NDE1XG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1My1cdHRyaXN0YXRlIFwmIzM0O05hdCBTZW1pIE5TODc0MTUgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg1NDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1NS1cdHNlbGVjdCBQQVRBX1RJTUlOR1Ncbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg2Mj1jb25maWcgUEFUQV9PTERQSUlYXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg2My1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFBBVEEgb2xkIFBJSVggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4NjQ6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy04NjUtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04NzA9Y29uZmlnIFBBVEFfT1BUSURNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy04NzEtXHR0cmlzdGF0ZSBcJiMzNDtPUFRJIEZpcmVTdGFyIFBBVEEgc3VwcG9ydCAoVmVyeSBFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg3MjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg3My1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg4MD1jb25maWcgUEFUQV9QREMyMDI3WFxuZHJpdmVycy9hdGEvS2NvbmZpZy04ODEtXHR0cmlzdGF0ZSBcJiMzNDtQcm9taXNlIFBBVEEgMjAyN3ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4ODI6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy04ODMtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04ODg9Y29uZmlnIFBBVEFfUERDX09MRFxuZHJpdmVycy9hdGEvS2NvbmZpZy04ODktXHR0cmlzdGF0ZSBcJiMzNDtPbGRlciBQcm9taXNlIFBBVEEgY29udHJvbGxlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5MDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg5MS1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg5Nz1jb25maWcgUEFUQV9SQURJU1lTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg5OC1cdHRyaXN0YXRlIFwmIzM0O1JBRElTWVMgODI2MDAgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5OTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkwMC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTkwNj1jb25maWcgUEFUQV9SRENcbmRyaXZlcnMvYXRhL0tjb25maWctOTA3LVx0dHJpc3RhdGUgXCYjMzQ7UkRDIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo5MDg6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy05MDktXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05MTY9Y29uZmlnIFBBVEFfU0MxMjAwXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkxNy1cdHRyaXN0YXRlIFwmIzM0O1NDMTIwMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTE4Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IChYODZfMzIgfHwgQ09NUElMRV9URVNUKSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MTktXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05MjU9Y29uZmlnIFBBVEFfU0NIXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkyNi1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFNDSCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTI3Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctOTI4LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTM0PWNvbmZpZyBQQVRBX1NFUlZFUldPUktTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkzNS1cdHRyaXN0YXRlIFwmIzM0O1NFUlZFUldPUktTIE9TQjQvQ1NCNS9DU0I2L0hUMTAwMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTM2Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvYXRhL0tjb25maWctOTM3LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTQzPWNvbmZpZyBQQVRBX1NJTDY4MFxuZHJpdmVycy9hdGEvS2NvbmZpZy05NDQtXHR0cmlzdGF0ZSBcJiMzNDtDTUQgLyBTaWxpY29uIEltYWdlIDY4MCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTQ1Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctOTQ2LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTUxPWNvbmZpZyBQQVRBX1NJU1xuZHJpdmVycy9hdGEvS2NvbmZpZy05NTItXHR0cmlzdGF0ZSBcJiMzNDtTaVMgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjk1MzpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk1NC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk1OT1jb25maWcgUEFUQV9UT1NISUJBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2MC1cdHRyaXN0YXRlIFwmIzM0O1Rvc2hpYmEgUGljY29sbyBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjk2MTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2Mi1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk2OD1jb25maWcgUEFUQV9UUklGTEVYXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2OS1cdHRyaXN0YXRlIFwmIzM0O0NvbXBhcSBUcmlmbGV4IFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo5NzA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy05NzEtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05Nzc9Y29uZmlnIFBBVEFfVklBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk3OC1cdHRyaXN0YXRlIFwmIzM0O1ZJQSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTc5Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctOTgwLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTg3PWNvbmZpZyBQQVRBX1BYQVxuZHJpdmVycy9hdGEvS2NvbmZpZy05ODgtXHR0cmlzdGF0ZSBcJiMzNDtQWEEgRE1BLWNhcGFibGUgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjk4OTpcdGRlcGVuZHMgb24gQVJDSF9QWEEgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk5MC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk5OD1jb25maWcgUEFUQV9XSU5CT05EXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk5OS1cdHRyaXN0YXRlIFwmIzM0O1dpbmJvbmQgU0w4MkMxMDUgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwMDA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDAxLVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MTAxMT1jb25maWcgUEFUQV9DTUQ2NDBfUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMTItXHR0cmlzdGF0ZSBcJiMzNDtDTUQ2NDAgUENJIFBBVEEgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDEzOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctMTAxNC1cdHNlbGVjdCBQQVRBX1RJTUlOR1Ncbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwMjI9Y29uZmlnIFBBVEFfRkFMQ09OXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMjMtXHR0cmlzdGF0ZSBcJiMzNDtBdGFyaSBGYWxjb24gYW5kIFE0MC9RNjAgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwMjQ6XHRkZXBlbmRzIG9uIE02OEsgXHUwMDI2XHUwMDI2IChBVEFSSSB8fCBRNDApXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMjUtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0xMDMxPWNvbmZpZyBQQVRBX0dBWUxFXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMzItXHR0cmlzdGF0ZSBcJiMzNDtBbWlnYSBHYXlsZSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTAzMzpcdGRlcGVuZHMgb24gTTY4SyBcdTAwMjZcdTAwMjYgQU1JR0FcbmRyaXZlcnMvYXRhL0tjb25maWctMTAzNC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNDM9Y29uZmlnIFBBVEFfQlVEREhBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNDQtXHR0cmlzdGF0ZSBcJiMzNDtCdWRkaGEvQ2F0d2Vhc2VsL1gtU3VyZiBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA0NTpcdGRlcGVuZHMgb24gWk9SUk9cbmRyaXZlcnMvYXRhL0tjb25maWctMTA0Ni1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNTU9Y29uZmlnIFBBVEFfSVNBUE5QXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNTYtXHR0cmlzdGF0ZSBcJiMzNDtJU0EgUGx1ZyBhbmQgUGxheSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA1NzpcdGRlcGVuZHMgb24gSVNBUE5QXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNTgtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0xMDY0PWNvbmZpZyBQQVRBX0lYUDRYWF9DRlxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDY1LVx0dHJpc3RhdGUgXCYjMzQ7SVhQNFhYIENvbXBhY3QgRmxhc2ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDY2Olx0ZGVwZW5kcyBvbiBBUkNIX0lYUDRYWCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMTA2Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNzQ9Y29uZmlnIFBBVEFfTVBJSVhcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3NS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFBBVEEgTVBJSVggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDc2Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwODI9Y29uZmlnIFBBVEFfTlM4NzQxMFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDgzLVx0dHJpc3RhdGUgXCYjMzQ7TmF0IFNlbWkgTlM4NzQxMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA4NDpcdGRlcGVuZHMgb24gUENJXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTExMjYKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEZXBlbmRlbmN5IENoZWNrKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgQVRBX0dFTkVSSUNgLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGF0IG9uZSBuZWVkcyBgUENJYCBhbmQgYEFUQWAuIE5vIHN1cnByaXNlcyB0aGVyZS4gQnV0LCBob2xkIG9uLi4uIGBBVEFgIGl0c2VsZiBoYXMgc29tZSBkZXBlbmRlbmNpZXMsIG5hbWVseSBgSEFTX0lPTUVNYCBhbmQgYEJMT0NLYC4gQWxyaWdodCwgdGhhdCYjMzk7cyBsb2dpY2FsLCBpdCBuZWVkcyB0byBrbm93IHdoZXJlIGl0JiMzOTtzIG1hcHBpbmcgdG8sIGFuZCB0aGF0IHRoZSBzdG9yYWdlIGl0c2VsZiBleGlzdHMuIFNvLCBnb2luZyBiYWNrIHRvIGBBVEFfR0VORVJJQ2AsIHNpbmNlIGBBVEFgIGZ1bGZpbGxzIGl0cyBkZXBlbmRlbmNpZXMsIHRoZW4gYEFUQV9HRU5FUklDYCBpcyBhbGwgc2V0LiBUaW1lIHRvIG1vdmUgb24gYW5kIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBCT0FSRF9UUENJMjAwYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWc9Mj1jb25maWcgQk9BUkRfVFBDSTIwMFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciB0aGUgVEVXUyBUUENJLTIwMCBJbmR1c3RyeVBhY2sgY2FycmllciBib2FyZFwmIzM0O1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIElQQUNLX0JVU1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnLTYtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNDczCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gYW4gZXhwZXJ0IGluIGVtYmVkZGVkIHN5c3RlbXMgYXJjaGl0ZWN0dXJlOgoKKipEZXBlbmRlbmN5IENoYWluIEludmVzdGlnYXRpb24qKgoKQWxyaWdodCwgc28gYEJPQVJEX1RQQ0kyMDBgIGhhcyBhIGRlcGVuZGVuY3kgY2hhaW4uIEl0JiMzOTtzIGJ1aWx0IG9uIGBJUEFDS19CVVNgLCB3aGljaCBpcyBpdHNlbGYgcmVsaWFudCBvbiB0aGUgYFBDSWAgYnVzLiBCZWZvcmUgSSBjYW4gcHJvY2VlZCB3aXRoIGFueSB0cm91Ymxlc2hvb3Rpbmcgb3IgZGVzaWduIGNvbnNpZGVyYXRpb25zIHJlbGF0ZWQgdG8gYEJPQVJEX1RQQ0kyMDBgLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IHVuZGVybHlpbmcgYElQQUNLX0JVU2AgZGVwZW5kZW5jeS4gSXQmIzM5O3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIHRyYWNpbmcgZG93biB0aGUgZmxvdy4gSSBuZWVkIHRvIGtub3cgaG93IGBJUEFDS19CVVNgIGlzIGNvbmZpZ3VyZWQsIHdoYXQgcmVzb3VyY2VzIGl0IHJlcXVpcmVzLCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBgUENJYCBidXMuIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gdXBvbiB3aGljaCBgQk9BUkRfVFBDSTIwMGAgc3RhbmRzLCBzbyBJJiMzOTtsbCBzdGFydCB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElQQUNLX0JVUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrL0tjb25maWctNS1cbmRyaXZlcnMvaXBhY2svS2NvbmZpZzo2Om1lbnVjb25maWcgSVBBQ0tfQlVTXG5kcml2ZXJzL2lwYWNrL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O0luZHVzdHJ5UGFjayBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTc3MAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRW5hYmxpbmcgSVBBQ0tfQlVTIGFuZCBEZXBlbmRlbmN5IFNjcnV0aW55KioKCkFscmlnaHQsIHRoZSBjb3JlIGxvZ2ljIHBvaW50cyB1cyB0b3dhcmQgZW5hYmxpbmcgYElQQUNLX0JVU2AuIFRoYXQmIzM5O3MgdGhlIGRpcmVjdGlvbiB3ZSBuZWVkIHRvIGdvLiBCZWZvcmUgd2UgY29tbWl0LCBsZXQmIzM5O3MganVzdCBtYWtlIGFic29sdXRlbHkgc3VyZSB3ZSYjMzk7dmUgZ290IGFsbCBvdXIgZHVja3MgaW4gYSByb3cuIE5vdywgZ2l2ZW4gdGhhdCBkZWNpc2lvbiwgSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGF1ZGl0IHRoZSBkZXBlbmRlbmNpZXMuIFRoZSBnb2FsIGlzIHRvIHZlcmlmeSB0aGF0IGVuYWJsaW5nIGBJUEFDS19CVVNgIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgdW5mb3Jlc2VlbiBpc3N1ZXMgb3IgY29uZmxpY3RzIHdpdGhpbiB0aGUgYnJvYWRlciBgTUxYU1dfQ09SRWAgZnJhbWV3b3JrLiBOZWVkIHRvIG1ha2UgY2VydGFpbiB0aGF0IHdlJiMzOTtyZSBub3QgaW5hZHZlcnRlbnRseSBicmVha2luZyBhbnl0aGluZyB1cHN0cmVhbSBvciBjcmVhdGluZyBhIGRvd25zdHJlYW0gaXNzdWUgd2UgaGF2ZW4mIzM5O3QgYW50aWNpcGF0ZWQuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBLY29uZmlnIGFuZCBNYWtlZmlsZXMgYW5kIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGEgY2xlYW4gYW5kIHN0cmFpZ2h0Zm9yd2FyZCBlbmFibGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0xNz1jb25maWcgTUxYU1dfQ09SRV9IV01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7SFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxOTpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgSFdNT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MjA6XHRkZXBlbmRzIG9uICEoTUxYU1dfQ09SRT15IFx1MDAyNlx1MDAyNiBIV01PTj1tKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yMS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cdGJvb2wgXCYjMzQ7VGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Mjc6XHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXHUwMDI2XHUwMDI2IFRIRVJNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjgtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTMzPWNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjM1Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT01FTSBcdTAwMjZcdTAwMjYgTUxYU1dfQ09SRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNi1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTQ0PWNvbmZpZyBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtJMkMgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjQ2Olx0ZGVwZW5kcyBvbiBJMkMgXHUwMDI2XHUwMDI2IE1MWFNXX0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDctXHRkZWZhdWx0IG1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTU0PWNvbmZpZyBNTFhTV19TUEVDVFJVTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBTcGVjdHJ1bSBmYW1pbHkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NjpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgTUxYU1dfUENJIFx1MDAyNlx1MDAyNiBORVRfU1dJVENIREVWIFx1MDAyNlx1MDAyNiBWTEFOXzgwMjFRXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU3Olx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1ODpcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU5Olx0ZGVwZW5kcyBvbiBORVRfSVBHUkUgfHwgTkVUX0lQR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIElQVjZfR1JFIHx8IElQVjZfR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjE6XHRkZXBlbmRzIG9uIFZYTEFOIHx8IFZYTEFOPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTYzLVx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz03NT1jb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjc3Olx0ZGVwZW5kcyBvbiBNTFhTV19TUEVDVFJVTSBcdTAwMjZcdTAwMjYgRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc4LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz04Mz1jb25maWcgTUxYU1dfTUlOSU1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04NC1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBtaW5pbWFsIEkyQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjg1Olx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFx1MDAyNlx1MDAyNiBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODYtXHRkZWZhdWx0IG1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMxNjQKCQkJCQkJCW91dHB1dDogMjU1CgkJCQkJCQl0aG91Z2h0czogMTQxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWZpbmluZyB0aGUgU3l6a2FsbGVyIEZ1enppbmcgQ29uZmlndXJhdGlvbiBmb3IgUENJIERyaXZlciBDaGFuZ2VzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gY29uZmlndXJlIFN5emthbGxlciBlZmZlY3RpdmVseSB0byB0YXJnZXQgdGhlIHJlY2VudCBjaGFuZ2VzIGluIHRoZSBQQ0kgZHJpdmVyIGNvZGUuIEkmIzM5O3ZlIGdvdCB0byBjb25zaWRlciB0aGUgZGVwZW5kZW5jaWVzLCBhZmZlY3RlZCBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBmdXp6aW5nIHN0cmF0ZWd5LgoKRmlyc3QsIEkgc2VlIHRoZSBjb3JlIGNvbXBvbmVudHM6IGBNTFhTV19DT1JFYCBoYXMgbm8gZGVwZW5kZW5jaWVzLCBidXQgYE1MWFNXX1BDSWAgZGVwZW5kcyBvbiBgUENJYCwgYEhBU19JT01FTWAsIGFuZCBgTUxYU1dfQ09SRWAuIFdlJiMzOTtyZSBhbHNvIGRlYWxpbmcgd2l0aCB0aGVzZSBjb25maWcgb3B0aW9uczogYEFUQV9HRU5FUklDYCwgYElQQUNLX0JVU2AsIGBCT0FSRF9UUENJMjAwYCwgYW5kIGBTQ1NJX05TUDMyYC4gVGhlIGBTQ1NJX05TUDMyYCBtb2R1bGUgaXMgbGlrZWx5IHRvIGJlIGlnbm9yZWQgb24gNjQtYml0IGtlcm5lbHMsIHdoaWNoIFN5emthbGxlciB1c2VzLCBiZWNhdXNlIG9mIHRoZSBgITY0QklUYCBkZXBlbmRlbmN5LCBidXQgdGhhdCYjMzk7cyBmaW5lLgoKSSBuZWVkIHRvIGZvY3VzIG15IGF0dGVudGlvbiBvbiB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIGFmZmVjdGVkIGJ5IHRoZSBwYXRjaC4gVGhlIGNvcmUgY2hhbmdlcyBhcmUgaW4gYGRyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY2AsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGhvdyBQQ0kgZGV2aWNlIElEcyBhcmUgaGFuZGxlZCBkdXJpbmcgcHJvYmluZy4gSW5pdGlhbGx5LCBJIGlkZW50aWZpZWQgdGhlc2UgZnVuY3Rpb25zOiBgZG9fcGNpX2FkZF9keW5pZGAsIGBwY2lfYWRkX2R5bmlkYCwgYGRvX3BjaV9tYXRjaF9pZGAsIGBwY2lfbWF0Y2hfaWRgLCBgcGNpX21hdGNoX2RldmljZWAsIGBuZXdfaWRfc3RvcmVgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYW5kIGBwY2lfYnVzX21hdGNoYC4gVGhlIG1vZGlmaWVkIGRyaXZlciBwcm9iZSBmdW5jdGlvbnMgYXJlIGBhdGFfZ2VuZXJpY19pbml0X29uZWAsIGB0cGNpMjAwX3BjaV9wcm9iZWAsIGBtbHhzd19wY2lfcHJvYmVgLCBhbmQgYG5zcDMyX3Byb2JlYC4KCk5vdywgU3l6a2FsbGVyIGNhbiBoYW5kbGUgc3RhdGljIGZ1bmN0aW9ucyBpZiB0aGV5JiMzOTtyZSB1bmlxdWVseSBpZGVudGlmaWFibGUsIGFuZCB0aGF0JiMzOTtzIGtleS4gU28sIEkgcGxhbiB0byBpbmNsdWRlIGFsbCBvZiB0aGVzZSBpbiBgRm9jdXNTeW1ib2xzYDogYHBjaV9hZGRfZHluaWRgLCBgbmV3X2lkX3N0b3JlYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLgoKSSB1bmRlcnN0YW5kIHRoZSBkeW5hbWljcy4gV2hpbGUgYHBjaV9tYXRjaF9kZXZpY2VgIGlzIGNhbGxlZCBmcmVxdWVudGx5LCBpdCYjMzk7cyBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBpc24mIzM5O3QgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrIGJ1dCBzdGlsbCBhIGNyaXRpY2FsIGFyZWEuIGBuZXdfaWRfc3RvcmVgIGlzIHJlbGV2YW50IGJlY2F1c2UgaXQmIzM5O3MgY2FsbGVkIHdoZW4gd3JpdGluZyB0byB0aGUgc3lzZnMgYG5ld19pZGAuIEFuZCBgcGNpX2FkZF9keW5pZGAgaXMgYWxzbyBpbXBvcnRhbnQsIGFzIGl0JiMzOTtzIGNhbGxlZCBieSBgbmV3X2lkX3N0b3JlYCBhbmQgb3RoZXIgZHJpdmVycy4KClRvIGVuc3VyZSBJIGhhdmUgdGhlIGV4YWN0IG5hbWVzLCBJJiMzOTt2ZSBkb3VibGUtY2hlY2tlZCB0aGVtOiBgZG9fcGNpX2FkZF9keW5pZGAsIGBwY2lfYWRkX2R5bmlkYCwgYGRvX3BjaV9tYXRjaF9pZGAsIGBwY2lfbWF0Y2hfaWRgLCBgcGNpX21hdGNoX2RldmljZWAsIGBuZXdfaWRfc3RvcmVgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYHBjaV9idXNfbWF0Y2hgLCBgYXRhX2dlbmVyaWNfaW5pdF9vbmVgLCBgdHBjaTIwMF9wY2lfcHJvYmVgLCBgbWx4c3dfcGNpX3Byb2JlYCwgYW5kIGBuc3AzMl9wcm9iZWAuCgpPa2F5LCBJJiMzOTttIHJlZmluaW5nIHRoZSBsaXN0LiBXZSB3YW50IHRoZSBvbmVzIGRpcmVjdGx5IGxpbmtlZCB0byB0aGUgY2hhbmdlZCBiZWhhdmlvciBvciB0aGUgYWZmZWN0ZWQgZHJpdmVyczogYG5ld19pZF9zdG9yZWAsIGBkb19wY2lfYWRkX2R5bmlkYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLiBJJiMzOTtsbCBrZWVwIGBwY2lfbWF0Y2hfZGV2aWNlYCBpbiB0aGUgZm9jdXMgbGlzdCBiZWNhdXNlIGl0JiMzOTtzIGF0IHRoZSBjb3JlIG9mIGRldmljZSBtYXRjaGluZyB3aGljaCBpcyB3aGF0IHRoaXMgcGF0Y2ggaXMgYWJvdXQuCgpGaW5hbGx5LCBJIGNvbmZpcm1lZCBmdW5jdGlvbiBzaWduYXR1cmVzIGFuZCB0aGUgb3ZlcmFsbCBnb2FsIG9mIHRoZSBwYXRjaDogdG8gYWRkcmVzcyBQQ0kgZGV2aWNlIElEIG1hbmFnZW1lbnQsIGFuZCBzcGVjaWZpY2FsbHkgaG93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBgcGNpX2RldmljZV9pZGAgc3RydWN0dXJlcyBhcmUgaGFuZGxlZCBkdXJpbmcgcHJvYmUuIFRoaXMgbWVhbnMgZnV6emluZyB0aGUgZHluYW1pYyBJRCBzeXNmcyBpbnRlcmZhY2UsIHRoZSBjb3JlIFBDSSBtYXRjaGluZyBhbmQgcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhvc2UgbW9kaWZpZWQgZHJpdmVycyBpcyBjcnVjaWFsLgoKTm93LCBsZXQgbWUgbWFrZSBzdXJlIGFsbCBkZXBlbmRlbmNpZXMgYXJlIGhhbmRsZWQuIEkmIzM5O20gbGlzdGluZyBgQVRBX0dFTkVSSUNgLCBgSVBBQ0tfQlVTYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgIHRvIHRoZSBjb25maWd1cmF0aW9uLiBgQVRBYCBtaWdodCBiZSBuZWVkZWQgZm9yIGBBVEFfR0VORVJJQ2AgYW5kIGl0IGlzIGEgbWVudWNvbmZpZywgYXMgaXMgYElQQUNLX0JVU2AuIGBNTFhTV19DT1JFYCwgYE1MWFNXX1BDSWAgYW5kIGBTQ1NJX05TUDMyYCBhcmUgdHJpc3RhdGVzLgoKV2l0aCBhbGwKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRBX0dFTkVSSUMmIzM0OywKICAgICYjMzQ7SVBBQ0tfQlVTJiMzNDssCiAgICAmIzM0O0JPQVJEX1RQQ0kyMDAmIzM0OywKICAgICYjMzQ7TUxYU1dfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFhTV19QQ0kmIzM0OywKICAgICYjMzQ7U0NTSV9OU1AzMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ld19pZF9zdG9yZSYjMzQ7LAogICAgJiMzNDtkb19wY2lfYWRkX2R5bmlkJiMzNDssCiAgICAmIzM0O3BjaV9tYXRjaF9kZXZpY2UmIzM0OywKICAgICYjMzQ7X19wY2lfZGV2aWNlX3Byb2JlJiMzNDssCiAgICAmIzM0O2F0YV9nZW5lcmljX2luaXRfb25lJiMzNDssCiAgICAmIzM0O3RwY2kyMDBfcGNpX3Byb2JlJiMzNDssCiAgICAmIzM0O21seHN3X3BjaV9wcm9iZSYjMzQ7LAogICAgJiMzNDtuc3AzMl9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBQQ0kgZGV2aWNlIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzIHdpdGggZHluYW1pYyBQQ0kgSURzLiBJdCBhbGxvY2F0ZXMgdGhlIG1hdGNoZWQgYHBjaV9kZXZpY2VfaWRgIG9uIHRoZSBzdGFjayBkdXJpbmcgcHJvYmUgYW5kIHVwZGF0ZXMgc2V2ZXJhbCBkcml2ZXJzIHRoYXQgcHJldmlvdXNseSBzYXZlZCB0aGlzIHBvaW50ZXIgdG8gcHJldmVudCBzdGFjayB1c2UtYWZ0ZXItZnJlZS4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIFBDSSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSAoYG5ld19pZF9zdG9yZWApLCB0aGUgUENJIG1hdGNoaW5nL3Byb2JpbmcgbG9naWMsIGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIG9mIHRoZSBtb2RpZmllZCBkcml2ZXJzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtBVEFfR0VORVJJQyYjMzQ7LAogICAgJiMzNDtJUEFDS19CVVMmIzM0OywKICAgICYjMzQ7Qk9BUkRfVFBDSTIwMCYjMzQ7LAogICAgJiMzNDtNTFhTV19DT1JFJiMzNDssCiAgICAmIzM0O01MWFNXX1BDSSYjMzQ7LAogICAgJiMzNDtTQ1NJX05TUDMyJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV3X2lkX3N0b3JlJiMzNDssCiAgICAmIzM0O2RvX3BjaV9hZGRfZHluaWQmIzM0OywKICAgICYjMzQ7cGNpX21hdGNoX2RldmljZSYjMzQ7LAogICAgJiMzNDtfX3BjaV9kZXZpY2VfcHJvYmUmIzM0OywKICAgICYjMzQ7YXRhX2dlbmVyaWNfaW5pdF9vbmUmIzM0OywKICAgICYjMzQ7dHBjaTIwMF9wY2lfcHJvYmUmIzM0OywKICAgICYjMzQ7bWx4c3dfcGNpX3Byb2JlJiMzNDssCiAgICAmIzM0O25zcDMyX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFBDSSBkZXZpY2UgbWF0Y2hpbmcgYW5kIHByb2JpbmcgbG9naWMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMgd2l0aCBkeW5hbWljIFBDSSBJRHMuIEl0IGFsbG9jYXRlcyB0aGUgbWF0Y2hlZCBgcGNpX2RldmljZV9pZGAgb24gdGhlIHN0YWNrIGR1cmluZyBwcm9iZSBhbmQgdXBkYXRlcyBzZXZlcmFsIGRyaXZlcnMgdGhhdCBwcmV2aW91c2x5IHNhdmVkIHRoaXMgcG9pbnRlciB0byBwcmV2ZW50IHN0YWNrIHVzZS1hZnRlci1mcmVlLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgUENJIGR5bmFtaWMgSUQgc3lzZnMgaW50ZXJmYWNlIChgbmV3X2lkX3N0b3JlYCksIHRoZSBQQ0kgbWF0Y2hpbmcvcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhlIG1vZGlmaWVkIGRyaXZlcnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzozMC4xMzQ2NzM0MDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjQwMTI0MzA3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRBX0dFTkVSSUNcIixcbiAgICBcIklQQUNLX0JVU1wiLFxuICAgIFwiQk9BUkRfVFBDSTIwMFwiLFxuICAgIFwiTUxYU1dfQ09SRVwiLFxuICAgIFwiTUxYU1dfUENJXCIsXG4gICAgXCJTQ1NJX05TUDMyXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmV3X2lkX3N0b3JlXCIsXG4gICAgXCJkb19wY2lfYWRkX2R5bmlkXCIsXG4gICAgXCJwY2lfbWF0Y2hfZGV2aWNlXCIsXG4gICAgXCJfX3BjaV9kZXZpY2VfcHJvYmVcIixcbiAgICBcImF0YV9nZW5lcmljX2luaXRfb25lXCIsXG4gICAgXCJ0cGNpMjAwX3BjaV9wcm9iZVwiLFxuICAgIFwibWx4c3dfcGNpX3Byb2JlXCIsXG4gICAgXCJuc3AzMl9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFBDSSBkZXZpY2UgbWF0Y2hpbmcgYW5kIHByb2JpbmcgbG9naWMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMgd2l0aCBkeW5hbWljIFBDSSBJRHMuIEl0IGFsbG9jYXRlcyB0aGUgbWF0Y2hlZCBgcGNpX2RldmljZV9pZGAgb24gdGhlIHN0YWNrIGR1cmluZyBwcm9iZSBhbmQgdXBkYXRlcyBzZXZlcmFsIGRyaXZlcnMgdGhhdCBwcmV2aW91c2x5IHNhdmVkIHRoaXMgcG9pbnRlciB0byBwcmV2ZW50IHN0YWNrIHVzZS1hZnRlci1mcmVlLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgUENJIGR5bmFtaWMgSUQgc3lzZnMgaW50ZXJmYWNlIChgbmV3X2lkX3N0b3JlYCksIHRoZSBQQ0kgbWF0Y2hpbmcvcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhlIG1vZGlmaWVkIGRyaXZlcnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjMwLjEzNDY3ODc3OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1MDEyMzExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDkxMmQwMzViMTIzZDhiMjBiMTZkOGFiY2QxOTkxYzAxYmJhOWQ2NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1biAzMCAxNjoyMzoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xcbmluZGV4IGU3MGI2YzA4OWNmMTc5Li4xOGVhNzQwY2E1ODI5MyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jXFxuKysrIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xcbkBAIC01MSwxMSArNTEsMTEgQEAgZW51bSB7XFxuIHN0YXRpYyBpbnQgZ2VuZXJpY19zZXRfbW9kZShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHN0cnVjdCBhdGFfZGV2aWNlICoqdW51c2VkKVxcbiB7XFxuIFxcdHN0cnVjdCBhdGFfcG9ydCAqYXAgPSBsaW5rLVxcdTAwM2VhcDtcXG4tXFx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkID0gYXAtXFx1MDAzZWhvc3QtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG4rXFx0dW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSA9ICh1bnNpZ25lZCBsb25nKWFwLVxcdTAwM2Vob3N0LVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuIFxcdGludCBkbWFfZW5hYmxlZCA9IDA7XFxuIFxcdHN0cnVjdCBhdGFfZGV2aWNlICpkZXY7XFxuIFxcbi1cXHRpZiAoaWQtXFx1MDAzZWRyaXZlcl9kYXRhIFxcdTAwMjYgQVRBX0dFTl9GT1JDRV9ETUEpIHtcXG4rXFx0aWYgKGRyaXZlcl9kYXRhIFxcdTAwMjYgQVRBX0dFTl9GT1JDRV9ETUEpIHtcXG4gXFx0XFx0ZG1hX2VuYWJsZWQgPSAweGZmO1xcbiBcXHR9IGVsc2UgaWYgKGFwLVxcdTAwM2Vpb2FkZHIuYm1kbWFfYWRkcikge1xcbiBcXHRcXHQvKiBCaXRzIDUgYW5kIDYgaW5kaWNhdGUgaWYgRE1BIGlzIGFjdGl2ZSBvbiBtYXN0ZXIvc2xhdmUgKi9cXG5AQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbnQgYXRhX2dlbmVyaWNfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWRcXG4gXFx0XFx0XFx0cmV0dXJuIHJjO1xcbiBcXHRcXHRwY2ltX3Bpbl9kZXZpY2UoZGV2KTtcXG4gXFx0fVxcbi1cXHRyZXR1cm4gYXRhX3BjaV9ibWRtYV9pbml0X29uZShkZXYsIHBwaSwgXFx1MDAyNmdlbmVyaWNfc2h0LCAodm9pZCAqKWlkLCAwKTtcXG4rXFx0cmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksIFxcdTAwMjZnZW5lcmljX3NodCwgKHZvaWQgKilpZC1cXHUwMDNlZHJpdmVyX2RhdGEsIDApO1xcbiB9XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRhX2dlbmVyaWNbXSA9IHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xcbmluZGV4IDA1ZGNiNjY3NWNkNjYxLi4xY2Y1MWY3NjMyOTMyYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xcbisrKyBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jXFxuQEAgLTU2Miw3ICs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbiBcXG4gXFx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXFxuIFxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYgPSBwZGV2O1xcbi1cXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpZF90YWJsZSA9IChzdHJ1Y3QgcGNpX2RldmljZV9pZCAqKWlkO1xcbiBcXG4gXFx0LyogcmVnaXN0ZXIgdGhlIGRldmljZSBhbmQgaW5pdGlhbGl6ZSBpdCAqL1xcbiBcXHRyZXQgPSB0cGNpMjAwX2luc3RhbGwodHBjaTIwMCk7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcXG5pbmRleCBlNzlhYzY0YWJjZmZhYy4uYTJiZjMxMjU3OTRiN2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcXG4rKysgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaFxcbkBAIC0xNDUsNyArMTQ1LDYgQEAgc3RydWN0IHRwY2kyMDBfc2xvdCB7XFxuICAqL1xcbiBzdHJ1Y3QgdHBjaTIwMF9pbmZvcyB7XFxuIFxcdHN0cnVjdCBwY2lfZGV2XFx0XFx0XFx0KnBkZXY7XFxuLVxcdHN0cnVjdCBwY2lfZGV2aWNlX2lkXFx0XFx0KmlkX3RhYmxlO1xcbiBcXHRzdHJ1Y3QgdHBjaTIwMF9yZWdzIF9faW9tZW1cXHQqaW50ZXJmYWNlX3JlZ3M7XFxuIFxcdHZvaWQgX19pb21lbVxcdFxcdFxcdCpjZmdfcmVncztcXG4gXFx0c3RydWN0IGlwYWNrX2J1c19kZXZpY2VcXHRcXHQqaXBhY2tfYnVzO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXFxuaW5kZXggMGRhODVkMzY2NDdkOTEuLmJmZTMyNjhkZmRjMTdkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmNcXG5AQCAtMTMwLDcgKzEzMCw2IEBAIHN0cnVjdCBtbHhzd19wY2kge1xcbiBcXHRcXHR9IGNvbXA7XFxuIFxcdH0gY21kO1xcbiBcXHRzdHJ1Y3QgbWx4c3dfYnVzX2luZm8gYnVzX2luZm87XFxuLVxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZDtcXG4gXFx0ZW51bSBtbHhzd19wY2lfY3FlX3YgbWF4X2NxZV92ZXI7IC8qIE1heGltYWwgc3VwcG9ydGVkIENRRSB2ZXJzaW9uICovXFxuIFxcdHU4IG51bV9jcXM7IC8qIE51bWJlciBvZiBDUXMgKi9cXG4gXFx0dTggbnVtX3NkcXM7IC8qIE51bWJlciBvZiBTRFFzICovXFxuQEAgLTE3NjgsNyArMTc2Nyw2IEBAIHN0YXRpYyB2b2lkIG1seHN3X3BjaV9tYm94X2ZyZWUoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLFxcbiB9XFxuIFxcbiBzdGF0aWMgaW50IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksXFxuLVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsXFxuIFxcdFxcdFxcdFxcdCAgICB1MzIgKnBfc3lzX3N0YXR1cylcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIGVuZDtcXG5AQCAtMTgzOSw3ICsxODM3LDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcmVzZXRfc3coc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpKVxcbiB9XFxuIFxcbiBzdGF0aWMgaW50XFxuLW1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4rbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSlcXG4ge1xcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IG1seHN3X3BjaS1cXHUwMDNlcGRldjtcXG4gXFx0Ym9vbCBwY2lfcmVzZXRfc2JyX3N1cHBvcnRlZCA9IGZhbHNlO1xcbkBAIC0xODQ4LDcgKzE4NDYsNyBAQCBtbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuIFxcdHUzMiBzeXNfc3RhdHVzO1xcbiBcXHRpbnQgZXJyO1xcbiBcXG4tXFx0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgaWQsIFxcdTAwMjZzeXNfc3RhdHVzKTtcXG4rXFx0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgXFx1MDAyNnN5c19zdGF0dXMpO1xcbiBcXHRpZiAoZXJyKSB7XFxuIFxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIkZhaWxlZCB0byByZWFjaCBzeXN0ZW0gcmVhZHkgc3RhdHVzIGJlZm9yZSByZXNldC4gU3RhdHVzIGlzIDB4JXhcXFxcblxcXCIsXFxuIFxcdFxcdFxcdHN5c19zdGF0dXMpO1xcbkBAIC0xODgwLDcgKzE4NzgsNyBAQCBtbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuIFxcdGlmIChlcnIpXFxuIFxcdFxcdHJldHVybiBlcnI7XFxuIFxcbi1cXHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBpZCwgXFx1MDAyNnN5c19zdGF0dXMpO1xcbitcXHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBcXHUwMDI2c3lzX3N0YXR1cyk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XFxcXG5cXFwiLFxcbiBcXHRcXHRcXHRzeXNfc3RhdHVzKTtcXG5AQCAtMTkzMiw3ICsxOTMwLDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfaW5pdCh2b2lkICpidXNfcHJpdiwgc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsXFxuIFxcdGlmICghbWJveClcXG4gXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuIFxcbi1cXHRlcnIgPSBtbHhzd19wY2lfcmVzZXQobWx4c3dfcGNpLCBtbHhzd19wY2ktXFx1MDAzZWlkKTtcXG4rXFx0ZXJyID0gbWx4c3dfcGNpX3Jlc2V0KG1seHN3X3BjaSk7XFxuIFxcdGlmIChlcnIpXFxuIFxcdFxcdGdvdG8gZXJyX3Jlc2V0O1xcbiBcXG5AQCAtMjQ2NCw3ICsyNDYyLDYgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gXFx0bWx4c3dfcGNpLVxcdTAwM2VidXNfaW5mby5kZXZpY2VfbmFtZSA9IHBjaV9uYW1lKG1seHN3X3BjaS1cXHUwMDNlcGRldik7XFxuIFxcdG1seHN3X3BjaS1cXHUwMDNlYnVzX2luZm8uZGV2ID0gXFx1MDAyNnBkZXYtXFx1MDAzZWRldjtcXG4gXFx0bWx4c3dfcGNpLVxcdTAwM2VidXNfaW5mby5yZWFkX2Nsb2NrX2NhcGFibGUgPSB0cnVlO1xcbi1cXHRtbHhzd19wY2ktXFx1MDAzZWlkID0gaWQ7XFxuIFxcbiBcXHRlcnIgPSBtbHhzd19jb3JlX2J1c19kZXZpY2VfcmVnaXN0ZXIoXFx1MDAyNm1seHN3X3BjaS1cXHUwMDNlYnVzX2luZm8sXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNm1seHN3X3BjaV9idXMsIG1seHN3X3BjaSwgZmFsc2UsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY1xcbmluZGV4IGYzNjc3OGU2MmFjMWE1Li5mYWQwMjhiOWRjNTNlYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcXG4rKysgYi9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcXG5AQCAtMjksNiArMjksNDggQEAgc3RydWN0IHBjaV9keW5pZCB7XFxuIFxcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xcbiB9O1xcbiBcXG4rLyoqXFxuKyAqIGRvX3BjaV9hZGRfZHluaWQgLSBhZGQgYSBuZXcgUENJIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgcmUtcHJvYmUgZGV2aWNlc1xcbisgKiBAZHJ2OiB0YXJnZXQgcGNpIGRyaXZlclxcbisgKiBAaWQ6IElEIHRvIGJlIGFkZGVkXFxuKyAqIEBjaGVja19kdXA6IHdoZXRoZXIgdG8gY2hlY2sgaWYgbWF0Y2hpbmcgSUQgaXMgYWxyZWFkeSBwcmVzZW50XFxuKyAqXFxuKyAqIEFkZHMgYSBuZXcgZHluYW1pYyBwY2kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCBjYXVzZXMgdGhlXFxuKyAqIGRyaXZlciB0byBwcm9iZSBmb3IgYWxsIGRldmljZXMgYWdhaW4uICBAZHJ2IG11c3QgaGF2ZSBiZWVuXFxuKyAqIHJlZ2lzdGVyZWQgcHJpb3IgdG8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxcbisgKlxcbisgKiBDT05URVhUOlxcbisgKiBEb2VzIEdGUF9LRVJORUwgYWxsb2NhdGlvbi5cXG4rICpcXG4rICogUkVUVVJOUzpcXG4rICogMCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS5cXG4rICovXFxuK3N0YXRpYyBpbnQgZG9fcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGJvb2wgY2hlY2tfZHVwKVxcbit7XFxuK1xcdHN0cnVjdCBwY2lfZHluaWQgKmR5bmlkLCAqZXhpc3RpbmdfZHluaWQ7XFxuK1xcbitcXHRkeW5pZCA9IGt6YWxsb2Nfb2JqKCpkeW5pZCk7XFxuK1xcdGlmICghZHluaWQpXFxuK1xcdFxcdHJldHVybiAtRU5PTUVNO1xcbitcXG4rXFx0ZHluaWQtXFx1MDAzZWlkID0gKmlkO1xcbitcXG4rXFx0e1xcbitcXHRcXHRndWFyZChzcGlubG9jaykoXFx1MDAyNmRydi1cXHUwMDNlZHluaWRzLmxvY2spO1xcbitcXHRcXHRpZiAoY2hlY2tfZHVwKSB7XFxuK1xcdFxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZXhpc3RpbmdfZHluaWQsIFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XFxuK1xcdFxcdFxcdFxcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFxcdTAwMjZleGlzdGluZ19keW5pZC1cXHUwMDNlaWQsIGlkKSkge1xcbitcXHRcXHRcXHRcXHRcXHRrZnJlZShkeW5pZCk7XFxuK1xcdFxcdFxcdFxcdFxcdHJldHVybiAtRUVYSVNUO1xcbitcXHRcXHRcXHRcXHR9XFxuK1xcdFxcdFxcdH1cXG4rXFx0XFx0fVxcbitcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZkeW5pZC1cXHUwMDNlbm9kZSwgXFx1MDAyNmRydi1cXHUwMDNlZHluaWRzLmxpc3QpO1xcbitcXHR9XFxuK1xcbitcXHRyZXR1cm4gZHJpdmVyX2F0dGFjaChcXHUwMDI2ZHJ2LVxcdTAwM2Vkcml2ZXIpO1xcbit9XFxuK1xcbiAvKipcXG4gICogcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzXFxuICAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyXFxuQEAgLTU2LDI1ICs5OCwxNyBAQCBpbnQgcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LFxcbiBcXHRcXHQgIHVuc2lnbmVkIGludCBjbGFzcywgdW5zaWduZWQgaW50IGNsYXNzX21hc2ssXFxuIFxcdFxcdCAgdW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSlcXG4ge1xcbi1cXHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZDtcXG4tXFxuLVxcdGR5bmlkID0ga3phbGxvY19vYmooKmR5bmlkKTtcXG4tXFx0aWYgKCFkeW5pZClcXG4tXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLVxcbi1cXHRkeW5pZC1cXHUwMDNlaWQudmVuZG9yID0gdmVuZG9yO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuZGV2aWNlID0gZGV2aWNlO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuc3VidmVuZG9yID0gc3VidmVuZG9yO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuc3ViZGV2aWNlID0gc3ViZGV2aWNlO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuY2xhc3MgPSBjbGFzcztcXG4tXFx0ZHluaWQtXFx1MDAzZWlkLmNsYXNzX21hc2sgPSBjbGFzc19tYXNrO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YTtcXG4tXFxuLVxcdHNwaW5fbG9jayhcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubG9jayk7XFxuLVxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmR5bmlkLVxcdTAwM2Vub2RlLCBcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubGlzdCk7XFxuLVxcdHNwaW5fdW5sb2NrKFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5sb2NrKTtcXG4tXFxuLVxcdHJldHVybiBkcml2ZXJfYXR0YWNoKFxcdTAwMjZkcnYtXFx1MDAzZWRyaXZlcik7XFxuK1xcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkID0ge1xcbitcXHRcXHQudmVuZG9yID0gdmVuZG9yLFxcbitcXHRcXHQuZGV2aWNlID0gZGV2aWNlLFxcbitcXHRcXHQuc3VidmVuZG9yID0gc3VidmVuZG9yLFxcbitcXHRcXHQuc3ViZGV2aWNlID0gc3ViZGV2aWNlLFxcbitcXHRcXHQuY2xhc3MgPSBjbGFzcyxcXG4rXFx0XFx0LmNsYXNzX21hc2sgPSBjbGFzc19tYXNrLFxcbitcXHRcXHQuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YSxcXG4rXFx0fTtcXG4rXFxuK1xcdHJldHVybiBkb19wY2lfYWRkX2R5bmlkKGRydiwgXFx1MDAyNmlkLCBmYWxzZSk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9HUEwocGNpX2FkZF9keW5pZCk7XFxuIFxcbkBAIC05MCw2ICsxMjQsMjkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXFxuIFxcdHNwaW5fdW5sb2NrKFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5sb2NrKTtcXG4gfVxcbiBcXG4rLyoqXFxuKyAqIGRvX3BjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBJRCBtYXRjaGVzIGEgZ2l2ZW4gcGNpX2lkIHRhYmxlXFxuKyAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cXG4rICogQGRldl9pZDogdGhlIGFjdHVhbCBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0LlxcbisgKlxcbisgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvclxcbisgKiAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cXG4rICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZG9fcGNpX21hdGNoX2lkKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIGJvb2wgbWF0Y2hfb3ZlcnJpZGVfb25seSlcXG4re1xcbitcXHRpZiAoaWRzKSB7XFxuK1xcdFxcdHdoaWxlIChpZHMtXFx1MDAzZXZlbmRvciB8fCBpZHMtXFx1MDAzZXN1YnZlbmRvciB8fCBpZHMtXFx1MDAzZWNsYXNzX21hc2spIHtcXG4rXFx0XFx0XFx0aWYgKCghaWRzLVxcdTAwM2VvdmVycmlkZV9vbmx5IHx8IG1hdGNoX292ZXJyaWRlX29ubHkpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdFxcdFxcdCAgICBwY2lfbWF0Y2hfb25lX2lkKGlkcywgZGV2X2lkKSlcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIGlkcztcXG4rXFx0XFx0XFx0aWRzKys7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXHRyZXR1cm4gTlVMTDtcXG4rfVxcbitcXG4gLyoqXFxuICAqIHBjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBkZXZpY2UgbWF0Y2hlcyBhIGdpdmVuIHBjaV9pZCB0YWJsZVxcbiAgKiBAaWRzOiBhcnJheSBvZiBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZXMgdG8gc2VhcmNoIGluXFxuQEAgLTEwNSwxNCArMTYyLDkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXFxuIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkcyxcXG4gXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXFxuIHtcXG4tXFx0aWYgKGlkcykge1xcbi1cXHRcXHR3aGlsZSAoaWRzLVxcdTAwM2V2ZW5kb3IgfHwgaWRzLVxcdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVxcdTAwM2VjbGFzc19tYXNrKSB7XFxuLVxcdFxcdFxcdGlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZHMsIGRldikpXFxuLVxcdFxcdFxcdFxcdHJldHVybiBpZHM7XFxuLVxcdFxcdFxcdGlkcysrO1xcbi1cXHRcXHR9XFxuLVxcdH1cXG4tXFx0cmV0dXJuIE5VTEw7XFxuK1xcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpO1xcbitcXG4rXFx0cmV0dXJuIGRvX3BjaV9tYXRjaF9pZChpZHMsIFxcdTAwMjZkZXZfaWQsIHRydWUpO1xcbiB9XFxuIEVYUE9SVF9TWU1CT0wocGNpX21hdGNoX2lkKTtcXG4gXFxuQEAgLTEyNyw2MSArMTc5LDUyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfZGV2aWNlX2lkX2FueSA9IHtcXG4gICogcGNpX21hdGNoX2RldmljZSAtIFNlZSBpZiBhIGRldmljZSBtYXRjaGVzIGEgZHJpdmVyJ3MgbGlzdCBvZiBJRHNcXG4gICogQGRydjogdGhlIFBDSSBkcml2ZXIgdG8gbWF0Y2ggYWdhaW5zdFxcbiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxcbisgKiBAaWQ6IE1hdGNoZWQgcGNpX2RldmljZV9pZFxcbiAgKlxcbiAgKiBVc2VkIGJ5IGEgZHJpdmVyIHRvIGNoZWNrIHdoZXRoZXIgYSBQQ0kgZGV2aWNlIGlzIGluIGl0cyBsaXN0IG9mXFxuICAqIHN1cHBvcnRlZCBkZXZpY2VzIG9yIGluIHRoZSBkeW5pZHMgbGlzdCwgd2hpY2ggbWF5IGhhdmUgYmVlbiBhdWdtZW50ZWRcXG4tICogdmlhIHRoZSBzeXNmcyBcXFwibmV3X2lkXFxcIiBmaWxlLiAgUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZFxcbi0gKiBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guXFxuKyAqIHZpYSB0aGUgc3lzZnMgXFxcIm5ld19pZFxcXCIgZmlsZS4gIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIG1hdGNoLCB0aGUgbWF0Y2hlZFxcbisgKiBJRCBpcyBzdG9yZWQgaW4gQGlkLlxcbiAgKi9cXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgcGNpX2RldiAqZGV2KVxcbitzdGF0aWMgYm9vbCBwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXFxuK1xcdFxcdFxcdCAgICAgc3RydWN0IHBjaV9kZXYgKmRldixcXG4rXFx0XFx0XFx0ICAgICBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuIHtcXG4gXFx0c3RydWN0IHBjaV9keW5pZCAqZHluaWQ7XFxuLVxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEwsICppZHM7XFxuK1xcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEw7XFxuK1xcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZDtcXG4gXFx0aW50IHJldDtcXG4gXFxuIFxcdC8qIFdoZW4gZHJpdmVyX292ZXJyaWRlIGlzIHNldCwgb25seSBiaW5kIHRvIHRoZSBtYXRjaGluZyBkcml2ZXIgKi9cXG4gXFx0cmV0ID0gZGV2aWNlX21hdGNoX2RyaXZlcl9vdmVycmlkZShcXHUwMDI2ZGV2LVxcdTAwM2VkZXYsIFxcdTAwMjZkcnYtXFx1MDAzZWRyaXZlcik7XFxuIFxcdGlmIChyZXQgPT0gMClcXG4tXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcdFxcdHJldHVybiBmYWxzZTtcXG4gXFxuK1xcdGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpO1xcbiBcXHQvKiBMb29rIGF0IHRoZSBkeW5hbWljIGlkcyBmaXJzdCwgYmVmb3JlIHRoZSBzdGF0aWMgb25lcyAqL1xcbi1cXHRzcGluX2xvY2soXFx1MDAyNmRydi1cXHUwMDNlZHluaWRzLmxvY2spO1xcbi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGR5bmlkLCBcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubGlzdCwgbm9kZSkge1xcbi1cXHRcXHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoXFx1MDAyNmR5bmlkLVxcdTAwM2VpZCwgZGV2KSkge1xcbi1cXHRcXHRcXHRmb3VuZF9pZCA9IFxcdTAwMjZkeW5pZC1cXHUwMDNlaWQ7XFxuLVxcdFxcdFxcdGJyZWFrO1xcbitcXHR7XFxuK1xcdFxcdGd1YXJkKHNwaW5sb2NrKShcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubG9jayk7XFxuK1xcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZHluaWQsIFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XFxuK1xcdFxcdFxcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFxcdTAwMjZkeW5pZC1cXHUwMDNlaWQsIFxcdTAwMjZkZXZfaWQpKSB7XFxuK1xcdFxcdFxcdFxcdCppZCA9IGR5bmlkLVxcdTAwM2VpZDtcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIHRydWU7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbiBcXHR9XFxuLVxcdHNwaW5fdW5sb2NrKFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5sb2NrKTtcXG4tXFxuLVxcdGlmIChmb3VuZF9pZClcXG4tXFx0XFx0cmV0dXJuIGZvdW5kX2lkO1xcbiBcXG4tXFx0Zm9yIChpZHMgPSBkcnYtXFx1MDAzZWlkX3RhYmxlOyAoZm91bmRfaWQgPSBwY2lfbWF0Y2hfaWQoaWRzLCBkZXYpKTtcXG4tXFx0ICAgICBpZHMgPSBmb3VuZF9pZCArIDEpIHtcXG4tXFx0XFx0LypcXG4tXFx0XFx0ICogVGhlIG1hdGNoIHRhYmxlIGlzIHNwbGl0IGJhc2VkIG9uIGRyaXZlcl9vdmVycmlkZS5cXG4tXFx0XFx0ICogSW4gY2FzZSBvdmVycmlkZV9vbmx5IHdhcyBzZXQsIGVuZm9yY2UgZHJpdmVyX292ZXJyaWRlXFxuLVxcdFxcdCAqIG1hdGNoaW5nLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0aWYgKGZvdW5kX2lkLVxcdTAwM2VvdmVycmlkZV9vbmx5KSB7XFxuLVxcdFxcdFxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbi1cXHRcXHRcXHRcXHRyZXR1cm4gZm91bmRfaWQ7XFxuLVxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdHJldHVybiBmb3VuZF9pZDtcXG4tXFx0XFx0fVxcbitcXHRmb3VuZF9pZCA9IGRvX3BjaV9tYXRjaF9pZChkcnYtXFx1MDAzZWlkX3RhYmxlLCBcXHUwMDI2ZGV2X2lkLCByZXQgXFx1MDAzZSAwKTtcXG4rXFx0aWYgKGZvdW5kX2lkKSB7XFxuK1xcdFxcdCppZCA9ICpmb3VuZF9pZDtcXG4rXFx0XFx0cmV0dXJuIHRydWU7XFxuIFxcdH1cXG4gXFxuIFxcdC8qIGRyaXZlcl9vdmVycmlkZSB3aWxsIGFsd2F5cyBtYXRjaCwgc2VuZCBhIGR1bW15IGlkICovXFxuLVxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbi1cXHRcXHRyZXR1cm4gXFx1MDAyNnBjaV9kZXZpY2VfaWRfYW55O1xcbi1cXHRyZXR1cm4gTlVMTDtcXG4tfVxcbitcXHRpZiAocmV0IFxcdTAwM2UgMCkge1xcbitcXHRcXHQqaWQgPSBwY2lfZGV2aWNlX2lkX2FueTtcXG4rXFx0XFx0cmV0dXJuIHRydWU7XFxuK1xcdH1cXG4gXFxuLXN0YXRpYyB2b2lkIF9wY2lfZnJlZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KVxcbi17XFxuLVxcdGtmcmVlKHRvX3BjaV9kZXYoZGV2KSk7XFxuK1xcdHJldHVybiBmYWxzZTtcXG4gfVxcbiBcXG4gLyoqXFxuQEAgLTE5NywzOCArMjQwLDIyIEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXFxuIHtcXG4gXFx0c3RydWN0IHBjaV9kcml2ZXIgKnBkcnYgPSB0b19wY2lfZHJpdmVyKGRyaXZlcik7XFxuIFxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMgPSBwZHJ2LVxcdTAwM2VpZF90YWJsZTtcXG4tXFx0dTMyIHZlbmRvciwgZGV2aWNlLCBzdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxcbi1cXHRcXHRzdWJkZXZpY2UgPSBQQ0lfQU5ZX0lELCBjbGFzcyA9IDAsIGNsYXNzX21hc2sgPSAwO1xcbi1cXHR1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhID0gMDtcXG4rXFx0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XFxuK1xcdFxcdC5zdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxcbitcXHRcXHQuc3ViZGV2aWNlID0gUENJX0FOWV9JRFxcbitcXHR9O1xcbiBcXHRpbnQgZmllbGRzO1xcbiBcXHRpbnQgcmV0dmFsID0gMDtcXG4gXFxuIFxcdGZpZWxkcyA9IHNzY2FuZihidWYsIFxcXCIleCAleCAleCAleCAleCAleCAlbHhcXFwiLFxcbi1cXHRcXHRcXHRcXHUwMDI2dmVuZG9yLCBcXHUwMDI2ZGV2aWNlLCBcXHUwMDI2c3VidmVuZG9yLCBcXHUwMDI2c3ViZGV2aWNlLFxcbi1cXHRcXHRcXHRcXHUwMDI2Y2xhc3MsIFxcdTAwMjZjbGFzc19tYXNrLCBcXHUwMDI2ZHJpdmVyX2RhdGEpO1xcbitcXHRcXHRcXHRcXHUwMDI2aWQudmVuZG9yLCBcXHUwMDI2aWQuZGV2aWNlLCBcXHUwMDI2aWQuc3VidmVuZG9yLCBcXHUwMDI2aWQuc3ViZGV2aWNlLFxcbitcXHRcXHRcXHRcXHUwMDI2aWQuY2xhc3MsIFxcdTAwMjZpZC5jbGFzc19tYXNrLCBcXHUwMDI2aWQuZHJpdmVyX2RhdGEpO1xcbiBcXHRpZiAoZmllbGRzIFxcdTAwM2MgMilcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcbiBcXHRpZiAoZmllbGRzICE9IDcpIHtcXG4tXFx0XFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSBremFsbG9jX29iaigqcGRldik7XFxuLVxcdFxcdGlmICghcGRldilcXG4tXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLVxcbi1cXHRcXHRwZGV2LVxcdTAwM2V2ZW5kb3IgPSB2ZW5kb3I7XFxuLVxcdFxcdHBkZXYtXFx1MDAzZWRldmljZSA9IGRldmljZTtcXG4tXFx0XFx0cGRldi1cXHUwMDNlc3Vic3lzdGVtX3ZlbmRvciA9IHN1YnZlbmRvcjtcXG4tXFx0XFx0cGRldi1cXHUwMDNlc3Vic3lzdGVtX2RldmljZSA9IHN1YmRldmljZTtcXG4tXFx0XFx0cGRldi1cXHUwMDNlY2xhc3MgPSBjbGFzcztcXG4tXFx0XFx0cGRldi1cXHUwMDNlZGV2LnJlbGVhc2UgPSBfcGNpX2ZyZWVfZGV2aWNlO1xcbi1cXG4tXFx0XFx0ZGV2aWNlX2luaXRpYWxpemUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuLVxcdFxcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKHBkcnYsIHBkZXYpKVxcbi1cXHRcXHRcXHRyZXR2YWwgPSAtRUVYSVNUO1xcbi1cXG4tXFx0XFx0cHV0X2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4tXFxuLVxcdFxcdGlmIChyZXR2YWwpXFxuLVxcdFxcdFxcdHJldHVybiByZXR2YWw7XFxuK1xcdFxcdGlmIChkb19wY2lfbWF0Y2hfaWQocGRydi1cXHUwMDNlaWRfdGFibGUsIFxcdTAwMjZpZCwgZmFsc2UpKVxcbitcXHRcXHRcXHRyZXR1cm4gLUVFWElTVDtcXG4gXFx0fVxcbiBcXG4gXFx0LyogT25seSBhY2NlcHQgZHJpdmVyX2RhdGEgdmFsdWVzIHRoYXQgbWF0Y2ggYW4gZXhpc3RpbmcgaWRfdGFibGVcXG5AQCAtMjM2LDcgKzI2Myw3IEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXFxuIFxcdGlmIChpZHMpIHtcXG4gXFx0XFx0cmV0dmFsID0gLUVJTlZBTDtcXG4gXFx0XFx0d2hpbGUgKGlkcy1cXHUwMDNldmVuZG9yIHx8IGlkcy1cXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cXHUwMDNlY2xhc3NfbWFzaykge1xcbi1cXHRcXHRcXHRpZiAoZHJpdmVyX2RhdGEgPT0gaWRzLVxcdTAwM2Vkcml2ZXJfZGF0YSkge1xcbitcXHRcXHRcXHRpZiAoaWQuZHJpdmVyX2RhdGEgPT0gaWRzLVxcdTAwM2Vkcml2ZXJfZGF0YSkge1xcbiBcXHRcXHRcXHRcXHRyZXR2YWwgPSAwO1xcbiBcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0fVxcbkBAIC0yNDYsOCArMjczLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcXG4gXFx0XFx0XFx0cmV0dXJuIHJldHZhbDtcXG4gXFx0fVxcbiBcXG4tXFx0cmV0dmFsID0gcGNpX2FkZF9keW5pZChwZHJ2LCB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yLCBzdWJkZXZpY2UsXFxuLVxcdFxcdFxcdCAgICAgICBjbGFzcywgY2xhc3NfbWFzaywgZHJpdmVyX2RhdGEpO1xcbitcXHRyZXR2YWwgPSBkb19wY2lfYWRkX2R5bmlkKHBkcnYsIFxcdTAwMjZpZCwgZmllbGRzICE9IDcpO1xcbiBcXHRpZiAocmV0dmFsKVxcbiBcXHRcXHRyZXR1cm4gcmV0dmFsO1xcbiBcXHRyZXR1cm4gY291bnQ7XFxuQEAgLTQ0NCwxNSArNDcwLDE0IEBAIHZvaWQgcGNpX3Byb2JlX2ZsdXNoX3dvcmtxdWV1ZSh2b2lkKVxcbiAgKi9cXG4gc3RhdGljIGludCBfX3BjaV9kZXZpY2VfcHJvYmUoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpXFxuIHtcXG4tXFx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkO1xcbitcXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDtcXG4gXFx0aW50IGVycm9yID0gMDtcXG4gXFxuIFxcdGlmIChkcnYtXFx1MDAzZXByb2JlKSB7XFxuIFxcdFxcdGVycm9yID0gLUVOT0RFVjtcXG4gXFxuLVxcdFxcdGlkID0gcGNpX21hdGNoX2RldmljZShkcnYsIHBjaV9kZXYpO1xcbi1cXHRcXHRpZiAoaWQpXFxuLVxcdFxcdFxcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBpZCk7XFxuK1xcdFxcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKGRydiwgcGNpX2RldiwgXFx1MDAyNmlkKSlcXG4rXFx0XFx0XFx0ZXJyb3IgPSBwY2lfY2FsbF9wcm9iZShkcnYsIHBjaV9kZXYsIFxcdTAwMjZpZCk7XFxuIFxcdH1cXG4gXFx0cmV0dXJuIGVycm9yO1xcbiB9XFxuQEAgLTE1MzcsMTcgKzE1NjIsMTMgQEAgc3RhdGljIGludCBwY2lfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcXG4ge1xcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldiA9IHRvX3BjaV9kZXYoZGV2KTtcXG4gXFx0c3RydWN0IHBjaV9kcml2ZXIgKnBjaV9kcnY7XFxuLVxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZDtcXG4rXFx0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQ7XFxuIFxcbiBcXHRpZiAocGNpX2Rldl9iaW5kaW5nX2Rpc2FsbG93ZWQocGNpX2RldikpXFxuIFxcdFxcdHJldHVybiAwO1xcbiBcXG4gXFx0cGNpX2RydiA9IChzdHJ1Y3QgcGNpX2RyaXZlciAqKXRvX3BjaV9kcml2ZXIoZHJ2KTtcXG4tXFx0Zm91bmRfaWQgPSBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYpO1xcbi1cXHRpZiAoZm91bmRfaWQpXFxuLVxcdFxcdHJldHVybiAxO1xcbi1cXG4tXFx0cmV0dXJuIDA7XFxuK1xcdHJldHVybiBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYsIFxcdTAwMjZpZCk7XFxuIH1cXG4gXFxuIC8qKlxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2kuaCBiL2RyaXZlcnMvcGNpL3BjaS5oXFxuaW5kZXggNDQ2OWUxYTc3ZjNjMTMuLjA1NjdhODc2MmJhYTA4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGNpL3BjaS5oXFxuKysrIGIvZHJpdmVycy9wY2kvcGNpLmhcXG5AQCAtNDQyLDIxICs0NDIsMzcgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3NldHVwX2NhcmRidXMoY2hhciAqc3RyKSB7IHJldHVybiAtRU5PRU5UOyB9XFxuICNlbmRpZiAvKiBDT05GSUdfQ0FSREJVUyAqL1xcbiBcXG4gLyoqXFxuLSAqIHBjaV9tYXRjaF9vbmVfZGV2aWNlIC0gVGVsbCBpZiBhIFBDSSBkZXZpY2Ugc3RydWN0dXJlIGhhcyBhIG1hdGNoaW5nXFxuLSAqXFx0XFx0XFx0ICBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZVxcbi0gKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaFxcbi0gKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxcbisgKiBwY2lfaWRfZnJvbV9kZXZpY2UgLSBPYnRhaW4gYSBwY2lfZGV2aWNlX2lkIGZyb20gYSBQQ0kgZGV2aWNlXFxuKyAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlXFxuKyAqXFxuKyAqIFJldHVybnMgYSBwY2lfZGV2aWNlX2lkIGZpbGxlZC5cXG4rICovXFxuK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGNpX2lkX2Zyb21fZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXFxuK3tcXG4rXFx0cmV0dXJuIChzdHJ1Y3QgcGNpX2RldmljZV9pZCkge1xcbitcXHRcXHQudmVuZG9yID0gZGV2LVxcdTAwM2V2ZW5kb3IsXFxuK1xcdFxcdC5kZXZpY2UgPSBkZXYtXFx1MDAzZWRldmljZSxcXG4rXFx0XFx0LnN1YnZlbmRvciA9IGRldi1cXHUwMDNlc3Vic3lzdGVtX3ZlbmRvcixcXG4rXFx0XFx0LnN1YmRldmljZSA9IGRldi1cXHUwMDNlc3Vic3lzdGVtX2RldmljZSxcXG4rXFx0XFx0LmNsYXNzID0gZGV2LVxcdTAwM2VjbGFzcyxcXG4rXFx0fTtcXG4rfVxcbitcXG4rLyoqXFxuKyAqIHBjaV9tYXRjaF9vbmVfaWQgLSBUZWxsIGlmIGEgUENJIGRldmljZSBJRCBtYXRjaGVzIGEgbmVlZGxlIFBDSSBkZXZpY2UgaWRcXG4rICogQGlkOiBzaW5nbGUgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdCAobmVlZGxlKVxcbisgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIElEIGZyb20gdGhlIFBDSSBkZXZpY2UgKGNhbiBiZSBjcmVhdGVkIHZpYSBwY2lfaWRfZnJvbV9kZXZpY2UpXFxuICAqXFxuICAqIFJldHVybnMgdGhlIG1hdGNoaW5nIHBjaV9kZXZpY2VfaWQgc3RydWN0dXJlIG9yICVOVUxMIGlmIHRoZXJlIGlzIG5vIG1hdGNoLlxcbiAgKi9cXG4gc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqXFxuLXBjaV9tYXRjaF9vbmVfZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldilcXG4rcGNpX21hdGNoX29uZV9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQpXFxuIHtcXG4tXFx0aWYgKChpZC1cXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXFx1MDAzZXZlbmRvciA9PSBkZXYtXFx1MDAzZXZlbmRvcikgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgIChpZC1cXHUwMDNlZGV2aWNlID09IFBDSV9BTllfSUQgfHwgaWQtXFx1MDAzZWRldmljZSA9PSBkZXYtXFx1MDAzZWRldmljZSkgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgIChpZC1cXHUwMDNlc3VidmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXFx1MDAzZXN1YnZlbmRvciA9PSBkZXYtXFx1MDAzZXN1YnN5c3RlbV92ZW5kb3IpIFxcdTAwMjZcXHUwMDI2XFxuLVxcdCAgICAoaWQtXFx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VzdWJkZXZpY2UgPT0gZGV2LVxcdTAwM2VzdWJzeXN0ZW1fZGV2aWNlKSBcXHUwMDI2XFx1MDAyNlxcbi1cXHQgICAgISgoaWQtXFx1MDAzZWNsYXNzIF4gZGV2LVxcdTAwM2VjbGFzcykgXFx1MDAyNiBpZC1cXHUwMDNlY2xhc3NfbWFzaykpXFxuK1xcdGlmICgoaWQtXFx1MDAzZXZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2V2ZW5kb3IgPT0gZGV2X2lkLVxcdTAwM2V2ZW5kb3IpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAoaWQtXFx1MDAzZWRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VkZXZpY2UgPT0gZGV2X2lkLVxcdTAwM2VkZXZpY2UpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAoaWQtXFx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VzdWJ2ZW5kb3IgPT0gZGV2X2lkLVxcdTAwM2VzdWJ2ZW5kb3IpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAoaWQtXFx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VzdWJkZXZpY2UgPT0gZGV2X2lkLVxcdTAwM2VzdWJkZXZpY2UpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAhKChpZC1cXHUwMDNlY2xhc3MgXiBkZXZfaWQtXFx1MDAzZWNsYXNzKSBcXHUwMDI2IGlkLVxcdTAwM2VjbGFzc19tYXNrKSlcXG4gXFx0XFx0cmV0dXJuIGlkO1xcbiBcXHRyZXR1cm4gTlVMTDtcXG4gfVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZWFyY2guYyBiL2RyaXZlcnMvcGNpL3NlYXJjaC5jXFxuaW5kZXggZTNkMzE3N2ZjZTU0OWUuLmM4YzRiZmU3ODE3YjAzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jXFxuKysrIGIvZHJpdmVycy9wY2kvc2VhcmNoLmNcXG5AQCAtMjQ1LDggKzI0NSwxMCBAQCBzdGF0aWMgaW50IG1hdGNoX3BjaV9kZXZfYnlfaWQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKVxcbiB7XFxuIFxcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpO1xcbiBcXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBkYXRhO1xcbitcXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBkZXZfaWQ7XFxuIFxcbi1cXHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoaWQsIHBkZXYpKVxcbitcXHRkZXZfaWQgPSBwY2lfaWRfZnJvbV9kZXZpY2UocGRldik7XFxuK1xcdGlmIChwY2lfbWF0Y2hfb25lX2lkKGlkLCBcXHUwMDI2ZGV2X2lkKSlcXG4gXFx0XFx0cmV0dXJuIDE7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuQEAgLTQxOCw3ICs0MjAsNyBAQCBFWFBPUlRfU1lNQk9MKHBjaV9nZXRfY2xhc3MpO1xcbiAgKlxcbiAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBsaXN0IG9mIGtub3duIFBDSSBkZXZpY2VzLiBJZiBhIFBDSSBkZXZpY2UgaXMgZm91bmRcXG4gICogd2l0aCBhIG1hdGNoaW5nIGJhc2UgY2xhc3MgY29kZSwgdGhlIHJlZmVyZW5jZSBjb3VudCB0byB0aGUgZGV2aWNlIGlzXFxuLSAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9kZXZpY2UoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuXFxuKyAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9pZCgpIHRvIGZpZ3VyZSBvdXQgaG93IGRvZXMgdGhpcyB3b3Jrcy5cXG4gICogQSBuZXcgc2VhcmNoIGlzIGluaXRpYXRlZCBieSBwYXNzaW5nICVOVUxMIGFzIHRoZSBAZnJvbSBhcmd1bWVudC5cXG4gICogT3RoZXJ3aXNlIGlmIEBmcm9tIGlzIG5vdCAlTlVMTCwgc2VhcmNoZXMgY29udGludWUgZnJvbSBuZXh0IGRldmljZSBvbiB0aGVcXG4gICogZ2xvYmFsIGxpc3QuIFRoZSByZWZlcmVuY2UgY291bnQgZm9yIEBmcm9tIGlzIGFsd2F5cyBkZWNyZW1lbnRlZCBpZiBpdCBpc1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jXFxuaW5kZXggZTg5M2Q1Njc3MjQxN2EuLjljOTI4MTIyMmEwYWNmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9uc3AzMi5jXFxuKysrIGIvZHJpdmVycy9zY3NpL25zcDMyLmNcXG5AQCAtMTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGludCBuc3AzMl9zaG93X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KVxcbiBcXHRcXHQgICAobnNwMzJfcmVhZDIoYmFzZSwgSU5ERVhfUkVHKSBcXHUwMDNlXFx1MDAzZSA4KSBcXHUwMDI2IDB4ZmYpO1xcbiBcXG4gXFx0bW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpO1xcbi1cXHRtb2RlbCAgICA9IGRhdGEtXFx1MDAzZXBjaV9kZXZpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuK1xcdG1vZGVsICAgID0gZGF0YS1cXHUwMDNlbW9kZWw7XFxuIFxcbiAjaWZkZWYgQ09ORklHX1BNXFxuIFxcdHNlcV9wcmludGYobSwgXFxcIlBvd2VyIE1hbmFnZW1lbnQ6ICAgICAgJXNcXFxcblxcXCIsXFxuQEAgLTI5MDcsOCArMjkwNyw4IEBAIHN0YXRpYyBpbnQgbnNwMzJfZWhfaG9zdF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudClcXG4gICovXFxuIHN0YXRpYyBpbnQgbnNwMzJfZ2V0cHJvbV9wYXJhbShuc3AzMl9od19kYXRhICpkYXRhKVxcbiB7XFxuLVxcdGludCB2ZW5kb3IgPSBkYXRhLVxcdTAwM2VwY2lfZGV2aWQtXFx1MDAzZXZlbmRvcjtcXG4tXFx0aW50IGRldmljZSA9IGRhdGEtXFx1MDAzZXBjaV9kZXZpZC1cXHUwMDNlZGV2aWNlO1xcbitcXHRpbnQgdmVuZG9yID0gZGF0YS1cXHUwMDNlUGNpLVxcdTAwM2V2ZW5kb3I7XFxuK1xcdGludCBkZXZpY2UgPSBkYXRhLVxcdTAwM2VQY2ktXFx1MDAzZWRldmljZTtcXG4gXFx0aW50IHJldCwgaTtcXG4gXFx0aW50IF9fbWF5YmVfdW51c2VkIHZhbDtcXG4gXFxuQEAgLTMzNDAsNyArMzM0MCw3IEBAIHN0YXRpYyBpbnQgbnNwMzJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gXFx0fVxcbiBcXG4gXFx0ZGF0YS1cXHUwMDNlUGNpXFx0ICA9IHBkZXY7XFxuLVxcdGRhdGEtXFx1MDAzZXBjaV9kZXZpZCAgID0gaWQ7XFxuK1xcdGRhdGEtXFx1MDAzZW1vZGVsICAgICAgID0gaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbiBcXHRkYXRhLVxcdTAwM2VJcnFOdW1iZXIgICA9IHBkZXYtXFx1MDAzZWlycTtcXG4gXFx0ZGF0YS1cXHUwMDNlQmFzZUFkZHJlc3MgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMCk7XFxuIFxcdGRhdGEtXFx1MDAzZU51bUFkZHJlc3MgID0gcGNpX3Jlc291cmNlX2xlbiAgKHBkZXYsIDApO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuaCBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oXFxuaW5kZXggOTI0ODg5ZjhiZDM3ZTcuLjllNjU3NzFjYjU5Mjg2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9uc3AzMi5oXFxuKysrIGIvZHJpdmVycy9zY3NpL25zcDMyLmhcXG5AQCAtNTY0LDEwICs1NjQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX25zcDMyX2h3X2RhdGEge1xcbiBcXG4gXFx0c3RydWN0IHNjc2lfY21uZCAqQ3VycmVudFNDO1xcbiBcXG4tXFx0c3RydWN0IHBjaV9kZXYgICAgICAgICAgICAgKlBjaTtcXG4tXFx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXZpZDtcXG4tXFx0c3RydWN0IFNjc2lfSG9zdCAgICAgICAgICAgKkhvc3Q7XFxuLVxcdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBMb2NrO1xcbitcXHRzdHJ1Y3QgcGNpX2RldiAgICAqUGNpO1xcbitcXHRpbnQgICAgICAgICAgICAgICAgbW9kZWw7XFxuK1xcdHN0cnVjdCBTY3NpX0hvc3QgICpIb3N0O1xcbitcXHRzcGlubG9ja190ICAgICAgICAgTG9jaztcXG4gXFxuIFxcdGNoYXIgaW5mb19zdHJbMTAwXTtcXG4gXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLmggYi9pbmNsdWRlL2xpbnV4L3BjaS5oXFxuaW5kZXggZWJiNWI5ZDc2MzYwOWUuLmYxMjhkOGMwY2JiNjRkIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvcGNpLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3BjaS5oXFxuQEAgLTk3OSw2ICs5NzksNyBAQCBzdHJ1Y3QgbW9kdWxlO1xcbiAgKlxcdFxcdGZ1bmN0aW9uIHJldHVybnMgemVybyB3aGVuIHRoZSBkcml2ZXIgY2hvb3NlcyB0b1xcbiAgKlxcdFxcdHRha2UgXFxcIm93bmVyc2hpcFxcXCIgb2YgdGhlIGRldmljZSBvciBhbiBlcnJvciBjb2RlXFxuICAqXFx0XFx0KG5lZ2F0aXZlIG51bWJlcikgb3RoZXJ3aXNlLlxcbisgKlxcdFxcdFRoZSBwY2lfZGV2aWNlX2lkIHBhcmFtZXRlciBpcyBvbmx5IHZhbGlkIGR1cmluZyBwcm9iZS5cXG4gICpcXHRcXHRUaGUgcHJvYmUgZnVuY3Rpb24gYWx3YXlzIGdldHMgY2FsbGVkIGZyb20gcHJvY2Vzc1xcbiAgKlxcdFxcdGNvbnRleHQsIHNvIGl0IGNhbiBzbGVlcC5cXG4gICogQHJlbW92ZTpcXHRUaGUgcmVtb3ZlKCkgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBkZXZpY2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6MzAuODQwODM5MTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MzMwNjIyOTIyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEFfR0VORVJJQ1wiLFxuICAgIFwiSVBBQ0tfQlVTXCIsXG4gICAgXCJCT0FSRF9UUENJMjAwXCIsXG4gICAgXCJNTFhTV19DT1JFXCIsXG4gICAgXCJNTFhTV19QQ0lcIixcbiAgICBcIlNDU0lfTlNQMzJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXdfaWRfc3RvcmVcIixcbiAgICBcImRvX3BjaV9hZGRfZHluaWRcIixcbiAgICBcInBjaV9tYXRjaF9kZXZpY2VcIixcbiAgICBcIl9fcGNpX2RldmljZV9wcm9iZVwiLFxuICAgIFwiYXRhX2dlbmVyaWNfaW5pdF9vbmVcIixcbiAgICBcInRwY2kyMDBfcGNpX3Byb2JlXCIsXG4gICAgXCJtbHhzd19wY2lfcHJvYmVcIixcbiAgICBcIm5zcDMyX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgUENJIGRldmljZSBtYXRjaGluZyBhbmQgcHJvYmluZyBsb2dpYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcyB3aXRoIGR5bmFtaWMgUENJIElEcy4gSXQgYWxsb2NhdGVzIHRoZSBtYXRjaGVkIGBwY2lfZGV2aWNlX2lkYCBvbiB0aGUgc3RhY2sgZHVyaW5nIHByb2JlIGFuZCB1cGRhdGVzIHNldmVyYWwgZHJpdmVycyB0aGF0IHByZXZpb3VzbHkgc2F2ZWQgdGhpcyBwb2ludGVyIHRvIHByZXZlbnQgc3RhY2sgdXNlLWFmdGVyLWZyZWUuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBQQ0kgZHluYW1pYyBJRCBzeXNmcyBpbnRlcmZhY2UgKGBuZXdfaWRfc3RvcmVgKSwgdGhlIFBDSSBtYXRjaGluZy9wcm9iaW5nIGxvZ2ljLCBhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBvZiB0aGUgbW9kaWZpZWQgZHJpdmVycy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwOTEyZDAzNWIxMjNkOGIyMGIxNmQ4YWJjZDE5OTFjMDFiYmE5ZDY2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTY6MjM6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuaW5kZXggZTcwYjZjMDg5Y2YxNzkuLjE4ZWE3NDBjYTU4MjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuKysrIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuQEAgLTUxLDExICs1MSwxMSBAQCBlbnVtIHtcbiBzdGF0aWMgaW50IGdlbmVyaWNfc2V0X21vZGUoc3RydWN0IGF0YV9saW5rICpsaW5rLCBzdHJ1Y3QgYXRhX2RldmljZSAqKnVudXNlZClcbiB7XG4gXHRzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay1cdTAwM2VhcDtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCA9IGFwLVx1MDAzZWhvc3QtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuK1x0dW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSA9ICh1bnNpZ25lZCBsb25nKWFwLVx1MDAzZWhvc3QtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuIFx0aW50IGRtYV9lbmFibGVkID0gMDtcbiBcdHN0cnVjdCBhdGFfZGV2aWNlICpkZXY7XG4gXG4tXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2RhdGEgXHUwMDI2IEFUQV9HRU5fRk9SQ0VfRE1BKSB7XG4rXHRpZiAoZHJpdmVyX2RhdGEgXHUwMDI2IEFUQV9HRU5fRk9SQ0VfRE1BKSB7XG4gXHRcdGRtYV9lbmFibGVkID0gMHhmZjtcbiBcdH0gZWxzZSBpZiAoYXAtXHUwMDNlaW9hZGRyLmJtZG1hX2FkZHIpIHtcbiBcdFx0LyogQml0cyA1IGFuZCA2IGluZGljYXRlIGlmIERNQSBpcyBhY3RpdmUgb24gbWFzdGVyL3NsYXZlICovXG5AQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbnQgYXRhX2dlbmVyaWNfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWRcbiBcdFx0XHRyZXR1cm4gcmM7XG4gXHRcdHBjaW1fcGluX2RldmljZShkZXYpO1xuIFx0fVxuLVx0cmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksIFx1MDAyNmdlbmVyaWNfc2h0LCAodm9pZCAqKWlkLCAwKTtcbitcdHJldHVybiBhdGFfcGNpX2JtZG1hX2luaXRfb25lKGRldiwgcHBpLCBcdTAwMjZnZW5lcmljX3NodCwgKHZvaWQgKilpZC1cdTAwM2Vkcml2ZXJfZGF0YSwgMCk7XG4gfVxuIFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBhdGFfZ2VuZXJpY1tdID0ge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmNcbmluZGV4IDA1ZGNiNjY3NWNkNjYxLi4xY2Y1MWY3NjMyOTMyYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jXG4rKysgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xuQEAgLTU2Miw3ICs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuIFxuIFx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXG4gXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiA9IHBkZXY7XG4tXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaWRfdGFibGUgPSAoc3RydWN0IHBjaV9kZXZpY2VfaWQgKilpZDtcbiBcbiBcdC8qIHJlZ2lzdGVyIHRoZSBkZXZpY2UgYW5kIGluaXRpYWxpemUgaXQgKi9cbiBcdHJldCA9IHRwY2kyMDBfaW5zdGFsbCh0cGNpMjAwKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaCBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oXG5pbmRleCBlNzlhYzY0YWJjZmZhYy4uYTJiZjMxMjU3OTRiN2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaFxuKysrIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcbkBAIC0xNDUsNyArMTQ1LDYgQEAgc3RydWN0IHRwY2kyMDBfc2xvdCB7XG4gICovXG4gc3RydWN0IHRwY2kyMDBfaW5mb3Mge1xuIFx0c3RydWN0IHBjaV9kZXZcdFx0XHQqcGRldjtcbi1cdHN0cnVjdCBwY2lfZGV2aWNlX2lkXHRcdCppZF90YWJsZTtcbiBcdHN0cnVjdCB0cGNpMjAwX3JlZ3MgX19pb21lbVx0KmludGVyZmFjZV9yZWdzO1xuIFx0dm9pZCBfX2lvbWVtXHRcdFx0KmNmZ19yZWdzO1xuIFx0c3RydWN0IGlwYWNrX2J1c19kZXZpY2VcdFx0KmlwYWNrX2J1cztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXG5pbmRleCAwZGE4NWQzNjY0N2Q5MS4uYmZlMzI2OGRmZGMxN2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmNcbkBAIC0xMzAsNyArMTMwLDYgQEAgc3RydWN0IG1seHN3X3BjaSB7XG4gXHRcdH0gY29tcDtcbiBcdH0gY21kO1xuIFx0c3RydWN0IG1seHN3X2J1c19pbmZvIGJ1c19pbmZvO1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkO1xuIFx0ZW51bSBtbHhzd19wY2lfY3FlX3YgbWF4X2NxZV92ZXI7IC8qIE1heGltYWwgc3VwcG9ydGVkIENRRSB2ZXJzaW9uICovXG4gXHR1OCBudW1fY3FzOyAvKiBOdW1iZXIgb2YgQ1FzICovXG4gXHR1OCBudW1fc2RxczsgLyogTnVtYmVyIG9mIFNEUXMgKi9cbkBAIC0xNzY4LDcgKzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBtbHhzd19wY2lfbWJveF9mcmVlKHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSxcbiB9XG4gXG4gc3RhdGljIGludCBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLFxuLVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCxcbiBcdFx0XHRcdCAgICB1MzIgKnBfc3lzX3N0YXR1cylcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGVuZDtcbkBAIC0xODM5LDcgKzE4MzcsNyBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9yZXNldF9zdyhzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2kpXG4gfVxuIFxuIHN0YXRpYyBpbnRcbi1tbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4rbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSlcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IG1seHN3X3BjaS1cdTAwM2VwZGV2O1xuIFx0Ym9vbCBwY2lfcmVzZXRfc2JyX3N1cHBvcnRlZCA9IGZhbHNlO1xuQEAgLTE4NDgsNyArMTg0Niw3IEBAIG1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdHUzMiBzeXNfc3RhdHVzO1xuIFx0aW50IGVycjtcbiBcbi1cdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIGlkLCBcdTAwMjZzeXNfc3RhdHVzKTtcbitcdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIFx1MDAyNnN5c19zdGF0dXMpO1xuIFx0aWYgKGVycikge1xuIFx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcIkZhaWxlZCB0byByZWFjaCBzeXN0ZW0gcmVhZHkgc3RhdHVzIGJlZm9yZSByZXNldC4gU3RhdHVzIGlzIDB4JXhcXG5cIixcbiBcdFx0XHRzeXNfc3RhdHVzKTtcbkBAIC0xODgwLDcgKzE4NzgsNyBAQCBtbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4gXHRpZiAoZXJyKVxuIFx0XHRyZXR1cm4gZXJyO1xuIFxuLVx0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgaWQsIFx1MDAyNnN5c19zdGF0dXMpO1xuK1x0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgXHUwMDI2c3lzX3N0YXR1cyk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwiRmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XFxuXCIsXG4gXHRcdFx0c3lzX3N0YXR1cyk7XG5AQCAtMTkzMiw3ICsxOTMwLDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfaW5pdCh2b2lkICpidXNfcHJpdiwgc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsXG4gXHRpZiAoIW1ib3gpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0ZXJyID0gbWx4c3dfcGNpX3Jlc2V0KG1seHN3X3BjaSwgbWx4c3dfcGNpLVx1MDAzZWlkKTtcbitcdGVyciA9IG1seHN3X3BjaV9yZXNldChtbHhzd19wY2kpO1xuIFx0aWYgKGVycilcbiBcdFx0Z290byBlcnJfcmVzZXQ7XG4gXG5AQCAtMjQ2NCw3ICsyNDYyLDYgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdG1seHN3X3BjaS1cdTAwM2VidXNfaW5mby5kZXZpY2VfbmFtZSA9IHBjaV9uYW1lKG1seHN3X3BjaS1cdTAwM2VwZGV2KTtcbiBcdG1seHN3X3BjaS1cdTAwM2VidXNfaW5mby5kZXYgPSBcdTAwMjZwZGV2LVx1MDAzZWRldjtcbiBcdG1seHN3X3BjaS1cdTAwM2VidXNfaW5mby5yZWFkX2Nsb2NrX2NhcGFibGUgPSB0cnVlO1xuLVx0bWx4c3dfcGNpLVx1MDAzZWlkID0gaWQ7XG4gXG4gXHRlcnIgPSBtbHhzd19jb3JlX2J1c19kZXZpY2VfcmVnaXN0ZXIoXHUwMDI2bWx4c3dfcGNpLVx1MDAzZWJ1c19pbmZvLFxuIFx0XHRcdFx0XHQgICAgIFx1MDAyNm1seHN3X3BjaV9idXMsIG1seHN3X3BjaSwgZmFsc2UsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jIGIvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jXG5pbmRleCBmMzY3NzhlNjJhYzFhNS4uZmFkMDI4YjlkYzUzZWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcbisrKyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY1xuQEAgLTI5LDYgKzI5LDQ4IEBAIHN0cnVjdCBwY2lfZHluaWQge1xuIFx0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQ7XG4gfTtcbiBcbisvKipcbisgKiBkb19wY2lfYWRkX2R5bmlkIC0gYWRkIGEgbmV3IFBDSSBkZXZpY2UgSUQgdG8gdGhpcyBkcml2ZXIgYW5kIHJlLXByb2JlIGRldmljZXNcbisgKiBAZHJ2OiB0YXJnZXQgcGNpIGRyaXZlclxuKyAqIEBpZDogSUQgdG8gYmUgYWRkZWRcbisgKiBAY2hlY2tfZHVwOiB3aGV0aGVyIHRvIGNoZWNrIGlmIG1hdGNoaW5nIElEIGlzIGFscmVhZHkgcHJlc2VudFxuKyAqXG4rICogQWRkcyBhIG5ldyBkeW5hbWljIHBjaSBkZXZpY2UgSUQgdG8gdGhpcyBkcml2ZXIgYW5kIGNhdXNlcyB0aGVcbisgKiBkcml2ZXIgdG8gcHJvYmUgZm9yIGFsbCBkZXZpY2VzIGFnYWluLiAgQGRydiBtdXN0IGhhdmUgYmVlblxuKyAqIHJlZ2lzdGVyZWQgcHJpb3IgdG8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuKyAqXG4rICogQ09OVEVYVDpcbisgKiBEb2VzIEdGUF9LRVJORUwgYWxsb2NhdGlvbi5cbisgKlxuKyAqIFJFVFVSTlM6XG4rICogMCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS5cbisgKi9cbitzdGF0aWMgaW50IGRvX3BjaV9hZGRfZHluaWQoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBib29sIGNoZWNrX2R1cClcbit7XG4rXHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZCwgKmV4aXN0aW5nX2R5bmlkO1xuK1xuK1x0ZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpO1xuK1x0aWYgKCFkeW5pZClcbitcdFx0cmV0dXJuIC1FTk9NRU07XG4rXG4rXHRkeW5pZC1cdTAwM2VpZCA9ICppZDtcbitcbitcdHtcbitcdFx0Z3VhcmQoc3BpbmxvY2spKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4rXHRcdGlmIChjaGVja19kdXApIHtcbitcdFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGV4aXN0aW5nX2R5bmlkLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QsIG5vZGUpIHtcbitcdFx0XHRcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFx1MDAyNmV4aXN0aW5nX2R5bmlkLVx1MDAzZWlkLCBpZCkpIHtcbitcdFx0XHRcdFx0a2ZyZWUoZHluaWQpO1xuK1x0XHRcdFx0XHRyZXR1cm4gLUVFWElTVDtcbitcdFx0XHRcdH1cbitcdFx0XHR9XG4rXHRcdH1cbitcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZkeW5pZC1cdTAwM2Vub2RlLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QpO1xuK1x0fVxuK1xuK1x0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4rfVxuK1xuIC8qKlxuICAqIHBjaV9hZGRfZHluaWQgLSBhZGQgYSBuZXcgUENJIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgcmUtcHJvYmUgZGV2aWNlc1xuICAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyXG5AQCAtNTYsMjUgKzk4LDE3IEBAIGludCBwY2lfYWRkX2R5bmlkKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4gXHRcdCAgdW5zaWduZWQgaW50IGNsYXNzLCB1bnNpZ25lZCBpbnQgY2xhc3NfbWFzayxcbiBcdFx0ICB1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhKVxuIHtcbi1cdHN0cnVjdCBwY2lfZHluaWQgKmR5bmlkO1xuLVxuLVx0ZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpO1xuLVx0aWYgKCFkeW5pZClcbi1cdFx0cmV0dXJuIC1FTk9NRU07XG4tXG4tXHRkeW5pZC1cdTAwM2VpZC52ZW5kb3IgPSB2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5kZXZpY2UgPSBkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJkZXZpY2UgPSBzdWJkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5jbGFzcyA9IGNsYXNzO1xuLVx0ZHluaWQtXHUwMDNlaWQuY2xhc3NfbWFzayA9IGNsYXNzX21hc2s7XG4tXHRkeW5pZC1cdTAwM2VpZC5kcml2ZXJfZGF0YSA9IGRyaXZlcl9kYXRhO1xuLVxuLVx0c3Bpbl9sb2NrKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4tXHRsaXN0X2FkZF90YWlsKFx1MDAyNmR5bmlkLVx1MDAzZW5vZGUsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCk7XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4rXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZCA9IHtcbitcdFx0LnZlbmRvciA9IHZlbmRvcixcbitcdFx0LmRldmljZSA9IGRldmljZSxcbitcdFx0LnN1YnZlbmRvciA9IHN1YnZlbmRvcixcbitcdFx0LnN1YmRldmljZSA9IHN1YmRldmljZSxcbitcdFx0LmNsYXNzID0gY2xhc3MsXG4rXHRcdC5jbGFzc19tYXNrID0gY2xhc3NfbWFzayxcbitcdFx0LmRyaXZlcl9kYXRhID0gZHJpdmVyX2RhdGEsXG4rXHR9O1xuK1xuK1x0cmV0dXJuIGRvX3BjaV9hZGRfZHluaWQoZHJ2LCBcdTAwMjZpZCwgZmFsc2UpO1xuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChwY2lfYWRkX2R5bmlkKTtcbiBcbkBAIC05MCw2ICsxMjQsMjkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXG4gXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuIH1cbiBcbisvKipcbisgKiBkb19wY2lfbWF0Y2hfaWQgLSBTZWUgaWYgYSBQQ0kgSUQgbWF0Y2hlcyBhIGdpdmVuIHBjaV9pZCB0YWJsZVxuKyAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cbisgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlIHRvIG1hdGNoIGFnYWluc3QuXG4rICpcbisgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvclxuKyAqICVOVUxMIGlmIHRoZXJlIGlzIG5vIG1hdGNoLlxuKyAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZG9fcGNpX21hdGNoX2lkKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMsXG4rXHRcdFx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmRldl9pZCxcbitcdFx0XHRcdFx0XHQgICBib29sIG1hdGNoX292ZXJyaWRlX29ubHkpXG4re1xuK1x0aWYgKGlkcykge1xuK1x0XHR3aGlsZSAoaWRzLVx1MDAzZXZlbmRvciB8fCBpZHMtXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cdTAwM2VjbGFzc19tYXNrKSB7XG4rXHRcdFx0aWYgKCghaWRzLVx1MDAzZW92ZXJyaWRlX29ubHkgfHwgbWF0Y2hfb3ZlcnJpZGVfb25seSkgXHUwMDI2XHUwMDI2XG4rXHRcdFx0ICAgIHBjaV9tYXRjaF9vbmVfaWQoaWRzLCBkZXZfaWQpKVxuK1x0XHRcdFx0cmV0dXJuIGlkcztcbitcdFx0XHRpZHMrKztcbitcdFx0fVxuK1x0fVxuK1x0cmV0dXJuIE5VTEw7XG4rfVxuK1xuIC8qKlxuICAqIHBjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBkZXZpY2UgbWF0Y2hlcyBhIGdpdmVuIHBjaV9pZCB0YWJsZVxuICAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cbkBAIC0xMDUsMTQgKzE2Miw5IEBAIHN0YXRpYyB2b2lkIHBjaV9mcmVlX2R5bmlkcyhzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2KVxuIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkcyxcbiBcdFx0XHRcdFx0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXG4ge1xuLVx0aWYgKGlkcykge1xuLVx0XHR3aGlsZSAoaWRzLVx1MDAzZXZlbmRvciB8fCBpZHMtXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cdTAwM2VjbGFzc19tYXNrKSB7XG4tXHRcdFx0aWYgKHBjaV9tYXRjaF9vbmVfZGV2aWNlKGlkcywgZGV2KSlcbi1cdFx0XHRcdHJldHVybiBpZHM7XG4tXHRcdFx0aWRzKys7XG4tXHRcdH1cbi1cdH1cbi1cdHJldHVybiBOVUxMO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkID0gcGNpX2lkX2Zyb21fZGV2aWNlKGRldik7XG4rXG4rXHRyZXR1cm4gZG9fcGNpX21hdGNoX2lkKGlkcywgXHUwMDI2ZGV2X2lkLCB0cnVlKTtcbiB9XG4gRVhQT1JUX1NZTUJPTChwY2lfbWF0Y2hfaWQpO1xuIFxuQEAgLTEyNyw2MSArMTc5LDUyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfZGV2aWNlX2lkX2FueSA9IHtcbiAgKiBwY2lfbWF0Y2hfZGV2aWNlIC0gU2VlIGlmIGEgZGV2aWNlIG1hdGNoZXMgYSBkcml2ZXIncyBsaXN0IG9mIElEc1xuICAqIEBkcnY6IHRoZSBQQ0kgZHJpdmVyIHRvIG1hdGNoIGFnYWluc3RcbiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxuKyAqIEBpZDogTWF0Y2hlZCBwY2lfZGV2aWNlX2lkXG4gICpcbiAgKiBVc2VkIGJ5IGEgZHJpdmVyIHRvIGNoZWNrIHdoZXRoZXIgYSBQQ0kgZGV2aWNlIGlzIGluIGl0cyBsaXN0IG9mXG4gICogc3VwcG9ydGVkIGRldmljZXMgb3IgaW4gdGhlIGR5bmlkcyBsaXN0LCB3aGljaCBtYXkgaGF2ZSBiZWVuIGF1Z21lbnRlZFxuLSAqIHZpYSB0aGUgc3lzZnMgXCJuZXdfaWRcIiBmaWxlLiAgUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZFxuLSAqIHN0cnVjdHVyZSBvciAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbisgKiB2aWEgdGhlIHN5c2ZzIFwibmV3X2lkXCIgZmlsZS4gIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIG1hdGNoLCB0aGUgbWF0Y2hlZFxuKyAqIElEIGlzIHN0b3JlZCBpbiBAaWQuXG4gICovXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4tXHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBwY2lfZGV2ICpkZXYpXG4rc3RhdGljIGJvb2wgcGNpX21hdGNoX2RldmljZShzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LFxuK1x0XHRcdCAgICAgc3RydWN0IHBjaV9kZXYgKmRldixcbitcdFx0XHQgICAgIHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiB7XG4gXHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZDtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEwsICppZHM7XG4rXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZm91bmRfaWQgPSBOVUxMO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkO1xuIFx0aW50IHJldDtcbiBcbiBcdC8qIFdoZW4gZHJpdmVyX292ZXJyaWRlIGlzIHNldCwgb25seSBiaW5kIHRvIHRoZSBtYXRjaGluZyBkcml2ZXIgKi9cbiBcdHJldCA9IGRldmljZV9tYXRjaF9kcml2ZXJfb3ZlcnJpZGUoXHUwMDI2ZGV2LVx1MDAzZWRldiwgXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4gXHRpZiAocmV0ID09IDApXG4tXHRcdHJldHVybiBOVUxMO1xuK1x0XHRyZXR1cm4gZmFsc2U7XG4gXG4rXHRkZXZfaWQgPSBwY2lfaWRfZnJvbV9kZXZpY2UoZGV2KTtcbiBcdC8qIExvb2sgYXQgdGhlIGR5bmFtaWMgaWRzIGZpcnN0LCBiZWZvcmUgdGhlIHN0YXRpYyBvbmVzICovXG4tXHRzcGluX2xvY2soXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5sb2NrKTtcbi1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZHluaWQsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCwgbm9kZSkge1xuLVx0XHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoXHUwMDI2ZHluaWQtXHUwMDNlaWQsIGRldikpIHtcbi1cdFx0XHRmb3VuZF9pZCA9IFx1MDAyNmR5bmlkLVx1MDAzZWlkO1xuLVx0XHRcdGJyZWFrO1xuK1x0e1xuK1x0XHRndWFyZChzcGlubG9jaykoXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5sb2NrKTtcbitcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkeW5pZCwgXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XG4rXHRcdFx0aWYgKHBjaV9tYXRjaF9vbmVfaWQoXHUwMDI2ZHluaWQtXHUwMDNlaWQsIFx1MDAyNmRldl9pZCkpIHtcbitcdFx0XHRcdCppZCA9IGR5bmlkLVx1MDAzZWlkO1xuK1x0XHRcdFx0cmV0dXJuIHRydWU7XG4rXHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0aWYgKGZvdW5kX2lkKVxuLVx0XHRyZXR1cm4gZm91bmRfaWQ7XG4gXG4tXHRmb3IgKGlkcyA9IGRydi1cdTAwM2VpZF90YWJsZTsgKGZvdW5kX2lkID0gcGNpX21hdGNoX2lkKGlkcywgZGV2KSk7XG4tXHQgICAgIGlkcyA9IGZvdW5kX2lkICsgMSkge1xuLVx0XHQvKlxuLVx0XHQgKiBUaGUgbWF0Y2ggdGFibGUgaXMgc3BsaXQgYmFzZWQgb24gZHJpdmVyX292ZXJyaWRlLlxuLVx0XHQgKiBJbiBjYXNlIG92ZXJyaWRlX29ubHkgd2FzIHNldCwgZW5mb3JjZSBkcml2ZXJfb3ZlcnJpZGVcbi1cdFx0ICogbWF0Y2hpbmcuXG4tXHRcdCAqL1xuLVx0XHRpZiAoZm91bmRfaWQtXHUwMDNlb3ZlcnJpZGVfb25seSkge1xuLVx0XHRcdGlmIChyZXQgXHUwMDNlIDApXG4tXHRcdFx0XHRyZXR1cm4gZm91bmRfaWQ7XG4tXHRcdH0gZWxzZSB7XG4tXHRcdFx0cmV0dXJuIGZvdW5kX2lkO1xuLVx0XHR9XG4rXHRmb3VuZF9pZCA9IGRvX3BjaV9tYXRjaF9pZChkcnYtXHUwMDNlaWRfdGFibGUsIFx1MDAyNmRldl9pZCwgcmV0IFx1MDAzZSAwKTtcbitcdGlmIChmb3VuZF9pZCkge1xuK1x0XHQqaWQgPSAqZm91bmRfaWQ7XG4rXHRcdHJldHVybiB0cnVlO1xuIFx0fVxuIFxuIFx0LyogZHJpdmVyX292ZXJyaWRlIHdpbGwgYWx3YXlzIG1hdGNoLCBzZW5kIGEgZHVtbXkgaWQgKi9cbi1cdGlmIChyZXQgXHUwMDNlIDApXG4tXHRcdHJldHVybiBcdTAwMjZwY2lfZGV2aWNlX2lkX2FueTtcbi1cdHJldHVybiBOVUxMO1xuLX1cbitcdGlmIChyZXQgXHUwMDNlIDApIHtcbitcdFx0KmlkID0gcGNpX2RldmljZV9pZF9hbnk7XG4rXHRcdHJldHVybiB0cnVlO1xuK1x0fVxuIFxuLXN0YXRpYyB2b2lkIF9wY2lfZnJlZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KVxuLXtcbi1cdGtmcmVlKHRvX3BjaV9kZXYoZGV2KSk7XG4rXHRyZXR1cm4gZmFsc2U7XG4gfVxuIFxuIC8qKlxuQEAgLTE5NywzOCArMjQwLDIyIEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXG4ge1xuIFx0c3RydWN0IHBjaV9kcml2ZXIgKnBkcnYgPSB0b19wY2lfZHJpdmVyKGRyaXZlcik7XG4gXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzID0gcGRydi1cdTAwM2VpZF90YWJsZTtcbi1cdHUzMiB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yID0gUENJX0FOWV9JRCxcbi1cdFx0c3ViZGV2aWNlID0gUENJX0FOWV9JRCwgY2xhc3MgPSAwLCBjbGFzc19tYXNrID0gMDtcbi1cdHVuc2lnbmVkIGxvbmcgZHJpdmVyX2RhdGEgPSAwO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XG4rXHRcdC5zdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxuK1x0XHQuc3ViZGV2aWNlID0gUENJX0FOWV9JRFxuK1x0fTtcbiBcdGludCBmaWVsZHM7XG4gXHRpbnQgcmV0dmFsID0gMDtcbiBcbiBcdGZpZWxkcyA9IHNzY2FuZihidWYsIFwiJXggJXggJXggJXggJXggJXggJWx4XCIsXG4tXHRcdFx0XHUwMDI2dmVuZG9yLCBcdTAwMjZkZXZpY2UsIFx1MDAyNnN1YnZlbmRvciwgXHUwMDI2c3ViZGV2aWNlLFxuLVx0XHRcdFx1MDAyNmNsYXNzLCBcdTAwMjZjbGFzc19tYXNrLCBcdTAwMjZkcml2ZXJfZGF0YSk7XG4rXHRcdFx0XHUwMDI2aWQudmVuZG9yLCBcdTAwMjZpZC5kZXZpY2UsIFx1MDAyNmlkLnN1YnZlbmRvciwgXHUwMDI2aWQuc3ViZGV2aWNlLFxuK1x0XHRcdFx1MDAyNmlkLmNsYXNzLCBcdTAwMjZpZC5jbGFzc19tYXNrLCBcdTAwMjZpZC5kcml2ZXJfZGF0YSk7XG4gXHRpZiAoZmllbGRzIFx1MDAzYyAyKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiBcdGlmIChmaWVsZHMgIT0gNykge1xuLVx0XHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGt6YWxsb2Nfb2JqKCpwZGV2KTtcbi1cdFx0aWYgKCFwZGV2KVxuLVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLVxuLVx0XHRwZGV2LVx1MDAzZXZlbmRvciA9IHZlbmRvcjtcbi1cdFx0cGRldi1cdTAwM2VkZXZpY2UgPSBkZXZpY2U7XG4tXHRcdHBkZXYtXHUwMDNlc3Vic3lzdGVtX3ZlbmRvciA9IHN1YnZlbmRvcjtcbi1cdFx0cGRldi1cdTAwM2VzdWJzeXN0ZW1fZGV2aWNlID0gc3ViZGV2aWNlO1xuLVx0XHRwZGV2LVx1MDAzZWNsYXNzID0gY2xhc3M7XG4tXHRcdHBkZXYtXHUwMDNlZGV2LnJlbGVhc2UgPSBfcGNpX2ZyZWVfZGV2aWNlO1xuLVxuLVx0XHRkZXZpY2VfaW5pdGlhbGl6ZShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG4tXHRcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKHBkcnYsIHBkZXYpKVxuLVx0XHRcdHJldHZhbCA9IC1FRVhJU1Q7XG4tXG4tXHRcdHB1dF9kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuLVxuLVx0XHRpZiAocmV0dmFsKVxuLVx0XHRcdHJldHVybiByZXR2YWw7XG4rXHRcdGlmIChkb19wY2lfbWF0Y2hfaWQocGRydi1cdTAwM2VpZF90YWJsZSwgXHUwMDI2aWQsIGZhbHNlKSlcbitcdFx0XHRyZXR1cm4gLUVFWElTVDtcbiBcdH1cbiBcbiBcdC8qIE9ubHkgYWNjZXB0IGRyaXZlcl9kYXRhIHZhbHVlcyB0aGF0IG1hdGNoIGFuIGV4aXN0aW5nIGlkX3RhYmxlXG5AQCAtMjM2LDcgKzI2Myw3IEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXG4gXHRpZiAoaWRzKSB7XG4gXHRcdHJldHZhbCA9IC1FSU5WQUw7XG4gXHRcdHdoaWxlIChpZHMtXHUwMDNldmVuZG9yIHx8IGlkcy1cdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVx1MDAzZWNsYXNzX21hc2spIHtcbi1cdFx0XHRpZiAoZHJpdmVyX2RhdGEgPT0gaWRzLVx1MDAzZWRyaXZlcl9kYXRhKSB7XG4rXHRcdFx0aWYgKGlkLmRyaXZlcl9kYXRhID09IGlkcy1cdTAwM2Vkcml2ZXJfZGF0YSkge1xuIFx0XHRcdFx0cmV0dmFsID0gMDtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdH1cbkBAIC0yNDYsOCArMjczLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcbiBcdFx0XHRyZXR1cm4gcmV0dmFsO1xuIFx0fVxuIFxuLVx0cmV0dmFsID0gcGNpX2FkZF9keW5pZChwZHJ2LCB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yLCBzdWJkZXZpY2UsXG4tXHRcdFx0ICAgICAgIGNsYXNzLCBjbGFzc19tYXNrLCBkcml2ZXJfZGF0YSk7XG4rXHRyZXR2YWwgPSBkb19wY2lfYWRkX2R5bmlkKHBkcnYsIFx1MDAyNmlkLCBmaWVsZHMgIT0gNyk7XG4gXHRpZiAocmV0dmFsKVxuIFx0XHRyZXR1cm4gcmV0dmFsO1xuIFx0cmV0dXJuIGNvdW50O1xuQEAgLTQ0NCwxNSArNDcwLDE0IEBAIHZvaWQgcGNpX3Byb2JlX2ZsdXNoX3dvcmtxdWV1ZSh2b2lkKVxuICAqL1xuIHN0YXRpYyBpbnQgX19wY2lfZGV2aWNlX3Byb2JlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsIHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2KVxuIHtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZDtcbitcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xuIFx0aW50IGVycm9yID0gMDtcbiBcbiBcdGlmIChkcnYtXHUwMDNlcHJvYmUpIHtcbiBcdFx0ZXJyb3IgPSAtRU5PREVWO1xuIFxuLVx0XHRpZCA9IHBjaV9tYXRjaF9kZXZpY2UoZHJ2LCBwY2lfZGV2KTtcbi1cdFx0aWYgKGlkKVxuLVx0XHRcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBpZCk7XG4rXHRcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKGRydiwgcGNpX2RldiwgXHUwMDI2aWQpKVxuK1x0XHRcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBcdTAwMjZpZCk7XG4gXHR9XG4gXHRyZXR1cm4gZXJyb3I7XG4gfVxuQEAgLTE1MzcsMTcgKzE1NjIsMTMgQEAgc3RhdGljIGludCBwY2lfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldiA9IHRvX3BjaV9kZXYoZGV2KTtcbiBcdHN0cnVjdCBwY2lfZHJpdmVyICpwY2lfZHJ2O1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQ7XG4gXG4gXHRpZiAocGNpX2Rldl9iaW5kaW5nX2Rpc2FsbG93ZWQocGNpX2RldikpXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0cGNpX2RydiA9IChzdHJ1Y3QgcGNpX2RyaXZlciAqKXRvX3BjaV9kcml2ZXIoZHJ2KTtcbi1cdGZvdW5kX2lkID0gcGNpX21hdGNoX2RldmljZShwY2lfZHJ2LCBwY2lfZGV2KTtcbi1cdGlmIChmb3VuZF9pZClcbi1cdFx0cmV0dXJuIDE7XG4tXG4tXHRyZXR1cm4gMDtcbitcdHJldHVybiBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYsIFx1MDAyNmlkKTtcbiB9XG4gXG4gLyoqXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmggYi9kcml2ZXJzL3BjaS9wY2kuaFxuaW5kZXggNDQ2OWUxYTc3ZjNjMTMuLjA1NjdhODc2MmJhYTA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wY2kvcGNpLmhcbisrKyBiL2RyaXZlcnMvcGNpL3BjaS5oXG5AQCAtNDQyLDIxICs0NDIsMzcgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3NldHVwX2NhcmRidXMoY2hhciAqc3RyKSB7IHJldHVybiAtRU5PRU5UOyB9XG4gI2VuZGlmIC8qIENPTkZJR19DQVJEQlVTICovXG4gXG4gLyoqXG4tICogcGNpX21hdGNoX29uZV9kZXZpY2UgLSBUZWxsIGlmIGEgUENJIGRldmljZSBzdHJ1Y3R1cmUgaGFzIGEgbWF0Y2hpbmdcbi0gKlx0XHRcdCAgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmVcbi0gKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaFxuLSAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0XG4rICogcGNpX2lkX2Zyb21fZGV2aWNlIC0gT2J0YWluIGEgcGNpX2RldmljZV9pZCBmcm9tIGEgUENJIGRldmljZVxuKyAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlXG4rICpcbisgKiBSZXR1cm5zIGEgcGNpX2RldmljZV9pZCBmaWxsZWQuXG4rICovXG4rc3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfaWRfZnJvbV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldilcbit7XG4rXHRyZXR1cm4gKHN0cnVjdCBwY2lfZGV2aWNlX2lkKSB7XG4rXHRcdC52ZW5kb3IgPSBkZXYtXHUwMDNldmVuZG9yLFxuK1x0XHQuZGV2aWNlID0gZGV2LVx1MDAzZWRldmljZSxcbitcdFx0LnN1YnZlbmRvciA9IGRldi1cdTAwM2VzdWJzeXN0ZW1fdmVuZG9yLFxuK1x0XHQuc3ViZGV2aWNlID0gZGV2LVx1MDAzZXN1YnN5c3RlbV9kZXZpY2UsXG4rXHRcdC5jbGFzcyA9IGRldi1cdTAwM2VjbGFzcyxcbitcdH07XG4rfVxuK1xuKy8qKlxuKyAqIHBjaV9tYXRjaF9vbmVfaWQgLSBUZWxsIGlmIGEgUENJIGRldmljZSBJRCBtYXRjaGVzIGEgbmVlZGxlIFBDSSBkZXZpY2UgaWRcbisgKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0IChuZWVkbGUpXG4rICogQGRldl9pZDogdGhlIGFjdHVhbCBJRCBmcm9tIHRoZSBQQ0kgZGV2aWNlIChjYW4gYmUgY3JlYXRlZCB2aWEgcGNpX2lkX2Zyb21fZGV2aWNlKVxuICAqXG4gICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZCBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guXG4gICovXG4gc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqXG4tcGNpX21hdGNoX29uZV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KVxuK3BjaV9tYXRjaF9vbmVfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZGV2X2lkKVxuIHtcbi1cdGlmICgoaWQtXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNldmVuZG9yID09IGRldi1cdTAwM2V2ZW5kb3IpIFx1MDAyNlx1MDAyNlxuLVx0ICAgIChpZC1cdTAwM2VkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC1cdTAwM2VkZXZpY2UgPT0gZGV2LVx1MDAzZWRldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX3ZlbmRvcikgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YmRldmljZSA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX2RldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgISgoaWQtXHUwMDNlY2xhc3MgXiBkZXYtXHUwMDNlY2xhc3MpIFx1MDAyNiBpZC1cdTAwM2VjbGFzc19tYXNrKSlcbitcdGlmICgoaWQtXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNldmVuZG9yID09IGRldl9pZC1cdTAwM2V2ZW5kb3IpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIChpZC1cdTAwM2VkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC1cdTAwM2VkZXZpY2UgPT0gZGV2X2lkLVx1MDAzZWRldmljZSkgXHUwMDI2XHUwMDI2XG4rXHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXZfaWQtXHUwMDNlc3VidmVuZG9yKSBcdTAwMjZcdTAwMjZcbitcdCAgICAoaWQtXHUwMDNlc3ViZGV2aWNlID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNlc3ViZGV2aWNlID09IGRldl9pZC1cdTAwM2VzdWJkZXZpY2UpIFx1MDAyNlx1MDAyNlxuK1x0ICAgICEoKGlkLVx1MDAzZWNsYXNzIF4gZGV2X2lkLVx1MDAzZWNsYXNzKSBcdTAwMjYgaWQtXHUwMDNlY2xhc3NfbWFzaykpXG4gXHRcdHJldHVybiBpZDtcbiBcdHJldHVybiBOVUxMO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZWFyY2guYyBiL2RyaXZlcnMvcGNpL3NlYXJjaC5jXG5pbmRleCBlM2QzMTc3ZmNlNTQ5ZS4uYzhjNGJmZTc4MTdiMDMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS9zZWFyY2guY1xuKysrIGIvZHJpdmVycy9wY2kvc2VhcmNoLmNcbkBAIC0yNDUsOCArMjQ1LDEwIEBAIHN0YXRpYyBpbnQgbWF0Y2hfcGNpX2Rldl9ieV9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEpXG4ge1xuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7XG4gXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBkYXRhO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkO1xuIFxuLVx0aWYgKHBjaV9tYXRjaF9vbmVfZGV2aWNlKGlkLCBwZGV2KSlcbitcdGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShwZGV2KTtcbitcdGlmIChwY2lfbWF0Y2hfb25lX2lkKGlkLCBcdTAwMjZkZXZfaWQpKVxuIFx0XHRyZXR1cm4gMTtcbiBcdHJldHVybiAwO1xuIH1cbkBAIC00MTgsNyArNDIwLDcgQEAgRVhQT1JUX1NZTUJPTChwY2lfZ2V0X2NsYXNzKTtcbiAgKlxuICAqIEl0ZXJhdGVzIHRocm91Z2ggdGhlIGxpc3Qgb2Yga25vd24gUENJIGRldmljZXMuIElmIGEgUENJIGRldmljZSBpcyBmb3VuZFxuICAqIHdpdGggYSBtYXRjaGluZyBiYXNlIGNsYXNzIGNvZGUsIHRoZSByZWZlcmVuY2UgY291bnQgdG8gdGhlIGRldmljZSBpc1xuLSAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9kZXZpY2UoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuXG4rICogaW5jcmVtZW50ZWQuIFNlZSBwY2lfbWF0Y2hfb25lX2lkKCkgdG8gZmlndXJlIG91dCBob3cgZG9lcyB0aGlzIHdvcmtzLlxuICAqIEEgbmV3IHNlYXJjaCBpcyBpbml0aWF0ZWQgYnkgcGFzc2luZyAlTlVMTCBhcyB0aGUgQGZyb20gYXJndW1lbnQuXG4gICogT3RoZXJ3aXNlIGlmIEBmcm9tIGlzIG5vdCAlTlVMTCwgc2VhcmNoZXMgY29udGludWUgZnJvbSBuZXh0IGRldmljZSBvbiB0aGVcbiAgKiBnbG9iYWwgbGlzdC4gVGhlIHJlZmVyZW5jZSBjb3VudCBmb3IgQGZyb20gaXMgYWx3YXlzIGRlY3JlbWVudGVkIGlmIGl0IGlzXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL25zcDMyLmMgYi9kcml2ZXJzL3Njc2kvbnNwMzIuY1xuaW5kZXggZTg5M2Q1Njc3MjQxN2EuLjljOTI4MTIyMmEwYWNmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmNcbisrKyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jXG5AQCAtMTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGludCBuc3AzMl9zaG93X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KVxuIFx0XHQgICAobnNwMzJfcmVhZDIoYmFzZSwgSU5ERVhfUkVHKSBcdTAwM2VcdTAwM2UgOCkgXHUwMDI2IDB4ZmYpO1xuIFxuIFx0bW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpO1xuLVx0bW9kZWwgICAgPSBkYXRhLVx1MDAzZXBjaV9kZXZpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbitcdG1vZGVsICAgID0gZGF0YS1cdTAwM2Vtb2RlbDtcbiBcbiAjaWZkZWYgQ09ORklHX1BNXG4gXHRzZXFfcHJpbnRmKG0sIFwiUG93ZXIgTWFuYWdlbWVudDogICAgICAlc1xcblwiLFxuQEAgLTI5MDcsOCArMjkwNyw4IEBAIHN0YXRpYyBpbnQgbnNwMzJfZWhfaG9zdF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudClcbiAgKi9cbiBzdGF0aWMgaW50IG5zcDMyX2dldHByb21fcGFyYW0obnNwMzJfaHdfZGF0YSAqZGF0YSlcbiB7XG4tXHRpbnQgdmVuZG9yID0gZGF0YS1cdTAwM2VwY2lfZGV2aWQtXHUwMDNldmVuZG9yO1xuLVx0aW50IGRldmljZSA9IGRhdGEtXHUwMDNlcGNpX2RldmlkLVx1MDAzZWRldmljZTtcbitcdGludCB2ZW5kb3IgPSBkYXRhLVx1MDAzZVBjaS1cdTAwM2V2ZW5kb3I7XG4rXHRpbnQgZGV2aWNlID0gZGF0YS1cdTAwM2VQY2ktXHUwMDNlZGV2aWNlO1xuIFx0aW50IHJldCwgaTtcbiBcdGludCBfX21heWJlX3VudXNlZCB2YWw7XG4gXG5AQCAtMzM0MCw3ICszMzQwLDcgQEAgc3RhdGljIGludCBuc3AzMl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuIFx0fVxuIFxuIFx0ZGF0YS1cdTAwM2VQY2lcdCAgPSBwZGV2O1xuLVx0ZGF0YS1cdTAwM2VwY2lfZGV2aWQgICA9IGlkO1xuK1x0ZGF0YS1cdTAwM2Vtb2RlbCAgICAgICA9IGlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuIFx0ZGF0YS1cdTAwM2VJcnFOdW1iZXIgICA9IHBkZXYtXHUwMDNlaXJxO1xuIFx0ZGF0YS1cdTAwM2VCYXNlQWRkcmVzcyA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAwKTtcbiBcdGRhdGEtXHUwMDNlTnVtQWRkcmVzcyAgPSBwY2lfcmVzb3VyY2VfbGVuICAocGRldiwgMCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL25zcDMyLmggYi9kcml2ZXJzL3Njc2kvbnNwMzIuaFxuaW5kZXggOTI0ODg5ZjhiZDM3ZTcuLjllNjU3NzFjYjU5Mjg2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmhcbisrKyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oXG5AQCAtNTY0LDEwICs1NjQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX25zcDMyX2h3X2RhdGEge1xuIFxuIFx0c3RydWN0IHNjc2lfY21uZCAqQ3VycmVudFNDO1xuIFxuLVx0c3RydWN0IHBjaV9kZXYgICAgICAgICAgICAgKlBjaTtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2aWQ7XG4tXHRzdHJ1Y3QgU2NzaV9Ib3N0ICAgICAgICAgICAqSG9zdDtcbi1cdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBMb2NrO1xuK1x0c3RydWN0IHBjaV9kZXYgICAgKlBjaTtcbitcdGludCAgICAgICAgICAgICAgICBtb2RlbDtcbitcdHN0cnVjdCBTY3NpX0hvc3QgICpIb3N0O1xuK1x0c3BpbmxvY2tfdCAgICAgICAgIExvY2s7XG4gXG4gXHRjaGFyIGluZm9fc3RyWzEwMF07XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2kuaCBiL2luY2x1ZGUvbGludXgvcGNpLmhcbmluZGV4IGViYjViOWQ3NjM2MDllLi5mMTI4ZDhjMGNiYjY0ZCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvcGNpLmhcbisrKyBiL2luY2x1ZGUvbGludXgvcGNpLmhcbkBAIC05NzksNiArOTc5LDcgQEAgc3RydWN0IG1vZHVsZTtcbiAgKlx0XHRmdW5jdGlvbiByZXR1cm5zIHplcm8gd2hlbiB0aGUgZHJpdmVyIGNob29zZXMgdG9cbiAgKlx0XHR0YWtlIFwib3duZXJzaGlwXCIgb2YgdGhlIGRldmljZSBvciBhbiBlcnJvciBjb2RlXG4gICpcdFx0KG5lZ2F0aXZlIG51bWJlcikgb3RoZXJ3aXNlLlxuKyAqXHRcdFRoZSBwY2lfZGV2aWNlX2lkIHBhcmFtZXRlciBpcyBvbmx5IHZhbGlkIGR1cmluZyBwcm9iZS5cbiAgKlx0XHRUaGUgcHJvYmUgZnVuY3Rpb24gYWx3YXlzIGdldHMgY2FsbGVkIGZyb20gcHJvY2Vzc1xuICAqXHRcdGNvbnRleHQsIHNvIGl0IGNhbiBzbGVlcC5cbiAgKiBAcmVtb3ZlOlx0VGhlIHJlbW92ZSgpIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW5ldmVyIGEgZGV2aWNlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzozMC44NDA4NDE5MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNTEyODY2NTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBDSSBEZXZpY2UgTWF0Y2hpbmcgYW5kIFByb2JlIExvZ2ljIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBob3cgUENJIGRldmljZXMgYXJlIG1hdGNoZWQgYW5kIHByb2JlZCBpbiB0aGUga2VybmVsLiBJbml0aWFsbHksIEkgc2VlIHRoYXQgaXQncyBhbHRlcmluZyBgcGNpX21hdGNoX2RldmljZWAgdG8gcmV0dXJuIGEgYm9vbGVhbiBhbmQgcG9wdWxhdGUgYSBgcGNpX2RldmljZV9pZGAgc3RydWN0dXJlLCBpbnN0ZWFkIG9mIHJldHVybmluZyBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZS4gSXQgYWxzbyBtYWtlcyBjb3JyZXNwb25kaW5nIGFkanVzdG1lbnRzIHRvIGBwY2lfbWF0Y2hfb25lX2RldmljZWAgYW5kIGludHJvZHVjZXMgYHBjaV9pZF9mcm9tX2RldmljZWAuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIGhhbmcgb24sIHRoaXMgaXMgc2lnbmlmaWNhbnQuIENoYW5naW5nIHRoZSByZXR1cm4gdHlwZSBvZiBgcGNpX21hdGNoX2RldmljZWAgaW1wbGllcyBhIHN1YnN0YW50aWFsIHNoaWZ0IGluIHRoZSBwcm9iZSBtZWNoYW5pc20uIFRoZSBjb2RlIHNuaXBwZXQgc2hvd3MgdGhhdCB0aGUgYGlkYCBpcyBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrIG9mIGBfX3BjaV9kZXZpY2VfcHJvYmVgLiBUaGlzIG1lYW5zIGFueSBkcml2ZXIgdGhhdCBwcmV2aW91c2x5ICpzYXZlZCogdGhlIGBpZGAgcG9pbnRlciB0aGV5IHJlY2VpdmVkIGluIHRoZWlyIGBwcm9iZWAgZnVuY3Rpb24gd291bGQgbm93IGhhdmUgYSBkYW5nbGluZyBwb2ludGVyLCB3aGljaCBpcyBhIGJpZyBkZWFsISBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBleGFjdGx5IHRoaXMsIGZpeGluZyB0aGUgYGF0YV9nZW5lcmljYCwgYHRwY2kyMDBgLCBgbWx4c3dgLCBhbmQgYG5zcDMyYCBkcml2ZXJzIHdoaWNoIGFwcGFyZW50bHkgd2VyZSBkb2luZyBwcmVjaXNlbHkgdGhhdC4gSXQncyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBpbXBhY3RpbmcgY29yZSBQQ0kgbWF0Y2hpbmcuXG5cbk5vdywgSSBuZWVkIHRvIGNvbnNpZGVyIHRoZSB0ZXN0aW5nIGltcGxpY2F0aW9ucy4gQ2FuIHRoaXMgYmUgZnV6emVkPyBBYnNvbHV0ZWx5LiBUb29scyBsaWtlIHN5emthbGxlciBjYW4gZWFzaWx5IGZ1enogUENJIGRldmljZXMgdmlhIHZpcnR1YWwgUENJIG1lY2hhbmlzbXMsIGluamVjdGluZyBhbGwgc29ydHMgb2Ygc2NlbmFyaW9zLiBTaW5jZSB0aGUgY29yZSBQQ0kgY2hhbmdlcyBpbXBhY3QgKmFsbCogZHJpdmVycywgdGhhdCBtYWtlcyBpdCBldmVuIG1vcmUgY3JpdGljYWwuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgcmVhY2hhYmxlOyBgcGNpX21hdGNoX2RldmljZWAsIGBwY2lfYWRkX2R5bmlkYCwgYG5ld19pZF9zdG9yZWAsIGFuZCBgcGNpX2J1c19tYXRjaGAgYXJlIGFsbCBkZWZpbml0ZWx5IGluIHRoZSBjYWxsIGdyYXBoLlxuXG5MZXQncyBkaWcgaW50byBgcGNpX2FkZF9keW5pZGAgYW5kIGBuZXdfaWRfc3RvcmVgIHNwZWNpZmljYWxseS4gVGhlIGBuZXdfaWRfc3RvcmVgIGZ1bmN0aW9uIGlzIHRoZSBzeXNmcyBpbnRlcmZhY2UgZm9yIGFkZGluZyBkeW5hbWljIElEcy4gSXQgc2VlbXMgdGhlIHBhdGNoIG9wdGltaXplcyBpdCwgcmVtb3ZpbmcgYSBkdW1teSBgcGNpX2RldmAgYWxsb2NhdGlvbiB3aGVuIGNoZWNraW5nIGZvciBkdXBsaWNhdGVzIGFuZCBpbnN0ZWFkIHVzZXMgYGRvX3BjaV9tYXRjaF9pZGAgZGlyZWN0bHksIGludHJvZHVjaW5nIGBkb19wY2lfYWRkX2R5bmlkYC5cblxuSSdsbCBhbHNvIHdhbnQgdG8ga25vdyB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgbmVlZGVkIHRvIGVuYWJsZSB0aGUgZHJpdmVycyBhZmZlY3RlZC4gVGhpcyBwYXRjaCBmaXhlcyBwcm9ibGVtcyB0aGF0IHdlcmUgaW4gdGhlIGRyaXZlcnMgZm9yIGBDT05GSUdfQVRBX0dFTkVSSUNgLCBgQ09ORklHX1RQQ0kyMDBgLCBgQ09ORklHX01MWFNXX1BDSWAsIGFuZCBgQ09ORklHX1NDU0lfTlNQMzJgLlxuSSB3aWxsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvYXRhL0tjb25maWdgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NzkwLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODM0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NDEuMzUzNzExMjg1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3ODMxODAwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRBX0dFTkVSSUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9hdGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvYXRhL0tjb25maWc9MTE2Mz1jb25maWcgUEFUQV9BQ1BJXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTExNzItXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMTczOmNvbmZpZyBBVEFfR0VORVJJQ1xcbmRyaXZlcnMvYXRhL0tjb25maWctMTE3NC1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBBVEEgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NDEuNzMyMDM2Nzc4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzEyNjg0Mzg1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKktjb25maWcgQ2hlY2sqKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCB0byBpdC4gRmlyc3QsIEkgbmVlZCB0byB2ZXJpZnkgc29tZXRoaW5nIHNwZWNpZmljIHdpdGhpbiB0aGUgaS5wYWNrIGNhcnJpZXIgY29uZmlndXJhdGlvbi4gTGV0J3Mgc3RhcnQgYnkgbmF2aWdhdGluZyB0byB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGUsIGxvY2F0ZWQgaW4gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvYC4gSSdtIGdvaW5nIHRvIHRha2UgYSBsb29rIGF0IHRoZSBjb25maWd1cmF0aW9uIGZvciB0aGlzLiBUaGlzIHNob3VsZCB0ZWxsIG1lIHdoYXQgSSBuZWVkIHRvIGtub3cgYWJvdXQgdGhpcyBjYXJyaWVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTI3NywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjQ0Ljg1ODg4NTM1MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Njk4NjI5MSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRQQ0kyMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9pcGFjay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjQ0Ljk0NTg4MTgxNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MDcwMTI2OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEtjb25maWcgTGFieXJpbnRoKipcblxuT2theSwgc28gdGhlIGJyZWFkY3J1bWIgdHJhaWwgbGVhZHMgbWUgdG8gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZ2AuIFJpZ2h0LCBgZHJpdmVyc2AuLi4gYGlwYWNrYC4uLiBgY2FycmllcnNgLi4uIGBLY29uZmlnYC4gVGhhdCBzcGVjaWZpYyBmaWxlIHBsYWNlbWVudCBhbHdheXMgZ2l2ZXMgbWUgYSBjbHVlIGFib3V0IHRoZSBhcmNoaXRlY3R1cmUuIEkgbmVlZCB0byBnZXQgb3JpZW50ZWQuIEJlZm9yZSBJIGV2ZW4gc3RhcnQgYW5hbHl6aW5nIHRoZSBjb250ZW50LCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyBcIkxldCdzIGNyYWNrIG9wZW4gdGhhdCBkaXJlY3RvcnkgYW5kIHNlZSB3aGF0IHRoZSB3aWRlciBzdHJ1Y3R1cmUgbG9va3MgbGlrZS4gQ29udGV4dCBpcyBraW5nLCBlc3BlY2lhbGx5IHdpdGggS2NvbmZpZyBmaWxlcy5cIiBHb3R0YSBoYXZlIGEgZ29vZCBncmFzcCBvZiB0aGUgc3Vycm91bmRpbmcgZmlsZXMgYW5kIGhvdyB0aGlzIG1vZHVsZSBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlIGJlZm9yZSBJIGRpdmUgaW50byB0aGUgZGV0YWlscy4gVW5kZXJzdGFuZGluZyB0aGF0IGhpZ2ggbGV2ZWwgdmlldyBmaXJzdCB3aWxsIHNhdmUgYSBsb3Qgb2YgdGltZSBhbmQgcG90ZW50aWFsIGNvbmZ1c2lvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE0MzQsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzo0Ny43NTI4OTg5OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3OTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9pcGFjay9jYXJyaWVycy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwidHBjaTIwMC5jXCIsXG4gICAgXCJ0cGNpMjAwLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NDcuNzUzMDI5NTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTEwOTQzNzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGBpcGFja2AgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgYWx3YXlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBgS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHRoZSBoZWFydCBvZiBob3cgdGhpcyBkcml2ZXIgaXMgY29udHJvbGxlZCBhbmQgYnVpbHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLCB3aGF0IGRlcGVuZGVuY2llcyB0aGVyZSBhcmUsIGFuZCBob3cgdGhlIHZhcmlvdXMgc2V0dGluZ3MgYWZmZWN0IHRoZSBidWlsZCBwcm9jZXNzLiBJJ20gZ29pbmcgdG8gcHVsbCB1cCBgZHJpdmVycy9pcGFjay9LY29uZmlnYCBhbmQgc3RhcnQgZGlzc2VjdGluZyBpdCwgbG9va2luZyBmb3IgdGhlIGtleSBjb21wb25lbnRzIHRoYXQgZGVmaW5lIHRoaXMgcGFydGljdWxhciBtb2R1bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNjczLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjUwLjg2Mzk3NTE4N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI2MjUwNjM3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVFBDSTIwMFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2lwYWNrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NTAuOTkwMjM0NDQ0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMTQ4NDczMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBhcyByZXF1ZXN0ZWQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHRwY2kyMDBgIEtleXdvcmQgd2l0aGluIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHdvcmsuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGUgYHRwY2kyMDBgIGtleXdvcmQgZml0cyB3aXRoaW4gdGhlIGJyb2FkZXIgY29udGV4dCBvZiB0aGUga2VybmVsJ3MgY29uZmlndXJhdGlvbiBvcHRpb25zLiBNeSBndXQgZmVlbGluZyBpcyBpdCdzIHJlbGF0ZWQgdG8gc29tZSBzb3J0IG9mIGRldmljZSBkcml2ZXIsIGxpa2VseSB3aXRoaW4gdGhlIGBpcGFja2Agc3Vic3lzdGVtLCBnaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24uIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIGtpY2sgdGhpbmdzIG9mZiBieSBncmVwcGluZyBmb3IgYHRwY2kyMDBgIGluIHRoZSBgZHJpdmVycy9pcGFjay9LY29uZmlnYCBmaWxlLiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBpbml0aWFsIGhpdHMgSSBuZWVkIHRvIHN0YXJ0IGZvcm1pbmcgYSBjbGVhcmVyIHBpY3R1cmUuIEl0J3MgYSBmdW5kYW1lbnRhbCBpbml0aWFsIHN0ZXAgdG8gdW5kZXJzdGFuZGluZyBpdHMgcHVycG9zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE4NTcsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzo1NC4zMDUxMTUzNjFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjg0OTY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cGNpMjAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvaXBhY2svXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTU3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19CT0FSRF9UUENJMjAwKSArPSB0cGNpMjAwLm9cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9zbGFiLmhcXHUwMDNlXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTI6I2luY2x1ZGUgXFxcInRwY2kyMDAuaFxcXCJcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMy1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDpzdGF0aWMgY29uc3QgdTE2IHRwY2kyMDBfc3RhdHVzX3RpbWVvdXRbXSA9IHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNS1cXHRUUENJMjAwX0FfVElNRU9VVCxcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIxOnN0YXRpYyBjb25zdCB1MTYgdHBjaTIwMF9zdGF0dXNfZXJyb3JbXSA9IHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMi1cXHRUUENJMjAwX0FfRVJST1IsXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNy1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyODpzdGF0aWMgY29uc3Qgc2l6ZV90IHRwY2kyMDBfc3BhY2Vfc2l6ZVtJUEFDS19TUEFDRV9DT1VOVF0gPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjktXFx0W0lQQUNLX0lPX1NQQUNFXSAgICA9IFRQQ0kyMDBfSU9fU1BBQ0VfU0laRSxcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM2OnN0YXRpYyBjb25zdCBzaXplX3QgdHBjaTIwMF9zcGFjZV9pbnRlcnZhbFtJUEFDS19TUEFDRV9DT1VOVF0gPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzctXFx0W0lQQUNLX0lPX1NQQUNFXSAgICA9IFRQQ0kyMDBfSU9fU1BBQ0VfSU5URVJWQUwsXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00My1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDpzdGF0aWMgc3RydWN0IHRwY2kyMDBfYm9hcmQgKmNoZWNrX3Nsb3Qoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ1LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NjpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00Ny1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyOlxcdHRwY2kyMDAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2LVxcdTAwM2VidXMtXFx1MDAzZXBhcmVudCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQ6XFx0aWYgKHRwY2kyMDAgPT0gTlVMTCkge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU1LVxcdFxcdGRldl9pbmZvKFxcdTAwMjZkZXYtXFx1MDAzZWRldiwgXFxcImNhcnJpZXIgYm9hcmQgbm90IGZvdW5kXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTpcXHRcXHRcXHQgXFxcIlNsb3QgWyVkOiVkXSBkb2Vzbid0IGV4aXN0ISBMYXN0IHRwY2kyMDAgc2xvdCBpcyAlZC5cXFxcblxcXCIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjItXFx0XFx0XFx0IGRldi1cXHUwMDNlYnVzLVxcdTAwM2VidXNfbnIsIGRldi1cXHUwMDNlc2xvdCwgVFBDSTIwMF9OQl9TTE9ULTEpO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjY6XFx0cmV0dXJuIHRwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjctfVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjY5OnN0YXRpYyB2b2lkIHRwY2kyMDBfY2xlYXJfbWFzayhzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy03MC1cXHRcXHRcXHQgICAgICAgX19sZTE2IF9faW9tZW0gKmFkZHIsIHUxNiBtYXNrKVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzItXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo3MzpcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2dHBjaTIwMC1cXHUwMDNlcmVnc19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzQtXFx0aW93cml0ZTE2KGlvcmVhZDE2KGFkZHIpIFxcdTAwMjYgKH5tYXNrKSwgYWRkcik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NzU6XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dHBjaTIwMC1cXHUwMDNlcmVnc19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzYtfVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjc4OnN0YXRpYyB2b2lkIHRwY2kyMDBfc2V0X21hc2soc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzktXFx0XFx0XFx0ICAgICBfX2xlMTYgX19pb21lbSAqYWRkciwgdTE2IG1hc2spXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy04MS1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjgyOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy04My1cXHRpb3dyaXRlMTYoaW9yZWFkMTYoYWRkcikgfCBtYXNrLCBhZGRyKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo4NDpcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy04NS19XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtODYtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6ODc6c3RhdGljIHZvaWQgdHBjaTIwMF91bnJlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTg4LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo4OTpcXHRmcmVlX2lycSh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VpcnEsICh2b2lkICopIHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTkwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjkxOlxcdHBjaV9pb3VubWFwKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy05Mi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5MzpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9JUF9JTlRFUkZBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5NDpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9JT19JRF9JTlRfU1BBQ0VTX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6OTU6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5NjpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtOTctXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6OTg6XFx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTk5LX1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDAtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTAxOnN0YXRpYyB2b2lkIHRwY2kyMDBfZW5hYmxlX2lycShzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDItXFx0XFx0XFx0ICAgICAgIGludCBpc2xvdClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDMte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEwNDpcXHR0cGNpMjAwX3NldF9tYXNrKHRwY2kyMDAsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTA1OlxcdFxcdFxcdFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncy1cXHUwMDNlY29udHJvbFtpc2xvdF0sXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTA2LVxcdFxcdFxcdFRQQ0kyMDBfSU5UMF9FTiB8IFRQQ0kyMDBfSU5UMV9FTik7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTA5OnN0YXRpYyB2b2lkIHRwY2kyMDBfZGlzYWJsZV9pcnEoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTEwLVxcdFxcdFxcdFxcdGludCBpc2xvdClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTEte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjExMjpcXHR0cGNpMjAwX2NsZWFyX21hc2sodHBjaTIwMCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMTM6XFx0XFx0XFx0XFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2Vjb250cm9sW2lzbG90XSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTQtXFx0XFx0XFx0VFBDSTIwMF9JTlQwX0VOIHwgVFBDSTIwMF9JTlQxX0VOKTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTExNi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMTc6c3RhdGljIGlycXJldHVybl90IHRwY2kyMDBfc2xvdF9pcnEoc3RydWN0IHNsb3RfaXJxICpzbG90X2lycSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTgte1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTI3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEyODpzdGF0aWMgaXJxcmV0dXJuX3QgdHBjaTIwMF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEyOS17XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTMwOlxcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gKHN0cnVjdCB0cGNpMjAwX2JvYXJkICopIGRldl9pZDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMzEtXFx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzNi1cXHQvKiBSZWFkIHN0YXR1cyByZWdpc3RlciAqL1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEzNzpcXHRzdGF0dXNfcmVnID0gaW9yZWFkMTYoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2VzdGF0dXMpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzOC1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE0Ny1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDg6XFx0XFx0c2xvdF9pcnEgPSByY3VfZGVyZWZlcmVuY2UodHBjaTIwMC1cXHUwMDNlc2xvdHNbaV0uaXJxKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDk6XFx0XFx0cmV0ID0gdHBjaTIwMF9zbG90X2lycShzbG90X2lycSk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTUwLVxcdFxcdGlmIChyZXQgPT0gLUVOT0RFVikge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE1MTpcXHRcXHRcXHRkZXZfaW5mbyhcXHUwMDI2dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE1Mi1cXHRcXHRcXHRcXHQgXFxcIk5vIHJlZ2lzdGVyZWQgSVNSIGZvciBzbG90IFslZDolZF0hLiBJUlEgd2lsbCBiZSBkaXNhYmxlZC5cXFxcblxcXCIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTUzOlxcdFxcdFxcdFxcdCB0cGNpMjAwLVxcdTAwM2VudW1iZXIsIGkpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE1NDpcXHRcXHRcXHR0cGNpMjAwX2Rpc2FibGVfaXJxKHRwY2kyMDAsIGkpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE1NS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjEtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTYyOnN0YXRpYyBpbnQgdHBjaTIwMF9mcmVlX2lycShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTYzLXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjQtXFx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNjU6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTY2LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2NzpcXHR0cGNpMjAwID0gY2hlY2tfc2xvdChkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2ODpcXHRpZiAodHBjaTIwMCA9PSBOVUxMKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE2OS1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzAtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTcxOlxcdGlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzItXFx0XFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTc0OlxcdGlmICh0cGNpMjAwLVxcdTAwM2VzbG90c1tkZXYtXFx1MDAzZXNsb3RdLmlycSA9PSBOVUxMKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTc1OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dHBjaTIwMC1cXHUwMDNlbXV0ZXgpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3Ni1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3OC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNzk6XFx0dHBjaTIwMF9kaXNhYmxlX2lycSh0cGNpMjAwLCBkZXYtXFx1MDAzZXNsb3QpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE4MDpcXHRzbG90X2lycSA9IHRwY2kyMDAtXFx1MDAzZXNsb3RzW2Rldi1cXHUwMDNlc2xvdF0uaXJxO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE4MS1cXHQvKiB1bmluc3RhbGwgaGFuZGxlciAqL1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE4MjpcXHRSQ1VfSU5JVF9QT0lOVEVSKHRwY2kyMDAtXFx1MDAzZXNsb3RzW2Rldi1cXHUwMDNlc2xvdF0uaXJxLCBOVUxMKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODMtXFx0c3luY2hyb25pemVfcmN1KCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTg0LVxcdGtmcmVlKHNsb3RfaXJxKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxODU6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VtdXRleCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTg2LVxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTg4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE4OTpzdGF0aWMgaW50IHRwY2kyMDBfcmVxdWVzdF9pcnEoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE5MC1cXHRcXHRcXHQgICAgICAgaXJxcmV0dXJuX3QgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICphcmcpXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xOTMtXFx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxOTQ6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTk1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NjpcXHR0cGNpMjAwID0gY2hlY2tfc2xvdChkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NzpcXHRpZiAodHBjaTIwMCA9PSBOVUxMKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE5OC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xOTktXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjAwOlxcdGlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMDEtXFx0XFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMDItXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjAzOlxcdGlmICh0cGNpMjAwLVxcdTAwM2VzbG90c1tkZXYtXFx1MDAzZXNsb3RdLmlycSAhPSBOVUxMKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjA0LVxcdFxcdGRldl9lcnIoXFx1MDAyNmRldi1cXHUwMDNlZGV2LFxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjMwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIzMTpcXHRyY3VfYXNzaWduX3BvaW50ZXIodHBjaTIwMC1cXHUwMDNlc2xvdHNbZGV2LVxcdTAwM2VzbG90XS5pcnEsIHNsb3RfaXJxKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyMzI6XFx0dHBjaTIwMF9lbmFibGVfaXJxKHRwY2kyMDAsIGRldi1cXHUwMDNlc2xvdCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjMzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzNC1vdXRfdW5sb2NrOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIzNTpcXHRtdXRleF91bmxvY2soXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMzYtXFx0cmV0dXJuIHJlcztcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzOC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyMzk6c3RhdGljIGludCB0cGNpMjAwX3JlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI0MC17XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNDUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjQ2OlxcdGlmIChwY2lfZW5hYmxlX2RldmljZSh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2KSBcXHUwMDNjIDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQ3LVxcdFxcdHJldHVybiAtRU5PREVWO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQ5LVxcdC8qIFJlcXVlc3QgSVAgaW50ZXJmYWNlIHJlZ2lzdGVyIChCYXIgMikgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNTA6XFx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNTEtXFx0XFx0XFx0XFx0IFxcXCJDYXJyaWVyIElQIGludGVyZmFjZSByZWdpc3RlcnNcXFwiKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNTItXFx0aWYgKHJlcykge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI1MzpcXHRcXHRkZXZfZXJyKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjU0LVxcdFxcdFxcdFxcXCIoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDIgIVxcXCIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjU1OlxcdFxcdFxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWJ1cy1cXHUwMDNlbnVtYmVyLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI1NjpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXZmbik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjU3LVxcdFxcdGdvdG8gZXJyX2Rpc2FibGVfZGV2aWNlO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYwLVxcdC8qIFJlcXVlc3QgSU8gSUQgSU5UIHNwYWNlIChCYXIgMykgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNjE6XFx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYyLVxcdFxcdFxcdFxcdCBUUENJMjAwX0lPX0lEX0lOVF9TUEFDRVNfQkFSLFxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjY0LVxcdGlmIChyZXMpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNjU6XFx0XFx0ZGV2X2VycihcXHUwMDI2dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2Ni1cXHRcXHRcXHRcXFwiKGJuIDB4JVgsIHNuIDB4JVgpIGZhaWxlZCB0byBhbGxvY2F0ZSBQQ0kgcmVzb3VyY2UgZm9yIEJBUiAzICFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI2NzpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNjg6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2OS1cXHRcXHRnb3RvIGVycl9pcF9pbnRlcmZhY2VfYmFyO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjcyLVxcdC8qIFJlcXVlc3QgTUVNOCBzcGFjZSAoQmFyIDUpICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjczOlxcdHJlcyA9IHBjaV9yZXF1ZXN0X3JlZ2lvbih0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LCBUUENJMjAwX01FTThfU1BBQ0VfQkFSLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI3NC1cXHRcXHRcXHRcXHQgXFxcIkNhcnJpZXIgTUVNOCBzcGFjZVxcXCIpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI3NS1cXHRpZiAocmVzKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjc2OlxcdFxcdGRldl9lcnIoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNzctXFx0XFx0XFx0XFxcIihibiAweCVYLCBzbiAweCVYKSBmYWlsZWQgdG8gYWxsb2NhdGUgUENJIHJlc291cmNlIGZvciBCQVIgNSFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI3ODpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNzk6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4MC1cXHRcXHRnb3RvIGVycl9pb19pZF9pbnRfc3BhY2VzX2JhcjtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4My1cXHQvKiBSZXF1ZXN0IE1FTTE2IHNwYWNlIChCYXIgNCkgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyODQ6XFx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4NS1cXHRcXHRcXHRcXHQgXFxcIkNhcnJpZXIgTUVNMTYgc3BhY2VcXFwiKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yODYtXFx0aWYgKHJlcykge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI4NzpcXHRcXHRkZXZfZXJyKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjg4LVxcdFxcdFxcdFxcXCIoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDQhXFxcIixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyODk6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlYnVzLVxcdTAwM2VudW1iZXIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjkwOlxcdFxcdFxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWRldmZuKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTEtXFx0XFx0Z290byBlcnJfbWVtOF9zcGFjZV9iYXI7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjk0OlxcdC8qIE1hcCBpbnRlcm5hbCB0cGNpMjAwIGRyaXZlciB1c2VyIHNwYWNlICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjk1OlxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzID1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTY6XFx0XFx0aW9yZW1hcChwY2lfcmVzb3VyY2Vfc3RhcnQodHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTctXFx0XFx0XFx0XFx0XFx0ICAgVFBDSTIwMF9JUF9JTlRFUkZBQ0VfQkFSKSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTgtXFx0XFx0XFx0VFBDSTIwMF9JRkFDRV9TSVpFKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTk6XFx0aWYgKCF0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncykge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwMDpcXHRcXHRkZXZfZXJyKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzAxLVxcdFxcdFxcdFxcXCIoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIG1hcCBkcml2ZXIgdXNlciBzcGFjZSFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwMjpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMDM6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMwNC1cXHRcXHRyZXMgPSAtRU5PTUVNO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzA4LVxcdC8qIEluaXRpYWxpemUgbG9jayB0aGF0IHByb3RlY3RzIGludGVyZmFjZV9yZWdzICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzA5OlxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VyZWdzX2xvY2spO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxMC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMTE6XFx0aW9pZGludF9iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzEyLVxcdFxcdFxcdFxcdFxcdCAgVFBDSTIwMF9JT19JRF9JTlRfU1BBQ0VTX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzEzOlxcdHRwY2kyMDAtXFx1MDAzZW1vZF9tZW1bSVBBQ0tfSU9fU1BBQ0VdID0gaW9pZGludF9iYXNlICsgVFBDSTIwMF9JT19TUEFDRV9PRkY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE0OlxcdHRwY2kyMDAtXFx1MDAzZW1vZF9tZW1bSVBBQ0tfSURfU1BBQ0VdID0gaW9pZGludF9iYXNlICsgVFBDSTIwMF9JRF9TUEFDRV9PRkY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE1OlxcdHRwY2kyMDAtXFx1MDAzZW1vZF9tZW1bSVBBQ0tfSU5UX1NQQUNFXSA9XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzE2LVxcdFxcdGlvaWRpbnRfYmFzZSArIFRQQ0kyMDBfSU5UX1NQQUNFX09GRjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMTc6XFx0dHBjaTIwMC1cXHUwMDNlbW9kX21lbVtJUEFDS19NRU04X1NQQUNFXSA9XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE4OlxcdFxcdHBjaV9yZXNvdXJjZV9zdGFydCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxOS1cXHRcXHRcXHRcXHQgICBUUENJMjAwX01FTThfU1BBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMjA6XFx0dHBjaTIwMC1cXHUwMDNlbW9kX21lbVtJUEFDS19NRU0xNl9TUEFDRV0gPVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMyMTpcXHRcXHRwY2lfcmVzb3VyY2Vfc3RhcnQodHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zMjItXFx0XFx0XFx0XFx0ICAgVFBDSTIwMF9NRU0xNl9TUEFDRV9CQVIpO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzMzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBUUENJMjAwX05CX1NMT1Q7IGkrKylcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMzQ6XFx0XFx0d3JpdGV3KHNsb3RfY3RybCwgXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2Vjb250cm9sW2ldKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zMzUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzM2OlxcdHJlcyA9IHJlcXVlc3RfaXJxKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWlycSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMzc6XFx0XFx0XFx0ICB0cGNpMjAwX2ludGVycnVwdCwgSVJRRl9TSEFSRUQsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzM4OlxcdFxcdFxcdCAgS0JVSUxEX01PRE5BTUUsICh2b2lkICopIHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzOS1cXHRpZiAocmVzKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzQwOlxcdFxcdGRldl9lcnIoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNDEtXFx0XFx0XFx0XFxcIihibiAweCVYLCBzbiAweCVYKSB1bmFibGUgdG8gcmVnaXN0ZXIgSVJRICFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM0MjpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNDM6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM0NC1cXHRcXHRnb3RvIGVycl9pbnRlcmZhY2VfcmVncztcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM0OS1lcnJfaW50ZXJmYWNlX3JlZ3M6XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzUwOlxcdHBjaV9pb3VubWFwKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTEtZXJyX21lbTE2X3NwYWNlX2JhcjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTI6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTMtZXJyX21lbThfc3BhY2VfYmFyOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM1NDpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzU1LWVycl9pb19pZF9pbnRfc3BhY2VzX2JhcjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTY6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfSU9fSURfSU5UX1NQQUNFU19CQVIpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1Ny1lcnJfaXBfaW50ZXJmYWNlX2JhcjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTg6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzU5LWVycl9kaXNhYmxlX2RldmljZTpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjA6XFx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2MS1cXHRyZXR1cm4gcmVzO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzYzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM2NDpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X2Nsb2NrcmF0ZShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzY1LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjY6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzY3LVxcdF9fbGUxNiBfX2lvbWVtICphZGRyO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2OC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjk6XFx0aWYgKCF0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM3MC1cXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzEtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzcyOlxcdGFkZHIgPSBcXHUwMDI2dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXFx1MDAzZWNvbnRyb2xbZGV2LVxcdTAwM2VzbG90XTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzMtXFx0cmV0dXJuIChpb3JlYWQxNihhZGRyKSBcXHUwMDI2IFRQQ0kyMDBfQ0xLMzIpID8gMzIgOiA4O1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzc1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM3NjpzdGF0aWMgaW50IHRwY2kyMDBfc2V0X2Nsb2NrcmF0ZShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYsIGludCBtaGVyeilcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzcte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM3ODpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzktXFx0X19sZTE2IF9faW9tZW0gKmFkZHI7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzgwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM4MTpcXHRpZiAoIXRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzgyLVxcdFxcdHJldHVybiAtRU5PREVWO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4My1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozODQ6XFx0YWRkciA9IFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncy1cXHUwMDNlY29udHJvbFtkZXYtXFx1MDAzZXNsb3RdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4NS1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4Ny1cXHRjYXNlIDg6XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mzg4OlxcdFxcdHRwY2kyMDBfY2xlYXJfbWFzayh0cGNpMjAwLCBhZGRyLCBUUENJMjAwX0NMSzMyKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zODktXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzkwLVxcdGNhc2UgMzI6XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzkxOlxcdFxcdHRwY2kyMDBfc2V0X21hc2sodHBjaTIwMCwgYWRkciwgVFBDSTIwMF9DTEszMik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzkyLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzk4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM5OTpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X2Vycm9yKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDAte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwMTpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDItXFx0X19sZTE2IF9faW9tZW0gKmFkZHI7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDQtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDA1OlxcdGlmICghdHBjaTIwMClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDYtXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDA3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwODpcXHRhZGRyID0gXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2VzdGF0dXM7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDA5OlxcdG1hc2sgPSB0cGNpMjAwX3N0YXR1c19lcnJvcltkZXYtXFx1MDAzZXNsb3RdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQxMC1cXHRyZXR1cm4gKGlvcmVhZDE2KGFkZHIpIFxcdTAwMjYgbWFzaykgPyAxIDogMDtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQxMi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MTM6c3RhdGljIGludCB0cGNpMjAwX2dldF90aW1lb3V0KHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTQte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQxNTpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTYtXFx0X19sZTE2IF9faW9tZW0gKmFkZHI7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDE5OlxcdGlmICghdHBjaTIwMClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MjAtXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDIxLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyMjpcXHRhZGRyID0gXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2VzdGF0dXM7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDIzOlxcdG1hc2sgPSB0cGNpMjAwX3N0YXR1c190aW1lb3V0W2Rldi1cXHUwMDNlc2xvdF07XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI0LVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyODpzdGF0aWMgaW50IHRwY2kyMDBfcmVzZXRfdGltZW91dChzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI5LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MzA6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDMxLVxcdF9fbGUxNiBfX2lvbWVtICphZGRyO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDMzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQzNDpcXHRpZiAoIXRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDM1LVxcdFxcdHJldHVybiAtRU5PREVWO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQzNi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0Mzc6XFx0YWRkciA9IFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncy1cXHUwMDNlc3RhdHVzO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQzODpcXHRtYXNrID0gdHBjaTIwMF9zdGF0dXNfdGltZW91dFtkZXYtXFx1MDAzZXNsb3RdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQzOS1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ0My1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDQ6c3RhdGljIHZvaWQgdHBjaTIwMF91bmluc3RhbGwoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ1LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDY6XFx0dHBjaTIwMF91bnJlZ2lzdGVyKHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ0NzpcXHRrZnJlZSh0cGNpMjAwLVxcdTAwM2VzbG90cyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ4LX1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NDktXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhY2tfYnVzX29wcyB0cGNpMjAwX2J1c19vcHMgPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUxOlxcdC5yZXF1ZXN0X2lycSA9IHRwY2kyMDBfcmVxdWVzdF9pcnEsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUyOlxcdC5mcmVlX2lycSA9IHRwY2kyMDBfZnJlZV9pcnEsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUzOlxcdC5nZXRfY2xvY2tyYXRlID0gdHBjaTIwMF9nZXRfY2xvY2tyYXRlLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NDpcXHQuc2V0X2Nsb2NrcmF0ZSA9IHRwY2kyMDBfc2V0X2Nsb2NrcmF0ZSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NTU6XFx0LmdldF9lcnJvciAgICAgPSB0cGNpMjAwX2dldF9lcnJvcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NTY6XFx0LmdldF90aW1lb3V0ICAgPSB0cGNpMjAwX2dldF90aW1lb3V0LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NzpcXHQucmVzZXRfdGltZW91dCA9IHRwY2kyMDBfcmVzZXRfdGltZW91dCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NTgtfTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NTktXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDYwOnN0YXRpYyBpbnQgdHBjaTIwMF9pbnN0YWxsKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2MS17XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY0OlxcdHRwY2kyMDAtXFx1MDAzZXNsb3RzID0ga3phbGxvY19vYmpzKHN0cnVjdCB0cGNpMjAwX3Nsb3QsIFRQQ0kyMDBfTkJfU0xPVCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY1OlxcdGlmICh0cGNpMjAwLVxcdTAwM2VzbG90cyA9PSBOVUxMKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2Ni1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjctXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY4OlxcdHJlcyA9IHRwY2kyMDBfcmVnaXN0ZXIodHBjaTIwMCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDY5LVxcdGlmIChyZXMpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NzA6XFx0XFx0a2ZyZWUodHBjaTIwMC1cXHUwMDNlc2xvdHMpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ3MTpcXHRcXHR0cGNpMjAwLVxcdTAwM2VzbG90cyA9IE5VTEw7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDcyLVxcdFxcdHJldHVybiByZXM7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzQtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDc1OlxcdG11dGV4X2luaXQoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzYtXFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDc5OnN0YXRpYyB2b2lkIHRwY2kyMDBfcmVsZWFzZV9kZXZpY2Uoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ4MC17XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDg0OnN0YXRpYyBpbnQgdHBjaTIwMF9jcmVhdGVfZGV2aWNlKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwLCBpbnQgaSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODUte1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDkyLVxcdGRldi1cXHUwMDNlc2xvdCA9IGk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDkzOlxcdGRldi1cXHUwMDNlYnVzID0gdHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlaXBhY2tfYnVzO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5NDpcXHRkZXYtXFx1MDAzZXJlbGVhc2UgPSB0cGNpMjAwX3JlbGVhc2VfZGV2aWNlO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5NS1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5Ny1cXHRcXHRkZXYtXFx1MDAzZXJlZ2lvbltzcGFjZV0uc3RhcnQgPVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5ODpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2Vtb2RfbWVtW3NwYWNlXVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5OTpcXHRcXHRcXHQrIHRwY2kyMDBfc3BhY2VfaW50ZXJ2YWxbc3BhY2VdICogaTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MDA6XFx0XFx0ZGV2LVxcdTAwM2VyZWdpb25bc3BhY2VdLnNpemUgPSB0cGNpMjAwX3NwYWNlX3NpemVbc3BhY2VdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUwMS1cXHR9XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01MTUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTE2OnN0YXRpYyBpbnQgdHBjaTIwMF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTE3LVxcdFxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTE5LVxcdGludCByZXQsIGk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTIwOlxcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyMS1cXHR1MzIgcmVnMzI7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTIyLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyMzpcXHR0cGNpMjAwID0ga3phbGxvY19vYmooc3RydWN0IHRwY2kyMDBfYm9hcmQpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyNDpcXHRpZiAoIXRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTI1LVxcdFxcdHJldHVybiAtRU5PTUVNO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyNi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Mjc6XFx0dHBjaTIwMC1cXHUwMDNlaW5mbyA9IGt6YWxsb2Nfb2JqKHN0cnVjdCB0cGNpMjAwX2luZm9zKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Mjg6XFx0aWYgKCF0cGNpMjAwLVxcdTAwM2VpbmZvKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTI5LVxcdFxcdHJldCA9IC1FTk9NRU07XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTMwOlxcdFxcdGdvdG8gZXJyX3RwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTMxLVxcdH1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU0MC1cXHRcXHRyZXQgPSAtRUJVU1k7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQxOlxcdFxcdGdvdG8gZXJyX3RwY2kyMDBfaW5mbztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDItXFx0fVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU0MzpcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyA9IGlvcmVtYXAoXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTQ0LVxcdFxcdFxcdHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCBUUENJMjAwX0NGR19NRU1fQkFSKSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDUtXFx0XFx0XFx0cGNpX3Jlc291cmNlX2xlbihwZGV2LCBUUENJMjAwX0NGR19NRU1fQkFSKSk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQ2OlxcdGlmICghdHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlY2ZnX3JlZ3MpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDctXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIG1hcCBQQ0kgQ29uZmlndXJhdGlvbiBNZW1vcnlcXFwiKTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU1NC1cXHQgKiBjYXJyaWVyLiAqL1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1NTpcXHRyZWczMiA9IGlvcmVhZDMyKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWNmZ19yZWdzICsgTEFTMV9ERVNDKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NTYtXFx0cmVnMzIgfD0gMSBcXHUwMDNjXFx1MDAzYyBMQVNfQklUX0JJR0VORElBTjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NTc6XFx0aW93cml0ZTMyKHJlZzMyLCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyArIExBUzFfREVTQyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTU4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1OTpcXHRyZWczMiA9IGlvcmVhZDMyKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWNmZ19yZWdzICsgTEFTMl9ERVNDKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjAtXFx0cmVnMzIgfD0gMSBcXHUwMDNjXFx1MDAzYyBMQVNfQklUX0JJR0VORElBTjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjE6XFx0aW93cml0ZTMyKHJlZzMyLCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyArIExBUzJfREVTQyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYyLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU2My1cXHQvKiBTYXZlIHN0cnVjdCBwY2lfZGV2IHBvaW50ZXIgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjQ6XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiA9IHBkZXY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTY1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU2Ni1cXHQvKiByZWdpc3RlciB0aGUgZGV2aWNlIGFuZCBpbml0aWFsaXplIGl0ICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTY3OlxcdHJldCA9IHRwY2kyMDBfaW5zdGFsbCh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjgtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU2OTpcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJlcnJvciBkdXJpbmcgdHBjaTIwMCBpbnN0YWxsXFxcXG5cXFwiKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NzAtXFx0XFx0cmV0ID0gLUVOT0RFVjtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3NC1cXHQvKiBSZWdpc3RlciB0aGUgY2FycmllciBpbiB0aGUgaW5kdXN0cnkgcGFjayBidXMgZHJpdmVyICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTc1OlxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWlwYWNrX2J1cyA9IGlwYWNrX2J1c19yZWdpc3RlcihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3Ni1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBUUENJMjAwX05CX1NMT1QsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTc3OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwMjZ0cGNpMjAwX2J1c19vcHMsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTc4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIFRISVNfTU9EVUxFKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Nzk6XFx0aWYgKCF0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpcGFja19idXMpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODAtXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTgyLVxcdFxcdHJldCA9IC1FRkFVTFQ7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTgzOlxcdFxcdGdvdG8gZXJyX3RwY2kyMDBfaW5zdGFsbDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODQtXFx0fVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTg2LVxcdC8qIHNhdmUgdGhlIGJ1cyBudW1iZXIgZ2l2ZW4gYnkgaXBhY2sgdG8gbG9nZ2luZyBwdXJwb3NlICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTg3OlxcdHRwY2kyMDAtXFx1MDAzZW51bWJlciA9IHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWlwYWNrX2J1cy1cXHUwMDNlYnVzX25yO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU4ODpcXHRkZXZfc2V0X2RydmRhdGEoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgdHBjaTIwMCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTg5LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU5MC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgVFBDSTIwMF9OQl9TTE9UOyBpKyspXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTkxOlxcdFxcdHRwY2kyMDBfY3JlYXRlX2RldmljZSh0cGNpMjAwLCBpKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTItXFx0cmV0dXJuIDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTkzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NDplcnJfdHBjaTIwMF9pbnN0YWxsOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NTpcXHR0cGNpMjAwX3VuaW5zdGFsbCh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTYtZXJyX2NmZ19yZWdzOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NzpcXHRwY2lfaW91bm1hcCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTk4LWVycl9yZXF1ZXN0X3JlZ2lvbjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTktXFx0cGNpX3JlbGVhc2VfcmVnaW9uKHBkZXYsIFRQQ0kyMDBfQ0ZHX01FTV9CQVIpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYwMDplcnJfdHBjaTIwMF9pbmZvOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYwMTpcXHRrZnJlZSh0cGNpMjAwLVxcdTAwM2VpbmZvKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MDItXFx0cGNpX2Rldl9wdXQocGRldik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjAzOmVycl90cGNpMjAwOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYwNDpcXHRrZnJlZSh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MDUtXFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwNy1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDg6c3RhdGljIHZvaWQgX190cGNpMjAwX3BjaV9yZW1vdmUoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjA5LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTA6XFx0aXBhY2tfYnVzX3VucmVnaXN0ZXIodHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlaXBhY2tfYnVzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTE6XFx0dHBjaTIwMF91bmluc3RhbGwodHBjaTIwMCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjEyLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxMzpcXHRwY2lfaW91bm1hcCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjE0LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxNTpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9DRkdfTUVNX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjE2LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxNzpcXHRwY2lfZGV2X3B1dCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjE5OlxcdGtmcmVlKHRwY2kyMDAtXFx1MDAzZWluZm8pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYyMDpcXHRrZnJlZSh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjEtfVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYyMi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MjM6c3RhdGljIHZvaWQgdHBjaTIwMF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjI0LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MjU6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBwY2lfZ2V0X2RydmRhdGEoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjYtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjI3OlxcdF9fdHBjaTIwMF9wY2lfcmVtb3ZlKHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYyOC19XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjI5LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYzMDpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgdHBjaTIwMF9pZHRhYmxlW10gPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjMxLVxcdHsgVFBDSTIwMF9WRU5ET1JfSUQsIFRQQ0kyMDBfREVWSUNFX0lELCBUUENJMjAwX1NVQlZFTkRPUl9JRCxcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzo1NC40MTE5NzEyNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTUyODIwNDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDb25maWd1cmF0aW9uIGZvciBUUENJMjAwIEJvYXJkIFN1cHBvcnQqKlxuXG5SaWdodCwgYENPTkZJR19CT0FSRF9UUENJMjAwYC4uLiBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIHRoZSBpLlBhY2sgY29uZmlndXJhdGlvbiBmaWxlcy4gVGhhdCB3b3VsZCBiZSB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBkaWdnaW5nIGZvciB0aGUgYm9hcmQtc3BlY2lmaWMgb3B0aW9ucy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYGRyaXZlcnMvaXBhY2svS2NvbmZpZ2AgYW5kIHRoZW4gYWxzbyBkaXZlIGludG8gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZ2AuIFRob3NlIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMuIEknbSBleHBlY3RpbmcgdG8gZmluZCBlaXRoZXIgYSBkaXJlY3QgZGVmaW5pdGlvbiByZWxhdGVkIHRvIHRoZSBUUENJMjAwIG9yLCBtb3JlIGxpa2VseSwgc29tZSBjb25kaXRpb25hbCBsb2dpYyBiYXNlZCBvbiBhIHNpbWlsYXIgb3IgcmVsYXRlZCBpLlBhY2sgY2FycmllciBib2FyZCB0aGF0J3MgYWxyZWFkeSBzdXBwb3J0ZWQuIEZyb20gdGhlcmUsIEknbGwgbGlrZWx5IG5lZWQgdG8gdHJhY2UgZGVwZW5kZW5jaWVzIGFuZCB1bmRlcnN0YW5kIGhvdyB0aGUgaS5QYWNrIGZyYW1ld29yayBpbnRlZ3JhdGVzIHRoZSBib2FyZCdzIGZ1bmN0aW9uYWxpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTc4LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NTcuOTY0Nzk0OTY0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDc0NDQ4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJPQVJEX1RQQ0kyMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9pcGFjay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjI6Y29uZmlnIEJPQVJEX1RQQ0kyMDBcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgdGhlIFRFV1MgVFBDSS0yMDAgSW5kdXN0cnlQYWNrIGNhcnJpZXIgYm9hcmRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjU4LjA3MjI0Njg5NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTU0NDU3MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBzbmlwcGV0cywgYXMgaWYgSSB3ZXJlIHByb2Nlc3NpbmcgdGhlbSBteXNlbGY6XG5cbioqS2NvbmZpZyBEaXZlIEJlZ2lucyoqXG5cbkFscmlnaHQsIHRoZSBmaXJzdCBjbHVlIGlzIGBDT05GSUdfQk9BUkRfVFBDSTIwMGAuIFRoYXQgdGVsbHMgbWUgd2UncmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIGJvYXJkIGNvbmZpZ3VyYXRpb24g4oCTIHRoZSBcIlRQQ0kyMDAsXCIgYXBwYXJlbnRseS4gVGhpcyBpcyB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBlbnRyeSBrZXkgdG8gdGhpcyBwYXJ0aWN1bGFyIHN1YnN5c3RlbSBJJ20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQuIEl0J3MgdGhlIGdhdGUsIHRoZSBmaWx0ZXIsIHRoZSBkZWZpbmluZyB2YXJpYWJsZS5cblxuTm93LCB3aGVyZSBkbyB3ZSBnbyBmcm9tIGhlcmU/IFRoZSBzZWNvbmQgcGllY2Ugb2YgdGhlIHB1enpsZSBwb2ludHMgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgLiBCaW5nbyEgR2l2ZW4gdGhlIGZpbGUgcGF0aCwgSSBpbW1lZGlhdGVseSBrbm93IHdlJ3JlIGxvb2tpbmcgYXQgdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uIGZpbGUgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gTWVsbGFub3ggRXRoZXJuZXQgZHJpdmVycywgc3BlY2lmaWNhbGx5IHRoZSBgbWx4c3dgIGZhbWlseSwgYSBjb3JlIGRyaXZlciBzZXQgZm9yIE1lbGxhbm94IG5ldHdvcmtpbmcgc2lsaWNvbi4gVGhlIGBLY29uZmlnYCBmaWxlcyBhcmUgaG93IHdlIG9yY2hlc3RyYXRlIHdoYXQgYnVpbGRzIGludG8gdGhlIGtlcm5lbC4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgb2YgdGhlIGJ1aWxkIHN5c3RlbSBnZXRzIGNvbnRyb2xsZWQgYnkgdXMuIFRoaXMgaXMgdGhlIHBsYWNlIHRvIHN0YXJ0IHVuZGVyc3RhbmRpbmcgdGhlIGludGVyYWN0aW9uIGJldHdlZW4gdGhpcyBib2FyZCBjb25maWd1cmF0aW9uLCBhbmQgdGhlIE1lbGxhbm94IG5ldHdvcmsgc3RhY2suIEkgYW50aWNpcGF0ZSB0aGlzIGZpbGUgd2lsbCB0ZWxsIG1lIGhvdyBgQ09ORklHX0JPQVJEX1RQQ0kyMDBgIGluZmx1ZW5jZXMgdGhlIGluY2x1c2lvbiwgZXhjbHVzaW9uLCBvciBjb25maWd1cmF0aW9uIG9mIHZhcmlvdXMgTWVsbGFub3ggZHJpdmVyIGZlYXR1cmVzLiBJJ20gZ29pbmcgdG8gZmluZCB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoaXMgXCJUUENJMjAwXCIgYm9hcmQgYW5kIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIE1lbGxhbm94IGRyaXZlcnMuIFRoZSBwaWVjZXMgYXJlIGNvbWluZyB0b2dldGhlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY5MjgsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDowMi4yMjY3MDY0MjhaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMjEwNjIxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYU1dfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTI1PWNvbmZpZyBNTFhTV19DT1JFX1RIRVJNQUxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzozMzpjb25maWcgTUxYU1dfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNC1cXHR0cmlzdGF0ZSBcXFwiUENJIGJ1cyBpbXBsZW1lbnRhdGlvbiBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MDIuMzI4ODM5MDI4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxOTg3NjI3ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzOlxuXG4qKkRlbHZpbmcgaW50byBDb25maWd1cmF0aW9uIGFuZCBEcml2ZXIgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgdGhlIGZvY3VzIHNlZW1zIHRvIGJlIG9uIGBDT05GSUdfTUxYU1dfUENJYC4gVGhhdCdzIHRoZSBrZXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBpbXBsaWNhdGlvbnMuIE15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byBjaGVjayB0aGUgcmVsYXRlZCBkZXBlbmRlbmNpZXMuIEJhc2VkIG9uIHRoZSBuYW1lIEknbSBwcmVzdW1pbmcgdGhpcyBpcyByZWxhdGVkIHRvIE1lbGxhbm94IFN3aXRjaCBQQ0kgZHJpdmVycy4gU28sIHdoZXJlIHdvdWxkIEkgZmluZCByZWxhdGVkIGNvZGU/XG5cbkkgc2hvdWxkIGxvb2sgaW50byBgZHJpdmVycy9zY3NpL0tjb25maWdgLiBJdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiB0aGUgU0NTSSBjb250ZXh0LiBJJ2xsIG5lZWQgdG8gc2VlIGlmIGl0IHByb3ZpZGVzIGFueSBjbHVlcyBhYm91dCBob3cgYENPTkZJR19NTFhTV19QQ0lgIGlzIGNvbmZpZ3VyZWQgb3IgaWYgaXQgaW5mbHVlbmNlcywgb3IgaXMgaW5mbHVlbmNlZCwgYnkgb3RoZXIgU0NTSS1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBJJ20gdGhpbmtpbmcgYWJvdXQgcmVsYXRpb25zaGlwcyB3aXRoIHJlbGF0ZWQgaGFyZHdhcmUgZHJpdmVycyBsaWtlIHN0b3JhZ2UgYW5kIG5ldHdvcmtpbmcuIEknbGwgYmUgbG9va2luZyBmb3IgcmVsYXRpb25zaGlwcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc0NDEsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDowNS41Mjc2MDQ5MzZaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDYyNjkzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU0NTSV9OU1AzMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Njc2kvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnPTExOTE9Y29uZmlnIFNDU0lfQU01M0M5NzRcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDYtXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwNzpjb25maWcgU0NTSV9OU1AzMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDgtXFx0dHJpc3RhdGUgXFxcIldvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjA1LjY0MjI0MjQyNVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTkyNTkyNjM1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQQ0kgRHJpdmVyIFZ1bG5lcmFiaWxpdHkgRml4KipcblxuT2theSwgaGVyZSdzIHRoZSBzaXR1YXRpb246IEknbSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBgQ09ORklHX1NDU0lfTlNQMzJgLCBidXQgdGhlIGNvcmUgY2hhbmdlIGlzIGFjdHVhbGx5IGluIGBkcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNgLiBUaGlzIGlzIGJpZywgaXQgdG91Y2hlcyAqYWxsKiBQQ0kgZHJpdmVycywgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB0aG9yb3VnaGx5LlxuXG5UaGUgZ2lzdCBpcyB0aGF0IGBwY2lfbWF0Y2hfZGV2aWNlYCB3YXMgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhIGBwY2lfZGV2aWNlX2lkYCwgYnV0IGl0IGxvb2tzIGxpa2UgdGhlcmUncyBhIHNlcmlvdXMgYnVnLiBJdCB3YXNuJ3QgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhICpzdGFjayotYWxsb2NhdGVkIHN0cnVjdHVyZSwgYnV0IHRvIHRoZSBkcml2ZXIncyBJRCB0YWJsZSBvciBhIGR5bmFtaWMgSUQgc3RydWN0dXJlLiBXYWl0LCBJIGhhdmUgdG8gZ28gdGhyb3VnaCB0aGUgY29kZSBhZ2Fpbi5cblxuT2theSwgSSBzZWUgdGhlIHByb2JsZW0uIEl0IHVzZWQgdG8gcmV0dXJuIGBcdTAwMjZkeW5pZC1cdTAwM2VpZGAsIGFuZCBgZHluaWRgIGNvdWxkIGJlIGZyZWVkLiBCb29tISBUaGF0IG1lYW5zIGEgZHluYW1pYyBJRCBjb3VsZCBiZSByZW1vdmVkLCB0aGUgYGR5bmlkYCBmcmVlZCwgYW5kIHN1ZGRlbmx5IHdlIGhhdmUgYSBkYW5nbGluZyBwb2ludGVyIHJldHVybmVkIGZyb20gYHBjaV9tYXRjaF9kZXZpY2VgLiBBbmQgZXZlbiB3b3JzZSwgdGhlIHNwaW4gbG9jayBvbiBgZHJ2LVx1MDAzZWR5bmlkcy5sb2NrYCB3YXNuJ3QgaGVsZCB3aGlsZSB0aGUgcG9pbnRlciB3YXMgYmVpbmcgdXNlZC5cblxuVGhlIHJldHVybmVkIHBvaW50ZXIgaXMgdGhlbiBwYXNzZWQgdG8gYHByb2JlKClgLCB3aGljaCBjYW4gc2xlZXAgYW5kIHBvdGVudGlhbGx5IHRha2UgYSAqbG9uZyogdGltZS4gVGhpcyBtZWFucyB0aGUgZHJpdmVyIGNvdWxkIGJlIHVzaW5nIGEgZGFuZ2xpbmcgcG9pbnRlciB0byBhbiBgaWRgIHRoYXQgd2FzIHJlbW92ZWQgY29uY3VycmVudGx5LCBhIGNsYXNzaWMgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW8uIFRoaXMgaXMgYSB2ZXJ5IG5hc3R5IHJhY2UgY29uZGl0aW9uLlxuXG5UaGUgZml4PyBUaGUgcGF0Y2ggbm93IGNvcGllcyB0aGUgYHBjaV9kZXZpY2VfaWRgIGludG8gYSBzdHJ1Y3R1cmUgcHJvdmlkZWQgYnkgdGhlIGNhbGxlciAoc3BlY2lmaWNhbGx5LCB0aGUgc3RhY2sgb2YgYF9fcGNpX2RldmljZV9wcm9iZWApLiBHb29kLCBpdCdzIHZhbGlkIGZvciB0aGUgZHVyYXRpb24gb2YgYHByb2JlKClgLiBCdXQgbm93IEknbSB0aGlua2luZywgd2hhdCBhYm91dCBkcml2ZXJzIHRoYXQgd2VyZSAqc2F2aW5nKiB0aGlzIHBvaW50ZXI/XG5cblRoYXQncyB0aGUgbmV4dCBpc3N1ZS4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgb2YgYHRwY2kyMDBgLCBgbWx4c3dgLCBhbmQgdGhlIGBuc3AzMmAgZHJpdmVyLiBMb29rcyBsaWtlIHRoZSBvbGQgY29kZSB3YXMgZGlyZWN0bHkgc2F2aW5nIHRoZSBub3ctc3RhbGUgcG9pbnRlci4gYGF0YV9nZW5lcmljYCBpcyBhbHNvIG9uIHRoZSBsaXN0LiBBbGwgb2YgdGhlbSBzdG9yZWQgdGhlIHBvaW50ZXIgaW50byBhIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUuIE5vdywgYWZ0ZXIgdGhlIHBhdGNoLCBpZiB0aGV5IGFjY2VzcyB0aGF0IHNhdmVkIHBvaW50ZXIsIHRoZXkgYXJlIHJlYWRpbmcgZnJvbSBhbiBpbnZhbGlkIHN0YWNrIGxvY2F0aW9uLiBUaGlzIG1lYW5zIGEgbmV3IFVBRi5cblxuU28sIHRoZSBwYXRjaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBhIHVzZS1hZnRlci1mcmVlIGlzc3VlLiBJdOKAmXMgaW1wb3J0YW50IHRvIHNlZSBpZiBpdCBmaXhlcyB0aGUgb3JpZ2luYWwgaXNzdWUgd2l0aCB0aGUgZHluYW1pYyBJRHMgYW5kIGFsc28gdGhlIG5ldyBvbmUgaW50cm9kdWNlZCBieSB0aGUgc3RhY2sgYWxsb2NhdGlvbi5cblxuU28sIHRoaXMgcGF0Y2ggaXNuJ3QganVzdCBhIGJhbmQtYWlkOyBpdCdzIGEgY3JpdGljYWwgZml4LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZnV6eiB0byBtYWtlIHN1cmUgdGhpcyBmaXggZG9lc24ndCBicmVhayBhbnl0aGluZy4gV2UgbmVlZCB0byBmb2N1cyBvbiBwb3RlbnRpYWwgYXJlYXMgb2YgY29uY2Vybi4gV2Ugc2hvdWxkIGxvb2sgYXQgYHBjaV9hZGRfZHluaWRgLCBgbmV3X2lkX3N0b3JlYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgZG9fcGNpX21hdGNoX2lkYCwgYW5kIGBkb19wY2lfYWRkX2R5bmlkYC4gQW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIG1vZGlmaWVkIGRyaXZlcnM6IGBhdGFfZ2VuZXJpY19pbml0X29uZWAsIGB0cGNpMjAwX3BjaV9wcm9iZWAsIGBtbHhzd19wY2lfcHJvYmVgLCBgbnNwMzJfcHJvYmVgLlxuXG5MZXQncyB2ZXJpZnkuIGBwY2lfYWRkX2R5bmlkYCBpcyByZWFjaGFibGUgdGhyb3VnaCB0aGUgc3lzZnMuIGBuZXdfaWRfc3RvcmVgLCBpcyB0aGUgc3lzZnMgc3RvcmUgZnVuY3Rpb24gZm9yIGBuZXdfaWRgLiBBbmQgYHBjaV9tYXRjaF9kZXZpY2VgIGlzIHVzZWQgZHVyaW5nIFBDSSBkZXZpY2UgcHJvYmluZy5cblxuV2UnbGwgbmVlZCB0byBlbmFibGUgYSBmZXcgY29uZmlndXJhdGlvbnMgdG8gcmVwcm9kdWNlIHRoaXM6IGBBVEFfR0VORVJJQ2AsIGBCT0FSRF9UUENJMjAwYCwgYE1MWFNXX1BDSWAsIGFuZCBgU0NTSV9OU1AzMmAuIFdhaXQsIGBNTFhTV19QQ0lgIGRlcGVuZHMgb24gYE1MWFNXX0NPUkVgLCBzbyBJJ2xsIGNoZWNrIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnYCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzc4OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjEuNTY4MTcxMTAxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTc3MDQwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYU1dfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTI1PWNvbmZpZyBNTFhTV19DT1JFX1RIRVJNQUxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzozMzpjb25maWcgTUxYU1dfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNC1cXHR0cmlzdGF0ZSBcXFwiUENJIGJ1cyBpbXBsZW1lbnRhdGlvbiBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjEuNjUzOTQ4MTIzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MDYzMzg5MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGVwZW5kZW5jeSBEZWVwIERpdmUgZm9yIE1MWFNXX1BDSSoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IGdyYW51bGFyLiBCZWZvcmUgSSBwcm9jZWVkLCBsZXQncyBuYWlsIGRvd24gdGhlc2UgZGVwZW5kZW5jaWVzIGZvciBgTUxYU1dfUENJYC4gSSBuZWVkIHRvIGVuc3VyZSBhIHN0YWJsZSBhbmQgcHJlZGljdGFibGUgZW52aXJvbm1lbnQuIEknbSB0aGlua2luZyBiZXlvbmQganVzdCB0aGUgb2J2aW91cyBpbmNsdWRlcyBhbmQgbGlicmFyaWVzLiBJIG5lZWQgdG8gYWNjb3VudCBmb3Igc3BlY2lmaWMgdmVyc2lvbnMgb2Yga2VybmVsIG1vZHVsZXMsIGZpcm13YXJlLCBhbmQgZXZlbiBwb3RlbnRpYWwgaGFyZHdhcmUgcmV2aXNpb25zIHRoYXQgdGhpcyBtb2R1bGUgaW50ZXJhY3RzIHdpdGguIEFyZSB0aGVyZSBhbnkgaGlkZGVuLCBpbmRpcmVjdCBkZXBlbmRlbmNpZXMgbHVya2luZz8gSSBzaG91bGQgY2hlY2sgbm90IGp1c3QgdGhlIGNvZGUgaXRzZWxmIGJ1dCBhbHNvIGxvb2sgaW50byBidWlsZCBzY3JpcHRzIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBhbnl0aGluZyB0aGF0J3MgaW1wbGljaXRseSByZXF1aXJlZCwgYW5kIHdoaWNoIG1pZ2h0IGxlYWQgdG8gYnVpbGQgZmFpbHVyZXMsIHJ1bnRpbWUgY29uZmxpY3RzLCBvciB1bmV4cGVjdGVkIGJlaGF2aW9yLiBUaGlzIGlzIGNydWNpYWwgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uLCBkZWJ1Z2dpbmcsIGFuZCBhdm9pZGluZyB0aGUgZHJlYWRlZCBcIml0IHdvcmtzIG9uIG15IG1hY2hpbmVcIiBzeW5kcm9tZSB3aGVuIG1vdmluZyB0aGlzIG92ZXIgdG8gYSB0YXJnZXQgc3lzdGVtLiBUaW1lIHRvIHN0YXJ0IGRpZ2dpbmcuLi4gSSBuZWVkIHRvIGNvbnNpZGVyIGJvdGggY29tcGlsZS10aW1lIGFuZCBydW4tdGltZSBkZXBlbmRlbmNpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMTIxLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjUuMzYwMjg5NTAxWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDMwMDA5NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MTc9Y29uZmlnIE1MWFNXX0NPUkVfSFdNT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIkhXTU9OIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxOTpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgSFdNT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjIwOlxcdGRlcGVuZHMgb24gIShNTFhTV19DT1JFPXkgXFx1MDAyNlxcdTAwMjYgSFdNT049bSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTIxLVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0yNT1jb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cXHRib29sIFxcXCJUaGVybWFsIHpvbmUgc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjI3OlxcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcXHUwMDI2XFx1MDAyNiBUSEVSTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yOC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MzM9Y29uZmlnIE1MWFNXX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXFx0dHJpc3RhdGUgXFxcIlBDSSBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzozNTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9NRU0gXFx1MDAyNlxcdTAwMjYgTUxYU1dfQ09SRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzYtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz00ND1jb25maWcgTUxYU1dfSTJDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00NS1cXHR0cmlzdGF0ZSBcXFwiSTJDIGJ1cyBpbXBsZW1lbnRhdGlvbiBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjQ2OlxcdGRlcGVuZHMgb24gSTJDIFxcdTAwMjZcXHUwMDI2IE1MWFNXX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTQ3LVxcdGRlZmF1bHQgbVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz01ND1jb25maWcgTUxYU1dfU1BFQ1RSVU1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTU1LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgU3BlY3RydW0gZmFtaWx5IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NjpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgTUxYU1dfUENJIFxcdTAwMjZcXHUwMDI2IE5FVF9TV0lUQ0hERVYgXFx1MDAyNlxcdTAwMjYgVkxBTl84MDIxUVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTc6XFx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTg6XFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU5OlxcdGRlcGVuZHMgb24gTkVUX0lQR1JFIHx8IE5FVF9JUEdSRT1uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2MDpcXHRkZXBlbmRzIG9uIElQVjZfR1JFIHx8IElQVjZfR1JFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjYxOlxcdGRlcGVuZHMgb24gVlhMQU4gfHwgVlhMQU49blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjI6XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNjMtXFx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTc1PWNvbmZpZyBNTFhTV19TUEVDVFJVTV9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo3NzpcXHRkZXBlbmRzIG9uIE1MWFNXX1NQRUNUUlVNIFxcdTAwMjZcXHUwMDI2IERDQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNzgtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTgzPWNvbmZpZyBNTFhTV19NSU5JTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04NC1cXHR0cmlzdGF0ZSBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIG1pbmltYWwgSTJDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo4NTpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgTUxYU1dfSTJDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04Ni1cXHRkZWZhdWx0IG1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjUuNDYzMzAyNzkxWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MTQ3MTc1OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MgcmVnYXJkaW5nIHRoZXNlIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnM6XG5cbioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzOiBNTFhTV19QQ0kgYW5kIE1MWFNXX0NPUkUqKlxuXG5SaWdodCwgc28gSSBzZWUgdGhhdCBgTUxYU1dfUENJYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBNTFhTV19DT1JFYC4gTWFrZXMgc2Vuc2UsIHRoZSBQQ0kgZHJpdmVyIGxpa2VseSBidWlsZHMgb24gdGhlIGNvcmUgTWVsbGFub3ggc3dpdGNoIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBib3RoIGFyZSBlbmFibGVkIHRvIGdldCB0aGUgUENJIGRyaXZlciB3b3JraW5nLiBTbywgSSBzaG91bGQgZW5hYmxlIGJvdGggYE1MWFNXX0NPUkVgIGFuZCBgTUxYU1dfUENJYC4gSG9sZCBvbiBhIHNlY29uZCwgSSByZWNhbGwgdGhhdCBgTUxYU1dfQ09SRWAgaXMgYSB0cmlzdGF0ZSDigJMgaXQgY2FuIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBUaGF0IGNoYW5nZXMgdGhpbmdzIGEgYml0LiBMZXQncyBtYWtlIHN1cmUgSSdtIGNvbmZpZ3VyaW5nIGl0IGNvcnJlY3RseSwgcHJvYmFibHkgYXMgJ3knIGlmIGBNTFhTV19QQ0lgIGlzIGFsc28gJ3knLiBUbyBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIGRldGFpbHMsIEknbGwgcXVpY2tseSBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLiBJJ2xsIG5lZWQgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ2AgdG8gY2hlY2suIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwgYWJvdXQgdGhlIGRlcGVuZGVuY2llcyBvciBkZWZhdWx0IGJlaGF2aW9ycyBvZiBgTUxYU1dfQ09SRWAgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE1MjQsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDoyOS4yNzgwMjMzOTlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjA1MTg4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYU1dfQ09SRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjY6Y29uZmlnIE1MWFNXX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3Mgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxNzpjb25maWcgTUxYU1dfQ09SRV9IV01PTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMTgtXFx0Ym9vbCBcXFwiSFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyNTpjb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cXHRib29sIFxcXCJUaGVybWFsIHpvbmUgc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjkuNTAwMTAxNzI3WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNTgwODY5MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MgcmVnYXJkaW5nIHRoZXNlIGtlcm5lbCBjb25maWd1cmF0aW9ucy5cblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZWVwIERpdmUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCB0aGVzZSBkcml2ZXJzIGVuYWJsZWQuIE15IGluaXRpYWwgcGxhbiBpbnZvbHZlcyBlbmFibGluZyBhIHNwZWNpZmljIHNldDogYEFUQV9HRU5FUklDYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgLiBUaGF0IHNob3VsZCBnZXQgdXMgd2hlcmUgd2Ugd2FudCB0byBiZS5cblxuV2FpdCBhIHNlY29uZCwgYSBkZXBlbmRlbmN5IHBvcHBlZCB1cCBpbiBteSBoZWFkLiBgU0NTSV9OU1AzMmAuLi4gcmlnaHQsIHRoYXQgb25lIHJlbGllcyBvbiB0aGUgYFNDU0lgIG1vZHVsZS4gR290dGEgbWFrZSBzdXJlIGBTQ1NJYCBpcyBlbmFibGVkIHRvbywgYnV0IGJlZm9yZSBJIGF1dG9tYXRpY2FsbHkgYXNzdW1lLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgZGVwZW5kZW5jeSB0byBiZSAxMDAlIHN1cmUuIEJlc3QgcHJhY3RpY2U6IEknbGwganVtcCBpbnRvIHRoZSBgZHJpdmVycy9zY3NpL0tjb25maWdgIGZpbGUgYW5kIHZlcmlmeSB0aGUgZGVwZW5kZW5jeSBmb3IgYFNDU0lfTlNQMzJgIGJlZm9yZSBJIG1vdmUgb24uIE5vIHBvaW50IGluIGNoYXNpbmcgc3B1cmlvdXMgYnVpbGQgZXJyb3JzIGxhdGVyIVxuXG5cbiIsIklucHV0VG9rZW5zIjozMjE2OSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjM1LjU1ODE5MzIwNloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyMDI2MDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTQ1NJX05TUDMyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnPTExOTE9Y29uZmlnIFNDU0lfQU01M0M5NzRcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDYtXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwNzpjb25maWcgU0NTSV9OU1AzMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDgtXFx0dHJpc3RhdGUgXFxcIldvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjM1LjcyMDIyMzQzWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTk1MDYyNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipTQ1NJX05TUDMyIERlcGVuZGVuY3kgRGVlcCBEaXZlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB0YWtlIGEgaGFyZCBsb29rIGF0IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgYFNDU0lfTlNQMzJgIG1vZHVsZS4gSXQncyB0aW1lIHRvIG1hcCBvdXQgZXZlcnkgc2luZ2xlIHBpZWNlIG9mIHRoZSBwdXp6bGUuIEknbSBnb2luZyB0byBjb25zaWRlciBpdCBmcm9tIGEgZGVzaWduIGFuZCBwZXJmb3JtYW5jZSBwb2ludCBvZiB2aWV3LlxuXG5JJ20gc3RhcnRpbmcgd2l0aCBhIG1lbnRhbCBjaGVja2xpc3Q6IFdoYXQgZXh0ZXJuYWwgbGlicmFyaWVzIGRvZXMgaXQgbGluayB0bz8gQXJlIHRoZXJlIGFueSBsb3dlci1sZXZlbCBkcml2ZXJzIGl0IHJlbGllcyBvbj8gV2hhdCBhYm91dCB0aGUga2VybmVsIGludGVyZmFjZXM/IEkgbmVlZCB0byBiZSBzdXJlIEkndmUgaWRlbnRpZmllZCBldmVyeSBwb3RlbnRpYWwgcG9pbnQgb2YgZmFpbHVyZSBhbmQgYm90dGxlbmVjay4gVGhpcyBpc24ndCBqdXN0IGFib3V0IGZ1bmN0aW9uYWxpdHk7IGl0J3MgYWJvdXQgc3RhYmlsaXR5IGFuZCBzY2FsYWJpbGl0eS4gV2UncmUgdGFsa2luZyBwZXJmb3JtYW5jZSBwcm9maWxpbmcgdG9vLlxuXG5JJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBvZiBhbnkgY2hhbmdlcyB0byB0aG9zZSBkZXBlbmRlbmNpZXMsIHRvby4gV2hhdCBoYXBwZW5zIGlmIGEgbGlua2VkIGxpYnJhcnkgZ2V0cyB1cGRhdGVkPyBXaWxsIGl0IHJlcXVpcmUgYSByZWJ1aWxkPyBXaWxsIHRoYXQgcmVidWlsZCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgbmV3IGJ1Z3M/IEFyZSB0aGVyZSBzcGVjaWZpYyB2ZXJzaW9ucyB0aGF0IGFyZSBrbm93biB0byB3b3JrLCBhbmQgb3RoZXJzIHRoYXQgd2Ugc2hvdWxkIGF2b2lkPyBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIHNvIEkgbmVlZCB0byB0cmFjayB2ZXJzaW9uIGluZm9ybWF0aW9uIG9uIGV2ZXJ5IHNpbmdsZSBkZXBlbmRlbmN5LlxuXG5GdXJ0aGVybW9yZSwgSSBoYXZlIHRvIHRoaW5rIGFib3V0IGhvdyB0aGlzIG1vZHVsZSBpcyB1c2VkLiBEb2VzIGl0IGhhdmUgYW55IGNpcmN1bGFyIGRlcGVuZGVuY2llcz8gRG9lcyBpdCBpbnRlcmFjdCB3aXRoIGFueSBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIGluIGEgd2F5IHRoYXQgY291bGQgY2F1c2UgY29udGVudGlvbiBvciBkZWFkbG9jaz8gSSdsbCBwcm9iYWJseSBuZWVkIHRvIHZpc3VhbGl6ZSB0aGlzIGF0IHNvbWUgcG9pbnQuIFVNTCBkaWFncmFtcz8gRGVwZW5kZW5jeSBncmFwaHM/IEl0J3MganVzdCBhIGd1dCBmZWVsaW5nIHRoYXQgdGhpcyBtb2R1bGUgaXMgaW1wb3J0YW50LCBhbmQgSSBuZWVkIHRvIGRvY3VtZW50IHRoZSBoZWNrIG91dCBvZiBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI2MDUsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDozOS43Mzk3MzMzMjhaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MDU1MDMxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjI5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00PWNvbmZpZyBTQ1NJX01PRFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWctNy1cXHRkZWZhdWx0IG0gaWYgU0NTST1tXFxuZHJpdmVycy9zY3NpL0tjb25maWc6ODpcXHRkZXBlbmRzIG9uIEJMT0NLXFxuZHJpdmVycy9zY3NpL0tjb25maWctOS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMD1jb25maWcgUkFJRF9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTItXFx0ZGVmYXVsdCBuXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTM6XFx0ZGVwZW5kcyBvbiBCTE9DS1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjE0OlxcdGRlcGVuZHMgb24gU0NTSV9NT0RcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yMT1jb25maWcgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJTQ1NJIGRldmljZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIzOlxcdGRlcGVuZHMgb24gQkxPQ0tcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNC1cXHRzZWxlY3QgU0NTSV9ETUEgaWYgSEFTX0RNQVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTQ9Y29uZmlnIFNDU0lfTkVUTElOS1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTYtXFx0ZGVmYXVsdCBuXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NTc6XFx0ZGVwZW5kcyBvbiBORVRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OC1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01OT1jb25maWcgU0NTSV9QUk9DX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjAtXFx0Ym9vbCBcXFwibGVnYWN5IC9wcm9jL3Njc2kvIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NjE6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IFBST0NfRlNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02Mi1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcwPWNvbmZpZyBTQ1NJX0xJQl9LVU5JVF9URVNUXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBTQ1NJIE1pZCBMYXllcidzIHNjc2lfbGliXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NzI6XFx0ZGVwZW5kcyBvbiBLVU5JVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczLVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03OT1jb21tZW50IFxcXCJTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4MDpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04Mj1jb25maWcgQkxLX0RFVl9TRFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJTQ1NJIGRpc2sgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4NDpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMDM9Y29uZmlnIENIUl9ERVZfU1RcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDQtXFx0dHJpc3RhdGUgXFxcIlNDU0kgdGFwZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwNTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE2PWNvbmZpZyBCTEtfREVWX1NSXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE3LVxcdHRyaXN0YXRlIFxcXCJTQ1NJIENEUk9NIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE4OlxcdGRlcGVuZHMgb24gU0NTSSBcXHUwMDI2XFx1MDAyNiBCTEtfREVWXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE5LVxcdHNlbGVjdCBDRFJPTVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTMxPWNvbmZpZyBDSFJfREVWX1NHXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTMyLVxcdHRyaXN0YXRlIFxcXCJTQ1NJIGdlbmVyaWMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMzM6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTM0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE1Nj1jb25maWcgQkxLX0RFVl9CU0dcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xNTctXFx0Ym9vbCBcXFwiL2Rldi9ic2cgc3VwcG9ydCAoU0cgdjQpXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjE1ODpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xNTktXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xNjg9Y29uZmlnIENIUl9ERVZfU0NIXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTY5LVxcdHRyaXN0YXRlIFxcXCJTQ1NJIG1lZGlhIGNoYW5nZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNzA6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTcxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE4NT1jb25maWcgU0NTSV9FTkNMT1NVUkVcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xODYtXFx0dHJpc3RhdGUgXFxcIlNDU0kgRW5jbG9zdXJlIFN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTg3OlxcdGRlcGVuZHMgb24gU0NTSSBcXHUwMDI2XFx1MDAyNiBFTkNMT1NVUkVfU0VSVklDRVNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxODg6XFx0ZGVwZW5kcyBvbiBtIHx8IFNDU0lfU0FTX0FUVFJTICE9IG1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xODktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTk1PWNvbmZpZyBTQ1NJX0NPTlNUQU5UU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE5Ni1cXHRib29sIFxcXCJWZXJib3NlIFNDU0kgZXJyb3IgcmVwb3J0aW5nIChrZXJuZWwgc2l6ZSArPSAzNkspXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjE5NzpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xOTgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjAzPWNvbmZpZyBTQ1NJX0xPR0dJTkdcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMDQtXFx0Ym9vbCBcXFwiU0NTSSBsb2dnaW5nIGZhY2lsaXR5XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIwNTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMDYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjI5PWNvbmZpZyBTQ1NJX1NDQU5fQVNZTkNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMzAtXFx0Ym9vbCBcXFwiQXN5bmNocm9ub3VzIFNDU0kgc2Nhbm5pbmdcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MjMxOlxcdGRlcGVuZHMgb24gU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTIzMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDM9Y29uZmlnIFNDU0lfUFJPVE9fVEVTVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI0NC1cXHR0cmlzdGF0ZSBcXFwic2NzaV9wcm90by5oIHVuaXQgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNDU6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IEtVTklUXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjQ2LVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDg9bWVudSBcXFwiU0NTSSBUcmFuc3BvcnRzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI0OTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNTAtXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjUxPWNvbmZpZyBTQ1NJX1NQSV9BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI1Mi1cXHR0cmlzdGF0ZSBcXFwiUGFyYWxsZWwgU0NTSSAoU1BJKSBUcmFuc3BvcnQgQXR0cmlidXRlc1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNTM6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjU0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTI1OD1jb25maWcgU0NTSV9GQ19BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI1OS1cXHR0cmlzdGF0ZSBcXFwiRmliZXJDaGFubmVsIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI2MDpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgTkVUXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjYxLVxcdHNlbGVjdCBCTEtfREVWX0JTR0xJQlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjY4PWNvbmZpZyBTQ1NJX0lTQ1NJX0FUVFJTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjY5LVxcdHRyaXN0YXRlIFxcXCJpU0NTSSBUcmFuc3BvcnQgQXR0cmlidXRlc1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzA6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IE5FVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI3MS1cXHRzZWxlY3QgQkxLX0RFVl9CU0dMSUJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTI3Nz1jb25maWcgU0NTSV9TQVNfQVRUUlNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNzgtXFx0dHJpc3RhdGUgXFxcIlNBUyBUcmFuc3BvcnQgQXR0cmlidXRlc1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzk6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjgwLVxcdHNlbGVjdCBCTEtfREVWX0JTR0xJQlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjg3PWNvbmZpZyBTQ1NJX1NSUF9BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI4OC1cXHR0cmlzdGF0ZSBcXFwiU1JQIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI4OTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yOTAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjk2PW1lbnVjb25maWcgU0NTSV9MT1dMRVZFTFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI5Ny1cXHRib29sIFxcXCJTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI5ODpcXHRkZXBlbmRzIG9uIFNDU0khPW5cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yOTktXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zMDM9Y29uZmlnIElTQ1NJX1RDUFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTMwNC1cXHR0cmlzdGF0ZSBcXFwiaVNDU0kgSW5pdGlhdG9yIG92ZXIgVENQL0lQXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjMwNTpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgSU5FVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTMwNi1cXHRzZWxlY3QgQ1JDMzJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTMzOD1jb25maWcgU0dJV0Q5M19TQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMzM5LVxcdHRyaXN0YXRlIFxcXCJTR0kgV0Q5M0M5MyBTQ1NJIERyaXZlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzozNDA6XFx0ZGVwZW5kcyBvbiBTR0lfSEFTX1dEOTMgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0MS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zNDU9Y29uZmlnIEJMS19ERVZfM1dfWFhYWF9SQUlEXFxuZHJpdmVycy9zY3NpL0tjb25maWctMzQ2LVxcdHRyaXN0YXRlIFxcXCIzd2FyZSA1LzYvNy84eHh4IEFUQS1SQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzQ3OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlQgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zNTg9Y29uZmlnIFNDU0lfSFBTQVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM1OS1cXHR0cmlzdGF0ZSBcXFwiSFAgU21hcnQgQXJyYXkgU0NTSSBkcml2ZXJcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzYwOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNjEtXFx0c2VsZWN0IENIRUNLX1NJR05BVFVSRVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MzcwPWNvbmZpZyBTQ1NJXzNXXzlYWFhcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNzEtXFx0dHJpc3RhdGUgXFxcIjN3YXJlIDl4eHggU0FUQS1SQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzcyOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNzMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MzgxPWNvbmZpZyBTQ1NJXzNXX1NBU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM4Mi1cXHR0cmlzdGF0ZSBcXFwiM3dhcmUgOTd4eCBTQVMvU0FUQS1SQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzgzOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zODQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MzkyPWNvbmZpZyBTQ1NJX0FDQVJEXFxuZHJpdmVycy9zY3NpL0tjb25maWctMzkzLVxcdHRyaXN0YXRlIFxcXCJBQ0FSRCBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6Mzk0OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlQgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM5NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00MDE9Y29uZmlnIFNDU0lfQUhBMTUyWFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQwMi1cXHR0cmlzdGF0ZSBcXFwiQWRhcHRlYyBBSEExNTJYLzI4MjUgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0MDM6XFx0ZGVwZW5kcyBvbiBJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQwNDpcXHRkZXBlbmRzIG9uICFISUdITUVNXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDA1LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NDE5PWNvbmZpZyBTQ1NJX0FIQTE1NDJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MjAtXFx0dHJpc3RhdGUgXFxcIkFkYXB0ZWMgQUhBMTU0MiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQyMTpcXHRkZXBlbmRzIG9uIElTQSBcXHUwMDI2XFx1MDAyNiBTQ1NJIFxcdTAwMjZcXHUwMDI2IElTQV9ETUFfQVBJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDIyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQzMz1jb25maWcgU0NTSV9BSEExNzQwXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDM0LVxcdHRyaXN0YXRlIFxcXCJBZGFwdGVjIEFIQTE3NDAgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0MzU6XFx0ZGVwZW5kcyBvbiBFSVNBIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MzYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NDQ2PWNvbmZpZyBTQ1NJX0FBQ1JBSURcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00NDctXFx0dHJpc3RhdGUgXFxcIkFkYXB0ZWMgQUFDUkFJRCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ0ODpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDQ5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ2ND1jb25maWcgU0NTSV9NVlVNSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ2NS1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBVTUkgZHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ2NjpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDY3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ3Mz1jb25maWcgU0NTSV9BRFZBTlNZU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ3NC1cXHR0cmlzdGF0ZSBcXFwiQWR2YW5TeXMgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ3NTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NzY6XFx0ZGVwZW5kcyBvbiAoSVNBIHx8IEVJU0EgfHwgUENJKSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDc3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ4NT1jb25maWcgU0NTSV9BUkNNU1JcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00ODYtXFx0dHJpc3RhdGUgXFxcIkFSRUNBIChBUkMxMXh4LzEyeHgvMTN4eC8xNnh4KSBTQVRBL1NBUyBSQUlEIEhvc3QgQWRhcHRlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0ODc6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ4OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01MDQ9Y29uZmlnIFNDU0lfSFBUSU9QXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTA1LVxcdHRyaXN0YXRlIFxcXCJIaWdoUG9pbnQgUm9ja2V0UkFJRCAzeHh4LzR4eHggQ29udHJvbGxlciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUwNjpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTA3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTUxND1jb25maWcgU0NTSV9CVVNMT0dJQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUxNS1cXHR0cmlzdGF0ZSBcXFwiQnVzTG9naWMgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUxNjpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MTctXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTI5PWNvbmZpZyBTQ1NJX0ZMQVNIUE9JTlRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzAtXFx0Ym9vbCBcXFwiRmxhc2hQb2ludCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUzMTpcXHRkZXBlbmRzIG9uIFNDU0lfQlVTTE9HSUMgXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTM4PWNvbmZpZyBTQ1NJX01ZUkJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzktXFx0dHJpc3RhdGUgXFxcIk15bGV4IERBQzk2MC9EQUMxMTAwIFBDSSBSQUlEIENvbnRyb2xsZXIgKEJsb2NrIEludGVyZmFjZSlcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NTQwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTQxLVxcdHNlbGVjdCBSQUlEX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01NTM9Y29uZmlnIFNDU0lfTVlSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU1NC1cXHR0cmlzdGF0ZSBcXFwiTXlsZXggREFDOTYwL0RBQzExMDAgUENJIFJBSUQgQ29udHJvbGxlciAoU0NTSSBJbnRlcmZhY2UpXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU1NTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU1NjpcXHRkZXBlbmRzIG9uICFDUFVfQklHX0VORElBTiB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NTctXFx0c2VsZWN0IFJBSURfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU2OT1jb25maWcgVk1XQVJFX1BWU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU3MC1cXHR0cmlzdGF0ZSBcXFwiVk13YXJlIFBWU0NTSSBkcml2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1NzE6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSSBcXHUwMDI2XFx1MDAyNiBYODZcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NzItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTc3PWNvbmZpZyBYRU5fU0NTSV9GUk9OVEVORFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU3OC1cXHR0cmlzdGF0ZSBcXFwiWEVOIFNDU0kgZnJvbnRlbmQgZHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU3OTpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgWEVOXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTgwLVxcdHNlbGVjdCBYRU5fWEVOQlVTX0ZST05URU5EXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01ODc9Y29uZmlnIEhZUEVSVl9TVE9SQUdFXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTg4LVxcdHRyaXN0YXRlIFxcXCJNaWNyb3NvZnQgSHlwZXItViB2aXJ0dWFsIHN0b3JhZ2UgZHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU4OTpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgSFlQRVJWX1ZNQlVTXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NTkwOlxcdGRlcGVuZHMgb24gbSB8fCBTQ1NJX0ZDX0FUVFJTICE9IG1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OTEtXFx0ZGVmYXVsdCBIWVBFUlZcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU5NT1jb25maWcgTElCRkNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OTYtXFx0dHJpc3RhdGUgXFxcIkxpYkZDIG1vZHVsZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1OTc6XFx0ZGVwZW5kcyBvbiBTQ1NJX0ZDX0FUVFJTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTk4LVxcdHNlbGVjdCBDUkMzMlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NjAyPWNvbmZpZyBMSUJGQ09FXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjAzLVxcdHRyaXN0YXRlIFxcXCJMaWJGQ29FIG1vZHVsZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2MDQ6XFx0ZGVwZW5kcyBvbiBMSUJGQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYwNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MDg9Y29uZmlnIEZDT0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MDktXFx0dHJpc3RhdGUgXFxcIkZDb0UgbW9kdWxlXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxMDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxMTpcXHRkZXBlbmRzIG9uIExJQkZDT0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MTItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NjE1PWNvbmZpZyBGQ09FX0ZOSUNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MTYtXFx0dHJpc3RhdGUgXFxcIkNpc2NvIEZOSUMgRHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxNzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBYODZcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2MTg6XFx0ZGVwZW5kcyBvbiBMSUJGQ09FXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjE5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTYyNj1jb25maWcgU0NTSV9TTklDXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjI3LVxcdHRyaXN0YXRlIFxcXCJDaXNjbyBTTklDIERyaXZlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2Mjg6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYyOS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MzY9Y29uZmlnIFNDU0lfU05JQ19ERUJVR19GU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYzNy1cXHRib29sIFxcXCJDaXNjbyBTTklDIERyaXZlciBEZWJ1Z2ZzIFN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NjM4OlxcdGRlcGVuZHMgb24gU0NTSV9TTklDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjM5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY0Mz1jb25maWcgU0NTSV9ETVgzMTkxRFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY0NC1cXHR0cmlzdGF0ZSBcXFwiRE1YMzE5MUQgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY0NTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02NDYtXFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02NTM9Y29uZmlnIFNDU0lfRkRPTUFJTlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY1NC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY1NTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02NTYtXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NjU3PWNvbmZpZyBTQ1NJX0ZET01BSU5fUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjU4LVxcdHRyaXN0YXRlIFxcXCJGdXR1cmUgRG9tYWluIFRNQy0zMjYwL0FIQS0yOTIwQSBQQ0kgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY1OTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02NjAtXFx0c2VsZWN0IFNDU0lfRkRPTUFJTlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9Njc0PWNvbmZpZyBTQ1NJX0ZET01BSU5fSVNBXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjc1LVxcdHRyaXN0YXRlIFxcXCJGdXR1cmUgRG9tYWluIDE2eHggSVNBIFNDU0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NzY6XFx0ZGVwZW5kcyBvbiBJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY3Ny1cXHRzZWxlY3QgQ0hFQ0tfU0lHTkFUVVJFXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02ODg9Y29uZmlnIFNDU0lfSVNDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY4OS1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgQzYwMCBTZXJpZXMgQ2hpcHNldCBTQVMgQ29udHJvbGxlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2OTA6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY5MTpcXHRkZXBlbmRzIG9uIFg4NlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY5Mi1cXHRzZWxlY3QgU0NTSV9TQVNfTElCU0FTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02OTc9Y29uZmlnIFNDU0lfR0VORVJJQ19OQ1I1MzgwXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjk4LVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIE5DUjUzODAvNTNjNDAwIFNDU0kgSVNBIGNhcmQgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2OTk6XFx0ZGVwZW5kcyBvbiBJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUX01BUFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTcwMC1cXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcxMD1jb25maWcgU0NTSV9JUFNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MTEtXFx0dHJpc3RhdGUgXFxcIklCTSBTZXJ2ZVJBSUQgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3MTI6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVCBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzEzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcyND1jb25maWcgU0NTSV9JQk1WU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTcyNS1cXHR0cmlzdGF0ZSBcXFwiSUJNIFZpcnR1YWwgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjcyNjpcXHRkZXBlbmRzIG9uIFBQQ19QU0VSSUVTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzI3LVxcdHNlbGVjdCBTQ1NJX1NSUF9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NzM0PWNvbmZpZyBTQ1NJX0lCTVZTQ1NJU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNS1cXHR0cmlzdGF0ZSBcXFwiSUJNIFZpcnR1YWwgU0NTSSBTZXJ2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3MzY6XFx0ZGVwZW5kcyBvbiBQUENfUFNFUklFUyBcXHUwMDI2XFx1MDAyNiBUQVJHRVRfQ09SRSBcXHUwMDI2XFx1MDAyNiBTQ1NJIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03NTE9Y29uZmlnIFNDU0lfSUJNVkZDXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzUyLVxcdHRyaXN0YXRlIFxcXCJJQk0gVmlydHVhbCBGQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc1MzpcXHRkZXBlbmRzIG9uIFBQQ19QU0VSSUVTIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NTQ6XFx0ZGVwZW5kcyBvbiBTQ1NJX0ZDX0FUVFJTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzU1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc2MT1jb25maWcgU0NTSV9JQk1WRkNfVFJBQ0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NjItXFx0Ym9vbCBcXFwiZW5hYmxlIGRyaXZlciBpbnRlcm5hbCB0cmFjZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NjM6XFx0ZGVwZW5kcyBvbiBTQ1NJX0lCTVZGQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc2NC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc3MD1jb25maWcgU0NTSV9JTklUSU9cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NzEtXFx0dHJpc3RhdGUgXFxcIkluaXRpbyA5MTAwVShXKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc3MjpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NzMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NzgxPWNvbmZpZyBTQ1NJX0lOSUExMDBcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03ODItXFx0dHJpc3RhdGUgXFxcIkluaXRpbyBJTkktQTEwMFUyVyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc4MzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03ODQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NzkyPWNvbmZpZyBTQ1NJX1BQQVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc5My1cXHR0cmlzdGF0ZSBcXFwiSU9NRUdBIHBhcmFsbGVsIHBvcnQgKHBwYSAtIG9sZGVyIGRyaXZlcylcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6Nzk0OlxcdGRlcGVuZHMgb24gU0NTSSBcXHUwMDI2XFx1MDAyNiBQQVJQT1JUX1BDXFxuZHJpdmVycy9zY3NpL0tjb25maWc6Nzk1OlxcdGRlcGVuZHMgb24gSEFTX0lPUE9SVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc5NjpcXHRkZXBlbmRzIG9uICFISUdITUVNXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzk3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTgyMT1jb25maWcgU0NTSV9JTU1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MjItXFx0dHJpc3RhdGUgXFxcIklPTUVHQSBwYXJhbGxlbCBwb3J0IChpbW0gLSBuZXdlciBkcml2ZXMpXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjgyMzpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUEFSUE9SVF9QQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjgyNDpcXHRkZXBlbmRzIG9uICFISUdITUVNXFxuZHJpdmVycy9zY3NpL0tjb25maWctODI1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg0OT1jb25maWcgU0NTSV9JWklQX1NMT1dfQ1RSXFxuZHJpdmVycy9zY3NpL0tjb25maWctODUwLVxcdGJvb2wgXFxcInBwYS9pbW0gb3B0aW9uIC0gQXNzdW1lIHNsb3cgcGFycG9ydCBjb250cm9sIHJlZ2lzdGVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg1MTpcXHRkZXBlbmRzIG9uIFNDU0lfUFBBIHx8IFNDU0lfSU1NXFxuZHJpdmVycy9zY3NpL0tjb25maWctODUyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg2Mz1jb25maWcgU0NTSV9MQVNJNzAwXFxuZHJpdmVycy9zY3NpL0tjb25maWctODY0LVxcdHRyaXN0YXRlIFxcXCJIUCBMYXNpIFNDU0kgc3VwcG9ydCBmb3IgNTNjNzAwLzcxMFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4NjU6XFx0ZGVwZW5kcyBvbiBHU0MgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg2Ni1cXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg3Mj1jb25maWcgU0NTSV9TTklfNTNDNzEwXFxuZHJpdmVycy9zY3NpL0tjb25maWctODczLVxcdHRyaXN0YXRlIFxcXCJTTkkgUk0gU0NTSSBzdXBwb3J0IGZvciA1M2M3MTBcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6ODc0OlxcdGRlcGVuZHMgb24gU05JX1JNIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04NzUtXFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04ODE9Y29uZmlnIDUzQzcwMF9MRV9PTl9CRVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4Mi1cXHRib29sXFxuZHJpdmVycy9zY3NpL0tjb25maWc6ODgzOlxcdGRlcGVuZHMgb24gU0NTSV9MQVNJNzAwIHx8IFNDU0lfU05JXzUzQzcxMFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4NC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg4Nj1jb25maWcgU0NTSV9TVEVYXFxuZHJpdmVycy9zY3NpL0tjb25maWctODg3LVxcdHRyaXN0YXRlIFxcXCJQcm9taXNlIFN1cGVyVHJhayBFWCBTZXJpZXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4ODg6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4OS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04OTg9Y29uZmlnIDUzQzcwMF9CRV9CVVNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04OTktXFx0Ym9vbFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjkwMDpcXHRkZXBlbmRzIG9uIFNDU0lfQTQwMDBUIHx8IFNDU0lfWk9SUk83WFggfHwgTVZNRTE2eF9TQ1NJIHx8IEJWTUU2MDAwX1NDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MDEtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05MDM9Y29uZmlnIFNDU0lfU1lNNTNDOFhYXzJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MDQtXFx0dHJpc3RhdGUgXFxcIlNZTTUzQzhYWCBWZXJzaW9uIDIgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjkwNTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTA2LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9OTE3PWNvbmZpZyBTQ1NJX1NZTTUzQzhYWF9ETUFfQUREUkVTU0lOR19NT0RFXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTE4LVxcdGludCBcXFwiRE1BIGFkZHJlc3NpbmcgbW9kZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5MTk6XFx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTIwLVxcdGRlZmF1bHQgXFxcIjFcXFwiXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05NDA9Y29uZmlnIFNDU0lfU1lNNTNDOFhYX0RFRkFVTFRfVEFHU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk0MS1cXHRpbnQgXFxcIkRlZmF1bHQgdGFnZ2VkIGNvbW1hbmQgcXVldWUgZGVwdGhcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTQyOlxcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk0My1cXHRkZWZhdWx0IFxcXCIxNlxcXCJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk1MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTUFYX1RBR1NcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NTItXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiBxdWV1ZWQgY29tbWFuZHNcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTUzOlxcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk1NC1cXHRkZWZhdWx0IFxcXCI2NFxcXCJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk2MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTU1JT1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk2Mi1cXHRib29sIFxcXCJVc2UgbWVtb3J5IG1hcHBlZCBJT1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5NjM6XFx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTY0LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9OTcwPWNvbmZpZyBTQ1NJX0lQUlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk3MS1cXHR0cmlzdGF0ZSBcXFwiSUJNIFBvd2VyIExpbnV4IFJBSUQgYWRhcHRlciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk3MjpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTczLVxcdHNlbGVjdCBGV19MT0FERVJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk4MT1jb25maWcgU0NTSV9JUFJfVFJBQ0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05ODItXFx0Ym9vbCBcXFwiZW5hYmxlIGRyaXZlciBpbnRlcm5hbCB0cmFjZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5ODM6XFx0ZGVwZW5kcyBvbiBTQ1NJX0lQUlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk4NC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk5MD1jb25maWcgU0NTSV9JUFJfRFVNUFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk5MS1cXHRib29sIFxcXCJlbmFibGUgYWRhcHRlciBkdW1wIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTkyOlxcdGRlcGVuZHMgb24gU0NTSV9JUFJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05OTMtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05OTk9Y29uZmlnIFNDU0lfWkFMT05cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDAwLVxcdHRyaXN0YXRlIFxcXCJaYWxvbiBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTAwMTpcXHRkZXBlbmRzIG9uIEdTQyBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTAwMi1cXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwMTA9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX0RFRkFVTFRfVEFHU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwMTEtXFx0aW50IFxcXCJkZWZhdWx0IHRhZ2dlZCBjb21tYW5kIHF1ZXVlIGRlcHRoXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwMTI6XFx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTAxMy1cXHRkZWZhdWx0IFxcXCI4XFxcIlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTAzNj1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTUFYX1RBR1NcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDM3LVxcdGludCBcXFwibWF4aW11bSBudW1iZXIgb2YgcXVldWVkIGNvbW1hbmRzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwMzg6XFx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTAzOS1cXHRkZWZhdWx0IFxcXCIzMlxcXCJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwNTM9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX1NZTkNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDU0LVxcdGludCBcXFwic3luY2hyb25vdXMgdHJhbnNmZXJzIGZyZXF1ZW5jeSBpbiBNSHpcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTA1NTpcXHRkZXBlbmRzIG9uIFNDU0lfWkFMT05cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDU2LVxcdGRlZmF1bHQgXFxcIjIwXFxcIlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA4Nz1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTk9fRElTQ09OTkVDVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwODgtXFx0Ym9vbCBcXFwibm90IGFsbG93IHRhcmdldHMgdG8gZGlzY29ubmVjdFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMDg5OlxcdGRlcGVuZHMgb24gU0NTSV9aQUxPTiBcXHUwMDI2XFx1MDAyNiBTQ1NJX05DUjUzQzhYWF9ERUZBVUxUX1RBR1M9MFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwOTAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA5Nz1jb25maWcgU0NTSV9RTE9HSUNfRkFTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTA5OC1cXHR0cmlzdGF0ZSBcXFwiUWxvZ2ljIEZBUyBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTA5OTpcXHRkZXBlbmRzIG9uIElTQSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTEwMC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTE3PWNvbmZpZyBTQ1NJX1FMT0dJQ18xMjgwXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTExOC1cXHR0cmlzdGF0ZSBcXFwiUWxvZ2ljIFFMQSAxMjQwLzF4ODAvMXgxNjAgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExMTk6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExMjAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTEyNj1jb25maWcgU0NTSV9RTE9HSUNQVElcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTI3LVxcdHRyaXN0YXRlIFxcXCJQVEkgUWxvZ2ljLCBJU1AgRHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExMjg6XFx0ZGVwZW5kcyBvbiBTQlVTIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTI5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNDM9Y29uZmlnIFNDU0lfTFBGQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNDQtXFx0dHJpc3RhdGUgXFxcIkVtdWxleCBMaWdodFB1bHNlIEZpYnJlIENoYW5uZWwgU3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ1OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ2OlxcdGRlcGVuZHMgb24gQ1BVX0ZSRVFcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ3OlxcdGRlcGVuZHMgb24gU0NTSV9GQ19BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExNDg6XFx0ZGVwZW5kcyBvbiBOVk1FX1RBUkdFVF9GQyB8fCBOVk1FX1RBUkdFVF9GQz1uXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0OTpcXHRkZXBlbmRzIG9uIE5WTUVfRkMgfHwgTlZNRV9GQz1uXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE1MC1cXHRzZWxlY3QgQ1JDX1QxMERJRlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE1Nz1jb25maWcgU0NTSV9MUEZDX0RFQlVHX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE1OC1cXHRib29sIFxcXCJFbXVsZXggTGlnaHRQdWxzZSBGaWJyZSBDaGFubmVsIGRlYnVnZnMgU3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTU5OlxcdGRlcGVuZHMgb24gU0NTSV9MUEZDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE2MC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTY2PWNvbmZpZyBTQ1NJX1NJTTcxMFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjctXFx0dHJpc3RhdGUgXFxcIlNpbXBsZSA1M2M3MTAgU0NTSSBzdXBwb3J0IChDb21wYXEsIE5DUiBtYWNoaW5lcylcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE2ODpcXHRkZXBlbmRzIG9uIEVJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjktXFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTc1PWNvbmZpZyBTQ1NJX0RDMzk1eFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNzYtXFx0dHJpc3RhdGUgXFxcIlRla3JhbSBEQzM5NShVL1VXL0YpIGFuZCBEQzMxNShVKSBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE3NzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTc4LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE5MT1jb25maWcgU0NTSV9BTTUzQzk3NFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExOTItXFx0dHJpc3RhdGUgXFxcIlRla3JhbSBEQzM5MChUKSBhbmQgQW01My83OUM5NzQgU0NTSSBzdXBwb3J0IChuZXcgZHJpdmVyKVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTkzOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTk0LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTIwNz1jb25maWcgU0NTSV9OU1AzMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDgtXFx0dHJpc3RhdGUgXFxcIldvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwOTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJIFxcdTAwMjZcXHUwMDI2ICE2NEJJVCBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTIxMC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMjE4PWNvbmZpZyBTQ1NJX1dENzE5WFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMTktXFx0dHJpc3RhdGUgXFxcIldlc3Rlcm4gRGlnaXRhbCBXRDcxOTMvNzE5Ny83Mjk2IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIyMDpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTIyMS1cXHRzZWxlY3QgRUVQUk9NXzkzQ1g2XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMjI2PWNvbmZpZyBTQ1NJX0RFQlVHXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTIyNy1cXHR0cmlzdGF0ZSBcXFwiU0NTSSBkZWJ1Z2dpbmcgaG9zdCBhbmQgZGV2aWNlIHNpbXVsYXRvclxcXCJcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MzkuODgwMjkyODE0WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NDczNDk4MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFNDU0lfTlNQMzIgYW5kIFN5emthbGxlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgU0NTSV9OU1AzMmAgY29uZmlnIG9wdGlvbi4gVGhlIGRlcGVuZGVuY2llcyBhcmUgYFBDSSBcdTAwMjZcdTAwMjYgU0NTSSBcdTAwMjZcdTAwMjYgITY0QklUIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUYC4gSG1tLCB0aGUgYCE2NEJJVGAgcGFydCBpcyBpbW1lZGlhdGVseSB0aHJvd2luZyBhIGZsYWcuIElmIHN5emthbGxlciBpcyBydW5uaW5nIG9uIGEgc3RhbmRhcmQgNjQtYml0IGtlcm5lbCwgd2hpY2ggaXMgdGhlIG5vcm0gZm9yIHg4Nl82NCwgYFNDU0lfTlNQMzJgIHNpbXBseSAqd29uJ3QqIGJlIGVuYWJsZWQuXG5cblNvLCBmaXJzdCBpbnN0aW5jdCwgY2FuIHdlIGVuYWJsZSBpdCBvbiA2NC1iaXQ/IE5vcGUsIHRob3NlIGRlcGVuZGVuY2llcyBzcGVjaWZpY2FsbHkgYmxvY2sgaXQuIEFscmlnaHQsIHNvIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBzaG91bGQgSSBldmVuIGxpc3QgYFNDU0lfTlNQMzJgIGF0IGFsbCBpZiBpdCdzIG5vdCBwb3NzaWJsZSB0byBhY3RpdmF0ZSBpdCBvbiA2NC1iaXQgcGxhdGZvcm1zPyBTeXprYWxsZXIgKm1pZ2h0KiBiZSB0ZXN0aW5nIG9uIDMyLWJpdCBhcmNoaXRlY3R1cmVzLCBsaWtlIGkzODYgb3IgYXJtMzIsIGFuZCBpbiB0aG9zZSBjYXNlcywgaXQgKndvdWxkKiBhcHBseS4gQnV0IHRoZW4gYWdhaW4sIGlmIHRoZSBhcmNoaXRlY3R1cmUgaXNuJ3QgYXBwcm9wcmlhdGUsIHN5emthbGxlciBpcyBnb2luZyB0byBpZ25vcmUgdGhlIG9wdGlvbiwgc28gd2hhdCdzIHRoZSBwb2ludCBvZiBsaXN0aW5nIGl0P1xuXG5BaCwgcmlnaHQsIEkgbmVlZCB0byBmb2N1cyBvbiB3aGF0J3MgKmFjdHVhbGx5KiBuZWVkZWQuIFRoaXMgaXNuJ3QganVzdCBhIGNvbXByZWhlbnNpdmUgbGlzdCwgaXQncyBhIGxpc3QgdGFpbG9yZWQgdG8gd2hhdCdzIHVzZWQuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgdGhlIG90aGVyIG9wdGlvbnMsIEkgaGF2ZSBgQVRBX0dFTkVSSUNgLCBgQk9BUkRfVFBDSTIwMGAsIGBNTFhTV19DT1JFYCwgYW5kIGBNTFhTV19QQ0lgLiBOb3csIGBBVEFfR0VORVJJQ2AgbmVlZHMgdG8gYmUgaW52ZXN0aWdhdGVkLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxOTI0LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjQ1LjMyNzY0NDkyM1oiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA1MzY4MjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9hdGEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDU0NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0xND1tZW51Y29uZmlnIEFUQVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIlNlcmlhbCBBVEEgYW5kIFBhcmFsbGVsIEFUQSBkcml2ZXJzIChsaWJhdGEpXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTY6XFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cXG5kcml2ZXJzL2F0YS9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gQkxPQ0tcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE4LVxcdHNlbGVjdCBTQ1NJXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTcwPWNvbmZpZyBBVEFfQUNQSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzEtXFx0Ym9vbCBcXFwiQVRBIEFDUEkgU3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjcyOlxcdGRlcGVuZHMgb24gQUNQSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzMtXFx0c2VsZWN0IFBBVEFfVElNSU5HU1xcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04ND1jb25maWcgU0FUQV9aUE9ERFxcbmRyaXZlcnMvYXRhL0tjb25maWctODUtXFx0Ym9vbCBcXFwiU0FUQSBaZXJvIFBvd2VyIE9wdGljYWwgRGlzYyBEcml2ZSAoWlBPREQpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4NjpcXHRkZXBlbmRzIG9uIEFUQV9BQ1BJIFxcdTAwMjZcXHUwMDI2IFBNXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04Ny1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk3PWNvbmZpZyBTQVRBX1BNUFxcbmRyaXZlcnMvYXRhL0tjb25maWctOTgtXFx0Ym9vbCBcXFwiU0FUQSBQb3J0IE11bHRpcGxpZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjk5OlxcdGRlcGVuZHMgb24gU0FUQV9IT1NUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDAtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwOT1jb25maWcgU0FUQV9BSENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMTAtXFx0dHJpc3RhdGUgXFxcIkFIQ0kgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTExOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMTItXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0xMTg9Y29uZmlnIFNBVEFfTU9CSUxFX0xQTV9QT0xJQ1lcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTIxLVxcdGRlZmF1bHQgM1xcbmRyaXZlcnMvYXRhL0tjb25maWc6MTIyOlxcdGRlcGVuZHMgb24gU0FUQV9BSENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMjMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0xNjM9Y29uZmlnIEFIQ0lfQlJDTVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTY0LVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjE2NTpcXHRkZXBlbmRzIG9uIEFSQ0hfQlJDTVNUQiB8fCBCTUlQU19HRU5FUklDIHx8IEFSQ0hfQkNNX05TUCB8fCBcXFxcXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xNjYtXFx0XFx0ICAgQVJDSF9CQ01CQ0EgfHwgQ09NUElMRV9URVNUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTE3ND1jb25maWcgQUhDSV9EQTg1MFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTc1LVxcdHRyaXN0YXRlIFxcXCJEYVZpbmNpIERBODUwIEFIQ0kgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTc2OlxcdGRlcGVuZHMgb24gQVJDSF9EQVZJTkNJX0RBODUwIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTc3LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTg0PWNvbmZpZyBBSENJX0RNODE2XFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xODUtXFx0dHJpc3RhdGUgXFxcIkRhVmluY2kgRE04MTYgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxODY6XFx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE4Ny1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTIwMz1jb25maWcgQUhDSV9TVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJTVCBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIwNTpcXHRkZXBlbmRzIG9uIEFSQ0hfU1RJIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjA2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjEyPWNvbmZpZyBBSENJX0lNWFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjEzLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgaS5NWCBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIxNDpcXHRkZXBlbmRzIG9uIE1GRF9TWVNDT04gXFx1MDAyNlxcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIxNTpcXHRkZXBlbmRzIG9uIChIV01PTiBcXHUwMDI2XFx1MDAyNiAoVEhFUk1BTCB8fCAhVEhFUk1BTF9PRikpIHx8ICFIV01PTlxcbmRyaXZlcnMvYXRhL0tjb25maWctMjE2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjIzPWNvbmZpZyBBSENJX0NFVkFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIyNC1cXHR0cmlzdGF0ZSBcXFwiQ0VWQSBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIyNTpcXHRkZXBlbmRzIG9uIE9GXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yMjYtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0yMzM9Y29uZmlnIEFIQ0lfTVRLXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yMzQtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIEFIQ0kgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MjM1OlxcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIzNi1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0yNDQ9Y29uZmlnIEFIQ0lfTVZFQlVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI0NS1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBFQlUgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoyNDY6XFx0ZGVwZW5kcyBvbiBBUkNIX01WRUJVIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjQ3LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjU0PWNvbmZpZyBBSENJX09DVEVPTlxcbmRyaXZlcnMvYXRhL0tjb25maWctMjU1LVxcdHRyaXN0YXRlIFxcXCJDYXZpdW0gT2N0ZW9uIFNvYyBTZXJpYWwgQVRBXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MjU2OlxcdGRlcGVuZHMgb24gU0FUQV9BSENJX1BMQVRGT1JNIFxcdTAwMjZcXHUwMDI2IENBVklVTV9PQ1RFT05fU09DXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNTctXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI2Mz1jb25maWcgQUhDSV9TVU5YSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMjY0LVxcdHRyaXN0YXRlIFxcXCJBbGx3aW5uZXIgc3VueGkgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoyNjU6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjY2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjczPWNvbmZpZyBBSENJX1RFR1JBXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNzQtXFx0dHJpc3RhdGUgXFxcIk5WSURJQSBUZWdyYSBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjI3NTpcXHRkZXBlbmRzIG9uIEFSQ0hfVEVHUkEgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNzYtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0yODM9Y29uZmlnIEFIQ0lfWEdFTkVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4NC1cXHR0cmlzdGF0ZSBcXFwiQVBNIFgtR2VuZSA2LjBHYnBzIEFIQ0kgU0FUQSBob3N0IGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjI4NTpcXHRkZXBlbmRzIG9uIFBIWV9YR0VORSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4Ni1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI5MD1jb25maWcgQUhDSV9RT1JJUVxcbmRyaXZlcnMvYXRhL0tjb25maWctMjkxLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgUW9ySVEgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoyOTI6XFx0ZGVwZW5kcyBvbiBPRlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MjkzOlxcdGRlcGVuZHMgb24gU09DX0xTMTAyMUEgfHwgQVJDSF9MQVlFUlNDQVBFIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjk0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzAxPWNvbmZpZyBTQVRBX0ZTTFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzAyLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgMy4wR2JwcyBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzozMDM6XFx0ZGVwZW5kcyBvbiBGU0xfU09DIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzA0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzExPWNvbmZpZyBTQVRBX0dFTUlOSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzEyLVxcdHRyaXN0YXRlIFxcXCJHZW1pbmkgU0FUQSBicmlkZ2Ugc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjMxMzpcXHRkZXBlbmRzIG9uIEFSQ0hfR0VNSU5JIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzE0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzIyPWNvbmZpZyBTQVRBX0FIQ0lfU0VBVFRMRVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzIzLVxcdHRyaXN0YXRlIFxcXCJBTUQgU2VhdHRsZSA2LjBHYnBzIEFIQ0kgU0FUQSBob3N0IGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjMyNDpcXHRkZXBlbmRzIG9uIEFSQ0hfU0VBVFRMRSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMyNS1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTMzMT1jb25maWcgU0FUQV9JTklDMTYyWFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzMyLVxcdHRyaXN0YXRlIFxcXCJJbml0aW8gMTYyeCBTQVRBIHN1cHBvcnQgKFZlcnkgRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjMzMzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzM0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzM4PWNvbmZpZyBTQVRBX0FDQVJEX0FIQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMzOS1cXHR0cmlzdGF0ZSBcXFwiQUNhcmQgQUhDSSB2YXJpYW50IChBVFAgODYyMClcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzozNDA6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM0MS1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM0Nz1jb25maWcgU0FUQV9TSUwyNFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzQ4LVxcdHRyaXN0YXRlIFxcXCJTaWxpY29uIEltYWdlIDMxMjQvMzEzMiBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzozNDk6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM1MC1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM4MD1jb25maWcgUERDX0FETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM4MS1cXHR0cmlzdGF0ZSBcXFwiUGFjaWZpYyBEaWdpdGFsIEFETUEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjM4MjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzgzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9Mzg4PWNvbmZpZyBQQVRBX09DVEVPTl9DRlxcbmRyaXZlcnMvYXRhL0tjb25maWctMzg5LVxcdHRyaXN0YXRlIFxcXCJPQ1RFT04gQm9vdCBCdXMgQ29tcGFjdCBGbGFzaCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MzkwOlxcdGRlcGVuZHMgb24gQ0FWSVVNX09DVEVPTl9TT0NcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM5MS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM5OD1jb25maWcgU0FUQV9RU1RPUlxcbmRyaXZlcnMvYXRhL0tjb25maWctMzk5LVxcdHRyaXN0YXRlIFxcXCJQYWNpZmljIERpZ2l0YWwgU0FUQSBRU3RvciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDAwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00MDEtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz00MDc9Y29uZmlnIFNBVEFfU1g0XFxuZHJpdmVycy9hdGEvS2NvbmZpZy00MDgtXFx0dHJpc3RhdGUgXFxcIlByb21pc2UgU0FUQSBTWDQgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjQwOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNDEwLVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDE2PWNvbmZpZyBBVEFfQk1ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQxNy1cXHRib29sIFxcXCJBVEEgQk1ETUEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjQxODpcXHRkZXBlbmRzIG9uIEhBU19ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQxOS1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDMxPWNvbmZpZyBBVEFfUElJWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNDMyLVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBFU0IsIElDSCwgUElJWDMsIFBJSVg0IFBBVEEvU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDMzOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00MzQtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz00NDI9Y29uZmlnIFNBVEFfRFdDXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00NDMtXFx0dHJpc3RhdGUgXFxcIkRlc2lnbldhcmUgQ29yZXMgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDQ0OlxcdGRlcGVuZHMgb24gRE1BREVWSUNFU1xcbmRyaXZlcnMvYXRhL0tjb25maWctNDQ1LVxcdHNlbGVjdCBHRU5FUklDX1BIWVxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz00NTM9Y29uZmlnIFNBVEFfRFdDX09MRF9ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ1NC1cXHRib29sIFxcXCJTdXBwb3J0IG9sZCBkZXZpY2UgdHJlZXNcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo0NTU6XFx0ZGVwZW5kcyBvbiBTQVRBX0RXQ1xcbmRyaXZlcnMvYXRhL0tjb25maWctNDU2LVxcdHNlbGVjdCBEV19ETUFDX0NPUkVcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDYyPWNvbmZpZyBTQVRBX0hJR0hCQU5LXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00NjMtXFx0dHJpc3RhdGUgXFxcIkNhbHhlZGEgSGlnaGJhbmsgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDY0OlxcdGRlcGVuZHMgb24gQVJDSF9ISUdIQkFOSyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ2NS1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ3Mj1jb25maWcgU0FUQV9NVlxcbmRyaXZlcnMvYXRhL0tjb25maWctNDczLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjQ3NDpcXHRkZXBlbmRzIG9uIFBDSSB8fCBBUkNIX0RPVkUgfHwgQVJDSF9NVjc4WFgwIHx8IFxcXFxcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ3NS1cXHRcXHQgICBBUkNIX01WRUJVIHx8IEFSQ0hfT1JJT041WCB8fCBDT01QSUxFX1RFU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDg1PWNvbmZpZyBTQVRBX05WXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00ODYtXFx0dHJpc3RhdGUgXFxcIk5WSURJQSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo0ODc6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ4OC1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ5ND1jb25maWcgU0FUQV9QUk9NSVNFXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00OTUtXFx0dHJpc3RhdGUgXFxcIlByb21pc2UgU0FUQSBUWDIvVFg0IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo0OTY6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ5Ny1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTUwMz1jb25maWcgU0FUQV9SQ0FSXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MDQtXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUi1DYXIgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTA1OlxcdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNTA2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTEyPWNvbmZpZyBTQVRBX1NJTFxcbmRyaXZlcnMvYXRhL0tjb25maWctNTEzLVxcdHRyaXN0YXRlIFxcXCJTaWxpY29uIEltYWdlIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjUxNDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTE1LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTIxPWNvbmZpZyBTQVRBX1NJU1xcbmRyaXZlcnMvYXRhL0tjb25maWctNTIyLVxcdHRyaXN0YXRlIFxcXCJTaVMgOTY0Lzk2NS85NjYvMTgwIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjUyMzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTI0LVxcdHNlbGVjdCBQQVRBX1NJU1xcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz01MzM9Y29uZmlnIFNBVEFfU1ZXXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MzQtXFx0dHJpc3RhdGUgXFxcIlNlcnZlcldvcmtzIEZyb2RvIC8gQXBwbGUgSzIgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTM1OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MzYtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz01NDM9Y29uZmlnIFNBVEFfVUxJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01NDQtXFx0dHJpc3RhdGUgXFxcIlVMaSBFbGVjdHJvbmljcyBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo1NDU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU0Ni1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTU1Mj1jb25maWcgU0FUQV9WSUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU1My1cXHR0cmlzdGF0ZSBcXFwiVklBIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjU1NDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTU1LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTYxPWNvbmZpZyBTQVRBX1ZJVEVTU0VcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU2Mi1cXHR0cmlzdGF0ZSBcXFwiVklURVNTRSBWU0MtNzE3NCAvIElOVEVMIDMxMjQ0IFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjU2MzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTY0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTcyPWNvbmZpZyBQQVRBX0FMSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTczLVxcdHRyaXN0YXRlIFxcXCJBTGkgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTc0OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU3NS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTU4Mj1jb25maWcgUEFUQV9BTURcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU4My1cXHR0cmlzdGF0ZSBcXFwiQU1EL05WaWRpYSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo1ODQ6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNTg1LVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTkyPWNvbmZpZyBQQVRBX0FSQVNBTl9DRlxcbmRyaXZlcnMvYXRhL0tjb25maWctNTkzLVxcdHRyaXN0YXRlIFxcXCJBUkFTQU4gQ29tcGFjdEZsYXNoIFBBVEEgQ29udHJvbGxlciBTdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTk0OlxcdGRlcGVuZHMgb24gQVJDSF9TUEVBUjEzWFggfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo1OTU6XFx0ZGVwZW5kcyBvbiBETUFERVZJQ0VTXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01OTYtXFx0c2VsZWN0IERNQV9FTkdJTkVcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjAwPWNvbmZpZyBQQVRBX0FSVE9QXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MDEtXFx0dHJpc3RhdGUgXFxcIkFSVE9QIDYyMTAvNjI2MCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo2MDI6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjAzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjA4PWNvbmZpZyBQQVRBX0FUSUlYUFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjA5LVxcdHRyaXN0YXRlIFxcXCJBVEkgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjEwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MTEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz02MTc9Y29uZmlnIFBBVEFfQVRQODY3WFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjE4LVxcdHRyaXN0YXRlIFxcXCJBUlRPUC9BY2FyZCBBVFA4NjdYIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjYxOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjIwLVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjI3PWNvbmZpZyBQQVRBX0NNRDY0WFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjI4LVxcdHRyaXN0YXRlIFxcXCJDTUQ2NHggUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjI5OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYzMC1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTYzNz1jb25maWcgUEFUQV9DUzU1MjBcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYzOC1cXHR0cmlzdGF0ZSBcXFwiQ1M1NTEwLzU1MjAgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjM5OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjQwLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjQ2PWNvbmZpZyBQQVRBX0NTNTUzMFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjQ3LVxcdHRyaXN0YXRlIFxcXCJDUzU1MzAgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjQ4OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjQ5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjU1PWNvbmZpZyBQQVRBX0NTNTUzNVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjU2LVxcdHRyaXN0YXRlIFxcXCJDUzU1MzUgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjU3OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgKFg4Nl82NCBcXHUwMDI2XFx1MDAyNiBDT01QSUxFX1RFU1QpKVxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjU4OlxcdGRlcGVuZHMgb24gIVVNTFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjU5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjY1PWNvbmZpZyBQQVRBX0NTNTUzNlxcbmRyaXZlcnMvYXRhL0tjb25maWctNjY2LVxcdHRyaXN0YXRlIFxcXCJDUzU1MzYgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjY3OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgTUlQUyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02NjgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz02NzQ9Y29uZmlnIFBBVEFfQ1lQUkVTU1xcbmRyaXZlcnMvYXRhL0tjb25maWctNjc1LVxcdHRyaXN0YXRlIFxcXCJDeXByZXNzIENZODJDNjkzIFBBVEEgc3VwcG9ydCAoVmVyeSBFeHBlcmltZW50YWwpXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6Njc2OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY3Ny1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTY4ND1jb25maWcgUEFUQV9FRkFSXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02ODUtXFx0dHJpc3RhdGUgXFxcIkVGQVIgU0xDOTBFNjYgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjY4NjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjg3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjkzPWNvbmZpZyBQQVRBX0VQOTNYWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjk0LVxcdHRyaXN0YXRlIFxcXCJDaXJydXMgTG9naWMgRVA5M3h4IFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjY5NTpcXHRkZXBlbmRzIG9uIEFSQ0hfRVA5M1hYIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjk2LVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzAzPWNvbmZpZyBQQVRBX0ZUSURFMDEwXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MDQtXFx0dHJpc3RhdGUgXFxcIkZhcmFkYXkgVGVjaG5vbG9neSBGVElERTAxMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MDU6XFx0ZGVwZW5kcyBvbiBBUk0gfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MDY6XFx0ZGVwZW5kcyBvbiBTQVRBX0dFTUlOSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzA3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzEzPWNvbmZpZyBQQVRBX0hQVDM2NlxcbmRyaXZlcnMvYXRhL0tjb25maWctNzE0LVxcdHRyaXN0YXRlIFxcXCJIUFQgMzY2LzM2OCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MTU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcxNi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTcyMj1jb25maWcgUEFUQV9IUFQzN1hcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcyMy1cXHR0cmlzdGF0ZSBcXFwiSFBUIDM3MC8zNzBBLzM3MS8zNzIvMzc0LzMwMiBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MjQ6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNzI1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzMxPWNvbmZpZyBQQVRBX0hQVDNYMk5cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTczMi1cXHR0cmlzdGF0ZSBcXFwiSFBUIDM3MU4vMzcyTi8zMDJOIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjczMzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MzQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz03NDA9Y29uZmlnIFBBVEFfSFBUM1gzXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NDEtXFx0dHJpc3RhdGUgXFxcIkhQVCAzNDMvMzYzIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc0MjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzQzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzQ5PWNvbmZpZyBQQVRBX0hQVDNYM19ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1MC1cXHRib29sIFxcXCJIUFQgMzQzLzM2MyBETUEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc1MTpcXHRkZXBlbmRzIG9uIFBBVEFfSFBUM1gzXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NTItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz03NTc9Y29uZmlnIFBBVEFfSUNTSURFXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NTgtXFx0dHJpc3RhdGUgXFxcIkFjb3JuIElDUyBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3NTk6XFx0ZGVwZW5kcyBvbiBBUk0gXFx1MDAyNlxcdTAwMjYgQVJDSF9BQ09STlxcbmRyaXZlcnMvYXRhL0tjb25maWctNzYwLVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzY2PWNvbmZpZyBQQVRBX0lNWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNzY3LVxcdHRyaXN0YXRlIFxcXCJQQVRBIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBpTVhcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3Njg6XFx0ZGVwZW5kcyBvbiBBUkNIX01YQyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc2OS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc3Nj1jb25maWcgUEFUQV9JVDgyMTNcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc3Ny1cXHR0cmlzdGF0ZSBcXFwiSVQ4MjEzIFBBVEEgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc3ODpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzc5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9Nzg1PWNvbmZpZyBQQVRBX0lUODIxWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNzg2LVxcdHRyaXN0YXRlIFxcXCJJVDgyMTEvMiBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3ODc6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc4OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc5NT1jb25maWcgUEFUQV9KTUlDUk9OXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03OTYtXFx0dHJpc3RhdGUgXFxcIkpNaWNyb24gUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6Nzk3OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03OTgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04MDQ9Y29uZmlnIFBBVEFfTUFDSU9cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgwNS1cXHR0cmlzdGF0ZSBcXFwiQXBwbGUgUG93ZXJNYWMvUG93ZXJCb29rIGludGVybmFsICdNYWNJTycgSURFXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6ODA2OlxcdGRlcGVuZHMgb24gUFBDX1BNQUNcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgwNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgxMz1jb25maWcgUEFUQV9NQVJWRUxMXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MTQtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgUEFUQSBzdXBwb3J0IHZpYSBsZWdhY3kgbW9kZVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjgxNTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctODE2LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODI0PWNvbmZpZyBQQVRBX01QQzUyeHhcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgyNS1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIE1QQzUyeHggU29DIGludGVybmFsIElERVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjgyNjpcXHRkZXBlbmRzIG9uIFBQQ19NUEM1Mnh4IFxcdTAwMjZcXHUwMDI2IFBQQ19CRVNUQ09NTVxcbmRyaXZlcnMvYXRhL0tjb25maWctODI3LVxcdHNlbGVjdCBQUENfQkVTVENPTU1fQVRBXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgzND1jb25maWcgUEFUQV9ORVRDRUxMXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MzUtXFx0dHJpc3RhdGUgXFxcIk5FVENFTEwgUmV2b2x1dGlvbiBSQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4MzY6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctODM3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODQzPWNvbmZpZyBQQVRBX05JTkpBMzJcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg0NC1cXHR0cmlzdGF0ZSBcXFwiTmluamEzMi9EZWxraW4gQ2FyZGJ1cyBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg0NTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctODQ2LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODUyPWNvbmZpZyBQQVRBX05TODc0MTVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1My1cXHR0cmlzdGF0ZSBcXFwiTmF0IFNlbWkgTlM4NzQxNSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4NTQ6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1NS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg2Mj1jb25maWcgUEFUQV9PTERQSUlYXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04NjMtXFx0dHJpc3RhdGUgXFxcIkludGVsIFBBVEEgb2xkIFBJSVggc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg2NDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctODY1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODcwPWNvbmZpZyBQQVRBX09QVElETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg3MS1cXHR0cmlzdGF0ZSBcXFwiT1BUSSBGaXJlU3RhciBQQVRBIHN1cHBvcnQgKFZlcnkgRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg3MjpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04NzMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04ODA9Y29uZmlnIFBBVEFfUERDMjAyN1hcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg4MS1cXHR0cmlzdGF0ZSBcXFwiUHJvbWlzZSBQQVRBIDIwMjd4IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4ODI6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctODgzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODg4PWNvbmZpZyBQQVRBX1BEQ19PTERcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg4OS1cXHR0cmlzdGF0ZSBcXFwiT2xkZXIgUHJvbWlzZSBQQVRBIGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5MDpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04OTEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04OTc9Y29uZmlnIFBBVEFfUkFESVNZU1xcbmRyaXZlcnMvYXRhL0tjb25maWctODk4LVxcdHRyaXN0YXRlIFxcXCJSQURJU1lTIDgyNjAwIFBBVEEgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5OTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTAwLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTA2PWNvbmZpZyBQQVRBX1JEQ1xcbmRyaXZlcnMvYXRhL0tjb25maWctOTA3LVxcdHRyaXN0YXRlIFxcXCJSREMgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6OTA4OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz05MTY9Y29uZmlnIFBBVEFfU0MxMjAwXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MTctXFx0dHJpc3RhdGUgXFxcIlNDMTIwMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5MTg6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgKFg4Nl8zMiB8fCBDT01QSUxFX1RFU1QpIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkxOS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTkyNT1jb25maWcgUEFUQV9TQ0hcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkyNi1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgU0NIIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjkyNzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTI4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTM0PWNvbmZpZyBQQVRBX1NFUlZFUldPUktTXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MzUtXFx0dHJpc3RhdGUgXFxcIlNFUlZFUldPUktTIE9TQjQvQ1NCNS9DU0I2L0hUMTAwMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5MzY6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctOTM3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTQzPWNvbmZpZyBQQVRBX1NJTDY4MFxcbmRyaXZlcnMvYXRhL0tjb25maWctOTQ0LVxcdHRyaXN0YXRlIFxcXCJDTUQgLyBTaWxpY29uIEltYWdlIDY4MCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5NDU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk0Ni1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk1MT1jb25maWcgUEFUQV9TSVNcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk1Mi1cXHR0cmlzdGF0ZSBcXFwiU2lTIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjk1MzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTU0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTU5PWNvbmZpZyBQQVRBX1RPU0hJQkFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2MC1cXHR0cmlzdGF0ZSBcXFwiVG9zaGliYSBQaWNjb2xvIHN1cHBvcnQgKEV4cGVyaW1lbnRhbClcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5NjE6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2Mi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk2OD1jb25maWcgUEFUQV9UUklGTEVYXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05NjktXFx0dHJpc3RhdGUgXFxcIkNvbXBhcSBUcmlmbGV4IFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjk3MDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTcxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTc3PWNvbmZpZyBQQVRBX1ZJQVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTc4LVxcdHRyaXN0YXRlIFxcXCJWSUEgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6OTc5OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05ODAtXFx0c2VsZWN0IFBBVEFfVElNSU5HU1xcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz05ODc9Y29uZmlnIFBBVEFfUFhBXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05ODgtXFx0dHJpc3RhdGUgXFxcIlBYQSBETUEtY2FwYWJsZSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5ODk6XFx0ZGVwZW5kcyBvbiBBUkNIX1BYQSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk5MC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk5OD1jb25maWcgUEFUQV9XSU5CT05EXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05OTktXFx0dHJpc3RhdGUgXFxcIldpbmJvbmQgU0w4MkMxMDUgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTAwMDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTAwMS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwMTE9Y29uZmlnIFBBVEFfQ01ENjQwX1BDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTAxMi1cXHR0cmlzdGF0ZSBcXFwiQ01ENjQwIFBDSSBQQVRBIHN1cHBvcnQgKEV4cGVyaW1lbnRhbClcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDEzOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDE0LVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTAyMj1jb25maWcgUEFUQV9GQUxDT05cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMjMtXFx0dHJpc3RhdGUgXFxcIkF0YXJpIEZhbGNvbiBhbmQgUTQwL1E2MCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDI0OlxcdGRlcGVuZHMgb24gTTY4SyBcXHUwMDI2XFx1MDAyNiAoQVRBUkkgfHwgUTQwKVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTAyNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwMzE9Y29uZmlnIFBBVEFfR0FZTEVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMzItXFx0dHJpc3RhdGUgXFxcIkFtaWdhIEdheWxlIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwMzM6XFx0ZGVwZW5kcyBvbiBNNjhLIFxcdTAwMjZcXHUwMDI2IEFNSUdBXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDM0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTA0Mz1jb25maWcgUEFUQV9CVURESEFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNDQtXFx0dHJpc3RhdGUgXFxcIkJ1ZGRoYS9DYXR3ZWFzZWwvWC1TdXJmIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwNDU6XFx0ZGVwZW5kcyBvbiBaT1JST1xcbmRyaXZlcnMvYXRhL0tjb25maWctMTA0Ni1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNTU9Y29uZmlnIFBBVEFfSVNBUE5QXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDU2LVxcdHRyaXN0YXRlIFxcXCJJU0EgUGx1ZyBhbmQgUGxheSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDU3OlxcdGRlcGVuZHMgb24gSVNBUE5QXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDU4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTA2ND1jb25maWcgUEFUQV9JWFA0WFhfQ0ZcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNjUtXFx0dHJpc3RhdGUgXFxcIklYUDRYWCBDb21wYWN0IEZsYXNoIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDY2OlxcdGRlcGVuZHMgb24gQVJDSF9JWFA0WFggfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDY3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTA3ND1jb25maWcgUEFUQV9NUElJWFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3NS1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgUEFUQSBNUElJWCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA3NjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3Ny1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwODI9Y29uZmlnIFBBVEFfTlM4NzQxMFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTA4My1cXHR0cmlzdGF0ZSBcXFwiTmF0IFNlbWkgTlM4NzQxMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDg0OlxcdGRlcGVuZHMgb24gUENJXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjQ1LjYzMzAxODIzM1oiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTI2MzA1NzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlcGVuZGVuY3kgQ2hlY2sqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQVRBX0dFTkVSSUNgLiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoYXQgb25lIG5lZWRzIGBQQ0lgIGFuZCBgQVRBYC4gTm8gc3VycHJpc2VzIHRoZXJlLiBCdXQsIGhvbGQgb24uLi4gYEFUQWAgaXRzZWxmIGhhcyBzb21lIGRlcGVuZGVuY2llcywgbmFtZWx5IGBIQVNfSU9NRU1gIGFuZCBgQkxPQ0tgLiBBbHJpZ2h0LCB0aGF0J3MgbG9naWNhbCwgaXQgbmVlZHMgdG8ga25vdyB3aGVyZSBpdCdzIG1hcHBpbmcgdG8sIGFuZCB0aGF0IHRoZSBzdG9yYWdlIGl0c2VsZiBleGlzdHMuIFNvLCBnb2luZyBiYWNrIHRvIGBBVEFfR0VORVJJQ2AsIHNpbmNlIGBBVEFgIGZ1bGZpbGxzIGl0cyBkZXBlbmRlbmNpZXMsIHRoZW4gYEFUQV9HRU5FUklDYCBpcyBhbGwgc2V0LiBUaW1lIHRvIG1vdmUgb24gYW5kIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBCT0FSRF9UUENJMjAwYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTExMjYsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDo0OS41NTkzMjc3WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU3MTg0MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnPTI9Y29uZmlnIEJPQVJEX1RQQ0kyMDBcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgdGhlIFRFV1MgVFBDSS0yMDAgSW5kdXN0cnlQYWNrIGNhcnJpZXIgYm9hcmRcXFwiXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBJUEFDS19CVVNcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWc6NTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZy02LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6NDkuNjg1MDU2MzA4WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwNzY1MjU1NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydCBpbiBlbWJlZGRlZCBzeXN0ZW1zIGFyY2hpdGVjdHVyZTpcblxuKipEZXBlbmRlbmN5IENoYWluIEludmVzdGlnYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyBgQk9BUkRfVFBDSTIwMGAgaGFzIGEgZGVwZW5kZW5jeSBjaGFpbi4gSXQncyBidWlsdCBvbiBgSVBBQ0tfQlVTYCwgd2hpY2ggaXMgaXRzZWxmIHJlbGlhbnQgb24gdGhlIGBQQ0lgIGJ1cy4gQmVmb3JlIEkgY2FuIHByb2NlZWQgd2l0aCBhbnkgdHJvdWJsZXNob290aW5nIG9yIGRlc2lnbiBjb25zaWRlcmF0aW9ucyByZWxhdGVkIHRvIGBCT0FSRF9UUENJMjAwYCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCB1bmRlcmx5aW5nIGBJUEFDS19CVVNgIGRlcGVuZGVuY3kuIEl0J3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIHRyYWNpbmcgZG93biB0aGUgZmxvdy4gSSBuZWVkIHRvIGtub3cgaG93IGBJUEFDS19CVVNgIGlzIGNvbmZpZ3VyZWQsIHdoYXQgcmVzb3VyY2VzIGl0IHJlcXVpcmVzLCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBgUENJYCBidXMuIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gdXBvbiB3aGljaCBgQk9BUkRfVFBDSTIwMGAgc3RhbmRzLCBzbyBJJ2xsIHN0YXJ0IHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTQ3MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjUyLjc2MTU4NTI0N1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzMzE0MTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUEFDS19CVVNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9pcGFjay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvaXBhY2svS2NvbmZpZy01LVxcbmRyaXZlcnMvaXBhY2svS2NvbmZpZzo2Om1lbnVjb25maWcgSVBBQ0tfQlVTXFxuZHJpdmVycy9pcGFjay9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIkluZHVzdHJ5UGFjayBidXMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6NTIuOTE0OTAzOTMyWiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYzMTQ0NDg3NDkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkVuYWJsaW5nIElQQUNLX0JVUyBhbmQgRGVwZW5kZW5jeSBTY3J1dGlueSoqXG5cbkFscmlnaHQsIHRoZSBjb3JlIGxvZ2ljIHBvaW50cyB1cyB0b3dhcmQgZW5hYmxpbmcgYElQQUNLX0JVU2AuIFRoYXQncyB0aGUgZGlyZWN0aW9uIHdlIG5lZWQgdG8gZ28uIEJlZm9yZSB3ZSBjb21taXQsIGxldCdzIGp1c3QgbWFrZSBhYnNvbHV0ZWx5IHN1cmUgd2UndmUgZ290IGFsbCBvdXIgZHVja3MgaW4gYSByb3cuIE5vdywgZ2l2ZW4gdGhhdCBkZWNpc2lvbiwgSSdtIGdvaW5nIHRvIHF1aWNrbHkgYXVkaXQgdGhlIGRlcGVuZGVuY2llcy4gVGhlIGdvYWwgaXMgdG8gdmVyaWZ5IHRoYXQgZW5hYmxpbmcgYElQQUNLX0JVU2AgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHVuZm9yZXNlZW4gaXNzdWVzIG9yIGNvbmZsaWN0cyB3aXRoaW4gdGhlIGJyb2FkZXIgYE1MWFNXX0NPUkVgIGZyYW1ld29yay4gTmVlZCB0byBtYWtlIGNlcnRhaW4gdGhhdCB3ZSdyZSBub3QgaW5hZHZlcnRlbnRseSBicmVha2luZyBhbnl0aGluZyB1cHN0cmVhbSBvciBjcmVhdGluZyBhIGRvd25zdHJlYW0gaXNzdWUgd2UgaGF2ZW4ndCBhbnRpY2lwYXRlZC4gVGltZSB0byBkaXZlIGludG8gdGhlIEtjb25maWcgYW5kIE1ha2VmaWxlcyBhbmQgY29uZmlybSB0aGF0IHRoaXMgaXMgYSBjbGVhbiBhbmQgc3RyYWlnaHRmb3J3YXJkIGVuYWJsaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTc3MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI1OjU2LjA1OTM5NDAxNVoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY5Njg2MDk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTE3PWNvbmZpZyBNTFhTV19DT1JFX0hXTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJIV01PTiBzdXBwb3J0IGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MTk6XFx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFxcdTAwMjZcXHUwMDI2IEhXTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyMDpcXHRkZXBlbmRzIG9uICEoTUxYU1dfQ09SRT15IFxcdTAwMjZcXHUwMDI2IEhXTU9OPW0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yMS1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjYtXFx0Ym9vbCBcXFwiVGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyNzpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgVEhFUk1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjgtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTMzPWNvbmZpZyBNTFhTV19QQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTM0LVxcdHRyaXN0YXRlIFxcXCJQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MzU6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IE1MWFNXX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTM2LVxcdHNlbGVjdCBQQUdFX1BPT0xcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9NDQ9Y29uZmlnIE1MWFNXX0kyQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIkkyQyBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo0NjpcXHRkZXBlbmRzIG9uIEkyQyBcXHUwMDI2XFx1MDAyNiBNTFhTV19DT1JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00Ny1cXHRkZWZhdWx0IG1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9NTQ9Y29uZmlnIE1MWFNXX1NQRUNUUlVNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cXHR0cmlzdGF0ZSBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIFNwZWN0cnVtIGZhbWlseSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTY6XFx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFxcdTAwMjZcXHUwMDI2IE1MWFNXX1BDSSBcXHUwMDI2XFx1MDAyNiBORVRfU1dJVENIREVWIFxcdTAwMjZcXHUwMDI2IFZMQU5fODAyMVFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU3OlxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCBQU0FNUExFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU4OlxcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1OTpcXHRkZXBlbmRzIG9uIE5FVF9JUEdSRSB8fCBORVRfSVBHUkU9blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjA6XFx0ZGVwZW5kcyBvbiBJUFY2X0dSRSB8fCBJUFY2X0dSRT1uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2MTpcXHRkZXBlbmRzIG9uIFZYTEFOIHx8IFZYTEFOPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjYyOlxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTYzLVxcdHNlbGVjdCBHRU5FUklDX0FMTE9DQVRPUlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz03NT1jb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03Ni1cXHRib29sIFxcXCJEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Nzc6XFx0ZGVwZW5kcyBvbiBNTFhTV19TUEVDVFJVTSBcXHUwMDI2XFx1MDAyNiBEQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc4LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz04Mz1jb25maWcgTUxYU1dfTUlOSU1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODQtXFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBtaW5pbWFsIEkyQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6ODU6XFx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFxcdTAwMjZcXHUwMDI2IE1MWFNXX0kyQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODYtXFx0ZGVmYXVsdCBtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI1OjU2LjUyOTExNzkyOVoiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzQ3OTAzMTAwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZpbmluZyB0aGUgU3l6a2FsbGVyIEZ1enppbmcgQ29uZmlndXJhdGlvbiBmb3IgUENJIERyaXZlciBDaGFuZ2VzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGlzIHRvIGNvbmZpZ3VyZSBTeXprYWxsZXIgZWZmZWN0aXZlbHkgdG8gdGFyZ2V0IHRoZSByZWNlbnQgY2hhbmdlcyBpbiB0aGUgUENJIGRyaXZlciBjb2RlLiBJJ3ZlIGdvdCB0byBjb25zaWRlciB0aGUgZGVwZW5kZW5jaWVzLCBhZmZlY3RlZCBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBmdXp6aW5nIHN0cmF0ZWd5LlxuXG5GaXJzdCwgSSBzZWUgdGhlIGNvcmUgY29tcG9uZW50czogYE1MWFNXX0NPUkVgIGhhcyBubyBkZXBlbmRlbmNpZXMsIGJ1dCBgTUxYU1dfUENJYCBkZXBlbmRzIG9uIGBQQ0lgLCBgSEFTX0lPTUVNYCwgYW5kIGBNTFhTV19DT1JFYC4gV2UncmUgYWxzbyBkZWFsaW5nIHdpdGggdGhlc2UgY29uZmlnIG9wdGlvbnM6IGBBVEFfR0VORVJJQ2AsIGBJUEFDS19CVVNgLCBgQk9BUkRfVFBDSTIwMGAsIGFuZCBgU0NTSV9OU1AzMmAuIFRoZSBgU0NTSV9OU1AzMmAgbW9kdWxlIGlzIGxpa2VseSB0byBiZSBpZ25vcmVkIG9uIDY0LWJpdCBrZXJuZWxzLCB3aGljaCBTeXprYWxsZXIgdXNlcywgYmVjYXVzZSBvZiB0aGUgYCE2NEJJVGAgZGVwZW5kZW5jeSwgYnV0IHRoYXQncyBmaW5lLlxuXG5JIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uIG9uIHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgYWZmZWN0ZWQgYnkgdGhlIHBhdGNoLiBUaGUgY29yZSBjaGFuZ2VzIGFyZSBpbiBgZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jYCwgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gaG93IFBDSSBkZXZpY2UgSURzIGFyZSBoYW5kbGVkIGR1cmluZyBwcm9iaW5nLiBJbml0aWFsbHksIEkgaWRlbnRpZmllZCB0aGVzZSBmdW5jdGlvbnM6IGBkb19wY2lfYWRkX2R5bmlkYCwgYHBjaV9hZGRfZHluaWRgLCBgZG9fcGNpX21hdGNoX2lkYCwgYHBjaV9tYXRjaF9pZGAsIGBwY2lfbWF0Y2hfZGV2aWNlYCwgYG5ld19pZF9zdG9yZWAsIGBfX3BjaV9kZXZpY2VfcHJvYmVgLCBhbmQgYHBjaV9idXNfbWF0Y2hgLiBUaGUgbW9kaWZpZWQgZHJpdmVyIHByb2JlIGZ1bmN0aW9ucyBhcmUgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLlxuXG5Ob3csIFN5emthbGxlciBjYW4gaGFuZGxlIHN0YXRpYyBmdW5jdGlvbnMgaWYgdGhleSdyZSB1bmlxdWVseSBpZGVudGlmaWFibGUsIGFuZCB0aGF0J3Mga2V5LiBTbywgSSBwbGFuIHRvIGluY2x1ZGUgYWxsIG9mIHRoZXNlIGluIGBGb2N1c1N5bWJvbHNgOiBgcGNpX2FkZF9keW5pZGAsIGBuZXdfaWRfc3RvcmVgLCBgcGNpX21hdGNoX2RldmljZWAsIGBfX3BjaV9kZXZpY2VfcHJvYmVgLCBgYXRhX2dlbmVyaWNfaW5pdF9vbmVgLCBgdHBjaTIwMF9wY2lfcHJvYmVgLCBgbWx4c3dfcGNpX3Byb2JlYCwgYW5kIGBuc3AzMl9wcm9iZWAuXG5cbkkgdW5kZXJzdGFuZCB0aGUgZHluYW1pY3MuIFdoaWxlIGBwY2lfbWF0Y2hfZGV2aWNlYCBpcyBjYWxsZWQgZnJlcXVlbnRseSwgaXQncyBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBpc24ndCBhIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2sgYnV0IHN0aWxsIGEgY3JpdGljYWwgYXJlYS4gYG5ld19pZF9zdG9yZWAgaXMgcmVsZXZhbnQgYmVjYXVzZSBpdCdzIGNhbGxlZCB3aGVuIHdyaXRpbmcgdG8gdGhlIHN5c2ZzIGBuZXdfaWRgLiBBbmQgYHBjaV9hZGRfZHluaWRgIGlzIGFsc28gaW1wb3J0YW50LCBhcyBpdCdzIGNhbGxlZCBieSBgbmV3X2lkX3N0b3JlYCBhbmQgb3RoZXIgZHJpdmVycy5cblxuVG8gZW5zdXJlIEkgaGF2ZSB0aGUgZXhhY3QgbmFtZXMsIEkndmUgZG91YmxlLWNoZWNrZWQgdGhlbTogYGRvX3BjaV9hZGRfZHluaWRgLCBgcGNpX2FkZF9keW5pZGAsIGBkb19wY2lfbWF0Y2hfaWRgLCBgcGNpX21hdGNoX2lkYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgbmV3X2lkX3N0b3JlYCwgYF9fcGNpX2RldmljZV9wcm9iZWAsIGBwY2lfYnVzX21hdGNoYCwgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLlxuXG5Pa2F5LCBJJ20gcmVmaW5pbmcgdGhlIGxpc3QuIFdlIHdhbnQgdGhlIG9uZXMgZGlyZWN0bHkgbGlua2VkIHRvIHRoZSBjaGFuZ2VkIGJlaGF2aW9yIG9yIHRoZSBhZmZlY3RlZCBkcml2ZXJzOiBgbmV3X2lkX3N0b3JlYCwgYGRvX3BjaV9hZGRfZHluaWRgLCBgcGNpX21hdGNoX2RldmljZWAsIGBfX3BjaV9kZXZpY2VfcHJvYmVgLCBgYXRhX2dlbmVyaWNfaW5pdF9vbmVgLCBgdHBjaTIwMF9wY2lfcHJvYmVgLCBgbWx4c3dfcGNpX3Byb2JlYCwgYW5kIGBuc3AzMl9wcm9iZWAuIEknbGwga2VlcCBgcGNpX21hdGNoX2RldmljZWAgaW4gdGhlIGZvY3VzIGxpc3QgYmVjYXVzZSBpdCdzIGF0IHRoZSBjb3JlIG9mIGRldmljZSBtYXRjaGluZyB3aGljaCBpcyB3aGF0IHRoaXMgcGF0Y2ggaXMgYWJvdXQuXG5cbkZpbmFsbHksIEkgY29uZmlybWVkIGZ1bmN0aW9uIHNpZ25hdHVyZXMgYW5kIHRoZSBvdmVyYWxsIGdvYWwgb2YgdGhlIHBhdGNoOiB0byBhZGRyZXNzIFBDSSBkZXZpY2UgSUQgbWFuYWdlbWVudCwgYW5kIHNwZWNpZmljYWxseSBob3cgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGBwY2lfZGV2aWNlX2lkYCBzdHJ1Y3R1cmVzIGFyZSBoYW5kbGVkIGR1cmluZyBwcm9iZS4gVGhpcyBtZWFucyBmdXp6aW5nIHRoZSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSwgdGhlIGNvcmUgUENJIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljLCBhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBvZiB0aG9zZSBtb2RpZmllZCBkcml2ZXJzIGlzIGNydWNpYWwuXG5cbk5vdywgbGV0IG1lIG1ha2Ugc3VyZSBhbGwgZGVwZW5kZW5jaWVzIGFyZSBoYW5kbGVkLiBJJ20gbGlzdGluZyBgQVRBX0dFTkVSSUNgLCBgSVBBQ0tfQlVTYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgIHRvIHRoZSBjb25maWd1cmF0aW9uLiBgQVRBYCBtaWdodCBiZSBuZWVkZWQgZm9yIGBBVEFfR0VORVJJQ2AgYW5kIGl0IGlzIGEgbWVudWNvbmZpZywgYXMgaXMgYElQQUNLX0JVU2AuIGBNTFhTV19DT1JFYCwgYE1MWFNXX1BDSWAgYW5kIGBTQ1NJX05TUDMyYCBhcmUgdHJpc3RhdGVzLlxuXG5XaXRoIGFsbFxuXG4iLCJJbnB1dFRva2VucyI6NTMxNjQsIk91dHB1dFRva2VucyI6MjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNjoxNC4wMDgxNTUxODdaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzg5MDcwMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUQV9HRU5FUklDXCIsXG4gICAgXCJJUEFDS19CVVNcIixcbiAgICBcIkJPQVJEX1RQQ0kyMDBcIixcbiAgICBcIk1MWFNXX0NPUkVcIixcbiAgICBcIk1MWFNXX1BDSVwiLFxuICAgIFwiU0NTSV9OU1AzMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ld19pZF9zdG9yZVwiLFxuICAgIFwiZG9fcGNpX2FkZF9keW5pZFwiLFxuICAgIFwicGNpX21hdGNoX2RldmljZVwiLFxuICAgIFwiX19wY2lfZGV2aWNlX3Byb2JlXCIsXG4gICAgXCJhdGFfZ2VuZXJpY19pbml0X29uZVwiLFxuICAgIFwidHBjaTIwMF9wY2lfcHJvYmVcIixcbiAgICBcIm1seHN3X3BjaV9wcm9iZVwiLFxuICAgIFwibnNwMzJfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBQQ0kgZGV2aWNlIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzIHdpdGggZHluYW1pYyBQQ0kgSURzLiBJdCBhbGxvY2F0ZXMgdGhlIG1hdGNoZWQgYHBjaV9kZXZpY2VfaWRgIG9uIHRoZSBzdGFjayBkdXJpbmcgcHJvYmUgYW5kIHVwZGF0ZXMgc2V2ZXJhbCBkcml2ZXJzIHRoYXQgcHJldmlvdXNseSBzYXZlZCB0aGlzIHBvaW50ZXIgdG8gcHJldmVudCBzdGFjayB1c2UtYWZ0ZXItZnJlZS4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIFBDSSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSAoYG5ld19pZF9zdG9yZWApLCB0aGUgUENJIG1hdGNoaW5nL3Byb2JpbmcgbG9naWMsIGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIG9mIHRoZSBtb2RpZmllZCBkcml2ZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUQV9HRU5FUklDXCIsXG4gICAgXCJJUEFDS19CVVNcIixcbiAgICBcIkJPQVJEX1RQQ0kyMDBcIixcbiAgICBcIk1MWFNXX0NPUkVcIixcbiAgICBcIk1MWFNXX1BDSVwiLFxuICAgIFwiU0NTSV9OU1AzMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ld19pZF9zdG9yZVwiLFxuICAgIFwiZG9fcGNpX2FkZF9keW5pZFwiLFxuICAgIFwicGNpX21hdGNoX2RldmljZVwiLFxuICAgIFwiX19wY2lfZGV2aWNlX3Byb2JlXCIsXG4gICAgXCJhdGFfZ2VuZXJpY19pbml0X29uZVwiLFxuICAgIFwidHBjaTIwMF9wY2lfcHJvYmVcIixcbiAgICBcIm1seHN3X3BjaV9wcm9iZVwiLFxuICAgIFwibnNwMzJfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBQQ0kgZGV2aWNlIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzIHdpdGggZHluYW1pYyBQQ0kgSURzLiBJdCBhbGxvY2F0ZXMgdGhlIG1hdGNoZWQgYHBjaV9kZXZpY2VfaWRgIG9uIHRoZSBzdGFjayBkdXJpbmcgcHJvYmUgYW5kIHVwZGF0ZXMgc2V2ZXJhbCBkcml2ZXJzIHRoYXQgcHJldmlvdXNseSBzYXZlZCB0aGlzIHBvaW50ZXIgdG8gcHJldmVudCBzdGFjayB1c2UtYWZ0ZXItZnJlZS4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIFBDSSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSAoYG5ld19pZF9zdG9yZWApLCB0aGUgUENJIG1hdGNoaW5nL3Byb2JpbmcgbG9naWMsIGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIG9mIHRoZSBtb2RpZmllZCBkcml2ZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 16:14:42 +0000 UTC FinishedAt: 2026-06-30 16:26:15 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATA_GENERIC", "IPACK_BUS", "BOARD_TPCI200", "MLXSW_CORE", "MLXSW_PCI", "SCSI_NSP32" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "ATA_GENERIC", "IPACK_BUS", "BOARD_TPCI200", "MLXSW_CORE", "MLXSW_PCI", "SCSI_NSP32" ], "series_id": "b51dbecc-2814-4cc3-a001-55d71d0cb75d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "new_id_store", "do_pci_add_dynid", "pci_match_device", "__pci_device_probe", "ata_generic_init_one", "tpci200_pci_probe", "mlxsw_pci_probe", "nsp32_probe" ], "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+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0FUQV9HRU5FUklDJiMzNDssCiAgICAmIzM0O0lQQUNLX0JVUyYjMzQ7LAogICAgJiMzNDtCT0FSRF9UUENJMjAwJiMzNDssCiAgICAmIzM0O01MWFNXX0NPUkUmIzM0OywKICAgICYjMzQ7TUxYU1dfUENJJiMzNDssCiAgICAmIzM0O1NDU0lfTlNQMzImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZXdfaWRfc3RvcmUmIzM0OywKICAgICYjMzQ7ZG9fcGNpX2FkZF9keW5pZCYjMzQ7LAogICAgJiMzNDtwY2lfbWF0Y2hfZGV2aWNlJiMzNDssCiAgICAmIzM0O19fcGNpX2RldmljZV9wcm9iZSYjMzQ7LAogICAgJiMzNDthdGFfZ2VuZXJpY19pbml0X29uZSYjMzQ7LAogICAgJiMzNDt0cGNpMjAwX3BjaV9wcm9iZSYjMzQ7LAogICAgJiMzNDttbHhzd19wY2lfcHJvYmUmIzM0OywKICAgICYjMzQ7bnNwMzJfcHJvYmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgUENJIGRldmljZSBtYXRjaGluZyBhbmQgcHJvYmluZyBsb2dpYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcyB3aXRoIGR5bmFtaWMgUENJIElEcy4gSXQgYWxsb2NhdGVzIHRoZSBtYXRjaGVkIGBwY2lfZGV2aWNlX2lkYCBvbiB0aGUgc3RhY2sgZHVyaW5nIHByb2JlIGFuZCB1cGRhdGVzIHNldmVyYWwgZHJpdmVycyB0aGF0IHByZXZpb3VzbHkgc2F2ZWQgdGhpcyBwb2ludGVyIHRvIHByZXZlbnQgc3RhY2sgdXNlLWFmdGVyLWZyZWUuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBQQ0kgZHluYW1pYyBJRCBzeXNmcyBpbnRlcmZhY2UgKGBuZXdfaWRfc3RvcmVgKSwgdGhlIFBDSSBtYXRjaGluZy9wcm9iaW5nIGxvZ2ljLCBhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBvZiB0aGUgbW9kaWZpZWQgZHJpdmVycy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA5MTJkMDM1YjEyM2Q4YjIwYjE2ZDhhYmNkMTk5MWMwMWJiYTlkNjZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAxNjoyMzoyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuaW5kZXggZTcwYjZjMDg5Y2YxNzkuLjE4ZWE3NDBjYTU4MjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuQEAgLTUxLDExICYjNDM7NTEsMTEgQEAgZW51bSB7XG4gc3RhdGljIGludCBnZW5lcmljX3NldF9tb2RlKHN0cnVjdCBhdGFfbGluayAqbGluaywgc3RydWN0IGF0YV9kZXZpY2UgKip1bnVzZWQpXG4ge1xuIFx0c3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstXHUwMDNlYXA7XG4tXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBhcC1cdTAwM2Vob3N0LVx1MDAzZXByaXZhdGVfZGF0YTtcbiYjNDM7XHR1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhID0gKHVuc2lnbmVkIGxvbmcpYXAtXHUwMDNlaG9zdC1cdTAwM2Vwcml2YXRlX2RhdGE7XG4gXHRpbnQgZG1hX2VuYWJsZWQgPSAwO1xuIFx0c3RydWN0IGF0YV9kZXZpY2UgKmRldjtcbiBcbi1cdGlmIChpZC1cdTAwM2Vkcml2ZXJfZGF0YSBcdTAwMjYgQVRBX0dFTl9GT1JDRV9ETUEpIHtcbiYjNDM7XHRpZiAoZHJpdmVyX2RhdGEgXHUwMDI2IEFUQV9HRU5fRk9SQ0VfRE1BKSB7XG4gXHRcdGRtYV9lbmFibGVkID0gMHhmZjtcbiBcdH0gZWxzZSBpZiAoYXAtXHUwMDNlaW9hZGRyLmJtZG1hX2FkZHIpIHtcbiBcdFx0LyogQml0cyA1IGFuZCA2IGluZGljYXRlIGlmIERNQSBpcyBhY3RpdmUgb24gbWFzdGVyL3NsYXZlICovXG5AQCAtMjA2LDcgJiM0MzsyMDYsNyBAQCBzdGF0aWMgaW50IGF0YV9nZW5lcmljX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkXG4gXHRcdFx0cmV0dXJuIHJjO1xuIFx0XHRwY2ltX3Bpbl9kZXZpY2UoZGV2KTtcbiBcdH1cbi1cdHJldHVybiBhdGFfcGNpX2JtZG1hX2luaXRfb25lKGRldiwgcHBpLCBcdTAwMjZnZW5lcmljX3NodCwgKHZvaWQgKilpZCwgMCk7XG4mIzQzO1x0cmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksIFx1MDAyNmdlbmVyaWNfc2h0LCAodm9pZCAqKWlkLVx1MDAzZWRyaXZlcl9kYXRhLCAwKTtcbiB9XG4gXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGF0YV9nZW5lcmljW10gPSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xuaW5kZXggMDVkY2I2Njc1Y2Q2NjEuLjFjZjUxZjc2MzI5MzJiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jXG5AQCAtNTYyLDcgJiM0Mzs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuIFxuIFx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXG4gXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiA9IHBkZXY7XG4tXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaWRfdGFibGUgPSAoc3RydWN0IHBjaV9kZXZpY2VfaWQgKilpZDtcbiBcbiBcdC8qIHJlZ2lzdGVyIHRoZSBkZXZpY2UgYW5kIGluaXRpYWxpemUgaXQgKi9cbiBcdHJldCA9IHRwY2kyMDBfaW5zdGFsbCh0cGNpMjAwKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaCBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oXG5pbmRleCBlNzlhYzY0YWJjZmZhYy4uYTJiZjMxMjU3OTRiN2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcbkBAIC0xNDUsNyAmIzQzOzE0NSw2IEBAIHN0cnVjdCB0cGNpMjAwX3Nsb3Qge1xuICAqL1xuIHN0cnVjdCB0cGNpMjAwX2luZm9zIHtcbiBcdHN0cnVjdCBwY2lfZGV2XHRcdFx0KnBkZXY7XG4tXHRzdHJ1Y3QgcGNpX2RldmljZV9pZFx0XHQqaWRfdGFibGU7XG4gXHRzdHJ1Y3QgdHBjaTIwMF9yZWdzIF9faW9tZW1cdCppbnRlcmZhY2VfcmVncztcbiBcdHZvaWQgX19pb21lbVx0XHRcdCpjZmdfcmVncztcbiBcdHN0cnVjdCBpcGFja19idXNfZGV2aWNlXHRcdCppcGFja19idXM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuY1xuaW5kZXggMGRhODVkMzY2NDdkOTEuLmJmZTMyNjhkZmRjMTdkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXG5AQCAtMTMwLDcgJiM0MzsxMzAsNiBAQCBzdHJ1Y3QgbWx4c3dfcGNpIHtcbiBcdFx0fSBjb21wO1xuIFx0fSBjbWQ7XG4gXHRzdHJ1Y3QgbWx4c3dfYnVzX2luZm8gYnVzX2luZm87XG4tXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQ7XG4gXHRlbnVtIG1seHN3X3BjaV9jcWVfdiBtYXhfY3FlX3ZlcjsgLyogTWF4aW1hbCBzdXBwb3J0ZWQgQ1FFIHZlcnNpb24gKi9cbiBcdHU4IG51bV9jcXM7IC8qIE51bWJlciBvZiBDUXMgKi9cbiBcdHU4IG51bV9zZHFzOyAvKiBOdW1iZXIgb2YgU0RRcyAqL1xuQEAgLTE3NjgsNyAmIzQzOzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBtbHhzd19wY2lfbWJveF9mcmVlKHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSxcbiB9XG4gXG4gc3RhdGljIGludCBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLFxuLVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCxcbiBcdFx0XHRcdCAgICB1MzIgKnBfc3lzX3N0YXR1cylcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGVuZDtcbkBAIC0xODM5LDcgJiM0MzsxODM3LDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcmVzZXRfc3coc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpKVxuIH1cbiBcbiBzdGF0aWMgaW50XG4tbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuJiM0MzttbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpKVxuIHtcbiBcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gbWx4c3dfcGNpLVx1MDAzZXBkZXY7XG4gXHRib29sIHBjaV9yZXNldF9zYnJfc3VwcG9ydGVkID0gZmFsc2U7XG5AQCAtMTg0OCw3ICYjNDM7MTg0Niw3IEBAIG1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdHUzMiBzeXNfc3RhdHVzO1xuIFx0aW50IGVycjtcbiBcbi1cdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIGlkLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiYjNDM7XHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYmVmb3JlIHJlc2V0LiBTdGF0dXMgaXMgMHgleFxcblwmIzM0OyxcbiBcdFx0XHRzeXNfc3RhdHVzKTtcbkBAIC0xODgwLDcgJiM0MzsxODc4LDcgQEAgbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuIFx0aWYgKGVycilcbiBcdFx0cmV0dXJuIGVycjtcbiBcbi1cdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIGlkLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiYjNDM7XHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBcdTAwMjZzeXNfc3RhdHVzKTtcbiBcdGlmIChlcnIpIHtcbiBcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XFxuXCYjMzQ7LFxuIFx0XHRcdHN5c19zdGF0dXMpO1xuQEAgLTE5MzIsNyAmIzQzOzE5MzAsNyBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9pbml0KHZvaWQgKmJ1c19wcml2LCBzdHJ1Y3QgbWx4c3dfY29yZSAqbWx4c3dfY29yZSxcbiBcdGlmICghbWJveClcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRlcnIgPSBtbHhzd19wY2lfcmVzZXQobWx4c3dfcGNpLCBtbHhzd19wY2ktXHUwMDNlaWQpO1xuJiM0MztcdGVyciA9IG1seHN3X3BjaV9yZXNldChtbHhzd19wY2kpO1xuIFx0aWYgKGVycilcbiBcdFx0Z290byBlcnJfcmVzZXQ7XG4gXG5AQCAtMjQ2NCw3ICYjNDM7MjQ2Miw2IEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4gXHRtbHhzd19wY2ktXHUwMDNlYnVzX2luZm8uZGV2aWNlX25hbWUgPSBwY2lfbmFtZShtbHhzd19wY2ktXHUwMDNlcGRldik7XG4gXHRtbHhzd19wY2ktXHUwMDNlYnVzX2luZm8uZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4gXHRtbHhzd19wY2ktXHUwMDNlYnVzX2luZm8ucmVhZF9jbG9ja19jYXBhYmxlID0gdHJ1ZTtcbi1cdG1seHN3X3BjaS1cdTAwM2VpZCA9IGlkO1xuIFxuIFx0ZXJyID0gbWx4c3dfY29yZV9idXNfZGV2aWNlX3JlZ2lzdGVyKFx1MDAyNm1seHN3X3BjaS1cdTAwM2VidXNfaW5mbyxcbiBcdFx0XHRcdFx0ICAgICBcdTAwMjZtbHhzd19wY2lfYnVzLCBtbHhzd19wY2ksIGZhbHNlLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY1xuaW5kZXggZjM2Nzc4ZTYyYWMxYTUuLmZhZDAyOGI5ZGM1M2VjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcbkBAIC0yOSw2ICYjNDM7MjksNDggQEAgc3RydWN0IHBjaV9keW5pZCB7XG4gXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDtcbiB9O1xuIFxuJiM0MzsvKipcbiYjNDM7ICogZG9fcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzXG4mIzQzOyAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyXG4mIzQzOyAqIEBpZDogSUQgdG8gYmUgYWRkZWRcbiYjNDM7ICogQGNoZWNrX2R1cDogd2hldGhlciB0byBjaGVjayBpZiBtYXRjaGluZyBJRCBpcyBhbHJlYWR5IHByZXNlbnRcbiYjNDM7ICpcbiYjNDM7ICogQWRkcyBhIG5ldyBkeW5hbWljIHBjaSBkZXZpY2UgSUQgdG8gdGhpcyBkcml2ZXIgYW5kIGNhdXNlcyB0aGVcbiYjNDM7ICogZHJpdmVyIHRvIHByb2JlIGZvciBhbGwgZGV2aWNlcyBhZ2Fpbi4gIEBkcnYgbXVzdCBoYXZlIGJlZW5cbiYjNDM7ICogcmVnaXN0ZXJlZCBwcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXG4mIzQzOyAqXG4mIzQzOyAqIENPTlRFWFQ6XG4mIzQzOyAqIERvZXMgR0ZQX0tFUk5FTCBhbGxvY2F0aW9uLlxuJiM0MzsgKlxuJiM0MzsgKiBSRVRVUk5TOlxuJiM0MzsgKiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIGludCBkb19wY2lfYWRkX2R5bmlkKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCwgYm9vbCBjaGVja19kdXApXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZCwgKmV4aXN0aW5nX2R5bmlkO1xuJiM0MztcbiYjNDM7XHRkeW5pZCA9IGt6YWxsb2Nfb2JqKCpkeW5pZCk7XG4mIzQzO1x0aWYgKCFkeW5pZClcbiYjNDM7XHRcdHJldHVybiAtRU5PTUVNO1xuJiM0MztcbiYjNDM7XHRkeW5pZC1cdTAwM2VpZCA9ICppZDtcbiYjNDM7XG4mIzQzO1x0e1xuJiM0MztcdFx0Z3VhcmQoc3BpbmxvY2spKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4mIzQzO1x0XHRpZiAoY2hlY2tfZHVwKSB7XG4mIzQzO1x0XHRcdGxpc3RfZm9yX2VhY2hfZW50cnkoZXhpc3RpbmdfZHluaWQsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCwgbm9kZSkge1xuJiM0MztcdFx0XHRcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFx1MDAyNmV4aXN0aW5nX2R5bmlkLVx1MDAzZWlkLCBpZCkpIHtcbiYjNDM7XHRcdFx0XHRcdGtmcmVlKGR5bmlkKTtcbiYjNDM7XHRcdFx0XHRcdHJldHVybiAtRUVYSVNUO1xuJiM0MztcdFx0XHRcdH1cbiYjNDM7XHRcdFx0fVxuJiM0MztcdFx0fVxuJiM0MztcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZkeW5pZC1cdTAwM2Vub2RlLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QpO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4mIzQzO31cbiYjNDM7XG4gLyoqXG4gICogcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzXG4gICogQGRydjogdGFyZ2V0IHBjaSBkcml2ZXJcbkBAIC01NiwyNSAmIzQzOzk4LDE3IEBAIGludCBwY2lfYWRkX2R5bmlkKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4gXHRcdCAgdW5zaWduZWQgaW50IGNsYXNzLCB1bnNpZ25lZCBpbnQgY2xhc3NfbWFzayxcbiBcdFx0ICB1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhKVxuIHtcbi1cdHN0cnVjdCBwY2lfZHluaWQgKmR5bmlkO1xuLVxuLVx0ZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpO1xuLVx0aWYgKCFkeW5pZClcbi1cdFx0cmV0dXJuIC1FTk9NRU07XG4tXG4tXHRkeW5pZC1cdTAwM2VpZC52ZW5kb3IgPSB2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5kZXZpY2UgPSBkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJkZXZpY2UgPSBzdWJkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5jbGFzcyA9IGNsYXNzO1xuLVx0ZHluaWQtXHUwMDNlaWQuY2xhc3NfbWFzayA9IGNsYXNzX21hc2s7XG4tXHRkeW5pZC1cdTAwM2VpZC5kcml2ZXJfZGF0YSA9IGRyaXZlcl9kYXRhO1xuLVxuLVx0c3Bpbl9sb2NrKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4tXHRsaXN0X2FkZF90YWlsKFx1MDAyNmR5bmlkLVx1MDAzZW5vZGUsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCk7XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4mIzQzO1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XG4mIzQzO1x0XHQudmVuZG9yID0gdmVuZG9yLFxuJiM0MztcdFx0LmRldmljZSA9IGRldmljZSxcbiYjNDM7XHRcdC5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3IsXG4mIzQzO1x0XHQuc3ViZGV2aWNlID0gc3ViZGV2aWNlLFxuJiM0MztcdFx0LmNsYXNzID0gY2xhc3MsXG4mIzQzO1x0XHQuY2xhc3NfbWFzayA9IGNsYXNzX21hc2ssXG4mIzQzO1x0XHQuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YSxcbiYjNDM7XHR9O1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gZG9fcGNpX2FkZF9keW5pZChkcnYsIFx1MDAyNmlkLCBmYWxzZSk7XG4gfVxuIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV9hZGRfZHluaWQpO1xuIFxuQEAgLTkwLDYgJiM0MzsxMjQsMjkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXG4gXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuIH1cbiBcbiYjNDM7LyoqXG4mIzQzOyAqIGRvX3BjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBJRCBtYXRjaGVzIGEgZ2l2ZW4gcGNpX2lkIHRhYmxlXG4mIzQzOyAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cbiYjNDM7ICogQGRldl9pZDogdGhlIGFjdHVhbCBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0LlxuJiM0MzsgKlxuJiM0MzsgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvclxuJiM0MzsgKiAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbiYjNDM7ICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZG9fcGNpX21hdGNoX2lkKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMsXG4mIzQzO1x0XHRcdFx0XHRcdCAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQsXG4mIzQzO1x0XHRcdFx0XHRcdCAgIGJvb2wgbWF0Y2hfb3ZlcnJpZGVfb25seSlcbiYjNDM7e1xuJiM0MztcdGlmIChpZHMpIHtcbiYjNDM7XHRcdHdoaWxlIChpZHMtXHUwMDNldmVuZG9yIHx8IGlkcy1cdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVx1MDAzZWNsYXNzX21hc2spIHtcbiYjNDM7XHRcdFx0aWYgKCghaWRzLVx1MDAzZW92ZXJyaWRlX29ubHkgfHwgbWF0Y2hfb3ZlcnJpZGVfb25seSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0XHRcdCAgICBwY2lfbWF0Y2hfb25lX2lkKGlkcywgZGV2X2lkKSlcbiYjNDM7XHRcdFx0XHRyZXR1cm4gaWRzO1xuJiM0MztcdFx0XHRpZHMmIzQzOyYjNDM7O1xuJiM0MztcdFx0fVxuJiM0MztcdH1cbiYjNDM7XHRyZXR1cm4gTlVMTDtcbiYjNDM7fVxuJiM0MztcbiAvKipcbiAgKiBwY2lfbWF0Y2hfaWQgLSBTZWUgaWYgYSBQQ0kgZGV2aWNlIG1hdGNoZXMgYSBnaXZlbiBwY2lfaWQgdGFibGVcbiAgKiBAaWRzOiBhcnJheSBvZiBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZXMgdG8gc2VhcmNoIGluXG5AQCAtMTA1LDE0ICYjNDM7MTYyLDkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXG4gY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzLFxuIFx0XHRcdFx0XHQgc3RydWN0IHBjaV9kZXYgKmRldilcbiB7XG4tXHRpZiAoaWRzKSB7XG4tXHRcdHdoaWxlIChpZHMtXHUwMDNldmVuZG9yIHx8IGlkcy1cdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVx1MDAzZWNsYXNzX21hc2spIHtcbi1cdFx0XHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoaWRzLCBkZXYpKVxuLVx0XHRcdFx0cmV0dXJuIGlkcztcbi1cdFx0XHRpZHMmIzQzOyYjNDM7O1xuLVx0XHR9XG4tXHR9XG4tXHRyZXR1cm4gTlVMTDtcbiYjNDM7XHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBkZXZfaWQgPSBwY2lfaWRfZnJvbV9kZXZpY2UoZGV2KTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGRvX3BjaV9tYXRjaF9pZChpZHMsIFx1MDAyNmRldl9pZCwgdHJ1ZSk7XG4gfVxuIEVYUE9SVF9TWU1CT0wocGNpX21hdGNoX2lkKTtcbiBcbkBAIC0xMjcsNjEgJiM0MzsxNzksNTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaV9kZXZpY2VfaWRfYW55ID0ge1xuICAqIHBjaV9tYXRjaF9kZXZpY2UgLSBTZWUgaWYgYSBkZXZpY2UgbWF0Y2hlcyBhIGRyaXZlciYjMzk7cyBsaXN0IG9mIElEc1xuICAqIEBkcnY6IHRoZSBQQ0kgZHJpdmVyIHRvIG1hdGNoIGFnYWluc3RcbiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxuJiM0MzsgKiBAaWQ6IE1hdGNoZWQgcGNpX2RldmljZV9pZFxuICAqXG4gICogVXNlZCBieSBhIGRyaXZlciB0byBjaGVjayB3aGV0aGVyIGEgUENJIGRldmljZSBpcyBpbiBpdHMgbGlzdCBvZlxuICAqIHN1cHBvcnRlZCBkZXZpY2VzIG9yIGluIHRoZSBkeW5pZHMgbGlzdCwgd2hpY2ggbWF5IGhhdmUgYmVlbiBhdWdtZW50ZWRcbi0gKiB2aWEgdGhlIHN5c2ZzIFwmIzM0O25ld19pZFwmIzM0OyBmaWxlLiAgUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZFxuLSAqIHN0cnVjdHVyZSBvciAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbiYjNDM7ICogdmlhIHRoZSBzeXNmcyBcJiMzNDtuZXdfaWRcJiMzNDsgZmlsZS4gIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIG1hdGNoLCB0aGUgbWF0Y2hlZFxuJiM0MzsgKiBJRCBpcyBzdG9yZWQgaW4gQGlkLlxuICAqL1xuLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqcGNpX21hdGNoX2RldmljZShzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LFxuLVx0XHRcdFx0XHRcdCAgICBzdHJ1Y3QgcGNpX2RldiAqZGV2KVxuJiM0MztzdGF0aWMgYm9vbCBwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4mIzQzO1x0XHRcdCAgICAgc3RydWN0IHBjaV9kZXYgKmRldixcbiYjNDM7XHRcdFx0ICAgICBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4ge1xuIFx0c3RydWN0IHBjaV9keW5pZCAqZHluaWQ7XG4tXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZm91bmRfaWQgPSBOVUxMLCAqaWRzO1xuJiM0MztcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEw7XG4mIzQzO1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkO1xuIFx0aW50IHJldDtcbiBcbiBcdC8qIFdoZW4gZHJpdmVyX292ZXJyaWRlIGlzIHNldCwgb25seSBiaW5kIHRvIHRoZSBtYXRjaGluZyBkcml2ZXIgKi9cbiBcdHJldCA9IGRldmljZV9tYXRjaF9kcml2ZXJfb3ZlcnJpZGUoXHUwMDI2ZGV2LVx1MDAzZWRldiwgXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4gXHRpZiAocmV0ID09IDApXG4tXHRcdHJldHVybiBOVUxMO1xuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuIFxuJiM0MztcdGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpO1xuIFx0LyogTG9vayBhdCB0aGUgZHluYW1pYyBpZHMgZmlyc3QsIGJlZm9yZSB0aGUgc3RhdGljIG9uZXMgKi9cbi1cdHNwaW5fbG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVx0bGlzdF9mb3JfZWFjaF9lbnRyeShkeW5pZCwgXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XG4tXHRcdGlmIChwY2lfbWF0Y2hfb25lX2RldmljZShcdTAwMjZkeW5pZC1cdTAwM2VpZCwgZGV2KSkge1xuLVx0XHRcdGZvdW5kX2lkID0gXHUwMDI2ZHluaWQtXHUwMDNlaWQ7XG4tXHRcdFx0YnJlYWs7XG4mIzQzO1x0e1xuJiM0MztcdFx0Z3VhcmQoc3BpbmxvY2spKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4mIzQzO1x0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGR5bmlkLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QsIG5vZGUpIHtcbiYjNDM7XHRcdFx0aWYgKHBjaV9tYXRjaF9vbmVfaWQoXHUwMDI2ZHluaWQtXHUwMDNlaWQsIFx1MDAyNmRldl9pZCkpIHtcbiYjNDM7XHRcdFx0XHQqaWQgPSBkeW5pZC1cdTAwM2VpZDtcbiYjNDM7XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcbiYjNDM7XHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0aWYgKGZvdW5kX2lkKVxuLVx0XHRyZXR1cm4gZm91bmRfaWQ7XG4gXG4tXHRmb3IgKGlkcyA9IGRydi1cdTAwM2VpZF90YWJsZTsgKGZvdW5kX2lkID0gcGNpX21hdGNoX2lkKGlkcywgZGV2KSk7XG4tXHQgICAgIGlkcyA9IGZvdW5kX2lkICYjNDM7IDEpIHtcbi1cdFx0Lypcbi1cdFx0ICogVGhlIG1hdGNoIHRhYmxlIGlzIHNwbGl0IGJhc2VkIG9uIGRyaXZlcl9vdmVycmlkZS5cbi1cdFx0ICogSW4gY2FzZSBvdmVycmlkZV9vbmx5IHdhcyBzZXQsIGVuZm9yY2UgZHJpdmVyX292ZXJyaWRlXG4tXHRcdCAqIG1hdGNoaW5nLlxuLVx0XHQgKi9cbi1cdFx0aWYgKGZvdW5kX2lkLVx1MDAzZW92ZXJyaWRlX29ubHkpIHtcbi1cdFx0XHRpZiAocmV0IFx1MDAzZSAwKVxuLVx0XHRcdFx0cmV0dXJuIGZvdW5kX2lkO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdHJldHVybiBmb3VuZF9pZDtcbi1cdFx0fVxuJiM0MztcdGZvdW5kX2lkID0gZG9fcGNpX21hdGNoX2lkKGRydi1cdTAwM2VpZF90YWJsZSwgXHUwMDI2ZGV2X2lkLCByZXQgXHUwMDNlIDApO1xuJiM0MztcdGlmIChmb3VuZF9pZCkge1xuJiM0MztcdFx0KmlkID0gKmZvdW5kX2lkO1xuJiM0MztcdFx0cmV0dXJuIHRydWU7XG4gXHR9XG4gXG4gXHQvKiBkcml2ZXJfb3ZlcnJpZGUgd2lsbCBhbHdheXMgbWF0Y2gsIHNlbmQgYSBkdW1teSBpZCAqL1xuLVx0aWYgKHJldCBcdTAwM2UgMClcbi1cdFx0cmV0dXJuIFx1MDAyNnBjaV9kZXZpY2VfaWRfYW55O1xuLVx0cmV0dXJuIE5VTEw7XG4tfVxuJiM0MztcdGlmIChyZXQgXHUwMDNlIDApIHtcbiYjNDM7XHRcdCppZCA9IHBjaV9kZXZpY2VfaWRfYW55O1xuJiM0MztcdFx0cmV0dXJuIHRydWU7XG4mIzQzO1x0fVxuIFxuLXN0YXRpYyB2b2lkIF9wY2lfZnJlZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KVxuLXtcbi1cdGtmcmVlKHRvX3BjaV9kZXYoZGV2KSk7XG4mIzQzO1x0cmV0dXJuIGZhbHNlO1xuIH1cbiBcbiAvKipcbkBAIC0xOTcsMzggJiM0MzsyNDAsMjIgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RyaXZlciAqcGRydiA9IHRvX3BjaV9kcml2ZXIoZHJpdmVyKTtcbiBcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMgPSBwZHJ2LVx1MDAzZWlkX3RhYmxlO1xuLVx0dTMyIHZlbmRvciwgZGV2aWNlLCBzdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxuLVx0XHRzdWJkZXZpY2UgPSBQQ0lfQU5ZX0lELCBjbGFzcyA9IDAsIGNsYXNzX21hc2sgPSAwO1xuLVx0dW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSA9IDA7XG4mIzQzO1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XG4mIzQzO1x0XHQuc3VidmVuZG9yID0gUENJX0FOWV9JRCxcbiYjNDM7XHRcdC5zdWJkZXZpY2UgPSBQQ0lfQU5ZX0lEXG4mIzQzO1x0fTtcbiBcdGludCBmaWVsZHM7XG4gXHRpbnQgcmV0dmFsID0gMDtcbiBcbiBcdGZpZWxkcyA9IHNzY2FuZihidWYsIFwmIzM0OyV4ICV4ICV4ICV4ICV4ICV4ICVseFwmIzM0Oyxcbi1cdFx0XHRcdTAwMjZ2ZW5kb3IsIFx1MDAyNmRldmljZSwgXHUwMDI2c3VidmVuZG9yLCBcdTAwMjZzdWJkZXZpY2UsXG4tXHRcdFx0XHUwMDI2Y2xhc3MsIFx1MDAyNmNsYXNzX21hc2ssIFx1MDAyNmRyaXZlcl9kYXRhKTtcbiYjNDM7XHRcdFx0XHUwMDI2aWQudmVuZG9yLCBcdTAwMjZpZC5kZXZpY2UsIFx1MDAyNmlkLnN1YnZlbmRvciwgXHUwMDI2aWQuc3ViZGV2aWNlLFxuJiM0MztcdFx0XHRcdTAwMjZpZC5jbGFzcywgXHUwMDI2aWQuY2xhc3NfbWFzaywgXHUwMDI2aWQuZHJpdmVyX2RhdGEpO1xuIFx0aWYgKGZpZWxkcyBcdTAwM2MgMilcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRpZiAoZmllbGRzICE9IDcpIHtcbi1cdFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSBremFsbG9jX29iaigqcGRldik7XG4tXHRcdGlmICghcGRldilcbi1cdFx0XHRyZXR1cm4gLUVOT01FTTtcbi1cbi1cdFx0cGRldi1cdTAwM2V2ZW5kb3IgPSB2ZW5kb3I7XG4tXHRcdHBkZXYtXHUwMDNlZGV2aWNlID0gZGV2aWNlO1xuLVx0XHRwZGV2LVx1MDAzZXN1YnN5c3RlbV92ZW5kb3IgPSBzdWJ2ZW5kb3I7XG4tXHRcdHBkZXYtXHUwMDNlc3Vic3lzdGVtX2RldmljZSA9IHN1YmRldmljZTtcbi1cdFx0cGRldi1cdTAwM2VjbGFzcyA9IGNsYXNzO1xuLVx0XHRwZGV2LVx1MDAzZWRldi5yZWxlYXNlID0gX3BjaV9mcmVlX2RldmljZTtcbi1cbi1cdFx0ZGV2aWNlX2luaXRpYWxpemUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuLVx0XHRpZiAocGNpX21hdGNoX2RldmljZShwZHJ2LCBwZGV2KSlcbi1cdFx0XHRyZXR2YWwgPSAtRUVYSVNUO1xuLVxuLVx0XHRwdXRfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbi1cbi1cdFx0aWYgKHJldHZhbClcbi1cdFx0XHRyZXR1cm4gcmV0dmFsO1xuJiM0MztcdFx0aWYgKGRvX3BjaV9tYXRjaF9pZChwZHJ2LVx1MDAzZWlkX3RhYmxlLCBcdTAwMjZpZCwgZmFsc2UpKVxuJiM0MztcdFx0XHRyZXR1cm4gLUVFWElTVDtcbiBcdH1cbiBcbiBcdC8qIE9ubHkgYWNjZXB0IGRyaXZlcl9kYXRhIHZhbHVlcyB0aGF0IG1hdGNoIGFuIGV4aXN0aW5nIGlkX3RhYmxlXG5AQCAtMjM2LDcgJiM0MzsyNjMsNyBAQCBzdGF0aWMgc3NpemVfdCBuZXdfaWRfc3RvcmUoc3RydWN0IGRldmljZV9kcml2ZXIgKmRyaXZlciwgY29uc3QgY2hhciAqYnVmLFxuIFx0aWYgKGlkcykge1xuIFx0XHRyZXR2YWwgPSAtRUlOVkFMO1xuIFx0XHR3aGlsZSAoaWRzLVx1MDAzZXZlbmRvciB8fCBpZHMtXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cdTAwM2VjbGFzc19tYXNrKSB7XG4tXHRcdFx0aWYgKGRyaXZlcl9kYXRhID09IGlkcy1cdTAwM2Vkcml2ZXJfZGF0YSkge1xuJiM0MztcdFx0XHRpZiAoaWQuZHJpdmVyX2RhdGEgPT0gaWRzLVx1MDAzZWRyaXZlcl9kYXRhKSB7XG4gXHRcdFx0XHRyZXR2YWwgPSAwO1xuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdFx0fVxuQEAgLTI0Niw4ICYjNDM7MjczLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcbiBcdFx0XHRyZXR1cm4gcmV0dmFsO1xuIFx0fVxuIFxuLVx0cmV0dmFsID0gcGNpX2FkZF9keW5pZChwZHJ2LCB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yLCBzdWJkZXZpY2UsXG4tXHRcdFx0ICAgICAgIGNsYXNzLCBjbGFzc19tYXNrLCBkcml2ZXJfZGF0YSk7XG4mIzQzO1x0cmV0dmFsID0gZG9fcGNpX2FkZF9keW5pZChwZHJ2LCBcdTAwMjZpZCwgZmllbGRzICE9IDcpO1xuIFx0aWYgKHJldHZhbClcbiBcdFx0cmV0dXJuIHJldHZhbDtcbiBcdHJldHVybiBjb3VudDtcbkBAIC00NDQsMTUgJiM0Mzs0NzAsMTQgQEAgdm9pZCBwY2lfcHJvYmVfZmx1c2hfd29ya3F1ZXVlKHZvaWQpXG4gICovXG4gc3RhdGljIGludCBfX3BjaV9kZXZpY2VfcHJvYmUoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpXG4ge1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xuIFx0aW50IGVycm9yID0gMDtcbiBcbiBcdGlmIChkcnYtXHUwMDNlcHJvYmUpIHtcbiBcdFx0ZXJyb3IgPSAtRU5PREVWO1xuIFxuLVx0XHRpZCA9IHBjaV9tYXRjaF9kZXZpY2UoZHJ2LCBwY2lfZGV2KTtcbi1cdFx0aWYgKGlkKVxuLVx0XHRcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBpZCk7XG4mIzQzO1x0XHRpZiAocGNpX21hdGNoX2RldmljZShkcnYsIHBjaV9kZXYsIFx1MDAyNmlkKSlcbiYjNDM7XHRcdFx0ZXJyb3IgPSBwY2lfY2FsbF9wcm9iZShkcnYsIHBjaV9kZXYsIFx1MDAyNmlkKTtcbiBcdH1cbiBcdHJldHVybiBlcnJvcjtcbiB9XG5AQCAtMTUzNywxNyAmIzQzOzE1NjIsMTMgQEAgc3RhdGljIGludCBwY2lfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldiA9IHRvX3BjaV9kZXYoZGV2KTtcbiBcdHN0cnVjdCBwY2lfZHJpdmVyICpwY2lfZHJ2O1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xuIFxuIFx0aWYgKHBjaV9kZXZfYmluZGluZ19kaXNhbGxvd2VkKHBjaV9kZXYpKVxuIFx0XHRyZXR1cm4gMDtcbiBcbiBcdHBjaV9kcnYgPSAoc3RydWN0IHBjaV9kcml2ZXIgKil0b19wY2lfZHJpdmVyKGRydik7XG4tXHRmb3VuZF9pZCA9IHBjaV9tYXRjaF9kZXZpY2UocGNpX2RydiwgcGNpX2Rldik7XG4tXHRpZiAoZm91bmRfaWQpXG4tXHRcdHJldHVybiAxO1xuLVxuLVx0cmV0dXJuIDA7XG4mIzQzO1x0cmV0dXJuIHBjaV9tYXRjaF9kZXZpY2UocGNpX2RydiwgcGNpX2RldiwgXHUwMDI2aWQpO1xuIH1cbiBcbiAvKipcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2kuaCBiL2RyaXZlcnMvcGNpL3BjaS5oXG5pbmRleCA0NDY5ZTFhNzdmM2MxMy4uMDU2N2E4NzYyYmFhMDggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS9wY2kuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9wY2kvcGNpLmhcbkBAIC00NDIsMjEgJiM0Mzs0NDIsMzcgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3NldHVwX2NhcmRidXMoY2hhciAqc3RyKSB7IHJldHVybiAtRU5PRU5UOyB9XG4gI2VuZGlmIC8qIENPTkZJR19DQVJEQlVTICovXG4gXG4gLyoqXG4tICogcGNpX21hdGNoX29uZV9kZXZpY2UgLSBUZWxsIGlmIGEgUENJIGRldmljZSBzdHJ1Y3R1cmUgaGFzIGEgbWF0Y2hpbmdcbi0gKlx0XHRcdCAgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmVcbi0gKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaFxuLSAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0XG4mIzQzOyAqIHBjaV9pZF9mcm9tX2RldmljZSAtIE9idGFpbiBhIHBjaV9kZXZpY2VfaWQgZnJvbSBhIFBDSSBkZXZpY2VcbiYjNDM7ICogQGRldjogdGhlIFBDSSBkZXZpY2VcbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJucyBhIHBjaV9kZXZpY2VfaWQgZmlsbGVkLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfaWRfZnJvbV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldilcbiYjNDM7e1xuJiM0MztcdHJldHVybiAoc3RydWN0IHBjaV9kZXZpY2VfaWQpIHtcbiYjNDM7XHRcdC52ZW5kb3IgPSBkZXYtXHUwMDNldmVuZG9yLFxuJiM0MztcdFx0LmRldmljZSA9IGRldi1cdTAwM2VkZXZpY2UsXG4mIzQzO1x0XHQuc3VidmVuZG9yID0gZGV2LVx1MDAzZXN1YnN5c3RlbV92ZW5kb3IsXG4mIzQzO1x0XHQuc3ViZGV2aWNlID0gZGV2LVx1MDAzZXN1YnN5c3RlbV9kZXZpY2UsXG4mIzQzO1x0XHQuY2xhc3MgPSBkZXYtXHUwMDNlY2xhc3MsXG4mIzQzO1x0fTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7LyoqXG4mIzQzOyAqIHBjaV9tYXRjaF9vbmVfaWQgLSBUZWxsIGlmIGEgUENJIGRldmljZSBJRCBtYXRjaGVzIGEgbmVlZGxlIFBDSSBkZXZpY2UgaWRcbiYjNDM7ICogQGlkOiBzaW5nbGUgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdCAobmVlZGxlKVxuJiM0MzsgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIElEIGZyb20gdGhlIFBDSSBkZXZpY2UgKGNhbiBiZSBjcmVhdGVkIHZpYSBwY2lfaWRfZnJvbV9kZXZpY2UpXG4gICpcbiAgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvciAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbiAgKi9cbiBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpcbi1wY2lfbWF0Y2hfb25lX2RldmljZShjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXG4mIzQzO3BjaV9tYXRjaF9vbmVfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZGV2X2lkKVxuIHtcbi1cdGlmICgoaWQtXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNldmVuZG9yID09IGRldi1cdTAwM2V2ZW5kb3IpIFx1MDAyNlx1MDAyNlxuLVx0ICAgIChpZC1cdTAwM2VkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC1cdTAwM2VkZXZpY2UgPT0gZGV2LVx1MDAzZWRldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX3ZlbmRvcikgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YmRldmljZSA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX2RldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgISgoaWQtXHUwMDNlY2xhc3MgXiBkZXYtXHUwMDNlY2xhc3MpIFx1MDAyNiBpZC1cdTAwM2VjbGFzc19tYXNrKSlcbiYjNDM7XHRpZiAoKGlkLVx1MDAzZXZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXZlbmRvciA9PSBkZXZfaWQtXHUwMDNldmVuZG9yKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgKGlkLVx1MDAzZWRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZWRldmljZSA9PSBkZXZfaWQtXHUwMDNlZGV2aWNlKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXZfaWQtXHUwMDNlc3VidmVuZG9yKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgKGlkLVx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YmRldmljZSA9PSBkZXZfaWQtXHUwMDNlc3ViZGV2aWNlKSBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgISgoaWQtXHUwMDNlY2xhc3MgXiBkZXZfaWQtXHUwMDNlY2xhc3MpIFx1MDAyNiBpZC1cdTAwM2VjbGFzc19tYXNrKSlcbiBcdFx0cmV0dXJuIGlkO1xuIFx0cmV0dXJuIE5VTEw7XG4gfVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jIGIvZHJpdmVycy9wY2kvc2VhcmNoLmNcbmluZGV4IGUzZDMxNzdmY2U1NDllLi5jOGM0YmZlNzgxN2IwMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BjaS9zZWFyY2guY1xuQEAgLTI0NSw4ICYjNDM7MjQ1LDEwIEBAIHN0YXRpYyBpbnQgbWF0Y2hfcGNpX2Rldl9ieV9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEpXG4ge1xuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7XG4gXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBkYXRhO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZDtcbiBcbi1cdGlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZCwgcGRldikpXG4mIzQzO1x0ZGV2X2lkID0gcGNpX2lkX2Zyb21fZGV2aWNlKHBkZXYpO1xuJiM0MztcdGlmIChwY2lfbWF0Y2hfb25lX2lkKGlkLCBcdTAwMjZkZXZfaWQpKVxuIFx0XHRyZXR1cm4gMTtcbiBcdHJldHVybiAwO1xuIH1cbkBAIC00MTgsNyAmIzQzOzQyMCw3IEBAIEVYUE9SVF9TWU1CT0wocGNpX2dldF9jbGFzcyk7XG4gICpcbiAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBsaXN0IG9mIGtub3duIFBDSSBkZXZpY2VzLiBJZiBhIFBDSSBkZXZpY2UgaXMgZm91bmRcbiAgKiB3aXRoIGEgbWF0Y2hpbmcgYmFzZSBjbGFzcyBjb2RlLCB0aGUgcmVmZXJlbmNlIGNvdW50IHRvIHRoZSBkZXZpY2UgaXNcbi0gKiBpbmNyZW1lbnRlZC4gU2VlIHBjaV9tYXRjaF9vbmVfZGV2aWNlKCkgdG8gZmlndXJlIG91dCBob3cgZG9lcyB0aGlzIHdvcmtzLlxuJiM0MzsgKiBpbmNyZW1lbnRlZC4gU2VlIHBjaV9tYXRjaF9vbmVfaWQoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuXG4gICogQSBuZXcgc2VhcmNoIGlzIGluaXRpYXRlZCBieSBwYXNzaW5nICVOVUxMIGFzIHRoZSBAZnJvbSBhcmd1bWVudC5cbiAgKiBPdGhlcndpc2UgaWYgQGZyb20gaXMgbm90ICVOVUxMLCBzZWFyY2hlcyBjb250aW51ZSBmcm9tIG5leHQgZGV2aWNlIG9uIHRoZVxuICAqIGdsb2JhbCBsaXN0LiBUaGUgcmVmZXJlbmNlIGNvdW50IGZvciBAZnJvbSBpcyBhbHdheXMgZGVjcmVtZW50ZWQgaWYgaXQgaXNcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jXG5pbmRleCBlODkzZDU2NzcyNDE3YS4uOWM5MjgxMjIyYTBhY2YgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvbnNwMzIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmNcbkBAIC0xNDcwLDcgJiM0MzsxNDcwLDcgQEAgc3RhdGljIGludCBuc3AzMl9zaG93X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KVxuIFx0XHQgICAobnNwMzJfcmVhZDIoYmFzZSwgSU5ERVhfUkVHKSBcdTAwM2VcdTAwM2UgOCkgXHUwMDI2IDB4ZmYpO1xuIFxuIFx0bW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpO1xuLVx0bW9kZWwgICAgPSBkYXRhLVx1MDAzZXBjaV9kZXZpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbiYjNDM7XHRtb2RlbCAgICA9IGRhdGEtXHUwMDNlbW9kZWw7XG4gXG4gI2lmZGVmIENPTkZJR19QTVxuIFx0c2VxX3ByaW50ZihtLCBcJiMzNDtQb3dlciBNYW5hZ2VtZW50OiAgICAgICVzXFxuXCYjMzQ7LFxuQEAgLTI5MDcsOCAmIzQzOzI5MDcsOCBAQCBzdGF0aWMgaW50IG5zcDMyX2VoX2hvc3RfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpXG4gICovXG4gc3RhdGljIGludCBuc3AzMl9nZXRwcm9tX3BhcmFtKG5zcDMyX2h3X2RhdGEgKmRhdGEpXG4ge1xuLVx0aW50IHZlbmRvciA9IGRhdGEtXHUwMDNlcGNpX2RldmlkLVx1MDAzZXZlbmRvcjtcbi1cdGludCBkZXZpY2UgPSBkYXRhLVx1MDAzZXBjaV9kZXZpZC1cdTAwM2VkZXZpY2U7XG4mIzQzO1x0aW50IHZlbmRvciA9IGRhdGEtXHUwMDNlUGNpLVx1MDAzZXZlbmRvcjtcbiYjNDM7XHRpbnQgZGV2aWNlID0gZGF0YS1cdTAwM2VQY2ktXHUwMDNlZGV2aWNlO1xuIFx0aW50IHJldCwgaTtcbiBcdGludCBfX21heWJlX3VudXNlZCB2YWw7XG4gXG5AQCAtMzM0MCw3ICYjNDM7MzM0MCw3IEBAIHN0YXRpYyBpbnQgbnNwMzJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdH1cbiBcbiBcdGRhdGEtXHUwMDNlUGNpXHQgID0gcGRldjtcbi1cdGRhdGEtXHUwMDNlcGNpX2RldmlkICAgPSBpZDtcbiYjNDM7XHRkYXRhLVx1MDAzZW1vZGVsICAgICAgID0gaWQtXHUwMDNlZHJpdmVyX2RhdGE7XG4gXHRkYXRhLVx1MDAzZUlycU51bWJlciAgID0gcGRldi1cdTAwM2VpcnE7XG4gXHRkYXRhLVx1MDAzZUJhc2VBZGRyZXNzID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDApO1xuIFx0ZGF0YS1cdTAwM2VOdW1BZGRyZXNzICA9IHBjaV9yZXNvdXJjZV9sZW4gIChwZGV2LCAwKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuaCBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oXG5pbmRleCA5MjQ4ODlmOGJkMzdlNy4uOWU2NTc3MWNiNTkyODYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvbnNwMzIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmhcbkBAIC01NjQsMTAgJiM0Mzs1NjQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX25zcDMyX2h3X2RhdGEge1xuIFxuIFx0c3RydWN0IHNjc2lfY21uZCAqQ3VycmVudFNDO1xuIFxuLVx0c3RydWN0IHBjaV9kZXYgICAgICAgICAgICAgKlBjaTtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2aWQ7XG4tXHRzdHJ1Y3QgU2NzaV9Ib3N0ICAgICAgICAgICAqSG9zdDtcbi1cdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBMb2NrO1xuJiM0MztcdHN0cnVjdCBwY2lfZGV2ICAgICpQY2k7XG4mIzQzO1x0aW50ICAgICAgICAgICAgICAgIG1vZGVsO1xuJiM0MztcdHN0cnVjdCBTY3NpX0hvc3QgICpIb3N0O1xuJiM0MztcdHNwaW5sb2NrX3QgICAgICAgICBMb2NrO1xuIFxuIFx0Y2hhciBpbmZvX3N0clsxMDBdO1xuIFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLmggYi9pbmNsdWRlL2xpbnV4L3BjaS5oXG5pbmRleCBlYmI1YjlkNzYzNjA5ZS4uZjEyOGQ4YzBjYmI2NGQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3BjaS5oXG5AQCAtOTc5LDYgJiM0Mzs5NzksNyBAQCBzdHJ1Y3QgbW9kdWxlO1xuICAqXHRcdGZ1bmN0aW9uIHJldHVybnMgemVybyB3aGVuIHRoZSBkcml2ZXIgY2hvb3NlcyB0b1xuICAqXHRcdHRha2UgXCYjMzQ7b3duZXJzaGlwXCYjMzQ7IG9mIHRoZSBkZXZpY2Ugb3IgYW4gZXJyb3IgY29kZVxuICAqXHRcdChuZWdhdGl2ZSBudW1iZXIpIG90aGVyd2lzZS5cbiYjNDM7ICpcdFx0VGhlIHBjaV9kZXZpY2VfaWQgcGFyYW1ldGVyIGlzIG9ubHkgdmFsaWQgZHVyaW5nIHByb2JlLlxuICAqXHRcdFRoZSBwcm9iZSBmdW5jdGlvbiBhbHdheXMgZ2V0cyBjYWxsZWQgZnJvbSBwcm9jZXNzXG4gICpcdFx0Y29udGV4dCwgc28gaXQgY2FuIHNsZWVwLlxuICAqIEByZW1vdmU6XHRUaGUgcmVtb3ZlKCkgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBkZXZpY2VcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtBVEFfR0VORVJJQyYjMzQ7LAogICAgJiMzNDtJUEFDS19CVVMmIzM0OywKICAgICYjMzQ7Qk9BUkRfVFBDSTIwMCYjMzQ7LAogICAgJiMzNDtNTFhTV19DT1JFJiMzNDssCiAgICAmIzM0O01MWFNXX1BDSSYjMzQ7LAogICAgJiMzNDtTQ1NJX05TUDMyJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV3X2lkX3N0b3JlJiMzNDssCiAgICAmIzM0O2RvX3BjaV9hZGRfZHluaWQmIzM0OywKICAgICYjMzQ7cGNpX21hdGNoX2RldmljZSYjMzQ7LAogICAgJiMzNDtfX3BjaV9kZXZpY2VfcHJvYmUmIzM0OywKICAgICYjMzQ7YXRhX2dlbmVyaWNfaW5pdF9vbmUmIzM0OywKICAgICYjMzQ7dHBjaTIwMF9wY2lfcHJvYmUmIzM0OywKICAgICYjMzQ7bWx4c3dfcGNpX3Byb2JlJiMzNDssCiAgICAmIzM0O25zcDMyX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFBDSSBkZXZpY2UgbWF0Y2hpbmcgYW5kIHByb2JpbmcgbG9naWMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMgd2l0aCBkeW5hbWljIFBDSSBJRHMuIEl0IGFsbG9jYXRlcyB0aGUgbWF0Y2hlZCBgcGNpX2RldmljZV9pZGAgb24gdGhlIHN0YWNrIGR1cmluZyBwcm9iZSBhbmQgdXBkYXRlcyBzZXZlcmFsIGRyaXZlcnMgdGhhdCBwcmV2aW91c2x5IHNhdmVkIHRoaXMgcG9pbnRlciB0byBwcmV2ZW50IHN0YWNrIHVzZS1hZnRlci1mcmVlLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgUENJIGR5bmFtaWMgSUQgc3lzZnMgaW50ZXJmYWNlIChgbmV3X2lkX3N0b3JlYCksIHRoZSBQQ0kgbWF0Y2hpbmcvcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhlIG1vZGlmaWVkIGRyaXZlcnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDA5MTJkMDM1YjEyM2Q4YjIwYjE2ZDhhYmNkMTk5MWMwMWJiYTlkNjYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1biAzMCAxNjoyMzoyOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2F0YV9nZW5lcmljLmMgYi9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jCmluZGV4IGU3MGI2YzA4OWNmMTc5Li4xOGVhNzQwY2E1ODI5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jCkBAIC01MSwxMSAmIzQzOzUxLDExIEBAIGVudW0gewogc3RhdGljIGludCBnZW5lcmljX3NldF9tb2RlKHN0cnVjdCBhdGFfbGluayAqbGluaywgc3RydWN0IGF0YV9kZXZpY2UgKip1bnVzZWQpCiB7CiAJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstJmd0O2FwOwotCWNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCA9IGFwLSZndDtob3N0LSZndDtwcml2YXRlX2RhdGE7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZHJpdmVyX2RhdGEgPSAodW5zaWduZWQgbG9uZylhcC0mZ3Q7aG9zdC0mZ3Q7cHJpdmF0ZV9kYXRhOwogCWludCBkbWFfZW5hYmxlZCA9IDA7CiAJc3RydWN0IGF0YV9kZXZpY2UgKmRldjsKIAotCWlmIChpZC0mZ3Q7ZHJpdmVyX2RhdGEgJmFtcDsgQVRBX0dFTl9GT1JDRV9ETUEpIHsKJiM0MzsJaWYgKGRyaXZlcl9kYXRhICZhbXA7IEFUQV9HRU5fRk9SQ0VfRE1BKSB7CiAJCWRtYV9lbmFibGVkID0gMHhmZjsKIAl9IGVsc2UgaWYgKGFwLSZndDtpb2FkZHIuYm1kbWFfYWRkcikgewogCQkvKiBCaXRzIDUgYW5kIDYgaW5kaWNhdGUgaWYgRE1BIGlzIGFjdGl2ZSBvbiBtYXN0ZXIvc2xhdmUgKi8KQEAgLTIwNiw3ICYjNDM7MjA2LDcgQEAgc3RhdGljIGludCBhdGFfZ2VuZXJpY19pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZAogCQkJcmV0dXJuIHJjOwogCQlwY2ltX3Bpbl9kZXZpY2UoZGV2KTsKIAl9Ci0JcmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksICZhbXA7Z2VuZXJpY19zaHQsICh2b2lkICopaWQsIDApOwomIzQzOwlyZXR1cm4gYXRhX3BjaV9ibWRtYV9pbml0X29uZShkZXYsIHBwaSwgJmFtcDtnZW5lcmljX3NodCwgKHZvaWQgKilpZC0mZ3Q7ZHJpdmVyX2RhdGEsIDApOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRhX2dlbmVyaWNbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMKaW5kZXggMDVkY2I2Njc1Y2Q2NjEuLjFjZjUxZjc2MzI5MzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYwpAQCAtNTYyLDcgJiM0Mzs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogCiAJLyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovCiAJdHBjaTIwMC0mZ3Q7aW5mby0mZ3Q7cGRldiA9IHBkZXY7Ci0JdHBjaTIwMC0mZ3Q7aW5mby0mZ3Q7aWRfdGFibGUgPSAoc3RydWN0IHBjaV9kZXZpY2VfaWQgKilpZDsKIAogCS8qIHJlZ2lzdGVyIHRoZSBkZXZpY2UgYW5kIGluaXRpYWxpemUgaXQgKi8KIAlyZXQgPSB0cGNpMjAwX2luc3RhbGwodHBjaTIwMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaCBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oCmluZGV4IGU3OWFjNjRhYmNmZmFjLi5hMmJmMzEyNTc5NGI3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmgKQEAgLTE0NSw3ICYjNDM7MTQ1LDYgQEAgc3RydWN0IHRwY2kyMDBfc2xvdCB7CiAgKi8KIHN0cnVjdCB0cGNpMjAwX2luZm9zIHsKIAlzdHJ1Y3QgcGNpX2RldgkJCSpwZGV2OwotCXN0cnVjdCBwY2lfZGV2aWNlX2lkCQkqaWRfdGFibGU7CiAJc3RydWN0IHRwY2kyMDBfcmVncyBfX2lvbWVtCSppbnRlcmZhY2VfcmVnczsKIAl2b2lkIF9faW9tZW0JCQkqY2ZnX3JlZ3M7CiAJc3RydWN0IGlwYWNrX2J1c19kZXZpY2UJCSppcGFja19idXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jCmluZGV4IDBkYTg1ZDM2NjQ3ZDkxLi5iZmUzMjY4ZGZkYzE3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmMKQEAgLTEzMCw3ICYjNDM7MTMwLDYgQEAgc3RydWN0IG1seHN3X3BjaSB7CiAJCX0gY29tcDsKIAl9IGNtZDsKIAlzdHJ1Y3QgbWx4c3dfYnVzX2luZm8gYnVzX2luZm87Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkOwogCWVudW0gbWx4c3dfcGNpX2NxZV92IG1heF9jcWVfdmVyOyAvKiBNYXhpbWFsIHN1cHBvcnRlZCBDUUUgdmVyc2lvbiAqLwogCXU4IG51bV9jcXM7IC8qIE51bWJlciBvZiBDUXMgKi8KIAl1OCBudW1fc2RxczsgLyogTnVtYmVyIG9mIFNEUXMgKi8KQEAgLTE3NjgsNyAmIzQzOzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBtbHhzd19wY2lfbWJveF9mcmVlKHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwKIH0KIAogc3RhdGljIGludCBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLAotCQkJCSAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsCiAJCQkJICAgIHUzMiAqcF9zeXNfc3RhdHVzKQogewogCXVuc2lnbmVkIGxvbmcgZW5kOwpAQCAtMTgzOSw3ICYjNDM7MTgzNyw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX3Jlc2V0X3N3KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSkKIH0KIAogc3RhdGljIGludAotbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQomIzQzO21seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2kpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBtbHhzd19wY2ktJmd0O3BkZXY7CiAJYm9vbCBwY2lfcmVzZXRfc2JyX3N1cHBvcnRlZCA9IGZhbHNlOwpAQCAtMTg0OCw3ICYjNDM7MTg0Niw3IEBAIG1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAl1MzIgc3lzX3N0YXR1czsKIAlpbnQgZXJyOwogCi0JZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgaWQsICZhbXA7c3lzX3N0YXR1cyk7CiYjNDM7CWVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksICZhbXA7c3lzX3N0YXR1cyk7CiAJaWYgKGVycikgewogCQlkZXZfZXJyKCZhbXA7cGRldi0mZ3Q7ZGV2LCAmIzM0O0ZhaWxlZCB0byByZWFjaCBzeXN0ZW0gcmVhZHkgc3RhdHVzIGJlZm9yZSByZXNldC4gU3RhdHVzIGlzIDB4JXhcbiYjMzQ7LAogCQkJc3lzX3N0YXR1cyk7CkBAIC0xODgwLDcgJiM0MzsxODc4LDcgQEAgbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQllcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBpZCwgJmFtcDtzeXNfc3RhdHVzKTsKJiM0MzsJZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgJmFtcDtzeXNfc3RhdHVzKTsKIAlpZiAoZXJyKSB7CiAJCWRldl9lcnIoJmFtcDtwZGV2LSZndDtkZXYsICYjMzQ7RmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XG4mIzM0OywKIAkJCXN5c19zdGF0dXMpOwpAQCAtMTkzMiw3ICYjNDM7MTkzMCw3IEBAIHN0YXRpYyBpbnQgbWx4c3dfcGNpX2luaXQodm9pZCAqYnVzX3ByaXYsIHN0cnVjdCBtbHhzd19jb3JlICptbHhzd19jb3JlLAogCWlmICghbWJveCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQllcnIgPSBtbHhzd19wY2lfcmVzZXQobWx4c3dfcGNpLCBtbHhzd19wY2ktJmd0O2lkKTsKJiM0MzsJZXJyID0gbWx4c3dfcGNpX3Jlc2V0KG1seHN3X3BjaSk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfcmVzZXQ7CiAKQEAgLTI0NjQsNyAmIzQzOzI0NjIsNiBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogCW1seHN3X3BjaS0mZ3Q7YnVzX2luZm8uZGV2aWNlX25hbWUgPSBwY2lfbmFtZShtbHhzd19wY2ktJmd0O3BkZXYpOwogCW1seHN3X3BjaS0mZ3Q7YnVzX2luZm8uZGV2ID0gJmFtcDtwZGV2LSZndDtkZXY7CiAJbWx4c3dfcGNpLSZndDtidXNfaW5mby5yZWFkX2Nsb2NrX2NhcGFibGUgPSB0cnVlOwotCW1seHN3X3BjaS0mZ3Q7aWQgPSBpZDsKIAogCWVyciA9IG1seHN3X2NvcmVfYnVzX2RldmljZV9yZWdpc3RlcigmYW1wO21seHN3X3BjaS0mZ3Q7YnVzX2luZm8sCiAJCQkJCSAgICAgJmFtcDttbHhzd19wY2lfYnVzLCBtbHhzd19wY2ksIGZhbHNlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jIGIvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jCmluZGV4IGYzNjc3OGU2MmFjMWE1Li5mYWQwMjhiOWRjNTNlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYwpAQCAtMjksNiAmIzQzOzI5LDQ4IEBAIHN0cnVjdCBwY2lfZHluaWQgewogCXN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkOwogfTsKIAomIzQzOy8qKgomIzQzOyAqIGRvX3BjaV9hZGRfZHluaWQgLSBhZGQgYSBuZXcgUENJIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgcmUtcHJvYmUgZGV2aWNlcwomIzQzOyAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyCiYjNDM7ICogQGlkOiBJRCB0byBiZSBhZGRlZAomIzQzOyAqIEBjaGVja19kdXA6IHdoZXRoZXIgdG8gY2hlY2sgaWYgbWF0Y2hpbmcgSUQgaXMgYWxyZWFkeSBwcmVzZW50CiYjNDM7ICoKJiM0MzsgKiBBZGRzIGEgbmV3IGR5bmFtaWMgcGNpIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgY2F1c2VzIHRoZQomIzQzOyAqIGRyaXZlciB0byBwcm9iZSBmb3IgYWxsIGRldmljZXMgYWdhaW4uICBAZHJ2IG11c3QgaGF2ZSBiZWVuCiYjNDM7ICogcmVnaXN0ZXJlZCBwcmlvciB0byBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCiYjNDM7ICoKJiM0MzsgKiBDT05URVhUOgomIzQzOyAqIERvZXMgR0ZQX0tFUk5FTCBhbGxvY2F0aW9uLgomIzQzOyAqCiYjNDM7ICogUkVUVVJOUzoKJiM0MzsgKiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLgomIzQzOyAqLwomIzQzO3N0YXRpYyBpbnQgZG9fcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGJvb2wgY2hlY2tfZHVwKQomIzQzO3sKJiM0MzsJc3RydWN0IHBjaV9keW5pZCAqZHluaWQsICpleGlzdGluZ19keW5pZDsKJiM0MzsKJiM0MzsJZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpOwomIzQzOwlpZiAoIWR5bmlkKQomIzQzOwkJcmV0dXJuIC1FTk9NRU07CiYjNDM7CiYjNDM7CWR5bmlkLSZndDtpZCA9ICppZDsKJiM0MzsKJiM0MzsJewomIzQzOwkJZ3VhcmQoc3BpbmxvY2spKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7CiYjNDM7CQlpZiAoY2hlY2tfZHVwKSB7CiYjNDM7CQkJbGlzdF9mb3JfZWFjaF9lbnRyeShleGlzdGluZ19keW5pZCwgJmFtcDtkcnYtJmd0O2R5bmlkcy5saXN0LCBub2RlKSB7CiYjNDM7CQkJCWlmIChwY2lfbWF0Y2hfb25lX2lkKCZhbXA7ZXhpc3RpbmdfZHluaWQtJmd0O2lkLCBpZCkpIHsKJiM0MzsJCQkJCWtmcmVlKGR5bmlkKTsKJiM0MzsJCQkJCXJldHVybiAtRUVYSVNUOwomIzQzOwkJCQl9CiYjNDM7CQkJfQomIzQzOwkJfQomIzQzOwkJbGlzdF9hZGRfdGFpbCgmYW1wO2R5bmlkLSZndDtub2RlLCAmYW1wO2Rydi0mZ3Q7ZHluaWRzLmxpc3QpOwomIzQzOwl9CiYjNDM7CiYjNDM7CXJldHVybiBkcml2ZXJfYXR0YWNoKCZhbXA7ZHJ2LSZndDtkcml2ZXIpOwomIzQzO30KJiM0MzsKIC8qKgogICogcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzCiAgKiBAZHJ2OiB0YXJnZXQgcGNpIGRyaXZlcgpAQCAtNTYsMjUgJiM0Mzs5OCwxNyBAQCBpbnQgcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LAogCQkgIHVuc2lnbmVkIGludCBjbGFzcywgdW5zaWduZWQgaW50IGNsYXNzX21hc2ssCiAJCSAgdW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSkKIHsKLQlzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZDsKLQotCWR5bmlkID0ga3phbGxvY19vYmooKmR5bmlkKTsKLQlpZiAoIWR5bmlkKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWR5bmlkLSZndDtpZC52ZW5kb3IgPSB2ZW5kb3I7Ci0JZHluaWQtJmd0O2lkLmRldmljZSA9IGRldmljZTsKLQlkeW5pZC0mZ3Q7aWQuc3VidmVuZG9yID0gc3VidmVuZG9yOwotCWR5bmlkLSZndDtpZC5zdWJkZXZpY2UgPSBzdWJkZXZpY2U7Ci0JZHluaWQtJmd0O2lkLmNsYXNzID0gY2xhc3M7Ci0JZHluaWQtJmd0O2lkLmNsYXNzX21hc2sgPSBjbGFzc19tYXNrOwotCWR5bmlkLSZndDtpZC5kcml2ZXJfZGF0YSA9IGRyaXZlcl9kYXRhOwotCi0Jc3Bpbl9sb2NrKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7Ci0JbGlzdF9hZGRfdGFpbCgmYW1wO2R5bmlkLSZndDtub2RlLCAmYW1wO2Rydi0mZ3Q7ZHluaWRzLmxpc3QpOwotCXNwaW5fdW5sb2NrKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7Ci0KLQlyZXR1cm4gZHJpdmVyX2F0dGFjaCgmYW1wO2Rydi0mZ3Q7ZHJpdmVyKTsKJiM0MzsJc3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7CiYjNDM7CQkudmVuZG9yID0gdmVuZG9yLAomIzQzOwkJLmRldmljZSA9IGRldmljZSwKJiM0MzsJCS5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3IsCiYjNDM7CQkuc3ViZGV2aWNlID0gc3ViZGV2aWNlLAomIzQzOwkJLmNsYXNzID0gY2xhc3MsCiYjNDM7CQkuY2xhc3NfbWFzayA9IGNsYXNzX21hc2ssCiYjNDM7CQkuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YSwKJiM0MzsJfTsKJiM0MzsKJiM0MzsJcmV0dXJuIGRvX3BjaV9hZGRfZHluaWQoZHJ2LCAmYW1wO2lkLCBmYWxzZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChwY2lfYWRkX2R5bmlkKTsKIApAQCAtOTAsNiAmIzQzOzEyNCwyOSBAQCBzdGF0aWMgdm9pZCBwY2lfZnJlZV9keW5pZHMoc3RydWN0IHBjaV9kcml2ZXIgKmRydikKIAlzcGluX3VubG9jaygmYW1wO2Rydi0mZ3Q7ZHluaWRzLmxvY2spOwogfQogCiYjNDM7LyoqCiYjNDM7ICogZG9fcGNpX21hdGNoX2lkIC0gU2VlIGlmIGEgUENJIElEIG1hdGNoZXMgYSBnaXZlbiBwY2lfaWQgdGFibGUKJiM0MzsgKiBAaWRzOiBhcnJheSBvZiBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZXMgdG8gc2VhcmNoIGluCiYjNDM7ICogQGRldl9pZDogdGhlIGFjdHVhbCBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0LgomIzQzOyAqCiYjNDM7ICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZCBzdHJ1Y3R1cmUgb3IKJiM0MzsgKiAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC4KJiM0MzsgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmRvX3BjaV9tYXRjaF9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzLAomIzQzOwkJCQkJCSAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQsCiYjNDM7CQkJCQkJICAgYm9vbCBtYXRjaF9vdmVycmlkZV9vbmx5KQomIzQzO3sKJiM0MzsJaWYgKGlkcykgewomIzQzOwkJd2hpbGUgKGlkcy0mZ3Q7dmVuZG9yIHx8IGlkcy0mZ3Q7c3VidmVuZG9yIHx8IGlkcy0mZ3Q7Y2xhc3NfbWFzaykgewomIzQzOwkJCWlmICgoIWlkcy0mZ3Q7b3ZlcnJpZGVfb25seSB8fCBtYXRjaF9vdmVycmlkZV9vbmx5KSAmYW1wOyZhbXA7CiYjNDM7CQkJICAgIHBjaV9tYXRjaF9vbmVfaWQoaWRzLCBkZXZfaWQpKQomIzQzOwkJCQlyZXR1cm4gaWRzOwomIzQzOwkJCWlkcyYjNDM7JiM0Mzs7CiYjNDM7CQl9CiYjNDM7CX0KJiM0MzsJcmV0dXJuIE5VTEw7CiYjNDM7fQomIzQzOwogLyoqCiAgKiBwY2lfbWF0Y2hfaWQgLSBTZWUgaWYgYSBQQ0kgZGV2aWNlIG1hdGNoZXMgYSBnaXZlbiBwY2lfaWQgdGFibGUKICAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW4KQEAgLTEwNSwxNCAmIzQzOzE2Miw5IEBAIHN0YXRpYyB2b2lkIHBjaV9mcmVlX2R5bmlkcyhzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2KQogY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzLAogCQkJCQkgc3RydWN0IHBjaV9kZXYgKmRldikKIHsKLQlpZiAoaWRzKSB7Ci0JCXdoaWxlIChpZHMtJmd0O3ZlbmRvciB8fCBpZHMtJmd0O3N1YnZlbmRvciB8fCBpZHMtJmd0O2NsYXNzX21hc2spIHsKLQkJCWlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZHMsIGRldikpCi0JCQkJcmV0dXJuIGlkczsKLQkJCWlkcyYjNDM7JiM0Mzs7Ci0JCX0KLQl9Ci0JcmV0dXJuIE5VTEw7CiYjNDM7CXN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpOwomIzQzOwomIzQzOwlyZXR1cm4gZG9fcGNpX21hdGNoX2lkKGlkcywgJmFtcDtkZXZfaWQsIHRydWUpOwogfQogRVhQT1JUX1NZTUJPTChwY2lfbWF0Y2hfaWQpOwogCkBAIC0xMjcsNjEgJiM0MzsxNzksNTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBjaV9kZXZpY2VfaWRfYW55ID0gewogICogcGNpX21hdGNoX2RldmljZSAtIFNlZSBpZiBhIGRldmljZSBtYXRjaGVzIGEgZHJpdmVyJiMzOTtzIGxpc3Qgb2YgSURzCiAgKiBAZHJ2OiB0aGUgUENJIGRyaXZlciB0byBtYXRjaCBhZ2FpbnN0CiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdAomIzQzOyAqIEBpZDogTWF0Y2hlZCBwY2lfZGV2aWNlX2lkCiAgKgogICogVXNlZCBieSBhIGRyaXZlciB0byBjaGVjayB3aGV0aGVyIGEgUENJIGRldmljZSBpcyBpbiBpdHMgbGlzdCBvZgogICogc3VwcG9ydGVkIGRldmljZXMgb3IgaW4gdGhlIGR5bmlkcyBsaXN0LCB3aGljaCBtYXkgaGF2ZSBiZWVuIGF1Z21lbnRlZAotICogdmlhIHRoZSBzeXNmcyAmIzM0O25ld19pZCYjMzQ7IGZpbGUuICBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkCi0gKiBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guCiYjNDM7ICogdmlhIHRoZSBzeXNmcyAmIzM0O25ld19pZCYjMzQ7IGZpbGUuICBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYSBtYXRjaCwgdGhlIG1hdGNoZWQKJiM0MzsgKiBJRCBpcyBzdG9yZWQgaW4gQGlkLgogICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9kZXZpY2Uoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwKLQkJCQkJCSAgICBzdHJ1Y3QgcGNpX2RldiAqZGV2KQomIzQzO3N0YXRpYyBib29sIHBjaV9tYXRjaF9kZXZpY2Uoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwKJiM0MzsJCQkgICAgIHN0cnVjdCBwY2lfZGV2ICpkZXYsCiYjNDM7CQkJICAgICBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiB7CiAJc3RydWN0IHBjaV9keW5pZCAqZHluaWQ7Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkID0gTlVMTCwgKmlkczsKJiM0MzsJY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkID0gTlVMTDsKJiM0MzsJc3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkOwogCWludCByZXQ7CiAKIAkvKiBXaGVuIGRyaXZlcl9vdmVycmlkZSBpcyBzZXQsIG9ubHkgYmluZCB0byB0aGUgbWF0Y2hpbmcgZHJpdmVyICovCiAJcmV0ID0gZGV2aWNlX21hdGNoX2RyaXZlcl9vdmVycmlkZSgmYW1wO2Rldi0mZ3Q7ZGV2LCAmYW1wO2Rydi0mZ3Q7ZHJpdmVyKTsKIAlpZiAocmV0ID09IDApCi0JCXJldHVybiBOVUxMOwomIzQzOwkJcmV0dXJuIGZhbHNlOwogCiYjNDM7CWRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpOwogCS8qIExvb2sgYXQgdGhlIGR5bmFtaWMgaWRzIGZpcnN0LCBiZWZvcmUgdGhlIHN0YXRpYyBvbmVzICovCi0Jc3Bpbl9sb2NrKCZhbXA7ZHJ2LSZndDtkeW5pZHMubG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShkeW5pZCwgJmFtcDtkcnYtJmd0O2R5bmlkcy5saXN0LCBub2RlKSB7Ci0JCWlmIChwY2lfbWF0Y2hfb25lX2RldmljZSgmYW1wO2R5bmlkLSZndDtpZCwgZGV2KSkgewotCQkJZm91bmRfaWQgPSAmYW1wO2R5bmlkLSZndDtpZDsKLQkJCWJyZWFrOwomIzQzOwl7CiYjNDM7CQlndWFyZChzcGlubG9jaykoJmFtcDtkcnYtJmd0O2R5bmlkcy5sb2NrKTsKJiM0MzsJCWxpc3RfZm9yX2VhY2hfZW50cnkoZHluaWQsICZhbXA7ZHJ2LSZndDtkeW5pZHMubGlzdCwgbm9kZSkgewomIzQzOwkJCWlmIChwY2lfbWF0Y2hfb25lX2lkKCZhbXA7ZHluaWQtJmd0O2lkLCAmYW1wO2Rldl9pZCkpIHsKJiM0MzsJCQkJKmlkID0gZHluaWQtJmd0O2lkOwomIzQzOwkJCQlyZXR1cm4gdHJ1ZTsKJiM0MzsJCQl9CiAJCX0KIAl9Ci0Jc3Bpbl91bmxvY2soJmFtcDtkcnYtJmd0O2R5bmlkcy5sb2NrKTsKLQotCWlmIChmb3VuZF9pZCkKLQkJcmV0dXJuIGZvdW5kX2lkOwogCi0JZm9yIChpZHMgPSBkcnYtJmd0O2lkX3RhYmxlOyAoZm91bmRfaWQgPSBwY2lfbWF0Y2hfaWQoaWRzLCBkZXYpKTsKLQkgICAgIGlkcyA9IGZvdW5kX2lkICYjNDM7IDEpIHsKLQkJLyoKLQkJICogVGhlIG1hdGNoIHRhYmxlIGlzIHNwbGl0IGJhc2VkIG9uIGRyaXZlcl9vdmVycmlkZS4KLQkJICogSW4gY2FzZSBvdmVycmlkZV9vbmx5IHdhcyBzZXQsIGVuZm9yY2UgZHJpdmVyX292ZXJyaWRlCi0JCSAqIG1hdGNoaW5nLgotCQkgKi8KLQkJaWYgKGZvdW5kX2lkLSZndDtvdmVycmlkZV9vbmx5KSB7Ci0JCQlpZiAocmV0ICZndDsgMCkKLQkJCQlyZXR1cm4gZm91bmRfaWQ7Ci0JCX0gZWxzZSB7Ci0JCQlyZXR1cm4gZm91bmRfaWQ7Ci0JCX0KJiM0MzsJZm91bmRfaWQgPSBkb19wY2lfbWF0Y2hfaWQoZHJ2LSZndDtpZF90YWJsZSwgJmFtcDtkZXZfaWQsIHJldCAmZ3Q7IDApOwomIzQzOwlpZiAoZm91bmRfaWQpIHsKJiM0MzsJCSppZCA9ICpmb3VuZF9pZDsKJiM0MzsJCXJldHVybiB0cnVlOwogCX0KIAogCS8qIGRyaXZlcl9vdmVycmlkZSB3aWxsIGFsd2F5cyBtYXRjaCwgc2VuZCBhIGR1bW15IGlkICovCi0JaWYgKHJldCAmZ3Q7IDApCi0JCXJldHVybiAmYW1wO3BjaV9kZXZpY2VfaWRfYW55OwotCXJldHVybiBOVUxMOwotfQomIzQzOwlpZiAocmV0ICZndDsgMCkgewomIzQzOwkJKmlkID0gcGNpX2RldmljZV9pZF9hbnk7CiYjNDM7CQlyZXR1cm4gdHJ1ZTsKJiM0MzsJfQogCi1zdGF0aWMgdm9pZCBfcGNpX2ZyZWVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKLXsKLQlrZnJlZSh0b19wY2lfZGV2KGRldikpOwomIzQzOwlyZXR1cm4gZmFsc2U7CiB9CiAKIC8qKgpAQCAtMTk3LDM4ICYjNDM7MjQwLDIyIEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsCiB7CiAJc3RydWN0IHBjaV9kcml2ZXIgKnBkcnYgPSB0b19wY2lfZHJpdmVyKGRyaXZlcik7CiAJY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkcyA9IHBkcnYtJmd0O2lkX3RhYmxlOwotCXUzMiB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yID0gUENJX0FOWV9JRCwKLQkJc3ViZGV2aWNlID0gUENJX0FOWV9JRCwgY2xhc3MgPSAwLCBjbGFzc19tYXNrID0gMDsKLQl1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhID0gMDsKJiM0MzsJc3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7CiYjNDM7CQkuc3VidmVuZG9yID0gUENJX0FOWV9JRCwKJiM0MzsJCS5zdWJkZXZpY2UgPSBQQ0lfQU5ZX0lECiYjNDM7CX07CiAJaW50IGZpZWxkczsKIAlpbnQgcmV0dmFsID0gMDsKIAogCWZpZWxkcyA9IHNzY2FuZihidWYsICYjMzQ7JXggJXggJXggJXggJXggJXggJWx4JiMzNDssCi0JCQkmYW1wO3ZlbmRvciwgJmFtcDtkZXZpY2UsICZhbXA7c3VidmVuZG9yLCAmYW1wO3N1YmRldmljZSwKLQkJCSZhbXA7Y2xhc3MsICZhbXA7Y2xhc3NfbWFzaywgJmFtcDtkcml2ZXJfZGF0YSk7CiYjNDM7CQkJJmFtcDtpZC52ZW5kb3IsICZhbXA7aWQuZGV2aWNlLCAmYW1wO2lkLnN1YnZlbmRvciwgJmFtcDtpZC5zdWJkZXZpY2UsCiYjNDM7CQkJJmFtcDtpZC5jbGFzcywgJmFtcDtpZC5jbGFzc19tYXNrLCAmYW1wO2lkLmRyaXZlcl9kYXRhKTsKIAlpZiAoZmllbGRzICZsdDsgMikKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoZmllbGRzICE9IDcpIHsKLQkJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBremFsbG9jX29iaigqcGRldik7Ci0JCWlmICghcGRldikKLQkJCXJldHVybiAtRU5PTUVNOwotCi0JCXBkZXYtJmd0O3ZlbmRvciA9IHZlbmRvcjsKLQkJcGRldi0mZ3Q7ZGV2aWNlID0gZGV2aWNlOwotCQlwZGV2LSZndDtzdWJzeXN0ZW1fdmVuZG9yID0gc3VidmVuZG9yOwotCQlwZGV2LSZndDtzdWJzeXN0ZW1fZGV2aWNlID0gc3ViZGV2aWNlOwotCQlwZGV2LSZndDtjbGFzcyA9IGNsYXNzOwotCQlwZGV2LSZndDtkZXYucmVsZWFzZSA9IF9wY2lfZnJlZV9kZXZpY2U7Ci0KLQkJZGV2aWNlX2luaXRpYWxpemUoJmFtcDtwZGV2LSZndDtkZXYpOwotCQlpZiAocGNpX21hdGNoX2RldmljZShwZHJ2LCBwZGV2KSkKLQkJCXJldHZhbCA9IC1FRVhJU1Q7Ci0KLQkJcHV0X2RldmljZSgmYW1wO3BkZXYtJmd0O2Rldik7Ci0KLQkJaWYgKHJldHZhbCkKLQkJCXJldHVybiByZXR2YWw7CiYjNDM7CQlpZiAoZG9fcGNpX21hdGNoX2lkKHBkcnYtJmd0O2lkX3RhYmxlLCAmYW1wO2lkLCBmYWxzZSkpCiYjNDM7CQkJcmV0dXJuIC1FRVhJU1Q7CiAJfQogCiAJLyogT25seSBhY2NlcHQgZHJpdmVyX2RhdGEgdmFsdWVzIHRoYXQgbWF0Y2ggYW4gZXhpc3RpbmcgaWRfdGFibGUKQEAgLTIzNiw3ICYjNDM7MjYzLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZiwKIAlpZiAoaWRzKSB7CiAJCXJldHZhbCA9IC1FSU5WQUw7CiAJCXdoaWxlIChpZHMtJmd0O3ZlbmRvciB8fCBpZHMtJmd0O3N1YnZlbmRvciB8fCBpZHMtJmd0O2NsYXNzX21hc2spIHsKLQkJCWlmIChkcml2ZXJfZGF0YSA9PSBpZHMtJmd0O2RyaXZlcl9kYXRhKSB7CiYjNDM7CQkJaWYgKGlkLmRyaXZlcl9kYXRhID09IGlkcy0mZ3Q7ZHJpdmVyX2RhdGEpIHsKIAkJCQlyZXR2YWwgPSAwOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMjQ2LDggJiM0MzsyNzMsNyBAQCBzdGF0aWMgc3NpemVfdCBuZXdfaWRfc3RvcmUoc3RydWN0IGRldmljZV9kcml2ZXIgKmRyaXZlciwgY29uc3QgY2hhciAqYnVmLAogCQkJcmV0dXJuIHJldHZhbDsKIAl9CiAKLQlyZXR2YWwgPSBwY2lfYWRkX2R5bmlkKHBkcnYsIHZlbmRvciwgZGV2aWNlLCBzdWJ2ZW5kb3IsIHN1YmRldmljZSwKLQkJCSAgICAgICBjbGFzcywgY2xhc3NfbWFzaywgZHJpdmVyX2RhdGEpOwomIzQzOwlyZXR2YWwgPSBkb19wY2lfYWRkX2R5bmlkKHBkcnYsICZhbXA7aWQsIGZpZWxkcyAhPSA3KTsKIAlpZiAocmV0dmFsKQogCQlyZXR1cm4gcmV0dmFsOwogCXJldHVybiBjb3VudDsKQEAgLTQ0NCwxNSAmIzQzOzQ3MCwxNCBAQCB2b2lkIHBjaV9wcm9iZV9mbHVzaF93b3JrcXVldWUodm9pZCkKICAqLwogc3RhdGljIGludCBfX3BjaV9kZXZpY2VfcHJvYmUoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpCiB7Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkOwomIzQzOwlzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDsKIAlpbnQgZXJyb3IgPSAwOwogCiAJaWYgKGRydi0mZ3Q7cHJvYmUpIHsKIAkJZXJyb3IgPSAtRU5PREVWOwogCi0JCWlkID0gcGNpX21hdGNoX2RldmljZShkcnYsIHBjaV9kZXYpOwotCQlpZiAoaWQpCi0JCQllcnJvciA9IHBjaV9jYWxsX3Byb2JlKGRydiwgcGNpX2RldiwgaWQpOwomIzQzOwkJaWYgKHBjaV9tYXRjaF9kZXZpY2UoZHJ2LCBwY2lfZGV2LCAmYW1wO2lkKSkKJiM0MzsJCQllcnJvciA9IHBjaV9jYWxsX3Byb2JlKGRydiwgcGNpX2RldiwgJmFtcDtpZCk7CiAJfQogCXJldHVybiBlcnJvcjsKIH0KQEAgLTE1MzcsMTcgJiM0MzsxNTYyLDEzIEBAIHN0YXRpYyBpbnQgcGNpX2J1c19tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYgPSB0b19wY2lfZGV2KGRldik7CiAJc3RydWN0IHBjaV9kcml2ZXIgKnBjaV9kcnY7Ci0JY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkOwomIzQzOwlzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDsKIAogCWlmIChwY2lfZGV2X2JpbmRpbmdfZGlzYWxsb3dlZChwY2lfZGV2KSkKIAkJcmV0dXJuIDA7CiAKIAlwY2lfZHJ2ID0gKHN0cnVjdCBwY2lfZHJpdmVyICopdG9fcGNpX2RyaXZlcihkcnYpOwotCWZvdW5kX2lkID0gcGNpX21hdGNoX2RldmljZShwY2lfZHJ2LCBwY2lfZGV2KTsKLQlpZiAoZm91bmRfaWQpCi0JCXJldHVybiAxOwotCi0JcmV0dXJuIDA7CiYjNDM7CXJldHVybiBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYsICZhbXA7aWQpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS5oIGIvZHJpdmVycy9wY2kvcGNpLmgKaW5kZXggNDQ2OWUxYTc3ZjNjMTMuLjA1NjdhODc2MmJhYTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9wY2kuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3BjaS9wY2kuaApAQCAtNDQyLDIxICYjNDM7NDQyLDM3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9zZXR1cF9jYXJkYnVzKGNoYXIgKnN0cikgeyByZXR1cm4gLUVOT0VOVDsgfQogI2VuZGlmIC8qIENPTkZJR19DQVJEQlVTICovCiAKIC8qKgotICogcGNpX21hdGNoX29uZV9kZXZpY2UgLSBUZWxsIGlmIGEgUENJIGRldmljZSBzdHJ1Y3R1cmUgaGFzIGEgbWF0Y2hpbmcKLSAqCQkJICBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZQotICogQGlkOiBzaW5nbGUgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmUgdG8gbWF0Y2gKLSAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0CiYjNDM7ICogcGNpX2lkX2Zyb21fZGV2aWNlIC0gT2J0YWluIGEgcGNpX2RldmljZV9pZCBmcm9tIGEgUENJIGRldmljZQomIzQzOyAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm5zIGEgcGNpX2RldmljZV9pZCBmaWxsZWQuCiYjNDM7ICovCiYjNDM7c3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfaWRfZnJvbV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldikKJiM0Mzt7CiYjNDM7CXJldHVybiAoc3RydWN0IHBjaV9kZXZpY2VfaWQpIHsKJiM0MzsJCS52ZW5kb3IgPSBkZXYtJmd0O3ZlbmRvciwKJiM0MzsJCS5kZXZpY2UgPSBkZXYtJmd0O2RldmljZSwKJiM0MzsJCS5zdWJ2ZW5kb3IgPSBkZXYtJmd0O3N1YnN5c3RlbV92ZW5kb3IsCiYjNDM7CQkuc3ViZGV2aWNlID0gZGV2LSZndDtzdWJzeXN0ZW1fZGV2aWNlLAomIzQzOwkJLmNsYXNzID0gZGV2LSZndDtjbGFzcywKJiM0MzsJfTsKJiM0Mzt9CiYjNDM7CiYjNDM7LyoqCiYjNDM7ICogcGNpX21hdGNoX29uZV9pZCAtIFRlbGwgaWYgYSBQQ0kgZGV2aWNlIElEIG1hdGNoZXMgYSBuZWVkbGUgUENJIGRldmljZSBpZAomIzQzOyAqIEBpZDogc2luZ2xlIFBDSSBkZXZpY2UgaWQgc3RydWN0dXJlIHRvIG1hdGNoIGFnYWluc3QgKG5lZWRsZSkKJiM0MzsgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIElEIGZyb20gdGhlIFBDSSBkZXZpY2UgKGNhbiBiZSBjcmVhdGVkIHZpYSBwY2lfaWRfZnJvbV9kZXZpY2UpCiAgKgogICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZCBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guCiAgKi8KIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKgotcGNpX21hdGNoX29uZV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQomIzQzO3BjaV9tYXRjaF9vbmVfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZGV2X2lkKQogewotCWlmICgoaWQtJmd0O3ZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLSZndDt2ZW5kb3IgPT0gZGV2LSZndDt2ZW5kb3IpICZhbXA7JmFtcDsKLQkgICAgKGlkLSZndDtkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC0mZ3Q7ZGV2aWNlID09IGRldi0mZ3Q7ZGV2aWNlKSAmYW1wOyZhbXA7Ci0JICAgIChpZC0mZ3Q7c3VidmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtJmd0O3N1YnZlbmRvciA9PSBkZXYtJmd0O3N1YnN5c3RlbV92ZW5kb3IpICZhbXA7JmFtcDsKLQkgICAgKGlkLSZndDtzdWJkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC0mZ3Q7c3ViZGV2aWNlID09IGRldi0mZ3Q7c3Vic3lzdGVtX2RldmljZSkgJmFtcDsmYW1wOwotCSAgICAhKChpZC0mZ3Q7Y2xhc3MgXiBkZXYtJmd0O2NsYXNzKSAmYW1wOyBpZC0mZ3Q7Y2xhc3NfbWFzaykpCiYjNDM7CWlmICgoaWQtJmd0O3ZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLSZndDt2ZW5kb3IgPT0gZGV2X2lkLSZndDt2ZW5kb3IpICZhbXA7JmFtcDsKJiM0MzsJICAgIChpZC0mZ3Q7ZGV2aWNlID09IFBDSV9BTllfSUQgfHwgaWQtJmd0O2RldmljZSA9PSBkZXZfaWQtJmd0O2RldmljZSkgJmFtcDsmYW1wOwomIzQzOwkgICAgKGlkLSZndDtzdWJ2ZW5kb3IgPT0gUENJX0FOWV9JRCB8fCBpZC0mZ3Q7c3VidmVuZG9yID09IGRldl9pZC0mZ3Q7c3VidmVuZG9yKSAmYW1wOyZhbXA7CiYjNDM7CSAgICAoaWQtJmd0O3N1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLSZndDtzdWJkZXZpY2UgPT0gZGV2X2lkLSZndDtzdWJkZXZpY2UpICZhbXA7JmFtcDsKJiM0MzsJICAgICEoKGlkLSZndDtjbGFzcyBeIGRldl9pZC0mZ3Q7Y2xhc3MpICZhbXA7IGlkLSZndDtjbGFzc19tYXNrKSkKIAkJcmV0dXJuIGlkOwogCXJldHVybiBOVUxMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvc2VhcmNoLmMgYi9kcml2ZXJzL3BjaS9zZWFyY2guYwppbmRleCBlM2QzMTc3ZmNlNTQ5ZS4uYzhjNGJmZTc4MTdiMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvcGNpL3NlYXJjaC5jCkBAIC0yNDUsOCAmIzQzOzI0NSwxMCBAQCBzdGF0aWMgaW50IG1hdGNoX3BjaV9kZXZfYnlfaWQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwogCWNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCA9IGRhdGE7CiYjNDM7CXN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZDsKIAotCWlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZCwgcGRldikpCiYjNDM7CWRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShwZGV2KTsKJiM0MzsJaWYgKHBjaV9tYXRjaF9vbmVfaWQoaWQsICZhbXA7ZGV2X2lkKSkKIAkJcmV0dXJuIDE7CiAJcmV0dXJuIDA7CiB9CkBAIC00MTgsNyAmIzQzOzQyMCw3IEBAIEVYUE9SVF9TWU1CT0wocGNpX2dldF9jbGFzcyk7CiAgKgogICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgbGlzdCBvZiBrbm93biBQQ0kgZGV2aWNlcy4gSWYgYSBQQ0kgZGV2aWNlIGlzIGZvdW5kCiAgKiB3aXRoIGEgbWF0Y2hpbmcgYmFzZSBjbGFzcyBjb2RlLCB0aGUgcmVmZXJlbmNlIGNvdW50IHRvIHRoZSBkZXZpY2UgaXMKLSAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9kZXZpY2UoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuCiYjNDM7ICogaW5jcmVtZW50ZWQuIFNlZSBwY2lfbWF0Y2hfb25lX2lkKCkgdG8gZmlndXJlIG91dCBob3cgZG9lcyB0aGlzIHdvcmtzLgogICogQSBuZXcgc2VhcmNoIGlzIGluaXRpYXRlZCBieSBwYXNzaW5nICVOVUxMIGFzIHRoZSBAZnJvbSBhcmd1bWVudC4KICAqIE90aGVyd2lzZSBpZiBAZnJvbSBpcyBub3QgJU5VTEwsIHNlYXJjaGVzIGNvbnRpbnVlIGZyb20gbmV4dCBkZXZpY2Ugb24gdGhlCiAgKiBnbG9iYWwgbGlzdC4gVGhlIHJlZmVyZW5jZSBjb3VudCBmb3IgQGZyb20gaXMgYWx3YXlzIGRlY3JlbWVudGVkIGlmIGl0IGlzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jCmluZGV4IGU4OTNkNTY3NzI0MTdhLi45YzkyODEyMjJhMGFjZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmMKQEAgLTE0NzAsNyAmIzQzOzE0NzAsNyBAQCBzdGF0aWMgaW50IG5zcDMyX3Nob3dfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QpCiAJCSAgIChuc3AzMl9yZWFkMihiYXNlLCBJTkRFWF9SRUcpICZndDsmZ3Q7IDgpICZhbXA7IDB4ZmYpOwogCiAJbW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpOwotCW1vZGVsICAgID0gZGF0YS0mZ3Q7cGNpX2RldmlkLSZndDtkcml2ZXJfZGF0YTsKJiM0MzsJbW9kZWwgICAgPSBkYXRhLSZndDttb2RlbDsKIAogI2lmZGVmIENPTkZJR19QTQogCXNlcV9wcmludGYobSwgJiMzNDtQb3dlciBNYW5hZ2VtZW50OiAgICAgICVzXG4mIzM0OywKQEAgLTI5MDcsOCAmIzQzOzI5MDcsOCBAQCBzdGF0aWMgaW50IG5zcDMyX2VoX2hvc3RfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpCiAgKi8KIHN0YXRpYyBpbnQgbnNwMzJfZ2V0cHJvbV9wYXJhbShuc3AzMl9od19kYXRhICpkYXRhKQogewotCWludCB2ZW5kb3IgPSBkYXRhLSZndDtwY2lfZGV2aWQtJmd0O3ZlbmRvcjsKLQlpbnQgZGV2aWNlID0gZGF0YS0mZ3Q7cGNpX2RldmlkLSZndDtkZXZpY2U7CiYjNDM7CWludCB2ZW5kb3IgPSBkYXRhLSZndDtQY2ktJmd0O3ZlbmRvcjsKJiM0MzsJaW50IGRldmljZSA9IGRhdGEtJmd0O1BjaS0mZ3Q7ZGV2aWNlOwogCWludCByZXQsIGk7CiAJaW50IF9fbWF5YmVfdW51c2VkIHZhbDsKIApAQCAtMzM0MCw3ICYjNDM7MzM0MCw3IEBAIHN0YXRpYyBpbnQgbnNwMzJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAl9CiAKIAlkYXRhLSZndDtQY2kJICA9IHBkZXY7Ci0JZGF0YS0mZ3Q7cGNpX2RldmlkICAgPSBpZDsKJiM0MzsJZGF0YS0mZ3Q7bW9kZWwgICAgICAgPSBpZC0mZ3Q7ZHJpdmVyX2RhdGE7CiAJZGF0YS0mZ3Q7SXJxTnVtYmVyICAgPSBwZGV2LSZndDtpcnE7CiAJZGF0YS0mZ3Q7QmFzZUFkZHJlc3MgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMCk7CiAJZGF0YS0mZ3Q7TnVtQWRkcmVzcyAgPSBwY2lfcmVzb3VyY2VfbGVuICAocGRldiwgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuaCBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oCmluZGV4IDkyNDg4OWY4YmQzN2U3Li45ZTY1NzcxY2I1OTI4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL25zcDMyLmgKQEAgLTU2NCwxMCAmIzQzOzU2NCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfbnNwMzJfaHdfZGF0YSB7CiAKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpDdXJyZW50U0M7CiAKLQlzdHJ1Y3QgcGNpX2RldiAgICAgICAgICAgICAqUGNpOwotCWNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2aWQ7Ci0Jc3RydWN0IFNjc2lfSG9zdCAgICAgICAgICAgKkhvc3Q7Ci0Jc3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgIExvY2s7CiYjNDM7CXN0cnVjdCBwY2lfZGV2ICAgICpQY2k7CiYjNDM7CWludCAgICAgICAgICAgICAgICBtb2RlbDsKJiM0MzsJc3RydWN0IFNjc2lfSG9zdCAgKkhvc3Q7CiYjNDM7CXNwaW5sb2NrX3QgICAgICAgICBMb2NrOwogCiAJY2hhciBpbmZvX3N0clsxMDBdOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BjaS5oIGIvaW5jbHVkZS9saW51eC9wY2kuaAppbmRleCBlYmI1YjlkNzYzNjA5ZS4uZjEyOGQ4YzBjYmI2NGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9wY2kuaApAQCAtOTc5LDYgJiM0Mzs5NzksNyBAQCBzdHJ1Y3QgbW9kdWxlOwogICoJCWZ1bmN0aW9uIHJldHVybnMgemVybyB3aGVuIHRoZSBkcml2ZXIgY2hvb3NlcyB0bwogICoJCXRha2UgJiMzNDtvd25lcnNoaXAmIzM0OyBvZiB0aGUgZGV2aWNlIG9yIGFuIGVycm9yIGNvZGUKICAqCQkobmVnYXRpdmUgbnVtYmVyKSBvdGhlcndpc2UuCiYjNDM7ICoJCVRoZSBwY2lfZGV2aWNlX2lkIHBhcmFtZXRlciBpcyBvbmx5IHZhbGlkIGR1cmluZyBwcm9iZS4KICAqCQlUaGUgcHJvYmUgZnVuY3Rpb24gYWx3YXlzIGdldHMgY2FsbGVkIGZyb20gcHJvY2VzcwogICoJCWNvbnRleHQsIHNvIGl0IGNhbiBzbGVlcC4KICAqIEByZW1vdmU6CVRoZSByZW1vdmUoKSBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIGRldmljZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzkwCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogODM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBDSSBEZXZpY2UgTWF0Y2hpbmcgYW5kIFByb2JlIExvZ2ljIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgZnVuZGFtZW50YWxseSBjaGFuZ2VzIGhvdyBQQ0kgZGV2aWNlcyBhcmUgbWF0Y2hlZCBhbmQgcHJvYmVkIGluIHRoZSBrZXJuZWwuIEluaXRpYWxseSwgSSBzZWUgdGhhdCBpdCYjMzk7cyBhbHRlcmluZyBgcGNpX21hdGNoX2RldmljZWAgdG8gcmV0dXJuIGEgYm9vbGVhbiBhbmQgcG9wdWxhdGUgYSBgcGNpX2RldmljZV9pZGAgc3RydWN0dXJlLCBpbnN0ZWFkIG9mIHJldHVybmluZyBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZS4gSXQgYWxzbyBtYWtlcyBjb3JyZXNwb25kaW5nIGFkanVzdG1lbnRzIHRvIGBwY2lfbWF0Y2hfb25lX2RldmljZWAgYW5kIGludHJvZHVjZXMgYHBjaV9pZF9mcm9tX2RldmljZWAuCgpNeSBmaXJzdCB0aG91Z2h0IGlzLCBoYW5nIG9uLCB0aGlzIGlzIHNpZ25pZmljYW50LiBDaGFuZ2luZyB0aGUgcmV0dXJuIHR5cGUgb2YgYHBjaV9tYXRjaF9kZXZpY2VgIGltcGxpZXMgYSBzdWJzdGFudGlhbCBzaGlmdCBpbiB0aGUgcHJvYmUgbWVjaGFuaXNtLiBUaGUgY29kZSBzbmlwcGV0IHNob3dzIHRoYXQgdGhlIGBpZGAgaXMgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayBvZiBgX19wY2lfZGV2aWNlX3Byb2JlYC4gVGhpcyBtZWFucyBhbnkgZHJpdmVyIHRoYXQgcHJldmlvdXNseSAqc2F2ZWQqIHRoZSBgaWRgIHBvaW50ZXIgdGhleSByZWNlaXZlZCBpbiB0aGVpciBgcHJvYmVgIGZ1bmN0aW9uIHdvdWxkIG5vdyBoYXZlIGEgZGFuZ2xpbmcgcG9pbnRlciwgd2hpY2ggaXMgYSBiaWcgZGVhbCEgVGhlIHBhdGNoIHNlZW1zIHRvIGJlIGFkZHJlc3NpbmcgZXhhY3RseSB0aGlzLCBmaXhpbmcgdGhlIGBhdGFfZ2VuZXJpY2AsIGB0cGNpMjAwYCwgYG1seHN3YCwgYW5kIGBuc3AzMmAgZHJpdmVycyB3aGljaCBhcHBhcmVudGx5IHdlcmUgZG9pbmcgcHJlY2lzZWx5IHRoYXQuIEl0JiMzOTtzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGFjdGluZyBjb3JlIFBDSSBtYXRjaGluZy4KCk5vdywgSSBuZWVkIHRvIGNvbnNpZGVyIHRoZSB0ZXN0aW5nIGltcGxpY2F0aW9ucy4gQ2FuIHRoaXMgYmUgZnV6emVkPyBBYnNvbHV0ZWx5LiBUb29scyBsaWtlIHN5emthbGxlciBjYW4gZWFzaWx5IGZ1enogUENJIGRldmljZXMgdmlhIHZpcnR1YWwgUENJIG1lY2hhbmlzbXMsIGluamVjdGluZyBhbGwgc29ydHMgb2Ygc2NlbmFyaW9zLiBTaW5jZSB0aGUgY29yZSBQQ0kgY2hhbmdlcyBpbXBhY3QgKmFsbCogZHJpdmVycywgdGhhdCBtYWtlcyBpdCBldmVuIG1vcmUgY3JpdGljYWwuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgcmVhY2hhYmxlOyBgcGNpX21hdGNoX2RldmljZWAsIGBwY2lfYWRkX2R5bmlkYCwgYG5ld19pZF9zdG9yZWAsIGFuZCBgcGNpX2J1c19tYXRjaGAgYXJlIGFsbCBkZWZpbml0ZWx5IGluIHRoZSBjYWxsIGdyYXBoLgoKTGV0JiMzOTtzIGRpZyBpbnRvIGBwY2lfYWRkX2R5bmlkYCBhbmQgYG5ld19pZF9zdG9yZWAgc3BlY2lmaWNhbGx5LiBUaGUgYG5ld19pZF9zdG9yZWAgZnVuY3Rpb24gaXMgdGhlIHN5c2ZzIGludGVyZmFjZSBmb3IgYWRkaW5nIGR5bmFtaWMgSURzLiBJdCBzZWVtcyB0aGUgcGF0Y2ggb3B0aW1pemVzIGl0LCByZW1vdmluZyBhIGR1bW15IGBwY2lfZGV2YCBhbGxvY2F0aW9uIHdoZW4gY2hlY2tpbmcgZm9yIGR1cGxpY2F0ZXMgYW5kIGluc3RlYWQgdXNlcyBgZG9fcGNpX21hdGNoX2lkYCBkaXJlY3RseSwgaW50cm9kdWNpbmcgYGRvX3BjaV9hZGRfZHluaWRgLgoKSSYjMzk7bGwgYWxzbyB3YW50IHRvIGtub3cgd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIG5lZWRlZCB0byBlbmFibGUgdGhlIGRyaXZlcnMgYWZmZWN0ZWQuIFRoaXMgcGF0Y2ggZml4ZXMgcHJvYmxlbXMgdGhhdCB3ZXJlIGluIHRoZSBkcml2ZXJzIGZvciBgQ09ORklHX0FUQV9HRU5FUklDYCwgYENPTkZJR19UUENJMjAwYCwgYENPTkZJR19NTFhTV19QQ0lgLCBhbmQgYENPTkZJR19TQ1NJX05TUDMyYC4KSSB3aWxsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvYXRhL0tjb25maWdgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBBVEFfR0VORVJJQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvYXRhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2F0YS9LY29uZmlnPTExNjM9Y29uZmlnIFBBVEFfQUNQSVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWctMTE3Mi1cbmRyaXZlcnMvYXRhL0tjb25maWc6MTE3Mzpjb25maWcgQVRBX0dFTkVSSUNcbmRyaXZlcnMvYXRhL0tjb25maWctMTE3NC1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgQVRBIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTI3NwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipLY29uZmlnIENoZWNrKioKCk9rYXksIHRpbWUgdG8gZ2V0IHRvIGl0LiBGaXJzdCwgSSBuZWVkIHRvIHZlcmlmeSBzb21ldGhpbmcgc3BlY2lmaWMgd2l0aGluIHRoZSBpLnBhY2sgY2FycmllciBjb25maWd1cmF0aW9uLiBMZXQmIzM5O3Mgc3RhcnQgYnkgbmF2aWdhdGluZyB0byB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGUsIGxvY2F0ZWQgaW4gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvYC4gSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcy4gVGhpcyBzaG91bGQgdGVsbCBtZSB3aGF0IEkgbmVlZCB0byBrbm93IGFib3V0IHRoaXMgY2Fycmllci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBUUENJMjAwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9pcGFjay8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNDM0CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqTmF2aWdhdGluZyB0aGUgS2NvbmZpZyBMYWJ5cmludGgqKgoKT2theSwgc28gdGhlIGJyZWFkY3J1bWIgdHJhaWwgbGVhZHMgbWUgdG8gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZ2AuIFJpZ2h0LCBgZHJpdmVyc2AuLi4gYGlwYWNrYC4uLiBgY2FycmllcnNgLi4uIGBLY29uZmlnYC4gVGhhdCBzcGVjaWZpYyBmaWxlIHBsYWNlbWVudCBhbHdheXMgZ2l2ZXMgbWUgYSBjbHVlIGFib3V0IHRoZSBhcmNoaXRlY3R1cmUuIEkgbmVlZCB0byBnZXQgb3JpZW50ZWQuIEJlZm9yZSBJIGV2ZW4gc3RhcnQgYW5hbHl6aW5nIHRoZSBjb250ZW50LCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyAmIzM0O0xldCYjMzk7cyBjcmFjayBvcGVuIHRoYXQgZGlyZWN0b3J5IGFuZCBzZWUgd2hhdCB0aGUgd2lkZXIgc3RydWN0dXJlIGxvb2tzIGxpa2UuIENvbnRleHQgaXMga2luZywgZXNwZWNpYWxseSB3aXRoIEtjb25maWcgZmlsZXMuJiMzNDsgR290dGEgaGF2ZSBhIGdvb2QgZ3Jhc3Agb2YgdGhlIHN1cnJvdW5kaW5nIGZpbGVzIGFuZCBob3cgdGhpcyBtb2R1bGUgZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZSBiZWZvcmUgSSBkaXZlIGludG8gdGhlIGRldGFpbHMuIFVuZGVyc3RhbmRpbmcgdGhhdCBoaWdoIGxldmVsIHZpZXcgZmlyc3Qgd2lsbCBzYXZlIGEgbG90IG9mIHRpbWUgYW5kIHBvdGVudGlhbCBjb25mdXNpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9pcGFjay9jYXJyaWVycy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDt0cGNpMjAwLmMmIzM0OywKICAgICYjMzQ7dHBjaTIwMC5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTY3MwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGBpcGFja2AgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgYWx3YXlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBgS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7cyB0aGUgaGVhcnQgb2YgaG93IHRoaXMgZHJpdmVyIGlzIGNvbnRyb2xsZWQgYW5kIGJ1aWx0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZSwgd2hhdCBkZXBlbmRlbmNpZXMgdGhlcmUgYXJlLCBhbmQgaG93IHRoZSB2YXJpb3VzIHNldHRpbmdzIGFmZmVjdCB0aGUgYnVpbGQgcHJvY2Vzcy4gSSYjMzk7bSBnb2luZyB0byBwdWxsIHVwIGBkcml2ZXJzL2lwYWNrL0tjb25maWdgIGFuZCBzdGFydCBkaXNzZWN0aW5nIGl0LCBsb29raW5nIGZvciB0aGUga2V5IGNvbXBvbmVudHMgdGhhdCBkZWZpbmUgdGhpcyBwYXJ0aWN1bGFyIG1vZHVsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVFBDSTIwMCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE4NTcKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBhcyByZXF1ZXN0ZWQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIGB0cGNpMjAwYCBLZXl3b3JkIHdpdGhpbiB0aGUgS2VybmVsIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBgdHBjaTIwMGAga2V5d29yZCBmaXRzIHdpdGhpbiB0aGUgYnJvYWRlciBjb250ZXh0IG9mIHRoZSBrZXJuZWwmIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zLiBNeSBndXQgZmVlbGluZyBpcyBpdCYjMzk7cyByZWxhdGVkIHRvIHNvbWUgc29ydCBvZiBkZXZpY2UgZHJpdmVyLCBsaWtlbHkgd2l0aGluIHRoZSBgaXBhY2tgIHN1YnN5c3RlbSwgZ2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLiBUaGVyZWZvcmUsIEkmIzM5O20gZ29pbmcgdG8ga2ljayB0aGluZ3Mgb2ZmIGJ5IGdyZXBwaW5nIGZvciBgdHBjaTIwMGAgaW4gdGhlIGBkcml2ZXJzL2lwYWNrL0tjb25maWdgIGZpbGUuIFRoaXMgc2hvdWxkIGdpdmUgbWUgdGhlIGluaXRpYWwgaGl0cyBJIG5lZWQgdG8gc3RhcnQgZm9ybWluZyBhIGNsZWFyZXIgcGljdHVyZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBpbml0aWFsIHN0ZXAgdG8gdW5kZXJzdGFuZGluZyBpdHMgcHVycG9zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHBjaTIwMCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1NTcgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQk9BUkRfVFBDSTIwMCkgJiM0Mzs9IHRwY2kyMDAub1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTExLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTI6I2luY2x1ZGUgXCYjMzQ7dHBjaTIwMC5oXCYjMzQ7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE0OnN0YXRpYyBjb25zdCB1MTYgdHBjaTIwMF9zdGF0dXNfdGltZW91dFtdID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTUtXHRUUENJMjAwX0FfVElNRU9VVCxcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIxOnN0YXRpYyBjb25zdCB1MTYgdHBjaTIwMF9zdGF0dXNfZXJyb3JbXSA9IHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIyLVx0VFBDSTIwMF9BX0VSUk9SLFxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjg6c3RhdGljIGNvbnN0IHNpemVfdCB0cGNpMjAwX3NwYWNlX3NpemVbSVBBQ0tfU1BBQ0VfQ09VTlRdID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjktXHRbSVBBQ0tfSU9fU1BBQ0VdICAgID0gVFBDSTIwMF9JT19TUEFDRV9TSVpFLFxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzY6c3RhdGljIGNvbnN0IHNpemVfdCB0cGNpMjAwX3NwYWNlX2ludGVydmFsW0lQQUNLX1NQQUNFX0NPVU5UXSA9IHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM3LVx0W0lQQUNLX0lPX1NQQUNFXSAgICA9IFRQQ0kyMDBfSU9fU1BBQ0VfSU5URVJWQUwsXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDMtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDpzdGF0aWMgc3RydWN0IHRwY2kyMDBfYm9hcmQgKmNoZWNrX3Nsb3Qoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDUte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ3LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTI6XHR0cGNpMjAwID0gZGV2X2dldF9kcnZkYXRhKGRldi1cdTAwM2VidXMtXHUwMDNlcGFyZW50KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQ6XHRpZiAodHBjaTIwMCA9PSBOVUxMKSB7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NS1cdFx0ZGV2X2luZm8oXHUwMDI2ZGV2LVx1MDAzZWRldiwgXCYjMzQ7Y2FycmllciBib2FyZCBub3QgZm91bmRcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwLVx0XHRkZXZfaW5mbyhcdTAwMjZkZXYtXHUwMDNlZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjE6XHRcdFx0IFwmIzM0O1Nsb3QgWyVkOiVkXSBkb2VzbiYjMzk7dCBleGlzdCEgTGFzdCB0cGNpMjAwIHNsb3QgaXMgJWQuXFxuXCYjMzQ7LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjItXHRcdFx0IGRldi1cdTAwM2VidXMtXHUwMDNlYnVzX25yLCBkZXYtXHUwMDNlc2xvdCwgVFBDSTIwMF9OQl9TTE9ULTEpO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY1LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjY6XHRyZXR1cm4gdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY3LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Njk6c3RhdGljIHZvaWQgdHBjaTIwMF9jbGVhcl9tYXNrKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzAtXHRcdFx0ICAgICAgIF9fbGUxNiBfX2lvbWVtICphZGRyLCB1MTYgbWFzaylcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy03Mi1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo3MzpcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnRwY2kyMDAtXHUwMDNlcmVnc19sb2NrLCBmbGFncyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy03NC1cdGlvd3JpdGUxNihpb3JlYWQxNihhZGRyKSBcdTAwMjYgKH5tYXNrKSwgYWRkcik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo3NTpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dHBjaTIwMC1cdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc2LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Nzg6c3RhdGljIHZvaWQgdHBjaTIwMF9zZXRfbWFzayhzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc5LVx0XHRcdCAgICAgX19sZTE2IF9faW9tZW0gKmFkZHIsIHUxNiBtYXNrKVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTgxLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjgyOlx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dHBjaTIwMC1cdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTgzLVx0aW93cml0ZTE2KGlvcmVhZDE2KGFkZHIpIHwgbWFzaywgYWRkcik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo4NDpcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dHBjaTIwMC1cdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTg1LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTg2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6ODc6c3RhdGljIHZvaWQgdHBjaTIwMF91bnJlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtODgte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6ODk6XHRmcmVlX2lycSh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VpcnEsICh2b2lkICopIHRwY2kyMDApO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtOTAtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5MTpcdHBjaV9pb3VubWFwKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtOTItXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5MzpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9JUF9JTlRFUkZBQ0VfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjk0Olx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX0lPX0lEX0lOVF9TUEFDRVNfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjk1Olx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX01FTTE2X1NQQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5NjpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy05Ny1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjk4Olx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTk5LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEwMC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEwMTpzdGF0aWMgdm9pZCB0cGNpMjAwX2VuYWJsZV9pcnEoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDItXHRcdFx0ICAgICAgIGludCBpc2xvdClcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEwMy17XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMDQ6XHR0cGNpMjAwX3NldF9tYXNrKHRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMDU6XHRcdFx0XHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZWNvbnRyb2xbaXNsb3RdLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTA2LVx0XHRcdFRQQ0kyMDBfSU5UMF9FTiB8IFRQQ0kyMDBfSU5UMV9FTik7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTA4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTA5OnN0YXRpYyB2b2lkIHRwY2kyMDBfZGlzYWJsZV9pcnEoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTAtXHRcdFx0XHRpbnQgaXNsb3QpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTEte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTEyOlx0dHBjaTIwMF9jbGVhcl9tYXNrKHRwY2kyMDAsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMTM6XHRcdFx0XHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZWNvbnRyb2xbaXNsb3RdLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTE0LVx0XHRcdFRQQ0kyMDBfSU5UMF9FTiB8IFRQQ0kyMDBfSU5UMV9FTik7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTE2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTE3OnN0YXRpYyBpcnFyZXR1cm5fdCB0cGNpMjAwX3Nsb3RfaXJxKHN0cnVjdCBzbG90X2lycSAqc2xvdF9pcnEpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTgte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEyNy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEyODpzdGF0aWMgaXJxcmV0dXJuX3QgdHBjaTIwMF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTI5LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEzMDpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gKHN0cnVjdCB0cGNpMjAwX2JvYXJkICopIGRldl9pZDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzMS1cdHN0cnVjdCBzbG90X2lycSAqc2xvdF9pcnE7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTM2LVx0LyogUmVhZCBzdGF0dXMgcmVnaXN0ZXIgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEzNzpcdHN0YXR1c19yZWcgPSBpb3JlYWQxNihcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXHUwMDNlc3RhdHVzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzOC1cbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNDctXHRcdFx0Y29udGludWU7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDg6XHRcdHNsb3RfaXJxID0gcmN1X2RlcmVmZXJlbmNlKHRwY2kyMDAtXHUwMDNlc2xvdHNbaV0uaXJxKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE0OTpcdFx0cmV0ID0gdHBjaTIwMF9zbG90X2lycShzbG90X2lycSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNTAtXHRcdGlmIChyZXQgPT0gLUVOT0RFVikge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTUxOlx0XHRcdGRldl9pbmZvKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE1Mi1cdFx0XHRcdCBcJiMzNDtObyByZWdpc3RlcmVkIElTUiBmb3Igc2xvdCBbJWQ6JWRdIS4gSVJRIHdpbGwgYmUgZGlzYWJsZWQuXFxuXCYjMzQ7LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTUzOlx0XHRcdFx0IHRwY2kyMDAtXHUwMDNlbnVtYmVyLCBpKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE1NDpcdFx0XHR0cGNpMjAwX2Rpc2FibGVfaXJxKHRwY2kyMDAsIGkpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTU1LVx0XHR9XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTYxLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTYyOnN0YXRpYyBpbnQgdHBjaTIwMF9mcmVlX2lycShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjMte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTY0LVx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2NTpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTY2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTY3Olx0dHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2ODpcdGlmICh0cGNpMjAwID09IE5VTEwpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjktXHRcdHJldHVybiAtRUlOVkFMO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTcwLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTcxOlx0aWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZShcdTAwMjZ0cGNpMjAwLVx1MDAzZW11dGV4KSlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3Mi1cdFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE3NDpcdGlmICh0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnEgPT0gTlVMTCkge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTc1Olx0XHRtdXRleF91bmxvY2soXHUwMDI2dHBjaTIwMC1cdTAwM2VtdXRleCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzYtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3OC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE3OTpcdHRwY2kyMDBfZGlzYWJsZV9pcnEodHBjaTIwMCwgZGV2LVx1MDAzZXNsb3QpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTgwOlx0c2xvdF9pcnEgPSB0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnE7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODEtXHQvKiB1bmluc3RhbGwgaGFuZGxlciAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTgyOlx0UkNVX0lOSVRfUE9JTlRFUih0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnEsIE5VTEwpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTgzLVx0c3luY2hyb25pemVfcmN1KCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODQtXHRrZnJlZShzbG90X2lycSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxODU6XHRtdXRleF91bmxvY2soXHUwMDI2dHBjaTIwMC1cdTAwM2VtdXRleCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODYtXHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxODk6c3RhdGljIGludCB0cGNpMjAwX3JlcXVlc3RfaXJxKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE5MC1cdFx0XHQgICAgICAgaXJxcmV0dXJuX3QgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICphcmcpXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTkzLVx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NDpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTk1LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTk2Olx0dHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NzpcdGlmICh0cGNpMjAwID09IE5VTEwpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xOTgtXHRcdHJldHVybiAtRUlOVkFMO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTk5LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjAwOlx0aWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZShcdTAwMjZ0cGNpMjAwLVx1MDAzZW11dGV4KSlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIwMS1cdFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIwMi1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIwMzpcdGlmICh0cGNpMjAwLVx1MDAzZXNsb3RzW2Rldi1cdTAwM2VzbG90XS5pcnEgIT0gTlVMTCkge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjA0LVx0XHRkZXZfZXJyKFx1MDAyNmRldi1cdTAwM2VkZXYsXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjMwLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjMxOlx0cmN1X2Fzc2lnbl9wb2ludGVyKHRwY2kyMDAtXHUwMDNlc2xvdHNbZGV2LVx1MDAzZXNsb3RdLmlycSwgc2xvdF9pcnEpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjMyOlx0dHBjaTIwMF9lbmFibGVfaXJxKHRwY2kyMDAsIGRldi1cdTAwM2VzbG90KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzMy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzNC1vdXRfdW5sb2NrOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjM1Olx0bXV0ZXhfdW5sb2NrKFx1MDAyNnRwY2kyMDAtXHUwMDNlbXV0ZXgpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjM2LVx0cmV0dXJuIHJlcztcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMzgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyMzk6c3RhdGljIGludCB0cGNpMjAwX3JlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQwLXtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNDUtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNDY6XHRpZiAocGNpX2VuYWJsZV9kZXZpY2UodHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYpIFx1MDAzYyAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQ3LVx0XHRyZXR1cm4gLUVOT0RFVjtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNDktXHQvKiBSZXF1ZXN0IElQIGludGVyZmFjZSByZWdpc3RlciAoQmFyIDIpICovXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNTA6XHRyZXMgPSBwY2lfcmVxdWVzdF9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI1MS1cdFx0XHRcdCBcJiMzNDtDYXJyaWVyIElQIGludGVyZmFjZSByZWdpc3RlcnNcJiMzNDspO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjUyLVx0aWYgKHJlcykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjUzOlx0XHRkZXZfZXJyKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI1NC1cdFx0XHRcJiMzNDsoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDIgIVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI1NTpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjU2Olx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI1Ny1cdFx0Z290byBlcnJfZGlzYWJsZV9kZXZpY2U7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYwLVx0LyogUmVxdWVzdCBJTyBJRCBJTlQgc3BhY2UgKEJhciAzKSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjYxOlx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYyLVx0XHRcdFx0IFRQQ0kyMDBfSU9fSURfSU5UX1NQQUNFU19CQVIsXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjY0LVx0aWYgKHJlcykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjY1Olx0XHRkZXZfZXJyKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2Ni1cdFx0XHRcJiMzNDsoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDMgIVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI2NzpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjY4Olx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2OS1cdFx0Z290byBlcnJfaXBfaW50ZXJmYWNlX2Jhcjtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNzItXHQvKiBSZXF1ZXN0IE1FTTggc3BhY2UgKEJhciA1KSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjczOlx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX01FTThfU1BBQ0VfQkFSLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjc0LVx0XHRcdFx0IFwmIzM0O0NhcnJpZXIgTUVNOCBzcGFjZVwmIzM0Oyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNzUtXHRpZiAocmVzKSB7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNzY6XHRcdGRldl9lcnIoXHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYtXHUwMDNlZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjc3LVx0XHRcdFwmIzM0OyhibiAweCVYLCBzbiAweCVYKSBmYWlsZWQgdG8gYWxsb2NhdGUgUENJIHJlc291cmNlIGZvciBCQVIgNSFcJiMzNDssXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNzg6XHRcdFx0dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYtXHUwMDNlYnVzLVx1MDAzZW51bWJlcixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI3OTpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXZmbik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yODAtXHRcdGdvdG8gZXJyX2lvX2lkX2ludF9zcGFjZXNfYmFyO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4My1cdC8qIFJlcXVlc3QgTUVNMTYgc3BhY2UgKEJhciA0KSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjg0Olx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCBUUENJMjAwX01FTTE2X1NQQUNFX0JBUixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4NS1cdFx0XHRcdCBcJiMzNDtDYXJyaWVyIE1FTTE2IHNwYWNlXCYjMzQ7KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4Ni1cdGlmIChyZXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI4NzpcdFx0ZGV2X2VycihcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXYsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yODgtXHRcdFx0XCYjMzQ7KGJuIDB4JVgsIHNuIDB4JVgpIGZhaWxlZCB0byBhbGxvY2F0ZSBQQ0kgcmVzb3VyY2UgZm9yIEJBUiA0IVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI4OTpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjkwOlx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI5MS1cdFx0Z290byBlcnJfbWVtOF9zcGFjZV9iYXI7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjkzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjk0Olx0LyogTWFwIGludGVybmFsIHRwY2kyMDAgZHJpdmVyIHVzZXIgc3BhY2UgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI5NTpcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncyA9XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTY6XHRcdGlvcmVtYXAocGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjk3LVx0XHRcdFx0XHQgICBUUENJMjAwX0lQX0lOVEVSRkFDRV9CQVIpLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjk4LVx0XHRcdFRQQ0kyMDBfSUZBQ0VfU0laRSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTk6XHRpZiAoIXRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzAwOlx0XHRkZXZfZXJyKFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMwMS1cdFx0XHRcJiMzNDsoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIG1hcCBkcml2ZXIgdXNlciBzcGFjZSFcJiMzNDssXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMDI6XHRcdFx0dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYtXHUwMDNlYnVzLVx1MDAzZW51bWJlcixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwMzpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXZmbik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zMDQtXHRcdHJlcyA9IC1FTk9NRU07XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzA4LVx0LyogSW5pdGlhbGl6ZSBsb2NrIHRoYXQgcHJvdGVjdHMgaW50ZXJmYWNlX3JlZ3MgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwOTpcdHNwaW5fbG9ja19pbml0KFx1MDAyNnRwY2kyMDAtXHUwMDNlcmVnc19sb2NrKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxMC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMxMTpcdGlvaWRpbnRfYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydCh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxMi1cdFx0XHRcdFx0ICBUUENJMjAwX0lPX0lEX0lOVF9TUEFDRVNfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMxMzpcdHRwY2kyMDAtXHUwMDNlbW9kX21lbVtJUEFDS19JT19TUEFDRV0gPSBpb2lkaW50X2Jhc2UgJiM0MzsgVFBDSTIwMF9JT19TUEFDRV9PRkY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMTQ6XHR0cGNpMjAwLVx1MDAzZW1vZF9tZW1bSVBBQ0tfSURfU1BBQ0VdID0gaW9pZGludF9iYXNlICYjNDM7IFRQQ0kyMDBfSURfU1BBQ0VfT0ZGO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE1Olx0dHBjaTIwMC1cdTAwM2Vtb2RfbWVtW0lQQUNLX0lOVF9TUEFDRV0gPVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzE2LVx0XHRpb2lkaW50X2Jhc2UgJiM0MzsgVFBDSTIwMF9JTlRfU1BBQ0VfT0ZGO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE3Olx0dHBjaTIwMC1cdTAwM2Vtb2RfbWVtW0lQQUNLX01FTThfU1BBQ0VdID1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMxODpcdFx0cGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzE5LVx0XHRcdFx0ICAgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMjA6XHR0cGNpMjAwLVx1MDAzZW1vZF9tZW1bSVBBQ0tfTUVNMTZfU1BBQ0VdID1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMyMTpcdFx0cGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzIyLVx0XHRcdFx0ICAgVFBDSTIwMF9NRU0xNl9TUEFDRV9CQVIpO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzMy1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIFRQQ0kyMDBfTkJfU0xPVDsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMzQ6XHRcdHdyaXRldyhzbG90X2N0cmwsIFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncy1cdTAwM2Vjb250cm9sW2ldKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzNS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMzNjpcdHJlcyA9IHJlcXVlc3RfaXJxKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWlycSxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMzNzpcdFx0XHQgIHRwY2kyMDBfaW50ZXJydXB0LCBJUlFGX1NIQVJFRCxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMzODpcdFx0XHQgIEtCVUlMRF9NT0ROQU1FLCAodm9pZCAqKSB0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzOS1cdGlmIChyZXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM0MDpcdFx0ZGV2X2VycihcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VkZXYsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNDEtXHRcdFx0XCYjMzQ7KGJuIDB4JVgsIHNuIDB4JVgpIHVuYWJsZSB0byByZWdpc3RlciBJUlEgIVwmIzM0OyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM0MjpcdFx0XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldi1cdTAwM2VidXMtXHUwMDNlbnVtYmVyLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzQzOlx0XHRcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LVx1MDAzZWRldmZuKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM0NC1cdFx0Z290byBlcnJfaW50ZXJmYWNlX3JlZ3M7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzQ5LWVycl9pbnRlcmZhY2VfcmVnczpcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM1MDpcdHBjaV9pb3VubWFwKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2LCB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzUxLWVycl9tZW0xNl9zcGFjZV9iYXI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTI6XHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1My1lcnJfbWVtOF9zcGFjZV9iYXI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTQ6XHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNOF9TUEFDRV9CQVIpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzU1LWVycl9pb19pZF9pbnRfc3BhY2VzX2JhcjpcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM1NjpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9JT19JRF9JTlRfU1BBQ0VTX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTctZXJyX2lwX2ludGVyZmFjZV9iYXI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTg6XHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTktZXJyX2Rpc2FibGVfZGV2aWNlOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzYwOlx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VwZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2MS1cdHJldHVybiByZXM7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzYzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzY0OnN0YXRpYyBpbnQgdHBjaTIwMF9nZXRfY2xvY2tyYXRlKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2NS17XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjY6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2Ny1cdF9fbGUxNiBfX2lvbWVtICphZGRyO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzY4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzY5Olx0aWYgKCF0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzcwLVx0XHRyZXR1cm4gLUVOT0RFVjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM3MS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM3MjpcdGFkZHIgPSBcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXHUwMDNlY29udHJvbFtkZXYtXHUwMDNlc2xvdF07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzMtXHRyZXR1cm4gKGlvcmVhZDE2KGFkZHIpIFx1MDAyNiBUUENJMjAwX0NMSzMyKSA/IDMyIDogODtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzUtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNzY6c3RhdGljIGludCB0cGNpMjAwX3NldF9jbG9ja3JhdGUoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2LCBpbnQgbWhlcnopXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzcte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mzc4Olx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzktXHRfX2xlMTYgX19pb21lbSAqYWRkcjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4MC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM4MTpcdGlmICghdHBjaTIwMClcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4Mi1cdFx0cmV0dXJuIC1FTk9ERVY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zODMtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozODQ6XHRhZGRyID0gXHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZWNvbnRyb2xbZGV2LVx1MDAzZXNsb3RdO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzg1LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4Ny1cdGNhc2UgODpcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM4ODpcdFx0dHBjaTIwMF9jbGVhcl9tYXNrKHRwY2kyMDAsIGFkZHIsIFRQQ0kyMDBfQ0xLMzIpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzg5LVx0XHRicmVhaztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM5MC1cdGNhc2UgMzI6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozOTE6XHRcdHRwY2kyMDBfc2V0X21hc2sodHBjaTIwMCwgYWRkciwgVFBDSTIwMF9DTEszMik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zOTItXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM5OC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM5OTpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X2Vycm9yKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwMC17XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MDE6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwMi1cdF9fbGUxNiBfX2lvbWVtICphZGRyO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwNC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwNTpcdGlmICghdHBjaTIwMClcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQwNi1cdFx0cmV0dXJuIC1FTk9ERVY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDctXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MDg6XHRhZGRyID0gXHUwMDI2dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWludGVyZmFjZV9yZWdzLVx1MDAzZXN0YXR1cztcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwOTpcdG1hc2sgPSB0cGNpMjAwX3N0YXR1c19lcnJvcltkZXYtXHUwMDNlc2xvdF07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTAtXHRyZXR1cm4gKGlvcmVhZDE2KGFkZHIpIFx1MDAyNiBtYXNrKSA/IDEgOiAwO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQxMi1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQxMzpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X3RpbWVvdXQoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDE0LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQxNTpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gY2hlY2tfc2xvdChkZXYpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDE2LVx0X19sZTE2IF9faW9tZW0gKmFkZHI7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDE4LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDE5Olx0aWYgKCF0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDIwLVx0XHRyZXR1cm4gLUVOT0RFVjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQyMS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyMjpcdGFkZHIgPSBcdTAwMjZ0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXHUwMDNlc3RhdHVzO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDIzOlx0bWFzayA9IHRwY2kyMDBfc3RhdHVzX3RpbWVvdXRbZGV2LVx1MDAzZXNsb3RdO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI0LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQyNy1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyODpzdGF0aWMgaW50IHRwY2kyMDBfcmVzZXRfdGltZW91dChzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00Mjkte1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDMwOlx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzEtXHRfX2xlMTYgX19pb21lbSAqYWRkcjtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzMtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MzQ6XHRpZiAoIXRwY2kyMDApXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzUtXHRcdHJldHVybiAtRU5PREVWO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDM2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDM3Olx0YWRkciA9IFx1MDAyNnRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpbnRlcmZhY2VfcmVncy1cdTAwM2VzdGF0dXM7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0Mzg6XHRtYXNrID0gdHBjaTIwMF9zdGF0dXNfdGltZW91dFtkZXYtXHUwMDNlc2xvdF07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MzktXG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQzLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDQ0OnN0YXRpYyB2b2lkIHRwY2kyMDBfdW5pbnN0YWxsKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ1LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ0NjpcdHRwY2kyMDBfdW5yZWdpc3Rlcih0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ0NzpcdGtmcmVlKHRwY2kyMDAtXHUwMDNlc2xvdHMpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ4LX1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ0OS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1MDpzdGF0aWMgY29uc3Qgc3RydWN0IGlwYWNrX2J1c19vcHMgdHBjaTIwMF9idXNfb3BzID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUxOlx0LnJlcXVlc3RfaXJxID0gdHBjaTIwMF9yZXF1ZXN0X2lycSxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1MjpcdC5mcmVlX2lycSA9IHRwY2kyMDBfZnJlZV9pcnEsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NTM6XHQuZ2V0X2Nsb2NrcmF0ZSA9IHRwY2kyMDBfZ2V0X2Nsb2NrcmF0ZSxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NDpcdC5zZXRfY2xvY2tyYXRlID0gdHBjaTIwMF9zZXRfY2xvY2tyYXRlLFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDU1Olx0LmdldF9lcnJvciAgICAgPSB0cGNpMjAwX2dldF9lcnJvcixcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NjpcdC5nZXRfdGltZW91dCAgID0gdHBjaTIwMF9nZXRfdGltZW91dCxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NzpcdC5yZXNldF90aW1lb3V0ID0gdHBjaTIwMF9yZXNldF90aW1lb3V0LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDU4LX07XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NTktXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NjA6c3RhdGljIGludCB0cGNpMjAwX2luc3RhbGwoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDApXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjEte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ2NDpcdHRwY2kyMDAtXHUwMDNlc2xvdHMgPSBremFsbG9jX29ianMoc3RydWN0IHRwY2kyMDBfc2xvdCwgVFBDSTIwMF9OQl9TTE9UKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ2NTpcdGlmICh0cGNpMjAwLVx1MDAzZXNsb3RzID09IE5VTEwpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjYtXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDY3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY4Olx0cmVzID0gdHBjaTIwMF9yZWdpc3Rlcih0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2OS1cdGlmIChyZXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ3MDpcdFx0a2ZyZWUodHBjaTIwMC1cdTAwM2VzbG90cyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NzE6XHRcdHRwY2kyMDAtXHUwMDNlc2xvdHMgPSBOVUxMO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDcyLVx0XHRyZXR1cm4gcmVzO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ3NC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ3NTpcdG11dGV4X2luaXQoXHUwMDI2dHBjaTIwMC1cdTAwM2VtdXRleCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzYtXHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0Nzk6c3RhdGljIHZvaWQgdHBjaTIwMF9yZWxlYXNlX2RldmljZShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODAte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ4My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ4NDpzdGF0aWMgaW50IHRwY2kyMDBfY3JlYXRlX2RldmljZShzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCwgaW50IGkpXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODUte1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5Mi1cdGRldi1cdTAwM2VzbG90ID0gaTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5MzpcdGRldi1cdTAwM2VidXMgPSB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaXBhY2tfYnVzO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDk0Olx0ZGV2LVx1MDAzZXJlbGVhc2UgPSB0cGNpMjAwX3JlbGVhc2VfZGV2aWNlO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDk1LVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5Ny1cdFx0ZGV2LVx1MDAzZXJlZ2lvbltzcGFjZV0uc3RhcnQgPVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDk4Olx0XHRcdHRwY2kyMDAtXHUwMDNlbW9kX21lbVtzcGFjZV1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5OTpcdFx0XHQmIzQzOyB0cGNpMjAwX3NwYWNlX2ludGVydmFsW3NwYWNlXSAqIGk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MDA6XHRcdGRldi1cdTAwM2VyZWdpb25bc3BhY2VdLnNpemUgPSB0cGNpMjAwX3NwYWNlX3NpemVbc3BhY2VdO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTAxLVx0fVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxNS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUxNjpzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTE3LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxOS1cdGludCByZXQsIGk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MjA6XHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyMS1cdHUzMiByZWczMjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyMi1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyMzpcdHRwY2kyMDAgPSBremFsbG9jX29iaihzdHJ1Y3QgdHBjaTIwMF9ib2FyZCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MjQ6XHRpZiAoIXRwY2kyMDApXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01MjUtXHRcdHJldHVybiAtRU5PTUVNO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTI2LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTI3Olx0dHBjaTIwMC1cdTAwM2VpbmZvID0ga3phbGxvY19vYmooc3RydWN0IHRwY2kyMDBfaW5mb3MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTI4Olx0aWYgKCF0cGNpMjAwLVx1MDAzZWluZm8pIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyOS1cdFx0cmV0ID0gLUVOT01FTTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUzMDpcdFx0Z290byBlcnJfdHBjaTIwMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUzMS1cdH1cbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDAtXHRcdHJldCA9IC1FQlVTWTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU0MTpcdFx0Z290byBlcnJfdHBjaTIwMF9pbmZvO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTQyLVx0fVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQzOlx0dHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzID0gaW9yZW1hcChcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU0NC1cdFx0XHRwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgVFBDSTIwMF9DRkdfTUVNX0JBUiksXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDUtXHRcdFx0cGNpX3Jlc291cmNlX2xlbihwZGV2LCBUUENJMjAwX0NGR19NRU1fQkFSKSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NDY6XHRpZiAoIXRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncykge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTQ3LVx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtGYWlsZWQgdG8gbWFwIFBDSSBDb25maWd1cmF0aW9uIE1lbW9yeVwmIzM0Oyk7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTU0LVx0ICogY2Fycmllci4gKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1NTpcdHJlZzMyID0gaW9yZWFkMzIodHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzICYjNDM7IExBUzFfREVTQyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NTYtXHRyZWczMiB8PSAxIFx1MDAzY1x1MDAzYyBMQVNfQklUX0JJR0VORElBTjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1NzpcdGlvd3JpdGUzMihyZWczMiwgdHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzICYjNDM7IExBUzFfREVTQyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NTgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NTk6XHRyZWczMiA9IGlvcmVhZDMyKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncyAmIzQzOyBMQVMyX0RFU0MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYwLVx0cmVnMzIgfD0gMSBcdTAwM2NcdTAwM2MgTEFTX0JJVF9CSUdFTkRJQU47XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjE6XHRpb3dyaXRlMzIocmVnMzIsIHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncyAmIzQzOyBMQVMyX0RFU0MpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYyLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYzLVx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjQ6XHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiA9IHBkZXY7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjUtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjYtXHQvKiByZWdpc3RlciB0aGUgZGV2aWNlIGFuZCBpbml0aWFsaXplIGl0ICovXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Njc6XHRyZXQgPSB0cGNpMjAwX2luc3RhbGwodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjgtXHRpZiAocmV0KSB7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Njk6XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O2Vycm9yIGR1cmluZyB0cGNpMjAwIGluc3RhbGxcXG5cJiMzNDspO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTcwLVx0XHRyZXQgPSAtRU5PREVWO1xuLS1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3NC1cdC8qIFJlZ2lzdGVyIHRoZSBjYXJyaWVyIGluIHRoZSBpbmR1c3RyeSBwYWNrIGJ1cyBkcml2ZXIgKi9cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU3NTpcdHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpcGFja19idXMgPSBpcGFja19idXNfcmVnaXN0ZXIoXHUwMDI2cGRldi1cdTAwM2VkZXYsXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NzYtXHRcdFx0XHRcdFx0ICAgICAgVFBDSTIwMF9OQl9TTE9ULFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTc3Olx0XHRcdFx0XHRcdCAgICAgIFx1MDAyNnRwY2kyMDBfYnVzX29wcyxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3OC1cdFx0XHRcdFx0XHQgICAgICBUSElTX01PRFVMRSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Nzk6XHRpZiAoIXRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpcGFja19idXMpIHtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU4MC1cdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldixcbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODItXHRcdHJldCA9IC1FRkFVTFQ7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1ODM6XHRcdGdvdG8gZXJyX3RwY2kyMDBfaW5zdGFsbDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU4NC1cdH1cbi0tXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODYtXHQvKiBzYXZlIHRoZSBidXMgbnVtYmVyIGdpdmVuIGJ5IGlwYWNrIHRvIGxvZ2dpbmcgcHVycG9zZSAqL1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTg3Olx0dHBjaTIwMC1cdTAwM2VudW1iZXIgPSB0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaXBhY2tfYnVzLVx1MDAzZWJ1c19ucjtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU4ODpcdGRldl9zZXRfZHJ2ZGF0YShcdTAwMjZwZGV2LVx1MDAzZWRldiwgdHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODktXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBUUENJMjAwX05CX1NMT1Q7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTkxOlx0XHR0cGNpMjAwX2NyZWF0ZV9kZXZpY2UodHBjaTIwMCwgaSk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTItXHRyZXR1cm4gMDtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU5My1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NDplcnJfdHBjaTIwMF9pbnN0YWxsOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTk1Olx0dHBjaTIwMF91bmluc3RhbGwodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTYtZXJyX2NmZ19yZWdzOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTk3Olx0cGNpX2lvdW5tYXAodHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZXBkZXYsIHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VjZmdfcmVncyk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTgtZXJyX3JlcXVlc3RfcmVnaW9uOlxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTk5LVx0cGNpX3JlbGVhc2VfcmVnaW9uKHBkZXYsIFRQQ0kyMDBfQ0ZHX01FTV9CQVIpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjAwOmVycl90cGNpMjAwX2luZm86XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDE6XHRrZnJlZSh0cGNpMjAwLVx1MDAzZWluZm8pO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjAyLVx0cGNpX2Rldl9wdXQocGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDM6ZXJyX3RwY2kyMDA6XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDQ6XHRrZnJlZSh0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwNS1cdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjA3LVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjA4OnN0YXRpYyB2b2lkIF9fdHBjaTIwMF9wY2lfcmVtb3ZlKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjA5LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxMDpcdGlwYWNrX2J1c191bnJlZ2lzdGVyKHRwY2kyMDAtXHUwMDNlaW5mby1cdTAwM2VpcGFja19idXMpO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjExOlx0dHBjaTIwMF91bmluc3RhbGwodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTItXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTM6XHRwY2lfaW91bm1hcCh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgdHBjaTIwMC1cdTAwM2VpbmZvLVx1MDAzZWNmZ19yZWdzKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYxNC1cbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxNTpcdHBjaV9yZWxlYXNlX3JlZ2lvbih0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiwgVFBDSTIwMF9DRkdfTUVNX0JBUik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTYtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTc6XHRwY2lfZGV2X3B1dCh0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTgtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTk6XHRrZnJlZSh0cGNpMjAwLVx1MDAzZWluZm8pO1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjIwOlx0a2ZyZWUodHBjaTIwMCk7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjEtfVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjIyLVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjIzOnN0YXRpYyB2b2lkIHRwY2kyMDBfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqZGV2KVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjI0LXtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYyNTpcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gcGNpX2dldF9kcnZkYXRhKGRldik7XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjYtXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2Mjc6XHRfX3RwY2kyMDBfcGNpX3JlbW92ZSh0cGNpMjAwKTtcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYyOC19XG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjktXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MzA6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHRwY2kyMDBfaWR0YWJsZVtdID0ge1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjMxLVx0eyBUUENJMjAwX1ZFTkRPUl9JRCwgVFBDSTIwMF9ERVZJQ0VfSUQsIFRQQ0kyMDBfU1VCVkVORE9SX0lELFxuLS1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjU3OAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgdGhlIENvbmZpZ3VyYXRpb24gZm9yIFRQQ0kyMDAgQm9hcmQgU3VwcG9ydCoqCgpSaWdodCwgYENPTkZJR19CT0FSRF9UUENJMjAwYC4uLiBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIHRoZSBpLlBhY2sgY29uZmlndXJhdGlvbiBmaWxlcy4gVGhhdCB3b3VsZCBiZSB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBkaWdnaW5nIGZvciB0aGUgYm9hcmQtc3BlY2lmaWMgb3B0aW9ucy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGBkcml2ZXJzL2lwYWNrL0tjb25maWdgIGFuZCB0aGVuIGFsc28gZGl2ZSBpbnRvIGBkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWdgLiBUaG9zZSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGVpdGhlciBhIGRpcmVjdCBkZWZpbml0aW9uIHJlbGF0ZWQgdG8gdGhlIFRQQ0kyMDAgb3IsIG1vcmUgbGlrZWx5LCBzb21lIGNvbmRpdGlvbmFsIGxvZ2ljIGJhc2VkIG9uIGEgc2ltaWxhciBvciByZWxhdGVkIGkuUGFjayBjYXJyaWVyIGJvYXJkIHRoYXQmIzM5O3MgYWxyZWFkeSBzdXBwb3J0ZWQuIEZyb20gdGhlcmUsIEkmIzM5O2xsIGxpa2VseSBuZWVkIHRvIHRyYWNlIGRlcGVuZGVuY2llcyBhbmQgdW5kZXJzdGFuZCBob3cgdGhlIGkuUGFjayBmcmFtZXdvcmsgaW50ZWdyYXRlcyB0aGUgYm9hcmQmIzM5O3MgZnVuY3Rpb25hbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJPQVJEX1RQQ0kyMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZzoyOmNvbmZpZyBCT0FSRF9UUENJMjAwXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1N1cHBvcnQgZm9yIHRoZSBURVdTIFRQQ0ktMjAwIEluZHVzdHJ5UGFjayBjYXJyaWVyIGJvYXJkXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2OTI4CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBzbmlwcGV0cywgYXMgaWYgSSB3ZXJlIHByb2Nlc3NpbmcgdGhlbSBteXNlbGY6CgoqKktjb25maWcgRGl2ZSBCZWdpbnMqKgoKQWxyaWdodCwgdGhlIGZpcnN0IGNsdWUgaXMgYENPTkZJR19CT0FSRF9UUENJMjAwYC4gVGhhdCB0ZWxscyBtZSB3ZSYjMzk7cmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIGJvYXJkIGNvbmZpZ3VyYXRpb24g4oCTIHRoZSAmIzM0O1RQQ0kyMDAsJiMzNDsgYXBwYXJlbnRseS4gVGhpcyBpcyB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBlbnRyeSBrZXkgdG8gdGhpcyBwYXJ0aWN1bGFyIHN1YnN5c3RlbSBJJiMzOTttIHRyeWluZyB0byB1bmRlcnN0YW5kLiBJdCYjMzk7cyB0aGUgZ2F0ZSwgdGhlIGZpbHRlciwgdGhlIGRlZmluaW5nIHZhcmlhYmxlLgoKTm93LCB3aGVyZSBkbyB3ZSBnbyBmcm9tIGhlcmU/IFRoZSBzZWNvbmQgcGllY2Ugb2YgdGhlIHB1enpsZSBwb2ludHMgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgLiBCaW5nbyEgR2l2ZW4gdGhlIGZpbGUgcGF0aCwgSSBpbW1lZGlhdGVseSBrbm93IHdlJiMzOTtyZSBsb29raW5nIGF0IHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIE1lbGxhbm94IEV0aGVybmV0IGRyaXZlcnMsIHNwZWNpZmljYWxseSB0aGUgYG1seHN3YCBmYW1pbHksIGEgY29yZSBkcml2ZXIgc2V0IGZvciBNZWxsYW5veCBuZXR3b3JraW5nIHNpbGljb24uIFRoZSBgS2NvbmZpZ2AgZmlsZXMgYXJlIGhvdyB3ZSBvcmNoZXN0cmF0ZSB3aGF0IGJ1aWxkcyBpbnRvIHRoZSBrZXJuZWwuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIG9mIHRoZSBidWlsZCBzeXN0ZW0gZ2V0cyBjb250cm9sbGVkIGJ5IHVzLiBUaGlzIGlzIHRoZSBwbGFjZSB0byBzdGFydCB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIHRoaXMgYm9hcmQgY29uZmlndXJhdGlvbiwgYW5kIHRoZSBNZWxsYW5veCBuZXR3b3JrIHN0YWNrLiBJIGFudGljaXBhdGUgdGhpcyBmaWxlIHdpbGwgdGVsbCBtZSBob3cgYENPTkZJR19CT0FSRF9UUENJMjAwYCBpbmZsdWVuY2VzIHRoZSBpbmNsdXNpb24sIGV4Y2x1c2lvbiwgb3IgY29uZmlndXJhdGlvbiBvZiB2YXJpb3VzIE1lbGxhbm94IGRyaXZlciBmZWF0dXJlcy4gSSYjMzk7bSBnb2luZyB0byBmaW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhpcyAmIzM0O1RQQ0kyMDAmIzM0OyBib2FyZCBhbmQgdGhlIHNwZWNpZmljcyBvZiB0aGUgTWVsbGFub3ggZHJpdmVycy4gVGhlIHBpZWNlcyBhcmUgY29taW5nIHRvZ2V0aGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYU1dfUENJJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjMzOmNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NDQxCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczoKCioqRGVsdmluZyBpbnRvIENvbmZpZ3VyYXRpb24gYW5kIERyaXZlciBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGhlIGZvY3VzIHNlZW1zIHRvIGJlIG9uIGBDT05GSUdfTUxYU1dfUENJYC4gVGhhdCYjMzk7cyB0aGUga2V5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wbGljYXRpb25zLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gY2hlY2sgdGhlIHJlbGF0ZWQgZGVwZW5kZW5jaWVzLiBCYXNlZCBvbiB0aGUgbmFtZSBJJiMzOTttIHByZXN1bWluZyB0aGlzIGlzIHJlbGF0ZWQgdG8gTWVsbGFub3ggU3dpdGNoIFBDSSBkcml2ZXJzLiBTbywgd2hlcmUgd291bGQgSSBmaW5kIHJlbGF0ZWQgY29kZT8KCkkgc2hvdWxkIGxvb2sgaW50byBgZHJpdmVycy9zY3NpL0tjb25maWdgLiBJdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiB0aGUgU0NTSSBjb250ZXh0LiBJJiMzOTtsbCBuZWVkIHRvIHNlZSBpZiBpdCBwcm92aWRlcyBhbnkgY2x1ZXMgYWJvdXQgaG93IGBDT05GSUdfTUxYU1dfUENJYCBpcyBjb25maWd1cmVkIG9yIGlmIGl0IGluZmx1ZW5jZXMsIG9yIGlzIGluZmx1ZW5jZWQsIGJ5IG90aGVyIFNDU0ktcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gSSYjMzk7bSB0aGlua2luZyBhYm91dCByZWxhdGlvbnNoaXBzIHdpdGggcmVsYXRlZCBoYXJkd2FyZSBkcml2ZXJzIGxpa2Ugc3RvcmFnZSBhbmQgbmV0d29ya2luZy4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgcmVsYXRpb25zaGlwcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNDU0lfTlNQMzImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Njc2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9LY29uZmlnPTExOTE9Y29uZmlnIFNDU0lfQU01M0M5NzRcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMjA2LVxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwNzpjb25maWcgU0NTSV9OU1AzMlxuZHJpdmVycy9zY3NpL0tjb25maWctMTIwOC1cdHRyaXN0YXRlIFwmIzM0O1dvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3ODgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMzQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBDSSBEcml2ZXIgVnVsbmVyYWJpbGl0eSBGaXgqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgc2l0dWF0aW9uOiBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCByZWxhdGVkIHRvIGBDT05GSUdfU0NTSV9OU1AzMmAsIGJ1dCB0aGUgY29yZSBjaGFuZ2UgaXMgYWN0dWFsbHkgaW4gYGRyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY2AuIFRoaXMgaXMgYmlnLCBpdCB0b3VjaGVzICphbGwqIFBDSSBkcml2ZXJzLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIHRob3JvdWdobHkuCgpUaGUgZ2lzdCBpcyB0aGF0IGBwY2lfbWF0Y2hfZGV2aWNlYCB3YXMgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhIGBwY2lfZGV2aWNlX2lkYCwgYnV0IGl0IGxvb2tzIGxpa2UgdGhlcmUmIzM5O3MgYSBzZXJpb3VzIGJ1Zy4gSXQgd2FzbiYjMzk7dCByZXR1cm5pbmcgYSBwb2ludGVyIHRvIGEgKnN0YWNrKi1hbGxvY2F0ZWQgc3RydWN0dXJlLCBidXQgdG8gdGhlIGRyaXZlciYjMzk7cyBJRCB0YWJsZSBvciBhIGR5bmFtaWMgSUQgc3RydWN0dXJlLiBXYWl0LCBJIGhhdmUgdG8gZ28gdGhyb3VnaCB0aGUgY29kZSBhZ2Fpbi4KCk9rYXksIEkgc2VlIHRoZSBwcm9ibGVtLiBJdCB1c2VkIHRvIHJldHVybiBgJmFtcDtkeW5pZC0mZ3Q7aWRgLCBhbmQgYGR5bmlkYCBjb3VsZCBiZSBmcmVlZC4gQm9vbSEgVGhhdCBtZWFucyBhIGR5bmFtaWMgSUQgY291bGQgYmUgcmVtb3ZlZCwgdGhlIGBkeW5pZGAgZnJlZWQsIGFuZCBzdWRkZW5seSB3ZSBoYXZlIGEgZGFuZ2xpbmcgcG9pbnRlciByZXR1cm5lZCBmcm9tIGBwY2lfbWF0Y2hfZGV2aWNlYC4gQW5kIGV2ZW4gd29yc2UsIHRoZSBzcGluIGxvY2sgb24gYGRydi0mZ3Q7ZHluaWRzLmxvY2tgIHdhc24mIzM5O3QgaGVsZCB3aGlsZSB0aGUgcG9pbnRlciB3YXMgYmVpbmcgdXNlZC4KClRoZSByZXR1cm5lZCBwb2ludGVyIGlzIHRoZW4gcGFzc2VkIHRvIGBwcm9iZSgpYCwgd2hpY2ggY2FuIHNsZWVwIGFuZCBwb3RlbnRpYWxseSB0YWtlIGEgKmxvbmcqIHRpbWUuIFRoaXMgbWVhbnMgdGhlIGRyaXZlciBjb3VsZCBiZSB1c2luZyBhIGRhbmdsaW5nIHBvaW50ZXIgdG8gYW4gYGlkYCB0aGF0IHdhcyByZW1vdmVkIGNvbmN1cnJlbnRseSwgYSBjbGFzc2ljIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvLiBUaGlzIGlzIGEgdmVyeSBuYXN0eSByYWNlIGNvbmRpdGlvbi4KClRoZSBmaXg/IFRoZSBwYXRjaCBub3cgY29waWVzIHRoZSBgcGNpX2RldmljZV9pZGAgaW50byBhIHN0cnVjdHVyZSBwcm92aWRlZCBieSB0aGUgY2FsbGVyIChzcGVjaWZpY2FsbHksIHRoZSBzdGFjayBvZiBgX19wY2lfZGV2aWNlX3Byb2JlYCkuIEdvb2QsIGl0JiMzOTtzIHZhbGlkIGZvciB0aGUgZHVyYXRpb24gb2YgYHByb2JlKClgLiBCdXQgbm93IEkmIzM5O20gdGhpbmtpbmcsIHdoYXQgYWJvdXQgZHJpdmVycyB0aGF0IHdlcmUgKnNhdmluZyogdGhpcyBwb2ludGVyPwoKVGhhdCYjMzk7cyB0aGUgbmV4dCBpc3N1ZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIG9mIGB0cGNpMjAwYCwgYG1seHN3YCwgYW5kIHRoZSBgbnNwMzJgIGRyaXZlci4gTG9va3MgbGlrZSB0aGUgb2xkIGNvZGUgd2FzIGRpcmVjdGx5IHNhdmluZyB0aGUgbm93LXN0YWxlIHBvaW50ZXIuIGBhdGFfZ2VuZXJpY2AgaXMgYWxzbyBvbiB0aGUgbGlzdC4gQWxsIG9mIHRoZW0gc3RvcmVkIHRoZSBwb2ludGVyIGludG8gYSBwcml2YXRlIGRhdGEgc3RydWN0dXJlLiBOb3csIGFmdGVyIHRoZSBwYXRjaCwgaWYgdGhleSBhY2Nlc3MgdGhhdCBzYXZlZCBwb2ludGVyLCB0aGV5IGFyZSByZWFkaW5nIGZyb20gYW4gaW52YWxpZCBzdGFjayBsb2NhdGlvbi4gVGhpcyBtZWFucyBhIG5ldyBVQUYuCgpTbywgdGhlIHBhdGNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgdXNlLWFmdGVyLWZyZWUgaXNzdWUuIEl04oCZcyBpbXBvcnRhbnQgdG8gc2VlIGlmIGl0IGZpeGVzIHRoZSBvcmlnaW5hbCBpc3N1ZSB3aXRoIHRoZSBkeW5hbWljIElEcyBhbmQgYWxzbyB0aGUgbmV3IG9uZSBpbnRyb2R1Y2VkIGJ5IHRoZSBzdGFjayBhbGxvY2F0aW9uLgoKU28sIHRoaXMgcGF0Y2ggaXNuJiMzOTt0IGp1c3QgYSBiYW5kLWFpZDsgaXQmIzM5O3MgYSBjcml0aWNhbCBmaXguIE5vdywgdGhlIG5leHQgc3RlcCBpcyB0byBmdXp6IHRvIG1ha2Ugc3VyZSB0aGlzIGZpeCBkb2VzbiYjMzk7dCBicmVhayBhbnl0aGluZy4gV2UgbmVlZCB0byBmb2N1cyBvbiBwb3RlbnRpYWwgYXJlYXMgb2YgY29uY2Vybi4gV2Ugc2hvdWxkIGxvb2sgYXQgYHBjaV9hZGRfZHluaWRgLCBgbmV3X2lkX3N0b3JlYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgZG9fcGNpX21hdGNoX2lkYCwgYW5kIGBkb19wY2lfYWRkX2R5bmlkYC4gQW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIG1vZGlmaWVkIGRyaXZlcnM6IGBhdGFfZ2VuZXJpY19pbml0X29uZWAsIGB0cGNpMjAwX3BjaV9wcm9iZWAsIGBtbHhzd19wY2lfcHJvYmVgLCBgbnNwMzJfcHJvYmVgLgoKTGV0JiMzOTtzIHZlcmlmeS4gYHBjaV9hZGRfZHluaWRgIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBzeXNmcy4gYG5ld19pZF9zdG9yZWAsIGlzIHRoZSBzeXNmcyBzdG9yZSBmdW5jdGlvbiBmb3IgYG5ld19pZGAuIEFuZCBgcGNpX21hdGNoX2RldmljZWAgaXMgdXNlZCBkdXJpbmcgUENJIGRldmljZSBwcm9iaW5nLgoKV2UmIzM5O2xsIG5lZWQgdG8gZW5hYmxlIGEgZmV3IGNvbmZpZ3VyYXRpb25zIHRvIHJlcHJvZHVjZSB0aGlzOiBgQVRBX0dFTkVSSUNgLCBgQk9BUkRfVFBDSTIwMGAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgLiBXYWl0LCBgTUxYU1dfUENJYCBkZXBlbmRzIG9uIGBNTFhTV19DT1JFYCwgc28gSSYjMzk7bGwgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgIHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFhTV19QQ0kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0yNT1jb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MzM6Y29uZmlnIE1MWFNXX1BDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNC1cdHRyaXN0YXRlIFwmIzM0O1BDSSBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxMjEKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRlcGVuZGVuY3kgRGVlcCBEaXZlIGZvciBNTFhTV19QQ0kqKgoKT2theSwgdGltZSB0byBnZXQgZ3JhbnVsYXIuIEJlZm9yZSBJIHByb2NlZWQsIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlc2UgZGVwZW5kZW5jaWVzIGZvciBgTUxYU1dfUENJYC4gSSBuZWVkIHRvIGVuc3VyZSBhIHN0YWJsZSBhbmQgcHJlZGljdGFibGUgZW52aXJvbm1lbnQuIEkmIzM5O20gdGhpbmtpbmcgYmV5b25kIGp1c3QgdGhlIG9idmlvdXMgaW5jbHVkZXMgYW5kIGxpYnJhcmllcy4gSSBuZWVkIHRvIGFjY291bnQgZm9yIHNwZWNpZmljIHZlcnNpb25zIG9mIGtlcm5lbCBtb2R1bGVzLCBmaXJtd2FyZSwgYW5kIGV2ZW4gcG90ZW50aWFsIGhhcmR3YXJlIHJldmlzaW9ucyB0aGF0IHRoaXMgbW9kdWxlIGludGVyYWN0cyB3aXRoLiBBcmUgdGhlcmUgYW55IGhpZGRlbiwgaW5kaXJlY3QgZGVwZW5kZW5jaWVzIGx1cmtpbmc/IEkgc2hvdWxkIGNoZWNrIG5vdCBqdXN0IHRoZSBjb2RlIGl0c2VsZiBidXQgYWxzbyBsb29rIGludG8gYnVpbGQgc2NyaXB0cyBhbmQgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgYW55dGhpbmcgdGhhdCYjMzk7cyBpbXBsaWNpdGx5IHJlcXVpcmVkLCBhbmQgd2hpY2ggbWlnaHQgbGVhZCB0byBidWlsZCBmYWlsdXJlcywgcnVudGltZSBjb25mbGljdHMsIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIFRoaXMgaXMgY3J1Y2lhbCBmb3Igc2VhbWxlc3MgaW50ZWdyYXRpb24sIGRlYnVnZ2luZywgYW5kIGF2b2lkaW5nIHRoZSBkcmVhZGVkICYjMzQ7aXQgd29ya3Mgb24gbXkgbWFjaGluZSYjMzQ7IHN5bmRyb21lIHdoZW4gbW92aW5nIHRoaXMgb3ZlciB0byBhIHRhcmdldCBzeXN0ZW0uIFRpbWUgdG8gc3RhcnQgZGlnZ2luZy4uLiBJIG5lZWQgdG8gY29uc2lkZXIgYm90aCBjb21waWxlLXRpbWUgYW5kIHJ1bi10aW1lIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0xNz1jb25maWcgTUxYU1dfQ09SRV9IV01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7SFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxOTpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgSFdNT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MjA6XHRkZXBlbmRzIG9uICEoTUxYU1dfQ09SRT15IFx1MDAyNlx1MDAyNiBIV01PTj1tKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yMS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cdGJvb2wgXCYjMzQ7VGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Mjc6XHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXHUwMDI2XHUwMDI2IFRIRVJNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjgtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTMzPWNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjM1Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT01FTSBcdTAwMjZcdTAwMjYgTUxYU1dfQ09SRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNi1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTQ0PWNvbmZpZyBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtJMkMgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjQ2Olx0ZGVwZW5kcyBvbiBJMkMgXHUwMDI2XHUwMDI2IE1MWFNXX0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDctXHRkZWZhdWx0IG1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTU0PWNvbmZpZyBNTFhTV19TUEVDVFJVTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBTcGVjdHJ1bSBmYW1pbHkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NjpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgTUxYU1dfUENJIFx1MDAyNlx1MDAyNiBORVRfU1dJVENIREVWIFx1MDAyNlx1MDAyNiBWTEFOXzgwMjFRXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU3Olx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1ODpcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU5Olx0ZGVwZW5kcyBvbiBORVRfSVBHUkUgfHwgTkVUX0lQR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIElQVjZfR1JFIHx8IElQVjZfR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjE6XHRkZXBlbmRzIG9uIFZYTEFOIHx8IFZYTEFOPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTYzLVx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz03NT1jb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjc3Olx0ZGVwZW5kcyBvbiBNTFhTV19TUEVDVFJVTSBcdTAwMjZcdTAwMjYgRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc4LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz04Mz1jb25maWcgTUxYU1dfTUlOSU1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04NC1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBtaW5pbWFsIEkyQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjg1Olx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFx1MDAyNlx1MDAyNiBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODYtXHRkZWZhdWx0IG1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE1MjQKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MgcmVnYXJkaW5nIHRoZXNlIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnM6CgoqKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llczogTUxYU1dfUENJIGFuZCBNTFhTV19DT1JFKioKClJpZ2h0LCBzbyBJIHNlZSB0aGF0IGBNTFhTV19QQ0lgIGhhcyBhIGRlcGVuZGVuY3kgb24gYE1MWFNXX0NPUkVgLiBNYWtlcyBzZW5zZSwgdGhlIFBDSSBkcml2ZXIgbGlrZWx5IGJ1aWxkcyBvbiB0aGUgY29yZSBNZWxsYW5veCBzd2l0Y2ggZnVuY3Rpb25hbGl0eS4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gbWFrZSBzdXJlIGJvdGggYXJlIGVuYWJsZWQgdG8gZ2V0IHRoZSBQQ0kgZHJpdmVyIHdvcmtpbmcuIFNvLCBJIHNob3VsZCBlbmFibGUgYm90aCBgTUxYU1dfQ09SRWAgYW5kIGBNTFhTV19QQ0lgLiBIb2xkIG9uIGEgc2Vjb25kLCBJIHJlY2FsbCB0aGF0IGBNTFhTV19DT1JFYCBpcyBhIHRyaXN0YXRlIOKAkyBpdCBjYW4gYmUgYnVpbHQgYXMgYSBtb2R1bGUuIFRoYXQgY2hhbmdlcyB0aGluZ3MgYSBiaXQuIExldCYjMzk7cyBtYWtlIHN1cmUgSSYjMzk7bSBjb25maWd1cmluZyBpdCBjb3JyZWN0bHksIHByb2JhYmx5IGFzICYjMzk7eSYjMzk7IGlmIGBNTFhTV19QQ0lgIGlzIGFsc28gJiMzOTt5JiMzOTsuIFRvIGNvbmZpcm0gdGhlIGNvbmZpZ3VyYXRpb24gZGV0YWlscywgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgIHRvIGNoZWNrLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcgY3J1Y2lhbCBhYm91dCB0aGUgZGVwZW5kZW5jaWVzIG9yIGRlZmF1bHQgYmVoYXZpb3JzIG9mIGBNTFhTV19DT1JFYCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYU1dfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2OmNvbmZpZyBNTFhTV19DT1JFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxNzpjb25maWcgTUxYU1dfQ09SRV9IV01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7SFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjI1OmNvbmZpZyBNTFhTV19DT1JFX1RIRVJNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjYtXHRib29sIFwmIzM0O1RoZXJtYWwgem9uZSBzdXBwb3J0IGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMTY5CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogOTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIHJlZ2FyZGluZyB0aGVzZSBrZXJuZWwgY29uZmlndXJhdGlvbnMuCgoqKktlcm5lbCBDb25maWd1cmF0aW9uIERlZXAgRGl2ZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCB0aGVzZSBkcml2ZXJzIGVuYWJsZWQuIE15IGluaXRpYWwgcGxhbiBpbnZvbHZlcyBlbmFibGluZyBhIHNwZWNpZmljIHNldDogYEFUQV9HRU5FUklDYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgLiBUaGF0IHNob3VsZCBnZXQgdXMgd2hlcmUgd2Ugd2FudCB0byBiZS4KCldhaXQgYSBzZWNvbmQsIGEgZGVwZW5kZW5jeSBwb3BwZWQgdXAgaW4gbXkgaGVhZC4gYFNDU0lfTlNQMzJgLi4uIHJpZ2h0LCB0aGF0IG9uZSByZWxpZXMgb24gdGhlIGBTQ1NJYCBtb2R1bGUuIEdvdHRhIG1ha2Ugc3VyZSBgU0NTSWAgaXMgZW5hYmxlZCB0b28sIGJ1dCBiZWZvcmUgSSBhdXRvbWF0aWNhbGx5IGFzc3VtZSwgSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGF0IGRlcGVuZGVuY3kgdG8gYmUgMTAwJSBzdXJlLiBCZXN0IHByYWN0aWNlOiBJJiMzOTtsbCBqdW1wIGludG8gdGhlIGBkcml2ZXJzL3Njc2kvS2NvbmZpZ2AgZmlsZSBhbmQgdmVyaWZ5IHRoZSBkZXBlbmRlbmN5IGZvciBgU0NTSV9OU1AzMmAgYmVmb3JlIEkgbW92ZSBvbi4gTm8gcG9pbnQgaW4gY2hhc2luZyBzcHVyaW91cyBidWlsZCBlcnJvcnMgbGF0ZXIhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTQ1NJX05TUDMyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL0tjb25maWc9MTE5MT1jb25maWcgU0NTSV9BTTUzQzk3NFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDYtXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMjA3OmNvbmZpZyBTQ1NJX05TUDMyXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMjA4LVx0dHJpc3RhdGUgXCYjMzQ7V29ya2JpdCBOaW5qYVNDU0ktMzJCaS9VREUgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjYwNQoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipTQ1NJX05TUDMyIERlcGVuZGVuY3kgRGVlcCBEaXZlKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHRha2UgYSBoYXJkIGxvb2sgYXQgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhpcyBgU0NTSV9OU1AzMmAgbW9kdWxlLiBJdCYjMzk7cyB0aW1lIHRvIG1hcCBvdXQgZXZlcnkgc2luZ2xlIHBpZWNlIG9mIHRoZSBwdXp6bGUuIEkmIzM5O20gZ29pbmcgdG8gY29uc2lkZXIgaXQgZnJvbSBhIGRlc2lnbiBhbmQgcGVyZm9ybWFuY2UgcG9pbnQgb2Ygdmlldy4KCkkmIzM5O20gc3RhcnRpbmcgd2l0aCBhIG1lbnRhbCBjaGVja2xpc3Q6IFdoYXQgZXh0ZXJuYWwgbGlicmFyaWVzIGRvZXMgaXQgbGluayB0bz8gQXJlIHRoZXJlIGFueSBsb3dlci1sZXZlbCBkcml2ZXJzIGl0IHJlbGllcyBvbj8gV2hhdCBhYm91dCB0aGUga2VybmVsIGludGVyZmFjZXM/IEkgbmVlZCB0byBiZSBzdXJlIEkmIzM5O3ZlIGlkZW50aWZpZWQgZXZlcnkgcG90ZW50aWFsIHBvaW50IG9mIGZhaWx1cmUgYW5kIGJvdHRsZW5lY2suIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgZnVuY3Rpb25hbGl0eTsgaXQmIzM5O3MgYWJvdXQgc3RhYmlsaXR5IGFuZCBzY2FsYWJpbGl0eS4gV2UmIzM5O3JlIHRhbGtpbmcgcGVyZm9ybWFuY2UgcHJvZmlsaW5nIHRvby4KCkkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBvZiBhbnkgY2hhbmdlcyB0byB0aG9zZSBkZXBlbmRlbmNpZXMsIHRvby4gV2hhdCBoYXBwZW5zIGlmIGEgbGlua2VkIGxpYnJhcnkgZ2V0cyB1cGRhdGVkPyBXaWxsIGl0IHJlcXVpcmUgYSByZWJ1aWxkPyBXaWxsIHRoYXQgcmVidWlsZCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgbmV3IGJ1Z3M/IEFyZSB0aGVyZSBzcGVjaWZpYyB2ZXJzaW9ucyB0aGF0IGFyZSBrbm93biB0byB3b3JrLCBhbmQgb3RoZXJzIHRoYXQgd2Ugc2hvdWxkIGF2b2lkPyBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIHNvIEkgbmVlZCB0byB0cmFjayB2ZXJzaW9uIGluZm9ybWF0aW9uIG9uIGV2ZXJ5IHNpbmdsZSBkZXBlbmRlbmN5LgoKRnVydGhlcm1vcmUsIEkgaGF2ZSB0byB0aGluayBhYm91dCBob3cgdGhpcyBtb2R1bGUgaXMgdXNlZC4gRG9lcyBpdCBoYXZlIGFueSBjaXJjdWxhciBkZXBlbmRlbmNpZXM/IERvZXMgaXQgaW50ZXJhY3Qgd2l0aCBhbnkgb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbSBpbiBhIHdheSB0aGF0IGNvdWxkIGNhdXNlIGNvbnRlbnRpb24gb3IgZGVhZGxvY2s/IEkmIzM5O2xsIHByb2JhYmx5IG5lZWQgdG8gdmlzdWFsaXplIHRoaXMgYXQgc29tZSBwb2ludC4gVU1MIGRpYWdyYW1zPyBEZXBlbmRlbmN5IGdyYXBocz8gSXQmIzM5O3MganVzdCBhIGd1dCBmZWVsaW5nIHRoYXQgdGhpcyBtb2R1bGUgaXMgaW1wb3J0YW50LCBhbmQgSSBuZWVkIHRvIGRvY3VtZW50IHRoZSBoZWNrIG91dCBvZiBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MjkgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ9Y29uZmlnIFNDU0lfTU9EXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWctNy1cdGRlZmF1bHQgbSBpZiBTQ1NJPW1cbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg6XHRkZXBlbmRzIG9uIEJMT0NLXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05LVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA9Y29uZmlnIFJBSURfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMi1cdGRlZmF1bHQgblxuZHJpdmVycy9zY3NpL0tjb25maWc6MTM6XHRkZXBlbmRzIG9uIEJMT0NLXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNDpcdGRlcGVuZHMgb24gU0NTSV9NT0RcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE1LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTIxPWNvbmZpZyBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMi1cdHRyaXN0YXRlIFwmIzM0O1NDU0kgZGV2aWNlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIzOlx0ZGVwZW5kcyBvbiBCTE9DS1xuZHJpdmVycy9zY3NpL0tjb25maWctMjQtXHRzZWxlY3QgU0NTSV9ETUEgaWYgSEFTX0RNQVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU0PWNvbmZpZyBTQ1NJX05FVExJTktcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01Ni1cdGRlZmF1bHQgblxuZHJpdmVycy9zY3NpL0tjb25maWc6NTc6XHRkZXBlbmRzIG9uIE5FVFxuZHJpdmVycy9zY3NpL0tjb25maWctNTgtXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01OT1jb25maWcgU0NTSV9QUk9DX0ZTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MC1cdGJvb2wgXCYjMzQ7bGVnYWN5IC9wcm9jL3Njc2kvIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxOlx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQUk9DX0ZTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02Mi1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcwPWNvbmZpZyBTQ1NJX0xJQl9LVU5JVF9URVNUXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBTQ1NJIE1pZCBMYXllciYjMzk7cyBzY3NpX2xpYlwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3MjpcdGRlcGVuZHMgb24gS1VOSVRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczLVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03OT1jb21tZW50IFwmIzM0O1NDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4MDpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctODEtXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04Mj1jb25maWcgQkxLX0RFVl9TRFxuZHJpdmVycy9zY3NpL0tjb25maWctODMtXHR0cmlzdGF0ZSBcJiMzNDtTQ1NJIGRpc2sgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6ODQ6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg1LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwMz1jb25maWcgQ0hSX0RFVl9TVFxuZHJpdmVycy9zY3NpL0tjb25maWctMTA0LVx0dHJpc3RhdGUgXCYjMzQ7U0NTSSB0YXBlIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwNTpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTA2LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNj1jb25maWcgQkxLX0RFVl9TUlxuZHJpdmVycy9zY3NpL0tjb25maWctMTE3LVx0dHJpc3RhdGUgXCYjMzQ7U0NTSSBDRFJPTSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTg6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IEJMS19ERVZcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExOS1cdHNlbGVjdCBDRFJPTVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEzMT1jb25maWcgQ0hSX0RFVl9TR1xuZHJpdmVycy9zY3NpL0tjb25maWctMTMyLVx0dHJpc3RhdGUgXCYjMzQ7U0NTSSBnZW5lcmljIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEzMzpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTM0LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE1Nj1jb25maWcgQkxLX0RFVl9CU0dcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE1Ny1cdGJvb2wgXCYjMzQ7L2Rldi9ic2cgc3VwcG9ydCAoU0cgdjQpXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNTg6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE1OS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE2OD1jb25maWcgQ0hSX0RFVl9TQ0hcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE2OS1cdHRyaXN0YXRlIFwmIzM0O1NDU0kgbWVkaWEgY2hhbmdlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNzA6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE3MS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xODU9Y29uZmlnIFNDU0lfRU5DTE9TVVJFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xODYtXHR0cmlzdGF0ZSBcJiMzNDtTQ1NJIEVuY2xvc3VyZSBTdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxODc6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IEVOQ0xPU1VSRV9TRVJWSUNFU1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTg4Olx0ZGVwZW5kcyBvbiBtIHx8IFNDU0lfU0FTX0FUVFJTICE9IG1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE4OS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xOTU9Y29uZmlnIFNDU0lfQ09OU1RBTlRTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xOTYtXHRib29sIFwmIzM0O1ZlcmJvc2UgU0NTSSBlcnJvciByZXBvcnRpbmcgKGtlcm5lbCBzaXplICYjNDM7PSAzNkspXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxOTc6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE5OC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yMDM9Y29uZmlnIFNDU0lfTE9HR0lOR1xuZHJpdmVycy9zY3NpL0tjb25maWctMjA0LVx0Ym9vbCBcJiMzNDtTQ1NJIGxvZ2dpbmcgZmFjaWxpdHlcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIwNTpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMjA2LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTIyOT1jb25maWcgU0NTSV9TQ0FOX0FTWU5DXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0FzeW5jaHJvbm91cyBTQ1NJIHNjYW5uaW5nXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyMzE6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTIzMi1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDM9Y29uZmlnIFNDU0lfUFJPVE9fVEVTVFxuZHJpdmVycy9zY3NpL0tjb25maWctMjQ0LVx0dHJpc3RhdGUgXCYjMzQ7c2NzaV9wcm90by5oIHVuaXQgdGVzdHNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuZHJpdmVycy9zY3NpL0tjb25maWc6MjQ1Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBLVU5JVFxuZHJpdmVycy9zY3NpL0tjb25maWctMjQ2LVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDg9bWVudSBcJiMzNDtTQ1NJIFRyYW5zcG9ydHNcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI0OTpcdGRlcGVuZHMgb24gU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMjUwLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MjUxPWNvbmZpZyBTQ1NJX1NQSV9BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWctMjUyLVx0dHJpc3RhdGUgXCYjMzQ7UGFyYWxsZWwgU0NTSSAoU1BJKSBUcmFuc3BvcnQgQXR0cmlidXRlc1wmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MjUzOlx0ZGVwZW5kcyBvbiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNTQtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MjU4PWNvbmZpZyBTQ1NJX0ZDX0FUVFJTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNTktXHR0cmlzdGF0ZSBcJiMzNDtGaWJlckNoYW5uZWwgVHJhbnNwb3J0IEF0dHJpYnV0ZXNcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI2MDpcdGRlcGVuZHMgb24gU0NTSSBcdTAwMjZcdTAwMjYgTkVUXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNjEtXHRzZWxlY3QgQkxLX0RFVl9CU0dMSUJcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNjg9Y29uZmlnIFNDU0lfSVNDU0lfQVRUUlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI2OS1cdHRyaXN0YXRlIFwmIzM0O2lTQ1NJIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzA6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IE5FVFxuZHJpdmVycy9zY3NpL0tjb25maWctMjcxLVx0c2VsZWN0IEJMS19ERVZfQlNHTElCXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjc3PWNvbmZpZyBTQ1NJX1NBU19BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWctMjc4LVx0dHJpc3RhdGUgXCYjMzQ7U0FTIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzk6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI4MC1cdHNlbGVjdCBCTEtfREVWX0JTR0xJQlxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTI4Nz1jb25maWcgU0NTSV9TUlBfQVRUUlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI4OC1cdHRyaXN0YXRlIFwmIzM0O1NSUCBUcmFuc3BvcnQgQXR0cmlidXRlc1wmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6Mjg5Olx0ZGVwZW5kcyBvbiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yOTAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjk2PW1lbnVjb25maWcgU0NTSV9MT1dMRVZFTFxuZHJpdmVycy9zY3NpL0tjb25maWctMjk3LVx0Ym9vbCBcJiMzNDtTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyOTg6XHRkZXBlbmRzIG9uIFNDU0khPW5cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI5OS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTMwMz1jb25maWcgSVNDU0lfVENQXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zMDQtXHR0cmlzdGF0ZSBcJiMzNDtpU0NTSSBJbml0aWF0b3Igb3ZlciBUQ1AvSVBcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjMwNTpcdGRlcGVuZHMgb24gU0NTSSBcdTAwMjZcdTAwMjYgSU5FVFxuZHJpdmVycy9zY3NpL0tjb25maWctMzA2LVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzM4PWNvbmZpZyBTR0lXRDkzX1NDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTMzOS1cdHRyaXN0YXRlIFwmIzM0O1NHSSBXRDkzQzkzIFNDU0kgRHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzozNDA6XHRkZXBlbmRzIG9uIFNHSV9IQVNfV0Q5MyBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMzQxLVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTM0NT1jb25maWcgQkxLX0RFVl8zV19YWFhYX1JBSURcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0Ni1cdHRyaXN0YXRlIFwmIzM0OzN3YXJlIDUvNi83Lzh4eHggQVRBLVJBSUQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MzQ3Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0OC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zNTg9Y29uZmlnIFNDU0lfSFBTQVxuZHJpdmVycy9zY3NpL0tjb25maWctMzU5LVx0dHJpc3RhdGUgXCYjMzQ7SFAgU21hcnQgQXJyYXkgU0NTSSBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM2MDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNjEtXHRzZWxlY3QgQ0hFQ0tfU0lHTkFUVVJFXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzcwPWNvbmZpZyBTQ1NJXzNXXzlYWFhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM3MS1cdHRyaXN0YXRlIFwmIzM0OzN3YXJlIDl4eHggU0FUQS1SQUlEIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM3MjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNzMtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzgxPWNvbmZpZyBTQ1NJXzNXX1NBU1xuZHJpdmVycy9zY3NpL0tjb25maWctMzgyLVx0dHJpc3RhdGUgXCYjMzQ7M3dhcmUgOTd4eCBTQVMvU0FUQS1SQUlEIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM4MzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zODQtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MzkyPWNvbmZpZyBTQ1NJX0FDQVJEXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zOTMtXHR0cmlzdGF0ZSBcJiMzNDtBQ0FSRCBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjM5NDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zOTUtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NDAxPWNvbmZpZyBTQ1NJX0FIQTE1MlhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQwMi1cdHRyaXN0YXRlIFwmIzM0O0FkYXB0ZWMgQUhBMTUyWC8yODI1IHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQwMzpcdGRlcGVuZHMgb24gSVNBIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0MDQ6XHRkZXBlbmRzIG9uICFISUdITUVNXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MDUtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00MTk9Y29uZmlnIFNDU0lfQUhBMTU0MlxuZHJpdmVycy9zY3NpL0tjb25maWctNDIwLVx0dHJpc3RhdGUgXCYjMzQ7QWRhcHRlYyBBSEExNTQyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQyMTpcdGRlcGVuZHMgb24gSVNBIFx1MDAyNlx1MDAyNiBTQ1NJIFx1MDAyNlx1MDAyNiBJU0FfRE1BX0FQSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDIyLVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQzMz1jb25maWcgU0NTSV9BSEExNzQwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MzQtXHR0cmlzdGF0ZSBcJiMzNDtBZGFwdGVjIEFIQTE3NDAgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NDM1Olx0ZGVwZW5kcyBvbiBFSVNBIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MzYtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NDQ2PWNvbmZpZyBTQ1NJX0FBQ1JBSURcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ0Ny1cdHRyaXN0YXRlIFwmIzM0O0FkYXB0ZWMgQUFDUkFJRCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NDg6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDQ5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ2ND1jb25maWcgU0NTSV9NVlVNSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDY1LVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBVTUkgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NjY6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9zY3NpL0tjb25maWctNDY3LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ3Mz1jb25maWcgU0NTSV9BRFZBTlNZU1xuZHJpdmVycy9zY3NpL0tjb25maWctNDc0LVx0dHJpc3RhdGUgXCYjMzQ7QWR2YW5TeXMgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NzU6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ3NjpcdGRlcGVuZHMgb24gKElTQSB8fCBFSVNBIHx8IFBDSSkgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ3Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00ODU9Y29uZmlnIFNDU0lfQVJDTVNSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00ODYtXHR0cmlzdGF0ZSBcJiMzNDtBUkVDQSAoQVJDMTF4eC8xMnh4LzEzeHgvMTZ4eCkgU0FUQS9TQVMgUkFJRCBIb3N0IEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ4NzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00ODgtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTA0PWNvbmZpZyBTQ1NJX0hQVElPUFxuZHJpdmVycy9zY3NpL0tjb25maWctNTA1LVx0dHJpc3RhdGUgXCYjMzQ7SGlnaFBvaW50IFJvY2tldFJBSUQgM3h4eC80eHh4IENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NTA2Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUwNy1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01MTQ9Y29uZmlnIFNDU0lfQlVTTE9HSUNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUxNS1cdHRyaXN0YXRlIFwmIzM0O0J1c0xvZ2ljIFNDU0kgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NTE2Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUxNy1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01Mjk9Y29uZmlnIFNDU0lfRkxBU0hQT0lOVFxuZHJpdmVycy9zY3NpL0tjb25maWctNTMwLVx0Ym9vbCBcJiMzNDtGbGFzaFBvaW50IHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUzMTpcdGRlcGVuZHMgb24gU0NTSV9CVVNMT0dJQyBcdTAwMjZcdTAwMjYgUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzItXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTM4PWNvbmZpZyBTQ1NJX01ZUkJcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUzOS1cdHRyaXN0YXRlIFwmIzM0O015bGV4IERBQzk2MC9EQUMxMTAwIFBDSSBSQUlEIENvbnRyb2xsZXIgKEJsb2NrIEludGVyZmFjZSlcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU0MDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NDEtXHRzZWxlY3QgUkFJRF9BVFRSU1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU1Mz1jb25maWcgU0NTSV9NWVJTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NTQtXHR0cmlzdGF0ZSBcJiMzNDtNeWxleCBEQUM5NjAvREFDMTEwMCBQQ0kgUkFJRCBDb250cm9sbGVyIChTQ1NJIEludGVyZmFjZSlcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU1NTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1NTY6XHRkZXBlbmRzIG9uICFDUFVfQklHX0VORElBTiB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU1Ny1cdHNlbGVjdCBSQUlEX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTY5PWNvbmZpZyBWTVdBUkVfUFZTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NzAtXHR0cmlzdGF0ZSBcJiMzNDtWTXdhcmUgUFZTQ1NJIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1NzE6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSSBcdTAwMjZcdTAwMjYgWDg2XG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NzItXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NTc3PWNvbmZpZyBYRU5fU0NTSV9GUk9OVEVORFxuZHJpdmVycy9zY3NpL0tjb25maWctNTc4LVx0dHJpc3RhdGUgXCYjMzQ7WEVOIFNDU0kgZnJvbnRlbmQgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1Nzk6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IFhFTlxuZHJpdmVycy9zY3NpL0tjb25maWctNTgwLVx0c2VsZWN0IFhFTl9YRU5CVVNfRlJPTlRFTkRcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01ODc9Y29uZmlnIEhZUEVSVl9TVE9SQUdFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01ODgtXHR0cmlzdGF0ZSBcJiMzNDtNaWNyb3NvZnQgSHlwZXItViB2aXJ0dWFsIHN0b3JhZ2UgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1ODk6XHRkZXBlbmRzIG9uIFNDU0kgXHUwMDI2XHUwMDI2IEhZUEVSVl9WTUJVU1xuZHJpdmVycy9zY3NpL0tjb25maWc6NTkwOlx0ZGVwZW5kcyBvbiBtIHx8IFNDU0lfRkNfQVRUUlMgIT0gbVxuZHJpdmVycy9zY3NpL0tjb25maWctNTkxLVx0ZGVmYXVsdCBIWVBFUlZcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01OTU9Y29uZmlnIExJQkZDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OTYtXHR0cmlzdGF0ZSBcJiMzNDtMaWJGQyBtb2R1bGVcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU5NzpcdGRlcGVuZHMgb24gU0NTSV9GQ19BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWctNTk4LVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NjAyPWNvbmZpZyBMSUJGQ09FXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MDMtXHR0cmlzdGF0ZSBcJiMzNDtMaWJGQ29FIG1vZHVsZVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NjA0Olx0ZGVwZW5kcyBvbiBMSUJGQ1xuZHJpdmVycy9zY3NpL0tjb25maWctNjA1LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTYwOD1jb25maWcgRkNPRVxuZHJpdmVycy9zY3NpL0tjb25maWctNjA5LVx0dHJpc3RhdGUgXCYjMzQ7RkNvRSBtb2R1bGVcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxMDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2MTE6XHRkZXBlbmRzIG9uIExJQkZDT0VcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYxMi1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MTU9Y29uZmlnIEZDT0VfRk5JQ1xuZHJpdmVycy9zY3NpL0tjb25maWctNjE2LVx0dHJpc3RhdGUgXCYjMzQ7Q2lzY28gRk5JQyBEcml2ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxNzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBYODZcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxODpcdGRlcGVuZHMgb24gTElCRkNPRVxuZHJpdmVycy9zY3NpL0tjb25maWctNjE5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTYyNj1jb25maWcgU0NTSV9TTklDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MjctXHR0cmlzdGF0ZSBcJiMzNDtDaXNjbyBTTklDIERyaXZlclwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NjI4Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYyOS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MzY9Y29uZmlnIFNDU0lfU05JQ19ERUJVR19GU1xuZHJpdmVycy9zY3NpL0tjb25maWctNjM3LVx0Ym9vbCBcJiMzNDtDaXNjbyBTTklDIERyaXZlciBEZWJ1Z2ZzIFN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYzODpcdGRlcGVuZHMgb24gU0NTSV9TTklDIFx1MDAyNlx1MDAyNiBERUJVR19GU1xuZHJpdmVycy9zY3NpL0tjb25maWctNjM5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY0Mz1jb25maWcgU0NTSV9ETVgzMTkxRFxuZHJpdmVycy9zY3NpL0tjb25maWctNjQ0LVx0dHJpc3RhdGUgXCYjMzQ7RE1YMzE5MUQgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NDU6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVCBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctNjQ2LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NjUzPWNvbmZpZyBTQ1NJX0ZET01BSU5cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY1NC1cdHRyaXN0YXRlXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NTU6XHRkZXBlbmRzIG9uIFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY1Ni1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY1Nz1jb25maWcgU0NTSV9GRE9NQUlOX1BDSVxuZHJpdmVycy9zY3NpL0tjb25maWctNjU4LVx0dHJpc3RhdGUgXCYjMzQ7RnV0dXJlIERvbWFpbiBUTUMtMzI2MC9BSEEtMjkyMEEgUENJIFNDU0kgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NjU5Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY2MC1cdHNlbGVjdCBTQ1NJX0ZET01BSU5cbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02NzQ9Y29uZmlnIFNDU0lfRkRPTUFJTl9JU0FcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY3NS1cdHRyaXN0YXRlIFwmIzM0O0Z1dHVyZSBEb21haW4gMTZ4eCBJU0EgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NzY6XHRkZXBlbmRzIG9uIElTQSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctNjc3LVx0c2VsZWN0IENIRUNLX1NJR05BVFVSRVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY4OD1jb25maWcgU0NTSV9JU0NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02ODktXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbChSKSBDNjAwIFNlcmllcyBDaGlwc2V0IFNBUyBDb250cm9sbGVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2OTA6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWc6NjkxOlx0ZGVwZW5kcyBvbiBYODZcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY5Mi1cdHNlbGVjdCBTQ1NJX1NBU19MSUJTQVNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02OTc9Y29uZmlnIFNDU0lfR0VORVJJQ19OQ1I1MzgwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02OTgtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIE5DUjUzODAvNTNjNDAwIFNDU0kgSVNBIGNhcmQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6Njk5Olx0ZGVwZW5kcyBvbiBJU0EgXHUwMDI2XHUwMDI2IFNDU0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRfTUFQXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MDAtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03MTA9Y29uZmlnIFNDU0lfSVBTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MTEtXHR0cmlzdGF0ZSBcJiMzNDtJQk0gU2VydmVSQUlEIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjcxMjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MTMtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9NzI0PWNvbmZpZyBTQ1NJX0lCTVZTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MjUtXHR0cmlzdGF0ZSBcJiMzNDtJQk0gVmlydHVhbCBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjcyNjpcdGRlcGVuZHMgb24gUFBDX1BTRVJJRVNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTcyNy1cdHNlbGVjdCBTQ1NJX1NSUF9BVFRSU1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTczND1jb25maWcgU0NTSV9JQk1WU0NTSVNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNS1cdHRyaXN0YXRlIFwmIzM0O0lCTSBWaXJ0dWFsIFNDU0kgU2VydmVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjczNjpcdGRlcGVuZHMgb24gUFBDX1BTRVJJRVMgXHUwMDI2XHUwMDI2IFRBUkdFVF9DT1JFIFx1MDAyNlx1MDAyNiBTQ1NJIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNy1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03NTE9Y29uZmlnIFNDU0lfSUJNVkZDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NTItXHR0cmlzdGF0ZSBcJiMzNDtJQk0gVmlydHVhbCBGQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NTM6XHRkZXBlbmRzIG9uIFBQQ19QU0VSSUVTIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NTQ6XHRkZXBlbmRzIG9uIFNDU0lfRkNfQVRUUlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc1NS1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03NjE9Y29uZmlnIFNDU0lfSUJNVkZDX1RSQUNFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NjItXHRib29sIFwmIzM0O2VuYWJsZSBkcml2ZXIgaW50ZXJuYWwgdHJhY2VcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc2MzpcdGRlcGVuZHMgb24gU0NTSV9JQk1WRkNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc2NC1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc3MD1jb25maWcgU0NTSV9JTklUSU9cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc3MS1cdHRyaXN0YXRlIFwmIzM0O0luaXRpbyA5MTAwVShXKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NzI6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVCBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctNzczLVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc4MT1jb25maWcgU0NTSV9JTklBMTAwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03ODItXHR0cmlzdGF0ZSBcJiMzNDtJbml0aW8gSU5JLUExMDBVMlcgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6NzgzOlx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc4NC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03OTI9Y29uZmlnIFNDU0lfUFBBXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03OTMtXHR0cmlzdGF0ZSBcJiMzNDtJT01FR0EgcGFyYWxsZWwgcG9ydCAocHBhIC0gb2xkZXIgZHJpdmVzKVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6Nzk0Olx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQVJQT1JUX1BDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3OTU6XHRkZXBlbmRzIG9uIEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc5NjpcdGRlcGVuZHMgb24gIUhJR0hNRU1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc5Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04MjE9Y29uZmlnIFNDU0lfSU1NXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MjItXHR0cmlzdGF0ZSBcJiMzNDtJT01FR0EgcGFyYWxsZWwgcG9ydCAoaW1tIC0gbmV3ZXIgZHJpdmVzKVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6ODIzOlx0ZGVwZW5kcyBvbiBTQ1NJIFx1MDAyNlx1MDAyNiBQQVJQT1JUX1BDXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4MjQ6XHRkZXBlbmRzIG9uICFISUdITUVNXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MjUtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9ODQ5PWNvbmZpZyBTQ1NJX0laSVBfU0xPV19DVFJcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg1MC1cdGJvb2wgXCYjMzQ7cHBhL2ltbSBvcHRpb24gLSBBc3N1bWUgc2xvdyBwYXJwb3J0IGNvbnRyb2wgcmVnaXN0ZXJcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg1MTpcdGRlcGVuZHMgb24gU0NTSV9QUEEgfHwgU0NTSV9JTU1cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg1Mi1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04NjM9Y29uZmlnIFNDU0lfTEFTSTcwMFxuZHJpdmVycy9zY3NpL0tjb25maWctODY0LVx0dHJpc3RhdGUgXCYjMzQ7SFAgTGFzaSBTQ1NJIHN1cHBvcnQgZm9yIDUzYzcwMC83MTBcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg2NTpcdGRlcGVuZHMgb24gR1NDIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04NjYtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04NzI9Y29uZmlnIFNDU0lfU05JXzUzQzcxMFxuZHJpdmVycy9zY3NpL0tjb25maWctODczLVx0dHJpc3RhdGUgXCYjMzQ7U05JIFJNIFNDU0kgc3VwcG9ydCBmb3IgNTNjNzEwXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4NzQ6XHRkZXBlbmRzIG9uIFNOSV9STSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctODc1LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9ODgxPWNvbmZpZyA1M0M3MDBfTEVfT05fQkVcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4Mi1cdGJvb2xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg4MzpcdGRlcGVuZHMgb24gU0NTSV9MQVNJNzAwIHx8IFNDU0lfU05JXzUzQzcxMFxuZHJpdmVycy9zY3NpL0tjb25maWctODg0LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9ODg2PWNvbmZpZyBTQ1NJX1NURVhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4Ny1cdHRyaXN0YXRlIFwmIzM0O1Byb21pc2UgU3VwZXJUcmFrIEVYIFNlcmllcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4ODg6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctODg5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg5OD1jb25maWcgNTNDNzAwX0JFX0JVU1xuZHJpdmVycy9zY3NpL0tjb25maWctODk5LVx0Ym9vbFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTAwOlx0ZGVwZW5kcyBvbiBTQ1NJX0E0MDAwVCB8fCBTQ1NJX1pPUlJPN1hYIHx8IE1WTUUxNnhfU0NTSSB8fCBCVk1FNjAwMF9TQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MDEtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05MDM9Y29uZmlnIFNDU0lfU1lNNTNDOFhYXzJcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTkwNC1cdHRyaXN0YXRlIFwmIzM0O1NZTTUzQzhYWCBWZXJzaW9uIDIgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5MDU6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctOTA2LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9OTE3PWNvbmZpZyBTQ1NJX1NZTTUzQzhYWF9ETUFfQUREUkVTU0lOR19NT0RFXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MTgtXHRpbnQgXCYjMzQ7RE1BIGFkZHJlc3NpbmcgbW9kZVwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6OTE5Olx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MjAtXHRkZWZhdWx0IFwmIzM0OzFcJiMzNDtcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05NDA9Y29uZmlnIFNDU0lfU1lNNTNDOFhYX0RFRkFVTFRfVEFHU1xuZHJpdmVycy9zY3NpL0tjb25maWctOTQxLVx0aW50IFwmIzM0O0RlZmF1bHQgdGFnZ2VkIGNvbW1hbmQgcXVldWUgZGVwdGhcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk0MjpcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxuZHJpdmVycy9zY3NpL0tjb25maWctOTQzLVx0ZGVmYXVsdCBcJiMzNDsxNlwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk1MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTUFYX1RBR1NcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk1Mi1cdGludCBcJiMzNDtNYXhpbXVtIG51bWJlciBvZiBxdWV1ZWQgY29tbWFuZHNcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk1MzpcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxuZHJpdmVycy9zY3NpL0tjb25maWctOTU0LVx0ZGVmYXVsdCBcJiMzNDs2NFwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk2MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTU1JT1xuZHJpdmVycy9zY3NpL0tjb25maWctOTYyLVx0Ym9vbCBcJiMzNDtVc2UgbWVtb3J5IG1hcHBlZCBJT1wmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6OTYzOlx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NjQtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05NzA9Y29uZmlnIFNDU0lfSVBSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NzEtXHR0cmlzdGF0ZSBcJiMzNDtJQk0gUG93ZXIgTGludXggUkFJRCBhZGFwdGVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk3MjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NzMtXHRzZWxlY3QgRldfTE9BREVSXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9OTgxPWNvbmZpZyBTQ1NJX0lQUl9UUkFDRVxuZHJpdmVycy9zY3NpL0tjb25maWctOTgyLVx0Ym9vbCBcJiMzNDtlbmFibGUgZHJpdmVyIGludGVybmFsIHRyYWNlXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5ODM6XHRkZXBlbmRzIG9uIFNDU0lfSVBSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05ODQtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05OTA9Y29uZmlnIFNDU0lfSVBSX0RVTVBcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk5MS1cdGJvb2wgXCYjMzQ7ZW5hYmxlIGFkYXB0ZXIgZHVtcCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5OTI6XHRkZXBlbmRzIG9uIFNDU0lfSVBSXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05OTMtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05OTk9Y29uZmlnIFNDU0lfWkFMT05cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwMDAtXHR0cmlzdGF0ZSBcJiMzNDtaYWxvbiBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwMDE6XHRkZXBlbmRzIG9uIEdTQyBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTAwMi1cdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwMTA9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX0RFRkFVTFRfVEFHU1xuZHJpdmVycy9zY3NpL0tjb25maWctMTAxMS1cdGludCBcJiMzNDtkZWZhdWx0IHRhZ2dlZCBjb21tYW5kIHF1ZXVlIGRlcHRoXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMDEyOlx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDEzLVx0ZGVmYXVsdCBcJiMzNDs4XCYjMzQ7XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTAzNj1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTUFYX1RBR1NcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwMzctXHRpbnQgXCYjMzQ7bWF4aW11bSBudW1iZXIgb2YgcXVldWVkIGNvbW1hbmRzXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMDM4Olx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDM5LVx0ZGVmYXVsdCBcJiMzNDszMlwmIzM0O1xuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwNTM9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX1NZTkNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwNTQtXHRpbnQgXCYjMzQ7c3luY2hyb25vdXMgdHJhbnNmZXJzIGZyZXF1ZW5jeSBpbiBNSHpcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwNTU6XHRkZXBlbmRzIG9uIFNDU0lfWkFMT05cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwNTYtXHRkZWZhdWx0IFwmIzM0OzIwXCYjMzQ7XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA4Nz1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTk9fRElTQ09OTkVDVFxuZHJpdmVycy9zY3NpL0tjb25maWctMTA4OC1cdGJvb2wgXCYjMzQ7bm90IGFsbG93IHRhcmdldHMgdG8gZGlzY29ubmVjdFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTA4OTpcdGRlcGVuZHMgb24gU0NTSV9aQUxPTiBcdTAwMjZcdTAwMjYgU0NTSV9OQ1I1M0M4WFhfREVGQVVMVF9UQUdTPTBcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwOTAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA5Nz1jb25maWcgU0NTSV9RTE9HSUNfRkFTXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDk4LVx0dHJpc3RhdGUgXCYjMzQ7UWxvZ2ljIEZBUyBTQ1NJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwOTk6XHRkZXBlbmRzIG9uIElTQSBcdTAwMjZcdTAwMjYgU0NTSVxuZHJpdmVycy9zY3NpL0tjb25maWctMTEwMC1cdGhlbHBcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTE3PWNvbmZpZyBTQ1NJX1FMT0dJQ18xMjgwXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTE4LVx0dHJpc3RhdGUgXCYjMzQ7UWxvZ2ljIFFMQSAxMjQwLzF4ODAvMXgxNjAgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTE5Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExMjAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTEyNj1jb25maWcgU0NTSV9RTE9HSUNQVElcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExMjctXHR0cmlzdGF0ZSBcJiMzNDtQVEkgUWxvZ2ljLCBJU1AgRHJpdmVyXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTI4Olx0ZGVwZW5kcyBvbiBTQlVTIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTI5LVx0aGVscFxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNDM9Y29uZmlnIFNDU0lfTFBGQ1xuZHJpdmVycy9zY3NpL0tjb25maWctMTE0NC1cdHRyaXN0YXRlIFwmIzM0O0VtdWxleCBMaWdodFB1bHNlIEZpYnJlIENoYW5uZWwgU3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0NTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ2Olx0ZGVwZW5kcyBvbiBDUFVfRlJFUVxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0NzpcdGRlcGVuZHMgb24gU0NTSV9GQ19BVFRSU1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0ODpcdGRlcGVuZHMgb24gTlZNRV9UQVJHRVRfRkMgfHwgTlZNRV9UQVJHRVRfRkM9blxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0OTpcdGRlcGVuZHMgb24gTlZNRV9GQyB8fCBOVk1FX0ZDPW5cbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNTAtXHRzZWxlY3QgQ1JDX1QxMERJRlxuLS1cbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNTc9Y29uZmlnIFNDU0lfTFBGQ19ERUJVR19GU1xuZHJpdmVycy9zY3NpL0tjb25maWctMTE1OC1cdGJvb2wgXCYjMzQ7RW11bGV4IExpZ2h0UHVsc2UgRmlicmUgQ2hhbm5lbCBkZWJ1Z2ZzIFN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExNTk6XHRkZXBlbmRzIG9uIFNDU0lfTFBGQyBcdTAwMjZcdTAwMjYgREVCVUdfRlNcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE2Nj1jb25maWcgU0NTSV9TSU03MTBcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjctXHR0cmlzdGF0ZSBcJiMzNDtTaW1wbGUgNTNjNzEwIFNDU0kgc3VwcG9ydCAoQ29tcGFxLCBOQ1IgbWFjaGluZXMpXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTY4Olx0ZGVwZW5kcyBvbiBFSVNBIFx1MDAyNlx1MDAyNiBTQ1NJXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTY5LVx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE3NT1jb25maWcgU0NTSV9EQzM5NXhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNzYtXHR0cmlzdGF0ZSBcJiMzNDtUZWtyYW0gREMzOTUoVS9VVy9GKSBhbmQgREMzMTUoVSkgU0NTSSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTc3Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlQgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNzgtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTkxPWNvbmZpZyBTQ1NJX0FNNTNDOTc0XG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTkyLVx0dHJpc3RhdGUgXCYjMzQ7VGVrcmFtIERDMzkwKFQpIGFuZCBBbTUzLzc5Qzk3NCBTQ1NJIHN1cHBvcnQgKG5ldyBkcml2ZXIpXCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTkzOlx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExOTQtXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcbi0tXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMjA3PWNvbmZpZyBTQ1NJX05TUDMyXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMjA4LVx0dHJpc3RhdGUgXCYjMzQ7V29ya2JpdCBOaW5qYVNDU0ktMzJCaS9VREUgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwOTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBTQ1NJIFx1MDAyNlx1MDAyNiAhNjRCSVQgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMTAtXHRoZWxwXG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTIxOD1jb25maWcgU0NTSV9XRDcxOVhcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMTktXHR0cmlzdGF0ZSBcJiMzNDtXZXN0ZXJuIERpZ2l0YWwgV0Q3MTkzLzcxOTcvNzI5NiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMjIwOlx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IFNDU0lcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMjEtXHRzZWxlY3QgRUVQUk9NXzkzQ1g2XG4tLVxuZHJpdmVycy9zY3NpL0tjb25maWc9MTIyNj1jb25maWcgU0NTSV9ERUJVR1xuZHJpdmVycy9zY3NpL0tjb25maWctMTIyNy1cdHRyaXN0YXRlIFwmIzM0O1NDU0kgZGVidWdnaW5nIGhvc3QgYW5kIGRldmljZSBzaW11bGF0b3JcJiMzNDtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTkyNAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDI0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgU0NTSV9OU1AzMiBhbmQgU3l6a2FsbGVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFNDU0lfTlNQMzJgIGNvbmZpZyBvcHRpb24uIFRoZSBkZXBlbmRlbmNpZXMgYXJlIGBQQ0kgJmFtcDsmYW1wOyBTQ1NJICZhbXA7JmFtcDsgITY0QklUICZhbXA7JmFtcDsgSEFTX0lPUE9SVGAuIEhtbSwgdGhlIGAhNjRCSVRgIHBhcnQgaXMgaW1tZWRpYXRlbHkgdGhyb3dpbmcgYSBmbGFnLiBJZiBzeXprYWxsZXIgaXMgcnVubmluZyBvbiBhIHN0YW5kYXJkIDY0LWJpdCBrZXJuZWwsIHdoaWNoIGlzIHRoZSBub3JtIGZvciB4ODZfNjQsIGBTQ1NJX05TUDMyYCBzaW1wbHkgKndvbiYjMzk7dCogYmUgZW5hYmxlZC4KClNvLCBmaXJzdCBpbnN0aW5jdCwgY2FuIHdlIGVuYWJsZSBpdCBvbiA2NC1iaXQ/IE5vcGUsIHRob3NlIGRlcGVuZGVuY2llcyBzcGVjaWZpY2FsbHkgYmxvY2sgaXQuIEFscmlnaHQsIHNvIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBzaG91bGQgSSBldmVuIGxpc3QgYFNDU0lfTlNQMzJgIGF0IGFsbCBpZiBpdCYjMzk7cyBub3QgcG9zc2libGUgdG8gYWN0aXZhdGUgaXQgb24gNjQtYml0IHBsYXRmb3Jtcz8gU3l6a2FsbGVyICptaWdodCogYmUgdGVzdGluZyBvbiAzMi1iaXQgYXJjaGl0ZWN0dXJlcywgbGlrZSBpMzg2IG9yIGFybTMyLCBhbmQgaW4gdGhvc2UgY2FzZXMsIGl0ICp3b3VsZCogYXBwbHkuIEJ1dCB0aGVuIGFnYWluLCBpZiB0aGUgYXJjaGl0ZWN0dXJlIGlzbiYjMzk7dCBhcHByb3ByaWF0ZSwgc3l6a2FsbGVyIGlzIGdvaW5nIHRvIGlnbm9yZSB0aGUgb3B0aW9uLCBzbyB3aGF0JiMzOTtzIHRoZSBwb2ludCBvZiBsaXN0aW5nIGl0PwoKQWgsIHJpZ2h0LCBJIG5lZWQgdG8gZm9jdXMgb24gd2hhdCYjMzk7cyAqYWN0dWFsbHkqIG5lZWRlZC4gVGhpcyBpc24mIzM5O3QganVzdCBhIGNvbXByZWhlbnNpdmUgbGlzdCwgaXQmIzM5O3MgYSBsaXN0IHRhaWxvcmVkIHRvIHdoYXQmIzM5O3MgdXNlZC4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIHRoZSBvdGhlciBvcHRpb25zLCBJIGhhdmUgYEFUQV9HRU5FUklDYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGFuZCBgTUxYU1dfUENJYC4gTm93LCBgQVRBX0dFTkVSSUNgIG5lZWRzIHRvIGJlIGludmVzdGlnYXRlZC4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9hdGEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTQ2IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL2F0YS9LY29uZmlnPTE0PW1lbnVjb25maWcgQVRBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7U2VyaWFsIEFUQSBhbmQgUGFyYWxsZWwgQVRBIGRyaXZlcnMgKGxpYmF0YSlcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTY6XHRkZXBlbmRzIG9uIEhBU19JT01FTVxuZHJpdmVycy9hdGEvS2NvbmZpZzoxNzpcdGRlcGVuZHMgb24gQkxPQ0tcbmRyaXZlcnMvYXRhL0tjb25maWctMTgtXHRzZWxlY3QgU0NTSVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzA9Y29uZmlnIEFUQV9BQ1BJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtBVEEgQUNQSSBTdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjcyOlx0ZGVwZW5kcyBvbiBBQ1BJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTczLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9ODQ9Y29uZmlnIFNBVEFfWlBPRERcbmRyaXZlcnMvYXRhL0tjb25maWctODUtXHRib29sIFwmIzM0O1NBVEEgWmVybyBQb3dlciBPcHRpY2FsIERpc2MgRHJpdmUgKFpQT0REKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg2Olx0ZGVwZW5kcyBvbiBBVEFfQUNQSSBcdTAwMjZcdTAwMjYgUE1cbmRyaXZlcnMvYXRhL0tjb25maWctODctXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05Nz1jb25maWcgU0FUQV9QTVBcbmRyaXZlcnMvYXRhL0tjb25maWctOTgtXHRib29sIFwmIzM0O1NBVEEgUG9ydCBNdWx0aXBsaWVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTk6XHRkZXBlbmRzIG9uIFNBVEFfSE9TVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDAtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwOT1jb25maWcgU0FUQV9BSENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTExMC1cdHRyaXN0YXRlIFwmIzM0O0FIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjExMTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTExMi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTExOD1jb25maWcgU0FUQV9NT0JJTEVfTFBNX1BPTElDWVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWctMTIxLVx0ZGVmYXVsdCAzXG5kcml2ZXJzL2F0YS9LY29uZmlnOjEyMjpcdGRlcGVuZHMgb24gU0FUQV9BSENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEyMy1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTE2Mz1jb25maWcgQUhDSV9CUkNNXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE2NC1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjE2NTpcdGRlcGVuZHMgb24gQVJDSF9CUkNNU1RCIHx8IEJNSVBTX0dFTkVSSUMgfHwgQVJDSF9CQ01fTlNQIHx8IFxcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE2Ni1cdFx0ICAgQVJDSF9CQ01CQ0EgfHwgQ09NUElMRV9URVNUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0xNzQ9Y29uZmlnIEFIQ0lfREE4NTBcbmRyaXZlcnMvYXRhL0tjb25maWctMTc1LVx0dHJpc3RhdGUgXCYjMzQ7RGFWaW5jaSBEQTg1MCBBSENJIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxNzY6XHRkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSV9EQTg1MCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMTc3LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MTg0PWNvbmZpZyBBSENJX0RNODE2XG5kcml2ZXJzL2F0YS9LY29uZmlnLTE4NS1cdHRyaXN0YXRlIFwmIzM0O0RhVmluY2kgRE04MTYgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTg2Olx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMTg3LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjAzPWNvbmZpZyBBSENJX1NUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIwNC1cdHRyaXN0YXRlIFwmIzM0O1NUIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjIwNTpcdGRlcGVuZHMgb24gQVJDSF9TVEkgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIwNi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTIxMj1jb25maWcgQUhDSV9JTVhcbmRyaXZlcnMvYXRhL0tjb25maWctMjEzLVx0dHJpc3RhdGUgXCYjMzQ7RnJlZXNjYWxlIGkuTVggQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjE0Olx0ZGVwZW5kcyBvbiBNRkRfU1lTQ09OIFx1MDAyNlx1MDAyNiAoQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9hdGEvS2NvbmZpZzoyMTU6XHRkZXBlbmRzIG9uIChIV01PTiBcdTAwMjZcdTAwMjYgKFRIRVJNQUwgfHwgIVRIRVJNQUxfT0YpKSB8fCAhSFdNT05cbmRyaXZlcnMvYXRhL0tjb25maWctMjE2LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjIzPWNvbmZpZyBBSENJX0NFVkFcbmRyaXZlcnMvYXRhL0tjb25maWctMjI0LVx0dHJpc3RhdGUgXCYjMzQ7Q0VWQSBBSENJIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoyMjU6XHRkZXBlbmRzIG9uIE9GXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIyNi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTIzMz1jb25maWcgQUhDSV9NVEtcbmRyaXZlcnMvYXRhL0tjb25maWctMjM0LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjM1Olx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yMzYtXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjQ0PWNvbmZpZyBBSENJX01WRUJVXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI0NS1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgRUJVIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjI0NjpcdGRlcGVuZHMgb24gQVJDSF9NVkVCVSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMjQ3LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjU0PWNvbmZpZyBBSENJX09DVEVPTlxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNTUtXHR0cmlzdGF0ZSBcJiMzNDtDYXZpdW0gT2N0ZW9uIFNvYyBTZXJpYWwgQVRBXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjI1NjpcdGRlcGVuZHMgb24gU0FUQV9BSENJX1BMQVRGT1JNIFx1MDAyNlx1MDAyNiBDQVZJVU1fT0NURU9OX1NPQ1xuZHJpdmVycy9hdGEvS2NvbmZpZy0yNTctXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI2Mz1jb25maWcgQUhDSV9TVU5YSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNjQtXHR0cmlzdGF0ZSBcJiMzNDtBbGx3aW5uZXIgc3VueGkgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjY1Olx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNjYtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0yNzM9Y29uZmlnIEFIQ0lfVEVHUkFcbmRyaXZlcnMvYXRhL0tjb25maWctMjc0LVx0dHJpc3RhdGUgXCYjMzQ7TlZJRElBIFRlZ3JhIEFIQ0kgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjI3NTpcdGRlcGVuZHMgb24gQVJDSF9URUdSQSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMjc2LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MjgzPWNvbmZpZyBBSENJX1hHRU5FXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4NC1cdHRyaXN0YXRlIFwmIzM0O0FQTSBYLUdlbmUgNi4wR2JwcyBBSENJIFNBVEEgaG9zdCBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6Mjg1Olx0ZGVwZW5kcyBvbiBQSFlfWEdFTkUgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4Ni1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI5MD1jb25maWcgQUhDSV9RT1JJUVxuZHJpdmVycy9hdGEvS2NvbmZpZy0yOTEtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgUW9ySVEgQUhDSSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MjkyOlx0ZGVwZW5kcyBvbiBPRlxuZHJpdmVycy9hdGEvS2NvbmZpZzoyOTM6XHRkZXBlbmRzIG9uIFNPQ19MUzEwMjFBIHx8IEFSQ0hfTEFZRVJTQ0FQRSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMjk0LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MzAxPWNvbmZpZyBTQVRBX0ZTTFxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMDItXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgMy4wR2JwcyBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MzAzOlx0ZGVwZW5kcyBvbiBGU0xfU09DIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMDQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zMTE9Y29uZmlnIFNBVEFfR0VNSU5JXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMxMi1cdHRyaXN0YXRlIFwmIzM0O0dlbWluaSBTQVRBIGJyaWRnZSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjMxMzpcdGRlcGVuZHMgb24gQVJDSF9HRU1JTkkgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMxNC1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTMyMj1jb25maWcgU0FUQV9BSENJX1NFQVRUTEVcbmRyaXZlcnMvYXRhL0tjb25maWctMzIzLVx0dHJpc3RhdGUgXCYjMzQ7QU1EIFNlYXR0bGUgNi4wR2JwcyBBSENJIFNBVEEgaG9zdCBjb250cm9sbGVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MzI0Olx0ZGVwZW5kcyBvbiBBUkNIX1NFQVRUTEUgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMyNS1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTMzMT1jb25maWcgU0FUQV9JTklDMTYyWFxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMzItXHR0cmlzdGF0ZSBcJiMzNDtJbml0aW8gMTYyeCBTQVRBIHN1cHBvcnQgKFZlcnkgRXhwZXJpbWVudGFsKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzozMzM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMzQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zMzg9Y29uZmlnIFNBVEFfQUNBUkRfQUhDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zMzktXHR0cmlzdGF0ZSBcJiMzNDtBQ2FyZCBBSENJIHZhcmlhbnQgKEFUUCA4NjIwKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzozNDA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zNDEtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zNDc9Y29uZmlnIFNBVEFfU0lMMjRcbmRyaXZlcnMvYXRhL0tjb25maWctMzQ4LVx0dHJpc3RhdGUgXCYjMzQ7U2lsaWNvbiBJbWFnZSAzMTI0LzMxMzIgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjM0OTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM1MC1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM4MD1jb25maWcgUERDX0FETUFcbmRyaXZlcnMvYXRhL0tjb25maWctMzgxLVx0dHJpc3RhdGUgXCYjMzQ7UGFjaWZpYyBEaWdpdGFsIEFETUEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzozODI6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0zODMtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zODg9Y29uZmlnIFBBVEFfT0NURU9OX0NGXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM4OS1cdHRyaXN0YXRlIFwmIzM0O09DVEVPTiBCb290IEJ1cyBDb21wYWN0IEZsYXNoIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MzkwOlx0ZGVwZW5kcyBvbiBDQVZJVU1fT0NURU9OX1NPQ1xuZHJpdmVycy9hdGEvS2NvbmZpZy0zOTEtXHRzZWxlY3QgUEFUQV9USU1JTkdTXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0zOTg9Y29uZmlnIFNBVEFfUVNUT1JcbmRyaXZlcnMvYXRhL0tjb25maWctMzk5LVx0dHJpc3RhdGUgXCYjMzQ7UGFjaWZpYyBEaWdpdGFsIFNBVEEgUVN0b3Igc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0MDA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MDEtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00MDc9Y29uZmlnIFNBVEFfU1g0XG5kcml2ZXJzL2F0YS9LY29uZmlnLTQwOC1cdHRyaXN0YXRlIFwmIzM0O1Byb21pc2UgU0FUQSBTWDQgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0MDk6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MTAtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00MTY9Y29uZmlnIEFUQV9CTURNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MTctXHRib29sIFwmIzM0O0FUQSBCTURNQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjQxODpcdGRlcGVuZHMgb24gSEFTX0RNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MTktXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQzMT1jb25maWcgQVRBX1BJSVhcbmRyaXZlcnMvYXRhL0tjb25maWctNDMyLVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgRVNCLCBJQ0gsIFBJSVgzLCBQSUlYNCBQQVRBL1NBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0MzM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00MzQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00NDI9Y29uZmlnIFNBVEFfRFdDXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ0My1cdHRyaXN0YXRlIFwmIzM0O0Rlc2lnbldhcmUgQ29yZXMgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjQ0NDpcdGRlcGVuZHMgb24gRE1BREVWSUNFU1xuZHJpdmVycy9hdGEvS2NvbmZpZy00NDUtXHRzZWxlY3QgR0VORVJJQ19QSFlcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ1Mz1jb25maWcgU0FUQV9EV0NfT0xEX0RNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy00NTQtXHRib29sIFwmIzM0O1N1cHBvcnQgb2xkIGRldmljZSB0cmVlc1wmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0NTU6XHRkZXBlbmRzIG9uIFNBVEFfRFdDXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ1Ni1cdHNlbGVjdCBEV19ETUFDX0NPUkVcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ2Mj1jb25maWcgU0FUQV9ISUdIQkFOS1xuZHJpdmVycy9hdGEvS2NvbmZpZy00NjMtXHR0cmlzdGF0ZSBcJiMzNDtDYWx4ZWRhIEhpZ2hiYW5rIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0NjQ6XHRkZXBlbmRzIG9uIEFSQ0hfSElHSEJBTksgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ2NS1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ3Mj1jb25maWcgU0FUQV9NVlxuZHJpdmVycy9hdGEvS2NvbmZpZy00NzMtXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0NzQ6XHRkZXBlbmRzIG9uIFBDSSB8fCBBUkNIX0RPVkUgfHwgQVJDSF9NVjc4WFgwIHx8IFxcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ3NS1cdFx0ICAgQVJDSF9NVkVCVSB8fCBBUkNIX09SSU9ONVggfHwgQ09NUElMRV9URVNUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00ODU9Y29uZmlnIFNBVEFfTlZcbmRyaXZlcnMvYXRhL0tjb25maWctNDg2LVx0dHJpc3RhdGUgXCYjMzQ7TlZJRElBIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo0ODc6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy00ODgtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz00OTQ9Y29uZmlnIFNBVEFfUFJPTUlTRVxuZHJpdmVycy9hdGEvS2NvbmZpZy00OTUtXHR0cmlzdGF0ZSBcJiMzNDtQcm9taXNlIFNBVEEgVFgyL1RYNCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjQ5NjpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ5Ny1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTUwMz1jb25maWcgU0FUQV9SQ0FSXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUwNC1cdHRyaXN0YXRlIFwmIzM0O1JlbmVzYXMgUi1DYXIgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjUwNTpcdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MDYtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01MTI9Y29uZmlnIFNBVEFfU0lMXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUxMy1cdHRyaXN0YXRlIFwmIzM0O1NpbGljb24gSW1hZ2UgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjUxNDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUxNS1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTUyMT1jb25maWcgU0FUQV9TSVNcbmRyaXZlcnMvYXRhL0tjb25maWctNTIyLVx0dHJpc3RhdGUgXCYjMzQ7U2lTIDk2NC85NjUvOTY2LzE4MCBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTIzOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNTI0LVx0c2VsZWN0IFBBVEFfU0lTXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01MzM9Y29uZmlnIFNBVEFfU1ZXXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUzNC1cdHRyaXN0YXRlIFwmIzM0O1NlcnZlcldvcmtzIEZyb2RvIC8gQXBwbGUgSzIgU0FUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjUzNTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTUzNi1cdHNlbGVjdCBTQVRBX0hPU1Rcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTU0Mz1jb25maWcgU0FUQV9VTElcbmRyaXZlcnMvYXRhL0tjb25maWctNTQ0LVx0dHJpc3RhdGUgXCYjMzQ7VUxpIEVsZWN0cm9uaWNzIFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo1NDU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy01NDYtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01NTI9Y29uZmlnIFNBVEFfVklBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU1My1cdHRyaXN0YXRlIFwmIzM0O1ZJQSBTQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTU0Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNTU1LVx0c2VsZWN0IFNBVEFfSE9TVFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NTYxPWNvbmZpZyBTQVRBX1ZJVEVTU0VcbmRyaXZlcnMvYXRhL0tjb25maWctNTYyLVx0dHJpc3RhdGUgXCYjMzQ7VklURVNTRSBWU0MtNzE3NCAvIElOVEVMIDMxMjQ0IFNBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo1NjM6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy01NjQtXHRzZWxlY3QgU0FUQV9IT1NUXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01NzI9Y29uZmlnIFBBVEFfQUxJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU3My1cdHRyaXN0YXRlIFwmIzM0O0FMaSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTc0Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvYXRhL0tjb25maWctNTc1LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NTgyPWNvbmZpZyBQQVRBX0FNRFxuZHJpdmVycy9hdGEvS2NvbmZpZy01ODMtXHR0cmlzdGF0ZSBcJiMzNDtBTUQvTlZpZGlhIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo1ODQ6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy01ODUtXHRzZWxlY3QgUEFUQV9USU1JTkdTXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz01OTI9Y29uZmlnIFBBVEFfQVJBU0FOX0NGXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU5My1cdHRyaXN0YXRlIFwmIzM0O0FSQVNBTiBDb21wYWN0Rmxhc2ggUEFUQSBDb250cm9sbGVyIFN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NTk0Olx0ZGVwZW5kcyBvbiBBUkNIX1NQRUFSMTNYWCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWc6NTk1Olx0ZGVwZW5kcyBvbiBETUFERVZJQ0VTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU5Ni1cdHNlbGVjdCBETUFfRU5HSU5FXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz02MDA9Y29uZmlnIFBBVEFfQVJUT1BcbmRyaXZlcnMvYXRhL0tjb25maWctNjAxLVx0dHJpc3RhdGUgXCYjMzQ7QVJUT1AgNjIxMC82MjYwIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo2MDI6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MDMtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz02MDg9Y29uZmlnIFBBVEFfQVRJSVhQXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYwOS1cdHRyaXN0YXRlIFwmIzM0O0FUSSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NjEwOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNjExLVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjE3PWNvbmZpZyBQQVRBX0FUUDg2N1hcbmRyaXZlcnMvYXRhL0tjb25maWctNjE4LVx0dHJpc3RhdGUgXCYjMzQ7QVJUT1AvQWNhcmQgQVRQODY3WCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NjE5Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNjIwLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjI3PWNvbmZpZyBQQVRBX0NNRDY0WFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MjgtXHR0cmlzdGF0ZSBcJiMzNDtDTUQ2NHggUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjYyOTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYzMC1cdHNlbGVjdCBQQVRBX1RJTUlOR1Ncbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTYzNz1jb25maWcgUEFUQV9DUzU1MjBcbmRyaXZlcnMvYXRhL0tjb25maWctNjM4LVx0dHJpc3RhdGUgXCYjMzQ7Q1M1NTEwLzU1MjAgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjYzOTpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiAoWDg2XzMyIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvYXRhL0tjb25maWctNjQwLVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjQ2PWNvbmZpZyBQQVRBX0NTNTUzMFxuZHJpdmVycy9hdGEvS2NvbmZpZy02NDctXHR0cmlzdGF0ZSBcJiMzNDtDUzU1MzAgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjY0ODpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiAoWDg2XzMyIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvYXRhL0tjb25maWctNjQ5LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NjU1PWNvbmZpZyBQQVRBX0NTNTUzNVxuZHJpdmVycy9hdGEvS2NvbmZpZy02NTYtXHR0cmlzdGF0ZSBcJiMzNDtDUzU1MzUgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjY1NzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiAoWDg2XzMyIHx8IChYODZfNjQgXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVCkpXG5kcml2ZXJzL2F0YS9LY29uZmlnOjY1ODpcdGRlcGVuZHMgb24gIVVNTFxuZHJpdmVycy9hdGEvS2NvbmZpZy02NTktXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz02NjU9Y29uZmlnIFBBVEFfQ1M1NTM2XG5kcml2ZXJzL2F0YS9LY29uZmlnLTY2Ni1cdHRyaXN0YXRlIFwmIzM0O0NTNTUzNiBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NjY3Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IChYODZfMzIgfHwgTUlQUyB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY2OC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTY3ND1jb25maWcgUEFUQV9DWVBSRVNTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY3NS1cdHRyaXN0YXRlIFwmIzM0O0N5cHJlc3MgQ1k4MkM2OTMgUEFUQSBzdXBwb3J0IChWZXJ5IEV4cGVyaW1lbnRhbClcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6Njc2Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvYXRhL0tjb25maWctNjc3LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9Njg0PWNvbmZpZyBQQVRBX0VGQVJcbmRyaXZlcnMvYXRhL0tjb25maWctNjg1LVx0dHJpc3RhdGUgXCYjMzQ7RUZBUiBTTEM5MEU2NiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjY4NjpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY4Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTY5Mz1jb25maWcgUEFUQV9FUDkzWFhcbmRyaXZlcnMvYXRhL0tjb25maWctNjk0LVx0dHJpc3RhdGUgXCYjMzQ7Q2lycnVzIExvZ2ljIEVQOTN4eCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6Njk1Olx0ZGVwZW5kcyBvbiBBUkNIX0VQOTNYWCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctNjk2LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzAzPWNvbmZpZyBQQVRBX0ZUSURFMDEwXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcwNC1cdHRyaXN0YXRlIFwmIzM0O0ZhcmFkYXkgVGVjaG5vbG9neSBGVElERTAxMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzA1Olx0ZGVwZW5kcyBvbiBBUk0gfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnOjcwNjpcdGRlcGVuZHMgb24gU0FUQV9HRU1JTklcbmRyaXZlcnMvYXRhL0tjb25maWctNzA3LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzEzPWNvbmZpZyBQQVRBX0hQVDM2NlxuZHJpdmVycy9hdGEvS2NvbmZpZy03MTQtXHR0cmlzdGF0ZSBcJiMzNDtIUFQgMzY2LzM2OCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzE1Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctNzE2LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzIyPWNvbmZpZyBQQVRBX0hQVDM3WFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MjMtXHR0cmlzdGF0ZSBcJiMzNDtIUFQgMzcwLzM3MEEvMzcxLzM3Mi8zNzQvMzAyIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo3MjQ6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MjUtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz03MzE9Y29uZmlnIFBBVEFfSFBUM1gyTlxuZHJpdmVycy9hdGEvS2NvbmZpZy03MzItXHR0cmlzdGF0ZSBcJiMzNDtIUFQgMzcxTi8zNzJOLzMwMk4gUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjczMzpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTczNC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc0MD1jb25maWcgUEFUQV9IUFQzWDNcbmRyaXZlcnMvYXRhL0tjb25maWctNzQxLVx0dHJpc3RhdGUgXCYjMzQ7SFBUIDM0My8zNjMgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc0MjpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc0My1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc0OT1jb25maWcgUEFUQV9IUFQzWDNfRE1BXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1MC1cdGJvb2wgXCYjMzQ7SFBUIDM0My8zNjMgRE1BIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzUxOlx0ZGVwZW5kcyBvbiBQQVRBX0hQVDNYM1xuZHJpdmVycy9hdGEvS2NvbmZpZy03NTItXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz03NTc9Y29uZmlnIFBBVEFfSUNTSURFXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1OC1cdHRyaXN0YXRlIFwmIzM0O0Fjb3JuIElDUyBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzU5Olx0ZGVwZW5kcyBvbiBBUk0gXHUwMDI2XHUwMDI2IEFSQ0hfQUNPUk5cbmRyaXZlcnMvYXRhL0tjb25maWctNzYwLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9NzY2PWNvbmZpZyBQQVRBX0lNWFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NjctXHR0cmlzdGF0ZSBcJiMzNDtQQVRBIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBpTVhcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6NzY4Olx0ZGVwZW5kcyBvbiBBUkNIX01YQyB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctNzY5LVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9Nzc2PWNvbmZpZyBQQVRBX0lUODIxM1xuZHJpdmVycy9hdGEvS2NvbmZpZy03NzctXHR0cmlzdGF0ZSBcJiMzNDtJVDgyMTMgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc3ODpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc3OS1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc4NT1jb25maWcgUEFUQV9JVDgyMVhcbmRyaXZlcnMvYXRhL0tjb25maWctNzg2LVx0dHJpc3RhdGUgXCYjMzQ7SVQ4MjExLzIgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc4NzpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc4OC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc5NT1jb25maWcgUEFUQV9KTUlDUk9OXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc5Ni1cdHRyaXN0YXRlIFwmIzM0O0pNaWNyb24gUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjc5NzpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc5OC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgwND1jb25maWcgUEFUQV9NQUNJT1xuZHJpdmVycy9hdGEvS2NvbmZpZy04MDUtXHR0cmlzdGF0ZSBcJiMzNDtBcHBsZSBQb3dlck1hYy9Qb3dlckJvb2sgaW50ZXJuYWwgJiMzOTtNYWNJTyYjMzk7IElERVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4MDY6XHRkZXBlbmRzIG9uIFBQQ19QTUFDXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgwNy1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgxMz1jb25maWcgUEFUQV9NQVJWRUxMXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgxNC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgUEFUQSBzdXBwb3J0IHZpYSBsZWdhY3kgbW9kZVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4MTU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy04MTYtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04MjQ9Y29uZmlnIFBBVEFfTVBDNTJ4eFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MjUtXHR0cmlzdGF0ZSBcJiMzNDtGcmVlc2NhbGUgTVBDNTJ4eCBTb0MgaW50ZXJuYWwgSURFXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjgyNjpcdGRlcGVuZHMgb24gUFBDX01QQzUyeHggXHUwMDI2XHUwMDI2IFBQQ19CRVNUQ09NTVxuZHJpdmVycy9hdGEvS2NvbmZpZy04MjctXHRzZWxlY3QgUFBDX0JFU1RDT01NX0FUQVxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9ODM0PWNvbmZpZyBQQVRBX05FVENFTExcbmRyaXZlcnMvYXRhL0tjb25maWctODM1LVx0dHJpc3RhdGUgXCYjMzQ7TkVUQ0VMTCBSZXZvbHV0aW9uIFJBSUQgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4MzY6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MzctXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04NDM9Y29uZmlnIFBBVEFfTklOSkEzMlxuZHJpdmVycy9hdGEvS2NvbmZpZy04NDQtXHR0cmlzdGF0ZSBcJiMzNDtOaW5qYTMyL0RlbGtpbiBDYXJkYnVzIEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg0NTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg0Ni1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg1Mj1jb25maWcgUEFUQV9OUzg3NDE1XG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1My1cdHRyaXN0YXRlIFwmIzM0O05hdCBTZW1pIE5TODc0MTUgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg1NDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1NS1cdHNlbGVjdCBQQVRBX1RJTUlOR1Ncbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg2Mj1jb25maWcgUEFUQV9PTERQSUlYXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg2My1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFBBVEEgb2xkIFBJSVggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4NjQ6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy04NjUtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04NzA9Y29uZmlnIFBBVEFfT1BUSURNQVxuZHJpdmVycy9hdGEvS2NvbmZpZy04NzEtXHR0cmlzdGF0ZSBcJiMzNDtPUFRJIEZpcmVTdGFyIFBBVEEgc3VwcG9ydCAoVmVyeSBFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg3MjpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg3My1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg4MD1jb25maWcgUEFUQV9QREMyMDI3WFxuZHJpdmVycy9hdGEvS2NvbmZpZy04ODEtXHR0cmlzdGF0ZSBcJiMzNDtQcm9taXNlIFBBVEEgMjAyN3ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo4ODI6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy04ODMtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz04ODg9Y29uZmlnIFBBVEFfUERDX09MRFxuZHJpdmVycy9hdGEvS2NvbmZpZy04ODktXHR0cmlzdGF0ZSBcJiMzNDtPbGRlciBQcm9taXNlIFBBVEEgY29udHJvbGxlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5MDpcdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg5MS1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg5Nz1jb25maWcgUEFUQV9SQURJU1lTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg5OC1cdHRyaXN0YXRlIFwmIzM0O1JBRElTWVMgODI2MDAgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5OTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkwMC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTkwNj1jb25maWcgUEFUQV9SRENcbmRyaXZlcnMvYXRhL0tjb25maWctOTA3LVx0dHJpc3RhdGUgXCYjMzQ7UkRDIFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo5MDg6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy05MDktXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05MTY9Y29uZmlnIFBBVEFfU0MxMjAwXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkxNy1cdHRyaXN0YXRlIFwmIzM0O1NDMTIwMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTE4Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IChYODZfMzIgfHwgQ09NUElMRV9URVNUKSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MTktXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05MjU9Y29uZmlnIFBBVEFfU0NIXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkyNi1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFNDSCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTI3Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctOTI4LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTM0PWNvbmZpZyBQQVRBX1NFUlZFUldPUktTXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkzNS1cdHRyaXN0YXRlIFwmIzM0O1NFUlZFUldPUktTIE9TQjQvQ1NCNS9DU0I2L0hUMTAwMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTM2Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT1BPUlRcbmRyaXZlcnMvYXRhL0tjb25maWctOTM3LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTQzPWNvbmZpZyBQQVRBX1NJTDY4MFxuZHJpdmVycy9hdGEvS2NvbmZpZy05NDQtXHR0cmlzdGF0ZSBcJiMzNDtDTUQgLyBTaWxpY29uIEltYWdlIDY4MCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTQ1Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctOTQ2LVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTUxPWNvbmZpZyBQQVRBX1NJU1xuZHJpdmVycy9hdGEvS2NvbmZpZy05NTItXHR0cmlzdGF0ZSBcJiMzNDtTaVMgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjk1MzpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk1NC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk1OT1jb25maWcgUEFUQV9UT1NISUJBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2MC1cdHRyaXN0YXRlIFwmIzM0O1Rvc2hpYmEgUGljY29sbyBzdXBwb3J0IChFeHBlcmltZW50YWwpXCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjk2MTpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2Mi1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk2OD1jb25maWcgUEFUQV9UUklGTEVYXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2OS1cdHRyaXN0YXRlIFwmIzM0O0NvbXBhcSBUcmlmbGV4IFBBVEEgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzo5NzA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy05NzEtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz05Nzc9Y29uZmlnIFBBVEFfVklBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk3OC1cdHRyaXN0YXRlIFwmIzM0O1ZJQSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6OTc5Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctOTgwLVx0c2VsZWN0IFBBVEFfVElNSU5HU1xuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9OTg3PWNvbmZpZyBQQVRBX1BYQVxuZHJpdmVycy9hdGEvS2NvbmZpZy05ODgtXHR0cmlzdGF0ZSBcJiMzNDtQWEEgRE1BLWNhcGFibGUgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjk4OTpcdGRlcGVuZHMgb24gQVJDSF9QWEEgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk5MC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk5OD1jb25maWcgUEFUQV9XSU5CT05EXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk5OS1cdHRyaXN0YXRlIFwmIzM0O1dpbmJvbmQgU0w4MkMxMDUgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwMDA6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDAxLVx0aGVscFxuLS1cbmRyaXZlcnMvYXRhL0tjb25maWc9MTAxMT1jb25maWcgUEFUQV9DTUQ2NDBfUENJXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMTItXHR0cmlzdGF0ZSBcJiMzNDtDTUQ2NDAgUENJIFBBVEEgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDEzOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctMTAxNC1cdHNlbGVjdCBQQVRBX1RJTUlOR1Ncbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwMjI9Y29uZmlnIFBBVEFfRkFMQ09OXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMjMtXHR0cmlzdGF0ZSBcJiMzNDtBdGFyaSBGYWxjb24gYW5kIFE0MC9RNjAgUEFUQSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwMjQ6XHRkZXBlbmRzIG9uIE02OEsgXHUwMDI2XHUwMDI2IChBVEFSSSB8fCBRNDApXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMjUtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0xMDMxPWNvbmZpZyBQQVRBX0dBWUxFXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMzItXHR0cmlzdGF0ZSBcJiMzNDtBbWlnYSBHYXlsZSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTAzMzpcdGRlcGVuZHMgb24gTTY4SyBcdTAwMjZcdTAwMjYgQU1JR0FcbmRyaXZlcnMvYXRhL0tjb25maWctMTAzNC1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNDM9Y29uZmlnIFBBVEFfQlVEREhBXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNDQtXHR0cmlzdGF0ZSBcJiMzNDtCdWRkaGEvQ2F0d2Vhc2VsL1gtU3VyZiBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA0NTpcdGRlcGVuZHMgb24gWk9SUk9cbmRyaXZlcnMvYXRhL0tjb25maWctMTA0Ni1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNTU9Y29uZmlnIFBBVEFfSVNBUE5QXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNTYtXHR0cmlzdGF0ZSBcJiMzNDtJU0EgUGx1ZyBhbmQgUGxheSBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA1NzpcdGRlcGVuZHMgb24gSVNBUE5QXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNTgtXHRoZWxwXG4tLVxuZHJpdmVycy9hdGEvS2NvbmZpZz0xMDY0PWNvbmZpZyBQQVRBX0lYUDRYWF9DRlxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDY1LVx0dHJpc3RhdGUgXCYjMzQ7SVhQNFhYIENvbXBhY3QgRmxhc2ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDY2Olx0ZGVwZW5kcyBvbiBBUkNIX0lYUDRYWCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvYXRhL0tjb25maWctMTA2Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNzQ9Y29uZmlnIFBBVEFfTVBJSVhcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3NS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFBBVEEgTVBJSVggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDc2Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3Ny1cdGhlbHBcbi0tXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwODI9Y29uZmlnIFBBVEFfTlM4NzQxMFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDgzLVx0dHJpc3RhdGUgXCYjMzQ7TmF0IFNlbWkgTlM4NzQxMCBQQVRBIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA4NDpcdGRlcGVuZHMgb24gUENJXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTExMjYKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEZXBlbmRlbmN5IENoZWNrKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgQVRBX0dFTkVSSUNgLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGF0IG9uZSBuZWVkcyBgUENJYCBhbmQgYEFUQWAuIE5vIHN1cnByaXNlcyB0aGVyZS4gQnV0LCBob2xkIG9uLi4uIGBBVEFgIGl0c2VsZiBoYXMgc29tZSBkZXBlbmRlbmNpZXMsIG5hbWVseSBgSEFTX0lPTUVNYCBhbmQgYEJMT0NLYC4gQWxyaWdodCwgdGhhdCYjMzk7cyBsb2dpY2FsLCBpdCBuZWVkcyB0byBrbm93IHdoZXJlIGl0JiMzOTtzIG1hcHBpbmcgdG8sIGFuZCB0aGF0IHRoZSBzdG9yYWdlIGl0c2VsZiBleGlzdHMuIFNvLCBnb2luZyBiYWNrIHRvIGBBVEFfR0VORVJJQ2AsIHNpbmNlIGBBVEFgIGZ1bGZpbGxzIGl0cyBkZXBlbmRlbmNpZXMsIHRoZW4gYEFUQV9HRU5FUklDYCBpcyBhbGwgc2V0LiBUaW1lIHRvIG1vdmUgb24gYW5kIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBCT0FSRF9UUENJMjAwYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWc9Mj1jb25maWcgQk9BUkRfVFBDSTIwMFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciB0aGUgVEVXUyBUUENJLTIwMCBJbmR1c3RyeVBhY2sgY2FycmllciBib2FyZFwmIzM0O1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIElQQUNLX0JVU1xuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjU6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnLTYtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDE2OjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNDczCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gYW4gZXhwZXJ0IGluIGVtYmVkZGVkIHN5c3RlbXMgYXJjaGl0ZWN0dXJlOgoKKipEZXBlbmRlbmN5IENoYWluIEludmVzdGlnYXRpb24qKgoKQWxyaWdodCwgc28gYEJPQVJEX1RQQ0kyMDBgIGhhcyBhIGRlcGVuZGVuY3kgY2hhaW4uIEl0JiMzOTtzIGJ1aWx0IG9uIGBJUEFDS19CVVNgLCB3aGljaCBpcyBpdHNlbGYgcmVsaWFudCBvbiB0aGUgYFBDSWAgYnVzLiBCZWZvcmUgSSBjYW4gcHJvY2VlZCB3aXRoIGFueSB0cm91Ymxlc2hvb3Rpbmcgb3IgZGVzaWduIGNvbnNpZGVyYXRpb25zIHJlbGF0ZWQgdG8gYEJPQVJEX1RQQ0kyMDBgLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IHVuZGVybHlpbmcgYElQQUNLX0JVU2AgZGVwZW5kZW5jeS4gSXQmIzM5O3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIHRyYWNpbmcgZG93biB0aGUgZmxvdy4gSSBuZWVkIHRvIGtub3cgaG93IGBJUEFDS19CVVNgIGlzIGNvbmZpZ3VyZWQsIHdoYXQgcmVzb3VyY2VzIGl0IHJlcXVpcmVzLCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBgUENJYCBidXMuIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gdXBvbiB3aGljaCBgQk9BUkRfVFBDSTIwMGAgc3RhbmRzLCBzbyBJJiMzOTtsbCBzdGFydCB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElQQUNLX0JVUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvaXBhY2svS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2lwYWNrL0tjb25maWctNS1cbmRyaXZlcnMvaXBhY2svS2NvbmZpZzo2Om1lbnVjb25maWcgSVBBQ0tfQlVTXG5kcml2ZXJzL2lwYWNrL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O0luZHVzdHJ5UGFjayBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTc3MAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRW5hYmxpbmcgSVBBQ0tfQlVTIGFuZCBEZXBlbmRlbmN5IFNjcnV0aW55KioKCkFscmlnaHQsIHRoZSBjb3JlIGxvZ2ljIHBvaW50cyB1cyB0b3dhcmQgZW5hYmxpbmcgYElQQUNLX0JVU2AuIFRoYXQmIzM5O3MgdGhlIGRpcmVjdGlvbiB3ZSBuZWVkIHRvIGdvLiBCZWZvcmUgd2UgY29tbWl0LCBsZXQmIzM5O3MganVzdCBtYWtlIGFic29sdXRlbHkgc3VyZSB3ZSYjMzk7dmUgZ290IGFsbCBvdXIgZHVja3MgaW4gYSByb3cuIE5vdywgZ2l2ZW4gdGhhdCBkZWNpc2lvbiwgSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGF1ZGl0IHRoZSBkZXBlbmRlbmNpZXMuIFRoZSBnb2FsIGlzIHRvIHZlcmlmeSB0aGF0IGVuYWJsaW5nIGBJUEFDS19CVVNgIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgdW5mb3Jlc2VlbiBpc3N1ZXMgb3IgY29uZmxpY3RzIHdpdGhpbiB0aGUgYnJvYWRlciBgTUxYU1dfQ09SRWAgZnJhbWV3b3JrLiBOZWVkIHRvIG1ha2UgY2VydGFpbiB0aGF0IHdlJiMzOTtyZSBub3QgaW5hZHZlcnRlbnRseSBicmVha2luZyBhbnl0aGluZyB1cHN0cmVhbSBvciBjcmVhdGluZyBhIGRvd25zdHJlYW0gaXNzdWUgd2UgaGF2ZW4mIzM5O3QgYW50aWNpcGF0ZWQuIFRpbWUgdG8gZGl2ZSBpbnRvIHRoZSBLY29uZmlnIGFuZCBNYWtlZmlsZXMgYW5kIGNvbmZpcm0gdGhhdCB0aGlzIGlzIGEgY2xlYW4gYW5kIHN0cmFpZ2h0Zm9yd2FyZCBlbmFibGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0xNz1jb25maWcgTUxYU1dfQ09SRV9IV01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7SFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1wmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxOTpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgSFdNT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MjA6XHRkZXBlbmRzIG9uICEoTUxYU1dfQ09SRT15IFx1MDAyNlx1MDAyNiBIV01PTj1tKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yMS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cdGJvb2wgXCYjMzQ7VGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Mjc6XHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXHUwMDI2XHUwMDI2IFRIRVJNQUxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjgtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTMzPWNvbmZpZyBNTFhTV19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjM1Olx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT01FTSBcdTAwMjZcdTAwMjYgTUxYU1dfQ09SRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNi1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTQ0PWNvbmZpZyBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtJMkMgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjQ2Olx0ZGVwZW5kcyBvbiBJMkMgXHUwMDI2XHUwMDI2IE1MWFNXX0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDctXHRkZWZhdWx0IG1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTU0PWNvbmZpZyBNTFhTV19TUEVDVFJVTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBTcGVjdHJ1bSBmYW1pbHkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NjpcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcdTAwMjZcdTAwMjYgTUxYU1dfUENJIFx1MDAyNlx1MDAyNiBORVRfU1dJVENIREVWIFx1MDAyNlx1MDAyNiBWTEFOXzgwMjFRXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU3Olx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1ODpcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU5Olx0ZGVwZW5kcyBvbiBORVRfSVBHUkUgfHwgTkVUX0lQR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIElQVjZfR1JFIHx8IElQVjZfR1JFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjE6XHRkZXBlbmRzIG9uIFZYTEFOIHx8IFZYTEFOPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTYzLVx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz03NT1jb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVx0Ym9vbCBcJiMzNDtEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjc3Olx0ZGVwZW5kcyBvbiBNTFhTV19TUEVDVFJVTSBcdTAwMjZcdTAwMjYgRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc4LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz04Mz1jb25maWcgTUxYU1dfTUlOSU1BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04NC1cdHRyaXN0YXRlIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBtaW5pbWFsIEkyQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjg1Olx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFx1MDAyNlx1MDAyNiBNTFhTV19JMkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODYtXHRkZWZhdWx0IG1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMTY6MjU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTMxNjQKCQkJCQkJCW91dHB1dDogMjU1CgkJCQkJCQl0aG91Z2h0czogMTQxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWZpbmluZyB0aGUgU3l6a2FsbGVyIEZ1enppbmcgQ29uZmlndXJhdGlvbiBmb3IgUENJIERyaXZlciBDaGFuZ2VzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gY29uZmlndXJlIFN5emthbGxlciBlZmZlY3RpdmVseSB0byB0YXJnZXQgdGhlIHJlY2VudCBjaGFuZ2VzIGluIHRoZSBQQ0kgZHJpdmVyIGNvZGUuIEkmIzM5O3ZlIGdvdCB0byBjb25zaWRlciB0aGUgZGVwZW5kZW5jaWVzLCBhZmZlY3RlZCBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBmdXp6aW5nIHN0cmF0ZWd5LgoKRmlyc3QsIEkgc2VlIHRoZSBjb3JlIGNvbXBvbmVudHM6IGBNTFhTV19DT1JFYCBoYXMgbm8gZGVwZW5kZW5jaWVzLCBidXQgYE1MWFNXX1BDSWAgZGVwZW5kcyBvbiBgUENJYCwgYEhBU19JT01FTWAsIGFuZCBgTUxYU1dfQ09SRWAuIFdlJiMzOTtyZSBhbHNvIGRlYWxpbmcgd2l0aCB0aGVzZSBjb25maWcgb3B0aW9uczogYEFUQV9HRU5FUklDYCwgYElQQUNLX0JVU2AsIGBCT0FSRF9UUENJMjAwYCwgYW5kIGBTQ1NJX05TUDMyYC4gVGhlIGBTQ1NJX05TUDMyYCBtb2R1bGUgaXMgbGlrZWx5IHRvIGJlIGlnbm9yZWQgb24gNjQtYml0IGtlcm5lbHMsIHdoaWNoIFN5emthbGxlciB1c2VzLCBiZWNhdXNlIG9mIHRoZSBgITY0QklUYCBkZXBlbmRlbmN5LCBidXQgdGhhdCYjMzk7cyBmaW5lLgoKSSBuZWVkIHRvIGZvY3VzIG15IGF0dGVudGlvbiBvbiB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIGFmZmVjdGVkIGJ5IHRoZSBwYXRjaC4gVGhlIGNvcmUgY2hhbmdlcyBhcmUgaW4gYGRyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY2AsIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIGhvdyBQQ0kgZGV2aWNlIElEcyBhcmUgaGFuZGxlZCBkdXJpbmcgcHJvYmluZy4gSW5pdGlhbGx5LCBJIGlkZW50aWZpZWQgdGhlc2UgZnVuY3Rpb25zOiBgZG9fcGNpX2FkZF9keW5pZGAsIGBwY2lfYWRkX2R5bmlkYCwgYGRvX3BjaV9tYXRjaF9pZGAsIGBwY2lfbWF0Y2hfaWRgLCBgcGNpX21hdGNoX2RldmljZWAsIGBuZXdfaWRfc3RvcmVgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYW5kIGBwY2lfYnVzX21hdGNoYC4gVGhlIG1vZGlmaWVkIGRyaXZlciBwcm9iZSBmdW5jdGlvbnMgYXJlIGBhdGFfZ2VuZXJpY19pbml0X29uZWAsIGB0cGNpMjAwX3BjaV9wcm9iZWAsIGBtbHhzd19wY2lfcHJvYmVgLCBhbmQgYG5zcDMyX3Byb2JlYC4KCk5vdywgU3l6a2FsbGVyIGNhbiBoYW5kbGUgc3RhdGljIGZ1bmN0aW9ucyBpZiB0aGV5JiMzOTtyZSB1bmlxdWVseSBpZGVudGlmaWFibGUsIGFuZCB0aGF0JiMzOTtzIGtleS4gU28sIEkgcGxhbiB0byBpbmNsdWRlIGFsbCBvZiB0aGVzZSBpbiBgRm9jdXNTeW1ib2xzYDogYHBjaV9hZGRfZHluaWRgLCBgbmV3X2lkX3N0b3JlYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLgoKSSB1bmRlcnN0YW5kIHRoZSBkeW5hbWljcy4gV2hpbGUgYHBjaV9tYXRjaF9kZXZpY2VgIGlzIGNhbGxlZCBmcmVxdWVudGx5LCBpdCYjMzk7cyBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBpc24mIzM5O3QgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrIGJ1dCBzdGlsbCBhIGNyaXRpY2FsIGFyZWEuIGBuZXdfaWRfc3RvcmVgIGlzIHJlbGV2YW50IGJlY2F1c2UgaXQmIzM5O3MgY2FsbGVkIHdoZW4gd3JpdGluZyB0byB0aGUgc3lzZnMgYG5ld19pZGAuIEFuZCBgcGNpX2FkZF9keW5pZGAgaXMgYWxzbyBpbXBvcnRhbnQsIGFzIGl0JiMzOTtzIGNhbGxlZCBieSBgbmV3X2lkX3N0b3JlYCBhbmQgb3RoZXIgZHJpdmVycy4KClRvIGVuc3VyZSBJIGhhdmUgdGhlIGV4YWN0IG5hbWVzLCBJJiMzOTt2ZSBkb3VibGUtY2hlY2tlZCB0aGVtOiBgZG9fcGNpX2FkZF9keW5pZGAsIGBwY2lfYWRkX2R5bmlkYCwgYGRvX3BjaV9tYXRjaF9pZGAsIGBwY2lfbWF0Y2hfaWRgLCBgcGNpX21hdGNoX2RldmljZWAsIGBuZXdfaWRfc3RvcmVgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYHBjaV9idXNfbWF0Y2hgLCBgYXRhX2dlbmVyaWNfaW5pdF9vbmVgLCBgdHBjaTIwMF9wY2lfcHJvYmVgLCBgbWx4c3dfcGNpX3Byb2JlYCwgYW5kIGBuc3AzMl9wcm9iZWAuCgpPa2F5LCBJJiMzOTttIHJlZmluaW5nIHRoZSBsaXN0LiBXZSB3YW50IHRoZSBvbmVzIGRpcmVjdGx5IGxpbmtlZCB0byB0aGUgY2hhbmdlZCBiZWhhdmlvciBvciB0aGUgYWZmZWN0ZWQgZHJpdmVyczogYG5ld19pZF9zdG9yZWAsIGBkb19wY2lfYWRkX2R5bmlkYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgX19wY2lfZGV2aWNlX3Byb2JlYCwgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLiBJJiMzOTtsbCBrZWVwIGBwY2lfbWF0Y2hfZGV2aWNlYCBpbiB0aGUgZm9jdXMgbGlzdCBiZWNhdXNlIGl0JiMzOTtzIGF0IHRoZSBjb3JlIG9mIGRldmljZSBtYXRjaGluZyB3aGljaCBpcyB3aGF0IHRoaXMgcGF0Y2ggaXMgYWJvdXQuCgpGaW5hbGx5LCBJIGNvbmZpcm1lZCBmdW5jdGlvbiBzaWduYXR1cmVzIGFuZCB0aGUgb3ZlcmFsbCBnb2FsIG9mIHRoZSBwYXRjaDogdG8gYWRkcmVzcyBQQ0kgZGV2aWNlIElEIG1hbmFnZW1lbnQsIGFuZCBzcGVjaWZpY2FsbHkgaG93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBgcGNpX2RldmljZV9pZGAgc3RydWN0dXJlcyBhcmUgaGFuZGxlZCBkdXJpbmcgcHJvYmUuIFRoaXMgbWVhbnMgZnV6emluZyB0aGUgZHluYW1pYyBJRCBzeXNmcyBpbnRlcmZhY2UsIHRoZSBjb3JlIFBDSSBtYXRjaGluZyBhbmQgcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhvc2UgbW9kaWZpZWQgZHJpdmVycyBpcyBjcnVjaWFsLgoKTm93LCBsZXQgbWUgbWFrZSBzdXJlIGFsbCBkZXBlbmRlbmNpZXMgYXJlIGhhbmRsZWQuIEkmIzM5O20gbGlzdGluZyBgQVRBX0dFTkVSSUNgLCBgSVBBQ0tfQlVTYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgIHRvIHRoZSBjb25maWd1cmF0aW9uLiBgQVRBYCBtaWdodCBiZSBuZWVkZWQgZm9yIGBBVEFfR0VORVJJQ2AgYW5kIGl0IGlzIGEgbWVudWNvbmZpZywgYXMgaXMgYElQQUNLX0JVU2AuIGBNTFhTV19DT1JFYCwgYE1MWFNXX1BDSWAgYW5kIGBTQ1NJX05TUDMyYCBhcmUgdHJpc3RhdGVzLgoKV2l0aCBhbGwKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAxNjoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QVRBX0dFTkVSSUMmIzM0OywKICAgICYjMzQ7SVBBQ0tfQlVTJiMzNDssCiAgICAmIzM0O0JPQVJEX1RQQ0kyMDAmIzM0OywKICAgICYjMzQ7TUxYU1dfQ09SRSYjMzQ7LAogICAgJiMzNDtNTFhTV19QQ0kmIzM0OywKICAgICYjMzQ7U0NTSV9OU1AzMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ld19pZF9zdG9yZSYjMzQ7LAogICAgJiMzNDtkb19wY2lfYWRkX2R5bmlkJiMzNDssCiAgICAmIzM0O3BjaV9tYXRjaF9kZXZpY2UmIzM0OywKICAgICYjMzQ7X19wY2lfZGV2aWNlX3Byb2JlJiMzNDssCiAgICAmIzM0O2F0YV9nZW5lcmljX2luaXRfb25lJiMzNDssCiAgICAmIzM0O3RwY2kyMDBfcGNpX3Byb2JlJiMzNDssCiAgICAmIzM0O21seHN3X3BjaV9wcm9iZSYjMzQ7LAogICAgJiMzNDtuc3AzMl9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBQQ0kgZGV2aWNlIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzIHdpdGggZHluYW1pYyBQQ0kgSURzLiBJdCBhbGxvY2F0ZXMgdGhlIG1hdGNoZWQgYHBjaV9kZXZpY2VfaWRgIG9uIHRoZSBzdGFjayBkdXJpbmcgcHJvYmUgYW5kIHVwZGF0ZXMgc2V2ZXJhbCBkcml2ZXJzIHRoYXQgcHJldmlvdXNseSBzYXZlZCB0aGlzIHBvaW50ZXIgdG8gcHJldmVudCBzdGFjayB1c2UtYWZ0ZXItZnJlZS4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIFBDSSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSAoYG5ld19pZF9zdG9yZWApLCB0aGUgUENJIG1hdGNoaW5nL3Byb2JpbmcgbG9naWMsIGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIG9mIHRoZSBtb2RpZmllZCBkcml2ZXJzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtBVEFfR0VORVJJQyYjMzQ7LAogICAgJiMzNDtJUEFDS19CVVMmIzM0OywKICAgICYjMzQ7Qk9BUkRfVFBDSTIwMCYjMzQ7LAogICAgJiMzNDtNTFhTV19DT1JFJiMzNDssCiAgICAmIzM0O01MWFNXX1BDSSYjMzQ7LAogICAgJiMzNDtTQ1NJX05TUDMyJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV3X2lkX3N0b3JlJiMzNDssCiAgICAmIzM0O2RvX3BjaV9hZGRfZHluaWQmIzM0OywKICAgICYjMzQ7cGNpX21hdGNoX2RldmljZSYjMzQ7LAogICAgJiMzNDtfX3BjaV9kZXZpY2VfcHJvYmUmIzM0OywKICAgICYjMzQ7YXRhX2dlbmVyaWNfaW5pdF9vbmUmIzM0OywKICAgICYjMzQ7dHBjaTIwMF9wY2lfcHJvYmUmIzM0OywKICAgICYjMzQ7bWx4c3dfcGNpX3Byb2JlJiMzNDssCiAgICAmIzM0O25zcDMyX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFBDSSBkZXZpY2UgbWF0Y2hpbmcgYW5kIHByb2JpbmcgbG9naWMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMgd2l0aCBkeW5hbWljIFBDSSBJRHMuIEl0IGFsbG9jYXRlcyB0aGUgbWF0Y2hlZCBgcGNpX2RldmljZV9pZGAgb24gdGhlIHN0YWNrIGR1cmluZyBwcm9iZSBhbmQgdXBkYXRlcyBzZXZlcmFsIGRyaXZlcnMgdGhhdCBwcmV2aW91c2x5IHNhdmVkIHRoaXMgcG9pbnRlciB0byBwcmV2ZW50IHN0YWNrIHVzZS1hZnRlci1mcmVlLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgUENJIGR5bmFtaWMgSUQgc3lzZnMgaW50ZXJmYWNlIChgbmV3X2lkX3N0b3JlYCksIHRoZSBQQ0kgbWF0Y2hpbmcvcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhlIG1vZGlmaWVkIGRyaXZlcnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzozMC4xMzQ2NzM0MDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjQwMTI0MzA3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQVRBX0dFTkVSSUNcIixcbiAgICBcIklQQUNLX0JVU1wiLFxuICAgIFwiQk9BUkRfVFBDSTIwMFwiLFxuICAgIFwiTUxYU1dfQ09SRVwiLFxuICAgIFwiTUxYU1dfUENJXCIsXG4gICAgXCJTQ1NJX05TUDMyXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmV3X2lkX3N0b3JlXCIsXG4gICAgXCJkb19wY2lfYWRkX2R5bmlkXCIsXG4gICAgXCJwY2lfbWF0Y2hfZGV2aWNlXCIsXG4gICAgXCJfX3BjaV9kZXZpY2VfcHJvYmVcIixcbiAgICBcImF0YV9nZW5lcmljX2luaXRfb25lXCIsXG4gICAgXCJ0cGNpMjAwX3BjaV9wcm9iZVwiLFxuICAgIFwibWx4c3dfcGNpX3Byb2JlXCIsXG4gICAgXCJuc3AzMl9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFBDSSBkZXZpY2UgbWF0Y2hpbmcgYW5kIHByb2JpbmcgbG9naWMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMgd2l0aCBkeW5hbWljIFBDSSBJRHMuIEl0IGFsbG9jYXRlcyB0aGUgbWF0Y2hlZCBgcGNpX2RldmljZV9pZGAgb24gdGhlIHN0YWNrIGR1cmluZyBwcm9iZSBhbmQgdXBkYXRlcyBzZXZlcmFsIGRyaXZlcnMgdGhhdCBwcmV2aW91c2x5IHNhdmVkIHRoaXMgcG9pbnRlciB0byBwcmV2ZW50IHN0YWNrIHVzZS1hZnRlci1mcmVlLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgUENJIGR5bmFtaWMgSUQgc3lzZnMgaW50ZXJmYWNlIChgbmV3X2lkX3N0b3JlYCksIHRoZSBQQ0kgbWF0Y2hpbmcvcHJvYmluZyBsb2dpYywgYW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgb2YgdGhlIG1vZGlmaWVkIGRyaXZlcnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjMwLjEzNDY3ODc3OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1MDEyMzExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMDkxMmQwMzViMTIzZDhiMjBiMTZkOGFiY2QxOTkxYzAxYmJhOWQ2NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1biAzMCAxNjoyMzoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xcbmluZGV4IGU3MGI2YzA4OWNmMTc5Li4xOGVhNzQwY2E1ODI5MyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jXFxuKysrIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xcbkBAIC01MSwxMSArNTEsMTEgQEAgZW51bSB7XFxuIHN0YXRpYyBpbnQgZ2VuZXJpY19zZXRfbW9kZShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHN0cnVjdCBhdGFfZGV2aWNlICoqdW51c2VkKVxcbiB7XFxuIFxcdHN0cnVjdCBhdGFfcG9ydCAqYXAgPSBsaW5rLVxcdTAwM2VhcDtcXG4tXFx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkID0gYXAtXFx1MDAzZWhvc3QtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG4rXFx0dW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSA9ICh1bnNpZ25lZCBsb25nKWFwLVxcdTAwM2Vob3N0LVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuIFxcdGludCBkbWFfZW5hYmxlZCA9IDA7XFxuIFxcdHN0cnVjdCBhdGFfZGV2aWNlICpkZXY7XFxuIFxcbi1cXHRpZiAoaWQtXFx1MDAzZWRyaXZlcl9kYXRhIFxcdTAwMjYgQVRBX0dFTl9GT1JDRV9ETUEpIHtcXG4rXFx0aWYgKGRyaXZlcl9kYXRhIFxcdTAwMjYgQVRBX0dFTl9GT1JDRV9ETUEpIHtcXG4gXFx0XFx0ZG1hX2VuYWJsZWQgPSAweGZmO1xcbiBcXHR9IGVsc2UgaWYgKGFwLVxcdTAwM2Vpb2FkZHIuYm1kbWFfYWRkcikge1xcbiBcXHRcXHQvKiBCaXRzIDUgYW5kIDYgaW5kaWNhdGUgaWYgRE1BIGlzIGFjdGl2ZSBvbiBtYXN0ZXIvc2xhdmUgKi9cXG5AQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbnQgYXRhX2dlbmVyaWNfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWRcXG4gXFx0XFx0XFx0cmV0dXJuIHJjO1xcbiBcXHRcXHRwY2ltX3Bpbl9kZXZpY2UoZGV2KTtcXG4gXFx0fVxcbi1cXHRyZXR1cm4gYXRhX3BjaV9ibWRtYV9pbml0X29uZShkZXYsIHBwaSwgXFx1MDAyNmdlbmVyaWNfc2h0LCAodm9pZCAqKWlkLCAwKTtcXG4rXFx0cmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksIFxcdTAwMjZnZW5lcmljX3NodCwgKHZvaWQgKilpZC1cXHUwMDNlZHJpdmVyX2RhdGEsIDApO1xcbiB9XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYXRhX2dlbmVyaWNbXSA9IHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xcbmluZGV4IDA1ZGNiNjY3NWNkNjYxLi4xY2Y1MWY3NjMyOTMyYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xcbisrKyBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jXFxuQEAgLTU2Miw3ICs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbiBcXG4gXFx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXFxuIFxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYgPSBwZGV2O1xcbi1cXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpZF90YWJsZSA9IChzdHJ1Y3QgcGNpX2RldmljZV9pZCAqKWlkO1xcbiBcXG4gXFx0LyogcmVnaXN0ZXIgdGhlIGRldmljZSBhbmQgaW5pdGlhbGl6ZSBpdCAqL1xcbiBcXHRyZXQgPSB0cGNpMjAwX2luc3RhbGwodHBjaTIwMCk7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcXG5pbmRleCBlNzlhYzY0YWJjZmZhYy4uYTJiZjMxMjU3OTRiN2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcXG4rKysgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaFxcbkBAIC0xNDUsNyArMTQ1LDYgQEAgc3RydWN0IHRwY2kyMDBfc2xvdCB7XFxuICAqL1xcbiBzdHJ1Y3QgdHBjaTIwMF9pbmZvcyB7XFxuIFxcdHN0cnVjdCBwY2lfZGV2XFx0XFx0XFx0KnBkZXY7XFxuLVxcdHN0cnVjdCBwY2lfZGV2aWNlX2lkXFx0XFx0KmlkX3RhYmxlO1xcbiBcXHRzdHJ1Y3QgdHBjaTIwMF9yZWdzIF9faW9tZW1cXHQqaW50ZXJmYWNlX3JlZ3M7XFxuIFxcdHZvaWQgX19pb21lbVxcdFxcdFxcdCpjZmdfcmVncztcXG4gXFx0c3RydWN0IGlwYWNrX2J1c19kZXZpY2VcXHRcXHQqaXBhY2tfYnVzO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXFxuaW5kZXggMGRhODVkMzY2NDdkOTEuLmJmZTMyNjhkZmRjMTdkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmNcXG5AQCAtMTMwLDcgKzEzMCw2IEBAIHN0cnVjdCBtbHhzd19wY2kge1xcbiBcXHRcXHR9IGNvbXA7XFxuIFxcdH0gY21kO1xcbiBcXHRzdHJ1Y3QgbWx4c3dfYnVzX2luZm8gYnVzX2luZm87XFxuLVxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZDtcXG4gXFx0ZW51bSBtbHhzd19wY2lfY3FlX3YgbWF4X2NxZV92ZXI7IC8qIE1heGltYWwgc3VwcG9ydGVkIENRRSB2ZXJzaW9uICovXFxuIFxcdHU4IG51bV9jcXM7IC8qIE51bWJlciBvZiBDUXMgKi9cXG4gXFx0dTggbnVtX3NkcXM7IC8qIE51bWJlciBvZiBTRFFzICovXFxuQEAgLTE3NjgsNyArMTc2Nyw2IEBAIHN0YXRpYyB2b2lkIG1seHN3X3BjaV9tYm94X2ZyZWUoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLFxcbiB9XFxuIFxcbiBzdGF0aWMgaW50IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksXFxuLVxcdFxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsXFxuIFxcdFxcdFxcdFxcdCAgICB1MzIgKnBfc3lzX3N0YXR1cylcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIGVuZDtcXG5AQCAtMTgzOSw3ICsxODM3LDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcmVzZXRfc3coc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpKVxcbiB9XFxuIFxcbiBzdGF0aWMgaW50XFxuLW1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4rbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSlcXG4ge1xcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IG1seHN3X3BjaS1cXHUwMDNlcGRldjtcXG4gXFx0Ym9vbCBwY2lfcmVzZXRfc2JyX3N1cHBvcnRlZCA9IGZhbHNlO1xcbkBAIC0xODQ4LDcgKzE4NDYsNyBAQCBtbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuIFxcdHUzMiBzeXNfc3RhdHVzO1xcbiBcXHRpbnQgZXJyO1xcbiBcXG4tXFx0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgaWQsIFxcdTAwMjZzeXNfc3RhdHVzKTtcXG4rXFx0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgXFx1MDAyNnN5c19zdGF0dXMpO1xcbiBcXHRpZiAoZXJyKSB7XFxuIFxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIkZhaWxlZCB0byByZWFjaCBzeXN0ZW0gcmVhZHkgc3RhdHVzIGJlZm9yZSByZXNldC4gU3RhdHVzIGlzIDB4JXhcXFxcblxcXCIsXFxuIFxcdFxcdFxcdHN5c19zdGF0dXMpO1xcbkBAIC0xODgwLDcgKzE4NzgsNyBAQCBtbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuIFxcdGlmIChlcnIpXFxuIFxcdFxcdHJldHVybiBlcnI7XFxuIFxcbi1cXHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBpZCwgXFx1MDAyNnN5c19zdGF0dXMpO1xcbitcXHRlcnIgPSBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQobWx4c3dfcGNpLCBcXHUwMDI2c3lzX3N0YXR1cyk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XFxcXG5cXFwiLFxcbiBcXHRcXHRcXHRzeXNfc3RhdHVzKTtcXG5AQCAtMTkzMiw3ICsxOTMwLDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfaW5pdCh2b2lkICpidXNfcHJpdiwgc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsXFxuIFxcdGlmICghbWJveClcXG4gXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuIFxcbi1cXHRlcnIgPSBtbHhzd19wY2lfcmVzZXQobWx4c3dfcGNpLCBtbHhzd19wY2ktXFx1MDAzZWlkKTtcXG4rXFx0ZXJyID0gbWx4c3dfcGNpX3Jlc2V0KG1seHN3X3BjaSk7XFxuIFxcdGlmIChlcnIpXFxuIFxcdFxcdGdvdG8gZXJyX3Jlc2V0O1xcbiBcXG5AQCAtMjQ2NCw3ICsyNDYyLDYgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gXFx0bWx4c3dfcGNpLVxcdTAwM2VidXNfaW5mby5kZXZpY2VfbmFtZSA9IHBjaV9uYW1lKG1seHN3X3BjaS1cXHUwMDNlcGRldik7XFxuIFxcdG1seHN3X3BjaS1cXHUwMDNlYnVzX2luZm8uZGV2ID0gXFx1MDAyNnBkZXYtXFx1MDAzZWRldjtcXG4gXFx0bWx4c3dfcGNpLVxcdTAwM2VidXNfaW5mby5yZWFkX2Nsb2NrX2NhcGFibGUgPSB0cnVlO1xcbi1cXHRtbHhzd19wY2ktXFx1MDAzZWlkID0gaWQ7XFxuIFxcbiBcXHRlcnIgPSBtbHhzd19jb3JlX2J1c19kZXZpY2VfcmVnaXN0ZXIoXFx1MDAyNm1seHN3X3BjaS1cXHUwMDNlYnVzX2luZm8sXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgXFx1MDAyNm1seHN3X3BjaV9idXMsIG1seHN3X3BjaSwgZmFsc2UsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY1xcbmluZGV4IGYzNjc3OGU2MmFjMWE1Li5mYWQwMjhiOWRjNTNlYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcXG4rKysgYi9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcXG5AQCAtMjksNiArMjksNDggQEAgc3RydWN0IHBjaV9keW5pZCB7XFxuIFxcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xcbiB9O1xcbiBcXG4rLyoqXFxuKyAqIGRvX3BjaV9hZGRfZHluaWQgLSBhZGQgYSBuZXcgUENJIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgcmUtcHJvYmUgZGV2aWNlc1xcbisgKiBAZHJ2OiB0YXJnZXQgcGNpIGRyaXZlclxcbisgKiBAaWQ6IElEIHRvIGJlIGFkZGVkXFxuKyAqIEBjaGVja19kdXA6IHdoZXRoZXIgdG8gY2hlY2sgaWYgbWF0Y2hpbmcgSUQgaXMgYWxyZWFkeSBwcmVzZW50XFxuKyAqXFxuKyAqIEFkZHMgYSBuZXcgZHluYW1pYyBwY2kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCBjYXVzZXMgdGhlXFxuKyAqIGRyaXZlciB0byBwcm9iZSBmb3IgYWxsIGRldmljZXMgYWdhaW4uICBAZHJ2IG11c3QgaGF2ZSBiZWVuXFxuKyAqIHJlZ2lzdGVyZWQgcHJpb3IgdG8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxcbisgKlxcbisgKiBDT05URVhUOlxcbisgKiBEb2VzIEdGUF9LRVJORUwgYWxsb2NhdGlvbi5cXG4rICpcXG4rICogUkVUVVJOUzpcXG4rICogMCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS5cXG4rICovXFxuK3N0YXRpYyBpbnQgZG9fcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGJvb2wgY2hlY2tfZHVwKVxcbit7XFxuK1xcdHN0cnVjdCBwY2lfZHluaWQgKmR5bmlkLCAqZXhpc3RpbmdfZHluaWQ7XFxuK1xcbitcXHRkeW5pZCA9IGt6YWxsb2Nfb2JqKCpkeW5pZCk7XFxuK1xcdGlmICghZHluaWQpXFxuK1xcdFxcdHJldHVybiAtRU5PTUVNO1xcbitcXG4rXFx0ZHluaWQtXFx1MDAzZWlkID0gKmlkO1xcbitcXG4rXFx0e1xcbitcXHRcXHRndWFyZChzcGlubG9jaykoXFx1MDAyNmRydi1cXHUwMDNlZHluaWRzLmxvY2spO1xcbitcXHRcXHRpZiAoY2hlY2tfZHVwKSB7XFxuK1xcdFxcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZXhpc3RpbmdfZHluaWQsIFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XFxuK1xcdFxcdFxcdFxcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFxcdTAwMjZleGlzdGluZ19keW5pZC1cXHUwMDNlaWQsIGlkKSkge1xcbitcXHRcXHRcXHRcXHRcXHRrZnJlZShkeW5pZCk7XFxuK1xcdFxcdFxcdFxcdFxcdHJldHVybiAtRUVYSVNUO1xcbitcXHRcXHRcXHRcXHR9XFxuK1xcdFxcdFxcdH1cXG4rXFx0XFx0fVxcbitcXHRcXHRsaXN0X2FkZF90YWlsKFxcdTAwMjZkeW5pZC1cXHUwMDNlbm9kZSwgXFx1MDAyNmRydi1cXHUwMDNlZHluaWRzLmxpc3QpO1xcbitcXHR9XFxuK1xcbitcXHRyZXR1cm4gZHJpdmVyX2F0dGFjaChcXHUwMDI2ZHJ2LVxcdTAwM2Vkcml2ZXIpO1xcbit9XFxuK1xcbiAvKipcXG4gICogcGNpX2FkZF9keW5pZCAtIGFkZCBhIG5ldyBQQ0kgZGV2aWNlIElEIHRvIHRoaXMgZHJpdmVyIGFuZCByZS1wcm9iZSBkZXZpY2VzXFxuICAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyXFxuQEAgLTU2LDI1ICs5OCwxNyBAQCBpbnQgcGNpX2FkZF9keW5pZChzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LFxcbiBcXHRcXHQgIHVuc2lnbmVkIGludCBjbGFzcywgdW5zaWduZWQgaW50IGNsYXNzX21hc2ssXFxuIFxcdFxcdCAgdW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSlcXG4ge1xcbi1cXHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZDtcXG4tXFxuLVxcdGR5bmlkID0ga3phbGxvY19vYmooKmR5bmlkKTtcXG4tXFx0aWYgKCFkeW5pZClcXG4tXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLVxcbi1cXHRkeW5pZC1cXHUwMDNlaWQudmVuZG9yID0gdmVuZG9yO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuZGV2aWNlID0gZGV2aWNlO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuc3VidmVuZG9yID0gc3VidmVuZG9yO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuc3ViZGV2aWNlID0gc3ViZGV2aWNlO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuY2xhc3MgPSBjbGFzcztcXG4tXFx0ZHluaWQtXFx1MDAzZWlkLmNsYXNzX21hc2sgPSBjbGFzc19tYXNrO1xcbi1cXHRkeW5pZC1cXHUwMDNlaWQuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YTtcXG4tXFxuLVxcdHNwaW5fbG9jayhcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubG9jayk7XFxuLVxcdGxpc3RfYWRkX3RhaWwoXFx1MDAyNmR5bmlkLVxcdTAwM2Vub2RlLCBcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubGlzdCk7XFxuLVxcdHNwaW5fdW5sb2NrKFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5sb2NrKTtcXG4tXFxuLVxcdHJldHVybiBkcml2ZXJfYXR0YWNoKFxcdTAwMjZkcnYtXFx1MDAzZWRyaXZlcik7XFxuK1xcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkID0ge1xcbitcXHRcXHQudmVuZG9yID0gdmVuZG9yLFxcbitcXHRcXHQuZGV2aWNlID0gZGV2aWNlLFxcbitcXHRcXHQuc3VidmVuZG9yID0gc3VidmVuZG9yLFxcbitcXHRcXHQuc3ViZGV2aWNlID0gc3ViZGV2aWNlLFxcbitcXHRcXHQuY2xhc3MgPSBjbGFzcyxcXG4rXFx0XFx0LmNsYXNzX21hc2sgPSBjbGFzc19tYXNrLFxcbitcXHRcXHQuZHJpdmVyX2RhdGEgPSBkcml2ZXJfZGF0YSxcXG4rXFx0fTtcXG4rXFxuK1xcdHJldHVybiBkb19wY2lfYWRkX2R5bmlkKGRydiwgXFx1MDAyNmlkLCBmYWxzZSk7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTF9HUEwocGNpX2FkZF9keW5pZCk7XFxuIFxcbkBAIC05MCw2ICsxMjQsMjkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXFxuIFxcdHNwaW5fdW5sb2NrKFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5sb2NrKTtcXG4gfVxcbiBcXG4rLyoqXFxuKyAqIGRvX3BjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBJRCBtYXRjaGVzIGEgZ2l2ZW4gcGNpX2lkIHRhYmxlXFxuKyAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cXG4rICogQGRldl9pZDogdGhlIGFjdHVhbCBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0LlxcbisgKlxcbisgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvclxcbisgKiAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cXG4rICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZG9fcGNpX21hdGNoX2lkKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgIGJvb2wgbWF0Y2hfb3ZlcnJpZGVfb25seSlcXG4re1xcbitcXHRpZiAoaWRzKSB7XFxuK1xcdFxcdHdoaWxlIChpZHMtXFx1MDAzZXZlbmRvciB8fCBpZHMtXFx1MDAzZXN1YnZlbmRvciB8fCBpZHMtXFx1MDAzZWNsYXNzX21hc2spIHtcXG4rXFx0XFx0XFx0aWYgKCghaWRzLVxcdTAwM2VvdmVycmlkZV9vbmx5IHx8IG1hdGNoX292ZXJyaWRlX29ubHkpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdFxcdFxcdCAgICBwY2lfbWF0Y2hfb25lX2lkKGlkcywgZGV2X2lkKSlcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIGlkcztcXG4rXFx0XFx0XFx0aWRzKys7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXHRyZXR1cm4gTlVMTDtcXG4rfVxcbitcXG4gLyoqXFxuICAqIHBjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBkZXZpY2UgbWF0Y2hlcyBhIGdpdmVuIHBjaV9pZCB0YWJsZVxcbiAgKiBAaWRzOiBhcnJheSBvZiBQQ0kgZGV2aWNlIElEIHN0cnVjdHVyZXMgdG8gc2VhcmNoIGluXFxuQEAgLTEwNSwxNCArMTYyLDkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXFxuIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkcyxcXG4gXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXFxuIHtcXG4tXFx0aWYgKGlkcykge1xcbi1cXHRcXHR3aGlsZSAoaWRzLVxcdTAwM2V2ZW5kb3IgfHwgaWRzLVxcdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVxcdTAwM2VjbGFzc19tYXNrKSB7XFxuLVxcdFxcdFxcdGlmIChwY2lfbWF0Y2hfb25lX2RldmljZShpZHMsIGRldikpXFxuLVxcdFxcdFxcdFxcdHJldHVybiBpZHM7XFxuLVxcdFxcdFxcdGlkcysrO1xcbi1cXHRcXHR9XFxuLVxcdH1cXG4tXFx0cmV0dXJuIE5VTEw7XFxuK1xcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpO1xcbitcXG4rXFx0cmV0dXJuIGRvX3BjaV9tYXRjaF9pZChpZHMsIFxcdTAwMjZkZXZfaWQsIHRydWUpO1xcbiB9XFxuIEVYUE9SVF9TWU1CT0wocGNpX21hdGNoX2lkKTtcXG4gXFxuQEAgLTEyNyw2MSArMTc5LDUyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfZGV2aWNlX2lkX2FueSA9IHtcXG4gICogcGNpX21hdGNoX2RldmljZSAtIFNlZSBpZiBhIGRldmljZSBtYXRjaGVzIGEgZHJpdmVyJ3MgbGlzdCBvZiBJRHNcXG4gICogQGRydjogdGhlIFBDSSBkcml2ZXIgdG8gbWF0Y2ggYWdhaW5zdFxcbiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxcbisgKiBAaWQ6IE1hdGNoZWQgcGNpX2RldmljZV9pZFxcbiAgKlxcbiAgKiBVc2VkIGJ5IGEgZHJpdmVyIHRvIGNoZWNrIHdoZXRoZXIgYSBQQ0kgZGV2aWNlIGlzIGluIGl0cyBsaXN0IG9mXFxuICAqIHN1cHBvcnRlZCBkZXZpY2VzIG9yIGluIHRoZSBkeW5pZHMgbGlzdCwgd2hpY2ggbWF5IGhhdmUgYmVlbiBhdWdtZW50ZWRcXG4tICogdmlhIHRoZSBzeXNmcyBcXFwibmV3X2lkXFxcIiBmaWxlLiAgUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZFxcbi0gKiBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guXFxuKyAqIHZpYSB0aGUgc3lzZnMgXFxcIm5ld19pZFxcXCIgZmlsZS4gIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIG1hdGNoLCB0aGUgbWF0Y2hlZFxcbisgKiBJRCBpcyBzdG9yZWQgaW4gQGlkLlxcbiAgKi9cXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgcGNpX2RldiAqZGV2KVxcbitzdGF0aWMgYm9vbCBwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXFxuK1xcdFxcdFxcdCAgICAgc3RydWN0IHBjaV9kZXYgKmRldixcXG4rXFx0XFx0XFx0ICAgICBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuIHtcXG4gXFx0c3RydWN0IHBjaV9keW5pZCAqZHluaWQ7XFxuLVxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEwsICppZHM7XFxuK1xcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEw7XFxuK1xcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGRldl9pZDtcXG4gXFx0aW50IHJldDtcXG4gXFxuIFxcdC8qIFdoZW4gZHJpdmVyX292ZXJyaWRlIGlzIHNldCwgb25seSBiaW5kIHRvIHRoZSBtYXRjaGluZyBkcml2ZXIgKi9cXG4gXFx0cmV0ID0gZGV2aWNlX21hdGNoX2RyaXZlcl9vdmVycmlkZShcXHUwMDI2ZGV2LVxcdTAwM2VkZXYsIFxcdTAwMjZkcnYtXFx1MDAzZWRyaXZlcik7XFxuIFxcdGlmIChyZXQgPT0gMClcXG4tXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcdFxcdHJldHVybiBmYWxzZTtcXG4gXFxuK1xcdGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShkZXYpO1xcbiBcXHQvKiBMb29rIGF0IHRoZSBkeW5hbWljIGlkcyBmaXJzdCwgYmVmb3JlIHRoZSBzdGF0aWMgb25lcyAqL1xcbi1cXHRzcGluX2xvY2soXFx1MDAyNmRydi1cXHUwMDNlZHluaWRzLmxvY2spO1xcbi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGR5bmlkLCBcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubGlzdCwgbm9kZSkge1xcbi1cXHRcXHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoXFx1MDAyNmR5bmlkLVxcdTAwM2VpZCwgZGV2KSkge1xcbi1cXHRcXHRcXHRmb3VuZF9pZCA9IFxcdTAwMjZkeW5pZC1cXHUwMDNlaWQ7XFxuLVxcdFxcdFxcdGJyZWFrO1xcbitcXHR7XFxuK1xcdFxcdGd1YXJkKHNwaW5sb2NrKShcXHUwMDI2ZHJ2LVxcdTAwM2VkeW5pZHMubG9jayk7XFxuK1xcdFxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZHluaWQsIFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XFxuK1xcdFxcdFxcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFxcdTAwMjZkeW5pZC1cXHUwMDNlaWQsIFxcdTAwMjZkZXZfaWQpKSB7XFxuK1xcdFxcdFxcdFxcdCppZCA9IGR5bmlkLVxcdTAwM2VpZDtcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIHRydWU7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbiBcXHR9XFxuLVxcdHNwaW5fdW5sb2NrKFxcdTAwMjZkcnYtXFx1MDAzZWR5bmlkcy5sb2NrKTtcXG4tXFxuLVxcdGlmIChmb3VuZF9pZClcXG4tXFx0XFx0cmV0dXJuIGZvdW5kX2lkO1xcbiBcXG4tXFx0Zm9yIChpZHMgPSBkcnYtXFx1MDAzZWlkX3RhYmxlOyAoZm91bmRfaWQgPSBwY2lfbWF0Y2hfaWQoaWRzLCBkZXYpKTtcXG4tXFx0ICAgICBpZHMgPSBmb3VuZF9pZCArIDEpIHtcXG4tXFx0XFx0LypcXG4tXFx0XFx0ICogVGhlIG1hdGNoIHRhYmxlIGlzIHNwbGl0IGJhc2VkIG9uIGRyaXZlcl9vdmVycmlkZS5cXG4tXFx0XFx0ICogSW4gY2FzZSBvdmVycmlkZV9vbmx5IHdhcyBzZXQsIGVuZm9yY2UgZHJpdmVyX292ZXJyaWRlXFxuLVxcdFxcdCAqIG1hdGNoaW5nLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0aWYgKGZvdW5kX2lkLVxcdTAwM2VvdmVycmlkZV9vbmx5KSB7XFxuLVxcdFxcdFxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbi1cXHRcXHRcXHRcXHRyZXR1cm4gZm91bmRfaWQ7XFxuLVxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdHJldHVybiBmb3VuZF9pZDtcXG4tXFx0XFx0fVxcbitcXHRmb3VuZF9pZCA9IGRvX3BjaV9tYXRjaF9pZChkcnYtXFx1MDAzZWlkX3RhYmxlLCBcXHUwMDI2ZGV2X2lkLCByZXQgXFx1MDAzZSAwKTtcXG4rXFx0aWYgKGZvdW5kX2lkKSB7XFxuK1xcdFxcdCppZCA9ICpmb3VuZF9pZDtcXG4rXFx0XFx0cmV0dXJuIHRydWU7XFxuIFxcdH1cXG4gXFxuIFxcdC8qIGRyaXZlcl9vdmVycmlkZSB3aWxsIGFsd2F5cyBtYXRjaCwgc2VuZCBhIGR1bW15IGlkICovXFxuLVxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbi1cXHRcXHRyZXR1cm4gXFx1MDAyNnBjaV9kZXZpY2VfaWRfYW55O1xcbi1cXHRyZXR1cm4gTlVMTDtcXG4tfVxcbitcXHRpZiAocmV0IFxcdTAwM2UgMCkge1xcbitcXHRcXHQqaWQgPSBwY2lfZGV2aWNlX2lkX2FueTtcXG4rXFx0XFx0cmV0dXJuIHRydWU7XFxuK1xcdH1cXG4gXFxuLXN0YXRpYyB2b2lkIF9wY2lfZnJlZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KVxcbi17XFxuLVxcdGtmcmVlKHRvX3BjaV9kZXYoZGV2KSk7XFxuK1xcdHJldHVybiBmYWxzZTtcXG4gfVxcbiBcXG4gLyoqXFxuQEAgLTE5NywzOCArMjQwLDIyIEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXFxuIHtcXG4gXFx0c3RydWN0IHBjaV9kcml2ZXIgKnBkcnYgPSB0b19wY2lfZHJpdmVyKGRyaXZlcik7XFxuIFxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMgPSBwZHJ2LVxcdTAwM2VpZF90YWJsZTtcXG4tXFx0dTMyIHZlbmRvciwgZGV2aWNlLCBzdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxcbi1cXHRcXHRzdWJkZXZpY2UgPSBQQ0lfQU5ZX0lELCBjbGFzcyA9IDAsIGNsYXNzX21hc2sgPSAwO1xcbi1cXHR1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhID0gMDtcXG4rXFx0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XFxuK1xcdFxcdC5zdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxcbitcXHRcXHQuc3ViZGV2aWNlID0gUENJX0FOWV9JRFxcbitcXHR9O1xcbiBcXHRpbnQgZmllbGRzO1xcbiBcXHRpbnQgcmV0dmFsID0gMDtcXG4gXFxuIFxcdGZpZWxkcyA9IHNzY2FuZihidWYsIFxcXCIleCAleCAleCAleCAleCAleCAlbHhcXFwiLFxcbi1cXHRcXHRcXHRcXHUwMDI2dmVuZG9yLCBcXHUwMDI2ZGV2aWNlLCBcXHUwMDI2c3VidmVuZG9yLCBcXHUwMDI2c3ViZGV2aWNlLFxcbi1cXHRcXHRcXHRcXHUwMDI2Y2xhc3MsIFxcdTAwMjZjbGFzc19tYXNrLCBcXHUwMDI2ZHJpdmVyX2RhdGEpO1xcbitcXHRcXHRcXHRcXHUwMDI2aWQudmVuZG9yLCBcXHUwMDI2aWQuZGV2aWNlLCBcXHUwMDI2aWQuc3VidmVuZG9yLCBcXHUwMDI2aWQuc3ViZGV2aWNlLFxcbitcXHRcXHRcXHRcXHUwMDI2aWQuY2xhc3MsIFxcdTAwMjZpZC5jbGFzc19tYXNrLCBcXHUwMDI2aWQuZHJpdmVyX2RhdGEpO1xcbiBcXHRpZiAoZmllbGRzIFxcdTAwM2MgMilcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcbiBcXHRpZiAoZmllbGRzICE9IDcpIHtcXG4tXFx0XFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSBremFsbG9jX29iaigqcGRldik7XFxuLVxcdFxcdGlmICghcGRldilcXG4tXFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLVxcbi1cXHRcXHRwZGV2LVxcdTAwM2V2ZW5kb3IgPSB2ZW5kb3I7XFxuLVxcdFxcdHBkZXYtXFx1MDAzZWRldmljZSA9IGRldmljZTtcXG4tXFx0XFx0cGRldi1cXHUwMDNlc3Vic3lzdGVtX3ZlbmRvciA9IHN1YnZlbmRvcjtcXG4tXFx0XFx0cGRldi1cXHUwMDNlc3Vic3lzdGVtX2RldmljZSA9IHN1YmRldmljZTtcXG4tXFx0XFx0cGRldi1cXHUwMDNlY2xhc3MgPSBjbGFzcztcXG4tXFx0XFx0cGRldi1cXHUwMDNlZGV2LnJlbGVhc2UgPSBfcGNpX2ZyZWVfZGV2aWNlO1xcbi1cXG4tXFx0XFx0ZGV2aWNlX2luaXRpYWxpemUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuLVxcdFxcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKHBkcnYsIHBkZXYpKVxcbi1cXHRcXHRcXHRyZXR2YWwgPSAtRUVYSVNUO1xcbi1cXG4tXFx0XFx0cHV0X2RldmljZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4tXFxuLVxcdFxcdGlmIChyZXR2YWwpXFxuLVxcdFxcdFxcdHJldHVybiByZXR2YWw7XFxuK1xcdFxcdGlmIChkb19wY2lfbWF0Y2hfaWQocGRydi1cXHUwMDNlaWRfdGFibGUsIFxcdTAwMjZpZCwgZmFsc2UpKVxcbitcXHRcXHRcXHRyZXR1cm4gLUVFWElTVDtcXG4gXFx0fVxcbiBcXG4gXFx0LyogT25seSBhY2NlcHQgZHJpdmVyX2RhdGEgdmFsdWVzIHRoYXQgbWF0Y2ggYW4gZXhpc3RpbmcgaWRfdGFibGVcXG5AQCAtMjM2LDcgKzI2Myw3IEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXFxuIFxcdGlmIChpZHMpIHtcXG4gXFx0XFx0cmV0dmFsID0gLUVJTlZBTDtcXG4gXFx0XFx0d2hpbGUgKGlkcy1cXHUwMDNldmVuZG9yIHx8IGlkcy1cXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cXHUwMDNlY2xhc3NfbWFzaykge1xcbi1cXHRcXHRcXHRpZiAoZHJpdmVyX2RhdGEgPT0gaWRzLVxcdTAwM2Vkcml2ZXJfZGF0YSkge1xcbitcXHRcXHRcXHRpZiAoaWQuZHJpdmVyX2RhdGEgPT0gaWRzLVxcdTAwM2Vkcml2ZXJfZGF0YSkge1xcbiBcXHRcXHRcXHRcXHRyZXR2YWwgPSAwO1xcbiBcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0fVxcbkBAIC0yNDYsOCArMjczLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcXG4gXFx0XFx0XFx0cmV0dXJuIHJldHZhbDtcXG4gXFx0fVxcbiBcXG4tXFx0cmV0dmFsID0gcGNpX2FkZF9keW5pZChwZHJ2LCB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yLCBzdWJkZXZpY2UsXFxuLVxcdFxcdFxcdCAgICAgICBjbGFzcywgY2xhc3NfbWFzaywgZHJpdmVyX2RhdGEpO1xcbitcXHRyZXR2YWwgPSBkb19wY2lfYWRkX2R5bmlkKHBkcnYsIFxcdTAwMjZpZCwgZmllbGRzICE9IDcpO1xcbiBcXHRpZiAocmV0dmFsKVxcbiBcXHRcXHRyZXR1cm4gcmV0dmFsO1xcbiBcXHRyZXR1cm4gY291bnQ7XFxuQEAgLTQ0NCwxNSArNDcwLDE0IEBAIHZvaWQgcGNpX3Byb2JlX2ZsdXNoX3dvcmtxdWV1ZSh2b2lkKVxcbiAgKi9cXG4gc3RhdGljIGludCBfX3BjaV9kZXZpY2VfcHJvYmUoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpXFxuIHtcXG4tXFx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkO1xcbitcXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZDtcXG4gXFx0aW50IGVycm9yID0gMDtcXG4gXFxuIFxcdGlmIChkcnYtXFx1MDAzZXByb2JlKSB7XFxuIFxcdFxcdGVycm9yID0gLUVOT0RFVjtcXG4gXFxuLVxcdFxcdGlkID0gcGNpX21hdGNoX2RldmljZShkcnYsIHBjaV9kZXYpO1xcbi1cXHRcXHRpZiAoaWQpXFxuLVxcdFxcdFxcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBpZCk7XFxuK1xcdFxcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKGRydiwgcGNpX2RldiwgXFx1MDAyNmlkKSlcXG4rXFx0XFx0XFx0ZXJyb3IgPSBwY2lfY2FsbF9wcm9iZShkcnYsIHBjaV9kZXYsIFxcdTAwMjZpZCk7XFxuIFxcdH1cXG4gXFx0cmV0dXJuIGVycm9yO1xcbiB9XFxuQEAgLTE1MzcsMTcgKzE1NjIsMTMgQEAgc3RhdGljIGludCBwY2lfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcXG4ge1xcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldiA9IHRvX3BjaV9kZXYoZGV2KTtcXG4gXFx0c3RydWN0IHBjaV9kcml2ZXIgKnBjaV9kcnY7XFxuLVxcdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZDtcXG4rXFx0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQ7XFxuIFxcbiBcXHRpZiAocGNpX2Rldl9iaW5kaW5nX2Rpc2FsbG93ZWQocGNpX2RldikpXFxuIFxcdFxcdHJldHVybiAwO1xcbiBcXG4gXFx0cGNpX2RydiA9IChzdHJ1Y3QgcGNpX2RyaXZlciAqKXRvX3BjaV9kcml2ZXIoZHJ2KTtcXG4tXFx0Zm91bmRfaWQgPSBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYpO1xcbi1cXHRpZiAoZm91bmRfaWQpXFxuLVxcdFxcdHJldHVybiAxO1xcbi1cXG4tXFx0cmV0dXJuIDA7XFxuK1xcdHJldHVybiBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYsIFxcdTAwMjZpZCk7XFxuIH1cXG4gXFxuIC8qKlxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2kuaCBiL2RyaXZlcnMvcGNpL3BjaS5oXFxuaW5kZXggNDQ2OWUxYTc3ZjNjMTMuLjA1NjdhODc2MmJhYTA4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGNpL3BjaS5oXFxuKysrIGIvZHJpdmVycy9wY2kvcGNpLmhcXG5AQCAtNDQyLDIxICs0NDIsMzcgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3NldHVwX2NhcmRidXMoY2hhciAqc3RyKSB7IHJldHVybiAtRU5PRU5UOyB9XFxuICNlbmRpZiAvKiBDT05GSUdfQ0FSREJVUyAqL1xcbiBcXG4gLyoqXFxuLSAqIHBjaV9tYXRjaF9vbmVfZGV2aWNlIC0gVGVsbCBpZiBhIFBDSSBkZXZpY2Ugc3RydWN0dXJlIGhhcyBhIG1hdGNoaW5nXFxuLSAqXFx0XFx0XFx0ICBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZVxcbi0gKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaFxcbi0gKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxcbisgKiBwY2lfaWRfZnJvbV9kZXZpY2UgLSBPYnRhaW4gYSBwY2lfZGV2aWNlX2lkIGZyb20gYSBQQ0kgZGV2aWNlXFxuKyAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlXFxuKyAqXFxuKyAqIFJldHVybnMgYSBwY2lfZGV2aWNlX2lkIGZpbGxlZC5cXG4rICovXFxuK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGNpX2lkX2Zyb21fZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXFxuK3tcXG4rXFx0cmV0dXJuIChzdHJ1Y3QgcGNpX2RldmljZV9pZCkge1xcbitcXHRcXHQudmVuZG9yID0gZGV2LVxcdTAwM2V2ZW5kb3IsXFxuK1xcdFxcdC5kZXZpY2UgPSBkZXYtXFx1MDAzZWRldmljZSxcXG4rXFx0XFx0LnN1YnZlbmRvciA9IGRldi1cXHUwMDNlc3Vic3lzdGVtX3ZlbmRvcixcXG4rXFx0XFx0LnN1YmRldmljZSA9IGRldi1cXHUwMDNlc3Vic3lzdGVtX2RldmljZSxcXG4rXFx0XFx0LmNsYXNzID0gZGV2LVxcdTAwM2VjbGFzcyxcXG4rXFx0fTtcXG4rfVxcbitcXG4rLyoqXFxuKyAqIHBjaV9tYXRjaF9vbmVfaWQgLSBUZWxsIGlmIGEgUENJIGRldmljZSBJRCBtYXRjaGVzIGEgbmVlZGxlIFBDSSBkZXZpY2UgaWRcXG4rICogQGlkOiBzaW5nbGUgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdCAobmVlZGxlKVxcbisgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIElEIGZyb20gdGhlIFBDSSBkZXZpY2UgKGNhbiBiZSBjcmVhdGVkIHZpYSBwY2lfaWRfZnJvbV9kZXZpY2UpXFxuICAqXFxuICAqIFJldHVybnMgdGhlIG1hdGNoaW5nIHBjaV9kZXZpY2VfaWQgc3RydWN0dXJlIG9yICVOVUxMIGlmIHRoZXJlIGlzIG5vIG1hdGNoLlxcbiAgKi9cXG4gc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqXFxuLXBjaV9tYXRjaF9vbmVfZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldilcXG4rcGNpX21hdGNoX29uZV9pZChjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpkZXZfaWQpXFxuIHtcXG4tXFx0aWYgKChpZC1cXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXFx1MDAzZXZlbmRvciA9PSBkZXYtXFx1MDAzZXZlbmRvcikgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgIChpZC1cXHUwMDNlZGV2aWNlID09IFBDSV9BTllfSUQgfHwgaWQtXFx1MDAzZWRldmljZSA9PSBkZXYtXFx1MDAzZWRldmljZSkgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgIChpZC1cXHUwMDNlc3VidmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXFx1MDAzZXN1YnZlbmRvciA9PSBkZXYtXFx1MDAzZXN1YnN5c3RlbV92ZW5kb3IpIFxcdTAwMjZcXHUwMDI2XFxuLVxcdCAgICAoaWQtXFx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VzdWJkZXZpY2UgPT0gZGV2LVxcdTAwM2VzdWJzeXN0ZW1fZGV2aWNlKSBcXHUwMDI2XFx1MDAyNlxcbi1cXHQgICAgISgoaWQtXFx1MDAzZWNsYXNzIF4gZGV2LVxcdTAwM2VjbGFzcykgXFx1MDAyNiBpZC1cXHUwMDNlY2xhc3NfbWFzaykpXFxuK1xcdGlmICgoaWQtXFx1MDAzZXZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2V2ZW5kb3IgPT0gZGV2X2lkLVxcdTAwM2V2ZW5kb3IpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAoaWQtXFx1MDAzZWRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VkZXZpY2UgPT0gZGV2X2lkLVxcdTAwM2VkZXZpY2UpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAoaWQtXFx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VzdWJ2ZW5kb3IgPT0gZGV2X2lkLVxcdTAwM2VzdWJ2ZW5kb3IpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAoaWQtXFx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVxcdTAwM2VzdWJkZXZpY2UgPT0gZGV2X2lkLVxcdTAwM2VzdWJkZXZpY2UpIFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICAhKChpZC1cXHUwMDNlY2xhc3MgXiBkZXZfaWQtXFx1MDAzZWNsYXNzKSBcXHUwMDI2IGlkLVxcdTAwM2VjbGFzc19tYXNrKSlcXG4gXFx0XFx0cmV0dXJuIGlkO1xcbiBcXHRyZXR1cm4gTlVMTDtcXG4gfVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZWFyY2guYyBiL2RyaXZlcnMvcGNpL3NlYXJjaC5jXFxuaW5kZXggZTNkMzE3N2ZjZTU0OWUuLmM4YzRiZmU3ODE3YjAzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvcGNpL3NlYXJjaC5jXFxuKysrIGIvZHJpdmVycy9wY2kvc2VhcmNoLmNcXG5AQCAtMjQ1LDggKzI0NSwxMCBAQCBzdGF0aWMgaW50IG1hdGNoX3BjaV9kZXZfYnlfaWQoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCB2b2lkICpkYXRhKVxcbiB7XFxuIFxcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpO1xcbiBcXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBkYXRhO1xcbitcXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBkZXZfaWQ7XFxuIFxcbi1cXHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoaWQsIHBkZXYpKVxcbitcXHRkZXZfaWQgPSBwY2lfaWRfZnJvbV9kZXZpY2UocGRldik7XFxuK1xcdGlmIChwY2lfbWF0Y2hfb25lX2lkKGlkLCBcXHUwMDI2ZGV2X2lkKSlcXG4gXFx0XFx0cmV0dXJuIDE7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuQEAgLTQxOCw3ICs0MjAsNyBAQCBFWFBPUlRfU1lNQk9MKHBjaV9nZXRfY2xhc3MpO1xcbiAgKlxcbiAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBsaXN0IG9mIGtub3duIFBDSSBkZXZpY2VzLiBJZiBhIFBDSSBkZXZpY2UgaXMgZm91bmRcXG4gICogd2l0aCBhIG1hdGNoaW5nIGJhc2UgY2xhc3MgY29kZSwgdGhlIHJlZmVyZW5jZSBjb3VudCB0byB0aGUgZGV2aWNlIGlzXFxuLSAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9kZXZpY2UoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuXFxuKyAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9pZCgpIHRvIGZpZ3VyZSBvdXQgaG93IGRvZXMgdGhpcyB3b3Jrcy5cXG4gICogQSBuZXcgc2VhcmNoIGlzIGluaXRpYXRlZCBieSBwYXNzaW5nICVOVUxMIGFzIHRoZSBAZnJvbSBhcmd1bWVudC5cXG4gICogT3RoZXJ3aXNlIGlmIEBmcm9tIGlzIG5vdCAlTlVMTCwgc2VhcmNoZXMgY29udGludWUgZnJvbSBuZXh0IGRldmljZSBvbiB0aGVcXG4gICogZ2xvYmFsIGxpc3QuIFRoZSByZWZlcmVuY2UgY291bnQgZm9yIEBmcm9tIGlzIGFsd2F5cyBkZWNyZW1lbnRlZCBpZiBpdCBpc1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jXFxuaW5kZXggZTg5M2Q1Njc3MjQxN2EuLjljOTI4MTIyMmEwYWNmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9uc3AzMi5jXFxuKysrIGIvZHJpdmVycy9zY3NpL25zcDMyLmNcXG5AQCAtMTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGludCBuc3AzMl9zaG93X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KVxcbiBcXHRcXHQgICAobnNwMzJfcmVhZDIoYmFzZSwgSU5ERVhfUkVHKSBcXHUwMDNlXFx1MDAzZSA4KSBcXHUwMDI2IDB4ZmYpO1xcbiBcXG4gXFx0bW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpO1xcbi1cXHRtb2RlbCAgICA9IGRhdGEtXFx1MDAzZXBjaV9kZXZpZC1cXHUwMDNlZHJpdmVyX2RhdGE7XFxuK1xcdG1vZGVsICAgID0gZGF0YS1cXHUwMDNlbW9kZWw7XFxuIFxcbiAjaWZkZWYgQ09ORklHX1BNXFxuIFxcdHNlcV9wcmludGYobSwgXFxcIlBvd2VyIE1hbmFnZW1lbnQ6ICAgICAgJXNcXFxcblxcXCIsXFxuQEAgLTI5MDcsOCArMjkwNyw4IEBAIHN0YXRpYyBpbnQgbnNwMzJfZWhfaG9zdF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudClcXG4gICovXFxuIHN0YXRpYyBpbnQgbnNwMzJfZ2V0cHJvbV9wYXJhbShuc3AzMl9od19kYXRhICpkYXRhKVxcbiB7XFxuLVxcdGludCB2ZW5kb3IgPSBkYXRhLVxcdTAwM2VwY2lfZGV2aWQtXFx1MDAzZXZlbmRvcjtcXG4tXFx0aW50IGRldmljZSA9IGRhdGEtXFx1MDAzZXBjaV9kZXZpZC1cXHUwMDNlZGV2aWNlO1xcbitcXHRpbnQgdmVuZG9yID0gZGF0YS1cXHUwMDNlUGNpLVxcdTAwM2V2ZW5kb3I7XFxuK1xcdGludCBkZXZpY2UgPSBkYXRhLVxcdTAwM2VQY2ktXFx1MDAzZWRldmljZTtcXG4gXFx0aW50IHJldCwgaTtcXG4gXFx0aW50IF9fbWF5YmVfdW51c2VkIHZhbDtcXG4gXFxuQEAgLTMzNDAsNyArMzM0MCw3IEBAIHN0YXRpYyBpbnQgbnNwMzJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gXFx0fVxcbiBcXG4gXFx0ZGF0YS1cXHUwMDNlUGNpXFx0ICA9IHBkZXY7XFxuLVxcdGRhdGEtXFx1MDAzZXBjaV9kZXZpZCAgID0gaWQ7XFxuK1xcdGRhdGEtXFx1MDAzZW1vZGVsICAgICAgID0gaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbiBcXHRkYXRhLVxcdTAwM2VJcnFOdW1iZXIgICA9IHBkZXYtXFx1MDAzZWlycTtcXG4gXFx0ZGF0YS1cXHUwMDNlQmFzZUFkZHJlc3MgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMCk7XFxuIFxcdGRhdGEtXFx1MDAzZU51bUFkZHJlc3MgID0gcGNpX3Jlc291cmNlX2xlbiAgKHBkZXYsIDApO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbnNwMzIuaCBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oXFxuaW5kZXggOTI0ODg5ZjhiZDM3ZTcuLjllNjU3NzFjYjU5Mjg2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvc2NzaS9uc3AzMi5oXFxuKysrIGIvZHJpdmVycy9zY3NpL25zcDMyLmhcXG5AQCAtNTY0LDEwICs1NjQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX25zcDMyX2h3X2RhdGEge1xcbiBcXG4gXFx0c3RydWN0IHNjc2lfY21uZCAqQ3VycmVudFNDO1xcbiBcXG4tXFx0c3RydWN0IHBjaV9kZXYgICAgICAgICAgICAgKlBjaTtcXG4tXFx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXZpZDtcXG4tXFx0c3RydWN0IFNjc2lfSG9zdCAgICAgICAgICAgKkhvc3Q7XFxuLVxcdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBMb2NrO1xcbitcXHRzdHJ1Y3QgcGNpX2RldiAgICAqUGNpO1xcbitcXHRpbnQgICAgICAgICAgICAgICAgbW9kZWw7XFxuK1xcdHN0cnVjdCBTY3NpX0hvc3QgICpIb3N0O1xcbitcXHRzcGlubG9ja190ICAgICAgICAgTG9jaztcXG4gXFxuIFxcdGNoYXIgaW5mb19zdHJbMTAwXTtcXG4gXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLmggYi9pbmNsdWRlL2xpbnV4L3BjaS5oXFxuaW5kZXggZWJiNWI5ZDc2MzYwOWUuLmYxMjhkOGMwY2JiNjRkIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvcGNpLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L3BjaS5oXFxuQEAgLTk3OSw2ICs5NzksNyBAQCBzdHJ1Y3QgbW9kdWxlO1xcbiAgKlxcdFxcdGZ1bmN0aW9uIHJldHVybnMgemVybyB3aGVuIHRoZSBkcml2ZXIgY2hvb3NlcyB0b1xcbiAgKlxcdFxcdHRha2UgXFxcIm93bmVyc2hpcFxcXCIgb2YgdGhlIGRldmljZSBvciBhbiBlcnJvciBjb2RlXFxuICAqXFx0XFx0KG5lZ2F0aXZlIG51bWJlcikgb3RoZXJ3aXNlLlxcbisgKlxcdFxcdFRoZSBwY2lfZGV2aWNlX2lkIHBhcmFtZXRlciBpcyBvbmx5IHZhbGlkIGR1cmluZyBwcm9iZS5cXG4gICpcXHRcXHRUaGUgcHJvYmUgZnVuY3Rpb24gYWx3YXlzIGdldHMgY2FsbGVkIGZyb20gcHJvY2Vzc1xcbiAgKlxcdFxcdGNvbnRleHQsIHNvIGl0IGNhbiBzbGVlcC5cXG4gICogQHJlbW92ZTpcXHRUaGUgcmVtb3ZlKCkgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBkZXZpY2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6MzAuODQwODM5MTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MzMwNjIyOTIyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJBVEFfR0VORVJJQ1wiLFxuICAgIFwiSVBBQ0tfQlVTXCIsXG4gICAgXCJCT0FSRF9UUENJMjAwXCIsXG4gICAgXCJNTFhTV19DT1JFXCIsXG4gICAgXCJNTFhTV19QQ0lcIixcbiAgICBcIlNDU0lfTlNQMzJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXdfaWRfc3RvcmVcIixcbiAgICBcImRvX3BjaV9hZGRfZHluaWRcIixcbiAgICBcInBjaV9tYXRjaF9kZXZpY2VcIixcbiAgICBcIl9fcGNpX2RldmljZV9wcm9iZVwiLFxuICAgIFwiYXRhX2dlbmVyaWNfaW5pdF9vbmVcIixcbiAgICBcInRwY2kyMDBfcGNpX3Byb2JlXCIsXG4gICAgXCJtbHhzd19wY2lfcHJvYmVcIixcbiAgICBcIm5zcDMyX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgUENJIGRldmljZSBtYXRjaGluZyBhbmQgcHJvYmluZyBsb2dpYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcyB3aXRoIGR5bmFtaWMgUENJIElEcy4gSXQgYWxsb2NhdGVzIHRoZSBtYXRjaGVkIGBwY2lfZGV2aWNlX2lkYCBvbiB0aGUgc3RhY2sgZHVyaW5nIHByb2JlIGFuZCB1cGRhdGVzIHNldmVyYWwgZHJpdmVycyB0aGF0IHByZXZpb3VzbHkgc2F2ZWQgdGhpcyBwb2ludGVyIHRvIHByZXZlbnQgc3RhY2sgdXNlLWFmdGVyLWZyZWUuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBQQ0kgZHluYW1pYyBJRCBzeXNmcyBpbnRlcmZhY2UgKGBuZXdfaWRfc3RvcmVgKSwgdGhlIFBDSSBtYXRjaGluZy9wcm9iaW5nIGxvZ2ljLCBhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBvZiB0aGUgbW9kaWZpZWQgZHJpdmVycy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAwOTEyZDAzNWIxMjNkOGIyMGIxNmQ4YWJjZDE5OTFjMDFiYmE5ZDY2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMTY6MjM6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9hdGFfZ2VuZXJpYy5jIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuaW5kZXggZTcwYjZjMDg5Y2YxNzkuLjE4ZWE3NDBjYTU4MjkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuKysrIGIvZHJpdmVycy9hdGEvYXRhX2dlbmVyaWMuY1xuQEAgLTUxLDExICs1MSwxMSBAQCBlbnVtIHtcbiBzdGF0aWMgaW50IGdlbmVyaWNfc2V0X21vZGUoc3RydWN0IGF0YV9saW5rICpsaW5rLCBzdHJ1Y3QgYXRhX2RldmljZSAqKnVudXNlZClcbiB7XG4gXHRzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay1cdTAwM2VhcDtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCA9IGFwLVx1MDAzZWhvc3QtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuK1x0dW5zaWduZWQgbG9uZyBkcml2ZXJfZGF0YSA9ICh1bnNpZ25lZCBsb25nKWFwLVx1MDAzZWhvc3QtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuIFx0aW50IGRtYV9lbmFibGVkID0gMDtcbiBcdHN0cnVjdCBhdGFfZGV2aWNlICpkZXY7XG4gXG4tXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2RhdGEgXHUwMDI2IEFUQV9HRU5fRk9SQ0VfRE1BKSB7XG4rXHRpZiAoZHJpdmVyX2RhdGEgXHUwMDI2IEFUQV9HRU5fRk9SQ0VfRE1BKSB7XG4gXHRcdGRtYV9lbmFibGVkID0gMHhmZjtcbiBcdH0gZWxzZSBpZiAoYXAtXHUwMDNlaW9hZGRyLmJtZG1hX2FkZHIpIHtcbiBcdFx0LyogQml0cyA1IGFuZCA2IGluZGljYXRlIGlmIERNQSBpcyBhY3RpdmUgb24gbWFzdGVyL3NsYXZlICovXG5AQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbnQgYXRhX2dlbmVyaWNfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWRcbiBcdFx0XHRyZXR1cm4gcmM7XG4gXHRcdHBjaW1fcGluX2RldmljZShkZXYpO1xuIFx0fVxuLVx0cmV0dXJuIGF0YV9wY2lfYm1kbWFfaW5pdF9vbmUoZGV2LCBwcGksIFx1MDAyNmdlbmVyaWNfc2h0LCAodm9pZCAqKWlkLCAwKTtcbitcdHJldHVybiBhdGFfcGNpX2JtZG1hX2luaXRfb25lKGRldiwgcHBpLCBcdTAwMjZnZW5lcmljX3NodCwgKHZvaWQgKilpZC1cdTAwM2Vkcml2ZXJfZGF0YSwgMCk7XG4gfVxuIFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBhdGFfZ2VuZXJpY1tdID0ge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmNcbmluZGV4IDA1ZGNiNjY3NWNkNjYxLi4xY2Y1MWY3NjMyOTMyYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jXG4rKysgYi9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuY1xuQEAgLTU2Miw3ICs1NjIsNiBAQCBzdGF0aWMgaW50IHRwY2kyMDBfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuIFxuIFx0LyogU2F2ZSBzdHJ1Y3QgcGNpX2RldiBwb2ludGVyICovXG4gXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlcGRldiA9IHBkZXY7XG4tXHR0cGNpMjAwLVx1MDAzZWluZm8tXHUwMDNlaWRfdGFibGUgPSAoc3RydWN0IHBjaV9kZXZpY2VfaWQgKilpZDtcbiBcbiBcdC8qIHJlZ2lzdGVyIHRoZSBkZXZpY2UgYW5kIGluaXRpYWxpemUgaXQgKi9cbiBcdHJldCA9IHRwY2kyMDBfaW5zdGFsbCh0cGNpMjAwKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaCBiL2RyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5oXG5pbmRleCBlNzlhYzY0YWJjZmZhYy4uYTJiZjMxMjU3OTRiN2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuaFxuKysrIGIvZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmhcbkBAIC0xNDUsNyArMTQ1LDYgQEAgc3RydWN0IHRwY2kyMDBfc2xvdCB7XG4gICovXG4gc3RydWN0IHRwY2kyMDBfaW5mb3Mge1xuIFx0c3RydWN0IHBjaV9kZXZcdFx0XHQqcGRldjtcbi1cdHN0cnVjdCBwY2lfZGV2aWNlX2lkXHRcdCppZF90YWJsZTtcbiBcdHN0cnVjdCB0cGNpMjAwX3JlZ3MgX19pb21lbVx0KmludGVyZmFjZV9yZWdzO1xuIFx0dm9pZCBfX2lvbWVtXHRcdFx0KmNmZ19yZWdzO1xuIFx0c3RydWN0IGlwYWNrX2J1c19kZXZpY2VcdFx0KmlwYWNrX2J1cztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3BjaS5jXG5pbmRleCAwZGE4NWQzNjY0N2Q5MS4uYmZlMzI2OGRmZGMxN2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9wY2kuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvcGNpLmNcbkBAIC0xMzAsNyArMTMwLDYgQEAgc3RydWN0IG1seHN3X3BjaSB7XG4gXHRcdH0gY29tcDtcbiBcdH0gY21kO1xuIFx0c3RydWN0IG1seHN3X2J1c19pbmZvIGJ1c19pbmZvO1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkO1xuIFx0ZW51bSBtbHhzd19wY2lfY3FlX3YgbWF4X2NxZV92ZXI7IC8qIE1heGltYWwgc3VwcG9ydGVkIENRRSB2ZXJzaW9uICovXG4gXHR1OCBudW1fY3FzOyAvKiBOdW1iZXIgb2YgQ1FzICovXG4gXHR1OCBudW1fc2RxczsgLyogTnVtYmVyIG9mIFNEUXMgKi9cbkBAIC0xNzY4LDcgKzE3NjcsNiBAQCBzdGF0aWMgdm9pZCBtbHhzd19wY2lfbWJveF9mcmVlKHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSxcbiB9XG4gXG4gc3RhdGljIGludCBtbHhzd19wY2lfc3lzX3JlYWR5X3dhaXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLFxuLVx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCxcbiBcdFx0XHRcdCAgICB1MzIgKnBfc3lzX3N0YXR1cylcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGVuZDtcbkBAIC0xODM5LDcgKzE4MzcsNyBAQCBzdGF0aWMgaW50IG1seHN3X3BjaV9yZXNldF9zdyhzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2kpXG4gfVxuIFxuIHN0YXRpYyBpbnRcbi1tbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4rbWx4c3dfcGNpX3Jlc2V0KHN0cnVjdCBtbHhzd19wY2kgKm1seHN3X3BjaSlcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IG1seHN3X3BjaS1cdTAwM2VwZGV2O1xuIFx0Ym9vbCBwY2lfcmVzZXRfc2JyX3N1cHBvcnRlZCA9IGZhbHNlO1xuQEAgLTE4NDgsNyArMTg0Niw3IEBAIG1seHN3X3BjaV9yZXNldChzdHJ1Y3QgbWx4c3dfcGNpICptbHhzd19wY2ksIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdHUzMiBzeXNfc3RhdHVzO1xuIFx0aW50IGVycjtcbiBcbi1cdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIGlkLCBcdTAwMjZzeXNfc3RhdHVzKTtcbitcdGVyciA9IG1seHN3X3BjaV9zeXNfcmVhZHlfd2FpdChtbHhzd19wY2ksIFx1MDAyNnN5c19zdGF0dXMpO1xuIFx0aWYgKGVycikge1xuIFx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcIkZhaWxlZCB0byByZWFjaCBzeXN0ZW0gcmVhZHkgc3RhdHVzIGJlZm9yZSByZXNldC4gU3RhdHVzIGlzIDB4JXhcXG5cIixcbiBcdFx0XHRzeXNfc3RhdHVzKTtcbkBAIC0xODgwLDcgKzE4NzgsNyBAQCBtbHhzd19wY2lfcmVzZXQoc3RydWN0IG1seHN3X3BjaSAqbWx4c3dfcGNpLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4gXHRpZiAoZXJyKVxuIFx0XHRyZXR1cm4gZXJyO1xuIFxuLVx0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgaWQsIFx1MDAyNnN5c19zdGF0dXMpO1xuK1x0ZXJyID0gbWx4c3dfcGNpX3N5c19yZWFkeV93YWl0KG1seHN3X3BjaSwgXHUwMDI2c3lzX3N0YXR1cyk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwiRmFpbGVkIHRvIHJlYWNoIHN5c3RlbSByZWFkeSBzdGF0dXMgYWZ0ZXIgcmVzZXQuIFN0YXR1cyBpcyAweCV4XFxuXCIsXG4gXHRcdFx0c3lzX3N0YXR1cyk7XG5AQCAtMTkzMiw3ICsxOTMwLDcgQEAgc3RhdGljIGludCBtbHhzd19wY2lfaW5pdCh2b2lkICpidXNfcHJpdiwgc3RydWN0IG1seHN3X2NvcmUgKm1seHN3X2NvcmUsXG4gXHRpZiAoIW1ib3gpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0ZXJyID0gbWx4c3dfcGNpX3Jlc2V0KG1seHN3X3BjaSwgbWx4c3dfcGNpLVx1MDAzZWlkKTtcbitcdGVyciA9IG1seHN3X3BjaV9yZXNldChtbHhzd19wY2kpO1xuIFx0aWYgKGVycilcbiBcdFx0Z290byBlcnJfcmVzZXQ7XG4gXG5AQCAtMjQ2NCw3ICsyNDYyLDYgQEAgc3RhdGljIGludCBtbHhzd19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiBcdG1seHN3X3BjaS1cdTAwM2VidXNfaW5mby5kZXZpY2VfbmFtZSA9IHBjaV9uYW1lKG1seHN3X3BjaS1cdTAwM2VwZGV2KTtcbiBcdG1seHN3X3BjaS1cdTAwM2VidXNfaW5mby5kZXYgPSBcdTAwMjZwZGV2LVx1MDAzZWRldjtcbiBcdG1seHN3X3BjaS1cdTAwM2VidXNfaW5mby5yZWFkX2Nsb2NrX2NhcGFibGUgPSB0cnVlO1xuLVx0bWx4c3dfcGNpLVx1MDAzZWlkID0gaWQ7XG4gXG4gXHRlcnIgPSBtbHhzd19jb3JlX2J1c19kZXZpY2VfcmVnaXN0ZXIoXHUwMDI2bWx4c3dfcGNpLVx1MDAzZWJ1c19pbmZvLFxuIFx0XHRcdFx0XHQgICAgIFx1MDAyNm1seHN3X3BjaV9idXMsIG1seHN3X3BjaSwgZmFsc2UsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jIGIvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jXG5pbmRleCBmMzY3NzhlNjJhYzFhNS4uZmFkMDI4YjlkYzUzZWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNcbisrKyBiL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuY1xuQEAgLTI5LDYgKzI5LDQ4IEBAIHN0cnVjdCBwY2lfZHluaWQge1xuIFx0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQ7XG4gfTtcbiBcbisvKipcbisgKiBkb19wY2lfYWRkX2R5bmlkIC0gYWRkIGEgbmV3IFBDSSBkZXZpY2UgSUQgdG8gdGhpcyBkcml2ZXIgYW5kIHJlLXByb2JlIGRldmljZXNcbisgKiBAZHJ2OiB0YXJnZXQgcGNpIGRyaXZlclxuKyAqIEBpZDogSUQgdG8gYmUgYWRkZWRcbisgKiBAY2hlY2tfZHVwOiB3aGV0aGVyIHRvIGNoZWNrIGlmIG1hdGNoaW5nIElEIGlzIGFscmVhZHkgcHJlc2VudFxuKyAqXG4rICogQWRkcyBhIG5ldyBkeW5hbWljIHBjaSBkZXZpY2UgSUQgdG8gdGhpcyBkcml2ZXIgYW5kIGNhdXNlcyB0aGVcbisgKiBkcml2ZXIgdG8gcHJvYmUgZm9yIGFsbCBkZXZpY2VzIGFnYWluLiAgQGRydiBtdXN0IGhhdmUgYmVlblxuKyAqIHJlZ2lzdGVyZWQgcHJpb3IgdG8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuKyAqXG4rICogQ09OVEVYVDpcbisgKiBEb2VzIEdGUF9LRVJORUwgYWxsb2NhdGlvbi5cbisgKlxuKyAqIFJFVFVSTlM6XG4rICogMCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS5cbisgKi9cbitzdGF0aWMgaW50IGRvX3BjaV9hZGRfZHluaWQoc3RydWN0IHBjaV9kcml2ZXIgKmRydiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBib29sIGNoZWNrX2R1cClcbit7XG4rXHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZCwgKmV4aXN0aW5nX2R5bmlkO1xuK1xuK1x0ZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpO1xuK1x0aWYgKCFkeW5pZClcbitcdFx0cmV0dXJuIC1FTk9NRU07XG4rXG4rXHRkeW5pZC1cdTAwM2VpZCA9ICppZDtcbitcbitcdHtcbitcdFx0Z3VhcmQoc3BpbmxvY2spKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4rXHRcdGlmIChjaGVja19kdXApIHtcbitcdFx0XHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGV4aXN0aW5nX2R5bmlkLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QsIG5vZGUpIHtcbitcdFx0XHRcdGlmIChwY2lfbWF0Y2hfb25lX2lkKFx1MDAyNmV4aXN0aW5nX2R5bmlkLVx1MDAzZWlkLCBpZCkpIHtcbitcdFx0XHRcdFx0a2ZyZWUoZHluaWQpO1xuK1x0XHRcdFx0XHRyZXR1cm4gLUVFWElTVDtcbitcdFx0XHRcdH1cbitcdFx0XHR9XG4rXHRcdH1cbitcdFx0bGlzdF9hZGRfdGFpbChcdTAwMjZkeW5pZC1cdTAwM2Vub2RlLCBcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxpc3QpO1xuK1x0fVxuK1xuK1x0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4rfVxuK1xuIC8qKlxuICAqIHBjaV9hZGRfZHluaWQgLSBhZGQgYSBuZXcgUENJIGRldmljZSBJRCB0byB0aGlzIGRyaXZlciBhbmQgcmUtcHJvYmUgZGV2aWNlc1xuICAqIEBkcnY6IHRhcmdldCBwY2kgZHJpdmVyXG5AQCAtNTYsMjUgKzk4LDE3IEBAIGludCBwY2lfYWRkX2R5bmlkKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4gXHRcdCAgdW5zaWduZWQgaW50IGNsYXNzLCB1bnNpZ25lZCBpbnQgY2xhc3NfbWFzayxcbiBcdFx0ICB1bnNpZ25lZCBsb25nIGRyaXZlcl9kYXRhKVxuIHtcbi1cdHN0cnVjdCBwY2lfZHluaWQgKmR5bmlkO1xuLVxuLVx0ZHluaWQgPSBremFsbG9jX29iaigqZHluaWQpO1xuLVx0aWYgKCFkeW5pZClcbi1cdFx0cmV0dXJuIC1FTk9NRU07XG4tXG4tXHRkeW5pZC1cdTAwM2VpZC52ZW5kb3IgPSB2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5kZXZpY2UgPSBkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJ2ZW5kb3IgPSBzdWJ2ZW5kb3I7XG4tXHRkeW5pZC1cdTAwM2VpZC5zdWJkZXZpY2UgPSBzdWJkZXZpY2U7XG4tXHRkeW5pZC1cdTAwM2VpZC5jbGFzcyA9IGNsYXNzO1xuLVx0ZHluaWQtXHUwMDNlaWQuY2xhc3NfbWFzayA9IGNsYXNzX21hc2s7XG4tXHRkeW5pZC1cdTAwM2VpZC5kcml2ZXJfZGF0YSA9IGRyaXZlcl9kYXRhO1xuLVxuLVx0c3Bpbl9sb2NrKFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubG9jayk7XG4tXHRsaXN0X2FkZF90YWlsKFx1MDAyNmR5bmlkLVx1MDAzZW5vZGUsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCk7XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0cmV0dXJuIGRyaXZlcl9hdHRhY2goXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4rXHRzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZCA9IHtcbitcdFx0LnZlbmRvciA9IHZlbmRvcixcbitcdFx0LmRldmljZSA9IGRldmljZSxcbitcdFx0LnN1YnZlbmRvciA9IHN1YnZlbmRvcixcbitcdFx0LnN1YmRldmljZSA9IHN1YmRldmljZSxcbitcdFx0LmNsYXNzID0gY2xhc3MsXG4rXHRcdC5jbGFzc19tYXNrID0gY2xhc3NfbWFzayxcbitcdFx0LmRyaXZlcl9kYXRhID0gZHJpdmVyX2RhdGEsXG4rXHR9O1xuK1xuK1x0cmV0dXJuIGRvX3BjaV9hZGRfZHluaWQoZHJ2LCBcdTAwMjZpZCwgZmFsc2UpO1xuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChwY2lfYWRkX2R5bmlkKTtcbiBcbkBAIC05MCw2ICsxMjQsMjkgQEAgc3RhdGljIHZvaWQgcGNpX2ZyZWVfZHluaWRzKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYpXG4gXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuIH1cbiBcbisvKipcbisgKiBkb19wY2lfbWF0Y2hfaWQgLSBTZWUgaWYgYSBQQ0kgSUQgbWF0Y2hlcyBhIGdpdmVuIHBjaV9pZCB0YWJsZVxuKyAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cbisgKiBAZGV2X2lkOiB0aGUgYWN0dWFsIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlIHRvIG1hdGNoIGFnYWluc3QuXG4rICpcbisgKiBSZXR1cm5zIHRoZSBtYXRjaGluZyBwY2lfZGV2aWNlX2lkIHN0cnVjdHVyZSBvclxuKyAqICVOVUxMIGlmIHRoZXJlIGlzIG5vIG1hdGNoLlxuKyAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZG9fcGNpX21hdGNoX2lkKGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZHMsXG4rXHRcdFx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmRldl9pZCxcbitcdFx0XHRcdFx0XHQgICBib29sIG1hdGNoX292ZXJyaWRlX29ubHkpXG4re1xuK1x0aWYgKGlkcykge1xuK1x0XHR3aGlsZSAoaWRzLVx1MDAzZXZlbmRvciB8fCBpZHMtXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cdTAwM2VjbGFzc19tYXNrKSB7XG4rXHRcdFx0aWYgKCghaWRzLVx1MDAzZW92ZXJyaWRlX29ubHkgfHwgbWF0Y2hfb3ZlcnJpZGVfb25seSkgXHUwMDI2XHUwMDI2XG4rXHRcdFx0ICAgIHBjaV9tYXRjaF9vbmVfaWQoaWRzLCBkZXZfaWQpKVxuK1x0XHRcdFx0cmV0dXJuIGlkcztcbitcdFx0XHRpZHMrKztcbitcdFx0fVxuK1x0fVxuK1x0cmV0dXJuIE5VTEw7XG4rfVxuK1xuIC8qKlxuICAqIHBjaV9tYXRjaF9pZCAtIFNlZSBpZiBhIFBDSSBkZXZpY2UgbWF0Y2hlcyBhIGdpdmVuIHBjaV9pZCB0YWJsZVxuICAqIEBpZHM6IGFycmF5IG9mIFBDSSBkZXZpY2UgSUQgc3RydWN0dXJlcyB0byBzZWFyY2ggaW5cbkBAIC0xMDUsMTQgKzE2Miw5IEBAIHN0YXRpYyB2b2lkIHBjaV9mcmVlX2R5bmlkcyhzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2KVxuIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkcyxcbiBcdFx0XHRcdFx0IHN0cnVjdCBwY2lfZGV2ICpkZXYpXG4ge1xuLVx0aWYgKGlkcykge1xuLVx0XHR3aGlsZSAoaWRzLVx1MDAzZXZlbmRvciB8fCBpZHMtXHUwMDNlc3VidmVuZG9yIHx8IGlkcy1cdTAwM2VjbGFzc19tYXNrKSB7XG4tXHRcdFx0aWYgKHBjaV9tYXRjaF9vbmVfZGV2aWNlKGlkcywgZGV2KSlcbi1cdFx0XHRcdHJldHVybiBpZHM7XG4tXHRcdFx0aWRzKys7XG4tXHRcdH1cbi1cdH1cbi1cdHJldHVybiBOVUxMO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkID0gcGNpX2lkX2Zyb21fZGV2aWNlKGRldik7XG4rXG4rXHRyZXR1cm4gZG9fcGNpX21hdGNoX2lkKGlkcywgXHUwMDI2ZGV2X2lkLCB0cnVlKTtcbiB9XG4gRVhQT1JUX1NZTUJPTChwY2lfbWF0Y2hfaWQpO1xuIFxuQEAgLTEyNyw2MSArMTc5LDUyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfZGV2aWNlX2lkX2FueSA9IHtcbiAgKiBwY2lfbWF0Y2hfZGV2aWNlIC0gU2VlIGlmIGEgZGV2aWNlIG1hdGNoZXMgYSBkcml2ZXIncyBsaXN0IG9mIElEc1xuICAqIEBkcnY6IHRoZSBQQ0kgZHJpdmVyIHRvIG1hdGNoIGFnYWluc3RcbiAgKiBAZGV2OiB0aGUgUENJIGRldmljZSBzdHJ1Y3R1cmUgdG8gbWF0Y2ggYWdhaW5zdFxuKyAqIEBpZDogTWF0Y2hlZCBwY2lfZGV2aWNlX2lkXG4gICpcbiAgKiBVc2VkIGJ5IGEgZHJpdmVyIHRvIGNoZWNrIHdoZXRoZXIgYSBQQ0kgZGV2aWNlIGlzIGluIGl0cyBsaXN0IG9mXG4gICogc3VwcG9ydGVkIGRldmljZXMgb3IgaW4gdGhlIGR5bmlkcyBsaXN0LCB3aGljaCBtYXkgaGF2ZSBiZWVuIGF1Z21lbnRlZFxuLSAqIHZpYSB0aGUgc3lzZnMgXCJuZXdfaWRcIiBmaWxlLiAgUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZFxuLSAqIHN0cnVjdHVyZSBvciAlTlVMTCBpZiB0aGVyZSBpcyBubyBtYXRjaC5cbisgKiB2aWEgdGhlIHN5c2ZzIFwibmV3X2lkXCIgZmlsZS4gIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIG1hdGNoLCB0aGUgbWF0Y2hlZFxuKyAqIElEIGlzIHN0b3JlZCBpbiBAaWQuXG4gICovXG4tc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfbWF0Y2hfZGV2aWNlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsXG4tXHRcdFx0XHRcdFx0ICAgIHN0cnVjdCBwY2lfZGV2ICpkZXYpXG4rc3RhdGljIGJvb2wgcGNpX21hdGNoX2RldmljZShzdHJ1Y3QgcGNpX2RyaXZlciAqZHJ2LFxuK1x0XHRcdCAgICAgc3RydWN0IHBjaV9kZXYgKmRldixcbitcdFx0XHQgICAgIHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiB7XG4gXHRzdHJ1Y3QgcGNpX2R5bmlkICpkeW5pZDtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpmb3VuZF9pZCA9IE5VTEwsICppZHM7XG4rXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZm91bmRfaWQgPSBOVUxMO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkO1xuIFx0aW50IHJldDtcbiBcbiBcdC8qIFdoZW4gZHJpdmVyX292ZXJyaWRlIGlzIHNldCwgb25seSBiaW5kIHRvIHRoZSBtYXRjaGluZyBkcml2ZXIgKi9cbiBcdHJldCA9IGRldmljZV9tYXRjaF9kcml2ZXJfb3ZlcnJpZGUoXHUwMDI2ZGV2LVx1MDAzZWRldiwgXHUwMDI2ZHJ2LVx1MDAzZWRyaXZlcik7XG4gXHRpZiAocmV0ID09IDApXG4tXHRcdHJldHVybiBOVUxMO1xuK1x0XHRyZXR1cm4gZmFsc2U7XG4gXG4rXHRkZXZfaWQgPSBwY2lfaWRfZnJvbV9kZXZpY2UoZGV2KTtcbiBcdC8qIExvb2sgYXQgdGhlIGR5bmFtaWMgaWRzIGZpcnN0LCBiZWZvcmUgdGhlIHN0YXRpYyBvbmVzICovXG4tXHRzcGluX2xvY2soXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5sb2NrKTtcbi1cdGxpc3RfZm9yX2VhY2hfZW50cnkoZHluaWQsIFx1MDAyNmRydi1cdTAwM2VkeW5pZHMubGlzdCwgbm9kZSkge1xuLVx0XHRpZiAocGNpX21hdGNoX29uZV9kZXZpY2UoXHUwMDI2ZHluaWQtXHUwMDNlaWQsIGRldikpIHtcbi1cdFx0XHRmb3VuZF9pZCA9IFx1MDAyNmR5bmlkLVx1MDAzZWlkO1xuLVx0XHRcdGJyZWFrO1xuK1x0e1xuK1x0XHRndWFyZChzcGlubG9jaykoXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5sb2NrKTtcbitcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkeW5pZCwgXHUwMDI2ZHJ2LVx1MDAzZWR5bmlkcy5saXN0LCBub2RlKSB7XG4rXHRcdFx0aWYgKHBjaV9tYXRjaF9vbmVfaWQoXHUwMDI2ZHluaWQtXHUwMDNlaWQsIFx1MDAyNmRldl9pZCkpIHtcbitcdFx0XHRcdCppZCA9IGR5bmlkLVx1MDAzZWlkO1xuK1x0XHRcdFx0cmV0dXJuIHRydWU7XG4rXHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4tXHRzcGluX3VubG9jayhcdTAwMjZkcnYtXHUwMDNlZHluaWRzLmxvY2spO1xuLVxuLVx0aWYgKGZvdW5kX2lkKVxuLVx0XHRyZXR1cm4gZm91bmRfaWQ7XG4gXG4tXHRmb3IgKGlkcyA9IGRydi1cdTAwM2VpZF90YWJsZTsgKGZvdW5kX2lkID0gcGNpX21hdGNoX2lkKGlkcywgZGV2KSk7XG4tXHQgICAgIGlkcyA9IGZvdW5kX2lkICsgMSkge1xuLVx0XHQvKlxuLVx0XHQgKiBUaGUgbWF0Y2ggdGFibGUgaXMgc3BsaXQgYmFzZWQgb24gZHJpdmVyX292ZXJyaWRlLlxuLVx0XHQgKiBJbiBjYXNlIG92ZXJyaWRlX29ubHkgd2FzIHNldCwgZW5mb3JjZSBkcml2ZXJfb3ZlcnJpZGVcbi1cdFx0ICogbWF0Y2hpbmcuXG4tXHRcdCAqL1xuLVx0XHRpZiAoZm91bmRfaWQtXHUwMDNlb3ZlcnJpZGVfb25seSkge1xuLVx0XHRcdGlmIChyZXQgXHUwMDNlIDApXG4tXHRcdFx0XHRyZXR1cm4gZm91bmRfaWQ7XG4tXHRcdH0gZWxzZSB7XG4tXHRcdFx0cmV0dXJuIGZvdW5kX2lkO1xuLVx0XHR9XG4rXHRmb3VuZF9pZCA9IGRvX3BjaV9tYXRjaF9pZChkcnYtXHUwMDNlaWRfdGFibGUsIFx1MDAyNmRldl9pZCwgcmV0IFx1MDAzZSAwKTtcbitcdGlmIChmb3VuZF9pZCkge1xuK1x0XHQqaWQgPSAqZm91bmRfaWQ7XG4rXHRcdHJldHVybiB0cnVlO1xuIFx0fVxuIFxuIFx0LyogZHJpdmVyX292ZXJyaWRlIHdpbGwgYWx3YXlzIG1hdGNoLCBzZW5kIGEgZHVtbXkgaWQgKi9cbi1cdGlmIChyZXQgXHUwMDNlIDApXG4tXHRcdHJldHVybiBcdTAwMjZwY2lfZGV2aWNlX2lkX2FueTtcbi1cdHJldHVybiBOVUxMO1xuLX1cbitcdGlmIChyZXQgXHUwMDNlIDApIHtcbitcdFx0KmlkID0gcGNpX2RldmljZV9pZF9hbnk7XG4rXHRcdHJldHVybiB0cnVlO1xuK1x0fVxuIFxuLXN0YXRpYyB2b2lkIF9wY2lfZnJlZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KVxuLXtcbi1cdGtmcmVlKHRvX3BjaV9kZXYoZGV2KSk7XG4rXHRyZXR1cm4gZmFsc2U7XG4gfVxuIFxuIC8qKlxuQEAgLTE5NywzOCArMjQwLDIyIEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXG4ge1xuIFx0c3RydWN0IHBjaV9kcml2ZXIgKnBkcnYgPSB0b19wY2lfZHJpdmVyKGRyaXZlcik7XG4gXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWRzID0gcGRydi1cdTAwM2VpZF90YWJsZTtcbi1cdHUzMiB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yID0gUENJX0FOWV9JRCxcbi1cdFx0c3ViZGV2aWNlID0gUENJX0FOWV9JRCwgY2xhc3MgPSAwLCBjbGFzc19tYXNrID0gMDtcbi1cdHVuc2lnbmVkIGxvbmcgZHJpdmVyX2RhdGEgPSAwO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQgPSB7XG4rXHRcdC5zdWJ2ZW5kb3IgPSBQQ0lfQU5ZX0lELFxuK1x0XHQuc3ViZGV2aWNlID0gUENJX0FOWV9JRFxuK1x0fTtcbiBcdGludCBmaWVsZHM7XG4gXHRpbnQgcmV0dmFsID0gMDtcbiBcbiBcdGZpZWxkcyA9IHNzY2FuZihidWYsIFwiJXggJXggJXggJXggJXggJXggJWx4XCIsXG4tXHRcdFx0XHUwMDI2dmVuZG9yLCBcdTAwMjZkZXZpY2UsIFx1MDAyNnN1YnZlbmRvciwgXHUwMDI2c3ViZGV2aWNlLFxuLVx0XHRcdFx1MDAyNmNsYXNzLCBcdTAwMjZjbGFzc19tYXNrLCBcdTAwMjZkcml2ZXJfZGF0YSk7XG4rXHRcdFx0XHUwMDI2aWQudmVuZG9yLCBcdTAwMjZpZC5kZXZpY2UsIFx1MDAyNmlkLnN1YnZlbmRvciwgXHUwMDI2aWQuc3ViZGV2aWNlLFxuK1x0XHRcdFx1MDAyNmlkLmNsYXNzLCBcdTAwMjZpZC5jbGFzc19tYXNrLCBcdTAwMjZpZC5kcml2ZXJfZGF0YSk7XG4gXHRpZiAoZmllbGRzIFx1MDAzYyAyKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiBcdGlmIChmaWVsZHMgIT0gNykge1xuLVx0XHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGt6YWxsb2Nfb2JqKCpwZGV2KTtcbi1cdFx0aWYgKCFwZGV2KVxuLVx0XHRcdHJldHVybiAtRU5PTUVNO1xuLVxuLVx0XHRwZGV2LVx1MDAzZXZlbmRvciA9IHZlbmRvcjtcbi1cdFx0cGRldi1cdTAwM2VkZXZpY2UgPSBkZXZpY2U7XG4tXHRcdHBkZXYtXHUwMDNlc3Vic3lzdGVtX3ZlbmRvciA9IHN1YnZlbmRvcjtcbi1cdFx0cGRldi1cdTAwM2VzdWJzeXN0ZW1fZGV2aWNlID0gc3ViZGV2aWNlO1xuLVx0XHRwZGV2LVx1MDAzZWNsYXNzID0gY2xhc3M7XG4tXHRcdHBkZXYtXHUwMDNlZGV2LnJlbGVhc2UgPSBfcGNpX2ZyZWVfZGV2aWNlO1xuLVxuLVx0XHRkZXZpY2VfaW5pdGlhbGl6ZShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG4tXHRcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKHBkcnYsIHBkZXYpKVxuLVx0XHRcdHJldHZhbCA9IC1FRVhJU1Q7XG4tXG4tXHRcdHB1dF9kZXZpY2UoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuLVxuLVx0XHRpZiAocmV0dmFsKVxuLVx0XHRcdHJldHVybiByZXR2YWw7XG4rXHRcdGlmIChkb19wY2lfbWF0Y2hfaWQocGRydi1cdTAwM2VpZF90YWJsZSwgXHUwMDI2aWQsIGZhbHNlKSlcbitcdFx0XHRyZXR1cm4gLUVFWElTVDtcbiBcdH1cbiBcbiBcdC8qIE9ubHkgYWNjZXB0IGRyaXZlcl9kYXRhIHZhbHVlcyB0aGF0IG1hdGNoIGFuIGV4aXN0aW5nIGlkX3RhYmxlXG5AQCAtMjM2LDcgKzI2Myw3IEBAIHN0YXRpYyBzc2l6ZV90IG5ld19pZF9zdG9yZShzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJpdmVyLCBjb25zdCBjaGFyICpidWYsXG4gXHRpZiAoaWRzKSB7XG4gXHRcdHJldHZhbCA9IC1FSU5WQUw7XG4gXHRcdHdoaWxlIChpZHMtXHUwMDNldmVuZG9yIHx8IGlkcy1cdTAwM2VzdWJ2ZW5kb3IgfHwgaWRzLVx1MDAzZWNsYXNzX21hc2spIHtcbi1cdFx0XHRpZiAoZHJpdmVyX2RhdGEgPT0gaWRzLVx1MDAzZWRyaXZlcl9kYXRhKSB7XG4rXHRcdFx0aWYgKGlkLmRyaXZlcl9kYXRhID09IGlkcy1cdTAwM2Vkcml2ZXJfZGF0YSkge1xuIFx0XHRcdFx0cmV0dmFsID0gMDtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdH1cbkBAIC0yNDYsOCArMjczLDcgQEAgc3RhdGljIHNzaXplX3QgbmV3X2lkX3N0b3JlKHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcml2ZXIsIGNvbnN0IGNoYXIgKmJ1ZixcbiBcdFx0XHRyZXR1cm4gcmV0dmFsO1xuIFx0fVxuIFxuLVx0cmV0dmFsID0gcGNpX2FkZF9keW5pZChwZHJ2LCB2ZW5kb3IsIGRldmljZSwgc3VidmVuZG9yLCBzdWJkZXZpY2UsXG4tXHRcdFx0ICAgICAgIGNsYXNzLCBjbGFzc19tYXNrLCBkcml2ZXJfZGF0YSk7XG4rXHRyZXR2YWwgPSBkb19wY2lfYWRkX2R5bmlkKHBkcnYsIFx1MDAyNmlkLCBmaWVsZHMgIT0gNyk7XG4gXHRpZiAocmV0dmFsKVxuIFx0XHRyZXR1cm4gcmV0dmFsO1xuIFx0cmV0dXJuIGNvdW50O1xuQEAgLTQ0NCwxNSArNDcwLDE0IEBAIHZvaWQgcGNpX3Byb2JlX2ZsdXNoX3dvcmtxdWV1ZSh2b2lkKVxuICAqL1xuIHN0YXRpYyBpbnQgX19wY2lfZGV2aWNlX3Byb2JlKHN0cnVjdCBwY2lfZHJpdmVyICpkcnYsIHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2KVxuIHtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZDtcbitcdHN0cnVjdCBwY2lfZGV2aWNlX2lkIGlkO1xuIFx0aW50IGVycm9yID0gMDtcbiBcbiBcdGlmIChkcnYtXHUwMDNlcHJvYmUpIHtcbiBcdFx0ZXJyb3IgPSAtRU5PREVWO1xuIFxuLVx0XHRpZCA9IHBjaV9tYXRjaF9kZXZpY2UoZHJ2LCBwY2lfZGV2KTtcbi1cdFx0aWYgKGlkKVxuLVx0XHRcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBpZCk7XG4rXHRcdGlmIChwY2lfbWF0Y2hfZGV2aWNlKGRydiwgcGNpX2RldiwgXHUwMDI2aWQpKVxuK1x0XHRcdGVycm9yID0gcGNpX2NhbGxfcHJvYmUoZHJ2LCBwY2lfZGV2LCBcdTAwMjZpZCk7XG4gXHR9XG4gXHRyZXR1cm4gZXJyb3I7XG4gfVxuQEAgLTE1MzcsMTcgKzE1NjIsMTMgQEAgc3RhdGljIGludCBwY2lfYnVzX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydilcbiB7XG4gXHRzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldiA9IHRvX3BjaV9kZXYoZGV2KTtcbiBcdHN0cnVjdCBwY2lfZHJpdmVyICpwY2lfZHJ2O1xuLVx0Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmZvdW5kX2lkO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgaWQ7XG4gXG4gXHRpZiAocGNpX2Rldl9iaW5kaW5nX2Rpc2FsbG93ZWQocGNpX2RldikpXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0cGNpX2RydiA9IChzdHJ1Y3QgcGNpX2RyaXZlciAqKXRvX3BjaV9kcml2ZXIoZHJ2KTtcbi1cdGZvdW5kX2lkID0gcGNpX21hdGNoX2RldmljZShwY2lfZHJ2LCBwY2lfZGV2KTtcbi1cdGlmIChmb3VuZF9pZClcbi1cdFx0cmV0dXJuIDE7XG4tXG4tXHRyZXR1cm4gMDtcbitcdHJldHVybiBwY2lfbWF0Y2hfZGV2aWNlKHBjaV9kcnYsIHBjaV9kZXYsIFx1MDAyNmlkKTtcbiB9XG4gXG4gLyoqXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmggYi9kcml2ZXJzL3BjaS9wY2kuaFxuaW5kZXggNDQ2OWUxYTc3ZjNjMTMuLjA1NjdhODc2MmJhYTA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9wY2kvcGNpLmhcbisrKyBiL2RyaXZlcnMvcGNpL3BjaS5oXG5AQCAtNDQyLDIxICs0NDIsMzcgQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3NldHVwX2NhcmRidXMoY2hhciAqc3RyKSB7IHJldHVybiAtRU5PRU5UOyB9XG4gI2VuZGlmIC8qIENPTkZJR19DQVJEQlVTICovXG4gXG4gLyoqXG4tICogcGNpX21hdGNoX29uZV9kZXZpY2UgLSBUZWxsIGlmIGEgUENJIGRldmljZSBzdHJ1Y3R1cmUgaGFzIGEgbWF0Y2hpbmdcbi0gKlx0XHRcdCAgUENJIGRldmljZSBpZCBzdHJ1Y3R1cmVcbi0gKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaFxuLSAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0XG4rICogcGNpX2lkX2Zyb21fZGV2aWNlIC0gT2J0YWluIGEgcGNpX2RldmljZV9pZCBmcm9tIGEgUENJIGRldmljZVxuKyAqIEBkZXY6IHRoZSBQQ0kgZGV2aWNlXG4rICpcbisgKiBSZXR1cm5zIGEgcGNpX2RldmljZV9pZCBmaWxsZWQuXG4rICovXG4rc3RhdGljIGlubGluZSBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfaWRfZnJvbV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXYgKmRldilcbit7XG4rXHRyZXR1cm4gKHN0cnVjdCBwY2lfZGV2aWNlX2lkKSB7XG4rXHRcdC52ZW5kb3IgPSBkZXYtXHUwMDNldmVuZG9yLFxuK1x0XHQuZGV2aWNlID0gZGV2LVx1MDAzZWRldmljZSxcbitcdFx0LnN1YnZlbmRvciA9IGRldi1cdTAwM2VzdWJzeXN0ZW1fdmVuZG9yLFxuK1x0XHQuc3ViZGV2aWNlID0gZGV2LVx1MDAzZXN1YnN5c3RlbV9kZXZpY2UsXG4rXHRcdC5jbGFzcyA9IGRldi1cdTAwM2VjbGFzcyxcbitcdH07XG4rfVxuK1xuKy8qKlxuKyAqIHBjaV9tYXRjaF9vbmVfaWQgLSBUZWxsIGlmIGEgUENJIGRldmljZSBJRCBtYXRjaGVzIGEgbmVlZGxlIFBDSSBkZXZpY2UgaWRcbisgKiBAaWQ6IHNpbmdsZSBQQ0kgZGV2aWNlIGlkIHN0cnVjdHVyZSB0byBtYXRjaCBhZ2FpbnN0IChuZWVkbGUpXG4rICogQGRldl9pZDogdGhlIGFjdHVhbCBJRCBmcm9tIHRoZSBQQ0kgZGV2aWNlIChjYW4gYmUgY3JlYXRlZCB2aWEgcGNpX2lkX2Zyb21fZGV2aWNlKVxuICAqXG4gICogUmV0dXJucyB0aGUgbWF0Y2hpbmcgcGNpX2RldmljZV9pZCBzdHJ1Y3R1cmUgb3IgJU5VTEwgaWYgdGhlcmUgaXMgbm8gbWF0Y2guXG4gICovXG4gc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqXG4tcGNpX21hdGNoX29uZV9kZXZpY2UoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KVxuK3BjaV9tYXRjaF9vbmVfaWQoY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkLCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZGV2X2lkKVxuIHtcbi1cdGlmICgoaWQtXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNldmVuZG9yID09IGRldi1cdTAwM2V2ZW5kb3IpIFx1MDAyNlx1MDAyNlxuLVx0ICAgIChpZC1cdTAwM2VkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC1cdTAwM2VkZXZpY2UgPT0gZGV2LVx1MDAzZWRldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX3ZlbmRvcikgXHUwMDI2XHUwMDI2XG4tXHQgICAgKGlkLVx1MDAzZXN1YmRldmljZSA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YmRldmljZSA9PSBkZXYtXHUwMDNlc3Vic3lzdGVtX2RldmljZSkgXHUwMDI2XHUwMDI2XG4tXHQgICAgISgoaWQtXHUwMDNlY2xhc3MgXiBkZXYtXHUwMDNlY2xhc3MpIFx1MDAyNiBpZC1cdTAwM2VjbGFzc19tYXNrKSlcbitcdGlmICgoaWQtXHUwMDNldmVuZG9yID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNldmVuZG9yID09IGRldl9pZC1cdTAwM2V2ZW5kb3IpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIChpZC1cdTAwM2VkZXZpY2UgPT0gUENJX0FOWV9JRCB8fCBpZC1cdTAwM2VkZXZpY2UgPT0gZGV2X2lkLVx1MDAzZWRldmljZSkgXHUwMDI2XHUwMDI2XG4rXHQgICAgKGlkLVx1MDAzZXN1YnZlbmRvciA9PSBQQ0lfQU5ZX0lEIHx8IGlkLVx1MDAzZXN1YnZlbmRvciA9PSBkZXZfaWQtXHUwMDNlc3VidmVuZG9yKSBcdTAwMjZcdTAwMjZcbitcdCAgICAoaWQtXHUwMDNlc3ViZGV2aWNlID09IFBDSV9BTllfSUQgfHwgaWQtXHUwMDNlc3ViZGV2aWNlID09IGRldl9pZC1cdTAwM2VzdWJkZXZpY2UpIFx1MDAyNlx1MDAyNlxuK1x0ICAgICEoKGlkLVx1MDAzZWNsYXNzIF4gZGV2X2lkLVx1MDAzZWNsYXNzKSBcdTAwMjYgaWQtXHUwMDNlY2xhc3NfbWFzaykpXG4gXHRcdHJldHVybiBpZDtcbiBcdHJldHVybiBOVUxMO1xuIH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZWFyY2guYyBiL2RyaXZlcnMvcGNpL3NlYXJjaC5jXG5pbmRleCBlM2QzMTc3ZmNlNTQ5ZS4uYzhjNGJmZTc4MTdiMDMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3BjaS9zZWFyY2guY1xuKysrIGIvZHJpdmVycy9wY2kvc2VhcmNoLmNcbkBAIC0yNDUsOCArMjQ1LDEwIEBAIHN0YXRpYyBpbnQgbWF0Y2hfcGNpX2Rldl9ieV9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEpXG4ge1xuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7XG4gXHRjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQgPSBkYXRhO1xuK1x0c3RydWN0IHBjaV9kZXZpY2VfaWQgZGV2X2lkO1xuIFxuLVx0aWYgKHBjaV9tYXRjaF9vbmVfZGV2aWNlKGlkLCBwZGV2KSlcbitcdGRldl9pZCA9IHBjaV9pZF9mcm9tX2RldmljZShwZGV2KTtcbitcdGlmIChwY2lfbWF0Y2hfb25lX2lkKGlkLCBcdTAwMjZkZXZfaWQpKVxuIFx0XHRyZXR1cm4gMTtcbiBcdHJldHVybiAwO1xuIH1cbkBAIC00MTgsNyArNDIwLDcgQEAgRVhQT1JUX1NZTUJPTChwY2lfZ2V0X2NsYXNzKTtcbiAgKlxuICAqIEl0ZXJhdGVzIHRocm91Z2ggdGhlIGxpc3Qgb2Yga25vd24gUENJIGRldmljZXMuIElmIGEgUENJIGRldmljZSBpcyBmb3VuZFxuICAqIHdpdGggYSBtYXRjaGluZyBiYXNlIGNsYXNzIGNvZGUsIHRoZSByZWZlcmVuY2UgY291bnQgdG8gdGhlIGRldmljZSBpc1xuLSAqIGluY3JlbWVudGVkLiBTZWUgcGNpX21hdGNoX29uZV9kZXZpY2UoKSB0byBmaWd1cmUgb3V0IGhvdyBkb2VzIHRoaXMgd29ya3MuXG4rICogaW5jcmVtZW50ZWQuIFNlZSBwY2lfbWF0Y2hfb25lX2lkKCkgdG8gZmlndXJlIG91dCBob3cgZG9lcyB0aGlzIHdvcmtzLlxuICAqIEEgbmV3IHNlYXJjaCBpcyBpbml0aWF0ZWQgYnkgcGFzc2luZyAlTlVMTCBhcyB0aGUgQGZyb20gYXJndW1lbnQuXG4gICogT3RoZXJ3aXNlIGlmIEBmcm9tIGlzIG5vdCAlTlVMTCwgc2VhcmNoZXMgY29udGludWUgZnJvbSBuZXh0IGRldmljZSBvbiB0aGVcbiAgKiBnbG9iYWwgbGlzdC4gVGhlIHJlZmVyZW5jZSBjb3VudCBmb3IgQGZyb20gaXMgYWx3YXlzIGRlY3JlbWVudGVkIGlmIGl0IGlzXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL25zcDMyLmMgYi9kcml2ZXJzL3Njc2kvbnNwMzIuY1xuaW5kZXggZTg5M2Q1Njc3MjQxN2EuLjljOTI4MTIyMmEwYWNmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmNcbisrKyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jXG5AQCAtMTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGludCBuc3AzMl9zaG93X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgU2NzaV9Ib3N0ICpob3N0KVxuIFx0XHQgICAobnNwMzJfcmVhZDIoYmFzZSwgSU5ERVhfUkVHKSBcdTAwM2VcdTAwM2UgOCkgXHUwMDI2IDB4ZmYpO1xuIFxuIFx0bW9kZV9yZWcgPSBuc3AzMl9pbmRleF9yZWFkMShiYXNlLCBDSElQX01PREUpO1xuLVx0bW9kZWwgICAgPSBkYXRhLVx1MDAzZXBjaV9kZXZpZC1cdTAwM2Vkcml2ZXJfZGF0YTtcbitcdG1vZGVsICAgID0gZGF0YS1cdTAwM2Vtb2RlbDtcbiBcbiAjaWZkZWYgQ09ORklHX1BNXG4gXHRzZXFfcHJpbnRmKG0sIFwiUG93ZXIgTWFuYWdlbWVudDogICAgICAlc1xcblwiLFxuQEAgLTI5MDcsOCArMjkwNyw4IEBAIHN0YXRpYyBpbnQgbnNwMzJfZWhfaG9zdF9yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudClcbiAgKi9cbiBzdGF0aWMgaW50IG5zcDMyX2dldHByb21fcGFyYW0obnNwMzJfaHdfZGF0YSAqZGF0YSlcbiB7XG4tXHRpbnQgdmVuZG9yID0gZGF0YS1cdTAwM2VwY2lfZGV2aWQtXHUwMDNldmVuZG9yO1xuLVx0aW50IGRldmljZSA9IGRhdGEtXHUwMDNlcGNpX2RldmlkLVx1MDAzZWRldmljZTtcbitcdGludCB2ZW5kb3IgPSBkYXRhLVx1MDAzZVBjaS1cdTAwM2V2ZW5kb3I7XG4rXHRpbnQgZGV2aWNlID0gZGF0YS1cdTAwM2VQY2ktXHUwMDNlZGV2aWNlO1xuIFx0aW50IHJldCwgaTtcbiBcdGludCBfX21heWJlX3VudXNlZCB2YWw7XG4gXG5AQCAtMzM0MCw3ICszMzQwLDcgQEAgc3RhdGljIGludCBuc3AzMl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuIFx0fVxuIFxuIFx0ZGF0YS1cdTAwM2VQY2lcdCAgPSBwZGV2O1xuLVx0ZGF0YS1cdTAwM2VwY2lfZGV2aWQgICA9IGlkO1xuK1x0ZGF0YS1cdTAwM2Vtb2RlbCAgICAgICA9IGlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuIFx0ZGF0YS1cdTAwM2VJcnFOdW1iZXIgICA9IHBkZXYtXHUwMDNlaXJxO1xuIFx0ZGF0YS1cdTAwM2VCYXNlQWRkcmVzcyA9IHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCAwKTtcbiBcdGRhdGEtXHUwMDNlTnVtQWRkcmVzcyAgPSBwY2lfcmVzb3VyY2VfbGVuICAocGRldiwgMCk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL25zcDMyLmggYi9kcml2ZXJzL3Njc2kvbnNwMzIuaFxuaW5kZXggOTI0ODg5ZjhiZDM3ZTcuLjllNjU3NzFjYjU5Mjg2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmhcbisrKyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5oXG5AQCAtNTY0LDEwICs1NjQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX25zcDMyX2h3X2RhdGEge1xuIFxuIFx0c3RydWN0IHNjc2lfY21uZCAqQ3VycmVudFNDO1xuIFxuLVx0c3RydWN0IHBjaV9kZXYgICAgICAgICAgICAgKlBjaTtcbi1cdGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpwY2lfZGV2aWQ7XG4tXHRzdHJ1Y3QgU2NzaV9Ib3N0ICAgICAgICAgICAqSG9zdDtcbi1cdHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICBMb2NrO1xuK1x0c3RydWN0IHBjaV9kZXYgICAgKlBjaTtcbitcdGludCAgICAgICAgICAgICAgICBtb2RlbDtcbitcdHN0cnVjdCBTY3NpX0hvc3QgICpIb3N0O1xuK1x0c3BpbmxvY2tfdCAgICAgICAgIExvY2s7XG4gXG4gXHRjaGFyIGluZm9fc3RyWzEwMF07XG4gXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2kuaCBiL2luY2x1ZGUvbGludXgvcGNpLmhcbmluZGV4IGViYjViOWQ3NjM2MDllLi5mMTI4ZDhjMGNiYjY0ZCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvcGNpLmhcbisrKyBiL2luY2x1ZGUvbGludXgvcGNpLmhcbkBAIC05NzksNiArOTc5LDcgQEAgc3RydWN0IG1vZHVsZTtcbiAgKlx0XHRmdW5jdGlvbiByZXR1cm5zIHplcm8gd2hlbiB0aGUgZHJpdmVyIGNob29zZXMgdG9cbiAgKlx0XHR0YWtlIFwib3duZXJzaGlwXCIgb2YgdGhlIGRldmljZSBvciBhbiBlcnJvciBjb2RlXG4gICpcdFx0KG5lZ2F0aXZlIG51bWJlcikgb3RoZXJ3aXNlLlxuKyAqXHRcdFRoZSBwY2lfZGV2aWNlX2lkIHBhcmFtZXRlciBpcyBvbmx5IHZhbGlkIGR1cmluZyBwcm9iZS5cbiAgKlx0XHRUaGUgcHJvYmUgZnVuY3Rpb24gYWx3YXlzIGdldHMgY2FsbGVkIGZyb20gcHJvY2Vzc1xuICAqXHRcdGNvbnRleHQsIHNvIGl0IGNhbiBzbGVlcC5cbiAgKiBAcmVtb3ZlOlx0VGhlIHJlbW92ZSgpIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW5ldmVyIGEgZGV2aWNlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzozMC44NDA4NDE5MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNTEyODY2NTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBDSSBEZXZpY2UgTWF0Y2hpbmcgYW5kIFByb2JlIExvZ2ljIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBob3cgUENJIGRldmljZXMgYXJlIG1hdGNoZWQgYW5kIHByb2JlZCBpbiB0aGUga2VybmVsLiBJbml0aWFsbHksIEkgc2VlIHRoYXQgaXQncyBhbHRlcmluZyBgcGNpX21hdGNoX2RldmljZWAgdG8gcmV0dXJuIGEgYm9vbGVhbiBhbmQgcG9wdWxhdGUgYSBgcGNpX2RldmljZV9pZGAgc3RydWN0dXJlLCBpbnN0ZWFkIG9mIHJldHVybmluZyBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdHVyZS4gSXQgYWxzbyBtYWtlcyBjb3JyZXNwb25kaW5nIGFkanVzdG1lbnRzIHRvIGBwY2lfbWF0Y2hfb25lX2RldmljZWAgYW5kIGludHJvZHVjZXMgYHBjaV9pZF9mcm9tX2RldmljZWAuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIGhhbmcgb24sIHRoaXMgaXMgc2lnbmlmaWNhbnQuIENoYW5naW5nIHRoZSByZXR1cm4gdHlwZSBvZiBgcGNpX21hdGNoX2RldmljZWAgaW1wbGllcyBhIHN1YnN0YW50aWFsIHNoaWZ0IGluIHRoZSBwcm9iZSBtZWNoYW5pc20uIFRoZSBjb2RlIHNuaXBwZXQgc2hvd3MgdGhhdCB0aGUgYGlkYCBpcyBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrIG9mIGBfX3BjaV9kZXZpY2VfcHJvYmVgLiBUaGlzIG1lYW5zIGFueSBkcml2ZXIgdGhhdCBwcmV2aW91c2x5ICpzYXZlZCogdGhlIGBpZGAgcG9pbnRlciB0aGV5IHJlY2VpdmVkIGluIHRoZWlyIGBwcm9iZWAgZnVuY3Rpb24gd291bGQgbm93IGhhdmUgYSBkYW5nbGluZyBwb2ludGVyLCB3aGljaCBpcyBhIGJpZyBkZWFsISBUaGUgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBleGFjdGx5IHRoaXMsIGZpeGluZyB0aGUgYGF0YV9nZW5lcmljYCwgYHRwY2kyMDBgLCBgbWx4c3dgLCBhbmQgYG5zcDMyYCBkcml2ZXJzIHdoaWNoIGFwcGFyZW50bHkgd2VyZSBkb2luZyBwcmVjaXNlbHkgdGhhdC4gSXQncyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBpbXBhY3RpbmcgY29yZSBQQ0kgbWF0Y2hpbmcuXG5cbk5vdywgSSBuZWVkIHRvIGNvbnNpZGVyIHRoZSB0ZXN0aW5nIGltcGxpY2F0aW9ucy4gQ2FuIHRoaXMgYmUgZnV6emVkPyBBYnNvbHV0ZWx5LiBUb29scyBsaWtlIHN5emthbGxlciBjYW4gZWFzaWx5IGZ1enogUENJIGRldmljZXMgdmlhIHZpcnR1YWwgUENJIG1lY2hhbmlzbXMsIGluamVjdGluZyBhbGwgc29ydHMgb2Ygc2NlbmFyaW9zLiBTaW5jZSB0aGUgY29yZSBQQ0kgY2hhbmdlcyBpbXBhY3QgKmFsbCogZHJpdmVycywgdGhhdCBtYWtlcyBpdCBldmVuIG1vcmUgY3JpdGljYWwuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgcmVhY2hhYmxlOyBgcGNpX21hdGNoX2RldmljZWAsIGBwY2lfYWRkX2R5bmlkYCwgYG5ld19pZF9zdG9yZWAsIGFuZCBgcGNpX2J1c19tYXRjaGAgYXJlIGFsbCBkZWZpbml0ZWx5IGluIHRoZSBjYWxsIGdyYXBoLlxuXG5MZXQncyBkaWcgaW50byBgcGNpX2FkZF9keW5pZGAgYW5kIGBuZXdfaWRfc3RvcmVgIHNwZWNpZmljYWxseS4gVGhlIGBuZXdfaWRfc3RvcmVgIGZ1bmN0aW9uIGlzIHRoZSBzeXNmcyBpbnRlcmZhY2UgZm9yIGFkZGluZyBkeW5hbWljIElEcy4gSXQgc2VlbXMgdGhlIHBhdGNoIG9wdGltaXplcyBpdCwgcmVtb3ZpbmcgYSBkdW1teSBgcGNpX2RldmAgYWxsb2NhdGlvbiB3aGVuIGNoZWNraW5nIGZvciBkdXBsaWNhdGVzIGFuZCBpbnN0ZWFkIHVzZXMgYGRvX3BjaV9tYXRjaF9pZGAgZGlyZWN0bHksIGludHJvZHVjaW5nIGBkb19wY2lfYWRkX2R5bmlkYC5cblxuSSdsbCBhbHNvIHdhbnQgdG8ga25vdyB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgbmVlZGVkIHRvIGVuYWJsZSB0aGUgZHJpdmVycyBhZmZlY3RlZC4gVGhpcyBwYXRjaCBmaXhlcyBwcm9ibGVtcyB0aGF0IHdlcmUgaW4gdGhlIGRyaXZlcnMgZm9yIGBDT05GSUdfQVRBX0dFTkVSSUNgLCBgQ09ORklHX1RQQ0kyMDBgLCBgQ09ORklHX01MWFNXX1BDSWAsIGFuZCBgQ09ORklHX1NDU0lfTlNQMzJgLlxuSSB3aWxsIG5lZWQgdG8gY2hlY2sgYGRyaXZlcnMvYXRhL0tjb25maWdgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NzkwLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODM0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NDEuMzUzNzExMjg1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3ODMxODAwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQVRBX0dFTkVSSUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9hdGEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvYXRhL0tjb25maWc9MTE2Mz1jb25maWcgUEFUQV9BQ1BJXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTExNzItXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMTczOmNvbmZpZyBBVEFfR0VORVJJQ1xcbmRyaXZlcnMvYXRhL0tjb25maWctMTE3NC1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBBVEEgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NDEuNzMyMDM2Nzc4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzEyNjg0Mzg1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKktjb25maWcgQ2hlY2sqKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCB0byBpdC4gRmlyc3QsIEkgbmVlZCB0byB2ZXJpZnkgc29tZXRoaW5nIHNwZWNpZmljIHdpdGhpbiB0aGUgaS5wYWNrIGNhcnJpZXIgY29uZmlndXJhdGlvbi4gTGV0J3Mgc3RhcnQgYnkgbmF2aWdhdGluZyB0byB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGUsIGxvY2F0ZWQgaW4gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvYC4gSSdtIGdvaW5nIHRvIHRha2UgYSBsb29rIGF0IHRoZSBjb25maWd1cmF0aW9uIGZvciB0aGlzLiBUaGlzIHNob3VsZCB0ZWxsIG1lIHdoYXQgSSBuZWVkIHRvIGtub3cgYWJvdXQgdGhpcyBjYXJyaWVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTI3NywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjQ0Ljg1ODg4NTM1MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Njk4NjI5MSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRQQ0kyMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9pcGFjay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjQ0Ljk0NTg4MTgxNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MDcwMTI2OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEtjb25maWcgTGFieXJpbnRoKipcblxuT2theSwgc28gdGhlIGJyZWFkY3J1bWIgdHJhaWwgbGVhZHMgbWUgdG8gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZ2AuIFJpZ2h0LCBgZHJpdmVyc2AuLi4gYGlwYWNrYC4uLiBgY2FycmllcnNgLi4uIGBLY29uZmlnYC4gVGhhdCBzcGVjaWZpYyBmaWxlIHBsYWNlbWVudCBhbHdheXMgZ2l2ZXMgbWUgYSBjbHVlIGFib3V0IHRoZSBhcmNoaXRlY3R1cmUuIEkgbmVlZCB0byBnZXQgb3JpZW50ZWQuIEJlZm9yZSBJIGV2ZW4gc3RhcnQgYW5hbHl6aW5nIHRoZSBjb250ZW50LCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyBcIkxldCdzIGNyYWNrIG9wZW4gdGhhdCBkaXJlY3RvcnkgYW5kIHNlZSB3aGF0IHRoZSB3aWRlciBzdHJ1Y3R1cmUgbG9va3MgbGlrZS4gQ29udGV4dCBpcyBraW5nLCBlc3BlY2lhbGx5IHdpdGggS2NvbmZpZyBmaWxlcy5cIiBHb3R0YSBoYXZlIGEgZ29vZCBncmFzcCBvZiB0aGUgc3Vycm91bmRpbmcgZmlsZXMgYW5kIGhvdyB0aGlzIG1vZHVsZSBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlIGJlZm9yZSBJIGRpdmUgaW50byB0aGUgZGV0YWlscy4gVW5kZXJzdGFuZGluZyB0aGF0IGhpZ2ggbGV2ZWwgdmlldyBmaXJzdCB3aWxsIHNhdmUgYSBsb3Qgb2YgdGltZSBhbmQgcG90ZW50aWFsIGNvbmZ1c2lvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE0MzQsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzo0Ny43NTI4OTg5OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3OTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9pcGFjay9jYXJyaWVycy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwidHBjaTIwMC5jXCIsXG4gICAgXCJ0cGNpMjAwLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NDcuNzUzMDI5NTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTEwOTQzNzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGBpcGFja2AgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgYWx3YXlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBgS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHRoZSBoZWFydCBvZiBob3cgdGhpcyBkcml2ZXIgaXMgY29udHJvbGxlZCBhbmQgYnVpbHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLCB3aGF0IGRlcGVuZGVuY2llcyB0aGVyZSBhcmUsIGFuZCBob3cgdGhlIHZhcmlvdXMgc2V0dGluZ3MgYWZmZWN0IHRoZSBidWlsZCBwcm9jZXNzLiBJJ20gZ29pbmcgdG8gcHVsbCB1cCBgZHJpdmVycy9pcGFjay9LY29uZmlnYCBhbmQgc3RhcnQgZGlzc2VjdGluZyBpdCwgbG9va2luZyBmb3IgdGhlIGtleSBjb21wb25lbnRzIHRoYXQgZGVmaW5lIHRoaXMgcGFydGljdWxhciBtb2R1bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNjczLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjUwLjg2Mzk3NTE4N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI2MjUwNjM3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVFBDSTIwMFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2lwYWNrL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NTAuOTkwMjM0NDQ0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMTQ4NDczMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCBhcyByZXF1ZXN0ZWQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHRwY2kyMDBgIEtleXdvcmQgd2l0aGluIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHdvcmsuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGUgYHRwY2kyMDBgIGtleXdvcmQgZml0cyB3aXRoaW4gdGhlIGJyb2FkZXIgY29udGV4dCBvZiB0aGUga2VybmVsJ3MgY29uZmlndXJhdGlvbiBvcHRpb25zLiBNeSBndXQgZmVlbGluZyBpcyBpdCdzIHJlbGF0ZWQgdG8gc29tZSBzb3J0IG9mIGRldmljZSBkcml2ZXIsIGxpa2VseSB3aXRoaW4gdGhlIGBpcGFja2Agc3Vic3lzdGVtLCBnaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24uIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIGtpY2sgdGhpbmdzIG9mZiBieSBncmVwcGluZyBmb3IgYHRwY2kyMDBgIGluIHRoZSBgZHJpdmVycy9pcGFjay9LY29uZmlnYCBmaWxlLiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBpbml0aWFsIGhpdHMgSSBuZWVkIHRvIHN0YXJ0IGZvcm1pbmcgYSBjbGVhcmVyIHBpY3R1cmUuIEl0J3MgYSBmdW5kYW1lbnRhbCBpbml0aWFsIHN0ZXAgdG8gdW5kZXJzdGFuZGluZyBpdHMgcHVycG9zZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE4NTcsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzo1NC4zMDUxMTUzNjFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjg0OTY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0cGNpMjAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvaXBhY2svXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTU3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19CT0FSRF9UUENJMjAwKSArPSB0cGNpMjAwLm9cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9zbGFiLmhcXHUwMDNlXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTI6I2luY2x1ZGUgXFxcInRwY2kyMDAuaFxcXCJcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMy1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDpzdGF0aWMgY29uc3QgdTE2IHRwY2kyMDBfc3RhdHVzX3RpbWVvdXRbXSA9IHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNS1cXHRUUENJMjAwX0FfVElNRU9VVCxcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIxOnN0YXRpYyBjb25zdCB1MTYgdHBjaTIwMF9zdGF0dXNfZXJyb3JbXSA9IHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMi1cXHRUUENJMjAwX0FfRVJST1IsXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNy1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyODpzdGF0aWMgY29uc3Qgc2l6ZV90IHRwY2kyMDBfc3BhY2Vfc2l6ZVtJUEFDS19TUEFDRV9DT1VOVF0gPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjktXFx0W0lQQUNLX0lPX1NQQUNFXSAgICA9IFRQQ0kyMDBfSU9fU1BBQ0VfU0laRSxcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM2OnN0YXRpYyBjb25zdCBzaXplX3QgdHBjaTIwMF9zcGFjZV9pbnRlcnZhbFtJUEFDS19TUEFDRV9DT1VOVF0gPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzctXFx0W0lQQUNLX0lPX1NQQUNFXSAgICA9IFRQQ0kyMDBfSU9fU1BBQ0VfSU5URVJWQUwsXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00My1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDpzdGF0aWMgc3RydWN0IHRwY2kyMDBfYm9hcmQgKmNoZWNrX3Nsb3Qoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ1LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NjpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00Ny1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUxLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyOlxcdHRwY2kyMDAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2LVxcdTAwM2VidXMtXFx1MDAzZXBhcmVudCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQ6XFx0aWYgKHRwY2kyMDAgPT0gTlVMTCkge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU1LVxcdFxcdGRldl9pbmZvKFxcdTAwMjZkZXYtXFx1MDAzZWRldiwgXFxcImNhcnJpZXIgYm9hcmQgbm90IGZvdW5kXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwLVxcdFxcdGRldl9pbmZvKFxcdTAwMjZkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTpcXHRcXHRcXHQgXFxcIlNsb3QgWyVkOiVkXSBkb2Vzbid0IGV4aXN0ISBMYXN0IHRwY2kyMDAgc2xvdCBpcyAlZC5cXFxcblxcXCIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjItXFx0XFx0XFx0IGRldi1cXHUwMDNlYnVzLVxcdTAwM2VidXNfbnIsIGRldi1cXHUwMDNlc2xvdCwgVFBDSTIwMF9OQl9TTE9ULTEpO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjY6XFx0cmV0dXJuIHRwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjctfVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTY4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjY5OnN0YXRpYyB2b2lkIHRwY2kyMDBfY2xlYXJfbWFzayhzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy03MC1cXHRcXHRcXHQgICAgICAgX19sZTE2IF9faW9tZW0gKmFkZHIsIHUxNiBtYXNrKVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzItXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo3MzpcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2dHBjaTIwMC1cXHUwMDNlcmVnc19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzQtXFx0aW93cml0ZTE2KGlvcmVhZDE2KGFkZHIpIFxcdTAwMjYgKH5tYXNrKSwgYWRkcik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NzU6XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dHBjaTIwMC1cXHUwMDNlcmVnc19sb2NrLCBmbGFncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzYtfVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTc3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjc4OnN0YXRpYyB2b2lkIHRwY2kyMDBfc2V0X21hc2soc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNzktXFx0XFx0XFx0ICAgICBfX2xlMTYgX19pb21lbSAqYWRkciwgdTE2IG1hc2spXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy04MS1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjgyOlxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy04My1cXHRpb3dyaXRlMTYoaW9yZWFkMTYoYWRkcikgfCBtYXNrLCBhZGRyKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo4NDpcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VyZWdzX2xvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy04NS19XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtODYtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6ODc6c3RhdGljIHZvaWQgdHBjaTIwMF91bnJlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTg4LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo4OTpcXHRmcmVlX2lycSh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VpcnEsICh2b2lkICopIHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTkwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjkxOlxcdHBjaV9pb3VubWFwKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy05Mi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5MzpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9JUF9JTlRFUkZBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5NDpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9JT19JRF9JTlRfU1BBQ0VTX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6OTU6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo5NjpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtOTctXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6OTg6XFx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTk5LX1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDAtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTAxOnN0YXRpYyB2b2lkIHRwY2kyMDBfZW5hYmxlX2lycShzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDItXFx0XFx0XFx0ICAgICAgIGludCBpc2xvdClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDMte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEwNDpcXHR0cGNpMjAwX3NldF9tYXNrKHRwY2kyMDAsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTA1OlxcdFxcdFxcdFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncy1cXHUwMDNlY29udHJvbFtpc2xvdF0sXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTA2LVxcdFxcdFxcdFRQQ0kyMDBfSU5UMF9FTiB8IFRQQ0kyMDBfSU5UMV9FTik7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMDgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTA5OnN0YXRpYyB2b2lkIHRwY2kyMDBfZGlzYWJsZV9pcnEoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTEwLVxcdFxcdFxcdFxcdGludCBpc2xvdClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTEte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjExMjpcXHR0cGNpMjAwX2NsZWFyX21hc2sodHBjaTIwMCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMTM6XFx0XFx0XFx0XFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2Vjb250cm9sW2lzbG90XSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTQtXFx0XFx0XFx0VFBDSTIwMF9JTlQwX0VOIHwgVFBDSTIwMF9JTlQxX0VOKTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTExNi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxMTc6c3RhdGljIGlycXJldHVybl90IHRwY2kyMDBfc2xvdF9pcnEoc3RydWN0IHNsb3RfaXJxICpzbG90X2lycSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMTgte1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTI3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEyODpzdGF0aWMgaXJxcmV0dXJuX3QgdHBjaTIwMF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEyOS17XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTMwOlxcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwID0gKHN0cnVjdCB0cGNpMjAwX2JvYXJkICopIGRldl9pZDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xMzEtXFx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzNi1cXHQvKiBSZWFkIHN0YXR1cyByZWdpc3RlciAqL1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjEzNzpcXHRzdGF0dXNfcmVnID0gaW9yZWFkMTYoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2VzdGF0dXMpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTEzOC1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE0Ny1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDg6XFx0XFx0c2xvdF9pcnEgPSByY3VfZGVyZWZlcmVuY2UodHBjaTIwMC1cXHUwMDNlc2xvdHNbaV0uaXJxKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNDk6XFx0XFx0cmV0ID0gdHBjaTIwMF9zbG90X2lycShzbG90X2lycSk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTUwLVxcdFxcdGlmIChyZXQgPT0gLUVOT0RFVikge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE1MTpcXHRcXHRcXHRkZXZfaW5mbyhcXHUwMDI2dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE1Mi1cXHRcXHRcXHRcXHQgXFxcIk5vIHJlZ2lzdGVyZWQgSVNSIGZvciBzbG90IFslZDolZF0hLiBJUlEgd2lsbCBiZSBkaXNhYmxlZC5cXFxcblxcXCIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTUzOlxcdFxcdFxcdFxcdCB0cGNpMjAwLVxcdTAwM2VudW1iZXIsIGkpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE1NDpcXHRcXHRcXHR0cGNpMjAwX2Rpc2FibGVfaXJxKHRwY2kyMDAsIGkpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE1NS1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjEtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTYyOnN0YXRpYyBpbnQgdHBjaTIwMF9mcmVlX2lycShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTYzLXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNjQtXFx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNjU6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTY2LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2NzpcXHR0cGNpMjAwID0gY2hlY2tfc2xvdChkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE2ODpcXHRpZiAodHBjaTIwMCA9PSBOVUxMKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE2OS1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzAtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTcxOlxcdGlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzItXFx0XFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xNzMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTc0OlxcdGlmICh0cGNpMjAwLVxcdTAwM2VzbG90c1tkZXYtXFx1MDAzZXNsb3RdLmlycSA9PSBOVUxMKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MTc1OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dHBjaTIwMC1cXHUwMDNlbXV0ZXgpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3Ni1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE3OC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxNzk6XFx0dHBjaTIwMF9kaXNhYmxlX2lycSh0cGNpMjAwLCBkZXYtXFx1MDAzZXNsb3QpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE4MDpcXHRzbG90X2lycSA9IHRwY2kyMDAtXFx1MDAzZXNsb3RzW2Rldi1cXHUwMDNlc2xvdF0uaXJxO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE4MS1cXHQvKiB1bmluc3RhbGwgaGFuZGxlciAqL1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE4MjpcXHRSQ1VfSU5JVF9QT0lOVEVSKHRwY2kyMDAtXFx1MDAzZXNsb3RzW2Rldi1cXHUwMDNlc2xvdF0uaXJxLCBOVUxMKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xODMtXFx0c3luY2hyb25pemVfcmN1KCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTg0LVxcdGtmcmVlKHNsb3RfaXJxKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxODU6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VtdXRleCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTg2LVxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTg4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE4OTpzdGF0aWMgaW50IHRwY2kyMDBfcmVxdWVzdF9pcnEoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE5MC1cXHRcXHRcXHQgICAgICAgaXJxcmV0dXJuX3QgKCpoYW5kbGVyKSh2b2lkICopLCB2b2lkICphcmcpXFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xOTMtXFx0c3RydWN0IHNsb3RfaXJxICpzbG90X2lycTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoxOTQ6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMTk1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NjpcXHR0cGNpMjAwID0gY2hlY2tfc2xvdChkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjE5NzpcXHRpZiAodHBjaTIwMCA9PSBOVUxMKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTE5OC1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0xOTktXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjAwOlxcdGlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMDEtXFx0XFx0cmV0dXJuIC1FUkVTVEFSVFNZUztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMDItXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjAzOlxcdGlmICh0cGNpMjAwLVxcdTAwM2VzbG90c1tkZXYtXFx1MDAzZXNsb3RdLmlycSAhPSBOVUxMKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjA0LVxcdFxcdGRldl9lcnIoXFx1MDAyNmRldi1cXHUwMDNlZGV2LFxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjMwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIzMTpcXHRyY3VfYXNzaWduX3BvaW50ZXIodHBjaTIwMC1cXHUwMDNlc2xvdHNbZGV2LVxcdTAwM2VzbG90XS5pcnEsIHNsb3RfaXJxKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyMzI6XFx0dHBjaTIwMF9lbmFibGVfaXJxKHRwY2kyMDAsIGRldi1cXHUwMDNlc2xvdCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjMzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzNC1vdXRfdW5sb2NrOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjIzNTpcXHRtdXRleF91bmxvY2soXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yMzYtXFx0cmV0dXJuIHJlcztcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTIzOC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyMzk6c3RhdGljIGludCB0cGNpMjAwX3JlZ2lzdGVyKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI0MC17XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNDUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjQ2OlxcdGlmIChwY2lfZW5hYmxlX2RldmljZSh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2KSBcXHUwMDNjIDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQ3LVxcdFxcdHJldHVybiAtRU5PREVWO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjQ5LVxcdC8qIFJlcXVlc3QgSVAgaW50ZXJmYWNlIHJlZ2lzdGVyIChCYXIgMikgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNTA6XFx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNTEtXFx0XFx0XFx0XFx0IFxcXCJDYXJyaWVyIElQIGludGVyZmFjZSByZWdpc3RlcnNcXFwiKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNTItXFx0aWYgKHJlcykge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI1MzpcXHRcXHRkZXZfZXJyKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjU0LVxcdFxcdFxcdFxcXCIoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDIgIVxcXCIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjU1OlxcdFxcdFxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWJ1cy1cXHUwMDNlbnVtYmVyLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI1NjpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXZmbik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjU3LVxcdFxcdGdvdG8gZXJyX2Rpc2FibGVfZGV2aWNlO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYwLVxcdC8qIFJlcXVlc3QgSU8gSUQgSU5UIHNwYWNlIChCYXIgMykgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNjE6XFx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjYyLVxcdFxcdFxcdFxcdCBUUENJMjAwX0lPX0lEX0lOVF9TUEFDRVNfQkFSLFxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjY0LVxcdGlmIChyZXMpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNjU6XFx0XFx0ZGV2X2VycihcXHUwMDI2dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2Ni1cXHRcXHRcXHRcXFwiKGJuIDB4JVgsIHNuIDB4JVgpIGZhaWxlZCB0byBhbGxvY2F0ZSBQQ0kgcmVzb3VyY2UgZm9yIEJBUiAzICFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI2NzpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNjg6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI2OS1cXHRcXHRnb3RvIGVycl9pcF9pbnRlcmZhY2VfYmFyO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjcyLVxcdC8qIFJlcXVlc3QgTUVNOCBzcGFjZSAoQmFyIDUpICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjczOlxcdHJlcyA9IHBjaV9yZXF1ZXN0X3JlZ2lvbih0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LCBUUENJMjAwX01FTThfU1BBQ0VfQkFSLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI3NC1cXHRcXHRcXHRcXHQgXFxcIkNhcnJpZXIgTUVNOCBzcGFjZVxcXCIpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI3NS1cXHRpZiAocmVzKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjc2OlxcdFxcdGRldl9lcnIoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yNzctXFx0XFx0XFx0XFxcIihibiAweCVYLCBzbiAweCVYKSBmYWlsZWQgdG8gYWxsb2NhdGUgUENJIHJlc291cmNlIGZvciBCQVIgNSFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI3ODpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyNzk6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4MC1cXHRcXHRnb3RvIGVycl9pb19pZF9pbnRfc3BhY2VzX2JhcjtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4My1cXHQvKiBSZXF1ZXN0IE1FTTE2IHNwYWNlIChCYXIgNCkgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyODQ6XFx0cmVzID0gcGNpX3JlcXVlc3RfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTI4NS1cXHRcXHRcXHRcXHQgXFxcIkNhcnJpZXIgTUVNMTYgc3BhY2VcXFwiKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yODYtXFx0aWYgKHJlcykge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjI4NzpcXHRcXHRkZXZfZXJyKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMjg4LVxcdFxcdFxcdFxcXCIoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIGFsbG9jYXRlIFBDSSByZXNvdXJjZSBmb3IgQkFSIDQhXFxcIixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyODk6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlYnVzLVxcdTAwM2VudW1iZXIsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MjkwOlxcdFxcdFxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWRldmZuKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTEtXFx0XFx0Z290byBlcnJfbWVtOF9zcGFjZV9iYXI7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjk0OlxcdC8qIE1hcCBpbnRlcm5hbCB0cGNpMjAwIGRyaXZlciB1c2VyIHNwYWNlICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mjk1OlxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzID1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTY6XFx0XFx0aW9yZW1hcChwY2lfcmVzb3VyY2Vfc3RhcnQodHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTctXFx0XFx0XFx0XFx0XFx0ICAgVFBDSTIwMF9JUF9JTlRFUkZBQ0VfQkFSKSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0yOTgtXFx0XFx0XFx0VFBDSTIwMF9JRkFDRV9TSVpFKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzoyOTk6XFx0aWYgKCF0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncykge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwMDpcXHRcXHRkZXZfZXJyKFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzAxLVxcdFxcdFxcdFxcXCIoYm4gMHglWCwgc24gMHglWCkgZmFpbGVkIHRvIG1hcCBkcml2ZXIgdXNlciBzcGFjZSFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMwMjpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMDM6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMwNC1cXHRcXHRyZXMgPSAtRU5PTUVNO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzA4LVxcdC8qIEluaXRpYWxpemUgbG9jayB0aGF0IHByb3RlY3RzIGludGVyZmFjZV9yZWdzICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzA5OlxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VyZWdzX2xvY2spO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxMC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMTE6XFx0aW9pZGludF9iYXNlID0gcGNpX3Jlc291cmNlX3N0YXJ0KHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzEyLVxcdFxcdFxcdFxcdFxcdCAgVFBDSTIwMF9JT19JRF9JTlRfU1BBQ0VTX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzEzOlxcdHRwY2kyMDAtXFx1MDAzZW1vZF9tZW1bSVBBQ0tfSU9fU1BBQ0VdID0gaW9pZGludF9iYXNlICsgVFBDSTIwMF9JT19TUEFDRV9PRkY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE0OlxcdHRwY2kyMDAtXFx1MDAzZW1vZF9tZW1bSVBBQ0tfSURfU1BBQ0VdID0gaW9pZGludF9iYXNlICsgVFBDSTIwMF9JRF9TUEFDRV9PRkY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE1OlxcdHRwY2kyMDAtXFx1MDAzZW1vZF9tZW1bSVBBQ0tfSU5UX1NQQUNFXSA9XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzE2LVxcdFxcdGlvaWRpbnRfYmFzZSArIFRQQ0kyMDBfSU5UX1NQQUNFX09GRjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMTc6XFx0dHBjaTIwMC1cXHUwMDNlbW9kX21lbVtJUEFDS19NRU04X1NQQUNFXSA9XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzE4OlxcdFxcdHBjaV9yZXNvdXJjZV9zdGFydCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMxOS1cXHRcXHRcXHRcXHQgICBUUENJMjAwX01FTThfU1BBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMjA6XFx0dHBjaTIwMC1cXHUwMDNlbW9kX21lbVtJUEFDS19NRU0xNl9TUEFDRV0gPVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjMyMTpcXHRcXHRwY2lfcmVzb3VyY2Vfc3RhcnQodHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zMjItXFx0XFx0XFx0XFx0ICAgVFBDSTIwMF9NRU0xNl9TUEFDRV9CQVIpO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzMzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBUUENJMjAwX05CX1NMT1Q7IGkrKylcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMzQ6XFx0XFx0d3JpdGV3KHNsb3RfY3RybCwgXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2Vjb250cm9sW2ldKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zMzUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzM2OlxcdHJlcyA9IHJlcXVlc3RfaXJxKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWlycSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozMzc6XFx0XFx0XFx0ICB0cGNpMjAwX2ludGVycnVwdCwgSVJRRl9TSEFSRUQsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzM4OlxcdFxcdFxcdCAgS0JVSUxEX01PRE5BTUUsICh2b2lkICopIHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTMzOS1cXHRpZiAocmVzKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzQwOlxcdFxcdGRldl9lcnIoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYtXFx1MDAzZWRldixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNDEtXFx0XFx0XFx0XFxcIihibiAweCVYLCBzbiAweCVYKSB1bmFibGUgdG8gcmVnaXN0ZXIgSVJRICFcXFwiLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM0MjpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LVxcdTAwM2VidXMtXFx1MDAzZW51bWJlcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNDM6XFx0XFx0XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldi1cXHUwMDNlZGV2Zm4pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM0NC1cXHRcXHRnb3RvIGVycl9pbnRlcmZhY2VfcmVncztcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM0OS1lcnJfaW50ZXJmYWNlX3JlZ3M6XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzUwOlxcdHBjaV9pb3VubWFwKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTEtZXJyX21lbTE2X3NwYWNlX2JhcjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTI6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfTUVNMTZfU1BBQ0VfQkFSKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNTMtZXJyX21lbThfc3BhY2VfYmFyOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM1NDpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9NRU04X1NQQUNFX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzU1LWVycl9pb19pZF9pbnRfc3BhY2VzX2JhcjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTY6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfSU9fSURfSU5UX1NQQUNFU19CQVIpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM1Ny1lcnJfaXBfaW50ZXJmYWNlX2JhcjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNTg6XFx0cGNpX3JlbGVhc2VfcmVnaW9uKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYsIFRQQ0kyMDBfSVBfSU5URVJGQUNFX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzU5LWVycl9kaXNhYmxlX2RldmljZTpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjA6XFx0cGNpX2Rpc2FibGVfZGV2aWNlKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZXBkZXYpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2MS1cXHRyZXR1cm4gcmVzO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzYzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM2NDpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X2Nsb2NrcmF0ZShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzY1LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjY6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzY3LVxcdF9fbGUxNiBfX2lvbWVtICphZGRyO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM2OC1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozNjk6XFx0aWYgKCF0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM3MC1cXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzEtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzcyOlxcdGFkZHIgPSBcXHUwMDI2dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlaW50ZXJmYWNlX3JlZ3MtXFx1MDAzZWNvbnRyb2xbZGV2LVxcdTAwM2VzbG90XTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzMtXFx0cmV0dXJuIChpb3JlYWQxNihhZGRyKSBcXHUwMDI2IFRQQ0kyMDBfQ0xLMzIpID8gMzIgOiA4O1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzc1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM3NjpzdGF0aWMgaW50IHRwY2kyMDBfc2V0X2Nsb2NrcmF0ZShzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYsIGludCBtaGVyeilcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzcte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM3ODpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zNzktXFx0X19sZTE2IF9faW9tZW0gKmFkZHI7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzgwLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM4MTpcXHRpZiAoIXRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzgyLVxcdFxcdHJldHVybiAtRU5PREVWO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4My1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzozODQ6XFx0YWRkciA9IFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncy1cXHUwMDNlY29udHJvbFtkZXYtXFx1MDAzZXNsb3RdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4NS1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTM4Ny1cXHRjYXNlIDg6XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6Mzg4OlxcdFxcdHRwY2kyMDBfY2xlYXJfbWFzayh0cGNpMjAwLCBhZGRyLCBUUENJMjAwX0NMSzMyKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy0zODktXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzkwLVxcdGNhc2UgMzI6XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6MzkxOlxcdFxcdHRwY2kyMDBfc2V0X21hc2sodHBjaTIwMCwgYWRkciwgVFBDSTIwMF9DTEszMik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzkyLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtMzk4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjM5OTpzdGF0aWMgaW50IHRwY2kyMDBfZ2V0X2Vycm9yKHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDAte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwMTpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDItXFx0X19sZTE2IF9faW9tZW0gKmFkZHI7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDQtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDA1OlxcdGlmICghdHBjaTIwMClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MDYtXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDA3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQwODpcXHRhZGRyID0gXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2VzdGF0dXM7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDA5OlxcdG1hc2sgPSB0cGNpMjAwX3N0YXR1c19lcnJvcltkZXYtXFx1MDAzZXNsb3RdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQxMC1cXHRyZXR1cm4gKGlvcmVhZDE2KGFkZHIpIFxcdTAwMjYgbWFzaykgPyAxIDogMDtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQxMi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MTM6c3RhdGljIGludCB0cGNpMjAwX2dldF90aW1lb3V0KHN0cnVjdCBpcGFja19kZXZpY2UgKmRldilcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTQte1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQxNTpcXHRzdHJ1Y3QgdHBjaTIwMF9ib2FyZCAqdHBjaTIwMCA9IGNoZWNrX3Nsb3QoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTYtXFx0X19sZTE2IF9faW9tZW0gKmFkZHI7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MTgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDE5OlxcdGlmICghdHBjaTIwMClcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00MjAtXFx0XFx0cmV0dXJuIC1FTk9ERVY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDIxLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyMjpcXHRhZGRyID0gXFx1MDAyNnRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWludGVyZmFjZV9yZWdzLVxcdTAwM2VzdGF0dXM7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDIzOlxcdG1hc2sgPSB0cGNpMjAwX3N0YXR1c190aW1lb3V0W2Rldi1cXHUwMDNlc2xvdF07XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI0LVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI3LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQyODpzdGF0aWMgaW50IHRwY2kyMDBfcmVzZXRfdGltZW91dChzdHJ1Y3QgaXBhY2tfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDI5LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0MzA6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBjaGVja19zbG90KGRldik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDMxLVxcdF9fbGUxNiBfX2lvbWVtICphZGRyO1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDMzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQzNDpcXHRpZiAoIXRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDM1LVxcdFxcdHJldHVybiAtRU5PREVWO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQzNi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0Mzc6XFx0YWRkciA9IFxcdTAwMjZ0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpbnRlcmZhY2VfcmVncy1cXHUwMDNlc3RhdHVzO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQzODpcXHRtYXNrID0gdHBjaTIwMF9zdGF0dXNfdGltZW91dFtkZXYtXFx1MDAzZXNsb3RdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQzOS1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ0My1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDQ6c3RhdGljIHZvaWQgdHBjaTIwMF91bmluc3RhbGwoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ1LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NDY6XFx0dHBjaTIwMF91bnJlZ2lzdGVyKHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ0NzpcXHRrZnJlZSh0cGNpMjAwLVxcdTAwM2VzbG90cyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDQ4LX1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NDktXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhY2tfYnVzX29wcyB0cGNpMjAwX2J1c19vcHMgPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUxOlxcdC5yZXF1ZXN0X2lycSA9IHRwY2kyMDBfcmVxdWVzdF9pcnEsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUyOlxcdC5mcmVlX2lycSA9IHRwY2kyMDBfZnJlZV9pcnEsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDUzOlxcdC5nZXRfY2xvY2tyYXRlID0gdHBjaTIwMF9nZXRfY2xvY2tyYXRlLFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NDpcXHQuc2V0X2Nsb2NrcmF0ZSA9IHRwY2kyMDBfc2V0X2Nsb2NrcmF0ZSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NTU6XFx0LmdldF9lcnJvciAgICAgPSB0cGNpMjAwX2dldF9lcnJvcixcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NTY6XFx0LmdldF90aW1lb3V0ICAgPSB0cGNpMjAwX2dldF90aW1lb3V0LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ1NzpcXHQucmVzZXRfdGltZW91dCA9IHRwY2kyMDBfcmVzZXRfdGltZW91dCxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NTgtfTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NTktXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDYwOnN0YXRpYyBpbnQgdHBjaTIwMF9pbnN0YWxsKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2MS17XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY0OlxcdHRwY2kyMDAtXFx1MDAzZXNsb3RzID0ga3phbGxvY19vYmpzKHN0cnVjdCB0cGNpMjAwX3Nsb3QsIFRQQ0kyMDBfTkJfU0xPVCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY1OlxcdGlmICh0cGNpMjAwLVxcdTAwM2VzbG90cyA9PSBOVUxMKVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ2Ni1cXHRcXHRyZXR1cm4gLUVOT01FTTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NjctXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDY4OlxcdHJlcyA9IHRwY2kyMDBfcmVnaXN0ZXIodHBjaTIwMCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDY5LVxcdGlmIChyZXMpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo0NzA6XFx0XFx0a2ZyZWUodHBjaTIwMC1cXHUwMDNlc2xvdHMpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ3MTpcXHRcXHR0cGNpMjAwLVxcdTAwM2VzbG90cyA9IE5VTEw7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDcyLVxcdFxcdHJldHVybiByZXM7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzQtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDc1OlxcdG11dGV4X2luaXQoXFx1MDAyNnRwY2kyMDAtXFx1MDAzZW11dGV4KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzYtXFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00NzgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDc5OnN0YXRpYyB2b2lkIHRwY2kyMDBfcmVsZWFzZV9kZXZpY2Uoc3RydWN0IGlwYWNrX2RldmljZSAqZGV2KVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ4MC17XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODMtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDg0OnN0YXRpYyBpbnQgdHBjaTIwMF9jcmVhdGVfZGV2aWNlKHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwLCBpbnQgaSlcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy00ODUte1xcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNDkyLVxcdGRldi1cXHUwMDNlc2xvdCA9IGk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NDkzOlxcdGRldi1cXHUwMDNlYnVzID0gdHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlaXBhY2tfYnVzO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5NDpcXHRkZXYtXFx1MDAzZXJlbGVhc2UgPSB0cGNpMjAwX3JlbGVhc2VfZGV2aWNlO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5NS1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTQ5Ny1cXHRcXHRkZXYtXFx1MDAzZXJlZ2lvbltzcGFjZV0uc3RhcnQgPVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5ODpcXHRcXHRcXHR0cGNpMjAwLVxcdTAwM2Vtb2RfbWVtW3NwYWNlXVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjQ5OTpcXHRcXHRcXHQrIHRwY2kyMDBfc3BhY2VfaW50ZXJ2YWxbc3BhY2VdICogaTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1MDA6XFx0XFx0ZGV2LVxcdTAwM2VyZWdpb25bc3BhY2VdLnNpemUgPSB0cGNpMjAwX3NwYWNlX3NpemVbc3BhY2VdO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUwMS1cXHR9XFxuLS1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01MTUtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTE2OnN0YXRpYyBpbnQgdHBjaTIwMF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTE3LVxcdFxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTE5LVxcdGludCByZXQsIGk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTIwOlxcdHN0cnVjdCB0cGNpMjAwX2JvYXJkICp0cGNpMjAwO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyMS1cXHR1MzIgcmVnMzI7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTIyLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyMzpcXHR0cGNpMjAwID0ga3phbGxvY19vYmooc3RydWN0IHRwY2kyMDBfYm9hcmQpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjUyNDpcXHRpZiAoIXRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTI1LVxcdFxcdHJldHVybiAtRU5PTUVNO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTUyNi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Mjc6XFx0dHBjaTIwMC1cXHUwMDNlaW5mbyA9IGt6YWxsb2Nfb2JqKHN0cnVjdCB0cGNpMjAwX2luZm9zKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Mjg6XFx0aWYgKCF0cGNpMjAwLVxcdTAwM2VpbmZvKSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTI5LVxcdFxcdHJldCA9IC1FTk9NRU07XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTMwOlxcdFxcdGdvdG8gZXJyX3RwY2kyMDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTMxLVxcdH1cXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU0MC1cXHRcXHRyZXQgPSAtRUJVU1k7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQxOlxcdFxcdGdvdG8gZXJyX3RwY2kyMDBfaW5mbztcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDItXFx0fVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU0MzpcXHR0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyA9IGlvcmVtYXAoXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTQ0LVxcdFxcdFxcdHBjaV9yZXNvdXJjZV9zdGFydChwZGV2LCBUUENJMjAwX0NGR19NRU1fQkFSKSxcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDUtXFx0XFx0XFx0cGNpX3Jlc291cmNlX2xlbihwZGV2LCBUUENJMjAwX0NGR19NRU1fQkFSKSk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTQ2OlxcdGlmICghdHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlY2ZnX3JlZ3MpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NDctXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiRmFpbGVkIHRvIG1hcCBQQ0kgQ29uZmlndXJhdGlvbiBNZW1vcnlcXFwiKTtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU1NC1cXHQgKiBjYXJyaWVyLiAqL1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1NTpcXHRyZWczMiA9IGlvcmVhZDMyKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWNmZ19yZWdzICsgTEFTMV9ERVNDKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NTYtXFx0cmVnMzIgfD0gMSBcXHUwMDNjXFx1MDAzYyBMQVNfQklUX0JJR0VORElBTjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NTc6XFx0aW93cml0ZTMyKHJlZzMyLCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyArIExBUzFfREVTQyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTU4LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU1OTpcXHRyZWczMiA9IGlvcmVhZDMyKHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWNmZ19yZWdzICsgTEFTMl9ERVNDKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjAtXFx0cmVnMzIgfD0gMSBcXHUwMDNjXFx1MDAzYyBMQVNfQklUX0JJR0VORElBTjtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjE6XFx0aW93cml0ZTMyKHJlZzMyLCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyArIExBUzJfREVTQyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTYyLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU2My1cXHQvKiBTYXZlIHN0cnVjdCBwY2lfZGV2IHBvaW50ZXIgKi9cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1NjQ6XFx0dHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiA9IHBkZXY7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTY1LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU2Ni1cXHQvKiByZWdpc3RlciB0aGUgZGV2aWNlIGFuZCBpbml0aWFsaXplIGl0ICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTY3OlxcdHJldCA9IHRwY2kyMDBfaW5zdGFsbCh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NjgtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU2OTpcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJlcnJvciBkdXJpbmcgdHBjaTIwMCBpbnN0YWxsXFxcXG5cXFwiKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01NzAtXFx0XFx0cmV0ID0gLUVOT0RFVjtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3NC1cXHQvKiBSZWdpc3RlciB0aGUgY2FycmllciBpbiB0aGUgaW5kdXN0cnkgcGFjayBidXMgZHJpdmVyICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTc1OlxcdHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWlwYWNrX2J1cyA9IGlwYWNrX2J1c19yZWdpc3RlcihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU3Ni1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBUUENJMjAwX05CX1NMT1QsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTc3OlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwMjZ0cGNpMjAwX2J1c19vcHMsXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTc4LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIFRISVNfTU9EVUxFKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo1Nzk6XFx0aWYgKCF0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VpcGFja19idXMpIHtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODAtXFx0XFx0ZGV2X2VycihcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTgyLVxcdFxcdHJldCA9IC1FRkFVTFQ7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTgzOlxcdFxcdGdvdG8gZXJyX3RwY2kyMDBfaW5zdGFsbDtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01ODQtXFx0fVxcbi0tXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTg2LVxcdC8qIHNhdmUgdGhlIGJ1cyBudW1iZXIgZ2l2ZW4gYnkgaXBhY2sgdG8gbG9nZ2luZyBwdXJwb3NlICovXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTg3OlxcdHRwY2kyMDAtXFx1MDAzZW51bWJlciA9IHRwY2kyMDAtXFx1MDAzZWluZm8tXFx1MDAzZWlwYWNrX2J1cy1cXHUwMDNlYnVzX25yO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU4ODpcXHRkZXZfc2V0X2RydmRhdGEoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgdHBjaTIwMCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTg5LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTU5MC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgVFBDSTIwMF9OQl9TTE9UOyBpKyspXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NTkxOlxcdFxcdHRwY2kyMDBfY3JlYXRlX2RldmljZSh0cGNpMjAwLCBpKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTItXFx0cmV0dXJuIDA7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTkzLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NDplcnJfdHBjaTIwMF9pbnN0YWxsOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NTpcXHR0cGNpMjAwX3VuaW5zdGFsbCh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTYtZXJyX2NmZ19yZWdzOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjU5NzpcXHRwY2lfaW91bm1hcCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNTk4LWVycl9yZXF1ZXN0X3JlZ2lvbjpcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy01OTktXFx0cGNpX3JlbGVhc2VfcmVnaW9uKHBkZXYsIFRQQ0kyMDBfQ0ZHX01FTV9CQVIpO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYwMDplcnJfdHBjaTIwMF9pbmZvOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYwMTpcXHRrZnJlZSh0cGNpMjAwLVxcdTAwM2VpbmZvKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MDItXFx0cGNpX2Rldl9wdXQocGRldik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjAzOmVycl90cGNpMjAwOlxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYwNDpcXHRrZnJlZSh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MDUtXFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYwNy1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MDg6c3RhdGljIHZvaWQgX190cGNpMjAwX3BjaV9yZW1vdmUoc3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDApXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjA5LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTA6XFx0aXBhY2tfYnVzX3VucmVnaXN0ZXIodHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlaXBhY2tfYnVzKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MTE6XFx0dHBjaTIwMF91bmluc3RhbGwodHBjaTIwMCk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjEyLVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxMzpcXHRwY2lfaW91bm1hcCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2LCB0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VjZmdfcmVncyk7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjE0LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxNTpcXHRwY2lfcmVsZWFzZV9yZWdpb24odHBjaTIwMC1cXHUwMDNlaW5mby1cXHUwMDNlcGRldiwgVFBDSTIwMF9DRkdfTUVNX0JBUik7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjE2LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYxNzpcXHRwY2lfZGV2X3B1dCh0cGNpMjAwLVxcdTAwM2VpbmZvLVxcdTAwM2VwZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MTgtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjE5OlxcdGtmcmVlKHRwY2kyMDAtXFx1MDAzZWluZm8pO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYyMDpcXHRrZnJlZSh0cGNpMjAwKTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjEtfVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYyMi1cXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MjM6c3RhdGljIHZvaWQgdHBjaTIwMF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpkZXYpXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjI0LXtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYzo2MjU6XFx0c3RydWN0IHRwY2kyMDBfYm9hcmQgKnRwY2kyMDAgPSBwY2lfZ2V0X2RydmRhdGEoZGV2KTtcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL3RwY2kyMDAuYy02MjYtXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmM6NjI3OlxcdF9fdHBjaTIwMF9wY2lfcmVtb3ZlKHRwY2kyMDApO1xcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jLTYyOC19XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjI5LVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvdHBjaTIwMC5jOjYzMDpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgdHBjaTIwMF9pZHRhYmxlW10gPSB7XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy90cGNpMjAwLmMtNjMxLVxcdHsgVFBDSTIwMF9WRU5ET1JfSUQsIFRQQ0kyMDBfREVWSUNFX0lELCBUUENJMjAwX1NVQlZFTkRPUl9JRCxcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyMzo1NC40MTE5NzEyNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTUyODIwNDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBDb25maWd1cmF0aW9uIGZvciBUUENJMjAwIEJvYXJkIFN1cHBvcnQqKlxuXG5SaWdodCwgYENPTkZJR19CT0FSRF9UUENJMjAwYC4uLiBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIHRoZSBpLlBhY2sgY29uZmlndXJhdGlvbiBmaWxlcy4gVGhhdCB3b3VsZCBiZSB0aGUgbG9naWNhbCBwbGFjZSB0byBzdGFydCBkaWdnaW5nIGZvciB0aGUgYm9hcmQtc3BlY2lmaWMgb3B0aW9ucy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgYGRyaXZlcnMvaXBhY2svS2NvbmZpZ2AgYW5kIHRoZW4gYWxzbyBkaXZlIGludG8gYGRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZ2AuIFRob3NlIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMuIEknbSBleHBlY3RpbmcgdG8gZmluZCBlaXRoZXIgYSBkaXJlY3QgZGVmaW5pdGlvbiByZWxhdGVkIHRvIHRoZSBUUENJMjAwIG9yLCBtb3JlIGxpa2VseSwgc29tZSBjb25kaXRpb25hbCBsb2dpYyBiYXNlZCBvbiBhIHNpbWlsYXIgb3IgcmVsYXRlZCBpLlBhY2sgY2FycmllciBib2FyZCB0aGF0J3MgYWxyZWFkeSBzdXBwb3J0ZWQuIEZyb20gdGhlcmUsIEknbGwgbGlrZWx5IG5lZWQgdG8gdHJhY2UgZGVwZW5kZW5jaWVzIGFuZCB1bmRlcnN0YW5kIGhvdyB0aGUgaS5QYWNrIGZyYW1ld29yayBpbnRlZ3JhdGVzIHRoZSBib2FyZCdzIGZ1bmN0aW9uYWxpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTc4LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjM6NTcuOTY0Nzk0OTY0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDc0NDQ4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJPQVJEX1RQQ0kyMDBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9pcGFjay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjI6Y29uZmlnIEJPQVJEX1RQQ0kyMDBcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgdGhlIFRFV1MgVFBDSS0yMDAgSW5kdXN0cnlQYWNrIGNhcnJpZXIgYm9hcmRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjIzOjU4LjA3MjI0Njg5NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTU0NDU3MDM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBzbmlwcGV0cywgYXMgaWYgSSB3ZXJlIHByb2Nlc3NpbmcgdGhlbSBteXNlbGY6XG5cbioqS2NvbmZpZyBEaXZlIEJlZ2lucyoqXG5cbkFscmlnaHQsIHRoZSBmaXJzdCBjbHVlIGlzIGBDT05GSUdfQk9BUkRfVFBDSTIwMGAuIFRoYXQgdGVsbHMgbWUgd2UncmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIGJvYXJkIGNvbmZpZ3VyYXRpb24g4oCTIHRoZSBcIlRQQ0kyMDAsXCIgYXBwYXJlbnRseS4gVGhpcyBpcyB0aGUgc3RhcnRpbmcgcG9pbnQsIHRoZSBlbnRyeSBrZXkgdG8gdGhpcyBwYXJ0aWN1bGFyIHN1YnN5c3RlbSBJJ20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQuIEl0J3MgdGhlIGdhdGUsIHRoZSBmaWx0ZXIsIHRoZSBkZWZpbmluZyB2YXJpYWJsZS5cblxuTm93LCB3aGVyZSBkbyB3ZSBnbyBmcm9tIGhlcmU/IFRoZSBzZWNvbmQgcGllY2Ugb2YgdGhlIHB1enpsZSBwb2ludHMgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWdgLiBCaW5nbyEgR2l2ZW4gdGhlIGZpbGUgcGF0aCwgSSBpbW1lZGlhdGVseSBrbm93IHdlJ3JlIGxvb2tpbmcgYXQgdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uIGZpbGUgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gTWVsbGFub3ggRXRoZXJuZXQgZHJpdmVycywgc3BlY2lmaWNhbGx5IHRoZSBgbWx4c3dgIGZhbWlseSwgYSBjb3JlIGRyaXZlciBzZXQgZm9yIE1lbGxhbm94IG5ldHdvcmtpbmcgc2lsaWNvbi4gVGhlIGBLY29uZmlnYCBmaWxlcyBhcmUgaG93IHdlIG9yY2hlc3RyYXRlIHdoYXQgYnVpbGRzIGludG8gdGhlIGtlcm5lbC4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgb2YgdGhlIGJ1aWxkIHN5c3RlbSBnZXRzIGNvbnRyb2xsZWQgYnkgdXMuIFRoaXMgaXMgdGhlIHBsYWNlIHRvIHN0YXJ0IHVuZGVyc3RhbmRpbmcgdGhlIGludGVyYWN0aW9uIGJldHdlZW4gdGhpcyBib2FyZCBjb25maWd1cmF0aW9uLCBhbmQgdGhlIE1lbGxhbm94IG5ldHdvcmsgc3RhY2suIEkgYW50aWNpcGF0ZSB0aGlzIGZpbGUgd2lsbCB0ZWxsIG1lIGhvdyBgQ09ORklHX0JPQVJEX1RQQ0kyMDBgIGluZmx1ZW5jZXMgdGhlIGluY2x1c2lvbiwgZXhjbHVzaW9uLCBvciBjb25maWd1cmF0aW9uIG9mIHZhcmlvdXMgTWVsbGFub3ggZHJpdmVyIGZlYXR1cmVzLiBJJ20gZ29pbmcgdG8gZmluZCB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoaXMgXCJUUENJMjAwXCIgYm9hcmQgYW5kIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIE1lbGxhbm94IGRyaXZlcnMuIFRoZSBwaWVjZXMgYXJlIGNvbWluZyB0b2dldGhlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY5MjgsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDowMi4yMjY3MDY0MjhaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMjEwNjIxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYU1dfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTI1PWNvbmZpZyBNTFhTV19DT1JFX1RIRVJNQUxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzozMzpjb25maWcgTUxYU1dfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNC1cXHR0cmlzdGF0ZSBcXFwiUENJIGJ1cyBpbXBsZW1lbnRhdGlvbiBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MDIuMzI4ODM5MDI4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxOTg3NjI3ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzOlxuXG4qKkRlbHZpbmcgaW50byBDb25maWd1cmF0aW9uIGFuZCBEcml2ZXIgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgdGhlIGZvY3VzIHNlZW1zIHRvIGJlIG9uIGBDT05GSUdfTUxYU1dfUENJYC4gVGhhdCdzIHRoZSBrZXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBpbXBsaWNhdGlvbnMuIE15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byBjaGVjayB0aGUgcmVsYXRlZCBkZXBlbmRlbmNpZXMuIEJhc2VkIG9uIHRoZSBuYW1lIEknbSBwcmVzdW1pbmcgdGhpcyBpcyByZWxhdGVkIHRvIE1lbGxhbm94IFN3aXRjaCBQQ0kgZHJpdmVycy4gU28sIHdoZXJlIHdvdWxkIEkgZmluZCByZWxhdGVkIGNvZGU/XG5cbkkgc2hvdWxkIGxvb2sgaW50byBgZHJpdmVycy9zY3NpL0tjb25maWdgLiBJdOKAmXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiB0aGUgU0NTSSBjb250ZXh0LiBJJ2xsIG5lZWQgdG8gc2VlIGlmIGl0IHByb3ZpZGVzIGFueSBjbHVlcyBhYm91dCBob3cgYENPTkZJR19NTFhTV19QQ0lgIGlzIGNvbmZpZ3VyZWQgb3IgaWYgaXQgaW5mbHVlbmNlcywgb3IgaXMgaW5mbHVlbmNlZCwgYnkgb3RoZXIgU0NTSS1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBJJ20gdGhpbmtpbmcgYWJvdXQgcmVsYXRpb25zaGlwcyB3aXRoIHJlbGF0ZWQgaGFyZHdhcmUgZHJpdmVycyBsaWtlIHN0b3JhZ2UgYW5kIG5ldHdvcmtpbmcuIEknbGwgYmUgbG9va2luZyBmb3IgcmVsYXRpb25zaGlwcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc0NDEsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDowNS41Mjc2MDQ5MzZaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDYyNjkzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU0NTSV9OU1AzMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Njc2kvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnPTExOTE9Y29uZmlnIFNDU0lfQU01M0M5NzRcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDYtXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwNzpjb25maWcgU0NTSV9OU1AzMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDgtXFx0dHJpc3RhdGUgXFxcIldvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjA1LjY0MjI0MjQyNVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTkyNTkyNjM1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQQ0kgRHJpdmVyIFZ1bG5lcmFiaWxpdHkgRml4KipcblxuT2theSwgaGVyZSdzIHRoZSBzaXR1YXRpb246IEknbSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBgQ09ORklHX1NDU0lfTlNQMzJgLCBidXQgdGhlIGNvcmUgY2hhbmdlIGlzIGFjdHVhbGx5IGluIGBkcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmNgLiBUaGlzIGlzIGJpZywgaXQgdG91Y2hlcyAqYWxsKiBQQ0kgZHJpdmVycywgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyB0aG9yb3VnaGx5LlxuXG5UaGUgZ2lzdCBpcyB0aGF0IGBwY2lfbWF0Y2hfZGV2aWNlYCB3YXMgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhIGBwY2lfZGV2aWNlX2lkYCwgYnV0IGl0IGxvb2tzIGxpa2UgdGhlcmUncyBhIHNlcmlvdXMgYnVnLiBJdCB3YXNuJ3QgcmV0dXJuaW5nIGEgcG9pbnRlciB0byBhICpzdGFjayotYWxsb2NhdGVkIHN0cnVjdHVyZSwgYnV0IHRvIHRoZSBkcml2ZXIncyBJRCB0YWJsZSBvciBhIGR5bmFtaWMgSUQgc3RydWN0dXJlLiBXYWl0LCBJIGhhdmUgdG8gZ28gdGhyb3VnaCB0aGUgY29kZSBhZ2Fpbi5cblxuT2theSwgSSBzZWUgdGhlIHByb2JsZW0uIEl0IHVzZWQgdG8gcmV0dXJuIGBcdTAwMjZkeW5pZC1cdTAwM2VpZGAsIGFuZCBgZHluaWRgIGNvdWxkIGJlIGZyZWVkLiBCb29tISBUaGF0IG1lYW5zIGEgZHluYW1pYyBJRCBjb3VsZCBiZSByZW1vdmVkLCB0aGUgYGR5bmlkYCBmcmVlZCwgYW5kIHN1ZGRlbmx5IHdlIGhhdmUgYSBkYW5nbGluZyBwb2ludGVyIHJldHVybmVkIGZyb20gYHBjaV9tYXRjaF9kZXZpY2VgLiBBbmQgZXZlbiB3b3JzZSwgdGhlIHNwaW4gbG9jayBvbiBgZHJ2LVx1MDAzZWR5bmlkcy5sb2NrYCB3YXNuJ3QgaGVsZCB3aGlsZSB0aGUgcG9pbnRlciB3YXMgYmVpbmcgdXNlZC5cblxuVGhlIHJldHVybmVkIHBvaW50ZXIgaXMgdGhlbiBwYXNzZWQgdG8gYHByb2JlKClgLCB3aGljaCBjYW4gc2xlZXAgYW5kIHBvdGVudGlhbGx5IHRha2UgYSAqbG9uZyogdGltZS4gVGhpcyBtZWFucyB0aGUgZHJpdmVyIGNvdWxkIGJlIHVzaW5nIGEgZGFuZ2xpbmcgcG9pbnRlciB0byBhbiBgaWRgIHRoYXQgd2FzIHJlbW92ZWQgY29uY3VycmVudGx5LCBhIGNsYXNzaWMgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW8uIFRoaXMgaXMgYSB2ZXJ5IG5hc3R5IHJhY2UgY29uZGl0aW9uLlxuXG5UaGUgZml4PyBUaGUgcGF0Y2ggbm93IGNvcGllcyB0aGUgYHBjaV9kZXZpY2VfaWRgIGludG8gYSBzdHJ1Y3R1cmUgcHJvdmlkZWQgYnkgdGhlIGNhbGxlciAoc3BlY2lmaWNhbGx5LCB0aGUgc3RhY2sgb2YgYF9fcGNpX2RldmljZV9wcm9iZWApLiBHb29kLCBpdCdzIHZhbGlkIGZvciB0aGUgZHVyYXRpb24gb2YgYHByb2JlKClgLiBCdXQgbm93IEknbSB0aGlua2luZywgd2hhdCBhYm91dCBkcml2ZXJzIHRoYXQgd2VyZSAqc2F2aW5nKiB0aGlzIHBvaW50ZXI/XG5cblRoYXQncyB0aGUgbmV4dCBpc3N1ZS4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgb2YgYHRwY2kyMDBgLCBgbWx4c3dgLCBhbmQgdGhlIGBuc3AzMmAgZHJpdmVyLiBMb29rcyBsaWtlIHRoZSBvbGQgY29kZSB3YXMgZGlyZWN0bHkgc2F2aW5nIHRoZSBub3ctc3RhbGUgcG9pbnRlci4gYGF0YV9nZW5lcmljYCBpcyBhbHNvIG9uIHRoZSBsaXN0LiBBbGwgb2YgdGhlbSBzdG9yZWQgdGhlIHBvaW50ZXIgaW50byBhIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUuIE5vdywgYWZ0ZXIgdGhlIHBhdGNoLCBpZiB0aGV5IGFjY2VzcyB0aGF0IHNhdmVkIHBvaW50ZXIsIHRoZXkgYXJlIHJlYWRpbmcgZnJvbSBhbiBpbnZhbGlkIHN0YWNrIGxvY2F0aW9uLiBUaGlzIG1lYW5zIGEgbmV3IFVBRi5cblxuU28sIHRoZSBwYXRjaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBhIHVzZS1hZnRlci1mcmVlIGlzc3VlLiBJdOKAmXMgaW1wb3J0YW50IHRvIHNlZSBpZiBpdCBmaXhlcyB0aGUgb3JpZ2luYWwgaXNzdWUgd2l0aCB0aGUgZHluYW1pYyBJRHMgYW5kIGFsc28gdGhlIG5ldyBvbmUgaW50cm9kdWNlZCBieSB0aGUgc3RhY2sgYWxsb2NhdGlvbi5cblxuU28sIHRoaXMgcGF0Y2ggaXNuJ3QganVzdCBhIGJhbmQtYWlkOyBpdCdzIGEgY3JpdGljYWwgZml4LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZnV6eiB0byBtYWtlIHN1cmUgdGhpcyBmaXggZG9lc24ndCBicmVhayBhbnl0aGluZy4gV2UgbmVlZCB0byBmb2N1cyBvbiBwb3RlbnRpYWwgYXJlYXMgb2YgY29uY2Vybi4gV2Ugc2hvdWxkIGxvb2sgYXQgYHBjaV9hZGRfZHluaWRgLCBgbmV3X2lkX3N0b3JlYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgZG9fcGNpX21hdGNoX2lkYCwgYW5kIGBkb19wY2lfYWRkX2R5bmlkYC4gQW5kIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIG1vZGlmaWVkIGRyaXZlcnM6IGBhdGFfZ2VuZXJpY19pbml0X29uZWAsIGB0cGNpMjAwX3BjaV9wcm9iZWAsIGBtbHhzd19wY2lfcHJvYmVgLCBgbnNwMzJfcHJvYmVgLlxuXG5MZXQncyB2ZXJpZnkuIGBwY2lfYWRkX2R5bmlkYCBpcyByZWFjaGFibGUgdGhyb3VnaCB0aGUgc3lzZnMuIGBuZXdfaWRfc3RvcmVgLCBpcyB0aGUgc3lzZnMgc3RvcmUgZnVuY3Rpb24gZm9yIGBuZXdfaWRgLiBBbmQgYHBjaV9tYXRjaF9kZXZpY2VgIGlzIHVzZWQgZHVyaW5nIFBDSSBkZXZpY2UgcHJvYmluZy5cblxuV2UnbGwgbmVlZCB0byBlbmFibGUgYSBmZXcgY29uZmlndXJhdGlvbnMgdG8gcmVwcm9kdWNlIHRoaXM6IGBBVEFfR0VORVJJQ2AsIGBCT0FSRF9UUENJMjAwYCwgYE1MWFNXX1BDSWAsIGFuZCBgU0NTSV9OU1AzMmAuIFdhaXQsIGBNTFhTV19QQ0lgIGRlcGVuZHMgb24gYE1MWFNXX0NPUkVgLCBzbyBJJ2xsIGNoZWNrIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnYCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzc4OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjEuNTY4MTcxMTAxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NTc3MDQwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYU1dfUENJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTI1PWNvbmZpZyBNTFhTV19DT1JFX1RIRVJNQUxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzozMzpjb25maWcgTUxYU1dfUENJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0zNC1cXHR0cmlzdGF0ZSBcXFwiUENJIGJ1cyBpbXBsZW1lbnRhdGlvbiBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjEuNjUzOTQ4MTIzWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3MDYzMzg5MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGVwZW5kZW5jeSBEZWVwIERpdmUgZm9yIE1MWFNXX1BDSSoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IGdyYW51bGFyLiBCZWZvcmUgSSBwcm9jZWVkLCBsZXQncyBuYWlsIGRvd24gdGhlc2UgZGVwZW5kZW5jaWVzIGZvciBgTUxYU1dfUENJYC4gSSBuZWVkIHRvIGVuc3VyZSBhIHN0YWJsZSBhbmQgcHJlZGljdGFibGUgZW52aXJvbm1lbnQuIEknbSB0aGlua2luZyBiZXlvbmQganVzdCB0aGUgb2J2aW91cyBpbmNsdWRlcyBhbmQgbGlicmFyaWVzLiBJIG5lZWQgdG8gYWNjb3VudCBmb3Igc3BlY2lmaWMgdmVyc2lvbnMgb2Yga2VybmVsIG1vZHVsZXMsIGZpcm13YXJlLCBhbmQgZXZlbiBwb3RlbnRpYWwgaGFyZHdhcmUgcmV2aXNpb25zIHRoYXQgdGhpcyBtb2R1bGUgaW50ZXJhY3RzIHdpdGguIEFyZSB0aGVyZSBhbnkgaGlkZGVuLCBpbmRpcmVjdCBkZXBlbmRlbmNpZXMgbHVya2luZz8gSSBzaG91bGQgY2hlY2sgbm90IGp1c3QgdGhlIGNvZGUgaXRzZWxmIGJ1dCBhbHNvIGxvb2sgaW50byBidWlsZCBzY3JpcHRzIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBhbnl0aGluZyB0aGF0J3MgaW1wbGljaXRseSByZXF1aXJlZCwgYW5kIHdoaWNoIG1pZ2h0IGxlYWQgdG8gYnVpbGQgZmFpbHVyZXMsIHJ1bnRpbWUgY29uZmxpY3RzLCBvciB1bmV4cGVjdGVkIGJlaGF2aW9yLiBUaGlzIGlzIGNydWNpYWwgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uLCBkZWJ1Z2dpbmcsIGFuZCBhdm9pZGluZyB0aGUgZHJlYWRlZCBcIml0IHdvcmtzIG9uIG15IG1hY2hpbmVcIiBzeW5kcm9tZSB3aGVuIG1vdmluZyB0aGlzIG92ZXIgdG8gYSB0YXJnZXQgc3lzdGVtLiBUaW1lIHRvIHN0YXJ0IGRpZ2dpbmcuLi4gSSBuZWVkIHRvIGNvbnNpZGVyIGJvdGggY29tcGlsZS10aW1lIGFuZCBydW4tdGltZSBkZXBlbmRlbmNpZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMTIxLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjUuMzYwMjg5NTAxWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDMwMDA5NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MTc9Y29uZmlnIE1MWFNXX0NPUkVfSFdNT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIkhXTU9OIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxOTpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgSFdNT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjIwOlxcdGRlcGVuZHMgb24gIShNTFhTV19DT1JFPXkgXFx1MDAyNlxcdTAwMjYgSFdNT049bSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTIxLVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz0yNT1jb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cXHRib29sIFxcXCJUaGVybWFsIHpvbmUgc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjI3OlxcdGRlcGVuZHMgb24gTUxYU1dfQ09SRSBcXHUwMDI2XFx1MDAyNiBUSEVSTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yOC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MzM9Y29uZmlnIE1MWFNXX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzQtXFx0dHJpc3RhdGUgXFxcIlBDSSBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzozNTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9NRU0gXFx1MDAyNlxcdTAwMjYgTUxYU1dfQ09SRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMzYtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz00ND1jb25maWcgTUxYU1dfSTJDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00NS1cXHR0cmlzdGF0ZSBcXFwiSTJDIGJ1cyBpbXBsZW1lbnRhdGlvbiBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjQ2OlxcdGRlcGVuZHMgb24gSTJDIFxcdTAwMjZcXHUwMDI2IE1MWFNXX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTQ3LVxcdGRlZmF1bHQgbVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz01ND1jb25maWcgTUxYU1dfU1BFQ1RSVU1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTU1LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgU3BlY3RydW0gZmFtaWx5IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1NjpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgTUxYU1dfUENJIFxcdTAwMjZcXHUwMDI2IE5FVF9TV0lUQ0hERVYgXFx1MDAyNlxcdTAwMjYgVkxBTl84MDIxUVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTc6XFx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTg6XFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU5OlxcdGRlcGVuZHMgb24gTkVUX0lQR1JFIHx8IE5FVF9JUEdSRT1uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2MDpcXHRkZXBlbmRzIG9uIElQVjZfR1JFIHx8IElQVjZfR1JFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjYxOlxcdGRlcGVuZHMgb24gVlhMQU4gfHwgVlhMQU49blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjI6XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNjMtXFx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTc1PWNvbmZpZyBNTFhTV19TUEVDVFJVTV9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc2LVxcdGJvb2wgXFxcIkRhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo3NzpcXHRkZXBlbmRzIG9uIE1MWFNXX1NQRUNUUlVNIFxcdTAwMjZcXHUwMDI2IERDQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNzgtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTgzPWNvbmZpZyBNTFhTV19NSU5JTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04NC1cXHR0cmlzdGF0ZSBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIG1pbmltYWwgSTJDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo4NTpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgTUxYU1dfSTJDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy04Ni1cXHRkZWZhdWx0IG1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjUuNDYzMzAyNzkxWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MTQ3MTc1OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MgcmVnYXJkaW5nIHRoZXNlIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnM6XG5cbioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzOiBNTFhTV19QQ0kgYW5kIE1MWFNXX0NPUkUqKlxuXG5SaWdodCwgc28gSSBzZWUgdGhhdCBgTUxYU1dfUENJYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBNTFhTV19DT1JFYC4gTWFrZXMgc2Vuc2UsIHRoZSBQQ0kgZHJpdmVyIGxpa2VseSBidWlsZHMgb24gdGhlIGNvcmUgTWVsbGFub3ggc3dpdGNoIGZ1bmN0aW9uYWxpdHkuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBib3RoIGFyZSBlbmFibGVkIHRvIGdldCB0aGUgUENJIGRyaXZlciB3b3JraW5nLiBTbywgSSBzaG91bGQgZW5hYmxlIGJvdGggYE1MWFNXX0NPUkVgIGFuZCBgTUxYU1dfUENJYC4gSG9sZCBvbiBhIHNlY29uZCwgSSByZWNhbGwgdGhhdCBgTUxYU1dfQ09SRWAgaXMgYSB0cmlzdGF0ZSDigJMgaXQgY2FuIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBUaGF0IGNoYW5nZXMgdGhpbmdzIGEgYml0LiBMZXQncyBtYWtlIHN1cmUgSSdtIGNvbmZpZ3VyaW5nIGl0IGNvcnJlY3RseSwgcHJvYmFibHkgYXMgJ3knIGlmIGBNTFhTV19QQ0lgIGlzIGFsc28gJ3knLiBUbyBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIGRldGFpbHMsIEknbGwgcXVpY2tseSBjaGVjayB0aGUgcmVsZXZhbnQgS2NvbmZpZyBmaWxlLiBJJ2xsIG5lZWQgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ2AgdG8gY2hlY2suIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwgYWJvdXQgdGhlIGRlcGVuZGVuY2llcyBvciBkZWZhdWx0IGJlaGF2aW9ycyBvZiBgTUxYU1dfQ09SRWAgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE1MjQsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDoyOS4yNzgwMjMzOTlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMjA1MTg4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUxYU1dfQ09SRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjY6Y29uZmlnIE1MWFNXX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3Mgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoxNzpjb25maWcgTUxYU1dfQ09SRV9IV01PTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMTgtXFx0Ym9vbCBcXFwiSFdNT04gc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyNTpjb25maWcgTUxYU1dfQ09SRV9USEVSTUFMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yNi1cXHRib29sIFxcXCJUaGVybWFsIHpvbmUgc3VwcG9ydCBmb3IgTWVsbGFub3ggVGVjaG5vbG9naWVzIFN3aXRjaCBBU0lDc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MjkuNTAwMTAxNzI3WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNTgwODY5MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MgcmVnYXJkaW5nIHRoZXNlIGtlcm5lbCBjb25maWd1cmF0aW9ucy5cblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZWVwIERpdmUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCB0aGVzZSBkcml2ZXJzIGVuYWJsZWQuIE15IGluaXRpYWwgcGxhbiBpbnZvbHZlcyBlbmFibGluZyBhIHNwZWNpZmljIHNldDogYEFUQV9HRU5FUklDYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgLiBUaGF0IHNob3VsZCBnZXQgdXMgd2hlcmUgd2Ugd2FudCB0byBiZS5cblxuV2FpdCBhIHNlY29uZCwgYSBkZXBlbmRlbmN5IHBvcHBlZCB1cCBpbiBteSBoZWFkLiBgU0NTSV9OU1AzMmAuLi4gcmlnaHQsIHRoYXQgb25lIHJlbGllcyBvbiB0aGUgYFNDU0lgIG1vZHVsZS4gR290dGEgbWFrZSBzdXJlIGBTQ1NJYCBpcyBlbmFibGVkIHRvbywgYnV0IGJlZm9yZSBJIGF1dG9tYXRpY2FsbHkgYXNzdW1lLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgZGVwZW5kZW5jeSB0byBiZSAxMDAlIHN1cmUuIEJlc3QgcHJhY3RpY2U6IEknbGwganVtcCBpbnRvIHRoZSBgZHJpdmVycy9zY3NpL0tjb25maWdgIGZpbGUgYW5kIHZlcmlmeSB0aGUgZGVwZW5kZW5jeSBmb3IgYFNDU0lfTlNQMzJgIGJlZm9yZSBJIG1vdmUgb24uIE5vIHBvaW50IGluIGNoYXNpbmcgc3B1cmlvdXMgYnVpbGQgZXJyb3JzIGxhdGVyIVxuXG5cbiIsIklucHV0VG9rZW5zIjozMjE2OSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjM1LjU1ODE5MzIwNloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyMDI2MDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTQ1NJX05TUDMyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnPTExOTE9Y29uZmlnIFNDU0lfQU01M0M5NzRcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDYtXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwNzpjb25maWcgU0NTSV9OU1AzMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDgtXFx0dHJpc3RhdGUgXFxcIldvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjM1LjcyMDIyMzQzWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTk1MDYyNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipTQ1NJX05TUDMyIERlcGVuZGVuY3kgRGVlcCBEaXZlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB0YWtlIGEgaGFyZCBsb29rIGF0IHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoaXMgYFNDU0lfTlNQMzJgIG1vZHVsZS4gSXQncyB0aW1lIHRvIG1hcCBvdXQgZXZlcnkgc2luZ2xlIHBpZWNlIG9mIHRoZSBwdXp6bGUuIEknbSBnb2luZyB0byBjb25zaWRlciBpdCBmcm9tIGEgZGVzaWduIGFuZCBwZXJmb3JtYW5jZSBwb2ludCBvZiB2aWV3LlxuXG5JJ20gc3RhcnRpbmcgd2l0aCBhIG1lbnRhbCBjaGVja2xpc3Q6IFdoYXQgZXh0ZXJuYWwgbGlicmFyaWVzIGRvZXMgaXQgbGluayB0bz8gQXJlIHRoZXJlIGFueSBsb3dlci1sZXZlbCBkcml2ZXJzIGl0IHJlbGllcyBvbj8gV2hhdCBhYm91dCB0aGUga2VybmVsIGludGVyZmFjZXM/IEkgbmVlZCB0byBiZSBzdXJlIEkndmUgaWRlbnRpZmllZCBldmVyeSBwb3RlbnRpYWwgcG9pbnQgb2YgZmFpbHVyZSBhbmQgYm90dGxlbmVjay4gVGhpcyBpc24ndCBqdXN0IGFib3V0IGZ1bmN0aW9uYWxpdHk7IGl0J3MgYWJvdXQgc3RhYmlsaXR5IGFuZCBzY2FsYWJpbGl0eS4gV2UncmUgdGFsa2luZyBwZXJmb3JtYW5jZSBwcm9maWxpbmcgdG9vLlxuXG5JJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBvZiBhbnkgY2hhbmdlcyB0byB0aG9zZSBkZXBlbmRlbmNpZXMsIHRvby4gV2hhdCBoYXBwZW5zIGlmIGEgbGlua2VkIGxpYnJhcnkgZ2V0cyB1cGRhdGVkPyBXaWxsIGl0IHJlcXVpcmUgYSByZWJ1aWxkPyBXaWxsIHRoYXQgcmVidWlsZCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgbmV3IGJ1Z3M/IEFyZSB0aGVyZSBzcGVjaWZpYyB2ZXJzaW9ucyB0aGF0IGFyZSBrbm93biB0byB3b3JrLCBhbmQgb3RoZXJzIHRoYXQgd2Ugc2hvdWxkIGF2b2lkPyBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIHNvIEkgbmVlZCB0byB0cmFjayB2ZXJzaW9uIGluZm9ybWF0aW9uIG9uIGV2ZXJ5IHNpbmdsZSBkZXBlbmRlbmN5LlxuXG5GdXJ0aGVybW9yZSwgSSBoYXZlIHRvIHRoaW5rIGFib3V0IGhvdyB0aGlzIG1vZHVsZSBpcyB1c2VkLiBEb2VzIGl0IGhhdmUgYW55IGNpcmN1bGFyIGRlcGVuZGVuY2llcz8gRG9lcyBpdCBpbnRlcmFjdCB3aXRoIGFueSBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIGluIGEgd2F5IHRoYXQgY291bGQgY2F1c2UgY29udGVudGlvbiBvciBkZWFkbG9jaz8gSSdsbCBwcm9iYWJseSBuZWVkIHRvIHZpc3VhbGl6ZSB0aGlzIGF0IHNvbWUgcG9pbnQuIFVNTCBkaWFncmFtcz8gRGVwZW5kZW5jeSBncmFwaHM/IEl0J3MganVzdCBhIGd1dCBmZWVsaW5nIHRoYXQgdGhpcyBtb2R1bGUgaXMgaW1wb3J0YW50LCBhbmQgSSBuZWVkIHRvIGRvY3VtZW50IHRoZSBoZWNrIG91dCBvZiBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzI2MDUsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDozOS43Mzk3MzMzMjhaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MDU1MDMxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc2NzaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjI5IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00PWNvbmZpZyBTQ1NJX01PRFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWctNy1cXHRkZWZhdWx0IG0gaWYgU0NTST1tXFxuZHJpdmVycy9zY3NpL0tjb25maWc6ODpcXHRkZXBlbmRzIG9uIEJMT0NLXFxuZHJpdmVycy9zY3NpL0tjb25maWctOS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMD1jb25maWcgUkFJRF9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTItXFx0ZGVmYXVsdCBuXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTM6XFx0ZGVwZW5kcyBvbiBCTE9DS1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjE0OlxcdGRlcGVuZHMgb24gU0NTSV9NT0RcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yMT1jb25maWcgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTIyLVxcdHRyaXN0YXRlIFxcXCJTQ1NJIGRldmljZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIzOlxcdGRlcGVuZHMgb24gQkxPQ0tcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNC1cXHRzZWxlY3QgU0NTSV9ETUEgaWYgSEFTX0RNQVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTQ9Y29uZmlnIFNDU0lfTkVUTElOS1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTYtXFx0ZGVmYXVsdCBuXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NTc6XFx0ZGVwZW5kcyBvbiBORVRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OC1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01OT1jb25maWcgU0NTSV9QUk9DX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjAtXFx0Ym9vbCBcXFwibGVnYWN5IC9wcm9jL3Njc2kvIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NjE6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IFBST0NfRlNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02Mi1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcwPWNvbmZpZyBTQ1NJX0xJQl9LVU5JVF9URVNUXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzEtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBTQ1NJIE1pZCBMYXllcidzIHNjc2lfbGliXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NzI6XFx0ZGVwZW5kcyBvbiBLVU5JVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczLVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03OT1jb21tZW50IFxcXCJTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4MDpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04Mj1jb25maWcgQkxLX0RFVl9TRFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJTQ1NJIGRpc2sgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4NDpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMDM9Y29uZmlnIENIUl9ERVZfU1RcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDQtXFx0dHJpc3RhdGUgXFxcIlNDU0kgdGFwZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwNTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE2PWNvbmZpZyBCTEtfREVWX1NSXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE3LVxcdHRyaXN0YXRlIFxcXCJTQ1NJIENEUk9NIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE4OlxcdGRlcGVuZHMgb24gU0NTSSBcXHUwMDI2XFx1MDAyNiBCTEtfREVWXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE5LVxcdHNlbGVjdCBDRFJPTVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTMxPWNvbmZpZyBDSFJfREVWX1NHXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTMyLVxcdHRyaXN0YXRlIFxcXCJTQ1NJIGdlbmVyaWMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMzM6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTM0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE1Nj1jb25maWcgQkxLX0RFVl9CU0dcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xNTctXFx0Ym9vbCBcXFwiL2Rldi9ic2cgc3VwcG9ydCAoU0cgdjQpXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjE1ODpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xNTktXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xNjg9Y29uZmlnIENIUl9ERVZfU0NIXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTY5LVxcdHRyaXN0YXRlIFxcXCJTQ1NJIG1lZGlhIGNoYW5nZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxNzA6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTcxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTE4NT1jb25maWcgU0NTSV9FTkNMT1NVUkVcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xODYtXFx0dHJpc3RhdGUgXFxcIlNDU0kgRW5jbG9zdXJlIFN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTg3OlxcdGRlcGVuZHMgb24gU0NTSSBcXHUwMDI2XFx1MDAyNiBFTkNMT1NVUkVfU0VSVklDRVNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxODg6XFx0ZGVwZW5kcyBvbiBtIHx8IFNDU0lfU0FTX0FUVFJTICE9IG1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xODktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTk1PWNvbmZpZyBTQ1NJX0NPTlNUQU5UU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTE5Ni1cXHRib29sIFxcXCJWZXJib3NlIFNDU0kgZXJyb3IgcmVwb3J0aW5nIChrZXJuZWwgc2l6ZSArPSAzNkspXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjE5NzpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xOTgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjAzPWNvbmZpZyBTQ1NJX0xPR0dJTkdcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMDQtXFx0Ym9vbCBcXFwiU0NTSSBsb2dnaW5nIGZhY2lsaXR5XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjIwNTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMDYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjI5PWNvbmZpZyBTQ1NJX1NDQU5fQVNZTkNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yMzAtXFx0Ym9vbCBcXFwiQXN5bmNocm9ub3VzIFNDU0kgc2Nhbm5pbmdcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MjMxOlxcdGRlcGVuZHMgb24gU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTIzMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDM9Y29uZmlnIFNDU0lfUFJPVE9fVEVTVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI0NC1cXHR0cmlzdGF0ZSBcXFwic2NzaV9wcm90by5oIHVuaXQgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNDU6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IEtVTklUXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjQ2LVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0yNDg9bWVudSBcXFwiU0NTSSBUcmFuc3BvcnRzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI0OTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNTAtXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjUxPWNvbmZpZyBTQ1NJX1NQSV9BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI1Mi1cXHR0cmlzdGF0ZSBcXFwiUGFyYWxsZWwgU0NTSSAoU1BJKSBUcmFuc3BvcnQgQXR0cmlidXRlc1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNTM6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjU0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTI1OD1jb25maWcgU0NTSV9GQ19BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI1OS1cXHR0cmlzdGF0ZSBcXFwiRmliZXJDaGFubmVsIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI2MDpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgTkVUXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjYxLVxcdHNlbGVjdCBCTEtfREVWX0JTR0xJQlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MjY4PWNvbmZpZyBTQ1NJX0lTQ1NJX0FUVFJTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjY5LVxcdHRyaXN0YXRlIFxcXCJpU0NTSSBUcmFuc3BvcnQgQXR0cmlidXRlc1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzA6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IE5FVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI3MS1cXHRzZWxlY3QgQkxLX0RFVl9CU0dMSUJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTI3Nz1jb25maWcgU0NTSV9TQVNfQVRUUlNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yNzgtXFx0dHJpc3RhdGUgXFxcIlNBUyBUcmFuc3BvcnQgQXR0cmlidXRlc1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoyNzk6XFx0ZGVwZW5kcyBvbiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMjgwLVxcdHNlbGVjdCBCTEtfREVWX0JTR0xJQlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjg3PWNvbmZpZyBTQ1NJX1NSUF9BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI4OC1cXHR0cmlzdGF0ZSBcXFwiU1JQIFRyYW5zcG9ydCBBdHRyaWJ1dGVzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI4OTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yOTAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9Mjk2PW1lbnVjb25maWcgU0NTSV9MT1dMRVZFTFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTI5Ny1cXHRib29sIFxcXCJTQ1NJIGxvdy1sZXZlbCBkcml2ZXJzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjI5ODpcXHRkZXBlbmRzIG9uIFNDU0khPW5cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0yOTktXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zMDM9Y29uZmlnIElTQ1NJX1RDUFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTMwNC1cXHR0cmlzdGF0ZSBcXFwiaVNDU0kgSW5pdGlhdG9yIG92ZXIgVENQL0lQXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjMwNTpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgSU5FVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTMwNi1cXHRzZWxlY3QgQ1JDMzJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTMzOD1jb25maWcgU0dJV0Q5M19TQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMzM5LVxcdHRyaXN0YXRlIFxcXCJTR0kgV0Q5M0M5MyBTQ1NJIERyaXZlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzozNDA6XFx0ZGVwZW5kcyBvbiBTR0lfSEFTX1dEOTMgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0MS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zNDU9Y29uZmlnIEJMS19ERVZfM1dfWFhYWF9SQUlEXFxuZHJpdmVycy9zY3NpL0tjb25maWctMzQ2LVxcdHRyaXN0YXRlIFxcXCIzd2FyZSA1LzYvNy84eHh4IEFUQS1SQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzQ3OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlQgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM0OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0zNTg9Y29uZmlnIFNDU0lfSFBTQVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM1OS1cXHR0cmlzdGF0ZSBcXFwiSFAgU21hcnQgQXJyYXkgU0NTSSBkcml2ZXJcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzYwOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNjEtXFx0c2VsZWN0IENIRUNLX1NJR05BVFVSRVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MzcwPWNvbmZpZyBTQ1NJXzNXXzlYWFhcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNzEtXFx0dHJpc3RhdGUgXFxcIjN3YXJlIDl4eHggU0FUQS1SQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzcyOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zNzMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MzgxPWNvbmZpZyBTQ1NJXzNXX1NBU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM4Mi1cXHR0cmlzdGF0ZSBcXFwiM3dhcmUgOTd4eCBTQVMvU0FUQS1SQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MzgzOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0zODQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MzkyPWNvbmZpZyBTQ1NJX0FDQVJEXFxuZHJpdmVycy9zY3NpL0tjb25maWctMzkzLVxcdHRyaXN0YXRlIFxcXCJBQ0FSRCBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6Mzk0OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlQgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTM5NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz00MDE9Y29uZmlnIFNDU0lfQUhBMTUyWFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQwMi1cXHR0cmlzdGF0ZSBcXFwiQWRhcHRlYyBBSEExNTJYLzI4MjUgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0MDM6XFx0ZGVwZW5kcyBvbiBJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQwNDpcXHRkZXBlbmRzIG9uICFISUdITUVNXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDA1LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NDE5PWNvbmZpZyBTQ1NJX0FIQTE1NDJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MjAtXFx0dHJpc3RhdGUgXFxcIkFkYXB0ZWMgQUhBMTU0MiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQyMTpcXHRkZXBlbmRzIG9uIElTQSBcXHUwMDI2XFx1MDAyNiBTQ1NJIFxcdTAwMjZcXHUwMDI2IElTQV9ETUFfQVBJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDIyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQzMz1jb25maWcgU0NTSV9BSEExNzQwXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDM0LVxcdHRyaXN0YXRlIFxcXCJBZGFwdGVjIEFIQTE3NDAgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0MzU6XFx0ZGVwZW5kcyBvbiBFSVNBIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00MzYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NDQ2PWNvbmZpZyBTQ1NJX0FBQ1JBSURcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00NDctXFx0dHJpc3RhdGUgXFxcIkFkYXB0ZWMgQUFDUkFJRCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ0ODpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDQ5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ2ND1jb25maWcgU0NTSV9NVlVNSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ2NS1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBVTUkgZHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ2NjpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDY3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ3Mz1jb25maWcgU0NTSV9BRFZBTlNZU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ3NC1cXHR0cmlzdGF0ZSBcXFwiQWR2YW5TeXMgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjQ3NTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0NzY6XFx0ZGVwZW5kcyBvbiAoSVNBIHx8IEVJU0EgfHwgUENJKSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9zY3NpL0tjb25maWctNDc3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTQ4NT1jb25maWcgU0NTSV9BUkNNU1JcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy00ODYtXFx0dHJpc3RhdGUgXFxcIkFSRUNBIChBUkMxMXh4LzEyeHgvMTN4eC8xNnh4KSBTQVRBL1NBUyBSQUlEIEhvc3QgQWRhcHRlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo0ODc6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTQ4OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01MDQ9Y29uZmlnIFNDU0lfSFBUSU9QXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTA1LVxcdHRyaXN0YXRlIFxcXCJIaWdoUG9pbnQgUm9ja2V0UkFJRCAzeHh4LzR4eHggQ29udHJvbGxlciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUwNjpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTA3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTUxND1jb25maWcgU0NTSV9CVVNMT0dJQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTUxNS1cXHR0cmlzdGF0ZSBcXFwiQnVzTG9naWMgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUxNjpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MTctXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTI5PWNvbmZpZyBTQ1NJX0ZMQVNIUE9JTlRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzAtXFx0Ym9vbCBcXFwiRmxhc2hQb2ludCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjUzMTpcXHRkZXBlbmRzIG9uIFNDU0lfQlVTTE9HSUMgXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTM4PWNvbmZpZyBTQ1NJX01ZUkJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01MzktXFx0dHJpc3RhdGUgXFxcIk15bGV4IERBQzk2MC9EQUMxMTAwIFBDSSBSQUlEIENvbnRyb2xsZXIgKEJsb2NrIEludGVyZmFjZSlcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NTQwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTQxLVxcdHNlbGVjdCBSQUlEX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01NTM9Y29uZmlnIFNDU0lfTVlSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU1NC1cXHR0cmlzdGF0ZSBcXFwiTXlsZXggREFDOTYwL0RBQzExMDAgUENJIFJBSUQgQ29udHJvbGxlciAoU0NTSSBJbnRlcmZhY2UpXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU1NTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU1NjpcXHRkZXBlbmRzIG9uICFDUFVfQklHX0VORElBTiB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NTctXFx0c2VsZWN0IFJBSURfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU2OT1jb25maWcgVk1XQVJFX1BWU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU3MC1cXHR0cmlzdGF0ZSBcXFwiVk13YXJlIFBWU0NTSSBkcml2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1NzE6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSSBcXHUwMDI2XFx1MDAyNiBYODZcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01NzItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NTc3PWNvbmZpZyBYRU5fU0NTSV9GUk9OVEVORFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTU3OC1cXHR0cmlzdGF0ZSBcXFwiWEVOIFNDU0kgZnJvbnRlbmQgZHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU3OTpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgWEVOXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTgwLVxcdHNlbGVjdCBYRU5fWEVOQlVTX0ZST05URU5EXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz01ODc9Y29uZmlnIEhZUEVSVl9TVE9SQUdFXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTg4LVxcdHRyaXN0YXRlIFxcXCJNaWNyb3NvZnQgSHlwZXItViB2aXJ0dWFsIHN0b3JhZ2UgZHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjU4OTpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgSFlQRVJWX1ZNQlVTXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NTkwOlxcdGRlcGVuZHMgb24gbSB8fCBTQ1NJX0ZDX0FUVFJTICE9IG1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OTEtXFx0ZGVmYXVsdCBIWVBFUlZcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTU5NT1jb25maWcgTElCRkNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy01OTYtXFx0dHJpc3RhdGUgXFxcIkxpYkZDIG1vZHVsZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo1OTc6XFx0ZGVwZW5kcyBvbiBTQ1NJX0ZDX0FUVFJTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNTk4LVxcdHNlbGVjdCBDUkMzMlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NjAyPWNvbmZpZyBMSUJGQ09FXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjAzLVxcdHRyaXN0YXRlIFxcXCJMaWJGQ29FIG1vZHVsZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2MDQ6XFx0ZGVwZW5kcyBvbiBMSUJGQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYwNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MDg9Y29uZmlnIEZDT0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MDktXFx0dHJpc3RhdGUgXFxcIkZDb0UgbW9kdWxlXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxMDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxMTpcXHRkZXBlbmRzIG9uIExJQkZDT0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MTItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NjE1PWNvbmZpZyBGQ09FX0ZOSUNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02MTYtXFx0dHJpc3RhdGUgXFxcIkNpc2NvIEZOSUMgRHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjYxNzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBYODZcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2MTg6XFx0ZGVwZW5kcyBvbiBMSUJGQ09FXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjE5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTYyNj1jb25maWcgU0NTSV9TTklDXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjI3LVxcdHRyaXN0YXRlIFxcXCJDaXNjbyBTTklDIERyaXZlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2Mjg6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYyOS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02MzY9Y29uZmlnIFNDU0lfU05JQ19ERUJVR19GU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTYzNy1cXHRib29sIFxcXCJDaXNjbyBTTklDIERyaXZlciBEZWJ1Z2ZzIFN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6NjM4OlxcdGRlcGVuZHMgb24gU0NTSV9TTklDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjM5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTY0Mz1jb25maWcgU0NTSV9ETVgzMTkxRFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY0NC1cXHR0cmlzdGF0ZSBcXFwiRE1YMzE5MUQgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY0NTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02NDYtXFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02NTM9Y29uZmlnIFNDU0lfRkRPTUFJTlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY1NC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY1NTpcXHRkZXBlbmRzIG9uIFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02NTYtXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NjU3PWNvbmZpZyBTQ1NJX0ZET01BSU5fUENJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjU4LVxcdHRyaXN0YXRlIFxcXCJGdXR1cmUgRG9tYWluIFRNQy0zMjYwL0FIQS0yOTIwQSBQQ0kgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY1OTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy02NjAtXFx0c2VsZWN0IFNDU0lfRkRPTUFJTlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9Njc0PWNvbmZpZyBTQ1NJX0ZET01BSU5fSVNBXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjc1LVxcdHRyaXN0YXRlIFxcXCJGdXR1cmUgRG9tYWluIDE2eHggSVNBIFNDU0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2NzY6XFx0ZGVwZW5kcyBvbiBJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY3Ny1cXHRzZWxlY3QgQ0hFQ0tfU0lHTkFUVVJFXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02ODg9Y29uZmlnIFNDU0lfSVNDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY4OS1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwoUikgQzYwMCBTZXJpZXMgQ2hpcHNldCBTQVMgQ29udHJvbGxlclxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2OTA6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjY5MTpcXHRkZXBlbmRzIG9uIFg4NlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTY5Mi1cXHRzZWxlY3QgU0NTSV9TQVNfTElCU0FTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz02OTc9Y29uZmlnIFNDU0lfR0VORVJJQ19OQ1I1MzgwXFxuZHJpdmVycy9zY3NpL0tjb25maWctNjk4LVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIE5DUjUzODAvNTNjNDAwIFNDU0kgSVNBIGNhcmQgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo2OTk6XFx0ZGVwZW5kcyBvbiBJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUX01BUFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTcwMC1cXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcxMD1jb25maWcgU0NTSV9JUFNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03MTEtXFx0dHJpc3RhdGUgXFxcIklCTSBTZXJ2ZVJBSUQgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3MTI6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVCBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzEzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTcyND1jb25maWcgU0NTSV9JQk1WU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTcyNS1cXHR0cmlzdGF0ZSBcXFwiSUJNIFZpcnR1YWwgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjcyNjpcXHRkZXBlbmRzIG9uIFBQQ19QU0VSSUVTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzI3LVxcdHNlbGVjdCBTQ1NJX1NSUF9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NzM0PWNvbmZpZyBTQ1NJX0lCTVZTQ1NJU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNS1cXHR0cmlzdGF0ZSBcXFwiSUJNIFZpcnR1YWwgU0NTSSBTZXJ2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3MzY6XFx0ZGVwZW5kcyBvbiBQUENfUFNFUklFUyBcXHUwMDI2XFx1MDAyNiBUQVJHRVRfQ09SRSBcXHUwMDI2XFx1MDAyNiBTQ1NJIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTczNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz03NTE9Y29uZmlnIFNDU0lfSUJNVkZDXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzUyLVxcdHRyaXN0YXRlIFxcXCJJQk0gVmlydHVhbCBGQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc1MzpcXHRkZXBlbmRzIG9uIFBQQ19QU0VSSUVTIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NTQ6XFx0ZGVwZW5kcyBvbiBTQ1NJX0ZDX0FUVFJTXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzU1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc2MT1jb25maWcgU0NTSV9JQk1WRkNfVFJBQ0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NjItXFx0Ym9vbCBcXFwiZW5hYmxlIGRyaXZlciBpbnRlcm5hbCB0cmFjZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo3NjM6XFx0ZGVwZW5kcyBvbiBTQ1NJX0lCTVZGQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc2NC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTc3MD1jb25maWcgU0NTSV9JTklUSU9cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NzEtXFx0dHJpc3RhdGUgXFxcIkluaXRpbyA5MTAwVShXKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc3MjpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03NzMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NzgxPWNvbmZpZyBTQ1NJX0lOSUExMDBcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03ODItXFx0dHJpc3RhdGUgXFxcIkluaXRpbyBJTkktQTEwMFUyVyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc4MzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy03ODQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9NzkyPWNvbmZpZyBTQ1NJX1BQQVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTc5My1cXHR0cmlzdGF0ZSBcXFwiSU9NRUdBIHBhcmFsbGVsIHBvcnQgKHBwYSAtIG9sZGVyIGRyaXZlcylcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6Nzk0OlxcdGRlcGVuZHMgb24gU0NTSSBcXHUwMDI2XFx1MDAyNiBQQVJQT1JUX1BDXFxuZHJpdmVycy9zY3NpL0tjb25maWc6Nzk1OlxcdGRlcGVuZHMgb24gSEFTX0lPUE9SVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjc5NjpcXHRkZXBlbmRzIG9uICFISUdITUVNXFxuZHJpdmVycy9zY3NpL0tjb25maWctNzk3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTgyMT1jb25maWcgU0NTSV9JTU1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04MjItXFx0dHJpc3RhdGUgXFxcIklPTUVHQSBwYXJhbGxlbCBwb3J0IChpbW0gLSBuZXdlciBkcml2ZXMpXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjgyMzpcXHRkZXBlbmRzIG9uIFNDU0kgXFx1MDAyNlxcdTAwMjYgUEFSUE9SVF9QQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjgyNDpcXHRkZXBlbmRzIG9uICFISUdITUVNXFxuZHJpdmVycy9zY3NpL0tjb25maWctODI1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg0OT1jb25maWcgU0NTSV9JWklQX1NMT1dfQ1RSXFxuZHJpdmVycy9zY3NpL0tjb25maWctODUwLVxcdGJvb2wgXFxcInBwYS9pbW0gb3B0aW9uIC0gQXNzdW1lIHNsb3cgcGFycG9ydCBjb250cm9sIHJlZ2lzdGVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjg1MTpcXHRkZXBlbmRzIG9uIFNDU0lfUFBBIHx8IFNDU0lfSU1NXFxuZHJpdmVycy9zY3NpL0tjb25maWctODUyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg2Mz1jb25maWcgU0NTSV9MQVNJNzAwXFxuZHJpdmVycy9zY3NpL0tjb25maWctODY0LVxcdHRyaXN0YXRlIFxcXCJIUCBMYXNpIFNDU0kgc3VwcG9ydCBmb3IgNTNjNzAwLzcxMFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4NjU6XFx0ZGVwZW5kcyBvbiBHU0MgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg2Ni1cXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg3Mj1jb25maWcgU0NTSV9TTklfNTNDNzEwXFxuZHJpdmVycy9zY3NpL0tjb25maWctODczLVxcdHRyaXN0YXRlIFxcXCJTTkkgUk0gU0NTSSBzdXBwb3J0IGZvciA1M2M3MTBcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6ODc0OlxcdGRlcGVuZHMgb24gU05JX1JNIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04NzUtXFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04ODE9Y29uZmlnIDUzQzcwMF9MRV9PTl9CRVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4Mi1cXHRib29sXFxuZHJpdmVycy9zY3NpL0tjb25maWc6ODgzOlxcdGRlcGVuZHMgb24gU0NTSV9MQVNJNzAwIHx8IFNDU0lfU05JXzUzQzcxMFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4NC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTg4Nj1jb25maWcgU0NTSV9TVEVYXFxuZHJpdmVycy9zY3NpL0tjb25maWctODg3LVxcdHRyaXN0YXRlIFxcXCJQcm9taXNlIFN1cGVyVHJhayBFWCBTZXJpZXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo4ODg6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTg4OS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz04OTg9Y29uZmlnIDUzQzcwMF9CRV9CVVNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy04OTktXFx0Ym9vbFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjkwMDpcXHRkZXBlbmRzIG9uIFNDU0lfQTQwMDBUIHx8IFNDU0lfWk9SUk83WFggfHwgTVZNRTE2eF9TQ1NJIHx8IEJWTUU2MDAwX1NDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MDEtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05MDM9Y29uZmlnIFNDU0lfU1lNNTNDOFhYXzJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05MDQtXFx0dHJpc3RhdGUgXFxcIlNZTTUzQzhYWCBWZXJzaW9uIDIgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjkwNTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTA2LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9OTE3PWNvbmZpZyBTQ1NJX1NZTTUzQzhYWF9ETUFfQUREUkVTU0lOR19NT0RFXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTE4LVxcdGludCBcXFwiRE1BIGFkZHJlc3NpbmcgbW9kZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5MTk6XFx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTIwLVxcdGRlZmF1bHQgXFxcIjFcXFwiXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05NDA9Y29uZmlnIFNDU0lfU1lNNTNDOFhYX0RFRkFVTFRfVEFHU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk0MS1cXHRpbnQgXFxcIkRlZmF1bHQgdGFnZ2VkIGNvbW1hbmQgcXVldWUgZGVwdGhcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTQyOlxcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk0My1cXHRkZWZhdWx0IFxcXCIxNlxcXCJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk1MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTUFYX1RBR1NcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05NTItXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiBxdWV1ZWQgY29tbWFuZHNcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTUzOlxcdGRlcGVuZHMgb24gU0NTSV9TWU01M0M4WFhfMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk1NC1cXHRkZWZhdWx0IFxcXCI2NFxcXCJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk2MT1jb25maWcgU0NTSV9TWU01M0M4WFhfTU1JT1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk2Mi1cXHRib29sIFxcXCJVc2UgbWVtb3J5IG1hcHBlZCBJT1xcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5NjM6XFx0ZGVwZW5kcyBvbiBTQ1NJX1NZTTUzQzhYWF8yXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTY0LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9OTcwPWNvbmZpZyBTQ1NJX0lQUlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk3MS1cXHR0cmlzdGF0ZSBcXFwiSUJNIFBvd2VyIExpbnV4IFJBSUQgYWRhcHRlciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjk3MjpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctOTczLVxcdHNlbGVjdCBGV19MT0FERVJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk4MT1jb25maWcgU0NTSV9JUFJfVFJBQ0VcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05ODItXFx0Ym9vbCBcXFwiZW5hYmxlIGRyaXZlciBpbnRlcm5hbCB0cmFjZVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzo5ODM6XFx0ZGVwZW5kcyBvbiBTQ1NJX0lQUlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk4NC1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTk5MD1jb25maWcgU0NTSV9JUFJfRFVNUFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTk5MS1cXHRib29sIFxcXCJlbmFibGUgYWRhcHRlciBkdW1wIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6OTkyOlxcdGRlcGVuZHMgb24gU0NTSV9JUFJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy05OTMtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz05OTk9Y29uZmlnIFNDU0lfWkFMT05cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDAwLVxcdHRyaXN0YXRlIFxcXCJaYWxvbiBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTAwMTpcXHRkZXBlbmRzIG9uIEdTQyBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTAwMi1cXHRzZWxlY3QgU0NTSV9TUElfQVRUUlNcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwMTA9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX0RFRkFVTFRfVEFHU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwMTEtXFx0aW50IFxcXCJkZWZhdWx0IHRhZ2dlZCBjb21tYW5kIHF1ZXVlIGRlcHRoXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwMTI6XFx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTAxMy1cXHRkZWZhdWx0IFxcXCI4XFxcIlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTAzNj1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTUFYX1RBR1NcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDM3LVxcdGludCBcXFwibWF4aW11bSBudW1iZXIgb2YgcXVldWVkIGNvbW1hbmRzXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjEwMzg6XFx0ZGVwZW5kcyBvbiBTQ1NJX1pBTE9OXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTAzOS1cXHRkZWZhdWx0IFxcXCIzMlxcXCJcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTEwNTM9Y29uZmlnIFNDU0lfTkNSNTNDOFhYX1NZTkNcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDU0LVxcdGludCBcXFwic3luY2hyb25vdXMgdHJhbnNmZXJzIGZyZXF1ZW5jeSBpbiBNSHpcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTA1NTpcXHRkZXBlbmRzIG9uIFNDU0lfWkFMT05cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMDU2LVxcdGRlZmF1bHQgXFxcIjIwXFxcIlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA4Nz1jb25maWcgU0NTSV9OQ1I1M0M4WFhfTk9fRElTQ09OTkVDVFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwODgtXFx0Ym9vbCBcXFwibm90IGFsbG93IHRhcmdldHMgdG8gZGlzY29ubmVjdFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMDg5OlxcdGRlcGVuZHMgb24gU0NTSV9aQUxPTiBcXHUwMDI2XFx1MDAyNiBTQ1NJX05DUjUzQzhYWF9ERUZBVUxUX1RBR1M9MFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEwOTAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTA5Nz1jb25maWcgU0NTSV9RTE9HSUNfRkFTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTA5OC1cXHR0cmlzdGF0ZSBcXFwiUWxvZ2ljIEZBUyBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTA5OTpcXHRkZXBlbmRzIG9uIElTQSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTEwMC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTE3PWNvbmZpZyBTQ1NJX1FMT0dJQ18xMjgwXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTExOC1cXHR0cmlzdGF0ZSBcXFwiUWxvZ2ljIFFMQSAxMjQwLzF4ODAvMXgxNjAgU0NTSSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExMTk6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExMjAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTEyNj1jb25maWcgU0NTSV9RTE9HSUNQVElcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTI3LVxcdHRyaXN0YXRlIFxcXCJQVEkgUWxvZ2ljLCBJU1AgRHJpdmVyXFxcIlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExMjg6XFx0ZGVwZW5kcyBvbiBTQlVTIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTI5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnPTExNDM9Y29uZmlnIFNDU0lfTFBGQ1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNDQtXFx0dHJpc3RhdGUgXFxcIkVtdWxleCBMaWdodFB1bHNlIEZpYnJlIENoYW5uZWwgU3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ1OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ2OlxcdGRlcGVuZHMgb24gQ1BVX0ZSRVFcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTQ3OlxcdGRlcGVuZHMgb24gU0NTSV9GQ19BVFRSU1xcbmRyaXZlcnMvc2NzaS9LY29uZmlnOjExNDg6XFx0ZGVwZW5kcyBvbiBOVk1FX1RBUkdFVF9GQyB8fCBOVk1FX1RBUkdFVF9GQz1uXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE0OTpcXHRkZXBlbmRzIG9uIE5WTUVfRkMgfHwgTlZNRV9GQz1uXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE1MC1cXHRzZWxlY3QgQ1JDX1QxMERJRlxcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE1Nz1jb25maWcgU0NTSV9MUEZDX0RFQlVHX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE1OC1cXHRib29sIFxcXCJFbXVsZXggTGlnaHRQdWxzZSBGaWJyZSBDaGFubmVsIGRlYnVnZnMgU3VwcG9ydFxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTU5OlxcdGRlcGVuZHMgb24gU0NTSV9MUEZDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTE2MC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTY2PWNvbmZpZyBTQ1NJX1NJTTcxMFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjctXFx0dHJpc3RhdGUgXFxcIlNpbXBsZSA1M2M3MTAgU0NTSSBzdXBwb3J0IChDb21wYXEsIE5DUiBtYWNoaW5lcylcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE2ODpcXHRkZXBlbmRzIG9uIEVJU0EgXFx1MDAyNlxcdTAwMjYgU0NTSVxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNjktXFx0c2VsZWN0IFNDU0lfU1BJX0FUVFJTXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMTc1PWNvbmZpZyBTQ1NJX0RDMzk1eFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExNzYtXFx0dHJpc3RhdGUgXFxcIlRla3JhbSBEQzM5NShVL1VXL0YpIGFuZCBEQzMxNShVKSBTQ1NJIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTE3NzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTc4LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTE5MT1jb25maWcgU0NTSV9BTTUzQzk3NFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTExOTItXFx0dHJpc3RhdGUgXFxcIlRla3JhbSBEQzM5MChUKSBhbmQgQW01My83OUM5NzQgU0NTSSBzdXBwb3J0IChuZXcgZHJpdmVyKVxcXCJcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZzoxMTkzOlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IFNDU0lcXG5kcml2ZXJzL3Njc2kvS2NvbmZpZy0xMTk0LVxcdHNlbGVjdCBTQ1NJX1NQSV9BVFRSU1xcbi0tXFxuZHJpdmVycy9zY3NpL0tjb25maWc9MTIwNz1jb25maWcgU0NTSV9OU1AzMlxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMDgtXFx0dHJpc3RhdGUgXFxcIldvcmtiaXQgTmluamFTQ1NJLTMyQmkvVURFIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIwOTpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJIFxcdTAwMjZcXHUwMDI2ICE2NEJJVCBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTIxMC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMjE4PWNvbmZpZyBTQ1NJX1dENzE5WFxcbmRyaXZlcnMvc2NzaS9LY29uZmlnLTEyMTktXFx0dHJpc3RhdGUgXFxcIldlc3Rlcm4gRGlnaXRhbCBXRDcxOTMvNzE5Ny83Mjk2IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9zY3NpL0tjb25maWc6MTIyMDpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBTQ1NJXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTIyMS1cXHRzZWxlY3QgRUVQUk9NXzkzQ1g2XFxuLS1cXG5kcml2ZXJzL3Njc2kvS2NvbmZpZz0xMjI2PWNvbmZpZyBTQ1NJX0RFQlVHXFxuZHJpdmVycy9zY3NpL0tjb25maWctMTIyNy1cXHR0cmlzdGF0ZSBcXFwiU0NTSSBkZWJ1Z2dpbmcgaG9zdCBhbmQgZGV2aWNlIHNpbXVsYXRvclxcXCJcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6MzkuODgwMjkyODE0WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NDczNDk4MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFNDU0lfTlNQMzIgYW5kIFN5emthbGxlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgU0NTSV9OU1AzMmAgY29uZmlnIG9wdGlvbi4gVGhlIGRlcGVuZGVuY2llcyBhcmUgYFBDSSBcdTAwMjZcdTAwMjYgU0NTSSBcdTAwMjZcdTAwMjYgITY0QklUIFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUYC4gSG1tLCB0aGUgYCE2NEJJVGAgcGFydCBpcyBpbW1lZGlhdGVseSB0aHJvd2luZyBhIGZsYWcuIElmIHN5emthbGxlciBpcyBydW5uaW5nIG9uIGEgc3RhbmRhcmQgNjQtYml0IGtlcm5lbCwgd2hpY2ggaXMgdGhlIG5vcm0gZm9yIHg4Nl82NCwgYFNDU0lfTlNQMzJgIHNpbXBseSAqd29uJ3QqIGJlIGVuYWJsZWQuXG5cblNvLCBmaXJzdCBpbnN0aW5jdCwgY2FuIHdlIGVuYWJsZSBpdCBvbiA2NC1iaXQ/IE5vcGUsIHRob3NlIGRlcGVuZGVuY2llcyBzcGVjaWZpY2FsbHkgYmxvY2sgaXQuIEFscmlnaHQsIHNvIHRoZSBxdWVzdGlvbiBiZWNvbWVzLCBzaG91bGQgSSBldmVuIGxpc3QgYFNDU0lfTlNQMzJgIGF0IGFsbCBpZiBpdCdzIG5vdCBwb3NzaWJsZSB0byBhY3RpdmF0ZSBpdCBvbiA2NC1iaXQgcGxhdGZvcm1zPyBTeXprYWxsZXIgKm1pZ2h0KiBiZSB0ZXN0aW5nIG9uIDMyLWJpdCBhcmNoaXRlY3R1cmVzLCBsaWtlIGkzODYgb3IgYXJtMzIsIGFuZCBpbiB0aG9zZSBjYXNlcywgaXQgKndvdWxkKiBhcHBseS4gQnV0IHRoZW4gYWdhaW4sIGlmIHRoZSBhcmNoaXRlY3R1cmUgaXNuJ3QgYXBwcm9wcmlhdGUsIHN5emthbGxlciBpcyBnb2luZyB0byBpZ25vcmUgdGhlIG9wdGlvbiwgc28gd2hhdCdzIHRoZSBwb2ludCBvZiBsaXN0aW5nIGl0P1xuXG5BaCwgcmlnaHQsIEkgbmVlZCB0byBmb2N1cyBvbiB3aGF0J3MgKmFjdHVhbGx5KiBuZWVkZWQuIFRoaXMgaXNuJ3QganVzdCBhIGNvbXByZWhlbnNpdmUgbGlzdCwgaXQncyBhIGxpc3QgdGFpbG9yZWQgdG8gd2hhdCdzIHVzZWQuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgdGhlIG90aGVyIG9wdGlvbnMsIEkgaGF2ZSBgQVRBX0dFTkVSSUNgLCBgQk9BUkRfVFBDSTIwMGAsIGBNTFhTV19DT1JFYCwgYW5kIGBNTFhTV19QQ0lgLiBOb3csIGBBVEFfR0VORVJJQ2AgbmVlZHMgdG8gYmUgaW52ZXN0aWdhdGVkLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxOTI0LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjQ1LjMyNzY0NDkyM1oiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA1MzY4MjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9hdGEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDU0NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0xND1tZW51Y29uZmlnIEFUQVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIlNlcmlhbCBBVEEgYW5kIFBhcmFsbGVsIEFUQSBkcml2ZXJzIChsaWJhdGEpXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTY6XFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cXG5kcml2ZXJzL2F0YS9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gQkxPQ0tcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE4LVxcdHNlbGVjdCBTQ1NJXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTcwPWNvbmZpZyBBVEFfQUNQSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzEtXFx0Ym9vbCBcXFwiQVRBIEFDUEkgU3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjcyOlxcdGRlcGVuZHMgb24gQUNQSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzMtXFx0c2VsZWN0IFBBVEFfVElNSU5HU1xcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04ND1jb25maWcgU0FUQV9aUE9ERFxcbmRyaXZlcnMvYXRhL0tjb25maWctODUtXFx0Ym9vbCBcXFwiU0FUQSBaZXJvIFBvd2VyIE9wdGljYWwgRGlzYyBEcml2ZSAoWlBPREQpIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4NjpcXHRkZXBlbmRzIG9uIEFUQV9BQ1BJIFxcdTAwMjZcXHUwMDI2IFBNXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04Ny1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk3PWNvbmZpZyBTQVRBX1BNUFxcbmRyaXZlcnMvYXRhL0tjb25maWctOTgtXFx0Ym9vbCBcXFwiU0FUQSBQb3J0IE11bHRpcGxpZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjk5OlxcdGRlcGVuZHMgb24gU0FUQV9IT1NUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDAtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwOT1jb25maWcgU0FUQV9BSENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMTAtXFx0dHJpc3RhdGUgXFxcIkFIQ0kgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTExOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMTItXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0xMTg9Y29uZmlnIFNBVEFfTU9CSUxFX0xQTV9QT0xJQ1lcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTIxLVxcdGRlZmF1bHQgM1xcbmRyaXZlcnMvYXRhL0tjb25maWc6MTIyOlxcdGRlcGVuZHMgb24gU0FUQV9BSENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMjMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0xNjM9Y29uZmlnIEFIQ0lfQlJDTVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTY0LVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjE2NTpcXHRkZXBlbmRzIG9uIEFSQ0hfQlJDTVNUQiB8fCBCTUlQU19HRU5FUklDIHx8IEFSQ0hfQkNNX05TUCB8fCBcXFxcXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xNjYtXFx0XFx0ICAgQVJDSF9CQ01CQ0EgfHwgQ09NUElMRV9URVNUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTE3ND1jb25maWcgQUhDSV9EQTg1MFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTc1LVxcdHRyaXN0YXRlIFxcXCJEYVZpbmNpIERBODUwIEFIQ0kgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTc2OlxcdGRlcGVuZHMgb24gQVJDSF9EQVZJTkNJX0RBODUwIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTc3LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTg0PWNvbmZpZyBBSENJX0RNODE2XFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xODUtXFx0dHJpc3RhdGUgXFxcIkRhVmluY2kgRE04MTYgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxODY6XFx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTE4Ny1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTIwMz1jb25maWcgQUhDSV9TVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJTVCBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIwNTpcXHRkZXBlbmRzIG9uIEFSQ0hfU1RJIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjA2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjEyPWNvbmZpZyBBSENJX0lNWFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjEzLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgaS5NWCBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIxNDpcXHRkZXBlbmRzIG9uIE1GRF9TWVNDT04gXFx1MDAyNlxcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIxNTpcXHRkZXBlbmRzIG9uIChIV01PTiBcXHUwMDI2XFx1MDAyNiAoVEhFUk1BTCB8fCAhVEhFUk1BTF9PRikpIHx8ICFIV01PTlxcbmRyaXZlcnMvYXRhL0tjb25maWctMjE2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjIzPWNvbmZpZyBBSENJX0NFVkFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIyNC1cXHR0cmlzdGF0ZSBcXFwiQ0VWQSBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjIyNTpcXHRkZXBlbmRzIG9uIE9GXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yMjYtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0yMzM9Y29uZmlnIEFIQ0lfTVRLXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yMzQtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIEFIQ0kgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MjM1OlxcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTIzNi1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0yNDQ9Y29uZmlnIEFIQ0lfTVZFQlVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI0NS1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBFQlUgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoyNDY6XFx0ZGVwZW5kcyBvbiBBUkNIX01WRUJVIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjQ3LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjU0PWNvbmZpZyBBSENJX09DVEVPTlxcbmRyaXZlcnMvYXRhL0tjb25maWctMjU1LVxcdHRyaXN0YXRlIFxcXCJDYXZpdW0gT2N0ZW9uIFNvYyBTZXJpYWwgQVRBXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MjU2OlxcdGRlcGVuZHMgb24gU0FUQV9BSENJX1BMQVRGT1JNIFxcdTAwMjZcXHUwMDI2IENBVklVTV9PQ1RFT05fU09DXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNTctXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI2Mz1jb25maWcgQUhDSV9TVU5YSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMjY0LVxcdHRyaXN0YXRlIFxcXCJBbGx3aW5uZXIgc3VueGkgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoyNjU6XFx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjY2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MjczPWNvbmZpZyBBSENJX1RFR1JBXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNzQtXFx0dHJpc3RhdGUgXFxcIk5WSURJQSBUZWdyYSBBSENJIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjI3NTpcXHRkZXBlbmRzIG9uIEFSQ0hfVEVHUkEgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0yNzYtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz0yODM9Y29uZmlnIEFIQ0lfWEdFTkVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4NC1cXHR0cmlzdGF0ZSBcXFwiQVBNIFgtR2VuZSA2LjBHYnBzIEFIQ0kgU0FUQSBob3N0IGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjI4NTpcXHRkZXBlbmRzIG9uIFBIWV9YR0VORSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTI4Ni1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTI5MD1jb25maWcgQUhDSV9RT1JJUVxcbmRyaXZlcnMvYXRhL0tjb25maWctMjkxLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgUW9ySVEgQUhDSSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoyOTI6XFx0ZGVwZW5kcyBvbiBPRlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MjkzOlxcdGRlcGVuZHMgb24gU09DX0xTMTAyMUEgfHwgQVJDSF9MQVlFUlNDQVBFIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMjk0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzAxPWNvbmZpZyBTQVRBX0ZTTFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzAyLVxcdHRyaXN0YXRlIFxcXCJGcmVlc2NhbGUgMy4wR2JwcyBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzozMDM6XFx0ZGVwZW5kcyBvbiBGU0xfU09DIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzA0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzExPWNvbmZpZyBTQVRBX0dFTUlOSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzEyLVxcdHRyaXN0YXRlIFxcXCJHZW1pbmkgU0FUQSBicmlkZ2Ugc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjMxMzpcXHRkZXBlbmRzIG9uIEFSQ0hfR0VNSU5JIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzE0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzIyPWNvbmZpZyBTQVRBX0FIQ0lfU0VBVFRMRVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzIzLVxcdHRyaXN0YXRlIFxcXCJBTUQgU2VhdHRsZSA2LjBHYnBzIEFIQ0kgU0FUQSBob3N0IGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjMyNDpcXHRkZXBlbmRzIG9uIEFSQ0hfU0VBVFRMRSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMyNS1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTMzMT1jb25maWcgU0FUQV9JTklDMTYyWFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzMyLVxcdHRyaXN0YXRlIFxcXCJJbml0aW8gMTYyeCBTQVRBIHN1cHBvcnQgKFZlcnkgRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjMzMzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzM0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MzM4PWNvbmZpZyBTQVRBX0FDQVJEX0FIQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTMzOS1cXHR0cmlzdGF0ZSBcXFwiQUNhcmQgQUhDSSB2YXJpYW50IChBVFAgODYyMClcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzozNDA6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM0MS1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM0Nz1jb25maWcgU0FUQV9TSUwyNFxcbmRyaXZlcnMvYXRhL0tjb25maWctMzQ4LVxcdHRyaXN0YXRlIFxcXCJTaWxpY29uIEltYWdlIDMxMjQvMzEzMiBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzozNDk6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM1MC1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM4MD1jb25maWcgUERDX0FETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM4MS1cXHR0cmlzdGF0ZSBcXFwiUGFjaWZpYyBEaWdpdGFsIEFETUEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjM4MjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMzgzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9Mzg4PWNvbmZpZyBQQVRBX09DVEVPTl9DRlxcbmRyaXZlcnMvYXRhL0tjb25maWctMzg5LVxcdHRyaXN0YXRlIFxcXCJPQ1RFT04gQm9vdCBCdXMgQ29tcGFjdCBGbGFzaCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MzkwOlxcdGRlcGVuZHMgb24gQ0FWSVVNX09DVEVPTl9TT0NcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTM5MS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTM5OD1jb25maWcgU0FUQV9RU1RPUlxcbmRyaXZlcnMvYXRhL0tjb25maWctMzk5LVxcdHRyaXN0YXRlIFxcXCJQYWNpZmljIERpZ2l0YWwgU0FUQSBRU3RvciBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDAwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00MDEtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz00MDc9Y29uZmlnIFNBVEFfU1g0XFxuZHJpdmVycy9hdGEvS2NvbmZpZy00MDgtXFx0dHJpc3RhdGUgXFxcIlByb21pc2UgU0FUQSBTWDQgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjQwOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNDEwLVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDE2PWNvbmZpZyBBVEFfQk1ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQxNy1cXHRib29sIFxcXCJBVEEgQk1ETUEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjQxODpcXHRkZXBlbmRzIG9uIEhBU19ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQxOS1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDMxPWNvbmZpZyBBVEFfUElJWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNDMyLVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBFU0IsIElDSCwgUElJWDMsIFBJSVg0IFBBVEEvU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDMzOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00MzQtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz00NDI9Y29uZmlnIFNBVEFfRFdDXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00NDMtXFx0dHJpc3RhdGUgXFxcIkRlc2lnbldhcmUgQ29yZXMgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDQ0OlxcdGRlcGVuZHMgb24gRE1BREVWSUNFU1xcbmRyaXZlcnMvYXRhL0tjb25maWctNDQ1LVxcdHNlbGVjdCBHRU5FUklDX1BIWVxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz00NTM9Y29uZmlnIFNBVEFfRFdDX09MRF9ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ1NC1cXHRib29sIFxcXCJTdXBwb3J0IG9sZCBkZXZpY2UgdHJlZXNcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo0NTU6XFx0ZGVwZW5kcyBvbiBTQVRBX0RXQ1xcbmRyaXZlcnMvYXRhL0tjb25maWctNDU2LVxcdHNlbGVjdCBEV19ETUFDX0NPUkVcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDYyPWNvbmZpZyBTQVRBX0hJR0hCQU5LXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00NjMtXFx0dHJpc3RhdGUgXFxcIkNhbHhlZGEgSGlnaGJhbmsgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NDY0OlxcdGRlcGVuZHMgb24gQVJDSF9ISUdIQkFOSyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ2NS1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ3Mj1jb25maWcgU0FUQV9NVlxcbmRyaXZlcnMvYXRhL0tjb25maWctNDczLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjQ3NDpcXHRkZXBlbmRzIG9uIFBDSSB8fCBBUkNIX0RPVkUgfHwgQVJDSF9NVjc4WFgwIHx8IFxcXFxcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ3NS1cXHRcXHQgICBBUkNIX01WRUJVIHx8IEFSQ0hfT1JJT041WCB8fCBDT01QSUxFX1RFU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NDg1PWNvbmZpZyBTQVRBX05WXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00ODYtXFx0dHJpc3RhdGUgXFxcIk5WSURJQSBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo0ODc6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ4OC1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTQ5ND1jb25maWcgU0FUQV9QUk9NSVNFXFxuZHJpdmVycy9hdGEvS2NvbmZpZy00OTUtXFx0dHJpc3RhdGUgXFxcIlByb21pc2UgU0FUQSBUWDIvVFg0IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo0OTY6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTQ5Ny1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTUwMz1jb25maWcgU0FUQV9SQ0FSXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MDQtXFx0dHJpc3RhdGUgXFxcIlJlbmVzYXMgUi1DYXIgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTA1OlxcdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNTA2LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTEyPWNvbmZpZyBTQVRBX1NJTFxcbmRyaXZlcnMvYXRhL0tjb25maWctNTEzLVxcdHRyaXN0YXRlIFxcXCJTaWxpY29uIEltYWdlIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjUxNDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTE1LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTIxPWNvbmZpZyBTQVRBX1NJU1xcbmRyaXZlcnMvYXRhL0tjb25maWctNTIyLVxcdHRyaXN0YXRlIFxcXCJTaVMgOTY0Lzk2NS85NjYvMTgwIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjUyMzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTI0LVxcdHNlbGVjdCBQQVRBX1NJU1xcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz01MzM9Y29uZmlnIFNBVEFfU1ZXXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MzQtXFx0dHJpc3RhdGUgXFxcIlNlcnZlcldvcmtzIEZyb2RvIC8gQXBwbGUgSzIgU0FUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTM1OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01MzYtXFx0c2VsZWN0IFNBVEFfSE9TVFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz01NDM9Y29uZmlnIFNBVEFfVUxJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01NDQtXFx0dHJpc3RhdGUgXFxcIlVMaSBFbGVjdHJvbmljcyBTQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo1NDU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU0Ni1cXHRzZWxlY3QgU0FUQV9IT1NUXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTU1Mj1jb25maWcgU0FUQV9WSUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU1My1cXHR0cmlzdGF0ZSBcXFwiVklBIFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjU1NDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTU1LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTYxPWNvbmZpZyBTQVRBX1ZJVEVTU0VcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU2Mi1cXHR0cmlzdGF0ZSBcXFwiVklURVNTRSBWU0MtNzE3NCAvIElOVEVMIDMxMjQ0IFNBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjU2MzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTY0LVxcdHNlbGVjdCBTQVRBX0hPU1RcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTcyPWNvbmZpZyBQQVRBX0FMSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNTczLVxcdHRyaXN0YXRlIFxcXCJBTGkgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTc0OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU3NS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTU4Mj1jb25maWcgUEFUQV9BTURcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTU4My1cXHR0cmlzdGF0ZSBcXFwiQU1EL05WaWRpYSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo1ODQ6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNTg1LVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NTkyPWNvbmZpZyBQQVRBX0FSQVNBTl9DRlxcbmRyaXZlcnMvYXRhL0tjb25maWctNTkzLVxcdHRyaXN0YXRlIFxcXCJBUkFTQU4gQ29tcGFjdEZsYXNoIFBBVEEgQ29udHJvbGxlciBTdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NTk0OlxcdGRlcGVuZHMgb24gQVJDSF9TUEVBUjEzWFggfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo1OTU6XFx0ZGVwZW5kcyBvbiBETUFERVZJQ0VTXFxuZHJpdmVycy9hdGEvS2NvbmZpZy01OTYtXFx0c2VsZWN0IERNQV9FTkdJTkVcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjAwPWNvbmZpZyBQQVRBX0FSVE9QXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MDEtXFx0dHJpc3RhdGUgXFxcIkFSVE9QIDYyMTAvNjI2MCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo2MDI6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjAzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjA4PWNvbmZpZyBQQVRBX0FUSUlYUFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjA5LVxcdHRyaXN0YXRlIFxcXCJBVEkgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjEwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02MTEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz02MTc9Y29uZmlnIFBBVEFfQVRQODY3WFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjE4LVxcdHRyaXN0YXRlIFxcXCJBUlRPUC9BY2FyZCBBVFA4NjdYIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjYxOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjIwLVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjI3PWNvbmZpZyBQQVRBX0NNRDY0WFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjI4LVxcdHRyaXN0YXRlIFxcXCJDTUQ2NHggUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjI5OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYzMC1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTYzNz1jb25maWcgUEFUQV9DUzU1MjBcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTYzOC1cXHR0cmlzdGF0ZSBcXFwiQ1M1NTEwLzU1MjAgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjM5OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjQwLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjQ2PWNvbmZpZyBQQVRBX0NTNTUzMFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjQ3LVxcdHRyaXN0YXRlIFxcXCJDUzU1MzAgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjQ4OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjQ5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjU1PWNvbmZpZyBQQVRBX0NTNTUzNVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjU2LVxcdHRyaXN0YXRlIFxcXCJDUzU1MzUgUEFUQSBzdXBwb3J0IChFeHBlcmltZW50YWwpXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjU3OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgKFg4Nl82NCBcXHUwMDI2XFx1MDAyNiBDT01QSUxFX1RFU1QpKVxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjU4OlxcdGRlcGVuZHMgb24gIVVNTFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjU5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjY1PWNvbmZpZyBQQVRBX0NTNTUzNlxcbmRyaXZlcnMvYXRhL0tjb25maWctNjY2LVxcdHRyaXN0YXRlIFxcXCJDUzU1MzYgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6NjY3OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IChYODZfMzIgfHwgTUlQUyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02NjgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz02NzQ9Y29uZmlnIFBBVEFfQ1lQUkVTU1xcbmRyaXZlcnMvYXRhL0tjb25maWctNjc1LVxcdHRyaXN0YXRlIFxcXCJDeXByZXNzIENZODJDNjkzIFBBVEEgc3VwcG9ydCAoVmVyeSBFeHBlcmltZW50YWwpXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6Njc2OlxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTY3Ny1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTY4ND1jb25maWcgUEFUQV9FRkFSXFxuZHJpdmVycy9hdGEvS2NvbmZpZy02ODUtXFx0dHJpc3RhdGUgXFxcIkVGQVIgU0xDOTBFNjYgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjY4NjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNjg3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NjkzPWNvbmZpZyBQQVRBX0VQOTNYWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjk0LVxcdHRyaXN0YXRlIFxcXCJDaXJydXMgTG9naWMgRVA5M3h4IFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjY5NTpcXHRkZXBlbmRzIG9uIEFSQ0hfRVA5M1hYIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNjk2LVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzAzPWNvbmZpZyBQQVRBX0ZUSURFMDEwXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MDQtXFx0dHJpc3RhdGUgXFxcIkZhcmFkYXkgVGVjaG5vbG9neSBGVElERTAxMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MDU6XFx0ZGVwZW5kcyBvbiBBUk0gfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MDY6XFx0ZGVwZW5kcyBvbiBTQVRBX0dFTUlOSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzA3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzEzPWNvbmZpZyBQQVRBX0hQVDM2NlxcbmRyaXZlcnMvYXRhL0tjb25maWctNzE0LVxcdHRyaXN0YXRlIFxcXCJIUFQgMzY2LzM2OCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MTU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcxNi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTcyMj1jb25maWcgUEFUQV9IUFQzN1hcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTcyMy1cXHR0cmlzdGF0ZSBcXFwiSFBUIDM3MC8zNzBBLzM3MS8zNzIvMzc0LzMwMiBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3MjQ6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctNzI1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzMxPWNvbmZpZyBQQVRBX0hQVDNYMk5cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTczMi1cXHR0cmlzdGF0ZSBcXFwiSFBUIDM3MU4vMzcyTi8zMDJOIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjczMzpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03MzQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz03NDA9Y29uZmlnIFBBVEFfSFBUM1gzXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NDEtXFx0dHJpc3RhdGUgXFxcIkhQVCAzNDMvMzYzIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc0MjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzQzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzQ5PWNvbmZpZyBQQVRBX0hQVDNYM19ETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc1MC1cXHRib29sIFxcXCJIUFQgMzQzLzM2MyBETUEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc1MTpcXHRkZXBlbmRzIG9uIFBBVEFfSFBUM1gzXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NTItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz03NTc9Y29uZmlnIFBBVEFfSUNTSURFXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03NTgtXFx0dHJpc3RhdGUgXFxcIkFjb3JuIElDUyBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3NTk6XFx0ZGVwZW5kcyBvbiBBUk0gXFx1MDAyNlxcdTAwMjYgQVJDSF9BQ09STlxcbmRyaXZlcnMvYXRhL0tjb25maWctNzYwLVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9NzY2PWNvbmZpZyBQQVRBX0lNWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNzY3LVxcdHRyaXN0YXRlIFxcXCJQQVRBIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBpTVhcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3Njg6XFx0ZGVwZW5kcyBvbiBBUkNIX01YQyB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc2OS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc3Nj1jb25maWcgUEFUQV9JVDgyMTNcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc3Ny1cXHR0cmlzdGF0ZSBcXFwiSVQ4MjEzIFBBVEEgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjc3ODpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctNzc5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9Nzg1PWNvbmZpZyBQQVRBX0lUODIxWFxcbmRyaXZlcnMvYXRhL0tjb25maWctNzg2LVxcdHRyaXN0YXRlIFxcXCJJVDgyMTEvMiBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo3ODc6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTc4OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTc5NT1jb25maWcgUEFUQV9KTUlDUk9OXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03OTYtXFx0dHJpc3RhdGUgXFxcIkpNaWNyb24gUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6Nzk3OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy03OTgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04MDQ9Y29uZmlnIFBBVEFfTUFDSU9cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgwNS1cXHR0cmlzdGF0ZSBcXFwiQXBwbGUgUG93ZXJNYWMvUG93ZXJCb29rIGludGVybmFsICdNYWNJTycgSURFXFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6ODA2OlxcdGRlcGVuZHMgb24gUFBDX1BNQUNcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgwNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgxMz1jb25maWcgUEFUQV9NQVJWRUxMXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MTQtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgUEFUQSBzdXBwb3J0IHZpYSBsZWdhY3kgbW9kZVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjgxNTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctODE2LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODI0PWNvbmZpZyBQQVRBX01QQzUyeHhcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTgyNS1cXHR0cmlzdGF0ZSBcXFwiRnJlZXNjYWxlIE1QQzUyeHggU29DIGludGVybmFsIElERVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjgyNjpcXHRkZXBlbmRzIG9uIFBQQ19NUEM1Mnh4IFxcdTAwMjZcXHUwMDI2IFBQQ19CRVNUQ09NTVxcbmRyaXZlcnMvYXRhL0tjb25maWctODI3LVxcdHNlbGVjdCBQUENfQkVTVENPTU1fQVRBXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTgzND1jb25maWcgUEFUQV9ORVRDRUxMXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04MzUtXFx0dHJpc3RhdGUgXFxcIk5FVENFTEwgUmV2b2x1dGlvbiBSQUlEIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4MzY6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctODM3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODQzPWNvbmZpZyBQQVRBX05JTkpBMzJcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg0NC1cXHR0cmlzdGF0ZSBcXFwiTmluamEzMi9EZWxraW4gQ2FyZGJ1cyBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg0NTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctODQ2LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODUyPWNvbmZpZyBQQVRBX05TODc0MTVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1My1cXHR0cmlzdGF0ZSBcXFwiTmF0IFNlbWkgTlM4NzQxNSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4NTQ6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg1NS1cXHRzZWxlY3QgUEFUQV9USU1JTkdTXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTg2Mj1jb25maWcgUEFUQV9PTERQSUlYXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04NjMtXFx0dHJpc3RhdGUgXFxcIkludGVsIFBBVEEgb2xkIFBJSVggc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg2NDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctODY1LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODcwPWNvbmZpZyBQQVRBX09QVElETUFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg3MS1cXHR0cmlzdGF0ZSBcXFwiT1BUSSBGaXJlU3RhciBQQVRBIHN1cHBvcnQgKFZlcnkgRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg3MjpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04NzMtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04ODA9Y29uZmlnIFBBVEFfUERDMjAyN1hcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg4MS1cXHR0cmlzdGF0ZSBcXFwiUHJvbWlzZSBQQVRBIDIwMjd4IHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo4ODI6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctODgzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9ODg4PWNvbmZpZyBQQVRBX1BEQ19PTERcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTg4OS1cXHR0cmlzdGF0ZSBcXFwiT2xkZXIgUHJvbWlzZSBQQVRBIGNvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5MDpcXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy04OTEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz04OTc9Y29uZmlnIFBBVEFfUkFESVNZU1xcbmRyaXZlcnMvYXRhL0tjb25maWctODk4LVxcdHRyaXN0YXRlIFxcXCJSQURJU1lTIDgyNjAwIFBBVEEgc3VwcG9ydCAoRXhwZXJpbWVudGFsKVxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjg5OTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTAwLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTA2PWNvbmZpZyBQQVRBX1JEQ1xcbmRyaXZlcnMvYXRhL0tjb25maWctOTA3LVxcdHRyaXN0YXRlIFxcXCJSREMgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6OTA4OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz05MTY9Y29uZmlnIFBBVEFfU0MxMjAwXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MTctXFx0dHJpc3RhdGUgXFxcIlNDMTIwMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5MTg6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgKFg4Nl8zMiB8fCBDT01QSUxFX1RFU1QpIFxcdTAwMjZcXHUwMDI2IEhBU19JT1BPUlRcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkxOS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTkyNT1jb25maWcgUEFUQV9TQ0hcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTkyNi1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgU0NIIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjkyNzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTI4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTM0PWNvbmZpZyBQQVRBX1NFUlZFUldPUktTXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05MzUtXFx0dHJpc3RhdGUgXFxcIlNFUlZFUldPUktTIE9TQjQvQ1NCNS9DU0I2L0hUMTAwMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5MzY6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvYXRhL0tjb25maWctOTM3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTQzPWNvbmZpZyBQQVRBX1NJTDY4MFxcbmRyaXZlcnMvYXRhL0tjb25maWctOTQ0LVxcdHRyaXN0YXRlIFxcXCJDTUQgLyBTaWxpY29uIEltYWdlIDY4MCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5NDU6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk0Ni1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk1MT1jb25maWcgUEFUQV9TSVNcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk1Mi1cXHR0cmlzdGF0ZSBcXFwiU2lTIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjk1MzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTU0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTU5PWNvbmZpZyBQQVRBX1RPU0hJQkFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2MC1cXHR0cmlzdGF0ZSBcXFwiVG9zaGliYSBQaWNjb2xvIHN1cHBvcnQgKEV4cGVyaW1lbnRhbClcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5NjE6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk2Mi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk2OD1jb25maWcgUEFUQV9UUklGTEVYXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05NjktXFx0dHJpc3RhdGUgXFxcIkNvbXBhcSBUcmlmbGV4IFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjk3MDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTcxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9OTc3PWNvbmZpZyBQQVRBX1ZJQVxcbmRyaXZlcnMvYXRhL0tjb25maWctOTc4LVxcdHRyaXN0YXRlIFxcXCJWSUEgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6OTc5OlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05ODAtXFx0c2VsZWN0IFBBVEFfVElNSU5HU1xcbi0tXFxuZHJpdmVycy9hdGEvS2NvbmZpZz05ODc9Y29uZmlnIFBBVEFfUFhBXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05ODgtXFx0dHJpc3RhdGUgXFxcIlBYQSBETUEtY2FwYWJsZSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzo5ODk6XFx0ZGVwZW5kcyBvbiBBUkNIX1BYQSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTk5MC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTk5OD1jb25maWcgUEFUQV9XSU5CT05EXFxuZHJpdmVycy9hdGEvS2NvbmZpZy05OTktXFx0dHJpc3RhdGUgXFxcIldpbmJvbmQgU0w4MkMxMDUgUEFUQSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTAwMDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTAwMS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwMTE9Y29uZmlnIFBBVEFfQ01ENjQwX1BDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTAxMi1cXHR0cmlzdGF0ZSBcXFwiQ01ENjQwIFBDSSBQQVRBIHN1cHBvcnQgKEV4cGVyaW1lbnRhbClcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDEzOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDE0LVxcdHNlbGVjdCBQQVRBX1RJTUlOR1NcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTAyMj1jb25maWcgUEFUQV9GQUxDT05cXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMjMtXFx0dHJpc3RhdGUgXFxcIkF0YXJpIEZhbGNvbiBhbmQgUTQwL1E2MCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDI0OlxcdGRlcGVuZHMgb24gTTY4SyBcXHUwMDI2XFx1MDAyNiAoQVRBUkkgfHwgUTQwKVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTAyNS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwMzE9Y29uZmlnIFBBVEFfR0FZTEVcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwMzItXFx0dHJpc3RhdGUgXFxcIkFtaWdhIEdheWxlIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwMzM6XFx0ZGVwZW5kcyBvbiBNNjhLIFxcdTAwMjZcXHUwMDI2IEFNSUdBXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDM0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTA0Mz1jb25maWcgUEFUQV9CVURESEFcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNDQtXFx0dHJpc3RhdGUgXFxcIkJ1ZGRoYS9DYXR3ZWFzZWwvWC1TdXJmIFBBVEEgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL2F0YS9LY29uZmlnOjEwNDU6XFx0ZGVwZW5kcyBvbiBaT1JST1xcbmRyaXZlcnMvYXRhL0tjb25maWctMTA0Ni1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwNTU9Y29uZmlnIFBBVEFfSVNBUE5QXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDU2LVxcdHRyaXN0YXRlIFxcXCJJU0EgUGx1ZyBhbmQgUGxheSBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDU3OlxcdGRlcGVuZHMgb24gSVNBUE5QXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDU4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTA2ND1jb25maWcgUEFUQV9JWFA0WFhfQ0ZcXG5kcml2ZXJzL2F0YS9LY29uZmlnLTEwNjUtXFx0dHJpc3RhdGUgXFxcIklYUDRYWCBDb21wYWN0IEZsYXNoIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDY2OlxcdGRlcGVuZHMgb24gQVJDSF9JWFA0WFggfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9hdGEvS2NvbmZpZy0xMDY3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvYXRhL0tjb25maWc9MTA3ND1jb25maWcgUEFUQV9NUElJWFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3NS1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgUEFUQSBNUElJWCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvYXRhL0tjb25maWc6MTA3NjpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvYXRhL0tjb25maWctMTA3Ny1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL2F0YS9LY29uZmlnPTEwODI9Y29uZmlnIFBBVEFfTlM4NzQxMFxcbmRyaXZlcnMvYXRhL0tjb25maWctMTA4My1cXHR0cmlzdGF0ZSBcXFwiTmF0IFNlbWkgTlM4NzQxMCBQQVRBIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9hdGEvS2NvbmZpZzoxMDg0OlxcdGRlcGVuZHMgb24gUENJXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjQ1LjYzMzAxODIzM1oiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTI2MzA1NzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlcGVuZGVuY3kgQ2hlY2sqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQVRBX0dFTkVSSUNgLiBJdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoYXQgb25lIG5lZWRzIGBQQ0lgIGFuZCBgQVRBYC4gTm8gc3VycHJpc2VzIHRoZXJlLiBCdXQsIGhvbGQgb24uLi4gYEFUQWAgaXRzZWxmIGhhcyBzb21lIGRlcGVuZGVuY2llcywgbmFtZWx5IGBIQVNfSU9NRU1gIGFuZCBgQkxPQ0tgLiBBbHJpZ2h0LCB0aGF0J3MgbG9naWNhbCwgaXQgbmVlZHMgdG8ga25vdyB3aGVyZSBpdCdzIG1hcHBpbmcgdG8sIGFuZCB0aGF0IHRoZSBzdG9yYWdlIGl0c2VsZiBleGlzdHMuIFNvLCBnb2luZyBiYWNrIHRvIGBBVEFfR0VORVJJQ2AsIHNpbmNlIGBBVEFgIGZ1bGZpbGxzIGl0cyBkZXBlbmRlbmNpZXMsIHRoZW4gYEFUQV9HRU5FUklDYCBpcyBhbGwgc2V0LiBUaW1lIHRvIG1vdmUgb24gYW5kIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgZm9yIGBCT0FSRF9UUENJMjAwYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTExMjYsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNDo0OS41NTkzMjc3WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU3MTg0MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnPTI9Y29uZmlnIEJPQVJEX1RQQ0kyMDBcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgdGhlIFRFV1MgVFBDSS0yMDAgSW5kdXN0cnlQYWNrIGNhcnJpZXIgYm9hcmRcXFwiXFxuZHJpdmVycy9pcGFjay9jYXJyaWVycy9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBJUEFDS19CVVNcXG5kcml2ZXJzL2lwYWNrL2NhcnJpZXJzL0tjb25maWc6NTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvaXBhY2svY2FycmllcnMvS2NvbmZpZy02LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6NDkuNjg1MDU2MzA4WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwNzY1MjU1NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydCBpbiBlbWJlZGRlZCBzeXN0ZW1zIGFyY2hpdGVjdHVyZTpcblxuKipEZXBlbmRlbmN5IENoYWluIEludmVzdGlnYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyBgQk9BUkRfVFBDSTIwMGAgaGFzIGEgZGVwZW5kZW5jeSBjaGFpbi4gSXQncyBidWlsdCBvbiBgSVBBQ0tfQlVTYCwgd2hpY2ggaXMgaXRzZWxmIHJlbGlhbnQgb24gdGhlIGBQQ0lgIGJ1cy4gQmVmb3JlIEkgY2FuIHByb2NlZWQgd2l0aCBhbnkgdHJvdWJsZXNob290aW5nIG9yIGRlc2lnbiBjb25zaWRlcmF0aW9ucyByZWxhdGVkIHRvIGBCT0FSRF9UUENJMjAwYCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCB1bmRlcmx5aW5nIGBJUEFDS19CVVNgIGRlcGVuZGVuY3kuIEl0J3MgdGhlIGxvZ2ljYWwgbmV4dCBzdGVwIGluIHRyYWNpbmcgZG93biB0aGUgZmxvdy4gSSBuZWVkIHRvIGtub3cgaG93IGBJUEFDS19CVVNgIGlzIGNvbmZpZ3VyZWQsIHdoYXQgcmVzb3VyY2VzIGl0IHJlcXVpcmVzLCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBgUENJYCBidXMuIFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gdXBvbiB3aGljaCBgQk9BUkRfVFBDSTIwMGAgc3RhbmRzLCBzbyBJJ2xsIHN0YXJ0IHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTQ3MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI0OjUyLjc2MTU4NTI0N1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzMzE0MTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUEFDS19CVVNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9pcGFjay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvaXBhY2svS2NvbmZpZy01LVxcbmRyaXZlcnMvaXBhY2svS2NvbmZpZzo2Om1lbnVjb25maWcgSVBBQ0tfQlVTXFxuZHJpdmVycy9pcGFjay9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIkluZHVzdHJ5UGFjayBidXMgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMTY6MjQ6NTIuOTE0OTAzOTMyWiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYzMTQ0NDg3NDkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkVuYWJsaW5nIElQQUNLX0JVUyBhbmQgRGVwZW5kZW5jeSBTY3J1dGlueSoqXG5cbkFscmlnaHQsIHRoZSBjb3JlIGxvZ2ljIHBvaW50cyB1cyB0b3dhcmQgZW5hYmxpbmcgYElQQUNLX0JVU2AuIFRoYXQncyB0aGUgZGlyZWN0aW9uIHdlIG5lZWQgdG8gZ28uIEJlZm9yZSB3ZSBjb21taXQsIGxldCdzIGp1c3QgbWFrZSBhYnNvbHV0ZWx5IHN1cmUgd2UndmUgZ290IGFsbCBvdXIgZHVja3MgaW4gYSByb3cuIE5vdywgZ2l2ZW4gdGhhdCBkZWNpc2lvbiwgSSdtIGdvaW5nIHRvIHF1aWNrbHkgYXVkaXQgdGhlIGRlcGVuZGVuY2llcy4gVGhlIGdvYWwgaXMgdG8gdmVyaWZ5IHRoYXQgZW5hYmxpbmcgYElQQUNLX0JVU2AgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHVuZm9yZXNlZW4gaXNzdWVzIG9yIGNvbmZsaWN0cyB3aXRoaW4gdGhlIGJyb2FkZXIgYE1MWFNXX0NPUkVgIGZyYW1ld29yay4gTmVlZCB0byBtYWtlIGNlcnRhaW4gdGhhdCB3ZSdyZSBub3QgaW5hZHZlcnRlbnRseSBicmVha2luZyBhbnl0aGluZyB1cHN0cmVhbSBvciBjcmVhdGluZyBhIGRvd25zdHJlYW0gaXNzdWUgd2UgaGF2ZW4ndCBhbnRpY2lwYXRlZC4gVGltZSB0byBkaXZlIGludG8gdGhlIEtjb25maWcgYW5kIE1ha2VmaWxlcyBhbmQgY29uZmlybSB0aGF0IHRoaXMgaXMgYSBjbGVhbiBhbmQgc3RyYWlnaHRmb3J3YXJkIGVuYWJsaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTc3MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI1OjU2LjA1OTM5NDAxNVoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY5Njg2MDk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTE3PWNvbmZpZyBNTFhTV19DT1JFX0hXTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0xOC1cXHRib29sIFxcXCJIV01PTiBzdXBwb3J0IGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MTk6XFx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFxcdTAwMjZcXHUwMDI2IEhXTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyMDpcXHRkZXBlbmRzIG9uICEoTUxYU1dfQ09SRT15IFxcdTAwMjZcXHUwMDI2IEhXTU9OPW0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy0yMS1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9MjU9Y29uZmlnIE1MWFNXX0NPUkVfVEhFUk1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjYtXFx0Ym9vbCBcXFwiVGhlcm1hbCB6b25lIHN1cHBvcnQgZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzoyNzpcXHRkZXBlbmRzIG9uIE1MWFNXX0NPUkUgXFx1MDAyNlxcdTAwMjYgVEhFUk1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctMjgtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnPTMzPWNvbmZpZyBNTFhTV19QQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTM0LVxcdHRyaXN0YXRlIFxcXCJQQ0kgYnVzIGltcGxlbWVudGF0aW9uIGZvciBNZWxsYW5veCBUZWNobm9sb2dpZXMgU3dpdGNoIEFTSUNzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6MzU6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IE1MWFNXX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTM2LVxcdHNlbGVjdCBQQUdFX1BPT0xcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9NDQ9Y29uZmlnIE1MWFNXX0kyQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctNDUtXFx0dHJpc3RhdGUgXFxcIkkyQyBidXMgaW1wbGVtZW50YXRpb24gZm9yIE1lbGxhbm94IFRlY2hub2xvZ2llcyBTd2l0Y2ggQVNJQ3NcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo0NjpcXHRkZXBlbmRzIG9uIEkyQyBcXHUwMDI2XFx1MDAyNiBNTFhTV19DT1JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy00Ny1cXHRkZWZhdWx0IG1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc9NTQ9Y29uZmlnIE1MWFNXX1NQRUNUUlVNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy01NS1cXHR0cmlzdGF0ZSBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIFNwZWN0cnVtIGZhbWlseSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NTY6XFx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFxcdTAwMjZcXHUwMDI2IE1MWFNXX1BDSSBcXHUwMDI2XFx1MDAyNiBORVRfU1dJVENIREVWIFxcdTAwMjZcXHUwMDI2IFZMQU5fODAyMVFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU3OlxcdGRlcGVuZHMgb24gUFNBTVBMRSB8fCBQU0FNUExFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjU4OlxcdGRlcGVuZHMgb24gQlJJREdFIHx8IEJSSURHRT1uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo1OTpcXHRkZXBlbmRzIG9uIE5FVF9JUEdSRSB8fCBORVRfSVBHUkU9blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6NjA6XFx0ZGVwZW5kcyBvbiBJUFY2X0dSRSB8fCBJUFY2X0dSRT1uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZzo2MTpcXHRkZXBlbmRzIG9uIFZYTEFOIHx8IFZYTEFOPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnOjYyOlxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTYzLVxcdHNlbGVjdCBHRU5FUklDX0FMTE9DQVRPUlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz03NT1jb25maWcgTUxYU1dfU1BFQ1RSVU1fRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZy03Ni1cXHRib29sIFxcXCJEYXRhIENlbnRlciBCcmlkZ2luZyAoRENCKSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6Nzc6XFx0ZGVwZW5kcyBvbiBNTFhTV19TUEVDVFJVTSBcXHUwMDI2XFx1MDAyNiBEQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnLTc4LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZz04Mz1jb25maWcgTUxYU1dfTUlOSU1BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODQtXFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBtaW5pbWFsIEkyQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWc6ODU6XFx0ZGVwZW5kcyBvbiBNTFhTV19DT1JFIFxcdTAwMjZcXHUwMDI2IE1MWFNXX0kyQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L0tjb25maWctODYtXFx0ZGVmYXVsdCBtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDE2OjI1OjU2LjUyOTExNzkyOVoiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzQ3OTAzMTAwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWZpbmluZyB0aGUgU3l6a2FsbGVyIEZ1enppbmcgQ29uZmlndXJhdGlvbiBmb3IgUENJIERyaXZlciBDaGFuZ2VzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBnb2FsIGlzIHRvIGNvbmZpZ3VyZSBTeXprYWxsZXIgZWZmZWN0aXZlbHkgdG8gdGFyZ2V0IHRoZSByZWNlbnQgY2hhbmdlcyBpbiB0aGUgUENJIGRyaXZlciBjb2RlLiBJJ3ZlIGdvdCB0byBjb25zaWRlciB0aGUgZGVwZW5kZW5jaWVzLCBhZmZlY3RlZCBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBmdXp6aW5nIHN0cmF0ZWd5LlxuXG5GaXJzdCwgSSBzZWUgdGhlIGNvcmUgY29tcG9uZW50czogYE1MWFNXX0NPUkVgIGhhcyBubyBkZXBlbmRlbmNpZXMsIGJ1dCBgTUxYU1dfUENJYCBkZXBlbmRzIG9uIGBQQ0lgLCBgSEFTX0lPTUVNYCwgYW5kIGBNTFhTV19DT1JFYC4gV2UncmUgYWxzbyBkZWFsaW5nIHdpdGggdGhlc2UgY29uZmlnIG9wdGlvbnM6IGBBVEFfR0VORVJJQ2AsIGBJUEFDS19CVVNgLCBgQk9BUkRfVFBDSTIwMGAsIGFuZCBgU0NTSV9OU1AzMmAuIFRoZSBgU0NTSV9OU1AzMmAgbW9kdWxlIGlzIGxpa2VseSB0byBiZSBpZ25vcmVkIG9uIDY0LWJpdCBrZXJuZWxzLCB3aGljaCBTeXprYWxsZXIgdXNlcywgYmVjYXVzZSBvZiB0aGUgYCE2NEJJVGAgZGVwZW5kZW5jeSwgYnV0IHRoYXQncyBmaW5lLlxuXG5JIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uIG9uIHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgYWZmZWN0ZWQgYnkgdGhlIHBhdGNoLiBUaGUgY29yZSBjaGFuZ2VzIGFyZSBpbiBgZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jYCwgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gaG93IFBDSSBkZXZpY2UgSURzIGFyZSBoYW5kbGVkIGR1cmluZyBwcm9iaW5nLiBJbml0aWFsbHksIEkgaWRlbnRpZmllZCB0aGVzZSBmdW5jdGlvbnM6IGBkb19wY2lfYWRkX2R5bmlkYCwgYHBjaV9hZGRfZHluaWRgLCBgZG9fcGNpX21hdGNoX2lkYCwgYHBjaV9tYXRjaF9pZGAsIGBwY2lfbWF0Y2hfZGV2aWNlYCwgYG5ld19pZF9zdG9yZWAsIGBfX3BjaV9kZXZpY2VfcHJvYmVgLCBhbmQgYHBjaV9idXNfbWF0Y2hgLiBUaGUgbW9kaWZpZWQgZHJpdmVyIHByb2JlIGZ1bmN0aW9ucyBhcmUgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLlxuXG5Ob3csIFN5emthbGxlciBjYW4gaGFuZGxlIHN0YXRpYyBmdW5jdGlvbnMgaWYgdGhleSdyZSB1bmlxdWVseSBpZGVudGlmaWFibGUsIGFuZCB0aGF0J3Mga2V5LiBTbywgSSBwbGFuIHRvIGluY2x1ZGUgYWxsIG9mIHRoZXNlIGluIGBGb2N1c1N5bWJvbHNgOiBgcGNpX2FkZF9keW5pZGAsIGBuZXdfaWRfc3RvcmVgLCBgcGNpX21hdGNoX2RldmljZWAsIGBfX3BjaV9kZXZpY2VfcHJvYmVgLCBgYXRhX2dlbmVyaWNfaW5pdF9vbmVgLCBgdHBjaTIwMF9wY2lfcHJvYmVgLCBgbWx4c3dfcGNpX3Byb2JlYCwgYW5kIGBuc3AzMl9wcm9iZWAuXG5cbkkgdW5kZXJzdGFuZCB0aGUgZHluYW1pY3MuIFdoaWxlIGBwY2lfbWF0Y2hfZGV2aWNlYCBpcyBjYWxsZWQgZnJlcXVlbnRseSwgaXQncyBkdXJpbmcgZGV2aWNlIHByb2JlLCB3aGljaCBpc24ndCBhIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2sgYnV0IHN0aWxsIGEgY3JpdGljYWwgYXJlYS4gYG5ld19pZF9zdG9yZWAgaXMgcmVsZXZhbnQgYmVjYXVzZSBpdCdzIGNhbGxlZCB3aGVuIHdyaXRpbmcgdG8gdGhlIHN5c2ZzIGBuZXdfaWRgLiBBbmQgYHBjaV9hZGRfZHluaWRgIGlzIGFsc28gaW1wb3J0YW50LCBhcyBpdCdzIGNhbGxlZCBieSBgbmV3X2lkX3N0b3JlYCBhbmQgb3RoZXIgZHJpdmVycy5cblxuVG8gZW5zdXJlIEkgaGF2ZSB0aGUgZXhhY3QgbmFtZXMsIEkndmUgZG91YmxlLWNoZWNrZWQgdGhlbTogYGRvX3BjaV9hZGRfZHluaWRgLCBgcGNpX2FkZF9keW5pZGAsIGBkb19wY2lfbWF0Y2hfaWRgLCBgcGNpX21hdGNoX2lkYCwgYHBjaV9tYXRjaF9kZXZpY2VgLCBgbmV3X2lkX3N0b3JlYCwgYF9fcGNpX2RldmljZV9wcm9iZWAsIGBwY2lfYnVzX21hdGNoYCwgYGF0YV9nZW5lcmljX2luaXRfb25lYCwgYHRwY2kyMDBfcGNpX3Byb2JlYCwgYG1seHN3X3BjaV9wcm9iZWAsIGFuZCBgbnNwMzJfcHJvYmVgLlxuXG5Pa2F5LCBJJ20gcmVmaW5pbmcgdGhlIGxpc3QuIFdlIHdhbnQgdGhlIG9uZXMgZGlyZWN0bHkgbGlua2VkIHRvIHRoZSBjaGFuZ2VkIGJlaGF2aW9yIG9yIHRoZSBhZmZlY3RlZCBkcml2ZXJzOiBgbmV3X2lkX3N0b3JlYCwgYGRvX3BjaV9hZGRfZHluaWRgLCBgcGNpX21hdGNoX2RldmljZWAsIGBfX3BjaV9kZXZpY2VfcHJvYmVgLCBgYXRhX2dlbmVyaWNfaW5pdF9vbmVgLCBgdHBjaTIwMF9wY2lfcHJvYmVgLCBgbWx4c3dfcGNpX3Byb2JlYCwgYW5kIGBuc3AzMl9wcm9iZWAuIEknbGwga2VlcCBgcGNpX21hdGNoX2RldmljZWAgaW4gdGhlIGZvY3VzIGxpc3QgYmVjYXVzZSBpdCdzIGF0IHRoZSBjb3JlIG9mIGRldmljZSBtYXRjaGluZyB3aGljaCBpcyB3aGF0IHRoaXMgcGF0Y2ggaXMgYWJvdXQuXG5cbkZpbmFsbHksIEkgY29uZmlybWVkIGZ1bmN0aW9uIHNpZ25hdHVyZXMgYW5kIHRoZSBvdmVyYWxsIGdvYWwgb2YgdGhlIHBhdGNoOiB0byBhZGRyZXNzIFBDSSBkZXZpY2UgSUQgbWFuYWdlbWVudCwgYW5kIHNwZWNpZmljYWxseSBob3cgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGBwY2lfZGV2aWNlX2lkYCBzdHJ1Y3R1cmVzIGFyZSBoYW5kbGVkIGR1cmluZyBwcm9iZS4gVGhpcyBtZWFucyBmdXp6aW5nIHRoZSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSwgdGhlIGNvcmUgUENJIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljLCBhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBvZiB0aG9zZSBtb2RpZmllZCBkcml2ZXJzIGlzIGNydWNpYWwuXG5cbk5vdywgbGV0IG1lIG1ha2Ugc3VyZSBhbGwgZGVwZW5kZW5jaWVzIGFyZSBoYW5kbGVkLiBJJ20gbGlzdGluZyBgQVRBX0dFTkVSSUNgLCBgSVBBQ0tfQlVTYCwgYEJPQVJEX1RQQ0kyMDBgLCBgTUxYU1dfQ09SRWAsIGBNTFhTV19QQ0lgLCBhbmQgYFNDU0lfTlNQMzJgIHRvIHRoZSBjb25maWd1cmF0aW9uLiBgQVRBYCBtaWdodCBiZSBuZWVkZWQgZm9yIGBBVEFfR0VORVJJQ2AgYW5kIGl0IGlzIGEgbWVudWNvbmZpZywgYXMgaXMgYElQQUNLX0JVU2AuIGBNTFhTV19DT1JFYCwgYE1MWFNXX1BDSWAgYW5kIGBTQ1NJX05TUDMyYCBhcmUgdHJpc3RhdGVzLlxuXG5XaXRoIGFsbFxuXG4iLCJJbnB1dFRva2VucyI6NTMxNjQsIk91dHB1dFRva2VucyI6MjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQxNjoyNjoxNC4wMDgxNTUxODdaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzg5MDcwMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUQV9HRU5FUklDXCIsXG4gICAgXCJJUEFDS19CVVNcIixcbiAgICBcIkJPQVJEX1RQQ0kyMDBcIixcbiAgICBcIk1MWFNXX0NPUkVcIixcbiAgICBcIk1MWFNXX1BDSVwiLFxuICAgIFwiU0NTSV9OU1AzMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ld19pZF9zdG9yZVwiLFxuICAgIFwiZG9fcGNpX2FkZF9keW5pZFwiLFxuICAgIFwicGNpX21hdGNoX2RldmljZVwiLFxuICAgIFwiX19wY2lfZGV2aWNlX3Byb2JlXCIsXG4gICAgXCJhdGFfZ2VuZXJpY19pbml0X29uZVwiLFxuICAgIFwidHBjaTIwMF9wY2lfcHJvYmVcIixcbiAgICBcIm1seHN3X3BjaV9wcm9iZVwiLFxuICAgIFwibnNwMzJfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBQQ0kgZGV2aWNlIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzIHdpdGggZHluYW1pYyBQQ0kgSURzLiBJdCBhbGxvY2F0ZXMgdGhlIG1hdGNoZWQgYHBjaV9kZXZpY2VfaWRgIG9uIHRoZSBzdGFjayBkdXJpbmcgcHJvYmUgYW5kIHVwZGF0ZXMgc2V2ZXJhbCBkcml2ZXJzIHRoYXQgcHJldmlvdXNseSBzYXZlZCB0aGlzIHBvaW50ZXIgdG8gcHJldmVudCBzdGFjayB1c2UtYWZ0ZXItZnJlZS4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIFBDSSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSAoYG5ld19pZF9zdG9yZWApLCB0aGUgUENJIG1hdGNoaW5nL3Byb2JpbmcgbG9naWMsIGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIG9mIHRoZSBtb2RpZmllZCBkcml2ZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkFUQV9HRU5FUklDXCIsXG4gICAgXCJJUEFDS19CVVNcIixcbiAgICBcIkJPQVJEX1RQQ0kyMDBcIixcbiAgICBcIk1MWFNXX0NPUkVcIixcbiAgICBcIk1MWFNXX1BDSVwiLFxuICAgIFwiU0NTSV9OU1AzMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ld19pZF9zdG9yZVwiLFxuICAgIFwiZG9fcGNpX2FkZF9keW5pZFwiLFxuICAgIFwicGNpX21hdGNoX2RldmljZVwiLFxuICAgIFwiX19wY2lfZGV2aWNlX3Byb2JlXCIsXG4gICAgXCJhdGFfZ2VuZXJpY19pbml0X29uZVwiLFxuICAgIFwidHBjaTIwMF9wY2lfcHJvYmVcIixcbiAgICBcIm1seHN3X3BjaV9wcm9iZVwiLFxuICAgIFwibnNwMzJfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBQQ0kgZGV2aWNlIG1hdGNoaW5nIGFuZCBwcm9iaW5nIGxvZ2ljIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzIHdpdGggZHluYW1pYyBQQ0kgSURzLiBJdCBhbGxvY2F0ZXMgdGhlIG1hdGNoZWQgYHBjaV9kZXZpY2VfaWRgIG9uIHRoZSBzdGFjayBkdXJpbmcgcHJvYmUgYW5kIHVwZGF0ZXMgc2V2ZXJhbCBkcml2ZXJzIHRoYXQgcHJldmlvdXNseSBzYXZlZCB0aGlzIHBvaW50ZXIgdG8gcHJldmVudCBzdGFjayB1c2UtYWZ0ZXItZnJlZS4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIFBDSSBkeW5hbWljIElEIHN5c2ZzIGludGVyZmFjZSAoYG5ld19pZF9zdG9yZWApLCB0aGUgUENJIG1hdGNoaW5nL3Byb2JpbmcgbG9naWMsIGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIG9mIHRoZSBtb2RpZmllZCBkcml2ZXJzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[1] Phase: Succeeded StartedAt: 2026-06-30 16:26:25 +0000 UTC FinishedAt: 2026-06-30 16:26:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-30 16:26:25 +0000 UTC FinishedAt: 2026-06-30 16:26:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2] Phase: Running StartedAt: 2026-06-30 16:26:25 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN) Phase: Running StartedAt: 2026-06-30 16:26:25 +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":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-30 16:26:25 +0000 UTC FinishedAt: 2026-06-30 16:26:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-30 16:26:25 +0000 UTC FinishedAt: 2026-06-30 16:26:31 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowkhf8h/series-workflowkhf8h-convert-artifact-3174583266/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-30 16:26:35 +0000 UTC FinishedAt: 2026-06-30 17:04:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-30 16:26:35 +0000 UTC FinishedAt: 2026-06-30 17:04:53 +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:*ba9f0e33-eb5c-4fe7-a3e8-035fa9cef6ca,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-workflowkhf8h/series-workflowkhf8h-convert-artifact-3174583266/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": "f0b16275-3497-4261-8865-a058302c8e90", "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-workflowkhf8h/series-workflowkhf8h-build-action-3433276320/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-30 16:26:35 +0000 UTC FinishedAt: 2026-06-30 17:04:43 +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:*ba9f0e33-eb5c-4fe7-a3e8-035fa9cef6ca,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-workflowkhf8h/series-workflowkhf8h-convert-artifact-3174583266/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": "f0b16275-3497-4261-8865-a058302c8e90", "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-workflowkhf8h/series-workflowkhf8h-build-action-3433276320/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-30 17:04:53 +0000 UTC FinishedAt: 2026-06-30 17:04:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-30 17:04:53 +0000 UTC FinishedAt: 2026-06-30 17:04:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-30 17:04:53 +0000 UTC FinishedAt: 2026-06-30 17:05:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-30 17:04:53 +0000 UTC FinishedAt: 2026-06-30 17:05:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowkhf8h/series-workflowkhf8h-convert-artifact-1386495805/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-30 17:05:14 +0000 UTC FinishedAt: 2026-06-30 17:07:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-30 17:05:14 +0000 UTC FinishedAt: 2026-06-30 17:07:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f0b16275-3497-4261-8865-a058302c8e90,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-workflowkhf8h/series-workflowkhf8h-build-action-3433276320/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-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-30 17:07:19 +0000 UTC FinishedAt: 2026-06-30 17:07:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-30 17:07:19 +0000 UTC FinishedAt: 2026-06-30 17:07:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-30 17:07:19 +0000 UTC FinishedAt: 2026-06-30 17:39:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-30 17:07:19 +0000 UTC FinishedAt: 2026-06-30 17:39:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*ba9f0e33-eb5c-4fe7-a3e8-035fa9cef6ca,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-workflowkhf8h/series-workflowkhf8h-convert-artifact-1386495805/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": "7a4d9c09-d6c7-4813-99b9-f7f524fb81cc", "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-workflowkhf8h/series-workflowkhf8h-build-action-2809323161/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-30 17:07:19 +0000 UTC FinishedAt: 2026-06-30 17:38:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*ba9f0e33-eb5c-4fe7-a3e8-035fa9cef6ca,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-workflowkhf8h/series-workflowkhf8h-convert-artifact-1386495805/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": "7a4d9c09-d6c7-4813-99b9-f7f524fb81cc", "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-workflowkhf8h/series-workflowkhf8h-build-action-2809323161/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-30 17:39:09 +0000 UTC FinishedAt: 2026-06-30 17:39:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-30 17:39:09 +0000 UTC FinishedAt: 2026-06-30 17:39:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8] Phase: Running StartedAt: 2026-06-30 17:39:09 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkhf8h[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["new_id_store","do_pci_add_dynid","pci_match_device","__pci_device_probe","ata_generic_init_one","tpci200_pci_probe","mlxsw_pci_probe","nsp32_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["ATA_GENERIC","IPACK_BUS","BOARD_TPCI200","MLXSW_CORE","MLXSW_PCI","SCSI_NSP32"],"series_id":"b51dbecc-2814-4cc3-a001-55d71d0cb75d","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Running StartedAt: 2026-06-30 17:39:09 +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:*7a4d9c09-d6c7-4813-99b9-f7f524fb81cc,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-workflowkhf8h/series-workflowkhf8h-build-action-2809323161/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil