Name: series-workflowtfdcr Phase: Failed StartedAt: 2026-08-11 16:43:42 +0000 UTC FinishedAt: 2026-08-11 17:32:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtfdcr[0] Phase: Succeeded StartedAt: 2026-08-11 16:43:42 +0000 UTC FinishedAt: 2026-08-11 17:32:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtfdcr[0].run-triage Phase: Succeeded StartedAt: 2026-08-11 16:43:42 +0000 UTC FinishedAt: 2026-08-11 17:32:16 +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+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHByb2JlIGFuZCBmaXJtd2FyZSBsb2FkaW5nIGZ1bmN0aW9ucyBvZiB0aGUgQWlyb2hhIE5QVSBwbGF0Zm9ybSBkcml2ZXIgKGZvciBBaXJvaGEgRU43NTgxIFNvQykuIFBsYXRmb3JtIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIFNvQ3MgYXJlIG5vdCByZWFjaGFibGUgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgbGltaXRlZCB0byBlcnJvciBsb2dnaW5nIChkZXZfZXJyX3Byb2JlKSBhbmQgYSBtaW5vciBBUEkgY2hhbmdlIChyZXF1ZXN0X2Zpcm13YXJlIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5ZjRlN2I1Mzk2ZjQ1OGEwN2VkNDhhNzA0NWM3MDgwYTRkNGViZDExXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTc6MzE6MzggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmNcbmluZGV4IGI2NzliZWQ5NTJkZTMuLmRlNzUzNzZkYjE5NDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG5AQCAtMjAyLDkgJiM0MzsyMDIsMTAgQEAgc3RhdGljIGludCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG4gXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xuIFx0aW50IHJldDtcbiBcbi1cdHJldCA9IHJlcXVlc3RfZmlybXdhcmUoXHUwMDI2ZncsIGZ3X25hbWUsIGRldik7XG4mIzQzO1x0cmV0ID0gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QoXHUwMDI2ZncsIGZ3X25hbWUsIGRldik7XG4gXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0ID09IC1FTk9FTlQgPyAtRVBST0JFX0RFRkVSIDogcmV0O1xuJiM0MztcdFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQgPT0gLUVOT0VOVCA/IC1FUFJPQkVfREVGRVIgOiByZXQsXG4mIzQzO1x0XHRcdFx0ICAgICBcJiMzNDtmYWlsZWQgdG8gbG9hZCAlc1xcblwmIzM0OywgZndfbmFtZSk7XG4gXG4gXHRpZiAoZnctXHUwMDNlc2l6ZSBcdTAwM2UgZndfbWF4X3NpemUpIHtcbiBcdFx0ZGV2X2VycihkZXYsIFwmIzM0OyVzOiBmdyBzaXplIHRvbyBvdmVybGltaXQgKCV6dSlcXG5cJiMzNDssXG5AQCAtMjMwLDcgJiM0MzsyMzEsOCBAQCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG4gXHRyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19hcnJheShkZXYtXHUwMDNlb2Zfbm9kZSwgXCYjMzQ7ZmlybXdhcmUtbmFtZVwmIzM0OyxcbiBcdFx0XHRcdFx0ICAgIGZ3X25hbWVzLCBBUlJBWV9TSVpFKGZ3X25hbWVzKSk7XG4gXHRpZiAocmV0ICE9IEFSUkFZX1NJWkUoZndfbmFtZXMpKVxuLVx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCxcbiYjNDM7XHRcdFx0XHQgICAgIFwmIzM0O2ludmFsaWQgZmlybXdhcmUtbmFtZSBwcm9wZXJ0eVxcblwmIzM0Oyk7XG4gXG4gXHRyZXQgPSBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBhZGRyLCBmd19uYW1lc1swXSxcbiBcdFx0XHRcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuQEAgLTc3Miw3ICYjNDM7Nzc0LDcgQEAgc3RhdGljIGludCBhaXJvaGFfbnB1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXG4gXHRlcnIgPSBhaXJvaGFfbnB1X3J1bl9maXJtd2FyZShkZXYsIGJhc2UsIFx1MDAyNnJlcyk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIGVyciwgXCYjMzQ7ZmFpbGVkIHRvIHJ1biBucHUgZmlybXdhcmVcXG5cJiMzNDspO1xuJiM0MztcdFx0cmV0dXJuIGVycjtcbiBcbiBcdHJlZ21hcF93cml0ZShucHUtXHUwMDNlcmVnbWFwLCBSRUdfQ1JfTlBVX01JQigxMCksXG4gXHRcdCAgICAgcmVzLnN0YXJ0ICYjNDM7IE5QVV9FTjc1ODFfRklSTVdBUkVfUlYzMl9NQVhfU0laRSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwcm9iZSBhbmQgZmlybXdhcmUgbG9hZGluZyBmdW5jdGlvbnMgb2YgdGhlIEFpcm9oYSBOUFUgcGxhdGZvcm0gZHJpdmVyIChmb3IgQWlyb2hhIEVONzU4MSBTb0MpLiBQbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBTb0NzIGFyZSBub3QgcmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbW9zdGx5IGxpbWl0ZWQgdG8gZXJyb3IgbG9nZ2luZyAoZGV2X2Vycl9wcm9iZSkgYW5kIGEgbWlub3IgQVBJIGNoYW5nZSAocmVxdWVzdF9maXJtd2FyZSB0byByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWY0ZTdiNTM5NmY0NThhMDdlZDQ4YTcwNDVjNzA4MGE0ZDRlYmQxMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDExIDE3OjMxOjM4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMKaW5kZXggYjY3OWJlZDk1MmRlMy4uZGU3NTM3NmRiMTk0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jCkBAIC0yMDIsOSAmIzQzOzIwMiwxMCBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkciwKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCWludCByZXQ7CiAKLQlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZhbXA7ZncsIGZ3X25hbWUsIGRldik7CiYjNDM7CXJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KCZhbXA7ZncsIGZ3X25hbWUsIGRldik7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldCA9PSAtRU5PRU5UID8gLUVQUk9CRV9ERUZFUiA6IHJldDsKJiM0MzsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0ID09IC1FTk9FTlQgPyAtRVBST0JFX0RFRkVSIDogcmV0LAomIzQzOwkJCQkgICAgICYjMzQ7ZmFpbGVkIHRvIGxvYWQgJXNcbiYjMzQ7LCBmd19uYW1lKTsKIAogCWlmIChmdy0mZ3Q7c2l6ZSAmZ3Q7IGZ3X21heF9zaXplKSB7CiAJCWRldl9lcnIoZGV2LCAmIzM0OyVzOiBmdyBzaXplIHRvbyBvdmVybGltaXQgKCV6dSlcbiYjMzQ7LApAQCAtMjMwLDcgJiM0MzsyMzEsOCBAQCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsCiAJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfYXJyYXkoZGV2LSZndDtvZl9ub2RlLCAmIzM0O2Zpcm13YXJlLW5hbWUmIzM0OywKIAkJCQkJICAgIGZ3X25hbWVzLCBBUlJBWV9TSVpFKGZ3X25hbWVzKSk7CiAJaWYgKHJldCAhPSBBUlJBWV9TSVpFKGZ3X25hbWVzKSkKLQkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1FSU5WQUwsCiYjNDM7CQkJCSAgICAgJiMzNDtpbnZhbGlkIGZpcm13YXJlLW5hbWUgcHJvcGVydHlcbiYjMzQ7KTsKIAogCXJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIGZ3X25hbWVzWzBdLAogCQkJCSAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpOwpAQCAtNzcyLDcgJiM0Mzs3NzQsNyBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgJmFtcDtyZXMpOwogCWlmIChlcnIpCi0JCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgZXJyLCAmIzM0O2ZhaWxlZCB0byBydW4gbnB1IGZpcm13YXJlXG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gZXJyOwogCiAJcmVnbWFwX3dyaXRlKG5wdS0mZ3Q7cmVnbWFwLCBSRUdfQ1JfTlBVX01JQigxMCksCiAJCSAgICAgcmVzLnN0YXJ0ICYjNDM7IE5QVV9FTjc1ODFfRklSTVdBUkVfUlYzMl9NQVhfU0laRSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTQKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAzMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBaXJvaGEgTlBVIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYGFpcm9oYV9ucHUuY2AgZHJpdmVyLiBTZWVtcyBsaWtlIHRoZXkmIzM5O3JlIHByaW1hcmlseSBmb2N1c2luZyBvbiBlcnJvciBoYW5kbGluZyBhbmQgaW1wcm92aW5nIGZpcm13YXJlIGxvYWRpbmcuIFRoZSBrZXkgY2hhbmdlcyBhcmU6IHJlcGxhY2luZyBgcmVxdWVzdF9maXJtd2FyZWAgd2l0aCBgcmVxdWVzdF9maXJtd2FyZV9kaXJlY3RgLCBhbmQgdGhlbiBzb21lIGFkZGl0aW9ucyBhbmQgcmVtb3ZhbHMgb2YgYGRldl9lcnJfcHJvYmVgIGNhbGxzLiBJdCBhcHBlYXJzIHRoZXkgYXJlIG5vdyB1c2luZyBgZGV2X2Vycl9wcm9iZWAgd2hlcmUgYXBwcm9wcmlhdGUgYW5kIHJlbW92aW5nIGl0IHdoZXJlIHRoZSBmdW5jdGlvbiBpdHNlbGYgaGFuZGxlcyB0aGUgZXJyb3IgYW5kIHJldHVybnMuCgpGaXJzdCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgd2hhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoOiB0aGlzIGlzIGFuIEFpcm9oYSBFTjc1ODEgU29DIG5ldHdvcmsgZHJpdmVyLiBSaWdodCwgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLCB3aGljaCB1c3VhbGx5IG1lYW5zIGl0JiMzOTtzIHByZXR0eSB0aWdodGx5IGNvdXBsZWQgdG8gdGhhdCBzcGVjaWZpYyBoYXJkd2FyZS4gR2V0dGluZyB0aGlzIHRoaW5nIHRvIHRyaWdnZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgd291bGQgbGlrZWx5IGJlIHRyaWNreSwgdW5sZXNzIHRoZXJlJiMzOTtzIGEgc3BlY2lmaWMgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIFNvQy4gVGhlIGBhaXJvaGFfbnB1X3Byb2JlYCBmdW5jdGlvbiB0YWtlcyBhIGBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2YCB3aGljaCBpcyBhIGdvb2QgY2x1ZSB0aGF0IGl0JiMzOTtzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaGFyZHdhcmUuCgpTbywgaXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/IFRoZSBjaGFuZ2VzIGFyZSBtYWlubHkgY29uY2VybmVkIHdpdGggYmV0dGVyIGVycm9yIGxvZ2dpbmcgYW5kIHRoZSBmaXJtd2FyZSBsb2FkaW5nIG1lY2hhbmlzbS4gU3dpdGNoaW5nIHRvIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAgaXMgaW50ZXJlc3RpbmcgLSBpdCBhdm9pZHMgdGhhdCB1c2VyLW1vZGUgaGVscGVyIGZhbGxiYWNrLiBUaGlzIG1pZ2h0IG1ha2UgdGhlIGNvZGUgbW9yZSBlZmZpY2llbnQsIG9yIGV2ZW4gZXhwb3NlIG5ldyBhdHRhY2sgc3VyZmFjZXMsIGJ1dCB0aGUgcHJpbWFyeSBmb2N1cyBzZWVtcyB0byBiZSBvbiBoYXJkZW5pbmcgdGhlIGRyaXZlci4gSSB3aWxsIGhhdmUgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSB0byBjb25maXJtIHdoZXRoZXIgaXQgaXMgZWFzaWx5IGVuYWJsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YWlyb2hhX25wdSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNzAzIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU9OD1haXJvaGEtZXRoLSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gYWlyb2hhX3BwZV9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19ORVRfQUlST0hBX05QVSkgJiM0Mzs9IGFpcm9oYV9ucHUub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NjM4PXN0cnVjdCBhaXJvaGFfZXRoIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjQ2Olx0c3RydWN0IGFpcm9oYV9ucHUgX19yY3UgKm5wdTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM9MTA1PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTA6c3RydWN0IGFpcm9oYV9ucHVfZncge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xMTEtXHRjb25zdCBjaGFyICpuYW1lO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTU6c3RydWN0IGFpcm9oYV9ucHVfc29jX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTY6XHRzdHJ1Y3QgYWlyb2hhX25wdV9mdyBmd19ydjMyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTc6XHRzdHJ1Y3QgYWlyb2hhX25wdV9mdyBmd19kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xMTgtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTE1Nj1zdHJ1Y3Qgd2xhbl9tYm94X2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxNjM6c3RhdGljIGludCBhaXJvaGFfbnB1X3NlbmRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBmdW5jX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xNjQtXHRcdFx0ICAgICAgIHZvaWQgKnAsIGludCBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxOTk6c3RhdGljIGludCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIwMC1cdFx0XHRcdCAgICBjb25zdCBjaGFyICpmd19uYW1lLCBpbnQgZndfbWF4X3NpemUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz0yMjQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyMjU6YWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yMjYtXHRcdFx0XHQgIHZvaWQgX19pb21lbSAqYmFzZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjM3Olx0cmV0ID0gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKGRldiwgYWRkciwgZndfbmFtZXNbMF0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIzOC1cdFx0XHRcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyNDI6XHRyZXR1cm4gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKGRldiwgYmFzZSAmIzQzOyBSRUdfTlBVX0xPQ0FMX1NSQU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI0My1cdFx0XHRcdFx0ZndfbmFtZXNbMV0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI0NzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICpiYXNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDgtXHRcdFx0XHQgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQ5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjUwOlx0Y29uc3Qgc3RydWN0IGFpcm9oYV9ucHVfc29jX2RhdGEgKnNvYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjUxLVx0dm9pZCBfX2lvbWVtICphZGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjY1LVx0aWYgKG9mX2ZpbmRfcHJvcGVydHkoZGV2LVx1MDAzZW9mX25vZGUsIFwmIzM0O2Zpcm13YXJlLW5hbWVcJiMzNDssIE5VTEwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyNjY6XHRcdHJldHVybiBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoZGV2LCBhZGRyLCBiYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjY3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNjgtXHQvKiBMb2FkIHJ2MzIgbnB1IGZpcm13YXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI2OTpcdHJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIHNvYy1cdTAwM2Vmd19ydjMyLm5hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI3MC1cdFx0XHRcdCAgICAgICBzb2MtXHUwMDNlZndfcnYzMi5tYXhfc2l6ZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNzQtXHQvKiBMb2FkIGRhdGEgbnB1IGZpcm13YXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI3NTpcdHJldHVybiBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBiYXNlICYjNDM7IFJFR19OUFVfTE9DQUxfU1JBTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjc2LVx0XHRcdFx0XHRzb2MtXHUwMDNlZndfZGF0YS5uYW1lLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyODA6c3RhdGljIGlycXJldHVybl90IGFpcm9oYV9ucHVfbWJveF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKm5wdV9pbnN0YW5jZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjgxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjgyOlx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdSA9IG5wdV9pbnN0YW5jZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjgzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyOTU6c3RhdGljIHZvaWQgYWlyb2hhX25wdV93ZHRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI5Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI5NzpcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI5ODpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI5OS1cdHZvaWQgKmR1bXA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjMwMzpcdGNvcmUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGFpcm9oYV9ucHVfY29yZSwgd2R0X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMDQtXHRucHUgPSBjb3JlLVx1MDAzZW5wdTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzE4OnN0YXRpYyBpcnFyZXR1cm5fdCBhaXJvaGFfbnB1X3dkdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNvcmVfaW5zdGFuY2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMxOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjMyMDpcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmUgPSBjb3JlX2luc3RhbmNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozMjE6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gY29yZS1cdTAwM2VucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMyMi1cdGludCBjID0gY29yZSAtIFx1MDAyNm5wdS1cdTAwM2Vjb3Jlc1swXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzMzOnN0YXRpYyBpbnQgYWlyb2hhX25wdV9wcGVfaW5pdChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMzQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozNDc6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzQ4LVx0XHRcdFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM1NDpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2RlaW5pdChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozNjY6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzY3LVx0XHRcdFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM3MzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2ZsdXNoX3NyYW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNzQtXHRcdFx0XHRcdCAgICAgZG1hX2FkZHJfdCBmb2VfYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzkwOlx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM5MS1cdFx0XHRcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozOTc6c3RhdGljIGludCBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzk4LVx0XHRcdFx0ICAgICAgIGRtYV9hZGRyX3QgZm9lX2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQxNTpcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MTYtXHRcdFx0XHQgIHNpemVvZigqcHBlX2RhdGEpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDI0Olx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQyNS1cdFx0XHRcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0MzI6c3RhdGljIGludCBhaXJvaGFfbnB1X3BwZV9zdGF0c19zZXR1cChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MzMtXHRcdFx0XHQgICAgICBkbWFfYWRkcl90IGZvZV9zdGF0c19hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0NDc6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ4LVx0XHRcdFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00NjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQ2MzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfd2xhbl9tc2dfc2VuZChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgaWZpbmRleCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDY0Olx0XHRcdFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgZnVuY19pZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDY1LVx0XHRcdFx0ICAgIHZvaWQgKmRhdGEsIGludCBkYXRhX2xlbiwgZ2ZwX3QgZ2ZwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0ODA6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfV0lGSSwgd2xhbl9kYXRhLCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00ODEtXHRrZnJlZSh3bGFuX2RhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0ODY6c3RhdGljIGludCBhaXJvaGFfbnB1X3dsYW5fbXNnX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgaWZpbmRleCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDg3Olx0XHRcdFx0ICAgZW51bSBhaXJvaGFfbnB1X3dsYW5fZ2V0X2NtZCBmdW5jX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00ODgtXHRcdFx0XHQgICB2b2lkICpkYXRhLCBpbnQgZGF0YV9sZW4sIGdmcF90IGdmcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTAyOlx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1dJRkksIHdsYW5fZGF0YSwgbGVuKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTAzLVx0aWYgKCFlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz01MTA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTE6YWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTEyLVx0XHRcdFx0ICAgIGludCBpZmluZGV4LCBjb25zdCBjaGFyICpuYW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTM6XHRcdFx0XHQgICAgZW51bSBhaXJvaGFfbnB1X3dsYW5fc2V0X2NtZCBmdW5jX2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTI1LVx0dmFsID0gcmVzLnN0YXJ0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MjY6XHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kKG5wdSwgaWZpbmRleCwgZnVuY19pZCwgXHUwMDI2dmFsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MjctXHRcdFx0XHRcdHNpemVvZih2YWwpLCBHRlBfS0VSTkVMKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTMwOnN0YXRpYyBpbnQgYWlyb2hhX25wdV93bGFuX2luaXRfbWVtb3J5KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUzMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjUzMjpcdGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgY21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX05QVV9CQU5EMF9PTkNQVTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTMzLVx0dTMyIHZhbCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjUzNjpcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9tc2dfc2VuZChucHUsIDEsIGNtZCwgXHUwMDI2dmFsLCBzaXplb2YodmFsKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTM3LVx0XHRcdFx0ICAgICAgIEdGUF9LRVJORUwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTQxLVx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX1RYX0JVRl9DSEVDS19BRERSO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NDI6XHRlcnIgPSBhaXJvaGFfbnB1X3dsYW5fc2V0X3Jlc2VydmVkX21lbW9yeShucHUsIDAsIFwmIzM0O3R4LWJ1ZmlkXCYjMzQ7LCBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NDMtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTQ2LVx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX1BLVF9CVUZfQUREUjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTQ3Olx0ZXJyID0gYWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkobnB1LCAwLCBcJiMzNDtwa3RcJiMzNDssIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU0OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NTEtXHRjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfVFhfUEtUX0JVRl9BRERSO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NTI6XHRlcnIgPSBhaXJvaGFfbnB1X3dsYW5fc2V0X3Jlc2VydmVkX21lbW9yeShucHUsIDAsIFwmIzM0O3R4LXBrdFwmIzM0OywgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTUzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU1OC1cdFx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX0RSQU1fQkFfTk9ERV9BRERSO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NTk6XHRcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9zZXRfcmVzZXJ2ZWRfbWVtb3J5KG5wdSwgMCwgXCYjMzQ7YmFcJiMzNDssIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2MC1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2NC1cdGNtZCA9IFdMQU5fRlVOQ19TRVRfV0FJVF9JU19GT1JDRV9UT19DUFU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU2NTpcdHJldHVybiBhaXJvaGFfbnB1X3dsYW5fbXNnX3NlbmQobnB1LCAwLCBjbWQsIFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2Ni1cdFx0XHRcdFx0R0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU2OTpzdGF0aWMgdTMyIGFpcm9oYV9ucHVfd2xhbl9xdWV1ZV9hZGRyX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcWlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NzAtXHRcdFx0XHRcdCAgYm9vbCB4bWl0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1Nzg6c3RhdGljIHZvaWQgYWlyb2hhX25wdV93bGFuX2lycV9zdGF0dXNfc2V0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU3OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01ODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU4MzpzdGF0aWMgdTMyIGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTg0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTkxOnN0YXRpYyB2b2lkIGFpcm9oYV9ucHVfd2xhbl9pcnFfZW5hYmxlKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01OTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1OTY6c3RhdGljIHZvaWQgYWlyb2hhX25wdV93bGFuX2lycV9kaXNhYmxlKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01OTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2MDE6c3RydWN0IGFpcm9oYV9ucHUgKmFpcm9oYV9ucHVfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjAyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwNC1cdHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjYwNTpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY0OC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY0OTpFWFBPUlRfU1lNQk9MX0dQTChhaXJvaGFfbnB1X2dldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjUxOnZvaWQgYWlyb2hhX25wdV9wdXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1NS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY1NjpFWFBPUlRfU1lNQk9MX0dQTChhaXJvaGFfbnB1X3B1dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSBlbjc1ODFfbnB1X3NvY19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NTktXHQuZndfcnYzMiA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSBhbjc1ODNfbnB1X3NvY19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NzAtXHQuZndfcnYzMiA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjgwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX2Fpcm9oYV9ucHVfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjgxLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2Fpcm9oYSxlbjc1ODEtbnB1XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmVuNzU4MV9ucHVfc29jX2RhdGEgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY4NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2ODU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgb2ZfYWlyb2hhX25wdV9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM9Njg3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyByZWdtYXBfY29uZmlnID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2OTU6c3RhdGljIGludCBhaXJvaGFfbnB1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5Ny1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2OTg6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02OTktXHRzdHJ1Y3QgcmVzb3VyY2UgcmVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzEyLVx0bnB1LVx1MDAzZWRldiA9IGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzEzOlx0bnB1LVx1MDAzZW9wcy5wcGVfaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2luaXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxNDpcdG5wdS1cdTAwM2VvcHMucHBlX2RlaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2RlaW5pdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzE1Olx0bnB1LVx1MDAzZW9wcy5wcGVfaW5pdF9zdGF0cyA9IGFpcm9oYV9ucHVfcHBlX3N0YXRzX3NldHVwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTY6XHRucHUtXHUwMDNlb3BzLnBwZV9mbHVzaF9zcmFtX2VudHJpZXMgPSBhaXJvaGFfbnB1X3BwZV9mbHVzaF9zcmFtX2VudHJpZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxNzpcdG5wdS1cdTAwM2VvcHMucHBlX2ZvZV9jb21taXRfZW50cnkgPSBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxODpcdG5wdS1cdTAwM2VvcHMud2xhbl9pbml0X3Jlc2VydmVkX21lbW9yeSA9IGFpcm9oYV9ucHVfd2xhbl9pbml0X21lbW9yeTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzE5Olx0bnB1LVx1MDAzZW9wcy53bGFuX3NlbmRfbXNnID0gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjA6XHRucHUtXHUwMDNlb3BzLndsYW5fZ2V0X21zZyA9IGFpcm9oYV9ucHVfd2xhbl9tc2dfZ2V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjE6XHRucHUtXHUwMDNlb3BzLndsYW5fZ2V0X3F1ZXVlX2FkZHIgPSBhaXJvaGFfbnB1X3dsYW5fcXVldWVfYWRkcl9nZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcyMjpcdG5wdS1cdTAwM2VvcHMud2xhbl9zZXRfaXJxX3N0YXR1cyA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX3NldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzIzOlx0bnB1LVx1MDAzZW9wcy53bGFuX2dldF9pcnFfc3RhdHVzID0gYWlyb2hhX25wdV93bGFuX2lycV9zdGF0dXNfZ2V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjQ6XHRucHUtXHUwMDNlb3BzLndsYW5fZW5hYmxlX2lycSA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfZW5hYmxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjU6XHRucHUtXHUwMDNlb3BzLndsYW5fZGlzYWJsZV9pcnEgPSBhaXJvaGFfbnB1X3dsYW5faXJxX2Rpc2FibGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTcyNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTczOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzM5Olx0ZXJyID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwgYWlyb2hhX25wdV9tYm94X2hhbmRsZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0MC1cdFx0XHQgICAgICAgSVJRRl9TSEFSRUQsIFwmIzM0O2Fpcm9oYS1ucHUtbWJveFwmIzM0OywgbnB1KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0NC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUobnB1LVx1MDAzZWNvcmVzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzQ1Olx0XHRzdHJ1Y3QgYWlyb2hhX25wdV9jb3JlICpjb3JlID0gXHUwMDI2bnB1LVx1MDAzZWNvcmVzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjc1NDpcdFx0ZXJyID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwgYWlyb2hhX25wdV93ZHRfaGFuZGxlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzU1LVx0XHRcdFx0ICAgICAgIElSUUZfU0hBUkVELCBcJiMzNDthaXJvaGEtbnB1LXdkdFwmIzM0OywgY29yZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjc1OTpcdFx0SU5JVF9XT1JLKFx1MDAyNmNvcmUtXHUwMDNld2R0X3dvcmssIGFpcm9oYV9ucHVfd2R0X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NjAtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjc3NTpcdGVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgXHUwMDI2cmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzc2LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Nzk2Olx0aWYgKCFhaXJvaGFfbnB1X3dsYW5fbXNnX2dldChucHUsIDAsIFdMQU5fRlVOQ19HRVRfV0FJVF9OUFVfVkVSU0lPTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzk3LVx0XHRcdFx0ICAgICBcdTAwMjZ2YWwsIHNpemVvZih2YWwpLCBHRlBfS0VSTkVMKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODA2OnN0YXRpYyB2b2lkIGFpcm9oYV9ucHVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgwNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgwODpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODA5LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgxNTpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhaXJvaGFfbnB1X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE2Olx0LnByb2JlID0gYWlyb2hhX25wdV9wcm9iZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE3Olx0LnJlbW92ZSA9IGFpcm9oYV9ucHVfcmVtb3ZlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MTgtXHQuZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MTktXHRcdC5uYW1lID0gXCYjMzQ7YWlyb2hhLW5wdVwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIwOlx0XHQub2ZfbWF0Y2hfdGFibGUgPSBvZl9haXJvaGFfbnB1X21hdGNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjEtXHR9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz01OTg9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9mb2VfZmxvd19zdGF0X2VudHJ5X3Jlc2V0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjU5OTpcdFx0XHRcdFx0XHQgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtNjAwLVx0XHRcdFx0XHRcdCBpbnQgaW5kZXgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz02MDY9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9mb2VfZmxvd19zdGF0c19yZXNldChzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo2MDc6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy02MDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9NjE5PXN0YXRpYyB2b2lkIGFpcm9oYV9wcGVfZm9lX2Zsb3dfc3RhdHNfdXBkYXRlKHN0cnVjdCBhaXJvaGFfcHBlICpwcGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjYyMDpcdFx0XHRcdFx0ICAgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy02MjEtXHRcdFx0XHRcdCAgICAgc3RydWN0IGFpcm9oYV9mb2VfZW50cnkgKmh3ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTc1Nj1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2NvbW1pdF9lbnRyeShzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtNzYzLVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IHBwZS1cdTAwM2VldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjc2NDpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTc2NS1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MTI5Mj12b2lkIGFpcm9oYV9wcGVfZm9lX2VudHJ5X2dldF9zdGF0cyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLCB1MzIgaGFzaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEyOTYtXHRpbnQgcHBlX251bV9zdGF0c19lbnRyaWVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxMjk3Olx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTI5OC1cdHUzMiBpbmRleDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTEzNzA9c3RhdGljIGludCBhaXJvaGFfcHBlX2ZsdXNoX3NyYW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM4ODpzdGF0aWMgc3RydWN0IGFpcm9oYV9ucHUgKmFpcm9oYV9wcGVfbnB1X2dldChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMzg5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM5MDpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBhaXJvaGFfbnB1X2dldChldGgtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEzOTMtXHRcdHJlcXVlc3RfbW9kdWxlKFwmIzM0O2Fpcm9oYS1ucHVcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxMzk0Olx0XHRucHUgPSBhaXJvaGFfbnB1X2dldChldGgtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5NS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTE0MjM9c3RhdGljIGludCBhaXJvaGFfcHBlX29mZmxvYWRfc2V0dXAoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTQyNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE0MjU6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gYWlyb2hhX3BwZV9ucHVfZ2V0KGV0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0MjYtXHRzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlID0gZXRoLVx1MDAzZXBwZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0NTctZXJyb3JfbnB1X3B1dDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTQ1ODpcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0NTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNjUzPXZvaWQgYWlyb2hhX3BwZV9kZWluaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY1NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE2NTU6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNjU2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY2My1cdFx0bnB1LVx1MDAzZW9wcy5wcGVfZGVpbml0KG5wdSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE2NjQ6XHRcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE2NjUtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz04MDI9bXQ3Nl9kbWFfYWxsb2NfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE5LVx0ZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc19ucHVfdHgocSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjgyMDpcdFx0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTgyMS1cdGVsc2UgaWYgKG10NzZfcXVldWVfaXNfbnB1X3J4KHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4MjI6XHRcdHNpemUgPSBzaXplb2Yoc3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04MjMtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC03OC1cdGlmICgoX3EpLVx1MDAzZWZsYWdzIFx1MDAyNiBNVF9RRkxBR19OUFUpIHtcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjc5Olx0XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1x0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC04MC1cdFx0XHRcdFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtOTUtXHRpZiAoKF9xKS1cdTAwM2VmbGFncyBcdTAwMjYgTVRfUUZMQUdfTlBVKSB7XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaDo5NjpcdFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtOTctXHRcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD03MTU9c3RydWN0IG10NzZfbW1pbyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtNzI1LVx0c3RydWN0IGFpcm9oYV9wcGVfZGV2IF9fcmN1ICpwcGVfZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6NzI2Olx0c3RydWN0IGFpcm9oYV9ucHUgX19yY3UgKm5wdTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcyNy1cdHBoeXNfYWRkcl90IHBoeV9hZGRyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE3NDI9c3RhdGljIGlubGluZSBib29sIG10NzZfcHBlX2RldmljZV9hY3RpdmUoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NDc6c3RhdGljIGlubGluZSBpbnQgbXQ3Nl9ucHVfc2VuZF9tc2coc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgaW50IGlmaW5kZXgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxNzQ4Olx0XHRcdFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc0OS1cdFx0XHRcdCAgICB1MzIgdmFsLCBnZnBfdCBnZnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzUwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTE6XHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX3NlbmRfbXNnKG5wdSwgaWZpbmRleCwgY21kLCBcdTAwMjZ2YWwsIHNpemVvZih2YWwpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc1Mi1cdFx0XHRcdFx0Z2ZwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc1NTpzdGF0aWMgaW5saW5lIGludCBtdDc2X25wdV9nZXRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc1NjpcdFx0XHRcdCAgIGVudW0gYWlyb2hhX25wdV93bGFuX2dldF9jbWQgY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc1Ny1cdFx0XHRcdCAgIHUzMiAqdmFsLCBnZnBfdCBnZnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzU4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTk6XHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX2dldF9tc2cobnB1LCBpZmluZGV4LCBjbWQsIHZhbCwgc2l6ZW9mKCp2YWwpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc2MC1cdFx0XHRcdCAgICAgICBnZnApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz03MDc9c3RhdGljIHZvaWQgbXQ3OTk2X3J4X3BvbGxfY29tcGxldGUoc3RydWN0IG10NzZfZGV2ICptZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy03MTAtXHRpZiAocSA9PSBNVF9SWFFfTlBVMCB8fCBxID09IE1UX1JYUV9OUFUxKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6NzExOlx0XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTcxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzE0LVx0XHRpZiAobnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjcxNTpcdFx0XHRhaXJvaGFfbnB1X3dsYW5fZW5hYmxlX2lycShucHUsIHEgLSBNVF9SWFFfTlBVMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzE2LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz0xMT1zdGF0aWMgaW50IG10Nzk5Ml9ucHVfdHhyeF9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjEyOlx0XHRcdFx0XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTcyPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV90eHJ4X29mZmxvYWRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NzM6XHRcdFx0XHRcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM9MjAwPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjIwMTpcdFx0XHRcdCAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yMDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTI0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjI0MjpzdGF0aWMgaW50IG10Nzk5Ml9ucHVfcnhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTI0My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6Mjc3OnN0YXRpYyBpbnQgbXQ3OTk2X25wdV9yeGRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0zNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzozNDE6c3RhdGljIGludCBtdDc5OTZfbnB1X3R4ZF9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0zNDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQwMj1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfcnhfZXZlbnRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDAzOlx0XHRcdFx0ICAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy00MDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQzNz1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfc2V0X3BjaWVfYWRkcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDM4Olx0XHRcdFx0ICAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy00Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQ3MT1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfdHhfZG9uZV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzo0NzI6XHRcdFx0XHQgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNDczLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz01MTY9aW50IF9fbXQ3OTk2X25wdV9od19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01MTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NTE4Olx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTUxOS1cdGludCBpLCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTUzLVx0Zm9yIChpID0gTVRfUlhRX05QVTA7IGkgXHUwMDNjPSBNVF9SWFFfTlBVMTsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzo1NTQ6XHRcdGFpcm9oYV9ucHVfd2xhbl9lbmFibGVfaXJxKG5wdSwgaSAtIE1UX1JYUV9OUFUwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTU1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz01OTQ9aW50IG10Nzk5Nl9ucHVfaHdfc3RvcChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTk1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjU5NjpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01OTctXHRpbnQgaSwgZXJyID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jPTE3PWludCBtdDc2X25wdV9maWxsX3J4X3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxLVx0d2hpbGUgKHEtXHUwMDNlcXVldWVkIFx1MDAzYyBxLVx1MDAzZW5kZXNjIC0gMSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoyMjpcdFx0c3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MgKmRlc2MgPSAodm9pZCAqKXEtXHUwMDNlZGVzYztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjMtXHRcdHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplID0gXHUwMDI2cS1cdTAwM2VlbnRyeVtxLVx1MDAzZWhlYWRdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9NjI9c3RhdGljIHN0cnVjdCBza19idWZmICptdDc2X25wdV9kZXF1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtNjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzo2NjpcdHN0cnVjdCBhaXJvaGFfbnB1X3J4X2RtYV9kZXNjICpkZXNjID0gKHZvaWQgKilxLVx1MDAzZWRlc2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTY3LVx0aW50IGksIG5mcmFtZXMsIGluZGV4ID0gcS1cdTAwM2V0YWlsO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MTQ0PXN0YXRpYyBpbnQgbXQ3Nl9ucHVfcnhfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xNDctXHRlbnVtIG10NzZfcnhxX2lkIHFpZCA9IG5hcGkgLSBkZXYtXHUwMDNlbmFwaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MTQ4Olx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTQ5LVx0aW50IGRvbmUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MTgwPXN0YXRpYyBpcnFyZXR1cm5fdCBtdDc2X25wdV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpxX2luc3RhbmNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTg1LVx0aW50IGluZGV4ID0gcWlkIC0gTVRfUlhRX05QVTA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjE4NjpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTE4Ny1cdHUzMiBzdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjE5NTpcdHN0YXR1cyA9IGFpcm9oYV9ucHVfd2xhbl9nZXRfaXJxX3N0YXR1cyhucHUsIGluZGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MTk2Olx0YWlyb2hhX25wdV93bGFuX3NldF9pcnFfc3RhdHVzKG5wdSwgc3RhdHVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxOTg6XHRhaXJvaGFfbnB1X3dsYW5fZGlzYWJsZV9pcnEobnB1LCBpbmRleCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTE5OS1cdG5hcGlfc2NoZWR1bGUoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbcWlkXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0yMDY9aW50IG10NzZfbnB1X2RtYV9hZGRfYnVmKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxMC1cdHUxNiB0eHdpX2xlbiA9IG1pbl90KHUxNiwgcGh5LVx1MDAzZWRldi1cdTAwM2VkcnYtXHUwMDNldHh3aV9zaXplLCBOUFVfVFhXSV9MRU4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoyMTE6XHRzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyAqZGVzYyA9ICh2b2lkICopcS1cdTAwM2VkZXNjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0yMTItXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MjM0PXZvaWQgbXQ3Nl9ucHVfdHhkZXNjX2NsZWFudXAoc3RydWN0IG10NzZfcXVldWUgKnEsIGludCBpbmRleClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjM1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MjM2Olx0c3RydWN0IGFpcm9oYV9ucHVfdHhfZG1hX2Rlc2MgKmRlc2MgPSAodm9pZCAqKXEtXHUwMDNlZGVzYztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjM3LVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc2MjEKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAxMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBaXJvaGEgTlBVIERyaXZlciBMYW5kc2NhcGUqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBBaXJvaGEgTlBVIGRyaXZlci4gTXkgaW5pdGlhbCBtZW50YWwgbWFwIHNob3dzIGl0JiMzOTtzIGludGVncmF0ZWQgYWNyb3NzIGEgZmV3IGRpZmZlcmVudCBhcmVhcyBvZiB0aGUgbmV0d29ya2luZyBzdGFjay4gU3BlY2lmaWNhbGx5LCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jYCBhcmUgdXNpbmcgaXQsIHdoaWNoIGlzIGV4cGVjdGVkIGdpdmVuIHRoZSAmIzM0O2V0aGVybmV0JiMzNDsgY29udGV4dC4gSW50cmlndWluZ2x5LCBpdCYjMzk7cyAqYWxzbyogYmVpbmcgZW1wbG95ZWQgaW4gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIHNwYWNlLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuY2AuIFRoYXQmIzM5O3MgYSBwb2ludCBvZiBwb3RlbnRpYWwgc3luZXJneSBvciwgcGVyaGFwcywgYSBzbGlnaHRseSBtb3JlIGNvbXBsZXggYXJjaGl0ZWN0dXJlIHRvIHVuZGVyc3RhbmQuCgpUaGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgY29yZSBBaXJvaGEgTlBVIGRyaXZlciBmaWxlLCBgYWlyb2hhX25wdS5jYCwgaXMgc3RyYWlnaHRmb3J3YXJkIC0gaXQmIzM5O3MgY29udHJvbGxlZCBieSBgQ09ORklHX05FVF9BSVJPSEFfTlBVYC4gVGhhdCYjMzk7cyBnb29kOyBtYWtlcyBmb3IgZWFzeSBlbmFibGVtZW50IGFuZCBkaXNhYmxpbmcuCgpOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhci4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBkcml2ZXImIzM5O3MgZ2VuZXJhbCBjb25maWd1cmF0aW9uLCBJIG5lZWQgdG8gY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWdgLiBUaGF0JiMzOTtsbCBiZSB3aGVyZSB0aGUgb3ZlcmFyY2hpbmcgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGFyZSBkZWZpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O05FVF9BSVJPSEFfTlBVJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTg9aWYgTkVUX1ZFTkRPUl9BSVJPSEFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTExLVx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIE5QVSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc9MTg9Y29uZmlnIE5FVF9BSVJPSEFcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yMC1cdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6MjE6XHRzZWxlY3QgTkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTIyLVx0c2VsZWN0IFBBR0VfUE9PTFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTI3PWNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yOS1cdGJvb2wgXCYjMzQ7QWlyb2hhIGZsb3cgc3RhdHNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFx1MDAyNlx1MDAyNiBORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMzEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlPTg9YWlyb2hhLWV0aC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0FJUk9IQV9OUFUpICYjNDM7PSBhaXJvaGFfbnB1Lm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9NDA9Y29uZmlnIE1UNzZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQyOlx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc9MTY9Y29uZmlnIE1UNzk5Nl9OUFVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE4LVx0ZGVwZW5kcyBvbiBNVDc5OTZFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE5Olx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0yMC1cdHNlbGVjdCBNVDc2X05QVVxuLS1cbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oPTE2Nj1zdHJ1Y3QgYWlyb2hhX25wdSB7XG5pbmNsdWRlL2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaDoxNjc6I2lmIChJU19CVUlMVElOKENPTkZJR19ORVRfQUlST0hBX05QVSkgfHwgSVNfTU9EVUxFKENPTkZJR19ORVRfQUlST0hBX05QVSkpXG5pbmNsdWRlL2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaC0xNjgtXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XG4tLVxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmgtMjEwLVxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmg6MjExOiNpZiAoSVNfQlVJTFRJTihDT05GSUdfTkVUX0FJUk9IQV9OUFUpIHx8IElTX01PRFVMRShDT05GSUdfTkVUX0FJUk9IQV9OUFUpKVxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmgtMjEyLXN0cnVjdCBhaXJvaGFfbnB1ICphaXJvaGFfbnB1X2dldChzdHJ1Y3QgZGV2aWNlICpkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTczCgkJCQkJCQlvdXRwdXQ6IDExOQoJCQkJCQkJdGhvdWdodHM6IDUwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmc9ZmFsc2U6IEFpcm9oYSBOUFUgRHJpdmVyIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zIGZvciB0aGUgQWlyb2hhIE5QVSBkcml2ZXI6IGBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVgLCBgYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzYCwgYW5kIGBhaXJvaGFfbnB1X3Byb2JlYC4gVGhlIGtleSBjaGFuZ2VzIGhlcmUgYXJlIGEgc3dpdGNoIGZyb20gYHJlcXVlc3RfZmlybXdhcmVgIHRvIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAsIGFuZCBzb21lIGFkZGl0aW9ucyBvciByZW1vdmFscyBvZiBgZGV2X2Vycl9wcm9iZWAuCgpGcmFua2x5LCB0aGlzIGRvZXNuJiMzOTt0IHNjcmVhbSAmIzM0O2Z1enppbmcgdGFyZ2V0JiMzNDsgdG8gbWUuIFRoZSBhbHRlcmF0aW9ucyBhcmUgcHJpbWFyaWx5IGFyb3VuZCBlcnJvciBoYW5kbGluZyBhbmQgbG9nZ2luZyDigJMgdGhvc2UgYGRldl9lcnJfcHJvYmVgIGFkZGl0aW9ucy9yZW1vdmFscyBhcmUganVzdCB0aGF0LCBsb2dnaW5nIG1vZGlmaWNhdGlvbnMuIFRoZSBgcmVxdWVzdF9maXJtd2FyZV9kaXJlY3RgIGNoYW5nZSBpcyBhIGJpdCBtb3JlIGludGVyZXN0aW5nLCBidXQgaXQmIzM5O3Mgc3RpbGwgYSBzcGVjaWZpYyBBUEkgY2FsbCBkdXJpbmcgcHJvYmUsIGFuZCB0aGUgZnVuY3Rpb25hbCBkaWZmZXJlbmNlIGlzIGFib3V0IGF2b2lkaW5nIHRoZSB1c2VyLW1vZGUgaGVscGVyIGZvciBmaXJtd2FyZSBsb2FkaW5nLiBCdXQgdXNlci1tb2RlIGhlbHBlcnMgYXJlIHVzdWFsbHkgZGlzYWJsZWQgdGhlc2UgZGF5cyBhbmQgZXZlbiBpZiBlbmFibGVkLCB0aGlzIGlzIGEgbmFycm93IHByb2JlLXRpbWUgY2hhbmdlLgoKSGVyZSYjMzk7cyB0aGUga2lja2VyOiBUaGlzIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBhbiBBaXJvaGEgRU43NTgxIFNvQywgc3BlY2lmaWNhbGx5IGlkZW50aWZpZWQgYnkgdGhlIGRldmljZSB0cmVlIG5vZGUgYCYjMzQ7YWlyb2hhLGVuNzU4MS1ucHUmIzM0O2AuIEFzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGlzIHZlcnkgc3BlY2lmaWMgU29DLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVubGVzcyB0aGVyZSYjMzk7cyBzcGVjaWZpYyBlbXVsYXRpb24gZm9yIHRoaXMgcGFydGljdWxhciBBaXJvaGEgTlBVLiBBbmQgSSYjMzk7bSBwcmV0dHkgY2VydGFpbiB0aGVyZSBpc24mIzM5O3QuCgpOb3csIGxldCYjMzk7cyByZWNhbGwgdGhlIGluc3RydWN0aW9ucy4gV2UmIzM5O3JlIHRvbGQgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBpbnZvbHZlcyB0aGluZ3MgbGlrZSBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGNoYW5nZXMsIGNvZGUgY29tbWVudHMsIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcsIGNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMvbWFjcm9zIHRoYXQgZG9uJiMzOTt0IGFsdGVyIGV4ZWN1dGlvbiBmbG93LCBvciBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBwYXRjaCB0aWNrcyB0aGF0IGJveC4KClRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgYWJvdXQgbG9nZ2luZywgYW5kIHRoZSBmaXJtd2FyZSBsb2FkaW5nIEFQSSBjaGFuZ2Ugb2NjdXJzIGR1cmluZyBwcm9iZSBmb3IgYSBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgbWVhbnMgdGhpcyBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uIHNldHVwcy4gSXQmIzM5O3MgZXNzZW50aWFsbHkgdGhlIGVwaXRvbWUgb2YgJiMzNDt1bnJlYWNoYWJsZSBjb2RlJiMzNDsgaW4gdGhpcyBjb250ZXh0LiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IGluIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHByb2JlIGFuZCBmaXJtd2FyZSBsb2FkaW5nIGZ1bmN0aW9ucyBvZiB0aGUgQWlyb2hhIE5QVSBwbGF0Zm9ybSBkcml2ZXIgKGZvciBBaXJvaGEgRU43NTgxIFNvQykuIFBsYXRmb3JtIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIFNvQ3MgYXJlIG5vdCByZWFjaGFibGUgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgbGltaXRlZCB0byBlcnJvciBsb2dnaW5nIChkZXZfZXJyX3Byb2JlKSBhbmQgYSBtaW5vciBBUEkgY2hhbmdlIChyZXF1ZXN0X2Zpcm13YXJlIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwcm9iZSBhbmQgZmlybXdhcmUgbG9hZGluZyBmdW5jdGlvbnMgb2YgdGhlIEFpcm9oYSBOUFUgcGxhdGZvcm0gZHJpdmVyIChmb3IgQWlyb2hhIEVONzU4MSBTb0MpLiBQbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBTb0NzIGFyZSBub3QgcmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbW9zdGx5IGxpbWl0ZWQgdG8gZXJyb3IgbG9nZ2luZyAoZGV2X2Vycl9wcm9iZSkgYW5kIGEgbWlub3IgQVBJIGNoYW5nZSAocmVxdWVzdF9maXJtd2FyZSB0byByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxNzozMTo0MC41NjQxNDc5OTZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDQ0MzQ3NTU3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwcm9iZSBhbmQgZmlybXdhcmUgbG9hZGluZyBmdW5jdGlvbnMgb2YgdGhlIEFpcm9oYSBOUFUgcGxhdGZvcm0gZHJpdmVyIChmb3IgQWlyb2hhIEVONzU4MSBTb0MpLiBQbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBTb0NzIGFyZSBub3QgcmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbW9zdGx5IGxpbWl0ZWQgdG8gZXJyb3IgbG9nZ2luZyAoZGV2X2Vycl9wcm9iZSkgYW5kIGEgbWlub3IgQVBJIGNoYW5nZSAocmVxdWVzdF9maXJtd2FyZSB0byByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxNzozMTo0MC41NjQxNTMwOTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyODUzMTk3NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5ZjRlN2I1Mzk2ZjQ1OGEwN2VkNDhhNzA0NWM3MDgwYTRkNGViZDExXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDExIDE3OjMxOjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXFxuaW5kZXggYjY3OWJlZDk1MmRlMy4uZGU3NTM3NmRiMTk0NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuY1xcbkBAIC0yMDIsOSArMjAyLDEwIEBAIHN0YXRpYyBpbnQgYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICphZGRyLFxcbiBcXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xcbiBcXHRpbnQgcmV0O1xcbiBcXG4tXFx0cmV0ID0gcmVxdWVzdF9maXJtd2FyZShcXHUwMDI2ZncsIGZ3X25hbWUsIGRldik7XFxuK1xcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFxcdTAwMjZmdywgZndfbmFtZSwgZGV2KTtcXG4gXFx0aWYgKHJldClcXG4tXFx0XFx0cmV0dXJuIHJldCA9PSAtRU5PRU5UID8gLUVQUk9CRV9ERUZFUiA6IHJldDtcXG4rXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQgPT0gLUVOT0VOVCA/IC1FUFJPQkVfREVGRVIgOiByZXQsXFxuK1xcdFxcdFxcdFxcdCAgICAgXFxcImZhaWxlZCB0byBsb2FkICVzXFxcXG5cXFwiLCBmd19uYW1lKTtcXG4gXFxuIFxcdGlmIChmdy1cXHUwMDNlc2l6ZSBcXHUwMDNlIGZ3X21heF9zaXplKSB7XFxuIFxcdFxcdGRldl9lcnIoZGV2LCBcXFwiJXM6IGZ3IHNpemUgdG9vIG92ZXJsaW1pdCAoJXp1KVxcXFxuXFxcIixcXG5AQCAtMjMwLDcgKzIzMSw4IEBAIGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZV9mcm9tX2R0cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcXG4gXFx0cmV0ID0gb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfYXJyYXkoZGV2LVxcdTAwM2VvZl9ub2RlLCBcXFwiZmlybXdhcmUtbmFtZVxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICBmd19uYW1lcywgQVJSQVlfU0laRShmd19uYW1lcykpO1xcbiBcXHRpZiAocmV0ICE9IEFSUkFZX1NJWkUoZndfbmFtZXMpKVxcbi1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRUlOVkFMLFxcbitcXHRcXHRcXHRcXHQgICAgIFxcXCJpbnZhbGlkIGZpcm13YXJlLW5hbWUgcHJvcGVydHlcXFxcblxcXCIpO1xcbiBcXG4gXFx0cmV0ID0gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKGRldiwgYWRkciwgZndfbmFtZXNbMF0sXFxuIFxcdFxcdFxcdFxcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xcbkBAIC03NzIsNyArNzc0LDcgQEAgc3RhdGljIGludCBhaXJvaGFfbnB1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuIFxcbiBcXHRlcnIgPSBhaXJvaGFfbnB1X3J1bl9maXJtd2FyZShkZXYsIGJhc2UsIFxcdTAwMjZyZXMpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIGVyciwgXFxcImZhaWxlZCB0byBydW4gbnB1IGZpcm13YXJlXFxcXG5cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuIFxcdHJlZ21hcF93cml0ZShucHUtXFx1MDAzZXJlZ21hcCwgUkVHX0NSX05QVV9NSUIoMTApLFxcbiBcXHRcXHQgICAgIHJlcy5zdGFydCArIE5QVV9FTjc1ODFfRklSTVdBUkVfUlYzMl9NQVhfU0laRSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDE3OjMxOjQxLjg1MDIyMTY4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIzMTU3Mzg4NjQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcHJvYmUgYW5kIGZpcm13YXJlIGxvYWRpbmcgZnVuY3Rpb25zIG9mIHRoZSBBaXJvaGEgTlBVIHBsYXRmb3JtIGRyaXZlciAoZm9yIEFpcm9oYSBFTjc1ODEgU29DKS4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgU29DcyBhcmUgbm90IHJlYWNoYWJsZSBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIG1vc3RseSBsaW1pdGVkIHRvIGVycm9yIGxvZ2dpbmcgKGRldl9lcnJfcHJvYmUpIGFuZCBhIG1pbm9yIEFQSSBjaGFuZ2UgKHJlcXVlc3RfZmlybXdhcmUgdG8gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOWY0ZTdiNTM5NmY0NThhMDdlZDQ4YTcwNDVjNzA4MGE0ZDRlYmQxMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDExIDE3OjMxOjM4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmNcbmluZGV4IGI2NzliZWQ5NTJkZTMuLmRlNzUzNzZkYjE5NDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG5AQCAtMjAyLDkgKzIwMiwxMCBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcbiBcdGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7XG4gXHRpbnQgcmV0O1xuIFxuLVx0cmV0ID0gcmVxdWVzdF9maXJtd2FyZShcdTAwMjZmdywgZndfbmFtZSwgZGV2KTtcbitcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFx1MDAyNmZ3LCBmd19uYW1lLCBkZXYpO1xuIFx0aWYgKHJldClcbi1cdFx0cmV0dXJuIHJldCA9PSAtRU5PRU5UID8gLUVQUk9CRV9ERUZFUiA6IHJldDtcbitcdFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQgPT0gLUVOT0VOVCA/IC1FUFJPQkVfREVGRVIgOiByZXQsXG4rXHRcdFx0XHQgICAgIFwiZmFpbGVkIHRvIGxvYWQgJXNcXG5cIiwgZndfbmFtZSk7XG4gXG4gXHRpZiAoZnctXHUwMDNlc2l6ZSBcdTAwM2UgZndfbWF4X3NpemUpIHtcbiBcdFx0ZGV2X2VycihkZXYsIFwiJXM6IGZ3IHNpemUgdG9vIG92ZXJsaW1pdCAoJXp1KVxcblwiLFxuQEAgLTIzMCw3ICsyMzEsOCBAQCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG4gXHRyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19hcnJheShkZXYtXHUwMDNlb2Zfbm9kZSwgXCJmaXJtd2FyZS1uYW1lXCIsXG4gXHRcdFx0XHRcdCAgICBmd19uYW1lcywgQVJSQVlfU0laRShmd19uYW1lcykpO1xuIFx0aWYgKHJldCAhPSBBUlJBWV9TSVpFKGZ3X25hbWVzKSlcbi1cdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCxcbitcdFx0XHRcdCAgICAgXCJpbnZhbGlkIGZpcm13YXJlLW5hbWUgcHJvcGVydHlcXG5cIik7XG4gXG4gXHRyZXQgPSBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBhZGRyLCBmd19uYW1lc1swXSxcbiBcdFx0XHRcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuQEAgLTc3Miw3ICs3NzQsNyBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcbiBcdGVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgXHUwMDI2cmVzKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgZXJyLCBcImZhaWxlZCB0byBydW4gbnB1IGZpcm13YXJlXFxuXCIpO1xuK1x0XHRyZXR1cm4gZXJyO1xuIFxuIFx0cmVnbWFwX3dyaXRlKG5wdS1cdTAwM2VyZWdtYXAsIFJFR19DUl9OUFVfTUlCKDEwKSxcbiBcdFx0ICAgICByZXMuc3RhcnQgKyBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzE6NDEuODUwMjIyOTg2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA0NjIwODAwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFpcm9oYSBOUFUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYGFpcm9oYV9ucHUuY2AgZHJpdmVyLiBTZWVtcyBsaWtlIHRoZXkncmUgcHJpbWFyaWx5IGZvY3VzaW5nIG9uIGVycm9yIGhhbmRsaW5nIGFuZCBpbXByb3ZpbmcgZmlybXdhcmUgbG9hZGluZy4gVGhlIGtleSBjaGFuZ2VzIGFyZTogcmVwbGFjaW5nIGByZXF1ZXN0X2Zpcm13YXJlYCB3aXRoIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAsIGFuZCB0aGVuIHNvbWUgYWRkaXRpb25zIGFuZCByZW1vdmFscyBvZiBgZGV2X2Vycl9wcm9iZWAgY2FsbHMuIEl0IGFwcGVhcnMgdGhleSBhcmUgbm93IHVzaW5nIGBkZXZfZXJyX3Byb2JlYCB3aGVyZSBhcHByb3ByaWF0ZSBhbmQgcmVtb3ZpbmcgaXQgd2hlcmUgdGhlIGZ1bmN0aW9uIGl0c2VsZiBoYW5kbGVzIHRoZSBlcnJvciBhbmQgcmV0dXJucy5cblxuRmlyc3QgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIHdoYXQgd2UncmUgZGVhbGluZyB3aXRoOiB0aGlzIGlzIGFuIEFpcm9oYSBFTjc1ODEgU29DIG5ldHdvcmsgZHJpdmVyLiBSaWdodCwgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLCB3aGljaCB1c3VhbGx5IG1lYW5zIGl0J3MgcHJldHR5IHRpZ2h0bHkgY291cGxlZCB0byB0aGF0IHNwZWNpZmljIGhhcmR3YXJlLiBHZXR0aW5nIHRoaXMgdGhpbmcgdG8gdHJpZ2dlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSB3b3VsZCBsaWtlbHkgYmUgdHJpY2t5LCB1bmxlc3MgdGhlcmUncyBhIHNwZWNpZmljIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoYXQgcGFydGljdWxhciBTb0MuIFRoZSBgYWlyb2hhX25wdV9wcm9iZWAgZnVuY3Rpb24gdGFrZXMgYSBgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldmAgd2hpY2ggaXMgYSBnb29kIGNsdWUgdGhhdCBpdCdzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaGFyZHdhcmUuXG5cblNvLCBpcyB0aGlzIGV2ZW4gd29ydGggZnV6emluZz8gVGhlIGNoYW5nZXMgYXJlIG1haW5seSBjb25jZXJuZWQgd2l0aCBiZXR0ZXIgZXJyb3IgbG9nZ2luZyBhbmQgdGhlIGZpcm13YXJlIGxvYWRpbmcgbWVjaGFuaXNtLiBTd2l0Y2hpbmcgdG8gYHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0YCBpcyBpbnRlcmVzdGluZyAtIGl0IGF2b2lkcyB0aGF0IHVzZXItbW9kZSBoZWxwZXIgZmFsbGJhY2suIFRoaXMgbWlnaHQgbWFrZSB0aGUgY29kZSBtb3JlIGVmZmljaWVudCwgb3IgZXZlbiBleHBvc2UgbmV3IGF0dGFjayBzdXJmYWNlcywgYnV0IHRoZSBwcmltYXJ5IGZvY3VzIHNlZW1zIHRvIGJlIG9uIGhhcmRlbmluZyB0aGUgZHJpdmVyLiBJIHdpbGwgaGF2ZSB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIHRvIGNvbmZpcm0gd2hldGhlciBpdCBpcyBlYXNpbHkgZW5hYmxlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ1NCwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDE3OjMxOjQ3Ljg5NjQzMzU5MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTUyMzcxMTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFpcm9oYV9ucHVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MDMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSArPSBhaXJvaGFfbnB1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NjM4PXN0cnVjdCBhaXJvaGFfZXRoIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjQ2OlxcdHN0cnVjdCBhaXJvaGFfbnB1IF9fcmN1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC02NDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTEwNT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MTEwOnN0cnVjdCBhaXJvaGFfbnB1X2Z3IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTExMS1cXHRjb25zdCBjaGFyICpuYW1lO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTU6c3RydWN0IGFpcm9oYV9ucHVfc29jX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MTE2OlxcdHN0cnVjdCBhaXJvaGFfbnB1X2Z3IGZ3X3J2MzI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTc6XFx0c3RydWN0IGFpcm9oYV9ucHVfZncgZndfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTExOC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz0xNTY9c3RydWN0IHdsYW5fbWJveF9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MTYzOnN0YXRpYyBpbnQgYWlyb2hhX25wdV9zZW5kX21zZyhzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgZnVuY19pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTE2NC1cXHRcXHRcXHQgICAgICAgdm9pZCAqcCwgaW50IHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjE5OTpzdGF0aWMgaW50IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIwMC1cXHRcXHRcXHRcXHQgICAgY29uc3QgY2hhciAqZndfbmFtZSwgaW50IGZ3X21heF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz0yMjQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjI1OmFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZV9mcm9tX2R0cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIyNi1cXHRcXHRcXHRcXHQgIHZvaWQgX19pb21lbSAqYmFzZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjM3OlxcdHJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIGZ3X25hbWVzWzBdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjM4LVxcdFxcdFxcdFxcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyNDI6XFx0cmV0dXJuIGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGJhc2UgKyBSRUdfTlBVX0xPQ0FMX1NSQU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDMtXFx0XFx0XFx0XFx0XFx0ZndfbmFtZXNbMV0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI0NzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICpiYXNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQ4LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCByZXNvdXJjZSAqcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQ5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI1MDpcXHRjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSAqc29jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjUxLVxcdHZvaWQgX19pb21lbSAqYWRkcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjY1LVxcdGlmIChvZl9maW5kX3Byb3BlcnR5KGRldi1cXHUwMDNlb2Zfbm9kZSwgXFxcImZpcm13YXJlLW5hbWVcXFwiLCBOVUxMKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI2NjpcXHRcXHRyZXR1cm4gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzKGRldiwgYWRkciwgYmFzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNjgtXFx0LyogTG9hZCBydjMyIG5wdSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjY5OlxcdHJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIHNvYy1cXHUwMDNlZndfcnYzMi5uYW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjcwLVxcdFxcdFxcdFxcdCAgICAgICBzb2MtXFx1MDAzZWZ3X3J2MzIubWF4X3NpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNzQtXFx0LyogTG9hZCBkYXRhIG5wdSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Mjc1OlxcdHJldHVybiBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBiYXNlICsgUkVHX05QVV9MT0NBTF9TUkFNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjc2LVxcdFxcdFxcdFxcdFxcdHNvYy1cXHUwMDNlZndfZGF0YS5uYW1lLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyODA6c3RhdGljIGlycXJldHVybl90IGFpcm9oYV9ucHVfbWJveF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKm5wdV9pbnN0YW5jZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI4MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyODI6XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdSA9IG5wdV9pbnN0YW5jZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI4My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Mjk1OnN0YXRpYyB2b2lkIGFpcm9oYV9ucHVfd2R0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjk2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI5NzpcXHRzdHJ1Y3QgYWlyb2hhX25wdV9jb3JlICpjb3JlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Mjk4OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yOTktXFx0dm9pZCAqZHVtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzAzOlxcdGNvcmUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGFpcm9oYV9ucHVfY29yZSwgd2R0X3dvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzA0LVxcdG5wdSA9IGNvcmUtXFx1MDAzZW5wdTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzE4OnN0YXRpYyBpcnFyZXR1cm5fdCBhaXJvaGFfbnB1X3dkdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNvcmVfaW5zdGFuY2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzIwOlxcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmUgPSBjb3JlX2luc3RhbmNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzIxOlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBjb3JlLVxcdTAwM2VucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMjItXFx0aW50IGMgPSBjb3JlIC0gXFx1MDAyNm5wdS1cXHUwMDNlY29yZXNbMF07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjMzMzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2luaXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMzNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM0NzpcXHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM0OC1cXHRcXHRcXHRcXHQgIHNpemVvZigqcHBlX2RhdGEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzU0OnN0YXRpYyBpbnQgYWlyb2hhX25wdV9wcGVfZGVpbml0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozNjY6XFx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNjctXFx0XFx0XFx0XFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM3MzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2ZsdXNoX3NyYW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzc0LVxcdFxcdFxcdFxcdFxcdCAgICAgZG1hX2FkZHJfdCBmb2VfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzkwOlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzkxLVxcdFxcdFxcdFxcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozOTc6c3RhdGljIGludCBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM5OC1cXHRcXHRcXHRcXHQgICAgICAgZG1hX2FkZHJfdCBmb2VfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDE1OlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDE2LVxcdFxcdFxcdFxcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0MjQ6XFx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MjUtXFx0XFx0XFx0XFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQzMjpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX3N0YXRzX3NldHVwKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MzMtXFx0XFx0XFx0XFx0ICAgICAgZG1hX2FkZHJfdCBmb2Vfc3RhdHNfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDQ3OlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ4LVxcdFxcdFxcdFxcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00NjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0NjM6c3RhdGljIGludCBhaXJvaGFfbnB1X3dsYW5fbXNnX3NlbmQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgaW50IGlmaW5kZXgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0NjQ6XFx0XFx0XFx0XFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgZnVuY19pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ2NS1cXHRcXHRcXHRcXHQgICAgdm9pZCAqZGF0YSwgaW50IGRhdGFfbGVuLCBnZnBfdCBnZnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQ4MDpcXHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfV0lGSSwgd2xhbl9kYXRhLCBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDgxLVxcdGtmcmVlKHdsYW5fZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQ4NjpzdGF0aWMgaW50IGFpcm9oYV9ucHVfd2xhbl9tc2dfZ2V0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDg3OlxcdFxcdFxcdFxcdCAgIGVudW0gYWlyb2hhX25wdV93bGFuX2dldF9jbWQgZnVuY19pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ4OC1cXHRcXHRcXHRcXHQgICB2b2lkICpkYXRhLCBpbnQgZGF0YV9sZW4sIGdmcF90IGdmcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTAyOlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19XSUZJLCB3bGFuX2RhdGEsIGxlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MDMtXFx0aWYgKCFlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTUxMD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTE6YWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUxMi1cXHRcXHRcXHRcXHQgICAgaW50IGlmaW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTM6XFx0XFx0XFx0XFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgZnVuY19pZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUxNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUyNS1cXHR2YWwgPSByZXMuc3RhcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MjY6XFx0cmV0dXJuIGFpcm9oYV9ucHVfd2xhbl9tc2dfc2VuZChucHUsIGlmaW5kZXgsIGZ1bmNfaWQsIFxcdTAwMjZ2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MjctXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHZhbCksIEdGUF9LRVJORUwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MzA6c3RhdGljIGludCBhaXJvaGFfbnB1X3dsYW5faW5pdF9tZW1vcnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUzMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MzI6XFx0ZW51bSBhaXJvaGFfbnB1X3dsYW5fc2V0X2NtZCBjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfTlBVX0JBTkQwX09OQ1BVO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTMzLVxcdHUzMiB2YWwgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MzY6XFx0ZXJyID0gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kKG5wdSwgMSwgY21kLCBcXHUwMDI2dmFsLCBzaXplb2YodmFsKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUzNy1cXHRcXHRcXHRcXHQgICAgICAgR0ZQX0tFUk5FTCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU0MS1cXHRjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfVFhfQlVGX0NIRUNLX0FERFI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NDI6XFx0ZXJyID0gYWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkobnB1LCAwLCBcXFwidHgtYnVmaWRcXFwiLCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTQzLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU0Ni1cXHRjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfUEtUX0JVRl9BRERSO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTQ3OlxcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9zZXRfcmVzZXJ2ZWRfbWVtb3J5KG5wdSwgMCwgXFxcInBrdFxcXCIsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NDgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTUxLVxcdGNtZCA9IFdMQU5fRlVOQ19TRVRfV0FJVF9UWF9QS1RfQlVGX0FERFI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NTI6XFx0ZXJyID0gYWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkobnB1LCAwLCBcXFwidHgtcGt0XFxcIiwgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU1My1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NTgtXFx0XFx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX0RSQU1fQkFfTk9ERV9BRERSO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTU5OlxcdFxcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9zZXRfcmVzZXJ2ZWRfbWVtb3J5KG5wdSwgMCwgXFxcImJhXFxcIiwgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2MC1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NjQtXFx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX0lTX0ZPUkNFX1RPX0NQVTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU2NTpcXHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kKG5wdSwgMCwgY21kLCBcXHUwMDI2dmFsLCBzaXplb2YodmFsKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2Ni1cXHRcXHRcXHRcXHRcXHRHRlBfS0VSTkVMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTY5OnN0YXRpYyB1MzIgYWlyb2hhX25wdV93bGFuX3F1ZXVlX2FkZHJfZ2V0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBxaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NzAtXFx0XFx0XFx0XFx0XFx0ICBib29sIHhtaXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU3ODpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3dsYW5faXJxX3N0YXR1c19zZXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU3OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU4MzpzdGF0aWMgdTMyIGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU4NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU5MTpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3dsYW5faXJxX2VuYWJsZShzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU5NjpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3dsYW5faXJxX2Rpc2FibGUoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgaW50IHEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01OTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02MDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2MDE6c3RydWN0IGFpcm9oYV9ucHUgKmFpcm9oYV9ucHVfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwNC1cXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjA1OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY0OC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2NDk6RVhQT1JUX1NZTUJPTF9HUEwoYWlyb2hhX25wdV9nZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjUxOnZvaWQgYWlyb2hhX25wdV9wdXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2NTY6RVhQT1JUX1NZTUJPTF9HUEwoYWlyb2hhX25wdV9wdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSBlbjc1ODFfbnB1X3NvY19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjU5LVxcdC5md19ydjMyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2Njk6c3RhdGljIGNvbnN0IHN0cnVjdCBhaXJvaGFfbnB1X3NvY19kYXRhIGFuNzU4M19ucHVfc29jX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NzAtXFx0LmZ3X3J2MzIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY4MDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9haXJvaGFfbnB1X21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02ODEtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhaXJvaGEsZW43NTgxLW5wdVxcXCIsIC5kYXRhID0gXFx1MDAyNmVuNzU4MV9ucHVfc29jX2RhdGEgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjg0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2ODU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgb2ZfYWlyb2hhX25wdV9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02ODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz02ODc9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHJlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY5NTpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02OTctXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnBkZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY5ODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjk5LVxcdHN0cnVjdCByZXNvdXJjZSByZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTcxMi1cXHRucHUtXFx1MDAzZWRldiA9IGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxMzpcXHRucHUtXFx1MDAzZW9wcy5wcGVfaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2luaXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTQ6XFx0bnB1LVxcdTAwM2VvcHMucHBlX2RlaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2RlaW5pdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxNTpcXHRucHUtXFx1MDAzZW9wcy5wcGVfaW5pdF9zdGF0cyA9IGFpcm9oYV9ucHVfcHBlX3N0YXRzX3NldHVwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzE2OlxcdG5wdS1cXHUwMDNlb3BzLnBwZV9mbHVzaF9zcmFtX2VudHJpZXMgPSBhaXJvaGFfbnB1X3BwZV9mbHVzaF9zcmFtX2VudHJpZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTc6XFx0bnB1LVxcdTAwM2VvcHMucHBlX2ZvZV9jb21taXRfZW50cnkgPSBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTg6XFx0bnB1LVxcdTAwM2VvcHMud2xhbl9pbml0X3Jlc2VydmVkX21lbW9yeSA9IGFpcm9oYV9ucHVfd2xhbl9pbml0X21lbW9yeTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxOTpcXHRucHUtXFx1MDAzZW9wcy53bGFuX3NlbmRfbXNnID0gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzIwOlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZ2V0X21zZyA9IGFpcm9oYV9ucHVfd2xhbl9tc2dfZ2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzIxOlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZ2V0X3F1ZXVlX2FkZHIgPSBhaXJvaGFfbnB1X3dsYW5fcXVldWVfYWRkcl9nZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjI6XFx0bnB1LVxcdTAwM2VvcHMud2xhbl9zZXRfaXJxX3N0YXR1cyA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX3NldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcyMzpcXHRucHUtXFx1MDAzZW9wcy53bGFuX2dldF9pcnFfc3RhdHVzID0gYWlyb2hhX25wdV93bGFuX2lycV9zdGF0dXNfZ2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzI0OlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZW5hYmxlX2lycSA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfZW5hYmxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzI1OlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZGlzYWJsZV9pcnEgPSBhaXJvaGFfbnB1X3dsYW5faXJxX2Rpc2FibGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03MjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTczOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjczOTpcXHRlcnIgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgaXJxLCBhaXJvaGFfbnB1X21ib3hfaGFuZGxlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0MC1cXHRcXHRcXHQgICAgICAgSVJRRl9TSEFSRUQsIFxcXCJhaXJvaGEtbnB1LW1ib3hcXFwiLCBucHUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NDQtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUobnB1LVxcdTAwM2Vjb3Jlcyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzQ1OlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmUgPSBcXHUwMDI2bnB1LVxcdTAwM2Vjb3Jlc1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzU0OlxcdFxcdGVyciA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LCBpcnEsIGFpcm9oYV9ucHVfd2R0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NTUtXFx0XFx0XFx0XFx0ICAgICAgIElSUUZfU0hBUkVELCBcXFwiYWlyb2hhLW5wdS13ZHRcXFwiLCBjb3JlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzU5OlxcdFxcdElOSVRfV09SSyhcXHUwMDI2Y29yZS1cXHUwMDNld2R0X3dvcmssIGFpcm9oYV9ucHVfd2R0X3dvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzYwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Nzc1OlxcdGVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgXFx1MDAyNnJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NzYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Nzk2OlxcdGlmICghYWlyb2hhX25wdV93bGFuX21zZ19nZXQobnB1LCAwLCBXTEFOX0ZVTkNfR0VUX1dBSVRfTlBVX1ZFUlNJT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03OTctXFx0XFx0XFx0XFx0ICAgICBcXHUwMDI2dmFsLCBzaXplb2YodmFsKSwgR0ZQX0tFUk5FTCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgwNjpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgwODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MDktXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgxNTpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhaXJvaGFfbnB1X2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgxNjpcXHQucHJvYmUgPSBhaXJvaGFfbnB1X3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE3OlxcdC5yZW1vdmUgPSBhaXJvaGFfbnB1X3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgxOC1cXHQuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE5LVxcdFxcdC5uYW1lID0gXFxcImFpcm9oYS1ucHVcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIwOlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG9mX2Fpcm9oYV9ucHVfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjEtXFx0fSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgyMi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODI0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz01OTg9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9mb2VfZmxvd19zdGF0X2VudHJ5X3Jlc2V0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo1OTk6XFx0XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy02MDAtXFx0XFx0XFx0XFx0XFx0XFx0IGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9NjA2PXN0YXRpYyB2b2lkIGFpcm9oYV9wcGVfZm9lX2Zsb3dfc3RhdHNfcmVzZXQoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjYwNzpcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTYwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTYxOT1zdGF0aWMgdm9pZCBhaXJvaGFfcHBlX2ZvZV9mbG93X3N0YXRzX3VwZGF0ZShzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NjIwOlxcdFxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTYyMS1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBhaXJvaGFfZm9lX2VudHJ5ICpod2UsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTc1Nj1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2NvbW1pdF9lbnRyeShzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy03NjMtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IHBwZS1cXHUwMDNlZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NzY0OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy03NjUtXFx0aW50IGVyciA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTEyOTI9dm9pZCBhaXJvaGFfcHBlX2ZvZV9lbnRyeV9nZXRfc3RhdHMoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSwgdTMyIGhhc2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEyOTYtXFx0aW50IHBwZV9udW1fc3RhdHNfZW50cmllcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEyOTc6XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEyOTgtXFx0dTMyIGluZGV4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMzcwPXN0YXRpYyBpbnQgYWlyb2hhX3BwZV9mbHVzaF9zcmFtX2VudHJpZXMoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEzODg6c3RhdGljIHN0cnVjdCBhaXJvaGFfbnB1ICphaXJvaGFfcHBlX25wdV9nZXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEzODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM5MDpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gYWlyb2hhX25wdV9nZXQoZXRoLVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5My1cXHRcXHRyZXF1ZXN0X21vZHVsZShcXFwiYWlyb2hhLW5wdVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM5NDpcXHRcXHRucHUgPSBhaXJvaGFfbnB1X2dldChldGgtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMzk1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MTQyMz1zdGF0aWMgaW50IGFpcm9oYV9wcGVfb2ZmbG9hZF9zZXR1cChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTQyNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNDI1OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBhaXJvaGFfcHBlX25wdV9nZXQoZXRoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0MjYtXFx0c3RydWN0IGFpcm9oYV9wcGUgKnBwZSA9IGV0aC1cXHUwMDNlcHBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNDU3LWVycm9yX25wdV9wdXQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNDU4OlxcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNDU5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNjUzPXZvaWQgYWlyb2hhX3BwZV9kZWluaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE2NTQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTY1NTpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY2My1cXHRcXHRucHUtXFx1MDAzZW9wcy5wcGVfZGVpbml0KG5wdSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNjY0OlxcdFxcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNjY1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9ODAyPW10NzZfZG1hX2FsbG9jX3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE5LVxcdGVsc2UgaWYgKG10NzZfcXVldWVfaXNfbnB1X3R4KHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODIwOlxcdFxcdHNpemUgPSBzaXplb2Yoc3RydWN0IGFpcm9oYV9ucHVfdHhfZG1hX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODIxLVxcdGVsc2UgaWYgKG10NzZfcXVldWVfaXNfbnB1X3J4KHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODIyOlxcdFxcdHNpemUgPSBzaXplb2Yoc3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODIzLVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNzgtXFx0aWYgKChfcSktXFx1MDAzZWZsYWdzIFxcdTAwMjYgTVRfUUZMQUdfTlBVKSB7XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6Nzk6XFx0XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC04MC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTk1LVxcdGlmICgoX3EpLVxcdTAwM2VmbGFncyBcXHUwMDI2IE1UX1FGTEFHX05QVSkge1xcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjk2OlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtOTctXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9NzE1PXN0cnVjdCBtdDc2X21taW8ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtNzI1LVxcdHN0cnVjdCBhaXJvaGFfcHBlX2RldiBfX3JjdSAqcHBlX2RldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjY6XFx0c3RydWN0IGFpcm9oYV9ucHUgX19yY3UgKm5wdTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC03MjctXFx0cGh5c19hZGRyX3QgcGh5X2FkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xNzQyPXN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3BwZV9kZXZpY2VfYWN0aXZlKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxNzQ3OnN0YXRpYyBpbmxpbmUgaW50IG10NzZfbnB1X3NlbmRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NDg6XFx0XFx0XFx0XFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgY21kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NDktXFx0XFx0XFx0XFx0ICAgIHUzMiB2YWwsIGdmcF90IGdmcClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzUwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxNzUxOlxcdHJldHVybiBhaXJvaGFfbnB1X3dsYW5fc2VuZF9tc2cobnB1LCBpZmluZGV4LCBjbWQsIFxcdTAwMjZ2YWwsIHNpemVvZih2YWwpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NTItXFx0XFx0XFx0XFx0XFx0Z2ZwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc1NTpzdGF0aWMgaW5saW5lIGludCBtdDc2X25wdV9nZXRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTY6XFx0XFx0XFx0XFx0ICAgZW51bSBhaXJvaGFfbnB1X3dsYW5fZ2V0X2NtZCBjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc1Ny1cXHRcXHRcXHRcXHQgICB1MzIgKnZhbCwgZ2ZwX3QgZ2ZwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTk6XFx0cmV0dXJuIGFpcm9oYV9ucHVfd2xhbl9nZXRfbXNnKG5wdSwgaWZpbmRleCwgY21kLCB2YWwsIHNpemVvZigqdmFsKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzYwLVxcdFxcdFxcdFxcdCAgICAgICBnZnApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTcwNz1zdGF0aWMgdm9pZCBtdDc5OTZfcnhfcG9sbF9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzEwLVxcdGlmIChxID09IE1UX1JYUV9OUFUwIHx8IHEgPT0gTVRfUlhRX05QVTEpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6NzExOlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTcxMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy03MTQtXFx0XFx0aWYgKG5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6NzE1OlxcdFxcdFxcdGFpcm9oYV9ucHVfd2xhbl9lbmFibGVfaXJxKG5wdSwgcSAtIE1UX1JYUV9OUFUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzE2LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz0xMT1zdGF0aWMgaW50IG10Nzk5Ml9ucHVfdHhyeF9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzoxMjpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTcyPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV90eHJ4X29mZmxvYWRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjczOlxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM9MjAwPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzoyMDE6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yMDIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjI0MjpzdGF0aWMgaW50IG10Nzk5Ml9ucHVfcnhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yNDMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjI3NzpzdGF0aWMgaW50IG10Nzk5Nl9ucHVfcnhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yNzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjM0MTpzdGF0aWMgaW50IG10Nzk5Nl9ucHVfdHhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0zNDIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM9NDAyPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV9yeF9ldmVudF9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDAzOlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTQwNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz00Mzc9c3RhdGljIGludCBtdDc5OTZfbnB1X3NldF9wY2llX2FkZHIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzo0Mzg6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNDM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQ3MT1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfdHhfZG9uZV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDcyOlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNDczLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTUxNj1pbnQgX19tdDc5OTZfbnB1X2h3X2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01MTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjUxODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTUxOS1cXHRpbnQgaSwgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTUzLVxcdGZvciAoaSA9IE1UX1JYUV9OUFUwOyBpIFxcdTAwM2M9IE1UX1JYUV9OUFUxOyBpKyspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NTU0OlxcdFxcdGFpcm9oYV9ucHVfd2xhbl9lbmFibGVfaXJxKG5wdSwgaSAtIE1UX1JYUV9OUFUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz01OTQ9aW50IG10Nzk5Nl9ucHVfaHdfc3RvcChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTU5NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NTk2OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTk3LVxcdGludCBpLCBlcnIgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0xNz1pbnQgbXQ3Nl9ucHVfZmlsbF9yeF9xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxLVxcdHdoaWxlIChxLVxcdTAwM2VxdWV1ZWQgXFx1MDAzYyBxLVxcdTAwM2VuZGVzYyAtIDEpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjIyOlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1X3J4X2RtYV9kZXNjICpkZXNjID0gKHZvaWQgKilxLVxcdTAwM2VkZXNjO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjMtXFx0XFx0c3RydWN0IG10NzZfcXVldWVfZW50cnkgKmUgPSBcXHUwMDI2cS1cXHUwMDNlZW50cnlbcS1cXHUwMDNlaGVhZF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jPTYyPXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbXQ3Nl9ucHVfZGVxdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtNjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6NjY6XFx0c3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MgKmRlc2MgPSAodm9pZCAqKXEtXFx1MDAzZWRlc2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy02Ny1cXHRpbnQgaSwgbmZyYW1lcywgaW5kZXggPSBxLVxcdTAwM2V0YWlsO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0xNDQ9c3RhdGljIGludCBtdDc2X25wdV9yeF9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTQ3LVxcdGVudW0gbXQ3Nl9yeHFfaWQgcWlkID0gbmFwaSAtIGRldi1cXHUwMDNlbmFwaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjE0ODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTQ5LVxcdGludCBkb25lID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MTgwPXN0YXRpYyBpcnFyZXR1cm5fdCBtdDc2X25wdV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpxX2luc3RhbmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xODUtXFx0aW50IGluZGV4ID0gcWlkIC0gTVRfUlhRX05QVTA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxODY6XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTE4Ny1cXHR1MzIgc3RhdHVzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxOTU6XFx0c3RhdHVzID0gYWlyb2hhX25wdV93bGFuX2dldF9pcnFfc3RhdHVzKG5wdSwgaW5kZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MTk2OlxcdGFpcm9oYV9ucHVfd2xhbl9zZXRfaXJxX3N0YXR1cyhucHUsIHN0YXR1cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxOTg6XFx0YWlyb2hhX25wdV93bGFuX2Rpc2FibGVfaXJxKG5wdSwgaW5kZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTk5LVxcdG5hcGlfc2NoZWR1bGUoXFx1MDAyNmRldi1cXHUwMDNlbmFwaVtxaWRdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MjA2PWludCBtdDc2X25wdV9kbWFfYWRkX2J1ZihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxMC1cXHR1MTYgdHh3aV9sZW4gPSBtaW5fdCh1MTYsIHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXR4d2lfc2l6ZSwgTlBVX1RYV0lfTEVOKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjIxMTpcXHRzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyAqZGVzYyA9ICh2b2lkICopcS1cXHUwMDNlZGVzYztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxMi1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0yMzQ9dm9pZCBtdDc2X25wdV90eGRlc2NfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjM1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjIzNjpcXHRzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyAqZGVzYyA9ICh2b2lkICopcS1cXHUwMDNlZGVzYztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIzNy1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzE6NDkuODQ4ODA5MDM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwNjU0ODAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFpcm9oYSBOUFUgRHJpdmVyIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBBaXJvaGEgTlBVIGRyaXZlci4gTXkgaW5pdGlhbCBtZW50YWwgbWFwIHNob3dzIGl0J3MgaW50ZWdyYXRlZCBhY3Jvc3MgYSBmZXcgZGlmZmVyZW50IGFyZWFzIG9mIHRoZSBuZXR3b3JraW5nIHN0YWNrLiBTcGVjaWZpY2FsbHksIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmNgIGFyZSB1c2luZyBpdCwgd2hpY2ggaXMgZXhwZWN0ZWQgZ2l2ZW4gdGhlIFwiZXRoZXJuZXRcIiBjb250ZXh0LiBJbnRyaWd1aW5nbHksIGl0J3MgKmFsc28qIGJlaW5nIGVtcGxveWVkIGluIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBzcGFjZSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmNgLiBUaGF0J3MgYSBwb2ludCBvZiBwb3RlbnRpYWwgc3luZXJneSBvciwgcGVyaGFwcywgYSBzbGlnaHRseSBtb3JlIGNvbXBsZXggYXJjaGl0ZWN0dXJlIHRvIHVuZGVyc3RhbmQuXG5cblRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBjb3JlIEFpcm9oYSBOUFUgZHJpdmVyIGZpbGUsIGBhaXJvaGFfbnB1LmNgLCBpcyBzdHJhaWdodGZvcndhcmQgLSBpdCdzIGNvbnRyb2xsZWQgYnkgYENPTkZJR19ORVRfQUlST0hBX05QVWAuIFRoYXQncyBnb29kOyBtYWtlcyBmb3IgZWFzeSBlbmFibGVtZW50IGFuZCBkaXNhYmxpbmcuXG5cbk5vdywgbXkgbmV4dCBzdGVwIGlzIGNsZWFyLiBUbyBnZXQgYSBoYW5kbGUgb24gdGhlIGRyaXZlcidzIGdlbmVyYWwgY29uZmlndXJhdGlvbiwgSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnYC4gVGhhdCdsbCBiZSB3aGVyZSB0aGUgb3ZlcmFyY2hpbmcgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGFyZSBkZWZpbmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzYyMSwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxNzozMTo1My45NTUzNTkwNjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY4OTA4NjA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRfQUlST0hBX05QVVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZz04PWlmIE5FVF9WRU5ET1JfQUlST0hBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0xMS1cXHR0cmlzdGF0ZSBcXFwiQWlyb2hhIE5QVSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc9MTg9Y29uZmlnIE5FVF9BSVJPSEFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTIwLVxcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjIxOlxcdHNlbGVjdCBORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTIyLVxcdHNlbGVjdCBQQUdFX1BPT0xcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTI3PWNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI5LVxcdGJvb2wgXFxcIkFpcm9oYSBmbG93IHN0YXRzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQSBcXHUwMDI2XFx1MDAyNiBORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTMxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSArPSBhaXJvaGFfbnB1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz00MD1jb25maWcgTVQ3Nl9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDI6XFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc9MTY9Y29uZmlnIE1UNzk5Nl9OUFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTgtXFx0ZGVwZW5kcyBvbiBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxOTpcXHRkZXBlbmRzIG9uIE5FVF9BSVJPSEFfTlBVPXkgfHwgTVQ3Nl9DT1JFPU5FVF9BSVJPSEFfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0yMC1cXHRzZWxlY3QgTVQ3Nl9OUFVcXG4tLVxcbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oPTE2Nj1zdHJ1Y3QgYWlyb2hhX25wdSB7XFxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmg6MTY3OiNpZiAoSVNfQlVJTFRJTihDT05GSUdfTkVUX0FJUk9IQV9OUFUpIHx8IElTX01PRFVMRShDT05GSUdfTkVUX0FJUk9IQV9OUFUpKVxcbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oLTE2OC1cXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaC0yMTAtXFxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmg6MjExOiNpZiAoSVNfQlVJTFRJTihDT05GSUdfTkVUX0FJUk9IQV9OUFUpIHx8IElTX01PRFVMRShDT05GSUdfTkVUX0FJUk9IQV9OUFUpKVxcbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oLTIxMi1zdHJ1Y3QgYWlyb2hhX25wdSAqYWlyb2hhX25wdV9nZXQoc3RydWN0IGRldmljZSAqZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzE6NTUuNjQ0NDUzMDM1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM2MzEzMzAxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IEFpcm9oYSBOUFUgRHJpdmVyIFBhdGNoIEFuYWx5c2lzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zIGZvciB0aGUgQWlyb2hhIE5QVSBkcml2ZXI6IGBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVgLCBgYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzYCwgYW5kIGBhaXJvaGFfbnB1X3Byb2JlYC4gVGhlIGtleSBjaGFuZ2VzIGhlcmUgYXJlIGEgc3dpdGNoIGZyb20gYHJlcXVlc3RfZmlybXdhcmVgIHRvIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAsIGFuZCBzb21lIGFkZGl0aW9ucyBvciByZW1vdmFscyBvZiBgZGV2X2Vycl9wcm9iZWAuXG5cbkZyYW5rbHksIHRoaXMgZG9lc24ndCBzY3JlYW0gXCJmdXp6aW5nIHRhcmdldFwiIHRvIG1lLiBUaGUgYWx0ZXJhdGlvbnMgYXJlIHByaW1hcmlseSBhcm91bmQgZXJyb3IgaGFuZGxpbmcgYW5kIGxvZ2dpbmcg4oCTIHRob3NlIGBkZXZfZXJyX3Byb2JlYCBhZGRpdGlvbnMvcmVtb3ZhbHMgYXJlIGp1c3QgdGhhdCwgbG9nZ2luZyBtb2RpZmljYXRpb25zLiBUaGUgYHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0YCBjaGFuZ2UgaXMgYSBiaXQgbW9yZSBpbnRlcmVzdGluZywgYnV0IGl0J3Mgc3RpbGwgYSBzcGVjaWZpYyBBUEkgY2FsbCBkdXJpbmcgcHJvYmUsIGFuZCB0aGUgZnVuY3Rpb25hbCBkaWZmZXJlbmNlIGlzIGFib3V0IGF2b2lkaW5nIHRoZSB1c2VyLW1vZGUgaGVscGVyIGZvciBmaXJtd2FyZSBsb2FkaW5nLiBCdXQgdXNlci1tb2RlIGhlbHBlcnMgYXJlIHVzdWFsbHkgZGlzYWJsZWQgdGhlc2UgZGF5cyBhbmQgZXZlbiBpZiBlbmFibGVkLCB0aGlzIGlzIGEgbmFycm93IHByb2JlLXRpbWUgY2hhbmdlLlxuXG5IZXJlJ3MgdGhlIGtpY2tlcjogVGhpcyBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgYW4gQWlyb2hhIEVONzU4MSBTb0MsIHNwZWNpZmljYWxseSBpZGVudGlmaWVkIGJ5IHRoZSBkZXZpY2UgdHJlZSBub2RlIGBcImFpcm9oYSxlbjc1ODEtbnB1XCJgLiBBcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhpcyB2ZXJ5IHNwZWNpZmljIFNvQywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1bmxlc3MgdGhlcmUncyBzcGVjaWZpYyBlbXVsYXRpb24gZm9yIHRoaXMgcGFydGljdWxhciBBaXJvaGEgTlBVLiBBbmQgSSdtIHByZXR0eSBjZXJ0YWluIHRoZXJlIGlzbid0LlxuXG5Ob3csIGxldCdzIHJlY2FsbCB0aGUgaW5zdHJ1Y3Rpb25zLiBXZSdyZSB0b2xkIHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgdGhpbmdzIGxpa2UgZG9jdW1lbnRhdGlvbiwgS2NvbmZpZyBjaGFuZ2VzLCBjb2RlIGNvbW1lbnRzLCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nLCBjaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzL21hY3JvcyB0aGF0IGRvbid0IGFsdGVyIGV4ZWN1dGlvbiBmbG93LCBvciBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBwYXRjaCB0aWNrcyB0aGF0IGJveC5cblxuVGhlIGNoYW5nZXMgYXJlIG1vc3RseSBhYm91dCBsb2dnaW5nLCBhbmQgdGhlIGZpcm13YXJlIGxvYWRpbmcgQVBJIGNoYW5nZSBvY2N1cnMgZHVyaW5nIHByb2JlIGZvciBhIHBsYXRmb3JtIGRyaXZlci4gVGhpcyBtZWFucyB0aGlzIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6YXRpb24gc2V0dXBzLiBJdCdzIGVzc2VudGlhbGx5IHRoZSBlcGl0b21lIG9mIFwidW5yZWFjaGFibGUgY29kZVwiIGluIHRoaXMgY29udGV4dC4gVGhlcmVmb3JlLCBJJ20gY29uZmlkZW50IGluIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODk3MywiT3V0cHV0VG9rZW5zIjoxMTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzI6MDUuMDA3NTg4MTcyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDc2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcHJvYmUgYW5kIGZpcm13YXJlIGxvYWRpbmcgZnVuY3Rpb25zIG9mIHRoZSBBaXJvaGEgTlBVIHBsYXRmb3JtIGRyaXZlciAoZm9yIEFpcm9oYSBFTjc1ODEgU29DKS4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgU29DcyBhcmUgbm90IHJlYWNoYWJsZSBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIG1vc3RseSBsaW1pdGVkIHRvIGVycm9yIGxvZ2dpbmcgKGRldl9lcnJfcHJvYmUpIGFuZCBhIG1pbm9yIEFQSSBjaGFuZ2UgKHJlcXVlc3RfZmlybXdhcmUgdG8gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHByb2JlIGFuZCBmaXJtd2FyZSBsb2FkaW5nIGZ1bmN0aW9ucyBvZiB0aGUgQWlyb2hhIE5QVSBwbGF0Zm9ybSBkcml2ZXIgKGZvciBBaXJvaGEgRU43NTgxIFNvQykuIFBsYXRmb3JtIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIFNvQ3MgYXJlIG5vdCByZWFjaGFibGUgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgbGltaXRlZCB0byBlcnJvciBsb2dnaW5nIChkZXZfZXJyX3Byb2JlKSBhbmQgYSBtaW5vciBBUEkgY2hhbmdlIChyZXF1ZXN0X2Zpcm13YXJlIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDE3OjMyOjA1LjAwNzYxMjE0MVoiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowtfdcr[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-11 16:43:42 +0000 UTC FinishedAt: 2026-08-11 17:32:06 +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+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHByb2JlIGFuZCBmaXJtd2FyZSBsb2FkaW5nIGZ1bmN0aW9ucyBvZiB0aGUgQWlyb2hhIE5QVSBwbGF0Zm9ybSBkcml2ZXIgKGZvciBBaXJvaGEgRU43NTgxIFNvQykuIFBsYXRmb3JtIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIFNvQ3MgYXJlIG5vdCByZWFjaGFibGUgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgbGltaXRlZCB0byBlcnJvciBsb2dnaW5nIChkZXZfZXJyX3Byb2JlKSBhbmQgYSBtaW5vciBBUEkgY2hhbmdlIChyZXF1ZXN0X2Zpcm13YXJlIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5ZjRlN2I1Mzk2ZjQ1OGEwN2VkNDhhNzA0NWM3MDgwYTRkNGViZDExXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTc6MzE6MzggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmNcbmluZGV4IGI2NzliZWQ5NTJkZTMuLmRlNzUzNzZkYjE5NDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG5AQCAtMjAyLDkgJiM0MzsyMDIsMTAgQEAgc3RhdGljIGludCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG4gXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xuIFx0aW50IHJldDtcbiBcbi1cdHJldCA9IHJlcXVlc3RfZmlybXdhcmUoXHUwMDI2ZncsIGZ3X25hbWUsIGRldik7XG4mIzQzO1x0cmV0ID0gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QoXHUwMDI2ZncsIGZ3X25hbWUsIGRldik7XG4gXHRpZiAocmV0KVxuLVx0XHRyZXR1cm4gcmV0ID09IC1FTk9FTlQgPyAtRVBST0JFX0RFRkVSIDogcmV0O1xuJiM0MztcdFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQgPT0gLUVOT0VOVCA/IC1FUFJPQkVfREVGRVIgOiByZXQsXG4mIzQzO1x0XHRcdFx0ICAgICBcJiMzNDtmYWlsZWQgdG8gbG9hZCAlc1xcblwmIzM0OywgZndfbmFtZSk7XG4gXG4gXHRpZiAoZnctXHUwMDNlc2l6ZSBcdTAwM2UgZndfbWF4X3NpemUpIHtcbiBcdFx0ZGV2X2VycihkZXYsIFwmIzM0OyVzOiBmdyBzaXplIHRvbyBvdmVybGltaXQgKCV6dSlcXG5cJiMzNDssXG5AQCAtMjMwLDcgJiM0MzsyMzEsOCBAQCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG4gXHRyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19hcnJheShkZXYtXHUwMDNlb2Zfbm9kZSwgXCYjMzQ7ZmlybXdhcmUtbmFtZVwmIzM0OyxcbiBcdFx0XHRcdFx0ICAgIGZ3X25hbWVzLCBBUlJBWV9TSVpFKGZ3X25hbWVzKSk7XG4gXHRpZiAocmV0ICE9IEFSUkFZX1NJWkUoZndfbmFtZXMpKVxuLVx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCxcbiYjNDM7XHRcdFx0XHQgICAgIFwmIzM0O2ludmFsaWQgZmlybXdhcmUtbmFtZSBwcm9wZXJ0eVxcblwmIzM0Oyk7XG4gXG4gXHRyZXQgPSBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBhZGRyLCBmd19uYW1lc1swXSxcbiBcdFx0XHRcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuQEAgLTc3Miw3ICYjNDM7Nzc0LDcgQEAgc3RhdGljIGludCBhaXJvaGFfbnB1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4gXG4gXHRlcnIgPSBhaXJvaGFfbnB1X3J1bl9maXJtd2FyZShkZXYsIGJhc2UsIFx1MDAyNnJlcyk7XG4gXHRpZiAoZXJyKVxuLVx0XHRyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIGVyciwgXCYjMzQ7ZmFpbGVkIHRvIHJ1biBucHUgZmlybXdhcmVcXG5cJiMzNDspO1xuJiM0MztcdFx0cmV0dXJuIGVycjtcbiBcbiBcdHJlZ21hcF93cml0ZShucHUtXHUwMDNlcmVnbWFwLCBSRUdfQ1JfTlBVX01JQigxMCksXG4gXHRcdCAgICAgcmVzLnN0YXJ0ICYjNDM7IE5QVV9FTjc1ODFfRklSTVdBUkVfUlYzMl9NQVhfU0laRSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwcm9iZSBhbmQgZmlybXdhcmUgbG9hZGluZyBmdW5jdGlvbnMgb2YgdGhlIEFpcm9oYSBOUFUgcGxhdGZvcm0gZHJpdmVyIChmb3IgQWlyb2hhIEVONzU4MSBTb0MpLiBQbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBTb0NzIGFyZSBub3QgcmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbW9zdGx5IGxpbWl0ZWQgdG8gZXJyb3IgbG9nZ2luZyAoZGV2X2Vycl9wcm9iZSkgYW5kIGEgbWlub3IgQVBJIGNoYW5nZSAocmVxdWVzdF9maXJtd2FyZSB0byByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWY0ZTdiNTM5NmY0NThhMDdlZDQ4YTcwNDVjNzA4MGE0ZDRlYmQxMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDExIDE3OjMxOjM4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMKaW5kZXggYjY3OWJlZDk1MmRlMy4uZGU3NTM3NmRiMTk0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jCkBAIC0yMDIsOSAmIzQzOzIwMiwxMCBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkciwKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCWludCByZXQ7CiAKLQlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZhbXA7ZncsIGZ3X25hbWUsIGRldik7CiYjNDM7CXJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KCZhbXA7ZncsIGZ3X25hbWUsIGRldik7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldCA9PSAtRU5PRU5UID8gLUVQUk9CRV9ERUZFUiA6IHJldDsKJiM0MzsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgcmV0ID09IC1FTk9FTlQgPyAtRVBST0JFX0RFRkVSIDogcmV0LAomIzQzOwkJCQkgICAgICYjMzQ7ZmFpbGVkIHRvIGxvYWQgJXNcbiYjMzQ7LCBmd19uYW1lKTsKIAogCWlmIChmdy0mZ3Q7c2l6ZSAmZ3Q7IGZ3X21heF9zaXplKSB7CiAJCWRldl9lcnIoZGV2LCAmIzM0OyVzOiBmdyBzaXplIHRvbyBvdmVybGltaXQgKCV6dSlcbiYjMzQ7LApAQCAtMjMwLDcgJiM0MzsyMzEsOCBAQCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsCiAJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfYXJyYXkoZGV2LSZndDtvZl9ub2RlLCAmIzM0O2Zpcm13YXJlLW5hbWUmIzM0OywKIAkJCQkJICAgIGZ3X25hbWVzLCBBUlJBWV9TSVpFKGZ3X25hbWVzKSk7CiAJaWYgKHJldCAhPSBBUlJBWV9TSVpFKGZ3X25hbWVzKSkKLQkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1FSU5WQUwsCiYjNDM7CQkJCSAgICAgJiMzNDtpbnZhbGlkIGZpcm13YXJlLW5hbWUgcHJvcGVydHlcbiYjMzQ7KTsKIAogCXJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIGZ3X25hbWVzWzBdLAogCQkJCSAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpOwpAQCAtNzcyLDcgJiM0Mzs3NzQsNyBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgJmFtcDtyZXMpOwogCWlmIChlcnIpCi0JCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgZXJyLCAmIzM0O2ZhaWxlZCB0byBydW4gbnB1IGZpcm13YXJlXG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gZXJyOwogCiAJcmVnbWFwX3dyaXRlKG5wdS0mZ3Q7cmVnbWFwLCBSRUdfQ1JfTlBVX01JQigxMCksCiAJCSAgICAgcmVzLnN0YXJ0ICYjNDM7IE5QVV9FTjc1ODFfRklSTVdBUkVfUlYzMl9NQVhfU0laRSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTQKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAzMDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBaXJvaGEgTlBVIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYGFpcm9oYV9ucHUuY2AgZHJpdmVyLiBTZWVtcyBsaWtlIHRoZXkmIzM5O3JlIHByaW1hcmlseSBmb2N1c2luZyBvbiBlcnJvciBoYW5kbGluZyBhbmQgaW1wcm92aW5nIGZpcm13YXJlIGxvYWRpbmcuIFRoZSBrZXkgY2hhbmdlcyBhcmU6IHJlcGxhY2luZyBgcmVxdWVzdF9maXJtd2FyZWAgd2l0aCBgcmVxdWVzdF9maXJtd2FyZV9kaXJlY3RgLCBhbmQgdGhlbiBzb21lIGFkZGl0aW9ucyBhbmQgcmVtb3ZhbHMgb2YgYGRldl9lcnJfcHJvYmVgIGNhbGxzLiBJdCBhcHBlYXJzIHRoZXkgYXJlIG5vdyB1c2luZyBgZGV2X2Vycl9wcm9iZWAgd2hlcmUgYXBwcm9wcmlhdGUgYW5kIHJlbW92aW5nIGl0IHdoZXJlIHRoZSBmdW5jdGlvbiBpdHNlbGYgaGFuZGxlcyB0aGUgZXJyb3IgYW5kIHJldHVybnMuCgpGaXJzdCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgd2hhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoOiB0aGlzIGlzIGFuIEFpcm9oYSBFTjc1ODEgU29DIG5ldHdvcmsgZHJpdmVyLiBSaWdodCwgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLCB3aGljaCB1c3VhbGx5IG1lYW5zIGl0JiMzOTtzIHByZXR0eSB0aWdodGx5IGNvdXBsZWQgdG8gdGhhdCBzcGVjaWZpYyBoYXJkd2FyZS4gR2V0dGluZyB0aGlzIHRoaW5nIHRvIHRyaWdnZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgd291bGQgbGlrZWx5IGJlIHRyaWNreSwgdW5sZXNzIHRoZXJlJiMzOTtzIGEgc3BlY2lmaWMgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIFNvQy4gVGhlIGBhaXJvaGFfbnB1X3Byb2JlYCBmdW5jdGlvbiB0YWtlcyBhIGBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2YCB3aGljaCBpcyBhIGdvb2QgY2x1ZSB0aGF0IGl0JiMzOTtzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaGFyZHdhcmUuCgpTbywgaXMgdGhpcyBldmVuIHdvcnRoIGZ1enppbmc/IFRoZSBjaGFuZ2VzIGFyZSBtYWlubHkgY29uY2VybmVkIHdpdGggYmV0dGVyIGVycm9yIGxvZ2dpbmcgYW5kIHRoZSBmaXJtd2FyZSBsb2FkaW5nIG1lY2hhbmlzbS4gU3dpdGNoaW5nIHRvIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAgaXMgaW50ZXJlc3RpbmcgLSBpdCBhdm9pZHMgdGhhdCB1c2VyLW1vZGUgaGVscGVyIGZhbGxiYWNrLiBUaGlzIG1pZ2h0IG1ha2UgdGhlIGNvZGUgbW9yZSBlZmZpY2llbnQsIG9yIGV2ZW4gZXhwb3NlIG5ldyBhdHRhY2sgc3VyZmFjZXMsIGJ1dCB0aGUgcHJpbWFyeSBmb2N1cyBzZWVtcyB0byBiZSBvbiBoYXJkZW5pbmcgdGhlIGRyaXZlci4gSSB3aWxsIGhhdmUgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSB0byBjb25maXJtIHdoZXRoZXIgaXQgaXMgZWFzaWx5IGVuYWJsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YWlyb2hhX25wdSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNzAzIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU9OD1haXJvaGEtZXRoLSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gYWlyb2hhX3BwZV9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19ORVRfQUlST0hBX05QVSkgJiM0Mzs9IGFpcm9oYV9ucHUub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NjM4PXN0cnVjdCBhaXJvaGFfZXRoIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX2V0aC5oLTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjQ2Olx0c3RydWN0IGFpcm9oYV9ucHUgX19yY3UgKm5wdTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM9MTA1PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTA6c3RydWN0IGFpcm9oYV9ucHVfZncge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xMTEtXHRjb25zdCBjaGFyICpuYW1lO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTU6c3RydWN0IGFpcm9oYV9ucHVfc29jX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTY6XHRzdHJ1Y3QgYWlyb2hhX25wdV9mdyBmd19ydjMyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTc6XHRzdHJ1Y3QgYWlyb2hhX25wdV9mdyBmd19kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xMTgtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTE1Nj1zdHJ1Y3Qgd2xhbl9tYm94X2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxNjM6c3RhdGljIGludCBhaXJvaGFfbnB1X3NlbmRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBmdW5jX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xNjQtXHRcdFx0ICAgICAgIHZvaWQgKnAsIGludCBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxOTk6c3RhdGljIGludCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIwMC1cdFx0XHRcdCAgICBjb25zdCBjaGFyICpmd19uYW1lLCBpbnQgZndfbWF4X3NpemUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz0yMjQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyMjU6YWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yMjYtXHRcdFx0XHQgIHZvaWQgX19pb21lbSAqYmFzZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjM3Olx0cmV0ID0gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKGRldiwgYWRkciwgZndfbmFtZXNbMF0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIzOC1cdFx0XHRcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyNDI6XHRyZXR1cm4gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKGRldiwgYmFzZSAmIzQzOyBSRUdfTlBVX0xPQ0FMX1NSQU0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI0My1cdFx0XHRcdFx0ZndfbmFtZXNbMV0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI0NzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICpiYXNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDgtXHRcdFx0XHQgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQ5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjUwOlx0Y29uc3Qgc3RydWN0IGFpcm9oYV9ucHVfc29jX2RhdGEgKnNvYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjUxLVx0dm9pZCBfX2lvbWVtICphZGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjY1LVx0aWYgKG9mX2ZpbmRfcHJvcGVydHkoZGV2LVx1MDAzZW9mX25vZGUsIFwmIzM0O2Zpcm13YXJlLW5hbWVcJiMzNDssIE5VTEwpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyNjY6XHRcdHJldHVybiBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoZGV2LCBhZGRyLCBiYXNlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjY3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNjgtXHQvKiBMb2FkIHJ2MzIgbnB1IGZpcm13YXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI2OTpcdHJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIHNvYy1cdTAwM2Vmd19ydjMyLm5hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI3MC1cdFx0XHRcdCAgICAgICBzb2MtXHUwMDNlZndfcnYzMi5tYXhfc2l6ZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNzQtXHQvKiBMb2FkIGRhdGEgbnB1IGZpcm13YXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI3NTpcdHJldHVybiBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBiYXNlICYjNDM7IFJFR19OUFVfTE9DQUxfU1JBTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjc2LVx0XHRcdFx0XHRzb2MtXHUwMDNlZndfZGF0YS5uYW1lLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyODA6c3RhdGljIGlycXJldHVybl90IGFpcm9oYV9ucHVfbWJveF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKm5wdV9pbnN0YW5jZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjgxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjgyOlx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdSA9IG5wdV9pbnN0YW5jZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjgzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyOTU6c3RhdGljIHZvaWQgYWlyb2hhX25wdV93ZHRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI5Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI5NzpcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI5ODpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI5OS1cdHZvaWQgKmR1bXA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjMwMzpcdGNvcmUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGFpcm9oYV9ucHVfY29yZSwgd2R0X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMDQtXHRucHUgPSBjb3JlLVx1MDAzZW5wdTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzE4OnN0YXRpYyBpcnFyZXR1cm5fdCBhaXJvaGFfbnB1X3dkdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNvcmVfaW5zdGFuY2UpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMxOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjMyMDpcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmUgPSBjb3JlX2luc3RhbmNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozMjE6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gY29yZS1cdTAwM2VucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMyMi1cdGludCBjID0gY29yZSAtIFx1MDAyNm5wdS1cdTAwM2Vjb3Jlc1swXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzMzOnN0YXRpYyBpbnQgYWlyb2hhX25wdV9wcGVfaW5pdChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMzQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozNDc6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzQ4LVx0XHRcdFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM1NDpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2RlaW5pdChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozNjY6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzY3LVx0XHRcdFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM3MzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2ZsdXNoX3NyYW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNzQtXHRcdFx0XHRcdCAgICAgZG1hX2FkZHJfdCBmb2VfYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM4OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzkwOlx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM5MS1cdFx0XHRcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozOTc6c3RhdGljIGludCBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzk4LVx0XHRcdFx0ICAgICAgIGRtYV9hZGRyX3QgZm9lX2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQxNTpcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MTYtXHRcdFx0XHQgIHNpemVvZigqcHBlX2RhdGEpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQyMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDI0Olx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQyNS1cdFx0XHRcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0MzI6c3RhdGljIGludCBhaXJvaGFfbnB1X3BwZV9zdGF0c19zZXR1cChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MzMtXHRcdFx0XHQgICAgICBkbWFfYWRkcl90IGZvZV9zdGF0c19hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0NDc6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ4LVx0XHRcdFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00NjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQ2MzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfd2xhbl9tc2dfc2VuZChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgaWZpbmRleCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDY0Olx0XHRcdFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgZnVuY19pZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDY1LVx0XHRcdFx0ICAgIHZvaWQgKmRhdGEsIGludCBkYXRhX2xlbiwgZ2ZwX3QgZ2ZwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDc5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0ODA6XHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfV0lGSSwgd2xhbl9kYXRhLCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00ODEtXHRrZnJlZSh3bGFuX2RhdGEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0ODY6c3RhdGljIGludCBhaXJvaGFfbnB1X3dsYW5fbXNnX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgaWZpbmRleCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDg3Olx0XHRcdFx0ICAgZW51bSBhaXJvaGFfbnB1X3dsYW5fZ2V0X2NtZCBmdW5jX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00ODgtXHRcdFx0XHQgICB2b2lkICpkYXRhLCBpbnQgZGF0YV9sZW4sIGdmcF90IGdmcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTAyOlx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1dJRkksIHdsYW5fZGF0YSwgbGVuKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTAzLVx0aWYgKCFlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz01MTA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTE6YWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTEyLVx0XHRcdFx0ICAgIGludCBpZmluZGV4LCBjb25zdCBjaGFyICpuYW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTM6XHRcdFx0XHQgICAgZW51bSBhaXJvaGFfbnB1X3dsYW5fc2V0X2NtZCBmdW5jX2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTI1LVx0dmFsID0gcmVzLnN0YXJ0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MjY6XHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kKG5wdSwgaWZpbmRleCwgZnVuY19pZCwgXHUwMDI2dmFsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MjctXHRcdFx0XHRcdHNpemVvZih2YWwpLCBHRlBfS0VSTkVMKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTMwOnN0YXRpYyBpbnQgYWlyb2hhX25wdV93bGFuX2luaXRfbWVtb3J5KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUzMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjUzMjpcdGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgY21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX05QVV9CQU5EMF9PTkNQVTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTMzLVx0dTMyIHZhbCA9IDA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjUzNjpcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9tc2dfc2VuZChucHUsIDEsIGNtZCwgXHUwMDI2dmFsLCBzaXplb2YodmFsKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTM3LVx0XHRcdFx0ICAgICAgIEdGUF9LRVJORUwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTQxLVx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX1RYX0JVRl9DSEVDS19BRERSO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NDI6XHRlcnIgPSBhaXJvaGFfbnB1X3dsYW5fc2V0X3Jlc2VydmVkX21lbW9yeShucHUsIDAsIFwmIzM0O3R4LWJ1ZmlkXCYjMzQ7LCBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NDMtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTQ2LVx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX1BLVF9CVUZfQUREUjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTQ3Olx0ZXJyID0gYWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkobnB1LCAwLCBcJiMzNDtwa3RcJiMzNDssIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU0OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NTEtXHRjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfVFhfUEtUX0JVRl9BRERSO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NTI6XHRlcnIgPSBhaXJvaGFfbnB1X3dsYW5fc2V0X3Jlc2VydmVkX21lbW9yeShucHUsIDAsIFwmIzM0O3R4LXBrdFwmIzM0OywgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTUzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU1OC1cdFx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX0RSQU1fQkFfTk9ERV9BRERSO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NTk6XHRcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9zZXRfcmVzZXJ2ZWRfbWVtb3J5KG5wdSwgMCwgXCYjMzQ7YmFcJiMzNDssIGNtZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2MC1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2NC1cdGNtZCA9IFdMQU5fRlVOQ19TRVRfV0FJVF9JU19GT1JDRV9UT19DUFU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU2NTpcdHJldHVybiBhaXJvaGFfbnB1X3dsYW5fbXNnX3NlbmQobnB1LCAwLCBjbWQsIFx1MDAyNnZhbCwgc2l6ZW9mKHZhbCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2Ni1cdFx0XHRcdFx0R0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU2OTpzdGF0aWMgdTMyIGFpcm9oYV9ucHVfd2xhbl9xdWV1ZV9hZGRyX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcWlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NzAtXHRcdFx0XHRcdCAgYm9vbCB4bWl0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1Nzg6c3RhdGljIHZvaWQgYWlyb2hhX25wdV93bGFuX2lycV9zdGF0dXNfc2V0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU3OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01ODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU4MzpzdGF0aWMgdTMyIGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTg0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTkxOnN0YXRpYyB2b2lkIGFpcm9oYV9ucHVfd2xhbl9pcnFfZW5hYmxlKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01OTIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1OTY6c3RhdGljIHZvaWQgYWlyb2hhX25wdV93bGFuX2lycV9kaXNhYmxlKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBxKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01OTcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2MDE6c3RydWN0IGFpcm9oYV9ucHUgKmFpcm9oYV9ucHVfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjAyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwNC1cdHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjYwNTpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY0OC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY0OTpFWFBPUlRfU1lNQk9MX0dQTChhaXJvaGFfbnB1X2dldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjUxOnZvaWQgYWlyb2hhX25wdV9wdXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1NS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY1NjpFWFBPUlRfU1lNQk9MX0dQTChhaXJvaGFfbnB1X3B1dCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSBlbjc1ODFfbnB1X3NvY19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NTktXHQuZndfcnYzMiA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSBhbjc1ODNfbnB1X3NvY19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NzAtXHQuZndfcnYzMiA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY3OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjgwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX2Fpcm9oYV9ucHVfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjgxLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2Fpcm9oYSxlbjc1ODEtbnB1XCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmVuNzU4MV9ucHVfc29jX2RhdGEgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY4NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2ODU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgb2ZfYWlyb2hhX25wdV9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM9Njg3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyByZWdtYXBfY29uZmlnID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2OTU6c3RhdGljIGludCBhaXJvaGFfbnB1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5Ny1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBkZXYtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2OTg6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02OTktXHRzdHJ1Y3QgcmVzb3VyY2UgcmVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzEyLVx0bnB1LVx1MDAzZWRldiA9IGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzEzOlx0bnB1LVx1MDAzZW9wcy5wcGVfaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2luaXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxNDpcdG5wdS1cdTAwM2VvcHMucHBlX2RlaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2RlaW5pdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzE1Olx0bnB1LVx1MDAzZW9wcy5wcGVfaW5pdF9zdGF0cyA9IGFpcm9oYV9ucHVfcHBlX3N0YXRzX3NldHVwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTY6XHRucHUtXHUwMDNlb3BzLnBwZV9mbHVzaF9zcmFtX2VudHJpZXMgPSBhaXJvaGFfbnB1X3BwZV9mbHVzaF9zcmFtX2VudHJpZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxNzpcdG5wdS1cdTAwM2VvcHMucHBlX2ZvZV9jb21taXRfZW50cnkgPSBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxODpcdG5wdS1cdTAwM2VvcHMud2xhbl9pbml0X3Jlc2VydmVkX21lbW9yeSA9IGFpcm9oYV9ucHVfd2xhbl9pbml0X21lbW9yeTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzE5Olx0bnB1LVx1MDAzZW9wcy53bGFuX3NlbmRfbXNnID0gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjA6XHRucHUtXHUwMDNlb3BzLndsYW5fZ2V0X21zZyA9IGFpcm9oYV9ucHVfd2xhbl9tc2dfZ2V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjE6XHRucHUtXHUwMDNlb3BzLndsYW5fZ2V0X3F1ZXVlX2FkZHIgPSBhaXJvaGFfbnB1X3dsYW5fcXVldWVfYWRkcl9nZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcyMjpcdG5wdS1cdTAwM2VvcHMud2xhbl9zZXRfaXJxX3N0YXR1cyA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX3NldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzIzOlx0bnB1LVx1MDAzZW9wcy53bGFuX2dldF9pcnFfc3RhdHVzID0gYWlyb2hhX25wdV93bGFuX2lycV9zdGF0dXNfZ2V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjQ6XHRucHUtXHUwMDNlb3BzLndsYW5fZW5hYmxlX2lycSA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfZW5hYmxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjU6XHRucHUtXHUwMDNlb3BzLndsYW5fZGlzYWJsZV9pcnEgPSBhaXJvaGFfbnB1X3dsYW5faXJxX2Rpc2FibGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTcyNi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTczOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzM5Olx0ZXJyID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwgYWlyb2hhX25wdV9tYm94X2hhbmRsZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0MC1cdFx0XHQgICAgICAgSVJRRl9TSEFSRUQsIFwmIzM0O2Fpcm9oYS1ucHUtbWJveFwmIzM0OywgbnB1KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0NC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUobnB1LVx1MDAzZWNvcmVzKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzQ1Olx0XHRzdHJ1Y3QgYWlyb2hhX25wdV9jb3JlICpjb3JlID0gXHUwMDI2bnB1LVx1MDAzZWNvcmVzW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjc1NDpcdFx0ZXJyID0gZGV2bV9yZXF1ZXN0X2lycShkZXYsIGlycSwgYWlyb2hhX25wdV93ZHRfaGFuZGxlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzU1LVx0XHRcdFx0ICAgICAgIElSUUZfU0hBUkVELCBcJiMzNDthaXJvaGEtbnB1LXdkdFwmIzM0OywgY29yZSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjc1OTpcdFx0SU5JVF9XT1JLKFx1MDAyNmNvcmUtXHUwMDNld2R0X3dvcmssIGFpcm9oYV9ucHVfd2R0X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NjAtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjc3NTpcdGVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgXHUwMDI2cmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzc2LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Nzk2Olx0aWYgKCFhaXJvaGFfbnB1X3dsYW5fbXNnX2dldChucHUsIDAsIFdMQU5fRlVOQ19HRVRfV0FJVF9OUFVfVkVSU0lPTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzk3LVx0XHRcdFx0ICAgICBcdTAwMjZ2YWwsIHNpemVvZih2YWwpLCBHRlBfS0VSTkVMKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODA2OnN0YXRpYyB2b2lkIGFpcm9oYV9ucHVfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgwNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgwODpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODA5LVx0aW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgxNTpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhaXJvaGFfbnB1X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE2Olx0LnByb2JlID0gYWlyb2hhX25wdV9wcm9iZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE3Olx0LnJlbW92ZSA9IGFpcm9oYV9ucHVfcmVtb3ZlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MTgtXHQuZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MTktXHRcdC5uYW1lID0gXCYjMzQ7YWlyb2hhLW5wdVwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIwOlx0XHQub2ZfbWF0Y2hfdGFibGUgPSBvZl9haXJvaGFfbnB1X21hdGNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjEtXHR9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz01OTg9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9mb2VfZmxvd19zdGF0X2VudHJ5X3Jlc2V0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjU5OTpcdFx0XHRcdFx0XHQgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtNjAwLVx0XHRcdFx0XHRcdCBpbnQgaW5kZXgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz02MDY9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9mb2VfZmxvd19zdGF0c19yZXNldChzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo2MDc6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy02MDgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9NjE5PXN0YXRpYyB2b2lkIGFpcm9oYV9wcGVfZm9lX2Zsb3dfc3RhdHNfdXBkYXRlKHN0cnVjdCBhaXJvaGFfcHBlICpwcGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjYyMDpcdFx0XHRcdFx0ICAgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy02MjEtXHRcdFx0XHRcdCAgICAgc3RydWN0IGFpcm9oYV9mb2VfZW50cnkgKmh3ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTc1Nj1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2NvbW1pdF9lbnRyeShzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtNzYzLVx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IHBwZS1cdTAwM2VldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjc2NDpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTc2NS1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MTI5Mj12b2lkIGFpcm9oYV9wcGVfZm9lX2VudHJ5X2dldF9zdGF0cyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLCB1MzIgaGFzaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEyOTYtXHRpbnQgcHBlX251bV9zdGF0c19lbnRyaWVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxMjk3Olx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTI5OC1cdHUzMiBpbmRleDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTEzNzA9c3RhdGljIGludCBhaXJvaGFfcHBlX2ZsdXNoX3NyYW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM4ODpzdGF0aWMgc3RydWN0IGFpcm9oYV9ucHUgKmFpcm9oYV9wcGVfbnB1X2dldChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMzg5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM5MDpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBhaXJvaGFfbnB1X2dldChldGgtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEzOTMtXHRcdHJlcXVlc3RfbW9kdWxlKFwmIzM0O2Fpcm9oYS1ucHVcJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxMzk0Olx0XHRucHUgPSBhaXJvaGFfbnB1X2dldChldGgtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5NS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTE0MjM9c3RhdGljIGludCBhaXJvaGFfcHBlX29mZmxvYWRfc2V0dXAoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTQyNC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE0MjU6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gYWlyb2hhX3BwZV9ucHVfZ2V0KGV0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0MjYtXHRzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlID0gZXRoLVx1MDAzZXBwZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0NTctZXJyb3JfbnB1X3B1dDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTQ1ODpcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0NTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNjUzPXZvaWQgYWlyb2hhX3BwZV9kZWluaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY1NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE2NTU6XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNjU2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY2My1cdFx0bnB1LVx1MDAzZW9wcy5wcGVfZGVpbml0KG5wdSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjE2NjQ6XHRcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE2NjUtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz04MDI9bXQ3Nl9kbWFfYWxsb2NfcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE5LVx0ZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc19ucHVfdHgocSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjgyMDpcdFx0c2l6ZSA9IHNpemVvZihzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTgyMS1cdGVsc2UgaWYgKG10NzZfcXVldWVfaXNfbnB1X3J4KHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4MjI6XHRcdHNpemUgPSBzaXplb2Yoc3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04MjMtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC03OC1cdGlmICgoX3EpLVx1MDAzZWZsYWdzIFx1MDAyNiBNVF9RRkxBR19OUFUpIHtcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjc5Olx0XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1x0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC04MC1cdFx0XHRcdFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtOTUtXHRpZiAoKF9xKS1cdTAwM2VmbGFncyBcdTAwMjYgTVRfUUZMQUdfTlBVKSB7XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaDo5NjpcdFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtOTctXHRcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD03MTU9c3RydWN0IG10NzZfbW1pbyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtNzI1LVx0c3RydWN0IGFpcm9oYV9wcGVfZGV2IF9fcmN1ICpwcGVfZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6NzI2Olx0c3RydWN0IGFpcm9oYV9ucHUgX19yY3UgKm5wdTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTcyNy1cdHBoeXNfYWRkcl90IHBoeV9hZGRyO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE3NDI9c3RhdGljIGlubGluZSBib29sIG10NzZfcHBlX2RldmljZV9hY3RpdmUoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NDc6c3RhdGljIGlubGluZSBpbnQgbXQ3Nl9ucHVfc2VuZF9tc2coc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgaW50IGlmaW5kZXgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxNzQ4Olx0XHRcdFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc0OS1cdFx0XHRcdCAgICB1MzIgdmFsLCBnZnBfdCBnZnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzUwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTE6XHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX3NlbmRfbXNnKG5wdSwgaWZpbmRleCwgY21kLCBcdTAwMjZ2YWwsIHNpemVvZih2YWwpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc1Mi1cdFx0XHRcdFx0Z2ZwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzU0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc1NTpzdGF0aWMgaW5saW5lIGludCBtdDc2X25wdV9nZXRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc1NjpcdFx0XHRcdCAgIGVudW0gYWlyb2hhX25wdV93bGFuX2dldF9jbWQgY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc1Ny1cdFx0XHRcdCAgIHUzMiAqdmFsLCBnZnBfdCBnZnApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzU4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTk6XHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX2dldF9tc2cobnB1LCBpZmluZGV4LCBjbWQsIHZhbCwgc2l6ZW9mKCp2YWwpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc2MC1cdFx0XHRcdCAgICAgICBnZnApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz03MDc9c3RhdGljIHZvaWQgbXQ3OTk2X3J4X3BvbGxfY29tcGxldGUoc3RydWN0IG10NzZfZGV2ICptZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy03MTAtXHRpZiAocSA9PSBNVF9SWFFfTlBVMCB8fCBxID09IE1UX1JYUV9OUFUxKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6NzExOlx0XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTcxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzE0LVx0XHRpZiAobnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjcxNTpcdFx0XHRhaXJvaGFfbnB1X3dsYW5fZW5hYmxlX2lycShucHUsIHEgLSBNVF9SWFFfTlBVMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzE2LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz0xMT1zdGF0aWMgaW50IG10Nzk5Ml9ucHVfdHhyeF9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjEyOlx0XHRcdFx0XHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTcyPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV90eHJ4X29mZmxvYWRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NzM6XHRcdFx0XHRcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM9MjAwPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjIwMTpcdFx0XHRcdCAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yMDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTI0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjI0MjpzdGF0aWMgaW50IG10Nzk5Ml9ucHVfcnhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTI0My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6Mjc3OnN0YXRpYyBpbnQgbXQ3OTk2X25wdV9yeGRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjc4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0zNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzozNDE6c3RhdGljIGludCBtdDc5OTZfbnB1X3R4ZF9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0zNDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQwMj1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfcnhfZXZlbnRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDAzOlx0XHRcdFx0ICAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy00MDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQzNz1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfc2V0X3BjaWVfYWRkcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDM4Olx0XHRcdFx0ICAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy00Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQ3MT1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfdHhfZG9uZV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzo0NzI6XHRcdFx0XHQgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNDczLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz01MTY9aW50IF9fbXQ3OTk2X25wdV9od19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01MTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NTE4Olx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTUxOS1cdGludCBpLCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTUzLVx0Zm9yIChpID0gTVRfUlhRX05QVTA7IGkgXHUwMDNjPSBNVF9SWFFfTlBVMTsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzo1NTQ6XHRcdGFpcm9oYV9ucHVfd2xhbl9lbmFibGVfaXJxKG5wdSwgaSAtIE1UX1JYUV9OUFUwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTU1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz01OTQ9aW50IG10Nzk5Nl9ucHVfaHdfc3RvcChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTk1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjU5NjpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01OTctXHRpbnQgaSwgZXJyID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jPTE3PWludCBtdDc2X25wdV9maWxsX3J4X3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxLVx0d2hpbGUgKHEtXHUwMDNlcXVldWVkIFx1MDAzYyBxLVx1MDAzZW5kZXNjIC0gMSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoyMjpcdFx0c3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MgKmRlc2MgPSAodm9pZCAqKXEtXHUwMDNlZGVzYztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjMtXHRcdHN0cnVjdCBtdDc2X3F1ZXVlX2VudHJ5ICplID0gXHUwMDI2cS1cdTAwM2VlbnRyeVtxLVx1MDAzZWhlYWRdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9NjI9c3RhdGljIHN0cnVjdCBza19idWZmICptdDc2X25wdV9kZXF1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtNjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzo2NjpcdHN0cnVjdCBhaXJvaGFfbnB1X3J4X2RtYV9kZXNjICpkZXNjID0gKHZvaWQgKilxLVx1MDAzZWRlc2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTY3LVx0aW50IGksIG5mcmFtZXMsIGluZGV4ID0gcS1cdTAwM2V0YWlsO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MTQ0PXN0YXRpYyBpbnQgbXQ3Nl9ucHVfcnhfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xNDctXHRlbnVtIG10NzZfcnhxX2lkIHFpZCA9IG5hcGkgLSBkZXYtXHUwMDNlbmFwaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MTQ4Olx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTQ5LVx0aW50IGRvbmUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MTgwPXN0YXRpYyBpcnFyZXR1cm5fdCBtdDc2X25wdV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpxX2luc3RhbmNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTg1LVx0aW50IGluZGV4ID0gcWlkIC0gTVRfUlhRX05QVTA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjE4NjpcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTE4Ny1cdHUzMiBzdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjE5NTpcdHN0YXR1cyA9IGFpcm9oYV9ucHVfd2xhbl9nZXRfaXJxX3N0YXR1cyhucHUsIGluZGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MTk2Olx0YWlyb2hhX25wdV93bGFuX3NldF9pcnFfc3RhdHVzKG5wdSwgc3RhdHVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxOTg6XHRhaXJvaGFfbnB1X3dsYW5fZGlzYWJsZV9pcnEobnB1LCBpbmRleCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTE5OS1cdG5hcGlfc2NoZWR1bGUoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbcWlkXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0yMDY9aW50IG10NzZfbnB1X2RtYV9hZGRfYnVmKHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxMC1cdHUxNiB0eHdpX2xlbiA9IG1pbl90KHUxNiwgcGh5LVx1MDAzZWRldi1cdTAwM2VkcnYtXHUwMDNldHh3aV9zaXplLCBOUFVfVFhXSV9MRU4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoyMTE6XHRzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyAqZGVzYyA9ICh2b2lkICopcS1cdTAwM2VkZXNjO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0yMTItXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MjM0PXZvaWQgbXQ3Nl9ucHVfdHhkZXNjX2NsZWFudXAoc3RydWN0IG10NzZfcXVldWUgKnEsIGludCBpbmRleClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjM1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MjM2Olx0c3RydWN0IGFpcm9oYV9ucHVfdHhfZG1hX2Rlc2MgKmRlc2MgPSAodm9pZCAqKXEtXHUwMDNlZGVzYztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjM3LVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTc6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc2MjEKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiAxMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBBaXJvaGEgTlBVIERyaXZlciBMYW5kc2NhcGUqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBBaXJvaGEgTlBVIGRyaXZlci4gTXkgaW5pdGlhbCBtZW50YWwgbWFwIHNob3dzIGl0JiMzOTtzIGludGVncmF0ZWQgYWNyb3NzIGEgZmV3IGRpZmZlcmVudCBhcmVhcyBvZiB0aGUgbmV0d29ya2luZyBzdGFjay4gU3BlY2lmaWNhbGx5LCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jYCBhcmUgdXNpbmcgaXQsIHdoaWNoIGlzIGV4cGVjdGVkIGdpdmVuIHRoZSAmIzM0O2V0aGVybmV0JiMzNDsgY29udGV4dC4gSW50cmlndWluZ2x5LCBpdCYjMzk7cyAqYWxzbyogYmVpbmcgZW1wbG95ZWQgaW4gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIHNwYWNlLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuY2AuIFRoYXQmIzM5O3MgYSBwb2ludCBvZiBwb3RlbnRpYWwgc3luZXJneSBvciwgcGVyaGFwcywgYSBzbGlnaHRseSBtb3JlIGNvbXBsZXggYXJjaGl0ZWN0dXJlIHRvIHVuZGVyc3RhbmQuCgpUaGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgY29yZSBBaXJvaGEgTlBVIGRyaXZlciBmaWxlLCBgYWlyb2hhX25wdS5jYCwgaXMgc3RyYWlnaHRmb3J3YXJkIC0gaXQmIzM5O3MgY29udHJvbGxlZCBieSBgQ09ORklHX05FVF9BSVJPSEFfTlBVYC4gVGhhdCYjMzk7cyBnb29kOyBtYWtlcyBmb3IgZWFzeSBlbmFibGVtZW50IGFuZCBkaXNhYmxpbmcuCgpOb3csIG15IG5leHQgc3RlcCBpcyBjbGVhci4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBkcml2ZXImIzM5O3MgZ2VuZXJhbCBjb25maWd1cmF0aW9uLCBJIG5lZWQgdG8gY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWdgLiBUaGF0JiMzOTtsbCBiZSB3aGVyZSB0aGUgb3ZlcmFyY2hpbmcgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGFyZSBkZWZpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O05FVF9BSVJPSEFfTlBVJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTg9aWYgTkVUX1ZFTkRPUl9BSVJPSEFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTExLVx0dHJpc3RhdGUgXCYjMzQ7QWlyb2hhIE5QVSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc9MTg9Y29uZmlnIE5FVF9BSVJPSEFcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yMC1cdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc6MjE6XHRzZWxlY3QgTkVUX0FJUk9IQV9OUFVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTIyLVx0c2VsZWN0IFBBR0VfUE9PTFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTI3PWNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0yOS1cdGJvb2wgXCYjMzQ7QWlyb2hhIGZsb3cgc3RhdHNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlx0ZGVwZW5kcyBvbiBORVRfQUlST0hBIFx1MDAyNlx1MDAyNiBORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctMzEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlPTg9YWlyb2hhLWV0aC0kKENPTkZJR19ERUJVR19GUykgJiM0Mzs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0FJUk9IQV9OUFUpICYjNDM7PSBhaXJvaGFfbnB1Lm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9NDA9Y29uZmlnIE1UNzZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjQyOlx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc9MTY9Y29uZmlnIE1UNzk5Nl9OUFVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE4LVx0ZGVwZW5kcyBvbiBNVDc5OTZFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE5Olx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0yMC1cdHNlbGVjdCBNVDc2X05QVVxuLS1cbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oPTE2Nj1zdHJ1Y3QgYWlyb2hhX25wdSB7XG5pbmNsdWRlL2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaDoxNjc6I2lmIChJU19CVUlMVElOKENPTkZJR19ORVRfQUlST0hBX05QVSkgfHwgSVNfTU9EVUxFKENPTkZJR19ORVRfQUlST0hBX05QVSkpXG5pbmNsdWRlL2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaC0xNjgtXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XG4tLVxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmgtMjEwLVxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmg6MjExOiNpZiAoSVNfQlVJTFRJTihDT05GSUdfTkVUX0FJUk9IQV9OUFUpIHx8IElTX01PRFVMRShDT05GSUdfTkVUX0FJUk9IQV9OUFUpKVxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmgtMjEyLXN0cnVjdCBhaXJvaGFfbnB1ICphaXJvaGFfbnB1X2dldChzdHJ1Y3QgZGV2aWNlICpkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTczCgkJCQkJCQlvdXRwdXQ6IDExOQoJCQkJCQkJdGhvdWdodHM6IDUwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmc9ZmFsc2U6IEFpcm9oYSBOUFUgRHJpdmVyIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zIGZvciB0aGUgQWlyb2hhIE5QVSBkcml2ZXI6IGBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVgLCBgYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzYCwgYW5kIGBhaXJvaGFfbnB1X3Byb2JlYC4gVGhlIGtleSBjaGFuZ2VzIGhlcmUgYXJlIGEgc3dpdGNoIGZyb20gYHJlcXVlc3RfZmlybXdhcmVgIHRvIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAsIGFuZCBzb21lIGFkZGl0aW9ucyBvciByZW1vdmFscyBvZiBgZGV2X2Vycl9wcm9iZWAuCgpGcmFua2x5LCB0aGlzIGRvZXNuJiMzOTt0IHNjcmVhbSAmIzM0O2Z1enppbmcgdGFyZ2V0JiMzNDsgdG8gbWUuIFRoZSBhbHRlcmF0aW9ucyBhcmUgcHJpbWFyaWx5IGFyb3VuZCBlcnJvciBoYW5kbGluZyBhbmQgbG9nZ2luZyDigJMgdGhvc2UgYGRldl9lcnJfcHJvYmVgIGFkZGl0aW9ucy9yZW1vdmFscyBhcmUganVzdCB0aGF0LCBsb2dnaW5nIG1vZGlmaWNhdGlvbnMuIFRoZSBgcmVxdWVzdF9maXJtd2FyZV9kaXJlY3RgIGNoYW5nZSBpcyBhIGJpdCBtb3JlIGludGVyZXN0aW5nLCBidXQgaXQmIzM5O3Mgc3RpbGwgYSBzcGVjaWZpYyBBUEkgY2FsbCBkdXJpbmcgcHJvYmUsIGFuZCB0aGUgZnVuY3Rpb25hbCBkaWZmZXJlbmNlIGlzIGFib3V0IGF2b2lkaW5nIHRoZSB1c2VyLW1vZGUgaGVscGVyIGZvciBmaXJtd2FyZSBsb2FkaW5nLiBCdXQgdXNlci1tb2RlIGhlbHBlcnMgYXJlIHVzdWFsbHkgZGlzYWJsZWQgdGhlc2UgZGF5cyBhbmQgZXZlbiBpZiBlbmFibGVkLCB0aGlzIGlzIGEgbmFycm93IHByb2JlLXRpbWUgY2hhbmdlLgoKSGVyZSYjMzk7cyB0aGUga2lja2VyOiBUaGlzIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciBhbiBBaXJvaGEgRU43NTgxIFNvQywgc3BlY2lmaWNhbGx5IGlkZW50aWZpZWQgYnkgdGhlIGRldmljZSB0cmVlIG5vZGUgYCYjMzQ7YWlyb2hhLGVuNzU4MS1ucHUmIzM0O2AuIEFzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGlzIHZlcnkgc3BlY2lmaWMgU29DLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZSBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIHVubGVzcyB0aGVyZSYjMzk7cyBzcGVjaWZpYyBlbXVsYXRpb24gZm9yIHRoaXMgcGFydGljdWxhciBBaXJvaGEgTlBVLiBBbmQgSSYjMzk7bSBwcmV0dHkgY2VydGFpbiB0aGVyZSBpc24mIzM5O3QuCgpOb3csIGxldCYjMzk7cyByZWNhbGwgdGhlIGluc3RydWN0aW9ucy4gV2UmIzM5O3JlIHRvbGQgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBwYXRjaCBpbnZvbHZlcyB0aGluZ3MgbGlrZSBkb2N1bWVudGF0aW9uLCBLY29uZmlnIGNoYW5nZXMsIGNvZGUgY29tbWVudHMsIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcsIGNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMvbWFjcm9zIHRoYXQgZG9uJiMzOTt0IGFsdGVyIGV4ZWN1dGlvbiBmbG93LCBvciBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBwYXRjaCB0aWNrcyB0aGF0IGJveC4KClRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgYWJvdXQgbG9nZ2luZywgYW5kIHRoZSBmaXJtd2FyZSBsb2FkaW5nIEFQSSBjaGFuZ2Ugb2NjdXJzIGR1cmluZyBwcm9iZSBmb3IgYSBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgbWVhbnMgdGhpcyBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uIHNldHVwcy4gSXQmIzM5O3MgZXNzZW50aWFsbHkgdGhlIGVwaXRvbWUgb2YgJiMzNDt1bnJlYWNoYWJsZSBjb2RlJiMzNDsgaW4gdGhpcyBjb250ZXh0LiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IGluIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHByb2JlIGFuZCBmaXJtd2FyZSBsb2FkaW5nIGZ1bmN0aW9ucyBvZiB0aGUgQWlyb2hhIE5QVSBwbGF0Zm9ybSBkcml2ZXIgKGZvciBBaXJvaGEgRU43NTgxIFNvQykuIFBsYXRmb3JtIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIFNvQ3MgYXJlIG5vdCByZWFjaGFibGUgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgbGltaXRlZCB0byBlcnJvciBsb2dnaW5nIChkZXZfZXJyX3Byb2JlKSBhbmQgYSBtaW5vciBBUEkgY2hhbmdlIChyZXF1ZXN0X2Zpcm13YXJlIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwcm9iZSBhbmQgZmlybXdhcmUgbG9hZGluZyBmdW5jdGlvbnMgb2YgdGhlIEFpcm9oYSBOUFUgcGxhdGZvcm0gZHJpdmVyIChmb3IgQWlyb2hhIEVONzU4MSBTb0MpLiBQbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBTb0NzIGFyZSBub3QgcmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbW9zdGx5IGxpbWl0ZWQgdG8gZXJyb3IgbG9nZ2luZyAoZGV2X2Vycl9wcm9iZSkgYW5kIGEgbWlub3IgQVBJIGNoYW5nZSAocmVxdWVzdF9maXJtd2FyZSB0byByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDE3OjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxNzozMTo0MC41NjQxNDc5OTZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDQ0MzQ3NTU3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwcm9iZSBhbmQgZmlybXdhcmUgbG9hZGluZyBmdW5jdGlvbnMgb2YgdGhlIEFpcm9oYSBOUFUgcGxhdGZvcm0gZHJpdmVyIChmb3IgQWlyb2hhIEVONzU4MSBTb0MpLiBQbGF0Zm9ybSBkcml2ZXJzIGZvciBzcGVjaWZpYyBoYXJkd2FyZSBTb0NzIGFyZSBub3QgcmVhY2hhYmxlIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIEZ1cnRoZXJtb3JlLCB0aGUgY2hhbmdlcyBhcmUgbW9zdGx5IGxpbWl0ZWQgdG8gZXJyb3IgbG9nZ2luZyAoZGV2X2Vycl9wcm9iZSkgYW5kIGEgbWlub3IgQVBJIGNoYW5nZSAocmVxdWVzdF9maXJtd2FyZSB0byByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxNzozMTo0MC41NjQxNTMwOTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyODUzMTk3NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5ZjRlN2I1Mzk2ZjQ1OGEwN2VkNDhhNzA0NWM3MDgwYTRkNGViZDExXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDExIDE3OjMxOjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXFxuaW5kZXggYjY3OWJlZDk1MmRlMy4uZGU3NTM3NmRiMTk0NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuY1xcbkBAIC0yMDIsOSArMjAyLDEwIEBAIHN0YXRpYyBpbnQgYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICphZGRyLFxcbiBcXHRjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3O1xcbiBcXHRpbnQgcmV0O1xcbiBcXG4tXFx0cmV0ID0gcmVxdWVzdF9maXJtd2FyZShcXHUwMDI2ZncsIGZ3X25hbWUsIGRldik7XFxuK1xcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFxcdTAwMjZmdywgZndfbmFtZSwgZGV2KTtcXG4gXFx0aWYgKHJldClcXG4tXFx0XFx0cmV0dXJuIHJldCA9PSAtRU5PRU5UID8gLUVQUk9CRV9ERUZFUiA6IHJldDtcXG4rXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQgPT0gLUVOT0VOVCA/IC1FUFJPQkVfREVGRVIgOiByZXQsXFxuK1xcdFxcdFxcdFxcdCAgICAgXFxcImZhaWxlZCB0byBsb2FkICVzXFxcXG5cXFwiLCBmd19uYW1lKTtcXG4gXFxuIFxcdGlmIChmdy1cXHUwMDNlc2l6ZSBcXHUwMDNlIGZ3X21heF9zaXplKSB7XFxuIFxcdFxcdGRldl9lcnIoZGV2LCBcXFwiJXM6IGZ3IHNpemUgdG9vIG92ZXJsaW1pdCAoJXp1KVxcXFxuXFxcIixcXG5AQCAtMjMwLDcgKzIzMSw4IEBAIGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZV9mcm9tX2R0cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcXG4gXFx0cmV0ID0gb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmdfYXJyYXkoZGV2LVxcdTAwM2VvZl9ub2RlLCBcXFwiZmlybXdhcmUtbmFtZVxcXCIsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICBmd19uYW1lcywgQVJSQVlfU0laRShmd19uYW1lcykpO1xcbiBcXHRpZiAocmV0ICE9IEFSUkFZX1NJWkUoZndfbmFtZXMpKVxcbi1cXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRUlOVkFMLFxcbitcXHRcXHRcXHRcXHQgICAgIFxcXCJpbnZhbGlkIGZpcm13YXJlLW5hbWUgcHJvcGVydHlcXFxcblxcXCIpO1xcbiBcXG4gXFx0cmV0ID0gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlKGRldiwgYWRkciwgZndfbmFtZXNbMF0sXFxuIFxcdFxcdFxcdFxcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xcbkBAIC03NzIsNyArNzc0LDcgQEAgc3RhdGljIGludCBhaXJvaGFfbnB1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuIFxcbiBcXHRlcnIgPSBhaXJvaGFfbnB1X3J1bl9maXJtd2FyZShkZXYsIGJhc2UsIFxcdTAwMjZyZXMpO1xcbiBcXHRpZiAoZXJyKVxcbi1cXHRcXHRyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIGVyciwgXFxcImZhaWxlZCB0byBydW4gbnB1IGZpcm13YXJlXFxcXG5cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuIFxcdHJlZ21hcF93cml0ZShucHUtXFx1MDAzZXJlZ21hcCwgUkVHX0NSX05QVV9NSUIoMTApLFxcbiBcXHRcXHQgICAgIHJlcy5zdGFydCArIE5QVV9FTjc1ODFfRklSTVdBUkVfUlYzMl9NQVhfU0laRSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDE3OjMxOjQxLjg1MDIyMTY4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIzMTU3Mzg4NjQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcHJvYmUgYW5kIGZpcm13YXJlIGxvYWRpbmcgZnVuY3Rpb25zIG9mIHRoZSBBaXJvaGEgTlBVIHBsYXRmb3JtIGRyaXZlciAoZm9yIEFpcm9oYSBFTjc1ODEgU29DKS4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgU29DcyBhcmUgbm90IHJlYWNoYWJsZSBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIG1vc3RseSBsaW1pdGVkIHRvIGVycm9yIGxvZ2dpbmcgKGRldl9lcnJfcHJvYmUpIGFuZCBhIG1pbm9yIEFQSSBjaGFuZ2UgKHJlcXVlc3RfZmlybXdhcmUgdG8gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOWY0ZTdiNTM5NmY0NThhMDdlZDQ4YTcwNDVjNzA4MGE0ZDRlYmQxMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDExIDE3OjMxOjM4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmNcbmluZGV4IGI2NzliZWQ5NTJkZTMuLmRlNzUzNzZkYjE5NDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jXG5AQCAtMjAyLDkgKzIwMiwxMCBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcbiBcdGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7XG4gXHRpbnQgcmV0O1xuIFxuLVx0cmV0ID0gcmVxdWVzdF9maXJtd2FyZShcdTAwMjZmdywgZndfbmFtZSwgZGV2KTtcbitcdHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KFx1MDAyNmZ3LCBmd19uYW1lLCBkZXYpO1xuIFx0aWYgKHJldClcbi1cdFx0cmV0dXJuIHJldCA9PSAtRU5PRU5UID8gLUVQUk9CRV9ERUZFUiA6IHJldDtcbitcdFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQgPT0gLUVOT0VOVCA/IC1FUFJPQkVfREVGRVIgOiByZXQsXG4rXHRcdFx0XHQgICAgIFwiZmFpbGVkIHRvIGxvYWQgJXNcXG5cIiwgZndfbmFtZSk7XG4gXG4gXHRpZiAoZnctXHUwMDNlc2l6ZSBcdTAwM2UgZndfbWF4X3NpemUpIHtcbiBcdFx0ZGV2X2VycihkZXYsIFwiJXM6IGZ3IHNpemUgdG9vIG92ZXJsaW1pdCAoJXp1KVxcblwiLFxuQEAgLTIzMCw3ICsyMzEsOCBAQCBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVfZnJvbV9kdHMoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkIF9faW9tZW0gKmFkZHIsXG4gXHRyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZ19hcnJheShkZXYtXHUwMDNlb2Zfbm9kZSwgXCJmaXJtd2FyZS1uYW1lXCIsXG4gXHRcdFx0XHRcdCAgICBmd19uYW1lcywgQVJSQVlfU0laRShmd19uYW1lcykpO1xuIFx0aWYgKHJldCAhPSBBUlJBWV9TSVpFKGZ3X25hbWVzKSlcbi1cdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCxcbitcdFx0XHRcdCAgICAgXCJpbnZhbGlkIGZpcm13YXJlLW5hbWUgcHJvcGVydHlcXG5cIik7XG4gXG4gXHRyZXQgPSBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBhZGRyLCBmd19uYW1lc1swXSxcbiBcdFx0XHRcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuQEAgLTc3Miw3ICs3NzQsNyBAQCBzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBcbiBcdGVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgXHUwMDI2cmVzKTtcbiBcdGlmIChlcnIpXG4tXHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgZXJyLCBcImZhaWxlZCB0byBydW4gbnB1IGZpcm13YXJlXFxuXCIpO1xuK1x0XHRyZXR1cm4gZXJyO1xuIFxuIFx0cmVnbWFwX3dyaXRlKG5wdS1cdTAwM2VyZWdtYXAsIFJFR19DUl9OUFVfTUlCKDEwKSxcbiBcdFx0ICAgICByZXMuc3RhcnQgKyBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzE6NDEuODUwMjIyOTg2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA0NjIwODAwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFpcm9oYSBOUFUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgYGFpcm9oYV9ucHUuY2AgZHJpdmVyLiBTZWVtcyBsaWtlIHRoZXkncmUgcHJpbWFyaWx5IGZvY3VzaW5nIG9uIGVycm9yIGhhbmRsaW5nIGFuZCBpbXByb3ZpbmcgZmlybXdhcmUgbG9hZGluZy4gVGhlIGtleSBjaGFuZ2VzIGFyZTogcmVwbGFjaW5nIGByZXF1ZXN0X2Zpcm13YXJlYCB3aXRoIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAsIGFuZCB0aGVuIHNvbWUgYWRkaXRpb25zIGFuZCByZW1vdmFscyBvZiBgZGV2X2Vycl9wcm9iZWAgY2FsbHMuIEl0IGFwcGVhcnMgdGhleSBhcmUgbm93IHVzaW5nIGBkZXZfZXJyX3Byb2JlYCB3aGVyZSBhcHByb3ByaWF0ZSBhbmQgcmVtb3ZpbmcgaXQgd2hlcmUgdGhlIGZ1bmN0aW9uIGl0c2VsZiBoYW5kbGVzIHRoZSBlcnJvciBhbmQgcmV0dXJucy5cblxuRmlyc3QgdGhvdWdodCBpcyB0byB1bmRlcnN0YW5kIHdoYXQgd2UncmUgZGVhbGluZyB3aXRoOiB0aGlzIGlzIGFuIEFpcm9oYSBFTjc1ODEgU29DIG5ldHdvcmsgZHJpdmVyLiBSaWdodCwgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLCB3aGljaCB1c3VhbGx5IG1lYW5zIGl0J3MgcHJldHR5IHRpZ2h0bHkgY291cGxlZCB0byB0aGF0IHNwZWNpZmljIGhhcmR3YXJlLiBHZXR0aW5nIHRoaXMgdGhpbmcgdG8gdHJpZ2dlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVSB3b3VsZCBsaWtlbHkgYmUgdHJpY2t5LCB1bmxlc3MgdGhlcmUncyBhIHNwZWNpZmljIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIHRoYXQgcGFydGljdWxhciBTb0MuIFRoZSBgYWlyb2hhX25wdV9wcm9iZWAgZnVuY3Rpb24gdGFrZXMgYSBgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldmAgd2hpY2ggaXMgYSBnb29kIGNsdWUgdGhhdCBpdCdzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaGFyZHdhcmUuXG5cblNvLCBpcyB0aGlzIGV2ZW4gd29ydGggZnV6emluZz8gVGhlIGNoYW5nZXMgYXJlIG1haW5seSBjb25jZXJuZWQgd2l0aCBiZXR0ZXIgZXJyb3IgbG9nZ2luZyBhbmQgdGhlIGZpcm13YXJlIGxvYWRpbmcgbWVjaGFuaXNtLiBTd2l0Y2hpbmcgdG8gYHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0YCBpcyBpbnRlcmVzdGluZyAtIGl0IGF2b2lkcyB0aGF0IHVzZXItbW9kZSBoZWxwZXIgZmFsbGJhY2suIFRoaXMgbWlnaHQgbWFrZSB0aGUgY29kZSBtb3JlIGVmZmljaWVudCwgb3IgZXZlbiBleHBvc2UgbmV3IGF0dGFjayBzdXJmYWNlcywgYnV0IHRoZSBwcmltYXJ5IGZvY3VzIHNlZW1zIHRvIGJlIG9uIGhhcmRlbmluZyB0aGUgZHJpdmVyLiBJIHdpbGwgaGF2ZSB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlIHRvIGNvbmZpcm0gd2hldGhlciBpdCBpcyBlYXNpbHkgZW5hYmxlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ1NCwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDE3OjMxOjQ3Ljg5NjQzMzU5MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTUyMzcxMTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFpcm9oYV9ucHVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MDMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSArPSBhaXJvaGFfbnB1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg9NjM4PXN0cnVjdCBhaXJvaGFfZXRoIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmgtNjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfZXRoLmg6NjQ2OlxcdHN0cnVjdCBhaXJvaGFfbnB1IF9fcmN1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ldGguaC02NDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTEwNT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MTEwOnN0cnVjdCBhaXJvaGFfbnB1X2Z3IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTExMS1cXHRjb25zdCBjaGFyICpuYW1lO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0xMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTU6c3RydWN0IGFpcm9oYV9ucHVfc29jX2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MTE2OlxcdHN0cnVjdCBhaXJvaGFfbnB1X2Z3IGZ3X3J2MzI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoxMTc6XFx0c3RydWN0IGFpcm9oYV9ucHVfZncgZndfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTExOC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz0xNTY9c3RydWN0IHdsYW5fbWJveF9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MTYzOnN0YXRpYyBpbnQgYWlyb2hhX25wdV9zZW5kX21zZyhzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgZnVuY19pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTE2NC1cXHRcXHRcXHQgICAgICAgdm9pZCAqcCwgaW50IHNpemUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjE5OTpzdGF0aWMgaW50IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIwMC1cXHRcXHRcXHRcXHQgICAgY29uc3QgY2hhciAqZndfbmFtZSwgaW50IGZ3X21heF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz0yMjQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjI1OmFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZV9mcm9tX2R0cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgX19pb21lbSAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTIyNi1cXHRcXHRcXHRcXHQgIHZvaWQgX19pb21lbSAqYmFzZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjM3OlxcdHJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIGZ3X25hbWVzWzBdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjM4LVxcdFxcdFxcdFxcdCAgICAgICBOUFVfRU43NTgxX0ZJUk1XQVJFX1JWMzJfTUFYX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyNDI6XFx0cmV0dXJuIGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGJhc2UgKyBSRUdfTlBVX0xPQ0FMX1NSQU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNDMtXFx0XFx0XFx0XFx0XFx0ZndfbmFtZXNbMV0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI0NzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCBfX2lvbWVtICpiYXNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQ4LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCByZXNvdXJjZSAqcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjQ5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI1MDpcXHRjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSAqc29jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjUxLVxcdHZvaWQgX19pb21lbSAqYWRkcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjY1LVxcdGlmIChvZl9maW5kX3Byb3BlcnR5KGRldi1cXHUwMDNlb2Zfbm9kZSwgXFxcImZpcm13YXJlLW5hbWVcXFwiLCBOVUxMKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI2NjpcXHRcXHRyZXR1cm4gYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzKGRldiwgYWRkciwgYmFzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNjgtXFx0LyogTG9hZCBydjMyIG5wdSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MjY5OlxcdHJldCA9IGFpcm9oYV9ucHVfbG9hZF9maXJtd2FyZShkZXYsIGFkZHIsIHNvYy1cXHUwMDNlZndfcnYzMi5uYW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjcwLVxcdFxcdFxcdFxcdCAgICAgICBzb2MtXFx1MDAzZWZ3X3J2MzIubWF4X3NpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNzQtXFx0LyogTG9hZCBkYXRhIG5wdSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Mjc1OlxcdHJldHVybiBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmUoZGV2LCBiYXNlICsgUkVHX05QVV9MT0NBTF9TUkFNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjc2LVxcdFxcdFxcdFxcdFxcdHNvYy1cXHUwMDNlZndfZGF0YS5uYW1lLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyODA6c3RhdGljIGlycXJldHVybl90IGFpcm9oYV9ucHVfbWJveF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKm5wdV9pbnN0YW5jZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI4MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzoyODI6XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdSA9IG5wdV9pbnN0YW5jZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTI4My1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Mjk1OnN0YXRpYyB2b2lkIGFpcm9oYV9ucHVfd2R0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMjk2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjI5NzpcXHRzdHJ1Y3QgYWlyb2hhX25wdV9jb3JlICpjb3JlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Mjk4OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0yOTktXFx0dm9pZCAqZHVtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzAzOlxcdGNvcmUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGFpcm9oYV9ucHVfY29yZSwgd2R0X3dvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzA0LVxcdG5wdSA9IGNvcmUtXFx1MDAzZW5wdTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzE4OnN0YXRpYyBpcnFyZXR1cm5fdCBhaXJvaGFfbnB1X3dkdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmNvcmVfaW5zdGFuY2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMTkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzIwOlxcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmUgPSBjb3JlX2luc3RhbmNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzIxOlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBjb3JlLVxcdTAwM2VucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zMjItXFx0aW50IGMgPSBjb3JlIC0gXFx1MDAyNm5wdS1cXHUwMDNlY29yZXNbMF07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjMzMzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2luaXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTMzNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM0NzpcXHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfUFBFLCBwcGVfZGF0YSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM0OC1cXHRcXHRcXHRcXHQgIHNpemVvZigqcHBlX2RhdGEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzU0OnN0YXRpYyBpbnQgYWlyb2hhX25wdV9wcGVfZGVpbml0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozNjY6XFx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zNjctXFx0XFx0XFx0XFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjM3MzpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX2ZsdXNoX3NyYW1fZW50cmllcyhzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzc0LVxcdFxcdFxcdFxcdFxcdCAgICAgZG1hX2FkZHJfdCBmb2VfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6MzkwOlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtMzkxLVxcdFxcdFxcdFxcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy0zOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzozOTc6c3RhdGljIGludCBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTM5OC1cXHRcXHRcXHRcXHQgICAgICAgZG1hX2FkZHJfdCBmb2VfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDE0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDE1OlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDE2LVxcdFxcdFxcdFxcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0MjQ6XFx0ZXJyID0gYWlyb2hhX25wdV9zZW5kX21zZyhucHUsIE5QVV9GVU5DX1BQRSwgcHBlX2RhdGEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MjUtXFx0XFx0XFx0XFx0ICBzaXplb2YoKnBwZV9kYXRhKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQzMjpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHBlX3N0YXRzX3NldHVwKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00MzMtXFx0XFx0XFx0XFx0ICAgICAgZG1hX2FkZHJfdCBmb2Vfc3RhdHNfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDQ3OlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19QUEUsIHBwZV9kYXRhLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDQ4LVxcdFxcdFxcdFxcdCAgc2l6ZW9mKCpwcGVfZGF0YSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy00NjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0NjM6c3RhdGljIGludCBhaXJvaGFfbnB1X3dsYW5fbXNnX3NlbmQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgaW50IGlmaW5kZXgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo0NjQ6XFx0XFx0XFx0XFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgZnVuY19pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ2NS1cXHRcXHRcXHRcXHQgICAgdm9pZCAqZGF0YSwgaW50IGRhdGFfbGVuLCBnZnBfdCBnZnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQ4MDpcXHRlcnIgPSBhaXJvaGFfbnB1X3NlbmRfbXNnKG5wdSwgTlBVX0ZVTkNfV0lGSSwgd2xhbl9kYXRhLCBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNDgxLVxcdGtmcmVlKHdsYW5fZGF0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjQ4NjpzdGF0aWMgaW50IGFpcm9oYV9ucHVfd2xhbl9tc2dfZ2V0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NDg3OlxcdFxcdFxcdFxcdCAgIGVudW0gYWlyb2hhX25wdV93bGFuX2dldF9jbWQgZnVuY19pZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTQ4OC1cXHRcXHRcXHRcXHQgICB2b2lkICpkYXRhLCBpbnQgZGF0YV9sZW4sIGdmcF90IGdmcClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTAxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTAyOlxcdGVyciA9IGFpcm9oYV9ucHVfc2VuZF9tc2cobnB1LCBOUFVfRlVOQ19XSUZJLCB3bGFuX2RhdGEsIGxlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MDMtXFx0aWYgKCFlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jPTUxMD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTE6YWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUxMi1cXHRcXHRcXHRcXHQgICAgaW50IGlmaW5kZXgsIGNvbnN0IGNoYXIgKm5hbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MTM6XFx0XFx0XFx0XFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgZnVuY19pZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUxNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUyNS1cXHR2YWwgPSByZXMuc3RhcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MjY6XFx0cmV0dXJuIGFpcm9oYV9ucHVfd2xhbl9tc2dfc2VuZChucHUsIGlmaW5kZXgsIGZ1bmNfaWQsIFxcdTAwMjZ2YWwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MjctXFx0XFx0XFx0XFx0XFx0c2l6ZW9mKHZhbCksIEdGUF9LRVJORUwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MzA6c3RhdGljIGludCBhaXJvaGFfbnB1X3dsYW5faW5pdF9tZW1vcnkoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUzMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MzI6XFx0ZW51bSBhaXJvaGFfbnB1X3dsYW5fc2V0X2NtZCBjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfTlBVX0JBTkQwX09OQ1BVO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTMzLVxcdHUzMiB2YWwgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01MzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1MzY6XFx0ZXJyID0gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kKG5wdSwgMSwgY21kLCBcXHUwMDI2dmFsLCBzaXplb2YodmFsKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTUzNy1cXHRcXHRcXHRcXHQgICAgICAgR0ZQX0tFUk5FTCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU0MS1cXHRjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfVFhfQlVGX0NIRUNLX0FERFI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NDI6XFx0ZXJyID0gYWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkobnB1LCAwLCBcXFwidHgtYnVmaWRcXFwiLCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTQzLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU0Ni1cXHRjbWQgPSBXTEFOX0ZVTkNfU0VUX1dBSVRfUEtUX0JVRl9BRERSO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTQ3OlxcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9zZXRfcmVzZXJ2ZWRfbWVtb3J5KG5wdSwgMCwgXFxcInBrdFxcXCIsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NDgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTUxLVxcdGNtZCA9IFdMQU5fRlVOQ19TRVRfV0FJVF9UWF9QS1RfQlVGX0FERFI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo1NTI6XFx0ZXJyID0gYWlyb2hhX25wdV93bGFuX3NldF9yZXNlcnZlZF9tZW1vcnkobnB1LCAwLCBcXFwidHgtcGt0XFxcIiwgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU1My1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NTgtXFx0XFx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX0RSQU1fQkFfTk9ERV9BRERSO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTU5OlxcdFxcdGVyciA9IGFpcm9oYV9ucHVfd2xhbl9zZXRfcmVzZXJ2ZWRfbWVtb3J5KG5wdSwgMCwgXFxcImJhXFxcIiwgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2MC1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NjQtXFx0Y21kID0gV0xBTl9GVU5DX1NFVF9XQUlUX0lTX0ZPUkNFX1RPX0NQVTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU2NTpcXHRyZXR1cm4gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kKG5wdSwgMCwgY21kLCBcXHUwMDI2dmFsLCBzaXplb2YodmFsKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU2Ni1cXHRcXHRcXHRcXHRcXHRHRlBfS0VSTkVMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NTY5OnN0YXRpYyB1MzIgYWlyb2hhX25wdV93bGFuX3F1ZXVlX2FkZHJfZ2V0KHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBxaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01NzAtXFx0XFx0XFx0XFx0XFx0ICBib29sIHhtaXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU3ODpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3dsYW5faXJxX3N0YXR1c19zZXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgdTMyIHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU3OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU4Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU4MzpzdGF0aWMgdTMyIGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX2dldChzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU4NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU5MTpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3dsYW5faXJxX2VuYWJsZShzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1LCBpbnQgcSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTU5NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjU5NjpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3dsYW5faXJxX2Rpc2FibGUoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSwgaW50IHEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy01OTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02MDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2MDE6c3RydWN0IGFpcm9oYV9ucHUgKmFpcm9oYV9ucHVfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTYwNC1cXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjA1OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY0OC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2NDk6RVhQT1JUX1NZTUJPTF9HUEwoYWlyb2hhX25wdV9nZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjUxOnZvaWQgYWlyb2hhX25wdV9wdXQoc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1Mi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY1NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2NTY6RVhQT1JUX1NZTUJPTF9HUEwoYWlyb2hhX25wdV9wdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NjU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYWlyb2hhX25wdV9zb2NfZGF0YSBlbjc1ODFfbnB1X3NvY19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjU5LVxcdC5md19ydjMyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2Njk6c3RhdGljIGNvbnN0IHN0cnVjdCBhaXJvaGFfbnB1X3NvY19kYXRhIGFuNzU4M19ucHVfc29jX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02NzAtXFx0LmZ3X3J2MzIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY3OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY4MDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9haXJvaGFfbnB1X21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02ODEtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJhaXJvaGEsZW43NTgxLW5wdVxcXCIsIC5kYXRhID0gXFx1MDAyNmVuNzU4MV9ucHVfc29jX2RhdGEgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjg0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo2ODU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgb2ZfYWlyb2hhX25wdV9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02ODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYz02ODc9c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIHJlZ21hcF9jb25maWcgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY5NTpzdGF0aWMgaW50IGFpcm9oYV9ucHVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTY5Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy02OTctXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnBkZXYtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjY5ODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNjk5LVxcdHN0cnVjdCByZXNvdXJjZSByZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTcxMi1cXHRucHUtXFx1MDAzZWRldiA9IGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxMzpcXHRucHUtXFx1MDAzZW9wcy5wcGVfaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2luaXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTQ6XFx0bnB1LVxcdTAwM2VvcHMucHBlX2RlaW5pdCA9IGFpcm9oYV9ucHVfcHBlX2RlaW5pdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxNTpcXHRucHUtXFx1MDAzZW9wcy5wcGVfaW5pdF9zdGF0cyA9IGFpcm9oYV9ucHVfcHBlX3N0YXRzX3NldHVwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzE2OlxcdG5wdS1cXHUwMDNlb3BzLnBwZV9mbHVzaF9zcmFtX2VudHJpZXMgPSBhaXJvaGFfbnB1X3BwZV9mbHVzaF9zcmFtX2VudHJpZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTc6XFx0bnB1LVxcdTAwM2VvcHMucHBlX2ZvZV9jb21taXRfZW50cnkgPSBhaXJvaGFfbnB1X2ZvZV9jb21taXRfZW50cnk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MTg6XFx0bnB1LVxcdTAwM2VvcHMud2xhbl9pbml0X3Jlc2VydmVkX21lbW9yeSA9IGFpcm9oYV9ucHVfd2xhbl9pbml0X21lbW9yeTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcxOTpcXHRucHUtXFx1MDAzZW9wcy53bGFuX3NlbmRfbXNnID0gYWlyb2hhX25wdV93bGFuX21zZ19zZW5kO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzIwOlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZ2V0X21zZyA9IGFpcm9oYV9ucHVfd2xhbl9tc2dfZ2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzIxOlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZ2V0X3F1ZXVlX2FkZHIgPSBhaXJvaGFfbnB1X3dsYW5fcXVldWVfYWRkcl9nZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYzo3MjI6XFx0bnB1LVxcdTAwM2VvcHMud2xhbl9zZXRfaXJxX3N0YXR1cyA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfc3RhdHVzX3NldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjcyMzpcXHRucHUtXFx1MDAzZW9wcy53bGFuX2dldF9pcnFfc3RhdHVzID0gYWlyb2hhX25wdV93bGFuX2lycV9zdGF0dXNfZ2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzI0OlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZW5hYmxlX2lycSA9IGFpcm9oYV9ucHVfd2xhbl9pcnFfZW5hYmxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzI1OlxcdG5wdS1cXHUwMDNlb3BzLndsYW5fZGlzYWJsZV9pcnEgPSBhaXJvaGFfbnB1X3dsYW5faXJxX2Rpc2FibGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03MjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTczOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjczOTpcXHRlcnIgPSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgaXJxLCBhaXJvaGFfbnB1X21ib3hfaGFuZGxlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0MC1cXHRcXHRcXHQgICAgICAgSVJRRl9TSEFSRUQsIFxcXCJhaXJvaGEtbnB1LW1ib3hcXFwiLCBucHUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NDQtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUobnB1LVxcdTAwM2Vjb3Jlcyk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzQ1OlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1X2NvcmUgKmNvcmUgPSBcXHUwMDI2bnB1LVxcdTAwM2Vjb3Jlc1tpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTc0Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzU0OlxcdFxcdGVyciA9IGRldm1fcmVxdWVzdF9pcnEoZGV2LCBpcnEsIGFpcm9oYV9ucHVfd2R0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NTUtXFx0XFx0XFx0XFx0ICAgICAgIElSUUZfU0hBUkVELCBcXFwiYWlyb2hhLW5wdS13ZHRcXFwiLCBjb3JlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6NzU5OlxcdFxcdElOSVRfV09SSyhcXHUwMDI2Y29yZS1cXHUwMDNld2R0X3dvcmssIGFpcm9oYV9ucHVfd2R0X3dvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzYwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Nzc1OlxcdGVyciA9IGFpcm9oYV9ucHVfcnVuX2Zpcm13YXJlKGRldiwgYmFzZSwgXFx1MDAyNnJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03NzYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtNzk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6Nzk2OlxcdGlmICghYWlyb2hhX25wdV93bGFuX21zZ19nZXQobnB1LCAwLCBXTEFOX0ZVTkNfR0VUX1dBSVRfTlBVX1ZFUlNJT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy03OTctXFx0XFx0XFx0XFx0ICAgICBcXHUwMDI2dmFsLCBzaXplb2YodmFsKSwgR0ZQX0tFUk5FTCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgwNjpzdGF0aWMgdm9pZCBhaXJvaGFfbnB1X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgwODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MDktXFx0aW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgxNTpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhaXJvaGFfbnB1X2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jOjgxNjpcXHQucHJvYmUgPSBhaXJvaGFfbnB1X3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODE3OlxcdC5yZW1vdmUgPSBhaXJvaGFfbnB1X3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgxOC1cXHQuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODE5LVxcdFxcdC5uYW1lID0gXFxcImFpcm9oYS1ucHVcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIwOlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG9mX2Fpcm9oYV9ucHVfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9ucHUuYy04MjEtXFx0fSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jLTgyMi19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmM6ODIzOm1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWlyb2hhX25wdV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfbnB1LmMtODI0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz01OTg9c3RhdGljIHZvaWQgYWlyb2hhX3BwZV9mb2VfZmxvd19zdGF0X2VudHJ5X3Jlc2V0KHN0cnVjdCBhaXJvaGFfcHBlICpwcGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzo1OTk6XFx0XFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy02MDAtXFx0XFx0XFx0XFx0XFx0XFx0IGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9NjA2PXN0YXRpYyB2b2lkIGFpcm9oYV9wcGVfZm9lX2Zsb3dfc3RhdHNfcmVzZXQoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjYwNzpcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTYwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTYxOT1zdGF0aWMgdm9pZCBhaXJvaGFfcHBlX2ZvZV9mbG93X3N0YXRzX3VwZGF0ZShzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NjIwOlxcdFxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTYyMS1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBhaXJvaGFfZm9lX2VudHJ5ICpod2UsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTc1Nj1zdGF0aWMgaW50IGFpcm9oYV9wcGVfZm9lX2NvbW1pdF9lbnRyeShzdHJ1Y3QgYWlyb2hhX3BwZSAqcHBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy03NjMtXFx0c3RydWN0IGFpcm9oYV9ldGggKmV0aCA9IHBwZS1cXHUwMDNlZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6NzY0OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy03NjUtXFx0aW50IGVyciA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jPTEyOTI9dm9pZCBhaXJvaGFfcHBlX2ZvZV9lbnRyeV9nZXRfc3RhdHMoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSwgdTMyIGhhc2gsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEyOTYtXFx0aW50IHBwZV9udW1fc3RhdHNfZW50cmllcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEyOTc6XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEyOTgtXFx0dTMyIGluZGV4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xMzcwPXN0YXRpYyBpbnQgYWlyb2hhX3BwZV9mbHVzaF9zcmFtX2VudHJpZXMoc3RydWN0IGFpcm9oYV9wcGUgKnBwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jOjEzODg6c3RhdGljIHN0cnVjdCBhaXJvaGFfbnB1ICphaXJvaGFfcHBlX25wdV9nZXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTEzODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM5MDpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1ID0gYWlyb2hhX25wdV9nZXQoZXRoLVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTM5My1cXHRcXHRyZXF1ZXN0X21vZHVsZShcXFwiYWlyb2hhLW5wdVxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTM5NDpcXHRcXHRucHUgPSBhaXJvaGFfbnB1X2dldChldGgtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xMzk1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM9MTQyMz1zdGF0aWMgaW50IGFpcm9oYV9wcGVfb2ZmbG9hZF9zZXR1cChzdHJ1Y3QgYWlyb2hhX2V0aCAqZXRoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTQyNC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNDI1OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUgPSBhaXJvaGFfcHBlX25wdV9nZXQoZXRoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE0MjYtXFx0c3RydWN0IGFpcm9oYV9wcGUgKnBwZSA9IGV0aC1cXHUwMDNlcHBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNDU3LWVycm9yX25wdV9wdXQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNDU4OlxcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNDU5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYz0xNjUzPXZvaWQgYWlyb2hhX3BwZV9kZWluaXQoc3RydWN0IGFpcm9oYV9ldGggKmV0aClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX3BwZS5jLTE2NTQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmM6MTY1NTpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmMtMTY2My1cXHRcXHRucHUtXFx1MDAzZW9wcy5wcGVfZGVpbml0KG5wdSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYzoxNjY0OlxcdFxcdGFpcm9oYV9ucHVfcHV0KG5wdSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL2Fpcm9oYV9wcGUuYy0xNjY1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9ODAyPW10NzZfZG1hX2FsbG9jX3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE5LVxcdGVsc2UgaWYgKG10NzZfcXVldWVfaXNfbnB1X3R4KHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODIwOlxcdFxcdHNpemUgPSBzaXplb2Yoc3RydWN0IGFpcm9oYV9ucHVfdHhfZG1hX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODIxLVxcdGVsc2UgaWYgKG10NzZfcXVldWVfaXNfbnB1X3J4KHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODIyOlxcdFxcdHNpemUgPSBzaXplb2Yoc3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODIzLVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtNzgtXFx0aWYgKChfcSktXFx1MDAzZWZsYWdzIFxcdTAwMjYgTVRfUUZMQUdfTlBVKSB7XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6Nzk6XFx0XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC04MC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTk1LVxcdGlmICgoX3EpLVxcdTAwM2VmbGFncyBcXHUwMDI2IE1UX1FGTEFHX05QVSkge1xcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjk2OlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtOTctXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9NzE1PXN0cnVjdCBtdDc2X21taW8ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtNzI1LVxcdHN0cnVjdCBhaXJvaGFfcHBlX2RldiBfX3JjdSAqcHBlX2RldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDo3MjY6XFx0c3RydWN0IGFpcm9oYV9ucHUgX19yY3UgKm5wdTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC03MjctXFx0cGh5c19hZGRyX3QgcGh5X2FkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaD0xNzQyPXN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3BwZV9kZXZpY2VfYWN0aXZlKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxNzQ3OnN0YXRpYyBpbmxpbmUgaW50IG10NzZfbnB1X3NlbmRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NDg6XFx0XFx0XFx0XFx0ICAgIGVudW0gYWlyb2hhX25wdV93bGFuX3NldF9jbWQgY21kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NDktXFx0XFx0XFx0XFx0ICAgIHUzMiB2YWwsIGdmcF90IGdmcClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzUwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxNzUxOlxcdHJldHVybiBhaXJvaGFfbnB1X3dsYW5fc2VuZF9tc2cobnB1LCBpZmluZGV4LCBjbWQsIFxcdTAwMjZ2YWwsIHNpemVvZih2YWwpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NTItXFx0XFx0XFx0XFx0XFx0Z2ZwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTc1NTpzdGF0aWMgaW5saW5lIGludCBtdDc2X25wdV9nZXRfbXNnKHN0cnVjdCBhaXJvaGFfbnB1ICpucHUsIGludCBpZmluZGV4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTY6XFx0XFx0XFx0XFx0ICAgZW51bSBhaXJvaGFfbnB1X3dsYW5fZ2V0X2NtZCBjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTc1Ny1cXHRcXHRcXHRcXHQgICB1MzIgKnZhbCwgZ2ZwX3QgZ2ZwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE3NTgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE3NTk6XFx0cmV0dXJuIGFpcm9oYV9ucHVfd2xhbl9nZXRfbXNnKG5wdSwgaWZpbmRleCwgY21kLCB2YWwsIHNpemVvZigqdmFsKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xNzYwLVxcdFxcdFxcdFxcdCAgICAgICBnZnApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTcwNz1zdGF0aWMgdm9pZCBtdDc5OTZfcnhfcG9sbF9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzEwLVxcdGlmIChxID09IE1UX1JYUV9OUFUwIHx8IHEgPT0gTVRfUlhRX05QVTEpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6NzExOlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTcxMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy03MTQtXFx0XFx0aWYgKG5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6NzE1OlxcdFxcdFxcdGFpcm9oYV9ucHVfd2xhbl9lbmFibGVfaXJxKG5wdSwgcSAtIE1UX1JYUV9OUFUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtNzE2LVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz0xMT1zdGF0aWMgaW50IG10Nzk5Ml9ucHVfdHhyeF9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzoxMjpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTcyPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV90eHJ4X29mZmxvYWRfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjczOlxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM9MjAwPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV9vZmZsb2FkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzoyMDE6XFx0XFx0XFx0XFx0ICAgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yMDIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjI0MjpzdGF0aWMgaW50IG10Nzk5Ml9ucHVfcnhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yNDMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMjc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjI3NzpzdGF0aWMgaW50IG10Nzk5Nl9ucHVfcnhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0yNzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtMzQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjM0MTpzdGF0aWMgaW50IG10Nzk5Nl9ucHVfdHhkX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgc3RydWN0IGFpcm9oYV9ucHUgKm5wdSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy0zNDIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM9NDAyPXN0YXRpYyBpbnQgbXQ3OTk2X25wdV9yeF9ldmVudF9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDAzOlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTQwNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz00Mzc9c3RhdGljIGludCBtdDc5OTZfbnB1X3NldF9wY2llX2FkZHIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYzo0Mzg6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNDM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTQ3MT1zdGF0aWMgaW50IG10Nzk5Nl9ucHVfdHhfZG9uZV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NDcyOlxcdFxcdFxcdFxcdCAgIHN0cnVjdCBhaXJvaGFfbnB1ICpucHUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNDczLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jPTUxNj1pbnQgX19tdDc5OTZfbnB1X2h3X2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01MTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jOjUxODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTUxOS1cXHRpbnQgaSwgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTUzLVxcdGZvciAoaSA9IE1UX1JYUV9OUFUwOyBpIFxcdTAwM2M9IE1UX1JYUV9OUFUxOyBpKyspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NTU0OlxcdFxcdGFpcm9oYV9ucHVfd2xhbl9lbmFibGVfaXJxKG5wdSwgaSAtIE1UX1JYUV9OUFUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYy01NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9ucHUuYz01OTQ9aW50IG10Nzk5Nl9ucHVfaHdfc3RvcChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L25wdS5jLTU5NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmM6NTk2OlxcdHN0cnVjdCBhaXJvaGFfbnB1ICpucHU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmMtNTk3LVxcdGludCBpLCBlcnIgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0xNz1pbnQgbXQ3Nl9ucHVfZmlsbF9yeF9xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxLVxcdHdoaWxlIChxLVxcdTAwM2VxdWV1ZWQgXFx1MDAzYyBxLVxcdTAwM2VuZGVzYyAtIDEpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjIyOlxcdFxcdHN0cnVjdCBhaXJvaGFfbnB1X3J4X2RtYV9kZXNjICpkZXNjID0gKHZvaWQgKilxLVxcdTAwM2VkZXNjO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjMtXFx0XFx0c3RydWN0IG10NzZfcXVldWVfZW50cnkgKmUgPSBcXHUwMDI2cS1cXHUwMDNlZW50cnlbcS1cXHUwMDNlaGVhZF07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jPTYyPXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbXQ3Nl9ucHVfZGVxdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtNjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6NjY6XFx0c3RydWN0IGFpcm9oYV9ucHVfcnhfZG1hX2Rlc2MgKmRlc2MgPSAodm9pZCAqKXEtXFx1MDAzZWRlc2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy02Ny1cXHRpbnQgaSwgbmZyYW1lcywgaW5kZXggPSBxLVxcdTAwM2V0YWlsO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0xNDQ9c3RhdGljIGludCBtdDc2X25wdV9yeF9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTQ3LVxcdGVudW0gbXQ3Nl9yeHFfaWQgcWlkID0gbmFwaSAtIGRldi1cXHUwMDNlbmFwaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjE0ODpcXHRzdHJ1Y3QgYWlyb2hhX25wdSAqbnB1O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTQ5LVxcdGludCBkb25lID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MTgwPXN0YXRpYyBpcnFyZXR1cm5fdCBtdDc2X25wdV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpxX2luc3RhbmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xODUtXFx0aW50IGluZGV4ID0gcWlkIC0gTVRfUlhRX05QVTA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxODY6XFx0c3RydWN0IGFpcm9oYV9ucHUgKm5wdTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTE4Ny1cXHR1MzIgc3RhdHVzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxOTU6XFx0c3RhdHVzID0gYWlyb2hhX25wdV93bGFuX2dldF9pcnFfc3RhdHVzKG5wdSwgaW5kZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM6MTk2OlxcdGFpcm9oYV9ucHVfd2xhbl9zZXRfaXJxX3N0YXR1cyhucHUsIHN0YXR1cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYy0xOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYzoxOTg6XFx0YWlyb2hhX25wdV93bGFuX2Rpc2FibGVfaXJxKG5wdSwgaW5kZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMTk5LVxcdG5hcGlfc2NoZWR1bGUoXFx1MDAyNmRldi1cXHUwMDNlbmFwaVtxaWRdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmM9MjA2PWludCBtdDc2X25wdV9kbWFfYWRkX2J1ZihzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxMC1cXHR1MTYgdHh3aV9sZW4gPSBtaW5fdCh1MTYsIHBoeS1cXHUwMDNlZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXR4d2lfc2l6ZSwgTlBVX1RYV0lfTEVOKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjIxMTpcXHRzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyAqZGVzYyA9ICh2b2lkICopcS1cXHUwMDNlZGVzYztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIxMi1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9ucHUuYz0yMzQ9dm9pZCBtdDc2X25wdV90eGRlc2NfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgaW50IGluZGV4KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbnB1LmMtMjM1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jOjIzNjpcXHRzdHJ1Y3QgYWlyb2hhX25wdV90eF9kbWFfZGVzYyAqZGVzYyA9ICh2b2lkICopcS1cXHUwMDNlZGVzYztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L25wdS5jLTIzNy1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzE6NDkuODQ4ODA5MDM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwNjU0ODAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFpcm9oYSBOUFUgRHJpdmVyIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBBaXJvaGEgTlBVIGRyaXZlci4gTXkgaW5pdGlhbCBtZW50YWwgbWFwIHNob3dzIGl0J3MgaW50ZWdyYXRlZCBhY3Jvc3MgYSBmZXcgZGlmZmVyZW50IGFyZWFzIG9mIHRoZSBuZXR3b3JraW5nIHN0YWNrLiBTcGVjaWZpY2FsbHksIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvYWlyb2hhX25wdS5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9haXJvaGFfcHBlLmNgIGFyZSB1c2luZyBpdCwgd2hpY2ggaXMgZXhwZWN0ZWQgZ2l2ZW4gdGhlIFwiZXRoZXJuZXRcIiBjb250ZXh0LiBJbnRyaWd1aW5nbHksIGl0J3MgKmFsc28qIGJlaW5nIGVtcGxveWVkIGluIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBzcGFjZSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbnB1LmNgLiBUaGF0J3MgYSBwb2ludCBvZiBwb3RlbnRpYWwgc3luZXJneSBvciwgcGVyaGFwcywgYSBzbGlnaHRseSBtb3JlIGNvbXBsZXggYXJjaGl0ZWN0dXJlIHRvIHVuZGVyc3RhbmQuXG5cblRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBjb3JlIEFpcm9oYSBOUFUgZHJpdmVyIGZpbGUsIGBhaXJvaGFfbnB1LmNgLCBpcyBzdHJhaWdodGZvcndhcmQgLSBpdCdzIGNvbnRyb2xsZWQgYnkgYENPTkZJR19ORVRfQUlST0hBX05QVWAuIFRoYXQncyBnb29kOyBtYWtlcyBmb3IgZWFzeSBlbmFibGVtZW50IGFuZCBkaXNhYmxpbmcuXG5cbk5vdywgbXkgbmV4dCBzdGVwIGlzIGNsZWFyLiBUbyBnZXQgYSBoYW5kbGUgb24gdGhlIGRyaXZlcidzIGdlbmVyYWwgY29uZmlndXJhdGlvbiwgSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnYC4gVGhhdCdsbCBiZSB3aGVyZSB0aGUgb3ZlcmFyY2hpbmcgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGFyZSBkZWZpbmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzYyMSwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxNzozMTo1My45NTUzNTkwNjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY4OTA4NjA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRfQUlST0hBX05QVVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZz04PWlmIE5FVF9WRU5ET1JfQUlST0hBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWctOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZzoxMDpjb25maWcgTkVUX0FJUk9IQV9OUFVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9haXJvaGEvS2NvbmZpZy0xMS1cXHR0cmlzdGF0ZSBcXFwiQWlyb2hhIE5QVSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL0tjb25maWc9MTg9Y29uZmlnIE5FVF9BSVJPSEFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTIwLVxcdGRlcGVuZHMgb24gTkVUX0RTQSB8fCAhTkVUX0RTQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjIxOlxcdHNlbGVjdCBORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTIyLVxcdHNlbGVjdCBQQUdFX1BPT0xcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnPTI3PWNvbmZpZyBORVRfQUlST0hBX0ZMT1dfU1RBVFNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTI5LVxcdGJvb2wgXFxcIkFpcm9oYSBmbG93IHN0YXRzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnOjMwOlxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQSBcXHUwMDI2XFx1MDAyNiBORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9LY29uZmlnLTMxLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Fpcm9oYS9NYWtlZmlsZT04PWFpcm9oYS1ldGgtJChDT05GSUdfREVCVUdfRlMpICs9IGFpcm9oYV9wcGVfZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWlyb2hhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9BSVJPSEFfTlBVKSArPSBhaXJvaGFfbnB1Lm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz00MD1jb25maWcgTVQ3Nl9OUFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNDEtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDI6XFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc9MTY9Y29uZmlnIE1UNzk5Nl9OUFVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTgtXFx0ZGVwZW5kcyBvbiBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxOTpcXHRkZXBlbmRzIG9uIE5FVF9BSVJPSEFfTlBVPXkgfHwgTVQ3Nl9DT1JFPU5FVF9BSVJPSEFfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0yMC1cXHRzZWxlY3QgTVQ3Nl9OUFVcXG4tLVxcbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oPTE2Nj1zdHJ1Y3QgYWlyb2hhX25wdSB7XFxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmg6MTY3OiNpZiAoSVNfQlVJTFRJTihDT05GSUdfTkVUX0FJUk9IQV9OUFUpIHx8IElTX01PRFVMRShDT05GSUdfTkVUX0FJUk9IQV9OUFUpKVxcbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oLTE2OC1cXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NvYy9haXJvaGEvYWlyb2hhX29mZmxvYWQuaC0yMTAtXFxuaW5jbHVkZS9saW51eC9zb2MvYWlyb2hhL2Fpcm9oYV9vZmZsb2FkLmg6MjExOiNpZiAoSVNfQlVJTFRJTihDT05GSUdfTkVUX0FJUk9IQV9OUFUpIHx8IElTX01PRFVMRShDT05GSUdfTkVUX0FJUk9IQV9OUFUpKVxcbmluY2x1ZGUvbGludXgvc29jL2Fpcm9oYS9haXJvaGFfb2ZmbG9hZC5oLTIxMi1zdHJ1Y3QgYWlyb2hhX25wdSAqYWlyb2hhX25wdV9nZXQoc3RydWN0IGRldmljZSAqZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzE6NTUuNjQ0NDUzMDM1WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM2MzEzMzAxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IEFpcm9oYSBOUFUgRHJpdmVyIFBhdGNoIEFuYWx5c2lzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgdG91Y2hlcyB0aGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zIGZvciB0aGUgQWlyb2hhIE5QVSBkcml2ZXI6IGBhaXJvaGFfbnB1X2xvYWRfZmlybXdhcmVgLCBgYWlyb2hhX25wdV9sb2FkX2Zpcm13YXJlX2Zyb21fZHRzYCwgYW5kIGBhaXJvaGFfbnB1X3Byb2JlYC4gVGhlIGtleSBjaGFuZ2VzIGhlcmUgYXJlIGEgc3dpdGNoIGZyb20gYHJlcXVlc3RfZmlybXdhcmVgIHRvIGByZXF1ZXN0X2Zpcm13YXJlX2RpcmVjdGAsIGFuZCBzb21lIGFkZGl0aW9ucyBvciByZW1vdmFscyBvZiBgZGV2X2Vycl9wcm9iZWAuXG5cbkZyYW5rbHksIHRoaXMgZG9lc24ndCBzY3JlYW0gXCJmdXp6aW5nIHRhcmdldFwiIHRvIG1lLiBUaGUgYWx0ZXJhdGlvbnMgYXJlIHByaW1hcmlseSBhcm91bmQgZXJyb3IgaGFuZGxpbmcgYW5kIGxvZ2dpbmcg4oCTIHRob3NlIGBkZXZfZXJyX3Byb2JlYCBhZGRpdGlvbnMvcmVtb3ZhbHMgYXJlIGp1c3QgdGhhdCwgbG9nZ2luZyBtb2RpZmljYXRpb25zLiBUaGUgYHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0YCBjaGFuZ2UgaXMgYSBiaXQgbW9yZSBpbnRlcmVzdGluZywgYnV0IGl0J3Mgc3RpbGwgYSBzcGVjaWZpYyBBUEkgY2FsbCBkdXJpbmcgcHJvYmUsIGFuZCB0aGUgZnVuY3Rpb25hbCBkaWZmZXJlbmNlIGlzIGFib3V0IGF2b2lkaW5nIHRoZSB1c2VyLW1vZGUgaGVscGVyIGZvciBmaXJtd2FyZSBsb2FkaW5nLiBCdXQgdXNlci1tb2RlIGhlbHBlcnMgYXJlIHVzdWFsbHkgZGlzYWJsZWQgdGhlc2UgZGF5cyBhbmQgZXZlbiBpZiBlbmFibGVkLCB0aGlzIGlzIGEgbmFycm93IHByb2JlLXRpbWUgY2hhbmdlLlxuXG5IZXJlJ3MgdGhlIGtpY2tlcjogVGhpcyBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgYW4gQWlyb2hhIEVONzU4MSBTb0MsIHNwZWNpZmljYWxseSBpZGVudGlmaWVkIGJ5IHRoZSBkZXZpY2UgdHJlZSBub2RlIGBcImFpcm9oYSxlbjc1ODEtbnB1XCJgLiBBcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhpcyB2ZXJ5IHNwZWNpZmljIFNvQywgdGhpcyBjb2RlIHBhdGggaXMgdW5yZWFjaGFibGUgaW4gdHlwaWNhbCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSB1bmxlc3MgdGhlcmUncyBzcGVjaWZpYyBlbXVsYXRpb24gZm9yIHRoaXMgcGFydGljdWxhciBBaXJvaGEgTlBVLiBBbmQgSSdtIHByZXR0eSBjZXJ0YWluIHRoZXJlIGlzbid0LlxuXG5Ob3csIGxldCdzIHJlY2FsbCB0aGUgaW5zdHJ1Y3Rpb25zLiBXZSdyZSB0b2xkIHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgdGhpbmdzIGxpa2UgZG9jdW1lbnRhdGlvbiwgS2NvbmZpZyBjaGFuZ2VzLCBjb2RlIGNvbW1lbnRzLCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nLCBjaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzL21hY3JvcyB0aGF0IGRvbid0IGFsdGVyIGV4ZWN1dGlvbiBmbG93LCBvciBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhpcyBwYXRjaCB0aWNrcyB0aGF0IGJveC5cblxuVGhlIGNoYW5nZXMgYXJlIG1vc3RseSBhYm91dCBsb2dnaW5nLCBhbmQgdGhlIGZpcm13YXJlIGxvYWRpbmcgQVBJIGNoYW5nZSBvY2N1cnMgZHVyaW5nIHByb2JlIGZvciBhIHBsYXRmb3JtIGRyaXZlci4gVGhpcyBtZWFucyB0aGlzIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gc3RhbmRhcmQgdmlydHVhbGl6YXRpb24gc2V0dXBzLiBJdCdzIGVzc2VudGlhbGx5IHRoZSBlcGl0b21lIG9mIFwidW5yZWFjaGFibGUgY29kZVwiIGluIHRoaXMgY29udGV4dC4gVGhlcmVmb3JlLCBJJ20gY29uZmlkZW50IGluIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODk3MywiT3V0cHV0VG9rZW5zIjoxMTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTc6MzI6MDUuMDA3NTg4MTcyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDc2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcHJvYmUgYW5kIGZpcm13YXJlIGxvYWRpbmcgZnVuY3Rpb25zIG9mIHRoZSBBaXJvaGEgTlBVIHBsYXRmb3JtIGRyaXZlciAoZm9yIEFpcm9oYSBFTjc1ODEgU29DKS4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgaGFyZHdhcmUgU29DcyBhcmUgbm90IHJlYWNoYWJsZSBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBGdXJ0aGVybW9yZSwgdGhlIGNoYW5nZXMgYXJlIG1vc3RseSBsaW1pdGVkIHRvIGVycm9yIGxvZ2dpbmcgKGRldl9lcnJfcHJvYmUpIGFuZCBhIG1pbm9yIEFQSSBjaGFuZ2UgKHJlcXVlc3RfZmlybXdhcmUgdG8gcmVxdWVzdF9maXJtd2FyZV9kaXJlY3QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHByb2JlIGFuZCBmaXJtd2FyZSBsb2FkaW5nIGZ1bmN0aW9ucyBvZiB0aGUgQWlyb2hhIE5QVSBwbGF0Zm9ybSBkcml2ZXIgKGZvciBBaXJvaGEgRU43NTgxIFNvQykuIFBsYXRmb3JtIGRyaXZlcnMgZm9yIHNwZWNpZmljIGhhcmR3YXJlIFNvQ3MgYXJlIG5vdCByZWFjaGFibGUgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gRnVydGhlcm1vcmUsIHRoZSBjaGFuZ2VzIGFyZSBtb3N0bHkgbGltaXRlZCB0byBlcnJvciBsb2dnaW5nIChkZXZfZXJyX3Byb2JlKSBhbmQgYSBtaW5vciBBUEkgY2hhbmdlIChyZXF1ZXN0X2Zpcm13YXJlIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDE3OjMyOjA1LjAwNzYxMjE0MVoiLCJTZXEiOjksIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowtfdcr[1] Phase: Running StartedAt: 2026-08-11 17:32:16 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtfdcr[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-11 17:32:16 +0000 UTC FinishedAt: 2026-08-11 17:32:20 +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,}