ZGlmZiAtLWdpdCBhL2xpYl9pMzg2L3JlYWxtb2RlX3N3aXRjaC5TIGIvbGliX2kzODYvcmVhbG1vZGVfc3dpdGNoLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYyMTJjMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYl9pMzg2L3JlYWxtb2RlX3N3aXRjaC5TCkBAIC0wLDAgKzEsMjIzIEBACisvKgorICogKEMpIENvcHlyaWdodCAyMDAyCisgKiBEYW5pZWwgRW5nc3Ry9m0sIE9taWNyb24gQ2V0aSBBQiwgZGFuaWVsQG9taWNyb24uc2UKKyAqIAorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworCisvKiAzMmJpdCAtPiAxNmJpdCAtPiAzMmJpdCBtb2RlIHN3aXRjaCBjb2RlICovCisKKy8qCisgKiBTdGFjayBmcmFtZSBhdCAweGUwMAorICogICAgICBlMDAgZWJ4OworICoJZTA0IGVjeDsKKyAqCWUwOCBlZHg7CisgKgllMGMgZXNpOworICoJZTEwIGVkaTsKKyAqCWUxNCBlYnA7IAorICoJZTE4IGVheDsKKyAqCWUxYyBkczsgIAorICoJZTIwIGVzOworICoJZTI0IGZzOyAgCisgKgllMjggZ3M7CisgKgllMmMgb3JpZ19lYXg7CisgKgllMzAgZWlwOworICoJZTM0IGNzOworICoJZTM4IGVmbGFnczsKKyAqCWUzYyBlc3A7CisgKgllNDAgc3M7CisgKi8KKworI2RlZmluZSBhMzIJCS5ieXRlIDB4Njc7CQkvKiBhZGRyZXNzIHNpemUgcHJlZml4IDMyICovCisjZGVmaW5lIG8zMgkJLmJ5dGUgMHg2NjsJCS8qIG9wZXJhbmQgc2l6ZSBwcmVmaXggMzIgKi8gCisKKy5zZWN0aW9uIC5yZWFsbW9kZSwgImF4IgorLmNvZGUxNgorCisJCQkJCQkvKiAxNmJpdCBwcm90ZWN0ZWQgbW9kZSBjb2RlIGhlcmUgKi8KKy5nbG9ibCByZWFsbW9kZV9lbnRlcgorcmVhbG1vZGVfZW50ZXI6CitvMzIJcHVzaGEKK28zMglwdXNoZgorCWNsaQorICAgICAgICBzaWR0ICAgCXNhdmVkX2lkdAorICAgICAgICBzZ2R0ICAgIHNhdmVkX2dkdAorICAgICAgICBtb3ZsICAgICVlc3AsICVlYXgKKyAgICAgICAgbW92bCAgICAlZWF4LCBzYXZlZF9wcm90ZWN0ZWRfbW9kZV9lc3AKKwkKKwltb3ZsCSQweDEwLCAlZWF4CisJbW92bCAgICAlZWF4LCAlZXNwCisJbW92dwkkMHgyOCwgJWF4CisJbW92dwklYXgsICVkcworCW1vdncJJWF4LCAlZXMKKwltb3Z3CSVheCwgJWZzCisJbW92dwklYXgsICVncworCisJbGlkdAlyZWFsbW9kZV9pZHRfcHRyCisJbW92bAklY3IwLCAlZWF4ICAgICAgICAgICAgICAgIAkvKiBHbyBiYWNrIGludG8gcmVhbCBtb2RlIGJ5ICovCisJYW5kbAkkMHg3ZmZmZmZmZSwgJWVheCAgICAgICAgIAkvKiBjbGVhcmluZyBQRSB0byAwICovCisJbW92bAklZWF4LCAlY3IwCisJbGptcAkkMHgwLCRkb19yZWFsbW9kZSAgICAgICAgICAgICAJLyogc3dpdGNoIHRvIHJlYWwgbW9kZSAqLworCQkJCQkJCitkb19yZWFsbW9kZToJCQkJCS8qIHJlYWxtb2RlIGNvZGUgZnJvbSBoZXJlICovIAorCW1vdncJJWNzLCVheAorCW1vdncJJWF4LCVkcworCW1vdncJJWF4LCVlcworCW1vdncJJWF4LCVmcworCW1vdncJJWF4LCVncworCQorCQkJCQkJLyogY3JlYXRlIGEgdGVtcG9yYXJ5IHN0YWNrICovCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCW1vdncJJDB4YzAsICVheCAgICAgICAgICAgICAKKwltb3Z3CSVheCwgJXNzICAgICAgICAgICAgICAgIAorCW1vdncJJDB4MjAwLCAlYXggICAgICAgICAgIAorCW1vdncJJWF4LCAlc3AgCisJCisJcG9wbAklZWJ4CisJcG9wbAklZWN4CisJcG9wbAklZWR4CisJcG9wbAklZXNpCisJcG9wbAklZWRpCisJcG9wbAklZWJwCisJcG9wbAklZWF4CisJbW92bAklZWF4LCB0ZW1wX2VheAorCXBvcGwJJWVheAorCW1vdncJJWF4LCAlZHMKKwlwb3BsCSVlYXgKKwltb3Z3CSVheCwgJWVzCisJcG9wbAklZWF4CisJbW92dwklYXgsICVmcworCXBvcGwJJWVheAorCW1vdncJJWF4LCAlZ3MKKwlwb3BsCSVlYXgJCQkJLyogb3JpZ19lYXggKi8KKwlwb3BsCSVlYXgKK2NzCW1vdncJJWF4LCB0ZW1wX2lwCisJcG9wbAklZWF4Citjcwltb3Z3CSVheCwgdGVtcF9jcworbzMyCXBvcGYKKwlwb3BsCSVlYXgKKwlwb3B3CSVzcworCW1vdmwJJWVheCwgJWVzcAorY3MJbW92bAl0ZW1wX2VheCwgJWVheAorCXdiaW52ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzZWxmLW1vZGlmeWluZyBjb2RlLAorCQkJCQkJICogYmV0dGVyIGZsdXNoIHRoZSBjYWNoZSAqLworCQorCS5ieXRlCTB4OWEJCQkJLyogbGNhbGwgKi8KK3RlbXBfaXA6CisJLndvcmQJMAkgICAgIAkJCS8qIG5ldyBpcCAqLwordGVtcF9jczoJCisJLndvcmQgICAwCQkJCS8qIG5ldyBjcyAqLworcmVhbG1vZGVfcmV0OgorCQkJCQkJLyogc2F2ZSBlYXgsIGVzcCBhbmQgc3MgKi8KK2NzCW1vdmwJJWVheCwgc2F2ZWRfZWF4CisJbW92bAklZXNwLCAlZWF4Citjcwltb3ZsCSVlYXgsIHNhdmVkX2VzcAorCW1vdncgICAgJXNzLCAlYXgKK2NzCW1vdncJJWF4LCBzYXZlZF9zcworCQorCS8qIHJlc3RvcmUgdGhlIHN0YWNrLCBub3RlIHRoYXQgd2Ugc2V0IHNwIHRvIDB4MjQ0OworCSAqIHB0X3JlZ3MgaXMgMHg0NCBieXRlcyBsb25nIGFuZCB3ZSBwdXNoIHRoZSBzdHJ1Y3R1cmUKKwkgKiBiYWNrd2FyZHMgb24gdG8gdGhlIHN0YWNrLCBib3R0b20gZmlyc3QgKi8KKwkgCisJbW92dwkkMHhjMCwgJWF4ICAgICAgICAgICAgIAorCW1vdncJJWF4LCAlc3MgICAgICAgICAgICAgICAgCisJbW92dwkkMHgyNDQsICVheCAgICAgICAgICAgCisJbW92dwklYXgsICVzcCAKKwkKKwl4b3JsCSVlYXgsJWVheAorY3MJbW92dwlzYXZlZF9zcywgJWF4CisJcHVzaGwJJWVheAorY3MJbW92bAlzYXZlZF9lc3AsICVlYXgKKwlwdXNobAklZWF4CitvMzIJcHVzaGYKKwl4b3JsCSVlYXgsJWVheAorY3MJbW92dwl0ZW1wX2NzLCAlYXgKKwlwdXNobAklZWF4Citjcwltb3Z3CXRlbXBfaXAsICVheAorCXB1c2hsCSVlYXgKKwlwdXNobAkkMAorCW1vdncJJWdzLCAlYXgKKwlwdXNobAklZWF4CisJbW92dwklZnMsICVheAorCXB1c2hsCSVlYXgKKwltb3Z3CSVlcywgJWF4CisJcHVzaGwJJWVheAorCW1vdncJJWRzLCAlYXgKKwlwdXNobAklZWF4CisJbW92bAlzYXZlZF9lYXgsICVlYXgKKwlwdXNobAklZWF4CisJcHVzaGwJJWVicAorCXB1c2hsCSVlZGkKKwlwdXNobAklZXNpCisJcHVzaGwJJWVkeAorCXB1c2hsCSVlY3gKKwlwdXNobAklZWJ4CisKK28zMiBjcwlsaWR0CXNhdmVkX2lkdAorbzMyIGNzCWxnZHQgICAgc2F2ZWRfZ2R0CQkJLyogU2V0IEdEVFIgKi8KKworICAgICAgICBtb3ZsICAgICVjcjAsICVlYXggICAgICAgICAgICAgIAkvKiBHbyBiYWNrIGludG8gcHJvdGVjdGVkIG1vZGUgKi8KKyAgICAgICAgb3JsICAgICAkMSwlZWF4ICAgICAgICAgICAgICAgICAJLyogcmVzZXQgUEUgdG8gMSAqLworICAgICAgICBtb3ZsICAgICVlYXgsICVjcjAgICAgICAgICAgICAgICAKKyAgICAgICAgam1wICAgICBuZXh0X2xpbmUgICAgICAgICAgICAgICAJLyogZmx1c2ggcHJlZmV0Y2ggcXVldWUgKi8KK25leHRfbGluZTogICAgCisgICAgICAgIG1vdncJJHJldHVybl9wdHIsICVheCAgICAgICAgICAKKyAgICAgICAgbW92dyAgICAlYXgsJWJwCitvMzIgY3MJbGptcAkqKCVicCkKKworLmNvZGUzMgorcHJvdGVjdGVkX21vZGU6CisgICAgICAgIG1vdmwgICAgJDB4MTgsJWVheCAgICAgICAgIAkJLyogcmVsb2FkIEdEVFszXSAqLworICAgICAgICBtb3Z3ICAgICVheCwlZnMgICAgICAgICAgICAgICAgIAkvKiByZXNldCBGUyAqLworCW1vdncJJWF4LCVkcyAgICAgICAgICAgICAgICAJCS8qIHJlc2V0IERTICovCisgICAgICAgIG1vdncgICAgJWF4LCVncyAgICAgICAgICAgICAgICAgCS8qIHJlc2V0IEdTICovCisgICAgICAgIG1vdncgICAgJWF4LCVlcyAgICAgICAgICAgICAgICAgCS8qIHJlc2V0IEVTICovCisgICAgICAgIG1vdncgICAgJWF4LCVzcyAgICAgICAgICAgICAgICAgCS8qIHJlc2V0IFNTICovCisgICAgICAgIG1vdmwgICAgc2F2ZWRfcHJvdGVjdGVkX21vZGVfZXNwLCAlZWF4CisJbW92bAklZWF4LCAlZXNwCisJcG9wZgorCXBvcGEKKyAgICAgICAgcmV0CisKK3RlbXBfZWF4OgorCS5sb25nCTAKKworc2F2ZWRfc3M6CisJLndvcmQgICAwCitzYXZlZF9lc3A6CisJLmxvbmcJMAorc2F2ZWRfZWF4OgorCS5sb25nCTAKKwkKK3JlYWxtb2RlX2lkdF9wdHI6CisJLndvcmQJMHg0MDAJCQkgICAgICAgCisJLndvcmQJMHgwLCAweDAJCQorCQorc2F2ZWRfZ2R0OiAgCisgIAkud29yZCAJMCwgMCwgMCwgMAorc2F2ZWRfaWR0OgorICAJLndvcmQgCTAsIDAsIDAsIDAKKworc2F2ZWRfcHJvdGVjdGVkX21vZGVfZXNwOgorCS5sb25nIAkwCisJCityZXR1cm5fcHRyOgorCS5sb25nCXByb3RlY3RlZF9tb2RlCisJLndvcmQJMHgxMAo=