Name: series-workflowp68bp Phase: Failed StartedAt: 2026-07-26 11:14:31 +0000 UTC FinishedAt: 2026-07-26 11:38:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp68bp[0] Phase: Succeeded StartedAt: 2026-07-26 11:14:31 +0000 UTC FinishedAt: 2026-07-26 11:38:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp68bp[0].run-triage Phase: Succeeded StartedAt: 2026-07-26 11:14:31 +0000 UTC FinishedAt: 2026-07-26 11:38:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBicmNtZl9jeXdfbWdtdF90eGAgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgd2lyZWxlc3MgZHJpdmVyIChgYnJjbWZtYWNgKS4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHJlZ2lzdGVyZWQgYXMgYSBjZmc4MDIxMSBvcGVyYXRpb24gZm9yIGRldmljZXMgd2l0aCB0aGUgYEJSQ01GX0ZXVkVORE9SX0NZV2AgZmlybXdhcmUgdmVuZG9yIElELiBBIHJldmlldyBvZiB0aGUgZHJpdmVyJiMzOTtzIGJ1cyBpbXBsZW1lbnRhdGlvbnMgc2hvd3MgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBvbmx5IGFzc2lnbmVkIHRvIHNwZWNpZmljIFBDSWUgYW5kIFNESU8gZGV2aWNlcywgd2hpbGUgYWxsIFVTQiBkZXZpY2VzIGRlZmF1bHQgdG8gYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFNpbmNlIHN0YW5kYXJkIFFFTVUvc3l6a2FsbGVyIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIG9yIFNESU8gd2lyZWxlc3MgaGFyZHdhcmUsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDJlNzAyMDIxNDI2M2U1NGRhNDk5ZmI3NzJmNGIwMDU1NjNlNWZkMTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAyNiAxMTozNjoxNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXG5pbmRleCBjZTA5ZDQ0ZmE3M2NmOC4uNTMwZjAxMjZlM2E3NzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNcbkBAIC0yMyw2ICYjNDM7MjMsOCBAQFxuICNkZWZpbmUgTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUVcdDQwMDBcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9XQUlUX1RJTUVcdChNR01UX0FVVEhfRlJBTUVfRFdFTExfVElNRSAmIzQzOyAxMDApXG4gXG4mIzQzO3N0YXRpYyBhdG9taWNfdCBicmNtZl9jeXdfbWdtdF90eF9pZCA9IEFUT01JQ19JTklUKDApO1xuJiM0MztcbiBzdGF0aWMgaW50IGJyY21mX2N5d19zZXRfc2FlX3B3ZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdFx0XHRcdCBzdHJ1Y3QgY2ZnODAyMTFfY3J5cHRvX3NldHRpbmdzICpjcnlwdG8pXG4ge1xuQEAgLTEyMyw3ICYjNDM7MTI1LDcgQEAgaW50IGJyY21mX2N5d19tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4gXHRpZiAoIWllZWU4MDIxMV9pc19hdXRoKG1nbXQtXHUwMDNlZnJhbWVfY29udHJvbCkpXG4gXHRcdHJldHVybiBicmNtZl9jZmc4MDIxMV9tZ210X3R4KHdpcGh5LCB3ZGV2LCBwYXJhbXMsIGNvb2tpZSk7XG4gXG4tXHQqY29va2llID0gMDtcbiYjNDM7XHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXHUwMDI2YnJjbWZfY3l3X21nbXRfdHhfaWQpO1xuIFx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xuIFxuIFx0cmVpbml0X2NvbXBsZXRpb24oXHUwMDI2dmlmLVx1MDAzZW1nbXRfdHgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlciYjMzk7cyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyZTcwMjAyMTQyNjNlNTRkYTQ5OWZiNzcyZjRiMDA1NTYzZTVmZDEzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMjYgMTE6MzY6MTYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jCmluZGV4IGNlMDlkNDRmYTczY2Y4Li41MzBmMDEyNmUzYTc3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMKQEAgLTIzLDYgJiM0MzsyMyw4IEBACiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9EV0VMTF9USU1FCTQwMDAKICNkZWZpbmUgTUdNVF9BVVRIX0ZSQU1FX1dBSVRfVElNRQkoTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUUgJiM0MzsgMTAwKQogCiYjNDM7c3RhdGljIGF0b21pY190IGJyY21mX2N5d19tZ210X3R4X2lkID0gQVRPTUlDX0lOSVQoMCk7CiYjNDM7CiBzdGF0aWMgaW50IGJyY21mX2N5d19zZXRfc2FlX3B3ZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwKIAkJCQkgc3RydWN0IGNmZzgwMjExX2NyeXB0b19zZXR0aW5ncyAqY3J5cHRvKQogewpAQCAtMTIzLDcgJiM0MzsxMjUsNyBAQCBpbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwKIAlpZiAoIWllZWU4MDIxMV9pc19hdXRoKG1nbXQtJmd0O2ZyYW1lX2NvbnRyb2wpKQogCQlyZXR1cm4gYnJjbWZfY2ZnODAyMTFfbWdtdF90eCh3aXBoeSwgd2RldiwgcGFyYW1zLCBjb29raWUpOwogCi0JKmNvb2tpZSA9IDA7CiYjNDM7CSpjb29raWUgPSBhdG9taWNfaW5jX3JldHVybigmYW1wO2JyY21mX2N5d19tZ210X3R4X2lkKTsKIAl2aWYgPSBjb250YWluZXJfb2Yod2Rldiwgc3RydWN0IGJyY21mX2NmZzgwMjExX3ZpZiwgd2Rldik7CiAKIAlyZWluaXRfY29tcGxldGlvbigmYW1wO3ZpZi0mZ3Q7bWdtdF90eCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjEKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAyNzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoIGZvciBWaXJ0dWFsaXplZCBUZXN0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNgLiBJdCBzZWVtcyB0byBiZSBjaGFuZ2luZyBob3cgYGJyY21mX2N5d19tZ210X3R4YCBhc3NpZ25zIGEgYGNvb2tpZWAuIEluc3RlYWQgb2YgdGhlIGhhcmRjb2RlZCAwLCB0aGV5JiMzOTtyZSB1c2luZyBhbiBhdG9taWMgY291bnRlciwgYGJyY21mX2N5d19tZ210X3R4X2lkYC4gVGhhdCYjMzk7cyBhIHNlbnNpYmxlIGltcHJvdmVtZW50IGZvciBhdm9pZGluZyBwb3RlbnRpYWwgY29sbGlzaW9ucywgYnV0IHRoZSBxdWVzdGlvbiBpcywgaG93IGVhc2lseSBjYW4gSSB0ZXN0IHRoaXMgcGF0Y2ggaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8KCkl0JiMzOTtzIHRoZSBgYnJjbWZtYWNgIEJyb2FkY29tIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggbWVhbnMgSSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyBoYXJkd2FyZSBpcyB0eXBpY2FsbHkgZW11bGF0ZWQuIFN0YW5kYXJkIFFFTVUgZG9lc24mIzM5O3QgdXN1YWxseSBlbXVsYXRlIHBoeXNpY2FsIFdpLUZpIGhhcmR3YXJlIGRpcmVjdGx5LiAqYnJjbWZtYWMqLi4uIGlzIGl0IGV2ZW4gZW11bGF0ZWQ/IE5vLCBpdCYjMzk7cyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBJIGtub3cgaXMuIFRoaXMgYGJyY21mbWFjYCBkcml2ZXIgaXMgYSBGdWxsTUFDIGltcGxlbWVudGF0aW9uIGZvciBCcm9hZGNvbSBjaGlwcywgd2hpY2ggbWVhbnMgU0RJTywgUENJZSwgYW5kIFVTQi4KClNvLCBob3cgZG8gSSBnZXQgdGhpcyBydW5uaW5nIGluIGEgdmlydHVhbCBtYWNoaW5lPyBDYW4gSSBlbXVsYXRlIFVTQiBCcm9hZGNvbSBkZXZpY2VzIHVzaW5nIFVTQiBnYWRnZXQgdGVjaG5pcXVlcz8gUG9zc2libHksIGJ1dCBTeXprYWxsZXIgdXN1YWxseSBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYCBvciBgdmhjaWAgZm9yIFVTQiB0ZXN0aW5nLiBCdXQgd2hhdCBhYm91dCBmdXp6aW5nPyBTeXprYWxsZXIgc3VwcG9ydHMgVVNCIGZ1enppbmcgdGhyb3VnaCBgZHVtbXlfaGNkYCwgc28gSSBuZWVkIHRvIHNlZSBpZiBgYnJjbWZtYWNgIGFjdHVhbGx5ICpoYXMqIFVTQiBzdXBwb3J0LiBUaGF0JiMzOTtzIHRoZSBuZXh0IGNyaXRpY2FsIHN0ZXAuIEkgbmVlZCB0byBjb25maXJtIGlmIHRoaXMgZHJpdmVyIGNhbiBiZSB0YXJnZXRlZCB2aWEgVVNCLCBhbmQgaWYgc28sIGhvdyBmZWFzaWJsZSBpdCBpcyB0byBzZXQgdXAgYSB0ZXN0IGVudmlyb25tZW50IHRoYXQgZXhwbG9pdHMgdGhlIGBkdW1teV9oY2RgIHN1cHBvcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfY3l3X21nbXRfdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MjY6c3RhdGljIGF0b21pY190IGJyY21mX2N5d19tZ210X3R4X2lkID0gQVRPTUlDX0lOSVQoMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0xMDM9c3RhdGljXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMDQ6aW50IGJyY21mX2N5d19tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMDUtXHRcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9tZ210X3R4X3BhcmFtcyAqcGFyYW1zLCB1NjQgKmNvb2tpZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMjg6XHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXHUwMDI2YnJjbWZfY3l3X21nbXRfdHhfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI5LVx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTIzND1zdGF0aWMgdm9pZCBicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wcyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjM1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjIzNjpcdGRydnItXHUwMDNlb3BzLVx1MDAzZW1nbXRfdHggPSBicmNtZl9jeXdfbWdtdF90eDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNy1cdGRydnItXHUwMDNlb3BzLVx1MDAzZWV4dGVybmFsX2F1dGggPSBicmNtZl9jeXdfZXh0ZXJuYWxfYXV0aDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjkxCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKkludmVzdGlnYXRpbmcgYnJjbWZtYWMgVVNCIENhcGFiaWxpdGllcyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gYXNjZXJ0YWluIGlmIHRoZSBgYnJjbWZtYWNgIGRyaXZlciBoYXMgYW55IGJ1aWx0LWluIFVTQiBzdXBwb3J0LiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwLiBJIG5lZWQgdG8ga25vdyBpZiB0aGlzIGlzIGV2ZW4gYSB2aWFibGUgYXZlbnVlIHRvIGV4cGxvcmUgYmVmb3JlIEkgc3BlbmQgdG9vIG11Y2ggdGltZSBkaWdnaW5nIGludG8gb3RoZXIgcG9zc2liaWxpdGllcyBvciBhbHRlcm5hdGl2ZSBkcml2ZXIgYXBwcm9hY2hlcy4gVW5kZXJzdGFuZGluZyB0aGUgZHJpdmVyJiMzOTtzIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlIGFuZCBoYXJkd2FyZSBzdXBwb3J0LCBlc3BlY2lhbGx5IGNvbmNlcm5pbmcgZGlmZmVyZW50IGludGVyZmFjZSB0eXBlcywgd2lsbCBkaWN0YXRlIG15IG5leHQgYWN0aW9ucy4gS25vd2luZyB0aGlzIHdpbGwgc3RyZWFtbGluZSBteSBhcHByb2FjaCBzaWduaWZpY2FudGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX3VzYl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODkxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKkRlYnVnZ2luZyB0aGUgYnJjbWZtYWMgTW9kdWxlIEluaXRpYWxpemF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgYnJjbWZtYWNgIHNpdHVhdGlvbi4gTXkgZmlyc3Qgc3RlcCBpcyB0byBxdWlja2x5IHplcm8gaW4gb24gaG93IHRoaXMgbW9kdWxlIGlzIGJlaW5nIGluaXRpYWxpemVkIGFuZCBob3cgaXQgaW50ZWdyYXRlcyB3aXRoIHRoZSBVU0Igc3Vic3lzdGVtLCBpZiBhdCBhbGwuIE15IGluaXRpYWwgaHVuY2ggaXMgdG8gbG9vayBmb3IgdGhlIGtleSByZWdpc3RyYXRpb24gcG9pbnRzLiBTbywgSSBuZWVkIHRvIGNoZWNrIGZvciB0aGUgdGVsbHRhbGUgc2lnbnM6IEkmIzM5O20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZSBmb3IgY2FsbHMgdG8gYHVzYl9yZWdpc3RlcmAgLSB0aGF0IHdpbGwgYmUgY3JpdGljYWwgaWYgaXQmIzM5O3Mgb3BlcmF0aW5nIG9uIGEgVVNCIGludGVyZmFjZSAtIG9yLCBpZiBpdCYjMzk7cyBtb3JlIHNlbGYgY29udGFpbmVkLCB0aGUgbW9yZSBnZW5lcmljIGBtb2R1bGVfaW5pdGAuIFRoZXNlIGFyZSB0aGUgYnJlYWRjcnVtYnMgSSYjMzk7bSBsb29raW5nIGZvciB0byB1bmRlcnN0YW5kIHdoZXJlIHRvIHN0YXJ0IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgd2hhdCB0aGUgY29yZSBlbnRyeSBwb2ludHMgYXJlLiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludCBhbmQgdGhlIFVTQiBpbnRlcmZhY2UuIEZyb20gdGhlcmUgSSBjYW4gdW5kZXJzdGFuZCB0aGUgdW5kZXJseWluZyBpc3N1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1c2JfcmVnaXN0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0zMjc9dm9pZCBicmNtZl91c2JfZXhpdCh2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozMjg6aW50IGJyY21mX3VzYl9yZWdpc3Rlcih2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zMjktI2Vsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0zMzA9c3RhdGljIGlubGluZSB2b2lkIGJyY21mX3VzYl9leGl0KHZvaWQpIHsgfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjMzMTpzdGF0aWMgaW5saW5lIGludCBicmNtZl91c2JfcmVnaXN0ZXIodm9pZCkgeyByZXR1cm4gMDsgfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTMzMi0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTE1NDY9aW50IF9faW5pdCBicmNtZl9jb3JlX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTE1NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NTQ6XHRlcnIgPSBicmNtZl91c2JfcmVnaXN0ZXIoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTU1NS1cdGlmIChlcnIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NTY6XHRcdGdvdG8gZXJyb3JfdXNiX3JlZ2lzdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTU3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTU2NC1cdGJyY21mX3VzYl9leGl0KCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NjU6ZXJyb3JfdXNiX3JlZ2lzdGVyOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTY2LVx0YnJjbWZfc2Rpb19leGl0KCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1ODY9dm9pZCBicmNtZl91c2JfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE2MDA6aW50IGJyY21mX3VzYl9yZWdpc3Rlcih2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDItXHRicmNtZl9kYmcoVVNCLCBcJiMzNDtFbnRlclxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTYwMzpcdHJldHVybiB1c2JfcmVnaXN0ZXIoXHUwMDI2YnJjbWZfdXNiZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTYwNC19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTAzOAoJCQkJCQkJb3V0cHV0OiA1OQoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgYnJjbWZtYWNgIERyaXZlciB2aWEgVVNCKioKCk9rYXksIHNvIHRoZSBgYnJjbWZtYWNgIGRyaXZlciwgaHVoPyBJIGp1c3QgcmVhbGl6ZWQgaXQgaGFzIFVTQiBzdXBwb3J0IOKAkyB0aGF0JiMzOTtzIHBvdGVudGlhbGx5IGdyZWF0IG5ld3MgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gcHJvYmFibHkgZ2V0IGF0IGl0IHdpdGggYSBgZHVtbXlfaGNkYC4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIHdlIHJlYWNoIGBicmNtZl9jeXdfbWdtdF90eGAgdmlhIHRoaXMgVVNCIGludGVyZmFjZT8gVGhhdCBmdW5jdGlvbiBpbiBwYXJ0aWN1bGFyLCBiZWNhdXNlIEkga25vdyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBwYXRjaCBpcy4KClJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgbW9kaWZ5aW5nIGBicmNtZl9jeXdfbWdtdF90eGAsIGFuZCB0aGF0JiMzOTtzIHNpdHRpbmcgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jYC4gRXhjZWxsZW50LiBOb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGBicmNtZl9jeXdfbWdtdF90eGAgaXMgYWN0dWFsbHkgdXNlZC4gTmVlZCB0byB0cmFjZSBpdHMgY2FsbCBzaXRlcyB0byBmaWd1cmUgb3V0IGEgcGF0aCB0byB0cmlnZ2VyaW5nIGl0LiBMZXQmIzM5O3MgZGlnIGludG8gdGhhdCBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0yMDA9YnJjbWZfY3l3X2V4dGVybmFsX2F1dGgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyMzQ6c3RhdGljIHZvaWQgYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MzY4PWNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNzEtXHQuYWN0aXZhdGVfZXZlbnRzID0gYnJjbWZfY3l3X2FjdGl2YXRlX2V2ZW50cyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM3MjpcdC5nZXRfY2ZnODAyMTFfb3BzID0gYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNzMtXHQucmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMgPSBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4NTkKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGNvZGUuCgoqKkludmVzdGlnYXRpbmcgYnJjbWZfY3l3X29wcyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHNjb3BlIG9mIGBicmNtZl9jeXdfb3BzYC4gTXkgZmlyc3Qgc3RlcCwgbmF0dXJhbGx5LCBpcyB0byB0cmFjZSBpdHMgdXNhZ2UuIEkmIzM5O2xsIG5lZWQgdG8gc2VlIHByZWNpc2VseSB3aGVyZSB0aGlzIHN0cnVjdHVyZSBpcyBiZWluZyByZWZlcmVuY2VkIHdpdGhpbiB0aGUgY29kZWJhc2UuIFVuZGVyc3RhbmRpbmcgaXRzIGNvbm5lY3Rpb25zIGlzIGNydWNpYWwgdG8gZ3Jhc3BpbmcgaXRzIGZ1bmN0aW9uIGFuZCBpbXBvcnRhbmNlIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEkmIzM5O2xsIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gZGV0ZXJtaW5lIGhvdyB0aGlzIG9iamVjdCBpcyBiZWluZyBlbXBsb3llZC4gS25vd2luZyB0aGUgY29udGV4dHMgd2lsbCBwYWludCBhIGJldHRlciBwaWN0dXJlLCBlc3BlY2lhbGx5IGluIHVuZGVyc3RhbmRpbmcgYW55IGRlcGVuZGVuY2llcyBvciBpbXBsaWNhdGlvbnMgb2YgaXRzIGNhbGxzIGFuZCB1c2FnZS4gSSYjMzk7bSBnb2luZyB0byBzdGFydCB3aXRoIGEgc3RyYWlnaHRmb3J3YXJkIHNlYXJjaCBhbmQgYnVpbGQgZnJvbSB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfY3l3X29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MzU2PXN0YXRpYyB2b2lkIGJyY21mX2N5d19yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM2ODpjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX2N5d19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNjktXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX2N5d19zZXRfc2FlX3B3ZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNC1cdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MTU6XHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX2N5d19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmgtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjk6I2RlZmluZSBDWVdfVk9QU1x0KFx1MDAyNmJyY21mX2N5d19vcHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC0xMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjY1NAoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIEkgZGVsdmUgaW50byB0aGlzIGNvZGU6CgoqKkFuYWx5emluZyB0aGUgQlJDTUYgRmlybXdhcmUgVmVuZG9yIFJlZ2lzdHJhdGlvbioqCgpPa2F5LCBzbyBJIHNlZSB0aGF0IGBicmNtZl9jeXdfb3BzYCBpcyByZWdpc3RlcmVkIGFzIHRoZSB2ZW5kb3Igb3BlcmF0aW9ucyBzdHJ1Y3R1cmUgZm9yIGBCUkNNRl9GV1ZFTkRPUl9DWVdgLiBUaGF0JiMzOTtzIHRoZSBjb3JlIG9mIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBmaXJtd2FyZSwgdHlpbmcgdGhlIG9wZXJhdGlvbnMgdG8gYSBzcGVjaWZpYyB2ZW5kb3IgSUQuIE5vdywgdGhlIHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQsIGdpdmVuIG15IHBhc3QgZXhwZXJpZW5jZSwgaXMsIGRvZXMgYEJSQ01GX0ZXVkVORE9SX0NZV2AgY292ZXIgdGhlIFVTQiBzaWRlIG9mIHRoaW5ncz8gSXMgdGhpcyB3aGVyZSBVU0IgZGV2aWNlcyBhcmUgaGFuZGxlZCBhcyB3ZWxsPyBUaW1lIHRvIGNvbmZpcm0uIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBgYnJjbWZfdXNiZHJ2cmAgbW9kdWxlIG9yLCBtb3JlIHNwZWNpZmljYWxseSwgdGhlIGBicmNtZl91c2JfcHJvYmVgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBiYWNrIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGUgdmVuZG9yIGFzc29jaWF0aW9uIGFwcGxpZXMgY29uc2lzdGVudGx5IGFjcm9zcyB0aGUgZGlmZmVyZW50IHVuZGVybHlpbmcgaGFyZHdhcmUgaW50ZXJmYWNlcyBzdXBwb3J0ZWQgYnkgdGhlIGJyb2FkY29tIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGBDWVdgIHZlbmRvciBJRCBhcHBsaWVzLCB3aGV0aGVyIGl0IGlzIFBDSSwgU0RJTyBvciBVU0IuIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSB0aGUgaW50ZXJhY3Rpb25zIGluIGVhY2ggb2YgdGhvc2UgcGF0aHMsIHRoZSBwcm9iZSBhbmQgdGhlIGZpcm13YXJlIGxvYWRpbmcsIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIGNvbnNpc3RlbnQgYW5kIGNvcnJlY3RseSBpbml0aWFsaXplZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7QlJDTUZfRldWRU5ET1JfQ1lXJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzQ9ZW51bSBicmNtZl9md3ZlbmRvciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMzUtXHRCUkNNRl9GV1ZFTkRPUl9XQ0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MzY6XHRCUkNNRl9GV1ZFTkRPUl9DWVcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMzctXHRCUkNNRl9GV1ZFTkRPUl9CQ0EsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0xOTY5LVx0fSBlbHNlIGlmIChzbWUtXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcdTAwMjYgTkw4MDIxMV9XUEFfVkVSU0lPTl8yKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlx0XHRpZiAoZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cdFx0ICAgIHNtZS1cdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjE0Olx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cdFx0XHRcdFx0ICAgXHUwMDI2YnJjbWZfY3l3X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfY3l3X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoyMDpcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDE2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnJjbWZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxNy1cdFtCUkNNRl9EUlZEQVRBX0NZV10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MTg6XHRcdC52ZW5kb3IgPSBCUkNNRl9GV1ZFTkRPUl9DWVcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTktXHRcdC5md19zZWVkID0gZmFsc2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTM2Olx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9DWVc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzctXHRkZWZhdWx0OlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTg3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSYjMzk7dmUgZGVzY3JpYmVkOgoKKipJbnZlc3RpZ2F0aW5nIEZpcm13YXJlIFZlbmRvciBVc2FnZSBBY3Jvc3MgRHJpdmVyIE1vZHVsZXMqKgoKUmlnaHQsIHNvIEkgc2VlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGJlaW5nIHV0aWxpemVkIHdpdGhpbiB0aGUgYHBjaWUuY2AgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGRvZXMgdGhpcyBzcGVjaWZpYyB2ZW5kb3IgSUQgYWxzbyBleHRlbmQgaXRzIHByZXNlbmNlIHRvIHRoZSBgdXNiLmNgIGFuZCBgc2Rpby5jYCBtb2R1bGVzIGFzIHdlbGw/IEl0JiMzOTtzIGEga2V5IHF1ZXN0aW9uIGJlY2F1c2UgY29uc2lzdGVuY3kgaW4gaG93IHdlIGhhbmRsZSBmaXJtd2FyZS1yZWxhdGVkIHZlbmRvciBpZGVudGlmaWVycyBhY3Jvc3MgdGhlIGJvYXJkIG1ha2VzIGZvciBhIGNsZWFuZXIsIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUgYmFzZS4KClRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ldGhvZGljYWxseSBjaGVjayBib3RoIGB1c2IuY2AgYW5kIGBzZGlvLmNgIGZvciBhbnkgYXBwZWFyYW5jZXMgb2YgZWl0aGVyIHRoZSBgZnd2aWRgIG9yIGB2ZW5kb3JgIHN5bWJvbHMuIFRoaXMgd2lsbCBnaXZlIG1lIGEgY29tcHJlaGVuc2l2ZSBwaWN0dXJlIG9mIGhvdyB0aGlzIHZlbmRvciBpbmZvcm1hdGlvbiBpcyB1c2VkLCBhbmQgbW9yZSBpbXBvcnRhbnRseSwgaWYgdGhlcmUgYXJlIGFueSBkaXNjcmVwYW5jaWVzIGluIGl0cyBpbXBsZW1lbnRhdGlvbiB0aGF0IG5lZWQgdG8gYmUgYWRkcmVzc2VkLiBBIHN5c3RlbWF0aWMgc3dlZXAgaXMgdGhlIG9ubHkgd2F5IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Z3dmlkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvTWFrZWZpbGU9MTM9YnJjbWZtYWMtb2JqcyAmIzQzOz0gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvTWFrZWZpbGUtMjItXHRcdGZpcm13YXJlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9NYWtlZmlsZToyMzpcdFx0Znd2aWQubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL01ha2VmaWxlLTI0LVx0XHRmZWF0dXJlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYy04LSNpbmNsdWRlIFx1MDAzY2J1cy5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYzo5OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTEwLSNpbmNsdWRlIFx1MDAzY2ZlYXR1cmUuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jPTIyPXN0YXRpYyBpbnQgYnJjbWZfYmNhX2FsbG9jX2Z3ZWhfaW5mbyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9jb3JlLmM6MzU6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9iY2Ffb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9jb3JlLmMtMzYtXHQuZmVhdF9hdHRhY2ggPSBicmNtZl9iY2FfZmVhdF9hdHRhY2gsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy03LSNpbmNsdWRlIFx1MDAzY2NvcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYzo4OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2JjYV9pbml0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM6MTQ6XHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0JDQSwgVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTE1LVx0XHRcdFx0XHQgICBcdTAwMjZicmNtZl9iY2Ffb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9iY2FfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjIwOlx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQkNBLCBUSElTX01PRFVMRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTIxLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL3ZvcHMuaC03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmg6ODpleHRlcm4gY29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9iY2Ffb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmgtOS0jZGVmaW5lIEJDQV9WT1BTXHQoXHUwMDI2YnJjbWZfYmNhX29wcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM9MTA0MD1zdGF0aWMgaW50IGJyY21mX29wc19zZGlvX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTEwODYtXHRidXNfaWYtXHUwMDNlcHJvdG9fdHlwZSA9IEJSQ01GX1BST1RPX0JDREM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM6MTA4NzpcdGJ1c19pZi1cdTAwM2Vmd3ZpZCA9IGlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTEwODgtXHRkZXZfc2V0X2RydmRhdGEoXHUwMDI2ZnVuYy1cdTAwM2VkZXYsIGJ1c19pZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTE0MT1zdHJ1Y3QgYnJjbWZfYnVzX3N0YXRzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTU3LSAqIEBjaGlwcmV2OiByZXZpc2lvbiBvZiB0aGUgZG9uZ2xlIGNoaXAuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MTU4OiAqIEBmd3ZpZDogZmlybXdhcmUgdmVuZG9yLXN1cHBvcnQgaWRlbnRpZmllciBvZiB0aGUgZGV2aWNlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTE1OS0gKiBAYWx3YXlzX3VzZV9md3NfcXVldWU6IGJ1cyB3YW50cyB1c2UgcXVldWUgYWxzbyB3aGVuIGZ3c2lnbmFsIGlzIGluYWN0aXZlLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0xNjU9c3RydWN0IGJyY21mX2J1cyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTE3OC1cdHUzMiBjaGlwcmV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjE3OTpcdGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTgwLVx0Ym9vbCBhbHdheXNfdXNlX2Z3c19xdWV1ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0zNS0jaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MzY6I2luY2x1ZGUgXCYjMzQ7Znd2aWQuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0xOTY5LVx0fSBlbHNlIGlmIChzbWUtXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcdTAwMjYgTkw4MDIxMV9XUEFfVkVSU0lPTl8yKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlx0XHRpZiAoZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cdFx0ICAgIHNtZS1cdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MjM4MT1icmNtZl9jZmc4MDIxMV9jb25uZWN0KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTI1MjUtXHRcdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MjUyNjpcdFx0XHRlcnIgPSBicmNtZl9md3ZpZF9zZXRfc2FlX3Bhc3N3b3JkKGlmcCwgXHUwMDI2c21lLVx1MDAzZWNyeXB0byk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0yNTI3LVx0XHRcdGlmICghZXJyIFx1MDAyNlx1MDAyNiBzbWUtXHUwMDNlY3J5cHRvLnBzaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01MTQ1PWJyY21mX2NmZzgwMjExX3N0YXJ0X2FwKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDQtXHRcdFx0cHJvZmlsZS1cdTAwM2V1c2VfZndhdXRoIHw9IEJJVChCUkNNRl9QUk9GSUxFX0ZXQVVUSF9TQUUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6NTMwNTpcdFx0XHRlcnIgPSBicmNtZl9md3ZpZF9zZXRfc2FlX3Bhc3N3b3JkKGlmcCwgY3J5cHRvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDYtXHRcdFx0aWYgKGVyciBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01MzkzPXN0YXRpYyBpbnQgYnJjbWZfY2ZnODAyMTFfc3RvcF9hcChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NDE2LVx0XHRcdGlmIChwcm9maWxlLVx1MDAzZXVzZV9md2F1dGggXHUwMDI2IEJJVChCUkNNRl9QUk9GSUxFX0ZXQVVUSF9TQUUpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6NTQxNzpcdFx0XHRcdGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBcdTAwMjZjcnlwdG8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTQxOC1cdFx0XHRwcm9maWxlLVx1MDAzZXVzZV9md2F1dGggPSBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfTk9ORSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NjgwMD1zdGF0aWMgdm9pZCBicmNtZl9yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTY4MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo2ODM4Olx0YnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoY2ZnLVx1MDAzZXB1Yik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02ODM5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTIwLSNpbmNsdWRlIFwmIzM0O2J1cy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjIxOiNpbmNsdWRlIFwmIzM0O2Z3dmlkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMjItI2luY2x1ZGUgXCYjMzQ7ZGVidWcuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTE0MD1zdGF0aWMgaW50IGJyY21mX3JldmluZm9fcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTUwLVx0c2VxX3ByaW50ZihzLCBcJiMzNDtjaGlwOiAlcyAoJXMpXFxuXCYjMzQ7LCByaS1cdTAwM2VjaGlwbmFtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTE1MTpcdFx0ICAgYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoYnVzX2lmLVx1MDAzZWRydnIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTE1Mi1cdHNlcV9wcmludGYocywgXCYjMzQ7Y2hpcHBrZzogJXVcXG5cJiMzNDssIHJpLVx1MDAzZWNoaXBwa2cpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTMzMD1pbnQgYnJjbWZfYXR0YWNoKHN0cnVjdCBkZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEzNDc6XHRyZXQgPSBicmNtZl9md3ZpZF9hdHRhY2goZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNDgtXHRpZiAocmV0ICE9IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM0OTpcdFx0YnBoeV9lcnIoZHJ2ciwgXCYjMzQ7YnJjbWZfZnd2aWRfYXR0YWNoIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNTAtXHRcdGdvdG8gZmFpbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEzNzE6XHRicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKGRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzcyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTQzMD12b2lkIGJyY21mX2RldGFjaChzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxNDcxOlx0YnJjbWZfZnd2aWRfZGV0YWNoKGRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5oPTEwMT1zdHJ1Y3QgYnJjbWZfcHViIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5oLTE0NS1cdHU4IHN0YV9tYWNfaWR4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaDoxNDY6XHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaC0xNDctXHR2b2lkICp2ZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy04LSNpbmNsdWRlIFx1MDAzY2J1cy5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzo5OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTEwLSNpbmNsdWRlIFx1MDAzY2Z3aWwuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTM1Nj1zdGF0aWMgdm9pZCBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzozNjg6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzY5LVx0LnNldF9zYWVfcGFzc3dvcmQgPSBicmNtZl9jeXdfc2V0X3NhZV9wd2QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy03LSNpbmNsdWRlIFx1MDAzY2NvcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzo4OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MTQ6XHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTE1LVx0XHRcdFx0XHQgICBcdTAwMjZicmNtZl9jeXdfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjIwOlx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTIxLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmg6ODpleHRlcm4gY29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmgtOS0jZGVmaW5lIENZV19WT1BTXHQoXHUwMDI2YnJjbWZfY3l3X29wcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE1LSNpbmNsdWRlIFwmIzM0O2Z3aWxfdHlwZXMuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuYzoxNjojaW5jbHVkZSBcJiMzNDtmd3ZpZC5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE3LSNpbmNsdWRlIFwmIzM0O2ZlYXR1cmUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmM9Mjg5PXZvaWQgYnJjbWZfZmVhdF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTM0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmM6MzQ3Olx0YnJjbWZfZnd2aWRfZmVhdF9hdHRhY2goaWZwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmMtMzQ4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmMtMTctI2luY2x1ZGUgXCYjMzQ7YnVzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmM6MTg6I2luY2x1ZGUgXCYjMzQ7Znd2aWQuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0xOS0vKipcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jPTM0ND1pbnQgYnJjbWZfZndlaF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTM0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmM6MzQ5Olx0ZXJyID0gYnJjbWZfZnd2aWRfYWxsb2NfZndlaF9pbmZvKGRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0zNTAtXHRpZiAoZXJyIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmM9NDM4PWludCBicmNtZl9md2VoX2FjdGl2YXRlX2V2ZW50cyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTQ1OC1cdC8qIGFsbG93IHBlci12ZW5kb3IgbWV0aG9kIHRvIGFjdGl2YXRlIGZpcm13YXJlIGV2ZW50cyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYzo0NTk6XHRpZiAoIWJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhpZnApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy00NjAtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4LSNpbmNsdWRlIFwmIzM0O2RlYnVnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE5OiNpbmNsdWRlIFwmIzM0O2Z3dmlkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTIwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MjU6c3RydWN0IGJyY21mX2Z3dmlkX2VudHJ5IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI2LVx0Y29uc3QgY2hhciAqbmFtZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjI3Olx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI4LVx0c3RydWN0IGxpc3RfaGVhZCBkcnZyX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzozNTpzdGF0aWMgREVGSU5FX01VVEVYKGZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0zNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00MC1cdFx0Lm5hbWUgPSAjX25hbWUsIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MTpcdFx0LnJlZ19kb25lID0gQ09NUExFVElPTl9JTklUSUFMSVpFUihmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXS5yZWdfZG9uZSksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MjpcdFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00My1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00Ny1cdFx0Lm5hbWUgPSAjX25hbWUsIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0ODpcdFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00OS1cdFx0LnZvcHMgPSBfdmlkICMjIF9WT1BTIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo1MzpzdGF0aWMgc3RydWN0IGJyY21mX2Z3dmlkX2VudHJ5IGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfTlVNXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTU0LVx0RldWSURfRU5UUllfSU5JVChXQ0MsIHdjYyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTktI2lmIElTX01PRFVMRShDT05GSUdfQlJDTUZNQUMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2MDpzdGF0aWMgaW50IGJyY21mX2Z3dmlkX3JlcXVlc3RfbW9kdWxlKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy02MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2NDpcdGlmICghZnd2aWRfbGlzdFtmd3ZpZF0udm1vZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NjU6XHRcdHN0cnVjdCBjb21wbGV0aW9uICpyZWdfZG9uZSA9IFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLnJlZ19kb25lO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2NzpcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjY5Olx0XHRyZXQgPSByZXF1ZXN0X21vZHVsZShcJiMzNDticmNtZm1hYy0lc1wmIzM0OywgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03MC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjc3Olx0XHRtdXRleF9sb2NrKFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03OC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04MS1mYWlsOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6ODI6XHRicmNtZl9lcnIoXCYjMzQ7bW9kPSVzOiBmYWlsZWQgJWRcXG5cJiMzNDssIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04My1cdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4NjppbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKnZtb2QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4NzpcdFx0XHRcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgKnZvcHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4OTpcdGlmIChmd3ZpZCBcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTkwLVx0XHRyZXR1cm4gLUVSQU5HRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjk2Olx0aWYgKFdBUk5fT04oZnd2aWRfbGlzdFtmd3ZpZF0udm1vZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05Ny1cdFx0cmV0dXJuIC1FRVhJU1Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjk5Olx0YnJjbWZfZGJnKFRSQUNFLCBcJiMzNDttb2Q9JXM6IGVudGVyXFxuXCYjMzQ7LCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwMTpcdG11dGV4X2xvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwMzpcdGZ3dmlkX2xpc3RbZnd2aWRdLnZtb2QgPSB2bW9kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTA0Olx0Znd2aWRfbGlzdFtmd3ZpZF0udm9wcyA9IHZvcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDY6XHRtdXRleF91bmxvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwODpcdGNvbXBsZXRlX2FsbChcdTAwMjZmd3ZpZF9saXN0W2Z3dmlkXS5yZWdfZG9uZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTExLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjExMjpCUkNNRl9FWFBPUlRfU1lNQk9MX0dQTChicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTE0OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjExODpcdGlmIChmd3ZpZCBcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExOS1cdFx0cmV0dXJuIC1FUkFOR0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMjE6XHRpZiAoV0FSTl9PTihmd3ZpZF9saXN0W2Z3dmlkXS52bW9kICE9IG1vZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjItXHRcdHJldHVybiAtRU5PRU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTI0Olx0bXV0ZXhfbG9jayhcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTI2Olx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJ1cywgdG1wLCBcdTAwMjZmd3ZpZF9saXN0W2Z3dmlkXS5kcnZyX2xpc3QsIGxpc3QpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyNzpcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMjk6XHRcdGJyY21mX2RiZyhJTkZPLCBcJiMzNDttb2Q9JXM6IHJlbW92aW5nICVzXFxuXCYjMzQ7LCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTMwLVx0XHRcdCAgZGV2X25hbWUoYnVzLVx1MDAzZWRldikpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEzMzpcdFx0bXV0ZXhfbG9jayhcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTM0LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTM2Olx0Znd2aWRfbGlzdFtmd3ZpZF0udm1vZCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMzc6XHRmd3ZpZF9saXN0W2Z3dmlkXS52b3BzID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEzODpcdHJlaW5pdF9jb21wbGV0aW9uKFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLnJlZ19kb25lKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE0MDpcdGJyY21mX2RiZyhUUkFDRSwgXCYjMzQ7bW9kPSVzOiBleGl0XFxuXCYjMzQ7LCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE0MTpcdG11dGV4X3VubG9jayhcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTQyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDU6QlJDTUZfRVhQT1JUX1NZTUJPTF9HUEwoYnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTQ2LSNlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDc6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfcmVxdWVzdF9tb2R1bGUoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTUzOmludCBicmNtZl9md3ZpZF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE1NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNTU6XHRlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkID0gZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNTYtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTU4Olx0aWYgKGZ3dmlkIFx1MDAzZT0gQVJSQVlfU0laRShmd3ZpZF9saXN0KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE1OS1cdFx0cmV0dXJuIC1FUkFOR0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNjE6XHRicmNtZl9kYmcoVFJBQ0UsIFwmIzM0O21vZD0lczogZW50ZXI6IGRldiAlc1xcblwmIzM0OywgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2Mi1cdFx0ICBkZXZfbmFtZShkcnZyLVx1MDAzZWJ1c19pZi1cdTAwM2VkZXYpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2NDpcdG11dGV4X2xvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2NjpcdHJldCA9IGJyY21mX2Z3dmlkX3JlcXVlc3RfbW9kdWxlKGZ3dmlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTcwOlx0ZHJ2ci1cdTAwM2V2b3BzID0gZnd2aWRfbGlzdFtmd3ZpZF0udm9wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE3MTpcdGxpc3RfYWRkKFx1MDAyNmRydnItXHUwMDNlYnVzX2lmLVx1MDAzZWxpc3QsIFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLmRydnJfbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNzM6XHRtdXRleF91bmxvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE3NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNzg6dm9pZCBicmNtZl9md3ZpZF9kZXRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE3OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODA6XHRlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkID0gZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODI6XHRpZiAoZnd2aWQgXHUwMDNlPSBBUlJBWV9TSVpFKGZ3dmlkX2xpc3QpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTgzLVx0XHRyZXR1cm47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODU6XHRicmNtZl9kYmcoVFJBQ0UsIFwmIzM0O21vZD0lczogZW50ZXI6IGRldiAlc1xcblwmIzM0OywgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4Ni1cdFx0ICBkZXZfbmFtZShkcnZyLVx1MDAzZWJ1c19pZi1cdTAwM2VkZXYpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE4ODpcdG11dGV4X2xvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTMtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTQ6XHRtdXRleF91bmxvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTc6Y29uc3QgY2hhciAqYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTk6XHRyZXR1cm4gZnd2aWRfbGlzdFtkcnZyLVx1MDAzZWJ1c19pZi1cdTAwM2Vmd3ZpZF0ubmFtZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTIwMC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg9MTI9c3RydWN0IGJyY21mX2lmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoxNDpzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTE1LVx0dm9pZCAoKmZlYXRfYXR0YWNoKShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMjMtLyogZXhwb3J0ZWQgZnVuY3Rpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoyNDppbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKm1vZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI1Olx0XHRcdFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI2OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC0yOC0vKiBjb3JlIGRyaXZlciBmdW5jdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI5OmludCBicmNtZl9md3ZpZF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozMDp2b2lkIGJyY21mX2Z3dmlkX2RldGFjaChzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjMxOmNvbnN0IGNoYXIgKmJyY21mX2Z3dmlkX3ZlbmRvcl9uYW1lKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozMzpzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfZmVhdF9hdHRhY2goc3RydWN0IGJyY21mX2lmICppZnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC0zNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozNTpcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgKnZvcHMgPSBpZnAtXHUwMDNlZHJ2ci1cdTAwM2V2b3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo0MzpzdGF0aWMgaW5saW5lIGludCBicmNtZl9md3ZpZF9zZXRfc2FlX3Bhc3N3b3JkKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDQtXHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY3J5cHRvX3NldHRpbmdzICpjcnlwdG8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC00NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo0NjpcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgKnZvcHMgPSBpZnAtXHUwMDNlZHJ2ci1cdTAwM2V2b3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo1NDpzdGF0aWMgaW5saW5lIGludCBicmNtZl9md3ZpZF9hbGxvY19md2VoX2luZm8oc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC02MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjYyOnN0YXRpYyBpbmxpbmUgaW50IGJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjY0Olx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcyA9IGlmcC1cdTAwM2VkcnZyLVx1MDAzZXZvcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC02NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjcyOnN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo4MDpzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTgxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0Mzk9YnJjbWZfcGNpZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUxNy1cdGJ1cy1cdTAwM2V3b3dsX3N1cHBvcnRlZCA9IHBjaV9wbWVfY2FwYWJsZShwZGV2LCBQQ0lfRDNob3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTE4Olx0YnVzLVx1MDAzZWZ3dmlkID0gZHJ2ZGF0YVtpZC1cdTAwM2Vkcml2ZXJfZGF0YV0udmVuZG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTE5LVx0ZGV2aW5mby1cdTAwM2Vmd3NlZWQgPSBkcnZkYXRhW2lkLVx1MDAzZWRyaXZlcl9kYXRhXS5md19zZWVkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUyNi1cdC8qIG90cCByZWFkIG9wZXJhdGlvbiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTI3Olx0c3dpdGNoIChidXMtXHUwMDNlZnd2aWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUyOC1cdGNhc2UgQlJDTUZfRldWRU5ET1JfV0NDOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMjQ0PXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Byb2JlX2NiKHN0cnVjdCBicmNtZl91c2JkZXZfaW5mbyAqZGV2aW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxMjQ1Olx0XHRcdCAgICAgIGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNjktXHRidXMtXHUwMDNlcHJvdG9fdHlwZSA9IEJSQ01GX1BST1RPX0JDREM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTI3MDpcdGJ1cy1cdTAwM2Vmd3ZpZCA9IGZ3dmlkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNzEtXHRidXMtXHUwMDNlYWx3YXlzX3VzZV9md3NfcXVldWUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTgtI2luY2x1ZGUgXHUwMDNjYnVzLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jOjk6I2luY2x1ZGUgXHUwMDNjZnd2aWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMTAtI2luY2x1ZGUgXHUwMDNjY2ZnODAyMTEuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jPTIzPXN0YXRpYyBpbnQgYnJjbWZfd2NjX2FsbG9jX2Z3ZWhfaW5mbyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmM6MzY6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMzctXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX3djY19zZXRfc2FlX3B3ZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTctI2luY2x1ZGUgXHUwMDNjY29yZS5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jOjg6I2luY2x1ZGUgXHUwMDNjZnd2aWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy05LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfd2NjX2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYzoxNDpcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTUtXHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX3djY19vcHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX3djY19leGl0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MjA6XHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9XQ0MsIFRISVNfTU9EVUxFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaDo4OmV4dGVybiBjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX3djY19vcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC05LSNkZWZpbmUgV0NDX1ZPUFNcdChcdTAwMjZicmNtZl93Y2Nfb3BzKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzAwNQoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgYGJyY21mX3VzYl9wcm9iZV9jYmAqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBgYnJjbWZfdXNiX3Byb2JlX2NiYCBmdW5jdGlvbiBhbmQgaW1tZWRpYXRlbHkgSSYjMzk7bSB0aGlua2luZywgJiMzNDtPa2F5LCBgZnd2aWRgIGlzIHBhc3NlZCBpbiBhcyBhbiBhcmd1bWVudC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuJiMzNDsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgaG93IHRoaXMgYGZ3dmlkYCBpcyB1c2VkLCBzbyBteSBmaXJzdCBtb3ZlIGlzIHRvIHRyYWNlIHdoZXJlIGFuZCBob3cgdGhpcyBgYnJjbWZfdXNiX3Byb2JlX2NiYCBpcyBhY3R1YWxseSAqY2FsbGVkKi4gVGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byBgdXNiLmNgIGFuZCBmaWd1cmUgb3V0IHRoZSBjYWxsIHN0YWNrIOKAkyBnZXQgYSBoYW5kbGUgb24gd2hhdCYjMzk7cyB0cmlnZ2VyaW5nIHRoaXMgZnVuY3Rpb24gYW5kIHdoYXQgaW5mb3JtYXRpb24gaXMgYmVpbmcgcGFzc2VkIHVwIHRoZSBjaGFpbi4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbCBjb250ZXh0IGFyb3VuZCB0aGUgYGZ3dmlkYCBhcmd1bWVudCBpcyBnb2luZyB0byBiZSBrZXkgdG8gc2VlaW5nIGhvdyB0aGlzIGZpcm13YXJlIHZlcnNpb24gSUQgaW1wYWN0cyB0aGUgcHJvYmUgcHJvY2VkdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl91c2JfcHJvYmVfY2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMjI0PWJyY21mX3VzYl9wcmVwYXJlX2Z3X3JlcXVlc3Qoc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEyNDQ6c3RhdGljIGludCBicmNtZl91c2JfcHJvYmVfY2Ioc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNDUtXHRcdFx0ICAgICAgZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTM0Mj1icmNtZl91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTQ0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNDQzOlx0cmV0ID0gYnJjbWZfdXNiX3Byb2JlX2NiKGRldmluZm8sIGlkLVx1MDAzZWRyaXZlcl9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNDQ0LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM2NzAKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgZnJvbSBhbiBleHBlcnQmIzM5O3MgcGVyc3BlY3RpdmU6CgoqKkRpdmluZyBpbnRvIHRoZSBGaXJtd2FyZSBJRCoqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGlkLSZndDtkcml2ZXJfaW5mb2AgYW5kIEkga25vdyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBgZnd2aWRgIGlzIHN0b3JlZC4gTXkgZ3V0IHRlbGxzIG1lIHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgZmlybXdhcmUgdmVyc2lvbi4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY3Jvc3MtcmVmZXJlbmNlIHRoYXQgd2l0aCB0aGUgZGV2aWNlIElEIHRhYmxlLiBUaGF0IHdvdWxkIGJlIGBicmNtZl91c2JfZGV2aWRfdGFibGVgIGluIGB1c2IuY2AsIGJlY2F1c2UgSSYjMzk7bSBiZXR0aW5nIHdlIGFyZSBsb29raW5nIGF0IHNvbWV0aGluZyB0byBkbyB3aXRoIEJyb2FkY29tIFVTQiBkZXZpY2VzLiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGF0IGZ3dmlkIGlzIHVzZWQsIGVzcGVjaWFsbHkgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBkcml2ZXIsIGFuZCBpZiB0aGVyZSBhcmUgYW55IGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIG9yIHF1aXJrcyBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWMgdmVyc2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtIGlzIGNvcnJlbGF0aW5nIHRoZSByZXBvcnRlZCBmaXJtd2FyZSB3aXRoIHRoZSBoYXJkd2FyZSBpdCYjMzk7cyBtYW5hZ2luZy4gVGltZSB0byBkaWchCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3VzYl9kZXZpZF90YWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTEzMjY9YnJjbWZfdXNiX2Rpc2Nvbm5lY3RfY2Ioc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzM4LS8qIEZvcndhcmQgZGVjbGFyYXRpb24gZm9yIHVzYl9tYXRjaF9pZCgpIGNhbGwgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxMzM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBicmNtZl91c2JfZGV2aWRfdGFibGVbXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzQwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMzQyPWJyY21mX3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzUyLVx0aWYgKCFpZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEzNTM6XHRcdGlkID0gdXNiX21hdGNoX2lkKGludGYsIGJyY21mX3VzYl9kZXZpZF90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTM1NC1cdFx0aWYgKCFpZCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTExPXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Jlc2V0X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQ5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBicmNtZl91c2JfZGV2aWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTUwLVx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzE0M19ERVZJQ0VfSUQpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NjM6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGJyY21mX3VzYl9kZXZpZF90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTY1PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBicmNtZl91c2JkcnZyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTY4LVx0LmRpc2Nvbm5lY3QgPSBicmNtZl91c2JfZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTY5Olx0LmlkX3RhYmxlID0gYnJjbWZfdXNiX2RldmlkX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NzAtXHQuc3VzcGVuZCA9IGJyY21mX3VzYl9zdXNwZW5kLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDgzNgoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIEJSQ01GIFVTQiBMYW5kc2NhcGUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBCUkNNRl9VU0JfREVWSUNFYCBtYWNybywgb3IgYXQgbGVhc3QgZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB3aGF0JiMzOTtzIGhlbGQgd2l0aGluIHRoZSBgYnJjbWZfdXNiX2RldmlkX3RhYmxlYC4gSSYjMzk7bSBndWVzc2luZyB0aGF0IHRoaXMgaXMgdGhlIGNlbnRyYWwgcGllY2UgZm9yIGlkZW50aWZ5aW5nIGFuZCBjb25maWd1cmluZyBVU0IgZGV2aWNlcyBmb3IgdGhlIEJyb2FkY29tIFdpRmkgZHJpdmVyLiBMaWtlbHksIGl0IGhvbGRzIGFsbCB0aGUgdml0YWwgdmVuZG9yIElEcywgcHJvZHVjdCBJRHMsIG1heWJlIGV2ZW4gcmV2aXNpb24gSURzLCB0aGF0JiMzOTtsbCBhbGxvdyB0aGUgZHJpdmVyIHRvIHJlY29nbml6ZSBjb21wYXRpYmxlIGhhcmR3YXJlIGFuZCBsb2FkIHRoZSByaWdodCBmaXJtd2FyZSBvciBjb25maWd1cmF0aW9ucy4gSSYjMzk7bSBrZWVuIHRvIGRpc3NlY3QgdGhpcyB0YWJsZSBvciBtYWNybywgaXQmIzM5O2xsIHVuZG91YnRlZGx5IHJldmVhbCBzb21lIGNydWNpYWwgaW5zaWdodHMgaW50byB0aGUgZHJpdmVyJiMzOTtzIGRldmljZS1tYXRjaGluZyBsb2dpYy4gV2hldGhlciBpdCYjMzk7cyBhIHNpbXBsZSBsb29rdXAgdGFibGUgb3Igc29tZSBtb3JlIHNvcGhpc3RpY2F0ZWQgbWFjcm8gbWFnaWMsIGtub3dpbmcgaXRzIGludGVybmFscyB3aWxsIHNpZ25pZmljYW50bHkgZW5oYW5jZSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBVU0IgZGV2aWNlIGluaXRpYWxpemF0aW9uIHByb2Nlc3Mgd2l0aGluIHRoaXMgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCUkNNRl9VU0JfREVWSUNFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTUxMT1zdGF0aWMgaW50IGJyY21mX3VzYl9yZXNldF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTUzMTojZGVmaW5lIEJSQ01GX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzItXHR7IFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1NDk9c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTA6XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMTQzX0RFVklDRV9JRCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU1MTpcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMyMzZfREVWSUNFX0lEKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTUyOlx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzI0Ml9ERVZJQ0VfSUQpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTM6XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzNTY5X0RFVklDRV9JRCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU1NC1cdExJTktTWVNfVVNCX0RFVklDRShCUkNNX1VTQl80MzIzNV9MSU5LU1lTX0RFVklDRV9JRCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTctXHQvKiBzcGVjaWFsIGVudHJ5IGZvciBkZXZpY2Ugd2l0aCBmaXJtd2FyZSBsb2FkZWQgYW5kIHJ1bm5pbmcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTU4Olx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTktXHRDWVBSRVNTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfQkNNRldfREVWSUNFX0lEKSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU3OTcKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyBVU0IgRGV2aWNlIERlZmluaXRpb25zKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgY2VydGFpbiBVU0IgZGV2aWNlcy4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIHRoZSBkZWZpbml0aW9ucyBmb3IgYEJSQ01GX1VTQl9ERVZJQ0VgIGFuZCBgQ1lQUkVTU19VU0JfREVWSUNFYCB3aXRoaW4gdGhlIGB1c2IuY2AgZmlsZS4gSSYjMzk7bSBub3QgbG9va2luZyBmb3IgYSBjYXN1YWwgb3ZlcnZpZXcgaGVyZTsgSSB3YW50IHRoZSBncmFudWxhciBkZXRhaWxzLiBJIG5lZWQgdG8gc2VlIHRoZSBleGFjdCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMsIHRoZSBhc3NvY2lhdGVkIHZlbmRvciBhbmQgcHJvZHVjdCBJRHMsIGFuZCBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdGhhdCBtaWdodCBiZSBoYXBwZW5pbmcgYmFzZWQgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSBvciBjb25maWd1cmF0aW9uLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGRyaXZlciYjMzk7cyBiZWhhdmlvdXIgd2hlbiB0aGVzZSBzcGVjaWZpYyBkZXZpY2VzIGFyZSBjb25uZWN0ZWQuIEkgbmVlZCB0byBrbm93IHdoYXQgaG9va3MgYXJlIGJlaW5nIHVzZWQgYXMgd2VsbC4gTGV04oCZcyBzZWUgd2hhdCB3ZSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2RlZmluZS4qVVNCX0RFVklDRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1MTE9c3RhdGljIGludCBicmNtZl91c2JfcmVzZXRfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzE6I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMyLVx0eyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1Mzc6I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzgtXHR7IFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU0MzojZGVmaW5lIENZUFJFU1NfVVNCX0RFVklDRShkZXZfaWQpIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0NC1cdHsgXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0NjMKCQkJCQkJCW91dHB1dDogNTQKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIFVTQiBDb3JlIC0gTGluZSAxNTMxKioKCk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYHVzYi5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDE1MzEuIEkmIzM5O20gcHJvYmFibHkgaW50ZXJlc3RlZCBpbiB1bmRlcnN0YW5kaW5nIGhvdyBhIHBhcnRpY3VsYXIgVVNCIGZ1bmN0aW9uIGlzIGJlaW5nIGhhbmRsZWQsIG9yIG1heWJlIEkmIzM5O20gdHJvdWJsZXNob290aW5nIGFuIGlzc3VlIGFuZCBoYXZlIGJlZW4gZGlyZWN0ZWQgdG8gdGhpcyBhcmVhIGJ5IGEgc3RhY2sgdHJhY2Ugb3IgbG9nIG1lc3NhZ2VzLiBJJiMzOTttIGFscmVhZHkgZm9ybXVsYXRpbmcgaHlwb3RoZXNlcyBhYm91dCB3aGF0IEkgbWlnaHQgZmluZCBiYXNlZCBvbiBteSBnZW5lcmFsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIFVTQiBzdGFjay4gSXMgdGhpcyBhIGNyaXRpY2FsIHBhdGggZm9yIGRldmljZSBlbnVtZXJhdGlvbj8gRW5kcG9pbnQgaGFuZGxpbmc/IExpa2VseSwgdGhpcyBjaHVuayBvZiBjb2RlIGlzIGludm9sdmVkIGluIGVpdGhlciBpbml0aWFsaXphdGlvbiwgdHJhbnNmZXIgc2NoZWR1bGluZywgb3IgZXJyb3IgbWFuYWdlbWVudCB3aXRoaW4gdGhlIFVTQiBjb3JlLiBLbm93aW5nIHRoZSBleGFjdCBjb250ZXh0IHdpbGwgaGVscCwgYnV0IEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBkZXRhaWxlZCByZXZpZXcgb2YgdGhpcyBzZWN0aW9uLiBJIHdpbGwgYmUgc3VyZSB0byBjcm9zcy1yZWZlcmVuY2UgYW55IHJlbGV2YW50IHN0cnVjdHVyZXMgb3IgZnVuY3Rpb25zIHJlZmVyZW5jZWQgd2l0aGluIHRoYXQgc2VjdGlvbi4gTGV0JiMzOTtzIGRpZyBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNTMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE1MzA6XHRcbjE1MzE6XHQjZGVmaW5lIEJSQ01GX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuMTUzMjpcdFx0eyBcXFxuMTUzMzpcdFx0XHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9CUk9BRENPTSwgZGV2X2lkKSwgXFxcbjE1MzQ6XHRcdFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXG4xNTM1Olx0XHR9XG4xNTM2Olx0XG4xNTM3Olx0I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuMTUzODpcdFx0eyBcXFxuMTUzOTpcdFx0XHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9MSU5LU1lTLCBkZXZfaWQpLCBcXFxuMTU0MDpcdFx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbjE1NDE6XHRcdH1cbjE1NDI6XHRcbjE1NDM6XHQjZGVmaW5lIENZUFJFU1NfVVNCX0RFVklDRShkZXZfaWQpIFxcXG4xNTQ0Olx0XHR7IFxcXG4xNTQ1Olx0XHRcdFVTQl9ERVZJQ0UoQ1lfVVNCX1ZFTkRPUl9JRF9DWVBSRVNTLCBkZXZfaWQpLCBcXFxuMTU0NjpcdFx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbjE1NDc6XHRcdH1cbjE1NDg6XHRcbjE1NDk6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgYnJjbWZfdXNiX2RldmlkX3RhYmxlW10gPSB7XG4xNTUwOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMTQzX0RFVklDRV9JRCksXG4xNTUxOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjM2X0RFVklDRV9JRCksXG4xNTUyOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjQyX0RFVklDRV9JRCksXG4xNTUzOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzNTY5X0RFVklDRV9JRCksXG4xNTU0Olx0XHRMSU5LU1lTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMyMzVfTElOS1NZU19ERVZJQ0VfSUQpLFxuMTU1NTpcdFx0Q1lQUkVTU19VU0JfREVWSUNFKENZX1VTQl80MzczX0RFVklDRV9JRCksXG4xNTU2Olx0XHR7IFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0xHLCBCUkNNX1VTQl80MzI0Ml9MR19ERVZJQ0VfSUQpIH0sXG4xNTU3Olx0XHQvKiBzcGVjaWFsIGVudHJ5IGZvciBkZXZpY2Ugd2l0aCBmaXJtd2FyZSBsb2FkZWQgYW5kIHJ1bm5pbmcgKi9cbjE1NTg6XHRcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfQkNNRldfREVWSUNFX0lEKSxcbjE1NTk6XHRcdENZUFJFU1NfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzM2NwoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDE1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBDeXByZXNzIFVTQiBEZXZpY2UgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJdCBzZWVtcyBhIGJpdCBvZGQgdGhhdCBgQ1lQUkVTU19VU0JfREVWSUNFYCBpcyB1dGlsaXppbmcgYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFRoYXQganVzdCBkb2VzbiYjMzk7dCBmZWVsIHJpZ2h0LiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgQ1lQUkVTU19VU0JfREVWSUNFYCBjb25maWd1cmF0aW9uIGFnYWluLCBmb2N1c2luZyBvbiB0aGF0IGRyaXZlciBpbmZvcm1hdGlvbiBzZXR0aW5nLiBSaWdodCwgbGluZSAxNTQ2Li4uIHRoZXJlIGl0IGlzOiBgLmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDYC4gSG1tLgoKTm93LCB0aGF0IGJyaW5ncyB1cCBhbm90aGVyIHBvaW50LiBXaGVyZSAqaXMqIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGJlaW5nIGVtcGxveWVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biB3aGVyZSB0aGF0JiMzOTtzIGFjdHVhbGx5IHVzZWQuIExldCBtZSBnbyBiYWNrIGFuZCByZS1leGFtaW5lIHRoZSBgQ1lQUkVTU19VU0JfREVWSUNFYCBzZXR0aW5ncyB3aXRoaW4gYHVzYi5jYC4KCkFoLCBva2F5LCBJIHNlZSBpdCBub3cuIFdhaXQuIEl0JiMzOTtzIGJlY29taW5nIGNsZWFyLi4uIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGlzIGFjdHVhbGx5IGRlZmluZWQgd2l0aGluIGBwY2llLmNgIGFuZCBgc2Rpby5jYC4gTm90IFVTQiBhdCBhbGwhIEkgc3VwcG9zZSB0aGlzIG1ha2VzIHNlbnNlLiBMZXQmIzM5O3MgZGVsdmUgaW50byBgc2Rpby5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgc3BlY2lmaWMgZmlybXdhcmUgdmVuZG9yIGNvbmZpZ3VyYXRpb24gaXMgdXRpbGl6ZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhlc2UgdmVuZG9yIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0JSQ01GX0ZXVkVORE9SX0NZVyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTM0PWVudW0gYnJjbWZfZnd2ZW5kb3Ige1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTM1LVx0QlJDTUZfRldWRU5ET1JfV0NDLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM2Olx0QlJDTUZfRldWRU5ET1JfQ1lXLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTM3LVx0QlJDTUZfRldWRU5ET1JfQkNBLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jPTE5NTc9c3RhdGljIHMzMiBicmNtZl9zZXRfd3BhX3ZlcnNpb24oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cdH0gZWxzZSBpZiAoc21lLVx1MDAzZWNyeXB0by53cGFfdmVyc2lvbnMgXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MTk3MDpcdFx0aWYgKGRydnItXHUwMDNlYnVzX2lmLVx1MDAzZWZ3dmlkID09IEJSQ01GX0ZXVkVORE9SX0NZVyBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTE5NzEtXHRcdCAgICBzbWUtXHUwMDNlY3J5cHRvLmFrbV9zdWl0ZXNbMF0gPT0gV0xBTl9BS01fU1VJVEVfU0FFKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfY3l3X2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTUtXHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX2N5d19vcHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX2N5d19leGl0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQxNj1zdGF0aWMgY29uc3Qgc3RydWN0IGJyY21mX3BjaWVfZHJ2ZGF0YSBkcnZkYXRhW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTctXHRbQlJDTUZfRFJWREFUQV9DWVddID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDE4Olx0XHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfQ1lXLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE5LVx0XHQuZndfc2VlZCA9IGZhbHNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQzOT1icmNtZl9wY2llX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM1LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjUzNjpcdGNhc2UgQlJDTUZfRldWRU5ET1JfQ1lXOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM3LVx0ZGVmYXVsdDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg5OTUKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBCcm9hZGNvbSBGaXJtd2FyZSBVc2FnZSoqCgpPa2F5LCBzbyBJJiMzOTttIHNlZWluZyBgQlJDTUZfRldWRU5ET1JfQ1lXYCBhbmQgbXkgZmlyc3QgdGhvdWdodCBpcywgJiMzNDtXaGVyZSBleGFjdGx5IGlzIHRoaXMgdXNlZD8mIzM0OyBJIHF1aWNrbHkgcmVhbGl6ZSBpdCBzZWVtcyB0byBiZSBjb25maW5lZCB0byBgcGNpZS5jYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYnV0IEkgbmVlZCB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBjb2RlIGJhc2UsIHNvIEkmIzM5O20gZ29pbmcgdG8ganVtcCBvdmVyIHRvIGBiY21zZGguY2Ag4oCTIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIFNESU8gc3R1ZmYgaXMsIGFuZCBpdCYjMzk7cyBhIGNyaXRpY2FsIGFyZWEgZm9yIEJyb2FkY29tIGZpcm13YXJlLiBHb3R0YSBtYWtlIHN1cmUgdGhpcyBpc24mIzM5O3QgYSB3aWRlciBjb25jZXJuIHRoYW4gSSBpbml0aWFsbHkgdGhvdWdodC4gSSBuZWVkIHRvIHNlZSBpZiB0aGUgU0RJTyBkcml2ZXIgaXMgaGFuZGxpbmcgdGhpbmdzIHRoZSBzYW1lIHdheSwgb3IgaWYgdGhlcmUmIzM5O3MgYSBkaWZmZXJlbmNlIGluIHRoZSB2ZW5kb3Igc3RyaW5nIHVzYWdlLiBUaGlzIGFsbCBoZWxwcyBtZSB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIGRlc2lnbiBhbmQgYW55IHBvdGVudGlhbCBpbmNvbnNpc3RlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0JSQ01GX0ZXVkVORE9SXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9iY2FfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjE0Olx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9CQ0EsIFRISVNfTU9EVUxFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xNS1cdFx0XHRcdFx0ICAgXHUwMDI2YnJjbWZfYmNhX29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfYmNhX2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYzoyMDpcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0JDQSwgVEhJU19NT0RVTEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0yMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jPTkwMD1pbnQgYnJjbWZfc2Rpb2RfcHJvYmUoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NjgtXHRcdFNESU9fREVWSUNFKFNESU9fVkVORE9SX0lEX0JST0FEQ09NLCBkZXZfaWQpLCBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jOjk2OTpcdFx0LmRyaXZlcl9kYXRhID0gQlJDTUZfRldWRU5ET1JfICMjIGZ3X3ZlbmQgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NzAtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTk3NC1cdFx0U0RJT19ERVZJQ0UoU0RJT19WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYzo5NzU6XHRcdC5kcml2ZXJfZGF0YSA9IEJSQ01GX0ZXVkVORE9SXyAjIyBmd192ZW5kIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmMtOTc2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0zND1lbnVtIGJyY21mX2Z3dmVuZG9yIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNTpcdEJSQ01GX0ZXVkVORE9SX1dDQyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNjpcdEJSQ01GX0ZXVkVORE9SX0NZVyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNzpcdEJSQ01GX0ZXVkVORE9SX0JDQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zOC1cdC8qIGtlZXAgbGFzdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM5Olx0QlJDTUZfRldWRU5ET1JfTlVNLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjQwOlx0QlJDTUZfRldWRU5ET1JfSU5WQUxJRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTQxLX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0xOTY5LVx0fSBlbHNlIGlmIChzbWUtXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcdTAwMjYgTkw4MDIxMV9XUEFfVkVSU0lPTl8yKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlx0XHRpZiAoZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cdFx0ICAgIHNtZS1cdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjE0Olx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cdFx0XHRcdFx0ICAgXHUwMDI2YnJjbWZfY3l3X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfY3l3X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoyMDpcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM9MzU9c3RhdGljIERFRklORV9NVVRFWChmd3ZpZF9saXN0X2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTM4LSNkZWZpbmUgRldWSURfRU5UUllfSU5JVChfdmlkLCBfbmFtZSkgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjM5Olx0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXSA9IHsgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQwLVx0XHQubmFtZSA9ICNfbmFtZSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQxOlx0XHQucmVnX2RvbmUgPSBDT01QTEVUSU9OX0lOSVRJQUxJWkVSKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLnJlZ19kb25lKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQyOlx0XHQuZHJ2cl9saXN0ID0gTElTVF9IRUFEX0lOSVQoZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl8gIyMgX3ZpZF0uZHJ2cl9saXN0KSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ1LSNkZWZpbmUgRldWSURfRU5UUllfSU5JVChfdmlkLCBfbmFtZSkgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQ2Olx0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXSA9IHsgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ3LVx0XHQubmFtZSA9ICNfbmFtZSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQ4Olx0XHQuZHJ2cl9saXN0ID0gTElTVF9IRUFEX0lOSVQoZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl8gIyMgX3ZpZF0uZHJ2cl9saXN0KSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ5LVx0XHQudm9wcyA9IF92aWQgIyMgX1ZPUFMgXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjUzOnN0YXRpYyBzdHJ1Y3QgYnJjbWZfZnd2aWRfZW50cnkgZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl9OVU1dID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTQtXHRGV1ZJRF9FTlRSWV9JTklUKFdDQywgd2NjKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYz04Nj1pbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKnZtb2QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtODgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6ODk6XHRpZiAoZnd2aWQgXHUwMDNlPSBCUkNNRl9GV1ZFTkRPUl9OVU0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05MC1cdFx0cmV0dXJuIC1FUkFOR0U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM9MTE0PWludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTE4Olx0aWYgKGZ3dmlkIFx1MDAzZT0gQlJDTUZfRldWRU5ET1JfTlVNKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE5LVx0XHRyZXR1cm4gLUVSQU5HRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0MTY9c3RhdGljIGNvbnN0IHN0cnVjdCBicmNtZl9wY2llX2RydmRhdGEgZHJ2ZGF0YVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE3LVx0W0JSQ01GX0RSVkRBVEFfQ1lXXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjQxODpcdFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX0NZVyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxOS1cdFx0LmZ3X3NlZWQgPSBmYWxzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjEtXHRbQlJDTUZfRFJWREFUQV9CQ0FdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDIyOlx0XHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfQkNBLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDIzLVx0XHQuZndfc2VlZCA9IGZhbHNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQyNS1cdFtCUkNNRl9EUlZEQVRBX1dDQ10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MjY6XHRcdC52ZW5kb3IgPSBCUkNNRl9GV1ZFTkRPUl9XQ0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjctXHRcdC5md19zZWVkID0gZmFsc2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDI5LVx0W0JSQ01GX0RSVkRBVEFfV0NDX1NFRURdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDMwOlx0XHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfV0NDLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDMxLVx0XHQuZndfc2VlZCA9IHRydWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MjctXHRzd2l0Y2ggKGJ1cy1cdTAwM2Vmd3ZpZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTI4Olx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9XQ0M6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1Mjk6XHRjYXNlIEJSQ01GX0ZXVkVORE9SX0JDQTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzMC1cdFx0cmV0ID0gYnJjbWZfcGNpZV9yZWFkX290cChkZXZpbmZvKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTM2Olx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9DWVc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzctXHRkZWZhdWx0OlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTExPXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Jlc2V0X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzMy1cdFx0VVNCX0RFVklDRShCUkNNX1VTQl9WRU5ET1JfSURfQlJPQURDT00sIGRldl9pZCksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTUzNDpcdFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzNS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzOS1cdFx0VVNCX0RFVklDRShCUkNNX1VTQl9WRU5ET1JfSURfTElOS1NZUywgZGV2X2lkKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQwOlx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTQxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTQ1LVx0XHRVU0JfREVWSUNFKENZX1VTQl9WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQ2Olx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTQ3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfd2NjX2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYzoxNDpcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTUtXHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX3djY19vcHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX3djY19leGl0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MjA6XHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9XQ0MsIFRISVNfTU9EVUxFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMjEtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzc4NwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDQwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgQnJvYWRjb20gRmlybXdhcmUgVmVuZG9yIElEIFVzYWdlKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBzZWVtcyB0byBiZSBzcGVjaWZpYyB0byBgYmNtc2RoLmNgIChTRElPKSBhbmQgYHBjaWUuY2AgKFBDSWUpIGluIHRoZSBCcm9hZGNvbSBkcml2ZXIgY29kZS4gSXQmIzM5O3MgY29uc3BpY3VvdXNseSAqYWJzZW50KiBmcm9tIGB1c2IuY2AuIEluIGB1c2IuY2AsIGV2ZXJ5dGhpbmcgdXNlcyBgQlJDTUZfRldWRU5ET1JfV0NDYCwgb3IgdGhlIGRlZmF1bHQgb2YgMCB3aGljaCBhbHNvIHJlc29sdmVzIHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLgoKSG1tLCBub3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0LCBgYmNtc2RoLmNgIGlzIHRoZSBTRElPIGludGVyZmFjZS4gSSB3b25kZXIgaWYgaXQmIzM5O3MgcG9zc2libGUgdG8gZnV6eiBTRElPIGRldmljZXMgdXNpbmcgZXhpc3RpbmcgdG9vbHM/IFRoZSBpc3N1ZSwgYXMgSSByZWNhbGwsIGlzIHRoYXQgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYW4gU0RJTyBlbXVsYXRvciBsaWtlIGl0IGRvZXMgZm9yIFVTQiwgd2hpY2ggdXNlcyBgZHVtbXlfaGNkYC4KCldoYXQgYWJvdXQgUENJZSwgdGhlbj8gVW5mb3J0dW5hdGVseSwgU3l6a2FsbGVyIGFsc28gZG9lc24mIzM5O3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIGRldmljZXMsIHNvIHRoYXQmIzM5O3MgYW5vdGhlciBkZWFkIGVuZC4KClJpZ2h0LCBiYWNrIHRvIHRoZSBjb3JlIGxvZ2ljLiBJZiBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBleGNsdXNpdmVseSB0aWVkIHRvIFNESU8gYW5kIFBDSWUsIHRoZW4gdGhlIGZ1bmN0aW9uIGBicmNtZl9jeXdfbWdtdF90eGAgaXMgb25seSByZWFjaGFibGUgdGhyb3VnaCBCcm9hZGNvbSBkZXZpY2VzIHVzaW5nIHRob3NlIGludGVyZmFjZXMuIEFuZCBzaW5jZSBgYnJjbWZfY3l3X21nbXRfdHhgIGlzIGFjdHVhbGx5IGxvY2F0ZWQgaW4gYGN5dy9jb3JlLmNgLCBpdCBpbXBsaWVzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgdGllZCB0byB0aGlzIHNwZWNpZmljIHZlbmRvci4KCk5vdywgYSBjcml0aWNhbCBxdWVzdGlvbjogaXMgYGJyY21mX2N5d19tZ210X3R4YCByZWFjaGFibGUgZnJvbSBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gIG9yIGB2aGNpYD8gU2luY2UgdGhpcyBpcyBwYXJ0IG9mIHRoZSBgYnJjbWZtYWNgIGRyaXZlciwgaXQgcmVxdWlyZXMgYSBgYnJjbWZtYWNgIGRldmljZSB0byBiZSBwcmVzZW50LgoKQ2FuIHdlIHRyaWNrIGl0IGludG8gYSBgYnJjbWZtYWNgIGRldmljZSBieSB1c2luZyBVU0I/IFllcywgd2UgY2FuLCBidXQgSSByZW1lbWJlciB0aGF0IGB1c2IuY2AgZXhwbGljaXRseSBzZXRzIHRoZSBgLmRyaXZlcl9pbmZvYCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYC4KClNvLCBmb3IgVVNCIGRldmljZXMsIGBmd3ZpZGAgd2lsbCBiZSBgQlJDTUZfRldWRU5ET1JfV0NDYC4gSWYgdGhhdCYjMzk7cyB0aGUgY2FzZSwgdGhlIGBkcnZyLSZndDt2b3BzYCBpcyBgYnJjbWZfd2NjX29wc2AsIHNvIGl0IGxvb2tzIGxpa2UgSSBuZWVkIHRvIGRpZyBpbnRvIGBicmNtZl93Y2Nfb3BzYCBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3djY19vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jPTIzPXN0YXRpYyBpbnQgYnJjbWZfd2NjX2FsbG9jX2Z3ZWhfaW5mbyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmM6MzY6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMzctXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX3djY19zZXRfc2FlX3B3ZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX3djY19pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xNC1cdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MTU6XHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX3djY19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xNi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy92b3BzLmgtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjk6I2RlZmluZSBXQ0NfVk9QU1x0KFx1MDAyNmJyY21mX3djY19vcHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC0xMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzUzMjcKCQkJCQkJCW91dHB1dDogNTUKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkmIzM5O3JlIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyBicmNtZl93Y2Nfb3BzKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIHVuZGVyIHRoZSBob29kIG9mIHRoaXMgYGJyY21mX3djY19vcHNgIHN0cnVjdC4gSXQmIzM5O3MgYSBrZXkgY29tcG9uZW50LCBzbyBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBjb250ZW50cy4gVGhpcyBsaWtlbHkgaG9sZHMgdGhlIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucyBvciBtZXRob2RzIHJlbGF0ZWQgdG8gdGhlIHdpcmVsZXNzIGNvbmN1cnJlbnQgY29ubmVjdGlvbiAoV0NDKSBjYXBhYmlsaXRpZXMgd2l0aGluIHRoZSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuIFVuZGVyc3RhbmRpbmcgdGhlc2Ugb3BlcmF0aW9ucyBpcyBjcnVjaWFsIGZvci4uLiBbSSYjMzk7ZCBmaWxsIGluIHRoZSByZXN0IGJhc2VkIG9uIG15IHNwZWNpZmljIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvbnRleHQsIHdoZXRoZXIgaXQmIzM5O3MgZGVidWdnaW5nLCBvcHRpbWl6YXRpb24sIHNlY3VyaXR5IGFuYWx5c2lzLCBvciBwZXJmb3JtYW5jZSB0ZXN0aW5nLCBldGMuLCBidXQgdGhlIGlkZWEgaXMgdGhhdCBJJiMzOTtkIGtub3cgKndoeSogSSYjMzk7bSBsb29raW5nIGF0IHRoaXNdLiBJJiMzOTttIGV4cGVjdGluZyB0aGlzIHRvIGJlIGEgc3RydWN0dXJlIHdpdGggZnVuY3Rpb24gcG9pbnRlcnMgb3IgY2FsbGJhY2tzLCBvciBwZXJoYXBzIGRhdGEsIGFuZCBJJiMzOTttIGl0Y2hpbmcgdG8gc2VlIHdoYXQga2luZCBvZiBmdW5jdGlvbmFsaXR5IGl0IGV4cG9zZXMuIExldCYjMzk7cyBzZWUgd2hhdCBnZW1zIGFyZSBoaWRkZW4gaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDMwOlx0XG4gIDMxOlx0XHRmd2VoLVx1MDAzZW51bV9ldmVudF9jb2RlcyA9IEJSQ01GX1dDQ19FX0xBU1Q7XG4gIDMyOlx0XHRkcnZyLVx1MDAzZWZ3ZWggPSBmd2VoO1xuICAzMzpcdFx0cmV0dXJuIDA7XG4gIDM0Olx0fVxuICAzNTpcdFxuICAzNjpcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcyA9IHtcbiAgMzc6XHRcdC5zZXRfc2FlX3Bhc3N3b3JkID0gYnJjbWZfd2NjX3NldF9zYWVfcHdkLFxuICAzODpcdFx0LmFsbG9jX2Z3ZWhfaW5mbyA9IGJyY21mX3djY19hbGxvY19md2VoX2luZm8sXG4gIDM5Olx0fTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3OTIKCQkJCQkJCW91dHB1dDogNTkKCQkJCQkJCXRob3VnaHRzOiA5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4KCioqQW5hbHl6aW5nIHRoZSBgYnJjbWZfd2NjX29wc2AgU3RydWN0dXJlKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGJyY21mX3djY19vcHNgLiBBbmQgaXQgc2VlbXMgbGlrZSwgKnN1cnByaXNpbmdseSosIGl0IGRvZXNuJiMzOTt0IGFjdHVhbGx5IGRlZmluZSBhIGAuZ2V0X2NmZzgwMjExX29wc2AgZmllbGQuIFRoYXQmIzM5O3MgYSBiaXQgdW5leHBlY3RlZC4gTm93LCBpZiB0aGF0IHBvaW50ZXIgaXMgYE5VTExgLCB0aGVuIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYCBiYXNpY2FsbHkgYmVjb21lcyBhIG5vLW9wLCByaWdodD8gSXQganVzdCB3b24mIzM5O3QgZG8gYW55dGhpbmcgYmVjYXVzZSB0aGVyZSYjMzk7cyBubyBmdW5jdGlvbiB0byBjYWxsLiBBbHJpZ2h0LCB0byBjb25maXJtIHRoaXMgY2hhaW4gb2YgdGhvdWdodCBJJiMzOTttIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfZnd2aWRfZ2V0X2NmZzgwMjExX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMzMwPWludCBicmNtZl9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTM3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM3MTpcdGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg9NjI9c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfYWN0aXZhdGVfZXZlbnRzKHN0cnVjdCBicmNtZl9pZiAqaWZwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NzI6c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTczLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY0NzcKCQkJCQkJCW91dHB1dDogNTMKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgaW5zdHJ1Y3Rpb25zOgoKKipBbmFseXppbmcgYGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHNgIGluIGBmd3ZpZC5oYCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgY3JhY2sgb3BlbiBgZnd2aWQuaGAgYW5kIGZvY3VzIHNwZWNpZmljYWxseSBvbiBgYnJjbWZfZnd2aWRfZ2V0X2NmZzgwMjExX29wc2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBjZmc4MDIxMSB3aXJlbGVzcyBzdWJzeXN0ZW0uIEtub3dpbmcgdGhpcyBpcyBjcml0aWNhbDsgdGhpcyBsaWtlbHkgZGVmaW5lcyB0aGUgZW50cnkgcG9pbnRzIHRoYXQgYWxsb3cgdGhlIGZpcm13YXJlIHRvIGludGVyZmFjZSB3aXRoIHRoZSBrZXJuZWwmIzM5O3Mgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBhbmQgcmVndWxhdG9yeSBkb21haW5zLiBJJiMzOTttIGFscmVhZHkgYW50aWNpcGF0aW5nIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgYSBzZXQgb2Ygb3BlcmF0aW9ucyBvciBmdW5jdGlvbiBwb2ludGVycyB0aGF0IGNmZzgwMjExIGNhbiB1c2UgdG8gY29uZmlndXJlIGFuZCBjb250cm9sIHRoZSBCcm9hZGNvbSBmaXJtd2FyZSB0aHJvdWdoIHRoZSBkcml2ZXIuIFRoaXMgaXMgYSBjcnVjaWFsIGxpbmssIGFuZCBsaWtlbHkgY29udGFpbnMgdGhlIGdsdWUgdGhhdCBhbGxvd3MgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBob3cgdGhlIHN0cnVjdHVyZXMgYXJlIGRlZmluZWQsIGhvdyB0aGUgcG9pbnRlcnMgYXJlIHNldCwgYW5kIHdoYXQgc2VjdXJpdHkgY29uc2lkZXJhdGlvbnMgYXJlIGluIHBsYWNlLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBoYXJkd2FyZS1zb2Z0d2FyZSBpbnRlcmFjdGlvbiBhdCBhIGxvdyBsZXZlbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDcwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDE1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNzA6XHR9XG4gIDcxOlx0XG4gIDcyOlx0c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbiAgNzM6XHR7XG4gIDc0Olx0XHRpZiAoIWRydnItXHUwMDNldm9wcyB8fCAhZHJ2ci1cdTAwM2V2b3BzLVx1MDAzZWdldF9jZmc4MDIxMV9vcHMpXG4gIDc1Olx0XHRcdHJldHVybjtcbiAgNzY6XHRcbiAgNzc6XHRcdGRydnItXHUwMDNldm9wcy1cdTAwM2VnZXRfY2ZnODAyMTFfb3BzKGRydnIpO1xuICA3ODpcdH1cbiAgNzk6XHRcbiAgODA6XHRzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbiAgODE6XHR7XG4gIDgyOlx0XHRpZiAoIWRydnItXHUwMDNldm9wcyB8fCAhZHJ2ci1cdTAwM2V2b3BzLVx1MDAzZXJlZ2lzdGVyX2V2ZW50X2hhbmRsZXJzKVxuICA4MzpcdFx0XHRyZXR1cm47XG4gIDg0Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MDMwCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogNjc0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVucmVhY2hhYmxlIENvZGUgUGF0aCBBbmFseXNpcyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBicmNtZl9jeXdfbWdtdF90eGAgZnVuY3Rpb24uIFRoZSBjb2RlIGxvZ2ljIHN0YXRlcyB0aGF0IGl0JiMzOTtzIG9ubHkgYWNjZXNzaWJsZSB3aGVuIGBmd3ZpZGAgaXMgc2V0IHRvIGBCUkNNRl9GV1ZFTkRPUl9DWVdgLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhpcyB2ZW5kb3IgSUQgaXMgc3BlY2lmaWNhbGx5IGFzc2lnbmVkIHRvIFBDSWUgYW5kIFNESU8gZGV2aWNlcy4gU28sIG5hdHVyYWxseSwgSSBpbW1lZGlhdGVseSB0aG91Z2h0LCAmIzM0O1dhaXQsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSYjMzk7cyBhYnNvbHV0ZWx5IG5vIHdheSBVU0IgZGV2aWNlcyBjYW4gdHJpZ2dlciB0aGlzIHBhdGguJiMzNDsKCkkgd2VudCBiYWNrIHRvIHJldmlldyBgdXNiLmNgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBicmNtZl91c2JfZGV2aWRfdGFibGVgLiBJIHNjYW5uZWQgdGhyb3VnaCBhbGwgdGhlIGVudHJpZXMsIGFuZCB3aGlsZSB0aGUgbWFqb3JpdHksIGRlZmluZWQgYnkgYEJSQ01GX1VTQl9ERVZJQ0VgLCBgTElOS1NZU19VU0JfREVWSUNFYCwgYW5kIGBDWVBSRVNTX1VTQl9ERVZJQ0VgLCBzZXQgdGhlIGAuZHJpdmVyX2luZm9gIHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLCBJIGRpZCBzZWUgYSBzcGVjaWZpYyBlbnRyeTogYHsgVVNCX0RFVklDRShCUkNNX1VTQl9WRU5ET1JfSURfTEcsIEJSQ01fVVNCXzQzMjQyX0xHX0RFVklDRV9JRCkgfWAuIEJ1dCwgY3J1Y2lhbGx5LCBpdCAqZG9lc24mIzM5O3QqIHNldCB0aGUgYC5kcml2ZXJfaW5mb2AgZmllbGQuIFRoaXMgbWVhbnMsIGJ5IGRlZmF1bHQsIGBmd3ZpZGAgaXMgMC4gQW5kIHRoZW4sIEkgaGFkIHRvIGRvdWJsZS1jaGVjayBteSB2ZW5kb3IgSUQgZW51bSwgY29uZmlybWluZyBgQlJDTUZfRldWRU5ET1JfV0NDYCBpcyBpbmRlZWQgMCwgd2hpY2ggZnVydGhlciByZWluZm9yY2VkIG15IGFzc3VtcHRpb24uCgpTbywgZm9yIGFsbCB0aGUgVVNCIGRldmljZXMgbGlzdGVkLCBgZnd2aWRgIGVuZHMgdXAgYXMgYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFRoYXQgc2V0dGxlcyBpdDogYGJyY21mX2N5d19tZ210X3R4YCBpcyAqbmV2ZXIqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgVVNCIHBhdGguIEl0JiMzOTtzIHN0cmljdGx5IFBDSWUgYW5kIFNESU8uCgpTaW5jZSBzeXprYWxsZXIgZG9lc24mIzM5O3Qgc2VlbSB0byBlbXVsYXRlIFBDSWUgb3IgU0RJTyBCcm9hZGNvbSBkZXZpY2VzLCBpdCBtZWFucyB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cCBJJiMzOTttIHVzaW5nIGNhbiYjMzk7dCB0cmlnZ2VyIHRoaXMgY29kZS4gQnV0LCBiZWZvcmUgSSBtb3ZlIG9uLCBJIGhhdmUgdG8gYXNrIG15c2VsZiwgaXMgdGhlcmUgKmFueSogb3RoZXIgcG9zc2libGUgZXhlY3V0aW9uIHBhdGg/IElzIHRoZXJlIGEgZGlyZWN0IGNhbGwgdG8gYGJyY21mX2N5d19tZ210X3R4YCBmcm9tIHNvbWV3aGVyZSBlbHNlIHRoYXQgSSBzaG91bGQgYmUgYXdhcmUgb2Y/CgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX2N5d19tZ210X3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjI2OnN0YXRpYyBhdG9taWNfdCBicmNtZl9jeXdfbWdtdF90eF9pZCA9IEFUT01JQ19JTklUKDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MTAzPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MTA0OmludCBicmNtZl9jeXdfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTA1LVx0XHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MTI4Olx0KmNvb2tpZSA9IGF0b21pY19pbmNfcmV0dXJuKFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTEyOS1cdHZpZiA9IGNvbnRhaW5lcl9vZih3ZGV2LCBzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfdmlmLCB3ZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0yMzQ9c3RhdGljIHZvaWQgYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyMzY6XHRkcnZyLVx1MDAzZW9wcy1cdTAwM2VtZ210X3R4ID0gYnJjbWZfY3l3X21nbXRfdHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yMzctXHRkcnZyLVx1MDAzZW9wcy1cdTAwM2VleHRlcm5hbF9hdXRoID0gYnJjbWZfY3l3X2V4dGVybmFsX2F1dGg7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4ODcxCgkJCQkJCQlvdXRwdXQ6IDE3NAoJCQkJCQkJdGhvdWdodHM6IDM4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBSZWFjaGFiaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBjb2RlIGluIHF1ZXN0aW9uLCBgYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHNgLCBpcyBvbmx5IGV2ZXIgdG91Y2hlZCBpZiBgZnd2aWRgIGlzIHNldCB0byBgQlJDTUZfRldWRU5ET1JfQ1lXYC4gQW5kIHRoYXQgYGZ3dmlkYCB2YWx1ZSwgSSYjMzk7bSBwcmV0dHkgc3VyZSwgaXMgZXhjbHVzaXZlbHkgdGllZCB0byBCcm9hZGNvbSYjMzk7cyBQQ0llIGFuZCBTRElPIGRldmljZXMuIFNpbmNlIEkga25vdyBzeXprYWxsZXIgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGVzZSB0eXBlcyBvZiBCcm9hZGNvbSBkZXZpY2VzLCB0aGlzIGNvZGUgcGF0aCBzaG91bGQgYmUgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVS4gTGV0IG1lIGp1c3QgY29uZmlybSB0aGF0IHF1aWNrbHkg4oCTIG5vLCBzeXprYWxsZXIgZG9lc27igJl0IGVtdWxhdGUgU0RJTy4gT2theSwgYW5kIEnigJltIHByZXR0eSBjZXJ0YWluIGl0IG9ubHkgZW11bGF0ZXMgZ2VuZXJpYyBQQ0kgZGV2aWNlcyBvciB1c2VzIGR1bW15IGRldmljZXMuIEl0IGRvZXNuJiMzOTt0IGhhdmUgYSBCcm9hZGNvbSBXaS1GaSBQQ0llIGVtdWxhdG9yLgoKVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBjb2RlIHRoYXQmIzM5O3MgZnVuZGFtZW50YWxseSBpbmFjY2Vzc2libGUgd2l0aGluIHRoZSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgd2UmIzM5O3JlIHdvcmtpbmcgaW4sIHdoZXRoZXIgaXQmIzM5O3MgR0NFIG9yIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLgoKTm93LCBsZXQgbWUgZ28gYmFjayBhbmQgcmV2aWV3IHRoZSBpbnN0cnVjdGlvbnMgZm9yIGRldGVybWluaW5nICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsuIFJpZ2h0LCBpdCBzYXlzOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC4uLiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4uLiAtIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKClRoYXQmIzM5O3MgYSBwZXJmZWN0IG1hdGNoLiBUaGlzIGNvZGUgaXMgaW4gYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyLCBgYnJjbWZtYWNgLCBmb3IgYSBzcGVjaWZpYyB2ZW5kb3IgSUQgKENZVyksIHdoaWNoIGlzICpvbmx5KiBzdXBwb3J0ZWQgb3ZlciBQQ0llIGFuZCBTRElPLCBuZWl0aGVyIG9mIHdoaWNoIGFyZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGZvciB0aGlzIGRldmljZS4KClNvLCBnaXZlbiB0aGlzIGNvbXBsZXRlIGxhY2sgb2YgcmVhY2hhYmlsaXR5LCBJJiMzOTttIGNvbmZpZGVudCBpbiByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGJyY21mX2N5d19tZ210X3R4YCBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyB3aXJlbGVzcyBkcml2ZXIgKGBicmNtZm1hY2ApLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcmVnaXN0ZXJlZCBhcyBhIGNmZzgwMjExIG9wZXJhdGlvbiBmb3IgZGV2aWNlcyB3aXRoIHRoZSBgQlJDTUZfRldWRU5ET1JfQ1lXYCBmaXJtd2FyZSB2ZW5kb3IgSUQuIEEgcmV2aWV3IG9mIHRoZSBkcml2ZXImIzM5O3MgYnVzIGltcGxlbWVudGF0aW9ucyBzaG93cyB0aGF0IGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGlzIG9ubHkgYXNzaWduZWQgdG8gc3BlY2lmaWMgUENJZSBhbmQgU0RJTyBkZXZpY2VzLCB3aGlsZSBhbGwgVVNCIGRldmljZXMgZGVmYXVsdCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYC4gU2luY2Ugc3RhbmRhcmQgUUVNVS9zeXprYWxsZXIgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIEJyb2FkY29tIFBDSWUgb3IgU0RJTyB3aXJlbGVzcyBoYXJkd2FyZSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlciYjMzk7cyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjoxOC43NDE5MDY3MzRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjA2MzQ0MzQ5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGJyY21mX2N5d19tZ210X3R4YCBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyB3aXJlbGVzcyBkcml2ZXIgKGBicmNtZm1hY2ApLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcmVnaXN0ZXJlZCBhcyBhIGNmZzgwMjExIG9wZXJhdGlvbiBmb3IgZGV2aWNlcyB3aXRoIHRoZSBgQlJDTUZfRldWRU5ET1JfQ1lXYCBmaXJtd2FyZSB2ZW5kb3IgSUQuIEEgcmV2aWV3IG9mIHRoZSBkcml2ZXIncyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjE4Ljc0MTkxNDYyNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUxMzc1ODk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMmU3MDIwMjE0MjYzZTU0ZGE0OTlmYjc3MmY0YjAwNTU2M2U1ZmQxM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCAyNiAxMTozNjoxNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXFxuaW5kZXggY2UwOWQ0NGZhNzNjZjguLjUzMGYwMTI2ZTNhNzcxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNcXG5AQCAtMjMsNiArMjMsOCBAQFxcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9EV0VMTF9USU1FXFx0NDAwMFxcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9XQUlUX1RJTUVcXHQoTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUUgKyAxMDApXFxuIFxcbitzdGF0aWMgYXRvbWljX3QgYnJjbWZfY3l3X21nbXRfdHhfaWQgPSBBVE9NSUNfSU5JVCgwKTtcXG4rXFxuIHN0YXRpYyBpbnQgYnJjbWZfY3l3X3NldF9zYWVfcHdkKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbiBcXHRcXHRcXHRcXHQgc3RydWN0IGNmZzgwMjExX2NyeXB0b19zZXR0aW5ncyAqY3J5cHRvKVxcbiB7XFxuQEAgLTEyMyw3ICsxMjUsNyBAQCBpbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4gXFx0aWYgKCFpZWVlODAyMTFfaXNfYXV0aChtZ210LVxcdTAwM2VmcmFtZV9jb250cm9sKSlcXG4gXFx0XFx0cmV0dXJuIGJyY21mX2NmZzgwMjExX21nbXRfdHgod2lwaHksIHdkZXYsIHBhcmFtcywgY29va2llKTtcXG4gXFxuLVxcdCpjb29raWUgPSAwO1xcbitcXHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcXG4gXFx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xcbiBcXG4gXFx0cmVpbml0X2NvbXBsZXRpb24oXFx1MDAyNnZpZi1cXHUwMDNlbWdtdF90eCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjE5LjM5NjA4NjY3N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjkxNDA5MjQ4NjQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlcidzIGJ1cyBpbXBsZW1lbnRhdGlvbnMgc2hvd3MgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBvbmx5IGFzc2lnbmVkIHRvIHNwZWNpZmljIFBDSWUgYW5kIFNESU8gZGV2aWNlcywgd2hpbGUgYWxsIFVTQiBkZXZpY2VzIGRlZmF1bHQgdG8gYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFNpbmNlIHN0YW5kYXJkIFFFTVUvc3l6a2FsbGVyIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIG9yIFNESU8gd2lyZWxlc3MgaGFyZHdhcmUsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMmU3MDIwMjE0MjYzZTU0ZGE0OTlmYjc3MmY0YjAwNTU2M2U1ZmQxM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDI2IDExOjM2OjE2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuY1xuaW5kZXggY2UwOWQ0NGZhNzNjZjguLjUzMGYwMTI2ZTNhNzcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXG5AQCAtMjMsNiArMjMsOCBAQFxuICNkZWZpbmUgTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUVcdDQwMDBcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9XQUlUX1RJTUVcdChNR01UX0FVVEhfRlJBTUVfRFdFTExfVElNRSArIDEwMClcbiBcbitzdGF0aWMgYXRvbWljX3QgYnJjbWZfY3l3X21nbXRfdHhfaWQgPSBBVE9NSUNfSU5JVCgwKTtcbitcbiBzdGF0aWMgaW50IGJyY21mX2N5d19zZXRfc2FlX3B3ZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdFx0XHRcdCBzdHJ1Y3QgY2ZnODAyMTFfY3J5cHRvX3NldHRpbmdzICpjcnlwdG8pXG4ge1xuQEAgLTEyMyw3ICsxMjUsNyBAQCBpbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbiBcdGlmICghaWVlZTgwMjExX2lzX2F1dGgobWdtdC1cdTAwM2VmcmFtZV9jb250cm9sKSlcbiBcdFx0cmV0dXJuIGJyY21mX2NmZzgwMjExX21nbXRfdHgod2lwaHksIHdkZXYsIHBhcmFtcywgY29va2llKTtcbiBcbi1cdCpjb29raWUgPSAwO1xuK1x0KmNvb2tpZSA9IGF0b21pY19pbmNfcmV0dXJuKFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcbiBcdHZpZiA9IGNvbnRhaW5lcl9vZih3ZGV2LCBzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfdmlmLCB3ZGV2KTtcbiBcbiBcdHJlaW5pdF9jb21wbGV0aW9uKFx1MDAyNnZpZi1cdTAwM2VtZ210X3R4KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjE5LjM5NjA4ODMwN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NjQ3MjIyNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoIGZvciBWaXJ0dWFsaXplZCBUZXN0aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jYC4gSXQgc2VlbXMgdG8gYmUgY2hhbmdpbmcgaG93IGBicmNtZl9jeXdfbWdtdF90eGAgYXNzaWducyBhIGBjb29raWVgLiBJbnN0ZWFkIG9mIHRoZSBoYXJkY29kZWQgMCwgdGhleSdyZSB1c2luZyBhbiBhdG9taWMgY291bnRlciwgYGJyY21mX2N5d19tZ210X3R4X2lkYC4gVGhhdCdzIGEgc2Vuc2libGUgaW1wcm92ZW1lbnQgZm9yIGF2b2lkaW5nIHBvdGVudGlhbCBjb2xsaXNpb25zLCBidXQgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZWFzaWx5IGNhbiBJIHRlc3QgdGhpcyBwYXRjaCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50P1xuXG5JdCdzIHRoZSBgYnJjbWZtYWNgIEJyb2FkY29tIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggbWVhbnMgSSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyBoYXJkd2FyZSBpcyB0eXBpY2FsbHkgZW11bGF0ZWQuIFN0YW5kYXJkIFFFTVUgZG9lc24ndCB1c3VhbGx5IGVtdWxhdGUgcGh5c2ljYWwgV2ktRmkgaGFyZHdhcmUgZGlyZWN0bHkuICpicmNtZm1hYyouLi4gaXMgaXQgZXZlbiBlbXVsYXRlZD8gTm8sIGl0J3Mgbm90IGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggSSBrbm93IGlzLiBUaGlzIGBicmNtZm1hY2AgZHJpdmVyIGlzIGEgRnVsbE1BQyBpbXBsZW1lbnRhdGlvbiBmb3IgQnJvYWRjb20gY2hpcHMsIHdoaWNoIG1lYW5zIFNESU8sIFBDSWUsIGFuZCBVU0IuXG5cblNvLCBob3cgZG8gSSBnZXQgdGhpcyBydW5uaW5nIGluIGEgdmlydHVhbCBtYWNoaW5lPyBDYW4gSSBlbXVsYXRlIFVTQiBCcm9hZGNvbSBkZXZpY2VzIHVzaW5nIFVTQiBnYWRnZXQgdGVjaG5pcXVlcz8gUG9zc2libHksIGJ1dCBTeXprYWxsZXIgdXN1YWxseSBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYCBvciBgdmhjaWAgZm9yIFVTQiB0ZXN0aW5nLiBCdXQgd2hhdCBhYm91dCBmdXp6aW5nPyBTeXprYWxsZXIgc3VwcG9ydHMgVVNCIGZ1enppbmcgdGhyb3VnaCBgZHVtbXlfaGNkYCwgc28gSSBuZWVkIHRvIHNlZSBpZiBgYnJjbWZtYWNgIGFjdHVhbGx5ICpoYXMqIFVTQiBzdXBwb3J0LiBUaGF0J3MgdGhlIG5leHQgY3JpdGljYWwgc3RlcC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhpcyBkcml2ZXIgY2FuIGJlIHRhcmdldGVkIHZpYSBVU0IsIGFuZCBpZiBzbywgaG93IGZlYXNpYmxlIGl0IGlzIHRvIHNldCB1cCBhIHRlc3QgZW52aXJvbm1lbnQgdGhhdCBleHBsb2l0cyB0aGUgYGR1bW15X2hjZGAgc3VwcG9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMyMSwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjI1LjA2MDgxNDIwMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NTQ5MjQ4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jeXdfbWdtdF90eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjI2OnN0YXRpYyBhdG9taWNfdCBicmNtZl9jeXdfbWdtdF90eF9pZCA9IEFUT01JQ19JTklUKDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTI3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MTAzPXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjEwNDppbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMDUtXFx0XFx0ICAgICAgc3RydWN0IGNmZzgwMjExX21nbXRfdHhfcGFyYW1zICpwYXJhbXMsIHU2NCAqY29va2llKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjEyODpcXHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjktXFx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MjM0PXN0YXRpYyB2b2lkIGJyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjM1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyMzY6XFx0ZHJ2ci1cXHUwMDNlb3BzLVxcdTAwM2VtZ210X3R4ID0gYnJjbWZfY3l3X21nbXRfdHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjM3LVxcdGRydnItXFx1MDAzZW9wcy1cXHUwMDNlZXh0ZXJuYWxfYXV0aCA9IGJyY21mX2N5d19leHRlcm5hbF9hdXRoO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjoyNS4xNTYzMTY2OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NDEyMTUwMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIGJyY21mbWFjIFVTQiBDYXBhYmlsaXRpZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcy4gVGhlIHRhc2sgYXQgaGFuZCBpcyB0byBhc2NlcnRhaW4gaWYgdGhlIGBicmNtZm1hY2AgZHJpdmVyIGhhcyBhbnkgYnVpbHQtaW4gVVNCIHN1cHBvcnQuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAuIEkgbmVlZCB0byBrbm93IGlmIHRoaXMgaXMgZXZlbiBhIHZpYWJsZSBhdmVudWUgdG8gZXhwbG9yZSBiZWZvcmUgSSBzcGVuZCB0b28gbXVjaCB0aW1lIGRpZ2dpbmcgaW50byBvdGhlciBwb3NzaWJpbGl0aWVzIG9yIGFsdGVybmF0aXZlIGRyaXZlciBhcHByb2FjaGVzLiBVbmRlcnN0YW5kaW5nIHRoZSBkcml2ZXIncyB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZSBhbmQgaGFyZHdhcmUgc3VwcG9ydCwgZXNwZWNpYWxseSBjb25jZXJuaW5nIGRpZmZlcmVudCBpbnRlcmZhY2UgdHlwZXMsIHdpbGwgZGljdGF0ZSBteSBuZXh0IGFjdGlvbnMuIEtub3dpbmcgdGhpcyB3aWxsIHN0cmVhbWxpbmUgbXkgYXBwcm9hY2ggc2lnbmlmaWNhbnRseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY5MSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjI4LjA5NzUzMzg0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDk2MDI1MiwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3VzYl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6MzY6MjguMjAyNTAyNjMyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk2NDI2OTkxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRlYnVnZ2luZyB0aGUgYnJjbWZtYWMgTW9kdWxlIEluaXRpYWxpemF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGJyY21mbWFjYCBzaXR1YXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgdG8gcXVpY2tseSB6ZXJvIGluIG9uIGhvdyB0aGlzIG1vZHVsZSBpcyBiZWluZyBpbml0aWFsaXplZCBhbmQgaG93IGl0IGludGVncmF0ZXMgd2l0aCB0aGUgVVNCIHN1YnN5c3RlbSwgaWYgYXQgYWxsLiBNeSBpbml0aWFsIGh1bmNoIGlzIHRvIGxvb2sgZm9yIHRoZSBrZXkgcmVnaXN0cmF0aW9uIHBvaW50cy4gU28sIEkgbmVlZCB0byBjaGVjayBmb3IgdGhlIHRlbGx0YWxlIHNpZ25zOiBJJ20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZSBmb3IgY2FsbHMgdG8gYHVzYl9yZWdpc3RlcmAgLSB0aGF0IHdpbGwgYmUgY3JpdGljYWwgaWYgaXQncyBvcGVyYXRpbmcgb24gYSBVU0IgaW50ZXJmYWNlIC0gb3IsIGlmIGl0J3MgbW9yZSBzZWxmIGNvbnRhaW5lZCwgdGhlIG1vcmUgZ2VuZXJpYyBgbW9kdWxlX2luaXRgLiBUaGVzZSBhcmUgdGhlIGJyZWFkY3J1bWJzIEknbSBsb29raW5nIGZvciB0byB1bmRlcnN0YW5kIHdoZXJlIHRvIHN0YXJ0IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgd2hhdCB0aGUgY29yZSBlbnRyeSBwb2ludHMgYXJlLiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludCBhbmQgdGhlIFVTQiBpbnRlcmZhY2UuIEZyb20gdGhlcmUgSSBjYW4gdW5kZXJzdGFuZCB0aGUgdW5kZXJseWluZyBpc3N1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg5MSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjMxLjE2Njc3NjEzNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5OTk4OTkzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1c2JfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzI3PXZvaWQgYnJjbWZfdXNiX2V4aXQodm9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjMyODppbnQgYnJjbWZfdXNiX3JlZ2lzdGVyKHZvaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zMjktI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzMwPXN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl91c2JfZXhpdCh2b2lkKSB7IH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MzMxOnN0YXRpYyBpbmxpbmUgaW50IGJyY21mX3VzYl9yZWdpc3Rlcih2b2lkKSB7IHJldHVybiAwOyB9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTMzMi0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTU0Nj1pbnQgX19pbml0IGJyY21mX2NvcmVfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTU1NDpcXHRlcnIgPSBicmNtZl91c2JfcmVnaXN0ZXIoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTE1NTUtXFx0aWYgKGVycilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NTY6XFx0XFx0Z290byBlcnJvcl91c2JfcmVnaXN0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTU3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTY0LVxcdGJyY21mX3VzYl9leGl0KCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxNTY1OmVycm9yX3VzYl9yZWdpc3RlcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTE1NjYtXFx0YnJjbWZfc2Rpb19leGl0KCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTU4Nj12b2lkIGJyY21mX3VzYl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTYwMDppbnQgYnJjbWZfdXNiX3JlZ2lzdGVyKHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNjAyLVxcdGJyY21mX2RiZyhVU0IsIFxcXCJFbnRlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE2MDM6XFx0cmV0dXJuIHVzYl9yZWdpc3RlcihcXHUwMDI2YnJjbWZfdXNiZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDQtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjozMS4yNjY3NzMzOTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODkzODg1NDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGBicmNtZm1hY2AgRHJpdmVyIHZpYSBVU0IqKlxuXG5Pa2F5LCBzbyB0aGUgYGJyY21mbWFjYCBkcml2ZXIsIGh1aD8gSSBqdXN0IHJlYWxpemVkIGl0IGhhcyBVU0Igc3VwcG9ydCDigJMgdGhhdCdzIHBvdGVudGlhbGx5IGdyZWF0IG5ld3MgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gcHJvYmFibHkgZ2V0IGF0IGl0IHdpdGggYSBgZHVtbXlfaGNkYC4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIHdlIHJlYWNoIGBicmNtZl9jeXdfbWdtdF90eGAgdmlhIHRoaXMgVVNCIGludGVyZmFjZT8gVGhhdCBmdW5jdGlvbiBpbiBwYXJ0aWN1bGFyLCBiZWNhdXNlIEkga25vdyB0aGF0J3Mgd2hlcmUgdGhlIHBhdGNoIGlzLlxuXG5SaWdodCwgc28gdGhlIHBhdGNoIGlzIG1vZGlmeWluZyBgYnJjbWZfY3l3X21nbXRfdHhgLCBhbmQgdGhhdCdzIHNpdHRpbmcgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jYC4gRXhjZWxsZW50LiBOb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGBicmNtZl9jeXdfbWdtdF90eGAgaXMgYWN0dWFsbHkgdXNlZC4gTmVlZCB0byB0cmFjZSBpdHMgY2FsbCBzaXRlcyB0byBmaWd1cmUgb3V0IGEgcGF0aCB0byB0cmlnZ2VyaW5nIGl0LiBMZXQncyBkaWcgaW50byB0aGF0IGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzOCwiT3V0cHV0VG9rZW5zIjo1OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjozNS4xNjA2NjI3MjNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1NDM3ODk5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTIwMD1icmNtZl9jeXdfZXh0ZXJuYWxfYXV0aChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjIzNDpzdGF0aWMgdm9pZCBicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wcyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0zNjg9Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzcxLVxcdC5hY3RpdmF0ZV9ldmVudHMgPSBicmNtZl9jeXdfYWN0aXZhdGVfZXZlbnRzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM3MjpcXHQuZ2V0X2NmZzgwMjExX29wcyA9IGJyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM3My1cXHQucmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMgPSBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjM1LjUxNTA0Njc2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5ODA4OTk5NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGNvZGUuXG5cbioqSW52ZXN0aWdhdGluZyBicmNtZl9jeXdfb3BzKipcblxuUmlnaHQsIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBzY29wZSBvZiBgYnJjbWZfY3l3X29wc2AuIE15IGZpcnN0IHN0ZXAsIG5hdHVyYWxseSwgaXMgdG8gdHJhY2UgaXRzIHVzYWdlLiBJJ2xsIG5lZWQgdG8gc2VlIHByZWNpc2VseSB3aGVyZSB0aGlzIHN0cnVjdHVyZSBpcyBiZWluZyByZWZlcmVuY2VkIHdpdGhpbiB0aGUgY29kZWJhc2UuIFVuZGVyc3RhbmRpbmcgaXRzIGNvbm5lY3Rpb25zIGlzIGNydWNpYWwgdG8gZ3Jhc3BpbmcgaXRzIGZ1bmN0aW9uIGFuZCBpbXBvcnRhbmNlIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEknbGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGUgc3Vycm91bmRpbmcgY29kZSB0byBkZXRlcm1pbmUgaG93IHRoaXMgb2JqZWN0IGlzIGJlaW5nIGVtcGxveWVkLiBLbm93aW5nIHRoZSBjb250ZXh0cyB3aWxsIHBhaW50IGEgYmV0dGVyIHBpY3R1cmUsIGVzcGVjaWFsbHkgaW4gdW5kZXJzdGFuZGluZyBhbnkgZGVwZW5kZW5jaWVzIG9yIGltcGxpY2F0aW9ucyBvZiBpdHMgY2FsbHMgYW5kIHVzYWdlLiBJJ20gZ29pbmcgdG8gc3RhcnQgd2l0aCBhIHN0cmFpZ2h0Zm9yd2FyZCBzZWFyY2ggYW5kIGJ1aWxkIGZyb20gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NTksIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjozOC40OTU5NDg5NDFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExOTQzNDE1MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jeXdfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MzU2PXN0YXRpYyB2b2lkIGJyY21mX2N5d19yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM2ODpjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX2N5d19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzY5LVxcdC5zZXRfc2FlX3Bhc3N3b3JkID0gYnJjbWZfY3l3X3NldF9zYWVfcHdkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNC1cXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNTpcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaDo5OiNkZWZpbmUgQ1lXX1ZPUFNcXHQoXFx1MDAyNmJyY21mX2N5d19vcHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmgtMTAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjM4LjYxNTM4OTc4MloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODUzMjUxMTAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgSSBkZWx2ZSBpbnRvIHRoaXMgY29kZTpcblxuKipBbmFseXppbmcgdGhlIEJSQ01GIEZpcm13YXJlIFZlbmRvciBSZWdpc3RyYXRpb24qKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBicmNtZl9jeXdfb3BzYCBpcyByZWdpc3RlcmVkIGFzIHRoZSB2ZW5kb3Igb3BlcmF0aW9ucyBzdHJ1Y3R1cmUgZm9yIGBCUkNNRl9GV1ZFTkRPUl9DWVdgLiBUaGF0J3MgdGhlIGNvcmUgb2YgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGZpcm13YXJlLCB0eWluZyB0aGUgb3BlcmF0aW9ucyB0byBhIHNwZWNpZmljIHZlbmRvciBJRC4gTm93LCB0aGUgcXVlc3Rpb24gdGhhdCBwb3BzIGludG8gbXkgaGVhZCwgZ2l2ZW4gbXkgcGFzdCBleHBlcmllbmNlLCBpcywgZG9lcyBgQlJDTUZfRldWRU5ET1JfQ1lXYCBjb3ZlciB0aGUgVVNCIHNpZGUgb2YgdGhpbmdzPyBJcyB0aGlzIHdoZXJlIFVTQiBkZXZpY2VzIGFyZSBoYW5kbGVkIGFzIHdlbGw/IFRpbWUgdG8gY29uZmlybS4gSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGBicmNtZl91c2JkcnZyYCBtb2R1bGUgb3IsIG1vcmUgc3BlY2lmaWNhbGx5LCB0aGUgYGJyY21mX3VzYl9wcm9iZWAgZnVuY3Rpb24uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2sgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSB2ZW5kb3IgYXNzb2NpYXRpb24gYXBwbGllcyBjb25zaXN0ZW50bHkgYWNyb3NzIHRoZSBkaWZmZXJlbnQgdW5kZXJseWluZyBoYXJkd2FyZSBpbnRlcmZhY2VzIHN1cHBvcnRlZCBieSB0aGUgYnJvYWRjb20gZHJpdmVyLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgYENZV2AgdmVuZG9yIElEIGFwcGxpZXMsIHdoZXRoZXIgaXQgaXMgUENJLCBTRElPIG9yIFVTQi4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhlIGludGVyYWN0aW9ucyBpbiBlYWNoIG9mIHRob3NlIHBhdGhzLCB0aGUgcHJvYmUgYW5kIHRoZSBmaXJtd2FyZSBsb2FkaW5nLCB0byBlbnN1cmUgZXZlcnl0aGluZyBpcyBjb25zaXN0ZW50IGFuZCBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY2NTQsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo0Mi40Njg2NDQwNjRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODEyMjAzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJCUkNNRl9GV1ZFTkRPUl9DWVdcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzQ9ZW51bSBicmNtZl9md3ZlbmRvciB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTM1LVxcdEJSQ01GX0ZXVkVORE9SX1dDQyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MzY6XFx0QlJDTUZfRldWRU5ET1JfQ1lXLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zNy1cXHRCUkNNRl9GV1ZFTkRPUl9CQ0EsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0xOTU3PXN0YXRpYyBzMzIgYnJjbWZfc2V0X3dwYV92ZXJzaW9uKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cXHR9IGVsc2UgaWYgKHNtZS1cXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjE5NzA6XFx0XFx0aWYgKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cXHRcXHQgICAgc21lLVxcdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0MTY9c3RhdGljIGNvbnN0IHN0cnVjdCBicmNtZl9wY2llX2RydmRhdGEgZHJ2ZGF0YVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxNy1cXHRbQlJDTUZfRFJWREFUQV9DWVddID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjQxODpcXHRcXHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfQ1lXLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxOS1cXHRcXHQuZndfc2VlZCA9IGZhbHNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzNS1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1MzY6XFx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9DWVc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM3LVxcdGRlZmF1bHQ6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjQyLjYwNjc3MTA0MVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzM4NTM1ODY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSd2ZSBkZXNjcmliZWQ6XG5cbioqSW52ZXN0aWdhdGluZyBGaXJtd2FyZSBWZW5kb3IgVXNhZ2UgQWNyb3NzIERyaXZlciBNb2R1bGVzKipcblxuUmlnaHQsIHNvIEkgc2VlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGJlaW5nIHV0aWxpemVkIHdpdGhpbiB0aGUgYHBjaWUuY2AgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGRvZXMgdGhpcyBzcGVjaWZpYyB2ZW5kb3IgSUQgYWxzbyBleHRlbmQgaXRzIHByZXNlbmNlIHRvIHRoZSBgdXNiLmNgIGFuZCBgc2Rpby5jYCBtb2R1bGVzIGFzIHdlbGw/IEl0J3MgYSBrZXkgcXVlc3Rpb24gYmVjYXVzZSBjb25zaXN0ZW5jeSBpbiBob3cgd2UgaGFuZGxlIGZpcm13YXJlLXJlbGF0ZWQgdmVuZG9yIGlkZW50aWZpZXJzIGFjcm9zcyB0aGUgYm9hcmQgbWFrZXMgZm9yIGEgY2xlYW5lciwgbW9yZSBtYWludGFpbmFibGUgY29kZSBiYXNlLlxuXG5UaGVyZWZvcmUsIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgY2hlY2sgYm90aCBgdXNiLmNgIGFuZCBgc2Rpby5jYCBmb3IgYW55IGFwcGVhcmFuY2VzIG9mIGVpdGhlciB0aGUgYGZ3dmlkYCBvciBgdmVuZG9yYCBzeW1ib2xzLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNvbXByZWhlbnNpdmUgcGljdHVyZSBvZiBob3cgdGhpcyB2ZW5kb3IgaW5mb3JtYXRpb24gaXMgdXNlZCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIGlmIHRoZXJlIGFyZSBhbnkgZGlzY3JlcGFuY2llcyBpbiBpdHMgaW1wbGVtZW50YXRpb24gdGhhdCBuZWVkIHRvIGJlIGFkZHJlc3NlZC4gQSBzeXN0ZW1hdGljIHN3ZWVwIGlzIHRoZSBvbmx5IHdheSB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTg3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6MzY6NDUuOTQ1MzE3MDA2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NDA4NjY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmd3ZpZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9NYWtlZmlsZT0xMz1icmNtZm1hYy1vYmpzICs9IFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9NYWtlZmlsZS0yMi1cXHRcXHRmaXJtd2FyZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvTWFrZWZpbGU6MjM6XFx0XFx0Znd2aWQubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL01ha2VmaWxlLTI0LVxcdFxcdGZlYXR1cmUubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYy04LSNpbmNsdWRlIFxcdTAwM2NidXMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYzo5OiNpbmNsdWRlIFxcdTAwM2Nmd3ZpZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTEwLSNpbmNsdWRlIFxcdTAwM2NmZWF0dXJlLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYz0yMj1zdGF0aWMgaW50IGJyY21mX2JjYV9hbGxvY19md2VoX2luZm8oc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jOjM1OmNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfYmNhX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYy0zNi1cXHQuZmVhdF9hdHRhY2ggPSBicmNtZl9iY2FfZmVhdF9hdHRhY2gsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTctI2luY2x1ZGUgXFx1MDAzY2NvcmUuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjg6I2luY2x1ZGUgXFx1MDAzY2Z3dmlkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy05LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9iY2FfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM6MTQ6XFx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9CQ0EsIFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMTUtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmJyY21mX2JjYV9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfYmNhX2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjIwOlxcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0JDQSwgVEhJU19NT0RVTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMjEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmgtNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL3ZvcHMuaDo4OmV4dGVybiBjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX2JjYV9vcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmgtOS0jZGVmaW5lIEJDQV9WT1BTXFx0KFxcdTAwMjZicmNtZl9iY2Ffb3BzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jPTEwNDA9c3RhdGljIGludCBicmNtZl9vcHNfc2Rpb19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTEwODYtXFx0YnVzX2lmLVxcdTAwM2Vwcm90b190eXBlID0gQlJDTUZfUFJPVE9fQkNEQztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM6MTA4NzpcXHRidXNfaWYtXFx1MDAzZWZ3dmlkID0gaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy0xMDg4LVxcdGRldl9zZXRfZHJ2ZGF0YShcXHUwMDI2ZnVuYy1cXHUwMDNlZGV2LCBidXNfaWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTE0MT1zdHJ1Y3QgYnJjbWZfYnVzX3N0YXRzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0xNTctICogQGNoaXByZXY6IHJldmlzaW9uIG9mIHRoZSBkb25nbGUgY2hpcC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MTU4OiAqIEBmd3ZpZDogZmlybXdhcmUgdmVuZG9yLXN1cHBvcnQgaWRlbnRpZmllciBvZiB0aGUgZGV2aWNlLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0xNTktICogQGFsd2F5c191c2VfZndzX3F1ZXVlOiBidXMgd2FudHMgdXNlIHF1ZXVlIGFsc28gd2hlbiBmd3NpZ25hbCBpcyBpbmFjdGl2ZS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0xNjU9c3RydWN0IGJyY21mX2J1cyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTc4LVxcdHUzMiBjaGlwcmV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDoxNzk6XFx0ZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTgwLVxcdGJvb2wgYWx3YXlzX3VzZV9md3NfcXVldWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0zNS0jaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MzY6I2luY2x1ZGUgXFxcImZ3dmlkLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0xOTU3PXN0YXRpYyBzMzIgYnJjbWZfc2V0X3dwYV92ZXJzaW9uKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cXHR9IGVsc2UgaWYgKHNtZS1cXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjE5NzA6XFx0XFx0aWYgKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cXHRcXHQgICAgc21lLVxcdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0yMzgxPWJyY21mX2NmZzgwMjExX2Nvbm5lY3Qoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0yNTI1LVxcdFxcdFxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoyNTI2OlxcdFxcdFxcdGVyciA9IGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBcXHUwMDI2c21lLVxcdTAwM2VjcnlwdG8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTI1MjctXFx0XFx0XFx0aWYgKCFlcnIgXFx1MDAyNlxcdTAwMjYgc21lLVxcdTAwM2VjcnlwdG8ucHNrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTE0NT1icmNtZl9jZmc4MDIxMV9zdGFydF9hcChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDQtXFx0XFx0XFx0cHJvZmlsZS1cXHUwMDNldXNlX2Z3YXV0aCB8PSBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfU0FFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1MzA1OlxcdFxcdFxcdGVyciA9IGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBjcnlwdG8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDYtXFx0XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01MzkzPXN0YXRpYyBpbnQgYnJjbWZfY2ZnODAyMTFfc3RvcF9hcChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU0MTYtXFx0XFx0XFx0aWYgKHByb2ZpbGUtXFx1MDAzZXVzZV9md2F1dGggXFx1MDAyNiBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfU0FFKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NDE3OlxcdFxcdFxcdFxcdGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBcXHUwMDI2Y3J5cHRvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NDE4LVxcdFxcdFxcdHByb2ZpbGUtXFx1MDAzZXVzZV9md2F1dGggPSBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfTk9ORSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz02ODAwPXN0YXRpYyB2b2lkIGJyY21mX3JlZ2lzdGVyX2V2ZW50X2hhbmRsZXJzKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02ODM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjY4Mzg6XFx0YnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoY2ZnLVxcdTAwM2VwdWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTY4MzktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0yMC0jaW5jbHVkZSBcXFwiYnVzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoyMTojaW5jbHVkZSBcXFwiZnd2aWQuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTIyLSNpbmNsdWRlIFxcXCJkZWJ1Zy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMTQwPXN0YXRpYyBpbnQgYnJjbWZfcmV2aW5mb19yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTE1MC1cXHRzZXFfcHJpbnRmKHMsIFxcXCJjaGlwOiAlcyAoJXMpXFxcXG5cXFwiLCByaS1cXHUwMDNlY2hpcG5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxMTUxOlxcdFxcdCAgIGJyY21mX2Z3dmlkX3ZlbmRvcl9uYW1lKGJ1c19pZi1cXHUwMDNlZHJ2cikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTE1Mi1cXHRzZXFfcHJpbnRmKHMsIFxcXCJjaGlwcGtnOiAldVxcXFxuXFxcIiwgcmktXFx1MDAzZWNoaXBwa2cpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMzMwPWludCBicmNtZl9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM0NzpcXHRyZXQgPSBicmNtZl9md3ZpZF9hdHRhY2goZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzQ4LVxcdGlmIChyZXQgIT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM0OTpcXHRcXHRicGh5X2VycihkcnZyLCBcXFwiYnJjbWZfZnd2aWRfYXR0YWNoIGZhaWxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzUwLVxcdFxcdGdvdG8gZmFpbDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTM3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEzNzE6XFx0YnJjbWZfZnd2aWRfZ2V0X2NmZzgwMjExX29wcyhkcnZyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTE0MzA9dm9pZCBicmNtZl9kZXRhY2goc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTQ3MTpcXHRicmNtZl9md3ZpZF9kZXRhY2goZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmg9MTAxPXN0cnVjdCBicmNtZl9wdWIge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaC0xNDUtXFx0dTggc3RhX21hY19pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaDoxNDY6XFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5oLTE0Ny1cXHR2b2lkICp2ZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTgtI2luY2x1ZGUgXFx1MDAzY2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjk6I2luY2x1ZGUgXFx1MDAzY2Z3dmlkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTAtI2luY2x1ZGUgXFx1MDAzY2Z3aWwuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTM1Nj1zdGF0aWMgdm9pZCBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzozNjg6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM2OS1cXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX2N5d19zZXRfc2FlX3B3ZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtNy0jaW5jbHVkZSBcXHUwMDNjY29yZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6ODojaW5jbHVkZSBcXHUwMDNjZnd2aWQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC05LSNkZWZpbmUgQ1lXX1ZPUFNcXHQoXFx1MDAyNmJyY21mX2N5d19vcHMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE1LSNpbmNsdWRlIFxcXCJmd2lsX3R5cGVzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuYzoxNjojaW5jbHVkZSBcXFwiZnd2aWQuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE3LSNpbmNsdWRlIFxcXCJmZWF0dXJlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jPTI4OT12b2lkIGJyY21mX2ZlYXRfYXR0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTM0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jOjM0NzpcXHRicmNtZl9md3ZpZF9mZWF0X2F0dGFjaChpZnApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmMtMzQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0xNy0jaW5jbHVkZSBcXFwiYnVzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYzoxODojaW5jbHVkZSBcXFwiZnd2aWQuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTE5LS8qKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYz0zNDQ9aW50IGJyY21mX2Z3ZWhfYXR0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTM0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jOjM0OTpcXHRlcnIgPSBicmNtZl9md3ZpZF9hbGxvY19md2VoX2luZm8oZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0zNTAtXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jPTQzOD1pbnQgYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMoc3RydWN0IGJyY21mX2lmICppZnApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTQ1OC1cXHQvKiBhbGxvdyBwZXItdmVuZG9yIG1ldGhvZCB0byBhY3RpdmF0ZSBmaXJtd2FyZSBldmVudHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jOjQ1OTpcXHRpZiAoIWJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhpZnApKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmMtNDYwLVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTgtI2luY2x1ZGUgXFxcImRlYnVnLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTk6I2luY2x1ZGUgXFxcImZ3dmlkLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoyNTpzdHJ1Y3QgYnJjbWZfZnd2aWRfZW50cnkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI2LVxcdGNvbnN0IGNoYXIgKm5hbWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6Mjc6XFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0yOC1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGRydnJfbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjM1OnN0YXRpYyBERUZJTkVfTVVURVgoZnd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0zNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQwLVxcdFxcdC5uYW1lID0gI19uYW1lLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDE6XFx0XFx0LnJlZ19kb25lID0gQ09NUExFVElPTl9JTklUSUFMSVpFUihmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXS5yZWdfZG9uZSksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MjpcXHRcXHQuZHJ2cl9saXN0ID0gTElTVF9IRUFEX0lOSVQoZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl8gIyMgX3ZpZF0uZHJ2cl9saXN0KSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ3LVxcdFxcdC5uYW1lID0gI19uYW1lLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDg6XFx0XFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00OS1cXHRcXHQudm9wcyA9IF92aWQgIyMgX1ZPUFMgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NTM6c3RhdGljIHN0cnVjdCBicmNtZl9md3ZpZF9lbnRyeSBmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SX05VTV0gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTQtXFx0RldWSURfRU5UUllfSU5JVChXQ0MsIHdjYyksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy01OS0jaWYgSVNfTU9EVUxFKENPTkZJR19CUkNNRk1BQylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2MDpzdGF0aWMgaW50IGJyY21mX2Z3dmlkX3JlcXVlc3RfbW9kdWxlKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NjQ6XFx0aWYgKCFmd3ZpZF9saXN0W2Z3dmlkXS52bW9kKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NjU6XFx0XFx0c3RydWN0IGNvbXBsZXRpb24gKnJlZ19kb25lID0gXFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLnJlZ19kb25lO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjY3OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2OTpcXHRcXHRyZXQgPSByZXF1ZXN0X21vZHVsZShcXFwiYnJjbWZtYWMtJXNcXFwiLCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03MC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6Nzc6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03OC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04MS1mYWlsOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjgyOlxcdGJyY21mX2VycihcXFwibW9kPSVzOiBmYWlsZWQgJWRcXFxcblxcXCIsIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtODMtXFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjg2OmludCBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCwgc3RydWN0IG1vZHVsZSAqdm1vZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4NzpcXHRcXHRcXHRcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4OTpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQlJDTUZfRldWRU5ET1JfTlVNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTkwLVxcdFxcdHJldHVybiAtRVJBTkdFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6OTY6XFx0aWYgKFdBUk5fT04oZnd2aWRfbGlzdFtmd3ZpZF0udm1vZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtOTctXFx0XFx0cmV0dXJuIC1FRVhJU1Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6OTk6XFx0YnJjbWZfZGJnKFRSQUNFLCBcXFwibW9kPSVzOiBlbnRlclxcXFxuXFxcIiwgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwMTpcXHRtdXRleF9sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDM6XFx0Znd2aWRfbGlzdFtmd3ZpZF0udm1vZCA9IHZtb2Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTA0OlxcdGZ3dmlkX2xpc3RbZnd2aWRdLnZvcHMgPSB2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDY6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDg6XFx0Y29tcGxldGVfYWxsKFxcdTAwMjZmd3ZpZF9saXN0W2Z3dmlkXS5yZWdfZG9uZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTA5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTExLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMTI6QlJDTUZfRVhQT1JUX1NZTUJPTF9HUEwoYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTE0OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMTg6XFx0aWYgKGZ3dmlkIFxcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMTktXFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyMTpcXHRpZiAoV0FSTl9PTihmd3ZpZF9saXN0W2Z3dmlkXS52bW9kICE9IG1vZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTIyLVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMjQ6XFx0bXV0ZXhfbG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTI2OlxcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShidXMsIHRtcCwgXFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLmRydnJfbGlzdCwgbGlzdCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyNzpcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyOTpcXHRcXHRicmNtZl9kYmcoSU5GTywgXFxcIm1vZD0lczogcmVtb3ZpbmcgJXNcXFxcblxcXCIsIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTMwLVxcdFxcdFxcdCAgZGV2X25hbWUoYnVzLVxcdTAwM2VkZXYpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMzM6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMzQtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMzY6XFx0Znd2aWRfbGlzdFtmd3ZpZF0udm1vZCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTM3OlxcdGZ3dmlkX2xpc3RbZnd2aWRdLnZvcHMgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEzODpcXHRyZWluaXRfY29tcGxldGlvbihcXHUwMDI2Znd2aWRfbGlzdFtmd3ZpZF0ucmVnX2RvbmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDA6XFx0YnJjbWZfZGJnKFRSQUNFLCBcXFwibW9kPSVzOiBleGl0XFxcXG5cXFwiLCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDE6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0NC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTQ1OkJSQ01GX0VYUE9SVF9TWU1CT0xfR1BMKGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNDYtI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDc6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfcmVxdWVzdF9tb2R1bGUoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE1MzppbnQgYnJjbWZfZnd2aWRfYXR0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNTU6XFx0ZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCA9IGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU2LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE1ODpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQVJSQVlfU0laRShmd3ZpZF9saXN0KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNTktXFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2MTpcXHRicmNtZl9kYmcoVFJBQ0UsIFxcXCJtb2Q9JXM6IGVudGVyOiBkZXYgJXNcXFxcblxcXCIsIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTYyLVxcdFxcdCAgZGV2X25hbWUoZHJ2ci1cXHUwMDNlYnVzX2lmLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTY0OlxcdG11dGV4X2xvY2soXFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2NjpcXHRyZXQgPSBicmNtZl9md3ZpZF9yZXF1ZXN0X21vZHVsZShmd3ZpZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTY3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTcwOlxcdGRydnItXFx1MDAzZXZvcHMgPSBmd3ZpZF9saXN0W2Z3dmlkXS52b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE3MTpcXHRsaXN0X2FkZChcXHUwMDI2ZHJ2ci1cXHUwMDNlYnVzX2lmLVxcdTAwM2VsaXN0LCBcXHUwMDI2Znd2aWRfbGlzdFtmd3ZpZF0uZHJ2cl9saXN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTczOlxcdG11dGV4X3VubG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTc4OnZvaWQgYnJjbWZfZnd2aWRfZGV0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTc5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODA6XFx0ZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCA9IGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE4MjpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQVJSQVlfU0laRShmd3ZpZF9saXN0KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xODMtXFx0XFx0cmV0dXJuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODU6XFx0YnJjbWZfZGJnKFRSQUNFLCBcXFwibW9kPSVzOiBlbnRlcjogZGV2ICVzXFxcXG5cXFwiLCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4Ni1cXHRcXHQgIGRldl9uYW1lKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZGV2KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE4ODpcXHRtdXRleF9sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5My1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTk0OlxcdG11dGV4X3VubG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTc6Y29uc3QgY2hhciAqYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE5OTpcXHRyZXR1cm4gZnd2aWRfbGlzdFtkcnZyLVxcdTAwM2VidXNfaWYtXFx1MDAzZWZ3dmlkXS5uYW1lO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTIwMC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaD0xMj1zdHJ1Y3QgYnJjbWZfaWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MTQ6c3RydWN0IGJyY21mX2Z3dmlkX29wcyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMTUtXFx0dm9pZCAoKmZlYXRfYXR0YWNoKShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC0yMy0vKiBleHBvcnRlZCBmdW5jdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoyNDppbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKm1vZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoyNTpcXHRcXHRcXHRcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICpvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI2OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTI4LS8qIGNvcmUgZHJpdmVyIGZ1bmN0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI5OmludCBicmNtZl9md3ZpZF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MzA6dm9pZCBicmNtZl9md3ZpZF9kZXRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MzE6Y29uc3QgY2hhciAqYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MzM6c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2ZlYXRfYXR0YWNoKHN0cnVjdCBicmNtZl9pZiAqaWZwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozNTpcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzID0gaWZwLVxcdTAwM2VkcnZyLVxcdTAwM2V2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTM2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NDM6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfc2V0X3NhZV9wYXNzd29yZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC00NC1cXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGNmZzgwMjExX2NyeXB0b19zZXR0aW5ncyAqY3J5cHRvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTQ1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo0NjpcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzID0gaWZwLVxcdTAwM2VkcnZyLVxcdTAwM2V2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NTQ6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfYWxsb2NfZndlaF9pbmZvKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NjI6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfYWN0aXZhdGVfZXZlbnRzKHN0cnVjdCBicmNtZl9pZiAqaWZwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo2NDpcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzID0gaWZwLVxcdTAwM2VkcnZyLVxcdTAwM2V2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NzI6c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo4MDpzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC04MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0Mzk9YnJjbWZfcGNpZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTE3LVxcdGJ1cy1cXHUwMDNld293bF9zdXBwb3J0ZWQgPSBwY2lfcG1lX2NhcGFibGUocGRldiwgUENJX0QzaG90KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1MTg6XFx0YnVzLVxcdTAwM2Vmd3ZpZCA9IGRydmRhdGFbaWQtXFx1MDAzZWRyaXZlcl9kYXRhXS52ZW5kb3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTE5LVxcdGRldmluZm8tXFx1MDAzZWZ3c2VlZCA9IGRydmRhdGFbaWQtXFx1MDAzZWRyaXZlcl9kYXRhXS5md19zZWVkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTI2LVxcdC8qIG90cCByZWFkIG9wZXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjUyNzpcXHRzd2l0Y2ggKGJ1cy1cXHUwMDNlZnd2aWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MjgtXFx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9XQ0M6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTI0ND1zdGF0aWMgaW50IGJyY21mX3VzYl9wcm9iZV9jYihzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEyNDU6XFx0XFx0XFx0ICAgICAgZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI2OS1cXHRidXMtXFx1MDAzZXByb3RvX3R5cGUgPSBCUkNNRl9QUk9UT19CQ0RDO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxMjcwOlxcdGJ1cy1cXHUwMDNlZnd2aWQgPSBmd3ZpZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI3MS1cXHRidXMtXFx1MDAzZWFsd2F5c191c2VfZndzX3F1ZXVlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTgtI2luY2x1ZGUgXFx1MDAzY2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jOjk6I2luY2x1ZGUgXFx1MDAzY2Z3dmlkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMTAtI2luY2x1ZGUgXFx1MDAzY2NmZzgwMjExLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYz0yMz1zdGF0aWMgaW50IGJyY21mX3djY19hbGxvY19md2VoX2luZm8oc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jOjM2OmNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYy0zNy1cXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX3djY19zZXRfc2FlX3B3ZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtNy0jaW5jbHVkZSBcXHUwMDNjY29yZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6ODojaW5jbHVkZSBcXHUwMDNjZnd2aWQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX3djY19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX1dDQywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfd2NjX29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl93Y2NfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC05LSNkZWZpbmUgV0NDX1ZPUFNcXHQoXFx1MDAyNmJyY21mX3djY19vcHMpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjQ2LjAzOTQwOTg1NloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzgyNjk5ODA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgcmVxdWVzdGVkOlxuXG4qKkRlY29uc3RydWN0aW5nIGBicmNtZl91c2JfcHJvYmVfY2JgKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBicmNtZl91c2JfcHJvYmVfY2JgIGZ1bmN0aW9uIGFuZCBpbW1lZGlhdGVseSBJJ20gdGhpbmtpbmcsIFwiT2theSwgYGZ3dmlkYCBpcyBwYXNzZWQgaW4gYXMgYW4gYXJndW1lbnQuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuXCIgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgaG93IHRoaXMgYGZ3dmlkYCBpcyB1c2VkLCBzbyBteSBmaXJzdCBtb3ZlIGlzIHRvIHRyYWNlIHdoZXJlIGFuZCBob3cgdGhpcyBgYnJjbWZfdXNiX3Byb2JlX2NiYCBpcyBhY3R1YWxseSAqY2FsbGVkKi4gVGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byBgdXNiLmNgIGFuZCBmaWd1cmUgb3V0IHRoZSBjYWxsIHN0YWNrIOKAkyBnZXQgYSBoYW5kbGUgb24gd2hhdCdzIHRyaWdnZXJpbmcgdGhpcyBmdW5jdGlvbiBhbmQgd2hhdCBpbmZvcm1hdGlvbiBpcyBiZWluZyBwYXNzZWQgdXAgdGhlIGNoYWluLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIGNvbnRleHQgYXJvdW5kIHRoZSBgZnd2aWRgIGFyZ3VtZW50IGlzIGdvaW5nIHRvIGJlIGtleSB0byBzZWVpbmcgaG93IHRoaXMgZmlybXdhcmUgdmVyc2lvbiBJRCBpbXBhY3RzIHRoZSBwcm9iZSBwcm9jZWR1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDA1LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6MzY6NDkuODIyMTExNTJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0NTcwNTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJyY21mX3VzYl9wcm9iZV9jYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMjI0PWJyY21mX3VzYl9wcmVwYXJlX2Z3X3JlcXVlc3Qoc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEyNDQ6c3RhdGljIGludCBicmNtZl91c2JfcHJvYmVfY2Ioc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMjQ1LVxcdFxcdFxcdCAgICAgIGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTM0Mj1icmNtZl91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNDQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNDQzOlxcdHJldCA9IGJyY21mX3VzYl9wcm9iZV9jYihkZXZpbmZvLCBpZC1cXHUwMDNlZHJpdmVyX2luZm8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNDQ0LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjQ5LjkxNjY4ODVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM2NTE1NTE4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBGaXJtd2FyZSBJRCoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgYW5kIEkga25vdyB0aGF0J3Mgd2hlcmUgdGhlIGBmd3ZpZGAgaXMgc3RvcmVkLiBNeSBndXQgdGVsbHMgbWUgdGhpcyBpcyByZWxhdGVkIHRvIHRoZSBmaXJtd2FyZSB2ZXJzaW9uLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjcm9zcy1yZWZlcmVuY2UgdGhhdCB3aXRoIHRoZSBkZXZpY2UgSUQgdGFibGUuIFRoYXQgd291bGQgYmUgYGJyY21mX3VzYl9kZXZpZF90YWJsZWAgaW4gYHVzYi5jYCwgYmVjYXVzZSBJJ20gYmV0dGluZyB3ZSBhcmUgbG9va2luZyBhdCBzb21ldGhpbmcgdG8gZG8gd2l0aCBCcm9hZGNvbSBVU0IgZGV2aWNlcy4gTGV0J3Mgc2VlIGhvdyB0aGF0IGZ3dmlkIGlzIHVzZWQsIGVzcGVjaWFsbHkgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBkcml2ZXIsIGFuZCBpZiB0aGVyZSBhcmUgYW55IGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIG9yIHF1aXJrcyBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWMgdmVyc2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtIGlzIGNvcnJlbGF0aW5nIHRoZSByZXBvcnRlZCBmaXJtd2FyZSB3aXRoIHRoZSBoYXJkd2FyZSBpdCdzIG1hbmFnaW5nLiBUaW1lIHRvIGRpZyFcblxuXG4iLCJJbnB1dFRva2VucyI6MjM2NzAsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1My4yODE4NDc2NDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMDM1NjA0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl91c2JfZGV2aWRfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTMyNj1icmNtZl91c2JfZGlzY29ubmVjdF9jYihzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTMzOC0vKiBGb3J3YXJkIGRlY2xhcmF0aW9uIGZvciB1c2JfbWF0Y2hfaWQoKSBjYWxsICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEzMzk6c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTEzNDI9YnJjbWZfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTM1Mi1cXHRpZiAoIWlkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEzNTM6XFx0XFx0aWQgPSB1c2JfbWF0Y2hfaWQoaW50ZiwgYnJjbWZfdXNiX2RldmlkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTM1NC1cXHRcXHRpZiAoIWlkKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTUxMT1zdGF0aWMgaW50IGJyY21mX3VzYl9yZXNldF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU0OTpzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgYnJjbWZfdXNiX2RldmlkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTAtXFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzE0M19ERVZJQ0VfSUQpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NjM6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGJyY21mX3VzYl9kZXZpZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1NjU9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGJyY21mX3VzYmRydnIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU2OC1cXHQuZGlzY29ubmVjdCA9IGJyY21mX3VzYl9kaXNjb25uZWN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTY5OlxcdC5pZF90YWJsZSA9IGJyY21mX3VzYl9kZXZpZF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU3MC1cXHQuc3VzcGVuZCA9IGJyY21mX3VzYl9zdXNwZW5kLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1My40MTIyMDk5NDhaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU3MjY4OTEyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBCUkNNRiBVU0IgTGFuZHNjYXBlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgYEJSQ01GX1VTQl9ERVZJQ0VgIG1hY3JvLCBvciBhdCBsZWFzdCBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQncyBoZWxkIHdpdGhpbiB0aGUgYGJyY21mX3VzYl9kZXZpZF90YWJsZWAuIEknbSBndWVzc2luZyB0aGF0IHRoaXMgaXMgdGhlIGNlbnRyYWwgcGllY2UgZm9yIGlkZW50aWZ5aW5nIGFuZCBjb25maWd1cmluZyBVU0IgZGV2aWNlcyBmb3IgdGhlIEJyb2FkY29tIFdpRmkgZHJpdmVyLiBMaWtlbHksIGl0IGhvbGRzIGFsbCB0aGUgdml0YWwgdmVuZG9yIElEcywgcHJvZHVjdCBJRHMsIG1heWJlIGV2ZW4gcmV2aXNpb24gSURzLCB0aGF0J2xsIGFsbG93IHRoZSBkcml2ZXIgdG8gcmVjb2duaXplIGNvbXBhdGlibGUgaGFyZHdhcmUgYW5kIGxvYWQgdGhlIHJpZ2h0IGZpcm13YXJlIG9yIGNvbmZpZ3VyYXRpb25zLiBJJ20ga2VlbiB0byBkaXNzZWN0IHRoaXMgdGFibGUgb3IgbWFjcm8sIGl0J2xsIHVuZG91YnRlZGx5IHJldmVhbCBzb21lIGNydWNpYWwgaW5zaWdodHMgaW50byB0aGUgZHJpdmVyJ3MgZGV2aWNlLW1hdGNoaW5nIGxvZ2ljLiBXaGV0aGVyIGl0J3MgYSBzaW1wbGUgbG9va3VwIHRhYmxlIG9yIHNvbWUgbW9yZSBzb3BoaXN0aWNhdGVkIG1hY3JvIG1hZ2ljLCBrbm93aW5nIGl0cyBpbnRlcm5hbHMgd2lsbCBzaWduaWZpY2FudGx5IGVuaGFuY2UgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgVVNCIGRldmljZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIHdpdGhpbiB0aGlzIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ4MzYsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1Ni45ODQ5MDE5MjlaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyODM3MDg0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJCUkNNRl9VU0JfREVWSUNFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1MTE9c3RhdGljIGludCBicmNtZl91c2JfcmVzZXRfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzE6I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMyLVxcdHsgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1NDk9c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTUwOlxcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMxNDNfREVWSUNFX0lEKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU1MTpcXHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjM2X0RFVklDRV9JRCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTI6XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzI0Ml9ERVZJQ0VfSUQpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTUzOlxcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDM1NjlfREVWSUNFX0lEKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU1NC1cXHRMSU5LU1lTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMyMzVfTElOS1NZU19ERVZJQ0VfSUQpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTctXFx0Lyogc3BlY2lhbCBlbnRyeSBmb3IgZGV2aWNlIHdpdGggZmlybXdhcmUgbG9hZGVkIGFuZCBydW5uaW5nICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTg6XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTU5LVxcdENZUFJFU1NfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1Ny4xMTMyNzg0MjNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAzNTY2NDQ4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBVU0IgRGV2aWNlIERlZmluaXRpb25zKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBjZXJ0YWluIFVTQiBkZXZpY2VzLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhlIGRlZmluaXRpb25zIGZvciBgQlJDTUZfVVNCX0RFVklDRWAgYW5kIGBDWVBSRVNTX1VTQl9ERVZJQ0VgIHdpdGhpbiB0aGUgYHVzYi5jYCBmaWxlLiBJJ20gbm90IGxvb2tpbmcgZm9yIGEgY2FzdWFsIG92ZXJ2aWV3IGhlcmU7IEkgd2FudCB0aGUgZ3JhbnVsYXIgZGV0YWlscy4gSSBuZWVkIHRvIHNlZSB0aGUgZXhhY3Qgc3RydWN0dXJlIGRlZmluaXRpb25zLCB0aGUgYXNzb2NpYXRlZCB2ZW5kb3IgYW5kIHByb2R1Y3QgSURzLCBhbmQgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRoYXQgbWlnaHQgYmUgaGFwcGVuaW5nIGJhc2VkIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0gb3IgY29uZmlndXJhdGlvbi4gVGhpcyB3aWxsIGdpdmUgbWUgYSBzb2xpZCBmb3VuZGF0aW9uIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBkcml2ZXIncyBiZWhhdmlvdXIgd2hlbiB0aGVzZSBzcGVjaWZpYyBkZXZpY2VzIGFyZSBjb25uZWN0ZWQuIEkgbmVlZCB0byBrbm93IHdoYXQgaG9va3MgYXJlIGJlaW5nIHVzZWQgYXMgd2VsbC4gTGV04oCZcyBzZWUgd2hhdCB3ZSBjYW4gZmluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU3OTcsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzowMS4xNDg5NDYwNDlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NzcwODcyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIjZGVmaW5lLipVU0JfREVWSUNFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1MTE9c3RhdGljIGludCBicmNtZl91c2JfcmVzZXRfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzE6I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMyLVxcdHsgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1Mzc6I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzgtXFx0eyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU0MzojZGVmaW5lIENZUFJFU1NfVVNCX0RFVklDRShkZXZfaWQpIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0NC1cXHR7IFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MDEuNDk2NjYwMTNaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQxNTc5NzQ1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEaXZpbmcgaW50byBVU0IgQ29yZSAtIExpbmUgMTUzMSoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgdGFraW5nIGEgbG9vayBhdCBgdXNiLmNgLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMTUzMS4gSSdtIHByb2JhYmx5IGludGVyZXN0ZWQgaW4gdW5kZXJzdGFuZGluZyBob3cgYSBwYXJ0aWN1bGFyIFVTQiBmdW5jdGlvbiBpcyBiZWluZyBoYW5kbGVkLCBvciBtYXliZSBJJ20gdHJvdWJsZXNob290aW5nIGFuIGlzc3VlIGFuZCBoYXZlIGJlZW4gZGlyZWN0ZWQgdG8gdGhpcyBhcmVhIGJ5IGEgc3RhY2sgdHJhY2Ugb3IgbG9nIG1lc3NhZ2VzLiBJJ20gYWxyZWFkeSBmb3JtdWxhdGluZyBoeXBvdGhlc2VzIGFib3V0IHdoYXQgSSBtaWdodCBmaW5kIGJhc2VkIG9uIG15IGdlbmVyYWwgdW5kZXJzdGFuZGluZyBvZiB0aGUgVVNCIHN0YWNrLiBJcyB0aGlzIGEgY3JpdGljYWwgcGF0aCBmb3IgZGV2aWNlIGVudW1lcmF0aW9uPyBFbmRwb2ludCBoYW5kbGluZz8gTGlrZWx5LCB0aGlzIGNodW5rIG9mIGNvZGUgaXMgaW52b2x2ZWQgaW4gZWl0aGVyIGluaXRpYWxpemF0aW9uLCB0cmFuc2ZlciBzY2hlZHVsaW5nLCBvciBlcnJvciBtYW5hZ2VtZW50IHdpdGhpbiB0aGUgVVNCIGNvcmUuIEtub3dpbmcgdGhlIGV4YWN0IGNvbnRleHQgd2lsbCBoZWxwLCBidXQgSSdsbCBzdGFydCB3aXRoIGEgZGV0YWlsZWQgcmV2aWV3IG9mIHRoaXMgc2VjdGlvbi4gSSB3aWxsIGJlIHN1cmUgdG8gY3Jvc3MtcmVmZXJlbmNlIGFueSByZWxldmFudCBzdHJ1Y3R1cmVzIG9yIGZ1bmN0aW9ucyByZWZlcmVuY2VkIHdpdGhpbiB0aGF0IHNlY3Rpb24uIExldCdzIGRpZyBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0NjMsIk91dHB1dFRva2VucyI6NTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzowNC45MTI0NjA3NjhaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3MzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNTMwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNTMwOlxcdFxcbjE1MzE6XFx0I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbjE1MzI6XFx0XFx0eyBcXFxcXFxuMTUzMzpcXHRcXHRcXHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9CUk9BRENPTSwgZGV2X2lkKSwgXFxcXFxcbjE1MzQ6XFx0XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG4xNTM1OlxcdFxcdH1cXG4xNTM2OlxcdFxcbjE1Mzc6XFx0I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxcXFxuMTUzODpcXHRcXHR7IFxcXFxcXG4xNTM5OlxcdFxcdFxcdFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0xJTktTWVMsIGRldl9pZCksIFxcXFxcXG4xNTQwOlxcdFxcdFxcdC5kcml2ZXJfaW5mbyA9IEJSQ01GX0ZXVkVORE9SX1dDQyBcXFxcXFxuMTU0MTpcXHRcXHR9XFxuMTU0MjpcXHRcXG4xNTQzOlxcdCNkZWZpbmUgQ1lQUkVTU19VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbjE1NDQ6XFx0XFx0eyBcXFxcXFxuMTU0NTpcXHRcXHRcXHRVU0JfREVWSUNFKENZX1VTQl9WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcXFxcbjE1NDY6XFx0XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG4xNTQ3OlxcdFxcdH1cXG4xNTQ4OlxcdFxcbjE1NDk6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdID0ge1xcbjE1NTA6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzE0M19ERVZJQ0VfSUQpLFxcbjE1NTE6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzIzNl9ERVZJQ0VfSUQpLFxcbjE1NTI6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzI0Ml9ERVZJQ0VfSUQpLFxcbjE1NTM6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzU2OV9ERVZJQ0VfSUQpLFxcbjE1NTQ6XFx0XFx0TElOS1NZU19VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjM1X0xJTktTWVNfREVWSUNFX0lEKSxcXG4xNTU1OlxcdFxcdENZUFJFU1NfVVNCX0RFVklDRShDWV9VU0JfNDM3M19ERVZJQ0VfSUQpLFxcbjE1NTY6XFx0XFx0eyBVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9MRywgQlJDTV9VU0JfNDMyNDJfTEdfREVWSUNFX0lEKSB9LFxcbjE1NTc6XFx0XFx0Lyogc3BlY2lhbCBlbnRyeSBmb3IgZGV2aWNlIHdpdGggZmlybXdhcmUgbG9hZGVkIGFuZCBydW5uaW5nICovXFxuMTU1ODpcXHRcXHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCX0JDTUZXX0RFVklDRV9JRCksXFxuMTU1OTpcXHRcXHRDWVBSRVNTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfQkNNRldfREVWSUNFX0lEKSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MDQuOTEyNTg5Njg4WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNDM5OTUzODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgQ3lwcmVzcyBVU0IgRGV2aWNlIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJdCBzZWVtcyBhIGJpdCBvZGQgdGhhdCBgQ1lQUkVTU19VU0JfREVWSUNFYCBpcyB1dGlsaXppbmcgYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFRoYXQganVzdCBkb2Vzbid0IGZlZWwgcmlnaHQuIExldCBtZSBkb3VibGUtY2hlY2sgdGhlIGBDWVBSRVNTX1VTQl9ERVZJQ0VgIGNvbmZpZ3VyYXRpb24gYWdhaW4sIGZvY3VzaW5nIG9uIHRoYXQgZHJpdmVyIGluZm9ybWF0aW9uIHNldHRpbmcuIFJpZ2h0LCBsaW5lIDE1NDYuLi4gdGhlcmUgaXQgaXM6IGAuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBIbW0uXG5cbk5vdywgdGhhdCBicmluZ3MgdXAgYW5vdGhlciBwb2ludC4gV2hlcmUgKmlzKiBgQlJDTUZfRldWRU5ET1JfQ1lXYCBiZWluZyBlbXBsb3llZD8gSSBuZWVkIHRvIHRyYWNrIGRvd24gd2hlcmUgdGhhdCdzIGFjdHVhbGx5IHVzZWQuIExldCBtZSBnbyBiYWNrIGFuZCByZS1leGFtaW5lIHRoZSBgQ1lQUkVTU19VU0JfREVWSUNFYCBzZXR0aW5ncyB3aXRoaW4gYHVzYi5jYC5cblxuQWgsIG9rYXksIEkgc2VlIGl0IG5vdy4gV2FpdC4gSXQncyBiZWNvbWluZyBjbGVhci4uLiBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBhY3R1YWxseSBkZWZpbmVkIHdpdGhpbiBgcGNpZS5jYCBhbmQgYHNkaW8uY2AuIE5vdCBVU0IgYXQgYWxsISBJIHN1cHBvc2UgdGhpcyBtYWtlcyBzZW5zZS4gTGV0J3MgZGVsdmUgaW50byBgc2Rpby5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgc3BlY2lmaWMgZmlybXdhcmUgdmVuZG9yIGNvbmZpZ3VyYXRpb24gaXMgdXRpbGl6ZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhlc2UgdmVuZG9yIG9wdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MzY3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MDkuMTU2NTg4MzQ5WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDc2NTcyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQlJDTUZfRldWRU5ET1JfQ1lXXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTM0PWVudW0gYnJjbWZfZnd2ZW5kb3Ige1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zNS1cXHRCUkNNRl9GV1ZFTkRPUl9XQ0MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM2OlxcdEJSQ01GX0ZXVkVORE9SX0NZVyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMzctXFx0QlJDTUZfRldWRU5ET1JfQkNBLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTE5NjktXFx0fSBlbHNlIGlmIChzbWUtXFx1MDAzZWNyeXB0by53cGFfdmVyc2lvbnMgXFx1MDAyNiBOTDgwMjExX1dQQV9WRVJTSU9OXzIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlxcdFxcdGlmIChkcnZyLVxcdTAwM2VidXNfaWYtXFx1MDAzZWZ3dmlkID09IEJSQ01GX0ZXVkVORE9SX0NZVyBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTE5NzEtXFx0XFx0ICAgIHNtZS1cXHUwMDNlY3J5cHRvLmFrbV9zdWl0ZXNbMF0gPT0gV0xBTl9BS01fU1VJVEVfU0FFKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MTQ6XFx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTUtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmJyY21mX2N5d19vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfY3l3X2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjIwOlxcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMjEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDE2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnJjbWZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTctXFx0W0JSQ01GX0RSVkRBVEFfQ1lXXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MTg6XFx0XFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX0NZVyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTktXFx0XFx0LmZ3X3NlZWQgPSBmYWxzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQzOT1icmNtZl9wY2llX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzUtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTM2OlxcdGNhc2UgQlJDTUZfRldWRU5ET1JfQ1lXOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzNy1cXHRkZWZhdWx0OlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzowOS4yNjQyNTE5NDlaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMzOTk4NDAzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBCcm9hZGNvbSBGaXJtd2FyZSBVc2FnZSoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgYEJSQ01GX0ZXVkVORE9SX0NZV2AgYW5kIG15IGZpcnN0IHRob3VnaHQgaXMsIFwiV2hlcmUgZXhhY3RseSBpcyB0aGlzIHVzZWQ/XCIgSSBxdWlja2x5IHJlYWxpemUgaXQgc2VlbXMgdG8gYmUgY29uZmluZWQgdG8gYHBjaWUuY2AuIFRoYXQncyBpbnRlcmVzdGluZywgYnV0IEkgbmVlZCB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBjb2RlIGJhc2UsIHNvIEknbSBnb2luZyB0byBqdW1wIG92ZXIgdG8gYGJjbXNkaC5jYCDigJMgdGhhdCdzIHdoZXJlIHRoZSBTRElPIHN0dWZmIGlzLCBhbmQgaXQncyBhIGNyaXRpY2FsIGFyZWEgZm9yIEJyb2FkY29tIGZpcm13YXJlLiBHb3R0YSBtYWtlIHN1cmUgdGhpcyBpc24ndCBhIHdpZGVyIGNvbmNlcm4gdGhhbiBJIGluaXRpYWxseSB0aG91Z2h0LiBJIG5lZWQgdG8gc2VlIGlmIHRoZSBTRElPIGRyaXZlciBpcyBoYW5kbGluZyB0aGluZ3MgdGhlIHNhbWUgd2F5LCBvciBpZiB0aGVyZSdzIGEgZGlmZmVyZW5jZSBpbiB0aGUgdmVuZG9yIHN0cmluZyB1c2FnZS4gVGhpcyBhbGwgaGVscHMgbWUgdW5kZXJzdGFuZCB0aGUgb3ZlcmFsbCBkZXNpZ24gYW5kIGFueSBwb3RlbnRpYWwgaW5jb25zaXN0ZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODk5NSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjEyLjYwNDIzODI4M1oiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA4NTA3NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkJSQ01GX0ZXVkVORE9SX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfYmNhX2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTEzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjE0OlxcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQkNBLCBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTE1LVxcdFxcdFxcdFxcdFxcdCAgIFxcdTAwMjZicmNtZl9iY2Ffb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX2JjYV9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYzoyMDpcXHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9CQ0EsIFRISVNfTU9EVUxFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTIxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYz05MDA9aW50IGJyY21mX3NkaW9kX3Byb2JlKHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NjgtXFx0XFx0U0RJT19ERVZJQ0UoU0RJT19WRU5ET1JfSURfQlJPQURDT00sIGRldl9pZCksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM6OTY5OlxcdFxcdC5kcml2ZXJfZGF0YSA9IEJSQ01GX0ZXVkVORE9SXyAjIyBmd192ZW5kIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmMtOTcwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NzQtXFx0XFx0U0RJT19ERVZJQ0UoU0RJT19WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYzo5NzU6XFx0XFx0LmRyaXZlcl9kYXRhID0gQlJDTUZfRldWRU5ET1JfICMjIGZ3X3ZlbmQgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NzYtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTM0PWVudW0gYnJjbWZfZnd2ZW5kb3Ige1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNTpcXHRCUkNNRl9GV1ZFTkRPUl9XQ0MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM2OlxcdEJSQ01GX0ZXVkVORE9SX0NZVyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6Mzc6XFx0QlJDTUZfRldWRU5ET1JfQkNBLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zOC1cXHQvKiBrZWVwIGxhc3QgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6Mzk6XFx0QlJDTUZfRldWRU5ET1JfTlVNLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDo0MDpcXHRCUkNNRl9GV1ZFTkRPUl9JTlZBTElEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTQxLX07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0xOTU3PXN0YXRpYyBzMzIgYnJjbWZfc2V0X3dwYV92ZXJzaW9uKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cXHR9IGVsc2UgaWYgKHNtZS1cXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjE5NzA6XFx0XFx0aWYgKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cXHRcXHQgICAgc21lLVxcdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYz0zNT1zdGF0aWMgREVGSU5FX01VVEVYKGZ3dmlkX2xpc3RfbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0zOC0jZGVmaW5lIEZXVklEX0VOVFJZX0lOSVQoX3ZpZCwgX25hbWUpIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzozOTpcXHRbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdID0geyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNDAtXFx0XFx0Lm5hbWUgPSAjX25hbWUsIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MTpcXHRcXHQucmVnX2RvbmUgPSBDT01QTEVUSU9OX0lOSVRJQUxJWkVSKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLnJlZ19kb25lKSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQyOlxcdFxcdC5kcnZyX2xpc3QgPSBMSVNUX0hFQURfSU5JVChmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXS5kcnZyX2xpc3QpLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNDMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNDUtI2RlZmluZSBGV1ZJRF9FTlRSWV9JTklUKF92aWQsIF9uYW1lKSBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDY6XFx0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXSA9IHsgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ3LVxcdFxcdC5uYW1lID0gI19uYW1lLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDg6XFx0XFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00OS1cXHRcXHQudm9wcyA9IF92aWQgIyMgX1ZPUFMgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NTM6c3RhdGljIHN0cnVjdCBicmNtZl9md3ZpZF9lbnRyeSBmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SX05VTV0gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTQtXFx0RldWSURfRU5UUllfSU5JVChXQ0MsIHdjYyksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYz04Nj1pbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKnZtb2QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6ODk6XFx0aWYgKGZ3dmlkIFxcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05MC1cXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jPTExND1pbnQgYnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCwgc3RydWN0IG1vZHVsZSAqbW9kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjExODpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQlJDTUZfRldWRU5ET1JfTlVNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExOS1cXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQxNj1zdGF0aWMgY29uc3Qgc3RydWN0IGJyY21mX3BjaWVfZHJ2ZGF0YSBkcnZkYXRhW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE3LVxcdFtCUkNNRl9EUlZEQVRBX0NZV10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDE4OlxcdFxcdC52ZW5kb3IgPSBCUkNNRl9GV1ZFTkRPUl9DWVcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE5LVxcdFxcdC5md19zZWVkID0gZmFsc2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjEtXFx0W0JSQ01GX0RSVkRBVEFfQkNBXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MjI6XFx0XFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX0JDQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjMtXFx0XFx0LmZ3X3NlZWQgPSBmYWxzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQyNS1cXHRbQlJDTUZfRFJWREFUQV9XQ0NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjQyNjpcXHRcXHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfV0NDLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQyNy1cXHRcXHQuZndfc2VlZCA9IGZhbHNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDI5LVxcdFtCUkNNRl9EUlZEQVRBX1dDQ19TRUVEXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MzA6XFx0XFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX1dDQyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MzEtXFx0XFx0LmZ3X3NlZWQgPSB0cnVlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUyNy1cXHRzd2l0Y2ggKGJ1cy1cXHUwMDNlZnd2aWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1Mjg6XFx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9XQ0M6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTI5OlxcdGNhc2UgQlJDTUZfRldWRU5ET1JfQkNBOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzMC1cXHRcXHRyZXQgPSBicmNtZl9wY2llX3JlYWRfb3RwKGRldmluZm8pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM1LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjUzNjpcXHRjYXNlIEJSQ01GX0ZXVkVORE9SX0NZVzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzctXFx0ZGVmYXVsdDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTExPXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Jlc2V0X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMzLVxcdFxcdFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0JST0FEQ09NLCBkZXZfaWQpLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzQ6XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzNS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzOS1cXHRcXHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9MSU5LU1lTLCBkZXZfaWQpLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NDA6XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0MS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0NS1cXHRcXHRVU0JfREVWSUNFKENZX1VTQl9WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQ2OlxcdFxcdC5kcml2ZXJfaW5mbyA9IEJSQ01GX0ZXVkVORE9SX1dDQyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NDctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl93Y2NfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MTQ6XFx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9XQ0MsIFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTUtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmJyY21mX3djY19vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfd2NjX2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jOjIwOlxcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX1dDQywgVEhJU19NT0RVTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMjEtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzoxMi43MTI3NTI5MjJaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ3MTE3NDY3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQnJvYWRjb20gRmlybXdhcmUgVmVuZG9yIElEIFVzYWdlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2Agc2VlbXMgdG8gYmUgc3BlY2lmaWMgdG8gYGJjbXNkaC5jYCAoU0RJTykgYW5kIGBwY2llLmNgIChQQ0llKSBpbiB0aGUgQnJvYWRjb20gZHJpdmVyIGNvZGUuIEl0J3MgY29uc3BpY3VvdXNseSAqYWJzZW50KiBmcm9tIGB1c2IuY2AuIEluIGB1c2IuY2AsIGV2ZXJ5dGhpbmcgdXNlcyBgQlJDTUZfRldWRU5ET1JfV0NDYCwgb3IgdGhlIGRlZmF1bHQgb2YgMCB3aGljaCBhbHNvIHJlc29sdmVzIHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLlxuXG5IbW0sIG5vdyB0aGF0IEkgdGhpbmsgYWJvdXQgaXQsIGBiY21zZGguY2AgaXMgdGhlIFNESU8gaW50ZXJmYWNlLiBJIHdvbmRlciBpZiBpdCdzIHBvc3NpYmxlIHRvIGZ1enogU0RJTyBkZXZpY2VzIHVzaW5nIGV4aXN0aW5nIHRvb2xzPyBUaGUgaXNzdWUsIGFzIEkgcmVjYWxsLCBpcyB0aGF0IFN5emthbGxlciBkb2Vzbid0IGhhdmUgYW4gU0RJTyBlbXVsYXRvciBsaWtlIGl0IGRvZXMgZm9yIFVTQiwgd2hpY2ggdXNlcyBgZHVtbXlfaGNkYC5cblxuV2hhdCBhYm91dCBQQ0llLCB0aGVuPyBVbmZvcnR1bmF0ZWx5LCBTeXprYWxsZXIgYWxzbyBkb2Vzbid0IGVtdWxhdGUgQnJvYWRjb20gUENJZSBkZXZpY2VzLCBzbyB0aGF0J3MgYW5vdGhlciBkZWFkIGVuZC5cblxuUmlnaHQsIGJhY2sgdG8gdGhlIGNvcmUgbG9naWMuIElmIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGlzIGV4Y2x1c2l2ZWx5IHRpZWQgdG8gU0RJTyBhbmQgUENJZSwgdGhlbiB0aGUgZnVuY3Rpb24gYGJyY21mX2N5d19tZ210X3R4YCBpcyBvbmx5IHJlYWNoYWJsZSB0aHJvdWdoIEJyb2FkY29tIGRldmljZXMgdXNpbmcgdGhvc2UgaW50ZXJmYWNlcy4gQW5kIHNpbmNlIGBicmNtZl9jeXdfbWdtdF90eGAgaXMgYWN0dWFsbHkgbG9jYXRlZCBpbiBgY3l3L2NvcmUuY2AsIGl0IGltcGxpZXMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBpcyB0aWVkIHRvIHRoaXMgc3BlY2lmaWMgdmVuZG9yLlxuXG5Ob3csIGEgY3JpdGljYWwgcXVlc3Rpb246IGlzIGBicmNtZl9jeXdfbWdtdF90eGAgcmVhY2hhYmxlIGZyb20gc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBgdmhjaWA/IFNpbmNlIHRoaXMgaXMgcGFydCBvZiB0aGUgYGJyY21mbWFjYCBkcml2ZXIsIGl0IHJlcXVpcmVzIGEgYGJyY21mbWFjYCBkZXZpY2UgdG8gYmUgcHJlc2VudC5cblxuQ2FuIHdlIHRyaWNrIGl0IGludG8gYSBgYnJjbWZtYWNgIGRldmljZSBieSB1c2luZyBVU0I/IFllcywgd2UgY2FuLCBidXQgSSByZW1lbWJlciB0aGF0IGB1c2IuY2AgZXhwbGljaXRseSBzZXRzIHRoZSBgLmRyaXZlcl9pbmZvYCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYC5cblxuU28sIGZvciBVU0IgZGV2aWNlcywgYGZ3dmlkYCB3aWxsIGJlIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBJZiB0aGF0J3MgdGhlIGNhc2UsIHRoZSBgZHJ2ci1cdTAwM2V2b3BzYCBpcyBgYnJjbWZfd2NjX29wc2AsIHNvIGl0IGxvb2tzIGxpa2UgSSBuZWVkIHRvIGRpZyBpbnRvIGBicmNtZl93Y2Nfb3BzYCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNzg3LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjIwLjE4MzkzMTQ1MVoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwMjQyODgwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl93Y2Nfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmM9MjM9c3RhdGljIGludCBicmNtZl93Y2NfYWxsb2NfZndlaF9pbmZvKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYy0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYzozNjpjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX3djY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMzctXFx0LnNldF9zYWVfcGFzc3dvcmQgPSBicmNtZl93Y2Nfc2V0X3NhZV9wd2QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX3djY19pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE0LVxcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jOjE1OlxcdFxcdFxcdFxcdFxcdCAgIFxcdTAwMjZicmNtZl93Y2Nfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy92b3BzLmg6ODpleHRlcm4gY29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjk6I2RlZmluZSBXQ0NfVk9QU1xcdChcXHUwMDI2YnJjbWZfd2NjX29wcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC0xMC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MjIuMDg2MzY3MzM1WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MTE3OTkxNjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXMgaWYgdGhleSdyZSBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyBicmNtZl93Y2Nfb3BzKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyB1bmRlciB0aGUgaG9vZCBvZiB0aGlzIGBicmNtZl93Y2Nfb3BzYCBzdHJ1Y3QuIEl0J3MgYSBrZXkgY29tcG9uZW50LCBzbyBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBjb250ZW50cy4gVGhpcyBsaWtlbHkgaG9sZHMgdGhlIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucyBvciBtZXRob2RzIHJlbGF0ZWQgdG8gdGhlIHdpcmVsZXNzIGNvbmN1cnJlbnQgY29ubmVjdGlvbiAoV0NDKSBjYXBhYmlsaXRpZXMgd2l0aGluIHRoZSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuIFVuZGVyc3RhbmRpbmcgdGhlc2Ugb3BlcmF0aW9ucyBpcyBjcnVjaWFsIGZvci4uLiBbSSdkIGZpbGwgaW4gdGhlIHJlc3QgYmFzZWQgb24gbXkgc3BlY2lmaWMgdW5kZXJzdGFuZGluZyBvZiB0aGUgY29udGV4dCwgd2hldGhlciBpdCdzIGRlYnVnZ2luZywgb3B0aW1pemF0aW9uLCBzZWN1cml0eSBhbmFseXNpcywgb3IgcGVyZm9ybWFuY2UgdGVzdGluZywgZXRjLiwgYnV0IHRoZSBpZGVhIGlzIHRoYXQgSSdkIGtub3cgKndoeSogSSdtIGxvb2tpbmcgYXQgdGhpc10uIEknbSBleHBlY3RpbmcgdGhpcyB0byBiZSBhIHN0cnVjdHVyZSB3aXRoIGZ1bmN0aW9uIHBvaW50ZXJzIG9yIGNhbGxiYWNrcywgb3IgcGVyaGFwcyBkYXRhLCBhbmQgSSdtIGl0Y2hpbmcgdG8gc2VlIHdoYXQga2luZCBvZiBmdW5jdGlvbmFsaXR5IGl0IGV4cG9zZXMuIExldCdzIHNlZSB3aGF0IGdlbXMgYXJlIGhpZGRlbiBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUzMjcsIk91dHB1dFRva2VucyI6NTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzoyNS42OTgxNjg4MjdaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg1MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMzA6XFx0XFxuICAzMTpcXHRcXHRmd2VoLVxcdTAwM2VudW1fZXZlbnRfY29kZXMgPSBCUkNNRl9XQ0NfRV9MQVNUO1xcbiAgMzI6XFx0XFx0ZHJ2ci1cXHUwMDNlZndlaCA9IGZ3ZWg7XFxuICAzMzpcXHRcXHRyZXR1cm4gMDtcXG4gIDM0OlxcdH1cXG4gIDM1OlxcdFxcbiAgMzY6XFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzID0ge1xcbiAgMzc6XFx0XFx0LnNldF9zYWVfcGFzc3dvcmQgPSBicmNtZl93Y2Nfc2V0X3NhZV9wd2QsXFxuICAzODpcXHRcXHQuYWxsb2NfZndlaF9pbmZvID0gYnJjbWZfd2NjX2FsbG9jX2Z3ZWhfaW5mbyxcXG4gIDM5OlxcdH07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjI1LjY5ODI2MDg1NloiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDYxNjc0Njk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLlxuXG4qKkFuYWx5emluZyB0aGUgYGJyY21mX3djY19vcHNgIFN0cnVjdHVyZSoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCBgYnJjbWZfd2NjX29wc2AuIEFuZCBpdCBzZWVtcyBsaWtlLCAqc3VycHJpc2luZ2x5KiwgaXQgZG9lc24ndCBhY3R1YWxseSBkZWZpbmUgYSBgLmdldF9jZmc4MDIxMV9vcHNgIGZpZWxkLiBUaGF0J3MgYSBiaXQgdW5leHBlY3RlZC4gTm93LCBpZiB0aGF0IHBvaW50ZXIgaXMgYE5VTExgLCB0aGVuIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYCBiYXNpY2FsbHkgYmVjb21lcyBhIG5vLW9wLCByaWdodD8gSXQganVzdCB3b24ndCBkbyBhbnl0aGluZyBiZWNhdXNlIHRoZXJlJ3Mgbm8gZnVuY3Rpb24gdG8gY2FsbC4gQWxyaWdodCwgdG8gY29uZmlybSB0aGlzIGNoYWluIG9mIHRob3VnaHQgSSdtIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU3OTIsIk91dHB1dFRva2VucyI6NTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjI5LjE1OTk0MDhaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1Mjg4NzI2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMzMwPWludCBicmNtZl9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM3MTpcXHRicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKGRydnIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTM3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oPTYyPXN0YXRpYyBpbmxpbmUgaW50IGJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjcyOnN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNzMte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzoyOS43MTI4MzU3MThaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM3NDI1MDAwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIGluc3RydWN0aW9uczpcblxuKipBbmFseXppbmcgYGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHNgIGluIGBmd3ZpZC5oYCoqXG5cbkFscmlnaHQsIGxldCdzIGNyYWNrIG9wZW4gYGZ3dmlkLmhgIGFuZCBmb2N1cyBzcGVjaWZpY2FsbHkgb24gYGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgY2ZnODAyMTEgd2lyZWxlc3Mgc3Vic3lzdGVtLiBLbm93aW5nIHRoaXMgaXMgY3JpdGljYWw7IHRoaXMgbGlrZWx5IGRlZmluZXMgdGhlIGVudHJ5IHBvaW50cyB0aGF0IGFsbG93IHRoZSBmaXJtd2FyZSB0byBpbnRlcmZhY2Ugd2l0aCB0aGUga2VybmVsJ3Mgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBhbmQgcmVndWxhdG9yeSBkb21haW5zLiBJJ20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBhIHNldCBvZiBvcGVyYXRpb25zIG9yIGZ1bmN0aW9uIHBvaW50ZXJzIHRoYXQgY2ZnODAyMTEgY2FuIHVzZSB0byBjb25maWd1cmUgYW5kIGNvbnRyb2wgdGhlIEJyb2FkY29tIGZpcm13YXJlIHRocm91Z2ggdGhlIGRyaXZlci4gVGhpcyBpcyBhIGNydWNpYWwgbGluaywgYW5kIGxpa2VseSBjb250YWlucyB0aGUgZ2x1ZSB0aGF0IGFsbG93cyBmb3Igc2VhbWxlc3MgaW50ZWdyYXRpb24uIEknbGwgYmUgbG9va2luZyBmb3IgaG93IHRoZSBzdHJ1Y3R1cmVzIGFyZSBkZWZpbmVkLCBob3cgdGhlIHBvaW50ZXJzIGFyZSBzZXQsIGFuZCB3aGF0IHNlY3VyaXR5IGNvbnNpZGVyYXRpb25zIGFyZSBpbiBwbGFjZS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgaGFyZHdhcmUtc29mdHdhcmUgaW50ZXJhY3Rpb24gYXQgYSBsb3cgbGV2ZWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NDc3LCJPdXRwdXRUb2tlbnMiOjUzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MzQuMDg3MDg5NTYyWiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaFwiLFxuICBcIkZpcnN0TGluZVwiOiA3MCxcbiAgXCJMaW5lQ291bnRcIjogMTVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA3MDpcXHR9XFxuICA3MTpcXHRcXG4gIDcyOlxcdHN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuICA3MzpcXHR7XFxuICA3NDpcXHRcXHRpZiAoIWRydnItXFx1MDAzZXZvcHMgfHwgIWRydnItXFx1MDAzZXZvcHMtXFx1MDAzZWdldF9jZmc4MDIxMV9vcHMpXFxuICA3NTpcXHRcXHRcXHRyZXR1cm47XFxuICA3NjpcXHRcXG4gIDc3OlxcdFxcdGRydnItXFx1MDAzZXZvcHMtXFx1MDAzZWdldF9jZmc4MDIxMV9vcHMoZHJ2cik7XFxuICA3ODpcXHR9XFxuICA3OTpcXHRcXG4gIDgwOlxcdHN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbiAgODE6XFx0e1xcbiAgODI6XFx0XFx0aWYgKCFkcnZyLVxcdTAwM2V2b3BzIHx8ICFkcnZyLVxcdTAwM2V2b3BzLVxcdTAwM2VyZWdpc3Rlcl9ldmVudF9oYW5kbGVycylcXG4gIDgzOlxcdFxcdFxcdHJldHVybjtcXG4gIDg0OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzozNC4wODcyMzE4MjJaIiwiU2VxIjozOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODIxMjc5MDY3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipVbnJlYWNoYWJsZSBDb2RlIFBhdGggQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYGJyY21mX2N5d19tZ210X3R4YCBmdW5jdGlvbi4gVGhlIGNvZGUgbG9naWMgc3RhdGVzIHRoYXQgaXQncyBvbmx5IGFjY2Vzc2libGUgd2hlbiBgZnd2aWRgIGlzIHNldCB0byBgQlJDTUZfRldWRU5ET1JfQ1lXYC4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHRoaXMgdmVuZG9yIElEIGlzIHNwZWNpZmljYWxseSBhc3NpZ25lZCB0byBQQ0llIGFuZCBTRElPIGRldmljZXMuIFNvLCBuYXR1cmFsbHksIEkgaW1tZWRpYXRlbHkgdGhvdWdodCwgXCJXYWl0LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSdzIGFic29sdXRlbHkgbm8gd2F5IFVTQiBkZXZpY2VzIGNhbiB0cmlnZ2VyIHRoaXMgcGF0aC5cIlxuXG5JIHdlbnQgYmFjayB0byByZXZpZXcgYHVzYi5jYCBhbmQgc3BlY2lmaWNhbGx5IHRoZSBgYnJjbWZfdXNiX2RldmlkX3RhYmxlYC4gSSBzY2FubmVkIHRocm91Z2ggYWxsIHRoZSBlbnRyaWVzLCBhbmQgd2hpbGUgdGhlIG1ham9yaXR5LCBkZWZpbmVkIGJ5IGBCUkNNRl9VU0JfREVWSUNFYCwgYExJTktTWVNfVVNCX0RFVklDRWAsIGFuZCBgQ1lQUkVTU19VU0JfREVWSUNFYCwgc2V0IHRoZSBgLmRyaXZlcl9pbmZvYCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYCwgSSBkaWQgc2VlIGEgc3BlY2lmaWMgZW50cnk6IGB7IFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0xHLCBCUkNNX1VTQl80MzI0Ml9MR19ERVZJQ0VfSUQpIH1gLiBCdXQsIGNydWNpYWxseSwgaXQgKmRvZXNuJ3QqIHNldCB0aGUgYC5kcml2ZXJfaW5mb2AgZmllbGQuIFRoaXMgbWVhbnMsIGJ5IGRlZmF1bHQsIGBmd3ZpZGAgaXMgMC4gQW5kIHRoZW4sIEkgaGFkIHRvIGRvdWJsZS1jaGVjayBteSB2ZW5kb3IgSUQgZW51bSwgY29uZmlybWluZyBgQlJDTUZfRldWRU5ET1JfV0NDYCBpcyBpbmRlZWQgMCwgd2hpY2ggZnVydGhlciByZWluZm9yY2VkIG15IGFzc3VtcHRpb24uXG5cblNvLCBmb3IgYWxsIHRoZSBVU0IgZGV2aWNlcyBsaXN0ZWQsIGBmd3ZpZGAgZW5kcyB1cCBhcyBgQlJDTUZfRldWRU5ET1JfV0NDYC4gVGhhdCBzZXR0bGVzIGl0OiBgYnJjbWZfY3l3X21nbXRfdHhgIGlzICpuZXZlciogYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBVU0IgcGF0aC4gSXQncyBzdHJpY3RseSBQQ0llIGFuZCBTRElPLlxuXG5TaW5jZSBzeXprYWxsZXIgZG9lc24ndCBzZWVtIHRvIGVtdWxhdGUgUENJZSBvciBTRElPIEJyb2FkY29tIGRldmljZXMsIGl0IG1lYW5zIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwIEknbSB1c2luZyBjYW4ndCB0cmlnZ2VyIHRoaXMgY29kZS4gQnV0LCBiZWZvcmUgSSBtb3ZlIG9uLCBJIGhhdmUgdG8gYXNrIG15c2VsZiwgaXMgdGhlcmUgKmFueSogb3RoZXIgcG9zc2libGUgZXhlY3V0aW9uIHBhdGg/IElzIHRoZXJlIGEgZGlyZWN0IGNhbGwgdG8gYGJyY21mX2N5d19tZ210X3R4YCBmcm9tIHNvbWV3aGVyZSBlbHNlIHRoYXQgSSBzaG91bGQgYmUgYXdhcmUgb2Y/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDMwLCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Njc0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6NDIuMzAwMDI0NjM5WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzgwNDEyMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfY3l3X21nbXRfdHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyNjpzdGF0aWMgYXRvbWljX3QgYnJjbWZfY3l3X21nbXRfdHhfaWQgPSBBVE9NSUNfSU5JVCgwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTEwMz1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMDQ6aW50IGJyY21mX2N5d19tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTA1LVxcdFxcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9tZ210X3R4X3BhcmFtcyAqcGFyYW1zLCB1NjQgKmNvb2tpZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTEyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMjg6XFx0KmNvb2tpZSA9IGF0b21pY19pbmNfcmV0dXJuKFxcdTAwMjZicmNtZl9jeXdfbWdtdF90eF9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI5LVxcdHZpZiA9IGNvbnRhaW5lcl9vZih3ZGV2LCBzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfdmlmLCB3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTIzND1zdGF0aWMgdm9pZCBicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wcyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MjM2OlxcdGRydnItXFx1MDAzZW9wcy1cXHUwMDNlbWdtdF90eCA9IGJyY21mX2N5d19tZ210X3R4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNy1cXHRkcnZyLVxcdTAwM2VvcHMtXFx1MDAzZWV4dGVybmFsX2F1dGggPSBicmNtZl9jeXdfZXh0ZXJuYWxfYXV0aDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6NDIuODM4MDc1MjQ5WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5NjcxOTM4NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBSZWFjaGFiaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgY29kZSBpbiBxdWVzdGlvbiwgYGJyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzYCwgaXMgb25seSBldmVyIHRvdWNoZWQgaWYgYGZ3dmlkYCBpcyBzZXQgdG8gYEJSQ01GX0ZXVkVORE9SX0NZV2AuIEFuZCB0aGF0IGBmd3ZpZGAgdmFsdWUsIEknbSBwcmV0dHkgc3VyZSwgaXMgZXhjbHVzaXZlbHkgdGllZCB0byBCcm9hZGNvbSdzIFBDSWUgYW5kIFNESU8gZGV2aWNlcy4gU2luY2UgSSBrbm93IHN5emthbGxlciBkb2Vzbid0IGVtdWxhdGUgdGhlc2UgdHlwZXMgb2YgQnJvYWRjb20gZGV2aWNlcywgdGhpcyBjb2RlIHBhdGggc2hvdWxkIGJlIHVucmVhY2hhYmxlIGluIHN0YW5kYXJkIFFFTVUuIExldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBxdWlja2x5IOKAkyBubywgc3l6a2FsbGVyIGRvZXNu4oCZdCBlbXVsYXRlIFNESU8uIE9rYXksIGFuZCBJ4oCZbSBwcmV0dHkgY2VydGFpbiBpdCBvbmx5IGVtdWxhdGVzIGdlbmVyaWMgUENJIGRldmljZXMgb3IgdXNlcyBkdW1teSBkZXZpY2VzLiBJdCBkb2Vzbid0IGhhdmUgYSBCcm9hZGNvbSBXaS1GaSBQQ0llIGVtdWxhdG9yLlxuXG5UaGVyZWZvcmUsIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIGNvZGUgdGhhdCdzIGZ1bmRhbWVudGFsbHkgaW5hY2Nlc3NpYmxlIHdpdGhpbiB0aGUgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHdlJ3JlIHdvcmtpbmcgaW4sIHdoZXRoZXIgaXQncyBHQ0Ugb3IgdGhlIHN0YW5kYXJkIFFFTVUgc2V0dXAuXG5cbk5vdywgbGV0IG1lIGdvIGJhY2sgYW5kIHJldmlldyB0aGUgaW5zdHJ1Y3Rpb25zIGZvciBkZXRlcm1pbmluZyBcIldvcnRoRnV6emluZ1wiLiBSaWdodCwgaXQgc2F5czogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAuLi4gLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuLi4gLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cblRoYXQncyBhIHBlcmZlY3QgbWF0Y2guIFRoaXMgY29kZSBpcyBpbiBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIsIGBicmNtZm1hY2AsIGZvciBhIHNwZWNpZmljIHZlbmRvciBJRCAoQ1lXKSwgd2hpY2ggaXMgKm9ubHkqIHN1cHBvcnRlZCBvdmVyIFBDSWUgYW5kIFNESU8sIG5laXRoZXIgb2Ygd2hpY2ggYXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZm9yIHRoaXMgZGV2aWNlLlxuXG5TbywgZ2l2ZW4gdGhpcyBjb21wbGV0ZSBsYWNrIG9mIHJlYWNoYWJpbGl0eSwgSSdtIGNvbmZpZGVudCBpbiByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4ODcxLCJPdXRwdXRUb2tlbnMiOjE3NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzo1MC44MDUyNzM0NjhaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTQwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlcidzIGJ1cyBpbXBsZW1lbnRhdGlvbnMgc2hvd3MgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBvbmx5IGFzc2lnbmVkIHRvIHNwZWNpZmljIFBDSWUgYW5kIFNESU8gZGV2aWNlcywgd2hpbGUgYWxsIFVTQiBkZXZpY2VzIGRlZmF1bHQgdG8gYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFNpbmNlIHN0YW5kYXJkIFFFTVUvc3l6a2FsbGVyIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIG9yIFNESU8gd2lyZWxlc3MgaGFyZHdhcmUsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGJyY21mX2N5d19tZ210X3R4YCBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyB3aXJlbGVzcyBkcml2ZXIgKGBicmNtZm1hY2ApLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcmVnaXN0ZXJlZCBhcyBhIGNmZzgwMjExIG9wZXJhdGlvbiBmb3IgZGV2aWNlcyB3aXRoIHRoZSBgQlJDTUZfRldWRU5ET1JfQ1lXYCBmaXJtd2FyZSB2ZW5kb3IgSUQuIEEgcmV2aWV3IG9mIHRoZSBkcml2ZXIncyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowp68bp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-26 11:14:31 +0000 UTC FinishedAt: 2026-07-26 11:37:52 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBicmNtZl9jeXdfbWdtdF90eGAgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgd2lyZWxlc3MgZHJpdmVyIChgYnJjbWZtYWNgKS4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHJlZ2lzdGVyZWQgYXMgYSBjZmc4MDIxMSBvcGVyYXRpb24gZm9yIGRldmljZXMgd2l0aCB0aGUgYEJSQ01GX0ZXVkVORE9SX0NZV2AgZmlybXdhcmUgdmVuZG9yIElELiBBIHJldmlldyBvZiB0aGUgZHJpdmVyJiMzOTtzIGJ1cyBpbXBsZW1lbnRhdGlvbnMgc2hvd3MgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBvbmx5IGFzc2lnbmVkIHRvIHNwZWNpZmljIFBDSWUgYW5kIFNESU8gZGV2aWNlcywgd2hpbGUgYWxsIFVTQiBkZXZpY2VzIGRlZmF1bHQgdG8gYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFNpbmNlIHN0YW5kYXJkIFFFTVUvc3l6a2FsbGVyIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIG9yIFNESU8gd2lyZWxlc3MgaGFyZHdhcmUsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDJlNzAyMDIxNDI2M2U1NGRhNDk5ZmI3NzJmNGIwMDU1NjNlNWZkMTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAyNiAxMTozNjoxNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXG5pbmRleCBjZTA5ZDQ0ZmE3M2NmOC4uNTMwZjAxMjZlM2E3NzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNcbkBAIC0yMyw2ICYjNDM7MjMsOCBAQFxuICNkZWZpbmUgTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUVcdDQwMDBcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9XQUlUX1RJTUVcdChNR01UX0FVVEhfRlJBTUVfRFdFTExfVElNRSAmIzQzOyAxMDApXG4gXG4mIzQzO3N0YXRpYyBhdG9taWNfdCBicmNtZl9jeXdfbWdtdF90eF9pZCA9IEFUT01JQ19JTklUKDApO1xuJiM0MztcbiBzdGF0aWMgaW50IGJyY21mX2N5d19zZXRfc2FlX3B3ZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdFx0XHRcdCBzdHJ1Y3QgY2ZnODAyMTFfY3J5cHRvX3NldHRpbmdzICpjcnlwdG8pXG4ge1xuQEAgLTEyMyw3ICYjNDM7MTI1LDcgQEAgaW50IGJyY21mX2N5d19tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4gXHRpZiAoIWllZWU4MDIxMV9pc19hdXRoKG1nbXQtXHUwMDNlZnJhbWVfY29udHJvbCkpXG4gXHRcdHJldHVybiBicmNtZl9jZmc4MDIxMV9tZ210X3R4KHdpcGh5LCB3ZGV2LCBwYXJhbXMsIGNvb2tpZSk7XG4gXG4tXHQqY29va2llID0gMDtcbiYjNDM7XHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXHUwMDI2YnJjbWZfY3l3X21nbXRfdHhfaWQpO1xuIFx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xuIFxuIFx0cmVpbml0X2NvbXBsZXRpb24oXHUwMDI2dmlmLVx1MDAzZW1nbXRfdHgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlciYjMzk7cyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyZTcwMjAyMTQyNjNlNTRkYTQ5OWZiNzcyZjRiMDA1NTYzZTVmZDEzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMjYgMTE6MzY6MTYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jCmluZGV4IGNlMDlkNDRmYTczY2Y4Li41MzBmMDEyNmUzYTc3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMKQEAgLTIzLDYgJiM0MzsyMyw4IEBACiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9EV0VMTF9USU1FCTQwMDAKICNkZWZpbmUgTUdNVF9BVVRIX0ZSQU1FX1dBSVRfVElNRQkoTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUUgJiM0MzsgMTAwKQogCiYjNDM7c3RhdGljIGF0b21pY190IGJyY21mX2N5d19tZ210X3R4X2lkID0gQVRPTUlDX0lOSVQoMCk7CiYjNDM7CiBzdGF0aWMgaW50IGJyY21mX2N5d19zZXRfc2FlX3B3ZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwKIAkJCQkgc3RydWN0IGNmZzgwMjExX2NyeXB0b19zZXR0aW5ncyAqY3J5cHRvKQogewpAQCAtMTIzLDcgJiM0MzsxMjUsNyBAQCBpbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwKIAlpZiAoIWllZWU4MDIxMV9pc19hdXRoKG1nbXQtJmd0O2ZyYW1lX2NvbnRyb2wpKQogCQlyZXR1cm4gYnJjbWZfY2ZnODAyMTFfbWdtdF90eCh3aXBoeSwgd2RldiwgcGFyYW1zLCBjb29raWUpOwogCi0JKmNvb2tpZSA9IDA7CiYjNDM7CSpjb29raWUgPSBhdG9taWNfaW5jX3JldHVybigmYW1wO2JyY21mX2N5d19tZ210X3R4X2lkKTsKIAl2aWYgPSBjb250YWluZXJfb2Yod2Rldiwgc3RydWN0IGJyY21mX2NmZzgwMjExX3ZpZiwgd2Rldik7CiAKIAlyZWluaXRfY29tcGxldGlvbigmYW1wO3ZpZi0mZ3Q7bWdtdF90eCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjEKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAyNzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoIGZvciBWaXJ0dWFsaXplZCBUZXN0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNgLiBJdCBzZWVtcyB0byBiZSBjaGFuZ2luZyBob3cgYGJyY21mX2N5d19tZ210X3R4YCBhc3NpZ25zIGEgYGNvb2tpZWAuIEluc3RlYWQgb2YgdGhlIGhhcmRjb2RlZCAwLCB0aGV5JiMzOTtyZSB1c2luZyBhbiBhdG9taWMgY291bnRlciwgYGJyY21mX2N5d19tZ210X3R4X2lkYC4gVGhhdCYjMzk7cyBhIHNlbnNpYmxlIGltcHJvdmVtZW50IGZvciBhdm9pZGluZyBwb3RlbnRpYWwgY29sbGlzaW9ucywgYnV0IHRoZSBxdWVzdGlvbiBpcywgaG93IGVhc2lseSBjYW4gSSB0ZXN0IHRoaXMgcGF0Y2ggaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8KCkl0JiMzOTtzIHRoZSBgYnJjbWZtYWNgIEJyb2FkY29tIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggbWVhbnMgSSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyBoYXJkd2FyZSBpcyB0eXBpY2FsbHkgZW11bGF0ZWQuIFN0YW5kYXJkIFFFTVUgZG9lc24mIzM5O3QgdXN1YWxseSBlbXVsYXRlIHBoeXNpY2FsIFdpLUZpIGhhcmR3YXJlIGRpcmVjdGx5LiAqYnJjbWZtYWMqLi4uIGlzIGl0IGV2ZW4gZW11bGF0ZWQ/IE5vLCBpdCYjMzk7cyBub3QgbGlrZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBJIGtub3cgaXMuIFRoaXMgYGJyY21mbWFjYCBkcml2ZXIgaXMgYSBGdWxsTUFDIGltcGxlbWVudGF0aW9uIGZvciBCcm9hZGNvbSBjaGlwcywgd2hpY2ggbWVhbnMgU0RJTywgUENJZSwgYW5kIFVTQi4KClNvLCBob3cgZG8gSSBnZXQgdGhpcyBydW5uaW5nIGluIGEgdmlydHVhbCBtYWNoaW5lPyBDYW4gSSBlbXVsYXRlIFVTQiBCcm9hZGNvbSBkZXZpY2VzIHVzaW5nIFVTQiBnYWRnZXQgdGVjaG5pcXVlcz8gUG9zc2libHksIGJ1dCBTeXprYWxsZXIgdXN1YWxseSBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYCBvciBgdmhjaWAgZm9yIFVTQiB0ZXN0aW5nLiBCdXQgd2hhdCBhYm91dCBmdXp6aW5nPyBTeXprYWxsZXIgc3VwcG9ydHMgVVNCIGZ1enppbmcgdGhyb3VnaCBgZHVtbXlfaGNkYCwgc28gSSBuZWVkIHRvIHNlZSBpZiBgYnJjbWZtYWNgIGFjdHVhbGx5ICpoYXMqIFVTQiBzdXBwb3J0LiBUaGF0JiMzOTtzIHRoZSBuZXh0IGNyaXRpY2FsIHN0ZXAuIEkgbmVlZCB0byBjb25maXJtIGlmIHRoaXMgZHJpdmVyIGNhbiBiZSB0YXJnZXRlZCB2aWEgVVNCLCBhbmQgaWYgc28sIGhvdyBmZWFzaWJsZSBpdCBpcyB0byBzZXQgdXAgYSB0ZXN0IGVudmlyb25tZW50IHRoYXQgZXhwbG9pdHMgdGhlIGBkdW1teV9oY2RgIHN1cHBvcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfY3l3X21nbXRfdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MjY6c3RhdGljIGF0b21pY190IGJyY21mX2N5d19tZ210X3R4X2lkID0gQVRPTUlDX0lOSVQoMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0xMDM9c3RhdGljXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMDQ6aW50IGJyY21mX2N5d19tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMDUtXHRcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9tZ210X3R4X3BhcmFtcyAqcGFyYW1zLCB1NjQgKmNvb2tpZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMjg6XHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXHUwMDI2YnJjbWZfY3l3X21nbXRfdHhfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI5LVx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTIzND1zdGF0aWMgdm9pZCBicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wcyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjM1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjIzNjpcdGRydnItXHUwMDNlb3BzLVx1MDAzZW1nbXRfdHggPSBicmNtZl9jeXdfbWdtdF90eDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNy1cdGRydnItXHUwMDNlb3BzLVx1MDAzZWV4dGVybmFsX2F1dGggPSBicmNtZl9jeXdfZXh0ZXJuYWxfYXV0aDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjkxCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKkludmVzdGlnYXRpbmcgYnJjbWZtYWMgVVNCIENhcGFiaWxpdGllcyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gYXNjZXJ0YWluIGlmIHRoZSBgYnJjbWZtYWNgIGRyaXZlciBoYXMgYW55IGJ1aWx0LWluIFVTQiBzdXBwb3J0LiBUaGlzIGlzIGEgY3J1Y2lhbCBmaXJzdCBzdGVwLiBJIG5lZWQgdG8ga25vdyBpZiB0aGlzIGlzIGV2ZW4gYSB2aWFibGUgYXZlbnVlIHRvIGV4cGxvcmUgYmVmb3JlIEkgc3BlbmQgdG9vIG11Y2ggdGltZSBkaWdnaW5nIGludG8gb3RoZXIgcG9zc2liaWxpdGllcyBvciBhbHRlcm5hdGl2ZSBkcml2ZXIgYXBwcm9hY2hlcy4gVW5kZXJzdGFuZGluZyB0aGUgZHJpdmVyJiMzOTtzIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlIGFuZCBoYXJkd2FyZSBzdXBwb3J0LCBlc3BlY2lhbGx5IGNvbmNlcm5pbmcgZGlmZmVyZW50IGludGVyZmFjZSB0eXBlcywgd2lsbCBkaWN0YXRlIG15IG5leHQgYWN0aW9ucy4gS25vd2luZyB0aGlzIHdpbGwgc3RyZWFtbGluZSBteSBhcHByb2FjaCBzaWduaWZpY2FudGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX3VzYl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODkxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6CgoqKkRlYnVnZ2luZyB0aGUgYnJjbWZtYWMgTW9kdWxlIEluaXRpYWxpemF0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgYnJjbWZtYWNgIHNpdHVhdGlvbi4gTXkgZmlyc3Qgc3RlcCBpcyB0byBxdWlja2x5IHplcm8gaW4gb24gaG93IHRoaXMgbW9kdWxlIGlzIGJlaW5nIGluaXRpYWxpemVkIGFuZCBob3cgaXQgaW50ZWdyYXRlcyB3aXRoIHRoZSBVU0Igc3Vic3lzdGVtLCBpZiBhdCBhbGwuIE15IGluaXRpYWwgaHVuY2ggaXMgdG8gbG9vayBmb3IgdGhlIGtleSByZWdpc3RyYXRpb24gcG9pbnRzLiBTbywgSSBuZWVkIHRvIGNoZWNrIGZvciB0aGUgdGVsbHRhbGUgc2lnbnM6IEkmIzM5O20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZSBmb3IgY2FsbHMgdG8gYHVzYl9yZWdpc3RlcmAgLSB0aGF0IHdpbGwgYmUgY3JpdGljYWwgaWYgaXQmIzM5O3Mgb3BlcmF0aW5nIG9uIGEgVVNCIGludGVyZmFjZSAtIG9yLCBpZiBpdCYjMzk7cyBtb3JlIHNlbGYgY29udGFpbmVkLCB0aGUgbW9yZSBnZW5lcmljIGBtb2R1bGVfaW5pdGAuIFRoZXNlIGFyZSB0aGUgYnJlYWRjcnVtYnMgSSYjMzk7bSBsb29raW5nIGZvciB0byB1bmRlcnN0YW5kIHdoZXJlIHRvIHN0YXJ0IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgd2hhdCB0aGUgY29yZSBlbnRyeSBwb2ludHMgYXJlLiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludCBhbmQgdGhlIFVTQiBpbnRlcmZhY2UuIEZyb20gdGhlcmUgSSBjYW4gdW5kZXJzdGFuZCB0aGUgdW5kZXJseWluZyBpc3N1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1c2JfcmVnaXN0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0zMjc9dm9pZCBicmNtZl91c2JfZXhpdCh2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozMjg6aW50IGJyY21mX3VzYl9yZWdpc3Rlcih2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zMjktI2Vsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0zMzA9c3RhdGljIGlubGluZSB2b2lkIGJyY21mX3VzYl9leGl0KHZvaWQpIHsgfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjMzMTpzdGF0aWMgaW5saW5lIGludCBicmNtZl91c2JfcmVnaXN0ZXIodm9pZCkgeyByZXR1cm4gMDsgfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTMzMi0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTE1NDY9aW50IF9faW5pdCBicmNtZl9jb3JlX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTE1NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NTQ6XHRlcnIgPSBicmNtZl91c2JfcmVnaXN0ZXIoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTU1NS1cdGlmIChlcnIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NTY6XHRcdGdvdG8gZXJyb3JfdXNiX3JlZ2lzdGVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTU3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTU2NC1cdGJyY21mX3VzYl9leGl0KCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NjU6ZXJyb3JfdXNiX3JlZ2lzdGVyOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTY2LVx0YnJjbWZfc2Rpb19leGl0KCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1ODY9dm9pZCBicmNtZl91c2JfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE2MDA6aW50IGJyY21mX3VzYl9yZWdpc3Rlcih2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDEte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDItXHRicmNtZl9kYmcoVVNCLCBcJiMzNDtFbnRlclxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTYwMzpcdHJldHVybiB1c2JfcmVnaXN0ZXIoXHUwMDI2YnJjbWZfdXNiZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTYwNC19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTAzOAoJCQkJCQkJb3V0cHV0OiA1OQoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBgYnJjbWZtYWNgIERyaXZlciB2aWEgVVNCKioKCk9rYXksIHNvIHRoZSBgYnJjbWZtYWNgIGRyaXZlciwgaHVoPyBJIGp1c3QgcmVhbGl6ZWQgaXQgaGFzIFVTQiBzdXBwb3J0IOKAkyB0aGF0JiMzOTtzIHBvdGVudGlhbGx5IGdyZWF0IG5ld3MgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gcHJvYmFibHkgZ2V0IGF0IGl0IHdpdGggYSBgZHVtbXlfaGNkYC4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIHdlIHJlYWNoIGBicmNtZl9jeXdfbWdtdF90eGAgdmlhIHRoaXMgVVNCIGludGVyZmFjZT8gVGhhdCBmdW5jdGlvbiBpbiBwYXJ0aWN1bGFyLCBiZWNhdXNlIEkga25vdyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBwYXRjaCBpcy4KClJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgbW9kaWZ5aW5nIGBicmNtZl9jeXdfbWdtdF90eGAsIGFuZCB0aGF0JiMzOTtzIHNpdHRpbmcgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jYC4gRXhjZWxsZW50LiBOb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGBicmNtZl9jeXdfbWdtdF90eGAgaXMgYWN0dWFsbHkgdXNlZC4gTmVlZCB0byB0cmFjZSBpdHMgY2FsbCBzaXRlcyB0byBmaWd1cmUgb3V0IGEgcGF0aCB0byB0cmlnZ2VyaW5nIGl0LiBMZXQmIzM5O3MgZGlnIGludG8gdGhhdCBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0yMDA9YnJjbWZfY3l3X2V4dGVybmFsX2F1dGgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyMzQ6c3RhdGljIHZvaWQgYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MzY4PWNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNzEtXHQuYWN0aXZhdGVfZXZlbnRzID0gYnJjbWZfY3l3X2FjdGl2YXRlX2V2ZW50cyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM3MjpcdC5nZXRfY2ZnODAyMTFfb3BzID0gYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNzMtXHQucmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMgPSBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4NTkKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGNvZGUuCgoqKkludmVzdGlnYXRpbmcgYnJjbWZfY3l3X29wcyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHNjb3BlIG9mIGBicmNtZl9jeXdfb3BzYC4gTXkgZmlyc3Qgc3RlcCwgbmF0dXJhbGx5LCBpcyB0byB0cmFjZSBpdHMgdXNhZ2UuIEkmIzM5O2xsIG5lZWQgdG8gc2VlIHByZWNpc2VseSB3aGVyZSB0aGlzIHN0cnVjdHVyZSBpcyBiZWluZyByZWZlcmVuY2VkIHdpdGhpbiB0aGUgY29kZWJhc2UuIFVuZGVyc3RhbmRpbmcgaXRzIGNvbm5lY3Rpb25zIGlzIGNydWNpYWwgdG8gZ3Jhc3BpbmcgaXRzIGZ1bmN0aW9uIGFuZCBpbXBvcnRhbmNlIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEkmIzM5O2xsIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gZGV0ZXJtaW5lIGhvdyB0aGlzIG9iamVjdCBpcyBiZWluZyBlbXBsb3llZC4gS25vd2luZyB0aGUgY29udGV4dHMgd2lsbCBwYWludCBhIGJldHRlciBwaWN0dXJlLCBlc3BlY2lhbGx5IGluIHVuZGVyc3RhbmRpbmcgYW55IGRlcGVuZGVuY2llcyBvciBpbXBsaWNhdGlvbnMgb2YgaXRzIGNhbGxzIGFuZCB1c2FnZS4gSSYjMzk7bSBnb2luZyB0byBzdGFydCB3aXRoIGEgc3RyYWlnaHRmb3J3YXJkIHNlYXJjaCBhbmQgYnVpbGQgZnJvbSB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfY3l3X29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MzU2PXN0YXRpYyB2b2lkIGJyY21mX2N5d19yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM2ODpjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX2N5d19vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNjktXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX2N5d19zZXRfc2FlX3B3ZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNC1cdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MTU6XHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX2N5d19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmgtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjk6I2RlZmluZSBDWVdfVk9QU1x0KFx1MDAyNmJyY21mX2N5d19vcHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC0xMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjY1NAoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIEkgZGVsdmUgaW50byB0aGlzIGNvZGU6CgoqKkFuYWx5emluZyB0aGUgQlJDTUYgRmlybXdhcmUgVmVuZG9yIFJlZ2lzdHJhdGlvbioqCgpPa2F5LCBzbyBJIHNlZSB0aGF0IGBicmNtZl9jeXdfb3BzYCBpcyByZWdpc3RlcmVkIGFzIHRoZSB2ZW5kb3Igb3BlcmF0aW9ucyBzdHJ1Y3R1cmUgZm9yIGBCUkNNRl9GV1ZFTkRPUl9DWVdgLiBUaGF0JiMzOTtzIHRoZSBjb3JlIG9mIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBmaXJtd2FyZSwgdHlpbmcgdGhlIG9wZXJhdGlvbnMgdG8gYSBzcGVjaWZpYyB2ZW5kb3IgSUQuIE5vdywgdGhlIHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQsIGdpdmVuIG15IHBhc3QgZXhwZXJpZW5jZSwgaXMsIGRvZXMgYEJSQ01GX0ZXVkVORE9SX0NZV2AgY292ZXIgdGhlIFVTQiBzaWRlIG9mIHRoaW5ncz8gSXMgdGhpcyB3aGVyZSBVU0IgZGV2aWNlcyBhcmUgaGFuZGxlZCBhcyB3ZWxsPyBUaW1lIHRvIGNvbmZpcm0uIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSBgYnJjbWZfdXNiZHJ2cmAgbW9kdWxlIG9yLCBtb3JlIHNwZWNpZmljYWxseSwgdGhlIGBicmNtZl91c2JfcHJvYmVgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBiYWNrIGFuZCBtYWtlIHN1cmUgdGhhdCB0aGUgdmVuZG9yIGFzc29jaWF0aW9uIGFwcGxpZXMgY29uc2lzdGVudGx5IGFjcm9zcyB0aGUgZGlmZmVyZW50IHVuZGVybHlpbmcgaGFyZHdhcmUgaW50ZXJmYWNlcyBzdXBwb3J0ZWQgYnkgdGhlIGJyb2FkY29tIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGBDWVdgIHZlbmRvciBJRCBhcHBsaWVzLCB3aGV0aGVyIGl0IGlzIFBDSSwgU0RJTyBvciBVU0IuIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSB0aGUgaW50ZXJhY3Rpb25zIGluIGVhY2ggb2YgdGhvc2UgcGF0aHMsIHRoZSBwcm9iZSBhbmQgdGhlIGZpcm13YXJlIGxvYWRpbmcsIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIGNvbnNpc3RlbnQgYW5kIGNvcnJlY3RseSBpbml0aWFsaXplZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7QlJDTUZfRldWRU5ET1JfQ1lXJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzQ9ZW51bSBicmNtZl9md3ZlbmRvciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMzUtXHRCUkNNRl9GV1ZFTkRPUl9XQ0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MzY6XHRCUkNNRl9GV1ZFTkRPUl9DWVcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMzctXHRCUkNNRl9GV1ZFTkRPUl9CQ0EsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0xOTY5LVx0fSBlbHNlIGlmIChzbWUtXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcdTAwMjYgTkw4MDIxMV9XUEFfVkVSU0lPTl8yKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlx0XHRpZiAoZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cdFx0ICAgIHNtZS1cdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjE0Olx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cdFx0XHRcdFx0ICAgXHUwMDI2YnJjbWZfY3l3X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfY3l3X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoyMDpcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDE2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnJjbWZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxNy1cdFtCUkNNRl9EUlZEQVRBX0NZV10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MTg6XHRcdC52ZW5kb3IgPSBCUkNNRl9GV1ZFTkRPUl9DWVcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTktXHRcdC5md19zZWVkID0gZmFsc2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTM2Olx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9DWVc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzctXHRkZWZhdWx0OlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTg3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSYjMzk7dmUgZGVzY3JpYmVkOgoKKipJbnZlc3RpZ2F0aW5nIEZpcm13YXJlIFZlbmRvciBVc2FnZSBBY3Jvc3MgRHJpdmVyIE1vZHVsZXMqKgoKUmlnaHQsIHNvIEkgc2VlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGJlaW5nIHV0aWxpemVkIHdpdGhpbiB0aGUgYHBjaWUuY2AgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGRvZXMgdGhpcyBzcGVjaWZpYyB2ZW5kb3IgSUQgYWxzbyBleHRlbmQgaXRzIHByZXNlbmNlIHRvIHRoZSBgdXNiLmNgIGFuZCBgc2Rpby5jYCBtb2R1bGVzIGFzIHdlbGw/IEl0JiMzOTtzIGEga2V5IHF1ZXN0aW9uIGJlY2F1c2UgY29uc2lzdGVuY3kgaW4gaG93IHdlIGhhbmRsZSBmaXJtd2FyZS1yZWxhdGVkIHZlbmRvciBpZGVudGlmaWVycyBhY3Jvc3MgdGhlIGJvYXJkIG1ha2VzIGZvciBhIGNsZWFuZXIsIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUgYmFzZS4KClRoZXJlZm9yZSwgSSBuZWVkIHRvIG1ldGhvZGljYWxseSBjaGVjayBib3RoIGB1c2IuY2AgYW5kIGBzZGlvLmNgIGZvciBhbnkgYXBwZWFyYW5jZXMgb2YgZWl0aGVyIHRoZSBgZnd2aWRgIG9yIGB2ZW5kb3JgIHN5bWJvbHMuIFRoaXMgd2lsbCBnaXZlIG1lIGEgY29tcHJlaGVuc2l2ZSBwaWN0dXJlIG9mIGhvdyB0aGlzIHZlbmRvciBpbmZvcm1hdGlvbiBpcyB1c2VkLCBhbmQgbW9yZSBpbXBvcnRhbnRseSwgaWYgdGhlcmUgYXJlIGFueSBkaXNjcmVwYW5jaWVzIGluIGl0cyBpbXBsZW1lbnRhdGlvbiB0aGF0IG5lZWQgdG8gYmUgYWRkcmVzc2VkLiBBIHN5c3RlbWF0aWMgc3dlZXAgaXMgdGhlIG9ubHkgd2F5IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Z3dmlkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvTWFrZWZpbGU9MTM9YnJjbWZtYWMtb2JqcyAmIzQzOz0gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvTWFrZWZpbGUtMjItXHRcdGZpcm13YXJlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9NYWtlZmlsZToyMzpcdFx0Znd2aWQubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL01ha2VmaWxlLTI0LVx0XHRmZWF0dXJlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYy04LSNpbmNsdWRlIFx1MDAzY2J1cy5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYzo5OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTEwLSNpbmNsdWRlIFx1MDAzY2ZlYXR1cmUuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jPTIyPXN0YXRpYyBpbnQgYnJjbWZfYmNhX2FsbG9jX2Z3ZWhfaW5mbyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9jb3JlLmM6MzU6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9iY2Ffb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9jb3JlLmMtMzYtXHQuZmVhdF9hdHRhY2ggPSBicmNtZl9iY2FfZmVhdF9hdHRhY2gsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy03LSNpbmNsdWRlIFx1MDAzY2NvcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYzo4OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2JjYV9pbml0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM6MTQ6XHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0JDQSwgVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTE1LVx0XHRcdFx0XHQgICBcdTAwMjZicmNtZl9iY2Ffb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9iY2FfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjIwOlx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQkNBLCBUSElTX01PRFVMRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTIxLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL3ZvcHMuaC03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmg6ODpleHRlcm4gY29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9iY2Ffb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmgtOS0jZGVmaW5lIEJDQV9WT1BTXHQoXHUwMDI2YnJjbWZfYmNhX29wcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM9MTA0MD1zdGF0aWMgaW50IGJyY21mX29wc19zZGlvX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTEwODYtXHRidXNfaWYtXHUwMDNlcHJvdG9fdHlwZSA9IEJSQ01GX1BST1RPX0JDREM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM6MTA4NzpcdGJ1c19pZi1cdTAwM2Vmd3ZpZCA9IGlkLVx1MDAzZWRyaXZlcl9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTEwODgtXHRkZXZfc2V0X2RydmRhdGEoXHUwMDI2ZnVuYy1cdTAwM2VkZXYsIGJ1c19pZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTE0MT1zdHJ1Y3QgYnJjbWZfYnVzX3N0YXRzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTU3LSAqIEBjaGlwcmV2OiByZXZpc2lvbiBvZiB0aGUgZG9uZ2xlIGNoaXAuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MTU4OiAqIEBmd3ZpZDogZmlybXdhcmUgdmVuZG9yLXN1cHBvcnQgaWRlbnRpZmllciBvZiB0aGUgZGV2aWNlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTE1OS0gKiBAYWx3YXlzX3VzZV9md3NfcXVldWU6IGJ1cyB3YW50cyB1c2UgcXVldWUgYWxzbyB3aGVuIGZ3c2lnbmFsIGlzIGluYWN0aXZlLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0xNjU9c3RydWN0IGJyY21mX2J1cyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTE3OC1cdHUzMiBjaGlwcmV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjE3OTpcdGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTgwLVx0Ym9vbCBhbHdheXNfdXNlX2Z3c19xdWV1ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0zNS0jaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MzY6I2luY2x1ZGUgXCYjMzQ7Znd2aWQuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMzctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0xOTY5LVx0fSBlbHNlIGlmIChzbWUtXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcdTAwMjYgTkw4MDIxMV9XUEFfVkVSU0lPTl8yKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlx0XHRpZiAoZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cdFx0ICAgIHNtZS1cdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MjM4MT1icmNtZl9jZmc4MDIxMV9jb25uZWN0KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTI1MjUtXHRcdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MjUyNjpcdFx0XHRlcnIgPSBicmNtZl9md3ZpZF9zZXRfc2FlX3Bhc3N3b3JkKGlmcCwgXHUwMDI2c21lLVx1MDAzZWNyeXB0byk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0yNTI3LVx0XHRcdGlmICghZXJyIFx1MDAyNlx1MDAyNiBzbWUtXHUwMDNlY3J5cHRvLnBzaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01MTQ1PWJyY21mX2NmZzgwMjExX3N0YXJ0X2FwKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDQtXHRcdFx0cHJvZmlsZS1cdTAwM2V1c2VfZndhdXRoIHw9IEJJVChCUkNNRl9QUk9GSUxFX0ZXQVVUSF9TQUUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6NTMwNTpcdFx0XHRlcnIgPSBicmNtZl9md3ZpZF9zZXRfc2FlX3Bhc3N3b3JkKGlmcCwgY3J5cHRvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDYtXHRcdFx0aWYgKGVyciBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01MzkzPXN0YXRpYyBpbnQgYnJjbWZfY2ZnODAyMTFfc3RvcF9hcChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NDE2LVx0XHRcdGlmIChwcm9maWxlLVx1MDAzZXVzZV9md2F1dGggXHUwMDI2IEJJVChCUkNNRl9QUk9GSUxFX0ZXQVVUSF9TQUUpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6NTQxNzpcdFx0XHRcdGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBcdTAwMjZjcnlwdG8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTQxOC1cdFx0XHRwcm9maWxlLVx1MDAzZXVzZV9md2F1dGggPSBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfTk9ORSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NjgwMD1zdGF0aWMgdm9pZCBicmNtZl9yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTY4MzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo2ODM4Olx0YnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoY2ZnLVx1MDAzZXB1Yik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02ODM5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTIwLSNpbmNsdWRlIFwmIzM0O2J1cy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjIxOiNpbmNsdWRlIFwmIzM0O2Z3dmlkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMjItI2luY2x1ZGUgXCYjMzQ7ZGVidWcuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTE0MD1zdGF0aWMgaW50IGJyY21mX3JldmluZm9fcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMTUwLVx0c2VxX3ByaW50ZihzLCBcJiMzNDtjaGlwOiAlcyAoJXMpXFxuXCYjMzQ7LCByaS1cdTAwM2VjaGlwbmFtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTE1MTpcdFx0ICAgYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoYnVzX2lmLVx1MDAzZWRydnIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTE1Mi1cdHNlcV9wcmludGYocywgXCYjMzQ7Y2hpcHBrZzogJXVcXG5cJiMzNDssIHJpLVx1MDAzZWNoaXBwa2cpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTMzMD1pbnQgYnJjbWZfYXR0YWNoKHN0cnVjdCBkZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEzNDc6XHRyZXQgPSBicmNtZl9md3ZpZF9hdHRhY2goZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNDgtXHRpZiAocmV0ICE9IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM0OTpcdFx0YnBoeV9lcnIoZHJ2ciwgXCYjMzQ7YnJjbWZfZnd2aWRfYXR0YWNoIGZhaWxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNTAtXHRcdGdvdG8gZmFpbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEzNzE6XHRicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKGRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzcyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTQzMD12b2lkIGJyY21mX2RldGFjaChzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxNDcxOlx0YnJjbWZfZnd2aWRfZGV0YWNoKGRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5oPTEwMT1zdHJ1Y3QgYnJjbWZfcHViIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5oLTE0NS1cdHU4IHN0YV9tYWNfaWR4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaDoxNDY6XHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaC0xNDctXHR2b2lkICp2ZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy04LSNpbmNsdWRlIFx1MDAzY2J1cy5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzo5OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTEwLSNpbmNsdWRlIFx1MDAzY2Z3aWwuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTM1Nj1zdGF0aWMgdm9pZCBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0zNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzozNjg6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzY5LVx0LnNldF9zYWVfcGFzc3dvcmQgPSBicmNtZl9jeXdfc2V0X3NhZV9wd2QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy03LSNpbmNsdWRlIFx1MDAzY2NvcmUuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzo4OiNpbmNsdWRlIFx1MDAzY2Z3dmlkLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTEzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MTQ6XHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTE1LVx0XHRcdFx0XHQgICBcdTAwMjZicmNtZl9jeXdfb3BzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjIwOlx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTIxLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmg6ODpleHRlcm4gY29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmgtOS0jZGVmaW5lIENZV19WT1BTXHQoXHUwMDI2YnJjbWZfY3l3X29wcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE1LSNpbmNsdWRlIFwmIzM0O2Z3aWxfdHlwZXMuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuYzoxNjojaW5jbHVkZSBcJiMzNDtmd3ZpZC5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE3LSNpbmNsdWRlIFwmIzM0O2ZlYXR1cmUuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmM9Mjg5PXZvaWQgYnJjbWZfZmVhdF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTM0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmM6MzQ3Olx0YnJjbWZfZnd2aWRfZmVhdF9hdHRhY2goaWZwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmMtMzQ4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmMtMTctI2luY2x1ZGUgXCYjMzQ7YnVzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmM6MTg6I2luY2x1ZGUgXCYjMzQ7Znd2aWQuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0xOS0vKipcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jPTM0ND1pbnQgYnJjbWZfZndlaF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTM0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmM6MzQ5Olx0ZXJyID0gYnJjbWZfZnd2aWRfYWxsb2NfZndlaF9pbmZvKGRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0zNTAtXHRpZiAoZXJyIFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmM9NDM4PWludCBicmNtZl9md2VoX2FjdGl2YXRlX2V2ZW50cyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTQ1OC1cdC8qIGFsbG93IHBlci12ZW5kb3IgbWV0aG9kIHRvIGFjdGl2YXRlIGZpcm13YXJlIGV2ZW50cyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYzo0NTk6XHRpZiAoIWJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhpZnApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy00NjAtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4LSNpbmNsdWRlIFwmIzM0O2RlYnVnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE5OiNpbmNsdWRlIFwmIzM0O2Z3dmlkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTIwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MjU6c3RydWN0IGJyY21mX2Z3dmlkX2VudHJ5IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI2LVx0Y29uc3QgY2hhciAqbmFtZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjI3Olx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI4LVx0c3RydWN0IGxpc3RfaGVhZCBkcnZyX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzozNTpzdGF0aWMgREVGSU5FX01VVEVYKGZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0zNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00MC1cdFx0Lm5hbWUgPSAjX25hbWUsIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MTpcdFx0LnJlZ19kb25lID0gQ09NUExFVElPTl9JTklUSUFMSVpFUihmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXS5yZWdfZG9uZSksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MjpcdFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00My1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00Ny1cdFx0Lm5hbWUgPSAjX25hbWUsIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0ODpcdFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00OS1cdFx0LnZvcHMgPSBfdmlkICMjIF9WT1BTIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo1MzpzdGF0aWMgc3RydWN0IGJyY21mX2Z3dmlkX2VudHJ5IGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfTlVNXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTU0LVx0RldWSURfRU5UUllfSU5JVChXQ0MsIHdjYyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTktI2lmIElTX01PRFVMRShDT05GSUdfQlJDTUZNQUMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2MDpzdGF0aWMgaW50IGJyY21mX2Z3dmlkX3JlcXVlc3RfbW9kdWxlKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy02MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2NDpcdGlmICghZnd2aWRfbGlzdFtmd3ZpZF0udm1vZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NjU6XHRcdHN0cnVjdCBjb21wbGV0aW9uICpyZWdfZG9uZSA9IFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLnJlZ19kb25lO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2NzpcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjY5Olx0XHRyZXQgPSByZXF1ZXN0X21vZHVsZShcJiMzNDticmNtZm1hYy0lc1wmIzM0OywgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03MC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjc3Olx0XHRtdXRleF9sb2NrKFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03OC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04MS1mYWlsOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6ODI6XHRicmNtZl9lcnIoXCYjMzQ7bW9kPSVzOiBmYWlsZWQgJWRcXG5cJiMzNDssIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04My1cdHJldHVybiByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4NjppbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKnZtb2QsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4NzpcdFx0XHRcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgKnZvcHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4OTpcdGlmIChmd3ZpZCBcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTkwLVx0XHRyZXR1cm4gLUVSQU5HRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjk2Olx0aWYgKFdBUk5fT04oZnd2aWRfbGlzdFtmd3ZpZF0udm1vZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05Ny1cdFx0cmV0dXJuIC1FRVhJU1Q7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjk5Olx0YnJjbWZfZGJnKFRSQUNFLCBcJiMzNDttb2Q9JXM6IGVudGVyXFxuXCYjMzQ7LCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwMTpcdG11dGV4X2xvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwMzpcdGZ3dmlkX2xpc3RbZnd2aWRdLnZtb2QgPSB2bW9kO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTA0Olx0Znd2aWRfbGlzdFtmd3ZpZF0udm9wcyA9IHZvcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDY6XHRtdXRleF91bmxvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwODpcdGNvbXBsZXRlX2FsbChcdTAwMjZmd3ZpZF9saXN0W2Z3dmlkXS5yZWdfZG9uZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTExLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjExMjpCUkNNRl9FWFBPUlRfU1lNQk9MX0dQTChicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTE0OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjExODpcdGlmIChmd3ZpZCBcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExOS1cdFx0cmV0dXJuIC1FUkFOR0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMjE6XHRpZiAoV0FSTl9PTihmd3ZpZF9saXN0W2Z3dmlkXS52bW9kICE9IG1vZCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjItXHRcdHJldHVybiAtRU5PRU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTI0Olx0bXV0ZXhfbG9jayhcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTI2Olx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGJ1cywgdG1wLCBcdTAwMjZmd3ZpZF9saXN0W2Z3dmlkXS5kcnZyX2xpc3QsIGxpc3QpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyNzpcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMjk6XHRcdGJyY21mX2RiZyhJTkZPLCBcJiMzNDttb2Q9JXM6IHJlbW92aW5nICVzXFxuXCYjMzQ7LCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTMwLVx0XHRcdCAgZGV2X25hbWUoYnVzLVx1MDAzZWRldikpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEzMzpcdFx0bXV0ZXhfbG9jayhcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTM0LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTM2Olx0Znd2aWRfbGlzdFtmd3ZpZF0udm1vZCA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMzc6XHRmd3ZpZF9saXN0W2Z3dmlkXS52b3BzID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEzODpcdHJlaW5pdF9jb21wbGV0aW9uKFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLnJlZ19kb25lKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE0MDpcdGJyY21mX2RiZyhUUkFDRSwgXCYjMzQ7bW9kPSVzOiBleGl0XFxuXCYjMzQ7LCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE0MTpcdG11dGV4X3VubG9jayhcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTQyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDU6QlJDTUZfRVhQT1JUX1NZTUJPTF9HUEwoYnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTQ2LSNlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDc6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfcmVxdWVzdF9tb2R1bGUoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTUzOmludCBicmNtZl9md3ZpZF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE1NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNTU6XHRlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkID0gZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNTYtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTU4Olx0aWYgKGZ3dmlkIFx1MDAzZT0gQVJSQVlfU0laRShmd3ZpZF9saXN0KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE1OS1cdFx0cmV0dXJuIC1FUkFOR0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNjE6XHRicmNtZl9kYmcoVFJBQ0UsIFwmIzM0O21vZD0lczogZW50ZXI6IGRldiAlc1xcblwmIzM0OywgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2Mi1cdFx0ICBkZXZfbmFtZShkcnZyLVx1MDAzZWJ1c19pZi1cdTAwM2VkZXYpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2NDpcdG11dGV4X2xvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2NjpcdHJldCA9IGJyY21mX2Z3dmlkX3JlcXVlc3RfbW9kdWxlKGZ3dmlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE2Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTcwOlx0ZHJ2ci1cdTAwM2V2b3BzID0gZnd2aWRfbGlzdFtmd3ZpZF0udm9wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE3MTpcdGxpc3RfYWRkKFx1MDAyNmRydnItXHUwMDNlYnVzX2lmLVx1MDAzZWxpc3QsIFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLmRydnJfbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNzM6XHRtdXRleF91bmxvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE3NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNzg6dm9pZCBicmNtZl9md3ZpZF9kZXRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE3OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODA6XHRlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkID0gZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODI6XHRpZiAoZnd2aWQgXHUwMDNlPSBBUlJBWV9TSVpFKGZ3dmlkX2xpc3QpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTgzLVx0XHRyZXR1cm47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODU6XHRicmNtZl9kYmcoVFJBQ0UsIFwmIzM0O21vZD0lczogZW50ZXI6IGRldiAlc1xcblwmIzM0OywgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4Ni1cdFx0ICBkZXZfbmFtZShkcnZyLVx1MDAzZWJ1c19pZi1cdTAwM2VkZXYpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE4ODpcdG11dGV4X2xvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTMtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTQ6XHRtdXRleF91bmxvY2soXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTc6Y29uc3QgY2hhciAqYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTk6XHRyZXR1cm4gZnd2aWRfbGlzdFtkcnZyLVx1MDAzZWJ1c19pZi1cdTAwM2Vmd3ZpZF0ubmFtZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTIwMC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg9MTI9c3RydWN0IGJyY21mX2lmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoxNDpzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTE1LVx0dm9pZCAoKmZlYXRfYXR0YWNoKShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMjMtLyogZXhwb3J0ZWQgZnVuY3Rpb25zICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoyNDppbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKm1vZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI1Olx0XHRcdFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI2OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC0yOC0vKiBjb3JlIGRyaXZlciBmdW5jdGlvbnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI5OmludCBicmNtZl9md3ZpZF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozMDp2b2lkIGJyY21mX2Z3dmlkX2RldGFjaChzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjMxOmNvbnN0IGNoYXIgKmJyY21mX2Z3dmlkX3ZlbmRvcl9uYW1lKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozMzpzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfZmVhdF9hdHRhY2goc3RydWN0IGJyY21mX2lmICppZnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC0zNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozNTpcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgKnZvcHMgPSBpZnAtXHUwMDNlZHJ2ci1cdTAwM2V2b3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo0MzpzdGF0aWMgaW5saW5lIGludCBicmNtZl9md3ZpZF9zZXRfc2FlX3Bhc3N3b3JkKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDQtXHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgY2ZnODAyMTFfY3J5cHRvX3NldHRpbmdzICpjcnlwdG8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC00NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo0NjpcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgKnZvcHMgPSBpZnAtXHUwMDNlZHJ2ci1cdTAwM2V2b3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo1NDpzdGF0aWMgaW5saW5lIGludCBicmNtZl9md3ZpZF9hbGxvY19md2VoX2luZm8oc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC02MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjYyOnN0YXRpYyBpbmxpbmUgaW50IGJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjY0Olx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcyA9IGlmcC1cdTAwM2VkcnZyLVx1MDAzZXZvcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC02NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjcyOnN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo4MDpzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTgxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0Mzk9YnJjbWZfcGNpZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUxNy1cdGJ1cy1cdTAwM2V3b3dsX3N1cHBvcnRlZCA9IHBjaV9wbWVfY2FwYWJsZShwZGV2LCBQQ0lfRDNob3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTE4Olx0YnVzLVx1MDAzZWZ3dmlkID0gZHJ2ZGF0YVtpZC1cdTAwM2Vkcml2ZXJfZGF0YV0udmVuZG9yO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTE5LVx0ZGV2aW5mby1cdTAwM2Vmd3NlZWQgPSBkcnZkYXRhW2lkLVx1MDAzZWRyaXZlcl9kYXRhXS5md19zZWVkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUyNi1cdC8qIG90cCByZWFkIG9wZXJhdGlvbiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTI3Olx0c3dpdGNoIChidXMtXHUwMDNlZnd2aWQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUyOC1cdGNhc2UgQlJDTUZfRldWRU5ET1JfV0NDOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMjQ0PXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Byb2JlX2NiKHN0cnVjdCBicmNtZl91c2JkZXZfaW5mbyAqZGV2aW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxMjQ1Olx0XHRcdCAgICAgIGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNjktXHRidXMtXHUwMDNlcHJvdG9fdHlwZSA9IEJSQ01GX1BST1RPX0JDREM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTI3MDpcdGJ1cy1cdTAwM2Vmd3ZpZCA9IGZ3dmlkO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNzEtXHRidXMtXHUwMDNlYWx3YXlzX3VzZV9md3NfcXVldWUgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTgtI2luY2x1ZGUgXHUwMDNjYnVzLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jOjk6I2luY2x1ZGUgXHUwMDNjZnd2aWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMTAtI2luY2x1ZGUgXHUwMDNjY2ZnODAyMTEuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jPTIzPXN0YXRpYyBpbnQgYnJjbWZfd2NjX2FsbG9jX2Z3ZWhfaW5mbyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmM6MzY6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMzctXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX3djY19zZXRfc2FlX3B3ZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTctI2luY2x1ZGUgXHUwMDNjY29yZS5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jOjg6I2luY2x1ZGUgXHUwMDNjZnd2aWQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy05LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfd2NjX2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYzoxNDpcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTUtXHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX3djY19vcHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX3djY19leGl0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MjA6XHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9XQ0MsIFRISVNfTU9EVUxFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaDo4OmV4dGVybiBjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX3djY19vcHM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC05LSNkZWZpbmUgV0NDX1ZPUFNcdChcdTAwMjZicmNtZl93Y2Nfb3BzKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzAwNQoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgYGJyY21mX3VzYl9wcm9iZV9jYmAqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBgYnJjbWZfdXNiX3Byb2JlX2NiYCBmdW5jdGlvbiBhbmQgaW1tZWRpYXRlbHkgSSYjMzk7bSB0aGlua2luZywgJiMzNDtPa2F5LCBgZnd2aWRgIGlzIHBhc3NlZCBpbiBhcyBhbiBhcmd1bWVudC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuJiMzNDsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgaG93IHRoaXMgYGZ3dmlkYCBpcyB1c2VkLCBzbyBteSBmaXJzdCBtb3ZlIGlzIHRvIHRyYWNlIHdoZXJlIGFuZCBob3cgdGhpcyBgYnJjbWZfdXNiX3Byb2JlX2NiYCBpcyBhY3R1YWxseSAqY2FsbGVkKi4gVGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byBgdXNiLmNgIGFuZCBmaWd1cmUgb3V0IHRoZSBjYWxsIHN0YWNrIOKAkyBnZXQgYSBoYW5kbGUgb24gd2hhdCYjMzk7cyB0cmlnZ2VyaW5nIHRoaXMgZnVuY3Rpb24gYW5kIHdoYXQgaW5mb3JtYXRpb24gaXMgYmVpbmcgcGFzc2VkIHVwIHRoZSBjaGFpbi4gVW5kZXJzdGFuZGluZyB0aGUgY2FsbCBjb250ZXh0IGFyb3VuZCB0aGUgYGZ3dmlkYCBhcmd1bWVudCBpcyBnb2luZyB0byBiZSBrZXkgdG8gc2VlaW5nIGhvdyB0aGlzIGZpcm13YXJlIHZlcnNpb24gSUQgaW1wYWN0cyB0aGUgcHJvYmUgcHJvY2VkdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl91c2JfcHJvYmVfY2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMjI0PWJyY21mX3VzYl9wcmVwYXJlX2Z3X3JlcXVlc3Qoc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMjQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEyNDQ6c3RhdGljIGludCBicmNtZl91c2JfcHJvYmVfY2Ioc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNDUtXHRcdFx0ICAgICAgZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTM0Mj1icmNtZl91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTQ0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNDQzOlx0cmV0ID0gYnJjbWZfdXNiX3Byb2JlX2NiKGRldmluZm8sIGlkLVx1MDAzZWRyaXZlcl9pbmZvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNDQ0LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM2NzAKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgZnJvbSBhbiBleHBlcnQmIzM5O3MgcGVyc3BlY3RpdmU6CgoqKkRpdmluZyBpbnRvIHRoZSBGaXJtd2FyZSBJRCoqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYGlkLSZndDtkcml2ZXJfaW5mb2AgYW5kIEkga25vdyB0aGF0JiMzOTtzIHdoZXJlIHRoZSBgZnd2aWRgIGlzIHN0b3JlZC4gTXkgZ3V0IHRlbGxzIG1lIHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgZmlybXdhcmUgdmVyc2lvbi4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY3Jvc3MtcmVmZXJlbmNlIHRoYXQgd2l0aCB0aGUgZGV2aWNlIElEIHRhYmxlLiBUaGF0IHdvdWxkIGJlIGBicmNtZl91c2JfZGV2aWRfdGFibGVgIGluIGB1c2IuY2AsIGJlY2F1c2UgSSYjMzk7bSBiZXR0aW5nIHdlIGFyZSBsb29raW5nIGF0IHNvbWV0aGluZyB0byBkbyB3aXRoIEJyb2FkY29tIFVTQiBkZXZpY2VzLiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGF0IGZ3dmlkIGlzIHVzZWQsIGVzcGVjaWFsbHkgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBkcml2ZXIsIGFuZCBpZiB0aGVyZSBhcmUgYW55IGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIG9yIHF1aXJrcyBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWMgdmVyc2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtIGlzIGNvcnJlbGF0aW5nIHRoZSByZXBvcnRlZCBmaXJtd2FyZSB3aXRoIHRoZSBoYXJkd2FyZSBpdCYjMzk7cyBtYW5hZ2luZy4gVGltZSB0byBkaWchCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3VzYl9kZXZpZF90YWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTEzMjY9YnJjbWZfdXNiX2Rpc2Nvbm5lY3RfY2Ioc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzM4LS8qIEZvcndhcmQgZGVjbGFyYXRpb24gZm9yIHVzYl9tYXRjaF9pZCgpIGNhbGwgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxMzM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBicmNtZl91c2JfZGV2aWRfdGFibGVbXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzQwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMzQyPWJyY21mX3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzUyLVx0aWYgKCFpZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEzNTM6XHRcdGlkID0gdXNiX21hdGNoX2lkKGludGYsIGJyY21mX3VzYl9kZXZpZF90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTM1NC1cdFx0aWYgKCFpZCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTExPXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Jlc2V0X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQ5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBicmNtZl91c2JfZGV2aWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTUwLVx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzE0M19ERVZJQ0VfSUQpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NjM6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGJyY21mX3VzYl9kZXZpZF90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTY1PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBicmNtZl91c2JkcnZyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTY4LVx0LmRpc2Nvbm5lY3QgPSBicmNtZl91c2JfZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTY5Olx0LmlkX3RhYmxlID0gYnJjbWZfdXNiX2RldmlkX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NzAtXHQuc3VzcGVuZCA9IGJyY21mX3VzYl9zdXNwZW5kLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDgzNgoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIEJSQ01GIFVTQiBMYW5kc2NhcGUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBCUkNNRl9VU0JfREVWSUNFYCBtYWNybywgb3IgYXQgbGVhc3QgZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB3aGF0JiMzOTtzIGhlbGQgd2l0aGluIHRoZSBgYnJjbWZfdXNiX2RldmlkX3RhYmxlYC4gSSYjMzk7bSBndWVzc2luZyB0aGF0IHRoaXMgaXMgdGhlIGNlbnRyYWwgcGllY2UgZm9yIGlkZW50aWZ5aW5nIGFuZCBjb25maWd1cmluZyBVU0IgZGV2aWNlcyBmb3IgdGhlIEJyb2FkY29tIFdpRmkgZHJpdmVyLiBMaWtlbHksIGl0IGhvbGRzIGFsbCB0aGUgdml0YWwgdmVuZG9yIElEcywgcHJvZHVjdCBJRHMsIG1heWJlIGV2ZW4gcmV2aXNpb24gSURzLCB0aGF0JiMzOTtsbCBhbGxvdyB0aGUgZHJpdmVyIHRvIHJlY29nbml6ZSBjb21wYXRpYmxlIGhhcmR3YXJlIGFuZCBsb2FkIHRoZSByaWdodCBmaXJtd2FyZSBvciBjb25maWd1cmF0aW9ucy4gSSYjMzk7bSBrZWVuIHRvIGRpc3NlY3QgdGhpcyB0YWJsZSBvciBtYWNybywgaXQmIzM5O2xsIHVuZG91YnRlZGx5IHJldmVhbCBzb21lIGNydWNpYWwgaW5zaWdodHMgaW50byB0aGUgZHJpdmVyJiMzOTtzIGRldmljZS1tYXRjaGluZyBsb2dpYy4gV2hldGhlciBpdCYjMzk7cyBhIHNpbXBsZSBsb29rdXAgdGFibGUgb3Igc29tZSBtb3JlIHNvcGhpc3RpY2F0ZWQgbWFjcm8gbWFnaWMsIGtub3dpbmcgaXRzIGludGVybmFscyB3aWxsIHNpZ25pZmljYW50bHkgZW5oYW5jZSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBVU0IgZGV2aWNlIGluaXRpYWxpemF0aW9uIHByb2Nlc3Mgd2l0aGluIHRoaXMgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCUkNNRl9VU0JfREVWSUNFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTUxMT1zdGF0aWMgaW50IGJyY21mX3VzYl9yZXNldF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTUzMTojZGVmaW5lIEJSQ01GX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzItXHR7IFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1NDk9c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTA6XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMTQzX0RFVklDRV9JRCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU1MTpcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMyMzZfREVWSUNFX0lEKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTUyOlx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzI0Ml9ERVZJQ0VfSUQpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTM6XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzNTY5X0RFVklDRV9JRCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU1NC1cdExJTktTWVNfVVNCX0RFVklDRShCUkNNX1VTQl80MzIzNV9MSU5LU1lTX0RFVklDRV9JRCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTctXHQvKiBzcGVjaWFsIGVudHJ5IGZvciBkZXZpY2Ugd2l0aCBmaXJtd2FyZSBsb2FkZWQgYW5kIHJ1bm5pbmcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTU4Olx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTktXHRDWVBSRVNTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfQkNNRldfREVWSUNFX0lEKSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU3OTcKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyBVU0IgRGV2aWNlIERlZmluaXRpb25zKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGUgc3lzdGVtIGhhbmRsZXMgY2VydGFpbiBVU0IgZGV2aWNlcy4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIHRoZSBkZWZpbml0aW9ucyBmb3IgYEJSQ01GX1VTQl9ERVZJQ0VgIGFuZCBgQ1lQUkVTU19VU0JfREVWSUNFYCB3aXRoaW4gdGhlIGB1c2IuY2AgZmlsZS4gSSYjMzk7bSBub3QgbG9va2luZyBmb3IgYSBjYXN1YWwgb3ZlcnZpZXcgaGVyZTsgSSB3YW50IHRoZSBncmFudWxhciBkZXRhaWxzLiBJIG5lZWQgdG8gc2VlIHRoZSBleGFjdCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMsIHRoZSBhc3NvY2lhdGVkIHZlbmRvciBhbmQgcHJvZHVjdCBJRHMsIGFuZCBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdGhhdCBtaWdodCBiZSBoYXBwZW5pbmcgYmFzZWQgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSBvciBjb25maWd1cmF0aW9uLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGRyaXZlciYjMzk7cyBiZWhhdmlvdXIgd2hlbiB0aGVzZSBzcGVjaWZpYyBkZXZpY2VzIGFyZSBjb25uZWN0ZWQuIEkgbmVlZCB0byBrbm93IHdoYXQgaG9va3MgYXJlIGJlaW5nIHVzZWQgYXMgd2VsbC4gTGV04oCZcyBzZWUgd2hhdCB3ZSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2RlZmluZS4qVVNCX0RFVklDRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1MTE9c3RhdGljIGludCBicmNtZl91c2JfcmVzZXRfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzE6I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMyLVx0eyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1Mzc6I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzgtXHR7IFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU0MzojZGVmaW5lIENZUFJFU1NfVVNCX0RFVklDRShkZXZfaWQpIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0NC1cdHsgXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY0NjMKCQkJCQkJCW91dHB1dDogNTQKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIFVTQiBDb3JlIC0gTGluZSAxNTMxKioKCk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYHVzYi5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDE1MzEuIEkmIzM5O20gcHJvYmFibHkgaW50ZXJlc3RlZCBpbiB1bmRlcnN0YW5kaW5nIGhvdyBhIHBhcnRpY3VsYXIgVVNCIGZ1bmN0aW9uIGlzIGJlaW5nIGhhbmRsZWQsIG9yIG1heWJlIEkmIzM5O20gdHJvdWJsZXNob290aW5nIGFuIGlzc3VlIGFuZCBoYXZlIGJlZW4gZGlyZWN0ZWQgdG8gdGhpcyBhcmVhIGJ5IGEgc3RhY2sgdHJhY2Ugb3IgbG9nIG1lc3NhZ2VzLiBJJiMzOTttIGFscmVhZHkgZm9ybXVsYXRpbmcgaHlwb3RoZXNlcyBhYm91dCB3aGF0IEkgbWlnaHQgZmluZCBiYXNlZCBvbiBteSBnZW5lcmFsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIFVTQiBzdGFjay4gSXMgdGhpcyBhIGNyaXRpY2FsIHBhdGggZm9yIGRldmljZSBlbnVtZXJhdGlvbj8gRW5kcG9pbnQgaGFuZGxpbmc/IExpa2VseSwgdGhpcyBjaHVuayBvZiBjb2RlIGlzIGludm9sdmVkIGluIGVpdGhlciBpbml0aWFsaXphdGlvbiwgdHJhbnNmZXIgc2NoZWR1bGluZywgb3IgZXJyb3IgbWFuYWdlbWVudCB3aXRoaW4gdGhlIFVTQiBjb3JlLiBLbm93aW5nIHRoZSBleGFjdCBjb250ZXh0IHdpbGwgaGVscCwgYnV0IEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBkZXRhaWxlZCByZXZpZXcgb2YgdGhpcyBzZWN0aW9uLiBJIHdpbGwgYmUgc3VyZSB0byBjcm9zcy1yZWZlcmVuY2UgYW55IHJlbGV2YW50IHN0cnVjdHVyZXMgb3IgZnVuY3Rpb25zIHJlZmVyZW5jZWQgd2l0aGluIHRoYXQgc2VjdGlvbi4gTGV0JiMzOTtzIGRpZyBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNTMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE1MzA6XHRcbjE1MzE6XHQjZGVmaW5lIEJSQ01GX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuMTUzMjpcdFx0eyBcXFxuMTUzMzpcdFx0XHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9CUk9BRENPTSwgZGV2X2lkKSwgXFxcbjE1MzQ6XHRcdFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXG4xNTM1Olx0XHR9XG4xNTM2Olx0XG4xNTM3Olx0I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxuMTUzODpcdFx0eyBcXFxuMTUzOTpcdFx0XHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9MSU5LU1lTLCBkZXZfaWQpLCBcXFxuMTU0MDpcdFx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbjE1NDE6XHRcdH1cbjE1NDI6XHRcbjE1NDM6XHQjZGVmaW5lIENZUFJFU1NfVVNCX0RFVklDRShkZXZfaWQpIFxcXG4xNTQ0Olx0XHR7IFxcXG4xNTQ1Olx0XHRcdFVTQl9ERVZJQ0UoQ1lfVVNCX1ZFTkRPUl9JRF9DWVBSRVNTLCBkZXZfaWQpLCBcXFxuMTU0NjpcdFx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbjE1NDc6XHRcdH1cbjE1NDg6XHRcbjE1NDk6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgYnJjbWZfdXNiX2RldmlkX3RhYmxlW10gPSB7XG4xNTUwOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMTQzX0RFVklDRV9JRCksXG4xNTUxOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjM2X0RFVklDRV9JRCksXG4xNTUyOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjQyX0RFVklDRV9JRCksXG4xNTUzOlx0XHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzNTY5X0RFVklDRV9JRCksXG4xNTU0Olx0XHRMSU5LU1lTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMyMzVfTElOS1NZU19ERVZJQ0VfSUQpLFxuMTU1NTpcdFx0Q1lQUkVTU19VU0JfREVWSUNFKENZX1VTQl80MzczX0RFVklDRV9JRCksXG4xNTU2Olx0XHR7IFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0xHLCBCUkNNX1VTQl80MzI0Ml9MR19ERVZJQ0VfSUQpIH0sXG4xNTU3Olx0XHQvKiBzcGVjaWFsIGVudHJ5IGZvciBkZXZpY2Ugd2l0aCBmaXJtd2FyZSBsb2FkZWQgYW5kIHJ1bm5pbmcgKi9cbjE1NTg6XHRcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfQkNNRldfREVWSUNFX0lEKSxcbjE1NTk6XHRcdENZUFJFU1NfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzM2NwoJCQkJCQkJb3V0cHV0OiA1MQoJCQkJCQkJdGhvdWdodHM6IDE1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBDeXByZXNzIFVTQiBEZXZpY2UgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJdCBzZWVtcyBhIGJpdCBvZGQgdGhhdCBgQ1lQUkVTU19VU0JfREVWSUNFYCBpcyB1dGlsaXppbmcgYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFRoYXQganVzdCBkb2VzbiYjMzk7dCBmZWVsIHJpZ2h0LiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgQ1lQUkVTU19VU0JfREVWSUNFYCBjb25maWd1cmF0aW9uIGFnYWluLCBmb2N1c2luZyBvbiB0aGF0IGRyaXZlciBpbmZvcm1hdGlvbiBzZXR0aW5nLiBSaWdodCwgbGluZSAxNTQ2Li4uIHRoZXJlIGl0IGlzOiBgLmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDYC4gSG1tLgoKTm93LCB0aGF0IGJyaW5ncyB1cCBhbm90aGVyIHBvaW50LiBXaGVyZSAqaXMqIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGJlaW5nIGVtcGxveWVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biB3aGVyZSB0aGF0JiMzOTtzIGFjdHVhbGx5IHVzZWQuIExldCBtZSBnbyBiYWNrIGFuZCByZS1leGFtaW5lIHRoZSBgQ1lQUkVTU19VU0JfREVWSUNFYCBzZXR0aW5ncyB3aXRoaW4gYHVzYi5jYC4KCkFoLCBva2F5LCBJIHNlZSBpdCBub3cuIFdhaXQuIEl0JiMzOTtzIGJlY29taW5nIGNsZWFyLi4uIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGlzIGFjdHVhbGx5IGRlZmluZWQgd2l0aGluIGBwY2llLmNgIGFuZCBgc2Rpby5jYC4gTm90IFVTQiBhdCBhbGwhIEkgc3VwcG9zZSB0aGlzIG1ha2VzIHNlbnNlLiBMZXQmIzM5O3MgZGVsdmUgaW50byBgc2Rpby5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgc3BlY2lmaWMgZmlybXdhcmUgdmVuZG9yIGNvbmZpZ3VyYXRpb24gaXMgdXRpbGl6ZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhlc2UgdmVuZG9yIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0JSQ01GX0ZXVkVORE9SX0NZVyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTM0PWVudW0gYnJjbWZfZnd2ZW5kb3Ige1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTM1LVx0QlJDTUZfRldWRU5ET1JfV0NDLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM2Olx0QlJDTUZfRldWRU5ET1JfQ1lXLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTM3LVx0QlJDTUZfRldWRU5ET1JfQkNBLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jPTE5NTc9c3RhdGljIHMzMiBicmNtZl9zZXRfd3BhX3ZlcnNpb24oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cdH0gZWxzZSBpZiAoc21lLVx1MDAzZWNyeXB0by53cGFfdmVyc2lvbnMgXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MTk3MDpcdFx0aWYgKGRydnItXHUwMDNlYnVzX2lmLVx1MDAzZWZ3dmlkID09IEJSQ01GX0ZXVkVORE9SX0NZVyBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTE5NzEtXHRcdCAgICBzbWUtXHUwMDNlY3J5cHRvLmFrbV9zdWl0ZXNbMF0gPT0gV0xBTl9BS01fU1VJVEVfU0FFKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfY3l3X2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTUtXHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX2N5d19vcHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX2N5d19leGl0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMjEtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQxNj1zdGF0aWMgY29uc3Qgc3RydWN0IGJyY21mX3BjaWVfZHJ2ZGF0YSBkcnZkYXRhW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTctXHRbQlJDTUZfRFJWREFUQV9DWVddID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDE4Olx0XHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfQ1lXLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE5LVx0XHQuZndfc2VlZCA9IGZhbHNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQzOT1icmNtZl9wY2llX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM1LVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjUzNjpcdGNhc2UgQlJDTUZfRldWRU5ET1JfQ1lXOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM3LVx0ZGVmYXVsdDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg5OTUKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBCcm9hZGNvbSBGaXJtd2FyZSBVc2FnZSoqCgpPa2F5LCBzbyBJJiMzOTttIHNlZWluZyBgQlJDTUZfRldWRU5ET1JfQ1lXYCBhbmQgbXkgZmlyc3QgdGhvdWdodCBpcywgJiMzNDtXaGVyZSBleGFjdGx5IGlzIHRoaXMgdXNlZD8mIzM0OyBJIHF1aWNrbHkgcmVhbGl6ZSBpdCBzZWVtcyB0byBiZSBjb25maW5lZCB0byBgcGNpZS5jYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYnV0IEkgbmVlZCB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBjb2RlIGJhc2UsIHNvIEkmIzM5O20gZ29pbmcgdG8ganVtcCBvdmVyIHRvIGBiY21zZGguY2Ag4oCTIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIFNESU8gc3R1ZmYgaXMsIGFuZCBpdCYjMzk7cyBhIGNyaXRpY2FsIGFyZWEgZm9yIEJyb2FkY29tIGZpcm13YXJlLiBHb3R0YSBtYWtlIHN1cmUgdGhpcyBpc24mIzM5O3QgYSB3aWRlciBjb25jZXJuIHRoYW4gSSBpbml0aWFsbHkgdGhvdWdodC4gSSBuZWVkIHRvIHNlZSBpZiB0aGUgU0RJTyBkcml2ZXIgaXMgaGFuZGxpbmcgdGhpbmdzIHRoZSBzYW1lIHdheSwgb3IgaWYgdGhlcmUmIzM5O3MgYSBkaWZmZXJlbmNlIGluIHRoZSB2ZW5kb3Igc3RyaW5nIHVzYWdlLiBUaGlzIGFsbCBoZWxwcyBtZSB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIGRlc2lnbiBhbmQgYW55IHBvdGVudGlhbCBpbmNvbnNpc3RlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0JSQ01GX0ZXVkVORE9SXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9iY2FfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjE0Olx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9CQ0EsIFRISVNfTU9EVUxFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xNS1cdFx0XHRcdFx0ICAgXHUwMDI2YnJjbWZfYmNhX29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfYmNhX2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYzoyMDpcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0JDQSwgVEhJU19NT0RVTEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0yMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jPTkwMD1pbnQgYnJjbWZfc2Rpb2RfcHJvYmUoc3RydWN0IGJyY21mX3NkaW9fZGV2ICpzZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NjgtXHRcdFNESU9fREVWSUNFKFNESU9fVkVORE9SX0lEX0JST0FEQ09NLCBkZXZfaWQpLCBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jOjk2OTpcdFx0LmRyaXZlcl9kYXRhID0gQlJDTUZfRldWRU5ET1JfICMjIGZ3X3ZlbmQgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NzAtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTk3NC1cdFx0U0RJT19ERVZJQ0UoU0RJT19WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYzo5NzU6XHRcdC5kcml2ZXJfZGF0YSA9IEJSQ01GX0ZXVkVORE9SXyAjIyBmd192ZW5kIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmMtOTc2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0zND1lbnVtIGJyY21mX2Z3dmVuZG9yIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNTpcdEJSQ01GX0ZXVkVORE9SX1dDQyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNjpcdEJSQ01GX0ZXVkVORE9SX0NZVyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNzpcdEJSQ01GX0ZXVkVORE9SX0JDQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zOC1cdC8qIGtlZXAgbGFzdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM5Olx0QlJDTUZfRldWRU5ET1JfTlVNLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjQwOlx0QlJDTUZfRldWRU5ET1JfSU5WQUxJRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTQxLX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0xOTY5LVx0fSBlbHNlIGlmIChzbWUtXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcdTAwMjYgTkw4MDIxMV9XUEFfVkVSU0lPTl8yKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlx0XHRpZiAoZHJ2ci1cdTAwM2VidXNfaWYtXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cdFx0ICAgIHNtZS1cdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjE0Olx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cdFx0XHRcdFx0ICAgXHUwMDI2YnJjbWZfY3l3X29wcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfY3l3X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoyMDpcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM9MzU9c3RhdGljIERFRklORV9NVVRFWChmd3ZpZF9saXN0X2xvY2spO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTM4LSNkZWZpbmUgRldWSURfRU5UUllfSU5JVChfdmlkLCBfbmFtZSkgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjM5Olx0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXSA9IHsgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQwLVx0XHQubmFtZSA9ICNfbmFtZSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQxOlx0XHQucmVnX2RvbmUgPSBDT01QTEVUSU9OX0lOSVRJQUxJWkVSKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLnJlZ19kb25lKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQyOlx0XHQuZHJ2cl9saXN0ID0gTElTVF9IRUFEX0lOSVQoZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl8gIyMgX3ZpZF0uZHJ2cl9saXN0KSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQzLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ1LSNkZWZpbmUgRldWSURfRU5UUllfSU5JVChfdmlkLCBfbmFtZSkgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQ2Olx0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXSA9IHsgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ3LVx0XHQubmFtZSA9ICNfbmFtZSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQ4Olx0XHQuZHJ2cl9saXN0ID0gTElTVF9IRUFEX0lOSVQoZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl8gIyMgX3ZpZF0uZHJ2cl9saXN0KSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ5LVx0XHQudm9wcyA9IF92aWQgIyMgX1ZPUFMgXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjUzOnN0YXRpYyBzdHJ1Y3QgYnJjbWZfZnd2aWRfZW50cnkgZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl9OVU1dID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTQtXHRGV1ZJRF9FTlRSWV9JTklUKFdDQywgd2NjKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYz04Nj1pbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKnZtb2QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtODgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6ODk6XHRpZiAoZnd2aWQgXHUwMDNlPSBCUkNNRl9GV1ZFTkRPUl9OVU0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05MC1cdFx0cmV0dXJuIC1FUkFOR0U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM9MTE0PWludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTE4Olx0aWYgKGZ3dmlkIFx1MDAzZT0gQlJDTUZfRldWRU5ET1JfTlVNKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE5LVx0XHRyZXR1cm4gLUVSQU5HRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0MTY9c3RhdGljIGNvbnN0IHN0cnVjdCBicmNtZl9wY2llX2RydmRhdGEgZHJ2ZGF0YVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE3LVx0W0JSQ01GX0RSVkRBVEFfQ1lXXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjQxODpcdFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX0NZVyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxOS1cdFx0LmZ3X3NlZWQgPSBmYWxzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjEtXHRbQlJDTUZfRFJWREFUQV9CQ0FdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDIyOlx0XHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfQkNBLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDIzLVx0XHQuZndfc2VlZCA9IGZhbHNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQyNS1cdFtCUkNNRl9EUlZEQVRBX1dDQ10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MjY6XHRcdC52ZW5kb3IgPSBCUkNNRl9GV1ZFTkRPUl9XQ0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjctXHRcdC5md19zZWVkID0gZmFsc2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDI5LVx0W0JSQ01GX0RSVkRBVEFfV0NDX1NFRURdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDMwOlx0XHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfV0NDLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDMxLVx0XHQuZndfc2VlZCA9IHRydWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MjctXHRzd2l0Y2ggKGJ1cy1cdTAwM2Vmd3ZpZCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTI4Olx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9XQ0M6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1Mjk6XHRjYXNlIEJSQ01GX0ZXVkVORE9SX0JDQTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzMC1cdFx0cmV0ID0gYnJjbWZfcGNpZV9yZWFkX290cChkZXZpbmZvKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTM2Olx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9DWVc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzctXHRkZWZhdWx0OlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTExPXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Jlc2V0X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzMy1cdFx0VVNCX0RFVklDRShCUkNNX1VTQl9WRU5ET1JfSURfQlJPQURDT00sIGRldl9pZCksIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTUzNDpcdFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzNS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzOS1cdFx0VVNCX0RFVklDRShCUkNNX1VTQl9WRU5ET1JfSURfTElOS1NZUywgZGV2X2lkKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQwOlx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTQxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTQ1LVx0XHRVU0JfREVWSUNFKENZX1VTQl9WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQ2Olx0XHQuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0MgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTQ3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfd2NjX2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYzoxNDpcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTUtXHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX3djY19vcHMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX3djY19leGl0KHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MjA6XHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9XQ0MsIFRISVNfTU9EVUxFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMjEtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAxMTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzc4NwoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDQwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgQnJvYWRjb20gRmlybXdhcmUgVmVuZG9yIElEIFVzYWdlKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBzZWVtcyB0byBiZSBzcGVjaWZpYyB0byBgYmNtc2RoLmNgIChTRElPKSBhbmQgYHBjaWUuY2AgKFBDSWUpIGluIHRoZSBCcm9hZGNvbSBkcml2ZXIgY29kZS4gSXQmIzM5O3MgY29uc3BpY3VvdXNseSAqYWJzZW50KiBmcm9tIGB1c2IuY2AuIEluIGB1c2IuY2AsIGV2ZXJ5dGhpbmcgdXNlcyBgQlJDTUZfRldWRU5ET1JfV0NDYCwgb3IgdGhlIGRlZmF1bHQgb2YgMCB3aGljaCBhbHNvIHJlc29sdmVzIHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLgoKSG1tLCBub3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0LCBgYmNtc2RoLmNgIGlzIHRoZSBTRElPIGludGVyZmFjZS4gSSB3b25kZXIgaWYgaXQmIzM5O3MgcG9zc2libGUgdG8gZnV6eiBTRElPIGRldmljZXMgdXNpbmcgZXhpc3RpbmcgdG9vbHM/IFRoZSBpc3N1ZSwgYXMgSSByZWNhbGwsIGlzIHRoYXQgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgYW4gU0RJTyBlbXVsYXRvciBsaWtlIGl0IGRvZXMgZm9yIFVTQiwgd2hpY2ggdXNlcyBgZHVtbXlfaGNkYC4KCldoYXQgYWJvdXQgUENJZSwgdGhlbj8gVW5mb3J0dW5hdGVseSwgU3l6a2FsbGVyIGFsc28gZG9lc24mIzM5O3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIGRldmljZXMsIHNvIHRoYXQmIzM5O3MgYW5vdGhlciBkZWFkIGVuZC4KClJpZ2h0LCBiYWNrIHRvIHRoZSBjb3JlIGxvZ2ljLiBJZiBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBleGNsdXNpdmVseSB0aWVkIHRvIFNESU8gYW5kIFBDSWUsIHRoZW4gdGhlIGZ1bmN0aW9uIGBicmNtZl9jeXdfbWdtdF90eGAgaXMgb25seSByZWFjaGFibGUgdGhyb3VnaCBCcm9hZGNvbSBkZXZpY2VzIHVzaW5nIHRob3NlIGludGVyZmFjZXMuIEFuZCBzaW5jZSBgYnJjbWZfY3l3X21nbXRfdHhgIGlzIGFjdHVhbGx5IGxvY2F0ZWQgaW4gYGN5dy9jb3JlLmNgLCBpdCBpbXBsaWVzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgdGllZCB0byB0aGlzIHNwZWNpZmljIHZlbmRvci4KCk5vdywgYSBjcml0aWNhbCBxdWVzdGlvbjogaXMgYGJyY21mX2N5d19tZ210X3R4YCByZWFjaGFibGUgZnJvbSBzb21ldGhpbmcgbGlrZSBgbWFjODAyMTFfaHdzaW1gIG9yIGB2aGNpYD8gU2luY2UgdGhpcyBpcyBwYXJ0IG9mIHRoZSBgYnJjbWZtYWNgIGRyaXZlciwgaXQgcmVxdWlyZXMgYSBgYnJjbWZtYWNgIGRldmljZSB0byBiZSBwcmVzZW50LgoKQ2FuIHdlIHRyaWNrIGl0IGludG8gYSBgYnJjbWZtYWNgIGRldmljZSBieSB1c2luZyBVU0I/IFllcywgd2UgY2FuLCBidXQgSSByZW1lbWJlciB0aGF0IGB1c2IuY2AgZXhwbGljaXRseSBzZXRzIHRoZSBgLmRyaXZlcl9pbmZvYCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYC4KClNvLCBmb3IgVVNCIGRldmljZXMsIGBmd3ZpZGAgd2lsbCBiZSBgQlJDTUZfRldWRU5ET1JfV0NDYC4gSWYgdGhhdCYjMzk7cyB0aGUgY2FzZSwgdGhlIGBkcnZyLSZndDt2b3BzYCBpcyBgYnJjbWZfd2NjX29wc2AsIHNvIGl0IGxvb2tzIGxpa2UgSSBuZWVkIHRvIGRpZyBpbnRvIGBicmNtZl93Y2Nfb3BzYCBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3djY19vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jPTIzPXN0YXRpYyBpbnQgYnJjbWZfd2NjX2FsbG9jX2Z3ZWhfaW5mbyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmM6MzY6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMzctXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX3djY19zZXRfc2FlX3B3ZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX3djY19pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xNC1cdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MTU6XHRcdFx0XHRcdCAgIFx1MDAyNmJyY21mX3djY19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xNi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy92b3BzLmgtNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjk6I2RlZmluZSBXQ0NfVk9QU1x0KFx1MDAyNmJyY21mX3djY19vcHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC0xMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzUzMjcKCQkJCQkJCW91dHB1dDogNTUKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGFzIGlmIHRoZXkmIzM5O3JlIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyBicmNtZl93Y2Nfb3BzKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIHVuZGVyIHRoZSBob29kIG9mIHRoaXMgYGJyY21mX3djY19vcHNgIHN0cnVjdC4gSXQmIzM5O3MgYSBrZXkgY29tcG9uZW50LCBzbyBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBjb250ZW50cy4gVGhpcyBsaWtlbHkgaG9sZHMgdGhlIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucyBvciBtZXRob2RzIHJlbGF0ZWQgdG8gdGhlIHdpcmVsZXNzIGNvbmN1cnJlbnQgY29ubmVjdGlvbiAoV0NDKSBjYXBhYmlsaXRpZXMgd2l0aGluIHRoZSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuIFVuZGVyc3RhbmRpbmcgdGhlc2Ugb3BlcmF0aW9ucyBpcyBjcnVjaWFsIGZvci4uLiBbSSYjMzk7ZCBmaWxsIGluIHRoZSByZXN0IGJhc2VkIG9uIG15IHNwZWNpZmljIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvbnRleHQsIHdoZXRoZXIgaXQmIzM5O3MgZGVidWdnaW5nLCBvcHRpbWl6YXRpb24sIHNlY3VyaXR5IGFuYWx5c2lzLCBvciBwZXJmb3JtYW5jZSB0ZXN0aW5nLCBldGMuLCBidXQgdGhlIGlkZWEgaXMgdGhhdCBJJiMzOTtkIGtub3cgKndoeSogSSYjMzk7bSBsb29raW5nIGF0IHRoaXNdLiBJJiMzOTttIGV4cGVjdGluZyB0aGlzIHRvIGJlIGEgc3RydWN0dXJlIHdpdGggZnVuY3Rpb24gcG9pbnRlcnMgb3IgY2FsbGJhY2tzLCBvciBwZXJoYXBzIGRhdGEsIGFuZCBJJiMzOTttIGl0Y2hpbmcgdG8gc2VlIHdoYXQga2luZCBvZiBmdW5jdGlvbmFsaXR5IGl0IGV4cG9zZXMuIExldCYjMzk7cyBzZWUgd2hhdCBnZW1zIGFyZSBoaWRkZW4gaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAzMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDMwOlx0XG4gIDMxOlx0XHRmd2VoLVx1MDAzZW51bV9ldmVudF9jb2RlcyA9IEJSQ01GX1dDQ19FX0xBU1Q7XG4gIDMyOlx0XHRkcnZyLVx1MDAzZWZ3ZWggPSBmd2VoO1xuICAzMzpcdFx0cmV0dXJuIDA7XG4gIDM0Olx0fVxuICAzNTpcdFxuICAzNjpcdGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcyA9IHtcbiAgMzc6XHRcdC5zZXRfc2FlX3Bhc3N3b3JkID0gYnJjbWZfd2NjX3NldF9zYWVfcHdkLFxuICAzODpcdFx0LmFsbG9jX2Z3ZWhfaW5mbyA9IGJyY21mX3djY19hbGxvY19md2VoX2luZm8sXG4gIDM5Olx0fTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3OTIKCQkJCQkJCW91dHB1dDogNTkKCQkJCQkJCXRob3VnaHRzOiA5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4KCioqQW5hbHl6aW5nIHRoZSBgYnJjbWZfd2NjX29wc2AgU3RydWN0dXJlKioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGJyY21mX3djY19vcHNgLiBBbmQgaXQgc2VlbXMgbGlrZSwgKnN1cnByaXNpbmdseSosIGl0IGRvZXNuJiMzOTt0IGFjdHVhbGx5IGRlZmluZSBhIGAuZ2V0X2NmZzgwMjExX29wc2AgZmllbGQuIFRoYXQmIzM5O3MgYSBiaXQgdW5leHBlY3RlZC4gTm93LCBpZiB0aGF0IHBvaW50ZXIgaXMgYE5VTExgLCB0aGVuIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYCBiYXNpY2FsbHkgYmVjb21lcyBhIG5vLW9wLCByaWdodD8gSXQganVzdCB3b24mIzM5O3QgZG8gYW55dGhpbmcgYmVjYXVzZSB0aGVyZSYjMzk7cyBubyBmdW5jdGlvbiB0byBjYWxsLiBBbHJpZ2h0LCB0byBjb25maXJtIHRoaXMgY2hhaW4gb2YgdGhvdWdodCBJJiMzOTttIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfZnd2aWRfZ2V0X2NmZzgwMjExX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMzMwPWludCBicmNtZl9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTM3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM3MTpcdGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoZHJ2cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg9NjI9c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfYWN0aXZhdGVfZXZlbnRzKHN0cnVjdCBicmNtZl9pZiAqaWZwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NzI6c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTczLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY0NzcKCQkJCQkJCW91dHB1dDogNTMKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgaW5zdHJ1Y3Rpb25zOgoKKipBbmFseXppbmcgYGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHNgIGluIGBmd3ZpZC5oYCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgY3JhY2sgb3BlbiBgZnd2aWQuaGAgYW5kIGZvY3VzIHNwZWNpZmljYWxseSBvbiBgYnJjbWZfZnd2aWRfZ2V0X2NmZzgwMjExX29wc2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGludGVyYWN0cyB3aXRoIHRoZSBjZmc4MDIxMSB3aXJlbGVzcyBzdWJzeXN0ZW0uIEtub3dpbmcgdGhpcyBpcyBjcml0aWNhbDsgdGhpcyBsaWtlbHkgZGVmaW5lcyB0aGUgZW50cnkgcG9pbnRzIHRoYXQgYWxsb3cgdGhlIGZpcm13YXJlIHRvIGludGVyZmFjZSB3aXRoIHRoZSBrZXJuZWwmIzM5O3Mgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBhbmQgcmVndWxhdG9yeSBkb21haW5zLiBJJiMzOTttIGFscmVhZHkgYW50aWNpcGF0aW5nIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgYSBzZXQgb2Ygb3BlcmF0aW9ucyBvciBmdW5jdGlvbiBwb2ludGVycyB0aGF0IGNmZzgwMjExIGNhbiB1c2UgdG8gY29uZmlndXJlIGFuZCBjb250cm9sIHRoZSBCcm9hZGNvbSBmaXJtd2FyZSB0aHJvdWdoIHRoZSBkcml2ZXIuIFRoaXMgaXMgYSBjcnVjaWFsIGxpbmssIGFuZCBsaWtlbHkgY29udGFpbnMgdGhlIGdsdWUgdGhhdCBhbGxvd3MgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBob3cgdGhlIHN0cnVjdHVyZXMgYXJlIGRlZmluZWQsIGhvdyB0aGUgcG9pbnRlcnMgYXJlIHNldCwgYW5kIHdoYXQgc2VjdXJpdHkgY29uc2lkZXJhdGlvbnMgYXJlIGluIHBsYWNlLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBoYXJkd2FyZS1zb2Z0d2FyZSBpbnRlcmFjdGlvbiBhdCBhIGxvdyBsZXZlbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMTE6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDcwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDE1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNzA6XHR9XG4gIDcxOlx0XG4gIDcyOlx0c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbiAgNzM6XHR7XG4gIDc0Olx0XHRpZiAoIWRydnItXHUwMDNldm9wcyB8fCAhZHJ2ci1cdTAwM2V2b3BzLVx1MDAzZWdldF9jZmc4MDIxMV9vcHMpXG4gIDc1Olx0XHRcdHJldHVybjtcbiAgNzY6XHRcbiAgNzc6XHRcdGRydnItXHUwMDNldm9wcy1cdTAwM2VnZXRfY2ZnODAyMTFfb3BzKGRydnIpO1xuICA3ODpcdH1cbiAgNzk6XHRcbiAgODA6XHRzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbiAgODE6XHR7XG4gIDgyOlx0XHRpZiAoIWRydnItXHUwMDNldm9wcyB8fCAhZHJ2ci1cdTAwM2V2b3BzLVx1MDAzZXJlZ2lzdGVyX2V2ZW50X2hhbmRsZXJzKVxuICA4MzpcdFx0XHRyZXR1cm47XG4gIDg0Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MDMwCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogNjc0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVucmVhY2hhYmxlIENvZGUgUGF0aCBBbmFseXNpcyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBicmNtZl9jeXdfbWdtdF90eGAgZnVuY3Rpb24uIFRoZSBjb2RlIGxvZ2ljIHN0YXRlcyB0aGF0IGl0JiMzOTtzIG9ubHkgYWNjZXNzaWJsZSB3aGVuIGBmd3ZpZGAgaXMgc2V0IHRvIGBCUkNNRl9GV1ZFTkRPUl9DWVdgLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhpcyB2ZW5kb3IgSUQgaXMgc3BlY2lmaWNhbGx5IGFzc2lnbmVkIHRvIFBDSWUgYW5kIFNESU8gZGV2aWNlcy4gU28sIG5hdHVyYWxseSwgSSBpbW1lZGlhdGVseSB0aG91Z2h0LCAmIzM0O1dhaXQsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSYjMzk7cyBhYnNvbHV0ZWx5IG5vIHdheSBVU0IgZGV2aWNlcyBjYW4gdHJpZ2dlciB0aGlzIHBhdGguJiMzNDsKCkkgd2VudCBiYWNrIHRvIHJldmlldyBgdXNiLmNgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBicmNtZl91c2JfZGV2aWRfdGFibGVgLiBJIHNjYW5uZWQgdGhyb3VnaCBhbGwgdGhlIGVudHJpZXMsIGFuZCB3aGlsZSB0aGUgbWFqb3JpdHksIGRlZmluZWQgYnkgYEJSQ01GX1VTQl9ERVZJQ0VgLCBgTElOS1NZU19VU0JfREVWSUNFYCwgYW5kIGBDWVBSRVNTX1VTQl9ERVZJQ0VgLCBzZXQgdGhlIGAuZHJpdmVyX2luZm9gIHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLCBJIGRpZCBzZWUgYSBzcGVjaWZpYyBlbnRyeTogYHsgVVNCX0RFVklDRShCUkNNX1VTQl9WRU5ET1JfSURfTEcsIEJSQ01fVVNCXzQzMjQyX0xHX0RFVklDRV9JRCkgfWAuIEJ1dCwgY3J1Y2lhbGx5LCBpdCAqZG9lc24mIzM5O3QqIHNldCB0aGUgYC5kcml2ZXJfaW5mb2AgZmllbGQuIFRoaXMgbWVhbnMsIGJ5IGRlZmF1bHQsIGBmd3ZpZGAgaXMgMC4gQW5kIHRoZW4sIEkgaGFkIHRvIGRvdWJsZS1jaGVjayBteSB2ZW5kb3IgSUQgZW51bSwgY29uZmlybWluZyBgQlJDTUZfRldWRU5ET1JfV0NDYCBpcyBpbmRlZWQgMCwgd2hpY2ggZnVydGhlciByZWluZm9yY2VkIG15IGFzc3VtcHRpb24uCgpTbywgZm9yIGFsbCB0aGUgVVNCIGRldmljZXMgbGlzdGVkLCBgZnd2aWRgIGVuZHMgdXAgYXMgYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFRoYXQgc2V0dGxlcyBpdDogYGJyY21mX2N5d19tZ210X3R4YCBpcyAqbmV2ZXIqIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgVVNCIHBhdGguIEl0JiMzOTtzIHN0cmljdGx5IFBDSWUgYW5kIFNESU8uCgpTaW5jZSBzeXprYWxsZXIgZG9lc24mIzM5O3Qgc2VlbSB0byBlbXVsYXRlIFBDSWUgb3IgU0RJTyBCcm9hZGNvbSBkZXZpY2VzLCBpdCBtZWFucyB0aGUgc3RhbmRhcmQgUUVNVSBzZXR1cCBJJiMzOTttIHVzaW5nIGNhbiYjMzk7dCB0cmlnZ2VyIHRoaXMgY29kZS4gQnV0LCBiZWZvcmUgSSBtb3ZlIG9uLCBJIGhhdmUgdG8gYXNrIG15c2VsZiwgaXMgdGhlcmUgKmFueSogb3RoZXIgcG9zc2libGUgZXhlY3V0aW9uIHBhdGg/IElzIHRoZXJlIGEgZGlyZWN0IGNhbGwgdG8gYGJyY21mX2N5d19tZ210X3R4YCBmcm9tIHNvbWV3aGVyZSBlbHNlIHRoYXQgSSBzaG91bGQgYmUgYXdhcmUgb2Y/CgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX2N5d19tZ210X3R4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjI2OnN0YXRpYyBhdG9taWNfdCBicmNtZl9jeXdfbWdtdF90eF9pZCA9IEFUT01JQ19JTklUKDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MTAzPXN0YXRpY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MTA0OmludCBicmNtZl9jeXdfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTA1LVx0XHQgICAgICBzdHJ1Y3QgY2ZnODAyMTFfbWdtdF90eF9wYXJhbXMgKnBhcmFtcywgdTY0ICpjb29raWUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MTI4Olx0KmNvb2tpZSA9IGF0b21pY19pbmNfcmV0dXJuKFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTEyOS1cdHZpZiA9IGNvbnRhaW5lcl9vZih3ZGV2LCBzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfdmlmLCB3ZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0yMzQ9c3RhdGljIHZvaWQgYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyMzY6XHRkcnZyLVx1MDAzZW9wcy1cdTAwM2VtZ210X3R4ID0gYnJjbWZfY3l3X21nbXRfdHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yMzctXHRkcnZyLVx1MDAzZW9wcy1cdTAwM2VleHRlcm5hbF9hdXRoID0gYnJjbWZfY3l3X2V4dGVybmFsX2F1dGg7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4ODcxCgkJCQkJCQlvdXRwdXQ6IDE3NAoJCQkJCQkJdGhvdWdodHM6IDM4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBSZWFjaGFiaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBjb2RlIGluIHF1ZXN0aW9uLCBgYnJjbWZfY3l3X2dldF9jZmc4MDIxMV9vcHNgLCBpcyBvbmx5IGV2ZXIgdG91Y2hlZCBpZiBgZnd2aWRgIGlzIHNldCB0byBgQlJDTUZfRldWRU5ET1JfQ1lXYC4gQW5kIHRoYXQgYGZ3dmlkYCB2YWx1ZSwgSSYjMzk7bSBwcmV0dHkgc3VyZSwgaXMgZXhjbHVzaXZlbHkgdGllZCB0byBCcm9hZGNvbSYjMzk7cyBQQ0llIGFuZCBTRElPIGRldmljZXMuIFNpbmNlIEkga25vdyBzeXprYWxsZXIgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGVzZSB0eXBlcyBvZiBCcm9hZGNvbSBkZXZpY2VzLCB0aGlzIGNvZGUgcGF0aCBzaG91bGQgYmUgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgUUVNVS4gTGV0IG1lIGp1c3QgY29uZmlybSB0aGF0IHF1aWNrbHkg4oCTIG5vLCBzeXprYWxsZXIgZG9lc27igJl0IGVtdWxhdGUgU0RJTy4gT2theSwgYW5kIEnigJltIHByZXR0eSBjZXJ0YWluIGl0IG9ubHkgZW11bGF0ZXMgZ2VuZXJpYyBQQ0kgZGV2aWNlcyBvciB1c2VzIGR1bW15IGRldmljZXMuIEl0IGRvZXNuJiMzOTt0IGhhdmUgYSBCcm9hZGNvbSBXaS1GaSBQQ0llIGVtdWxhdG9yLgoKVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBjb2RlIHRoYXQmIzM5O3MgZnVuZGFtZW50YWxseSBpbmFjY2Vzc2libGUgd2l0aGluIHRoZSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgd2UmIzM5O3JlIHdvcmtpbmcgaW4sIHdoZXRoZXIgaXQmIzM5O3MgR0NFIG9yIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwLgoKTm93LCBsZXQgbWUgZ28gYmFjayBhbmQgcmV2aWV3IHRoZSBpbnN0cnVjdGlvbnMgZm9yIGRldGVybWluaW5nICYjMzQ7V29ydGhGdXp6aW5nJiMzNDsuIFJpZ2h0LCBpdCBzYXlzOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC4uLiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4uLiAtIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKClRoYXQmIzM5O3MgYSBwZXJmZWN0IG1hdGNoLiBUaGlzIGNvZGUgaXMgaW4gYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyLCBgYnJjbWZtYWNgLCBmb3IgYSBzcGVjaWZpYyB2ZW5kb3IgSUQgKENZVyksIHdoaWNoIGlzICpvbmx5KiBzdXBwb3J0ZWQgb3ZlciBQQ0llIGFuZCBTRElPLCBuZWl0aGVyIG9mIHdoaWNoIGFyZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGZvciB0aGlzIGRldmljZS4KClNvLCBnaXZlbiB0aGlzIGNvbXBsZXRlIGxhY2sgb2YgcmVhY2hhYmlsaXR5LCBJJiMzOTttIGNvbmZpZGVudCBpbiByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDExOjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGJyY21mX2N5d19tZ210X3R4YCBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyB3aXJlbGVzcyBkcml2ZXIgKGBicmNtZm1hY2ApLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcmVnaXN0ZXJlZCBhcyBhIGNmZzgwMjExIG9wZXJhdGlvbiBmb3IgZGV2aWNlcyB3aXRoIHRoZSBgQlJDTUZfRldWRU5ET1JfQ1lXYCBmaXJtd2FyZSB2ZW5kb3IgSUQuIEEgcmV2aWV3IG9mIHRoZSBkcml2ZXImIzM5O3MgYnVzIGltcGxlbWVudGF0aW9ucyBzaG93cyB0aGF0IGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGlzIG9ubHkgYXNzaWduZWQgdG8gc3BlY2lmaWMgUENJZSBhbmQgU0RJTyBkZXZpY2VzLCB3aGlsZSBhbGwgVVNCIGRldmljZXMgZGVmYXVsdCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYC4gU2luY2Ugc3RhbmRhcmQgUUVNVS9zeXprYWxsZXIgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIEJyb2FkY29tIFBDSWUgb3IgU0RJTyB3aXJlbGVzcyBoYXJkd2FyZSwgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlciYjMzk7cyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjoxOC43NDE5MDY3MzRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjA2MzQ0MzQ5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGJyY21mX2N5d19tZ210X3R4YCBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyB3aXJlbGVzcyBkcml2ZXIgKGBicmNtZm1hY2ApLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcmVnaXN0ZXJlZCBhcyBhIGNmZzgwMjExIG9wZXJhdGlvbiBmb3IgZGV2aWNlcyB3aXRoIHRoZSBgQlJDTUZfRldWRU5ET1JfQ1lXYCBmaXJtd2FyZSB2ZW5kb3IgSUQuIEEgcmV2aWV3IG9mIHRoZSBkcml2ZXIncyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjE4Ljc0MTkxNDYyNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUxMzc1ODk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMmU3MDIwMjE0MjYzZTU0ZGE0OTlmYjc3MmY0YjAwNTU2M2U1ZmQxM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCAyNiAxMTozNjoxNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXFxuaW5kZXggY2UwOWQ0NGZhNzNjZjguLjUzMGYwMTI2ZTNhNzcxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNcXG5AQCAtMjMsNiArMjMsOCBAQFxcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9EV0VMTF9USU1FXFx0NDAwMFxcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9XQUlUX1RJTUVcXHQoTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUUgKyAxMDApXFxuIFxcbitzdGF0aWMgYXRvbWljX3QgYnJjbWZfY3l3X21nbXRfdHhfaWQgPSBBVE9NSUNfSU5JVCgwKTtcXG4rXFxuIHN0YXRpYyBpbnQgYnJjbWZfY3l3X3NldF9zYWVfcHdkKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbiBcXHRcXHRcXHRcXHQgc3RydWN0IGNmZzgwMjExX2NyeXB0b19zZXR0aW5ncyAqY3J5cHRvKVxcbiB7XFxuQEAgLTEyMyw3ICsxMjUsNyBAQCBpbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4gXFx0aWYgKCFpZWVlODAyMTFfaXNfYXV0aChtZ210LVxcdTAwM2VmcmFtZV9jb250cm9sKSlcXG4gXFx0XFx0cmV0dXJuIGJyY21mX2NmZzgwMjExX21nbXRfdHgod2lwaHksIHdkZXYsIHBhcmFtcywgY29va2llKTtcXG4gXFxuLVxcdCpjb29raWUgPSAwO1xcbitcXHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcXG4gXFx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xcbiBcXG4gXFx0cmVpbml0X2NvbXBsZXRpb24oXFx1MDAyNnZpZi1cXHUwMDNlbWdtdF90eCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjE5LjM5NjA4NjY3N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjkxNDA5MjQ4NjQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlcidzIGJ1cyBpbXBsZW1lbnRhdGlvbnMgc2hvd3MgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBvbmx5IGFzc2lnbmVkIHRvIHNwZWNpZmljIFBDSWUgYW5kIFNESU8gZGV2aWNlcywgd2hpbGUgYWxsIFVTQiBkZXZpY2VzIGRlZmF1bHQgdG8gYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFNpbmNlIHN0YW5kYXJkIFFFTVUvc3l6a2FsbGVyIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIG9yIFNESU8gd2lyZWxlc3MgaGFyZHdhcmUsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMmU3MDIwMjE0MjYzZTU0ZGE0OTlmYjc3MmY0YjAwNTU2M2U1ZmQxM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDI2IDExOjM2OjE2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuY1xuaW5kZXggY2UwOWQ0NGZhNzNjZjguLjUzMGYwMTI2ZTNhNzcxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jXG5AQCAtMjMsNiArMjMsOCBAQFxuICNkZWZpbmUgTUdNVF9BVVRIX0ZSQU1FX0RXRUxMX1RJTUVcdDQwMDBcbiAjZGVmaW5lIE1HTVRfQVVUSF9GUkFNRV9XQUlUX1RJTUVcdChNR01UX0FVVEhfRlJBTUVfRFdFTExfVElNRSArIDEwMClcbiBcbitzdGF0aWMgYXRvbWljX3QgYnJjbWZfY3l3X21nbXRfdHhfaWQgPSBBVE9NSUNfSU5JVCgwKTtcbitcbiBzdGF0aWMgaW50IGJyY21mX2N5d19zZXRfc2FlX3B3ZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdFx0XHRcdCBzdHJ1Y3QgY2ZnODAyMTFfY3J5cHRvX3NldHRpbmdzICpjcnlwdG8pXG4ge1xuQEAgLTEyMyw3ICsxMjUsNyBAQCBpbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbiBcdGlmICghaWVlZTgwMjExX2lzX2F1dGgobWdtdC1cdTAwM2VmcmFtZV9jb250cm9sKSlcbiBcdFx0cmV0dXJuIGJyY21mX2NmZzgwMjExX21nbXRfdHgod2lwaHksIHdkZXYsIHBhcmFtcywgY29va2llKTtcbiBcbi1cdCpjb29raWUgPSAwO1xuK1x0KmNvb2tpZSA9IGF0b21pY19pbmNfcmV0dXJuKFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcbiBcdHZpZiA9IGNvbnRhaW5lcl9vZih3ZGV2LCBzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfdmlmLCB3ZGV2KTtcbiBcbiBcdHJlaW5pdF9jb21wbGV0aW9uKFx1MDAyNnZpZi1cdTAwM2VtZ210X3R4KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjE5LjM5NjA4ODMwN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NjQ3MjIyNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRHJpdmVyIFBhdGNoIGZvciBWaXJ0dWFsaXplZCBUZXN0aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jYC4gSXQgc2VlbXMgdG8gYmUgY2hhbmdpbmcgaG93IGBicmNtZl9jeXdfbWdtdF90eGAgYXNzaWducyBhIGBjb29raWVgLiBJbnN0ZWFkIG9mIHRoZSBoYXJkY29kZWQgMCwgdGhleSdyZSB1c2luZyBhbiBhdG9taWMgY291bnRlciwgYGJyY21mX2N5d19tZ210X3R4X2lkYC4gVGhhdCdzIGEgc2Vuc2libGUgaW1wcm92ZW1lbnQgZm9yIGF2b2lkaW5nIHBvdGVudGlhbCBjb2xsaXNpb25zLCBidXQgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZWFzaWx5IGNhbiBJIHRlc3QgdGhpcyBwYXRjaCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50P1xuXG5JdCdzIHRoZSBgYnJjbWZtYWNgIEJyb2FkY29tIHdpcmVsZXNzIGRyaXZlciwgd2hpY2ggbWVhbnMgSSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyBoYXJkd2FyZSBpcyB0eXBpY2FsbHkgZW11bGF0ZWQuIFN0YW5kYXJkIFFFTVUgZG9lc24ndCB1c3VhbGx5IGVtdWxhdGUgcGh5c2ljYWwgV2ktRmkgaGFyZHdhcmUgZGlyZWN0bHkuICpicmNtZm1hYyouLi4gaXMgaXQgZXZlbiBlbXVsYXRlZD8gTm8sIGl0J3Mgbm90IGxpa2UgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggSSBrbm93IGlzLiBUaGlzIGBicmNtZm1hY2AgZHJpdmVyIGlzIGEgRnVsbE1BQyBpbXBsZW1lbnRhdGlvbiBmb3IgQnJvYWRjb20gY2hpcHMsIHdoaWNoIG1lYW5zIFNESU8sIFBDSWUsIGFuZCBVU0IuXG5cblNvLCBob3cgZG8gSSBnZXQgdGhpcyBydW5uaW5nIGluIGEgdmlydHVhbCBtYWNoaW5lPyBDYW4gSSBlbXVsYXRlIFVTQiBCcm9hZGNvbSBkZXZpY2VzIHVzaW5nIFVTQiBnYWRnZXQgdGVjaG5pcXVlcz8gUG9zc2libHksIGJ1dCBTeXprYWxsZXIgdXN1YWxseSBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYCBvciBgdmhjaWAgZm9yIFVTQiB0ZXN0aW5nLiBCdXQgd2hhdCBhYm91dCBmdXp6aW5nPyBTeXprYWxsZXIgc3VwcG9ydHMgVVNCIGZ1enppbmcgdGhyb3VnaCBgZHVtbXlfaGNkYCwgc28gSSBuZWVkIHRvIHNlZSBpZiBgYnJjbWZtYWNgIGFjdHVhbGx5ICpoYXMqIFVTQiBzdXBwb3J0LiBUaGF0J3MgdGhlIG5leHQgY3JpdGljYWwgc3RlcC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhpcyBkcml2ZXIgY2FuIGJlIHRhcmdldGVkIHZpYSBVU0IsIGFuZCBpZiBzbywgaG93IGZlYXNpYmxlIGl0IGlzIHRvIHNldCB1cCBhIHRlc3QgZW52aXJvbm1lbnQgdGhhdCBleHBsb2l0cyB0aGUgYGR1bW15X2hjZGAgc3VwcG9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjMyMSwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjI1LjA2MDgxNDIwMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NTQ5MjQ4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jeXdfbWdtdF90eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjI2OnN0YXRpYyBhdG9taWNfdCBicmNtZl9jeXdfbWdtdF90eF9pZCA9IEFUT01JQ19JTklUKDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTI3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MTAzPXN0YXRpY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjEwNDppbnQgYnJjbWZfY3l3X21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMDUtXFx0XFx0ICAgICAgc3RydWN0IGNmZzgwMjExX21nbXRfdHhfcGFyYW1zICpwYXJhbXMsIHU2NCAqY29va2llKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjEyODpcXHQqY29va2llID0gYXRvbWljX2luY19yZXR1cm4oXFx1MDAyNmJyY21mX2N5d19tZ210X3R4X2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0xMjktXFx0dmlmID0gY29udGFpbmVyX29mKHdkZXYsIHN0cnVjdCBicmNtZl9jZmc4MDIxMV92aWYsIHdkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MjM0PXN0YXRpYyB2b2lkIGJyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjM1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyMzY6XFx0ZHJ2ci1cXHUwMDNlb3BzLVxcdTAwM2VtZ210X3R4ID0gYnJjbWZfY3l3X21nbXRfdHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjM3LVxcdGRydnItXFx1MDAzZW9wcy1cXHUwMDNlZXh0ZXJuYWxfYXV0aCA9IGJyY21mX2N5d19leHRlcm5hbF9hdXRoO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjoyNS4xNTYzMTY2OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NDEyMTUwMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIGJyY21mbWFjIFVTQiBDYXBhYmlsaXRpZXMqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcy4gVGhlIHRhc2sgYXQgaGFuZCBpcyB0byBhc2NlcnRhaW4gaWYgdGhlIGBicmNtZm1hY2AgZHJpdmVyIGhhcyBhbnkgYnVpbHQtaW4gVVNCIHN1cHBvcnQuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAuIEkgbmVlZCB0byBrbm93IGlmIHRoaXMgaXMgZXZlbiBhIHZpYWJsZSBhdmVudWUgdG8gZXhwbG9yZSBiZWZvcmUgSSBzcGVuZCB0b28gbXVjaCB0aW1lIGRpZ2dpbmcgaW50byBvdGhlciBwb3NzaWJpbGl0aWVzIG9yIGFsdGVybmF0aXZlIGRyaXZlciBhcHByb2FjaGVzLiBVbmRlcnN0YW5kaW5nIHRoZSBkcml2ZXIncyB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZSBhbmQgaGFyZHdhcmUgc3VwcG9ydCwgZXNwZWNpYWxseSBjb25jZXJuaW5nIGRpZmZlcmVudCBpbnRlcmZhY2UgdHlwZXMsIHdpbGwgZGljdGF0ZSBteSBuZXh0IGFjdGlvbnMuIEtub3dpbmcgdGhpcyB3aWxsIHN0cmVhbWxpbmUgbXkgYXBwcm9hY2ggc2lnbmlmaWNhbnRseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY5MSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjI4LjA5NzUzMzg0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDk2MDI1MiwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3VzYl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6MzY6MjguMjAyNTAyNjMyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk2NDI2OTkxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkRlYnVnZ2luZyB0aGUgYnJjbWZtYWMgTW9kdWxlIEluaXRpYWxpemF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGJyY21mbWFjYCBzaXR1YXRpb24uIE15IGZpcnN0IHN0ZXAgaXMgdG8gcXVpY2tseSB6ZXJvIGluIG9uIGhvdyB0aGlzIG1vZHVsZSBpcyBiZWluZyBpbml0aWFsaXplZCBhbmQgaG93IGl0IGludGVncmF0ZXMgd2l0aCB0aGUgVVNCIHN1YnN5c3RlbSwgaWYgYXQgYWxsLiBNeSBpbml0aWFsIGh1bmNoIGlzIHRvIGxvb2sgZm9yIHRoZSBrZXkgcmVnaXN0cmF0aW9uIHBvaW50cy4gU28sIEkgbmVlZCB0byBjaGVjayBmb3IgdGhlIHRlbGx0YWxlIHNpZ25zOiBJJ20gZ29pbmcgdG8gc2NhbiB0aGUgY29kZSBmb3IgY2FsbHMgdG8gYHVzYl9yZWdpc3RlcmAgLSB0aGF0IHdpbGwgYmUgY3JpdGljYWwgaWYgaXQncyBvcGVyYXRpbmcgb24gYSBVU0IgaW50ZXJmYWNlIC0gb3IsIGlmIGl0J3MgbW9yZSBzZWxmIGNvbnRhaW5lZCwgdGhlIG1vcmUgZ2VuZXJpYyBgbW9kdWxlX2luaXRgLiBUaGVzZSBhcmUgdGhlIGJyZWFkY3J1bWJzIEknbSBsb29raW5nIGZvciB0byB1bmRlcnN0YW5kIHdoZXJlIHRvIHN0YXJ0IHRyYWNpbmcgdGhlIGV4ZWN1dGlvbiBhbmQgd2hhdCB0aGUgY29yZSBlbnRyeSBwb2ludHMgYXJlLiBUaGlzIHNob3VsZCBnaXZlIG1lIHRoZSBlbnRyeSBwb2ludCBhbmQgdGhlIFVTQiBpbnRlcmZhY2UuIEZyb20gdGhlcmUgSSBjYW4gdW5kZXJzdGFuZCB0aGUgdW5kZXJseWluZyBpc3N1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg5MSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjMxLjE2Njc3NjEzNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5OTk4OTkzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1c2JfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzI3PXZvaWQgYnJjbWZfdXNiX2V4aXQodm9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjMyODppbnQgYnJjbWZfdXNiX3JlZ2lzdGVyKHZvaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zMjktI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzMwPXN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl91c2JfZXhpdCh2b2lkKSB7IH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MzMxOnN0YXRpYyBpbmxpbmUgaW50IGJyY21mX3VzYl9yZWdpc3Rlcih2b2lkKSB7IHJldHVybiAwOyB9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTMzMi0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM9MTU0Nj1pbnQgX19pbml0IGJyY21mX2NvcmVfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTU1NDpcXHRlcnIgPSBicmNtZl91c2JfcmVnaXN0ZXIoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTE1NTUtXFx0aWYgKGVycilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjE1NTY6XFx0XFx0Z290byBlcnJvcl91c2JfcmVnaXN0ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTU3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNTY0LVxcdGJyY21mX3VzYl9leGl0KCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxNTY1OmVycm9yX3VzYl9yZWdpc3RlcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTE1NjYtXFx0YnJjbWZfc2Rpb19leGl0KCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTU4Nj12b2lkIGJyY21mX3VzYl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTYwMDppbnQgYnJjbWZfdXNiX3JlZ2lzdGVyKHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNjAyLVxcdGJyY21mX2RiZyhVU0IsIFxcXCJFbnRlclxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE2MDM6XFx0cmV0dXJuIHVzYl9yZWdpc3RlcihcXHUwMDI2YnJjbWZfdXNiZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE2MDQtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjozMS4yNjY3NzMzOTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODkzODg1NDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGBicmNtZm1hY2AgRHJpdmVyIHZpYSBVU0IqKlxuXG5Pa2F5LCBzbyB0aGUgYGJyY21mbWFjYCBkcml2ZXIsIGh1aD8gSSBqdXN0IHJlYWxpemVkIGl0IGhhcyBVU0Igc3VwcG9ydCDigJMgdGhhdCdzIHBvdGVudGlhbGx5IGdyZWF0IG5ld3MgYmVjYXVzZSBpdCBtZWFucyB3ZSBjYW4gcHJvYmFibHkgZ2V0IGF0IGl0IHdpdGggYSBgZHVtbXlfaGNkYC4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIHdlIHJlYWNoIGBicmNtZl9jeXdfbWdtdF90eGAgdmlhIHRoaXMgVVNCIGludGVyZmFjZT8gVGhhdCBmdW5jdGlvbiBpbiBwYXJ0aWN1bGFyLCBiZWNhdXNlIEkga25vdyB0aGF0J3Mgd2hlcmUgdGhlIHBhdGNoIGlzLlxuXG5SaWdodCwgc28gdGhlIHBhdGNoIGlzIG1vZGlmeWluZyBgYnJjbWZfY3l3X21nbXRfdHhgLCBhbmQgdGhhdCdzIHNpdHRpbmcgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jYC4gRXhjZWxsZW50LiBOb3cgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGBicmNtZl9jeXdfbWdtdF90eGAgaXMgYWN0dWFsbHkgdXNlZC4gTmVlZCB0byB0cmFjZSBpdHMgY2FsbCBzaXRlcyB0byBmaWd1cmUgb3V0IGEgcGF0aCB0byB0cmlnZ2VyaW5nIGl0LiBMZXQncyBkaWcgaW50byB0aGF0IGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzOCwiT3V0cHV0VG9rZW5zIjo1OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjozNS4xNjA2NjI3MjNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1NDM3ODk5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTIwMD1icmNtZl9jeXdfZXh0ZXJuYWxfYXV0aChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMjMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjIzNDpzdGF0aWMgdm9pZCBicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wcyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYz0zNjg9Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzcxLVxcdC5hY3RpdmF0ZV9ldmVudHMgPSBicmNtZl9jeXdfYWN0aXZhdGVfZXZlbnRzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM3MjpcXHQuZ2V0X2NmZzgwMjExX29wcyA9IGJyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM3My1cXHQucmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMgPSBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjM1LjUxNTA0Njc2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5ODA4OTk5NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGNvZGUuXG5cbioqSW52ZXN0aWdhdGluZyBicmNtZl9jeXdfb3BzKipcblxuUmlnaHQsIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBzY29wZSBvZiBgYnJjbWZfY3l3X29wc2AuIE15IGZpcnN0IHN0ZXAsIG5hdHVyYWxseSwgaXMgdG8gdHJhY2UgaXRzIHVzYWdlLiBJJ2xsIG5lZWQgdG8gc2VlIHByZWNpc2VseSB3aGVyZSB0aGlzIHN0cnVjdHVyZSBpcyBiZWluZyByZWZlcmVuY2VkIHdpdGhpbiB0aGUgY29kZWJhc2UuIFVuZGVyc3RhbmRpbmcgaXRzIGNvbm5lY3Rpb25zIGlzIGNydWNpYWwgdG8gZ3Jhc3BpbmcgaXRzIGZ1bmN0aW9uIGFuZCBpbXBvcnRhbmNlIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEknbGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGUgc3Vycm91bmRpbmcgY29kZSB0byBkZXRlcm1pbmUgaG93IHRoaXMgb2JqZWN0IGlzIGJlaW5nIGVtcGxveWVkLiBLbm93aW5nIHRoZSBjb250ZXh0cyB3aWxsIHBhaW50IGEgYmV0dGVyIHBpY3R1cmUsIGVzcGVjaWFsbHkgaW4gdW5kZXJzdGFuZGluZyBhbnkgZGVwZW5kZW5jaWVzIG9yIGltcGxpY2F0aW9ucyBvZiBpdHMgY2FsbHMgYW5kIHVzYWdlLiBJJ20gZ29pbmcgdG8gc3RhcnQgd2l0aCBhIHN0cmFpZ2h0Zm9yd2FyZCBzZWFyY2ggYW5kIGJ1aWxkIGZyb20gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NTksIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjozOC40OTU5NDg5NDFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExOTQzNDE1MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9jeXdfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM9MzU2PXN0YXRpYyB2b2lkIGJyY21mX2N5d19yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjM2ODpjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX2N5d19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMzY5LVxcdC5zZXRfc2FlX3Bhc3N3b3JkID0gYnJjbWZfY3l3X3NldF9zYWVfcHdkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNC1cXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNTpcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaDo5OiNkZWZpbmUgQ1lXX1ZPUFNcXHQoXFx1MDAyNmJyY21mX2N5d19vcHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy92b3BzLmgtMTAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjM4LjYxNTM4OTc4MloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODUzMjUxMTAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgSSBkZWx2ZSBpbnRvIHRoaXMgY29kZTpcblxuKipBbmFseXppbmcgdGhlIEJSQ01GIEZpcm13YXJlIFZlbmRvciBSZWdpc3RyYXRpb24qKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBicmNtZl9jeXdfb3BzYCBpcyByZWdpc3RlcmVkIGFzIHRoZSB2ZW5kb3Igb3BlcmF0aW9ucyBzdHJ1Y3R1cmUgZm9yIGBCUkNNRl9GV1ZFTkRPUl9DWVdgLiBUaGF0J3MgdGhlIGNvcmUgb2YgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGZpcm13YXJlLCB0eWluZyB0aGUgb3BlcmF0aW9ucyB0byBhIHNwZWNpZmljIHZlbmRvciBJRC4gTm93LCB0aGUgcXVlc3Rpb24gdGhhdCBwb3BzIGludG8gbXkgaGVhZCwgZ2l2ZW4gbXkgcGFzdCBleHBlcmllbmNlLCBpcywgZG9lcyBgQlJDTUZfRldWRU5ET1JfQ1lXYCBjb3ZlciB0aGUgVVNCIHNpZGUgb2YgdGhpbmdzPyBJcyB0aGlzIHdoZXJlIFVTQiBkZXZpY2VzIGFyZSBoYW5kbGVkIGFzIHdlbGw/IFRpbWUgdG8gY29uZmlybS4gSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGBicmNtZl91c2JkcnZyYCBtb2R1bGUgb3IsIG1vcmUgc3BlY2lmaWNhbGx5LCB0aGUgYGJyY21mX3VzYl9wcm9iZWAgZnVuY3Rpb24uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2sgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSB2ZW5kb3IgYXNzb2NpYXRpb24gYXBwbGllcyBjb25zaXN0ZW50bHkgYWNyb3NzIHRoZSBkaWZmZXJlbnQgdW5kZXJseWluZyBoYXJkd2FyZSBpbnRlcmZhY2VzIHN1cHBvcnRlZCBieSB0aGUgYnJvYWRjb20gZHJpdmVyLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgYENZV2AgdmVuZG9yIElEIGFwcGxpZXMsIHdoZXRoZXIgaXQgaXMgUENJLCBTRElPIG9yIFVTQi4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhlIGludGVyYWN0aW9ucyBpbiBlYWNoIG9mIHRob3NlIHBhdGhzLCB0aGUgcHJvYmUgYW5kIHRoZSBmaXJtd2FyZSBsb2FkaW5nLCB0byBlbnN1cmUgZXZlcnl0aGluZyBpcyBjb25zaXN0ZW50IGFuZCBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY2NTQsIk91dHB1dFRva2VucyI6NTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo0Mi40Njg2NDQwNjRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODEyMjAzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJCUkNNRl9GV1ZFTkRPUl9DWVdcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg9MzQ9ZW51bSBicmNtZl9md3ZlbmRvciB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTM1LVxcdEJSQ01GX0ZXVkVORE9SX1dDQyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MzY6XFx0QlJDTUZfRldWRU5ET1JfQ1lXLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zNy1cXHRCUkNNRl9GV1ZFTkRPUl9CQ0EsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0xOTU3PXN0YXRpYyBzMzIgYnJjbWZfc2V0X3dwYV92ZXJzaW9uKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cXHR9IGVsc2UgaWYgKHNtZS1cXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjE5NzA6XFx0XFx0aWYgKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cXHRcXHQgICAgc21lLVxcdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0MTY9c3RhdGljIGNvbnN0IHN0cnVjdCBicmNtZl9wY2llX2RydmRhdGEgZHJ2ZGF0YVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxNy1cXHRbQlJDTUZfRFJWREFUQV9DWVddID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjQxODpcXHRcXHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfQ1lXLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQxOS1cXHRcXHQuZndfc2VlZCA9IGZhbHNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzNS1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1MzY6XFx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9DWVc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM3LVxcdGRlZmF1bHQ6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjQyLjYwNjc3MTA0MVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzM4NTM1ODY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgdGFraW5nIG9uIHRoZSBwZXJzb25hIHlvdSd2ZSBkZXNjcmliZWQ6XG5cbioqSW52ZXN0aWdhdGluZyBGaXJtd2FyZSBWZW5kb3IgVXNhZ2UgQWNyb3NzIERyaXZlciBNb2R1bGVzKipcblxuUmlnaHQsIHNvIEkgc2VlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGJlaW5nIHV0aWxpemVkIHdpdGhpbiB0aGUgYHBjaWUuY2AgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGRvZXMgdGhpcyBzcGVjaWZpYyB2ZW5kb3IgSUQgYWxzbyBleHRlbmQgaXRzIHByZXNlbmNlIHRvIHRoZSBgdXNiLmNgIGFuZCBgc2Rpby5jYCBtb2R1bGVzIGFzIHdlbGw/IEl0J3MgYSBrZXkgcXVlc3Rpb24gYmVjYXVzZSBjb25zaXN0ZW5jeSBpbiBob3cgd2UgaGFuZGxlIGZpcm13YXJlLXJlbGF0ZWQgdmVuZG9yIGlkZW50aWZpZXJzIGFjcm9zcyB0aGUgYm9hcmQgbWFrZXMgZm9yIGEgY2xlYW5lciwgbW9yZSBtYWludGFpbmFibGUgY29kZSBiYXNlLlxuXG5UaGVyZWZvcmUsIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgY2hlY2sgYm90aCBgdXNiLmNgIGFuZCBgc2Rpby5jYCBmb3IgYW55IGFwcGVhcmFuY2VzIG9mIGVpdGhlciB0aGUgYGZ3dmlkYCBvciBgdmVuZG9yYCBzeW1ib2xzLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNvbXByZWhlbnNpdmUgcGljdHVyZSBvZiBob3cgdGhpcyB2ZW5kb3IgaW5mb3JtYXRpb24gaXMgdXNlZCwgYW5kIG1vcmUgaW1wb3J0YW50bHksIGlmIHRoZXJlIGFyZSBhbnkgZGlzY3JlcGFuY2llcyBpbiBpdHMgaW1wbGVtZW50YXRpb24gdGhhdCBuZWVkIHRvIGJlIGFkZHJlc3NlZC4gQSBzeXN0ZW1hdGljIHN3ZWVwIGlzIHRoZSBvbmx5IHdheSB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTg3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6MzY6NDUuOTQ1MzE3MDA2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NDA4NjY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmd3ZpZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9NYWtlZmlsZT0xMz1icmNtZm1hYy1vYmpzICs9IFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9NYWtlZmlsZS0yMi1cXHRcXHRmaXJtd2FyZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvTWFrZWZpbGU6MjM6XFx0XFx0Znd2aWQubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL01ha2VmaWxlLTI0LVxcdFxcdGZlYXR1cmUubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYy04LSNpbmNsdWRlIFxcdTAwM2NidXMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYzo5OiNpbmNsdWRlIFxcdTAwM2Nmd3ZpZC5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTEwLSNpbmNsdWRlIFxcdTAwM2NmZWF0dXJlLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYz0yMj1zdGF0aWMgaW50IGJyY21mX2JjYV9hbGxvY19md2VoX2luZm8oc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvY29yZS5jOjM1OmNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfYmNhX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL2NvcmUuYy0zNi1cXHQuZmVhdF9hdHRhY2ggPSBicmNtZl9iY2FfZmVhdF9hdHRhY2gsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTctI2luY2x1ZGUgXFx1MDAzY2NvcmUuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjg6I2luY2x1ZGUgXFx1MDAzY2Z3dmlkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy05LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9iY2FfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM6MTQ6XFx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9CQ0EsIFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMTUtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmJyY21mX2JjYV9vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfYmNhX2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjIwOlxcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0JDQSwgVEhJU19NT0RVTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmMtMjEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmgtNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL3ZvcHMuaDo4OmV4dGVybiBjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX2JjYV9vcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS92b3BzLmgtOS0jZGVmaW5lIEJDQV9WT1BTXFx0KFxcdTAwMjZicmNtZl9iY2Ffb3BzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jPTEwNDA9c3RhdGljIGludCBicmNtZl9vcHNfc2Rpb19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjbXNkaC5jLTEwODYtXFx0YnVzX2lmLVxcdTAwM2Vwcm90b190eXBlID0gQlJDTUZfUFJPVE9fQkNEQztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM6MTA4NzpcXHRidXNfaWYtXFx1MDAzZWZ3dmlkID0gaWQtXFx1MDAzZWRyaXZlcl9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy0xMDg4LVxcdGRldl9zZXRfZHJ2ZGF0YShcXHUwMDI2ZnVuYy1cXHUwMDNlZGV2LCBidXNfaWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTE0MT1zdHJ1Y3QgYnJjbWZfYnVzX3N0YXRzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0xNTctICogQGNoaXByZXY6IHJldmlzaW9uIG9mIHRoZSBkb25nbGUgY2hpcC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6MTU4OiAqIEBmd3ZpZDogZmlybXdhcmUgdmVuZG9yLXN1cHBvcnQgaWRlbnRpZmllciBvZiB0aGUgZGV2aWNlLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0xNTktICogQGFsd2F5c191c2VfZndzX3F1ZXVlOiBidXMgd2FudHMgdXNlIHF1ZXVlIGFsc28gd2hlbiBmd3NpZ25hbCBpcyBpbmFjdGl2ZS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaD0xNjU9c3RydWN0IGJyY21mX2J1cyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTc4LVxcdHUzMiBjaGlwcmV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDoxNzk6XFx0ZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMTgwLVxcdGJvb2wgYWx3YXlzX3VzZV9md3NfcXVldWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0zNS0jaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM6MzY6I2luY2x1ZGUgXFxcImZ3dmlkLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0xOTU3PXN0YXRpYyBzMzIgYnJjbWZfc2V0X3dwYV92ZXJzaW9uKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cXHR9IGVsc2UgaWYgKHNtZS1cXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjE5NzA6XFx0XFx0aWYgKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cXHRcXHQgICAgc21lLVxcdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0yMzgxPWJyY21mX2NmZzgwMjExX2Nvbm5lY3Qoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy0yNTI1LVxcdFxcdFxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoyNTI2OlxcdFxcdFxcdGVyciA9IGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBcXHUwMDI2c21lLVxcdTAwM2VjcnlwdG8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTI1MjctXFx0XFx0XFx0aWYgKCFlcnIgXFx1MDAyNlxcdTAwMjYgc21lLVxcdTAwM2VjcnlwdG8ucHNrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTE0NT1icmNtZl9jZmc4MDIxMV9zdGFydF9hcChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDQtXFx0XFx0XFx0cHJvZmlsZS1cXHUwMDNldXNlX2Z3YXV0aCB8PSBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfU0FFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1MzA1OlxcdFxcdFxcdGVyciA9IGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBjcnlwdG8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTUzMDYtXFx0XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz01MzkzPXN0YXRpYyBpbnQgYnJjbWZfY2ZnODAyMTFfc3RvcF9hcChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU0MTYtXFx0XFx0XFx0aWYgKHByb2ZpbGUtXFx1MDAzZXVzZV9md2F1dGggXFx1MDAyNiBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfU0FFKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzo1NDE3OlxcdFxcdFxcdFxcdGJyY21mX2Z3dmlkX3NldF9zYWVfcGFzc3dvcmQoaWZwLCBcXHUwMDI2Y3J5cHRvKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NDE4LVxcdFxcdFxcdHByb2ZpbGUtXFx1MDAzZXVzZV9md2F1dGggPSBCSVQoQlJDTUZfUFJPRklMRV9GV0FVVEhfTk9ORSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz02ODAwPXN0YXRpYyB2b2lkIGJyY21mX3JlZ2lzdGVyX2V2ZW50X2hhbmRsZXJzKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy02ODM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjY4Mzg6XFx0YnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoY2ZnLVxcdTAwM2VwdWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTY4MzktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0yMC0jaW5jbHVkZSBcXFwiYnVzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoyMTojaW5jbHVkZSBcXFwiZnd2aWQuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTIyLSNpbmNsdWRlIFxcXCJkZWJ1Zy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMTQwPXN0YXRpYyBpbnQgYnJjbWZfcmV2aW5mb19yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTE1MC1cXHRzZXFfcHJpbnRmKHMsIFxcXCJjaGlwOiAlcyAoJXMpXFxcXG5cXFwiLCByaS1cXHUwMDNlY2hpcG5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYzoxMTUxOlxcdFxcdCAgIGJyY21mX2Z3dmlkX3ZlbmRvcl9uYW1lKGJ1c19pZi1cXHUwMDNlZHJ2cikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTE1Mi1cXHRzZXFfcHJpbnRmKHMsIFxcXCJjaGlwcGtnOiAldVxcXFxuXFxcIiwgcmktXFx1MDAzZWNoaXBwa2cpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMzMwPWludCBicmNtZl9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM0NzpcXHRyZXQgPSBicmNtZl9md3ZpZF9hdHRhY2goZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzQ4LVxcdGlmIChyZXQgIT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM0OTpcXHRcXHRicGh5X2VycihkcnZyLCBcXFwiYnJjbWZfZnd2aWRfYXR0YWNoIGZhaWxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzUwLVxcdFxcdGdvdG8gZmFpbDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTM3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jOjEzNzE6XFx0YnJjbWZfZnd2aWRfZ2V0X2NmZzgwMjExX29wcyhkcnZyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jLTEzNzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jPTE0MzA9dm9pZCBicmNtZl9kZXRhY2goc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTQ3MTpcXHRicmNtZl9md3ZpZF9kZXRhY2goZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xNDcyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmg9MTAxPXN0cnVjdCBicmNtZl9wdWIge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaC0xNDUtXFx0dTggc3RhX21hY19pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuaDoxNDY6XFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5oLTE0Ny1cXHR2b2lkICp2ZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTgtI2luY2x1ZGUgXFx1MDAzY2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jOjk6I2luY2x1ZGUgXFx1MDAzY2Z3dmlkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTAtI2luY2x1ZGUgXFx1MDAzY2Z3aWwuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTM1Nj1zdGF0aWMgdm9pZCBicmNtZl9jeXdfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzozNjg6Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl9jeXdfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTM2OS1cXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX2N5d19zZXRfc2FlX3B3ZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtNy0jaW5jbHVkZSBcXHUwMDNjY29yZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6ODojaW5jbHVkZSBcXHUwMDNjZnd2aWQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfY3l3X29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L3ZvcHMuaC05LSNkZWZpbmUgQ1lXX1ZPUFNcXHQoXFx1MDAyNmJyY21mX2N5d19vcHMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE1LSNpbmNsdWRlIFxcXCJmd2lsX3R5cGVzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2ZlYXR1cmUuYzoxNjojaW5jbHVkZSBcXFwiZnd2aWQuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTE3LSNpbmNsdWRlIFxcXCJmZWF0dXJlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jPTI4OT12b2lkIGJyY21mX2ZlYXRfYXR0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jLTM0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmVhdHVyZS5jOjM0NzpcXHRicmNtZl9md3ZpZF9mZWF0X2F0dGFjaChpZnApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9mZWF0dXJlLmMtMzQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0xNy0jaW5jbHVkZSBcXFwiYnVzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYzoxODojaW5jbHVkZSBcXFwiZnd2aWQuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTE5LS8qKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYz0zNDQ9aW50IGJyY21mX2Z3ZWhfYXR0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTM0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jOjM0OTpcXHRlcnIgPSBicmNtZl9md3ZpZF9hbGxvY19md2VoX2luZm8oZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3ZWguYy0zNTAtXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jPTQzOD1pbnQgYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMoc3RydWN0IGJyY21mX2lmICppZnApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jLTQ1OC1cXHQvKiBhbGxvdyBwZXItdmVuZG9yIG1ldGhvZCB0byBhY3RpdmF0ZSBmaXJtd2FyZSBldmVudHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZndlaC5jOjQ1OTpcXHRpZiAoIWJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhpZnApKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md2VoLmMtNDYwLVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTgtI2luY2x1ZGUgXFxcImRlYnVnLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTk6I2luY2x1ZGUgXFxcImZ3dmlkLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0yNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoyNTpzdHJ1Y3QgYnJjbWZfZnd2aWRfZW50cnkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTI2LVxcdGNvbnN0IGNoYXIgKm5hbWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6Mjc6XFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyAqdm9wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0yOC1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGRydnJfbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjM1OnN0YXRpYyBERUZJTkVfTVVURVgoZnd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0zNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQwLVxcdFxcdC5uYW1lID0gI19uYW1lLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDE6XFx0XFx0LnJlZ19kb25lID0gQ09NUExFVElPTl9JTklUSUFMSVpFUihmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXS5yZWdfZG9uZSksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MjpcXHRcXHQuZHJ2cl9saXN0ID0gTElTVF9IRUFEX0lOSVQoZnd2aWRfbGlzdFtCUkNNRl9GV1ZFTkRPUl8gIyMgX3ZpZF0uZHJ2cl9saXN0KSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQzLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ3LVxcdFxcdC5uYW1lID0gI19uYW1lLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDg6XFx0XFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00OS1cXHRcXHQudm9wcyA9IF92aWQgIyMgX1ZPUFMgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NTM6c3RhdGljIHN0cnVjdCBicmNtZl9md3ZpZF9lbnRyeSBmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SX05VTV0gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTQtXFx0RldWSURfRU5UUllfSU5JVChXQ0MsIHdjYyksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy01OS0jaWYgSVNfTU9EVUxFKENPTkZJR19CUkNNRk1BQylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2MDpzdGF0aWMgaW50IGJyY21mX2Z3dmlkX3JlcXVlc3RfbW9kdWxlKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NjQ6XFx0aWYgKCFmd3ZpZF9saXN0W2Z3dmlkXS52bW9kKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NjU6XFx0XFx0c3RydWN0IGNvbXBsZXRpb24gKnJlZ19kb25lID0gXFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLnJlZ19kb25lO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjY3OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo2OTpcXHRcXHRyZXQgPSByZXF1ZXN0X21vZHVsZShcXFwiYnJjbWZtYWMtJXNcXFwiLCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03MC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6Nzc6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy03OC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04MS1mYWlsOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjgyOlxcdGJyY21mX2VycihcXFwibW9kPSVzOiBmYWlsZWQgJWRcXFxcblxcXCIsIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtODMtXFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjg2OmludCBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCwgc3RydWN0IG1vZHVsZSAqdm1vZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4NzpcXHRcXHRcXHRcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo4OTpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQlJDTUZfRldWRU5ET1JfTlVNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTkwLVxcdFxcdHJldHVybiAtRVJBTkdFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6OTY6XFx0aWYgKFdBUk5fT04oZnd2aWRfbGlzdFtmd3ZpZF0udm1vZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtOTctXFx0XFx0cmV0dXJuIC1FRVhJU1Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6OTk6XFx0YnJjbWZfZGJnKFRSQUNFLCBcXFwibW9kPSVzOiBlbnRlclxcXFxuXFxcIiwgZnd2aWRfbGlzdFtmd3ZpZF0ubmFtZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEwMTpcXHRtdXRleF9sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDM6XFx0Znd2aWRfbGlzdFtmd3ZpZF0udm1vZCA9IHZtb2Q7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTA0OlxcdGZ3dmlkX2xpc3RbZnd2aWRdLnZvcHMgPSB2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDY6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMDg6XFx0Y29tcGxldGVfYWxsKFxcdTAwMjZmd3ZpZF9saXN0W2Z3dmlkXS5yZWdfZG9uZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTA5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTExLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMTI6QlJDTUZfRVhQT1JUX1NZTUJPTF9HUEwoYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTE0OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMTg6XFx0aWYgKGZ3dmlkIFxcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMTktXFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyMTpcXHRpZiAoV0FSTl9PTihmd3ZpZF9saXN0W2Z3dmlkXS52bW9kICE9IG1vZCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTIyLVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMjQ6XFx0bXV0ZXhfbG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTI2OlxcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShidXMsIHRtcCwgXFx1MDAyNmZ3dmlkX2xpc3RbZnd2aWRdLmRydnJfbGlzdCwgbGlzdCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyNzpcXHRcXHRtdXRleF91bmxvY2soXFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEyOTpcXHRcXHRicmNtZl9kYmcoSU5GTywgXFxcIm1vZD0lczogcmVtb3ZpbmcgJXNcXFxcblxcXCIsIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTMwLVxcdFxcdFxcdCAgZGV2X25hbWUoYnVzLVxcdTAwM2VkZXYpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMzM6XFx0XFx0bXV0ZXhfbG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xMzQtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxMzY6XFx0Znd2aWRfbGlzdFtmd3ZpZF0udm1vZCA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTM3OlxcdGZ3dmlkX2xpc3RbZnd2aWRdLnZvcHMgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjEzODpcXHRyZWluaXRfY29tcGxldGlvbihcXHUwMDI2Znd2aWRfbGlzdFtmd3ZpZF0ucmVnX2RvbmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTEzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDA6XFx0YnJjbWZfZGJnKFRSQUNFLCBcXFwibW9kPSVzOiBleGl0XFxcXG5cXFwiLCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDE6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE0NC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTQ1OkJSQ01GX0VYUE9SVF9TWU1CT0xfR1BMKGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNDYtI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNDc6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfcmVxdWVzdF9tb2R1bGUoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE1MzppbnQgYnJjbWZfZnd2aWRfYXR0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxNTU6XFx0ZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCA9IGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU2LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE1ODpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQVJSQVlfU0laRShmd3ZpZF9saXN0KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNTktXFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2MTpcXHRicmNtZl9kYmcoVFJBQ0UsIFxcXCJtb2Q9JXM6IGVudGVyOiBkZXYgJXNcXFxcblxcXCIsIGZ3dmlkX2xpc3RbZnd2aWRdLm5hbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTYyLVxcdFxcdCAgZGV2X25hbWUoZHJ2ci1cXHUwMDNlYnVzX2lmLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTY0OlxcdG11dGV4X2xvY2soXFx1MDAyNmZ3dmlkX2xpc3RfbG9jayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE2NjpcXHRyZXQgPSBicmNtZl9md3ZpZF9yZXF1ZXN0X21vZHVsZShmd3ZpZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTY3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTcwOlxcdGRydnItXFx1MDAzZXZvcHMgPSBmd3ZpZF9saXN0W2Z3dmlkXS52b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE3MTpcXHRsaXN0X2FkZChcXHUwMDI2ZHJ2ci1cXHUwMDNlYnVzX2lmLVxcdTAwM2VsaXN0LCBcXHUwMDI2Znd2aWRfbGlzdFtmd3ZpZF0uZHJ2cl9saXN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTczOlxcdG11dGV4X3VubG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTc4OnZvaWQgYnJjbWZfZnd2aWRfZGV0YWNoKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTc5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODA6XFx0ZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCA9IGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE4MjpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQVJSQVlfU0laRShmd3ZpZF9saXN0KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xODMtXFx0XFx0cmV0dXJuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxODU6XFx0YnJjbWZfZGJnKFRSQUNFLCBcXFwibW9kPSVzOiBlbnRlcjogZGV2ICVzXFxcXG5cXFwiLCBmd3ZpZF9saXN0W2Z3dmlkXS5uYW1lLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4Ni1cXHRcXHQgIGRldl9uYW1lKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZGV2KSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTg3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE4ODpcXHRtdXRleF9sb2NrKFxcdTAwMjZmd3ZpZF9saXN0X2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5My1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6MTk0OlxcdG11dGV4X3VubG9jayhcXHUwMDI2Znd2aWRfbGlzdF9sb2NrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTE5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzoxOTc6Y29uc3QgY2hhciAqYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0xOTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjE5OTpcXHRyZXR1cm4gZnd2aWRfbGlzdFtkcnZyLVxcdTAwM2VidXNfaWYtXFx1MDAzZWZ3dmlkXS5uYW1lO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTIwMC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaD0xMj1zdHJ1Y3QgYnJjbWZfaWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MTQ6c3RydWN0IGJyY21mX2Z3dmlkX29wcyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMTUtXFx0dm9pZCAoKmZlYXRfYXR0YWNoKShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC0yMy0vKiBleHBvcnRlZCBmdW5jdGlvbnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoyNDppbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKm1vZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDoyNTpcXHRcXHRcXHRcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICpvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI2OmludCBicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihlbnVtIGJyY21mX2Z3dmVuZG9yIGZ3dmlkLCBzdHJ1Y3QgbW9kdWxlICptb2QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTI4LS8qIGNvcmUgZHJpdmVyIGZ1bmN0aW9ucyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjI5OmludCBicmNtZl9md3ZpZF9hdHRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MzA6dm9pZCBicmNtZl9md3ZpZF9kZXRhY2goc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MzE6Y29uc3QgY2hhciAqYnJjbWZfZnd2aWRfdmVuZG9yX25hbWUoc3RydWN0IGJyY21mX3B1YiAqZHJ2cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6MzM6c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2ZlYXRfYXR0YWNoKHN0cnVjdCBicmNtZl9pZiAqaWZwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDozNTpcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzID0gaWZwLVxcdTAwM2VkcnZyLVxcdTAwM2V2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTM2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NDM6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfc2V0X3NhZV9wYXNzd29yZChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC00NC1cXHRcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGNmZzgwMjExX2NyeXB0b19zZXR0aW5ncyAqY3J5cHRvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTQ1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo0NjpcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzID0gaWZwLVxcdTAwM2VkcnZyLVxcdTAwM2V2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NTQ6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfYWxsb2NfZndlaF9pbmZvKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NjI6c3RhdGljIGlubGluZSBpbnQgYnJjbWZfZnd2aWRfYWN0aXZhdGVfZXZlbnRzKHN0cnVjdCBicmNtZl9pZiAqaWZwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo2NDpcXHRjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzICp2b3BzID0gaWZwLVxcdTAwM2VkcnZyLVxcdTAwM2V2b3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmg6NzI6c3RhdGljIGlubGluZSB2b2lkIGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC03OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaDo4MDpzdGF0aWMgaW5saW5lIHZvaWQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfZXZlbnRfaGFuZGxlcnMoc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaC04MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jPTI0Mzk9YnJjbWZfcGNpZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTE3LVxcdGJ1cy1cXHUwMDNld293bF9zdXBwb3J0ZWQgPSBwY2lfcG1lX2NhcGFibGUocGRldiwgUENJX0QzaG90KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1MTg6XFx0YnVzLVxcdTAwM2Vmd3ZpZCA9IGRydmRhdGFbaWQtXFx1MDAzZWRyaXZlcl9kYXRhXS52ZW5kb3I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTE5LVxcdGRldmluZm8tXFx1MDAzZWZ3c2VlZCA9IGRydmRhdGFbaWQtXFx1MDAzZWRyaXZlcl9kYXRhXS5md19zZWVkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTI2LVxcdC8qIG90cCByZWFkIG9wZXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjUyNzpcXHRzd2l0Y2ggKGJ1cy1cXHUwMDNlZnd2aWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MjgtXFx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9XQ0M6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTI0ND1zdGF0aWMgaW50IGJyY21mX3VzYl9wcm9iZV9jYihzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEyNDU6XFx0XFx0XFx0ICAgICAgZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI2OS1cXHRidXMtXFx1MDAzZXByb3RvX3R5cGUgPSBCUkNNRl9QUk9UT19CQ0RDO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxMjcwOlxcdGJ1cy1cXHUwMDNlZnd2aWQgPSBmd3ZpZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTI3MS1cXHRidXMtXFx1MDAzZWFsd2F5c191c2VfZndzX3F1ZXVlID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTgtI2luY2x1ZGUgXFx1MDAzY2J1cy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jOjk6I2luY2x1ZGUgXFx1MDAzY2Z3dmlkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMTAtI2luY2x1ZGUgXFx1MDAzY2NmZzgwMjExLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYz0yMz1zdGF0aWMgaW50IGJyY21mX3djY19hbGxvY19md2VoX2luZm8oc3RydWN0IGJyY21mX3B1YiAqZHJ2cilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvY29yZS5jOjM2OmNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYy0zNy1cXHQuc2V0X3NhZV9wYXNzd29yZCA9IGJyY21mX3djY19zZXRfc2FlX3B3ZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtNy0jaW5jbHVkZSBcXHUwMDNjY29yZS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6ODojaW5jbHVkZSBcXHUwMDNjZnd2aWQuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX3djY19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX1dDQywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfd2NjX29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl93Y2NfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBicmNtZl9md3ZpZF9vcHMgYnJjbWZfd2NjX29wcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC05LSNkZWZpbmUgV0NDX1ZPUFNcXHQoXFx1MDAyNmJyY21mX3djY19vcHMpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjQ2LjAzOTQwOTg1NloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzgyNjk5ODA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgcmVxdWVzdGVkOlxuXG4qKkRlY29uc3RydWN0aW5nIGBicmNtZl91c2JfcHJvYmVfY2JgKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBicmNtZl91c2JfcHJvYmVfY2JgIGZ1bmN0aW9uIGFuZCBpbW1lZGlhdGVseSBJJ20gdGhpbmtpbmcsIFwiT2theSwgYGZ3dmlkYCBpcyBwYXNzZWQgaW4gYXMgYW4gYXJndW1lbnQuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuXCIgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgaG93IHRoaXMgYGZ3dmlkYCBpcyB1c2VkLCBzbyBteSBmaXJzdCBtb3ZlIGlzIHRvIHRyYWNlIHdoZXJlIGFuZCBob3cgdGhpcyBgYnJjbWZfdXNiX3Byb2JlX2NiYCBpcyBhY3R1YWxseSAqY2FsbGVkKi4gVGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byBgdXNiLmNgIGFuZCBmaWd1cmUgb3V0IHRoZSBjYWxsIHN0YWNrIOKAkyBnZXQgYSBoYW5kbGUgb24gd2hhdCdzIHRyaWdnZXJpbmcgdGhpcyBmdW5jdGlvbiBhbmQgd2hhdCBpbmZvcm1hdGlvbiBpcyBiZWluZyBwYXNzZWQgdXAgdGhlIGNoYWluLiBVbmRlcnN0YW5kaW5nIHRoZSBjYWxsIGNvbnRleHQgYXJvdW5kIHRoZSBgZnd2aWRgIGFyZ3VtZW50IGlzIGdvaW5nIHRvIGJlIGtleSB0byBzZWVpbmcgaG93IHRoaXMgZmlybXdhcmUgdmVyc2lvbiBJRCBpbXBhY3RzIHRoZSBwcm9iZSBwcm9jZWR1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDA1LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6MzY6NDkuODIyMTExNTJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0NTcwNTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJyY21mX3VzYl9wcm9iZV9jYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xMjI0PWJyY21mX3VzYl9wcmVwYXJlX2Z3X3JlcXVlc3Qoc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTEyNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEyNDQ6c3RhdGljIGludCBicmNtZl91c2JfcHJvYmVfY2Ioc3RydWN0IGJyY21mX3VzYmRldl9pbmZvICpkZXZpbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMjQ1LVxcdFxcdFxcdCAgICAgIGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTM0Mj1icmNtZl91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNDQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNDQzOlxcdHJldCA9IGJyY21mX3VzYl9wcm9iZV9jYihkZXZpbmZvLCBpZC1cXHUwMDNlZHJpdmVyX2luZm8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNDQ0LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM2OjQ5LjkxNjY4ODVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM2NTE1NTE4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBGaXJtd2FyZSBJRCoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgYW5kIEkga25vdyB0aGF0J3Mgd2hlcmUgdGhlIGBmd3ZpZGAgaXMgc3RvcmVkLiBNeSBndXQgdGVsbHMgbWUgdGhpcyBpcyByZWxhdGVkIHRvIHRoZSBmaXJtd2FyZSB2ZXJzaW9uLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjcm9zcy1yZWZlcmVuY2UgdGhhdCB3aXRoIHRoZSBkZXZpY2UgSUQgdGFibGUuIFRoYXQgd291bGQgYmUgYGJyY21mX3VzYl9kZXZpZF90YWJsZWAgaW4gYHVzYi5jYCwgYmVjYXVzZSBJJ20gYmV0dGluZyB3ZSBhcmUgbG9va2luZyBhdCBzb21ldGhpbmcgdG8gZG8gd2l0aCBCcm9hZGNvbSBVU0IgZGV2aWNlcy4gTGV0J3Mgc2VlIGhvdyB0aGF0IGZ3dmlkIGlzIHVzZWQsIGVzcGVjaWFsbHkgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBkcml2ZXIsIGFuZCBpZiB0aGVyZSBhcmUgYW55IGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIG9yIHF1aXJrcyBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWMgdmVyc2lvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtIGlzIGNvcnJlbGF0aW5nIHRoZSByZXBvcnRlZCBmaXJtd2FyZSB3aXRoIHRoZSBoYXJkd2FyZSBpdCdzIG1hbmFnaW5nLiBUaW1lIHRvIGRpZyFcblxuXG4iLCJJbnB1dFRva2VucyI6MjM2NzAsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1My4yODE4NDc2NDVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMDM1NjA0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl91c2JfZGV2aWRfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTMyNj1icmNtZl91c2JfZGlzY29ubmVjdF9jYihzdHJ1Y3QgYnJjbWZfdXNiZGV2X2luZm8gKmRldmluZm8pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTMzOC0vKiBGb3J3YXJkIGRlY2xhcmF0aW9uIGZvciB1c2JfbWF0Y2hfaWQoKSBjYWxsICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEzMzk6c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xMzQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTEzNDI9YnJjbWZfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTM1Mi1cXHRpZiAoIWlkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjEzNTM6XFx0XFx0aWQgPSB1c2JfbWF0Y2hfaWQoaW50ZiwgYnJjbWZfdXNiX2RldmlkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTM1NC1cXHRcXHRpZiAoIWlkKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM9MTUxMT1zdGF0aWMgaW50IGJyY21mX3VzYl9yZXNldF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU0OTpzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgYnJjbWZfdXNiX2RldmlkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTAtXFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzE0M19ERVZJQ0VfSUQpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NjM6TU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGJyY21mX3VzYl9kZXZpZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1NjU9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIGJyY21mX3VzYmRydnIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU2OC1cXHQuZGlzY29ubmVjdCA9IGJyY21mX3VzYl9kaXNjb25uZWN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTY5OlxcdC5pZF90YWJsZSA9IGJyY21mX3VzYl9kZXZpZF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU3MC1cXHQuc3VzcGVuZCA9IGJyY21mX3VzYl9zdXNwZW5kLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1My40MTIyMDk5NDhaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU3MjY4OTEyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBCUkNNRiBVU0IgTGFuZHNjYXBlKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgYEJSQ01GX1VTQl9ERVZJQ0VgIG1hY3JvLCBvciBhdCBsZWFzdCBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIHdoYXQncyBoZWxkIHdpdGhpbiB0aGUgYGJyY21mX3VzYl9kZXZpZF90YWJsZWAuIEknbSBndWVzc2luZyB0aGF0IHRoaXMgaXMgdGhlIGNlbnRyYWwgcGllY2UgZm9yIGlkZW50aWZ5aW5nIGFuZCBjb25maWd1cmluZyBVU0IgZGV2aWNlcyBmb3IgdGhlIEJyb2FkY29tIFdpRmkgZHJpdmVyLiBMaWtlbHksIGl0IGhvbGRzIGFsbCB0aGUgdml0YWwgdmVuZG9yIElEcywgcHJvZHVjdCBJRHMsIG1heWJlIGV2ZW4gcmV2aXNpb24gSURzLCB0aGF0J2xsIGFsbG93IHRoZSBkcml2ZXIgdG8gcmVjb2duaXplIGNvbXBhdGlibGUgaGFyZHdhcmUgYW5kIGxvYWQgdGhlIHJpZ2h0IGZpcm13YXJlIG9yIGNvbmZpZ3VyYXRpb25zLiBJJ20ga2VlbiB0byBkaXNzZWN0IHRoaXMgdGFibGUgb3IgbWFjcm8sIGl0J2xsIHVuZG91YnRlZGx5IHJldmVhbCBzb21lIGNydWNpYWwgaW5zaWdodHMgaW50byB0aGUgZHJpdmVyJ3MgZGV2aWNlLW1hdGNoaW5nIGxvZ2ljLiBXaGV0aGVyIGl0J3MgYSBzaW1wbGUgbG9va3VwIHRhYmxlIG9yIHNvbWUgbW9yZSBzb3BoaXN0aWNhdGVkIG1hY3JvIG1hZ2ljLCBrbm93aW5nIGl0cyBpbnRlcm5hbHMgd2lsbCBzaWduaWZpY2FudGx5IGVuaGFuY2UgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgVVNCIGRldmljZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIHdpdGhpbiB0aGlzIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ4MzYsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1Ni45ODQ5MDE5MjlaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyODM3MDg0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJCUkNNRl9VU0JfREVWSUNFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1MTE9c3RhdGljIGludCBicmNtZl91c2JfcmVzZXRfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzE6I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMyLVxcdHsgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1NDk9c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTUwOlxcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMxNDNfREVWSUNFX0lEKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU1MTpcXHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjM2X0RFVklDRV9JRCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTI6XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzI0Ml9ERVZJQ0VfSUQpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTUzOlxcdEJSQ01GX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDM1NjlfREVWSUNFX0lEKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU1NC1cXHRMSU5LU1lTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfNDMyMzVfTElOS1NZU19ERVZJQ0VfSUQpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NTctXFx0Lyogc3BlY2lhbCBlbnRyeSBmb3IgZGV2aWNlIHdpdGggZmlybXdhcmUgbG9hZGVkIGFuZCBydW5uaW5nICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NTg6XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTU5LVxcdENZUFJFU1NfVVNCX0RFVklDRShCUkNNX1VTQl9CQ01GV19ERVZJQ0VfSUQpLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNjo1Ny4xMTMyNzg0MjNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAzNTY2NDQ4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBVU0IgRGV2aWNlIERlZmluaXRpb25zKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzcGVjaWZpY3Mgb2YgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBjZXJ0YWluIFVTQiBkZXZpY2VzLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhlIGRlZmluaXRpb25zIGZvciBgQlJDTUZfVVNCX0RFVklDRWAgYW5kIGBDWVBSRVNTX1VTQl9ERVZJQ0VgIHdpdGhpbiB0aGUgYHVzYi5jYCBmaWxlLiBJJ20gbm90IGxvb2tpbmcgZm9yIGEgY2FzdWFsIG92ZXJ2aWV3IGhlcmU7IEkgd2FudCB0aGUgZ3JhbnVsYXIgZGV0YWlscy4gSSBuZWVkIHRvIHNlZSB0aGUgZXhhY3Qgc3RydWN0dXJlIGRlZmluaXRpb25zLCB0aGUgYXNzb2NpYXRlZCB2ZW5kb3IgYW5kIHByb2R1Y3QgSURzLCBhbmQgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRoYXQgbWlnaHQgYmUgaGFwcGVuaW5nIGJhc2VkIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0gb3IgY29uZmlndXJhdGlvbi4gVGhpcyB3aWxsIGdpdmUgbWUgYSBzb2xpZCBmb3VuZGF0aW9uIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBkcml2ZXIncyBiZWhhdmlvdXIgd2hlbiB0aGVzZSBzcGVjaWZpYyBkZXZpY2VzIGFyZSBjb25uZWN0ZWQuIEkgbmVlZCB0byBrbm93IHdoYXQgaG9va3MgYXJlIGJlaW5nIHVzZWQgYXMgd2VsbC4gTGV04oCZcyBzZWUgd2hhdCB3ZSBjYW4gZmluZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU3OTcsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzowMS4xNDg5NDYwNDlaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NzcwODcyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCIjZGVmaW5lLipVU0JfREVWSUNFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jPTE1MTE9c3RhdGljIGludCBicmNtZl91c2JfcmVzZXRfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzE6I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMyLVxcdHsgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1Mzc6I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1MzgtXFx0eyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmM6MTU0MzojZGVmaW5lIENZUFJFU1NfVVNCX0RFVklDRShkZXZfaWQpIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0NC1cXHR7IFxcXFxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MDEuNDk2NjYwMTNaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQxNTc5NzQ1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEaXZpbmcgaW50byBVU0IgQ29yZSAtIExpbmUgMTUzMSoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgdGFraW5nIGEgbG9vayBhdCBgdXNiLmNgLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMTUzMS4gSSdtIHByb2JhYmx5IGludGVyZXN0ZWQgaW4gdW5kZXJzdGFuZGluZyBob3cgYSBwYXJ0aWN1bGFyIFVTQiBmdW5jdGlvbiBpcyBiZWluZyBoYW5kbGVkLCBvciBtYXliZSBJJ20gdHJvdWJsZXNob290aW5nIGFuIGlzc3VlIGFuZCBoYXZlIGJlZW4gZGlyZWN0ZWQgdG8gdGhpcyBhcmVhIGJ5IGEgc3RhY2sgdHJhY2Ugb3IgbG9nIG1lc3NhZ2VzLiBJJ20gYWxyZWFkeSBmb3JtdWxhdGluZyBoeXBvdGhlc2VzIGFib3V0IHdoYXQgSSBtaWdodCBmaW5kIGJhc2VkIG9uIG15IGdlbmVyYWwgdW5kZXJzdGFuZGluZyBvZiB0aGUgVVNCIHN0YWNrLiBJcyB0aGlzIGEgY3JpdGljYWwgcGF0aCBmb3IgZGV2aWNlIGVudW1lcmF0aW9uPyBFbmRwb2ludCBoYW5kbGluZz8gTGlrZWx5LCB0aGlzIGNodW5rIG9mIGNvZGUgaXMgaW52b2x2ZWQgaW4gZWl0aGVyIGluaXRpYWxpemF0aW9uLCB0cmFuc2ZlciBzY2hlZHVsaW5nLCBvciBlcnJvciBtYW5hZ2VtZW50IHdpdGhpbiB0aGUgVVNCIGNvcmUuIEtub3dpbmcgdGhlIGV4YWN0IGNvbnRleHQgd2lsbCBoZWxwLCBidXQgSSdsbCBzdGFydCB3aXRoIGEgZGV0YWlsZWQgcmV2aWV3IG9mIHRoaXMgc2VjdGlvbi4gSSB3aWxsIGJlIHN1cmUgdG8gY3Jvc3MtcmVmZXJlbmNlIGFueSByZWxldmFudCBzdHJ1Y3R1cmVzIG9yIGZ1bmN0aW9ucyByZWZlcmVuY2VkIHdpdGhpbiB0aGF0IHNlY3Rpb24uIExldCdzIGRpZyBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0NjMsIk91dHB1dFRva2VucyI6NTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzowNC45MTI0NjA3NjhaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3MzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNTMwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIxNTMwOlxcdFxcbjE1MzE6XFx0I2RlZmluZSBCUkNNRl9VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbjE1MzI6XFx0XFx0eyBcXFxcXFxuMTUzMzpcXHRcXHRcXHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9CUk9BRENPTSwgZGV2X2lkKSwgXFxcXFxcbjE1MzQ6XFx0XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG4xNTM1OlxcdFxcdH1cXG4xNTM2OlxcdFxcbjE1Mzc6XFx0I2RlZmluZSBMSU5LU1lTX1VTQl9ERVZJQ0UoZGV2X2lkKSBcXFxcXFxuMTUzODpcXHRcXHR7IFxcXFxcXG4xNTM5OlxcdFxcdFxcdFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0xJTktTWVMsIGRldl9pZCksIFxcXFxcXG4xNTQwOlxcdFxcdFxcdC5kcml2ZXJfaW5mbyA9IEJSQ01GX0ZXVkVORE9SX1dDQyBcXFxcXFxuMTU0MTpcXHRcXHR9XFxuMTU0MjpcXHRcXG4xNTQzOlxcdCNkZWZpbmUgQ1lQUkVTU19VU0JfREVWSUNFKGRldl9pZCkgXFxcXFxcbjE1NDQ6XFx0XFx0eyBcXFxcXFxuMTU0NTpcXHRcXHRcXHRVU0JfREVWSUNFKENZX1VTQl9WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcXFxcbjE1NDY6XFx0XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG4xNTQ3OlxcdFxcdH1cXG4xNTQ4OlxcdFxcbjE1NDk6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGJyY21mX3VzYl9kZXZpZF90YWJsZVtdID0ge1xcbjE1NTA6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzE0M19ERVZJQ0VfSUQpLFxcbjE1NTE6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzIzNl9ERVZJQ0VfSUQpLFxcbjE1NTI6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzI0Ml9ERVZJQ0VfSUQpLFxcbjE1NTM6XFx0XFx0QlJDTUZfVVNCX0RFVklDRShCUkNNX1VTQl80MzU2OV9ERVZJQ0VfSUQpLFxcbjE1NTQ6XFx0XFx0TElOS1NZU19VU0JfREVWSUNFKEJSQ01fVVNCXzQzMjM1X0xJTktTWVNfREVWSUNFX0lEKSxcXG4xNTU1OlxcdFxcdENZUFJFU1NfVVNCX0RFVklDRShDWV9VU0JfNDM3M19ERVZJQ0VfSUQpLFxcbjE1NTY6XFx0XFx0eyBVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9MRywgQlJDTV9VU0JfNDMyNDJfTEdfREVWSUNFX0lEKSB9LFxcbjE1NTc6XFx0XFx0Lyogc3BlY2lhbCBlbnRyeSBmb3IgZGV2aWNlIHdpdGggZmlybXdhcmUgbG9hZGVkIGFuZCBydW5uaW5nICovXFxuMTU1ODpcXHRcXHRCUkNNRl9VU0JfREVWSUNFKEJSQ01fVVNCX0JDTUZXX0RFVklDRV9JRCksXFxuMTU1OTpcXHRcXHRDWVBSRVNTX1VTQl9ERVZJQ0UoQlJDTV9VU0JfQkNNRldfREVWSUNFX0lEKSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MDQuOTEyNTg5Njg4WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNDM5OTUzODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgQ3lwcmVzcyBVU0IgRGV2aWNlIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJdCBzZWVtcyBhIGJpdCBvZGQgdGhhdCBgQ1lQUkVTU19VU0JfREVWSUNFYCBpcyB1dGlsaXppbmcgYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFRoYXQganVzdCBkb2Vzbid0IGZlZWwgcmlnaHQuIExldCBtZSBkb3VibGUtY2hlY2sgdGhlIGBDWVBSRVNTX1VTQl9ERVZJQ0VgIGNvbmZpZ3VyYXRpb24gYWdhaW4sIGZvY3VzaW5nIG9uIHRoYXQgZHJpdmVyIGluZm9ybWF0aW9uIHNldHRpbmcuIFJpZ2h0LCBsaW5lIDE1NDYuLi4gdGhlcmUgaXQgaXM6IGAuZHJpdmVyX2luZm8gPSBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBIbW0uXG5cbk5vdywgdGhhdCBicmluZ3MgdXAgYW5vdGhlciBwb2ludC4gV2hlcmUgKmlzKiBgQlJDTUZfRldWRU5ET1JfQ1lXYCBiZWluZyBlbXBsb3llZD8gSSBuZWVkIHRvIHRyYWNrIGRvd24gd2hlcmUgdGhhdCdzIGFjdHVhbGx5IHVzZWQuIExldCBtZSBnbyBiYWNrIGFuZCByZS1leGFtaW5lIHRoZSBgQ1lQUkVTU19VU0JfREVWSUNFYCBzZXR0aW5ncyB3aXRoaW4gYHVzYi5jYC5cblxuQWgsIG9rYXksIEkgc2VlIGl0IG5vdy4gV2FpdC4gSXQncyBiZWNvbWluZyBjbGVhci4uLiBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBhY3R1YWxseSBkZWZpbmVkIHdpdGhpbiBgcGNpZS5jYCBhbmQgYHNkaW8uY2AuIE5vdCBVU0IgYXQgYWxsISBJIHN1cHBvc2UgdGhpcyBtYWtlcyBzZW5zZS4gTGV0J3MgZGVsdmUgaW50byBgc2Rpby5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgc3BlY2lmaWMgZmlybXdhcmUgdmVuZG9yIGNvbmZpZ3VyYXRpb24gaXMgdXRpbGl6ZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25uZWN0aW9uIGJldHdlZW4gdGhlc2UgdmVuZG9yIG9wdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MzY3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTU1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MDkuMTU2NTg4MzQ5WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDc2NTcyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQlJDTUZfRldWRU5ET1JfQ1lXXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTM0PWVudW0gYnJjbWZfZnd2ZW5kb3Ige1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zNS1cXHRCUkNNRl9GV1ZFTkRPUl9XQ0MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM2OlxcdEJSQ01GX0ZXVkVORE9SX0NZVyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmgtMzctXFx0QlJDTUZfRldWRU5ET1JfQkNBLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9MTk1Nz1zdGF0aWMgczMyIGJyY21mX3NldF93cGFfdmVyc2lvbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTE5NjktXFx0fSBlbHNlIGlmIChzbWUtXFx1MDAzZWNyeXB0by53cGFfdmVyc2lvbnMgXFx1MDAyNiBOTDgwMjExX1dQQV9WRVJTSU9OXzIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYzoxOTcwOlxcdFxcdGlmIChkcnZyLVxcdTAwM2VidXNfaWYtXFx1MDAzZWZ3dmlkID09IEJSQ01GX0ZXVkVORE9SX0NZVyBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTE5NzEtXFx0XFx0ICAgIHNtZS1cXHUwMDNlY3J5cHRvLmFrbV9zdWl0ZXNbMF0gPT0gV0xBTl9BS01fU1VJVEVfU0FFKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl9jeXdfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MTQ6XFx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9DWVcsIFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTUtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmJyY21mX2N5d19vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfY3l3X2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jLTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jOjIwOlxcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMjEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDE2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnJjbWZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTctXFx0W0JSQ01GX0RSVkRBVEFfQ1lXXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MTg6XFx0XFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX0NZVyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MTktXFx0XFx0LmZ3X3NlZWQgPSBmYWxzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQzOT1icmNtZl9wY2llX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzUtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTM2OlxcdGNhc2UgQlJDTUZfRldWRU5ET1JfQ1lXOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzNy1cXHRkZWZhdWx0OlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzowOS4yNjQyNTE5NDlaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMzOTk4NDAzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBCcm9hZGNvbSBGaXJtd2FyZSBVc2FnZSoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgYEJSQ01GX0ZXVkVORE9SX0NZV2AgYW5kIG15IGZpcnN0IHRob3VnaHQgaXMsIFwiV2hlcmUgZXhhY3RseSBpcyB0aGlzIHVzZWQ/XCIgSSBxdWlja2x5IHJlYWxpemUgaXQgc2VlbXMgdG8gYmUgY29uZmluZWQgdG8gYHBjaWUuY2AuIFRoYXQncyBpbnRlcmVzdGluZywgYnV0IEkgbmVlZCB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBjb2RlIGJhc2UsIHNvIEknbSBnb2luZyB0byBqdW1wIG92ZXIgdG8gYGJjbXNkaC5jYCDigJMgdGhhdCdzIHdoZXJlIHRoZSBTRElPIHN0dWZmIGlzLCBhbmQgaXQncyBhIGNyaXRpY2FsIGFyZWEgZm9yIEJyb2FkY29tIGZpcm13YXJlLiBHb3R0YSBtYWtlIHN1cmUgdGhpcyBpc24ndCBhIHdpZGVyIGNvbmNlcm4gdGhhbiBJIGluaXRpYWxseSB0aG91Z2h0LiBJIG5lZWQgdG8gc2VlIGlmIHRoZSBTRElPIGRyaXZlciBpcyBoYW5kbGluZyB0aGluZ3MgdGhlIHNhbWUgd2F5LCBvciBpZiB0aGVyZSdzIGEgZGlmZmVyZW5jZSBpbiB0aGUgdmVuZG9yIHN0cmluZyB1c2FnZS4gVGhpcyBhbGwgaGVscHMgbWUgdW5kZXJzdGFuZCB0aGUgb3ZlcmFsbCBkZXNpZ24gYW5kIGFueSBwb3RlbnRpYWwgaW5jb25zaXN0ZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODk5NSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjEyLjYwNDIzODI4M1oiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA4NTA3NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkJSQ01GX0ZXVkVORE9SX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM9MTI9c3RhdGljIGludCBfX2luaXQgYnJjbWZfYmNhX2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTEzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jOjE0OlxcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQkNBLCBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTE1LVxcdFxcdFxcdFxcdFxcdCAgIFxcdTAwMjZicmNtZl9iY2Ffb3BzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY2EvbW9kdWxlLmM9MTg9c3RhdGljIHZvaWQgX19leGl0IGJyY21mX2JjYV9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYy0xOS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2JjYS9tb2R1bGUuYzoyMDpcXHRicmNtZl9md3ZpZF91bnJlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9CQ0EsIFRISVNfTU9EVUxFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNhL21vZHVsZS5jLTIxLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYz05MDA9aW50IGJyY21mX3NkaW9kX3Byb2JlKHN0cnVjdCBicmNtZl9zZGlvX2RldiAqc2Rpb2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NjgtXFx0XFx0U0RJT19ERVZJQ0UoU0RJT19WRU5ET1JfSURfQlJPQURDT00sIGRldl9pZCksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmM6OTY5OlxcdFxcdC5kcml2ZXJfZGF0YSA9IEJSQ01GX0ZXVkVORE9SXyAjIyBmd192ZW5kIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYmNtc2RoLmMtOTcwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NzQtXFx0XFx0U0RJT19ERVZJQ0UoU0RJT19WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYzo5NzU6XFx0XFx0LmRyaXZlcl9kYXRhID0gQlJDTUZfRldWRU5ET1JfICMjIGZ3X3ZlbmQgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9iY21zZGguYy05NzYtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oPTM0PWVudW0gYnJjbWZfZnd2ZW5kb3Ige1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDozNTpcXHRCUkNNRl9GV1ZFTkRPUl9XQ0MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oOjM2OlxcdEJSQ01GX0ZXVkVORE9SX0NZVyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6Mzc6XFx0QlJDTUZfRldWRU5ET1JfQkNBLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaC0zOC1cXHQvKiBrZWVwIGxhc3QgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvYnVzLmg6Mzk6XFx0QlJDTUZfRldWRU5ET1JfTlVNLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9idXMuaDo0MDpcXHRCUkNNRl9GV1ZFTkRPUl9JTlZBTElEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2J1cy5oLTQxLX07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYz0xOTU3PXN0YXRpYyBzMzIgYnJjbWZfc2V0X3dwYV92ZXJzaW9uKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk2OS1cXHR9IGVsc2UgaWYgKHNtZS1cXHUwMDNlY3J5cHRvLndwYV92ZXJzaW9ucyBcXHUwMDI2IE5MODAyMTFfV1BBX1ZFUlNJT05fMikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjE5NzA6XFx0XFx0aWYgKGRydnItXFx1MDAzZWJ1c19pZi1cXHUwMDNlZnd2aWQgPT0gQlJDTUZfRldWRU5ET1JfQ1lXIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtMTk3MS1cXHRcXHQgICAgc21lLVxcdTAwM2VjcnlwdG8uYWttX3N1aXRlc1swXSA9PSBXTEFOX0FLTV9TVUlURV9TQUUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX2N5d19pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYzoxNDpcXHRyZXR1cm4gYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX0NZVywgVEhJU19NT0RVTEUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0xNS1cXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2YnJjbWZfY3l3X29wcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L21vZHVsZS5jPTE4PXN0YXRpYyB2b2lkIF9fZXhpdCBicmNtZl9jeXdfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmMtMTkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvbW9kdWxlLmM6MjA6XFx0YnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfQ1lXLCBUSElTX01PRFVMRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9tb2R1bGUuYy0yMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYz0zNT1zdGF0aWMgREVGSU5FX01VVEVYKGZ3dmlkX2xpc3RfbG9jayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy0zOC0jZGVmaW5lIEZXVklEX0VOVFJZX0lOSVQoX3ZpZCwgX25hbWUpIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzozOTpcXHRbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdID0geyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNDAtXFx0XFx0Lm5hbWUgPSAjX25hbWUsIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYzo0MTpcXHRcXHQucmVnX2RvbmUgPSBDT01QTEVUSU9OX0lOSVRJQUxJWkVSKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLnJlZ19kb25lKSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjQyOlxcdFxcdC5kcnZyX2xpc3QgPSBMSVNUX0hFQURfSU5JVChmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXS5kcnZyX2xpc3QpLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNDMtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNDUtI2RlZmluZSBGV1ZJRF9FTlRSWV9JTklUKF92aWQsIF9uYW1lKSBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDY6XFx0W0JSQ01GX0ZXVkVORE9SXyAjIyBfdmlkXSA9IHsgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTQ3LVxcdFxcdC5uYW1lID0gI19uYW1lLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NDg6XFx0XFx0LmRydnJfbGlzdCA9IExJU1RfSEVBRF9JTklUKGZ3dmlkX2xpc3RbQlJDTUZfRldWRU5ET1JfICMjIF92aWRdLmRydnJfbGlzdCksIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy00OS1cXHRcXHQudm9wcyA9IF92aWQgIyMgX1ZPUFMgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6NTM6c3RhdGljIHN0cnVjdCBicmNtZl9md3ZpZF9lbnRyeSBmd3ZpZF9saXN0W0JSQ01GX0ZXVkVORE9SX05VTV0gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtNTQtXFx0RldWSURfRU5UUllfSU5JVChXQ0MsIHdjYyksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYz04Nj1pbnQgYnJjbWZfZnd2aWRfcmVnaXN0ZXJfdmVuZG9yKGVudW0gYnJjbWZfZnd2ZW5kb3IgZnd2aWQsIHN0cnVjdCBtb2R1bGUgKnZtb2QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy04OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmM6ODk6XFx0aWYgKGZ3dmlkIFxcdTAwM2U9IEJSQ01GX0ZXVkVORE9SX05VTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuYy05MC1cXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jPTExND1pbnQgYnJjbWZfZnd2aWRfdW5yZWdpc3Rlcl92ZW5kb3IoZW51bSBicmNtZl9md3ZlbmRvciBmd3ZpZCwgc3RydWN0IG1vZHVsZSAqbW9kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmMtMTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jOjExODpcXHRpZiAoZnd2aWQgXFx1MDAzZT0gQlJDTUZfRldWRU5ET1JfTlVNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5jLTExOS1cXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM9MjQxNj1zdGF0aWMgY29uc3Qgc3RydWN0IGJyY21mX3BjaWVfZHJ2ZGF0YSBkcnZkYXRhW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE3LVxcdFtCUkNNRl9EUlZEQVRBX0NZV10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNDE4OlxcdFxcdC52ZW5kb3IgPSBCUkNNRl9GV1ZFTkRPUl9DWVcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDE5LVxcdFxcdC5md19zZWVkID0gZmFsc2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjEtXFx0W0JSQ01GX0RSVkRBVEFfQkNBXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MjI6XFx0XFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX0JDQSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MjMtXFx0XFx0LmZ3X3NlZWQgPSBmYWxzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQyNS1cXHRbQlJDTUZfRFJWREFUQV9XQ0NdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjQyNjpcXHRcXHQudmVuZG9yID0gQlJDTUZfRldWRU5ET1JfV0NDLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjQyNy1cXHRcXHQuZndfc2VlZCA9IGZhbHNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNDI5LVxcdFtCUkNNRl9EUlZEQVRBX1dDQ19TRUVEXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI0MzA6XFx0XFx0LnZlbmRvciA9IEJSQ01GX0ZXVkVORE9SX1dDQyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI0MzEtXFx0XFx0LmZ3X3NlZWQgPSB0cnVlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYz0yNDM5PWJyY21mX3BjaWVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUyNy1cXHRzd2l0Y2ggKGJ1cy1cXHUwMDNlZnd2aWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jOjI1Mjg6XFx0Y2FzZSBCUkNNRl9GV1ZFTkRPUl9XQ0M6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYzoyNTI5OlxcdGNhc2UgQlJDTUZfRldWRU5ET1JfQkNBOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmMtMjUzMC1cXHRcXHRyZXQgPSBicmNtZl9wY2llX3JlYWRfb3RwKGRldmluZm8pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3BjaWUuYy0yNTM1LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wY2llLmM6MjUzNjpcXHRjYXNlIEJSQ01GX0ZXVkVORE9SX0NZVzpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcGNpZS5jLTI1MzctXFx0ZGVmYXVsdDpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYz0xNTExPXN0YXRpYyBpbnQgYnJjbWZfdXNiX3Jlc2V0X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYy0xNTMzLVxcdFxcdFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0JST0FEQ09NLCBkZXZfaWQpLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1MzQ6XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzNS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTUzOS1cXHRcXHRVU0JfREVWSUNFKEJSQ01fVVNCX1ZFTkRPUl9JRF9MSU5LU1lTLCBkZXZfaWQpLCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jOjE1NDA6XFx0XFx0LmRyaXZlcl9pbmZvID0gQlJDTUZfRldWRU5ET1JfV0NDIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0MS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvdXNiLmMtMTU0NS1cXHRcXHRVU0JfREVWSUNFKENZX1VTQl9WRU5ET1JfSURfQ1lQUkVTUywgZGV2X2lkKSwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy91c2IuYzoxNTQ2OlxcdFxcdC5kcml2ZXJfaW5mbyA9IEJSQ01GX0ZXVkVORE9SX1dDQyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3VzYi5jLTE1NDctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYz0xMj1zdGF0aWMgaW50IF9faW5pdCBicmNtZl93Y2NfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmM6MTQ6XFx0cmV0dXJuIGJyY21mX2Z3dmlkX3JlZ2lzdGVyX3ZlbmRvcihCUkNNRl9GV1ZFTkRPUl9XQ0MsIFRISVNfTU9EVUxFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMTUtXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmJyY21mX3djY19vcHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9tb2R1bGUuYz0xOD1zdGF0aWMgdm9pZCBfX2V4aXQgYnJjbWZfd2NjX2V4aXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jOjIwOlxcdGJyY21mX2Z3dmlkX3VucmVnaXN0ZXJfdmVuZG9yKEJSQ01GX0ZXVkVORE9SX1dDQywgVEhJU19NT0RVTEUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2MvbW9kdWxlLmMtMjEtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzoxMi43MTI3NTI5MjJaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ3MTE3NDY3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQnJvYWRjb20gRmlybXdhcmUgVmVuZG9yIElEIFVzYWdlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2Agc2VlbXMgdG8gYmUgc3BlY2lmaWMgdG8gYGJjbXNkaC5jYCAoU0RJTykgYW5kIGBwY2llLmNgIChQQ0llKSBpbiB0aGUgQnJvYWRjb20gZHJpdmVyIGNvZGUuIEl0J3MgY29uc3BpY3VvdXNseSAqYWJzZW50KiBmcm9tIGB1c2IuY2AuIEluIGB1c2IuY2AsIGV2ZXJ5dGhpbmcgdXNlcyBgQlJDTUZfRldWRU5ET1JfV0NDYCwgb3IgdGhlIGRlZmF1bHQgb2YgMCB3aGljaCBhbHNvIHJlc29sdmVzIHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLlxuXG5IbW0sIG5vdyB0aGF0IEkgdGhpbmsgYWJvdXQgaXQsIGBiY21zZGguY2AgaXMgdGhlIFNESU8gaW50ZXJmYWNlLiBJIHdvbmRlciBpZiBpdCdzIHBvc3NpYmxlIHRvIGZ1enogU0RJTyBkZXZpY2VzIHVzaW5nIGV4aXN0aW5nIHRvb2xzPyBUaGUgaXNzdWUsIGFzIEkgcmVjYWxsLCBpcyB0aGF0IFN5emthbGxlciBkb2Vzbid0IGhhdmUgYW4gU0RJTyBlbXVsYXRvciBsaWtlIGl0IGRvZXMgZm9yIFVTQiwgd2hpY2ggdXNlcyBgZHVtbXlfaGNkYC5cblxuV2hhdCBhYm91dCBQQ0llLCB0aGVuPyBVbmZvcnR1bmF0ZWx5LCBTeXprYWxsZXIgYWxzbyBkb2Vzbid0IGVtdWxhdGUgQnJvYWRjb20gUENJZSBkZXZpY2VzLCBzbyB0aGF0J3MgYW5vdGhlciBkZWFkIGVuZC5cblxuUmlnaHQsIGJhY2sgdG8gdGhlIGNvcmUgbG9naWMuIElmIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGlzIGV4Y2x1c2l2ZWx5IHRpZWQgdG8gU0RJTyBhbmQgUENJZSwgdGhlbiB0aGUgZnVuY3Rpb24gYGJyY21mX2N5d19tZ210X3R4YCBpcyBvbmx5IHJlYWNoYWJsZSB0aHJvdWdoIEJyb2FkY29tIGRldmljZXMgdXNpbmcgdGhvc2UgaW50ZXJmYWNlcy4gQW5kIHNpbmNlIGBicmNtZl9jeXdfbWdtdF90eGAgaXMgYWN0dWFsbHkgbG9jYXRlZCBpbiBgY3l3L2NvcmUuY2AsIGl0IGltcGxpZXMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBpcyB0aWVkIHRvIHRoaXMgc3BlY2lmaWMgdmVuZG9yLlxuXG5Ob3csIGEgY3JpdGljYWwgcXVlc3Rpb246IGlzIGBicmNtZl9jeXdfbWdtdF90eGAgcmVhY2hhYmxlIGZyb20gc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBgdmhjaWA/IFNpbmNlIHRoaXMgaXMgcGFydCBvZiB0aGUgYGJyY21mbWFjYCBkcml2ZXIsIGl0IHJlcXVpcmVzIGEgYGJyY21mbWFjYCBkZXZpY2UgdG8gYmUgcHJlc2VudC5cblxuQ2FuIHdlIHRyaWNrIGl0IGludG8gYSBgYnJjbWZtYWNgIGRldmljZSBieSB1c2luZyBVU0I/IFllcywgd2UgY2FuLCBidXQgSSByZW1lbWJlciB0aGF0IGB1c2IuY2AgZXhwbGljaXRseSBzZXRzIHRoZSBgLmRyaXZlcl9pbmZvYCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYC5cblxuU28sIGZvciBVU0IgZGV2aWNlcywgYGZ3dmlkYCB3aWxsIGJlIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBJZiB0aGF0J3MgdGhlIGNhc2UsIHRoZSBgZHJ2ci1cdTAwM2V2b3BzYCBpcyBgYnJjbWZfd2NjX29wc2AsIHNvIGl0IGxvb2tzIGxpa2UgSSBuZWVkIHRvIGRpZyBpbnRvIGBicmNtZl93Y2Nfb3BzYCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNzg3LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjIwLjE4MzkzMTQ1MVoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwMjQyODgwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl93Y2Nfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmM9MjM9c3RhdGljIGludCBicmNtZl93Y2NfYWxsb2NfZndlaF9pbmZvKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYy0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL2NvcmUuYzozNjpjb25zdCBzdHJ1Y3QgYnJjbWZfZnd2aWRfb3BzIGJyY21mX3djY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmMtMzctXFx0LnNldF9zYWVfcGFzc3dvcmQgPSBicmNtZl93Y2Nfc2V0X3NhZV9wd2QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jPTEyPXN0YXRpYyBpbnQgX19pbml0IGJyY21mX3djY19pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE0LVxcdHJldHVybiBicmNtZl9md3ZpZF9yZWdpc3Rlcl92ZW5kb3IoQlJDTUZfRldWRU5ET1JfV0NDLCBUSElTX01PRFVMRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jOjE1OlxcdFxcdFxcdFxcdFxcdCAgIFxcdTAwMjZicmNtZl93Y2Nfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL21vZHVsZS5jLTE2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy92b3BzLmg6ODpleHRlcm4gY29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy93Y2Mvdm9wcy5oOjk6I2RlZmluZSBXQ0NfVk9QU1xcdChcXHUwMDI2YnJjbWZfd2NjX29wcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvd2NjL3ZvcHMuaC0xMC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MjIuMDg2MzY3MzM1WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MTE3OTkxNjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXMgaWYgdGhleSdyZSBteSBvd246XG5cbioqSW52ZXN0aWdhdGluZyBicmNtZl93Y2Nfb3BzKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyB1bmRlciB0aGUgaG9vZCBvZiB0aGlzIGBicmNtZl93Y2Nfb3BzYCBzdHJ1Y3QuIEl0J3MgYSBrZXkgY29tcG9uZW50LCBzbyBJIG5lZWQgYSBjbGVhciBwaWN0dXJlIG9mIGl0cyBjb250ZW50cy4gVGhpcyBsaWtlbHkgaG9sZHMgdGhlIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucyBvciBtZXRob2RzIHJlbGF0ZWQgdG8gdGhlIHdpcmVsZXNzIGNvbmN1cnJlbnQgY29ubmVjdGlvbiAoV0NDKSBjYXBhYmlsaXRpZXMgd2l0aGluIHRoZSBCcm9hZGNvbSB3aXJlbGVzcyBkcml2ZXIuIFVuZGVyc3RhbmRpbmcgdGhlc2Ugb3BlcmF0aW9ucyBpcyBjcnVjaWFsIGZvci4uLiBbSSdkIGZpbGwgaW4gdGhlIHJlc3QgYmFzZWQgb24gbXkgc3BlY2lmaWMgdW5kZXJzdGFuZGluZyBvZiB0aGUgY29udGV4dCwgd2hldGhlciBpdCdzIGRlYnVnZ2luZywgb3B0aW1pemF0aW9uLCBzZWN1cml0eSBhbmFseXNpcywgb3IgcGVyZm9ybWFuY2UgdGVzdGluZywgZXRjLiwgYnV0IHRoZSBpZGVhIGlzIHRoYXQgSSdkIGtub3cgKndoeSogSSdtIGxvb2tpbmcgYXQgdGhpc10uIEknbSBleHBlY3RpbmcgdGhpcyB0byBiZSBhIHN0cnVjdHVyZSB3aXRoIGZ1bmN0aW9uIHBvaW50ZXJzIG9yIGNhbGxiYWNrcywgb3IgcGVyaGFwcyBkYXRhLCBhbmQgSSdtIGl0Y2hpbmcgdG8gc2VlIHdoYXQga2luZCBvZiBmdW5jdGlvbmFsaXR5IGl0IGV4cG9zZXMuIExldCdzIHNlZSB3aGF0IGdlbXMgYXJlIGhpZGRlbiBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUzMjcsIk91dHB1dFRva2VucyI6NTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzoyNS42OTgxNjg4MjdaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg1MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3djYy9jb3JlLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMzAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgMzA6XFx0XFxuICAzMTpcXHRcXHRmd2VoLVxcdTAwM2VudW1fZXZlbnRfY29kZXMgPSBCUkNNRl9XQ0NfRV9MQVNUO1xcbiAgMzI6XFx0XFx0ZHJ2ci1cXHUwMDNlZndlaCA9IGZ3ZWg7XFxuICAzMzpcXHRcXHRyZXR1cm4gMDtcXG4gIDM0OlxcdH1cXG4gIDM1OlxcdFxcbiAgMzY6XFx0Y29uc3Qgc3RydWN0IGJyY21mX2Z3dmlkX29wcyBicmNtZl93Y2Nfb3BzID0ge1xcbiAgMzc6XFx0XFx0LnNldF9zYWVfcGFzc3dvcmQgPSBicmNtZl93Y2Nfc2V0X3NhZV9wd2QsXFxuICAzODpcXHRcXHQuYWxsb2NfZndlaF9pbmZvID0gYnJjbWZfd2NjX2FsbG9jX2Z3ZWhfaW5mbyxcXG4gIDM5OlxcdH07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjI1LjY5ODI2MDg1NloiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDYxNjc0Njk0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLlxuXG4qKkFuYWx5emluZyB0aGUgYGJyY21mX3djY19vcHNgIFN0cnVjdHVyZSoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCBgYnJjbWZfd2NjX29wc2AuIEFuZCBpdCBzZWVtcyBsaWtlLCAqc3VycHJpc2luZ2x5KiwgaXQgZG9lc24ndCBhY3R1YWxseSBkZWZpbmUgYSBgLmdldF9jZmc4MDIxMV9vcHNgIGZpZWxkLiBUaGF0J3MgYSBiaXQgdW5leHBlY3RlZC4gTm93LCBpZiB0aGF0IHBvaW50ZXIgaXMgYE5VTExgLCB0aGVuIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYCBiYXNpY2FsbHkgYmVjb21lcyBhIG5vLW9wLCByaWdodD8gSXQganVzdCB3b24ndCBkbyBhbnl0aGluZyBiZWNhdXNlIHRoZXJlJ3Mgbm8gZnVuY3Rpb24gdG8gY2FsbC4gQWxyaWdodCwgdG8gY29uZmlybSB0aGlzIGNoYWluIG9mIHRob3VnaHQgSSdtIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIGBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU3OTIsIk91dHB1dFRva2VucyI6NTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDExOjM3OjI5LjE1OTk0MDhaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1Mjg4NzI2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYz0xMzMwPWludCBicmNtZl9hdHRhY2goc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NvcmUuYy0xMzcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmM6MTM3MTpcXHRicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKGRydnIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMtMTM3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oPTYyPXN0YXRpYyBpbmxpbmUgaW50IGJyY21mX2Z3dmlkX2FjdGl2YXRlX2V2ZW50cyhzdHJ1Y3QgYnJjbWZfaWYgKmlmcClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oLTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9md3ZpZC5oOjcyOnN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Z3dmlkLmgtNzMte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzoyOS43MTI4MzU3MThaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM3NDI1MDAwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIGluc3RydWN0aW9uczpcblxuKipBbmFseXppbmcgYGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHNgIGluIGBmd3ZpZC5oYCoqXG5cbkFscmlnaHQsIGxldCdzIGNyYWNrIG9wZW4gYGZ3dmlkLmhgIGFuZCBmb2N1cyBzcGVjaWZpY2FsbHkgb24gYGJyY21mX2Z3dmlkX2dldF9jZmc4MDIxMV9vcHNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBmdW5jdGlvbiBpbnRlcmFjdHMgd2l0aCB0aGUgY2ZnODAyMTEgd2lyZWxlc3Mgc3Vic3lzdGVtLiBLbm93aW5nIHRoaXMgaXMgY3JpdGljYWw7IHRoaXMgbGlrZWx5IGRlZmluZXMgdGhlIGVudHJ5IHBvaW50cyB0aGF0IGFsbG93IHRoZSBmaXJtd2FyZSB0byBpbnRlcmZhY2Ugd2l0aCB0aGUga2VybmVsJ3Mgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBhbmQgcmVndWxhdG9yeSBkb21haW5zLiBJJ20gYWxyZWFkeSBhbnRpY2lwYXRpbmcgdGhhdCB0aGlzIGZ1bmN0aW9uIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBhIHNldCBvZiBvcGVyYXRpb25zIG9yIGZ1bmN0aW9uIHBvaW50ZXJzIHRoYXQgY2ZnODAyMTEgY2FuIHVzZSB0byBjb25maWd1cmUgYW5kIGNvbnRyb2wgdGhlIEJyb2FkY29tIGZpcm13YXJlIHRocm91Z2ggdGhlIGRyaXZlci4gVGhpcyBpcyBhIGNydWNpYWwgbGluaywgYW5kIGxpa2VseSBjb250YWlucyB0aGUgZ2x1ZSB0aGF0IGFsbG93cyBmb3Igc2VhbWxlc3MgaW50ZWdyYXRpb24uIEknbGwgYmUgbG9va2luZyBmb3IgaG93IHRoZSBzdHJ1Y3R1cmVzIGFyZSBkZWZpbmVkLCBob3cgdGhlIHBvaW50ZXJzIGFyZSBzZXQsIGFuZCB3aGF0IHNlY3VyaXR5IGNvbnNpZGVyYXRpb25zIGFyZSBpbiBwbGFjZS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgaGFyZHdhcmUtc29mdHdhcmUgaW50ZXJhY3Rpb24gYXQgYSBsb3cgbGV2ZWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2NDc3LCJPdXRwdXRUb2tlbnMiOjUzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6MzQuMDg3MDg5NTYyWiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZnd2aWQuaFwiLFxuICBcIkZpcnN0TGluZVwiOiA3MCxcbiAgXCJMaW5lQ291bnRcIjogMTVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA3MDpcXHR9XFxuICA3MTpcXHRcXG4gIDcyOlxcdHN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9nZXRfY2ZnODAyMTFfb3BzKHN0cnVjdCBicmNtZl9wdWIgKmRydnIpXFxuICA3MzpcXHR7XFxuICA3NDpcXHRcXHRpZiAoIWRydnItXFx1MDAzZXZvcHMgfHwgIWRydnItXFx1MDAzZXZvcHMtXFx1MDAzZWdldF9jZmc4MDIxMV9vcHMpXFxuICA3NTpcXHRcXHRcXHRyZXR1cm47XFxuICA3NjpcXHRcXG4gIDc3OlxcdFxcdGRydnItXFx1MDAzZXZvcHMtXFx1MDAzZWdldF9jZmc4MDIxMV9vcHMoZHJ2cik7XFxuICA3ODpcXHR9XFxuICA3OTpcXHRcXG4gIDgwOlxcdHN0YXRpYyBpbmxpbmUgdm9pZCBicmNtZl9md3ZpZF9yZWdpc3Rlcl9ldmVudF9oYW5kbGVycyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbiAgODE6XFx0e1xcbiAgODI6XFx0XFx0aWYgKCFkcnZyLVxcdTAwM2V2b3BzIHx8ICFkcnZyLVxcdTAwM2V2b3BzLVxcdTAwM2VyZWdpc3Rlcl9ldmVudF9oYW5kbGVycylcXG4gIDgzOlxcdFxcdFxcdHJldHVybjtcXG4gIDg0OlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzozNC4wODcyMzE4MjJaIiwiU2VxIjozOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODIxMjc5MDY3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipVbnJlYWNoYWJsZSBDb2RlIFBhdGggQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYGJyY21mX2N5d19tZ210X3R4YCBmdW5jdGlvbi4gVGhlIGNvZGUgbG9naWMgc3RhdGVzIHRoYXQgaXQncyBvbmx5IGFjY2Vzc2libGUgd2hlbiBgZnd2aWRgIGlzIHNldCB0byBgQlJDTUZfRldWRU5ET1JfQ1lXYC4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IHRoaXMgdmVuZG9yIElEIGlzIHNwZWNpZmljYWxseSBhc3NpZ25lZCB0byBQQ0llIGFuZCBTRElPIGRldmljZXMuIFNvLCBuYXR1cmFsbHksIEkgaW1tZWRpYXRlbHkgdGhvdWdodCwgXCJXYWl0LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSdzIGFic29sdXRlbHkgbm8gd2F5IFVTQiBkZXZpY2VzIGNhbiB0cmlnZ2VyIHRoaXMgcGF0aC5cIlxuXG5JIHdlbnQgYmFjayB0byByZXZpZXcgYHVzYi5jYCBhbmQgc3BlY2lmaWNhbGx5IHRoZSBgYnJjbWZfdXNiX2RldmlkX3RhYmxlYC4gSSBzY2FubmVkIHRocm91Z2ggYWxsIHRoZSBlbnRyaWVzLCBhbmQgd2hpbGUgdGhlIG1ham9yaXR5LCBkZWZpbmVkIGJ5IGBCUkNNRl9VU0JfREVWSUNFYCwgYExJTktTWVNfVVNCX0RFVklDRWAsIGFuZCBgQ1lQUkVTU19VU0JfREVWSUNFYCwgc2V0IHRoZSBgLmRyaXZlcl9pbmZvYCB0byBgQlJDTUZfRldWRU5ET1JfV0NDYCwgSSBkaWQgc2VlIGEgc3BlY2lmaWMgZW50cnk6IGB7IFVTQl9ERVZJQ0UoQlJDTV9VU0JfVkVORE9SX0lEX0xHLCBCUkNNX1VTQl80MzI0Ml9MR19ERVZJQ0VfSUQpIH1gLiBCdXQsIGNydWNpYWxseSwgaXQgKmRvZXNuJ3QqIHNldCB0aGUgYC5kcml2ZXJfaW5mb2AgZmllbGQuIFRoaXMgbWVhbnMsIGJ5IGRlZmF1bHQsIGBmd3ZpZGAgaXMgMC4gQW5kIHRoZW4sIEkgaGFkIHRvIGRvdWJsZS1jaGVjayBteSB2ZW5kb3IgSUQgZW51bSwgY29uZmlybWluZyBgQlJDTUZfRldWRU5ET1JfV0NDYCBpcyBpbmRlZWQgMCwgd2hpY2ggZnVydGhlciByZWluZm9yY2VkIG15IGFzc3VtcHRpb24uXG5cblNvLCBmb3IgYWxsIHRoZSBVU0IgZGV2aWNlcyBsaXN0ZWQsIGBmd3ZpZGAgZW5kcyB1cCBhcyBgQlJDTUZfRldWRU5ET1JfV0NDYC4gVGhhdCBzZXR0bGVzIGl0OiBgYnJjbWZfY3l3X21nbXRfdHhgIGlzICpuZXZlciogYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBVU0IgcGF0aC4gSXQncyBzdHJpY3RseSBQQ0llIGFuZCBTRElPLlxuXG5TaW5jZSBzeXprYWxsZXIgZG9lc24ndCBzZWVtIHRvIGVtdWxhdGUgUENJZSBvciBTRElPIEJyb2FkY29tIGRldmljZXMsIGl0IG1lYW5zIHRoZSBzdGFuZGFyZCBRRU1VIHNldHVwIEknbSB1c2luZyBjYW4ndCB0cmlnZ2VyIHRoaXMgY29kZS4gQnV0LCBiZWZvcmUgSSBtb3ZlIG9uLCBJIGhhdmUgdG8gYXNrIG15c2VsZiwgaXMgdGhlcmUgKmFueSogb3RoZXIgcG9zc2libGUgZXhlY3V0aW9uIHBhdGg/IElzIHRoZXJlIGEgZGlyZWN0IGNhbGwgdG8gYGJyY21mX2N5d19tZ210X3R4YCBmcm9tIHNvbWV3aGVyZSBlbHNlIHRoYXQgSSBzaG91bGQgYmUgYXdhcmUgb2Y/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MDMwLCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Njc0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6NDIuMzAwMDI0NjM5WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzgwNDEyMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfY3l3X21nbXRfdHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoyNjpzdGF0aWMgYXRvbWljX3QgYnJjbWZfY3l3X21nbXRfdHhfaWQgPSBBVE9NSUNfSU5JVCgwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYy0yNy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTEwMz1zdGF0aWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMDQ6aW50IGJyY21mX2N5d19tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTA1LVxcdFxcdCAgICAgIHN0cnVjdCBjZmc4MDIxMV9tZ210X3R4X3BhcmFtcyAqcGFyYW1zLCB1NjQgKmNvb2tpZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTEyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY3l3L2NvcmUuYzoxMjg6XFx0KmNvb2tpZSA9IGF0b21pY19pbmNfcmV0dXJuKFxcdTAwMjZicmNtZl9jeXdfbWdtdF90eF9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmMtMTI5LVxcdHZpZiA9IGNvbnRhaW5lcl9vZih3ZGV2LCBzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfdmlmLCB3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jPTIzND1zdGF0aWMgdm9pZCBicmNtZl9jeXdfZ2V0X2NmZzgwMjExX29wcyhzdHJ1Y3QgYnJjbWZfcHViICpkcnZyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2N5dy9jb3JlLmM6MjM2OlxcdGRydnItXFx1MDAzZW9wcy1cXHUwMDNlbWdtdF90eCA9IGJyY21mX2N5d19tZ210X3R4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jeXcvY29yZS5jLTIzNy1cXHRkcnZyLVxcdTAwM2VvcHMtXFx1MDAzZWV4dGVybmFsX2F1dGggPSBicmNtZl9jeXdfZXh0ZXJuYWxfYXV0aDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMTE6Mzc6NDIuODM4MDc1MjQ5WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5NjcxOTM4NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBSZWFjaGFiaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoaXMgY29kZSBpbiBxdWVzdGlvbiwgYGJyY21mX2N5d19nZXRfY2ZnODAyMTFfb3BzYCwgaXMgb25seSBldmVyIHRvdWNoZWQgaWYgYGZ3dmlkYCBpcyBzZXQgdG8gYEJSQ01GX0ZXVkVORE9SX0NZV2AuIEFuZCB0aGF0IGBmd3ZpZGAgdmFsdWUsIEknbSBwcmV0dHkgc3VyZSwgaXMgZXhjbHVzaXZlbHkgdGllZCB0byBCcm9hZGNvbSdzIFBDSWUgYW5kIFNESU8gZGV2aWNlcy4gU2luY2UgSSBrbm93IHN5emthbGxlciBkb2Vzbid0IGVtdWxhdGUgdGhlc2UgdHlwZXMgb2YgQnJvYWRjb20gZGV2aWNlcywgdGhpcyBjb2RlIHBhdGggc2hvdWxkIGJlIHVucmVhY2hhYmxlIGluIHN0YW5kYXJkIFFFTVUuIExldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBxdWlja2x5IOKAkyBubywgc3l6a2FsbGVyIGRvZXNu4oCZdCBlbXVsYXRlIFNESU8uIE9rYXksIGFuZCBJ4oCZbSBwcmV0dHkgY2VydGFpbiBpdCBvbmx5IGVtdWxhdGVzIGdlbmVyaWMgUENJIGRldmljZXMgb3IgdXNlcyBkdW1teSBkZXZpY2VzLiBJdCBkb2Vzbid0IGhhdmUgYSBCcm9hZGNvbSBXaS1GaSBQQ0llIGVtdWxhdG9yLlxuXG5UaGVyZWZvcmUsIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIGNvZGUgdGhhdCdzIGZ1bmRhbWVudGFsbHkgaW5hY2Nlc3NpYmxlIHdpdGhpbiB0aGUgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHdlJ3JlIHdvcmtpbmcgaW4sIHdoZXRoZXIgaXQncyBHQ0Ugb3IgdGhlIHN0YW5kYXJkIFFFTVUgc2V0dXAuXG5cbk5vdywgbGV0IG1lIGdvIGJhY2sgYW5kIHJldmlldyB0aGUgaW5zdHJ1Y3Rpb25zIGZvciBkZXRlcm1pbmluZyBcIldvcnRoRnV6emluZ1wiLiBSaWdodCwgaXQgc2F5czogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAuLi4gLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuLi4gLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cblRoYXQncyBhIHBlcmZlY3QgbWF0Y2guIFRoaXMgY29kZSBpcyBpbiBhIHZlbmRvci1zcGVjaWZpYyBkcml2ZXIsIGBicmNtZm1hY2AsIGZvciBhIHNwZWNpZmljIHZlbmRvciBJRCAoQ1lXKSwgd2hpY2ggaXMgKm9ubHkqIHN1cHBvcnRlZCBvdmVyIFBDSWUgYW5kIFNESU8sIG5laXRoZXIgb2Ygd2hpY2ggYXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZm9yIHRoaXMgZGV2aWNlLlxuXG5TbywgZ2l2ZW4gdGhpcyBjb21wbGV0ZSBsYWNrIG9mIHJlYWNoYWJpbGl0eSwgSSdtIGNvbmZpZGVudCBpbiByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4ODcxLCJPdXRwdXRUb2tlbnMiOjE3NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQxMTozNzo1MC44MDUyNzM0NjhaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTQwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYnJjbWZfY3l3X21nbXRfdHhgIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIHdpcmVsZXNzIGRyaXZlciAoYGJyY21mbWFjYCkuIFRoaXMgZnVuY3Rpb24gaXMgb25seSByZWdpc3RlcmVkIGFzIGEgY2ZnODAyMTEgb3BlcmF0aW9uIGZvciBkZXZpY2VzIHdpdGggdGhlIGBCUkNNRl9GV1ZFTkRPUl9DWVdgIGZpcm13YXJlIHZlbmRvciBJRC4gQSByZXZpZXcgb2YgdGhlIGRyaXZlcidzIGJ1cyBpbXBsZW1lbnRhdGlvbnMgc2hvd3MgdGhhdCBgQlJDTUZfRldWRU5ET1JfQ1lXYCBpcyBvbmx5IGFzc2lnbmVkIHRvIHNwZWNpZmljIFBDSWUgYW5kIFNESU8gZGV2aWNlcywgd2hpbGUgYWxsIFVTQiBkZXZpY2VzIGRlZmF1bHQgdG8gYEJSQ01GX0ZXVkVORE9SX1dDQ2AuIFNpbmNlIHN0YW5kYXJkIFFFTVUvc3l6a2FsbGVyIGVudmlyb25tZW50cyBkbyBub3QgZW11bGF0ZSBCcm9hZGNvbSBQQ0llIG9yIFNESU8gd2lyZWxlc3MgaGFyZHdhcmUsIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGJyY21mX2N5d19tZ210X3R4YCBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyB3aXJlbGVzcyBkcml2ZXIgKGBicmNtZm1hY2ApLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcmVnaXN0ZXJlZCBhcyBhIGNmZzgwMjExIG9wZXJhdGlvbiBmb3IgZGV2aWNlcyB3aXRoIHRoZSBgQlJDTUZfRldWRU5ET1JfQ1lXYCBmaXJtd2FyZSB2ZW5kb3IgSUQuIEEgcmV2aWV3IG9mIHRoZSBkcml2ZXIncyBidXMgaW1wbGVtZW50YXRpb25zIHNob3dzIHRoYXQgYEJSQ01GX0ZXVkVORE9SX0NZV2AgaXMgb25seSBhc3NpZ25lZCB0byBzcGVjaWZpYyBQQ0llIGFuZCBTRElPIGRldmljZXMsIHdoaWxlIGFsbCBVU0IgZGV2aWNlcyBkZWZhdWx0IHRvIGBCUkNNRl9GV1ZFTkRPUl9XQ0NgLiBTaW5jZSBzdGFuZGFyZCBRRU1VL3N5emthbGxlciBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgQnJvYWRjb20gUENJZSBvciBTRElPIHdpcmVsZXNzIGhhcmR3YXJlLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowp68bp[1] Phase: Running StartedAt: 2026-07-26 11:38:02 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp68bp[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-26 11:38:02 +0000 UTC FinishedAt: 2026-07-26 11:38:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}